summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore3
-rw-r--r--.travis.yml4
-rw-r--r--.travis/post_failed.sh8
-rw-r--r--CMakeLists.txt11
-rw-r--r--CONTRIBUTING.md8
-rw-r--r--INSTALL.md12
-rw-r--r--Makefile18
-rw-r--r--README.md2
-rw-r--r--arm7/Makefile1
-rw-r--r--arm7/arm7.lsf7
-rw-r--r--arm7/asm/CARD_pullOut.s1
-rw-r--r--arm7/asm/CTRDG.s248
-rw-r--r--arm7/asm/CTRDG_sp.s542
-rw-r--r--arm7/asm/OS_interrupt.s173
-rw-r--r--arm7/asm/OS_irqHandler.s38
-rw-r--r--arm7/asm/OS_irqTable.s54
-rw-r--r--arm7/asm/OS_spinLock.s278
-rw-r--r--arm7/asm/OS_terminate_proc.s15
-rw-r--r--arm7/asm/SPI_main.s481
-rw-r--r--arm7/asm/SPI_mic.s852
-rw-r--r--arm7/asm/SPI_pm.s847
-rw-r--r--arm7/asm/SPI_tp.s861
-rw-r--r--arm7/asm/wram2.s3620
-rw-r--r--arm7/asm/wram_bss.s120
-rw-r--r--arm7/asm/wram_data.s56
-rw-r--r--arm7/global.inc26
-rw-r--r--arm7/lib/include/MI_dma.h6
-rw-r--r--arm7/lib/include/MI_memory.h10
-rw-r--r--arm7/lib/include/OS_alarm.h9
-rw-r--r--arm7/lib/include/OS_context.h20
-rw-r--r--arm7/lib/include/OS_init.h4
-rw-r--r--arm7/lib/include/OS_interrupt.h17
-rw-r--r--arm7/lib/include/OS_mutex.h9
-rw-r--r--arm7/lib/include/OS_spinLock.h28
-rw-r--r--arm7/lib/include/OS_terminate_proc.h6
-rw-r--r--arm7/lib/include/OS_thread.h36
-rw-r--r--arm7/lib/include/consts.h2
-rw-r--r--arm7/lib/include/mmap.h3
-rw-r--r--arm7/lib/include/registers.h6
-rw-r--r--arm7/lib/include/syscall.h6
-rw-r--r--arm7/lib/include/systemWork.h7
-rw-r--r--arm7/lib/src/OS_init.c2
-rw-r--r--arm7/lib/src/OS_interrupt.c106
-rw-r--r--arm7/lib/src/OS_reset.c2
-rw-r--r--arm7/lib/src/OS_spinLock.c192
-rw-r--r--arm7/lib/src/OS_system.c3
-rw-r--r--arm7/lib/src/OS_terminate_proc.c17
-rw-r--r--arm7/lib/src/OS_thread.c597
-rw-r--r--arm9/Makefile3
-rw-r--r--arm9/arm9.lcf6
-rw-r--r--arm9/arm9.lsf4
-rw-r--r--arm9/asm/OS_tick.s165
-rw-r--r--arm9/asm/math_util.s679
-rw-r--r--arm9/asm/pokemon.s9049
-rw-r--r--arm9/asm/scrcmd.s66
-rw-r--r--arm9/asm/scrcmd_12.s76
-rw-r--r--arm9/asm/scrcmd_17.s2
-rw-r--r--arm9/asm/scrcmd_18.s204
-rw-r--r--arm9/asm/scrcmd_24.s6
-rw-r--r--arm9/asm/scrcmd_3.s2
-rw-r--r--arm9/asm/scrcmd_4.s10
-rw-r--r--arm9/asm/scrcmd_5.s14
-rw-r--r--arm9/asm/scrcmd_8.s2
-rw-r--r--arm9/asm/scrcmd_9.s4
-rw-r--r--arm9/asm/secure.s134
-rw-r--r--arm9/asm/unk_02005CFC.s2
-rw-r--r--arm9/asm/unk_0200AA80.s8
-rw-r--r--arm9/asm/unk_02011744.s4
-rw-r--r--arm9/asm/unk_020139D8.s2
-rw-r--r--arm9/asm/unk_02016B94.s10
-rw-r--r--arm9/asm/unk_0201C7A0.s10
-rw-r--r--arm9/asm/unk_02023C40.s34
-rw-r--r--arm9/asm/unk_020250A4.s12
-rw-r--r--arm9/asm/unk_02025658.s42
-rw-r--r--arm9/asm/unk_02025954.s2
-rw-r--r--arm9/asm/unk_02026CD0.s18
-rw-r--r--arm9/asm/unk_02027E30.s2
-rw-r--r--arm9/asm/unk_020286F8.s4
-rw-r--r--arm9/asm/unk_0202A924.s4
-rw-r--r--arm9/asm/unk_0202B034.s32
-rw-r--r--arm9/asm/unk_0202BE98.s6
-rw-r--r--arm9/asm/unk_0202C144.s4
-rw-r--r--arm9/asm/unk_02035068.s14
-rw-r--r--arm9/asm/unk_020377F0.s30
-rw-r--r--arm9/asm/unk_0204653C.s24
-rw-r--r--arm9/asm/unk_02047500.s2
-rw-r--r--arm9/asm/unk_020476CC.s20
-rw-r--r--arm9/asm/unk_0204A01C.s62
-rw-r--r--arm9/asm/unk_0204AB0C.s4
-rw-r--r--arm9/asm/unk_0204B9EC.s10
-rw-r--r--arm9/asm/unk_0204BE14.s2
-rw-r--r--arm9/asm/unk_02050E48.s8
-rw-r--r--arm9/asm/unk_020520AC.s12
-rw-r--r--arm9/asm/unk_02054C14.s16
-rw-r--r--arm9/asm/unk_02059F04.s4
-rw-r--r--arm9/asm/unk_0205DD18.s8
-rw-r--r--arm9/asm/unk_0205EC84.s10
-rw-r--r--arm9/asm/unk_0205F314.s6
-rw-r--r--arm9/asm/unk_0205FA2C.s2
-rw-r--r--arm9/asm/unk_020603B0.s12
-rw-r--r--arm9/asm/unk_02060CCC.s46
-rw-r--r--arm9/asm/unk_0206439C.s2
-rw-r--r--arm9/asm/unk_020653EC.s4
-rw-r--r--arm9/asm/unk_0206AB04.s124
-rw-r--r--arm9/asm/unk_0206ABC4.s24
-rw-r--r--arm9/asm/unk_0206B16C.s20
-rw-r--r--arm9/asm/unk_0206B688.s20
-rw-r--r--arm9/asm/unk_0206B8A4.s367
-rw-r--r--arm9/asm/unk_0206BB5C.s22
-rw-r--r--arm9/asm/unk_0206C700.s52
-rw-r--r--arm9/asm/unk_0206E5B4.s788
-rw-r--r--arm9/asm/unk_0206F3FC.s98
-rw-r--r--arm9/asm/unk_02072548.s22
-rw-r--r--arm9/asm/unk_02073710.s4
-rw-r--r--arm9/asm/unk_02073DA8.s18
-rw-r--r--arm9/asm/unk_0207550C.s108
-rw-r--r--arm9/asm/unk_020772F0.s6
-rw-r--r--arm9/asm/unk_02079C70.s112
-rw-r--r--arm9/asm/unk_0207C328.s12
-rw-r--r--arm9/asm/unk_0207D5BC.s8
-rw-r--r--arm9/asm/unk_0207FD00.s162
-rw-r--r--arm9/asm/unk_02080C38.s36
-rw-r--r--arm9/asm/unk_020828BC.s24
-rw-r--r--arm9/asm/unk_02084098.s2
-rw-r--r--arm9/asm/unk_020842DC.s150
-rw-r--r--arm9/asm/unk_02085258.s146
-rw-r--r--arm9/asm/unk_020854E0.s26
-rw-r--r--arm9/asm/unk_020859C0.s10
-rw-r--r--arm9/asm/unk_02086084.s14
-rw-r--r--arm9/asm/unk_02086414.s8
-rw-r--r--arm9/asm/unk_02086FA8.s4
-rw-r--r--arm9/asm/unk_02087D00.s16
-rw-r--r--arm9/asm/unk_02088DD8.s8
-rw-r--r--arm9/global.inc15848
-rw-r--r--arm9/lib/include/MI_dma.h8
-rw-r--r--arm9/lib/include/MI_memory.h2
-rw-r--r--arm9/lib/include/OS_alarm.h23
-rw-r--r--arm9/lib/include/OS_init.h1
-rw-r--r--arm9/lib/include/OS_interrupt.h11
-rw-r--r--arm9/lib/include/OS_mutex.h16
-rw-r--r--arm9/lib/include/OS_spinLock.h13
-rw-r--r--arm9/lib/include/OS_terminate_proc.h10
-rw-r--r--arm9/lib/include/OS_thread.h117
-rw-r--r--arm9/lib/include/OS_tick.h18
-rw-r--r--arm9/lib/include/OS_timer.h32
-rw-r--r--arm9/lib/include/consts.h9
-rw-r--r--arm9/lib/include/fx.h5
-rw-r--r--arm9/lib/include/mmap.h52
-rw-r--r--arm9/lib/include/registers.h16
-rw-r--r--arm9/lib/include/syscall.h6
-rw-r--r--arm9/lib/include/systemWork.h7
-rw-r--r--arm9/lib/src/OS_printf.c815
-rw-r--r--arm9/lib/src/OS_reset.c1
-rw-r--r--arm9/lib/src/OS_spinLock.c4
-rw-r--r--arm9/lib/src/OS_tick.c70
-rw-r--r--arm9/lib/syscall/_svc_mw.s76
-rw-r--r--arm9/modules/05/asm/module_05.s496
-rw-r--r--arm9/modules/06/asm/module_06.s346
-rw-r--r--arm9/modules/07/asm/module_07.s40
-rw-r--r--arm9/modules/08/asm/module_08.s99964
-rw-r--r--arm9/modules/09/asm/module_09.s118
-rw-r--r--arm9/modules/11/asm/module_11.s197298
-rw-r--r--arm9/modules/12/asm/module_12.s124
-rw-r--r--arm9/modules/14/asm/module_14.s190
-rw-r--r--arm9/modules/16/asm/module_16.s222
-rw-r--r--arm9/modules/17/asm/module_17.s10
-rw-r--r--arm9/modules/18/asm/module_18.s12
-rw-r--r--arm9/modules/27/asm/module_27.s22
-rw-r--r--arm9/modules/28/asm/module_28.s18
-rw-r--r--arm9/modules/35/asm/module_35.s10
-rw-r--r--arm9/modules/36/asm/module_36.s2
-rw-r--r--arm9/modules/37/asm/module_37.s2
-rw-r--r--arm9/modules/39/asm/module_39.s8
-rw-r--r--arm9/modules/52/asm/module_52.s4
-rw-r--r--arm9/modules/53/asm/module_53.s2
-rw-r--r--arm9/modules/54/asm/module_54.s2
-rw-r--r--arm9/modules/56/asm/module_56.s16
-rw-r--r--arm9/modules/58/asm/module_58.s2
-rw-r--r--arm9/modules/62/asm/module_62.s30
-rw-r--r--arm9/modules/63/asm/module_63.s14
-rw-r--r--arm9/modules/65/asm/module_65.s14
-rw-r--r--arm9/modules/67/asm/module_67.s2
-rw-r--r--arm9/modules/68/asm/module_68.s36
-rw-r--r--arm9/modules/69/asm/module_69.s60
-rw-r--r--arm9/modules/70/asm/module_70.s2
-rw-r--r--arm9/modules/71/asm/module_71.s122
-rw-r--r--arm9/modules/73/asm/module_73.s20
-rw-r--r--arm9/modules/75/asm/module_75.s14
-rw-r--r--arm9/modules/76/asm/module_76.s28
-rw-r--r--arm9/modules/80/asm/module_80.s132
-rw-r--r--arm9/modules/81/asm/module_81.s28
-rw-r--r--arm9/modules/83/asm/module_83.s148
-rw-r--r--arm9/modules/84/asm/module_84.s30
-rw-r--r--arm9/modules/85/asm/module_85.s16
-rw-r--r--arm9/src/main.c8
-rw-r--r--arm9/src/math_util.c411
-rw-r--r--arm9/src/nutdata.c78
-rw-r--r--arm9/src/party.c127
-rw-r--r--arm9/src/pokemon.c3741
-rw-r--r--arm9/src/string_util.c3
-rw-r--r--arm9/src/waza.c70
-rw-r--r--files/poketool/personal/evo.json3445
-rw-r--r--files/poketool/personal/evo.json.txt22
-rw-r--r--files/poketool/personal/evo/narc_0000.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0001.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0002.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0003.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0004.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0005.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0006.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0007.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0008.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0009.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0010.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0011.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0012.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0013.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0014.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0015.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0016.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0017.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0018.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0019.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0020.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0021.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0022.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0023.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0024.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0025.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0026.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0027.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0028.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0029.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0030.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0031.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0032.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0033.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0034.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0035.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0036.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0037.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0038.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0039.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0040.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0041.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0042.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0043.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0044.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0045.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0046.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0047.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0048.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0049.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0050.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0051.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0052.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0053.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0054.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0055.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0056.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0057.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0058.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0059.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0060.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0061.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0062.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0063.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0064.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0065.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0066.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0067.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0068.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0069.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0070.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0071.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0072.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0073.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0074.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0075.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0076.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0077.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0078.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0079.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0080.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0081.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0082.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0083.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0084.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0085.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0086.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0087.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0088.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0089.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0090.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0091.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0092.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0093.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0094.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0095.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0096.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0097.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0098.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0099.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0100.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0101.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0102.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0103.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0104.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0105.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0106.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0107.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0108.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0109.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0110.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0111.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0112.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0113.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0114.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0115.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0116.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0117.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0118.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0119.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0120.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0121.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0122.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0123.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0124.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0125.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0126.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0127.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0128.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0129.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0130.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0131.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0132.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0133.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0134.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0135.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0136.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0137.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0138.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0139.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0140.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0141.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0142.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0143.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0144.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0145.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0146.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0147.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0148.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0149.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0150.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0151.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0152.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0153.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0154.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0155.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0156.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0157.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0158.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0159.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0160.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0161.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0162.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0163.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0164.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0165.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0166.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0167.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0168.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0169.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0170.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0171.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0172.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0173.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0174.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0175.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0176.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0177.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0178.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0179.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0180.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0181.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0182.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0183.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0184.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0185.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0186.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0187.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0188.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0189.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0190.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0191.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0192.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0193.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0194.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0195.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0196.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0197.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0198.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0199.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0200.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0201.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0202.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0203.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0204.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0205.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0206.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0207.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0208.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0209.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0210.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0211.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0212.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0213.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0214.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0215.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0216.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0217.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0218.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0219.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0220.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0221.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0222.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0223.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0224.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0225.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0226.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0227.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0228.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0229.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0230.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0231.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0232.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0233.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0234.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0235.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0236.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0237.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0238.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0239.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0240.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0241.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0242.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0243.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0244.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0245.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0246.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0247.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0248.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0249.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0250.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0251.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0252.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0253.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0254.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0255.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0256.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0257.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0258.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0259.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0260.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0261.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0262.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0263.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0264.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0265.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0266.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0267.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0268.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0269.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0270.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0271.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0272.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0273.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0274.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0275.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0276.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0277.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0278.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0279.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0280.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0281.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0282.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0283.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0284.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0285.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0286.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0287.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0288.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0289.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0290.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0291.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0292.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0293.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0294.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0295.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0296.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0297.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0298.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0299.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0300.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0301.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0302.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0303.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0304.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0305.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0306.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0307.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0308.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0309.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0310.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0311.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0312.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0313.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0314.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0315.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0316.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0317.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0318.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0319.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0320.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0321.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0322.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0323.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0324.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0325.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0326.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0327.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0328.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0329.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0330.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0331.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0332.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0333.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0334.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0335.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0336.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0337.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0338.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0339.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0340.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0341.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0342.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0343.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0344.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0345.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0346.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0347.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0348.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0349.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0350.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0351.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0352.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0353.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0354.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0355.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0356.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0357.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0358.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0359.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0360.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0361.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0362.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0363.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0364.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0365.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0366.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0367.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0368.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0369.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0370.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0371.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0372.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0373.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0374.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0375.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0376.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0377.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0378.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0379.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0380.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0381.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0382.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0383.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0384.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0385.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0386.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0387.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0388.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0389.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0390.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0391.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0392.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0393.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0394.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0395.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0396.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0397.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0398.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0399.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0400.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0401.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0402.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0403.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0404.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0405.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0406.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0407.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0408.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0409.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0410.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0411.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0412.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0413.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0414.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0415.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0416.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0417.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0418.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0419.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0420.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0421.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0422.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0423.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0424.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0425.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0426.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0427.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0428.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0429.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0430.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0431.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0432.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0433.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0434.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0435.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0436.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0437.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0438.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0439.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0440.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0441.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0442.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0443.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0444.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0445.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0446.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0447.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0448.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0449.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0450.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0451.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0452.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0453.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0454.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0455.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0456.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0457.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0458.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0459.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0460.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0461.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0462.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0463.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0464.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0465.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0466.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0467.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0468.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0469.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0470.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0471.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0472.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0473.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0474.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0475.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0476.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0477.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0478.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0479.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0480.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0481.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0482.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0483.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0484.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0485.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0486.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0487.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0488.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0489.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0490.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0491.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0492.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0493.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0494.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0495.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0496.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0497.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0498.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0499.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/evo/narc_0500.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/growtbl.json852
-rw-r--r--files/poketool/personal/growtbl.json.txt12
-rw-r--r--files/poketool/personal/growtbl/.gitignore2
-rw-r--r--files/poketool/personal/growtbl/Makefile19
-rw-r--r--files/poketool/personal/growtbl/narc_0000.txt101
-rw-r--r--files/poketool/personal/growtbl/narc_0001.txt101
-rw-r--r--files/poketool/personal/growtbl/narc_0002.txt101
-rw-r--r--files/poketool/personal/growtbl/narc_0003.txt101
-rw-r--r--files/poketool/personal/growtbl/narc_0004.txt101
-rw-r--r--files/poketool/personal/growtbl/narc_0005.txt101
-rw-r--r--files/poketool/personal/growtbl/narc_0006.txt101
-rw-r--r--files/poketool/personal/growtbl/narc_0007.txt101
-rw-r--r--files/poketool/personal/personal.json39738
-rw-r--r--files/poketool/personal/personal.json.txt57
-rw-r--r--files/poketool/personal/personal/narc_0000.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0001.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0002.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0003.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0004.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0005.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0006.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0007.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0008.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0009.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0010.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0011.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0012.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0013.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0014.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0015.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0016.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0017.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0018.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0019.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0020.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0021.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0022.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0023.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0024.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0025.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0026.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0027.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0028.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0029.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0030.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0031.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0032.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0033.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0034.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0035.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0036.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0037.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0038.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0039.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0040.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0041.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0042.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0043.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0044.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0045.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0046.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0047.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0048.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0049.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0050.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0051.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0052.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0053.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0054.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0055.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0056.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0057.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0058.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0059.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0060.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0061.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0062.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0063.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0064.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0065.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0066.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0067.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0068.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0069.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0070.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0071.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0072.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0073.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0074.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0075.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0076.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0077.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0078.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0079.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0080.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0081.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0082.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0083.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0084.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0085.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0086.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0087.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0088.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0089.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0090.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0091.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0092.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0093.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0094.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0095.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0096.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0097.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0098.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0099.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0100.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0101.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0102.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0103.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0104.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0105.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0106.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0107.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0108.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0109.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0110.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0111.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0112.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0113.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0114.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0115.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0116.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0117.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0118.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0119.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0120.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0121.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0122.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0123.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0124.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0125.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0126.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0127.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0128.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0129.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0130.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0131.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0132.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0133.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0134.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0135.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0136.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0137.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0138.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0139.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0140.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0141.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0142.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0143.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0144.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0145.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0146.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0147.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0148.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0149.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0150.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0151.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0152.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0153.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0154.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0155.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0156.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0157.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0158.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0159.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0160.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0161.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0162.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0163.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0164.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0165.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0166.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0167.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0168.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0169.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0170.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0171.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0172.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0173.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0174.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0175.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0176.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0177.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0178.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0179.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0180.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0181.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0182.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0183.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0184.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0185.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0186.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0187.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0188.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0189.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0190.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0191.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0192.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0193.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0194.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0195.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0196.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0197.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0198.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0199.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0200.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0201.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0202.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0203.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0204.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0205.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0206.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0207.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0208.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0209.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0210.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0211.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0212.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0213.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0214.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0215.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0216.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0217.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0218.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0219.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0220.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0221.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0222.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0223.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0224.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0225.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0226.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0227.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0228.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0229.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0230.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0231.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0232.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0233.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0234.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0235.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0236.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0237.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0238.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0239.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0240.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0241.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0242.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0243.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0244.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0245.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0246.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0247.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0248.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0249.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0250.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0251.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0252.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0253.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0254.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0255.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0256.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0257.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0258.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0259.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0260.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0261.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0262.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0263.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0264.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0265.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0266.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0267.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0268.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0269.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0270.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0271.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0272.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0273.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0274.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0275.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0276.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0277.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0278.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0279.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0280.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0281.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0282.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0283.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0284.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0285.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0286.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0287.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0288.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0289.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0290.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0291.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0292.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0293.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0294.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0295.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0296.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0297.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0298.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0299.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0300.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0301.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0302.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0303.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0304.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0305.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0306.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0307.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0308.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0309.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0310.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0311.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0312.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0313.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0314.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0315.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0316.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0317.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0318.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0319.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0320.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0321.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0322.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0323.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0324.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0325.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0326.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0327.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0328.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0329.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0330.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0331.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0332.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0333.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0334.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0335.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0336.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0337.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0338.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0339.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0340.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0341.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0342.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0343.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0344.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0345.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0346.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0347.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0348.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0349.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0350.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0351.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0352.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0353.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0354.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0355.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0356.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0357.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0358.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0359.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0360.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0361.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0362.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0363.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0364.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0365.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0366.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0367.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0368.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0369.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0370.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0371.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0372.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0373.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0374.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0375.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0376.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0377.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0378.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0379.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0380.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0381.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0382.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0383.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0384.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0385.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0386.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0387.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0388.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0389.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0390.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0391.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0392.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0393.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0394.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0395.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0396.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0397.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0398.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0399.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0400.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0401.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0402.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0403.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0404.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0405.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0406.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0407.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0408.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0409.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0410.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0411.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0412.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0413.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0414.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0415.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0416.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0417.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0418.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0419.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0420.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0421.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0422.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0423.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0424.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0425.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0426.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0427.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0428.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0429.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0430.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0431.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0432.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0433.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0434.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0435.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0436.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0437.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0438.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0439.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0440.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0441.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0442.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0443.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0444.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0445.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0446.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0447.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0448.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0449.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0450.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0451.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0452.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0453.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0454.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0455.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0456.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0457.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0458.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0459.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0460.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0461.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0462.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0463.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0464.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0465.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0466.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0467.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0468.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0469.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0470.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0471.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0472.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0473.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0474.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0475.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0476.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0477.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0478.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0479.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0480.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0481.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0482.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0483.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0484.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0485.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0486.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0487.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0488.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0489.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0490.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0491.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0492.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0493.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0494.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0495.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0496.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0497.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0498.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0499.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/personal/narc_0500.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/pms.json505
-rw-r--r--files/poketool/personal/pms.json.txt8
-rw-r--r--files/poketool/personal/pms.narcbin1002 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl.json28896
-rw-r--r--files/poketool/personal/wotbl.json.txt21
-rw-r--r--files/poketool/personal/wotbl/narc_0000.binbin4 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0001.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0002.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0003.binbin40 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0004.binbin24 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0005.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0006.binbin40 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0007.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0008.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0009.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0010.binbin8 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0011.binbin8 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0012.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0013.binbin8 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0014.binbin8 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0015.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0016.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0017.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0018.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0019.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0020.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0021.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0022.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0023.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0024.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0025.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0026.binbin12 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0027.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0028.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0029.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0030.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0031.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0032.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0033.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0034.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0035.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0036.binbin12 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0037.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0038.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0039.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0040.binbin12 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0041.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0042.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0043.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0044.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0045.binbin16 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0046.binbin24 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0047.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0048.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0049.binbin40 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0050.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0051.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0052.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0053.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0054.bin3
-rw-r--r--files/poketool/personal/wotbl/narc_0055.bin3
-rw-r--r--files/poketool/personal/wotbl/narc_0056.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0057.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0058.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0059.binbin16 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0060.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0061.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0062.binbin16 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0063.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0064.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0065.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0066.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0067.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0068.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0069.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0070.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0071.binbin20 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0072.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0073.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0074.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0075.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0076.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0077.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0078.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0079.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0080.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0081.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0082.binbin40 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0083.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0084.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0085.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0086.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0087.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0088.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0089.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0090.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0091.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0092.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0093.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0094.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0095.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0096.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0097.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0098.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0099.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0100.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0101.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0102.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0103.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0104.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0105.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0106.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0107.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0108.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0109.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0110.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0111.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0112.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0113.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0114.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0115.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0116.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0117.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0118.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0119.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0120.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0121.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0122.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0123.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0124.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0125.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0126.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0127.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0128.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0129.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0130.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0131.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0132.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0133.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0134.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0135.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0136.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0137.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0138.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0139.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0140.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0141.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0142.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0143.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0144.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0145.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0146.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0147.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0148.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0149.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0150.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0151.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0152.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0153.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0154.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0155.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0156.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0157.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0158.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0159.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0160.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0161.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0162.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0163.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0164.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0165.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0166.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0167.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0168.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0169.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0170.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0171.binbin40 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0172.binbin16 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0173.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0174.binbin16 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0175.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0176.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0177.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0178.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0179.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0180.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0181.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0182.binbin16 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0183.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0184.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0185.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0186.binbin16 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0187.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0188.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0189.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0190.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0191.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0192.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0193.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0194.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0195.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0196.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0197.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0198.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0199.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0200.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0201.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0202.binbin12 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0203.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0204.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0205.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0206.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0207.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0208.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0209.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0210.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0211.binbin40 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0212.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0213.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0214.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0215.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0216.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0217.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0218.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0219.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0220.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0221.binbin40 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0222.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0223.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0224.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0225.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0226.binbin40 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0227.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0228.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0229.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0230.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0231.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0232.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0233.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0234.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0235.binbin24 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0236.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0237.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0238.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0239.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0240.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0241.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0242.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0243.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0244.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0245.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0246.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0247.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0248.binbin40 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0249.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0250.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0251.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0252.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0253.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0254.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0255.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0256.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0257.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0258.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0259.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0260.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0261.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0262.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0263.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0264.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0265.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0266.binbin8 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0267.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0268.binbin8 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0269.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0270.binbin24 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0271.binbin24 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0272.binbin12 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0273.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0274.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0275.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0276.binbin24 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0277.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0278.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0279.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0280.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0281.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0282.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0283.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0284.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0285.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0286.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0287.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0288.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0289.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0290.binbin24 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0291.bin3
-rw-r--r--files/poketool/personal/wotbl/narc_0292.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0293.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0294.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0295.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0296.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0297.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0298.binbin16 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0299.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0300.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0301.binbin12 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0302.binbin40 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0303.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0304.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0305.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0306.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0307.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0308.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0309.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0310.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0311.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0312.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0313.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0314.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0315.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0316.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0317.binbin40 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0318.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0319.binbin40 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0320.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0321.binbin40 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0322.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0323.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0324.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0325.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0326.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0327.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0328.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0329.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0330.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0331.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0332.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0333.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0334.binbin40 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0335.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0336.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0337.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0338.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0339.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0340.binbin40 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0341.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0342.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0343.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0344.binbin40 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0345.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0346.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0347.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0348.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0349.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0350.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0351.binbin20 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0352.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0353.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0354.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0355.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0356.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0357.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0358.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0359.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0360.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0361.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0362.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0363.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0364.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0365.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0366.binbin12 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0367.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0368.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0369.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0370.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0371.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0372.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0373.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0374.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0375.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0376.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0377.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0378.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0379.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0380.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0381.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0382.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0383.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0384.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0385.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0386.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0387.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0388.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0389.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0390.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0391.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0392.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0393.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0394.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0395.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0396.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0397.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0398.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0399.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0400.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0401.binbin8 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0402.binbin24 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0403.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0404.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0405.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0406.binbin16 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0407.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0408.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0409.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0410.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0411.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0412.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0413.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0414.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0415.binbin8 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0416.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0417.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0418.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0419.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0420.binbin24 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0421.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0422.binbin24 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0423.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0424.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0425.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0426.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0427.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0428.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0429.binbin16 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0430.binbin20 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0431.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0432.bin4
-rw-r--r--files/poketool/personal/wotbl/narc_0433.binbin16 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0434.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0435.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0436.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0437.binbin40 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0438.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0439.binbin40 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0440.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0441.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0442.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0443.binbin24 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0444.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0445.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0446.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0447.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0448.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0449.binbin24 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0450.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0451.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0452.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0453.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0454.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0455.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0456.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0457.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0458.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0459.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0460.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0461.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0462.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0463.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0464.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0465.binbin40 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0466.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0467.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0468.binbin12 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0469.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0470.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0471.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0472.bin2
-rw-r--r--files/poketool/personal/wotbl/narc_0473.binbin40 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0474.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0475.binbin40 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0476.binbin40 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0477.binbin44 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0478.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0479.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0480.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0481.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0482.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0483.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0484.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0485.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0486.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0487.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0488.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0489.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0490.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0491.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0492.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0493.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0494.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0495.bin1
-rw-r--r--files/poketool/personal/wotbl/narc_0496.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0497.binbin36 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0498.binbin32 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0499.binbin28 -> 0 bytes
-rw-r--r--files/poketool/personal/wotbl/narc_0500.binbin28 -> 0 bytes
-rw-r--r--filesystem.mk17
-rw-r--r--include/MWC_string.h8
-rw-r--r--include/constants/abilities.h129
-rw-r--r--include/constants/global.h7
-rw-r--r--include/constants/items.h555
-rw-r--r--include/constants/moves.h475
-rw-r--r--include/constants/pokemon.h454
-rw-r--r--include/constants/sinnoh_dex.h158
-rw-r--r--include/filesystem.h1
-rw-r--r--include/global.h10
-rw-r--r--include/itemtool.h24
-rw-r--r--include/math_util.h38
-rw-r--r--include/move_data.h41
-rw-r--r--include/msg_data.h20
-rw-r--r--include/nitro/MI_dma_shared.h (renamed from include/nitro/dma.h)16
-rw-r--r--include/nitro/OS_alarm_shared.h35
-rw-r--r--include/nitro/OS_interrupt_shared.h9
-rw-r--r--include/nitro/OS_mutex_shared.h20
-rw-r--r--include/nitro/OS_spinLock_shared.h24
-rw-r--r--include/nitro/OS_systemWork_shared.h66
-rw-r--r--include/nitro/OS_thread_shared.h43
-rw-r--r--include/nitro/OS_tick_shared.h24
-rw-r--r--include/nitro/consts_shared.h9
-rw-r--r--include/nitro/mmap_shared.h5
-rw-r--r--include/nitro/registers_shared.h17
-rw-r--r--include/party.h20
-rw-r--r--include/pokemon.h487
-rw-r--r--include/proto.h24
-rw-r--r--include/save_block_2.h18
-rw-r--r--include/seals.h15
-rw-r--r--include/string16.h17
-rw-r--r--include/string_util.h3
-rw-r--r--include/text.h6
-rw-r--r--tools/csv2bin/Makefile13
-rw-r--r--tools/csv2bin/csv2bin.c (renamed from files/poketool/personal/growtbl/grow2bin.c)0
-rw-r--r--tools/jsonproc/jsonproc.cpp25
-rw-r--r--tools/knarc/Narc.cpp70
-rw-r--r--tools/knarc/Source.cpp61
-rw-r--r--tools/o2narc/.gitignore1
-rw-r--r--tools/o2narc/Makefile11
-rw-r--r--tools/o2narc/Narc.h47
-rw-r--r--tools/o2narc/elf.h2434
-rw-r--r--tools/o2narc/o2narc.cpp314
1768 files changed, 248062 insertions, 176332 deletions
diff --git a/.gitignore b/.gitignore
index be9199b6..fcfaecac 100644
--- a/.gitignore
+++ b/.gitignore
@@ -47,4 +47,5 @@ symbols.csv
# NARCs
*.narc
*.arc
-!files/poketool/personal/pms.narc
+files/**/*.c
+*.o
diff --git a/.travis.yml b/.travis.yml
index 5ce0b5e9..32b091c5 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -17,7 +17,6 @@ cache:
install:
# These files are only accessible from Travis CI IP Addresses to prevent piracy.
- wget http://private.martmists.com/mwccarm.zip
- - wget http://private.martmists.com/baserom.nds
- wget http://private.martmists.com/nitro.zip
- unzip mwccarm.zip
- mv mwccarm tools
@@ -34,3 +33,6 @@ notifications:
after_success:
- .travis/calcrom/webhook.sh pokediamond
+
+after_failure:
+ - .travis/post_failed.sh pokediamond
diff --git a/.travis/post_failed.sh b/.travis/post_failed.sh
new file mode 100644
index 00000000..310c7748
--- /dev/null
+++ b/.travis/post_failed.sh
@@ -0,0 +1,8 @@
+#!/bin/bash -ex
+
+ZIPFILE=${HOME}/pokediamond.zip
+
+build_name=${1:-pokediamond}
+zip -r ${ZIPFILE} ${TRAVIS_BUILD_DIR}
+ANONFILES_URL=$(curl -F "file=@$ZIPFILE" https://api.anonfiles.com/upload | grep -Po '"short": "\K[^"]*')
+curl -d "{\"username\": \"$CALCROM_DISCORD_WEBHOOK_USERNAME\", \"avatar_url\": \"$CALCROM_DISCORD_WEBHOOK_AVATAR_URL_NOTOK\", \"content\":\"ERROR IN $build_name\\nBranch: $TRAVIS_BRANCH\\nPull request: $TRAVIS_PULL_REQUEST\\nBuild state: $ANONFILES_URL\"}" -H "Content-Type: application/json" -X POST $CALCROM_DISCORD_WEBHOOK_URL
diff --git a/CMakeLists.txt b/CMakeLists.txt
index abf430db..f1d54918 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,6 +1,6 @@
cmake_minimum_required (VERSION 2.8.11)
project(PokeDiamond)
-set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_CXX_STANDARD 17)
# TODO: Add commands
@@ -11,7 +11,14 @@ add_compile_options(-fms-extensions)
file(GLOB_RECURSE SOURCES RELATIVE ${CMAKE_SOURCE_DIR} "*.c" "*.cpp")
add_executable(PokeDiamond ${SOURCES})
-target_include_directories(PokeDiamond PRIVATE include include-mw arm9/lib/include)
+target_include_directories(PokeDiamond PRIVATE include include-mw arm9/lib/include arm7/lib/include)
add_executable(calcrom .travis/calcrom/calcrom.cpp)
target_include_directories(calcrom PRIVATE /usr/local/include)
+
+add_executable(knarc tools/knarc/Source.cpp tools/knarc/Narc.cpp)
+
+add_executable(jsonproc tools/jsonproc/jsonproc.cpp)
+target_include_directories(jsonproc PRIVATE SYSTEM tools/jsonproc)
+
+add_executable(o2narc tools/o2narc/o2narc.cpp)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 397bdf95..d8e2b89c 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -105,11 +105,11 @@ OBJDUMP_MODE="${OBJDUMP_MODE:-force-thumb}"
OBJDUMP_VMA="${OBJDUMP_VMA:-0x02000000}"
OBJDUMP="arm-none-eabi-objdump -Drz -bbinary -m${OBJDUMP_ARCH} -M${OBJDUMP_MODE}"
OPTIONS="--start-address=$(($1 + OBJDUMP_VMA)) --stop-address=$(($1 + $2 + OBJDUMP_VMA))"
-$OBJDUMP $OPTIONS baserom.sbin > baserom.dump || exit 1
-$OBJDUMP $OPTIONS build/arm9.sbin > arm9.dump
-diff -u baserom.dump arm9.dump
+$OBJDUMP $OPTIONS $(dirname $0)/baserom.sbin > $(dirname $0)/baserom.dump || exit 1
+$OBJDUMP $OPTIONS $(dirname $0)/build/arm9.sbin > $(dirname $0)/arm9.dump
+diff -u $(dirname $0)/baserom.dump $(dirname $0)/arm9.dump
```
-Place a clean version of the ARM9 binary as arm9/baserom.sbin. In your terminal, navigate to the arm9 directory and run `./asmdiff.sh 0 $(wc -c baserom.sbin) | less`, then scroll through to where the grievances begin. Fix any obvious problems in your code/tree, and rerun. If the differences are extensive, you may have induced a shift in the binary either by writing incorrect code or placing it incorrectly into the LCF. *Tip: you can specify a start address and size to only compare the portion of the ROM you are working on.*
+Place a clean version of the ARM9 binary as arm9/baserom.sbin (arm9/build/arm9.bin from a successful build should suffice). In your terminal, navigate to the arm9 directory and run `./asmdiff.sh 0 $(wc -c baserom.sbin) | less`, then scroll through to where the grievances begin. Fix any obvious problems in your code/tree, and rerun. If the differences are extensive, you may have induced a shift in the binary either by writing incorrect code or placing it incorrectly into the LCF. *Tip: you can specify a start address and size to only compare the portion of the ROM you are working on.*
## Decompiling data
diff --git a/INSTALL.md b/INSTALL.md
index ca080afb..ce7e02fc 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -1,18 +1,14 @@
-### 1. Copy baserom(s) into root folder
-
-Put a clean copy of Pokemon Diamond (US) nds rom at `./baserom.nds`.
-
-### 2. Install MWCC compiler
+### 1. Install MWCC compiler
The build system requires the use of the Metrowerk C Compiler 2.0/base to compile matching files. We cannot distribute the correct compiler here so join the PRET discord and download the pinned mwccarm.zip zip in #pokediamond and extract it to tools/. Run each of the executables so they ask for a license.dat and provide the one in the rar (it may also ask for it when compiling). This only needs to be done once.
In the future, a GCC option will be available so MWCC is not required to build, however it is required for a matching ROM.
-### 3. Install Nitro SDK
+### 2. Install Nitro SDK
As with the compiler, the Nitro SDK is proprietary and cannot be distributed here. Opened the pinned Mega folder in the PRET discord and download "NITRO SDK v3.0.zip" and "NITRO SDK V3.0 Plus 2.zip" from the "SDK System Libraries" folder. Extract v3.0.zip into a separate folder, then extract v3.0 Plus 2.zip into the same folder, overwriting when prompted. Copy the contents of tools/bin from the Nitro SDK to tools/bin in your pokediamond clone. Finally, copy include/nitro/specfiles/ARM7-TS.lcf.template into the arm7 subdirectory, and include/nitro/specfiles/ARM9-TS.lcf.template into the arm9 subdirectory.
-### 4. Dependencies
+### 3. Dependencies
#### Linux
@@ -48,7 +44,7 @@ You will still require the following packages:
Install them using either the Cygwin package manager or using pacman on Msys2.
-### 5. Build ROM
+### 4. Build ROM
Run `make` to build the ROM.
diff --git a/Makefile b/Makefile
index 77352f41..63a5a1a7 100644
--- a/Makefile
+++ b/Makefile
@@ -32,9 +32,19 @@ endif
ifeq ($(OS),Windows_NT)
EXE := .exe
WINE :=
+GREP := grep -P
+SED := sed -r
else
EXE :=
WINE := wine
+UNAME_S := $(shell uname -s)
+ifeq ($(UNAME_S),Darwin)
+GREP := grep -E
+SED := perl -p -e
+else
+GREP := grep -P
+SED := sed -r
+endif
endif
ifeq ($(NOWINE),1)
@@ -191,7 +201,7 @@ OBJCOPY := $(CROSS)objcopy
# ./tools/mwccarm/2.0/base/mwasmarm.exe -proc arm5te asm/arm9_thumb.s -o arm9.o
ASFLAGS = -proc arm5te
-CFLAGS = -O4,p -proc arm946e -fp soft -lang c99 -Cpp_exceptions off -i include -ir include-mw -ir arm9/lib/include -W all
+CFLAGS = -O4,p -gccext,on -proc arm946e -fp soft -lang c99 -Cpp_exceptions off -i include -ir include-mw -ir arm9/lib/include -W all
LDFLAGS = -map -nodead -w off -proc v5te -interworking -map -symtab -m _start
####################### Other Tools #########################
@@ -199,7 +209,9 @@ LDFLAGS = -map -nodead -w off -proc v5te -interworking -map -symtab -m _start
# DS TOOLS
TOOLS_DIR = tools
SHA1SUM = sha1sum
+CSV2BIN = $(TOOLS_DIR)/csv2bin/csv2bin
JSONPROC = $(TOOLS_DIR)/jsonproc/jsonproc
+O2NARC = $(TOOLS_DIR)/o2narc/o2narc
GFX = $(TOOLS_DIR)/nitrogfx/nitrogfx
MWASMARM_PATCHER = $(TOOLS_DIR)/mwasmarm_patcher/mwasmarm_patcher$(EXE) -q
MAKEBANNER = $(WINE) $(TOOLS_DIR)/bin/makebanner.exe
@@ -242,12 +254,12 @@ clean: mostlyclean
$(MAKE) -C arm7 clean
$(MAKE) -C tools/mwasmarm_patcher clean
$(RM) $(filter-out files/poketool/personal/pms.narc,$(filter %.narc %.arc,$(HOSTFS_FILES)))
- $(MAKE) -C files/poketool/personal/growtbl clean
mostlyclean: tidy
$(MAKE) -C arm9 mostlyclean
$(MAKE) -C arm7 mostlyclean
find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' \) -exec $(RM) {} +
+ find files \( -name '*.c' -o -name '*.o' \) -exec $(RM) {} +
tidy:
$(MAKE) -C arm9 tidy
@@ -331,7 +343,7 @@ $(BUILD_DIR)/pokediamond_bnr.bin: pokediamond.bsf graphics/icon.4bpp graphics/ic
$(MAKEBANNER) $< $@
symbols.csv: arm9 arm7
- (echo "Name,Location"; grep -P " *[0-9A-F]{8} [0-9A-F]{8} \S+ +\w+\t\(\w+\.o\)" arm9/build/arm9.elf.xMAP arm7/build/arm7.elf.xMAP | sed -r 's/ *([0-9A-F]{8}) [0-9A-F]{8} \S+ +(\w+)\t\(\w+\.o\)/\2,\1/g' | cut -d: -f2) > $@
+ (echo "Name,Location"; $(GREP) " *[0-9A-F]{8} [0-9A-F]{8} \S+ +\w+\t\(\w+\.o\)" arm9/build/arm9.elf.xMAP arm7/build/arm7.elf.xMAP | $(SED) 's/ *([0-9A-F]{8}) [0-9A-F]{8} \S+ +(\w+)\t\(\w+\.o\)/\2,\1/g' | cut -d: -f2) > $@
### Debug Print ###
diff --git a/README.md b/README.md
index 57d05e9a..1b652438 100644
--- a/README.md
+++ b/README.md
@@ -8,6 +8,8 @@ It builds the following ROM:
To set up the repository, see [INSTALL.md](INSTALL.md).
+For contributor instructions, see [CONTRIBUTING.md](CONTRIBUTING.md).
+
## See also
Other disassembly and/or decompilation projects:
diff --git a/arm7/Makefile b/arm7/Makefile
index 1ade0ed4..1b0cd3c3 100644
--- a/arm7/Makefile
+++ b/arm7/Makefile
@@ -196,7 +196,6 @@ DUMMY != mkdir -p $(ALL_DIRS)
%.pal: ;
# Included files
-baserom.%: ;
%.h: ;
%.inc: ;
diff --git a/arm7/arm7.lsf b/arm7/arm7.lsf
index e5809c12..bfc823a6 100644
--- a/arm7/arm7.lsf
+++ b/arm7/arm7.lsf
@@ -64,8 +64,13 @@ Autoload WRAM
Object CARD_fifo.o
Object CARD_pullOut.o
Object libsyscall.o
+ Object SPI_main.o
+ Object SPI_tp.o
+ Object SPI_pm.o
+ Object SPI_mic.o
+ Object CTRDG.o
+ Object CTRDG_sp.o
Object wram2.o
- Object wram_data.o
Object wram_bss.o
}
diff --git a/arm7/asm/CARD_pullOut.s b/arm7/asm/CARD_pullOut.s
index ed919647..b4d52c6c 100644
--- a/arm7/asm/CARD_pullOut.s
+++ b/arm7/asm/CARD_pullOut.s
@@ -215,4 +215,3 @@ _038010C0:
bx lr
_038010CC: .word _038099A4
_038010D0: .word FUN_03801048
- .balign 2, 0 ; Don't pad with nop
diff --git a/arm7/asm/CTRDG.s b/arm7/asm/CTRDG.s
new file mode 100644
index 00000000..633cbdd3
--- /dev/null
+++ b/arm7/asm/CTRDG.s
@@ -0,0 +1,248 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .section .bss
+
+ .global CTRDGi_Work
+CTRDGi_Work: ;0x03809FB8
+ .space 0x03809FBC - 0x03809FB8
+
+ .section .text
+
+ arm_func_start CTRDGi_SendtoPxi
+CTRDGi_SendtoPxi: ;@ 0x038038C0
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ mov r7, r0
+ mov r6, #1
+ mov r5, #13
+ mov r4, #0
+ b _038038E4
+_038038DC:
+ mov r0, r6
+ bl FUN_037F8CB4
+_038038E4:
+ mov r0, r5
+ mov r1, r7
+ mov r2, r4
+ bl PXI_SendWordByFifo
+ cmp r0, #0
+ bne _038038DC
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, lr}
+ bx lr
+
+ arm_func_start CTRDGi_UnlockByProcessor
+CTRDGi_UnlockByProcessor: ;@ 0x03803908
+ stmdb sp!, {r4, lr}
+ mov r4, r1
+ ldr r1, [r4]
+ cmp r1, #0
+ bne _03803920
+ bl OS_UnLockCartridge
+_03803920:
+ ldr r0, [r4, #4]
+ bl OS_RestoreInterrupts
+ ldmia sp!, {r4, lr}
+ bx lr
+
+ arm_func_start CTRDGi_LockByProcessor
+CTRDGi_LockByProcessor: ;@ 0x03803930
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r5, r0
+ mov r4, r1
+ bl OS_DisableInterrupts
+ str r0, [r4, #4]
+ ldr r0, _0380398C ;@ =0x027FFFE8
+ bl OS_ReadOwnerOfLockWord
+ and r0, r0, #128 ;@ 0x80
+ str r0, [r4]
+ ldr r0, [r4]
+ cmp r0, #0
+ bne _03803974
+ mov r0, r5
+ bl OS_TryLockCartridge
+ cmp r0, #0
+ bne _0380397C
+_03803974:
+ mov r0, #1
+ b _03803980
+_0380397C:
+ mov r0, #0
+_03803980:
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, lr}
+ bx lr
+_0380398C: .word 0x027FFFE8
+
+ arm_func_start CTRDGi_RestoreAccessCycle
+CTRDGi_RestoreAccessCycle: ;@ 0x03803990
+ ldr r3, [r0]
+ ldr r2, _038039C0 ;@ =0x04000204
+ ldrh r1, [r2]
+ bic r1, r1, #12
+ orr r1, r1, r3, lsl #2
+ strh r1, [r2]
+ ldr r1, [r0, #4]
+ ldrh r0, [r2]
+ bic r0, r0, #16
+ orr r0, r0, r1, lsl #4
+ strh r0, [r2]
+ bx lr
+_038039C0: .word 0x04000204
+
+ arm_func_start CTRDGi_ChangeLatestAccessCycle
+CTRDGi_ChangeLatestAccessCycle: ;@ 0x038039C4
+ ldr r2, _03803A08 ;@ =0x04000204
+ ldrh r1, [r2]
+ and r1, r1, #12
+ mov r1, r1, asr #2
+ str r1, [r0]
+ ldrh r1, [r2]
+ and r1, r1, #16
+ mov r1, r1, asr #4
+ str r1, [r0, #4]
+ ldrh r0, [r2]
+ bic r0, r0, #12
+ orr r0, r0, #12
+ strh r0, [r2]
+ ldrh r0, [r2]
+ bic r0, r0, #16
+ strh r0, [r2]
+ bx lr
+_03803A08: .word 0x04000204
+
+ arm_func_start CTRDG_IsExisting
+CTRDG_IsExisting: ;@ 0x03803A0C
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #16
+ mov r4, #1
+ ldr r2, _03803B20 ;@ =0x027FFC30
+ ldrh r1, [r2]
+ ldr r0, _03803B24 ;@ =0x0000FFFF
+ cmp r1, r0
+ moveq r0, #0
+ beq _03803B14
+ ldrb r0, [r2, #5]
+ mov r0, r0, lsl #30
+ mov r0, r0, lsr #31
+ cmp r0, #1
+ moveq r0, #0
+ beq _03803B14
+ ldr r0, _03803B28 ;@ =CTRDGi_Work
+ ldrh r0, [r0, #2]
+ add r1, sp, #0
+ bl CTRDGi_LockByProcessor
+ cmp r0, #0
+ bne _03803A70
+ ldr r0, [sp, #4]
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ b _03803B14
+_03803A70:
+ add r0, sp, #8
+ bl CTRDGi_ChangeLatestAccessCycle
+ mov r2, #134217728 ;@ 0x8000000
+ ldrb r3, [r2, #178] ;@ 0xb2
+ cmp r3, #150 ;@ 0x96
+ bne _03803A9C
+ ldr r0, _03803B20 ;@ =0x027FFC30
+ ldrh r1, [r0]
+ ldrh r0, [r2, #190] ;@ 0xbe
+ cmp r1, r0
+ bne _03803AE4
+_03803A9C:
+ cmp r3, #150 ;@ 0x96
+ beq _03803ABC
+ ldr r0, _03803B20 ;@ =0x027FFC30
+ ldrh r1, [r0]
+ ldr r0, _03803B2C ;@ =0x0801FFFE
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _03803AE4
+_03803ABC:
+ ldr r2, _03803B20 ;@ =0x027FFC30
+ ldr r1, [r2, #8]
+ mov r0, #134217728 ;@ 0x8000000
+ ldr r0, [r0, #172] ;@ 0xac
+ cmp r1, r0
+ beq _03803AF8
+ ldrb r0, [r2, #5]
+ mov r0, r0, lsl #31
+ movs r0, r0, lsr #31
+ beq _03803AF8
+_03803AE4:
+ ldr r1, _03803B20 ;@ =0x027FFC30
+ ldrb r0, [r1, #5]
+ orr r0, r0, #2
+ strb r0, [r1, #5]
+ mov r4, #0
+_03803AF8:
+ add r0, sp, #8
+ bl CTRDGi_RestoreAccessCycle
+ ldr r0, _03803B28 ;@ =CTRDGi_Work
+ ldrh r0, [r0, #2]
+ add r1, sp, #0
+ bl CTRDGi_UnlockByProcessor
+ mov r0, r4
+_03803B14:
+ add sp, sp, #16
+ ldmia sp!, {r4, lr}
+ bx lr
+_03803B20: .word 0x027FFC30
+_03803B24: .word 0x0000FFFF
+_03803B28: .word CTRDGi_Work
+_03803B2C: .word 0x0801FFFE
+
+ arm_func_start CTRDG_IsPulledOut
+CTRDG_IsPulledOut: ;@ 0x03803B30
+ stmfd sp!, {lr}
+ sub sp, sp, #4
+ ldr r2, _03803B80 ;@ =0x027FFC30
+ ldrh r1, [r2]
+ ldr r0, _03803B84 ;@ =0x0000FFFF
+ cmp r1, r0
+ moveq r0, #0
+ beq _03803B74
+ ldrb r0, [r2, #5]
+ mov r0, r0, lsl #30
+ movs r0, r0, lsr #31
+ bne _03803B64
+ bl CTRDG_IsExisting
+_03803B64:
+ ldr r0, _03803B80 ;@ =0x027FFC30
+ ldrb r0, [r0, #5]
+ mov r0, r0, lsl #30
+ mov r0, r0, lsr #31
+_03803B74:
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ bx lr
+_03803B80: .word 0x027FFC30
+_03803B84: .word 0x0000FFFF
+
+ arm_func_start CTRDGi_InitCommon
+CTRDGi_InitCommon: ;@ 0x03803B88
+ stmfd sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ str r0, [sp]
+ add r0, sp, #0
+ ldr r1, _03803BC0 ;@ =CTRDGi_Work
+ ldr r2, _03803BC4 ;@ =0x05000001
+ bl FUN_03803BC8
+ bl OS_GetLockID
+ ldr r1, _03803BC0 ;@ =CTRDGi_Work
+ strh r0, [r1, #2]
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ bx lr
+_03803BC0: .word CTRDGi_Work
+_03803BC4: .word 0x05000001
+
+ arm_func_start FUN_03803BC8
+FUN_03803BC8: ;@ 0x03803BC8
+ ldr ip, _03803BD0 ;@ =SVC_CpuSet
+ bx ip
+_03803BD0: .word SVC_CpuSet
diff --git a/arm7/asm/CTRDG_sp.s b/arm7/asm/CTRDG_sp.s
new file mode 100644
index 00000000..72c502c3
--- /dev/null
+++ b/arm7/asm/CTRDG_sp.s
@@ -0,0 +1,542 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .section .data
+
+ .global _03807704
+_03807704:
+ .word 0x00000001
+
+ .global _03807708
+_03807708:
+ .word 0xFFFFFFFF
+
+ .section .bss
+
+ .global _03809FBC
+_03809FBC: ;0x03809FBC
+ .space 0x03809FC0 - 0x03809FBC
+
+ .global current_vib
+current_vib: ;0x03809FC0
+ .space 0x03809FC4 - 0x03809FC0
+
+ .global _03809FC4
+_03809FC4: ;0x03809FC4
+ .space 0x03809FC8 - 0x03809FC4
+
+ .global _03809FC8
+_03809FC8: ;0x03809FC8
+ .space 0x03809FCC - 0x03809FC8
+
+ .global _03809FCC
+_03809FCC: ;0x03809FCC
+ .space 0x03809FD0 - 0x03809FCC
+
+ .global _03809FD0
+_03809FD0: ;0x03809FD0
+ .space 0x03809FD4 - 0x03809FD0
+
+ .global _03809FD4
+_03809FD4: ;0x03809FD4
+ .space 0x03809FEC - 0x03809FD4
+
+ .global _03809FEC
+_03809FEC: ;0x03809FEC
+ .space 0x0380A018 - 0x03809FEC
+
+ .section .text
+
+ arm_func_start FUN_03803BD4
+FUN_03803BD4: ;@ 0x03803BD4
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ and r0, r1, #63 ;@ 0x3f
+ cmp r0, #3
+ bne _03803C40
+ ldr r0, _03803C50 ;@ =0x01FFFFC0
+ and r0, r1, r0
+ mov r2, r0, lsr #6
+ ldr r1, _03803C54 ;@ =0x04000204
+ ldrh r0, [r1]
+ bic r0, r0, #96 ;@ 0x60
+ orr r0, r0, r2, lsl #5
+ strh r0, [r1]
+ mov r7, #1
+ mov r6, #17
+ mov r5, #18
+ mov r4, #0
+ b _03803C24
+_03803C1C:
+ mov r0, r7
+ bl FUN_037F8CB4
+_03803C24:
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl PXI_SendWordByFifo
+ cmp r0, #0
+ bne _03803C1C
+ b _03803C44
+_03803C40:
+ bl OS_Terminate
+_03803C44:
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, lr}
+ bx lr
+_03803C50: .word 0x01FFFFC0
+_03803C54: .word 0x04000204
+
+ arm_func_start CTRDGi_TerminateARM7
+CTRDGi_TerminateARM7: ;@ 0x03803C58
+ stmfd sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #0
+ bl CTRDG_VibPulseEdgeUpdate
+ bl SND_BeginSleep
+ bl WVR_Shutdown
+ bl OS_Terminate
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start CTRDG_CheckPullOut_Polling
+CTRDG_CheckPullOut_Polling: ;@ 0x03803C80
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ ldr r1, _03803D80 ;@ =_03807708
+ ldr r3, [r1]
+ mvn r0, #0
+ cmp r3, r0
+ ldreq r0, _03803D84 ;@ =0x027FFC3C
+ ldreq r0, [r0]
+ addeq r0, r0, #10
+ streq r0, [r1]
+ beq _03803D74
+ ldr r0, _03803D88 ;@ =_03809FCC
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _03803D74
+ ldr r0, _03803D8C ;@ =_03809FC8
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _03803D74
+ ldr r2, _03803D84 ;@ =0x027FFC3C
+ ldr r0, [r2]
+ cmp r0, r3
+ bcc _03803D74
+ ldr r0, [r2]
+ add r0, r0, #10
+ str r0, [r1]
+ bl CTRDG_IsPulledOut
+ ldr r1, _03803D8C ;@ =_03809FC8
+ str r0, [r1]
+ bl CTRDG_IsExisting
+ cmp r0, #0
+ bne _03803D28
+ ldr r0, _03803D90 ;@ =_03807704
+ ldr r0, [r0]
+ cmp r0, #0
+ movne r1, #1
+ ldrne r0, _03803D88 ;@ =_03809FCC
+ strne r1, [r0]
+ bne _03803D74
+ mov r1, #1
+ ldr r0, _03803D8C ;@ =_03809FC8
+ str r1, [r0]
+_03803D28:
+ mov r7, #0
+ ldr r0, _03803D90 ;@ =_03807704
+ str r7, [r0]
+ ldr r0, _03803D8C ;@ =_03809FC8
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _03803D74
+ mov r6, #100 ;@ 0x64
+ mov r5, #13
+ mov r4, #17
+ b _03803D5C
+_03803D54:
+ mov r0, r6
+ bl OS_Sleep
+_03803D5C:
+ mov r0, r5
+ mov r1, r4
+ mov r2, r7
+ bl PXI_SendWordByFifo
+ cmp r0, #0
+ bne _03803D54
+_03803D74:
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, lr}
+ bx lr
+_03803D80: .word _03807708
+_03803D84: .word 0x027FFC3C
+_03803D88: .word _03809FCC
+_03803D8C: .word _03809FC8
+_03803D90: .word _03807704
+
+ arm_func_start CTRDGi_IsNinLogoOfAgb
+CTRDGi_IsNinLogoOfAgb: ;@ 0x03803D94
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ mov r7, r0
+ mov r0, #134217728 ;@ 0x8000000
+ add r6, r0, #4
+ mov r4, #1
+ bl OS_GetLockID
+ mov r0, r0, lsl #16
+ mov r5, r0, lsr #16
+ mov r0, r5
+ bl OS_LockCartridge
+ mov r1, #0
+ ldr r0, _03803E3C ;@ =0x0000FFFF
+ eor r2, r0, #3
+ mov r2, r2, lsl #16
+ mov lr, r2, lsr #16
+ eor r2, r0, #132 ;@ 0x84
+ mov r2, r2, lsl #16
+ mov r8, r2, lsr #16
+ b _03803E18
+_03803DE0:
+ mov ip, r0
+ cmp r1, #76 ;@ 0x4c
+ moveq ip, r8
+ beq _03803DF8
+ cmp r1, #77 ;@ 0x4d
+ moveq ip, lr
+_03803DF8:
+ mov r3, r1, lsl #1
+ ldrh r2, [r7, r3]
+ and ip, ip, r2
+ ldrh r2, [r6, r3]
+ cmp ip, r2
+ movne r4, #0
+ bne _03803E20
+ add r1, r1, #1
+_03803E18:
+ cmp r1, #78 ;@ 0x4e
+ blt _03803DE0
+_03803E20:
+ mov r0, r5
+ bl OS_UnLockCartridge
+ mov r0, r5
+ bl OS_ReleaseLockID
+ mov r0, r4
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_03803E3C: .word 0x0000FFFF
+
+ arm_func_start FUN_03803E40
+FUN_03803E40: ;@ 0x03803E40
+ ldr r1, _03803E54 ;@ =current_vib
+ str r0, [r1]
+ ldr r1, _03803E58 ;@ =0x08001000
+ strh r0, [r1]
+ bx lr
+_03803E54: .word current_vib
+_03803E58: .word 0x08001000
+
+ arm_func_start CTRDG_VibPulseEdgeUpdate
+CTRDG_VibPulseEdgeUpdate: ;@ 0x03803E5C
+ stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ sub sp, sp, #4
+ movs r5, r0
+ beq _03803E9C
+ ldr r0, [r5]
+ cmp r0, #0
+ bne _03803E9C
+ ldr r0, [r5, #68] ;@ 0x44
+ add r0, r0, #1
+ str r0, [r5, #68] ;@ 0x44
+ ldr r1, [r5, #64] ;@ 0x40
+ cmp r1, #0
+ beq _03803E9C
+ ldr r0, [r5, #68] ;@ 0x44
+ cmp r0, r1
+ movhi r5, #0
+_03803E9C:
+ cmp r5, #0
+ beq _03803EB0
+ ldr r0, [r5, #60] ;@ 0x3c
+ cmp r0, #0
+ bne _03803F48
+_03803EB0:
+ bl OS_DisableInterrupts
+ mov r9, r0
+ ldr r0, _03804068 ;@ =current_vib
+ ldr r0, [r0]
+ cmp r0, #2
+ bne _03803F34
+ mov r8, #0
+ ldr r7, _0380406C ;@ =0x027FFFE8
+ ldr r4, _03804070 ;@ =_03809FBC
+ ldr fp, _03804074 ;@ =0x000080E8
+ mov r6, r8
+ mov r5, #1
+ b _03803F2C
+_03803EE4:
+ mov r0, r7
+ bl OS_ReadOwnerOfLockWord
+ ands sl, r0, #128 ;@ 0x80
+ bne _03803F04
+ ldrh r0, [r4]
+ bl OS_TryLockCartridge
+ cmp r0, #0
+ bne _03803F24
+_03803F04:
+ mov r0, r6
+ bl FUN_03803E40
+ mov r8, r5
+ cmp sl, #0
+ bne _03803F2C
+ ldrh r0, [r4]
+ bl OS_UnlockCartridge
+ b _03803F2C
+_03803F24:
+ mov r0, fp
+ bl OS_SpinWait
+_03803F2C:
+ cmp r8, #0
+ beq _03803EE4
+_03803F34:
+ ldr r0, _03804078 ;@ =_03809FEC
+ bl OS_CancelAlarm
+ mov r0, r9
+ bl OS_RestoreInterrupts
+ b _0380405C
+_03803F48:
+ cmp r5, #0
+ beq _0380405C
+ ldr r0, _0380406C ;@ =0x027FFFE8
+ bl OS_ReadOwnerOfLockWord
+ ands r4, r0, #128 ;@ 0x80
+ bne _03803F74
+ ldr r0, _03804070 ;@ =_03809FBC
+ ldrh r0, [r0]
+ bl OS_TryLockCartridge
+ cmp r0, #0
+ bne _03804044
+_03803F74:
+ ldr r1, [r5]
+ ldr r0, [r5, #4]
+ cmp r1, r0
+ bne _03803FB0
+ mov r0, #0
+ bl FUN_03803E40
+ str r5, [sp]
+ ldr r0, _03804078 ;@ =_03809FEC
+ ldr r1, [r5, #8]
+ mov r2, #0
+ ldr r3, _0380407C ;@ =CTRDG_VibPulseEdgeUpdate
+ bl OS_SetAlarm
+ mov r0, #0
+ str r0, [r5]
+ b _0380402C
+_03803FB0:
+ ands r0, r1, #1
+ beq _03803FF4
+ mov r0, #0
+ bl FUN_03803E40
+ str r5, [sp]
+ ldr r0, _03804078 ;@ =_03809FEC
+ ldr r1, [r5]
+ mov r1, r1, lsr #1
+ add r1, r5, r1, lsl #2
+ ldr r1, [r1, #36] ;@ 0x24
+ mov r2, #0
+ ldr r3, _0380407C ;@ =CTRDG_VibPulseEdgeUpdate
+ bl OS_SetAlarm
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0380402C
+_03803FF4:
+ mov r0, #2
+ bl FUN_03803E40
+ str r5, [sp]
+ ldr r0, _03804078 ;@ =_03809FEC
+ ldr r1, [r5]
+ mov r1, r1, lsr #1
+ add r1, r5, r1, lsl #2
+ ldr r1, [r1, #12]
+ mov r2, #0
+ ldr r3, _0380407C ;@ =CTRDG_VibPulseEdgeUpdate
+ bl OS_SetAlarm
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+_0380402C:
+ cmp r4, #0
+ bne _0380405C
+ ldr r0, _03804070 ;@ =_03809FBC
+ ldrh r0, [r0]
+ bl OS_UnlockCartridge
+ b _0380405C
+_03804044:
+ str r5, [sp]
+ ldr r0, _03804078 ;@ =_03809FEC
+ ldr r1, _03804080 ;@ =0x0000020B
+ mov r2, #0
+ ldr r3, _0380407C ;@ =CTRDG_VibPulseEdgeUpdate
+ bl OS_SetAlarm
+_0380405C:
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ bx lr
+_03804068: .word current_vib
+_0380406C: .word 0x027FFFE8
+_03804070: .word _03809FBC
+_03804074: .word 0x000080E8
+_03804078: .word _03809FEC
+_0380407C: .word CTRDG_VibPulseEdgeUpdate
+_03804080: .word 0x0000020B
+_03804084:
+ mov r0, r1
+ ldr ip, _03804090 ;@ =CTRDG_VibPulseEdgeUpdate
+ bx ip
+_03804090: .word CTRDG_VibPulseEdgeUpdate
+
+ arm_func_start CTRDGi_CallbackForPulledOut
+CTRDGi_CallbackForPulledOut: ;@ 0x03804094
+ stmfd sp!, {lr}
+ sub sp, sp, #4
+ and r0, r1, #63 ;@ 0x3ff
+ cmp r0, #2
+ bne _038040B0
+ bl CTRDGi_TerminateARM7
+ b _038040B4
+_038040B0:
+ bl OS_Terminate
+_038040B4:
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start CTRDGi_CallbackForInitModuleInfo
+CTRDGi_CallbackForInitModuleInfo: ;@ 0x038040C0
+ stmfd sp!, {lr}
+ sub sp, sp, #4
+ and r0, r1, #63 ;@ 0x3f
+ cmp r0, #1
+ ldreq r0, _038040F4 ;@ =_03809FD4
+ streq r1, [r0]
+ moveq r1, #1
+ streq r1, [r0, #16]
+ beq _038040E8
+ bl OS_Terminate
+_038040E8:
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ bx lr
+_038040F4: .word _03809FD4
+
+ arm_func_start CTRDGi_InitModuleInfo
+CTRDGi_InitModuleInfo: ;@ 0x038040F8
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ ldr r0, _038041C8 ;@ =_03809FC4
+ ldr r1, [r0]
+ cmp r1, #0
+ bne _038041BC
+ mov r1, #1
+ str r1, [r0]
+ ldr r0, _038041CC ;@ =0x04000300
+ ldrh r0, [r0]
+ ands r0, r0, #1
+ beq _038041BC
+ mov r0, #262144 ;@ 0x40000
+ bl OS_SetIrqMask
+ mov r5, r0
+ ldr r1, _038041D0 ;@ =0x04000208
+ ldrh r4, [r1]
+ mov r0, #1
+ strh r0, [r1]
+ mov r7, #256 ;@ 0x100
+ ldr r6, _038041D4 ;@ =_03809FD4
+ b _03804158
+_03804150:
+ mov r0, r7
+ bl FUN_037F8CB4
+_03804158:
+ ldr r0, [r6, #16]
+ cmp r0, #1
+ bne _03804150
+ ldr r1, [r6]
+ ldr r0, _038041D8 ;@ =0x01FFFFC0
+ and r0, r1, r0
+ mov r0, r0, lsr #6
+ mov r0, r0, lsl #5
+ add r0, r0, #33554432 ;@ 0x2000000
+ add r0, r0, #4
+ bl CTRDGi_IsNinLogoOfAgb
+ ldr r2, _038041DC ;@ =0x027FFC30
+ ldrb r1, [r2, #5]
+ bic r1, r1, #1
+ and r0, r0, #255 ;@ 0xff
+ and r0, r0, #1
+ orr r0, r1, r0
+ strb r0, [r2, #5]
+ mov r0, #1
+ bl CTRDGi_SendtoPxi
+ ldr r1, _038041D0 ;@ =0x04000208
+ ldrh r0, [r1]
+ strh r4, [r1]
+ mov r0, r5
+ bl OS_SetIrqMask
+_038041BC:
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, lr}
+ bx lr
+_038041C8: .word _03809FC4
+_038041CC: .word 0x04000300
+_038041D0: .word 0x04000208
+_038041D4: .word _03809FD4
+_038041D8: .word 0x01FFFFC0
+_038041DC: .word 0x027FFC30
+
+ arm_func_start CTRDG_Init
+CTRDG_Init: ;@ 0x038041E0
+ stmfd sp!, {lr}
+ sub sp, sp, #4
+ bl OS_InitTick
+ bl OS_InitAlarm
+ ldr r0, _03804270 ;@ =_03809FEC
+ bl OS_CreateAlarm
+ ldr r0, _03804274 ;@ =_03809FD0
+ ldr r1, [r0]
+ cmp r1, #0
+ bne _03804264
+ mov r1, #1
+ str r1, [r0]
+ bl CTRDGi_InitCommon
+ bl OS_GetLockID
+ mvn r1, #2
+ cmp r0, r1
+ beq _03804264
+ ldr r1, _03804278 ;@ =_03809FBC
+ strh r0, [r1]
+ bl PXI_Init
+ mov r0, #13
+ ldr r1, _0380427C ;@ =CTRDGi_CallbackForInitModuleInfo
+ bl PXI_SetFifoRecvCallback
+ bl CTRDGi_InitModuleInfo
+ mov r0, #13
+ ldr r1, _03804280 ;@ =CTRDGi_CallbackForPulledOut
+ bl PXI_SetFifoRecvCallback
+ mov r0, #16
+ ldr r1, _03804284 ;@ =_03804084
+ bl PXI_SetFifoRecvCallback
+ mov r0, #17
+ ldr r1, _03804288 ;@ =FUN_03803BD4
+ bl PXI_SetFifoRecvCallback
+_03804264:
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ bx lr
+_03804270: .word _03809FEC
+_03804274: .word _03809FD0
+_03804278: .word _03809FBC
+_0380427C: .word CTRDGi_CallbackForInitModuleInfo
+_03804280: .word CTRDGi_CallbackForPulledOut
+_03804284: .word _03804084
+_03804288: .word FUN_03803BD4
diff --git a/arm7/asm/OS_interrupt.s b/arm7/asm/OS_interrupt.s
deleted file mode 100644
index 0a999637..00000000
--- a/arm7/asm/OS_interrupt.s
+++ /dev/null
@@ -1,173 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .section .bss
-
- .global _03807744
-_03807744: ;0x03807744
- .space 0x03807748 - 0x03807744
-
- .global _03807748
-_03807748: ;0x03807748
- .space 0x0380774C - 0x03807748
-
- .global _0380774C
-_0380774C: ;0x0380774C
- .space 0x03807774 - 0x0380774C
-
- .global _03807774
-_03807774: ;0x03807774
- .space 0x03807780 - 0x03807774
-
- .section .text
-
- arm_func_start OS_ResetRequestIrqMask
-OS_ResetRequestIrqMask: ; 0x037F8824
- ldr ip, _037F8850 ; =0x04000208
- ldrh r3, [ip]
- mov r1, #0
- strh r1, [ip]
- ldr r2, _037F8854 ; =0x04000214
- ldr r1, [r2]
- str r0, [r2]
- ldrh r0, [ip]
- strh r3, [ip]
- mov r0, r1
- bx lr
-_037F8850: .word 0x04000208
-_037F8854: .word 0x04000214
-
- arm_func_start OS_DisableIrqMask
-OS_DisableIrqMask: ; 0x037F8858
- ldr ip, _037F888C ; =0x04000208
- ldrh r3, [ip]
- mov r1, #0
- strh r1, [ip]
- ldr r2, _037F8890 ; =0x04000210
- ldr r1, [r2]
- mvn r0, r0
- and r0, r1, r0
- str r0, [r2]
- ldrh r0, [ip]
- strh r3, [ip]
- mov r0, r1
- bx lr
-_037F888C: .word 0x04000208
-_037F8890: .word 0x04000210
-
- arm_func_start OS_EnableIrqMask
-OS_EnableIrqMask: ; 0x037F8894
- ldr ip, _037F88C4 ; =0x04000208
- ldrh r3, [ip]
- mov r1, #0
- strh r1, [ip]
- ldr r2, _037F88C8 ; =0x04000210
- ldr r1, [r2]
- orr r0, r1, r0
- str r0, [r2]
- ldrh r0, [ip]
- strh r3, [ip]
- mov r0, r1
- bx lr
-_037F88C4: .word 0x04000208
-_037F88C8: .word 0x04000210
-
- arm_func_start OS_SetIrqMask
-OS_SetIrqMask: ; 0x037F88CC
- ldr ip, _037F88F8 ; =0x04000208
- ldrh r3, [ip]
- mov r1, #0
- strh r1, [ip]
- ldr r2, _037F88FC ; =0x04000210
- ldr r1, [r2]
- str r0, [r2]
- ldrh r0, [ip]
- strh r3, [ip]
- mov r0, r1
- bx lr
-_037F88F8: .word 0x04000208
-_037F88FC: .word 0x04000210
-
- arm_func_start OSi_EnterTimerCallback
-OSi_EnterTimerCallback: ; 0x037F8900
- stmdb sp!, {r4, lr}
- mov r3, #12
- mul r4, r0, r3
- ldr r3, _037F8940 ; =_03807744
- str r1, [r3, r4]
- ldr r1, _037F8944 ; =_0380774C
- str r2, [r1, r4]
- mov r1, #1
- add r0, r0, #3
- mov r0, r1, lsl r0
- bl OS_EnableIrqMask
- mov r1, #1
- ldr r0, _037F8948 ; =_03807748
- str r1, [r0, r4]
- ldmia sp!, {r4, lr}
- bx lr
-_037F8940: .word _03807744
-_037F8944: .word _0380774C
-_037F8948: .word _03807748
-
- arm_func_start OS_SetIrqFunction
-OS_SetIrqFunction: ; 0x037F894C
- stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
- sub sp, sp, #4
- mov r9, #0
- mov r7, r9
- ldr lr, _037F89E8 ; =OS_IRQTable
- ldr r4, _037F89EC ; =_03807774
- ldr r6, _037F89F0 ; =OSi_IrqCallbackInfo
- mov ip, r9
- mov r3, #1
- mov r2, #12
-_037F8974:
- ands r5, r0, #1
- beq _037F89CC
- mov r8, r7
- cmp r9, #8
- blt _037F8998
- cmp r9, #11
- suble r5, r9, #8
- mlale r8, r5, r2, r6
- ble _037F89BC
-_037F8998:
- cmp r9, #3
- blt _037F89B0
- cmp r9, #6
- addle r5, r9, #1
- mlale r8, r5, r2, r6
- ble _037F89BC
-_037F89B0:
- cmp r9, #0
- moveq r8, r4
- strne r1, [lr, r9, lsl #2]
-_037F89BC:
- cmp r8, #0
- strne r1, [r8]
- strne ip, [r8, #8]
- strne r3, [r8, #4]
-_037F89CC:
- mov r0, r0, lsr #1
- add r9, r9, #1
- cmp r9, #25
- blt _037F8974
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, r8, r9, lr}
- bx lr
-_037F89E8: .word OS_IRQTable
-_037F89EC: .word _03807774
-_037F89F0: .word OSi_IrqCallbackInfo
-
- arm_func_start OS_InitIrqTable
-OS_InitIrqTable: ; 0x037F89F4
- mov r1, #0
- ldr r0, _037F8A10 ; =OSi_IrqThreadQueue
- str r1, [r0, #4]
- str r1, [r0]
- ldr r0, _037F8A14 ; =0x027FFC3C
- str r1, [r0]
- bx lr
-_037F8A10: .word OSi_IrqThreadQueue
-_037F8A14: .word 0x027FFC3C
diff --git a/arm7/asm/OS_irqHandler.s b/arm7/asm/OS_irqHandler.s
index 6c3ffc5a..b05113f1 100644
--- a/arm7/asm/OS_irqHandler.s
+++ b/arm7/asm/OS_irqHandler.s
@@ -1,44 +1,6 @@
.include "asm/macros.inc"
.include "global.inc"
- .section .data
-
- .global _038075E4
-_038075E4:
- .word 0x00090008
- .word 0x000B000A
- .word 0x00040003
- .word 0x00060005
- .word 0x00000000
-
- .global OS_IRQTable
-OS_IRQTable:
- .word OSi_IrqVBlank
- .word OS_IrqDummy
- .word OS_IrqDummy
- .word OSi_IrqTimer0
- .word OSi_IrqTimer1
- .word OSi_IrqTimer2
- .word OSi_IrqTimer3
- .word OS_IrqDummy
- .word OSi_IrqDma0
- .word OSi_IrqDma1
- .word OSi_IrqDma2
- .word OSi_IrqDma3
- .word OS_IrqDummy
- .word OS_IrqDummy
- .word OS_IrqDummy
- .word OS_IrqDummy
- .word OS_IrqDummy
- .word OS_IrqDummy
- .word OS_IrqDummy
- .word OS_IrqDummy
- .word OS_IrqDummy
- .word OS_IrqDummy
- .word OS_IrqDummy
- .word OS_IrqDummy
- .word OS_IrqDummy
-
.section .text
arm_func_start OS_IrqHandler
diff --git a/arm7/asm/OS_irqTable.s b/arm7/asm/OS_irqTable.s
index a61e448f..36a550fe 100644
--- a/arm7/asm/OS_irqTable.s
+++ b/arm7/asm/OS_irqTable.s
@@ -1,6 +1,44 @@
.include "asm/macros.inc"
.include "global.inc"
+ .section .data
+
+ .global _038075E4
+_038075E4:
+ .word 0x00090008
+ .word 0x000B000A
+ .word 0x00040003
+ .word 0x00060005
+ .word 0x00000000
+
+ .global OS_IRQTable
+OS_IRQTable:
+ .word OSi_IrqVBlank
+ .word OS_IrqDummy
+ .word OS_IrqDummy
+ .word OSi_IrqTimer0
+ .word OSi_IrqTimer1
+ .word OSi_IrqTimer2
+ .word OSi_IrqTimer3
+ .word OS_IrqDummy
+ .word OSi_IrqDma0
+ .word OSi_IrqDma1
+ .word OSi_IrqDma2
+ .word OSi_IrqDma3
+ .word OS_IrqDummy
+ .word OS_IrqDummy
+ .word OS_IrqDummy
+ .word OS_IrqDummy
+ .word OS_IrqDummy
+ .word OS_IrqDummy
+ .word OS_IrqDummy
+ .word OS_IrqDummy
+ .word OS_IrqDummy
+ .word OS_IrqDummy
+ .word OS_IrqDummy
+ .word OS_IrqDummy
+ .word OS_IrqDummy
+
.section .bss
.global OSi_IrqThreadQueue
@@ -19,6 +57,22 @@ _03807718: ;0x03807718
_0380771C: ;0x0380771C
.space 0x03807744 - 0x0380771C
+ .global _03807744
+_03807744: ;0x03807744
+ .space 0x03807748 - 0x03807744
+
+ .global _03807748
+_03807748: ;0x03807748
+ .space 0x0380774C - 0x03807748
+
+ .global _0380774C
+_0380774C: ;0x0380774C
+ .space 0x03807774 - 0x0380774C
+
+ .global _03807774
+_03807774: ;0x03807774
+ .space 0x03807780 - 0x03807774
+
.section .text
arm_func_start OSi_IrqVBlank
diff --git a/arm7/asm/OS_spinLock.s b/arm7/asm/OS_spinLock.s
deleted file mode 100644
index bb15916e..00000000
--- a/arm7/asm/OS_spinLock.s
+++ /dev/null
@@ -1,278 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .section .bss
-
- .global _03807780
-_03807780: ;0x03807780
- .space 0x03807784 - 0x03807780
-
- .section .text
-
- arm_func_start OS_UnLockCartridge
-OS_UnLockCartridge: ; 0x037F8A18
- ldr r1, _037F8A20 ; =OS_UnlockCartridge
- bx r1
-_037F8A20: .word OS_UnlockCartridge
-
- arm_func_start OS_GetLockID
-OS_GetLockID: ; 0x037F8A24
- ldr r3, _037F8AB4 ; =0x027FFFB8
- ldr r1, [r3]
- mov r2, #0
- mov r0, #-2147483648 ; 0x80000000
-_037F8A34:
- tst r1, r0
- bne _037F8A50
- add r2, r2, #1
- cmp r2, #32
- beq _037F8A50
- mov r0, r0, lsr #1
- b _037F8A34
-_037F8A50:
- cmp r2, #32
- movne r0, #128 ; 0x80
- bne _037F8A98
- add r3, r3, #4
- ldr r1, [r3]
- mov r2, #0
- mov r0, #-2147483648 ; 0x80000000
-_037F8A6C:
- tst r1, r0
- bne _037F8A88
- add r2, r2, #1
- cmp r2, #32
- beq _037F8A88
- mov r0, r0, lsr #1
- b _037F8A6C
-_037F8A88:
- cmp r2, #32
- ldr r0, _037F8AB8 ; =0xFFFFFFFD
- bxeq lr
- mov r0, #160 ; 0xa0
-_037F8A98:
- add r0, r0, r2
- mov r1, #-2147483648 ; 0x80000000
- mov r1, r1, lsr r2
- ldr r2, [r3]
- bic r2, r2, r1
- str r2, [r3]
- bx lr
-_037F8AB4: .word 0x027FFFB8
-_037F8AB8: .word 0xFFFFFFFD
-
- arm_func_start OS_ReleaseLockID
-OS_ReleaseLockID: ; 0x037F8ABC
- ldr r3, _037F8AE8 ; =0x027FFFB8
- cmp r0, #160 ; 0xa0
- addpl r3, r3, #4
- subpl r0, r0, #160 ; 0xa0
- submi r0, r0, #128 ; 0x80
- mov r1, #-2147483648 ; 0x80000000
- mov r1, r1, lsr r0
- ldr r2, [r3]
- orr r2, r2, r1
- str r2, [r3]
- bx lr
-_037F8AE8: .word 0x027FFFB8
-
- arm_func_start OS_ReadOwnerOfLockWord
-OS_ReadOwnerOfLockWord: ; 0x037F8AEC
- ldrh r0, [r0, #4]
- bx lr
-
- arm_func_start OSi_FreeCartridgeBus
-OSi_FreeCartridgeBus: ;0x037F8AF4
- bx lr
-
- arm_func_start OSi_AllocateCartridgeBus
-OSi_AllocateCartridgeBus: ;0x037F8AF8
- bx lr
-
- arm_func_start OS_TryLockCartridge
-OS_TryLockCartridge: ; 0x037F8AFC
- ldr r1, _037F8B10 ; =0x027FFFE8
- ldr r2, _037F8B14 ; =OSi_AllocateCartridgeBus
- mov r3, #1
- ldr ip, _037F8B18 ; =OSi_DoTryLockByWord
- bx ip
-_037F8B10: .word 0x027FFFE8
-_037F8B14: .word OSi_AllocateCartridgeBus
-_037F8B18: .word OSi_DoTryLockByWord
-
- arm_func_start OS_UnlockCartridge
-OS_UnlockCartridge: ; 0x037F8B1C
- ldr r1, _037F8B30 ; =0x027FFFE8
- ldr r2, _037F8B34 ; =OSi_FreeCartridgeBus
- mov r3, #1
- ldr ip, _037F8B38 ; =OSi_DoUnlockByWord
- bx ip
-_037F8B30: .word 0x027FFFE8
-_037F8B34: .word OSi_FreeCartridgeBus
-_037F8B38: .word OSi_DoUnlockByWord
-
- arm_func_start OS_LockCartridge
-OS_LockCartridge: ; 0x037F8B3C
- ldr r1, _037F8B50 ; =0x027FFFE8
- ldr r2, _037F8B54 ; =OSi_AllocateCartridgeBus
- mov r3, #1
- ldr ip, _037F8B58 ; =OSi_DoLockByWord
- bx ip
-_037F8B50: .word 0x027FFFE8
-_037F8B54: .word OSi_AllocateCartridgeBus
-_037F8B58: .word OSi_DoLockByWord
-
- arm_func_start OSi_DoTryLockByWord
-OSi_DoTryLockByWord: ; 0x037F8B5C
- stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
- sub sp, sp, #4
- mov r9, r0
- mov r8, r1
- mov r7, r2
- movs r6, r3
- beq _037F8B84
- bl OS_DisableInterrupts_IrqAndFiq
- mov r5, r0
- b _037F8B8C
-_037F8B84:
- bl OS_DisableInterrupts
- mov r5, r0
-_037F8B8C:
- mov r0, r9
- mov r1, r8
- bl MI_SwapWord
- movs r4, r0
- bne _037F8BB4
- cmp r7, #0
- beq _037F8BB0
- mov lr, pc
- bx r7
-_037F8BB0:
- strh r9, [r8, #4]
-_037F8BB4:
- cmp r6, #0
- beq _037F8BC8
- mov r0, r5
- bl OS_RestoreInterrupts_IrqAndFiq
- b _037F8BD0
-_037F8BC8:
- mov r0, r5
- bl OS_RestoreInterrupts
-_037F8BD0:
- mov r0, r4
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, r8, r9, lr}
- bx lr
-
- arm_func_start OSi_DoUnlockByWord
-OSi_DoUnlockByWord: ; 0x037F8BE0
- stmdb sp!, {r4, r5, r6, r7, lr}
- sub sp, sp, #4
- mov r7, r1
- mov r6, r2
- mov r5, r3
- ldrh r1, [r7, #4]
- cmp r0, r1
- mvnne r0, #1
- bne _037F8C60
- cmp r5, #0
- beq _037F8C18
- bl OS_DisableInterrupts_IrqAndFiq
- mov r4, r0
- b _037F8C20
-_037F8C18:
- bl OS_DisableInterrupts
- mov r4, r0
-_037F8C20:
- mov r0, #0
- strh r0, [r7, #4]
- cmp r6, #0
- beq _037F8C38
- mov lr, pc
- bx r6
-_037F8C38:
- mov r0, #0
- str r0, [r7]
- cmp r5, #0
- beq _037F8C54
- mov r0, r4
- bl OS_RestoreInterrupts_IrqAndFiq
- b _037F8C5C
-_037F8C54:
- mov r0, r4
- bl OS_RestoreInterrupts
-_037F8C5C:
- mov r0, #0
-_037F8C60:
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, lr}
- bx lr
-
- arm_func_start OSi_DoLockByWord
-OSi_DoLockByWord: ; 0x037F8C6C
- stmdb sp!, {r4, r5, r6, r7, r8, lr}
- mov r8, r0
- mov r7, r1
- mov r6, r2
- mov r5, r3
- mov r4, #1024 ; 0x400
- b _037F8C90
-_037F8C88:
- mov r0, r4
- bl FUN_037F8CB4
-_037F8C90:
- mov r0, r8
- mov r1, r7
- mov r2, r6
- mov r3, r5
- bl OSi_DoTryLockByWord
- cmp r0, #0
- bgt _037F8C88
- ldmia sp!, {r4, r5, r6, r7, r8, lr}
- bx lr
-
- arm_func_start FUN_037F8CB4
-FUN_037F8CB4: ; 0x037F8CB4 ;part of the above func?
- ldr ip, _037F8CBC ; =SVC_WaitByLoop
- bx ip
-_037F8CBC: .word SVC_WaitByLoop
-
- arm_func_start OS_InitLock
-OS_InitLock: ; 0x037F8CC0
- stmdb sp!, {r4, r5, lr}
- sub sp, sp, #4
- ldr r0, _037F8D38 ; =_03807780
- ldr r1, [r0]
- cmp r1, #0
- bne _037F8D2C
- mov r1, #1
- str r1, [r0]
- mov r0, #0
- ldr r4, _037F8D3C ; =0x027FFFF0
- strh r0, [r4, #6]
- mov r5, #1024 ; 0x400
- b _037F8CFC
-_037F8CF4:
- mov r0, r5
- bl FUN_037F8CB4
-_037F8CFC:
- ldrh r0, [r4, #4]
- cmp r0, #127 ; 0x7f
- bne _037F8CF4
- mvn r1, #0
- ldr r0, _037F8D40 ; =0x027FFFB8
- str r1, [r0]
- mov r0, #65536 ; 0x10000
- rsb r1, r0, #0
- ldr r0, _037F8D44 ; =0x027FFFBC
- str r1, [r0]
- mov r0, #191 ; 0xbf
- strh r0, [r4, #6]
-_037F8D2C:
- add sp, sp, #4
- ldmia sp!, {r4, r5, lr}
- bx lr
-_037F8D38: .word _03807780
-_037F8D3C: .word 0x027FFFF0
-_037F8D40: .word 0x027FFFB8
-_037F8D44: .word 0x027FFFBC
diff --git a/arm7/asm/OS_terminate_proc.s b/arm7/asm/OS_terminate_proc.s
deleted file mode 100644
index 08b79c9a..00000000
--- a/arm7/asm/OS_terminate_proc.s
+++ /dev/null
@@ -1,15 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .text
-
- arm_func_start OS_Terminate
-OS_Terminate: ; 0x037FB1F0
- stmfd sp!, {lr}
- sub sp, sp, #4
- mov r0, #0
- bl CTRDG_VibPulseEdgeUpdate
-_037FB200:
- bl OS_DisableInterrupts
- bl FUN_037F8530
- b _037FB200
diff --git a/arm7/asm/SPI_main.s b/arm7/asm/SPI_main.s
new file mode 100644
index 00000000..15229ce6
--- /dev/null
+++ b/arm7/asm/SPI_main.s
@@ -0,0 +1,481 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .section .bss
+
+ .global _038099AC
+_038099AC: ;0x038099AC
+ .space 0x038099B0 - 0x038099AC
+
+ .global _038099B0
+_038099B0: ;0x038099B0
+ .space 0x038099B8 - 0x038099B0
+
+ .global _038099B8
+_038099B8: ;0x038099B8
+ .space 0x03809C5C - 0x038099B8
+
+ .global _03809C5C
+_03809C5C: ;0x03809C5C
+ .space 0x03809C7C - 0x03809C5C
+
+ .global _03809C7C
+_03809C7C: ;0x03809C7C
+ .space 0x03809CBC - 0x03809C7C
+
+ .global _03809CBC
+_03809CBC: ;0x03809CBC
+ .space 0x03809CC0 - 0x03809CBC
+
+ .global _03809CC0
+_03809CC0: ;0x03809CC0
+ .space 0x03809E40 - 0x03809CC0
+
+ .global _03809E40
+_03809E40: ;0x03809E40
+ .space 0x03809E4C - 0x03809E40
+
+ .section .text
+
+ arm_func_start FUN_03801150
+FUN_03801150: ;@ 0x03801150
+ stmfd sp!, {lr}
+ sub sp, sp, #4
+ cmp r2, #0
+ bne _038011B4
+ sub r0, r0, #4
+ cmp r0, #5
+ addls pc, pc, r0, lsl #2
+ b _038011B4
+ b _038011AC
+ b _038011B4
+ b _03801188
+ b _038011B4
+ b _038011A0
+ b _03801194
+_03801188:
+ mov r0, r1
+ bl TP_AnalyzeCommand
+ b _038011B4
+_03801194:
+ mov r0, r1
+ bl MIC_AnalyzeCommand
+ b _038011B4
+_038011A0:
+ mov r0, r1
+ bl PM_AnalyzeCommand
+ b _038011B4
+_038011AC:
+ mov r0, r1
+ bl NVRAM_AnalyzeCommand
+_038011B4:
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start FUN_038011C0
+FUN_038011C0: ;@ 0x038011C0
+ stmdb sp!, {r4, r5, r6, lr}
+ sub sp, sp, #8
+ ldr r6, _03801228 ;@ =_03809C5C
+ add r5, sp, #0
+ mov r4, #1
+_038011D4:
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl OS_ReceiveMessage
+ ldr r0, [sp]
+ ldr r1, [r0]
+ cmp r1, #3
+ addls pc, pc, r1, lsl #2
+ b _038011D4
+ b _03801208
+ b _03801220
+ b _03801210
+ b _03801218
+_03801208:
+ bl TP_ExecuteProcess
+ b _038011D4
+_03801210:
+ bl MIC_ExecuteProcess
+ b _038011D4
+_03801218:
+ bl PM_ExecuteProcess
+ b _038011D4
+_03801220:
+ bl NVRAM_ExecuteProcess
+ b _038011D4
+_03801228: .word _03809C5C
+
+ arm_func_start SPIi_CheckEntry
+SPIi_CheckEntry: ;@ 0x0380122C
+ stmfd sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _03801250 ;@ =_03809C5C
+ add r1, sp, #0
+ mov r2, #0
+ bl OS_ReadMessage
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ bx lr
+_03801250: .word _03809C5C
+
+ arm_func_start SPIi_SetEntry
+SPIi_SetEntry: ;@ 0x03801254
+ stmdb sp!, {r0, r1, r2, r3}
+ stmdb sp!, {r4, r5, r6, lr}
+ mov r5, r0
+ mov r4, r1
+ ldrh r0, [sp, #24]
+ cmp r0, #4
+ movhi r0, #0
+ bhi _0380130C
+ bl OS_DisableInterrupts
+ ldr r2, _03801318 ;@ =_038099B0
+ ldr r3, [r2, #1164] ;@ 0x48c
+ mov r1, #24
+ mul ip, r3, r1
+ ldr r3, _0380131C ;@ =_03809CBC
+ str r5, [r3, ip]
+ ldr r3, [r2, #1164] ;@ 0x48c
+ mul r5, r3, r1
+ ldr r3, _03801320 ;@ =_03809CC0
+ str r4, [r3, r5]
+ add r3, sp, #24
+ bic r3, r3, #3
+ add r6, r3, #4
+ mov lr, #0
+ ldrh ip, [sp, #24]
+ b _038012D4
+_038012B8:
+ add r6, r6, #4
+ ldr r5, [r6, #-4]
+ ldr r4, [r2, #1164] ;@ 0x48c
+ mla r3, r4, r1, r2
+ add r3, r3, lr, lsl #2
+ str r5, [r3, #788] ;@ 0x314
+ add lr, lr, #1
+_038012D4:
+ cmp lr, ip
+ blt _038012B8
+ ldr r1, _03801318 ;@ =_038099B0
+ ldr r4, [r1, #1164] ;@ 0x48c
+ add r2, r4, #1
+ and r2, r2, #15
+ str r2, [r1, #1164] ;@ 0x48c
+ bl OS_RestoreInterrupts
+ ldr r0, _03801324 ;@ =_03809C5C
+ ldr r2, _0380131C ;@ =_03809CBC
+ mov r1, #24
+ mla r1, r4, r1, r2
+ mov r2, #0
+ bl OS_SendMessage
+_0380130C:
+ ldmia sp!, {r4, r5, r6, lr}
+ add sp, sp, #16
+ bx lr
+_03801318: .word _038099B0
+_0380131C: .word _03809CBC
+_03801320: .word _03809CC0
+_03801324: .word _03809C5C
+
+ arm_func_start SPIi_ReleaseException
+SPIi_ReleaseException: ;@ 0x03801328
+ stmfd sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _03801364 ;@ =_038099B0
+ ldr r2, [r1, #4]
+ cmp r2, r0
+ bne _03801358
+ mov r0, #5
+ str r0, [r1, #4]
+ mov r0, #0
+ str r0, [r1]
+ ldr r0, _03801368 ;@ =_03809E40
+ bl OS_WakeupThread
+_03801358:
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ bx lr
+_03801364: .word _038099B0
+_03801368: .word _03809E40
+
+ arm_func_start SPIi_GetException
+SPIi_GetException: ;@ 0x0380136C
+ mov r2, #1
+ ldr r1, _03801380 ;@ =_038099B0
+ str r2, [r1]
+ str r0, [r1, #4]
+ bx lr
+_03801380: .word _038099B0
+
+ arm_func_start SPIi_CheckException
+SPIi_CheckException: ;@ 0x03801384
+ ldr r0, _0380139C ;@ =_038099B0
+ ldr r0, [r0]
+ cmp r0, #0
+ moveq r0, #1
+ movne r0, #0
+ bx lr
+_0380139C: .word _038099B0
+
+ arm_func_start SPIi_ReturnResult
+SPIi_ReturnResult: ;@ 0x038013A0
+ stmdb sp!, {r4, r5, r6, lr}
+ and r2, r0, #112 ;@ 0x70
+ cmp r2, #48 ;@ 0x30
+ bgt _038013E0
+ cmp r2, #48 ;@ 0x30
+ bge _03801434
+ cmp r2, #16
+ bgt _038013D4
+ cmp r2, #16
+ bge _0380141C
+ cmp r2, #0
+ beq _0380141C
+ b _03801438
+_038013D4:
+ cmp r2, #32
+ beq _03801434
+ b _03801438
+_038013E0:
+ cmp r2, #80 ;@ 0x50
+ bgt _038013FC
+ cmp r2, #80 ;@ 0x50
+ bge _03801424
+ cmp r2, #64 ;@ 0x40
+ beq _03801424
+ b _03801438
+_038013FC:
+ cmp r2, #96 ;@ 0x60
+ bgt _03801410
+ cmp r2, #96 ;@ 0x60
+ beq _0380142C
+ b _03801438
+_03801410:
+ cmp r2, #112 ;@ 0x70
+ beq _0380142C
+ b _03801438
+_0380141C:
+ mov r4, #6
+ b _03801438
+_03801424:
+ mov r4, #9
+ b _03801438
+_0380142C:
+ mov r4, #8
+ b _03801438
+_03801434:
+ mov r4, #4
+_03801438:
+ and r0, r0, #255 ;@ 0xff
+ orr r0, r0, #128 ;@ 0x80
+ mov r0, r0, lsl #8
+ orr r2, r0, #50331648 ;@ 0x3000000
+ and r0, r1, #255 ;@ 0xff
+ orr r6, r2, r0
+ mov r5, #0
+_03801454:
+ mov r0, r4
+ mov r1, r6
+ mov r2, r5
+ bl PXI_SendWordByFifo
+ cmp r0, #0
+ blt _03801454
+ ldmia sp!, {r4, r5, r6, lr}
+ bx lr
+
+ arm_func_start SPI_Unlock
+SPI_Unlock: ;@ 0x03801474
+ stmfd sp!, {lr}
+ sub sp, sp, #4
+ ldr r1, _038014D8 ;@ =_038099B0
+ ldr r2, [r1]
+ cmp r2, #0
+ beq _038014CC
+ ldr r2, [r1, #4]
+ cmp r2, #4
+ bne _038014CC
+ ldr r1, [r1, #1176] ;@ 0x498
+ cmp r1, r0
+ bne _038014CC
+ bl OS_DisableInterrupts
+ mov r2, #5
+ ldr r1, _038014D8 ;@ =_038099B0
+ str r2, [r1, #4]
+ mov r2, #0
+ str r2, [r1]
+ str r2, [r1, #1176] ;@ 0x498
+ bl OS_RestoreInterrupts
+ ldr r0, _038014DC ;@ =_03809E40
+ bl OS_WakeupThread
+_038014CC:
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ bx lr
+_038014D8: .word _038099B0
+_038014DC: .word _03809E40
+
+ arm_func_start SPI_Lock
+SPI_Lock: ;@ 0x038014E0
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ mov r7, r0
+ ldr r5, _0380153C ;@ =_03809E40
+ ldr r4, _03801540 ;@ =_038099B0
+_038014F4:
+ bl OS_DisableInterrupts
+ mov r6, r0
+ ldr r1, [r4]
+ cmp r1, #0
+ beq _03801518
+ bl OS_RestoreInterrupts
+ mov r0, r5
+ bl OS_SleepThread
+ b _038014F4
+_03801518:
+ mov r0, #4
+ bl SPIi_GetException
+ ldr r0, _03801540 ;@ =_038099B0
+ str r7, [r0, #1176] ;@ 0x498
+ mov r0, r6
+ bl OS_RestoreInterrupts
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, lr}
+ bx lr
+_0380153C: .word _03809E40
+_03801540: .word _038099B0
+
+ arm_func_start SPI_Init
+SPI_Init: ;@ 0x03801544
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #8
+ mov r4, r0
+ ldr r0, _03801640 ;@ =_038099AC
+ ldrh r1, [r0]
+ cmp r1, #0
+ bne _03801634
+ mov r1, #1
+ strh r1, [r0]
+ mov r1, #0
+ ldr r0, _03801644 ;@ =_038099B0
+ str r1, [r0]
+ mov r1, #5
+ str r1, [r0, #4]
+ bl TP_Init
+ bl NVRAM_Init
+ bl MIC_Init
+ bl PM_Init
+ bl PXI_Init
+ mov r0, #6
+ ldr r1, _03801648 ;@ =FUN_03801150
+ bl PXI_SetFifoRecvCallback
+ mov r0, #9
+ ldr r1, _03801648 ;@ =FUN_03801150
+ bl PXI_SetFifoRecvCallback
+ mov r0, #8
+ ldr r1, _03801648 ;@ =FUN_03801150
+ bl PXI_SetFifoRecvCallback
+ mov r0, #4
+ ldr r1, _03801648 ;@ =FUN_03801150
+ bl PXI_SetFifoRecvCallback
+ ldr r0, _0380164C ;@ =_03809C5C
+ ldr r1, _03801650 ;@ =_03809C7C
+ mov r2, #16
+ bl OS_InitMessageQueue
+ mov r8, #0
+ ldr r7, _03801654 ;@ =_03809CBC
+ mov r6, r8
+ mov r5, #24
+_038015E0:
+ mla r0, r8, r5, r7
+ mov r1, r6
+ mov r2, r5
+ bl MI_CpuFill8
+ add r8, r8, #1
+ cmp r8, #16
+ blt _038015E0
+ mov r2, #0
+ ldr r0, _03801644 ;@ =_038099B0
+ str r2, [r0, #1164] ;@ 0x48c
+ str r2, [r0, #1172] ;@ 0x494
+ str r2, [r0, #1168] ;@ 0x490
+ mov r0, #512 ;@ 0x200
+ str r0, [sp]
+ str r4, [sp, #4]
+ ldr r0, _03801658 ;@ =_038099B8
+ ldr r1, _0380165C ;@ =FUN_038011C0
+ ldr r3, _0380164C ;@ =_03809C5C
+ bl OS_CreateThread
+ ldr r0, _03801658 ;@ =_038099B8
+ bl OS_WakeupThreadDirect
+_03801634:
+ add sp, sp, #8
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_03801640: .word _038099AC
+_03801644: .word _038099B0
+_03801648: .word FUN_03801150
+_0380164C: .word _03809C5C
+_03801650: .word _03809C7C
+_03801654: .word _03809CBC
+_03801658: .word _038099B8
+_0380165C: .word FUN_038011C0
+
+ arm_func_start FUN_03801660
+FUN_03801660: ;@ 0x03801660
+ stmfd sp!, {lr}
+ sub sp, sp, #4
+ cmp r0, #0
+ bne _03801680
+ mov r0, #3
+ mov r1, #2
+ bl SPIi_ReturnResult
+ b _03801698
+_03801680:
+ ldr r1, _038016A4 ;@ =_03809E54
+ str r0, [r1, #36] ;@ 0x24
+ str r0, [r1, #40] ;@ 0x28
+ mov r0, #3
+ mov r1, #0
+ bl SPIi_ReturnResult
+_03801698:
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ bx lr
+_038016A4: .word _03809E54
+
+ arm_func_start FUN_038016A8
+FUN_038016A8: ;@ 0x038016A8
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ mov r4, r0
+ mov r0, #0
+ mov r1, #16
+ mov r2, #1
+ mov r3, r4
+ bl SPIi_SetEntry
+ cmp r0, #0
+ bne _0380170C
+ ldr r0, [sp]
+ bic r0, r0, #100663296 ;@ 0x6000000
+ orr r0, r0, #100663296 ;@ 0x6000000
+ str r0, [sp]
+ ldrh r1, [sp]
+ ldr r0, _03801718 ;@ =0x027FFFAA
+ strh r1, [r0]
+ ldrh r1, [sp, #2]
+ ldr r0, _0380171C ;@ =0x027FFFAC
+ strh r1, [r0]
+ mov r0, #16
+ and r1, r4, #255 ;@ 0xff
+ mov r1, r1, lsl #16
+ mov r1, r1, lsr #16
+ bl SPIi_ReturnResult
+_0380170C:
+ add sp, sp, #8
+ ldmia sp!, {r4, lr}
+ bx lr
+_03801718: .word 0x027FFFAA
+_0380171C: .word 0x027FFFAC
diff --git a/arm7/asm/SPI_mic.s b/arm7/asm/SPI_mic.s
new file mode 100644
index 00000000..0178468f
--- /dev/null
+++ b/arm7/asm/SPI_mic.s
@@ -0,0 +1,852 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .section .bss
+
+ .global _03809F6C
+_03809F6C: ;0x03809F6C
+ .space 0x03809FA8 - 0x03809F6C
+
+ .global _03809FA8
+_03809FA8: ;0x03809FA8
+ .space 0x03809FB8 - 0x03809FA8
+
+ .section .text
+
+ arm_func_start FUN_03802D14
+FUN_03802D14: ;@ 0x03802D14
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ ldr r4, _03802E6C ;@ =_03809F6C
+ ldrh r5, [r4, #38] ;@ 0x26
+ and r0, r5, #4
+ cmp r0, #4
+ ldrh r6, [r4, #56] ;@ 0x38
+ ldrneh r7, [r4, #58] ;@ 0x3a
+ ldreq r7, _03802E70 ;@ =0x0000FFFF
+ bl SPIi_CheckEntry
+ cmp r0, #0
+ bne _03802D80
+ mov r0, #2
+ bl SPIi_CheckException
+ cmp r0, #0
+ beq _03802D80
+ and r0, r5, #1
+ cmp r0, #1
+ bne _03802D70
+ bl MIC_ExecSampling12
+ tst r5, #2
+ moveq r7, r0
+ eorne r7, r0, #32768 ;@ 0x8000
+ b _03802D80
+_03802D70:
+ bl MIC_ExecSampling8
+ tst r5, #2
+ moveq r7, r0
+ eorne r7, r0, #128 ;@ 0x80
+_03802D80:
+ and r0, r5, #1
+ ldr r3, _03802E74 ;@ =0x027FFC00
+ ldr r1, [r4, #44] ;@ 0x2c
+ cmp r0, #1
+ bne _03802DB0
+ ldr r2, [r4, #40] ;@ 0x28
+ strh r7, [r2, r1]!
+ str r2, [r3, #912] ;@ 0x390
+ add r3, r3, #916 ;@ 0x394
+ strh r7, [r3]
+ add r1, r1, #2
+ b _03802DE8
+_03802DB0:
+ and r7, r7, #255 ;@ 0xff
+ tst r1, #1
+ bne _03802DC8
+ mov r6, r7
+ add r1, r1, #1
+ b _03802DE8
+_03802DC8:
+ orr r0, r6, r7, lsl #8
+ ldr r2, [r4, #40] ;@ 0x28
+ sub r1, r1, #1
+ strh r0, [r2, r1]!
+ str r2, [r3, #912] ;@ 0x390
+ add r3, r3, #916 ;@ 0x394
+ strh r0, [r3]
+ add r1, r1, #2
+_03802DE8:
+ strh r6, [r4, #56] ;@ 0x38
+ strh r7, [r4, #58] ;@ 0x3a
+ ldr r0, [r4, #48] ;@ 0x30
+ cmp r1, r0
+ movcs r1, #0
+ str r1, [r4, #44] ;@ 0x2c
+ bcc _03802E64
+ ldrh r0, [r4, #36] ;@ 0x24
+ and r0, r0, #16
+ cmp r0, #16
+ bne _03802E24
+ mov r0, #81 ;@ 0x51
+ mov r1, #0
+ bl SPIi_ReturnResult
+ b _03802E64
+_03802E24:
+ mov r0, #2
+ mov r1, #66 ;@ 0x42
+ mov r2, #0
+ bl SPIi_SetEntry
+ cmp r0, #0
+ bne _03802E4C
+ mov r0, #81 ;@ 0x51
+ mov r1, #4
+ bl SPIi_ReturnResult
+ b _03802E64
+_03802E4C:
+ mov r0, #4
+ str r0, [r4, #32]
+ ldr r1, _03802E78 ;@ =0x0400010E
+ ldrh r0, [r1]
+ bic r0, r0, #128 ;@ 0x80
+ strh r0, [r1]
+_03802E64:
+ ldmia sp!, {r4, r5, r6, r7, lr}
+ bx lr
+_03802E6C: .word _03809F6C
+_03802E70: .word 0x0000FFFF
+_03802E74: .word 0x027FFC00
+_03802E78: .word 0x0400010E
+
+ arm_func_start FUN_03802E7C
+FUN_03802E7C: ;@ 0x03802E7C
+ stmfd sp!, {lr}
+ sub sp, sp, #4
+ bl FUN_03802D14
+ ldr r1, _03802EB0 ;@ =0x0380FFF8
+ ldr r0, [r1]
+ orr r0, r0, #64 ;@ 0x40
+ str r0, [r1]
+ mov r1, #64 ;@ 0x40
+ ldr r0, _03802EB4 ;@ =0x04000214
+ str r1, [r0]
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ bx lr
+_03802EB0: .word 0x0380FFF8
+_03802EB4: .word 0x04000214
+
+ arm_func_start MIC_ExecuteProcess
+MIC_ExecuteProcess: ;@ 0x03802EB8
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r5, r0
+ ldr r2, [r5, #4]
+ cmp r2, #64 ;@ 0x40
+ beq _03802EE4
+ cmp r2, #65 ;@ 0x41
+ beq _03802FB0
+ cmp r2, #66 ;@ 0x42
+ beq _0380304C
+ b _038030F0
+_03802EE4:
+ bl OS_DisableInterrupts
+ mov r4, r0
+ mov r0, #2
+ bl SPIi_CheckException
+ cmp r0, #0
+ bne _03802F1C
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ ldr r0, [r5, #4]
+ mov r0, r0, lsl #16
+ mov r0, r0, lsr #16
+ mov r1, #4
+ bl SPIi_ReturnResult
+ b _038030F0
+_03802F1C:
+ mov r0, #2
+ bl SPIi_GetException
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ ldr r0, [r5, #8]
+ and r0, r0, #1
+ cmp r0, #1
+ bne _03802F68
+ bl MIC_ExecSampling12
+ ldr r1, [r5, #8]
+ ands r1, r1, #2
+ eorne r0, r0, #32768 ;@ 0x8000
+ movne r0, r0, lsl #16
+ movne r0, r0, lsr #16
+ ldr r1, _038030FC ;@ =0x027FFF94
+ strh r0, [r1]
+ ldr r0, _03803100 ;@ =0x027FFF90
+ str r1, [r0]
+ b _03802F90
+_03802F68:
+ bl MIC_ExecSampling8
+ ldr r1, [r5, #8]
+ ands r1, r1, #2
+ eorne r0, r0, #128 ;@ 0x80
+ movne r0, r0, lsl #16
+ movne r0, r0, lsr #16
+ ldr r1, _038030FC ;@ =0x027FFF94
+ strh r0, [r1]
+ ldr r0, _03803100 ;@ =0x027FFF90
+ str r1, [r0]
+_03802F90:
+ ldr r0, [r5, #4]
+ mov r0, r0, lsl #16
+ mov r0, r0, lsr #16
+ mov r1, #0
+ bl SPIi_ReturnResult
+ mov r0, #2
+ bl SPIi_ReleaseException
+ b _038030F0
+_03802FB0:
+ ldr r0, _03803104 ;@ =_03809F6C
+ ldr r1, [r0, #32]
+ cmp r1, #1
+ bne _03803038
+ mov r1, #0
+ strh r1, [r0, #58] ;@ 0x3a
+ strh r1, [r0, #56] ;@ 0x38
+ bl OS_DisableInterrupts
+ mov r4, r0
+ mov r0, #64 ;@ 0x40
+ bl OS_EnableIrqMask
+ mov r0, #64 ;@ 0x40
+ ldr r1, _03803108 ;@ =FUN_03802E7C
+ bl MIC_SetIrqFunction
+ bl MIC_EnableMultipleInterrupt
+ ldr r0, _03803104 ;@ =_03809F6C
+ ldrh r2, [r0, #52] ;@ 0x34
+ ldr r1, _0380310C ;@ =0x0400010C
+ strh r2, [r1]
+ ldrh r0, [r0, #54] ;@ 0x36
+ orr r1, r0, #192 ;@ 0xc0
+ ldr r0, _03803110 ;@ =0x0400010E
+ strh r1, [r0]
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ ldr r0, [r5, #4]
+ mov r0, r0, lsl #16
+ mov r0, r0, lsr #16
+ mov r1, #0
+ bl SPIi_ReturnResult
+ mov r1, #2
+ ldr r0, _03803104 ;@ =_03809F6C
+ str r1, [r0, #32]
+ b _038030F0
+_03803038:
+ mov r0, r2, lsl #16
+ mov r0, r0, lsr #16
+ mov r1, #3
+ bl SPIi_ReturnResult
+ b _038030F0
+_0380304C:
+ ldr r0, _03803104 ;@ =_03809F6C
+ ldr r1, [r0, #32]
+ sub r0, r1, #3
+ cmp r0, #1
+ bhi _038030CC
+ ldr r1, _03803110 ;@ =0x0400010E
+ ldrh r0, [r1]
+ bic r0, r0, #128 ;@ 0x80
+ strh r0, [r1]
+ bl OS_DisableInterrupts
+ mov r4, r0
+ mov r0, #64 ;@ 0x40
+ mov r1, #0
+ bl MIC_SetIrqFunction
+ bl MIC_DisableMultipleInterrupt
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ ldr r0, _03803104 ;@ =_03809F6C
+ ldr r0, [r0, #32]
+ cmp r0, #3
+ bne _038030B0
+ mov r0, #66 ;@ 0x42
+ mov r1, #0
+ bl SPIi_ReturnResult
+ b _038030BC
+_038030B0:
+ mov r0, #81 ;@ 0x51
+ mov r1, #0
+ bl SPIi_ReturnResult
+_038030BC:
+ mov r1, #0
+ ldr r0, _03803104 ;@ =_03809F6C
+ str r1, [r0, #32]
+ b _038030F0
+_038030CC:
+ cmp r1, #3
+ bne _038030E4
+ mov r0, #66 ;@ 0x42
+ mov r1, #3
+ bl SPIi_ReturnResult
+ b _038030F0
+_038030E4:
+ mov r0, #81 ;@ 0x51
+ mov r1, #3
+ bl SPIi_ReturnResult
+_038030F0:
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, lr}
+ bx lr
+_038030FC: .word 0x027FFF94
+_03803100: .word 0x027FFF90
+_03803104: .word _03809F6C
+_03803108: .word FUN_03802E7C
+_0380310C: .word 0x0400010C
+_03803110: .word 0x0400010E
+
+ arm_func_start FUN_03803114
+FUN_03803114: ;@ 0x03803114
+ cmp r0, #65536 ;@ 0x10000
+ bcs _03803138
+ mov r2, #0
+ ldr r1, _038031B4 ;@ =_03809F6C
+ strh r2, [r1, #54] ;@ 0x36
+ rsb r0, r0, #65536 ;@ 0x10000
+ strh r0, [r1, #52] ;@ 0x34
+ mov r0, #1
+ bx lr
+_03803138:
+ cmp r0, #4194304 ;@ 0x400000
+ bcs _03803160
+ mov r2, #1
+ ldr r1, _038031B4 ;@ =_03809F6C
+ strh r2, [r1, #54] ;@ 0x36
+ mov r0, r0, lsr #6
+ rsb r0, r0, #65536 ;@ 0x10000
+ strh r0, [r1, #52] ;@ 0x34
+ mov r0, r2
+ bx lr
+_03803160:
+ cmp r0, #16777216 ;@ 0x1000000
+ bcs _03803188
+ mov r2, #2
+ ldr r1, _038031B4 ;@ =_03809F6C
+ strh r2, [r1, #54] ;@ 0x36
+ mov r0, r0, lsr #8
+ rsb r0, r0, #65536 ;@ 0x10000
+ strh r0, [r1, #52] ;@ 0x34
+ mov r0, #1
+ bx lr
+_03803188:
+ cmp r0, #67108864 ;@ 0x4000000
+ movcs r0, #0
+ bxcs lr
+ mov r2, #3
+ ldr r1, _038031B4 ;@ =_03809F6C
+ strh r2, [r1, #54] ;@ 0x36
+ mov r0, r0, lsr #10
+ rsb r0, r0, #65536 ;@ 0x10000
+ strh r0, [r1, #52] ;@ 0x34
+ mov r0, #1
+ bx lr
+_038031B4: .word _03809F6C
+
+ arm_func_start MIC_AnalyzeCommand
+MIC_AnalyzeCommand: ;@ 0x038031B8
+ stmdb sp!, {r4, lr}
+ ands r1, r0, #33554432 ;@ 0x2000000
+ beq _038031E4
+ mov r4, #0
+ mov r3, r4
+ ldr r1, _03803478 ;@ =_03809F6C
+_038031D0:
+ mov r2, r4, lsl #1
+ strh r3, [r1, r2]
+ add r4, r4, #1
+ cmp r4, #16
+ blt _038031D0
+_038031E4:
+ and r1, r0, #983040 ;@ 0xf0000
+ mov r1, r1, lsr #16
+ mov r2, r1, lsl #1
+ ldr r1, _03803478 ;@ =_03809F6C
+ strh r0, [r1, r2]
+ ands r0, r0, #16777216 ;@ 0x1000000
+ beq _03803470
+ ldrh r3, [r1]
+ and r0, r3, #65280 ;@ 0xff00
+ mov r0, r0, lsl #8
+ mov r4, r0, lsr #16
+ sub r0, r4, #64 ;@ 0x40
+ cmp r0, #3
+ addls pc, pc, r0, lsl #2
+ b _03803464
+ b _03803230
+ b _03803270
+ b _03803378
+ b _038033DC
+_03803230:
+ mov r0, #2
+ mov r1, r4
+ mov r2, #1
+ and r3, r3, #255 ;@ 0xff
+ bl SPIi_SetEntry
+ cmp r0, #0
+ bne _03803258
+ mov r0, r4
+ mov r1, #4
+ bl SPIi_ReturnResult
+_03803258:
+ mov r1, #0
+ ldr r0, _0380347C ;@ =0x027FFF94
+ strh r1, [r0]
+ ldr r0, _03803480 ;@ =0x027FFF90
+ str r1, [r0]
+ b _03803470
+_03803270:
+ ldr r0, [r1, #32]
+ cmp r0, #0
+ beq _0380328C
+ mov r0, r4
+ mov r1, #3
+ bl SPIi_ReturnResult
+ b _03803470
+_0380328C:
+ and r0, r3, #255 ;@ 0xff
+ strh r0, [r1, #36] ;@ 0x24
+ ldrh r2, [r1, #2]
+ ldrh r0, [r1, #4]
+ orr r3, r0, r2, lsl #16
+ cmp r3, #33554432 ;@ 0x2000000
+ bcc _038032B0
+ cmp r3, #37748736 ;@ 0x2400000
+ bcc _038032C0
+_038032B0:
+ mov r0, r4
+ mov r1, #2
+ bl SPIi_ReturnResult
+ b _03803470
+_038032C0:
+ str r3, [r1, #40] ;@ 0x28
+ ldrh r2, [r1, #6]
+ ldrh r0, [r1, #8]
+ orr r2, r0, r2, lsl #16
+ add r0, r3, r2
+ cmp r0, #37748736 ;@ 0x2400000
+ bls _038032EC
+ mov r0, r4
+ mov r1, #2
+ bl SPIi_ReturnResult
+ b _03803470
+_038032EC:
+ str r2, [r1, #48] ;@ 0x30
+ ldrh r2, [r1, #10]
+ ldrh r0, [r1, #12]
+ orr r0, r0, r2, lsl #16
+ bl FUN_03803114
+ cmp r0, #0
+ bne _03803318
+ mov r0, r4
+ mov r1, #2
+ bl SPIi_ReturnResult
+ b _03803470
+_03803318:
+ mov r2, #0
+ ldr r0, _03803478 ;@ =_03809F6C
+ str r2, [r0, #44] ;@ 0x2c
+ ldrh r1, [r0, #36] ;@ 0x24
+ and r1, r1, #7
+ strh r1, [r0, #38] ;@ 0x26
+ mov r0, #2
+ mov r1, r4
+ bl SPIi_SetEntry
+ cmp r0, #0
+ bne _03803354
+ mov r0, r4
+ mov r1, #4
+ bl SPIi_ReturnResult
+ b _03803470
+_03803354:
+ mov r1, #0
+ ldr r0, _0380347C ;@ =0x027FFF94
+ strh r1, [r0]
+ ldr r0, _03803480 ;@ =0x027FFF90
+ str r1, [r0]
+ mov r1, #1
+ ldr r0, _03803478 ;@ =_03809F6C
+ str r1, [r0, #32]
+ b _03803470
+_03803378:
+ ldr r0, [r1, #32]
+ cmp r0, #2
+ beq _03803394
+ mov r0, r4
+ mov r1, #3
+ bl SPIi_ReturnResult
+ b _03803470
+_03803394:
+ mov r0, #2
+ mov r1, r4
+ mov r2, #0
+ bl SPIi_SetEntry
+ cmp r0, #0
+ bne _038033BC
+ mov r0, r4
+ mov r1, #4
+ bl SPIi_ReturnResult
+ b _03803470
+_038033BC:
+ mov r1, #3
+ ldr r0, _03803478 ;@ =_03809F6C
+ str r1, [r0, #32]
+ ldr r1, _03803484 ;@ =0x0400010E
+ ldrh r0, [r1]
+ bic r0, r0, #128 ;@ 0x80
+ strh r0, [r1]
+ b _03803470
+_038033DC:
+ ldr r0, [r1, #32]
+ cmp r0, #2
+ beq _038033F8
+ mov r0, r4
+ mov r1, #3
+ bl SPIi_ReturnResult
+ b _03803470
+_038033F8:
+ ldrh r2, [r1, #2]
+ ldrh r0, [r1, #4]
+ orr r0, r0, r2, lsl #16
+ bl FUN_03803114
+ cmp r0, #0
+ bne _03803420
+ mov r0, r4
+ mov r1, #2
+ bl SPIi_ReturnResult
+ b _03803470
+_03803420:
+ bl OS_DisableInterrupts
+ ldr ip, _03803484 ;@ =0x0400010E
+ ldrh r1, [ip]
+ bic r1, r1, #128 ;@ 0x80
+ strh r1, [ip]
+ ldr r1, _03803478 ;@ =_03809F6C
+ ldrh r3, [r1, #52] ;@ 0x34
+ ldr r2, _03803488 ;@ =0x0400010C
+ strh r3, [r2]
+ ldrh r1, [r1, #54] ;@ 0x36
+ orr r1, r1, #192 ;@ 0xc0
+ strh r1, [ip]
+ bl OS_RestoreInterrupts
+ mov r0, r4
+ mov r1, #0
+ bl SPIi_ReturnResult
+ b _03803470
+_03803464:
+ mov r0, r4
+ mov r1, #1
+ bl SPIi_ReturnResult
+_03803470:
+ ldmia sp!, {r4, lr}
+ bx lr
+_03803478: .word _03809F6C
+_0380347C: .word 0x027FFF94
+_03803480: .word 0x027FFF90
+_03803484: .word 0x0400010E
+_03803488: .word 0x0400010C
+
+ arm_func_start MIC_Init
+MIC_Init: ;@ 0x0380348C
+ mov r3, #0
+ ldr r0, _038034C4 ;@ =_03809F6C
+ str r3, [r0, #32]
+ mov r2, r3
+_0380349C:
+ mov r1, r3, lsl #1
+ strh r2, [r0, r1]
+ add r3, r3, #1
+ cmp r3, #16
+ blt _0380349C
+ ldr r1, _038034C8 ;@ =0x0400010E
+ ldrh r0, [r1]
+ bic r0, r0, #128 ;@ 0x80
+ strh r0, [r1]
+ bx lr
+_038034C4: .word _03809F6C
+_038034C8: .word 0x0400010E
+
+ arm_func_start MIC_ExecSampling12
+MIC_ExecSampling12: ;@ 0x038034CC
+ ldr r1, _03803580 ;@ =0x040001C0
+_038034D0:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _038034D0
+ ldr r0, _03803584 ;@ =0x00008A01
+ strh r0, [r1]
+ mov r1, #228 ;@ 0xe4
+ ldr r0, _03803588 ;@ =0x040001C2
+ strh r1, [r0]
+ ldr r1, _03803580 ;@ =0x040001C0
+_038034F4:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _038034F4
+ mov r1, #0
+ ldr r0, _03803588 ;@ =0x040001C2
+ strh r1, [r0]
+ ldr r2, _03803580 ;@ =0x040001C0
+_03803510:
+ ldrh r0, [r2]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03803510
+ ldr r1, _03803588 ;@ =0x040001C2
+ ldrh r0, [r1]
+ and r0, r0, #255 ;@ 0xff
+ mov r0, r0, lsl #16
+ mov r0, r0, lsr #16
+ mov r0, r0, lsl #24
+ mov r3, r0, lsr #16
+ ldr r0, _0380358C ;@ =0x00008201
+ strh r0, [r2]
+ mov r0, #0
+ strh r0, [r1]
+ ldr r1, _03803580 ;@ =0x040001C0
+_0380354C:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _0380354C
+ ldr r0, _03803588 ;@ =0x040001C2
+ ldrh r0, [r0]
+ and r0, r0, #255 ;@ 0xff
+ mov r0, r0, lsl #16
+ orr r1, r3, r0, lsr #16
+ ldr r0, _03803590 ;@ =0x00007FF8
+ and r0, r1, r0
+ mov r0, r0, lsl #17
+ mov r0, r0, lsr #16
+ bx lr
+_03803580: .word 0x040001C0
+_03803584: .word 0x00008A01
+_03803588: .word 0x040001C2
+_0380358C: .word 0x00008201
+_03803590: .word 0x00007FF8
+
+ arm_func_start MIC_ExecSampling8
+MIC_ExecSampling8: ;@ 0x03803594
+ ldr r1, _03803648 ;@ =0x040001C0
+_03803598:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03803598
+ ldr r0, _0380364C ;@ =0x00008A01
+ strh r0, [r1]
+ mov r1, #236 ;@ 0xec
+ ldr r0, _03803650 ;@ =0x040001C2
+ strh r1, [r0]
+ ldr r1, _03803648 ;@ =0x040001C0
+_038035BC:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _038035BC
+ mov r1, #0
+ ldr r0, _03803650 ;@ =0x040001C2
+ strh r1, [r0]
+ ldr r2, _03803648 ;@ =0x040001C0
+_038035D8:
+ ldrh r0, [r2]
+ ands r0, r0, #128 ;@ 0x80
+ bne _038035D8
+ ldr r1, _03803650 ;@ =0x040001C2
+ ldrh r0, [r1]
+ and r0, r0, #255 ;@ 0xff
+ mov r0, r0, lsl #16
+ mov r0, r0, lsr #16
+ mov r0, r0, lsl #24
+ mov r3, r0, lsr #16
+ ldr r0, _03803654 ;@ =0x00008201
+ strh r0, [r2]
+ mov r0, #0
+ strh r0, [r1]
+ ldr r1, _03803648 ;@ =0x040001C0
+_03803614:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03803614
+ ldr r0, _03803650 ;@ =0x040001C2
+ ldrh r0, [r0]
+ and r0, r0, #255 ;@ 0xff
+ mov r0, r0, lsl #16
+ orr r1, r3, r0, lsr #16
+ ldr r0, _03803658 ;@ =0x00007F80
+ and r0, r1, r0
+ mov r0, r0, lsl #9
+ mov r0, r0, lsr #16
+ bx lr
+_03803648: .word 0x040001C0
+_0380364C: .word 0x00008A01
+_03803650: .word 0x040001C2
+_03803654: .word 0x00008201
+_03803658: .word 0x00007F80
+_0380365C:
+ mov ip, #67108864 ;@ 0x4000000
+ add r1, ip, #520 ;@ 0x208
+ ldrh r0, [r1]
+ tst r0, r0
+ bxeq lr
+ ldr r3, [ip, #528] ;@ 0x210
+ ldr r1, [ip, #532] ;@ 0x214
+ ands r2, r1, r3
+ bxeq lr
+ ldr r0, _038037C8 ;@ =0x01DF3FFF
+ tst r2, r0
+ streq r2, [ip, #532] ;@ 0x214
+ bxeq lr
+ stmfd sp!, {lr}
+ mrs r0, SPSR
+ stmfd sp!, {r0}
+ stmdb sp, {sp, lr}^
+ sub sp, sp, #8
+ mov r0, #159 ;@ 0x9f
+ msr CPSR_c, r0
+ ldr r1, _038037CC ;@ =OSi_ThreadInfo
+ ldrh r0, [r1, #2]
+ add r0, r0, #1
+ strh r0, [r1, #2]
+ ldr r1, _038037D0 ;@ =_03809FA8
+ cmp r0, #1
+ moveq r0, sp
+ ldreq sp, [r1, #4]
+ streq r0, [r1, #4]
+ stmfd sp!, {r3}
+ ldr r1, _038037D4 ;@ =_038072C8
+ ldr r0, [r1]
+ tst r0, r2
+ strne r0, [ip, #532] ;@ 0x214
+ ldrne r0, [r1, #4]
+ ldrne r3, _038037D8 ;@ =OS_IRQTable
+ ldrne r0, [r3, r0, lsl #2]
+ bne _03803738
+ mov r3, #1
+_038036F8:
+ ldr r0, [r1, r3, lsl #3]
+ tst r0, r2
+ addeq r3, r3, #1
+ beq _038036F8
+ str r0, [ip, #532] ;@ 0x214
+ add r0, r1, r3, lsl #3
+ ldr r2, [r0, #4]
+ ldr r3, _038037D8 ;@ =OS_IRQTable
+ ldr r0, [r3, r2, lsl #2]
+ ldr r2, _038037CC ;@ =OSi_ThreadInfo
+ ldrh r3, [r2, #2]
+ cmp r3, #1
+ ldreq r2, [r1]
+ streq r2, [ip, #528] ;@ 0x210
+ moveq r2, #31
+ msreq CPSR_c, r2
+_03803738:
+ ldr r1, [ip, #528] ;@ 0x210
+ stmfd sp!, {r1}
+ adr lr, _03803748
+ bx r0
+_03803748:
+ mov r0, #159 ;@ 0x9f
+ msr CPSR_c, r0
+ mov ip, #67108864 ;@ 0x4000000
+ ldmia sp!, {r0}
+ ldr r1, [ip, #528] ;@ 0x210
+ eor r2, r0, r1
+ and r1, r2, r1
+ and r0, r2, r0
+ ldmia sp!, {r3}
+ orr r3, r3, r1
+ bic r3, r3, r0
+ str r3, [ip, #528] ;@ 0x210
+ ldr r2, _038037CC ;@ =OSi_ThreadInfo
+ ldr r3, _038037D0 ;@ =_03809FA8
+ ldrh r0, [r2, #2]
+ subs r1, r0, #1
+ strh r1, [r2, #2]
+ moveq r0, sp
+ ldreq sp, [r3, #4]
+ streq r0, [r3, #4]
+ mov r0, #146 ;@ 0x92
+ msr CPSR_c, r0
+ ldmia sp, {sp, lr}^
+ nop ;@ (mov r0, r0)
+ add sp, sp, #8
+ ldmia sp!, {r0}
+ msr SPSR_fc, r0
+ tst r1, r1
+ ldreq r0, _038037DC ;@ =OS_IrqHandler_ThreadSwitch
+ addeq lr, pc, #0
+ bxeq r0
+ ldmia sp!, {pc}
+_038037C8: .word 0x01DF3FFF
+_038037CC: .word OSi_ThreadInfo
+_038037D0: .word _03809FA8
+_038037D4: .word _038072C8
+_038037D8: .word OS_IRQTable
+_038037DC: .word OS_IrqHandler_ThreadSwitch
+
+ arm_func_start MIC_DisableMultipleInterrupt
+MIC_DisableMultipleInterrupt: ;@ 0x038037E0
+ stmfd sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _03803820 ;@ =0x0380FFFC
+ ldr r1, [r0]
+ ldr r0, _03803824 ;@ =_0380365C
+ cmp r1, r0
+ bne _03803814
+ bl OS_DisableInterrupts
+ ldr r1, _03803828 ;@ =_03809FA8
+ ldr r2, [r1, #12]
+ ldr r1, _03803820 ;@ =0x0380FFFC
+ str r2, [r1]
+ bl OS_RestoreInterrupts
+_03803814:
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ bx lr
+_03803820: .word 0x0380FFFC
+_03803824: .word _0380365C
+_03803828: .word _03809FA8
+
+ arm_func_start MIC_EnableMultipleInterrupt
+MIC_EnableMultipleInterrupt: ;@ 0x0380382C
+ stmfd sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, _03803888 ;@ =0x0380FFFC
+ ldr r2, [r0]
+ ldr r0, _0380388C ;@ =_0380365C
+ cmp r2, r0
+ beq _0380387C
+ mov r1, #0
+ ldr r0, _03803890 ;@ =_03809FA8
+ str r1, [r0]
+ ldr r1, _03803894 ;@ =0x0380FE80
+ str r1, [r0, #4]
+ mov r1, #64 ;@ 0x40
+ str r1, [r0, #8]
+ str r2, [r0, #12]
+ bl OS_DisableInterrupts
+ ldr r2, _0380388C ;@ =_0380365C
+ ldr r1, _03803888 ;@ =0x0380FFFC
+ str r2, [r1]
+ bl OS_RestoreInterrupts
+_0380387C:
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ bx lr
+_03803888: .word 0x0380FFFC
+_0380388C: .word _0380365C
+_03803890: .word _03809FA8
+_03803894: .word 0x0380FE80
+
+ arm_func_start MIC_SetIrqFunction
+MIC_SetIrqFunction: ;@ 0x03803898
+ mov ip, #0
+ ldr r2, _038038BC ;@ =OS_IRQTable
+_038038A0:
+ ands r3, r0, #1
+ strne r1, [r2, ip, lsl #2]
+ mov r0, r0, lsr #1
+ add ip, ip, #1
+ cmp ip, #25
+ blt _038038A0
+ bx lr
+_038038BC: .word OS_IRQTable
diff --git a/arm7/asm/SPI_pm.s b/arm7/asm/SPI_pm.s
new file mode 100644
index 00000000..1960a3cd
--- /dev/null
+++ b/arm7/asm/SPI_pm.s
@@ -0,0 +1,847 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .section .data
+
+ .global PMi_LEDStatus
+PMi_LEDStatus:
+ .word 0x00000001
+
+ .global PMi_BlinkPatternData
+PMi_BlinkPatternData:
+ .word 0x00000000
+ .word 0xAA000000
+ .word 0x00010008
+ .word 0x00000000
+ .word 0xCC000000
+ .word 0x00010008
+ .word 0x00000000
+ .word 0xE3800000
+ .word 0x0001000C
+ .word 0x00000000
+ .word 0xF0F00000
+ .word 0x00010010
+ .word 0x00000000
+ .word 0xF83E0000
+ .word 0x00010014
+ .word 0x00000000
+ .word 0xFC000000
+ .word 0x0001000C
+ .word 0x00000000
+ .word 0xFF000000
+ .word 0x00010010
+ .word 0x00000000
+ .word 0xFFC00000
+ .word 0x00010014
+ .word 0x00000000
+ .word 0xFF000000
+ .word 0x00010020
+ .word 0x00000000
+ .word 0xFF00FF00
+ .word 0x00010020
+ .word 0x00000000
+ .word 0xFFFFFF00
+ .word 0x00010020
+ .word 0x00000000
+ .word 0xC3000000
+ .word 0x00020028
+
+ .section .bss
+
+ .global PMi_KeyPattern
+PMi_KeyPattern: ;0x03809F2C
+ .space 0x03809F30 - 0x03809F2C
+
+ .global PMi_TriggerBL
+PMi_TriggerBL: ;0x03809F30
+ .space 0x03809F34 - 0x03809F30
+
+ .global PMi_Initialized
+PMi_Initialized: ;0x03809F34
+ .space 0x03809F38 - 0x03809F34
+
+ .global PMi_Work
+PMi_Work: ;0x03809F38
+ .space 0x03809F64 - 0x03809F38
+
+ .global _03809F64
+_03809F64: ;0x03809F64
+ .space 0x03809F68 - 0x03809F64
+
+ .global PMi_BlinkPatternNo
+PMi_BlinkPatternNo: ;0x03809F68
+ .space 0x03809F6C - 0x03809F68
+
+ .section .text
+
+ arm_func_start PM_ExecuteProcess
+PM_ExecuteProcess: ;@ 0x038022BC
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r4, r0
+ bl OS_DisableInterrupts
+ mov r5, r0
+ mov r0, #3
+ bl SPIi_CheckException
+ cmp r0, #0
+ bne _03802300
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ ldr r0, [r4, #4]
+ mov r0, r0, lsl #16
+ mov r0, r0, lsr #16
+ mov r1, #4
+ bl SPIi_ReturnResult
+ b _0380242C
+_03802300:
+ mov r0, #3
+ bl SPIi_GetException
+ mov r0, r5
+ bl OS_RestoreInterrupts
+ ldr r1, [r4, #4]
+ sub r0, r1, #97 ;@ 0x61
+ cmp r0, #5
+ addls pc, pc, r0, lsl #2
+ b _03802414
+ b _0380233C
+ b _03802414
+ b _038023E0
+ b _03802368
+ b _038023A4
+ b _03802408
+_0380233C:
+ mov r1, #1
+ ldr r0, _03802438 ;@ =PMi_Work
+ str r1, [r0, #32]
+ ldr r1, [r4, #8]
+ ldr r0, _0380243C ;@ =PMi_TriggerBL
+ strh r1, [r0]
+ ldr r1, [r4, #12]
+ ldr r0, _03802440 ;@ =PMi_KeyPattern
+ strh r1, [r0]
+ bl PMi_DoSleep
+ b _03802424
+_03802368:
+ mov r1, #4
+ ldr r0, _03802438 ;@ =PMi_Work
+ str r1, [r0, #32]
+ ldr r2, [r4, #8]
+ str r2, [r0, #40] ;@ 0x28
+ ldr r1, [r4, #12]
+ str r1, [r0, #36] ;@ 0x24
+ mov r0, r2, lsl #16
+ mov r0, r0, lsr #16
+ and r1, r1, #255 ;@ 0xff
+ bl PMi_SetRegister
+ mov r0, #100 ;@ 0x64
+ mov r1, #0
+ bl SPIi_ReturnResult
+ b _03802424
+_038023A4:
+ mov r1, #3
+ ldr r0, _03802438 ;@ =PMi_Work
+ str r1, [r0, #32]
+ ldr r1, [r4, #8]
+ str r1, [r0, #40] ;@ 0x28
+ mov r0, r1, lsl #16
+ mov r4, r0, lsr #16
+ mov r0, r4
+ bl PMi_GetRegister
+ mov r1, r0
+ add r0, r4, #112 ;@ 0x70
+ mov r0, r0, lsl #16
+ mov r0, r0, lsr #16
+ bl SPIi_ReturnResult
+ b _03802424
+_038023E0:
+ mov r0, #2
+ ldr r1, _03802438 ;@ =PMi_Work
+ str r0, [r1, #32]
+ ldr r0, [r4, #8]
+ str r0, [r1, #36] ;@ 0x24
+ bl PMi_SwitchUtilityProc
+ mov r0, #99 ;@ 0x63
+ mov r1, #0
+ bl SPIi_ReturnResult
+ b _03802424
+_03802408:
+ ldr r0, [r4, #8]
+ bl PMi_SetLED
+ b _03802424
+_03802414:
+ mov r0, r1, lsl #16
+ mov r0, r0, lsr #16
+ mov r1, #1
+ bl SPIi_ReturnResult
+_03802424:
+ mov r0, #3
+ bl SPIi_ReleaseException
+_0380242C:
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, lr}
+ bx lr
+_03802438: .word PMi_Work
+_0380243C: .word PMi_TriggerBL
+_03802440: .word PMi_KeyPattern
+
+ arm_func_start PM_AnalyzeCommand
+PM_AnalyzeCommand: ;@ 0x03802444
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ands r1, r0, #33554432 ;@ 0x2000000
+ beq _03802474
+ mov r4, #0
+ mov r3, r4
+ ldr r1, _03802610 ;@ =PMi_Work
+_03802460:
+ mov r2, r4, lsl #1
+ strh r3, [r1, r2]
+ add r4, r4, #1
+ cmp r4, #16
+ blt _03802460
+_03802474:
+ and r1, r0, #983040 ;@ 0xf0000
+ mov r1, r1, lsr #16
+ mov r1, r1, lsl #1
+ ldr ip, _03802610 ;@ =PMi_Work
+ strh r0, [ip, r1]
+ ands r0, r0, #16777216 ;@ 0x1000000
+ beq _03802604
+ ldrh r3, [ip]
+ and r0, r3, #65280 ;@ 0xff00
+ mov r0, r0, lsl #8
+ mov r4, r0, lsr #16
+ sub r0, r4, #96 ;@ 0x60
+ cmp r0, #7
+ addls pc, pc, r0, lsl #2
+ b _038025F8
+ b _038024D0
+ b _038024E0
+ b _038025F8
+ b _03802588
+ b _0380251C
+ b _03802558
+ b _038025C4
+ b _038025DC
+_038024D0:
+ mov r0, #96 ;@ 0x60
+ mov r1, #0
+ bl SPIi_ReturnResult
+ b _03802604
+_038024E0:
+ ldrh r1, [ip, #2]
+ ldr r0, _03802614 ;@ =0x0000FFFF
+ and r0, r1, r0
+ str r0, [sp]
+ mov r0, #3
+ mov r1, r4
+ mov r2, #2
+ and r3, r3, #255 ;@ 0xff
+ bl SPIi_SetEntry
+ cmp r0, #0
+ bne _03802604
+ mov r0, r4
+ mov r1, #4
+ bl SPIi_ReturnResult
+ b _03802604
+_0380251C:
+ ldrh r1, [ip, #2]
+ ldr r0, _03802614 ;@ =0x0000FFFF
+ and r0, r1, r0
+ str r0, [sp]
+ mov r0, #3
+ mov r1, r4
+ mov r2, #2
+ and r3, r3, #255 ;@ 0xff
+ bl SPIi_SetEntry
+ cmp r0, #0
+ bne _03802604
+ mov r0, r4
+ mov r1, #4
+ bl SPIi_ReturnResult
+ b _03802604
+_03802558:
+ mov r0, #3
+ mov r1, r4
+ mov r2, #1
+ ldr ip, _03802614 ;@ =0x0000FFFF
+ and r3, r3, ip
+ bl SPIi_SetEntry
+ cmp r0, #0
+ bne _03802604
+ mov r0, r4
+ mov r1, #4
+ bl SPIi_ReturnResult
+ b _03802604
+_03802588:
+ mov r0, #3
+ mov r1, r4
+ mov r2, #1
+ and lr, r3, #255 ;@ 0xff
+ ldrh ip, [ip, #2]
+ ldr r3, _03802614 ;@ =0x0000FFFF
+ and r3, ip, r3
+ orr r3, r3, lr, lsl #16
+ bl SPIi_SetEntry
+ cmp r0, #0
+ bne _03802604
+ mov r0, r4
+ mov r1, #4
+ bl SPIi_ReturnResult
+ b _03802604
+_038025C4:
+ and r0, r3, #255 ;@ 0xff
+ bl PM_SetLEDPattern
+ mov r0, #102 ;@ 0x66
+ mov r1, #0
+ bl SPIi_ReturnResult
+ b _03802604
+_038025DC:
+ bl PM_GetLEDPattern
+ mov r1, r0
+ mov r0, #103 ;@ 0x67
+ mov r1, r1, lsl #16
+ mov r1, r1, lsr #16
+ bl SPIi_ReturnResult
+ b _03802604
+_038025F8:
+ mov r0, r4
+ mov r1, #1
+ bl SPIi_ReturnResult
+_03802604:
+ add sp, sp, #8
+ ldmia sp!, {r4, lr}
+ bx lr
+_03802610: .word PMi_Work
+_03802614: .word 0x0000FFFF
+
+ arm_func_start PM_Init
+PM_Init: ;@ 0x03802618
+ mov r1, #1
+ ldr r0, _0380264C ;@ =PMi_Initialized
+ str r1, [r0]
+ mov r3, #0
+ ldr r0, _03802650 ;@ =PMi_Work
+ str r3, [r0, #32]
+ mov r2, r3
+_03802634:
+ mov r1, r3, lsl #1
+ strh r2, [r0, r1]
+ add r3, r3, #1
+ cmp r3, #16
+ blt _03802634
+ bx lr
+_0380264C: .word PMi_Initialized
+_03802650: .word PMi_Work
+
+ arm_func_start PMi_SendPxiCommand
+PMi_SendPxiCommand: ;@ 0x03802654
+ ldr r3, _03802678 ;@ =0x0000FFFF
+ and r3, r2, r3
+ and r0, r0, #62914560 ;@ 0x3c00000
+ mov r2, r0, lsl #22
+ and r0, r1, #4128768 ;@ 0x3f0000
+ orr r0, r2, r0, lsl #16
+ orr r0, r3, r0
+ ldr ip, _0380267C ;@ =PMi_SendPxiData
+ bx ip
+_03802678: .word 0x0000FFFF
+_0380267C: .word PMi_SendPxiData
+
+ arm_func_start PMi_SendPxiData
+PMi_SendPxiData: ;@ 0x03802680
+ stmdb sp!, {r4, r5, r6, lr}
+ mov r6, r0
+ mov r5, #8
+ mov r4, #0
+_03802690:
+ mov r0, r5
+ mov r1, r6
+ mov r2, r4
+ bl PXI_SendWordByFifo
+ cmp r0, #0
+ bne _03802690
+ ldmia sp!, {r4, r5, r6, lr}
+ bx lr
+
+ arm_func_start PMi_ResetControl
+PMi_ResetControl: ;@ 0x038026B0
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ mov r0, #0
+ bl PMi_GetRegister
+ mvn r1, r4
+ and r0, r0, r1
+ and r1, r0, #255 ;@ 0xff
+ mov r0, #0
+ bl PMi_SetRegister
+ ldmia sp!, {r4, lr}
+ bx lr
+
+ arm_func_start PMi_SetControl
+PMi_SetControl: ;@ 0x038026DC
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ mov r0, #0
+ bl PMi_GetRegister
+ orr r1, r0, r4
+ mov r0, #0
+ bl PMi_SetRegister
+ ldmia sp!, {r4, lr}
+ bx lr
+
+ arm_func_start PMi_GetRegister
+PMi_GetRegister: ;@ 0x03802700
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ ldr r1, _0380278C ;@ =0x040001C0
+_0380270C:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _0380270C
+ bl FUN_03802808
+ mov r0, #1
+ bl FUN_03802820
+ orr r0, r4, #128 ;@ 0x80
+ and r0, r0, #255 ;@ 0xff
+ and r1, r0, #255 ;@ 0xff
+ ldr r0, _03802790 ;@ =0x040001C2
+ strh r1, [r0]
+ ldr r1, _0380278C ;@ =0x040001C0
+_0380273C:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _0380273C
+ mov r0, #0
+ bl FUN_03802820
+ mov r1, #0
+ ldr r0, _03802790 ;@ =0x040001C2
+ strh r1, [r0]
+ ldr r1, _0380278C ;@ =0x040001C0
+_03802760:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03802760
+ ldr r0, _03802790 ;@ =0x040001C2
+ ldrh r0, [r0]
+ and r0, r0, #255 ;@ 0xff
+ mov r0, r0, lsl #16
+ mov r0, r0, lsr #16
+ and r0, r0, #255 ;@ 0xff
+ ldmia sp!, {r4, lr}
+ bx lr
+_0380278C: .word 0x040001C0
+_03802790: .word 0x040001C2
+
+ arm_func_start PMi_SetRegister
+PMi_SetRegister: ;@ 0x03802794
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r5, r0
+ mov r4, r1
+ ldr r1, _03802800 ;@ =0x040001C0
+_038027A8:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _038027A8
+ bl FUN_03802808
+ mov r0, #1
+ bl FUN_03802820
+ and r0, r5, #255 ;@ 0xff
+ and r1, r0, #255 ;@ 0xff
+ ldr r0, _03802804 ;@ =0x040001C2
+ strh r1, [r0]
+ ldr r1, _03802800 ;@ =0x040001C0
+_038027D4:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _038027D4
+ mov r0, #0
+ bl FUN_03802820
+ and r1, r4, #255 ;@ 0xff
+ ldr r0, _03802804 ;@ =0x040001C2
+ strh r1, [r0]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, lr}
+ bx lr
+_03802800: .word 0x040001C0
+_03802804: .word 0x040001C2
+
+ arm_func_start FUN_03802808
+FUN_03802808: ;@ 0x03802808
+ ldr r1, _03802818 ;@ =0x00008202
+ ldr r0, _0380281C ;@ =0x040001C0
+ strh r1, [r0]
+ bx lr
+_03802818: .word 0x00008202
+_0380281C: .word 0x040001C0
+
+ arm_func_start FUN_03802820
+FUN_03802820: ;@ 0x03802820
+ ldr r1, _03802834 ;@ =0x00008002
+ orr r1, r1, r0, lsl #11
+ ldr r0, _03802838 ;@ =0x040001C0
+ strh r1, [r0]
+ bx lr
+_03802834: .word 0x00008002
+_03802838: .word 0x040001C0
+
+ arm_func_start PMi_SetLED
+PMi_SetLED: ;@ 0x0380283C
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ cmp r4, #1
+ beq _03802860
+ cmp r4, #2
+ beq _03802878
+ cmp r4, #3
+ beq _0380286C
+ b _0380288C
+_03802860:
+ mov r0, #16
+ bl PMi_ResetControl
+ b _03802890
+_0380286C:
+ mov r0, #48 ;@ 0x30
+ bl PMi_SetControl
+ b _03802890
+_03802878:
+ mov r0, #32
+ bl PMi_ResetControl
+ mov r0, #16
+ bl PMi_SetControl
+ b _03802890
+_0380288C:
+ bl OS_Terminate
+_03802890:
+ ldr r0, _038028A0 ;@ =PMi_LEDStatus
+ str r4, [r0]
+ ldmia sp!, {r4, lr}
+ bx lr
+_038028A0: .word PMi_LEDStatus
+
+ arm_func_start PMi_SwitchUtilityProc
+PMi_SwitchUtilityProc: ;@ 0x038028A4
+ stmfd sp!, {lr}
+ sub sp, sp, #4
+ cmp r0, #15
+ addls pc, pc, r0, lsl #2
+ b _038029C4
+ b _038029C4
+ b _038028F8
+ b _0380290C
+ b _03802920
+ b _03802934
+ b _03802940
+ b _0380294C
+ b _03802958
+ b _03802964
+ b _03802970
+ b _0380297C
+ b _03802988
+ b _03802994
+ b _038029A0
+ b _038029B8
+ b _038029AC
+_038028F8:
+ mov r0, #1
+ bl PM_SetLEDPattern
+ mov r0, #1
+ bl PMi_SetLED
+ b _038029C4
+_0380290C:
+ mov r0, #3
+ bl PM_SetLEDPattern
+ mov r0, #3
+ bl PMi_SetLED
+ b _038029C4
+_03802920:
+ mov r0, #2
+ bl PM_SetLEDPattern
+ mov r0, #2
+ bl PMi_SetLED
+ b _038029C4
+_03802934:
+ mov r0, #4
+ bl PMi_SetControl
+ b _038029C4
+_03802940:
+ mov r0, #4
+ bl PMi_ResetControl
+ b _038029C4
+_0380294C:
+ mov r0, #8
+ bl PMi_SetControl
+ b _038029C4
+_03802958:
+ mov r0, #8
+ bl PMi_ResetControl
+ b _038029C4
+_03802964:
+ mov r0, #12
+ bl PMi_SetControl
+ b _038029C4
+_03802970:
+ mov r0, #12
+ bl PMi_ResetControl
+ b _038029C4
+_0380297C:
+ mov r0, #1
+ bl PMi_SetControl
+ b _038029C4
+_03802988:
+ mov r0, #1
+ bl PMi_ResetControl
+ b _038029C4
+_03802994:
+ mov r0, #2
+ bl PMi_ResetControl
+ b _038029C4
+_038029A0:
+ mov r0, #2
+ bl PMi_SetControl
+ b _038029C4
+_038029AC:
+ mov r0, #64 ;@ 0x40
+ bl PMi_ResetControl
+ b _038029C4
+_038029B8:
+ bl SND_BeginSleep
+ mov r0, #64 ;@ 0x40
+ bl PMi_SetControl
+_038029C4:
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start PMi_DoSleep
+PMi_DoSleep: ;@ 0x038029D0
+ stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
+ sub sp, sp, #4
+ mov r5, #0
+ ldr r0, _03802B94 ;@ =0x04000208
+ ldrh r4, [r0]
+ strh r5, [r0]
+ bl OS_DisableInterrupts
+ mov r9, r0
+ mvn r0, #-33554432 ;@ 0xfe000000
+ bl OS_DisableIrqMask
+ mov r8, r0
+ mov r0, r5
+ bl PMi_GetRegister
+ mov r7, r0
+ mov r0, #2
+ bl PM_SetLEDPattern
+ mov r0, #2
+ bl PMi_SetLED
+ mov r0, #2
+ bl PMi_SetLED
+ bl SND_BeginSleep
+ mov r0, #1
+ bl PMi_ResetControl
+ ldr r0, _03802B98 ;@ =PMi_TriggerBL
+ ldrh r0, [r0]
+ ands r0, r0, #1
+ beq _03802A58
+ ldr r0, _03802B9C ;@ =PMi_KeyPattern
+ ldrh r0, [r0]
+ orr r1, r0, #16384 ;@ 0x4000
+ ldr r0, _03802BA0 ;@ =0x04000132
+ strh r1, [r0]
+ mov r0, #4096 ;@ 0x1000
+ bl OS_EnableIrqMask
+_03802A58:
+ ldr r0, _03802B98 ;@ =PMi_TriggerBL
+ ldrh r0, [r0]
+ ands r0, r0, #4
+ beq _03802A70
+ mov r0, #4194304 ;@ 0x400000
+ bl OS_EnableIrqMask
+_03802A70:
+ ldr r0, _03802B98 ;@ =PMi_TriggerBL
+ ldrh r0, [r0]
+ ands r0, r0, #2
+ beq _03802AB4
+ ldr r0, _03802BA4 ;@ =0x04000134
+ ldrh r6, [r0]
+ mov r5, #1
+ mov r0, #32768 ;@ 0x8000
+ bl EXIi_SelectRcnt
+ mov r0, #64 ;@ 0x40
+ mov r1, #0
+ bl EXIi_SetBitRcnt0L
+ mov r0, #256 ;@ 0x100
+ mov r1, r0
+ bl EXIi_SetBitRcnt0L
+ mov r0, #128 ;@ 0x80
+ bl OS_EnableIrqMask
+_03802AB4:
+ ldr r0, _03802B98 ;@ =PMi_TriggerBL
+ ldrh r0, [r0]
+ ands r0, r0, #8
+ beq _03802ACC
+ mov r0, #1048576 ;@ 0x100000
+ bl OS_EnableIrqMask
+_03802ACC:
+ ldr r0, _03802B98 ;@ =PMi_TriggerBL
+ ldrh r0, [r0]
+ ands r0, r0, #16
+ beq _03802AE4
+ mov r0, #8192 ;@ 0x2000
+ bl OS_EnableIrqMask
+_03802AE4:
+ mov r0, r9
+ bl OS_RestoreInterrupts
+ ldr r1, _03802B94 ;@ =0x04000208
+ ldrh r0, [r1]
+ mov r0, #1
+ strh r0, [r1]
+ bl FUN_03802BAC
+ mov r0, #0
+ mov r1, r7
+ bl PMi_SetRegister
+ ldr r0, _03802B98 ;@ =PMi_TriggerBL
+ ldrh r1, [r0]
+ ands r0, r1, #32
+ movne r0, #6
+ moveq r0, #7
+ ands r1, r1, #64 ;@ 0x40
+ movne r7, #4
+ moveq r7, #5
+ bl PMi_SwitchUtilityProc
+ mov r0, r7
+ bl PMi_SwitchUtilityProc
+ cmp r5, #0
+ ldrne r0, _03802BA4 ;@ =0x04000134
+ strneh r6, [r0]
+ mov r0, #1
+ bl PMi_SetControl
+ bl SND_EndSleep
+ mov r1, #0
+ ldr r0, _03802BA8 ;@ =PMi_Work
+ str r1, [r0, #32]
+ mov r0, #98 ;@ 0x62
+ mov r2, r1
+ bl PMi_SendPxiCommand
+ bl OS_DisableInterrupts
+ mov r0, r8
+ bl OS_SetIrqMask
+ mov r0, r9
+ bl OS_RestoreInterrupts
+ ldr r1, _03802B94 ;@ =0x04000208
+ ldrh r0, [r1]
+ strh r4, [r1]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, r9, lr}
+ bx lr
+_03802B94: .word 0x04000208
+_03802B98: .word PMi_TriggerBL
+_03802B9C: .word PMi_KeyPattern
+_03802BA0: .word 0x04000132
+_03802BA4: .word 0x04000134
+_03802BA8: .word PMi_Work
+
+ arm_func_start FUN_03802BAC
+FUN_03802BAC: ;@ 0x03802BAC
+ ldr ip, _03802BB4 ;@ =SVC_Stop
+ bx ip
+_03802BB4: .word SVC_Stop
+
+ arm_func_start PM_GetLEDPattern
+PM_GetLEDPattern: ;@ 0x03802BB8
+ ldr r0, _03802BC4 ;@ =PMi_BlinkPatternNo
+ ldr r0, [r0]
+ bx lr
+_03802BC4: .word PMi_BlinkPatternNo
+
+ arm_func_start PM_SetLEDPattern
+PM_SetLEDPattern: ;@ 0x03802BC8
+ cmp r0, #15
+ ldrle r1, _03802BE4 ;@ =PMi_BlinkPatternNo
+ strle r0, [r1]
+ movle r1, #0
+ ldrle r0, _03802BE8 ;@ =_03809F64
+ strle r1, [r0]
+ bx lr
+_03802BE4: .word PMi_BlinkPatternNo
+_03802BE8: .word _03809F64
+
+ arm_func_start PM_SelfBlinkProc
+PM_SelfBlinkProc: ;@ 0x03802BEC
+ stmdb sp!, {r4, r5, r6, lr}
+ ldr r0, _03802D04 ;@ =PMi_BlinkPatternNo
+ ldr r3, [r0]
+ cmp r3, #0
+ bne _03802C28
+ mov r0, #3
+ mov r1, #102 ;@ 0x66
+ mov r2, #1
+ mov r3, r2
+ bl SPIi_SetEntry
+ cmp r0, #0
+ beq _03802CFC
+ mov r0, #1
+ bl PM_SetLEDPattern
+ b _03802CFC
+_03802C28:
+ cmp r3, #4
+ bge _03802C54
+ ldr r0, _03802D08 ;@ =PMi_LEDStatus
+ ldr r0, [r0]
+ cmp r3, r0
+ beq _03802CFC
+ mov r0, #3
+ mov r1, #102 ;@ 0x66
+ mov r2, #1
+ bl SPIi_SetEntry
+ b _03802CFC
+_03802C54:
+ ldr r6, _03802D0C ;@ =PMi_BlinkPatternData
+ sub r1, r3, #4
+ mov r0, #12
+ mul r5, r1, r0
+ add r4, r6, r5
+ ldr r0, _03802D10 ;@ =_03809F64
+ ldr r0, [r0]
+ ldrh r1, [r4, #10]
+ bl _u32_div_f
+ ldr r5, [r6, r5]
+ ldr lr, [r4, #4]
+ mov r3, #0
+ mov r2, #-2147483648 ;@ 0x80000000
+ mov ip, r3, lsr r0
+ rsb r1, r0, #32
+ orr ip, ip, r2, lsl r1
+ sub r1, r0, #32
+ orr ip, ip, r2, lsr r1
+ and r0, lr, r2, lsr r0
+ and r1, r5, ip
+ cmp r0, r3
+ cmpeq r1, r3
+ movne r3, #1
+ moveq r3, #2
+ ldr r0, _03802D10 ;@ =_03809F64
+ ldr r1, [r0]
+ add ip, r1, #1
+ str ip, [r0]
+ ldrh r2, [r4, #8]
+ ldrh r1, [r4, #10]
+ mul r1, r2, r1
+ cmp ip, r1
+ movcs r1, #0
+ strcs r1, [r0]
+ ldr r0, _03802D08 ;@ =PMi_LEDStatus
+ ldr r0, [r0]
+ cmp r3, r0
+ beq _03802CFC
+ mov r0, #3
+ mov r1, #102 ;@ 0x66
+ mov r2, #1
+ bl SPIi_SetEntry
+_03802CFC:
+ ldmia sp!, {r4, r5, r6, lr}
+ bx lr
+_03802D04: .word PMi_BlinkPatternNo
+_03802D08: .word PMi_LEDStatus
+_03802D0C: .word PMi_BlinkPatternData
+_03802D10: .word _03809F64
diff --git a/arm7/asm/SPI_tp.s b/arm7/asm/SPI_tp.s
new file mode 100644
index 00000000..2176bfce
--- /dev/null
+++ b/arm7/asm/SPI_tp.s
@@ -0,0 +1,861 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .section .bss
+
+ .global _03809E4C
+_03809E4C: ;0x03809E4C
+ .space 0x03809E50 - 0x03809E4C
+
+ .global _03809E50
+_03809E50: ;0x03809E50
+ .space 0x03809E54 - 0x03809E50
+
+ .global _03809E54
+_03809E54: ;0x03809E54
+ .space 0x03809E80 - 0x03809E54
+
+ .global _03809E80
+_03809E80: ;0x03809E80
+ .space 0x03809F28 - 0x03809E80
+
+ .global _03809F28
+_03809F28: ;0x03809F28
+ .space 0x03809F2C - 0x03809F28
+
+ .section .text
+
+ arm_func_start TP_ExecuteProcess
+TP_ExecuteProcess: ;@ 0x03801720
+ stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
+ sub sp, sp, #16
+ mov sl, r0
+ ldr r1, [sl, #4]
+ cmp r1, #2
+ bhi _03801754
+ cmp r1, #0
+ beq _0380176C
+ cmp r1, #1
+ beq _03801834
+ cmp r1, #2
+ beq _038018E0
+ b _0380192C
+_03801754:
+ cmp r1, #16
+ bne _0380192C
+ ldr r0, _03801938 ;@ =_03809E54
+ ldr r0, [r0, #32]
+ cmp r0, #2
+ bne _0380192C
+_0380176C:
+ bl OS_DisableInterrupts
+ mov r4, r0
+ mov r0, #0
+ bl SPIi_CheckException
+ cmp r0, #0
+ bne _038017A4
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ ldr r0, [sl, #4]
+ mov r0, r0, lsl #16
+ mov r0, r0, lsr #16
+ mov r1, #4
+ bl SPIi_ReturnResult
+ b _0380192C
+_038017A4:
+ mov r0, #0
+ bl SPIi_GetException
+ mov r0, r4
+ bl OS_RestoreInterrupts
+ add r0, sp, #8
+ ldr r1, _03801938 ;@ =_03809E54
+ ldr r1, [r1, #36] ;@ 0x24
+ add r2, sp, #4
+ bl TP_ExecSampling
+ add r0, sp, #8
+ ldrh r1, [sp, #4]
+ bl FUN_03801954
+ ldrh r1, [sp, #8]
+ ldr r0, _0380193C ;@ =0x027FFFAA
+ strh r1, [r0]
+ ldrh r1, [sp, #10]
+ ldr r0, _03801940 ;@ =0x027FFFAC
+ strh r1, [r0]
+ ldr r0, [sl, #4]
+ cmp r0, #0
+ bne _0380180C
+ mov r0, r0, lsl #16
+ mov r0, r0, lsr #16
+ mov r1, #0
+ bl SPIi_ReturnResult
+ b _03801828
+_0380180C:
+ mov r0, r0, lsl #16
+ mov r0, r0, lsr #16
+ ldr r1, [sl, #8]
+ and r1, r1, #255 ;@ 0xff
+ mov r1, r1, lsl #16
+ mov r1, r1, lsr #16
+ bl SPIi_ReturnResult
+_03801828:
+ mov r0, #0
+ bl SPIi_ReleaseException
+ b _0380192C
+_03801834:
+ ldr r7, _03801938 ;@ =_03809E54
+ ldr r0, [r7, #32]
+ cmp r0, #1
+ bne _038018CC
+ mov r9, #0
+ ldr r8, _03801944 ;@ =0x00000107
+ ldr r6, _03801948 ;@ =_03809E80
+ mov r5, #10
+ ldr r4, _0380194C ;@ =FUN_038016A8
+ b _0380189C
+_0380185C:
+ mul r0, r9, r8
+ bl _u32_div_f
+ ldr r1, [sl, #12]
+ add r0, r1, r0
+ mov r1, r8
+ bl _u32_div_f
+ add r2, r7, r9, lsl #1
+ strh r1, [r2, #204] ;@ 0xcc
+ str r9, [sp]
+ mov r0, #40 ;@ 0x28
+ mla r0, r9, r0, r6
+ ldrsh r1, [r2, #204] ;@ 0xcc
+ mov r2, r5
+ mov r3, r4
+ bl OS_SetPeriodicVAlarm
+ add r9, r9, #1
+_0380189C:
+ ldr r1, [sl, #8]
+ cmp r9, r1
+ bcc _0380185C
+ ldr r0, [sl, #4]
+ mov r0, r0, lsl #16
+ mov r0, r0, lsr #16
+ mov r1, #0
+ bl SPIi_ReturnResult
+ mov r1, #2
+ ldr r0, _03801938 ;@ =_03809E54
+ str r1, [r0, #32]
+ b _0380192C
+_038018CC:
+ mov r0, r1, lsl #16
+ mov r0, r0, lsr #16
+ mov r1, #3
+ bl SPIi_ReturnResult
+ b _0380192C
+_038018E0:
+ ldr r0, _03801938 ;@ =_03809E54
+ ldr r0, [r0, #32]
+ cmp r0, #3
+ bne _0380191C
+ ldr r0, _03801950 ;@ =0x54505641
+ bl OS_CancelVAlarms
+ ldr r0, [sl, #4]
+ mov r0, r0, lsl #16
+ mov r0, r0, lsr #16
+ mov r1, #0
+ bl SPIi_ReturnResult
+ mov r1, #0
+ ldr r0, _03801938 ;@ =_03809E54
+ str r1, [r0, #32]
+ b _0380192C
+_0380191C:
+ mov r0, r1, lsl #16
+ mov r0, r0, lsr #16
+ mov r1, #3
+ bl SPIi_ReturnResult
+_0380192C:
+ add sp, sp, #16
+ ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
+ bx lr
+_03801938: .word _03809E54
+_0380193C: .word 0x027FFFAA
+_03801940: .word 0x027FFFAC
+_03801944: .word 0x00000107
+_03801948: .word _03809E80
+_0380194C: .word FUN_038016A8
+_03801950: .word 0x54505641
+
+ arm_func_start FUN_03801954
+FUN_03801954: ;@ 0x03801954
+ stmfd sp!, {lr}
+ sub sp, sp, #4
+ ldr r0, [r0]
+ mov r2, r0, lsl #7
+ movs r2, r2, lsr #31
+ bne _03801984
+ mov r1, #0
+ ldr r0, _03801A3C ;@ =_03809E50
+ strb r1, [r0]
+ ldr r0, _03801A40 ;@ =_03809E4C
+ strb r1, [r0]
+ b _03801A30
+_03801984:
+ mov r0, r0, lsl #5
+ movs r0, r0, lsr #30
+ beq _038019D4
+ mov r2, #0
+ ldr r0, _03801A40 ;@ =_03809E4C
+ strb r2, [r0]
+ ldr r0, _03801A3C ;@ =_03809E50
+ ldrb r1, [r0]
+ add r1, r1, #1
+ strb r1, [r0]
+ ldrb r1, [r0]
+ cmp r1, #4
+ bcc _03801A30
+ strb r2, [r0]
+ ldr r0, _03801A44 ;@ =_03809E54
+ ldr r1, [r0, #36] ;@ 0x24
+ cmp r1, #35 ;@ 0x23
+ addlt r1, r1, #1
+ strlt r1, [r0, #36] ;@ 0x24
+ b _03801A30
+_038019D4:
+ mov lr, #0
+ ldr r3, _03801A3C ;@ =_03809E50
+ strb lr, [r3]
+ ldr r2, _03801A44 ;@ =_03809E54
+ ldr ip, [r2, #36] ;@ 0x24
+ cmp r1, ip, asr #1
+ ldrge r0, _03801A40 ;@ =_03809E4C
+ strgeb lr, [r0]
+ bge _03801A30
+ ldr r0, _03801A40 ;@ =_03809E4C
+ ldrb r1, [r0]
+ add r1, r1, #1
+ strb r1, [r0]
+ ldrb r1, [r0]
+ cmp r1, #4
+ bcc _03801A30
+ strb lr, [r0]
+ ldr r0, [r2, #40] ;@ 0x28
+ cmp ip, r0
+ subgt r0, ip, #1
+ strgt r0, [r2, #36] ;@ 0x24
+ movgt r0, #3
+ strgtb r0, [r3]
+_03801A30:
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ bx lr
+_03801A3C: .word _03809E50
+_03801A40: .word _03809E4C
+_03801A44: .word _03809E54
+
+ arm_func_start TP_AnalyzeCommand
+TP_AnalyzeCommand: ;@ 0x03801A48
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ands r1, r0, #33554432 ;@ 0x2000000
+ beq _03801A78
+ mov r4, #0
+ mov r3, r4
+ ldr r1, _03801C00 ;@ =_03809E54
+_03801A64:
+ mov r2, r4, lsl #1
+ strh r3, [r1, r2]
+ add r4, r4, #1
+ cmp r4, #16
+ blt _03801A64
+_03801A78:
+ and r1, r0, #983040 ;@ 0xf0000
+ mov r1, r1, lsr #16
+ mov r1, r1, lsl #1
+ ldr r2, _03801C00 ;@ =_03809E54
+ strh r0, [r2, r1]
+ ands r0, r0, #16777216 ;@ 0x1000000
+ beq _03801BF4
+ ldrh r1, [r2]
+ and r0, r1, #65280 ;@ 0xff00
+ mov r0, r0, lsl #8
+ mov r4, r0, lsr #16
+ cmp r4, #3
+ addls pc, pc, r4, lsl #2
+ b _03801BE8
+ b _03801AD4
+ b _03801AFC
+ b _03801B98
+ b _03801AC0
+_03801AC0:
+ and r0, r1, #255 ;@ 0xff
+ mov r0, r0, lsl #16
+ mov r0, r0, lsr #16
+ bl FUN_03801660
+ b _03801BF4
+_03801AD4:
+ mov r0, #0
+ mov r1, r4
+ mov r2, r0
+ bl SPIi_SetEntry
+ cmp r0, #0
+ bne _03801BF4
+ mov r0, r4
+ mov r1, #4
+ bl SPIi_ReturnResult
+ b _03801BF4
+_03801AFC:
+ ldr r0, [r2, #32]
+ cmp r0, #0
+ beq _03801B18
+ mov r0, r4
+ mov r1, #3
+ bl SPIi_ReturnResult
+ b _03801BF4
+_03801B18:
+ and r0, r1, #255 ;@ 0xff
+ mov r0, r0, lsl #16
+ movs r3, r0, lsr #16
+ beq _03801B30
+ cmp r3, #4
+ bls _03801B40
+_03801B30:
+ mov r0, r4
+ mov r1, #2
+ bl SPIi_ReturnResult
+ b _03801BF4
+_03801B40:
+ ldrh r1, [r2, #2]
+ ldr r0, _03801C04 ;@ =0x00000107
+ cmp r1, r0
+ bcc _03801B60
+ mov r0, r4
+ mov r1, #2
+ bl SPIi_ReturnResult
+ b _03801BF4
+_03801B60:
+ str r1, [sp]
+ mov r0, #0
+ mov r1, r4
+ mov r2, #2
+ bl SPIi_SetEntry
+ cmp r0, #0
+ movne r1, #1
+ ldrne r0, _03801C00 ;@ =_03809E54
+ strne r1, [r0, #32]
+ bne _03801BF4
+ mov r0, r4
+ mov r1, #4
+ bl SPIi_ReturnResult
+ b _03801BF4
+_03801B98:
+ ldr r0, [r2, #32]
+ cmp r0, #2
+ beq _03801BB4
+ mov r0, r4
+ mov r1, #3
+ bl SPIi_ReturnResult
+ b _03801BF4
+_03801BB4:
+ mov r0, #0
+ mov r1, r4
+ mov r2, r0
+ bl SPIi_SetEntry
+ cmp r0, #0
+ movne r1, #3
+ ldrne r0, _03801C00 ;@ =_03809E54
+ strne r1, [r0, #32]
+ bne _03801BF4
+ mov r0, r4
+ mov r1, #4
+ bl SPIi_ReturnResult
+ b _03801BF4
+_03801BE8:
+ mov r0, r4
+ mov r1, #1
+ bl SPIi_ReturnResult
+_03801BF4:
+ add sp, sp, #8
+ ldmia sp!, {r4, lr}
+ bx lr
+_03801C00: .word _03809E54
+_03801C04: .word 0x00000107
+
+ arm_func_start TP_Init
+TP_Init: ;@ 0x03801C08
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ mov r3, #0
+ ldr r0, _03801CFC ;@ =_03809E54
+ str r3, [r0, #32]
+ mov r1, #20
+ str r1, [r0, #36] ;@ 0x24
+ str r1, [r0, #40] ;@ 0x28
+ mov r2, r3
+_03801C28:
+ mov r1, r3, lsl #1
+ strh r2, [r0, r1]
+ add r3, r3, #1
+ cmp r3, #16
+ blt _03801C28
+ bl OS_IsVAlarmAvailable
+ cmp r0, #0
+ bne _03801C4C
+ bl OS_InitVAlarm
+_03801C4C:
+ mov r7, #0
+ ldr r6, _03801D00 ;@ =_03809E80
+ ldr r5, _03801D04 ;@ =0x54505641
+ mov r4, #40 ;@ 0x28
+_03801C5C:
+ mla r8, r7, r4, r6
+ mov r0, r8
+ bl OS_CreateVAlarm
+ mov r0, r8
+ mov r1, r5
+ bl OS_SetVAlarmTag
+ add r7, r7, #1
+ cmp r7, #4
+ blt _03801C5C
+ ldr r1, _03801D08 ;@ =0x040001C0
+_03801C84:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03801C84
+ ldr r0, _03801D0C ;@ =0x00008A01
+ strh r0, [r1]
+ mov r1, #132 ;@ 0x84
+ ldr r0, _03801D10 ;@ =0x040001C2
+ strh r1, [r0]
+ ldr r1, _03801D08 ;@ =0x040001C0
+_03801CA8:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03801CA8
+ mov r1, #0
+ ldr r0, _03801D10 ;@ =0x040001C2
+ strh r1, [r0]
+ ldr r1, _03801D08 ;@ =0x040001C0
+_03801CC4:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03801CC4
+ ldr r0, _03801D14 ;@ =0x00008201
+ strh r0, [r1]
+ mov r1, #0
+ ldr r0, _03801D10 ;@ =0x040001C2
+ strh r1, [r0]
+ ldr r1, _03801D08 ;@ =0x040001C0
+_03801CE8:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03801CE8
+ ldmia sp!, {r4, r5, r6, r7, r8, lr}
+ bx lr
+_03801CFC: .word _03809E54
+_03801D00: .word _03809E80
+_03801D04: .word 0x54505641
+_03801D08: .word 0x040001C0
+_03801D0C: .word 0x00008A01
+_03801D10: .word 0x040001C2
+_03801D14: .word 0x00008201
+
+ arm_func_start TP_ExecSampling
+TP_ExecSampling: ;@ 0x03801D18
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #12
+ mov r7, r0
+ movs r6, r1
+ mov r5, r2
+ mov r0, #0
+ strh r0, [r5]
+ rsbmi r6, r6, #0
+ bl FUN_03802160
+ movs r4, r0
+ bne _03801D94
+ ldr r1, [r7]
+ mov r0, #4096 ;@ 0x1000
+ rsb r0, r0, #0
+ and r0, r1, r0
+ str r0, [r7]
+ ldr r1, [r7]
+ ldr r0, _03801F4C ;@ =0xFF000FFF
+ and r0, r1, r0
+ str r0, [r7]
+ ldr r0, [r7]
+ bic r0, r0, #16777216 ;@ 0x1000000
+ str r0, [r7]
+ ldr r0, [r7]
+ bic r0, r0, #100663296 ;@ 0x6000000
+ orr r0, r0, #100663296 ;@ 0x6000000
+ str r0, [r7]
+ mov r1, #0
+ ldr r0, _03801F50 ;@ =_03809F28
+ strh r1, [r0]
+ b _03801F40
+_03801D94:
+ add r0, sp, #0
+ mov r1, r6
+ mov r2, #0
+ add r3, sp, #2
+ bl FUN_03801F68
+ ldr r1, [r7]
+ bic r1, r1, #100663296 ;@ 0x6000000
+ and r0, r0, #3
+ orr r0, r1, r0, lsl #25
+ str r0, [r7]
+ ldr r1, [r7]
+ mov r0, #4096 ;@ 0x1000
+ rsb r0, r0, #0
+ and r2, r1, r0
+ ldrh r1, [sp]
+ ldr r0, _03801F54 ;@ =0x00000FFF
+ and r0, r1, r0
+ orr r0, r2, r0
+ str r0, [r7]
+ add r0, sp, #0
+ mov r1, r6
+ mov r2, #1
+ add r3, sp, #4
+ bl FUN_03801F68
+ cmp r0, #2
+ bne _03801E1C
+ ldr r0, [r7]
+ bic r1, r0, #100663296 ;@ 0x6000000
+ mov r0, r0, lsl #5
+ mov r0, r0, lsr #30
+ orr r0, r0, #2
+ and r0, r0, #3
+ orr r0, r1, r0, lsl #25
+ str r0, [r7]
+_03801E1C:
+ ldr r1, [r7]
+ ldr r0, _03801F4C ;@ =0xFF000FFF
+ and r2, r1, r0
+ ldrh r1, [sp]
+ ldr r0, _03801F54 ;@ =0x00000FFF
+ and r0, r1, r0
+ orr r0, r2, r0, lsl #12
+ str r0, [r7]
+ ldr r0, _03801F58 ;@ =0x00008A01
+ ldr r3, _03801F5C ;@ =0x040001C0
+ strh r0, [r3]
+ mov r6, #0
+ mov r2, r6
+ ldr r1, _03801F60 ;@ =0x040001C2
+_03801E54:
+ strh r2, [r1]
+_03801E58:
+ ldrh r0, [r3]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03801E58
+ add r6, r6, #1
+ cmp r6, #12
+ blt _03801E54
+ ldr r0, _03801F64 ;@ =0x00008201
+ strh r0, [r3]
+ mov r1, #0
+ ldr r0, _03801F60 ;@ =0x040001C2
+ strh r1, [r0]
+ ldr r1, _03801F5C ;@ =0x040001C0
+_03801E88:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03801E88
+ cmp r4, #2
+ ldreq r0, [r7]
+ biceq r0, r0, #100663296 ;@ 0x6000000
+ orreq r0, r0, #100663296 ;@ 0x6000000
+ streq r0, [r7]
+ bl FUN_03802160
+ cmp r0, #0
+ beq _03801F20
+ cmp r0, #1
+ beq _03801EF0
+ cmp r0, #2
+ bne _03801F3C
+ ldr r0, [r7]
+ orr r0, r0, #16777216 ;@ 0x1000000
+ str r0, [r7]
+ ldr r0, [r7]
+ bic r0, r0, #100663296 ;@ 0x6000000
+ orr r0, r0, #100663296 ;@ 0x6000000
+ str r0, [r7]
+ mov r1, #0
+ ldr r0, _03801F50 ;@ =_03809F28
+ strh r1, [r0]
+ b _03801F40
+_03801EF0:
+ ldr r0, [r7]
+ orr r0, r0, #16777216 ;@ 0x1000000
+ str r0, [r7]
+ mov r1, #1
+ ldr r0, _03801F50 ;@ =_03809F28
+ strh r1, [r0]
+ ldrh r0, [sp, #4]
+ ldrh r1, [sp, #2]
+ cmp r1, r0
+ movcc r1, r0
+ strh r1, [r5]
+ b _03801F40
+_03801F20:
+ ldr r0, [r7]
+ bic r0, r0, #16777216 ;@ 0x1000000
+ str r0, [r7]
+ mov r1, #0
+ ldr r0, _03801F50 ;@ =_03809F28
+ strh r1, [r0]
+ b _03801F40
+_03801F3C:
+ bl OS_Terminate
+_03801F40:
+ add sp, sp, #12
+ ldmia sp!, {r4, r5, r6, r7, lr}
+ bx lr
+_03801F4C: .word 0xFF000FFF
+_03801F50: .word _03809F28
+_03801F54: .word 0x00000FFF
+_03801F58: .word 0x00008A01
+_03801F5C: .word 0x040001C0
+_03801F60: .word 0x040001C2
+_03801F64: .word 0x00008201
+
+ arm_func_start FUN_03801F68
+FUN_03801F68: ;@ 0x03801F68
+ stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
+ sub sp, sp, #24
+ cmp r2, #0
+ moveq r5, #209 ;@ 0xd1
+ moveq r6, #1
+ movne r5, #145 ;@ 0x91
+ movne r6, #2
+_03801F84:
+ ldr r4, _0380214C ;@ =0x040001C0
+ ldrh r2, [r4]
+ ands r2, r2, #128 ;@ 0x80
+ bne _03801F84
+ ldr r2, _03802150 ;@ =0x00008A01
+ strh r2, [r4]
+ and r5, r5, #255 ;@ 0xff
+ ldr r2, _03802154 ;@ =0x040001C2
+ strh r5, [r2]
+_03801FA8:
+ ldrh r2, [r4]
+ ands r2, r2, #128 ;@ 0x80
+ bne _03801FA8
+ mov r7, #0
+ ldr ip, _0380214C ;@ =0x040001C0
+ ldr lr, _03802154 ;@ =0x040001C2
+ add r2, sp, #0
+ mov r4, r7
+ ldr r9, _03802158 ;@ =0x00007FF8
+_03801FCC:
+ strh r4, [lr]
+_03801FD0:
+ ldrh r8, [ip]
+ ands r8, r8, #128 ;@ 0x80
+ bne _03801FD0
+ ldrh r8, [lr]
+ and r8, r8, #255 ;@ 0xff
+ mov r8, r8, lsl #16
+ mov r8, r8, lsr #8
+ str r8, [r2, r7, lsl #2]
+ strh r5, [lr]
+_03801FF4:
+ ldrh r8, [ip]
+ ands r8, r8, #128 ;@ 0x80
+ bne _03801FF4
+ ldrh r8, [lr]
+ and r8, r8, #255 ;@ 0xff
+ mov r8, r8, lsl #16
+ ldr sl, [r2, r7, lsl #2]
+ orr r8, sl, r8, lsr #16
+ str r8, [r2, r7, lsl #2]
+ ldr r8, [r2, r7, lsl #2]
+ and r8, r8, r9
+ mov r8, r8, asr #3
+ str r8, [r2, r7, lsl #2]
+ add r7, r7, #1
+ cmp r7, #5
+ blt _03801FCC
+ ldr r2, _0380215C ;@ =0x00008201
+ strh r2, [ip]
+ mov r2, #0
+ strh r2, [lr]
+ ldr r4, _0380214C ;@ =0x040001C0
+_03802048:
+ ldrh r2, [r4]
+ ands r2, r2, #128 ;@ 0x80
+ bne _03802048
+ mov r8, #0
+ mov r7, r8
+ add r5, sp, #0
+_03802060:
+ add r9, r7, #1
+ ldr r4, [r5, r7, lsl #2]
+ b _03802084
+_0380206C:
+ ldr r2, [r5, r9, lsl #2]
+ subs r2, r4, r2
+ rsbmi r2, r2, #0
+ cmp r2, r8
+ movgt r8, r2
+ add r9, r9, #1
+_03802084:
+ cmp r9, #5
+ blt _0380206C
+ add r7, r7, #1
+ cmp r7, #4
+ blt _03802060
+ strh r8, [r3]
+ mov r4, #0
+ add r2, sp, #0
+ b _0380211C
+_038020A8:
+ add r3, r4, #1
+ ldr r7, [r2, r4, lsl #2]
+ b _03802110
+_038020B4:
+ ldr r8, [r2, r3, lsl #2]
+ subs r5, r7, r8
+ rsbmi r5, r5, #0
+ cmp r5, r1
+ bgt _0380210C
+ add r9, r3, #1
+ b _03802104
+_038020D0:
+ ldr r5, [r2, r9, lsl #2]
+ subs sl, r7, r5
+ rsbmi sl, sl, #0
+ cmp sl, r1
+ bgt _03802100
+ add r1, r8, r7, lsl #1
+ add r1, r5, r1
+ mov r1, r1, asr #2
+ bic r1, r1, #7
+ strh r1, [r0]
+ mov r0, #0
+ b _03802140
+_03802100:
+ add r9, r9, #1
+_03802104:
+ cmp r9, #5
+ blt _038020D0
+_0380210C:
+ add r3, r3, #1
+_03802110:
+ cmp r3, #4
+ blt _038020B4
+ add r4, r4, #1
+_0380211C:
+ cmp r4, #3
+ blt _038020A8
+ ldr r2, [sp]
+ ldr r1, [sp, #16]
+ add r1, r2, r1
+ mov r1, r1, asr #1
+ bic r1, r1, #7
+ strh r1, [r0]
+ mov r0, r6
+_03802140:
+ add sp, sp, #24
+ ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
+ bx lr
+_0380214C: .word 0x040001C0
+_03802150: .word 0x00008A01
+_03802154: .word 0x040001C2
+_03802158: .word 0x00007FF8
+_0380215C: .word 0x00008201
+
+ arm_func_start FUN_03802160
+FUN_03802160: ;@ 0x03802160
+ stmfd sp!, {lr}
+ sub sp, sp, #4
+ mov r0, #32768 ;@ 0x8000
+ bl EXIi_SelectRcnt
+ ldr r1, _038022A4 ;@ =0x040001C0
+_03802174:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03802174
+ ldr r0, _038022A8 ;@ =0x00008A01
+ strh r0, [r1]
+ mov r1, #132 ;@ 0x84
+ ldr r0, _038022AC ;@ =0x040001C2
+ strh r1, [r0]
+ ldr r1, _038022A4 ;@ =0x040001C0
+_03802198:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03802198
+ mov r1, #0
+ ldr r0, _038022AC ;@ =0x040001C2
+ strh r1, [r0]
+ ldr r1, _038022A4 ;@ =0x040001C0
+_038021B4:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _038021B4
+ ldr r0, _038022B0 ;@ =0x00008201
+ strh r0, [r1]
+ mov r1, #0
+ ldr r0, _038022AC ;@ =0x040001C2
+ strh r1, [r0]
+ ldr r1, _038022A4 ;@ =0x040001C0
+_038021D8:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _038021D8
+ ldr r0, _038022B4 ;@ =_03809F28
+ ldrh r0, [r0]
+ cmp r0, #0
+ bne _0380220C
+ ldr r0, _038022B8 ;@ =0x04000136
+ ldrh r0, [r0]
+ ands r0, r0, #64 ;@ 0x40
+ moveq r0, #1
+ movne r0, #0
+ b _03802298
+_0380220C:
+ ldr r0, _038022B8 ;@ =0x04000136
+ ldrh r0, [r0]
+ ands r0, r0, #64 ;@ 0x40
+ moveq r0, #1
+ beq _03802298
+ ldr r0, _038022A8 ;@ =0x00008A01
+ strh r0, [r1]
+ mov r1, #132 ;@ 0x84
+ ldr r0, _038022AC ;@ =0x040001C2
+ strh r1, [r0]
+ ldr r1, _038022A4 ;@ =0x040001C0
+_03802238:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03802238
+ mov r1, #0
+ ldr r0, _038022AC ;@ =0x040001C2
+ strh r1, [r0]
+ ldr r1, _038022A4 ;@ =0x040001C0
+_03802254:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03802254
+ ldr r0, _038022B0 ;@ =0x00008201
+ strh r0, [r1]
+ mov r1, #0
+ ldr r0, _038022AC ;@ =0x040001C2
+ strh r1, [r0]
+ ldr r1, _038022A4 ;@ =0x040001C0
+_03802278:
+ ldrh r0, [r1]
+ ands r0, r0, #128 ;@ 0x80
+ bne _03802278
+ ldr r0, _038022B8 ;@ =0x04000136
+ ldrh r0, [r0]
+ ands r0, r0, #64 ;@ 0x40
+ movne r0, #0
+ moveq r0, #2
+_03802298:
+ add sp, sp, #4
+ ldmia sp!, {lr}
+ bx lr
+_038022A4: .word 0x040001C0
+_038022A8: .word 0x00008A01
+_038022AC: .word 0x040001C2
+_038022B0: .word 0x00008201
+_038022B4: .word _03809F28
+_038022B8: .word 0x04000136
diff --git a/arm7/asm/wram2.s b/arm7/asm/wram2.s
index 57fd39e1..68b31543 100644
--- a/arm7/asm/wram2.s
+++ b/arm7/asm/wram2.s
@@ -3,3626 +3,6 @@
.section .text
- arm_func_start FUN_03801150
-FUN_03801150: ;@ 0x03801150
- stmfd sp!, {lr}
- sub sp, sp, #4
- cmp r2, #0
- bne _038011B4
- sub r0, r0, #4
- cmp r0, #5
- addls pc, pc, r0, lsl #2
- b _038011B4
- b _038011AC
- b _038011B4
- b _03801188
- b _038011B4
- b _038011A0
- b _03801194
-_03801188:
- mov r0, r1
- bl TP_AnalyzeCommand
- b _038011B4
-_03801194:
- mov r0, r1
- bl MIC_AnalyzeCommand
- b _038011B4
-_038011A0:
- mov r0, r1
- bl PM_AnalyzeCommand
- b _038011B4
-_038011AC:
- mov r0, r1
- bl NVRAM_AnalyzeCommand
-_038011B4:
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start FUN_038011C0
-FUN_038011C0: ;@ 0x038011C0
- stmdb sp!, {r4, r5, r6, lr}
- sub sp, sp, #8
- ldr r6, _03801228 ;@ =_03809C5C
- add r5, sp, #0
- mov r4, #1
-_038011D4:
- mov r0, r6
- mov r1, r5
- mov r2, r4
- bl OS_ReceiveMessage
- ldr r0, [sp]
- ldr r1, [r0]
- cmp r1, #3
- addls pc, pc, r1, lsl #2
- b _038011D4
- b _03801208
- b _03801220
- b _03801210
- b _03801218
-_03801208:
- bl TP_ExecuteProcess
- b _038011D4
-_03801210:
- bl MIC_ExecuteProcess
- b _038011D4
-_03801218:
- bl PM_ExecuteProcess
- b _038011D4
-_03801220:
- bl NVRAM_ExecuteProcess
- b _038011D4
-_03801228: .word _03809C5C
-
- arm_func_start SPIi_CheckEntry
-SPIi_CheckEntry: ;@ 0x0380122C
- stmfd sp!, {lr}
- sub sp, sp, #4
- ldr r0, _03801250 ;@ =_03809C5C
- add r1, sp, #0
- mov r2, #0
- bl OS_ReadMessage
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-_03801250: .word _03809C5C
-
- arm_func_start SPIi_SetEntry
-SPIi_SetEntry: ;@ 0x03801254
- stmdb sp!, {r0, r1, r2, r3}
- stmdb sp!, {r4, r5, r6, lr}
- mov r5, r0
- mov r4, r1
- ldrh r0, [sp, #24]
- cmp r0, #4
- movhi r0, #0
- bhi _0380130C
- bl OS_DisableInterrupts
- ldr r2, _03801318 ;@ =_038099B0
- ldr r3, [r2, #1164] ;@ 0x48c
- mov r1, #24
- mul ip, r3, r1
- ldr r3, _0380131C ;@ =_03809CBC
- str r5, [r3, ip]
- ldr r3, [r2, #1164] ;@ 0x48c
- mul r5, r3, r1
- ldr r3, _03801320 ;@ =_03809CC0
- str r4, [r3, r5]
- add r3, sp, #24
- bic r3, r3, #3
- add r6, r3, #4
- mov lr, #0
- ldrh ip, [sp, #24]
- b _038012D4
-_038012B8:
- add r6, r6, #4
- ldr r5, [r6, #-4]
- ldr r4, [r2, #1164] ;@ 0x48c
- mla r3, r4, r1, r2
- add r3, r3, lr, lsl #2
- str r5, [r3, #788] ;@ 0x314
- add lr, lr, #1
-_038012D4:
- cmp lr, ip
- blt _038012B8
- ldr r1, _03801318 ;@ =_038099B0
- ldr r4, [r1, #1164] ;@ 0x48c
- add r2, r4, #1
- and r2, r2, #15
- str r2, [r1, #1164] ;@ 0x48c
- bl OS_RestoreInterrupts
- ldr r0, _03801324 ;@ =_03809C5C
- ldr r2, _0380131C ;@ =_03809CBC
- mov r1, #24
- mla r1, r4, r1, r2
- mov r2, #0
- bl OS_SendMessage
-_0380130C:
- ldmia sp!, {r4, r5, r6, lr}
- add sp, sp, #16
- bx lr
-_03801318: .word _038099B0
-_0380131C: .word _03809CBC
-_03801320: .word _03809CC0
-_03801324: .word _03809C5C
-
- arm_func_start SPIi_ReleaseException
-SPIi_ReleaseException: ;@ 0x03801328
- stmfd sp!, {lr}
- sub sp, sp, #4
- ldr r1, _03801364 ;@ =_038099B0
- ldr r2, [r1, #4]
- cmp r2, r0
- bne _03801358
- mov r0, #5
- str r0, [r1, #4]
- mov r0, #0
- str r0, [r1]
- ldr r0, _03801368 ;@ =_03809E40
- bl OS_WakeupThread
-_03801358:
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-_03801364: .word _038099B0
-_03801368: .word _03809E40
-
- arm_func_start SPIi_GetException
-SPIi_GetException: ;@ 0x0380136C
- mov r2, #1
- ldr r1, _03801380 ;@ =_038099B0
- str r2, [r1]
- str r0, [r1, #4]
- bx lr
-_03801380: .word _038099B0
-
- arm_func_start SPIi_CheckException
-SPIi_CheckException: ;@ 0x03801384
- ldr r0, _0380139C ;@ =_038099B0
- ldr r0, [r0]
- cmp r0, #0
- moveq r0, #1
- movne r0, #0
- bx lr
-_0380139C: .word _038099B0
-
- arm_func_start SPIi_ReturnResult
-SPIi_ReturnResult: ;@ 0x038013A0
- stmdb sp!, {r4, r5, r6, lr}
- and r2, r0, #112 ;@ 0x70
- cmp r2, #48 ;@ 0x30
- bgt _038013E0
- cmp r2, #48 ;@ 0x30
- bge _03801434
- cmp r2, #16
- bgt _038013D4
- cmp r2, #16
- bge _0380141C
- cmp r2, #0
- beq _0380141C
- b _03801438
-_038013D4:
- cmp r2, #32
- beq _03801434
- b _03801438
-_038013E0:
- cmp r2, #80 ;@ 0x50
- bgt _038013FC
- cmp r2, #80 ;@ 0x50
- bge _03801424
- cmp r2, #64 ;@ 0x40
- beq _03801424
- b _03801438
-_038013FC:
- cmp r2, #96 ;@ 0x60
- bgt _03801410
- cmp r2, #96 ;@ 0x60
- beq _0380142C
- b _03801438
-_03801410:
- cmp r2, #112 ;@ 0x70
- beq _0380142C
- b _03801438
-_0380141C:
- mov r4, #6
- b _03801438
-_03801424:
- mov r4, #9
- b _03801438
-_0380142C:
- mov r4, #8
- b _03801438
-_03801434:
- mov r4, #4
-_03801438:
- and r0, r0, #255 ;@ 0xff
- orr r0, r0, #128 ;@ 0x80
- mov r0, r0, lsl #8
- orr r2, r0, #50331648 ;@ 0x3000000
- and r0, r1, #255 ;@ 0xff
- orr r6, r2, r0
- mov r5, #0
-_03801454:
- mov r0, r4
- mov r1, r6
- mov r2, r5
- bl PXI_SendWordByFifo
- cmp r0, #0
- blt _03801454
- ldmia sp!, {r4, r5, r6, lr}
- bx lr
-
- arm_func_start SPI_Unlock
-SPI_Unlock: ;@ 0x03801474
- stmfd sp!, {lr}
- sub sp, sp, #4
- ldr r1, _038014D8 ;@ =_038099B0
- ldr r2, [r1]
- cmp r2, #0
- beq _038014CC
- ldr r2, [r1, #4]
- cmp r2, #4
- bne _038014CC
- ldr r1, [r1, #1176] ;@ 0x498
- cmp r1, r0
- bne _038014CC
- bl OS_DisableInterrupts
- mov r2, #5
- ldr r1, _038014D8 ;@ =_038099B0
- str r2, [r1, #4]
- mov r2, #0
- str r2, [r1]
- str r2, [r1, #1176] ;@ 0x498
- bl OS_RestoreInterrupts
- ldr r0, _038014DC ;@ =_03809E40
- bl OS_WakeupThread
-_038014CC:
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-_038014D8: .word _038099B0
-_038014DC: .word _03809E40
-
- arm_func_start SPI_Lock
-SPI_Lock: ;@ 0x038014E0
- stmdb sp!, {r4, r5, r6, r7, lr}
- sub sp, sp, #4
- mov r7, r0
- ldr r5, _0380153C ;@ =_03809E40
- ldr r4, _03801540 ;@ =_038099B0
-_038014F4:
- bl OS_DisableInterrupts
- mov r6, r0
- ldr r1, [r4]
- cmp r1, #0
- beq _03801518
- bl OS_RestoreInterrupts
- mov r0, r5
- bl OS_SleepThread
- b _038014F4
-_03801518:
- mov r0, #4
- bl SPIi_GetException
- ldr r0, _03801540 ;@ =_038099B0
- str r7, [r0, #1176] ;@ 0x498
- mov r0, r6
- bl OS_RestoreInterrupts
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, lr}
- bx lr
-_0380153C: .word _03809E40
-_03801540: .word _038099B0
-
- arm_func_start SPI_Init
-SPI_Init: ;@ 0x03801544
- stmdb sp!, {r4, r5, r6, r7, r8, lr}
- sub sp, sp, #8
- mov r4, r0
- ldr r0, _03801640 ;@ =_038099AC
- ldrh r1, [r0]
- cmp r1, #0
- bne _03801634
- mov r1, #1
- strh r1, [r0]
- mov r1, #0
- ldr r0, _03801644 ;@ =_038099B0
- str r1, [r0]
- mov r1, #5
- str r1, [r0, #4]
- bl TP_Init
- bl NVRAM_Init
- bl MIC_Init
- bl PM_Init
- bl PXI_Init
- mov r0, #6
- ldr r1, _03801648 ;@ =FUN_03801150
- bl PXI_SetFifoRecvCallback
- mov r0, #9
- ldr r1, _03801648 ;@ =FUN_03801150
- bl PXI_SetFifoRecvCallback
- mov r0, #8
- ldr r1, _03801648 ;@ =FUN_03801150
- bl PXI_SetFifoRecvCallback
- mov r0, #4
- ldr r1, _03801648 ;@ =FUN_03801150
- bl PXI_SetFifoRecvCallback
- ldr r0, _0380164C ;@ =_03809C5C
- ldr r1, _03801650 ;@ =_03809C7C
- mov r2, #16
- bl OS_InitMessageQueue
- mov r8, #0
- ldr r7, _03801654 ;@ =_03809CBC
- mov r6, r8
- mov r5, #24
-_038015E0:
- mla r0, r8, r5, r7
- mov r1, r6
- mov r2, r5
- bl MI_CpuFill8
- add r8, r8, #1
- cmp r8, #16
- blt _038015E0
- mov r2, #0
- ldr r0, _03801644 ;@ =_038099B0
- str r2, [r0, #1164] ;@ 0x48c
- str r2, [r0, #1172] ;@ 0x494
- str r2, [r0, #1168] ;@ 0x490
- mov r0, #512 ;@ 0x200
- str r0, [sp]
- str r4, [sp, #4]
- ldr r0, _03801658 ;@ =_038099B8
- ldr r1, _0380165C ;@ =FUN_038011C0
- ldr r3, _0380164C ;@ =_03809C5C
- bl OS_CreateThread
- ldr r0, _03801658 ;@ =_038099B8
- bl OS_WakeupThreadDirect
-_03801634:
- add sp, sp, #8
- ldmia sp!, {r4, r5, r6, r7, r8, lr}
- bx lr
-_03801640: .word _038099AC
-_03801644: .word _038099B0
-_03801648: .word FUN_03801150
-_0380164C: .word _03809C5C
-_03801650: .word _03809C7C
-_03801654: .word _03809CBC
-_03801658: .word _038099B8
-_0380165C: .word FUN_038011C0
-
- arm_func_start FUN_03801660
-FUN_03801660: ;@ 0x03801660
- stmfd sp!, {lr}
- sub sp, sp, #4
- cmp r0, #0
- bne _03801680
- mov r0, #3
- mov r1, #2
- bl SPIi_ReturnResult
- b _03801698
-_03801680:
- ldr r1, _038016A4 ;@ =_03809E54
- str r0, [r1, #36] ;@ 0x24
- str r0, [r1, #40] ;@ 0x28
- mov r0, #3
- mov r1, #0
- bl SPIi_ReturnResult
-_03801698:
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-_038016A4: .word _03809E54
-
- arm_func_start FUN_038016A8
-FUN_038016A8: ;@ 0x038016A8
- stmdb sp!, {r4, lr}
- sub sp, sp, #8
- mov r4, r0
- mov r0, #0
- mov r1, #16
- mov r2, #1
- mov r3, r4
- bl SPIi_SetEntry
- cmp r0, #0
- bne _0380170C
- ldr r0, [sp]
- bic r0, r0, #100663296 ;@ 0x6000000
- orr r0, r0, #100663296 ;@ 0x6000000
- str r0, [sp]
- ldrh r1, [sp]
- ldr r0, _03801718 ;@ =0x027FFFAA
- strh r1, [r0]
- ldrh r1, [sp, #2]
- ldr r0, _0380171C ;@ =0x027FFFAC
- strh r1, [r0]
- mov r0, #16
- and r1, r4, #255 ;@ 0xff
- mov r1, r1, lsl #16
- mov r1, r1, lsr #16
- bl SPIi_ReturnResult
-_0380170C:
- add sp, sp, #8
- ldmia sp!, {r4, lr}
- bx lr
-_03801718: .word 0x027FFFAA
-_0380171C: .word 0x027FFFAC
-
- arm_func_start TP_ExecuteProcess
-TP_ExecuteProcess: ;@ 0x03801720
- stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
- sub sp, sp, #16
- mov sl, r0
- ldr r1, [sl, #4]
- cmp r1, #2
- bhi _03801754
- cmp r1, #0
- beq _0380176C
- cmp r1, #1
- beq _03801834
- cmp r1, #2
- beq _038018E0
- b _0380192C
-_03801754:
- cmp r1, #16
- bne _0380192C
- ldr r0, _03801938 ;@ =_03809E54
- ldr r0, [r0, #32]
- cmp r0, #2
- bne _0380192C
-_0380176C:
- bl OS_DisableInterrupts
- mov r4, r0
- mov r0, #0
- bl SPIi_CheckException
- cmp r0, #0
- bne _038017A4
- mov r0, r4
- bl OS_RestoreInterrupts
- ldr r0, [sl, #4]
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #4
- bl SPIi_ReturnResult
- b _0380192C
-_038017A4:
- mov r0, #0
- bl SPIi_GetException
- mov r0, r4
- bl OS_RestoreInterrupts
- add r0, sp, #8
- ldr r1, _03801938 ;@ =_03809E54
- ldr r1, [r1, #36] ;@ 0x24
- add r2, sp, #4
- bl TP_ExecSampling
- add r0, sp, #8
- ldrh r1, [sp, #4]
- bl FUN_03801954
- ldrh r1, [sp, #8]
- ldr r0, _0380193C ;@ =0x027FFFAA
- strh r1, [r0]
- ldrh r1, [sp, #10]
- ldr r0, _03801940 ;@ =0x027FFFAC
- strh r1, [r0]
- ldr r0, [sl, #4]
- cmp r0, #0
- bne _0380180C
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #0
- bl SPIi_ReturnResult
- b _03801828
-_0380180C:
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- ldr r1, [sl, #8]
- and r1, r1, #255 ;@ 0xff
- mov r1, r1, lsl #16
- mov r1, r1, lsr #16
- bl SPIi_ReturnResult
-_03801828:
- mov r0, #0
- bl SPIi_ReleaseException
- b _0380192C
-_03801834:
- ldr r7, _03801938 ;@ =_03809E54
- ldr r0, [r7, #32]
- cmp r0, #1
- bne _038018CC
- mov r9, #0
- ldr r8, _03801944 ;@ =0x00000107
- ldr r6, _03801948 ;@ =_03809E80
- mov r5, #10
- ldr r4, _0380194C ;@ =FUN_038016A8
- b _0380189C
-_0380185C:
- mul r0, r9, r8
- bl _u32_div_f
- ldr r1, [sl, #12]
- add r0, r1, r0
- mov r1, r8
- bl _u32_div_f
- add r2, r7, r9, lsl #1
- strh r1, [r2, #204] ;@ 0xcc
- str r9, [sp]
- mov r0, #40 ;@ 0x28
- mla r0, r9, r0, r6
- ldrsh r1, [r2, #204] ;@ 0xcc
- mov r2, r5
- mov r3, r4
- bl OS_SetPeriodicVAlarm
- add r9, r9, #1
-_0380189C:
- ldr r1, [sl, #8]
- cmp r9, r1
- bcc _0380185C
- ldr r0, [sl, #4]
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #0
- bl SPIi_ReturnResult
- mov r1, #2
- ldr r0, _03801938 ;@ =_03809E54
- str r1, [r0, #32]
- b _0380192C
-_038018CC:
- mov r0, r1, lsl #16
- mov r0, r0, lsr #16
- mov r1, #3
- bl SPIi_ReturnResult
- b _0380192C
-_038018E0:
- ldr r0, _03801938 ;@ =_03809E54
- ldr r0, [r0, #32]
- cmp r0, #3
- bne _0380191C
- ldr r0, _03801950 ;@ =0x54505641
- bl OS_CancelVAlarms
- ldr r0, [sl, #4]
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #0
- bl SPIi_ReturnResult
- mov r1, #0
- ldr r0, _03801938 ;@ =_03809E54
- str r1, [r0, #32]
- b _0380192C
-_0380191C:
- mov r0, r1, lsl #16
- mov r0, r0, lsr #16
- mov r1, #3
- bl SPIi_ReturnResult
-_0380192C:
- add sp, sp, #16
- ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
- bx lr
-_03801938: .word _03809E54
-_0380193C: .word 0x027FFFAA
-_03801940: .word 0x027FFFAC
-_03801944: .word 0x00000107
-_03801948: .word _03809E80
-_0380194C: .word FUN_038016A8
-_03801950: .word 0x54505641
-
- arm_func_start FUN_03801954
-FUN_03801954: ;@ 0x03801954
- stmfd sp!, {lr}
- sub sp, sp, #4
- ldr r0, [r0]
- mov r2, r0, lsl #7
- movs r2, r2, lsr #31
- bne _03801984
- mov r1, #0
- ldr r0, _03801A3C ;@ =_03809E50
- strb r1, [r0]
- ldr r0, _03801A40 ;@ =_03809E4C
- strb r1, [r0]
- b _03801A30
-_03801984:
- mov r0, r0, lsl #5
- movs r0, r0, lsr #30
- beq _038019D4
- mov r2, #0
- ldr r0, _03801A40 ;@ =_03809E4C
- strb r2, [r0]
- ldr r0, _03801A3C ;@ =_03809E50
- ldrb r1, [r0]
- add r1, r1, #1
- strb r1, [r0]
- ldrb r1, [r0]
- cmp r1, #4
- bcc _03801A30
- strb r2, [r0]
- ldr r0, _03801A44 ;@ =_03809E54
- ldr r1, [r0, #36] ;@ 0x24
- cmp r1, #35 ;@ 0x23
- addlt r1, r1, #1
- strlt r1, [r0, #36] ;@ 0x24
- b _03801A30
-_038019D4:
- mov lr, #0
- ldr r3, _03801A3C ;@ =_03809E50
- strb lr, [r3]
- ldr r2, _03801A44 ;@ =_03809E54
- ldr ip, [r2, #36] ;@ 0x24
- cmp r1, ip, asr #1
- ldrge r0, _03801A40 ;@ =_03809E4C
- strgeb lr, [r0]
- bge _03801A30
- ldr r0, _03801A40 ;@ =_03809E4C
- ldrb r1, [r0]
- add r1, r1, #1
- strb r1, [r0]
- ldrb r1, [r0]
- cmp r1, #4
- bcc _03801A30
- strb lr, [r0]
- ldr r0, [r2, #40] ;@ 0x28
- cmp ip, r0
- subgt r0, ip, #1
- strgt r0, [r2, #36] ;@ 0x24
- movgt r0, #3
- strgtb r0, [r3]
-_03801A30:
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-_03801A3C: .word _03809E50
-_03801A40: .word _03809E4C
-_03801A44: .word _03809E54
-
- arm_func_start TP_AnalyzeCommand
-TP_AnalyzeCommand: ;@ 0x03801A48
- stmdb sp!, {r4, lr}
- sub sp, sp, #8
- ands r1, r0, #33554432 ;@ 0x2000000
- beq _03801A78
- mov r4, #0
- mov r3, r4
- ldr r1, _03801C00 ;@ =_03809E54
-_03801A64:
- mov r2, r4, lsl #1
- strh r3, [r1, r2]
- add r4, r4, #1
- cmp r4, #16
- blt _03801A64
-_03801A78:
- and r1, r0, #983040 ;@ 0xf0000
- mov r1, r1, lsr #16
- mov r1, r1, lsl #1
- ldr r2, _03801C00 ;@ =_03809E54
- strh r0, [r2, r1]
- ands r0, r0, #16777216 ;@ 0x1000000
- beq _03801BF4
- ldrh r1, [r2]
- and r0, r1, #65280 ;@ 0xff00
- mov r0, r0, lsl #8
- mov r4, r0, lsr #16
- cmp r4, #3
- addls pc, pc, r4, lsl #2
- b _03801BE8
- b _03801AD4
- b _03801AFC
- b _03801B98
- b _03801AC0
-_03801AC0:
- and r0, r1, #255 ;@ 0xff
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- bl FUN_03801660
- b _03801BF4
-_03801AD4:
- mov r0, #0
- mov r1, r4
- mov r2, r0
- bl SPIi_SetEntry
- cmp r0, #0
- bne _03801BF4
- mov r0, r4
- mov r1, #4
- bl SPIi_ReturnResult
- b _03801BF4
-_03801AFC:
- ldr r0, [r2, #32]
- cmp r0, #0
- beq _03801B18
- mov r0, r4
- mov r1, #3
- bl SPIi_ReturnResult
- b _03801BF4
-_03801B18:
- and r0, r1, #255 ;@ 0xff
- mov r0, r0, lsl #16
- movs r3, r0, lsr #16
- beq _03801B30
- cmp r3, #4
- bls _03801B40
-_03801B30:
- mov r0, r4
- mov r1, #2
- bl SPIi_ReturnResult
- b _03801BF4
-_03801B40:
- ldrh r1, [r2, #2]
- ldr r0, _03801C04 ;@ =0x00000107
- cmp r1, r0
- bcc _03801B60
- mov r0, r4
- mov r1, #2
- bl SPIi_ReturnResult
- b _03801BF4
-_03801B60:
- str r1, [sp]
- mov r0, #0
- mov r1, r4
- mov r2, #2
- bl SPIi_SetEntry
- cmp r0, #0
- movne r1, #1
- ldrne r0, _03801C00 ;@ =_03809E54
- strne r1, [r0, #32]
- bne _03801BF4
- mov r0, r4
- mov r1, #4
- bl SPIi_ReturnResult
- b _03801BF4
-_03801B98:
- ldr r0, [r2, #32]
- cmp r0, #2
- beq _03801BB4
- mov r0, r4
- mov r1, #3
- bl SPIi_ReturnResult
- b _03801BF4
-_03801BB4:
- mov r0, #0
- mov r1, r4
- mov r2, r0
- bl SPIi_SetEntry
- cmp r0, #0
- movne r1, #3
- ldrne r0, _03801C00 ;@ =_03809E54
- strne r1, [r0, #32]
- bne _03801BF4
- mov r0, r4
- mov r1, #4
- bl SPIi_ReturnResult
- b _03801BF4
-_03801BE8:
- mov r0, r4
- mov r1, #1
- bl SPIi_ReturnResult
-_03801BF4:
- add sp, sp, #8
- ldmia sp!, {r4, lr}
- bx lr
-_03801C00: .word _03809E54
-_03801C04: .word 0x00000107
-
- arm_func_start TP_Init
-TP_Init: ;@ 0x03801C08
- stmdb sp!, {r4, r5, r6, r7, r8, lr}
- mov r3, #0
- ldr r0, _03801CFC ;@ =_03809E54
- str r3, [r0, #32]
- mov r1, #20
- str r1, [r0, #36] ;@ 0x24
- str r1, [r0, #40] ;@ 0x28
- mov r2, r3
-_03801C28:
- mov r1, r3, lsl #1
- strh r2, [r0, r1]
- add r3, r3, #1
- cmp r3, #16
- blt _03801C28
- bl OS_IsVAlarmAvailable
- cmp r0, #0
- bne _03801C4C
- bl OS_InitVAlarm
-_03801C4C:
- mov r7, #0
- ldr r6, _03801D00 ;@ =_03809E80
- ldr r5, _03801D04 ;@ =0x54505641
- mov r4, #40 ;@ 0x28
-_03801C5C:
- mla r8, r7, r4, r6
- mov r0, r8
- bl OS_CreateVAlarm
- mov r0, r8
- mov r1, r5
- bl OS_SetVAlarmTag
- add r7, r7, #1
- cmp r7, #4
- blt _03801C5C
- ldr r1, _03801D08 ;@ =0x040001C0
-_03801C84:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03801C84
- ldr r0, _03801D0C ;@ =0x00008A01
- strh r0, [r1]
- mov r1, #132 ;@ 0x84
- ldr r0, _03801D10 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _03801D08 ;@ =0x040001C0
-_03801CA8:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03801CA8
- mov r1, #0
- ldr r0, _03801D10 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _03801D08 ;@ =0x040001C0
-_03801CC4:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03801CC4
- ldr r0, _03801D14 ;@ =0x00008201
- strh r0, [r1]
- mov r1, #0
- ldr r0, _03801D10 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _03801D08 ;@ =0x040001C0
-_03801CE8:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03801CE8
- ldmia sp!, {r4, r5, r6, r7, r8, lr}
- bx lr
-_03801CFC: .word _03809E54
-_03801D00: .word _03809E80
-_03801D04: .word 0x54505641
-_03801D08: .word 0x040001C0
-_03801D0C: .word 0x00008A01
-_03801D10: .word 0x040001C2
-_03801D14: .word 0x00008201
-
- arm_func_start TP_ExecSampling
-TP_ExecSampling: ;@ 0x03801D18
- stmdb sp!, {r4, r5, r6, r7, lr}
- sub sp, sp, #12
- mov r7, r0
- movs r6, r1
- mov r5, r2
- mov r0, #0
- strh r0, [r5]
- rsbmi r6, r6, #0
- bl FUN_03802160
- movs r4, r0
- bne _03801D94
- ldr r1, [r7]
- mov r0, #4096 ;@ 0x1000
- rsb r0, r0, #0
- and r0, r1, r0
- str r0, [r7]
- ldr r1, [r7]
- ldr r0, _03801F4C ;@ =0xFF000FFF
- and r0, r1, r0
- str r0, [r7]
- ldr r0, [r7]
- bic r0, r0, #16777216 ;@ 0x1000000
- str r0, [r7]
- ldr r0, [r7]
- bic r0, r0, #100663296 ;@ 0x6000000
- orr r0, r0, #100663296 ;@ 0x6000000
- str r0, [r7]
- mov r1, #0
- ldr r0, _03801F50 ;@ =_03809F28
- strh r1, [r0]
- b _03801F40
-_03801D94:
- add r0, sp, #0
- mov r1, r6
- mov r2, #0
- add r3, sp, #2
- bl FUN_03801F68
- ldr r1, [r7]
- bic r1, r1, #100663296 ;@ 0x6000000
- and r0, r0, #3
- orr r0, r1, r0, lsl #25
- str r0, [r7]
- ldr r1, [r7]
- mov r0, #4096 ;@ 0x1000
- rsb r0, r0, #0
- and r2, r1, r0
- ldrh r1, [sp]
- ldr r0, _03801F54 ;@ =0x00000FFF
- and r0, r1, r0
- orr r0, r2, r0
- str r0, [r7]
- add r0, sp, #0
- mov r1, r6
- mov r2, #1
- add r3, sp, #4
- bl FUN_03801F68
- cmp r0, #2
- bne _03801E1C
- ldr r0, [r7]
- bic r1, r0, #100663296 ;@ 0x6000000
- mov r0, r0, lsl #5
- mov r0, r0, lsr #30
- orr r0, r0, #2
- and r0, r0, #3
- orr r0, r1, r0, lsl #25
- str r0, [r7]
-_03801E1C:
- ldr r1, [r7]
- ldr r0, _03801F4C ;@ =0xFF000FFF
- and r2, r1, r0
- ldrh r1, [sp]
- ldr r0, _03801F54 ;@ =0x00000FFF
- and r0, r1, r0
- orr r0, r2, r0, lsl #12
- str r0, [r7]
- ldr r0, _03801F58 ;@ =0x00008A01
- ldr r3, _03801F5C ;@ =0x040001C0
- strh r0, [r3]
- mov r6, #0
- mov r2, r6
- ldr r1, _03801F60 ;@ =0x040001C2
-_03801E54:
- strh r2, [r1]
-_03801E58:
- ldrh r0, [r3]
- ands r0, r0, #128 ;@ 0x80
- bne _03801E58
- add r6, r6, #1
- cmp r6, #12
- blt _03801E54
- ldr r0, _03801F64 ;@ =0x00008201
- strh r0, [r3]
- mov r1, #0
- ldr r0, _03801F60 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _03801F5C ;@ =0x040001C0
-_03801E88:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03801E88
- cmp r4, #2
- ldreq r0, [r7]
- biceq r0, r0, #100663296 ;@ 0x6000000
- orreq r0, r0, #100663296 ;@ 0x6000000
- streq r0, [r7]
- bl FUN_03802160
- cmp r0, #0
- beq _03801F20
- cmp r0, #1
- beq _03801EF0
- cmp r0, #2
- bne _03801F3C
- ldr r0, [r7]
- orr r0, r0, #16777216 ;@ 0x1000000
- str r0, [r7]
- ldr r0, [r7]
- bic r0, r0, #100663296 ;@ 0x6000000
- orr r0, r0, #100663296 ;@ 0x6000000
- str r0, [r7]
- mov r1, #0
- ldr r0, _03801F50 ;@ =_03809F28
- strh r1, [r0]
- b _03801F40
-_03801EF0:
- ldr r0, [r7]
- orr r0, r0, #16777216 ;@ 0x1000000
- str r0, [r7]
- mov r1, #1
- ldr r0, _03801F50 ;@ =_03809F28
- strh r1, [r0]
- ldrh r0, [sp, #4]
- ldrh r1, [sp, #2]
- cmp r1, r0
- movcc r1, r0
- strh r1, [r5]
- b _03801F40
-_03801F20:
- ldr r0, [r7]
- bic r0, r0, #16777216 ;@ 0x1000000
- str r0, [r7]
- mov r1, #0
- ldr r0, _03801F50 ;@ =_03809F28
- strh r1, [r0]
- b _03801F40
-_03801F3C:
- bl OS_Terminate
-_03801F40:
- add sp, sp, #12
- ldmia sp!, {r4, r5, r6, r7, lr}
- bx lr
-_03801F4C: .word 0xFF000FFF
-_03801F50: .word _03809F28
-_03801F54: .word 0x00000FFF
-_03801F58: .word 0x00008A01
-_03801F5C: .word 0x040001C0
-_03801F60: .word 0x040001C2
-_03801F64: .word 0x00008201
-
- arm_func_start FUN_03801F68
-FUN_03801F68: ;@ 0x03801F68
- stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
- sub sp, sp, #24
- cmp r2, #0
- moveq r5, #209 ;@ 0xd1
- moveq r6, #1
- movne r5, #145 ;@ 0x91
- movne r6, #2
-_03801F84:
- ldr r4, _0380214C ;@ =0x040001C0
- ldrh r2, [r4]
- ands r2, r2, #128 ;@ 0x80
- bne _03801F84
- ldr r2, _03802150 ;@ =0x00008A01
- strh r2, [r4]
- and r5, r5, #255 ;@ 0xff
- ldr r2, _03802154 ;@ =0x040001C2
- strh r5, [r2]
-_03801FA8:
- ldrh r2, [r4]
- ands r2, r2, #128 ;@ 0x80
- bne _03801FA8
- mov r7, #0
- ldr ip, _0380214C ;@ =0x040001C0
- ldr lr, _03802154 ;@ =0x040001C2
- add r2, sp, #0
- mov r4, r7
- ldr r9, _03802158 ;@ =0x00007FF8
-_03801FCC:
- strh r4, [lr]
-_03801FD0:
- ldrh r8, [ip]
- ands r8, r8, #128 ;@ 0x80
- bne _03801FD0
- ldrh r8, [lr]
- and r8, r8, #255 ;@ 0xff
- mov r8, r8, lsl #16
- mov r8, r8, lsr #8
- str r8, [r2, r7, lsl #2]
- strh r5, [lr]
-_03801FF4:
- ldrh r8, [ip]
- ands r8, r8, #128 ;@ 0x80
- bne _03801FF4
- ldrh r8, [lr]
- and r8, r8, #255 ;@ 0xff
- mov r8, r8, lsl #16
- ldr sl, [r2, r7, lsl #2]
- orr r8, sl, r8, lsr #16
- str r8, [r2, r7, lsl #2]
- ldr r8, [r2, r7, lsl #2]
- and r8, r8, r9
- mov r8, r8, asr #3
- str r8, [r2, r7, lsl #2]
- add r7, r7, #1
- cmp r7, #5
- blt _03801FCC
- ldr r2, _0380215C ;@ =0x00008201
- strh r2, [ip]
- mov r2, #0
- strh r2, [lr]
- ldr r4, _0380214C ;@ =0x040001C0
-_03802048:
- ldrh r2, [r4]
- ands r2, r2, #128 ;@ 0x80
- bne _03802048
- mov r8, #0
- mov r7, r8
- add r5, sp, #0
-_03802060:
- add r9, r7, #1
- ldr r4, [r5, r7, lsl #2]
- b _03802084
-_0380206C:
- ldr r2, [r5, r9, lsl #2]
- subs r2, r4, r2
- rsbmi r2, r2, #0
- cmp r2, r8
- movgt r8, r2
- add r9, r9, #1
-_03802084:
- cmp r9, #5
- blt _0380206C
- add r7, r7, #1
- cmp r7, #4
- blt _03802060
- strh r8, [r3]
- mov r4, #0
- add r2, sp, #0
- b _0380211C
-_038020A8:
- add r3, r4, #1
- ldr r7, [r2, r4, lsl #2]
- b _03802110
-_038020B4:
- ldr r8, [r2, r3, lsl #2]
- subs r5, r7, r8
- rsbmi r5, r5, #0
- cmp r5, r1
- bgt _0380210C
- add r9, r3, #1
- b _03802104
-_038020D0:
- ldr r5, [r2, r9, lsl #2]
- subs sl, r7, r5
- rsbmi sl, sl, #0
- cmp sl, r1
- bgt _03802100
- add r1, r8, r7, lsl #1
- add r1, r5, r1
- mov r1, r1, asr #2
- bic r1, r1, #7
- strh r1, [r0]
- mov r0, #0
- b _03802140
-_03802100:
- add r9, r9, #1
-_03802104:
- cmp r9, #5
- blt _038020D0
-_0380210C:
- add r3, r3, #1
-_03802110:
- cmp r3, #4
- blt _038020B4
- add r4, r4, #1
-_0380211C:
- cmp r4, #3
- blt _038020A8
- ldr r2, [sp]
- ldr r1, [sp, #16]
- add r1, r2, r1
- mov r1, r1, asr #1
- bic r1, r1, #7
- strh r1, [r0]
- mov r0, r6
-_03802140:
- add sp, sp, #24
- ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
- bx lr
-_0380214C: .word 0x040001C0
-_03802150: .word 0x00008A01
-_03802154: .word 0x040001C2
-_03802158: .word 0x00007FF8
-_0380215C: .word 0x00008201
-
- arm_func_start FUN_03802160
-FUN_03802160: ;@ 0x03802160
- stmfd sp!, {lr}
- sub sp, sp, #4
- mov r0, #32768 ;@ 0x8000
- bl EXIi_SelectRcnt
- ldr r1, _038022A4 ;@ =0x040001C0
-_03802174:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03802174
- ldr r0, _038022A8 ;@ =0x00008A01
- strh r0, [r1]
- mov r1, #132 ;@ 0x84
- ldr r0, _038022AC ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _038022A4 ;@ =0x040001C0
-_03802198:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03802198
- mov r1, #0
- ldr r0, _038022AC ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _038022A4 ;@ =0x040001C0
-_038021B4:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _038021B4
- ldr r0, _038022B0 ;@ =0x00008201
- strh r0, [r1]
- mov r1, #0
- ldr r0, _038022AC ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _038022A4 ;@ =0x040001C0
-_038021D8:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _038021D8
- ldr r0, _038022B4 ;@ =_03809F28
- ldrh r0, [r0]
- cmp r0, #0
- bne _0380220C
- ldr r0, _038022B8 ;@ =0x04000136
- ldrh r0, [r0]
- ands r0, r0, #64 ;@ 0x40
- moveq r0, #1
- movne r0, #0
- b _03802298
-_0380220C:
- ldr r0, _038022B8 ;@ =0x04000136
- ldrh r0, [r0]
- ands r0, r0, #64 ;@ 0x40
- moveq r0, #1
- beq _03802298
- ldr r0, _038022A8 ;@ =0x00008A01
- strh r0, [r1]
- mov r1, #132 ;@ 0x84
- ldr r0, _038022AC ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _038022A4 ;@ =0x040001C0
-_03802238:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03802238
- mov r1, #0
- ldr r0, _038022AC ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _038022A4 ;@ =0x040001C0
-_03802254:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03802254
- ldr r0, _038022B0 ;@ =0x00008201
- strh r0, [r1]
- mov r1, #0
- ldr r0, _038022AC ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _038022A4 ;@ =0x040001C0
-_03802278:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03802278
- ldr r0, _038022B8 ;@ =0x04000136
- ldrh r0, [r0]
- ands r0, r0, #64 ;@ 0x40
- movne r0, #0
- moveq r0, #2
-_03802298:
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-_038022A4: .word 0x040001C0
-_038022A8: .word 0x00008A01
-_038022AC: .word 0x040001C2
-_038022B0: .word 0x00008201
-_038022B4: .word _03809F28
-_038022B8: .word 0x04000136
-
- arm_func_start PM_ExecuteProcess
-PM_ExecuteProcess: ;@ 0x038022BC
- stmdb sp!, {r4, r5, lr}
- sub sp, sp, #4
- mov r4, r0
- bl OS_DisableInterrupts
- mov r5, r0
- mov r0, #3
- bl SPIi_CheckException
- cmp r0, #0
- bne _03802300
- mov r0, r5
- bl OS_RestoreInterrupts
- ldr r0, [r4, #4]
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #4
- bl SPIi_ReturnResult
- b _0380242C
-_03802300:
- mov r0, #3
- bl SPIi_GetException
- mov r0, r5
- bl OS_RestoreInterrupts
- ldr r1, [r4, #4]
- sub r0, r1, #97 ;@ 0x61
- cmp r0, #5
- addls pc, pc, r0, lsl #2
- b _03802414
- b _0380233C
- b _03802414
- b _038023E0
- b _03802368
- b _038023A4
- b _03802408
-_0380233C:
- mov r1, #1
- ldr r0, _03802438 ;@ =PMi_Work
- str r1, [r0, #32]
- ldr r1, [r4, #8]
- ldr r0, _0380243C ;@ =PMi_TriggerBL
- strh r1, [r0]
- ldr r1, [r4, #12]
- ldr r0, _03802440 ;@ =PMi_KeyPattern
- strh r1, [r0]
- bl PMi_DoSleep
- b _03802424
-_03802368:
- mov r1, #4
- ldr r0, _03802438 ;@ =PMi_Work
- str r1, [r0, #32]
- ldr r2, [r4, #8]
- str r2, [r0, #40] ;@ 0x28
- ldr r1, [r4, #12]
- str r1, [r0, #36] ;@ 0x24
- mov r0, r2, lsl #16
- mov r0, r0, lsr #16
- and r1, r1, #255 ;@ 0xff
- bl PMi_SetRegister
- mov r0, #100 ;@ 0x64
- mov r1, #0
- bl SPIi_ReturnResult
- b _03802424
-_038023A4:
- mov r1, #3
- ldr r0, _03802438 ;@ =PMi_Work
- str r1, [r0, #32]
- ldr r1, [r4, #8]
- str r1, [r0, #40] ;@ 0x28
- mov r0, r1, lsl #16
- mov r4, r0, lsr #16
- mov r0, r4
- bl PMi_GetRegister
- mov r1, r0
- add r0, r4, #112 ;@ 0x70
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- bl SPIi_ReturnResult
- b _03802424
-_038023E0:
- mov r0, #2
- ldr r1, _03802438 ;@ =PMi_Work
- str r0, [r1, #32]
- ldr r0, [r4, #8]
- str r0, [r1, #36] ;@ 0x24
- bl PMi_SwitchUtilityProc
- mov r0, #99 ;@ 0x63
- mov r1, #0
- bl SPIi_ReturnResult
- b _03802424
-_03802408:
- ldr r0, [r4, #8]
- bl PMi_SetLED
- b _03802424
-_03802414:
- mov r0, r1, lsl #16
- mov r0, r0, lsr #16
- mov r1, #1
- bl SPIi_ReturnResult
-_03802424:
- mov r0, #3
- bl SPIi_ReleaseException
-_0380242C:
- add sp, sp, #4
- ldmia sp!, {r4, r5, lr}
- bx lr
-_03802438: .word PMi_Work
-_0380243C: .word PMi_TriggerBL
-_03802440: .word PMi_KeyPattern
-
- arm_func_start PM_AnalyzeCommand
-PM_AnalyzeCommand: ;@ 0x03802444
- stmdb sp!, {r4, lr}
- sub sp, sp, #8
- ands r1, r0, #33554432 ;@ 0x2000000
- beq _03802474
- mov r4, #0
- mov r3, r4
- ldr r1, _03802610 ;@ =PMi_Work
-_03802460:
- mov r2, r4, lsl #1
- strh r3, [r1, r2]
- add r4, r4, #1
- cmp r4, #16
- blt _03802460
-_03802474:
- and r1, r0, #983040 ;@ 0xf0000
- mov r1, r1, lsr #16
- mov r1, r1, lsl #1
- ldr ip, _03802610 ;@ =PMi_Work
- strh r0, [ip, r1]
- ands r0, r0, #16777216 ;@ 0x1000000
- beq _03802604
- ldrh r3, [ip]
- and r0, r3, #65280 ;@ 0xff00
- mov r0, r0, lsl #8
- mov r4, r0, lsr #16
- sub r0, r4, #96 ;@ 0x60
- cmp r0, #7
- addls pc, pc, r0, lsl #2
- b _038025F8
- b _038024D0
- b _038024E0
- b _038025F8
- b _03802588
- b _0380251C
- b _03802558
- b _038025C4
- b _038025DC
-_038024D0:
- mov r0, #96 ;@ 0x60
- mov r1, #0
- bl SPIi_ReturnResult
- b _03802604
-_038024E0:
- ldrh r1, [ip, #2]
- ldr r0, _03802614 ;@ =0x0000FFFF
- and r0, r1, r0
- str r0, [sp]
- mov r0, #3
- mov r1, r4
- mov r2, #2
- and r3, r3, #255 ;@ 0xff
- bl SPIi_SetEntry
- cmp r0, #0
- bne _03802604
- mov r0, r4
- mov r1, #4
- bl SPIi_ReturnResult
- b _03802604
-_0380251C:
- ldrh r1, [ip, #2]
- ldr r0, _03802614 ;@ =0x0000FFFF
- and r0, r1, r0
- str r0, [sp]
- mov r0, #3
- mov r1, r4
- mov r2, #2
- and r3, r3, #255 ;@ 0xff
- bl SPIi_SetEntry
- cmp r0, #0
- bne _03802604
- mov r0, r4
- mov r1, #4
- bl SPIi_ReturnResult
- b _03802604
-_03802558:
- mov r0, #3
- mov r1, r4
- mov r2, #1
- ldr ip, _03802614 ;@ =0x0000FFFF
- and r3, r3, ip
- bl SPIi_SetEntry
- cmp r0, #0
- bne _03802604
- mov r0, r4
- mov r1, #4
- bl SPIi_ReturnResult
- b _03802604
-_03802588:
- mov r0, #3
- mov r1, r4
- mov r2, #1
- and lr, r3, #255 ;@ 0xff
- ldrh ip, [ip, #2]
- ldr r3, _03802614 ;@ =0x0000FFFF
- and r3, ip, r3
- orr r3, r3, lr, lsl #16
- bl SPIi_SetEntry
- cmp r0, #0
- bne _03802604
- mov r0, r4
- mov r1, #4
- bl SPIi_ReturnResult
- b _03802604
-_038025C4:
- and r0, r3, #255 ;@ 0xff
- bl PM_SetLEDPattern
- mov r0, #102 ;@ 0x66
- mov r1, #0
- bl SPIi_ReturnResult
- b _03802604
-_038025DC:
- bl PM_GetLEDPattern
- mov r1, r0
- mov r0, #103 ;@ 0x67
- mov r1, r1, lsl #16
- mov r1, r1, lsr #16
- bl SPIi_ReturnResult
- b _03802604
-_038025F8:
- mov r0, r4
- mov r1, #1
- bl SPIi_ReturnResult
-_03802604:
- add sp, sp, #8
- ldmia sp!, {r4, lr}
- bx lr
-_03802610: .word PMi_Work
-_03802614: .word 0x0000FFFF
-
- arm_func_start PM_Init
-PM_Init: ;@ 0x03802618
- mov r1, #1
- ldr r0, _0380264C ;@ =PMi_Initialized
- str r1, [r0]
- mov r3, #0
- ldr r0, _03802650 ;@ =PMi_Work
- str r3, [r0, #32]
- mov r2, r3
-_03802634:
- mov r1, r3, lsl #1
- strh r2, [r0, r1]
- add r3, r3, #1
- cmp r3, #16
- blt _03802634
- bx lr
-_0380264C: .word PMi_Initialized
-_03802650: .word PMi_Work
-
- arm_func_start PMi_SendPxiCommand
-PMi_SendPxiCommand: ;@ 0x03802654
- ldr r3, _03802678 ;@ =0x0000FFFF
- and r3, r2, r3
- and r0, r0, #62914560 ;@ 0x3c00000
- mov r2, r0, lsl #22
- and r0, r1, #4128768 ;@ 0x3f0000
- orr r0, r2, r0, lsl #16
- orr r0, r3, r0
- ldr ip, _0380267C ;@ =PMi_SendPxiData
- bx ip
-_03802678: .word 0x0000FFFF
-_0380267C: .word PMi_SendPxiData
-
- arm_func_start PMi_SendPxiData
-PMi_SendPxiData: ;@ 0x03802680
- stmdb sp!, {r4, r5, r6, lr}
- mov r6, r0
- mov r5, #8
- mov r4, #0
-_03802690:
- mov r0, r5
- mov r1, r6
- mov r2, r4
- bl PXI_SendWordByFifo
- cmp r0, #0
- bne _03802690
- ldmia sp!, {r4, r5, r6, lr}
- bx lr
-
- arm_func_start PMi_ResetControl
-PMi_ResetControl: ;@ 0x038026B0
- stmdb sp!, {r4, lr}
- mov r4, r0
- mov r0, #0
- bl PMi_GetRegister
- mvn r1, r4
- and r0, r0, r1
- and r1, r0, #255 ;@ 0xff
- mov r0, #0
- bl PMi_SetRegister
- ldmia sp!, {r4, lr}
- bx lr
-
- arm_func_start PMi_SetControl
-PMi_SetControl: ;@ 0x038026DC
- stmdb sp!, {r4, lr}
- mov r4, r0
- mov r0, #0
- bl PMi_GetRegister
- orr r1, r0, r4
- mov r0, #0
- bl PMi_SetRegister
- ldmia sp!, {r4, lr}
- bx lr
-
- arm_func_start PMi_GetRegister
-PMi_GetRegister: ;@ 0x03802700
- stmdb sp!, {r4, lr}
- mov r4, r0
- ldr r1, _0380278C ;@ =0x040001C0
-_0380270C:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _0380270C
- bl FUN_03802808
- mov r0, #1
- bl FUN_03802820
- orr r0, r4, #128 ;@ 0x80
- and r0, r0, #255 ;@ 0xff
- and r1, r0, #255 ;@ 0xff
- ldr r0, _03802790 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _0380278C ;@ =0x040001C0
-_0380273C:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _0380273C
- mov r0, #0
- bl FUN_03802820
- mov r1, #0
- ldr r0, _03802790 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _0380278C ;@ =0x040001C0
-_03802760:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03802760
- ldr r0, _03802790 ;@ =0x040001C2
- ldrh r0, [r0]
- and r0, r0, #255 ;@ 0xff
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- and r0, r0, #255 ;@ 0xff
- ldmia sp!, {r4, lr}
- bx lr
-_0380278C: .word 0x040001C0
-_03802790: .word 0x040001C2
-
- arm_func_start PMi_SetRegister
-PMi_SetRegister: ;@ 0x03802794
- stmdb sp!, {r4, r5, lr}
- sub sp, sp, #4
- mov r5, r0
- mov r4, r1
- ldr r1, _03802800 ;@ =0x040001C0
-_038027A8:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _038027A8
- bl FUN_03802808
- mov r0, #1
- bl FUN_03802820
- and r0, r5, #255 ;@ 0xff
- and r1, r0, #255 ;@ 0xff
- ldr r0, _03802804 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _03802800 ;@ =0x040001C0
-_038027D4:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _038027D4
- mov r0, #0
- bl FUN_03802820
- and r1, r4, #255 ;@ 0xff
- ldr r0, _03802804 ;@ =0x040001C2
- strh r1, [r0]
- add sp, sp, #4
- ldmia sp!, {r4, r5, lr}
- bx lr
-_03802800: .word 0x040001C0
-_03802804: .word 0x040001C2
-
- arm_func_start FUN_03802808
-FUN_03802808: ;@ 0x03802808
- ldr r1, _03802818 ;@ =0x00008202
- ldr r0, _0380281C ;@ =0x040001C0
- strh r1, [r0]
- bx lr
-_03802818: .word 0x00008202
-_0380281C: .word 0x040001C0
-
- arm_func_start FUN_03802820
-FUN_03802820: ;@ 0x03802820
- ldr r1, _03802834 ;@ =0x00008002
- orr r1, r1, r0, lsl #11
- ldr r0, _03802838 ;@ =0x040001C0
- strh r1, [r0]
- bx lr
-_03802834: .word 0x00008002
-_03802838: .word 0x040001C0
-
- arm_func_start PMi_SetLED
-PMi_SetLED: ;@ 0x0380283C
- stmdb sp!, {r4, lr}
- mov r4, r0
- cmp r4, #1
- beq _03802860
- cmp r4, #2
- beq _03802878
- cmp r4, #3
- beq _0380286C
- b _0380288C
-_03802860:
- mov r0, #16
- bl PMi_ResetControl
- b _03802890
-_0380286C:
- mov r0, #48 ;@ 0x30
- bl PMi_SetControl
- b _03802890
-_03802878:
- mov r0, #32
- bl PMi_ResetControl
- mov r0, #16
- bl PMi_SetControl
- b _03802890
-_0380288C:
- bl OS_Terminate
-_03802890:
- ldr r0, _038028A0 ;@ =PMi_LEDStatus
- str r4, [r0]
- ldmia sp!, {r4, lr}
- bx lr
-_038028A0: .word PMi_LEDStatus
-
- arm_func_start PMi_SwitchUtilityProc
-PMi_SwitchUtilityProc: ;@ 0x038028A4
- stmfd sp!, {lr}
- sub sp, sp, #4
- cmp r0, #15
- addls pc, pc, r0, lsl #2
- b _038029C4
- b _038029C4
- b _038028F8
- b _0380290C
- b _03802920
- b _03802934
- b _03802940
- b _0380294C
- b _03802958
- b _03802964
- b _03802970
- b _0380297C
- b _03802988
- b _03802994
- b _038029A0
- b _038029B8
- b _038029AC
-_038028F8:
- mov r0, #1
- bl PM_SetLEDPattern
- mov r0, #1
- bl PMi_SetLED
- b _038029C4
-_0380290C:
- mov r0, #3
- bl PM_SetLEDPattern
- mov r0, #3
- bl PMi_SetLED
- b _038029C4
-_03802920:
- mov r0, #2
- bl PM_SetLEDPattern
- mov r0, #2
- bl PMi_SetLED
- b _038029C4
-_03802934:
- mov r0, #4
- bl PMi_SetControl
- b _038029C4
-_03802940:
- mov r0, #4
- bl PMi_ResetControl
- b _038029C4
-_0380294C:
- mov r0, #8
- bl PMi_SetControl
- b _038029C4
-_03802958:
- mov r0, #8
- bl PMi_ResetControl
- b _038029C4
-_03802964:
- mov r0, #12
- bl PMi_SetControl
- b _038029C4
-_03802970:
- mov r0, #12
- bl PMi_ResetControl
- b _038029C4
-_0380297C:
- mov r0, #1
- bl PMi_SetControl
- b _038029C4
-_03802988:
- mov r0, #1
- bl PMi_ResetControl
- b _038029C4
-_03802994:
- mov r0, #2
- bl PMi_ResetControl
- b _038029C4
-_038029A0:
- mov r0, #2
- bl PMi_SetControl
- b _038029C4
-_038029AC:
- mov r0, #64 ;@ 0x40
- bl PMi_ResetControl
- b _038029C4
-_038029B8:
- bl SND_BeginSleep
- mov r0, #64 ;@ 0x40
- bl PMi_SetControl
-_038029C4:
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start PMi_DoSleep
-PMi_DoSleep: ;@ 0x038029D0
- stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
- sub sp, sp, #4
- mov r5, #0
- ldr r0, _03802B94 ;@ =0x04000208
- ldrh r4, [r0]
- strh r5, [r0]
- bl OS_DisableInterrupts
- mov r9, r0
- mvn r0, #-33554432 ;@ 0xfe000000
- bl OS_DisableIrqMask
- mov r8, r0
- mov r0, r5
- bl PMi_GetRegister
- mov r7, r0
- mov r0, #2
- bl PM_SetLEDPattern
- mov r0, #2
- bl PMi_SetLED
- mov r0, #2
- bl PMi_SetLED
- bl SND_BeginSleep
- mov r0, #1
- bl PMi_ResetControl
- ldr r0, _03802B98 ;@ =PMi_TriggerBL
- ldrh r0, [r0]
- ands r0, r0, #1
- beq _03802A58
- ldr r0, _03802B9C ;@ =PMi_KeyPattern
- ldrh r0, [r0]
- orr r1, r0, #16384 ;@ 0x4000
- ldr r0, _03802BA0 ;@ =0x04000132
- strh r1, [r0]
- mov r0, #4096 ;@ 0x1000
- bl OS_EnableIrqMask
-_03802A58:
- ldr r0, _03802B98 ;@ =PMi_TriggerBL
- ldrh r0, [r0]
- ands r0, r0, #4
- beq _03802A70
- mov r0, #4194304 ;@ 0x400000
- bl OS_EnableIrqMask
-_03802A70:
- ldr r0, _03802B98 ;@ =PMi_TriggerBL
- ldrh r0, [r0]
- ands r0, r0, #2
- beq _03802AB4
- ldr r0, _03802BA4 ;@ =0x04000134
- ldrh r6, [r0]
- mov r5, #1
- mov r0, #32768 ;@ 0x8000
- bl EXIi_SelectRcnt
- mov r0, #64 ;@ 0x40
- mov r1, #0
- bl EXIi_SetBitRcnt0L
- mov r0, #256 ;@ 0x100
- mov r1, r0
- bl EXIi_SetBitRcnt0L
- mov r0, #128 ;@ 0x80
- bl OS_EnableIrqMask
-_03802AB4:
- ldr r0, _03802B98 ;@ =PMi_TriggerBL
- ldrh r0, [r0]
- ands r0, r0, #8
- beq _03802ACC
- mov r0, #1048576 ;@ 0x100000
- bl OS_EnableIrqMask
-_03802ACC:
- ldr r0, _03802B98 ;@ =PMi_TriggerBL
- ldrh r0, [r0]
- ands r0, r0, #16
- beq _03802AE4
- mov r0, #8192 ;@ 0x2000
- bl OS_EnableIrqMask
-_03802AE4:
- mov r0, r9
- bl OS_RestoreInterrupts
- ldr r1, _03802B94 ;@ =0x04000208
- ldrh r0, [r1]
- mov r0, #1
- strh r0, [r1]
- bl FUN_03802BAC
- mov r0, #0
- mov r1, r7
- bl PMi_SetRegister
- ldr r0, _03802B98 ;@ =PMi_TriggerBL
- ldrh r1, [r0]
- ands r0, r1, #32
- movne r0, #6
- moveq r0, #7
- ands r1, r1, #64 ;@ 0x40
- movne r7, #4
- moveq r7, #5
- bl PMi_SwitchUtilityProc
- mov r0, r7
- bl PMi_SwitchUtilityProc
- cmp r5, #0
- ldrne r0, _03802BA4 ;@ =0x04000134
- strneh r6, [r0]
- mov r0, #1
- bl PMi_SetControl
- bl SND_EndSleep
- mov r1, #0
- ldr r0, _03802BA8 ;@ =PMi_Work
- str r1, [r0, #32]
- mov r0, #98 ;@ 0x62
- mov r2, r1
- bl PMi_SendPxiCommand
- bl OS_DisableInterrupts
- mov r0, r8
- bl OS_SetIrqMask
- mov r0, r9
- bl OS_RestoreInterrupts
- ldr r1, _03802B94 ;@ =0x04000208
- ldrh r0, [r1]
- strh r4, [r1]
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, r8, r9, lr}
- bx lr
-_03802B94: .word 0x04000208
-_03802B98: .word PMi_TriggerBL
-_03802B9C: .word PMi_KeyPattern
-_03802BA0: .word 0x04000132
-_03802BA4: .word 0x04000134
-_03802BA8: .word PMi_Work
-
- arm_func_start FUN_03802BAC
-FUN_03802BAC: ;@ 0x03802BAC
- ldr ip, _03802BB4 ;@ =SVC_Stop
- bx ip
-_03802BB4: .word SVC_Stop
-
- arm_func_start PM_GetLEDPattern
-PM_GetLEDPattern: ;@ 0x03802BB8
- ldr r0, _03802BC4 ;@ =PMi_BlinkPatternNo
- ldr r0, [r0]
- bx lr
-_03802BC4: .word PMi_BlinkPatternNo
-
- arm_func_start PM_SetLEDPattern
-PM_SetLEDPattern: ;@ 0x03802BC8
- cmp r0, #15
- ldrle r1, _03802BE4 ;@ =PMi_BlinkPatternNo
- strle r0, [r1]
- movle r1, #0
- ldrle r0, _03802BE8 ;@ =_03809F64
- strle r1, [r0]
- bx lr
-_03802BE4: .word PMi_BlinkPatternNo
-_03802BE8: .word _03809F64
-
- arm_func_start PM_SelfBlinkProc
-PM_SelfBlinkProc: ;@ 0x03802BEC
- stmdb sp!, {r4, r5, r6, lr}
- ldr r0, _03802D04 ;@ =PMi_BlinkPatternNo
- ldr r3, [r0]
- cmp r3, #0
- bne _03802C28
- mov r0, #3
- mov r1, #102 ;@ 0x66
- mov r2, #1
- mov r3, r2
- bl SPIi_SetEntry
- cmp r0, #0
- beq _03802CFC
- mov r0, #1
- bl PM_SetLEDPattern
- b _03802CFC
-_03802C28:
- cmp r3, #4
- bge _03802C54
- ldr r0, _03802D08 ;@ =PMi_LEDStatus
- ldr r0, [r0]
- cmp r3, r0
- beq _03802CFC
- mov r0, #3
- mov r1, #102 ;@ 0x66
- mov r2, #1
- bl SPIi_SetEntry
- b _03802CFC
-_03802C54:
- ldr r6, _03802D0C ;@ =PMi_BlinkPatternData
- sub r1, r3, #4
- mov r0, #12
- mul r5, r1, r0
- add r4, r6, r5
- ldr r0, _03802D10 ;@ =_03809F64
- ldr r0, [r0]
- ldrh r1, [r4, #10]
- bl _u32_div_f
- ldr r5, [r6, r5]
- ldr lr, [r4, #4]
- mov r3, #0
- mov r2, #-2147483648 ;@ 0x80000000
- mov ip, r3, lsr r0
- rsb r1, r0, #32
- orr ip, ip, r2, lsl r1
- sub r1, r0, #32
- orr ip, ip, r2, lsr r1
- and r0, lr, r2, lsr r0
- and r1, r5, ip
- cmp r0, r3
- cmpeq r1, r3
- movne r3, #1
- moveq r3, #2
- ldr r0, _03802D10 ;@ =_03809F64
- ldr r1, [r0]
- add ip, r1, #1
- str ip, [r0]
- ldrh r2, [r4, #8]
- ldrh r1, [r4, #10]
- mul r1, r2, r1
- cmp ip, r1
- movcs r1, #0
- strcs r1, [r0]
- ldr r0, _03802D08 ;@ =PMi_LEDStatus
- ldr r0, [r0]
- cmp r3, r0
- beq _03802CFC
- mov r0, #3
- mov r1, #102 ;@ 0x66
- mov r2, #1
- bl SPIi_SetEntry
-_03802CFC:
- ldmia sp!, {r4, r5, r6, lr}
- bx lr
-_03802D04: .word PMi_BlinkPatternNo
-_03802D08: .word PMi_LEDStatus
-_03802D0C: .word PMi_BlinkPatternData
-_03802D10: .word _03809F64
-
- arm_func_start FUN_03802D14
-FUN_03802D14: ;@ 0x03802D14
- stmdb sp!, {r4, r5, r6, r7, lr}
- ldr r4, _03802E6C ;@ =_03809F6C
- ldrh r5, [r4, #38] ;@ 0x26
- and r0, r5, #4
- cmp r0, #4
- ldrh r6, [r4, #56] ;@ 0x38
- ldrneh r7, [r4, #58] ;@ 0x3a
- ldreq r7, _03802E70 ;@ =0x0000FFFF
- bl SPIi_CheckEntry
- cmp r0, #0
- bne _03802D80
- mov r0, #2
- bl SPIi_CheckException
- cmp r0, #0
- beq _03802D80
- and r0, r5, #1
- cmp r0, #1
- bne _03802D70
- bl MIC_ExecSampling12
- tst r5, #2
- moveq r7, r0
- eorne r7, r0, #32768 ;@ 0x8000
- b _03802D80
-_03802D70:
- bl MIC_ExecSampling8
- tst r5, #2
- moveq r7, r0
- eorne r7, r0, #128 ;@ 0x80
-_03802D80:
- and r0, r5, #1
- ldr r3, _03802E74 ;@ =0x027FFC00
- ldr r1, [r4, #44] ;@ 0x2c
- cmp r0, #1
- bne _03802DB0
- ldr r2, [r4, #40] ;@ 0x28
- strh r7, [r2, r1]!
- str r2, [r3, #912] ;@ 0x390
- add r3, r3, #916 ;@ 0x394
- strh r7, [r3]
- add r1, r1, #2
- b _03802DE8
-_03802DB0:
- and r7, r7, #255 ;@ 0xff
- tst r1, #1
- bne _03802DC8
- mov r6, r7
- add r1, r1, #1
- b _03802DE8
-_03802DC8:
- orr r0, r6, r7, lsl #8
- ldr r2, [r4, #40] ;@ 0x28
- sub r1, r1, #1
- strh r0, [r2, r1]!
- str r2, [r3, #912] ;@ 0x390
- add r3, r3, #916 ;@ 0x394
- strh r0, [r3]
- add r1, r1, #2
-_03802DE8:
- strh r6, [r4, #56] ;@ 0x38
- strh r7, [r4, #58] ;@ 0x3a
- ldr r0, [r4, #48] ;@ 0x30
- cmp r1, r0
- movcs r1, #0
- str r1, [r4, #44] ;@ 0x2c
- bcc _03802E64
- ldrh r0, [r4, #36] ;@ 0x24
- and r0, r0, #16
- cmp r0, #16
- bne _03802E24
- mov r0, #81 ;@ 0x51
- mov r1, #0
- bl SPIi_ReturnResult
- b _03802E64
-_03802E24:
- mov r0, #2
- mov r1, #66 ;@ 0x42
- mov r2, #0
- bl SPIi_SetEntry
- cmp r0, #0
- bne _03802E4C
- mov r0, #81 ;@ 0x51
- mov r1, #4
- bl SPIi_ReturnResult
- b _03802E64
-_03802E4C:
- mov r0, #4
- str r0, [r4, #32]
- ldr r1, _03802E78 ;@ =0x0400010E
- ldrh r0, [r1]
- bic r0, r0, #128 ;@ 0x80
- strh r0, [r1]
-_03802E64:
- ldmia sp!, {r4, r5, r6, r7, lr}
- bx lr
-_03802E6C: .word _03809F6C
-_03802E70: .word 0x0000FFFF
-_03802E74: .word 0x027FFC00
-_03802E78: .word 0x0400010E
-
- arm_func_start FUN_03802E7C
-FUN_03802E7C: ;@ 0x03802E7C
- stmfd sp!, {lr}
- sub sp, sp, #4
- bl FUN_03802D14
- ldr r1, _03802EB0 ;@ =0x0380FFF8
- ldr r0, [r1]
- orr r0, r0, #64 ;@ 0x40
- str r0, [r1]
- mov r1, #64 ;@ 0x40
- ldr r0, _03802EB4 ;@ =0x04000214
- str r1, [r0]
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-_03802EB0: .word 0x0380FFF8
-_03802EB4: .word 0x04000214
-
- arm_func_start MIC_ExecuteProcess
-MIC_ExecuteProcess: ;@ 0x03802EB8
- stmdb sp!, {r4, r5, lr}
- sub sp, sp, #4
- mov r5, r0
- ldr r2, [r5, #4]
- cmp r2, #64 ;@ 0x40
- beq _03802EE4
- cmp r2, #65 ;@ 0x41
- beq _03802FB0
- cmp r2, #66 ;@ 0x42
- beq _0380304C
- b _038030F0
-_03802EE4:
- bl OS_DisableInterrupts
- mov r4, r0
- mov r0, #2
- bl SPIi_CheckException
- cmp r0, #0
- bne _03802F1C
- mov r0, r4
- bl OS_RestoreInterrupts
- ldr r0, [r5, #4]
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #4
- bl SPIi_ReturnResult
- b _038030F0
-_03802F1C:
- mov r0, #2
- bl SPIi_GetException
- mov r0, r4
- bl OS_RestoreInterrupts
- ldr r0, [r5, #8]
- and r0, r0, #1
- cmp r0, #1
- bne _03802F68
- bl MIC_ExecSampling12
- ldr r1, [r5, #8]
- ands r1, r1, #2
- eorne r0, r0, #32768 ;@ 0x8000
- movne r0, r0, lsl #16
- movne r0, r0, lsr #16
- ldr r1, _038030FC ;@ =0x027FFF94
- strh r0, [r1]
- ldr r0, _03803100 ;@ =0x027FFF90
- str r1, [r0]
- b _03802F90
-_03802F68:
- bl MIC_ExecSampling8
- ldr r1, [r5, #8]
- ands r1, r1, #2
- eorne r0, r0, #128 ;@ 0x80
- movne r0, r0, lsl #16
- movne r0, r0, lsr #16
- ldr r1, _038030FC ;@ =0x027FFF94
- strh r0, [r1]
- ldr r0, _03803100 ;@ =0x027FFF90
- str r1, [r0]
-_03802F90:
- ldr r0, [r5, #4]
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #0
- bl SPIi_ReturnResult
- mov r0, #2
- bl SPIi_ReleaseException
- b _038030F0
-_03802FB0:
- ldr r0, _03803104 ;@ =_03809F6C
- ldr r1, [r0, #32]
- cmp r1, #1
- bne _03803038
- mov r1, #0
- strh r1, [r0, #58] ;@ 0x3a
- strh r1, [r0, #56] ;@ 0x38
- bl OS_DisableInterrupts
- mov r4, r0
- mov r0, #64 ;@ 0x40
- bl OS_EnableIrqMask
- mov r0, #64 ;@ 0x40
- ldr r1, _03803108 ;@ =FUN_03802E7C
- bl MIC_SetIrqFunction
- bl MIC_EnableMultipleInterrupt
- ldr r0, _03803104 ;@ =_03809F6C
- ldrh r2, [r0, #52] ;@ 0x34
- ldr r1, _0380310C ;@ =0x0400010C
- strh r2, [r1]
- ldrh r0, [r0, #54] ;@ 0x36
- orr r1, r0, #192 ;@ 0xc0
- ldr r0, _03803110 ;@ =0x0400010E
- strh r1, [r0]
- mov r0, r4
- bl OS_RestoreInterrupts
- ldr r0, [r5, #4]
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r1, #0
- bl SPIi_ReturnResult
- mov r1, #2
- ldr r0, _03803104 ;@ =_03809F6C
- str r1, [r0, #32]
- b _038030F0
-_03803038:
- mov r0, r2, lsl #16
- mov r0, r0, lsr #16
- mov r1, #3
- bl SPIi_ReturnResult
- b _038030F0
-_0380304C:
- ldr r0, _03803104 ;@ =_03809F6C
- ldr r1, [r0, #32]
- sub r0, r1, #3
- cmp r0, #1
- bhi _038030CC
- ldr r1, _03803110 ;@ =0x0400010E
- ldrh r0, [r1]
- bic r0, r0, #128 ;@ 0x80
- strh r0, [r1]
- bl OS_DisableInterrupts
- mov r4, r0
- mov r0, #64 ;@ 0x40
- mov r1, #0
- bl MIC_SetIrqFunction
- bl MIC_DisableMultipleInterrupt
- mov r0, r4
- bl OS_RestoreInterrupts
- ldr r0, _03803104 ;@ =_03809F6C
- ldr r0, [r0, #32]
- cmp r0, #3
- bne _038030B0
- mov r0, #66 ;@ 0x42
- mov r1, #0
- bl SPIi_ReturnResult
- b _038030BC
-_038030B0:
- mov r0, #81 ;@ 0x51
- mov r1, #0
- bl SPIi_ReturnResult
-_038030BC:
- mov r1, #0
- ldr r0, _03803104 ;@ =_03809F6C
- str r1, [r0, #32]
- b _038030F0
-_038030CC:
- cmp r1, #3
- bne _038030E4
- mov r0, #66 ;@ 0x42
- mov r1, #3
- bl SPIi_ReturnResult
- b _038030F0
-_038030E4:
- mov r0, #81 ;@ 0x51
- mov r1, #3
- bl SPIi_ReturnResult
-_038030F0:
- add sp, sp, #4
- ldmia sp!, {r4, r5, lr}
- bx lr
-_038030FC: .word 0x027FFF94
-_03803100: .word 0x027FFF90
-_03803104: .word _03809F6C
-_03803108: .word FUN_03802E7C
-_0380310C: .word 0x0400010C
-_03803110: .word 0x0400010E
-
- arm_func_start FUN_03803114
-FUN_03803114: ;@ 0x03803114
- cmp r0, #65536 ;@ 0x10000
- bcs _03803138
- mov r2, #0
- ldr r1, _038031B4 ;@ =_03809F6C
- strh r2, [r1, #54] ;@ 0x36
- rsb r0, r0, #65536 ;@ 0x10000
- strh r0, [r1, #52] ;@ 0x34
- mov r0, #1
- bx lr
-_03803138:
- cmp r0, #4194304 ;@ 0x400000
- bcs _03803160
- mov r2, #1
- ldr r1, _038031B4 ;@ =_03809F6C
- strh r2, [r1, #54] ;@ 0x36
- mov r0, r0, lsr #6
- rsb r0, r0, #65536 ;@ 0x10000
- strh r0, [r1, #52] ;@ 0x34
- mov r0, r2
- bx lr
-_03803160:
- cmp r0, #16777216 ;@ 0x1000000
- bcs _03803188
- mov r2, #2
- ldr r1, _038031B4 ;@ =_03809F6C
- strh r2, [r1, #54] ;@ 0x36
- mov r0, r0, lsr #8
- rsb r0, r0, #65536 ;@ 0x10000
- strh r0, [r1, #52] ;@ 0x34
- mov r0, #1
- bx lr
-_03803188:
- cmp r0, #67108864 ;@ 0x4000000
- movcs r0, #0
- bxcs lr
- mov r2, #3
- ldr r1, _038031B4 ;@ =_03809F6C
- strh r2, [r1, #54] ;@ 0x36
- mov r0, r0, lsr #10
- rsb r0, r0, #65536 ;@ 0x10000
- strh r0, [r1, #52] ;@ 0x34
- mov r0, #1
- bx lr
-_038031B4: .word _03809F6C
-
- arm_func_start MIC_AnalyzeCommand
-MIC_AnalyzeCommand: ;@ 0x038031B8
- stmdb sp!, {r4, lr}
- ands r1, r0, #33554432 ;@ 0x2000000
- beq _038031E4
- mov r4, #0
- mov r3, r4
- ldr r1, _03803478 ;@ =_03809F6C
-_038031D0:
- mov r2, r4, lsl #1
- strh r3, [r1, r2]
- add r4, r4, #1
- cmp r4, #16
- blt _038031D0
-_038031E4:
- and r1, r0, #983040 ;@ 0xf0000
- mov r1, r1, lsr #16
- mov r2, r1, lsl #1
- ldr r1, _03803478 ;@ =_03809F6C
- strh r0, [r1, r2]
- ands r0, r0, #16777216 ;@ 0x1000000
- beq _03803470
- ldrh r3, [r1]
- and r0, r3, #65280 ;@ 0xff00
- mov r0, r0, lsl #8
- mov r4, r0, lsr #16
- sub r0, r4, #64 ;@ 0x40
- cmp r0, #3
- addls pc, pc, r0, lsl #2
- b _03803464
- b _03803230
- b _03803270
- b _03803378
- b _038033DC
-_03803230:
- mov r0, #2
- mov r1, r4
- mov r2, #1
- and r3, r3, #255 ;@ 0xff
- bl SPIi_SetEntry
- cmp r0, #0
- bne _03803258
- mov r0, r4
- mov r1, #4
- bl SPIi_ReturnResult
-_03803258:
- mov r1, #0
- ldr r0, _0380347C ;@ =0x027FFF94
- strh r1, [r0]
- ldr r0, _03803480 ;@ =0x027FFF90
- str r1, [r0]
- b _03803470
-_03803270:
- ldr r0, [r1, #32]
- cmp r0, #0
- beq _0380328C
- mov r0, r4
- mov r1, #3
- bl SPIi_ReturnResult
- b _03803470
-_0380328C:
- and r0, r3, #255 ;@ 0xff
- strh r0, [r1, #36] ;@ 0x24
- ldrh r2, [r1, #2]
- ldrh r0, [r1, #4]
- orr r3, r0, r2, lsl #16
- cmp r3, #33554432 ;@ 0x2000000
- bcc _038032B0
- cmp r3, #37748736 ;@ 0x2400000
- bcc _038032C0
-_038032B0:
- mov r0, r4
- mov r1, #2
- bl SPIi_ReturnResult
- b _03803470
-_038032C0:
- str r3, [r1, #40] ;@ 0x28
- ldrh r2, [r1, #6]
- ldrh r0, [r1, #8]
- orr r2, r0, r2, lsl #16
- add r0, r3, r2
- cmp r0, #37748736 ;@ 0x2400000
- bls _038032EC
- mov r0, r4
- mov r1, #2
- bl SPIi_ReturnResult
- b _03803470
-_038032EC:
- str r2, [r1, #48] ;@ 0x30
- ldrh r2, [r1, #10]
- ldrh r0, [r1, #12]
- orr r0, r0, r2, lsl #16
- bl FUN_03803114
- cmp r0, #0
- bne _03803318
- mov r0, r4
- mov r1, #2
- bl SPIi_ReturnResult
- b _03803470
-_03803318:
- mov r2, #0
- ldr r0, _03803478 ;@ =_03809F6C
- str r2, [r0, #44] ;@ 0x2c
- ldrh r1, [r0, #36] ;@ 0x24
- and r1, r1, #7
- strh r1, [r0, #38] ;@ 0x26
- mov r0, #2
- mov r1, r4
- bl SPIi_SetEntry
- cmp r0, #0
- bne _03803354
- mov r0, r4
- mov r1, #4
- bl SPIi_ReturnResult
- b _03803470
-_03803354:
- mov r1, #0
- ldr r0, _0380347C ;@ =0x027FFF94
- strh r1, [r0]
- ldr r0, _03803480 ;@ =0x027FFF90
- str r1, [r0]
- mov r1, #1
- ldr r0, _03803478 ;@ =_03809F6C
- str r1, [r0, #32]
- b _03803470
-_03803378:
- ldr r0, [r1, #32]
- cmp r0, #2
- beq _03803394
- mov r0, r4
- mov r1, #3
- bl SPIi_ReturnResult
- b _03803470
-_03803394:
- mov r0, #2
- mov r1, r4
- mov r2, #0
- bl SPIi_SetEntry
- cmp r0, #0
- bne _038033BC
- mov r0, r4
- mov r1, #4
- bl SPIi_ReturnResult
- b _03803470
-_038033BC:
- mov r1, #3
- ldr r0, _03803478 ;@ =_03809F6C
- str r1, [r0, #32]
- ldr r1, _03803484 ;@ =0x0400010E
- ldrh r0, [r1]
- bic r0, r0, #128 ;@ 0x80
- strh r0, [r1]
- b _03803470
-_038033DC:
- ldr r0, [r1, #32]
- cmp r0, #2
- beq _038033F8
- mov r0, r4
- mov r1, #3
- bl SPIi_ReturnResult
- b _03803470
-_038033F8:
- ldrh r2, [r1, #2]
- ldrh r0, [r1, #4]
- orr r0, r0, r2, lsl #16
- bl FUN_03803114
- cmp r0, #0
- bne _03803420
- mov r0, r4
- mov r1, #2
- bl SPIi_ReturnResult
- b _03803470
-_03803420:
- bl OS_DisableInterrupts
- ldr ip, _03803484 ;@ =0x0400010E
- ldrh r1, [ip]
- bic r1, r1, #128 ;@ 0x80
- strh r1, [ip]
- ldr r1, _03803478 ;@ =_03809F6C
- ldrh r3, [r1, #52] ;@ 0x34
- ldr r2, _03803488 ;@ =0x0400010C
- strh r3, [r2]
- ldrh r1, [r1, #54] ;@ 0x36
- orr r1, r1, #192 ;@ 0xc0
- strh r1, [ip]
- bl OS_RestoreInterrupts
- mov r0, r4
- mov r1, #0
- bl SPIi_ReturnResult
- b _03803470
-_03803464:
- mov r0, r4
- mov r1, #1
- bl SPIi_ReturnResult
-_03803470:
- ldmia sp!, {r4, lr}
- bx lr
-_03803478: .word _03809F6C
-_0380347C: .word 0x027FFF94
-_03803480: .word 0x027FFF90
-_03803484: .word 0x0400010E
-_03803488: .word 0x0400010C
-
- arm_func_start MIC_Init
-MIC_Init: ;@ 0x0380348C
- mov r3, #0
- ldr r0, _038034C4 ;@ =_03809F6C
- str r3, [r0, #32]
- mov r2, r3
-_0380349C:
- mov r1, r3, lsl #1
- strh r2, [r0, r1]
- add r3, r3, #1
- cmp r3, #16
- blt _0380349C
- ldr r1, _038034C8 ;@ =0x0400010E
- ldrh r0, [r1]
- bic r0, r0, #128 ;@ 0x80
- strh r0, [r1]
- bx lr
-_038034C4: .word _03809F6C
-_038034C8: .word 0x0400010E
-
- arm_func_start MIC_ExecSampling12
-MIC_ExecSampling12: ;@ 0x038034CC
- ldr r1, _03803580 ;@ =0x040001C0
-_038034D0:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _038034D0
- ldr r0, _03803584 ;@ =0x00008A01
- strh r0, [r1]
- mov r1, #228 ;@ 0xe4
- ldr r0, _03803588 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _03803580 ;@ =0x040001C0
-_038034F4:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _038034F4
- mov r1, #0
- ldr r0, _03803588 ;@ =0x040001C2
- strh r1, [r0]
- ldr r2, _03803580 ;@ =0x040001C0
-_03803510:
- ldrh r0, [r2]
- ands r0, r0, #128 ;@ 0x80
- bne _03803510
- ldr r1, _03803588 ;@ =0x040001C2
- ldrh r0, [r1]
- and r0, r0, #255 ;@ 0xff
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r0, r0, lsl #24
- mov r3, r0, lsr #16
- ldr r0, _0380358C ;@ =0x00008201
- strh r0, [r2]
- mov r0, #0
- strh r0, [r1]
- ldr r1, _03803580 ;@ =0x040001C0
-_0380354C:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _0380354C
- ldr r0, _03803588 ;@ =0x040001C2
- ldrh r0, [r0]
- and r0, r0, #255 ;@ 0xff
- mov r0, r0, lsl #16
- orr r1, r3, r0, lsr #16
- ldr r0, _03803590 ;@ =0x00007FF8
- and r0, r1, r0
- mov r0, r0, lsl #17
- mov r0, r0, lsr #16
- bx lr
-_03803580: .word 0x040001C0
-_03803584: .word 0x00008A01
-_03803588: .word 0x040001C2
-_0380358C: .word 0x00008201
-_03803590: .word 0x00007FF8
-
- arm_func_start MIC_ExecSampling8
-MIC_ExecSampling8: ;@ 0x03803594
- ldr r1, _03803648 ;@ =0x040001C0
-_03803598:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03803598
- ldr r0, _0380364C ;@ =0x00008A01
- strh r0, [r1]
- mov r1, #236 ;@ 0xec
- ldr r0, _03803650 ;@ =0x040001C2
- strh r1, [r0]
- ldr r1, _03803648 ;@ =0x040001C0
-_038035BC:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _038035BC
- mov r1, #0
- ldr r0, _03803650 ;@ =0x040001C2
- strh r1, [r0]
- ldr r2, _03803648 ;@ =0x040001C0
-_038035D8:
- ldrh r0, [r2]
- ands r0, r0, #128 ;@ 0x80
- bne _038035D8
- ldr r1, _03803650 ;@ =0x040001C2
- ldrh r0, [r1]
- and r0, r0, #255 ;@ 0xff
- mov r0, r0, lsl #16
- mov r0, r0, lsr #16
- mov r0, r0, lsl #24
- mov r3, r0, lsr #16
- ldr r0, _03803654 ;@ =0x00008201
- strh r0, [r2]
- mov r0, #0
- strh r0, [r1]
- ldr r1, _03803648 ;@ =0x040001C0
-_03803614:
- ldrh r0, [r1]
- ands r0, r0, #128 ;@ 0x80
- bne _03803614
- ldr r0, _03803650 ;@ =0x040001C2
- ldrh r0, [r0]
- and r0, r0, #255 ;@ 0xff
- mov r0, r0, lsl #16
- orr r1, r3, r0, lsr #16
- ldr r0, _03803658 ;@ =0x00007F80
- and r0, r1, r0
- mov r0, r0, lsl #9
- mov r0, r0, lsr #16
- bx lr
-_03803648: .word 0x040001C0
-_0380364C: .word 0x00008A01
-_03803650: .word 0x040001C2
-_03803654: .word 0x00008201
-_03803658: .word 0x00007F80
-_0380365C:
- mov ip, #67108864 ;@ 0x4000000
- add r1, ip, #520 ;@ 0x208
- ldrh r0, [r1]
- tst r0, r0
- bxeq lr
- ldr r3, [ip, #528] ;@ 0x210
- ldr r1, [ip, #532] ;@ 0x214
- ands r2, r1, r3
- bxeq lr
- ldr r0, _038037C8 ;@ =0x01DF3FFF
- tst r2, r0
- streq r2, [ip, #532] ;@ 0x214
- bxeq lr
- stmfd sp!, {lr}
- mrs r0, SPSR
- stmfd sp!, {r0}
- stmdb sp, {sp, lr}^
- sub sp, sp, #8
- mov r0, #159 ;@ 0x9f
- msr CPSR_c, r0
- ldr r1, _038037CC ;@ =OSi_ThreadInfo
- ldrh r0, [r1, #2]
- add r0, r0, #1
- strh r0, [r1, #2]
- ldr r1, _038037D0 ;@ =_03809FA8
- cmp r0, #1
- moveq r0, sp
- ldreq sp, [r1, #4]
- streq r0, [r1, #4]
- stmfd sp!, {r3}
- ldr r1, _038037D4 ;@ =_038072C8
- ldr r0, [r1]
- tst r0, r2
- strne r0, [ip, #532] ;@ 0x214
- ldrne r0, [r1, #4]
- ldrne r3, _038037D8 ;@ =OS_IRQTable
- ldrne r0, [r3, r0, lsl #2]
- bne _03803738
- mov r3, #1
-_038036F8:
- ldr r0, [r1, r3, lsl #3]
- tst r0, r2
- addeq r3, r3, #1
- beq _038036F8
- str r0, [ip, #532] ;@ 0x214
- add r0, r1, r3, lsl #3
- ldr r2, [r0, #4]
- ldr r3, _038037D8 ;@ =OS_IRQTable
- ldr r0, [r3, r2, lsl #2]
- ldr r2, _038037CC ;@ =OSi_ThreadInfo
- ldrh r3, [r2, #2]
- cmp r3, #1
- ldreq r2, [r1]
- streq r2, [ip, #528] ;@ 0x210
- moveq r2, #31
- msreq CPSR_c, r2
-_03803738:
- ldr r1, [ip, #528] ;@ 0x210
- stmfd sp!, {r1}
- adr lr, _03803748
- bx r0
-_03803748:
- mov r0, #159 ;@ 0x9f
- msr CPSR_c, r0
- mov ip, #67108864 ;@ 0x4000000
- ldmia sp!, {r0}
- ldr r1, [ip, #528] ;@ 0x210
- eor r2, r0, r1
- and r1, r2, r1
- and r0, r2, r0
- ldmia sp!, {r3}
- orr r3, r3, r1
- bic r3, r3, r0
- str r3, [ip, #528] ;@ 0x210
- ldr r2, _038037CC ;@ =OSi_ThreadInfo
- ldr r3, _038037D0 ;@ =_03809FA8
- ldrh r0, [r2, #2]
- subs r1, r0, #1
- strh r1, [r2, #2]
- moveq r0, sp
- ldreq sp, [r3, #4]
- streq r0, [r3, #4]
- mov r0, #146 ;@ 0x92
- msr CPSR_c, r0
- ldmia sp, {sp, lr}^
- nop ;@ (mov r0, r0)
- add sp, sp, #8
- ldmia sp!, {r0}
- msr SPSR_fc, r0
- tst r1, r1
- ldreq r0, _038037DC ;@ =OS_IrqHandler_ThreadSwitch
- addeq lr, pc, #0
- bxeq r0
- ldmia sp!, {pc}
-_038037C8: .word 0x01DF3FFF
-_038037CC: .word OSi_ThreadInfo
-_038037D0: .word _03809FA8
-_038037D4: .word _038072C8
-_038037D8: .word OS_IRQTable
-_038037DC: .word OS_IrqHandler_ThreadSwitch
-
- arm_func_start MIC_DisableMultipleInterrupt
-MIC_DisableMultipleInterrupt: ;@ 0x038037E0
- stmfd sp!, {lr}
- sub sp, sp, #4
- ldr r0, _03803820 ;@ =0x0380FFFC
- ldr r1, [r0]
- ldr r0, _03803824 ;@ =_0380365C
- cmp r1, r0
- bne _03803814
- bl OS_DisableInterrupts
- ldr r1, _03803828 ;@ =_03809FA8
- ldr r2, [r1, #12]
- ldr r1, _03803820 ;@ =0x0380FFFC
- str r2, [r1]
- bl OS_RestoreInterrupts
-_03803814:
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-_03803820: .word 0x0380FFFC
-_03803824: .word _0380365C
-_03803828: .word _03809FA8
-
- arm_func_start MIC_EnableMultipleInterrupt
-MIC_EnableMultipleInterrupt: ;@ 0x0380382C
- stmfd sp!, {lr}
- sub sp, sp, #4
- ldr r0, _03803888 ;@ =0x0380FFFC
- ldr r2, [r0]
- ldr r0, _0380388C ;@ =_0380365C
- cmp r2, r0
- beq _0380387C
- mov r1, #0
- ldr r0, _03803890 ;@ =_03809FA8
- str r1, [r0]
- ldr r1, _03803894 ;@ =0x0380FE80
- str r1, [r0, #4]
- mov r1, #64 ;@ 0x40
- str r1, [r0, #8]
- str r2, [r0, #12]
- bl OS_DisableInterrupts
- ldr r2, _0380388C ;@ =_0380365C
- ldr r1, _03803888 ;@ =0x0380FFFC
- str r2, [r1]
- bl OS_RestoreInterrupts
-_0380387C:
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-_03803888: .word 0x0380FFFC
-_0380388C: .word _0380365C
-_03803890: .word _03809FA8
-_03803894: .word 0x0380FE80
-
- arm_func_start MIC_SetIrqFunction
-MIC_SetIrqFunction: ;@ 0x03803898
- mov ip, #0
- ldr r2, _038038BC ;@ =OS_IRQTable
-_038038A0:
- ands r3, r0, #1
- strne r1, [r2, ip, lsl #2]
- mov r0, r0, lsr #1
- add ip, ip, #1
- cmp ip, #25
- blt _038038A0
- bx lr
-_038038BC: .word OS_IRQTable
-
- arm_func_start CTRDGi_SendtoPxi
-CTRDGi_SendtoPxi: ;@ 0x038038C0
- stmdb sp!, {r4, r5, r6, r7, lr}
- sub sp, sp, #4
- mov r7, r0
- mov r6, #1
- mov r5, #13
- mov r4, #0
- b _038038E4
-_038038DC:
- mov r0, r6
- bl FUN_037F8CB4
-_038038E4:
- mov r0, r5
- mov r1, r7
- mov r2, r4
- bl PXI_SendWordByFifo
- cmp r0, #0
- bne _038038DC
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, lr}
- bx lr
-
- arm_func_start CTRDGi_UnlockByProcessor
-CTRDGi_UnlockByProcessor: ;@ 0x03803908
- stmdb sp!, {r4, lr}
- mov r4, r1
- ldr r1, [r4]
- cmp r1, #0
- bne _03803920
- bl OS_UnLockCartridge
-_03803920:
- ldr r0, [r4, #4]
- bl OS_RestoreInterrupts
- ldmia sp!, {r4, lr}
- bx lr
-
- arm_func_start CTRDGi_LockByProcessor
-CTRDGi_LockByProcessor: ;@ 0x03803930
- stmdb sp!, {r4, r5, lr}
- sub sp, sp, #4
- mov r5, r0
- mov r4, r1
- bl OS_DisableInterrupts
- str r0, [r4, #4]
- ldr r0, _0380398C ;@ =0x027FFFE8
- bl OS_ReadOwnerOfLockWord
- and r0, r0, #128 ;@ 0x80
- str r0, [r4]
- ldr r0, [r4]
- cmp r0, #0
- bne _03803974
- mov r0, r5
- bl OS_TryLockCartridge
- cmp r0, #0
- bne _0380397C
-_03803974:
- mov r0, #1
- b _03803980
-_0380397C:
- mov r0, #0
-_03803980:
- add sp, sp, #4
- ldmia sp!, {r4, r5, lr}
- bx lr
-_0380398C: .word 0x027FFFE8
-
- arm_func_start CTRDGi_RestoreAccessCycle
-CTRDGi_RestoreAccessCycle: ;@ 0x03803990
- ldr r3, [r0]
- ldr r2, _038039C0 ;@ =0x04000204
- ldrh r1, [r2]
- bic r1, r1, #12
- orr r1, r1, r3, lsl #2
- strh r1, [r2]
- ldr r1, [r0, #4]
- ldrh r0, [r2]
- bic r0, r0, #16
- orr r0, r0, r1, lsl #4
- strh r0, [r2]
- bx lr
-_038039C0: .word 0x04000204
-
- arm_func_start CTRDGi_ChangeLatestAccessCycle
-CTRDGi_ChangeLatestAccessCycle: ;@ 0x038039C4
- ldr r2, _03803A08 ;@ =0x04000204
- ldrh r1, [r2]
- and r1, r1, #12
- mov r1, r1, asr #2
- str r1, [r0]
- ldrh r1, [r2]
- and r1, r1, #16
- mov r1, r1, asr #4
- str r1, [r0, #4]
- ldrh r0, [r2]
- bic r0, r0, #12
- orr r0, r0, #12
- strh r0, [r2]
- ldrh r0, [r2]
- bic r0, r0, #16
- strh r0, [r2]
- bx lr
-_03803A08: .word 0x04000204
-
- arm_func_start CTRDG_IsExisting
-CTRDG_IsExisting: ;@ 0x03803A0C
- stmdb sp!, {r4, lr}
- sub sp, sp, #16
- mov r4, #1
- ldr r2, _03803B20 ;@ =0x027FFC30
- ldrh r1, [r2]
- ldr r0, _03803B24 ;@ =0x0000FFFF
- cmp r1, r0
- moveq r0, #0
- beq _03803B14
- ldrb r0, [r2, #5]
- mov r0, r0, lsl #30
- mov r0, r0, lsr #31
- cmp r0, #1
- moveq r0, #0
- beq _03803B14
- ldr r0, _03803B28 ;@ =CTRDGi_Work
- ldrh r0, [r0, #2]
- add r1, sp, #0
- bl CTRDGi_LockByProcessor
- cmp r0, #0
- bne _03803A70
- ldr r0, [sp, #4]
- bl OS_RestoreInterrupts
- mov r0, r4
- b _03803B14
-_03803A70:
- add r0, sp, #8
- bl CTRDGi_ChangeLatestAccessCycle
- mov r2, #134217728 ;@ 0x8000000
- ldrb r3, [r2, #178] ;@ 0xb2
- cmp r3, #150 ;@ 0x96
- bne _03803A9C
- ldr r0, _03803B20 ;@ =0x027FFC30
- ldrh r1, [r0]
- ldrh r0, [r2, #190] ;@ 0xbe
- cmp r1, r0
- bne _03803AE4
-_03803A9C:
- cmp r3, #150 ;@ 0x96
- beq _03803ABC
- ldr r0, _03803B20 ;@ =0x027FFC30
- ldrh r1, [r0]
- ldr r0, _03803B2C ;@ =0x0801FFFE
- ldrh r0, [r0]
- cmp r1, r0
- bne _03803AE4
-_03803ABC:
- ldr r2, _03803B20 ;@ =0x027FFC30
- ldr r1, [r2, #8]
- mov r0, #134217728 ;@ 0x8000000
- ldr r0, [r0, #172] ;@ 0xac
- cmp r1, r0
- beq _03803AF8
- ldrb r0, [r2, #5]
- mov r0, r0, lsl #31
- movs r0, r0, lsr #31
- beq _03803AF8
-_03803AE4:
- ldr r1, _03803B20 ;@ =0x027FFC30
- ldrb r0, [r1, #5]
- orr r0, r0, #2
- strb r0, [r1, #5]
- mov r4, #0
-_03803AF8:
- add r0, sp, #8
- bl CTRDGi_RestoreAccessCycle
- ldr r0, _03803B28 ;@ =CTRDGi_Work
- ldrh r0, [r0, #2]
- add r1, sp, #0
- bl CTRDGi_UnlockByProcessor
- mov r0, r4
-_03803B14:
- add sp, sp, #16
- ldmia sp!, {r4, lr}
- bx lr
-_03803B20: .word 0x027FFC30
-_03803B24: .word 0x0000FFFF
-_03803B28: .word CTRDGi_Work
-_03803B2C: .word 0x0801FFFE
-
- arm_func_start CTRDG_IsPulledOut
-CTRDG_IsPulledOut: ;@ 0x03803B30
- stmfd sp!, {lr}
- sub sp, sp, #4
- ldr r2, _03803B80 ;@ =0x027FFC30
- ldrh r1, [r2]
- ldr r0, _03803B84 ;@ =0x0000FFFF
- cmp r1, r0
- moveq r0, #0
- beq _03803B74
- ldrb r0, [r2, #5]
- mov r0, r0, lsl #30
- movs r0, r0, lsr #31
- bne _03803B64
- bl CTRDG_IsExisting
-_03803B64:
- ldr r0, _03803B80 ;@ =0x027FFC30
- ldrb r0, [r0, #5]
- mov r0, r0, lsl #30
- mov r0, r0, lsr #31
-_03803B74:
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-_03803B80: .word 0x027FFC30
-_03803B84: .word 0x0000FFFF
-
- arm_func_start CTRDGi_InitCommon
-CTRDGi_InitCommon: ;@ 0x03803B88
- stmfd sp!, {lr}
- sub sp, sp, #4
- mov r0, #0
- str r0, [sp]
- add r0, sp, #0
- ldr r1, _03803BC0 ;@ =CTRDGi_Work
- ldr r2, _03803BC4 ;@ =0x05000001
- bl FUN_03803BC8
- bl OS_GetLockID
- ldr r1, _03803BC0 ;@ =CTRDGi_Work
- strh r0, [r1, #2]
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-_03803BC0: .word CTRDGi_Work
-_03803BC4: .word 0x05000001
-
- arm_func_start FUN_03803BC8
-FUN_03803BC8: ;@ 0x03803BC8
- ldr ip, _03803BD0 ;@ =SVC_CpuSet
- bx ip
-_03803BD0: .word SVC_CpuSet
-
- arm_func_start FUN_03803BD4
-FUN_03803BD4: ;@ 0x03803BD4
- stmdb sp!, {r4, r5, r6, r7, lr}
- sub sp, sp, #4
- and r0, r1, #63 ;@ 0x3f
- cmp r0, #3
- bne _03803C40
- ldr r0, _03803C50 ;@ =0x01FFFFC0
- and r0, r1, r0
- mov r2, r0, lsr #6
- ldr r1, _03803C54 ;@ =0x04000204
- ldrh r0, [r1]
- bic r0, r0, #96 ;@ 0x60
- orr r0, r0, r2, lsl #5
- strh r0, [r1]
- mov r7, #1
- mov r6, #17
- mov r5, #18
- mov r4, #0
- b _03803C24
-_03803C1C:
- mov r0, r7
- bl FUN_037F8CB4
-_03803C24:
- mov r0, r6
- mov r1, r5
- mov r2, r4
- bl PXI_SendWordByFifo
- cmp r0, #0
- bne _03803C1C
- b _03803C44
-_03803C40:
- bl OS_Terminate
-_03803C44:
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, lr}
- bx lr
-_03803C50: .word 0x01FFFFC0
-_03803C54: .word 0x04000204
-
- arm_func_start FUN_03803C58
-FUN_03803C58: ;@ 0x03803C58
- stmfd sp!, {lr}
- sub sp, sp, #4
- mov r0, #0
- bl CTRDG_VibPulseEdgeUpdate
- bl SND_BeginSleep
- bl WVR_Shutdown
- bl OS_Terminate
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start CTRDG_CheckPullOut_Polling
-CTRDG_CheckPullOut_Polling: ;@ 0x03803C80
- stmdb sp!, {r4, r5, r6, r7, lr}
- sub sp, sp, #4
- ldr r1, _03803D80 ;@ =_03807708
- ldr r3, [r1]
- mvn r0, #0
- cmp r3, r0
- ldreq r0, _03803D84 ;@ =0x027FFC3C
- ldreq r0, [r0]
- addeq r0, r0, #10
- streq r0, [r1]
- beq _03803D74
- ldr r0, _03803D88 ;@ =_03809FCC
- ldr r0, [r0]
- cmp r0, #0
- bne _03803D74
- ldr r0, _03803D8C ;@ =_03809FC8
- ldr r0, [r0]
- cmp r0, #0
- bne _03803D74
- ldr r2, _03803D84 ;@ =0x027FFC3C
- ldr r0, [r2]
- cmp r0, r3
- bcc _03803D74
- ldr r0, [r2]
- add r0, r0, #10
- str r0, [r1]
- bl CTRDG_IsPulledOut
- ldr r1, _03803D8C ;@ =_03809FC8
- str r0, [r1]
- bl CTRDG_IsExisting
- cmp r0, #0
- bne _03803D28
- ldr r0, _03803D90 ;@ =_03807704
- ldr r0, [r0]
- cmp r0, #0
- movne r1, #1
- ldrne r0, _03803D88 ;@ =_03809FCC
- strne r1, [r0]
- bne _03803D74
- mov r1, #1
- ldr r0, _03803D8C ;@ =_03809FC8
- str r1, [r0]
-_03803D28:
- mov r7, #0
- ldr r0, _03803D90 ;@ =_03807704
- str r7, [r0]
- ldr r0, _03803D8C ;@ =_03809FC8
- ldr r0, [r0]
- cmp r0, #0
- beq _03803D74
- mov r6, #100 ;@ 0x64
- mov r5, #13
- mov r4, #17
- b _03803D5C
-_03803D54:
- mov r0, r6
- bl OS_Sleep
-_03803D5C:
- mov r0, r5
- mov r1, r4
- mov r2, r7
- bl PXI_SendWordByFifo
- cmp r0, #0
- bne _03803D54
-_03803D74:
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, lr}
- bx lr
-_03803D80: .word _03807708
-_03803D84: .word 0x027FFC3C
-_03803D88: .word _03809FCC
-_03803D8C: .word _03809FC8
-_03803D90: .word _03807704
-
- arm_func_start FUN_03803D94
-FUN_03803D94: ;@ 0x03803D94
- stmdb sp!, {r4, r5, r6, r7, r8, lr}
- mov r7, r0
- mov r0, #134217728 ;@ 0x8000000
- add r6, r0, #4
- mov r4, #1
- bl OS_GetLockID
- mov r0, r0, lsl #16
- mov r5, r0, lsr #16
- mov r0, r5
- bl OS_LockCartridge
- mov r1, #0
- ldr r0, _03803E3C ;@ =0x0000FFFF
- eor r2, r0, #3
- mov r2, r2, lsl #16
- mov lr, r2, lsr #16
- eor r2, r0, #132 ;@ 0x84
- mov r2, r2, lsl #16
- mov r8, r2, lsr #16
- b _03803E18
-_03803DE0:
- mov ip, r0
- cmp r1, #76 ;@ 0x4c
- moveq ip, r8
- beq _03803DF8
- cmp r1, #77 ;@ 0x4d
- moveq ip, lr
-_03803DF8:
- mov r3, r1, lsl #1
- ldrh r2, [r7, r3]
- and ip, ip, r2
- ldrh r2, [r6, r3]
- cmp ip, r2
- movne r4, #0
- bne _03803E20
- add r1, r1, #1
-_03803E18:
- cmp r1, #78 ;@ 0x4e
- blt _03803DE0
-_03803E20:
- mov r0, r5
- bl OS_UnLockCartridge
- mov r0, r5
- bl OS_ReleaseLockID
- mov r0, r4
- ldmia sp!, {r4, r5, r6, r7, r8, lr}
- bx lr
-_03803E3C: .word 0x0000FFFF
-
- arm_func_start FUN_03803E40
-FUN_03803E40: ;@ 0x03803E40
- ldr r1, _03803E54 ;@ =current_vib
- str r0, [r1]
- ldr r1, _03803E58 ;@ =0x08001000
- strh r0, [r1]
- bx lr
-_03803E54: .word current_vib
-_03803E58: .word 0x08001000
-
- arm_func_start CTRDG_VibPulseEdgeUpdate
-CTRDG_VibPulseEdgeUpdate: ;@ 0x03803E5C
- stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- sub sp, sp, #4
- movs r5, r0
- beq _03803E9C
- ldr r0, [r5]
- cmp r0, #0
- bne _03803E9C
- ldr r0, [r5, #68] ;@ 0x44
- add r0, r0, #1
- str r0, [r5, #68] ;@ 0x44
- ldr r1, [r5, #64] ;@ 0x40
- cmp r1, #0
- beq _03803E9C
- ldr r0, [r5, #68] ;@ 0x44
- cmp r0, r1
- movhi r5, #0
-_03803E9C:
- cmp r5, #0
- beq _03803EB0
- ldr r0, [r5, #60] ;@ 0x3c
- cmp r0, #0
- bne _03803F48
-_03803EB0:
- bl OS_DisableInterrupts
- mov r9, r0
- ldr r0, _03804068 ;@ =current_vib
- ldr r0, [r0]
- cmp r0, #2
- bne _03803F34
- mov r8, #0
- ldr r7, _0380406C ;@ =0x027FFFE8
- ldr r4, _03804070 ;@ =_03809FBC
- ldr fp, _03804074 ;@ =0x000080E8
- mov r6, r8
- mov r5, #1
- b _03803F2C
-_03803EE4:
- mov r0, r7
- bl OS_ReadOwnerOfLockWord
- ands sl, r0, #128 ;@ 0x80
- bne _03803F04
- ldrh r0, [r4]
- bl OS_TryLockCartridge
- cmp r0, #0
- bne _03803F24
-_03803F04:
- mov r0, r6
- bl FUN_03803E40
- mov r8, r5
- cmp sl, #0
- bne _03803F2C
- ldrh r0, [r4]
- bl OS_UnlockCartridge
- b _03803F2C
-_03803F24:
- mov r0, fp
- bl OS_SpinWait
-_03803F2C:
- cmp r8, #0
- beq _03803EE4
-_03803F34:
- ldr r0, _03804078 ;@ =_03809FEC
- bl OS_CancelAlarm
- mov r0, r9
- bl OS_RestoreInterrupts
- b _0380405C
-_03803F48:
- cmp r5, #0
- beq _0380405C
- ldr r0, _0380406C ;@ =0x027FFFE8
- bl OS_ReadOwnerOfLockWord
- ands r4, r0, #128 ;@ 0x80
- bne _03803F74
- ldr r0, _03804070 ;@ =_03809FBC
- ldrh r0, [r0]
- bl OS_TryLockCartridge
- cmp r0, #0
- bne _03804044
-_03803F74:
- ldr r1, [r5]
- ldr r0, [r5, #4]
- cmp r1, r0
- bne _03803FB0
- mov r0, #0
- bl FUN_03803E40
- str r5, [sp]
- ldr r0, _03804078 ;@ =_03809FEC
- ldr r1, [r5, #8]
- mov r2, #0
- ldr r3, _0380407C ;@ =CTRDG_VibPulseEdgeUpdate
- bl OS_SetAlarm
- mov r0, #0
- str r0, [r5]
- b _0380402C
-_03803FB0:
- ands r0, r1, #1
- beq _03803FF4
- mov r0, #0
- bl FUN_03803E40
- str r5, [sp]
- ldr r0, _03804078 ;@ =_03809FEC
- ldr r1, [r5]
- mov r1, r1, lsr #1
- add r1, r5, r1, lsl #2
- ldr r1, [r1, #36] ;@ 0x24
- mov r2, #0
- ldr r3, _0380407C ;@ =CTRDG_VibPulseEdgeUpdate
- bl OS_SetAlarm
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _0380402C
-_03803FF4:
- mov r0, #2
- bl FUN_03803E40
- str r5, [sp]
- ldr r0, _03804078 ;@ =_03809FEC
- ldr r1, [r5]
- mov r1, r1, lsr #1
- add r1, r5, r1, lsl #2
- ldr r1, [r1, #12]
- mov r2, #0
- ldr r3, _0380407C ;@ =CTRDG_VibPulseEdgeUpdate
- bl OS_SetAlarm
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
-_0380402C:
- cmp r4, #0
- bne _0380405C
- ldr r0, _03804070 ;@ =_03809FBC
- ldrh r0, [r0]
- bl OS_UnlockCartridge
- b _0380405C
-_03804044:
- str r5, [sp]
- ldr r0, _03804078 ;@ =_03809FEC
- ldr r1, _03804080 ;@ =0x0000020B
- mov r2, #0
- ldr r3, _0380407C ;@ =CTRDG_VibPulseEdgeUpdate
- bl OS_SetAlarm
-_0380405C:
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- bx lr
-_03804068: .word current_vib
-_0380406C: .word 0x027FFFE8
-_03804070: .word _03809FBC
-_03804074: .word 0x000080E8
-_03804078: .word _03809FEC
-_0380407C: .word CTRDG_VibPulseEdgeUpdate
-_03804080: .word 0x0000020B
-_03804084:
- mov r0, r1
- ldr ip, _03804090 ;@ =CTRDG_VibPulseEdgeUpdate
- bx ip
-_03804090: .word CTRDG_VibPulseEdgeUpdate
-
- arm_func_start FUN_03804094
-FUN_03804094: ;@ 0x03804094
- stmfd sp!, {lr}
- sub sp, sp, #4
- and r0, r1, #63 ;@ 0x3f
- cmp r0, #2
- bne _038040B0
- bl FUN_03803C58
- b _038040B4
-_038040B0:
- bl OS_Terminate
-_038040B4:
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start FUN_038040C0
-FUN_038040C0: ;@ 0x038040C0
- stmfd sp!, {lr}
- sub sp, sp, #4
- and r0, r1, #63 ;@ 0x3f
- cmp r0, #1
- ldreq r0, _038040F4 ;@ =_03809FD4
- streq r1, [r0]
- moveq r1, #1
- streq r1, [r0, #16]
- beq _038040E8
- bl OS_Terminate
-_038040E8:
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-_038040F4: .word _03809FD4
-
- arm_func_start CTRDGi_InitModuleInfo
-CTRDGi_InitModuleInfo: ;@ 0x038040F8
- stmdb sp!, {r4, r5, r6, r7, lr}
- sub sp, sp, #4
- ldr r0, _038041C8 ;@ =_03809FC4
- ldr r1, [r0]
- cmp r1, #0
- bne _038041BC
- mov r1, #1
- str r1, [r0]
- ldr r0, _038041CC ;@ =0x04000300
- ldrh r0, [r0]
- ands r0, r0, #1
- beq _038041BC
- mov r0, #262144 ;@ 0x40000
- bl OS_SetIrqMask
- mov r5, r0
- ldr r1, _038041D0 ;@ =0x04000208
- ldrh r4, [r1]
- mov r0, #1
- strh r0, [r1]
- mov r7, #256 ;@ 0x100
- ldr r6, _038041D4 ;@ =_03809FD4
- b _03804158
-_03804150:
- mov r0, r7
- bl FUN_037F8CB4
-_03804158:
- ldr r0, [r6, #16]
- cmp r0, #1
- bne _03804150
- ldr r1, [r6]
- ldr r0, _038041D8 ;@ =0x01FFFFC0
- and r0, r1, r0
- mov r0, r0, lsr #6
- mov r0, r0, lsl #5
- add r0, r0, #33554432 ;@ 0x2000000
- add r0, r0, #4
- bl FUN_03803D94
- ldr r2, _038041DC ;@ =0x027FFC30
- ldrb r1, [r2, #5]
- bic r1, r1, #1
- and r0, r0, #255 ;@ 0xff
- and r0, r0, #1
- orr r0, r1, r0
- strb r0, [r2, #5]
- mov r0, #1
- bl CTRDGi_SendtoPxi
- ldr r1, _038041D0 ;@ =0x04000208
- ldrh r0, [r1]
- strh r4, [r1]
- mov r0, r5
- bl OS_SetIrqMask
-_038041BC:
- add sp, sp, #4
- ldmia sp!, {r4, r5, r6, r7, lr}
- bx lr
-_038041C8: .word _03809FC4
-_038041CC: .word 0x04000300
-_038041D0: .word 0x04000208
-_038041D4: .word _03809FD4
-_038041D8: .word 0x01FFFFC0
-_038041DC: .word 0x027FFC30
-
- arm_func_start CTRDG_Init
-CTRDG_Init: ;@ 0x038041E0
- stmfd sp!, {lr}
- sub sp, sp, #4
- bl OS_InitTick
- bl OS_InitAlarm
- ldr r0, _03804270 ;@ =_03809FEC
- bl OS_CreateAlarm
- ldr r0, _03804274 ;@ =_03809FD0
- ldr r1, [r0]
- cmp r1, #0
- bne _03804264
- mov r1, #1
- str r1, [r0]
- bl CTRDGi_InitCommon
- bl OS_GetLockID
- mvn r1, #2
- cmp r0, r1
- beq _03804264
- ldr r1, _03804278 ;@ =_03809FBC
- strh r0, [r1]
- bl PXI_Init
- mov r0, #13
- ldr r1, _0380427C ;@ =FUN_038040C0
- bl PXI_SetFifoRecvCallback
- bl CTRDGi_InitModuleInfo
- mov r0, #13
- ldr r1, _03804280 ;@ =FUN_03804094
- bl PXI_SetFifoRecvCallback
- mov r0, #16
- ldr r1, _03804284 ;@ =_03804084
- bl PXI_SetFifoRecvCallback
- mov r0, #17
- ldr r1, _03804288 ;@ =FUN_03803BD4
- bl PXI_SetFifoRecvCallback
-_03804264:
- add sp, sp, #4
- ldmia sp!, {lr}
- bx lr
-_03804270: .word _03809FEC
-_03804274: .word _03809FD0
-_03804278: .word _03809FBC
-_0380427C: .word FUN_038040C0
-_03804280: .word FUN_03804094
-_03804284: .word _03804084
-_03804288: .word FUN_03803BD4
-
arm_func_start FUN_0380428C
FUN_0380428C: ;@ 0x0380428C
stmfd sp!, {lr}
diff --git a/arm7/asm/wram_bss.s b/arm7/asm/wram_bss.s
index e342bf0c..b8123702 100644
--- a/arm7/asm/wram_bss.s
+++ b/arm7/asm/wram_bss.s
@@ -2,126 +2,6 @@
.include "global.inc"
.section .bss
- .global _038099AC
-_038099AC: ;0x038099AC
- .space 0x038099B0 - 0x038099AC
-
- .global _038099B0
-_038099B0: ;0x038099B0
- .space 0x038099B8 - 0x038099B0
-
- .global _038099B8
-_038099B8: ;0x038099B8
- .space 0x03809C5C - 0x038099B8
-
- .global _03809C5C
-_03809C5C: ;0x03809C5C
- .space 0x03809C7C - 0x03809C5C
-
- .global _03809C7C
-_03809C7C: ;0x03809C7C
- .space 0x03809CBC - 0x03809C7C
-
- .global _03809CBC
-_03809CBC: ;0x03809CBC
- .space 0x03809CC0 - 0x03809CBC
-
- .global _03809CC0
-_03809CC0: ;0x03809CC0
- .space 0x03809E40 - 0x03809CC0
-
- .global _03809E40
-_03809E40: ;0x03809E40
- .space 0x03809E4C - 0x03809E40
-
- .global _03809E4C
-_03809E4C: ;0x03809E4C
- .space 0x03809E50 - 0x03809E4C
-
- .global _03809E50
-_03809E50: ;0x03809E50
- .space 0x03809E54 - 0x03809E50
-
- .global _03809E54
-_03809E54: ;0x03809E54
- .space 0x03809E80 - 0x03809E54
-
- .global _03809E80
-_03809E80: ;0x03809E80
- .space 0x03809F28 - 0x03809E80
-
- .global _03809F28
-_03809F28: ;0x03809F28
- .space 0x03809F2C - 0x03809F28
-
- .global PMi_KeyPattern
-PMi_KeyPattern: ;0x03809F2C
- .space 0x03809F30 - 0x03809F2C
-
- .global PMi_TriggerBL
-PMi_TriggerBL: ;0x03809F30
- .space 0x03809F34 - 0x03809F30
-
- .global PMi_Initialized
-PMi_Initialized: ;0x03809F34
- .space 0x03809F38 - 0x03809F34
-
- .global PMi_Work
-PMi_Work: ;0x03809F38
- .space 0x03809F64 - 0x03809F38
-
- .global _03809F64
-_03809F64: ;0x03809F64
- .space 0x03809F68 - 0x03809F64
-
- .global PMi_BlinkPatternNo
-PMi_BlinkPatternNo: ;0x03809F68
- .space 0x03809F6C - 0x03809F68
-
- .global _03809F6C
-_03809F6C: ;0x03809F6C
- .space 0x03809FA8 - 0x03809F6C
-
- .global _03809FA8
-_03809FA8: ;0x03809FA8
- .space 0x03809FB8 - 0x03809FA8
-
- .global CTRDGi_Work
-CTRDGi_Work: ;0x03809FB8
- .space 0x03809FBC - 0x03809FB8
-
- .global _03809FBC
-_03809FBC: ;0x03809FBC
- .space 0x03809FC0 - 0x03809FBC
-
- .global current_vib
-current_vib: ;0x03809FC0
- .space 0x03809FC4 - 0x03809FC0
-
- .global _03809FC4
-_03809FC4: ;0x03809FC4
- .space 0x03809FC8 - 0x03809FC4
-
- .global _03809FC8
-_03809FC8: ;0x03809FC8
- .space 0x03809FCC - 0x03809FC8
-
- .global _03809FCC
-_03809FCC: ;0x03809FCC
- .space 0x03809FD0 - 0x03809FCC
-
- .global _03809FD0
-_03809FD0: ;0x03809FD0
- .space 0x03809FD4 - 0x03809FD0
-
- .global _03809FD4
-_03809FD4: ;0x03809FD4
- .space 0x03809FEC - 0x03809FD4
-
- .global _03809FEC
-_03809FEC: ;0x03809FEC
- .space 0x0380A018 - 0x03809FEC
-
.global _0380A018
_0380A018: ;0x0380A018
.space 0x0380A038 - 0x0380A018
diff --git a/arm7/asm/wram_data.s b/arm7/asm/wram_data.s
deleted file mode 100644
index 05fd5b66..00000000
--- a/arm7/asm/wram_data.s
+++ /dev/null
@@ -1,56 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .section .data
-
- .global PMi_LEDStatus
-PMi_LEDStatus:
- .word 0x00000001
-
- .global PMi_BlinkPatternData
-PMi_BlinkPatternData:
- .word 0x00000000
- .word 0xAA000000
- .word 0x00010008
- .word 0x00000000
- .word 0xCC000000
- .word 0x00010008
- .word 0x00000000
- .word 0xE3800000
- .word 0x0001000C
- .word 0x00000000
- .word 0xF0F00000
- .word 0x00010010
- .word 0x00000000
- .word 0xF83E0000
- .word 0x00010014
- .word 0x00000000
- .word 0xFC000000
- .word 0x0001000C
- .word 0x00000000
- .word 0xFF000000
- .word 0x00010010
- .word 0x00000000
- .word 0xFFC00000
- .word 0x00010014
- .word 0x00000000
- .word 0xFF000000
- .word 0x00010020
- .word 0x00000000
- .word 0xFF00FF00
- .word 0x00010020
- .word 0x00000000
- .word 0xFFFFFF00
- .word 0x00010020
- .word 0x00000000
- .word 0xC3000000
- .word 0x00020028
-
- .global _03807704
-_03807704:
- .word 0x00000001
-
- .global _03807708
-_03807708:
- .word 0xFFFFFFFF
- .balign 2, 0 ; Don't pad with nop
diff --git a/arm7/global.inc b/arm7/global.inc
index a732f7df..1b3a3fc5 100644
--- a/arm7/global.inc
+++ b/arm7/global.inc
@@ -222,13 +222,38 @@
.extern FUN_037FE918
.extern FUN_037FE968
.extern FUN_037FE9B8
+.extern SPIi_CheckEntry
+.extern SPIi_CheckException
+.extern SPIi_GetException
+.extern SPIi_ReleaseException
+.extern SPIi_ReturnResult
+.extern SPIi_SetEntry
.extern SPI_Init
+.extern FUN_03801660
+.extern FUN_038016A8
.extern PMi_ResetControl
.extern PMi_SetControl
+.extern PMi_SetLED
+.extern PM_AnalyzeCommand
+.extern PM_ExecuteProcess
+.extern PM_Init
.extern PM_SelfBlinkProc
+.extern MIC_AnalyzeCommand
+.extern MIC_ExecuteProcess
+.extern MIC_Init
+.extern TP_AnalyzeCommand
+.extern TP_ExecuteProcess
+.extern TP_Init
+.extern CTRDGi_InitCommon
+.extern CTRDGi_SendtoPxi
.extern CTRDG_CheckPullOut_Polling
.extern CTRDG_VibPulseEdgeUpdate
.extern CTRDG_Init
+.extern CTRDG_IsExisting
+.extern CTRDG_IsPulledOut
+.extern NVRAM_AnalyzeCommand
+.extern NVRAM_ExecuteProcess
+.extern NVRAM_Init
.extern NVRAM_ReadDataBytes
.extern RTC_Init
.extern WVR_Shutdown
@@ -310,6 +335,7 @@
.extern _038072BC
.extern _038072C0
.extern _038072C4
+.extern _038072C8
.extern SVC_CpuSet
.extern SVC_GetCRC16
.extern SVC_GetPitchTable
diff --git a/arm7/lib/include/MI_dma.h b/arm7/lib/include/MI_dma.h
index b728f814..e65f0b89 100644
--- a/arm7/lib/include/MI_dma.h
+++ b/arm7/lib/include/MI_dma.h
@@ -1,7 +1,7 @@
-#ifndef GUARD_MI_DMA_H
-#define GUARD_MI_DMA_H
+#ifndef POKEDIAMOND_ARM7_MI_DMA_H
+#define POKEDIAMOND_ARM7_MI_DMA_H
-#include "nitro/dma.h"
+#include "nitro/MI_dma_shared.h"
#include "nitro/types.h"
void MI_StopDma(u32 channel);
diff --git a/arm7/lib/include/MI_memory.h b/arm7/lib/include/MI_memory.h
index cb0c53fc..53398ec5 100644
--- a/arm7/lib/include/MI_memory.h
+++ b/arm7/lib/include/MI_memory.h
@@ -12,4 +12,14 @@ void MIi_CpuCopyFast(register u32 * src, register u32 * dst, register u32 size);
void MI_CpuFill8(register u8 value, register u8 * dst, register u32 size);
void MI_CpuCopy8(register u8 * src, register u8 * dst, register u32 size);
+static inline void MI_CpuFill32(void *dest, u32 data, u32 size)
+{
+ MIi_CpuClear32(data, dest, size);
+}
+
+static inline void MI_CpuClear32(void *dest, u32 size)
+{
+ MI_CpuFill32(dest, 0, size);
+}
+
#endif
diff --git a/arm7/lib/include/OS_alarm.h b/arm7/lib/include/OS_alarm.h
new file mode 100644
index 00000000..8ae89e97
--- /dev/null
+++ b/arm7/lib/include/OS_alarm.h
@@ -0,0 +1,9 @@
+#ifndef POKEDIAMOND_ARM7_OS_ALARM_H
+#define POKEDIAMOND_ARM7_OS_ALARM_H
+
+#include "nitro/OS_alarm_shared.h"
+
+void OS_CreateAlarm(OSAlarm *alarm);
+void OS_SetAlarm(OSAlarm *alarm, OSTick tick, OSAlarmHandler handler, void *arg);
+
+#endif //POKEDIAMOND_ARM7_OS_ALARM_H
diff --git a/arm7/lib/include/OS_context.h b/arm7/lib/include/OS_context.h
new file mode 100644
index 00000000..b01ccb8b
--- /dev/null
+++ b/arm7/lib/include/OS_context.h
@@ -0,0 +1,20 @@
+#ifndef POKEDIAMOND_ARM7_OS_CONTEXT_H
+#define POKEDIAMOND_ARM7_OS_CONTEXT_H
+
+#include "nitro/types.h"
+
+typedef struct OSContext
+{
+ u32 cpsr;
+ u32 r[13];
+ u32 sp;
+ u32 lr;
+ u32 pc_plus4;
+ u32 sp_svc;
+} OSContext;
+
+extern u32 OS_SaveContext(OSContext *context);
+extern void OS_LoadContext(OSContext *context);
+extern void OS_InitContext(OSContext *context, u32 func, u32 stack);
+
+#endif //POKEDIAMOND_ARM7_OS_CONTEXT_H
diff --git a/arm7/lib/include/OS_init.h b/arm7/lib/include/OS_init.h
index c90740c2..03d64ae1 100644
--- a/arm7/lib/include/OS_init.h
+++ b/arm7/lib/include/OS_init.h
@@ -6,6 +6,10 @@
#include "OS_arena.h"
#include "OS_alloc.h"
#include "OS_reset.h"
+#include "OS_terminate_proc.h"
+#include "OS_spinLock.h"
+#include "OS_context.h"
+#include "OS_interrupt.h"
void OS_Init(void);
diff --git a/arm7/lib/include/OS_interrupt.h b/arm7/lib/include/OS_interrupt.h
index afcb9b5f..fb869483 100644
--- a/arm7/lib/include/OS_interrupt.h
+++ b/arm7/lib/include/OS_interrupt.h
@@ -2,5 +2,22 @@
#define POKEDIAMOND_ARM7_OS_INTERRUPT_H
#include "nitro/OS_interrupt_shared.h"
+#include "consts.h"
+
+extern OSIrqFunction OS_IRQTable[];
+extern OSIrqCallbackInfo OSi_IrqCallbackInfo[9];
+
+static inline void OSi_SetVBlankCount(u32 count)
+{
+ *(u32 *)HW_VBLANK_COUNT_BUF = count;
+}
+
+void OS_InitIrqTable(void);
+void OS_SetIrqFunction(OSIrqMask intrBit, OSIrqFunction function);
+void OSi_EnterTimerCallback(u32 timerNo, void (*callback) (void *), void *arg);
+OSIrqMask OS_SetIrqMask(OSIrqMask mask);
+OSIrqMask OS_EnableIrqMask(OSIrqMask mask);
+OSIrqMask OS_DisableIrqMask(OSIrqMask mask);
+OSIrqMask OS_ResetRequestIrqMask(OSIrqMask mask);
#endif //POKEDIAMOND_ARM7_OS_INTERRUPT_H
diff --git a/arm7/lib/include/OS_mutex.h b/arm7/lib/include/OS_mutex.h
index 6b8da6a8..216da68c 100644
--- a/arm7/lib/include/OS_mutex.h
+++ b/arm7/lib/include/OS_mutex.h
@@ -1,9 +1,10 @@
-#ifndef GUARD_OS_MUTEX_H
-#define GUARD_OS_MUTEX_H
+#ifndef POKEDIAMOND_ARM7_OS_MUTEX_H
+#define POKEDIAMOND_ARM7_OS_MUTEX_H
+#include "OS_context.h"
#include "nitro/OS_mutex_shared.h"
-#include "nitro/types.h"
void OS_InitMutex(OSMutex* mutex);
+void OSi_UnlockAllMutex(OSThread * thread);
-#endif
+#endif //POKEDIAMOND_ARM7_OS_MUTEX_H
diff --git a/arm7/lib/include/OS_spinLock.h b/arm7/lib/include/OS_spinLock.h
new file mode 100644
index 00000000..f7366d1f
--- /dev/null
+++ b/arm7/lib/include/OS_spinLock.h
@@ -0,0 +1,28 @@
+#ifndef POKEDIAMOND_ARM7_OS_SPINLOCK_H
+#define POKEDIAMOND_ARM7_OS_SPINLOCK_H
+
+#include "consts.h"
+#include "nitro/OS_spinLock_shared.h"
+#include "syscall.h"
+
+void OS_InitLock(void);
+void FUN_037F8CB4(s32 ct);
+s32 OSi_DoLockByWord(u16 lockId, OSLockWord *lockp, void (*ctrlFuncp) (void), BOOL disableFiq);
+s32 OSi_DoUnlockByWord(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (void), BOOL disableFIQ);
+s32 OSi_DoTryLockByWord(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (void), BOOL disableFiq);
+s32 OS_LockCartridge(u16 lockID);
+s32 OS_UnlockCartridge(u16 lockID);
+s32 OS_TryLockCartridge(u16 lockID);
+void OSi_AllocateCartridgeBus(void);
+void OSi_FreeCartridgeBus(void);
+u16 OS_ReadOwnerOfLockWord(OSLockWord * lock);
+s32 OS_UnLockCartridge(u16 lockID);
+s32 OS_GetLockID(void);
+void OS_ReleaseLockID(register u16 lockID);
+
+static inline void OSi_WaitByLoop(void)
+{
+ FUN_037F8CB4(0x1000 / 4);
+}
+
+#endif //POKEDIAMOND_ARM7_OS_SPINLOCK_H
diff --git a/arm7/lib/include/OS_terminate_proc.h b/arm7/lib/include/OS_terminate_proc.h
new file mode 100644
index 00000000..ea2273c8
--- /dev/null
+++ b/arm7/lib/include/OS_terminate_proc.h
@@ -0,0 +1,6 @@
+#ifndef POKEDIAMOND_ARM7_OS_TERMINATE_PROC_H
+#define POKEDIAMOND_ARM7_OS_TERMINATE_PROC_H
+
+void OS_Terminate(void);
+
+#endif //POKEDIAMOND_ARM7_OS_TERMINATE_PROC_H
diff --git a/arm7/lib/include/OS_thread.h b/arm7/lib/include/OS_thread.h
new file mode 100644
index 00000000..b1d3a01b
--- /dev/null
+++ b/arm7/lib/include/OS_thread.h
@@ -0,0 +1,36 @@
+#ifndef POKEDIAMOND_ARM7_OS_THREAD_H
+#define POKEDIAMOND_ARM7_OS_THREAD_H
+
+#include "OS_context.h"
+#include "nitro/OS_thread_shared.h"
+
+static s32 OSi_GetUnusedThreadId(void);
+static void OSi_InsertLinkToQueue(OSThreadQueue *queue, OSThread *thread);
+static OSThread *OSi_RemoveLinkFromQueue(OSThreadQueue *queue);
+static OSThread *OSi_RemoveSpecifiedLinkFromQueue(OSThreadQueue *queue, OSThread *thread);
+OSMutex *OSi_RemoveMutexLinkFromQueue(OSMutexQueue *queue);
+static void OSi_InsertThreadToList(OSThread *thread);
+static void OSi_RemoveThreadFromList(OSThread *thread);
+static void OSi_RescheduleThread(void);
+void OS_InitThread(void);
+void OS_CreateThread(OSThread *thread, void (*func) (void *), void *arg, void *stack, u32 stackSize, u32 prio);
+void OS_ExitThread(void);
+static void OSi_ExitThread_ArgSpecified(OSThread *thread, void *arg);
+static void OSi_ExitThread(void *arg);
+static void OSi_ExitThread_Destroy(void);
+void OS_JoinThread(OSThread *thread);
+BOOL OS_IsThreadTerminated(const OSThread *thread);
+void OS_SleepThread(OSThreadQueue *queue);
+void OS_WakeupThread(OSThreadQueue *queue);
+void OS_WakeupThreadDirect(OSThread *thread);
+OSThread *OS_SelectThread(void);
+void OS_RescheduleThread(void);
+BOOL OS_SetThreadPriority(OSThread *thread, u32 prio);
+void OS_Sleep(u32 msec);
+static void OSi_SleepAlarmCallback(void *arg);
+OSSwitchThreadCallback OS_SetSwitchThreadCallback(OSSwitchThreadCallback callback);
+u32 OS_DisableScheduler(void);
+u32 OS_EnableScheduler(void);
+void OS_SetThreadDestructor(OSThread *thread, OSThreadDestructor dtor);
+
+#endif //POKEDIAMOND_ARM7_OS_THREAD_H
diff --git a/arm7/lib/include/consts.h b/arm7/lib/include/consts.h
index dd297402..a6c4c393 100644
--- a/arm7/lib/include/consts.h
+++ b/arm7/lib/include/consts.h
@@ -3,5 +3,7 @@
#include "nitro/consts_shared.h"
#include "mmap.h"
+#include "registers.h"
+#include "systemWork.h"
#endif //POKEDIAMOND_ARM7_CONSTS_H
diff --git a/arm7/lib/include/mmap.h b/arm7/lib/include/mmap.h
index 24d15ad7..1b403dc5 100644
--- a/arm7/lib/include/mmap.h
+++ b/arm7/lib/include/mmap.h
@@ -23,4 +23,7 @@
#define HW_PRV_WRAM_SYSRV (HW_PRV_WRAM + HW_PRV_WRAM_SIZE - HW_PRV_WRAM_SYSRV_SIZE)
+#define HW_VBLANK_COUNT_BUF (HW_MAIN_MEM + 0x007ffc3c)
+#define HW_LOCK_ID_FLAG_SUB (HW_MAIN_MEM + 0x007fffb8)
+
#endif //POKEDIAMOND_ARM7_MMAP_H
diff --git a/arm7/lib/include/registers.h b/arm7/lib/include/registers.h
new file mode 100644
index 00000000..4ef8bdfb
--- /dev/null
+++ b/arm7/lib/include/registers.h
@@ -0,0 +1,6 @@
+#ifndef POKEDIAMOND_ARM7_REGISTERS_H
+#define POKEDIAMOND_ARM7_REGISTERS_H
+
+#include "nitro/registers_shared.h"
+
+#endif //POKEDIAMOND_ARM7_REGISTERS_H
diff --git a/arm7/lib/include/syscall.h b/arm7/lib/include/syscall.h
new file mode 100644
index 00000000..55462cc7
--- /dev/null
+++ b/arm7/lib/include/syscall.h
@@ -0,0 +1,6 @@
+#ifndef POKEDIAMOND_ARM7_SYSCALL_H
+#define POKEDIAMOND_ARM7_SYSCALL_H
+
+void SVC_WaitByLoop(u32 ct);
+
+#endif //POKEDIAMOND_ARM7_SYSCALL_H
diff --git a/arm7/lib/include/systemWork.h b/arm7/lib/include/systemWork.h
new file mode 100644
index 00000000..95a17845
--- /dev/null
+++ b/arm7/lib/include/systemWork.h
@@ -0,0 +1,7 @@
+#ifndef POKEDIAMOND_ARM7_SYSTEMWORK_H
+#define POKEDIAMOND_ARM7_SYSTEMWORK_H
+
+#include "OS_context.h"
+#include "nitro/OS_systemWork_shared.h"
+
+#endif //POKEDIAMOND_ARM7_SYSTEMWORK_H
diff --git a/arm7/lib/src/OS_init.c b/arm7/lib/src/OS_init.c
index 583bb75e..271d067b 100644
--- a/arm7/lib/src/OS_init.c
+++ b/arm7/lib/src/OS_init.c
@@ -2,8 +2,6 @@
#include "OS_init.h"
extern void PXI_Init(void);
-extern void OS_InitLock(void);
-extern void OS_InitIrqTable(void);
extern void OS_InitTick(void);
extern void OS_InitAlarm(void);
extern void OS_InitThread(void);
diff --git a/arm7/lib/src/OS_interrupt.c b/arm7/lib/src/OS_interrupt.c
new file mode 100644
index 00000000..e9fc3347
--- /dev/null
+++ b/arm7/lib/src/OS_interrupt.c
@@ -0,0 +1,106 @@
+#include "function_target.h"
+#include "consts.h"
+#include "OS_interrupt.h"
+#include "OS_thread.h"
+
+extern OSThreadQueue OSi_IrqThreadQueue;
+
+ARM_FUNC void OS_InitIrqTable(void)
+{
+ OS_InitThreadQueue(&OSi_IrqThreadQueue);
+
+ OSi_SetVBlankCount(0);
+}
+
+ARM_FUNC void OS_SetIrqFunction(OSIrqMask intrBit, OSIrqFunction function)
+{
+ s32 i;
+ OSIrqCallbackInfo *info;
+
+ for (i = 0; i < 25; i++)
+ {
+ if (intrBit & 1)
+ {
+ info = NULL;
+
+ if (8 <= i && i <= 11)
+ {
+ info = &OSi_IrqCallbackInfo[i - 8];
+ }
+ else if (3 <= i && i <= 6)
+ {
+ info = &OSi_IrqCallbackInfo[i - 3 + 4];
+ }
+ else if (0 == i)
+ {
+ info = &OSi_IrqCallbackInfo[8];
+ }
+ else
+ {
+ OS_IRQTable[i] = function;
+ }
+
+ if (info)
+ {
+ info->func = (void (*)(void *))function;
+ info->arg = 0;
+ info->enable = TRUE;
+ }
+ }
+ intrBit >>= 1;
+ }
+}
+
+ARM_FUNC void OSi_EnterTimerCallback(u32 timerNo, void (*callback) (void *), void *arg)
+{
+ OSIrqMask mask = 1UL << (timerNo + 3);
+ OSi_IrqCallbackInfo[timerNo + 4].func = callback;
+ OSi_IrqCallbackInfo[timerNo + 4].arg = arg;
+
+ (void)OS_EnableIrqMask(mask);
+ OSi_IrqCallbackInfo[timerNo + 4].enable = TRUE;
+}
+
+ARM_FUNC OSIrqMask OS_SetIrqMask(OSIrqMask mask)
+{
+ u16 regIme = reg_OS_IME;
+ reg_OS_IME = 0;
+ OSIrqMask regIe = reg_OS_IE;
+ reg_OS_IE = mask;
+ u16 unused = reg_OS_IME; //needed because otherwise it doesn't match
+ reg_OS_IME = regIme;
+ return regIe;
+}
+
+ARM_FUNC OSIrqMask OS_EnableIrqMask(OSIrqMask mask)
+{
+ u16 regIme = reg_OS_IME;
+ reg_OS_IME = 0;
+ OSIrqMask regIe = reg_OS_IE;
+ reg_OS_IE = regIe | mask;
+ u16 unused = reg_OS_IME;
+ reg_OS_IME = regIme;
+ return regIe;
+}
+
+ARM_FUNC OSIrqMask OS_DisableIrqMask(OSIrqMask mask)
+{
+ u16 regIme = reg_OS_IME;
+ reg_OS_IME = 0;
+ OSIrqMask regIe = reg_OS_IE;
+ reg_OS_IE = regIe & ~mask;
+ u16 unused = reg_OS_IME;
+ reg_OS_IME = regIme;
+ return regIe;
+}
+
+ARM_FUNC OSIrqMask OS_ResetRequestIrqMask(OSIrqMask mask)
+{
+ u16 regIme = reg_OS_IME;
+ reg_OS_IME = 0;
+ OSIrqMask regIf = reg_OS_IF;
+ reg_OS_IF = mask;
+ u16 unused = reg_OS_IME;
+ reg_OS_IME = regIme;
+ return regIf;
+}
diff --git a/arm7/lib/src/OS_reset.c b/arm7/lib/src/OS_reset.c
index c40fcff3..e0f380f8 100644
--- a/arm7/lib/src/OS_reset.c
+++ b/arm7/lib/src/OS_reset.c
@@ -1,6 +1,7 @@
#include "function_target.h"
#include "OS_reset.h"
#include "OS_interrupt.h"
+#include "OS_terminate_proc.h"
static u16 OSi_IsInitReset = 0;
vu16 OSi_IsResetOccurred = 0;
@@ -10,7 +11,6 @@ extern OSIrqMask OS_SetIrqMask(OSIrqMask mask);
extern OSIrqMask OS_ResetRequestIrqMask(OSIrqMask mask);
extern void SND_Shutdown(void);
extern void PXI_SetFifoRecvCallback(u32 param1, void* callback);
-extern void OS_Terminate(void);
extern u32 PXI_SendWordByFifo(u32 param1, u32 data, u32 param2);
extern void FUN_038073EC(void); //OSi_DoResetSystem, in wram
diff --git a/arm7/lib/src/OS_spinLock.c b/arm7/lib/src/OS_spinLock.c
new file mode 100644
index 00000000..2857de05
--- /dev/null
+++ b/arm7/lib/src/OS_spinLock.c
@@ -0,0 +1,192 @@
+#include "function_target.h"
+#include "OS_spinLock.h"
+#include "OS_system.h"
+#include "MI_swap.h"
+
+ARM_FUNC void OS_InitLock(void)
+{
+ static BOOL isInitialized = FALSE;
+
+ if (isInitialized)
+ return;
+ isInitialized = TRUE;
+
+ OSLockWord *lockp = (OSLockWord *)HW_INIT_LOCK_BUF;
+
+ lockp->extension = 0;
+ while (lockp->ownerID != 0x7f)
+ {
+ OSi_WaitByLoop();
+ }
+
+ ((u32 *)HW_LOCK_ID_FLAG_SUB)[0] = 0xffffffff;
+ ((u32 *)HW_LOCK_ID_FLAG_SUB)[1] = 0xffff0000;
+
+ lockp->extension = 0xbf;
+}
+
+ARM_FUNC void FUN_037F8CB4(s32 ct)
+{
+ SVC_WaitByLoop((u32)ct); //todo this should be linker generated, figure out why it broke
+}
+
+ARM_FUNC s32 OSi_DoLockByWord(u16 lockId, OSLockWord *lockp, void (*ctrlFuncp) (void),
+ BOOL disableFiq)
+{
+ s32 lastLockFlag;
+ while ((lastLockFlag = OSi_DoTryLockByWord(lockId, lockp, ctrlFuncp, disableFiq)) > 0) {
+ OSi_WaitByLoop();
+ }
+
+ return lastLockFlag;
+}
+
+ARM_FUNC s32 OSi_DoUnlockByWord(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (void),
+ BOOL disableFIQ)
+{
+ if (lockID != lockp->ownerID)
+ {
+ return -2;
+ }
+
+ OSIntrMode lastIntrMode = (disableFIQ) ? OS_DisableInterrupts_IrqAndFiq() : OS_DisableInterrupts();
+ lockp->ownerID = 0;
+ if (ctrlFuncp)
+ {
+ ctrlFuncp();
+ }
+ lockp->lockFlag = 0;
+ if (disableFIQ)
+ {
+ (void)OS_RestoreInterrupts_IrqAndFiq(lastIntrMode);
+ }
+ else
+ {
+ (void)OS_RestoreInterrupts(lastIntrMode);
+ }
+ return 0;
+}
+
+ARM_FUNC s32 OSi_DoTryLockByWord(u16 lockID, OSLockWord *lockp, void (*ctrlFuncp) (void),
+ BOOL disableFiq)
+{
+ OSIntrMode lastIntrMode = (disableFiq) ? OS_DisableInterrupts_IrqAndFiq() : OS_DisableInterrupts();
+
+ s32 lastLockFlag = (s32)MI_SwapWord(lockID, (u32 *)&lockp->lockFlag);
+
+ if (!lastLockFlag)
+ {
+ if (ctrlFuncp)
+ {
+ ctrlFuncp();
+ }
+ lockp->ownerID = lockID;
+ }
+
+ if (disableFiq)
+ {
+ (void)OS_RestoreInterrupts_IrqAndFiq(lastIntrMode);
+ }
+ else
+ {
+ (void)OS_RestoreInterrupts(lastIntrMode);
+ }
+
+ return lastLockFlag;
+}
+
+ARM_FUNC s32 OS_LockCartridge(u16 lockID)
+{
+ return OSi_DoLockByWord(lockID, (OSLockWord *)HW_CTRDG_LOCK_BUF, OSi_AllocateCartridgeBus, TRUE);
+}
+
+ARM_FUNC s32 OS_UnlockCartridge(u16 lockID)
+{
+ return OSi_DoUnlockByWord(lockID, (OSLockWord *)HW_CTRDG_LOCK_BUF, OSi_FreeCartridgeBus, TRUE);
+}
+
+ARM_FUNC s32 OS_TryLockCartridge(u16 lockID)
+{
+ return OSi_DoTryLockByWord(lockID, (OSLockWord *)HW_CTRDG_LOCK_BUF, OSi_AllocateCartridgeBus, TRUE);
+}
+
+ARM_FUNC void OSi_AllocateCartridgeBus(void)
+{
+ //noop
+}
+
+ARM_FUNC void OSi_FreeCartridgeBus(void)
+{
+ //noop
+}
+
+ARM_FUNC u16 OS_ReadOwnerOfLockWord(OSLockWord * lock)
+{
+ return lock->ownerID;
+}
+
+ARM_FUNC asm s32 OS_UnLockCartridge(u16 lockID)
+{
+ ldr r1, =OS_UnlockCartridge
+ bx r1
+}
+
+ARM_FUNC asm s32 OS_GetLockID(void)
+{
+ ldr r3, =HW_LOCK_ID_FLAG_SUB
+ ldr r1, [r3]
+ mov r2, #0
+ mov r0, #0x80000000
+_037F8A34:
+ tst r1, r0
+ bne _037F8A50
+ add r2, r2, #1
+ cmp r2, #32
+ beq _037F8A50
+ mov r0, r0, lsr #1
+ b _037F8A34
+_037F8A50:
+ cmp r2, #32
+ movne r0, #0x80
+ bne _037F8A98
+ add r3, r3, #4
+ ldr r1, [r3]
+ mov r2, #0
+ mov r0, #0x80000000
+_037F8A6C:
+ tst r1, r0
+ bne _037F8A88
+ add r2, r2, #1
+ cmp r2, #32
+ beq _037F8A88
+ mov r0, r0, lsr #1
+ b _037F8A6C
+_037F8A88:
+ cmp r2, #32
+ ldr r0, =0xFFFFFFFD
+ bxeq lr
+ mov r0, #160
+_037F8A98:
+ add r0, r0, r2
+ mov r1, #0x80000000
+ mov r1, r1, lsr r2
+ ldr r2, [r3]
+ bic r2, r2, r1
+ str r2, [r3]
+ bx lr
+}
+
+ARM_FUNC asm void OS_ReleaseLockID(register u16 lockID)
+{
+ ldr r3, =HW_LOCK_ID_FLAG_SUB
+ cmp r0, #0xa0
+ addpl r3, r3, #0x4
+ subpl r0, r0, #0xa0
+ submi r0, r0, #0x80
+ mov r1, #0x80000000
+ mov r1, r1, lsr r0
+ ldr r2, [r3, #0x0]
+ orr r2, r2, r1
+ str r2, [r3, #0x0]
+ bx lr
+}
diff --git a/arm7/lib/src/OS_system.c b/arm7/lib/src/OS_system.c
index 11417e91..503bd854 100644
--- a/arm7/lib/src/OS_system.c
+++ b/arm7/lib/src/OS_system.c
@@ -1,7 +1,6 @@
#include "function_target.h"
#include "OS_system.h"
-
-extern void FUN_037F8CB4(s32 count);
+#include "OS_spinLock.h"
ARM_FUNC asm OSIntrMode OS_EnableInterrupts(void)
{
diff --git a/arm7/lib/src/OS_terminate_proc.c b/arm7/lib/src/OS_terminate_proc.c
new file mode 100644
index 00000000..23793fd4
--- /dev/null
+++ b/arm7/lib/src/OS_terminate_proc.c
@@ -0,0 +1,17 @@
+#include "function_target.h"
+#include "nitro/types.h"
+#include "OS_terminate_proc.h"
+#include "OS_system.h"
+
+extern void CTRDG_VibPulseEdgeUpdate(u32 param);
+extern void FUN_037F8530(void); //SVC_Halt
+
+ARM_FUNC void OS_Terminate(void)
+{
+ CTRDG_VibPulseEdgeUpdate(0);
+ while (TRUE)
+ {
+ (void)OS_DisableInterrupts();
+ FUN_037F8530(); //SVC_Halt
+ }
+}
diff --git a/arm7/lib/src/OS_thread.c b/arm7/lib/src/OS_thread.c
new file mode 100644
index 00000000..be3f611d
--- /dev/null
+++ b/arm7/lib/src/OS_thread.c
@@ -0,0 +1,597 @@
+#include "OS_thread.h"
+#include "function_target.h"
+#include "OS_system.h"
+#include "consts.h"
+#include "OS_terminate_proc.h"
+#include "OS_mutex.h"
+#include "OS_alarm.h"
+#include "OS_context.h"
+#include "nitro/OS_systemWork_shared.h"
+#include "MI_memory.h"
+
+extern void SDK_SYS_STACKSIZE(void);
+extern void SDK_IRQ_STACKSIZE(void);
+
+u32 OSi_RescheduleCount = 0;
+
+void *OSi_StackForDestructor = NULL;
+
+OSThreadInfo OSi_ThreadInfo;
+
+BOOL OSi_IsThreadInitialized = FALSE;
+
+OSThread **OSi_CurrentThreadPtr = NULL;
+
+void *OSi_SystemCallbackInSwitchThread = NULL;
+
+static s32 OSi_ThreadIdCount = 0;
+
+OSThread OSi_LauncherThread;
+OSThread OSi_IdleThread;
+
+ARM_FUNC static s32 OSi_GetUnusedThreadId(void)
+{
+ return ++OSi_ThreadIdCount;
+}
+
+ARM_FUNC static void OSi_InsertLinkToQueue(OSThreadQueue *queue, OSThread *thread)
+{
+ OSThread *next = queue->head;
+
+ while (next && next->priority <= thread->priority)
+ {
+ if (next == thread)
+ return;
+ next = next->link.next;
+ }
+
+ if (!next)
+ {
+ OSThread *prev = queue->tail;
+
+ if (!prev)
+ {
+ queue->head = thread;
+ }
+ else
+ {
+ prev->link.next = thread;
+ }
+
+ thread->link.prev = prev;
+ thread->link.next = NULL;
+ queue->tail = thread;
+ }
+ else
+ {
+ OSThread *prev = next->link.prev;
+
+ if (!prev)
+ {
+ queue->head = thread;
+ }
+ else
+ {
+ prev->link.next = thread;
+ }
+
+ thread->link.prev = prev;
+ thread->link.next = next;
+ next->link.prev = thread;
+ }
+}
+
+ARM_FUNC static OSThread *OSi_RemoveLinkFromQueue(OSThreadQueue *queue)
+{
+ OSThread *thread = queue->head;
+
+ if (thread)
+ {
+ OSThread *next = thread->link.next;
+
+ queue->head = next;
+
+ if (next)
+ {
+ next->link.prev = NULL;
+ }
+ else
+ {
+ queue->tail = NULL;
+ thread->queue = NULL;
+ }
+ }
+
+ return thread;
+}
+
+ARM_FUNC static OSThread *OSi_RemoveSpecifiedLinkFromQueue(OSThreadQueue *queue, OSThread *thread)
+{
+ OSThread *queueHead = queue->head;
+
+ while (queueHead)
+ {
+ OSThread *next = queueHead->link.next;
+
+ if (queueHead == thread)
+ {
+ OSThread *prev = queueHead->link.prev;
+
+ if (queue->head == queueHead)
+ {
+ queue->head = next;
+ }
+ else
+ {
+ prev->link.next = next;
+ }
+
+ if (queue->tail == queueHead)
+ {
+ queue->tail = prev;
+ }
+ else
+ {
+ next->link.prev = prev;
+ }
+
+ break;
+ }
+
+ queueHead = next;
+ }
+
+ return queueHead;
+}
+
+ARM_FUNC OSMutex *OSi_RemoveMutexLinkFromQueue(OSMutexQueue *queue)
+{
+ OSMutex *mutexHead = queue->head;
+
+ if (mutexHead)
+ {
+ OSMutex *next = mutexHead->link.next;
+
+ queue->head = next;
+
+ if (next)
+ {
+ next->link.prev = NULL;
+ }
+ else
+ {
+ queue->tail = NULL;
+ }
+ }
+
+ return mutexHead;
+}
+
+ARM_FUNC static void OSi_InsertThreadToList(OSThread *thread)
+{
+ OSThread *t = OSi_ThreadInfo.list;
+ OSThread *pre = NULL;
+
+ while(t && t->priority < thread->priority)
+ {
+ pre = t;
+ t = t->next;
+ }
+
+ if (!pre)
+ {
+ thread->next = OSi_ThreadInfo.list;
+ OSi_ThreadInfo.list = thread;
+ }
+ else
+ {
+ thread->next = pre->next;
+ pre->next = thread;
+ }
+}
+
+ARM_FUNC static void OSi_RemoveThreadFromList(OSThread *thread)
+{
+ OSThread *t = OSi_ThreadInfo.list;
+ OSThread *pre = NULL;
+
+ while (t && t != thread)
+ {
+ pre = t;
+ t = t-> next;
+ }
+
+ if (!pre)
+ {
+ OSi_ThreadInfo.list = thread->next;
+ }
+ else
+ {
+ pre->next = thread->next;
+ }
+}
+
+ARM_FUNC static void OSi_RescheduleThread(void)
+{
+ if (OSi_RescheduleCount <= 0)
+ {
+ OSThreadInfo *info = &OSi_ThreadInfo;
+ if (info->irqDepth > 0 || OS_GetProcMode() == OS_PROCMODE_IRQ)
+ {
+ info->isNeedRescheduling = TRUE;
+ }
+ else
+ {
+ OSThread *currentThread = OSi_GetCurrentThread();
+ OSThread *nextThread = OS_SelectThread();
+
+ if (currentThread == nextThread || !nextThread)
+ return;
+
+ if (currentThread->state != OS_THREAD_STATE_TERMINATED
+ && OS_SaveContext(&currentThread->context))
+ return;
+
+ if (OSi_SystemCallbackInSwitchThread)
+ {
+ ((OSSwitchThreadCallback)OSi_SystemCallbackInSwitchThread) (currentThread, nextThread);
+ }
+
+ if (info->switchCallback)
+ {
+ ((OSSwitchThreadCallback)info->switchCallback) (currentThread, nextThread);
+ }
+
+ OS_SetCurrentThread(nextThread);
+
+ OS_LoadContext(&nextThread->context);
+ }
+ }
+}
+
+ARM_FUNC void OS_InitThread(void)
+{
+ if (OSi_IsThreadInitialized)
+ return;
+ OSi_IsThreadInitialized = TRUE;
+
+ OSi_CurrentThreadPtr = &(OSi_ThreadInfo.current);
+
+ OSi_LauncherThread.priority = OS_THREAD_LAUNCHER_PRIORITY;
+ OSi_LauncherThread.id = 0;
+ OSi_LauncherThread.state = OS_THREAD_STATE_READY;
+ OSi_LauncherThread.next = NULL;
+
+ OSi_LauncherThread.profiler = NULL;
+
+ OSi_ThreadInfo.list = &OSi_LauncherThread;
+
+ OS_SetCurrentThread(&OSi_LauncherThread);
+
+ void *stackLo = (((s32)SDK_SYS_STACKSIZE) <= 0) ?
+ (void *)((u32)HW_WRAM - (s32)SDK_SYS_STACKSIZE) :
+ (void *)((u32)(HW_PRV_WRAM_IRQ_STACK_END - (s32)SDK_IRQ_STACKSIZE) - (s32)SDK_SYS_STACKSIZE);
+
+ OSi_LauncherThread.stackBottom = (u32)(HW_PRV_WRAM_IRQ_STACK_END - (s32)SDK_IRQ_STACKSIZE);
+ OSi_LauncherThread.stackTop = (u32)stackLo;
+ OSi_LauncherThread.stackWarningOffset = 0;
+
+ //checksums
+ *(u32 *)(OSi_LauncherThread.stackBottom - sizeof(u32)) = 0xd73bfdf7UL;
+ *(u32 *)OSi_LauncherThread.stackTop = 0xfbdd37bbUL;
+
+ OS_InitThreadQueue(&OSi_LauncherThread.joinQueue);
+
+ OSi_ThreadInfo.isNeedRescheduling = FALSE;
+ OSi_ThreadInfo.irqDepth = 0;
+
+ OS_GetSystemWork()->threadinfo_subp = &OSi_ThreadInfo;
+
+ (void)OS_SetSwitchThreadCallback(NULL);
+}
+
+ARM_FUNC void OS_CreateThread(OSThread *thread, void (*func) (void *), void *arg, void *stack, u32 stackSize, u32 prio)
+{
+ OSIntrMode enable = OS_DisableInterrupts();
+
+ s32 index = OSi_GetUnusedThreadId();
+
+ thread->priority = prio;
+ thread->id = (u32)index;
+ thread->state = OS_THREAD_STATE_WAITING;
+
+ thread->profiler = NULL;
+
+ OSi_InsertThreadToList(thread);
+
+ thread->stackBottom = (u32)stack;
+ thread->stackTop = (u32)stack - stackSize;
+ thread->stackWarningOffset = 0;
+
+ *(u32 *)(thread->stackBottom - sizeof(u32)) = 0xd73bfdf7UL;
+ *(u32 *)thread->stackTop = 0xfbdd37bbUL;
+
+ OS_InitThreadQueue(&thread->joinQueue);
+
+ OS_InitContext(&thread->context, (u32)func, (u32)stack - 4);
+
+ thread->context.r[0] = (u32)arg;
+ thread->context.lr = (u32)OS_ExitThread;
+
+ MI_CpuClear32((void *)((u32)stack - stackSize + 4), stackSize - 8);
+
+ thread->mutex = NULL;
+ thread->mutexQueue.head = NULL;
+ thread->mutexQueue.tail = NULL;
+
+ OS_SetThreadDestructor(thread, NULL);
+
+ thread->queue = NULL;
+ thread->link.prev = thread->link.next = NULL;
+
+ MI_CpuClear32(&thread->specific[0], sizeof(void *) * OS_THREAD_SPECIFIC_MAX);
+
+ thread->alarmForSleep = NULL;
+
+ (void)OS_RestoreInterrupts(enable);
+}
+
+ARM_FUNC void OS_ExitThread(void)
+{
+ (void)OS_DisableInterrupts();
+ OSi_ExitThread_ArgSpecified(OS_GetCurrentThread(), 0);
+}
+
+ARM_FUNC static void OSi_ExitThread_ArgSpecified(OSThread *thread, void *arg)
+{
+ if (OSi_StackForDestructor)
+ {
+ OS_InitContext(&thread->context, (u32)OSi_ExitThread, (u32)OSi_StackForDestructor);
+ thread->context.r[0] = (u32)arg;
+ thread->context.cpsr |= HW_PSR_DISABLE_IRQ;
+ thread->state = OS_THREAD_STATE_READY;
+ OS_LoadContext(&thread->context);
+ }
+ else
+ {
+ OSi_ExitThread(arg);
+ }
+}
+
+ARM_FUNC static void OSi_ExitThread(void *arg)
+{
+ OSThread *currentThread = OSi_GetCurrentThread();
+ OSThreadDestructor destructor = currentThread->destructor;
+
+ if (destructor)
+ {
+ currentThread->destructor = NULL;
+ destructor(arg);
+ (void)OS_DisableInterrupts();
+ }
+
+ OSi_ExitThread_Destroy();
+}
+
+ARM_FUNC static void OSi_ExitThread_Destroy(void)
+{
+ OSThread *currentThread = OSi_GetCurrentThread();
+ (void)OS_DisableScheduler();
+
+ OSi_UnlockAllMutex(currentThread);
+
+ if (currentThread->queue)
+ {
+ (void)OSi_RemoveSpecifiedLinkFromQueue(currentThread->queue, currentThread);
+ }
+
+ OSi_RemoveThreadFromList(currentThread);
+
+ currentThread->state = OS_THREAD_STATE_TERMINATED;
+
+ OS_WakeupThread(&currentThread->joinQueue);
+
+ (void)OS_EnableScheduler();
+
+ OS_RescheduleThread();
+
+ OS_Terminate();
+}
+
+ARM_FUNC void OS_JoinThread(OSThread *thread)
+{
+ OSIntrMode enabled = OS_DisableInterrupts();
+
+ if (thread->state != OS_THREAD_STATE_TERMINATED)
+ {
+ OS_SleepThread(&thread->joinQueue);
+ }
+
+ (void)OS_RestoreInterrupts(enabled);
+}
+
+ARM_FUNC BOOL OS_IsThreadTerminated(const OSThread *thread)
+{
+ return (thread->state == OS_THREAD_STATE_TERMINATED) ? TRUE : FALSE;
+}
+
+ARM_FUNC void OS_SleepThread(OSThreadQueue *queue)
+{
+ OSIntrMode enabled = OS_DisableInterrupts();
+ OSThread *currentThread = OSi_GetCurrentThread();
+
+ if (queue)
+ {
+ currentThread->queue = queue;
+ OSi_InsertLinkToQueue(queue, currentThread);
+ }
+
+ currentThread->state = OS_THREAD_STATE_WAITING;
+ OSi_RescheduleThread();
+
+ (void)OS_RestoreInterrupts(enabled);
+}
+
+ARM_FUNC void OS_WakeupThread(OSThreadQueue *queue)
+{
+ OSIntrMode enabled = OS_DisableInterrupts();
+
+ if (queue->head)
+ {
+ while (queue->head)
+ {
+ OSThread *thread = OSi_RemoveLinkFromQueue(queue);
+
+ thread->state = OS_THREAD_STATE_READY;
+ thread->queue = NULL;
+ thread->link.prev = thread->link.next = NULL;
+ }
+
+ OS_InitThreadQueue(queue);
+ OSi_RescheduleThread();
+ }
+
+ (void)OS_RestoreInterrupts(enabled);
+}
+
+ARM_FUNC void OS_WakeupThreadDirect(OSThread *thread)
+{
+ OSIntrMode enabled = OS_DisableInterrupts();
+
+ thread->state = OS_THREAD_STATE_READY;
+ OSi_RescheduleThread();
+
+ (void)OS_RestoreInterrupts(enabled);
+}
+
+ARM_FUNC OSThread *OS_SelectThread(void)
+{
+ OSThread *thread = OSi_ThreadInfo.list;
+
+ while (thread && !OS_IsThreadRunnable(thread))
+ {
+ thread = thread->next;
+ }
+
+ return thread;
+}
+
+ARM_FUNC void OS_RescheduleThread(void)
+{
+ OSIntrMode enabled = OS_DisableInterrupts();
+ OSi_RescheduleThread();
+ (void)OS_RestoreInterrupts(enabled);
+}
+
+ARM_FUNC BOOL OS_SetThreadPriority(OSThread *thread, u32 prio)
+{
+ OSThread *t = OSi_ThreadInfo.list;
+ OSThread *pre = NULL;
+ OSIntrMode enabled = OS_DisableInterrupts();
+
+ while (t && t != thread)
+ {
+ pre = t;
+ t = t->next;
+ }
+
+ if (!t || t == &OSi_IdleThread)
+ {
+ (void)OS_RestoreInterrupts(enabled);
+ return FALSE;
+ }
+
+ if (t->priority != prio)
+ {
+ if (!pre)
+ {
+ OSi_ThreadInfo.list = thread->next;
+ }
+ else
+ {
+ pre->next = thread->next;
+ }
+
+ thread->priority = prio;
+ OSi_InsertThreadToList(thread);
+
+ OSi_RescheduleThread();
+ }
+
+ (void)OS_RestoreInterrupts(enabled);
+
+ return TRUE;
+}
+
+ARM_FUNC void OS_Sleep(u32 msec)
+{
+ OSAlarm alarm;
+
+ OS_CreateAlarm(&alarm);
+ OSThread *volatile p_thread = OSi_GetCurrentThread();
+ OSIntrMode enabled = OS_DisableInterrupts();
+
+ p_thread->alarmForSleep = &alarm;
+
+ OS_SetAlarm(&alarm, OS_MilliSecondsToTicks(msec), &OSi_SleepAlarmCallback,
+ (void*)&p_thread);
+ while (p_thread != NULL)
+ {
+ OS_SleepThread(NULL);
+ }
+ (void)OS_RestoreInterrupts(enabled);
+}
+
+ARM_FUNC static void OSi_SleepAlarmCallback(void *arg)
+{
+ OSThread **pp_thread = (OSThread **)arg;
+ OSThread *p_thread = *pp_thread;
+ *pp_thread = NULL;
+
+ p_thread->alarmForSleep = NULL;
+
+ OS_WakeupThreadDirect(p_thread);
+}
+
+ARM_FUNC OSSwitchThreadCallback OS_SetSwitchThreadCallback(OSSwitchThreadCallback callback)
+{
+ OSIntrMode enabled = OS_DisableInterrupts();
+ OSSwitchThreadCallback prev = OSi_ThreadInfo.switchCallback;
+ OSi_ThreadInfo.switchCallback = callback;
+
+ (void)OS_RestoreInterrupts(enabled);
+ return prev;
+}
+
+ARM_FUNC u32 OS_DisableScheduler(void)
+{
+ OSIntrMode enabled = OS_DisableInterrupts();
+ u32 count;
+
+ if (OSi_RescheduleCount < (u32)-1)
+ {
+ count = OSi_RescheduleCount++;
+ }
+ (void)OS_RestoreInterrupts(enabled);
+
+ return count;
+}
+
+ARM_FUNC u32 OS_EnableScheduler(void)
+{
+ OSIntrMode enabled = OS_DisableInterrupts();
+ u32 count = 0;
+
+ if (OSi_RescheduleCount > 0)
+ {
+ count = OSi_RescheduleCount--;
+ }
+ (void)OS_RestoreInterrupts(enabled);
+
+ return count;
+}
+
+ARM_FUNC void OS_SetThreadDestructor(OSThread *thread, OSThreadDestructor dtor)
+{
+ thread->destructor = dtor;
+}
diff --git a/arm9/Makefile b/arm9/Makefile
index 25999e21..cb8eba06 100644
--- a/arm9/Makefile
+++ b/arm9/Makefile
@@ -184,7 +184,7 @@ OBJCOPY := $(CROSS)objcopy
# ./tools/mwccarm/2.0/base/mwasmarm.exe -proc arm5te asm/arm9_thumb.s -o arm9.o
ASFLAGS = -proc arm5te -i ../include -i ..
-CFLAGS = -O4,p -proc arm946e -fp soft -lang c99 -Cpp_exceptions off -i ../include -ir ../include-mw -ir lib/include -interworking -DFS_IMPLEMENT -enum int -W all -D$(GAME_VERSION) -D$(GAME_LANGUAGE)
+CFLAGS = -O4,p -gccext,on -proc arm946e -fp soft -lang c99 -Cpp_exceptions off -i ../include -ir ../include-mw -ir lib/include -interworking -DFS_IMPLEMENT -enum int -W all -D$(GAME_VERSION) -D$(GAME_LANGUAGE)
CXXFLAGS = -O4,p -proc arm946e -fp soft -lang c99 -Cpp_exceptions off -i ../include -ir ../include-mw -ir lib/include -interworking -DFS_IMPLEMENT -enum int -W all -D$(GAME_VERSION) -D$(GAME_LANGUAGE)
LDFLAGS = -nodead -w off -proc v5te -interworking -map closure,unused -symtab sort -m _start
# LIBS := -Llib -lsyscall
@@ -305,7 +305,6 @@ DUMMY != mkdir -p $(ALL_DIRS)
%.pal: ;
# Included files
-baserom.%: ;
%.h: ;
%.inc: ;
diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf
index 9fb4de49..8150b54e 100644
--- a/arm9/arm9.lcf
+++ b/arm9/arm9.lcf
@@ -362,11 +362,11 @@ SECTIONS {
unk_020653EC.o (.text)
unk_02066840.o (.text)
pokemon.o (.text)
- unk_0206AB04.o (.text)
+ waza.o (.text)
unk_0206ABC4.o (.text)
unk_0206B16C.o (.text)
unk_0206B688.o (.text)
- unk_0206B8A4.o (.text)
+ party.o (.text)
unk_0206BB28.o (.text)
unk_0206BB5C.o (.text)
unk_0206BF90.o (.text)
@@ -400,7 +400,7 @@ SECTIONS {
unk_020842D0.o (.text)
unk_020842DC.o (.text)
unk_020851B8.o (.text)
- unk_02085258.o (.text)
+ nutdata.o (.text)
unk_02085338.o (.text)
unk_020854E0.o (.text)
unk_020859C0.o (.text)
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf
index dfb38bb4..e6a20bb8 100644
--- a/arm9/arm9.lsf
+++ b/arm9/arm9.lsf
@@ -242,11 +242,11 @@ Static arm9
Object unk_020653EC.o
Object unk_02066840.o
Object unk_02066978.o
- Object unk_0206AB04.o
+ Object waza.o
Object unk_0206ABC4.o
Object unk_0206B16C.o
Object unk_0206B688.o
- Object unk_0206B8A4.o
+ Object party.o
Object unk_0206BB28.o
Object unk_0206BB5C.o
Object unk_0206BF90.o
diff --git a/arm9/asm/OS_tick.s b/arm9/asm/OS_tick.s
deleted file mode 100644
index 3891f8c7..00000000
--- a/arm9/asm/OS_tick.s
+++ /dev/null
@@ -1,165 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .section .bss
-
- .global OSi_UseTick
-OSi_UseTick: ; 0x021D37AC
- .space 0x4
-
- .global OSi_NeedResetTimer
-OSi_NeedResetTimer: ; 0x021D37B0
- .space 0x4
-
- .global OSi_TickCounter
-OSi_TickCounter: ; 0x021D37B4
- .space 0x8
-
- .text
-
- arm_func_start OS_GetTickLo
-OS_GetTickLo: ; 0x020CCC0C
- ldr r0, _020CCC18 ; =0x04000100
- ldrh r0, [r0, #0x0]
- bx lr
- .balign 4
-_020CCC18: .word 0x04000100
-
- arm_func_start OS_GetTick
-OS_GetTick: ; 0x020CCC1C
- stmdb sp!, {lr}
- sub sp, sp, #0xc
- bl OS_DisableInterrupts
- ldr r1, _020CCCBC ; =0x04000100
- ldr r3, _020CCCC0 ; =OSi_TickCounter
- ldrh r12, [r1, #0x0]
- ldr r2, _020CCCC4 ; =0x0000FFFF
- mvn r1, #0x0
- strh r12, [sp, #0x0]
- ldr r12, [r3, #0x0]
- ldr r3, [r3, #0x4]
- and r1, r12, r1
- and r2, r3, r2
- str r1, [sp, #0x4]
- ldr r1, _020CCCC8 ; =0x04000214
- str r2, [sp, #0x8]
- ldr r1, [r1, #0x0]
- ands r1, r1, #0x8
- beq _020CCC90
- ldrh r1, [sp, #0x0]
- ands r1, r1, #0x8000
- bne _020CCC90
- ldr r3, [sp, #0x4]
- mov r1, #0x1
- ldr r2, [sp, #0x8]
- adds r3, r3, r1
- adc r1, r2, #0x0
- str r3, [sp, #0x4]
- str r1, [sp, #0x8]
-_020CCC90:
- bl OS_RestoreInterrupts
- ldr r2, [sp, #0x4]
- ldr r1, [sp, #0x8]
- ldrh r0, [sp, #0x0]
- mov r1, r1, lsl #0x10
- orr r1, r1, r2, lsr #0x10
- orr r1, r1, r0, asr #0x1f
- orr r0, r0, r2, lsl #0x10
- add sp, sp, #0xc
- ldmia sp!, {lr}
- bx lr
- .balign 4
-_020CCCBC: .word 0x04000100
-_020CCCC0: .word OSi_TickCounter
-_020CCCC4: .word 0x0000FFFF
-_020CCCC8: .word 0x04000214
-
- arm_func_start OSi_CountUpTick
-OSi_CountUpTick: ; 0x020CCCCC
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r2, _020CCD40 ; =OSi_TickCounter
- ldr r1, _020CCD44 ; =OSi_NeedResetTimer
- ldr r12, [r2, #0x0]
- mov r0, #0x1
- ldr r3, [r2, #0x4]
- adds r12, r12, r0
- ldr r0, [r1, #0x0]
- adc r3, r3, #0x0
- str r12, [r2, #0x0]
- str r3, [r2, #0x4]
- cmp r0, #0x0
- mov r3, #0x0
- beq _020CCD24
- ldr r2, _020CCD48 ; =0x04000102
- ldr r0, _020CCD4C ; =0x04000100
- strh r3, [r2, #0x0]
- strh r3, [r0, #0x0]
- mov r0, #0xc1
- strh r0, [r2, #0x0]
- str r3, [r1, #0x0]
-_020CCD24:
- mov r0, #0x0
- ldr r1, _020CCD50 ; =OSi_CountUpTick
- mov r2, r0
- bl OSi_EnterTimerCallback
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
- .balign 4
-_020CCD40: .word OSi_TickCounter
-_020CCD44: .word OSi_NeedResetTimer
-_020CCD48: .word 0x04000102
-_020CCD4C: .word 0x04000100
-_020CCD50: .word OSi_CountUpTick
-
- arm_func_start OS_IsTickAvailable
-OS_IsTickAvailable: ; 0x020CCD54
- ldr r0, _020CCD60 ; =OSi_UseTick
- ldrh r0, [r0, #0x0]
- bx lr
- .balign 4
-_020CCD60: .word OSi_UseTick
-
- arm_func_start OS_InitTick
-OS_InitTick: ; 0x020CCD64
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r1, _020CCDE8 ; =OSi_UseTick
- ldrh r0, [r1, #0x0]
- cmp r0, #0x0
- addne sp, sp, #0x4
- ldmneia sp!, {lr}
- bxne lr
- mov r2, #0x1
- mov r0, #0x0
- strh r2, [r1, #0x0]
- bl OSi_SetTimerReserved
- ldr r0, _020CCDEC ; =OSi_TickCounter
- mov r2, #0x0
- str r2, [r0, #0x0]
- ldr r3, _020CCDF0 ; =0x04000102
- str r2, [r0, #0x4]
- ldr r0, _020CCDF4 ; =0x04000100
- strh r2, [r3, #0x0]
- ldr r1, _020CCDF8 ; =OSi_CountUpTick
- strh r2, [r0, #0x0]
- mov r2, #0xc1
- mov r0, #0x8
- strh r2, [r3, #0x0]
- bl OS_SetIrqFunction
- mov r0, #0x8
- bl OS_EnableIrqMask
- ldr r0, _020CCDFC ; =OSi_NeedResetTimer
- mov r1, #0x0
- str r1, [r0, #0x0]
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
- .balign 4
-_020CCDE8: .word OSi_UseTick
-_020CCDEC: .word OSi_TickCounter
-_020CCDF0: .word 0x04000102
-_020CCDF4: .word 0x04000100
-_020CCDF8: .word OSi_CountUpTick
-_020CCDFC: .word OSi_NeedResetTimer
diff --git a/arm9/asm/math_util.s b/arm9/asm/math_util.s
deleted file mode 100644
index 81114ace..00000000
--- a/arm9/asm/math_util.s
+++ /dev/null
@@ -1,679 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .extern UNK_020FFA38
-
- .section .rodata
-
- .global UNK_020EDB80
-UNK_020EDB80: ; 0x020EDB80
- .short 0x169F, 0x0F14, 0x0B4F, 0x090C, 0x078A, 0x0676, 0x05A7, 0x0506
- .short 0x0486, 0x041C, 0x03C5, 0x037A, 0x033B, 0x0304, 0x02D3, 0x02A9
- .short 0x0283, 0x0261, 0x0243, 0x0227, 0x020E, 0x01F7, 0x01E2, 0x01CF
- .short 0x01BD, 0x01AC, 0x019D, 0x018F, 0x0182, 0x0175, 0x0169, 0x015E
- .short 0x0154, 0x014A, 0x0141, 0x0139, 0x0130, 0x0128, 0x0121, 0x011A
- .short 0x0113, 0x010D, 0x0107, 0x0101, 0x00FB, 0x00F6, 0x00F1, 0x00EC
- .short 0x00E7, 0x00E3, 0x00DE, 0x00DA, 0x00D6, 0x00D2, 0x00CE, 0x00CB
- .short 0x00C7, 0x00C4, 0x00C1, 0x00BD, 0x00BA, 0x00B7, 0x00B4, 0x00B2
- .short 0x00AF, 0x00AC, 0x00AA, 0x00A7, 0x00A5, 0x00A3, 0x00A0, 0x009E
- .short 0x009C, 0x009A, 0x0098, 0x0096, 0x0094, 0x0092, 0x0090, 0x008E
- .short 0x008D, 0x008B, 0x0089, 0x0088, 0x0086, 0x0085, 0x0083, 0x0082
- .short 0x0080, 0x007F, 0x007D, 0x007C, 0x007B, 0x0079, 0x0078, 0x0077
- .short 0x0076, 0x0074, 0x0073, 0x0072, 0x0071, 0x0070, 0x006F, 0x006E
- .short 0x006D, 0x006C, 0x006B, 0x006A, 0x0069, 0x0068, 0x0067, 0x0066
- .short 0x0065, 0x0064, 0x0063, 0x0062, 0x0062, 0x0061, 0x0060, 0x005F
- .short 0x005E, 0x005E, 0x005D, 0x005C, 0x005B, 0x005B, 0x005A
-
- .global UNK_020EDC7E
-UNK_020EDC7E: ; 0x020EDC7E
- .short 0x0000, 0x00B7, 0x016D, 0x0223, 0x02D9, 0x038F, 0x0445, 0x04FB
- .short 0x05B1, 0x0667, 0x071D, 0x07D3, 0x0889, 0x093F, 0x09F5, 0x0AAB
- .short 0x0B61, 0x0C17, 0x0CCD, 0x0D83, 0x0E39, 0x0EEF, 0x0FA5, 0x105C
- .short 0x1112, 0x11C8, 0x127E, 0x1334, 0x13EA, 0x14A0, 0x1556, 0x160C
- .short 0x16C2, 0x1778, 0x182E, 0x18E4, 0x199A, 0x1A50, 0x1B06, 0x1BBC
- .short 0x1C72, 0x1D28, 0x1DDE, 0x1E94, 0x1F4A, 0x2000, 0x20B7, 0x216D
- .short 0x2223, 0x22D9, 0x238F, 0x2445, 0x24FB, 0x25B1, 0x2667, 0x271D
- .short 0x27D3, 0x2889, 0x293F, 0x29F5, 0x2AAB, 0x2B61, 0x2C17, 0x2CCD
- .short 0x2D83, 0x2E39, 0x2EEF, 0x2FA5, 0x305C, 0x3112, 0x31C8, 0x327E
- .short 0x3334, 0x33EA, 0x34A0, 0x3556, 0x360C, 0x36C2, 0x3778, 0x382E
- .short 0x38E4, 0x399A, 0x3A50, 0x3B06, 0x3BBC, 0x3C72, 0x3D28, 0x3DDE
- .short 0x3E94, 0x3F4A, 0x4000, 0x40B7, 0x416D, 0x4223, 0x42D9, 0x438F
- .short 0x4445, 0x44FB, 0x45B1, 0x4667, 0x471D, 0x47D3, 0x4889, 0x493F
- .short 0x49F5, 0x4AAB, 0x4B61, 0x4C17, 0x4CCD, 0x4D83, 0x4E39, 0x4EEF
- .short 0x4FA5, 0x505C, 0x5112, 0x51C8, 0x527E, 0x5334, 0x53EA, 0x54A0
- .short 0x5556, 0x560C, 0x56C2, 0x5778, 0x582E, 0x58E4, 0x599A, 0x5A50
- .short 0x5B06, 0x5BBC, 0x5C72, 0x5D28, 0x5DDE, 0x5E94, 0x5F4A, 0x6000
- .short 0x60B7, 0x616D, 0x6223, 0x62D9, 0x638F, 0x6445, 0x64FB, 0x65B1
- .short 0x6667, 0x671D, 0x67D3, 0x6889, 0x693F, 0x69F5, 0x6AAB, 0x6B61
- .short 0x6C17, 0x6CCD, 0x6D83, 0x6E39, 0x6EEF, 0x6FA5, 0x705C, 0x7112
- .short 0x71C8, 0x727E, 0x7334, 0x73EA, 0x74A0, 0x7556, 0x760C, 0x76C2
- .short 0x7778, 0x782E, 0x78E4, 0x799A, 0x7A50, 0x7B06, 0x7BBC, 0x7C72
- .short 0x7D28, 0x7DDE, 0x7E94, 0x7F4A, 0x8000, 0x80B7, 0x816D, 0x8223
- .short 0x82D9, 0x838F, 0x8445, 0x84FB, 0x85B1, 0x8667, 0x871D, 0x87D3
- .short 0x8889, 0x893F, 0x89F5, 0x8AAB, 0x8B61, 0x8C17, 0x8CCD, 0x8D83
- .short 0x8E39, 0x8EEF, 0x8FA5, 0x905C, 0x9112, 0x91C8, 0x927E, 0x9334
- .short 0x93EA, 0x94A0, 0x9556, 0x960C, 0x96C2, 0x9778, 0x982E, 0x98E4
- .short 0x999A, 0x9A50, 0x9B06, 0x9BBC, 0x9C72, 0x9D28, 0x9DDE, 0x9E94
- .short 0x9F4A, 0xA000, 0xA0B7, 0xA16D, 0xA223, 0xA2D9, 0xA38F, 0xA445
- .short 0xA4FB, 0xA5B1, 0xA667, 0xA71D, 0xA7D3, 0xA889, 0xA93F, 0xA9F5
- .short 0xAAAB, 0xAB61, 0xAC17, 0xACCD, 0xAD83, 0xAE39, 0xAEEF, 0xAFA5
- .short 0xB05C, 0xB112, 0xB1C8, 0xB27E, 0xB334, 0xB3EA, 0xB4A0, 0xB556
- .short 0xB60C, 0xB6C2, 0xB778, 0xB82E, 0xB8E4, 0xB99A, 0xBA50, 0xBB06
- .short 0xBBBC, 0xBC72, 0xBD28, 0xBDDE, 0xBE94, 0xBF4A, 0xC000, 0xC0B7
- .short 0xC16D, 0xC223, 0xC2D9, 0xC38F, 0xC445, 0xC4FB, 0xC5B1, 0xC667
- .short 0xC71D, 0xC7D3, 0xC889, 0xC93F, 0xC9F5, 0xCAAB, 0xCB61, 0xCC17
- .short 0xCCCD, 0xCD83, 0xCE39, 0xCEEF, 0xCFA5, 0xD05C, 0xD112, 0xD1C8
- .short 0xD27E, 0xD334, 0xD3EA, 0xD4A0, 0xD556, 0xD60C, 0xD6C2, 0xD778
- .short 0xD82E, 0xD8E4, 0xD99A, 0xDA50, 0xDB06, 0xDBBC, 0xDC72, 0xDD28
- .short 0xDDDE, 0xDE94, 0xDF4A, 0xE000, 0xE0B7, 0xE16D, 0xE223, 0xE2D9
- .short 0xE38F, 0xE445, 0xE4FB, 0xE5B1, 0xE667, 0xE71D, 0xE7D3, 0xE889
- .short 0xE93F, 0xE9F5, 0xEAAB, 0xEB61, 0xEC17, 0xECCD, 0xED83, 0xEE39
- .short 0xEEEF, 0xEFA5, 0xF05C, 0xF112, 0xF1C8, 0xF27E, 0xF334, 0xF3EA
- .short 0xF4A0, 0xF556, 0xF60C, 0xF6C2, 0xF778, 0xF82E, 0xF8E4, 0xF99A
- .short 0xFA50, 0xFB06, 0xFBBC, 0xFC72, 0xFD28, 0xFDDE, 0xFE94, 0xFF4A
-
- .balign 4, 0
- .global UNK_020EDF50
-UNK_020EDF50: ; 0x020EDF50
- .word 0x00000000, 0x00000047, 0x0000008F, 0x000000D6
- .word 0x0000011E, 0x00000165, 0x000001AC, 0x000001F3
- .word 0x0000023A, 0x00000281, 0x000002C7, 0x0000030E
- .word 0x00000354, 0x00000399, 0x000003DF, 0x00000424
- .word 0x00000469, 0x000004AE, 0x000004F2, 0x00000536
- .word 0x00000579, 0x000005BC, 0x000005FE, 0x00000640
- .word 0x00000682, 0x000006C3, 0x00000704, 0x00000744
- .word 0x00000783, 0x000007C2, 0x00000800, 0x0000083E
- .word 0x0000087B, 0x000008B7, 0x000008F2, 0x0000092D
- .word 0x00000968, 0x000009A1, 0x000009DA, 0x00000A12
- .word 0x00000A49, 0x00000A7F, 0x00000AB5, 0x00000AE9
- .word 0x00000B1D, 0x00000B50, 0x00000B82, 0x00000BB4
- .word 0x00000BE4, 0x00000C13, 0x00000C42, 0x00000C6F
- .word 0x00000C9C, 0x00000CC7, 0x00000CF2, 0x00000D1B
- .word 0x00000D44, 0x00000D6B, 0x00000D92, 0x00000DB7
- .word 0x00000DDB, 0x00000DFE, 0x00000E21, 0x00000E42
- .word 0x00000E61, 0x00000E80, 0x00000E9E, 0x00000EBA
- .word 0x00000ED6, 0x00000EF0, 0x00000F09, 0x00000F21
- .word 0x00000F38, 0x00000F4D, 0x00000F61, 0x00000F74
- .word 0x00000F86, 0x00000F97, 0x00000FA6, 0x00000FB5
- .word 0x00000FC2, 0x00000FCE, 0x00000FD8, 0x00000FE1
- .word 0x00000FEA, 0x00000FF0, 0x00000FF6, 0x00000FFA
- .word 0x00000FFE, 0x00000FFF, 0x00001000, 0x00000FFF
- .word 0x00000FFE, 0x00000FFA, 0x00000FF6, 0x00000FF0
- .word 0x00000FEA, 0x00000FE1, 0x00000FD8, 0x00000FCE
- .word 0x00000FC2, 0x00000FB5, 0x00000FA6, 0x00000F97
- .word 0x00000F86, 0x00000F74, 0x00000F61, 0x00000F4D
- .word 0x00000F38, 0x00000F21, 0x00000F09, 0x00000EF0
- .word 0x00000ED6, 0x00000EBA, 0x00000E9E, 0x00000E80
- .word 0x00000E61, 0x00000E42, 0x00000E21, 0x00000DFE
- .word 0x00000DDB, 0x00000DB7, 0x00000D92, 0x00000D6B
- .word 0x00000D44, 0x00000D1B, 0x00000CF2, 0x00000CC7
- .word 0x00000C9C, 0x00000C6F, 0x00000C42, 0x00000C13
- .word 0x00000BE4, 0x00000BB4, 0x00000B82, 0x00000B50
- .word 0x00000B1D, 0x00000AE9, 0x00000AB5, 0x00000A7F
- .word 0x00000A49, 0x00000A12, 0x000009DA, 0x000009A1
- .word 0x00000968, 0x0000092D, 0x000008F2, 0x000008B7
- .word 0x0000087B, 0x0000083E, 0x00000800, 0x000007C2
- .word 0x00000783, 0x00000744, 0x00000704, 0x000006C3
- .word 0x00000682, 0x00000640, 0x000005FE, 0x000005BC
- .word 0x00000579, 0x00000536, 0x000004F2, 0x000004AE
- .word 0x00000469, 0x00000424, 0x000003DF, 0x00000399
- .word 0x00000354, 0x0000030E, 0x000002C7, 0x00000281
- .word 0x0000023A, 0x000001F3, 0x000001AC, 0x00000165
- .word 0x0000011E, 0x000000D6, 0x0000008F, 0x00000047
- .word 0x00000000, 0xFFFFFFB9, 0xFFFFFF71, 0xFFFFFF2A
- .word 0xFFFFFEE2, 0xFFFFFE9B, 0xFFFFFE54, 0xFFFFFE0D
- .word 0xFFFFFDC6, 0xFFFFFD7F, 0xFFFFFD39, 0xFFFFFCF2
- .word 0xFFFFFCAC, 0xFFFFFC67, 0xFFFFFC21, 0xFFFFFBDC
- .word 0xFFFFFB97, 0xFFFFFB52, 0xFFFFFB0E, 0xFFFFFACA
- .word 0xFFFFFA87, 0xFFFFFA44, 0xFFFFFA02, 0xFFFFF9C0
- .word 0xFFFFF97E, 0xFFFFF93D, 0xFFFFF8FC, 0xFFFFF8BC
- .word 0xFFFFF87D, 0xFFFFF83E, 0xFFFFF800, 0xFFFFF7C2
- .word 0xFFFFF785, 0xFFFFF749, 0xFFFFF70E, 0xFFFFF6D3
- .word 0xFFFFF698, 0xFFFFF65F, 0xFFFFF626, 0xFFFFF5EE
- .word 0xFFFFF5B7, 0xFFFFF581, 0xFFFFF54B, 0xFFFFF517
- .word 0xFFFFF4E3, 0xFFFFF4B0, 0xFFFFF47E, 0xFFFFF44C
- .word 0xFFFFF41C, 0xFFFFF3ED, 0xFFFFF3BE, 0xFFFFF391
- .word 0xFFFFF364, 0xFFFFF339, 0xFFFFF30E, 0xFFFFF2E5
- .word 0xFFFFF2BC, 0xFFFFF295, 0xFFFFF26E, 0xFFFFF249
- .word 0xFFFFF225, 0xFFFFF202, 0xFFFFF1DF, 0xFFFFF1BE
- .word 0xFFFFF19F, 0xFFFFF180, 0xFFFFF162, 0xFFFFF146
- .word 0xFFFFF12A, 0xFFFFF110, 0xFFFFF0F7, 0xFFFFF0DF
- .word 0xFFFFF0C8, 0xFFFFF0B3, 0xFFFFF09F, 0xFFFFF08C
- .word 0xFFFFF07A, 0xFFFFF069, 0xFFFFF05A, 0xFFFFF04B
- .word 0xFFFFF03E, 0xFFFFF032, 0xFFFFF028, 0xFFFFF01F
- .word 0xFFFFF016, 0xFFFFF010, 0xFFFFF00A, 0xFFFFF006
- .word 0xFFFFF002, 0xFFFFF001, 0xFFFFF000, 0xFFFFF001
- .word 0xFFFFF002, 0xFFFFF006, 0xFFFFF00A, 0xFFFFF010
- .word 0xFFFFF016, 0xFFFFF01F, 0xFFFFF028, 0xFFFFF032
- .word 0xFFFFF03E, 0xFFFFF04B, 0xFFFFF05A, 0xFFFFF069
- .word 0xFFFFF07A, 0xFFFFF08C, 0xFFFFF09F, 0xFFFFF0B3
- .word 0xFFFFF0C8, 0xFFFFF0DF, 0xFFFFF0F7, 0xFFFFF110
- .word 0xFFFFF12A, 0xFFFFF146, 0xFFFFF162, 0xFFFFF180
- .word 0xFFFFF19F, 0xFFFFF1BE, 0xFFFFF1DF, 0xFFFFF202
- .word 0xFFFFF225, 0xFFFFF249, 0xFFFFF26E, 0xFFFFF295
- .word 0xFFFFF2BC, 0xFFFFF2E5, 0xFFFFF30E, 0xFFFFF339
- .word 0xFFFFF364, 0xFFFFF391, 0xFFFFF3BE, 0xFFFFF3ED
- .word 0xFFFFF41C, 0xFFFFF44C, 0xFFFFF47E, 0xFFFFF4B0
- .word 0xFFFFF4E3, 0xFFFFF517, 0xFFFFF54B, 0xFFFFF581
- .word 0xFFFFF5B7, 0xFFFFF5EE, 0xFFFFF626, 0xFFFFF65F
- .word 0xFFFFF698, 0xFFFFF6D3, 0xFFFFF70E, 0xFFFFF749
- .word 0xFFFFF785, 0xFFFFF7C2, 0xFFFFF800, 0xFFFFF83E
- .word 0xFFFFF87D, 0xFFFFF8BC, 0xFFFFF8FC, 0xFFFFF93D
- .word 0xFFFFF97E, 0xFFFFF9C0, 0xFFFFFA02, 0xFFFFFA44
- .word 0xFFFFFA87, 0xFFFFFACA, 0xFFFFFB0E, 0xFFFFFB52
- .word 0xFFFFFB97, 0xFFFFFBDC, 0xFFFFFC21, 0xFFFFFC67
- .word 0xFFFFFCAC, 0xFFFFFCF2, 0xFFFFFD39, 0xFFFFFD7F
- .word 0xFFFFFDC6, 0xFFFFFE0D, 0xFFFFFE54, 0xFFFFFE9B
- .word 0xFFFFFEE2, 0xFFFFFF2A, 0xFFFFFF71, 0xFFFFFFB9
- .word 0x00000000, 0x00000047, 0x0000008F, 0x000000D6
- .word 0x0000011E, 0x00000165, 0x000001AC, 0x000001F3
- .word 0x0000023A, 0x00000281, 0x000002C7, 0x0000030E
- .word 0x00000354, 0x00000399, 0x000003DF, 0x00000424
- .word 0x00000469, 0x000004AE, 0x000004F2, 0x00000536
- .word 0x00000579, 0x000005BC, 0x000005FE, 0x00000640
- .word 0x00000682, 0x000006C3, 0x00000704, 0x00000744
- .word 0x00000783, 0x000007C2, 0x00000800, 0x0000083E
- .word 0x0000087B, 0x000008B7, 0x000008F2, 0x0000092D
- .word 0x00000968, 0x000009A1, 0x000009DA, 0x00000A12
- .word 0x00000A49, 0x00000A7F, 0x00000AB5, 0x00000AE9
- .word 0x00000B1D, 0x00000B50, 0x00000B82, 0x00000BB4
- .word 0x00000BE4, 0x00000C13, 0x00000C42, 0x00000C6F
- .word 0x00000C9C, 0x00000CC7, 0x00000CF2, 0x00000D1B
- .word 0x00000D44, 0x00000D6B, 0x00000D92, 0x00000DB7
- .word 0x00000DDB, 0x00000DFE, 0x00000E21, 0x00000E42
- .word 0x00000E61, 0x00000E80, 0x00000E9E, 0x00000EBA
- .word 0x00000ED6, 0x00000EF0, 0x00000F09, 0x00000F21
- .word 0x00000F38, 0x00000F4D, 0x00000F61, 0x00000F74
- .word 0x00000F86, 0x00000F97, 0x00000FA6, 0x00000FB5
- .word 0x00000FC2, 0x00000FCE, 0x00000FD8, 0x00000FE1
- .word 0x00000FEA, 0x00000FF0, 0x00000FF6, 0x00000FFA
- .word 0x00000FFE, 0x00000FFF
-
- .section .data
-
- .global UNK_02105BA8
-UNK_02105BA8: ; 0x02105BA8
- .byte 0x71, 0x02, 0x00, 0x00
-
- .global UNK_02105BAC
-UNK_02105BAC: ; 0x02105BAC
- .byte 0x00, 0x00, 0x00, 0x00, 0xDF, 0xB0, 0x08, 0x99
-
- .section .bss
-
- .global gLCRNG_State
-gLCRNG_State: ; 0x021C4D48
- .space 4
-
- .global gMTRNG_State
-gMTRNG_State: ; 0x021C4D4C
- .space 624 * 4
-
- .text
-
- thumb_func_start FUN_0201B93C
-FUN_0201B93C: ; 0x0201B93C
- mov r1, #0x5a
- lsl r1, r1, #0x2
- cmp r0, r1
- blo _0201B948
- mov r0, #0x0
- bx lr
-_0201B948:
- lsl r1, r0, #0x2
- ldr r0, _0201B950 ; =UNK_020EDF50
- ldr r0, [r0, r1]
- bx lr
- .balign 4
-_0201B950: .word UNK_020EDF50
-
- thumb_func_start FUN_0201B954
-FUN_0201B954: ; 0x0201B954
- mov r1, #0x5a
- lsl r1, r1, #0x2
- cmp r0, r1
- blo _0201B960
- mov r0, #0x0
- bx lr
-_0201B960:
- add r0, #0x5a
- lsl r1, r0, #0x2
- ldr r0, _0201B96C ; =UNK_020EDF50
- ldr r0, [r0, r1]
- bx lr
- nop
-_0201B96C: .word UNK_020EDF50
-
- thumb_func_start FUN_0201B970
-FUN_0201B970: ; 0x0201B970
- ; gSineTable[x % 360]
- push {r3, lr}
- mov r1, #0x5a
- lsl r1, r1, #0x2
- bl _s32_div_f
- ldr r0, _0201B984 ; =UNK_020EDF50
- lsl r1, r1, #0x2
- ldr r0, [r0, r1]
- pop {r3, pc}
- nop
-_0201B984: .word UNK_020EDF50
-
- thumb_func_start FUN_0201B988
-FUN_0201B988: ; 0x0201B988
- ; gSineTable[(x % 360) + 90]
- push {r3, lr}
- mov r1, #0x5a
- lsl r1, r1, #0x2
- bl _s32_div_f
- add r1, #0x5a
- ldr r0, _0201B99C ; =UNK_020EDF50
- lsl r1, r1, #0x2
- ldr r0, [r0, r1]
- pop {r3, pc}
- .balign 4
-_0201B99C: .word UNK_020EDF50
-
- thumb_func_start FUN_0201B9A0
-FUN_0201B9A0: ; 0x0201B9A0
- ; UNK_020EDC7E[x % 360]
- push {r3, lr}
- mov r1, #0x5a
- lsl r1, r1, #0x2
- bl _s32_div_f
- ldr r0, _0201B9B4 ; =UNK_020EDC7E
- lsl r1, r1, #0x1
- ldrh r0, [r0, r1]
- pop {r3, pc}
- nop
-_0201B9B4: .word UNK_020EDC7E
-
- thumb_func_start FUN_0201B9B8
-FUN_0201B9B8: ; 0x0201B9B8
- ; gSineTable[((x << 4) >> 16) % 360]
- push {r3, lr}
- lsl r0, r0, #0x4
- mov r1, #0x5a
- lsr r0, r0, #0x10
- lsl r1, r1, #0x2
- bl _s32_div_f
- ldr r0, _0201B9D0 ; =UNK_020EDF50
- lsl r1, r1, #0x2
- ldr r0, [r0, r1]
- pop {r3, pc}
- nop
-_0201B9D0: .word UNK_020EDF50
-
- thumb_func_start getseed_LC
-getseed_LC: ; 0x0201B9D4
- ldr r0, _0201B9DC ; =gLCRNG_State
- ldr r0, [r0, #0x0]
- bx lr
- nop
-_0201B9DC: .word gLCRNG_State
-
- thumb_func_start seedr_LC
-seedr_LC: ; 0x0201B9E0
- ldr r1, _0201B9E8 ; =gLCRNG_State
- str r0, [r1, #0x0]
- bx lr
- nop
-_0201B9E8: .word gLCRNG_State
-
- thumb_func_start rand_LC
-rand_LC: ; 0x0201B9EC
- ldr r1, _0201BA04 ; =gLCRNG_State
- ldr r0, _0201BA08 ; =0x41C64E6D
- ldr r2, [r1, #0x0]
- add r3, r2, #0x0
- mul r3, r0
- ldr r0, _0201BA0C ; =0x00006073
- add r0, r3, r0
- str r0, [r1, #0x0]
- lsr r0, r0, #0x10
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bx lr
- .balign 4
-_0201BA04: .word gLCRNG_State
-_0201BA08: .word 0x41C64E6D
-_0201BA0C: .word 0x00006073
-
- thumb_func_start rand_ALT
-rand_ALT: ; 0x0201BA10
- ldr r1, _0201BA18 ; =0x6C078965
- mul r1, r0
- add r0, r1, #0x1
- bx lr
- .balign 4
-_0201BA18: .word 0x6C078965
-
- thumb_func_start seedr_MT
-seedr_MT: ; 0x0201BA1C
- push {r4-r5}
- ldr r1, _0201BA50 ; =gLCRNG_State
- mov r4, #0x27
- str r0, [r1, #0x4]
- ldr r1, _0201BA54 ; =UNK_02105BA8
- mov r0, #0x1
- str r0, [r1, #0x0]
- ldr r1, _0201BA58 ; =gMTRNG_State + 4
- ldr r3, _0201BA5C ; =0x6C078965
- lsl r4, r4, #0x4
-_0201BA30:
- sub r2, r1, #0x4
- ldr r5, [r2, #0x0]
- lsr r2, r5, #0x1e
- eor r2, r5
- add r5, r2, #0x0
- mul r5, r3
- add r2, r0, r5
- add r0, r0, #0x1
- stmia r1!, {r2}
- cmp r0, r4
- blt _0201BA30
- ldr r1, _0201BA54 ; =UNK_02105BA8
- str r0, [r1, #0x0]
- pop {r4-r5}
- bx lr
- nop
-_0201BA50: .word gLCRNG_State
-_0201BA54: .word UNK_02105BA8
-_0201BA58: .word gMTRNG_State + 4
-_0201BA5C: .word 0x6C078965
-
- thumb_func_start rand_MT
-rand_MT: ; 0x0201BA60
- push {r3-r7, lr}
- ldr r0, _0201BB44 ; =UNK_02105BA8
- ldr r1, [r0, #0x0]
- mov r0, #0x27
- lsl r0, r0, #0x4
- cmp r1, r0
- blt _0201BB18
- add r0, r0, #0x1
- cmp r1, r0
- bne _0201BA7A
- ldr r0, _0201BB48 ; =0x00001571
- bl seedr_MT
-_0201BA7A:
- ldr r4, _0201BB4C ; =gMTRNG_State
- ldr r1, _0201BB50 ; =UNK_02105BAC
- ldr r5, _0201BB54 ; =0x7FFFFFFF
- ldr r6, _0201BB58 ; =0x00000634
- mov r0, #0x0
-_0201BA84:
- mov r2, #0x2
- ldr r3, [r4, #0x0]
- lsl r2, r2, #0x1e
- and r3, r2
- ldr r2, [r4, #0x4]
- add r0, r0, #0x1
- and r2, r5
- orr r3, r2
- lsr r7, r3, #0x1
- lsl r3, r3, #0x1f
- ldr r2, [r4, r6]
- lsr r3, r3, #0x1d
- ldr r3, [r1, r3]
- eor r2, r7
- eor r2, r3
- stmia r4!, {r2}
- cmp r0, #0xe3
- blt _0201BA84
- ldr r1, _0201BB5C ; =0x0000026F
- cmp r0, r1
- bge _0201BAE4
- ldr r2, _0201BB4C ; =gMTRNG_State
- lsl r1, r0, #0x2
- add r1, r2, r1
- mov r2, #0xe3
- ldr r4, _0201BB50 ; =UNK_02105BAC
- ldr r3, _0201BB5C ; =0x0000026F
- lsl r2, r2, #0x2
-_0201BABC:
- mov r5, #0x2
- ldr r6, [r1, #0x0]
- lsl r5, r5, #0x1e
- and r5, r6
- ldr r7, [r1, #0x4]
- ldr r6, _0201BB54 ; =0x7FFFFFFF
- add r0, r0, #0x1
- and r6, r7
- orr r6, r5
- lsr r5, r6, #0x1
- sub r7, r1, r2
- lsl r6, r6, #0x1f
- ldr r7, [r7, #0x0]
- lsr r6, r6, #0x1d
- ldr r6, [r4, r6]
- eor r5, r7
- eor r5, r6
- stmia r1!, {r5}
- cmp r0, r3
- blt _0201BABC
-_0201BAE4:
- ldr r2, _0201BB60 ; =gMTRNG_State + 607 * 4
- mov r0, #0x2
- ldr r1, [r2, #0x40]
- lsl r0, r0, #0x1e
- add r3, r1, #0x0
- ldr r1, _0201BB64 ; =gLCRNG_State
- and r3, r0
- ldr r1, [r1, #0x4]
- sub r0, r0, #0x1
- and r0, r1
- add r4, r3, #0x0
- orr r4, r0
- ldr r0, _0201BB68 ; =gMTRNG_State + 383 * 4
- ldr r1, [r0, #0x34]
- lsr r0, r4, #0x1
- add r3, r1, #0x0
- eor r3, r0
- lsl r0, r4, #0x1f
- lsr r1, r0, #0x1d
- ldr r0, _0201BB50 ; =UNK_02105BAC
- ldr r0, [r0, r1]
- mov r1, #0x0
- eor r0, r3
- str r0, [r2, #0x40]
- ldr r0, _0201BB44 ; =UNK_02105BA8
- str r1, [r0, #0x0]
-_0201BB18:
- ldr r0, _0201BB44 ; =UNK_02105BA8
- ldr r2, [r0, #0x0]
- add r1, r2, #0x1
- str r1, [r0, #0x0]
- ldr r0, _0201BB4C ; =gMTRNG_State
- lsl r1, r2, #0x2
- ldr r1, [r0, r1]
- lsr r0, r1, #0xb
- add r2, r1, #0x0
- eor r2, r0
- ldr r0, _0201BB6C ; =0x9D2C5680
- lsl r1, r2, #0x7
- and r0, r1
- eor r2, r0
- ldr r0, _0201BB70 ; =0xEFC60000
- lsl r1, r2, #0xf
- and r0, r1
- add r1, r2, #0x0
- eor r1, r0
- lsr r0, r1, #0x12
- eor r0, r1
- pop {r3-r7, pc}
- .balign 4
-_0201BB44: .word UNK_02105BA8
-_0201BB48: .word 0x00001571
-_0201BB4C: .word gMTRNG_State
-_0201BB50: .word UNK_02105BAC
-_0201BB54: .word 0x7FFFFFFF
-_0201BB58: .word 0x00000634
-_0201BB5C: .word 0x0000026F
-_0201BB60: .word gMTRNG_State + 607 * 4
-_0201BB64: .word gLCRNG_State
-_0201BB68: .word gMTRNG_State + 383 * 4
-_0201BB6C: .word 0x9D2C5680
-_0201BB70: .word 0xEFC60000
-
- thumb_func_start FUN_0201BB74
-FUN_0201BB74: ; 0x0201BB74
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r0, sp, #0x0
- ldrb r0, [r0, #0x10]
- add r4, r2, #0x0
- add r6, r3, #0x0
- cmp r0, #0x1
- bne _0201BB8E
- ldr r0, _0201BBC8 ; =0x0000FFFF
- mul r0, r1
- lsl r0, r0, #0x8
- lsr r1, r0, #0x10
- b _0201BBA2
-_0201BB8E:
- cmp r0, #0x2
- bne _0201BBA2
- ldr r0, _0201BBC8 ; =0x0000FFFF
- mul r0, r1
- mov r1, #0x5a
- lsl r1, r1, #0x2
- bl _u32_div_f
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
-_0201BBA2:
- asr r0, r1, #0x4
- lsl r3, r0, #0x1
- lsl r1, r3, #0x1
- ldr r2, _0201BBCC ; =UNK_020FFA38
- add r3, r3, #0x1
- lsl r3, r3, #0x1
- ldrsh r1, [r2, r1]
- ldrsh r2, [r2, r3]
- add r0, r5, #0x0
- bl MTX_Rot22_
- add r0, r5, #0x0
- add r1, r5, #0x0
- add r2, r4, #0x0
- add r3, r6, #0x0
- bl MTX_ScaleApply22
- pop {r4-r6, pc}
- nop
-_0201BBC8: .word 0x0000FFFF
-_0201BBCC: .word UNK_020FFA38
-
- thumb_func_start FUN_0201BBD0
-FUN_0201BBD0: ; 0x0201BBD0
- push {r3-r7, lr}
- sub sp, #0x38
- lsl r5, r0, #0xc
- lsl r4, r1, #0xc
- mov r1, #0x0
- lsl r0, r2, #0xc
- lsl r6, r3, #0xc
- str r1, [sp, #0x34]
- str r0, [sp, #0x0]
- str r0, [sp, #0x20]
- str r1, [sp, #0x28]
- str r1, [sp, #0x8]
- str r1, [sp, #0xc]
- asr r1, r5, #0x1f
- add r0, r5, #0x0
- asr r3, r6, #0x1f
- add r2, r6, #0x0
- str r5, [sp, #0x2c]
- str r4, [sp, #0x30]
- str r6, [sp, #0x24]
- bl _ll_mul
- str r0, [sp, #0x4]
- add r2, r4, #0x0
- ldr r0, [sp, #0x20]
- add r7, r1, #0x0
- asr r1, r0, #0x1f
- asr r3, r2, #0x1f
- bl _ll_mul
- mov r2, #0x2
- ldr r3, [sp, #0x4]
- lsl r2, r2, #0xa
- add r3, r3, r2
- ldr r2, _0201BC80 ; =0x00000000
- str r4, [sp, #0x2c]
- adc r7, r2
- lsl r2, r7, #0x14
- lsr r3, r3, #0xc
- orr r3, r2
- mov r2, #0x2
- lsl r2, r2, #0xa
- add r0, r0, r2
- ldr r2, _0201BC80 ; =0x00000000
- str r5, [sp, #0x30]
- adc r1, r2
- lsl r1, r1, #0x14
- lsr r0, r0, #0xc
- orr r0, r1
- sub r2, r3, r0
- ldr r1, [sp, #0x8]
- ldr r0, [sp, #0xc]
- str r2, [sp, #0x10]
- add r0, r1, r0
- add r7, r2, r0
- mov r0, #0x0
- str r0, [sp, #0x34]
- add r0, sp, #0x2c
- add r1, sp, #0x14
- bl VEC_Normalize
- mov r1, #0x0
- ldr r0, [sp, #0x0]
- str r1, [sp, #0x34]
- str r0, [sp, #0x20]
- str r1, [sp, #0x28]
- add r0, sp, #0x20
- add r1, sp, #0x2c
- add r2, sp, #0x8
- str r5, [sp, #0x2c]
- str r4, [sp, #0x30]
- str r6, [sp, #0x24]
- bl VEC_Subtract
- add r0, sp, #0x14
- add r1, sp, #0x8
- bl VEC_DotProduct
- asr r0, r0, #0xc
- bpl _0201BC72
- neg r0, r0
-_0201BC72:
- cmp r7, #0x0
- bgt _0201BC7C
- mov r1, #0x0
- mvn r1, r1
- mul r0, r1
-_0201BC7C:
- add sp, #0x38
- pop {r3-r7, pc}
- .balign 4
-_0201BC80: .word 0x00000000
-
- thumb_func_start FUN_0201BC84
-FUN_0201BC84: ; 0x0201BC84
- push {r3-r5, lr}
- lsl r0, r0, #0xd
- add r4, r1, #0x0
- ldr r2, _0201BCB4 ; =0x0000323D
- asr r1, r0, #0x1f
- mov r3, #0x0
- bl _ll_mul
- add r5, r0, #0x0
- ldr r0, _0201BCB8 ; =0x0000FFFF
- mov r2, #0x2
- mov r3, #0x0
- lsl r2, r2, #0xa
- mul r0, r4
- add r2, r5, r2
- adc r1, r3
- lsl r1, r1, #0x14
- lsr r2, r2, #0xc
- orr r2, r1
- asr r1, r2, #0xc
- bl _s32_div_f
- pop {r3-r5, pc}
- nop
-_0201BCB4: .word 0x0000323D
-_0201BCB8: .word 0x0000FFFF
diff --git a/arm9/asm/pokemon.s b/arm9/asm/pokemon.s
deleted file mode 100644
index 3bfbd197..00000000
--- a/arm9/asm/pokemon.s
+++ /dev/null
@@ -1,9049 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
- .include "constants/species.h"
-
- .extern gGameLanguage
- .extern gGameVersion
-
- .section .rodata
-
- .global sItemOdds
-sItemOdds: ; 0x020F7ECC
- .short 0x002D, 0x005F
- .short 0x0014, 0x0050
-
- .global sFriendshipModTable
-sFriendshipModTable: ; 0x020F7ED4
- .byte 5, 3, 2
- .byte 5, 3, 2
- .byte 1, 1, 0
- .byte 3, 2, 1
- .byte 1, 1, 0
- .byte 1, 1, 1
- .byte -1, -1, -1
- .byte -5, -5, -10
- .byte -5, -5, -10
- .byte 3, 2, 1
-
- .global sLegendaryMonsList
-sLegendaryMonsList: ; 0x020F7EF2
- .short SPECIES_MEWTWO
- .short SPECIES_MEW
- .short SPECIES_HO_OH
- .short SPECIES_LUGIA
- .short SPECIES_CELEBI
- .short SPECIES_KYOGRE
- .short SPECIES_GROUDON
- .short SPECIES_RAYQUAZA
- .short SPECIES_JIRACHI
- .short SPECIES_DEOXYS
- .short SPECIES_DIALGA
- .short SPECIES_PALKIA
- .short SPECIES_GIRATINA
- .short SPECIES_PHIONE
- .short SPECIES_MANAPHY
- .short SPECIES_DARKRAI
- .short SPECIES_SHAYMIN
- .short SPECIES_ARCEUS
-
- .global UNK_020F7F16
-UNK_020F7F16: ; 0x020F7F16
- .byte 0, 0, 0, 0, 0
- .byte 1, 0, 0, 0, -1
- .byte 1, 0, -1, 0, 0
- .byte 1, -1, 0, 0, 0
- .byte 1, 0, 0, -1, 0
- .byte -1, 0, 0, 0, 1
- .byte 0, 0, 0, 0, 0
- .byte 0, 0, -1, 0, 1
- .byte 0, -1, 0, 0, 1
- .byte 0, 0, 0, -1, 1
- .byte -1, 0, 1, 0, 0
- .byte 0, 0, 1, 0, -1
- .byte 0, 0, 0, 0, 0
- .byte 0, -1, 1, 0, 0
- .byte 0, 0, 1, -1, 0
- .byte -1, 1, 0, 0, 0
- .byte 0, 1, 0, 0, -1
- .byte 0, 1, -1, 0, 0
- .byte 0, 0, 0, 0, 0
- .byte 0, 1, 0, -1, 0
- .byte -1, 0, 0, 1, 0
- .byte 0, 0, 0, 1, -1
- .byte 0, 0, -1, 1, 0
- .byte 0, -1, 0, 1, 0
- .byte 0, 0, 0, 0, 0
-
- .global sNatureStatMods
-sNatureStatMods: ; 0x020F7F93
- .byte 0, 0, 0, 0, 0
- .byte 1, -1, 0, 0, 0
- .byte 1, 0, -1, 0, 0
- .byte 1, 0, 0, -1, 0
- .byte 1, 0, 0, 0, -1
- .byte -1, 1, 0, 0, 0
- .byte 0, 0, 0, 0, 0
- .byte 0, 1, -1, 0, 0
- .byte 0, 1, 0, -1, 0
- .byte 0, 1, 0, 0, -1
- .byte -1, 0, 1, 0, 0
- .byte 0, -1, 1, 0, 0
- .byte 0, 0, 0, 0, 0
- .byte 0, 0, 1, -1, 0
- .byte 0, 0, 1, 0, -1
- .byte -1, 0, 0, 1, 0
- .byte 0, -1, 0, 1, 0
- .byte 0, 0, -1, 1, 0
- .byte 0, 0, 0, 0, 0
- .byte 0, 0, 0, 1, -1
- .byte -1, 0, 0, 0, 1
- .byte 0, -1, 0, 0, 1
- .byte 0, 0, -1, 0, 1
- .byte 0, 0, 0, -1, 1
- .byte 0, 0, 0, 0, 0
-
- .section .data
-
- .global __local_str_poketool_personal_pms_narc
-__local_str_poketool_personal_pms_narc: ; 0x02105FC8
- .asciz "poketool/personal/pms.narc"
-
- .section .bss
-
- .global UNK_021C5AC0
-UNK_021C5AC0: ; 0x021C5AC0
- .space 0x194
-
- .text
-
- thumb_func_start ZeroMonData
-ZeroMonData: ; 0x02066978
- push {r4, lr}
- add r4, r0, #0x0
- mov r0, #0x0
- add r1, r4, #0x0
- mov r2, #0xec
- bl MIi_CpuClearFast
- add r0, r4, #0x0
- ldrh r2, [r4, #0x6]
- add r0, #0x8
- mov r1, #0x80
- bl MonEncryptSegment
- add r0, r4, #0x0
- ldr r2, [r4, #0x0]
- add r0, #0x88
- mov r1, #0x64
- bl MonEncryptSegment
- pop {r4, pc}
-
- thumb_func_start WipeBoxMonDataAndEncrypt
-WipeBoxMonDataAndEncrypt: ; 0x020669A0
- push {r4, lr}
- add r4, r0, #0x0
- mov r0, #0x0
- add r1, r4, #0x0
- mov r2, #0x88
- bl MIi_CpuClearFast
- add r0, r4, #0x0
- ldrh r2, [r4, #0x6]
- add r0, #0x8
- mov r1, #0x80
- bl MonEncryptSegment
- pop {r4, pc}
-
- thumb_func_start SizeOfStructPokemon
-SizeOfStructPokemon: ; 0x020669BC
- mov r0, #0xec
- bx lr
-
- thumb_func_start AllocMonZeroed
-AllocMonZeroed: ; 0x020669C0
- push {r4, lr}
- mov r1, #0xec
- bl AllocFromHeap
- add r4, r0, #0x0
- bl ZeroMonData
- add r0, r4, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start TryDecryptMon
-TryDecryptMon: ; 0x020669D4
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldrh r0, [r5, #0x4]
- mov r4, #0x0
- lsl r1, r0, #0x1f
- lsr r1, r1, #0x1f
- bne _02066A1A
- lsl r0, r0, #0x1e
- mov r4, #0x1
- lsr r0, r0, #0x1f
- beq _020669EE
- bl ErrorHandling
-_020669EE:
- ldrh r1, [r5, #0x4]
- mov r0, #0x1
- bic r1, r0
- mov r0, #0x1
- orr r0, r1
- strh r0, [r5, #0x4]
- ldrh r1, [r5, #0x4]
- mov r0, #0x2
- orr r0, r1
- strh r0, [r5, #0x4]
- add r0, r5, #0x0
- ldr r2, [r5, #0x0]
- add r0, #0x88
- mov r1, #0x64
- bl MonDecryptSegment
- add r0, r5, #0x0
- ldrh r2, [r5, #0x6]
- add r0, #0x8
- mov r1, #0x80
- bl MonDecryptSegment
-_02066A1A:
- add r0, r4, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start TryEncryptMon
-TryEncryptMon: ; 0x02066A20
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldrh r2, [r5, #0x4]
- mov r4, #0x0
- lsl r0, r2, #0x1f
- lsr r0, r0, #0x1f
- cmp r0, #0x1
- bne _02066A68
- cmp r1, #0x1
- bne _02066A68
- mov r0, #0x1
- bic r2, r0
- strh r2, [r5, #0x4]
- ldrh r1, [r5, #0x4]
- mov r0, #0x2
- mov r4, #0x1
- bic r1, r0
- strh r1, [r5, #0x4]
- add r0, r5, #0x0
- ldr r2, [r5, #0x0]
- add r0, #0x88
- mov r1, #0x64
- bl MonEncryptSegment
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl CalcMonChecksum
- strh r0, [r5, #0x6]
- add r0, r5, #0x0
- ldrh r2, [r5, #0x6]
- add r0, #0x8
- mov r1, #0x80
- bl MonEncryptSegment
-_02066A68:
- add r0, r4, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start TryDecryptBoxMon
-TryDecryptBoxMon: ; 0x02066A6C
- push {r4, lr}
- add r2, r0, #0x0
- ldrh r1, [r2, #0x4]
- mov r4, #0x0
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1f
- bne _02066A8E
- mov r0, #0x2
- orr r0, r1
- strh r0, [r2, #0x4]
- add r0, r2, #0x0
- ldrh r2, [r2, #0x6]
- add r0, #0x8
- mov r1, #0x80
- mov r4, #0x1
- bl MonDecryptSegment
-_02066A8E:
- add r0, r4, #0x0
- pop {r4, pc}
- .balign 4
-
- thumb_func_start TryEncryptBoxMon
-TryEncryptBoxMon: ; 0x02066A94
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldrh r2, [r5, #0x4]
- mov r4, #0x0
- lsl r0, r2, #0x1e
- lsr r0, r0, #0x1f
- cmp r0, #0x1
- bne _02066AC8
- cmp r1, #0x1
- bne _02066AC8
- mov r0, #0x2
- bic r2, r0
- add r0, r5, #0x0
- strh r2, [r5, #0x4]
- add r0, #0x8
- mov r1, #0x80
- mov r4, #0x1
- bl CalcMonChecksum
- strh r0, [r5, #0x6]
- add r0, r5, #0x0
- ldrh r2, [r5, #0x6]
- add r0, #0x8
- mov r1, #0x80
- bl MonEncryptSegment
-_02066AC8:
- add r0, r4, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start CreateMon
-CreateMon: ; 0x02066ACC
- push {r0-r3}
- push {r3-r6, lr}
- sub sp, #0x2c
- add r5, r0, #0x0
- add r4, r1, #0x0
- add r6, r3, #0x0
- bl ZeroMonData
- ldr r0, [sp, #0x50]
- add r1, r4, #0x0
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x54]
- add r3, r6, #0x0
- str r0, [sp, #0x4]
- ldr r0, [sp, #0x58]
- str r0, [sp, #0x8]
- ldr r0, [sp, #0x5c]
- str r0, [sp, #0xc]
- ldr r2, [sp, #0x48]
- add r0, r5, #0x0
- bl CreateBoxMon
- add r0, r5, #0x0
- add r0, #0x88
- mov r1, #0x64
- mov r2, #0x0
- bl MonEncryptSegment
- add r0, r5, #0x0
- ldr r2, [r5, #0x0]
- add r0, #0x88
- mov r1, #0x64
- bl MonEncryptSegment
- add r0, r5, #0x0
- mov r1, #0xa0
- add r2, sp, #0x48
- bl SetMonDataEncrypted
- mov r0, #0x0
- bl FUN_020256BC
- add r4, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0xa9
- add r2, r4, #0x0
- bl SetMonDataEncrypted
- add r0, r4, #0x0
- bl FreeToHeap
- mov r0, #0x0
- str r0, [sp, #0x10]
- add r0, r5, #0x0
- mov r1, #0xa1
- add r2, sp, #0x10
- bl SetMonDataEncrypted
- mov r0, #0x0
- add r1, sp, #0x14
- mov r2, #0x18
- bl MIi_CpuClearFast
- add r0, r5, #0x0
- mov r1, #0xaa
- add r2, sp, #0x14
- bl SetMonDataEncrypted
- add r0, r5, #0x0
- bl UpdateMonLevelAndRecalcStats
- add sp, #0x2c
- pop {r3-r6}
- pop {r3}
- add sp, #0x10
- bx r3
-
- thumb_func_start CreateBoxMon
-CreateBoxMon: ; 0x02066B64
- push {r0-r3}
- push {r4-r7, lr}
- sub sp, #0xc
- add r5, r0, #0x0
- bl WipeBoxMonDataAndEncrypt
- add r0, r5, #0x0
- bl TryDecryptBoxMon
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x30]
- cmp r0, #0x0
- bne _02066B8E
- bl rand_LC
- add r4, r0, #0x0
- bl rand_LC
- lsl r0, r0, #0x10
- orr r0, r4
- str r0, [sp, #0x34]
-_02066B8E:
- add r0, r5, #0x0
- mov r1, #0x0
- add r2, sp, #0x34
- bl SetBoxMonDataEncrypted
- ldr r0, [sp, #0x38]
- cmp r0, #0x2
- bne _02066BD6
- ldr r7, _02066D84 ; =0xFFFF0000
- add r6, r7, #0x0
-_02066BA2:
- bl rand_LC
- add r4, r0, #0x0
- bl rand_LC
- ldr r1, [sp, #0x34]
- lsl r0, r0, #0x10
- add r3, r4, #0x0
- orr r3, r0
- lsl r0, r1, #0x10
- lsr r2, r0, #0x10
- add r0, r1, #0x0
- and r0, r7
- lsr r1, r0, #0x10
- add r0, r3, #0x0
- str r3, [sp, #0x3c]
- and r0, r6
- lsl r3, r3, #0x10
- lsr r0, r0, #0x10
- lsr r3, r3, #0x10
- eor r0, r3
- eor r0, r1
- eor r0, r2
- cmp r0, #0x8
- blo _02066BA2
- b _02066BDE
-_02066BD6:
- cmp r0, #0x1
- beq _02066BDE
- mov r0, #0x0
- str r0, [sp, #0x3c]
-_02066BDE:
- add r0, r5, #0x0
- mov r1, #0x7
- add r2, sp, #0x3c
- bl SetBoxMonDataEncrypted
- ldr r2, _02066D88 ; =gGameLanguage
- add r0, r5, #0x0
- mov r1, #0xc
- bl SetBoxMonDataEncrypted
- add r0, r5, #0x0
- mov r1, #0x5
- add r2, sp, #0x24
- bl SetBoxMonDataEncrypted
- add r0, r5, #0x0
- mov r1, #0xb2
- mov r2, #0x0
- bl SetBoxMonDataEncrypted
- ldr r0, [sp, #0x24]
- ldr r1, [sp, #0x28]
- bl GetMonExpByLevel
- str r0, [sp, #0x8]
- add r0, r5, #0x0
- mov r1, #0x8
- add r2, sp, #0x8
- bl SetBoxMonDataEncrypted
- ldr r0, [sp, #0x24]
- mov r1, #0x14
- bl GetMonBaseStat
- str r0, [sp, #0x8]
- add r0, r5, #0x0
- mov r1, #0x9
- add r2, sp, #0x8
- bl SetBoxMonDataEncrypted
- add r0, r5, #0x0
- mov r1, #0x9b
- add r2, sp, #0x28
- bl SetBoxMonDataEncrypted
- ldr r2, _02066D8C ; =gGameVersion
- add r0, r5, #0x0
- mov r1, #0x79
- bl SetBoxMonDataEncrypted
- mov r0, #0x4
- str r0, [sp, #0x8]
- add r0, r5, #0x0
- mov r1, #0x9a
- add r2, sp, #0x8
- bl SetBoxMonDataEncrypted
- ldr r0, [sp, #0x2c]
- cmp r0, #0x20
- bge _02066C94
- add r0, r5, #0x0
- mov r1, #0x46
- add r2, sp, #0x2c
- bl SetBoxMonDataEncrypted
- add r0, r5, #0x0
- mov r1, #0x47
- add r2, sp, #0x2c
- bl SetBoxMonDataEncrypted
- add r0, r5, #0x0
- mov r1, #0x48
- add r2, sp, #0x2c
- bl SetBoxMonDataEncrypted
- add r0, r5, #0x0
- mov r1, #0x49
- add r2, sp, #0x2c
- bl SetBoxMonDataEncrypted
- add r0, r5, #0x0
- mov r1, #0x4a
- add r2, sp, #0x2c
- bl SetBoxMonDataEncrypted
- add r0, r5, #0x0
- mov r1, #0x4b
- add r2, sp, #0x2c
- bl SetBoxMonDataEncrypted
- b _02066D18
-_02066C94:
- bl rand_LC
- mov r1, #0x1f
- str r0, [sp, #0x8]
- and r0, r1
- str r0, [sp, #0x4]
- add r0, r5, #0x0
- mov r1, #0x46
- add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
- mov r0, #0x3e
- ldr r1, [sp, #0x8]
- lsl r0, r0, #0x4
- and r0, r1
- lsr r0, r0, #0x5
- str r0, [sp, #0x4]
- add r0, r5, #0x0
- mov r1, #0x47
- add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
- mov r0, #0x1f
- ldr r1, [sp, #0x8]
- lsl r0, r0, #0xa
- and r0, r1
- lsr r0, r0, #0xa
- str r0, [sp, #0x4]
- add r0, r5, #0x0
- mov r1, #0x48
- add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
- bl rand_LC
- mov r1, #0x1f
- str r0, [sp, #0x8]
- and r0, r1
- str r0, [sp, #0x4]
- add r0, r5, #0x0
- mov r1, #0x49
- add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
- mov r0, #0x3e
- ldr r1, [sp, #0x8]
- lsl r0, r0, #0x4
- and r0, r1
- lsr r0, r0, #0x5
- str r0, [sp, #0x4]
- add r0, r5, #0x0
- mov r1, #0x4a
- add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
- mov r0, #0x1f
- ldr r1, [sp, #0x8]
- lsl r0, r0, #0xa
- and r0, r1
- lsr r0, r0, #0xa
- str r0, [sp, #0x4]
- add r0, r5, #0x0
- mov r1, #0x4b
- add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
-_02066D18:
- ldr r0, [sp, #0x24]
- mov r1, #0x18
- bl GetMonBaseStat
- str r0, [sp, #0x8]
- ldr r0, [sp, #0x24]
- mov r1, #0x19
- bl GetMonBaseStat
- str r0, [sp, #0x4]
- cmp r0, #0x0
- beq _02066D50
- ldr r1, [sp, #0x34]
- mov r0, #0x1
- tst r0, r1
- beq _02066D44
- add r0, r5, #0x0
- mov r1, #0xa
- add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
- b _02066D5A
-_02066D44:
- add r0, r5, #0x0
- mov r1, #0xa
- add r2, sp, #0x8
- bl SetBoxMonDataEncrypted
- b _02066D5A
-_02066D50:
- add r0, r5, #0x0
- mov r1, #0xa
- add r2, sp, #0x8
- bl SetBoxMonDataEncrypted
-_02066D5A:
- add r0, r5, #0x0
- bl GetBoxMonGenderEncrypted
- str r0, [sp, #0x8]
- add r0, r5, #0x0
- mov r1, #0x6f
- add r2, sp, #0x8
- bl SetBoxMonDataEncrypted
- add r0, r5, #0x0
- bl InitBoxMonMoveset
- ldr r1, [sp, #0x0]
- add r0, r5, #0x0
- bl TryEncryptBoxMon
- add sp, #0xc
- pop {r4-r7}
- pop {r3}
- add sp, #0x10
- bx r3
- .balign 4
-_02066D84: .word 0xFFFF0000
-_02066D88: .word gGameLanguage
-_02066D8C: .word gGameVersion
-
- thumb_func_start CreateMonWithNature
-CreateMonWithNature: ; 0x02066D90
- push {r3-r7, lr}
- sub sp, #0x18
- str r2, [sp, #0x10]
- str r3, [sp, #0x14]
- ldr r4, [sp, #0x30]
- add r6, r0, #0x0
- add r7, r1, #0x0
-_02066D9E:
- bl rand_LC
- add r5, r0, #0x0
- bl rand_LC
- lsl r0, r0, #0x10
- orr r5, r0
- add r0, r5, #0x0
- bl GetNatureFromPersonality
- cmp r4, r0
- bne _02066D9E
- mov r0, #0x1
- str r0, [sp, #0x0]
- str r5, [sp, #0x4]
- mov r0, #0x0
- str r0, [sp, #0x8]
- str r0, [sp, #0xc]
- ldr r2, [sp, #0x10]
- ldr r3, [sp, #0x14]
- add r0, r6, #0x0
- add r1, r7, #0x0
- bl CreateMon
- add sp, #0x18
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start CreateMonWithNatureGenderLetter
-CreateMonWithNatureGenderLetter: ; 0x02066DD4
- push {r4-r7, lr}
- sub sp, #0x24
- str r1, [sp, #0x14]
- str r2, [sp, #0x18]
- str r3, [sp, #0x1c]
- str r0, [sp, #0x10]
- add r0, sp, #0x28
- ldrb r0, [r0, #0x18]
- ldr r6, [sp, #0x38]
- ldr r7, [sp, #0x3c]
- cmp r0, #0x0
- beq _02066E4C
- cmp r0, #0x1d
- bhs _02066E4C
- sub r0, r0, #0x1
- str r0, [sp, #0x20]
-_02066DF4:
- bl rand_LC
- add r4, r0, #0x0
- bl rand_LC
- lsl r0, r0, #0x10
- orr r4, r0
- mov r3, #0x3
- lsl r3, r3, #0x10
- and r3, r4
- mov r0, #0x3
- add r2, r4, #0x0
- and r2, r0
- lsl r0, r0, #0x8
- and r0, r4
- lsr r1, r0, #0x6
- mov r0, #0x3
- lsl r0, r0, #0x18
- and r0, r4
- lsr r0, r0, #0x12
- lsr r3, r3, #0xc
- orr r0, r3
- orr r0, r1
- orr r0, r2
- mov r1, #0x1c
- bl _u32_div_f
- lsl r0, r1, #0x10
- lsr r5, r0, #0x10
- add r0, r4, #0x0
- bl GetNatureFromPersonality
- cmp r7, r0
- bne _02066DF4
- ldr r0, [sp, #0x14]
- add r1, r4, #0x0
- bl GetGenderBySpeciesAndPersonality
- cmp r6, r0
- bne _02066DF4
- ldr r0, [sp, #0x20]
- cmp r5, r0
- bne _02066DF4
- b _02066E58
-_02066E4C:
- ldr r0, [sp, #0x14]
- add r1, r6, #0x0
- add r2, r7, #0x0
- bl FUN_02066E74
- add r4, r0, #0x0
-_02066E58:
- mov r0, #0x1
- str r0, [sp, #0x0]
- str r4, [sp, #0x4]
- mov r0, #0x0
- str r0, [sp, #0x8]
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x10]
- ldr r1, [sp, #0x14]
- ldr r2, [sp, #0x18]
- ldr r3, [sp, #0x1c]
- bl CreateMon
- add sp, #0x24
- pop {r4-r7, pc}
-
- thumb_func_start FUN_02066E74
-FUN_02066E74: ; 0x02066E74
- push {r3-r5, lr}
- add r5, r1, #0x0
- mov r1, #0x12
- add r4, r2, #0x0
- bl GetMonBaseStat
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- beq _02066EA0
- cmp r0, #0xfe
- beq _02066EA0
- cmp r0, #0xff
- beq _02066EA0
- cmp r5, #0x0
- bne _02066EA0
- mov r1, #0x19
- bl _s32_div_f
- add r1, r0, #0x1
- mov r0, #0x19
- mul r0, r1
- add r4, r0, r4
-_02066EA0:
- add r0, r4, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02066EA4
-FUN_02066EA4: ; 0x02066EA4
- push {r0-r3}
- push {r4, lr}
- sub sp, #0x10
- mov r3, #0x1
- str r3, [sp, #0x0]
- ldr r3, [sp, #0x28]
- add r4, r0, #0x0
- str r3, [sp, #0x4]
- mov r3, #0x0
- str r3, [sp, #0x8]
- str r3, [sp, #0xc]
- bl CreateMon
- add r0, r4, #0x0
- mov r1, #0xae
- add r2, sp, #0x24
- bl SetMonDataEncrypted
- add r0, r4, #0x0
- bl UpdateMonLevelAndRecalcStats
- add sp, #0x10
- pop {r4}
- pop {r3}
- add sp, #0x10
- bx r3
-
- thumb_func_start UpdateMonLevelAndRecalcStats
-UpdateMonLevelAndRecalcStats: ; 0x02066ED8
- push {r3-r5, lr}
- add r5, r0, #0x0
- bl TryDecryptMon
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl CalcMonLevelEncrypted
- str r0, [sp, #0x0]
- add r0, r5, #0x0
- mov r1, #0xa0
- add r2, sp, #0x0
- bl SetMonDataEncrypted
- add r0, r5, #0x0
- bl CalcMonStatsMaybeEncrypted
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl TryEncryptMon
- pop {r3-r5, pc}
-
- thumb_func_start CalcMonStatsMaybeEncrypted
-CalcMonStatsMaybeEncrypted: ; 0x02066F04
- push {r3-r7, lr}
- sub sp, #0x58
- add r5, r0, #0x0
- bl TryDecryptMon
- str r0, [sp, #0x0]
- add r0, r5, #0x0
- mov r1, #0xa0
- mov r2, #0x0
- bl GetMonDataEncrypted
- add r4, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0xa3
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x2c]
- add r0, r5, #0x0
- mov r1, #0xa2
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x54]
- add r0, r5, #0x0
- mov r1, #0x46
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x30]
- add r0, r5, #0x0
- mov r1, #0xd
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x34]
- add r0, r5, #0x0
- mov r1, #0x47
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x28]
- add r0, r5, #0x0
- mov r1, #0xe
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x14]
- add r0, r5, #0x0
- mov r1, #0x48
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x24]
- add r0, r5, #0x0
- mov r1, #0xf
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x10]
- add r0, r5, #0x0
- mov r1, #0x49
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x20]
- add r0, r5, #0x0
- mov r1, #0x10
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0xc]
- add r0, r5, #0x0
- mov r1, #0x4a
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x1c]
- add r0, r5, #0x0
- mov r1, #0x11
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x8]
- add r0, r5, #0x0
- mov r1, #0x4b
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x18]
- add r0, r5, #0x0
- mov r1, #0x12
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x4]
- add r0, r5, #0x0
- mov r1, #0x70
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x38]
- add r0, r5, #0x0
- mov r1, #0x5
- mov r2, #0x0
- bl GetMonDataEncrypted
- add r7, r0, #0x0
- mov r0, #0x0
- mov r1, #0x2c
- bl AllocFromHeap
- add r6, r0, #0x0
- ldr r1, [sp, #0x38]
- add r0, r7, #0x0
- add r2, r6, #0x0
- bl LoadMonBaseStats_HandleAlternateForme
- mov r0, #0x49
- lsl r0, r0, #0x2
- cmp r7, r0
- bne _02066FFC
- mov r0, #0x1
- b _0206701E
-_02066FFC:
- ldr r0, [sp, #0x34]
- asr r0, r0, #0x1
- lsr r1, r0, #0x1e
- ldr r0, [sp, #0x34]
- add r1, r0, r1
- asr r0, r1, #0x2
- ldrb r1, [r6, #0x0]
- lsl r2, r1, #0x1
- ldr r1, [sp, #0x30]
- add r1, r1, r2
- add r0, r0, r1
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- add r0, r4, r0
- add r0, #0xa
-_0206701E:
- str r0, [sp, #0x50]
- add r0, r5, #0x0
- mov r1, #0xa3
- add r2, sp, #0x50
- bl SetMonDataEncrypted
- ldr r0, [sp, #0x14]
- asr r0, r0, #0x1
- lsr r1, r0, #0x1e
- ldr r0, [sp, #0x14]
- add r1, r0, r1
- asr r0, r1, #0x2
- ldrb r1, [r6, #0x1]
- lsl r2, r1, #0x1
- ldr r1, [sp, #0x28]
- add r1, r1, r2
- add r0, r0, r1
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- add r0, r0, #0x5
- str r0, [sp, #0x4c]
- add r0, r5, #0x0
- bl GetMonNatureEncrypted
- ldr r1, [sp, #0x4c]
- mov r2, #0x1
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- bl ApplyNatureModToStat
- str r0, [sp, #0x4c]
- add r0, r5, #0x0
- mov r1, #0xa4
- add r2, sp, #0x4c
- bl SetMonDataEncrypted
- ldr r0, [sp, #0x10]
- asr r0, r0, #0x1
- lsr r1, r0, #0x1e
- ldr r0, [sp, #0x10]
- add r1, r0, r1
- asr r0, r1, #0x2
- ldrb r1, [r6, #0x2]
- lsl r2, r1, #0x1
- ldr r1, [sp, #0x24]
- add r1, r1, r2
- add r0, r0, r1
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- add r0, r0, #0x5
- str r0, [sp, #0x48]
- add r0, r5, #0x0
- bl GetMonNatureEncrypted
- ldr r1, [sp, #0x48]
- mov r2, #0x2
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- bl ApplyNatureModToStat
- str r0, [sp, #0x48]
- add r0, r5, #0x0
- mov r1, #0xa5
- add r2, sp, #0x48
- bl SetMonDataEncrypted
- ldr r0, [sp, #0xc]
- asr r0, r0, #0x1
- lsr r1, r0, #0x1e
- ldr r0, [sp, #0xc]
- add r1, r0, r1
- asr r0, r1, #0x2
- ldrb r1, [r6, #0x3]
- lsl r2, r1, #0x1
- ldr r1, [sp, #0x20]
- add r1, r1, r2
- add r0, r0, r1
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- add r0, r0, #0x5
- str r0, [sp, #0x44]
- add r0, r5, #0x0
- bl GetMonNatureEncrypted
- ldr r1, [sp, #0x44]
- mov r2, #0x3
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- bl ApplyNatureModToStat
- str r0, [sp, #0x44]
- add r0, r5, #0x0
- mov r1, #0xa6
- add r2, sp, #0x44
- bl SetMonDataEncrypted
- ldr r0, [sp, #0x8]
- asr r0, r0, #0x1
- lsr r1, r0, #0x1e
- ldr r0, [sp, #0x8]
- add r1, r0, r1
- asr r0, r1, #0x2
- ldrb r1, [r6, #0x4]
- lsl r2, r1, #0x1
- ldr r1, [sp, #0x1c]
- add r1, r1, r2
- add r0, r0, r1
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- add r0, r0, #0x5
- str r0, [sp, #0x40]
- add r0, r5, #0x0
- bl GetMonNatureEncrypted
- ldr r1, [sp, #0x40]
- mov r2, #0x4
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- bl ApplyNatureModToStat
- str r0, [sp, #0x40]
- add r0, r5, #0x0
- mov r1, #0xa7
- add r2, sp, #0x40
- bl SetMonDataEncrypted
- ldr r0, [sp, #0x4]
- asr r0, r0, #0x1
- lsr r1, r0, #0x1e
- ldr r0, [sp, #0x4]
- add r1, r0, r1
- asr r0, r1, #0x2
- ldrb r1, [r6, #0x5]
- lsl r2, r1, #0x1
- ldr r1, [sp, #0x18]
- add r1, r1, r2
- add r0, r0, r1
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- add r0, r0, #0x5
- str r0, [sp, #0x3c]
- add r0, r5, #0x0
- bl GetMonNatureEncrypted
- ldr r1, [sp, #0x3c]
- mov r2, #0x5
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- bl ApplyNatureModToStat
- str r0, [sp, #0x3c]
- add r0, r5, #0x0
- mov r1, #0xa8
- add r2, sp, #0x3c
- bl SetMonDataEncrypted
- add r0, r6, #0x0
- bl FreeToHeap
- ldr r1, [sp, #0x54]
- cmp r1, #0x0
- bne _0206717C
- ldr r0, [sp, #0x2c]
- cmp r0, #0x0
- bne _020671A0
-_0206717C:
- mov r0, #0x49
- lsl r0, r0, #0x2
- cmp r7, r0
- bne _0206718A
- mov r0, #0x1
- str r0, [sp, #0x54]
- b _020671A0
-_0206718A:
- cmp r1, #0x0
- bne _02067194
- ldr r0, [sp, #0x50]
- str r0, [sp, #0x54]
- b _020671A0
-_02067194:
- ldr r1, [sp, #0x50]
- ldr r0, [sp, #0x2c]
- ldr r2, [sp, #0x54]
- sub r0, r1, r0
- add r0, r2, r0
- str r0, [sp, #0x54]
-_020671A0:
- ldr r0, [sp, #0x54]
- cmp r0, #0x0
- beq _020671B0
- add r0, r5, #0x0
- mov r1, #0xa2
- add r2, sp, #0x54
- bl SetMonDataEncrypted
-_020671B0:
- ldr r1, [sp, #0x0]
- add r0, r5, #0x0
- bl TryEncryptMon
- add sp, #0x58
- pop {r3-r7, pc}
-
- thumb_func_start GetMonDataEncrypted
-GetMonDataEncrypted: ; 0x020671BC
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldrh r0, [r5, #0x4]
- add r4, r1, #0x0
- add r6, r2, #0x0
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- bne _02067204
- add r0, r5, #0x0
- ldr r2, [r5, #0x0]
- add r0, #0x88
- mov r1, #0x64
- bl MonDecryptSegment
- add r0, r5, #0x0
- ldrh r2, [r5, #0x6]
- add r0, #0x8
- mov r1, #0x80
- bl MonDecryptSegment
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl CalcMonChecksum
- ldrh r1, [r5, #0x6]
- cmp r0, r1
- beq _02067204
- cmp r0, r1
- beq _020671FC
- bl ErrorHandling
-_020671FC:
- ldrh r1, [r5, #0x4]
- mov r0, #0x4
- orr r0, r1
- strh r0, [r5, #0x4]
-_02067204:
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl GetMonData
- add r4, r0, #0x0
- ldrh r0, [r5, #0x4]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- bne _02067230
- add r0, r5, #0x0
- ldr r2, [r5, #0x0]
- add r0, #0x88
- mov r1, #0x64
- bl MonEncryptSegment
- add r0, r5, #0x0
- ldrh r2, [r5, #0x6]
- add r0, #0x8
- mov r1, #0x80
- bl MonEncryptSegment
-_02067230:
- add r0, r4, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start GetMonData
-GetMonData: ; 0x02067234
- push {r3, lr}
- add r3, r1, #0x0
- sub r3, #0x9f
- cmp r3, #0xb
- bhi _020672B6
- add r3, r3, r3
- add r3, pc
- ldrh r3, [r3, #0x6]
- lsl r3, r3, #0x10
- asr r3, r3, #0x10
- add pc, r3
-_0206724A: ; jump table (using 16-bit offset)
- .short _02067262 - _0206724A - 2; case 0
- .short _02067268 - _0206724A - 2; case 1
- .short _0206726E - _0206724A - 2; case 2
- .short _02067274 - _0206724A - 2; case 3
- .short _0206727A - _0206724A - 2; case 4
- .short _02067280 - _0206724A - 2; case 5
- .short _02067286 - _0206724A - 2; case 6
- .short _0206728C - _0206724A - 2; case 7
- .short _02067292 - _0206724A - 2; case 8
- .short _02067298 - _0206724A - 2; case 9
- .short _0206729E - _0206724A - 2; case 10
- .short _020672AA - _0206724A - 2; case 11
-_02067262:
- add r0, #0x88
- ldr r0, [r0, #0x0]
- pop {r3, pc}
-_02067268:
- add r0, #0x8c
- ldrb r0, [r0, #0x0]
- pop {r3, pc}
-_0206726E:
- add r0, #0x8d
- ldrb r0, [r0, #0x0]
- pop {r3, pc}
-_02067274:
- add r0, #0x8e
- ldrh r0, [r0, #0x0]
- pop {r3, pc}
-_0206727A:
- add r0, #0x90
- ldrh r0, [r0, #0x0]
- pop {r3, pc}
-_02067280:
- add r0, #0x92
- ldrh r0, [r0, #0x0]
- pop {r3, pc}
-_02067286:
- add r0, #0x94
- ldrh r0, [r0, #0x0]
- pop {r3, pc}
-_0206728C:
- add r0, #0x96
- ldrh r0, [r0, #0x0]
- pop {r3, pc}
-_02067292:
- add r0, #0x98
- ldrh r0, [r0, #0x0]
- pop {r3, pc}
-_02067298:
- add r0, #0x9a
- ldrh r0, [r0, #0x0]
- pop {r3, pc}
-_0206729E:
- add r0, #0x9c
- add r1, r2, #0x0
- bl FUN_020256D0
- mov r0, #0x1
- pop {r3, pc}
-_020672AA:
- add r0, #0xd4
- add r1, r2, #0x0
- bl FUN_02029C74
- mov r0, #0x1
- pop {r3, pc}
-_020672B6:
- bl GetBoxMonData
- pop {r3, pc}
-
- thumb_func_start GetBoxMonDataEncrypted
-GetBoxMonDataEncrypted: ; 0x020672BC
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldrh r0, [r5, #0x4]
- add r4, r1, #0x0
- add r6, r2, #0x0
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1f
- bne _020672F8
- ldrh r2, [r5, #0x6]
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl MonDecryptSegment
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl CalcMonChecksum
- ldrh r1, [r5, #0x6]
- cmp r0, r1
- beq _020672F8
- cmp r0, r1
- beq _020672F0
- bl ErrorHandling
-_020672F0:
- ldrh r1, [r5, #0x4]
- mov r0, #0x4
- orr r0, r1
- strh r0, [r5, #0x4]
-_020672F8:
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl GetBoxMonData
- add r4, r0, #0x0
- ldrh r0, [r5, #0x4]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1f
- bne _02067318
- ldrh r2, [r5, #0x6]
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl MonEncryptSegment
-_02067318:
- add r0, r4, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start GetBoxMonData
-GetBoxMonData: ; 0x0206731C
- push {r4-r7, lr}
- sub sp, #0xc
- str r1, [sp, #0x4]
- add r1, r0, #0x0
- mov r4, #0x0
- str r2, [sp, #0x8]
- ldr r1, [r1, #0x0]
- str r0, [sp, #0x0]
- add r2, r4, #0x0
- bl GetSubstruct
- add r5, r0, #0x0
-
- ldr r0, [sp, #0x0]
- mov r2, #0x1
- add r1, r0, #0x0
- ldr r1, [r1, #0x0]
- bl GetSubstruct
- add r6, r0, #0x0
-
- ldr r0, [sp, #0x0]
- mov r2, #0x2
- add r1, r0, #0x0
- ldr r1, [r1, #0x0]
- bl GetSubstruct
- add r7, r0, #0x0
-
- ldr r0, [sp, #0x0]
- mov r2, #0x3
- add r1, r0, #0x0
- ldr r1, [r1, #0x0]
- bl GetSubstruct
- add r1, r0, #0x0
-
- ldr r0, [sp, #0x4]
- cmp r0, #0xb2
- bls _02067366
- b _020674D8
-_02067366:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02067372: ; jump table (using 16-bit offset)
- .short _020674DC - _02067372 - 2; case 0
- .short _020674E2 - _02067372 - 2; case 1
- .short _020674EC - _02067372 - 2; case 2
- .short _020674F6 - _02067372 - 2; case 3
- .short _02067500 - _02067372 - 2; case 4
- .short _0206754C - _02067372 - 2; case 5
- .short _0206755E - _02067372 - 2; case 6
- .short _02067562 - _02067372 - 2; case 7
- .short _02067566 - _02067372 - 2; case 8
- .short _0206756A - _02067372 - 2; case 9
- .short _0206756E - _02067372 - 2; case 10
- .short _02067572 - _02067372 - 2; case 11
- .short _02067576 - _02067372 - 2; case 12
- .short _0206757A - _02067372 - 2; case 13
- .short _0206757E - _02067372 - 2; case 14
- .short _02067582 - _02067372 - 2; case 15
- .short _02067586 - _02067372 - 2; case 16
- .short _0206758A - _02067372 - 2; case 17
- .short _0206758E - _02067372 - 2; case 18
- .short _02067592 - _02067372 - 2; case 19
- .short _02067596 - _02067372 - 2; case 20
- .short _0206759A - _02067372 - 2; case 21
- .short _0206759E - _02067372 - 2; case 22
- .short _020675A2 - _02067372 - 2; case 23
- .short _020675A6 - _02067372 - 2; case 24
- .short _020675AA - _02067372 - 2; case 25
- .short _020675AA - _02067372 - 2; case 26
- .short _020675AA - _02067372 - 2; case 27
- .short _020675AA - _02067372 - 2; case 28
- .short _020675AA - _02067372 - 2; case 29
- .short _020675AA - _02067372 - 2; case 30
- .short _020675AA - _02067372 - 2; case 31
- .short _020675AA - _02067372 - 2; case 32
- .short _020675AA - _02067372 - 2; case 33
- .short _020675AA - _02067372 - 2; case 34
- .short _020675AA - _02067372 - 2; case 35
- .short _020675AA - _02067372 - 2; case 36
- .short _020675AA - _02067372 - 2; case 37
- .short _020675AA - _02067372 - 2; case 38
- .short _020675AA - _02067372 - 2; case 39
- .short _020675AA - _02067372 - 2; case 40
- .short _020675AA - _02067372 - 2; case 41
- .short _020675AA - _02067372 - 2; case 42
- .short _020675AA - _02067372 - 2; case 43
- .short _020675AA - _02067372 - 2; case 44
- .short _020675AA - _02067372 - 2; case 45
- .short _020675AA - _02067372 - 2; case 46
- .short _020675AA - _02067372 - 2; case 47
- .short _020675AA - _02067372 - 2; case 48
- .short _020675AA - _02067372 - 2; case 49
- .short _020675AA - _02067372 - 2; case 50
- .short _020675AA - _02067372 - 2; case 51
- .short _020675AA - _02067372 - 2; case 52
- .short _020675AA - _02067372 - 2; case 53
- .short _020675D0 - _02067372 - 2; case 54
- .short _020675D0 - _02067372 - 2; case 55
- .short _020675D0 - _02067372 - 2; case 56
- .short _020675D0 - _02067372 - 2; case 57
- .short _020675DC - _02067372 - 2; case 58
- .short _020675DC - _02067372 - 2; case 59
- .short _020675DC - _02067372 - 2; case 60
- .short _020675DC - _02067372 - 2; case 61
- .short _020675E8 - _02067372 - 2; case 62
- .short _020675E8 - _02067372 - 2; case 63
- .short _020675E8 - _02067372 - 2; case 64
- .short _020675E8 - _02067372 - 2; case 65
- .short _020675F4 - _02067372 - 2; case 66
- .short _020675F4 - _02067372 - 2; case 67
- .short _020675F4 - _02067372 - 2; case 68
- .short _020675F4 - _02067372 - 2; case 69
- .short _0206760C - _02067372 - 2; case 70
- .short _02067614 - _02067372 - 2; case 71
- .short _0206761C - _02067372 - 2; case 72
- .short _02067624 - _02067372 - 2; case 73
- .short _0206762C - _02067372 - 2; case 74
- .short _02067634 - _02067372 - 2; case 75
- .short _0206763C - _02067372 - 2; case 76
- .short _0206764E - _02067372 - 2; case 77
- .short _02067654 - _02067372 - 2; case 78
- .short _02067654 - _02067372 - 2; case 79
- .short _02067654 - _02067372 - 2; case 80
- .short _02067654 - _02067372 - 2; case 81
- .short _02067654 - _02067372 - 2; case 82
- .short _02067654 - _02067372 - 2; case 83
- .short _02067654 - _02067372 - 2; case 84
- .short _02067654 - _02067372 - 2; case 85
- .short _02067654 - _02067372 - 2; case 86
- .short _02067654 - _02067372 - 2; case 87
- .short _02067654 - _02067372 - 2; case 88
- .short _02067654 - _02067372 - 2; case 89
- .short _02067654 - _02067372 - 2; case 90
- .short _02067654 - _02067372 - 2; case 91
- .short _02067654 - _02067372 - 2; case 92
- .short _02067654 - _02067372 - 2; case 93
- .short _02067654 - _02067372 - 2; case 94
- .short _02067654 - _02067372 - 2; case 95
- .short _02067654 - _02067372 - 2; case 96
- .short _02067654 - _02067372 - 2; case 97
- .short _02067654 - _02067372 - 2; case 98
- .short _02067654 - _02067372 - 2; case 99
- .short _02067654 - _02067372 - 2; case 100
- .short _02067654 - _02067372 - 2; case 101
- .short _02067654 - _02067372 - 2; case 102
- .short _02067654 - _02067372 - 2; case 103
- .short _02067654 - _02067372 - 2; case 104
- .short _02067654 - _02067372 - 2; case 105
- .short _02067654 - _02067372 - 2; case 106
- .short _02067654 - _02067372 - 2; case 107
- .short _02067654 - _02067372 - 2; case 108
- .short _02067654 - _02067372 - 2; case 109
- .short _0206767C - _02067372 - 2; case 110
- .short _02067684 - _02067372 - 2; case 111
- .short _0206768C - _02067372 - 2; case 112
- .short _02067694 - _02067372 - 2; case 113
- .short _02067698 - _02067372 - 2; case 114
- .short _020674D8 - _02067372 - 2; case 115
- .short _0206769C - _02067372 - 2; case 116
- .short _020674D8 - _02067372 - 2; case 117
- .short _020676D0 - _02067372 - 2; case 118
- .short _020676CC - _02067372 - 2; case 119
- .short _020676FE - _02067372 - 2; case 120
- .short _02067702 - _02067372 - 2; case 121
- .short _02067706 - _02067372 - 2; case 122
- .short _02067706 - _02067372 - 2; case 123
- .short _02067706 - _02067372 - 2; case 124
- .short _02067706 - _02067372 - 2; case 125
- .short _02067706 - _02067372 - 2; case 126
- .short _02067706 - _02067372 - 2; case 127
- .short _02067706 - _02067372 - 2; case 128
- .short _02067706 - _02067372 - 2; case 129
- .short _02067706 - _02067372 - 2; case 130
- .short _02067706 - _02067372 - 2; case 131
- .short _02067706 - _02067372 - 2; case 132
- .short _02067706 - _02067372 - 2; case 133
- .short _02067706 - _02067372 - 2; case 134
- .short _02067706 - _02067372 - 2; case 135
- .short _02067706 - _02067372 - 2; case 136
- .short _02067706 - _02067372 - 2; case 137
- .short _02067706 - _02067372 - 2; case 138
- .short _02067706 - _02067372 - 2; case 139
- .short _02067706 - _02067372 - 2; case 140
- .short _02067706 - _02067372 - 2; case 141
- .short _02067706 - _02067372 - 2; case 142
- .short _0206772C - _02067372 - 2; case 143
- .short _02067746 - _02067372 - 2; case 144
- .short _0206774E - _02067372 - 2; case 145
- .short _02067752 - _02067372 - 2; case 146
- .short _02067756 - _02067372 - 2; case 147
- .short _0206775A - _02067372 - 2; case 148
- .short _0206775E - _02067372 - 2; case 149
- .short _02067762 - _02067372 - 2; case 150
- .short _02067766 - _02067372 - 2; case 151
- .short _0206776A - _02067372 - 2; case 152
- .short _0206776E - _02067372 - 2; case 153
- .short _02067772 - _02067372 - 2; case 154
- .short _02067776 - _02067372 - 2; case 155
- .short _0206777E - _02067372 - 2; case 156
- .short _02067786 - _02067372 - 2; case 157
- .short _0206778A - _02067372 - 2; case 158
- .short _020674D8 - _02067372 - 2; case 159
- .short _02067540 - _02067372 - 2; case 160
- .short _020674D8 - _02067372 - 2; case 161
- .short _020674D8 - _02067372 - 2; case 162
- .short _020674D8 - _02067372 - 2; case 163
- .short _020674D8 - _02067372 - 2; case 164
- .short _020674D8 - _02067372 - 2; case 165
- .short _020674D8 - _02067372 - 2; case 166
- .short _020674D8 - _02067372 - 2; case 167
- .short _020674D8 - _02067372 - 2; case 168
- .short _020674D8 - _02067372 - 2; case 169
- .short _020674D8 - _02067372 - 2; case 170
- .short _02067506 - _02067372 - 2; case 171
- .short _02067510 - _02067372 - 2; case 172
- .short _02067522 - _02067372 - 2; case 173
- .short _0206778E - _02067372 - 2; case 174
- .short _020677C0 - _02067372 - 2; case 175
- .short _020677D8 - _02067372 - 2; case 176
- .short _020677D8 - _02067372 - 2; case 177
- .short _02067810 - _02067372 - 2; case 178
-_020674D8:
- mov r4, #0x0
- b _0206781A
-_020674DC:
- ldr r0, [sp, #0x0]
- ldr r4, [r0, #0x0]
- b _0206781A
-_020674E2:
- ldr r0, [sp, #0x0]
- ldrh r0, [r0, #0x4]
- lsl r0, r0, #0x1f
- lsr r4, r0, #0x1f
- b _0206781A
-_020674EC:
- ldr r0, [sp, #0x0]
- ldrh r0, [r0, #0x4]
- lsl r0, r0, #0x1e
- lsr r4, r0, #0x1f
- b _0206781A
-_020674F6:
- ldr r0, [sp, #0x0]
- ldrh r0, [r0, #0x4]
- lsl r0, r0, #0x1d
- lsr r4, r0, #0x1f
- b _0206781A
-_02067500:
- ldr r0, [sp, #0x0]
- ldrh r4, [r0, #0x6]
- b _0206781A
-_02067506:
- ldrh r0, [r5, #0x0]
- cmp r0, #0x0
- beq _0206753A
- mov r4, #0x1
- b _0206781A
-_02067510:
- ldr r0, [sp, #0x0]
- ldrh r0, [r0, #0x4]
- lsl r0, r0, #0x1d
- lsr r4, r0, #0x1f
- bne _0206753A
- ldr r0, [r6, #0x10]
- lsl r0, r0, #0x1
- lsr r4, r0, #0x1f
- b _0206781A
-_02067522:
- ldrh r4, [r5, #0x0]
- cmp r4, #0x0
- beq _0206753A
- ldr r0, [r6, #0x10]
- lsl r0, r0, #0x1
- lsr r0, r0, #0x1f
- bne _0206753C
- ldr r0, [sp, #0x0]
- ldrh r0, [r0, #0x4]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1f
- bne _0206753C
-_0206753A:
- b _0206781A
-_0206753C:
- ldr r4, _02067820 ; =SPECIES_EGG
- b _0206781A
-_02067540:
- ldrh r0, [r5, #0x0]
- ldr r1, [r5, #0x8]
- bl CalcLevelBySpeciesAndExp
- add r4, r0, #0x0
- b _0206781A
-_0206754C:
- ldr r0, [sp, #0x0]
- ldrh r0, [r0, #0x4]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1f
- beq _0206755A
- ldr r4, _02067820 ; =SPECIES_EGG
- b _0206781A
-_0206755A:
- ldrh r4, [r5, #0x0]
- b _0206781A
-_0206755E:
- ldrh r4, [r5, #0x2]
- b _0206781A
-_02067562:
- ldr r4, [r5, #0x4]
- b _0206781A
-_02067566:
- ldr r4, [r5, #0x8]
- b _0206781A
-_0206756A:
- ldrb r4, [r5, #0xc]
- b _0206781A
-_0206756E:
- ldrb r4, [r5, #0xd]
- b _0206781A
-_02067572:
- ldrb r4, [r5, #0xe]
- b _0206781A
-_02067576:
- ldrb r4, [r5, #0xf]
- b _0206781A
-_0206757A:
- ldrb r4, [r5, #0x10]
- b _0206781A
-_0206757E:
- ldrb r4, [r5, #0x11]
- b _0206781A
-_02067582:
- ldrb r4, [r5, #0x12]
- b _0206781A
-_02067586:
- ldrb r4, [r5, #0x13]
- b _0206781A
-_0206758A:
- ldrb r4, [r5, #0x14]
- b _0206781A
-_0206758E:
- ldrb r4, [r5, #0x15]
- b _0206781A
-_02067592:
- ldrb r4, [r5, #0x16]
- b _0206781A
-_02067596:
- ldrb r4, [r5, #0x17]
- b _0206781A
-_0206759A:
- ldrb r4, [r5, #0x18]
- b _0206781A
-_0206759E:
- ldrb r4, [r5, #0x19]
- b _0206781A
-_020675A2:
- ldrb r4, [r5, #0x1a]
- b _0206781A
-_020675A6:
- ldrb r4, [r5, #0x1b]
- b _0206781A
-_020675AA:
- ldr r2, [sp, #0x4]
- mov r0, #0x1
- sub r2, #0x19
- add r1, r4, #0x0
- str r2, [sp, #0x4]
- bl _ll_shl
- ldr r2, [r5, #0x1c]
- add r3, r4, #0x0
- and r3, r1
- and r2, r0
- mov r1, #0x0
- mov r0, #0x0
- eor r1, r3
- eor r0, r2
- orr r0, r1
- beq _02067676
- mov r4, #0x1
- b _0206781A
-_020675D0:
- ldr r0, [sp, #0x4]
- sub r0, #0x36
- str r0, [sp, #0x4]
- lsl r0, r0, #0x1
- ldrh r4, [r6, r0]
- b _0206781A
-_020675DC:
- ldr r0, [sp, #0x4]
- sub r0, #0x3a
- str r0, [sp, #0x4]
- add r0, r6, r0
- ldrb r4, [r0, #0x8]
- b _0206781A
-_020675E8:
- ldr r0, [sp, #0x4]
- sub r0, #0x3e
- str r0, [sp, #0x4]
- add r0, r6, r0
- ldrb r4, [r0, #0xc]
- b _0206781A
-_020675F4:
- ldr r0, [sp, #0x4]
- sub r0, #0x42
- str r0, [sp, #0x4]
- ldr r1, [sp, #0x4]
- lsl r0, r0, #0x1
- add r1, r6, r1
- ldrh r0, [r6, r0]
- ldrb r1, [r1, #0xc]
- bl FUN_0206AB30
- add r4, r0, #0x0
- b _0206781A
-_0206760C:
- ldr r0, [r6, #0x10]
- lsl r0, r0, #0x1b
- lsr r4, r0, #0x1b
- b _0206781A
-_02067614:
- ldr r0, [r6, #0x10]
- lsl r0, r0, #0x16
- lsr r4, r0, #0x1b
- b _0206781A
-_0206761C:
- ldr r0, [r6, #0x10]
- lsl r0, r0, #0x11
- lsr r4, r0, #0x1b
- b _0206781A
-_02067624:
- ldr r0, [r6, #0x10]
- lsl r0, r0, #0xc
- lsr r4, r0, #0x1b
- b _0206781A
-_0206762C:
- ldr r0, [r6, #0x10]
- lsl r0, r0, #0x7
- lsr r4, r0, #0x1b
- b _0206781A
-_02067634:
- ldr r0, [r6, #0x10]
- lsl r0, r0, #0x2
- lsr r4, r0, #0x1b
- b _0206781A
-_0206763C:
- ldr r0, [sp, #0x0]
- ldrh r0, [r0, #0x4]
- lsl r0, r0, #0x1d
- lsr r4, r0, #0x1f
- bne _02067676
- ldr r0, [r6, #0x10]
- lsl r0, r0, #0x1
- lsr r4, r0, #0x1f
- b _0206781A
-_0206764E:
- ldr r0, [r6, #0x10]
- lsr r4, r0, #0x1f
- b _0206781A
-_02067654:
- ldr r2, [sp, #0x4]
- mov r0, #0x1
- sub r2, #0x4e
- add r1, r4, #0x0
- str r2, [sp, #0x4]
- bl _ll_shl
- ldr r2, [r6, #0x14]
- add r3, r4, #0x0
- and r3, r1
- and r2, r0
- mov r1, #0x0
- mov r0, #0x0
- eor r1, r3
- eor r0, r2
- orr r0, r1
- bne _02067678
-_02067676:
- b _0206781A
-_02067678:
- mov r4, #0x1
- b _0206781A
-_0206767C:
- ldrb r0, [r6, #0x18]
- lsl r0, r0, #0x1f
- lsr r4, r0, #0x1f
- b _0206781A
-_02067684:
- ldrb r0, [r6, #0x18]
- lsl r0, r0, #0x1d
- lsr r4, r0, #0x1e
- b _0206781A
-_0206768C:
- ldrb r0, [r6, #0x18]
- lsl r0, r0, #0x18
- lsr r4, r0, #0x1b
- b _0206781A
-_02067694:
- ldrb r4, [r6, #0x19]
- b _0206781A
-_02067698:
- ldrh r4, [r6, #0x1a]
- b _0206781A
-_0206769C:
- ldr r0, [sp, #0x0]
- ldrh r0, [r0, #0x4]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1f
- beq _020676B2
- ldr r0, _02067824 ; =SPECIES_MANAPHY_EGG
- ldr r2, [sp, #0x8]
- add r1, r4, #0x0
- bl GetSpeciesName
- b _0206781A
-_020676B2:
- ldr r1, [sp, #0x8]
-_020676B4:
- ldrh r0, [r7, #0x0]
- add r4, r4, #0x1
- add r7, r7, #0x2
- strh r0, [r1, #0x0]
- add r1, r1, #0x2
- cmp r4, #0xa
- blo _020676B4
- ldr r2, _02067828 ; =0x0000FFFF
- ldr r0, [sp, #0x8]
- lsl r1, r4, #0x1
- strh r2, [r0, r1]
- b _0206781A
-_020676CC:
- ldr r0, [r6, #0x10]
- lsr r4, r0, #0x1f
-_020676D0:
- ldr r0, [sp, #0x0]
- ldrh r0, [r0, #0x4]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1f
- beq _020676F4
- ldr r0, _02067824 ; =SPECIES_MANAPHY_EGG
- mov r1, #0x0
- bl FUN_0200AA50
- add r5, r0, #0x0
- ldr r0, [sp, #0x8]
- add r1, r5, #0x0
- bl FUN_02021A74
- add r0, r5, #0x0
- bl FUN_02021A20
- b _0206781A
-_020676F4:
- ldr r0, [sp, #0x8]
- add r1, r7, #0x0
- bl FUN_02021E28
- b _0206781A
-_020676FE:
- ldrb r4, [r7, #0x16]
- b _0206781A
-_02067702:
- ldrb r4, [r7, #0x17]
- b _0206781A
-_02067706:
- ldr r2, [sp, #0x4]
- mov r0, #0x1
- sub r2, #0x7a
- add r1, r4, #0x0
- str r2, [sp, #0x4]
- bl _ll_shl
- ldr r3, [r7, #0x18]
- ldr r2, [r7, #0x1c]
- and r3, r0
- and r2, r1
- mov r1, #0x0
- mov r0, #0x0
- eor r1, r2
- eor r0, r3
- orr r0, r1
- beq _0206781A
- mov r4, #0x1
- b _0206781A
-_0206772C:
- ldr r2, [sp, #0x8]
-_0206772E:
- ldrh r0, [r1, #0x0]
- add r4, r4, #0x1
- add r1, r1, #0x2
- strh r0, [r2, #0x0]
- add r2, r2, #0x2
- cmp r4, #0x7
- blo _0206772E
- ldr r2, _02067828 ; =0x0000FFFF
- ldr r0, [sp, #0x8]
- lsl r1, r4, #0x1
- strh r2, [r0, r1]
- b _0206781A
-_02067746:
- ldr r0, [sp, #0x8]
- bl FUN_02021E28
- b _0206781A
-_0206774E:
- ldrb r4, [r1, #0x10]
- b _0206781A
-_02067752:
- ldrb r4, [r1, #0x11]
- b _0206781A
-_02067756:
- ldrb r4, [r1, #0x12]
- b _0206781A
-_0206775A:
- ldrb r4, [r1, #0x13]
- b _0206781A
-_0206775E:
- ldrb r4, [r1, #0x14]
- b _0206781A
-_02067762:
- ldrb r4, [r1, #0x15]
- b _0206781A
-_02067766:
- ldrh r4, [r1, #0x16]
- b _0206781A
-_0206776A:
- ldrh r4, [r1, #0x18]
- b _0206781A
-_0206776E:
- ldrb r4, [r1, #0x1a]
- b _0206781A
-_02067772:
- ldrb r4, [r1, #0x1b]
- b _0206781A
-_02067776:
- ldrb r0, [r1, #0x1c]
- lsl r0, r0, #0x19
- lsr r4, r0, #0x19
- b _0206781A
-_0206777E:
- ldrb r0, [r1, #0x1c]
- lsl r0, r0, #0x18
- lsr r4, r0, #0x1f
- b _0206781A
-_02067786:
- ldrb r4, [r1, #0x1d]
- b _0206781A
-_0206778A:
- ldrh r4, [r1, #0x1e]
- b _0206781A
-_0206778E:
- ldr r4, [r6, #0x10]
- lsl r0, r4, #0x2
- lsr r0, r0, #0x1b
- lsl r5, r0, #0x19
- lsl r0, r4, #0x7
- lsr r0, r0, #0x1b
- lsl r3, r0, #0x14
- lsl r0, r4, #0xc
- lsr r0, r0, #0x1b
- lsl r2, r0, #0xf
- lsl r0, r4, #0x11
- lsr r0, r0, #0x1b
- lsl r1, r0, #0xa
- lsl r0, r4, #0x1b
- lsl r4, r4, #0x16
- lsr r4, r4, #0x1b
- lsr r0, r0, #0x1b
- lsl r4, r4, #0x5
- orr r0, r4
- orr r0, r1
- orr r0, r2
- orr r0, r3
- add r4, r5, #0x0
- orr r4, r0
- b _0206781A
-_020677C0:
- ldrh r0, [r5, #0x0]
- cmp r0, #0x1d
- beq _020677CA
- cmp r0, #0x20
- bne _020677D4
-_020677CA:
- ldr r0, [r6, #0x10]
- lsr r0, r0, #0x1f
- bne _020677D4
- mov r4, #0x0
- b _0206781A
-_020677D4:
- mov r4, #0x1
- b _0206781A
-_020677D8:
- ldrh r0, [r5, #0x0]
- ldr r1, _0206782C ; =SPECIES_ARCEUS
- cmp r0, r1
- bne _020677FC
- ldrb r1, [r5, #0xd]
- cmp r1, #0x79
- bne _020677FC
- ldrh r0, [r5, #0x2]
- mov r1, #0x1
- add r2, r4, #0x0
- bl FUN_0206E7B8
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl GetArceusTypeByPlate
- add r4, r0, #0x0
- b _0206781A
-_020677FC:
- ldrb r1, [r6, #0x18]
- ldr r2, [sp, #0x4]
- lsl r1, r1, #0x18
- sub r2, #0xaa
- lsr r1, r1, #0x1b
- str r2, [sp, #0x4]
- bl GetMonBaseStat_HandleFormeConversion
- add r4, r0, #0x0
- b _0206781A
-_02067810:
- ldrh r0, [r5, #0x0]
- ldr r2, [sp, #0x8]
- add r1, r4, #0x0
- bl GetSpeciesName
-_0206781A:
- add r0, r4, #0x0
- add sp, #0xc
- pop {r4-r7, pc}
- .balign 4
-_02067820: .word SPECIES_EGG
-_02067824: .word SPECIES_MANAPHY_EGG
-_02067828: .word 0x0000FFFF
-_0206782C: .word SPECIES_ARCEUS
-
- thumb_func_start SetMonDataEncrypted
-SetMonDataEncrypted: ; 0x02067830
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldrh r0, [r5, #0x4]
- add r4, r1, #0x0
- add r6, r2, #0x0
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- bne _02067886
- add r0, r5, #0x0
- ldr r2, [r5, #0x0]
- add r0, #0x88
- mov r1, #0x64
- bl MonDecryptSegment
- add r0, r5, #0x0
- ldrh r2, [r5, #0x6]
- add r0, #0x8
- mov r1, #0x80
- bl MonDecryptSegment
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl CalcMonChecksum
- ldrh r1, [r5, #0x6]
- cmp r0, r1
- beq _02067886
- cmp r0, r1
- beq _02067870
- bl ErrorHandling
-_02067870:
- ldrh r1, [r5, #0x4]
- mov r0, #0x4
- orr r0, r1
- strh r0, [r5, #0x4]
- ldrh r2, [r5, #0x6]
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl MonEncryptSegment
- pop {r4-r6, pc}
-_02067886:
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl SetMonData
- ldrh r0, [r5, #0x4]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- bne _020678BC
- add r0, r5, #0x0
- ldr r2, [r5, #0x0]
- add r0, #0x88
- mov r1, #0x64
- bl MonEncryptSegment
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl CalcMonChecksum
- strh r0, [r5, #0x6]
- add r0, r5, #0x0
- ldrh r2, [r5, #0x6]
- add r0, #0x8
- mov r1, #0x80
- bl MonEncryptSegment
-_020678BC:
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start SetMonData
-SetMonData: ; 0x020678C0
- push {r3, lr}
- add r3, r0, #0x0
- add r0, r1, #0x0
- sub r0, #0x9f
- cmp r0, #0xb
- bhi _02067958
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_020678D8: ; jump table (using 16-bit offset)
- .short _020678F0 - _020678D8 - 2; case 0
- .short _020678F8 - _020678D8 - 2; case 1
- .short _02067900 - _020678D8 - 2; case 2
- .short _02067908 - _020678D8 - 2; case 3
- .short _02067910 - _020678D8 - 2; case 4
- .short _02067918 - _020678D8 - 2; case 5
- .short _02067920 - _020678D8 - 2; case 6
- .short _02067928 - _020678D8 - 2; case 7
- .short _02067930 - _020678D8 - 2; case 8
- .short _02067938 - _020678D8 - 2; case 9
- .short _02067940 - _020678D8 - 2; case 10
- .short _0206794C - _020678D8 - 2; case 11
-_020678F0:
- ldr r0, [r2, #0x0]
- add r3, #0x88
- str r0, [r3, #0x0]
- pop {r3, pc}
-_020678F8:
- ldrb r0, [r2, #0x0]
- add r3, #0x8c
- strb r0, [r3, #0x0]
- pop {r3, pc}
-_02067900:
- ldrb r0, [r2, #0x0]
- add r3, #0x8d
- strb r0, [r3, #0x0]
- pop {r3, pc}
-_02067908:
- ldrh r0, [r2, #0x0]
- add r3, #0x8e
- strh r0, [r3, #0x0]
- pop {r3, pc}
-_02067910:
- ldrh r0, [r2, #0x0]
- add r3, #0x90
- strh r0, [r3, #0x0]
- pop {r3, pc}
-_02067918:
- ldrh r0, [r2, #0x0]
- add r3, #0x92
- strh r0, [r3, #0x0]
- pop {r3, pc}
-_02067920:
- ldrh r0, [r2, #0x0]
- add r3, #0x94
- strh r0, [r3, #0x0]
- pop {r3, pc}
-_02067928:
- ldrh r0, [r2, #0x0]
- add r3, #0x96
- strh r0, [r3, #0x0]
- pop {r3, pc}
-_02067930:
- ldrh r0, [r2, #0x0]
- add r3, #0x98
- strh r0, [r3, #0x0]
- pop {r3, pc}
-_02067938:
- ldrh r0, [r2, #0x0]
- add r3, #0x9a
- strh r0, [r3, #0x0]
- pop {r3, pc}
-_02067940:
- add r3, #0x9c
- add r0, r2, #0x0
- add r1, r3, #0x0
- bl FUN_020256D0
- pop {r3, pc}
-_0206794C:
- add r3, #0xd4
- add r0, r2, #0x0
- add r1, r3, #0x0
- bl FUN_02029C74
- pop {r3, pc}
-_02067958:
- add r0, r3, #0x0
- bl SetBoxMonData
- pop {r3, pc}
-
- thumb_func_start SetBoxMonDataEncrypted
-SetBoxMonDataEncrypted: ; 0x02067960
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldrh r0, [r5, #0x4]
- add r4, r1, #0x0
- add r6, r2, #0x0
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1f
- bne _020679AA
- ldrh r2, [r5, #0x6]
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl MonDecryptSegment
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl CalcMonChecksum
- ldrh r1, [r5, #0x6]
- cmp r0, r1
- beq _020679AA
- cmp r0, r1
- beq _02067994
- bl ErrorHandling
-_02067994:
- ldrh r1, [r5, #0x4]
- mov r0, #0x4
- orr r0, r1
- strh r0, [r5, #0x4]
- ldrh r2, [r5, #0x6]
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl MonEncryptSegment
- pop {r4-r6, pc}
-_020679AA:
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl SetBoxMonData
- ldrh r0, [r5, #0x4]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1f
- bne _020679D4
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl CalcMonChecksum
- strh r0, [r5, #0x6]
- add r0, r5, #0x0
- ldrh r2, [r5, #0x6]
- add r0, #0x8
- mov r1, #0x80
- bl MonEncryptSegment
-_020679D4:
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start SetBoxMonData
-SetBoxMonData: ; 0x020679D8
- push {r4-r7, lr}
- sub sp, #0x4c
- str r1, [sp, #0x4]
- add r1, r0, #0x0
- add r4, r2, #0x0
- ldr r1, [r1, #0x0]
- str r0, [sp, #0x0]
- mov r2, #0x0
- bl GetSubstruct
- add r7, r0, #0x0
- ldr r0, [sp, #0x0]
- mov r2, #0x1
- add r1, r0, #0x0
- ldr r1, [r1, #0x0]
- bl GetSubstruct
- add r5, r0, #0x0
- ldr r0, [sp, #0x0]
- mov r2, #0x2
- add r1, r0, #0x0
- ldr r1, [r1, #0x0]
- bl GetSubstruct
- add r6, r0, #0x0
- ldr r0, [sp, #0x0]
- mov r2, #0x3
- add r1, r0, #0x0
- ldr r1, [r1, #0x0]
- bl GetSubstruct
- add r1, r0, #0x0
- ldr r0, [sp, #0x4]
- cmp r0, #0xb2
- bls _02067A20
- b _02067FF6
-_02067A20:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02067A2C: ; jump table (using 16-bit offset)
- .short _02067B92 - _02067A2C - 2; case 0
- .short _02067B9C - _02067A2C - 2; case 1
- .short _02067BBA - _02067A2C - 2; case 2
- .short _02067BD6 - _02067A2C - 2; case 3
- .short _02067BEE - _02067A2C - 2; case 4
- .short _02067BF8 - _02067A2C - 2; case 5
- .short _02067C00 - _02067A2C - 2; case 6
- .short _02067C08 - _02067A2C - 2; case 7
- .short _02067C10 - _02067A2C - 2; case 8
- .short _02067C18 - _02067A2C - 2; case 9
- .short _02067C20 - _02067A2C - 2; case 10
- .short _02067C28 - _02067A2C - 2; case 11
- .short _02067C30 - _02067A2C - 2; case 12
- .short _02067C38 - _02067A2C - 2; case 13
- .short _02067C40 - _02067A2C - 2; case 14
- .short _02067C48 - _02067A2C - 2; case 15
- .short _02067C50 - _02067A2C - 2; case 16
- .short _02067C58 - _02067A2C - 2; case 17
- .short _02067C60 - _02067A2C - 2; case 18
- .short _02067C68 - _02067A2C - 2; case 19
- .short _02067C70 - _02067A2C - 2; case 20
- .short _02067C78 - _02067A2C - 2; case 21
- .short _02067C80 - _02067A2C - 2; case 22
- .short _02067C88 - _02067A2C - 2; case 23
- .short _02067C90 - _02067A2C - 2; case 24
- .short _02067C98 - _02067A2C - 2; case 25
- .short _02067C98 - _02067A2C - 2; case 26
- .short _02067C98 - _02067A2C - 2; case 27
- .short _02067C98 - _02067A2C - 2; case 28
- .short _02067C98 - _02067A2C - 2; case 29
- .short _02067C98 - _02067A2C - 2; case 30
- .short _02067C98 - _02067A2C - 2; case 31
- .short _02067C98 - _02067A2C - 2; case 32
- .short _02067C98 - _02067A2C - 2; case 33
- .short _02067C98 - _02067A2C - 2; case 34
- .short _02067C98 - _02067A2C - 2; case 35
- .short _02067C98 - _02067A2C - 2; case 36
- .short _02067C98 - _02067A2C - 2; case 37
- .short _02067C98 - _02067A2C - 2; case 38
- .short _02067C98 - _02067A2C - 2; case 39
- .short _02067C98 - _02067A2C - 2; case 40
- .short _02067C98 - _02067A2C - 2; case 41
- .short _02067C98 - _02067A2C - 2; case 42
- .short _02067C98 - _02067A2C - 2; case 43
- .short _02067C98 - _02067A2C - 2; case 44
- .short _02067C98 - _02067A2C - 2; case 45
- .short _02067C98 - _02067A2C - 2; case 46
- .short _02067C98 - _02067A2C - 2; case 47
- .short _02067C98 - _02067A2C - 2; case 48
- .short _02067C98 - _02067A2C - 2; case 49
- .short _02067C98 - _02067A2C - 2; case 50
- .short _02067C98 - _02067A2C - 2; case 51
- .short _02067C98 - _02067A2C - 2; case 52
- .short _02067C98 - _02067A2C - 2; case 53
- .short _02067CC6 - _02067A2C - 2; case 54
- .short _02067CC6 - _02067A2C - 2; case 55
- .short _02067CC6 - _02067A2C - 2; case 56
- .short _02067CC6 - _02067A2C - 2; case 57
- .short _02067CD6 - _02067A2C - 2; case 58
- .short _02067CD6 - _02067A2C - 2; case 59
- .short _02067CD6 - _02067A2C - 2; case 60
- .short _02067CD6 - _02067A2C - 2; case 61
- .short _02067CE6 - _02067A2C - 2; case 62
- .short _02067CE6 - _02067A2C - 2; case 63
- .short _02067CE6 - _02067A2C - 2; case 64
- .short _02067CE6 - _02067A2C - 2; case 65
- .short _02067FF6 - _02067A2C - 2; case 66
- .short _02067FF6 - _02067A2C - 2; case 67
- .short _02067FF6 - _02067A2C - 2; case 68
- .short _02067FF6 - _02067A2C - 2; case 69
- .short _02067CF6 - _02067A2C - 2; case 70
- .short _02067D0A - _02067A2C - 2; case 71
- .short _02067D1E - _02067A2C - 2; case 72
- .short _02067D32 - _02067A2C - 2; case 73
- .short _02067D46 - _02067A2C - 2; case 74
- .short _02067D5A - _02067A2C - 2; case 75
- .short _02067D6E - _02067A2C - 2; case 76
- .short _02067D82 - _02067A2C - 2; case 77
- .short _02067D94 - _02067A2C - 2; case 78
- .short _02067D94 - _02067A2C - 2; case 79
- .short _02067D94 - _02067A2C - 2; case 80
- .short _02067D94 - _02067A2C - 2; case 81
- .short _02067D94 - _02067A2C - 2; case 82
- .short _02067D94 - _02067A2C - 2; case 83
- .short _02067D94 - _02067A2C - 2; case 84
- .short _02067D94 - _02067A2C - 2; case 85
- .short _02067D94 - _02067A2C - 2; case 86
- .short _02067D94 - _02067A2C - 2; case 87
- .short _02067D94 - _02067A2C - 2; case 88
- .short _02067D94 - _02067A2C - 2; case 89
- .short _02067D94 - _02067A2C - 2; case 90
- .short _02067D94 - _02067A2C - 2; case 91
- .short _02067D94 - _02067A2C - 2; case 92
- .short _02067D94 - _02067A2C - 2; case 93
- .short _02067D94 - _02067A2C - 2; case 94
- .short _02067D94 - _02067A2C - 2; case 95
- .short _02067D94 - _02067A2C - 2; case 96
- .short _02067D94 - _02067A2C - 2; case 97
- .short _02067D94 - _02067A2C - 2; case 98
- .short _02067D94 - _02067A2C - 2; case 99
- .short _02067D94 - _02067A2C - 2; case 100
- .short _02067D94 - _02067A2C - 2; case 101
- .short _02067D94 - _02067A2C - 2; case 102
- .short _02067D94 - _02067A2C - 2; case 103
- .short _02067D94 - _02067A2C - 2; case 104
- .short _02067D94 - _02067A2C - 2; case 105
- .short _02067D94 - _02067A2C - 2; case 106
- .short _02067D94 - _02067A2C - 2; case 107
- .short _02067D94 - _02067A2C - 2; case 108
- .short _02067D94 - _02067A2C - 2; case 109
- .short _02067DC2 - _02067A2C - 2; case 110
- .short _02067DD6 - _02067A2C - 2; case 111
- .short _02067DEA - _02067A2C - 2; case 112
- .short _02067DFE - _02067A2C - 2; case 113
- .short _02067E06 - _02067A2C - 2; case 114
- .short _02067FF6 - _02067A2C - 2; case 115
- .short _02067E2C - _02067A2C - 2; case 116
- .short _02067E0E - _02067A2C - 2; case 117
- .short _02067E6C - _02067A2C - 2; case 118
- .short _02067E40 - _02067A2C - 2; case 119
- .short _02067E7A - _02067A2C - 2; case 120
- .short _02067E82 - _02067A2C - 2; case 121
- .short _02067E8A - _02067A2C - 2; case 122
- .short _02067E8A - _02067A2C - 2; case 123
- .short _02067E8A - _02067A2C - 2; case 124
- .short _02067E8A - _02067A2C - 2; case 125
- .short _02067E8A - _02067A2C - 2; case 126
- .short _02067E8A - _02067A2C - 2; case 127
- .short _02067E8A - _02067A2C - 2; case 128
- .short _02067E8A - _02067A2C - 2; case 129
- .short _02067E8A - _02067A2C - 2; case 130
- .short _02067E8A - _02067A2C - 2; case 131
- .short _02067E8A - _02067A2C - 2; case 132
- .short _02067E8A - _02067A2C - 2; case 133
- .short _02067E8A - _02067A2C - 2; case 134
- .short _02067E8A - _02067A2C - 2; case 135
- .short _02067E8A - _02067A2C - 2; case 136
- .short _02067E8A - _02067A2C - 2; case 137
- .short _02067E8A - _02067A2C - 2; case 138
- .short _02067E8A - _02067A2C - 2; case 139
- .short _02067E8A - _02067A2C - 2; case 140
- .short _02067E8A - _02067A2C - 2; case 141
- .short _02067E8A - _02067A2C - 2; case 142
- .short _02067ECE - _02067A2C - 2; case 143
- .short _02067EE2 - _02067A2C - 2; case 144
- .short _02067EEE - _02067A2C - 2; case 145
- .short _02067EF6 - _02067A2C - 2; case 146
- .short _02067EFE - _02067A2C - 2; case 147
- .short _02067F06 - _02067A2C - 2; case 148
- .short _02067F0E - _02067A2C - 2; case 149
- .short _02067F16 - _02067A2C - 2; case 150
- .short _02067F1E - _02067A2C - 2; case 151
- .short _02067F26 - _02067A2C - 2; case 152
- .short _02067F2E - _02067A2C - 2; case 153
- .short _02067F36 - _02067A2C - 2; case 154
- .short _02067F3E - _02067A2C - 2; case 155
- .short _02067F52 - _02067A2C - 2; case 156
- .short _02067F66 - _02067A2C - 2; case 157
- .short _02067F6E - _02067A2C - 2; case 158
- .short _02067FF6 - _02067A2C - 2; case 159
- .short _02067FF6 - _02067A2C - 2; case 160
- .short _02067FF6 - _02067A2C - 2; case 161
- .short _02067FF6 - _02067A2C - 2; case 162
- .short _02067FF6 - _02067A2C - 2; case 163
- .short _02067FF6 - _02067A2C - 2; case 164
- .short _02067FF6 - _02067A2C - 2; case 165
- .short _02067FF6 - _02067A2C - 2; case 166
- .short _02067FF6 - _02067A2C - 2; case 167
- .short _02067FF6 - _02067A2C - 2; case 168
- .short _02067FF6 - _02067A2C - 2; case 169
- .short _02067FF6 - _02067A2C - 2; case 170
- .short _02067FF6 - _02067A2C - 2; case 171
- .short _02067FF6 - _02067A2C - 2; case 172
- .short _02067FF6 - _02067A2C - 2; case 173
- .short _02067F76 - _02067A2C - 2; case 174
- .short _02067FF6 - _02067A2C - 2; case 175
- .short _02067FF6 - _02067A2C - 2; case 176
- .short _02067FF6 - _02067A2C - 2; case 177
- .short _02067FDE - _02067A2C - 2; case 178
-_02067B92:
- ldr r0, [sp, #0x0]
- ldr r1, [r4, #0x0]
- add sp, #0x4c
- str r1, [r0, #0x0]
- pop {r4-r7, pc}
-_02067B9C:
- bl ErrorHandling
- ldr r0, [sp, #0x0]
- ldrb r1, [r4, #0x0]
- ldrh r2, [r0, #0x4]
- mov r0, #0x1
- bic r2, r0
- mov r0, #0x1
- and r0, r1
- add r1, r2, #0x0
- orr r1, r0
- ldr r0, [sp, #0x0]
- add sp, #0x4c
- strh r1, [r0, #0x4]
- pop {r4-r7, pc}
-_02067BBA:
- bl ErrorHandling
- ldr r0, [sp, #0x0]
- ldrh r1, [r0, #0x4]
- mov r0, #0x2
- bic r1, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1e
- orr r1, r0
- ldr r0, [sp, #0x0]
- add sp, #0x4c
- strh r1, [r0, #0x4]
- pop {r4-r7, pc}
-_02067BD6:
- ldr r0, [sp, #0x0]
- ldrh r1, [r0, #0x4]
- mov r0, #0x4
- bic r1, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1d
- orr r1, r0
- ldr r0, [sp, #0x0]
- add sp, #0x4c
- strh r1, [r0, #0x4]
- pop {r4-r7, pc}
-_02067BEE:
- ldrh r1, [r4, #0x0]
- ldr r0, [sp, #0x0]
- add sp, #0x4c
- strh r1, [r0, #0x6]
- pop {r4-r7, pc}
-_02067BF8:
- ldrh r0, [r4, #0x0]
- add sp, #0x4c
- strh r0, [r7, #0x0]
- pop {r4-r7, pc}
-_02067C00:
- ldrh r0, [r4, #0x0]
- add sp, #0x4c
- strh r0, [r7, #0x2]
- pop {r4-r7, pc}
-_02067C08:
- ldr r0, [r4, #0x0]
- add sp, #0x4c
- str r0, [r7, #0x4]
- pop {r4-r7, pc}
-_02067C10:
- ldr r0, [r4, #0x0]
- add sp, #0x4c
- str r0, [r7, #0x8]
- pop {r4-r7, pc}
-_02067C18:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0xc]
- pop {r4-r7, pc}
-_02067C20:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0xd]
- pop {r4-r7, pc}
-_02067C28:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0xe]
- pop {r4-r7, pc}
-_02067C30:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0xf]
- pop {r4-r7, pc}
-_02067C38:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x10]
- pop {r4-r7, pc}
-_02067C40:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x11]
- pop {r4-r7, pc}
-_02067C48:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x12]
- pop {r4-r7, pc}
-_02067C50:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x13]
- pop {r4-r7, pc}
-_02067C58:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x14]
- pop {r4-r7, pc}
-_02067C60:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x15]
- pop {r4-r7, pc}
-_02067C68:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x16]
- pop {r4-r7, pc}
-_02067C70:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x17]
- pop {r4-r7, pc}
-_02067C78:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x18]
- pop {r4-r7, pc}
-_02067C80:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x19]
- pop {r4-r7, pc}
-_02067C88:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x1a]
- pop {r4-r7, pc}
-_02067C90:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r7, #0x1b]
- pop {r4-r7, pc}
-_02067C98:
- ldrb r4, [r4, #0x0]
- ldr r2, [sp, #0x4]
- mov r1, #0x0
- sub r2, #0x19
- add r0, r4, #0x0
- str r2, [sp, #0x4]
- bl _ll_shl
- cmp r4, #0x0
- beq _02067CB6
- ldr r1, [r7, #0x1c]
- add sp, #0x4c
- orr r0, r1
- str r0, [r7, #0x1c]
- pop {r4-r7, pc}
-_02067CB6:
- mov r1, #0x0
- sub r1, r1, #0x1
- ldr r2, [r7, #0x1c]
- eor r0, r1
- and r0, r2
- add sp, #0x4c
- str r0, [r7, #0x1c]
- pop {r4-r7, pc}
-_02067CC6:
- ldr r0, [sp, #0x4]
- ldrh r1, [r4, #0x0]
- sub r0, #0x36
- str r0, [sp, #0x4]
- lsl r0, r0, #0x1
- add sp, #0x4c
- strh r1, [r5, r0]
- pop {r4-r7, pc}
-_02067CD6:
- ldr r0, [sp, #0x4]
- ldrb r1, [r4, #0x0]
- sub r0, #0x3a
- str r0, [sp, #0x4]
- add r0, r5, r0
- strb r1, [r0, #0x8]
- add sp, #0x4c
- pop {r4-r7, pc}
-_02067CE6:
- ldr r0, [sp, #0x4]
- ldrb r1, [r4, #0x0]
- sub r0, #0x3e
- str r0, [sp, #0x4]
- add r0, r5, r0
- strb r1, [r0, #0xc]
- add sp, #0x4c
- pop {r4-r7, pc}
-_02067CF6:
- ldr r2, [r5, #0x10]
- mov r0, #0x1f
- bic r2, r0
- ldrb r1, [r4, #0x0]
- mov r0, #0x1f
- add sp, #0x4c
- and r0, r1
- orr r0, r2
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02067D0A:
- ldr r1, [r5, #0x10]
- ldr r0, _02067FFC ; =0xFFFFFC1F
- add sp, #0x4c
- and r1, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x16
- orr r0, r1
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02067D1E:
- ldr r1, [r5, #0x10]
- ldr r0, _02068000 ; =0xFFFF83FF
- add sp, #0x4c
- and r1, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x11
- orr r0, r1
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02067D32:
- ldr r1, [r5, #0x10]
- ldr r0, _02068004 ; =0xFFF07FFF
- add sp, #0x4c
- and r1, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0xc
- orr r0, r1
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02067D46:
- ldr r1, [r5, #0x10]
- ldr r0, _02068008 ; =0xFE0FFFFF
- add sp, #0x4c
- and r1, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x7
- orr r0, r1
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02067D5A:
- ldr r1, [r5, #0x10]
- ldr r0, _0206800C ; =0xC1FFFFFF
- add sp, #0x4c
- and r1, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x2
- orr r0, r1
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02067D6E:
- ldr r1, [r5, #0x10]
- ldr r0, _02068010 ; =0xBFFFFFFF
- add sp, #0x4c
- and r1, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1
- orr r0, r1
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02067D82:
- ldr r1, [r5, #0x10]
- ldr r0, _02068014 ; =0x7FFFFFFF
- add sp, #0x4c
- and r1, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1f
- orr r0, r1
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02067D94:
- ldrb r4, [r4, #0x0]
- ldr r2, [sp, #0x4]
- mov r1, #0x0
- sub r2, #0x4e
- add r0, r4, #0x0
- str r2, [sp, #0x4]
- bl _ll_shl
- cmp r4, #0x0
- beq _02067DB2
- ldr r1, [r5, #0x14]
- add sp, #0x4c
- orr r0, r1
- str r0, [r5, #0x14]
- pop {r4-r7, pc}
-_02067DB2:
- mov r1, #0x0
- sub r1, r1, #0x1
- ldr r2, [r5, #0x14]
- eor r0, r1
- and r0, r2
- add sp, #0x4c
- str r0, [r5, #0x14]
- pop {r4-r7, pc}
-_02067DC2:
- ldrb r2, [r5, #0x18]
- ldrb r1, [r4, #0x0]
- mov r0, #0x1
- bic r2, r0
- mov r0, #0x1
- and r0, r1
- orr r0, r2
- add sp, #0x4c
- strb r0, [r5, #0x18]
- pop {r4-r7, pc}
-_02067DD6:
- ldrb r1, [r5, #0x18]
- mov r0, #0x6
- add sp, #0x4c
- bic r1, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1d
- orr r0, r1
- strb r0, [r5, #0x18]
- pop {r4-r7, pc}
-_02067DEA:
- ldrb r1, [r5, #0x18]
- mov r0, #0xf8
- add sp, #0x4c
- bic r1, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x18
- orr r0, r1
- strb r0, [r5, #0x18]
- pop {r4-r7, pc}
-_02067DFE:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r5, #0x19]
- pop {r4-r7, pc}
-_02067E06:
- ldrh r0, [r4, #0x0]
- add sp, #0x4c
- strh r0, [r5, #0x1a]
- pop {r4-r7, pc}
-_02067E0E:
- ldrh r0, [r7, #0x0]
- mov r1, #0x0
- add r2, sp, #0x34
- bl GetSpeciesName
- add r0, sp, #0x34
- add r1, r4, #0x0
- bl StringNotEqual
- ldr r2, [r5, #0x10]
- ldr r1, _02068014 ; =0x7FFFFFFF
- lsl r0, r0, #0x1f
- and r1, r2
- orr r0, r1
- str r0, [r5, #0x10]
-_02067E2C:
- mov r1, #0x0
-_02067E2E:
- ldrh r0, [r4, #0x0]
- add r1, r1, #0x1
- add r4, r4, #0x2
- strh r0, [r6, #0x0]
- add r6, r6, #0x2
- cmp r1, #0xb
- blo _02067E2E
- add sp, #0x4c
- pop {r4-r7, pc}
-_02067E40:
- ldrh r0, [r7, #0x0]
- add r2, sp, #0x1c
- mov r1, #0x0
- add r2, #0x2
- bl GetSpeciesName
- add r0, r4, #0x0
- add r1, sp, #0x8
- mov r2, #0xb
- bl FUN_02021EF0
- add r0, sp, #0x1c
- add r0, #0x2
- add r1, sp, #0x8
- bl StringNotEqual
- ldr r2, [r5, #0x10]
- ldr r1, _02068014 ; =0x7FFFFFFF
- lsl r0, r0, #0x1f
- and r1, r2
- orr r0, r1
- str r0, [r5, #0x10]
-_02067E6C:
- add r0, r4, #0x0
- add r1, r6, #0x0
- mov r2, #0xb
- bl FUN_02021EF0
- add sp, #0x4c
- pop {r4-r7, pc}
-_02067E7A:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r6, #0x16]
- pop {r4-r7, pc}
-_02067E82:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r6, #0x17]
- pop {r4-r7, pc}
-_02067E8A:
- ldrb r4, [r4, #0x0]
- ldr r2, [sp, #0x4]
- mov r1, #0x0
- sub r2, #0x7a
- add r0, r4, #0x0
- str r2, [sp, #0x4]
- bl _ll_shl
- cmp r4, #0x0
- beq _02067EB2
- add r4, r6, #0x0
- add r4, #0x18
- ldr r3, [r6, #0x18]
- ldr r2, [r4, #0x4]
- orr r0, r3
- orr r1, r2
- str r0, [r6, #0x18]
- add sp, #0x4c
- str r1, [r4, #0x4]
- pop {r4-r7, pc}
-_02067EB2:
- add r4, r6, #0x0
- mov r5, #0x0
- mvn r5, r5
- add r4, #0x18
- ldr r3, [r6, #0x18]
- eor r0, r5
- ldr r2, [r4, #0x4]
- eor r1, r5
- and r0, r3
- and r1, r2
- str r0, [r6, #0x18]
- add sp, #0x4c
- str r1, [r4, #0x4]
- pop {r4-r7, pc}
-_02067ECE:
- mov r2, #0x0
-_02067ED0:
- ldrh r0, [r4, #0x0]
- add r2, r2, #0x1
- add r4, r4, #0x2
- strh r0, [r1, #0x0]
- add r1, r1, #0x2
- cmp r2, #0x8
- blo _02067ED0
- add sp, #0x4c
- pop {r4-r7, pc}
-_02067EE2:
- add r0, r4, #0x0
- mov r2, #0x8
- bl FUN_02021EF0
- add sp, #0x4c
- pop {r4-r7, pc}
-_02067EEE:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r1, #0x10]
- pop {r4-r7, pc}
-_02067EF6:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r1, #0x11]
- pop {r4-r7, pc}
-_02067EFE:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r1, #0x12]
- pop {r4-r7, pc}
-_02067F06:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r1, #0x13]
- pop {r4-r7, pc}
-_02067F0E:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r1, #0x14]
- pop {r4-r7, pc}
-_02067F16:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r1, #0x15]
- pop {r4-r7, pc}
-_02067F1E:
- ldrh r0, [r4, #0x0]
- add sp, #0x4c
- strh r0, [r1, #0x16]
- pop {r4-r7, pc}
-_02067F26:
- ldrh r0, [r4, #0x0]
- add sp, #0x4c
- strh r0, [r1, #0x18]
- pop {r4-r7, pc}
-_02067F2E:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r1, #0x1a]
- pop {r4-r7, pc}
-_02067F36:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r1, #0x1b]
- pop {r4-r7, pc}
-_02067F3E:
- ldrb r3, [r1, #0x1c]
- ldrb r2, [r4, #0x0]
- mov r0, #0x7f
- bic r3, r0
- mov r0, #0x7f
- and r0, r2
- orr r0, r3
- strb r0, [r1, #0x1c]
- add sp, #0x4c
- pop {r4-r7, pc}
-_02067F52:
- ldrb r2, [r1, #0x1c]
- mov r0, #0x80
- add sp, #0x4c
- bic r2, r0
- ldrb r0, [r4, #0x0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x18
- orr r0, r2
- strb r0, [r1, #0x1c]
- pop {r4-r7, pc}
-_02067F66:
- ldrb r0, [r4, #0x0]
- add sp, #0x4c
- strb r0, [r1, #0x1d]
- pop {r4-r7, pc}
-_02067F6E:
- ldrh r0, [r4, #0x0]
- add sp, #0x4c
- strh r0, [r1, #0x1e]
- pop {r4-r7, pc}
-_02067F76:
- ldr r2, [r5, #0x10]
- mov r0, #0x1f
- bic r2, r0
- ldr r1, [r4, #0x0]
- mov r0, #0x1f
- and r1, r0
- and r0, r1
- add r1, r2, #0x0
- orr r1, r0
- ldr r0, _02067FFC ; =0xFFFFFC1F
- str r1, [r5, #0x10]
- and r1, r0
- ldr r0, [r4, #0x0]
- add sp, #0x4c
- lsr r0, r0, #0x5
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x16
- orr r1, r0
- ldr r0, _02068000 ; =0xFFFF83FF
- str r1, [r5, #0x10]
- and r1, r0
- ldr r0, [r4, #0x0]
- lsr r0, r0, #0xa
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x11
- orr r1, r0
- ldr r0, _02068004 ; =0xFFF07FFF
- str r1, [r5, #0x10]
- and r1, r0
- ldr r0, [r4, #0x0]
- lsr r0, r0, #0xf
- lsl r0, r0, #0x1b
- lsr r0, r0, #0xc
- orr r1, r0
- ldr r0, _02068008 ; =0xFE0FFFFF
- str r1, [r5, #0x10]
- and r1, r0
- ldr r0, [r4, #0x0]
- lsr r0, r0, #0x14
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x7
- orr r1, r0
- ldr r0, _0206800C ; =0xC1FFFFFF
- str r1, [r5, #0x10]
- and r1, r0
- ldr r0, [r4, #0x0]
- lsr r0, r0, #0x19
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x2
- orr r0, r1
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02067FDE:
- ldrh r0, [r7, #0x0]
- mov r1, #0x0
- bl FUN_0200AA50
- add r4, r0, #0x0
- add r1, r6, #0x0
- mov r2, #0xb
- bl FUN_02021EF0
- add r0, r4, #0x0
- bl FUN_02021A20
-_02067FF6:
- add sp, #0x4c
- pop {r4-r7, pc}
- nop
-_02067FFC: .word 0xFFFFFC1F
-_02068000: .word 0xFFFF83FF
-_02068004: .word 0xFFF07FFF
-_02068008: .word 0xFE0FFFFF
-_0206800C: .word 0xC1FFFFFF
-_02068010: .word 0xBFFFFFFF
-_02068014: .word 0x7FFFFFFF
-
- thumb_func_start AddMonPartyStatEncrypted
-AddMonPartyStatEncrypted: ; 0x02068018
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldrh r0, [r5, #0x4]
- add r4, r1, #0x0
- add r6, r2, #0x0
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- bne _02068066
- add r0, r5, #0x0
- ldr r2, [r5, #0x0]
- add r0, #0x88
- mov r1, #0x64
- bl MonDecryptSegment
- add r0, r5, #0x0
- ldrh r2, [r5, #0x6]
- add r0, #0x8
- mov r1, #0x80
- bl MonDecryptSegment
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl CalcMonChecksum
- ldrh r1, [r5, #0x6]
- cmp r0, r1
- beq _02068066
- cmp r0, r1
- beq _02068058
- bl ErrorHandling
-_02068058:
- ldrh r2, [r5, #0x6]
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl MonEncryptSegment
- pop {r4-r6, pc}
-_02068066:
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl AddMonPartyStat
- ldrh r0, [r5, #0x4]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- bne _0206809C
- add r0, r5, #0x0
- ldr r2, [r5, #0x0]
- add r0, #0x88
- mov r1, #0x64
- bl MonEncryptSegment
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl CalcMonChecksum
- strh r0, [r5, #0x6]
- add r0, r5, #0x0
- ldrh r2, [r5, #0x6]
- add r0, #0x8
- mov r1, #0x80
- bl MonEncryptSegment
-_0206809C:
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start AddMonPartyStat
-AddMonPartyStat: ; 0x020680A0
- push {r3, lr}
- add r3, r1, #0x0
- sub r3, #0x9f
- cmp r3, #0xa
- bhi _020680F8
- add r3, r3, r3
- add r3, pc
- ldrh r3, [r3, #0x6]
- lsl r3, r3, #0x10
- asr r3, r3, #0x10
- add pc, r3
-_020680B6: ; jump table (using 16-bit offset)
- .short _020680F2 - _020680B6 - 2; case 0
- .short _020680F2 - _020680B6 - 2; case 1
- .short _020680F2 - _020680B6 - 2; case 2
- .short _020680CC - _020680B6 - 2; case 3
- .short _020680F2 - _020680B6 - 2; case 4
- .short _020680F2 - _020680B6 - 2; case 5
- .short _020680F2 - _020680B6 - 2; case 6
- .short _020680F2 - _020680B6 - 2; case 7
- .short _020680F2 - _020680B6 - 2; case 8
- .short _020680F2 - _020680B6 - 2; case 9
- .short _020680F2 - _020680B6 - 2; case 10
-_020680CC:
- add r1, r0, #0x0
- add r1, #0x90
- ldrh r3, [r1, #0x0]
- add r1, r0, #0x0
- add r1, #0x8e
- ldrh r1, [r1, #0x0]
- add r1, r1, r2
- cmp r1, r3
- ble _020680E4
- add r0, #0x8e
- strh r3, [r0, #0x0]
- pop {r3, pc}
-_020680E4:
- add r1, r0, #0x0
- add r1, #0x8e
- ldrh r1, [r1, #0x0]
- add r0, #0x8e
- add r1, r1, r2
- strh r1, [r0, #0x0]
- pop {r3, pc}
-_020680F2:
- bl ErrorHandling
- pop {r3, pc}
-_020680F8:
- bl FUN_02068100
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02068100
-FUN_02068100: ; 0x02068100
- push {r4-r7, lr}
- sub sp, #0xc
- add r7, r1, #0x0
- add r1, r0, #0x0
- add r6, r2, #0x0
- ldr r1, [r1, #0x0]
- str r0, [sp, #0x0]
- mov r2, #0x0
- bl GetSubstruct
- add r4, r0, #0x0
- ldr r0, [sp, #0x0]
- mov r2, #0x1
- add r1, r0, #0x0
- ldr r1, [r1, #0x0]
- bl GetSubstruct
- add r5, r0, #0x0
- ldr r0, [sp, #0x0]
- mov r2, #0x2
- add r1, r0, #0x0
- ldr r1, [r1, #0x0]
- bl GetSubstruct
- ldr r0, [sp, #0x0]
- mov r2, #0x3
- add r1, r0, #0x0
- ldr r1, [r1, #0x0]
- bl GetSubstruct
- cmp r7, #0xb2
- bls _02068142
- b _02068500
-_02068142:
- add r0, r7, r7
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0206814E: ; jump table (using 16-bit offset)
- .short _02068500 - _0206814E - 2; case 0
- .short _02068500 - _0206814E - 2; case 1
- .short _02068500 - _0206814E - 2; case 2
- .short _02068500 - _0206814E - 2; case 3
- .short _02068500 - _0206814E - 2; case 4
- .short _02068500 - _0206814E - 2; case 5
- .short _02068500 - _0206814E - 2; case 6
- .short _02068500 - _0206814E - 2; case 7
- .short _020682B4 - _0206814E - 2; case 8
- .short _020682D8 - _0206814E - 2; case 9
- .short _02068500 - _0206814E - 2; case 10
- .short _02068500 - _0206814E - 2; case 11
- .short _02068500 - _0206814E - 2; case 12
- .short _020682EE - _0206814E - 2; case 13
- .short _020682F8 - _0206814E - 2; case 14
- .short _02068302 - _0206814E - 2; case 15
- .short _0206830C - _0206814E - 2; case 16
- .short _02068316 - _0206814E - 2; case 17
- .short _02068320 - _0206814E - 2; case 18
- .short _0206832A - _0206814E - 2; case 19
- .short _02068340 - _0206814E - 2; case 20
- .short _02068356 - _0206814E - 2; case 21
- .short _0206836C - _0206814E - 2; case 22
- .short _02068382 - _0206814E - 2; case 23
- .short _02068398 - _0206814E - 2; case 24
- .short _02068500 - _0206814E - 2; case 25
- .short _02068500 - _0206814E - 2; case 26
- .short _02068500 - _0206814E - 2; case 27
- .short _02068500 - _0206814E - 2; case 28
- .short _02068500 - _0206814E - 2; case 29
- .short _02068500 - _0206814E - 2; case 30
- .short _02068500 - _0206814E - 2; case 31
- .short _02068500 - _0206814E - 2; case 32
- .short _02068500 - _0206814E - 2; case 33
- .short _02068500 - _0206814E - 2; case 34
- .short _02068500 - _0206814E - 2; case 35
- .short _02068500 - _0206814E - 2; case 36
- .short _02068500 - _0206814E - 2; case 37
- .short _02068500 - _0206814E - 2; case 38
- .short _02068500 - _0206814E - 2; case 39
- .short _02068500 - _0206814E - 2; case 40
- .short _02068500 - _0206814E - 2; case 41
- .short _02068500 - _0206814E - 2; case 42
- .short _02068500 - _0206814E - 2; case 43
- .short _02068500 - _0206814E - 2; case 44
- .short _02068500 - _0206814E - 2; case 45
- .short _02068500 - _0206814E - 2; case 46
- .short _02068500 - _0206814E - 2; case 47
- .short _02068500 - _0206814E - 2; case 48
- .short _02068500 - _0206814E - 2; case 49
- .short _02068500 - _0206814E - 2; case 50
- .short _02068500 - _0206814E - 2; case 51
- .short _02068500 - _0206814E - 2; case 52
- .short _02068500 - _0206814E - 2; case 53
- .short _02068500 - _0206814E - 2; case 54
- .short _02068500 - _0206814E - 2; case 55
- .short _02068500 - _0206814E - 2; case 56
- .short _02068500 - _0206814E - 2; case 57
- .short _020683AE - _0206814E - 2; case 58
- .short _020683AE - _0206814E - 2; case 59
- .short _020683AE - _0206814E - 2; case 60
- .short _020683AE - _0206814E - 2; case 61
- .short _020683EA - _0206814E - 2; case 62
- .short _020683EA - _0206814E - 2; case 63
- .short _020683EA - _0206814E - 2; case 64
- .short _020683EA - _0206814E - 2; case 65
- .short _02068504 - _0206814E - 2; case 66
- .short _02068504 - _0206814E - 2; case 67
- .short _02068504 - _0206814E - 2; case 68
- .short _02068504 - _0206814E - 2; case 69
- .short _02068404 - _0206814E - 2; case 70
- .short _0206842E - _0206814E - 2; case 71
- .short _02068458 - _0206814E - 2; case 72
- .short _02068482 - _0206814E - 2; case 73
- .short _020684AC - _0206814E - 2; case 74
- .short _020684D6 - _0206814E - 2; case 75
- .short _02068500 - _0206814E - 2; case 76
- .short _02068500 - _0206814E - 2; case 77
- .short _02068500 - _0206814E - 2; case 78
- .short _02068500 - _0206814E - 2; case 79
- .short _02068500 - _0206814E - 2; case 80
- .short _02068500 - _0206814E - 2; case 81
- .short _02068500 - _0206814E - 2; case 82
- .short _02068500 - _0206814E - 2; case 83
- .short _02068500 - _0206814E - 2; case 84
- .short _02068500 - _0206814E - 2; case 85
- .short _02068500 - _0206814E - 2; case 86
- .short _02068500 - _0206814E - 2; case 87
- .short _02068500 - _0206814E - 2; case 88
- .short _02068500 - _0206814E - 2; case 89
- .short _02068500 - _0206814E - 2; case 90
- .short _02068500 - _0206814E - 2; case 91
- .short _02068500 - _0206814E - 2; case 92
- .short _02068500 - _0206814E - 2; case 93
- .short _02068500 - _0206814E - 2; case 94
- .short _02068500 - _0206814E - 2; case 95
- .short _02068500 - _0206814E - 2; case 96
- .short _02068500 - _0206814E - 2; case 97
- .short _02068500 - _0206814E - 2; case 98
- .short _02068500 - _0206814E - 2; case 99
- .short _02068500 - _0206814E - 2; case 100
- .short _02068500 - _0206814E - 2; case 101
- .short _02068500 - _0206814E - 2; case 102
- .short _02068500 - _0206814E - 2; case 103
- .short _02068500 - _0206814E - 2; case 104
- .short _02068500 - _0206814E - 2; case 105
- .short _02068500 - _0206814E - 2; case 106
- .short _02068500 - _0206814E - 2; case 107
- .short _02068500 - _0206814E - 2; case 108
- .short _02068500 - _0206814E - 2; case 109
- .short _02068500 - _0206814E - 2; case 110
- .short _02068500 - _0206814E - 2; case 111
- .short _02068500 - _0206814E - 2; case 112
- .short _02068500 - _0206814E - 2; case 113
- .short _02068500 - _0206814E - 2; case 114
- .short _02068500 - _0206814E - 2; case 115
- .short _02068500 - _0206814E - 2; case 116
- .short _02068500 - _0206814E - 2; case 117
- .short _02068500 - _0206814E - 2; case 118
- .short _02068500 - _0206814E - 2; case 119
- .short _02068500 - _0206814E - 2; case 120
- .short _02068500 - _0206814E - 2; case 121
- .short _02068500 - _0206814E - 2; case 122
- .short _02068500 - _0206814E - 2; case 123
- .short _02068500 - _0206814E - 2; case 124
- .short _02068500 - _0206814E - 2; case 125
- .short _02068500 - _0206814E - 2; case 126
- .short _02068500 - _0206814E - 2; case 127
- .short _02068500 - _0206814E - 2; case 128
- .short _02068500 - _0206814E - 2; case 129
- .short _02068500 - _0206814E - 2; case 130
- .short _02068500 - _0206814E - 2; case 131
- .short _02068500 - _0206814E - 2; case 132
- .short _02068500 - _0206814E - 2; case 133
- .short _02068500 - _0206814E - 2; case 134
- .short _02068500 - _0206814E - 2; case 135
- .short _02068500 - _0206814E - 2; case 136
- .short _02068500 - _0206814E - 2; case 137
- .short _02068500 - _0206814E - 2; case 138
- .short _02068500 - _0206814E - 2; case 139
- .short _02068500 - _0206814E - 2; case 140
- .short _02068500 - _0206814E - 2; case 141
- .short _02068500 - _0206814E - 2; case 142
- .short _02068500 - _0206814E - 2; case 143
- .short _02068500 - _0206814E - 2; case 144
- .short _02068500 - _0206814E - 2; case 145
- .short _02068500 - _0206814E - 2; case 146
- .short _02068500 - _0206814E - 2; case 147
- .short _02068500 - _0206814E - 2; case 148
- .short _02068500 - _0206814E - 2; case 149
- .short _02068500 - _0206814E - 2; case 150
- .short _02068500 - _0206814E - 2; case 151
- .short _02068500 - _0206814E - 2; case 152
- .short _02068500 - _0206814E - 2; case 153
- .short _02068500 - _0206814E - 2; case 154
- .short _02068500 - _0206814E - 2; case 155
- .short _02068500 - _0206814E - 2; case 156
- .short _02068500 - _0206814E - 2; case 157
- .short _02068500 - _0206814E - 2; case 158
- .short _02068500 - _0206814E - 2; case 159
- .short _02068500 - _0206814E - 2; case 160
- .short _02068500 - _0206814E - 2; case 161
- .short _02068500 - _0206814E - 2; case 162
- .short _02068500 - _0206814E - 2; case 163
- .short _02068500 - _0206814E - 2; case 164
- .short _02068500 - _0206814E - 2; case 165
- .short _02068500 - _0206814E - 2; case 166
- .short _02068500 - _0206814E - 2; case 167
- .short _02068500 - _0206814E - 2; case 168
- .short _02068500 - _0206814E - 2; case 169
- .short _02068500 - _0206814E - 2; case 170
- .short _02068500 - _0206814E - 2; case 171
- .short _02068500 - _0206814E - 2; case 172
- .short _02068500 - _0206814E - 2; case 173
- .short _02068500 - _0206814E - 2; case 174
- .short _02068500 - _0206814E - 2; case 175
- .short _02068500 - _0206814E - 2; case 176
- .short _02068500 - _0206814E - 2; case 177
- .short _02068500 - _0206814E - 2; case 178
-_020682B4:
- ldrh r0, [r4, #0x0]
- mov r1, #0x64
- bl GetMonExpByLevel
- ldr r1, [r4, #0x8]
- add r1, r1, r6
- cmp r1, r0
- bls _020682D2
- ldrh r0, [r4, #0x0]
- mov r1, #0x64
- bl GetMonExpByLevel
- add sp, #0xc
- str r0, [r4, #0x8]
- pop {r4-r7, pc}
-_020682D2:
- add sp, #0xc
- str r1, [r4, #0x8]
- pop {r4-r7, pc}
-_020682D8:
- ldrb r0, [r4, #0xc]
- add r0, r0, r6
- cmp r0, #0xff
- ble _020682E8
- mov r0, #0xff
- add sp, #0xc
- strb r0, [r4, #0xc]
- pop {r4-r7, pc}
-_020682E8:
- add sp, #0xc
- strb r0, [r4, #0xc]
- pop {r4-r7, pc}
-_020682EE:
- ldrb r0, [r4, #0x10]
- add sp, #0xc
- add r0, r0, r6
- strb r0, [r4, #0x10]
- pop {r4-r7, pc}
-_020682F8:
- ldrb r0, [r4, #0x11]
- add sp, #0xc
- add r0, r0, r6
- strb r0, [r4, #0x11]
- pop {r4-r7, pc}
-_02068302:
- ldrb r0, [r4, #0x12]
- add sp, #0xc
- add r0, r0, r6
- strb r0, [r4, #0x12]
- pop {r4-r7, pc}
-_0206830C:
- ldrb r0, [r4, #0x13]
- add sp, #0xc
- add r0, r0, r6
- strb r0, [r4, #0x13]
- pop {r4-r7, pc}
-_02068316:
- ldrb r0, [r4, #0x14]
- add sp, #0xc
- add r0, r0, r6
- strb r0, [r4, #0x14]
- pop {r4-r7, pc}
-_02068320:
- ldrb r0, [r4, #0x15]
- add sp, #0xc
- add r0, r0, r6
- strb r0, [r4, #0x15]
- pop {r4-r7, pc}
-_0206832A:
- ldrb r0, [r4, #0x16]
- add r0, r0, r6
- cmp r0, #0xff
- ble _0206833A
- mov r0, #0xff
- add sp, #0xc
- strb r0, [r4, #0x16]
- pop {r4-r7, pc}
-_0206833A:
- add sp, #0xc
- strb r0, [r4, #0x16]
- pop {r4-r7, pc}
-_02068340:
- ldrb r0, [r4, #0x17]
- add r0, r0, r6
- cmp r0, #0xff
- ble _02068350
- mov r0, #0xff
- add sp, #0xc
- strb r0, [r4, #0x17]
- pop {r4-r7, pc}
-_02068350:
- add sp, #0xc
- strb r0, [r4, #0x17]
- pop {r4-r7, pc}
-_02068356:
- ldrb r0, [r4, #0x18]
- add r0, r0, r6
- cmp r0, #0xff
- ble _02068366
- mov r0, #0xff
- add sp, #0xc
- strb r0, [r4, #0x18]
- pop {r4-r7, pc}
-_02068366:
- add sp, #0xc
- strb r0, [r4, #0x18]
- pop {r4-r7, pc}
-_0206836C:
- ldrb r0, [r4, #0x19]
- add r0, r0, r6
- cmp r0, #0xff
- ble _0206837C
- mov r0, #0xff
- add sp, #0xc
- strb r0, [r4, #0x19]
- pop {r4-r7, pc}
-_0206837C:
- add sp, #0xc
- strb r0, [r4, #0x19]
- pop {r4-r7, pc}
-_02068382:
- ldrb r0, [r4, #0x1a]
- add r0, r0, r6
- cmp r0, #0xff
- ble _02068392
- mov r0, #0xff
- add sp, #0xc
- strb r0, [r4, #0x1a]
- pop {r4-r7, pc}
-_02068392:
- add sp, #0xc
- strb r0, [r4, #0x1a]
- pop {r4-r7, pc}
-_02068398:
- ldrb r0, [r4, #0x1b]
- add r0, r0, r6
- cmp r0, #0xff
- ble _020683A8
- mov r0, #0xff
- add sp, #0xc
- strb r0, [r4, #0x1b]
- pop {r4-r7, pc}
-_020683A8:
- add sp, #0xc
- strb r0, [r4, #0x1b]
- pop {r4-r7, pc}
-_020683AE:
- add r0, r5, #0x0
- str r0, [sp, #0x4]
- add r0, #0xc
- str r0, [sp, #0x4]
- sub r7, #0x3a
- ldr r1, [sp, #0x4]
- lsl r0, r7, #0x1
- str r0, [sp, #0x8]
- add r4, r5, #0x0
- ldrh r0, [r5, r0]
- ldrb r1, [r1, r7]
- add r4, #0x8
- bl FUN_0206AB30
- ldrb r1, [r4, r7]
- add r1, r6, r1
- cmp r1, r0
- ble _020683E4
- ldr r0, [sp, #0x8]
- ldr r1, [sp, #0x4]
- ldrh r0, [r5, r0]
- ldrb r1, [r1, r7]
- bl FUN_0206AB30
- add sp, #0xc
- strb r0, [r4, r7]
- pop {r4-r7, pc}
-_020683E4:
- add sp, #0xc
- strb r1, [r4, r7]
- pop {r4-r7, pc}
-_020683EA:
- add r5, #0xc
- sub r7, #0x3e
- ldrb r0, [r5, r7]
- add r0, r6, r0
- cmp r0, #0x3
- ble _020683FE
- mov r0, #0x3
- add sp, #0xc
- strb r0, [r5, r7]
- pop {r4-r7, pc}
-_020683FE:
- add sp, #0xc
- strb r0, [r5, r7]
- pop {r4-r7, pc}
-_02068404:
- ldr r1, [r5, #0x10]
- lsl r0, r1, #0x1b
- lsr r0, r0, #0x1b
- add r2, r0, r6
- cmp r2, #0x1f
- bls _0206841E
- mov r0, #0x1f
- bic r1, r0
- mov r0, #0x1f
- orr r0, r1
- add sp, #0xc
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_0206841E:
- mov r0, #0x1f
- bic r1, r0
- mov r0, #0x1f
- and r0, r2
- orr r0, r1
- add sp, #0xc
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_0206842E:
- ldr r1, [r5, #0x10]
- lsl r0, r1, #0x16
- lsr r0, r0, #0x1b
- add r2, r0, r6
- cmp r2, #0x1f
- ldr r0, _02068508 ; =0xFFFFFC1F
- bls _0206844A
- and r1, r0
- mov r0, #0x3e
- lsl r0, r0, #0x4
- orr r0, r1
- add sp, #0xc
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_0206844A:
- and r1, r0
- lsl r0, r2, #0x1b
- lsr r0, r0, #0x16
- orr r0, r1
- add sp, #0xc
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02068458:
- ldr r1, [r5, #0x10]
- lsl r0, r1, #0x11
- lsr r0, r0, #0x1b
- add r2, r0, r6
- cmp r2, #0x1f
- ldr r0, _0206850C ; =0xFFFF83FF
- bls _02068474
- and r1, r0
- mov r0, #0x1f
- lsl r0, r0, #0xa
- orr r0, r1
- add sp, #0xc
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02068474:
- and r1, r0
- lsl r0, r2, #0x1b
- lsr r0, r0, #0x11
- orr r0, r1
- add sp, #0xc
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02068482:
- ldr r1, [r5, #0x10]
- lsl r0, r1, #0xc
- lsr r0, r0, #0x1b
- add r2, r0, r6
- cmp r2, #0x1f
- ldr r0, _02068510 ; =0xFFF07FFF
- bls _0206849E
- and r1, r0
- mov r0, #0x3e
- lsl r0, r0, #0xe
- orr r0, r1
- add sp, #0xc
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_0206849E:
- and r1, r0
- lsl r0, r2, #0x1b
- lsr r0, r0, #0xc
- orr r0, r1
- add sp, #0xc
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_020684AC:
- ldr r1, [r5, #0x10]
- lsl r0, r1, #0x7
- lsr r0, r0, #0x1b
- add r2, r0, r6
- cmp r2, #0x1f
- ldr r0, _02068514 ; =0xFE0FFFFF
- bls _020684C8
- and r1, r0
- mov r0, #0x1f
- lsl r0, r0, #0x14
- orr r0, r1
- add sp, #0xc
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_020684C8:
- and r1, r0
- lsl r0, r2, #0x1b
- lsr r0, r0, #0x7
- orr r0, r1
- add sp, #0xc
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_020684D6:
- ldr r1, [r5, #0x10]
- lsl r0, r1, #0x2
- lsr r0, r0, #0x1b
- add r2, r0, r6
- cmp r2, #0x1f
- ldr r0, _02068518 ; =0xC1FFFFFF
- bls _020684F2
- and r1, r0
- mov r0, #0x3e
- lsl r0, r0, #0x18
- orr r0, r1
- add sp, #0xc
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_020684F2:
- and r1, r0
- lsl r0, r2, #0x1b
- lsr r0, r0, #0x2
- orr r0, r1
- add sp, #0xc
- str r0, [r5, #0x10]
- pop {r4-r7, pc}
-_02068500:
- bl ErrorHandling
-_02068504:
- add sp, #0xc
- pop {r4-r7, pc}
- .balign 4
-_02068508: .word 0xFFFFFC1F
-_0206850C: .word 0xFFFF83FF
-_02068510: .word 0xFFF07FFF
-_02068514: .word 0xFE0FFFFF
-_02068518: .word 0xC1FFFFFF
-
- thumb_func_start AllocAndLoadMonPersonal
-AllocAndLoadMonPersonal: ; 0x0206851C
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r0, r1, #0x0
- mov r1, #0x2c
- bl AllocFromHeap
- add r4, r0, #0x0
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl LoadMonPersonal
- add r0, r4, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start GetPersonalAttr
-GetPersonalAttr: ; 0x02068538
- push {r4-r6, lr}
- add r4, r0, #0x0
- add r6, r1, #0x0
- cmp r4, #0x0
- bne _02068546
- bl ErrorHandling
-_02068546:
- cmp r6, #0x20
- bhi _0206863A
- add r0, r6, r6
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02068556: ; jump table (using 16-bit offset)
- .short _02068598 - _02068556 - 2; case 0
- .short _0206859C - _02068556 - 2; case 1
- .short _020685A0 - _02068556 - 2; case 2
- .short _020685A4 - _02068556 - 2; case 3
- .short _020685A8 - _02068556 - 2; case 4
- .short _020685AC - _02068556 - 2; case 5
- .short _020685B0 - _02068556 - 2; case 6
- .short _020685B4 - _02068556 - 2; case 7
- .short _020685B8 - _02068556 - 2; case 8
- .short _020685BC - _02068556 - 2; case 9
- .short _020685C0 - _02068556 - 2; case 10
- .short _020685C8 - _02068556 - 2; case 11
- .short _020685D0 - _02068556 - 2; case 12
- .short _020685D8 - _02068556 - 2; case 13
- .short _020685E0 - _02068556 - 2; case 14
- .short _020685E8 - _02068556 - 2; case 15
- .short _020685F0 - _02068556 - 2; case 16
- .short _020685F4 - _02068556 - 2; case 17
- .short _020685F8 - _02068556 - 2; case 18
- .short _020685FC - _02068556 - 2; case 19
- .short _02068600 - _02068556 - 2; case 20
- .short _02068604 - _02068556 - 2; case 21
- .short _02068608 - _02068556 - 2; case 22
- .short _0206860C - _02068556 - 2; case 23
- .short _02068610 - _02068556 - 2; case 24
- .short _02068614 - _02068556 - 2; case 25
- .short _02068618 - _02068556 - 2; case 26
- .short _0206861C - _02068556 - 2; case 27
- .short _02068624 - _02068556 - 2; case 28
- .short _0206862C - _02068556 - 2; case 29
- .short _02068630 - _02068556 - 2; case 30
- .short _02068634 - _02068556 - 2; case 31
- .short _02068638 - _02068556 - 2; case 32
-_02068598:
- ldrb r5, [r4, #0x0]
- b _0206863A
-_0206859C:
- ldrb r5, [r4, #0x1]
- b _0206863A
-_020685A0:
- ldrb r5, [r4, #0x2]
- b _0206863A
-_020685A4:
- ldrb r5, [r4, #0x3]
- b _0206863A
-_020685A8:
- ldrb r5, [r4, #0x4]
- b _0206863A
-_020685AC:
- ldrb r5, [r4, #0x5]
- b _0206863A
-_020685B0:
- ldrb r5, [r4, #0x6]
- b _0206863A
-_020685B4:
- ldrb r5, [r4, #0x7]
- b _0206863A
-_020685B8:
- ldrb r5, [r4, #0x8]
- b _0206863A
-_020685BC:
- ldrb r5, [r4, #0x9]
- b _0206863A
-_020685C0:
- ldrh r0, [r4, #0xa]
- lsl r0, r0, #0x1e
- lsr r5, r0, #0x1e
- b _0206863A
-_020685C8:
- ldrh r0, [r4, #0xa]
- lsl r0, r0, #0x1c
- lsr r5, r0, #0x1e
- b _0206863A
-_020685D0:
- ldrh r0, [r4, #0xa]
- lsl r0, r0, #0x1a
- lsr r5, r0, #0x1e
- b _0206863A
-_020685D8:
- ldrh r0, [r4, #0xa]
- lsl r0, r0, #0x18
- lsr r5, r0, #0x1e
- b _0206863A
-_020685E0:
- ldrh r0, [r4, #0xa]
- lsl r0, r0, #0x16
- lsr r5, r0, #0x1e
- b _0206863A
-_020685E8:
- ldrh r0, [r4, #0xa]
- lsl r0, r0, #0x14
- lsr r5, r0, #0x1e
- b _0206863A
-_020685F0:
- ldrh r5, [r4, #0xc]
- b _0206863A
-_020685F4:
- ldrh r5, [r4, #0xe]
- b _0206863A
-_020685F8:
- ldrb r5, [r4, #0x10]
- b _0206863A
-_020685FC:
- ldrb r5, [r4, #0x11]
- b _0206863A
-_02068600:
- ldrb r5, [r4, #0x12]
- b _0206863A
-_02068604:
- ldrb r5, [r4, #0x13]
- b _0206863A
-_02068608:
- ldrb r5, [r4, #0x14]
- b _0206863A
-_0206860C:
- ldrb r5, [r4, #0x15]
- b _0206863A
-_02068610:
- ldrb r5, [r4, #0x16]
- b _0206863A
-_02068614:
- ldrb r5, [r4, #0x17]
- b _0206863A
-_02068618:
- ldrb r5, [r4, #0x18]
- b _0206863A
-_0206861C:
- ldrb r0, [r4, #0x19]
- lsl r0, r0, #0x19
- lsr r5, r0, #0x19
- b _0206863A
-_02068624:
- ldrb r0, [r4, #0x19]
- lsl r0, r0, #0x18
- lsr r5, r0, #0x1f
- b _0206863A
-_0206862C:
- ldr r5, [r4, #0x1c]
- b _0206863A
-_02068630:
- ldr r5, [r4, #0x20]
- b _0206863A
-_02068634:
- ldr r5, [r4, #0x24]
- b _0206863A
-_02068638:
- ldr r5, [r4, #0x28]
-_0206863A:
- add r0, r5, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FreeMonPersonal
-FreeMonPersonal: ; 0x02068640
- push {r4, lr}
- add r4, r0, #0x0
- bne _0206864A
- bl ErrorHandling
-_0206864A:
- add r0, r4, #0x0
- bl FreeToHeap
- pop {r4, pc}
- .balign 4
-
- thumb_func_start GetMonBaseStat_HandleFormeConversion
-GetMonBaseStat_HandleFormeConversion: ; 0x02068654
- push {r3-r5, lr}
- add r4, r2, #0x0
- bl ResolveMonForme
- mov r1, #0x0
- bl AllocAndLoadMonPersonal
- add r5, r0, #0x0
- add r1, r4, #0x0
- bl GetPersonalAttr
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl FreeMonPersonal
- add r0, r4, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start GetMonBaseStat
-GetMonBaseStat: ; 0x02068678
- push {r3-r5, lr}
- add r4, r1, #0x0
- mov r1, #0x0
- bl AllocAndLoadMonPersonal
- add r5, r0, #0x0
- add r1, r4, #0x0
- bl GetPersonalAttr
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl FreeMonPersonal
- add r0, r4, #0x0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02068698
-FUN_02068698: ; 0x02068698
- push {r3-r7, lr}
- add r5, r0, #0x0
- bl TryDecryptMon
- str r0, [sp, #0x0]
- add r0, r5, #0x0
- mov r1, #0x5
- mov r2, #0x0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r6, r0, #0x10
- add r0, r5, #0x0
- mov r1, #0xa0
- mov r2, #0x0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x18
- lsr r7, r0, #0x18
- add r0, r6, #0x0
- add r1, r7, #0x0
- bl GetMonExpByLevel
- add r4, r0, #0x0
- add r0, r6, #0x0
- add r1, r7, #0x1
- bl GetMonExpByLevel
- add r6, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0x8
- mov r2, #0x0
- bl GetMonDataEncrypted
- add r7, r0, #0x0
- ldr r1, [sp, #0x0]
- add r0, r5, #0x0
- bl TryEncryptMon
- sub r1, r7, r4
- mov r0, #0x64
- mul r0, r1
- sub r1, r6, r4
- bl _u32_div_f
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- pop {r3-r7, pc}
-
- thumb_func_start CalcMonExpToNextLevelEncrypted
-CalcMonExpToNextLevelEncrypted: ; 0x020686F8
- ldr r3, _020686FC ; =CalcBoxMonExpToNextLevelEncrypted
- bx r3
- .balign 4
-_020686FC: .word CalcBoxMonExpToNextLevelEncrypted
-
- thumb_func_start CalcBoxMonExpToNextLevelEncrypted
-CalcBoxMonExpToNextLevelEncrypted: ; 0x02068700
- push {r4-r6, lr}
- mov r1, #0x5
- mov r2, #0x0
- add r4, r0, #0x0
- bl GetBoxMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r6, r0, #0x10
- add r0, r4, #0x0
- bl CalcBoxMonLevelEncrypted
- add r0, r0, #0x1
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- add r0, r4, #0x0
- mov r1, #0x8
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- add r4, r0, #0x0
- add r0, r6, #0x0
- add r1, r5, #0x0
- bl GetMonExpByLevel
- sub r0, r0, r4
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02068734
-FUN_02068734: ; 0x02068734
- push {r3-r5, lr}
- add r5, r0, #0x0
- mov r1, #0x5
- mov r2, #0x0
- bl GetMonDataEncrypted
- add r4, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0xa0
- mov r2, #0x0
- bl GetMonDataEncrypted
- add r1, r0, #0x0
- add r0, r4, #0x0
- bl GetMonExpByLevel
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start GetMonExpByLevel
-GetMonExpByLevel: ; 0x02068758
- push {r4, lr}
- add r4, r1, #0x0
- mov r1, #0x15
- bl GetMonBaseStat
- add r1, r4, #0x0
- bl GetExpByGrowthRateAndLevel
- pop {r4, pc}
- .balign 4
-
- thumb_func_start LoadGrowthTable
-LoadGrowthTable: ; 0x0206876C
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- cmp r5, #0x8
- blt _0206877A
- bl ErrorHandling
-_0206877A:
- add r0, r4, #0x0
- mov r1, #0x3 ; NARC_POKETOOL_PERSONAL_GROWTBL
- add r2, r5, #0x0
- bl ReadWholeNarcMemberByIdPair
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start GetExpByGrowthRateAndLevel
-GetExpByGrowthRateAndLevel: ; 0x02068788
- push {r4-r6, lr}
- add r6, r0, #0x0
- add r5, r1, #0x0
- cmp r6, #0x8
- blt _02068796
- bl ErrorHandling
-_02068796:
- cmp r5, #0x65
- ble _0206879E
- bl ErrorHandling
-_0206879E:
- mov r1, #0x65
- mov r0, #0x0
- lsl r1, r1, #0x2
- bl AllocFromHeap
- add r4, r0, #0x0
- add r0, r6, #0x0
- add r1, r4, #0x0
- bl LoadGrowthTable
- lsl r0, r5, #0x2
- ldr r5, [r4, r0]
- add r0, r4, #0x0
- bl FreeToHeap
- add r0, r5, #0x0
- pop {r4-r6, pc}
-
- thumb_func_start CalcMonLevelEncrypted
-CalcMonLevelEncrypted: ; 0x020687C0
- ldr r3, _020687C4 ; =CalcBoxMonLevelEncrypted
- bx r3
- .balign 4
-_020687C4: .word CalcBoxMonLevelEncrypted
-
- thumb_func_start CalcBoxMonLevelEncrypted
-CalcBoxMonLevelEncrypted: ; 0x020687C8
- push {r3-r7, lr}
- add r5, r0, #0x0
- bl TryDecryptBoxMon
- add r6, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0x5
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- add r4, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0x8
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- add r7, r0, #0x0
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl TryEncryptBoxMon
- lsl r0, r4, #0x10
- lsr r0, r0, #0x10
- add r1, r7, #0x0
- bl CalcLevelBySpeciesAndExp
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start CalcLevelBySpeciesAndExp
-CalcLevelBySpeciesAndExp: ; 0x02068800
- push {r4-r6, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- mov r1, #0x0
- bl AllocAndLoadMonPersonal
- add r6, r0, #0x0
- add r1, r5, #0x0
- add r2, r4, #0x0
- bl CalcLevelBySpeciesAndExp_PreloadedPersonal
- add r4, r0, #0x0
- add r0, r6, #0x0
- bl FreeMonPersonal
- add r0, r4, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start CalcLevelBySpeciesAndExp_PreloadedPersonal
-CalcLevelBySpeciesAndExp_PreloadedPersonal: ; 0x02068824
- push {r4, lr}
- mov r1, #0x15
- add r4, r2, #0x0
- bl GetPersonalAttr
- ldr r1, _0206884C ; =UNK_021C5AC0
- bl LoadGrowthTable
- ldr r2, _02068850 ; =UNK_021C5AC0 + 4
- mov r1, #0x1
-_02068838:
- ldr r0, [r2, #0x0]
- cmp r0, r4
- bhi _02068846
- add r1, r1, #0x1
- add r2, r2, #0x4
- cmp r1, #0x65
- blt _02068838
-_02068846:
- sub r0, r1, #0x1
- pop {r4, pc}
- nop
-_0206884C: .word UNK_021C5AC0
-_02068850: .word UNK_021C5AC0 + 4
-
- thumb_func_start GetMonNatureEncrypted
-GetMonNatureEncrypted: ; 0x02068854
- ldr r3, _02068858 ; =GetBoxMonNatureEncrypted
- bx r3
- .balign 4
-_02068858: .word GetBoxMonNatureEncrypted
-
- thumb_func_start GetBoxMonNatureEncrypted
-GetBoxMonNatureEncrypted: ; 0x0206885C
- push {r4-r6, lr}
- add r5, r0, #0x0
- bl TryDecryptBoxMon
- mov r1, #0x0
- add r4, r0, #0x0
- add r0, r5, #0x0
- add r2, r1, #0x0
- bl GetBoxMonDataEncrypted
- add r6, r0, #0x0
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl TryEncryptBoxMon
- add r0, r6, #0x0
- bl GetNatureFromPersonality
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start GetNatureFromPersonality
-GetNatureFromPersonality: ; 0x02068884
- push {r3, lr}
- mov r1, #0x19
- bl _u32_div_f
- lsl r0, r1, #0x18
- lsr r0, r0, #0x18
- pop {r3, pc}
- .balign 4
-
- thumb_func_start ApplyNatureModToStat
-ApplyNatureModToStat: ; 0x02068894
- push {r3, lr}
- cmp r2, #0x1
- blo _0206889E
- cmp r2, #0x5
- bls _020688A2
-_0206889E:
- add r0, r1, #0x0
- pop {r3, pc}
-_020688A2:
- lsl r3, r0, #0x2
- add r3, r0, r3
- ldr r0, _020688E4 ; =sNatureStatMods
- sub r2, r2, #0x1
- add r0, r0, r3
- ldrsb r2, [r2, r0]
- mov r0, #0x0
- mvn r0, r0
- cmp r2, r0
- beq _020688CE
- cmp r2, #0x1
- bne _020688E0
- mov r0, #110
- mul r0, r1
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r1, #100
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
- b _020688E0
-_020688CE:
- mov r0, #90
- mul r0, r1
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r1, #100
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
-_020688E0:
- add r0, r1, #0x0
- pop {r3, pc}
- .balign 4
-_020688E4: .word sNatureStatMods
-
- thumb_func_start MonApplyFriendshipModEncrypted
-MonApplyFriendshipModEncrypted: ; 0x020688E8
- push {r3-r7, lr}
- sub sp, #0x8
- add r6, r1, #0x0
- add r5, r0, #0x0
- str r2, [sp, #0x0]
- cmp r6, #0x5
- bne _02068900
- bl rand_LC
- mov r1, #0x1
- tst r0, r1
- bne _020689D4
-_02068900:
- add r0, r5, #0x0
- mov r1, #0xad
- mov r2, #0x0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
- beq _020689D4
- ldr r0, _020689D8 ; =SPECIES_EGG
- cmp r1, r0
- beq _020689D4
- add r0, r5, #0x0
- mov r1, #0x6
- mov r2, #0x0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r1, #0x1
- mov r2, #0x0
- bl FUN_0206E7B8
- lsl r0, r0, #0x18
- mov r4, #0x0
- lsr r7, r0, #0x18
- add r0, r5, #0x0
- mov r1, #0x9
- add r2, r4, #0x0
- bl GetMonDataEncrypted
- add r1, sp, #0x4
- strh r0, [r1, #0x0]
- add r0, r4, #0x0
- ldrsh r1, [r1, r0]
- cmp r1, #0x64
- blt _0206894E
- add r0, r4, #0x1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
-_0206894E:
- cmp r1, #0xc8
- blt _02068958
- add r0, r4, #0x1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
-_02068958:
- lsl r0, r6, #0x1
- add r1, r6, r0
- ldr r0, _020689DC ; =sFriendshipModTable
- add r0, r0, r1
- ldrsb r4, [r4, r0]
- cmp r4, #0x0
- ble _0206897A
- add r0, r5, #0x0
- mov r1, #0x9a
- mov r2, #0x0
- bl GetMonDataEncrypted
- cmp r0, #0xb
- bne _0206897A
- add r0, r4, #0x1
- lsl r0, r0, #0x18
- asr r4, r0, #0x18
-_0206897A:
- cmp r4, #0x0
- ble _02068994
- add r0, r5, #0x0
- mov r1, #0x97
- mov r2, #0x0
- bl GetMonDataEncrypted
- ldr r1, [sp, #0x0]
- cmp r1, r0
- bne _02068994
- add r0, r4, #0x1
- lsl r0, r0, #0x18
- asr r4, r0, #0x18
-_02068994:
- cmp r4, #0x0
- ble _020689AA
- cmp r7, #0x34
- bne _020689AA
- mov r0, #0x96
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x18
- asr r4, r0, #0x18
-_020689AA:
- add r0, sp, #0x4
- mov r1, #0x0
- ldrsh r2, [r0, r1]
- add r2, r2, r4
- strh r2, [r0, #0x0]
- ldrsh r2, [r0, r1]
- cmp r2, #0x0
- bge _020689BC
- strh r1, [r0, #0x0]
-_020689BC:
- add r1, sp, #0x4
- mov r0, #0x0
- ldrsh r0, [r1, r0]
- cmp r0, #0xff
- ble _020689CA
- mov r0, #0xff
- strh r0, [r1, #0x0]
-_020689CA:
- add r0, r5, #0x0
- mov r1, #0x9
- add r2, sp, #0x4
- bl SetMonDataEncrypted
-_020689D4:
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-_020689D8: .word SPECIES_EGG
-_020689DC: .word sFriendshipModTable
-
- thumb_func_start GetMonGenderEncrypted
-GetMonGenderEncrypted: ; 0x020689E0
- ldr r3, _020689E4 ; =GetBoxMonGenderEncrypted
- bx r3
- .balign 4
-_020689E4: .word GetBoxMonGenderEncrypted
-
- thumb_func_start GetBoxMonGenderEncrypted
-GetBoxMonGenderEncrypted: ; 0x020689E8
- push {r3-r7, lr}
- add r5, r0, #0x0
- bl TryDecryptBoxMon
- add r6, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0x5
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- lsl r0, r0, #0x10
- mov r1, #0x0
- lsr r4, r0, #0x10
- add r0, r5, #0x0
- add r2, r1, #0x0
- bl GetBoxMonDataEncrypted
- add r7, r0, #0x0
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl TryEncryptBoxMon
- add r0, r4, #0x0
- add r1, r7, #0x0
- bl GetGenderBySpeciesAndPersonality
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start GetGenderBySpeciesAndPersonality
-GetGenderBySpeciesAndPersonality: ; 0x02068A20
- push {r4-r6, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- mov r1, #0x0
- bl AllocAndLoadMonPersonal
- add r6, r0, #0x0
- add r1, r5, #0x0
- add r2, r4, #0x0
- bl GetGenderBySpeciesAndPersonality_PreloadedPersonal
- add r4, r0, #0x0
- add r0, r6, #0x0
- bl FreeMonPersonal
- add r0, r4, #0x0
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start GetGenderBySpeciesAndPersonality_PreloadedPersonal
-GetGenderBySpeciesAndPersonality_PreloadedPersonal: ; 0x02068A44
- push {r4, lr}
- mov r1, #0x12
- add r4, r2, #0x0
- bl GetPersonalAttr
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- beq _02068A5E
- cmp r1, #0xfe
- beq _02068A62
- cmp r1, #0xff
- beq _02068A66
- b _02068A6A
-_02068A5E:
- mov r0, #0x0
- pop {r4, pc}
-_02068A62:
- mov r0, #0x1
- pop {r4, pc}
-_02068A66:
- mov r0, #0x2
- pop {r4, pc}
-_02068A6A:
- lsl r0, r4, #0x18
- lsr r0, r0, #0x18
- cmp r1, r0
- bls _02068A76
- mov r0, #0x1
- b _02068A78
-_02068A76:
- mov r0, #0x0
-_02068A78:
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02068A80
-FUN_02068A80: ; 0x02068A80
- ldr r3, _02068A84 ; =FUN_02068A88
- bx r3
- .balign 4
-_02068A84: .word FUN_02068A88
-
- thumb_func_start FUN_02068A88
-FUN_02068A88: ; 0x02068A88
- push {r3-r5, lr}
- mov r1, #0x7
- mov r2, #0x0
- add r5, r0, #0x0
- bl GetBoxMonDataEncrypted
- mov r1, #0x0
- add r4, r0, #0x0
- add r0, r5, #0x0
- add r2, r1, #0x0
- bl GetBoxMonDataEncrypted
- add r1, r0, #0x0
- add r0, r4, #0x0
- bl FUN_02068AAC
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02068AAC
-FUN_02068AAC: ; 0x02068AAC
- ldr r3, _02068AD4 ; =0xFFFF0000
- lsl r2, r1, #0x10
- and r1, r3
- and r3, r0
- lsl r0, r0, #0x10
- lsr r3, r3, #0x10
- lsr r0, r0, #0x10
- lsr r1, r1, #0x10
- eor r0, r3
- lsr r2, r2, #0x10
- eor r0, r1
- eor r0, r2
- cmp r0, #0x8
- bhs _02068ACC
- mov r0, #0x1
- b _02068ACE
-_02068ACC:
- mov r0, #0x0
-_02068ACE:
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bx lr
- .balign 4
-_02068AD4: .word 0xFFFF0000
-
- thumb_func_start FUN_02068AD8
-FUN_02068AD8: ; 0x02068AD8
- push {r3-r7, lr}
- add r7, r0, #0x0
- ldr r0, _02068B64 ; =0xFFFF0000
- and r0, r7
- lsr r1, r0, #0x10
- lsl r0, r7, #0x10
- lsr r0, r0, #0x10
- eor r0, r1
- lsr r7, r0, #0x3
- bl rand_LC
- mov r1, #0x7
- and r0, r1
- lsl r0, r0, #0x10
- lsr r6, r0, #0x10
- bl rand_LC
- mov r1, #0x7
- and r0, r1
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- mov r4, #0x0
-_02068B04:
- add r0, r4, #0x0
- bl MaskOfFlagNo
- tst r0, r7
- beq _02068B34
- bl rand_LC
- mov r1, #0x1
- tst r0, r1
- beq _02068B26
- add r0, r4, #0x3
- bl MaskOfFlagNo
- orr r0, r6
- lsl r0, r0, #0x10
- lsr r6, r0, #0x10
- b _02068B56
-_02068B26:
- add r0, r4, #0x3
- bl MaskOfFlagNo
- orr r0, r5
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- b _02068B56
-_02068B34:
- bl rand_LC
- mov r1, #0x1
- tst r0, r1
- beq _02068B56
- add r0, r4, #0x3
- bl MaskOfFlagNo
- orr r0, r6
- lsl r0, r0, #0x10
- lsr r6, r0, #0x10
- add r0, r4, #0x3
- bl MaskOfFlagNo
- orr r0, r5
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
-_02068B56:
- add r4, r4, #0x1
- cmp r4, #0xd
- blt _02068B04
- lsl r0, r5, #0x10
- orr r0, r6
- pop {r3-r7, pc}
- nop
-_02068B64: .word 0xFFFF0000
-
- thumb_func_start FUN_02068B68
-FUN_02068B68: ; 0x02068B68
- ldr r3, _02068B6C ; =FUN_02068B70
- bx r3
- .balign 4
-_02068B6C: .word FUN_02068B70
-
- thumb_func_start FUN_02068B70
-FUN_02068B70: ; 0x02068B70
- push {r4-r7, lr}
- sub sp, #0x1c
- add r5, r1, #0x0
- str r0, [sp, #0xc]
- add r0, r5, #0x0
- str r2, [sp, #0x10]
- bl TryDecryptBoxMon
- str r0, [sp, #0x18]
- add r0, r5, #0x0
- mov r1, #0xad
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- add r0, r5, #0x0
- bl GetBoxMonGenderEncrypted
- str r0, [sp, #0x14]
- add r0, r5, #0x0
- bl FUN_02068A88
- mov r1, #0x0
- add r7, r0, #0x0
- add r0, r5, #0x0
- add r2, r1, #0x0
- bl GetBoxMonDataEncrypted
- add r6, r0, #0x0
- ldr r0, _02068BF8 ; =SPECIES_EGG
- cmp r4, r0
- bne _02068BCA
- add r0, r5, #0x0
- mov r1, #0x5
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- ldr r1, _02068BFC ; =0x000001EA
- cmp r0, r1
- bne _02068BC6
- mov r0, #0x1
- b _02068BD8
-_02068BC6:
- mov r0, #0x0
- b _02068BD8
-_02068BCA:
- add r0, r5, #0x0
- mov r1, #0x70
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
-_02068BD8:
- str r7, [sp, #0x0]
- str r0, [sp, #0x4]
- str r6, [sp, #0x8]
- ldr r0, [sp, #0xc]
- ldr r2, [sp, #0x14]
- ldr r3, [sp, #0x10]
- add r1, r4, #0x0
- bl FUN_02068C00
- ldr r1, [sp, #0x18]
- add r0, r5, #0x0
- bl TryEncryptBoxMon
- add sp, #0x1c
- pop {r4-r7, pc}
- nop
-_02068BF8: .word SPECIES_EGG
-_02068BFC: .word 0x000001EA
-
- thumb_func_start FUN_02068C00
-FUN_02068C00: ; 0x02068C00
- push {r4-r7}
- add r7, r2, #0x0
- add r5, r3, #0x0
- add r4, r0, #0x0
- add r0, r1, #0x0
- ldr r3, [sp, #0x10]
- ldr r2, [sp, #0x14]
- mov r1, #0x0
- strh r1, [r4, #0x6]
- strb r1, [r4, #0x8]
- str r1, [r4, #0xc]
- ldr r1, _02068E0C ; =0x000001A5
- cmp r0, r1
- bgt _02068C68
- bge _02068D1E
- add r6, r1, #0x0
- sub r6, #0x46
- cmp r0, r6
- bgt _02068C36
- sub r1, #0x46
- cmp r0, r1
- blt _02068C2E
- b _02068D58
-_02068C2E:
- cmp r0, #0xc9
- bne _02068C34
- b _02068D90
-_02068C34:
- b _02068DD4
-_02068C36:
- add r6, r1, #0x0
- sub r6, #0x23
- cmp r0, r6
- bgt _02068C48
- sub r1, #0x23
- cmp r0, r1
- bne _02068C46
- b _02068D76
-_02068C46:
- b _02068DD4
-_02068C48:
- add r6, r1, #0x0
- sub r6, #0x8
- cmp r0, r6
- bgt _02068C66
- add r6, r1, #0x0
- sub r6, #0x9
- cmp r0, r6
- blt _02068C66
- add r6, r1, #0x0
- sub r6, #0x9
- cmp r0, r6
- beq _02068CAA
- sub r1, #0x8
- cmp r0, r1
- beq _02068CC8
-_02068C66:
- b _02068DD4
-_02068C68:
- add r6, r1, #0x0
- add r6, #0x48
- cmp r0, r6
- bgt _02068C8E
- add r6, r1, #0x0
- add r6, #0x48
- cmp r0, r6
- bge _02068D3A
- add r6, r1, #0x2
- cmp r0, r6
- bgt _02068C8C
- add r6, r1, #0x1
- cmp r0, r6
- blt _02068C8C
- beq _02068CE6
- add r1, r1, #0x2
- cmp r0, r1
- beq _02068D02
-_02068C8C:
- b _02068DD4
-_02068C8E:
- add r6, r1, #0x0
- add r6, #0x49
- cmp r0, r6
- bgt _02068CA0
- add r1, #0x49
- cmp r0, r1
- bne _02068C9E
- b _02068DAC
-_02068C9E:
- b _02068DD4
-_02068CA0:
- add r1, #0x4a
- cmp r0, r1
- bne _02068CA8
- b _02068DC4
-_02068CA8:
- b _02068DD4
-_02068CAA:
- cmp r2, #0x2
- bls _02068CB0
- mov r2, #0x0
-_02068CB0:
- mov r0, #0x75
- strh r0, [r4, #0x0]
- lsr r0, r5, #0x1
- lsl r1, r2, #0x1
- add r0, #0x48
- add r0, r0, r1
- add r3, #0x92
- strh r0, [r4, #0x2]
- add r0, r3, r1
- strh r0, [r4, #0x4]
- pop {r4-r7}
- bx lr
-_02068CC8:
- cmp r2, #0x2
- bls _02068CCE
- mov r2, #0x0
-_02068CCE:
- mov r0, #0x75
- strh r0, [r4, #0x0]
- lsr r0, r5, #0x1
- lsl r1, r2, #0x1
- add r0, #0x4e
- add r0, r0, r1
- add r3, #0x98
- strh r0, [r4, #0x2]
- add r0, r3, r1
- strh r0, [r4, #0x4]
- pop {r4-r7}
- bx lr
-_02068CE6:
- cmp r2, #0x1
- bls _02068CEC
- mov r2, #0x0
-_02068CEC:
- mov r0, #0x75
- add r5, #0x54
- strh r0, [r4, #0x0]
- add r0, r5, r2
- strh r0, [r4, #0x2]
- add r3, #0x9e
- lsl r0, r2, #0x1
- add r0, r3, r0
- strh r0, [r4, #0x4]
- pop {r4-r7}
- bx lr
-_02068D02:
- cmp r2, #0x1
- bls _02068D08
- mov r2, #0x0
-_02068D08:
- mov r0, #0x75
- add r5, #0x58
- strh r0, [r4, #0x0]
- add r0, r5, r2
- strh r0, [r4, #0x2]
- add r3, #0xa2
- lsl r0, r2, #0x1
- add r0, r3, r0
- strh r0, [r4, #0x4]
- pop {r4-r7}
- bx lr
-_02068D1E:
- cmp r2, #0x1
- bls _02068D24
- mov r2, #0x0
-_02068D24:
- mov r0, #0x75
- add r5, #0x5c
- strh r0, [r4, #0x0]
- add r0, r5, r2
- strh r0, [r4, #0x2]
- lsl r0, r3, #0x1
- add r0, #0xa6
- add r0, r2, r0
- strh r0, [r4, #0x4]
- pop {r4-r7}
- bx lr
-_02068D3A:
- cmp r2, #0x11
- bls _02068D40
- mov r2, #0x0
-_02068D40:
- mov r0, #0x75
- strh r0, [r4, #0x0]
- lsr r0, r5, #0x1
- lsl r1, r2, #0x1
- add r0, #0x60
- add r0, r0, r1
- add r3, #0xaa
- strh r0, [r4, #0x2]
- add r0, r3, r1
- strh r0, [r4, #0x4]
- pop {r4-r7}
- bx lr
-_02068D58:
- cmp r2, #0x3
- bls _02068D5E
- mov r2, #0x0
-_02068D5E:
- mov r0, #0x75
- strh r0, [r4, #0x0]
- lsl r0, r5, #0x1
- add r0, #0x40
- add r0, r2, r0
- strh r0, [r4, #0x2]
- lsl r0, r3, #0x2
- add r0, #0x8a
- add r0, r2, r0
- strh r0, [r4, #0x4]
- pop {r4-r7}
- bx lr
-_02068D76:
- cmp r2, #0x3
- bls _02068D7C
- mov r2, #0x0
-_02068D7C:
- mov r0, #0x75
- strh r0, [r4, #0x0]
- lsr r1, r5, #0x1
- lsl r0, r2, #0x1
- add r0, r1, r0
- strh r0, [r4, #0x2]
- add r3, #0x86
- strh r3, [r4, #0x4]
- pop {r4-r7}
- bx lr
-_02068D90:
- cmp r2, #0x1c
- blo _02068D96
- mov r2, #0x0
-_02068D96:
- mov r0, #0x75
- lsr r1, r5, #0x1
- strh r0, [r4, #0x0]
- add r1, #0x8
- lsl r0, r2, #0x1
- add r0, r1, r0
- strh r0, [r4, #0x2]
- add r3, #0x88
- strh r3, [r4, #0x4]
- pop {r4-r7}
- bx lr
-_02068DAC:
- cmp r2, #0x1
- bls _02068DB2
- mov r2, #0x0
-_02068DB2:
- mov r0, #0x75
- strh r0, [r4, #0x0]
- add r0, r2, #0x0
- add r0, #0x84
- strh r0, [r4, #0x2]
- add r2, #0xce
- strh r2, [r4, #0x4]
- pop {r4-r7}
- bx lr
-_02068DC4:
- mov r0, #0x75
- strh r0, [r4, #0x0]
- mov r0, #0x84
- strh r0, [r4, #0x2]
- mov r0, #0xce
- strh r0, [r4, #0x4]
- pop {r4-r7}
- bx lr
-_02068DD4:
- mov r1, #0x4
- strh r1, [r4, #0x0]
- cmp r7, #0x1
- beq _02068DE0
- mov r2, #0x1
- b _02068DE2
-_02068DE0:
- mov r2, #0x0
-_02068DE2:
- mov r1, #0x6
- mul r1, r0
- add r6, r5, r1
- add r2, r6, r2
- add r1, r1, #0x4
- strh r2, [r4, #0x2]
- add r1, r3, r1
- strh r1, [r4, #0x4]
- ldr r1, _02068E10 ; =0x00000147
- cmp r0, r1
- bne _02068E06
- cmp r5, #0x2
- bne _02068E06
- strh r1, [r4, #0x6]
- mov r0, #0x0
- strb r0, [r4, #0x8]
- ldr r0, [sp, #0x18]
- str r0, [r4, #0xc]
-_02068E06:
- pop {r4-r7}
- bx lr
- nop
-_02068E0C: .word 0x000001A5
-_02068E10: .word 0x00000147
-
- thumb_func_start FUN_02068E14
-FUN_02068E14: ; 0x02068E14
- ldr r3, _02068E18 ; =FUN_02068E1C
- bx r3
- .balign 4
-_02068E18: .word FUN_02068E1C
-
- thumb_func_start FUN_02068E1C
-FUN_02068E1C: ; 0x02068E1C
- push {r3-r7, lr}
- sub sp, #0x8
- add r7, r1, #0x0
- mov r1, #0xad
- mov r2, #0x0
- add r5, r0, #0x0
- bl GetBoxMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- add r0, r5, #0x0
- bl GetBoxMonGenderEncrypted
- mov r1, #0x0
- str r0, [sp, #0x4]
- add r0, r5, #0x0
- add r2, r1, #0x0
- bl GetBoxMonDataEncrypted
- add r6, r0, #0x0
- ldr r0, _02068E80 ; =SPECIES_EGG
- cmp r4, r0
- bne _02068E62
- add r0, r5, #0x0
- mov r1, #0x5
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- ldr r1, _02068E84 ; =0x000001EA
- cmp r0, r1
- bne _02068E5E
- mov r3, #0x1
- b _02068E70
-_02068E5E:
- mov r3, #0x0
- b _02068E70
-_02068E62:
- add r0, r5, #0x0
- mov r1, #0x70
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- lsl r0, r0, #0x18
- lsr r3, r0, #0x18
-_02068E70:
- str r6, [sp, #0x0]
- ldr r1, [sp, #0x4]
- add r0, r4, #0x0
- add r2, r7, #0x0
- bl FUN_02068E88
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-_02068E80: .word SPECIES_EGG
-_02068E84: .word 0x000001EA
-
- thumb_func_start FUN_02068E88
-FUN_02068E88: ; 0x02068E88
- push {r3-r5, lr}
- ldr r4, _02068FDC ; =0x000001A5
- cmp r0, r4
- bgt _02068ED6
- bge _02068F54
- add r5, r4, #0x0
- sub r5, #0x46
- cmp r0, r5
- bgt _02068EA6
- sub r4, #0x46
- cmp r0, r4
- bge _02068F74
- cmp r0, #0xc9
- beq _02068F94
- b _02068FB8
-_02068EA6:
- add r5, r4, #0x0
- sub r5, #0x23
- cmp r0, r5
- bgt _02068EB6
- sub r4, #0x23
- cmp r0, r4
- beq _02068F84
- b _02068FB8
-_02068EB6:
- add r5, r4, #0x0
- sub r5, #0x8
- cmp r0, r5
- bgt _02068FB8
- add r5, r4, #0x0
- sub r5, #0x9
- cmp r0, r5
- blt _02068FB8
- add r5, r4, #0x0
- sub r5, #0x9
- cmp r0, r5
- beq _02068F14
- sub r4, #0x8
- cmp r0, r4
- beq _02068F26
- b _02068FB8
-_02068ED6:
- add r5, r4, #0x0
- add r5, #0x48
- cmp r0, r5
- bgt _02068EFC
- add r5, r4, #0x0
- add r5, #0x48
- cmp r0, r5
- bge _02068F62
- add r5, r4, #0x2
- cmp r0, r5
- bgt _02068FB8
- add r5, r4, #0x1
- cmp r0, r5
- blt _02068FB8
- beq _02068F38
- add r4, r4, #0x2
- cmp r0, r4
- beq _02068F46
- b _02068FB8
-_02068EFC:
- add r5, r4, #0x0
- add r5, #0x49
- cmp r0, r5
- bgt _02068F0C
- add r4, #0x49
- cmp r0, r4
- beq _02068FA6
- b _02068FB8
-_02068F0C:
- add r4, #0x4a
- cmp r0, r4
- beq _02068FB2
- b _02068FB8
-_02068F14:
- cmp r3, #0x2
- bls _02068F1A
- mov r3, #0x0
-_02068F1A:
- lsr r1, r2, #0x1
- add r1, #0x48
- lsl r0, r3, #0x1
- mov r4, #0x79 ; NARC_POKETOOL_POKEGRA_HEIGHT_O
- add r3, r1, r0
- b _02068FCA
-_02068F26:
- cmp r3, #0x2
- bls _02068F2C
- mov r3, #0x0
-_02068F2C:
- lsr r1, r2, #0x1
- add r1, #0x4e
- lsl r0, r3, #0x1
- mov r4, #0x79 ; NARC_POKETOOL_POKEGRA_HEIGHT_O
- add r3, r1, r0
- b _02068FCA
-_02068F38:
- cmp r3, #0x1
- bls _02068F3E
- mov r3, #0x0
-_02068F3E:
- add r2, #0x54
- mov r4, #0x79 ; NARC_POKETOOL_POKEGRA_HEIGHT_O
- add r3, r2, r3
- b _02068FCA
-_02068F46:
- cmp r3, #0x1
- bls _02068F4C
- mov r3, #0x0
-_02068F4C:
- add r2, #0x58
- mov r4, #0x79 ; NARC_POKETOOL_POKEGRA_HEIGHT_O
- add r3, r2, r3
- b _02068FCA
-_02068F54:
- cmp r3, #0x1
- bls _02068F5A
- mov r3, #0x0
-_02068F5A:
- add r2, #0x5c
- mov r4, #0x79 ; NARC_POKETOOL_POKEGRA_HEIGHT_O
- add r3, r2, r3
- b _02068FCA
-_02068F62:
- cmp r3, #0x11
- bls _02068F68
- mov r3, #0x0
-_02068F68:
- lsr r1, r2, #0x1
- add r1, #0x60
- lsl r0, r3, #0x1
- mov r4, #0x79 ; NARC_POKETOOL_POKEGRA_HEIGHT_O
- add r3, r1, r0
- b _02068FCA
-_02068F74:
- cmp r3, #0x3
- bls _02068F7A
- mov r3, #0x0
-_02068F7A:
- lsl r0, r2, #0x1
- add r0, #0x40
- mov r4, #0x79 ; NARC_POKETOOL_POKEGRA_HEIGHT_O
- add r3, r3, r0
- b _02068FCA
-_02068F84:
- cmp r3, #0x3
- bls _02068F8A
- mov r3, #0x0
-_02068F8A:
- lsr r1, r2, #0x1
- lsl r0, r3, #0x1
- mov r4, #0x79 ; NARC_POKETOOL_POKEGRA_HEIGHT_O
- add r3, r1, r0
- b _02068FCA
-_02068F94:
- cmp r3, #0x1c
- blo _02068F9A
- mov r3, #0x0
-_02068F9A:
- lsr r1, r2, #0x1
- add r1, #0x8
- lsl r0, r3, #0x1
- mov r4, #0x79 ; NARC_POKETOOL_POKEGRA_HEIGHT_O
- add r3, r1, r0
- b _02068FCA
-_02068FA6:
- cmp r3, #0x1
- bls _02068FAC
- mov r3, #0x0
-_02068FAC:
- mov r4, #0x79 ; NARC_POKETOOL_POKEGRA_HEIGHT_O
- add r3, #0x84
- b _02068FCA
-_02068FB2:
- mov r4, #0x79 ; NARC_POKETOOL_POKEGRA_HEIGHT_O
- mov r3, #0x84
- b _02068FCA
-_02068FB8:
- mov r4, #0x5 ; NARC_POKETOOL_POKEGRA_HEIGHT
- cmp r1, #0x1
- beq _02068FC2
- mov r1, #0x1
- b _02068FC4
-_02068FC2:
- mov r1, #0x0
-_02068FC4:
- lsl r0, r0, #0x2
- add r0, r2, r0
- add r3, r0, r1
-_02068FCA:
- add r0, sp, #0x0
- add r1, r4, #0x0
- add r2, r3, #0x0
- bl ReadWholeNarcMemberByIdPair
- add r0, sp, #0x0
- ldrb r0, [r0, #0x0]
- pop {r3-r5, pc}
- nop
-_02068FDC: .word 0x000001A5
-
- thumb_func_start FUN_02068FE0
-FUN_02068FE0: ; 0x02068FE0
- push {r4, lr}
- add r4, r0, #0x0
- cmp r2, #0x2
- bne _02068FEE
- mov r0, #0x3c
- strh r0, [r4, #0x0]
- b _02068FFC
-_02068FEE:
- mov r0, #0x6
- strh r0, [r4, #0x0]
- add r0, r1, #0x0
- bl FUN_0206AA30
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
-_02068FFC:
- lsl r0, r1, #0x1
- strh r0, [r4, #0x2]
- add r0, r0, #0x1
- strh r0, [r4, #0x4]
- mov r0, #0x0
- strh r0, [r4, #0x6]
- strb r0, [r4, #0x8]
- str r0, [r4, #0xc]
- pop {r4, pc}
- .balign 4
-
- thumb_func_start FUN_02069010
-FUN_02069010: ; 0x02069010
- push {r3-r5, lr}
- sub sp, #0x20
- add r5, r1, #0x0
- mov r3, #0x1c
- add r4, r0, #0x0
- str r3, [sp, #0x0]
- add r0, sp, #0x4
- mov r1, #0x72 ; NARC_POKETOOL_POKEANM_POKEANM
- mov r2, #0x0
- mul r3, r5
- bl ReadFromNarcMemberByIdPair
- add r0, sp, #0xc
- add r1, r4, #0x0
- mov r2, #0x14
- bl MI_CpuCopy8
- add sp, #0x20
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_02069038
-FUN_02069038: ; 0x02069038
- push {r3-r7, lr}
- sub sp, #0x28
- add r4, r0, #0x0
- add r6, r2, #0x0
- add r5, r3, #0x0
- mov r3, #0x1c
- add r0, sp, #0x8
- add r7, r1, #0x0
- str r3, [sp, #0x0]
- add r0, #0x2
- mov r1, #0x72 ; NARC_POKETOOL_POKEANM_POKEANM
- mov r2, #0x0
- mul r3, r6
- bl ReadFromNarcMemberByIdPair
- cmp r5, #0x2
- bne _0206906C
- add r1, sp, #0x4
- mov r0, #0x6
- ldrsb r0, [r1, r0]
- strh r0, [r1, #0x0]
- ldrb r0, [r1, #0x7]
- strh r0, [r1, #0x2]
- ldr r0, [sp, #0x44]
- strb r0, [r1, #0x4]
- b _02069096
-_0206906C:
- ldr r0, [sp, #0x40]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_02014C3C
- add r5, r0, #0x0
- cmp r5, #0x3
- blt _02069080
- bl ErrorHandling
-_02069080:
- lsl r2, r5, #0x1
- add r0, sp, #0xc
- ldrsb r1, [r0, r2]
- add r0, sp, #0x4
- strh r1, [r0, #0x0]
- add r1, sp, #0xc
- add r1, #0x1
- ldrb r1, [r1, r2]
- strh r1, [r0, #0x2]
- ldr r1, [sp, #0x44]
- strb r1, [r0, #0x4]
-_02069096:
- ldr r3, [sp, #0x48]
- add r0, r4, #0x0
- lsl r3, r3, #0x18
- add r1, r7, #0x0
- add r2, sp, #0x4
- lsr r3, r3, #0x18
- bl FUN_02014C54
- add sp, #0x28
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_020690AC
-FUN_020690AC: ; 0x020690AC
- mov r2, #0x3c
- strh r2, [r0, #0x0]
- lsl r1, r1, #0x1
- strh r1, [r0, #0x2]
- add r1, r1, #0x1
- strh r1, [r0, #0x4]
- mov r1, #0x0
- strh r1, [r0, #0x6]
- strb r1, [r0, #0x8]
- str r1, [r0, #0xc]
- bx lr
- .balign 4
-
- thumb_func_start FUN_020690C4
-FUN_020690C4: ; 0x020690C4
- mov r0, #0xec
- bx lr
-
- thumb_func_start FUN_020690C8
-FUN_020690C8: ; 0x020690C8
- mov r0, #0x88
- bx lr
-
- thumb_func_start FUN_020690CC
-FUN_020690CC: ; 0x020690CC
- ldr r3, _020690D0 ; =FUN_020690D4
- bx r3
- .balign 4
-_020690D0: .word FUN_020690D4
-
- thumb_func_start FUN_020690D4
-FUN_020690D4: ; 0x020690D4
- push {r3, lr}
- mov r1, #0x70
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- pop {r3, pc}
-
- thumb_func_start FUN_020690E4
-FUN_020690E4: ; 0x020690E4
- bx lr
- .balign 4
-
- thumb_func_start FUN_020690E8
-FUN_020690E8: ; 0x020690E8
- push {r3-r5, lr}
- sub sp, #0x8
- mov r1, #0x5
- mov r2, #0x0
- add r4, r0, #0x0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- add r0, r4, #0x0
- mov r1, #0xa0
- mov r2, #0x0
- bl GetMonDataEncrypted
- add r1, r0, #0x1
- add r0, sp, #0x0
- strb r1, [r0, #0x0]
- add r0, r4, #0x0
- mov r1, #0x8
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x4]
- add r0, r5, #0x0
- mov r1, #0x15
- bl GetMonBaseStat
- mov r1, #0x64
- add r5, r0, #0x0
- bl GetExpByGrowthRateAndLevel
- ldr r1, [sp, #0x4]
- cmp r1, r0
- bls _02069138
- str r0, [sp, #0x4]
- add r0, r4, #0x0
- mov r1, #0x8
- add r2, sp, #0x4
- bl SetMonDataEncrypted
-_02069138:
- add r0, sp, #0x0
- ldrb r1, [r0, #0x0]
- cmp r1, #0x64
- bls _02069146
- add sp, #0x8
- mov r0, #0x0
- pop {r3-r5, pc}
-_02069146:
- add r0, r5, #0x0
- bl GetExpByGrowthRateAndLevel
- ldr r1, [sp, #0x4]
- cmp r1, r0
- blo _02069162
- add r0, r4, #0x0
- mov r1, #0xa0
- add r2, sp, #0x0
- bl SetMonDataEncrypted
- add sp, #0x8
- mov r0, #0x1
- pop {r3-r5, pc}
-_02069162:
- mov r0, #0x0
- add sp, #0x8
- pop {r3-r5, pc}
-
- thumb_func_start FUN_02069168
-FUN_02069168: ; 0x02069168
- push {r4-r7, lr}
- sub sp, #0x44
- add r7, r1, #0x0
- str r0, [sp, #0x0]
- mov r6, #0x0
- add r4, r2, #0x0
- add r0, r7, #0x0
- mov r1, #0x5
- add r2, r6, #0x0
- str r3, [sp, #0x4]
- ldr r5, [sp, #0x58]
- bl GetMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x2c]
- add r0, r7, #0x0
- mov r1, #0x6
- add r2, r6, #0x0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- add r1, r6, #0x0
- str r0, [sp, #0x28]
- add r0, r7, #0x0
- add r2, r1, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x30]
- add r0, r7, #0x0
- mov r1, #0x14
- add r2, r6, #0x0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x10]
- ldr r1, _020694A0 ; =0xFFFF0000
- ldr r0, [sp, #0x30]
- add r2, r6, #0x0
- and r0, r1
- lsr r0, r0, #0x10
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x1c]
- ldr r0, [sp, #0x28]
- mov r1, #0x1
- bl FUN_0206E7B8
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- ldr r0, [sp, #0x2c]
- cmp r0, #0x40
- beq _020691E4
- cmp r1, #0x3f
- bne _020691E4
- cmp r4, #0x3
- beq _020691E4
- add sp, #0x44
- add r0, r6, #0x0
- pop {r4-r7, pc}
-_020691E4:
- cmp r5, #0x0
- bne _020691EA
- add r5, sp, #0x40
-_020691EA:
- mov r0, #0x0
- mov r1, #0x2a
- bl AllocFromHeap
- str r0, [sp, #0x18]
- ldr r0, [sp, #0x2c]
- ldr r1, [sp, #0x18]
- bl LoadMonEvolutionTable
- cmp r4, #0x3
- bls _02069202
- b _0206954A
-_02069202:
- add r0, r4, r4
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0206920E: ; jump table (using 16-bit offset)
- .short _02069216 - _0206920E - 2; case 0
- .short _02069486 - _0206920E - 2; case 1
- .short _020694BE - _0206920E - 2; case 2
- .short _020694BE - _0206920E - 2; case 3
-_02069216:
- add r0, r7, #0x0
- mov r1, #0xa0
- mov r2, #0x0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x14]
- add r0, r7, #0x0
- mov r1, #0x9
- mov r2, #0x0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x20]
- mov r0, #0x0
- str r0, [sp, #0x24]
- ldr r0, [sp, #0x1c]
- mov r1, #0xa
- ldr r4, [sp, #0x18]
- bl _s32_div_f
- str r1, [sp, #0x8]
-_02069246:
- ldrh r0, [r4, #0x0]
- cmp r0, #0x1a
- bls _0206924E
- b _02069472
-_0206924E:
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #0x6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0206925A: ; jump table (using 16-bit offset)
- .short _02069472 - _0206925A - 2; case 0
- .short _02069290 - _0206925A - 2; case 1
- .short _0206929E - _0206925A - 2; case 2
- .short _020692B4 - _0206925A - 2; case 3
- .short _020692CA - _0206925A - 2; case 4
- .short _02069472 - _0206925A - 2; case 5
- .short _02069472 - _0206925A - 2; case 6
- .short _02069472 - _0206925A - 2; case 7
- .short _020692DA - _0206925A - 2; case 8
- .short _02069306 - _0206925A - 2; case 9
- .short _02069332 - _0206925A - 2; case 10
- .short _0206935E - _0206925A - 2; case 11
- .short _02069376 - _0206925A - 2; case 12
- .short _0206938C - _0206925A - 2; case 13
- .short _0206939C - _0206925A - 2; case 14
- .short _020693A2 - _0206925A - 2; case 15
- .short _02069472 - _0206925A - 2; case 16
- .short _02069472 - _0206925A - 2; case 17
- .short _020693B2 - _0206925A - 2; case 18
- .short _020693CA - _0206925A - 2; case 19
- .short _020693E2 - _0206925A - 2; case 20
- .short _020693F6 - _0206925A - 2; case 21
- .short _0206940E - _0206925A - 2; case 22
- .short _0206942C - _0206925A - 2; case 23
- .short _0206944A - _0206925A - 2; case 24
- .short _02069458 - _0206925A - 2; case 25
- .short _02069466 - _0206925A - 2; case 26
-_02069290:
- ldr r0, [sp, #0x20]
- cmp r0, #0xdc
- blo _0206936C
- ldrh r6, [r4, #0x4]
- mov r0, #0x1
- str r0, [r5, #0x0]
- b _02069472
-_0206929E:
- bl FUN_0201277C
- cmp r0, #0x0
- bne _0206936C
- ldr r0, [sp, #0x20]
- cmp r0, #0xdc
- blo _0206936C
- ldrh r6, [r4, #0x4]
- mov r0, #0x2
- str r0, [r5, #0x0]
- b _02069472
-_020692B4:
- bl FUN_0201277C
- cmp r0, #0x1
- bne _0206936C
- ldr r0, [sp, #0x20]
- cmp r0, #0xdc
- blo _0206936C
- ldrh r6, [r4, #0x4]
- mov r0, #0x3
- str r0, [r5, #0x0]
- b _02069472
-_020692CA:
- ldrh r1, [r4, #0x2]
- ldr r0, [sp, #0x14]
- cmp r1, r0
- bgt _0206936C
- ldrh r6, [r4, #0x4]
- mov r0, #0x4
- str r0, [r5, #0x0]
- b _02069472
-_020692DA:
- ldrh r1, [r4, #0x2]
- ldr r0, [sp, #0x14]
- cmp r1, r0
- bgt _0206936C
- add r0, r7, #0x0
- mov r1, #0xa4
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x34]
- add r0, r7, #0x0
- mov r1, #0xa5
- mov r2, #0x0
- bl GetMonDataEncrypted
- ldr r1, [sp, #0x34]
- cmp r1, r0
- bls _0206936C
- ldrh r6, [r4, #0x4]
- mov r0, #0x8
- str r0, [r5, #0x0]
- b _02069472
-_02069306:
- ldrh r1, [r4, #0x2]
- ldr r0, [sp, #0x14]
- cmp r1, r0
- bgt _0206936C
- add r0, r7, #0x0
- mov r1, #0xa4
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x38]
- add r0, r7, #0x0
- mov r1, #0xa5
- mov r2, #0x0
- bl GetMonDataEncrypted
- ldr r1, [sp, #0x38]
- cmp r1, r0
- bne _0206936C
- ldrh r6, [r4, #0x4]
- mov r0, #0x9
- str r0, [r5, #0x0]
- b _02069472
-_02069332:
- ldrh r1, [r4, #0x2]
- ldr r0, [sp, #0x14]
- cmp r1, r0
- bgt _0206936C
- add r0, r7, #0x0
- mov r1, #0xa4
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x3c]
- add r0, r7, #0x0
- mov r1, #0xa5
- mov r2, #0x0
- bl GetMonDataEncrypted
- ldr r1, [sp, #0x3c]
- cmp r1, r0
- bhs _0206936C
- ldrh r6, [r4, #0x4]
- mov r0, #0xa
- str r0, [r5, #0x0]
- b _02069472
-_0206935E:
- ldrh r1, [r4, #0x2]
- ldr r0, [sp, #0x14]
- cmp r1, r0
- bgt _0206936C
- ldr r0, [sp, #0x8]
- cmp r0, #0x5
- blt _0206936E
-_0206936C:
- b _02069472
-_0206936E:
- ldrh r6, [r4, #0x4]
- mov r0, #0xb
- str r0, [r5, #0x0]
- b _02069472
-_02069376:
- ldrh r1, [r4, #0x2]
- ldr r0, [sp, #0x14]
- cmp r1, r0
- bgt _02069472
- ldr r0, [sp, #0x8]
- cmp r0, #0x5
- blt _02069472
- ldrh r6, [r4, #0x4]
- mov r0, #0xc
- str r0, [r5, #0x0]
- b _02069472
-_0206938C:
- ldrh r1, [r4, #0x2]
- ldr r0, [sp, #0x14]
- cmp r1, r0
- bgt _02069472
- ldrh r6, [r4, #0x4]
- mov r0, #0xd
- str r0, [r5, #0x0]
- b _02069472
-_0206939C:
- mov r0, #0xe
- str r0, [r5, #0x0]
- b _02069472
-_020693A2:
- ldrh r1, [r4, #0x2]
- ldr r0, [sp, #0x10]
- cmp r1, r0
- bgt _02069472
- ldrh r6, [r4, #0x4]
- mov r0, #0xf
- str r0, [r5, #0x0]
- b _02069472
-_020693B2:
- bl FUN_0201277C
- cmp r0, #0x0
- bne _02069472
- ldrh r1, [r4, #0x2]
- ldr r0, [sp, #0x28]
- cmp r0, r1
- bne _02069472
- ldrh r6, [r4, #0x4]
- mov r0, #0x12
- str r0, [r5, #0x0]
- b _02069472
-_020693CA:
- bl FUN_0201277C
- cmp r0, #0x1
- bne _02069472
- ldrh r1, [r4, #0x2]
- ldr r0, [sp, #0x28]
- cmp r0, r1
- bne _02069472
- ldrh r6, [r4, #0x4]
- mov r0, #0x13
- str r0, [r5, #0x0]
- b _02069472
-_020693E2:
- ldrh r1, [r4, #0x2]
- add r0, r7, #0x0
- bl FUN_02069A38
- cmp r0, #0x1
- bne _02069472
- ldrh r6, [r4, #0x4]
- mov r0, #0x14
- str r0, [r5, #0x0]
- b _02069472
-_020693F6:
- ldr r0, [sp, #0x0]
- cmp r0, #0x0
- beq _02069472
- ldrh r1, [r4, #0x2]
- bl FUN_0206BAE4
- cmp r0, #0x1
- bne _02069472
- ldrh r6, [r4, #0x4]
- mov r0, #0x15
- str r0, [r5, #0x0]
- b _02069472
-_0206940E:
- add r0, r7, #0x0
- mov r1, #0x6f
- mov r2, #0x0
- bl GetMonDataEncrypted
- cmp r0, #0x0
- bne _02069472
- ldrh r1, [r4, #0x2]
- ldr r0, [sp, #0x14]
- cmp r1, r0
- bgt _02069472
- ldrh r6, [r4, #0x4]
- mov r0, #0x16
- str r0, [r5, #0x0]
- b _02069472
-_0206942C:
- add r0, r7, #0x0
- mov r1, #0x6f
- mov r2, #0x0
- bl GetMonDataEncrypted
- cmp r0, #0x1
- bne _02069472
- ldrh r1, [r4, #0x2]
- ldr r0, [sp, #0x14]
- cmp r1, r0
- bgt _02069472
- ldrh r6, [r4, #0x4]
- mov r0, #0x17
- str r0, [r5, #0x0]
- b _02069472
-_0206944A:
- ldr r1, [sp, #0x4]
- cmp r1, r0
- bne _02069472
- ldrh r6, [r4, #0x4]
- mov r0, #0x18
- str r0, [r5, #0x0]
- b _02069472
-_02069458:
- ldr r1, [sp, #0x4]
- cmp r1, r0
- bne _02069472
- ldrh r6, [r4, #0x4]
- mov r0, #0x19
- str r0, [r5, #0x0]
- b _02069472
-_02069466:
- ldr r1, [sp, #0x4]
- cmp r1, r0
- bne _02069472
- ldrh r6, [r4, #0x4]
- mov r0, #0x1a
- str r0, [r5, #0x0]
-_02069472:
- cmp r6, #0x0
- bne _0206954A
- ldr r0, [sp, #0x24]
- add r4, r4, #0x6
- add r0, r0, #0x1
- str r0, [sp, #0x24]
- cmp r0, #0x7
- bge _02069484
- b _02069246
-_02069484:
- b _0206954A
-_02069486:
- ldr r3, [sp, #0x18]
- mov r4, #0x0
- mov r7, #0x6
- mov r2, #0x5
-_0206948E:
- ldrh r0, [r3, #0x0]
- cmp r0, #0x5
- beq _0206949A
- cmp r0, #0x6
- beq _020694A4
- b _020694B0
-_0206949A:
- ldrh r6, [r3, #0x4]
- str r2, [r5, #0x0]
- b _020694B0
- .balign 4
-_020694A0: .word 0xFFFF0000
-_020694A4:
- ldrh r1, [r3, #0x2]
- ldr r0, [sp, #0x28]
- cmp r0, r1
- bne _020694B0
- ldrh r6, [r3, #0x4]
- str r7, [r5, #0x0]
-_020694B0:
- cmp r6, #0x0
- bne _0206954A
- add r4, r4, #0x1
- add r3, r3, #0x6
- cmp r4, #0x7
- blt _0206948E
- b _0206954A
-_020694BE:
- mov r0, #0x0
- ldr r4, [sp, #0x18]
- str r0, [sp, #0xc]
-_020694C4:
- ldrh r2, [r4, #0x0]
- cmp r2, #0x7
- bne _020694E4
- ldrh r1, [r4, #0x2]
- ldr r0, [sp, #0x4]
- cmp r0, r1
- bne _020694E4
- ldr r0, [sp, #0xc]
- mov r1, #0x6
- mul r1, r0
- ldr r0, [sp, #0x18]
- add r0, r0, r1
- ldrh r6, [r0, #0x4]
- mov r0, #0x0
- str r0, [r5, #0x0]
- b _0206954A
-_020694E4:
- cmp r2, #0x10
- bne _02069510
- add r0, r7, #0x0
- mov r1, #0x6f
- mov r2, #0x0
- bl GetMonDataEncrypted
- cmp r0, #0x0
- bne _02069510
- ldrh r1, [r4, #0x2]
- ldr r0, [sp, #0x4]
- cmp r0, r1
- bne _02069510
- ldr r0, [sp, #0xc]
- mov r1, #0x6
- mul r1, r0
- ldr r0, [sp, #0x18]
- add r0, r0, r1
- ldrh r6, [r0, #0x4]
- mov r0, #0x0
- str r0, [r5, #0x0]
- b _0206954A
-_02069510:
- ldrh r0, [r4, #0x0]
- cmp r0, #0x11
- bne _0206953E
- add r0, r7, #0x0
- mov r1, #0x6f
- mov r2, #0x0
- bl GetMonDataEncrypted
- cmp r0, #0x1
- bne _0206953E
- ldrh r1, [r4, #0x2]
- ldr r0, [sp, #0x4]
- cmp r0, r1
- bne _0206953E
- ldr r0, [sp, #0xc]
- mov r1, #0x6
- mul r1, r0
- ldr r0, [sp, #0x18]
- add r0, r0, r1
- ldrh r6, [r0, #0x4]
- mov r0, #0x0
- str r0, [r5, #0x0]
- b _0206954A
-_0206953E:
- ldr r0, [sp, #0xc]
- add r4, r4, #0x6
- add r0, r0, #0x1
- str r0, [sp, #0xc]
- cmp r0, #0x7
- blt _020694C4
-_0206954A:
- ldr r0, [sp, #0x18]
- bl FreeToHeap
- add r0, r6, #0x0
- add sp, #0x44
- pop {r4-r7, pc}
- .balign 4
-
- thumb_func_start ReadFromPersonalPmsNarc
-ReadFromPersonalPmsNarc: ; 0x02069558
- push {r3-r4, lr}
- sub sp, #0x4c
- add r4, r0, #0x0
- mov r1, #0x0
- add r0, sp, #0x0
- strh r1, [r0, #0x0]
- ldr r0, _020695A0 ; =SPECIES_EGG
- cmp r4, r0
- blo _0206956E
- bl ErrorHandling
-_0206956E:
- add r0, sp, #0x4
- bl FS_InitFile
- ldr r1, _020695A4 ; =__local_str_poketool_personal_pms_narc
- add r0, sp, #0x4
- bl FS_OpenFile
- add r0, sp, #0x4
- lsl r1, r4, #0x1
- mov r2, #0x0
- bl FS_SeekFile
- add r0, sp, #0x4
- add r1, sp, #0x0
- mov r2, #0x2
- bl FS_ReadFile
- add r0, sp, #0x4
- bl FS_CloseFile
- add r0, sp, #0x0
- ldrh r0, [r0, #0x0]
- add sp, #0x4c
- pop {r3-r4, pc}
- nop
-_020695A0: .word SPECIES_EGG
-_020695A4: .word __local_str_poketool_personal_pms_narc
-
- thumb_func_start GetEggSpecies
-GetEggSpecies: ; 0x020695A8
- push {r3, lr}
- cmp r0, #SPECIES_SUDOWOODO
- bgt _020695CC
- cmp r0, #SPECIES_MARILL
- blt _020695BA
- beq _020695EC
- cmp r0, #SPECIES_SUDOWOODO
- beq _020695EC
- b _020695E8
-_020695BA:
- cmp r0, #SPECIES_MR_MIME
- bgt _020695C6
- bge _020695EC
- cmp r0, #SPECIES_CHANSEY
- beq _020695EC
- b _020695E8
-_020695C6:
- cmp r0, #SPECIES_SNORLAX
- beq _020695EC
- b _020695E8
-_020695CC:
- cmp r0, #SPECIES_MANTINE
- bgt _020695D8
- bge _020695EC
- cmp r0, #SPECIES_WOBBUFFET
- beq _020695EC
- b _020695E8
-_020695D8:
- ldr r1, _020695F0 ; =SPECIES_ROSELIA
- cmp r0, r1
- bgt _020695E2
- beq _020695EC
- b _020695E8
-_020695E2:
- add r1, #SPECIES_CHIMECHO-SPECIES_ROSELIA
- cmp r0, r1
- beq _020695EC
-_020695E8:
- bl ReadFromPersonalPmsNarc
-_020695EC:
- pop {r3, pc}
- nop
-_020695F0: .word SPECIES_ROSELIA
-
- thumb_func_start InitBoxMonMoveset
-InitBoxMonMoveset: ; 0x020695F4
- push {r3-r7, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- mov r0, #0x0
- mov r1, #0x2c
- bl AllocFromHeap
- str r0, [sp, #0x0]
- add r0, r5, #0x0
- bl TryDecryptBoxMon
- str r0, [sp, #0x4]
- add r0, r5, #0x0
- mov r1, #0x5
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- add r0, r5, #0x0
- mov r1, #0x70
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- add r7, r0, #0x0
- add r0, r5, #0x0
- bl CalcBoxMonLevelEncrypted
- lsl r0, r0, #0x18
- lsr r6, r0, #0x18
- ldr r2, [sp, #0x0]
- add r0, r4, #0x0
- add r1, r7, #0x0
- bl LoadWotbl_HandleAlternateForme
- ldr r0, [sp, #0x0]
- ldrh r1, [r0, #0x0]
- ldr r0, _02069690 ; =0x0000FFFF
- cmp r1, r0
- beq _0206967C
- ldr r4, [sp, #0x0]
- lsl r7, r6, #0x9
-_02069648:
- ldrh r1, [r4, #0x0]
- mov r0, #0xfe
- lsl r0, r0, #0x8
- and r0, r1
- cmp r0, r7
- bgt _0206967C
- ldr r0, _02069694 ; =0x000001FF
- and r0, r1
- lsl r0, r0, #0x10
- lsr r6, r0, #0x10
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl FUN_020696A8
- ldr r1, _02069690 ; =0x0000FFFF
- cmp r0, r1
- bne _02069672
- add r0, r5, #0x0
- add r1, r6, #0x0
- bl FUN_02069718
-_02069672:
- add r4, r4, #0x2
- ldrh r1, [r4, #0x0]
- ldr r0, _02069690 ; =0x0000FFFF
- cmp r1, r0
- bne _02069648
-_0206967C:
- ldr r0, [sp, #0x0]
- bl FreeToHeap
- ldr r1, [sp, #0x4]
- add r0, r5, #0x0
- bl TryEncryptBoxMon
- add sp, #0x8
- pop {r3-r7, pc}
- nop
-_02069690: .word 0x0000FFFF
-_02069694: .word 0x000001FF
-
- thumb_func_start FUN_02069698
-FUN_02069698: ; 0x02069698
- push {r4, lr}
- add r4, r1, #0x0
- bl FUN_020690E4
- add r1, r4, #0x0
- bl FUN_020696A8
- pop {r4, pc}
-
- thumb_func_start FUN_020696A8
-FUN_020696A8: ; 0x020696A8
- push {r3-r7, lr}
- sub sp, #0x8
- add r5, r1, #0x0
- ldr r1, _02069700 ; =0x0000FFFF
- add r6, r0, #0x0
- str r1, [sp, #0x4]
- bl TryDecryptBoxMon
- mov r4, #0x0
- str r0, [sp, #0x0]
- add r7, r4, #0x0
-_020696BE:
- add r1, r4, #0x0
- add r0, r6, #0x0
- add r1, #0x36
- add r2, r7, #0x0
- bl GetBoxMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bne _020696E0
- lsl r2, r4, #0x18
- add r0, r6, #0x0
- add r1, r5, #0x0
- lsr r2, r2, #0x18
- bl FUN_020697D4
- str r5, [sp, #0x4]
- b _020696F0
-_020696E0:
- cmp r0, r5
- bne _020696EA
- ldr r0, _02069704 ; =0x0000FFFE
- str r0, [sp, #0x4]
- b _020696F0
-_020696EA:
- add r4, r4, #0x1
- cmp r4, #0x4
- blt _020696BE
-_020696F0:
- ldr r1, [sp, #0x0]
- add r0, r6, #0x0
- bl TryEncryptBoxMon
- ldr r0, [sp, #0x4]
- add sp, #0x8
- pop {r3-r7, pc}
- nop
-_02069700: .word 0x0000FFFF
-_02069704: .word 0x0000FFFE
-
- thumb_func_start FUN_02069708
-FUN_02069708: ; 0x02069708
- push {r4, lr}
- add r4, r1, #0x0
- bl FUN_020690E4
- add r1, r4, #0x0
- bl FUN_02069718
- pop {r4, pc}
-
- thumb_func_start FUN_02069718
-FUN_02069718: ; 0x02069718
- push {r3-r7, lr}
- sub sp, #0x20
- add r5, r0, #0x0
- str r1, [sp, #0x0]
- bl TryDecryptBoxMon
- str r0, [sp, #0xc]
- add r0, sp, #0x18
- mov r4, #0x0
- str r0, [sp, #0x4]
- add r7, sp, #0x14
- add r6, sp, #0x10
-_02069730:
- add r1, r4, #0x0
- add r0, r5, #0x0
- add r1, #0x37
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- ldr r1, [sp, #0x4]
- mov r2, #0x0
- strh r0, [r1, #0x0]
- add r1, r4, #0x0
- add r0, r5, #0x0
- add r1, #0x3b
- bl GetBoxMonDataEncrypted
- add r1, r4, #0x0
- strb r0, [r7, #0x0]
- add r0, r5, #0x0
- add r1, #0x3f
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- strb r0, [r6, #0x0]
- ldr r0, [sp, #0x4]
- add r4, r4, #0x1
- add r0, r0, #0x2
- str r0, [sp, #0x4]
- add r7, r7, #0x1
- add r6, r6, #0x1
- cmp r4, #0x3
- blt _02069730
- ldr r0, [sp, #0x0]
- add r1, sp, #0x10
- strh r0, [r1, #0xe]
- ldr r0, [sp, #0x0]
- mov r1, #0x5
- bl FUN_0206AB18
- add r1, sp, #0x10
- strb r0, [r1, #0x7]
- mov r4, #0x0
- add r0, sp, #0x18
- strb r4, [r1, #0x3]
- str r0, [sp, #0x8]
- add r7, sp, #0x14
- add r6, sp, #0x10
-_0206978A:
- add r1, r4, #0x0
- ldr r2, [sp, #0x8]
- add r0, r5, #0x0
- add r1, #0x36
- bl SetBoxMonDataEncrypted
- add r1, r4, #0x0
- add r0, r5, #0x0
- add r1, #0x3a
- add r2, r7, #0x0
- bl SetBoxMonDataEncrypted
- add r1, r4, #0x0
- add r0, r5, #0x0
- add r1, #0x3e
- add r2, r6, #0x0
- bl SetBoxMonDataEncrypted
- ldr r0, [sp, #0x8]
- add r4, r4, #0x1
- add r0, r0, #0x2
- str r0, [sp, #0x8]
- add r7, r7, #0x1
- add r6, r6, #0x1
- cmp r4, #0x4
- blt _0206978A
- ldr r1, [sp, #0xc]
- add r0, r5, #0x0
- bl TryEncryptBoxMon
- add sp, #0x20
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_020697CC
-FUN_020697CC: ; 0x020697CC
- ldr r3, _020697D0 ; =FUN_020697D4
- bx r3
- .balign 4
-_020697D0: .word FUN_020697D4
-
- thumb_func_start FUN_020697D4
-FUN_020697D4: ; 0x020697D4
- push {r0-r3}
- push {r3-r5, lr}
- add r4, r2, #0x0
- add r1, r4, #0x0
- add r1, #0x36
- add r2, sp, #0x14
- add r5, r0, #0x0
- bl SetBoxMonDataEncrypted
- add r1, r4, #0x0
- add r0, r5, #0x0
- add r1, #0x3e
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- add r0, sp, #0x10
- ldrh r0, [r0, #0x4]
- bl FUN_0206AB30
- add r1, sp, #0x0
- strb r0, [r1, #0x0]
- add r4, #0x3a
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
- pop {r3-r5}
- pop {r3}
- add sp, #0x10
- bx r3
- .balign 4
-
- thumb_func_start FUN_02069818
-FUN_02069818: ; 0x02069818
- push {r3-r7, lr}
- sub sp, #0x10
- add r7, r0, #0x0
- add r5, r1, #0x0
- mov r0, #0x0
- mov r1, #0x2c
- str r2, [sp, #0x0]
- str r0, [sp, #0x8]
- bl AllocFromHeap
- add r4, r0, #0x0
- add r0, r7, #0x0
- mov r1, #0x5
- mov r2, #0x0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x4]
- add r0, r7, #0x0
- mov r1, #0x70
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0xc]
- add r0, r7, #0x0
- mov r1, #0xa0
- mov r2, #0x0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x18
- lsr r6, r0, #0x18
- ldr r0, [sp, #0x4]
- ldr r1, [sp, #0xc]
- add r2, r4, #0x0
- bl LoadWotbl_HandleAlternateForme
- ldr r0, [r5, #0x0]
- lsl r0, r0, #0x1
- ldrh r2, [r4, r0]
- ldr r0, _020698D8 ; =0x0000FFFF
- cmp r2, r0
- bne _0206987A
- add r0, r4, #0x0
- bl FreeToHeap
- add sp, #0x10
- mov r0, #0x0
- pop {r3-r7, pc}
-_0206987A:
- mov r0, #0xfe
- lsl r0, r0, #0x8
- add r3, r2, #0x0
- and r3, r0
- lsl r6, r6, #0x9
- cmp r6, r3
- beq _020698AC
- ldr r1, _020698D8 ; =0x0000FFFF
-_0206988A:
- ldr r2, [r5, #0x0]
- add r2, r2, #0x1
- str r2, [r5, #0x0]
- lsl r2, r2, #0x1
- ldrh r2, [r4, r2]
- cmp r2, r1
- bne _020698A4
- add r0, r4, #0x0
- bl FreeToHeap
- add sp, #0x10
- mov r0, #0x0
- pop {r3-r7, pc}
-_020698A4:
- add r3, r2, #0x0
- and r3, r0
- cmp r6, r3
- bne _0206988A
-_020698AC:
- cmp r6, r3
- bne _020698CC
- ldr r0, _020698DC ; =0x000001FF
- add r1, r2, #0x0
- and r1, r0
- ldr r0, [sp, #0x0]
- strh r1, [r0, #0x0]
- ldr r0, [r5, #0x0]
- ldr r1, [sp, #0x0]
- add r0, r0, #0x1
- str r0, [r5, #0x0]
- ldrh r1, [r1, #0x0]
- add r0, r7, #0x0
- bl FUN_02069698
- str r0, [sp, #0x8]
-_020698CC:
- add r0, r4, #0x0
- bl FreeToHeap
- ldr r0, [sp, #0x8]
- add sp, #0x10
- pop {r3-r7, pc}
- .balign 4
-_020698D8: .word 0x0000FFFF
-_020698DC: .word 0x000001FF
-
- thumb_func_start FUN_020698E0
-FUN_020698E0: ; 0x020698E0
- ldr r3, _020698E4 ; =FUN_020698E8
- bx r3
- .balign 4
-_020698E4: .word FUN_020698E8
-
- thumb_func_start FUN_020698E8
-FUN_020698E8: ; 0x020698E8
- push {r4-r6, lr}
- sub sp, #0x8
- add r4, r1, #0x0
- add r6, r2, #0x0
- add r1, #0x36
- mov r2, #0x0
- add r5, r0, #0x0
- bl GetBoxMonDataEncrypted
- add r1, sp, #0x0
- strh r0, [r1, #0x4]
- add r1, r4, #0x0
- add r0, r5, #0x0
- add r1, #0x3a
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- add r1, sp, #0x0
- strb r0, [r1, #0x2]
- add r1, r4, #0x0
- add r0, r5, #0x0
- add r1, #0x3e
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- add r1, sp, #0x0
- strb r0, [r1, #0x0]
- add r1, r6, #0x0
- add r0, r5, #0x0
- add r1, #0x36
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- add r1, sp, #0x0
- strh r0, [r1, #0x6]
- add r1, r6, #0x0
- add r0, r5, #0x0
- add r1, #0x3a
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- add r1, sp, #0x0
- strb r0, [r1, #0x3]
- add r1, r6, #0x0
- add r0, r5, #0x0
- add r1, #0x3e
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- add r1, sp, #0x0
- strb r0, [r1, #0x1]
- add r1, r4, #0x0
- add r2, sp, #0x4
- add r0, r5, #0x0
- add r1, #0x36
- add r2, #0x2
- bl SetBoxMonDataEncrypted
- add r1, r4, #0x0
- add r2, sp, #0x0
- add r0, r5, #0x0
- add r1, #0x3a
- add r2, #0x3
- bl SetBoxMonDataEncrypted
- add r4, #0x3e
- add r2, sp, #0x0
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, #0x1
- bl SetBoxMonDataEncrypted
- add r1, r6, #0x0
- add r0, r5, #0x0
- add r1, #0x36
- add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
- add r1, r6, #0x0
- add r2, sp, #0x0
- add r0, r5, #0x0
- add r1, #0x3a
- add r2, #0x2
- bl SetBoxMonDataEncrypted
- add r6, #0x3e
- add r0, r5, #0x0
- add r1, r6, #0x0
- add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
- add sp, #0x8
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_020699A4
-FUN_020699A4: ; 0x020699A4
- push {r3-r7, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- cmp r4, #0x3
- bhs _02069A0A
- mov r7, #0x0
- add r6, sp, #0x0
-_020699B2:
- add r1, r4, #0x0
- add r0, r5, #0x0
- add r1, #0x37
- add r2, r7, #0x0
- bl GetMonDataEncrypted
- add r1, r4, #0x0
- strh r0, [r6, #0x2]
- add r0, r5, #0x0
- add r1, #0x3b
- mov r2, #0x0
- bl GetMonDataEncrypted
- add r1, r4, #0x0
- strb r0, [r6, #0x1]
- add r0, r5, #0x0
- add r1, #0x3f
- mov r2, #0x0
- bl GetMonDataEncrypted
- add r1, r4, #0x0
- add r2, sp, #0x0
- strb r0, [r6, #0x0]
- add r0, r5, #0x0
- add r1, #0x36
- add r2, #0x2
- bl SetMonDataEncrypted
- add r1, r4, #0x0
- add r2, sp, #0x0
- add r0, r5, #0x0
- add r1, #0x3a
- add r2, #0x1
- bl SetMonDataEncrypted
- add r1, r4, #0x0
- add r0, r5, #0x0
- add r1, #0x3e
- add r2, sp, #0x0
- bl SetMonDataEncrypted
- add r4, r4, #0x1
- cmp r4, #0x3
- blo _020699B2
-_02069A0A:
- mov r1, #0x0
- add r0, sp, #0x0
- strh r1, [r0, #0x2]
- strb r1, [r0, #0x1]
- strb r1, [r0, #0x0]
- add r2, sp, #0x0
- add r0, r5, #0x0
- mov r1, #0x39
- add r2, #0x2
- bl SetMonDataEncrypted
- add r2, sp, #0x0
- add r0, r5, #0x0
- mov r1, #0x3d
- add r2, #0x1
- bl SetMonDataEncrypted
- add r0, r5, #0x0
- mov r1, #0x41
- add r2, sp, #0x0
- bl SetMonDataEncrypted
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02069A38
-FUN_02069A38: ; 0x02069A38
- push {r3-r7, lr}
- mov r4, #0x0
- add r6, r0, #0x0
- add r5, r1, #0x0
- add r7, r4, #0x0
-_02069A42:
- add r1, r4, #0x0
- add r0, r6, #0x0
- add r1, #0x36
- add r2, r7, #0x0
- bl GetMonDataEncrypted
- cmp r5, r0
- beq _02069A58
- add r4, r4, #0x1
- cmp r4, #0x4
- blt _02069A42
-_02069A58:
- cmp r4, #0x4
- beq _02069A60
- mov r0, #0x1
- pop {r3-r7, pc}
-_02069A60:
- mov r0, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02069A64
-FUN_02069A64: ; 0x02069A64
- push {r4-r5, lr}
- sub sp, #0x1c
- add r5, r0, #0x0
- add r4, r1, #0x0
- mov r0, #0x0
- str r0, [sp, #0x0]
- add r3, r4, #0x0
- mov r2, #0x11
-_02069A74:
- ldmia r5!, {r0-r1}
- stmia r3!, {r0-r1}
- sub r2, r2, #0x1
- bne _02069A74
- ldrh r1, [r4, #0x4]
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1f
- beq _02069A8E
- mov r0, #0x1
- bic r1, r0
- mov r0, #0x1
- orr r0, r1
- strh r0, [r4, #0x4]
-_02069A8E:
- add r0, r4, #0x0
- mov r1, #0x9f
- add r2, sp, #0x0
- bl SetMonDataEncrypted
- add r0, r4, #0x0
- mov r1, #0xa2
- add r2, sp, #0x0
- bl SetMonDataEncrypted
- add r0, r4, #0x0
- mov r1, #0xa3
- add r2, sp, #0x0
- bl SetMonDataEncrypted
- mov r0, #0x0
- bl FUN_020256BC
- add r5, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0xa9
- add r2, r5, #0x0
- bl SetMonDataEncrypted
- add r0, r5, #0x0
- bl FreeToHeap
- add r0, r4, #0x0
- mov r1, #0xa1
- add r2, sp, #0x0
- bl SetMonDataEncrypted
- mov r0, #0x0
- add r1, sp, #0x4
- mov r2, #0x18
- bl MIi_CpuClearFast
- add r0, r4, #0x0
- mov r1, #0xaa
- add r2, sp, #0x4
- bl SetMonDataEncrypted
- add r0, r4, #0x0
- bl UpdateMonLevelAndRecalcStats
- add sp, #0x1c
- pop {r4-r5, pc}
-
- thumb_func_start FUN_02069AEC
-FUN_02069AEC: ; 0x02069AEC
- push {r3-r7, lr}
- str r0, [sp, #0x0]
- bl FUN_0206B9AC
- add r7, r0, #0x0
- mov r6, #0x1
- mov r5, #0x0
- cmp r7, #0x0
- ble _02069B3C
-_02069AFE:
- ldr r0, [sp, #0x0]
- add r1, r5, #0x0
- bl FUN_0206B9B0
- mov r1, #0x5
- mov r2, #0x0
- add r4, r0, #0x0
- bl GetMonDataEncrypted
- cmp r0, #0x0
- beq _02069B36
- add r0, r4, #0x0
- mov r1, #0x4c
- mov r2, #0x0
- bl GetMonDataEncrypted
- cmp r0, #0x0
- bne _02069B36
- add r0, r4, #0x0
- mov r1, #0xa0
- mov r2, #0x0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- cmp r0, r6
- bls _02069B36
- add r6, r0, #0x0
-_02069B36:
- add r5, r5, #0x1
- cmp r5, r7
- blt _02069AFE
-_02069B3C:
- add r0, r6, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02069B40
-FUN_02069B40: ; 0x02069B40
- push {r3, lr}
- sub sp, #0x8
- add r3, r0, #0x0
- mov r0, #0x2
- str r0, [sp, #0x0]
- add r0, sp, #0x4
- mov r1, #0x6d ; NARC_POKETOOL_POKEZUKAN
- mov r2, #0x0
- lsl r3, r3, #0x1
- bl ReadFromNarcMemberByIdPair
- add r0, sp, #0x4
- ldrh r0, [r0, #0x0]
- add sp, #0x8
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02069B60
-FUN_02069B60: ; 0x02069B60
- push {r3, lr}
- sub sp, #0x8
- add r3, r0, #0x0
- mov r2, #0x0
- add r0, sp, #0x4
- strh r2, [r0, #0x0]
- cmp r3, #0x97
- bhi _02069B7E
- mov r0, #0x2
- str r0, [sp, #0x0]
- add r0, sp, #0x4
- mov r1, #0x91 ; NARC_POKETOOL_SHINZUKAN
- lsl r3, r3, #0x1
- bl ReadFromNarcMemberByIdPair
-_02069B7E:
- add r0, sp, #0x4
- ldrh r0, [r0, #0x0]
- add sp, #0x8
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02069B88
-FUN_02069B88: ; 0x02069B88
- push {r3-r4}
- add r4, r0, #0x0
- add r3, r1, #0x0
- mov r2, #0x1d
-_02069B90:
- ldmia r4!, {r0-r1}
- stmia r3!, {r0-r1}
- sub r2, r2, #0x1
- bne _02069B90
- ldr r0, [r4, #0x0]
- str r0, [r3, #0x0]
- pop {r3-r4}
- bx lr
-
- thumb_func_start FUN_02069BA0
-FUN_02069BA0: ; 0x02069BA0
- push {r3-r4}
- add r4, r0, #0x0
- add r3, r1, #0x0
- mov r2, #0x11
-_02069BA8:
- ldmia r4!, {r0-r1}
- stmia r3!, {r0-r1}
- sub r2, r2, #0x1
- bne _02069BA8
- pop {r3-r4}
- bx lr
-
- thumb_func_start FUN_02069BB4
-FUN_02069BB4: ; 0x02069BB4
- push {r3-r4}
- add r4, r0, #0x0
- add r3, r1, #0x0
- mov r2, #0x11
-_02069BBC:
- ldmia r4!, {r0-r1}
- stmia r3!, {r0-r1}
- sub r2, r2, #0x1
- bne _02069BBC
- pop {r3-r4}
- bx lr
-
- thumb_func_start FUN_02069BC8
-FUN_02069BC8: ; 0x02069BC8
- ldr r3, _02069BCC ; =FUN_02069BD0
- bx r3
- .balign 4
-_02069BCC: .word FUN_02069BD0
-
- thumb_func_start FUN_02069BD0
-FUN_02069BD0: ; 0x02069BD0
- push {r4, lr}
- add r4, r1, #0x0
- mov r1, #0x0
- add r2, r1, #0x0
- bl GetBoxMonDataEncrypted
- add r1, r4, #0x0
- bl FUN_02069BE4
- pop {r4, pc}
-
- thumb_func_start FUN_02069BE4
-FUN_02069BE4: ; 0x02069BE4
- push {r4, lr}
- add r4, r1, #0x0
- bl GetNatureFromPersonality
- lsl r1, r0, #0x2
- add r1, r0, r1
- ldr r0, _02069BF8 ; =UNK_020F7F16
- add r0, r0, r1
- ldrsb r0, [r4, r0]
- pop {r4, pc}
- .balign 4
-_02069BF8: .word UNK_020F7F16
-
- thumb_func_start FUN_02069BFC
-FUN_02069BFC: ; 0x02069BFC
- push {r3-r7, lr}
- add r4, r0, #0x0
- add r7, r1, #0x0
- mov r0, #0x0
- mov r1, #0x2c
- add r5, r2, #0x0
- bl AllocFromHeap
- add r6, r0, #0x0
- add r0, r4, #0x0
- add r1, r7, #0x0
- add r2, r6, #0x0
- bl LoadWotbl_HandleAlternateForme
- ldrh r1, [r6, #0x0]
- ldr r0, _02069C44 ; =0x0000FFFF
- mov r4, #0x0
- cmp r1, r0
- beq _02069C3A
- ldr r1, _02069C48 ; =0x000001FF
- ldr r2, _02069C44 ; =0x0000FFFF
- add r0, r6, #0x0
-_02069C28:
- ldrh r3, [r0, #0x0]
- add r0, r0, #0x2
- add r4, r4, #0x1
- and r3, r1
- strh r3, [r5, #0x0]
- ldrh r3, [r0, #0x0]
- add r5, r5, #0x2
- cmp r3, r2
- bne _02069C28
-_02069C3A:
- add r0, r6, #0x0
- bl FreeToHeap
- add r0, r4, #0x0
- pop {r3-r7, pc}
- .balign 4
-_02069C44: .word 0x0000FFFF
-_02069C48: .word 0x000001FF
-
- thumb_func_start FUN_02069C4C
-FUN_02069C4C: ; 0x02069C4C
- push {r3-r7, lr}
- add r5, r0, #0x0
- bl FUN_0206B9AC
- add r6, r0, #0x0
- bl rand_LC
- mov r1, #0x1
- lsl r1, r1, #0xe
- cmp r0, r1
- beq _02069C70
- lsl r1, r1, #0x1
- cmp r0, r1
- beq _02069C70
- mov r1, #0x3
- lsl r1, r1, #0xe
- cmp r0, r1
- bne _02069CF2
-_02069C70:
- bl rand_LC
- add r1, r6, #0x0
- bl _s32_div_f
- add r0, r5, #0x0
- add r7, r1, #0x0
- bl FUN_0206B9B0
- mov r1, #0x5
- mov r2, #0x0
- add r4, r0, #0x0
- bl GetMonDataEncrypted
- cmp r0, #0x0
- beq _02069C70
- add r0, r4, #0x0
- mov r1, #0x4c
- mov r2, #0x0
- bl GetMonDataEncrypted
- cmp r0, #0x0
- bne _02069C70
- add r0, r7, #0x0
- bl MaskOfFlagNo
- add r1, r0, #0x0
- lsl r1, r1, #0x18
- add r0, r5, #0x0
- lsr r1, r1, #0x18
- bl FUN_02069CF4
- cmp r0, #0x0
- bne _02069CF2
- add r5, sp, #0x0
- mov r6, #0x7
-_02069CB8:
- bl rand_LC
- strb r0, [r5, #0x0]
- ldrb r2, [r5, #0x0]
- add r1, r2, #0x0
- and r1, r6
- beq _02069CB8
- mov r0, #0xf0
- tst r0, r2
- beq _02069CD0
- add r0, sp, #0x0
- strb r1, [r0, #0x0]
-_02069CD0:
- add r1, sp, #0x0
- ldrb r2, [r1, #0x0]
- lsl r0, r2, #0x4
- orr r0, r2
- strb r0, [r1, #0x0]
- ldrb r2, [r1, #0x0]
- mov r0, #0xf3
- and r0, r2
- strb r0, [r1, #0x0]
- ldrb r0, [r1, #0x0]
- add r2, sp, #0x0
- add r0, r0, #0x1
- strb r0, [r1, #0x0]
- add r0, r4, #0x0
- mov r1, #0x99
- bl SetMonDataEncrypted
-_02069CF2:
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02069CF4
-FUN_02069CF4: ; 0x02069CF4
- push {r3-r7, lr}
- mov r6, #0x0
- add r5, r1, #0x0
- str r0, [sp, #0x0]
- mov r4, #0x1
- add r7, r6, #0x0
- cmp r5, #0x0
- beq _02069D32
-_02069D04:
- mov r0, #0x1
- tst r0, r5
- beq _02069D26
- ldr r0, [sp, #0x0]
- add r1, r6, #0x0
- bl FUN_0206B9B0
- mov r1, #0x99
- mov r2, #0x0
- bl GetMonDataEncrypted
- cmp r0, #0x0
- beq _02069D26
- add r0, r7, #0x0
- orr r0, r4
- lsl r0, r0, #0x18
- lsr r7, r0, #0x18
-_02069D26:
- lsl r0, r5, #0x17
- add r6, r6, #0x1
- lsl r4, r4, #0x1
- lsr r5, r0, #0x18
- bne _02069D04
- b _02069D4A
-_02069D32:
- add r1, r6, #0x0
- bl FUN_0206B9B0
- mov r1, #0x99
- add r2, r6, #0x0
- bl GetMonDataEncrypted
- cmp r0, #0x0
- beq _02069D4A
- add r0, r7, #0x1
- lsl r0, r0, #0x18
- lsr r7, r0, #0x18
-_02069D4A:
- add r0, r7, #0x0
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02069D50
-FUN_02069D50: ; 0x02069D50
- push {r4-r7, lr}
- sub sp, #0xc
- str r0, [sp, #0x0]
- add r5, r1, #0x0
- bl FUN_0206B9AC
- mov r6, #0x0
- str r0, [sp, #0x4]
- cmp r0, #0x0
- ble _02069DC2
- add r4, sp, #0x8
-_02069D66:
- ldr r0, [sp, #0x0]
- add r1, r6, #0x0
- bl FUN_0206B9B0
- mov r1, #0x5
- mov r2, #0x0
- add r7, r0, #0x0
- bl GetMonDataEncrypted
- cmp r0, #0x0
- beq _02069DBA
- add r0, r7, #0x0
- mov r1, #0x99
- mov r2, #0x0
- bl GetMonDataEncrypted
- strb r0, [r4, #0x0]
- ldrb r1, [r4, #0x0]
- mov r0, #0xf
- and r0, r1
- beq _02069DBA
- cmp r0, r5
- blt _02069D98
- cmp r5, #0x4
- ble _02069DA2
-_02069D98:
- ldrb r1, [r4, #0x0]
- mov r0, #0xf0
- and r0, r1
- strb r0, [r4, #0x0]
- b _02069DA6
-_02069DA2:
- sub r0, r1, r5
- strb r0, [r4, #0x0]
-_02069DA6:
- ldrb r0, [r4, #0x0]
- cmp r0, #0x0
- bne _02069DB0
- mov r0, #0x10
- strb r0, [r4, #0x0]
-_02069DB0:
- add r0, r7, #0x0
- mov r1, #0x99
- add r2, sp, #0x8
- bl SetMonDataEncrypted
-_02069DBA:
- ldr r0, [sp, #0x4]
- add r6, r6, #0x1
- cmp r6, r0
- blt _02069D66
-_02069DC2:
- add sp, #0xc
- pop {r4-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02069DC8
-FUN_02069DC8: ; 0x02069DC8
- push {r3-r7, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- bl FUN_0206B9AC
- add r7, r0, #0x0
- bl rand_LC
- mov r1, #0x3
- bl _s32_div_f
- cmp r1, #0x0
- bne _02069E70
- mov r4, #0x0
- cmp r7, #0x0
- ble _02069E70
- sub r0, r7, #0x1
- str r0, [sp, #0x0]
-_02069DEC:
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_0206B9B0
- mov r1, #0x5
- mov r2, #0x0
- add r6, r0, #0x0
- bl GetMonDataEncrypted
- cmp r0, #0x0
- beq _02069E6A
- add r0, r6, #0x0
- mov r1, #0x99
- mov r2, #0x0
- bl GetMonDataEncrypted
- add r1, sp, #0x4
- strb r0, [r1, #0x0]
- add r0, r1, #0x0
- ldrb r1, [r0, #0x0]
- mov r0, #0xf
- tst r0, r1
- beq _02069E6A
- cmp r4, #0x0
- beq _02069E40
- add r0, r5, #0x0
- sub r1, r4, #0x1
- bl FUN_0206B9B0
- mov r1, #0x99
- mov r2, #0x0
- add r6, r0, #0x0
- bl GetMonDataEncrypted
- mov r1, #0xf0
- tst r0, r1
- bne _02069E40
- add r0, r6, #0x0
- mov r1, #0x99
- add r2, sp, #0x4
- bl SetMonDataEncrypted
-_02069E40:
- ldr r0, [sp, #0x0]
- cmp r4, r0
- bge _02069E6A
- add r0, r5, #0x0
- add r1, r4, #0x1
- bl FUN_0206B9B0
- mov r1, #0x99
- mov r2, #0x0
- add r6, r0, #0x0
- bl GetMonDataEncrypted
- mov r1, #0xf0
- tst r0, r1
- bne _02069E6A
- add r0, r6, #0x0
- mov r1, #0x99
- add r2, sp, #0x4
- bl SetMonDataEncrypted
- add r4, r4, #0x1
-_02069E6A:
- add r4, r4, #0x1
- cmp r4, r7
- blt _02069DEC
-_02069E70:
- add sp, #0x8
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02069E74
-FUN_02069E74: ; 0x02069E74
- ldr r3, _02069E78 ; =FUN_02069E7C
- bx r3
- .balign 4
-_02069E78: .word FUN_02069E7C
-
- thumb_func_start FUN_02069E7C
-FUN_02069E7C: ; 0x02069E7C
- push {r3, lr}
- mov r1, #0x99
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- mov r1, #0xf
- tst r0, r1
- beq _02069E90
- mov r0, #0x1
- pop {r3, pc}
-_02069E90:
- mov r0, #0x0
- pop {r3, pc}
-
- thumb_func_start FUN_02069E94
-FUN_02069E94: ; 0x02069E94
- ldr r3, _02069E98 ; =FUN_02069E9C
- bx r3
- .balign 4
-_02069E98: .word FUN_02069E9C
-
- thumb_func_start FUN_02069E9C
-FUN_02069E9C: ; 0x02069E9C
- push {r3, lr}
- mov r1, #0x99
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- mov r0, #0xf
- tst r0, r1
- beq _02069EB4
- mov r0, #0x0
- pop {r3, pc}
-_02069EB4:
- mov r0, #0xf0
- tst r0, r1
- beq _02069EBE
- mov r0, #0x1
- pop {r3, pc}
-_02069EBE:
- mov r0, #0x0
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02069EC4
-FUN_02069EC4: ; 0x02069EC4
- ldr r3, _02069EC8 ; =FUN_02069ECC
- bx r3
- .balign 4
-_02069EC8: .word FUN_02069ECC
-
- thumb_func_start FUN_02069ECC
-FUN_02069ECC: ; 0x02069ECC
- push {r3-r6, lr}
- sub sp, #0x4
- add r5, r0, #0x0
- mov r1, #0x5
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- add r4, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0xa
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- add r6, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0x6
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- ldr r1, _02069F20 ; =SPECIES_ARCEUS
- cmp r4, r1
- bne _02069F1C
- cmp r6, #0x79
- bne _02069F1C
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r1, #0x1
- mov r2, #0x0
- bl FUN_0206E7B8
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl GetArceusTypeByPlate
- str r0, [sp, #0x0]
- add r0, r5, #0x0
- mov r1, #0x70
- add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
-_02069F1C:
- add sp, #0x4
- pop {r3-r6, pc}
- .balign 4
-_02069F20: .word SPECIES_ARCEUS
-
- thumb_func_start GetArceusTypeByPlate
-GetArceusTypeByPlate: ; 0x02069F24
- sub r0, #0x7d
- cmp r0, #0xf
- bhi _02069F96
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02069F36: ; jump table (using 16-bit offset)
- .short _02069F56 - _02069F36 - 2; case 0
- .short _02069F5A - _02069F36 - 2; case 1
- .short _02069F5E - _02069F36 - 2; case 2
- .short _02069F62 - _02069F36 - 2; case 3
- .short _02069F66 - _02069F36 - 2; case 4
- .short _02069F6A - _02069F36 - 2; case 5
- .short _02069F6E - _02069F36 - 2; case 6
- .short _02069F72 - _02069F36 - 2; case 7
- .short _02069F76 - _02069F36 - 2; case 8
- .short _02069F7A - _02069F36 - 2; case 9
- .short _02069F7E - _02069F36 - 2; case 10
- .short _02069F82 - _02069F36 - 2; case 11
- .short _02069F86 - _02069F36 - 2; case 12
- .short _02069F8A - _02069F36 - 2; case 13
- .short _02069F8E - _02069F36 - 2; case 14
- .short _02069F92 - _02069F36 - 2; case 15
-_02069F56:
- mov r0, #0xa
- bx lr
-_02069F5A:
- mov r0, #0xb
- bx lr
-_02069F5E:
- mov r0, #0xd
- bx lr
-_02069F62:
- mov r0, #0xc
- bx lr
-_02069F66:
- mov r0, #0xf
- bx lr
-_02069F6A:
- mov r0, #0x1
- bx lr
-_02069F6E:
- mov r0, #0x3
- bx lr
-_02069F72:
- mov r0, #0x4
- bx lr
-_02069F76:
- mov r0, #0x2
- bx lr
-_02069F7A:
- mov r0, #0xe
- bx lr
-_02069F7E:
- mov r0, #0x6
- bx lr
-_02069F82:
- mov r0, #0x5
- bx lr
-_02069F86:
- mov r0, #0x7
- bx lr
-_02069F8A:
- mov r0, #0x10
- bx lr
-_02069F8E:
- mov r0, #0x11
- bx lr
-_02069F92:
- mov r0, #0x8
- bx lr
-_02069F96:
- mov r0, #0x0
- bx lr
- .balign 4
-
- thumb_func_start LoadWotbl_HandleAlternateForme
-LoadWotbl_HandleAlternateForme: ; 0x02069F9C
- push {r4, lr}
- add r4, r2, #0x0
- bl ResolveMonForme
- add r2, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0x21 ; NARC_POKETOOL_PERSONAL_WOTBL
- bl ReadWholeNarcMemberByIdPair
- pop {r4, pc}
-
- thumb_func_start FUN_02069FB0
-FUN_02069FB0: ; 0x02069FB0
- push {r3-r7, lr}
- add r7, r0, #0x0
- ldr r0, _0206A010 ; =0x000001B9
- add r4, r2, #0x0
- add r5, r1, #0x0
- add r6, r3, #0x0
- cmp r4, r0
- bne _02069FFC
- add r0, r5, #0x0
- bl FUN_02005F14
- cmp r0, #0x0
- bne _02069FE2
- mov r0, #0x1
- bl FUN_02005E80
- ldr r0, [sp, #0x20]
- ldr r3, [sp, #0x18]
- str r0, [sp, #0x0]
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl FUN_020056AC
- pop {r3-r7, pc}
-_02069FE2:
- ldr r0, [sp, #0x1c]
- cmp r0, #0x0
- beq _02069FEE
- mov r0, #0x1
- bl FUN_02005E80
-_02069FEE:
- ldr r2, [sp, #0x18]
- add r0, r7, #0x0
- mov r1, #0x0
- add r3, r6, #0x0
- bl FUN_02005E90
- pop {r3-r7, pc}
-_02069FFC:
- ldr r0, [sp, #0x20]
- ldr r3, [sp, #0x18]
- str r0, [sp, #0x0]
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl FUN_020056AC
- pop {r3-r7, pc}
- nop
-_0206A010: .word 0x000001B9
-
- thumb_func_start FUN_0206A014
-FUN_0206A014: ; 0x0206A014
- push {r3-r6, lr}
- sub sp, #0xc
- ldr r6, [sp, #0x20]
- add r5, r0, #0x0
- str r6, [sp, #0x0]
- ldr r6, [sp, #0x24]
- add r4, r2, #0x0
- str r6, [sp, #0x4]
- bl FUN_0206A054
- cmp r4, #0xe
- bne _0206A050
- add r0, r5, #0x0
- mov r1, #0xa3
- mov r2, #0x0
- bl GetMonDataEncrypted
- str r0, [sp, #0x8]
- add r0, r5, #0x0
- mov r1, #0xa2
- add r2, sp, #0x8
- bl SetMonDataEncrypted
- mov r0, #0x0
- str r0, [sp, #0x8]
- add r0, r5, #0x0
- mov r1, #0x9f
- add r2, sp, #0x8
- bl SetMonDataEncrypted
-_0206A050:
- add sp, #0xc
- pop {r3-r6, pc}
-
- thumb_func_start FUN_0206A054
-FUN_0206A054: ; 0x0206A054
- push {r0-r3}
- push {r3-r4, lr}
- sub sp, #0x4
- ldr r2, [sp, #0x24]
- add r4, r0, #0x0
- str r2, [sp, #0x0]
- mov r2, #0x0
- bl FUN_020808AC
- ldr r2, _0206A090 ; =gGameVersion
- add r0, r4, #0x0
- mov r1, #0x79
- bl SetBoxMonDataEncrypted
- add r0, r4, #0x0
- mov r1, #0x9a
- add r2, sp, #0x18
- bl SetBoxMonDataEncrypted
- add r0, r4, #0x0
- mov r1, #0x9d
- add r2, sp, #0x20
- bl SetBoxMonDataEncrypted
- add sp, #0x4
- pop {r3-r4}
- pop {r3}
- add sp, #0x10
- bx r3
- nop
-_0206A090: .word gGameVersion
-
- thumb_func_start FUN_0206A094
-FUN_0206A094: ; 0x0206A094
- push {r3-r7, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- mov r0, #0x81
- add r7, r2, #0x0
- tst r0, r1
- bne _0206A12E
- bl rand_LC
- mov r1, #0x64
- bl _s32_div_f
- add r4, r1, #0x0
- add r0, r5, #0x0
- mov r1, #0x5
- mov r2, #0x0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r6, r0, #0x10
- add r0, r5, #0x0
- mov r1, #0x70
- mov r2, #0x0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x0]
- ldr r1, [sp, #0x0]
- add r0, r6, #0x0
- mov r2, #0x10
- bl GetMonBaseStat_HandleFormeConversion
- add r1, sp, #0x4
- strh r0, [r1, #0x2]
- ldr r1, [sp, #0x0]
- add r0, r6, #0x0
- mov r2, #0x11
- bl GetMonBaseStat_HandleFormeConversion
- add r1, sp, #0x4
- strh r0, [r1, #0x0]
- ldrh r2, [r1, #0x2]
- ldrh r0, [r1, #0x0]
- cmp r2, r0
- bne _0206A104
- cmp r2, #0x0
- beq _0206A104
- add r2, sp, #0x4
- add r0, r5, #0x0
- mov r1, #0x6
- add r2, #0x2
- bl SetMonDataEncrypted
- add sp, #0x8
- pop {r3-r7, pc}
-_0206A104:
- ldr r0, _0206A134 ; =sItemOdds
- lsl r1, r7, #0x2
- ldrh r0, [r0, r1]
- cmp r4, r0
- blo _0206A12E
- ldr r0, _0206A138 ; =sItemOdds + 2
- ldrh r0, [r0, r1]
- cmp r4, r0
- add r2, sp, #0x4
- bhs _0206A126
- add r0, r5, #0x0
- mov r1, #0x6
- add r2, #0x2
- bl SetMonDataEncrypted
- add sp, #0x8
- pop {r3-r7, pc}
-_0206A126:
- add r0, r5, #0x0
- mov r1, #0x6
- bl SetMonDataEncrypted
-_0206A12E:
- add sp, #0x8
- pop {r3-r7, pc}
- nop
-_0206A134: .word sItemOdds
-_0206A138: .word sItemOdds + 2
-
- thumb_func_start FUN_0206A13C
-FUN_0206A13C: ; 0x0206A13C
- ldr r3, _0206A140 ; =FUN_0206A144
- bx r3
- .balign 4
-_0206A140: .word FUN_0206A144
-
- thumb_func_start FUN_0206A144
-FUN_0206A144: ; 0x0206A144
- push {r4-r6, lr}
- add r6, r1, #0x0
- mov r1, #0xad
- mov r2, #0x0
- add r5, r0, #0x0
- bl GetBoxMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- add r0, r5, #0x0
- mov r1, #0x70
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- add r1, r0, #0x0
- add r0, r4, #0x0
- add r2, r6, #0x0
- bl FUN_0206A16C
- pop {r4-r6, pc}
-
- thumb_func_start FUN_0206A16C
-FUN_0206A16C: ; 0x0206A16C
- push {r4, lr}
- ldr r3, _0206A1C0 ; =SPECIES_EGG
- cmp r0, r3
- bne _0206A178
- mov r0, #0x0
- pop {r4, pc}
-_0206A178:
- cmp r2, #0x20
- bhs _0206A186
- mov r3, #0x1
- add r4, r3, #0x0
- lsl r4, r2
- mov r2, #0x1d
- b _0206A1B0
-_0206A186:
- cmp r2, #0x40
- bhs _0206A196
- mov r3, #0x1
- sub r2, #0x20
- add r4, r3, #0x0
- lsl r4, r2
- mov r2, #0x1e
- b _0206A1B0
-_0206A196:
- cmp r2, #0x60
- bhs _0206A1A6
- mov r3, #0x1
- sub r2, #0x40
- add r4, r3, #0x0
- lsl r4, r2
- mov r2, #0x1f
- b _0206A1B0
-_0206A1A6:
- mov r3, #0x1
- sub r2, #0x60
- add r4, r3, #0x0
- lsl r4, r2
- mov r2, #0x20
-_0206A1B0:
- bl GetMonBaseStat_HandleFormeConversion
- tst r0, r4
- beq _0206A1BC
- mov r0, #0x1
- pop {r4, pc}
-_0206A1BC:
- mov r0, #0x0
- pop {r4, pc}
- .balign 4
-_0206A1C0: .word SPECIES_EGG
-
- thumb_func_start FUN_0206A1C4
-FUN_0206A1C4: ; 0x0206A1C4
- ldr r3, _0206A1C8 ; =FUN_0206A1CC
- bx r3
- .balign 4
-_0206A1C8: .word FUN_0206A1CC
-
- thumb_func_start FUN_0206A1CC
-FUN_0206A1CC: ; 0x0206A1CC
- push {r3-r7, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- bl TryDecryptBoxMon
- add r7, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0x5
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- mov r1, #0x0
- add r4, r0, #0x0
- add r0, r5, #0x0
- add r2, r1, #0x0
- bl GetBoxMonDataEncrypted
- add r6, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0x18
- bl GetMonBaseStat
- str r0, [sp, #0x4]
- add r0, r4, #0x0
- mov r1, #0x19
- bl GetMonBaseStat
- str r0, [sp, #0x0]
- cmp r0, #0x0
- beq _0206A226
- mov r0, #0x1
- tst r0, r6
- beq _0206A21A
- add r0, r5, #0x0
- mov r1, #0xa
- add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
- b _0206A230
-_0206A21A:
- add r0, r5, #0x0
- mov r1, #0xa
- add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
- b _0206A230
-_0206A226:
- add r0, r5, #0x0
- mov r1, #0xa
- add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
-_0206A230:
- add r0, r5, #0x0
- add r1, r7, #0x0
- bl TryEncryptBoxMon
- add sp, #0x8
- pop {r3-r7, pc}
-
- thumb_func_start FUN_0206A23C
-FUN_0206A23C: ; 0x0206A23C
- push {r4-r7, lr}
- sub sp, #0x1c
- add r5, r0, #0x0
- mov r0, #0x0
- str r1, [sp, #0x0]
- bl AllocMonZeroed
- str r0, [sp, #0x4]
- ldr r1, [sp, #0x4]
- add r0, r5, #0x0
- bl FUN_02069B88
- ldr r0, [sp, #0x4]
- ldr r1, [r5, #0x0]
- mov r2, #0x0
- bl GetSubstruct
- add r4, r0, #0x0
- ldr r0, [sp, #0x4]
- ldr r1, [r5, #0x0]
- mov r2, #0x1
- bl GetSubstruct
- add r6, r0, #0x0
- ldr r0, [sp, #0x4]
- ldr r1, [r5, #0x0]
- mov r2, #0x2
- bl GetSubstruct
- add r7, r0, #0x0
- ldr r0, [sp, #0x4]
- ldr r1, [r5, #0x0]
- mov r2, #0x3
- bl GetSubstruct
- str r0, [sp, #0x8]
- ldr r1, [sp, #0x0]
- add r0, r5, #0x0
- mov r2, #0x0
- bl GetSubstruct
- str r0, [sp, #0xc]
- ldr r1, [sp, #0x0]
- add r0, r5, #0x0
- mov r2, #0x1
- bl GetSubstruct
- str r0, [sp, #0x10]
- ldr r1, [sp, #0x0]
- add r0, r5, #0x0
- mov r2, #0x2
- bl GetSubstruct
- str r0, [sp, #0x14]
- ldr r1, [sp, #0x0]
- add r0, r5, #0x0
- mov r2, #0x3
- bl GetSubstruct
- ldr r2, [sp, #0x4]
- str r0, [sp, #0x18]
- ldr r0, [sp, #0x4]
- ldrh r2, [r2, #0x6]
- add r0, #0x8
- mov r1, #0x80
- bl MonDecryptSegment
- add r0, r5, #0x0
- ldr r2, [r5, #0x0]
- add r0, #0x88
- mov r1, #0x64
- bl MonDecryptSegment
- add r0, r5, #0x0
- ldrh r2, [r5, #0x6]
- add r0, #0x8
- mov r1, #0x80
- bl MonDecryptSegment
- ldr r0, [sp, #0x0]
- str r0, [r5, #0x0]
- ldr r2, [sp, #0xc]
- ldmia r4!, {r0-r1}
- stmia r2!, {r0-r1}
- str r2, [sp, #0xc]
- ldmia r4!, {r0-r1}
- stmia r2!, {r0-r1}
- str r2, [sp, #0xc]
- ldmia r4!, {r0-r1}
- stmia r2!, {r0-r1}
- str r2, [sp, #0xc]
- ldmia r4!, {r0-r1}
- stmia r2!, {r0-r1}
- str r2, [sp, #0xc]
- ldr r2, [sp, #0x10]
- ldmia r6!, {r0-r1}
- stmia r2!, {r0-r1}
- str r2, [sp, #0x10]
- ldmia r6!, {r0-r1}
- stmia r2!, {r0-r1}
- str r2, [sp, #0x10]
- ldmia r6!, {r0-r1}
- stmia r2!, {r0-r1}
- str r2, [sp, #0x10]
- ldmia r6!, {r0-r1}
- stmia r2!, {r0-r1}
- str r2, [sp, #0x10]
- ldr r2, [sp, #0x14]
- ldmia r7!, {r0-r1}
- stmia r2!, {r0-r1}
- str r2, [sp, #0x14]
- ldmia r7!, {r0-r1}
- stmia r2!, {r0-r1}
- str r2, [sp, #0x14]
- ldmia r7!, {r0-r1}
- stmia r2!, {r0-r1}
- str r2, [sp, #0x14]
- ldmia r7!, {r0-r1}
- stmia r2!, {r0-r1}
- str r2, [sp, #0x14]
- mov r0, #0x10
-_0206A32E:
- ldr r1, [sp, #0x8]
- ldrh r2, [r1, #0x0]
- add r1, r1, #0x2
- str r1, [sp, #0x8]
- ldr r1, [sp, #0x18]
- strh r2, [r1, #0x0]
- add r1, r1, #0x2
- str r1, [sp, #0x18]
- sub r0, r0, #0x1
- bne _0206A32E
- add r0, r5, #0x0
- add r0, #0x8
- mov r1, #0x80
- bl CalcMonChecksum
- strh r0, [r5, #0x6]
- add r0, r5, #0x0
- ldrh r2, [r5, #0x6]
- add r0, #0x8
- mov r1, #0x80
- bl MonEncryptSegment
- add r0, r5, #0x0
- ldr r2, [r5, #0x0]
- add r0, #0x88
- mov r1, #0x64
- bl MonEncryptSegment
- ldr r0, [sp, #0x4]
- bl FreeToHeap
- add sp, #0x1c
- pop {r4-r7, pc}
-
- thumb_func_start LoadMonPersonal
-LoadMonPersonal: ; 0x0206A370
- ldr r3, _0206A37C ; =ReadWholeNarcMemberByIdPair
- add r2, r0, #0x0
- add r0, r1, #0x0
- mov r1, #0x2 ; NARC_POKETOOL_PERSONAL_PERSONAL
- bx r3
- nop
-_0206A37C: .word ReadWholeNarcMemberByIdPair
-
- thumb_func_start LoadMonBaseStats_HandleAlternateForme
-LoadMonBaseStats_HandleAlternateForme: ; 0x0206A380
- push {r4, lr}
- add r4, r2, #0x0
- bl ResolveMonForme
- add r2, r0, #0x0
- add r0, r4, #0x0
- mov r1, #0x2 ; NARC_POKETOOL_PERSONAL_PERSONAL
- bl ReadWholeNarcMemberByIdPair
- pop {r4, pc}
-
- thumb_func_start LoadMonEvolutionTable
-LoadMonEvolutionTable: ; 0x0206A394
- ldr r3, _0206A3A0 ; =ReadWholeNarcMemberByIdPair
- add r2, r0, #0x0
- add r0, r1, #0x0
- mov r1, #0x22 ; NARC_POKETOOL_PERSONAL_EVO
- bx r3
- nop
-_0206A3A0: .word ReadWholeNarcMemberByIdPair
-
- thumb_func_start MonEncryptSegment
-MonEncryptSegment: ; 0x0206A3A4
- push {r0-r3}
- push {r3-r7, lr}
- add r5, r0, #0x0
- mov r4, #0x0
- lsr r6, r1, #0x1
- beq _0206A3C6
- add r7, sp, #0x20
-_0206A3B2:
- add r0, r7, #0x0
- bl MonEncryptionLCRNG
- ldrh r1, [r5, #0x0]
- add r4, r4, #0x1
- eor r0, r1
- strh r0, [r5, #0x0]
- add r5, r5, #0x2
- cmp r4, r6
- blo _0206A3B2
-_0206A3C6:
- pop {r3-r7}
- pop {r3}
- add sp, #0x10
- bx r3
- .balign 4
-
- thumb_func_start MonDecryptSegment
-MonDecryptSegment: ; 0x0206A3D0
- ldr r3, _0206A3D4 ; =MonEncryptSegment
- bx r3
- .balign 4
-_0206A3D4: .word MonEncryptSegment
-
- thumb_func_start MonEncryptionLCRNG
-MonEncryptionLCRNG: ; 0x0206A3D8
- ldr r2, [r0, #0x0]
- ldr r1, _0206A3F0 ; =0x41C64E6D
- add r3, r2, #0x0
- mul r3, r1
- ldr r1, _0206A3F4 ; =0x00006073
- add r1, r3, r1
- str r1, [r0, #0x0]
- lsr r0, r1, #0x10
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bx lr
- nop
-_0206A3F0: .word 0x41C64E6D
-_0206A3F4: .word 0x00006073
-
- thumb_func_start CalcMonChecksum
-CalcMonChecksum: ; 0x0206A3F8
- push {r3-r4}
- mov r3, #0x0
- add r2, r3, #0x0
- lsr r4, r1, #0x1
- beq _0206A412
-_0206A402:
- ldrh r1, [r0, #0x0]
- add r2, r2, #0x1
- add r0, r0, #0x2
- add r1, r3, r1
- lsl r1, r1, #0x10
- lsr r3, r1, #0x10
- cmp r2, r4
- blo _0206A402
-_0206A412:
- add r0, r3, #0x0
- pop {r3-r4}
- bx lr
-
- thumb_func_start GetSubstruct
-GetSubstruct: ; 0x0206A418
- push {r3, lr}
- mov r3, #0x3e
- lsl r3, r3, #0xc
- and r3, r1
- lsr r3, r3, #0xd
- cmp r3, #0x1f
- bhi _0206A478
- add r3, r3, r3
- add r3, pc
- ldrh r3, [r3, #0x6]
- lsl r3, r3, #0x10
- asr r3, r3, #0x10
- add pc, r3
-_0206A432: ; jump table (using 16-bit offset)
- .short _0206A472 - _0206A432 - 2; case 0
- .short _0206A4A4 - _0206A432 - 2; case 1
- .short _0206A4D4 - _0206A432 - 2; case 2
- .short _0206A504 - _0206A432 - 2; case 3
- .short _0206A534 - _0206A432 - 2; case 4
- .short _0206A564 - _0206A432 - 2; case 5
- .short _0206A594 - _0206A432 - 2; case 6
- .short _0206A5C6 - _0206A432 - 2; case 7
- .short _0206A5F6 - _0206A432 - 2; case 8
- .short _0206A626 - _0206A432 - 2; case 9
- .short _0206A656 - _0206A432 - 2; case 10
- .short _0206A686 - _0206A432 - 2; case 11
- .short _0206A6B6 - _0206A432 - 2; case 12
- .short _0206A6E8 - _0206A432 - 2; case 13
- .short _0206A718 - _0206A432 - 2; case 14
- .short _0206A748 - _0206A432 - 2; case 15
- .short _0206A778 - _0206A432 - 2; case 16
- .short _0206A7A8 - _0206A432 - 2; case 17
- .short _0206A7D8 - _0206A432 - 2; case 18
- .short _0206A80A - _0206A432 - 2; case 19
- .short _0206A83A - _0206A432 - 2; case 20
- .short _0206A86A - _0206A432 - 2; case 21
- .short _0206A89A - _0206A432 - 2; case 22
- .short _0206A8CA - _0206A432 - 2; case 23
- .short _0206A472 - _0206A432 - 2; case 24
- .short _0206A4A4 - _0206A432 - 2; case 25
- .short _0206A4D4 - _0206A432 - 2; case 26
- .short _0206A504 - _0206A432 - 2; case 27
- .short _0206A534 - _0206A432 - 2; case 28
- .short _0206A564 - _0206A432 - 2; case 29
- .short _0206A594 - _0206A432 - 2; case 30
- .short _0206A5C6 - _0206A432 - 2; case 31
-_0206A472:
- add r0, #0x8
- cmp r2, #0x3
- bls _0206A47A
-_0206A478:
- b _0206A8F8
-_0206A47A:
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A486: ; jump table (using 16-bit offset)
- .short _0206A48E - _0206A486 - 2; case 0
- .short _0206A492 - _0206A486 - 2; case 1
- .short _0206A498 - _0206A486 - 2; case 2
- .short _0206A49E - _0206A486 - 2; case 3
-_0206A48E:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A492:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A498:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A49E:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A4A4:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A59A
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A4B6: ; jump table (using 16-bit offset)
- .short _0206A4BE - _0206A4B6 - 2; case 0
- .short _0206A4C2 - _0206A4B6 - 2; case 1
- .short _0206A4C8 - _0206A4B6 - 2; case 2
- .short _0206A4CE - _0206A4B6 - 2; case 3
-_0206A4BE:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A4C2:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A4C8:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A4CE:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A4D4:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A59A
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A4E6: ; jump table (using 16-bit offset)
- .short _0206A4EE - _0206A4E6 - 2; case 0
- .short _0206A4F2 - _0206A4E6 - 2; case 1
- .short _0206A4F8 - _0206A4E6 - 2; case 2
- .short _0206A4FE - _0206A4E6 - 2; case 3
-_0206A4EE:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A4F2:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A4F8:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A4FE:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A504:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A59A
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A516: ; jump table (using 16-bit offset)
- .short _0206A51E - _0206A516 - 2; case 0
- .short _0206A522 - _0206A516 - 2; case 1
- .short _0206A528 - _0206A516 - 2; case 2
- .short _0206A52E - _0206A516 - 2; case 3
-_0206A51E:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A522:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A528:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A52E:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A534:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A59A
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A546: ; jump table (using 16-bit offset)
- .short _0206A54E - _0206A546 - 2; case 0
- .short _0206A552 - _0206A546 - 2; case 1
- .short _0206A558 - _0206A546 - 2; case 2
- .short _0206A55E - _0206A546 - 2; case 3
-_0206A54E:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A552:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A558:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A55E:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A564:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A59A
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A576: ; jump table (using 16-bit offset)
- .short _0206A57E - _0206A576 - 2; case 0
- .short _0206A582 - _0206A576 - 2; case 1
- .short _0206A588 - _0206A576 - 2; case 2
- .short _0206A58E - _0206A576 - 2; case 3
-_0206A57E:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A582:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A588:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A58E:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A594:
- add r0, #0x8
- cmp r2, #0x3
- bls _0206A59C
-_0206A59A:
- b _0206A8F8
-_0206A59C:
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A5A8: ; jump table (using 16-bit offset)
- .short _0206A5B0 - _0206A5A8 - 2; case 0
- .short _0206A5B6 - _0206A5A8 - 2; case 1
- .short _0206A5BA - _0206A5A8 - 2; case 2
- .short _0206A5C0 - _0206A5A8 - 2; case 3
-_0206A5B0:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A5B6:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A5BA:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A5C0:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A5C6:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A6BC
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A5D8: ; jump table (using 16-bit offset)
- .short _0206A5E0 - _0206A5D8 - 2; case 0
- .short _0206A5E6 - _0206A5D8 - 2; case 1
- .short _0206A5EA - _0206A5D8 - 2; case 2
- .short _0206A5F0 - _0206A5D8 - 2; case 3
-_0206A5E0:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A5E6:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A5EA:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A5F0:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A5F6:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A6BC
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A608: ; jump table (using 16-bit offset)
- .short _0206A610 - _0206A608 - 2; case 0
- .short _0206A616 - _0206A608 - 2; case 1
- .short _0206A61A - _0206A608 - 2; case 2
- .short _0206A620 - _0206A608 - 2; case 3
-_0206A610:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A616:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A61A:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A620:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A626:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A6BC
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A638: ; jump table (using 16-bit offset)
- .short _0206A640 - _0206A638 - 2; case 0
- .short _0206A646 - _0206A638 - 2; case 1
- .short _0206A64A - _0206A638 - 2; case 2
- .short _0206A650 - _0206A638 - 2; case 3
-_0206A640:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A646:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A64A:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A650:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A656:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A6BC
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A668: ; jump table (using 16-bit offset)
- .short _0206A670 - _0206A668 - 2; case 0
- .short _0206A676 - _0206A668 - 2; case 1
- .short _0206A67A - _0206A668 - 2; case 2
- .short _0206A680 - _0206A668 - 2; case 3
-_0206A670:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A676:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A67A:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A680:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A686:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A6BC
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A698: ; jump table (using 16-bit offset)
- .short _0206A6A0 - _0206A698 - 2; case 0
- .short _0206A6A6 - _0206A698 - 2; case 1
- .short _0206A6AA - _0206A698 - 2; case 2
- .short _0206A6B0 - _0206A698 - 2; case 3
-_0206A6A0:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A6A6:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A6AA:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A6B0:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A6B6:
- add r0, #0x8
- cmp r2, #0x3
- bls _0206A6BE
-_0206A6BC:
- b _0206A8F8
-_0206A6BE:
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A6CA: ; jump table (using 16-bit offset)
- .short _0206A6D2 - _0206A6CA - 2; case 0
- .short _0206A6D8 - _0206A6CA - 2; case 1
- .short _0206A6DE - _0206A6CA - 2; case 2
- .short _0206A6E2 - _0206A6CA - 2; case 3
-_0206A6D2:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A6D8:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A6DE:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A6E2:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A6E8:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A7DE
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A6FA: ; jump table (using 16-bit offset)
- .short _0206A702 - _0206A6FA - 2; case 0
- .short _0206A708 - _0206A6FA - 2; case 1
- .short _0206A70E - _0206A6FA - 2; case 2
- .short _0206A712 - _0206A6FA - 2; case 3
-_0206A702:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A708:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A70E:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A712:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A718:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A7DE
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A72A: ; jump table (using 16-bit offset)
- .short _0206A732 - _0206A72A - 2; case 0
- .short _0206A738 - _0206A72A - 2; case 1
- .short _0206A73E - _0206A72A - 2; case 2
- .short _0206A742 - _0206A72A - 2; case 3
-_0206A732:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A738:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A73E:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A742:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A748:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A7DE
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A75A: ; jump table (using 16-bit offset)
- .short _0206A762 - _0206A75A - 2; case 0
- .short _0206A768 - _0206A75A - 2; case 1
- .short _0206A76E - _0206A75A - 2; case 2
- .short _0206A772 - _0206A75A - 2; case 3
-_0206A762:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A768:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A76E:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A772:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A778:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A7DE
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A78A: ; jump table (using 16-bit offset)
- .short _0206A792 - _0206A78A - 2; case 0
- .short _0206A798 - _0206A78A - 2; case 1
- .short _0206A79E - _0206A78A - 2; case 2
- .short _0206A7A2 - _0206A78A - 2; case 3
-_0206A792:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A798:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A79E:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A7A2:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A7A8:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A7DE
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A7BA: ; jump table (using 16-bit offset)
- .short _0206A7C2 - _0206A7BA - 2; case 0
- .short _0206A7C8 - _0206A7BA - 2; case 1
- .short _0206A7CE - _0206A7BA - 2; case 2
- .short _0206A7D2 - _0206A7BA - 2; case 3
-_0206A7C2:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A7C8:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A7CE:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A7D2:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A7D8:
- add r0, #0x8
- cmp r2, #0x3
- bls _0206A7E0
-_0206A7DE:
- b _0206A8F8
-_0206A7E0:
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A7EC: ; jump table (using 16-bit offset)
- .short _0206A7F4 - _0206A7EC - 2; case 0
- .short _0206A7FA - _0206A7EC - 2; case 1
- .short _0206A800 - _0206A7EC - 2; case 2
- .short _0206A806 - _0206A7EC - 2; case 3
-_0206A7F4:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A7FA:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A800:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A806:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A80A:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A8F8
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A81C: ; jump table (using 16-bit offset)
- .short _0206A824 - _0206A81C - 2; case 0
- .short _0206A82A - _0206A81C - 2; case 1
- .short _0206A830 - _0206A81C - 2; case 2
- .short _0206A836 - _0206A81C - 2; case 3
-_0206A824:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A82A:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A830:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A836:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A83A:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A8F8
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A84C: ; jump table (using 16-bit offset)
- .short _0206A854 - _0206A84C - 2; case 0
- .short _0206A85A - _0206A84C - 2; case 1
- .short _0206A860 - _0206A84C - 2; case 2
- .short _0206A866 - _0206A84C - 2; case 3
-_0206A854:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A85A:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A860:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A866:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A86A:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A8F8
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A87C: ; jump table (using 16-bit offset)
- .short _0206A884 - _0206A87C - 2; case 0
- .short _0206A88A - _0206A87C - 2; case 1
- .short _0206A890 - _0206A87C - 2; case 2
- .short _0206A896 - _0206A87C - 2; case 3
-_0206A884:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A88A:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A890:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A896:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A89A:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A8F8
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A8AC: ; jump table (using 16-bit offset)
- .short _0206A8B4 - _0206A8AC - 2; case 0
- .short _0206A8BA - _0206A8AC - 2; case 1
- .short _0206A8C0 - _0206A8AC - 2; case 2
- .short _0206A8C6 - _0206A8AC - 2; case 3
-_0206A8B4:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A8BA:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A8C0:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A8C6:
- add r1, r0, #0x0
- b _0206A8F8
-_0206A8CA:
- add r0, #0x8
- cmp r2, #0x3
- bhi _0206A8F8
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #0x6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0206A8DC: ; jump table (using 16-bit offset)
- .short _0206A8E4 - _0206A8DC - 2; case 0
- .short _0206A8EA - _0206A8DC - 2; case 1
- .short _0206A8F0 - _0206A8DC - 2; case 2
- .short _0206A8F6 - _0206A8DC - 2; case 3
-_0206A8E4:
- add r1, r0, #0x0
- add r1, #0x60
- b _0206A8F8
-_0206A8EA:
- add r1, r0, #0x0
- add r1, #0x40
- b _0206A8F8
-_0206A8F0:
- add r1, r0, #0x0
- add r1, #0x20
- b _0206A8F8
-_0206A8F6:
- add r1, r0, #0x0
-_0206A8F8:
- add r0, r1, #0x0
- pop {r3, pc}
-
- thumb_func_start ResolveMonForme
-ResolveMonForme: ; 0x0206A8FC
- ldr r3, _0206A928 ; =SPECIES_DEOXYS
- cmp r0, r3
- beq _0206A90C
- add r2, r3, #0x0
- add r2, #SPECIES_WORMADAM-SPECIES_DEOXYS
- cmp r0, r2
- beq _0206A91A
- bx lr
-_0206A90C:
- cmp r1, #0x0
- beq _0206A926
- cmp r1, #0x3
- bgt _0206A926
- add r3, #SPECIES_DEOXYS_ATK-SPECIES_DEOXYS-1
- add r0, r1, r3
- bx lr
-_0206A91A:
- cmp r1, #0x0
- beq _0206A926
- cmp r1, #0x2
- bgt _0206A926
- add r3, #SPECIES_WORMADAM_SANDY-SPECIES_DEOXYS-1
- add r0, r1, r3
-_0206A926:
- bx lr
- .balign 4
-_0206A928: .word SPECIES_DEOXYS
-
- thumb_func_start MaskOfFlagNo
-MaskOfFlagNo: ; 0x0206A92C
- push {r3-r5, lr}
- add r5, r0, #0x0
- mov r4, #0x1
- cmp r5, #0x20
- blt _0206A93A
- bl ErrorHandling
-_0206A93A:
- mov r0, #0x0
- cmp r5, #0x0
- ble _0206A948
-_0206A940:
- add r0, r0, #0x1
- lsl r4, r4, #0x1
- cmp r0, r5
- blt _0206A940
-_0206A948:
- add r0, r4, #0x0
- pop {r3-r5, pc}
-
- thumb_func_start LowestFlagNo
-LowestFlagNo: ; 0x0206A94C
- mov r3, #0x1
- mov r2, #0x0
-_0206A950:
- add r1, r0, #0x0
- tst r1, r3
- bne _0206A95E
- add r2, r2, #0x1
- lsl r3, r3, #0x1
- cmp r2, #0x20
- blt _0206A950
-_0206A95E:
- add r0, r2, #0x0
- bx lr
- .balign 4
-
- thumb_func_start IsPokemonLegendaryOrMythical
-IsPokemonLegendaryOrMythical: ; 0x0206A964
- ldr r3, _0206A980 ; =sLegendaryMonsList
- mov r2, #0x0
-_0206A968:
- ldrh r1, [r3, #0x0]
- cmp r0, r1
- bne _0206A972
- mov r0, #0x1
- bx lr
-_0206A972:
- add r2, r2, #0x1
- add r3, r3, #0x2
- cmp r2, #0x12
- blo _0206A968
- mov r0, #0x0
- bx lr
- nop
-_0206A980: .word sLegendaryMonsList
-
- thumb_func_start GetLegendaryMon
-GetLegendaryMon: ; 0x0206A984
- cmp r0, #0x12
- blo _0206A98A
- mov r0, #0x0
-_0206A98A:
- lsl r1, r0, #0x1
- ldr r0, _0206A994 ; =sLegendaryMonsList
- ldrh r0, [r0, r1]
- bx lr
- nop
-_0206A994: .word sLegendaryMonsList
-
- thumb_func_start FUN_0206A998
-FUN_0206A998: ; 0x0206A998
- push {r3, lr}
- mov r1, #0x5
- mov r2, #0x0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl IsPokemonLegendaryOrMythical
- pop {r3, pc}
-
- thumb_func_start FUN_0206A9AC
-FUN_0206A9AC: ; 0x0206A9AC
- push {r3-r7, lr}
- sub sp, #0x10
- add r4, r1, #0x0
- add r5, r0, #0x0
- add r0, r4, #0x0
- add r6, r2, #0x0
- bl FUN_020239BC
- str r0, [sp, #0x0]
- add r0, r5, #0x0
- mov r1, #0x7
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- str r0, [sp, #0x4]
- add r0, r4, #0x0
- bl FUN_020239CC
- str r0, [sp, #0x8]
- add r0, r5, #0x0
- mov r1, #0x9c
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- str r0, [sp, #0xc]
- add r0, r4, #0x0
- add r1, r6, #0x0
- bl FUN_020239A0
- add r7, r0, #0x0
- mov r0, #0x8
- add r1, r6, #0x0
- bl FUN_020219F4
- add r6, r0, #0x0
- add r0, r5, #0x0
- mov r1, #0x90
- add r2, r6, #0x0
- mov r4, #0x0
- bl GetBoxMonDataEncrypted
- ldr r1, [sp, #0x0]
- ldr r0, [sp, #0x4]
- cmp r1, r0
- bne _0206AA1C
- ldr r1, [sp, #0x8]
- ldr r0, [sp, #0xc]
- cmp r1, r0
- bne _0206AA1C
- add r0, r7, #0x0
- add r1, r6, #0x0
- bl FUN_02021CE0
- cmp r0, #0x0
- bne _0206AA1C
- mov r4, #0x1
-_0206AA1C:
- add r0, r6, #0x0
- bl FUN_02021A20
- add r0, r7, #0x0
- bl FUN_02021A20
- add r0, r4, #0x0
- add sp, #0x10
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0206AA30
-FUN_0206AA30: ; 0x0206AA30
- push {r3, lr}
- cmp r0, #0x3f
- bgt _0206AA48
- bge _0206AA6C
- cmp r0, #0x1
- bgt _0206AA74
- cmp r0, #0x0
- blt _0206AA74
- beq _0206AA82
- cmp r0, #0x1
- beq _0206AA82
- b _0206AA74
-_0206AA48:
- cmp r0, #0x5a
- bgt _0206AA50
- beq _0206AA70
- b _0206AA74
-_0206AA50:
- add r1, r0, #0x0
- sub r1, #0x5b
- cmp r1, #0x3
- bhi _0206AA74
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #0x6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0206AA64: ; jump table (using 16-bit offset)
- .short _0206AA70 - _0206AA64 - 2; case 0
- .short _0206AA70 - _0206AA64 - 2; case 1
- .short _0206AA70 - _0206AA64 - 2; case 2
- .short _0206AA70 - _0206AA64 - 2; case 3
-_0206AA6C:
- mov r0, #0x2
- pop {r3, pc}
-_0206AA70:
- sub r0, #0x57
- pop {r3, pc}
-_0206AA74:
- bl FUN_0206AE00
- cmp r0, #0x1
- bne _0206AA80
- mov r0, #0x1
- pop {r3, pc}
-_0206AA80:
- mov r0, #0x0
-_0206AA82:
- pop {r3, pc}
-
- thumb_func_start FUN_0206AA84
-FUN_0206AA84: ; 0x0206AA84
- push {r3-r4, lr}
- sub sp, #0x1c
- add r4, r0, #0x0
- mov r0, #0x0
- add r1, sp, #0x0
- strb r0, [r1, #0x0]
- add r1, sp, #0x0
- add r1, #0x1
- mov r2, #0x18
- bl MIi_CpuClearFast
- add r0, r4, #0x0
- mov r1, #0xa1
- add r2, sp, #0x0
- bl SetMonDataEncrypted
- add r2, sp, #0x0
- add r0, r4, #0x0
- mov r1, #0xaa
- add r2, #0x1
- bl SetMonDataEncrypted
- add sp, #0x1c
- pop {r3-r4, pc}
-
- thumb_func_start FUN_0206AAB4
-FUN_0206AAB4: ; 0x0206AAB4
- push {r3-r7, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- bl TryDecryptBoxMon
- mov r4, #0x0
- str r0, [sp, #0x0]
- add r7, r4, #0x0
- add r6, sp, #0x4
-_0206AAC6:
- add r1, r4, #0x0
- add r0, r5, #0x0
- add r1, #0x36
- add r2, r7, #0x0
- bl GetBoxMonDataEncrypted
- cmp r0, #0x0
- beq _0206AAF0
- add r1, r4, #0x0
- add r0, r5, #0x0
- add r1, #0x42
- mov r2, #0x0
- bl GetBoxMonDataEncrypted
- add r1, r4, #0x0
- strb r0, [r6, #0x0]
- add r0, r5, #0x0
- add r1, #0x3a
- add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
-_0206AAF0:
- add r4, r4, #0x1
- cmp r4, #0x4
- blt _0206AAC6
- ldr r1, [sp, #0x0]
- add r0, r5, #0x0
- bl TryEncryptBoxMon
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
diff --git a/arm9/asm/scrcmd.s b/arm9/asm/scrcmd.s
index 275875f4..61bb429a 100644
--- a/arm9/asm/scrcmd.s
+++ b/arm9/asm/scrcmd.s
@@ -3953,7 +3953,7 @@ FUN_0203B8A0: ; 0x0203B8A0
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r6, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
bl FUN_020690CC
strh r0, [r4, #0x0]
mov r0, #0x0
@@ -4602,7 +4602,7 @@ FUN_0203BDB8: ; 0x0203BDB8
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r4, r0, #0x0
mov r0, #0x0
str r0, [sp, #0x0]
@@ -4635,7 +4635,7 @@ FUN_0203BDB8: ; 0x0203BDB8
add r0, r4, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r0, #0x0
add r5, #0x80
lsl r1, r1, #0x10
@@ -5526,11 +5526,11 @@ FUN_0203C520: ; 0x0203C520
ldr r0, [r4, #0xc]
bl FUN_0206BB1C
add r1, r6, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x74
add r2, sp, #0xc
add r7, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r0, r5, #0x0
bl ScriptReadHalfword
add r1, r0, #0x0
@@ -5542,7 +5542,7 @@ FUN_0203C520: ; 0x0203C520
add r0, r7, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
str r6, [sp, #0x0]
add r0, sp, #0xc
@@ -6063,7 +6063,7 @@ FUN_0203C990: ; 0x0203C990
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r6, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r6, r0, #0x0
add r0, r5, #0x0
add r0, #0x80
@@ -8823,7 +8823,7 @@ FUN_0203DFA8: ; 0x0203DFA8
ldr r0, [r5, #0x0]
bl FUN_020394F0
add r5, r0, #0x0
- bl rand_LC
+ bl LCRandom
add r1, r5, #0x0
bl _s32_div_f
strh r1, [r4, #0x0]
@@ -8848,7 +8848,7 @@ FUN_0203DFE0: ; 0x0203DFE0
ldr r0, [r5, #0x0]
bl FUN_020394F0
add r5, r0, #0x0
- bl rand_LC
+ bl LCRandom
add r1, r5, #0x0
bl _s32_div_f
strh r1, [r4, #0x0]
@@ -9776,7 +9776,7 @@ FUN_0203E774: ; 0x0203E774
add r0, r7, #0x0
bl FUN_020244A4
add r4, r0, #0x0
- bl rand_LC
+ bl LCRandom
add r1, r4, #0x0
bl _s32_div_f
lsl r0, r1, #0x10
@@ -10081,36 +10081,36 @@ FUN_0203E9CC: ; 0x0203E9CC
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r5, r0, #0x0
mov r1, #0xd
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0xe
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0x0
add r0, r5, #0x0
mov r1, #0xf
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0x0
add r0, r5, #0x0
mov r1, #0x10
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x4]
add r0, r5, #0x0
mov r1, #0x11
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x8]
add r0, r5, #0x0
mov r1, #0x12
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r4, r6
add r2, r7, r1
ldr r1, [sp, #0x4]
@@ -10193,10 +10193,10 @@ FUN_0203EAB0: ; 0x0203EAB0
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r7, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r5, r0, #0x10
add r0, r5, #0x0
@@ -10679,7 +10679,7 @@ FUN_0203EE98: ; 0x0203EE98
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r6, #0x0
- bl FUN_0206BAE4
+ bl PartyHasMon
strh r0, [r4, #0x0]
mov r0, #0x1
pop {r4-r6, pc}
@@ -10703,7 +10703,7 @@ FUN_0203EED8: ; 0x0203EED8
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
str r0, [sp, #0x0]
- bl FUN_0206B9AC
+ bl GetPartyCount
add r4, #0x80
add r6, r0, #0x0
ldr r0, [r4, #0x0]
@@ -10716,20 +10716,20 @@ FUN_0203EED8: ; 0x0203EED8
_0203EF18:
ldr r0, [sp, #0x0]
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x5
mov r2, #0x0
add r4, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _0203EF54 ; =0x00000182
cmp r0, r1
bne _0203EF48
add r0, r4, #0x0
mov r1, #0x70
add r2, sp, #0x4
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r4, #0x0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
add r0, r7, #0x0
add r1, r4, #0x0
bl FUN_02024AF0
@@ -10761,7 +10761,7 @@ FUN_0203EF58: ; 0x0203EF58
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
str r0, [sp, #0xc]
- bl FUN_0206B9AC
+ bl GetPartyCount
add r2, sp, #0x18
mov r4, #0x0
ldr r3, _0203F008 ; =UNK_020F34FC
@@ -10782,16 +10782,16 @@ FUN_0203EF58: ; 0x0203EF58
_0203EFA2:
ldr r0, [sp, #0xc]
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r6, r0, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x10]
add r0, r6, #0x0
mov r1, #0x70
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r3, r0, #0x0
mov r0, #0x67
ldr r1, [sp, #0x10]
@@ -11070,7 +11070,7 @@ _0203F1E0:
mov r0, #0x0
pop {r4-r7, pc}
_0203F1F8:
- bl rand_LC
+ bl LCRandom
add r1, r6, #0x0
bl _s32_div_f
mov r4, #0x0
@@ -11496,7 +11496,7 @@ _0203F54C:
lsl r7, r7, #0x2
b _0203F582
_0203F556:
- bl rand_LC
+ bl LCRandom
mov r1, #0x64
bl _s32_div_f
cmp r1, #0x19
@@ -11504,7 +11504,7 @@ _0203F556:
ldr r7, _0203F5CC ; =0x0000010D
b _0203F582
_0203F568:
- bl rand_LC
+ bl LCRandom
mov r1, #0x6
bl _s32_div_f
lsl r0, r1, #0x10
@@ -11911,7 +11911,7 @@ FUN_0203F880: ; 0x0203F880
bls _0203F8A2
mov r4, #0x64
_0203F8A2:
- bl rand_LC
+ bl LCRandom
mov r1, #0x65
bl _s32_div_f
lsl r0, r1, #0x10
diff --git a/arm9/asm/scrcmd_12.s b/arm9/asm/scrcmd_12.s
index 43e29bb0..e7c29d09 100644
--- a/arm9/asm/scrcmd_12.s
+++ b/arm9/asm/scrcmd_12.s
@@ -284,7 +284,7 @@ FUN_02042F10: ; 0x02042F10
push {r3, lr}
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0x6
bge _02042F24
mov r0, #0x1
@@ -349,20 +349,20 @@ FUN_02042F6C: ; 0x02042F6C
mov r1, #0x97
add r2, r7, #0x0
add r5, #0xf0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r7, #0x0
str r0, [sp, #0x8]
add r0, r4, #0x0
add r2, r1, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x14]
add r0, r4, #0x0
mov r1, #0x7
add r2, r7, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0x0
bl OS_GetTick
- bl rand_ALT
+ bl PRandom
add r1, r0, #0x0
ldr r0, [sp, #0x14]
str r1, [sp, #0x34]
@@ -371,16 +371,16 @@ FUN_02042F6C: ; 0x02042F6C
cmp r0, #0x1
bne _02042FE6
add r0, r6, #0x0
- bl FUN_02068AAC
+ bl CalcShininessByOtIdAndPersonality
cmp r0, #0x0
beq _02042FE8
_02042FD0:
ldr r0, [sp, #0x34]
- bl rand_ALT
+ bl PRandom
add r1, r0, #0x0
add r0, r6, #0x0
str r1, [sp, #0x34]
- bl FUN_02068AAC
+ bl CalcShininessByOtIdAndPersonality
cmp r0, #0x0
bne _02042FD0
b _02042FE8
@@ -391,41 +391,41 @@ _02042FE8:
add r0, r4, #0x0
bl FUN_0206A23C
add r0, r4, #0x0
- bl GetMonGenderEncrypted
+ bl GetMonGender
str r0, [sp, #0x30]
add r0, r4, #0x0
mov r1, #0x6f
add r2, sp, #0x30
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r4, #0x0
mov r1, #0x4b
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x18]
add r0, r4, #0x0
mov r1, #0x4a
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x1c]
add r0, r4, #0x0
mov r1, #0x49
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x20]
add r0, r4, #0x0
mov r1, #0x48
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x24]
add r0, r4, #0x0
mov r1, #0x46
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0x0
add r0, r4, #0x0
mov r1, #0x47
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r6, r0
ldr r0, [sp, #0x24]
add r1, r0, r1
@@ -437,7 +437,7 @@ _02042FE8:
add r0, r0, r1
str r0, [sp, #0x30]
bne _020430DA
- bl rand_LC
+ bl LCRandom
add r6, r0, #0x0
mov r0, #0x1f
and r0, r6
@@ -445,7 +445,7 @@ _02042FE8:
add r0, r4, #0x0
mov r1, #0x46
add r2, sp, #0x34
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x3e
lsl r0, r0, #0x4
and r0, r6
@@ -454,7 +454,7 @@ _02042FE8:
add r0, r4, #0x0
mov r1, #0x47
add r2, sp, #0x34
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x1f
lsl r0, r0, #0xa
and r0, r6
@@ -463,8 +463,8 @@ _02042FE8:
add r0, r4, #0x0
mov r1, #0x48
add r2, sp, #0x34
- bl SetMonDataEncrypted
- bl rand_LC
+ bl SetMonData
+ bl LCRandom
add r6, r0, #0x0
mov r0, #0x1f
and r0, r6
@@ -472,7 +472,7 @@ _02042FE8:
add r0, r4, #0x0
mov r1, #0x49
add r2, sp, #0x34
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x3e
lsl r0, r0, #0x4
and r0, r6
@@ -481,7 +481,7 @@ _02042FE8:
add r0, r4, #0x0
mov r1, #0x4a
add r2, sp, #0x34
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x1f
lsl r0, r0, #0xa
and r0, r6
@@ -490,7 +490,7 @@ _02042FE8:
add r0, r4, #0x0
mov r1, #0x4b
add r2, sp, #0x34
- bl SetMonDataEncrypted
+ bl SetMonData
_020430DA:
ldr r0, [sp, #0x4]
ldr r0, [r0, #0xc]
@@ -499,7 +499,7 @@ _020430DA:
add r0, r4, #0x0
mov r1, #0x2e
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _020430FC
mov r0, #0x49
@@ -510,7 +510,7 @@ _020430FC:
add r0, r4, #0x0
mov r1, #0x2f
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02043114
mov r0, #0x4a
@@ -521,7 +521,7 @@ _02043114:
add r0, r4, #0x0
mov r1, #0x30
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _0204312C
mov r0, #0x4b
@@ -532,7 +532,7 @@ _0204312C:
add r0, r4, #0x0
mov r1, #0x31
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02043144
mov r0, #0x4c
@@ -543,7 +543,7 @@ _02043144:
add r0, r4, #0x0
mov r1, #0x32
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _0204315C
mov r0, #0x4d
@@ -554,7 +554,7 @@ _0204315C:
add r0, r4, #0x0
mov r1, #0x33
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02043174
mov r0, #0x4e
@@ -565,7 +565,7 @@ _02043174:
add r0, r4, #0x0
mov r1, #0x34
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _0204318C
mov r0, #0x4f
@@ -576,7 +576,7 @@ _0204318C:
add r0, r4, #0x0
mov r1, #0x67
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _020431A4
mov r0, #0x19
@@ -587,7 +587,7 @@ _020431A4:
add r0, r4, #0x0
mov r1, #0x68
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _020431BC
mov r0, #0x1a
@@ -598,7 +598,7 @@ _020431BC:
add r0, r4, #0x0
mov r1, #0x69
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _020431D4
mov r0, #0x1b
@@ -629,15 +629,15 @@ _020431D4:
add r0, r7, #0x0
mov r1, #0x90
add r2, r5, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r7, #0x0
mov r1, #0x7
add r2, sp, #0x2c
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r7, #0x0
mov r1, #0x9c
add r2, sp, #0x28
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
add r4, r7, #0x0
bl FUN_02021A20
@@ -653,7 +653,7 @@ _0204322C:
mov r2, #0x4
bl FUN_0208089C
add r0, r4, #0x0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
ldr r0, [sp, #0x4]
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
diff --git a/arm9/asm/scrcmd_17.s b/arm9/asm/scrcmd_17.s
index d964d62c..0e333870 100644
--- a/arm9/asm/scrcmd_17.s
+++ b/arm9/asm/scrcmd_17.s
@@ -66,7 +66,7 @@ FUN_02044198: ; 0x02044198
ldr r0, [r5, #0x0]
bl FUN_020394F0
add r5, r0, #0x0
- bl rand_LC
+ bl LCRandom
mov r1, #0x64
bl _s32_div_f
lsl r0, r1, #0x10
diff --git a/arm9/asm/scrcmd_18.s b/arm9/asm/scrcmd_18.s
index f52aaf69..bcd4dc70 100644
--- a/arm9/asm/scrcmd_18.s
+++ b/arm9/asm/scrcmd_18.s
@@ -91,17 +91,17 @@ FUN_0204434C: ; 0x0204434C
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
ldrh r1, [r6, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
add r5, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _020443A0
add r0, r5, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
b _020443A2
_020443A0:
mov r0, #0x0
@@ -138,10 +138,10 @@ FUN_020443A8: ; 0x020443A8
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
ldrh r1, [r6, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x7
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r5, r0, #0x10
add r0, r7, #0x0
@@ -187,7 +187,7 @@ FUN_02044414: ; 0x02044414
ldr r0, [r4, #0xc]
bl FUN_0206BB1C
add r6, r0, #0x0
- bl FUN_0206B9AC
+ bl GetPartyCount
lsl r0, r0, #0x18
lsr r0, r0, #0x18
cmp r0, #0x6
@@ -289,12 +289,12 @@ FUN_020444F4: ; 0x020444F4
ldr r0, [r7, #0xc]
bl FUN_0206BB1C
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r2, #0x0
mov r1, #0x4c
add r4, r0, #0x0
strh r2, [r6, #0x0]
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02044556
mov r0, #0x0
@@ -303,25 +303,25 @@ _02044556:
add r0, r4, #0x0
mov r1, #0x36
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r5, r0
beq _0204458E
add r0, r4, #0x0
mov r1, #0x37
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r5, r0
beq _0204458E
add r0, r4, #0x0
mov r1, #0x38
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r5, r0
beq _0204458E
add r0, r4, #0x0
mov r1, #0x39
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r5, r0
bne _02044592
_0204458E:
@@ -358,7 +358,7 @@ FUN_02044598: ; 0x02044598
ldr r0, [sp, #0x4]
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
- bl FUN_0206B9AC
+ bl GetPartyCount
lsl r0, r0, #0x18
lsr r7, r0, #0x18
ldr r1, _02044650 ; =0x00000006
@@ -371,35 +371,35 @@ _020445E4:
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r6, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
add r4, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _0204463E
add r0, r4, #0x0
mov r1, #0x36
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r5, r0
beq _02044638
add r0, r4, #0x0
mov r1, #0x37
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r5, r0
beq _02044638
add r0, r4, #0x0
mov r1, #0x38
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r5, r0
beq _02044638
add r0, r4, #0x0
mov r1, #0x39
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r5, r0
bne _0204463E
_02044638:
@@ -444,7 +444,7 @@ FUN_02044658: ; 0x02044658
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r6, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
bl FUN_0204A32C
strh r0, [r4, #0x0]
mov r0, #0x0
@@ -474,7 +474,7 @@ FUN_0204469C: ; 0x0204469C
str r0, [sp, #0x0]
ldr r0, [r7, #0xc]
bl FUN_0206BB1C
- bl FUN_0206B9AC
+ bl GetPartyCount
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x8]
@@ -489,17 +489,17 @@ _020446EA:
ldr r0, [r7, #0xc]
bl FUN_0206BB1C
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
add r6, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _0204471A
add r0, r6, #0x0
mov r1, #0xa0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0x0]
cmp r0, r1
bhi _0204471A
@@ -544,18 +544,18 @@ FUN_02044730: ; 0x02044730
ldr r0, [r6, #0xc]
bl FUN_0206BB1C
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r2, #0x0
mov r1, #0x4c
add r5, r0, #0x0
strh r2, [r4, #0x0]
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _02044786
add r0, r5, #0x0
mov r1, #0xa0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x0]
_02044786:
mov r0, #0x0
@@ -585,7 +585,7 @@ FUN_0204478C: ; 0x0204478C
add r6, r0, #0x0
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
- bl FUN_0206B9AC
+ bl GetPartyCount
lsl r0, r0, #0x18
lsr r0, r0, #0x18
cmp r6, r0
@@ -597,11 +597,11 @@ _020447D2:
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
add r1, r6, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
add r5, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _020447F2
mov r0, #0x0
@@ -609,7 +609,7 @@ _020447D2:
pop {r4-r6, pc}
_020447F2:
add r0, r5, #0x0
- bl GetMonNatureEncrypted
+ bl GetMonNature
strh r0, [r4, #0x0]
mov r0, #0x0
pop {r4-r6, pc}
@@ -639,7 +639,7 @@ FUN_02044800: ; 0x02044800
str r0, [sp, #0x0]
ldr r0, [r7, #0xc]
bl FUN_0206BB1C
- bl FUN_0206B9AC
+ bl GetPartyCount
lsl r0, r0, #0x18
lsr r6, r0, #0x18
ldr r1, _02044884 ; =0x000000FF
@@ -651,15 +651,15 @@ _02044848:
ldr r0, [r7, #0xc]
bl FUN_0206BB1C
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
add r4, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _02044874
add r0, r4, #0x0
- bl GetMonNatureEncrypted
+ bl GetMonNature
ldr r1, [sp, #0x0]
cmp r1, r0
bne _02044874
@@ -704,10 +704,10 @@ FUN_0204488C: ; 0x0204488C
ldr r0, [r4, #0xc]
bl FUN_0206BB1C
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x9
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r6, #0x0]
mov r0, #0x0
pop {r4-r6, pc}
@@ -744,11 +744,11 @@ FUN_020448D4: ; 0x020448D4
ldr r0, [r6, #0xc]
bl FUN_0206BB1C
ldr r1, [sp, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x9
mov r2, #0x0
add r5, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x4
strh r0, [r1, #0x0]
cmp r4, #0x0
@@ -756,7 +756,7 @@ FUN_020448D4: ; 0x020448D4
add r0, r5, #0x0
mov r1, #0x6
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
mov r1, #0x1
@@ -774,7 +774,7 @@ _0204495A:
add r0, r5, #0x0
mov r1, #0x9a
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0xb
bne _0204496E
add r0, r4, #0x1
@@ -784,7 +784,7 @@ _0204496E:
add r0, r5, #0x0
mov r1, #0x97
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r7, r0
bne _02044982
add r0, r4, #0x1
@@ -804,7 +804,7 @@ _02044994:
add r0, r5, #0x0
mov r1, #0x9
add r2, sp, #0x4
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x0
add sp, #0x8
pop {r3-r7, pc}
@@ -834,11 +834,11 @@ FUN_020449A4: ; 0x020449A4
ldr r0, [r6, #0xc]
bl FUN_0206BB1C
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x9
mov r2, #0x0
add r5, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x0
strh r0, [r1, #0x0]
ldrh r0, [r1, #0x0]
@@ -853,7 +853,7 @@ _020449FA:
add r0, r5, #0x0
mov r1, #0x9
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x0
add sp, #0x4
pop {r3-r6, pc}
@@ -890,11 +890,11 @@ FUN_02044A0C: ; 0x02044A0C
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r7, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r4, #0x13
add r1, r4, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r6, #0x0]
mov r0, #0x0
pop {r3-r7, pc}
@@ -952,16 +952,16 @@ FUN_02044A94: ; 0x02044A94
ldr r0, [r4, #0xc]
bl FUN_0206BB1C
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r4, r0, #0x0
mov r1, #0xb0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r6, #0x0]
add r0, r4, #0x0
mov r1, #0xb1
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r7, #0x0]
mov r0, #0x0
pop {r3-r7, pc}
@@ -982,7 +982,7 @@ FUN_02044B00: ; 0x02044B00
add r5, r0, #0x0
ldr r0, [r4, #0xc]
bl FUN_0206BB1C
- bl FUN_0206B9AC
+ bl GetPartyCount
strh r0, [r5, #0x0]
mov r0, #0x0
pop {r3-r5, pc}
@@ -1003,7 +1003,7 @@ FUN_02044B2C: ; 0x02044B2C
str r0, [sp, #0x0]
ldr r0, [r6, #0xc]
bl FUN_0206BB1C
- bl FUN_0206B9AC
+ bl GetPartyCount
mov r5, #0x0
add r7, r0, #0x0
add r4, r5, #0x0
@@ -1013,10 +1013,10 @@ _02044B5A:
ldr r0, [r6, #0xc]
bl FUN_0206BB1C
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _02044B74
add r4, r4, #0x1
@@ -1055,7 +1055,7 @@ FUN_02044B84: ; 0x02044B84
str r0, [sp, #0x0]
ldr r0, [r7, #0xc]
bl FUN_0206BB1C
- bl FUN_0206B9AC
+ bl GetPartyCount
mov r5, #0x0
add r4, r5, #0x0
str r0, [sp, #0x8]
@@ -1068,17 +1068,17 @@ _02044BC8:
ldr r0, [r7, #0xc]
bl FUN_0206BB1C
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
add r6, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _02044BF8
add r0, r6, #0x0
mov r1, #0xa2
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02044BF8
add r4, r4, #0x1
@@ -1114,7 +1114,7 @@ FUN_02044C0C: ; 0x02044C0C
str r0, [sp, #0x4]
ldr r0, [r7, #0xc]
bl FUN_0206BB1C
- bl FUN_0206B9AC
+ bl GetPartyCount
mov r5, #0x0
add r4, r5, #0x0
str r0, [sp, #0x8]
@@ -1124,17 +1124,17 @@ _02044C44:
ldr r0, [r7, #0xc]
bl FUN_0206BB1C
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
add r6, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _02044C6E
add r0, r6, #0x0
mov r1, #0xa2
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02044C6E
add r4, r4, #0x1
@@ -1168,7 +1168,7 @@ FUN_02044C88: ; 0x02044C88
str r0, [sp, #0x0]
ldr r0, [r6, #0xc]
bl FUN_0206BB1C
- bl FUN_0206B9AC
+ bl GetPartyCount
mov r5, #0x0
add r7, r0, #0x0
add r4, r5, #0x0
@@ -1178,10 +1178,10 @@ _02044CB6:
ldr r0, [r6, #0xc]
bl FUN_0206BB1C
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02044CD0
add r4, r4, #0x1
@@ -1211,7 +1211,7 @@ FUN_02044CE0: ; 0x02044CE0
str r0, [sp, #0x0]
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
- bl FUN_0206B9AC
+ bl GetPartyCount
lsl r0, r0, #0x10
lsr r6, r0, #0x10
ldr r4, _02044D40 ; =0x00000000
@@ -1223,10 +1223,10 @@ _02044D12:
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r7, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02044D32
ldr r0, [sp, #0x0]
@@ -1269,10 +1269,10 @@ FUN_02044D44: ; 0x02044D44
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r6, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x6f
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x0]
mov r0, #0x0
pop {r4-r6, pc}
@@ -1301,11 +1301,11 @@ FUN_02044D8C: ; 0x02044D8C
ldr r0, [r6, #0xc]
bl FUN_0206BB1C
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
add r6, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02044DDA
mov r0, #0x0
@@ -1316,7 +1316,7 @@ _02044DDA:
add r0, r6, #0x0
mov r1, #0x36
add r2, r4, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02044DF0
add r0, r4, #0x1
@@ -1326,7 +1326,7 @@ _02044DF0:
add r0, r6, #0x0
mov r1, #0x37
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02044E04
add r0, r4, #0x1
@@ -1336,7 +1336,7 @@ _02044E04:
add r0, r6, #0x0
mov r1, #0x38
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02044E18
add r0, r4, #0x1
@@ -1346,7 +1346,7 @@ _02044E18:
add r0, r6, #0x0
mov r1, #0x39
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02044E2C
add r0, r4, #0x1
@@ -1382,7 +1382,7 @@ FUN_02044E34: ; 0x02044E34
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
add r1, r6, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r4, #0x0
bl FUN_020699A4
mov r0, #0x0
@@ -1420,11 +1420,11 @@ FUN_02044E78: ; 0x02044E78
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
add r1, r7, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r4, #0x36
add r1, r4, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r6, #0x0]
mov r0, #0x0
pop {r3-r7, pc}
@@ -1454,10 +1454,10 @@ FUN_02044ED8: ; 0x02044ED8
ldr r0, [r4, #0xc]
bl FUN_0206BB1C
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x6
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r6, #0x0]
mov r0, #0x0
pop {r4-r6, pc}
@@ -1478,13 +1478,13 @@ FUN_02044F20: ; 0x02044F20
ldr r0, [r4, #0xc]
bl FUN_0206BB1C
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r2, #0x0
add r1, sp, #0x0
strh r2, [r1, #0x0]
mov r1, #0x6
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x0
pop {r3-r5, pc}
@@ -1512,7 +1512,7 @@ FUN_02044F58: ; 0x02044F58
str r0, [sp, #0x0]
ldr r0, [r7, #0xc]
bl FUN_0206BB1C
- bl FUN_0206B9AC
+ bl GetPartyCount
lsl r0, r0, #0x18
lsr r6, r0, #0x18
ldr r5, _02044FE4 ; =0x00000000
@@ -1523,17 +1523,17 @@ _02044F9E:
ldr r0, [r7, #0xc]
bl FUN_0206BB1C
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
add r4, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _02044FD4
add r0, r4, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r1, r0, #0x10
ldr r0, [sp, #0x0]
@@ -1580,7 +1580,7 @@ FUN_02044FE8: ; 0x02044FE8
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r4, #0x0
add r6, r0, #0x0
add r5, r4, #0x0
@@ -1593,7 +1593,7 @@ _0204502A:
add r1, r0, #0x0
add r0, r6, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02045048
add r0, r5, #0x1
@@ -1628,7 +1628,7 @@ FUN_0204505C: ; 0x0204505C
ldr r0, [r0, #0x0]
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
- bl FUN_0206B9AC
+ bl GetPartyCount
lsl r0, r0, #0x10
add r4, #0x80
lsr r6, r0, #0x10
@@ -1649,11 +1649,11 @@ _0204509A:
_020450A6:
ldr r0, [sp, #0xc]
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
add r4, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _020450E8
add r0, r7, #0x0
@@ -1662,7 +1662,7 @@ _020450A6:
add r1, r0, #0x0
add r0, r4, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _020450DE
ldr r0, [sp, #0x4]
@@ -1725,7 +1725,7 @@ FUN_02045104: ; 0x02045104
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r7, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r5, r0, #0x0
lsl r0, r6, #0x18
lsr r0, r0, #0x18
@@ -1734,7 +1734,7 @@ FUN_02045104: ; 0x02045104
add r1, r0, #0x0
add r0, r5, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x0]
mov r0, #0x0
pop {r3-r7, pc}
@@ -1768,7 +1768,7 @@ FUN_02045170: ; 0x02045170
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r6, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r5, r0, #0x0
lsl r0, r4, #0x18
lsr r0, r0, #0x18
@@ -1777,7 +1777,7 @@ FUN_02045170: ; 0x02045170
add r1, r0, #0x0
add r0, r5, #0x0
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x0
add sp, #0x4
pop {r3-r6, pc}
@@ -1800,7 +1800,7 @@ FUN_020451D0: ; 0x020451D0
ldr r0, [r0, #0x0]
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
- bl FUN_0206B9AC
+ bl GetPartyCount
lsl r0, r0, #0x10
add r4, #0x80
lsr r6, r0, #0x10
@@ -1817,17 +1817,17 @@ _0204520C:
_02045212:
add r0, r7, #0x0
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
add r4, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02045242
add r0, r4, #0x0
mov r1, #0x3
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02045242
ldr r0, [sp, #0x0]
diff --git a/arm9/asm/scrcmd_24.s b/arm9/asm/scrcmd_24.s
index ed57d780..85f03ebe 100644
--- a/arm9/asm/scrcmd_24.s
+++ b/arm9/asm/scrcmd_24.s
@@ -102,7 +102,7 @@ FUN_02045E20: ; 0x02045E20
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r6, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x20
bl FUN_02088DF8
add r5, r0, #0x0
@@ -185,7 +185,7 @@ FUN_02045EE4: ; 0x02045EE4
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r4, r0, #0x0
mov r1, #0x20
bl FUN_02088DF8
@@ -222,7 +222,7 @@ FUN_02045F24: ; 0x02045F24
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r6, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r6, r0, #0x0
mov r0, #0x20
mov r1, #0x4
diff --git a/arm9/asm/scrcmd_3.s b/arm9/asm/scrcmd_3.s
index 54c1e00c..959b85d1 100644
--- a/arm9/asm/scrcmd_3.s
+++ b/arm9/asm/scrcmd_3.s
@@ -119,7 +119,7 @@ FUN_0203FF10: ; 0x0203FF10
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
add r1, r6, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [sp, #0x10]
add r0, r4, #0x0
mov r1, #0x4
diff --git a/arm9/asm/scrcmd_4.s b/arm9/asm/scrcmd_4.s
index 7310f545..f8ec8636 100644
--- a/arm9/asm/scrcmd_4.s
+++ b/arm9/asm/scrcmd_4.s
@@ -92,7 +92,7 @@ FUN_02040748: ; 0x02040748
ldr r0, [r6, #0xc]
bl FUN_0206BB1C
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r2, r0, #0x0
ldr r0, [r7, #0x0]
add r1, r4, #0x0
@@ -315,7 +315,7 @@ FUN_0204091C: ; 0x0204091C
ldr r0, [r6, #0xc]
bl FUN_0206BB1C
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r2, r0, #0x0
ldr r0, [r7, #0x0]
add r1, r4, #0x0
@@ -790,7 +790,7 @@ FUN_02040D04: ; 0x02040D04
lsl r0, r5, #0x10
lsr r0, r0, #0x10
mov r1, #0x20
- bl FUN_020852E8
+ bl GetNutName
add r5, r0, #0x0
cmp r4, #0x2
bhs _02040D5A
@@ -943,11 +943,11 @@ FUN_02040E4C: ; 0x02040E4C
ldr r0, [r6, #0xc]
bl FUN_0206BB1C
ldr r1, [sp, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r4, #0x36
add r1, r4, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r2, r0, #0x10
ldr r0, [r7, #0x0]
diff --git a/arm9/asm/scrcmd_5.s b/arm9/asm/scrcmd_5.s
index bb367973..bb5b7be6 100644
--- a/arm9/asm/scrcmd_5.s
+++ b/arm9/asm/scrcmd_5.s
@@ -75,7 +75,7 @@ FUN_020411C4: ; 0x020411C4
str r0, [sp, #0x0]
ldr r0, [r7, #0xc]
bl FUN_0206BB1C
- bl FUN_0206B9AC
+ bl GetPartyCount
lsl r0, r0, #0x10
lsr r6, r0, #0x10
ldr r0, _0204133C ; =0x00000000
@@ -87,17 +87,17 @@ _0204123C:
ldr r0, [r7, #0xc]
bl FUN_0206BB1C
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
add r4, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _0204127C
add r0, r4, #0x0
mov r1, #0x7
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r1, r0, #0x10
lsl r1, r1, #0x10
@@ -132,19 +132,19 @@ _02041290:
mov r1, #0x5
mov r2, #0x0
add r4, r0, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0x0
beq _020412E0
add r0, r4, #0x0
mov r1, #0x4c
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0x0
bne _020412E0
add r0, r4, #0x0
mov r1, #0x7
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x10
lsr r1, r0, #0x10
lsl r1, r1, #0x10
diff --git a/arm9/asm/scrcmd_8.s b/arm9/asm/scrcmd_8.s
index bae8f7ad..50e533d7 100644
--- a/arm9/asm/scrcmd_8.s
+++ b/arm9/asm/scrcmd_8.s
@@ -213,7 +213,7 @@ _02041DCE:
mov r1, #0x0
mov r2, #0x2
bl FUN_02028810
- bl rand_MT
+ bl MTRandom
add r2, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
diff --git a/arm9/asm/scrcmd_9.s b/arm9/asm/scrcmd_9.s
index f75ac5ce..8ea6313d 100644
--- a/arm9/asm/scrcmd_9.s
+++ b/arm9/asm/scrcmd_9.s
@@ -253,7 +253,7 @@ FUN_02042000: ; 0x02042000
bl FUN_020394F0
add r1, r0, #0x0
add r0, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r5, #0x80
add r1, r0, #0x0
ldr r0, [r5, #0x0]
@@ -417,7 +417,7 @@ _02042170:
bl FUN_020394F0
add r1, r0, #0x0
add r0, r6, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0x0
add r0, r4, #0x0
mov r2, #0x4
diff --git a/arm9/asm/secure.s b/arm9/asm/secure.s
index 9c693a9e..f485088c 100644
--- a/arm9/asm/secure.s
+++ b/arm9/asm/secure.s
@@ -3,14 +3,39 @@
.section .text
-.incbin "baserom.nds", 0x4000, 0xC8
+ .byte 0xFF, 0xDE, 0xFF, 0xE7, 0xFF, 0xDE, 0xFF, 0xE7, 0xFF, 0xDE, 0xFF, 0xE7, 0xFF, 0xDE, 0x42, 0x6E
+ .byte 0xF9, 0xCC, 0x54, 0x4B, 0x74, 0x53, 0x91, 0x91, 0xBC, 0x95, 0xD2, 0x12, 0xE1, 0xD0, 0xF0, 0x41
+ .byte 0xE5, 0xB6, 0x47, 0xA4, 0x23, 0x18, 0x61, 0xE9, 0xC4, 0x0A, 0xA2, 0xAD, 0xF8, 0x77, 0xB5, 0x6E
+ .byte 0x4C, 0x8D, 0x57, 0x83, 0x2F, 0x99, 0x16, 0x1A, 0x51, 0x4A, 0x6A, 0x1F, 0x07, 0x78, 0x92, 0xD3
+ .byte 0xDF, 0x3D, 0x25, 0x0E, 0xF5, 0xA5, 0x93, 0x29, 0x1D, 0xC4, 0xA5, 0x97, 0x54, 0xA0, 0xA8, 0xB2
+ .byte 0x1B, 0x9B, 0x58, 0x3C, 0xA5, 0xA4, 0x9D, 0x8B, 0x9F, 0x13, 0xAB, 0xF8, 0x09, 0x0D, 0x63, 0xE9
+ .byte 0xAC, 0xF0, 0x80, 0x2D, 0xA7, 0x87, 0x5F, 0x1C, 0xDC, 0x1B, 0x0C, 0x6D, 0xED, 0xB5, 0x46, 0x60
+ .byte 0x04, 0x1C, 0x11, 0xDF, 0x70, 0x47, 0xEC, 0xA5, 0x91, 0x81, 0x4D, 0xFF, 0x9E, 0x6D, 0x24, 0x87
+ .byte 0x2E, 0x74, 0xAB, 0x34, 0x55, 0x7A, 0x0C, 0xA4, 0xC7, 0x66, 0xB7, 0x5A, 0xA7, 0x14, 0x64, 0xDE
+ .byte 0xFD, 0xC7, 0x24, 0xF7, 0xD9, 0xE0, 0x2D, 0x67, 0x16, 0x72, 0xD3, 0x68, 0x8A, 0xA0, 0xE1, 0xD2
+ .byte 0x09, 0x2A, 0x35, 0xD5, 0x40, 0x75, 0x41, 0xFC, 0xA3, 0xCA, 0xEB, 0x03, 0xDA, 0x58, 0x31, 0x72
+ .byte 0x00, 0xFF, 0x46, 0xC7, 0xBA, 0xDF, 0xEE, 0x29, 0xC5, 0xE1, 0xDB, 0x7D, 0x1C, 0x37, 0x87, 0x63
+ .byte 0x9A, 0x5A, 0x23, 0xCA, 0x8C, 0x38, 0x5E, 0x98
non_word_aligned_thumb_func_start SVC_GetCRC16
SVC_GetCRC16: ; 0x020000C8
swi 14
bx lr
thumb_func_end SVC_GetCRC16
-.incbin "baserom.nds", 0x40CC, 0xD2
+ .byte 0x27, 0x2C, 0x80, 0x42, 0xAA, 0x04, 0x05, 0x4F, 0x89, 0xDD, 0x4D, 0x3A, 0xAB, 0xF0, 0xC9, 0x2F
+ .byte 0xA0, 0xAF, 0x40, 0x64, 0x08, 0xF4, 0xD8, 0x2A, 0x5D, 0xB2, 0x38, 0xD2, 0xBB, 0x11, 0xE9, 0xDA
+ .byte 0x6F, 0x72, 0x75, 0x37, 0x66, 0x7C, 0x31, 0xB1, 0xAF, 0x8E, 0xD1, 0x97, 0xC6, 0x7F, 0x7C, 0x4A
+ .byte 0xEA, 0xE7, 0xF6, 0x4D, 0x6D, 0x83, 0x7F, 0xAA, 0xA3, 0x0C, 0x78, 0xF6, 0x1B, 0xF7, 0x13, 0xDD
+ .byte 0x71, 0x23, 0x45, 0x1B, 0xFB, 0x8D, 0x6E, 0x65, 0x13, 0xB3, 0x08, 0x71, 0x2C, 0xD8, 0xEE, 0x3C
+ .byte 0x99, 0xB7, 0xC1, 0xA7, 0x2E, 0xDA, 0xA9, 0x58, 0x55, 0x26, 0xAB, 0xC8, 0xBE, 0x0B, 0xD9, 0xCC
+ .byte 0x0F, 0x9B, 0xE5, 0x3C, 0x83, 0x54, 0x80, 0xF8, 0xCF, 0x0A, 0x15, 0xDF, 0x70, 0x47, 0x26, 0xB5
+ .byte 0x77, 0xA0, 0x8A, 0x8B, 0xC1, 0x8F, 0xD7, 0x8A, 0xA5, 0xBC, 0xB5, 0x48, 0xD9, 0xC9, 0x29, 0x97
+ .byte 0x33, 0xAC, 0x12, 0x04, 0x81, 0x8F, 0x99, 0x51, 0x78, 0x77, 0xB3, 0xED, 0xF0, 0x2F, 0x34, 0xE4
+ .byte 0x30, 0x45, 0x97, 0x29, 0xF7, 0xCC, 0x1B, 0xCF, 0x15, 0x64, 0x9E, 0x7C, 0x94, 0xF0, 0x4A, 0x98
+ .byte 0x5D, 0x28, 0x94, 0x12, 0x62, 0x2D, 0xE6, 0x82, 0x0D, 0xB4, 0x98, 0xC6, 0x16, 0xD8, 0xB8, 0x94
+ .byte 0xFE, 0x65, 0xED, 0x31, 0xE5, 0x88, 0xA5, 0xF0, 0xF6, 0xD6, 0x8F, 0xE6, 0x42, 0x7F, 0xF1, 0xBC
+ .byte 0xA2, 0xD5, 0x0E, 0x50, 0xFC, 0x83, 0x70, 0x45, 0x55, 0xAF, 0xF5, 0x89, 0xE2, 0x69, 0x71, 0xBA
+ .byte 0xFA, 0x75
non_word_aligned_thumb_func_start SVC_Sqrt
SVC_Sqrt: ; 0x0200019E
@@ -18,18 +43,117 @@ SVC_Sqrt: ; 0x0200019E
bx lr
thumb_func_end SVC_Sqrt
-.incbin "baserom.nds", 0x41A2, 0x15C
+ .byte 0x1C, 0x85, 0x9C, 0xB6, 0x15, 0xC1, 0x40, 0x1B, 0x79, 0x01, 0x96, 0xC4, 0x80, 0x99, 0xF1, 0x28
+ .byte 0x6E, 0x3E, 0xE1, 0x0D, 0x73, 0xD8, 0x07, 0xCB, 0x75, 0x1C, 0x44, 0x41, 0xC4, 0x60, 0xE5, 0xB0
+ .byte 0xBA, 0x74, 0xF1, 0x11, 0xA4, 0x7E, 0xE7, 0x00, 0x6A, 0xBB, 0xB6, 0x78, 0x45, 0xDF, 0x93, 0xF2
+ .byte 0xF3, 0x8B, 0xA1, 0xE4, 0xA4, 0x9B, 0x2B, 0x56, 0xBF, 0xE1, 0x07, 0xE9, 0xEF, 0x0F, 0x7A, 0xA0
+ .byte 0x0F, 0x49, 0x9D, 0xC9, 0x14, 0x90, 0x63, 0x4D, 0xCD, 0x84, 0x9D, 0xB3, 0x48, 0xB5, 0x92, 0x08
+ .byte 0x27, 0x5C, 0x2C, 0xC1, 0xD3, 0x49, 0x09, 0x0C, 0xD6, 0xBA, 0xFE, 0xC4, 0xAA, 0xA1, 0x36, 0x88
+ .byte 0x3E, 0x64, 0x23, 0x34, 0xA5, 0x58, 0xFF, 0x60, 0x27, 0x72, 0x09, 0xDF, 0x08, 0x1C, 0x70, 0x47
+ .byte 0x63, 0xC7, 0xA0, 0x60, 0x53, 0xFC, 0x9A, 0x98, 0x48, 0x47, 0x42, 0x83, 0xC1, 0xE8, 0x4D, 0xBC
+ .byte 0xE6, 0xF4, 0x2F, 0xD7, 0x6D, 0x6C, 0xCF, 0x44, 0x0A, 0x68, 0xDC, 0xAC, 0xB8, 0x27, 0x24, 0x44
+ .byte 0x59, 0x7F, 0x2D, 0xE3, 0x79, 0x0C, 0x6B, 0x9F, 0x4A, 0xF9, 0x5B, 0x1D, 0x57, 0x2A, 0xD5, 0xC2
+ .byte 0x76, 0x15, 0xF8, 0x04, 0x7B, 0xF1, 0xD3, 0x2B, 0x15, 0xA1, 0x26, 0x29, 0xA2, 0x81, 0xE8, 0x63
+ .byte 0xC9, 0xBF, 0x1C, 0x88, 0x2A, 0x1A, 0x61, 0x97, 0x12, 0x08, 0xE0, 0x4A, 0x2B, 0x25, 0x72, 0x8C
+ .byte 0xB8, 0x57, 0xAF, 0xE7, 0x48, 0x62, 0x30, 0x9A, 0x8B, 0x13, 0x4A, 0x79, 0xED, 0x95, 0xED, 0xED
+ .byte 0x65, 0x56, 0x02, 0x2B, 0xCA, 0x6A, 0x0F, 0x26, 0xC8, 0xC4, 0x94, 0xEB, 0x5A, 0xF2, 0xD2, 0xBE
+ .byte 0x49, 0x0A, 0x77, 0xAE, 0x17, 0x08, 0x02, 0xD0, 0x35, 0x26, 0x12, 0xDF, 0x70, 0x47, 0xE7, 0xAA
+ .byte 0x20, 0x31, 0x36, 0x88, 0x88, 0x14, 0xA3, 0x8F, 0x38, 0x7F, 0xA7, 0x30, 0x3F, 0x62, 0xB1, 0xD9
+ .byte 0x76, 0x59, 0x7B, 0x55, 0xFB, 0x73, 0x2D, 0x64, 0xB0, 0xD1, 0x01, 0x96, 0xDA, 0x04, 0x35, 0x81
+ .byte 0xF9, 0x35, 0x9D, 0xAE, 0x24, 0x60, 0xFF, 0x5D, 0xE4, 0xD2, 0xC5, 0x8B, 0x2B, 0xD0, 0xC2, 0x24
+ .byte 0x78, 0x3D, 0xF5, 0x38, 0x2A, 0x78, 0x44, 0xA2, 0x7C, 0xF0, 0x5F, 0x49, 0x9D, 0x40, 0x18, 0xD9
+ .byte 0xF2, 0x82, 0xB5, 0xC0, 0xC5, 0x59, 0x8A, 0x5E, 0xB5, 0xCF, 0xDC, 0x03, 0xAA, 0xC3, 0x4A, 0x96
+ .byte 0x12, 0x75, 0xD5, 0xC2, 0xE9, 0x3E, 0xA9, 0x6E, 0xFB, 0x38, 0xAC, 0xB8, 0x5B, 0x94, 0x81, 0xD5
+ .byte 0x2F, 0x37, 0xC2, 0xD7, 0xC4, 0xEF, 0x6E, 0x8C, 0x1F, 0xFB, 0x36, 0x1D
non_word_aligned_thumb_func_start SVC_CpuSet
SVC_CpuSet: ; 0x020002FE
swi 11
bx lr
-.incbin "baserom.nds", 0x4302, 0x2F0
+ .byte 0x9A, 0xCF, 0x03, 0x50, 0xA1, 0xE4, 0x98, 0xEA, 0x2E, 0x86, 0xBC, 0xBE, 0x31, 0x3D, 0xE8, 0xA4
+ .byte 0x52, 0x6D, 0x18, 0x28, 0x8F, 0x2C, 0xED, 0x3F, 0xA2, 0xD5, 0x2A, 0xEC, 0x62, 0x15, 0x54, 0xDA
+ .byte 0x09, 0x05, 0x4D, 0x31, 0x97, 0x87, 0xC8, 0xA9, 0x5D, 0x16, 0x72, 0xAB, 0x72, 0xD1, 0x40, 0xFF
+ .byte 0x68, 0x58, 0x6C, 0xB0, 0x2F, 0xED, 0x61, 0xA5, 0xF6, 0x2E, 0x9A, 0xE2, 0x68, 0x53, 0xEB, 0xAA
+ .byte 0x22, 0x7F, 0x5C, 0xA1, 0xFA, 0x16, 0x49, 0x80, 0x6E, 0xDA, 0xFA, 0xAC, 0x1C, 0xE3, 0xC1, 0xC4
+ .byte 0x5A, 0xCC, 0x0C, 0xDF, 0x70, 0x47, 0xF2, 0x98, 0x8D, 0xBF, 0xE0, 0x13, 0xFA, 0x9B, 0x06, 0x02
+ .byte 0x9C, 0x8D, 0x25, 0xB2, 0xE3, 0xFD, 0xAE, 0xCF, 0x4E, 0x37, 0x89, 0x20, 0x26, 0xEB, 0xBA, 0xE3
+ .byte 0x3D, 0xF3, 0x15, 0x0E, 0x6D, 0x4F, 0xE9, 0xB8, 0x97, 0xB8, 0xD8, 0x88, 0xF8, 0xA8, 0xCA, 0x33
+ .byte 0x4D, 0x95, 0x06, 0x0F, 0xCB, 0xEE, 0x66, 0xFB, 0xA5, 0xF4, 0x74, 0xB4, 0xC0, 0x02, 0xC9, 0xAE
+ .byte 0x6B, 0x9D, 0x42, 0xF5, 0xD4, 0xF5, 0xBB, 0x4F, 0x36, 0x45, 0xCA, 0x61, 0x8E, 0x81, 0x70, 0x08
+ .byte 0x8F, 0x53, 0xF6, 0x42, 0x5C, 0x19, 0xB1, 0x88, 0xB6, 0x3C, 0x7F, 0x46, 0xC4, 0x35, 0x85, 0xFC
+ .byte 0x6F, 0xED, 0xA4, 0xDE, 0x8D, 0x22, 0x9F, 0x0D, 0xE5, 0xFE, 0x0C, 0x64, 0xC3, 0xD4, 0x7D, 0x6A
+ .byte 0xC8, 0xD9, 0xD9, 0x87, 0xB4, 0x76, 0xAB, 0x7B, 0x00, 0x22, 0x05, 0xDF, 0x70, 0x47, 0x01, 0x76
+ .byte 0xA5, 0x8A, 0x83, 0xAB, 0x61, 0xBE, 0x95, 0x9E, 0x89, 0xA4, 0xE8, 0xED, 0x31, 0x3C, 0x3E, 0xBF
+ .byte 0x13, 0x1F, 0x51, 0xDE, 0x0D, 0x0F, 0x91, 0xA0, 0xB8, 0xE3, 0xAA, 0x0E, 0xC6, 0x59, 0xC1, 0x0B
+ .byte 0x86, 0xDC, 0xE9, 0xCB, 0xFB, 0x42, 0x8A, 0xC8, 0x98, 0x33, 0x4E, 0xAE, 0xB9, 0x3D, 0xCF, 0x31
+ .byte 0x92, 0x69, 0xA4, 0x74, 0x46, 0x13, 0xCE, 0x6B, 0x6F, 0xE2, 0xDD, 0xE2, 0x4C, 0x3A, 0xF9, 0xCF
+ .byte 0xA9, 0x28, 0xE8, 0xFE, 0x66, 0xE0, 0x34, 0x8E, 0xE7, 0xEE, 0x1D, 0x01, 0xB0, 0xA6, 0x8D, 0x56
+ .byte 0xCE, 0xAD, 0x44, 0x4E, 0x56, 0x5F, 0x41, 0x0D, 0x7B, 0xD7, 0x87, 0xA2, 0xF5, 0xF9, 0x86, 0xE7
+ .byte 0x7F, 0x14, 0xCB, 0x01, 0x51, 0xDB, 0xB0, 0x35, 0x13, 0xDF, 0x70, 0x47, 0xE8, 0xD5, 0x44, 0x23
+ .byte 0x77, 0x99, 0x4C, 0xF1, 0x0F, 0x18, 0xBF, 0x84, 0x9F, 0xC3, 0xA0, 0x08, 0x8B, 0x9D, 0xD3, 0x34
+ .byte 0x8B, 0xF8, 0xC6, 0xF3, 0x6E, 0x1E, 0x9A, 0xA3, 0x2E, 0x43, 0xBF, 0x27, 0xE4, 0xED, 0xEF, 0x0D
+ .byte 0x2E, 0x71, 0xE4, 0x49, 0x74, 0x11, 0xBF, 0x47, 0x7E, 0x65, 0xE1, 0x17, 0x4C, 0x1B, 0x8B, 0xA3
+ .byte 0x8E, 0x7A, 0x7A, 0xB4, 0x35, 0x6C, 0x9E, 0x51, 0x68, 0x6A, 0x63, 0x2C, 0xF3, 0xCA, 0x58, 0xF3
+ .byte 0x06, 0x99, 0xF2, 0x47, 0x91, 0x78, 0xCD, 0xFE, 0x4E, 0xE4, 0x99, 0x65, 0x32, 0x52, 0x28, 0xFA
+ .byte 0xF3, 0xE4, 0xBF, 0xFA, 0x3F, 0x37, 0x36, 0x98, 0x3A, 0x18, 0xA9, 0x42, 0x92, 0x7F, 0xDC, 0x17
+ .byte 0x59, 0x2F, 0x3A, 0x06, 0x38, 0xDA, 0xE5, 0x27, 0x13, 0x41, 0xD1, 0xEC, 0x95, 0xC6, 0xEC, 0xD6
+ .byte 0x10, 0xDF, 0x70, 0x47, 0x7E, 0x9D, 0x05, 0xD3, 0xF5, 0x36, 0x3B, 0xE7, 0x7C, 0xAE, 0x81, 0xEF
+ .byte 0xC8, 0x4B, 0x92, 0xB5, 0x6C, 0x12, 0x4F, 0x3B, 0x26, 0x6A, 0x7E, 0x22, 0xBF, 0x08, 0xAB, 0x6D
+ .byte 0x5F, 0xFE, 0xB2, 0x12, 0xD8, 0xFA, 0x8E, 0x17, 0x2A, 0x7B, 0xB1, 0xA2, 0x98, 0x69, 0x19, 0xAC
+ .byte 0xEE, 0x7E, 0x86, 0xA5, 0xD2, 0x7A, 0x4C, 0x7C, 0x17, 0x4A, 0x52, 0x80, 0x45, 0xD3, 0x3A, 0xD5
+ .byte 0x3D, 0x6C, 0xD7, 0xE5, 0xBD, 0x9A, 0x4A, 0x58, 0x9B, 0x2A, 0xD9, 0xF9, 0x23, 0x02, 0x5E, 0x92
+ .byte 0x0A, 0x31, 0x23, 0x2B, 0x5C, 0x0F, 0xB4, 0x16, 0x5E, 0x34, 0xED, 0xF2, 0x4A, 0xB6, 0x3C, 0xB6
+ .byte 0xE5, 0x41, 0xD5, 0x24, 0x3A, 0xBA, 0xFB, 0xF1, 0x6D, 0x2B, 0x6E, 0x6A, 0x6A, 0x88, 0xD5, 0x3E
+ .byte 0x4F, 0x05, 0x0F, 0xDF, 0x70, 0x47, 0xEC, 0xB5, 0x44, 0xF9, 0x2C, 0xAF, 0x08, 0xE7, 0x9F, 0x4D
+ .byte 0xA9, 0x31, 0x6A, 0x8C, 0x11, 0xEE, 0x40, 0x23, 0xE5, 0x56, 0xB0, 0x11, 0xDA, 0x7B, 0x25, 0xB6
+ .byte 0x8D, 0x8B, 0x53, 0xD6, 0xFD, 0xD4, 0x27, 0xDB, 0xDD, 0xBD, 0x83, 0x38, 0xB4, 0x56, 0x60, 0xC5
+ .byte 0x9F, 0x11, 0xFC, 0xB3, 0xED, 0xE4, 0x32, 0x98, 0x61, 0x6E, 0x1B, 0x0E, 0x14, 0xEB, 0xC5, 0xA3
+ .byte 0x11, 0x17, 0x21, 0xBA, 0xDC, 0x0A, 0x3D, 0x4D, 0xED, 0x8D, 0xA6, 0x4C, 0x1B, 0xC2, 0xFB, 0xD0
+ .byte 0xCA, 0xA0, 0x0D, 0xDA, 0x68, 0x2D, 0x5A, 0x77, 0x20, 0xD9, 0xD0, 0x55, 0x5D, 0x3B, 0xC2, 0x1D
+ .byte 0x4C, 0x93, 0x56, 0x16, 0xCA, 0x36, 0x7E, 0xB0, 0x14, 0xDF, 0x70, 0x47, 0x78, 0x49, 0xE1, 0x21
+ .byte 0x68, 0x63, 0x9E, 0x8B, 0xE1, 0x36, 0x90, 0x4D, 0xB6, 0x5F, 0x50, 0x3D, 0xBD, 0x26, 0x97, 0xA3
+ .byte 0x2E, 0x17, 0xA4, 0x89, 0x04, 0xAF, 0x83, 0x71, 0x41, 0x4C, 0x5A, 0x36, 0x75, 0x26, 0x57, 0x13
+ .byte 0xA7, 0xBC, 0x4C, 0x17, 0xAD, 0x27, 0xBF, 0xF0, 0xFE, 0xB2, 0xFB, 0x7D, 0x7C, 0x2B, 0x6E, 0x9E
+ .byte 0xAB, 0x44, 0xC4, 0x96, 0xC4, 0x7F, 0xA8, 0xA9, 0x36, 0xCF, 0x5E, 0x26, 0x86, 0x9D, 0x3B, 0x9C
+ .byte 0xB1, 0x6D, 0xE0, 0xC6, 0x6B, 0x27, 0xBD, 0x38, 0xC8, 0x69, 0xA3, 0xFE, 0x50, 0x6D, 0xE1, 0x54
+ .byte 0x6E, 0xB2, 0x1C, 0x5D, 0x04, 0x50, 0x0B, 0x71, 0x97, 0x53, 0x7F, 0x6D, 0x1C, 0x80, 0xA9, 0xE2
non_word_aligned_thumb_func_start SVC_WaitByLoop
SVC_WaitByLoop:
swi 3
bx lr
-.incbin "baserom.nds", 0x45F6, 0x20A
+ .byte 0x6E, 0x47, 0x18, 0xE1, 0x7B, 0xB7, 0xC4, 0xAA, 0xEC, 0xC4, 0x6C, 0xFF, 0xED, 0x0B, 0x2B, 0x24
+ .byte 0xE1, 0xF7, 0xCD, 0xE0, 0x48, 0x7F, 0xE4, 0x61, 0x33, 0x72, 0x52, 0x72, 0x76, 0x05, 0x51, 0x72
+ .byte 0xF7, 0xCA, 0xFA, 0x86, 0x4A, 0x13, 0xA5, 0x9B, 0xC5, 0x13, 0xF2, 0xFE, 0xA7, 0x3F, 0x2A, 0x69
+ .byte 0x85, 0xFA, 0xE9, 0x15, 0x66, 0xEC, 0x67, 0xCE, 0x72, 0x11, 0xF5, 0xB2, 0xA4, 0xCF, 0x75, 0x15
+ .byte 0x42, 0x92, 0x1E, 0x58, 0x98, 0x55, 0xFE, 0xF9, 0xDA, 0x13, 0xE1, 0x6D, 0xCA, 0xAB, 0xD4, 0x00
+ .byte 0x1B, 0x2A, 0x04, 0x86, 0x5D, 0x9D, 0xEB, 0xF8, 0x58, 0xDC, 0x26, 0x1A, 0xD8, 0xA1, 0x20, 0x65
+ .byte 0x3F, 0x1D, 0xD8, 0x32, 0x1B, 0x3E, 0xE9, 0x12, 0xE8, 0x25, 0x74, 0x1F, 0xE6, 0xDB, 0xEF, 0x23
+ .byte 0xF9, 0xE0, 0x99, 0x3C, 0x7E, 0xBF, 0x42, 0x5B, 0x09, 0xDF, 0x70, 0x47, 0xD5, 0x1D, 0xDE, 0x36
+ .byte 0x47, 0x99, 0xEA, 0x96, 0xE7, 0xB5, 0x3D, 0x2A, 0xAA, 0x23, 0x48, 0x11, 0x04, 0xA5, 0x1A, 0xBC
+ .byte 0xA9, 0x22, 0x3F, 0x9F, 0x61, 0x10, 0xED, 0x1E, 0x57, 0x72, 0x0E, 0x8F, 0xFA, 0x08, 0x56, 0xEA
+ .byte 0xA4, 0x16, 0x02, 0xDE, 0x39, 0x73, 0xE2, 0x5A, 0xC0, 0x61, 0x83, 0x79, 0xAD, 0x6F, 0xB4, 0x6D
+ .byte 0xF8, 0xF7, 0xAC, 0xBB, 0x76, 0xAA, 0xE6, 0x49, 0x79, 0x9E, 0x99, 0x07, 0x3C, 0x23, 0x2E, 0x63
+ .byte 0xA4, 0x77, 0xBC, 0xCB, 0x3C, 0x64, 0x3C, 0x91, 0x5E, 0x7C, 0xE3, 0xAB, 0xFF, 0xC9, 0xCE, 0x95
+ .byte 0x7D, 0x97, 0x21, 0x83, 0x13, 0x41, 0x7D, 0x6D, 0x99, 0xCE, 0x7A, 0xBB, 0x7F, 0x7C, 0x98, 0x5C
+ .byte 0x96, 0x5F, 0x35, 0x78, 0x95, 0x3C, 0xAC, 0x1A, 0x43, 0x07, 0x8B, 0x60, 0xBB, 0x61, 0x7B, 0x3B
+ .byte 0x59, 0xCF, 0x5D, 0xF4, 0xCA, 0x19, 0x11, 0x2E, 0x06, 0xDF, 0x70, 0x47, 0x7D, 0x64, 0xA1, 0x4D
+ .byte 0x22, 0xE9, 0x4E, 0xFC, 0x2E, 0xAA, 0x6F, 0x29, 0xBA, 0x38, 0x77, 0xED, 0x0A, 0x33, 0x37, 0xDF
+ .byte 0x9F, 0xC7, 0x38, 0xC5, 0x80, 0x88, 0x63, 0xBD, 0x75, 0x6E, 0x71, 0x9C, 0x7F, 0xEC, 0x1E, 0x0C
+ .byte 0x95, 0xF9, 0xCA, 0xA5, 0x1B, 0x89, 0x72, 0xE2, 0x92, 0x88, 0x9B, 0x0D, 0xB7, 0x5C, 0xC0, 0xA8
+ .byte 0x30, 0x0D, 0xA8, 0x69, 0x74, 0xA0, 0xE1, 0xEE, 0x07, 0x1D, 0x2C, 0x4A, 0xC8, 0x72, 0x9D, 0x14
+ .byte 0x81, 0xF9, 0x00, 0xDF, 0x70, 0x47, 0xA9, 0xC6, 0x77, 0x11, 0x80, 0x51, 0x50, 0xAC, 0x5B, 0x70
+ .byte 0x4F, 0x48, 0x21, 0x7E, 0xC4, 0x84, 0x46, 0xDF, 0x05, 0x93, 0x11, 0x89, 0x79, 0x24, 0x15, 0x86
+ .byte 0x97, 0xC9, 0x86, 0x10, 0x86, 0x5D, 0xC4, 0x34, 0x25, 0x7E, 0x15, 0xDC, 0x45, 0x04, 0x55, 0x74
+ .byte 0x15, 0x80, 0xEC, 0x90, 0x3C, 0x00, 0x1B, 0xB0, 0xCB, 0xBD, 0x8F, 0x30, 0x02, 0x7F, 0xFD, 0x23
+ .byte 0x66, 0x78, 0xCC, 0x51, 0x4C, 0x17, 0x4A, 0xD2, 0xD1, 0x81, 0xEC, 0xE2, 0xF2, 0x49, 0xAF, 0x24
+ .byte 0x49, 0x37, 0x7D, 0x66, 0xE4, 0x50, 0x27, 0x8C, 0xE5, 0x01, 0x1D, 0x72, 0x89, 0xCD, 0x05, 0xD8
+ .byte 0x72, 0x53, 0x98, 0x7D, 0x2F, 0x51, 0x0B, 0x2B, 0x00, 0x22, 0x04, 0xDF, 0x70, 0x47, 0x5E, 0x7D
+ .byte 0xDC, 0x69, 0x73, 0xF1, 0x9F, 0xD4, 0xC0, 0xA5, 0x9F, 0x3C, 0xD6, 0xF5, 0x01, 0xF7, 0x6A, 0xF1
+ .byte 0xE5, 0xCA, 0xAA, 0x6A, 0x3C, 0xA5, 0x81, 0xB6, 0x3C, 0x0A, 0xAC, 0x77, 0x32, 0x54, 0x85, 0x77
+ .byte 0x7C, 0x56, 0xF9, 0xC9, 0x43, 0x93, 0xA0, 0x61, 0x8D, 0x92, 0x17, 0xBD, 0xDE, 0xAC, 0x1E, 0x35
+ .byte 0x33, 0xCD, 0xDD, 0xD0, 0x49, 0x49, 0x2A, 0x45, 0xDD, 0x0E, 0x6F, 0xF7, 0x76, 0x20, 0xBF, 0xD8
+ .byte 0xCE, 0x6A, 0x21, 0x6F, 0x09, 0xA6, 0x03, 0xC2, 0x6B, 0x91, 0x46, 0x86, 0x86, 0x30, 0x16, 0x20
+ .byte 0x32, 0xBE, 0x4F, 0x6F, 0x6A, 0x34, 0xA8, 0xEB, 0x00, 0x00
diff --git a/arm9/asm/unk_02005CFC.s b/arm9/asm/unk_02005CFC.s
index be1f5c15..6a601c58 100644
--- a/arm9/asm/unk_02005CFC.s
+++ b/arm9/asm/unk_02005CFC.s
@@ -70,7 +70,7 @@ _02005D70:
bl FUN_02005DFC
mov r0, #0xe
bl FUN_02004984
- bl rand_LC
+ bl LCRandom
lsr r2, r0, #0x1f
lsl r1, r0, #0x13
sub r1, r1, r2
diff --git a/arm9/asm/unk_0200AA80.s b/arm9/asm/unk_0200AA80.s
index 2da52f7f..42a4d3a4 100644
--- a/arm9/asm/unk_0200AA80.s
+++ b/arm9/asm/unk_0200AA80.s
@@ -285,7 +285,7 @@ FUN_0200AC60: ; 0x0200AC60
add r0, r7, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r1, r0, #0x0
ldr r2, [r5, #0xc]
add r0, r4, #0x0
@@ -309,7 +309,7 @@ FUN_0200ACA4: ; 0x0200ACA4
add r0, r2, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r2, r0, #0x0
add r0, r5, #0x0
add r1, r4, #0x0
@@ -350,7 +350,7 @@ FUN_0200ACF8: ; 0x0200ACF8
add r4, r1, #0x0
ldr r2, [r5, #0xc]
mov r1, #0x76
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
@@ -367,7 +367,7 @@ FUN_0200AD18: ; 0x0200AD18
add r4, r1, #0x0
ldr r2, [r5, #0xc]
mov r1, #0x90
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
ldr r2, [r5, #0xc]
add r0, r5, #0x0
add r1, r4, #0x0
diff --git a/arm9/asm/unk_02011744.s b/arm9/asm/unk_02011744.s
index 4c1cb051..c8fec74e 100644
--- a/arm9/asm/unk_02011744.s
+++ b/arm9/asm/unk_02011744.s
@@ -2285,8 +2285,8 @@ _02012752:
.balign 4
_02012778: .word UNK_020ED4B2
- thumb_func_start FUN_0201277C
-FUN_0201277C: ; 0x0201277C
+ thumb_func_start IsNighttime
+IsNighttime: ; 0x0201277C
push {r3, lr}
bl FUN_02012794
cmp r0, #0x3
diff --git a/arm9/asm/unk_020139D8.s b/arm9/asm/unk_020139D8.s
index f1fafe99..5fef7194 100644
--- a/arm9/asm/unk_020139D8.s
+++ b/arm9/asm/unk_020139D8.s
@@ -344,7 +344,7 @@ _02013B8A:
blo _02013B80
cmp r4, #0x0
beq _02013BC4
- bl rand_LC
+ bl LCRandom
add r1, r4, #0x0
bl _u32_div_f
ldr r4, [r5, #0x4]
diff --git a/arm9/asm/unk_02016B94.s b/arm9/asm/unk_02016B94.s
index 7950cfbe..a97700a5 100644
--- a/arm9/asm/unk_02016B94.s
+++ b/arm9/asm/unk_02016B94.s
@@ -2352,7 +2352,7 @@ FUN_02017C6C: ; 0x02017C6C
add r0, sp, #0x4
add r3, r2, #0x0
str r1, [sp, #0x0]
- bl FUN_0201BB74
+ bl MTX22_2DAffine
mov r3, #0x0
add r0, r5, #0x0
add r1, r4, #0x0
@@ -9036,7 +9036,7 @@ _0201ACEA:
ldr r2, [r4, #0x7c]
ldr r3, [r3, #0x0]
add r0, sp, #0x38
- bl FUN_0201BB74
+ bl MTX22_2DAffine
ldr r0, [r4, #0x6c]
add r2, r4, #0x0
str r0, [sp, #0x0]
@@ -9088,7 +9088,7 @@ _0201AD4E:
ldr r2, [r2, #0x0]
ldr r3, [r3, #0x0]
add r0, sp, #0x28
- bl FUN_0201BB74
+ bl MTX22_2DAffine
add r0, r4, #0x0
add r0, #0x98
ldr r0, [r0, #0x0]
@@ -9180,7 +9180,7 @@ _0201AE04:
ldr r2, [r4, r2]
ldr r3, [r4, r3]
add r0, sp, #0x18
- bl FUN_0201BB74
+ bl MTX22_2DAffine
mov r3, #0x47
lsl r3, r3, #0x2
ldr r0, [r4, r3]
@@ -9235,7 +9235,7 @@ _0201AE72:
ldr r2, [r4, r2]
ldr r3, [r4, r3]
add r0, sp, #0x8
- bl FUN_0201BB74
+ bl MTX22_2DAffine
mov r3, #0x52
lsl r3, r3, #0x2
ldr r0, [r4, r3]
diff --git a/arm9/asm/unk_0201C7A0.s b/arm9/asm/unk_0201C7A0.s
index b7508dff..0a43b49f 100644
--- a/arm9/asm/unk_0201C7A0.s
+++ b/arm9/asm/unk_0201C7A0.s
@@ -1,7 +1,7 @@
.include "asm/macros.inc"
.include "global.inc"
- .extern UNK_020EDF50
+ .extern gSineTable
.extern UNK_020FFA38
.text
@@ -459,7 +459,7 @@ FUN_0201CB20: ; 0x0201CB20
add r6, r1, #0x0
add r5, r2, #0x0
lsl r1, r6, #0x2
- ldr r2, _0201CB78 ; =UNK_020EDF50
+ ldr r2, _0201CB78 ; =gSineTable
add r6, #0x5a
add r4, r3, #0x0
lsl r3, r6, #0x2
@@ -468,7 +468,7 @@ FUN_0201CB20: ; 0x0201CB20
add r7, r0, #0x0
bl MTX_RotX33_
lsl r1, r5, #0x2
- ldr r3, _0201CB78 ; =UNK_020EDF50
+ ldr r3, _0201CB78 ; =gSineTable
add r5, #0x5a
lsl r2, r5, #0x2
ldr r1, [r3, r1]
@@ -480,7 +480,7 @@ FUN_0201CB20: ; 0x0201CB20
add r2, r7, #0x0
bl MTX_Concat33
lsl r1, r4, #0x2
- ldr r3, _0201CB78 ; =UNK_020EDF50
+ ldr r3, _0201CB78 ; =gSineTable
add r4, #0x5a
lsl r2, r4, #0x2
ldr r1, [r3, r1]
@@ -494,7 +494,7 @@ FUN_0201CB20: ; 0x0201CB20
add sp, #0x24
pop {r4-r7, pc}
.balign 4
-_0201CB78: .word UNK_020EDF50
+_0201CB78: .word gSineTable
thumb_func_start FUN_0201CB7C
FUN_0201CB7C: ; 0x0201CB7C
diff --git a/arm9/asm/unk_02023C40.s b/arm9/asm/unk_02023C40.s
index 30aa59a0..46a01c79 100644
--- a/arm9/asm/unk_02023C40.s
+++ b/arm9/asm/unk_02023C40.s
@@ -26,10 +26,10 @@ FUN_02023C48: ; 0x02023C48
lsl r2, r2, #0x4
bl memset
add r0, r4, #0x0
- bl WipeBoxMonDataAndEncrypt
+ bl ZeroBoxMonData
add r0, r4, #0x0
add r0, #0xec
- bl WipeBoxMonDataAndEncrypt
+ bl ZeroBoxMonData
mov r0, #0x76
mov r1, #0x0
lsl r0, r0, #0x2
@@ -120,13 +120,13 @@ FUN_02023CC8: ; 0x02023CC8
add r5, r0, #0x0
mov r1, #0xc
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r5, #0xec
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0xc
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r4, r0
beq _02023CEA
mov r0, #0x1
@@ -187,7 +187,7 @@ _02023D38: .word 0x0000FFFF
FUN_02023D3C: ; 0x02023D3C
push {r4, lr}
add r4, r0, #0x0
- bl WipeBoxMonDataAndEncrypt
+ bl ZeroBoxMonData
add r0, r4, #0x0
mov r1, #0x0
add r0, #0xe8
@@ -785,7 +785,7 @@ FUN_0202415C: ; 0x0202415C
add r0, r2, #0x0
mov r1, #0x70
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r4, r0, #0x18
ldr r0, _02024198 ; =0x00000182
@@ -884,7 +884,7 @@ _02024210:
add r0, r2, #0x0
mov r1, #0x70
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
add r0, r5, #0x0
add r1, r4, #0x0
@@ -897,7 +897,7 @@ _0202422E:
add r0, r2, #0x0
mov r1, #0x70
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
add r0, r5, #0x0
add r1, r4, #0x0
@@ -911,7 +911,7 @@ _0202424A:
add r0, r2, #0x0
mov r1, #0x70
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
add r0, r5, #0x0
add r1, r4, #0x0
@@ -925,7 +925,7 @@ _02024268:
add r0, r2, #0x0
mov r1, #0x70
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
add r0, r5, #0x0
add r1, r4, #0x0
@@ -1916,17 +1916,17 @@ FUN_0202498C: ; 0x0202498C
add r0, r1, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x4]
mov r1, #0x0
ldr r0, [sp, #0x0]
add r2, r1, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0x0
ldr r0, [sp, #0x0]
- bl GetMonGenderEncrypted
+ bl GetMonGender
add r6, r0, #0x0
ldr r1, [r5, #0x0]
ldr r0, _02024AE4 ; =0xBEEFCAFE
@@ -2099,21 +2099,21 @@ FUN_02024AF0: ; 0x02024AF0
add r0, r1, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r6, r0, #0x10
ldr r0, [sp, #0x0]
mov r1, #0xc
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x8]
mov r1, #0x0
ldr r0, [sp, #0x0]
add r2, r1, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x4]
ldr r0, [sp, #0x0]
- bl GetMonGenderEncrypted
+ bl GetMonGender
add r7, r0, #0x0
ldr r1, [r4, #0x0]
ldr r0, _02024C78 ; =0xBEEFCAFE
diff --git a/arm9/asm/unk_020250A4.s b/arm9/asm/unk_020250A4.s
index 8a0f16b8..76e0e8ce 100644
--- a/arm9/asm/unk_020250A4.s
+++ b/arm9/asm/unk_020250A4.s
@@ -78,7 +78,7 @@ FUN_02025128: ; 0x02025128
push {r3-r7, lr}
sub sp, #0x8
add r7, r0, #0x0
- bl FUN_02085258
+ bl OpenNutsDataNarc
str r0, [sp, #0x0]
add r0, r7, #0x0
mov r1, #0xc0
@@ -90,18 +90,18 @@ _02025142:
ldr r0, [sp, #0x0]
add r1, r6, #0x0
add r2, r7, #0x0
- bl FUN_02085264
+ bl ReadNutDataFromNarc
add r4, r0, #0x0
mov r1, #0x3
- bl FUN_02085290
+ bl GetNutAttr
strb r0, [r5, #0x0]
add r0, r4, #0x0
mov r1, #0x4
- bl FUN_02085290
+ bl GetNutAttr
strb r0, [r5, #0x1]
add r0, r4, #0x0
mov r1, #0x2
- bl FUN_02085290
+ bl GetNutAttr
strb r0, [r5, #0x2]
add r0, r4, #0x0
bl FreeToHeap
@@ -110,7 +110,7 @@ _02025142:
cmp r6, #0x40
blt _02025142
ldr r0, [sp, #0x0]
- bl FUN_0208526C
+ bl CloseNutsDataNarc
ldr r0, [sp, #0x4]
add sp, #0x8
pop {r3-r7, pc}
diff --git a/arm9/asm/unk_02025658.s b/arm9/asm/unk_02025658.s
index f5837edd..9cf2dfa2 100644
--- a/arm9/asm/unk_02025658.s
+++ b/arm9/asm/unk_02025658.s
@@ -6,8 +6,8 @@
.text
- thumb_func_start FUN_02025658
-FUN_02025658: ; 0x02025658
+ thumb_func_start InitSealsObject
+InitSealsObject: ; 0x02025658
push {r3-r5, lr}
add r4, r0, #0x0
mov r0, #0x0
@@ -61,19 +61,19 @@ _020256B6:
bx lr
.balign 4
- thumb_func_start FUN_020256BC
-FUN_020256BC: ; 0x020256BC
+ thumb_func_start CreateNewSealsObject
+CreateNewSealsObject: ; 0x020256BC
push {r4, lr}
mov r1, #0x38
bl AllocFromHeapAtEnd
add r4, r0, #0x0
- bl FUN_02025658
+ bl InitSealsObject
add r0, r4, #0x0
pop {r4, pc}
.balign 4
- thumb_func_start FUN_020256D0
-FUN_020256D0: ; 0x020256D0
+ thumb_func_start CopySealsObject
+CopySealsObject: ; 0x020256D0
ldr r3, _020256D8 ; =MI_CpuCopy8
mov r2, #0x38
bx r3
@@ -88,7 +88,7 @@ FUN_020256DC: ; 0x020256DC
add r5, r0, #0x0
add r6, r1, #0x0
add r4, r2, #0x0
- bl FUN_02025658
+ bl InitSealsObject
add r0, r7, #0x0
strb r6, [r5, #0x7]
bl FUN_0206BB1C
@@ -109,30 +109,30 @@ FUN_020256DC: ; 0x020256DC
str r0, [r5, #0x0]
ldr r0, [sp, #0x0]
mov r6, #0x0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
bge _020257AE
add r5, #0x18
_0202572A:
ldr r0, [sp, #0x0]
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x5
mov r2, #0x0
add r7, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x4]
add r0, r7, #0x0
mov r1, #0x4c
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x8]
add r0, r7, #0x0
mov r1, #0x70
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0xc]
add r0, r7, #0x0
bl FUN_0206B6C8
@@ -170,7 +170,7 @@ _0202572A:
lsl r0, r0, #0x18
lsr r4, r0, #0x18
ldr r0, [sp, #0x0]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _0202572A
_020257AE:
@@ -299,7 +299,7 @@ FUN_0202584C: ; 0x0202584C
mov r4, #0x0
_02025852:
add r0, r5, #0x0
- bl FUN_02025658
+ bl InitSealsObject
add r4, r4, #0x1
add r5, #0x38
cmp r4, #0x14
@@ -326,7 +326,7 @@ FUN_02025878: ; 0x02025878
bl FUN_02025940
cmp r0, #0x0
beq _02025886
- bl FUN_02025658
+ bl InitSealsObject
_02025886:
pop {r3, pc}
@@ -338,7 +338,7 @@ FUN_02025888: ; 0x02025888
add r1, r0, #0x0
beq _0202589A
add r0, r4, #0x0
- bl FUN_020256D0
+ bl CopySealsObject
_0202589A:
pop {r4, pc}
@@ -362,13 +362,13 @@ FUN_020258B0: ; 0x020258B0
bl FUN_02025940
add r4, r0, #0x0
add r0, r5, #0x0
- bl FUN_020256BC
+ bl CreateNewSealsObject
add r5, r0, #0x0
cmp r4, #0x0
beq _020258CE
add r0, r4, #0x0
add r1, r5, #0x0
- bl FUN_020256D0
+ bl CopySealsObject
_020258CE:
add r0, r5, #0x0
pop {r3-r5, pc}
@@ -382,11 +382,11 @@ FUN_020258D4: ; 0x020258D4
cmp r0, #0x0
bne _020258E8
add r0, r4, #0x0
- bl FUN_02025658
+ bl InitSealsObject
pop {r4, pc}
_020258E8:
add r1, r4, #0x0
- bl FUN_020256D0
+ bl CopySealsObject
pop {r4, pc}
thumb_func_start FUN_020258F0
diff --git a/arm9/asm/unk_02025954.s b/arm9/asm/unk_02025954.s
index d9db06df..b981217f 100644
--- a/arm9/asm/unk_02025954.s
+++ b/arm9/asm/unk_02025954.s
@@ -300,7 +300,7 @@ _02025B28:
ldr r1, [r0, #0x0]
ldr r0, [sp, #0x0]
add r0, r1, r0
- bl rand_ALT
+ bl PRandom
add r1, r6, #0x0
add r1, #0x94
str r0, [r1, #0x0]
diff --git a/arm9/asm/unk_02026CD0.s b/arm9/asm/unk_02026CD0.s
index 98d65c78..ec6fd057 100644
--- a/arm9/asm/unk_02026CD0.s
+++ b/arm9/asm/unk_02026CD0.s
@@ -15,27 +15,27 @@ FUN_02026CD0: ; 0x02026CD0
mov r1, #0x5
mov r2, #0x0
add r7, r3, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r5, #0x0
strh r0, [r5, #0x8]
add r0, r4, #0x0
mov r1, #0x74
add r2, #0xa
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x0
add r0, r4, #0x0
add r2, r1, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [r5, #0x0]
add r0, r4, #0x0
mov r1, #0x7
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [r5, #0x4]
add r0, r4, #0x0
mov r1, #0x70
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r5, #0x0
add r1, #0x33
strb r0, [r1, #0x0]
@@ -2125,12 +2125,12 @@ _02027B9C:
add r0, r4, #0x0
mov r1, #0x74
add r2, #0x12
- bl SetMonDataEncrypted
+ bl SetMonData
add r5, #0x3b
add r0, r4, #0x0
mov r1, #0x70
add r2, r5, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
add sp, #0x10
pop {r3-r5, pc}
nop
@@ -2300,12 +2300,12 @@ FUN_02027CB8: ; 0x02027CB8
add r0, r4, #0x0
mov r1, #0x74
add r2, #0xa
- bl SetMonDataEncrypted
+ bl SetMonData
add r5, #0x33
add r0, r4, #0x0
mov r1, #0x70
add r2, r5, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
add sp, #0x10
pop {r3-r5, pc}
.balign 4
diff --git a/arm9/asm/unk_02027E30.s b/arm9/asm/unk_02027E30.s
index 14110596..0f0e329a 100644
--- a/arm9/asm/unk_02027E30.s
+++ b/arm9/asm/unk_02027E30.s
@@ -117,7 +117,7 @@ FUN_02027ED0: ; 0x02027ED0
mov r6, #0x2
mov r7, #0x5
_02027EDC:
- bl rand_LC
+ bl LCRandom
add r1, r7, #0x0
bl _s32_div_f
lsl r0, r1, #0x18
diff --git a/arm9/asm/unk_020286F8.s b/arm9/asm/unk_020286F8.s
index 48b38ed5..d0ed994b 100644
--- a/arm9/asm/unk_020286F8.s
+++ b/arm9/asm/unk_020286F8.s
@@ -76,7 +76,7 @@ _0202875C:
bls _02028770
_02028762:
ldr r0, [r5, #0x28]
- bl rand_ALT
+ bl PRandom
add r4, r4, #0x1
str r0, [r5, #0x28]
cmp r4, r6
@@ -108,7 +108,7 @@ FUN_02028788: ; 0x02028788
add r0, r5, r4
str r2, [r0, #0x24]
add r0, r2, #0x0
- bl rand_ALT
+ bl PRandom
add r1, r5, r4
str r0, [r1, #0x28]
pop {r3-r5, pc}
diff --git a/arm9/asm/unk_0202A924.s b/arm9/asm/unk_0202A924.s
index f8bcbe96..c6af7b91 100644
--- a/arm9/asm/unk_0202A924.s
+++ b/arm9/asm/unk_0202A924.s
@@ -18,9 +18,9 @@ FUN_0202A92C: ; 0x0202A92C
mov r1, #0x0
lsl r2, r2, #0x2
bl memset
- bl rand_MT
+ bl MTRandom
str r0, [r4, #0x0]
- bl rand_MT
+ bl MTRandom
str r0, [r4, #0x4]
mov r1, #0x0
add r3, r4, #0x0
diff --git a/arm9/asm/unk_0202B034.s b/arm9/asm/unk_0202B034.s
index a72a3829..2708bee6 100644
--- a/arm9/asm/unk_0202B034.s
+++ b/arm9/asm/unk_0202B034.s
@@ -58,7 +58,7 @@ _0202B07E:
add r0, r0, r2
str r0, [sp, #0x14]
ldr r0, [sp, #0x4]
- bl FUN_0206B9AC
+ bl GetPartyCount
str r0, [sp, #0x10]
mov r0, #0xb
mov r1, #0x0
@@ -77,67 +77,67 @@ _0202B07E:
_0202B0BA:
ldr r0, [sp, #0x4]
add r1, r7, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r4, r0, #0x0
- bl TryDecryptMon
+ bl AcquireMonLock
str r0, [sp, #0xc]
add r0, r4, #0x0
mov r1, #0x4c
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _0202B17E
add r0, r4, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x0]
add r0, r4, #0x0
mov r1, #0xa0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r5, #0x2]
add r0, r4, #0x0
mov r1, #0x70
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x0
strb r0, [r5, #0x3]
add r0, r4, #0x0
add r2, r1, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [r5, #0x4]
add r0, r4, #0x0
mov r1, #0x7
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [r5, #0x8]
add r0, r4, #0x0
mov r1, #0x36
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x32]
add r0, r4, #0x0
mov r1, #0x37
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x34]
add r0, r4, #0x0
mov r1, #0x38
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x36]
add r0, r4, #0x0
mov r1, #0x39
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x38]
cmp r6, #0x0
beq _0202B176
add r0, r4, #0x0
mov r1, #0x76
add r2, r6, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r5, #0x0
add r0, r6, #0x0
add r1, #0xc
@@ -146,7 +146,7 @@ _0202B0BA:
add r0, r4, #0x0
mov r1, #0x90
add r2, r6, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r5, #0x0
add r0, r6, #0x0
add r1, #0x22
@@ -162,7 +162,7 @@ _0202B17C:
_0202B17E:
ldr r1, [sp, #0xc]
add r0, r4, #0x0
- bl TryEncryptMon
+ bl ReleaseMonLock
ldr r0, [sp, #0x10]
add r7, r7, #0x1
cmp r7, r0
diff --git a/arm9/asm/unk_0202BE98.s b/arm9/asm/unk_0202BE98.s
index edec1ae4..8e7a28c2 100644
--- a/arm9/asm/unk_0202BE98.s
+++ b/arm9/asm/unk_0202BE98.s
@@ -27,7 +27,7 @@ _0202BEB4:
add r0, r5, #0x0
add r1, r6, #0x0
add r2, r7, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _0202BECC
bl ErrorHandling
@@ -57,7 +57,7 @@ _0202BEF0:
add r0, r5, #0x0
add r1, r6, #0x0
add r2, r7, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _0202BF08
bl ErrorHandling
@@ -205,7 +205,7 @@ _0202C00A:
add r0, r5, #0x0
add r1, r7, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _0202C01A
add r4, r4, #0x1
diff --git a/arm9/asm/unk_0202C144.s b/arm9/asm/unk_0202C144.s
index 50c7240b..fdda34d3 100644
--- a/arm9/asm/unk_0202C144.s
+++ b/arm9/asm/unk_0202C144.s
@@ -11,7 +11,7 @@ FUN_0202C144: ; 0x0202C144
add r0, r4, #0x0
mov r1, #0x4c
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _0202C194
add r0, r5, #0x0
@@ -23,7 +23,7 @@ FUN_0202C144: ; 0x0202C144
add r0, r4, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
lsl r2, r2, #0x10
add r0, r7, #0x0
diff --git a/arm9/asm/unk_02035068.s b/arm9/asm/unk_02035068.s
index 74c41707..6cb0e026 100644
--- a/arm9/asm/unk_02035068.s
+++ b/arm9/asm/unk_02035068.s
@@ -1855,7 +1855,7 @@ _02035ECC:
ldrb r0, [r0, #0x0]
strb r0, [r7, #0x14]
ldr r0, [r7, #0x0]
- bl FUN_0206B9AC
+ bl GetPartyCount
strb r0, [r7, #0x13]
mov r0, #0x0
strh r0, [r7, #0x18]
@@ -2050,7 +2050,7 @@ _020360AC:
add r1, r6, #0x0
add r1, #0x22
ldrb r1, [r1, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0x0
add r0, r5, #0x0
mov r2, #0xb
@@ -2444,7 +2444,7 @@ _020363F6:
add r5, r0, #0x0
ldr r0, [sp, #0x4]
add r1, r7, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [sp, #0xc]
mov r0, #0x7f
lsl r0, r0, #0x2
@@ -2457,7 +2457,7 @@ _020363F6:
ldr r0, [sp, #0xc]
mov r1, #0x6
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _02036474
add r0, r5, #0x0
@@ -3277,7 +3277,7 @@ _02036B0E:
ldr r0, [r6, #0xc]
bl FUN_0206BB1C
add r1, r7, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r2, r0, #0x0
ldr r0, [r5, #0x14]
add r1, r6, #0x0
@@ -3547,7 +3547,7 @@ FUN_02036CEC: ; 0x02036CEC
str r5, [r4, #0x1c]
ldrb r1, [r7, #0x2]
ldr r0, [r4, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0x0
mov r0, #0x7e
lsl r0, r0, #0x2
@@ -3648,7 +3648,7 @@ FUN_02036E08: ; 0x02036E08
bl FUN_0206BB1C
ldrb r1, [r5, #0x0]
str r0, [sp, #0x20]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [sp, #0x24]
ldrb r0, [r5, #0x1]
cmp r0, #0x0
diff --git a/arm9/asm/unk_020377F0.s b/arm9/asm/unk_020377F0.s
index 1b513296..f4cea674 100644
--- a/arm9/asm/unk_020377F0.s
+++ b/arm9/asm/unk_020377F0.s
@@ -732,7 +732,7 @@ FUN_02037C00: ; 0x02037C00
strb r0, [r4, #0x11]
strb r6, [r4, #0x14]
ldr r0, [r4, #0x0]
- bl FUN_0206B9AC
+ bl GetPartyCount
strb r0, [r4, #0x13]
mov r0, #0x0
strh r0, [r4, #0x18]
@@ -789,7 +789,7 @@ FUN_02037C7C: ; 0x02037C7C
mov r0, #0x0
strb r0, [r4, #0x14]
ldr r0, [r4, #0x0]
- bl FUN_0206B9AC
+ bl GetPartyCount
strb r0, [r4, #0x13]
mov r0, #0x0
strh r0, [r4, #0x18]
@@ -1231,7 +1231,7 @@ FUN_0203800C: ; 0x0203800C
add r0, r5, #0x0
bl FUN_0206BB1C
add r1, r7, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [r4, #0x0]
add r0, r5, #0x0
bl FUN_02027E24
@@ -1585,7 +1585,7 @@ _020382F6:
ldr r0, [r4, #0x44]
mov r1, #0x6
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r3, r0, #0x0
add r0, sp, #0x30
str r0, [sp, #0x0]
@@ -1594,7 +1594,7 @@ _020382F6:
mov r0, #0x0
mov r2, #0x1
lsr r3, r3, #0x10
- bl FUN_02069168
+ bl GetMonEvolution
str r0, [sp, #0x20]
cmp r0, #0x0
beq _02038380
@@ -1652,7 +1652,7 @@ _02038386:
beq _020383C8
ldr r0, [r4, #0xc]
ldr r1, [r4, #0x30]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0x0
ldr r0, [r4, #0x44]
bl FUN_02069B88
@@ -1906,11 +1906,11 @@ _02038590:
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
ldr r1, [r4, #0x4]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r2, [r4, #0xc]
mov r1, #0x75
add r2, #0x1c
- bl SetMonDataEncrypted
+ bl SetMonData
pop {r3-r5, pc}
_020385A8:
ldr r0, [r5, #0xc]
@@ -1973,17 +1973,17 @@ _02038620:
ldr r0, [r7, #0xc]
bl FUN_0206BB1C
ldr r1, [r4, #0x4]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x6f
mov r2, #0x0
add r6, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [r4, #0xc]
mov r2, #0x0
str r0, [r1, #0x10]
add r0, r6, #0x0
mov r1, #0x70
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [r4, #0xc]
cmp r5, #0x0
str r0, [r1, #0x8]
@@ -2472,11 +2472,11 @@ FUN_02038A3C: ; 0x02038A3C
str r1, [sp, #0x0]
bl FUN_0202881C
add r4, r0, #0x0
- bl getseed_LC
+ bl GetLCRNGSeed
str r0, [sp, #0x4]
add r0, r4, #0x0
bl FUN_020287A4
- bl seedr_LC
+ bl SetLCRNGSeed
ldr r0, _02038AAC ; =UNK_020F2BE8
add r1, sp, #0x8
mov r2, #0xc
@@ -2491,7 +2491,7 @@ _02038A68:
cmp r5, #0xc
bhs _02038A92
_02038A72:
- bl rand_LC
+ bl LCRandom
add r1, r7, #0x0
bl _s32_div_f
lsl r0, r1, #0x18
@@ -2512,7 +2512,7 @@ _02038A92:
cmp r4, #0xc
blo _02038A68
ldr r0, [sp, #0x4]
- bl seedr_LC
+ bl SetLCRNGSeed
ldr r0, [sp, #0x0]
add r1, sp, #0x8
ldrb r0, [r1, r0]
diff --git a/arm9/asm/unk_0204653C.s b/arm9/asm/unk_0204653C.s
index bbe445d7..8a0cf5cd 100644
--- a/arm9/asm/unk_0204653C.s
+++ b/arm9/asm/unk_0204653C.s
@@ -945,7 +945,7 @@ _02046CAA:
ldr r0, [r5, #0x10]
mov r1, #0x0
ldr r0, [r0, #0x8]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0x0
ldr r0, [sp, #0x4]
bl FUN_02060FE0
@@ -1025,7 +1025,7 @@ _02046D5C:
cmp r0, #0x12
bne _02046D8C
add r0, r5, #0x0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0x6
bne _02046D8C
mov r2, #0x0
@@ -1711,10 +1711,10 @@ _0204732A:
bne _020473C8
ldr r0, [r1, #0x8]
mov r1, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r0, #0x0
mov r0, #0x0
bl FUN_0206BB48
@@ -1758,10 +1758,10 @@ _02047390:
bne _020473C8
ldr r0, [r1, #0x8]
mov r1, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r0, #0x0
mov r0, #0x0
bl FUN_0206BB48
@@ -1827,7 +1827,7 @@ _02047400:
blo _020474FC
ldr r0, [r4, #0x8]
mov r1, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r6, r0, #0x0
ldr r0, [r5, #0xc]
bl FUN_02023918
@@ -1835,12 +1835,12 @@ _02047400:
add r0, r6, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0x0
add r0, r6, #0x0
mov r1, #0x6f
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
mov r3, #0xb
str r3, [sp, #0x0]
@@ -1871,7 +1871,7 @@ _02047470:
lsl r0, r0, #0x2
add r0, r4, r0
ldr r0, [r0, #0x4]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r6, r0, #0x0
ldr r0, [r5, #0xc]
bl FUN_02023918
@@ -1879,12 +1879,12 @@ _02047470:
add r0, r6, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0x0
add r0, r6, #0x0
mov r1, #0x6f
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
mov r3, #0xb
str r3, [sp, #0x0]
diff --git a/arm9/asm/unk_02047500.s b/arm9/asm/unk_02047500.s
index 8668643a..04d99ac3 100644
--- a/arm9/asm/unk_02047500.s
+++ b/arm9/asm/unk_02047500.s
@@ -242,7 +242,7 @@ FUN_02047668: ; 0x02047668
bl FUN_0204A1D8
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _020476C8 ; =0x000001DF
sub r0, r0, r1
cmp r0, #0xe
diff --git a/arm9/asm/unk_020476CC.s b/arm9/asm/unk_020476CC.s
index 8944e0b3..e167517a 100644
--- a/arm9/asm/unk_020476CC.s
+++ b/arm9/asm/unk_020476CC.s
@@ -649,25 +649,25 @@ FUN_02047BC0: ; 0x02047BC0
bl AllocMonZeroed
add r5, r0, #0x0
ldr r0, [sp, #0x14]
- bl FUN_0206B9AC
+ bl GetPartyCount
add r1, r0, #0x0
ldr r0, [r6, #0x4]
bl FUN_0206B8CC
ldr r0, [sp, #0x14]
mov r4, #0x0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0x0
ble _02047C98
_02047C40:
ldr r0, [sp, #0x14]
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r5, #0x0
bl FUN_02069B88
add r0, r5, #0x0
mov r1, #0xa0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r7, r0
beq _02047C82
cmp r7, #0x0
@@ -675,16 +675,16 @@ _02047C40:
add r0, r5, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r7, #0x0
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
str r0, [sp, #0x18]
add r0, r5, #0x0
mov r1, #0x8
add r2, sp, #0x18
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
_02047C82:
add r0, r6, #0x0
add r1, r5, #0x0
@@ -692,7 +692,7 @@ _02047C82:
bl FUN_020479FC
ldr r0, [sp, #0x14]
add r4, r4, #0x1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _02047C40
_02047C98:
@@ -856,7 +856,7 @@ _02047DEE:
ldrb r1, [r7, r6]
ldr r0, [sp, #0x4]
sub r1, r1, #0x1
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r1, [sp, #0x8]
bl FUN_02069B88
ldr r1, [sp, #0x8]
diff --git a/arm9/asm/unk_0204A01C.s b/arm9/asm/unk_0204A01C.s
index 83324f37..10664314 100644
--- a/arm9/asm/unk_0204A01C.s
+++ b/arm9/asm/unk_0204A01C.s
@@ -9,7 +9,7 @@ FUN_0204A01C: ; 0x0204A01C
mov r1, #0xa2
mov r2, #0x0
add r4, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _0204A030
mov r0, #0x0
@@ -18,7 +18,7 @@ _0204A030:
add r0, r4, #0x0
mov r1, #0x4c
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _0204A042
mov r0, #0x1
@@ -70,7 +70,7 @@ FUN_0204A048: ; 0x0204A048
add r2, sp, #0x1c
str r0, [sp, #0x1c]
add r0, r4, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0x18]
add r1, r4, #0x0
bl FUN_0206B900
@@ -130,7 +130,7 @@ FUN_0204A120: ; 0x0204A120
push {r3-r5, lr}
add r5, r2, #0x0
add r4, r3, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
lsl r2, r5, #0x18
add r1, r4, #0x0
lsr r2, r2, #0x18
@@ -143,7 +143,7 @@ FUN_0204A138: ; 0x0204A138
push {r3-r7, lr}
str r0, [sp, #0x0]
add r5, r1, #0x0
- bl FUN_0206B9AC
+ bl GetPartyCount
add r7, r0, #0x0
mov r6, #0x0
cmp r7, #0x0
@@ -151,35 +151,35 @@ FUN_0204A138: ; 0x0204A138
_0204A14A:
ldr r0, [sp, #0x0]
add r1, r6, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
add r4, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _0204A19C
add r0, r4, #0x0
mov r1, #0x36
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r5, r0
beq _0204A198
add r0, r4, #0x0
mov r1, #0x37
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r5, r0
beq _0204A198
add r0, r4, #0x0
mov r1, #0x38
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r5, r0
beq _0204A198
add r0, r4, #0x0
mov r1, #0x39
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r5, r0
bne _0204A19C
_0204A198:
@@ -198,7 +198,7 @@ _0204A1A2:
FUN_0204A1A8: ; 0x0204A1A8
push {r3-r7, lr}
add r7, r0, #0x0
- bl FUN_0206B9AC
+ bl GetPartyCount
mov r5, #0x0
add r6, r0, #0x0
add r4, r5, #0x0
@@ -207,7 +207,7 @@ FUN_0204A1A8: ; 0x0204A1A8
_0204A1BA:
add r0, r7, #0x0
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
bl FUN_0204A01C
cmp r0, #0x0
beq _0204A1CC
@@ -225,7 +225,7 @@ _0204A1D2:
FUN_0204A1D8: ; 0x0204A1D8
push {r3-r7, lr}
add r6, r0, #0x0
- bl FUN_0206B9AC
+ bl GetPartyCount
add r5, r0, #0x0
mov r4, #0x0
cmp r5, #0x0
@@ -233,7 +233,7 @@ FUN_0204A1D8: ; 0x0204A1D8
_0204A1E8:
add r0, r6, #0x0
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r7, r0, #0x0
bl FUN_0204A01C
cmp r0, #0x0
@@ -253,7 +253,7 @@ _0204A204:
FUN_0204A20C: ; 0x0204A20C
push {r3-r7, lr}
add r6, r0, #0x0
- bl FUN_0206B9AC
+ bl GetPartyCount
lsl r0, r0, #0x10
lsr r5, r0, #0x10
ldr r4, _0204A244 ; =0x00000000
@@ -261,11 +261,11 @@ FUN_0204A20C: ; 0x0204A20C
_0204A21C:
add r0, r6, #0x0
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
add r7, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _0204A236
add r0, r7, #0x0
@@ -302,7 +302,7 @@ FUN_0204A25C: ; 0x0204A25C
add r1, sp, #0x0
add r7, r0, #0x0
strb r2, [r1, #0x0]
- bl FUN_0206B9AC
+ bl GetPartyCount
add r6, r0, #0x0
mov r5, #0x0
cmp r6, #0x0
@@ -310,17 +310,17 @@ FUN_0204A25C: ; 0x0204A25C
_0204A272:
add r0, r7, #0x0
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0x0
add r4, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _0204A292
add r0, r4, #0x0
mov r1, #0x19
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
_0204A292:
add r5, r5, #0x1
cmp r5, r6
@@ -337,7 +337,7 @@ FUN_0204A29C: ; 0x0204A29C
str r0, [sp, #0x0]
str r1, [sp, #0x4]
add r6, r7, #0x0
- bl FUN_0206B9AC
+ bl GetPartyCount
add r4, r7, #0x0
str r0, [sp, #0x8]
cmp r0, #0x0
@@ -345,7 +345,7 @@ FUN_0204A29C: ; 0x0204A29C
_0204A2B4:
ldr r0, [sp, #0x0]
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r5, r0, #0x0
bl FUN_0204A01C
cmp r0, #0x0
@@ -353,14 +353,14 @@ _0204A2B4:
add r0, r5, #0x0
mov r1, #0x9f
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x88
tst r0, r1
beq _0204A308
add r0, r5, #0x0
mov r1, #0xa2
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0xc]
cmp r0, #0x1
bls _0204A2EA
@@ -370,7 +370,7 @@ _0204A2EA:
add r0, r5, #0x0
mov r1, #0xa2
add r2, sp, #0xc
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0xc]
cmp r0, #0x1
bne _0204A306
@@ -378,7 +378,7 @@ _0204A2EA:
add r0, r5, #0x0
mov r1, #0x7
add r6, r6, #0x1
- bl MonApplyFriendshipModEncrypted
+ bl MonApplyFriendshipMod
_0204A306:
add r7, r7, #0x1
_0204A308:
@@ -411,14 +411,14 @@ FUN_0204A32C: ; 0x0204A32C
mov r1, #0x9f
mov r2, #0x0
add r4, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x88
tst r0, r1
beq _0204A362
add r0, r4, #0x0
mov r1, #0xa2
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x1
bne _0204A362
mov r0, #0x0
@@ -426,7 +426,7 @@ FUN_0204A32C: ; 0x0204A32C
add r0, r4, #0x0
mov r1, #0x9f
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
add sp, #0x4
mov r0, #0x1
pop {r3-r4, pc}
diff --git a/arm9/asm/unk_0204AB0C.s b/arm9/asm/unk_0204AB0C.s
index 0de63e29..f078e422 100644
--- a/arm9/asm/unk_0204AB0C.s
+++ b/arm9/asm/unk_0204AB0C.s
@@ -117,7 +117,7 @@ FUN_0204ABA8: ; 0x0204ABA8
push {r4-r6, lr}
add r5, r0, #0x0
add r4, r1, #0x0
- bl FUN_0201277C
+ bl IsNighttime
cmp r0, #0x0
bne _0204ABBE
add r0, r4, #0x0
@@ -334,7 +334,7 @@ _0204AD40: .word UNK_020F471A
FUN_0204AD44: ; 0x0204AD44
push {r4, lr}
add r4, r0, #0x0
- bl FUN_0201277C
+ bl IsNighttime
cmp r0, #0x0
bne _0204AD58
add r0, r4, #0x0
diff --git a/arm9/asm/unk_0204B9EC.s b/arm9/asm/unk_0204B9EC.s
index 2d779ce3..e781dc81 100644
--- a/arm9/asm/unk_0204B9EC.s
+++ b/arm9/asm/unk_0204B9EC.s
@@ -198,7 +198,7 @@ _0204BB3C:
add r0, r4, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
strh r0, [r5, #0x0]
@@ -220,12 +220,12 @@ _0204BB72:
ldrb r0, [r7, #0x2]
strh r0, [r5, #0x4]
add r0, r4, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r5, #0x6]
add r0, r4, #0x0
mov r1, #0xb1
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r5, #0x7]
add r6, r6, #0x1
add r5, #0x8
@@ -260,7 +260,7 @@ _0204BBB8:
FUN_0204BBC4: ; 0x0204BBC4
push {r3-r5, lr}
add r4, r0, #0x0
- bl rand_LC
+ bl LCRandom
ldr r1, _0204BBE4 ; =0x0000199A
bl _s32_div_f
lsl r0, r0, #0x10
@@ -384,7 +384,7 @@ _0204BC94:
mov r4, #0x0
b _0204BCD8
_0204BCA4:
- bl rand_LC
+ bl LCRandom
add r1, r6, #0x0
add r1, #0x14
add r4, r0, #0x0
diff --git a/arm9/asm/unk_0204BE14.s b/arm9/asm/unk_0204BE14.s
index afb3bc59..0e8be8cc 100644
--- a/arm9/asm/unk_0204BE14.s
+++ b/arm9/asm/unk_0204BE14.s
@@ -497,7 +497,7 @@ _0204C138:
add r0, r6, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r1, r5, r4
add r1, #0xb6
strh r0, [r1, #0x0]
diff --git a/arm9/asm/unk_02050E48.s b/arm9/asm/unk_02050E48.s
index cfaf8e37..d2267271 100644
--- a/arm9/asm/unk_02050E48.s
+++ b/arm9/asm/unk_02050E48.s
@@ -50,7 +50,7 @@ FUN_02050E48: ; 0x02050E48
ldr r0, [sp, #0x4]
strb r0, [r4, #0x14]
ldr r0, [r4, #0x0]
- bl FUN_0206B9AC
+ bl GetPartyCount
strb r0, [r4, #0x13]
mov r0, #0x0
strh r0, [r4, #0x18]
@@ -957,7 +957,7 @@ _020515BA:
add r1, #0x84
ldrb r1, [r1, #0x0]
ldr r0, [r4, #0x50]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
bl FUN_020690E4
add r2, r0, #0x0
ldr r0, [r4, #0x28]
@@ -1482,7 +1482,7 @@ _02051A16:
ldrb r1, [r1, #0x0]
ldr r0, [sp, #0x0]
sub r1, r1, #0x1
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r4, #0x0
add r2, r6, #0x0
bl MI_CpuCopy8
@@ -1720,7 +1720,7 @@ _02051BD6:
mov r1, #0x5
add r0, r0, r6
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r0, #0x0
ldr r0, [sp, #0x18]
ldr r2, [r5, #0xc]
diff --git a/arm9/asm/unk_020520AC.s b/arm9/asm/unk_020520AC.s
index 1fed433c..a0ca6cae 100644
--- a/arm9/asm/unk_020520AC.s
+++ b/arm9/asm/unk_020520AC.s
@@ -1208,7 +1208,7 @@ _0205289C:
ldr r0, [r0, r1]
pop {r4-r6, pc}
_020528A4:
- bl rand_LC
+ bl LCRandom
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
@@ -1222,7 +1222,7 @@ _020528A4:
ldr r0, [r1, r0]
pop {r4-r6, pc}
_020528C0:
- bl rand_LC
+ bl LCRandom
lsr r2, r0, #0x1f
lsl r1, r0, #0x1e
sub r1, r1, r2
@@ -1236,7 +1236,7 @@ _020528C0:
ldr r0, [r1, r0]
pop {r4-r6, pc}
_020528DC:
- bl rand_LC
+ bl LCRandom
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
@@ -1250,7 +1250,7 @@ _020528DC:
ldr r0, [r1, r0]
pop {r4-r6, pc}
_020528F8:
- bl rand_LC
+ bl LCRandom
lsr r2, r0, #0x1f
lsl r1, r0, #0x1e
sub r1, r1, r2
@@ -1264,7 +1264,7 @@ _020528F8:
ldr r0, [r1, r0]
pop {r4-r6, pc}
_02052914:
- bl rand_LC
+ bl LCRandom
lsr r2, r0, #0x1f
lsl r1, r0, #0x1e
sub r1, r1, r2
@@ -1278,7 +1278,7 @@ _02052914:
ldr r0, [r1, r0]
pop {r4-r6, pc}
_02052930:
- bl rand_LC
+ bl LCRandom
lsr r2, r0, #0x1f
lsl r1, r0, #0x1e
sub r1, r1, r2
diff --git a/arm9/asm/unk_02054C14.s b/arm9/asm/unk_02054C14.s
index 46c1432a..cdf629de 100644
--- a/arm9/asm/unk_02054C14.s
+++ b/arm9/asm/unk_02054C14.s
@@ -289,7 +289,7 @@ FUN_02054DEC: ; 0x02054DEC
push {r3-r7, lr}
add r6, r0, #0x0
bl FUN_0206BB1C
- bl FUN_0206B9AC
+ bl GetPartyCount
lsl r0, r0, #0x10
lsr r5, r0, #0x10
ldr r4, _02054E2C ; =0x00000000
@@ -299,10 +299,10 @@ _02054E02:
add r0, r6, #0x0
bl FUN_0206BB1C
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r7, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _02054E1E
add r0, r4, #0x0
@@ -326,7 +326,7 @@ FUN_02054E30: ; 0x02054E30
mov r7, #0x0
bl FUN_0206BB1C
str r0, [sp, #0x0]
- bl FUN_0206B9AC
+ bl GetPartyCount
add r4, r0, #0x0
add r6, r7, #0x0
cmp r4, #0x0
@@ -335,10 +335,10 @@ FUN_02054E30: ; 0x02054E30
_02054E4A:
ldr r0, [sp, #0x0]
add r1, r6, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x0]
add r6, r6, #0x1
add r5, r5, #0x2
@@ -396,7 +396,7 @@ FUN_02054EA0: ; 0x02054EA0
str r0, [sp, #0x8]
ldrh r0, [r4, #0xe]
ldr r5, [r4, #0x4]
- bl FUN_0201B93C
+ bl Sin
asr r1, r0, #0x1f
asr r3, r5, #0x1f
add r2, r5, #0x0
@@ -412,7 +412,7 @@ FUN_02054EA0: ; 0x02054EA0
str r1, [sp, #0x0]
ldrh r0, [r4, #0xe]
ldr r5, [r4, #0x8]
- bl FUN_0201B93C
+ bl Sin
asr r1, r0, #0x1f
asr r3, r5, #0x1f
add r2, r5, #0x0
diff --git a/arm9/asm/unk_02059F04.s b/arm9/asm/unk_02059F04.s
index 6f87a464..310d4f03 100644
--- a/arm9/asm/unk_02059F04.s
+++ b/arm9/asm/unk_02059F04.s
@@ -1627,7 +1627,7 @@ FUN_0205AAB0: ; 0x0205AAB0
push {r4-r6, lr}
add r5, r0, #0x0
add r4, r1, #0x0
- bl rand_LC
+ bl LCRandom
add r6, r0, #0x0
add r0, r5, #0x0
add r1, r4, #0x0
@@ -1646,7 +1646,7 @@ FUN_0205AAD4: ; 0x0205AAD4
add r5, r1, #0x0
bl FUN_0205AAFC
add r4, r0, #0x0
- bl rand_LC
+ bl LCRandom
add r6, r0, #0x0
add r0, r4, #0x0
add r1, r5, #0x0
diff --git a/arm9/asm/unk_0205DD18.s b/arm9/asm/unk_0205DD18.s
index 89ed6bcb..f5987509 100644
--- a/arm9/asm/unk_0205DD18.s
+++ b/arm9/asm/unk_0205DD18.s
@@ -108,7 +108,7 @@ _0205DDC2:
mov r6, #0x0
b _0205DDF2
_0205DDCA:
- bl rand_LC
+ bl LCRandom
add r6, r0, #0x0
ldr r0, _0205DED0 ; =0x0000FFFF
add r1, r4, #0x0
@@ -259,7 +259,7 @@ _0205DEE0:
str r0, [r5, #0x2c]
cmp r0, #0x0
bne _0205DF24
- bl rand_LC
+ bl LCRandom
mov r1, #0x29
lsl r1, r1, #0x4
bl _s32_div_f
@@ -806,7 +806,7 @@ _0205E2D6:
bne _0205E2DC
add r6, r7, #0x0
_0205E2DC:
- bl rand_LC
+ bl LCRandom
mov r1, #0x29
lsl r1, r1, #0x4
bl _s32_div_f
@@ -979,7 +979,7 @@ _0205E430:
mov r4, #0x0
b _0205E46A
_0205E43C:
- bl rand_LC
+ bl LCRandom
add r4, r0, #0x0
lsl r1, r5, #0x10
ldr r0, _0205E47C ; =0x0000FFFF
diff --git a/arm9/asm/unk_0205EC84.s b/arm9/asm/unk_0205EC84.s
index 25427134..93afcc59 100644
--- a/arm9/asm/unk_0205EC84.s
+++ b/arm9/asm/unk_0205EC84.s
@@ -541,7 +541,7 @@ _0205F036:
bl FUN_0205EC94
cmp r0, #0x1
bne _0205F054
- bl FUN_0201277C
+ bl IsNighttime
cmp r0, #0x0
bne _0205F050
mov r5, #0xfe
@@ -566,7 +566,7 @@ _0205F06A:
bl FUN_0205EC94
cmp r0, #0x1
bne _0205F0E0
- bl FUN_0201277C
+ bl IsNighttime
cmp r0, #0x0
bne _0205F080
ldr r5, _0205F128 ; =0x000003F5
@@ -579,7 +579,7 @@ _0205F084:
bl FUN_0205EC94
cmp r0, #0x1
bne _0205F0E0
- bl FUN_0201277C
+ bl IsNighttime
cmp r0, #0x0
bne _0205F09A
ldr r5, _0205F134 ; =0x000003FF
@@ -592,7 +592,7 @@ _0205F09E:
bl FUN_0205EC94
cmp r0, #0x1
bne _0205F0E0
- bl FUN_0201277C
+ bl IsNighttime
cmp r0, #0x0
bne _0205F0B4
ldr r5, _0205F140 ; =0x000003EE
@@ -605,7 +605,7 @@ _0205F0B8:
bl FUN_0205EC94
cmp r0, #0x1
bne _0205F0E0
- bl FUN_0201277C
+ bl IsNighttime
cmp r0, #0x0
bne _0205F0CE
ldr r5, _0205F140 ; =0x000003EE
diff --git a/arm9/asm/unk_0205F314.s b/arm9/asm/unk_0205F314.s
index 73ed491e..8c2f6e55 100644
--- a/arm9/asm/unk_0205F314.s
+++ b/arm9/asm/unk_0205F314.s
@@ -434,9 +434,9 @@ _0205F5F8: .word 0x0000403D
FUN_0205F5FC: ; 0x0205F5FC
push {r3-r5, lr}
add r5, r0, #0x0
- bl rand_LC
+ bl LCRandom
add r4, r0, #0x0
- bl rand_LC
+ bl LCRandom
add r1, r0, #0x0
lsl r1, r1, #0x10
add r0, r5, #0x0
@@ -489,7 +489,7 @@ FUN_0205F668: ; 0x0205F668
push {r4, lr}
bl FUN_020462AC
add r4, r0, #0x0
- bl rand_LC
+ bl LCRandom
mov r1, #0x62
bl _s32_div_f
add r1, r1, #0x2
diff --git a/arm9/asm/unk_0205FA2C.s b/arm9/asm/unk_0205FA2C.s
index 21beb029..c06deaff 100644
--- a/arm9/asm/unk_0205FA2C.s
+++ b/arm9/asm/unk_0205FA2C.s
@@ -175,7 +175,7 @@ FUN_0205FB34: ; 0x0205FB34
ldrb r0, [r6, #0xd]
strb r0, [r4, #0x14]
ldr r0, [r4, #0x0]
- bl FUN_0206B9AC
+ bl GetPartyCount
strb r0, [r4, #0x13]
mov r0, #0x0
strh r0, [r4, #0x18]
diff --git a/arm9/asm/unk_020603B0.s b/arm9/asm/unk_020603B0.s
index 53b84d9a..2d48faec 100644
--- a/arm9/asm/unk_020603B0.s
+++ b/arm9/asm/unk_020603B0.s
@@ -88,7 +88,7 @@ _020603F6:
bl FUN_0202AA74
cmp r0, #0x0
beq _02060430
- bl rand_LC
+ bl LCRandom
lsl r0, r0, #0x4
lsr r6, r0, #0x10
cmp r6, #0x10
@@ -242,7 +242,7 @@ _020604D0:
ldr r0, [sp, #0x1c]
mov r1, #0xae
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
add r0, r4, #0x0
mov r1, #0x2
@@ -250,7 +250,7 @@ _020604D0:
mov r1, #0x0
ldr r0, [sp, #0x1c]
add r2, r1, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
add r0, r4, #0x0
mov r1, #0x3
@@ -258,7 +258,7 @@ _020604D0:
ldr r0, [sp, #0x1c]
mov r1, #0xa3
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
add r0, r4, #0x0
mov r1, #0x5
@@ -289,7 +289,7 @@ FUN_02060588: ; 0x02060588
lsl r0, r0, #0x2
ldr r4, [r7, r0]
_0206059C:
- bl rand_LC
+ bl LCRandom
ldr r1, _020605D4 ; =0x000008D4
bl _s32_div_f
lsl r0, r0, #0x10
@@ -361,7 +361,7 @@ _02060628:
mov r6, #0x0
b _02060658
_02060630:
- bl rand_LC
+ bl LCRandom
add r6, r0, #0x0
ldr r0, _02060684 ; =0x0000FFFF
add r1, r5, #0x0
diff --git a/arm9/asm/unk_02060CCC.s b/arm9/asm/unk_02060CCC.s
index 2910f716..15021367 100644
--- a/arm9/asm/unk_02060CCC.s
+++ b/arm9/asm/unk_02060CCC.s
@@ -323,7 +323,7 @@ FUN_02060E04: ; 0x02060E04
add r0, r6, #0x0
mov r1, #0x76
add r2, r4, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r0, r4, #0x0
add r1, r5, #0x0
mov r2, #0xb
@@ -342,22 +342,22 @@ FUN_02060E34: ; 0x02060E34
mov r1, #0x5
mov r2, #0x0
add r7, r3, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x0]
add r0, r5, #0x0
mov r1, #0x6f
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r6, #0x0]
add r0, r5, #0x0
mov r1, #0xc
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r7, #0x0]
add r0, r5, #0x0
mov r1, #0x79
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0x18]
strb r0, [r1, #0x0]
pop {r3-r7, pc}
@@ -420,7 +420,7 @@ FUN_02060ECC: ; 0x02060ECC
mov r1, #0x4d
mov r2, #0x0
add r7, r3, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r4, #0x0]
ldrb r0, [r4, #0x0]
cmp r0, #0x0
@@ -432,7 +432,7 @@ FUN_02060ECC: ; 0x02060ECC
add r0, r5, #0x0
mov r1, #0x76
add r2, r4, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r0, r4, #0x0
add r1, r7, #0x0
mov r2, #0xb
@@ -479,7 +479,7 @@ FUN_02060F3C: ; 0x02060F3C
mov r0, #0x0
strb r0, [r4, #0x1f]
add r0, r5, #0x0
- bl GetMonNatureEncrypted
+ bl GetMonNature
strb r0, [r4, #0x1e]
add r0, r4, #0x6
str r0, [sp, #0x0]
@@ -491,7 +491,7 @@ FUN_02060F3C: ; 0x02060F3C
add r0, r5, #0x0
mov r1, #0x4d
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r4, #0x7]
add r2, r4, #0x7
add r4, #0x8
@@ -624,7 +624,7 @@ FUN_02061028: ; 0x02061028
add r0, r4, #0x0
mov r1, #0x9a
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x22]
ldrh r0, [r5, #0x22]
cmp r0, #0x0
@@ -1200,7 +1200,7 @@ FUN_02061498: ; 0x02061498
ldrb r3, [r4, #0x2]
add r0, r5, #0x0
bl FUN_02060D90
- bl rand_LC
+ bl LCRandom
ldr r1, _020614F8 ; =0x00003334
bl _s32_div_f
lsl r0, r0, #0x10
@@ -1535,7 +1535,7 @@ FUN_02061750: ; 0x02061750
sub r0, #0x95
lsl r0, r0, #0x10
lsr r0, r0, #0x10
- bl FUN_020852E8
+ bl GetNutName
add r4, r0, #0x0
mov r1, #0x1
str r1, [sp, #0x0]
@@ -1559,7 +1559,7 @@ FUN_02061798: ; 0x02061798
add r0, sp, #0x4
add r4, r1, #0x0
strb r2, [r0, #0x6]
- bl rand_MT
+ bl MTRandom
mov r1, #0x3
bl _u32_div_f
add r0, sp, #0x4
@@ -1608,7 +1608,7 @@ FUN_020617D8: ; 0x020617D8
ldrb r3, [r4, #0x2]
add r0, r5, #0x0
bl FUN_02060E70
- bl rand_LC
+ bl LCRandom
ldr r1, _02061830 ; =0x00005556
bl _s32_div_f
lsl r0, r0, #0x10
@@ -2728,7 +2728,7 @@ FUN_020620A0: ; 0x020620A0
_020620BE:
cmp r4, #0x1
ble _020620D0
- bl rand_MT
+ bl MTRandom
add r1, r4, #0x0
bl _u32_div_f
add r5, r1, #0x0
@@ -2762,7 +2762,7 @@ _020620F8:
beq _02062100
bl ErrorHandling
_02062100:
- bl rand_LC
+ bl LCRandom
mov r1, #0xf1
lsl r1, r1, #0x4
bl _s32_div_f
@@ -2821,7 +2821,7 @@ FUN_02062170: ; 0x02062170
push {r3-r7, lr}
add r6, r0, #0x0
add r7, r1, #0x0
- bl rand_LC
+ bl LCRandom
ldr r1, _02062234 ; =0x00003334
bl _s32_div_f
lsl r0, r0, #0x10
@@ -2865,7 +2865,7 @@ _020621BC: ; jump table (using 16-bit offset)
.short _0206222C - _020621BC - 2; case 10
.short _02062228 - _020621BC - 2; case 11
_020621D4:
- bl rand_LC
+ bl LCRandom
lsl r0, r0, #0x2
lsr r4, r0, #0x10
cmp r4, #0x4
@@ -3006,7 +3006,7 @@ _020622C0: .word UNK_020F78A6
FUN_020622C4: ; 0x020622C4
push {r4-r6, lr}
add r6, r1, #0x0
- bl rand_LC
+ bl LCRandom
mov r1, #0xf1
lsl r1, r1, #0x4
bl _s32_div_f
@@ -3020,7 +3020,7 @@ _020622E0:
blt _020622E6
add r5, r5, #0x1
_020622E6:
- bl rand_LC
+ bl LCRandom
mov r1, #0xf1
lsl r1, r1, #0x4
bl _s32_div_f
@@ -3130,7 +3130,7 @@ _020623A4:
mov r5, #0x0
b _020623DE
_020623B0:
- bl rand_LC
+ bl LCRandom
add r5, r0, #0x0
lsl r1, r4, #0x10
ldr r0, _020623F0 ; =0x0000FFFF
@@ -3251,7 +3251,7 @@ _02062496:
mov r5, #0x0
b _020624C6
_0206249E:
- bl rand_LC
+ bl LCRandom
add r5, r0, #0x0
ldr r0, _02062504 ; =0x0000FFFF
add r1, r4, #0x0
@@ -3335,7 +3335,7 @@ FUN_0206252C: ; 0x0206252C
add r4, r0, #0x0
cmp r4, #0x1
ble _02062552
- bl rand_MT
+ bl MTRandom
add r1, r4, #0x0
bl _u32_div_f
add r5, r1, #0x0
diff --git a/arm9/asm/unk_0206439C.s b/arm9/asm/unk_0206439C.s
index e9d72f9f..76ea9f7f 100644
--- a/arm9/asm/unk_0206439C.s
+++ b/arm9/asm/unk_0206439C.s
@@ -14,7 +14,7 @@ FUN_0206439C: ; 0x0206439C
add r0, r6, #0x0
bl FUN_0206BB1C
add r1, r5, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [r4, #0x0]
mov r0, #0x0
str r0, [r4, #0x4]
diff --git a/arm9/asm/unk_020653EC.s b/arm9/asm/unk_020653EC.s
index 2aea9e30..ec33a0a1 100644
--- a/arm9/asm/unk_020653EC.s
+++ b/arm9/asm/unk_020653EC.s
@@ -1617,7 +1617,7 @@ FUN_02066070: ; 0x02066070
lsl r1, r1, #0x4
str r0, [r6, r1]
add r0, r5, #0x0
- bl FUN_020256BC
+ bl CreateNewSealsObject
add r7, r0, #0x0
add r0, r6, #0x0
str r0, [sp, #0x10]
@@ -1810,7 +1810,7 @@ FUN_020661F8: ; 0x020661F8
bl FUN_020377AC
bl FUN_0206BB1C
add r1, r7, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r2, r0, #0x0
mov r0, #0x6b
lsl r0, r0, #0x2
diff --git a/arm9/asm/unk_0206AB04.s b/arm9/asm/unk_0206AB04.s
deleted file mode 100644
index c523eb3b..00000000
--- a/arm9/asm/unk_0206AB04.s
+++ /dev/null
@@ -1,124 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .text
-
- thumb_func_start FUN_0206AB04
-FUN_0206AB04: ; 0x0206AB04
- push {r3, lr}
- mov r1, #0x75
- lsl r1, r1, #0x6
- mov r2, #0x0
- str r1, [sp, #0x0]
- mov r1, #0x9
- add r3, r2, #0x0
- bl ReadFromNarcMemberByIdPair
- pop {r3, pc}
-
- thumb_func_start FUN_0206AB18
-FUN_0206AB18: ; 0x0206AB18
- push {r4, lr}
- sub sp, #0x10
- add r4, r1, #0x0
- add r1, sp, #0x0
- bl FUN_0206ABB4
- add r0, sp, #0x0
- add r1, r4, #0x0
- bl FUN_0206AB58
- add sp, #0x10
- pop {r4, pc}
-
- thumb_func_start FUN_0206AB30
-FUN_0206AB30: ; 0x0206AB30
- push {r3-r5, lr}
- add r5, r1, #0x0
- cmp r5, #0x3
- bls _0206AB3A
- mov r5, #0x3
-_0206AB3A:
- mov r1, #0x5
- bl FUN_0206AB18
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- mov r0, #0x14
- mul r0, r4
- mul r0, r5
- mov r1, #0x64
- bl _s32_div_f
- add r0, r4, r0
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- pop {r3-r5, pc}
-
- thumb_func_start FUN_0206AB58
-FUN_0206AB58: ; 0x0206AB58
- cmp r1, #0xb
- bhi _0206ABB0
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #0x6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0206AB68: ; jump table (using 16-bit offset)
- .short _0206AB80 - _0206AB68 - 2; case 0
- .short _0206AB84 - _0206AB68 - 2; case 1
- .short _0206AB88 - _0206AB68 - 2; case 2
- .short _0206AB8C - _0206AB68 - 2; case 3
- .short _0206AB90 - _0206AB68 - 2; case 4
- .short _0206AB94 - _0206AB68 - 2; case 5
- .short _0206AB98 - _0206AB68 - 2; case 6
- .short _0206AB9C - _0206AB68 - 2; case 7
- .short _0206ABA0 - _0206AB68 - 2; case 8
- .short _0206ABA6 - _0206AB68 - 2; case 9
- .short _0206ABAA - _0206AB68 - 2; case 10
- .short _0206ABAE - _0206AB68 - 2; case 11
-_0206AB80:
- ldrh r0, [r0, #0x0]
- bx lr
-_0206AB84:
- ldrb r0, [r0, #0x2]
- bx lr
-_0206AB88:
- ldrb r0, [r0, #0x3]
- bx lr
-_0206AB8C:
- ldrb r0, [r0, #0x4]
- bx lr
-_0206AB90:
- ldrb r0, [r0, #0x5]
- bx lr
-_0206AB94:
- ldrb r0, [r0, #0x6]
- bx lr
-_0206AB98:
- ldrb r0, [r0, #0x7]
- bx lr
-_0206AB9C:
- ldrh r0, [r0, #0x8]
- bx lr
-_0206ABA0:
- mov r1, #0xa
- ldrsb r0, [r0, r1]
- bx lr
-_0206ABA6:
- ldrb r0, [r0, #0xb]
- bx lr
-_0206ABAA:
- ldrb r0, [r0, #0xc]
- bx lr
-_0206ABAE:
- ldrb r0, [r0, #0xd]
-_0206ABB0:
- bx lr
- .balign 4
-
- thumb_func_start FUN_0206ABB4
-FUN_0206ABB4: ; 0x0206ABB4
- ldr r3, _0206ABC0 ; =ReadWholeNarcMemberByIdPair
- add r2, r0, #0x0
- add r0, r1, #0x0
- mov r1, #0x9
- bx r3
- nop
-_0206ABC0: .word ReadWholeNarcMemberByIdPair
diff --git a/arm9/asm/unk_0206ABC4.s b/arm9/asm/unk_0206ABC4.s
index 776bd5c3..cbc45e09 100644
--- a/arm9/asm/unk_0206ABC4.s
+++ b/arm9/asm/unk_0206ABC4.s
@@ -328,7 +328,7 @@ FUN_0206AE0C: ; 0x0206AE0C
add r7, r1, #0x0
add r4, r0, #0x0
add r5, r2, #0x0
- bl getseed_LC
+ bl GetLCRNGSeed
lsl r6, r7, #0x2
str r0, [sp, #0x44]
add r0, r4, r6
@@ -402,7 +402,7 @@ _0206AE96:
add r0, r0, r2
add r7, r1, r0
add r0, r7, #0x0
- bl seedr_LC
+ bl SetLCRNGSeed
add r0, r4, r5
add r0, #0x29
ldrb r0, [r0, #0x0]
@@ -410,7 +410,7 @@ _0206AE96:
cmp r0, #0x0
ble _0206AECE
_0206AEBC:
- bl rand_LC
+ bl LCRandom
add r7, r0, #0x0
add r0, r4, r5
add r0, #0x29
@@ -486,7 +486,7 @@ _0206AF3E:
add r0, r0, r2
add r7, r1, r0
add r0, r7, #0x0
- bl seedr_LC
+ bl SetLCRNGSeed
add r0, r4, r5
add r0, #0x29
ldrb r0, [r0, #0x0]
@@ -494,7 +494,7 @@ _0206AF3E:
cmp r0, #0x0
ble _0206AF76
_0206AF64:
- bl rand_LC
+ bl LCRandom
add r7, r0, #0x0
add r0, r4, r5
add r0, #0x29
@@ -579,7 +579,7 @@ _0206AFFC:
add r0, r0, r2
add r0, r1, r0
str r0, [sp, #0x14]
- bl seedr_LC
+ bl SetLCRNGSeed
add r0, r4, r5
add r0, #0x29
ldrb r0, [r0, #0x0]
@@ -587,7 +587,7 @@ _0206AFFC:
cmp r0, #0x0
ble _0206B030
_0206B01E:
- bl rand_LC
+ bl LCRandom
str r0, [sp, #0x14]
add r0, r4, r5
add r0, #0x29
@@ -622,7 +622,7 @@ _0206B030:
ldr r0, [sp, #0x40]
mov r1, #0x6
add r2, r7, #0x6
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0x34]
ldr r1, [sp, #0x40]
ldr r0, [r0, #0x4]
@@ -663,7 +663,7 @@ _0206B0A2:
add r0, r0, r2
add r7, r1, r0
add r0, r7, #0x0
- bl seedr_LC
+ bl SetLCRNGSeed
add r0, r4, r5
add r0, #0x29
ldrb r0, [r0, #0x0]
@@ -671,7 +671,7 @@ _0206B0A2:
cmp r0, #0x0
ble _0206B0DA
_0206B0C8:
- bl rand_LC
+ bl LCRandom
add r7, r0, #0x0
add r0, r4, r5
add r0, #0x29
@@ -709,7 +709,7 @@ _0206B0DA:
ldr r0, [sp, #0x40]
mov r1, #0x6
add r2, r2, #0x6
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r7, [sp, #0x3c]
mov r6, #0x0
_0206B120:
@@ -744,6 +744,6 @@ _0206B156:
ldr r0, [sp, #0x40]
bl FreeToHeap
ldr r0, [sp, #0x44]
- bl seedr_LC
+ bl SetLCRNGSeed
add sp, #0x50
pop {r3-r7, pc}
diff --git a/arm9/asm/unk_0206B16C.s b/arm9/asm/unk_0206B16C.s
index b6ec1416..f454c441 100644
--- a/arm9/asm/unk_0206B16C.s
+++ b/arm9/asm/unk_0206B16C.s
@@ -28,7 +28,7 @@ _0206B188:
add r5, r6, #0x0
_0206B18C:
add r0, r5, #0x0
- bl WipeBoxMonDataAndEncrypt
+ bl ZeroBoxMonData
add r4, r4, #0x1
add r5, #0x88
cmp r4, #0x1e
@@ -149,7 +149,7 @@ _0206B270:
add r0, r5, #0x0
add r1, r6, #0x0
add r2, r7, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0x0
bne _0206B2A0
mov r0, #0x88
@@ -241,7 +241,7 @@ _0206B308:
mov r0, #0x88
mul r0, r2
add r0, r1, r0
- bl WipeBoxMonDataAndEncrypt
+ bl ZeroBoxMonData
bl FUN_02022830
pop {r3, pc}
_0206B32A:
@@ -274,7 +274,7 @@ _0206B350:
add r0, r5, #0x0
add r1, r7, #0x0
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0x0
bne _0206B364
add sp, #0x8
@@ -327,7 +327,7 @@ _0206B3A2:
add r0, r1, r0
mov r1, #0xab
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0x0
bne _0206B3C6
ldr r0, [sp, #0x0]
@@ -371,7 +371,7 @@ _0206B3F6:
add r0, r5, #0x0
add r1, r7, #0x0
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0x0
beq _0206B406
add r6, r6, #0x1
@@ -521,7 +521,7 @@ _0206B504:
add r0, r5, #0x0
add r1, r7, #0x0
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0x0
beq _0206B514
add r4, r4, #0x1
@@ -560,13 +560,13 @@ _0206B548:
add r0, r5, #0x0
add r1, r7, #0x0
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0x0
beq _0206B566
add r0, r5, #0x0
mov r1, #0x4c
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0x0
bne _0206B566
add r4, r4, #0x1
@@ -635,7 +635,7 @@ _0206B5C4:
add r0, r1, r0
ldr r2, [sp, #0x18]
add r1, r7, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
bl FUN_02022830
pop {r3-r7, pc}
.balign 4
diff --git a/arm9/asm/unk_0206B688.s b/arm9/asm/unk_0206B688.s
index 2e4a392b..9b6e863e 100644
--- a/arm9/asm/unk_0206B688.s
+++ b/arm9/asm/unk_0206B688.s
@@ -46,17 +46,17 @@ UNK_020F8074: ; 0x020F8074
FUN_0206B688: ; 0x0206B688
push {r3-r7, lr}
add r5, r0, #0x0
- bl TryDecryptBoxMon
+ bl AcquireBoxMonLock
add r7, r0, #0x0
add r0, r5, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x4c
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r6, r0, #0x0
add r0, r5, #0x0
bl FUN_0206B754
@@ -67,7 +67,7 @@ FUN_0206B688: ; 0x0206B688
add r4, r0, #0x0
add r0, r5, #0x0
add r1, r7, #0x0
- bl TryEncryptBoxMon
+ bl ReleaseBoxMonLock
add r0, r4, #0x0
pop {r3-r7, pc}
@@ -158,7 +158,7 @@ FUN_0206B754: ; 0x0206B754
mov r1, #0xad
mov r2, #0x0
add r4, r0, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
ldr r2, _0206B7B8 ; =0x0000019D
cmp r0, r2
bhi _0206B784
@@ -201,7 +201,7 @@ _0206B7A4:
add r0, r4, #0x0
mov r1, #0x70
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
pop {r4, pc}
@@ -289,7 +289,7 @@ _0206B838: .word UNK_020F8074
FUN_0206B83C: ; 0x0206B83C
push {r3-r7, lr}
add r5, r0, #0x0
- bl TryDecryptBoxMon
+ bl AcquireBoxMonLock
add r4, r0, #0x0
add r0, r5, #0x0
bl FUN_0206B754
@@ -297,16 +297,16 @@ FUN_0206B83C: ; 0x0206B83C
add r0, r5, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r7, r0, #0x0
add r0, r5, #0x0
mov r1, #0x4c
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
str r0, [sp, #0x0]
add r0, r5, #0x0
add r1, r4, #0x0
- bl TryEncryptBoxMon
+ bl ReleaseBoxMonLock
ldr r2, [sp, #0x0]
add r0, r7, #0x0
add r1, r6, #0x0
diff --git a/arm9/asm/unk_0206B8A4.s b/arm9/asm/unk_0206B8A4.s
deleted file mode 100644
index 6938e252..00000000
--- a/arm9/asm/unk_0206B8A4.s
+++ /dev/null
@@ -1,367 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .text
-
- thumb_func_start FUN_0206B8A4
-FUN_0206B8A4: ; 0x0206B8A4
- mov r0, #0x59
- lsl r0, r0, #0x4
- bx lr
- .balign 4
-
- thumb_func_start FUN_0206B8AC
-FUN_0206B8AC: ; 0x0206B8AC
- push {r4, lr}
- mov r1, #0x59
- lsl r1, r1, #0x4
- bl AllocFromHeap
- add r4, r0, #0x0
- bl FUN_0206B8C0
- add r0, r4, #0x0
- pop {r4, pc}
-
- thumb_func_start FUN_0206B8C0
-FUN_0206B8C0: ; 0x0206B8C0
- ldr r3, _0206B8C8 ; =FUN_0206B8CC
- mov r1, #0x6
- bx r3
- nop
-_0206B8C8: .word FUN_0206B8CC
-
- thumb_func_start FUN_0206B8CC
-FUN_0206B8CC: ; 0x0206B8CC
- push {r4-r6, lr}
- add r6, r1, #0x0
- add r5, r0, #0x0
- cmp r6, #0x6
- ble _0206B8DA
- bl ErrorHandling
-_0206B8DA:
- mov r2, #0x59
- add r0, r5, #0x0
- mov r1, #0x0
- lsl r2, r2, #0x4
- bl memset
- mov r4, #0x0
- str r4, [r5, #0x4]
- str r6, [r5, #0x0]
- add r5, #0x8
-_0206B8EE:
- add r0, r5, #0x0
- bl ZeroMonData
- add r4, r4, #0x1
- add r5, #0xec
- cmp r4, #0x6
- blt _0206B8EE
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_0206B900
-FUN_0206B900: ; 0x0206B900
- push {r4-r5}
- add r3, r0, #0x0
- add r2, r1, #0x0
- ldr r1, [r3, #0x4]
- ldr r0, [r3, #0x0]
- cmp r1, r0
- blt _0206B914
- mov r0, #0x0
- pop {r4-r5}
- bx lr
-_0206B914:
- mov r0, #0xec
- mul r0, r1
- add r5, r3, r0
- add r5, #0x8
- mov r4, #0x1d
-_0206B91E:
- ldmia r2!, {r0-r1}
- stmia r5!, {r0-r1}
- sub r4, r4, #0x1
- bne _0206B91E
- ldr r0, [r2, #0x0]
- str r0, [r5, #0x0]
- ldr r0, [r3, #0x4]
- add r0, r0, #0x1
- str r0, [r3, #0x4]
- mov r0, #0x1
- pop {r4-r5}
- bx lr
- .balign 4
-
- thumb_func_start FUN_0206B938
-FUN_0206B938: ; 0x0206B938
- push {r3-r7, lr}
- add r7, r0, #0x0
- add r4, r1, #0x0
- bpl _0206B944
- bl ErrorHandling
-_0206B944:
- ldr r0, [r7, #0x4]
- cmp r4, r0
- blt _0206B94E
- bl ErrorHandling
-_0206B94E:
- ldr r0, [r7, #0x0]
- cmp r4, r0
- blt _0206B958
- bl ErrorHandling
-_0206B958:
- ldr r0, [r7, #0x4]
- cmp r0, #0x0
- bgt _0206B962
- bl ErrorHandling
-_0206B962:
- ldr r0, [r7, #0x4]
- sub r0, r0, #0x1
- cmp r4, r0
- bge _0206B992
- mov r0, #0xec
- mul r0, r4
- add r6, r7, r0
-_0206B970:
- add r5, r6, #0x0
- add r3, r6, #0x0
- add r5, #0xf4
- add r3, #0x8
- mov r2, #0x1d
-_0206B97A:
- ldmia r5!, {r0-r1}
- stmia r3!, {r0-r1}
- sub r2, r2, #0x1
- bne _0206B97A
- ldr r0, [r5, #0x0]
- add r4, r4, #0x1
- str r0, [r3, #0x0]
- ldr r0, [r7, #0x4]
- add r6, #0xec
- sub r0, r0, #0x1
- cmp r4, r0
- blt _0206B970
-_0206B992:
- add r1, r7, #0x0
- mov r0, #0xec
- add r1, #0x8
- mul r0, r4
- add r0, r1, r0
- bl ZeroMonData
- ldr r0, [r7, #0x4]
- sub r0, r0, #0x1
- str r0, [r7, #0x4]
- mov r0, #0x1
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0206B9AC
-FUN_0206B9AC: ; 0x0206B9AC
- ldr r0, [r0, #0x4]
- bx lr
-
- thumb_func_start FUN_0206B9B0
-FUN_0206B9B0: ; 0x0206B9B0
- push {r3-r5, lr}
- add r5, r0, #0x0
- add r4, r1, #0x0
- bpl _0206B9BC
- bl ErrorHandling
-_0206B9BC:
- ldr r0, [r5, #0x4]
- cmp r4, r0
- blt _0206B9C6
- bl ErrorHandling
-_0206B9C6:
- ldr r0, [r5, #0x0]
- cmp r4, r0
- blt _0206B9D0
- bl ErrorHandling
-_0206B9D0:
- mov r0, #0xec
- add r5, #0x8
- mul r0, r4
- add r0, r5, r0
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_0206B9DC
-FUN_0206B9DC: ; 0x0206B9DC
- push {r3-r7, lr}
- add r4, r1, #0x0
- add r5, r0, #0x0
- add r6, r2, #0x0
- cmp r4, #0x0
- bge _0206B9EC
- bl ErrorHandling
-_0206B9EC:
- ldr r0, [r5, #0x4]
- cmp r4, r0
- blt _0206B9F6
- bl ErrorHandling
-_0206B9F6:
- ldr r0, [r5, #0x0]
- cmp r4, r0
- blt _0206BA00
- bl ErrorHandling
-_0206BA00:
- add r1, r5, #0x0
- mov r0, #0xec
- add r1, #0x8
- mul r0, r4
- add r4, r1, r0
- add r0, r4, #0x0
- mov r1, #0xab
- mov r2, #0x0
- bl GetMonDataEncrypted
- add r7, r0, #0x0
- add r0, r6, #0x0
- mov r1, #0xab
- mov r2, #0x0
- bl GetMonDataEncrypted
- sub r2, r7, r0
- mov r3, #0x1d
-_0206BA24:
- ldmia r6!, {r0-r1}
- stmia r4!, {r0-r1}
- sub r3, r3, #0x1
- bne _0206BA24
- ldr r0, [r6, #0x0]
- str r0, [r4, #0x0]
- ldr r0, [r5, #0x4]
- add r0, r0, r2
- str r0, [r5, #0x4]
- pop {r3-r7, pc}
-
- thumb_func_start FUN_0206BA38
-FUN_0206BA38: ; 0x0206BA38
- push {r3-r7, lr}
- add r5, r1, #0x0
- add r4, r0, #0x0
- add r6, r2, #0x0
- cmp r5, #0x0
- bge _0206BA48
- bl ErrorHandling
-_0206BA48:
- ldr r0, [r4, #0x4]
- cmp r5, r0
- blt _0206BA52
- bl ErrorHandling
-_0206BA52:
- ldr r0, [r4, #0x0]
- cmp r5, r0
- blt _0206BA5C
- bl ErrorHandling
-_0206BA5C:
- cmp r6, #0x0
- bge _0206BA64
- bl ErrorHandling
-_0206BA64:
- ldr r0, [r4, #0x4]
- cmp r6, r0
- blt _0206BA6E
- bl ErrorHandling
-_0206BA6E:
- ldr r0, [r4, #0x0]
- cmp r6, r0
- blt _0206BA78
- bl ErrorHandling
-_0206BA78:
- mov r0, #0x0
- mov r1, #0xec
- bl AllocFromHeap
- mov r12, r0
- add r1, r4, #0x0
- mov r0, #0xec
- add r1, #0x8
- mul r0, r5
- add r3, r1, r0
- add r5, r3, #0x0
- mov r2, r12
- mov r7, #0x1d
-_0206BA92:
- ldmia r5!, {r0-r1}
- stmia r2!, {r0-r1}
- sub r7, r7, #0x1
- bne _0206BA92
- ldr r0, [r5, #0x0]
- add r4, #0x8
- str r0, [r2, #0x0]
- mov r0, #0xec
- mul r0, r6
- add r2, r4, r0
- add r5, r2, #0x0
- mov r4, #0x1d
-_0206BAAA:
- ldmia r5!, {r0-r1}
- stmia r3!, {r0-r1}
- sub r4, r4, #0x1
- bne _0206BAAA
- ldr r0, [r5, #0x0]
- mov r4, r12
- str r0, [r3, #0x0]
- mov r3, #0x1d
-_0206BABA:
- ldmia r4!, {r0-r1}
- stmia r2!, {r0-r1}
- sub r3, r3, #0x1
- bne _0206BABA
- ldr r0, [r4, #0x0]
- str r0, [r2, #0x0]
- mov r0, r12
- bl FreeToHeap
- mov r0, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_0206BAD0
-FUN_0206BAD0: ; 0x0206BAD0
- push {r3-r4}
- add r4, r0, #0x0
- add r3, r1, #0x0
- mov r2, #0xb2
-_0206BAD8:
- ldmia r4!, {r0-r1}
- stmia r3!, {r0-r1}
- sub r2, r2, #0x1
- bne _0206BAD8
- pop {r3-r4}
- bx lr
-
- thumb_func_start FUN_0206BAE4
-FUN_0206BAE4: ; 0x0206BAE4
- push {r3-r7, lr}
- add r6, r0, #0x0
- ldr r0, [r6, #0x4]
- add r7, r1, #0x0
- mov r4, #0x0
- cmp r0, #0x0
- ble _0206BB0E
- add r5, r6, #0x0
- add r5, #0x8
-_0206BAF6:
- add r0, r5, #0x0
- mov r1, #0x5
- mov r2, #0x0
- bl GetMonDataEncrypted
- cmp r7, r0
- beq _0206BB0E
- ldr r0, [r6, #0x4]
- add r4, r4, #0x1
- add r5, #0xec
- cmp r4, r0
- blt _0206BAF6
-_0206BB0E:
- ldr r0, [r6, #0x4]
- cmp r4, r0
- beq _0206BB18
- mov r0, #0x1
- pop {r3-r7, pc}
-_0206BB18:
- mov r0, #0x0
- pop {r3-r7, pc}
-
- thumb_func_start FUN_0206BB1C
-FUN_0206BB1C: ; 0x0206BB1C
- ldr r3, _0206BB24 ; =FUN_02022610
- mov r1, #0x2
- bx r3
- nop
-_0206BB24: .word FUN_02022610
diff --git a/arm9/asm/unk_0206BB5C.s b/arm9/asm/unk_0206BB5C.s
index 70465dd6..afcace47 100644
--- a/arm9/asm/unk_0206BB5C.s
+++ b/arm9/asm/unk_0206BB5C.s
@@ -34,7 +34,7 @@ FUN_0206BB84: ; 0x0206BB84
add r0, r7, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r6, r0, #0x10
cmp r4, #0x0
@@ -49,7 +49,7 @@ _0206BBA2:
add r0, r7, #0x0
mov r1, #0xa0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, r5
bls _0206BBBE
mov r0, #0x0
@@ -58,7 +58,7 @@ _0206BBBE:
add r0, r7, #0x0
mov r1, #0x4c
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _0206BBD0
mov r0, #0x0
@@ -193,7 +193,7 @@ _0206BCBC:
beq _0206BD0A
ldr r0, [sp, #0x4]
sub r1, r1, #0x1
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r4, r0, #0x0
ldr r0, [sp, #0x0]
ldr r2, [sp, #0x8]
@@ -208,17 +208,17 @@ _0206BCE2:
add r0, r4, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r7, #0x0]
add r0, r4, #0x0
mov r1, #0x6
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r6, #0x0]
add r0, r4, #0x0
mov r1, #0xa0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0x10]
add r0, r1, r0
str r0, [sp, #0x10]
@@ -407,7 +407,7 @@ FUN_0206BE48: ; 0x0206BE48
add r0, r1, #0x0
str r1, [sp, #0x10]
str r2, [sp, #0x14]
- bl FUN_0206B9AC
+ bl GetPartyCount
str r0, [sp, #0x20]
add r6, r0, #0x0
add r0, sp, #0x30
@@ -423,16 +423,16 @@ FUN_0206BE48: ; 0x0206BE48
_0206BE72:
ldr r0, [sp, #0x10]
add r1, r7, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [sp, #0x24]
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x0]
ldr r0, [sp, #0x24]
mov r1, #0xa0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x0]
ldr r0, [sp, #0xc]
ldr r1, [sp, #0x24]
diff --git a/arm9/asm/unk_0206C700.s b/arm9/asm/unk_0206C700.s
index 9265cbd9..81a90ae3 100644
--- a/arm9/asm/unk_0206C700.s
+++ b/arm9/asm/unk_0206C700.s
@@ -76,7 +76,7 @@ FUN_0206C700: ; 0x0206C700
mov r1, #0x5
mov r2, #0x0
str r0, [r4, #0x28]
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r4, #0x0
add r1, #0x60
strh r0, [r1, #0x0]
@@ -1040,11 +1040,11 @@ _0206CF7E:
ldr r0, [r4, #0x28]
mov r1, #0x5
add r2, #0x62
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [r4, #0x28]
bl FUN_0206A1C4
ldr r0, [r4, #0x28]
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
ldr r0, [r4, #0x28]
bl FUN_020690E4
add r2, r0, #0x0
@@ -1111,13 +1111,13 @@ _0206CFFA:
ldr r0, [r4, #0x28]
mov r1, #0x4d
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _0206D05E
ldr r0, [r4, #0x28]
mov r1, #0xb2
mov r2, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
_0206D05E:
add r0, r4, #0x0
add r0, #0x64
@@ -1652,7 +1652,7 @@ _0206D4A6:
ldr r0, [r4, #0x28]
mov r2, #0x0
add r1, #0x36
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
ldr r0, [r4, #0xc]
mov r1, #0x1
@@ -1736,7 +1736,7 @@ _0206D560:
ldr r0, [r4, #0x28]
add r2, #0x66
add r1, #0x3e
- bl SetMonDataEncrypted
+ bl SetMonData
add r1, r4, #0x0
add r2, r4, #0x0
add r1, #0x6c
@@ -2085,7 +2085,7 @@ _0206D854:
cmp r0, #0x0
beq _0206D86C
ldr r0, [r4, #0x24]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0x6
blt _0206D86E
_0206D86C:
@@ -2103,30 +2103,30 @@ _0206D86E:
add r0, r5, #0x0
mov r1, #0x5
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x4
str r0, [sp, #0x0]
add r0, r5, #0x0
mov r1, #0x9a
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x0
str r0, [sp, #0x0]
add r0, r5, #0x0
mov r1, #0x6
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
mov r1, #0xb
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
mov r1, #0x19
str r1, [sp, #0x4]
add r6, sp, #0x0
_0206D8BA:
add r0, r5, #0x0
add r2, r6, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0x4]
add r1, r0, #0x1
str r1, [sp, #0x4]
@@ -2138,7 +2138,7 @@ _0206D8BA:
_0206D8D2:
add r0, r5, #0x0
add r2, r6, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0x4]
add r1, r0, #0x1
str r1, [sp, #0x4]
@@ -2150,7 +2150,7 @@ _0206D8D2:
_0206D8EA:
add r0, r5, #0x0
add r2, r6, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0x4]
add r1, r0, #0x1
str r1, [sp, #0x4]
@@ -2159,28 +2159,28 @@ _0206D8EA:
add r0, r5, #0x0
mov r1, #0xb2
mov r2, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
mov r1, #0x4d
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
mov r1, #0x9f
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [r4, #0x5c]
- bl FUN_020256BC
+ bl CreateNewSealsObject
add r6, r0, #0x0
add r0, r5, #0x0
mov r1, #0xa9
add r2, r6, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r6, #0x0
bl FreeToHeap
add r0, r5, #0x0
mov r1, #0xa1
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x0
add r1, sp, #0x8
mov r2, #0x18
@@ -2188,11 +2188,11 @@ _0206D8EA:
add r0, r5, #0x0
mov r1, #0xaa
add r2, sp, #0x8
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
bl FUN_0206A1C4
add r0, r5, #0x0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
ldr r0, [r4, #0x24]
add r1, r5, #0x0
bl FUN_0206B900
@@ -2225,7 +2225,7 @@ _0206D9A0:
ldr r0, [r4, #0x28]
mov r1, #0x6
add r2, sp, #0x4
- bl SetMonDataEncrypted
+ bl SetMonData
_0206D9AE:
add sp, #0x20
pop {r4-r6, pc}
@@ -2581,9 +2581,9 @@ FUN_0206DC80: ; 0x0206DC80
add r0, r5, #0x0
mov r1, #0x5
add r2, #0x62
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
add r0, sp, #0x10
add r1, r5, #0x0
mov r2, #0x2
diff --git a/arm9/asm/unk_0206E5B4.s b/arm9/asm/unk_0206E5B4.s
index e527bfb2..f7c743f6 100644
--- a/arm9/asm/unk_0206E5B4.s
+++ b/arm9/asm/unk_0206E5B4.s
@@ -5,283 +5,503 @@
.global UNK_020F8454
UNK_020F8454: ; 0x020F8454
- .byte 0x89, 0x00, 0x8A, 0x00, 0x8B, 0x00, 0x8C, 0x00, 0x8D, 0x00, 0x8E, 0x00, 0x8F, 0x00, 0x90, 0x00
- .byte 0x91, 0x00, 0x92, 0x00, 0x93, 0x00, 0x94, 0x00
+ .short 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F, 0x0090
+ .short 0x0091, 0x0092, 0x0093, 0x0094
.global UNK_020F846C
UNK_020F846C: ; 0x020F846C
- .byte 0x95, 0x00, 0x96, 0x00, 0x97, 0x00, 0x98, 0x00, 0x99, 0x00, 0x9A, 0x00, 0x9B, 0x00, 0x9C, 0x00
- .byte 0x9D, 0x00, 0x9E, 0x00, 0x9F, 0x00, 0xA0, 0x00, 0xA1, 0x00, 0xA2, 0x00, 0xA3, 0x00, 0xA4, 0x00
- .byte 0xA5, 0x00, 0xA6, 0x00, 0xA7, 0x00, 0xA8, 0x00, 0xA9, 0x00, 0xAA, 0x00, 0xAB, 0x00, 0xAC, 0x00
- .byte 0xAD, 0x00, 0xAE, 0x00, 0xAF, 0x00, 0xB0, 0x00, 0xB1, 0x00, 0xB2, 0x00, 0xB3, 0x00, 0xB4, 0x00
- .byte 0xB5, 0x00, 0xB6, 0x00, 0xB7, 0x00, 0xB8, 0x00, 0xB9, 0x00, 0xBA, 0x00, 0xBB, 0x00, 0xBC, 0x00
- .byte 0xBD, 0x00, 0xBE, 0x00, 0xBF, 0x00, 0xC0, 0x00, 0xC1, 0x00, 0xC2, 0x00, 0xC3, 0x00, 0xC4, 0x00
- .byte 0xC5, 0x00, 0xC6, 0x00, 0xC7, 0x00, 0xC8, 0x00, 0xC9, 0x00, 0xCA, 0x00, 0xCB, 0x00, 0xCC, 0x00
- .byte 0xCD, 0x00, 0xCE, 0x00, 0xCF, 0x00, 0xD0, 0x00, 0xD1, 0x00, 0xD2, 0x00, 0xD3, 0x00, 0xD4, 0x00
+ .short 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009A, 0x009B, 0x009C
+ .short 0x009D, 0x009E, 0x009F, 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4
+ .short 0x00A5, 0x00A6, 0x00A7, 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC
+ .short 0x00AD, 0x00AE, 0x00AF, 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4
+ .short 0x00B5, 0x00B6, 0x00B7, 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC
+ .short 0x00BD, 0x00BE, 0x00BF, 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4
+ .short 0x00C5, 0x00C6, 0x00C7, 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC
+ .short 0x00CD, 0x00CE, 0x00CF, 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4
.global UNK_020F84EC
UNK_020F84EC: ; 0x020F84EC
- .byte 0x08, 0x01, 0x51, 0x01, 0x60, 0x01, 0x5B, 0x01, 0x2E, 0x00, 0x5C, 0x00, 0x02, 0x01, 0x53, 0x01
- .byte 0x4B, 0x01, 0xED, 0x00, 0xF1, 0x00, 0x0D, 0x01, 0x3A, 0x00, 0x3B, 0x00, 0x3F, 0x00, 0x71, 0x00
- .byte 0xB6, 0x00, 0xF0, 0x00, 0xCA, 0x00, 0xDB, 0x00, 0xDA, 0x00, 0x4C, 0x00, 0xE7, 0x00, 0x55, 0x00
- .byte 0x57, 0x00, 0x59, 0x00, 0xD8, 0x00, 0x5B, 0x00, 0x5E, 0x00, 0xF7, 0x00, 0x18, 0x01, 0x68, 0x00
- .byte 0x73, 0x00, 0x5F, 0x01, 0x35, 0x00, 0xBC, 0x00, 0xC9, 0x00, 0x7E, 0x00, 0x3D, 0x01, 0x4C, 0x01
- .byte 0x03, 0x01, 0x07, 0x01, 0x22, 0x01, 0x9C, 0x00, 0xD5, 0x00, 0xA8, 0x00, 0xD3, 0x00, 0x1D, 0x01
- .byte 0x21, 0x01, 0x3B, 0x01, 0x63, 0x01, 0x9B, 0x01, 0x9C, 0x01, 0xCE, 0x00, 0x6A, 0x01, 0x76, 0x01
- .byte 0xC3, 0x01, 0xCB, 0x00, 0x96, 0x01, 0x99, 0x01, 0x05, 0x01, 0x3E, 0x01, 0x75, 0x01, 0x99, 0x00
- .byte 0xA5, 0x01, 0x73, 0x01, 0x16, 0x01, 0xA0, 0x01, 0x8D, 0x01, 0x94, 0x00, 0xBC, 0x01, 0xA3, 0x01
- .byte 0x56, 0x00, 0x68, 0x01, 0x0E, 0x00, 0xBE, 0x01, 0xF4, 0x00, 0xBD, 0x01, 0x8F, 0x01, 0x9D, 0x00
- .byte 0x94, 0x01, 0xD6, 0x00, 0x6B, 0x01, 0x8E, 0x01, 0x8A, 0x00, 0xBF, 0x01, 0xCF, 0x00, 0x6D, 0x01
- .byte 0x71, 0x01, 0xA4, 0x00, 0xAE, 0x01, 0xB1, 0x01, 0x0F, 0x00, 0x13, 0x00, 0x39, 0x00, 0x46, 0x00
- .byte 0xB0, 0x01, 0xF9, 0x00, 0x7F, 0x00, 0xAF, 0x01
+ .short 0x0108, 0x0151, 0x0160, 0x015B, 0x002E, 0x005C, 0x0102, 0x0153
+ .short 0x014B, 0x00ED, 0x00F1, 0x010D, 0x003A, 0x003B, 0x003F, 0x0071
+ .short 0x00B6, 0x00F0, 0x00CA, 0x00DB, 0x00DA, 0x004C, 0x00E7, 0x0055
+ .short 0x0057, 0x0059, 0x00D8, 0x005B, 0x005E, 0x00F7, 0x0118, 0x0068
+ .short 0x0073, 0x015F, 0x0035, 0x00BC, 0x00C9, 0x007E, 0x013D, 0x014C
+ .short 0x0103, 0x0107, 0x0122, 0x009C, 0x00D5, 0x00A8, 0x00D3, 0x011D
+ .short 0x0121, 0x013B, 0x0163, 0x019B, 0x019C, 0x00CE, 0x016A, 0x0176
+ .short 0x01C3, 0x00CB, 0x0196, 0x0199, 0x0105, 0x013E, 0x0175, 0x0099
+ .short 0x01A5, 0x0173, 0x0116, 0x01A0, 0x018D, 0x0094, 0x01BC, 0x01A3
+ .short 0x0056, 0x0168, 0x000E, 0x01BE, 0x00F4, 0x01BD, 0x018F, 0x009D
+ .short 0x0194, 0x00D6, 0x016B, 0x018E, 0x008A, 0x01BF, 0x00CF, 0x016D
+ .short 0x0171, 0x00A4, 0x01AE, 0x01B1, 0x000F, 0x0013, 0x0039, 0x0046
+ .short 0x01B0, 0x00F9, 0x007F, 0x01AF
.global UNK_020F85B4
UNK_020F85B4: ; 0x020F85B4
- .byte 0x00, 0x00
-
- .global UNK_020F85B6
-UNK_020F85B6: ; 0x020F85B6
- .byte 0xBB, 0x02
-
- .global UNK_020F85B8
-UNK_020F85B8: ; 0x020F85B8
- .byte 0xBC, 0x02
-
- .global UNK_020F85BA
-UNK_020F85BA: ; 0x020F85BA
- .byte 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x05, 0x00
- .byte 0x02, 0x00, 0x03, 0x00, 0x06, 0x00, 0x07, 0x00, 0x03, 0x00, 0x04, 0x00, 0x08, 0x00, 0x09, 0x00
- .byte 0x04, 0x00, 0x05, 0x00, 0x0A, 0x00, 0x0B, 0x00, 0x05, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x0D, 0x00
- .byte 0x06, 0x00, 0x07, 0x00, 0x0E, 0x00, 0x0F, 0x00, 0x07, 0x00, 0x08, 0x00, 0x10, 0x00, 0x11, 0x00
- .byte 0x08, 0x00, 0x09, 0x00, 0x12, 0x00, 0x13, 0x00, 0x09, 0x00, 0x0A, 0x00, 0x14, 0x00, 0x13, 0x00
- .byte 0x0A, 0x00, 0x0B, 0x00, 0x15, 0x00, 0x16, 0x00, 0x0B, 0x00, 0x0C, 0x00, 0x17, 0x00, 0x16, 0x00
- .byte 0x0C, 0x00, 0x0D, 0x00, 0x97, 0x02, 0x98, 0x02, 0x00, 0x00, 0x0E, 0x00, 0x99, 0x02, 0x9A, 0x02
- .byte 0x00, 0x00, 0x0F, 0x00, 0x9B, 0x02, 0x9C, 0x02, 0x00, 0x00, 0x10, 0x00, 0x9D, 0x02, 0x9E, 0x02
- .byte 0x00, 0x00, 0x11, 0x00, 0x18, 0x00, 0x19, 0x00, 0x0D, 0x00, 0x12, 0x00, 0x1A, 0x00, 0x1B, 0x00
- .byte 0x0E, 0x00, 0x13, 0x00, 0x1E, 0x00, 0x1C, 0x00, 0x0F, 0x00, 0x14, 0x00, 0x1E, 0x00, 0x1D, 0x00
- .byte 0x10, 0x00, 0x15, 0x00, 0x1E, 0x00, 0x1F, 0x00, 0x11, 0x00, 0x16, 0x00, 0x1E, 0x00, 0x20, 0x00
- .byte 0x12, 0x00, 0x17, 0x00, 0x21, 0x00, 0x22, 0x00, 0x13, 0x00, 0x18, 0x00, 0x21, 0x00, 0x23, 0x00
- .byte 0x14, 0x00, 0x19, 0x00, 0x18, 0x00, 0x24, 0x00, 0x15, 0x00, 0x1A, 0x00, 0x18, 0x00, 0x25, 0x00
- .byte 0x16, 0x00, 0x1B, 0x00, 0x26, 0x00, 0x27, 0x00, 0x17, 0x00, 0x1C, 0x00, 0x28, 0x00, 0x2A, 0x00
- .byte 0x18, 0x00, 0x1D, 0x00, 0x29, 0x00, 0x2A, 0x00, 0x19, 0x00, 0x1E, 0x00, 0x2B, 0x00, 0x2C, 0x00
- .byte 0x1A, 0x00, 0x1F, 0x00, 0x2D, 0x00, 0x2E, 0x00, 0x1B, 0x00, 0x20, 0x00, 0x2F, 0x00, 0x30, 0x00
- .byte 0x1C, 0x00, 0x21, 0x00, 0x31, 0x00, 0x32, 0x00, 0x1D, 0x00, 0x22, 0x00, 0x33, 0x00, 0x34, 0x00
- .byte 0x1E, 0x00, 0x23, 0x00, 0x35, 0x00, 0x36, 0x00, 0x1F, 0x00, 0x24, 0x00, 0x33, 0x00, 0x37, 0x00
- .byte 0x20, 0x00, 0x25, 0x00, 0x38, 0x00, 0x39, 0x00, 0x21, 0x00, 0x26, 0x00, 0x3A, 0x00, 0x3B, 0x00
- .byte 0x22, 0x00, 0x27, 0x00, 0x3A, 0x00, 0x3C, 0x00, 0x23, 0x00, 0x28, 0x00, 0x3A, 0x00, 0x3D, 0x00
- .byte 0x24, 0x00, 0x29, 0x00, 0x3A, 0x00, 0x3E, 0x00, 0x25, 0x00, 0x2A, 0x00, 0x3F, 0x00, 0x40, 0x00
- .byte 0x26, 0x00, 0x2B, 0x00, 0x47, 0x00, 0x48, 0x00, 0x2C, 0x00, 0x2C, 0x00, 0x49, 0x00, 0x4A, 0x00
- .byte 0x2D, 0x00, 0x2D, 0x00, 0x53, 0x00, 0x54, 0x00, 0x3F, 0x00, 0x2E, 0x00, 0x55, 0x00, 0x56, 0x00
- .byte 0x40, 0x00, 0x2F, 0x00, 0x55, 0x00, 0x57, 0x00, 0x41, 0x00, 0x30, 0x00, 0x55, 0x00, 0x58, 0x00
- .byte 0x42, 0x00, 0x31, 0x00, 0x55, 0x00, 0x59, 0x00, 0x43, 0x00, 0x32, 0x00, 0x5A, 0x00, 0x5B, 0x00
- .byte 0x44, 0x00, 0x33, 0x00, 0x5C, 0x00, 0x5D, 0x00, 0x45, 0x00, 0x34, 0x00, 0x55, 0x00, 0x5E, 0x00
- .byte 0x46, 0x00, 0x35, 0x00, 0x5F, 0x00, 0x60, 0x00, 0x47, 0x00, 0x36, 0x00, 0xD2, 0x01, 0xD3, 0x01
- .byte 0x00, 0x00, 0x37, 0x00, 0x64, 0x00, 0x61, 0x00, 0x49, 0x00, 0x38, 0x00, 0x64, 0x00, 0x62, 0x00
- .byte 0x4A, 0x00, 0x39, 0x00, 0x64, 0x00, 0x63, 0x00, 0x4B, 0x00, 0x3A, 0x00, 0x64, 0x00, 0x65, 0x00
- .byte 0x4C, 0x00, 0x3B, 0x00, 0x64, 0x00, 0x66, 0x00, 0x4D, 0x00, 0x3C, 0x00, 0x64, 0x00, 0x67, 0x00
- .byte 0x4E, 0x00, 0x3D, 0x00, 0x64, 0x00, 0x68, 0x00, 0x4F, 0x00, 0x3E, 0x00, 0x64, 0x00, 0xD5, 0x01
- .byte 0x00, 0x00, 0x3F, 0x00, 0x69, 0x00, 0x6A, 0x00, 0x50, 0x00, 0x40, 0x00, 0x6B, 0x00, 0x6C, 0x00
- .byte 0x51, 0x00, 0x41, 0x00, 0x41, 0x00, 0x42, 0x00, 0x27, 0x00, 0x42, 0x00, 0x41, 0x00, 0x43, 0x00
- .byte 0x28, 0x00, 0x43, 0x00, 0x41, 0x00, 0x44, 0x00, 0x29, 0x00, 0x44, 0x00, 0x41, 0x00, 0x45, 0x00
- .byte 0x2A, 0x00, 0x45, 0x00, 0x41, 0x00, 0x46, 0x00, 0x2B, 0x00, 0x46, 0x00, 0x33, 0x00, 0x4B, 0x00
- .byte 0x2E, 0x00, 0x47, 0x00, 0x4C, 0x00, 0x4D, 0x00, 0x2F, 0x00, 0x48, 0x00, 0x4E, 0x00, 0x4F, 0x00
- .byte 0x30, 0x00, 0x49, 0x00, 0x4E, 0x00, 0x50, 0x00, 0x31, 0x00, 0x4A, 0x00, 0x4E, 0x00, 0x51, 0x00
- .byte 0x32, 0x00, 0x4B, 0x00, 0x4E, 0x00, 0x52, 0x00, 0x33, 0x00, 0x4C, 0x00, 0x6D, 0x00, 0x6E, 0x00
- .byte 0x53, 0x00, 0x4D, 0x00, 0x6D, 0x00, 0x6F, 0x00, 0x54, 0x00, 0x4E, 0x00, 0x70, 0x00, 0x71, 0x00
- .byte 0x55, 0x00, 0x4F, 0x00, 0x6D, 0x00, 0x72, 0x00, 0x56, 0x00, 0x50, 0x00, 0x73, 0x00, 0x74, 0x00
- .byte 0x5D, 0x00, 0x51, 0x00, 0x75, 0x00, 0x76, 0x00, 0x5E, 0x00, 0x52, 0x00, 0x77, 0x00, 0x78, 0x00
- .byte 0x5F, 0x00, 0x53, 0x00, 0x79, 0x00, 0x7A, 0x00, 0x60, 0x00, 0x54, 0x00, 0x7B, 0x00, 0x7C, 0x00
- .byte 0x61, 0x00, 0x55, 0x00, 0x7D, 0x00, 0x7E, 0x00, 0x62, 0x00, 0x56, 0x00, 0x7F, 0x00, 0x81, 0x00
- .byte 0x67, 0x00, 0x57, 0x00, 0x80, 0x00, 0x81, 0x00, 0x68, 0x00, 0x58, 0x00, 0x82, 0x00, 0x83, 0x00
- .byte 0x6A, 0x00, 0x59, 0x00, 0x84, 0x00, 0x83, 0x00, 0x6B, 0x00, 0x5A, 0x00, 0x85, 0x00, 0x86, 0x00
- .byte 0x6C, 0x00, 0x5B, 0x00, 0x87, 0x00, 0x86, 0x00, 0x6D, 0x00, 0x5C, 0x00, 0x88, 0x00, 0x89, 0x00
- .byte 0x6E, 0x00, 0x5D, 0x00, 0x8A, 0x00, 0x8B, 0x00, 0x6F, 0x00, 0x5E, 0x00, 0xD6, 0x01, 0xD7, 0x01
- .byte 0x00, 0x00, 0x5F, 0x00, 0xD8, 0x01, 0xD9, 0x01, 0x00, 0x00, 0x60, 0x00, 0xDA, 0x01, 0xDB, 0x01
- .byte 0x00, 0x00, 0x61, 0x00, 0xDC, 0x01, 0xDD, 0x01, 0x00, 0x00, 0x62, 0x00, 0xDE, 0x01, 0xDF, 0x01
- .byte 0x00, 0x00, 0x63, 0x00, 0x88, 0x01, 0x89, 0x01, 0x1E, 0x01, 0x64, 0x00, 0x8A, 0x01, 0x89, 0x01
- .byte 0x1F, 0x01, 0x65, 0x00, 0xAF, 0x01, 0xB0, 0x01, 0x65, 0x01, 0x66, 0x00, 0xB1, 0x01, 0xB0, 0x01
- .byte 0x66, 0x01, 0x67, 0x00, 0xA9, 0x01, 0xAA, 0x01, 0x62, 0x01, 0x68, 0x00, 0x69, 0x02, 0x6A, 0x02
- .byte 0x00, 0x00, 0x69, 0x00, 0x67, 0x02, 0x68, 0x02, 0x00, 0x00, 0x6A, 0x00, 0x51, 0x01, 0x52, 0x01
- .byte 0x00, 0x00, 0x6B, 0x00, 0xE0, 0x01, 0xE1, 0x01, 0x00, 0x00, 0x6C, 0x00, 0xE2, 0x01, 0xE3, 0x01
- .byte 0x00, 0x00, 0x6D, 0x00, 0xE4, 0x01, 0xE5, 0x01, 0x00, 0x00, 0x6E, 0x00, 0xE6, 0x01, 0xE7, 0x01
- .byte 0x00, 0x00, 0x6F, 0x00, 0xE8, 0x01, 0xE9, 0x01, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02
- .byte 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02
- .byte 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02
- .byte 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02
- .byte 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02
- .byte 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02
- .byte 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02
- .byte 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02
- .byte 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02
- .byte 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02
- .byte 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02
- .byte 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0xBC, 0x02
- .byte 0x00, 0x00, 0x70, 0x00, 0x88, 0x02, 0x89, 0x02, 0x00, 0x00, 0x71, 0x00, 0x86, 0x02, 0x87, 0x02
- .byte 0x00, 0x00, 0x72, 0x00, 0x8C, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x73, 0x00, 0x8E, 0x00, 0x8F, 0x00
- .byte 0x00, 0x00, 0x74, 0x00, 0x90, 0x00, 0x91, 0x00, 0x00, 0x00, 0x75, 0x00, 0x92, 0x00, 0x93, 0x00
- .byte 0x00, 0x00, 0x76, 0x00, 0x94, 0x00, 0x95, 0x00, 0x00, 0x00, 0x77, 0x00, 0x96, 0x00, 0x97, 0x00
- .byte 0x00, 0x00, 0x78, 0x00, 0x98, 0x00, 0x99, 0x00, 0x00, 0x00, 0x79, 0x00, 0x9A, 0x00, 0x9B, 0x00
- .byte 0x00, 0x00, 0x7A, 0x00, 0x9C, 0x00, 0x9D, 0x00, 0x00, 0x00, 0x7B, 0x00, 0x9E, 0x00, 0x9F, 0x00
- .byte 0x00, 0x00, 0x7C, 0x00, 0xA0, 0x00, 0xA1, 0x00, 0x00, 0x00, 0x7D, 0x00, 0xA2, 0x00, 0xA3, 0x00
- .byte 0x00, 0x00, 0x7E, 0x00, 0xA4, 0x00, 0xA5, 0x00, 0x85, 0x00, 0x7F, 0x00, 0xA6, 0x00, 0xA7, 0x00
- .byte 0x86, 0x00, 0x80, 0x00, 0xA8, 0x00, 0xA9, 0x00, 0x87, 0x00, 0x81, 0x00, 0xAA, 0x00, 0xAB, 0x00
- .byte 0x88, 0x00, 0x82, 0x00, 0xAC, 0x00, 0xAD, 0x00, 0x89, 0x00, 0x83, 0x00, 0xAE, 0x00, 0xAF, 0x00
- .byte 0x8A, 0x00, 0x84, 0x00, 0xB0, 0x00, 0xB1, 0x00, 0x8B, 0x00, 0x85, 0x00, 0xB2, 0x00, 0xB3, 0x00
- .byte 0x8C, 0x00, 0x86, 0x00, 0xB4, 0x00, 0xB5, 0x00, 0x8D, 0x00, 0x87, 0x00, 0xB6, 0x00, 0xB7, 0x00
- .byte 0x8E, 0x00, 0x88, 0x00, 0xB8, 0x00, 0xB9, 0x00, 0x8F, 0x00, 0x89, 0x00, 0xBA, 0x00, 0xBB, 0x00
- .byte 0x90, 0x00, 0x8A, 0x00, 0xBC, 0x00, 0xBD, 0x00, 0x91, 0x00, 0x8B, 0x00, 0xBE, 0x00, 0xBF, 0x00
- .byte 0x92, 0x00, 0x8C, 0x00, 0xC0, 0x00, 0xC1, 0x00, 0x93, 0x00, 0x8D, 0x00, 0xC2, 0x00, 0xC3, 0x00
- .byte 0x94, 0x00, 0x8E, 0x00, 0xC4, 0x00, 0xC5, 0x00, 0x95, 0x00, 0x8F, 0x00, 0xC6, 0x00, 0xC7, 0x00
- .byte 0x96, 0x00, 0x90, 0x00, 0xC8, 0x00, 0xC9, 0x00, 0x97, 0x00, 0x91, 0x00, 0xCA, 0x00, 0xCB, 0x00
- .byte 0x98, 0x00, 0x92, 0x00, 0xCC, 0x00, 0xCD, 0x00, 0x99, 0x00, 0x93, 0x00, 0xCE, 0x00, 0xCF, 0x00
- .byte 0x9A, 0x00, 0x94, 0x00, 0xD0, 0x00, 0xD1, 0x00, 0x9B, 0x00, 0x95, 0x00, 0xD2, 0x00, 0xD3, 0x00
- .byte 0x9C, 0x00, 0x96, 0x00, 0xD4, 0x00, 0xD5, 0x00, 0x9D, 0x00, 0x97, 0x00, 0xD6, 0x00, 0xD7, 0x00
- .byte 0x9E, 0x00, 0x98, 0x00, 0xD8, 0x00, 0xD9, 0x00, 0x9F, 0x00, 0x99, 0x00, 0xDA, 0x00, 0xDB, 0x00
- .byte 0xA0, 0x00, 0x9A, 0x00, 0xDC, 0x00, 0xDD, 0x00, 0xA1, 0x00, 0x9B, 0x00, 0xDE, 0x00, 0xDF, 0x00
- .byte 0xA2, 0x00, 0x9C, 0x00, 0xE0, 0x00, 0xE1, 0x00, 0xA3, 0x00, 0x9D, 0x00, 0xE2, 0x00, 0xE3, 0x00
- .byte 0xA4, 0x00, 0x9E, 0x00, 0xE4, 0x00, 0xE5, 0x00, 0xA5, 0x00, 0x9F, 0x00, 0xE6, 0x00, 0xE7, 0x00
- .byte 0xA6, 0x00, 0xA0, 0x00, 0xE8, 0x00, 0xE9, 0x00, 0xA7, 0x00, 0xA1, 0x00, 0x2A, 0x02, 0x2B, 0x02
- .byte 0x00, 0x00, 0xA2, 0x00, 0x2C, 0x02, 0x2D, 0x02, 0x00, 0x00, 0xA3, 0x00, 0x2E, 0x02, 0x2F, 0x02
- .byte 0x00, 0x00, 0xA4, 0x00, 0x30, 0x02, 0x31, 0x02, 0x00, 0x00, 0xA5, 0x00, 0x32, 0x02, 0x33, 0x02
- .byte 0x00, 0x00, 0xA6, 0x00, 0x34, 0x02, 0x35, 0x02, 0x00, 0x00, 0xA7, 0x00, 0x36, 0x02, 0x37, 0x02
- .byte 0x00, 0x00, 0xA8, 0x00, 0x38, 0x02, 0x39, 0x02, 0x00, 0x00, 0xA9, 0x00, 0x3A, 0x02, 0x3B, 0x02
- .byte 0x00, 0x00, 0xAA, 0x00, 0x3C, 0x02, 0x3D, 0x02, 0x00, 0x00, 0xAB, 0x00, 0x3E, 0x02, 0x3F, 0x02
- .byte 0x00, 0x00, 0xAC, 0x00, 0x40, 0x02, 0x41, 0x02, 0x00, 0x00, 0xAD, 0x00, 0x42, 0x02, 0x43, 0x02
- .byte 0x00, 0x00, 0xAE, 0x00, 0x44, 0x02, 0x45, 0x02, 0x00, 0x00, 0xAF, 0x00, 0x46, 0x02, 0x47, 0x02
- .byte 0x00, 0x00, 0xB0, 0x00, 0x48, 0x02, 0x49, 0x02, 0x00, 0x00, 0xB1, 0x00, 0x4A, 0x02, 0x4B, 0x02
- .byte 0x00, 0x00, 0xB2, 0x00, 0xEA, 0x00, 0xEB, 0x00, 0xA8, 0x00, 0xB3, 0x00, 0xEC, 0x00, 0xED, 0x00
- .byte 0xA9, 0x00, 0xB4, 0x00, 0xEE, 0x00, 0xEF, 0x00, 0xAA, 0x00, 0xB5, 0x00, 0xF0, 0x00, 0xF1, 0x00
- .byte 0xAB, 0x00, 0xB6, 0x00, 0xF2, 0x00, 0xF3, 0x00, 0xAC, 0x00, 0xB7, 0x00, 0xF4, 0x00, 0xF5, 0x00
- .byte 0xAD, 0x00, 0xB8, 0x00, 0xF6, 0x00, 0xF7, 0x00, 0xAE, 0x00, 0xB9, 0x00, 0xF8, 0x00, 0xF9, 0x00
- .byte 0xAF, 0x00, 0xBA, 0x00, 0x4C, 0x02, 0x4D, 0x02, 0x00, 0x00, 0xBB, 0x00, 0x4E, 0x02, 0x4F, 0x02
- .byte 0x00, 0x00, 0xBC, 0x00, 0x50, 0x02, 0x51, 0x02, 0x00, 0x00, 0xBD, 0x00, 0x52, 0x02, 0x53, 0x02
- .byte 0x00, 0x00, 0xBE, 0x00, 0xFA, 0x00, 0xFB, 0x00, 0xB3, 0x00, 0xBF, 0x00, 0xFC, 0x00, 0xFD, 0x00
- .byte 0xB4, 0x00, 0xC0, 0x00, 0xFE, 0x00, 0xFF, 0x00, 0xB5, 0x00, 0xC1, 0x00, 0x00, 0x01, 0x01, 0x01
- .byte 0xB6, 0x00, 0xC2, 0x00, 0x02, 0x01, 0x03, 0x01, 0xB7, 0x00, 0xC3, 0x00, 0x04, 0x01, 0x05, 0x01
- .byte 0xB8, 0x00, 0xC4, 0x00, 0xFC, 0x00, 0x06, 0x01, 0xB9, 0x00, 0xC5, 0x00, 0x07, 0x01, 0x08, 0x01
- .byte 0xBA, 0x00, 0xC6, 0x00, 0x09, 0x01, 0x0A, 0x01, 0xBB, 0x00, 0xC7, 0x00, 0x0B, 0x01, 0x0C, 0x01
- .byte 0xBC, 0x00, 0xC8, 0x00, 0x0D, 0x01, 0x0E, 0x01, 0xBD, 0x00, 0xC9, 0x00, 0x0F, 0x01, 0x10, 0x01
- .byte 0xBE, 0x00, 0xCA, 0x00, 0x11, 0x01, 0x12, 0x01, 0xBF, 0x00, 0xCB, 0x00, 0x13, 0x01, 0x14, 0x01
- .byte 0xC0, 0x00, 0xCC, 0x00, 0x15, 0x01, 0x16, 0x01, 0xC1, 0x00, 0xCD, 0x00, 0x17, 0x01, 0x18, 0x01
- .byte 0xC2, 0x00, 0xCE, 0x00, 0x19, 0x01, 0x1A, 0x01, 0xC3, 0x00, 0xCF, 0x00, 0x1B, 0x01, 0x1C, 0x01
- .byte 0xC4, 0x00, 0xD0, 0x00, 0x1D, 0x01, 0x1E, 0x01, 0xC5, 0x00, 0xD1, 0x00, 0x1F, 0x01, 0x20, 0x01
- .byte 0xC6, 0x00, 0xD2, 0x00, 0x21, 0x01, 0x22, 0x01, 0xC7, 0x00, 0xD3, 0x00, 0x23, 0x01, 0x24, 0x01
- .byte 0xC8, 0x00, 0xD4, 0x00, 0x25, 0x01, 0x26, 0x01, 0xC9, 0x00, 0xD5, 0x00, 0x27, 0x01, 0x28, 0x01
- .byte 0xCA, 0x00, 0xD6, 0x00, 0x29, 0x01, 0x2A, 0x01, 0xCB, 0x00, 0xD7, 0x00, 0x2B, 0x01, 0x2C, 0x01
- .byte 0xCC, 0x00, 0xD8, 0x00, 0x2D, 0x01, 0x2E, 0x01, 0xCD, 0x00, 0xD9, 0x00, 0x2F, 0x01, 0x30, 0x01
- .byte 0xCE, 0x00, 0xDA, 0x00, 0x31, 0x01, 0x30, 0x01, 0xCF, 0x00, 0xDB, 0x00, 0x32, 0x01, 0x33, 0x01
- .byte 0xD0, 0x00, 0xDC, 0x00, 0x34, 0x01, 0x35, 0x01, 0xD1, 0x00, 0xDD, 0x00, 0x36, 0x01, 0x37, 0x01
- .byte 0xD2, 0x00, 0xDE, 0x00, 0x38, 0x01, 0x39, 0x01, 0xD3, 0x00, 0xDF, 0x00, 0x3A, 0x01, 0x3B, 0x01
- .byte 0xD4, 0x00, 0xE0, 0x00, 0x3C, 0x01, 0x3D, 0x01, 0xD5, 0x00, 0xE1, 0x00, 0x3E, 0x01, 0x3F, 0x01
- .byte 0xD6, 0x00, 0xE2, 0x00, 0x40, 0x01, 0x41, 0x01, 0xD7, 0x00, 0xE3, 0x00, 0x42, 0x01, 0x43, 0x01
- .byte 0xD8, 0x00, 0xE4, 0x00, 0x44, 0x01, 0x45, 0x01, 0xD9, 0x00, 0xE5, 0x00, 0x46, 0x01, 0x47, 0x01
- .byte 0xDA, 0x00, 0xE6, 0x00, 0x48, 0x01, 0x4D, 0x00, 0xDB, 0x00, 0xE7, 0x00, 0x49, 0x01, 0x4A, 0x01
- .byte 0xDC, 0x00, 0xE8, 0x00, 0x4B, 0x01, 0x4C, 0x01, 0xDD, 0x00, 0xE9, 0x00, 0x4D, 0x01, 0x4E, 0x01
- .byte 0xDE, 0x00, 0xEA, 0x00, 0x4F, 0x01, 0x50, 0x01, 0xDF, 0x00, 0xEB, 0x00, 0x51, 0x01, 0x52, 0x01
- .byte 0xE0, 0x00, 0xEC, 0x00, 0x53, 0x01, 0x54, 0x01, 0xE1, 0x00, 0xED, 0x00, 0x55, 0x01, 0x56, 0x01
- .byte 0xFE, 0x00, 0xEE, 0x00, 0x55, 0x01, 0x57, 0x01, 0xFF, 0x00, 0xEF, 0x00, 0x55, 0x01, 0x58, 0x01
- .byte 0x00, 0x01, 0xF0, 0x00, 0x55, 0x01, 0x59, 0x01, 0x01, 0x01, 0xF1, 0x00, 0x55, 0x01, 0x5A, 0x01
- .byte 0x02, 0x01, 0xF2, 0x00, 0xEA, 0x01, 0xEB, 0x01, 0x00, 0x00, 0xF3, 0x00, 0xEC, 0x01, 0xED, 0x01
- .byte 0x00, 0x00, 0xF4, 0x00, 0xEE, 0x01, 0xEF, 0x01, 0x00, 0x00, 0xF5, 0x00, 0xF0, 0x01, 0xF1, 0x01
- .byte 0x00, 0x00, 0xF6, 0x00, 0x63, 0x02, 0x64, 0x02, 0x00, 0x00, 0xF7, 0x00, 0xF2, 0x01, 0xF3, 0x01
- .byte 0x00, 0x00, 0xF8, 0x00, 0xF4, 0x01, 0xF5, 0x01, 0x00, 0x00, 0xF9, 0x00, 0xF6, 0x01, 0xF7, 0x01
- .byte 0x00, 0x00, 0xFA, 0x00, 0xF8, 0x01, 0xF9, 0x01, 0x00, 0x00, 0xFB, 0x00, 0x4F, 0x01, 0x92, 0x02
- .byte 0x00, 0x00, 0xFC, 0x00, 0x93, 0x02, 0x94, 0x02, 0x00, 0x00, 0xFD, 0x00, 0xFA, 0x01, 0xFB, 0x01
- .byte 0x00, 0x00, 0xFE, 0x00, 0xFC, 0x01, 0xFD, 0x01, 0x00, 0x00, 0xFF, 0x00, 0x65, 0x02, 0x66, 0x02
- .byte 0x00, 0x00, 0x00, 0x01, 0x8A, 0x02, 0x8B, 0x02, 0x00, 0x00, 0x01, 0x01, 0x8E, 0x02, 0x8F, 0x02
- .byte 0x00, 0x00, 0x02, 0x01, 0xFE, 0x01, 0xFF, 0x01, 0x00, 0x00, 0x03, 0x01, 0x7C, 0x02, 0x7D, 0x02
- .byte 0x00, 0x00, 0x04, 0x01, 0x7E, 0x02, 0x7F, 0x02, 0x00, 0x00, 0x05, 0x01, 0x80, 0x02, 0x81, 0x02
- .byte 0x00, 0x00, 0x06, 0x01, 0x82, 0x02, 0x83, 0x02, 0x00, 0x00, 0x07, 0x01, 0x8C, 0x02, 0x8D, 0x02
- .byte 0x00, 0x00, 0x08, 0x01, 0x00, 0x02, 0x01, 0x02, 0x00, 0x00, 0x09, 0x01, 0x02, 0x02, 0x03, 0x02
- .byte 0x00, 0x00, 0x0A, 0x01, 0xAB, 0x02, 0xAC, 0x02, 0x00, 0x00, 0x0B, 0x01, 0xB3, 0x02, 0xB4, 0x02
- .byte 0x00, 0x00, 0x0C, 0x01, 0xB5, 0x02, 0xB6, 0x02, 0x00, 0x00, 0x0D, 0x01, 0xAD, 0x02, 0xAE, 0x02
- .byte 0x00, 0x00, 0x0E, 0x01, 0xAF, 0x02, 0xB0, 0x02, 0x00, 0x00, 0x0F, 0x01, 0xB1, 0x02, 0xB2, 0x02
- .byte 0x00, 0x00, 0x10, 0x01, 0x04, 0x02, 0x05, 0x02, 0x00, 0x00, 0x11, 0x01, 0x06, 0x02, 0x07, 0x02
- .byte 0x00, 0x00, 0x12, 0x01, 0x08, 0x02, 0x09, 0x02, 0x00, 0x00, 0x13, 0x01, 0x6B, 0x02, 0x6C, 0x02
- .byte 0x00, 0x00, 0x14, 0x01, 0x6B, 0x02, 0x6D, 0x02, 0x00, 0x00, 0x15, 0x01, 0x6B, 0x02, 0x6E, 0x02
- .byte 0x00, 0x00, 0x16, 0x01, 0x6B, 0x02, 0x6F, 0x02, 0x00, 0x00, 0x17, 0x01, 0x6B, 0x02, 0x70, 0x02
- .byte 0x00, 0x00, 0x18, 0x01, 0x6B, 0x02, 0x71, 0x02, 0x00, 0x00, 0x19, 0x01, 0x6B, 0x02, 0x72, 0x02
- .byte 0x00, 0x00, 0x1A, 0x01, 0x6B, 0x02, 0x73, 0x02, 0x00, 0x00, 0x1B, 0x01, 0x6B, 0x02, 0x74, 0x02
- .byte 0x00, 0x00, 0x1C, 0x01, 0x6B, 0x02, 0x75, 0x02, 0x00, 0x00, 0x1D, 0x01, 0x6B, 0x02, 0x76, 0x02
- .byte 0x00, 0x00, 0x1E, 0x01, 0x6B, 0x02, 0x77, 0x02, 0x00, 0x00, 0x1F, 0x01, 0x6B, 0x02, 0x78, 0x02
- .byte 0x00, 0x00, 0x20, 0x01, 0x6B, 0x02, 0x79, 0x02, 0x00, 0x00, 0x21, 0x01, 0x6B, 0x02, 0x7A, 0x02
- .byte 0x00, 0x00, 0x22, 0x01, 0x6B, 0x02, 0x7B, 0x02, 0x00, 0x00, 0x23, 0x01, 0x0A, 0x02, 0x0B, 0x02
- .byte 0x00, 0x00, 0x24, 0x01, 0x0C, 0x02, 0x0D, 0x02, 0x00, 0x00, 0x25, 0x01, 0x0E, 0x02, 0x0F, 0x02
- .byte 0x00, 0x00, 0x26, 0x01, 0x10, 0x02, 0x11, 0x02, 0x00, 0x00, 0x27, 0x01, 0x12, 0x02, 0x13, 0x02
- .byte 0x00, 0x00, 0x28, 0x01, 0x14, 0x02, 0x15, 0x02, 0x00, 0x00, 0x29, 0x01, 0x16, 0x02, 0x17, 0x02
- .byte 0x00, 0x00, 0x2A, 0x01, 0xB7, 0x02, 0xB8, 0x02, 0x00, 0x00, 0x2B, 0x01, 0x18, 0x02, 0x19, 0x02
- .byte 0x00, 0x00, 0x2C, 0x01, 0x1A, 0x02, 0x1B, 0x02, 0x00, 0x00, 0x2D, 0x01, 0x1C, 0x02, 0x1D, 0x02
- .byte 0x00, 0x00, 0x2E, 0x01, 0x1E, 0x02, 0x1F, 0x02, 0x00, 0x00, 0x2F, 0x01, 0x20, 0x02, 0x21, 0x02
- .byte 0x00, 0x00, 0x30, 0x01, 0x22, 0x02, 0x23, 0x02, 0x00, 0x00, 0x31, 0x01, 0x8D, 0x01, 0x8E, 0x01
- .byte 0x21, 0x01, 0x32, 0x01, 0x8D, 0x01, 0x8F, 0x01, 0x22, 0x01, 0x33, 0x01, 0x8D, 0x01, 0x90, 0x01
- .byte 0x23, 0x01, 0x34, 0x01, 0x8D, 0x01, 0x91, 0x01, 0x24, 0x01, 0x35, 0x01, 0x8D, 0x01, 0x92, 0x01
- .byte 0x25, 0x01, 0x36, 0x01, 0x8D, 0x01, 0x93, 0x01, 0x26, 0x01, 0x37, 0x01, 0x8D, 0x01, 0x94, 0x01
- .byte 0x27, 0x01, 0x38, 0x01, 0x8D, 0x01, 0x8E, 0x01, 0x28, 0x01, 0x39, 0x01, 0x8D, 0x01, 0x95, 0x01
- .byte 0x29, 0x01, 0x3A, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x2A, 0x01, 0x3B, 0x01, 0x8D, 0x01, 0x96, 0x01
- .byte 0x2B, 0x01, 0x3C, 0x01, 0x8D, 0x01, 0x97, 0x01, 0x2C, 0x01, 0x3D, 0x01, 0x8D, 0x01, 0x94, 0x01
- .byte 0x2D, 0x01, 0x3E, 0x01, 0x8D, 0x01, 0x94, 0x01, 0x2E, 0x01, 0x3F, 0x01, 0x8D, 0x01, 0x92, 0x01
- .byte 0x2F, 0x01, 0x40, 0x01, 0x8D, 0x01, 0x91, 0x01, 0x30, 0x01, 0x41, 0x01, 0x8D, 0x01, 0x92, 0x01
- .byte 0x31, 0x01, 0x42, 0x01, 0x8D, 0x01, 0x90, 0x01, 0x32, 0x01, 0x43, 0x01, 0x8D, 0x01, 0x95, 0x01
- .byte 0x33, 0x01, 0x44, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x34, 0x01, 0x45, 0x01, 0x8D, 0x01, 0x92, 0x01
- .byte 0x35, 0x01, 0x46, 0x01, 0x8D, 0x01, 0x95, 0x01, 0x36, 0x01, 0x47, 0x01, 0x8D, 0x01, 0x98, 0x01
- .byte 0x37, 0x01, 0x48, 0x01, 0x8D, 0x01, 0x99, 0x01, 0x38, 0x01, 0x49, 0x01, 0x8D, 0x01, 0x99, 0x01
- .byte 0x39, 0x01, 0x4A, 0x01, 0x8D, 0x01, 0x9A, 0x01, 0x3A, 0x01, 0x4B, 0x01, 0x8D, 0x01, 0x92, 0x01
- .byte 0x3B, 0x01, 0x4C, 0x01, 0x8D, 0x01, 0x9A, 0x01, 0x3C, 0x01, 0x4D, 0x01, 0x8D, 0x01, 0x91, 0x01
- .byte 0x3D, 0x01, 0x4E, 0x01, 0x8D, 0x01, 0x9B, 0x01, 0x3E, 0x01, 0x4F, 0x01, 0x8D, 0x01, 0x8E, 0x01
- .byte 0x3F, 0x01, 0x50, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x40, 0x01, 0x51, 0x01, 0x8D, 0x01, 0x91, 0x01
- .byte 0x41, 0x01, 0x52, 0x01, 0x8D, 0x01, 0x99, 0x01, 0x42, 0x01, 0x53, 0x01, 0x8D, 0x01, 0x96, 0x01
- .byte 0x43, 0x01, 0x54, 0x01, 0x8D, 0x01, 0x93, 0x01, 0x44, 0x01, 0x55, 0x01, 0x8D, 0x01, 0x9C, 0x01
- .byte 0x45, 0x01, 0x56, 0x01, 0x8D, 0x01, 0x96, 0x01, 0x46, 0x01, 0x57, 0x01, 0x8D, 0x01, 0x9C, 0x01
- .byte 0x47, 0x01, 0x58, 0x01, 0x8D, 0x01, 0x9D, 0x01, 0x48, 0x01, 0x59, 0x01, 0x8D, 0x01, 0x97, 0x01
- .byte 0x49, 0x01, 0x5A, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x4A, 0x01, 0x5B, 0x01, 0x8D, 0x01, 0x92, 0x01
- .byte 0x4B, 0x01, 0x5C, 0x01, 0x8D, 0x01, 0x91, 0x01, 0x4C, 0x01, 0x5D, 0x01, 0x8D, 0x01, 0x92, 0x01
- .byte 0x4D, 0x01, 0x5E, 0x01, 0x8D, 0x01, 0x97, 0x01, 0x4E, 0x01, 0x5F, 0x01, 0x8D, 0x01, 0x98, 0x01
- .byte 0x4F, 0x01, 0x60, 0x01, 0x8D, 0x01, 0x91, 0x01, 0x50, 0x01, 0x61, 0x01, 0x8D, 0x01, 0x97, 0x01
- .byte 0x51, 0x01, 0x62, 0x01, 0x8D, 0x01, 0x96, 0x01, 0x52, 0x01, 0x63, 0x01, 0x8D, 0x01, 0x9D, 0x01
- .byte 0x00, 0x00, 0x64, 0x01, 0x8D, 0x01, 0x8E, 0x01, 0x00, 0x00, 0x65, 0x01, 0x8D, 0x01, 0x95, 0x01
- .byte 0x00, 0x00, 0x66, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x00, 0x00, 0x67, 0x01, 0x8D, 0x01, 0x90, 0x01
- .byte 0x00, 0x00, 0x68, 0x01, 0x8D, 0x01, 0x97, 0x01, 0x00, 0x00, 0x69, 0x01, 0x8D, 0x01, 0x99, 0x01
- .byte 0x00, 0x00, 0x6A, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x00, 0x00, 0x6B, 0x01, 0x8D, 0x01, 0x8F, 0x01
- .byte 0x00, 0x00, 0x6C, 0x01, 0x8D, 0x01, 0x8E, 0x01, 0x00, 0x00, 0x6D, 0x01, 0x8D, 0x01, 0x96, 0x01
- .byte 0x00, 0x00, 0x6E, 0x01, 0x8D, 0x01, 0x62, 0x02, 0x00, 0x00, 0x6F, 0x01, 0x8D, 0x01, 0x97, 0x01
- .byte 0x00, 0x00, 0x70, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x00, 0x00, 0x71, 0x01, 0x8D, 0x01, 0x9B, 0x01
- .byte 0x00, 0x00, 0x72, 0x01, 0x8D, 0x01, 0x97, 0x01, 0x00, 0x00, 0x73, 0x01, 0x8D, 0x01, 0x92, 0x01
- .byte 0x00, 0x00, 0x74, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x00, 0x00, 0x75, 0x01, 0x8D, 0x01, 0x9C, 0x01
- .byte 0x00, 0x00, 0x76, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x00, 0x00, 0x77, 0x01, 0x8D, 0x01, 0x9C, 0x01
- .byte 0x00, 0x00, 0x78, 0x01, 0x8D, 0x01, 0x94, 0x01, 0x00, 0x00, 0x79, 0x01, 0x8D, 0x01, 0x99, 0x01
- .byte 0x00, 0x00, 0x7A, 0x01, 0x8D, 0x01, 0x98, 0x01, 0x00, 0x00, 0x7B, 0x01, 0x8D, 0x01, 0x92, 0x01
- .byte 0x00, 0x00, 0x7C, 0x01, 0x8D, 0x01, 0x9C, 0x01, 0x00, 0x00, 0x7D, 0x01, 0x8D, 0x01, 0x92, 0x01
- .byte 0x00, 0x00, 0x7E, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x00, 0x00, 0x7F, 0x01, 0x8D, 0x01, 0x97, 0x01
- .byte 0x00, 0x00, 0x80, 0x01, 0x8D, 0x01, 0x9C, 0x01, 0x00, 0x00, 0x81, 0x01, 0x8D, 0x01, 0x62, 0x02
- .byte 0x00, 0x00, 0x82, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x00, 0x00, 0x83, 0x01, 0x8D, 0x01, 0x92, 0x01
- .byte 0x00, 0x00, 0x84, 0x01, 0x8D, 0x01, 0x93, 0x01, 0x00, 0x00, 0x85, 0x01, 0x8D, 0x01, 0x91, 0x01
- .byte 0x00, 0x00, 0x86, 0x01, 0x8D, 0x01, 0x95, 0x01, 0x00, 0x00, 0x87, 0x01, 0x8D, 0x01, 0x92, 0x01
- .byte 0x00, 0x00, 0x88, 0x01, 0x8D, 0x01, 0x9D, 0x01, 0x00, 0x00, 0x89, 0x01, 0x8D, 0x01, 0x62, 0x02
- .byte 0x00, 0x00, 0x8A, 0x01, 0x8D, 0x01, 0x92, 0x01, 0x00, 0x00, 0x8B, 0x01, 0x8D, 0x01, 0x98, 0x01
- .byte 0x00, 0x00, 0x8C, 0x01, 0x8D, 0x01, 0x91, 0x01, 0x00, 0x00, 0x8D, 0x01, 0x9E, 0x01, 0x92, 0x01
- .byte 0x53, 0x01, 0x8E, 0x01, 0x9E, 0x01, 0x9D, 0x01, 0x54, 0x01, 0x8F, 0x01, 0x9E, 0x01, 0x90, 0x01
- .byte 0x55, 0x01, 0x90, 0x01, 0x9E, 0x01, 0x92, 0x01, 0x56, 0x01, 0x91, 0x01, 0x9E, 0x01, 0x90, 0x01
- .byte 0x57, 0x01, 0x92, 0x01, 0x9E, 0x01, 0x8E, 0x01, 0x58, 0x01, 0x93, 0x01, 0x9E, 0x01, 0x90, 0x01
- .byte 0x59, 0x01, 0x94, 0x01, 0x9E, 0x01, 0x92, 0x01, 0x5A, 0x01, 0x95, 0x01, 0x24, 0x02, 0x25, 0x02
- .byte 0x00, 0x00, 0x96, 0x01, 0x26, 0x02, 0x27, 0x02, 0x00, 0x00, 0x97, 0x01, 0x28, 0x02, 0x29, 0x02
- .byte 0x00, 0x00, 0x98, 0x01, 0xB9, 0x02, 0xBA, 0x02, 0x00, 0x00, 0x99, 0x01, 0xA9, 0x02, 0xAA, 0x02
- .byte 0x00, 0x00, 0x9A, 0x01, 0x5E, 0x02, 0x5F, 0x02, 0x00, 0x00, 0x9B, 0x01, 0x9F, 0x02, 0xA0, 0x02
- .byte 0x00, 0x00, 0x9C, 0x01, 0xA3, 0x02, 0xA4, 0x02, 0x00, 0x00, 0x9D, 0x01, 0xA1, 0x02, 0xA2, 0x02
- .byte 0x00, 0x00, 0x9E, 0x01, 0x95, 0x02, 0x96, 0x02, 0x00, 0x00, 0x9F, 0x01, 0x84, 0x02, 0x85, 0x02
- .byte 0x00, 0x00, 0xA0, 0x01, 0x5C, 0x02, 0x5D, 0x02, 0x00, 0x00, 0xA1, 0x01, 0x90, 0x02, 0x91, 0x02
- .byte 0x00, 0x00, 0xA2, 0x01, 0xA7, 0x02, 0xA8, 0x02, 0x00, 0x00, 0xA3, 0x01, 0xB7, 0x01, 0xB8, 0x01
- .byte 0x69, 0x01, 0xA4, 0x01, 0xB9, 0x01, 0xBA, 0x01, 0x6A, 0x01, 0xA5, 0x01, 0x5D, 0x01, 0x5E, 0x01
- .byte 0x04, 0x01, 0xA6, 0x01, 0x61, 0x01, 0x62, 0x01, 0x06, 0x01, 0xA7, 0x01, 0x63, 0x01, 0x64, 0x01
- .byte 0x07, 0x01, 0xA8, 0x01, 0x65, 0x01, 0x66, 0x01, 0x08, 0x01, 0xA9, 0x01, 0x6B, 0x01, 0x6C, 0x01
- .byte 0x00, 0x00, 0xAA, 0x01, 0x75, 0x01, 0x76, 0x01, 0x00, 0x00, 0xAB, 0x01, 0xB5, 0x01, 0xB6, 0x01
- .byte 0x68, 0x01, 0xAC, 0x01, 0xAD, 0x01, 0xAE, 0x01, 0x00, 0x00, 0xAD, 0x01, 0x77, 0x01, 0x40, 0x00
- .byte 0x00, 0x00, 0xAE, 0x01, 0x5A, 0x02, 0x5B, 0x02, 0x00, 0x00, 0xAF, 0x01, 0x60, 0x02, 0x61, 0x02
- .byte 0x00, 0x00, 0xB0, 0x01, 0xA5, 0x02, 0xA6, 0x02, 0x00, 0x00, 0xB1, 0x01, 0x67, 0x01, 0x68, 0x01
- .byte 0x09, 0x01, 0xB2, 0x01, 0x69, 0x01, 0x6A, 0x01, 0x0A, 0x01, 0xB3, 0x01, 0x54, 0x02, 0x55, 0x02
- .byte 0x00, 0x00, 0xB4, 0x01, 0x9F, 0x01, 0xA0, 0x01, 0x5D, 0x01, 0xB5, 0x01, 0xA1, 0x01, 0xA2, 0x01
- .byte 0x00, 0x00, 0xB6, 0x01, 0xA3, 0x01, 0xA4, 0x01, 0x00, 0x00, 0xB7, 0x01, 0xA5, 0x01, 0xA6, 0x01
- .byte 0x00, 0x00, 0xB8, 0x01, 0x56, 0x02, 0x57, 0x02, 0x1D, 0x01, 0xB9, 0x01, 0x58, 0x02, 0x59, 0x02
- .byte 0x00, 0x00
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0001, 0x0002, 0x0003, 0x0001
+ .short 0x0002, 0x0004, 0x0005, 0x0002
+ .short 0x0003, 0x0006, 0x0007, 0x0003
+ .short 0x0004, 0x0008, 0x0009, 0x0004
+ .short 0x0005, 0x000A, 0x000B, 0x0005
+ .short 0x0006, 0x000C, 0x000D, 0x0006
+ .short 0x0007, 0x000E, 0x000F, 0x0007
+ .short 0x0008, 0x0010, 0x0011, 0x0008
+ .short 0x0009, 0x0012, 0x0013, 0x0009
+ .short 0x000A, 0x0014, 0x0013, 0x000A
+ .short 0x000B, 0x0015, 0x0016, 0x000B
+ .short 0x000C, 0x0017, 0x0016, 0x000C
+ .short 0x000D, 0x0297, 0x0298, 0x0000
+ .short 0x000E, 0x0299, 0x029A, 0x0000
+ .short 0x000F, 0x029B, 0x029C, 0x0000
+ .short 0x0010, 0x029D, 0x029E, 0x0000
+ .short 0x0011, 0x0018, 0x0019, 0x000D
+ .short 0x0012, 0x001A, 0x001B, 0x000E
+ .short 0x0013, 0x001E, 0x001C, 0x000F
+ .short 0x0014, 0x001E, 0x001D, 0x0010
+ .short 0x0015, 0x001E, 0x001F, 0x0011
+ .short 0x0016, 0x001E, 0x0020, 0x0012
+ .short 0x0017, 0x0021, 0x0022, 0x0013
+ .short 0x0018, 0x0021, 0x0023, 0x0014
+ .short 0x0019, 0x0018, 0x0024, 0x0015
+ .short 0x001A, 0x0018, 0x0025, 0x0016
+ .short 0x001B, 0x0026, 0x0027, 0x0017
+ .short 0x001C, 0x0028, 0x002A, 0x0018
+ .short 0x001D, 0x0029, 0x002A, 0x0019
+ .short 0x001E, 0x002B, 0x002C, 0x001A
+ .short 0x001F, 0x002D, 0x002E, 0x001B
+ .short 0x0020, 0x002F, 0x0030, 0x001C
+ .short 0x0021, 0x0031, 0x0032, 0x001D
+ .short 0x0022, 0x0033, 0x0034, 0x001E
+ .short 0x0023, 0x0035, 0x0036, 0x001F
+ .short 0x0024, 0x0033, 0x0037, 0x0020
+ .short 0x0025, 0x0038, 0x0039, 0x0021
+ .short 0x0026, 0x003A, 0x003B, 0x0022
+ .short 0x0027, 0x003A, 0x003C, 0x0023
+ .short 0x0028, 0x003A, 0x003D, 0x0024
+ .short 0x0029, 0x003A, 0x003E, 0x0025
+ .short 0x002A, 0x003F, 0x0040, 0x0026
+ .short 0x002B, 0x0047, 0x0048, 0x002C
+ .short 0x002C, 0x0049, 0x004A, 0x002D
+ .short 0x002D, 0x0053, 0x0054, 0x003F
+ .short 0x002E, 0x0055, 0x0056, 0x0040
+ .short 0x002F, 0x0055, 0x0057, 0x0041
+ .short 0x0030, 0x0055, 0x0058, 0x0042
+ .short 0x0031, 0x0055, 0x0059, 0x0043
+ .short 0x0032, 0x005A, 0x005B, 0x0044
+ .short 0x0033, 0x005C, 0x005D, 0x0045
+ .short 0x0034, 0x0055, 0x005E, 0x0046
+ .short 0x0035, 0x005F, 0x0060, 0x0047
+ .short 0x0036, 0x01D2, 0x01D3, 0x0000
+ .short 0x0037, 0x0064, 0x0061, 0x0049
+ .short 0x0038, 0x0064, 0x0062, 0x004A
+ .short 0x0039, 0x0064, 0x0063, 0x004B
+ .short 0x003A, 0x0064, 0x0065, 0x004C
+ .short 0x003B, 0x0064, 0x0066, 0x004D
+ .short 0x003C, 0x0064, 0x0067, 0x004E
+ .short 0x003D, 0x0064, 0x0068, 0x004F
+ .short 0x003E, 0x0064, 0x01D5, 0x0000
+ .short 0x003F, 0x0069, 0x006A, 0x0050
+ .short 0x0040, 0x006B, 0x006C, 0x0051
+ .short 0x0041, 0x0041, 0x0042, 0x0027
+ .short 0x0042, 0x0041, 0x0043, 0x0028
+ .short 0x0043, 0x0041, 0x0044, 0x0029
+ .short 0x0044, 0x0041, 0x0045, 0x002A
+ .short 0x0045, 0x0041, 0x0046, 0x002B
+ .short 0x0046, 0x0033, 0x004B, 0x002E
+ .short 0x0047, 0x004C, 0x004D, 0x002F
+ .short 0x0048, 0x004E, 0x004F, 0x0030
+ .short 0x0049, 0x004E, 0x0050, 0x0031
+ .short 0x004A, 0x004E, 0x0051, 0x0032
+ .short 0x004B, 0x004E, 0x0052, 0x0033
+ .short 0x004C, 0x006D, 0x006E, 0x0053
+ .short 0x004D, 0x006D, 0x006F, 0x0054
+ .short 0x004E, 0x0070, 0x0071, 0x0055
+ .short 0x004F, 0x006D, 0x0072, 0x0056
+ .short 0x0050, 0x0073, 0x0074, 0x005D
+ .short 0x0051, 0x0075, 0x0076, 0x005E
+ .short 0x0052, 0x0077, 0x0078, 0x005F
+ .short 0x0053, 0x0079, 0x007A, 0x0060
+ .short 0x0054, 0x007B, 0x007C, 0x0061
+ .short 0x0055, 0x007D, 0x007E, 0x0062
+ .short 0x0056, 0x007F, 0x0081, 0x0067
+ .short 0x0057, 0x0080, 0x0081, 0x0068
+ .short 0x0058, 0x0082, 0x0083, 0x006A
+ .short 0x0059, 0x0084, 0x0083, 0x006B
+ .short 0x005A, 0x0085, 0x0086, 0x006C
+ .short 0x005B, 0x0087, 0x0086, 0x006D
+ .short 0x005C, 0x0088, 0x0089, 0x006E
+ .short 0x005D, 0x008A, 0x008B, 0x006F
+ .short 0x005E, 0x01D6, 0x01D7, 0x0000
+ .short 0x005F, 0x01D8, 0x01D9, 0x0000
+ .short 0x0060, 0x01DA, 0x01DB, 0x0000
+ .short 0x0061, 0x01DC, 0x01DD, 0x0000
+ .short 0x0062, 0x01DE, 0x01DF, 0x0000
+ .short 0x0063, 0x0188, 0x0189, 0x011E
+ .short 0x0064, 0x018A, 0x0189, 0x011F
+ .short 0x0065, 0x01AF, 0x01B0, 0x0165
+ .short 0x0066, 0x01B1, 0x01B0, 0x0166
+ .short 0x0067, 0x01A9, 0x01AA, 0x0162
+ .short 0x0068, 0x0269, 0x026A, 0x0000
+ .short 0x0069, 0x0267, 0x0268, 0x0000
+ .short 0x006A, 0x0151, 0x0152, 0x0000
+ .short 0x006B, 0x01E0, 0x01E1, 0x0000
+ .short 0x006C, 0x01E2, 0x01E3, 0x0000
+ .short 0x006D, 0x01E4, 0x01E5, 0x0000
+ .short 0x006E, 0x01E6, 0x01E7, 0x0000
+ .short 0x006F, 0x01E8, 0x01E9, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0000, 0x02BB, 0x02BC, 0x0000
+ .short 0x0070, 0x0288, 0x0289, 0x0000
+ .short 0x0071, 0x0286, 0x0287, 0x0000
+ .short 0x0072, 0x008C, 0x008D, 0x0000
+ .short 0x0073, 0x008E, 0x008F, 0x0000
+ .short 0x0074, 0x0090, 0x0091, 0x0000
+ .short 0x0075, 0x0092, 0x0093, 0x0000
+ .short 0x0076, 0x0094, 0x0095, 0x0000
+ .short 0x0077, 0x0096, 0x0097, 0x0000
+ .short 0x0078, 0x0098, 0x0099, 0x0000
+ .short 0x0079, 0x009A, 0x009B, 0x0000
+ .short 0x007A, 0x009C, 0x009D, 0x0000
+ .short 0x007B, 0x009E, 0x009F, 0x0000
+ .short 0x007C, 0x00A0, 0x00A1, 0x0000
+ .short 0x007D, 0x00A2, 0x00A3, 0x0000
+ .short 0x007E, 0x00A4, 0x00A5, 0x0085
+ .short 0x007F, 0x00A6, 0x00A7, 0x0086
+ .short 0x0080, 0x00A8, 0x00A9, 0x0087
+ .short 0x0081, 0x00AA, 0x00AB, 0x0088
+ .short 0x0082, 0x00AC, 0x00AD, 0x0089
+ .short 0x0083, 0x00AE, 0x00AF, 0x008A
+ .short 0x0084, 0x00B0, 0x00B1, 0x008B
+ .short 0x0085, 0x00B2, 0x00B3, 0x008C
+ .short 0x0086, 0x00B4, 0x00B5, 0x008D
+ .short 0x0087, 0x00B6, 0x00B7, 0x008E
+ .short 0x0088, 0x00B8, 0x00B9, 0x008F
+ .short 0x0089, 0x00BA, 0x00BB, 0x0090
+ .short 0x008A, 0x00BC, 0x00BD, 0x0091
+ .short 0x008B, 0x00BE, 0x00BF, 0x0092
+ .short 0x008C, 0x00C0, 0x00C1, 0x0093
+ .short 0x008D, 0x00C2, 0x00C3, 0x0094
+ .short 0x008E, 0x00C4, 0x00C5, 0x0095
+ .short 0x008F, 0x00C6, 0x00C7, 0x0096
+ .short 0x0090, 0x00C8, 0x00C9, 0x0097
+ .short 0x0091, 0x00CA, 0x00CB, 0x0098
+ .short 0x0092, 0x00CC, 0x00CD, 0x0099
+ .short 0x0093, 0x00CE, 0x00CF, 0x009A
+ .short 0x0094, 0x00D0, 0x00D1, 0x009B
+ .short 0x0095, 0x00D2, 0x00D3, 0x009C
+ .short 0x0096, 0x00D4, 0x00D5, 0x009D
+ .short 0x0097, 0x00D6, 0x00D7, 0x009E
+ .short 0x0098, 0x00D8, 0x00D9, 0x009F
+ .short 0x0099, 0x00DA, 0x00DB, 0x00A0
+ .short 0x009A, 0x00DC, 0x00DD, 0x00A1
+ .short 0x009B, 0x00DE, 0x00DF, 0x00A2
+ .short 0x009C, 0x00E0, 0x00E1, 0x00A3
+ .short 0x009D, 0x00E2, 0x00E3, 0x00A4
+ .short 0x009E, 0x00E4, 0x00E5, 0x00A5
+ .short 0x009F, 0x00E6, 0x00E7, 0x00A6
+ .short 0x00A0, 0x00E8, 0x00E9, 0x00A7
+ .short 0x00A1, 0x022A, 0x022B, 0x0000
+ .short 0x00A2, 0x022C, 0x022D, 0x0000
+ .short 0x00A3, 0x022E, 0x022F, 0x0000
+ .short 0x00A4, 0x0230, 0x0231, 0x0000
+ .short 0x00A5, 0x0232, 0x0233, 0x0000
+ .short 0x00A6, 0x0234, 0x0235, 0x0000
+ .short 0x00A7, 0x0236, 0x0237, 0x0000
+ .short 0x00A8, 0x0238, 0x0239, 0x0000
+ .short 0x00A9, 0x023A, 0x023B, 0x0000
+ .short 0x00AA, 0x023C, 0x023D, 0x0000
+ .short 0x00AB, 0x023E, 0x023F, 0x0000
+ .short 0x00AC, 0x0240, 0x0241, 0x0000
+ .short 0x00AD, 0x0242, 0x0243, 0x0000
+ .short 0x00AE, 0x0244, 0x0245, 0x0000
+ .short 0x00AF, 0x0246, 0x0247, 0x0000
+ .short 0x00B0, 0x0248, 0x0249, 0x0000
+ .short 0x00B1, 0x024A, 0x024B, 0x0000
+ .short 0x00B2, 0x00EA, 0x00EB, 0x00A8
+ .short 0x00B3, 0x00EC, 0x00ED, 0x00A9
+ .short 0x00B4, 0x00EE, 0x00EF, 0x00AA
+ .short 0x00B5, 0x00F0, 0x00F1, 0x00AB
+ .short 0x00B6, 0x00F2, 0x00F3, 0x00AC
+ .short 0x00B7, 0x00F4, 0x00F5, 0x00AD
+ .short 0x00B8, 0x00F6, 0x00F7, 0x00AE
+ .short 0x00B9, 0x00F8, 0x00F9, 0x00AF
+ .short 0x00BA, 0x024C, 0x024D, 0x0000
+ .short 0x00BB, 0x024E, 0x024F, 0x0000
+ .short 0x00BC, 0x0250, 0x0251, 0x0000
+ .short 0x00BD, 0x0252, 0x0253, 0x0000
+ .short 0x00BE, 0x00FA, 0x00FB, 0x00B3
+ .short 0x00BF, 0x00FC, 0x00FD, 0x00B4
+ .short 0x00C0, 0x00FE, 0x00FF, 0x00B5
+ .short 0x00C1, 0x0100, 0x0101, 0x00B6
+ .short 0x00C2, 0x0102, 0x0103, 0x00B7
+ .short 0x00C3, 0x0104, 0x0105, 0x00B8
+ .short 0x00C4, 0x00FC, 0x0106, 0x00B9
+ .short 0x00C5, 0x0107, 0x0108, 0x00BA
+ .short 0x00C6, 0x0109, 0x010A, 0x00BB
+ .short 0x00C7, 0x010B, 0x010C, 0x00BC
+ .short 0x00C8, 0x010D, 0x010E, 0x00BD
+ .short 0x00C9, 0x010F, 0x0110, 0x00BE
+ .short 0x00CA, 0x0111, 0x0112, 0x00BF
+ .short 0x00CB, 0x0113, 0x0114, 0x00C0
+ .short 0x00CC, 0x0115, 0x0116, 0x00C1
+ .short 0x00CD, 0x0117, 0x0118, 0x00C2
+ .short 0x00CE, 0x0119, 0x011A, 0x00C3
+ .short 0x00CF, 0x011B, 0x011C, 0x00C4
+ .short 0x00D0, 0x011D, 0x011E, 0x00C5
+ .short 0x00D1, 0x011F, 0x0120, 0x00C6
+ .short 0x00D2, 0x0121, 0x0122, 0x00C7
+ .short 0x00D3, 0x0123, 0x0124, 0x00C8
+ .short 0x00D4, 0x0125, 0x0126, 0x00C9
+ .short 0x00D5, 0x0127, 0x0128, 0x00CA
+ .short 0x00D6, 0x0129, 0x012A, 0x00CB
+ .short 0x00D7, 0x012B, 0x012C, 0x00CC
+ .short 0x00D8, 0x012D, 0x012E, 0x00CD
+ .short 0x00D9, 0x012F, 0x0130, 0x00CE
+ .short 0x00DA, 0x0131, 0x0130, 0x00CF
+ .short 0x00DB, 0x0132, 0x0133, 0x00D0
+ .short 0x00DC, 0x0134, 0x0135, 0x00D1
+ .short 0x00DD, 0x0136, 0x0137, 0x00D2
+ .short 0x00DE, 0x0138, 0x0139, 0x00D3
+ .short 0x00DF, 0x013A, 0x013B, 0x00D4
+ .short 0x00E0, 0x013C, 0x013D, 0x00D5
+ .short 0x00E1, 0x013E, 0x013F, 0x00D6
+ .short 0x00E2, 0x0140, 0x0141, 0x00D7
+ .short 0x00E3, 0x0142, 0x0143, 0x00D8
+ .short 0x00E4, 0x0144, 0x0145, 0x00D9
+ .short 0x00E5, 0x0146, 0x0147, 0x00DA
+ .short 0x00E6, 0x0148, 0x004D, 0x00DB
+ .short 0x00E7, 0x0149, 0x014A, 0x00DC
+ .short 0x00E8, 0x014B, 0x014C, 0x00DD
+ .short 0x00E9, 0x014D, 0x014E, 0x00DE
+ .short 0x00EA, 0x014F, 0x0150, 0x00DF
+ .short 0x00EB, 0x0151, 0x0152, 0x00E0
+ .short 0x00EC, 0x0153, 0x0154, 0x00E1
+ .short 0x00ED, 0x0155, 0x0156, 0x00FE
+ .short 0x00EE, 0x0155, 0x0157, 0x00FF
+ .short 0x00EF, 0x0155, 0x0158, 0x0100
+ .short 0x00F0, 0x0155, 0x0159, 0x0101
+ .short 0x00F1, 0x0155, 0x015A, 0x0102
+ .short 0x00F2, 0x01EA, 0x01EB, 0x0000
+ .short 0x00F3, 0x01EC, 0x01ED, 0x0000
+ .short 0x00F4, 0x01EE, 0x01EF, 0x0000
+ .short 0x00F5, 0x01F0, 0x01F1, 0x0000
+ .short 0x00F6, 0x0263, 0x0264, 0x0000
+ .short 0x00F7, 0x01F2, 0x01F3, 0x0000
+ .short 0x00F8, 0x01F4, 0x01F5, 0x0000
+ .short 0x00F9, 0x01F6, 0x01F7, 0x0000
+ .short 0x00FA, 0x01F8, 0x01F9, 0x0000
+ .short 0x00FB, 0x014F, 0x0292, 0x0000
+ .short 0x00FC, 0x0293, 0x0294, 0x0000
+ .short 0x00FD, 0x01FA, 0x01FB, 0x0000
+ .short 0x00FE, 0x01FC, 0x01FD, 0x0000
+ .short 0x00FF, 0x0265, 0x0266, 0x0000
+ .short 0x0100, 0x028A, 0x028B, 0x0000
+ .short 0x0101, 0x028E, 0x028F, 0x0000
+ .short 0x0102, 0x01FE, 0x01FF, 0x0000
+ .short 0x0103, 0x027C, 0x027D, 0x0000
+ .short 0x0104, 0x027E, 0x027F, 0x0000
+ .short 0x0105, 0x0280, 0x0281, 0x0000
+ .short 0x0106, 0x0282, 0x0283, 0x0000
+ .short 0x0107, 0x028C, 0x028D, 0x0000
+ .short 0x0108, 0x0200, 0x0201, 0x0000
+ .short 0x0109, 0x0202, 0x0203, 0x0000
+ .short 0x010A, 0x02AB, 0x02AC, 0x0000
+ .short 0x010B, 0x02B3, 0x02B4, 0x0000
+ .short 0x010C, 0x02B5, 0x02B6, 0x0000
+ .short 0x010D, 0x02AD, 0x02AE, 0x0000
+ .short 0x010E, 0x02AF, 0x02B0, 0x0000
+ .short 0x010F, 0x02B1, 0x02B2, 0x0000
+ .short 0x0110, 0x0204, 0x0205, 0x0000
+ .short 0x0111, 0x0206, 0x0207, 0x0000
+ .short 0x0112, 0x0208, 0x0209, 0x0000
+ .short 0x0113, 0x026B, 0x026C, 0x0000
+ .short 0x0114, 0x026B, 0x026D, 0x0000
+ .short 0x0115, 0x026B, 0x026E, 0x0000
+ .short 0x0116, 0x026B, 0x026F, 0x0000
+ .short 0x0117, 0x026B, 0x0270, 0x0000
+ .short 0x0118, 0x026B, 0x0271, 0x0000
+ .short 0x0119, 0x026B, 0x0272, 0x0000
+ .short 0x011A, 0x026B, 0x0273, 0x0000
+ .short 0x011B, 0x026B, 0x0274, 0x0000
+ .short 0x011C, 0x026B, 0x0275, 0x0000
+ .short 0x011D, 0x026B, 0x0276, 0x0000
+ .short 0x011E, 0x026B, 0x0277, 0x0000
+ .short 0x011F, 0x026B, 0x0278, 0x0000
+ .short 0x0120, 0x026B, 0x0279, 0x0000
+ .short 0x0121, 0x026B, 0x027A, 0x0000
+ .short 0x0122, 0x026B, 0x027B, 0x0000
+ .short 0x0123, 0x020A, 0x020B, 0x0000
+ .short 0x0124, 0x020C, 0x020D, 0x0000
+ .short 0x0125, 0x020E, 0x020F, 0x0000
+ .short 0x0126, 0x0210, 0x0211, 0x0000
+ .short 0x0127, 0x0212, 0x0213, 0x0000
+ .short 0x0128, 0x0214, 0x0215, 0x0000
+ .short 0x0129, 0x0216, 0x0217, 0x0000
+ .short 0x012A, 0x02B7, 0x02B8, 0x0000
+ .short 0x012B, 0x0218, 0x0219, 0x0000
+ .short 0x012C, 0x021A, 0x021B, 0x0000
+ .short 0x012D, 0x021C, 0x021D, 0x0000
+ .short 0x012E, 0x021E, 0x021F, 0x0000
+ .short 0x012F, 0x0220, 0x0221, 0x0000
+ .short 0x0130, 0x0222, 0x0223, 0x0000
+ .short 0x0131, 0x018D, 0x018E, 0x0121
+ .short 0x0132, 0x018D, 0x018F, 0x0122
+ .short 0x0133, 0x018D, 0x0190, 0x0123
+ .short 0x0134, 0x018D, 0x0191, 0x0124
+ .short 0x0135, 0x018D, 0x0192, 0x0125
+ .short 0x0136, 0x018D, 0x0193, 0x0126
+ .short 0x0137, 0x018D, 0x0194, 0x0127
+ .short 0x0138, 0x018D, 0x018E, 0x0128
+ .short 0x0139, 0x018D, 0x0195, 0x0129
+ .short 0x013A, 0x018D, 0x0192, 0x012A
+ .short 0x013B, 0x018D, 0x0196, 0x012B
+ .short 0x013C, 0x018D, 0x0197, 0x012C
+ .short 0x013D, 0x018D, 0x0194, 0x012D
+ .short 0x013E, 0x018D, 0x0194, 0x012E
+ .short 0x013F, 0x018D, 0x0192, 0x012F
+ .short 0x0140, 0x018D, 0x0191, 0x0130
+ .short 0x0141, 0x018D, 0x0192, 0x0131
+ .short 0x0142, 0x018D, 0x0190, 0x0132
+ .short 0x0143, 0x018D, 0x0195, 0x0133
+ .short 0x0144, 0x018D, 0x0192, 0x0134
+ .short 0x0145, 0x018D, 0x0192, 0x0135
+ .short 0x0146, 0x018D, 0x0195, 0x0136
+ .short 0x0147, 0x018D, 0x0198, 0x0137
+ .short 0x0148, 0x018D, 0x0199, 0x0138
+ .short 0x0149, 0x018D, 0x0199, 0x0139
+ .short 0x014A, 0x018D, 0x019A, 0x013A
+ .short 0x014B, 0x018D, 0x0192, 0x013B
+ .short 0x014C, 0x018D, 0x019A, 0x013C
+ .short 0x014D, 0x018D, 0x0191, 0x013D
+ .short 0x014E, 0x018D, 0x019B, 0x013E
+ .short 0x014F, 0x018D, 0x018E, 0x013F
+ .short 0x0150, 0x018D, 0x0192, 0x0140
+ .short 0x0151, 0x018D, 0x0191, 0x0141
+ .short 0x0152, 0x018D, 0x0199, 0x0142
+ .short 0x0153, 0x018D, 0x0196, 0x0143
+ .short 0x0154, 0x018D, 0x0193, 0x0144
+ .short 0x0155, 0x018D, 0x019C, 0x0145
+ .short 0x0156, 0x018D, 0x0196, 0x0146
+ .short 0x0157, 0x018D, 0x019C, 0x0147
+ .short 0x0158, 0x018D, 0x019D, 0x0148
+ .short 0x0159, 0x018D, 0x0197, 0x0149
+ .short 0x015A, 0x018D, 0x0192, 0x014A
+ .short 0x015B, 0x018D, 0x0192, 0x014B
+ .short 0x015C, 0x018D, 0x0191, 0x014C
+ .short 0x015D, 0x018D, 0x0192, 0x014D
+ .short 0x015E, 0x018D, 0x0197, 0x014E
+ .short 0x015F, 0x018D, 0x0198, 0x014F
+ .short 0x0160, 0x018D, 0x0191, 0x0150
+ .short 0x0161, 0x018D, 0x0197, 0x0151
+ .short 0x0162, 0x018D, 0x0196, 0x0152
+ .short 0x0163, 0x018D, 0x019D, 0x0000
+ .short 0x0164, 0x018D, 0x018E, 0x0000
+ .short 0x0165, 0x018D, 0x0195, 0x0000
+ .short 0x0166, 0x018D, 0x0192, 0x0000
+ .short 0x0167, 0x018D, 0x0190, 0x0000
+ .short 0x0168, 0x018D, 0x0197, 0x0000
+ .short 0x0169, 0x018D, 0x0199, 0x0000
+ .short 0x016A, 0x018D, 0x0192, 0x0000
+ .short 0x016B, 0x018D, 0x018F, 0x0000
+ .short 0x016C, 0x018D, 0x018E, 0x0000
+ .short 0x016D, 0x018D, 0x0196, 0x0000
+ .short 0x016E, 0x018D, 0x0262, 0x0000
+ .short 0x016F, 0x018D, 0x0197, 0x0000
+ .short 0x0170, 0x018D, 0x0192, 0x0000
+ .short 0x0171, 0x018D, 0x019B, 0x0000
+ .short 0x0172, 0x018D, 0x0197, 0x0000
+ .short 0x0173, 0x018D, 0x0192, 0x0000
+ .short 0x0174, 0x018D, 0x0192, 0x0000
+ .short 0x0175, 0x018D, 0x019C, 0x0000
+ .short 0x0176, 0x018D, 0x0192, 0x0000
+ .short 0x0177, 0x018D, 0x019C, 0x0000
+ .short 0x0178, 0x018D, 0x0194, 0x0000
+ .short 0x0179, 0x018D, 0x0199, 0x0000
+ .short 0x017A, 0x018D, 0x0198, 0x0000
+ .short 0x017B, 0x018D, 0x0192, 0x0000
+ .short 0x017C, 0x018D, 0x019C, 0x0000
+ .short 0x017D, 0x018D, 0x0192, 0x0000
+ .short 0x017E, 0x018D, 0x0192, 0x0000
+ .short 0x017F, 0x018D, 0x0197, 0x0000
+ .short 0x0180, 0x018D, 0x019C, 0x0000
+ .short 0x0181, 0x018D, 0x0262, 0x0000
+ .short 0x0182, 0x018D, 0x0192, 0x0000
+ .short 0x0183, 0x018D, 0x0192, 0x0000
+ .short 0x0184, 0x018D, 0x0193, 0x0000
+ .short 0x0185, 0x018D, 0x0191, 0x0000
+ .short 0x0186, 0x018D, 0x0195, 0x0000
+ .short 0x0187, 0x018D, 0x0192, 0x0000
+ .short 0x0188, 0x018D, 0x019D, 0x0000
+ .short 0x0189, 0x018D, 0x0262, 0x0000
+ .short 0x018A, 0x018D, 0x0192, 0x0000
+ .short 0x018B, 0x018D, 0x0198, 0x0000
+ .short 0x018C, 0x018D, 0x0191, 0x0000
+ .short 0x018D, 0x019E, 0x0192, 0x0153
+ .short 0x018E, 0x019E, 0x019D, 0x0154
+ .short 0x018F, 0x019E, 0x0190, 0x0155
+ .short 0x0190, 0x019E, 0x0192, 0x0156
+ .short 0x0191, 0x019E, 0x0190, 0x0157
+ .short 0x0192, 0x019E, 0x018E, 0x0158
+ .short 0x0193, 0x019E, 0x0190, 0x0159
+ .short 0x0194, 0x019E, 0x0192, 0x015A
+ .short 0x0195, 0x0224, 0x0225, 0x0000
+ .short 0x0196, 0x0226, 0x0227, 0x0000
+ .short 0x0197, 0x0228, 0x0229, 0x0000
+ .short 0x0198, 0x02B9, 0x02BA, 0x0000
+ .short 0x0199, 0x02A9, 0x02AA, 0x0000
+ .short 0x019A, 0x025E, 0x025F, 0x0000
+ .short 0x019B, 0x029F, 0x02A0, 0x0000
+ .short 0x019C, 0x02A3, 0x02A4, 0x0000
+ .short 0x019D, 0x02A1, 0x02A2, 0x0000
+ .short 0x019E, 0x0295, 0x0296, 0x0000
+ .short 0x019F, 0x0284, 0x0285, 0x0000
+ .short 0x01A0, 0x025C, 0x025D, 0x0000
+ .short 0x01A1, 0x0290, 0x0291, 0x0000
+ .short 0x01A2, 0x02A7, 0x02A8, 0x0000
+ .short 0x01A3, 0x01B7, 0x01B8, 0x0169
+ .short 0x01A4, 0x01B9, 0x01BA, 0x016A
+ .short 0x01A5, 0x015D, 0x015E, 0x0104
+ .short 0x01A6, 0x0161, 0x0162, 0x0106
+ .short 0x01A7, 0x0163, 0x0164, 0x0107
+ .short 0x01A8, 0x0165, 0x0166, 0x0108
+ .short 0x01A9, 0x016B, 0x016C, 0x0000
+ .short 0x01AA, 0x0175, 0x0176, 0x0000
+ .short 0x01AB, 0x01B5, 0x01B6, 0x0168
+ .short 0x01AC, 0x01AD, 0x01AE, 0x0000
+ .short 0x01AD, 0x0177, 0x0040, 0x0000
+ .short 0x01AE, 0x025A, 0x025B, 0x0000
+ .short 0x01AF, 0x0260, 0x0261, 0x0000
+ .short 0x01B0, 0x02A5, 0x02A6, 0x0000
+ .short 0x01B1, 0x0167, 0x0168, 0x0109
+ .short 0x01B2, 0x0169, 0x016A, 0x010A
+ .short 0x01B3, 0x0254, 0x0255, 0x0000
+ .short 0x01B4, 0x019F, 0x01A0, 0x015D
+ .short 0x01B5, 0x01A1, 0x01A2, 0x0000
+ .short 0x01B6, 0x01A3, 0x01A4, 0x0000
+ .short 0x01B7, 0x01A5, 0x01A6, 0x0000
+ .short 0x01B8, 0x0256, 0x0257, 0x011D
+ .short 0x01B9, 0x0258, 0x0259, 0x0000
.text
@@ -401,7 +621,7 @@ _0206E672:
bx lr
_0206E67C:
lsl r1, r0, #0x3
- ldr r0, _0206E6C8 ; =UNK_020F85B6
+ ldr r0, _0206E6C8 ; =UNK_020F85B4 + 2
ldrh r0, [r0, r1]
bx lr
_0206E684:
@@ -418,7 +638,7 @@ _0206E68E:
bx lr
_0206E698:
lsl r1, r0, #0x3
- ldr r0, _0206E6D0 ; =UNK_020F85B8
+ ldr r0, _0206E6D0 ; =UNK_020F85B4 + 4
ldrh r0, [r0, r1]
bx lr
_0206E6A0:
@@ -428,7 +648,7 @@ _0206E6A0:
cmp r0, r1
beq _0206E6B2
lsl r1, r0, #0x3
- ldr r0, _0206E6D4 ; =UNK_020F85BA
+ ldr r0, _0206E6D4 ; =UNK_020F85B4 + 6
ldrh r0, [r0, r1]
bx lr
_0206E6B2:
@@ -439,10 +659,10 @@ _0206E6B8: .word 0x0000FFFF
_0206E6BC: .word UNK_020F85B4
_0206E6C0: .word 0x000002BB
_0206E6C4: .word 0x000002BD
-_0206E6C8: .word UNK_020F85B6
+_0206E6C8: .word UNK_020F85B4 + 2
_0206E6CC: .word 0x000002BE
-_0206E6D0: .word UNK_020F85B8
-_0206E6D4: .word UNK_020F85BA
+_0206E6D0: .word UNK_020F85B4 + 4
+_0206E6D4: .word UNK_020F85B4 + 6
thumb_func_start FUN_0206E6D8
FUN_0206E6D8: ; 0x0206E6D8
@@ -503,21 +723,21 @@ _0206E72C:
ldr r1, _0206E75C ; =UNK_020F85B4
lsl r3, r3, #0x3
ldrh r1, [r1, r3]
- mov r0, #0xf
+ mov r0, #0xf ; NARC_ITEMTOOL_ITEMDATA_ITEM_DATA
bl AllocAndReadWholeNarcMemberByIdPair
pop {r3, pc}
_0206E73A:
- ldr r1, _0206E760 ; =UNK_020F85B6
+ ldr r1, _0206E760 ; =UNK_020F85B4 + 2
lsl r3, r3, #0x3
ldrh r1, [r1, r3]
- mov r0, #0x10
+ mov r0, #0x10 ; NARC_ITEMTOOL_ITEMDATA_ITEM_ICON
bl AllocAndReadWholeNarcMemberByIdPair
pop {r3, pc}
_0206E748:
- ldr r1, _0206E764 ; =UNK_020F85B8
+ ldr r1, _0206E764 ; =UNK_020F85B4 + 4
lsl r3, r3, #0x3
ldrh r1, [r1, r3]
- mov r0, #0x10
+ mov r0, #0x10 ; NARC_ITEMTOOL_ITEMDATA_ITEM_ICON
bl AllocAndReadWholeNarcMemberByIdPair
pop {r3, pc}
_0206E756:
@@ -525,8 +745,8 @@ _0206E756:
pop {r3, pc}
nop
_0206E75C: .word UNK_020F85B4
-_0206E760: .word UNK_020F85B6
-_0206E764: .word UNK_020F85B8
+_0206E760: .word UNK_020F85B4 + 2
+_0206E764: .word UNK_020F85B4 + 4
thumb_func_start FUN_0206E768
FUN_0206E768: ; 0x0206E768
@@ -536,7 +756,7 @@ FUN_0206E768: ; 0x0206E768
add r5, r0, #0x0
add r4, r1, #0x0
mov r0, #0x1
- mov r1, #0x1a
+ mov r1, #0x1a ; NARC_MSGDATA_MSG
lsl r2, r2, #0x2
bl NewMsgDataFromNarc
add r6, r0, #0x0
@@ -556,7 +776,7 @@ FUN_0206E790: ; 0x0206E790
add r4, r1, #0x0
ldr r2, _0206E7B4 ; =0x00000157
mov r0, #0x1
- mov r1, #0x1a
+ mov r1, #0x1a ; NARC_MSGDATA_MSG
bl NewMsgDataFromNarc
add r6, r0, #0x0
add r1, r4, #0x0
@@ -1156,7 +1376,7 @@ FUN_0206EB50: ; 0x0206EB50
mul r1, r0
str r1, [sp, #0x0]
mov r1, #0x0
- mov r0, #0xf
+ mov r0, #0xf ; NARC_ITEMTOOL_ITEMDATA_ITEM_DATA
add r2, r4, #0x0
add r3, r1, #0x0
bl AllocAndReadFromNarcMemberByIdPair
diff --git a/arm9/asm/unk_0206F3FC.s b/arm9/asm/unk_0206F3FC.s
index 2a03ef5f..4534dc1b 100644
--- a/arm9/asm/unk_0206F3FC.s
+++ b/arm9/asm/unk_0206F3FC.s
@@ -1666,7 +1666,7 @@ FUN_0207008C: ; 0x0207008C
ldr r0, _020701DC ; =0x000005A4
ldr r0, [r5, r0]
ldr r0, [r0, #0x0]
- bl FUN_0206B9AC
+ bl GetPartyCount
ldr r1, [sp, #0x0]
cmp r0, r1
bgt _020700BC
@@ -1677,11 +1677,11 @@ _020700BC:
ldr r0, _020701DC ; =0x000005A4
ldr r0, [r5, r0]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x5
mov r2, #0x0
add r7, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x4]
@@ -1705,42 +1705,42 @@ _020700DE:
add r0, r7, #0x0
mov r1, #0xa2
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _020701E4 ; =0x00000706
add r2, r5, r6
strh r0, [r2, r1]
add r0, r7, #0x0
mov r1, #0xa3
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _020701E8 ; =0x00000708
add r2, r5, r6
strh r0, [r2, r1]
add r0, r7, #0x0
mov r1, #0xa0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _020701EC ; =0x0000070A
add r2, r5, r6
strh r0, [r2, r1]
add r0, r7, #0x0
mov r1, #0x6
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _020701F0 ; =0x0000070C
add r2, r5, r6
strh r0, [r2, r1]
add r0, r7, #0x0
mov r1, #0xa1
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _020701F4 ; =0x00000712
add r2, r5, r6
strh r0, [r2, r1]
add r0, r7, #0x0
mov r1, #0x4c
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x71
add r2, r5, r6
lsl r1, r1, #0x4
@@ -1748,14 +1748,14 @@ _020700DE:
add r0, r7, #0x0
mov r1, #0x70
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _020701F8 ; =0x00000711
add r2, r5, r6
strb r0, [r2, r1]
add r0, r7, #0x0
mov r1, #0xaf
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x1
ldr r0, _020701FC ; =0x0000070E
bne _02070184
@@ -1775,7 +1775,7 @@ _0207018E:
ldr r0, _020701FC ; =0x0000070E
add r6, r5, r0
add r0, r7, #0x0
- bl GetMonGenderEncrypted
+ bl GetMonGender
lsl r0, r0, #0x1e
ldrh r2, [r6, r4]
ldr r1, _02070204 ; =0xFFFF9FFF
@@ -1864,7 +1864,7 @@ _02070256:
add r0, r5, #0x0
add r1, #0x36
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _0207026C
add r4, r4, #0x1
@@ -1925,106 +1925,106 @@ _020702BE: ; jump table (using 16-bit offset)
_020702C8:
mov r1, #0x7a
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x7b
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r4, r0
add r0, r5, #0x0
mov r1, #0x7c
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r4, r0
add r0, r5, #0x0
mov r1, #0x7d
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r4, r0
b _020703B6
_020702F8:
mov r1, #0x7e
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x7f
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r4, r0
add r0, r5, #0x0
mov r1, #0x80
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r4, r0
add r0, r5, #0x0
mov r1, #0x81
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r4, r0
b _020703B6
_02070328:
mov r1, #0x82
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x83
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r4, r0
add r0, r5, #0x0
mov r1, #0x84
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r4, r0
add r0, r5, #0x0
mov r1, #0x85
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r4, r0
b _020703B6
_02070358:
mov r1, #0x86
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x87
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r4, r0
add r0, r5, #0x0
mov r1, #0x88
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r4, r0
add r0, r5, #0x0
mov r1, #0x89
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r4, r0
b _020703B6
_02070388:
mov r1, #0x8a
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x8b
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r4, r0
add r0, r5, #0x0
mov r1, #0x8c
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r4, r0
add r0, r5, #0x0
mov r1, #0x8d
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r4, r0
_020703B6:
add r0, r4, #0x0
@@ -2809,7 +2809,7 @@ FUN_020709FC: ; 0x020709FC
add r6, r1, #0x0
ldr r0, [r5, r0]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r1, _02070A7C ; =0x00000B23
ldrb r2, [r5, r1]
lsl r3, r2, #0x19
@@ -2839,7 +2839,7 @@ _02070A38:
_02070A3A:
mov r1, #0xa2
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _02070A4E
add r0, r4, #0x2
@@ -3755,7 +3755,7 @@ FUN_0207117C: ; 0x0207117C
ldr r1, [sp, #0x0]
ldr r0, [r0, #0x0]
ldrb r1, [r1, r2]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [sp, #0x8]
ldr r0, [sp, #0x4]
mov r1, #0x1
@@ -3790,7 +3790,7 @@ _020711D0:
ldr r0, [sp, #0x8]
add r1, #0x36
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r7, r0, #0x10
beq _02071210
@@ -3996,7 +3996,7 @@ FUN_02071340: ; 0x02071340
cmp r0, #0x0
beq _0207136E
ldr r0, [r2, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0x0
ldr r0, _020713E0 ; =0x000005A4
ldr r2, _020713E4 ; =0x00000B34
@@ -5033,7 +5033,7 @@ _02071B34:
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r6, r0, #0x0
ldr r0, _02071C3C ; =0x0000069C
mov r1, #0x40
@@ -5244,12 +5244,12 @@ _02071D14:
add r1, r6, #0x0
ldr r0, [r5, r0]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldrh r1, [r7, r4]
add r2, sp, #0x0
str r1, [sp, #0x0]
mov r1, #0xa2
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x1
pop {r3-r7, pc}
_02071D30:
@@ -5426,7 +5426,7 @@ _02071E5A:
ldr r0, [r5, r0]
ldrb r1, [r5, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0x0
ldr r0, _02071F1C ; =0x000005A4
mov r2, #0x3
@@ -5436,7 +5436,7 @@ _02071E5A:
str r0, [sp, #0x0]
ldrh r3, [r3, #0x24]
mov r0, #0x0
- bl FUN_02069168
+ bl GetMonEvolution
ldr r1, _02071F1C ; =0x000005A4
ldr r2, [r5, r1]
strh r0, [r2, #0x38]
@@ -5460,7 +5460,7 @@ _02071ECC:
ldr r0, [r1, #0x0]
ldr r1, _02071F20 ; =0x00000B25
ldrb r1, [r5, r1]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0x0
ldr r0, _02071F1C ; =0x000005A4
ldr r2, [r5, r0]
@@ -5526,7 +5526,7 @@ FUN_02071F58: ; 0x02071F58
ldr r0, [r5, r0]
ldrb r1, [r5, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r6, r0, #0x0
mov r7, #0x89
add r0, r5, #0x0
@@ -5670,7 +5670,7 @@ FUN_02072080: ; 0x02072080
add r0, r5, #0x0
mov r1, #0x6
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
bl FUN_02069EC4
ldr r1, _020720D8 ; =0x00000B25
@@ -5713,7 +5713,7 @@ FUN_020720E0: ; 0x020720E0
add r0, r5, #0x0
mov r1, #0x6
add r2, sp, #0x1c
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
bl FUN_02069EC4
ldr r1, _02072138 ; =0x00000B25
@@ -5804,7 +5804,7 @@ _020721B0:
ldr r0, [r5, r0]
ldrb r1, [r5, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r7, r0, #0x0
ldr r0, _020722A8 ; =0x000005A4
ldr r0, [r5, r0]
@@ -5968,7 +5968,7 @@ FUN_0207230C: ; 0x0207230C
ldr r0, [r5, r0]
ldrb r1, [r5, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r7, r0, #0x0
ldr r0, _02072410 ; =0x000005A4
ldr r0, [r5, r0]
diff --git a/arm9/asm/unk_02072548.s b/arm9/asm/unk_02072548.s
index 8c630d8e..062862b7 100644
--- a/arm9/asm/unk_02072548.s
+++ b/arm9/asm/unk_02072548.s
@@ -582,7 +582,7 @@ _0207297E:
ldr r1, _020729CC ; =0x00000B25
ldr r0, [r2, #0x0]
ldrb r1, [r5, r1]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r6, r0, #0x0
ldr r0, _020729D0 ; =0x0000069C
mov r1, #0x25
@@ -1211,7 +1211,7 @@ _02072E98:
add r1, r4, #0x0
ldr r0, [r5, r0]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0x0
mov r0, #0x0
ldr r3, _02072EE0 ; =0x000005A4
@@ -1219,7 +1219,7 @@ _02072E98:
ldr r3, [r5, r3]
mov r2, #0x3
ldrh r3, [r3, #0x24]
- bl FUN_02069168
+ bl GetMonEvolution
cmp r0, #0x0
bne _02072ED0
add r0, r5, #0x0
@@ -1280,7 +1280,7 @@ _02072F2C:
add r1, r4, #0x0
ldr r0, [r5, r0]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0x0
add r0, r5, #0x0
bl FUN_02076AA0
@@ -1983,41 +1983,41 @@ FUN_020734C0: ; 0x020734C0
ldr r0, [r5, r0]
ldrb r1, [r5, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xa3
mov r2, #0x0
add r4, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x20
strh r0, [r1, #0x0]
add r0, r4, #0x0
mov r1, #0xa4
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x20
strh r0, [r1, #0x2]
add r0, r4, #0x0
mov r1, #0xa5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x20
strh r0, [r1, #0x4]
add r0, r4, #0x0
mov r1, #0xa7
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x20
strh r0, [r1, #0x6]
add r0, r4, #0x0
mov r1, #0xa8
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x20
strh r0, [r1, #0x8]
add r0, r4, #0x0
mov r1, #0xa6
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x20
strh r0, [r1, #0xa]
mov r3, #0x1
diff --git a/arm9/asm/unk_02073710.s b/arm9/asm/unk_02073710.s
index 7a217fbe..16631f9e 100644
--- a/arm9/asm/unk_02073710.s
+++ b/arm9/asm/unk_02073710.s
@@ -218,7 +218,7 @@ FUN_020737D0: ; 0x020737D0
add r4, r2, #0x0
ldr r0, [r0, #0x0]
add r7, r1, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
lsl r1, r4, #0x10
asr r6, r1, #0x10
mov r1, #0x2c
@@ -248,7 +248,7 @@ FUN_020737D0: ; 0x020737D0
ldr r0, [sp, #0x10]
mov r1, #0x4c
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
str r7, [sp, #0x14]
add r0, sp, #0x14
diff --git a/arm9/asm/unk_02073DA8.s b/arm9/asm/unk_02073DA8.s
index 9afd1e10..cb5d7a22 100644
--- a/arm9/asm/unk_02073DA8.s
+++ b/arm9/asm/unk_02073DA8.s
@@ -199,7 +199,7 @@ FUN_02073EEC: ; 0x02073EEC
bne _02073F66
ldr r0, [r5, r0]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r2, _02074058 ; =0x0000069C
add r6, r0, #0x0
ldr r0, [r5, r2]
@@ -238,13 +238,13 @@ _02073F66:
ldr r0, [r5, r0]
ldrb r1, [r5, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x0
str r1, [sp, #0x0]
add r6, r0, #0x0
mov r1, #0x6
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r6, #0x0
bl FUN_02069EC4
ldr r2, _02074058 ; =0x0000069C
@@ -530,7 +530,7 @@ FUN_02074200: ; 0x02074200
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0x0
ldr r0, _02074268 ; =0x000005A4
mov r2, #0xc
@@ -625,13 +625,13 @@ FUN_020742A8: ; 0x020742A8
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x0
str r1, [sp, #0x0]
add r5, r0, #0x0
mov r1, #0x6
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
bl FUN_02069EC4
ldr r1, _02074330 ; =0x00000B25
@@ -789,7 +789,7 @@ FUN_02074428: ; 0x02074428
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
bl FUN_0206AA84
ldr r0, _0207444C ; =0x000005A4
mov r1, #0x0
@@ -2383,10 +2383,10 @@ FUN_02075118: ; 0x02075118
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xa1
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
ldr r2, _02075198 ; =0x0000069C
bne _0207515C
diff --git a/arm9/asm/unk_0207550C.s b/arm9/asm/unk_0207550C.s
index 7186cf11..7d275208 100644
--- a/arm9/asm/unk_0207550C.s
+++ b/arm9/asm/unk_0207550C.s
@@ -365,7 +365,7 @@ FUN_020757F4: ; 0x020757F4
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
add r5, r2, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
bl FUN_020690E4
add r2, r0, #0x0
mov r0, #0x6a
@@ -1045,53 +1045,53 @@ FUN_02075DC0: ; 0x02075DC0
ldr r0, [r5, r0]
ldrb r1, [r5, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xd
mov r2, #0x0
add r4, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x1c]
add r0, r4, #0x0
mov r1, #0xe
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x18]
add r0, r4, #0x0
mov r1, #0xf
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x14]
add r0, r4, #0x0
mov r1, #0x10
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x10]
add r0, r4, #0x0
mov r1, #0x11
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0xc]
add r0, r4, #0x0
mov r1, #0x12
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x8]
add r0, r4, #0x0
mov r1, #0x9
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r7, r0, #0x18
ldr r0, _02075F4C ; =0x000005A4
@@ -1135,42 +1135,42 @@ FUN_02075DC0: ; 0x02075DC0
add r0, r4, #0x0
mov r1, #0xd
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0x1c]
cmp r1, r0
bne _02075EFA
add r0, r4, #0x0
mov r1, #0xe
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0x18]
cmp r1, r0
bne _02075EFA
add r0, r4, #0x0
mov r1, #0xf
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0x14]
cmp r1, r0
bne _02075EFA
add r0, r4, #0x0
mov r1, #0x10
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0x10]
cmp r1, r0
bne _02075EFA
add r0, r4, #0x0
mov r1, #0x11
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0xc]
cmp r1, r0
bne _02075EFA
add r0, r4, #0x0
mov r1, #0x12
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0x8]
cmp r1, r0
beq _02075F26
@@ -1178,7 +1178,7 @@ _02075EFA:
add r0, r4, #0x0
mov r1, #0x9
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r7, r0
ldr r1, _02075F4C ; =0x000005A4
beq _02075F18
@@ -1243,11 +1243,11 @@ FUN_02075F60: ; 0x02075F60
ldr r0, [r5, r0]
ldrb r1, [r5, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xa2
mov r2, #0x0
str r0, [sp, #0x8]
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0x0
ldr r0, _02076084 ; =0x00000B25
ldrb r1, [r5, r0]
@@ -1372,10 +1372,10 @@ FUN_020760A0: ; 0x020760A0
ldr r0, [r5, r0]
ldrb r1, [r5, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xa2
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02076134 ; =0x00000B25
add r4, r0, #0x0
ldrb r2, [r5, r1]
@@ -1558,7 +1558,7 @@ _02076212:
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r5, r0, #0x0
add r0, r4, #0x0
bl FUN_020772CC
@@ -1574,7 +1574,7 @@ _02076212:
add r0, r5, #0x0
mov r1, #0xa2
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r0, _020763E4 ; =0x0000069C
mov r1, #0x46
ldr r0, [r4, r0]
@@ -1646,10 +1646,10 @@ _020762DC:
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xa2
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r2, _020763E0 ; =0x00000B25
add r5, r0, #0x0
ldr r0, _02076400 ; =0x00000706
@@ -1782,42 +1782,42 @@ FUN_0207640C: ; 0x0207640C
ldr r0, [r5, r0]
ldrb r1, [r5, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xa3
mov r2, #0x0
add r4, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _020765B8 ; =0x00000B28
mov r2, #0x0
strh r0, [r5, r1]
add r0, r4, #0x0
mov r1, #0xa4
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _020765BC ; =0x00000B2A
mov r2, #0x0
strh r0, [r5, r1]
add r0, r4, #0x0
mov r1, #0xa5
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _020765C0 ; =0x00000B2C
mov r2, #0x0
strh r0, [r5, r1]
add r0, r4, #0x0
mov r1, #0xa7
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _020765C4 ; =0x00000B2E
mov r2, #0x0
strh r0, [r5, r1]
add r0, r4, #0x0
mov r1, #0xa8
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0xb3
lsl r1, r1, #0x4
strh r0, [r5, r1]
add r0, r4, #0x0
mov r1, #0xa6
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _020765C8 ; =0x00000B32
strh r0, [r5, r1]
ldr r0, _020765B0 ; =0x000005A4
@@ -1836,7 +1836,7 @@ FUN_0207640C: ; 0x0207640C
add r0, r4, #0x0
mov r1, #0xa0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _020765B4 ; =0x00000B25
ldrb r2, [r5, r1]
mov r1, #0x2c
@@ -1847,7 +1847,7 @@ FUN_0207640C: ; 0x0207640C
add r0, r4, #0x0
mov r1, #0xa2
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _020765B4 ; =0x00000B25
ldrb r2, [r5, r1]
mov r1, #0x2c
@@ -1858,7 +1858,7 @@ FUN_0207640C: ; 0x0207640C
add r0, r4, #0x0
mov r1, #0xa3
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _020765B4 ; =0x00000B25
ldrb r2, [r5, r1]
mov r1, #0x2c
@@ -2056,7 +2056,7 @@ _02076680:
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r1, _02076878 ; =0x000005A4
add r5, r0, #0x0
ldr r2, [r4, r1]
@@ -2196,7 +2196,7 @@ _020767A4:
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r2, _02076878 ; =0x000005A4
add r1, r0, #0x0
ldr r2, [r4, r2]
@@ -2241,7 +2241,7 @@ _02076814:
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r5, r0, #0x0
ldr r0, _02076878 ; =0x000005A4
ldr r0, [r4, r0]
@@ -2260,7 +2260,7 @@ _02076814:
ldr r0, [r1, #0x0]
add r1, r5, #0x0
lsr r3, r3, #0x10
- bl FUN_02069168
+ bl GetMonEvolution
ldr r1, _02076878 ; =0x000005A4
ldr r2, [r4, r1]
strh r0, [r2, #0x38]
@@ -2307,7 +2307,7 @@ FUN_02076890: ; 0x02076890
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r5, r0, #0x0
bl FUN_020690E4
add r2, r0, #0x0
@@ -2335,7 +2335,7 @@ _020768E6:
add r0, r5, #0x0
add r1, #0x36
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
@@ -2540,7 +2540,7 @@ _02076AAA:
add r0, r6, #0x0
add r1, #0x36
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r2, r0, #0x10
ldr r0, [r5, r7]
@@ -2586,7 +2586,7 @@ FUN_02076AF8: ; 0x02076AF8
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r6, r0, #0x0
add r0, r4, #0x0
add r1, r6, #0x0
@@ -2775,7 +2775,7 @@ FUN_02076C94: ; 0x02076C94
ldr r0, [r4, r0]
ldrb r1, [r4, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r5, r0, #0x0
bl FUN_020690E4
add r2, r0, #0x0
@@ -2803,7 +2803,7 @@ _02076CDC:
add r0, r5, #0x0
add r1, #0x36
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
mov r0, #0x6a
lsl r0, r0, #0x4
@@ -2854,7 +2854,7 @@ FUN_02076D3C: ; 0x02076D3C
ldr r0, [r5, r0]
ldrb r1, [r5, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r2, _02076DC4 ; =0x000005A4
add r1, r0, #0x0
ldr r2, [r5, r2]
@@ -3080,25 +3080,25 @@ FUN_02076F2C: ; 0x02076F2C
str r0, [sp, #0x0]
add r0, r4, #0x0
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x0
add r1, r6, #0x0
str r0, [sp, #0x0]
add r0, r4, #0x0
add r1, #0x3e
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, _02076FAC ; =0x000005A4
mov r1, #0x0
ldr r0, [r5, r0]
ldrh r0, [r0, #0x26]
- bl FUN_0206AB30
+ bl WazaGetMaxPp
add r6, #0x3a
str r0, [sp, #0x0]
add r0, r4, #0x0
add r1, r6, #0x0
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, _02076FAC ; =0x000005A4
ldr r1, [r5, r0]
ldrh r0, [r1, #0x24]
@@ -3121,7 +3121,7 @@ _02076F98:
add r2, r0, #0x0
add r0, r4, #0x0
mov r1, #0x4
- bl MonApplyFriendshipModEncrypted
+ bl MonApplyFriendshipMod
_02076FA8:
add sp, #0x4
pop {r3-r6, pc}
@@ -3138,11 +3138,11 @@ FUN_02076FB0: ; 0x02076FB0
ldr r0, [r5, r0]
ldrb r1, [r5, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r6, #0x0
add r1, #0x36
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r4, r0, #0x10
ldr r0, _02077034 ; =0x0000069C
@@ -3375,11 +3375,11 @@ _0207716A:
ldr r0, [r5, r0]
ldrb r1, [r5, r1]
ldr r0, [r0, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r4, #0x36
add r1, r4, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02077234 ; =0x000005A4
add r2, r0, #0x0
ldr r1, [r5, r1]
diff --git a/arm9/asm/unk_020772F0.s b/arm9/asm/unk_020772F0.s
index 11b2ded1..f97f92fc 100644
--- a/arm9/asm/unk_020772F0.s
+++ b/arm9/asm/unk_020772F0.s
@@ -965,7 +965,7 @@ FUN_020777D4: ; 0x020777D4
ldr r0, [r5, #0x4]
cmp r0, #0x0
bne _020777FE
- bl rand_LC
+ bl LCRandom
mov r1, #0x12
bl _s32_div_f
mov r0, #0x17
@@ -977,7 +977,7 @@ FUN_020777D4: ; 0x020777D4
_020777FE:
cmp r0, #0x1
bne _0207781A
- bl rand_LC
+ bl LCRandom
mov r1, #0x12
bl _s32_div_f
mov r0, #0x17
@@ -3699,7 +3699,7 @@ FUN_02078E3C: ; 0x02078E3C
strh r1, [r0, #0x0]
_02078E52:
ldrh r0, [r0, #0x0]
- bl FUN_0201B970
+ bl Sin_Wrap
mov r1, #0xa
mul r1, r0
asr r0, r1, #0xb
diff --git a/arm9/asm/unk_02079C70.s b/arm9/asm/unk_02079C70.s
index 11d65c38..17374c00 100644
--- a/arm9/asm/unk_02079C70.s
+++ b/arm9/asm/unk_02079C70.s
@@ -1555,7 +1555,7 @@ _0207A8C0:
mov r1, #0x13
ldrb r6, [r5, r0]
add r0, r4, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _0207AA08 ; =0x00000295
strb r0, [r5, r1]
ldrb r0, [r5, r1]
@@ -1572,7 +1572,7 @@ _0207A8F4:
ldrb r6, [r5, r0]
add r0, r4, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _0207AA0C ; =0x00000296
strb r0, [r5, r1]
ldrb r0, [r5, r1]
@@ -1589,7 +1589,7 @@ _0207A916:
ldrb r6, [r5, r0]
add r0, r4, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _0207AA10 ; =0x00000297
strb r0, [r5, r1]
ldrb r0, [r5, r1]
@@ -1607,7 +1607,7 @@ _0207A938:
add r0, r4, #0x0
mov r1, #0x16
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0xa6
lsl r1, r1, #0x2
strb r0, [r5, r1]
@@ -1625,7 +1625,7 @@ _0207A95E:
ldrb r6, [r5, r0]
add r0, r4, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _0207AA14 ; =0x00000299
strb r0, [r5, r1]
ldrb r0, [r5, r1]
@@ -1640,7 +1640,7 @@ _0207A980:
add r0, r4, #0x0
mov r1, #0x18
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _0207AA18 ; =0x0000029A
strb r0, [r5, r1]
sub r1, #0x4e
@@ -1843,12 +1843,12 @@ FUN_0207AB0C: ; 0x0207AB0C
add r7, r0, #0x0
add r0, r6, #0x0
add r5, r2, #0x0
- bl TryDecryptMon
+ bl AcquireMonLock
str r0, [sp, #0x4]
add r0, r6, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0xc]
add r0, r6, #0x0
bl FUN_020690E4
@@ -1913,12 +1913,12 @@ FUN_0207AB0C: ; 0x0207AB0C
add r0, r6, #0x0
mov r1, #0x6
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0xe]
add r0, r6, #0x0
mov r1, #0xa0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldrb r1, [r5, #0x12]
mov r2, #0x7f
lsl r0, r0, #0x18
@@ -1931,7 +1931,7 @@ FUN_0207AB0C: ; 0x0207AB0C
add r0, r6, #0x0
mov r1, #0x4c
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x1f
ldr r2, [r5, #0x50]
ldr r1, _0207AEB4 ; =0xEFFFFFFF
@@ -1942,7 +1942,7 @@ FUN_0207AB0C: ; 0x0207AB0C
add r0, r6, #0x0
mov r1, #0xaf
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x1
bne _0207AC16
ldr r0, [r5, #0x50]
@@ -1961,7 +1961,7 @@ _0207AC16:
strb r0, [r5, #0x12]
_0207AC1E:
add r0, r6, #0x0
- bl GetMonGenderEncrypted
+ bl GetMonGender
ldrb r1, [r5, #0x13]
mov r2, #0x3
bic r1, r2
@@ -1972,7 +1972,7 @@ _0207AC1E:
add r0, r6, #0x0
mov r1, #0x9a
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
lsl r0, r0, #0x1a
@@ -1985,27 +1985,27 @@ _0207AC1E:
add r0, r6, #0x0
mov r1, #0xb0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r5, #0x10]
add r0, r6, #0x0
mov r1, #0xb1
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r5, #0x11]
add r0, r6, #0x0
mov r1, #0x7
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [r5, #0x14]
add r0, r6, #0x0
mov r1, #0x8
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [r5, #0x18]
add r0, r6, #0x0
mov r1, #0x9c
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r5, #0x0
add r1, #0x44
strb r0, [r1, #0x0]
@@ -2013,7 +2013,7 @@ _0207AC1E:
ldrh r0, [r5, #0xc]
lsl r1, r1, #0x19
lsr r1, r1, #0x19
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
str r0, [r5, #0x1c]
ldrb r0, [r5, #0x12]
lsl r0, r0, #0x19
@@ -2025,53 +2025,53 @@ _0207AC1E:
_0207ACAA:
ldrh r0, [r5, #0xc]
add r1, r1, #0x1
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
_0207ACB2:
str r0, [r5, #0x20]
add r0, r6, #0x0
mov r1, #0xa2
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x24]
add r0, r6, #0x0
mov r1, #0xa3
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x26]
add r0, r6, #0x0
mov r1, #0xa4
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x28]
add r0, r6, #0x0
mov r1, #0xa5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x2a]
add r0, r6, #0x0
mov r1, #0xa7
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x2c]
add r0, r6, #0x0
mov r1, #0xa8
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x2e]
add r0, r6, #0x0
mov r1, #0xa6
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x30]
add r0, r6, #0x0
mov r1, #0xa
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r5, #0x0
add r1, #0x32
strb r0, [r1, #0x0]
add r0, r6, #0x0
- bl GetMonNatureEncrypted
+ bl GetMonNature
add r1, r5, #0x0
add r1, #0x33
strb r0, [r1, #0x0]
@@ -2084,14 +2084,14 @@ _0207AD26:
add r0, r6, #0x0
add r1, #0x36
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0x0]
mov r2, #0x0
strh r0, [r1, #0x34]
add r1, r4, #0x0
add r0, r6, #0x0
add r1, #0x3a
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r5, r4
add r1, #0x3c
strb r0, [r1, #0x0]
@@ -2099,12 +2099,12 @@ _0207AD26:
add r0, r6, #0x0
add r1, #0x3e
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r1, r0, #0x18
ldr r0, [sp, #0x0]
ldrh r0, [r0, #0x34]
- bl FUN_0206AB30
+ bl WazaGetMaxPp
add r1, r5, r4
add r1, #0x40
strb r0, [r1, #0x0]
@@ -2116,42 +2116,42 @@ _0207AD26:
add r0, r6, #0x0
mov r1, #0x13
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r5, #0x0
add r1, #0x45
strb r0, [r1, #0x0]
add r0, r6, #0x0
mov r1, #0x14
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r5, #0x0
add r1, #0x46
strb r0, [r1, #0x0]
add r0, r6, #0x0
mov r1, #0x15
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r5, #0x0
add r1, #0x47
strb r0, [r1, #0x0]
add r0, r6, #0x0
mov r1, #0x16
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r5, #0x0
add r1, #0x48
strb r0, [r1, #0x0]
add r0, r6, #0x0
mov r1, #0x17
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r5, #0x0
add r1, #0x49
strb r0, [r1, #0x0]
add r0, r6, #0x0
mov r1, #0x18
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r5, #0x0
add r1, #0x4a
strb r0, [r1, #0x0]
@@ -2180,14 +2180,14 @@ _0207ADFE:
add r0, r6, #0x0
mov r1, #0xb
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r5, #0x0
add r1, #0x4c
strh r0, [r1, #0x0]
add r0, r6, #0x0
mov r1, #0x70
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r5, #0x0
add r1, #0x4e
strh r0, [r1, #0x0]
@@ -2243,7 +2243,7 @@ _0207AE7C:
str r0, [r5, #0x50]
_0207AE84:
add r0, r6, #0x0
- bl FUN_02068A80
+ bl MonIsShiny
cmp r0, #0x1
ldr r1, [r5, #0x50]
bne _0207AE98
@@ -2281,7 +2281,7 @@ _0207AECC:
add r1, r0, #0x0
add r0, r6, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _0207AF04
lsr r0, r4, #0x5
@@ -2308,7 +2308,7 @@ _0207AF04:
blo _0207AECC
ldr r1, [sp, #0x4]
add r0, r6, #0x0
- bl TryEncryptMon
+ bl ReleaseMonLock
add sp, #0x8
pop {r3-r7, pc}
nop
@@ -3123,13 +3123,13 @@ _0207B528:
add r0, r6, r7
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _0207B50C
add r0, r6, r7
mov r1, #0x4c
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _0207B55E
add r0, r5, #0x0
@@ -3169,17 +3169,17 @@ _0207B588:
_0207B58E:
ldr r0, [r1, #0x0]
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x5
mov r2, #0x0
add r6, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _0207B574
add r0, r6, #0x0
mov r1, #0x4c
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _0207B5BC
add r0, r5, #0x0
@@ -3227,13 +3227,13 @@ _0207B5EC:
add r0, r6, r7
mov r1, #0x5
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0x0
beq _0207B5D0
add r0, r6, r7
mov r1, #0x4c
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0x0
beq _0207B622
add r0, r5, #0x0
@@ -3269,7 +3269,7 @@ _0207B640:
_0207B64E:
ldrb r1, [r4, #0x14]
ldr r0, [r4, #0x0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
pop {r4, pc}
_0207B658:
bl FUN_020690C8
@@ -4153,7 +4153,7 @@ FUN_0207BD84: ; 0x0207BD84
beq _0207BDCC
add r0, r4, #0x0
mov r1, #0xa
- bl FUN_0206AB18
+ bl GetWazaAttr
bl FUN_02083114
mov r1, #0xa
bl _s32_div_f
@@ -4814,12 +4814,12 @@ FUN_0207C2D4: ; 0x0207C2D4
add r5, r0, #0x0
mov r1, #0x9f
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0xa2
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _0207C2F4
mov r0, #0x6
diff --git a/arm9/asm/unk_0207C328.s b/arm9/asm/unk_0207C328.s
index 5c518aa4..486788c4 100644
--- a/arm9/asm/unk_0207C328.s
+++ b/arm9/asm/unk_0207C328.s
@@ -847,7 +847,7 @@ _0207C7FC:
cmp r0, #0x0
beq _0207C826
add r1, r7, #0x0
- bl FUN_0206AB18
+ bl GetWazaAttr
add r3, r0, #0x0
add r1, r4, #0x0
add r1, #0xd
@@ -943,7 +943,7 @@ _0207C8BA:
cmp r0, #0x0
beq _0207C904
mov r1, #0x3
- bl FUN_0206AB18
+ bl GetWazaAttr
add r3, r0, #0x0
add r1, r4, #0x0
add r1, #0xd
@@ -983,7 +983,7 @@ _0207C904:
cmp r0, #0x0
beq _0207C946
mov r1, #0x3
- bl FUN_0206AB18
+ bl GetWazaAttr
add r3, r0, #0x0
lsl r3, r3, #0x18
add r0, r5, #0x0
@@ -1029,7 +1029,7 @@ _0207C974:
cmp r0, #0x0
beq _0207C9C0
mov r1, #0xb
- bl FUN_0206AB18
+ bl GetWazaAttr
add r3, r0, #0x0
add r1, r4, #0x0
add r1, #0xd
@@ -1070,7 +1070,7 @@ _0207C9C0:
cmp r0, #0x0
beq _0207CA04
mov r1, #0xb
- bl FUN_0206AB18
+ bl GetWazaAttr
add r3, r0, #0x0
add r3, #0x12
lsl r3, r3, #0x18
@@ -1270,7 +1270,7 @@ FUN_0207CB70: ; 0x0207CB70
add r5, r0, #0x0
add r0, r1, #0x0
mov r1, #0x1
- bl FUN_0206AB18
+ bl GetWazaAttr
add r4, r0, #0x0
bl FUN_0206E2A8
add r6, r0, #0x0
diff --git a/arm9/asm/unk_0207D5BC.s b/arm9/asm/unk_0207D5BC.s
index 26580e37..4893d340 100644
--- a/arm9/asm/unk_0207D5BC.s
+++ b/arm9/asm/unk_0207D5BC.s
@@ -2532,7 +2532,7 @@ _0207EA76:
mov r1, #0x0
ldrh r0, [r0, #0x18]
str r0, [sp, #0x20]
- bl FUN_0206AB30
+ bl WazaGetMaxPp
str r0, [sp, #0x1c]
str r0, [sp, #0x18]
_0207EA88:
@@ -2674,7 +2674,7 @@ FUN_0207EB64: ; 0x0207EB64
bl FUN_02019620
add r0, r4, #0x0
mov r1, #0x2
- bl FUN_0206AB18
+ bl GetWazaAttr
add r2, r0, #0x0
cmp r2, #0x1
bhi _0207EBD2
@@ -2703,7 +2703,7 @@ _0207EBE0:
bl FUN_0207D998
add r0, r4, #0x0
mov r1, #0x4
- bl FUN_0206AB18
+ bl GetWazaAttr
add r2, r0, #0x0
bne _0207EC0E
ldr r2, _0207EC88 ; =0x00000674
@@ -2980,7 +2980,7 @@ FUN_0207EE2C: ; 0x0207EE2C
bl FUN_02019620
add r0, r4, #0x0
mov r1, #0xa
- bl FUN_0206AB18
+ bl GetWazaAttr
bl FUN_0208315C
add r4, r0, #0x0
mov r0, #0x0
diff --git a/arm9/asm/unk_0207FD00.s b/arm9/asm/unk_0207FD00.s
index 903c4d94..1f17ee0a 100644
--- a/arm9/asm/unk_0207FD00.s
+++ b/arm9/asm/unk_0207FD00.s
@@ -472,7 +472,7 @@ FUN_020800E0: ; 0x020800E0
push {r3-r5, lr}
add r5, r0, #0x0
ldr r0, [r5, #0xc]
- bl GetMonNatureEncrypted
+ bl GetMonNature
add r4, r0, #0x0
cmp r4, #0x18
bgt _02080106
@@ -511,7 +511,7 @@ FUN_02080108: ; 0x02080108
ldr r0, [r5, #0xc]
mov r1, #0x94
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r3, #0x2
add r2, r0, #0x0
str r3, [sp, #0x0]
@@ -523,7 +523,7 @@ FUN_02080108: ; 0x02080108
ldr r0, [r5, #0xc]
mov r1, #0x95
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
ldr r0, [r5, #0x8]
mov r1, #0x1
@@ -531,7 +531,7 @@ FUN_02080108: ; 0x02080108
ldr r0, [r5, #0xc]
mov r1, #0x96
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
mov r0, #0x0
str r0, [sp, #0x0]
@@ -544,7 +544,7 @@ FUN_02080108: ; 0x02080108
ldr r0, [r5, #0xc]
mov r1, #0x9b
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
mov r0, #0x0
str r0, [sp, #0x0]
@@ -557,7 +557,7 @@ FUN_02080108: ; 0x02080108
ldr r0, [r5, #0xc]
mov r1, #0x98
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
ldr r0, [r5, #0x8]
mov r1, #0x4
@@ -565,7 +565,7 @@ FUN_02080108: ; 0x02080108
ldr r0, [r5, #0xc]
mov r1, #0x91
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r3, #0x2
add r2, r0, #0x0
str r3, [sp, #0x0]
@@ -577,7 +577,7 @@ FUN_02080108: ; 0x02080108
ldr r0, [r5, #0xc]
mov r1, #0x92
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
ldr r0, [r5, #0x8]
mov r1, #0x6
@@ -585,7 +585,7 @@ FUN_02080108: ; 0x02080108
ldr r0, [r5, #0xc]
mov r1, #0x93
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
mov r0, #0x0
str r0, [sp, #0x0]
@@ -598,7 +598,7 @@ FUN_02080108: ; 0x02080108
ldr r0, [r5, #0xc]
mov r1, #0x97
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
ldr r0, [r5, #0x8]
mov r1, #0x8
@@ -635,7 +635,7 @@ FUN_02080228: ; 0x02080228
ldr r0, [r4, #0xc]
mov r1, #0x94
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r3, #0x2
add r2, r0, #0x0
str r3, [sp, #0x0]
@@ -647,7 +647,7 @@ FUN_02080228: ; 0x02080228
ldr r0, [r4, #0xc]
mov r1, #0x95
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
ldr r0, [r4, #0x8]
mov r1, #0x1
@@ -655,7 +655,7 @@ FUN_02080228: ; 0x02080228
ldr r0, [r4, #0xc]
mov r1, #0x96
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
mov r0, #0x0
str r0, [sp, #0x0]
@@ -668,7 +668,7 @@ FUN_02080228: ; 0x02080228
ldr r0, [r4, #0xc]
mov r1, #0x9b
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
mov r0, #0x0
str r0, [sp, #0x0]
@@ -681,7 +681,7 @@ FUN_02080228: ; 0x02080228
ldr r0, [r4, #0xc]
mov r1, #0x79
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0xf
bhi _020802F8
add r0, r0, r0
@@ -797,7 +797,7 @@ FUN_02080384: ; 0x02080384
bne _02080418
mov r1, #0x91
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r3, #0x2
add r2, r0, #0x0
str r3, [sp, #0x0]
@@ -809,7 +809,7 @@ FUN_02080384: ; 0x02080384
ldr r0, [r5, #0xc]
mov r1, #0x92
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
ldr r0, [r5, #0x8]
mov r1, #0x6
@@ -817,7 +817,7 @@ FUN_02080384: ; 0x02080384
ldr r0, [r5, #0xc]
mov r1, #0x93
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
mov r0, #0x0
str r0, [sp, #0x0]
@@ -830,7 +830,7 @@ FUN_02080384: ; 0x02080384
ldr r0, [r5, #0xc]
mov r1, #0x97
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
ldr r0, [r5, #0x8]
mov r1, #0x8
@@ -839,7 +839,7 @@ FUN_02080384: ; 0x02080384
_02080418:
mov r1, #0x94
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r3, #0x2
add r2, r0, #0x0
str r3, [sp, #0x0]
@@ -851,7 +851,7 @@ _02080418:
ldr r0, [r5, #0xc]
mov r1, #0x95
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
ldr r0, [r5, #0x8]
mov r1, #0x6
@@ -859,7 +859,7 @@ _02080418:
ldr r0, [r5, #0xc]
mov r1, #0x96
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
mov r0, #0x0
str r0, [sp, #0x0]
@@ -872,7 +872,7 @@ _02080418:
ldr r0, [r5, #0xc]
mov r1, #0x98
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
ldr r0, [r5, #0x8]
mov r1, #0x8
@@ -899,37 +899,37 @@ FUN_0208048C: ; 0x0208048C
ldr r0, [r4, #0xc]
mov r1, #0x46
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0xc]
ldr r0, [r4, #0xc]
mov r1, #0x47
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x8]
ldr r0, [r4, #0xc]
mov r1, #0x48
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x4]
ldr r0, [r4, #0xc]
mov r1, #0x49
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x0]
ldr r0, [r4, #0xc]
mov r1, #0x4a
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0x0
ldr r0, [r4, #0xc]
mov r1, #0x4b
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0x0
mov r1, #0x0
ldr r0, [r4, #0xc]
add r2, r1, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x6
bl _u32_div_f
cmp r1, #0x5
@@ -1196,7 +1196,7 @@ FUN_020806B4: ; 0x020806B4
ldr r0, [r5, #0xc]
mov r1, #0x9
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0x0
mov r0, #0x12
ldr r1, [r5, #0x0]
@@ -1232,7 +1232,7 @@ FUN_020806F4: ; 0x020806F4
mov r1, #0x4c
mov r2, #0x0
add r5, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02080708
b _0208084E
@@ -1240,13 +1240,13 @@ _02080708:
add r0, r5, #0x0
mov r1, #0x97
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _02080774
add r0, r5, #0x0
mov r1, #0x98
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0x0
mov r0, #0x0
mov r1, #0x37
@@ -1259,7 +1259,7 @@ _02080732:
add r0, r5, #0x0
mov r1, #0x6e
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x1
bne _0208074C
cmp r4, #0x1
@@ -1273,7 +1273,7 @@ _0208074C:
add r0, r5, #0x0
mov r1, #0x98
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, r0, #0x0
mov r0, #0x1
add r1, r0, #0x0
@@ -1294,13 +1294,13 @@ _02080774:
add r0, r5, #0x0
mov r1, #0x6e
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x1
bne _020807D6
add r0, r5, #0x0
mov r1, #0x97
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0x0
mov r0, #0x1
mov r1, #0x2
@@ -1318,7 +1318,7 @@ _020807A6:
add r0, r5, #0x0
mov r1, #0x97
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, r0, #0x0
mov r0, #0x2
mov r1, #0x1
@@ -1344,7 +1344,7 @@ _020807D6:
add r0, r5, #0x0
mov r1, #0x97
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0x0
mov r0, #0x1
add r1, r0, #0x0
@@ -1354,7 +1354,7 @@ _020807D6:
add r0, r5, #0x0
mov r1, #0x97
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0x0
mov r0, #0x1
mov r1, #0x0
@@ -1364,7 +1364,7 @@ _020807D6:
add r0, r5, #0x0
mov r1, #0x97
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0x0
mov r0, #0x1
mov r1, #0x9
@@ -1374,7 +1374,7 @@ _020807D6:
add r0, r5, #0x0
mov r1, #0x97
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, r0, #0x0
mov r0, #0x1
mov r1, #0xa
@@ -1403,13 +1403,13 @@ _0208084E:
add r0, r5, #0x0
mov r1, #0x6e
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x1
bne _02080880
add r0, r5, #0x0
mov r1, #0x97
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0x0
mov r0, #0x2
mov r1, #0x1
@@ -1428,7 +1428,7 @@ _02080884:
add r0, r5, #0x0
mov r1, #0x6e
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x1
bne _02080896
mov r0, #0x13
@@ -1484,7 +1484,7 @@ _020808E4:
add r0, r4, #0x0
mov r1, #0x4c
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0x0
bne _0208090C
add r0, r4, #0x0
@@ -1514,7 +1514,7 @@ _0208091E:
_0208092A:
mov r1, #0x4c
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0x0
bne _02080958
add r0, r4, #0x0
@@ -1575,7 +1575,7 @@ _020809B0:
add r0, r4, #0x0
mov r1, #0x4c
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0x0
bne _020809E2
add r0, r4, #0x0
@@ -1601,7 +1601,7 @@ _020809F6:
add r0, r4, #0x0
mov r1, #0x4c
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0x0
bne _02080A1E
add r0, r4, #0x0
@@ -1629,7 +1629,7 @@ _02080A30:
_02080A38:
mov r1, #0x4c
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0x0
beq _02080AE0
mov r0, #0x1
@@ -1657,39 +1657,39 @@ _02080A66:
add r0, r4, #0x0
mov r1, #0x98
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
str r0, [sp, #0x0]
add r0, r4, #0x0
mov r1, #0x97
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0x0
mov r1, #0x94
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
str r0, [sp, #0x0]
add r0, r4, #0x0
mov r1, #0x91
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0x0
mov r1, #0x95
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
str r0, [sp, #0x0]
add r0, r4, #0x0
mov r1, #0x92
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0x0
mov r1, #0x96
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
str r0, [sp, #0x0]
add r0, r4, #0x0
mov r1, #0x93
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
_02080ACC:
add r0, r4, #0x0
add r1, r5, #0x0
@@ -1723,15 +1723,15 @@ FUN_02080AE4: ; 0x02080AE4
add r0, r5, #0x0
mov r1, #0x7
add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r5, #0x0
mov r1, #0x9c
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r5, #0x0
mov r1, #0x90
add r2, r4, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0x0
bl FUN_02021A20
add sp, #0x8
@@ -1751,19 +1751,19 @@ FUN_02080B30: ; 0x02080B30
bne _02080B76
add r0, r5, #0x0
mov r1, #0x97
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r5, #0x0
mov r1, #0x91
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r5, #0x0
mov r1, #0x92
add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r5, #0x0
mov r1, #0x93
add r2, sp, #0x8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add sp, #0x10
pop {r3-r5}
pop {r3}
@@ -1772,19 +1772,19 @@ FUN_02080B30: ; 0x02080B30
_02080B76:
add r0, r5, #0x0
mov r1, #0x98
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r5, #0x0
mov r1, #0x94
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r5, #0x0
mov r1, #0x95
add r2, sp, #0x4
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r5, #0x0
mov r1, #0x96
add r2, sp, #0x8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add sp, #0x10
pop {r3-r5}
pop {r3}
@@ -1803,36 +1803,36 @@ FUN_02080BA8: ; 0x02080BA8
add r2, sp, #0x0
bne _02080BE0
mov r1, #0x97
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0x0
mov r1, #0x91
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0x0
mov r1, #0x92
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0x0
mov r1, #0x93
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add sp, #0x4
pop {r3-r4, pc}
_02080BE0:
mov r1, #0x98
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0x0
mov r1, #0x94
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0x0
mov r1, #0x95
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0x0
mov r1, #0x96
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add sp, #0x4
pop {r3-r4, pc}
@@ -1843,12 +1843,12 @@ FUN_02080C08: ; 0x02080C08
add r4, r0, #0x0
mov r1, #0xa0
mov r2, #0x0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
str r0, [sp, #0x0]
add r0, r4, #0x0
mov r1, #0x9b
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add sp, #0x4
pop {r3-r4, pc}
.balign 4
@@ -1860,5 +1860,5 @@ FUN_02080C28: ; 0x02080C28
str r1, [sp, #0x0]
mov r1, #0x6e
add r2, sp, #0x0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
pop {r3, pc}
diff --git a/arm9/asm/unk_02080C38.s b/arm9/asm/unk_02080C38.s
index f40af68a..a5d57357 100644
--- a/arm9/asm/unk_02080C38.s
+++ b/arm9/asm/unk_02080C38.s
@@ -108,7 +108,7 @@ _02080CB4:
ldr r0, [r6, #0xc]
bl FUN_0206BB1C
mov r1, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r7, r0, #0x0
add r0, r6, #0x0
bl FUN_020377AC
@@ -810,7 +810,7 @@ FUN_02081214: ; 0x02081214
bl FUN_0201681C
bl FUN_020811D8
add r4, r0, #0x0
- bl getseed_LC
+ bl GetLCRNGSeed
mov r1, #0x67
lsl r1, r1, #0x6
str r0, [r4, r1]
@@ -1083,7 +1083,7 @@ _02081454:
ldr r0, [r4, #0x0]
ldr r2, [r2, #0x0]
mov r1, #0x90
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r6, #0x1
add r4, r4, #0x4
cmp r6, #0x4
@@ -1187,7 +1187,7 @@ _020814FE:
mov r0, #0x67
lsl r0, r0, #0x6
ldr r0, [r7, r0]
- bl seedr_LC
+ bl SetLCRNGSeed
add r0, r7, #0x0
bl FUN_0208120C
mov r0, #0x14
@@ -1223,7 +1223,7 @@ _02081566:
add r0, r5, #0x0
add r1, #0x7a
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0x0
b _020815BA
_02081576:
@@ -1231,7 +1231,7 @@ _02081576:
add r0, r5, #0x0
add r1, #0x7e
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0x0
b _020815BA
_02081586:
@@ -1239,7 +1239,7 @@ _02081586:
add r0, r5, #0x0
add r1, #0x82
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0x0
b _020815BA
_02081596:
@@ -1247,7 +1247,7 @@ _02081596:
add r0, r5, #0x0
add r1, #0x86
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0x0
b _020815BA
_020815A6:
@@ -1255,7 +1255,7 @@ _020815A6:
add r0, r5, #0x0
add r1, #0x8a
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0x0
b _020815BA
_020815B6:
@@ -2973,7 +2973,7 @@ FUN_02082254: ; 0x02082254
ldr r0, _02082280 ; =0x00001990
mov r2, #0x0
ldr r0, [r4, r0]
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _0208227A
mov r0, #0x1
@@ -3590,7 +3590,7 @@ _020826AC:
add r1, r6, #0x0
ldr r0, [r4, r0]
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
bne _020826DE
mov r5, #0x1
@@ -3599,7 +3599,7 @@ _020826DE:
add r1, r6, #0x0
ldr r0, [r4, r0]
add r2, sp, #0x8
- bl SetMonDataEncrypted
+ bl SetMonData
_020826EA:
ldr r0, _02082848 ; =0x0000198C
ldr r0, [r4, r0]
@@ -3748,7 +3748,7 @@ _02082820:
lsl r2, r2, #0x10
mov r1, #0x9
lsr r2, r2, #0x10
- bl MonApplyFriendshipModEncrypted
+ bl MonApplyFriendshipMod
_0208283A:
add sp, #0xc
pop {r4-r7, pc}
@@ -3766,27 +3766,27 @@ FUN_0208285C: ; 0x0208285C
push {r4, lr}
bl FUN_020126D8
add r4, r0, #0x0
- bl getseed_LC
+ bl GetLCRNGSeed
add r0, #0xa
mul r0, r4
lsl r0, r0, #0x10
lsr r0, r0, #0x10
- bl seedr_LC
+ bl SetLCRNGSeed
pop {r4, pc}
.balign 4
thumb_func_start FUN_02082878
FUN_02082878: ; 0x02082878
- ldr r3, _0208287C ; =rand_LC
+ ldr r3, _0208287C ; =LCRandom
bx r3
.balign 4
-_0208287C: .word rand_LC
+_0208287C: .word LCRandom
thumb_func_start FUN_02082880
FUN_02082880: ; 0x02082880
push {r4, lr}
add r4, r1, #0x0
- bl rand_ALT
+ bl PRandom
str r0, [r4, #0x0]
lsr r0, r0, #0x10
lsl r0, r0, #0x10
diff --git a/arm9/asm/unk_020828BC.s b/arm9/asm/unk_020828BC.s
index fb6f03c8..46ed9c3c 100644
--- a/arm9/asm/unk_020828BC.s
+++ b/arm9/asm/unk_020828BC.s
@@ -765,7 +765,7 @@ FUN_02082D60: ; 0x02082D60
lsl r1, r1, #0x18
lsr r1, r1, #0x18
mov r2, #0x0
- bl FUN_02066E74
+ bl GenPersonalityByGenderAndNature
mov r1, #0x1
str r1, [sp, #0x0]
str r0, [sp, #0x4]
@@ -789,7 +789,7 @@ _02082D9A:
add r0, r6, #0x0
add r1, #0x36
add r2, #0x2
- bl SetMonDataEncrypted
+ bl SetMonData
add r4, r4, #0x1
add r5, r5, #0x2
cmp r4, #0x4
@@ -810,11 +810,11 @@ _02082D9A:
add r0, r6, #0x0
mov r1, #0x76
add r2, r5, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r2, [sp, #0x14]
add r0, r6, #0x0
mov r1, #0x90
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
bl FUN_02021A20
ldr r0, [sp, #0x14]
@@ -838,30 +838,30 @@ _02082D9A:
strb r1, [r0, #0x0]
add r0, r6, #0x0
mov r1, #0x13
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r6, #0x0
mov r1, #0x14
add r2, sp, #0x1c
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0x18
add r0, r6, #0x0
mov r1, #0x15
add r2, #0x3
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0x18
add r0, r6, #0x0
mov r1, #0x16
add r2, #0x2
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0x18
add r0, r6, #0x0
mov r1, #0x17
add r2, #0x1
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r6, #0x0
mov r1, #0x18
add r2, sp, #0x18
- bl SetMonDataEncrypted
+ bl SetMonData
add sp, #0x20
pop {r3-r7, pc}
nop
@@ -1717,7 +1717,7 @@ FUN_02083454: ; 0x02083454
cmp r1, #0x1
bne _02083474
_02083464:
- bl rand_LC
+ bl LCRandom
mov r1, #0xc
bl _s32_div_f
add sp, #0xc
@@ -1762,7 +1762,7 @@ _020834A6:
add r4, r4, #0x3
strb r0, [r2, r1]
_020834BE:
- bl rand_LC
+ bl LCRandom
add r1, r4, #0x0
bl _s32_div_f
add r0, sp, #0x0
diff --git a/arm9/asm/unk_02084098.s b/arm9/asm/unk_02084098.s
index a3eac9b2..d05c8765 100644
--- a/arm9/asm/unk_02084098.s
+++ b/arm9/asm/unk_02084098.s
@@ -387,7 +387,7 @@ _02084280:
blt _02084280
ldr r0, _020842AC ; =0x00000F6C
str r3, [r4, r0]
- bl rand_LC
+ bl LCRandom
mov r1, #0xf7
lsl r1, r1, #0x4
str r0, [r4, r1]
diff --git a/arm9/asm/unk_020842DC.s b/arm9/asm/unk_020842DC.s
index 17aec9b7..91504fe7 100644
--- a/arm9/asm/unk_020842DC.s
+++ b/arm9/asm/unk_020842DC.s
@@ -28,7 +28,7 @@ _02084308:
add r0, r6, #0x0
mov r1, #0x9f
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, r0, #0x0
add r0, r4, #0x0
mov r1, #0xf
@@ -103,7 +103,7 @@ _020843AA:
add r0, r6, #0x0
mov r1, #0xa2
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, r0, #0x0
add r0, r4, #0x0
mov r1, #0x17
@@ -139,7 +139,7 @@ _020843EA:
add r0, r6, #0x0
mov r1, #0xa3
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r5, r0
bhs _02084414
add r0, r4, #0x0
@@ -156,7 +156,7 @@ _02084414:
add r0, r6, #0x0
mov r1, #0xa0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x64
bhs _0208443A
add r0, r4, #0x0
@@ -175,7 +175,7 @@ _0208443A:
ldr r3, [sp, #0x4]
add r1, r6, #0x0
mov r2, #0x3
- bl FUN_02069168
+ bl GetMonEvolution
cmp r0, #0x0
beq _02084464
add r0, r4, #0x0
@@ -199,18 +199,18 @@ _0208447C:
add r0, r6, #0x0
add r1, #0x3e
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x3
bhs _020844B2
add r1, r7, #0x0
add r0, r6, #0x0
add r1, #0x36
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
mov r1, #0x0
- bl FUN_0206AB30
+ bl WazaGetMaxPp
cmp r0, #0x5
blo _020844B2
add r0, r4, #0x0
@@ -260,37 +260,37 @@ _02084502:
add r0, r6, #0x0
mov r1, #0xd
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, r0, #0x0
add r0, r6, #0x0
mov r1, #0xe
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x14]
add r0, r6, #0x0
mov r1, #0xf
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x10]
add r0, r6, #0x0
mov r1, #0x10
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0xc]
add r0, r6, #0x0
mov r1, #0x11
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x8]
add r0, r6, #0x0
mov r1, #0x12
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0x0
add r0, r6, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x49
lsl r1, r1, #0x2
cmp r0, r1
@@ -616,7 +616,7 @@ FUN_020847F8: ; 0x020847F8
add r5, r1, #0x0
add r1, r2, #0x0
add r4, r3, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r3, [sp, #0x10]
add r1, r5, #0x0
add r2, r4, #0x0
@@ -652,7 +652,7 @@ _02084840:
mov r1, #0x9f
add r2, r6, #0x0
add r7, r6, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x50]
str r0, [sp, #0x54]
add r0, r4, #0x0
@@ -717,18 +717,18 @@ _020848C0:
add r0, r5, #0x0
mov r1, #0x9f
add r2, sp, #0x54
- bl SetMonDataEncrypted
+ bl SetMonData
mov r6, #0x1
_020848D4:
add r0, r5, #0x0
mov r1, #0xa2
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x50]
add r0, r5, #0x0
mov r1, #0xa3
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x54]
add r0, r4, #0x0
mov r1, #0x17
@@ -786,7 +786,7 @@ _0208495C:
add r0, r5, #0x0
mov r1, #0xa0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x58]
add r0, r4, #0x0
mov r1, #0x19
@@ -797,20 +797,20 @@ _0208495C:
cmp r0, #0x64
bge _020849B2
add r0, r5, #0x0
- bl CalcMonExpToNextLevelEncrypted
+ bl CalcMonExpToNextLevel
add r2, r0, #0x0
add r0, r5, #0x0
mov r1, #0x8
- bl AddMonPartyStatEncrypted
+ bl AddMonData
add r0, r5, #0x0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
ldr r0, [sp, #0x50]
cmp r0, #0x0
bne _020849B0
add r0, r5, #0x0
mov r1, #0xa3
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0x0
ldr r3, [sp, #0x54]
ldr r1, [sp, #0x50]
@@ -915,37 +915,37 @@ _02084A66:
add r0, r5, #0x0
mov r1, #0xd
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x50]
add r0, r5, #0x0
mov r1, #0xe
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x54]
add r0, r5, #0x0
mov r1, #0xf
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x58]
add r0, r5, #0x0
mov r1, #0x10
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x5c]
add r0, r5, #0x0
mov r1, #0x11
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x60]
add r0, r5, #0x0
mov r1, #0x12
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x64]
add r0, r5, #0x0
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x49
lsl r1, r1, #0x2
cmp r0, r1
@@ -985,9 +985,9 @@ _02084A66:
add r0, r5, #0x0
mov r1, #0xd
add r2, sp, #0x50
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
mov r6, #0x1
_02084B18:
ldr r0, [sp, #0x6c]
@@ -1030,9 +1030,9 @@ _02084B20:
add r0, r5, #0x0
mov r1, #0xe
add r2, sp, #0x54
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
mov r6, #0x1
_02084B78:
ldr r0, [sp, #0x6c]
@@ -1075,9 +1075,9 @@ _02084B80:
add r0, r5, #0x0
mov r1, #0xf
add r2, sp, #0x58
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
mov r6, #0x1
_02084BD8:
ldr r0, [sp, #0x6c]
@@ -1120,9 +1120,9 @@ _02084BE0:
add r0, r5, #0x0
mov r1, #0x10
add r2, sp, #0x5c
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
mov r6, #0x1
_02084C38:
ldr r0, [sp, #0x6c]
@@ -1165,9 +1165,9 @@ _02084C40:
add r0, r5, #0x0
mov r1, #0x11
add r2, sp, #0x60
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
mov r6, #0x1
_02084C98:
ldr r0, [sp, #0x6c]
@@ -1210,9 +1210,9 @@ _02084CA0:
add r0, r5, #0x0
mov r1, #0x12
add r2, sp, #0x64
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
mov r6, #0x1
_02084CF8:
ldr r0, [sp, #0x6c]
@@ -1233,7 +1233,7 @@ _02084D14:
add r0, r5, #0x0
mov r1, #0x9
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x50]
cmp r0, #0x64
bge _02084D54
@@ -1320,7 +1320,7 @@ FUN_02084DD0: ; 0x02084DD0
add r5, r1, #0x0
add r1, r2, #0x0
add r4, r3, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r1, [sp, #0x14]
add r3, sp, #0x0
str r1, [sp, #0x0]
@@ -1338,7 +1338,7 @@ FUN_02084DF0: ; 0x02084DF0
add r1, #0x36
mov r2, #0x0
add r5, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r7, r0, #0x10
bne _02084E08
@@ -1349,18 +1349,18 @@ _02084E08:
add r0, r5, #0x0
add r1, #0x3a
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
add r6, #0x3e
lsr r4, r0, #0x18
add r0, r5, #0x0
add r1, r6, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r1, r0, #0x18
add r0, r7, #0x0
- bl FUN_0206AB30
+ bl WazaGetMaxPp
cmp r4, r0
bhs _02084E36
mov r0, #0x1
@@ -1382,7 +1382,7 @@ FUN_02084E40: ; 0x02084E40
add r1, #0x36
mov r2, #0x0
add r6, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r7, r0, #0x10
bne _02084E5E
@@ -1397,19 +1397,19 @@ _02084E5E:
ldr r1, [sp, #0x0]
add r0, r6, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x4
strb r0, [r1, #0x0]
add r5, #0x3e
add r0, r6, #0x0
add r1, r5, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r0, #0x0
lsl r1, r1, #0x18
add r0, r7, #0x0
lsr r1, r1, #0x18
- bl FUN_0206AB30
+ bl WazaGetMaxPp
add r1, sp, #0x4
ldrb r2, [r1, #0x0]
cmp r2, r0
@@ -1429,7 +1429,7 @@ _02084EA8:
ldr r1, [sp, #0x0]
add r0, r6, #0x0
add r2, sp, #0x4
- bl SetMonDataEncrypted
+ bl SetMonData
add sp, #0x8
mov r0, #0x1
pop {r3-r7, pc}
@@ -1450,7 +1450,7 @@ FUN_02084EC0: ; 0x02084EC0
mov r2, #0x0
add r5, r0, #0x0
str r1, [sp, #0x0]
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x8
strb r0, [r1, #0x0]
ldrb r0, [r1, #0x0]
@@ -1464,12 +1464,12 @@ _02084EE6:
add r0, r5, #0x0
add r1, #0x36
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
mov r1, #0x0
str r0, [sp, #0x4]
- bl FUN_0206AB30
+ bl WazaGetMaxPp
cmp r0, #0x5
bhs _02084F08
add sp, #0xc
@@ -1480,12 +1480,12 @@ _02084F08:
add r0, r5, #0x0
add r1, r4, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x8
strb r0, [r1, #0x1]
ldrb r1, [r1, #0x0]
ldr r0, [sp, #0x4]
- bl FUN_0206AB30
+ bl WazaGetMaxPp
add r7, r0, #0x0
add r0, sp, #0x8
ldrb r0, [r0, #0x0]
@@ -1502,7 +1502,7 @@ _02084F34:
strb r0, [r1, #0x0]
ldrb r1, [r1, #0x0]
ldr r0, [sp, #0x4]
- bl FUN_0206AB30
+ bl WazaGetMaxPp
add r1, sp, #0x8
ldrb r2, [r1, #0x1]
add r0, r2, r0
@@ -1511,12 +1511,12 @@ _02084F34:
ldr r1, [sp, #0x0]
add r0, r5, #0x0
add r2, sp, #0x8
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0x8
add r0, r5, #0x0
add r1, r4, #0x0
add r2, #0x1
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x1
add sp, #0xc
pop {r4-r7, pc}
@@ -1556,7 +1556,7 @@ _02084F96:
_02084F98:
mov r1, #0xa2
add r2, sp, #0xc
- bl SetMonDataEncrypted
+ bl SetMonData
pop {r3}
pop {r3}
add sp, #0x10
@@ -1621,7 +1621,7 @@ FUN_02085000: ; 0x02085000
add r4, r1, #0x0
mov r1, #0x9
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0xff
blt _02085014
mov r0, #0x0
@@ -1723,7 +1723,7 @@ _020850BE:
add r0, r5, #0x0
mov r1, #0x6
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
ldr r2, [sp, #0x20]
lsr r0, r0, #0x10
@@ -1741,7 +1741,7 @@ _020850EC:
add r0, r5, #0x0
mov r1, #0x9a
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0xb
bne _02085100
ldr r0, [sp, #0x18]
@@ -1751,7 +1751,7 @@ _02085100:
add r0, r5, #0x0
mov r1, #0x97
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r6, r0
bne _02085114
ldr r0, [sp, #0x18]
@@ -1775,7 +1775,7 @@ _0208512C:
add r0, r5, #0x0
mov r1, #0x9
add r2, sp, #0x18
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x1
pop {r4-r6}
pop {r3}
@@ -1787,7 +1787,7 @@ FUN_02085140: ; 0x02085140
push {r4-r7, lr}
sub sp, #0xc
str r0, [sp, #0x0]
- bl FUN_0206B9AC
+ bl GetPartyCount
mov r7, #0x0
str r0, [sp, #0x4]
cmp r0, #0x0
@@ -1796,28 +1796,28 @@ FUN_02085140: ; 0x02085140
_02085154:
ldr r0, [sp, #0x0]
add r1, r7, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xab
mov r2, #0x0
add r5, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _020851AC
add r0, r5, #0x0
mov r1, #0xa3
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x8]
add r0, r5, #0x0
mov r1, #0xa2
add r2, sp, #0x8
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x0
str r0, [sp, #0x8]
add r0, r5, #0x0
mov r1, #0x9f
add r2, sp, #0x8
- bl SetMonDataEncrypted
+ bl SetMonData
mov r4, #0x0
_02085190:
add r0, r5, #0x0
diff --git a/arm9/asm/unk_02085258.s b/arm9/asm/unk_02085258.s
deleted file mode 100644
index ba69aea4..00000000
--- a/arm9/asm/unk_02085258.s
+++ /dev/null
@@ -1,146 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .text
-
- thumb_func_start FUN_02085258
-FUN_02085258: ; 0x02085258
- ldr r3, _02085260 ; =NARC_ctor
- add r1, r0, #0x0
- mov r0, #0x44
- bx r3
- .balign 4
-_02085260: .word NARC_ctor
-
- thumb_func_start FUN_02085264
-FUN_02085264: ; 0x02085264
- ldr r3, _02085268 ; =NARC_AllocAndReadWholeMember
- bx r3
- .balign 4
-_02085268: .word NARC_AllocAndReadWholeMember
-
- thumb_func_start FUN_0208526C
-FUN_0208526C: ; 0x0208526C
- ldr r3, _02085270 ; =NARC_dtor
- bx r3
- .balign 4
-_02085270: .word NARC_dtor
-
- thumb_func_start FUN_02085274
-FUN_02085274: ; 0x02085274
- add r3, r0, #0x0
- add r2, r1, #0x0
- add r1, r3, #0x0
- ldr r3, _02085280 ; =AllocAndReadWholeNarcMemberByIdPair
- mov r0, #0x44
- bx r3
- .balign 4
-_02085280: .word AllocAndReadWholeNarcMemberByIdPair
-
- thumb_func_start FUN_02085284
-FUN_02085284: ; 0x02085284
- ldr r3, _0208528C ; =FUN_02085274
- sub r0, #0x95
- bx r3
- nop
-_0208528C: .word FUN_02085274
-
- thumb_func_start FUN_02085290
-FUN_02085290: ; 0x02085290
- cmp r1, #0xa
- bhi _020852E2
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #0x6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_020852A0: ; jump table (using 16-bit offset)
- .short _020852B6 - _020852A0 - 2; case 0
- .short _020852BA - _020852A0 - 2; case 1
- .short _020852BE - _020852A0 - 2; case 2
- .short _020852C2 - _020852A0 - 2; case 3
- .short _020852C6 - _020852A0 - 2; case 4
- .short _020852CA - _020852A0 - 2; case 5
- .short _020852CE - _020852A0 - 2; case 6
- .short _020852D2 - _020852A0 - 2; case 7
- .short _020852D6 - _020852A0 - 2; case 8
- .short _020852DA - _020852A0 - 2; case 9
- .short _020852DE - _020852A0 - 2; case 10
-_020852B6:
- ldrh r0, [r0, #0x0]
- bx lr
-_020852BA:
- ldrb r0, [r0, #0x2]
- bx lr
-_020852BE:
- ldrb r0, [r0, #0x3]
- bx lr
-_020852C2:
- ldrb r0, [r0, #0x4]
- bx lr
-_020852C6:
- ldrb r0, [r0, #0x5]
- bx lr
-_020852CA:
- ldrb r0, [r0, #0x6]
- bx lr
-_020852CE:
- ldrb r0, [r0, #0x7]
- bx lr
-_020852D2:
- ldrb r0, [r0, #0x8]
- bx lr
-_020852D6:
- ldrb r0, [r0, #0x9]
- bx lr
-_020852DA:
- ldrb r0, [r0, #0xa]
- bx lr
-_020852DE:
- ldrb r0, [r0, #0xb]
- bx lr
-_020852E2:
- mov r0, #0x0
- bx lr
- .balign 4
-
- thumb_func_start FUN_020852E8
-FUN_020852E8: ; 0x020852E8
- push {r3-r5, lr}
- ldr r2, _0208530C ; =0x00000175
- add r4, r0, #0x0
- add r3, r1, #0x0
- mov r0, #0x1
- mov r1, #0x1a
- bl NewMsgDataFromNarc
- add r5, r0, #0x0
- add r1, r4, #0x0
- bl FUN_0200A914
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl DestroyMsgData
- add r0, r4, #0x0
- pop {r3-r5, pc}
- .balign 4
-_0208530C: .word 0x00000175
-
- thumb_func_start FUN_02085310
-FUN_02085310: ; 0x02085310
- push {r3-r5, lr}
- mov r2, #0x5d
- add r4, r0, #0x0
- add r3, r1, #0x0
- mov r0, #0x1
- mov r1, #0x1a
- lsl r2, r2, #0x2
- bl NewMsgDataFromNarc
- add r5, r0, #0x0
- add r1, r4, #0x0
- bl FUN_0200A914
- add r4, r0, #0x0
- add r0, r5, #0x0
- bl DestroyMsgData
- add r0, r4, #0x0
- pop {r3-r5, pc}
- .balign 4
diff --git a/arm9/asm/unk_020854E0.s b/arm9/asm/unk_020854E0.s
index 0921775e..b2b33741 100644
--- a/arm9/asm/unk_020854E0.s
+++ b/arm9/asm/unk_020854E0.s
@@ -46,9 +46,9 @@ FUN_020854E0: ; 0x020854E0
strh r0, [r4, #0xc]
ldr r0, [sp, #0x20]
str r5, [r4, #0x10]
- bl FUN_020256BC
+ bl CreateNewSealsObject
str r0, [r4, #0x14]
- bl FUN_02025658
+ bl InitSealsObject
ldr r0, [r4, #0x14]
mov r1, #0xff
add r2, r6, #0x0
@@ -106,12 +106,12 @@ FUN_02085578: ; 0x02085578
strh r0, [r4, #0x0]
str r5, [r4, #0x10]
add r0, r7, #0x0
- bl FUN_020256BC
+ bl CreateNewSealsObject
str r0, [r4, #0x14]
ldr r2, [r4, #0x14]
add r0, r6, #0x0
mov r1, #0xa9
- bl GetMonDataEncrypted
+ bl GetMonData
add r0, r4, #0x0
pop {r3-r7, pc}
.balign 4
@@ -133,7 +133,7 @@ FUN_020855B0: ; 0x020855B0
strh r0, [r4, #0x0]
add r0, r7, #0x0
str r5, [r4, #0x10]
- bl FUN_020256BC
+ bl CreateNewSealsObject
add r1, r6, #0x0
str r0, [r4, #0x14]
bl FUN_020257D0
@@ -180,7 +180,7 @@ _0208561E:
ldr r2, [r5, #0x14]
add r0, r4, #0x0
mov r1, #0xa9
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x1
pop {r3-r5, pc}
@@ -213,27 +213,27 @@ FUN_02085644: ; 0x02085644
cmp r6, r0
beq _0208569E
add r0, r4, #0x0
- bl FUN_020256BC
+ bl CreateNewSealsObject
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0xa9
add r2, r4, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r0, r7, #0x0
mov r1, #0x0
add r2, r6, #0x0
add r3, r4, #0x0
bl FUN_02025888
add r0, r4, #0x0
- bl FUN_02025658
+ bl InitSealsObject
add r0, r5, #0x0
mov r1, #0xa9
add r2, r4, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x0
mov r1, #0x6
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r4, #0x0
bl FreeToHeap
add r0, r6, #0x0
@@ -262,11 +262,11 @@ _020856BC:
add r0, r4, #0x0
mov r1, #0xa9
add r2, r6, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r4, #0x0
mov r1, #0x6
add r2, sp, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r7, #0x0
mov r1, #0x0
add r2, r5, #0x0
diff --git a/arm9/asm/unk_020859C0.s b/arm9/asm/unk_020859C0.s
index ed131b94..0111206a 100644
--- a/arm9/asm/unk_020859C0.s
+++ b/arm9/asm/unk_020859C0.s
@@ -178,7 +178,7 @@ _02085A7C:
beq _02085A9A
add r1, r7, #0x0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x0
beq _02085A9A
lsl r0, r0, #0x3
@@ -573,7 +573,7 @@ _02085DDC:
ldr r0, [r6, #0x10]
bl FUN_0206BB1C
str r0, [r7, #0x1c]
- bl FUN_0206B9AC
+ bl GetPartyCount
mov r4, #0x0
str r0, [sp, #0x0]
str r0, [r7, #0x0]
@@ -583,7 +583,7 @@ _02085DDC:
_02085E0A:
ldr r0, [r7, #0x1c]
add r1, r4, #0x0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [r5, #0x4]
ldr r0, [sp, #0x0]
add r4, r4, #0x1
@@ -675,7 +675,7 @@ _02085EA6:
mov r1, #0xa1
add r2, sp, #0x8
add r5, r0, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r1, [sp, #0x8]
ldr r0, [r7, #0x20]
sub r1, r1, #0x1
@@ -683,7 +683,7 @@ _02085EA6:
add r2, r0, #0x0
add r0, r5, #0x0
mov r1, #0xaa
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r1, [sp, #0x8]
ldr r0, [r7, #0x20]
sub r1, r1, #0x1
diff --git a/arm9/asm/unk_02086084.s b/arm9/asm/unk_02086084.s
index 8a6d5079..98f5d44f 100644
--- a/arm9/asm/unk_02086084.s
+++ b/arm9/asm/unk_02086084.s
@@ -125,7 +125,7 @@ _0208618C:
mov r1, #0x5
ldr r0, [r0, #0xc]
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _020861D8 ; =0x000001EA
cmp r0, r1
bne _020861A4
@@ -286,7 +286,7 @@ _020862D6:
add r0, r5, #0x0
mov r1, #0x4c
add r2, sp, #0x8
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0xb
str r0, [sp, #0x0]
ldr r3, [sp, #0x4]
@@ -297,7 +297,7 @@ _020862D6:
add r0, r5, #0x0
mov r1, #0xb2
mov r2, #0x0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r6, #0x0
bl FUN_020377AC
ldr r1, [r4, #0xc]
@@ -319,7 +319,7 @@ _0208633A:
ldr r0, [r4, #0xc]
mov r1, #0x5
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0x0
add r0, r6, #0x0
bl FUN_020377AC
@@ -334,13 +334,13 @@ _0208633A:
ldr r0, [r4, #0xc]
mov r1, #0x6f
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [r4, #0x8]
mov r2, #0x0
str r0, [r1, #0x10]
ldr r0, [r4, #0xc]
mov r1, #0x70
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [r4, #0x8]
str r0, [r1, #0x8]
ldr r1, _020863D8 ; =UNK_020FA5FC
@@ -359,7 +359,7 @@ _02086396:
ldr r0, [r4, #0xc]
ldr r2, [r2, #0x18]
mov r1, #0x77
- bl SetMonDataEncrypted
+ bl SetMonData
_020863A8:
ldr r0, [r4, #0x8]
bl FUN_02077AC4
diff --git a/arm9/asm/unk_02086414.s b/arm9/asm/unk_02086414.s
index 83a10e29..ef50db3f 100644
--- a/arm9/asm/unk_02086414.s
+++ b/arm9/asm/unk_02086414.s
@@ -1441,7 +1441,7 @@ FUN_02086EE8: ; 0x02086EE8
ldr r4, [r0, #0xc]
mov r2, #0x0
add r0, r4, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0x0
add r0, r4, #0x0
mov r1, #0x2
@@ -1452,7 +1452,7 @@ FUN_02086EE8: ; 0x02086EE8
add r0, r4, #0x0
mov r1, #0x4c
add r2, sp, #0x10
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, sp, #0x28
add r1, r4, #0x0
mov r2, #0x2
@@ -1487,11 +1487,11 @@ FUN_02086F4C: ; 0x02086F4C
mov r1, #0x5
ldr r0, [r0, #0xc]
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0x0
ldr r0, [r5, #0x0]
ldr r0, [r0, #0xc]
- bl GetMonNatureEncrypted
+ bl GetMonNature
add r6, r0, #0x0
ldr r0, [r5, #0x68]
mov r1, #0x1
diff --git a/arm9/asm/unk_02086FA8.s b/arm9/asm/unk_02086FA8.s
index f27865fe..e728ee4a 100644
--- a/arm9/asm/unk_02086FA8.s
+++ b/arm9/asm/unk_02086FA8.s
@@ -164,7 +164,7 @@ _020870D2:
mov r1, #0x5
ldr r0, [r0, #0xc]
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
bl FUN_02005578
@@ -447,7 +447,7 @@ _02087322:
mov r1, #0x5
ldr r0, [r0, #0xc]
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
bl FUN_02005578
diff --git a/arm9/asm/unk_02087D00.s b/arm9/asm/unk_02087D00.s
index c3c27acb..644d8dc5 100644
--- a/arm9/asm/unk_02087D00.s
+++ b/arm9/asm/unk_02087D00.s
@@ -446,7 +446,7 @@ _02087FFE:
strb r0, [r4, #0x11]
strb r6, [r4, #0x14]
ldr r0, [r4, #0x0]
- bl FUN_0206B9AC
+ bl GetPartyCount
strb r0, [r4, #0x13]
mov r1, #0x0
strh r1, [r4, #0x18]
@@ -540,7 +540,7 @@ FUN_020880A0: ; 0x020880A0
ldr r0, [r5, #0xc]
ldrb r1, [r5, #0x8]
ldr r0, [r0, #0x10]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [r4, #0x0]
ldr r0, [r5, #0xc]
ldr r0, [r0, #0x18]
@@ -608,7 +608,7 @@ FUN_02088130: ; 0x02088130
ldrb r0, [r5, #0x8]
strb r0, [r4, #0x14]
ldr r0, [r4, #0x0]
- bl FUN_0206B9AC
+ bl GetPartyCount
strb r0, [r4, #0x13]
mov r1, #0x0
strh r1, [r4, #0x18]
@@ -704,7 +704,7 @@ FUN_0208821C: ; 0x0208821C
add r6, r1, #0x0
add r4, r0, #0x0
add r0, r6, #0x0
- bl GetMonNatureEncrypted
+ bl GetMonNature
lsl r1, r0, #0x1
ldr r0, _02088310 ; =UNK_020FD17C
ldrb r0, [r0, r1]
@@ -723,7 +723,7 @@ _02088246:
add r0, r6, #0x0
add r1, #0x13
add r2, r7, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r1, r4, #0x2
str r0, [r5, r1]
add r0, r4, #0x1
@@ -791,7 +791,7 @@ _020882D4:
add r0, r6, #0x0
add r1, #0x13
add r2, r4, r2
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0x1
lsl r0, r0, #0x18
lsr r5, r0, #0x18
@@ -800,7 +800,7 @@ _020882D4:
add r0, r6, #0x0
mov r1, #0x9
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x8
strb r0, [r1, #0x0]
ldrb r0, [r1, #0x0]
@@ -811,7 +811,7 @@ _020882D4:
add r0, r6, #0x0
mov r1, #0x9
add r2, sp, #0x8
- bl SetMonDataEncrypted
+ bl SetMonData
_0208830C:
add sp, #0x30
pop {r3-r7, pc}
diff --git a/arm9/asm/unk_02088DD8.s b/arm9/asm/unk_02088DD8.s
index 9e8c27a7..1dda59b0 100644
--- a/arm9/asm/unk_02088DD8.s
+++ b/arm9/asm/unk_02088DD8.s
@@ -33,21 +33,21 @@ FUN_02088DF8: ; 0x02088DF8
mov r1, #0x5
mov r2, #0x0
add r5, r0, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0xc]
add r0, r5, #0x0
mov r1, #0x70
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x8]
add r0, r5, #0x0
mov r1, #0xa0
mov r2, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
mov r4, #0x0
@@ -59,7 +59,7 @@ _02088E34:
add r0, r5, #0x0
add r1, #0x36
add r2, r7, #0x0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r1, r4, #0x1
strh r0, [r6, r1]
add r0, r4, #0x1
diff --git a/arm9/global.inc b/arm9/global.inc
index db7e72c3..91b0ca46 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -1,7924 +1,7924 @@
-.extern CARD_CancelBackupAsync
-.extern CARD_CheckEnabled
-.extern CARD_GetResultCode
-.extern CARD_IdentifyBackup
-.extern CARD_Init
-.extern CARD_InitPulledOutCallback
-.extern CARD_IsPulledOut
-.extern CARD_LockBackup
-.extern CARD_LockRom
-.extern CARD_TryWaitBackupAsync
-.extern CARD_UnlockBackup
-.extern CARD_UnlockRom
-.extern CARD_WaitBackupAsync
-.extern CARDi_CheckPulledOutCore
-.extern CARDi_IdentifyBackupCore
-.extern CARDi_InitCommon
-.extern CARDi_OnFifoRecv
-.extern CARDi_ReadRom
-.extern CARDi_Request
-.extern CARDi_RequestStreamCommand
-.extern CARDi_SetTask
-.extern CARDi_TaskThread
-.extern CARDi_WaitAsync
-.extern CPSDnsIp
-.extern CPSGatewayIp
-.extern CPSMyIp
-.extern CPSNetMask
-.extern CPS_CalmDown
-.extern CPS_Cleanup
-.extern CPS_Resolve
-.extern CPS_SetRootCa
-.extern CPS_SetScavengerCallback
-.extern CPS_SetSsl
-.extern CPS_SetSslHandshakePriority
-.extern CPS_SetThreadPriority
-.extern CPS_SetUdpCallback
-.extern CPS_SocConsume
-.extern CPS_SocDatagramMode
-.extern CPS_SocDup
-.extern CPS_SocGetChar
-.extern CPS_SocGetEport
-.extern CPS_SocGetLength
-.extern CPS_SocPingMode
-.extern CPS_SocRead
-.extern CPS_SocRegister
-.extern CPS_SocRelease
-.extern CPS_SocUnRegister
-.extern CPS_SocUse
-.extern CPS_SocWho
-.extern CPS_SocWrite
-.extern CPS_SslAddRandomSeed
-.extern CPS_Startup
-.extern CPS_TcpClose
-.extern CPS_TcpConnect
-.extern CPS_TcpListen
-.extern CPS_TcpShutdown
-.extern CPSiAlloc
-.extern CPSiFree
-.extern CPSiRand32ctx
-.extern CPSi_RecvCallbackFunc
-.extern CPSi_SocConsumeRaw
-.extern CPSi_SslCleanup
-.extern CPSi_SslClose
-.extern CPSi_SslConnect
-.extern CPSi_SslConsume
-.extern CPSi_SslGetLength
-.extern CPSi_SslListen
-.extern CPSi_SslPeriodical
-.extern CPSi_SslRead
-.extern CPSi_SslShutdown
-.extern CPSi_SslWrite2
-.extern CPSi_TcpConnectRaw
-.extern CPSi_TcpListenRaw
-.extern CPSi_TcpReadRaw
-.extern CPSi_TcpShutdownRaw
-.extern CPSi_TcpWrite2Raw
-.extern CPSi_big_add
-.extern CPSi_big_div
-.extern CPSi_big_from_char
-.extern CPSi_big_montpower
-.extern CPSi_big_mult
-.extern CPSi_big_negate
-.extern CPSi_big_power
-.extern CPSi_big_sign
-.extern CPSi_big_sub
-.extern CPSi_char_from_big
-.extern CPSi_md5_calc
-.extern CPSi_md5_init
-.extern CPSi_md5_result
-.extern CPSi_rc4_crypt
-.extern CPSi_rc4_init
-.extern CPSi_sha1_calc
-.extern CPSi_sha1_init
-.extern CPSi_sha1_result
-.extern CPSi_sha1_result_prng
-.extern CPi_RestoreContext
-.extern CP_SaveContext
-.extern CTRDG_CpuCopy16
-.extern CTRDG_CpuCopy32
-.extern CTRDG_CpuCopy8
-.extern CTRDG_Enable
-.extern CTRDG_GetAgbGameCode
-.extern CTRDG_GetAgbMakerCode
-.extern CTRDG_IdentifyAgbBackup
-.extern CTRDG_Init
-.extern CTRDG_IsAgbCartridge
-.extern CTRDG_IsExisting
-.extern CTRDG_IsPulledOut
-.extern CTRDG_Read32
-.extern CTRDG_ReadAgbFlash
-.extern CTRDG_TerminateForPulledOut
-.extern CTRDG_WriteAndVerifyAgbFlashAsync
-.extern CTRDGi_ChangeLatestAccessCycle
-.extern CTRDGi_EraseFlashSectorLE
-.extern CTRDGi_InitCommon
-.extern CTRDGi_InitTaskThread
-.extern CTRDGi_LockByProcessor
-.extern CTRDGi_ProgramFlashByteLE
-.extern CTRDGi_ReadFlashID
-.extern CTRDGi_RestoreAccessCycle
-.extern CTRDGi_SendtoPxi
-.extern CTRDGi_SetFlashBankMx
-.extern CTRDGi_SetTask
-.extern CTRDGi_UnlockByProcessor
-.extern CallCustomAllocator
-.extern CallCustomDestructor
-.extern Call_FillMemWithValue
-.extern ConvertUIntToDecimalString
-.extern DC_FlushAll
-.extern DC_FlushRange
-.extern DC_InvalidateAll
-.extern DC_InvalidateRange
-.extern DC_StoreAll
-.extern DC_StoreRange
-.extern DC_WaitWriteBufferEmpty
-.extern DGT_Hash1GetDigest_R
-.extern DGT_Hash1Reset
-.extern DGT_Hash1SetSource
-.extern DGT_Hash2CalcHmac
-.extern DGT_Hash2GetDigest
-.extern DGT_Hash2Reset
-.extern DGT_Hash2SetSource
-.extern DGTi_Hash2CalcHmac
-.extern DGTi_hash2_arm4_small
-.extern ErrorHandling
-.extern FS_ChangeDir
-.extern FS_CloseFile
-.extern FS_ConvertPathToFileID
-.extern FS_FindArchive
-.extern FS_Init
-.extern FS_InitArchive
-.extern FS_InitFile
-.extern FS_IsAvailable
-.extern FS_LoadArchive
-.extern FS_LoadArchiveTables
-.extern FS_LoadOverlay
-.extern FS_LoadOverlayImage
-.extern FS_LoadOverlayImageAsync
-.extern FS_LoadOverlayInfo
-.extern FS_NotifyArchiveAsyncEnd
-.extern FS_OpenFile
-.extern FS_OpenFileDirect
-.extern FS_OpenFileFast
-.extern FS_ReadFile
-.extern FS_ReadFileAsync
-.extern FS_RegisterArchiveName
-.extern FS_ReleaseArchiveName
-.extern FS_ResumeArchive
-.extern FS_SeekFile
-.extern FS_SetArchiveProc
-.extern FS_SetDefaultDMA
-.extern FS_StartOverlay
-.extern FS_SuspendArchive
-.extern FS_TryLoadTable
-.extern FS_UnloadArchive
-.extern FS_UnloadArchiveTables
-.extern FS_UnloadOverlay
-.extern FS_WaitAsync
-.extern FSi_ExecuteSyncCommand
-.extern FSi_InitRom
-.extern FSi_ReleaseCommand
-.extern FSi_SendCommand
-.extern FSi_TranslateCommand
-.extern FUNRTC_Init
-.extern FUN_02000DF4
-.extern FUN_02000E7C
-.extern FUN_02000EE8
-.extern FUN_02000F18
-.extern FUN_02000FE8
-.extern FUN_020010A8
-.extern FUN_02001204
-.extern FUN_02001300
-.extern FUN_02001328
-.extern FUN_02001354
-.extern FUN_020013C8
-.extern FUN_020013E8
-.extern FUN_0200143C
-.extern FUN_02001448
-.extern FUN_0200145C
-.extern FUN_02001464
-.extern FUN_02001470
-.extern FUN_02001538
-.extern FUN_02001658
-.extern FUN_02001B80
-.extern FUN_02001B8C
-.extern FUN_02001C14
-.extern FUN_02001C34
-.extern FUN_02001C5C
-.extern FUN_02001C78
-.extern FUN_02001D2C
-.extern FUN_02001DDC
-.extern FUN_02001E5C
-.extern FUN_02001E60
-.extern FUN_020020EC
-.extern FUN_02002198
-.extern FUN_020021AC
-.extern FUN_020021CC
-.extern FUN_020021EC
-.extern FUN_02002218
-.extern FUN_020023C0
-.extern FUN_02002840
-.extern FUN_02002B60
-.extern FUN_02002B7C
-.extern FUN_02002BB8
-.extern FUN_02002BD4
-.extern FUN_02002BE4
-.extern FUN_02002BF4
-.extern FUN_02002C04
-.extern FUN_02002C14
-.extern FUN_02002C50
-.extern FUN_02002C84
-.extern FUN_02002CC0
-.extern FUN_02002CF8
-.extern FUN_02002D94
-.extern FUN_02002DB0
-.extern FUN_02002DE0
-.extern FUN_02002E14
-.extern FUN_02002E4C
-.extern FUN_02002ED0
-.extern FUN_02002EEC
-.extern FUN_02002F08
-.extern FUN_02002F40
-.extern FUN_02002F90
-.extern FUN_02002F9C
-.extern FUN_02002FD0
-.extern FUN_02002FEC
-.extern FUN_02003008
-.extern FUN_02003038
-.extern FUN_02003054
-.extern FUN_02003084
-.extern FUN_020030E8
-.extern FUN_02003108
-.extern FUN_0200317C
-.extern FUN_020031B8
-.extern FUN_020031FC
-.extern FUN_02003204
-.extern FUN_02003210
-.extern FUN_0200372C
-.extern FUN_020038E4
-.extern FUN_020038F0
-.extern FUN_02003914
-.extern FUN_02003974
-.extern FUN_020039E8
-.extern FUN_02003A30
-.extern FUN_02003A64
-.extern FUN_02003B40
-.extern FUN_02003B98
-.extern FUN_02003C10
-.extern FUN_02003CE8
-.extern FUN_02003D38
-.extern FUN_02003F3C
-.extern FUN_02003F64
-.extern FUN_02003F78
-.extern FUN_02003F90
-.extern FUN_02003FA8
-.extern FUN_02003FC4
-.extern FUN_02003FDC
-.extern FUN_02003FF4
-.extern FUN_02004018
-.extern FUN_020040F4
-.extern FUN_02004104
-.extern FUN_02004110
-.extern FUN_02004124
-.extern FUN_02004130
-.extern FUN_0200414C
-.extern FUN_0200415C
-.extern FUN_0200433C
-.extern FUN_020045C4
-.extern FUN_02004724
-.extern FUN_02004748
-.extern FUN_020047C8
-.extern FUN_02004810
-.extern FUN_02004828
-.extern FUN_0200483C
-.extern FUN_02004858
-.extern FUN_0200488C
-.extern FUN_020048A0
-.extern FUN_020048BC
-.extern FUN_020048D0
-.extern FUN_020048EC
-.extern FUN_020048F4
-.extern FUN_02004900
-.extern FUN_02004914
-.extern FUN_0200491C
-.extern FUN_02004928
-.extern FUN_02004930
-.extern FUN_02004984
-.extern FUN_02004A04
-.extern FUN_02004A6C
-.extern FUN_02004AAC
-.extern FUN_02004ABC
-.extern FUN_02004ACC
-.extern FUN_02004AE4
-.extern FUN_02004AF8
-.extern FUN_02004B30
-.extern FUN_02004C3C
-.extern FUN_02004C80
-.extern FUN_02004CA4
-.extern FUN_02004CAC
-.extern FUN_02004CB4
-.extern FUN_02004CFC
-.extern FUN_02004D04
-.extern FUN_02004D20
-.extern FUN_02004D34
-.extern FUN_02004D4C
-.extern FUN_02004D60
-.extern FUN_02004D74
-.extern FUN_02004D94
-.extern FUN_02004DB4
-.extern FUN_02004DBC
-.extern FUN_02004DCC
-.extern FUN_02004E08
-.extern FUN_02004E80
-.extern FUN_02004E8C
-.extern FUN_02004E98
-.extern FUN_02004F28
-.extern FUN_02004F64
-.extern FUN_02004F70
-.extern FUN_0200516C
-.extern FUN_020051EC
-.extern FUN_020051F4
-.extern FUN_0200521C
-.extern FUN_02005308
-.extern FUN_02005350
-.extern FUN_0200538C
-.extern FUN_020053CC
-.extern FUN_02005404
-.extern FUN_02005410
-.extern FUN_0200541C
-.extern FUN_02005454
-.extern FUN_020054A8
-.extern FUN_020054C8
-.extern FUN_020054F0
-.extern FUN_02005508
-.extern FUN_02005514
-.extern FUN_02005530
-.extern FUN_0200554C
-.extern FUN_02005578
-.extern FUN_02005614
-.extern FUN_02005670
-.extern FUN_020056AC
-.extern FUN_02005C28
-.extern FUN_02005CBC
-.extern FUN_02005CFC
-.extern FUN_02005D20
-.extern FUN_02005D48
-.extern FUN_02005DFC
-.extern FUN_02005E28
-.extern FUN_02005E64
-.extern FUN_02005E6C
-.extern FUN_02005E80
-.extern FUN_02005E90
-.extern FUN_02005EE0
-.extern FUN_02005F14
-.extern FUN_020061E8
-.extern FUN_0200621C
-.extern FUN_02006234
-.extern FUN_02006260
-.extern FUN_02006268
-.extern FUN_02006278
-.extern FUN_0200627C
-.extern FUN_0200628C
-.extern FUN_02006290
-.extern AllocAtEndAndReadWholeNarcMemberByIdPair
-.extern ReadFromNarcMemberByIdPair
-.extern AllocAndReadFromNarcMemberByIdPair
-.extern AllocAtEndAndReadFromNarcMemberByIdPair
-.extern NARC_ctor
-.extern NARC_dtor
-.extern NARC_AllocAndReadWholeMember
-.extern NARC_ReadWholeMember
-.extern NARC_GetMemberSize
-.extern NARC_ReadFromMember
-.extern NARC_ReadFile
-.extern NARC_GetFileCount
-.extern FUN_0200687C
-.extern FUN_020068C8
-.extern FUN_02006930
-.extern FUN_02006948
-.extern FUN_02006A34
-.extern FUN_02006A8C
-.extern FUN_02006AE4
-.extern FUN_02006B38
-.extern FUN_02006BB0
-.extern FUN_02006BDC
-.extern FUN_02006C08
-.extern FUN_02006C30
-.extern FUN_02006C5C
-.extern FUN_02006C88
-.extern FUN_02006C98
-.extern FUN_02006D18
-.extern FUN_02006D98
-.extern FUN_02006ED4
-.extern FUN_020072E8
-.extern FUN_02007314
-.extern FUN_0200737C
-.extern FUN_02007390
-.extern FUN_020073A0
-.extern FUN_020073E8
-.extern FUN_02007534
-.extern FUN_02007540
-.extern FUN_02007558
-.extern FUN_0200782C
-.extern FUN_020079E0
-.extern FUN_02007E40
-.extern FUN_02007E68
-.extern FUN_02007E98
-.extern FUN_02007EEC
-.extern FUN_02007F20
-.extern FUN_02007F34
-.extern FUN_02008010
-.extern FUN_02008030
-.extern FUN_020080D0
-.extern FUN_020080E0
-.extern FUN_0200813C
-.extern FUN_020081A8
-.extern FUN_020081B4
-.extern FUN_020081C0
-.extern FUN_020081C4
-.extern FUN_0200825C
-.extern FUN_02008268
-.extern FUN_02008284
-.extern FUN_02008290
-.extern FUN_02008904
-.extern FUN_02008A74
-.extern FUN_02008AA4
-.extern FUN_02008BE0
-.extern FUN_02008C80
-.extern FUN_02008C9C
-.extern FUN_02008D04
-.extern FUN_02008D24
-.extern FUN_02008D44
-.extern FUN_02008DDC
-.extern FUN_02008DEC
-.extern FUN_02008E2C
-.extern FUN_02008F34
-.extern FUN_02008F90
-.extern FUN_02008FEC
-.extern FUN_0200904C
-.extern FUN_020090AC
-.extern FUN_020090FC
-.extern FUN_02009168
-.extern FUN_020091E0
-.extern FUN_0200923C
-.extern FUN_02009298
-.extern FUN_020092F8
-.extern FUN_02009358
-.extern FUN_020093A8
-.extern FUN_02009424
-.extern FUN_02009448
-.extern FUN_0200945C
-.extern FUN_02009474
-.extern FUN_02009490
-.extern FUN_020094F0
-.extern FUN_02009530
-.extern FUN_02009544
-.extern FUN_0200955C
-.extern FUN_02009574
-.extern FUN_0200958C
-.extern FUN_020095A4
-.extern FUN_020095BC
-.extern FUN_02009630
-.extern FUN_0200965C
-.extern FUN_02009660
-.extern FUN_02009668
-.extern FUN_020096B4
-.extern FUN_020096CC
-.extern FUN_020096DC
-.extern FUN_02009710
-.extern FUN_0200973C
-.extern FUN_02009768
-.extern FUN_0200979C
-.extern FUN_02009A50
-.extern FUN_02009A90
-.extern FUN_02009AC4
-.extern FUN_02009B04
-.extern FUN_02009B44
-.extern FUN_02009B78
-.extern FUN_02009BB8
-.extern FUN_02009BE8
-.extern FUN_02009C0C
-.extern FUN_02009C30
-.extern FUN_02009C5C
-.extern FUN_02009C80
-.extern FUN_02009CDC
-.extern FUN_02009CF0
-.extern FUN_02009D34
-.extern FUN_02009D68
-.extern FUN_02009DAC
-.extern FUN_02009DE0
-.extern FUN_02009E04
-.extern FUN_02009E28
-.extern FUN_02009E54
-.extern FUN_02009E88
-.extern FUN_02009EAC
-.extern FUN_02009F80
-.extern FUN_02009FA0
-.extern FUN_02009FD8
-.extern FUN_0200A03C
-.extern FUN_0200A064
-.extern FUN_0200A06C
-.extern FUN_0200A208
-.extern FUN_0200A274
-.extern FUN_0200A2AC
-.extern FUN_0200A318
-.extern FUN_0200A344
-.extern FUN_0200A648
-.extern FUN_0200A738
-.extern NewMsgDataFromNarc
-.extern DestroyMsgData
-.extern FUN_0200A8E0
-.extern FUN_0200A914
-.extern FUN_0200A940
-.extern DecryptCopyString
-.extern GetSpeciesName
-.extern FUN_0200A9C4
-.extern FUN_0200AA14
-.extern FUN_0200AA50
-.extern FUN_0200AA80
-.extern FUN_0200AA90
-.extern FUN_0200AB18
-.extern FUN_0200ABB4
-.extern FUN_0200ABC0
-.extern FUN_0200ABE4
-.extern FUN_0200AC0C
-.extern FUN_0200AC60
-.extern FUN_0200ACA4
-.extern FUN_0200ACC0
-.extern FUN_0200ACF8
-.extern FUN_0200AD18
-.extern FUN_0200AD38
-.extern FUN_0200AD5C
-.extern FUN_0200AD94
-.extern FUN_0200ADCC
-.extern FUN_0200AE04
-.extern FUN_0200AE38
-.extern FUN_0200AE70
-.extern FUN_0200AEA8
-.extern FUN_0200AEE0
-.extern FUN_0200AF18
-.extern FUN_0200AF50
-.extern FUN_0200AF88
-.extern FUN_0200AFBC
-.extern FUN_0200AFF4
-.extern FUN_0200B02C
-.extern FUN_0200B064
-.extern FUN_0200B09C
-.extern FUN_0200B0D4
-.extern FUN_0200B10C
-.extern FUN_0200B144
-.extern FUN_0200B164
-.extern FUN_0200B19C
-.extern FUN_0200B1D4
-.extern FUN_0200B20C
-.extern FUN_0200B244
-.extern FUN_0200B278
-.extern FUN_0200B2AC
-.extern FUN_0200B2E0
-.extern FUN_0200B318
-.extern FUN_0200B350
-.extern FUN_0200B388
-.extern FUN_0200B3C0
-.extern FUN_0200B410
-.extern FUN_0200B430
-.extern FUN_0200B468
-.extern FUN_0200B4A0
-.extern FUN_0200B4D8
-.extern FUN_0200B518
-.extern FUN_0200B534
-.extern FUN_0200B568
-.extern FUN_0200B59C
-.extern FUN_0200B628
-.extern FUN_0200B660
-.extern FUN_0200B698
-.extern FUN_0200B6D0
-.extern FUN_0200B708
-.extern FUN_0200B764
-.extern FUN_0200B7A8
-.extern FUN_0200B7B8
-.extern FUN_0200B84C
-.extern FUN_0200B870
-.extern FUN_0200B990
-.extern FUN_0200B9A8
-.extern FUN_0200B9EC
-.extern FUN_0200BA78
-.extern FUN_0200BAAC
-.extern FUN_0200BB14
-.extern FUN_0200BB34
-.extern FUN_0200BB68
-.extern FUN_0200BB6C
-.extern FUN_0200BBF0
-.extern FUN_0200BC14
-.extern FUN_0200BC1C
-.extern FUN_0200BC30
-.extern FUN_0200BC38
-.extern FUN_0200BCE0
-.extern FUN_0200BD04
-.extern FUN_0200BD20
-.extern FUN_0200BE38
-.extern FUN_0200BF60
-.extern WCM_GetLinkLevel
-.extern STD_CompareNString
-.extern STD_CompareString
-.extern STD_GetStringLength
-.extern FUN_0200C00C
-.extern FUN_0200C06C
-.extern FUN_0200C0DC
-.extern FUN_0200C124
-.extern FUN_0200C13C
-.extern FUN_0200C154
-.extern FUN_0200C334
-.extern FUN_0200C344
-.extern FUN_0200C358
-.extern FUN_0200C368
-.extern FUN_0200C378
-.extern FUN_0200C388
-.extern FUN_0200C398
-.extern FUN_0200C3DC
-.extern FUN_0200C59C
-.extern FUN_0200C5A8
-.extern FUN_0200C5B4
-.extern FUN_0200C5C0
-.extern FUN_0200C5CC
-.extern FUN_0200C5E0
-.extern FUN_0200C5F4
-.extern FUN_0200C608
-.extern FUN_0200C61C
-.extern FUN_0200C630
-.extern FUN_0200C63C
-.extern FUN_0200C644
-.extern FUN_0200C650
-.extern FUN_0200C658
-.extern FUN_0200C664
-.extern FUN_0200C66C
-.extern FUN_0200C680
-.extern FUN_0200C68C
-.extern FUN_0200C6A4
-.extern FUN_0200C6B0
-.extern FUN_0200C6C4
-.extern FUN_0200C6D8
-.extern FUN_0200C6E4
-.extern FUN_0200C714
-.extern FUN_0200C720
-.extern FUN_0200C750
-.extern FUN_0200C75C
-.extern FUN_0200C7A0
-.extern FUN_0200C7F0
-.extern FUN_0200C7FC
-.extern FUN_0200C82C
-.extern FUN_0200C840
-.extern FUN_0200C884
-.extern FUN_0200C898
-.extern FUN_0200C8BC
-.extern FUN_0200C8D0
-.extern FUN_0200C8DC
-.extern FUN_0200C8F8
-.extern FUN_0200C90C
-.extern FUN_0200C918
-.extern FUN_0200C978
-.extern FUN_0200C9D8
-.extern FUN_0200CA0C
-.extern FUN_0200CA40
-.extern FUN_0200CA44
-.extern FUN_0200CA60
-.extern FUN_0200CA7C
-.extern FUN_0200CA98
-.extern FUN_0200CAB4
-.extern FUN_0200CABC
-.extern FUN_0200CAFC
-.extern FUN_0200CB00
-.extern FUN_0200CCA4
-.extern FUN_0200CCF8
-.extern FUN_0200CD60
-.extern FUN_0200CD64
-.extern FUN_0200CD68
-.extern FUN_0200D06C
-.extern FUN_0200D0BC
-.extern FUN_0200D0E0
-.extern FUN_0200D274
-.extern FUN_0200D300
-.extern FUN_0200D6F8
-.extern FUN_0200D7A0
-.extern FUN_0200D858
-.extern FUN_0200DBFC
-.extern FUN_0200DC24
-.extern FUN_0200DC4C
-.extern FUN_0200DCA4
-.extern FUN_0200E1D0
-.extern FUN_0200E2D8
-.extern FUN_0200E308
-.extern FUN_0200E31C
-.extern FUN_0200E388
-.extern FUN_0200E394
-.extern FUN_0200E3A0
-.extern FUN_0200E3BC
-.extern FUN_0200E420
-.extern FUN_0200E440
-.extern FUN_0200E6CC
-.extern FUN_0200E6F8
-.extern FUN_0200E850
-.extern FUN_0200E86C
-.extern FUN_0200E88C
-.extern FUN_0200E8C8
-.extern FUN_0200E900
-.extern FUN_0200E93C
-.extern FUN_0200E974
-.extern FUN_0200E9A0
-.extern FUN_0200E9CC
-.extern FUN_0200EA08
-.extern FUN_0200EA40
-.extern FUN_0200EA7C
-.extern FUN_0200EAB4
-.extern FUN_0200EAE0
-.extern FUN_0200EB0C
-.extern FUN_0200EB40
-.extern FUN_0200EB70
-.extern FUN_0200EB9C
-.extern FUN_0200EBC8
-.extern FUN_0200EBF4
-.extern FUN_0200EC20
-.extern FUN_0200EC4C
-.extern FUN_0200EC78
-.extern FUN_0200ECA4
-.extern FUN_0200ECD0
-.extern FUN_0200ECFC
-.extern FUN_0200ED28
-.extern FUN_0200ED54
-.extern FUN_0200ED80
-.extern FUN_0200EDD4
-.extern FUN_0200EE24
-.extern FUN_0200EE60
-.extern FUN_0200EE98
-.extern FUN_0200EED8
-.extern FUN_0200EF14
-.extern FUN_0200EF54
-.extern FUN_0200EF90
-.extern FUN_0200EFBC
-.extern FUN_0200EFE8
-.extern FUN_0200F014
-.extern FUN_0200F040
-.extern FUN_0200F07C
-.extern FUN_0200F6E4
-.extern FUN_0200FE20
-.extern FUN_0200FE90
-.extern FUN_02010FD0
-.extern FUN_020110BC
-.extern FUN_0201137C
-.extern FUN_020113EC
-.extern FUN_02011480
-.extern FUN_020114AC
-.extern FUN_02011534
-.extern FUN_02011574
-.extern FUN_02011634
-.extern FUN_02011650
-.extern FUN_02011678
-.extern FUN_02011698
-.extern FUN_02011744
-.extern FUN_020117BC
-.extern FUN_020117E8
-.extern FUN_02011870
-.extern FUN_02011898
-.extern FUN_020118C4
-.extern FUN_02011938
-.extern FUN_020119A4
-.extern FUN_020119D0
-.extern FUN_02011A00
-.extern FUN_02011A30
-.extern FUN_02011A60
-.extern FUN_02011A90
-.extern FUN_02011AC0
-.extern FUN_02011AF0
-.extern FUN_02011B20
-.extern FUN_02012400
-.extern FUN_02012420
-.extern FUN_0201244C
-.extern FUN_02012470
-.extern FUN_020124B4
-.extern FUN_02012530
-.extern FUN_02012560
-.extern FUN_0201259C
-.extern FUN_020125D4
-.extern FUN_0201265C
-.extern FUN_02012690
-.extern FUN_020126B4
-.extern FUN_020126D8
-.extern FUN_020126FC
-.extern FUN_02012710
-.extern FUN_0201277C
-.extern FUN_02012794
-.extern FUN_020127A8
-.extern FUN_020127C0
-.extern FUN_02012838
-.extern FUN_02012870
-.extern FUN_02012880
-.extern FUN_020128A0
-.extern FUN_020128C4
-.extern FUN_0201291C
-.extern FUN_02012944
-.extern FUN_02012974
-.extern FUN_02012988
-.extern FUN_0201299C
-.extern FUN_020129B4
-.extern FUN_020129C8
-.extern FUN_020129D8
-.extern FUN_02012A00
-.extern FUN_02012A30
-.extern FUN_02012AC4
-.extern FUN_02012B00
-.extern FUN_02012B20
-.extern FUN_02012B30
-.extern FUN_02012B68
-.extern FUN_02012CC8
-.extern FUN_02012CDC
-.extern FUN_02012DE4
-.extern FUN_02012EAC
-.extern FUN_02012ECC
-.extern FUN_02012EF8
-.extern FUN_02012F24
-.extern FUN_02012F50
-.extern FUN_02012F7C
-.extern FUN_02012FA8
-.extern FUN_02012FD4
-.extern FUN_02013000
-.extern FUN_0201302C
-.extern FUN_02013058
-.extern FUN_02013084
-.extern FUN_020130B0
-.extern FUN_020130DC
-.extern FUN_02013108
-.extern FUN_02013134
-.extern FUN_02013160
-.extern FUN_0201318C
-.extern FUN_02013194
-.extern FUN_0201327C
-.extern FUN_020132BC
-.extern FUN_02013348
-.extern FUN_02013364
-.extern FUN_02013388
-.extern FUN_020133AC
-.extern FUN_020133C8
-.extern FUN_020133DC
-.extern FUN_020133E8
-.extern FUN_020133EC
-.extern FUN_020133FC
-.extern FUN_0201341C
-.extern FUN_02013428
-.extern FUN_0201343C
-.extern FUN_02013440
-.extern FUN_02013448
-.extern FUN_02013450
-.extern FUN_02013514
-.extern FUN_02013530
-.extern FUN_02013548
-.extern FUN_0201357C
-.extern FUN_02013594
-.extern FUN_020135B0
-.extern FUN_020135C4
-.extern FUN_020135E0
-.extern FUN_020135F4
-.extern FUN_02013610
-.extern FUN_02013628
-.extern FUN_0201365C
-.extern FUN_02013674
-.extern FUN_02013690
-.extern FUN_020136C0
-.extern FUN_020136E0
-.extern FUN_020136F8
-.extern FUN_02013724
-.extern FUN_0201373C
-.extern FUN_02013754
-.extern FUN_02013764
-.extern FUN_020137D4
-.extern FUN_02013840
-.extern FUN_0201385C
-.extern FUN_02013870
-.extern FUN_02013918
-.extern FUN_02013920
-.extern FUN_02013924
-.extern FUN_02013928
-.extern FUN_02013960
-.extern FUN_02013974
-.extern FUN_02013980
-.extern FUN_02013998
-.extern FUN_020139B0
-.extern FUN_020139D8
-.extern FUN_02013A10
-.extern FUN_02013A30
-.extern FUN_02013A58
-.extern FUN_02013A9C
-.extern FUN_02013B28
-.extern FUN_02013B2C
-.extern FUN_02013B5C
-.extern FUN_02013B68
-.extern FUN_02013B74
-.extern FUN_02013BC8
-.extern FUN_02013BE4
-.extern FUN_02013C0C
-.extern FUN_02013C18
-.extern FUN_02013C28
-.extern FUN_02013C6C
-.extern FUN_02013CD4
-.extern FUN_02013D18
-.extern FUN_02013D5C
-.extern FUN_02013D98
-.extern FUN_02013DD4
-.extern FUN_02013DEC
-.extern FUN_02013E14
-.extern FUN_02013E44
-.extern FUN_02013E5C
-.extern FUN_02013E84
-.extern FUN_02013EA8
-.extern FUN_02013EB0
-.extern FUN_02013EC4
-.extern FUN_02013ECC
-.extern FUN_02013ED8
-.extern FUN_02013EE0
-.extern FUN_02013EF0
-.extern FUN_02013EFC
-.extern FUN_02013F00
-.extern FUN_02013F04
-.extern FUN_02013F0C
-.extern FUN_02013F2C
-.extern FUN_020142EC
-.extern FUN_020143A8
-.extern FUN_020143D0
-.extern FUN_020144FC
-.extern FUN_02014518
-.extern FUN_02014564
-.extern FUN_02014588
-.extern FUN_02014590
-.extern FUN_020145A8
-.extern FUN_020145C8
-.extern FUN_02014630
-.extern FUN_0201466C
-.extern FUN_020146C4
-.extern FUN_02014BF4
-.extern FUN_02014C28
-.extern FUN_02014C3C
-.extern FUN_02014C54
-.extern FUN_02014D7C
-.extern FUN_02014D9C
-.extern FUN_020151B8
-.extern FUN_020151C8
-.extern FUN_020151D0
-.extern FUN_02015218
-.extern FUN_02015240
-.extern FUN_02015264
-.extern FUN_0201528C
-.extern FUN_020152B0
-.extern FUN_020152D8
-.extern FUN_02015300
-.extern FUN_020153E0
-.extern FUN_02015404
-.extern FUN_02015428
-.extern FUN_02015444
-.extern FUN_02015470
-.extern FUN_0201549C
-.extern FUN_0201551C
-.extern FUN_02015550
-.extern FUN_02015588
-.extern FUN_020155D0
-.extern FUN_02015620
-.extern FUN_020156E8
-.extern FUN_02015730
-.extern FUN_02015798
-.extern FUN_020157EC
-.extern FUN_02015800
-.extern FUN_02015840
-.extern FUN_0201585C
-.extern FUN_02015868
-.extern FUN_020158A0
-.extern FUN_020158AC
-.extern FUN_020158B8
-.extern FUN_020158C4
-.extern FUN_020158D0
-.extern FUN_02015A34
-.extern FUN_02015AEC
-.extern FUN_02015BAC
-.extern FUN_02015BE8
-.extern FUN_02015C24
-.extern FUN_02015CC0
-.extern FUN_02015CE0
-.extern FUN_02015CF8
-.extern FUN_02015D88
-.extern FUN_02015E30
-.extern FUN_02015E3C
-.extern FUN_02015E60
-.extern FUN_02015EF4
-.extern FUN_02015F10
-.extern FUN_02015F1C
-.extern FUN_02015F34
-.extern FUN_020161A4
-.extern FUN_020161F8
-.extern FUN_020162FC
-.extern FUN_02016324
-.extern FUN_020163BC
-.extern FUN_02016438
-.extern FUN_02016444
-.extern FUN_02016454
-.extern FUN_02016464
-.extern FUN_0201669C
-.extern FUN_020166A8
-.extern FUN_020166B8
-.extern FUN_020166C8
-.extern FUN_0201681C
-.extern FUN_02016828
-.extern FUN_020168D0
-.extern AllocFromHeap
-.extern AllocFromHeapAtEnd
-.extern FreeToHeap
-.extern FUN_02016A8C
-.extern FUN_02016AF8
-.extern FUN_02016B20
-.extern FUN_02016B44
-.extern FUN_02016B90
-.extern FUN_02016B94
-.extern FUN_02016BB8
-.extern FUN_02016BBC
-.extern FUN_02016BF4
-.extern FUN_02016C18
-.extern FUN_020170F4
-.extern FUN_020178A0
-.extern FUN_020178BC
-.extern FUN_0201797C
-.extern FUN_020179E0
-.extern FUN_02017B48
-.extern FUN_02017B54
-.extern FUN_02017B60
-.extern FUN_02017BD0
-.extern FUN_02017CD0
-.extern FUN_02017CE8
-.extern FUN_02017DFC
-.extern FUN_02017E14
-.extern FUN_02017F18
-.extern FUN_02017F48
-.extern FUN_02017FB4
-.extern FUN_02017FE4
-.extern FUN_02018148
-.extern FUN_02018170
-.extern FUN_020181EC
-.extern FUN_02018540
-.extern FUN_020186B4
-.extern FUN_02018744
-.extern FUN_02018768
-.extern FUN_0201878C
-.extern FUN_020187B0
-.extern FUN_0201886C
-.extern FUN_02018878
-.extern FUN_02018884
-.extern FUN_02018A60
-.extern FUN_02018F4C
-.extern FUN_02018FF4
-.extern FUN_0201901C
-.extern FUN_02019048
-.extern FUN_02019064
-.extern FUN_020190EC
-.extern FUN_02019150
-.extern FUN_02019178
-.extern FUN_020191A4
-.extern FUN_020191D0
-.extern FUN_02019220
-.extern FUN_02019270
-.extern FUN_0201928C
-.extern FUN_020192B8
-.extern FUN_020192D4
-.extern FUN_02019358
-.extern FUN_020193B4
-.extern FUN_02019444
-.extern FUN_0201949C
-.extern FUN_020194C8
-.extern FUN_020194E0
-.extern FUN_0201951C
-.extern FUN_02019548
-.extern FUN_02019570
-.extern FUN_0201958C
-.extern FUN_020195A8
-.extern FUN_020195D0
-.extern FUN_020195E4
-.extern FUN_0201960C
-.extern FUN_02019620
-.extern FUN_02019658
-.extern FUN_02019684
-.extern FUN_020196F4
-.extern FUN_0201974C
-.extern FUN_0201A8C8
-.extern FUN_0201AB08
-.extern FUN_0201AB0C
-.extern FUN_0201AB10
-.extern FUN_0201AB14
-.extern FUN_0201AB18
-.extern FUN_0201AB1C
-.extern FUN_0201AB20
-.extern FUN_0201AB24
-.extern FUN_0201AB28
-.extern FUN_0201AB44
-.extern FUN_0201AB60
-.extern FUN_0201AC68
-.extern FUN_0201AEE4
-.extern FUN_0201AF08
-.extern FUN_0201AF50
-.extern FUN_0201AFBC
-.extern FUN_0201B21C
-.extern FUN_0201B234
-.extern FUN_0201B254
-.extern FUN_0201B26C
-.extern FUN_0201B2A8
-.extern FUN_0201B2EC
-.extern FUN_0201B398
-.extern FUN_0201B3A8
-.extern FUN_0201B3C4
-.extern FUN_0201B578
-.extern FUN_0201B580
-.extern FUN_0201B5CC
-.extern FUN_0201B60C
-.extern FUN_0201B6A0
-.extern FUN_0201B6C4
-.extern FUN_0201B6C8
-.extern FUN_0201B6CC
-.extern FUN_0201B6D0
-.extern FUN_0201B76C
-.extern FUN_0201B7DC
-.extern FUN_0201B8B8
-.extern FUN_0201B8E0
-.extern FUN_0201B8F8
-.extern FUN_0201B914
-.extern FUN_0201B93C
-.extern FUN_0201B954
-.extern FUN_0201B970
-.extern FUN_0201B988
-.extern FUN_0201B9A0
-.extern FUN_0201B9B8
-.extern FUN_0201BB74
-.extern FUN_0201BBD0
-.extern FUN_0201BC84
-.extern FUN_0201BCBC
-.extern FUN_0201BD5C
-.extern FUN_0201BD70
-.extern FUN_0201BD7C
-.extern FUN_0201BD84
-.extern FUN_0201BDE0
-.extern FUN_0201BE3C
-.extern FUN_0201C05C
-.extern FUN_0201C100
-.extern FUN_0201C1EC
-.extern FUN_0201C24C
-.extern FUN_0201C29C
-.extern FUN_0201C2C8
-.extern FUN_0201C30C
-.extern FUN_0201C328
-.extern FUN_0201C348
-.extern FUN_0201C350
-.extern FUN_0201C360
-.extern FUN_0201C39C
-.extern FUN_0201C3B4
-.extern FUN_0201C40C
-.extern FUN_0201C438
-.extern FUN_0201C50C
-.extern FUN_0201C578
-.extern FUN_0201C5FC
-.extern FUN_0201C620
-.extern FUN_0201C62C
-.extern FUN_0201C638
-.extern FUN_0201C6C8
-.extern FUN_0201C70C
-.extern FUN_0201C750
-.extern FUN_0201C78C
-.extern FUN_0201C7A0
-.extern FUN_0201C7A8
-.extern FUN_0201C7B0
-.extern FUN_0201C878
-.extern FUN_0201CAA8
-.extern FUN_0201CB20
-.extern FUN_0201CB7C
-.extern FUN_0201CBEC
-.extern FUN_0201CC08
-.extern FUN_0201CC24
-.extern FUN_0201CD04
-.extern FUN_0201CD38
-.extern FUN_0201CDD0
-.extern FUN_0201CE04
-.extern FUN_0201D040
-.extern FUN_0201D060
-.extern FUN_0201D12C
-.extern FUN_0201D168
-.extern FUN_0201D194
-.extern FUN_0201D1F8
-.extern FUN_0201D250
-.extern FUN_0201D2AC
-.extern FUN_0201D2DC
-.extern FUN_0201D324
-.extern FUN_0201D3B0
-.extern FUN_0201D3D4
-.extern FUN_0201D458
-.extern FUN_0201D4F0
-.extern FUN_0201D568
-.extern FUN_0201D5E8
-.extern FUN_0201D658
-.extern FUN_0201D674
-.extern FUN_0201DED0
-.extern FUN_0201E00C
-.extern FUN_0201E068
-.extern FUN_0201E08C
-.extern FUN_0201E0BC
-.extern FUN_0201E0E4
-.extern FUN_0201E128
-.extern FUN_0201E168
-.extern FUN_0201E1B4
-.extern FUN_0201E1C8
-.extern FUN_0201E230
-.extern FUN_0201E258
-.extern FUN_0201E28C
-.extern FUN_0201E66C
-.extern FUN_0201E6D8
-.extern FUN_0201E6E4
-.extern FUN_0201E720
-.extern FUN_0201E740
-.extern FUN_0201E74C
-.extern FUN_0201E788
-.extern FUN_0201E7A0
-.extern FUN_0201E7CC
-.extern FUN_0201EABC
-.extern FUN_0201EB48
-.extern FUN_0201EB64
-.extern FUN_0201EB70
-.extern FUN_0201EB78
-.extern FUN_0201EB8C
-.extern FUN_0201EB98
-.extern FUN_0201EBA4
-.extern FUN_0201EC58
-.extern FUN_0201EC68
-.extern FUN_0201EC88
-.extern FUN_0201EC94
-.extern FUN_0201ECA8
-.extern FUN_0201ED10
-.extern FUN_0201ED5C
-.extern FUN_0201EE2C
-.extern FUN_0201EEF0
-.extern FUN_0201EF2C
-.extern FUN_0201EF70
-.extern FUN_0201EF90
-.extern FUN_0201EFB4
-.extern FUN_0201EFE0
-.extern FUN_0201EFEC
-.extern FUN_0201F008
-.extern FUN_0201F010
-.extern FUN_0201F014
-.extern FUN_0201F02C
-.extern FUN_0201F03C
-.extern FUN_0201F04C
-.extern FUN_0201F05C
-.extern FUN_0201F100
-.extern FUN_0201F140
-.extern FUN_0201F178
-.extern FUN_0201F1B4
-.extern FUN_0201F23C
-.extern FUN_0201F2C0
-.extern FUN_0201F2D8
-.extern FUN_0201F6E8
-.extern FUN_0201F744
-.extern FUN_0201F7A4
-.extern FUN_0201F7C8
-.extern FUN_0201F7E0
-.extern FUN_0201F7F0
-.extern FUN_0201F80C
-.extern FUN_0201F820
-.extern FUN_0201F830
-.extern FUN_0201F844
-.extern FUN_0201F854
-.extern FUN_0201F86C
-.extern FUN_0201F880
-.extern FUN_0201F890
-.extern FUN_0201F8C0
-.extern FUN_0201F8E0
-.extern FUN_0201F8F0
-.extern FUN_0201FCB0
-.extern FUN_0201FD58
-.extern FUN_0201FD98
-.extern FUN_0201FDB4
-.extern FUN_0201FDEC
-.extern FUN_0201FE94
-.extern FUN_0201FF84
-.extern FUN_0201FFC8
-.extern FUN_02020044
-.extern FUN_02020054
-.extern FUN_02020064
-.extern FUN_02020074
-.extern FUN_02020088
-.extern FUN_0202008C
-.extern FUN_020200A0
-.extern FUN_020200BC
-.extern FUN_020200D8
-.extern FUN_020200EC
-.extern FUN_02020100
-.extern FUN_0202011C
-.extern FUN_02020120
-.extern FUN_02020124
-.extern FUN_02020128
-.extern FUN_02020130
-.extern FUN_02020184
-.extern FUN_02020198
-.extern FUN_020201DC
-.extern FUN_020201E4
-.extern FUN_02020208
-.extern FUN_0202022C
-.extern FUN_02020238
-.extern FUN_02020240
-.extern FUN_02020248
-.extern FUN_0202027C
-.extern FUN_020202A0
-.extern FUN_020202A8
-.extern FUN_020202DC
-.extern FUN_02020300
-.extern FUN_02020310
-.extern FUN_0202032C
-.extern FUN_02020334
-.extern FUN_02020350
-.extern FUN_02020354
-.extern FUN_02020358
-.extern FUN_02020380
-.extern FUN_02020388
-.extern FUN_02020398
-.extern FUN_020203CC
-.extern FUN_02020404
-.extern FUN_02020968
-.extern FUN_02020988
-.extern FUN_020209A8
-.extern FUN_020209F4
-.extern FUN_02020A40
-.extern FUN_02020A6C
-.extern FUN_02020A98
-.extern FUN_02020AA4
-.extern FUN_02020AB0
-.extern FUN_02020ACC
-.extern FUN_02020AE8
-.extern FUN_02020AFC
-.extern FUN_02020BF4
-.extern FUN_02020BFC
-.extern FUN_02020C14
-.extern FUN_02020C44
-.extern FUN_02020C90
-.extern FUN_02020CB0
-.extern FUN_02020CD4
-.extern FUN_02020D10
-.extern FUN_02020D68
-.extern FUN_02020E0C
-.extern FUN_02020E1C
-.extern FUN_02020E38
-.extern FUN_02020E90
-.extern FUN_02020ED4
-.extern FUN_02020EF8
-.extern FUN_02020F54
-.extern FUN_02020FF0
-.extern FUN_02021050
-.extern FUN_020210AC
-.extern FUN_020210F0
-.extern FUN_02021158
-.extern FUN_020211AC
-.extern FUN_020211BC
-.extern FUN_020211CC
-.extern FUN_0202134C
-.extern FUN_0202135C
-.extern FUN_02021390
-.extern FUN_020213A0
-.extern FUN_02021590
-.extern FUN_020215C8
-.extern FUN_020215E0
-.extern FUN_02021750
-.extern FUN_020218D8
-.extern FUN_02021934
-.extern FUN_0202199C
-.extern FUN_020219F4
-.extern FUN_02021A20
-.extern FUN_02021A4C
-.extern FUN_02021A74
-.extern FUN_02021ACC
-.extern FUN_02021B04
-.extern FUN_02021C38
-.extern FUN_02021CE0
-.extern FUN_02021D3C
-.extern FUN_02021D5C
-.extern FUN_02021D9C
-.extern FUN_02021E28
-.extern FUN_02021E8C
-.extern FUN_02021EF0
-.extern FUN_02021F2C
-.extern FUN_02021F4C
-.extern FUN_02021FB0
-.extern FUN_02021FF8
-.extern FUN_02022048
-.extern FUN_020220C4
-.extern FUN_0202212C
-.extern FUN_02022144
-.extern FUN_02022244
-.extern FUN_0202227C
-.extern FUN_02022294
-.extern FUN_020222AC
-.extern FUN_020222B4
-.extern FUN_020222C4
-.extern FUN_020222E8
-.extern FUN_020222F0
-.extern FUN_020222F8
-.extern FUN_02022300
-.extern FUN_02022308
-.extern FUN_02022310
-.extern FUN_02022318
-.extern FUN_020223BC
-.extern FUN_02022450
-.extern FUN_020224D8
-.extern FUN_02022504
-.extern FUN_02022510
-.extern FUN_0202251C
-.extern FUN_02022528
-.extern FUN_02022534
-.extern FUN_02022540
-.extern FUN_0202254C
-.extern FUN_020225F8
-.extern FUN_02022610
-.extern FUN_02022634
-.extern FUN_0202263C
-.extern FUN_020226FC
-.extern FUN_02022720
-.extern FUN_020227A0
-.extern FUN_020227DC
-.extern FUN_020227FC
-.extern FUN_02022800
-.extern FUN_02022804
-.extern FUN_0202280C
-.extern FUN_0202282C
-.extern FUN_02022830
-.extern FUN_02022840
-.extern FUN_02022854
-.extern FUN_0202287C
-.extern FUN_020232BC
-.extern FUN_02023408
-.extern FUN_0202376C
-.extern FUN_02023770
-.extern FUN_02023788
-.extern FUN_02023794
-.extern FUN_020237A0
-.extern FUN_020237CC
-.extern FUN_020237FC
-.extern FUN_02023818
-.extern FUN_0202381C
-.extern FUN_02023820
-.extern FUN_02023828
-.extern FUN_02023830
-.extern FUN_02023834
-.extern FUN_02023840
-.extern FUN_02023874
-.extern FUN_02023884
-.extern FUN_020238A4
-.extern FUN_020238C4
-.extern FUN_020238C8
-.extern FUN_020238F4
-.extern FUN_0202390C
-.extern FUN_02023918
-.extern FUN_02023924
-.extern FUN_02023928
-.extern FUN_0202393C
-.extern FUN_02023948
-.extern FUN_0202395C
-.extern FUN_0202397C
-.extern FUN_0202398C
-.extern FUN_02023990
-.extern FUN_020239A0
-.extern FUN_020239B8
-.extern FUN_020239BC
-.extern FUN_020239C0
-.extern FUN_020239C8
-.extern FUN_020239CC
-.extern FUN_020239D0
-.extern FUN_020239E4
-.extern FUN_020239F4
-.extern FUN_02023A10
-.extern FUN_02023A14
-.extern FUN_02023A28
-.extern FUN_02023A2C
-.extern FUN_02023A30
-.extern FUN_02023A54
-.extern FUN_02023A68
-.extern FUN_02023A6C
-.extern FUN_02023A70
-.extern FUN_02023A74
-.extern FUN_02023A78
-.extern FUN_02023A88
-.extern FUN_02023A90
-.extern FUN_02023A9C
-.extern FUN_02023AA4
-.extern FUN_02023AC4
-.extern FUN_02023AC8
-.extern FUN_02023ACC
-.extern FUN_02023AD8
-.extern FUN_02023AF4
-.extern FUN_02023B0C
-.extern FUN_02023BA4
-.extern FUN_02023BD4
-.extern FUN_02023BE8
-.extern FUN_02023C04
-.extern FUN_02023C40
-.extern FUN_02023C48
-.extern FUN_02023C74
-.extern FUN_02023C7C
-.extern FUN_02023C80
-.extern FUN_02023C84
-.extern FUN_02023C8C
-.extern FUN_02023C90
-.extern FUN_02023C98
-.extern FUN_02023CA0
-.extern FUN_02023CA8
-.extern FUN_02023CB8
-.extern FUN_02023CC0
-.extern FUN_02023CC8
-.extern FUN_02023CF0
-.extern FUN_02023D3C
-.extern FUN_02023D58
-.extern FUN_02023D64
-.extern FUN_02023D6C
-.extern FUN_02023D80
-.extern FUN_02024378
-.extern FUN_020243C8
-.extern FUN_02024404
-.extern FUN_02024440
-.extern FUN_0202445C
-.extern FUN_020244A4
-.extern FUN_020244EC
-.extern FUN_02024504
-.extern FUN_02024518
-.extern FUN_02024550
-.extern FUN_02024594
-.extern FUN_020245F0
-.extern FUN_02024648
-.extern FUN_02024674
-.extern FUN_020246DC
-.extern FUN_0202471C
-.extern FUN_02024748
-.extern FUN_020247A4
-.extern FUN_020247C8
-.extern FUN_02024828
-.extern FUN_0202484C
-.extern FUN_0202489C
-.extern FUN_020248BC
-.extern FUN_0202490C
-.extern FUN_02024930
-.extern FUN_02024970
-.extern FUN_0202498C
-.extern FUN_02024AF0
-.extern FUN_02024C84
-.extern FUN_02024CA4
-.extern FUN_02024CC4
-.extern FUN_02024CE0
-.extern FUN_02024D00
-.extern FUN_02024D4C
-.extern FUN_02024D58
-.extern FUN_02024D64
-.extern FUN_02024D80
-.extern FUN_02024DA0
-.extern FUN_02024DAC
-.extern FUN_02024E64
-.extern FUN_02024E6C
-.extern FUN_02024EB4
-.extern FUN_02024EC0
-.extern FUN_02024ECC
-.extern FUN_02024ED8
-.extern FUN_02024EE8
-.extern FUN_02024EF4
-.extern FUN_02024F0C
-.extern FUN_02024F18
-.extern FUN_02024F30
-.extern FUN_02024F44
-.extern FUN_02024F50
-.extern FUN_02024F9C
-.extern FUN_02024FD8
-.extern FUN_02024FE0
-.extern FUN_02024FF4
-.extern FUN_02025010
-.extern FUN_02025018
-.extern FUN_0202502C
-.extern FUN_02025034
-.extern FUN_02025048
-.extern FUN_02025050
-.extern FUN_02025064
-.extern FUN_0202506C
-.extern FUN_02025084
-.extern FUN_0202508C
-.extern FUN_020250A4
-.extern FUN_020250C4
-.extern FUN_02025128
-.extern FUN_02025238
-.extern FUN_02025244
-.extern FUN_0202524C
-.extern FUN_02025268
-.extern FUN_02025274
-.extern FUN_020252AC
-.extern FUN_020252B8
-.extern FUN_020252C4
-.extern FUN_020252D0
-.extern FUN_020252DC
-.extern FUN_020252E8
-.extern FUN_020252F4
-.extern FUN_020253E0
-.extern FUN_02025484
-.extern FUN_02025490
-.extern FUN_020254A0
-.extern FUN_020254B4
-.extern FUN_020254B8
-.extern FUN_020254C0
-.extern FUN_020254CC
-.extern FUN_020254F0
-.extern FUN_020254F8
-.extern FUN_02025520
-.extern FUN_02025614
-.extern FUN_02025658
-.extern FUN_020256AC
-.extern FUN_020256BC
-.extern FUN_020256D0
-.extern FUN_020256DC
-.extern FUN_020257C0
-.extern FUN_020257C4
-.extern FUN_020257C8
-.extern FUN_020257CC
-.extern FUN_020257D0
-.extern FUN_020257D8
-.extern FUN_020257DC
-.extern FUN_020257E0
-.extern FUN_02025814
-.extern FUN_02025824
-.extern FUN_02025838
-.extern FUN_02025844
-.extern FUN_0202584C
-.extern FUN_02025864
-.extern FUN_02025878
-.extern FUN_02025888
-.extern FUN_0202589C
-.extern FUN_020258B0
-.extern FUN_020258D4
-.extern FUN_02025954
-.extern FUN_0202595C
-.extern FUN_02025960
-.extern FUN_02025964
-.extern FUN_0202597C
-.extern FUN_02025A60
-.extern FUN_02025B60
-.extern FUN_02025B94
-.extern FUN_02025BE8
-.extern FUN_02025C00
-.extern FUN_02025C18
-.extern FUN_02025C30
-.extern FUN_02025C38
-.extern FUN_02025C40
-.extern FUN_02025CD8
-.extern FUN_02025D40
-.extern FUN_02025D48
-.extern FUN_02025D6C
-.extern FUN_02025D94
-.extern FUN_02025DB0
-.extern FUN_02025DC8
-.extern FUN_02025DD4
-.extern FUN_02025E20
-.extern FUN_02025EDC
-.extern FUN_02025F0C
-.extern FUN_02025F30
-.extern FUN_02025F44
-.extern FUN_02025F80
-.extern FUN_02025F98
-.extern FUN_02025FA4
-.extern FUN_02025FD8
-.extern FUN_02025FFC
-.extern FUN_02026050
-.extern FUN_02026068
-.extern FUN_02026074
-.extern FUN_02026080
-.extern FUN_020260C4
-.extern FUN_020260EC
-.extern FUN_0202616C
-.extern FUN_02026188
-.extern FUN_02026194
-.extern FUN_020261C8
-.extern FUN_0202623C
-.extern FUN_02026258
-.extern FUN_02026264
-.extern FUN_02026298
-.extern FUN_0202630C
-.extern FUN_02026354
-.extern FUN_02026370
-.extern FUN_0202639C
-.extern FUN_020263C8
-.extern FUN_020263F4
-.extern FUN_02026444
-.extern FUN_02026450
-.extern FUN_02026470
-.extern FUN_02026490
-.extern FUN_0202649C
-.extern FUN_020264F0
-.extern FUN_020264FC
-.extern FUN_0202651C
-.extern FUN_0202653C
-.extern FUN_02026548
-.extern FUN_02026554
-.extern FUN_020265B8
-.extern FUN_020265E0
-.extern FUN_02026600
-.extern FUN_02026620
-.extern FUN_02026634
-.extern FUN_02026648
-.extern FUN_02026654
-.extern FUN_02026664
-.extern FUN_02026688
-.extern FUN_020266B0
-.extern FUN_020266C8
-.extern FUN_020266D4
-.extern FUN_020266E0
-.extern FUN_02026714
-.extern FUN_0202671C
-.extern FUN_02026778
-.extern FUN_020267C4
-.extern FUN_02026810
-.extern FUN_02026840
-.extern FUN_02026874
-.extern FUN_020268A0
-.extern FUN_020268D4
-.extern FUN_020268E8
-.extern FUN_02026908
-.extern FUN_02026940
-.extern FUN_02026970
-.extern FUN_020269A0
-.extern FUN_020269CC
-.extern FUN_020269D4
-.extern FUN_02026A0C
-.extern FUN_02026A58
-.extern FUN_02026A9C
-.extern FUN_02026AE8
-.extern FUN_02026B20
-.extern FUN_02026B58
-.extern FUN_02026B90
-.extern FUN_02026BC8
-.extern FUN_02026C00
-.extern FUN_02026C38
-.extern FUN_02026C68
-.extern FUN_02026C88
-.extern FUN_02026C90
-.extern FUN_02026C98
-.extern FUN_02026CA0
-.extern FUN_02026CA8
-.extern FUN_02026CB4
-.extern FUN_02026CC0
-.extern FUN_02026CC4
-.extern FUN_02026F60
-.extern FUN_02026FD8
-.extern FUN_02026FE0
-.extern FUN_02026FE4
-.extern FUN_02026FE8
-.extern FUN_02027008
-.extern FUN_02027044
-.extern FUN_0202708C
-.extern FUN_02027098
-.extern FUN_020270B4
-.extern FUN_020270D8
-.extern FUN_02027100
-.extern FUN_02027114
-.extern FUN_0202714C
-.extern FUN_02027168
-.extern FUN_02027184
-.extern FUN_020271A4
-.extern FUN_02027210
-.extern FUN_02027264
-.extern FUN_020272D4
-.extern FUN_02027310
-.extern FUN_02027348
-.extern FUN_02027380
-.extern FUN_02027448
-.extern FUN_02027478
-.extern FUN_020274F0
-.extern FUN_02027528
-.extern FUN_02027564
-.extern FUN_02027590
-.extern FUN_020275D8
-.extern FUN_02027608
-.extern FUN_0202763C
-.extern FUN_0202766C
-.extern FUN_0202769C
-.extern FUN_020276A8
-.extern FUN_02027710
-.extern FUN_02027740
-.extern FUN_02027778
-.extern FUN_020277B4
-.extern FUN_0202787C
-.extern FUN_020278AC
-.extern FUN_020278DC
-.extern FUN_02027914
-.extern FUN_02027964
-.extern FUN_02027A14
-.extern FUN_02027A58
-.extern FUN_02027A94
-.extern FUN_02027AC4
-.extern FUN_02027B0C
-.extern FUN_02027B44
-.extern FUN_02027B78
-.extern FUN_02027BDC
-.extern FUN_02027C28
-.extern FUN_02027C58
-.extern FUN_02027CA0
-.extern FUN_02027CA8
-.extern FUN_02027CB0
-.extern FUN_02027CB8
-.extern FUN_02027CF8
-.extern FUN_02027CFC
-.extern FUN_02027D00
-.extern FUN_02027D04
-.extern FUN_02027D7C
-.extern FUN_02027E24
-.extern FUN_02027E30
-.extern FUN_02027E34
-.extern FUN_02027E5C
-.extern FUN_02027E94
-.extern FUN_02027F04
-.extern FUN_02027FBC
-.extern FUN_02027FDC
-.extern FUN_02028048
-.extern FUN_02028054
-.extern FUN_0202805C
-.extern FUN_02028074
-.extern FUN_02028094
-.extern FUN_020280B8
-.extern FUN_020280F4
-.extern FUN_02028174
-.extern FUN_02028190
-.extern FUN_020281B8
-.extern FUN_020281E0
-.extern FUN_020281E8
-.extern FUN_02028228
-.extern FUN_0202822C
-.extern FUN_020282E8
-.extern FUN_0202838C
-.extern FUN_020283A4
-.extern FUN_020283C0
-.extern FUN_020283E8
-.extern FUN_02028404
-.extern FUN_0202842C
-.extern FUN_02028448
-.extern FUN_02028468
-.extern FUN_0202858C
-.extern FUN_020285D0
-.extern FUN_02028608
-.extern FUN_02028664
-.extern FUN_020286EC
-.extern FUN_020286F8
-.extern FUN_02028700
-.extern FUN_02028724
-.extern FUN_02028754
-.extern FUN_0202877C
-.extern FUN_02028788
-.extern FUN_020287A4
-.extern FUN_020287A8
-.extern FUN_020287C0
-.extern FUN_020287EC
-.extern FUN_020287F8
-.extern FUN_02028804
-.extern FUN_02028810
-.extern FUN_0202881C
-.extern FUN_02028828
-.extern FUN_02028840
-.extern FUN_02028854
-.extern FUN_0202888C
-.extern FUN_020288AC
-.extern FUN_02028910
-.extern FUN_02028918
-.extern FUN_02028930
-.extern FUN_02028934
-.extern FUN_02028954
-.extern FUN_0202896C
-.extern FUN_02028980
-.extern FUN_02028994
-.extern FUN_020289A4
-.extern FUN_020289B0
-.extern FUN_02028A20
-.extern FUN_02028AD4
-.extern FUN_02028FA4
-.extern FUN_02029048
-.extern FUN_02029054
-.extern FUN_02029060
-.extern FUN_0202906C
-.extern FUN_02029078
-.extern FUN_02029084
-.extern FUN_02029120
-.extern FUN_0202912C
-.extern FUN_02029138
-.extern FUN_0202914C
-.extern FUN_02029160
-.extern FUN_0202916C
-.extern FUN_0202918C
-.extern FUN_0202920C
-.extern FUN_0202930C
-.extern FUN_0202934C
-.extern FUN_0202938C
-.extern FUN_020293EC
-.extern FUN_0202942C
-.extern FUN_0202945C
-.extern FUN_020294A8
-.extern FUN_020294B4
-.extern FUN_020294F4
-.extern FUN_02029500
-.extern FUN_02029520
-.extern FUN_0202952C
-.extern FUN_02029578
-.extern FUN_02029584
-.extern FUN_02029880
-.extern FUN_02029960
-.extern FUN_020299C0
-.extern FUN_020299DC
-.extern FUN_02029A84
-.extern FUN_02029A8C
-.extern FUN_02029ABC
-.extern FUN_02029AC8
-.extern FUN_02029ACC
-.extern FUN_02029AD0
-.extern FUN_02029AD8
-.extern FUN_02029AE0
-.extern FUN_02029AE8
-.extern FUN_02029AFC
-.extern FUN_02029B08
-.extern FUN_02029B38
-.extern FUN_02029B3C
-.extern FUN_02029B40
-.extern FUN_02029B90
-.extern FUN_02029C00
-.extern FUN_02029C08
-.extern FUN_02029C58
-.extern FUN_02029C60
-.extern FUN_02029C74
-.extern FUN_02029C80
-.extern FUN_02029C8C
-.extern FUN_02029CA4
-.extern FUN_02029CC8
-.extern FUN_02029CE0
-.extern FUN_02029CE4
-.extern FUN_02029CE8
-.extern FUN_02029CEC
-.extern FUN_02029CF4
-.extern FUN_02029CF8
-.extern FUN_02029D40
-.extern FUN_02029D44
-.extern FUN_02029D84
-.extern FUN_02029DD4
-.extern FUN_02029E0C
-.extern FUN_02029E2C
-.extern FUN_02029E48
-.extern FUN_02029E54
-.extern FUN_02029EBC
-.extern FUN_02029EC0
-.extern FUN_02029EC4
-.extern FUN_02029ECC
-.extern FUN_02029EE4
-.extern FUN_02029EF8
-.extern FUN_02029F04
-.extern FUN_02029F08
-.extern FUN_02029F10
-.extern FUN_02029F14
-.extern FUN_02029F4C
-.extern FUN_02029F9C
-.extern FUN_02029FB0
-.extern FUN_02029FB8
-.extern FUN_02029FC8
-.extern FUN_0202A07C
-.extern FUN_0202A0A8
-.extern FUN_0202A0E8
-.extern FUN_0202A11C
-.extern FUN_0202A150
-.extern FUN_0202A170
-.extern FUN_0202A1B8
-.extern FUN_0202A1C4
-.extern FUN_0202A1E4
-.extern FUN_0202A240
-.extern FUN_0202A2C4
-.extern FUN_0202A36C
-.extern FUN_0202A398
-.extern FUN_0202A3A0
-.extern FUN_0202A3B4
-.extern FUN_0202A40C
-.extern FUN_0202A444
-.extern FUN_0202A474
-.extern FUN_0202A498
-.extern FUN_0202A4B8
-.extern FUN_0202A520
-.extern FUN_0202A524
-.extern FUN_0202A538
-.extern FUN_0202A578
-.extern FUN_0202A5CC
-.extern FUN_0202A5D0
-.extern FUN_0202A5D4
-.extern FUN_0202A5F4
-.extern FUN_0202A60C
-.extern FUN_0202A6B4
-.extern FUN_0202A744
-.extern FUN_0202A74C
-.extern FUN_0202A754
-.extern FUN_0202A784
-.extern FUN_0202A798
-.extern FUN_0202A838
-.extern FUN_0202A864
-.extern FUN_0202A878
-.extern FUN_0202A89C
-.extern FUN_0202A8A4
-.extern FUN_0202A8CC
-.extern FUN_0202A8D8
-.extern FUN_0202A8E4
-.extern FUN_0202A8F4
-.extern FUN_0202A8F8
-.extern FUN_0202A918
-.extern FUN_0202A924
-.extern FUN_0202A92C
-.extern FUN_0202A988
-.extern FUN_0202A990
-.extern FUN_0202A9AC
-.extern FUN_0202A9B0
-.extern FUN_0202A9BC
-.extern FUN_0202A9C0
-.extern FUN_0202A9C4
-.extern FUN_0202A9C8
-.extern FUN_0202A9D0
-.extern FUN_0202AA00
-.extern FUN_0202AA14
-.extern FUN_0202AA20
-.extern FUN_0202AA38
-.extern FUN_0202AA40
-.extern FUN_0202AA58
-.extern FUN_0202AA74
-.extern FUN_0202AA90
-.extern FUN_0202AAA0
-.extern FUN_0202AAB8
-.extern FUN_0202AAFC
-.extern FUN_0202AB40
-.extern FUN_0202AB4C
-.extern FUN_0202AB54
-.extern FUN_0202AB68
-.extern FUN_0202AB80
-.extern FUN_0202AB8C
-.extern FUN_0202ABA0
-.extern FUN_0202ABBC
-.extern FUN_0202ABC8
-.extern FUN_0202ABCC
-.extern FUN_0202ABDC
-.extern FUN_0202ABE4
-.extern FUN_0202ABEC
-.extern FUN_0202ABF8
-.extern FUN_0202AC08
-.extern FUN_0202AC10
-.extern FUN_0202AC18
-.extern FUN_0202AC20
-.extern FUN_0202AC28
-.extern FUN_0202AC64
-.extern FUN_0202AC98
-.extern FUN_0202AD08
-.extern FUN_0202ADC8
-.extern FUN_0202ADF0
-.extern FUN_0202AE0C
-.extern FUN_0202AE4C
-.extern FUN_0202AE70
-.extern FUN_0202AE90
-.extern FUN_0202AEF4
-.extern FUN_0202AF24
-.extern FUN_0202AF50
-.extern FUN_0202AF60
-.extern FUN_0202AF70
-.extern FUN_0202AF88
-.extern FUN_0202AF9C
-.extern FUN_0202AFC0
-.extern FUN_0202AFFC
-.extern FUN_0202B020
-.extern FUN_0202B034
-.extern FUN_0202B03C
-.extern FUN_0202B050
-.extern FUN_0202B1F0
-.extern FUN_0202B21C
-.extern FUN_0202B250
-.extern FUN_0202B29C
-.extern FUN_0202B31C
-.extern FUN_0202B374
-.extern FUN_0202B37C
-.extern FUN_0202B390
-.extern FUN_0202B3C4
-.extern FUN_0202B3F8
-.extern FUN_0202B40C
-.extern FUN_0202B410
-.extern FUN_0202B414
-.extern FUN_0202B440
-.extern FUN_0202B458
-.extern FUN_0202B4B0
-.extern FUN_0202B534
-.extern FUN_0202B538
-.extern FUN_0202B53C
-.extern FUN_0202B540
-.extern FUN_0202B544
-.extern FUN_0202B5C8
-.extern FUN_0202B5CC
-.extern FUN_0202B5D8
-.extern FUN_0202B678
-.extern FUN_0202B710
-.extern FUN_0202B7C8
-.extern FUN_0202B7F4
-.extern FUN_0202B820
-.extern FUN_0202B838
-.extern FUN_0202B844
-.extern FUN_0202B850
-.extern FUN_0202B85C
-.extern FUN_0202B868
-.extern FUN_0202B870
-.extern FUN_0202B87C
-.extern FUN_0202B8B0
-.extern FUN_0202B8B8
-.extern FUN_0202B8E4
-.extern FUN_0202B8F0
-.extern FUN_0202B9EC
-.extern FUN_0202BCF4
-.extern FUN_0202BD6C
-.extern FUN_0202BDF0
-.extern FUN_0202BE6C
-.extern FUN_0202BE98
-.extern FUN_0202BEA0
-.extern FUN_0202BEDC
-.extern FUN_0202BF7C
-.extern FUN_0202BF90
-.extern FUN_0202BFD8
-.extern FUN_0202C000
-.extern FUN_0202C028
-.extern FUN_0202C060
-.extern FUN_0202C094
-.extern FUN_0202C0B8
-.extern FUN_0202C0E0
-.extern FUN_0202C0E4
-.extern FUN_0202C108
-.extern FUN_0202C12C
-.extern FUN_0202C144
-.extern FUN_0202C4D8
-.extern FUN_0202C570
-.extern FUN_0202C770
-.extern FUN_0202CB70
-.extern FUN_0202CB7C
-.extern FUN_0202CB8C
-.extern FUN_0202CBD4
-.extern FUN_0202CBE8
-.extern FUN_0202CBFC
-.extern FUN_0202CDA4
-.extern FUN_0202CE64
-.extern FUN_0202CEEC
-.extern FUN_0202CF84
-.extern FUN_0202D034
-.extern FUN_0202D0A0
-.extern FUN_0202D0D0
-.extern FUN_0202D100
-.extern FUN_0202D178
-.extern FUN_0202D19C
-.extern FUN_0202D1B0
-.extern FUN_0202D1C8
-.extern FUN_0202D1E4
-.extern FUN_0202D200
-.extern FUN_0202D21C
-.extern FUN_0202D240
-.extern FUN_0202D298
-.extern FUN_0202D2D0
-.extern FUN_0202D2F4
-.extern FUN_0202D308
-.extern FUN_0202D31C
-.extern FUN_0202D330
-.extern FUN_0202D344
-.extern FUN_0202D358
-.extern FUN_0202D36C
-.extern FUN_0202D380
-.extern FUN_0202D394
-.extern FUN_0202D3A4
-.extern FUN_0202D400
-.extern FUN_0202D41C
-.extern FUN_0202D478
-.extern FUN_0202D498
-.extern FUN_0202D4BC
-.extern FUN_0202D4E4
-.extern FUN_0202D684
-.extern FUN_0202D760
-.extern FUN_0202D7D8
-.extern FUN_0202D804
-.extern FUN_0202D824
-.extern FUN_0202D830
-.extern FUN_0202D858
-.extern FUN_0202D884
-.extern FUN_0202D8B0
-.extern FUN_0202D8D0
-.extern FUN_0202D918
-.extern FUN_0202D934
-.extern FUN_0202D9A0
-.extern FUN_0202DA04
-.extern FUN_0202DA40
-.extern FUN_0202DA78
-.extern FUN_0202DA80
-.extern FUN_0202DA84
-.extern FUN_0202DB14
-.extern FUN_0202DBA4
-.extern FUN_0202DBE0
-.extern FUN_0202DCDC
-.extern FUN_0202DCE0
-.extern FUN_0202DCF8
-.extern FUN_0202DD08
-.extern FUN_0202DD80
-.extern FUN_0202DDE8
-.extern FUN_0202DE78
-.extern FUN_0202DEA4
-.extern FUN_0202DEC0
-.extern FUN_0202DEE0
-.extern FUN_0202DEF4
-.extern FUN_0202DF08
-.extern FUN_0202DF28
-.extern FUN_0202DF54
-.extern FUN_0202DFA4
-.extern FUN_0202DFD8
-.extern FUN_0202DFFC
-.extern FUN_0202E020
-.extern FUN_0202E044
-.extern FUN_0202E068
-.extern FUN_0202E08C
-.extern FUN_0202E1BC
-.extern FUN_0202E25C
-.extern FUN_0202E288
-.extern FUN_0202E29C
-.extern FUN_0202E344
-.extern FUN_0202E49C
-.extern FUN_0202E4C8
-.extern FUN_0202E4DC
-.extern FUN_0202E4F0
-.extern FUN_0202E538
-.extern FUN_0202E5F8
-.extern FUN_0202E66C
-.extern FUN_0202E6F0
-.extern FUN_0202E784
-.extern FUN_0202E7B0
-.extern FUN_0202E810
-.extern FUN_0202E844
-.extern FUN_0202E878
-.extern FUN_0202E88C
-.extern FUN_0202E8A0
-.extern FUN_0202E8F4
-.extern FUN_0202E950
-.extern FUN_0202E9AC
-.extern FUN_0202E9E8
-.extern FUN_0202EA54
-.extern FUN_0202ED70
-.extern FUN_0202EDD8
-.extern FUN_0202EDF8
-.extern FUN_0202EE0C
-.extern FUN_0202EE24
-.extern FUN_0202EE44
-.extern FUN_0202EE60
-.extern FUN_0202EE84
-.extern FUN_0202EEB0
-.extern FUN_0202EF18
-.extern FUN_0202EF70
-.extern FUN_0202EF84
-.extern FUN_0202EFAC
-.extern FUN_0202F03C
-.extern FUN_0202F05C
-.extern FUN_0202F078
-.extern FUN_0202F094
-.extern FUN_0202F0B8
-.extern FUN_0202F0DC
-.extern FUN_0202F104
-.extern FUN_0202F10C
-.extern FUN_0202F124
-.extern FUN_0202F918
-.extern FUN_0202F950
-.extern FUN_0202FA10
-.extern FUN_0202FA1C
-.extern FUN_0202FA48
-.extern FUN_0202FA5C
-.extern FUN_0202FB18
-.extern FUN_0202FB80
-.extern FUN_0202FC60
-.extern FUN_0202FC80
-.extern FUN_0202FCA8
-.extern FUN_02030238
-.extern FUN_020303BC
-.extern FUN_020307A8
-.extern FUN_020307BC
-.extern FUN_020307D0
-.extern FUN_0203086C
-.extern FUN_02030A78
-.extern FUN_02030ADC
-.extern FUN_02030B3C
-.extern FUN_02030BC4
-.extern FUN_02030C4C
-.extern FUN_02030C58
-.extern FUN_02030E7C
-.extern FUN_02030F20
-.extern FUN_02030F40
-.extern FUN_02030F60
-.extern FUN_02030F74
-.extern FUN_02030F88
-.extern FUN_02030FA8
-.extern FUN_02030FC8
-.extern FUN_02030FE0
-.extern FUN_02031000
-.extern FUN_0203105C
-.extern FUN_0203110C
-.extern FUN_02031134
-.extern FUN_0203115C
-.extern FUN_02031190
-.extern FUN_020311D0
-.extern FUN_020311DC
-.extern FUN_020311E8
-.extern FUN_020311F0
-.extern FUN_02031248
-.extern FUN_02031258
-.extern FUN_02031268
-.extern FUN_02031280
-.extern FUN_0203129C
-.extern FUN_020312BC
-.extern FUN_02031354
-.extern FUN_02031370
-.extern FUN_02031388
-.extern FUN_020313A0
-.extern FUN_020313B4
-.extern FUN_020313CC
-.extern FUN_020313EC
-.extern FUN_02031400
-.extern FUN_02031438
-.extern FUN_02031454
-.extern FUN_02031468
-.extern FUN_02031480
-.extern FUN_020314D0
-.extern FUN_020314E8
-.extern FUN_020314FC
-.extern FUN_02031560
-.extern FUN_02031574
-.extern FUN_02031588
-.extern FUN_020315A4
-.extern FUN_020315D8
-.extern FUN_020315FC
-.extern FUN_0203160C
-.extern FUN_02031628
-.extern FUN_0203162C
-.extern FUN_02031640
-.extern FUN_02031668
-.extern FUN_0203168C
-.extern FUN_020316AC
-.extern FUN_020316E0
-.extern FUN_02031704
-.extern FUN_02031730
-.extern FUN_02031810
-.extern FUN_02031824
-.extern FUN_02031860
-.extern FUN_02031880
-.extern FUN_020318A4
-.extern FUN_020318B4
-.extern FUN_020318C4
-.extern FUN_02031914
-.extern FUN_02031924
-.extern FUN_02031934
-.extern FUN_02031948
-.extern FUN_02031990
-.extern FUN_020319D8
-.extern FUN_020319F4
-.extern FUN_02031A08
-.extern FUN_02031A24
-.extern FUN_02031A2C
-.extern FUN_02031A7C
-.extern FUN_02031AC8
-.extern FUN_02031AF4
-.extern FUN_02031B2C
-.extern FUN_02031B50
-.extern FUN_02031BD0
-.extern FUN_02031BF4
-.extern FUN_02031C10
-.extern FUN_02031C2C
-.extern FUN_02031C54
-.extern FUN_02031C64
-.extern FUN_02031C74
-.extern FUN_02031CA8
-.extern FUN_02031CDC
-.extern FUN_02032888
-.extern FUN_020328C0
-.extern FUN_020328E4
-.extern FUN_020328F4
-.extern FUN_02032A8C
-.extern FUN_02032AEC
-.extern FUN_02032B68
-.extern FUN_02032B6C
-.extern FUN_02032BD0
-.extern FUN_02032C0C
-.extern FUN_02032C28
-.extern FUN_02032D44
-.extern FUN_02032D80
-.extern FUN_02032D9C
-.extern FUN_02032DAC
-.extern FUN_02032FDC
-.extern FUN_0203300C
-.extern FUN_020330E4
-.extern FUN_02033128
-.extern FUN_02033138
-.extern FUN_02033154
-.extern FUN_02033180
-.extern FUN_020331C4
-.extern FUN_020331E8
-.extern FUN_02033208
-.extern FUN_0203323C
-.extern FUN_02033250
-.extern FUN_02033288
-.extern FUN_020332DC
-.extern FUN_02033310
-.extern FUN_02033364
-.extern FUN_0203346C
-.extern FUN_020334DC
-.extern FUN_020334E8
-.extern FUN_02033534
-.extern FUN_0203354C
-.extern FUN_02033564
-.extern FUN_02033578
-.extern FUN_02033590
-.extern FUN_020335A4
-.extern FUN_020335B8
-.extern FUN_020335D0
-.extern FUN_020335E0
-.extern FUN_020335F0
-.extern FUN_020335F4
-.extern FUN_02033678
-.extern FUN_020336A0
-.extern FUN_020336C0
-.extern FUN_020336C8
-.extern FUN_02033778
-.extern FUN_020337C8
-.extern FUN_020337E8
-.extern FUN_0203380C
-.extern FUN_02033830
-.extern FUN_0203384C
-.extern FUN_02033874
-.extern FUN_02033918
-.extern FUN_020339B4
-.extern FUN_02033A70
-.extern FUN_02033E74
-.extern FUN_02033ED0
-.extern FUN_02033EEC
-.extern FUN_02033F04
-.extern FUN_02033F20
-.extern FUN_02033F70
-.extern FUN_02034188
-.extern FUN_02034494
-.extern FUN_020344AC
-.extern FUN_020344D0
-.extern FUN_020344D8
-.extern FUN_020344FC
-.extern FUN_0203450C
-.extern FUN_0203451C
-.extern FUN_02034554
-.extern FUN_02034574
-.extern FUN_02034578
-.extern FUN_020345A8
-.extern FUN_020345DC
-.extern FUN_020345F0
-.extern FUN_020345FC
-.extern FUN_02034660
-.extern FUN_02034678
-.extern FUN_020346CC
-.extern FUN_02034724
-.extern FUN_02034738
-.extern FUN_0203474C
-.extern FUN_02034774
-.extern FUN_02034788
-.extern FUN_0203479C
-.extern FUN_020347B0
-.extern FUN_020347C4
-.extern FUN_020347D8
-.extern FUN_020347FC
-.extern FUN_02034810
-.extern FUN_02034824
-.extern FUN_02034838
-.extern FUN_0203484C
-.extern FUN_02034860
-.extern FUN_0203487C
-.extern FUN_02034898
-.extern FUN_020348B4
-.extern FUN_020348E4
-.extern FUN_02034908
-.extern FUN_02034930
-.extern FUN_02034944
-.extern FUN_02034964
-.extern FUN_02034984
-.extern FUN_02034998
-.extern FUN_020349AC
-.extern FUN_020349B8
-.extern FUN_020349CC
-.extern FUN_020349D8
-.extern FUN_020349E4
-.extern FUN_02034A04
-.extern FUN_02034A28
-.extern FUN_02034A48
-.extern FUN_02034A60
-.extern FUN_02034AC8
-.extern FUN_02034AF0
-.extern FUN_02034AF8
-.extern FUN_02034B00
-.extern FUN_02034B18
-.extern FUN_02034B54
-.extern FUN_02034B5C
-.extern FUN_02034B64
-.extern FUN_02034B6C
-.extern FUN_02034B74
-.extern FUN_02034BAC
-.extern FUN_02034BDC
-.extern FUN_02034C0C
-.extern FUN_02034C24
-.extern FUN_02034C34
-.extern FUN_02034CB4
-.extern FUN_02034CE0
-.extern FUN_02034D2C
-.extern FUN_02034D44
-.extern FUN_02034D7C
-.extern FUN_02034D80
-.extern FUN_02034D88
-.extern FUN_02034D98
-.extern FUN_02034DC0
-.extern FUN_02034DC4
-.extern FUN_02034DC8
-.extern FUN_02034DCC
-.extern FUN_02034DD0
-.extern FUN_02034DD4
-.extern FUN_02034DE8
-.extern FUN_02034DEC
-.extern FUN_02034DF4
-.extern FUN_02034DFC
-.extern FUN_02034E04
-.extern FUN_02034E0C
-.extern FUN_02034E10
-.extern FUN_02034E18
-.extern FUN_02034E20
-.extern FUN_02034E24
-.extern FUN_02034E28
-.extern FUN_02034E2C
-.extern FUN_02034E30
-.extern FUN_02034E48
-.extern FUN_02034E60
-.extern FUN_02034E8C
-.extern FUN_02034E90
-.extern FUN_02034EC4
-.extern FUN_02034EF8
-.extern FUN_02034F1C
-.extern FUN_02034F40
-.extern FUN_02034F88
-.extern FUN_02034FC0
-.extern FUN_02034FE4
-.extern FUN_02035068
-.extern FUN_02035080
-.extern FUN_02035118
-.extern FUN_0203515C
-.extern FUN_020351A0
-.extern FUN_02035D04
-.extern FUN_02035E50
-.extern FUN_02036A78
-.extern FUN_02036AB8
-.extern FUN_02036B90
-.extern FUN_02036BC4
-.extern FUN_02036BDC
-.extern FUN_02036D94
-.extern FUN_02036DD4
-.extern FUN_02036FA4
-.extern FUN_02037000
-.extern FUN_02037024
-.extern FUN_02037090
-.extern FUN_020370BC
-.extern FUN_020371D0
-.extern FUN_02037230
-.extern FUN_02037264
-.extern FUN_02037394
-.extern FUN_0203739C
-.extern FUN_020373AC
-.extern FUN_020373C4
-.extern FUN_020373D4
-.extern FUN_02037760
-.extern FUN_02037778
-.extern FUN_02037790
-.extern FUN_020377A8
-.extern FUN_020377AC
-.extern FUN_020377B0
-.extern FUN_020377C8
-.extern FUN_020377E0
-.extern FUN_0203780C
-.extern FUN_0203781C
-.extern FUN_02037844
-.extern FUN_0203789C
-.extern FUN_020378FC
-.extern FUN_0203791C
-.extern FUN_02037944
-.extern FUN_0203796C
-.extern FUN_020379C8
-.extern FUN_020379F8
-.extern FUN_02037A1C
-.extern FUN_02037A40
-.extern FUN_02037A48
-.extern FUN_02037A70
-.extern FUN_02037A78
-.extern FUN_02037B44
-.extern FUN_02037BB0
-.extern FUN_02037C00
-.extern FUN_02037CF0
-.extern FUN_02037D5C
-.extern FUN_02037D60
-.extern FUN_02037E18
-.extern FUN_02037E80
-.extern FUN_02037E90
-.extern FUN_02037EB8
-.extern FUN_02037EF8
-.extern FUN_02037F2C
-.extern FUN_02037F58
-.extern FUN_02037F90
-.extern FUN_02037FC4
-.extern FUN_02037FE4
-.extern FUN_020380CC
-.extern FUN_02038130
-.extern FUN_020383D8
-.extern FUN_020383F8
-.extern FUN_0203842C
-.extern FUN_0203846C
-.extern FUN_020385CC
-.extern FUN_02038680
-.extern FUN_02038690
-.extern FUN_020386A4
-.extern FUN_020386B4
-.extern FUN_020386E0
-.extern FUN_02038790
-.extern FUN_02038804
-.extern FUN_02038814
-.extern FUN_02038824
-.extern FUN_02038854
-.extern FUN_02038864
-.extern FUN_0203888C
-.extern FUN_020388B4
-.extern FUN_020389CC
-.extern FUN_02038AD0
-.extern FUN_02038AF4
-.extern FUN_02038B6C
-.extern FUN_02038C78
-.extern FUN_02038CA8
-.extern FUN_02038CD8
-.extern FUN_02038D10
-.extern FUN_02038EB0
-.extern FUN_02039438
-.extern FUN_02039460
-.extern FUN_020394B8
-.extern FUN_020394F0
-.extern FUN_02039504
-.extern FUN_02039528
-.extern FUN_0203953C
-.extern FUN_02039550
-.extern FUN_02039564
-.extern FUN_0203959C
-.extern FUN_020395BC
-.extern FUN_020395F4
-.extern FUN_02039618
-.extern FUN_0203962C
-.extern FUN_02039640
-.extern FUN_0203965C
-.extern FUN_02039678
-.extern FUN_02039694
-.extern FUN_02039754
-.extern FUN_02039874
-.extern FUN_0203989C
-.extern FUN_020399A0
-.extern FUN_020399A4
-.extern FUN_020399A8
-.extern FUN_020399B4
-.extern FUN_02039A10
-.extern FUN_02039A28
-.extern FUN_02039A40
-.extern FUN_02039A5C
-.extern FUN_02039A78
-.extern FUN_02039A90
-.extern FUN_02039AAC
-.extern FUN_02039ACC
-.extern FUN_02039AF8
-.extern FUN_02039B28
-.extern FUN_02039B50
-.extern FUN_02039B78
-.extern FUN_02039BA0
-.extern FUN_02039BBC
-.extern FUN_02039BDC
-.extern FUN_02039C08
-.extern FUN_02039C40
-.extern FUN_02039C78
-.extern FUN_02039CE4
-.extern FUN_02039CF8
-.extern FUN_02039D10
-.extern FUN_02039D48
-.extern FUN_02039D78
-.extern FUN_02039DAC
-.extern FUN_02039DC4
-.extern FUN_02039DD0
-.extern FUN_02039E04
-.extern FUN_02039E38
-.extern FUN_02039E50
-.extern FUN_02039E68
-.extern FUN_02039E84
-.extern FUN_02039EC0
-.extern FUN_02039EE8
-.extern FUN_02039F0C
-.extern FUN_02039F30
-.extern FUN_02039F58
-.extern FUN_02039F88
-.extern FUN_02039FB8
-.extern FUN_02039FDC
-.extern FUN_0203A00C
-.extern FUN_0203A038
-.extern FUN_0203A04C
-.extern FUN_0203A098
-.extern FUN_0203A0FC
-.extern FUN_0203A13C
-.extern FUN_0203A188
-.extern FUN_0203A210
-.extern FUN_0203A288
-.extern FUN_0203A2C4
-.extern FUN_0203A304
-.extern FUN_0203A340
-.extern FUN_0203A388
-.extern FUN_0203A3C4
-.extern FUN_0203A400
-.extern FUN_0203A45C
-.extern FUN_0203A484
-.extern FUN_0203A4D0
-.extern FUN_0203A560
-.extern FUN_0203A590
-.extern FUN_0203A5D8
-.extern FUN_0203A608
-.extern FUN_0203A630
-.extern FUN_0203A780
-.extern FUN_0203A830
-.extern FUN_0203A85C
-.extern FUN_0203A878
-.extern FUN_0203A8B8
-.extern FUN_0203A9F0
-.extern FUN_0203AA90
-.extern FUN_0203AAA0
-.extern FUN_0203AB44
-.extern FUN_0203AB74
-.extern FUN_0203AB8C
-.extern FUN_0203AC14
-.extern FUN_0203AC9C
-.extern FUN_0203ACC4
-.extern FUN_0203AD08
-.extern FUN_0203AD54
-.extern FUN_0203ADC4
-.extern FUN_0203AE4C
-.extern FUN_0203AED4
-.extern FUN_0203AF34
-.extern FUN_0203AF58
-.extern FUN_0203AF84
-.extern FUN_0203AFA4
-.extern FUN_0203AFC4
-.extern FUN_0203B024
-.extern FUN_0203B148
-.extern FUN_0203B1F0
-.extern FUN_0203B2E0
-.extern FUN_0203B3B0
-.extern FUN_0203B3C0
-.extern FUN_0203B3DC
-.extern FUN_0203B3F8
-.extern FUN_0203B440
-.extern FUN_0203B468
-.extern FUN_0203B500
-.extern FUN_0203B544
-.extern FUN_0203B574
-.extern FUN_0203B5B8
-.extern FUN_0203B618
-.extern FUN_0203B640
-.extern FUN_0203B724
-.extern FUN_0203B758
-.extern FUN_0203B790
-.extern FUN_0203B7D8
-.extern FUN_0203B7F0
-.extern FUN_0203B81C
-.extern FUN_0203B85C
-.extern FUN_0203B8A0
-.extern FUN_0203B8E4
-.extern FUN_0203B914
-.extern FUN_0203B944
-.extern FUN_0203B968
-.extern FUN_0203B9B4
-.extern FUN_0203BA3C
-.extern FUN_0203BAB0
-.extern FUN_0203BAF4
-.extern FUN_0203BB34
-.extern FUN_0203BB80
-.extern FUN_0203BB84
-.extern FUN_0203BB88
-.extern FUN_0203BB8C
-.extern FUN_0203BC04
-.extern FUN_0203BC1C
-.extern FUN_0203BC2C
-.extern FUN_0203BCBC
-.extern FUN_0203BCCC
-.extern FUN_0203BCD8
-.extern FUN_0203BD08
-.extern FUN_0203BD28
-.extern FUN_0203BDB8
-.extern FUN_0203BE50
-.extern FUN_0203BE68
-.extern FUN_0203BE80
-.extern FUN_0203BECC
-.extern FUN_0203BF00
-.extern FUN_0203BF20
-.extern FUN_0203BF2C
-.extern FUN_0203BF84
-.extern FUN_0203BFEC
-.extern FUN_0203C054
-.extern FUN_0203C090
-.extern FUN_0203C0CC
-.extern FUN_0203C0FC
-.extern FUN_0203C118
-.extern FUN_0203C12C
-.extern FUN_0203C174
-.extern FUN_0203C1AC
-.extern FUN_0203C200
-.extern FUN_0203C278
-.extern FUN_0203C2C4
-.extern FUN_0203C2E0
-.extern FUN_0203C2F0
-.extern FUN_0203C300
-.extern FUN_0203C32C
-.extern FUN_0203C33C
-.extern FUN_0203C368
-.extern FUN_0203C3C8
-.extern FUN_0203C3E8
-.extern FUN_0203C430
-.extern FUN_0203C460
-.extern FUN_0203C4B0
-.extern FUN_0203C4F0
-.extern FUN_0203C520
-.extern FUN_0203C58C
-.extern FUN_0203C5BC
-.extern FUN_0203C614
-.extern FUN_0203C680
-.extern FUN_0203C6C4
-.extern FUN_0203C70C
-.extern FUN_0203C730
-.extern FUN_0203C788
-.extern FUN_0203C7E4
-.extern FUN_0203C7F4
-.extern FUN_0203C820
-.extern FUN_0203C844
-.extern FUN_0203C874
-.extern FUN_0203C8B4
-.extern FUN_0203C8E4
-.extern FUN_0203C930
-.extern FUN_0203C960
-.extern FUN_0203C990
-.extern FUN_0203CA20
-.extern FUN_0203CA2C
-.extern FUN_0203CA5C
-.extern FUN_0203CAE8
-.extern FUN_0203CB08
-.extern FUN_0203CB20
-.extern FUN_0203CB48
-.extern FUN_0203CB60
-.extern FUN_0203CB70
-.extern FUN_0203CBBC
-.extern FUN_0203CBE8
-.extern FUN_0203CC88
-.extern FUN_0203CD20
-.extern FUN_0203CDB8
-.extern FUN_0203CDC4
-.extern FUN_0203CDD0
-.extern FUN_0203CE00
-.extern FUN_0203CE0C
-.extern FUN_0203CE8C
-.extern FUN_0203CEBC
-.extern FUN_0203CF04
-.extern FUN_0203CF34
-.extern FUN_0203CF64
-.extern FUN_0203CF94
-.extern FUN_0203CFC4
-.extern FUN_0203CFC8
-.extern FUN_0203D050
-.extern FUN_0203D0A4
-.extern FUN_0203D0F8
-.extern FUN_0203D134
-.extern FUN_0203D140
-.extern FUN_0203D150
-.extern FUN_0203D178
-.extern FUN_0203D194
-.extern FUN_0203D1A4
-.extern FUN_0203D1C0
-.extern FUN_0203D214
-.extern FUN_0203D23C
-.extern FUN_0203D248
-.extern FUN_0203D278
-.extern FUN_0203D2A4
-.extern FUN_0203D2E4
-.extern FUN_0203D330
-.extern FUN_0203D33C
-.extern FUN_0203D36C
-.extern FUN_0203D3A4
-.extern FUN_0203D3DC
-.extern FUN_0203D448
-.extern FUN_0203D458
-.extern FUN_0203D490
-.extern FUN_0203D4E8
-.extern FUN_0203D528
-.extern FUN_0203D560
-.extern FUN_0203D5B0
-.extern FUN_0203D5F8
-.extern FUN_0203D60C
-.extern FUN_0203D61C
-.extern FUN_0203D630
-.extern FUN_0203D66C
-.extern FUN_0203D6C4
-.extern FUN_0203D728
-.extern FUN_0203D738
-.extern FUN_0203D774
-.extern FUN_0203D7DC
-.extern FUN_0203D834
-.extern FUN_0203D868
-.extern FUN_0203D874
-.extern FUN_0203D8A0
-.extern FUN_0203D8D0
-.extern FUN_0203D8E8
-.extern FUN_0203D8EC
-.extern FUN_0203D920
-.extern FUN_0203D938
-.extern FUN_0203D948
-.extern FUN_0203D958
-.extern FUN_0203D998
-.extern FUN_0203D9E8
-.extern FUN_0203DA78
-.extern FUN_0203DAB0
-.extern FUN_0203DAE8
-.extern FUN_0203DB38
-.extern FUN_0203DB88
-.extern FUN_0203DBD4
-.extern FUN_0203DC00
-.extern FUN_0203DC58
-.extern FUN_0203DC70
-.extern FUN_0203DC88
-.extern FUN_0203DCA0
-.extern FUN_0203DCB8
-.extern FUN_0203DCC8
-.extern FUN_0203DCD8
-.extern FUN_0203DCE8
-.extern FUN_0203DCF8
-.extern FUN_0203DD08
-.extern FUN_0203DD18
-.extern FUN_0203DD34
-.extern FUN_0203DD50
-.extern FUN_0203DD60
-.extern FUN_0203DE00
-.extern FUN_0203DE4C
-.extern FUN_0203DE58
-.extern FUN_0203DE80
-.extern FUN_0203DEA8
-.extern FUN_0203DEC4
-.extern FUN_0203DEF8
-.extern FUN_0203DF2C
-.extern FUN_0203DF38
-.extern FUN_0203DF64
-.extern FUN_0203DF84
-.extern FUN_0203DFA8
-.extern FUN_0203DFE0
-.extern FUN_0203E018
-.extern FUN_0203E054
-.extern FUN_0203E078
-.extern FUN_0203E0CC
-.extern FUN_0203E120
-.extern FUN_0203E138
-.extern FUN_0203E168
-.extern FUN_0203E254
-.extern FUN_0203E258
-.extern FUN_0203E29C
-.extern FUN_0203E2F8
-.extern FUN_0203E35C
-.extern FUN_0203E38C
-.extern FUN_0203E3D0
-.extern FUN_0203E408
-.extern FUN_0203E440
-.extern FUN_0203E470
-.extern FUN_0203E4A0
-.extern FUN_0203E4B0
-.extern FUN_0203E4D8
-.extern FUN_0203E4F0
-.extern FUN_0203E510
-.extern FUN_0203E568
-.extern FUN_0203E5DC
-.extern FUN_0203E674
-.extern FUN_0203E684
-.extern FUN_0203E6B4
-.extern FUN_0203E6C4
-.extern FUN_0203E6FC
-.extern FUN_0203E72C
-.extern FUN_0203E744
-.extern FUN_0203E774
-.extern FUN_0203E7F0
-.extern FUN_0203E81C
-.extern FUN_0203E848
-.extern FUN_0203E858
-.extern FUN_0203E870
-.extern FUN_0203E894
-.extern FUN_0203E8C4
-.extern FUN_0203E8F4
-.extern FUN_0203E928
-.extern FUN_0203E940
-.extern FUN_0203E954
-.extern FUN_0203E968
-.extern FUN_0203E9CC
-.extern FUN_0203EA68
-.extern FUN_0203EA90
-.extern FUN_0203EAB0
-.extern FUN_0203EB20
-.extern FUN_0203EB48
-.extern FUN_0203EB88
-.extern FUN_0203EBC8
-.extern FUN_0203EBE4
-.extern FUN_0203ECAC
-.extern FUN_0203ECD8
-.extern FUN_0203ECF4
-.extern FUN_0203ED10
-.extern FUN_0203ED70
-.extern FUN_0203EDA4
-.extern FUN_0203EDC8
-.extern FUN_0203EDE0
-.extern FUN_0203EE08
-.extern FUN_0203EE18
-.extern FUN_0203EE28
-.extern FUN_0203EE58
-.extern FUN_0203EE68
-.extern FUN_0203EE78
-.extern FUN_0203EE98
-.extern FUN_0203EED8
-.extern FUN_0203EF58
-.extern FUN_0203F00C
-.extern FUN_0203F020
-.extern FUN_0203F034
-.extern FUN_0203F058
-.extern FUN_0203F07C
-.extern FUN_0203F110
-.extern FUN_0203F174
-.extern FUN_0203F19C
-.extern FUN_0203F234
-.extern FUN_0203F254
-.extern FUN_0203F26C
-.extern FUN_0203F2AC
-.extern FUN_0203F2E4
-.extern FUN_0203F31C
-.extern FUN_0203F348
-.extern FUN_0203F38C
-.extern FUN_0203F39C
-.extern FUN_0203F3AC
-.extern FUN_0203F418
-.extern FUN_0203F44C
-.extern FUN_0203F484
-.extern FUN_0203F4D8
-.extern FUN_0203F508
-.extern FUN_0203F5D4
-.extern FUN_0203F604
-.extern FUN_0203F634
-.extern FUN_0203F664
-.extern FUN_0203F6E4
-.extern FUN_0203F720
-.extern FUN_0203F760
-.extern FUN_0203F7C8
-.extern FUN_0203F80C
-.extern FUN_0203F880
-.extern FUN_0203F8C0
-.extern FUN_0203F924
-.extern FUN_0203F954
-.extern FUN_0203F988
-.extern FUN_0203F9B0
-.extern FUN_0203F9DC
-.extern FUN_0203FA14
-.extern FUN_0203FA58
-.extern FUN_0203FB4C
-.extern FUN_0203FB64
-.extern FUN_0203FB94
-.extern FUN_0203FBA0
-.extern FUN_0203FBAC
-.extern FUN_0203FBBC
-.extern FUN_0203FC1C
-.extern FUN_0203FC58
-.extern FUN_0203FC80
-.extern FUN_0203FCB0
-.extern FUN_0203FCDC
-.extern FUN_0203FCF4
-.extern FUN_0203FDBC
-.extern FUN_0203FE08
-.extern FUN_0203FE48
-.extern FUN_0203FE80
-.extern FUN_0203FE90
-.extern FUN_0203FEC0
-.extern FUN_0203FF10
-.extern FUN_02040028
-.extern FUN_02040074
-.extern FUN_020400C8
-.extern FUN_0204011C
-.extern FUN_02040170
-.extern FUN_020401CC
-.extern FUN_02040204
-.extern FUN_02040220
-.extern FUN_0204025C
-.extern FUN_02040298
-.extern FUN_020402D4
-.extern FUN_02040304
-.extern FUN_02040340
-.extern FUN_02040370
-.extern FUN_020403A0
-.extern FUN_020403D0
-.extern FUN_02040414
-.extern FUN_02040458
-.extern FUN_02040488
-.extern FUN_020404FC
-.extern FUN_0204052C
-.extern FUN_0204056C
-.extern FUN_0204059C
-.extern FUN_020405B4
-.extern FUN_020405CC
-.extern FUN_020405F8
-.extern FUN_02040638
-.extern FUN_0204064C
-.extern FUN_02040660
-.extern FUN_020406C0
-.extern FUN_020406CC
-.extern FUN_02040700
-.extern FUN_02040724
-.extern FUN_02040748
-.extern FUN_02040790
-.extern FUN_020407C8
-.extern FUN_02040800
-.extern FUN_0204083C
-.extern FUN_02040874
-.extern FUN_020408BC
-.extern FUN_0204091C
-.extern FUN_02040964
-.extern FUN_020409C0
-.extern FUN_020409F8
-.extern FUN_02040A30
-.extern FUN_02040A7C
-.extern FUN_02040B0C
-.extern FUN_02040B5C
-.extern FUN_02040BAC
-.extern FUN_02040BFC
-.extern FUN_02040C34
-.extern FUN_02040C6C
-.extern FUN_02040CA4
-.extern FUN_02040D04
-.extern FUN_02040D7C
-.extern FUN_02040DB4
-.extern FUN_02040DEC
-.extern FUN_02040E4C
-.extern FUN_02040EB4
-.extern FUN_02040EF8
-.extern FUN_02040F34
-.extern FUN_02040F6C
-.extern FUN_02040FA4
-.extern FUN_02040FDC
-.extern FUN_02041014
-.extern FUN_0204104C
-.extern FUN_02041094
-.extern FUN_020410C8
-.extern FUN_02041100
-.extern FUN_02041138
-.extern FUN_02041174
-.extern FUN_02041194
-.extern FUN_020411C4
-.extern FUN_02041340
-.extern FUN_020413C0
-.extern FUN_020413E8
-.extern FUN_020413F8
-.extern FUN_0204140C
-.extern FUN_02041424
-.extern FUN_0204143C
-.extern FUN_02041478
-.extern FUN_0204149C
-.extern FUN_020414B8
-.extern FUN_020414CC
-.extern FUN_020414E0
-.extern FUN_020414FC
-.extern FUN_02041518
-.extern FUN_02041558
-.extern FUN_02041588
-.extern FUN_020415AC
-.extern FUN_020415BC
-.extern FUN_020415E0
-.extern FUN_02041618
-.extern FUN_02041644
-.extern FUN_02041650
-.extern FUN_02041664
-.extern FUN_02041674
-.extern FUN_020416A8
-.extern FUN_02041770
-.extern FUN_020417E0
-.extern FUN_02041808
-.extern FUN_0204185C
-.extern FUN_0204188C
-.extern FUN_0204190C
-.extern FUN_02041970
-.extern FUN_020419F8
-.extern FUN_02041A80
-.extern FUN_02041AB4
-.extern FUN_02041AD4
-.extern FUN_02041AE0
-.extern FUN_02041B10
-.extern FUN_02041B40
-.extern FUN_02041B70
-.extern FUN_02041B9C
-.extern FUN_02041BC4
-.extern FUN_02041BF0
-.extern FUN_02041C38
-.extern FUN_02041E40
-.extern FUN_02041FDC
-.extern FUN_02042000
-.extern FUN_02042038
-.extern FUN_02042110
-.extern FUN_0204214C
-.extern FUN_02042354
-.extern FUN_02042364
-.extern FUN_02042394
-.extern FUN_020423B0
-.extern FUN_02042700
-.extern FUN_02042780
-.extern FUN_020427A8
-.extern FUN_020427D0
-.extern FUN_02042864
-.extern FUN_02042894
-.extern FUN_020428E0
-.extern FUN_02042950
-.extern FUN_02042980
-.extern FUN_02042998
-.extern FUN_020429B8
-.extern FUN_020429E8
-.extern FUN_02042A18
-.extern FUN_02042A48
-.extern FUN_02042A98
-.extern FUN_02042B0C
-.extern FUN_02042B40
-.extern FUN_02042B74
-.extern FUN_02042BA8
-.extern FUN_02042BDC
-.extern FUN_02042C10
-.extern FUN_02042C44
-.extern FUN_02042C8C
-.extern FUN_02042CBC
-.extern FUN_02042D1C
-.extern FUN_0204387C
-.extern FUN_020438D0
-.extern FUN_02043918
-.extern FUN_020439B4
-.extern FUN_02043A44
-.extern FUN_02043A94
-.extern FUN_02043AAC
-.extern FUN_02043ACC
-.extern FUN_02043AFC
-.extern FUN_02043B28
-.extern FUN_02043B54
-.extern FUN_02043B84
-.extern FUN_02043BD0
-.extern FUN_02043C28
-.extern FUN_02043C6C
-.extern FUN_02043C90
-.extern FUN_02043CB4
-.extern FUN_02043CE4
-.extern FUN_02043D28
-.extern FUN_02043D78
-.extern FUN_02043DC8
-.extern FUN_02043DE0
-.extern FUN_02043E00
-.extern FUN_02043E20
-.extern FUN_02043E50
-.extern FUN_02043E68
-.extern FUN_02043E9C
-.extern FUN_02043EFC
-.extern FUN_02043F50
-.extern FUN_02043FA0
-.extern FUN_02043FF4
-.extern FUN_02044034
-.extern FUN_020440C0
-.extern FUN_020440F0
-.extern FUN_02044120
-.extern FUN_02044138
-.extern FUN_0204413C
-.extern FUN_02044140
-.extern FUN_02044158
-.extern FUN_0204416C
-.extern FUN_02044198
-.extern FUN_020442BC
-.extern FUN_0204434C
-.extern FUN_020443A8
-.extern FUN_02044414
-.extern FUN_0204449C
-.extern FUN_020444F4
-.extern FUN_02044598
-.extern FUN_02044658
-.extern FUN_0204469C
-.extern FUN_02044730
-.extern FUN_0204478C
-.extern FUN_02044800
-.extern FUN_0204488C
-.extern FUN_020448D4
-.extern FUN_020449A4
-.extern FUN_02044A0C
-.extern FUN_02044A6C
-.extern FUN_02044A94
-.extern FUN_02044B00
-.extern FUN_02044B2C
-.extern FUN_02044B84
-.extern FUN_02044C0C
-.extern FUN_02044C88
-.extern FUN_02044CE0
-.extern FUN_02044D44
-.extern FUN_02044D8C
-.extern FUN_02044E34
-.extern FUN_02044E78
-.extern FUN_02044ED8
-.extern FUN_02044F20
-.extern FUN_02044F58
-.extern FUN_02044FE8
-.extern FUN_0204505C
-.extern FUN_02045104
-.extern FUN_02045170
-.extern FUN_020451D0
-.extern FUN_02045264
-.extern FUN_02045268
-.extern FUN_020452B4
-.extern FUN_02045308
-.extern FUN_02045398
-.extern FUN_0204539C
-.extern FUN_020453A0
-.extern FUN_020453F4
-.extern FUN_02045424
-.extern FUN_02045438
-.extern FUN_02045468
-.extern FUN_02045484
-.extern FUN_020454CC
-.extern FUN_02045500
-.extern FUN_0204552C
-.extern FUN_0204557C
-.extern FUN_02045590
-.extern FUN_020455BC
-.extern FUN_020455D0
-.extern FUN_020455E4
-.extern FUN_02045610
-.extern FUN_02045624
-.extern FUN_02045638
-.extern FUN_02045664
-.extern FUN_02045678
-.extern FUN_020456D4
-.extern FUN_0204572C
-.extern FUN_02045784
-.extern FUN_020457DC
-.extern FUN_02045834
-.extern FUN_0204588C
-.extern FUN_020458E4
-.extern FUN_02045918
-.extern FUN_02045950
-.extern FUN_02045954
-.extern FUN_02045958
-.extern FUN_020459AC
-.extern FUN_020459E8
-.extern FUN_02045A3C
-.extern FUN_02045A78
-.extern FUN_02045ACC
-.extern FUN_02045B08
-.extern FUN_02045B44
-.extern FUN_02045B80
-.extern FUN_02045BC8
-.extern FUN_02045C04
-.extern FUN_02045C40
-.extern FUN_02045C7C
-.extern FUN_02045CD4
-.extern FUN_02045D10
-.extern FUN_02045D4C
-.extern FUN_02045D88
-.extern FUN_02045DD0
-.extern FUN_02045E1C
-.extern FUN_02045E20
-.extern FUN_02045EE0
-.extern FUN_02045EE4
-.extern FUN_02045F24
-.extern FUN_02045F84
-.extern FUN_02045F88
-.extern FUN_02045FCC
-.extern FUN_02046010
-.extern FUN_0204601C
-.extern FUN_02046028
-.extern FUN_0204602C
-.extern FUN_02046030
-.extern FUN_02046294
-.extern FUN_0204629C
-.extern FUN_020462AC
-.extern FUN_020462B8
-.extern FUN_020462E4
-.extern FUN_0204630C
-.extern FUN_02046338
-.extern FUN_02046380
-.extern FUN_020463CC
-.extern FUN_020463EC
-.extern FUN_0204640C
-.extern FUN_02046420
-.extern FUN_0204646C
-.extern FUN_0204647C
-.extern FUN_0204649C
-.extern FUN_020464A4
-.extern FUN_02046500
-.extern FUN_02046528
-.extern FUN_0204652C
-.extern FUN_02046530
-.extern FUN_02046534
-.extern FUN_02046948
-.extern FUN_020469B8
-.extern FUN_02046A20
-.extern FUN_02046DB4
-.extern FUN_02046E18
-.extern FUN_02046F70
-.extern FUN_02046FA0
-.extern FUN_020470AC
-.extern FUN_020470E8
-.extern FUN_02047174
-.extern FUN_020471C0
-.extern FUN_0204726C
-.extern FUN_020472B0
-.extern FUN_020475A0
-.extern FUN_020475B0
-.extern FUN_020476CC
-.extern FUN_020477EC
-.extern FUN_02047800
-.extern FUN_02047814
-.extern FUN_02047964
-.extern FUN_020479FC
-.extern FUN_02047A78
-.extern FUN_02047BB0
-.extern FUN_02047BC0
-.extern FUN_02047D48
-.extern FUN_02047F1C
-.extern FUN_02047F38
-.extern FUN_02047FA4
-.extern FUN_020480AC
-.extern FUN_020480B8
-.extern FUN_020480C8
-.extern FUN_020480D8
-.extern FUN_020480E4
-.extern FUN_0204837C
-.extern FUN_02048498
-.extern FUN_02048694
-.extern FUN_020489DC
-.extern FUN_020489FC
-.extern FUN_02048C58
-.extern FUN_02048D90
-.extern FUN_02048EC8
-.extern FUN_02048FC8
-.extern FUN_02049160
-.extern FUN_020491A8
-.extern FUN_02049240
-.extern FUN_02049274
-.extern FUN_020492BC
-.extern FUN_02049494
-.extern FUN_02049718
-.extern FUN_0204976C
-.extern FUN_02049824
-.extern FUN_02049844
-.extern FUN_02049CB0
-.extern FUN_02049D9C
-.extern FUN_02049EA4
-.extern FUN_02049F98
-.extern FUN_02049FFC
-.extern FUN_0204A048
-.extern FUN_0204A0C8
-.extern FUN_0204A120
-.extern FUN_0204A138
-.extern FUN_0204A1D8
-.extern FUN_0204A20C
-.extern FUN_0204A248
-.extern FUN_0204A25C
-.extern FUN_0204A29C
-.extern FUN_0204A32C
-.extern FUN_0204A368
-.extern FUN_0204A390
-.extern FUN_0204A3A4
-.extern FUN_0204A690
-.extern FUN_0204A6B4
-.extern FUN_0204A6E0
-.extern FUN_0204A708
-.extern FUN_0204A770
-.extern FUN_0204A7C8
-.extern FUN_0204A840
-.extern FUN_0204A8C4
-.extern FUN_0204A94C
-.extern FUN_0204A9F0
-.extern FUN_0204AA5C
-.extern FUN_0204AAD4
-.extern FUN_0204AB0C
-.extern FUN_0204AB20
-.extern FUN_0204AB44
-.extern FUN_0204AB58
-.extern FUN_0204ABA8
-.extern FUN_0204ABDC
-.extern FUN_0204ACA8
-.extern FUN_0204AD0C
-.extern FUN_0204AD60
-.extern FUN_0204AD8C
-.extern FUN_0204ADBC
-.extern FUN_0204ADE0
-.extern FUN_0204AE04
-.extern FUN_0204AE5C
-.extern FUN_0204AEF8
-.extern FUN_0204AF3C
-.extern FUN_0204AF84
-.extern FUN_0204AFC8
-.extern FUN_0204B00C
-.extern FUN_0204B090
-.extern FUN_0204B0E8
-.extern FUN_0204B0F8
-.extern FUN_0204B2A4
-.extern FUN_0204B2B4
-.extern FUN_0204B2C0
-.extern FUN_0204B2CC
-.extern FUN_0204B2D8
-.extern FUN_0204B2E4
-.extern FUN_0204B2F0
-.extern FUN_0204B30C
-.extern FUN_0204B328
-.extern FUN_0204B33C
-.extern FUN_0204B388
-.extern FUN_0204B3B8
-.extern FUN_0204B3D0
-.extern FUN_0204B490
-.extern FUN_0204B4FC
-.extern FUN_0204B57C
-.extern FUN_0204B5A8
-.extern FUN_0204B5FC
-.extern FUN_0204B61C
-.extern FUN_0204B63C
-.extern FUN_0204B660
-.extern FUN_0204B684
-.extern FUN_0204B6A4
-.extern FUN_0204B6C4
-.extern FUN_0204B9A0
-.extern FUN_0204B9CC
-.extern FUN_0204B9EC
-.extern FUN_0204BA1C
-.extern FUN_0204BA68
-.extern FUN_0204BA90
-.extern FUN_0204BAA0
-.extern FUN_0204BAB0
-.extern FUN_0204BAC4
-.extern FUN_0204BAD4
-.extern FUN_0204BAE4
-.extern FUN_0204BE14
-.extern FUN_0204BE18
-.extern FUN_0204BEB8
-.extern FUN_0204BEC8
-.extern FUN_0204BED0
-.extern FUN_0204BED8
-.extern FUN_0204BF14
-.extern FUN_0204BF1C
-.extern FUN_0204BF44
-.extern FUN_0204BF58
-.extern FUN_0204BF84
-.extern FUN_0204BF88
-.extern FUN_0204BF94
-.extern FUN_0204BF9C
-.extern FUN_0204BFB0
-.extern FUN_0204BFF0
-.extern FUN_0204C02C
-.extern FUN_0204C064
-.extern FUN_0204C080
-.extern FUN_0204C0A4
-.extern FUN_0204C0CC
-.extern FUN_0204C0D4
-.extern FUN_0204C0E8
-.extern FUN_0204C104
-.extern FUN_0204C158
-.extern FUN_0204C174
-.extern FUN_0204C1A8
-.extern FUN_0204C1B4
-.extern FUN_0204C260
-.extern FUN_0204C29C
-.extern FUN_0204CA80
-.extern FUN_0204CA90
-.extern FUN_0204CAA0
-.extern FUN_0204CAB0
-.extern FUN_0204CAC0
-.extern FUN_0204CAD0
-.extern FUN_0204CAE0
-.extern FUN_0204CAF0
-.extern FUN_0204CB00
-.extern FUN_0204CB10
-.extern FUN_0204CB20
-.extern FUN_0204CC48
-.extern FUN_0204CC9C
-.extern FUN_0204CCE0
-.extern FUN_0204CDB4
-.extern FUN_0204CEF8
-.extern FUN_0204CF24
-.extern FUN_0204CF60
-.extern FUN_0204D040
-.extern FUN_0204D118
-.extern FUN_0204D168
-.extern FUN_0204D198
-.extern FUN_0204D320
-.extern FUN_0204D43C
-.extern FUN_0204D610
-.extern FUN_0204D67C
-.extern FUN_0204D6C0
-.extern FUN_0204D76C
-.extern FUN_0204D830
-.extern FUN_0204DB18
-.extern FUN_0204DBCC
-.extern FUN_0204DC34
-.extern FUN_0204DC38
-.extern FUN_0204E178
-.extern FUN_0204E1E8
-.extern FUN_0204E200
-.extern FUN_0204E214
-.extern FUN_0204E254
-.extern FUN_0204E2A8
-.extern FUN_0204E2E0
-.extern FUN_0204E2F0
-.extern FUN_0204E2FC
-.extern FUN_0204E34C
-.extern FUN_0204E35C
-.extern FUN_0204E3A4
-.extern FUN_0204E3EC
-.extern FUN_0204E440
-.extern FUN_0204E494
-.extern FUN_0204E4B4
-.extern FUN_0204E4D4
-.extern FUN_0204E50C
-.extern FUN_0204E544
-.extern FUN_0204E598
-.extern FUN_0204E5EC
-.extern FUN_0204E60C
-.extern FUN_0204E62C
-.extern FUN_0204E664
-.extern FUN_0204E69C
-.extern FUN_0204E6CC
-.extern FUN_0204E6FC
-.extern FUN_0204E758
-.extern FUN_0204E778
-.extern FUN_0204E794
-.extern FUN_0204E7CC
-.extern FUN_0204E850
-.extern FUN_0204E8B0
-.extern FUN_0204E8FC
-.extern FUN_0204E96C
-.extern FUN_0204EAD8
-.extern FUN_0204EB14
-.extern FUN_0204EB44
-.extern FUN_0204EC00
-.extern FUN_0204ECC0
-.extern FUN_0204ED08
-.extern FUN_0204EE9C
-.extern FUN_0204EEBC
-.extern FUN_0204F074
-.extern FUN_0204F08C
-.extern FUN_0204F0A8
-.extern FUN_0204F0C4
-.extern FUN_0204F0C8
-.extern FUN_0204F1B0
-.extern FUN_0204F210
-.extern FUN_0204F2D8
-.extern FUN_0204F610
-.extern FUN_0204F63C
-.extern FUN_0204F660
-.extern FUN_0204F678
-.extern FUN_0204F69C
-.extern FUN_0204F6B4
-.extern FUN_0204F6C8
-.extern FUN_0204F6DC
-.extern FUN_0204F70C
-.extern FUN_0204F72C
-.extern FUN_0204F74C
-.extern FUN_0204F774
-.extern FUN_0204F7D4
-.extern FUN_0204F7E4
-.extern FUN_0204F7FC
-.extern FUN_0204F80C
-.extern FUN_0204F858
-.extern FUN_0204F88C
-.extern FUN_0204F90C
-.extern FUN_0204F930
-.extern FUN_0204F9B8
-.extern FUN_0204F9BC
-.extern FUN_0204FA64
-.extern FUN_0204FA78
-.extern FUN_0204FACC
-.extern FUN_0204FAD0
-.extern FUN_0204FB00
-.extern FUN_0204FB14
-.extern FUN_0204FB28
-.extern FUN_0204FC5C
-.extern FUN_0204FCA0
-.extern FUN_0204FCD8
-.extern FUN_0204FCF4
-.extern FUN_0204FD24
-.extern FUN_0204FD38
-.extern FUN_0204FDE4
-.extern FUN_0204FE5C
-.extern FUN_0204FEB0
-.extern FUN_0204FEF0
-.extern FUN_0204FF30
-.extern FUN_0204FF4C
-.extern FUN_0204FF5C
-.extern FUN_02050024
-.extern FUN_02050048
-.extern FUN_02050A48
-.extern FUN_02050A68
-.extern FUN_02050BE8
-.extern FUN_02050BF8
-.extern FUN_02050DF0
-.extern FUN_02050E10
-.extern FUN_02050E2C
-.extern FUN_02051880
-.extern FUN_02051E30
-.extern FUN_02051E54
-.extern FUN_02051E64
-.extern FUN_02051E80
-.extern FUN_02052044
-.extern FUN_020520AC
-.extern FUN_020520F8
-.extern FUN_020524BC
-.extern FUN_020524C0
-.extern FUN_020524CC
-.extern FUN_02052544
-.extern FUN_02052604
-.extern FUN_02052608
-.extern FUN_02052648
-.extern FUN_0205265C
-.extern FUN_020526B4
-.extern FUN_020526B8
-.extern FUN_020526BC
-.extern FUN_020526D8
-.extern FUN_020526F0
-.extern FUN_0205270C
-.extern FUN_02052714
-.extern FUN_02052718
-.extern FUN_02052734
-.extern FUN_02052788
-.extern FUN_02052798
-.extern FUN_020527A8
-.extern FUN_020527D8
-.extern FUN_0205296C
-.extern FUN_02052A10
-.extern FUN_02052B74
-.extern FUN_02052C0C
-.extern FUN_02052CD8
-.extern FUN_02052CF0
-.extern FUN_02052D08
-.extern FUN_02052DE8
-.extern FUN_02052E10
-.extern FUN_02052E38
-.extern FUN_02052EAC
-.extern FUN_02052ED0
-.extern FUN_02052EE8
-.extern FUN_02052F74
-.extern FUN_02052F8C
-.extern FUN_02052FA4
-.extern FUN_020534DC
-.extern FUN_0205363C
-.extern FUN_02053678
-.extern FUN_020536C8
-.extern FUN_020536D0
-.extern FUN_02053708
-.extern FUN_02053C98
-.extern FUN_02054590
-.extern FUN_020545B8
-.extern FUN_02054608
-.extern FUN_0205464C
-.extern FUN_02054658
-.extern FUN_02054690
-.extern FUN_020546C8
-.extern FUN_020546E0
-.extern FUN_02054744
-.extern FUN_0205478C
-.extern FUN_02054798
-.extern FUN_020547A4
-.extern FUN_020547B0
-.extern FUN_020547BC
-.extern FUN_020547C8
-.extern FUN_020547D4
-.extern FUN_020547E0
-.extern FUN_020547EC
-.extern FUN_020547F8
-.extern FUN_02054804
-.extern FUN_02054810
-.extern FUN_0205481C
-.extern FUN_02054830
-.extern FUN_0205483C
-.extern FUN_02054848
-.extern FUN_02054854
-.extern FUN_02054860
-.extern FUN_0205486C
-.extern FUN_02054878
-.extern FUN_02054884
-.extern FUN_02054890
-.extern FUN_0205489C
-.extern FUN_020548A8
-.extern FUN_020548B4
-.extern FUN_020548C0
-.extern FUN_020548CC
-.extern FUN_020548D8
-.extern FUN_020548E4
-.extern FUN_020548F0
-.extern FUN_020548FC
-.extern FUN_02054908
-.extern FUN_02054914
-.extern FUN_02054920
-.extern FUN_0205492C
-.extern FUN_02054938
-.extern FUN_02054944
-.extern FUN_02054950
-.extern FUN_0205495C
-.extern FUN_02054968
-.extern FUN_02054974
-.extern FUN_02054984
-.extern FUN_02054990
-.extern FUN_020549A0
-.extern FUN_020549AC
-.extern FUN_020549CC
-.extern FUN_020549D8
-.extern FUN_020549E4
-.extern FUN_020549F0
-.extern FUN_020549FC
-.extern FUN_02054A0C
-.extern FUN_02054A18
-.extern FUN_02054A24
-.extern FUN_02054A30
-.extern FUN_02054A3C
-.extern FUN_02054A48
-.extern FUN_02054A54
-.extern FUN_02054A60
-.extern FUN_02054A84
-.extern FUN_02054AA8
-.extern FUN_02054ACC
-.extern FUN_02054AF0
-.extern FUN_02054AFC
-.extern FUN_02054B14
-.extern FUN_02054B20
-.extern FUN_02054B30
-.extern FUN_02054B3C
-.extern FUN_02054B48
-.extern FUN_02054B54
-.extern FUN_02054B60
-.extern FUN_02054B6C
-.extern FUN_02054B78
-.extern FUN_02054B8C
-.extern FUN_02054BB0
-.extern FUN_02054BD4
-.extern FUN_02054BE0
-.extern FUN_02054BF4
-.extern FUN_02054C08
-.extern FUN_02054C14
-.extern FUN_02054CB0
-.extern FUN_02054CC8
-.extern FUN_02054D1C
-.extern FUN_02054DEC
-.extern FUN_02054E30
-.extern FUN_02054F50
-.extern FUN_0205502C
-.extern FUN_02055068
-.extern FUN_020550A4
-.extern FUN_02055108
-.extern FUN_02055160
-.extern FUN_02055168
-.extern FUN_020552A4
-.extern FUN_020552F8
-.extern FUN_02055304
-.extern FUN_02055314
-.extern FUN_02055320
-.extern FUN_0205532C
-.extern FUN_02055338
-.extern FUN_02055344
-.extern FUN_02055350
-.extern FUN_02055360
-.extern FUN_0205536C
-.extern FUN_02055370
-.extern FUN_02055374
-.extern FUN_02055378
-.extern FUN_0205537C
-.extern FUN_020553A0
-.extern FUN_020553A8
-.extern FUN_020553C4
-.extern FUN_020553D4
-.extern FUN_020553DC
-.extern FUN_020553E0
-.extern FUN_020553E8
-.extern FUN_02055408
-.extern FUN_0205540C
-.extern FUN_02055410
-.extern FUN_0205541C
-.extern FUN_02055430
-.extern FUN_02055438
-.extern FUN_0205543C
-.extern FUN_02055450
-.extern FUN_02055454
-.extern FUN_0205545C
-.extern FUN_02055460
-.extern FUN_02055464
-.extern FUN_02055468
-.extern FUN_02055474
-.extern FUN_02055488
-.extern FUN_020554AC
-.extern FUN_020554BC
-.extern FUN_020554EC
-.extern FUN_02055514
-.extern FUN_02055540
-.extern FUN_02055560
-.extern FUN_0205557C
-.extern FUN_020555A0
-.extern FUN_02055648
-.extern FUN_02055698
-.extern FUN_0205569C
-.extern FUN_020556B4
-.extern FUN_020556C8
-.extern FUN_020556E0
-.extern FUN_020556F4
-.extern FUN_0205570C
-.extern FUN_02055720
-.extern FUN_02055738
-.extern FUN_0205574C
-.extern FUN_02055764
-.extern FUN_02055778
-.extern FUN_02055790
-.extern FUN_020557A4
-.extern FUN_020557B0
-.extern FUN_020557BC
-.extern FUN_020557D0
-.extern FUN_020557E8
-.extern FUN_020557F4
-.extern FUN_02055898
-.extern FUN_02055A38
-.extern FUN_02055B14
-.extern FUN_02055B30
-.extern FUN_02055B8C
-.extern FUN_02055C6C
-.extern FUN_02055C78
-.extern FUN_02055DAC
-.extern FUN_02055EF8
-.extern FUN_02055F44
-.extern FUN_02055F90
-.extern FUN_02056B74
-.extern FUN_02057020
-.extern FUN_020570C4
-.extern FUN_02057124
-.extern FUN_0205714C
-.extern FUN_02057194
-.extern FUN_02057254
-.extern FUN_02057260
-.extern FUN_02057278
-.extern FUN_020572B8
-.extern FUN_02057380
-.extern FUN_020573AC
-.extern FUN_020573C8
-.extern FUN_0205753C
-.extern FUN_020575D4
-.extern FUN_02057614
-.extern FUN_02057634
-.extern FUN_02057654
-.extern FUN_02057688
-.extern FUN_020576A8
-.extern FUN_0205771C
-.extern FUN_02057750
-.extern FUN_020577A8
-.extern FUN_02057800
-.extern FUN_0205785C
-.extern FUN_02057BAC
-.extern FUN_02058060
-.extern FUN_020580B4
-.extern FUN_020580F4
-.extern FUN_0205829C
-.extern FUN_020582A8
-.extern FUN_020582F8
-.extern FUN_02058368
-.extern FUN_0205837C
-.extern FUN_02058384
-.extern FUN_02058390
-.extern FUN_0205839C
-.extern FUN_020583A0
-.extern FUN_020583A4
-.extern FUN_020583AC
-.extern FUN_020583BC
-.extern FUN_020583D4
-.extern FUN_020583F0
-.extern FUN_020583F4
-.extern FUN_02058410
-.extern FUN_02058418
-.extern FUN_02058424
-.extern FUN_0205842C
-.extern FUN_02058444
-.extern FUN_02058448
-.extern FUN_02058450
-.extern FUN_02058454
-.extern FUN_02058458
-.extern FUN_0205845C
-.extern FUN_02058480
-.extern FUN_02058484
-.extern FUN_02058488
-.extern FUN_0205848C
-.extern FUN_02058494
-.extern FUN_02058498
-.extern FUN_020584A0
-.extern FUN_020584A4
-.extern FUN_020584AC
-.extern FUN_020584C4
-.extern FUN_020584C8
-.extern FUN_020584CC
-.extern FUN_020584D4
-.extern FUN_020584D8
-.extern FUN_020584EC
-.extern FUN_02058510
-.extern FUN_02058534
-.extern FUN_02058538
-.extern FUN_0205853C
-.extern FUN_02058540
-.extern FUN_02058544
-.extern FUN_0205854C
-.extern FUN_02058578
-.extern FUN_0205858C
-.extern FUN_020585B0
-.extern FUN_020585B4
-.extern FUN_020585D8
-.extern FUN_020585DC
-.extern FUN_02058600
-.extern FUN_02058604
-.extern FUN_02058628
-.extern FUN_02058638
-.extern FUN_0205864C
-.extern FUN_020586A0
-.extern FUN_020586DC
-.extern FUN_020586E8
-.extern FUN_020586F0
-.extern FUN_020586F8
-.extern FUN_02058700
-.extern FUN_02058710
-.extern FUN_02058718
-.extern FUN_02058720
-.extern FUN_02058728
-.extern FUN_02058730
-.extern FUN_02058738
-.extern FUN_02058744
-.extern FUN_02058750
-.extern FUN_02058768
-.extern FUN_02058774
-.extern FUN_02058780
-.extern FUN_020587B0
-.extern FUN_020587E0
-.extern FUN_020587F4
-.extern FUN_02058804
-.extern FUN_0205881C
-.extern FUN_02058830
-.extern FUN_0205883C
-.extern FUN_02058848
-.extern FUN_02058854
-.extern FUN_02058860
-.extern FUN_0205886C
-.extern FUN_02058884
-.extern FUN_02058890
-.extern FUN_0205889C
-.extern FUN_020588B8
-.extern FUN_020588D4
-.extern FUN_020588EC
-.extern FUN_02058908
-.extern FUN_02058914
-.extern FUN_02058920
-.extern FUN_02058934
-.extern FUN_02058960
-.extern FUN_0205897C
-.extern FUN_02058994
-.extern FUN_020589CC
-.extern FUN_020589E4
-.extern FUN_02058A00
-.extern FUN_02058A18
-.extern FUN_02058A34
-.extern FUN_02058A4C
-.extern FUN_02058A68
-.extern FUN_02058A80
-.extern FUN_02058A9C
-.extern FUN_02058AB4
-.extern FUN_02058AC8
-.extern FUN_02058AE4
-.extern FUN_02058AFC
-.extern FUN_02058B04
-.extern FUN_02058B0C
-.extern FUN_02058B14
-.extern FUN_02058B18
-.extern FUN_02058B1C
-.extern FUN_02058B20
-.extern FUN_02058B24
-.extern FUN_02058B28
-.extern FUN_02058B2C
-.extern FUN_02058B30
-.extern FUN_02058B34
-.extern FUN_02058B3C
-.extern FUN_02058B40
-.extern FUN_02058B44
-.extern FUN_02058B4C
-.extern FUN_02058B50
-.extern FUN_02058B54
-.extern FUN_02058B5C
-.extern FUN_02058B6C
-.extern FUN_02058B7C
-.extern FUN_02058B80
-.extern FUN_02058B84
-.extern FUN_02058B94
-.extern FUN_02058BA4
-.extern FUN_02058BB4
-.extern FUN_02058BC4
-.extern FUN_02058BD4
-.extern FUN_02058BE4
-.extern FUN_02058D74
-.extern FUN_02058DBC
-.extern FUN_02058E28
-.extern FUN_02058E90
-.extern FUN_02058EB0
-.extern FUN_02058EC8
-.extern FUN_02058ECC
-.extern FUN_02058ED0
-.extern FUN_02058ED4
-.extern FUN_02058EE8
-.extern FUN_02058EF8
-.extern FUN_020598F0
-.extern FUN_02059918
-.extern FUN_0205995C
-.extern FUN_02059A08
-.extern FUN_02059A60
-.extern FUN_02059AC4
-.extern FUN_02059B2C
-.extern FUN_02059B94
-.extern FUN_02059BB4
-.extern FUN_02059BD4
-.extern FUN_02059BF4
-.extern FUN_02059C00
-.extern FUN_02059C0C
-.extern FUN_02059C60
-.extern FUN_02059C90
-.extern FUN_02059CC8
-.extern FUN_02059D1C
-.extern FUN_02059E28
-.extern FUN_02059E60
-.extern FUN_02059E74
-.extern FUN_02059E80
-.extern FUN_02059E9C
-.extern FUN_02059EC8
-.extern FUN_02059F34
-.extern FUN_02059F40
-.extern FUN_02059F4C
-.extern FUN_02059F58
-.extern FUN_02059F64
-.extern FUN_02059F70
-.extern FUN_02059F7C
-.extern FUN_02059F88
-.extern FUN_02059F94
-.extern FUN_02059FA0
-.extern FUN_02059FAC
-.extern FUN_02059FB8
-.extern FUN_0205A01C
-.extern FUN_0205A020
-.extern FUN_0205A030
-.extern FUN_0205A040
-.extern FUN_0205A078
-.extern FUN_0205A2EC
-.extern FUN_0205A310
-.extern FUN_0205A31C
-.extern FUN_0205A328
-.extern FUN_0205A334
-.extern FUN_0205A364
-.extern FUN_0205A370
-.extern FUN_0205A37C
-.extern FUN_0205A3A0
-.extern FUN_0205A3D4
-.extern FUN_0205A3F0
-.extern FUN_0205A42C
-.extern FUN_0205A4C4
-.extern FUN_0205A4D0
-.extern FUN_0205A4F4
-.extern FUN_0205A514
-.extern FUN_0205A530
-.extern FUN_0205A548
-.extern FUN_0205A5FC
-.extern FUN_0205A61C
-.extern FUN_0205A640
-.extern FUN_0205A67C
-.extern FUN_0205A73C
-.extern FUN_0205A79C
-.extern FUN_0205A7AC
-.extern FUN_0205A7BC
-.extern FUN_0205A7CC
-.extern FUN_0205A7DC
-.extern FUN_0205A7EC
-.extern FUN_0205A7FC
-.extern FUN_0205A80C
-.extern FUN_0205A81C
-.extern FUN_0205A82C
-.extern FUN_0205A83C
-.extern FUN_0205A84C
-.extern FUN_0205A85C
-.extern FUN_0205A86C
-.extern FUN_0205A87C
-.extern FUN_0205A88C
-.extern FUN_0205A89C
-.extern FUN_0205A8AC
-.extern FUN_0205A8BC
-.extern FUN_0205A8CC
-.extern FUN_0205A8DC
-.extern FUN_0205A8EC
-.extern FUN_0205A8FC
-.extern FUN_0205A90C
-.extern FUN_0205A91C
-.extern FUN_0205A940
-.extern FUN_0205AA60
-.extern FUN_0205AD98
-.extern FUN_0205ADDC
-.extern FUN_0205AE0C
-.extern FUN_0205AE28
-.extern FUN_0205AE50
-.extern FUN_0205AE80
-.extern FUN_0205AEA4
-.extern FUN_0205AEF0
-.extern FUN_0205AEFC
-.extern FUN_0205AF48
-.extern FUN_0205AF54
-.extern FUN_0205AF70
-.extern FUN_0205AF88
-.extern FUN_0205AFA4
-.extern FUN_0205AFD8
-.extern FUN_0205AFDC
-.extern FUN_0205B020
-.extern FUN_0205B058
-.extern FUN_0205B080
-.extern FUN_0205B0C8
-.extern FUN_0205B0F4
-.extern FUN_0205B100
-.extern FUN_0205B10C
-.extern FUN_0205B118
-.extern FUN_0205B16C
-.extern FUN_0205B1C0
-.extern FUN_0205B1D4
-.extern FUN_0205B1E8
-.extern FUN_0205B1FC
-.extern FUN_0205B210
-.extern FUN_0205B224
-.extern FUN_0205B238
-.extern FUN_0205B24C
-.extern FUN_0205B260
-.extern FUN_0205B278
-.extern FUN_0205B28C
-.extern FUN_0205B2A0
-.extern FUN_0205B2B4
-.extern FUN_0205B2C8
-.extern FUN_0205B2DC
-.extern FUN_0205B2F0
-.extern FUN_0205B304
-.extern FUN_0205B31C
-.extern FUN_0205B330
-.extern FUN_0205B344
-.extern FUN_0205B35C
-.extern FUN_0205B370
-.extern FUN_0205B384
-.extern FUN_0205B398
-.extern FUN_0205B3B0
-.extern FUN_0205B3C8
-.extern FUN_0205B3DC
-.extern FUN_0205B3F0
-.extern FUN_0205B43C
-.extern FUN_0205B470
-.extern FUN_0205B480
-.extern FUN_0205B490
-.extern FUN_0205B4A0
-.extern FUN_0205B4B0
-.extern FUN_0205B4C0
-.extern FUN_0205B4D0
-.extern FUN_0205B4E0
-.extern FUN_0205B4F0
-.extern FUN_0205B500
-.extern FUN_0205B510
-.extern FUN_0205B520
-.extern FUN_0205B530
-.extern FUN_0205B540
-.extern FUN_0205B550
-.extern FUN_0205B560
-.extern FUN_0205B570
-.extern FUN_0205B580
-.extern FUN_0205B590
-.extern FUN_0205B5A0
-.extern FUN_0205B61C
-.extern FUN_0205B704
-.extern FUN_0205B724
-.extern FUN_0205B744
-.extern FUN_0205B764
-.extern FUN_0205B784
-.extern FUN_0205B7A4
-.extern FUN_0205B7C4
-.extern FUN_0205B7E4
-.extern FUN_0205B804
-.extern FUN_0205B824
-.extern FUN_0205B848
-.extern FUN_0205B86C
-.extern FUN_0205B88C
-.extern FUN_0205B8AC
-.extern FUN_0205B8CC
-.extern FUN_0205B8EC
-.extern FUN_0205B910
-.extern FUN_0205B930
-.extern FUN_0205B954
-.extern FUN_0205B978
-.extern FUN_0205B9B4
-.extern FUN_0205B9D4
-.extern FUN_0205B9E0
-.extern FUN_0205B9EC
-.extern FUN_0205B9F8
-.extern FUN_0205BA04
-.extern FUN_0205BA10
-.extern FUN_0205BA1C
-.extern FUN_0205BA28
-.extern FUN_0205BA4C
-.extern FUN_0205BA94
-.extern FUN_0205BAC0
-.extern FUN_0205BB08
-.extern FUN_0205BB20
-.extern FUN_0205BB38
-.extern FUN_0205BB4C
-.extern FUN_0205BB60
-.extern FUN_0205BB78
-.extern FUN_0205BBB4
-.extern FUN_0205BBDC
-.extern FUN_0205BBE8
-.extern FUN_0205BC94
-.extern FUN_0205BCA4
-.extern FUN_0205BCB4
-.extern FUN_0205BCC4
-.extern FUN_0205BCD4
-.extern FUN_0205BCEC
-.extern FUN_0205BCFC
-.extern FUN_0205BD0C
-.extern FUN_0205BD1C
-.extern FUN_0205BD2C
-.extern FUN_0205BD44
-.extern FUN_0205BD54
-.extern FUN_0205BD64
-.extern FUN_0205BD74
-.extern FUN_0205BD84
-.extern FUN_0205BD9C
-.extern FUN_0205BDB8
-.extern FUN_0205BDE4
-.extern FUN_0205BE38
-.extern FUN_0205BEA0
-.extern FUN_0205BEBC
-.extern FUN_0205BED8
-.extern FUN_0205BEF8
-.extern FUN_0205BF00
-.extern FUN_0205BFE0
-.extern FUN_0205BFE4
-.extern FUN_0205BFE8
-.extern FUN_0205BFEC
-.extern FUN_0205C004
-.extern FUN_0205C080
-.extern FUN_0205C16C
-.extern FUN_0205C198
-.extern FUN_0205C214
-.extern FUN_0205C334
-.extern FUN_0205C340
-.extern FUN_0205C374
-.extern FUN_0205C380
-.extern FUN_0205C390
-.extern FUN_0205C3AC
-.extern FUN_0205C3B0
-.extern FUN_0205C3D0
-.extern FUN_0205C490
-.extern FUN_0205C4A8
-.extern FUN_0205C4D8
-.extern FUN_0205C598
-.extern FUN_0205C888
-.extern FUN_0205C8B4
-.extern FUN_0205C8E0
-.extern FUN_0205C90C
-.extern FUN_0205C9E8
-.extern FUN_0205CA4C
-.extern FUN_0205CA64
-.extern FUN_0205CA78
-.extern FUN_0205CB14
-.extern FUN_0205CB30
-.extern FUN_0205CB5C
-.extern FUN_0205CBA4
-.extern FUN_0205CBDC
-.extern FUN_0205CBF8
-.extern FUN_0205CC10
-.extern FUN_0205CC2C
-.extern FUN_0205CC40
-.extern FUN_0205CC58
-.extern FUN_0205CC70
-.extern FUN_0205CC88
-.extern FUN_0205CCB0
-.extern FUN_0205CCD0
-.extern FUN_0205CCEC
-.extern FUN_0205CD68
-.extern FUN_0205CD90
-.extern FUN_0205CDAC
-.extern FUN_0205CDB4
-.extern FUN_0205CDD8
-.extern FUN_0205CE00
-.extern FUN_0205CE48
-.extern FUN_0205CE80
-.extern FUN_0205D024
-.extern FUN_0205D0BC
-.extern FUN_0205D0EC
-.extern FUN_0205D104
-.extern FUN_0205D144
-.extern FUN_0205D170
-.extern FUN_0205D21C
-.extern FUN_0205D250
-.extern FUN_0205D328
-.extern FUN_0205D3B8
-.extern FUN_0205D3E4
-.extern FUN_0205D400
-.extern FUN_0205D498
-.extern FUN_0205D4E4
-.extern FUN_0205D4E8
-.extern FUN_0205D51C
-.extern FUN_0205D528
-.extern FUN_0205D558
-.extern FUN_0205D574
-.extern FUN_0205D5A8
-.extern FUN_0205D5C4
-.extern FUN_0205D604
-.extern FUN_0205D628
-.extern FUN_0205D660
-.extern FUN_0205D670
-.extern FUN_0205D680
-.extern FUN_0205D69C
-.extern FUN_0205D6AC
-.extern FUN_0205D6BC
-.extern FUN_0205D714
-.extern FUN_0205D724
-.extern FUN_0205D734
-.extern FUN_0205D74C
-.extern FUN_0205D788
-.extern FUN_0205D7A8
-.extern FUN_0205D7E4
-.extern FUN_0205D804
-.extern FUN_0205D840
-.extern FUN_0205D860
-.extern FUN_0205D8B8
-.extern FUN_0205D9A8
-.extern FUN_0205DA3C
-.extern FUN_0205DA80
-.extern FUN_0205DACC
-.extern FUN_0205DADC
-.extern FUN_0205DAEC
-.extern FUN_0205DB44
-.extern FUN_0205DD18
-.extern FUN_0205DD38
-.extern FUN_0205DD40
-.extern FUN_0205DD80
-.extern FUN_0205DED4
-.extern FUN_0205DF44
-.extern FUN_0205DF9C
-.extern FUN_0205DFE8
-.extern FUN_0205E080
-.extern FUN_0205E098
-.extern FUN_0205E0A4
-.extern FUN_0205E0A8
-.extern FUN_0205E128
-.extern FUN_0205E30C
-.extern FUN_0205E480
-.extern FUN_0205E49C
-.extern FUN_0205E4A4
-.extern FUN_0205E4EC
-.extern FUN_0205E518
-.extern FUN_0205E550
-.extern FUN_0205E554
-.extern FUN_0205E598
-.extern FUN_0205E700
-.extern FUN_0205E728
-.extern FUN_0205E758
-.extern FUN_0205E75C
-.extern FUN_0205E768
-.extern FUN_0205E7A4
-.extern FUN_0205E7C4
-.extern FUN_0205EA10
-.extern FUN_0205EA1C
-.extern FUN_0205EA28
-.extern FUN_0205EA34
-.extern FUN_0205EA40
-.extern FUN_0205EA64
-.extern FUN_0205EA74
-.extern FUN_0205EAB0
-.extern FUN_0205EAE0
-.extern FUN_0205EB14
-.extern FUN_0205EB20
-.extern FUN_0205EB2C
-.extern FUN_0205EB38
-.extern FUN_0205EBEC
-.extern FUN_0205EC18
-.extern FUN_0205EC48
-.extern FUN_0205EC6C
-.extern FUN_0205ECD4
-.extern FUN_0205ECE0
-.extern FUN_0205ECEC
-.extern FUN_0205ECFC
-.extern FUN_0205ED0C
-.extern FUN_0205ED1C
-.extern FUN_0205ED2C
-.extern FUN_0205ED3C
-.extern FUN_0205ED4C
-.extern FUN_0205ED5C
-.extern FUN_0205ED6C
-.extern FUN_0205ED7C
-.extern FUN_0205ED8C
-.extern FUN_0205ED9C
-.extern FUN_0205EDAC
-.extern FUN_0205EDBC
-.extern FUN_0205EDCC
-.extern FUN_0205EDD8
-.extern FUN_0205EDE8
-.extern FUN_0205EDF8
-.extern FUN_0205EE08
-.extern FUN_0205EE60
-.extern FUN_0205EEB8
-.extern FUN_0205EF20
-.extern FUN_0205F154
-.extern FUN_0205F164
-.extern FUN_0205F174
-.extern FUN_0205F184
-.extern FUN_0205F194
-.extern FUN_0205F1A4
-.extern FUN_0205F1B4
-.extern FUN_0205F1C4
-.extern FUN_0205F1D4
-.extern FUN_0205F1E4
-.extern FUN_0205F1F4
-.extern FUN_0205F204
-.extern FUN_0205F214
-.extern FUN_0205F224
-.extern FUN_0205F234
-.extern FUN_0205F244
-.extern FUN_0205F254
-.extern FUN_0205F264
-.extern FUN_0205F274
-.extern FUN_0205F284
-.extern FUN_0205F294
-.extern FUN_0205F2A4
-.extern FUN_0205F2B4
-.extern FUN_0205F2C4
-.extern FUN_0205F2D4
-.extern FUN_0205F2E4
-.extern FUN_0205F304
-.extern FUN_0205F358
-.extern FUN_0205F368
-.extern FUN_0205F378
-.extern FUN_0205F388
-.extern FUN_0205F398
-.extern FUN_0205F3C0
-.extern FUN_0205F3E8
-.extern FUN_0205F3F8
-.extern FUN_0205F408
-.extern FUN_0205F41C
-.extern FUN_0205F42C
-.extern FUN_0205F43C
-.extern FUN_0205F44C
-.extern FUN_0205F478
-.extern FUN_0205F4A0
-.extern FUN_0205F4E4
-.extern FUN_0205F50C
-.extern FUN_0205F524
-.extern FUN_0205F54C
-.extern FUN_0205F55C
-.extern FUN_0205F56C
-.extern FUN_0205F594
-.extern FUN_0205F5A4
-.extern FUN_0205F5D8
-.extern FUN_0205F5FC
-.extern FUN_0205F618
-.extern FUN_0205F648
-.extern FUN_0205F668
-.extern FUN_0205F688
-.extern FUN_0205F698
-.extern FUN_0205F6A8
-.extern FUN_0205F6B8
-.extern FUN_0205F6C8
-.extern FUN_0205F6D8
-.extern FUN_0205F6E8
-.extern FUN_0205F710
-.extern FUN_0205F720
-.extern FUN_0205F730
-.extern FUN_0205F740
-.extern FUN_0205F750
-.extern FUN_0205F760
-.extern FUN_0205F770
-.extern FUN_0205F780
-.extern FUN_0205F790
-.extern FUN_0205F7A0
-.extern FUN_0205FC50
-.extern FUN_0205FD38
-.extern FUN_0205FDDC
-.extern FUN_0205FE10
-.extern FUN_0205FF5C
-.extern FUN_02060044
-.extern FUN_02060064
-.extern FUN_0206007C
-.extern FUN_020600A0
-.extern FUN_020600DC
-.extern FUN_02060144
-.extern FUN_0206015C
-.extern FUN_02060344
-.extern FUN_020603B0
-.extern FUN_020603C8
-.extern FUN_020603F0
-.extern FUN_0206043C
-.extern FUN_02060478
-.extern FUN_02060490
-.extern FUN_02060790
-.extern FUN_020607D4
-.extern FUN_02060D1C
-.extern FUN_02060D48
-.extern FUN_02060F10
-.extern FUN_02060F3C
-.extern FUN_02060F88
-.extern FUN_02060F9C
-.extern FUN_02060FAC
-.extern FUN_02060FBC
-.extern FUN_02060FD0
-.extern FUN_02060FE0
-.extern FUN_02061008
-.extern FUN_02061020
-.extern FUN_02061028
-.extern FUN_02061080
-.extern FUN_02061208
-.extern FUN_020612EC
-.extern FUN_020612F8
-.extern FUN_02061374
-.extern FUN_020613CC
-.extern FUN_02061460
-.extern FUN_0206151C
-.extern FUN_02061574
-.extern FUN_02061618
-.extern FUN_020616A4
-.extern FUN_02061798
-.extern FUN_0206189C
-.extern FUN_020618B8
-.extern FUN_02061904
-.extern FUN_020619C0
-.extern FUN_02061A8C
-.extern FUN_02061B0C
-.extern FUN_02061B64
-.extern FUN_02063650
-.extern FUN_0206367C
-.extern FUN_02063684
-.extern FUN_020636DC
-.extern FUN_020637A8
-.extern FUN_020637C4
-.extern FUN_020637E0
-.extern FUN_020637F0
-.extern FUN_02063808
-.extern FUN_02063888
-.extern FUN_020638BC
-.extern FUN_02063948
-.extern FUN_02063964
-.extern FUN_0206439C
-.extern FUN_020643C0
-.extern FUN_020643F0
-.extern FUN_020644E4
-.extern FUN_02064520
-.extern FUN_02064584
-.extern FUN_020646A0
-.extern FUN_020646DC
-.extern FUN_02064738
-.extern FUN_02064754
-.extern FUN_0206475C
-.extern FUN_0206476C
-.extern FUN_0206477C
-.extern FUN_020647A4
-.extern FUN_0206486C
-.extern FUN_020649B0
-.extern FUN_020649D4
-.extern FUN_02064CA8
-.extern FUN_02064CC8
-.extern FUN_02064D10
-.extern FUN_02064D4C
-.extern FUN_02064D88
-.extern FUN_02064E20
-.extern FUN_02064E4C
-.extern FUN_02064E60
-.extern FUN_02064E90
-.extern FUN_02065054
-.extern FUN_02065070
-.extern FUN_02065078
-.extern FUN_02065314
-.extern FUN_02065344
-.extern FUN_02066818
-.extern FUN_02066840
-.extern ZeroMonData
-.extern WipeBoxMonDataAndEncrypt
-.extern SizeOfStructPokemon
-.extern AllocMonZeroed
-.extern TryDecryptMon
-.extern TryEncryptMon
-.extern TryDecryptBoxMon
-.extern TryEncryptBoxMon
-.extern CreateMon
-.extern CreateMonWithNature
-.extern CreateMonWithNatureGenderLetter
-.extern FUN_02066E74
-.extern FUN_02066EA4
-.extern UpdateMonLevelAndRecalcStats
-.extern CalcMonStatsMaybeEncrypted
-.extern GetMonDataEncrypted
-.extern GetBoxMonDataEncrypted
-.extern SetMonDataEncrypted
-.extern SetBoxMonDataEncrypted
-.extern AddMonPartyStatEncrypted
-.extern AllocAndLoadMonPersonal
-.extern GetPersonalAttr
-.extern FreeMonPersonal
-.extern GetMonBaseStat_HandleFormeConversion
-.extern GetMonBaseStat
-.extern FUN_02068698
-.extern CalcMonExpToNextLevelEncrypted
-.extern FUN_02068734
-.extern GetMonExpByLevel
-.extern CalcMonLevelEncrypted
-.extern CalcBoxMonLevelEncrypted
-.extern CalcLevelBySpeciesAndExp
-.extern CalcLevelBySpeciesAndExp_PreloadedPersonal
-.extern GetMonNatureEncrypted
-.extern GetBoxMonNatureEncrypted
-.extern GetNatureFromPersonality
-.extern MonApplyFriendshipModEncrypted
-.extern GetMonGenderEncrypted
-.extern GetBoxMonGenderEncrypted
-.extern GetGenderBySpeciesAndPersonality
-.extern GetGenderBySpeciesAndPersonality_PreloadedPersonal
-.extern FUN_02068A80
-.extern FUN_02068AAC
-.extern FUN_02068AD8
-.extern FUN_02068B68
-.extern FUN_02068B70
-.extern FUN_02068C00
-.extern FUN_02068E14
-.extern FUN_02068E1C
-.extern FUN_02068E88
-.extern FUN_02068FE0
-.extern FUN_02069010
-.extern FUN_02069038
-.extern FUN_020690AC
-.extern FUN_020690C4
-.extern FUN_020690C8
-.extern FUN_020690CC
-.extern FUN_020690D4
-.extern FUN_020690E4
-.extern FUN_020690E8
-.extern FUN_02069168
-.extern ReadFromPersonalPmsNarc
-.extern GetEggSpecies
-.extern FUN_02069698
-.extern FUN_02069708
-.extern FUN_020697CC
-.extern FUN_02069818
-.extern FUN_020698E0
-.extern FUN_020698E8
-.extern FUN_020699A4
-.extern FUN_02069A64
-.extern FUN_02069AEC
-.extern FUN_02069B40
-.extern FUN_02069B60
-.extern FUN_02069B88
-.extern FUN_02069BA0
-.extern FUN_02069BB4
-.extern FUN_02069BC8
-.extern FUN_02069BE4
-.extern FUN_02069BFC
-.extern FUN_02069C4C
-.extern FUN_02069CF4
-.extern FUN_02069D50
-.extern FUN_02069DC8
-.extern FUN_02069E74
-.extern FUN_02069E94
-.extern FUN_02069EC4
-.extern FUN_02069ECC
-.extern GetArceusTypeByPlate
-.extern LoadWotbl_HandleAlternateForme
-.extern FUN_02069FB0
-.extern FUN_0206A014
-.extern FUN_0206A094
-.extern FUN_0206A13C
-.extern FUN_0206A16C
-.extern FUN_0206A1C4
-.extern FUN_0206A23C
-.extern MaskOfFlagNo
-.extern LowestFlagNo
-.extern IsPokemonLegendaryOrMythical
-.extern GetLegendaryMon
-.extern FUN_0206A998
-.extern FUN_0206A9AC
-.extern FUN_0206AA30
-.extern FUN_0206AA84
-.extern FUN_0206AAB4
-.extern FUN_0206AB04
-.extern FUN_0206AB18
-.extern FUN_0206AB30
-.extern FUN_0206AB58
-.extern FUN_0206ABC4
-.extern FUN_0206AC74
-.extern FUN_0206ACD4
-.extern FUN_0206AD4C
-.extern FUN_0206ADE0
-.extern FUN_0206ADF0
-.extern FUN_0206AE00
-.extern FUN_0206B16C
-.extern FUN_0206B178
-.extern FUN_0206B20C
-.extern FUN_0206B244
-.extern FUN_0206B2B0
-.extern FUN_0206B2FC
-.extern FUN_0206B330
-.extern FUN_0206B334
-.extern FUN_0206B384
-.extern FUN_0206B3E4
-.extern FUN_0206B428
-.extern FUN_0206B43C
-.extern FUN_0206B458
-.extern FUN_0206B484
-.extern FUN_0206B4B4
-.extern FUN_0206B4E4
-.extern FUN_0206B57C
-.extern FUN_0206B598
-.extern FUN_0206B5E4
-.extern FUN_0206B620
-.extern FUN_0206B644
-.extern FUN_0206B668
-.extern FUN_0206B688
-.extern FUN_0206B6C8
-.extern FUN_0206B6D4
-.extern FUN_0206B754
-.extern FUN_0206B7BC
-.extern FUN_0206B87C
-.extern FUN_0206B888
-.extern FUN_0206B88C
-.extern FUN_0206B890
-.extern FUN_0206B894
-.extern FUN_0206B898
-.extern FUN_0206B89C
-.extern FUN_0206B8A0
-.extern FUN_0206B8A4
-.extern FUN_0206B8AC
-.extern FUN_0206B8C0
-.extern FUN_0206B8CC
-.extern FUN_0206B900
-.extern FUN_0206B938
-.extern FUN_0206B9AC
-.extern FUN_0206B9B0
-.extern FUN_0206B9DC
-.extern FUN_0206BA38
-.extern FUN_0206BAD0
-.extern FUN_0206BAE4
-.extern FUN_0206BB1C
-.extern FUN_0206BB28
-.extern FUN_0206BB34
-.extern FUN_0206BB48
-.extern FUN_0206BB5C
-.extern FUN_0206BB74
-.extern FUN_0206BB84
-.extern FUN_0206BC60
-.extern FUN_0206BE48
-.extern FUN_0206BF90
-.extern FUN_0206BFF0
-.extern FUN_0206C004
-.extern FUN_0206C008
-.extern FUN_0206C010
-.extern FUN_0206C018
-.extern FUN_0206C020
-.extern FUN_0206C024
-.extern FUN_0206C044
-.extern FUN_0206C064
-.extern FUN_0206C080
-.extern FUN_0206C0A0
-.extern FUN_0206C0A8
-.extern FUN_0206C0B0
-.extern FUN_0206C0B8
-.extern FUN_0206C0C0
-.extern FUN_0206C0C8
-.extern FUN_0206C154
-.extern FUN_0206C1A0
-.extern FUN_0206C1E0
-.extern FUN_0206C1FC
-.extern FUN_0206C224
-.extern FUN_0206C258
-.extern FUN_0206C268
-.extern FUN_0206C294
-.extern FUN_0206C2C4
-.extern FUN_0206C2D4
-.extern FUN_0206C2F8
-.extern FUN_0206C32C
-.extern FUN_0206C33C
-.extern FUN_0206C364
-.extern FUN_0206C398
-.extern FUN_0206C3F4
-.extern FUN_0206C428
-.extern FUN_0206C438
-.extern FUN_0206C46C
-.extern FUN_0206C4B4
-.extern FUN_0206C4C4
-.extern FUN_0206C4F0
-.extern FUN_0206C540
-.extern FUN_0206C64C
-.extern FUN_0206C6CC
-.extern FUN_0206C6FC
-.extern FUN_0206C700
-.extern FUN_0206C91C
-.extern FUN_0206C92C
-.extern FUN_0206DE24
-.extern FUN_0206DE4C
-.extern FUN_0206DE78
-.extern FUN_0206DF18
-.extern FUN_0206DF58
-.extern FUN_0206E07C
-.extern FUN_0206E0AC
-.extern FUN_0206E0C8
-.extern FUN_0206E0DC
-.extern FUN_0206E0F0
-.extern FUN_0206E108
-.extern FUN_0206E10C
-.extern FUN_0206E114
-.extern FUN_0206E12C
-.extern FUN_0206E130
-.extern FUN_0206E164
-.extern FUN_0206E198
-.extern FUN_0206E1D4
-.extern FUN_0206E21C
-.extern FUN_0206E224
-.extern FUN_0206E22C
-.extern FUN_0206E240
-.extern FUN_0206E270
-.extern FUN_0206E278
-.extern FUN_0206E290
-.extern FUN_0206E2A8
-.extern FUN_0206E2AC
-.extern FUN_0206E2E0
-.extern FUN_0206E2E8
-.extern FUN_0206E2F0
-.extern FUN_0206E308
-.extern FUN_0206E314
-.extern FUN_0206E330
-.extern FUN_0206E340
-.extern FUN_0206E354
-.extern FUN_0206E358
-.extern FUN_0206E360
-.extern FUN_0206E37C
-.extern FUN_0206E384
-.extern FUN_0206E38C
-.extern FUN_0206E394
-.extern FUN_0206E3F8
-.extern FUN_0206E51C
-.extern FUN_0206E5B4
-.extern FUN_0206E640
-.extern FUN_0206E6D8
-.extern FUN_0206E708
-.extern FUN_0206E70C
-.extern FUN_0206E710
-.extern FUN_0206E768
-.extern FUN_0206E790
-.extern FUN_0206E7B8
-.extern FUN_0206E7DC
-.extern FUN_0206EA30
-.extern FUN_0206EA54
-.extern FUN_0206EA7C
-.extern FUN_0206EA98
-.extern FUN_0206EAB8
-.extern FUN_0206EAD8
-.extern FUN_0206EAEC
-.extern FUN_0206EB0C
-.extern FUN_0206EB1C
-.extern FUN_0206EB34
-.extern FUN_0206EB50
-.extern FUN_0206EB78
-.extern FUN_0206EB80
-.extern FUN_0206EB88
-.extern FUN_0206EBA0
-.extern FUN_0206EBB4
-.extern FUN_0206EBC4
-.extern FUN_0206EBCC
-.extern FUN_0206ED24
-.extern FUN_0206ED38
-.extern FUN_0206EDD4
-.extern FUN_0206EE20
-.extern FUN_0206EE50
-.extern FUN_0206EE64
-.extern FUN_0206EEF8
-.extern FUN_0206EF10
-.extern FUN_0206EFEC
-.extern FUN_0206F0D8
-.extern FUN_0206F158
-.extern FUN_0206F164
-.extern FUN_0206F17C
-.extern FUN_0206F18C
-.extern FUN_0206F190
-.extern FUN_0206F19C
-.extern FUN_0206F1A0
-.extern FUN_0206F1AC
-.extern FUN_0206F1B0
-.extern FUN_0206F1B4
-.extern FUN_0206F1B8
-.extern FUN_0206F1C0
-.extern FUN_0206F1E4
-.extern FUN_0206F1EC
-.extern FUN_0206F3B8
-.extern FUN_0206F3D8
-.extern FUN_0207008C
-.extern FUN_020703BC
-.extern FUN_020709FC
-.extern FUN_02070E60
-.extern FUN_02071340
-.extern FUN_020714BC
-.extern FUN_020724C4
-.extern FUN_020724C8
-.extern FUN_020724CC
-.extern FUN_020724D0
-.extern FUN_020724D4
-.extern FUN_02072590
-.extern FUN_020726F0
-.extern FUN_02072720
-.extern FUN_020727FC
-.extern FUN_02072844
-.extern FUN_0207295C
-.extern FUN_02072A00
-.extern FUN_02072B20
-.extern FUN_02072B7C
-.extern FUN_02072BBC
-.extern FUN_02072C28
-.extern FUN_02072D1C
-.extern FUN_02072DDC
-.extern FUN_02072E14
-.extern FUN_02072E4C
-.extern FUN_02072EE4
-.extern FUN_02072F78
-.extern FUN_02072FDC
-.extern FUN_02073024
-.extern FUN_02073094
-.extern FUN_020731C0
-.extern FUN_020731D4
-.extern FUN_020731E8
-.extern FUN_0207322C
-.extern FUN_020732CC
-.extern FUN_020734C0
-.extern FUN_0207363C
-.extern FUN_020736F4
-.extern FUN_02073710
-.extern FUN_020737D0
-.extern FUN_0207388C
-.extern FUN_020739E4
-.extern FUN_02073A2C
-.extern FUN_02073A4C
-.extern FUN_02073A78
-.extern FUN_02073AB8
-.extern FUN_02073AD8
-.extern FUN_02073B0C
-.extern FUN_02073B3C
-.extern FUN_02073BEC
-.extern FUN_02073CB4
-.extern FUN_02073D1C
-.extern FUN_02073D6C
-.extern FUN_02073DA8
-.extern FUN_02073DB4
-.extern FUN_0207405C
-.extern FUN_02074340
-.extern FUN_0207436C
-.extern FUN_02074428
-.extern FUN_02074454
-.extern FUN_02074538
-.extern FUN_02074584
-.extern FUN_020746D4
-.extern FUN_02074F6C
-.extern FUN_02075118
-.extern FUN_020754D0
-.extern FUN_02075C54
-.extern FUN_02075CE4
-.extern FUN_02076144
-.extern FUN_020761A0
-.extern FUN_02076890
-.extern FUN_02076AA0
-.extern FUN_02076AF8
-.extern FUN_02076C94
-.extern FUN_02076D3C
-.extern FUN_0207703C
-.extern FUN_02077110
-.extern FUN_02077248
-.extern FUN_02077A84
-.extern FUN_02077AC4
-.extern FUN_020799E8
-.extern FUN_020799F4
-.extern FUN_02079A0C
-.extern FUN_02079A24
-.extern FUN_02079A54
-.extern FUN_02079A70
-.extern FUN_02079AAC
-.extern FUN_02079B60
-.extern FUN_02079C40
-.extern FUN_02079C70
-.extern FUN_0207B000
-.extern FUN_0207B070
-.extern FUN_0207B09C
-.extern FUN_0207B628
-.extern FUN_0207C1E8
-.extern FUN_0207C2A4
-.extern FUN_0207C2C4
-.extern FUN_0207C2C8
-.extern FUN_0207C2CC
-.extern FUN_0207C2D0
-.extern FUN_0207C2D4
-.extern FUN_0207C328
-.extern FUN_0207C3D4
-.extern FUN_0207C3F4
-.extern FUN_0207C448
-.extern FUN_0207C5D4
-.extern FUN_0207C6A4
-.extern FUN_0207C6F0
-.extern FUN_0207C71C
-.extern FUN_0207C77C
-.extern FUN_0207C838
-.extern FUN_0207CA44
-.extern FUN_0207CB08
-.extern FUN_0207CB70
-.extern FUN_0207CBC0
-.extern FUN_0207CBE8
-.extern FUN_0207CC24
-.extern FUN_0207CC88
-.extern FUN_0207CE4C
-.extern FUN_0207CEDC
-.extern FUN_0207CF58
-.extern FUN_0207CF78
-.extern FUN_0207CFAC
-.extern FUN_0207CFEC
-.extern FUN_0207D06C
-.extern FUN_0207D10C
-.extern FUN_0207D22C
-.extern FUN_0207D2C8
-.extern FUN_0207D364
-.extern FUN_0207D3C4
-.extern FUN_0207D3F4
-.extern FUN_0207D418
-.extern FUN_0207D598
-.extern FUN_0207D5BC
-.extern FUN_0207D604
-.extern FUN_0207D6F8
-.extern FUN_0207D74C
-.extern FUN_0207D768
-.extern FUN_0207D800
-.extern FUN_0207D8A0
-.extern FUN_0207D924
-.extern FUN_0207DD88
-.extern FUN_0207E840
-.extern FUN_0207E9A0
-.extern FUN_0207EB64
-.extern FUN_0207EC94
-.extern FUN_0207ECDC
-.extern FUN_0207ED18
-.extern FUN_0207ED30
-.extern FUN_0207EDB4
-.extern FUN_0207EE2C
-.extern FUN_0207EEB0
-.extern FUN_0207EECC
-.extern FUN_0207EF6C
-.extern FUN_0207F008
-.extern FUN_0207F068
-.extern FUN_0207F098
-.extern FUN_0207F2A0
-.extern FUN_0207F608
-.extern FUN_0207F840
-.extern FUN_0207F8D0
-.extern FUN_0207F934
-.extern FUN_0207F95C
-.extern FUN_0207FA38
-.extern FUN_0207FA80
-.extern FUN_0207FB28
-.extern FUN_0207FC04
-.extern FUN_0207FC40
-.extern FUN_0207FC5C
-.extern FUN_0207FCC0
-.extern FUN_0207FCE0
-.extern FUN_0207FD00
-.extern FUN_02080094
-.extern FUN_0208089C
-.extern FUN_020808AC
-.extern FUN_02080C38
-.extern FUN_02080E0C
-.extern FUN_02081214
-.extern FUN_020814E8
-.extern FUN_02081DC4
-.extern FUN_02081EB8
-.extern FUN_0208201C
-.extern FUN_02082034
-.extern FUN_0208206C
-.extern FUN_02082090
-.extern FUN_020820B8
-.extern FUN_020820DC
-.extern FUN_0208210C
-.extern FUN_0208213C
-.extern FUN_02082140
-.extern FUN_02082158
-.extern FUN_0208217C
-.extern FUN_02082190
-.extern FUN_020821B4
-.extern FUN_020821C4
-.extern FUN_020821DC
-.extern FUN_020821F0
-.extern FUN_02082214
-.extern FUN_0208223C
-.extern FUN_0208224C
-.extern FUN_02082254
-.extern FUN_02082284
-.extern FUN_020822F0
-.extern FUN_02082444
-.extern FUN_02082508
-.extern FUN_020825A0
-.extern FUN_02082630
-.extern FUN_02082878
-.extern FUN_02082880
-.extern FUN_020828BC
-.extern FUN_020828E4
-.extern FUN_02082B90
-.extern FUN_02082D18
-.extern FUN_02082D60
-.extern FUN_02082E64
-.extern FUN_02082ED0
-.extern FUN_02083114
-.extern FUN_02083130
-.extern FUN_0208315C
-.extern FUN_02083170
-.extern FUN_02083228
-.extern FUN_02083268
-.extern FUN_02083298
-.extern FUN_020832A4
-.extern FUN_020832DC
-.extern FUN_020832E4
-.extern FUN_020832EC
-.extern FUN_02083308
-.extern FUN_0208336C
-.extern FUN_020833D4
-.extern FUN_02083404
-.extern FUN_0208341C
-.extern FUN_02083454
-.extern FUN_020834D0
-.extern FUN_02083630
-.extern FUN_020836BC
-.extern FUN_0208373C
-.extern FUN_020837B4
-.extern FUN_02083834
-.extern FUN_020838B4
-.extern FUN_02083930
-.extern FUN_020839C0
-.extern FUN_02083A34
-.extern FUN_02083A7C
-.extern FUN_02083AD4
-.extern FUN_02083B48
-.extern FUN_02083B84
-.extern FUN_02083D10
-.extern FUN_02083D48
-.extern FUN_02084098
-.extern FUN_020842D0
-.extern FUN_020842D8
-.extern FUN_020847F8
-.extern FUN_02084810
-.extern FUN_02084DD0
-.extern FUN_02085140
-.extern FUN_020851B8
-.extern FUN_020851DC
-.extern FUN_020851F8
-.extern FUN_02085224
-.extern FUN_0208524C
-.extern FUN_02085258
-.extern FUN_02085264
-.extern FUN_0208526C
-.extern FUN_02085274
-.extern FUN_02085284
-.extern FUN_02085290
-.extern FUN_020852E8
-.extern FUN_02085310
-.extern FUN_02085338
-.extern FUN_020853A8
-.extern FUN_020853B0
-.extern FUN_020853B4
-.extern FUN_020853BC
-.extern FUN_020853D0
-.extern FUN_020853DC
-.extern FUN_020853E4
-.extern FUN_020853E8
-.extern FUN_020853EC
-.extern FUN_020853F0
-.extern FUN_020853FC
-.extern FUN_0208540C
-.extern FUN_02085410
-.extern FUN_02085414
-.extern FUN_02085418
-.extern FUN_0208541C
-.extern FUN_02085420
-.extern FUN_02085424
-.extern FUN_02085428
-.extern FUN_0208545C
-.extern FUN_020854A0
-.extern FUN_020854E0
-.extern FUN_02085538
-.extern FUN_02085578
-.extern FUN_020855B0
-.extern FUN_020855E4
-.extern FUN_020855E8
-.extern FUN_0208560C
-.extern FUN_0208562C
-.extern FUN_02085644
-.extern FUN_020856A0
-.extern FUN_020857F8
-.extern FUN_0208585C
-.extern FUN_020859A0
-.extern FUN_020859C0
-.extern FUN_02085BB0
-.extern FUN_02085C08
-.extern FUN_02085D9C
-.extern FUN_02085F48
-.extern FUN_02085FAC
-.extern FUN_02085FD0
-.extern FUN_02085FF4
-.extern FUN_02086018
-.extern FUN_0208603C
-.extern FUN_02086060
-.extern FUN_020863DC
-.extern FUN_02086414
-.extern FUN_0208643C
-.extern FUN_02086468
-.extern FUN_0208650C
-.extern FUN_0208654C
-.extern FUN_02086664
-.extern FUN_02086698
-.extern FUN_020866BC
-.extern FUN_020866DC
-.extern FUN_020866FC
-.extern FUN_02086784
-.extern FUN_020867EC
-.extern FUN_02086878
-.extern FUN_02086960
-.extern FUN_0208698C
-.extern FUN_0208699C
-.extern FUN_020869F0
-.extern FUN_02086AF0
-.extern FUN_02086B40
-.extern FUN_02086B70
-.extern FUN_02086B8C
-.extern FUN_02086BA0
-.extern FUN_02086BA8
-.extern FUN_02086CB0
-.extern FUN_02086E04
-.extern FUN_02086E30
-.extern FUN_02086E48
-.extern FUN_02086ED4
-.extern FUN_02086EE8
-.extern FUN_02086F4C
-.extern FUN_02086F8C
-.extern FUN_02086F98
-.extern FUN_02086FA8
-.extern FUN_02087A1C
-.extern FUN_02087A38
-.extern FUN_02087A50
-.extern FUN_02087A6C
-.extern FUN_02087A84
-.extern FUN_02087A98
-.extern FUN_02087B0C
-.extern FUN_02087B58
-.extern FUN_02087B78
-.extern FUN_02087B98
-.extern FUN_02087BB8
-.extern FUN_02087BD8
-.extern FUN_02087BF8
-.extern FUN_02087D00
-.extern FUN_02087E14
-.extern FUN_020881D0
-.extern FUN_0208821C
-.extern FUN_02088320
-.extern FUN_02088360
-.extern FUN_02088484
-.extern FUN_02088490
-.extern FUN_02088660
-.extern FUN_02088694
-.extern FUN_02088814
-.extern FUN_02088818
-.extern FUN_0208881C
-.extern FUN_02088830
-.extern FUN_02088838
-.extern FUN_02088840
-.extern FUN_02088848
-.extern FUN_0208884C
-.extern FUN_02088850
-.extern FUN_02088854
-.extern FUN_02088858
-.extern FUN_02088868
-.extern FUN_02088878
-.extern FUN_020888BC
-.extern FUN_020888CC
-.extern FUN_020888DC
-.extern FUN_02088960
-.extern FUN_0208898C
-.extern FUN_020889B0
-.extern FUN_02088A00
-.extern FUN_02088A78
-.extern FUN_02088AAC
-.extern FUN_02088AFC
-.extern FUN_02088B28
-.extern FUN_02088B48
-.extern FUN_02088D1C
-.extern FUN_02088D20
-.extern FUN_02088D40
-.extern FUN_02088D4C
-.extern FUN_02088D68
-.extern FUN_02088D84
-.extern FUN_02088DA0
-.extern FUN_02088DBC
-.extern FUN_02088DD8
-.extern FUN_02088DF0
-.extern FUN_02088DF8
-.extern FUN_02088EF8
-.extern FUN_02088F0C
-.extern FUN_02088F4C
-.extern FUN_020892C4
-.extern FUN_020892CC
-.extern FUN_020892EC
-.extern FUN_02089300
-.extern FUN_02089310
-.extern FUN_02089338
-.extern FUN_02089368
-.extern FUN_02089394
-.extern FUN_020893E0
-.extern FUN_020893F0
-.extern FUN_02089418
-.extern FUN_02089444
-.extern FUN_0208946C
-.extern FUN_02089D90
-.extern FUN_02089F24
-.extern FUN_0208A0B8
-.extern FUN_0208A300
-.extern FUN_0208A320
-.extern FUN_0208A328
-.extern FUN_0208A32C
-.extern FUN_0208A330
-.extern FUN_0208A334
-.extern FUN_0208A338
-.extern FUN_0208A9B8
-.extern FUN_0208AC14
-.extern FUN_0208AC58
-.extern FUN_0208ACEC
-.extern FUN_0208AD80
-.extern FUN_0208AE48
-.extern FUN_0208AF80
-.extern FUN_0208AF94
-.extern FUN_0208AFA8
-.extern FUN_0208B05C
-.extern FUN_0208B128
-.extern FUN_0208B4A0
-.extern FUN_020905D0
-.extern FUN_02090664
-.extern FUN_02090780
-.extern FUN_02090858
-.extern FUN_020908DC
-.extern FUN_020909A4
-.extern FUN_02090CC8
-.extern FUN_02090DB8
-.extern FUN_020910EC
-.extern FUN_0209521C
-.extern FUN_020952AC
-.extern DWCi_BACKUPlGetWifi
-.extern DWCi_BACKUPlConvWifiInfo
-.extern DWC_BACKUPlCheckAddress
-.extern DWC_BACKUPlCheckIp
-.extern DWCi_BACKUPlConvMaskAddr
-.extern DWCi_BACKUPlConvMaskCidr
-.extern DWCi_BACKUPlWritePage
-.extern DWCi_BACKUPlRead
-.extern DWCi_BM_GetWiFiInfo
-.extern DWCi_BM_GetApInfo
-.extern DWC_BM_Init
-.extern FUN_02096570
-.extern FUN_02096710
-.extern DWCi_AUTH_MakeWiFiID
-.extern DWCi_AUTH_GetNewWiFiInfo
-.extern DWC_Init
-.extern DWC_IsEqualFriendData
-.extern DWC_LoginIdToUserName
-.extern DWC_SetGsProfileId
-.extern DWC_CreateExchangeToken
-.extern DWC_CreateFriendKeyToken
-.extern DWC_CreateFriendKey
-.extern DWC_GetGsProfileId
-.extern DWC_GetFriendKey
-.extern DWC_CheckDirtyFlag
-.extern DWCi_Acc_SetLoginIdToUserData
-.extern DWC_CheckValidConsole
-.extern DWC_CheckHasProfile
-.extern DWC_CheckUserData
-.extern DWCi_Acc_IsValidFriendData
-.extern DWC_IsValidFriendData
-.extern DWCi_Acc_IsAuthentic
-.extern DWCi_Acc_IsValidLoginId
-.extern DWCi_Acc_CheckConsoleUserId
-.extern DWCi_Acc_CreateTempLoginId
-.extern DWCi_Acc_LoginIdToUserName
-.extern DWC_CheckFriendKey
-.extern DWCi_SetBuddyFriendData
-.extern DWC_GetFriendDataType
-.extern DWC_IsBuddyFriendData
-.extern DWCi_Acc_SetPlayerId
-.extern WCM_GetPhase
-.extern WCM_TerminateAsync
-.extern WCM_DisconnectAsync
-.extern WCM_ConnectAsync
-.extern WCM_EndSearchAsync
-.extern WCM_SearchAsync
-.extern WCM_CleanupAsync
-.extern WCM_StartupAsync
-.extern WCM_Finish
-.extern WCM_Init
-.extern WCM_PointApList
-.extern WCM_LockApList
-.extern WCM_CountApList
-.extern WCM_ClearApList
-.extern WCM_GetApEssid
-.extern MD5Final
-.extern MD5Update
-.extern MD5Init
-.extern FUN_020AA760
-.extern FUN_020AA770
-.extern FUN_020AA7A0
-.extern FUN_020AA824
-.extern FUN_020AABDC
-.extern FUN_020AACFC
-.extern FUN_020AADCC
-.extern FUN_020ACAB0
-.extern FUN_020ACBA0
-.extern FUN_020ACC84
-.extern FUN_020ACD54
-.extern FUN_020AD144
-.extern VCT_HandleData
-.extern VCT_Main
-.extern VCT_Cleanup
-.extern VCT_Init
-.extern FUN_020ADA84
-.extern FUN_020ADA98
-.extern FUN_020ADAB0
-.extern FUN_020ADB18
-.extern FUN_020ADBE8
-.extern FUN_020ADC74
-.extern FUN_020ADDC0
-.extern FUN_020ADDC8
-.extern FUN_020ADDF0
-.extern FUN_020ADE2C
-.extern FUN_020AE554
-.extern FUN_020AE5B0
-.extern FUN_020AE600
-.extern FUN_020AE638
-.extern FUN_020AE684
-.extern FUN_020AE82C
-.extern FUN_020AE84C
-.extern FUN_020AE868
-.extern FUN_020AE8CC
-.extern FUN_020AE918
-.extern FUN_020AEAF4
-.extern FUN_020AEB70
-.extern FUN_020AEC60
-.extern FUN_020AEC7C
-.extern FUN_020AEC98
-.extern FUN_020AEDF4
-.extern FUN_020AEE40
-.extern FUN_020AEEB8
-.extern FUN_020AEF1C
-.extern FUN_020AF2E0
-.extern FUN_020AF2F4
-.extern FUN_020AF30C
-.extern FUN_020AF6A4
-.extern FUN_020AF894
-.extern FUN_020AF9C4
-.extern FUN_020AFA28
-.extern FUN_020AFA30
-.extern FUN_020AFA80
-.extern FUN_020AFBA8
-.extern FUN_020AFBFC
-.extern FUN_020AFC04
-.extern FUN_020AFEB8
-.extern FUN_020AFFD8
-.extern FUN_020B0030
-.extern FUN_020B0088
-.extern FUN_020B00F0
-.extern FUN_020B0138
-.extern FUN_020B0180
-.extern FUN_020B0250
-.extern FUN_020B02C8
-.extern FUN_020B0448
-.extern FUN_020B04FC
-.extern FUN_020B0830
-.extern FUN_020B0870
-.extern FUN_020B0888
-.extern FUN_020B0BB0
-.extern FUN_020B0C7C
-.extern FUN_020B0D58
-.extern FUN_020B0E34
-.extern FUN_020B0FC0
-.extern FUN_020B10E8
-.extern FUN_020B1240
-.extern FUN_020B1340
-.extern FUN_020B1528
-.extern FUN_020B1768
-.extern FUN_020B19C4
-.extern FUN_020B19DC
-.extern FUN_020B1A14
-.extern FUN_020B1A1C
-.extern FUN_020B1A24
-.extern FUN_020B1AF8
-.extern FUN_020B1EA4
-.extern FUN_020B1EC4
-.extern FUN_020B1EE4
-.extern FUN_020B1EFC
-.extern FUN_020B1F80
-.extern FUN_020B20C8
-.extern FUN_020B2194
-.extern FUN_020B224C
-.extern FUN_020B23D8
-.extern FUN_020B242C
-.extern FUN_020B2794
-.extern FUN_020B28B4
-.extern FUN_020B2A08
-.extern FUN_020B2B08
-.extern FUN_020B2B58
-.extern FUN_020B2D9C
-.extern FUN_020B317C
-.extern FUN_020B31F0
-.extern FUN_020B326C
-.extern FUN_020B3334
-.extern FUN_020B3390
-.extern FUN_020B33A0
-.extern FUN_020B4358
-.extern FUN_020B43A4
-.extern FUN_020B442C
-.extern FUN_020B4568
-.extern FUN_020B4F38
-.extern FUN_020B502C
-.extern FUN_020B5C88
-.extern FUN_020B5CE4
-.extern FUN_020B5D3C
-.extern FUN_020B5E50
-.extern FUN_020B6180
-.extern FUN_020B6240
-.extern FUN_020B62F8
-.extern FUN_020B6388
-.extern FUN_020B63CC
-.extern FUN_020B7168
-.extern FUN_020B7218
-.extern FUN_020B772C
-.extern FUN_020B7790
-.extern FUN_020B7C58
-.extern FUN_020B7C78
-.extern FUN_020B7CDC
-.extern FUN_020B7CE4
-.extern FUN_020B7CF0
-.extern FUN_020B7D28
-.extern FUN_020B7DFC
-.extern FUN_020B7E10
-.extern FUN_020B7E1C
-.extern FUN_020B7E28
-.extern FUN_020B7EFC
-.extern FUN_020B80B4
-.extern FUN_020B8110
-.extern FUN_020B8344
-.extern FUN_020B8390
-.extern FUN_020B83BC
-.extern FUN_020B83E0
-.extern FUN_020B8404
-.extern FUN_020B8418
-.extern FUN_020B844C
-.extern FUN_020B8474
-.extern FUN_020B849C
-.extern FUN_020BAC98
-.extern FUN_020BAFB8
-.extern FUN_020BB1C0
-.extern FUN_020BB394
-.extern FUN_020BB408
-.extern FUN_020BB59C
-.extern FUN_020BB7F4
-.extern FUN_020BB8D0
-.extern FUN_020BB8F4
-.extern FUN_020BB934
-.extern FUN_020BB974
-.extern FUN_020BB9B4
-.extern FUN_020BB9F4
-.extern FUN_020BBA34
-.extern FUN_020BBA74
-.extern FUN_020BBAB4
-.extern FUN_020BBAF4
-.extern FUN_020BBB34
-.extern FUN_020BBB74
-.extern FUN_020BBBB4
-.extern FUN_020BBBF4
-.extern FUN_020BBC34
-.extern FUN_020BC02C
-.extern FUN_020BC094
-.extern FUN_020BC0FC
-.extern FUN_020BC13C
-.extern FUN_020BC2A0
-.extern FUN_020BC4C8
-.extern FUN_020C0174
-.extern FUN_020C01A0
-.extern FUN_020C01D0
-.extern FUN_020C03B8
-.extern FUN_020C041C
-.extern FUN_020C044C
-.extern FUN_020C04DC
-.extern FUN_020C0510
-.extern FUN_020C054C
-.extern FUN_020C0670
-.extern FUN_020C0688
-.extern FUN_020C0DD4
-.extern FUN_020C0E14
-.extern FUN_020C0E7C
-.extern FUN_020C0EA4
-.extern FUN_020C0EF4
-.extern FUN_020C0F30
-.extern FUN_020C0F50
-.extern FUN_020C0F68
-.extern FUN_020C0F80
-.extern FUN_020C0F8C
-.extern FUN_020C0F9C
-.extern FUN_020C0FDC
-.extern FUN_020C1040
-.extern FUN_020C10A4
-.extern FUN_020C1148
-.extern FUN_020C1180
-.extern FUN_020C13C4
-.extern FUN_020C1430
-.extern FUN_020C14AC
-.extern FUN_020C1674
-.extern FUN_020C169C
-.extern FUN_020C16FC
-.extern FUN_020C1E58
-.extern FUN_020C1E68
-.extern FUN_020C1EA4
-.extern FUN_020C1F54
-.extern FUN_020C1FA4
-.extern FUN_020C1FF0
-.extern FUN_020C20DC
-.extern FUN_020C2104
-.extern FUN_020C217C
-.extern FUN_020C226C
-.extern FUN_020C22D0
-.extern FUN_020C23FC
-.extern FUN_020C2444
-.extern FUN_020C26F8
-.extern FUN_020C2828
-.extern FUN_020C290C
-.extern FUN_020C2A94
-.extern FUN_020C35E0
-.extern FUN_020C360C
-.extern FUN_020C3640
-.extern FUN_020C3674
-.extern FUN_020C36A8
-.extern FUN_020C3910
-.extern FUN_020C3980
-.extern FUN_020C39CC
-.extern FUN_020C5D8C
-.extern FUN_020C5E04
-.extern FUN_020C6034
-.extern FUN_020C605C
-.extern FUN_020D6714
-.extern FUN_020D9564
-.extern FX_Atan
-.extern FX_Atan2
-.extern FX_AtanTable_
-.extern FX_Div
-.extern FX_DivAsync
-.extern FX_DivS32
-.extern FX_GetDivResult
-.extern FX_GetDivResultFx64c
-.extern FX_Init
-.extern FX_Inv
-.extern FX_InvAsync
-.extern FX_ModS32
-.extern FX_Modf
-.extern FX_Sqrt
-.extern gGameLanguage
-.extern gGameVersion
-.extern G2S_GetBG0CharPtr
-.extern G2S_GetBG0ScrPtr
-.extern G2S_GetBG1CharPtr
-.extern G2S_GetBG1ScrPtr
-.extern G2S_GetBG2CharPtr
-.extern G2S_GetBG2ScrPtr
-.extern G2S_GetBG3CharPtr
-.extern G2S_GetBG3ScrPtr
-.extern G2_GetBG0CharPtr
-.extern G2_GetBG0ScrPtr
-.extern G2_GetBG1CharPtr
-.extern G2_GetBG1ScrPtr
-.extern G2_GetBG2CharPtr
-.extern G2_GetBG2ScrPtr
-.extern G2_GetBG3CharPtr
-.extern G2_GetBG3ScrPtr
-.extern G2x_ChangeBlendBrightness_
-.extern G2x_SetBGyAffine_
-.extern G2x_SetBlendAlpha_
-.extern G2x_SetBlendBrightnessExt_
-.extern G2x_SetBlendBrightness_
-.extern G3B_Begin
-.extern G3B_Color
-.extern G3B_End
-.extern G3B_LightColor
-.extern G3B_LightVector
-.extern G3B_LoadMtx44
-.extern G3B_MaterialColorDiffAmb
-.extern G3B_MaterialColorSpecEmi
-.extern G3B_Normal
-.extern G3B_PolygonAttr
-.extern G3B_PopMtx
-.extern G3B_PushMtx
-.extern G3B_Vtx
-.extern G3X_GetBoxTestResult
-.extern G3X_GetClipMtx
-.extern G3X_GetVectorMtx
-.extern G3X_Init
-.extern G3X_InitMtxStack
-.extern G3X_ResetMtxStack
-.extern G3X_ResetMtxStack_2
-.extern G3X_SetClearColor
-.extern G3X_SetEdgeColorTable
-.extern G3X_SetFog
-.extern G3X_SetFogTable
-.extern G3X_SetHOffset
-.extern G3_BeginMakeDL
-.extern G3_EndMakeDL
-.extern G3_LoadMtx43
-.extern G3_MultMtx33
-.extern G3_MultMtx43
-.extern G3_RotX
-.extern G3_RotY
-.extern G3_RotZ
-.extern G3i_LookAt_
-.extern G3i_OrthoW_
-.extern G3i_PerspectiveW_
-.extern GXS_BeginLoadBGExtPltt
-.extern GXS_BeginLoadOBJExtPltt
-.extern GXS_EndLoadBGExtPltt
-.extern GXS_EndLoadOBJExtPltt
-.extern GXS_LoadBG0Char
-.extern GXS_LoadBG0Scr
-.extern GXS_LoadBG1Char
-.extern GXS_LoadBG1Scr
-.extern GXS_LoadBG2Char
-.extern GXS_LoadBG2Scr
-.extern GXS_LoadBG3Char
-.extern GXS_LoadBG3Scr
-.extern GXS_LoadBGExtPltt
-.extern GXS_LoadBGPltt
-.extern GXS_LoadOAM
-.extern GXS_LoadOBJ
-.extern GXS_LoadOBJExtPltt
-.extern GXS_LoadOBJPltt
-.extern GXS_SetGraphicsMode
-.extern GX_BeginLoadBGExtPltt
-.extern GX_BeginLoadClearImage
-.extern GX_BeginLoadOBJExtPltt
-.extern GX_BeginLoadTex
-.extern GX_BeginLoadTexPltt
-.extern GX_DisableBankForARM7
-.extern GX_DisableBankForBGExtPltt
-.extern GX_DisableBankForClearImage
-.extern GX_DisableBankForLCDC
-.extern GX_DisableBankForOBJExtPltt
-.extern GX_DisableBankForOBJExtPltt_2
-.extern GX_DisableBankForSubBGExtPltt
-.extern GX_DisableBankForSubOBJExtPltt
-.extern GX_DisableBankForSubOBJExtPltt_2
-.extern GX_DisableBankForTexPltt
-.extern GX_DisableBankForTexPltt_2
-.extern GX_DispOff
-.extern GX_DispOn
-.extern GX_EndLoadBGExtPltt
-.extern GX_EndLoadClearImage
-.extern GX_EndLoadOBJExtPltt
-.extern GX_EndLoadTex
-.extern GX_EndLoadTexPltt
-.extern GX_GetBankForBGExtPltt
-.extern GX_GetBankForBGExtPltt_2
-.extern GX_GetBankForLCDC
-.extern GX_GetBankForOBJ
-.extern GX_GetBankForOBJExtPltt
-.extern GX_GetBankForSubBGExtPltt
-.extern GX_GetBankForSubBGExtPltt_2
-.extern GX_GetBankForSubOBJ
-.extern GX_GetBankForSubOBJExtPltt
-.extern GX_GetBankForTexPltt
-.extern GX_HBlankIntr
-.extern GX_Init
-.extern GX_InitGXState
-.extern GX_LoadBG0Char
-.extern GX_LoadBG0Scr
-.extern GX_LoadBG1Char
-.extern GX_LoadBG1Scr
-.extern GX_LoadBG2Char
-.extern GX_LoadBG2Scr
-.extern GX_LoadBG3Char
-.extern GX_LoadBG3Scr
-.extern GX_LoadBGExtPltt
-.extern GX_LoadBGPltt
-.extern GX_LoadClearImageColor
-.extern GX_LoadClearImageDepth
-.extern GX_LoadOAM
-.extern GX_LoadOBJ
-.extern GX_LoadOBJExtPltt
-.extern GX_LoadOBJPltt
-.extern GX_LoadTex
-.extern GX_LoadTexPltt
-.extern GX_ResetBankForBG
-.extern GX_ResetBankForBGExtPltt
-.extern GX_ResetBankForClearImage
-.extern GX_ResetBankForOBJ
-.extern GX_ResetBankForOBJExtPltt
-.extern GX_ResetBankForSubBG
-.extern GX_ResetBankForSubOBJ
-.extern GX_ResetBankForTex
-.extern GX_ResetBankForTexPltt
-.extern GX_SendFifo48B
-.extern GX_SetBankForARM7
-.extern GX_SetBankForBG
-.extern GX_SetBankForBGExtPltt
-.extern GX_SetBankForClearImage
-.extern GX_SetBankForLCDC
-.extern GX_SetBankForOBJ
-.extern GX_SetBankForOBJExtPltt
-.extern GX_SetBankForSubBG
-.extern GX_SetBankForSubBGExtPltt
-.extern GX_SetBankForSubOBJ
-.extern GX_SetBankForSubOBJExtPltt
-.extern GX_SetBankForTex
-.extern GX_SetBankForTexPltt
-.extern GX_SetGraphicsMode
-.extern GX_VBlankIntr
-.extern GXx_SetMasterBrightness_
-.extern GetSoundDataPointer
-.extern HandleLoadOverlay
-.extern IC_InvalidateAll
-.extern IC_InvalidateRange
-.extern InitGraphicMemory
-.extern InitScriptContext
-.extern InitSystemForTheGame
-.extern InitializeMainRNG
-.extern ReadWholeNarcMemberByIdPair
-.extern GetNarcMemberSizeByIdPair
-.extern AllocAndReadWholeNarcMemberByIdPair
-.extern LoadOverlay_MODULE_05
-.extern LoadPlayerDataAddress
-.extern MATH_CalcCRC16
-.extern MATH_CalcCRC16CCITT
-.extern MATH_CalcCRC32
-.extern MATH_CalcCRC8
-.extern MATH_CalcMD5
-.extern MATH_CalcSHA1
-.extern MATH_CountPopulation
-.extern MATH_MD5GetHash
-.extern MATH_MD5Init
-.extern MATH_MD5Update
-.extern MATHi_CRC16InitTable
-.extern MATHi_CRC16InitTableRev
-.extern MATHi_CRC32InitTableRev
-.extern MATHi_CRC8InitTable
-.extern MIC_DoSamplingAsync
-.extern MIC_GetLastSamplingAddress
-.extern MIC_Init
-.extern MIC_StartAutoSampling
-.extern MIC_StartAutoSamplingAsync
-.extern MIC_StopAutoSampling
-.extern MI_Copy36B
-.extern MI_Copy48B
-.extern MI_Copy64B
-.extern MI_CpuCopy8
-.extern MI_CpuFill8
-.extern MI_DmaCopy16
-.extern MI_DmaCopy32
-.extern MI_DmaCopy32Async
-.extern MI_DmaFill32
-.extern MI_DmaFill32Async
-.extern MI_HBlankDmaCopy16
-.extern MI_HBlankDmaCopy32
-.extern MI_Init
-.extern MI_SendGXCommand
-.extern MI_SendGXCommandAsync
-.extern MI_SendGXCommandAsyncFast
-.extern MI_SetWramBank
-.extern MI_StopDma
-.extern MI_SwapWord
-.extern MI_UncompressLZ8
-.extern MI_WaitDma
-.extern MI_Zero36B
-.extern MIi_CardDmaCopy32
-.extern MIi_CheckAnotherAutoDMA
-.extern MIi_CheckDma0SourceAddress
-.extern MIi_CpuClear16
-.extern MIi_CpuClear32
-.extern MIi_CpuClearFast
-.extern MIi_CpuCopy16
-.extern MIi_CpuCopy32
-.extern MIi_CpuCopyFast
-.extern MIi_CpuSend32
-.extern MIi_DmaSetParams
-.extern MIi_DmaSetParams_noInt
-.extern MIi_DmaSetParams_wait
-.extern MIi_DmaSetParams_wait_noInt
-.extern MIi_UncompressBackward
-.extern MOD04_021D7660
-.extern MOD04_021D76AC
-.extern MOD04_021D77C4
-.extern MOD04_021D77E0
-.extern MOD04_021D7800
-.extern MOD04_021D78FC
-.extern MOD04_021D79B4
-.extern MOD04_021D7A7C
-.extern MOD04_021D7B14
-.extern MOD04_021D7B48
-.extern MOD04_021D7B6C
-.extern MOD04_021D7B70
-.extern MOD04_021D7BBC
-.extern MOD04_021D7BC0
-.extern MOD04_021D7C30
-.extern MOD04_021D7C4C
-.extern MOD04_021D7D68
-.extern MOD04_021D7DA8
-.extern MOD04_021D7DEC
-.extern MOD04_021D7E18
-.extern MOD04_021D7F20
-.extern MOD04_021D7F8C
-.extern MOD04_021D8018
-.extern MOD04_021D8044
-.extern MOD04_021D8058
-.extern MOD04_021D80E0
-.extern MOD04_021D82BC
-.extern MOD04_021D836C
-.extern MOD04_021D83A8
-.extern MOD04_021D83C0
-.extern MOD04_021D83D4
-.extern MOD04_021D83F0
-.extern MOD04_021D8478
-.extern MOD04_021D8480
-.extern MOD04_021D8494
-.extern MOD04_021D853C
-.extern MOD04_021D8558
-.extern MOD04_021D8590
-.extern MOD04_021D85A0
-.extern MOD04_021D85B4
-.extern MOD04_021D861C
-.extern MOD04_021D8624
-.extern MOD04_021D8640
-.extern MOD04_021D865C
-.extern MOD04_021D8678
-.extern MOD04_021D868C
-.extern MOD04_021D872C
-.extern MOD04_021D8730
-.extern MOD04_021D87D0
-.extern MOD04_021D8818
-.extern MOD04_021D8860
-.extern MOD04_021D8910
-.extern MOD04_021D8944
-.extern MOD04_021D8A54
-.extern MOD04_021D8A7C
-.extern MOD04_021D8BF0
-.extern MOD04_021D8C08
-.extern MOD04_021D8C58
-.extern MOD04_021D8C6C
-.extern MOD04_021D8CC8
-.extern MOD04_021D8CF0
-.extern MOD04_021D8D04
-.extern MOD04_021D8F08
-.extern MOD04_021D9C2C
-.extern MOD04_021D9F78
-.extern MOD04_021DA2F4
-.extern MOD04_021DA334
-.extern MOD04_021DA388
-.extern MOD04_021DA3DC
-.extern MOD04_021DAB68
-.extern MOD04_021DCA84
-.extern MOD04_021DD6F0
-.extern MOD04_021DD718
-.extern MOD04_021DD808
-.extern MOD04_021DD82C
-.extern MOD04_021DD844
-.extern MOD04_021DD860
-.extern MOD04_021DD904
-.extern MOD04_021DD944
-.extern MOD04_021DD968
-.extern MOD04_021DD984
-.extern MOD04_021DD9DC
-.extern MOD04_021DDB08
-.extern MOD04_021DDB40
-.extern MOD04_021DDBBC
-.extern MOD04_021DDC1C
-.extern MOD04_021DDCE8
-.extern MOD04_021DDD7C
-.extern MOD04_021DDDCC
-.extern MOD04_021DDE7C
-.extern MOD04_021DDEE0
-.extern MOD04_021DDF40
-.extern MOD04_021DDF4C
-.extern MOD04_021DE05C
-.extern MOD04_021DE1F8
-.extern MOD04_021DE2D0
-.extern MOD04_021DE308
-.extern MOD04_021DE330
-.extern MOD04_021DE364
-.extern MOD04_021DE3AC
-.extern MOD04_021DE3D0
-.extern MOD04_021DE404
-.extern MOD04_021DE45C
-.extern MOD04_021DF95C
-.extern MOD04_021DF978
-.extern MOD04_021DFA40
-.extern MOD04_021DFAF8
-.extern MOD04_021DFB20
-.extern MOD04_021DFD18
-.extern MOD04_021DFDBC
-.extern MOD04_021DFE64
-.extern MOD04_021DFF74
-.extern MOD04_021E0200
-.extern MOD04_021E0374
-.extern MOD04_021E242C
-.extern MOD04_021E2454
-.extern MOD04_021E2578
-.extern MOD04_021EA530
-.extern MOD04_021EACF8
-.extern MOD04_021EADD8
-.extern MOD04_021EADF8
-.extern MOD04_021EAE18
-.extern MOD04_021EAE38
-.extern MOD04_021EAE90
-.extern MOD04_021EB044
-.extern MOD04_021EB0FC
-.extern MOD04_021EB3B8
-.extern MOD04_021EB524
-.extern MOD04_021EB550
-.extern MOD04_021EB59C
-.extern MOD04_021EB9A4
-.extern MOD04_021EB9D8
-.extern MOD04_021EBAE8
-.extern MOD04_021EBB80
-.extern MOD04_021EBC60
-.extern MOD04_021EEFA8
-.extern MOD04_021EEFFC
-.extern MOD04_021EF06C
-.extern MOD04_021EF074
-.extern MOD04_021EF0E4
-.extern MOD04_021EF820
-.extern MOD04_021EFB28
-.extern MOD04_021EFB38
-.extern MOD04_021EFC24
-.extern MOD04_021EFC78
-.extern MOD04_021EFCE4
-.extern MOD04_021EFD80
-.extern MOD04_021EFD9C
-.extern MOD04_021EFDB8
-.extern MOD04_021EFF5C
-.extern MOD04_021F0130
-.extern MOD04_021F017C
-.extern MOD04_021F0208
-.extern MOD04_021F024C
-.extern MOD04_021F0250
-.extern MOD04_021F025C
-.extern MOD05_021D74E0
-.extern MOD05_021D7A20
-.extern MOD05_021D7A28
-.extern MOD05_021D7CA4
-.extern MOD05_021D8024
-.extern MOD05_021D80A4
-.extern MOD05_021D80E4
-.extern MOD05_021D8164
-.extern MOD05_021D8320
-.extern MOD05_021D85FC
-.extern MOD05_021D8758
-.extern MOD05_021D8820
-.extern MOD05_021D9320
-.extern MOD05_021D94B4
-.extern MOD05_021D9510
-.extern MOD05_021D959C
-.extern MOD05_021D967C
-.extern MOD05_021D96F4
-.extern MOD05_021D9708
-.extern MOD05_021D971C
-.extern MOD05_021D9820
-.extern MOD05_021D99F8
-.extern MOD05_021DA03C
-.extern MOD05_021DA080
-.extern MOD05_021DA0DC
-.extern MOD05_021DA0E0
-.extern MOD05_021DA0E8
-.extern MOD05_021DA118
-.extern MOD05_021DA138
-.extern MOD05_021DA1A0
-.extern MOD05_021DA1A4
-.extern MOD05_021DA1A8
-.extern MOD05_021DA20C
-.extern MOD05_021DA464
-.extern MOD05_021DA4BC
-.extern MOD05_021DA4EC
-.extern MOD05_021DA54C
-.extern MOD05_021DA58C
-.extern MOD05_021DA5B8
-.extern MOD05_021DA5C8
-.extern MOD05_021DA5D0
-.extern MOD05_021DA5D8
-.extern MOD05_021DA7B4
-.extern MOD05_021DAAA4
-.extern MOD05_021DAC70
-.extern MOD05_021DAE40
-.extern MOD05_021DAED4
-.extern MOD05_021DAF28
-.extern MOD05_021DAF78
-.extern MOD05_021DAF98
-.extern MOD05_021DB030
-.extern MOD05_021DB040
-.extern MOD05_021DB144
-.extern MOD05_021DB1D0
-.extern MOD05_021DB250
-.extern MOD05_021DB380
-.extern MOD05_021DB44C
-.extern MOD05_021DB4B0
-.extern MOD05_021DB52C
-.extern MOD05_021DB53C
-.extern MOD05_021DBA40
-.extern MOD05_021DBA78
-.extern MOD05_021DBAA0
-.extern MOD05_021DC174
-.extern MOD05_021DD60C
-.extern MOD05_021E1374
-.extern MOD05_021E1858
-.extern MOD05_021E1994
-.extern MOD05_021E1BF8
-.extern MOD05_021E1C4C
-.extern MOD05_021E1C54
-.extern MOD05_021E1ECC
-.extern MOD05_021E1F34
-.extern MOD05_021E1F58
-.extern MOD05_021E1F60
-.extern MOD05_021E2464
-.extern MOD05_021E2608
-.extern MOD05_021E26CC
-.extern MOD05_021E27E8
-.extern MOD05_021E288C
-.extern MOD05_021E28A0
-.extern MOD05_021E2950
-.extern MOD05_021E29B4
-.extern MOD05_021E29C8
-.extern MOD05_021E2A70
-.extern MOD05_021E2AD4
-.extern MOD05_021E2B80
-.extern MOD05_021E2B9C
-.extern MOD05_021E2BB8
-.extern MOD05_021E2BD0
-.extern MOD05_021E2C24
-.extern MOD05_021E2C58
-.extern MOD05_021E2CBC
-.extern MOD05_021E32F0
-.extern MOD05_021E331C
-.extern MOD05_021E3424
-.extern MOD05_021E3444
-.extern MOD05_021E495C
-.extern MOD05_021E4BE8
-.extern MOD05_021E4C00
-.extern MOD05_021E4C08
-.extern MOD05_021E4C20
-.extern MOD05_021E4C24
-.extern MOD05_021E4C54
-.extern MOD05_021E4C60
-.extern MOD05_021E4C6C
-.extern MOD05_021E4DC4
-.extern MOD05_021E4DE4
-.extern MOD05_021E4E90
-.extern MOD05_021E4EE4
-.extern MOD05_021E4EFC
-.extern MOD05_021E506C
-.extern MOD05_021E5078
-.extern MOD05_021E5094
-.extern MOD05_021E50A0
-.extern MOD05_021E50AC
-.extern MOD05_021E50C8
-.extern MOD05_021E50D4
-.extern MOD05_021E5114
-.extern MOD05_021E5198
-.extern MOD05_021E51EC
-.extern MOD05_021E5224
-.extern MOD05_021E5260
-.extern MOD05_021E5294
-.extern MOD05_021E53B4
-.extern MOD05_021E5420
-.extern MOD05_021E5614
-.extern MOD05_021E57D4
-.extern MOD05_021E5970
-.extern MOD05_021E5B30
-.extern MOD05_021E5D0C
-.extern MOD05_021E5E8C
-.extern MOD05_021E5FD8
-.extern MOD05_021E5FE0
-.extern MOD05_021E6410
-.extern MOD05_021E643C
-.extern MOD05_021E6990
-.extern MOD05_021E69BC
-.extern MOD05_021E6BF4
-.extern MOD05_021E7030
-.extern MOD05_021E70F0
-.extern MOD05_021E7138
-.extern MOD05_021E7184
-.extern MOD05_021E71E8
-.extern MOD05_021E7750
-.extern MOD05_021E799C
-.extern MOD05_021E7AC0
-.extern MOD05_021E7C1C
-.extern MOD05_021E7C80
-.extern MOD05_021E7E9C
-.extern MOD05_021E7EA0
-.extern MOD05_021E7EB0
-.extern MOD05_021E7EC0
-.extern MOD05_021E7EC4
-.extern MOD05_021E7EC8
-.extern MOD05_021E7ECC
-.extern MOD05_021E7ED0
-.extern MOD05_021E7ED8
-.extern MOD05_021E7EEC
-.extern MOD05_021E7FBC
-.extern MOD05_021E8128
-.extern MOD05_021E8130
-.extern MOD05_021E8140
-.extern MOD05_021E8144
-.extern MOD05_021E8148
-.extern MOD05_021E8158
-.extern MOD05_021E81BC
-.extern MOD05_021E84F4
-.extern MOD05_021E856C
-.extern MOD05_021E8588
-.extern MOD05_021E85E4
-.extern MOD05_021E85FC
-.extern MOD05_021E8648
-.extern MOD05_021E8698
-.extern MOD05_021EC464
-.extern MOD05_021EC57C
-.extern MOD05_021EC71C
-.extern MOD05_021EC7B4
-.extern MOD05_021EC854
-.extern MOD05_021EC864
-.extern MOD05_021ECD64
-.extern MOD05_021ECF14
-.extern MOD05_021ED0CC
-.extern MOD05_021ED49C
-.extern MOD05_021ED4E0
-.extern MOD05_021ED52C
-.extern MOD05_021ED5C4
-.extern MOD05_021ED5EC
-.extern MOD05_021ED644
-.extern MOD05_021ED940
-.extern MOD05_021ED9B4
-.extern MOD05_021EDA48
-.extern MOD05_021EDBC8
-.extern MOD05_021EEF68
-.extern MOD05_021EEF9C
-.extern MOD05_021EF4F8
-.extern MOD05_021EF5E0
-.extern MOD05_021EF604
-.extern MOD05_021EF620
-.extern MOD05_021EF654
-.extern MOD05_021EF824
-.extern MOD05_021EF844
-.extern MOD05_021EF8C8
-.extern MOD05_021EF8DC
-.extern MOD05_021EFA9C
-.extern MOD05_021F02C4
-.extern MOD05_021F0318
-.extern MOD05_021F043C
-.extern MOD05_021F04F8
-.extern MOD05_021F0514
-.extern MOD05_021F1C1C
-.extern MOD05_021F1C30
-.extern MOD05_021F1D8C
-.extern MOD05_021F1DC8
-.extern MOD05_021F1DFC
-.extern MOD05_021F1E64
-.extern MOD05_021F1EC0
-.extern MOD05_021F1F78
-.extern MOD05_021F2094
-.extern MOD05_021F20D8
-.extern MOD05_021F20F8
-.extern MOD05_021F220C
-.extern MOD05_021F2AF4
-.extern MOD05_021F2E0C
-.extern MOD05_021F2E28
-.extern MOD05_021F2F48
-.extern MOD05_021F2F6C
-.extern MOD05_021F3A18
-.extern MOD05_021F3AB4
-.extern MOD05_021F3B4C
-.extern MOD05_021F3B7C
-.extern MOD05_021F3DA4
-.extern MOD05_021F44D8
-.extern MOD05_021F4520
-.extern MOD05_021F4568
-.extern MOD05_021F4594
-.extern MOD05_021F45E8
-.extern MOD05_021F4608
-.extern MOD05_021F4BD0
-.extern MOD05_021F4C88
-.extern MOD05_021F4CD4
-.extern MOD05_021F4D80
-.extern MOD05_021F4DC8
-.extern MOD05_021F4E7C
-.extern MOD05_021F51D0
-.extern MOD05_021F522C
-.extern MOD05_021F5268
-.extern MOD05_021F52C8
-.extern MOD05_021F531C
-.extern MOD05_021F5348
-.extern MOD05_021F5358
-.extern MOD05_021F5384
-.extern MOD05_021F53BC
-.extern MOD05_021F53F8
-.extern MOD05_021F5400
-.extern MOD05_021F5424
-.extern MOD05_021F5430
-.extern MOD05_021F54CC
-.extern MOD05_021F54D0
-.extern MOD05_021F54D8
-.extern MOD05_021F54E0
-.extern MOD05_021F57EC
-.extern MOD05_021F5C44
-.extern MOD05_021F61DC
-.extern MOD05_021F61E8
-.extern MOD05_021F61F4
-.extern MOD05_021F6234
-.extern MOD05_021F6240
-.extern MOD05_021F6254
-.extern MOD06_02239944
-.extern MOD06_02239AAC
-.extern MOD06_0223BA04
-.extern MOD06_0223BD14
-.extern MOD06_0223BE70
-.extern MOD06_0223C08C
-.extern MOD06_0223CCDC
-.extern MOD06_0223CD7C
-.extern MOD06_0223CDB8
-.extern MOD06_0223D3D0
-.extern MOD06_0223DFB4
-.extern MOD06_02240790
-.extern MOD06_022407CC
-.extern MOD06_022407DC
-.extern MOD06_022407F8
-.extern MOD06_02240834
-.extern MOD06_02240844
-.extern MOD06_022411F4
-.extern MOD06_02241230
-.extern MOD06_022412F4
-.extern MOD06_02241670
-.extern MOD06_0224186C
-.extern MOD06_02241914
-.extern MOD06_02242224
-.extern MOD06_02242404
-.extern MOD06_02242444
-.extern MOD06_02242458
-.extern MOD06_022425C8
-.extern MOD06_02242698
-.extern MOD06_022426AC
-.extern MOD06_022426F4
-.extern MOD06_022428D8
-.extern MOD06_022429B0
-.extern MOD06_022429C4
-.extern MOD06_02242A38
-.extern MOD06_02242BE0
-.extern MOD06_0224312C
-.extern MOD06_022432E4
-.extern MOD06_0224339C
-.extern MOD06_022433A8
-.extern MOD06_022433B0
-.extern MOD06_022433B8
-.extern MOD06_022433F8
-.extern MOD06_02243408
-.extern MOD06_02243428
-.extern MOD06_02243448
-.extern MOD06_0224345C
-.extern MOD06_022434AC
-.extern MOD06_022434BC
-.extern MOD06_022434D0
-.extern MOD06_02243694
-.extern MOD06_022436C8
-.extern MOD06_022436E8
-.extern MOD06_02243780
-.extern MOD06_02243838
-.extern MOD06_022438DC
-.extern MOD06_022438E0
-.extern MOD06_022438FC
-.extern MOD06_02243920
-.extern MOD06_022439F8
-.extern MOD06_02243AD8
-.extern MOD06_02243BA8
-.extern MOD06_02243C5C
-.extern MOD06_02243D3C
-.extern MOD06_02243DA0
-.extern MOD06_02243DB8
-.extern MOD06_02243DC0
-.extern MOD06_02243DC4
-.extern MOD06_02243DD8
-.extern MOD06_02243DE0
-.extern MOD06_02243E34
-.extern MOD06_02243E74
-.extern MOD06_02243F18
-.extern MOD06_02243F50
-.extern MOD06_02243F9C
-.extern MOD06_02244210
-.extern MOD06_02244558
-.extern MOD06_02244660
-.extern MOD06_022446BC
-.extern MOD06_022446E0
-.extern MOD06_022446FC
-.extern MOD06_02244758
-.extern MOD06_02244770
-.extern MOD06_02244DB0
-.extern MOD06_02244DBC
-.extern MOD06_02244DC4
-.extern MOD06_02244EF8
-.extern MOD06_02244F18
-.extern MOD06_02244F24
-.extern MOD06_02244F2C
-.extern MOD06_02245088
-.extern MOD06_02245114
-.extern MOD06_02245190
-.extern MOD06_02245198
-.extern MOD06_022451F0
-.extern MOD06_022451F4
-.extern MOD06_0224525C
-.extern MOD06_02245340
-.extern MOD06_022456E8
-.extern MOD06_022457A8
-.extern MOD06_022457CC
-.extern MOD06_022457F8
-.extern MOD06_02245824
-.extern MOD06_0224582C
-.extern MOD06_02245844
-.extern MOD06_02245910
-.extern MOD06_02245FA0
-.extern MOD06_0224666C
-.extern MOD06_022466A0
-.extern MOD06_022466AC
-.extern MOD06_02247544
-.extern MOD06_02247808
-.extern MOD06_022483BC
-.extern MOD06_022483E0
-.extern MOD06_022483EC
-.extern MOD06_02248724
-.extern MOD06_0224884C
-.extern MOD06_022488CC
-.extern MOD06_022488EC
-.extern MOD06_022488F4
-.extern MOD06_022488FC
-.extern MOD06_0224891C
-.extern MOD06_02248B54
-.extern MOD06_02248B58
-.extern MOD06_02248B5C
-.extern MOD06_02248B60
-.extern MOD06_02248B6C
-.extern MOD06_02248CC0
-.extern MOD06_02248CD0
-.extern MOD06_02248F70
-.extern MOD06_02248FE0
-.extern MOD06_02249038
-.extern MOD06_022490A0
-.extern MOD06_022491FC
-.extern MOD06_02249508
-.extern MOD06_02249668
-.extern MOD06_022497E8
-.extern MOD06_02249B7C
-.extern MOD06_02249E6C
-.extern MOD06_02249E78
-.extern MOD06_02249E84
-.extern MOD06_02249E90
-.extern MOD06_0224A130
-.extern MOD06_0224A310
-.extern MOD06_0224A528
-.extern MOD06_0224A6B8
-.extern MOD06_0224A6FC
-.extern MOD06_0224A7C8
-.extern MOD06_0224A8D4
-.extern MOD06_0224AA40
-.extern MOD06_0224ABAC
-.extern MOD06_0224ADF8
-.extern MOD06_0224AEE8
-.extern MOD06_0224AF68
-.extern MOD06_0224B124
-.extern MOD06_0224B2C4
-.extern MOD06_0224B568
-.extern MOD06_0224B818
-.extern MOD06_0224B86C
-.extern MOD06_0224B9E0
-.extern MOD06_0224BBEC
-.extern MOD06_0224BD90
-.extern MOD06_0224C038
-.extern MOD06_0224C24C
-.extern MOD06_0224C27C
-.extern MOD06_0224C520
-.extern MOD06_0224C678
-.extern MOD06_0224C6E8
-.extern MOD06_0224C6F4
-.extern MOD06_0224C700
-.extern MOD06_0224C8C8
-.extern MOD06_0224C8E8
-.extern MOD06_0224CA58
-.extern MOD06_0224CA88
-.extern MOD06_0224CB30
-.extern MOD06_0224CBB0
-.extern MOD06_0224CC24
-.extern MOD06_0224CECC
-.extern MOD06_0224D14C
-.extern MOD06_0224D2E0
-.extern MOD06_0224D3E8
-.extern MOD06_0224D70C
-.extern MOD06_0224D76C
-.extern MOD06_0224D79C
-.extern MOD06_0224E554
-.extern MOD06_0224E764
-.extern MOD06_0224E7C4
-.extern MOD06_0224ED94
-.extern MOD06_0224EDA8
-.extern MOD06_0224F0BC
-.extern MOD06_0224F0D0
-.extern MOD06_0224F12C
-.extern MOD07_02211E60
-.extern MOD08_02211E7C
-.extern MOD08_02211F5C
-.extern MOD08_02211FF0
-.extern MOD08_02212024
-.extern MOD08_02212048
-.extern MOD08_02212384
-.extern MOD08_022123A0
-.extern MOD08_022123B0
-.extern MOD08_022156C0
-.extern MOD08_0221590C
-.extern MOD08_02215918
-.extern MOD08_0221594C
-.extern MOD08_02215988
-.extern MOD08_02215A44
-.extern MOD08_02217E80
-.extern MOD08_02217ECC
-.extern MOD08_02217F08
-.extern MOD08_02228218
-.extern MOD08_02228524
-.extern MOD08_02228570
-.extern MOD08_02228574
-.extern MOD08_022285A4
-.extern MOD08_022285B4
-.extern MOD08_02228618
-.extern MOD08_02228AB8
-.extern MOD08_02228AC0
-.extern MOD08_02229918
-.extern MOD08_022299E8
-.extern MOD08_02229A00
-.extern MOD08_02229A2C
-.extern MOD08_02229A5C
-.extern MOD08_02229A80
-.extern MOD08_02229FE4
-.extern MOD08_02229FF0
-.extern MOD08_0222A008
-.extern MOD08_0222A00C
-.extern MOD08_0222A018
-.extern MOD08_0222A024
-.extern MOD08_0222A02C
-.extern MOD08_0222A0D4
-.extern MOD08_0222A110
-.extern MOD08_0222A14C
-.extern MOD08_0222A170
-.extern MOD08_0222A1DC
-.extern MOD08_0222A204
-.extern MOD08_0222A494
-.extern MOD08_0222A568
-.extern MOD08_0222A6A4
-.extern MOD08_0222A6C8
-.extern MOD09_022186F0
-.extern MOD11_0222D5C0
-.extern MOD11_0222FF68
-.extern MOD11_0222FF74
-.extern MOD11_0222FF78
-.extern MOD11_0222FF84
-.extern MOD11_0222FF88
-.extern MOD11_0222FFC8
-.extern MOD11_02230014
-.extern MOD11_02230078
-.extern MOD11_02230080
-.extern MOD11_022300CC
-.extern MOD11_022300D4
-.extern MOD11_022300DC
-.extern MOD11_022300E8
-.extern MOD11_022300F4
-.extern MOD11_02230100
-.extern MOD11_0223010C
-.extern MOD11_02230118
-.extern MOD11_02230124
-.extern MOD11_02230188
-.extern MOD11_02230214
-.extern MOD11_02230218
-.extern MOD11_0223022C
-.extern MOD11_02230260
-.extern MOD11_02230270
-.extern MOD11_02230290
-.extern MOD11_022302BC
-.extern MOD11_02230370
-.extern MOD11_02230E44
-.extern MOD11_02230E54
-.extern MOD11_02231238
-.extern MOD11_022312D0
-.extern MOD11_02231344
-.extern MOD11_02231350
-.extern MOD11_0223135C
-.extern MOD11_02231368
-.extern MOD11_02231374
-.extern MOD11_02231504
-.extern MOD11_02231534
-.extern MOD11_02231678
-.extern MOD11_02243420
-.extern MOD11_02244248
-.extern MOD11_02245D38
-.extern MOD11_02246274
-.extern MOD11_022465A0
-.extern MOD11_02246870
-.extern MOD11_02246B9C
-.extern MOD11_02246D1C
-.extern MOD11_022473F8
-.extern MOD11_022476C0
-.extern MOD11_022482A4
-.extern MOD11_02249D90
-.extern MOD11_02249E04
-.extern MOD11_02249E58
-.extern MOD11_0224B310
-.extern MOD11_0224C12C
-.extern MOD11_0224C474
-.extern MOD11_0224CA94
-.extern MOD11_02252DB4
-.extern MOD11_022567E0
-.extern MOD11_0225D3EC
-.extern MOD11_0225D45C
-.extern MOD11_0225D484
-.extern MOD11_0225D508
-.extern MOD11_0225D5DC
-.extern MOD11_0225D648
-.extern MOD11_0225D6A4
-.extern MOD11_0225D714
-.extern MOD11_0225D73C
-.extern MOD11_0225D7B8
-.extern MOD11_0225D800
-.extern MOD11_0225D80C
-.extern MOD11_0225D820
-.extern MOD11_0225D824
-.extern MOD12_0222D5C0
-.extern MOD12_0222D89C
-.extern MOD12_0222D9B0
-.extern MOD12_0222EF04
-.extern MOD12_0222F19C
-.extern MOD12_0222F324
-.extern MOD12_0222F990
-.extern MOD12_0222FE4C
-.extern MOD12_02230128
-.extern MOD12_0223023C
-.extern MOD12_02233560
-.extern MOD12_0223D1CC
-.extern MOD12_0223E734
-.extern MOD12_02241210
-.extern MOD12_02241490
-.extern MOD12_022415A8
-.extern MOD13_02213174
-.extern MOD13_02213270
-.extern MOD13_022132CC
-.extern MOD13_02213368
-.extern MOD13_02213944
-.extern MOD13_02213CB0
-.extern MOD13_0221411C
-.extern MOD13_02214D6C
-.extern MOD13_02214F18
-.extern MOD13_02215028
-.extern MOD13_02215360
-.extern MOD13_02215474
-.extern MOD13_02219798
-.extern MOD13_02219C9C
-.extern MOD13_02219D58
-.extern MOD13_0221A794
-.extern MOD13_0221A7EC
-.extern MOD13_0221A8A4
-.extern MOD13_02223494
-.extern MOD15_021D74E0
-.extern MOD15_021D7558
-.extern MOD15_021D7608
-.extern MOD16_021EEF0C
-.extern MOD16_021EEF84
-.extern MOD16_021EEF98
-.extern MOD16_021EFBF4
-.extern MOD16_021EFD8C
-.extern MOD16_021F45A4
-.extern MOD16_021F4698
-.extern MOD16_021F4A30
-.extern MOD17_021D83E4
-.extern MOD17_021D84F0
-.extern MOD17_021D8738
-.extern MOD17_021D8818
-.extern MOD17_021D8998
-.extern MOD17_021D8C9C
-.extern MOD17_021DB7E8
-.extern MOD17_021DB858
-.extern MOD17_021DD4F4
-.extern MOD17_021DD518
-.extern MOD17_021DD540
-.extern MOD17_021DD58C
-.extern MOD17_021DD594
-.extern MOD17_021DD59C
-.extern MOD17_021DD604
-.extern MOD17_021DD620
-.extern MOD17_021DD678
-.extern MOD17_021DD6B8
-.extern MOD17_021DD6CC
-.extern MOD17_021DDB58
-.extern MOD17_021DDC30
-.extern MOD17_021DDCF4
-.extern MOD18_02239F34
-.extern MOD18_0223A058
-.extern MOD18_0223A0EC
-.extern MOD18_0223A120
-.extern MOD18_0223A138
-.extern MOD18_0223A150
-.extern MOD18_0223A154
-.extern MOD18_0223A184
-.extern MOD18_0223C884
-.extern MOD18_0223C910
-.extern MOD18_0223C9B4
-.extern MOD18_0223CACC
-.extern MOD18_0223CB08
-.extern MOD18_0223CE68
-.extern MOD18_0223D638
-.extern MOD18_0223D648
-.extern MOD18_0223D8F4
-.extern MOD18_0223DA98
-.extern MOD18_0223DAC4
-.extern MOD18_0223DAF4
-.extern MOD18_0223DC98
-.extern MOD18_0223DCB4
-.extern MOD18_0223DCD0
-.extern MOD18_0223DD74
-.extern MOD18_0223DD78
-.extern MOD18_0223E060
-.extern MOD18_0223E118
-.extern MOD18_0223E154
-.extern MOD18_0223E1A4
-.extern MOD18_0223E1E0
-.extern MOD18_0223E2AC
-.extern MOD18_0223E2C4
-.extern MOD18_0223E2DC
-.extern MOD18_0223E4A8
-.extern MOD18_0223E4BC
-.extern MOD18_0223E4D4
-.extern MOD18_0223E554
-.extern MOD18_0223E660
-.extern MOD18_0223E6B8
-.extern MOD18_0223E7FC
-.extern MOD18_0223E82C
-.extern MOD18_0223E854
-.extern MOD18_0223E858
-.extern MOD18_0223EB8C
-.extern MOD18_0223ECEC
-.extern MOD18_0223EF7C
-.extern MOD18_0223EF98
-.extern MOD18_0223F0C4
-.extern MOD18_0223F360
-.extern MOD18_0223F404
-.extern MOD18_0223F424
-.extern MOD18_0223F428
-.extern MOD18_0223F4A8
-.extern MOD18_0223F4D4
-.extern MOD18_0223F4D8
-.extern MOD18_0223F4F4
-.extern MOD18_0223F508
-.extern MOD18_0223F5C8
-.extern MOD18_0223F5CC
-.extern MOD18_0223F778
-.extern MOD18_0223F8D8
-.extern MOD18_0223F918
-.extern MOD18_0223FA74
-.extern MOD18_0223FAA8
-.extern MOD18_0223FB08
-.extern MOD18_0223FCE8
-.extern MOD18_02240898
-.extern MOD18_0224089C
-.extern MOD18_022408FC
-.extern MOD18_02240944
-.extern MOD18_022409D0
-.extern MOD18_02240A44
-.extern MOD18_02240B24
-.extern MOD18_02240C74
-.extern MOD18_02240D2C
-.extern MOD18_02240D98
-.extern MOD18_02244824
-.extern MOD18_0224484C
-.extern MOD18_02244D1C
-.extern MOD18_02244D20
-.extern MOD18_02244D3C
-.extern MOD18_02244D40
-.extern MOD18_02244D58
-.extern MOD18_02244D98
-.extern MOD18_02244DA0
-.extern MOD18_022452A4
-.extern MOD18_02245324
-.extern MOD18_02245358
-.extern MOD18_02245438
-.extern MOD18_0224548C
-.extern MOD18_022454B8
-.extern MOD18_022454BC
-.extern MOD18_02245524
-.extern MOD18_0224566C
-.extern MOD18_02245E8C
-.extern MOD18_02245E90
-.extern MOD18_02245F1C
-.extern MOD18_02245F28
-.extern MOD18_02245F4C
-.extern MOD18_02245FE0
-.extern MOD18_02246108
-.extern MOD18_022461A0
-.extern MOD18_022461A4
-.extern MOD18_022461B8
-.extern MOD18_02246250
-.extern MOD18_02246308
-.extern MOD18_02246AF8
-.extern MOD18_02246AFC
-.extern MOD18_02246C94
-.extern MOD18_02246F1C
-.extern MOD18_02247248
-.extern MOD18_02247278
-.extern MOD18_02247294
-.extern MOD18_022472AC
-.extern MOD18_02247414
-.extern MOD18_02247428
-.extern MOD18_02247470
-.extern MOD18_02247614
-.extern MOD18_02247728
-.extern MOD18_02247830
-.extern MOD18_02247970
-.extern MOD18_02247A34
-.extern MOD18_02248DF8
-.extern MOD18_02248E6C
-.extern MOD18_02248E78
-.extern MOD18_02248E84
-.extern MOD18_02248EB4
-.extern MOD18_02248EF0
-.extern MOD18_02248EF4
-.extern MOD18_02248F00
-.extern MOD18_02248F74
-.extern MOD18_02248F78
-.extern MOD18_02248F84
-.extern MOD18_02248FC4
-.extern MOD18_022494C8
-.extern MOD18_0224B128
-.extern MOD18_0224B18C
-.extern MOD18_0224BF18
-.extern MOD18_0224BF34
-.extern MOD18_0224CA2C
-.extern MOD18_0224CA54
-.extern MOD18_0224CAA0
-.extern MOD18_0224CAB4
-.extern MOD18_0224D734
-.extern MOD18_0224D744
-.extern MOD18_0224DCB8
-.extern MOD18_0224DD94
-.extern MOD18_0224DDB8
-.extern MOD19_02252440
-.extern MOD19_022524F4
-.extern MOD19_02252504
-.extern MOD20_02252448
-.extern MOD20_022524BC
-.extern MOD20_022524D0
-.extern MOD20_022524DC
-.extern MOD20_02252534
-.extern MOD20_02252538
-.extern MOD20_02252978
-.extern MOD20_0225298C
-.extern MOD20_022529A0
-.extern MOD20_022529B4
-.extern MOD20_02252B28
-.extern MOD20_02252B48
-.extern MOD20_02252B68
-.extern MOD20_02252BB8
-.extern MOD20_02252C08
-.extern MOD20_02252C14
-.extern MOD20_02252C30
-.extern MOD20_02252C34
-.extern MOD20_02252C38
-.extern MOD20_02252C3C
-.extern MOD20_02252C40
-.extern MOD20_02252D24
-.extern MOD20_02252D34
-.extern MOD20_02252D7C
-.extern MOD20_02252DB4
-.extern MOD20_02252DEC
-.extern MOD20_022536F4
-.extern MOD20_02253794
-.extern MOD20_022537B8
-.extern MOD20_022537E0
-.extern MOD20_02253888
-.extern MOD20_022538A0
-.extern MOD20_022538A4
-.extern MOD20_022538A8
-.extern MOD20_022538AC
-.extern MOD20_022538B0
-.extern MOD20_022538B8
-.extern MOD20_022538BC
-.extern MOD20_0225396C
-.extern MOD20_022539C4
-.extern MOD20_02253A04
-.extern MOD20_02253AA4
-.extern MOD20_02253E74
-.extern MOD20_02253F14
-.extern MOD20_02253F28
-.extern MOD20_02253F44
-.extern MOD20_02253F64
-.extern MOD20_02253F6C
-.extern MOD20_02253F78
-.extern MOD20_02253F80
-.extern MOD20_02253F9C
-.extern MOD20_02253FA4
-.extern MOD20_02253FAC
-.extern MOD20_02253FB4
-.extern MOD20_02253FBC
-.extern MOD20_02254014
-.extern MOD20_02254130
-.extern MOD20_02254198
-.extern MOD20_022542AC
-.extern MOD20_022542C0
-.extern MOD20_02254420
-.extern MOD20_02254460
-.extern MOD20_02254488
-.extern MOD51_02254A68
-.extern MOD51_02254AB8
-.extern MOD53_021D8B64
-.extern MOD53_021D917C
-.extern MOD54_021D844C
-.extern MOD54_021D88E4
-.extern MOD54_021D89CC
-.extern MOD54_021D8C24
-.extern MOD56_02212084
-.extern MOD56_02212164
-.extern MOD56_02212240
-.extern MOD56_0221244C
-.extern MOD59_021D74E0
-.extern MOD59_021D7564
-.extern MOD59_021D76C0
-.extern MOD61_021D74E0
-.extern MOD61_021D7550
-.extern MOD61_021D7568
-.extern MOD62_0222DAEC
-.extern MOD62_0222DD1C
-.extern MOD62_0222DD38
-.extern MOD62_0222E2BC
-.extern MOD62_0222E360
-.extern MOD62_0222E3A0
-.extern MOD62_0222E7E8
-.extern MOD62_0222E874
-.extern MOD62_0222ED34
-.extern MOD62_0222EDBC
-.extern MOD62_0222F7E0
-.extern MOD62_022300E4
-.extern MOD62_02230F3C
-.extern MOD62_02230F70
-.extern MOD62_02230F80
-.extern MOD65_021D74E0
-.extern MOD65_021D7524
-.extern MOD65_021D753C
-.extern MOD65_021D8A08
-.extern MOD65_021D8A40
-.extern MOD65_021D8BBC
-.extern MOD68_021D74E0
-.extern MOD68_021D75D8
-.extern MOD68_021D762C
-.extern MOD69_0222EC60
-.extern MOD71_0222D5C0
-.extern MOD71_0222D9C8
-.extern MOD71_0222E438
-.extern MOD71_0222F440
-.extern MOD71_0222F480
-.extern MOD73_021D74F0
-.extern MOD73_021D758C
-.extern MOD73_021D7640
-.extern MOD73_021D8EA8
-.extern MOD73_021D8EB4
-.extern MOD73_021D8EC0
-.extern MOD73_021D8EFC
-.extern MOD73_021D8F8C
-.extern MOD73_021D8FA8
-.extern MOD73_021D8FC8
-.extern MOD73_021D8FE0
-.extern MOD73_021D9000
-.extern MOD73_021D907C
-.extern MOD73_021D9080
-.extern MOD73_021D9084
-.extern MOD73_021D9088
-.extern MOD73_021D908C
-.extern MOD73_021D9090
-.extern MOD75_021E6BA0
-.extern MOD75_021E6D6C
-.extern MOD75_021E6F00
-.extern MOD79_022122E4
-.extern MOD79_02212308
-.extern MOD79_022123A8
-.extern MOD79_02212474
-.extern MOD79_02212480
-.extern MOD79_02213B08
-.extern MOD79_02213D80
-.extern MOD79_02213DBC
-.extern MOD79_02213E24
-.extern MOD81_02237E40
-.extern MOD81_02238004
-.extern MOD81_02238064
-.extern MTX_Concat33
-.extern MTX_Concat43
-.extern MTX_Concat44
-.extern MTX_Copy43To44_
-.extern MTX_Copy44To43_
-.extern MTX_Identity22_
-.extern MTX_Identity33_
-.extern MTX_Identity43_
-.extern MTX_Identity44_
-.extern MTX_Inverse43
-.extern MTX_MultVec33
-.extern MTX_MultVec43
-.extern MTX_Rot22_
-.extern MTX_RotX33_
-.extern MTX_RotX43_
-.extern MTX_RotX44_
-.extern MTX_RotY33_
-.extern MTX_RotY43_
-.extern MTX_RotY44_
-.extern MTX_RotZ33_
-.extern MTX_RotZ44_
-.extern MTX_Scale43_
-.extern MTX_ScaleApply22
-.extern MTX_ScaleApply33
-.extern MTX_ScaleApply43
-.extern MTX_TransApply44
-.extern NitroMain
-.extern OS_AllocFromArenaHi
-.extern OS_AllocFromArenaLo
-.extern OS_AllocFromHeap
-.extern OS_CancelAlarm
-.extern OS_CreateAlarm
-.extern OS_CreateThread
-.extern OS_DestroyThread
-.extern OS_DisableInterrupts
-.extern OS_DisableInterrupts_IrqAndFiq
-.extern OS_DisableIrqMask
-.extern OS_DisableProtectionUnit
-.extern OS_DisableScheduler
-.extern OS_EnableInterrupts
-.extern OS_EnableIrqMask
-.extern OS_EnableProtectionUnit
-.extern OS_EnableScheduler
-.extern OS_ExitThread
-.extern OS_FreeToHeap
-.extern OS_GetConsoleType
-.extern OS_GetCpsrIrq
-.extern OS_GetDTCMAddress
-.extern OS_GetInitArenaHi
-.extern OS_GetInitArenaLo
-.extern OS_GetIrqFunction
-.extern OS_GetLockID
-.extern OS_GetLowEntropyData
-.extern OS_GetMacAddress
-.extern OS_GetOwnerInfo
-.extern OS_GetOwnerRtcOffset
-.extern OS_GetProcMode
-.extern OS_GetThreadPriority
-.extern OS_GetTick
-.extern OS_GetTickLo
-.extern OS_Halt
-.extern OS_IRQTable
-.extern OS_Init
-.extern OS_InitAlarm
-.extern OS_InitArena
-.extern OS_InitArenaEx
-.extern OS_InitContext
-.extern OS_InitException
-.extern OS_InitIrqTable
-.extern OS_InitLock
-.extern OS_InitMessageQueue
-.extern OS_InitMutex
-.extern OS_InitReset
-.extern OS_InitThread
-.extern OS_InitTick
-.extern OS_InitVAlarm
-.extern OS_IrqDummy
-.extern OS_IrqHandler
-.extern OS_IsAlarmAvailable
-.extern OS_IsRunOnEmulator
-.extern OS_IsThreadAvailable
-.extern OS_IsThreadTerminated
-.extern OS_IsTickAvailable
-.extern OS_JamMessage
-.extern OS_JoinThread
-.extern OS_LoadContext
-.extern OS_LockCartridge
-.extern OS_LockMutex
-.extern OS_ReadMessage
-.extern OS_ReadOwnerOfLockWord
-.extern OS_ReceiveMessage
-.extern OS_ReleaseLockID
-.extern OS_RescheduleThread
-.extern OS_ResetRequestIrqMask
-.extern OS_ResetSystem
-.extern OS_RestoreInterrupts
-.extern OS_RestoreInterrupts_IrqAndFiq
-.extern OS_SNPrintf
-.extern OS_SPrintf
-.extern OS_SaveContext
-.extern OS_SendMessage
-.extern OS_SetAlarm
-.extern OS_SetArenaHi
-.extern OS_SetArenaLo
-.extern OS_SetDPermissionsForProtectionRegion
-.extern OS_SetIrqFunction
-.extern OS_SetIrqMask
-.extern OS_SetIrqStackChecker
-.extern OS_SetProtectionRegion1
-.extern OS_SetProtectionRegion2
-.extern OS_SetThreadPriority
-.extern OS_Sleep
-.extern OS_SleepThread
-.extern OS_SpinWait
-.extern OS_Terminate
-.extern OS_TryLockByWord
-.extern OS_TryLockCard
-.extern OS_TryLockCartridge
-.extern OS_TryLockMutex
-.extern OS_UnLockCartridge
-.extern OS_UnlockByWord
-.extern OS_UnlockCard
-.extern OS_UnlockCartridge
-.extern OS_UnlockMutex
-.extern OS_WaitIrq
-.extern OS_WaitVBlankIntr
-.extern OS_WakeupThread
-.extern OS_WakeupThreadDirect
-.extern OS_YieldThread
-.extern OSi_AlarmQueue
-.extern OSi_CurrentThreadPtr
-.extern OSi_DebuggerHandler
-.extern OSi_DoBoot
-.extern OSi_DoLockByWord
-.extern OSi_DoResetSystem
-.extern OSi_DoTryLockByWord
-.extern OSi_DoUnlockByWord
-.extern OSi_EnterDmaCallback
-.extern OSi_EnterTimerCallback
-.extern OSi_ExContext
-.extern OSi_HeapInfo
-.extern OSi_IdleThread
-.extern OSi_IdleThreadStack
-.extern OSi_InitVramExclusive
-.extern OSi_Initialized
-.extern OSi_IrqCallbackInfo
-.extern OSi_IrqCallbackInfoIndex
-.extern OSi_IrqDma0
-.extern OSi_IrqDma1
-.extern OSi_IrqDma2
-.extern OSi_IrqDma3
-.extern OSi_IrqThreadQueue
-.extern OSi_IrqTimer0
-.extern OSi_IrqTimer1
-.extern OSi_IrqTimer2
-.extern OSi_IrqTimer3
-.extern OSi_IsInitReset
-.extern OSi_IsResetOccurred
-.extern OSi_IsThreadInitialized
-.extern OSi_LauncherThread
-.extern OSi_MainExArenaEnabled
-.extern OSi_NeedResetTimer
-.extern OSi_PreviousVCount
-.extern OSi_ReadCardRom32
-.extern OSi_ReferSymbol
-.extern OSi_ReloadRomData
-.extern OSi_RemoveMutexLinkFromQueue
-.extern OSi_RescheduleCount
-.extern OSi_SetTimerReserved
-.extern OSi_StackForDestructor
-.extern OSi_SystemCallbackInSwitchThread
-.extern OSi_ThreadIdCount
-.extern OSi_ThreadInfo
-.extern OSi_TickCounter
-.extern OSi_TimerReserved
-.extern OSi_TryLockVram
-.extern OSi_UnlockAllMutex
-.extern OSi_UnlockVram
-.extern OSi_UseAlarm
-.extern OSi_UseTick
-.extern OSi_UseVAlarm
-.extern OSi_UserExceptionHandler
-.extern OSi_UserExceptionHandlerArg
-.extern OSi_VAlarmQueue
-.extern OSi_VFrameCount
-.extern OSi_vramExclusive
-.extern OSi_vramLockId
-.extern PM_AppendPostSleepCallback
-.extern PM_DeletePostSleepCallback
-.extern PM_DeletePreSleepCallback
-.extern PM_ForceToPowerOff
-.extern PM_GetBackLight
-.extern PM_GetLCDPower
-.extern PM_GetLEDPattern
-.extern PM_GoSleepMode
-.extern PM_Init
-.extern PM_PrependPreSleepCallback
-.extern PM_SetAmp
-.extern PM_SetAmpGain
-.extern PM_SetBackLight
-.extern PM_SetLCDPower
-.extern PMi_Lock
-.extern PMi_ReadRegister
-.extern PMi_SendLEDPatternCommand
-.extern PMi_SendPxiData
-.extern PMi_SendSleepStart
-.extern PMi_SetLED
-.extern PMi_SetLEDAsync
-.extern PMi_WaitBusy
-.extern PXI_Init
-.extern PXI_InitFifo
-.extern PXI_IsCallbackReady
-.extern PXI_SendWordByFifo
-.extern PXI_SetFifoRecvCallback
-.extern PXIi_HandlerRecvFifoNotEmpty
-.extern ProcessBlock
-.extern RTC_ConvertDateTimeToSecond
-.extern RTC_ConvertDateToDay
-.extern RTC_ConvertDayToDate
-.extern RTC_ConvertSecondToDateTime
-.extern RTC_GetDate
-.extern RTC_GetDateTimeAsync
-.extern RTC_GetDayOfWeek
-.extern RTC_GetTime
-.extern RTC_Init
-.extern RTCi_ReadRawDateAsync
-.extern RTCi_ReadRawDateTimeAsync
-.extern RTCi_ReadRawTimeAsync
-.extern RTCi_WriteRawStatus2Async
-.extern RunScriptCommand
-.extern SDK_AUTOLOAD_DTCM_END
-.extern SDK_AUTOLOAD_DTCM_START
-.extern SDK_AUTOLOAD_ITCM_END
-.extern SDK_AUTOLOAD_ITCM_START
-.extern SDK_AUTOLOAD_LIST
-.extern SDK_AUTOLOAD_LIST_END
-.extern SDK_AUTOLOAD_START
-.extern SDK_IRQ_STACKSIZE
-.extern SDK_MAIN_ARENA_LO
-.extern SDK_OVERLAY_MODULE_00_ID
-.extern SDK_OVERLAY_MODULE_01_ID
-.extern SDK_OVERLAY_MODULE_02_ID
-.extern SDK_OVERLAY_MODULE_03_ID
-.extern SDK_OVERLAY_MODULE_04_ID
-.extern SDK_OVERLAY_MODULE_05_ID
-.extern SDK_OVERLAY_MODULE_06_ID
-.extern SDK_OVERLAY_MODULE_07_ID
-.extern SDK_OVERLAY_MODULE_08_ID
-.extern SDK_OVERLAY_MODULE_09_ID
-.extern SDK_OVERLAY_MODULE_10_ID
-.extern SDK_OVERLAY_MODULE_11_ID
-.extern SDK_OVERLAY_MODULE_12_ID
-.extern SDK_OVERLAY_MODULE_13_ID
-.extern SDK_OVERLAY_MODULE_14_ID
-.extern SDK_OVERLAY_MODULE_15_ID
-.extern SDK_OVERLAY_MODULE_16_ID
-.extern SDK_OVERLAY_MODULE_17_ID
-.extern SDK_OVERLAY_MODULE_18_ID
-.extern SDK_OVERLAY_MODULE_19_ID
-.extern SDK_OVERLAY_MODULE_20_ID
-.extern SDK_OVERLAY_MODULE_21_ID
-.extern SDK_OVERLAY_MODULE_22_ID
-.extern SDK_OVERLAY_MODULE_23_ID
-.extern SDK_OVERLAY_MODULE_24_ID
-.extern SDK_OVERLAY_MODULE_25_ID
-.extern SDK_OVERLAY_MODULE_26_ID
-.extern SDK_OVERLAY_MODULE_27_ID
-.extern SDK_OVERLAY_MODULE_28_ID
-.extern SDK_OVERLAY_MODULE_29_ID
-.extern SDK_OVERLAY_MODULE_30_ID
-.extern SDK_OVERLAY_MODULE_31_ID
-.extern SDK_OVERLAY_MODULE_32_ID
-.extern SDK_OVERLAY_MODULE_33_ID
-.extern SDK_OVERLAY_MODULE_34_ID
-.extern SDK_OVERLAY_MODULE_35_ID
-.extern SDK_OVERLAY_MODULE_36_ID
-.extern SDK_OVERLAY_MODULE_37_ID
-.extern SDK_OVERLAY_MODULE_38_ID
-.extern SDK_OVERLAY_MODULE_39_ID
-.extern SDK_OVERLAY_MODULE_40_ID
-.extern SDK_OVERLAY_MODULE_41_ID
-.extern SDK_OVERLAY_MODULE_42_ID
-.extern SDK_OVERLAY_MODULE_43_ID
-.extern SDK_OVERLAY_MODULE_44_ID
-.extern SDK_OVERLAY_MODULE_45_ID
-.extern SDK_OVERLAY_MODULE_46_ID
-.extern SDK_OVERLAY_MODULE_47_ID
-.extern SDK_OVERLAY_MODULE_48_ID
-.extern SDK_OVERLAY_MODULE_49_ID
-.extern SDK_OVERLAY_MODULE_50_ID
-.extern SDK_OVERLAY_MODULE_51_ID
-.extern SDK_OVERLAY_MODULE_52_ID
-.extern SDK_OVERLAY_MODULE_53_ID
-.extern SDK_OVERLAY_MODULE_54_ID
-.extern SDK_OVERLAY_MODULE_55_ID
-.extern SDK_OVERLAY_MODULE_56_ID
-.extern SDK_OVERLAY_MODULE_57_ID
-.extern SDK_OVERLAY_MODULE_58_ID
-.extern SDK_OVERLAY_MODULE_59_ID
-.extern SDK_OVERLAY_MODULE_60_ID
-.extern SDK_OVERLAY_MODULE_61_ID
-.extern SDK_OVERLAY_MODULE_62_ID
-.extern SDK_OVERLAY_MODULE_63_ID
-.extern SDK_OVERLAY_MODULE_64_ID
-.extern SDK_OVERLAY_MODULE_65_ID
-.extern SDK_OVERLAY_MODULE_66_ID
-.extern SDK_OVERLAY_MODULE_67_ID
-.extern SDK_OVERLAY_MODULE_68_ID
-.extern SDK_OVERLAY_MODULE_69_ID
-.extern SDK_OVERLAY_MODULE_70_ID
-.extern SDK_OVERLAY_MODULE_71_ID
-.extern SDK_OVERLAY_MODULE_72_ID
-.extern SDK_OVERLAY_MODULE_73_ID
-.extern SDK_OVERLAY_MODULE_74_ID
-.extern SDK_OVERLAY_MODULE_75_ID
-.extern SDK_OVERLAY_MODULE_76_ID
-.extern SDK_OVERLAY_MODULE_77_ID
-.extern SDK_OVERLAY_MODULE_78_ID
-.extern SDK_OVERLAY_MODULE_79_ID
-.extern SDK_OVERLAY_MODULE_80_ID
-.extern SDK_OVERLAY_MODULE_81_ID
-.extern SDK_OVERLAY_MODULE_82_ID
-.extern SDK_OVERLAY_MODULE_83_ID
-.extern SDK_OVERLAY_MODULE_84_ID
-.extern SDK_OVERLAY_MODULE_85_ID
-.extern SDK_OVERLAY_MODULE_86_ID
-.extern SDK_SECTION_ARENA_DTCM_START
-.extern SDK_SECTION_ARENA_EX_START
-.extern SDK_SECTION_ARENA_ITCM_START
-.extern SDK_STATIC_BSS_END
-.extern SDK_STATIC_BSS_START
-.extern SDK_SYS_STACKSIZE
-.extern SND_AlarmInit
-.extern SND_AllocCommand
-.extern SND_AssignWaveArc
-.extern SND_CalcChannelVolume
-.extern SND_CommandInit
-.extern SND_DestroyBank
-.extern SND_DestroyWaveArc
-.extern SND_FlushCommand
-.extern SND_GetChannelStatus
-.extern SND_GetCurrentCommandTag
-.extern SND_GetFirstInstDataPos
-.extern SND_GetNextInstData
-.extern SND_GetPlayerStatus
-.extern SND_GetPlayerTickCounter
-.extern SND_GetWaveDataAddress
-.extern SND_GetWaveDataCount
-.extern SND_Init
-.extern SND_InvalidateBankData
-.extern SND_InvalidateSeqData
-.extern SND_InvalidateWaveData
-.extern SND_IsFinishedCommandTag
-.extern SND_LockChannel
-.extern SND_PauseSeq
-.extern SND_PrepareSeq
-.extern SND_PushCommand
-.extern SND_RecvCommandReply
-.extern SND_ResetMasterPan
-.extern SND_SetChannelPan
-.extern SND_SetChannelTimer
-.extern SND_SetChannelVolume
-.extern SND_SetMasterPan
-.extern SND_SetOutputSelector
-.extern SND_SetPlayerChannelPriority
-.extern SND_SetPlayerVolume
-.extern SND_SetTrackAllocatableChannel
-.extern SND_SetTrackPan
-.extern SND_SetTrackPitch
-.extern SND_SetWaveDataAddress
-.extern SND_SetupAlarm
-.extern SND_SetupCapture
-.extern SND_SetupChannelPcm
-.extern SND_StartPreparedSeq
-.extern SND_StartTimer
-.extern SND_StopSeq
-.extern SND_StopTimer
-.extern SND_UnlockChannel
-.extern SND_WaitForCommandProc
-.extern SNDi_CallAlarmHandler
-.extern SNDi_GetFinishedCommandTag
-.extern SNDi_IncAlarmId
-.extern SNDi_InitSharedWork
-.extern SNDi_LockMutex
-.extern SNDi_SetAlarmHandler
-.extern SNDi_UnlockMutex
-.extern SOCLSocketParamTCP
-.extern SOCLSocketParamUDPSend
-.extern SOCL_Accept
-.extern SOCL_Bind
-.extern SOCL_CalmDown
-.extern SOCL_Cleanup
-.extern SOCL_Close
-.extern SOCL_Connect
-.extern SOCL_CreateSocket
-.extern SOCL_EnableSsl
-.extern SOCL_GetHostID
-.extern SOCL_GetStatus
-.extern SOCL_InetAtoH
-.extern SOCL_IsClosed
-.extern SOCL_Listen
-.extern SOCL_Resolve
-.extern SOCL_SetResolver
-.extern SOCL_Shutdown
-.extern SOCL_SocketIsInTrash
-.extern SOCL_SocketIsInvalid
-.extern SOCL_Startup
-.extern SOCL_WriteTo
-.extern SOCLiCPSConfig
-.extern SOCLiConfigPtr
-.extern SOCLiDhcpState
-.extern SOCLiRequestedIP
-.extern SOCLiSocketList
-.extern SOCLiSocketListTrash
-.extern SOCLiUDPSendSocket
-.extern SOCLi_CleanupCommandPacketQueue
-.extern SOCLi_CommandPacketHandler
-.extern SOCLi_CreateCommandPacket
-.extern SOCLi_ExecCommandPacketInCtrlPipe
-.extern SOCLi_ExecCommandPacketInRecvPipe
-.extern SOCLi_ExecCommandPacketInSendPipe
-.extern SOCLi_FreeCommandPacket
-.extern SOCLi_GetWriteBufferFreeSize
-.extern SOCLi_ReadFrom
-.extern SOCLi_RoundUp4
-.extern SOCLi_SendCommandPacket
-.extern SOCLi_SendCommandPacketToCtrlPipe
-.extern SOCLi_SocketRegister
-.extern SOCLi_SocketRegisterTrash
-.extern SOCLi_SocketUnregister
-.extern SOCLi_SocketUnregisterTrash
-.extern SOCLi_StartupCommandPacketQueue
-.extern SOCLi_TrashSocket
-.extern SOCLi_UdpRecvCallback
-.extern SOC_Accept
-.extern SOC_Bind
-.extern SOC_Cleanup
-.extern SOC_Close
-.extern SOC_Connect
-.extern SOC_Fcntl
-.extern SOC_GetHostByAddr
-.extern SOC_GetHostID
-.extern SOC_GetResolver
-.extern SOC_GetSockName
-.extern SOC_InetAtoN
-.extern SOC_InetNtoA
-.extern SOC_Listen
-.extern SOC_Poll
-.extern SOC_Read
-.extern SOC_RecvFrom
-.extern SOC_Send
-.extern SOC_SendTo
-.extern SOC_Shutdown
-.extern SOC_Socket
-.extern SOC_Startup
-.extern SOC_U32to4U8
-.extern STD_CopyLString
-.extern SVC_CpuSet
-.extern SVC_GetCRC16
-.extern SVC_Sqrt
-.extern SVC_WaitByLoop
-.extern ScriptCall
-.extern ScriptJump
-.extern ScriptReadHalfword
-.extern ScriptReadWord
-.extern ScriptReturn
-.extern SetCustomAllocatorAndDestructor
-.extern SetupBytecodeScript
-.extern SetupNativeScript
-.extern StopScript
-.extern StringCopy
-.extern StringCopyN
-.extern StringFillEOS
-.extern StringLength
-.extern StringNotEqual
-.extern StringNotEqualN
-.extern TP_CheckError
-.extern TP_GetCalibratedPoint
-.extern TP_GetLatestIndexInAuto
-.extern TP_GetLatestRawPointInAuto
-.extern TP_GetUserInfo
-.extern TP_Init
-.extern TP_RequestAutoSamplingStartAsync
-.extern TP_RequestAutoSamplingStopAsync
-.extern TP_RequestSamplingAsync
-.extern TP_SetCalibrateParam
-.extern TP_WaitBusy
-.extern TP_WaitRawResult
-.extern UNK05_021F64C8
-.extern UNK05_021F9080
-.extern UNK05_021F9194
-.extern UNK05_021F9494
-.extern UNK63_021DBAB8
-.extern UNK_020FB6F8
-.extern UNK_020FB704
-.extern UNK_020FB710
-.extern UNK_020FB728
-.extern UNK_020FB740
-.extern UNK_020FB764
-.extern UNK_020FD144
-.extern UNK_021C8ECC
-.extern UNK_021C8ED0
-.extern UNK_021C8ED4
-.extern UNK_021C8ED8
-.extern UNK_021C8EDC
-.extern UNK_021C8EE0
-.extern UNK_021C8EE4
-.extern UNK_021C8EE8
-.extern UNK_021C8EEC
-.extern UNK_021C8EF0
-.extern UNK_021C8EF8
-.extern UNK_021C8EFC
-.extern UNK_021C8F00
-.extern UNK_021C8F04
-.extern UNK_021C8F08
-.extern UNK_021C8F0C
-.extern UNK_021C8F10
-.extern UNK_021C8F14
-.extern UNK_021C8F1C
-.extern UNK_021C8F5E
-.extern UNK_021C8F78
-.extern UNK_021C8F82
-.extern UNK_021C8FD8
-.extern UNK_021C903C
-.extern UNK_021C90A0
-.extern UNK_021C9160
-.extern UNK_021C9220
-.extern UNK_021C924A
-.extern UNK_021C93A0
-.extern UNK_021C9520
-.extern UNK_021C9EE0
-.extern Unk_0210683C
-.extern Unk_02106840
-.extern Unk_02106900
-.extern Unk_02106A00
-.extern Unk_02106A04
-.extern UNK_020FFA38
-.extern UNK_02105BB8
-.extern UNK_021064BC
-.extern UNK_021064C4
-.extern gUnknown21C48B8
-.extern UNK_021CED20
-.extern UNK_021CED98
-.extern UNK_021CEDD4
-.extern UNK_021CEF70
-.extern UnloadOverlayByID
-.extern VEC_Add
-.extern VEC_CrossProduct
-.extern VEC_DotProduct
-.extern VEC_Fx16Add
-.extern VEC_Fx16CrossProduct
-.extern VEC_Fx16DotProduct
-.extern VEC_Fx16Normalize
-.extern VEC_Mag
-.extern VEC_MultAdd
-.extern VEC_Normalize
-.extern VEC_Subtract
-.extern WCM_GetApMacAddress
-.extern WCM_SendDCFData
-.extern WCM_SetRecvDCFCallback
-.extern WM_Disable
-.extern WM_Disconnect
-.extern WM_Enable
-.extern WM_End
-.extern WM_EndDCF
-.extern WM_EndDataSharing
-.extern WM_EndKeySharing
-.extern WM_EndMP
-.extern WM_EndParent
-.extern WM_EndScan
-.extern WM_Finish
-.extern WM_GetAID
-.extern WM_GetAllowedChannel
-.extern WM_GetConnectedAIDs
-.extern WM_GetDispersionBeaconPeriod
-.extern WM_GetDispersionScanPeriod
-.extern WM_GetLinkLevel
-.extern WM_GetMPReceiveBufferSize
-.extern WM_GetMPSendBufferSize
-.extern WM_GetNextTgid
-.extern WM_GetOtherElements
-.extern WM_Init
-.extern WM_Initialize
-.extern WM_MeasureChannel
-.extern WM_PowerOff
-.extern WM_PowerOn
-.extern WM_ReadMPData
-.extern WM_ReadStatus
-.extern WM_Reset
-.extern WM_SetBeaconIndication
-.extern WM_SetDCFData
-.extern WM_SetEntry
-.extern WM_SetGameInfo
-.extern WM_SetIndCallback
-.extern WM_SetLifeTime
-.extern WM_SetMPDataToPortEx
-.extern WM_SetParentParameter
-.extern WM_SetPortCallback
-.extern WM_SetWEPKey
-.extern WM_SetWEPKeyEx
-.extern WM_SetWEPKeyEx2
-.extern WM_StartConnectEx
-.extern WM_StartDCF
-.extern WM_StartDataSharing
-.extern WM_StartKeySharing
-.extern WM_StartMP
-.extern WM_StartMPEx
-.extern WM_StartParent
-.extern WM_StartScan
-.extern WM_StartScanEx
-.extern WM_StepDataSharing
-.extern WMi_CheckIdle
-.extern WMi_CheckInitialized
-.extern WMi_CheckStateEx
-.extern WMi_GetMPReadyAIDs
-.extern WMi_GetStatusAddress
-.extern WMi_GetSystemWork
-.extern WMi_SendCommand
-.extern WMi_SendCommandDirect
-.extern WMi_SetCallbackTable
-.extern WMi_StartParentEx
-.extern _ExitProcess
-.extern __FileWrite
-.extern __StringWrite
-.extern __call_static_initializers
-.extern __close_console
-.extern __dec2num
-.extern __destroy_global_chain
-.extern __exit
-.extern __flush_all
-.extern __flush_buffer
-.extern __flush_line_buffered_output_files
-.extern __fread
-.extern __fwrite
-.extern __global_destructor_chain
-.extern __ieee754_pow
-.extern __load_buffer
-.extern __msl_assertion_failed
-.extern __num2dec_internal
-.extern __num2dec_internal2
-.extern __pformatter
-.extern __read_console
-.extern __rounddec
-.extern __sformatter
-.extern __str2dec
-.extern __strtold
-.extern __strtoul
-.extern __strtoull
-.extern __timesdec
-.extern __two_exp
-.extern __ull2dec
-.extern __wStringWrite
-.extern __wpformatter
-.extern __write_console
-.extern _d2f
-.extern _dadd
-.extern _ddiv
-.extern _deq
-.extern _dfix
-.extern _dflt
-.extern _dfltu
-.extern _dgr
-.extern _dleq
-.extern _dls
-.extern _dmul
-.extern _dneq
-.extern _drdiv
-.extern _drsb
-.extern _dsqrt
-.extern _dsub
-.extern _f2d
-.extern _fadd
-.extern _fdiv
-.extern _feq
-.extern _ffix
-.extern _ffixu
-.extern _fflt
-.extern _ffltu
-.extern _fgeq
-.extern _fgr
-.extern _fleq
-.extern _fls
-.extern _fmul
-.extern _fp_init
-.extern _frdiv
-.extern _frsb
-.extern _fseek
-.extern _fsub
-.extern _ll_mod
-.extern _ll_mul
-.extern _ll_sdiv
-.extern _ll_shl
-.extern _ll_udiv
-.extern _ll_ufrom_d
-.extern _s32_div_f
-.extern _u32_div_f
-.extern _u32_div_not_0_f
-.extern _ull_mod
-.extern abort
-.extern abs
-.extern atod
-.extern atol
-.extern cardi_common
-.extern disableBankForX_
-.extern double2hex
-.extern double2hex_wide
-.extern exit
-.extern fclose
-.extern fflush
-.extern float2str
-.extern float2str_wide
-.extern fread
-.extern frexp
-.extern fseek
-.extern ftell
-.extern gScriptCmdTable
-.extern getseed_LC
-.extern ldexp
-.extern long2str
-.extern long2str_wide
-.extern longlong2str
-.extern longlong2str_wide
-.extern mbstowcs
-.extern mbtowc
-.extern memcmp
-.extern memcpy
-.extern memmove
-.extern memset
-.extern nan
-.extern pool_initialized
-.extern pow
-.extern printf
-.extern qsort
-.extern raise
-.extern rand
-.extern rand_ALT
-.extern rand_LC
-.extern rand_MT
-.extern rewind
-.extern scalbn
-.extern seedr_LC
-.extern seedr_MT
-.extern snprintf
-.extern sprintf
-.extern srand
-.extern sscanf
-.extern strcat
-.extern strchr
-.extern strcmp
-.extern strcpy
-.extern strlen
-.extern strncat
-.extern strncmp
-.extern strncpy
-.extern strnicmp
-.extern strspn
-.extern strstr
-.extern strtold
-.extern strtold2
-.extern strtoul
-.extern swprintf
-.extern sys_exit
-.extern sys_readc
-.extern sys_writec
-.extern tempName_NNS_FndAllocFromExpHeapEx
-.extern tempName_NNS_FndCreateExpHeapEx
-.extern DWC_ClearDirtyFlag
-.extern DWC_CreateUserData
-.extern thunk_FUN_020adc8c
-.extern thunk_FUN_020adc8c_2
-.extern thunk_FUN_020ae84c
-.extern thunk_FUN_020afda0
-.extern thunk_FUN_020afda0_2
-.extern thunk_FUN_020b5040
-.extern vsnprintf
-.extern vsscanf
-.extern vswprintf
-.extern wcslen
-.extern wcstombs
-.extern wctomb
-.extern wmemcpy
-.extern WCMi_GetSystemWork
-.extern WCM_CompareBssID
-.extern WCMi_ResetKeepAliveAlarm
-.extern WCMi_CpsifSendNullPacket
-.extern WCMi_InitCpsif
-.extern WCMi_EntryApList
-.extern WCMi_CpsifRecvCallback
-.extern WCMi_ShelterRssi
-.extern DWC_Auth_GetId
-.extern DWC_BACKUPlCheckSsid
-.extern DWCi_BACKUPlInit
-.extern DWCi_BACKUPlSetWiFi
-.extern DWCi_BACKUPlWriteAll
-.extern DWCi_BM_SetWiFiInfo
-.extern DWC_Auth_CheckWiFiIDNeedCreate
+.extern CARD_CancelBackupAsync
+.extern CARD_CheckEnabled
+.extern CARD_GetResultCode
+.extern CARD_IdentifyBackup
+.extern CARD_Init
+.extern CARD_InitPulledOutCallback
+.extern CARD_IsPulledOut
+.extern CARD_LockBackup
+.extern CARD_LockRom
+.extern CARD_TryWaitBackupAsync
+.extern CARD_UnlockBackup
+.extern CARD_UnlockRom
+.extern CARD_WaitBackupAsync
+.extern CARDi_CheckPulledOutCore
+.extern CARDi_IdentifyBackupCore
+.extern CARDi_InitCommon
+.extern CARDi_OnFifoRecv
+.extern CARDi_ReadRom
+.extern CARDi_Request
+.extern CARDi_RequestStreamCommand
+.extern CARDi_SetTask
+.extern CARDi_TaskThread
+.extern CARDi_WaitAsync
+.extern CPSDnsIp
+.extern CPSGatewayIp
+.extern CPSMyIp
+.extern CPSNetMask
+.extern CPS_CalmDown
+.extern CPS_Cleanup
+.extern CPS_Resolve
+.extern CPS_SetRootCa
+.extern CPS_SetScavengerCallback
+.extern CPS_SetSsl
+.extern CPS_SetSslHandshakePriority
+.extern CPS_SetThreadPriority
+.extern CPS_SetUdpCallback
+.extern CPS_SocConsume
+.extern CPS_SocDatagramMode
+.extern CPS_SocDup
+.extern CPS_SocGetChar
+.extern CPS_SocGetEport
+.extern CPS_SocGetLength
+.extern CPS_SocPingMode
+.extern CPS_SocRead
+.extern CPS_SocRegister
+.extern CPS_SocRelease
+.extern CPS_SocUnRegister
+.extern CPS_SocUse
+.extern CPS_SocWho
+.extern CPS_SocWrite
+.extern CPS_SslAddRandomSeed
+.extern CPS_Startup
+.extern CPS_TcpClose
+.extern CPS_TcpConnect
+.extern CPS_TcpListen
+.extern CPS_TcpShutdown
+.extern CPSiAlloc
+.extern CPSiFree
+.extern CPSiRand32ctx
+.extern CPSi_RecvCallbackFunc
+.extern CPSi_SocConsumeRaw
+.extern CPSi_SslCleanup
+.extern CPSi_SslClose
+.extern CPSi_SslConnect
+.extern CPSi_SslConsume
+.extern CPSi_SslGetLength
+.extern CPSi_SslListen
+.extern CPSi_SslPeriodical
+.extern CPSi_SslRead
+.extern CPSi_SslShutdown
+.extern CPSi_SslWrite2
+.extern CPSi_TcpConnectRaw
+.extern CPSi_TcpListenRaw
+.extern CPSi_TcpReadRaw
+.extern CPSi_TcpShutdownRaw
+.extern CPSi_TcpWrite2Raw
+.extern CPSi_big_add
+.extern CPSi_big_div
+.extern CPSi_big_from_char
+.extern CPSi_big_montpower
+.extern CPSi_big_mult
+.extern CPSi_big_negate
+.extern CPSi_big_power
+.extern CPSi_big_sign
+.extern CPSi_big_sub
+.extern CPSi_char_from_big
+.extern CPSi_md5_calc
+.extern CPSi_md5_init
+.extern CPSi_md5_result
+.extern CPSi_rc4_crypt
+.extern CPSi_rc4_init
+.extern CPSi_sha1_calc
+.extern CPSi_sha1_init
+.extern CPSi_sha1_result
+.extern CPSi_sha1_result_prng
+.extern CPi_RestoreContext
+.extern CP_SaveContext
+.extern CTRDG_CpuCopy16
+.extern CTRDG_CpuCopy32
+.extern CTRDG_CpuCopy8
+.extern CTRDG_Enable
+.extern CTRDG_GetAgbGameCode
+.extern CTRDG_GetAgbMakerCode
+.extern CTRDG_IdentifyAgbBackup
+.extern CTRDG_Init
+.extern CTRDG_IsAgbCartridge
+.extern CTRDG_IsExisting
+.extern CTRDG_IsPulledOut
+.extern CTRDG_Read32
+.extern CTRDG_ReadAgbFlash
+.extern CTRDG_TerminateForPulledOut
+.extern CTRDG_WriteAndVerifyAgbFlashAsync
+.extern CTRDGi_ChangeLatestAccessCycle
+.extern CTRDGi_EraseFlashSectorLE
+.extern CTRDGi_InitCommon
+.extern CTRDGi_InitTaskThread
+.extern CTRDGi_LockByProcessor
+.extern CTRDGi_ProgramFlashByteLE
+.extern CTRDGi_ReadFlashID
+.extern CTRDGi_RestoreAccessCycle
+.extern CTRDGi_SendtoPxi
+.extern CTRDGi_SetFlashBankMx
+.extern CTRDGi_SetTask
+.extern CTRDGi_UnlockByProcessor
+.extern CallCustomAllocator
+.extern CallCustomDestructor
+.extern Call_FillMemWithValue
+.extern ConvertUIntToDecimalString
+.extern DC_FlushAll
+.extern DC_FlushRange
+.extern DC_InvalidateAll
+.extern DC_InvalidateRange
+.extern DC_StoreAll
+.extern DC_StoreRange
+.extern DC_WaitWriteBufferEmpty
+.extern DGT_Hash1GetDigest_R
+.extern DGT_Hash1Reset
+.extern DGT_Hash1SetSource
+.extern DGT_Hash2CalcHmac
+.extern DGT_Hash2GetDigest
+.extern DGT_Hash2Reset
+.extern DGT_Hash2SetSource
+.extern DGTi_Hash2CalcHmac
+.extern DGTi_hash2_arm4_small
+.extern ErrorHandling
+.extern FS_ChangeDir
+.extern FS_CloseFile
+.extern FS_ConvertPathToFileID
+.extern FS_FindArchive
+.extern FS_Init
+.extern FS_InitArchive
+.extern FS_InitFile
+.extern FS_IsAvailable
+.extern FS_LoadArchive
+.extern FS_LoadArchiveTables
+.extern FS_LoadOverlay
+.extern FS_LoadOverlayImage
+.extern FS_LoadOverlayImageAsync
+.extern FS_LoadOverlayInfo
+.extern FS_NotifyArchiveAsyncEnd
+.extern FS_OpenFile
+.extern FS_OpenFileDirect
+.extern FS_OpenFileFast
+.extern FS_ReadFile
+.extern FS_ReadFileAsync
+.extern FS_RegisterArchiveName
+.extern FS_ReleaseArchiveName
+.extern FS_ResumeArchive
+.extern FS_SeekFile
+.extern FS_SetArchiveProc
+.extern FS_SetDefaultDMA
+.extern FS_StartOverlay
+.extern FS_SuspendArchive
+.extern FS_TryLoadTable
+.extern FS_UnloadArchive
+.extern FS_UnloadArchiveTables
+.extern FS_UnloadOverlay
+.extern FS_WaitAsync
+.extern FSi_ExecuteSyncCommand
+.extern FSi_InitRom
+.extern FSi_ReleaseCommand
+.extern FSi_SendCommand
+.extern FSi_TranslateCommand
+.extern FUNRTC_Init
+.extern FUN_02000DF4
+.extern FUN_02000E7C
+.extern FUN_02000EE8
+.extern FUN_02000F18
+.extern FUN_02000FE8
+.extern FUN_020010A8
+.extern FUN_02001204
+.extern FUN_02001300
+.extern FUN_02001328
+.extern FUN_02001354
+.extern FUN_020013C8
+.extern FUN_020013E8
+.extern FUN_0200143C
+.extern FUN_02001448
+.extern FUN_0200145C
+.extern FUN_02001464
+.extern FUN_02001470
+.extern FUN_02001538
+.extern FUN_02001658
+.extern FUN_02001B80
+.extern FUN_02001B8C
+.extern FUN_02001C14
+.extern FUN_02001C34
+.extern FUN_02001C5C
+.extern FUN_02001C78
+.extern FUN_02001D2C
+.extern FUN_02001DDC
+.extern FUN_02001E5C
+.extern FUN_02001E60
+.extern FUN_020020EC
+.extern FUN_02002198
+.extern FUN_020021AC
+.extern FUN_020021CC
+.extern FUN_020021EC
+.extern FUN_02002218
+.extern FUN_020023C0
+.extern FUN_02002840
+.extern FUN_02002B60
+.extern FUN_02002B7C
+.extern FUN_02002BB8
+.extern FUN_02002BD4
+.extern FUN_02002BE4
+.extern FUN_02002BF4
+.extern FUN_02002C04
+.extern FUN_02002C14
+.extern FUN_02002C50
+.extern FUN_02002C84
+.extern FUN_02002CC0
+.extern FUN_02002CF8
+.extern FUN_02002D94
+.extern FUN_02002DB0
+.extern FUN_02002DE0
+.extern FUN_02002E14
+.extern FUN_02002E4C
+.extern FUN_02002ED0
+.extern FUN_02002EEC
+.extern FUN_02002F08
+.extern FUN_02002F40
+.extern FUN_02002F90
+.extern FUN_02002F9C
+.extern FUN_02002FD0
+.extern FUN_02002FEC
+.extern FUN_02003008
+.extern FUN_02003038
+.extern FUN_02003054
+.extern FUN_02003084
+.extern FUN_020030E8
+.extern FUN_02003108
+.extern FUN_0200317C
+.extern FUN_020031B8
+.extern FUN_020031FC
+.extern FUN_02003204
+.extern FUN_02003210
+.extern FUN_0200372C
+.extern FUN_020038E4
+.extern FUN_020038F0
+.extern FUN_02003914
+.extern FUN_02003974
+.extern FUN_020039E8
+.extern FUN_02003A30
+.extern FUN_02003A64
+.extern FUN_02003B40
+.extern FUN_02003B98
+.extern FUN_02003C10
+.extern FUN_02003CE8
+.extern FUN_02003D38
+.extern FUN_02003F3C
+.extern FUN_02003F64
+.extern FUN_02003F78
+.extern FUN_02003F90
+.extern FUN_02003FA8
+.extern FUN_02003FC4
+.extern FUN_02003FDC
+.extern FUN_02003FF4
+.extern FUN_02004018
+.extern FUN_020040F4
+.extern FUN_02004104
+.extern FUN_02004110
+.extern FUN_02004124
+.extern FUN_02004130
+.extern FUN_0200414C
+.extern FUN_0200415C
+.extern FUN_0200433C
+.extern FUN_020045C4
+.extern FUN_02004724
+.extern FUN_02004748
+.extern FUN_020047C8
+.extern FUN_02004810
+.extern FUN_02004828
+.extern FUN_0200483C
+.extern FUN_02004858
+.extern FUN_0200488C
+.extern FUN_020048A0
+.extern FUN_020048BC
+.extern FUN_020048D0
+.extern FUN_020048EC
+.extern FUN_020048F4
+.extern FUN_02004900
+.extern FUN_02004914
+.extern FUN_0200491C
+.extern FUN_02004928
+.extern FUN_02004930
+.extern FUN_02004984
+.extern FUN_02004A04
+.extern FUN_02004A6C
+.extern FUN_02004AAC
+.extern FUN_02004ABC
+.extern FUN_02004ACC
+.extern FUN_02004AE4
+.extern FUN_02004AF8
+.extern FUN_02004B30
+.extern FUN_02004C3C
+.extern FUN_02004C80
+.extern FUN_02004CA4
+.extern FUN_02004CAC
+.extern FUN_02004CB4
+.extern FUN_02004CFC
+.extern FUN_02004D04
+.extern FUN_02004D20
+.extern FUN_02004D34
+.extern FUN_02004D4C
+.extern FUN_02004D60
+.extern FUN_02004D74
+.extern FUN_02004D94
+.extern FUN_02004DB4
+.extern FUN_02004DBC
+.extern FUN_02004DCC
+.extern FUN_02004E08
+.extern FUN_02004E80
+.extern FUN_02004E8C
+.extern FUN_02004E98
+.extern FUN_02004F28
+.extern FUN_02004F64
+.extern FUN_02004F70
+.extern FUN_0200516C
+.extern FUN_020051EC
+.extern FUN_020051F4
+.extern FUN_0200521C
+.extern FUN_02005308
+.extern FUN_02005350
+.extern FUN_0200538C
+.extern FUN_020053CC
+.extern FUN_02005404
+.extern FUN_02005410
+.extern FUN_0200541C
+.extern FUN_02005454
+.extern FUN_020054A8
+.extern FUN_020054C8
+.extern FUN_020054F0
+.extern FUN_02005508
+.extern FUN_02005514
+.extern FUN_02005530
+.extern FUN_0200554C
+.extern FUN_02005578
+.extern FUN_02005614
+.extern FUN_02005670
+.extern FUN_020056AC
+.extern FUN_02005C28
+.extern FUN_02005CBC
+.extern FUN_02005CFC
+.extern FUN_02005D20
+.extern FUN_02005D48
+.extern FUN_02005DFC
+.extern FUN_02005E28
+.extern FUN_02005E64
+.extern FUN_02005E6C
+.extern FUN_02005E80
+.extern FUN_02005E90
+.extern FUN_02005EE0
+.extern FUN_02005F14
+.extern FUN_020061E8
+.extern FUN_0200621C
+.extern FUN_02006234
+.extern FUN_02006260
+.extern FUN_02006268
+.extern FUN_02006278
+.extern FUN_0200627C
+.extern FUN_0200628C
+.extern FUN_02006290
+.extern AllocAtEndAndReadWholeNarcMemberByIdPair
+.extern ReadFromNarcMemberByIdPair
+.extern AllocAndReadFromNarcMemberByIdPair
+.extern AllocAtEndAndReadFromNarcMemberByIdPair
+.extern NARC_ctor
+.extern NARC_dtor
+.extern NARC_AllocAndReadWholeMember
+.extern NARC_ReadWholeMember
+.extern NARC_GetMemberSize
+.extern NARC_ReadFromMember
+.extern NARC_ReadFile
+.extern NARC_GetFileCount
+.extern FUN_0200687C
+.extern FUN_020068C8
+.extern FUN_02006930
+.extern FUN_02006948
+.extern FUN_02006A34
+.extern FUN_02006A8C
+.extern FUN_02006AE4
+.extern FUN_02006B38
+.extern FUN_02006BB0
+.extern FUN_02006BDC
+.extern FUN_02006C08
+.extern FUN_02006C30
+.extern FUN_02006C5C
+.extern FUN_02006C88
+.extern FUN_02006C98
+.extern FUN_02006D18
+.extern FUN_02006D98
+.extern FUN_02006ED4
+.extern FUN_020072E8
+.extern FUN_02007314
+.extern FUN_0200737C
+.extern FUN_02007390
+.extern FUN_020073A0
+.extern FUN_020073E8
+.extern FUN_02007534
+.extern FUN_02007540
+.extern FUN_02007558
+.extern FUN_0200782C
+.extern FUN_020079E0
+.extern FUN_02007E40
+.extern FUN_02007E68
+.extern FUN_02007E98
+.extern FUN_02007EEC
+.extern FUN_02007F20
+.extern FUN_02007F34
+.extern FUN_02008010
+.extern FUN_02008030
+.extern FUN_020080D0
+.extern FUN_020080E0
+.extern FUN_0200813C
+.extern FUN_020081A8
+.extern FUN_020081B4
+.extern FUN_020081C0
+.extern FUN_020081C4
+.extern FUN_0200825C
+.extern FUN_02008268
+.extern FUN_02008284
+.extern FUN_02008290
+.extern FUN_02008904
+.extern FUN_02008A74
+.extern FUN_02008AA4
+.extern FUN_02008BE0
+.extern FUN_02008C80
+.extern FUN_02008C9C
+.extern FUN_02008D04
+.extern FUN_02008D24
+.extern FUN_02008D44
+.extern FUN_02008DDC
+.extern FUN_02008DEC
+.extern FUN_02008E2C
+.extern FUN_02008F34
+.extern FUN_02008F90
+.extern FUN_02008FEC
+.extern FUN_0200904C
+.extern FUN_020090AC
+.extern FUN_020090FC
+.extern FUN_02009168
+.extern FUN_020091E0
+.extern FUN_0200923C
+.extern FUN_02009298
+.extern FUN_020092F8
+.extern FUN_02009358
+.extern FUN_020093A8
+.extern FUN_02009424
+.extern FUN_02009448
+.extern FUN_0200945C
+.extern FUN_02009474
+.extern FUN_02009490
+.extern FUN_020094F0
+.extern FUN_02009530
+.extern FUN_02009544
+.extern FUN_0200955C
+.extern FUN_02009574
+.extern FUN_0200958C
+.extern FUN_020095A4
+.extern FUN_020095BC
+.extern FUN_02009630
+.extern FUN_0200965C
+.extern FUN_02009660
+.extern FUN_02009668
+.extern FUN_020096B4
+.extern FUN_020096CC
+.extern FUN_020096DC
+.extern FUN_02009710
+.extern FUN_0200973C
+.extern FUN_02009768
+.extern FUN_0200979C
+.extern FUN_02009A50
+.extern FUN_02009A90
+.extern FUN_02009AC4
+.extern FUN_02009B04
+.extern FUN_02009B44
+.extern FUN_02009B78
+.extern FUN_02009BB8
+.extern FUN_02009BE8
+.extern FUN_02009C0C
+.extern FUN_02009C30
+.extern FUN_02009C5C
+.extern FUN_02009C80
+.extern FUN_02009CDC
+.extern FUN_02009CF0
+.extern FUN_02009D34
+.extern FUN_02009D68
+.extern FUN_02009DAC
+.extern FUN_02009DE0
+.extern FUN_02009E04
+.extern FUN_02009E28
+.extern FUN_02009E54
+.extern FUN_02009E88
+.extern FUN_02009EAC
+.extern FUN_02009F80
+.extern FUN_02009FA0
+.extern FUN_02009FD8
+.extern FUN_0200A03C
+.extern FUN_0200A064
+.extern FUN_0200A06C
+.extern FUN_0200A208
+.extern FUN_0200A274
+.extern FUN_0200A2AC
+.extern FUN_0200A318
+.extern FUN_0200A344
+.extern FUN_0200A648
+.extern FUN_0200A738
+.extern NewMsgDataFromNarc
+.extern DestroyMsgData
+.extern FUN_0200A8E0
+.extern FUN_0200A914
+.extern FUN_0200A940
+.extern DecryptCopyString
+.extern GetSpeciesName
+.extern FUN_0200A9C4
+.extern FUN_0200AA14
+.extern FUN_0200AA50
+.extern FUN_0200AA80
+.extern FUN_0200AA90
+.extern FUN_0200AB18
+.extern FUN_0200ABB4
+.extern FUN_0200ABC0
+.extern FUN_0200ABE4
+.extern FUN_0200AC0C
+.extern FUN_0200AC60
+.extern FUN_0200ACA4
+.extern FUN_0200ACC0
+.extern FUN_0200ACF8
+.extern FUN_0200AD18
+.extern FUN_0200AD38
+.extern FUN_0200AD5C
+.extern FUN_0200AD94
+.extern FUN_0200ADCC
+.extern FUN_0200AE04
+.extern FUN_0200AE38
+.extern FUN_0200AE70
+.extern FUN_0200AEA8
+.extern FUN_0200AEE0
+.extern FUN_0200AF18
+.extern FUN_0200AF50
+.extern FUN_0200AF88
+.extern FUN_0200AFBC
+.extern FUN_0200AFF4
+.extern FUN_0200B02C
+.extern FUN_0200B064
+.extern FUN_0200B09C
+.extern FUN_0200B0D4
+.extern FUN_0200B10C
+.extern FUN_0200B144
+.extern FUN_0200B164
+.extern FUN_0200B19C
+.extern FUN_0200B1D4
+.extern FUN_0200B20C
+.extern FUN_0200B244
+.extern FUN_0200B278
+.extern FUN_0200B2AC
+.extern FUN_0200B2E0
+.extern FUN_0200B318
+.extern FUN_0200B350
+.extern FUN_0200B388
+.extern FUN_0200B3C0
+.extern FUN_0200B410
+.extern FUN_0200B430
+.extern FUN_0200B468
+.extern FUN_0200B4A0
+.extern FUN_0200B4D8
+.extern FUN_0200B518
+.extern FUN_0200B534
+.extern FUN_0200B568
+.extern FUN_0200B59C
+.extern FUN_0200B628
+.extern FUN_0200B660
+.extern FUN_0200B698
+.extern FUN_0200B6D0
+.extern FUN_0200B708
+.extern FUN_0200B764
+.extern FUN_0200B7A8
+.extern FUN_0200B7B8
+.extern FUN_0200B84C
+.extern FUN_0200B870
+.extern FUN_0200B990
+.extern FUN_0200B9A8
+.extern FUN_0200B9EC
+.extern FUN_0200BA78
+.extern FUN_0200BAAC
+.extern FUN_0200BB14
+.extern FUN_0200BB34
+.extern FUN_0200BB68
+.extern FUN_0200BB6C
+.extern FUN_0200BBF0
+.extern FUN_0200BC14
+.extern FUN_0200BC1C
+.extern FUN_0200BC30
+.extern FUN_0200BC38
+.extern FUN_0200BCE0
+.extern FUN_0200BD04
+.extern FUN_0200BD20
+.extern FUN_0200BE38
+.extern FUN_0200BF60
+.extern WCM_GetLinkLevel
+.extern STD_CompareNString
+.extern STD_CompareString
+.extern STD_GetStringLength
+.extern FUN_0200C00C
+.extern FUN_0200C06C
+.extern FUN_0200C0DC
+.extern FUN_0200C124
+.extern FUN_0200C13C
+.extern FUN_0200C154
+.extern FUN_0200C334
+.extern FUN_0200C344
+.extern FUN_0200C358
+.extern FUN_0200C368
+.extern FUN_0200C378
+.extern FUN_0200C388
+.extern FUN_0200C398
+.extern FUN_0200C3DC
+.extern FUN_0200C59C
+.extern FUN_0200C5A8
+.extern FUN_0200C5B4
+.extern FUN_0200C5C0
+.extern FUN_0200C5CC
+.extern FUN_0200C5E0
+.extern FUN_0200C5F4
+.extern FUN_0200C608
+.extern FUN_0200C61C
+.extern FUN_0200C630
+.extern FUN_0200C63C
+.extern FUN_0200C644
+.extern FUN_0200C650
+.extern FUN_0200C658
+.extern FUN_0200C664
+.extern FUN_0200C66C
+.extern FUN_0200C680
+.extern FUN_0200C68C
+.extern FUN_0200C6A4
+.extern FUN_0200C6B0
+.extern FUN_0200C6C4
+.extern FUN_0200C6D8
+.extern FUN_0200C6E4
+.extern FUN_0200C714
+.extern FUN_0200C720
+.extern FUN_0200C750
+.extern FUN_0200C75C
+.extern FUN_0200C7A0
+.extern FUN_0200C7F0
+.extern FUN_0200C7FC
+.extern FUN_0200C82C
+.extern FUN_0200C840
+.extern FUN_0200C884
+.extern FUN_0200C898
+.extern FUN_0200C8BC
+.extern FUN_0200C8D0
+.extern FUN_0200C8DC
+.extern FUN_0200C8F8
+.extern FUN_0200C90C
+.extern FUN_0200C918
+.extern FUN_0200C978
+.extern FUN_0200C9D8
+.extern FUN_0200CA0C
+.extern FUN_0200CA40
+.extern FUN_0200CA44
+.extern FUN_0200CA60
+.extern FUN_0200CA7C
+.extern FUN_0200CA98
+.extern FUN_0200CAB4
+.extern FUN_0200CABC
+.extern FUN_0200CAFC
+.extern FUN_0200CB00
+.extern FUN_0200CCA4
+.extern FUN_0200CCF8
+.extern FUN_0200CD60
+.extern FUN_0200CD64
+.extern FUN_0200CD68
+.extern FUN_0200D06C
+.extern FUN_0200D0BC
+.extern FUN_0200D0E0
+.extern FUN_0200D274
+.extern FUN_0200D300
+.extern FUN_0200D6F8
+.extern FUN_0200D7A0
+.extern FUN_0200D858
+.extern FUN_0200DBFC
+.extern FUN_0200DC24
+.extern FUN_0200DC4C
+.extern FUN_0200DCA4
+.extern FUN_0200E1D0
+.extern FUN_0200E2D8
+.extern FUN_0200E308
+.extern FUN_0200E31C
+.extern FUN_0200E388
+.extern FUN_0200E394
+.extern FUN_0200E3A0
+.extern FUN_0200E3BC
+.extern FUN_0200E420
+.extern FUN_0200E440
+.extern FUN_0200E6CC
+.extern FUN_0200E6F8
+.extern FUN_0200E850
+.extern FUN_0200E86C
+.extern FUN_0200E88C
+.extern FUN_0200E8C8
+.extern FUN_0200E900
+.extern FUN_0200E93C
+.extern FUN_0200E974
+.extern FUN_0200E9A0
+.extern FUN_0200E9CC
+.extern FUN_0200EA08
+.extern FUN_0200EA40
+.extern FUN_0200EA7C
+.extern FUN_0200EAB4
+.extern FUN_0200EAE0
+.extern FUN_0200EB0C
+.extern FUN_0200EB40
+.extern FUN_0200EB70
+.extern FUN_0200EB9C
+.extern FUN_0200EBC8
+.extern FUN_0200EBF4
+.extern FUN_0200EC20
+.extern FUN_0200EC4C
+.extern FUN_0200EC78
+.extern FUN_0200ECA4
+.extern FUN_0200ECD0
+.extern FUN_0200ECFC
+.extern FUN_0200ED28
+.extern FUN_0200ED54
+.extern FUN_0200ED80
+.extern FUN_0200EDD4
+.extern FUN_0200EE24
+.extern FUN_0200EE60
+.extern FUN_0200EE98
+.extern FUN_0200EED8
+.extern FUN_0200EF14
+.extern FUN_0200EF54
+.extern FUN_0200EF90
+.extern FUN_0200EFBC
+.extern FUN_0200EFE8
+.extern FUN_0200F014
+.extern FUN_0200F040
+.extern FUN_0200F07C
+.extern FUN_0200F6E4
+.extern FUN_0200FE20
+.extern FUN_0200FE90
+.extern FUN_02010FD0
+.extern FUN_020110BC
+.extern FUN_0201137C
+.extern FUN_020113EC
+.extern FUN_02011480
+.extern FUN_020114AC
+.extern FUN_02011534
+.extern FUN_02011574
+.extern FUN_02011634
+.extern FUN_02011650
+.extern FUN_02011678
+.extern FUN_02011698
+.extern FUN_02011744
+.extern FUN_020117BC
+.extern FUN_020117E8
+.extern FUN_02011870
+.extern FUN_02011898
+.extern FUN_020118C4
+.extern FUN_02011938
+.extern FUN_020119A4
+.extern FUN_020119D0
+.extern FUN_02011A00
+.extern FUN_02011A30
+.extern FUN_02011A60
+.extern FUN_02011A90
+.extern FUN_02011AC0
+.extern FUN_02011AF0
+.extern FUN_02011B20
+.extern FUN_02012400
+.extern FUN_02012420
+.extern FUN_0201244C
+.extern FUN_02012470
+.extern FUN_020124B4
+.extern FUN_02012530
+.extern FUN_02012560
+.extern FUN_0201259C
+.extern FUN_020125D4
+.extern FUN_0201265C
+.extern FUN_02012690
+.extern FUN_020126B4
+.extern FUN_020126D8
+.extern FUN_020126FC
+.extern FUN_02012710
+.extern IsNighttime
+.extern FUN_02012794
+.extern FUN_020127A8
+.extern FUN_020127C0
+.extern FUN_02012838
+.extern FUN_02012870
+.extern FUN_02012880
+.extern FUN_020128A0
+.extern FUN_020128C4
+.extern FUN_0201291C
+.extern FUN_02012944
+.extern FUN_02012974
+.extern FUN_02012988
+.extern FUN_0201299C
+.extern FUN_020129B4
+.extern FUN_020129C8
+.extern FUN_020129D8
+.extern FUN_02012A00
+.extern FUN_02012A30
+.extern FUN_02012AC4
+.extern FUN_02012B00
+.extern FUN_02012B20
+.extern FUN_02012B30
+.extern FUN_02012B68
+.extern FUN_02012CC8
+.extern FUN_02012CDC
+.extern FUN_02012DE4
+.extern FUN_02012EAC
+.extern FUN_02012ECC
+.extern FUN_02012EF8
+.extern FUN_02012F24
+.extern FUN_02012F50
+.extern FUN_02012F7C
+.extern FUN_02012FA8
+.extern FUN_02012FD4
+.extern FUN_02013000
+.extern FUN_0201302C
+.extern FUN_02013058
+.extern FUN_02013084
+.extern FUN_020130B0
+.extern FUN_020130DC
+.extern FUN_02013108
+.extern FUN_02013134
+.extern FUN_02013160
+.extern FUN_0201318C
+.extern FUN_02013194
+.extern FUN_0201327C
+.extern FUN_020132BC
+.extern FUN_02013348
+.extern FUN_02013364
+.extern FUN_02013388
+.extern FUN_020133AC
+.extern FUN_020133C8
+.extern FUN_020133DC
+.extern FUN_020133E8
+.extern FUN_020133EC
+.extern FUN_020133FC
+.extern FUN_0201341C
+.extern FUN_02013428
+.extern FUN_0201343C
+.extern FUN_02013440
+.extern FUN_02013448
+.extern FUN_02013450
+.extern FUN_02013514
+.extern FUN_02013530
+.extern FUN_02013548
+.extern FUN_0201357C
+.extern FUN_02013594
+.extern FUN_020135B0
+.extern FUN_020135C4
+.extern FUN_020135E0
+.extern FUN_020135F4
+.extern FUN_02013610
+.extern FUN_02013628
+.extern FUN_0201365C
+.extern FUN_02013674
+.extern FUN_02013690
+.extern FUN_020136C0
+.extern FUN_020136E0
+.extern FUN_020136F8
+.extern FUN_02013724
+.extern FUN_0201373C
+.extern FUN_02013754
+.extern FUN_02013764
+.extern FUN_020137D4
+.extern FUN_02013840
+.extern FUN_0201385C
+.extern FUN_02013870
+.extern FUN_02013918
+.extern FUN_02013920
+.extern FUN_02013924
+.extern FUN_02013928
+.extern FUN_02013960
+.extern FUN_02013974
+.extern FUN_02013980
+.extern FUN_02013998
+.extern FUN_020139B0
+.extern FUN_020139D8
+.extern FUN_02013A10
+.extern FUN_02013A30
+.extern FUN_02013A58
+.extern FUN_02013A9C
+.extern FUN_02013B28
+.extern FUN_02013B2C
+.extern FUN_02013B5C
+.extern FUN_02013B68
+.extern FUN_02013B74
+.extern FUN_02013BC8
+.extern FUN_02013BE4
+.extern FUN_02013C0C
+.extern FUN_02013C18
+.extern FUN_02013C28
+.extern FUN_02013C6C
+.extern FUN_02013CD4
+.extern FUN_02013D18
+.extern FUN_02013D5C
+.extern FUN_02013D98
+.extern FUN_02013DD4
+.extern FUN_02013DEC
+.extern FUN_02013E14
+.extern FUN_02013E44
+.extern FUN_02013E5C
+.extern FUN_02013E84
+.extern FUN_02013EA8
+.extern FUN_02013EB0
+.extern FUN_02013EC4
+.extern FUN_02013ECC
+.extern FUN_02013ED8
+.extern FUN_02013EE0
+.extern FUN_02013EF0
+.extern FUN_02013EFC
+.extern FUN_02013F00
+.extern FUN_02013F04
+.extern FUN_02013F0C
+.extern FUN_02013F2C
+.extern FUN_020142EC
+.extern FUN_020143A8
+.extern FUN_020143D0
+.extern FUN_020144FC
+.extern FUN_02014518
+.extern FUN_02014564
+.extern FUN_02014588
+.extern FUN_02014590
+.extern FUN_020145A8
+.extern FUN_020145C8
+.extern FUN_02014630
+.extern FUN_0201466C
+.extern FUN_020146C4
+.extern FUN_02014BF4
+.extern FUN_02014C28
+.extern FUN_02014C3C
+.extern FUN_02014C54
+.extern FUN_02014D7C
+.extern FUN_02014D9C
+.extern FUN_020151B8
+.extern FUN_020151C8
+.extern FUN_020151D0
+.extern FUN_02015218
+.extern FUN_02015240
+.extern FUN_02015264
+.extern FUN_0201528C
+.extern FUN_020152B0
+.extern FUN_020152D8
+.extern FUN_02015300
+.extern FUN_020153E0
+.extern FUN_02015404
+.extern FUN_02015428
+.extern FUN_02015444
+.extern FUN_02015470
+.extern FUN_0201549C
+.extern FUN_0201551C
+.extern FUN_02015550
+.extern FUN_02015588
+.extern FUN_020155D0
+.extern FUN_02015620
+.extern FUN_020156E8
+.extern FUN_02015730
+.extern FUN_02015798
+.extern FUN_020157EC
+.extern FUN_02015800
+.extern FUN_02015840
+.extern FUN_0201585C
+.extern FUN_02015868
+.extern FUN_020158A0
+.extern FUN_020158AC
+.extern FUN_020158B8
+.extern FUN_020158C4
+.extern FUN_020158D0
+.extern FUN_02015A34
+.extern FUN_02015AEC
+.extern FUN_02015BAC
+.extern FUN_02015BE8
+.extern FUN_02015C24
+.extern FUN_02015CC0
+.extern FUN_02015CE0
+.extern FUN_02015CF8
+.extern FUN_02015D88
+.extern FUN_02015E30
+.extern FUN_02015E3C
+.extern FUN_02015E60
+.extern FUN_02015EF4
+.extern FUN_02015F10
+.extern FUN_02015F1C
+.extern FUN_02015F34
+.extern FUN_020161A4
+.extern FUN_020161F8
+.extern FUN_020162FC
+.extern FUN_02016324
+.extern FUN_020163BC
+.extern FUN_02016438
+.extern FUN_02016444
+.extern FUN_02016454
+.extern FUN_02016464
+.extern FUN_0201669C
+.extern FUN_020166A8
+.extern FUN_020166B8
+.extern FUN_020166C8
+.extern FUN_0201681C
+.extern FUN_02016828
+.extern FUN_020168D0
+.extern AllocFromHeap
+.extern AllocFromHeapAtEnd
+.extern FreeToHeap
+.extern FUN_02016A8C
+.extern FUN_02016AF8
+.extern FUN_02016B20
+.extern FUN_02016B44
+.extern FUN_02016B90
+.extern FUN_02016B94
+.extern FUN_02016BB8
+.extern FUN_02016BBC
+.extern FUN_02016BF4
+.extern FUN_02016C18
+.extern FUN_020170F4
+.extern FUN_020178A0
+.extern FUN_020178BC
+.extern FUN_0201797C
+.extern FUN_020179E0
+.extern FUN_02017B48
+.extern FUN_02017B54
+.extern FUN_02017B60
+.extern FUN_02017BD0
+.extern FUN_02017CD0
+.extern FUN_02017CE8
+.extern FUN_02017DFC
+.extern FUN_02017E14
+.extern FUN_02017F18
+.extern FUN_02017F48
+.extern FUN_02017FB4
+.extern FUN_02017FE4
+.extern FUN_02018148
+.extern FUN_02018170
+.extern FUN_020181EC
+.extern FUN_02018540
+.extern FUN_020186B4
+.extern FUN_02018744
+.extern FUN_02018768
+.extern FUN_0201878C
+.extern FUN_020187B0
+.extern FUN_0201886C
+.extern FUN_02018878
+.extern FUN_02018884
+.extern FUN_02018A60
+.extern FUN_02018F4C
+.extern FUN_02018FF4
+.extern FUN_0201901C
+.extern FUN_02019048
+.extern FUN_02019064
+.extern FUN_020190EC
+.extern FUN_02019150
+.extern FUN_02019178
+.extern FUN_020191A4
+.extern FUN_020191D0
+.extern FUN_02019220
+.extern FUN_02019270
+.extern FUN_0201928C
+.extern FUN_020192B8
+.extern FUN_020192D4
+.extern FUN_02019358
+.extern FUN_020193B4
+.extern FUN_02019444
+.extern FUN_0201949C
+.extern FUN_020194C8
+.extern FUN_020194E0
+.extern FUN_0201951C
+.extern FUN_02019548
+.extern FUN_02019570
+.extern FUN_0201958C
+.extern FUN_020195A8
+.extern FUN_020195D0
+.extern FUN_020195E4
+.extern FUN_0201960C
+.extern FUN_02019620
+.extern FUN_02019658
+.extern FUN_02019684
+.extern FUN_020196F4
+.extern FUN_0201974C
+.extern FUN_0201A8C8
+.extern FUN_0201AB08
+.extern FUN_0201AB0C
+.extern FUN_0201AB10
+.extern FUN_0201AB14
+.extern FUN_0201AB18
+.extern FUN_0201AB1C
+.extern FUN_0201AB20
+.extern FUN_0201AB24
+.extern FUN_0201AB28
+.extern FUN_0201AB44
+.extern FUN_0201AB60
+.extern FUN_0201AC68
+.extern FUN_0201AEE4
+.extern FUN_0201AF08
+.extern FUN_0201AF50
+.extern FUN_0201AFBC
+.extern FUN_0201B21C
+.extern FUN_0201B234
+.extern FUN_0201B254
+.extern FUN_0201B26C
+.extern FUN_0201B2A8
+.extern FUN_0201B2EC
+.extern FUN_0201B398
+.extern FUN_0201B3A8
+.extern FUN_0201B3C4
+.extern FUN_0201B578
+.extern FUN_0201B580
+.extern FUN_0201B5CC
+.extern FUN_0201B60C
+.extern FUN_0201B6A0
+.extern FUN_0201B6C4
+.extern FUN_0201B6C8
+.extern FUN_0201B6CC
+.extern FUN_0201B6D0
+.extern FUN_0201B76C
+.extern FUN_0201B7DC
+.extern FUN_0201B8B8
+.extern FUN_0201B8E0
+.extern FUN_0201B8F8
+.extern FUN_0201B914
+.extern Sin
+.extern Cos
+.extern Sin_Wrap
+.extern Cos_Wrap
+.extern MathUtil_0201B9A0
+.extern Sin32
+.extern MTX22_2DAffine
+.extern CircularDistance
+.extern MathUtil_0201BC84
+.extern FUN_0201BCBC
+.extern FUN_0201BD5C
+.extern FUN_0201BD70
+.extern FUN_0201BD7C
+.extern FUN_0201BD84
+.extern FUN_0201BDE0
+.extern FUN_0201BE3C
+.extern FUN_0201C05C
+.extern FUN_0201C100
+.extern FUN_0201C1EC
+.extern FUN_0201C24C
+.extern FUN_0201C29C
+.extern FUN_0201C2C8
+.extern FUN_0201C30C
+.extern FUN_0201C328
+.extern FUN_0201C348
+.extern FUN_0201C350
+.extern FUN_0201C360
+.extern FUN_0201C39C
+.extern FUN_0201C3B4
+.extern FUN_0201C40C
+.extern FUN_0201C438
+.extern FUN_0201C50C
+.extern FUN_0201C578
+.extern FUN_0201C5FC
+.extern FUN_0201C620
+.extern FUN_0201C62C
+.extern FUN_0201C638
+.extern FUN_0201C6C8
+.extern FUN_0201C70C
+.extern FUN_0201C750
+.extern FUN_0201C78C
+.extern FUN_0201C7A0
+.extern FUN_0201C7A8
+.extern FUN_0201C7B0
+.extern FUN_0201C878
+.extern FUN_0201CAA8
+.extern FUN_0201CB20
+.extern FUN_0201CB7C
+.extern FUN_0201CBEC
+.extern FUN_0201CC08
+.extern FUN_0201CC24
+.extern FUN_0201CD04
+.extern FUN_0201CD38
+.extern FUN_0201CDD0
+.extern FUN_0201CE04
+.extern FUN_0201D040
+.extern FUN_0201D060
+.extern FUN_0201D12C
+.extern FUN_0201D168
+.extern FUN_0201D194
+.extern FUN_0201D1F8
+.extern FUN_0201D250
+.extern FUN_0201D2AC
+.extern FUN_0201D2DC
+.extern FUN_0201D324
+.extern FUN_0201D3B0
+.extern FUN_0201D3D4
+.extern FUN_0201D458
+.extern FUN_0201D4F0
+.extern FUN_0201D568
+.extern FUN_0201D5E8
+.extern FUN_0201D658
+.extern FUN_0201D674
+.extern FUN_0201DED0
+.extern FUN_0201E00C
+.extern FUN_0201E068
+.extern FUN_0201E08C
+.extern FUN_0201E0BC
+.extern FUN_0201E0E4
+.extern FUN_0201E128
+.extern FUN_0201E168
+.extern FUN_0201E1B4
+.extern FUN_0201E1C8
+.extern FUN_0201E230
+.extern FUN_0201E258
+.extern FUN_0201E28C
+.extern FUN_0201E66C
+.extern FUN_0201E6D8
+.extern FUN_0201E6E4
+.extern FUN_0201E720
+.extern FUN_0201E740
+.extern FUN_0201E74C
+.extern FUN_0201E788
+.extern FUN_0201E7A0
+.extern FUN_0201E7CC
+.extern FUN_0201EABC
+.extern FUN_0201EB48
+.extern FUN_0201EB64
+.extern FUN_0201EB70
+.extern FUN_0201EB78
+.extern FUN_0201EB8C
+.extern FUN_0201EB98
+.extern FUN_0201EBA4
+.extern FUN_0201EC58
+.extern FUN_0201EC68
+.extern FUN_0201EC88
+.extern FUN_0201EC94
+.extern FUN_0201ECA8
+.extern FUN_0201ED10
+.extern FUN_0201ED5C
+.extern FUN_0201EE2C
+.extern FUN_0201EEF0
+.extern FUN_0201EF2C
+.extern FUN_0201EF70
+.extern FUN_0201EF90
+.extern FUN_0201EFB4
+.extern FUN_0201EFE0
+.extern FUN_0201EFEC
+.extern FUN_0201F008
+.extern FUN_0201F010
+.extern FUN_0201F014
+.extern FUN_0201F02C
+.extern FUN_0201F03C
+.extern FUN_0201F04C
+.extern FUN_0201F05C
+.extern FUN_0201F100
+.extern FUN_0201F140
+.extern FUN_0201F178
+.extern FUN_0201F1B4
+.extern FUN_0201F23C
+.extern FUN_0201F2C0
+.extern FUN_0201F2D8
+.extern FUN_0201F6E8
+.extern FUN_0201F744
+.extern FUN_0201F7A4
+.extern FUN_0201F7C8
+.extern FUN_0201F7E0
+.extern FUN_0201F7F0
+.extern FUN_0201F80C
+.extern FUN_0201F820
+.extern FUN_0201F830
+.extern FUN_0201F844
+.extern FUN_0201F854
+.extern FUN_0201F86C
+.extern FUN_0201F880
+.extern FUN_0201F890
+.extern FUN_0201F8C0
+.extern FUN_0201F8E0
+.extern FUN_0201F8F0
+.extern FUN_0201FCB0
+.extern FUN_0201FD58
+.extern FUN_0201FD98
+.extern FUN_0201FDB4
+.extern FUN_0201FDEC
+.extern FUN_0201FE94
+.extern FUN_0201FF84
+.extern FUN_0201FFC8
+.extern FUN_02020044
+.extern FUN_02020054
+.extern FUN_02020064
+.extern FUN_02020074
+.extern FUN_02020088
+.extern FUN_0202008C
+.extern FUN_020200A0
+.extern FUN_020200BC
+.extern FUN_020200D8
+.extern FUN_020200EC
+.extern FUN_02020100
+.extern FUN_0202011C
+.extern FUN_02020120
+.extern FUN_02020124
+.extern FUN_02020128
+.extern FUN_02020130
+.extern FUN_02020184
+.extern FUN_02020198
+.extern FUN_020201DC
+.extern FUN_020201E4
+.extern FUN_02020208
+.extern FUN_0202022C
+.extern FUN_02020238
+.extern FUN_02020240
+.extern FUN_02020248
+.extern FUN_0202027C
+.extern FUN_020202A0
+.extern FUN_020202A8
+.extern FUN_020202DC
+.extern FUN_02020300
+.extern FUN_02020310
+.extern FUN_0202032C
+.extern FUN_02020334
+.extern FUN_02020350
+.extern FUN_02020354
+.extern FUN_02020358
+.extern FUN_02020380
+.extern FUN_02020388
+.extern FUN_02020398
+.extern FUN_020203CC
+.extern FUN_02020404
+.extern FUN_02020968
+.extern FUN_02020988
+.extern FUN_020209A8
+.extern FUN_020209F4
+.extern FUN_02020A40
+.extern FUN_02020A6C
+.extern FUN_02020A98
+.extern FUN_02020AA4
+.extern FUN_02020AB0
+.extern FUN_02020ACC
+.extern FUN_02020AE8
+.extern FUN_02020AFC
+.extern FUN_02020BF4
+.extern FUN_02020BFC
+.extern FUN_02020C14
+.extern FUN_02020C44
+.extern FUN_02020C90
+.extern FUN_02020CB0
+.extern FUN_02020CD4
+.extern FUN_02020D10
+.extern FUN_02020D68
+.extern FUN_02020E0C
+.extern FUN_02020E1C
+.extern FUN_02020E38
+.extern FUN_02020E90
+.extern FUN_02020ED4
+.extern FUN_02020EF8
+.extern FUN_02020F54
+.extern FUN_02020FF0
+.extern FUN_02021050
+.extern FUN_020210AC
+.extern FUN_020210F0
+.extern FUN_02021158
+.extern FUN_020211AC
+.extern FUN_020211BC
+.extern FUN_020211CC
+.extern FUN_0202134C
+.extern FUN_0202135C
+.extern FUN_02021390
+.extern FUN_020213A0
+.extern FUN_02021590
+.extern FUN_020215C8
+.extern FUN_020215E0
+.extern FUN_02021750
+.extern FUN_020218D8
+.extern FUN_02021934
+.extern FUN_0202199C
+.extern FUN_020219F4
+.extern FUN_02021A20
+.extern FUN_02021A4C
+.extern FUN_02021A74
+.extern FUN_02021ACC
+.extern FUN_02021B04
+.extern FUN_02021C38
+.extern FUN_02021CE0
+.extern FUN_02021D3C
+.extern FUN_02021D5C
+.extern FUN_02021D9C
+.extern FUN_02021E28
+.extern FUN_02021E8C
+.extern FUN_02021EF0
+.extern FUN_02021F2C
+.extern FUN_02021F4C
+.extern FUN_02021FB0
+.extern FUN_02021FF8
+.extern FUN_02022048
+.extern FUN_020220C4
+.extern FUN_0202212C
+.extern FUN_02022144
+.extern FUN_02022244
+.extern FUN_0202227C
+.extern FUN_02022294
+.extern FUN_020222AC
+.extern FUN_020222B4
+.extern FUN_020222C4
+.extern FUN_020222E8
+.extern FUN_020222F0
+.extern FUN_020222F8
+.extern FUN_02022300
+.extern FUN_02022308
+.extern FUN_02022310
+.extern FUN_02022318
+.extern FUN_020223BC
+.extern FUN_02022450
+.extern FUN_020224D8
+.extern FUN_02022504
+.extern FUN_02022510
+.extern FUN_0202251C
+.extern FUN_02022528
+.extern FUN_02022534
+.extern FUN_02022540
+.extern FUN_0202254C
+.extern FUN_020225F8
+.extern FUN_02022610
+.extern FUN_02022634
+.extern FUN_0202263C
+.extern FUN_020226FC
+.extern FUN_02022720
+.extern FUN_020227A0
+.extern FUN_020227DC
+.extern FUN_020227FC
+.extern FUN_02022800
+.extern FUN_02022804
+.extern FUN_0202280C
+.extern FUN_0202282C
+.extern FUN_02022830
+.extern FUN_02022840
+.extern FUN_02022854
+.extern FUN_0202287C
+.extern FUN_020232BC
+.extern FUN_02023408
+.extern FUN_0202376C
+.extern FUN_02023770
+.extern FUN_02023788
+.extern FUN_02023794
+.extern FUN_020237A0
+.extern FUN_020237CC
+.extern FUN_020237FC
+.extern FUN_02023818
+.extern FUN_0202381C
+.extern FUN_02023820
+.extern FUN_02023828
+.extern FUN_02023830
+.extern FUN_02023834
+.extern FUN_02023840
+.extern FUN_02023874
+.extern FUN_02023884
+.extern FUN_020238A4
+.extern FUN_020238C4
+.extern FUN_020238C8
+.extern FUN_020238F4
+.extern FUN_0202390C
+.extern FUN_02023918
+.extern FUN_02023924
+.extern FUN_02023928
+.extern FUN_0202393C
+.extern FUN_02023948
+.extern FUN_0202395C
+.extern FUN_0202397C
+.extern FUN_0202398C
+.extern FUN_02023990
+.extern FUN_020239A0
+.extern FUN_020239B8
+.extern FUN_020239BC
+.extern FUN_020239C0
+.extern FUN_020239C8
+.extern FUN_020239CC
+.extern FUN_020239D0
+.extern FUN_020239E4
+.extern FUN_020239F4
+.extern FUN_02023A10
+.extern FUN_02023A14
+.extern FUN_02023A28
+.extern FUN_02023A2C
+.extern FUN_02023A30
+.extern FUN_02023A54
+.extern FUN_02023A68
+.extern FUN_02023A6C
+.extern FUN_02023A70
+.extern FUN_02023A74
+.extern FUN_02023A78
+.extern FUN_02023A88
+.extern FUN_02023A90
+.extern FUN_02023A9C
+.extern FUN_02023AA4
+.extern FUN_02023AC4
+.extern FUN_02023AC8
+.extern FUN_02023ACC
+.extern FUN_02023AD8
+.extern FUN_02023AF4
+.extern FUN_02023B0C
+.extern FUN_02023BA4
+.extern FUN_02023BD4
+.extern FUN_02023BE8
+.extern FUN_02023C04
+.extern FUN_02023C40
+.extern FUN_02023C48
+.extern FUN_02023C74
+.extern FUN_02023C7C
+.extern FUN_02023C80
+.extern FUN_02023C84
+.extern FUN_02023C8C
+.extern FUN_02023C90
+.extern FUN_02023C98
+.extern FUN_02023CA0
+.extern FUN_02023CA8
+.extern FUN_02023CB8
+.extern FUN_02023CC0
+.extern FUN_02023CC8
+.extern FUN_02023CF0
+.extern FUN_02023D3C
+.extern FUN_02023D58
+.extern FUN_02023D64
+.extern FUN_02023D6C
+.extern FUN_02023D80
+.extern FUN_02024378
+.extern FUN_020243C8
+.extern FUN_02024404
+.extern FUN_02024440
+.extern FUN_0202445C
+.extern FUN_020244A4
+.extern FUN_020244EC
+.extern FUN_02024504
+.extern FUN_02024518
+.extern FUN_02024550
+.extern FUN_02024594
+.extern FUN_020245F0
+.extern FUN_02024648
+.extern FUN_02024674
+.extern FUN_020246DC
+.extern FUN_0202471C
+.extern FUN_02024748
+.extern FUN_020247A4
+.extern FUN_020247C8
+.extern FUN_02024828
+.extern FUN_0202484C
+.extern FUN_0202489C
+.extern FUN_020248BC
+.extern FUN_0202490C
+.extern FUN_02024930
+.extern FUN_02024970
+.extern FUN_0202498C
+.extern FUN_02024AF0
+.extern FUN_02024C84
+.extern FUN_02024CA4
+.extern FUN_02024CC4
+.extern FUN_02024CE0
+.extern FUN_02024D00
+.extern FUN_02024D4C
+.extern FUN_02024D58
+.extern FUN_02024D64
+.extern FUN_02024D80
+.extern FUN_02024DA0
+.extern FUN_02024DAC
+.extern FUN_02024E64
+.extern FUN_02024E6C
+.extern FUN_02024EB4
+.extern FUN_02024EC0
+.extern FUN_02024ECC
+.extern FUN_02024ED8
+.extern FUN_02024EE8
+.extern FUN_02024EF4
+.extern FUN_02024F0C
+.extern FUN_02024F18
+.extern FUN_02024F30
+.extern FUN_02024F44
+.extern FUN_02024F50
+.extern FUN_02024F9C
+.extern FUN_02024FD8
+.extern FUN_02024FE0
+.extern FUN_02024FF4
+.extern FUN_02025010
+.extern FUN_02025018
+.extern FUN_0202502C
+.extern FUN_02025034
+.extern FUN_02025048
+.extern FUN_02025050
+.extern FUN_02025064
+.extern FUN_0202506C
+.extern FUN_02025084
+.extern FUN_0202508C
+.extern FUN_020250A4
+.extern FUN_020250C4
+.extern FUN_02025128
+.extern FUN_02025238
+.extern FUN_02025244
+.extern FUN_0202524C
+.extern FUN_02025268
+.extern FUN_02025274
+.extern FUN_020252AC
+.extern FUN_020252B8
+.extern FUN_020252C4
+.extern FUN_020252D0
+.extern FUN_020252DC
+.extern FUN_020252E8
+.extern FUN_020252F4
+.extern FUN_020253E0
+.extern FUN_02025484
+.extern FUN_02025490
+.extern FUN_020254A0
+.extern FUN_020254B4
+.extern FUN_020254B8
+.extern FUN_020254C0
+.extern FUN_020254CC
+.extern FUN_020254F0
+.extern FUN_020254F8
+.extern FUN_02025520
+.extern FUN_02025614
+.extern InitSealsObject
+.extern FUN_020256AC
+.extern CreateNewSealsObject
+.extern CopySealsObject
+.extern FUN_020256DC
+.extern FUN_020257C0
+.extern FUN_020257C4
+.extern FUN_020257C8
+.extern FUN_020257CC
+.extern FUN_020257D0
+.extern FUN_020257D8
+.extern FUN_020257DC
+.extern FUN_020257E0
+.extern FUN_02025814
+.extern FUN_02025824
+.extern FUN_02025838
+.extern FUN_02025844
+.extern FUN_0202584C
+.extern FUN_02025864
+.extern FUN_02025878
+.extern FUN_02025888
+.extern FUN_0202589C
+.extern FUN_020258B0
+.extern FUN_020258D4
+.extern FUN_02025954
+.extern FUN_0202595C
+.extern FUN_02025960
+.extern FUN_02025964
+.extern FUN_0202597C
+.extern FUN_02025A60
+.extern FUN_02025B60
+.extern FUN_02025B94
+.extern FUN_02025BE8
+.extern FUN_02025C00
+.extern FUN_02025C18
+.extern FUN_02025C30
+.extern FUN_02025C38
+.extern FUN_02025C40
+.extern FUN_02025CD8
+.extern FUN_02025D40
+.extern FUN_02025D48
+.extern FUN_02025D6C
+.extern FUN_02025D94
+.extern FUN_02025DB0
+.extern FUN_02025DC8
+.extern FUN_02025DD4
+.extern FUN_02025E20
+.extern FUN_02025EDC
+.extern FUN_02025F0C
+.extern FUN_02025F30
+.extern FUN_02025F44
+.extern FUN_02025F80
+.extern FUN_02025F98
+.extern FUN_02025FA4
+.extern FUN_02025FD8
+.extern FUN_02025FFC
+.extern FUN_02026050
+.extern FUN_02026068
+.extern FUN_02026074
+.extern FUN_02026080
+.extern FUN_020260C4
+.extern FUN_020260EC
+.extern FUN_0202616C
+.extern FUN_02026188
+.extern FUN_02026194
+.extern FUN_020261C8
+.extern FUN_0202623C
+.extern FUN_02026258
+.extern FUN_02026264
+.extern FUN_02026298
+.extern FUN_0202630C
+.extern FUN_02026354
+.extern FUN_02026370
+.extern FUN_0202639C
+.extern FUN_020263C8
+.extern FUN_020263F4
+.extern FUN_02026444
+.extern FUN_02026450
+.extern FUN_02026470
+.extern FUN_02026490
+.extern FUN_0202649C
+.extern FUN_020264F0
+.extern FUN_020264FC
+.extern FUN_0202651C
+.extern FUN_0202653C
+.extern FUN_02026548
+.extern FUN_02026554
+.extern FUN_020265B8
+.extern FUN_020265E0
+.extern FUN_02026600
+.extern FUN_02026620
+.extern FUN_02026634
+.extern FUN_02026648
+.extern FUN_02026654
+.extern FUN_02026664
+.extern FUN_02026688
+.extern FUN_020266B0
+.extern FUN_020266C8
+.extern FUN_020266D4
+.extern FUN_020266E0
+.extern FUN_02026714
+.extern FUN_0202671C
+.extern FUN_02026778
+.extern FUN_020267C4
+.extern FUN_02026810
+.extern FUN_02026840
+.extern FUN_02026874
+.extern FUN_020268A0
+.extern FUN_020268D4
+.extern FUN_020268E8
+.extern FUN_02026908
+.extern FUN_02026940
+.extern FUN_02026970
+.extern FUN_020269A0
+.extern FUN_020269CC
+.extern FUN_020269D4
+.extern FUN_02026A0C
+.extern FUN_02026A58
+.extern FUN_02026A9C
+.extern FUN_02026AE8
+.extern FUN_02026B20
+.extern FUN_02026B58
+.extern FUN_02026B90
+.extern FUN_02026BC8
+.extern FUN_02026C00
+.extern FUN_02026C38
+.extern FUN_02026C68
+.extern FUN_02026C88
+.extern FUN_02026C90
+.extern FUN_02026C98
+.extern FUN_02026CA0
+.extern FUN_02026CA8
+.extern FUN_02026CB4
+.extern FUN_02026CC0
+.extern FUN_02026CC4
+.extern FUN_02026F60
+.extern FUN_02026FD8
+.extern FUN_02026FE0
+.extern FUN_02026FE4
+.extern FUN_02026FE8
+.extern FUN_02027008
+.extern FUN_02027044
+.extern FUN_0202708C
+.extern FUN_02027098
+.extern FUN_020270B4
+.extern FUN_020270D8
+.extern FUN_02027100
+.extern FUN_02027114
+.extern FUN_0202714C
+.extern FUN_02027168
+.extern FUN_02027184
+.extern FUN_020271A4
+.extern FUN_02027210
+.extern FUN_02027264
+.extern FUN_020272D4
+.extern FUN_02027310
+.extern FUN_02027348
+.extern FUN_02027380
+.extern FUN_02027448
+.extern FUN_02027478
+.extern FUN_020274F0
+.extern FUN_02027528
+.extern FUN_02027564
+.extern FUN_02027590
+.extern FUN_020275D8
+.extern FUN_02027608
+.extern FUN_0202763C
+.extern FUN_0202766C
+.extern FUN_0202769C
+.extern FUN_020276A8
+.extern FUN_02027710
+.extern FUN_02027740
+.extern FUN_02027778
+.extern FUN_020277B4
+.extern FUN_0202787C
+.extern FUN_020278AC
+.extern FUN_020278DC
+.extern FUN_02027914
+.extern FUN_02027964
+.extern FUN_02027A14
+.extern FUN_02027A58
+.extern FUN_02027A94
+.extern FUN_02027AC4
+.extern FUN_02027B0C
+.extern FUN_02027B44
+.extern FUN_02027B78
+.extern FUN_02027BDC
+.extern FUN_02027C28
+.extern FUN_02027C58
+.extern FUN_02027CA0
+.extern FUN_02027CA8
+.extern FUN_02027CB0
+.extern FUN_02027CB8
+.extern FUN_02027CF8
+.extern FUN_02027CFC
+.extern FUN_02027D00
+.extern FUN_02027D04
+.extern FUN_02027D7C
+.extern FUN_02027E24
+.extern FUN_02027E30
+.extern FUN_02027E34
+.extern FUN_02027E5C
+.extern FUN_02027E94
+.extern FUN_02027F04
+.extern FUN_02027FBC
+.extern FUN_02027FDC
+.extern FUN_02028048
+.extern FUN_02028054
+.extern FUN_0202805C
+.extern FUN_02028074
+.extern FUN_02028094
+.extern FUN_020280B8
+.extern FUN_020280F4
+.extern FUN_02028174
+.extern FUN_02028190
+.extern FUN_020281B8
+.extern FUN_020281E0
+.extern FUN_020281E8
+.extern FUN_02028228
+.extern FUN_0202822C
+.extern FUN_020282E8
+.extern FUN_0202838C
+.extern FUN_020283A4
+.extern FUN_020283C0
+.extern FUN_020283E8
+.extern FUN_02028404
+.extern FUN_0202842C
+.extern FUN_02028448
+.extern FUN_02028468
+.extern FUN_0202858C
+.extern FUN_020285D0
+.extern FUN_02028608
+.extern FUN_02028664
+.extern FUN_020286EC
+.extern FUN_020286F8
+.extern FUN_02028700
+.extern FUN_02028724
+.extern FUN_02028754
+.extern FUN_0202877C
+.extern FUN_02028788
+.extern FUN_020287A4
+.extern FUN_020287A8
+.extern FUN_020287C0
+.extern FUN_020287EC
+.extern FUN_020287F8
+.extern FUN_02028804
+.extern FUN_02028810
+.extern FUN_0202881C
+.extern FUN_02028828
+.extern FUN_02028840
+.extern FUN_02028854
+.extern FUN_0202888C
+.extern FUN_020288AC
+.extern FUN_02028910
+.extern FUN_02028918
+.extern FUN_02028930
+.extern FUN_02028934
+.extern FUN_02028954
+.extern FUN_0202896C
+.extern FUN_02028980
+.extern FUN_02028994
+.extern FUN_020289A4
+.extern FUN_020289B0
+.extern FUN_02028A20
+.extern FUN_02028AD4
+.extern FUN_02028FA4
+.extern FUN_02029048
+.extern FUN_02029054
+.extern FUN_02029060
+.extern FUN_0202906C
+.extern FUN_02029078
+.extern FUN_02029084
+.extern FUN_02029120
+.extern FUN_0202912C
+.extern FUN_02029138
+.extern FUN_0202914C
+.extern FUN_02029160
+.extern FUN_0202916C
+.extern FUN_0202918C
+.extern FUN_0202920C
+.extern FUN_0202930C
+.extern FUN_0202934C
+.extern FUN_0202938C
+.extern FUN_020293EC
+.extern FUN_0202942C
+.extern FUN_0202945C
+.extern FUN_020294A8
+.extern FUN_020294B4
+.extern FUN_020294F4
+.extern FUN_02029500
+.extern FUN_02029520
+.extern FUN_0202952C
+.extern FUN_02029578
+.extern FUN_02029584
+.extern FUN_02029880
+.extern FUN_02029960
+.extern FUN_020299C0
+.extern FUN_020299DC
+.extern FUN_02029A84
+.extern FUN_02029A8C
+.extern FUN_02029ABC
+.extern FUN_02029AC8
+.extern FUN_02029ACC
+.extern FUN_02029AD0
+.extern FUN_02029AD8
+.extern FUN_02029AE0
+.extern FUN_02029AE8
+.extern FUN_02029AFC
+.extern FUN_02029B08
+.extern FUN_02029B38
+.extern FUN_02029B3C
+.extern FUN_02029B40
+.extern FUN_02029B90
+.extern FUN_02029C00
+.extern FUN_02029C08
+.extern FUN_02029C58
+.extern FUN_02029C60
+.extern FUN_02029C74
+.extern FUN_02029C80
+.extern FUN_02029C8C
+.extern FUN_02029CA4
+.extern FUN_02029CC8
+.extern FUN_02029CE0
+.extern FUN_02029CE4
+.extern FUN_02029CE8
+.extern FUN_02029CEC
+.extern FUN_02029CF4
+.extern FUN_02029CF8
+.extern FUN_02029D40
+.extern FUN_02029D44
+.extern FUN_02029D84
+.extern FUN_02029DD4
+.extern FUN_02029E0C
+.extern FUN_02029E2C
+.extern FUN_02029E48
+.extern FUN_02029E54
+.extern FUN_02029EBC
+.extern FUN_02029EC0
+.extern FUN_02029EC4
+.extern FUN_02029ECC
+.extern FUN_02029EE4
+.extern FUN_02029EF8
+.extern FUN_02029F04
+.extern FUN_02029F08
+.extern FUN_02029F10
+.extern FUN_02029F14
+.extern FUN_02029F4C
+.extern FUN_02029F9C
+.extern FUN_02029FB0
+.extern FUN_02029FB8
+.extern FUN_02029FC8
+.extern FUN_0202A07C
+.extern FUN_0202A0A8
+.extern FUN_0202A0E8
+.extern FUN_0202A11C
+.extern FUN_0202A150
+.extern FUN_0202A170
+.extern FUN_0202A1B8
+.extern FUN_0202A1C4
+.extern FUN_0202A1E4
+.extern FUN_0202A240
+.extern FUN_0202A2C4
+.extern FUN_0202A36C
+.extern FUN_0202A398
+.extern FUN_0202A3A0
+.extern FUN_0202A3B4
+.extern FUN_0202A40C
+.extern FUN_0202A444
+.extern FUN_0202A474
+.extern FUN_0202A498
+.extern FUN_0202A4B8
+.extern FUN_0202A520
+.extern FUN_0202A524
+.extern FUN_0202A538
+.extern FUN_0202A578
+.extern FUN_0202A5CC
+.extern FUN_0202A5D0
+.extern FUN_0202A5D4
+.extern FUN_0202A5F4
+.extern FUN_0202A60C
+.extern FUN_0202A6B4
+.extern FUN_0202A744
+.extern FUN_0202A74C
+.extern FUN_0202A754
+.extern FUN_0202A784
+.extern FUN_0202A798
+.extern FUN_0202A838
+.extern FUN_0202A864
+.extern FUN_0202A878
+.extern FUN_0202A89C
+.extern FUN_0202A8A4
+.extern FUN_0202A8CC
+.extern FUN_0202A8D8
+.extern FUN_0202A8E4
+.extern FUN_0202A8F4
+.extern FUN_0202A8F8
+.extern FUN_0202A918
+.extern FUN_0202A924
+.extern FUN_0202A92C
+.extern FUN_0202A988
+.extern FUN_0202A990
+.extern FUN_0202A9AC
+.extern FUN_0202A9B0
+.extern FUN_0202A9BC
+.extern FUN_0202A9C0
+.extern FUN_0202A9C4
+.extern FUN_0202A9C8
+.extern FUN_0202A9D0
+.extern FUN_0202AA00
+.extern FUN_0202AA14
+.extern FUN_0202AA20
+.extern FUN_0202AA38
+.extern FUN_0202AA40
+.extern FUN_0202AA58
+.extern FUN_0202AA74
+.extern FUN_0202AA90
+.extern FUN_0202AAA0
+.extern FUN_0202AAB8
+.extern FUN_0202AAFC
+.extern FUN_0202AB40
+.extern FUN_0202AB4C
+.extern FUN_0202AB54
+.extern FUN_0202AB68
+.extern FUN_0202AB80
+.extern FUN_0202AB8C
+.extern FUN_0202ABA0
+.extern FUN_0202ABBC
+.extern FUN_0202ABC8
+.extern FUN_0202ABCC
+.extern FUN_0202ABDC
+.extern FUN_0202ABE4
+.extern FUN_0202ABEC
+.extern FUN_0202ABF8
+.extern FUN_0202AC08
+.extern FUN_0202AC10
+.extern FUN_0202AC18
+.extern FUN_0202AC20
+.extern FUN_0202AC28
+.extern FUN_0202AC64
+.extern FUN_0202AC98
+.extern FUN_0202AD08
+.extern FUN_0202ADC8
+.extern FUN_0202ADF0
+.extern FUN_0202AE0C
+.extern FUN_0202AE4C
+.extern FUN_0202AE70
+.extern FUN_0202AE90
+.extern FUN_0202AEF4
+.extern FUN_0202AF24
+.extern FUN_0202AF50
+.extern FUN_0202AF60
+.extern FUN_0202AF70
+.extern FUN_0202AF88
+.extern FUN_0202AF9C
+.extern FUN_0202AFC0
+.extern FUN_0202AFFC
+.extern FUN_0202B020
+.extern FUN_0202B034
+.extern FUN_0202B03C
+.extern FUN_0202B050
+.extern FUN_0202B1F0
+.extern FUN_0202B21C
+.extern FUN_0202B250
+.extern FUN_0202B29C
+.extern FUN_0202B31C
+.extern FUN_0202B374
+.extern FUN_0202B37C
+.extern FUN_0202B390
+.extern FUN_0202B3C4
+.extern FUN_0202B3F8
+.extern FUN_0202B40C
+.extern FUN_0202B410
+.extern FUN_0202B414
+.extern FUN_0202B440
+.extern FUN_0202B458
+.extern FUN_0202B4B0
+.extern FUN_0202B534
+.extern FUN_0202B538
+.extern FUN_0202B53C
+.extern FUN_0202B540
+.extern FUN_0202B544
+.extern FUN_0202B5C8
+.extern FUN_0202B5CC
+.extern FUN_0202B5D8
+.extern FUN_0202B678
+.extern FUN_0202B710
+.extern FUN_0202B7C8
+.extern FUN_0202B7F4
+.extern FUN_0202B820
+.extern FUN_0202B838
+.extern FUN_0202B844
+.extern FUN_0202B850
+.extern FUN_0202B85C
+.extern FUN_0202B868
+.extern FUN_0202B870
+.extern FUN_0202B87C
+.extern FUN_0202B8B0
+.extern FUN_0202B8B8
+.extern FUN_0202B8E4
+.extern FUN_0202B8F0
+.extern FUN_0202B9EC
+.extern FUN_0202BCF4
+.extern FUN_0202BD6C
+.extern FUN_0202BDF0
+.extern FUN_0202BE6C
+.extern FUN_0202BE98
+.extern FUN_0202BEA0
+.extern FUN_0202BEDC
+.extern FUN_0202BF7C
+.extern FUN_0202BF90
+.extern FUN_0202BFD8
+.extern FUN_0202C000
+.extern FUN_0202C028
+.extern FUN_0202C060
+.extern FUN_0202C094
+.extern FUN_0202C0B8
+.extern FUN_0202C0E0
+.extern FUN_0202C0E4
+.extern FUN_0202C108
+.extern FUN_0202C12C
+.extern FUN_0202C144
+.extern FUN_0202C4D8
+.extern FUN_0202C570
+.extern FUN_0202C770
+.extern FUN_0202CB70
+.extern FUN_0202CB7C
+.extern FUN_0202CB8C
+.extern FUN_0202CBD4
+.extern FUN_0202CBE8
+.extern FUN_0202CBFC
+.extern FUN_0202CDA4
+.extern FUN_0202CE64
+.extern FUN_0202CEEC
+.extern FUN_0202CF84
+.extern FUN_0202D034
+.extern FUN_0202D0A0
+.extern FUN_0202D0D0
+.extern FUN_0202D100
+.extern FUN_0202D178
+.extern FUN_0202D19C
+.extern FUN_0202D1B0
+.extern FUN_0202D1C8
+.extern FUN_0202D1E4
+.extern FUN_0202D200
+.extern FUN_0202D21C
+.extern FUN_0202D240
+.extern FUN_0202D298
+.extern FUN_0202D2D0
+.extern FUN_0202D2F4
+.extern FUN_0202D308
+.extern FUN_0202D31C
+.extern FUN_0202D330
+.extern FUN_0202D344
+.extern FUN_0202D358
+.extern FUN_0202D36C
+.extern FUN_0202D380
+.extern FUN_0202D394
+.extern FUN_0202D3A4
+.extern FUN_0202D400
+.extern FUN_0202D41C
+.extern FUN_0202D478
+.extern FUN_0202D498
+.extern FUN_0202D4BC
+.extern FUN_0202D4E4
+.extern FUN_0202D684
+.extern FUN_0202D760
+.extern FUN_0202D7D8
+.extern FUN_0202D804
+.extern FUN_0202D824
+.extern FUN_0202D830
+.extern FUN_0202D858
+.extern FUN_0202D884
+.extern FUN_0202D8B0
+.extern FUN_0202D8D0
+.extern FUN_0202D918
+.extern FUN_0202D934
+.extern FUN_0202D9A0
+.extern FUN_0202DA04
+.extern FUN_0202DA40
+.extern FUN_0202DA78
+.extern FUN_0202DA80
+.extern FUN_0202DA84
+.extern FUN_0202DB14
+.extern FUN_0202DBA4
+.extern FUN_0202DBE0
+.extern FUN_0202DCDC
+.extern FUN_0202DCE0
+.extern FUN_0202DCF8
+.extern FUN_0202DD08
+.extern FUN_0202DD80
+.extern FUN_0202DDE8
+.extern FUN_0202DE78
+.extern FUN_0202DEA4
+.extern FUN_0202DEC0
+.extern FUN_0202DEE0
+.extern FUN_0202DEF4
+.extern FUN_0202DF08
+.extern FUN_0202DF28
+.extern FUN_0202DF54
+.extern FUN_0202DFA4
+.extern FUN_0202DFD8
+.extern FUN_0202DFFC
+.extern FUN_0202E020
+.extern FUN_0202E044
+.extern FUN_0202E068
+.extern FUN_0202E08C
+.extern FUN_0202E1BC
+.extern FUN_0202E25C
+.extern FUN_0202E288
+.extern FUN_0202E29C
+.extern FUN_0202E344
+.extern FUN_0202E49C
+.extern FUN_0202E4C8
+.extern FUN_0202E4DC
+.extern FUN_0202E4F0
+.extern FUN_0202E538
+.extern FUN_0202E5F8
+.extern FUN_0202E66C
+.extern FUN_0202E6F0
+.extern FUN_0202E784
+.extern FUN_0202E7B0
+.extern FUN_0202E810
+.extern FUN_0202E844
+.extern FUN_0202E878
+.extern FUN_0202E88C
+.extern FUN_0202E8A0
+.extern FUN_0202E8F4
+.extern FUN_0202E950
+.extern FUN_0202E9AC
+.extern FUN_0202E9E8
+.extern FUN_0202EA54
+.extern FUN_0202ED70
+.extern FUN_0202EDD8
+.extern FUN_0202EDF8
+.extern FUN_0202EE0C
+.extern FUN_0202EE24
+.extern FUN_0202EE44
+.extern FUN_0202EE60
+.extern FUN_0202EE84
+.extern FUN_0202EEB0
+.extern FUN_0202EF18
+.extern FUN_0202EF70
+.extern FUN_0202EF84
+.extern FUN_0202EFAC
+.extern FUN_0202F03C
+.extern FUN_0202F05C
+.extern FUN_0202F078
+.extern FUN_0202F094
+.extern FUN_0202F0B8
+.extern FUN_0202F0DC
+.extern FUN_0202F104
+.extern FUN_0202F10C
+.extern FUN_0202F124
+.extern FUN_0202F918
+.extern FUN_0202F950
+.extern FUN_0202FA10
+.extern FUN_0202FA1C
+.extern FUN_0202FA48
+.extern FUN_0202FA5C
+.extern FUN_0202FB18
+.extern FUN_0202FB80
+.extern FUN_0202FC60
+.extern FUN_0202FC80
+.extern FUN_0202FCA8
+.extern FUN_02030238
+.extern FUN_020303BC
+.extern FUN_020307A8
+.extern FUN_020307BC
+.extern FUN_020307D0
+.extern FUN_0203086C
+.extern FUN_02030A78
+.extern FUN_02030ADC
+.extern FUN_02030B3C
+.extern FUN_02030BC4
+.extern FUN_02030C4C
+.extern FUN_02030C58
+.extern FUN_02030E7C
+.extern FUN_02030F20
+.extern FUN_02030F40
+.extern FUN_02030F60
+.extern FUN_02030F74
+.extern FUN_02030F88
+.extern FUN_02030FA8
+.extern FUN_02030FC8
+.extern FUN_02030FE0
+.extern FUN_02031000
+.extern FUN_0203105C
+.extern FUN_0203110C
+.extern FUN_02031134
+.extern FUN_0203115C
+.extern FUN_02031190
+.extern FUN_020311D0
+.extern FUN_020311DC
+.extern FUN_020311E8
+.extern FUN_020311F0
+.extern FUN_02031248
+.extern FUN_02031258
+.extern FUN_02031268
+.extern FUN_02031280
+.extern FUN_0203129C
+.extern FUN_020312BC
+.extern FUN_02031354
+.extern FUN_02031370
+.extern FUN_02031388
+.extern FUN_020313A0
+.extern FUN_020313B4
+.extern FUN_020313CC
+.extern FUN_020313EC
+.extern FUN_02031400
+.extern FUN_02031438
+.extern FUN_02031454
+.extern FUN_02031468
+.extern FUN_02031480
+.extern FUN_020314D0
+.extern FUN_020314E8
+.extern FUN_020314FC
+.extern FUN_02031560
+.extern FUN_02031574
+.extern FUN_02031588
+.extern FUN_020315A4
+.extern FUN_020315D8
+.extern FUN_020315FC
+.extern FUN_0203160C
+.extern FUN_02031628
+.extern FUN_0203162C
+.extern FUN_02031640
+.extern FUN_02031668
+.extern FUN_0203168C
+.extern FUN_020316AC
+.extern FUN_020316E0
+.extern FUN_02031704
+.extern FUN_02031730
+.extern FUN_02031810
+.extern FUN_02031824
+.extern FUN_02031860
+.extern FUN_02031880
+.extern FUN_020318A4
+.extern FUN_020318B4
+.extern FUN_020318C4
+.extern FUN_02031914
+.extern FUN_02031924
+.extern FUN_02031934
+.extern FUN_02031948
+.extern FUN_02031990
+.extern FUN_020319D8
+.extern FUN_020319F4
+.extern FUN_02031A08
+.extern FUN_02031A24
+.extern FUN_02031A2C
+.extern FUN_02031A7C
+.extern FUN_02031AC8
+.extern FUN_02031AF4
+.extern FUN_02031B2C
+.extern FUN_02031B50
+.extern FUN_02031BD0
+.extern FUN_02031BF4
+.extern FUN_02031C10
+.extern FUN_02031C2C
+.extern FUN_02031C54
+.extern FUN_02031C64
+.extern FUN_02031C74
+.extern FUN_02031CA8
+.extern FUN_02031CDC
+.extern FUN_02032888
+.extern FUN_020328C0
+.extern FUN_020328E4
+.extern FUN_020328F4
+.extern FUN_02032A8C
+.extern FUN_02032AEC
+.extern FUN_02032B68
+.extern FUN_02032B6C
+.extern FUN_02032BD0
+.extern FUN_02032C0C
+.extern FUN_02032C28
+.extern FUN_02032D44
+.extern FUN_02032D80
+.extern FUN_02032D9C
+.extern FUN_02032DAC
+.extern FUN_02032FDC
+.extern FUN_0203300C
+.extern FUN_020330E4
+.extern FUN_02033128
+.extern FUN_02033138
+.extern FUN_02033154
+.extern FUN_02033180
+.extern FUN_020331C4
+.extern FUN_020331E8
+.extern FUN_02033208
+.extern FUN_0203323C
+.extern FUN_02033250
+.extern FUN_02033288
+.extern FUN_020332DC
+.extern FUN_02033310
+.extern FUN_02033364
+.extern FUN_0203346C
+.extern FUN_020334DC
+.extern FUN_020334E8
+.extern FUN_02033534
+.extern FUN_0203354C
+.extern FUN_02033564
+.extern FUN_02033578
+.extern FUN_02033590
+.extern FUN_020335A4
+.extern FUN_020335B8
+.extern FUN_020335D0
+.extern FUN_020335E0
+.extern FUN_020335F0
+.extern FUN_020335F4
+.extern FUN_02033678
+.extern FUN_020336A0
+.extern FUN_020336C0
+.extern FUN_020336C8
+.extern FUN_02033778
+.extern FUN_020337C8
+.extern FUN_020337E8
+.extern FUN_0203380C
+.extern FUN_02033830
+.extern FUN_0203384C
+.extern FUN_02033874
+.extern FUN_02033918
+.extern FUN_020339B4
+.extern FUN_02033A70
+.extern FUN_02033E74
+.extern FUN_02033ED0
+.extern FUN_02033EEC
+.extern FUN_02033F04
+.extern FUN_02033F20
+.extern FUN_02033F70
+.extern FUN_02034188
+.extern FUN_02034494
+.extern FUN_020344AC
+.extern FUN_020344D0
+.extern FUN_020344D8
+.extern FUN_020344FC
+.extern FUN_0203450C
+.extern FUN_0203451C
+.extern FUN_02034554
+.extern FUN_02034574
+.extern FUN_02034578
+.extern FUN_020345A8
+.extern FUN_020345DC
+.extern FUN_020345F0
+.extern FUN_020345FC
+.extern FUN_02034660
+.extern FUN_02034678
+.extern FUN_020346CC
+.extern FUN_02034724
+.extern FUN_02034738
+.extern FUN_0203474C
+.extern FUN_02034774
+.extern FUN_02034788
+.extern FUN_0203479C
+.extern FUN_020347B0
+.extern FUN_020347C4
+.extern FUN_020347D8
+.extern FUN_020347FC
+.extern FUN_02034810
+.extern FUN_02034824
+.extern FUN_02034838
+.extern FUN_0203484C
+.extern FUN_02034860
+.extern FUN_0203487C
+.extern FUN_02034898
+.extern FUN_020348B4
+.extern FUN_020348E4
+.extern FUN_02034908
+.extern FUN_02034930
+.extern FUN_02034944
+.extern FUN_02034964
+.extern FUN_02034984
+.extern FUN_02034998
+.extern FUN_020349AC
+.extern FUN_020349B8
+.extern FUN_020349CC
+.extern FUN_020349D8
+.extern FUN_020349E4
+.extern FUN_02034A04
+.extern FUN_02034A28
+.extern FUN_02034A48
+.extern FUN_02034A60
+.extern FUN_02034AC8
+.extern FUN_02034AF0
+.extern FUN_02034AF8
+.extern FUN_02034B00
+.extern FUN_02034B18
+.extern FUN_02034B54
+.extern FUN_02034B5C
+.extern FUN_02034B64
+.extern FUN_02034B6C
+.extern FUN_02034B74
+.extern FUN_02034BAC
+.extern FUN_02034BDC
+.extern FUN_02034C0C
+.extern FUN_02034C24
+.extern FUN_02034C34
+.extern FUN_02034CB4
+.extern FUN_02034CE0
+.extern FUN_02034D2C
+.extern FUN_02034D44
+.extern FUN_02034D7C
+.extern FUN_02034D80
+.extern FUN_02034D88
+.extern FUN_02034D98
+.extern FUN_02034DC0
+.extern FUN_02034DC4
+.extern FUN_02034DC8
+.extern FUN_02034DCC
+.extern FUN_02034DD0
+.extern FUN_02034DD4
+.extern FUN_02034DE8
+.extern FUN_02034DEC
+.extern FUN_02034DF4
+.extern FUN_02034DFC
+.extern FUN_02034E04
+.extern FUN_02034E0C
+.extern FUN_02034E10
+.extern FUN_02034E18
+.extern FUN_02034E20
+.extern FUN_02034E24
+.extern FUN_02034E28
+.extern FUN_02034E2C
+.extern FUN_02034E30
+.extern FUN_02034E48
+.extern FUN_02034E60
+.extern FUN_02034E8C
+.extern FUN_02034E90
+.extern FUN_02034EC4
+.extern FUN_02034EF8
+.extern FUN_02034F1C
+.extern FUN_02034F40
+.extern FUN_02034F88
+.extern FUN_02034FC0
+.extern FUN_02034FE4
+.extern FUN_02035068
+.extern FUN_02035080
+.extern FUN_02035118
+.extern FUN_0203515C
+.extern FUN_020351A0
+.extern FUN_02035D04
+.extern FUN_02035E50
+.extern FUN_02036A78
+.extern FUN_02036AB8
+.extern FUN_02036B90
+.extern FUN_02036BC4
+.extern FUN_02036BDC
+.extern FUN_02036D94
+.extern FUN_02036DD4
+.extern FUN_02036FA4
+.extern FUN_02037000
+.extern FUN_02037024
+.extern FUN_02037090
+.extern FUN_020370BC
+.extern FUN_020371D0
+.extern FUN_02037230
+.extern FUN_02037264
+.extern FUN_02037394
+.extern FUN_0203739C
+.extern FUN_020373AC
+.extern FUN_020373C4
+.extern FUN_020373D4
+.extern FUN_02037760
+.extern FUN_02037778
+.extern FUN_02037790
+.extern FUN_020377A8
+.extern FUN_020377AC
+.extern FUN_020377B0
+.extern FUN_020377C8
+.extern FUN_020377E0
+.extern FUN_0203780C
+.extern FUN_0203781C
+.extern FUN_02037844
+.extern FUN_0203789C
+.extern FUN_020378FC
+.extern FUN_0203791C
+.extern FUN_02037944
+.extern FUN_0203796C
+.extern FUN_020379C8
+.extern FUN_020379F8
+.extern FUN_02037A1C
+.extern FUN_02037A40
+.extern FUN_02037A48
+.extern FUN_02037A70
+.extern FUN_02037A78
+.extern FUN_02037B44
+.extern FUN_02037BB0
+.extern FUN_02037C00
+.extern FUN_02037CF0
+.extern FUN_02037D5C
+.extern FUN_02037D60
+.extern FUN_02037E18
+.extern FUN_02037E80
+.extern FUN_02037E90
+.extern FUN_02037EB8
+.extern FUN_02037EF8
+.extern FUN_02037F2C
+.extern FUN_02037F58
+.extern FUN_02037F90
+.extern FUN_02037FC4
+.extern FUN_02037FE4
+.extern FUN_020380CC
+.extern FUN_02038130
+.extern FUN_020383D8
+.extern FUN_020383F8
+.extern FUN_0203842C
+.extern FUN_0203846C
+.extern FUN_020385CC
+.extern FUN_02038680
+.extern FUN_02038690
+.extern FUN_020386A4
+.extern FUN_020386B4
+.extern FUN_020386E0
+.extern FUN_02038790
+.extern FUN_02038804
+.extern FUN_02038814
+.extern FUN_02038824
+.extern FUN_02038854
+.extern FUN_02038864
+.extern FUN_0203888C
+.extern FUN_020388B4
+.extern FUN_020389CC
+.extern FUN_02038AD0
+.extern FUN_02038AF4
+.extern FUN_02038B6C
+.extern FUN_02038C78
+.extern FUN_02038CA8
+.extern FUN_02038CD8
+.extern FUN_02038D10
+.extern FUN_02038EB0
+.extern FUN_02039438
+.extern FUN_02039460
+.extern FUN_020394B8
+.extern FUN_020394F0
+.extern FUN_02039504
+.extern FUN_02039528
+.extern FUN_0203953C
+.extern FUN_02039550
+.extern FUN_02039564
+.extern FUN_0203959C
+.extern FUN_020395BC
+.extern FUN_020395F4
+.extern FUN_02039618
+.extern FUN_0203962C
+.extern FUN_02039640
+.extern FUN_0203965C
+.extern FUN_02039678
+.extern FUN_02039694
+.extern FUN_02039754
+.extern FUN_02039874
+.extern FUN_0203989C
+.extern FUN_020399A0
+.extern FUN_020399A4
+.extern FUN_020399A8
+.extern FUN_020399B4
+.extern FUN_02039A10
+.extern FUN_02039A28
+.extern FUN_02039A40
+.extern FUN_02039A5C
+.extern FUN_02039A78
+.extern FUN_02039A90
+.extern FUN_02039AAC
+.extern FUN_02039ACC
+.extern FUN_02039AF8
+.extern FUN_02039B28
+.extern FUN_02039B50
+.extern FUN_02039B78
+.extern FUN_02039BA0
+.extern FUN_02039BBC
+.extern FUN_02039BDC
+.extern FUN_02039C08
+.extern FUN_02039C40
+.extern FUN_02039C78
+.extern FUN_02039CE4
+.extern FUN_02039CF8
+.extern FUN_02039D10
+.extern FUN_02039D48
+.extern FUN_02039D78
+.extern FUN_02039DAC
+.extern FUN_02039DC4
+.extern FUN_02039DD0
+.extern FUN_02039E04
+.extern FUN_02039E38
+.extern FUN_02039E50
+.extern FUN_02039E68
+.extern FUN_02039E84
+.extern FUN_02039EC0
+.extern FUN_02039EE8
+.extern FUN_02039F0C
+.extern FUN_02039F30
+.extern FUN_02039F58
+.extern FUN_02039F88
+.extern FUN_02039FB8
+.extern FUN_02039FDC
+.extern FUN_0203A00C
+.extern FUN_0203A038
+.extern FUN_0203A04C
+.extern FUN_0203A098
+.extern FUN_0203A0FC
+.extern FUN_0203A13C
+.extern FUN_0203A188
+.extern FUN_0203A210
+.extern FUN_0203A288
+.extern FUN_0203A2C4
+.extern FUN_0203A304
+.extern FUN_0203A340
+.extern FUN_0203A388
+.extern FUN_0203A3C4
+.extern FUN_0203A400
+.extern FUN_0203A45C
+.extern FUN_0203A484
+.extern FUN_0203A4D0
+.extern FUN_0203A560
+.extern FUN_0203A590
+.extern FUN_0203A5D8
+.extern FUN_0203A608
+.extern FUN_0203A630
+.extern FUN_0203A780
+.extern FUN_0203A830
+.extern FUN_0203A85C
+.extern FUN_0203A878
+.extern FUN_0203A8B8
+.extern FUN_0203A9F0
+.extern FUN_0203AA90
+.extern FUN_0203AAA0
+.extern FUN_0203AB44
+.extern FUN_0203AB74
+.extern FUN_0203AB8C
+.extern FUN_0203AC14
+.extern FUN_0203AC9C
+.extern FUN_0203ACC4
+.extern FUN_0203AD08
+.extern FUN_0203AD54
+.extern FUN_0203ADC4
+.extern FUN_0203AE4C
+.extern FUN_0203AED4
+.extern FUN_0203AF34
+.extern FUN_0203AF58
+.extern FUN_0203AF84
+.extern FUN_0203AFA4
+.extern FUN_0203AFC4
+.extern FUN_0203B024
+.extern FUN_0203B148
+.extern FUN_0203B1F0
+.extern FUN_0203B2E0
+.extern FUN_0203B3B0
+.extern FUN_0203B3C0
+.extern FUN_0203B3DC
+.extern FUN_0203B3F8
+.extern FUN_0203B440
+.extern FUN_0203B468
+.extern FUN_0203B500
+.extern FUN_0203B544
+.extern FUN_0203B574
+.extern FUN_0203B5B8
+.extern FUN_0203B618
+.extern FUN_0203B640
+.extern FUN_0203B724
+.extern FUN_0203B758
+.extern FUN_0203B790
+.extern FUN_0203B7D8
+.extern FUN_0203B7F0
+.extern FUN_0203B81C
+.extern FUN_0203B85C
+.extern FUN_0203B8A0
+.extern FUN_0203B8E4
+.extern FUN_0203B914
+.extern FUN_0203B944
+.extern FUN_0203B968
+.extern FUN_0203B9B4
+.extern FUN_0203BA3C
+.extern FUN_0203BAB0
+.extern FUN_0203BAF4
+.extern FUN_0203BB34
+.extern FUN_0203BB80
+.extern FUN_0203BB84
+.extern FUN_0203BB88
+.extern FUN_0203BB8C
+.extern FUN_0203BC04
+.extern FUN_0203BC1C
+.extern FUN_0203BC2C
+.extern FUN_0203BCBC
+.extern FUN_0203BCCC
+.extern FUN_0203BCD8
+.extern FUN_0203BD08
+.extern FUN_0203BD28
+.extern FUN_0203BDB8
+.extern FUN_0203BE50
+.extern FUN_0203BE68
+.extern FUN_0203BE80
+.extern FUN_0203BECC
+.extern FUN_0203BF00
+.extern FUN_0203BF20
+.extern FUN_0203BF2C
+.extern FUN_0203BF84
+.extern FUN_0203BFEC
+.extern FUN_0203C054
+.extern FUN_0203C090
+.extern FUN_0203C0CC
+.extern FUN_0203C0FC
+.extern FUN_0203C118
+.extern FUN_0203C12C
+.extern FUN_0203C174
+.extern FUN_0203C1AC
+.extern FUN_0203C200
+.extern FUN_0203C278
+.extern FUN_0203C2C4
+.extern FUN_0203C2E0
+.extern FUN_0203C2F0
+.extern FUN_0203C300
+.extern FUN_0203C32C
+.extern FUN_0203C33C
+.extern FUN_0203C368
+.extern FUN_0203C3C8
+.extern FUN_0203C3E8
+.extern FUN_0203C430
+.extern FUN_0203C460
+.extern FUN_0203C4B0
+.extern FUN_0203C4F0
+.extern FUN_0203C520
+.extern FUN_0203C58C
+.extern FUN_0203C5BC
+.extern FUN_0203C614
+.extern FUN_0203C680
+.extern FUN_0203C6C4
+.extern FUN_0203C70C
+.extern FUN_0203C730
+.extern FUN_0203C788
+.extern FUN_0203C7E4
+.extern FUN_0203C7F4
+.extern FUN_0203C820
+.extern FUN_0203C844
+.extern FUN_0203C874
+.extern FUN_0203C8B4
+.extern FUN_0203C8E4
+.extern FUN_0203C930
+.extern FUN_0203C960
+.extern FUN_0203C990
+.extern FUN_0203CA20
+.extern FUN_0203CA2C
+.extern FUN_0203CA5C
+.extern FUN_0203CAE8
+.extern FUN_0203CB08
+.extern FUN_0203CB20
+.extern FUN_0203CB48
+.extern FUN_0203CB60
+.extern FUN_0203CB70
+.extern FUN_0203CBBC
+.extern FUN_0203CBE8
+.extern FUN_0203CC88
+.extern FUN_0203CD20
+.extern FUN_0203CDB8
+.extern FUN_0203CDC4
+.extern FUN_0203CDD0
+.extern FUN_0203CE00
+.extern FUN_0203CE0C
+.extern FUN_0203CE8C
+.extern FUN_0203CEBC
+.extern FUN_0203CF04
+.extern FUN_0203CF34
+.extern FUN_0203CF64
+.extern FUN_0203CF94
+.extern FUN_0203CFC4
+.extern FUN_0203CFC8
+.extern FUN_0203D050
+.extern FUN_0203D0A4
+.extern FUN_0203D0F8
+.extern FUN_0203D134
+.extern FUN_0203D140
+.extern FUN_0203D150
+.extern FUN_0203D178
+.extern FUN_0203D194
+.extern FUN_0203D1A4
+.extern FUN_0203D1C0
+.extern FUN_0203D214
+.extern FUN_0203D23C
+.extern FUN_0203D248
+.extern FUN_0203D278
+.extern FUN_0203D2A4
+.extern FUN_0203D2E4
+.extern FUN_0203D330
+.extern FUN_0203D33C
+.extern FUN_0203D36C
+.extern FUN_0203D3A4
+.extern FUN_0203D3DC
+.extern FUN_0203D448
+.extern FUN_0203D458
+.extern FUN_0203D490
+.extern FUN_0203D4E8
+.extern FUN_0203D528
+.extern FUN_0203D560
+.extern FUN_0203D5B0
+.extern FUN_0203D5F8
+.extern FUN_0203D60C
+.extern FUN_0203D61C
+.extern FUN_0203D630
+.extern FUN_0203D66C
+.extern FUN_0203D6C4
+.extern FUN_0203D728
+.extern FUN_0203D738
+.extern FUN_0203D774
+.extern FUN_0203D7DC
+.extern FUN_0203D834
+.extern FUN_0203D868
+.extern FUN_0203D874
+.extern FUN_0203D8A0
+.extern FUN_0203D8D0
+.extern FUN_0203D8E8
+.extern FUN_0203D8EC
+.extern FUN_0203D920
+.extern FUN_0203D938
+.extern FUN_0203D948
+.extern FUN_0203D958
+.extern FUN_0203D998
+.extern FUN_0203D9E8
+.extern FUN_0203DA78
+.extern FUN_0203DAB0
+.extern FUN_0203DAE8
+.extern FUN_0203DB38
+.extern FUN_0203DB88
+.extern FUN_0203DBD4
+.extern FUN_0203DC00
+.extern FUN_0203DC58
+.extern FUN_0203DC70
+.extern FUN_0203DC88
+.extern FUN_0203DCA0
+.extern FUN_0203DCB8
+.extern FUN_0203DCC8
+.extern FUN_0203DCD8
+.extern FUN_0203DCE8
+.extern FUN_0203DCF8
+.extern FUN_0203DD08
+.extern FUN_0203DD18
+.extern FUN_0203DD34
+.extern FUN_0203DD50
+.extern FUN_0203DD60
+.extern FUN_0203DE00
+.extern FUN_0203DE4C
+.extern FUN_0203DE58
+.extern FUN_0203DE80
+.extern FUN_0203DEA8
+.extern FUN_0203DEC4
+.extern FUN_0203DEF8
+.extern FUN_0203DF2C
+.extern FUN_0203DF38
+.extern FUN_0203DF64
+.extern FUN_0203DF84
+.extern FUN_0203DFA8
+.extern FUN_0203DFE0
+.extern FUN_0203E018
+.extern FUN_0203E054
+.extern FUN_0203E078
+.extern FUN_0203E0CC
+.extern FUN_0203E120
+.extern FUN_0203E138
+.extern FUN_0203E168
+.extern FUN_0203E254
+.extern FUN_0203E258
+.extern FUN_0203E29C
+.extern FUN_0203E2F8
+.extern FUN_0203E35C
+.extern FUN_0203E38C
+.extern FUN_0203E3D0
+.extern FUN_0203E408
+.extern FUN_0203E440
+.extern FUN_0203E470
+.extern FUN_0203E4A0
+.extern FUN_0203E4B0
+.extern FUN_0203E4D8
+.extern FUN_0203E4F0
+.extern FUN_0203E510
+.extern FUN_0203E568
+.extern FUN_0203E5DC
+.extern FUN_0203E674
+.extern FUN_0203E684
+.extern FUN_0203E6B4
+.extern FUN_0203E6C4
+.extern FUN_0203E6FC
+.extern FUN_0203E72C
+.extern FUN_0203E744
+.extern FUN_0203E774
+.extern FUN_0203E7F0
+.extern FUN_0203E81C
+.extern FUN_0203E848
+.extern FUN_0203E858
+.extern FUN_0203E870
+.extern FUN_0203E894
+.extern FUN_0203E8C4
+.extern FUN_0203E8F4
+.extern FUN_0203E928
+.extern FUN_0203E940
+.extern FUN_0203E954
+.extern FUN_0203E968
+.extern FUN_0203E9CC
+.extern FUN_0203EA68
+.extern FUN_0203EA90
+.extern FUN_0203EAB0
+.extern FUN_0203EB20
+.extern FUN_0203EB48
+.extern FUN_0203EB88
+.extern FUN_0203EBC8
+.extern FUN_0203EBE4
+.extern FUN_0203ECAC
+.extern FUN_0203ECD8
+.extern FUN_0203ECF4
+.extern FUN_0203ED10
+.extern FUN_0203ED70
+.extern FUN_0203EDA4
+.extern FUN_0203EDC8
+.extern FUN_0203EDE0
+.extern FUN_0203EE08
+.extern FUN_0203EE18
+.extern FUN_0203EE28
+.extern FUN_0203EE58
+.extern FUN_0203EE68
+.extern FUN_0203EE78
+.extern FUN_0203EE98
+.extern FUN_0203EED8
+.extern FUN_0203EF58
+.extern FUN_0203F00C
+.extern FUN_0203F020
+.extern FUN_0203F034
+.extern FUN_0203F058
+.extern FUN_0203F07C
+.extern FUN_0203F110
+.extern FUN_0203F174
+.extern FUN_0203F19C
+.extern FUN_0203F234
+.extern FUN_0203F254
+.extern FUN_0203F26C
+.extern FUN_0203F2AC
+.extern FUN_0203F2E4
+.extern FUN_0203F31C
+.extern FUN_0203F348
+.extern FUN_0203F38C
+.extern FUN_0203F39C
+.extern FUN_0203F3AC
+.extern FUN_0203F418
+.extern FUN_0203F44C
+.extern FUN_0203F484
+.extern FUN_0203F4D8
+.extern FUN_0203F508
+.extern FUN_0203F5D4
+.extern FUN_0203F604
+.extern FUN_0203F634
+.extern FUN_0203F664
+.extern FUN_0203F6E4
+.extern FUN_0203F720
+.extern FUN_0203F760
+.extern FUN_0203F7C8
+.extern FUN_0203F80C
+.extern FUN_0203F880
+.extern FUN_0203F8C0
+.extern FUN_0203F924
+.extern FUN_0203F954
+.extern FUN_0203F988
+.extern FUN_0203F9B0
+.extern FUN_0203F9DC
+.extern FUN_0203FA14
+.extern FUN_0203FA58
+.extern FUN_0203FB4C
+.extern FUN_0203FB64
+.extern FUN_0203FB94
+.extern FUN_0203FBA0
+.extern FUN_0203FBAC
+.extern FUN_0203FBBC
+.extern FUN_0203FC1C
+.extern FUN_0203FC58
+.extern FUN_0203FC80
+.extern FUN_0203FCB0
+.extern FUN_0203FCDC
+.extern FUN_0203FCF4
+.extern FUN_0203FDBC
+.extern FUN_0203FE08
+.extern FUN_0203FE48
+.extern FUN_0203FE80
+.extern FUN_0203FE90
+.extern FUN_0203FEC0
+.extern FUN_0203FF10
+.extern FUN_02040028
+.extern FUN_02040074
+.extern FUN_020400C8
+.extern FUN_0204011C
+.extern FUN_02040170
+.extern FUN_020401CC
+.extern FUN_02040204
+.extern FUN_02040220
+.extern FUN_0204025C
+.extern FUN_02040298
+.extern FUN_020402D4
+.extern FUN_02040304
+.extern FUN_02040340
+.extern FUN_02040370
+.extern FUN_020403A0
+.extern FUN_020403D0
+.extern FUN_02040414
+.extern FUN_02040458
+.extern FUN_02040488
+.extern FUN_020404FC
+.extern FUN_0204052C
+.extern FUN_0204056C
+.extern FUN_0204059C
+.extern FUN_020405B4
+.extern FUN_020405CC
+.extern FUN_020405F8
+.extern FUN_02040638
+.extern FUN_0204064C
+.extern FUN_02040660
+.extern FUN_020406C0
+.extern FUN_020406CC
+.extern FUN_02040700
+.extern FUN_02040724
+.extern FUN_02040748
+.extern FUN_02040790
+.extern FUN_020407C8
+.extern FUN_02040800
+.extern FUN_0204083C
+.extern FUN_02040874
+.extern FUN_020408BC
+.extern FUN_0204091C
+.extern FUN_02040964
+.extern FUN_020409C0
+.extern FUN_020409F8
+.extern FUN_02040A30
+.extern FUN_02040A7C
+.extern FUN_02040B0C
+.extern FUN_02040B5C
+.extern FUN_02040BAC
+.extern FUN_02040BFC
+.extern FUN_02040C34
+.extern FUN_02040C6C
+.extern FUN_02040CA4
+.extern FUN_02040D04
+.extern FUN_02040D7C
+.extern FUN_02040DB4
+.extern FUN_02040DEC
+.extern FUN_02040E4C
+.extern FUN_02040EB4
+.extern FUN_02040EF8
+.extern FUN_02040F34
+.extern FUN_02040F6C
+.extern FUN_02040FA4
+.extern FUN_02040FDC
+.extern FUN_02041014
+.extern FUN_0204104C
+.extern FUN_02041094
+.extern FUN_020410C8
+.extern FUN_02041100
+.extern FUN_02041138
+.extern FUN_02041174
+.extern FUN_02041194
+.extern FUN_020411C4
+.extern FUN_02041340
+.extern FUN_020413C0
+.extern FUN_020413E8
+.extern FUN_020413F8
+.extern FUN_0204140C
+.extern FUN_02041424
+.extern FUN_0204143C
+.extern FUN_02041478
+.extern FUN_0204149C
+.extern FUN_020414B8
+.extern FUN_020414CC
+.extern FUN_020414E0
+.extern FUN_020414FC
+.extern FUN_02041518
+.extern FUN_02041558
+.extern FUN_02041588
+.extern FUN_020415AC
+.extern FUN_020415BC
+.extern FUN_020415E0
+.extern FUN_02041618
+.extern FUN_02041644
+.extern FUN_02041650
+.extern FUN_02041664
+.extern FUN_02041674
+.extern FUN_020416A8
+.extern FUN_02041770
+.extern FUN_020417E0
+.extern FUN_02041808
+.extern FUN_0204185C
+.extern FUN_0204188C
+.extern FUN_0204190C
+.extern FUN_02041970
+.extern FUN_020419F8
+.extern FUN_02041A80
+.extern FUN_02041AB4
+.extern FUN_02041AD4
+.extern FUN_02041AE0
+.extern FUN_02041B10
+.extern FUN_02041B40
+.extern FUN_02041B70
+.extern FUN_02041B9C
+.extern FUN_02041BC4
+.extern FUN_02041BF0
+.extern FUN_02041C38
+.extern FUN_02041E40
+.extern FUN_02041FDC
+.extern FUN_02042000
+.extern FUN_02042038
+.extern FUN_02042110
+.extern FUN_0204214C
+.extern FUN_02042354
+.extern FUN_02042364
+.extern FUN_02042394
+.extern FUN_020423B0
+.extern FUN_02042700
+.extern FUN_02042780
+.extern FUN_020427A8
+.extern FUN_020427D0
+.extern FUN_02042864
+.extern FUN_02042894
+.extern FUN_020428E0
+.extern FUN_02042950
+.extern FUN_02042980
+.extern FUN_02042998
+.extern FUN_020429B8
+.extern FUN_020429E8
+.extern FUN_02042A18
+.extern FUN_02042A48
+.extern FUN_02042A98
+.extern FUN_02042B0C
+.extern FUN_02042B40
+.extern FUN_02042B74
+.extern FUN_02042BA8
+.extern FUN_02042BDC
+.extern FUN_02042C10
+.extern FUN_02042C44
+.extern FUN_02042C8C
+.extern FUN_02042CBC
+.extern FUN_02042D1C
+.extern FUN_0204387C
+.extern FUN_020438D0
+.extern FUN_02043918
+.extern FUN_020439B4
+.extern FUN_02043A44
+.extern FUN_02043A94
+.extern FUN_02043AAC
+.extern FUN_02043ACC
+.extern FUN_02043AFC
+.extern FUN_02043B28
+.extern FUN_02043B54
+.extern FUN_02043B84
+.extern FUN_02043BD0
+.extern FUN_02043C28
+.extern FUN_02043C6C
+.extern FUN_02043C90
+.extern FUN_02043CB4
+.extern FUN_02043CE4
+.extern FUN_02043D28
+.extern FUN_02043D78
+.extern FUN_02043DC8
+.extern FUN_02043DE0
+.extern FUN_02043E00
+.extern FUN_02043E20
+.extern FUN_02043E50
+.extern FUN_02043E68
+.extern FUN_02043E9C
+.extern FUN_02043EFC
+.extern FUN_02043F50
+.extern FUN_02043FA0
+.extern FUN_02043FF4
+.extern FUN_02044034
+.extern FUN_020440C0
+.extern FUN_020440F0
+.extern FUN_02044120
+.extern FUN_02044138
+.extern FUN_0204413C
+.extern FUN_02044140
+.extern FUN_02044158
+.extern FUN_0204416C
+.extern FUN_02044198
+.extern FUN_020442BC
+.extern FUN_0204434C
+.extern FUN_020443A8
+.extern FUN_02044414
+.extern FUN_0204449C
+.extern FUN_020444F4
+.extern FUN_02044598
+.extern FUN_02044658
+.extern FUN_0204469C
+.extern FUN_02044730
+.extern FUN_0204478C
+.extern FUN_02044800
+.extern FUN_0204488C
+.extern FUN_020448D4
+.extern FUN_020449A4
+.extern FUN_02044A0C
+.extern FUN_02044A6C
+.extern FUN_02044A94
+.extern FUN_02044B00
+.extern FUN_02044B2C
+.extern FUN_02044B84
+.extern FUN_02044C0C
+.extern FUN_02044C88
+.extern FUN_02044CE0
+.extern FUN_02044D44
+.extern FUN_02044D8C
+.extern FUN_02044E34
+.extern FUN_02044E78
+.extern FUN_02044ED8
+.extern FUN_02044F20
+.extern FUN_02044F58
+.extern FUN_02044FE8
+.extern FUN_0204505C
+.extern FUN_02045104
+.extern FUN_02045170
+.extern FUN_020451D0
+.extern FUN_02045264
+.extern FUN_02045268
+.extern FUN_020452B4
+.extern FUN_02045308
+.extern FUN_02045398
+.extern FUN_0204539C
+.extern FUN_020453A0
+.extern FUN_020453F4
+.extern FUN_02045424
+.extern FUN_02045438
+.extern FUN_02045468
+.extern FUN_02045484
+.extern FUN_020454CC
+.extern FUN_02045500
+.extern FUN_0204552C
+.extern FUN_0204557C
+.extern FUN_02045590
+.extern FUN_020455BC
+.extern FUN_020455D0
+.extern FUN_020455E4
+.extern FUN_02045610
+.extern FUN_02045624
+.extern FUN_02045638
+.extern FUN_02045664
+.extern FUN_02045678
+.extern FUN_020456D4
+.extern FUN_0204572C
+.extern FUN_02045784
+.extern FUN_020457DC
+.extern FUN_02045834
+.extern FUN_0204588C
+.extern FUN_020458E4
+.extern FUN_02045918
+.extern FUN_02045950
+.extern FUN_02045954
+.extern FUN_02045958
+.extern FUN_020459AC
+.extern FUN_020459E8
+.extern FUN_02045A3C
+.extern FUN_02045A78
+.extern FUN_02045ACC
+.extern FUN_02045B08
+.extern FUN_02045B44
+.extern FUN_02045B80
+.extern FUN_02045BC8
+.extern FUN_02045C04
+.extern FUN_02045C40
+.extern FUN_02045C7C
+.extern FUN_02045CD4
+.extern FUN_02045D10
+.extern FUN_02045D4C
+.extern FUN_02045D88
+.extern FUN_02045DD0
+.extern FUN_02045E1C
+.extern FUN_02045E20
+.extern FUN_02045EE0
+.extern FUN_02045EE4
+.extern FUN_02045F24
+.extern FUN_02045F84
+.extern FUN_02045F88
+.extern FUN_02045FCC
+.extern FUN_02046010
+.extern FUN_0204601C
+.extern FUN_02046028
+.extern FUN_0204602C
+.extern FUN_02046030
+.extern FUN_02046294
+.extern FUN_0204629C
+.extern FUN_020462AC
+.extern FUN_020462B8
+.extern FUN_020462E4
+.extern FUN_0204630C
+.extern FUN_02046338
+.extern FUN_02046380
+.extern FUN_020463CC
+.extern FUN_020463EC
+.extern FUN_0204640C
+.extern FUN_02046420
+.extern FUN_0204646C
+.extern FUN_0204647C
+.extern FUN_0204649C
+.extern FUN_020464A4
+.extern FUN_02046500
+.extern FUN_02046528
+.extern FUN_0204652C
+.extern FUN_02046530
+.extern FUN_02046534
+.extern FUN_02046948
+.extern FUN_020469B8
+.extern FUN_02046A20
+.extern FUN_02046DB4
+.extern FUN_02046E18
+.extern FUN_02046F70
+.extern FUN_02046FA0
+.extern FUN_020470AC
+.extern FUN_020470E8
+.extern FUN_02047174
+.extern FUN_020471C0
+.extern FUN_0204726C
+.extern FUN_020472B0
+.extern FUN_020475A0
+.extern FUN_020475B0
+.extern FUN_020476CC
+.extern FUN_020477EC
+.extern FUN_02047800
+.extern FUN_02047814
+.extern FUN_02047964
+.extern FUN_020479FC
+.extern FUN_02047A78
+.extern FUN_02047BB0
+.extern FUN_02047BC0
+.extern FUN_02047D48
+.extern FUN_02047F1C
+.extern FUN_02047F38
+.extern FUN_02047FA4
+.extern FUN_020480AC
+.extern FUN_020480B8
+.extern FUN_020480C8
+.extern FUN_020480D8
+.extern FUN_020480E4
+.extern FUN_0204837C
+.extern FUN_02048498
+.extern FUN_02048694
+.extern FUN_020489DC
+.extern FUN_020489FC
+.extern FUN_02048C58
+.extern FUN_02048D90
+.extern FUN_02048EC8
+.extern FUN_02048FC8
+.extern FUN_02049160
+.extern FUN_020491A8
+.extern FUN_02049240
+.extern FUN_02049274
+.extern FUN_020492BC
+.extern FUN_02049494
+.extern FUN_02049718
+.extern FUN_0204976C
+.extern FUN_02049824
+.extern FUN_02049844
+.extern FUN_02049CB0
+.extern FUN_02049D9C
+.extern FUN_02049EA4
+.extern FUN_02049F98
+.extern FUN_02049FFC
+.extern FUN_0204A048
+.extern FUN_0204A0C8
+.extern FUN_0204A120
+.extern FUN_0204A138
+.extern FUN_0204A1D8
+.extern FUN_0204A20C
+.extern FUN_0204A248
+.extern FUN_0204A25C
+.extern FUN_0204A29C
+.extern FUN_0204A32C
+.extern FUN_0204A368
+.extern FUN_0204A390
+.extern FUN_0204A3A4
+.extern FUN_0204A690
+.extern FUN_0204A6B4
+.extern FUN_0204A6E0
+.extern FUN_0204A708
+.extern FUN_0204A770
+.extern FUN_0204A7C8
+.extern FUN_0204A840
+.extern FUN_0204A8C4
+.extern FUN_0204A94C
+.extern FUN_0204A9F0
+.extern FUN_0204AA5C
+.extern FUN_0204AAD4
+.extern FUN_0204AB0C
+.extern FUN_0204AB20
+.extern FUN_0204AB44
+.extern FUN_0204AB58
+.extern FUN_0204ABA8
+.extern FUN_0204ABDC
+.extern FUN_0204ACA8
+.extern FUN_0204AD0C
+.extern FUN_0204AD60
+.extern FUN_0204AD8C
+.extern FUN_0204ADBC
+.extern FUN_0204ADE0
+.extern FUN_0204AE04
+.extern FUN_0204AE5C
+.extern FUN_0204AEF8
+.extern FUN_0204AF3C
+.extern FUN_0204AF84
+.extern FUN_0204AFC8
+.extern FUN_0204B00C
+.extern FUN_0204B090
+.extern FUN_0204B0E8
+.extern FUN_0204B0F8
+.extern FUN_0204B2A4
+.extern FUN_0204B2B4
+.extern FUN_0204B2C0
+.extern FUN_0204B2CC
+.extern FUN_0204B2D8
+.extern FUN_0204B2E4
+.extern FUN_0204B2F0
+.extern FUN_0204B30C
+.extern FUN_0204B328
+.extern FUN_0204B33C
+.extern FUN_0204B388
+.extern FUN_0204B3B8
+.extern FUN_0204B3D0
+.extern FUN_0204B490
+.extern FUN_0204B4FC
+.extern FUN_0204B57C
+.extern FUN_0204B5A8
+.extern FUN_0204B5FC
+.extern FUN_0204B61C
+.extern FUN_0204B63C
+.extern FUN_0204B660
+.extern FUN_0204B684
+.extern FUN_0204B6A4
+.extern FUN_0204B6C4
+.extern FUN_0204B9A0
+.extern FUN_0204B9CC
+.extern FUN_0204B9EC
+.extern FUN_0204BA1C
+.extern FUN_0204BA68
+.extern FUN_0204BA90
+.extern FUN_0204BAA0
+.extern FUN_0204BAB0
+.extern FUN_0204BAC4
+.extern FUN_0204BAD4
+.extern FUN_0204BAE4
+.extern FUN_0204BE14
+.extern FUN_0204BE18
+.extern FUN_0204BEB8
+.extern FUN_0204BEC8
+.extern FUN_0204BED0
+.extern FUN_0204BED8
+.extern FUN_0204BF14
+.extern FUN_0204BF1C
+.extern FUN_0204BF44
+.extern FUN_0204BF58
+.extern FUN_0204BF84
+.extern FUN_0204BF88
+.extern FUN_0204BF94
+.extern FUN_0204BF9C
+.extern FUN_0204BFB0
+.extern FUN_0204BFF0
+.extern FUN_0204C02C
+.extern FUN_0204C064
+.extern FUN_0204C080
+.extern FUN_0204C0A4
+.extern FUN_0204C0CC
+.extern FUN_0204C0D4
+.extern FUN_0204C0E8
+.extern FUN_0204C104
+.extern FUN_0204C158
+.extern FUN_0204C174
+.extern FUN_0204C1A8
+.extern FUN_0204C1B4
+.extern FUN_0204C260
+.extern FUN_0204C29C
+.extern FUN_0204CA80
+.extern FUN_0204CA90
+.extern FUN_0204CAA0
+.extern FUN_0204CAB0
+.extern FUN_0204CAC0
+.extern FUN_0204CAD0
+.extern FUN_0204CAE0
+.extern FUN_0204CAF0
+.extern FUN_0204CB00
+.extern FUN_0204CB10
+.extern FUN_0204CB20
+.extern FUN_0204CC48
+.extern FUN_0204CC9C
+.extern FUN_0204CCE0
+.extern FUN_0204CDB4
+.extern FUN_0204CEF8
+.extern FUN_0204CF24
+.extern FUN_0204CF60
+.extern FUN_0204D040
+.extern FUN_0204D118
+.extern FUN_0204D168
+.extern FUN_0204D198
+.extern FUN_0204D320
+.extern FUN_0204D43C
+.extern FUN_0204D610
+.extern FUN_0204D67C
+.extern FUN_0204D6C0
+.extern FUN_0204D76C
+.extern FUN_0204D830
+.extern FUN_0204DB18
+.extern FUN_0204DBCC
+.extern FUN_0204DC34
+.extern FUN_0204DC38
+.extern FUN_0204E178
+.extern FUN_0204E1E8
+.extern FUN_0204E200
+.extern FUN_0204E214
+.extern FUN_0204E254
+.extern FUN_0204E2A8
+.extern FUN_0204E2E0
+.extern FUN_0204E2F0
+.extern FUN_0204E2FC
+.extern FUN_0204E34C
+.extern FUN_0204E35C
+.extern FUN_0204E3A4
+.extern FUN_0204E3EC
+.extern FUN_0204E440
+.extern FUN_0204E494
+.extern FUN_0204E4B4
+.extern FUN_0204E4D4
+.extern FUN_0204E50C
+.extern FUN_0204E544
+.extern FUN_0204E598
+.extern FUN_0204E5EC
+.extern FUN_0204E60C
+.extern FUN_0204E62C
+.extern FUN_0204E664
+.extern FUN_0204E69C
+.extern FUN_0204E6CC
+.extern FUN_0204E6FC
+.extern FUN_0204E758
+.extern FUN_0204E778
+.extern FUN_0204E794
+.extern FUN_0204E7CC
+.extern FUN_0204E850
+.extern FUN_0204E8B0
+.extern FUN_0204E8FC
+.extern FUN_0204E96C
+.extern FUN_0204EAD8
+.extern FUN_0204EB14
+.extern FUN_0204EB44
+.extern FUN_0204EC00
+.extern FUN_0204ECC0
+.extern FUN_0204ED08
+.extern FUN_0204EE9C
+.extern FUN_0204EEBC
+.extern FUN_0204F074
+.extern FUN_0204F08C
+.extern FUN_0204F0A8
+.extern FUN_0204F0C4
+.extern FUN_0204F0C8
+.extern FUN_0204F1B0
+.extern FUN_0204F210
+.extern FUN_0204F2D8
+.extern FUN_0204F610
+.extern FUN_0204F63C
+.extern FUN_0204F660
+.extern FUN_0204F678
+.extern FUN_0204F69C
+.extern FUN_0204F6B4
+.extern FUN_0204F6C8
+.extern FUN_0204F6DC
+.extern FUN_0204F70C
+.extern FUN_0204F72C
+.extern FUN_0204F74C
+.extern FUN_0204F774
+.extern FUN_0204F7D4
+.extern FUN_0204F7E4
+.extern FUN_0204F7FC
+.extern FUN_0204F80C
+.extern FUN_0204F858
+.extern FUN_0204F88C
+.extern FUN_0204F90C
+.extern FUN_0204F930
+.extern FUN_0204F9B8
+.extern FUN_0204F9BC
+.extern FUN_0204FA64
+.extern FUN_0204FA78
+.extern FUN_0204FACC
+.extern FUN_0204FAD0
+.extern FUN_0204FB00
+.extern FUN_0204FB14
+.extern FUN_0204FB28
+.extern FUN_0204FC5C
+.extern FUN_0204FCA0
+.extern FUN_0204FCD8
+.extern FUN_0204FCF4
+.extern FUN_0204FD24
+.extern FUN_0204FD38
+.extern FUN_0204FDE4
+.extern FUN_0204FE5C
+.extern FUN_0204FEB0
+.extern FUN_0204FEF0
+.extern FUN_0204FF30
+.extern FUN_0204FF4C
+.extern FUN_0204FF5C
+.extern FUN_02050024
+.extern FUN_02050048
+.extern FUN_02050A48
+.extern FUN_02050A68
+.extern FUN_02050BE8
+.extern FUN_02050BF8
+.extern FUN_02050DF0
+.extern FUN_02050E10
+.extern FUN_02050E2C
+.extern FUN_02051880
+.extern FUN_02051E30
+.extern FUN_02051E54
+.extern FUN_02051E64
+.extern FUN_02051E80
+.extern FUN_02052044
+.extern FUN_020520AC
+.extern FUN_020520F8
+.extern FUN_020524BC
+.extern FUN_020524C0
+.extern FUN_020524CC
+.extern FUN_02052544
+.extern FUN_02052604
+.extern FUN_02052608
+.extern FUN_02052648
+.extern FUN_0205265C
+.extern FUN_020526B4
+.extern FUN_020526B8
+.extern FUN_020526BC
+.extern FUN_020526D8
+.extern FUN_020526F0
+.extern FUN_0205270C
+.extern FUN_02052714
+.extern FUN_02052718
+.extern FUN_02052734
+.extern FUN_02052788
+.extern FUN_02052798
+.extern FUN_020527A8
+.extern FUN_020527D8
+.extern FUN_0205296C
+.extern FUN_02052A10
+.extern FUN_02052B74
+.extern FUN_02052C0C
+.extern FUN_02052CD8
+.extern FUN_02052CF0
+.extern FUN_02052D08
+.extern FUN_02052DE8
+.extern FUN_02052E10
+.extern FUN_02052E38
+.extern FUN_02052EAC
+.extern FUN_02052ED0
+.extern FUN_02052EE8
+.extern FUN_02052F74
+.extern FUN_02052F8C
+.extern FUN_02052FA4
+.extern FUN_020534DC
+.extern FUN_0205363C
+.extern FUN_02053678
+.extern FUN_020536C8
+.extern FUN_020536D0
+.extern FUN_02053708
+.extern FUN_02053C98
+.extern FUN_02054590
+.extern FUN_020545B8
+.extern FUN_02054608
+.extern FUN_0205464C
+.extern FUN_02054658
+.extern FUN_02054690
+.extern FUN_020546C8
+.extern FUN_020546E0
+.extern FUN_02054744
+.extern FUN_0205478C
+.extern FUN_02054798
+.extern FUN_020547A4
+.extern FUN_020547B0
+.extern FUN_020547BC
+.extern FUN_020547C8
+.extern FUN_020547D4
+.extern FUN_020547E0
+.extern FUN_020547EC
+.extern FUN_020547F8
+.extern FUN_02054804
+.extern FUN_02054810
+.extern FUN_0205481C
+.extern FUN_02054830
+.extern FUN_0205483C
+.extern FUN_02054848
+.extern FUN_02054854
+.extern FUN_02054860
+.extern FUN_0205486C
+.extern FUN_02054878
+.extern FUN_02054884
+.extern FUN_02054890
+.extern FUN_0205489C
+.extern FUN_020548A8
+.extern FUN_020548B4
+.extern FUN_020548C0
+.extern FUN_020548CC
+.extern FUN_020548D8
+.extern FUN_020548E4
+.extern FUN_020548F0
+.extern FUN_020548FC
+.extern FUN_02054908
+.extern FUN_02054914
+.extern FUN_02054920
+.extern FUN_0205492C
+.extern FUN_02054938
+.extern FUN_02054944
+.extern FUN_02054950
+.extern FUN_0205495C
+.extern FUN_02054968
+.extern FUN_02054974
+.extern FUN_02054984
+.extern FUN_02054990
+.extern FUN_020549A0
+.extern FUN_020549AC
+.extern FUN_020549CC
+.extern FUN_020549D8
+.extern FUN_020549E4
+.extern FUN_020549F0
+.extern FUN_020549FC
+.extern FUN_02054A0C
+.extern FUN_02054A18
+.extern FUN_02054A24
+.extern FUN_02054A30
+.extern FUN_02054A3C
+.extern FUN_02054A48
+.extern FUN_02054A54
+.extern FUN_02054A60
+.extern FUN_02054A84
+.extern FUN_02054AA8
+.extern FUN_02054ACC
+.extern FUN_02054AF0
+.extern FUN_02054AFC
+.extern FUN_02054B14
+.extern FUN_02054B20
+.extern FUN_02054B30
+.extern FUN_02054B3C
+.extern FUN_02054B48
+.extern FUN_02054B54
+.extern FUN_02054B60
+.extern FUN_02054B6C
+.extern FUN_02054B78
+.extern FUN_02054B8C
+.extern FUN_02054BB0
+.extern FUN_02054BD4
+.extern FUN_02054BE0
+.extern FUN_02054BF4
+.extern FUN_02054C08
+.extern FUN_02054C14
+.extern FUN_02054CB0
+.extern FUN_02054CC8
+.extern FUN_02054D1C
+.extern FUN_02054DEC
+.extern FUN_02054E30
+.extern FUN_02054F50
+.extern FUN_0205502C
+.extern FUN_02055068
+.extern FUN_020550A4
+.extern FUN_02055108
+.extern FUN_02055160
+.extern FUN_02055168
+.extern FUN_020552A4
+.extern FUN_020552F8
+.extern FUN_02055304
+.extern FUN_02055314
+.extern FUN_02055320
+.extern FUN_0205532C
+.extern FUN_02055338
+.extern FUN_02055344
+.extern FUN_02055350
+.extern FUN_02055360
+.extern FUN_0205536C
+.extern FUN_02055370
+.extern FUN_02055374
+.extern FUN_02055378
+.extern FUN_0205537C
+.extern FUN_020553A0
+.extern FUN_020553A8
+.extern FUN_020553C4
+.extern FUN_020553D4
+.extern FUN_020553DC
+.extern FUN_020553E0
+.extern FUN_020553E8
+.extern FUN_02055408
+.extern FUN_0205540C
+.extern FUN_02055410
+.extern FUN_0205541C
+.extern FUN_02055430
+.extern FUN_02055438
+.extern FUN_0205543C
+.extern FUN_02055450
+.extern FUN_02055454
+.extern FUN_0205545C
+.extern FUN_02055460
+.extern FUN_02055464
+.extern FUN_02055468
+.extern FUN_02055474
+.extern FUN_02055488
+.extern FUN_020554AC
+.extern FUN_020554BC
+.extern FUN_020554EC
+.extern FUN_02055514
+.extern FUN_02055540
+.extern FUN_02055560
+.extern FUN_0205557C
+.extern FUN_020555A0
+.extern FUN_02055648
+.extern FUN_02055698
+.extern FUN_0205569C
+.extern FUN_020556B4
+.extern FUN_020556C8
+.extern FUN_020556E0
+.extern FUN_020556F4
+.extern FUN_0205570C
+.extern FUN_02055720
+.extern FUN_02055738
+.extern FUN_0205574C
+.extern FUN_02055764
+.extern FUN_02055778
+.extern FUN_02055790
+.extern FUN_020557A4
+.extern FUN_020557B0
+.extern FUN_020557BC
+.extern FUN_020557D0
+.extern FUN_020557E8
+.extern FUN_020557F4
+.extern FUN_02055898
+.extern FUN_02055A38
+.extern FUN_02055B14
+.extern FUN_02055B30
+.extern FUN_02055B8C
+.extern FUN_02055C6C
+.extern FUN_02055C78
+.extern FUN_02055DAC
+.extern FUN_02055EF8
+.extern FUN_02055F44
+.extern FUN_02055F90
+.extern FUN_02056B74
+.extern FUN_02057020
+.extern FUN_020570C4
+.extern FUN_02057124
+.extern FUN_0205714C
+.extern FUN_02057194
+.extern FUN_02057254
+.extern FUN_02057260
+.extern FUN_02057278
+.extern FUN_020572B8
+.extern FUN_02057380
+.extern FUN_020573AC
+.extern FUN_020573C8
+.extern FUN_0205753C
+.extern FUN_020575D4
+.extern FUN_02057614
+.extern FUN_02057634
+.extern FUN_02057654
+.extern FUN_02057688
+.extern FUN_020576A8
+.extern FUN_0205771C
+.extern FUN_02057750
+.extern FUN_020577A8
+.extern FUN_02057800
+.extern FUN_0205785C
+.extern FUN_02057BAC
+.extern FUN_02058060
+.extern FUN_020580B4
+.extern FUN_020580F4
+.extern FUN_0205829C
+.extern FUN_020582A8
+.extern FUN_020582F8
+.extern FUN_02058368
+.extern FUN_0205837C
+.extern FUN_02058384
+.extern FUN_02058390
+.extern FUN_0205839C
+.extern FUN_020583A0
+.extern FUN_020583A4
+.extern FUN_020583AC
+.extern FUN_020583BC
+.extern FUN_020583D4
+.extern FUN_020583F0
+.extern FUN_020583F4
+.extern FUN_02058410
+.extern FUN_02058418
+.extern FUN_02058424
+.extern FUN_0205842C
+.extern FUN_02058444
+.extern FUN_02058448
+.extern FUN_02058450
+.extern FUN_02058454
+.extern FUN_02058458
+.extern FUN_0205845C
+.extern FUN_02058480
+.extern FUN_02058484
+.extern FUN_02058488
+.extern FUN_0205848C
+.extern FUN_02058494
+.extern FUN_02058498
+.extern FUN_020584A0
+.extern FUN_020584A4
+.extern FUN_020584AC
+.extern FUN_020584C4
+.extern FUN_020584C8
+.extern FUN_020584CC
+.extern FUN_020584D4
+.extern FUN_020584D8
+.extern FUN_020584EC
+.extern FUN_02058510
+.extern FUN_02058534
+.extern FUN_02058538
+.extern FUN_0205853C
+.extern FUN_02058540
+.extern FUN_02058544
+.extern FUN_0205854C
+.extern FUN_02058578
+.extern FUN_0205858C
+.extern FUN_020585B0
+.extern FUN_020585B4
+.extern FUN_020585D8
+.extern FUN_020585DC
+.extern FUN_02058600
+.extern FUN_02058604
+.extern FUN_02058628
+.extern FUN_02058638
+.extern FUN_0205864C
+.extern FUN_020586A0
+.extern FUN_020586DC
+.extern FUN_020586E8
+.extern FUN_020586F0
+.extern FUN_020586F8
+.extern FUN_02058700
+.extern FUN_02058710
+.extern FUN_02058718
+.extern FUN_02058720
+.extern FUN_02058728
+.extern FUN_02058730
+.extern FUN_02058738
+.extern FUN_02058744
+.extern FUN_02058750
+.extern FUN_02058768
+.extern FUN_02058774
+.extern FUN_02058780
+.extern FUN_020587B0
+.extern FUN_020587E0
+.extern FUN_020587F4
+.extern FUN_02058804
+.extern FUN_0205881C
+.extern FUN_02058830
+.extern FUN_0205883C
+.extern FUN_02058848
+.extern FUN_02058854
+.extern FUN_02058860
+.extern FUN_0205886C
+.extern FUN_02058884
+.extern FUN_02058890
+.extern FUN_0205889C
+.extern FUN_020588B8
+.extern FUN_020588D4
+.extern FUN_020588EC
+.extern FUN_02058908
+.extern FUN_02058914
+.extern FUN_02058920
+.extern FUN_02058934
+.extern FUN_02058960
+.extern FUN_0205897C
+.extern FUN_02058994
+.extern FUN_020589CC
+.extern FUN_020589E4
+.extern FUN_02058A00
+.extern FUN_02058A18
+.extern FUN_02058A34
+.extern FUN_02058A4C
+.extern FUN_02058A68
+.extern FUN_02058A80
+.extern FUN_02058A9C
+.extern FUN_02058AB4
+.extern FUN_02058AC8
+.extern FUN_02058AE4
+.extern FUN_02058AFC
+.extern FUN_02058B04
+.extern FUN_02058B0C
+.extern FUN_02058B14
+.extern FUN_02058B18
+.extern FUN_02058B1C
+.extern FUN_02058B20
+.extern FUN_02058B24
+.extern FUN_02058B28
+.extern FUN_02058B2C
+.extern FUN_02058B30
+.extern FUN_02058B34
+.extern FUN_02058B3C
+.extern FUN_02058B40
+.extern FUN_02058B44
+.extern FUN_02058B4C
+.extern FUN_02058B50
+.extern FUN_02058B54
+.extern FUN_02058B5C
+.extern FUN_02058B6C
+.extern FUN_02058B7C
+.extern FUN_02058B80
+.extern FUN_02058B84
+.extern FUN_02058B94
+.extern FUN_02058BA4
+.extern FUN_02058BB4
+.extern FUN_02058BC4
+.extern FUN_02058BD4
+.extern FUN_02058BE4
+.extern FUN_02058D74
+.extern FUN_02058DBC
+.extern FUN_02058E28
+.extern FUN_02058E90
+.extern FUN_02058EB0
+.extern FUN_02058EC8
+.extern FUN_02058ECC
+.extern FUN_02058ED0
+.extern FUN_02058ED4
+.extern FUN_02058EE8
+.extern FUN_02058EF8
+.extern FUN_020598F0
+.extern FUN_02059918
+.extern FUN_0205995C
+.extern FUN_02059A08
+.extern FUN_02059A60
+.extern FUN_02059AC4
+.extern FUN_02059B2C
+.extern FUN_02059B94
+.extern FUN_02059BB4
+.extern FUN_02059BD4
+.extern FUN_02059BF4
+.extern FUN_02059C00
+.extern FUN_02059C0C
+.extern FUN_02059C60
+.extern FUN_02059C90
+.extern FUN_02059CC8
+.extern FUN_02059D1C
+.extern FUN_02059E28
+.extern FUN_02059E60
+.extern FUN_02059E74
+.extern FUN_02059E80
+.extern FUN_02059E9C
+.extern FUN_02059EC8
+.extern FUN_02059F34
+.extern FUN_02059F40
+.extern FUN_02059F4C
+.extern FUN_02059F58
+.extern FUN_02059F64
+.extern FUN_02059F70
+.extern FUN_02059F7C
+.extern FUN_02059F88
+.extern FUN_02059F94
+.extern FUN_02059FA0
+.extern FUN_02059FAC
+.extern FUN_02059FB8
+.extern FUN_0205A01C
+.extern FUN_0205A020
+.extern FUN_0205A030
+.extern FUN_0205A040
+.extern FUN_0205A078
+.extern FUN_0205A2EC
+.extern FUN_0205A310
+.extern FUN_0205A31C
+.extern FUN_0205A328
+.extern FUN_0205A334
+.extern FUN_0205A364
+.extern FUN_0205A370
+.extern FUN_0205A37C
+.extern FUN_0205A3A0
+.extern FUN_0205A3D4
+.extern FUN_0205A3F0
+.extern FUN_0205A42C
+.extern FUN_0205A4C4
+.extern FUN_0205A4D0
+.extern FUN_0205A4F4
+.extern FUN_0205A514
+.extern FUN_0205A530
+.extern FUN_0205A548
+.extern FUN_0205A5FC
+.extern FUN_0205A61C
+.extern FUN_0205A640
+.extern FUN_0205A67C
+.extern FUN_0205A73C
+.extern FUN_0205A79C
+.extern FUN_0205A7AC
+.extern FUN_0205A7BC
+.extern FUN_0205A7CC
+.extern FUN_0205A7DC
+.extern FUN_0205A7EC
+.extern FUN_0205A7FC
+.extern FUN_0205A80C
+.extern FUN_0205A81C
+.extern FUN_0205A82C
+.extern FUN_0205A83C
+.extern FUN_0205A84C
+.extern FUN_0205A85C
+.extern FUN_0205A86C
+.extern FUN_0205A87C
+.extern FUN_0205A88C
+.extern FUN_0205A89C
+.extern FUN_0205A8AC
+.extern FUN_0205A8BC
+.extern FUN_0205A8CC
+.extern FUN_0205A8DC
+.extern FUN_0205A8EC
+.extern FUN_0205A8FC
+.extern FUN_0205A90C
+.extern FUN_0205A91C
+.extern FUN_0205A940
+.extern FUN_0205AA60
+.extern FUN_0205AD98
+.extern FUN_0205ADDC
+.extern FUN_0205AE0C
+.extern FUN_0205AE28
+.extern FUN_0205AE50
+.extern FUN_0205AE80
+.extern FUN_0205AEA4
+.extern FUN_0205AEF0
+.extern FUN_0205AEFC
+.extern FUN_0205AF48
+.extern FUN_0205AF54
+.extern FUN_0205AF70
+.extern FUN_0205AF88
+.extern FUN_0205AFA4
+.extern FUN_0205AFD8
+.extern FUN_0205AFDC
+.extern FUN_0205B020
+.extern FUN_0205B058
+.extern FUN_0205B080
+.extern FUN_0205B0C8
+.extern FUN_0205B0F4
+.extern FUN_0205B100
+.extern FUN_0205B10C
+.extern FUN_0205B118
+.extern FUN_0205B16C
+.extern FUN_0205B1C0
+.extern FUN_0205B1D4
+.extern FUN_0205B1E8
+.extern FUN_0205B1FC
+.extern FUN_0205B210
+.extern FUN_0205B224
+.extern FUN_0205B238
+.extern FUN_0205B24C
+.extern FUN_0205B260
+.extern FUN_0205B278
+.extern FUN_0205B28C
+.extern FUN_0205B2A0
+.extern FUN_0205B2B4
+.extern FUN_0205B2C8
+.extern FUN_0205B2DC
+.extern FUN_0205B2F0
+.extern FUN_0205B304
+.extern FUN_0205B31C
+.extern FUN_0205B330
+.extern FUN_0205B344
+.extern FUN_0205B35C
+.extern FUN_0205B370
+.extern FUN_0205B384
+.extern FUN_0205B398
+.extern FUN_0205B3B0
+.extern FUN_0205B3C8
+.extern FUN_0205B3DC
+.extern FUN_0205B3F0
+.extern FUN_0205B43C
+.extern FUN_0205B470
+.extern FUN_0205B480
+.extern FUN_0205B490
+.extern FUN_0205B4A0
+.extern FUN_0205B4B0
+.extern FUN_0205B4C0
+.extern FUN_0205B4D0
+.extern FUN_0205B4E0
+.extern FUN_0205B4F0
+.extern FUN_0205B500
+.extern FUN_0205B510
+.extern FUN_0205B520
+.extern FUN_0205B530
+.extern FUN_0205B540
+.extern FUN_0205B550
+.extern FUN_0205B560
+.extern FUN_0205B570
+.extern FUN_0205B580
+.extern FUN_0205B590
+.extern FUN_0205B5A0
+.extern FUN_0205B61C
+.extern FUN_0205B704
+.extern FUN_0205B724
+.extern FUN_0205B744
+.extern FUN_0205B764
+.extern FUN_0205B784
+.extern FUN_0205B7A4
+.extern FUN_0205B7C4
+.extern FUN_0205B7E4
+.extern FUN_0205B804
+.extern FUN_0205B824
+.extern FUN_0205B848
+.extern FUN_0205B86C
+.extern FUN_0205B88C
+.extern FUN_0205B8AC
+.extern FUN_0205B8CC
+.extern FUN_0205B8EC
+.extern FUN_0205B910
+.extern FUN_0205B930
+.extern FUN_0205B954
+.extern FUN_0205B978
+.extern FUN_0205B9B4
+.extern FUN_0205B9D4
+.extern FUN_0205B9E0
+.extern FUN_0205B9EC
+.extern FUN_0205B9F8
+.extern FUN_0205BA04
+.extern FUN_0205BA10
+.extern FUN_0205BA1C
+.extern FUN_0205BA28
+.extern FUN_0205BA4C
+.extern FUN_0205BA94
+.extern FUN_0205BAC0
+.extern FUN_0205BB08
+.extern FUN_0205BB20
+.extern FUN_0205BB38
+.extern FUN_0205BB4C
+.extern FUN_0205BB60
+.extern FUN_0205BB78
+.extern FUN_0205BBB4
+.extern FUN_0205BBDC
+.extern FUN_0205BBE8
+.extern FUN_0205BC94
+.extern FUN_0205BCA4
+.extern FUN_0205BCB4
+.extern FUN_0205BCC4
+.extern FUN_0205BCD4
+.extern FUN_0205BCEC
+.extern FUN_0205BCFC
+.extern FUN_0205BD0C
+.extern FUN_0205BD1C
+.extern FUN_0205BD2C
+.extern FUN_0205BD44
+.extern FUN_0205BD54
+.extern FUN_0205BD64
+.extern FUN_0205BD74
+.extern FUN_0205BD84
+.extern FUN_0205BD9C
+.extern FUN_0205BDB8
+.extern FUN_0205BDE4
+.extern FUN_0205BE38
+.extern FUN_0205BEA0
+.extern FUN_0205BEBC
+.extern FUN_0205BED8
+.extern FUN_0205BEF8
+.extern FUN_0205BF00
+.extern FUN_0205BFE0
+.extern FUN_0205BFE4
+.extern FUN_0205BFE8
+.extern FUN_0205BFEC
+.extern FUN_0205C004
+.extern FUN_0205C080
+.extern FUN_0205C16C
+.extern FUN_0205C198
+.extern FUN_0205C214
+.extern FUN_0205C334
+.extern FUN_0205C340
+.extern FUN_0205C374
+.extern FUN_0205C380
+.extern FUN_0205C390
+.extern FUN_0205C3AC
+.extern FUN_0205C3B0
+.extern FUN_0205C3D0
+.extern FUN_0205C490
+.extern FUN_0205C4A8
+.extern FUN_0205C4D8
+.extern FUN_0205C598
+.extern FUN_0205C888
+.extern FUN_0205C8B4
+.extern FUN_0205C8E0
+.extern FUN_0205C90C
+.extern FUN_0205C9E8
+.extern FUN_0205CA4C
+.extern FUN_0205CA64
+.extern FUN_0205CA78
+.extern FUN_0205CB14
+.extern FUN_0205CB30
+.extern FUN_0205CB5C
+.extern FUN_0205CBA4
+.extern FUN_0205CBDC
+.extern FUN_0205CBF8
+.extern FUN_0205CC10
+.extern FUN_0205CC2C
+.extern FUN_0205CC40
+.extern FUN_0205CC58
+.extern FUN_0205CC70
+.extern FUN_0205CC88
+.extern FUN_0205CCB0
+.extern FUN_0205CCD0
+.extern FUN_0205CCEC
+.extern FUN_0205CD68
+.extern FUN_0205CD90
+.extern FUN_0205CDAC
+.extern FUN_0205CDB4
+.extern FUN_0205CDD8
+.extern FUN_0205CE00
+.extern FUN_0205CE48
+.extern FUN_0205CE80
+.extern FUN_0205D024
+.extern FUN_0205D0BC
+.extern FUN_0205D0EC
+.extern FUN_0205D104
+.extern FUN_0205D144
+.extern FUN_0205D170
+.extern FUN_0205D21C
+.extern FUN_0205D250
+.extern FUN_0205D328
+.extern FUN_0205D3B8
+.extern FUN_0205D3E4
+.extern FUN_0205D400
+.extern FUN_0205D498
+.extern FUN_0205D4E4
+.extern FUN_0205D4E8
+.extern FUN_0205D51C
+.extern FUN_0205D528
+.extern FUN_0205D558
+.extern FUN_0205D574
+.extern FUN_0205D5A8
+.extern FUN_0205D5C4
+.extern FUN_0205D604
+.extern FUN_0205D628
+.extern FUN_0205D660
+.extern FUN_0205D670
+.extern FUN_0205D680
+.extern FUN_0205D69C
+.extern FUN_0205D6AC
+.extern FUN_0205D6BC
+.extern FUN_0205D714
+.extern FUN_0205D724
+.extern FUN_0205D734
+.extern FUN_0205D74C
+.extern FUN_0205D788
+.extern FUN_0205D7A8
+.extern FUN_0205D7E4
+.extern FUN_0205D804
+.extern FUN_0205D840
+.extern FUN_0205D860
+.extern FUN_0205D8B8
+.extern FUN_0205D9A8
+.extern FUN_0205DA3C
+.extern FUN_0205DA80
+.extern FUN_0205DACC
+.extern FUN_0205DADC
+.extern FUN_0205DAEC
+.extern FUN_0205DB44
+.extern FUN_0205DD18
+.extern FUN_0205DD38
+.extern FUN_0205DD40
+.extern FUN_0205DD80
+.extern FUN_0205DED4
+.extern FUN_0205DF44
+.extern FUN_0205DF9C
+.extern FUN_0205DFE8
+.extern FUN_0205E080
+.extern FUN_0205E098
+.extern FUN_0205E0A4
+.extern FUN_0205E0A8
+.extern FUN_0205E128
+.extern FUN_0205E30C
+.extern FUN_0205E480
+.extern FUN_0205E49C
+.extern FUN_0205E4A4
+.extern FUN_0205E4EC
+.extern FUN_0205E518
+.extern FUN_0205E550
+.extern FUN_0205E554
+.extern FUN_0205E598
+.extern FUN_0205E700
+.extern FUN_0205E728
+.extern FUN_0205E758
+.extern FUN_0205E75C
+.extern FUN_0205E768
+.extern FUN_0205E7A4
+.extern FUN_0205E7C4
+.extern FUN_0205EA10
+.extern FUN_0205EA1C
+.extern FUN_0205EA28
+.extern FUN_0205EA34
+.extern FUN_0205EA40
+.extern FUN_0205EA64
+.extern FUN_0205EA74
+.extern FUN_0205EAB0
+.extern FUN_0205EAE0
+.extern FUN_0205EB14
+.extern FUN_0205EB20
+.extern FUN_0205EB2C
+.extern FUN_0205EB38
+.extern FUN_0205EBEC
+.extern FUN_0205EC18
+.extern FUN_0205EC48
+.extern FUN_0205EC6C
+.extern FUN_0205ECD4
+.extern FUN_0205ECE0
+.extern FUN_0205ECEC
+.extern FUN_0205ECFC
+.extern FUN_0205ED0C
+.extern FUN_0205ED1C
+.extern FUN_0205ED2C
+.extern FUN_0205ED3C
+.extern FUN_0205ED4C
+.extern FUN_0205ED5C
+.extern FUN_0205ED6C
+.extern FUN_0205ED7C
+.extern FUN_0205ED8C
+.extern FUN_0205ED9C
+.extern FUN_0205EDAC
+.extern FUN_0205EDBC
+.extern FUN_0205EDCC
+.extern FUN_0205EDD8
+.extern FUN_0205EDE8
+.extern FUN_0205EDF8
+.extern FUN_0205EE08
+.extern FUN_0205EE60
+.extern FUN_0205EEB8
+.extern FUN_0205EF20
+.extern FUN_0205F154
+.extern FUN_0205F164
+.extern FUN_0205F174
+.extern FUN_0205F184
+.extern FUN_0205F194
+.extern FUN_0205F1A4
+.extern FUN_0205F1B4
+.extern FUN_0205F1C4
+.extern FUN_0205F1D4
+.extern FUN_0205F1E4
+.extern FUN_0205F1F4
+.extern FUN_0205F204
+.extern FUN_0205F214
+.extern FUN_0205F224
+.extern FUN_0205F234
+.extern FUN_0205F244
+.extern FUN_0205F254
+.extern FUN_0205F264
+.extern FUN_0205F274
+.extern FUN_0205F284
+.extern FUN_0205F294
+.extern FUN_0205F2A4
+.extern FUN_0205F2B4
+.extern FUN_0205F2C4
+.extern FUN_0205F2D4
+.extern FUN_0205F2E4
+.extern FUN_0205F304
+.extern FUN_0205F358
+.extern FUN_0205F368
+.extern FUN_0205F378
+.extern FUN_0205F388
+.extern FUN_0205F398
+.extern FUN_0205F3C0
+.extern FUN_0205F3E8
+.extern FUN_0205F3F8
+.extern FUN_0205F408
+.extern FUN_0205F41C
+.extern FUN_0205F42C
+.extern FUN_0205F43C
+.extern FUN_0205F44C
+.extern FUN_0205F478
+.extern FUN_0205F4A0
+.extern FUN_0205F4E4
+.extern FUN_0205F50C
+.extern FUN_0205F524
+.extern FUN_0205F54C
+.extern FUN_0205F55C
+.extern FUN_0205F56C
+.extern FUN_0205F594
+.extern FUN_0205F5A4
+.extern FUN_0205F5D8
+.extern FUN_0205F5FC
+.extern FUN_0205F618
+.extern FUN_0205F648
+.extern FUN_0205F668
+.extern FUN_0205F688
+.extern FUN_0205F698
+.extern FUN_0205F6A8
+.extern FUN_0205F6B8
+.extern FUN_0205F6C8
+.extern FUN_0205F6D8
+.extern FUN_0205F6E8
+.extern FUN_0205F710
+.extern FUN_0205F720
+.extern FUN_0205F730
+.extern FUN_0205F740
+.extern FUN_0205F750
+.extern FUN_0205F760
+.extern FUN_0205F770
+.extern FUN_0205F780
+.extern FUN_0205F790
+.extern FUN_0205F7A0
+.extern FUN_0205FC50
+.extern FUN_0205FD38
+.extern FUN_0205FDDC
+.extern FUN_0205FE10
+.extern FUN_0205FF5C
+.extern FUN_02060044
+.extern FUN_02060064
+.extern FUN_0206007C
+.extern FUN_020600A0
+.extern FUN_020600DC
+.extern FUN_02060144
+.extern FUN_0206015C
+.extern FUN_02060344
+.extern FUN_020603B0
+.extern FUN_020603C8
+.extern FUN_020603F0
+.extern FUN_0206043C
+.extern FUN_02060478
+.extern FUN_02060490
+.extern FUN_02060790
+.extern FUN_020607D4
+.extern FUN_02060D1C
+.extern FUN_02060D48
+.extern FUN_02060F10
+.extern FUN_02060F3C
+.extern FUN_02060F88
+.extern FUN_02060F9C
+.extern FUN_02060FAC
+.extern FUN_02060FBC
+.extern FUN_02060FD0
+.extern FUN_02060FE0
+.extern FUN_02061008
+.extern FUN_02061020
+.extern FUN_02061028
+.extern FUN_02061080
+.extern FUN_02061208
+.extern FUN_020612EC
+.extern FUN_020612F8
+.extern FUN_02061374
+.extern FUN_020613CC
+.extern FUN_02061460
+.extern FUN_0206151C
+.extern FUN_02061574
+.extern FUN_02061618
+.extern FUN_020616A4
+.extern FUN_02061798
+.extern FUN_0206189C
+.extern FUN_020618B8
+.extern FUN_02061904
+.extern FUN_020619C0
+.extern FUN_02061A8C
+.extern FUN_02061B0C
+.extern FUN_02061B64
+.extern FUN_02063650
+.extern FUN_0206367C
+.extern FUN_02063684
+.extern FUN_020636DC
+.extern FUN_020637A8
+.extern FUN_020637C4
+.extern FUN_020637E0
+.extern FUN_020637F0
+.extern FUN_02063808
+.extern FUN_02063888
+.extern FUN_020638BC
+.extern FUN_02063948
+.extern FUN_02063964
+.extern FUN_0206439C
+.extern FUN_020643C0
+.extern FUN_020643F0
+.extern FUN_020644E4
+.extern FUN_02064520
+.extern FUN_02064584
+.extern FUN_020646A0
+.extern FUN_020646DC
+.extern FUN_02064738
+.extern FUN_02064754
+.extern FUN_0206475C
+.extern FUN_0206476C
+.extern FUN_0206477C
+.extern FUN_020647A4
+.extern FUN_0206486C
+.extern FUN_020649B0
+.extern FUN_020649D4
+.extern FUN_02064CA8
+.extern FUN_02064CC8
+.extern FUN_02064D10
+.extern FUN_02064D4C
+.extern FUN_02064D88
+.extern FUN_02064E20
+.extern FUN_02064E4C
+.extern FUN_02064E60
+.extern FUN_02064E90
+.extern FUN_02065054
+.extern FUN_02065070
+.extern FUN_02065078
+.extern FUN_02065314
+.extern FUN_02065344
+.extern FUN_02066818
+.extern FUN_02066840
+.extern ZeroMonData
+.extern ZeroBoxMonData
+.extern SizeOfStructPokemon
+.extern AllocMonZeroed
+.extern AcquireMonLock
+.extern ReleaseMonLock
+.extern AcquireBoxMonLock
+.extern ReleaseBoxMonLock
+.extern CreateMon
+.extern CreateMonWithNature
+.extern CreateMonWithGenderNatureLetter
+.extern GenPersonalityByGenderAndNature
+.extern CreateMonWithFixedIVs
+.extern CalcMonLevelAndStats
+.extern CalcMonStats
+.extern GetMonData
+.extern GetBoxMonData
+.extern SetMonData
+.extern SetBoxMonData
+.extern AddMonData
+.extern AllocAndLoadMonPersonal
+.extern GetPersonalAttr
+.extern FreeMonPersonal
+.extern GetMonBaseStat_HandleFormeConversion
+.extern GetMonBaseStat
+.extern GetPercentProgressTowardsNextLevel
+.extern CalcMonExpToNextLevel
+.extern GetMonBaseExperienceAtCurrentLevel
+.extern GetMonExpBySpeciesAndLevel
+.extern CalcMonLevel
+.extern CalcBoxMonLevel
+.extern CalcLevelBySpeciesAndExp
+.extern CalcLevelBySpeciesAndExp_PreloadedPersonal
+.extern GetMonNature
+.extern GetBoxMonNature
+.extern GetNatureFromPersonality
+.extern MonApplyFriendshipMod
+.extern GetMonGender
+.extern GetBoxMonGender
+.extern GetGenderBySpeciesAndPersonality
+.extern GetGenderBySpeciesAndPersonality_PreloadedPersonal
+.extern MonIsShiny
+.extern CalcShininessByOtIdAndPersonality
+.extern GenerateShinyPersonality
+.extern FUN_02068B68
+.extern FUN_02068B70
+.extern FUN_02068C00
+.extern FUN_02068E14
+.extern FUN_02068E1C
+.extern FUN_02068E88
+.extern FUN_02068FE0
+.extern FUN_02069010
+.extern FUN_02069038
+.extern FUN_020690AC
+.extern FUN_020690C4
+.extern FUN_020690C8
+.extern FUN_020690CC
+.extern FUN_020690D4
+.extern FUN_020690E4
+.extern FUN_020690E8
+.extern GetMonEvolution
+.extern ReadFromPersonalPmsNarc
+.extern GetEggSpecies
+.extern FUN_02069698
+.extern FUN_02069708
+.extern FUN_020697CC
+.extern FUN_02069818
+.extern FUN_020698E0
+.extern FUN_020698E8
+.extern FUN_020699A4
+.extern FUN_02069A64
+.extern FUN_02069AEC
+.extern FUN_02069B40
+.extern FUN_02069B60
+.extern FUN_02069B88
+.extern FUN_02069BA0
+.extern FUN_02069BB4
+.extern FUN_02069BC8
+.extern FUN_02069BE4
+.extern FUN_02069BFC
+.extern FUN_02069C4C
+.extern FUN_02069CF4
+.extern FUN_02069D50
+.extern FUN_02069DC8
+.extern FUN_02069E74
+.extern FUN_02069E94
+.extern FUN_02069EC4
+.extern FUN_02069ECC
+.extern GetArceusTypeByHeldItemEffect
+.extern LoadWotbl_HandleAlternateForme
+.extern FUN_02069FB0
+.extern FUN_0206A014
+.extern FUN_0206A094
+.extern FUN_0206A13C
+.extern FUN_0206A16C
+.extern FUN_0206A1C4
+.extern FUN_0206A23C
+.extern MaskOfFlagNo
+.extern LowestFlagNo
+.extern IsPokemonLegendaryOrMythical
+.extern GetLegendaryMon
+.extern FUN_0206A998
+.extern FUN_0206A9AC
+.extern FUN_0206AA30
+.extern FUN_0206AA84
+.extern FUN_0206AAB4
+.extern LoadAllWazaTbl
+.extern GetWazaAttr
+.extern WazaGetMaxPp
+.extern GetAttrFromWazaTbl
+.extern FUN_0206ABC4
+.extern FUN_0206AC74
+.extern FUN_0206ACD4
+.extern FUN_0206AD4C
+.extern FUN_0206ADE0
+.extern FUN_0206ADF0
+.extern FUN_0206AE00
+.extern FUN_0206B16C
+.extern FUN_0206B178
+.extern FUN_0206B20C
+.extern FUN_0206B244
+.extern FUN_0206B2B0
+.extern FUN_0206B2FC
+.extern FUN_0206B330
+.extern FUN_0206B334
+.extern FUN_0206B384
+.extern FUN_0206B3E4
+.extern FUN_0206B428
+.extern FUN_0206B43C
+.extern FUN_0206B458
+.extern FUN_0206B484
+.extern FUN_0206B4B4
+.extern FUN_0206B4E4
+.extern FUN_0206B57C
+.extern FUN_0206B598
+.extern FUN_0206B5E4
+.extern FUN_0206B620
+.extern FUN_0206B644
+.extern FUN_0206B668
+.extern FUN_0206B688
+.extern FUN_0206B6C8
+.extern FUN_0206B6D4
+.extern FUN_0206B754
+.extern FUN_0206B7BC
+.extern FUN_0206B87C
+.extern FUN_0206B888
+.extern FUN_0206B88C
+.extern FUN_0206B890
+.extern FUN_0206B894
+.extern FUN_0206B898
+.extern FUN_0206B89C
+.extern FUN_0206B8A0
+.extern FUN_0206B8A4
+.extern FUN_0206B8AC
+.extern FUN_0206B8C0
+.extern FUN_0206B8CC
+.extern FUN_0206B900
+.extern FUN_0206B938
+.extern GetPartyCount
+.extern GetPartyMonByIndex
+.extern FUN_0206B9DC
+.extern FUN_0206BA38
+.extern FUN_0206BAD0
+.extern PartyHasMon
+.extern FUN_0206BB1C
+.extern FUN_0206BB28
+.extern FUN_0206BB34
+.extern FUN_0206BB48
+.extern FUN_0206BB5C
+.extern FUN_0206BB74
+.extern FUN_0206BB84
+.extern FUN_0206BC60
+.extern FUN_0206BE48
+.extern FUN_0206BF90
+.extern FUN_0206BFF0
+.extern FUN_0206C004
+.extern FUN_0206C008
+.extern FUN_0206C010
+.extern FUN_0206C018
+.extern FUN_0206C020
+.extern FUN_0206C024
+.extern FUN_0206C044
+.extern FUN_0206C064
+.extern FUN_0206C080
+.extern FUN_0206C0A0
+.extern FUN_0206C0A8
+.extern FUN_0206C0B0
+.extern FUN_0206C0B8
+.extern FUN_0206C0C0
+.extern FUN_0206C0C8
+.extern FUN_0206C154
+.extern FUN_0206C1A0
+.extern FUN_0206C1E0
+.extern FUN_0206C1FC
+.extern FUN_0206C224
+.extern FUN_0206C258
+.extern FUN_0206C268
+.extern FUN_0206C294
+.extern FUN_0206C2C4
+.extern FUN_0206C2D4
+.extern FUN_0206C2F8
+.extern FUN_0206C32C
+.extern FUN_0206C33C
+.extern FUN_0206C364
+.extern FUN_0206C398
+.extern FUN_0206C3F4
+.extern FUN_0206C428
+.extern FUN_0206C438
+.extern FUN_0206C46C
+.extern FUN_0206C4B4
+.extern FUN_0206C4C4
+.extern FUN_0206C4F0
+.extern FUN_0206C540
+.extern FUN_0206C64C
+.extern FUN_0206C6CC
+.extern FUN_0206C6FC
+.extern FUN_0206C700
+.extern FUN_0206C91C
+.extern FUN_0206C92C
+.extern FUN_0206DE24
+.extern FUN_0206DE4C
+.extern FUN_0206DE78
+.extern FUN_0206DF18
+.extern FUN_0206DF58
+.extern FUN_0206E07C
+.extern FUN_0206E0AC
+.extern FUN_0206E0C8
+.extern FUN_0206E0DC
+.extern FUN_0206E0F0
+.extern FUN_0206E108
+.extern FUN_0206E10C
+.extern FUN_0206E114
+.extern FUN_0206E12C
+.extern FUN_0206E130
+.extern FUN_0206E164
+.extern FUN_0206E198
+.extern FUN_0206E1D4
+.extern FUN_0206E21C
+.extern FUN_0206E224
+.extern FUN_0206E22C
+.extern FUN_0206E240
+.extern FUN_0206E270
+.extern FUN_0206E278
+.extern FUN_0206E290
+.extern FUN_0206E2A8
+.extern FUN_0206E2AC
+.extern FUN_0206E2E0
+.extern FUN_0206E2E8
+.extern FUN_0206E2F0
+.extern FUN_0206E308
+.extern FUN_0206E314
+.extern FUN_0206E330
+.extern FUN_0206E340
+.extern FUN_0206E354
+.extern FUN_0206E358
+.extern FUN_0206E360
+.extern FUN_0206E37C
+.extern FUN_0206E384
+.extern FUN_0206E38C
+.extern FUN_0206E394
+.extern FUN_0206E3F8
+.extern FUN_0206E51C
+.extern FUN_0206E5B4
+.extern FUN_0206E640
+.extern FUN_0206E6D8
+.extern FUN_0206E708
+.extern FUN_0206E70C
+.extern FUN_0206E710
+.extern FUN_0206E768
+.extern FUN_0206E790
+.extern FUN_0206E7B8
+.extern FUN_0206E7DC
+.extern FUN_0206EA30
+.extern FUN_0206EA54
+.extern FUN_0206EA7C
+.extern FUN_0206EA98
+.extern FUN_0206EAB8
+.extern FUN_0206EAD8
+.extern FUN_0206EAEC
+.extern FUN_0206EB0C
+.extern FUN_0206EB1C
+.extern FUN_0206EB34
+.extern FUN_0206EB50
+.extern FUN_0206EB78
+.extern FUN_0206EB80
+.extern FUN_0206EB88
+.extern FUN_0206EBA0
+.extern FUN_0206EBB4
+.extern FUN_0206EBC4
+.extern FUN_0206EBCC
+.extern FUN_0206ED24
+.extern FUN_0206ED38
+.extern FUN_0206EDD4
+.extern FUN_0206EE20
+.extern FUN_0206EE50
+.extern FUN_0206EE64
+.extern FUN_0206EEF8
+.extern FUN_0206EF10
+.extern FUN_0206EFEC
+.extern FUN_0206F0D8
+.extern FUN_0206F158
+.extern FUN_0206F164
+.extern FUN_0206F17C
+.extern FUN_0206F18C
+.extern FUN_0206F190
+.extern FUN_0206F19C
+.extern FUN_0206F1A0
+.extern FUN_0206F1AC
+.extern FUN_0206F1B0
+.extern FUN_0206F1B4
+.extern FUN_0206F1B8
+.extern FUN_0206F1C0
+.extern FUN_0206F1E4
+.extern FUN_0206F1EC
+.extern FUN_0206F3B8
+.extern FUN_0206F3D8
+.extern FUN_0207008C
+.extern FUN_020703BC
+.extern FUN_020709FC
+.extern FUN_02070E60
+.extern FUN_02071340
+.extern FUN_020714BC
+.extern FUN_020724C4
+.extern FUN_020724C8
+.extern FUN_020724CC
+.extern FUN_020724D0
+.extern FUN_020724D4
+.extern FUN_02072590
+.extern FUN_020726F0
+.extern FUN_02072720
+.extern FUN_020727FC
+.extern FUN_02072844
+.extern FUN_0207295C
+.extern FUN_02072A00
+.extern FUN_02072B20
+.extern FUN_02072B7C
+.extern FUN_02072BBC
+.extern FUN_02072C28
+.extern FUN_02072D1C
+.extern FUN_02072DDC
+.extern FUN_02072E14
+.extern FUN_02072E4C
+.extern FUN_02072EE4
+.extern FUN_02072F78
+.extern FUN_02072FDC
+.extern FUN_02073024
+.extern FUN_02073094
+.extern FUN_020731C0
+.extern FUN_020731D4
+.extern FUN_020731E8
+.extern FUN_0207322C
+.extern FUN_020732CC
+.extern FUN_020734C0
+.extern FUN_0207363C
+.extern FUN_020736F4
+.extern FUN_02073710
+.extern FUN_020737D0
+.extern FUN_0207388C
+.extern FUN_020739E4
+.extern FUN_02073A2C
+.extern FUN_02073A4C
+.extern FUN_02073A78
+.extern FUN_02073AB8
+.extern FUN_02073AD8
+.extern FUN_02073B0C
+.extern FUN_02073B3C
+.extern FUN_02073BEC
+.extern FUN_02073CB4
+.extern FUN_02073D1C
+.extern FUN_02073D6C
+.extern FUN_02073DA8
+.extern FUN_02073DB4
+.extern FUN_0207405C
+.extern FUN_02074340
+.extern FUN_0207436C
+.extern FUN_02074428
+.extern FUN_02074454
+.extern FUN_02074538
+.extern FUN_02074584
+.extern FUN_020746D4
+.extern FUN_02074F6C
+.extern FUN_02075118
+.extern FUN_020754D0
+.extern FUN_02075C54
+.extern FUN_02075CE4
+.extern FUN_02076144
+.extern FUN_020761A0
+.extern FUN_02076890
+.extern FUN_02076AA0
+.extern FUN_02076AF8
+.extern FUN_02076C94
+.extern FUN_02076D3C
+.extern FUN_0207703C
+.extern FUN_02077110
+.extern FUN_02077248
+.extern FUN_02077A84
+.extern FUN_02077AC4
+.extern FUN_020799E8
+.extern FUN_020799F4
+.extern FUN_02079A0C
+.extern FUN_02079A24
+.extern FUN_02079A54
+.extern FUN_02079A70
+.extern FUN_02079AAC
+.extern FUN_02079B60
+.extern FUN_02079C40
+.extern FUN_02079C70
+.extern FUN_0207B000
+.extern FUN_0207B070
+.extern FUN_0207B09C
+.extern FUN_0207B628
+.extern FUN_0207C1E8
+.extern FUN_0207C2A4
+.extern FUN_0207C2C4
+.extern FUN_0207C2C8
+.extern FUN_0207C2CC
+.extern FUN_0207C2D0
+.extern FUN_0207C2D4
+.extern FUN_0207C328
+.extern FUN_0207C3D4
+.extern FUN_0207C3F4
+.extern FUN_0207C448
+.extern FUN_0207C5D4
+.extern FUN_0207C6A4
+.extern FUN_0207C6F0
+.extern FUN_0207C71C
+.extern FUN_0207C77C
+.extern FUN_0207C838
+.extern FUN_0207CA44
+.extern FUN_0207CB08
+.extern FUN_0207CB70
+.extern FUN_0207CBC0
+.extern FUN_0207CBE8
+.extern FUN_0207CC24
+.extern FUN_0207CC88
+.extern FUN_0207CE4C
+.extern FUN_0207CEDC
+.extern FUN_0207CF58
+.extern FUN_0207CF78
+.extern FUN_0207CFAC
+.extern FUN_0207CFEC
+.extern FUN_0207D06C
+.extern FUN_0207D10C
+.extern FUN_0207D22C
+.extern FUN_0207D2C8
+.extern FUN_0207D364
+.extern FUN_0207D3C4
+.extern FUN_0207D3F4
+.extern FUN_0207D418
+.extern FUN_0207D598
+.extern FUN_0207D5BC
+.extern FUN_0207D604
+.extern FUN_0207D6F8
+.extern FUN_0207D74C
+.extern FUN_0207D768
+.extern FUN_0207D800
+.extern FUN_0207D8A0
+.extern FUN_0207D924
+.extern FUN_0207DD88
+.extern FUN_0207E840
+.extern FUN_0207E9A0
+.extern FUN_0207EB64
+.extern FUN_0207EC94
+.extern FUN_0207ECDC
+.extern FUN_0207ED18
+.extern FUN_0207ED30
+.extern FUN_0207EDB4
+.extern FUN_0207EE2C
+.extern FUN_0207EEB0
+.extern FUN_0207EECC
+.extern FUN_0207EF6C
+.extern FUN_0207F008
+.extern FUN_0207F068
+.extern FUN_0207F098
+.extern FUN_0207F2A0
+.extern FUN_0207F608
+.extern FUN_0207F840
+.extern FUN_0207F8D0
+.extern FUN_0207F934
+.extern FUN_0207F95C
+.extern FUN_0207FA38
+.extern FUN_0207FA80
+.extern FUN_0207FB28
+.extern FUN_0207FC04
+.extern FUN_0207FC40
+.extern FUN_0207FC5C
+.extern FUN_0207FCC0
+.extern FUN_0207FCE0
+.extern FUN_0207FD00
+.extern FUN_02080094
+.extern FUN_0208089C
+.extern FUN_020808AC
+.extern FUN_02080C38
+.extern FUN_02080E0C
+.extern FUN_02081214
+.extern FUN_020814E8
+.extern FUN_02081DC4
+.extern FUN_02081EB8
+.extern FUN_0208201C
+.extern FUN_02082034
+.extern FUN_0208206C
+.extern FUN_02082090
+.extern FUN_020820B8
+.extern FUN_020820DC
+.extern FUN_0208210C
+.extern FUN_0208213C
+.extern FUN_02082140
+.extern FUN_02082158
+.extern FUN_0208217C
+.extern FUN_02082190
+.extern FUN_020821B4
+.extern FUN_020821C4
+.extern FUN_020821DC
+.extern FUN_020821F0
+.extern FUN_02082214
+.extern FUN_0208223C
+.extern FUN_0208224C
+.extern FUN_02082254
+.extern FUN_02082284
+.extern FUN_020822F0
+.extern FUN_02082444
+.extern FUN_02082508
+.extern FUN_020825A0
+.extern FUN_02082630
+.extern FUN_02082878
+.extern FUN_02082880
+.extern FUN_020828BC
+.extern FUN_020828E4
+.extern FUN_02082B90
+.extern FUN_02082D18
+.extern FUN_02082D60
+.extern FUN_02082E64
+.extern FUN_02082ED0
+.extern FUN_02083114
+.extern FUN_02083130
+.extern FUN_0208315C
+.extern FUN_02083170
+.extern FUN_02083228
+.extern FUN_02083268
+.extern FUN_02083298
+.extern FUN_020832A4
+.extern FUN_020832DC
+.extern FUN_020832E4
+.extern FUN_020832EC
+.extern FUN_02083308
+.extern FUN_0208336C
+.extern FUN_020833D4
+.extern FUN_02083404
+.extern FUN_0208341C
+.extern FUN_02083454
+.extern FUN_020834D0
+.extern FUN_02083630
+.extern FUN_020836BC
+.extern FUN_0208373C
+.extern FUN_020837B4
+.extern FUN_02083834
+.extern FUN_020838B4
+.extern FUN_02083930
+.extern FUN_020839C0
+.extern FUN_02083A34
+.extern FUN_02083A7C
+.extern FUN_02083AD4
+.extern FUN_02083B48
+.extern FUN_02083B84
+.extern FUN_02083D10
+.extern FUN_02083D48
+.extern FUN_02084098
+.extern FUN_020842D0
+.extern FUN_020842D8
+.extern FUN_020847F8
+.extern FUN_02084810
+.extern FUN_02084DD0
+.extern FUN_02085140
+.extern FUN_020851B8
+.extern FUN_020851DC
+.extern FUN_020851F8
+.extern FUN_02085224
+.extern FUN_0208524C
+.extern OpenNutsDataNarc
+.extern ReadNutDataFromNarc
+.extern CloseNutsDataNarc
+.extern LoadNutDataSingle
+.extern LoadNutDataSingleByItemId
+.extern GetNutAttr
+.extern GetNutName
+.extern GetNutDesc
+.extern FUN_02085338
+.extern FUN_020853A8
+.extern FUN_020853B0
+.extern FUN_020853B4
+.extern FUN_020853BC
+.extern FUN_020853D0
+.extern FUN_020853DC
+.extern FUN_020853E4
+.extern FUN_020853E8
+.extern FUN_020853EC
+.extern FUN_020853F0
+.extern FUN_020853FC
+.extern FUN_0208540C
+.extern FUN_02085410
+.extern FUN_02085414
+.extern FUN_02085418
+.extern FUN_0208541C
+.extern FUN_02085420
+.extern FUN_02085424
+.extern FUN_02085428
+.extern FUN_0208545C
+.extern FUN_020854A0
+.extern FUN_020854E0
+.extern FUN_02085538
+.extern FUN_02085578
+.extern FUN_020855B0
+.extern FUN_020855E4
+.extern FUN_020855E8
+.extern FUN_0208560C
+.extern FUN_0208562C
+.extern FUN_02085644
+.extern FUN_020856A0
+.extern FUN_020857F8
+.extern FUN_0208585C
+.extern FUN_020859A0
+.extern FUN_020859C0
+.extern FUN_02085BB0
+.extern FUN_02085C08
+.extern FUN_02085D9C
+.extern FUN_02085F48
+.extern FUN_02085FAC
+.extern FUN_02085FD0
+.extern FUN_02085FF4
+.extern FUN_02086018
+.extern FUN_0208603C
+.extern FUN_02086060
+.extern FUN_020863DC
+.extern FUN_02086414
+.extern FUN_0208643C
+.extern FUN_02086468
+.extern FUN_0208650C
+.extern FUN_0208654C
+.extern FUN_02086664
+.extern FUN_02086698
+.extern FUN_020866BC
+.extern FUN_020866DC
+.extern FUN_020866FC
+.extern FUN_02086784
+.extern FUN_020867EC
+.extern FUN_02086878
+.extern FUN_02086960
+.extern FUN_0208698C
+.extern FUN_0208699C
+.extern FUN_020869F0
+.extern FUN_02086AF0
+.extern FUN_02086B40
+.extern FUN_02086B70
+.extern FUN_02086B8C
+.extern FUN_02086BA0
+.extern FUN_02086BA8
+.extern FUN_02086CB0
+.extern FUN_02086E04
+.extern FUN_02086E30
+.extern FUN_02086E48
+.extern FUN_02086ED4
+.extern FUN_02086EE8
+.extern FUN_02086F4C
+.extern FUN_02086F8C
+.extern FUN_02086F98
+.extern FUN_02086FA8
+.extern FUN_02087A1C
+.extern FUN_02087A38
+.extern FUN_02087A50
+.extern FUN_02087A6C
+.extern FUN_02087A84
+.extern FUN_02087A98
+.extern FUN_02087B0C
+.extern FUN_02087B58
+.extern FUN_02087B78
+.extern FUN_02087B98
+.extern FUN_02087BB8
+.extern FUN_02087BD8
+.extern FUN_02087BF8
+.extern FUN_02087D00
+.extern FUN_02087E14
+.extern FUN_020881D0
+.extern FUN_0208821C
+.extern FUN_02088320
+.extern FUN_02088360
+.extern FUN_02088484
+.extern FUN_02088490
+.extern FUN_02088660
+.extern FUN_02088694
+.extern FUN_02088814
+.extern FUN_02088818
+.extern FUN_0208881C
+.extern FUN_02088830
+.extern FUN_02088838
+.extern FUN_02088840
+.extern FUN_02088848
+.extern FUN_0208884C
+.extern FUN_02088850
+.extern FUN_02088854
+.extern FUN_02088858
+.extern FUN_02088868
+.extern FUN_02088878
+.extern FUN_020888BC
+.extern FUN_020888CC
+.extern FUN_020888DC
+.extern FUN_02088960
+.extern FUN_0208898C
+.extern FUN_020889B0
+.extern FUN_02088A00
+.extern FUN_02088A78
+.extern FUN_02088AAC
+.extern FUN_02088AFC
+.extern FUN_02088B28
+.extern FUN_02088B48
+.extern FUN_02088D1C
+.extern FUN_02088D20
+.extern FUN_02088D40
+.extern FUN_02088D4C
+.extern FUN_02088D68
+.extern FUN_02088D84
+.extern FUN_02088DA0
+.extern FUN_02088DBC
+.extern FUN_02088DD8
+.extern FUN_02088DF0
+.extern FUN_02088DF8
+.extern FUN_02088EF8
+.extern FUN_02088F0C
+.extern FUN_02088F4C
+.extern FUN_020892C4
+.extern FUN_020892CC
+.extern FUN_020892EC
+.extern FUN_02089300
+.extern FUN_02089310
+.extern FUN_02089338
+.extern FUN_02089368
+.extern FUN_02089394
+.extern FUN_020893E0
+.extern FUN_020893F0
+.extern FUN_02089418
+.extern FUN_02089444
+.extern FUN_0208946C
+.extern FUN_02089D90
+.extern FUN_02089F24
+.extern FUN_0208A0B8
+.extern FUN_0208A300
+.extern FUN_0208A320
+.extern FUN_0208A328
+.extern FUN_0208A32C
+.extern FUN_0208A330
+.extern FUN_0208A334
+.extern FUN_0208A338
+.extern FUN_0208A9B8
+.extern FUN_0208AC14
+.extern FUN_0208AC58
+.extern FUN_0208ACEC
+.extern FUN_0208AD80
+.extern FUN_0208AE48
+.extern FUN_0208AF80
+.extern FUN_0208AF94
+.extern FUN_0208AFA8
+.extern FUN_0208B05C
+.extern FUN_0208B128
+.extern FUN_0208B4A0
+.extern FUN_020905D0
+.extern FUN_02090664
+.extern FUN_02090780
+.extern FUN_02090858
+.extern FUN_020908DC
+.extern FUN_020909A4
+.extern FUN_02090CC8
+.extern FUN_02090DB8
+.extern FUN_020910EC
+.extern FUN_0209521C
+.extern FUN_020952AC
+.extern DWCi_BACKUPlGetWifi
+.extern DWCi_BACKUPlConvWifiInfo
+.extern DWC_BACKUPlCheckAddress
+.extern DWC_BACKUPlCheckIp
+.extern DWCi_BACKUPlConvMaskAddr
+.extern DWCi_BACKUPlConvMaskCidr
+.extern DWCi_BACKUPlWritePage
+.extern DWCi_BACKUPlRead
+.extern DWCi_BM_GetWiFiInfo
+.extern DWCi_BM_GetApInfo
+.extern DWC_BM_Init
+.extern FUN_02096570
+.extern FUN_02096710
+.extern DWCi_AUTH_MakeWiFiID
+.extern DWCi_AUTH_GetNewWiFiInfo
+.extern DWC_Init
+.extern DWC_IsEqualFriendData
+.extern DWC_LoginIdToUserName
+.extern DWC_SetGsProfileId
+.extern DWC_CreateExchangeToken
+.extern DWC_CreateFriendKeyToken
+.extern DWC_CreateFriendKey
+.extern DWC_GetGsProfileId
+.extern DWC_GetFriendKey
+.extern DWC_CheckDirtyFlag
+.extern DWCi_Acc_SetLoginIdToUserData
+.extern DWC_CheckValidConsole
+.extern DWC_CheckHasProfile
+.extern DWC_CheckUserData
+.extern DWCi_Acc_IsValidFriendData
+.extern DWC_IsValidFriendData
+.extern DWCi_Acc_IsAuthentic
+.extern DWCi_Acc_IsValidLoginId
+.extern DWCi_Acc_CheckConsoleUserId
+.extern DWCi_Acc_CreateTempLoginId
+.extern DWCi_Acc_LoginIdToUserName
+.extern DWC_CheckFriendKey
+.extern DWCi_SetBuddyFriendData
+.extern DWC_GetFriendDataType
+.extern DWC_IsBuddyFriendData
+.extern DWCi_Acc_SetPlayerId
+.extern WCM_GetPhase
+.extern WCM_TerminateAsync
+.extern WCM_DisconnectAsync
+.extern WCM_ConnectAsync
+.extern WCM_EndSearchAsync
+.extern WCM_SearchAsync
+.extern WCM_CleanupAsync
+.extern WCM_StartupAsync
+.extern WCM_Finish
+.extern WCM_Init
+.extern WCM_PointApList
+.extern WCM_LockApList
+.extern WCM_CountApList
+.extern WCM_ClearApList
+.extern WCM_GetApEssid
+.extern MD5Final
+.extern MD5Update
+.extern MD5Init
+.extern FUN_020AA760
+.extern FUN_020AA770
+.extern FUN_020AA7A0
+.extern FUN_020AA824
+.extern FUN_020AABDC
+.extern FUN_020AACFC
+.extern FUN_020AADCC
+.extern FUN_020ACAB0
+.extern FUN_020ACBA0
+.extern FUN_020ACC84
+.extern FUN_020ACD54
+.extern FUN_020AD144
+.extern VCT_HandleData
+.extern VCT_Main
+.extern VCT_Cleanup
+.extern VCT_Init
+.extern FUN_020ADA84
+.extern FUN_020ADA98
+.extern FUN_020ADAB0
+.extern FUN_020ADB18
+.extern FUN_020ADBE8
+.extern FUN_020ADC74
+.extern FUN_020ADDC0
+.extern FUN_020ADDC8
+.extern FUN_020ADDF0
+.extern FUN_020ADE2C
+.extern FUN_020AE554
+.extern FUN_020AE5B0
+.extern FUN_020AE600
+.extern FUN_020AE638
+.extern FUN_020AE684
+.extern FUN_020AE82C
+.extern FUN_020AE84C
+.extern FUN_020AE868
+.extern FUN_020AE8CC
+.extern FUN_020AE918
+.extern FUN_020AEAF4
+.extern FUN_020AEB70
+.extern FUN_020AEC60
+.extern FUN_020AEC7C
+.extern FUN_020AEC98
+.extern FUN_020AEDF4
+.extern FUN_020AEE40
+.extern FUN_020AEEB8
+.extern FUN_020AEF1C
+.extern FUN_020AF2E0
+.extern FUN_020AF2F4
+.extern FUN_020AF30C
+.extern FUN_020AF6A4
+.extern FUN_020AF894
+.extern FUN_020AF9C4
+.extern FUN_020AFA28
+.extern FUN_020AFA30
+.extern FUN_020AFA80
+.extern FUN_020AFBA8
+.extern FUN_020AFBFC
+.extern FUN_020AFC04
+.extern FUN_020AFEB8
+.extern FUN_020AFFD8
+.extern FUN_020B0030
+.extern FUN_020B0088
+.extern FUN_020B00F0
+.extern FUN_020B0138
+.extern FUN_020B0180
+.extern FUN_020B0250
+.extern FUN_020B02C8
+.extern FUN_020B0448
+.extern FUN_020B04FC
+.extern FUN_020B0830
+.extern FUN_020B0870
+.extern FUN_020B0888
+.extern FUN_020B0BB0
+.extern FUN_020B0C7C
+.extern FUN_020B0D58
+.extern FUN_020B0E34
+.extern FUN_020B0FC0
+.extern FUN_020B10E8
+.extern FUN_020B1240
+.extern FUN_020B1340
+.extern FUN_020B1528
+.extern FUN_020B1768
+.extern FUN_020B19C4
+.extern FUN_020B19DC
+.extern FUN_020B1A14
+.extern FUN_020B1A1C
+.extern FUN_020B1A24
+.extern FUN_020B1AF8
+.extern FUN_020B1EA4
+.extern FUN_020B1EC4
+.extern FUN_020B1EE4
+.extern FUN_020B1EFC
+.extern FUN_020B1F80
+.extern FUN_020B20C8
+.extern FUN_020B2194
+.extern FUN_020B224C
+.extern FUN_020B23D8
+.extern FUN_020B242C
+.extern FUN_020B2794
+.extern FUN_020B28B4
+.extern FUN_020B2A08
+.extern FUN_020B2B08
+.extern FUN_020B2B58
+.extern FUN_020B2D9C
+.extern FUN_020B317C
+.extern FUN_020B31F0
+.extern FUN_020B326C
+.extern FUN_020B3334
+.extern FUN_020B3390
+.extern FUN_020B33A0
+.extern FUN_020B4358
+.extern FUN_020B43A4
+.extern FUN_020B442C
+.extern FUN_020B4568
+.extern FUN_020B4F38
+.extern FUN_020B502C
+.extern FUN_020B5C88
+.extern FUN_020B5CE4
+.extern FUN_020B5D3C
+.extern FUN_020B5E50
+.extern FUN_020B6180
+.extern FUN_020B6240
+.extern FUN_020B62F8
+.extern FUN_020B6388
+.extern FUN_020B63CC
+.extern FUN_020B7168
+.extern FUN_020B7218
+.extern FUN_020B772C
+.extern FUN_020B7790
+.extern FUN_020B7C58
+.extern FUN_020B7C78
+.extern FUN_020B7CDC
+.extern FUN_020B7CE4
+.extern FUN_020B7CF0
+.extern FUN_020B7D28
+.extern FUN_020B7DFC
+.extern FUN_020B7E10
+.extern FUN_020B7E1C
+.extern FUN_020B7E28
+.extern FUN_020B7EFC
+.extern FUN_020B80B4
+.extern FUN_020B8110
+.extern FUN_020B8344
+.extern FUN_020B8390
+.extern FUN_020B83BC
+.extern FUN_020B83E0
+.extern FUN_020B8404
+.extern FUN_020B8418
+.extern FUN_020B844C
+.extern FUN_020B8474
+.extern FUN_020B849C
+.extern FUN_020BAC98
+.extern FUN_020BAFB8
+.extern FUN_020BB1C0
+.extern FUN_020BB394
+.extern FUN_020BB408
+.extern FUN_020BB59C
+.extern FUN_020BB7F4
+.extern FUN_020BB8D0
+.extern FUN_020BB8F4
+.extern FUN_020BB934
+.extern FUN_020BB974
+.extern FUN_020BB9B4
+.extern FUN_020BB9F4
+.extern FUN_020BBA34
+.extern FUN_020BBA74
+.extern FUN_020BBAB4
+.extern FUN_020BBAF4
+.extern FUN_020BBB34
+.extern FUN_020BBB74
+.extern FUN_020BBBB4
+.extern FUN_020BBBF4
+.extern FUN_020BBC34
+.extern FUN_020BC02C
+.extern FUN_020BC094
+.extern FUN_020BC0FC
+.extern FUN_020BC13C
+.extern FUN_020BC2A0
+.extern FUN_020BC4C8
+.extern FUN_020C0174
+.extern FUN_020C01A0
+.extern FUN_020C01D0
+.extern FUN_020C03B8
+.extern FUN_020C041C
+.extern FUN_020C044C
+.extern FUN_020C04DC
+.extern FUN_020C0510
+.extern FUN_020C054C
+.extern FUN_020C0670
+.extern FUN_020C0688
+.extern FUN_020C0DD4
+.extern FUN_020C0E14
+.extern FUN_020C0E7C
+.extern FUN_020C0EA4
+.extern FUN_020C0EF4
+.extern FUN_020C0F30
+.extern FUN_020C0F50
+.extern FUN_020C0F68
+.extern FUN_020C0F80
+.extern FUN_020C0F8C
+.extern FUN_020C0F9C
+.extern FUN_020C0FDC
+.extern FUN_020C1040
+.extern FUN_020C10A4
+.extern FUN_020C1148
+.extern FUN_020C1180
+.extern FUN_020C13C4
+.extern FUN_020C1430
+.extern FUN_020C14AC
+.extern FUN_020C1674
+.extern FUN_020C169C
+.extern FUN_020C16FC
+.extern FUN_020C1E58
+.extern FUN_020C1E68
+.extern FUN_020C1EA4
+.extern FUN_020C1F54
+.extern FUN_020C1FA4
+.extern FUN_020C1FF0
+.extern FUN_020C20DC
+.extern FUN_020C2104
+.extern FUN_020C217C
+.extern FUN_020C226C
+.extern FUN_020C22D0
+.extern FUN_020C23FC
+.extern FUN_020C2444
+.extern FUN_020C26F8
+.extern FUN_020C2828
+.extern FUN_020C290C
+.extern FUN_020C2A94
+.extern FUN_020C35E0
+.extern FUN_020C360C
+.extern FUN_020C3640
+.extern FUN_020C3674
+.extern FUN_020C36A8
+.extern FUN_020C3910
+.extern FUN_020C3980
+.extern FUN_020C39CC
+.extern FUN_020C5D8C
+.extern FUN_020C5E04
+.extern FUN_020C6034
+.extern FUN_020C605C
+.extern FUN_020D6714
+.extern FUN_020D9564
+.extern FX_Atan
+.extern FX_Atan2
+.extern FX_AtanTable_
+.extern FX_Div
+.extern FX_DivAsync
+.extern FX_DivS32
+.extern FX_GetDivResult
+.extern FX_GetDivResultFx64c
+.extern FX_Init
+.extern FX_Inv
+.extern FX_InvAsync
+.extern FX_ModS32
+.extern FX_Modf
+.extern FX_Sqrt
+.extern gGameLanguage
+.extern gGameVersion
+.extern G2S_GetBG0CharPtr
+.extern G2S_GetBG0ScrPtr
+.extern G2S_GetBG1CharPtr
+.extern G2S_GetBG1ScrPtr
+.extern G2S_GetBG2CharPtr
+.extern G2S_GetBG2ScrPtr
+.extern G2S_GetBG3CharPtr
+.extern G2S_GetBG3ScrPtr
+.extern G2_GetBG0CharPtr
+.extern G2_GetBG0ScrPtr
+.extern G2_GetBG1CharPtr
+.extern G2_GetBG1ScrPtr
+.extern G2_GetBG2CharPtr
+.extern G2_GetBG2ScrPtr
+.extern G2_GetBG3CharPtr
+.extern G2_GetBG3ScrPtr
+.extern G2x_ChangeBlendBrightness_
+.extern G2x_SetBGyAffine_
+.extern G2x_SetBlendAlpha_
+.extern G2x_SetBlendBrightnessExt_
+.extern G2x_SetBlendBrightness_
+.extern G3B_Begin
+.extern G3B_Color
+.extern G3B_End
+.extern G3B_LightColor
+.extern G3B_LightVector
+.extern G3B_LoadMtx44
+.extern G3B_MaterialColorDiffAmb
+.extern G3B_MaterialColorSpecEmi
+.extern G3B_Normal
+.extern G3B_PolygonAttr
+.extern G3B_PopMtx
+.extern G3B_PushMtx
+.extern G3B_Vtx
+.extern G3X_GetBoxTestResult
+.extern G3X_GetClipMtx
+.extern G3X_GetVectorMtx
+.extern G3X_Init
+.extern G3X_InitMtxStack
+.extern G3X_ResetMtxStack
+.extern G3X_ResetMtxStack_2
+.extern G3X_SetClearColor
+.extern G3X_SetEdgeColorTable
+.extern G3X_SetFog
+.extern G3X_SetFogTable
+.extern G3X_SetHOffset
+.extern G3_BeginMakeDL
+.extern G3_EndMakeDL
+.extern G3_LoadMtx43
+.extern G3_MultMtx33
+.extern G3_MultMtx43
+.extern G3_RotX
+.extern G3_RotY
+.extern G3_RotZ
+.extern G3i_LookAt_
+.extern G3i_OrthoW_
+.extern G3i_PerspectiveW_
+.extern GXS_BeginLoadBGExtPltt
+.extern GXS_BeginLoadOBJExtPltt
+.extern GXS_EndLoadBGExtPltt
+.extern GXS_EndLoadOBJExtPltt
+.extern GXS_LoadBG0Char
+.extern GXS_LoadBG0Scr
+.extern GXS_LoadBG1Char
+.extern GXS_LoadBG1Scr
+.extern GXS_LoadBG2Char
+.extern GXS_LoadBG2Scr
+.extern GXS_LoadBG3Char
+.extern GXS_LoadBG3Scr
+.extern GXS_LoadBGExtPltt
+.extern GXS_LoadBGPltt
+.extern GXS_LoadOAM
+.extern GXS_LoadOBJ
+.extern GXS_LoadOBJExtPltt
+.extern GXS_LoadOBJPltt
+.extern GXS_SetGraphicsMode
+.extern GX_BeginLoadBGExtPltt
+.extern GX_BeginLoadClearImage
+.extern GX_BeginLoadOBJExtPltt
+.extern GX_BeginLoadTex
+.extern GX_BeginLoadTexPltt
+.extern GX_DisableBankForARM7
+.extern GX_DisableBankForBGExtPltt
+.extern GX_DisableBankForClearImage
+.extern GX_DisableBankForLCDC
+.extern GX_DisableBankForOBJExtPltt
+.extern GX_DisableBankForOBJExtPltt_2
+.extern GX_DisableBankForSubBGExtPltt
+.extern GX_DisableBankForSubOBJExtPltt
+.extern GX_DisableBankForSubOBJExtPltt_2
+.extern GX_DisableBankForTexPltt
+.extern GX_DisableBankForTexPltt_2
+.extern GX_DispOff
+.extern GX_DispOn
+.extern GX_EndLoadBGExtPltt
+.extern GX_EndLoadClearImage
+.extern GX_EndLoadOBJExtPltt
+.extern GX_EndLoadTex
+.extern GX_EndLoadTexPltt
+.extern GX_GetBankForBGExtPltt
+.extern GX_GetBankForBGExtPltt_2
+.extern GX_GetBankForLCDC
+.extern GX_GetBankForOBJ
+.extern GX_GetBankForOBJExtPltt
+.extern GX_GetBankForSubBGExtPltt
+.extern GX_GetBankForSubBGExtPltt_2
+.extern GX_GetBankForSubOBJ
+.extern GX_GetBankForSubOBJExtPltt
+.extern GX_GetBankForTexPltt
+.extern GX_HBlankIntr
+.extern GX_Init
+.extern GX_InitGXState
+.extern GX_LoadBG0Char
+.extern GX_LoadBG0Scr
+.extern GX_LoadBG1Char
+.extern GX_LoadBG1Scr
+.extern GX_LoadBG2Char
+.extern GX_LoadBG2Scr
+.extern GX_LoadBG3Char
+.extern GX_LoadBG3Scr
+.extern GX_LoadBGExtPltt
+.extern GX_LoadBGPltt
+.extern GX_LoadClearImageColor
+.extern GX_LoadClearImageDepth
+.extern GX_LoadOAM
+.extern GX_LoadOBJ
+.extern GX_LoadOBJExtPltt
+.extern GX_LoadOBJPltt
+.extern GX_LoadTex
+.extern GX_LoadTexPltt
+.extern GX_ResetBankForBG
+.extern GX_ResetBankForBGExtPltt
+.extern GX_ResetBankForClearImage
+.extern GX_ResetBankForOBJ
+.extern GX_ResetBankForOBJExtPltt
+.extern GX_ResetBankForSubBG
+.extern GX_ResetBankForSubOBJ
+.extern GX_ResetBankForTex
+.extern GX_ResetBankForTexPltt
+.extern GX_SendFifo48B
+.extern GX_SetBankForARM7
+.extern GX_SetBankForBG
+.extern GX_SetBankForBGExtPltt
+.extern GX_SetBankForClearImage
+.extern GX_SetBankForLCDC
+.extern GX_SetBankForOBJ
+.extern GX_SetBankForOBJExtPltt
+.extern GX_SetBankForSubBG
+.extern GX_SetBankForSubBGExtPltt
+.extern GX_SetBankForSubOBJ
+.extern GX_SetBankForSubOBJExtPltt
+.extern GX_SetBankForTex
+.extern GX_SetBankForTexPltt
+.extern GX_SetGraphicsMode
+.extern GX_VBlankIntr
+.extern GXx_SetMasterBrightness_
+.extern GetSoundDataPointer
+.extern HandleLoadOverlay
+.extern IC_InvalidateAll
+.extern IC_InvalidateRange
+.extern InitGraphicMemory
+.extern InitScriptContext
+.extern InitSystemForTheGame
+.extern InitializeMainRNG
+.extern ReadWholeNarcMemberByIdPair
+.extern GetNarcMemberSizeByIdPair
+.extern AllocAndReadWholeNarcMemberByIdPair
+.extern LoadOverlay_MODULE_05
+.extern LoadPlayerDataAddress
+.extern MATH_CalcCRC16
+.extern MATH_CalcCRC16CCITT
+.extern MATH_CalcCRC32
+.extern MATH_CalcCRC8
+.extern MATH_CalcMD5
+.extern MATH_CalcSHA1
+.extern MATH_CountPopulation
+.extern MATH_MD5GetHash
+.extern MATH_MD5Init
+.extern MATH_MD5Update
+.extern MATHi_CRC16InitTable
+.extern MATHi_CRC16InitTableRev
+.extern MATHi_CRC32InitTableRev
+.extern MATHi_CRC8InitTable
+.extern MIC_DoSamplingAsync
+.extern MIC_GetLastSamplingAddress
+.extern MIC_Init
+.extern MIC_StartAutoSampling
+.extern MIC_StartAutoSamplingAsync
+.extern MIC_StopAutoSampling
+.extern MI_Copy36B
+.extern MI_Copy48B
+.extern MI_Copy64B
+.extern MI_CpuCopy8
+.extern MI_CpuFill8
+.extern MI_DmaCopy16
+.extern MI_DmaCopy32
+.extern MI_DmaCopy32Async
+.extern MI_DmaFill32
+.extern MI_DmaFill32Async
+.extern MI_HBlankDmaCopy16
+.extern MI_HBlankDmaCopy32
+.extern MI_Init
+.extern MI_SendGXCommand
+.extern MI_SendGXCommandAsync
+.extern MI_SendGXCommandAsyncFast
+.extern MI_SetWramBank
+.extern MI_StopDma
+.extern MI_SwapWord
+.extern MI_UncompressLZ8
+.extern MI_WaitDma
+.extern MI_Zero36B
+.extern MIi_CardDmaCopy32
+.extern MIi_CheckAnotherAutoDMA
+.extern MIi_CheckDma0SourceAddress
+.extern MIi_CpuClear16
+.extern MIi_CpuClear32
+.extern MIi_CpuClearFast
+.extern MIi_CpuCopy16
+.extern MIi_CpuCopy32
+.extern MIi_CpuCopyFast
+.extern MIi_CpuSend32
+.extern MIi_DmaSetParams
+.extern MIi_DmaSetParams_noInt
+.extern MIi_DmaSetParams_wait
+.extern MIi_DmaSetParams_wait_noInt
+.extern MIi_UncompressBackward
+.extern MOD04_021D7660
+.extern MOD04_021D76AC
+.extern MOD04_021D77C4
+.extern MOD04_021D77E0
+.extern MOD04_021D7800
+.extern MOD04_021D78FC
+.extern MOD04_021D79B4
+.extern MOD04_021D7A7C
+.extern MOD04_021D7B14
+.extern MOD04_021D7B48
+.extern MOD04_021D7B6C
+.extern MOD04_021D7B70
+.extern MOD04_021D7BBC
+.extern MOD04_021D7BC0
+.extern MOD04_021D7C30
+.extern MOD04_021D7C4C
+.extern MOD04_021D7D68
+.extern MOD04_021D7DA8
+.extern MOD04_021D7DEC
+.extern MOD04_021D7E18
+.extern MOD04_021D7F20
+.extern MOD04_021D7F8C
+.extern MOD04_021D8018
+.extern MOD04_021D8044
+.extern MOD04_021D8058
+.extern MOD04_021D80E0
+.extern MOD04_021D82BC
+.extern MOD04_021D836C
+.extern MOD04_021D83A8
+.extern MOD04_021D83C0
+.extern MOD04_021D83D4
+.extern MOD04_021D83F0
+.extern MOD04_021D8478
+.extern MOD04_021D8480
+.extern MOD04_021D8494
+.extern MOD04_021D853C
+.extern MOD04_021D8558
+.extern MOD04_021D8590
+.extern MOD04_021D85A0
+.extern MOD04_021D85B4
+.extern MOD04_021D861C
+.extern MOD04_021D8624
+.extern MOD04_021D8640
+.extern MOD04_021D865C
+.extern MOD04_021D8678
+.extern MOD04_021D868C
+.extern MOD04_021D872C
+.extern MOD04_021D8730
+.extern MOD04_021D87D0
+.extern MOD04_021D8818
+.extern MOD04_021D8860
+.extern MOD04_021D8910
+.extern MOD04_021D8944
+.extern MOD04_021D8A54
+.extern MOD04_021D8A7C
+.extern MOD04_021D8BF0
+.extern MOD04_021D8C08
+.extern MOD04_021D8C58
+.extern MOD04_021D8C6C
+.extern MOD04_021D8CC8
+.extern MOD04_021D8CF0
+.extern MOD04_021D8D04
+.extern MOD04_021D8F08
+.extern MOD04_021D9C2C
+.extern MOD04_021D9F78
+.extern MOD04_021DA2F4
+.extern MOD04_021DA334
+.extern MOD04_021DA388
+.extern MOD04_021DA3DC
+.extern MOD04_021DAB68
+.extern MOD04_021DCA84
+.extern MOD04_021DD6F0
+.extern MOD04_021DD718
+.extern MOD04_021DD808
+.extern MOD04_021DD82C
+.extern MOD04_021DD844
+.extern MOD04_021DD860
+.extern MOD04_021DD904
+.extern MOD04_021DD944
+.extern MOD04_021DD968
+.extern MOD04_021DD984
+.extern MOD04_021DD9DC
+.extern MOD04_021DDB08
+.extern MOD04_021DDB40
+.extern MOD04_021DDBBC
+.extern MOD04_021DDC1C
+.extern MOD04_021DDCE8
+.extern MOD04_021DDD7C
+.extern MOD04_021DDDCC
+.extern MOD04_021DDE7C
+.extern MOD04_021DDEE0
+.extern MOD04_021DDF40
+.extern MOD04_021DDF4C
+.extern MOD04_021DE05C
+.extern MOD04_021DE1F8
+.extern MOD04_021DE2D0
+.extern MOD04_021DE308
+.extern MOD04_021DE330
+.extern MOD04_021DE364
+.extern MOD04_021DE3AC
+.extern MOD04_021DE3D0
+.extern MOD04_021DE404
+.extern MOD04_021DE45C
+.extern MOD04_021DF95C
+.extern MOD04_021DF978
+.extern MOD04_021DFA40
+.extern MOD04_021DFAF8
+.extern MOD04_021DFB20
+.extern MOD04_021DFD18
+.extern MOD04_021DFDBC
+.extern MOD04_021DFE64
+.extern MOD04_021DFF74
+.extern MOD04_021E0200
+.extern MOD04_021E0374
+.extern MOD04_021E242C
+.extern MOD04_021E2454
+.extern MOD04_021E2578
+.extern MOD04_021EA530
+.extern MOD04_021EACF8
+.extern MOD04_021EADD8
+.extern MOD04_021EADF8
+.extern MOD04_021EAE18
+.extern MOD04_021EAE38
+.extern MOD04_021EAE90
+.extern MOD04_021EB044
+.extern MOD04_021EB0FC
+.extern MOD04_021EB3B8
+.extern MOD04_021EB524
+.extern MOD04_021EB550
+.extern MOD04_021EB59C
+.extern MOD04_021EB9A4
+.extern MOD04_021EB9D8
+.extern MOD04_021EBAE8
+.extern MOD04_021EBB80
+.extern MOD04_021EBC60
+.extern MOD04_021EEFA8
+.extern MOD04_021EEFFC
+.extern MOD04_021EF06C
+.extern MOD04_021EF074
+.extern MOD04_021EF0E4
+.extern MOD04_021EF820
+.extern MOD04_021EFB28
+.extern MOD04_021EFB38
+.extern MOD04_021EFC24
+.extern MOD04_021EFC78
+.extern MOD04_021EFCE4
+.extern MOD04_021EFD80
+.extern MOD04_021EFD9C
+.extern MOD04_021EFDB8
+.extern MOD04_021EFF5C
+.extern MOD04_021F0130
+.extern MOD04_021F017C
+.extern MOD04_021F0208
+.extern MOD04_021F024C
+.extern MOD04_021F0250
+.extern MOD04_021F025C
+.extern MOD05_021D74E0
+.extern MOD05_021D7A20
+.extern MOD05_021D7A28
+.extern MOD05_021D7CA4
+.extern MOD05_021D8024
+.extern MOD05_021D80A4
+.extern MOD05_021D80E4
+.extern MOD05_021D8164
+.extern MOD05_021D8320
+.extern MOD05_021D85FC
+.extern MOD05_021D8758
+.extern MOD05_021D8820
+.extern MOD05_021D9320
+.extern MOD05_021D94B4
+.extern MOD05_021D9510
+.extern MOD05_021D959C
+.extern MOD05_021D967C
+.extern MOD05_021D96F4
+.extern MOD05_021D9708
+.extern MOD05_021D971C
+.extern MOD05_021D9820
+.extern MOD05_021D99F8
+.extern MOD05_021DA03C
+.extern MOD05_021DA080
+.extern MOD05_021DA0DC
+.extern MOD05_021DA0E0
+.extern MOD05_021DA0E8
+.extern MOD05_021DA118
+.extern MOD05_021DA138
+.extern MOD05_021DA1A0
+.extern MOD05_021DA1A4
+.extern MOD05_021DA1A8
+.extern MOD05_021DA20C
+.extern MOD05_021DA464
+.extern MOD05_021DA4BC
+.extern MOD05_021DA4EC
+.extern MOD05_021DA54C
+.extern MOD05_021DA58C
+.extern MOD05_021DA5B8
+.extern MOD05_021DA5C8
+.extern MOD05_021DA5D0
+.extern MOD05_021DA5D8
+.extern MOD05_021DA7B4
+.extern MOD05_021DAAA4
+.extern MOD05_021DAC70
+.extern MOD05_021DAE40
+.extern MOD05_021DAED4
+.extern MOD05_021DAF28
+.extern MOD05_021DAF78
+.extern MOD05_021DAF98
+.extern MOD05_021DB030
+.extern MOD05_021DB040
+.extern MOD05_021DB144
+.extern MOD05_021DB1D0
+.extern MOD05_021DB250
+.extern MOD05_021DB380
+.extern MOD05_021DB44C
+.extern MOD05_021DB4B0
+.extern MOD05_021DB52C
+.extern MOD05_021DB53C
+.extern MOD05_021DBA40
+.extern MOD05_021DBA78
+.extern MOD05_021DBAA0
+.extern MOD05_021DC174
+.extern MOD05_021DD60C
+.extern MOD05_021E1374
+.extern MOD05_021E1858
+.extern MOD05_021E1994
+.extern MOD05_021E1BF8
+.extern MOD05_021E1C4C
+.extern MOD05_021E1C54
+.extern MOD05_021E1ECC
+.extern MOD05_021E1F34
+.extern MOD05_021E1F58
+.extern MOD05_021E1F60
+.extern MOD05_021E2464
+.extern MOD05_021E2608
+.extern MOD05_021E26CC
+.extern MOD05_021E27E8
+.extern MOD05_021E288C
+.extern MOD05_021E28A0
+.extern MOD05_021E2950
+.extern MOD05_021E29B4
+.extern MOD05_021E29C8
+.extern MOD05_021E2A70
+.extern MOD05_021E2AD4
+.extern MOD05_021E2B80
+.extern MOD05_021E2B9C
+.extern MOD05_021E2BB8
+.extern MOD05_021E2BD0
+.extern MOD05_021E2C24
+.extern MOD05_021E2C58
+.extern MOD05_021E2CBC
+.extern MOD05_021E32F0
+.extern MOD05_021E331C
+.extern MOD05_021E3424
+.extern MOD05_021E3444
+.extern MOD05_021E495C
+.extern MOD05_021E4BE8
+.extern MOD05_021E4C00
+.extern MOD05_021E4C08
+.extern MOD05_021E4C20
+.extern MOD05_021E4C24
+.extern MOD05_021E4C54
+.extern MOD05_021E4C60
+.extern MOD05_021E4C6C
+.extern MOD05_021E4DC4
+.extern MOD05_021E4DE4
+.extern MOD05_021E4E90
+.extern MOD05_021E4EE4
+.extern MOD05_021E4EFC
+.extern MOD05_021E506C
+.extern MOD05_021E5078
+.extern MOD05_021E5094
+.extern MOD05_021E50A0
+.extern MOD05_021E50AC
+.extern MOD05_021E50C8
+.extern MOD05_021E50D4
+.extern MOD05_021E5114
+.extern MOD05_021E5198
+.extern MOD05_021E51EC
+.extern MOD05_021E5224
+.extern MOD05_021E5260
+.extern MOD05_021E5294
+.extern MOD05_021E53B4
+.extern MOD05_021E5420
+.extern MOD05_021E5614
+.extern MOD05_021E57D4
+.extern MOD05_021E5970
+.extern MOD05_021E5B30
+.extern MOD05_021E5D0C
+.extern MOD05_021E5E8C
+.extern MOD05_021E5FD8
+.extern MOD05_021E5FE0
+.extern MOD05_021E6410
+.extern MOD05_021E643C
+.extern MOD05_021E6990
+.extern MOD05_021E69BC
+.extern MOD05_021E6BF4
+.extern MOD05_021E7030
+.extern MOD05_021E70F0
+.extern MOD05_021E7138
+.extern MOD05_021E7184
+.extern MOD05_021E71E8
+.extern MOD05_021E7750
+.extern MOD05_021E799C
+.extern MOD05_021E7AC0
+.extern MOD05_021E7C1C
+.extern MOD05_021E7C80
+.extern MOD05_021E7E9C
+.extern MOD05_021E7EA0
+.extern MOD05_021E7EB0
+.extern MOD05_021E7EC0
+.extern MOD05_021E7EC4
+.extern MOD05_021E7EC8
+.extern MOD05_021E7ECC
+.extern MOD05_021E7ED0
+.extern MOD05_021E7ED8
+.extern MOD05_021E7EEC
+.extern MOD05_021E7FBC
+.extern MOD05_021E8128
+.extern MOD05_021E8130
+.extern MOD05_021E8140
+.extern MOD05_021E8144
+.extern MOD05_021E8148
+.extern MOD05_021E8158
+.extern MOD05_021E81BC
+.extern MOD05_021E84F4
+.extern MOD05_021E856C
+.extern MOD05_021E8588
+.extern MOD05_021E85E4
+.extern MOD05_021E85FC
+.extern MOD05_021E8648
+.extern MOD05_021E8698
+.extern MOD05_021EC464
+.extern MOD05_021EC57C
+.extern MOD05_021EC71C
+.extern MOD05_021EC7B4
+.extern MOD05_021EC854
+.extern MOD05_021EC864
+.extern MOD05_021ECD64
+.extern MOD05_021ECF14
+.extern MOD05_021ED0CC
+.extern MOD05_021ED49C
+.extern MOD05_021ED4E0
+.extern MOD05_021ED52C
+.extern MOD05_021ED5C4
+.extern MOD05_021ED5EC
+.extern MOD05_021ED644
+.extern MOD05_021ED940
+.extern MOD05_021ED9B4
+.extern MOD05_021EDA48
+.extern MOD05_021EDBC8
+.extern MOD05_021EEF68
+.extern MOD05_021EEF9C
+.extern MOD05_021EF4F8
+.extern MOD05_021EF5E0
+.extern MOD05_021EF604
+.extern MOD05_021EF620
+.extern MOD05_021EF654
+.extern MOD05_021EF824
+.extern MOD05_021EF844
+.extern MOD05_021EF8C8
+.extern MOD05_021EF8DC
+.extern MOD05_021EFA9C
+.extern MOD05_021F02C4
+.extern MOD05_021F0318
+.extern MOD05_021F043C
+.extern MOD05_021F04F8
+.extern MOD05_021F0514
+.extern MOD05_021F1C1C
+.extern MOD05_021F1C30
+.extern MOD05_021F1D8C
+.extern MOD05_021F1DC8
+.extern MOD05_021F1DFC
+.extern MOD05_021F1E64
+.extern MOD05_021F1EC0
+.extern MOD05_021F1F78
+.extern MOD05_021F2094
+.extern MOD05_021F20D8
+.extern MOD05_021F20F8
+.extern MOD05_021F220C
+.extern MOD05_021F2AF4
+.extern MOD05_021F2E0C
+.extern MOD05_021F2E28
+.extern MOD05_021F2F48
+.extern MOD05_021F2F6C
+.extern MOD05_021F3A18
+.extern MOD05_021F3AB4
+.extern MOD05_021F3B4C
+.extern MOD05_021F3B7C
+.extern MOD05_021F3DA4
+.extern MOD05_021F44D8
+.extern MOD05_021F4520
+.extern MOD05_021F4568
+.extern MOD05_021F4594
+.extern MOD05_021F45E8
+.extern MOD05_021F4608
+.extern MOD05_021F4BD0
+.extern MOD05_021F4C88
+.extern MOD05_021F4CD4
+.extern MOD05_021F4D80
+.extern MOD05_021F4DC8
+.extern MOD05_021F4E7C
+.extern MOD05_021F51D0
+.extern MOD05_021F522C
+.extern MOD05_021F5268
+.extern MOD05_021F52C8
+.extern MOD05_021F531C
+.extern MOD05_021F5348
+.extern MOD05_021F5358
+.extern MOD05_021F5384
+.extern MOD05_021F53BC
+.extern MOD05_021F53F8
+.extern MOD05_021F5400
+.extern MOD05_021F5424
+.extern MOD05_021F5430
+.extern MOD05_021F54CC
+.extern MOD05_021F54D0
+.extern MOD05_021F54D8
+.extern MOD05_021F54E0
+.extern MOD05_021F57EC
+.extern MOD05_021F5C44
+.extern MOD05_021F61DC
+.extern MOD05_021F61E8
+.extern MOD05_021F61F4
+.extern MOD05_021F6234
+.extern MOD05_021F6240
+.extern MOD05_021F6254
+.extern MOD06_02239944
+.extern MOD06_02239AAC
+.extern MOD06_0223BA04
+.extern MOD06_0223BD14
+.extern MOD06_0223BE70
+.extern MOD06_0223C08C
+.extern MOD06_0223CCDC
+.extern MOD06_0223CD7C
+.extern MOD06_0223CDB8
+.extern MOD06_0223D3D0
+.extern MOD06_0223DFB4
+.extern MOD06_02240790
+.extern MOD06_022407CC
+.extern MOD06_022407DC
+.extern MOD06_022407F8
+.extern MOD06_02240834
+.extern MOD06_02240844
+.extern MOD06_022411F4
+.extern MOD06_02241230
+.extern MOD06_022412F4
+.extern MOD06_02241670
+.extern MOD06_0224186C
+.extern MOD06_02241914
+.extern MOD06_02242224
+.extern MOD06_02242404
+.extern MOD06_02242444
+.extern MOD06_02242458
+.extern MOD06_022425C8
+.extern MOD06_02242698
+.extern MOD06_022426AC
+.extern MOD06_022426F4
+.extern MOD06_022428D8
+.extern MOD06_022429B0
+.extern MOD06_022429C4
+.extern MOD06_02242A38
+.extern MOD06_02242BE0
+.extern MOD06_0224312C
+.extern MOD06_022432E4
+.extern MOD06_0224339C
+.extern MOD06_022433A8
+.extern MOD06_022433B0
+.extern MOD06_022433B8
+.extern MOD06_022433F8
+.extern MOD06_02243408
+.extern MOD06_02243428
+.extern MOD06_02243448
+.extern MOD06_0224345C
+.extern MOD06_022434AC
+.extern MOD06_022434BC
+.extern MOD06_022434D0
+.extern MOD06_02243694
+.extern MOD06_022436C8
+.extern MOD06_022436E8
+.extern MOD06_02243780
+.extern MOD06_02243838
+.extern MOD06_022438DC
+.extern MOD06_022438E0
+.extern MOD06_022438FC
+.extern MOD06_02243920
+.extern MOD06_022439F8
+.extern MOD06_02243AD8
+.extern MOD06_02243BA8
+.extern MOD06_02243C5C
+.extern MOD06_02243D3C
+.extern MOD06_02243DA0
+.extern MOD06_02243DB8
+.extern MOD06_02243DC0
+.extern MOD06_02243DC4
+.extern MOD06_02243DD8
+.extern MOD06_02243DE0
+.extern MOD06_02243E34
+.extern MOD06_02243E74
+.extern MOD06_02243F18
+.extern MOD06_02243F50
+.extern MOD06_02243F9C
+.extern MOD06_02244210
+.extern MOD06_02244558
+.extern MOD06_02244660
+.extern MOD06_022446BC
+.extern MOD06_022446E0
+.extern MOD06_022446FC
+.extern MOD06_02244758
+.extern MOD06_02244770
+.extern MOD06_02244DB0
+.extern MOD06_02244DBC
+.extern MOD06_02244DC4
+.extern MOD06_02244EF8
+.extern MOD06_02244F18
+.extern MOD06_02244F24
+.extern MOD06_02244F2C
+.extern MOD06_02245088
+.extern MOD06_02245114
+.extern MOD06_02245190
+.extern MOD06_02245198
+.extern MOD06_022451F0
+.extern MOD06_022451F4
+.extern MOD06_0224525C
+.extern MOD06_02245340
+.extern MOD06_022456E8
+.extern MOD06_022457A8
+.extern MOD06_022457CC
+.extern MOD06_022457F8
+.extern MOD06_02245824
+.extern MOD06_0224582C
+.extern MOD06_02245844
+.extern MOD06_02245910
+.extern MOD06_02245FA0
+.extern MOD06_0224666C
+.extern MOD06_022466A0
+.extern MOD06_022466AC
+.extern MOD06_02247544
+.extern MOD06_02247808
+.extern MOD06_022483BC
+.extern MOD06_022483E0
+.extern MOD06_022483EC
+.extern MOD06_02248724
+.extern MOD06_0224884C
+.extern MOD06_022488CC
+.extern MOD06_022488EC
+.extern MOD06_022488F4
+.extern MOD06_022488FC
+.extern MOD06_0224891C
+.extern MOD06_02248B54
+.extern MOD06_02248B58
+.extern MOD06_02248B5C
+.extern MOD06_02248B60
+.extern MOD06_02248B6C
+.extern MOD06_02248CC0
+.extern MOD06_02248CD0
+.extern MOD06_02248F70
+.extern MOD06_02248FE0
+.extern MOD06_02249038
+.extern MOD06_022490A0
+.extern MOD06_022491FC
+.extern MOD06_02249508
+.extern MOD06_02249668
+.extern MOD06_022497E8
+.extern MOD06_02249B7C
+.extern MOD06_02249E6C
+.extern MOD06_02249E78
+.extern MOD06_02249E84
+.extern MOD06_02249E90
+.extern MOD06_0224A130
+.extern MOD06_0224A310
+.extern MOD06_0224A528
+.extern MOD06_0224A6B8
+.extern MOD06_0224A6FC
+.extern MOD06_0224A7C8
+.extern MOD06_0224A8D4
+.extern MOD06_0224AA40
+.extern MOD06_0224ABAC
+.extern MOD06_0224ADF8
+.extern MOD06_0224AEE8
+.extern MOD06_0224AF68
+.extern MOD06_0224B124
+.extern MOD06_0224B2C4
+.extern MOD06_0224B568
+.extern MOD06_0224B818
+.extern MOD06_0224B86C
+.extern MOD06_0224B9E0
+.extern MOD06_0224BBEC
+.extern MOD06_0224BD90
+.extern MOD06_0224C038
+.extern MOD06_0224C24C
+.extern MOD06_0224C27C
+.extern MOD06_0224C520
+.extern MOD06_0224C678
+.extern MOD06_0224C6E8
+.extern MOD06_0224C6F4
+.extern MOD06_0224C700
+.extern MOD06_0224C8C8
+.extern MOD06_0224C8E8
+.extern MOD06_0224CA58
+.extern MOD06_0224CA88
+.extern MOD06_0224CB30
+.extern MOD06_0224CBB0
+.extern MOD06_0224CC24
+.extern MOD06_0224CECC
+.extern MOD06_0224D14C
+.extern MOD06_0224D2E0
+.extern MOD06_0224D3E8
+.extern MOD06_0224D70C
+.extern MOD06_0224D76C
+.extern MOD06_0224D79C
+.extern MOD06_0224E554
+.extern MOD06_0224E764
+.extern MOD06_0224E7C4
+.extern MOD06_0224ED94
+.extern MOD06_0224EDA8
+.extern MOD06_0224F0BC
+.extern MOD06_0224F0D0
+.extern MOD06_0224F12C
+.extern MOD07_02211E60
+.extern MOD08_02211E7C
+.extern MOD08_02211F5C
+.extern MOD08_02211FF0
+.extern MOD08_02212024
+.extern MOD08_02212048
+.extern MOD08_02212384
+.extern MOD08_022123A0
+.extern MOD08_022123B0
+.extern MOD08_022156C0
+.extern MOD08_0221590C
+.extern MOD08_02215918
+.extern MOD08_0221594C
+.extern MOD08_02215988
+.extern MOD08_02215A44
+.extern MOD08_02217E80
+.extern MOD08_02217ECC
+.extern MOD08_02217F08
+.extern MOD08_02228218
+.extern MOD08_02228524
+.extern MOD08_02228570
+.extern MOD08_02228574
+.extern MOD08_022285A4
+.extern MOD08_022285B4
+.extern MOD08_02228618
+.extern MOD08_02228AB8
+.extern MOD08_02228AC0
+.extern MOD08_02229918
+.extern MOD08_022299E8
+.extern MOD08_02229A00
+.extern MOD08_02229A2C
+.extern MOD08_02229A5C
+.extern MOD08_02229A80
+.extern MOD08_02229FE4
+.extern MOD08_02229FF0
+.extern MOD08_0222A008
+.extern MOD08_0222A00C
+.extern MOD08_0222A018
+.extern MOD08_0222A024
+.extern MOD08_0222A02C
+.extern MOD08_0222A0D4
+.extern MOD08_0222A110
+.extern MOD08_0222A14C
+.extern MOD08_0222A170
+.extern MOD08_0222A1DC
+.extern MOD08_0222A204
+.extern MOD08_0222A494
+.extern MOD08_0222A568
+.extern MOD08_0222A6A4
+.extern MOD08_0222A6C8
+.extern MOD09_022186F0
+.extern MOD11_0222D5C0
+.extern MOD11_0222FF68
+.extern MOD11_0222FF74
+.extern MOD11_0222FF78
+.extern MOD11_0222FF84
+.extern MOD11_0222FF88
+.extern MOD11_0222FFC8
+.extern MOD11_02230014
+.extern MOD11_02230078
+.extern MOD11_02230080
+.extern MOD11_022300CC
+.extern MOD11_022300D4
+.extern MOD11_022300DC
+.extern MOD11_022300E8
+.extern MOD11_022300F4
+.extern MOD11_02230100
+.extern MOD11_0223010C
+.extern MOD11_02230118
+.extern MOD11_02230124
+.extern MOD11_02230188
+.extern MOD11_02230214
+.extern MOD11_02230218
+.extern MOD11_0223022C
+.extern MOD11_02230260
+.extern MOD11_02230270
+.extern MOD11_02230290
+.extern MOD11_022302BC
+.extern MOD11_02230370
+.extern MOD11_02230E44
+.extern MOD11_02230E54
+.extern MOD11_02231238
+.extern MOD11_022312D0
+.extern MOD11_02231344
+.extern MOD11_02231350
+.extern MOD11_0223135C
+.extern MOD11_02231368
+.extern MOD11_02231374
+.extern MOD11_02231504
+.extern MOD11_02231534
+.extern MOD11_02231678
+.extern MOD11_02243420
+.extern MOD11_02244248
+.extern MOD11_02245D38
+.extern MOD11_02246274
+.extern MOD11_022465A0
+.extern MOD11_02246870
+.extern MOD11_02246B9C
+.extern MOD11_02246D1C
+.extern MOD11_022473F8
+.extern MOD11_022476C0
+.extern MOD11_022482A4
+.extern MOD11_02249D90
+.extern MOD11_02249E04
+.extern MOD11_02249E58
+.extern MOD11_0224B310
+.extern MOD11_0224C12C
+.extern MOD11_0224C474
+.extern MOD11_0224CA94
+.extern MOD11_02252DB4
+.extern MOD11_022567E0
+.extern MOD11_0225D3EC
+.extern MOD11_0225D45C
+.extern MOD11_0225D484
+.extern MOD11_0225D508
+.extern MOD11_0225D5DC
+.extern MOD11_0225D648
+.extern MOD11_0225D6A4
+.extern MOD11_0225D714
+.extern MOD11_0225D73C
+.extern MOD11_0225D7B8
+.extern MOD11_0225D800
+.extern MOD11_0225D80C
+.extern MOD11_0225D820
+.extern MOD11_0225D824
+.extern MOD12_0222D5C0
+.extern MOD12_0222D89C
+.extern MOD12_0222D9B0
+.extern MOD12_0222EF04
+.extern MOD12_0222F19C
+.extern MOD12_0222F324
+.extern MOD12_0222F990
+.extern MOD12_0222FE4C
+.extern MOD12_02230128
+.extern MOD12_0223023C
+.extern MOD12_02233560
+.extern MOD12_0223D1CC
+.extern MOD12_0223E734
+.extern MOD12_02241210
+.extern MOD12_02241490
+.extern MOD12_022415A8
+.extern MOD13_02213174
+.extern MOD13_02213270
+.extern MOD13_022132CC
+.extern MOD13_02213368
+.extern MOD13_02213944
+.extern MOD13_02213CB0
+.extern MOD13_0221411C
+.extern MOD13_02214D6C
+.extern MOD13_02214F18
+.extern MOD13_02215028
+.extern MOD13_02215360
+.extern MOD13_02215474
+.extern MOD13_02219798
+.extern MOD13_02219C9C
+.extern MOD13_02219D58
+.extern MOD13_0221A794
+.extern MOD13_0221A7EC
+.extern MOD13_0221A8A4
+.extern MOD13_02223494
+.extern MOD15_021D74E0
+.extern MOD15_021D7558
+.extern MOD15_021D7608
+.extern MOD16_021EEF0C
+.extern MOD16_021EEF84
+.extern MOD16_021EEF98
+.extern MOD16_021EFBF4
+.extern MOD16_021EFD8C
+.extern MOD16_021F45A4
+.extern MOD16_021F4698
+.extern MOD16_021F4A30
+.extern MOD17_021D83E4
+.extern MOD17_021D84F0
+.extern MOD17_021D8738
+.extern MOD17_021D8818
+.extern MOD17_021D8998
+.extern MOD17_021D8C9C
+.extern MOD17_021DB7E8
+.extern MOD17_021DB858
+.extern MOD17_021DD4F4
+.extern MOD17_021DD518
+.extern MOD17_021DD540
+.extern MOD17_021DD58C
+.extern MOD17_021DD594
+.extern MOD17_021DD59C
+.extern MOD17_021DD604
+.extern MOD17_021DD620
+.extern MOD17_021DD678
+.extern MOD17_021DD6B8
+.extern MOD17_021DD6CC
+.extern MOD17_021DDB58
+.extern MOD17_021DDC30
+.extern MOD17_021DDCF4
+.extern MOD18_02239F34
+.extern MOD18_0223A058
+.extern MOD18_0223A0EC
+.extern MOD18_0223A120
+.extern MOD18_0223A138
+.extern MOD18_0223A150
+.extern MOD18_0223A154
+.extern MOD18_0223A184
+.extern MOD18_0223C884
+.extern MOD18_0223C910
+.extern MOD18_0223C9B4
+.extern MOD18_0223CACC
+.extern MOD18_0223CB08
+.extern MOD18_0223CE68
+.extern MOD18_0223D638
+.extern MOD18_0223D648
+.extern MOD18_0223D8F4
+.extern MOD18_0223DA98
+.extern MOD18_0223DAC4
+.extern MOD18_0223DAF4
+.extern MOD18_0223DC98
+.extern MOD18_0223DCB4
+.extern MOD18_0223DCD0
+.extern MOD18_0223DD74
+.extern MOD18_0223DD78
+.extern MOD18_0223E060
+.extern MOD18_0223E118
+.extern MOD18_0223E154
+.extern MOD18_0223E1A4
+.extern MOD18_0223E1E0
+.extern MOD18_0223E2AC
+.extern MOD18_0223E2C4
+.extern MOD18_0223E2DC
+.extern MOD18_0223E4A8
+.extern MOD18_0223E4BC
+.extern MOD18_0223E4D4
+.extern MOD18_0223E554
+.extern MOD18_0223E660
+.extern MOD18_0223E6B8
+.extern MOD18_0223E7FC
+.extern MOD18_0223E82C
+.extern MOD18_0223E854
+.extern MOD18_0223E858
+.extern MOD18_0223EB8C
+.extern MOD18_0223ECEC
+.extern MOD18_0223EF7C
+.extern MOD18_0223EF98
+.extern MOD18_0223F0C4
+.extern MOD18_0223F360
+.extern MOD18_0223F404
+.extern MOD18_0223F424
+.extern MOD18_0223F428
+.extern MOD18_0223F4A8
+.extern MOD18_0223F4D4
+.extern MOD18_0223F4D8
+.extern MOD18_0223F4F4
+.extern MOD18_0223F508
+.extern MOD18_0223F5C8
+.extern MOD18_0223F5CC
+.extern MOD18_0223F778
+.extern MOD18_0223F8D8
+.extern MOD18_0223F918
+.extern MOD18_0223FA74
+.extern MOD18_0223FAA8
+.extern MOD18_0223FB08
+.extern MOD18_0223FCE8
+.extern MOD18_02240898
+.extern MOD18_0224089C
+.extern MOD18_022408FC
+.extern MOD18_02240944
+.extern MOD18_022409D0
+.extern MOD18_02240A44
+.extern MOD18_02240B24
+.extern MOD18_02240C74
+.extern MOD18_02240D2C
+.extern MOD18_02240D98
+.extern MOD18_02244824
+.extern MOD18_0224484C
+.extern MOD18_02244D1C
+.extern MOD18_02244D20
+.extern MOD18_02244D3C
+.extern MOD18_02244D40
+.extern MOD18_02244D58
+.extern MOD18_02244D98
+.extern MOD18_02244DA0
+.extern MOD18_022452A4
+.extern MOD18_02245324
+.extern MOD18_02245358
+.extern MOD18_02245438
+.extern MOD18_0224548C
+.extern MOD18_022454B8
+.extern MOD18_022454BC
+.extern MOD18_02245524
+.extern MOD18_0224566C
+.extern MOD18_02245E8C
+.extern MOD18_02245E90
+.extern MOD18_02245F1C
+.extern MOD18_02245F28
+.extern MOD18_02245F4C
+.extern MOD18_02245FE0
+.extern MOD18_02246108
+.extern MOD18_022461A0
+.extern MOD18_022461A4
+.extern MOD18_022461B8
+.extern MOD18_02246250
+.extern MOD18_02246308
+.extern MOD18_02246AF8
+.extern MOD18_02246AFC
+.extern MOD18_02246C94
+.extern MOD18_02246F1C
+.extern MOD18_02247248
+.extern MOD18_02247278
+.extern MOD18_02247294
+.extern MOD18_022472AC
+.extern MOD18_02247414
+.extern MOD18_02247428
+.extern MOD18_02247470
+.extern MOD18_02247614
+.extern MOD18_02247728
+.extern MOD18_02247830
+.extern MOD18_02247970
+.extern MOD18_02247A34
+.extern MOD18_02248DF8
+.extern MOD18_02248E6C
+.extern MOD18_02248E78
+.extern MOD18_02248E84
+.extern MOD18_02248EB4
+.extern MOD18_02248EF0
+.extern MOD18_02248EF4
+.extern MOD18_02248F00
+.extern MOD18_02248F74
+.extern MOD18_02248F78
+.extern MOD18_02248F84
+.extern MOD18_02248FC4
+.extern MOD18_022494C8
+.extern MOD18_0224B128
+.extern MOD18_0224B18C
+.extern MOD18_0224BF18
+.extern MOD18_0224BF34
+.extern MOD18_0224CA2C
+.extern MOD18_0224CA54
+.extern MOD18_0224CAA0
+.extern MOD18_0224CAB4
+.extern MOD18_0224D734
+.extern MOD18_0224D744
+.extern MOD18_0224DCB8
+.extern MOD18_0224DD94
+.extern MOD18_0224DDB8
+.extern MOD19_02252440
+.extern MOD19_022524F4
+.extern MOD19_02252504
+.extern MOD20_02252448
+.extern MOD20_022524BC
+.extern MOD20_022524D0
+.extern MOD20_022524DC
+.extern MOD20_02252534
+.extern MOD20_02252538
+.extern MOD20_02252978
+.extern MOD20_0225298C
+.extern MOD20_022529A0
+.extern MOD20_022529B4
+.extern MOD20_02252B28
+.extern MOD20_02252B48
+.extern MOD20_02252B68
+.extern MOD20_02252BB8
+.extern MOD20_02252C08
+.extern MOD20_02252C14
+.extern MOD20_02252C30
+.extern MOD20_02252C34
+.extern MOD20_02252C38
+.extern MOD20_02252C3C
+.extern MOD20_02252C40
+.extern MOD20_02252D24
+.extern MOD20_02252D34
+.extern MOD20_02252D7C
+.extern MOD20_02252DB4
+.extern MOD20_02252DEC
+.extern MOD20_022536F4
+.extern MOD20_02253794
+.extern MOD20_022537B8
+.extern MOD20_022537E0
+.extern MOD20_02253888
+.extern MOD20_022538A0
+.extern MOD20_022538A4
+.extern MOD20_022538A8
+.extern MOD20_022538AC
+.extern MOD20_022538B0
+.extern MOD20_022538B8
+.extern MOD20_022538BC
+.extern MOD20_0225396C
+.extern MOD20_022539C4
+.extern MOD20_02253A04
+.extern MOD20_02253AA4
+.extern MOD20_02253E74
+.extern MOD20_02253F14
+.extern MOD20_02253F28
+.extern MOD20_02253F44
+.extern MOD20_02253F64
+.extern MOD20_02253F6C
+.extern MOD20_02253F78
+.extern MOD20_02253F80
+.extern MOD20_02253F9C
+.extern MOD20_02253FA4
+.extern MOD20_02253FAC
+.extern MOD20_02253FB4
+.extern MOD20_02253FBC
+.extern MOD20_02254014
+.extern MOD20_02254130
+.extern MOD20_02254198
+.extern MOD20_022542AC
+.extern MOD20_022542C0
+.extern MOD20_02254420
+.extern MOD20_02254460
+.extern MOD20_02254488
+.extern MOD51_02254A68
+.extern MOD51_02254AB8
+.extern MOD53_021D8B64
+.extern MOD53_021D917C
+.extern MOD54_021D844C
+.extern MOD54_021D88E4
+.extern MOD54_021D89CC
+.extern MOD54_021D8C24
+.extern MOD56_02212084
+.extern MOD56_02212164
+.extern MOD56_02212240
+.extern MOD56_0221244C
+.extern MOD59_021D74E0
+.extern MOD59_021D7564
+.extern MOD59_021D76C0
+.extern MOD61_021D74E0
+.extern MOD61_021D7550
+.extern MOD61_021D7568
+.extern MOD62_0222DAEC
+.extern MOD62_0222DD1C
+.extern MOD62_0222DD38
+.extern MOD62_0222E2BC
+.extern MOD62_0222E360
+.extern MOD62_0222E3A0
+.extern MOD62_0222E7E8
+.extern MOD62_0222E874
+.extern MOD62_0222ED34
+.extern MOD62_0222EDBC
+.extern MOD62_0222F7E0
+.extern MOD62_022300E4
+.extern MOD62_02230F3C
+.extern MOD62_02230F70
+.extern MOD62_02230F80
+.extern MOD65_021D74E0
+.extern MOD65_021D7524
+.extern MOD65_021D753C
+.extern MOD65_021D8A08
+.extern MOD65_021D8A40
+.extern MOD65_021D8BBC
+.extern MOD68_021D74E0
+.extern MOD68_021D75D8
+.extern MOD68_021D762C
+.extern MOD69_0222EC60
+.extern MOD71_0222D5C0
+.extern MOD71_0222D9C8
+.extern MOD71_0222E438
+.extern MOD71_0222F440
+.extern MOD71_0222F480
+.extern MOD73_021D74F0
+.extern MOD73_021D758C
+.extern MOD73_021D7640
+.extern MOD73_021D8EA8
+.extern MOD73_021D8EB4
+.extern MOD73_021D8EC0
+.extern MOD73_021D8EFC
+.extern MOD73_021D8F8C
+.extern MOD73_021D8FA8
+.extern MOD73_021D8FC8
+.extern MOD73_021D8FE0
+.extern MOD73_021D9000
+.extern MOD73_021D907C
+.extern MOD73_021D9080
+.extern MOD73_021D9084
+.extern MOD73_021D9088
+.extern MOD73_021D908C
+.extern MOD73_021D9090
+.extern MOD75_021E6BA0
+.extern MOD75_021E6D6C
+.extern MOD75_021E6F00
+.extern MOD79_022122E4
+.extern MOD79_02212308
+.extern MOD79_022123A8
+.extern MOD79_02212474
+.extern MOD79_02212480
+.extern MOD79_02213B08
+.extern MOD79_02213D80
+.extern MOD79_02213DBC
+.extern MOD79_02213E24
+.extern MOD81_02237E40
+.extern MOD81_02238004
+.extern MOD81_02238064
+.extern MTX_Concat33
+.extern MTX_Concat43
+.extern MTX_Concat44
+.extern MTX_Copy43To44_
+.extern MTX_Copy44To43_
+.extern MTX_Identity22_
+.extern MTX_Identity33_
+.extern MTX_Identity43_
+.extern MTX_Identity44_
+.extern MTX_Inverse43
+.extern MTX_MultVec33
+.extern MTX_MultVec43
+.extern MTX_Rot22_
+.extern MTX_RotX33_
+.extern MTX_RotX43_
+.extern MTX_RotX44_
+.extern MTX_RotY33_
+.extern MTX_RotY43_
+.extern MTX_RotY44_
+.extern MTX_RotZ33_
+.extern MTX_RotZ44_
+.extern MTX_Scale43_
+.extern MTX_ScaleApply22
+.extern MTX_ScaleApply33
+.extern MTX_ScaleApply43
+.extern MTX_TransApply44
+.extern NitroMain
+.extern OS_AllocFromArenaHi
+.extern OS_AllocFromArenaLo
+.extern OS_AllocFromHeap
+.extern OS_CancelAlarm
+.extern OS_CreateAlarm
+.extern OS_CreateThread
+.extern OS_DestroyThread
+.extern OS_DisableInterrupts
+.extern OS_DisableInterrupts_IrqAndFiq
+.extern OS_DisableIrqMask
+.extern OS_DisableProtectionUnit
+.extern OS_DisableScheduler
+.extern OS_EnableInterrupts
+.extern OS_EnableIrqMask
+.extern OS_EnableProtectionUnit
+.extern OS_EnableScheduler
+.extern OS_ExitThread
+.extern OS_FreeToHeap
+.extern OS_GetConsoleType
+.extern OS_GetCpsrIrq
+.extern OS_GetDTCMAddress
+.extern OS_GetInitArenaHi
+.extern OS_GetInitArenaLo
+.extern OS_GetIrqFunction
+.extern OS_GetLockID
+.extern OS_GetLowEntropyData
+.extern OS_GetMacAddress
+.extern OS_GetOwnerInfo
+.extern OS_GetOwnerRtcOffset
+.extern OS_GetProcMode
+.extern OS_GetThreadPriority
+.extern OS_GetTick
+.extern OS_GetTickLo
+.extern OS_Halt
+.extern OS_IRQTable
+.extern OS_Init
+.extern OS_InitAlarm
+.extern OS_InitArena
+.extern OS_InitArenaEx
+.extern OS_InitContext
+.extern OS_InitException
+.extern OS_InitIrqTable
+.extern OS_InitLock
+.extern OS_InitMessageQueue
+.extern OS_InitMutex
+.extern OS_InitReset
+.extern OS_InitThread
+.extern OS_InitTick
+.extern OS_InitVAlarm
+.extern OS_IrqDummy
+.extern OS_IrqHandler
+.extern OS_IsAlarmAvailable
+.extern OS_IsRunOnEmulator
+.extern OS_IsThreadAvailable
+.extern OS_IsThreadTerminated
+.extern OS_IsTickAvailable
+.extern OS_JamMessage
+.extern OS_JoinThread
+.extern OS_LoadContext
+.extern OS_LockCartridge
+.extern OS_LockMutex
+.extern OS_ReadMessage
+.extern OS_ReadOwnerOfLockWord
+.extern OS_ReceiveMessage
+.extern OS_ReleaseLockID
+.extern OS_RescheduleThread
+.extern OS_ResetRequestIrqMask
+.extern OS_ResetSystem
+.extern OS_RestoreInterrupts
+.extern OS_RestoreInterrupts_IrqAndFiq
+.extern OS_SNPrintf
+.extern OS_SPrintf
+.extern OS_SaveContext
+.extern OS_SendMessage
+.extern OS_SetAlarm
+.extern OS_SetArenaHi
+.extern OS_SetArenaLo
+.extern OS_SetDPermissionsForProtectionRegion
+.extern OS_SetIrqFunction
+.extern OS_SetIrqMask
+.extern OS_SetIrqStackChecker
+.extern OS_SetProtectionRegion1
+.extern OS_SetProtectionRegion2
+.extern OS_SetThreadPriority
+.extern OS_Sleep
+.extern OS_SleepThread
+.extern OS_SpinWait
+.extern OS_Terminate
+.extern OS_TryLockByWord
+.extern OS_TryLockCard
+.extern OS_TryLockCartridge
+.extern OS_TryLockMutex
+.extern OS_UnLockCartridge
+.extern OS_UnlockByWord
+.extern OS_UnlockCard
+.extern OS_UnlockCartridge
+.extern OS_UnlockMutex
+.extern OS_WaitIrq
+.extern OS_WaitVBlankIntr
+.extern OS_WakeupThread
+.extern OS_WakeupThreadDirect
+.extern OS_YieldThread
+.extern OSi_AlarmQueue
+.extern OSi_CurrentThreadPtr
+.extern OSi_DebuggerHandler
+.extern OSi_DoBoot
+.extern OSi_DoLockByWord
+.extern OSi_DoResetSystem
+.extern OSi_DoTryLockByWord
+.extern OSi_DoUnlockByWord
+.extern OSi_EnterDmaCallback
+.extern OSi_EnterTimerCallback
+.extern OSi_ExContext
+.extern OSi_HeapInfo
+.extern OSi_IdleThread
+.extern OSi_IdleThreadStack
+.extern OSi_InitVramExclusive
+.extern OSi_Initialized
+.extern OSi_IrqCallbackInfo
+.extern OSi_IrqCallbackInfoIndex
+.extern OSi_IrqDma0
+.extern OSi_IrqDma1
+.extern OSi_IrqDma2
+.extern OSi_IrqDma3
+.extern OSi_IrqThreadQueue
+.extern OSi_IrqTimer0
+.extern OSi_IrqTimer1
+.extern OSi_IrqTimer2
+.extern OSi_IrqTimer3
+.extern OSi_IsInitReset
+.extern OSi_IsResetOccurred
+.extern OSi_IsThreadInitialized
+.extern OSi_LauncherThread
+.extern OSi_MainExArenaEnabled
+.extern OSi_NeedResetTimer
+.extern OSi_PreviousVCount
+.extern OSi_ReadCardRom32
+.extern OSi_ReferSymbol
+.extern OSi_ReloadRomData
+.extern OSi_RemoveMutexLinkFromQueue
+.extern OSi_RescheduleCount
+.extern OSi_SetTimerReserved
+.extern OSi_StackForDestructor
+.extern OSi_SystemCallbackInSwitchThread
+.extern OSi_ThreadIdCount
+.extern OSi_ThreadInfo
+.extern OSi_TickCounter
+.extern OSi_TimerReserved
+.extern OSi_TryLockVram
+.extern OSi_UnlockAllMutex
+.extern OSi_UnlockVram
+.extern OSi_UseAlarm
+.extern OSi_UseTick
+.extern OSi_UseVAlarm
+.extern OSi_UserExceptionHandler
+.extern OSi_UserExceptionHandlerArg
+.extern OSi_VAlarmQueue
+.extern OSi_VFrameCount
+.extern OSi_vramExclusive
+.extern OSi_vramLockId
+.extern PM_AppendPostSleepCallback
+.extern PM_DeletePostSleepCallback
+.extern PM_DeletePreSleepCallback
+.extern PM_ForceToPowerOff
+.extern PM_GetBackLight
+.extern PM_GetLCDPower
+.extern PM_GetLEDPattern
+.extern PM_GoSleepMode
+.extern PM_Init
+.extern PM_PrependPreSleepCallback
+.extern PM_SetAmp
+.extern PM_SetAmpGain
+.extern PM_SetBackLight
+.extern PM_SetLCDPower
+.extern PMi_Lock
+.extern PMi_ReadRegister
+.extern PMi_SendLEDPatternCommand
+.extern PMi_SendPxiData
+.extern PMi_SendSleepStart
+.extern PMi_SetLED
+.extern PMi_SetLEDAsync
+.extern PMi_WaitBusy
+.extern PXI_Init
+.extern PXI_InitFifo
+.extern PXI_IsCallbackReady
+.extern PXI_SendWordByFifo
+.extern PXI_SetFifoRecvCallback
+.extern PXIi_HandlerRecvFifoNotEmpty
+.extern ProcessBlock
+.extern RTC_ConvertDateTimeToSecond
+.extern RTC_ConvertDateToDay
+.extern RTC_ConvertDayToDate
+.extern RTC_ConvertSecondToDateTime
+.extern RTC_GetDate
+.extern RTC_GetDateTimeAsync
+.extern RTC_GetDayOfWeek
+.extern RTC_GetTime
+.extern RTC_Init
+.extern RTCi_ReadRawDateAsync
+.extern RTCi_ReadRawDateTimeAsync
+.extern RTCi_ReadRawTimeAsync
+.extern RTCi_WriteRawStatus2Async
+.extern RunScriptCommand
+.extern SDK_AUTOLOAD_DTCM_END
+.extern SDK_AUTOLOAD_DTCM_START
+.extern SDK_AUTOLOAD_ITCM_END
+.extern SDK_AUTOLOAD_ITCM_START
+.extern SDK_AUTOLOAD_LIST
+.extern SDK_AUTOLOAD_LIST_END
+.extern SDK_AUTOLOAD_START
+.extern SDK_IRQ_STACKSIZE
+.extern SDK_MAIN_ARENA_LO
+.extern SDK_OVERLAY_MODULE_00_ID
+.extern SDK_OVERLAY_MODULE_01_ID
+.extern SDK_OVERLAY_MODULE_02_ID
+.extern SDK_OVERLAY_MODULE_03_ID
+.extern SDK_OVERLAY_MODULE_04_ID
+.extern SDK_OVERLAY_MODULE_05_ID
+.extern SDK_OVERLAY_MODULE_06_ID
+.extern SDK_OVERLAY_MODULE_07_ID
+.extern SDK_OVERLAY_MODULE_08_ID
+.extern SDK_OVERLAY_MODULE_09_ID
+.extern SDK_OVERLAY_MODULE_10_ID
+.extern SDK_OVERLAY_MODULE_11_ID
+.extern SDK_OVERLAY_MODULE_12_ID
+.extern SDK_OVERLAY_MODULE_13_ID
+.extern SDK_OVERLAY_MODULE_14_ID
+.extern SDK_OVERLAY_MODULE_15_ID
+.extern SDK_OVERLAY_MODULE_16_ID
+.extern SDK_OVERLAY_MODULE_17_ID
+.extern SDK_OVERLAY_MODULE_18_ID
+.extern SDK_OVERLAY_MODULE_19_ID
+.extern SDK_OVERLAY_MODULE_20_ID
+.extern SDK_OVERLAY_MODULE_21_ID
+.extern SDK_OVERLAY_MODULE_22_ID
+.extern SDK_OVERLAY_MODULE_23_ID
+.extern SDK_OVERLAY_MODULE_24_ID
+.extern SDK_OVERLAY_MODULE_25_ID
+.extern SDK_OVERLAY_MODULE_26_ID
+.extern SDK_OVERLAY_MODULE_27_ID
+.extern SDK_OVERLAY_MODULE_28_ID
+.extern SDK_OVERLAY_MODULE_29_ID
+.extern SDK_OVERLAY_MODULE_30_ID
+.extern SDK_OVERLAY_MODULE_31_ID
+.extern SDK_OVERLAY_MODULE_32_ID
+.extern SDK_OVERLAY_MODULE_33_ID
+.extern SDK_OVERLAY_MODULE_34_ID
+.extern SDK_OVERLAY_MODULE_35_ID
+.extern SDK_OVERLAY_MODULE_36_ID
+.extern SDK_OVERLAY_MODULE_37_ID
+.extern SDK_OVERLAY_MODULE_38_ID
+.extern SDK_OVERLAY_MODULE_39_ID
+.extern SDK_OVERLAY_MODULE_40_ID
+.extern SDK_OVERLAY_MODULE_41_ID
+.extern SDK_OVERLAY_MODULE_42_ID
+.extern SDK_OVERLAY_MODULE_43_ID
+.extern SDK_OVERLAY_MODULE_44_ID
+.extern SDK_OVERLAY_MODULE_45_ID
+.extern SDK_OVERLAY_MODULE_46_ID
+.extern SDK_OVERLAY_MODULE_47_ID
+.extern SDK_OVERLAY_MODULE_48_ID
+.extern SDK_OVERLAY_MODULE_49_ID
+.extern SDK_OVERLAY_MODULE_50_ID
+.extern SDK_OVERLAY_MODULE_51_ID
+.extern SDK_OVERLAY_MODULE_52_ID
+.extern SDK_OVERLAY_MODULE_53_ID
+.extern SDK_OVERLAY_MODULE_54_ID
+.extern SDK_OVERLAY_MODULE_55_ID
+.extern SDK_OVERLAY_MODULE_56_ID
+.extern SDK_OVERLAY_MODULE_57_ID
+.extern SDK_OVERLAY_MODULE_58_ID
+.extern SDK_OVERLAY_MODULE_59_ID
+.extern SDK_OVERLAY_MODULE_60_ID
+.extern SDK_OVERLAY_MODULE_61_ID
+.extern SDK_OVERLAY_MODULE_62_ID
+.extern SDK_OVERLAY_MODULE_63_ID
+.extern SDK_OVERLAY_MODULE_64_ID
+.extern SDK_OVERLAY_MODULE_65_ID
+.extern SDK_OVERLAY_MODULE_66_ID
+.extern SDK_OVERLAY_MODULE_67_ID
+.extern SDK_OVERLAY_MODULE_68_ID
+.extern SDK_OVERLAY_MODULE_69_ID
+.extern SDK_OVERLAY_MODULE_70_ID
+.extern SDK_OVERLAY_MODULE_71_ID
+.extern SDK_OVERLAY_MODULE_72_ID
+.extern SDK_OVERLAY_MODULE_73_ID
+.extern SDK_OVERLAY_MODULE_74_ID
+.extern SDK_OVERLAY_MODULE_75_ID
+.extern SDK_OVERLAY_MODULE_76_ID
+.extern SDK_OVERLAY_MODULE_77_ID
+.extern SDK_OVERLAY_MODULE_78_ID
+.extern SDK_OVERLAY_MODULE_79_ID
+.extern SDK_OVERLAY_MODULE_80_ID
+.extern SDK_OVERLAY_MODULE_81_ID
+.extern SDK_OVERLAY_MODULE_82_ID
+.extern SDK_OVERLAY_MODULE_83_ID
+.extern SDK_OVERLAY_MODULE_84_ID
+.extern SDK_OVERLAY_MODULE_85_ID
+.extern SDK_OVERLAY_MODULE_86_ID
+.extern SDK_SECTION_ARENA_DTCM_START
+.extern SDK_SECTION_ARENA_EX_START
+.extern SDK_SECTION_ARENA_ITCM_START
+.extern SDK_STATIC_BSS_END
+.extern SDK_STATIC_BSS_START
+.extern SDK_SYS_STACKSIZE
+.extern SND_AlarmInit
+.extern SND_AllocCommand
+.extern SND_AssignWaveArc
+.extern SND_CalcChannelVolume
+.extern SND_CommandInit
+.extern SND_DestroyBank
+.extern SND_DestroyWaveArc
+.extern SND_FlushCommand
+.extern SND_GetChannelStatus
+.extern SND_GetCurrentCommandTag
+.extern SND_GetFirstInstDataPos
+.extern SND_GetNextInstData
+.extern SND_GetPlayerStatus
+.extern SND_GetPlayerTickCounter
+.extern SND_GetWaveDataAddress
+.extern SND_GetWaveDataCount
+.extern SND_Init
+.extern SND_InvalidateBankData
+.extern SND_InvalidateSeqData
+.extern SND_InvalidateWaveData
+.extern SND_IsFinishedCommandTag
+.extern SND_LockChannel
+.extern SND_PauseSeq
+.extern SND_PrepareSeq
+.extern SND_PushCommand
+.extern SND_RecvCommandReply
+.extern SND_ResetMasterPan
+.extern SND_SetChannelPan
+.extern SND_SetChannelTimer
+.extern SND_SetChannelVolume
+.extern SND_SetMasterPan
+.extern SND_SetOutputSelector
+.extern SND_SetPlayerChannelPriority
+.extern SND_SetPlayerVolume
+.extern SND_SetTrackAllocatableChannel
+.extern SND_SetTrackPan
+.extern SND_SetTrackPitch
+.extern SND_SetWaveDataAddress
+.extern SND_SetupAlarm
+.extern SND_SetupCapture
+.extern SND_SetupChannelPcm
+.extern SND_StartPreparedSeq
+.extern SND_StartTimer
+.extern SND_StopSeq
+.extern SND_StopTimer
+.extern SND_UnlockChannel
+.extern SND_WaitForCommandProc
+.extern SNDi_CallAlarmHandler
+.extern SNDi_GetFinishedCommandTag
+.extern SNDi_IncAlarmId
+.extern SNDi_InitSharedWork
+.extern SNDi_LockMutex
+.extern SNDi_SetAlarmHandler
+.extern SNDi_UnlockMutex
+.extern SOCLSocketParamTCP
+.extern SOCLSocketParamUDPSend
+.extern SOCL_Accept
+.extern SOCL_Bind
+.extern SOCL_CalmDown
+.extern SOCL_Cleanup
+.extern SOCL_Close
+.extern SOCL_Connect
+.extern SOCL_CreateSocket
+.extern SOCL_EnableSsl
+.extern SOCL_GetHostID
+.extern SOCL_GetStatus
+.extern SOCL_InetAtoH
+.extern SOCL_IsClosed
+.extern SOCL_Listen
+.extern SOCL_Resolve
+.extern SOCL_SetResolver
+.extern SOCL_Shutdown
+.extern SOCL_SocketIsInTrash
+.extern SOCL_SocketIsInvalid
+.extern SOCL_Startup
+.extern SOCL_WriteTo
+.extern SOCLiCPSConfig
+.extern SOCLiConfigPtr
+.extern SOCLiDhcpState
+.extern SOCLiRequestedIP
+.extern SOCLiSocketList
+.extern SOCLiSocketListTrash
+.extern SOCLiUDPSendSocket
+.extern SOCLi_CleanupCommandPacketQueue
+.extern SOCLi_CommandPacketHandler
+.extern SOCLi_CreateCommandPacket
+.extern SOCLi_ExecCommandPacketInCtrlPipe
+.extern SOCLi_ExecCommandPacketInRecvPipe
+.extern SOCLi_ExecCommandPacketInSendPipe
+.extern SOCLi_FreeCommandPacket
+.extern SOCLi_GetWriteBufferFreeSize
+.extern SOCLi_ReadFrom
+.extern SOCLi_RoundUp4
+.extern SOCLi_SendCommandPacket
+.extern SOCLi_SendCommandPacketToCtrlPipe
+.extern SOCLi_SocketRegister
+.extern SOCLi_SocketRegisterTrash
+.extern SOCLi_SocketUnregister
+.extern SOCLi_SocketUnregisterTrash
+.extern SOCLi_StartupCommandPacketQueue
+.extern SOCLi_TrashSocket
+.extern SOCLi_UdpRecvCallback
+.extern SOC_Accept
+.extern SOC_Bind
+.extern SOC_Cleanup
+.extern SOC_Close
+.extern SOC_Connect
+.extern SOC_Fcntl
+.extern SOC_GetHostByAddr
+.extern SOC_GetHostID
+.extern SOC_GetResolver
+.extern SOC_GetSockName
+.extern SOC_InetAtoN
+.extern SOC_InetNtoA
+.extern SOC_Listen
+.extern SOC_Poll
+.extern SOC_Read
+.extern SOC_RecvFrom
+.extern SOC_Send
+.extern SOC_SendTo
+.extern SOC_Shutdown
+.extern SOC_Socket
+.extern SOC_Startup
+.extern SOC_U32to4U8
+.extern STD_CopyLString
+.extern SVC_CpuSet
+.extern SVC_GetCRC16
+.extern SVC_Sqrt
+.extern SVC_WaitByLoop
+.extern ScriptCall
+.extern ScriptJump
+.extern ScriptReadHalfword
+.extern ScriptReadWord
+.extern ScriptReturn
+.extern SetCustomAllocatorAndDestructor
+.extern SetupBytecodeScript
+.extern SetupNativeScript
+.extern StopScript
+.extern StringCopy
+.extern StringCopyN
+.extern StringFillEOS
+.extern StringLength
+.extern StringNotEqual
+.extern StringNotEqualN
+.extern TP_CheckError
+.extern TP_GetCalibratedPoint
+.extern TP_GetLatestIndexInAuto
+.extern TP_GetLatestRawPointInAuto
+.extern TP_GetUserInfo
+.extern TP_Init
+.extern TP_RequestAutoSamplingStartAsync
+.extern TP_RequestAutoSamplingStopAsync
+.extern TP_RequestSamplingAsync
+.extern TP_SetCalibrateParam
+.extern TP_WaitBusy
+.extern TP_WaitRawResult
+.extern UNK05_021F64C8
+.extern UNK05_021F9080
+.extern UNK05_021F9194
+.extern UNK05_021F9494
+.extern UNK63_021DBAB8
+.extern UNK_020FB6F8
+.extern UNK_020FB704
+.extern UNK_020FB710
+.extern UNK_020FB728
+.extern UNK_020FB740
+.extern UNK_020FB764
+.extern UNK_020FD144
+.extern UNK_021C8ECC
+.extern UNK_021C8ED0
+.extern UNK_021C8ED4
+.extern UNK_021C8ED8
+.extern UNK_021C8EDC
+.extern UNK_021C8EE0
+.extern UNK_021C8EE4
+.extern UNK_021C8EE8
+.extern UNK_021C8EEC
+.extern UNK_021C8EF0
+.extern UNK_021C8EF8
+.extern UNK_021C8EFC
+.extern UNK_021C8F00
+.extern UNK_021C8F04
+.extern UNK_021C8F08
+.extern UNK_021C8F0C
+.extern UNK_021C8F10
+.extern UNK_021C8F14
+.extern UNK_021C8F1C
+.extern UNK_021C8F5E
+.extern UNK_021C8F78
+.extern UNK_021C8F82
+.extern UNK_021C8FD8
+.extern UNK_021C903C
+.extern UNK_021C90A0
+.extern UNK_021C9160
+.extern UNK_021C9220
+.extern UNK_021C924A
+.extern UNK_021C93A0
+.extern UNK_021C9520
+.extern UNK_021C9EE0
+.extern Unk_0210683C
+.extern Unk_02106840
+.extern Unk_02106900
+.extern Unk_02106A00
+.extern Unk_02106A04
+.extern UNK_020FFA38
+.extern UNK_02105BB8
+.extern UNK_021064BC
+.extern UNK_021064C4
+.extern gUnknown21C48B8
+.extern UNK_021CED20
+.extern UNK_021CED98
+.extern UNK_021CEDD4
+.extern UNK_021CEF70
+.extern UnloadOverlayByID
+.extern VEC_Add
+.extern VEC_CrossProduct
+.extern VEC_DotProduct
+.extern VEC_Fx16Add
+.extern VEC_Fx16CrossProduct
+.extern VEC_Fx16DotProduct
+.extern VEC_Fx16Normalize
+.extern VEC_Mag
+.extern VEC_MultAdd
+.extern VEC_Normalize
+.extern VEC_Subtract
+.extern WCM_GetApMacAddress
+.extern WCM_SendDCFData
+.extern WCM_SetRecvDCFCallback
+.extern WM_Disable
+.extern WM_Disconnect
+.extern WM_Enable
+.extern WM_End
+.extern WM_EndDCF
+.extern WM_EndDataSharing
+.extern WM_EndKeySharing
+.extern WM_EndMP
+.extern WM_EndParent
+.extern WM_EndScan
+.extern WM_Finish
+.extern WM_GetAID
+.extern WM_GetAllowedChannel
+.extern WM_GetConnectedAIDs
+.extern WM_GetDispersionBeaconPeriod
+.extern WM_GetDispersionScanPeriod
+.extern WM_GetLinkLevel
+.extern WM_GetMPReceiveBufferSize
+.extern WM_GetMPSendBufferSize
+.extern WM_GetNextTgid
+.extern WM_GetOtherElements
+.extern WM_Init
+.extern WM_Initialize
+.extern WM_MeasureChannel
+.extern WM_PowerOff
+.extern WM_PowerOn
+.extern WM_ReadMPData
+.extern WM_ReadStatus
+.extern WM_Reset
+.extern WM_SetBeaconIndication
+.extern WM_SetDCFData
+.extern WM_SetEntry
+.extern WM_SetGameInfo
+.extern WM_SetIndCallback
+.extern WM_SetLifeTime
+.extern WM_SetMPDataToPortEx
+.extern WM_SetParentParameter
+.extern WM_SetPortCallback
+.extern WM_SetWEPKey
+.extern WM_SetWEPKeyEx
+.extern WM_SetWEPKeyEx2
+.extern WM_StartConnectEx
+.extern WM_StartDCF
+.extern WM_StartDataSharing
+.extern WM_StartKeySharing
+.extern WM_StartMP
+.extern WM_StartMPEx
+.extern WM_StartParent
+.extern WM_StartScan
+.extern WM_StartScanEx
+.extern WM_StepDataSharing
+.extern WMi_CheckIdle
+.extern WMi_CheckInitialized
+.extern WMi_CheckStateEx
+.extern WMi_GetMPReadyAIDs
+.extern WMi_GetStatusAddress
+.extern WMi_GetSystemWork
+.extern WMi_SendCommand
+.extern WMi_SendCommandDirect
+.extern WMi_SetCallbackTable
+.extern WMi_StartParentEx
+.extern _ExitProcess
+.extern __FileWrite
+.extern __StringWrite
+.extern __call_static_initializers
+.extern __close_console
+.extern __dec2num
+.extern __destroy_global_chain
+.extern __exit
+.extern __flush_all
+.extern __flush_buffer
+.extern __flush_line_buffered_output_files
+.extern __fread
+.extern __fwrite
+.extern __global_destructor_chain
+.extern __ieee754_pow
+.extern __load_buffer
+.extern __msl_assertion_failed
+.extern __num2dec_internal
+.extern __num2dec_internal2
+.extern __pformatter
+.extern __read_console
+.extern __rounddec
+.extern __sformatter
+.extern __str2dec
+.extern __strtold
+.extern __strtoul
+.extern __strtoull
+.extern __timesdec
+.extern __two_exp
+.extern __ull2dec
+.extern __wStringWrite
+.extern __wpformatter
+.extern __write_console
+.extern _d2f
+.extern _dadd
+.extern _ddiv
+.extern _deq
+.extern _dfix
+.extern _dflt
+.extern _dfltu
+.extern _dgr
+.extern _dleq
+.extern _dls
+.extern _dmul
+.extern _dneq
+.extern _drdiv
+.extern _drsb
+.extern _dsqrt
+.extern _dsub
+.extern _f2d
+.extern _fadd
+.extern _fdiv
+.extern _feq
+.extern _ffix
+.extern _ffixu
+.extern _fflt
+.extern _ffltu
+.extern _fgeq
+.extern _fgr
+.extern _fleq
+.extern _fls
+.extern _fmul
+.extern _fp_init
+.extern _frdiv
+.extern _frsb
+.extern _fseek
+.extern _fsub
+.extern _ll_mod
+.extern _ll_mul
+.extern _ll_sdiv
+.extern _ll_shl
+.extern _ll_udiv
+.extern _ll_ufrom_d
+.extern _s32_div_f
+.extern _u32_div_f
+.extern _u32_div_not_0_f
+.extern _ull_mod
+.extern abort
+.extern abs
+.extern atod
+.extern atol
+.extern cardi_common
+.extern disableBankForX_
+.extern double2hex
+.extern double2hex_wide
+.extern exit
+.extern fclose
+.extern fflush
+.extern float2str
+.extern float2str_wide
+.extern fread
+.extern frexp
+.extern fseek
+.extern ftell
+.extern gScriptCmdTable
+.extern GetLCRNGSeed
+.extern ldexp
+.extern long2str
+.extern long2str_wide
+.extern longlong2str
+.extern longlong2str_wide
+.extern mbstowcs
+.extern mbtowc
+.extern memcmp
+.extern memcpy
+.extern memmove
+.extern memset
+.extern nan
+.extern pool_initialized
+.extern pow
+.extern printf
+.extern qsort
+.extern raise
+.extern rand
+.extern PRandom
+.extern LCRandom
+.extern MTRandom
+.extern rewind
+.extern scalbn
+.extern SetLCRNGSeed
+.extern SetMTRNGSeed
+.extern snprintf
+.extern sprintf
+.extern srand
+.extern sscanf
+.extern strcat
+.extern strchr
+.extern strcmp
+.extern strcpy
+.extern strlen
+.extern strncat
+.extern strncmp
+.extern strncpy
+.extern strnicmp
+.extern strspn
+.extern strstr
+.extern strtold
+.extern strtold2
+.extern strtoul
+.extern swprintf
+.extern sys_exit
+.extern sys_readc
+.extern sys_writec
+.extern tempName_NNS_FndAllocFromExpHeapEx
+.extern tempName_NNS_FndCreateExpHeapEx
+.extern DWC_ClearDirtyFlag
+.extern DWC_CreateUserData
+.extern thunk_FUN_020adc8c
+.extern thunk_FUN_020adc8c_2
+.extern thunk_FUN_020ae84c
+.extern thunk_FUN_020afda0
+.extern thunk_FUN_020afda0_2
+.extern thunk_FUN_020b5040
+.extern vsnprintf
+.extern vsscanf
+.extern vswprintf
+.extern wcslen
+.extern wcstombs
+.extern wctomb
+.extern wmemcpy
+.extern WCMi_GetSystemWork
+.extern WCM_CompareBssID
+.extern WCMi_ResetKeepAliveAlarm
+.extern WCMi_CpsifSendNullPacket
+.extern WCMi_InitCpsif
+.extern WCMi_EntryApList
+.extern WCMi_CpsifRecvCallback
+.extern WCMi_ShelterRssi
+.extern DWC_Auth_GetId
+.extern DWC_BACKUPlCheckSsid
+.extern DWCi_BACKUPlInit
+.extern DWCi_BACKUPlSetWiFi
+.extern DWCi_BACKUPlWriteAll
+.extern DWCi_BM_SetWiFiInfo
+.extern DWC_Auth_CheckWiFiIDNeedCreate
diff --git a/arm9/lib/include/MI_dma.h b/arm9/lib/include/MI_dma.h
index eddcedbb..15dc2c06 100644
--- a/arm9/lib/include/MI_dma.h
+++ b/arm9/lib/include/MI_dma.h
@@ -1,6 +1,8 @@
-#ifndef NITRO_MI_DMA_H_
-#define NITRO_MI_DMA_H_
+#ifndef POKEDIAMOND_ARM9_MI_DMA_H
+#define POKEDIAMOND_ARM9_MI_DMA_H
+
+#include "nitro/MI_dma_shared.h"
typedef void (*MIDmaCallback)(void *);
-#endif //NITRO_MI_DMA_H_
+#endif //POKEDIAMOND_ARM9_MI_DMA_H
diff --git a/arm9/lib/include/MI_memory.h b/arm9/lib/include/MI_memory.h
index bf6c0ca5..e1e5fe11 100644
--- a/arm9/lib/include/MI_memory.h
+++ b/arm9/lib/include/MI_memory.h
@@ -22,4 +22,6 @@ static inline void MI_CpuClear32(void *dest, u32 size)
MI_CpuFill32(dest, 0, size);
}
+void MIi_CpuClearFast(u32 data, void *destp, u32 size);
+
#endif //NITRO_MI_MEMORY_H_
diff --git a/arm9/lib/include/OS_alarm.h b/arm9/lib/include/OS_alarm.h
index a9734d1b..ebdf01ba 100644
--- a/arm9/lib/include/OS_alarm.h
+++ b/arm9/lib/include/OS_alarm.h
@@ -1,28 +1,13 @@
-#ifndef POKEDIAMOND_OS_ALARM_H
-#define POKEDIAMOND_OS_ALARM_H
+#ifndef POKEDIAMOND_ARM9_OS_ALARM_H
+#define POKEDIAMOND_ARM9_OS_ALARM_H
#include "nitro/types.h"
#include "OS_thread.h"
#include "OS_tick.h"
-
-typedef void (*OSAlarmHandler) (void *);
-
-struct OSiAlarm
-{
- OSAlarmHandler handler;
- void *arg;
-
- u32 tag;
- OSTick fire;
- OSAlarm *prev;
- OSAlarm *next;
-
- OSTick period;
- OSTick start;
-};
+#include "nitro/OS_alarm_shared.h"
void OS_CancelAlarm(OSAlarm *alarm);
void OS_CreateAlarm(OSAlarm *alarm);
void OS_SetAlarm(OSAlarm *alarm, OSTick tick, OSAlarmHandler handler, void *arg);
-#endif //POKEDIAMOND_OS_ALARM_H
+#endif //POKEDIAMOND_ARM9_OS_ALARM_H
diff --git a/arm9/lib/include/OS_init.h b/arm9/lib/include/OS_init.h
index 3c8aea24..03ff26d2 100644
--- a/arm9/lib/include/OS_init.h
+++ b/arm9/lib/include/OS_init.h
@@ -23,6 +23,7 @@
#include "OS_interrupt.h"
#include "OS_reset.h"
#include "OS_spinLock.h"
+#include "OS_tick.h"
void OS_Init(void);
diff --git a/arm9/lib/include/OS_interrupt.h b/arm9/lib/include/OS_interrupt.h
index ec58a636..a828c62e 100644
--- a/arm9/lib/include/OS_interrupt.h
+++ b/arm9/lib/include/OS_interrupt.h
@@ -1,17 +1,10 @@
#ifndef POKEDIAMOND_ARM9_OS_INTERRUPT_H
#define POKEDIAMOND_ARM9_OS_INTERRUPT_H
-#include "nitro/types.h"
+#include "consts.h"
#include "nitro/OS_interrupt_shared.h"
-typedef void (*OSIrqFunction) (void);
-
-typedef struct
-{
- void (*func) (void *);
- u32 enable;
- void* arg;
-} OSIrqCallbackInfo;
+#define OS_IE_TIMER0 (1UL << REG_OS_IE_T0_SHIFT)
extern OSIrqFunction OS_IRQTable[];
extern OSIrqCallbackInfo OSi_IrqCallbackInfo[8];
diff --git a/arm9/lib/include/OS_mutex.h b/arm9/lib/include/OS_mutex.h
index 0fc261a4..9da89c69 100644
--- a/arm9/lib/include/OS_mutex.h
+++ b/arm9/lib/include/OS_mutex.h
@@ -1,16 +1,10 @@
-#ifndef POKEDIAMOND_OS_MUTEX_H
-#define POKEDIAMOND_OS_MUTEX_H
+#ifndef POKEDIAMOND_ARM9_OS_MUTEX_H
+#define POKEDIAMOND_ARM9_OS_MUTEX_H
-#include "nitro/types.h"
#include "OS_thread.h"
-
-struct OSMutex {
- OSThreadQueue queue;
- OSThread *thread;
- s32 count;
- OSMutexLink link;
-};
+#include "OS_context.h"
+#include "nitro/OS_mutex_shared.h"
void OSi_UnlockAllMutex(OSThread * thread);
-#endif //POKEDIAMOND_OS_MUTEX_H
+#endif //POKEDIAMOND_ARM9_OS_MUTEX_H
diff --git a/arm9/lib/include/OS_spinLock.h b/arm9/lib/include/OS_spinLock.h
index 5dc47522..a5d27585 100644
--- a/arm9/lib/include/OS_spinLock.h
+++ b/arm9/lib/include/OS_spinLock.h
@@ -1,15 +1,10 @@
-#ifndef POKEDIAMOND_OS_SPINLOCK_H
-#define POKEDIAMOND_OS_SPINLOCK_H
+#ifndef POKEDIAMOND_ARM9_OS_SPINLOCK_H
+#define POKEDIAMOND_ARM9_OS_SPINLOCK_H
#include "nitro/types.h"
+#include "nitro/OS_spinLock_shared.h"
#include "syscall.h"
-typedef volatile struct OSLockWord {
- u32 lockFlag;
- u16 ownerID;
- u16 extension;
-} OSLockWord;
-
static inline void OSi_WaitByLoop(void)
{
SVC_WaitByLoop(0x1000 / 4);
@@ -38,4 +33,4 @@ s32 OS_UnLockCartridge(u16 lockID);
s32 OS_GetLockID(void);
void OS_ReleaseLockID(register u16 lockID);
-#endif //POKEDIAMOND_OS_SPINLOCK_H
+#endif //POKEDIAMOND_ARM9_OS_SPINLOCK_H
diff --git a/arm9/lib/include/OS_terminate_proc.h b/arm9/lib/include/OS_terminate_proc.h
index 1d3ac27e..b4553fb4 100644
--- a/arm9/lib/include/OS_terminate_proc.h
+++ b/arm9/lib/include/OS_terminate_proc.h
@@ -1,13 +1,9 @@
-//
-// Created by red031000 on 2020-05-07.
-//
-
-#ifndef POKEDIAMOND_OS_TERMINATE_PROC_H
-#define POKEDIAMOND_OS_TERMINATE_PROC_H
+#ifndef POKEDIAMOND_ARM9_OS_TERMINATE_PROC_H
+#define POKEDIAMOND_ARM9_OS_TERMINATE_PROC_H
#include "nitro/types.h"
void OS_Terminate(void);
void OS_Halt(void);
-#endif //POKEDIAMOND_OS_TERMINATE_PROC_H
+#endif //POKEDIAMOND_ARM9_OS_TERMINATE_PROC_H
diff --git a/arm9/lib/include/OS_thread.h b/arm9/lib/include/OS_thread.h
index a80a3b96..8afc0b78 100644
--- a/arm9/lib/include/OS_thread.h
+++ b/arm9/lib/include/OS_thread.h
@@ -1,89 +1,9 @@
-#ifndef POKEDIAMOND_OS_THREAD_H
-#define POKEDIAMOND_OS_THREAD_H
+#ifndef POKEDIAMOND_ARM9_OS_THREAD_H
+#define POKEDIAMOND_ARM9_OS_THREAD_H
#include "nitro/types.h"
#include "OS_context.h"
-
-typedef struct OSiAlarm OSAlarm;
-
-typedef struct _OSThread OSThread;
-
-typedef struct _OSThreadQueue OSThreadQueue;
-typedef struct _OSThreadLink OSThreadLink;
-typedef struct _OSMutexQueue OSMutexQueue;
-typedef struct _OSMutexLink OSMutexLink;
-typedef struct OSMutex OSMutex;
-
-struct _OSThreadQueue
-{
- OSThread *head;
- OSThread *tail;
-};
-
-struct _OSThreadLink
-{
- OSThread *prev;
- OSThread *next;
-};
-
-struct _OSMutexQueue
-{
- OSMutex *head;
- OSMutex *tail;
-};
-
-struct _OSMutexLink
-{
- OSMutex *next;
- OSMutex *prev;
-};
-
-typedef struct OSThreadInfo {
- u16 isNeedRescheduling;
- u16 irqDepth;
- OSThread* current;
- OSThread* list;
- void* switchCallback; // type: OSSwitchThreadCallback
-} OSThreadInfo;
-
-typedef enum {
- OS_THREAD_STATE_WAITING = 0,
- OS_THREAD_STATE_READY = 1,
- OS_THREAD_STATE_TERMINATED = 2
-} OSThreadState;
-
-typedef void (*OSSwitchThreadCallback) (OSThread *from, OSThread *to);
-
-typedef void (*OSThreadDestructor) (void *);
-
-struct _OSThread
-{
- OSContext context;
- OSThreadState state;
- OSThread *next;
- u32 id;
- u32 priority;
- void *profiler;
-
- OSThreadQueue *queue;
- OSThreadLink link;
-
- OSMutex *mutex;
- OSMutexQueue mutexQueue;
-
- u32 stackTop;
- u32 stackBottom;
- u32 stackWarningOffset;
-
- OSThreadQueue joinQueue;
-
- void *specific[3];
- OSAlarm *alarmForSleep;
- OSThreadDestructor destructor;
- void *userParameter;
-
- u32 systemErrno;
-};
+#include "nitro/OS_thread_shared.h"
static s32 OSi_GetUnusedThreadId(void);
static void OSi_InsertLinkToQueue(OSThreadQueue *queue, OSThread *thread);
@@ -119,33 +39,4 @@ u32 OS_DisableScheduler(void);
u32 OS_EnableScheduler(void);
void OS_SetThreadDestructor(OSThread *thread, OSThreadDestructor dtor);
-extern OSThreadInfo OSi_ThreadInfo;
-
-static inline OSThreadInfo *OS_GetThreadInfo(void)
-{
- return &OSi_ThreadInfo;
-}
-
-static inline BOOL OS_IsThreadRunnable(const OSThread *thread)
-{
- return thread->state == OS_THREAD_STATE_READY;
-}
-
-static inline void OS_InitThreadQueue(OSThreadQueue * queue)
-{
- queue->head = queue->tail = NULL;
-}
-
-static inline OSThread *OS_GetCurrentThread(void)
-{
- return OS_GetThreadInfo()->current;
-}
-
-static inline void OS_SetCurrentThread(OSThread *thread)
-{
- OS_GetThreadInfo()->current = thread;
-}
-
-#define OSi_GetCurrentThread() (*OSi_CurrentThreadPtr)
-
-#endif //POKEDIAMOND_OS_THREAD_H
+#endif //POKEDIAMOND_ARM9_OS_THREAD_H
diff --git a/arm9/lib/include/OS_tick.h b/arm9/lib/include/OS_tick.h
index f1c7145d..59c43b10 100644
--- a/arm9/lib/include/OS_tick.h
+++ b/arm9/lib/include/OS_tick.h
@@ -1,12 +1,16 @@
-#ifndef POKEDIAMOND_OS_TICK_H
-#define POKEDIAMOND_OS_TICK_H
+#ifndef POKEDIAMOND_ARM9_OS_TICK_H
+#define POKEDIAMOND_ARM9_OS_TICK_H
#include "consts.h"
+#include "OS_timer.h"
+#include "nitro/OS_tick_shared.h"
-typedef u64 OSTick;
+#define OSi_TICK_TIMERCONTROL (REG_OS_TM0CNT_H_E_MASK | REG_OS_TM0CNT_H_I_MASK | OS_TIMER_PRESCALER_64)
-#define OS_SYSTEM_CLOCK HW_SYSTEM_CLOCK
+void OS_InitTick(void);
+BOOL OS_IsTickAvailable(void);
+static void OSi_CountUpTick(void);
+OSTick OS_GetTick(void);
+u16 OS_GetTickLo(void);
-#define OS_MilliSecondsToTicks(msec) ((OSTick)(((OS_SYSTEM_CLOCK/1000) * (u64)(msec)) / 64))
-
-#endif //POKEDIAMOND_OS_TICK_H
+#endif //POKEDIAMOND_ARM9_OS_TICK_H
diff --git a/arm9/lib/include/OS_timer.h b/arm9/lib/include/OS_timer.h
new file mode 100644
index 00000000..8b2a97a9
--- /dev/null
+++ b/arm9/lib/include/OS_timer.h
@@ -0,0 +1,32 @@
+#ifndef POKEDIAMOND_OS_TIMER_H
+#define POKEDIAMOND_OS_TIMER_H
+
+#include "consts.h"
+
+typedef enum
+{
+ OS_TIMER_PRESCALER_1 = (0UL << REG_OS_TM0CNT_H_PS_SHIFT),
+ OS_TIMER_PRESCALER_64 = (1UL << REG_OS_TM0CNT_H_PS_SHIFT),
+ OS_TIMER_PRESCALER_256 = (2UL << REG_OS_TM0CNT_H_PS_SHIFT),
+ OS_TIMER_PRESCALER_1024 = (3UL << REG_OS_TM0CNT_H_PS_SHIFT)
+} OSTimerPrescaler;
+
+typedef enum
+{
+ OS_TIMER_0 = 0,
+ OS_TIMER_1 = 1,
+ OS_TIMER_2 = 2,
+ OS_TIMER_3 = 3
+} OSTimer;
+
+static inline void OS_SetTimerCount(OSTimer id, u16 count)
+{
+ *((REGType16 *)((u32)&reg_OS_TM0CNT_L + id * 4)) = count;
+}
+
+static inline void OS_SetTimerControl(OSTimer id, u16 control)
+{
+ *((REGType16 *)((u32)&reg_OS_TM0CNT_H + id * 4)) = control;
+}
+
+#endif //POKEDIAMOND_OS_TIMER_H
diff --git a/arm9/lib/include/consts.h b/arm9/lib/include/consts.h
index a24e9d89..5dd0b150 100644
--- a/arm9/lib/include/consts.h
+++ b/arm9/lib/include/consts.h
@@ -4,6 +4,7 @@
#include "nitro/consts_shared.h"
#include "mmap.h"
#include "registers.h"
+#include "systemWork.h"
#define HW_C6_PR_4KB 0x16
#define HW_C6_PR_8KB 0x18
@@ -27,8 +28,6 @@
#define HW_C6_PR_2GB 0x3c
#define HW_C6_PR_4GB 0x3e
-#define HW_SYSTEM_CLOCK 33514000
-
#define PXI_PROC_ARM7 0x01
#define OSi_CONSOLE_NOT_DETECT 0xffffffff
@@ -38,12 +37,6 @@
#define OS_CONSOLE_SIZE_MASK 0x00000003
#define OS_CONSOLE_SIZE_4MB 0x00000001
-#define OS_THREAD_LAUNCHER_PRIORITY 0x10
-#define OS_THREAD_PRIORITY_MIN 0x00
-#define OS_THREAD_PRIORITY_MAX 0x1F
-
-#define OS_THREAD_SPECIFIC_MAX 0x03
-
#define OSi_TCM_REGION_BASE_MASK 0xfffff000
#define OS_IE_V_BLANK (1UL << 0)
diff --git a/arm9/lib/include/fx.h b/arm9/lib/include/fx.h
index c09b24ae..4a844872 100644
--- a/arm9/lib/include/fx.h
+++ b/arm9/lib/include/fx.h
@@ -59,8 +59,11 @@ typedef s64 fx64c;
#define FX_F32_TO_FX16(x) ((fx16)(((x) > 0) ? \
(fx16)((x) * (1 << FX16_INT_SHIFT) + 0.5f ) : \
(fx16)((x) * (1 << FX16_INT_SHIFT) - 0.5f )))
-
+#define FX_F32_TO_FX32(x) ((fx32)(((x) > 0) ? \
+ (fx32)((x) * (1 << FX32_INT_SHIFT) + 0.5f ) : \
+ (fx32)((x) * (1 << FX32_INT_SHIFT) - 0.5f )))
#define FX16_CONST(x) FX_F32_TO_FX16(x)
+#define FX32_CONST(x) FX_F32_TO_FX32(x)
struct Vecx32
{
diff --git a/arm9/lib/include/mmap.h b/arm9/lib/include/mmap.h
index 6a5f23c5..12823fa0 100644
--- a/arm9/lib/include/mmap.h
+++ b/arm9/lib/include/mmap.h
@@ -14,8 +14,6 @@ extern u32 SDK_AUTOLOAD_DTCM_START[];
#define HW_ITCM_SIZE 0x00008000
#define HW_ITCM_END (HW_ITCM + HW_ITCM_SIZE)
-#define HW_WRAM 0x037F8000
-
#define HW_DTCM ((u32)SDK_AUTOLOAD_DTCM_START)
#define HW_DTCM_SIZE 0x00004000
@@ -29,7 +27,6 @@ extern u32 SDK_AUTOLOAD_DTCM_START[];
#define HW_ROM_BASE_OFFSET_BUF (HW_MAIN_MEM + 0x007ffc2c)
#define HW_ROM_HEADER_BUF (HW_MAIN_MEM + 0x007ffe00) // ROM registration area data buffer
#define HW_RED_RESERVED (HW_MAIN_MEM + 0x007ff800) // Some kind of reserved data for shared memory
-#define HW_MAIN_MEM_SYSTEM (HW_MAIN_MEM + 0x007ffc00)
#define HW_MAIN_MEM_EX_END (HW_MAIN_MEM + HW_MAIN_MEM_EX_SIZE)
#define HW_MAIN_MEM_SHARED (HW_MAIN_MEM_EX_END - HW_MAIN_MEM_SHARED_SIZE)
#define HW_DTCM_SVC_STACK_END (HW_DTCM + 0x00003fc0)
@@ -49,7 +46,6 @@ extern u32 SDK_AUTOLOAD_DTCM_START[];
#define HW_LOCK_ID_FLAG_MAIN (HW_MAIN_MEM + 0x007fffb0)
#define HW_SHARED_LOCK_BUF (HW_MAIN_MEM + 0x007fffc0)
#define HW_CARD_LOCK_BUF (HW_MAIN_MEM + 0x007fffe0)
-#define HW_CTRDG_LOCK_BUF (HW_MAIN_MEM + 0x007fffe8)
#define HW_BUTTON_XY_BUF (HW_MAIN_MEM + 0x007fffa8)
@@ -61,52 +57,4 @@ extern u32 SDK_AUTOLOAD_DTCM_START[];
#define OSi_WRAM_MAIN_ARENA_HI_DEFAULT (HW_WRAM)
#define OSi_WRAM_MAIN_ARENA_LO_DEFAULT (HW_WRAM)
-#include "OS_thread.h" //not ideal but it's necessary
-#include "OS_spinLock.h"
-
-typedef struct {
- u8 bootCheckInfo[0x20]; // 000-01f: 32byte boot check info
- u32 resetParameter; // 020-023: 4byte reset parameter
- u8 padding5[0x8]; // 024-02c: (8byte)
- u32 romBaseOffset; // 02c-02f: 4byte ROM offset of own program
- u8 cartridgeModuleInfo[12]; // 030-03b: 12byte cartridge module info
- u32 vblankCount; // 03c-03f: 4byte V-Blank Count
- u8 wmBootBuf[0x40]; // 040-07f: 64byte WM multiboot buffer
- u8 nvramUserInfo[0x100]; // 080-17f: 256bytes NVRAM user info
- u8 isd_reserved1[0x20]; // 180-19f: 32bytes ISDebugger reserved
- u8 arenaInfo[0x48]; // 1a0-1e7: 72byte Arena information
- u8 real_time_clock[8]; // 1e8-1ef: 8bytes RTC
- u32 dmaClearBuf[4]; // 1f0-1ff: 16bytes DMA clear information buffer (for ARM9-TEG)
- u8 rom_header[0x160]; // 200-35f: 352bytes ROM registration area info storage buffer
- u8 isd_reserved2[32]; // 360-37f: 32bytes ISDebugger reserved
- u32 pxiSignalParam[2]; // 380-387: 8bytes Param for PXI Signal
- u32 pxiHandleChecker[2]; // 388-38f: 8bytes Flag for PXI Command Handler Installed
- u32 mic_last_address; // 390-393: 4bytes MIC latest sampling result storage address
- u16 mic_sampling_data; // 394-395: 2bytes MIC sampling result
- u16 wm_callback_control; // 396-397: 2bytes Parameter for WM callback synchronization
- u16 wm_rssi_pool; // 398-399: 2bytes Random number source depends on WM received signal intensity
- u8 padding3[2]; // 39a-39b: (2bytes)
- u32 component_param; // 39c-39f: 4bytes Parameter for Component synchronization
- OSThreadInfo *threadinfo_mainp; // 3a0-3a3: 4bytes Verify that the pointer to ARM9 thread information is initial value 0
- OSThreadInfo *threadinfo_subp; // 3a4-3a7: 4bytes Verify that the pointer to ARM7 thread information is initial value 0
- u16 button_XY; // 3a8-3a9: 2bytes XY button information storage location
- u8 touch_panel[4]; // 3aa-3ad: 4bytes Touch Screen information storage location
- u16 autoloadSync; // 3ae-3af: 2bytes autoload sync between processors
- u32 lockIDFlag_mainp[2]; // 3b0-3b7: 8bytes lockID management flag (ARM9)
- u32 lockIDFlag_subp[2]; // 3b8-3bf: 8bytes lockID management flag (ARM7)
- struct OSLockWord lock_VRAM_C; // 3c0-3c7: 8bytes C - lock buffer
- struct OSLockWord lock_VRAM_D; // 3c8-3cf: 8bytes VRAM-D - lock buffer
- struct OSLockWord lock_WRAM_BLOCK0; // 3d0-3d7: 8bytes Block0 - lock buffer
- struct OSLockWord lock_WRAM_BLOCK1; // 3d8-3df: 8bytes CPU internal work RAM - Block1 - lock buffer
- struct OSLockWord lock_CARD; // 3e0-3e7: 8bytes Game Card - lock buffer
- struct OSLockWord lock_CARTRIDGE; // 3e8-3ef: 8bytes DS Pak - lock buffer
- struct OSLockWord lock_INIT; // 3f0-3f7: 8bytes Initialization lock buffer
- u16 mmem_checker_mainp; // 3f8-3f9: 2bytes MainMomory Size Checker for Main processor
- u16 mmem_checker_subp; // 3fa-3fb: 2bytes MainMomory Size Checker for Sub processor
- u8 padding4[2]; // 3fc-3fd: (2bytes)
- u16 command_area; // 3fe-3ff: 2bytes Command Area
-} OSSystemWork; //0x027FFC00
-
-#define OS_GetSystemWork() ((OSSystemWork *)HW_MAIN_MEM_SYSTEM)
-
#endif //POKEDIAMOND_ARM9_MMAP_H \ No newline at end of file
diff --git a/arm9/lib/include/registers.h b/arm9/lib/include/registers.h
index 4781ba1b..a5355322 100644
--- a/arm9/lib/include/registers.h
+++ b/arm9/lib/include/registers.h
@@ -1,7 +1,8 @@
-#ifndef POKEDIAMOND_REGISTERS_H
-#define POKEDIAMOND_REGISTERS_H
+#ifndef POKEDIAMOND_ARM9_REGISTERS_H
+#define POKEDIAMOND_ARM9_REGISTERS_H
#include "nitro/types.h"
+#include "nitro/registers_shared.h"
#define reg_GX_DISPCNT (*(REGType32v *)0x4000000)
#define reg_GX_DISPSTAT (*(REGType16v *)0x4000004)
@@ -103,9 +104,6 @@
#define reg_MI_MCCMD1 (*(REGType32v *)0x40001ac)
#define reg_MI_EXMEMCNT (*(REGType16v *)0x4000204)
-#define reg_OS_IME (*(REGType16v *)0x4000208)
-#define reg_OS_IE (*(REGType32v *)0x4000210)
-#define reg_OS_IF (*(REGType32v *)0x4000214)
#define reg_OS_PAUSE (*(REGType16v *)0x4000300)
#define reg_GX_VRAMCNT (*(REGType32v *)0x4000240)
@@ -356,6 +354,12 @@
#define reg_MI_MCD1 (*(REGType32v *)0x4100010)
#define reg_CARD_DATA (*(REGType32v *)0x4100010) //?
+#define REG_OS_TM0CNT_H_PS_SHIFT 0
+#define REG_OS_IE_T0_SHIFT 3
+
+#define REG_OS_TM0CNT_H_I_MASK 0x0040
+#define REG_OS_TM0CNT_H_E_MASK 0x0080
+
#define REG_PAD_KEYINPUT_L_SHIFT 9
#define REG_PAD_KEYINPUT_L_SIZE 1
#define REG_PAD_KEYINPUT_L_MASK 0x0200
@@ -476,4 +480,4 @@
((u32)(a) << REG_PAD_KEYCNT_A_SHIFT))
#endif
-#endif //POKEDIAMOND_REGISTERS_H
+#endif //POKEDIAMOND_ARM9_REGISTERS_H
diff --git a/arm9/lib/include/syscall.h b/arm9/lib/include/syscall.h
index 8561cabe..427134a7 100644
--- a/arm9/lib/include/syscall.h
+++ b/arm9/lib/include/syscall.h
@@ -1,6 +1,6 @@
-#ifndef NITRO_SYSCALL_H_
-#define NITRO_SYSCALL_H_
+#ifndef POKEDIAMOND_ARM9_SYSCALL_H
+#define POKEDIAMOND_ARM9_SYSCALL_H
void SVC_WaitByLoop(u32 ct);
-#endif //NITRO_SYSCALL_H_
+#endif //POKEDIAMOND_ARM9_SYSCALL_H
diff --git a/arm9/lib/include/systemWork.h b/arm9/lib/include/systemWork.h
new file mode 100644
index 00000000..b7660985
--- /dev/null
+++ b/arm9/lib/include/systemWork.h
@@ -0,0 +1,7 @@
+#ifndef POKEDIAMOND_ARM9_SYSTEMWORK_H
+#define POKEDIAMOND_ARM9_SYSTEMWORK_H
+
+#include "OS_context.h"
+#include "nitro/OS_systemWork_shared.h"
+
+#endif //POKEDIAMOND_ARM9_SYSTEMWORK_H
diff --git a/arm9/lib/src/OS_printf.c b/arm9/lib/src/OS_printf.c
index 026bc2d7..414f0db9 100644
--- a/arm9/lib/src/OS_printf.c
+++ b/arm9/lib/src/OS_printf.c
@@ -12,649 +12,6 @@ void string_put_char(struct printfStr *dest, s8 value);
void string_fill_char(struct printfStr *dest, s8 value, s32 count);
void string_put_string(struct printfStr *dest, const s8 *src, s32 count);
-
-#ifndef NONMATCHING
-// c definition is at the bottom of the file
-u64 _ll_udiv(u64 a, u64 b);
-
-ARM_FUNC asm s32 OS_VSNPrintf(s8 *buffer, s32 bufsz, const s8 *format, void *args)
-{
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0x64
- mov r9, r2
- str r1, [sp, #0x54]
- str r0, [sp, #0x5c]
- str r0, [sp, #0x58]
- ldrsb r0, [r9, #0x0]
- str r1, [sp, #0x0]
- mov r11, r3
- cmp r0, #0x0
- beq _020CAD18
- mov r0, #0xa
- str r0, [sp, #0xc]
- mov r0, #0x0
- str r0, [sp, #0x4]
- mov r0, #0x20
- str r0, [sp, #0x1c]
- mov r0, #0x30
- str r0, [sp, #0x20]
- mvn r0, #0x0
- str r0, [sp, #0x8]
- mov r0, #0x57
- str r0, [sp, #0x10]
- mov r0, #0x8
- str r0, [sp, #0x14]
- mov r0, #0x37
- str r0, [sp, #0x18]
- mov r0, #0x10
- str r0, [sp, #0x24]
- mov r0, #0x1
- str r0, [sp, #0x28]
- mov r0, #0x2b
- str r0, [sp, #0x34]
- mov r0, #0x2d
- str r0, [sp, #0x30]
- mov r0, #0x2
- str r0, [sp, #0x2c]
-_020CA530:
- ldrsb r1, [r9, #0x0]
- and r0, r1, #0xff
- eor r0, r0, #0x20
- sub r0, r0, #0xa1
- cmp r0, #0x3c
- bhs _020CA56C
- add r0, sp, #0x54
- bl string_put_char
- ldrsb r1, [r9, #0x1]!
- cmp r1, #0x0
- beq _020CAD0C
- add r0, sp, #0x54
- add r9, r9, #0x1
- bl string_put_char
- b _020CAD0C
-_020CA56C:
- cmp r1, #0x25
- beq _020CA584
- add r0, sp, #0x54
- add r9, r9, #0x1
- bl string_put_char
- b _020CAD0C
-_020CA584:
- ldr r6, [sp, #0x4]
- ldr r5, [sp, #0x8]
- ldr r2, [sp, #0xc]
- ldr r0, [sp, #0x10]
- mov r10, r6
- mov r3, r9
-_020CA59C:
- ldrsb r4, [r9, #0x1]!
- cmp r4, #0x20
- bgt _020CA5B4
- cmp r4, #0x20
- beq _020CA5F4
- b _020CA60C
-_020CA5B4:
- cmp r4, #0x30
- bgt _020CA60C
- cmp r4, #0x2b
- blt _020CA60C
- cmp r4, #0x2b
- beq _020CA5E0
- cmp r4, #0x2d
- beq _020CA5FC
- cmp r4, #0x30
- beq _020CA604
- b _020CA60C
-_020CA5E0:
- ldrsb r1, [r9, #-0x1]
- cmp r1, #0x20
- bne _020CA60C
- orr r6, r6, #0x2
- b _020CA59C
-_020CA5F4:
- orr r6, r6, #0x1
- b _020CA59C
-_020CA5FC:
- orr r6, r6, #0x8
- b _020CA59C
-_020CA604:
- orr r6, r6, #0x10
- b _020CA59C
-_020CA60C:
- cmp r4, #0x2a
- bne _020CA640
- add r11, r11, #0x4
- ldr r10, [r11, #-0x4]
- add r9, r9, #0x1
- cmp r10, #0x0
- rsblt r10, r10, #0x0
- orrlt r6, r6, #0x8
- b _020CA654
-_020CA630:
- ldrsb r4, [r9], #0x1
- mov r1, #0xa
- mla r1, r10, r1, r4
- sub r10, r1, #0x30
-_020CA640:
- ldrsb r1, [r9, #0x0]
- cmp r1, #0x30
- blt _020CA654
- cmp r1, #0x39
- ble _020CA630
-_020CA654:
- ldrsb r1, [r9, #0x0]
- cmp r1, #0x2e
- bne _020CA6AC
- ldrsb r1, [r9, #0x1]!
- ldr r5, [sp, #0x4]
- cmp r1, #0x2a
- bne _020CA698
- add r11, r11, #0x4
- ldr r5, [r11, #-0x4]
- add r9, r9, #0x1
- cmp r5, #0x0
- ldrlt r5, [sp, #0x8]
- b _020CA6AC
-_020CA688:
- ldrsb r4, [r9], #0x1
- mov r1, #0xa
- mla r1, r5, r1, r4
- sub r5, r1, #0x30
-_020CA698:
- ldrsb r1, [r9, #0x0]
- cmp r1, #0x30
- blt _020CA6AC
- cmp r1, #0x39
- ble _020CA688
-_020CA6AC:
- ldrsb r1, [r9, #0x0]
- cmp r1, #0x68
- beq _020CA6C4
- cmp r1, #0x6c
- beq _020CA6DC
- b _020CA6F0
-_020CA6C4: // h
- ldrsb r1, [r9, #0x1]!
- cmp r1, #0x68
- orrne r6, r6, #0x40
- addeq r9, r9, #0x1
- orreq r6, r6, #0x100
- b _020CA6F0
-_020CA6DC: // l
- ldrsb r1, [r9, #0x1]!
- cmp r1, #0x6c
- orrne r6, r6, #0x20
- addeq r9, r9, #0x1
- orreq r6, r6, #0x80
-_020CA6F0:
- ldrsb r1, [r9, #0x0]
- cmp r1, #0x69
- bgt _020CA740
- cmp r1, #0x63
- blt _020CA720
- cmp r1, #0x63
- beq _020CA7B4
- cmp r1, #0x64
- beq _020CA96C
- cmp r1, #0x69
- beq _020CA96C
- b _020CA950
-_020CA720:
- cmp r1, #0x25
- bgt _020CA734
- cmp r1, #0x25
- beq _020CA934
- b _020CA950
-_020CA734:
- cmp r1, #0x58
- beq _020CA7A0
- b _020CA950
-_020CA740:
- cmp r1, #0x6e
- bgt _020CA754
- cmp r1, #0x6e
- beq _020CA8DC
- b _020CA950
-_020CA754:
- sub r1, r1, #0x6f
- cmp r1, #0x9
- addls pc, pc, r1, lsl #0x2
- b _020CA950
-_020CA764:
- b _020CA78C
- b _020CA7A8
- b _020CA950
- b _020CA950
- b _020CA828
- b _020CA950
- b _020CA798
- b _020CA950
- b _020CA950
- b _020CA964
-_020CA78C:
- ldr r2, [sp, #0x14]
- orr r6, r6, #0x1000
- b _020CA96C
-_020CA798:
- orr r6, r6, #0x1000
- b _020CA96C
-_020CA7A0:
- ldr r0, [sp, #0x18]
- b _020CA964
-_020CA7A8:
- orr r6, r6, #0x4
- ldr r5, [sp, #0x14]
- b _020CA964
-_020CA7B4:
- cmp r5, #0x0
- bge _020CA950
- ands r0, r6, #0x8
- add r11, r11, #0x4
- ldr r4, [r11, #-0x4]
- beq _020CA7F0
- mov r0, r4, lsl #0x18
- mov r1, r0, asr #0x18
- add r0, sp, #0x54
- bl string_put_char
- ldr r1, [sp, #0x1c]
- sub r2, r10, #0x1
- add r0, sp, #0x54
- bl string_fill_char
- b _020CA820
-_020CA7F0:
- ands r0, r6, #0x10
- ldrne r0, [sp, #0x20]
- sub r2, r10, #0x1
- ldreq r0, [sp, #0x1c]
- mov r0, r0, lsl #0x18
- mov r1, r0, asr #0x18
- add r0, sp, #0x54
- bl string_fill_char
- mov r0, r4, lsl #0x18
- mov r1, r0, asr #0x18
- add r0, sp, #0x54
- bl string_put_char
-_020CA820:
- add r9, r9, #0x1
- b _020CAD0C
-_020CA828:
- add r11, r11, #0x4
- cmp r5, #0x0
- ldr r7, [sp, #0x4]
- ldr r4, [r11, #-0x4]
- bge _020CA860
- ldrsb r0, [r4]
- cmp r0, #0x0
- beq _020CA874
-_020CA848:
- add r7, r7, #0x1
- ldrsb r0, [r4, r7]
- cmp r0, #0x0
- bne _020CA848
- b _020CA874
-_020CA85C:
- add r7, r7, #0x1
-_020CA860:
- cmp r7, r5
- bge _020CA874
- ldrsb r0, [r4, r7]
- cmp r0, #0x0
- bne _020CA85C
-_020CA874:
- ands r0, r6, #0x8
- sub r10, r10, r7
- beq _020CA8A4
- mov r1, r4
- mov r2, r7
- add r0, sp, #0x54
- bl string_put_string
- ldr r1, [sp, #0x1C]
- mov r2, r10
- add r0, sp, #0x54
- bl string_fill_char
- b _020CA8D4
-_020CA8A4:
- ands r0, r6, #0x10
- ldrne r0, [sp, #0x20]
- mov r2, r10
- ldreq r0, [sp, #0x1C]
- mov r0, r0, lsl #0x18
- mov r1, r0, asr #0x18
- add r0, sp, #0x54
- bl string_fill_char
- mov r1, r4
- mov r2, r7
- add r0, sp, #0x54
- bl string_put_string
-_020CA8D4:
- add r9, r9, #0x1
- b _020CAD0C
-_020CA8DC:
- ands r0, r6, #0x100
- ldr r1, [sp, #0x58]
- ldr r0, [sp, #0x5c]
- sub r2, r1, r0
- bne _020CA92C
- ands r0, r6, #0x40
- addne r11, r11, #0x4
- ldrne r0, [r11, #-0x4]
- strneh r2, [r0, #0x0]
- bne _020CA92C
- ands r0, r6, #0x80
- addeq r11, r11, #0x4
- ldreq r0, [r11, #-0x4]
- streq r2, [r0, #0x0]
- beq _020CA92C
- add r11, r11, #0x4
- ldr r0, [r11, #-0x4]
- mov r1, r2, asr #0x1f
- str r2, [r0, #0x0]
- str r1, [r0, #0x4]
-_020CA92C:
- add r9, r9, #0x1
- b _020CAD0C
-_020CA934:
- add r0, r3, #0x1
- cmp r0, r9
- bne _020CA950
- add r0, sp, #0x54
- add r9, r9, #0x1
- bl string_put_char
- b _020CAD0C
-_020CA950:
- add r0, sp, #0x54
- mov r1, r3
- sub r2, r9, r3
- bl string_put_string
- b _020CAD0C
-_020CA964:
- ldr r2, [sp, #0x24]
- orr r6, r6, #0x1000
-_020CA96C:
- ands r1, r6, #0x8
- bicne r6, r6, #0x10
- cmp r5, #0x0
- bicge r6, r6, #0x10
- ldrlt r5, [sp, #0x28]
- ldr r7, [sp, #0x4]
- ands r1, r6, #0x1000
- beq _020CAA20
- ands r1, r6, #0x100
- addne r11, r11, #0x4
- ldrneb r4, [r11, #-0x4]
- movne r1, #0x0
- bne _020CA9D0
- ands r1, r6, #0x40
- addne r11, r11, #0x4
- ldrneh r4, [r11, #-0x4]
- movne r1, #0x0
- bne _020CA9D0
- ands r1, r6, #0x80
- addne r11, r11, #0x8
- ldrne r1, [r11, #-0x4]
- ldrne r4, [r11, #-0x8]
- addeq r11, r11, #0x4
- ldreq r4, [r11, #-0x4]
- moveq r1, #0x0
-_020CA9D0:
- bic r6, r6, #0x3
- ands r3, r6, #0x4
- beq _020CAAD8
- cmp r2, #0x10
- bne _020CAA0C
- mov r3, #0x0
- cmp r1, r3
- cmpeq r4, r3
- beq _020CAAD8
- ldr r3, [sp, #0x20]
- ldr r7, [sp, #0x2c]
- strb r3, [sp, #0x39]
- add r3, r0, #0x21
- strb r3, [sp, #0x38]
- b _020CAAD8
-_020CAA0C:
- cmp r2, #0x8
- ldreq r3, [sp, #0x20]
- ldreq r7, [sp, #0x28]
- streqb r3, [sp, #0x38]
- b _020CAAD8
-_020CAA20:
- ands r1, r6, #0x100
- addne r11, r11, #0x4
- ldrnesb r4, [r11, #-0x4]
- movne r1, r4, asr #0x1f
- bne _020CAA64
- ands r1, r6, #0x40
- addne r11, r11, #0x4
- ldrnesh r4, [r11, #-0x4]
- movne r1, r4, asr #0x1f
- bne _020CAA64
- ands r1, r6, #0x80
- addne r11, r11, #0x8
- ldrne r4, [r11, #-0x8]
- ldrne r1, [r11, #-0x4]
- addeq r11, r11, #0x4
- ldreq r4, [r11, #-0x4]
- moveq r1, r4, asr #0x1f
-_020CAA64:
- mov r3, #0x0
- and r8, r3, #0x0
- cmp r8, r3
- and r8, r1, #0x80000000
- cmpeq r8, r3
- beq _020CAAA0
- ldr r7, [sp, #0x30]
- mvn r4, r4
- strb r7, [sp, #0x38]
- mvn r7, r1
- mov r1, #0x1
- adds r4, r4, r1
- adc r1, r7, r3
- ldr r7, [sp, #0x28]
- b _020CAAD8
-_020CAAA0:
- cmp r1, r3
- cmpeq r4, r3
- bne _020CAAB4
- cmp r5, #0x0
- beq _020CAAD8
-_020CAAB4:
- ands r3, r6, #0x2
- ldrne r3, [sp, #0x34]
- ldrne r7, [sp, #0x28]
- strneb r3, [sp, #0x38]
- bne _020CAAD8
- ands r3, r6, #0x1
- ldrne r3, [sp, #0x1c]
- ldrne r7, [sp, #0x28]
- strneb r3, [sp, #0x38]
-_020CAAD8:
- cmp r2, #0x8
- ldr r8, [sp, #0x4]
- beq _020CAAF8
- cmp r2, #0xa
- beq _020CAB40
- cmp r2, #0x10
- beq _020CABDC
- b _020CAC28
-_020CAAF8:
- mov r0, #0x0
- cmp r1, r0
- cmpeq r4, r0
- beq _020CAC28
-_020CAB08:
- and r0, r4, #0x7
- add r3, r0, #0x30
- add r0, sp, #0x3a
- strb r3, [r0, r8]
- mov r4, r4, lsr #0x3
- mov r2, #0x0
- mov r0, r1, lsr #0x3
- orr r4, r4, r1, lsl #0x1d
- cmp r0, r2
- cmpeq r4, r2
- mov r1, r0
- add r8, r8, #0x1
- bne _020CAB08
- b _020CAC28
-_020CAB40:
- mov r0, #0x0
- cmp r0, r0
- cmpeq r1, r0
- bne _020CAB8C
- cmp r4, #0x0
- beq _020CAC28
-_020CAB58:
- ldr r0, =0xCCCCCCCD
- umull r1, r0, r4, r0
- movs r0, r0, lsr #0x3
- mov r1, #0xa
- mul r1, r0, r1
- sub r1, r4, r1
- mov r4, r0
- add r1, r1, #0x30
- add r0, sp, #0x3a
- strb r1, [r0, r8]
- add r8, r8, #0x1
- bne _020CAB58
- b _020CAC28
-_020CAB8C:
- cmp r1, r0
- cmpeq r4, r0
- beq _020CAC28
-_020CAB98:
- ldr r2, [sp, #0xc]
- ldr r3, [sp, #0x4]
- mov r0, r4
- bl _ll_udiv
- mov r3, #0xa
- umull r3, r12, r0, r3
- subs r3, r4, r3
- mov r2, #0x0
- add r4, r3, #0x30
- add r3, sp, #0x3a
- strb r4, [r3, r8]
- cmp r1, r2
- cmpeq r0, r2
- mov r4, r0
- add r8, r8, #0x1
- bne _020CAB98
- b _020CAC28
-_020CABDC:
- mov r2, #0x0
- cmp r1, r2
- cmpeq r4, r2
- beq _020CAC28
-_020CABEC:
- and r3, r4, #0xf
- cmp r3, #0xa
- mov r4, r4, lsr #0x4
- addlt r3, r3, #0x30
- mov r2, r1, lsr #0x4
- orr r4, r4, r1, lsl #0x1c
- mov r1, r2
- addge r3, r3, r0
- add r2, sp, #0x3a
- strb r3, [r2, r8]
- mov r2, #0x0
- cmp r1, r2
- add r8, r8, #0x1
- cmpeq r4, r2
- bne _020CABEC
-_020CAC28:
- cmp r7, #0x0
- ble _020CAC4C
- ldrsb r0, [sp, #0x38]
- cmp r0, #0x30
- ldreq r1, [sp, #0x20]
- addeq r0, sp, #0x3a
- streqb r1, [r0, r8]
- ldreq r7, [sp, #0x4]
- addeq r8, r8, #0x1
-_020CAC4C:
- sub r5, r5, r8
- ands r0, r6, #0x10
- beq _020CAC68
- sub r0, r10, r8
- sub r0, r0, r7
- cmp r5, r0
- movlt r5, r0
-_020CAC68:
- cmp r5, #0x0
- subgt r10, r10, r5
- add r0, r7, r8
- ands r6, r6, #0x8
- sub r10, r10, r0
- bne _020CAC90
- ldr r1, [sp, #0x1c]
- add r0, sp, #0x54
- mov r2, r10
- bl string_fill_char
-_020CAC90:
- cmp r7, #0x0
- ble _020CACB8
- add r0, sp, #0x38
- add r4, r0, r7
-_020CACA0:
- ldrsb r1, [r4, #-0x1]!
- sub r7, r7, #0x1
- add r0, sp, #0x54
- bl string_put_char
-_020CACB0:
- cmp r7, #0x0
- bgt _020CACA0
-_020CACB8:
- ldr r1, [sp, #0x20]
- mov r2, r5
- add r0, sp, #0x54
- bl string_fill_char
- cmp r8, #0x0
- ble _020CACF0
- add r0, sp, #0x3A
- add r4, r0, r8
-_020CACD8:
- ldrsb r1, [r4, #-0x1]!
- sub r8, r8, #0x1
- add r0, sp, #0x54
- bl string_put_char
- cmp r8, #0x0
- bgt _020CACD8
-_020CACF0:
- cmp r6, #0x0
- beq _020CAD08
- ldr r1, [sp, #0x1C]
- mov r2, r10
- add r0, sp, #0x54
- bl string_fill_char
-_020CAD08:
- add r9, r9, #0x1
-_020CAD0C:
- ldrsb r0, [r9, #0x0]
- cmp r0, #0x0
- bne _020CA530
-_020CAD18:
- ldr r0, [sp, #0x54]
- cmp r0, #0x0
- ldrne r0, [sp, #0x58]
- movne r1, #0x0
- strneb r1, [r0, #0x0]
- bne _020CAD48
- ldr r0, [sp, #0x0]
- cmp r0, #0x0
- ldrne r1, [sp, #0x5c]
- movne r2, #0x0
- addne r0, r1, r0
- strneb r2, [r0, #-0x1]
-_020CAD48:
- ldr r1, [sp, #0x58]
- ldr r0, [sp, #0x5c]
- sub r0, r1, r0
- add sp, sp, #0x64
- ldmia sp!, {r4-r11,lr}
- bx lr
-}
-#endif
-
ARM_FUNC void string_put_char(struct printfStr *dest, s8 value)
{
if (dest->spaceLeft != 0)
@@ -720,8 +77,6 @@ ARM_FUNC s32 OS_SNPrintf(s8 *buffer, s32 bufsz, const s8 *format, ...)
return OS_VSNPrintf(buffer, bufsz, format, args);
}
-#ifdef NONMATCHING
-
#define va_arg(list, ty) *(ty *)((u32 *)(list = (void *)((u32 *)(list) + 1)) - 1)
#define va_arg_64(list, sgn) *((sgn##64 *)(list = (void *)((sgn##64 *)(list) + 1)) - 1)
@@ -944,8 +299,9 @@ ARM_FUNC s32 OS_VSNPrintf(s8 *buffer, s32 bufsz, const s8 *format, void *args)
*va_arg(args, s32 *) = count;
}
}
- ++format;
}
+ ++s;
+ break;
case '%':
if (p_start + 1 != s)
goto put_invalid;
@@ -970,13 +326,13 @@ ARM_FUNC s32 OS_VSNPrintf(s8 *buffer, s32 bufsz, const s8 *format, void *args)
{
flag &= ~zero;
}
- if (precision >= 0)
+ if (precision < 0)
{
- flag &= ~zero;
+ precision = 1;
}
else
{
- precision = 1;
+ flag &= ~zero;
}
if (flag & usigned)
{
@@ -1003,18 +359,15 @@ ARM_FUNC s32 OS_VSNPrintf(s8 *buffer, s32 bufsz, const s8 *format, void *args)
{
if (value != 0)
{
- prefix[0] = (s8)(hex + (10 - 'x' - 'a'));
+ prefix[0] = (s8)(hex + (10 + 'x' - 'a'));
prefix[1] = '0';
n_prefix = 2;
}
}
- else
+ else if (radix == 8)
{
- if (radix == 8)
- {
- prefix[0] = '0';
- n_prefix = 1;
- }
+ prefix[0] = '0';
+ n_prefix = 1;
}
}
}
@@ -1044,100 +397,96 @@ ARM_FUNC s32 OS_VSNPrintf(s8 *buffer, s32 bufsz, const s8 *format, void *args)
}
}
}
- n_buf = 0;
- switch (radix) {
- case 8:
- while (value != 0) {
- s32 octDig = (s32) (value & 0x7);
- value >>= 3;
- buf[n_buf++] = (s8) (octDig + '0');
- }
- break;
- case 10:
- if (value >> 32 == 0) {
- u32 v = (u32) value;
- while (v) {
- u32 div10 = v / 10;
- s32 dig = (s32) (v - (div10 * 10));
- v = div10;
- buf[n_buf++] = (s8) (dig + '0');
- }
- } else {
- while (value) {
- u64 div10 = value / 10;
- s32 dig = (s32) (value - (div10 * 10));
- value = div10;
- buf[n_buf++] = (s8) (dig + '0');
- }
+ }
+ n_buf = 0;
+ switch (radix) {
+ case 8:
+ while (value != 0) {
+ s32 octDig = (s32) (value & 0x7);
+ value >>= 3;
+ buf[n_buf++] = (s8) (octDig + '0');
+ }
+ break;
+ case 10:
+ if ((value >> 32) == 0) {
+ u32 v = (u32) value;
+ while (v) {
+ u32 div10 = v / 10;
+ s32 dig = (s32) (v - (div10 * 10));
+ v = div10;
+ buf[n_buf++] = (s8) (dig + '0');
}
- break;
- case 16:
- while (value != 0) {
- s32 hexDig = (s32) (value & 0xf);
- value >>= 4;
- buf[n_buf++] = (s8) ((hexDig < 10) ? (hexDig + '0') : (hexDig + hex));
+ } else {
+ while (value) {
+ u64 div10 = value / 10;
+ s32 dig = (s32) (value - (div10 * 10));
+ value = div10;
+ buf[n_buf++] = (s8) (dig + '0');
}
- break;
- }
- if (n_prefix > 0) {
- if (prefix[0] == '0') {
- n_prefix = 0;
- buf[n_buf++] = '0';
}
- }
+ break;
+ case 16:
+ while (value != 0) {
+ s32 hexDig = (s32) (value & 0xf);
+ value >>= 4;
+ buf[n_buf++] = (s8) ((hexDig < 10) ? (hexDig + '0') : (hexDig + hex));
+ }
+ break;
+ }
+ if (n_prefix > 0 && prefix[0] == '0') {
+ n_prefix = 0;
+ buf[n_buf++] = '0';
}
- goto put_to_stream;
+ }
+ goto put_to_stream;
- put_to_stream:
+ put_to_stream:
+ {
+ s32 n_pad = (s32)(precision - n_buf);
+ if (flag & zero)
+ {
+ if (n_pad < width - n_buf - n_prefix)
{
- s32 n_pad = (s32)(precision - n_buf);
- if (flag & zero)
- {
- if (n_pad < width - n_buf - n_prefix)
- {
- n_pad = (s32)(width - n_buf - n_prefix);
- }
- }
- if (n_pad > 0)
- {
- width -= n_pad;
- }
-
- width -= n_prefix + n_buf;
- if (!(flag & minus))
- {
- string_fill_char(&str, ' ', width);
- }
- while (n_prefix > 0)
- {
- string_put_char(&str, prefix[--n_prefix]);
- }
- string_fill_char(&str, '0', n_pad);
- while (n_buf > 0)
- {
- string_put_char(&str, buf[--n_buf]);
- }
- if (flag & minus)
- {
- string_fill_char(&str, ' ', width);
- }
- ++s;
+ n_pad = (s32)(width - n_buf - n_prefix);
}
}
- break;
+ if (n_pad > 0)
+ {
+ width -= n_pad;
+ }
+
+ width -= n_prefix + n_buf;
+ if (!(flag & minus))
+ {
+ string_fill_char(&str, ' ', width);
+ }
+ while (n_prefix > 0)
+ {
+ string_put_char(&str, prefix[--n_prefix]);
+ }
+ string_fill_char(&str, '0', n_pad);
+ while (n_buf > 0)
+ {
+ string_put_char(&str, buf[--n_buf]);
+ }
+ if (flag & minus)
+ {
+ string_fill_char(&str, ' ', width);
+ }
+ ++s;
+ }
+ break;
}
}
}
- if (str.spaceLeft > 0)
+ if (str.spaceLeft != 0)
{
*str.stringEnd = '\0';
}
- else if (bufsz > 0)
+ else if (bufsz != 0)
{
str.stringStart[bufsz - 1] = '\0';
}
return str.stringEnd - str.stringStart;
}
-
-#endif
diff --git a/arm9/lib/src/OS_reset.c b/arm9/lib/src/OS_reset.c
index f22b0e3c..95238f46 100644
--- a/arm9/lib/src/OS_reset.c
+++ b/arm9/lib/src/OS_reset.c
@@ -4,6 +4,7 @@
#include "OS_terminate_proc.h"
#include "OS_interrupt.h"
#include "OS_system.h"
+#include "OS_spinLock.h"
#include "sections.h"
static u16 OSi_IsInitReset = 0;
diff --git a/arm9/lib/src/OS_spinLock.c b/arm9/lib/src/OS_spinLock.c
index 5050a7bd..c0398be9 100644
--- a/arm9/lib/src/OS_spinLock.c
+++ b/arm9/lib/src/OS_spinLock.c
@@ -21,7 +21,7 @@ ARM_FUNC void OS_InitLock(void)
}
isInitialized = TRUE;
- OSLockWord* lockp = (OSLockWord *)0x027FFFF0;
+ OSLockWord* lockp = (OSLockWord *)HW_INIT_LOCK_BUF;
lockp->lockFlag = 0;
@@ -45,7 +45,7 @@ ARM_FUNC void OS_InitLock(void)
(void)OS_TryLockByWord(0x7f, lockp, NULL);
}
-ARM_FUNC s32 OSi_DoLockByWord(u16 lockId, OSLockWord *lockp, void (*ctrlFuncp) (void), //should be static
+ARM_FUNC s32 OSi_DoLockByWord(u16 lockId, OSLockWord *lockp, void (*ctrlFuncp) (void),
BOOL disableFiq)
{
s32 lastLockFlag;
diff --git a/arm9/lib/src/OS_tick.c b/arm9/lib/src/OS_tick.c
new file mode 100644
index 00000000..f5f2df30
--- /dev/null
+++ b/arm9/lib/src/OS_tick.c
@@ -0,0 +1,70 @@
+#include "function_target.h"
+#include "OS_tick.h"
+#include "OS_interrupt.h"
+#include "OS_timer.h"
+#include "OS_system.h"
+
+static u16 OSi_UseTick = FALSE;
+vu64 OSi_TickCounter;
+BOOL OSi_NeedResetTimer = FALSE;
+
+extern void OSi_SetTimerReserved(u32 param1);
+
+ARM_FUNC void OS_InitTick(void)
+{
+ if (OSi_UseTick)
+ {
+ return;
+ }
+ OSi_UseTick = 1;
+ OSi_SetTimerReserved(0);
+ OSi_TickCounter = 0;
+ reg_OS_TM0CNT_H = 0;
+ reg_OS_TM0CNT_L = 0;
+ reg_OS_TM0CNT_H = 0xc1;
+ OS_SetIrqFunction(8, OSi_CountUpTick);
+ (void)OS_EnableIrqMask(8);
+ OSi_NeedResetTimer = FALSE;
+}
+
+ARM_FUNC BOOL OS_IsTickAvailable(void)
+{
+ return OSi_UseTick;
+}
+
+ARM_FUNC static void OSi_CountUpTick(void)
+{
+ OSi_TickCounter++;
+
+ if (OSi_NeedResetTimer)
+ {
+ OS_SetTimerControl(OS_TIMER_0, 0);
+ OS_SetTimerCount(OS_TIMER_0, 0);
+ OS_SetTimerControl(OS_TIMER_0, OSi_TICK_TIMERCONTROL);
+
+ OSi_NeedResetTimer = FALSE;
+ }
+
+ OSi_EnterTimerCallback(OS_TIMER_0, (void (*)(void *))OSi_CountUpTick, 0);
+}
+
+ARM_FUNC OSTick OS_GetTick(void)
+{
+ OSIntrMode prev = OS_DisableInterrupts();
+ vu16 countL = *(REGType16 *)((u32)&reg_OS_TM0CNT_L + OS_TIMER_0 * 4);
+ vu64 countH = OSi_TickCounter & 0xffffffffffffULL;
+
+ if (reg_OS_IF & OS_IE_TIMER0 && !(countL & 0x8000))
+ {
+ countH++;
+ }
+
+ (void)OS_RestoreInterrupts(prev);
+
+ return (countH << 16) | countL;
+}
+
+ARM_FUNC u16 OS_GetTickLo(void)
+{
+ return reg_OS_TM0CNT_L;
+}
diff --git a/arm9/lib/syscall/_svc_mw.s b/arm9/lib/syscall/_svc_mw.s
index c1e36b4b..d449ee58 100644
--- a/arm9/lib/syscall/_svc_mw.s
+++ b/arm9/lib/syscall/_svc_mw.s
@@ -7,115 +7,115 @@
; Secure area
.space 0x800
- non_word_aligned_thumb_func_start SVC_SoftReset
+ .global SVC_SoftReset
+ .thumb
SVC_SoftReset:
swi 0
bx lr
- thumb_func_end SVC_SoftReset
- non_word_aligned_thumb_func_start SVC_WaitByLoop
+ .global SVC_WaitByLoop
+ .thumb
SVC_WaitByLoop:
swi 3
bx lr
- thumb_func_end SVC_WaitByLoop
- non_word_aligned_thumb_func_start SVC_WaitIntr
+ .global SVC_WaitIntr
+ .thumb
SVC_WaitIntr:
mov r2, #0
swi 4
bx lr
- thumb_func_end SVC_WaitIntr
- non_word_aligned_thumb_func_start SVC_WaitVBlankIntr
+ .global SVC_WaitVBlankIntr
+ .thumb
SVC_WaitVBlankIntr:
mov r2, #0
swi 5
bx lr
- thumb_func_end SVC_WaitVBlankIntr
- non_word_aligned_thumb_func_start SVC_Halt
+ .global SVC_Halt
+ .thumb
SVC_Halt:
swi 6
bx lr
- thumb_func_end SVC_Halt
- non_word_aligned_thumb_func_start SVC_Div
+ .global SVC_Div
+ .thumb
SVC_Div:
swi 9
bx lr
- thumb_func_end SVC_Div
- non_word_aligned_thumb_func_start SVC_DimRem
+ .global SVC_DivRem
+ .thumb
SVC_DivRem:
swi 9
add r0, r1, #0
bx lr
- thumb_func_end SVC_DivRem
- non_word_aligned_thumb_func_start SVC_CpuSet
+ .global SVC_CpuSet
+ .thumb
SVC_CpuSet:
swi 11
bx lr
- thumb_func_end SVC_CpuSet
- non_word_aligned_thumb_func_start SVC_CpuFastSet
-SVC_CpuFastSet:
+ .global SVC_CpuSetFast
+ .thumb
+SVC_CpuSetFast:
swi 12
bx lr
- thumb_func_end SVC_CpuFastSet
- non_word_aligned_thumb_func_start SVC_Sqrt
+ .global SVC_Sqrt
+ .thumb
SVC_Sqrt:
swi 13
bx lr
- thumb_func_end SVC_Sqrt
- non_word_aligned_thumb_func_start SVC_GetCRC16
+ .global SVC_GetCRC16
+ .thumb
SVC_GetCRC16:
swi 14
bx lr
- thumb_func_end SVC_GetCRC16
- non_word_aligned_thumb_func_start IsMemExpanded
-IsMemExpanded:
+ .global IsMmemExpanded
+ .thumb
+IsMmemExpanded:
swi 15
bx lr
- thumb_func_end IsMemExpanded
- non_word_aligned_thumb_func_start SVC_UnpackBits
+ .global SVC_UnpackBits
+ .thumb
SVC_UnpackBits:
swi 16
bx lr
- thumb_func_end SVC_UnpackBits
- non_word_aligned_thumb_func_start SVC_UncompressLZ8
+ .global SVC_UncompressLZ8
+ .thumb
SVC_UncompressLZ8:
swi 17
bx lr
- thumb_func_end SVC_UncompressLZ8
- non_word_aligned_thumb_func_start SVC_UncompressLZ16FromDevice
+ .global SVC_UncompressLZ16FromDevice
+ .thumb
SVC_UncompressLZ16FromDevice:
swi 18
bx lr
- thumb_func_end SVC_UncompressLZ16FromDevice
- non_word_aligned_thumb_func_start SVC_UncompressHuffmanFromDevice
+ .global SVC_UncompressHuffmanFromDevice
+ .thumb
SVC_UncompressHuffmanFromDevice:
swi 19
bx lr
- thumb_func_end SVC_UncompressHuffmanFromDevice
- non_word_aligned_thumb_func_start SVC_UncompressRL8
+ .global SVC_UncompressRL8
+ .thumb
SVC_UncompressRL8:
swi 20
bx lr
- thumb_func_end SVC_UncompressRL8
- non_word_aligned_thumb_func_start SVC_UncompressRL16FromDevice
+ .global SVC_UncompressRL16FromDevice
+ .thumb
SVC_UncompressRL16FromDevice:
swi 21
bx lr
- thumb_func_end SVC_UncompressRL16FromDevice
.balign 4, 0 ; Don't pad with nop
diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s
index 72d4bbbd..c9e94636 100644
--- a/arm9/modules/05/asm/module_05.s
+++ b/arm9/modules/05/asm/module_05.s
@@ -3279,7 +3279,7 @@ MOD05_021D8FD0: ; 0x021D8FD0
lsl r0, r0, #0x10
lsr r5, r0, #0x10
add r0, r6, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
add r7, r0, #0
mov r4, #0
cmp r7, #0
@@ -3287,10 +3287,10 @@ MOD05_021D8FD0: ; 0x021D8FD0
_021D8FF6:
add r0, r6, #0
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #5
add r2, r5, #0
- bl MonApplyFriendshipModEncrypted
+ bl MonApplyFriendshipMod
add r4, r4, #1
cmp r4, r7
blt _021D8FF6
@@ -13157,7 +13157,7 @@ _021DD9CC:
ldr r4, [r6, #8]
mov r0, #0
str r0, [r4]
- bl rand_MT
+ bl MTRandom
mov r1, #3
bl _u32_div_f
add r5, r1, #0
@@ -13165,7 +13165,7 @@ _021DD9CC:
ldr r0, [r6, #4]
lsr r1, r1, #0x10
bl FUN_02020208
- bl rand_MT
+ bl MTRandom
mov r1, #0x14
bl _u32_div_f
add r2, r5, #1
@@ -13197,12 +13197,12 @@ _021DDA12:
_021DDA32:
mov r0, #0
str r0, [r4, #0xc]
- bl rand_MT
+ bl MTRandom
mov r1, #3
bl _u32_div_f
add r0, r1, #1
str r0, [r4, #4]
- bl rand_MT
+ bl MTRandom
ldr r1, _021DDA74 ; =0x0000010E
bl _u32_div_f
mov r0, #0xf
@@ -13266,7 +13266,7 @@ _021DDAA2:
ldr r0, [r5, #4]
cmp r1, r0
ble _021DDAE4
- bl rand_MT
+ bl MTRandom
mov r1, #0xa
bl _u32_div_f
cmp r1, #7
@@ -13637,7 +13637,7 @@ _021DDD9A:
add r4, r0, #0
beq _021DDE6A
ldr r5, [r4, #8]
- bl rand_MT
+ bl MTRandom
mov r1, #3
and r1, r0
lsl r1, r1, #0x10
@@ -13650,7 +13650,7 @@ _021DDD9A:
str r0, [r5, #0x14]
str r0, [r5, #0x18]
str r0, [r5, #0x20]
- bl rand_MT
+ bl MTRandom
mov r1, #0x3c
str r0, [sp, #0x14]
bl _s32_div_f
@@ -13672,12 +13672,12 @@ _021DDDEC:
sub r0, #0x20
_021DDDF0:
str r0, [r5, #4]
- bl rand_MT
+ bl MTRandom
mov r1, #1
and r0, r1
add r0, r0, #4
str r0, [r5, #8]
- bl rand_MT
+ bl MTRandom
mov r1, #1
and r0, r1
add r0, r0, #1
@@ -13686,7 +13686,7 @@ _021DDDF0:
str r0, [r5]
ldr r0, [sp, #8]
str r0, [r5, #0x1c]
- bl rand_MT
+ bl MTRandom
ldr r1, _021DDE74 ; =0x0000019E
bl _u32_div_f
sub r1, #0x20
@@ -13700,7 +13700,7 @@ _021DDDF0:
ldr r0, [sp, #4]
cmp r6, r0
blt _021DDE48
- bl rand_MT
+ bl MTRandom
mov r1, #0x14
bl _u32_div_f
mov r0, #0x27
@@ -13710,7 +13710,7 @@ _021DDDF0:
str r0, [sp, #0x1c]
b _021DDE5C
_021DDE48:
- bl rand_MT
+ bl MTRandom
mov r1, #0x14
bl _u32_div_f
mov r0, #7
@@ -14228,7 +14228,7 @@ _021DE22E:
str r0, [r5, #0x14]
mov r0, #0
str r0, [r5]
- bl rand_MT
+ bl MTRandom
mov r1, #0x2a
bl _u32_div_f
add r0, r1, #4
@@ -14260,7 +14260,7 @@ _021DE22E:
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
- bl rand_MT
+ bl MTRandom
mov r1, #0x69
lsl r1, r1, #2
bl _u32_div_f
@@ -15589,7 +15589,7 @@ _021DECE4:
ldr r5, [r4, #8]
mov r0, #0
str r0, [r5]
- bl rand_MT
+ bl MTRandom
mov r1, #0x14
bl _u32_div_f
add r1, #0xf
@@ -15614,7 +15614,7 @@ _021DECE4:
ldr r0, _021DEDA8 ; =0x021F683C
ldr r0, [r0, r6]
str r0, [r5, #0x14]
- bl rand_MT
+ bl MTRandom
mov r1, #0xfa
lsl r1, r1, #2
bl _u32_div_f
@@ -15636,7 +15636,7 @@ _021DED4E:
add r0, sp, #0xc
add r1, r4, #0
bl MOD05_021DD168
- bl rand_MT
+ bl MTRandom
mov r1, #0x18
bl _u32_div_f
ldr r0, _021DEDB0 ; =0x00000106
@@ -15644,7 +15644,7 @@ _021DED4E:
str r0, [sp, #0xc]
lsl r0, r0, #0xc
str r0, [sp, #0xc]
- bl rand_MT
+ bl MTRandom
mov r1, #0xc0
bl _u32_div_f
sub r1, #0x40
@@ -16498,12 +16498,12 @@ _021DF430:
ldr r5, [r6, #8]
mov r0, #0
str r0, [r5]
- bl rand_MT
+ bl MTRandom
mov r1, #6
bl _u32_div_f
add r1, #0x12
str r1, [r5, #4]
- bl rand_MT
+ bl MTRandom
add r7, r0, #0
mov r1, #3
and r7, r1
@@ -16547,14 +16547,14 @@ _021DF492:
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
- bl rand_MT
+ bl MTRandom
mov r1, #0x18
bl _u32_div_f
mov r0, #1
lsl r0, r0, #8
add r0, r1, r0
str r0, [sp, #0x18]
- bl rand_MT
+ bl MTRandom
mov r1, #0xa8
bl _u32_div_f
ldr r0, [sp, #0x18]
@@ -16951,12 +16951,12 @@ _021DF7D6:
ldr r5, [r4, #8]
mov r0, #0
str r0, [r5]
- bl rand_MT
+ bl MTRandom
mov r1, #5
bl _u32_div_f
add r0, r1, #7
str r0, [r5, #4]
- bl rand_MT
+ bl MTRandom
mov r1, #0xfa
lsl r1, r1, #2
bl _u32_div_f
@@ -16976,30 +16976,30 @@ _021DF80C:
str r0, [r5, #8]
mov r0, #1
str r0, [r5, #0xc]
- bl rand_MT
+ bl MTRandom
mov r1, #6
bl _u32_div_f
add r0, r1, #3
str r0, [r5, #0x10]
- bl rand_MT
+ bl MTRandom
mov r1, #5
bl _u32_div_f
add r0, r1, #4
str r0, [r5, #0x14]
- bl rand_MT
+ bl MTRandom
mov r1, #0x14
bl _u32_div_f
str r1, [sp, #8]
add r0, sp, #0x10
add r1, r4, #0
bl MOD05_021DD168
- bl rand_MT
+ bl MTRandom
mov r1, #6
lsl r1, r1, #6
bl _u32_div_f
sub r1, #0x40
str r1, [sp, #0x10]
- bl rand_MT
+ bl MTRandom
lsl r0, r0, #0x18
lsr r1, r0, #0x18
ldr r0, [sp, #0x10]
@@ -17027,13 +17027,13 @@ _021DF80C:
mov r1, #0xce
sub r7, r1, r0
bpl _021DF89E
- bl rand_MT
+ bl MTRandom
neg r1, r7
bl _u32_div_f
sub r1, r6, r1
b _021DF8AA
_021DF89E:
- bl rand_MT
+ bl MTRandom
add r1, r7, #0
bl _u32_div_f
add r1, r6, r1
@@ -17048,7 +17048,7 @@ _021DF8AA:
str r0, [r5, #4]
b _021DF8C6
_021DF8BC:
- bl rand_MT
+ bl MTRandom
mov r1, #3
and r0, r1
str r0, [sp, #8]
@@ -17150,12 +17150,12 @@ _021DF958:
_021DF978:
b _021DFA96
_021DF97A:
- bl rand_MT
+ bl MTRandom
mov r1, #0x14
bl _u32_div_f
add r1, #0xa
str r1, [r4, #8]
- bl rand_MT
+ bl MTRandom
mov r1, #3
bl _u32_div_f
add r0, r1, #5
@@ -17178,12 +17178,12 @@ _021DF9A2:
ldr r0, [r4, #4]
mov r1, #0x10
bl MOD05_021DC6D4
- bl rand_MT
+ bl MTRandom
mov r1, #0x14
bl _u32_div_f
add r1, #0xa
str r1, [r4, #8]
- bl rand_MT
+ bl MTRandom
mov r1, #3
bl _u32_div_f
add r0, r1, #5
@@ -17212,12 +17212,12 @@ _021DF9E2:
ldr r0, [r4, #0xc]
cmp r1, r0
bgt _021DFA50
- bl rand_MT
+ bl MTRandom
mov r1, #0xf
bl _u32_div_f
add r1, #0xa
str r1, [r4, #8]
- bl rand_MT
+ bl MTRandom
mov r1, #3
bl _u32_div_f
add r0, r1, #7
@@ -17231,12 +17231,12 @@ _021DFA26:
ldr r0, [r4, #0xc]
cmp r1, r0
blt _021DFA50
- bl rand_MT
+ bl MTRandom
mov r1, #0x14
bl _u32_div_f
add r1, #0xa
str r1, [r4, #8]
- bl rand_MT
+ bl MTRandom
mov r1, #3
bl _u32_div_f
add r0, r1, #5
@@ -17840,7 +17840,7 @@ _021DFEF6:
ldr r5, [r4, #8]
mov r0, #0
str r0, [r5]
- bl rand_MT
+ bl MTRandom
mov r1, #3
bl _u32_div_f
add r7, r1, #0
@@ -17888,7 +17888,7 @@ _021DFEF6:
str r0, [r5, #8]
mov r0, #0
str r0, [r5, #0xc]
- bl rand_MT
+ bl MTRandom
mov r1, #3
and r1, r0
mov r0, #0x64
@@ -17915,11 +17915,11 @@ _021DFEF6:
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
- bl rand_MT
+ bl MTRandom
ldr r1, _021DFFFC ; =0x000001FF
and r0, r1
str r0, [sp, #0x18]
- bl rand_MT
+ bl MTRandom
mov r1, #0x30
bl _u32_div_f
mov r0, #0
@@ -17992,7 +17992,7 @@ _021E0032:
ldr r0, [r4, #4]
cmp r1, r0
ble _021E0076
- bl rand_MT
+ bl MTRandom
mov r1, #0xa
bl _u32_div_f
cmp r1, #5
@@ -18496,7 +18496,7 @@ _021E0436:
add r4, r0, #0
beq _021E050E
ldr r5, [r4, #8]
- bl rand_MT
+ bl MTRandom
mov r1, #3
and r1, r0
lsl r1, r1, #0x10
@@ -18507,7 +18507,7 @@ _021E0436:
str r0, [r5, #0x10]
mov r0, #0
str r0, [r5, #0x14]
- bl rand_MT
+ bl MTRandom
lsr r1, r0, #0x1f
lsl r2, r0, #0x1f
sub r2, r2, r1
@@ -18522,14 +18522,14 @@ _021E0474:
mvn r0, r0
_021E0478:
str r0, [r5, #4]
- bl rand_MT
+ bl MTRandom
mov r0, #1
str r0, [r5, #0xc]
ldr r0, [sp, #0xc]
str r0, [r5]
ldr r0, [sp, #8]
str r0, [r5, #0x18]
- bl rand_MT
+ bl MTRandom
mov r1, #0x14
bl _u32_div_f
add r1, #0xa
@@ -18543,7 +18543,7 @@ _021E0478:
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
- bl rand_MT
+ bl MTRandom
ldr r1, _021E0518 ; =0x0000019E
bl _u32_div_f
ldr r0, [sp, #0x10]
@@ -18556,7 +18556,7 @@ _021E0478:
ldr r0, [sp, #4]
cmp r6, r0
blt _021E04DE
- bl rand_MT
+ bl MTRandom
mov r1, #0x14
bl _u32_div_f
mov r0, #0x27
@@ -18565,7 +18565,7 @@ _021E0478:
str r0, [sp, #0x24]
b _021E04F0
_021E04DE:
- bl rand_MT
+ bl MTRandom
mov r1, #0x14
bl _u32_div_f
mov r0, #7
@@ -18731,7 +18731,7 @@ _021E060E:
str r0, [r4, #4]
mov r0, #0
str r0, [r4, #0x14]
- bl rand_MT
+ bl MTRandom
mov r1, #0x1e
lsl r1, r1, #4
bl _u32_div_f
@@ -18739,7 +18739,7 @@ _021E060E:
str r1, [r4, #0x18]
mov r0, #0
str r0, [r4, #0x1c]
- bl rand_MT
+ bl MTRandom
mov r1, #3
bl _u32_div_f
cmp r1, #0
@@ -18788,13 +18788,13 @@ _021E0678:
ldr r0, [r4, #8]
cmp r0, #0xc8
bne _021E069E
- bl rand_MT
+ bl MTRandom
mov r1, #0xf
bl _u32_div_f
str r1, [r4, #0x10]
b _021E06BE
_021E069E:
- bl rand_MT
+ bl MTRandom
add r7, r0, #0
ldr r1, [r4, #0x18]
mov r0, #0x32
@@ -19012,7 +19012,7 @@ _021E084C:
add r5, r0, #0
beq _021E0932
ldr r4, [r5, #8]
- bl rand_MT
+ bl MTRandom
mov r1, #0xe
bl _u32_div_f
add r6, r1, #0
@@ -19024,7 +19024,7 @@ _021E084C:
lsr r0, r0, #0x1e
add r0, r6, r0
asr r6, r0, #2
- bl rand_MT
+ bl MTRandom
mov r1, #0x19
bl _u32_div_f
add r2, r1, #0
@@ -19038,7 +19038,7 @@ _021E084C:
str r0, [r4, #4]
mov r0, #0
str r0, [r4, #8]
- bl rand_MT
+ bl MTRandom
mov r1, #1
and r0, r1
str r0, [r4, #0xc]
@@ -19060,36 +19060,36 @@ _021E08BA: ; jump table
.short _021E08E0 - _021E08BA - 2 ; case 3
.short _021E08FA - _021E08BA - 2 ; case 4
_021E08C4:
- bl rand_MT
+ bl MTRandom
ldr r1, _021E0938 ; =0x000001FF
and r0, r1
sub r0, #0x80
str r0, [sp, #8]
- bl rand_MT
+ bl MTRandom
mov r1, #0xc0
bl _u32_div_f
add r1, #8
str r1, [sp, #0xc]
b _021E0912
_021E08E0:
- bl rand_MT
+ bl MTRandom
ldr r1, _021E0938 ; =0x000001FF
and r0, r1
sub r0, #0x80
str r0, [sp, #8]
- bl rand_MT
+ bl MTRandom
mov r1, #0x7f
and r0, r1
add r0, #0x40
str r0, [sp, #0xc]
b _021E0912
_021E08FA:
- bl rand_MT
+ bl MTRandom
ldr r1, _021E0938 ; =0x000001FF
and r0, r1
sub r0, #0x80
str r0, [sp, #8]
- bl rand_MT
+ bl MTRandom
mov r1, #0x1f
and r0, r1
add r0, #0xa0
@@ -21000,7 +21000,7 @@ _021E17BE:
mov r7, #1
b _021E182E
_021E17DE:
- bl rand_LC
+ bl LCRandom
mov r1, #0x64
bl _s32_div_f
cmp r1, #0x32
@@ -27440,12 +27440,12 @@ _021E4980:
add r0, r7, #0
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
ldr r0, [sp]
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x55
lsl r1, r1, #2
ldr r1, [r5, r1]
@@ -32853,7 +32853,7 @@ MOD05_021E72E8: ; 0x021E72E8
add r4, r1, #0
bl FUN_0206BB1C
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
pop {r4, pc}
.balign 4, 0
@@ -43049,7 +43049,7 @@ _021EC46E:
bl FUN_02023C7C
add r1, r7, #0
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
beq _021EC48C
add r0, r4, #1
@@ -43081,7 +43081,7 @@ _021EC4AA:
bl FUN_02023C7C
add r1, r6, #0
add r2, r7, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
bne _021EC4C6
add r0, r4, #0
@@ -43103,7 +43103,7 @@ MOD05_021EC4DC: ; 0x021EC4DC
push {r3, lr}
mov r1, #6
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
bl FUN_0206EA98
@@ -43117,7 +43117,7 @@ MOD05_021EC4F0: ; 0x021EC4F0
add r6, r0, #0
str r1, [sp]
add r7, r3, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r4, r0, #0
add r0, r5, #0
bl FUN_02023C80
@@ -43131,7 +43131,7 @@ MOD05_021EC4F0: ; 0x021EC4F0
add r0, r4, #0
mov r1, #0x74
add r2, sp, #0xc
- bl GetMonDataEncrypted
+ bl GetMonData
add r0, r4, #0
bl FUN_020690E4
bl MOD05_021EC4DC
@@ -43142,7 +43142,7 @@ MOD05_021EC4F0: ; 0x021EC4F0
add r2, r0, #0
add r0, r4, #0
mov r1, #0xa9
- bl GetMonDataEncrypted
+ bl GetMonData
_021EC544:
ldr r1, [sp, #4]
add r0, r4, #0
@@ -43155,7 +43155,7 @@ _021EC544:
bl FUN_0206B938
ldr r1, _021EC578 ; =0x000001B9
add r0, r6, #0
- bl FUN_0206BAE4
+ bl PartyHasMon
cmp r0, #0
bne _021EC572
add r0, r7, #0
@@ -43211,13 +43211,13 @@ MOD05_021EC5B0: ; 0x021EC5B0
add r0, r6, #0
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
bne _021EC600
add r0, r7, #0
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
beq _021EC600
add r0, r5, #0
@@ -43275,7 +43275,7 @@ _021EC64E:
blt _021EC616
_021EC658:
add r0, r5, #0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
add sp, #0xc
pop {r4, r5, r6, r7, pc}
nop
@@ -43304,7 +43304,7 @@ MOD05_021EC668: ; 0x021EC668
add r0, r5, #0
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x10
lsr r7, r0, #0x10
add r0, r5, #0
@@ -43313,13 +43313,13 @@ MOD05_021EC668: ; 0x021EC668
add r0, r4, #0
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x64
beq _021EC6E0
add r0, r4, #0
mov r1, #8
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #8]
add r0, r6, #0
bl FUN_02023C84
@@ -43329,7 +43329,7 @@ MOD05_021EC668: ; 0x021EC668
str r0, [sp, #8]
add r0, r4, #0
mov r1, #8
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r4, #0
bl MOD05_021EC604
_021EC6E0:
@@ -43342,13 +43342,13 @@ _021EC6E0:
add r2, r0, #0
add r0, r4, #0
mov r1, #0xa9
- bl SetMonDataEncrypted
+ bl SetMonData
_021EC6FA:
ldr r0, [sp]
add r1, r4, #0
bl FUN_0206B900
add r0, r5, #0
- bl WipeBoxMonDataAndEncrypt
+ bl ZeroBoxMonData
add r0, r6, #0
mov r1, #0
bl FUN_02023CA0
@@ -43394,16 +43394,16 @@ MOD05_021EC744: ; 0x021EC744
add r0, r4, #0
mov r1, #8
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
str r0, [sp]
add r0, r0, r5
str r0, [sp]
add r0, r4, #0
mov r1, #8
add r2, sp, #0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0
- bl CalcBoxMonLevelEncrypted
+ bl CalcBoxMonLevel
add r4, r0, #0
add r0, r7, #0
bl FreeToHeap
@@ -43416,7 +43416,7 @@ MOD05_021EC78C: ; 0x021EC78C
add r5, r0, #0
bl FUN_02023C7C
add r6, r0, #0
- bl CalcBoxMonLevelEncrypted
+ bl CalcBoxMonLevel
lsl r0, r0, #0x18
lsr r4, r0, #0x18
add r0, r5, #0
@@ -43525,7 +43525,7 @@ MOD05_021EC864: ; 0x021EC864
bl FUN_02023C7C
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
beq _021EC888
add r0, r4, #0
@@ -43564,7 +43564,7 @@ MOD05_021EC8A8: ; 0x021EC8A8
add r5, sp, #4
_021EC8BC:
ldr r0, [r5]
- bl GetBoxMonGenderEncrypted
+ bl GetBoxMonGender
cmp r0, #1
bne _021EC8C8
str r4, [sp]
@@ -43581,7 +43581,7 @@ _021EC8D8:
ldr r0, [r4]
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
str r0, [r5]
cmp r0, #0x84
bne _021EC8EC
@@ -43595,7 +43595,7 @@ _021EC8EC:
blt _021EC8D8
cmp r7, #2
bne _021EC90E
- bl rand_LC
+ bl LCRandom
ldr r1, _021EC940 ; =0x00007FFF
cmp r0, r1
blo _021EC90A
@@ -43612,10 +43612,10 @@ _021EC90E:
add r0, sp, #4
ldr r0, [r0, r1]
mov r1, #6
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0xe5
bne _021EC938
- bl rand_LC
+ bl LCRandom
ldr r1, _021EC940 ; =0x00007FFF
cmp r0, r1
blo _021EC932
@@ -43642,7 +43642,7 @@ MOD05_021EC944: ; 0x021EC944
bl MOD05_021EC8A8
add r1, r0, #0
bpl _021EC960
- bl rand_MT
+ bl MTRandom
add r1, r0, #0
ldr r0, [sp]
bl FUN_02023CB8
@@ -43652,13 +43652,13 @@ _021EC960:
bl MOD05_021EC458
add r1, r5, #0
add r2, r1, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
bl GetNatureFromPersonality
mov r7, #0x96
add r6, r0, #0
lsl r7, r7, #4
_021EC978:
- bl rand_MT
+ bl MTRandom
add r4, r0, #0
bl GetNatureFromPersonality
cmp r6, r0
@@ -43730,7 +43730,7 @@ _021EC9E0:
add r6, sp, #8
add r7, #2
_021EC9F4:
- bl rand_LC
+ bl LCRandom
mov r1, #6
sub r1, r1, r5
bl _s32_div_f
@@ -43749,7 +43749,7 @@ _021EC9F4:
add r6, #1
mov r7, #0x1f
_021ECA1E:
- bl rand_LC
+ bl LCRandom
lsr r1, r0, #0x1f
lsl r0, r0, #0x1f
sub r0, r0, r1
@@ -43791,62 +43791,62 @@ _021ECA60: ; jump table
_021ECA6C:
mov r1, #0x46
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strb r0, [r6]
add r0, r4, #0
mov r1, #0x46
add r2, r7, #0
- bl SetMonDataEncrypted
+ bl SetMonData
b _021ECAEE
_021ECA82:
mov r1, #0x47
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strb r0, [r6]
add r0, r4, #0
mov r1, #0x47
add r2, r7, #0
- bl SetMonDataEncrypted
+ bl SetMonData
b _021ECAEE
_021ECA98:
mov r1, #0x48
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strb r0, [r6]
add r0, r4, #0
mov r1, #0x48
add r2, r7, #0
- bl SetMonDataEncrypted
+ bl SetMonData
b _021ECAEE
_021ECAAE:
mov r1, #0x49
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strb r0, [r6]
add r0, r4, #0
mov r1, #0x49
add r2, r7, #0
- bl SetMonDataEncrypted
+ bl SetMonData
b _021ECAEE
_021ECAC4:
mov r1, #0x4a
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strb r0, [r6]
add r0, r4, #0
mov r1, #0x4a
add r2, r7, #0
- bl SetMonDataEncrypted
+ bl SetMonData
b _021ECAEE
_021ECADA:
mov r1, #0x4b
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strb r0, [r6]
add r0, r4, #0
mov r1, #0x4b
add r2, r7, #0
- bl SetMonDataEncrypted
+ bl SetMonData
_021ECAEE:
add r0, r5, #1
lsl r0, r0, #0x18
@@ -43864,7 +43864,7 @@ MOD05_021ECAFC: ; 0x021ECAFC
mov r1, #5
add r2, r4, #0
add r6, r4, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r2, r0, #0x10
ldr r0, _021ECB60 ; =0x00004E20
@@ -43935,14 +43935,14 @@ MOD05_021ECB6C: ; 0x021ECB6C
add r0, r7, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x18]
add r0, r7, #0
mov r1, #0x70
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0xc]
@@ -43965,13 +43965,13 @@ _021ECBC0:
ldr r0, [sp]
add r1, r6, #0
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
ldr r1, [sp, #0x20]
mov r2, #0
str r0, [r4, r1]
ldr r0, [sp, #4]
add r1, r6, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
ldr r1, [sp, #0x10]
str r0, [r1, #0x20]
add r0, r5, #1
@@ -44218,13 +44218,13 @@ _021ECDAE:
ldr r0, [sp]
mov r1, #6
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x10
lsr r4, r0, #0x10
ldr r0, [sp, #4]
mov r1, #6
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x10
lsr r2, r0, #0x10
mov r0, #6
@@ -44258,12 +44258,12 @@ MOD05_021ECDF4: ; 0x021ECDF4
ldr r0, [sp]
mov r1, #6
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r5, r0, #0
ldr r0, [sp, #4]
mov r1, #6
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r5, #0xec
beq _021ECE20
cmp r0, #0xec
@@ -44301,7 +44301,7 @@ _021ECE56:
ldr r0, [r7, r6]
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r1, r4, #1
add r2, sp, #0xc
strh r0, [r2, r1]
@@ -44316,7 +44316,7 @@ _021ECE56:
b _021ECE8C
_021ECE7A:
ldr r0, [r7, r6]
- bl GetBoxMonGenderEncrypted
+ bl GetBoxMonGender
cmp r0, #1
bne _021ECE8C
mov r0, #1
@@ -44377,7 +44377,7 @@ _021ECEDE:
lsl r1, r0, #2
add r0, sp, #4
ldr r0, [r0, r1]
- bl GetBoxMonGenderEncrypted
+ bl GetBoxMonGender
cmp r0, #1
beq _021ECF02
ldrb r1, [r5, #1]
@@ -44424,16 +44424,16 @@ MOD05_021ECF14: ; 0x021ECF14
add r0, r5, #0
mov r1, #0x9a
add r2, sp, #0x14
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0
mov r1, #9
add r2, sp, #0x10
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0x10
add r0, r5, #0
mov r1, #0x9b
add r2, #2
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, sp, #0x30
ldrb r0, [r0, #8]
cmp r0, #0
@@ -44441,7 +44441,7 @@ MOD05_021ECF14: ; 0x021ECF14
add r0, r5, #0
mov r1, #0x97
add r2, sp, #0x38
- bl SetMonDataEncrypted
+ bl SetMonData
_021ECF7E:
add r2, sp, #0x10
mov r1, #1
@@ -44450,7 +44450,7 @@ _021ECF7E:
add r0, r5, #0
mov r1, #0x4c
add r2, #1
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, _021ED008 ; =0x000001EE
mov r1, #4
bl FUN_0200AA50
@@ -44458,7 +44458,7 @@ _021ECF7E:
add r0, r5, #0
mov r1, #0x76
add r2, r6, #0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r6, #0
bl FUN_02021A20
ldr r0, [sp, #0x40]
@@ -44477,15 +44477,15 @@ _021ECF7E:
add r0, r5, #0
mov r1, #0x90
add r2, r6, #0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0
mov r1, #7
add r2, sp, #0x1c
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0
mov r1, #0x9c
add r2, sp, #0x18
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r6, #0
bl FUN_02021A20
_021ECFEE:
@@ -44526,17 +44526,17 @@ MOD05_021ED00C: ; 0x021ED00C
beq _021ED05E
add r0, r6, #0
add r1, r4, #0
- bl FUN_02068AAC
+ bl CalcShininessByOtIdAndPersonality
cmp r0, #0
bne _021ED05E
mov r5, #0
_021ED044:
add r0, r4, #0
- bl rand_ALT
+ bl PRandom
add r4, r0, #0
add r0, r6, #0
add r1, r4, #0
- bl FUN_02068AAC
+ bl CalcShininessByOtIdAndPersonality
cmp r0, #0
bne _021ED05E
add r5, r5, #1
@@ -44562,20 +44562,20 @@ _021ED05E:
add r0, r7, #0
mov r1, #0x9a
add r2, #2
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r7, #0
mov r1, #9
add r2, sp, #0x14
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0x14
add r0, r7, #0
mov r1, #0x9b
add r2, #1
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r7, #0
mov r1, #0x70
add r2, sp, #0x30
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, _021ED0C8 ; =0x000001EE
mov r1, #4
bl FUN_0200AA50
@@ -44583,7 +44583,7 @@ _021ED05E:
add r0, r7, #0
mov r1, #0x76
add r2, r4, #0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r4, #0
bl FUN_02021A20
add sp, #0x18
@@ -44617,7 +44617,7 @@ MOD05_021ED0CC: ; 0x021ED0CC
bl MOD05_021EC458
mov r1, #0x70
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
@@ -44664,7 +44664,7 @@ _021ED168:
add r0, r4, #0
mov r1, #0x4c
add r2, sp, #0x10
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #4]
add r1, r4, #0
bl FUN_0206B900
@@ -44679,7 +44679,7 @@ _021ED168:
MOD05_021ED190: ; 0x021ED190
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
add r6, r0, #0
mov r4, #0
cmp r6, #0
@@ -44688,18 +44688,18 @@ MOD05_021ED190: ; 0x021ED190
_021ED1A2:
add r0, r5, #0
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r7, #0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _021ED1D6
add r0, r5, #0
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
cmp r0, #0x28
@@ -44765,18 +44765,18 @@ _021ED228:
ldr r0, [r5]
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strh r0, [r4]
ldr r0, [r5]
mov r1, #7
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
ldr r1, [sp]
str r0, [r1]
mov r1, #0
ldr r0, [r5]
add r2, r1, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r1, r0, #0
ldrh r0, [r4]
bl GetGenderBySpeciesAndPersonality
@@ -44956,7 +44956,7 @@ _021ED38E:
ldr r0, [r5]
mov r1, #0xab
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
beq _021ED3AC
ldr r0, [sp]
@@ -44987,7 +44987,7 @@ _021ED3AC:
ldr r0, [sp]
bl MOD05_021ED320
add r4, r0, #0
- bl rand_LC
+ bl LCRandom
mov r1, #0x64
mul r1, r0
add r0, r1, #0
@@ -45017,29 +45017,29 @@ _021ED3F8:
add r6, r0, #0
add r0, r7, #0
mov r5, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
bls _021ED490
_021ED430:
add r0, r7, #0
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0
add r4, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021ED484
add r0, r4, #0
mov r1, #3
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _021ED484
add r0, r4, #0
mov r1, #9
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x10]
cmp r0, #0
beq _021ED47E
@@ -45055,7 +45055,7 @@ _021ED472:
add r0, r4, #0
mov r1, #9
add r2, sp, #0x10
- bl SetMonDataEncrypted
+ bl SetMonData
b _021ED484
_021ED47E:
add sp, #0x14
@@ -45064,7 +45064,7 @@ _021ED47E:
_021ED484:
add r0, r7, #0
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blo _021ED430
_021ED490:
@@ -45078,7 +45078,7 @@ _021ED498: .word 0x0000FFFF
MOD05_021ED49C: ; 0x021ED49C
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
add r6, r0, #0
mov r5, #0
cmp r6, #0
@@ -45086,17 +45086,17 @@ MOD05_021ED49C: ; 0x021ED49C
_021ED4AC:
add r0, r7, #0
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0
add r4, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021ED4D4
add r0, r4, #0
mov r1, #9
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _021ED4D4
add r0, r4, #0
@@ -45120,7 +45120,7 @@ MOD05_021ED4E0: ; 0x021ED4E0
ldr r0, [sp]
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
beq _021ED50E
ldr r2, [sp]
@@ -45135,7 +45135,7 @@ _021ED50E:
ldr r0, [sp, #4]
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
beq _021ED526
ldr r2, [sp, #4]
@@ -45186,7 +45186,7 @@ MOD05_021ED52C: ; 0x021ED52C
add r0, r5, #0
mov r1, #0x6f
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x18
lsr r4, r0, #0x18
cmp r4, #2
@@ -45194,7 +45194,7 @@ MOD05_021ED52C: ; 0x021ED52C
add r0, r5, #0
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
cmp r0, #0x1d
@@ -45205,7 +45205,7 @@ _021ED5A4:
add r0, r5, #0
mov r1, #0x4d
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
bne _021ED5B4
mov r4, #2
@@ -45222,7 +45222,7 @@ _021ED5B4:
MOD05_021ED5C4: ; 0x021ED5C4
push {r3, r4, r5, lr}
add r5, r2, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r4, r0, #0
bl FUN_020690E4
add r2, r0, #0
@@ -45232,7 +45232,7 @@ MOD05_021ED5C4: ; 0x021ED5C4
add r0, r4, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
pop {r3, r4, r5, pc}
@@ -45316,7 +45316,7 @@ MOD05_021ED650: ; 0x021ED650
add r0, r4, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x14]
@@ -45327,14 +45327,14 @@ _021ED67C:
add r0, r4, #0
add r1, #0x36
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r1, r5, #1
strh r0, [r7, r1]
add r1, r5, #0
add r0, r4, #0
add r1, #0x3a
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x30
strb r0, [r1, r5]
add r0, r5, #1
@@ -45345,7 +45345,7 @@ _021ED67C:
mov r1, #0
add r0, r4, #0
add r2, r1, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
mov r5, #0
_021ED6B4:
@@ -45353,7 +45353,7 @@ _021ED6B4:
add r0, r4, #0
add r1, #0x46
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x24
add r1, #2
strb r0, [r1, r5]
@@ -45365,52 +45365,52 @@ _021ED6B4:
add r0, r4, #0
mov r1, #0xc
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x18
strb r0, [r1, #9]
add r0, r4, #0
mov r1, #0x79
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x18
strb r0, [r1, #8]
add r0, r4, #0
mov r1, #0xb
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x18
strb r0, [r1, #7]
add r0, r4, #0
mov r1, #0x99
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x18
strb r0, [r1, #0xa]
add r0, r4, #0
mov r1, #0x6e
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x18
strb r0, [r1, #5]
ldr r2, [sp, #0x10]
add r0, r4, #0
mov r1, #0x90
- bl GetMonDataEncrypted
+ bl GetMonData
add r0, r4, #0
mov r1, #0x9c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x18
strb r0, [r1, #3]
add r0, r4, #0
mov r1, #7
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x2c]
add r0, r4, #0
mov r1, #0x70
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x18
strb r0, [r1, #4]
ldr r1, _021ED93C ; =0x000001EA
@@ -45420,7 +45420,7 @@ _021ED6B4:
add r0, r4, #0
mov r1, #0x97
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, r0, #0
mov r0, #2
mov r1, #1
@@ -45429,16 +45429,16 @@ _021ED6B4:
bne _021ED788
ldr r0, [sp, #0x2c]
add r1, r7, #0
- bl FUN_02068AAC
+ bl CalcShininessByOtIdAndPersonality
cmp r0, #0
beq _021ED788
_021ED774:
add r0, r7, #0
- bl rand_ALT
+ bl PRandom
add r7, r0, #0
ldr r0, [sp, #0x2c]
add r1, r7, #0
- bl FUN_02068AAC
+ bl CalcShininessByOtIdAndPersonality
cmp r0, #0
bne _021ED774
_021ED788:
@@ -45460,13 +45460,13 @@ _021ED7A2:
add r0, r6, #0
add r1, #0x36
add r2, r7, r2
- bl SetMonDataEncrypted
+ bl SetMonData
add r1, r5, #0
add r2, sp, #0x30
add r0, r6, #0
add r1, #0x3a
add r2, r2, r5
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #1
lsl r0, r0, #0x18
lsr r5, r0, #0x18
@@ -45480,7 +45480,7 @@ _021ED7CE:
add r0, r6, #0
add r1, #0x46
add r2, r7, r5
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #1
lsl r0, r0, #0x18
lsr r5, r0, #0x18
@@ -45490,16 +45490,16 @@ _021ED7CE:
add r0, r6, #0
mov r1, #0xc
add r2, #1
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r6, #0
mov r1, #0x79
add r2, sp, #0x20
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0x1c
add r0, r6, #0
mov r1, #0xb
add r2, #3
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0x1c
mov r1, #0x78
add r0, sp, #0x18
@@ -45507,118 +45507,118 @@ _021ED7CE:
add r0, r6, #0
mov r1, #9
add r2, #2
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0x20
add r0, r6, #0
mov r1, #0x99
add r2, #2
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0x1c
add r0, r6, #0
mov r1, #0x6e
add r2, #1
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r2, [sp, #0x10]
add r0, r6, #0
mov r1, #0x90
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0x18
add r0, r6, #0
mov r1, #0x9c
add r2, #3
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r6, #0
mov r1, #7
add r2, sp, #0x2c
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r6, #0
mov r1, #0x70
add r2, sp, #0x1c
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r4, #0
mov r1, #0x97
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x18
strh r0, [r1, #0xc]
add r0, r4, #0
mov r1, #0x91
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x18
strb r0, [r1, #2]
add r0, r4, #0
mov r1, #0x92
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x18
strb r0, [r1, #1]
add r0, r4, #0
mov r1, #0x93
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x18
strb r0, [r1]
add r0, r6, #0
mov r1, #0x97
add r2, sp, #0x24
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0x18
add r0, r6, #0
mov r1, #0x91
add r2, #2
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0x18
add r0, r6, #0
mov r1, #0x92
add r2, #1
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r6, #0
mov r1, #0x93
add r2, sp, #0x18
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r4, #0
mov r1, #0x98
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x18
strh r0, [r1, #0xc]
add r0, r4, #0
mov r1, #0x94
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x18
strb r0, [r1, #2]
add r0, r4, #0
mov r1, #0x95
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x18
strb r0, [r1, #1]
add r0, r4, #0
mov r1, #0x96
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x18
strb r0, [r1]
add r0, r6, #0
mov r1, #0x98
add r2, sp, #0x24
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0x18
add r0, r6, #0
mov r1, #0x94
add r2, #2
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0x18
add r0, r6, #0
mov r1, #0x95
add r2, #1
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r6, #0
mov r1, #0x96
add r2, sp, #0x18
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r6, #0
add r1, r4, #0
bl FUN_02069B88
@@ -45649,11 +45649,11 @@ MOD05_021ED940: ; 0x021ED940
add r0, r4, #0
mov r1, #0x4c
add r2, #3
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r4, #0
mov r1, #5
add r2, r5, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
add r1, r5, #0
@@ -45662,23 +45662,23 @@ MOD05_021ED940: ; 0x021ED940
add r0, r4, #0
mov r1, #0x74
add r2, sp, #4
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0
add r0, r4, #0
mov r1, #0x4d
add r2, #2
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #0
add r0, r4, #0
mov r1, #0x9a
add r2, #1
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r4, #0
mov r1, #0x9b
add r2, sp, #0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r4, #0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
add sp, #0x1c
pop {r4, r5, pc}
.balign 4, 0
@@ -52111,7 +52111,7 @@ MOD05_021F0ADC: ; 0x021F0ADC
mov r0, #0
mvn r0, r0
strb r0, [r4]
- bl rand_LC
+ bl LCRandom
lsr r2, r0, #0x1f
lsl r1, r0, #0x1c
sub r1, r1, r2
@@ -52240,7 +52240,7 @@ _021F0BE0:
blt _021F0C0C
mov r0, #0
strb r0, [r4, #1]
- bl rand_LC
+ bl LCRandom
lsr r1, r0, #0x1f
lsl r2, r0, #0x1c
sub r2, r2, r1
@@ -58115,13 +58115,13 @@ MOD05_021F38CC: ; 0x021F38CC
mov r1, #0
add r2, r1, #0
add r5, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r4, r0, #0x10
add r0, r5, #0
mov r1, #0x46
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0xf
and r0, r1
lsl r0, r0, #0x10
@@ -58130,7 +58130,7 @@ MOD05_021F38CC: ; 0x021F38CC
add r0, r5, #0
mov r1, #0x47
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0xf
and r0, r1
lsl r0, r0, #0x10
@@ -58139,7 +58139,7 @@ MOD05_021F38CC: ; 0x021F38CC
add r0, r5, #0
mov r1, #0x48
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0xf
and r0, r1
lsl r0, r0, #0x10
@@ -58148,7 +58148,7 @@ MOD05_021F38CC: ; 0x021F38CC
add r0, r5, #0
mov r1, #0x49
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0xf
and r0, r1
lsl r0, r0, #0x10
@@ -58156,7 +58156,7 @@ MOD05_021F38CC: ; 0x021F38CC
add r0, r5, #0
mov r1, #0x4a
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0xf
and r0, r1
lsl r0, r0, #0x10
@@ -58164,7 +58164,7 @@ MOD05_021F38CC: ; 0x021F38CC
add r0, r5, #0
mov r1, #0x4b
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0xf
and r0, r1
lsl r0, r0, #0x10
@@ -58275,11 +58275,11 @@ MOD05_021F3A18: ; 0x021F3A18
add r5, r1, #0
bl FUN_0206BB1C
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #5
mov r2, #0
str r0, [sp]
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r5, r0, #0x10
ldr r0, [sp]
@@ -58344,7 +58344,7 @@ MOD05_021F3AB4: ; 0x021F3AB4
add r5, r1, #0
bl FUN_0206BB1C
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
bl MOD05_021F38CC
add r1, sp, #0
strh r0, [r1]
@@ -58440,11 +58440,11 @@ MOD05_021F3B7C: ; 0x021F3B7C
add r7, r1, #0
bl FUN_0206BB1C
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #5
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r4, r0, #0x10
add r0, r6, #0
@@ -60929,7 +60929,7 @@ _021F4DDE:
bl FUN_0202A9C0
cmp r5, r0
bne _021F4E42
- bl rand_LC
+ bl LCRandom
mov r1, #0x29
lsl r1, r1, #4
bl _s32_div_f
@@ -61031,7 +61031,7 @@ MOD05_021F4EE4: ; 0x021F4EE4
push {r4, r5, r6, lr}
add r6, r0, #0
add r5, r1, #0
- bl rand_LC
+ bl LCRandom
mov r1, #0x29
lsl r1, r1, #4
bl _s32_div_f
@@ -61085,7 +61085,7 @@ _021F4F3E:
MOD05_021F4F44: ; 0x021F4F44
push {r3, r4, r5, lr}
add r4, r0, #0
- bl rand_LC
+ bl LCRandom
mov r1, #0x29
lsl r1, r1, #4
bl _s32_div_f
@@ -61148,7 +61148,7 @@ _021F4FA8:
MOD05_021F4FAC: ; 0x021F4FAC
push {r3, r4, r5, lr}
add r4, r0, #0
- bl rand_LC
+ bl LCRandom
mov r1, #0x29
lsl r1, r1, #4
bl _s32_div_f
@@ -62943,7 +62943,7 @@ _021F5CBA:
bne _021F5D10
ldr r0, [r0, #8]
mov r1, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r2, [r5, #4]
add r3, r0, #0
lsl r2, r2, #0x10
@@ -63125,7 +63125,7 @@ _021F5E24:
MOD05_021F5E30: ; 0x021F5E30
push {r4, lr}
add r4, r0, #0
- bl rand_LC
+ bl LCRandom
lsr r1, r0, #0x1f
lsl r0, r0, #0x1e
sub r0, r0, r1
diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s
index 2f478ef3..6819127d 100644
--- a/arm9/modules/06/asm/module_06.s
+++ b/arm9/modules/06/asm/module_06.s
@@ -4786,7 +4786,7 @@ _0223BA42:
add r4, r0, #0
add r0, r7, #0
mov r1, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [sp, #0x20]
ldr r1, [sp, #0x20]
add r0, r5, #0
@@ -4804,7 +4804,7 @@ _0223BA42:
str r1, [sp, #0x34]
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x24
strb r0, [r1, #0x18]
_0223BA8C:
@@ -5130,7 +5130,7 @@ _0223BD2E:
ldr r0, [r0, #0xc]
bl FUN_0206BB1C
mov r1, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [sp, #0x14]
ldr r0, [sp, #8]
ldr r1, [sp, #0x14]
@@ -5149,7 +5149,7 @@ _0223BD2E:
add r2, sp, #0x20
bl MOD06_0223CF14
add r6, r0, #0
- bl rand_LC
+ bl LCRandom
mov r1, #0x29
lsl r1, r1, #4
bl _s32_div_f
@@ -5312,7 +5312,7 @@ _0223BEA4:
add r4, r0, #0
add r0, r6, #0
mov r1, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [sp, #0x18]
ldr r1, [sp, #0x18]
add r0, r5, #0
@@ -5568,7 +5568,7 @@ _0223C0CE:
str r0, [sp, #0x14]
add r0, r6, #0
mov r1, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [sp, #0x1c]
ldr r1, [sp, #0x1c]
ldr r2, [sp, #0x14]
@@ -5586,7 +5586,7 @@ _0223C0CE:
str r1, [sp, #0x2c]
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x20
strb r0, [r1, #0x14]
_0223C118:
@@ -6016,7 +6016,7 @@ MOD06_0223C470: ; 0x0223C470
add r0, r5, #0
add r0, #0x74
strh r1, [r0]
- bl rand_LC
+ bl LCRandom
mov r1, #0x29
lsl r1, r1, #4
bl _s32_div_f
@@ -6060,7 +6060,7 @@ _0223C4D4:
bls _0223C4EC
mov r4, #0x64
_0223C4EC:
- bl rand_LC
+ bl LCRandom
mov r1, #0x29
lsl r1, r1, #4
bl _s32_div_f
@@ -6144,7 +6144,7 @@ _0223C580:
MOD06_0223C584: ; 0x0223C584
push {r3, r4, r5, lr}
add r4, r1, #0
- bl rand_LC
+ bl LCRandom
mov r1, #0x29
lsl r1, r1, #4
bl _s32_div_f
@@ -6165,7 +6165,7 @@ _0223C5A8:
thumb_func_start MOD06_0223C5AC
MOD06_0223C5AC: ; 0x0223C5AC
push {r4, lr}
- bl rand_LC
+ bl LCRandom
mov r1, #0x29
lsl r1, r1, #4
bl _s32_div_f
@@ -6255,7 +6255,7 @@ _0223C644:
thumb_func_start MOD06_0223C648
MOD06_0223C648: ; 0x0223C648
push {r4, lr}
- bl rand_LC
+ bl LCRandom
mov r1, #0x29
lsl r1, r1, #4
bl _s32_div_f
@@ -6300,7 +6300,7 @@ MOD06_0223C694: ; 0x0223C694
push {r4, r5, r6, lr}
add r5, r0, #0
mov r4, #0
- bl rand_LC
+ bl LCRandom
mov r1, #0x29
lsl r1, r1, #4
bl _s32_div_f
@@ -6400,7 +6400,7 @@ MOD06_0223C738: ; 0x0223C738
add r4, r1, #0
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r1, r0, #0x10
cmp r1, #0xe0
@@ -6452,7 +6452,7 @@ MOD06_0223C78C: ; 0x0223C78C
ldrb r0, [r1, #0xe]
cmp r0, #0x1c
bne _0223C7C6
- bl rand_LC
+ bl LCRandom
lsl r0, r0, #1
lsr r5, r0, #0x10
cmp r5, #2
@@ -6464,14 +6464,14 @@ _0223C7AC:
mov r1, #0
add r0, r4, #0
add r2, r1, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x19
bl _u32_div_f
lsl r0, r1, #0x18
lsr r0, r0, #0x18
pop {r3, r4, r5, pc}
_0223C7C6:
- bl rand_LC
+ bl LCRandom
ldr r1, _0223C7E4 ; =0x00000A3E
bl _s32_div_f
lsl r0, r0, #0x10
@@ -6504,7 +6504,7 @@ _0223C7FC:
lsl r0, r2, #0x18
_0223C802:
lsr r4, r0, #0x18
- bl rand_LC
+ bl LCRandom
sub r1, r4, r5
add r1, r1, #1
lsl r1, r1, #0x18
@@ -6523,7 +6523,7 @@ _0223C802:
cmp r0, #0x2e
bne _0223C84C
_0223C82C:
- bl rand_LC
+ bl LCRandom
lsl r0, r0, #1
lsr r7, r0, #0x10
cmp r7, #2
@@ -6574,7 +6574,7 @@ MOD06_0223C854: ; 0x0223C854
beq _0223C8E0
cmp r0, #0xff
beq _0223C8E0
- bl rand_LC
+ bl LCRandom
ldr r1, _0223C964 ; =0x00005556
bl _s32_div_f
lsl r0, r0, #0x10
@@ -6588,7 +6588,7 @@ _0223C8A6:
ldr r0, [sp, #0x44]
mov r1, #0x6f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x24]
@@ -6597,7 +6597,7 @@ _0223C8A6:
_0223C8BE:
cmp r0, #0x1c
bne _0223C8E0
- bl rand_LC
+ bl LCRandom
lsl r0, r0, #1
lsr r4, r0, #0x10
cmp r4, #2
@@ -6607,12 +6607,12 @@ _0223C8D2:
cmp r4, #0
bne _0223C8E0
ldr r0, [sp, #0x44]
- bl GetMonNatureEncrypted
+ bl GetMonNature
str r0, [sp, #0x20]
mov r7, #1
_0223C8E0:
add r0, r5, #0
- bl FUN_02068AD8
+ bl GenerateShinyPersonality
add r4, r0, #0
cmp r7, #0
beq _0223C92E
@@ -6632,7 +6632,7 @@ _0223C904:
cmp r7, r0
bne _0223C92E
add r0, r5, #0
- bl FUN_02068AD8
+ bl GenerateShinyPersonality
add r4, r0, #0
b _0223C8EC
_0223C914:
@@ -6644,7 +6644,7 @@ _0223C914:
cmp r0, r1
beq _0223C92E
add r0, r5, #0
- bl FUN_02068AD8
+ bl GenerateShinyPersonality
add r4, r0, #0
b _0223C8EC
_0223C92E:
@@ -6708,7 +6708,7 @@ _0223C998:
ldrb r0, [r5, #0xe]
cmp r0, #0x38
bne _0223CA28
- bl rand_LC
+ bl LCRandom
ldr r1, _0223CA68 ; =0x00005556
bl _s32_div_f
lsl r0, r0, #0x10
@@ -6722,7 +6722,7 @@ _0223C9BE:
ldr r0, [sp, #0x28]
mov r1, #0x6f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r6, r0, #0x18
cmp r6, #1
@@ -6748,11 +6748,11 @@ _0223C9E4:
add r0, r4, #0
add r1, r7, #0
mov r3, #0x20
- bl CreateMonWithNatureGenderLetter
+ bl CreateMonWithGenderNatureLetter
add r0, r4, #0
mov r1, #7
add r2, r5, #0
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0x10]
ldr r3, [sp, #0x2c]
add r1, r5, #0
@@ -6779,7 +6779,7 @@ _0223CA28:
add r0, r4, #0
mov r1, #7
add r2, r5, #0
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0x10]
ldr r3, [sp, #0x2c]
add r1, r5, #0
@@ -7118,14 +7118,14 @@ MOD06_0223CCDC: ; 0x0223CCDC
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
mov r1, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [sp, #0xc]
ldr r1, [sp, #0xc]
add r0, r5, #0
mov r2, #0
add r3, sp, #0x10
bl MOD06_0223D2DC
- bl rand_LC
+ bl LCRandom
ldr r1, _0223CD78 ; =0x00001746
bl _s32_div_f
lsl r0, r0, #0x10
@@ -7149,7 +7149,7 @@ _0223CD1A:
cmp r0, #0x2e
bne _0223CD4C
_0223CD36:
- bl rand_LC
+ bl LCRandom
lsl r0, r0, #1
lsr r6, r0, #0x10
cmp r6, #2
@@ -7194,7 +7194,7 @@ MOD06_0223CD7C: ; 0x0223CD7C
add r6, r3, #0
bl FUN_0206BB1C
mov r1, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r4, r0, #0
add r0, r5, #0
add r1, r4, #0
@@ -7360,7 +7360,7 @@ _0223CEB6:
mov r0, #0
pop {r4, r5, r6, r7, pc}
_0223CEBC:
- bl rand_LC
+ bl LCRandom
add r1, r4, #0
bl _s32_div_f
add r0, sp, #0x10
@@ -7384,7 +7384,7 @@ MOD06_0223CED4: ; 0x0223CED4
ldrb r0, [r0, #0x14]
cmp r1, r0
bne _0223CF0E
- bl rand_LC
+ bl LCRandom
lsl r0, r0, #1
lsr r4, r0, #0x10
cmp r4, #2
@@ -7488,7 +7488,7 @@ _0223CF96:
add r0, r1, #0
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
cmp r0, #5
@@ -7499,7 +7499,7 @@ _0223CFAC:
sub r0, r0, #5
cmp r4, r0
bgt _0223CFCA
- bl rand_LC
+ bl LCRandom
lsl r0, r0, #1
lsr r4, r0, #0x10
cmp r4, #2
@@ -7622,19 +7622,19 @@ MOD06_0223D044: ; 0x0223D044
add r0, r4, #0
lsr r1, r1, #0x10
add r2, r7, #0
- bl FUN_02066EA4
+ bl CreateMonWithFixedIVs
add r0, r4, #0
mov r1, #7
add r2, sp, #0x30
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r4, #0
mov r1, #0x9f
add r2, sp, #0x14
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r4, #0
mov r1, #0xa2
add r2, sp, #0x10
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [r6, #8]
add r1, r4, #0
bl FUN_0206B900
@@ -7698,7 +7698,7 @@ _0223D134:
mov r0, #0
pop {r4, r5, r6, r7, pc}
_0223D148:
- bl rand_LC
+ bl LCRandom
lsl r0, r0, #1
lsr r4, r0, #0x10
cmp r4, #2
@@ -7722,7 +7722,7 @@ _0223D16E:
mov r4, #0
b _0223D19E
_0223D176:
- bl rand_LC
+ bl LCRandom
add r4, r0, #0
ldr r0, _0223D1B8 ; =0x0000FFFF
add r1, r5, #0
@@ -7782,7 +7782,7 @@ _0223D1DA:
add r0, r6, #0
mov r1, #5
add r2, r4, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _0223D270 ; =0x000001A6
cmp r0, r1
bne _0223D208
@@ -7823,7 +7823,7 @@ _0223D222:
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #4]
- bl rand_LC
+ bl LCRandom
ldr r1, [sp, #4]
bl _s32_div_f
ldrb r0, [r5, #0x11]
@@ -7839,7 +7839,7 @@ _0223D24E:
add r0, r6, #0
mov r1, #0x70
add r2, sp, #8
- bl SetMonDataEncrypted
+ bl SetMonData
_0223D25C:
ldr r0, [sp]
add r1, r6, #0
@@ -7870,7 +7870,7 @@ MOD06_0223D27C: ; 0x0223D27C
cmp r0, #0x2e
bne _0223D2D8
_0223D296:
- bl rand_LC
+ bl LCRandom
lsl r0, r0, #1
lsr r6, r0, #0x10
cmp r6, #2
@@ -7919,14 +7919,14 @@ MOD06_0223D2DC: ; 0x0223D2DC
mov r1, #0x4c
mov r2, #0
add r4, r3, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0223D302
mov r2, #0
add r0, r7, #0
mov r1, #0xa
strb r2, [r4, #0xd]
- bl GetMonDataEncrypted
+ bl GetMonData
b _0223D308
_0223D302:
mov r0, #1
@@ -19735,7 +19735,7 @@ MOD06_022432E4: ; 0x022432E4
add r0, r1, #0
bl FUN_0206BB1C
str r0, [sp, #4]
- bl FUN_0206B9AC
+ bl GetPartyCount
lsl r0, r0, #0x18
lsr r1, r0, #0x18
str r1, [sp, #8]
@@ -19754,23 +19754,23 @@ _02243308:
_02243312:
ldr r0, [sp, #4]
add r1, r7, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #5
mov r2, #0
str r0, [sp, #0xc]
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r5, r0, #0x10
ldr r0, [sp, #0xc]
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r6, r0, #0x10
ldr r0, [sp, #0xc]
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0224336E
add r0, r5, #0
@@ -20281,18 +20281,18 @@ _02243726:
add r1, #0x2a
ldrb r1, [r1]
ldr r0, [sp, #8]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
lsl r1, r4, #1
add r6, r5, r1
add r7, r0, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r6, #0x2e]
add r0, r7, #0
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r6, #0x36]
add r0, r4, #1
lsl r0, r0, #0x10
@@ -20333,17 +20333,17 @@ _0224379C:
add r1, r1, r5
add r1, #0x2a
ldrb r1, [r1]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [sp, #8]
lsl r6, r5, #1
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, r6]
ldr r0, [sp, #8]
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r7, r6]
cmp r5, #0
beq _022437FA
@@ -20579,7 +20579,7 @@ _0224394A:
bne _0224396C
add r5, #0x2a
ldrb r1, [r5]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r2, r0, #0
add r0, r4, #0
add r1, r6, #0
@@ -20589,7 +20589,7 @@ _0224394A:
_0224396C:
add r5, #0x2a
ldrb r1, [r5]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r2, r0, #0
add r0, r4, #0
add r1, r6, #0
@@ -21453,17 +21453,17 @@ _02243FFA:
add r1, #0x2a
ldrb r1, [r1]
ldr r0, [sp]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r6, #0
mov r2, #0
str r0, [sp, #4]
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _02244024
ldr r0, [sp, #4]
add r1, r6, #0
add r2, sp, #8
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r7, #1
lsl r0, r0, #0x18
lsr r7, r0, #0x18
@@ -21522,7 +21522,7 @@ MOD06_0224406C: ; 0x0224406C
add r0, r5, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp]
lsl r0, r0, #0x10
ldrh r1, [r1]
@@ -21537,7 +21537,7 @@ MOD06_0224406C: ; 0x0224406C
strh r1, [r0]
add r0, r5, #0
mov r1, #0x70
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp]
lsl r0, r0, #0x10
ldrh r2, [r1]
@@ -21552,7 +21552,7 @@ MOD06_0224406C: ; 0x0224406C
strh r1, [r0]
add r0, r5, #0
mov r1, #6
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp]
mov r4, #0
strh r0, [r1, #2]
@@ -21567,13 +21567,13 @@ _022440D0:
add r0, r5, #0
add r1, #0x36
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r4, #0
strh r0, [r6, #4]
add r0, r5, #0
add r1, #0x3e
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #4]
lsl r0, r7
ldrb r1, [r1]
@@ -21588,25 +21588,25 @@ _022440D0:
add r0, r5, #0
mov r1, #0xc
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp]
mov r2, #0
strb r0, [r1, #0x1f]
add r0, r5, #0
mov r1, #7
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp]
str r0, [r1, #0xc]
mov r1, #0
add r0, r5, #0
add r2, r1, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp]
mov r2, #0
str r0, [r1, #0x10]
add r0, r5, #0
mov r1, #0xae
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp]
mov r4, #0
str r0, [r1, #0x14]
@@ -21616,7 +21616,7 @@ _0224413C:
add r0, r5, #0
add r1, #0xd
add r2, r6, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp]
add r1, r1, r4
add r4, r4, #1
@@ -21626,14 +21626,14 @@ _0224413C:
add r0, r5, #0
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp]
mov r2, #0
add r1, #0x20
strb r0, [r1]
add r0, r5, #0
mov r1, #9
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp]
ldr r2, [sp]
add r1, #0x21
@@ -21642,7 +21642,7 @@ _0224413C:
add r0, r5, #0
mov r1, #0x74
str r2, [sp]
- bl GetMonDataEncrypted
+ bl GetMonData
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -21673,7 +21673,7 @@ _022441B8:
add r1, #0x2a
ldrb r1, [r1]
add r0, r7, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0
add r0, r5, #0
bl MOD06_0224406C
@@ -21909,7 +21909,7 @@ MOD06_02244388: ; 0x02244388
lsr r1, r1, #0x15
mov r2, #0x32
and r3, r4
- bl FUN_02066EA4
+ bl CreateMonWithFixedIVs
ldrh r0, [r6]
add r2, sp, #8
add r2, #1
@@ -21919,11 +21919,11 @@ MOD06_02244388: ; 0x02244388
strb r1, [r0, #1]
add r0, r5, #0
mov r1, #0x70
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0
mov r1, #6
add r2, r6, #2
- bl SetMonDataEncrypted
+ bl SetMonData
mov r4, #0
str r6, [sp, #4]
add r7, r4, #0
@@ -21937,7 +21937,7 @@ _022443D4:
add r1, r4, #0
add r0, r5, #0
add r1, #0x36
- bl SetMonDataEncrypted
+ bl SetMonData
ldrb r0, [r6, #0x1e]
add r2, sp, #8
add r2, #1
@@ -21950,19 +21950,19 @@ _022443D4:
add r1, r4, #0
add r0, r5, #0
add r1, #0x3e
- bl SetMonDataEncrypted
+ bl SetMonData
add r1, r4, #0
add r0, r5, #0
add r1, #0x42
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #8
strb r0, [r1]
add r1, r4, #0
add r0, r5, #0
add r1, #0x3a
add r2, sp, #8
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #4]
add r4, r4, #1
add r0, r0, #2
@@ -21975,7 +21975,7 @@ _022443D4:
str r0, [sp, #0xc]
add r0, r5, #0
add r2, sp, #0xc
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #8
ldrb r1, [r6, #0x18]
add r0, sp, #8
@@ -21983,7 +21983,7 @@ _022443D4:
strb r1, [r0, #1]
add r0, r5, #0
mov r1, #0xd
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #8
ldrb r1, [r6, #0x19]
add r0, sp, #8
@@ -21991,7 +21991,7 @@ _022443D4:
strb r1, [r0, #1]
add r0, r5, #0
mov r1, #0xe
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #8
ldrb r1, [r6, #0x1a]
add r0, sp, #8
@@ -21999,7 +21999,7 @@ _022443D4:
strb r1, [r0, #1]
add r0, r5, #0
mov r1, #0xf
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #8
ldrb r1, [r6, #0x1b]
add r0, sp, #8
@@ -22007,7 +22007,7 @@ _022443D4:
strb r1, [r0, #1]
add r0, r5, #0
mov r1, #0x10
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #8
ldrb r1, [r6, #0x1c]
add r0, sp, #8
@@ -22015,7 +22015,7 @@ _022443D4:
strb r1, [r0, #1]
add r0, r5, #0
mov r1, #0x11
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, sp, #8
ldrb r1, [r6, #0x1d]
add r0, sp, #8
@@ -22023,17 +22023,17 @@ _022443D4:
strb r1, [r0, #1]
add r0, r5, #0
mov r1, #0x12
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, r6, #0
add r0, r5, #0
mov r1, #0xa
add r2, #0x20
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, r6, #0
add r0, r5, #0
mov r1, #9
add r2, #0x21
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [r6, #0x14]
lsl r0, r0, #1
lsr r0, r0, #0x1f
@@ -22052,7 +22052,7 @@ _022443D4:
add r0, r5, #0
mov r1, #0x76
add r2, r7, #0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r7, #0
bl FUN_02021A20
add r0, r4, #0
@@ -22063,15 +22063,15 @@ _022444FC:
add r0, r5, #0
mov r1, #0x74
add r2, #0x22
- bl SetMonDataEncrypted
+ bl SetMonData
_02244508:
add r6, #0x1f
add r0, r5, #0
mov r1, #0xc
add r2, r6, #0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -22151,28 +22151,28 @@ _022445A6:
add r1, #0x2a
ldrb r1, [r1]
ldr r0, [sp, #4]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r4, #0
bl FUN_02069B88
add r0, r4, #0
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0x32
bls _022445E8
add r0, r4, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x32
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
str r0, [sp, #8]
add r0, r4, #0
mov r1, #8
add r2, sp, #8
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r4, #0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
_022445E8:
add r0, r7, #0
add r1, r4, #0
@@ -22345,10 +22345,10 @@ _0224471C:
add r1, #0x2a
ldrb r1, [r1]
add r0, r7, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x21
lsl r1, r1, #6
strh r0, [r5, r1]
@@ -22587,7 +22587,7 @@ _022448EC:
beq _0224491A
ldr r0, [sp]
add r1, r7, #0
- bl FUN_02068AAC
+ bl CalcShininessByOtIdAndPersonality
cmp r0, #1
beq _022448EC
_0224491A:
@@ -23252,7 +23252,7 @@ _02244DF4:
mov r2, #2
b _02244E10
_02244DF8:
- bl rand_LC
+ bl LCRandom
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
@@ -23611,7 +23611,7 @@ _02245098:
add r2, sp, #0x24
add r3, sp, #0x28
bl MOD06_0224CDB8
- bl rand_LC
+ bl LCRandom
ldr r1, _02245110 ; =0x00001556
bl _s32_div_f
lsl r0, r0, #0x10
@@ -23644,7 +23644,7 @@ MOD06_02245114: ; 0x02245114
add r7, r0, #0
mov r4, #0
_02245132:
- bl rand_LC
+ bl LCRandom
ldr r1, _0224518C ; =0x0000071D
bl _s32_div_f
lsl r0, r0, #0x10
@@ -25503,7 +25503,7 @@ MOD06_02245EC0: ; 0x02245EC0
add r1, sp, #0x10
bl FUN_02020064
mov r0, #0
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
add r0, r4, #0
bl FUN_02020088
@@ -25715,7 +25715,7 @@ MOD06_02246034: ; 0x02246034
lsl r0, r3, #0x11
str r0, [r4, #0x4c]
mov r0, #0x2d
- bl FUN_0201B988
+ bl Cos_Wrap
ldr r2, [r4, #0x48]
asr r1, r2, #0xb
lsr r1, r1, #0x14
@@ -25729,7 +25729,7 @@ MOD06_02246034: ; 0x02246034
add r0, r1, r0
lsl r0, r0, #4
lsr r0, r0, #0x10
- bl FUN_0201B970
+ bl Sin_Wrap
ldr r2, [r4, #0x48]
asr r1, r2, #0xb
lsr r1, r1, #0x14
@@ -25757,7 +25757,7 @@ MOD06_02246034: ; 0x02246034
add r0, r1, r0
lsl r0, r0, #4
lsr r0, r0, #0x10
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
ldr r0, [r4, #0x68]
bl FUN_02020088
@@ -25801,7 +25801,7 @@ MOD06_02246034: ; 0x02246034
add r1, sp, #0
bl FUN_02020064
mov r0, #0
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
add r0, r4, #0
bl FUN_02020088
@@ -25851,7 +25851,7 @@ _022461C6:
str r0, [r5, #0x4c]
_022461D2:
mov r0, #0x2d
- bl FUN_0201B988
+ bl Cos_Wrap
ldr r2, [r5, #0x48]
asr r1, r2, #0xb
lsr r1, r1, #0x14
@@ -25865,7 +25865,7 @@ _022461D2:
add r0, r1, r0
lsl r0, r0, #4
lsr r0, r0, #0x10
- bl FUN_0201B970
+ bl Sin_Wrap
ldr r2, [r5, #0x48]
asr r1, r2, #0xb
lsr r1, r1, #0x14
@@ -26005,7 +26005,7 @@ _022462F4:
add r0, r1, r0
lsl r0, r0, #4
lsr r0, r0, #0x10
- bl FUN_0201B988
+ bl Cos_Wrap
ldr r2, [r5, #0x48]
asr r1, r2, #0xb
lsr r1, r1, #0x14
@@ -26014,7 +26014,7 @@ _022462F4:
mul r0, r1
str r0, [r5, #0x14]
mov r0, #0x80
- bl FUN_0201B970
+ bl Sin_Wrap
ldr r2, [r5, #0x48]
asr r1, r2, #0xb
lsr r1, r1, #0x14
@@ -26042,7 +26042,7 @@ _02246338:
lsl r0, r0, #4
lsr r0, r0, #0x10
str r1, [r5, #0x38]
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
add r0, r4, #0
bl FUN_02020088
@@ -26185,7 +26185,7 @@ _022463F6:
add r0, r1, r0
lsl r0, r0, #4
lsr r0, r0, #0x10
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
ldr r0, [r4, #0x68]
bl FUN_02020088
@@ -26235,7 +26235,7 @@ _022464C4:
str r0, [r5, #0x48]
_022464CE:
ldr r0, _022465AC ; =0x0000013B
- bl FUN_0201B988
+ bl Cos_Wrap
ldr r2, [r5, #0x48]
asr r1, r2, #0xb
lsr r1, r1, #0x14
@@ -26249,7 +26249,7 @@ _022464CE:
add r0, r1, r0
lsl r0, r0, #4
lsr r0, r0, #0x10
- bl FUN_0201B970
+ bl Sin_Wrap
ldr r2, [r5, #0x48]
asr r1, r2, #0xb
lsr r1, r1, #0x14
@@ -26314,7 +26314,7 @@ _02246560:
add r0, r1, r0
lsl r0, r0, #4
lsr r0, r0, #0x10
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
add r0, r4, #0
bl FUN_02020088
@@ -26833,7 +26833,7 @@ MOD06_0224690C: ; 0x0224690C
str r0, [r4]
ldr r0, [r4, #0x5c]
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
bl FUN_02005578
@@ -28322,7 +28322,7 @@ MOD06_0224743C: ; 0x0224743C
add r1, sp, #0x10
bl FUN_02020064
add r0, r7, #0
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
add r0, r4, #0
bl FUN_02020088
@@ -28745,7 +28745,7 @@ _022477A8:
mov r1, #0
add r0, r6, #0
add r2, r1, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp]
mov r0, #0
str r0, [sp, #4]
@@ -29398,7 +29398,7 @@ MOD06_02247C0C: ; 0x02247C0C
add r0, r1, r0
lsl r0, r0, #4
lsr r0, r0, #0x10
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
ldr r0, [r4, #0x58]
bl FUN_02020088
@@ -29431,7 +29431,7 @@ MOD06_02247CB4: ; 0x02247CB4
str r0, [r5, #0x4c]
_02247CD4:
ldr r0, _02247DB4 ; =0x0000013B
- bl FUN_0201B988
+ bl Cos_Wrap
ldr r2, [r5, #0x48]
asr r1, r2, #0xb
lsr r1, r1, #0x14
@@ -29445,7 +29445,7 @@ _02247CD4:
add r0, r1, r0
lsl r0, r0, #4
lsr r0, r0, #0x10
- bl FUN_0201B970
+ bl Sin_Wrap
ldr r2, [r5, #0x48]
asr r1, r2, #0xb
lsr r1, r1, #0x14
@@ -29509,7 +29509,7 @@ _02247D64:
add r0, r1, r0
lsl r0, r0, #4
lsr r0, r0, #0x10
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
add r0, r4, #0
bl FUN_02020088
@@ -29610,7 +29610,7 @@ MOD06_02247DC4: ; 0x02247DC4
lsl r0, r7, #0x11
str r0, [r4, #0x4c]
lsr r0, r6, #0xc
- bl FUN_0201B988
+ bl Cos_Wrap
ldr r2, [r4, #0x48]
asr r1, r2, #0xb
lsr r1, r1, #0x14
@@ -29624,7 +29624,7 @@ MOD06_02247DC4: ; 0x02247DC4
add r0, r1, r0
lsl r0, r0, #4
lsr r0, r0, #0x10
- bl FUN_0201B970
+ bl Sin_Wrap
ldr r2, [r4, #0x48]
asr r1, r2, #0xb
lsr r1, r1, #0x14
@@ -29652,7 +29652,7 @@ MOD06_02247DC4: ; 0x02247DC4
add r0, r1, r0
lsl r0, r0, #4
lsr r0, r0, #0x10
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
ldr r0, [r4, #0x58]
bl FUN_02020088
@@ -29701,7 +29701,7 @@ MOD06_02247DC4: ; 0x02247DC4
add r1, sp, #0
bl FUN_02020064
mov r0, #0
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
add r0, r4, #0
bl FUN_02020088
@@ -29746,7 +29746,7 @@ _02247F58:
str r0, [r5, #0x4c]
_02247F64:
ldr r0, _02248098 ; =0x0000013B
- bl FUN_0201B988
+ bl Cos_Wrap
ldr r2, [r5, #0x48]
asr r1, r2, #0xb
lsr r1, r1, #0x14
@@ -29760,7 +29760,7 @@ _02247F64:
add r0, r1, r0
lsl r0, r0, #4
lsr r0, r0, #0x10
- bl FUN_0201B970
+ bl Sin_Wrap
ldr r2, [r5, #0x48]
asr r1, r2, #0xb
lsr r1, r1, #0x14
@@ -29827,7 +29827,7 @@ _02247FFA:
add r0, r1, r0
lsl r0, r0, #4
lsr r0, r0, #0x10
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
add r0, r4, #0
bl FUN_02020088
@@ -29973,7 +29973,7 @@ _02248120:
add r0, r1, r0
lsl r0, r0, #4
lsr r0, r0, #0x10
- bl FUN_0201B988
+ bl Cos_Wrap
ldr r2, [r5, #0x48]
asr r1, r2, #0xb
lsr r1, r1, #0x14
@@ -29982,7 +29982,7 @@ _02248120:
mul r0, r1
str r0, [r5, #0x14]
mov r0, #0x80
- bl FUN_0201B970
+ bl Sin_Wrap
ldr r2, [r5, #0x48]
asr r1, r2, #0xb
lsr r1, r1, #0x14
@@ -30761,7 +30761,7 @@ MOD06_02248724: ; 0x02248724
ldr r0, [r1, #8]
str r1, [sp]
mov r1, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r6, r0, #0
ldr r0, [r5, #0xc]
bl FUN_0202A9B0
@@ -30769,7 +30769,7 @@ MOD06_02248724: ; 0x02248724
add r0, r6, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r0, #0
add r0, r7, #0
bl MOD06_02248810
@@ -30779,13 +30779,13 @@ MOD06_02248724: ; 0x02248724
add r0, r6, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r4, r0, #0x10
add r0, r6, #0
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r6, r0, #0x18
ldr r0, [sp]
@@ -30818,7 +30818,7 @@ _0224879E:
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
_022487AC:
- bl rand_LC
+ bl LCRandom
mov r1, #0x29
lsl r1, r1, #4
bl _s32_div_f
@@ -31014,11 +31014,11 @@ MOD06_0224891C: ; 0x0224891C
add r4, r3, #0
bl FUN_0206BB1C
add r1, r7, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xa0
mov r2, #0
add r7, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0
ldr r0, [r5, #0x10]
str r0, [sp]
@@ -31114,7 +31114,7 @@ MOD06_022489D4: ; 0x022489D4
add r0, r5, #0
mov r1, #0x76
add r2, r7, #0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r7, #0
bl FUN_02021A20
mov r1, #1
@@ -31123,66 +31123,66 @@ MOD06_022489D4: ; 0x022489D4
add r0, r5, #0
mov r1, #0x4d
add r2, sp, #0x10
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r5, #0
mov r1, #0x46
add r2, r4, #4
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, r4, #0
add r0, r5, #0
mov r1, #0x47
add r2, #8
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, r4, #0
add r0, r5, #0
mov r1, #0x48
add r2, #0xc
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, r4, #0
add r0, r5, #0
mov r1, #0x49
add r2, #0x10
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, r4, #0
add r0, r5, #0
mov r1, #0x4a
add r2, #0x14
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, r4, #0
add r0, r5, #0
mov r1, #0x4b
add r2, #0x18
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, r4, #0
add r0, r5, #0
mov r1, #0x13
add r2, #0x24
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, r4, #0
add r0, r5, #0
mov r1, #0x14
add r2, #0x28
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, r4, #0
add r0, r5, #0
mov r1, #0x15
add r2, #0x2c
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, r4, #0
add r0, r5, #0
mov r1, #0x16
add r2, #0x30
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, r4, #0
add r0, r5, #0
mov r1, #0x17
add r2, #0x34
- bl SetMonDataEncrypted
+ bl SetMonData
add r2, r4, #0
add r0, r5, #0
mov r1, #6
add r2, #0x3c
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0x28]
add r1, r6, #4
bl MOD06_022489AC
@@ -31190,19 +31190,19 @@ MOD06_022489D4: ; 0x022489D4
add r0, r5, #0
mov r1, #0x90
add r2, r6, #0
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r6, #0
bl FUN_02021A20
add r2, r4, #0
add r0, r5, #0
mov r1, #0x9c
add r2, #0x40
- bl SetMonDataEncrypted
+ bl SetMonData
add r4, #0x48
add r0, r5, #0
mov r1, #0xc
add r2, r4, #0
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0x2c]
bl FUN_02034824
add r3, r0, #0
@@ -31213,9 +31213,9 @@ MOD06_022489D4: ; 0x022489D4
mov r2, #1
bl FUN_0208089C
add r0, r5, #0
- bl UpdateMonLevelAndRecalcStats
+ bl CalcMonLevelAndStats
add r0, r5, #0
- bl FUN_02068A80
+ bl MonIsShiny
cmp r0, #0
beq _02248B08
bl ErrorHandling
@@ -31661,7 +31661,7 @@ _02248E32:
ldrb r0, [r0]
pop {r3, r4, r5, pc}
_02248E3E:
- bl rand_MT
+ bl MTRandom
add r1, r4, #0
bl _u32_div_f
add r0, sp, #0
@@ -32194,7 +32194,7 @@ MOD06_022491FC: ; 0x022491FC
mov r0, #0
pop {r4, pc}
_0224921E:
- bl rand_MT
+ bl MTRandom
add r1, r4, #0
bl _u32_div_f
add r0, sp, #0
@@ -39651,7 +39651,7 @@ _0224CBE0:
_0224CBF0:
mov r7, #0
_0224CBF2:
- bl rand_LC
+ bl LCRandom
lsl r0, r0, #4
lsr r5, r0, #0x10
cmp r5, #0x10
@@ -39709,7 +39709,7 @@ MOD06_0224CC60: ; 0x0224CC60
push {r4, r5, r6, r7, lr}
sub sp, #0x4c
add r5, r0, #0
- bl rand_LC
+ bl LCRandom
lsl r0, r0, #1
lsr r4, r0, #0x10
cmp r4, #2
diff --git a/arm9/modules/07/asm/module_07.s b/arm9/modules/07/asm/module_07.s
index cb716405..8b0751c8 100644
--- a/arm9/modules/07/asm/module_07.s
+++ b/arm9/modules/07/asm/module_07.s
@@ -733,7 +733,7 @@ _02212450:
_02212454:
sub r0, r0, #6
ldrsb r4, [r5, r0]
- bl rand_LC
+ bl LCRandom
add r1, r4, #0
bl _s32_div_f
lsr r0, r4, #0x1f
@@ -744,7 +744,7 @@ _02212454:
asr r6, r0, #0x10
ldr r0, _02212580 ; =0x00000B7D
ldrsb r4, [r5, r0]
- bl rand_LC
+ bl LCRandom
add r1, r4, #0
bl _s32_div_f
lsr r0, r4, #0x1f
@@ -2305,7 +2305,7 @@ MOD07_02213104: ; 0x02213104
str r1, [sp]
str r2, [sp, #4]
add r7, r3, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #8]
@@ -2329,17 +2329,17 @@ _0221312A:
bls _022131B0
ldr r0, [sp]
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #5
mov r2, #0
add r7, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022131B0
add r0, r7, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _022131B0
add r0, r7, #0
@@ -3643,7 +3643,7 @@ MOD07_02213BEC: ; 0x02213BEC
add r0, r1, #0
str r1, [sp]
add r5, r2, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #8]
@@ -3672,7 +3672,7 @@ _02213C0C:
_02213C2E:
ldr r0, [sp]
add r1, r6, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x18
add r2, r6, #0
mul r2, r1
@@ -3686,7 +3686,7 @@ _02213C2E:
add r0, r4, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x86
lsl r1, r1, #2
strh r0, [r7, r1]
@@ -3702,52 +3702,52 @@ _02213C2E:
add r5, r0, r1
add r0, r4, #0
mov r1, #0x4c
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02213D18 ; =0x00000223
mov r2, #0
strb r0, [r5, r1]
add r0, r4, #0
mov r1, #0xa2
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02213D1C ; =0x0000021A
mov r2, #0
strh r0, [r5, r1]
add r0, r4, #0
mov r1, #0xa3
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x87
lsl r1, r1, #2
strh r0, [r5, r1]
add r0, r4, #0
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x22
lsl r1, r1, #4
strb r0, [r5, r1]
add r0, r4, #0
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02213D20 ; =0x0000021E
mov r2, #0
strh r0, [r5, r1]
add r0, r4, #0
mov r1, #0xa1
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x89
lsl r1, r1, #2
strb r0, [r5, r1]
add r0, r4, #0
mov r1, #0x70
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02213D24 ; =0x00000225
mov r2, #0
strb r0, [r5, r1]
add r0, r4, #0
mov r1, #0xaf
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #1
bne _02213CE8
mov r1, #0
@@ -3758,7 +3758,7 @@ _02213CEA:
ldr r0, _02213D28 ; =0x00000222
strb r1, [r7, r0]
add r0, r4, #0
- bl GetMonGenderEncrypted
+ bl GetMonGender
ldr r1, _02213D2C ; =0x00000221
strb r0, [r5, r1]
add r0, r4, #0
@@ -4488,13 +4488,13 @@ MOD07_0221428C: ; 0x0221428C
bhs _022142B4
ldr r0, [r0, #4]
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [sp, #0x18]
b _022142BE
_022142B4:
ldr r0, [r0, #0xc]
sub r1, r4, #3
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [sp, #0x18]
_022142BE:
add r1, r4, #0
diff --git a/arm9/modules/08/asm/module_08.s b/arm9/modules/08/asm/module_08.s
index 6c672cb0..b61f4de3 100644
--- a/arm9/modules/08/asm/module_08.s
+++ b/arm9/modules/08/asm/module_08.s
@@ -1,49983 +1,49983 @@
- .include "asm/macros.inc"
- .include "global.inc"
- .section .text
- .balign 4, 0
-
- thumb_func_start MOD08_02211E60
-MOD08_02211E60: ; 0x02211E60
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- beq _02211E70
- lsl r1, r0, #2
- ldr r0, _02211E74 ; =0x0222A9E4
- ldr r0, [r0, r1]
- bx lr
-_02211E70:
- ldr r0, _02211E78 ; =0x0222A780
- bx lr
- .align 2, 0
-_02211E74: .word 0x0222A9E4
-_02211E78: .word 0x0222A780
-
- thumb_func_start MOD08_02211E7C
-MOD08_02211E7C: ; 0x02211E7C
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r0, r1, #0
- add r4, r3, #0
- bl MOD08_02211E60
- ldr r3, [sp, #0x10]
- add r1, r0, #0
- mov r0, #0x20
- lsl r3, r3, #0x14
- str r0, [sp]
- add r0, r5, #0
- add r2, r4, #0
- lsr r3, r3, #0x10
- bl FUN_02003054
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02211EA0
-MOD08_02211EA0: ; 0x02211EA0
- add r1, r0, #0
- add r1, #0x8d
- ldrb r1, [r1]
- cmp r1, #0
- bne _02211EB2
- ldr r1, _02211EC0 ; =MOD08_02211EC4
- add r0, #0xbc
- str r1, [r0]
- bx lr
-_02211EB2:
- add r1, r0, #0
- add r1, #0x8d
- ldrb r1, [r1]
- add r0, #0x8d
- sub r1, r1, #1
- strb r1, [r0]
- bx lr
- .align 2, 0
-_02211EC0: .word MOD08_02211EC4
-
- thumb_func_start MOD08_02211EC4
-MOD08_02211EC4: ; 0x02211EC4
- push {r4, lr}
- add r4, r0, #0
-_02211EC8:
- ldr r0, [r4, #0x18]
- ldr r0, [r0]
- bl MOD08_0221533C
- add r1, r0, #0
- add r0, r4, #0
- blx r1
- add r0, r4, #0
- add r0, #0x8d
- ldrb r0, [r0]
- cmp r0, #0
- bne _02211EE6
- ldr r0, [r4, #0x10]
- cmp r0, #1
- beq _02211EC8
-_02211EE6:
- pop {r4, pc}
-
- thumb_func_start MOD08_02211EE8
-MOD08_02211EE8: ; 0x02211EE8
- push {r3, r4, r5, lr}
- add r5, r2, #0
- add r4, r3, #0
- cmp r0, #1
- beq _02211EF8
- cmp r0, #2
- beq _02211F06
- b _02211F14
-_02211EF8:
- add r0, r1, #0
- add r0, #0x8e
- ldrh r0, [r0]
- add r1, #0x8e
- add r0, r0, #1
- strh r0, [r1]
- b _02211F18
-_02211F06:
- add r0, r1, #0
- add r0, #0x90
- ldrh r0, [r0]
- add r1, #0x90
- add r0, r0, #1
- strh r0, [r1]
- b _02211F18
-_02211F14:
- bl ErrorHandling
-_02211F18:
- ldr r2, [sp, #0x10]
- add r0, r5, #0
- add r1, r4, #0
- bl FUN_0200CA44
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02211F24
-MOD08_02211F24: ; 0x02211F24
- push {r4, lr}
- add r4, r2, #0
- cmp r0, #1
- beq _02211F32
- cmp r0, #2
- beq _02211F40
- b _02211F4E
-_02211F32:
- add r0, r1, #0
- add r0, #0x8e
- ldrh r0, [r0]
- add r1, #0x8e
- sub r0, r0, #1
- strh r0, [r1]
- b _02211F52
-_02211F40:
- add r0, r1, #0
- add r0, #0x90
- ldrh r0, [r0]
- add r1, #0x90
- sub r0, r0, #1
- strh r0, [r1]
- b _02211F52
-_02211F4E:
- bl ErrorHandling
-_02211F52:
- add r0, r4, #0
- bl FUN_0200CAB4
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02211F5C
-MOD08_02211F5C: ; 0x02211F5C
- push {r3, r4, r5, lr}
- mov r1, #0x69
- lsl r1, r1, #2
- add r5, r0, #0
- bl AllocFromHeap
- add r4, r0, #0
- bne _02211F78
- cmp r4, #0
- bne _02211F74
- bl ErrorHandling
-_02211F74:
- mov r0, #0
- pop {r3, r4, r5, pc}
-_02211F78:
- mov r2, #0x69
- mov r1, #0
- lsl r2, r2, #2
- bl memset
- mov r1, #0x47
- str r5, [r4]
- mov r0, #0
- str r0, [r4, #8]
- ldr r0, [r4]
- lsl r1, r1, #2
- bl AllocFromHeap
- add r1, r4, #0
- add r1, #0xc0
- str r0, [r1]
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- cmp r0, #0
- bne _02211FAC
- bne _02211FA8
- bl ErrorHandling
-_02211FA8:
- mov r0, #0
- pop {r3, r4, r5, pc}
-_02211FAC:
- mov r2, #0x47
- mov r1, #0
- lsl r2, r2, #2
- bl memset
- mov r1, #0
- str r1, [r4, #0xc]
- str r1, [r4, #0x18]
- add r2, r4, #0
- add r3, r1, #0
-_02211FC0:
- add r0, r2, #0
- add r0, #0xcc
- add r1, r1, #1
- add r2, r2, #4
- str r3, [r0]
- cmp r1, #4
- blt _02211FC0
- mov r0, #0x59
- add r2, r4, #0
- mov r1, #0
- lsl r0, r0, #2
-_02211FD6:
- add r3, r3, #1
- str r1, [r2, r0]
- add r2, r2, #4
- cmp r3, #5
- blt _02211FD6
- mov r0, #0x5e
- lsl r0, r0, #2
- str r1, [r4, r0]
- mov r0, #1
- str r0, [r4, #0xc]
- add r0, r4, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02211FF0
-MOD08_02211FF0: ; 0x02211FF0
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- cmp r5, #0
- bne _02211FFE
- bl ErrorHandling
-_02211FFE:
- str r4, [r5, #8]
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02212004
-MOD08_02212004: ; 0x02212004
- push {r4, lr}
- add r4, r0, #0
- bne _0221200E
- bl ErrorHandling
-_0221200E:
- ldr r0, [r4, #8]
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02212014
-MOD08_02212014: ; 0x02212014
- push {r4, lr}
- add r4, r0, #0
- bne _0221201E
- bl ErrorHandling
-_0221201E:
- ldr r0, [r4]
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02212024
-MOD08_02212024: ; 0x02212024
- push {r4, lr}
- add r4, r0, #0
- bl MOD08_022123CC
- cmp r0, #0
- bne _02212034
- mov r0, #0
- pop {r4, pc}
-_02212034:
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- bl FreeToHeap
- add r0, r4, #0
- bl FreeToHeap
- mov r0, #1
- pop {r4, pc}
-
- thumb_func_start MOD08_02212048
-MOD08_02212048: ; 0x02212048
- push {r4, r5, r6, r7, lr}
- sub sp, #0x3c
- add r4, r0, #0
- add r5, r1, #0
- str r2, [sp]
- str r3, [sp, #4]
- bl MOD08_0221268C
- add r0, r4, #0
- bl MOD08_022123CC
- cmp r0, #0
- bne _02212068
- add sp, #0x3c
- mov r0, #0
- pop {r4, r5, r6, r7, pc}
-_02212068:
- mov r3, #0
- mov r2, #1
- add r1, r3, #0
-_0221206E:
- add r0, r4, r3
- add r0, #0x6c
- strb r2, [r0]
- add r0, r4, r3
- add r0, #0x7c
- add r3, r3, #1
- strb r1, [r0]
- cmp r3, #0x10
- blt _0221206E
- add r3, r4, #0
- mov r0, #0
-_02212084:
- add r2, r3, #0
- add r2, #0x94
- add r1, r1, #1
- add r3, r3, #4
- str r0, [r2]
- cmp r1, #0xa
- blt _02212084
- add r3, r4, #0
- mov r2, #0
-_02212096:
- str r2, [r3, #0x30]
- add r1, r3, #0
- str r2, [r3, #0x28]
- add r1, #0x2c
- strb r2, [r1]
- add r1, r3, #0
- add r1, #0x2d
- add r0, r0, #1
- add r3, #0xc
- strb r2, [r1]
- cmp r0, #3
- blt _02212096
- add r0, r4, #0
- add r0, #0xc0
- ldrb r1, [r5]
- ldr r0, [r0]
- strb r1, [r0]
- add r0, r4, #0
- add r0, #0xc0
- ldrb r1, [r5, #1]
- ldr r0, [r0]
- strb r1, [r0, #1]
- add r0, r4, #0
- add r0, #0xc0
- ldrh r1, [r5, #2]
- ldr r0, [r0]
- strh r1, [r0, #2]
- add r0, r4, #0
- add r0, #0xc0
- ldr r1, [r5, #4]
- ldr r0, [r0]
- str r1, [r0, #4]
- add r0, r4, #0
- add r0, #0xc0
- ldrh r1, [r5, #8]
- ldr r0, [r0]
- strh r1, [r0, #8]
- add r0, r4, #0
- add r0, #0xc0
- ldrh r1, [r5, #0xc]
- ldr r0, [r0]
- strh r1, [r0, #0xa]
- add r0, r4, #0
- add r0, #0xc0
- ldr r1, [r5, #0x10]
- ldr r0, [r0]
- str r1, [r0, #0xc]
- add r0, r4, #0
- add r0, #0xc0
- ldrh r1, [r5, #0xa]
- ldr r0, [r0]
- strh r1, [r0, #0x10]
- add r0, r4, #0
- add r0, #0xc0
- ldr r1, [r5, #0x54]
- ldr r0, [r0]
- strh r1, [r0, #0x12]
- add r0, r4, #0
- add r0, #0xc0
- ldrh r1, [r5, #0x14]
- ldr r0, [r0]
- strh r1, [r0, #0x14]
- add r0, r4, #0
- add r0, #0xc0
- ldrh r1, [r5, #0x16]
- ldr r0, [r0]
- strh r1, [r0, #0x16]
- ldrh r0, [r5, #0xe]
- lsl r0, r0, #0x1e
- lsr r2, r0, #0x1f
- add r0, r4, #0
- add r0, #0xc0
- ldr r1, [r0]
- mov r0, #0x46
- lsl r0, r0, #2
- str r2, [r1, r0]
- ldr r0, [sp, #4]
- ldr r1, [r0]
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r0, #0xac
- str r1, [r0]
- ldr r0, [sp, #4]
- ldr r0, [r0]
- cmp r0, #0
- bne _02212148
- bl ErrorHandling
-_02212148:
- ldr r0, [sp, #4]
- mov r5, #0
- ldr r1, [r0, #4]
- add r0, r4, #0
- add r0, #0xc4
- str r1, [r0]
- ldr r0, [sp, #4]
- ldr r2, [sp, #4]
- ldr r1, [r0, #8]
- add r0, r4, #0
- add r0, #0xc8
- str r1, [r0]
- ldr r0, [sp, #4]
- add r3, r5, #0
- ldr r1, [r0, #0x30]
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r7, r5, #0
- add r0, #0xd4
- str r1, [r0]
- add r0, r2, #0
- mov ip, r0
-_02212176:
- add r1, r4, #0
- add r1, #0xc0
- ldr r1, [r1]
- ldr r0, [r2, #0xc]
- add r1, r1, r3
- add r1, #0xb0
- str r0, [r1]
- ldr r0, [sp, #4]
- add r1, r0, r5
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- ldrb r6, [r1, #0x1c]
- add r0, r0, r5
- add r0, #0xc0
- strb r6, [r0]
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- ldr r6, [r2, #0x20]
- add r0, r0, r3
- add r0, #0xc4
- str r6, [r0]
- mov r0, ip
- ldrh r6, [r0, #0x34]
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r0, r0, r7
- add r0, #0xd8
- strh r6, [r0]
- add r0, r1, #0
- add r0, #0x3c
- ldrb r6, [r0]
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r7, r7, #2
- add r0, r0, r5
- add r0, #0xe0
- strb r6, [r0]
- add r0, r1, #0
- add r0, #0x40
- ldrb r6, [r0]
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r1, #0x44
- add r0, r0, r5
- add r0, #0xe4
- strb r6, [r0]
- ldrb r0, [r1]
- add r1, r4, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r1, r1, r5
- add r1, #0xe8
- strb r0, [r1]
- add r1, r4, #0
- add r1, #0xc0
- ldr r1, [r1]
- ldr r0, [r2, #0x48]
- add r1, r1, r3
- add r1, #0xec
- str r0, [r1]
- add r1, r4, #0
- add r1, #0xc0
- ldr r1, [r1]
- ldr r0, [r2, #0x58]
- add r1, r1, r3
- add r1, #0xfc
- str r0, [r1]
- mov r0, ip
- add r0, r0, #2
- add r5, r5, #1
- add r2, r2, #4
- add r3, r3, #4
- mov ip, r0
- cmp r5, #4
- blt _02212176
- ldr r5, [sp, #4]
- mov r2, #0x61
- lsl r2, r2, #2
- add r5, #0x6c
- add r3, r4, r2
- ldmia r5!, {r0, r1}
- stmia r3!, {r0, r1}
- ldmia r5!, {r0, r1}
- stmia r3!, {r0, r1}
- ldmia r5!, {r0, r1}
- stmia r3!, {r0, r1}
- ldr r0, [sp, #4]
- add r0, #0x84
- ldr r3, [r0]
- add r0, r4, #0
- add r0, #0xc0
- ldr r1, [r0]
- add r0, r2, #0
- sub r0, #0x78
- str r3, [r1, r0]
- ldr r0, [sp, #4]
- add r0, #0x8c
- ldr r3, [r0]
- add r0, r4, #0
- add r0, #0xc0
- ldr r1, [r0]
- add r0, r2, #0
- sub r0, #0x70
- str r3, [r1, r0]
- ldr r0, [sp, #4]
- add r0, #0x88
- ldr r3, [r0]
- add r0, r4, #0
- add r0, #0xc0
- ldr r1, [r0]
- add r0, r2, #0
- sub r0, #0x74
- str r3, [r1, r0]
- ldr r0, [sp]
- sub r2, #0x62
- cmp r0, r2
- bne _02212296
- ldr r5, _0221236C ; =0x0222AB18
- add r3, sp, #8
- mov r2, #6
-_02212270:
- ldmia r5!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _02212270
- ldr r0, [r5]
- str r0, [r3]
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- ldrh r0, [r0, #0x12]
- cmp r0, #0xc
- blo _0221228E
- mov r0, #0xa1
- str r0, [sp]
- b _02212296
-_0221228E:
- lsl r1, r0, #2
- add r0, sp, #8
- ldr r0, [r0, r1]
- str r0, [sp]
-_02212296:
- ldr r0, [sp]
- cmp r0, #0
- beq _022122A2
- ldr r1, _02212370 ; =0x000001D3
- cmp r0, r1
- ble _022122A6
-_022122A2:
- mov r0, #1
- str r0, [sp]
-_022122A6:
- ldr r0, [sp, #4]
- ldr r0, [r0, #0x68]
- str r0, [r4, #4]
- ldr r1, [sp]
- ldr r2, [r4]
- bl AllocAndReadWholeNarcMemberByIdPair
- str r0, [r4, #0x14]
- cmp r0, #0
- bne _022122C6
- bne _022122C0
- bl ErrorHandling
-_022122C0:
- add sp, #0x3c
- mov r0, #0
- pop {r4, r5, r6, r7, pc}
-_022122C6:
- str r0, [r4, #0x18]
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- mov r1, #0
- bl FUN_02018884
- mov r1, #0x1a
- lsl r1, r1, #4
- strb r0, [r4, r1]
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- mov r1, #1
- bl FUN_02018884
- ldr r1, _02212374 ; =0x000001A1
- strb r0, [r4, r1]
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- mov r1, #2
- bl FUN_02018884
- ldr r1, _02212378 ; =0x000001A2
- strb r0, [r4, r1]
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- mov r1, #3
- bl FUN_02018884
- ldr r1, _0221237C ; =0x000001A3
- mov r3, #0
- strb r0, [r4, r1]
- add r2, r4, #0
- add r1, r3, #0
-_02212310:
- add r0, r2, #0
- add r0, #0xdc
- add r3, r3, #1
- add r2, r2, #4
- str r1, [r0]
- cmp r3, #0xa
- blt _02212310
- mov r2, #0x4f
- lsl r2, r2, #2
- add r3, r2, #0
- add r5, r4, #0
- mov r0, #0
- add r3, #0x14
-_0221232A:
- str r0, [r5, r2]
- str r0, [r5, r3]
- add r1, r1, #1
- add r5, r5, #4
- cmp r1, #5
- blt _0221232A
- mov r1, #6
- lsl r1, r1, #6
- str r0, [r4, r1]
- add r1, r4, #0
- ldr r2, _02212380 ; =MOD08_02211EC4
- add r1, #0xbc
- str r2, [r1]
- add r1, r4, #0
- add r1, #0x8d
- strb r0, [r1]
- add r0, r4, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _0221235C
- mov r0, #0x67
- mov r1, #7
- lsl r0, r0, #2
- b _02212362
-_0221235C:
- mov r1, #0xff
- add r0, r1, #0
- add r0, #0x9d
-_02212362:
- str r1, [r4, r0]
- mov r0, #1
- str r0, [r4, #0x10]
- add sp, #0x3c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0221236C: .word 0x0222AB18
-_02212370: .word 0x000001D3
-_02212374: .word 0x000001A1
-_02212378: .word 0x000001A2
-_0221237C: .word 0x000001A3
-_02212380: .word MOD08_02211EC4
-
- thumb_func_start MOD08_02212384
-MOD08_02212384: ; 0x02212384
- push {r4, lr}
- add r4, r0, #0
- bl MOD08_022123CC
- cmp r0, #0
- bne _02212394
- mov r0, #0
- pop {r4, pc}
-_02212394:
- add r0, r4, #0
- add r4, #0xbc
- ldr r1, [r4]
- blx r1
- mov r0, #1
- pop {r4, pc}
-
- thumb_func_start MOD08_022123A0
-MOD08_022123A0: ; 0x022123A0
- ldr r0, [r0, #0x10]
- cmp r0, #1
- bne _022123AA
- mov r0, #1
- bx lr
-_022123AA:
- mov r0, #0
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_022123B0
-MOD08_022123B0: ; 0x022123B0
- push {r3, lr}
- ldr r0, [r0, #0x14]
- cmp r0, #0
- bne _022123C2
- bne _022123BE
- bl ErrorHandling
-_022123BE:
- mov r0, #0
- pop {r3, pc}
-_022123C2:
- bl FreeToHeap
- mov r0, #1
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022123CC
-MOD08_022123CC: ; 0x022123CC
- cmp r0, #0
- bne _022123D4
- mov r0, #0
- bx lr
-_022123D4:
- ldr r0, [r0, #0xc]
- cmp r0, #1
- bne _022123DE
- mov r0, #1
- bx lr
-_022123DE:
- mov r0, #0
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_022123E4
-MOD08_022123E4: ; 0x022123E4
- push {r3, r4, r5, r6, lr}
- sub sp, #4
- add r6, r0, #0
- add r5, r1, #0
- add r4, r2, #0
- str r3, [sp]
- mov r0, #1
- add r1, r6, #0
- add r2, r5, #0
- add r3, r4, #0
- bl MOD08_02211EE8
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-
- thumb_func_start MOD08_02212400
-MOD08_02212400: ; 0x02212400
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, _02212418 ; =0x0000044C
- add r4, r1, #0
- add r3, r2, #0
- str r0, [sp]
- mov r0, #1
- add r1, r5, #0
- add r2, r4, #0
- bl MOD08_02211EE8
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02212418: .word 0x0000044C
-
- thumb_func_start MOD08_0221241C
-MOD08_0221241C: ; 0x0221241C
- push {r3, r4, r5, r6, lr}
- sub sp, #4
- add r6, r0, #0
- add r5, r1, #0
- add r4, r2, #0
- str r3, [sp]
- mov r0, #2
- add r1, r6, #0
- add r2, r5, #0
- add r3, r4, #0
- bl MOD08_02211EE8
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-
- thumb_func_start MOD08_02212438
-MOD08_02212438: ; 0x02212438
- add r3, r0, #0
- add r2, r1, #0
- add r1, r3, #0
- ldr r3, _02212444 ; =MOD08_02211F24
- mov r0, #1
- bx r3
- .align 2, 0
-_02212444: .word MOD08_02211F24
-
- thumb_func_start MOD08_02212448
-MOD08_02212448: ; 0x02212448
- add r3, r0, #0
- add r2, r1, #0
- add r1, r3, #0
- ldr r3, _02212454 ; =MOD08_02211F24
- mov r0, #2
- bx r3
- .align 2, 0
-_02212454: .word MOD08_02211F24
-
- thumb_func_start MOD08_02212458
-MOD08_02212458: ; 0x02212458
- add r0, #0xc0
- ldr r0, [r0]
- ldrh r0, [r0, #0x14]
- bx lr
-
- thumb_func_start MOD08_02212460
-MOD08_02212460: ; 0x02212460
- add r0, #0xc0
- ldr r0, [r0]
- ldrh r0, [r0, #0x16]
- bx lr
-
- thumb_func_start MOD08_02212468
-MOD08_02212468: ; 0x02212468
- add r0, #0xc0
- ldr r1, [r0]
- ldr r0, [r1, #0x18]
- lsl r0, r0, #2
- add r0, r1, r0
- ldr r0, [r0, #0x1c]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02212478
-MOD08_02212478: ; 0x02212478
- add r0, #0xc0
- ldr r2, [r0]
- lsl r0, r1, #2
- add r0, r2, r0
- ldr r0, [r0, #0x1c]
- bx lr
-
- thumb_func_start MOD08_02212484
-MOD08_02212484: ; 0x02212484
- add r0, #0xc0
- ldr r2, [r0]
- lsl r0, r1, #2
- add r0, r2, r0
- ldr r0, [r0, #0x5c]
- bx lr
-
- thumb_func_start MOD08_02212490
-MOD08_02212490: ; 0x02212490
- add r0, #0xc4
- ldr r0, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02212498
-MOD08_02212498: ; 0x02212498
- push {r3, r4, r5, lr}
- add r5, r1, #0
- add r4, r0, #0
- cmp r5, #0xa
- blt _022124A6
- bl ErrorHandling
-_022124A6:
- lsl r0, r5, #2
- add r0, r4, r0
- add r0, #0x94
- ldr r0, [r0]
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_022124B0
-MOD08_022124B0: ; 0x022124B0
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- cmp r4, #0xa
- blt _022124BE
- bl ErrorHandling
-_022124BE:
- cmp r5, #0
- bne _022124C6
- bl ErrorHandling
-_022124C6:
- add r5, #0xdc
- lsl r4, r4, #2
- ldr r0, [r5, r4]
- cmp r0, #0
- bne _022124D4
- bl ErrorHandling
-_022124D4:
- ldr r0, [r5, r4]
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_022124D8
-MOD08_022124D8: ; 0x022124D8
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- cmp r4, #5
- blt _022124E6
- bl ErrorHandling
-_022124E6:
- cmp r5, #0
- bne _022124EE
- bl ErrorHandling
-_022124EE:
- mov r0, #0x4f
- lsl r0, r0, #2
- add r5, r5, r0
- lsl r4, r4, #2
- ldr r0, [r5, r4]
- cmp r0, #0
- bne _02212500
- bl ErrorHandling
-_02212500:
- ldr r0, [r5, r4]
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02212504
-MOD08_02212504: ; 0x02212504
- push {r4, lr}
- add r4, r0, #0
- bne _0221250E
- bl ErrorHandling
-_0221250E:
- mov r0, #0x4e
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02212518
-MOD08_02212518: ; 0x02212518
- add r0, #0xcc
- ldr r0, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02212520
-MOD08_02212520: ; 0x02212520
- add r0, #0xc0
- ldr r0, [r0]
- add r0, #0xac
- ldr r0, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_0221252C
-MOD08_0221252C: ; 0x0221252C
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5]
- mov r1, #0x3c
- bl AllocFromHeap
- add r4, r0, #0
- bne _02212544
- bl ErrorHandling
- mov r0, #0
- pop {r3, r4, r5, pc}
-_02212544:
- mov r1, #0
- mov r2, #0x3c
- bl memset
- add r0, r5, #0
- add r0, #0x90
- ldrh r0, [r0]
- add r5, #0x90
- add r0, r0, #1
- strh r0, [r5]
- add r0, r4, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_0221255C
-MOD08_0221255C: ; 0x0221255C
- ldr r3, _02212568 ; =FUN_0200CA44
- str r0, [r1, #0x38]
- ldr r0, _0221256C ; =MOD08_02212574
- ldr r2, _02212570 ; =0x0000044C
- bx r3
- nop
-_02212568: .word FUN_0200CA44
-_0221256C: .word MOD08_02212574
-_02212570: .word 0x0000044C
-
- thumb_func_start MOD08_02212574
-MOD08_02212574: ; 0x02212574
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldrb r1, [r4]
- add r5, r0, #0
- add r0, r4, #0
- lsl r2, r1, #2
- ldr r1, _022125B0 ; =0x0222AAC4
- ldr r1, [r1, r2]
- blx r1
- cmp r0, #0
- bne _022125AE
- ldr r0, [r4, #0x38]
- add r1, r0, #0
- add r1, #0x90
- ldrh r1, [r1]
- cmp r1, #0
- beq _022125A2
- add r1, r0, #0
- add r1, #0x90
- ldrh r1, [r1]
- add r0, #0x90
- sub r1, r1, #1
- strh r1, [r0]
-_022125A2:
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
-_022125AE:
- pop {r3, r4, r5, pc}
- .align 2, 0
-_022125B0: .word 0x0222AAC4
-
- thumb_func_start MOD08_022125B4
-MOD08_022125B4: ; 0x022125B4
- mov r0, #0
- bx lr
-
- thumb_func_start MOD08_022125B8
-MOD08_022125B8: ; 0x022125B8
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldrb r1, [r5, #4]
- add r0, r1, #1
- strb r0, [r5, #4]
- ldrb r0, [r5, #3]
- cmp r1, r0
- bhs _022125CC
- mov r0, #1
- pop {r3, r4, r5, pc}
-_022125CC:
- mov r0, #0
- strb r0, [r5, #4]
- ldr r2, [r5, #0x14]
- ldr r1, [r5, #0x10]
- mov r4, #1
- add r1, r2, r1
- str r1, [r5, #0x14]
- ldr r1, [r5, #0x10]
- cmp r1, #0
- bne _022125E4
- add r4, r0, #0
- b _022125FC
-_022125E4:
- ldr r2, [r5, #0xc]
- ldr r1, [r5, #8]
- cmp r1, r2
- ldr r1, [r5, #0x14]
- bge _022125F6
- cmp r1, r2
- blt _022125FC
- add r4, r0, #0
- b _022125FC
-_022125F6:
- cmp r1, r2
- bgt _022125FC
- add r4, r0, #0
-_022125FC:
- ldr r0, [r5, #0x14]
- bl FUN_0200554C
- ldrh r0, [r5, #0x1a]
- bl FUN_02005508
- cmp r0, #0
- bne _0221260E
- mov r4, #0
-_0221260E:
- add r0, r4, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02212614
-MOD08_02212614: ; 0x02212614
- ldr r3, _02212618 ; =MOD08_022125B8
- bx r3
- .align 2, 0
-_02212618: .word MOD08_022125B8
-
- thumb_func_start MOD08_0221261C
-MOD08_0221261C: ; 0x0221261C
- ldr r3, _02212620 ; =MOD08_022125B8
- bx r3
- .align 2, 0
-_02212620: .word MOD08_022125B8
-
- thumb_func_start MOD08_02212624
-MOD08_02212624: ; 0x02212624
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldrb r1, [r5, #4]
- add r0, r1, #1
- strb r0, [r5, #4]
- ldrb r0, [r5, #3]
- cmp r1, r0
- bhs _02212638
- mov r0, #1
- pop {r3, r4, r5, pc}
-_02212638:
- mov r0, #0
- strb r0, [r5, #4]
- ldrb r0, [r5, #0x18]
- mov r4, #1
- sub r0, r0, #1
- strb r0, [r5, #0x18]
- ldrh r0, [r5, #0x1a]
- bl FUN_020054C8
- ldrh r0, [r5, #0x1a]
- ldr r1, _02212660 ; =0x0000FFFF
- ldr r2, [r5, #0x14]
- bl FUN_02005530
- ldrb r0, [r5, #0x18]
- cmp r0, #0
- bne _0221265C
- mov r4, #0
-_0221265C:
- add r0, r4, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02212660: .word 0x0000FFFF
-
- thumb_func_start MOD08_02212664
-MOD08_02212664: ; 0x02212664
- push {r4, lr}
- add r4, r0, #0
- ldrb r2, [r4, #3]
- mov r0, #1
- sub r1, r2, #1
- strb r1, [r4, #3]
- cmp r2, #0
- bne _02212686
- ldrh r0, [r4, #0x1a]
- bl FUN_020054C8
- ldrh r0, [r4, #0x1a]
- ldr r1, _02212688 ; =0x0000FFFF
- ldr r2, [r4, #0x14]
- bl FUN_02005530
- mov r0, #0
-_02212686:
- pop {r4, pc}
- .align 2, 0
-_02212688: .word 0x0000FFFF
-
- thumb_func_start MOD08_0221268C
-MOD08_0221268C: ; 0x0221268C
- push {r3, lr}
- ldr r0, _022126A0 ; =0x04000050
- mov r3, #8
- mov r1, #0
- mov r2, #0x3f
- str r3, [sp]
- bl G2x_SetBlendAlpha_
- pop {r3, pc}
- nop
-_022126A0: .word 0x04000050
-
- thumb_func_start MOD08_022126A4
-MOD08_022126A4: ; 0x022126A4
- push {r3, r4}
- add r2, r0, #0
- mov r1, #1
- add r2, #0x8d
- strb r1, [r2]
- ldr r3, _022126D8 ; =0x021C48B8
- lsl r2, r1, #9
- ldr r4, [r3, #0x44]
- tst r2, r4
- beq _022126D4
- add r2, r1, #0
- add r2, #0xff
- tst r2, r4
- beq _022126D4
- ldr r2, [r3, #0x48]
- lsl r1, r1, #0xa
- tst r1, r2
- beq _022126D4
- ldr r1, [r0, #0x18]
- add r1, r1, #4
- str r1, [r0, #0x18]
- mov r1, #0
- add r0, #0x8d
- strb r1, [r0]
-_022126D4:
- pop {r3, r4}
- bx lr
- .align 2, 0
-_022126D8: .word 0x021C48B8
-
- thumb_func_start MOD08_022126DC
-MOD08_022126DC: ; 0x022126DC
- ldr r1, [r0, #0x18]
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r2, [r1]
- add r1, r0, #0
- add r1, #0x8d
- strb r2, [r1]
- ldr r1, [r0, #0x18]
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r1, _022126F8 ; =MOD08_02211EA0
- add r0, #0xbc
- str r1, [r0]
- bx lr
- .align 2, 0
-_022126F8: .word MOD08_02211EA0
-
- thumb_func_start MOD08_022126FC
-MOD08_022126FC: ; 0x022126FC
- add r1, r0, #0
- add r1, #0x8e
- ldrh r1, [r1]
- cmp r1, #0
- bne _02212714
- ldr r1, [r0, #0x18]
- add r1, r1, #4
- str r1, [r0, #0x18]
- mov r1, #0
- add r0, #0x8d
- strb r1, [r0]
- bx lr
-_02212714:
- mov r1, #1
- add r0, #0x8d
- strb r1, [r0]
- bx lr
-
- thumb_func_start MOD08_0221271C
-MOD08_0221271C: ; 0x0221271C
- ldr r1, [r0, #0x18]
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r3, [r1]
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r2, [r1]
- add r1, r1, #4
- str r1, [r0, #0x18]
- cmp r3, #0xa
- bhs _0221273A
- lsl r1, r3, #2
- add r0, r0, r1
- add r0, #0x94
- str r2, [r0]
-_0221273A:
- bx lr
-
- thumb_func_start MOD08_0221273C
-MOD08_0221273C: ; 0x0221273C
- ldr r1, [r0, #0x18]
- mov r3, #0
- add r1, r1, #4
- str r1, [r0, #0x18]
- add r2, r3, #0
-_02212746:
- add r1, r0, #0
- add r1, #0x94
- add r3, r3, #1
- add r0, r0, #4
- str r2, [r1]
- cmp r3, #0xa
- blt _02212746
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02212758
-MOD08_02212758: ; 0x02212758
- cmp r1, #5
- bhi _022127A4
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02212768: ; jump table
- .short _02212774 - _02212768 - 2 ; case 0
- .short _0221277C - _02212768 - 2 ; case 1
- .short _02212784 - _02212768 - 2 ; case 2
- .short _0221278C - _02212768 - 2 ; case 3
- .short _02212794 - _02212768 - 2 ; case 4
- .short _0221279C - _02212768 - 2 ; case 5
-_02212774:
- add r0, #0xc0
- ldr r0, [r0]
- ldr r0, [r0, #4]
- bx lr
-_0221277C:
- add r0, #0xc0
- ldr r0, [r0]
- ldrh r0, [r0, #8]
- bx lr
-_02212784:
- add r0, #0xc0
- ldr r0, [r0]
- ldrh r0, [r0, #0xa]
- bx lr
-_0221278C:
- add r0, #0xc0
- ldr r0, [r0]
- ldr r0, [r0, #0xc]
- bx lr
-_02212794:
- add r0, #0xc0
- ldr r0, [r0]
- ldrh r0, [r0, #0x10]
- bx lr
-_0221279C:
- add r0, #0xc0
- ldr r0, [r0]
- ldrh r0, [r0, #0x12]
- bx lr
-_022127A4:
- mov r0, #0
- bx lr
-
- thumb_func_start MOD08_022127A8
-MOD08_022127A8: ; 0x022127A8
- push {r3, r4, r5, r6, r7, lr}
- mov r4, #0
- add r3, r0, #0
- add r0, r1, #0
- str r2, [sp]
- add r6, r4, #0
- add r5, r0, #0
- mov ip, r4
- add r7, r0, #0
-_022127BA:
- add r1, r3, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r1, r1, r6
- add r1, #0xb0
- ldr r1, [r1]
- str r1, [r5, #8]
- add r1, r3, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r1, r1, r6
- add r1, #0xc4
- ldr r1, [r1]
- str r1, [r5, #0x18]
- add r1, r3, #0
- add r1, #0xc0
- ldr r2, [r1]
- mov r1, ip
- add r1, r2, r1
- add r1, #0xd8
- ldrh r1, [r1]
- add r2, r0, r4
- add r2, #0x30
- strh r1, [r7, #0x28]
- add r1, r3, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r7, r7, #2
- add r1, r1, r4
- add r1, #0xe0
- ldrb r1, [r1]
- strb r1, [r2]
- add r1, r3, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r2, r0, r4
- add r1, r1, r4
- add r1, #0xe4
- ldrb r1, [r1]
- add r2, #0x34
- strb r1, [r2]
- add r1, r3, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r2, r0, r4
- add r1, r1, r4
- add r1, #0xe8
- ldrb r1, [r1]
- add r2, #0x38
- strb r1, [r2]
- add r1, r3, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r2, r0, r4
- add r1, r1, r6
- add r1, #0xec
- ldr r1, [r1]
- add r2, #0x4c
- str r1, [r5, #0x3c]
- add r1, r3, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r6, r6, #4
- add r1, r1, r4
- add r1, #0xc0
- ldrb r1, [r1]
- add r4, r4, #1
- add r5, r5, #4
- strb r1, [r2]
- mov r1, ip
- add r1, r1, #2
- mov ip, r1
- cmp r4, #4
- blt _022127BA
- ldr r1, [sp]
- cmp r1, #3
- bhi _022128B8
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02212860: ; jump table
- .short _02212868 - _02212860 - 2 ; case 0
- .short _0221287C - _02212860 - 2 ; case 1
- .short _02212890 - _02212860 - 2 ; case 2
- .short _022128A4 - _02212860 - 2 ; case 3
-_02212868:
- add r1, r3, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r3, #0xc0
- ldrh r1, [r1, #0x14]
- str r1, [r0]
- ldr r1, [r3]
- ldrh r1, [r1, #0x16]
- str r1, [r0, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_0221287C:
- add r1, r3, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r3, #0xc0
- ldrh r1, [r1, #0x14]
- str r1, [r0]
- ldr r1, [r3]
- ldrh r1, [r1, #0x14]
- str r1, [r0, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_02212890:
- add r1, r3, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r3, #0xc0
- ldrh r1, [r1, #0x14]
- str r1, [r0]
- ldr r1, [r3]
- ldrh r1, [r1, #0x14]
- str r1, [r0, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_022128A4:
- add r1, r3, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r3, #0xc0
- ldrh r1, [r1, #0x14]
- str r1, [r0]
- ldr r1, [r3]
- ldrh r1, [r1, #0x14]
- str r1, [r0, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_022128B8:
- bl ErrorHandling
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022128C0
-MOD08_022128C0: ; 0x022128C0
- push {r3, r4, r5, lr}
- sub sp, #0x50
- add r5, r0, #0
- ldr r1, [r5, #0x18]
- add r1, r1, #4
- str r1, [r5, #0x18]
- ldr r4, [r1]
- add r1, r1, #4
- str r1, [r5, #0x18]
- add r1, sp, #0
- add r2, r4, #0
- bl MOD08_022127A8
- cmp r4, #2
- add r0, sp, #0
- bne _022128EA
- ldr r1, [r5]
- bl MOD08_0222A568
- add sp, #0x50
- pop {r3, r4, r5, pc}
-_022128EA:
- cmp r4, #3
- bne _022128F8
- ldr r1, [r5]
- bl MOD08_0222A2A4
- add sp, #0x50
- pop {r3, r4, r5, pc}
-_022128F8:
- ldr r1, [r5]
- bl MOD08_0222A294
- add sp, #0x50
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02212904
-MOD08_02212904: ; 0x02212904
- push {r4, lr}
- sub sp, #0x50
- add r4, r0, #0
- ldr r1, [r4, #0x18]
- add r1, r1, #4
- str r1, [r4, #0x18]
- ldr r2, [r1]
- add r1, r1, #4
- str r1, [r4, #0x18]
- add r1, sp, #0
- bl MOD08_022127A8
- ldr r1, [r4]
- add r0, sp, #0
- bl MOD08_0222A494
- add sp, #0x50
- pop {r4, pc}
-
- thumb_func_start MOD08_02212928
-MOD08_02212928: ; 0x02212928
- ldr r1, [r0, #0x18]
- mov r2, #0
- add r1, r1, #4
- str r1, [r0, #0x18]
- add r3, r0, #0
-_02212932:
- ldr r1, [r3, #0x30]
- cmp r1, #1
- beq _0221295E
- mov r1, #0xc
- mul r1, r2
- mov r2, #1
- add r1, r0, r1
- str r2, [r1, #0x30]
- add r2, r1, #0
- mov r3, #0
- add r2, #0x2c
- strb r3, [r2]
- ldr r2, [r0, #0x18]
- ldr r3, [r2]
- add r2, r1, #0
- add r2, #0x2d
- strb r3, [r2]
- ldr r2, [r0, #0x18]
- add r2, r2, #4
- str r2, [r0, #0x18]
- str r2, [r1, #0x28]
- bx lr
-_0221295E:
- add r2, r2, #1
- add r3, #0xc
- cmp r2, #3
- blt _02212932
- bx lr
-
- thumb_func_start MOD08_02212968
-MOD08_02212968: ; 0x02212968
- push {r3, r4}
- ldr r1, [r0, #0x18]
- add r3, r0, #0
- add r1, r1, #4
- add r3, #0x18
- str r1, [r0, #0x18]
- mov r2, #2
-_02212976:
- ldr r1, [r3, #0x30]
- cmp r1, #0
- beq _022129AA
- add r4, r2, #0
- mov r1, #0xc
- add r2, r0, #0
- mul r4, r1
- add r2, #0x2c
- ldrb r1, [r2, r4]
- add r1, r1, #1
- strb r1, [r2, r4]
- ldrb r3, [r2, r4]
- add r2, r0, r4
- add r1, r2, #0
- add r1, #0x2d
- ldrb r1, [r1]
- cmp r3, r1
- bne _022129A2
- mov r0, #0
- str r0, [r2, #0x30]
- pop {r3, r4}
- bx lr
-_022129A2:
- ldr r1, [r2, #0x28]
- str r1, [r0, #0x18]
- pop {r3, r4}
- bx lr
-_022129AA:
- sub r3, #0xc
- sub r2, r2, #1
- bpl _02212976
- pop {r3, r4}
- bx lr
-
- thumb_func_start MOD08_022129B4
-MOD08_022129B4: ; 0x022129B4
- push {r3, r4, r5, r6, r7, lr}
- ldr r1, _02212BB0 ; =0x0000017E
- add r5, r0, #0
- ldrb r0, [r5, r1]
- mov r6, #0
- cmp r0, #1
- bhs _022129D2
- add r0, r5, #0
- mov r2, #1
- add r0, #0x8d
- strb r2, [r0]
- ldrb r0, [r5, r1]
- add r0, r0, #1
- strb r0, [r5, r1]
- pop {r3, r4, r5, r6, r7, pc}
-_022129D2:
- add r7, r6, #0
- add r4, r6, #0
-_022129D6:
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r0, r0, r4
- ldr r0, [r0, #0x1c]
- cmp r0, #0
- beq _022129EA
- bl FUN_020133C8
- add r6, r6, r0
-_022129EA:
- add r7, r7, #1
- add r4, r4, #4
- cmp r7, #0x10
- blt _022129D6
- cmp r6, #0
- bne _02212A0A
- add r0, r5, #0
- add r0, #0x8e
- ldrh r0, [r0]
- cmp r0, #0
- bne _02212A0A
- add r0, r5, #0
- add r0, #0x90
- ldrh r0, [r0]
- cmp r0, #0
- beq _02212A1A
-_02212A0A:
- add r0, r5, #0
- mov r1, #1
- add r0, #0x8d
- strb r1, [r0]
- ldr r0, _02212BB4 ; =0x0000017D
- mov r1, #0
- strb r1, [r5, r0]
- pop {r3, r4, r5, r6, r7, pc}
-_02212A1A:
- bl FUN_02005514
- cmp r0, #0
- beq _02212A44
- ldr r0, _02212BB4 ; =0x0000017D
- ldrb r1, [r5, r0]
- add r1, r1, #1
- strb r1, [r5, r0]
- ldrb r1, [r5, r0]
- cmp r1, #0x5a
- bls _02212A3C
- mov r1, #0
- strb r1, [r5, r0]
- add r0, r5, #0
- add r0, #0x8d
- strb r1, [r0]
- b _02212A44
-_02212A3C:
- mov r0, #1
- add r5, #0x8d
- strb r0, [r5]
- pop {r3, r4, r5, r6, r7, pc}
-_02212A44:
- ldr r0, _02212BB4 ; =0x0000017D
- mov r1, #0
- strb r1, [r5, r0]
- add r0, r0, #1
- strb r1, [r5, r0]
- add r0, r5, #0
- add r2, r1, #0
-_02212A52:
- add r1, r1, #1
- str r2, [r0, #0x1c]
- add r0, r0, #4
- cmp r1, #3
- blt _02212A52
- add r1, r5, #0
- mov r4, #0
-_02212A60:
- add r0, r1, #0
- str r4, [r1, #0x28]
- add r0, #0x2c
- strb r4, [r0]
- add r0, r1, #0
- add r0, #0x2d
- strb r4, [r0]
- str r4, [r1, #0x30]
- add r2, r2, #1
- add r1, #0xc
- cmp r2, #3
- blt _02212A60
- add r7, r5, #0
- mov r6, #0
-_02212A7C:
- add r0, r7, #0
- add r0, #0xcc
- ldr r1, [r0]
- cmp r1, #0
- beq _02212A94
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r0, #0xac
- ldr r0, [r0]
- bl FUN_0200C398
-_02212A94:
- add r0, r7, #0
- add r0, #0xcc
- add r4, r4, #1
- add r7, r7, #4
- str r6, [r0]
- cmp r4, #4
- blt _02212A7C
-_02212AA2:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02213454
- add r6, r6, #1
- cmp r6, #5
- blt _02212AA2
- mov r6, #0
- add r4, r6, #0
- add r7, r6, #0
-_02212AB6:
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r0, r0, r4
- ldr r0, [r0, #0x1c]
- cmp r0, #0
- beq _02212AD2
- bl MOD08_02215B40
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r0, r0, r4
- str r7, [r0, #0x1c]
-_02212AD2:
- add r6, r6, #1
- add r4, r4, #4
- cmp r6, #0x10
- blt _02212AB6
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- cmp r1, #0
- beq _02212AE8
- mov r1, #0
- str r1, [r5, r0]
-_02212AE8:
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #0
- bne _02212B3C
- bl MOD11_02231678
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02215588
- add r4, r0, #0
- add r0, r5, #0
- bl MOD08_02212014
- add r3, r0, #0
- lsl r0, r4, #0x18
- mov r1, #1
- lsr r0, r0, #0x18
- lsl r1, r1, #0xe
- mov r2, #0
- bl FUN_02017F18
- add r0, r5, #0
- bl MOD08_02212490
- add r4, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02215588
- add r1, r0, #0
- lsl r1, r1, #0x18
- add r0, r4, #0
- lsr r1, r1, #0x18
- bl FUN_02018744
- mov r0, #2
- mov r1, #1
- bl FUN_0201797C
- b _02212B40
-_02212B3C:
- bl MOD12_02233560
-_02212B40:
- mov r1, #0x1a
- lsl r1, r1, #4
- ldrb r1, [r5, r1]
- mov r0, #0
- bl FUN_020178BC
- ldr r1, _02212BB8 ; =0x000001A1
- mov r0, #1
- ldrb r1, [r5, r1]
- bl FUN_020178BC
- ldr r1, _02212BBC ; =0x000001A2
- mov r0, #2
- ldrb r1, [r5, r1]
- bl FUN_020178BC
- ldr r1, _02212BC0 ; =0x000001A3
- mov r0, #3
- ldrb r1, [r5, r1]
- bl FUN_020178BC
- add r0, r5, #0
- add r0, #0xc4
- mov r2, #0
- ldr r0, [r0]
- mov r1, #2
- add r3, r2, #0
- bl FUN_020179E0
- add r0, r5, #0
- add r0, #0xc4
- ldr r0, [r0]
- mov r1, #2
- mov r2, #3
- mov r3, #0
- bl FUN_020179E0
- add r0, r5, #0
- add r0, #0xc4
- mov r2, #0
- ldr r0, [r0]
- mov r1, #3
- add r3, r2, #0
- bl FUN_020179E0
- add r0, r5, #0
- add r0, #0xc4
- mov r1, #3
- ldr r0, [r0]
- add r2, r1, #0
- mov r3, #0
- bl FUN_020179E0
- mov r0, #0
- str r0, [r5, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02212BB0: .word 0x0000017E
-_02212BB4: .word 0x0000017D
-_02212BB8: .word 0x000001A1
-_02212BBC: .word 0x000001A2
-_02212BC0: .word 0x000001A3
-
- thumb_func_start MOD08_02212BC4
-MOD08_02212BC4: ; 0x02212BC4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r5, r0, #0
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r4, [r0]
- add r1, r0, #4
- str r1, [r5, #0x18]
- ldr r0, [r1]
- str r0, [sp]
- add r0, r1, #4
- str r0, [r5, #0x18]
- ldr r7, [r0]
- add r0, r0, #4
- str r0, [r5, #0x18]
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- str r4, [r0, #0x18]
- add r0, r5, r4
- add r0, #0x7c
- ldrb r0, [r0]
- cmp r0, #0
- beq _02212C22
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- lsl r6, r4, #2
- add r0, r0, r6
- ldr r0, [r0, #0x1c]
- add r1, sp, #4
- bl FUN_020133EC
- mov r0, #0
- ldr r1, [sp, #8]
- mvn r0, r0
- mul r0, r1
- str r0, [sp, #8]
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r1, sp, #4
- add r0, r0, r6
- ldr r0, [r0, #0x1c]
- bl FUN_020133FC
-_02212C22:
- add r0, r5, #0
- add r0, #0xc0
- add r1, r5, r4
- add r1, #0x6c
- ldr r0, [r0]
- lsl r6, r4, #2
- add r0, r0, r6
- ldrb r1, [r1]
- ldr r0, [r0, #0x1c]
- bl FUN_02013440
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- ldr r1, [sp]
- add r0, r0, r6
- ldr r0, [r0, #0x1c]
- add r2, r7, #0
- add r3, r5, #0
- bl MOD08_02215B2C
- add r5, #0xc0
- ldr r1, [r5]
- str r0, [r1, #0x5c]
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02212C58
-MOD08_02212C58: ; 0x02212C58
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r5, r0, #0
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r4, [r0]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r7, [r0]
- add r1, r0, #4
- str r1, [r5, #0x18]
- ldr r0, [r1]
- add r1, r1, #4
- str r1, [r5, #0x18]
- str r0, [sp, #4]
- ldr r0, [r1]
- str r0, [sp]
- add r0, r1, #4
- str r0, [r5, #0x18]
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- str r4, [r0, #0x18]
- add r0, r5, r4
- add r0, #0x7c
- ldrb r0, [r0]
- cmp r0, #0
- beq _02212CBE
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- lsl r6, r4, #2
- add r0, r0, r6
- ldr r0, [r0, #0x1c]
- add r1, sp, #8
- bl FUN_020133EC
- mov r0, #0
- ldr r1, [sp, #0xc]
- mvn r0, r0
- mul r0, r1
- str r0, [sp, #0xc]
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r1, sp, #8
- add r0, r0, r6
- ldr r0, [r0, #0x1c]
- bl FUN_020133FC
-_02212CBE:
- add r0, r5, #0
- add r0, #0xc0
- add r1, r5, r4
- add r1, #0x6c
- ldr r0, [r0]
- lsl r6, r4, #2
- add r0, r0, r6
- ldrb r1, [r1]
- ldr r0, [r0, #0x1c]
- bl FUN_02013440
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- ldr r1, [sp, #4]
- add r0, r0, r6
- ldr r0, [r0, #0x1c]
- ldr r2, [sp]
- add r3, r5, #0
- bl MOD08_02215B2C
- add r5, #0xc0
- ldr r2, [r5]
- lsl r1, r7, #2
- add r1, r2, r1
- str r0, [r1, #0x5c]
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02212CF8
-MOD08_02212CF8: ; 0x02212CF8
- push {r4, r5, r6, lr}
- sub sp, #0x90
- ldr r5, _02212D4C ; =0x0222AB4C
- add r4, r0, #0
- add r3, sp, #0
- mov r2, #0x12
-_02212D04:
- ldmia r5!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _02212D04
- add r0, r4, #0
- bl MOD08_02212458
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02212460
- add r6, r0, #0
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r4, #0
- add r1, r6, #0
- bl MOD08_02227468
- mov r1, #0x18
- add r3, r5, #0
- mul r3, r1
- add r2, sp, #0
- lsl r1, r0, #2
- add r0, r2, r3
- ldr r4, [r1, r0]
- cmp r4, #0xff
- bne _02212D44
- bl ErrorHandling
-_02212D44:
- sub r0, r4, #1
- add sp, #0x90
- pop {r4, r5, r6, pc}
- nop
-_02212D4C: .word 0x0222AB4C
-
- thumb_func_start MOD08_02212D50
-MOD08_02212D50: ; 0x02212D50
- push {r4, r5, r6, lr}
- sub sp, #0x90
- ldr r5, _02212DA4 ; =0x0222ABDC
- add r4, r0, #0
- add r3, sp, #0
- mov r2, #0x12
-_02212D5C:
- ldmia r5!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _02212D5C
- add r0, r4, #0
- bl MOD08_02212458
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02212460
- add r6, r0, #0
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r4, #0
- add r1, r6, #0
- bl MOD08_02227468
- mov r1, #0x18
- add r3, r5, #0
- mul r3, r1
- add r2, sp, #0
- lsl r1, r0, #2
- add r0, r2, r3
- ldr r4, [r1, r0]
- cmp r4, #0xff
- bne _02212D9C
- bl ErrorHandling
-_02212D9C:
- add r0, r4, #0
- add sp, #0x90
- pop {r4, r5, r6, pc}
- nop
-_02212DA4: .word 0x0222ABDC
-
- thumb_func_start MOD08_02212DA8
-MOD08_02212DA8: ; 0x02212DA8
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x28
- add r5, r0, #0
- ldr r1, [r5, #0x18]
- add r0, #0x18
- add r1, r1, #4
- str r1, [r5, #0x18]
- ldr r4, [r1]
- add r1, r1, #4
- str r1, [r5, #0x18]
- mov r1, #0
- add r2, sp, #0x10
-_02212DC0:
- ldr r3, [r5, #0x18]
- add r1, r1, #1
- ldr r3, [r3]
- str r3, [r2]
- ldr r3, [r0]
- add r2, r2, #4
- add r3, r3, #4
- str r3, [r0]
- cmp r1, #6
- blt _02212DC0
- ldr r1, [r5, #0x18]
- ldr r1, [r1]
- str r1, [sp]
- ldr r1, [r0]
- add r1, r1, #4
- str r1, [r0]
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- str r4, [r0, #0x18]
- add r0, r5, r4
- add r0, #0x7c
- ldrb r0, [r0]
- cmp r0, #0
- beq _02212E1E
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- lsl r6, r4, #2
- add r0, r0, r6
- ldr r0, [r0, #0x1c]
- add r1, sp, #4
- bl FUN_020133EC
- mov r0, #0
- ldr r1, [sp, #8]
- mvn r0, r0
- mul r0, r1
- str r0, [sp, #8]
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r1, sp, #4
- add r0, r0, r6
- ldr r0, [r0, #0x1c]
- bl FUN_020133FC
-_02212E1E:
- add r0, r5, #0
- bl MOD08_02212CF8
- add r7, r0, #0
- add r0, r5, #0
- add r0, #0xc0
- add r1, r5, r4
- add r1, #0x6c
- ldr r0, [r0]
- lsl r6, r4, #2
- add r0, r0, r6
- ldrb r1, [r1]
- ldr r0, [r0, #0x1c]
- bl FUN_02013440
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- lsl r2, r7, #2
- add r0, r0, r6
- add r1, sp, #0x10
- ldr r1, [r1, r2]
- ldr r0, [r0, #0x1c]
- ldr r2, [sp]
- add r3, r5, #0
- bl MOD08_02215B2C
- add r5, #0xc0
- ldr r1, [r5]
- str r0, [r1, #0x5c]
- add sp, #0x28
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02212E60
-MOD08_02212E60: ; 0x02212E60
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x20
- add r5, r0, #0
- ldr r1, [r5, #0x18]
- add r0, #0x18
- add r1, r1, #4
- str r1, [r5, #0x18]
- ldr r4, [r1]
- add r1, r1, #4
- str r1, [r5, #0x18]
- mov r1, #0
- add r2, sp, #0x10
-_02212E78:
- ldr r3, [r5, #0x18]
- add r1, r1, #1
- ldr r3, [r3]
- str r3, [r2]
- ldr r3, [r0]
- add r2, r2, #4
- add r3, r3, #4
- str r3, [r0]
- cmp r1, #4
- blt _02212E78
- ldr r1, [r5, #0x18]
- ldr r1, [r1]
- str r1, [sp]
- ldr r1, [r0]
- add r1, r1, #4
- str r1, [r0]
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- str r4, [r0, #0x18]
- add r0, r5, r4
- add r0, #0x7c
- ldrb r0, [r0]
- cmp r0, #0
- beq _02212ED6
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- lsl r6, r4, #2
- add r0, r0, r6
- ldr r0, [r0, #0x1c]
- add r1, sp, #4
- bl FUN_020133EC
- mov r0, #0
- ldr r1, [sp, #8]
- mvn r0, r0
- mul r0, r1
- str r0, [sp, #8]
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r1, sp, #4
- add r0, r0, r6
- ldr r0, [r0, #0x1c]
- bl FUN_020133FC
-_02212ED6:
- add r0, r5, #0
- bl MOD08_02212D50
- add r7, r0, #0
- add r0, r5, #0
- add r0, #0xc0
- add r1, r5, r4
- add r1, #0x6c
- ldr r0, [r0]
- lsl r6, r4, #2
- add r0, r0, r6
- ldrb r1, [r1]
- ldr r0, [r0, #0x1c]
- bl FUN_02013440
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- lsl r2, r7, #2
- add r0, r0, r6
- add r1, sp, #0x10
- ldr r1, [r1, r2]
- ldr r0, [r0, #0x1c]
- ldr r2, [sp]
- add r3, r5, #0
- bl MOD08_02215B2C
- add r5, #0xc0
- ldr r1, [r5]
- str r0, [r1, #0x5c]
- add sp, #0x20
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02212F18
-MOD08_02212F18: ; 0x02212F18
- push {r3, r4, r5, r6, r7, lr}
- mov r6, #0
- add r5, r0, #0
- add r7, r6, #0
- add r4, r6, #0
-_02212F22:
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r0, r0, r4
- ldr r0, [r0, #0x1c]
- cmp r0, #0
- beq _02212F36
- bl FUN_020133C8
- add r6, r6, r0
-_02212F36:
- add r7, r7, #1
- add r4, r4, #4
- cmp r7, #0x10
- blt _02212F22
- cmp r6, #0
- bne _02212F50
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- mov r0, #0
- add r5, #0x8d
- strb r0, [r5]
- pop {r3, r4, r5, r6, r7, pc}
-_02212F50:
- mov r0, #1
- add r5, #0x8d
- strb r0, [r5]
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02212F58
-MOD08_02212F58: ; 0x02212F58
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r1, [r0]
- add r0, r0, #4
- str r0, [r5, #0x18]
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- lsl r4, r1, #2
- add r0, r0, r4
- ldr r0, [r0, #0x1c]
- cmp r0, #0
- beq _02212F7C
- bl ErrorHandling
-_02212F7C:
- ldr r0, [r5, #0x18]
- mov r2, #0
- ldr r1, [r0]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r5]
- bl MOD08_02215AA4
- add r1, r5, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r1, r1, r4
- str r0, [r1, #0x1c]
- add r0, r5, #0
- mov r1, #2
- add r0, #0x8d
- strb r1, [r0]
- ldr r0, _02212FA8 ; =MOD08_02211EA0
- add r5, #0xbc
- str r0, [r5]
- pop {r3, r4, r5, pc}
- nop
-_02212FA8: .word MOD08_02211EA0
-
- thumb_func_start MOD08_02212FAC
-MOD08_02212FAC: ; 0x02212FAC
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r1, [r0]
- add r0, r0, #4
- add r0, r0, #4
- str r0, [r5, #0x18]
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- lsl r4, r1, #2
- add r0, r0, r4
- ldr r0, [r0, #0x1c]
- cmp r0, #0
- beq _02212FD2
- bl ErrorHandling
-_02212FD2:
- ldr r0, [r5, #0x18]
- mov r1, #0x64
- ldr r2, [r0]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r5]
- mov r3, #0
- bl MOD08_02215ACC
- add r1, r5, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r1, r1, r4
- str r0, [r1, #0x1c]
- add r0, r5, #0
- mov r1, #2
- add r0, #0x8d
- strb r1, [r0]
- ldr r0, _02213000 ; =MOD08_02211EA0
- add r5, #0xbc
- str r0, [r5]
- pop {r3, r4, r5, pc}
- nop
-_02213000: .word MOD08_02211EA0
-
- thumb_func_start MOD08_02213004
-MOD08_02213004: ; 0x02213004
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r1, [r0]
- add r0, r0, #4
- str r0, [r5, #0x18]
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- lsl r4, r1, #2
- add r0, r0, r4
- ldr r0, [r0, #0x1c]
- bl MOD08_02215B40
- add r5, #0xc0
- ldr r0, [r5]
- mov r1, #0
- add r0, r0, r4
- str r1, [r0, #0x1c]
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02213030
-MOD08_02213030: ; 0x02213030
- ldr r1, [r0, #0x18]
- mov r3, #0
- add r1, r1, #4
- str r1, [r0, #0x18]
- add r2, r0, #0
-_0221303A:
- ldr r1, [r2, #0x1c]
- cmp r1, #0
- bne _02213056
- ldr r1, [r0, #0x18]
- add r2, r1, #4
- lsl r1, r3, #2
- add r1, r0, r1
- str r2, [r1, #0x1c]
- ldr r2, [r0, #0x18]
- ldr r1, [r2]
- lsl r1, r1, #2
- add r1, r2, r1
- str r1, [r0, #0x18]
- bx lr
-_02213056:
- add r3, r3, #1
- add r2, r2, #4
- cmp r3, #3
- blt _0221303A
- bx lr
-
- thumb_func_start MOD08_02213060
-MOD08_02213060: ; 0x02213060
- ldr r1, [r0, #0x18]
- add r3, r0, #0
- add r1, r1, #4
- str r1, [r0, #0x18]
- mov r2, #2
- add r3, #8
-_0221306C:
- ldr r1, [r3, #0x1c]
- cmp r1, #0
- beq _02213082
- add r3, r0, #0
- add r3, #0x1c
- lsl r2, r2, #2
- ldr r1, [r3, r2]
- str r1, [r0, #0x18]
- mov r0, #0
- str r0, [r3, r2]
- bx lr
-_02213082:
- sub r3, r3, #4
- sub r2, r2, #1
- bpl _0221306C
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_0221308C
-MOD08_0221308C: ; 0x0221308C
- push {r3, r4}
- ldr r2, [r0, #0x18]
- add r1, r0, #0
- add r2, r2, #4
- str r2, [r0, #0x18]
- ldr r4, [r2]
- add r2, r2, #4
- str r2, [r0, #0x18]
- ldr r3, [r2]
- add r2, r2, #4
- str r2, [r0, #0x18]
- lsl r2, r4, #2
- add r2, r0, r2
- add r2, #0x94
- ldr r2, [r2]
- add r1, #0x18
- cmp r3, r2
- bne _022130BA
- ldr r1, [r0, #0x18]
- ldr r1, [r1]
- str r1, [r0, #0x18]
- pop {r3, r4}
- bx lr
-_022130BA:
- ldr r0, [r1]
- add r0, r0, #4
- str r0, [r1]
- pop {r3, r4}
- bx lr
-
- thumb_func_start MOD08_022130C4
-MOD08_022130C4: ; 0x022130C4
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x18]
- add r0, r0, #4
- str r0, [r4, #0x18]
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- bl MOD08_02215350
- cmp r0, #0
- ldr r0, [r4, #0x18]
- beq _022130E4
- ldr r0, [r0]
- str r0, [r4, #0x18]
- pop {r4, pc}
-_022130E4:
- add r0, r0, #4
- str r0, [r4, #0x18]
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022130EC
-MOD08_022130EC: ; 0x022130EC
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x18]
- add r1, r0, #4
- str r1, [r4, #0x18]
- ldr r0, [r1]
- add r1, r1, #4
- str r1, [r4, #0x18]
- bl MOD08_02218C48
- add r7, r0, #0
- ldr r0, [r4, #0x18]
- add r2, r4, #0
- ldr r5, [r0]
- add r0, r0, #4
- add r2, #0x18
- mov r3, #0
- str r0, [r4, #0x18]
- cmp r5, #0
- bls _0221312E
- add r6, r4, #0
-_02213116:
- ldr r0, [r4, #0x18]
- add r3, r3, #1
- ldr r1, [r0]
- add r0, r6, #0
- add r0, #0x94
- str r1, [r0]
- ldr r0, [r2]
- add r6, r6, #4
- add r0, r0, #4
- str r0, [r2]
- cmp r3, r5
- blo _02213116
-_0221312E:
- cmp r3, #0xa
- bge _02213146
- lsl r0, r3, #2
- add r2, r4, r0
- mov r1, #0
-_02213138:
- add r0, r2, #0
- add r0, #0x94
- add r3, r3, #1
- add r2, r2, #4
- str r1, [r0]
- cmp r3, #0xa
- blt _02213138
-_02213146:
- add r0, r4, #0
- blx r7
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_0221314C
-MOD08_0221314C: ; 0x0221314C
- ldr r2, [r0, #0x18]
- add r1, r0, #0
- add r2, r2, #4
- str r2, [r0, #0x18]
- add r2, r0, #0
- add r2, #0xc0
- ldr r2, [r2]
- add r1, #0x18
- ldrh r3, [r2, #0x10]
- mov r2, #1
- tst r2, r3
- beq _0221316A
- ldr r2, [r1]
- add r2, r2, #4
- str r2, [r1]
-_0221316A:
- ldr r2, [r0, #0x18]
- ldr r1, [r2]
- lsl r1, r1, #2
- add r1, r2, r1
- str r1, [r0, #0x18]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02213178
-MOD08_02213178: ; 0x02213178
- push {r4, lr}
- add r4, r0, #0
- ldr r1, [r4, #0x18]
- add r1, r1, #4
- str r1, [r4, #0x18]
- ldr r2, [r1]
- add r1, r1, #4
- str r1, [r4, #0x18]
- cmp r2, #0
- bne _0221319A
- add r1, r4, #0
- add r1, #0xc0
- ldr r1, [r1]
- ldrh r1, [r1, #0x14]
- bl MOD08_02227470
- b _022131A6
-_0221319A:
- add r1, r4, #0
- add r1, #0xc0
- ldr r1, [r1]
- ldrh r1, [r1, #0x16]
- bl MOD08_02227470
-_022131A6:
- cmp r0, #4
- bne _022131B0
- ldr r0, [r4, #0x18]
- add r0, r0, #4
- str r0, [r4, #0x18]
-_022131B0:
- ldr r1, [r4, #0x18]
- ldr r0, [r1]
- lsl r0, r0, #2
- add r0, r1, r0
- str r0, [r4, #0x18]
- pop {r4, pc}
-
- thumb_func_start MOD08_022131BC
-MOD08_022131BC: ; 0x022131BC
- push {r4, r5}
- sub sp, #0x10
- ldr r5, _02213214 ; =0x0222AA3C
- add r2, sp, #0
- add r4, r0, #0
- add r3, r2, #0
- ldmia r5!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r5!, {r0, r1}
- stmia r2!, {r0, r1}
- ldr r1, [r4, #0x18]
- add r0, r4, #0
- add r1, r1, #4
- str r1, [r4, #0x18]
- add r1, r4, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r0, #0x18
- ldr r1, [r1, #0xc]
- cmp r1, #0
- beq _02213202
- ldr r2, [r0]
- add r2, r2, #4
- str r2, [r0]
- mov r2, #0
-_022131EE:
- ldr r5, [r3]
- tst r5, r1
- bne _02213202
- ldr r5, [r0]
- add r2, r2, #1
- add r5, r5, #4
- add r3, r3, #4
- str r5, [r0]
- cmp r2, #4
- blo _022131EE
-_02213202:
- ldr r1, [r4, #0x18]
- ldr r0, [r1]
- lsl r0, r0, #2
- add r0, r1, r0
- str r0, [r4, #0x18]
- add sp, #0x10
- pop {r4, r5}
- bx lr
- nop
-_02213214: .word 0x0222AA3C
-
- thumb_func_start MOD08_02213218
-MOD08_02213218: ; 0x02213218
- push {r4, lr}
- add r4, r0, #0
- ldr r1, [r4, #0x18]
- add r1, r1, #4
- str r1, [r4, #0x18]
- bl MOD08_02212004
- cmp r0, #1
- bne _02213236
- ldr r1, [r4, #0x18]
- ldr r0, [r1]
- lsl r0, r0, #2
- add r0, r1, r0
- str r0, [r4, #0x18]
- pop {r4, pc}
-_02213236:
- ldr r0, [r4, #0x18]
- add r0, r0, #4
- str r0, [r4, #0x18]
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02213240
-MOD08_02213240: ; 0x02213240
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r1, [r5, #0x18]
- add r1, r1, #4
- str r1, [r5, #0x18]
- add r1, r5, #0
- add r1, #0xc0
- ldr r1, [r1]
- ldrh r1, [r1, #0x14]
- bl MOD08_02227470
- add r1, r5, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r4, r0, #0
- ldrh r1, [r1, #0x16]
- add r0, r5, #0
- bl MOD08_02227470
- cmp r4, r0
- bne _02213276
- ldr r1, [r5, #0x18]
- ldr r0, [r1]
- lsl r0, r0, #2
- add r0, r1, r0
- str r0, [r5, #0x18]
- pop {r3, r4, r5, pc}
-_02213276:
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02213280
-MOD08_02213280: ; 0x02213280
- ldr r2, [r0, #0x18]
- add r1, r0, #0
- add r2, r2, #4
- str r2, [r0, #0x18]
- ldr r3, [r2]
- add r2, r2, #4
- str r2, [r0, #0x18]
- add r2, r0, #0
- add r2, #0xc0
- ldr r2, [r2]
- add r1, #0x18
- ldrh r2, [r2, #0x10]
- cmp r3, r2
- bne _022132AA
- ldr r0, [r0, #0x18]
- ldr r2, [r1]
- ldr r0, [r0]
- lsl r0, r0, #2
- add r0, r2, r0
- str r0, [r1]
- bx lr
-_022132AA:
- ldr r0, [r1]
- add r0, r0, #4
- str r0, [r1]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_022132B4
-MOD08_022132B4: ; 0x022132B4
- ldr r1, [r0, #0x18]
- add r2, r1, #4
- str r2, [r0, #0x18]
- ldr r1, [r2]
- lsl r1, r1, #2
- add r1, r2, r1
- str r1, [r0, #0x18]
- bx lr
-
- thumb_func_start MOD08_022132C4
-MOD08_022132C4: ; 0x022132C4
- push {r4, r5, r6, lr}
- add r4, r0, #0
- cmp r1, #7
- bhi _022133A2
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_022132D8: ; jump table
- .short _022132E8 - _022132D8 - 2 ; case 0
- .short _022132F0 - _022132D8 - 2 ; case 1
- .short _022132F8 - _022132D8 - 2 ; case 2
- .short _02213306 - _022132D8 - 2 ; case 3
- .short _02213314 - _022132D8 - 2 ; case 4
- .short _0221333A - _022132D8 - 2 ; case 5
- .short _02213360 - _022132D8 - 2 ; case 6
- .short _02213382 - _022132D8 - 2 ; case 7
-_022132E8:
- add r4, #0xc0
- ldr r0, [r4]
- ldrh r6, [r0, #0x14]
- b _022133A2
-_022132F0:
- add r4, #0xc0
- ldr r0, [r4]
- ldrh r6, [r0, #0x16]
- b _022133A2
-_022132F8:
- add r4, #0xc0
- ldr r1, [r4]
- ldrh r1, [r1, #0x14]
- bl MOD08_022274C0
- add r6, r0, #0
- b _022133A2
-_02213306:
- add r4, #0xc0
- ldr r1, [r4]
- ldrh r1, [r1, #0x16]
- bl MOD08_022274C0
- add r6, r0, #0
- b _022133A2
-_02213314:
- mov r6, #0xff
- mov r5, #0
-_02213318:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02215490
- cmp r0, #0
- beq _02213328
- cmp r0, #2
- bne _0221332C
-_02213328:
- add r6, r5, #0
- b _02213332
-_0221332C:
- add r5, r5, #1
- cmp r5, #4
- blt _02213318
-_02213332:
- cmp r6, #0xff
- bne _022133A2
- mov r6, #0
- b _022133A2
-_0221333A:
- mov r6, #0xff
- mov r5, #0
-_0221333E:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02215490
- cmp r0, #1
- beq _0221334E
- cmp r0, #3
- bne _02213352
-_0221334E:
- add r6, r5, #0
- b _02213358
-_02213352:
- add r5, r5, #1
- cmp r5, #4
- blt _0221333E
-_02213358:
- cmp r6, #0xff
- bne _022133A2
- mov r6, #0
- b _022133A2
-_02213360:
- mov r6, #0xff
- mov r5, #0
-_02213364:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02215490
- cmp r0, #4
- bne _02213374
- add r6, r5, #0
- b _0221337A
-_02213374:
- add r5, r5, #1
- cmp r5, #4
- blt _02213364
-_0221337A:
- cmp r6, #0xff
- bne _022133A2
- mov r6, #0
- b _022133A2
-_02213382:
- mov r6, #0xff
- mov r5, #0
-_02213386:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02215490
- cmp r0, #5
- bne _02213396
- add r6, r5, #0
- b _0221339C
-_02213396:
- add r5, r5, #1
- cmp r5, #4
- blt _02213386
-_0221339C:
- cmp r6, #0xff
- bne _022133A2
- mov r6, #0
-_022133A2:
- add r0, r6, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022133A8
-MOD08_022133A8: ; 0x022133A8
- push {r4, r5, r6, lr}
- add r5, r1, #0
- ldrb r0, [r5, #5]
- cmp r0, #0
- beq _022133C4
- ldrb r0, [r5, #4]
- add r0, r0, #1
- strb r0, [r5, #4]
- ldrb r1, [r5, #4]
- ldrb r0, [r5, #5]
- cmp r1, r0
- bne _022133F2
- mov r0, #0
- strb r0, [r5, #4]
-_022133C4:
- ldr r0, [r5, #8]
- mov r1, #0
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r6, r0, #0x10
- ldr r0, [r5, #8]
- mov r1, #1
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- ldr r0, [r5, #8]
- mov r1, #0x29
- bl FUN_0200782C
- sub r0, r4, r0
- lsl r0, r0, #0x10
- asr r2, r0, #0x10
- ldr r0, [r5]
- add r1, r6, #0
- bl FUN_0200C714
-_022133F2:
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_022133F4
-MOD08_022133F4: ; 0x022133F4
- push {r4, r5, r6, lr}
- add r5, r1, #0
- ldrb r0, [r5, #5]
- cmp r0, #0
- beq _02213410
- ldrb r0, [r5, #4]
- add r0, r0, #1
- strb r0, [r5, #4]
- ldrb r1, [r5, #4]
- ldrb r0, [r5, #5]
- cmp r1, r0
- bne _02213452
- mov r0, #0
- strb r0, [r5, #4]
-_02213410:
- ldr r0, [r5, #8]
- mov r1, #0
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r6, r0, #0x10
- ldr r0, [r5, #8]
- mov r1, #1
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- ldr r0, [r5, #8]
- mov r1, #0x29
- bl FUN_0200782C
- sub r0, r4, r0
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- sub r6, #0x28
- ldr r0, [r5]
- mov r1, #2
- mov r2, #0
- neg r3, r6
- bl FUN_020179E0
- sub r4, #0x28
- ldr r0, [r5]
- mov r1, #2
- mov r2, #3
- neg r3, r4
- bl FUN_020179E0
-_02213452:
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_02213454
-MOD08_02213454: ; 0x02213454
- push {r3, r4, r5, lr}
- add r4, r0, #0
- cmp r1, #4
- bne _02213480
- mov r0, #0x5e
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- cmp r0, #0
- beq _0221349E
- ldr r0, [r0, #0xc]
- bl FUN_0200CAB4
- mov r0, #0x5e
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl FreeToHeap
- mov r0, #0x5e
- mov r1, #0
- lsl r0, r0, #2
- str r1, [r4, r0]
- pop {r3, r4, r5, pc}
-_02213480:
- mov r0, #0x59
- lsl r0, r0, #2
- lsl r5, r1, #2
- add r4, r4, r0
- ldr r0, [r4, r5]
- cmp r0, #0
- beq _0221349E
- ldr r0, [r0, #0xc]
- bl FUN_0200CAB4
- ldr r0, [r4, r5]
- bl FreeToHeap
- mov r0, #0
- str r0, [r4, r5]
-_0221349E:
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_022134A0
-MOD08_022134A0: ; 0x022134A0
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_022134A4
-MOD08_022134A4: ; 0x022134A4
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_022134A8
-MOD08_022134A8: ; 0x022134A8
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- add r5, r0, #0
- ldr r1, [r5, #0x18]
- add r2, r1, #4
- str r2, [r5, #0x18]
- ldr r1, [r2]
- add r2, r2, #4
- str r2, [r5, #0x18]
- ldr r4, [r2]
- add r2, r2, #4
- str r2, [r5, #0x18]
- bl MOD08_022132C4
- add r6, r0, #0
- add r0, r5, #0
- add r0, #0xc0
- ldr r1, [r0]
- lsl r0, r6, #2
- add r0, r1, r0
- add r0, #0xb0
- ldr r1, [r0]
- ldr r0, [r1, #4]
- str r0, [sp, #0x14]
- ldr r0, [r1, #8]
- str r0, [sp, #0x10]
- ldr r0, [r1]
- str r0, [sp, #0x18]
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _022134FE
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_022154A8
- bl MOD08_0222A6C8
- cmp r0, #1
- bne _022134FE
- mov r7, #0xc9
- b _02213500
-_022134FE:
- mov r7, #0xc8
-_02213500:
- mov r0, #2
- bl FUN_020187B0
- mov r2, #0x19
- mov r1, #0
- lsl r2, r2, #8
- bl MI_CpuFill8
- mov r0, #2
- mov r1, #0
- bl FUN_0201797C
- mov r0, #0
- str r0, [sp]
- add r0, r5, #0
- add r0, #0xc4
- mov r3, #0x32
- ldr r0, [r0]
- ldr r2, [sp, #0x18]
- mov r1, #2
- lsl r3, r3, #6
- bl FUN_02017E14
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #0x80
- str r0, [sp, #8]
- add r0, r5, #0
- add r0, #0xc8
- ldr r0, [r0]
- ldr r1, [sp, #0x14]
- ldr r2, [sp, #0x10]
- ldr r3, [r5]
- bl FUN_020030E8
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- ldr r0, [r5]
- add r2, r5, #0
- str r0, [sp, #0xc]
- add r2, #0xc4
- ldr r2, [r2]
- mov r0, #7
- add r1, r7, #0
- mov r3, #2
- bl FUN_020068C8
- cmp r4, #1
- bne _022135AC
- ldr r0, [r5]
- mov r1, #0x10
- bl AllocFromHeap
- mov r1, #0x5e
- lsl r1, r1, #2
- str r0, [r5, r1]
- add r0, r5, #0
- add r0, #0xc4
- ldr r2, [r0]
- ldr r0, [r5, r1]
- add r1, r6, #0
- str r2, [r0]
- add r0, r5, #0
- bl MOD08_022154D4
- mov r1, #0x5e
- lsl r1, r1, #2
- ldr r2, [r5, r1]
- str r0, [r2, #8]
- ldr r0, [r5, r1]
- mov r2, #0
- strb r2, [r0, #4]
- ldr r0, [r5, r1]
- strb r2, [r0, #5]
- ldr r0, _02213628 ; =MOD08_022133F4
- ldr r1, [r5, r1]
- ldr r2, _0221362C ; =0x00001001
- bl FUN_0200CA44
- mov r1, #0x5e
- lsl r1, r1, #2
- ldr r1, [r5, r1]
- str r0, [r1, #0xc]
-_022135AC:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_022154D4
- mov r1, #0
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r7, r0, #0x10
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_022154D4
- mov r1, #1
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_022154D4
- mov r1, #0x29
- bl FUN_0200782C
- sub r0, r4, r0
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- add r0, r5, #0
- add r0, #0xc4
- sub r7, #0x28
- ldr r0, [r0]
- mov r1, #2
- mov r2, #0
- neg r3, r7
- bl FUN_020179E0
- add r0, r5, #0
- add r0, #0xc4
- sub r4, #0x28
- ldr r0, [r0]
- mov r1, #2
- mov r2, #3
- neg r3, r4
- bl FUN_020179E0
- mov r0, #2
- mov r1, #1
- bl FUN_0201797C
- add r0, r5, #0
- bl MOD08_02215574
- add r1, r0, #0
- lsl r1, r1, #0x18
- mov r0, #2
- lsr r1, r1, #0x18
- bl FUN_020178BC
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- nop
-_02213628: .word MOD08_022133F4
-_0221362C: .word 0x00001001
-
- thumb_func_start MOD08_02213630
-MOD08_02213630: ; 0x02213630
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x18]
- add r0, r0, #4
- add r0, r0, #4
- str r0, [r4, #0x18]
- mov r0, #2
- bl FUN_020187B0
- mov r2, #0x19
- mov r1, #0
- lsl r2, r2, #8
- bl MI_CpuFill8
- add r0, r4, #0
- mov r1, #4
- bl MOD08_02213454
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02213658
-MOD08_02213658: ; 0x02213658
- push {r4, lr}
- sub sp, #0x18
- ldr r3, _022136CC ; =0x0222AA7C
- add r2, sp, #0
- add r4, r0, #0
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldr r0, [r4, #0x18]
- add r0, r0, #4
- str r0, [r4, #0x18]
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r0, #0xac
- ldr r0, [r0]
- bl FUN_0200BB34
- mov r1, #0x4e
- lsl r1, r1, #2
- str r0, [r4, r1]
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- ldr r1, [r4, r1]
- add r0, #0xac
- ldr r0, [r0]
- mov r2, #5
- bl FUN_0200BBF0
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r0, #0xac
- ldr r0, [r0]
- bl FUN_0200BB68
- mov r2, #0x11
- mov r1, #0
- lsl r2, r2, #0x10
- bl FUN_02008D24
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- mov r1, #0x4e
- add r0, #0xac
- lsl r1, r1, #2
- ldr r0, [r0]
- ldr r1, [r4, r1]
- add r2, sp, #0
- bl FUN_0200BF60
- add sp, #0x18
- pop {r4, pc}
- .align 2, 0
-_022136CC: .word 0x0222AA7C
-
- thumb_func_start MOD08_022136D0
-MOD08_022136D0: ; 0x022136D0
- push {r3, r4, r5, lr}
- sub sp, #0x18
- add r5, r0, #0
- ldr r0, [r5, #0x18]
- ldr r1, _0221377C ; =0x00004E21
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r2, [r0]
- add r0, r0, #4
- str r0, [r5, #0x18]
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r4, r2, r1
- ldrh r3, [r0, #0x14]
- lsr r2, r1, #2
- add r0, #0xac
- mul r2, r3
- add r4, r4, r2
- mov r2, #0
- str r2, [sp]
- mov r2, #1
- str r2, [sp, #4]
- str r4, [sp, #8]
- lsr r1, r1, #6
- ldr r0, [r0]
- ldr r1, [r5, r1]
- mov r2, #0x1b
- mov r3, #0x28
- bl FUN_0200C00C
- mov r0, #0x1b
- str r0, [sp]
- mov r3, #0x27
- str r3, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- mov r0, #1
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- add r2, r5, #0
- add r0, r5, #0
- str r4, [sp, #0x14]
- add r2, #0xc0
- ldr r2, [r2]
- add r0, #0xc8
- add r2, #0xac
- lsl r3, r3, #3
- ldr r0, [r0]
- ldr r2, [r2]
- ldr r3, [r5, r3]
- mov r1, #2
- bl FUN_0200C0DC
- mov r0, #0
- str r0, [sp]
- add r0, r5, #0
- mov r1, #0x4e
- str r4, [sp, #4]
- add r0, #0xc0
- ldr r0, [r0]
- lsl r1, r1, #2
- add r0, #0xac
- ldr r0, [r0]
- ldr r1, [r5, r1]
- mov r2, #0x1b
- mov r3, #0x29
- bl FUN_0200C124
- mov r0, #0
- str r0, [sp]
- add r0, r5, #0
- mov r1, #0x4e
- str r4, [sp, #4]
- add r0, #0xc0
- ldr r0, [r0]
- lsl r1, r1, #2
- add r0, #0xac
- ldr r0, [r0]
- ldr r1, [r5, r1]
- mov r2, #0x1b
- mov r3, #0x2a
- bl FUN_0200C13C
- add sp, #0x18
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0221377C: .word 0x00004E21
-
- thumb_func_start MOD08_02213780
-MOD08_02213780: ; 0x02213780
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x70
- add r4, r0, #0
- ldr r1, [r4, #0x18]
- ldr r6, _02213994 ; =0x00004E21
- add r2, r1, #4
- str r2, [r4, #0x18]
- ldr r1, [r2]
- add r2, r2, #4
- str r2, [r4, #0x18]
- mov ip, r1
- ldr r1, [r2]
- add r2, r2, #4
- str r2, [r4, #0x18]
- str r1, [sp, #0x10]
- ldr r1, [r2]
- add r2, r2, #4
- str r2, [r4, #0x18]
- str r1, [sp, #0xc]
- ldr r1, [r2]
- add r2, r2, #4
- str r2, [r4, #0x18]
- add r2, r4, #0
- add r2, #0xc0
- ldr r2, [r2]
- add r1, r1, r6
- ldrh r3, [r2, #0x14]
- lsr r2, r6, #2
- mul r2, r3
- add r2, r1, r2
- str r2, [sp, #0x58]
- add r2, r4, #0
- add r2, #0xc0
- ldr r2, [r2]
- ldrh r3, [r2, #0x14]
- lsr r2, r6, #2
- mul r2, r3
- add r2, r1, r2
- str r2, [sp, #0x5c]
- add r2, r4, #0
- add r2, #0xc0
- ldr r2, [r2]
- ldrh r3, [r2, #0x14]
- lsr r2, r6, #2
- mul r2, r3
- add r2, r1, r2
- str r2, [sp, #0x60]
- add r2, r4, #0
- add r2, #0xc0
- ldr r2, [r2]
- lsr r3, r6, #2
- ldrh r2, [r2, #0x14]
- mul r3, r2
- add r1, r1, r3
- str r1, [sp, #0x64]
- mov r1, #0
- str r1, [sp, #0x68]
- str r1, [sp, #0x6c]
- mov r1, ip
- bl MOD08_022132C4
- str r0, [sp, #0x1c]
- add r0, r4, #0
- add r0, #0xc0
- ldr r1, [r0]
- ldr r0, [sp, #0x1c]
- lsl r0, r0, #2
- add r0, r1, r0
- add r0, #0xb0
- ldr r1, [r0]
- ldr r0, [r1, #4]
- str r0, [sp, #0x18]
- ldr r0, [r1, #8]
- str r0, [sp, #0x14]
- ldr r0, [r1]
- ldr r1, [sp, #0x1c]
- str r0, [sp, #0x20]
- add r0, r4, #0
- bl MOD08_022154D4
- add r6, r0, #0
- beq _02213848
- mov r1, #0
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r7, r0, #0x10
- add r0, r6, #0
- mov r1, #1
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r5, r0, #0x10
- add r0, r6, #0
- mov r1, #0x29
- bl FUN_0200782C
- sub r0, r5, r0
- lsl r0, r0, #0x10
- asr r5, r0, #0x10
-_02213848:
- add r0, sp, #0x24
- strh r7, [r0]
- strh r5, [r0, #2]
- mov r1, #0
- strh r1, [r0, #4]
- strh r1, [r0, #6]
- mov r0, #0x64
- str r0, [sp, #0x2c]
- mov r0, #1
- str r1, [sp, #0x30]
- str r0, [sp, #0x34]
- str r0, [sp, #0x50]
- str r1, [sp, #0x54]
- add r2, sp, #0x58
- add r3, sp, #0x24
-_02213866:
- ldr r0, [r2]
- add r1, r1, #1
- str r0, [r3, #0x14]
- add r2, r2, #4
- add r3, r3, #4
- cmp r1, #6
- blt _02213866
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- mov r1, #0x4e
- add r0, #0xac
- lsl r1, r1, #2
- ldr r0, [r0]
- ldr r1, [r4, r1]
- add r2, sp, #0x24
- bl FUN_0200C154
- add r7, r0, #0
- cmp r6, #0
- bne _02213898
- mov r1, #0
- bl FUN_0200C644
- b _022138AC
-_02213898:
- add r0, r6, #0
- mov r1, #6
- bl FUN_0200782C
- cmp r0, #1
- bne _022138AC
- add r0, r7, #0
- mov r1, #0
- bl FUN_0200C644
-_022138AC:
- add r0, r4, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _022138CE
- ldr r1, [sp, #0x1c]
- add r0, r4, #0
- bl MOD08_022154A8
- bl MOD08_0222A6C8
- cmp r0, #1
- bne _022138CE
- add r0, r7, #0
- mov r1, #1
- bl FUN_0200C8D0
-_022138CE:
- ldr r1, [sp, #0x1c]
- add r0, r4, #0
- bl MOD08_022154D4
- cmp r0, #0
- beq _022138F0
- ldr r0, [r7]
- bl FUN_02020350
- add r1, r0, #0
- mov r3, #0x32
- ldr r1, [r1, #4]
- ldr r2, [sp, #0x20]
- mov r0, #0x13
- lsl r3, r3, #6
- bl FUN_0201C2C8
-_022138F0:
- ldr r1, [sp, #0x1c]
- add r0, r4, #0
- bl MOD08_022154D4
- cmp r0, #0
- beq _02213926
- ldr r0, [r7]
- bl FUN_02020354
- mov r1, #1
- bl FUN_0201E28C
- mov r1, #2
- str r1, [sp]
- mov r1, #0x20
- lsl r0, r0, #0x14
- str r1, [sp, #4]
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0xc8
- ldr r0, [r0]
- ldr r1, [sp, #0x18]
- ldr r2, [sp, #0x14]
- ldr r3, [r4]
- bl FUN_020030E8
-_02213926:
- ldr r0, [sp, #0xc]
- lsl r5, r0, #2
- mov r0, #0x4f
- lsl r0, r0, #2
- add r6, r4, r0
- ldr r0, [r6, r5]
- cmp r0, #0
- beq _0221393A
- bl ErrorHandling
-_0221393A:
- mov r0, #0x15
- str r7, [r6, r5]
- mov r2, #1
- add r1, r4, r5
- lsl r0, r0, #4
- str r2, [r1, r0]
- ldr r0, [sp, #0x10]
- cmp r0, #1
- bne _02213990
- ldr r1, [sp, #0x1c]
- add r0, r4, #0
- bl MOD08_022154D4
- cmp r0, #0
- beq _02213990
- mov r0, #0x59
- lsl r0, r0, #2
- add r6, r4, r0
- ldr r0, [r4]
- mov r1, #0x10
- bl AllocFromHeap
- str r0, [r6, r5]
- ldr r0, [r6, r5]
- ldr r1, [sp, #0x1c]
- str r7, [r0]
- add r0, r4, #0
- bl MOD08_022154D4
- ldr r1, [r6, r5]
- ldr r2, _02213998 ; =0x00001001
- str r0, [r1, #8]
- ldr r0, [r6, r5]
- mov r1, #0
- strb r1, [r0, #4]
- ldr r0, [r6, r5]
- strb r1, [r0, #5]
- ldr r0, _0221399C ; =MOD08_022133A8
- ldr r1, [r6, r5]
- bl FUN_0200CA44
- ldr r1, [r6, r5]
- str r0, [r1, #0xc]
-_02213990:
- add sp, #0x70
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02213994: .word 0x00004E21
-_02213998: .word 0x00001001
-_0221399C: .word MOD08_022133A8
-
- thumb_func_start MOD08_022139A0
-MOD08_022139A0: ; 0x022139A0
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x18]
- add r0, r0, #4
- str r0, [r4, #0x18]
- mov r0, #0x4e
- lsl r0, r0, #2
- ldr r1, [r4, r0]
- cmp r1, #0
- beq _022139C2
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r0, #0xac
- ldr r0, [r0]
- bl FUN_0200C398
-_022139C2:
- mov r0, #0x4e
- mov r1, #0
- lsl r0, r0, #2
- str r1, [r4, r0]
- pop {r4, pc}
-
- thumb_func_start MOD08_022139CC
-MOD08_022139CC: ; 0x022139CC
- push {r4, r5, r6, lr}
- add r5, r0, #0
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r1, [r0]
- add r0, r0, #4
- str r0, [r5, #0x18]
- mov r0, #0x4f
- lsl r0, r0, #2
- lsl r4, r1, #2
- add r6, r5, r0
- ldr r0, [r6, r4]
- cmp r0, #0
- beq _022139EE
- bl FUN_0200C3DC
-_022139EE:
- mov r0, #0x15
- mov r2, #0
- add r1, r5, r4
- lsl r0, r0, #4
- str r2, [r1, r0]
- str r2, [r6, r4]
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_022139FC
-MOD08_022139FC: ; 0x022139FC
- push {r3, lr}
- ldr r2, [r1, #0xc]
- cmp r2, #0
- bne _02213A0A
- bl FUN_0200CAB4
- pop {r3, pc}
-_02213A0A:
- mov r0, #0x4e
- ldr r2, [r1]
- lsl r0, r0, #2
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _02213A1C
- ldr r0, [r1, #4]
- bl FUN_0200BC1C
-_02213A1C:
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02213A20
-MOD08_02213A20: ; 0x02213A20
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r5, r0, #0
- ldr r0, [r5, #0x18]
- add r6, r5, #0
- add r1, r0, #4
- str r1, [r5, #0x18]
- ldr r0, [r1]
- add r6, #0x54
- str r0, [sp]
- add r0, r1, #4
- str r0, [r5, #0x18]
- ldr r2, [r0]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r1, [r0]
- add r0, r0, #4
- str r0, [r5, #0x18]
- add r0, r5, #0
- lsl r4, r2, #4
- str r0, [sp, #8]
- add r0, #0x4c
- lsl r1, r1, #2
- str r0, [sp, #8]
- str r5, [r0, r4]
- mov r0, #0x4e
- lsl r0, r0, #2
- ldr r3, [r5, r0]
- add r2, r5, r4
- str r3, [r2, #0x50]
- add r1, r5, r1
- add r0, r0, #4
- ldr r0, [r1, r0]
- mov r1, #0
- str r0, [r6, r4]
- mov r0, #1
- str r0, [r2, #0x58]
- ldr r0, [r6, r4]
- bl FUN_0200C644
- add r0, r5, #0
- bl MOD08_0221553C
- cmp r0, #1
- beq _02213A7C
- b _02213BCA
-_02213A7C:
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_02227468
- str r0, [sp, #4]
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_02227468
- add r7, r0, #0
- ldr r1, [sp]
- add r0, r5, #0
- bl MOD08_022132C4
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022154D4
- cmp r0, #0
- beq _02213AB8
- mov r1, #6
- bl FUN_0200782C
- b _02213ABA
-_02213AB8:
- mov r0, #0
-_02213ABA:
- cmp r0, #1
- ldr r0, [r6, r4]
- bne _02213AC8
- mov r1, #0
- bl FUN_0200C644
- b _02213ACE
-_02213AC8:
- mov r1, #1
- bl FUN_0200C644
-_02213ACE:
- ldr r0, [sp]
- cmp r0, #3
- bhi _02213BBC
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02213AE0: ; jump table
- .short _02213AE8 - _02213AE0 - 2 ; case 0
- .short _02213B36 - _02213AE0 - 2 ; case 1
- .short _02213B0E - _02213AE0 - 2 ; case 2
- .short _02213B7A - _02213AE0 - 2 ; case 3
-_02213AE8:
- ldr r0, [sp, #4]
- sub r0, r0, #3
- cmp r0, #1
- bhi _02213AFA
- ldr r0, [r6, r4]
- mov r1, #1
- bl FUN_0200C6C4
- b _02213BBC
-_02213AFA:
- add r5, #0x54
- ldr r0, [r5, r4]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r5, r4]
- mov r1, #0xff
- bl FUN_0200C6C4
- b _02213BBC
-_02213B0E:
- ldr r0, [sp, #4]
- cmp r0, #5
- beq _02213B18
- cmp r0, #2
- bne _02213B22
-_02213B18:
- ldr r0, [r6, r4]
- mov r1, #1
- bl FUN_0200C6C4
- b _02213BBC
-_02213B22:
- add r5, #0x54
- ldr r0, [r5, r4]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r5, r4]
- mov r1, #0xff
- bl FUN_0200C6C4
- b _02213BBC
-_02213B36:
- cmp r7, #5
- bhi _02213BBC
- add r0, r7, r7
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02213B46: ; jump table
- .short _02213BBC - _02213B46 - 2 ; case 0
- .short _02213BBC - _02213B46 - 2 ; case 1
- .short _02213B52 - _02213B46 - 2 ; case 2
- .short _02213B5C - _02213B46 - 2 ; case 3
- .short _02213B66 - _02213B46 - 2 ; case 4
- .short _02213B70 - _02213B46 - 2 ; case 5
-_02213B52:
- ldr r0, [r6, r4]
- mov r1, #0xff
- bl FUN_0200C6C4
- b _02213BBC
-_02213B5C:
- ldr r0, [r6, r4]
- mov r1, #1
- bl FUN_0200C6C4
- b _02213BBC
-_02213B66:
- ldr r0, [r6, r4]
- mov r1, #1
- bl FUN_0200C6C4
- b _02213BBC
-_02213B70:
- ldr r0, [r6, r4]
- mov r1, #0xff
- bl FUN_0200C6C4
- b _02213BBC
-_02213B7A:
- cmp r7, #5
- bhi _02213BBC
- add r0, r7, r7
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02213B8A: ; jump table
- .short _02213BBC - _02213B8A - 2 ; case 0
- .short _02213BBC - _02213B8A - 2 ; case 1
- .short _02213B96 - _02213B8A - 2 ; case 2
- .short _02213BA0 - _02213B8A - 2 ; case 3
- .short _02213BAA - _02213B8A - 2 ; case 4
- .short _02213BB4 - _02213B8A - 2 ; case 5
-_02213B96:
- ldr r0, [r6, r4]
- mov r1, #1
- bl FUN_0200C6C4
- b _02213BBC
-_02213BA0:
- ldr r0, [r6, r4]
- mov r1, #0xff
- bl FUN_0200C6C4
- b _02213BBC
-_02213BAA:
- ldr r0, [r6, r4]
- mov r1, #0xff
- bl FUN_0200C6C4
- b _02213BBC
-_02213BB4:
- ldr r0, [r6, r4]
- mov r1, #1
- bl FUN_0200C6C4
-_02213BBC:
- ldr r1, [sp, #8]
- mov r2, #1
- ldr r0, _02213BD0 ; =MOD08_022139FC
- add r1, r1, r4
- lsl r2, r2, #0xc
- bl FUN_0200CA44
-_02213BCA:
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- nop
-_02213BD0: .word MOD08_022139FC
-
- thumb_func_start MOD08_02213BD4
-MOD08_02213BD4: ; 0x02213BD4
- ldr r1, [r0, #0x18]
- mov r2, #0
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r3, [r1]
- add r1, r1, #4
- str r1, [r0, #0x18]
- lsl r1, r3, #4
- add r0, r0, r1
- str r2, [r0, #0x58]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02213BEC
-MOD08_02213BEC: ; 0x02213BEC
- ldr r1, [r0, #0x18]
- ldr r3, _02213BFC ; =MOD08_02213454
- add r2, r1, #4
- str r2, [r0, #0x18]
- ldr r1, [r2]
- add r2, r2, #4
- str r2, [r0, #0x18]
- bx r3
- .align 2, 0
-_02213BFC: .word MOD08_02213454
-
- thumb_func_start MOD08_02213C00
-MOD08_02213C00: ; 0x02213C00
- ldr r1, [r0, #0x18]
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r3, [r1]
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r2, [r1]
- add r1, r1, #4
- str r1, [r0, #0x18]
- add r0, r0, r3
- add r0, #0x6c
- strb r2, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02213C1C
-MOD08_02213C1C: ; 0x02213C1C
- ldr r1, [r0, #0x18]
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r3, [r1]
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r2, [r1]
- add r1, r1, #4
- str r1, [r0, #0x18]
- add r0, r0, r3
- add r0, #0x7c
- strb r2, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02213C38
-MOD08_02213C38: ; 0x02213C38
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02213C3C
-MOD08_02213C3C: ; 0x02213C3C
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02213C40
-MOD08_02213C40: ; 0x02213C40
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r1, #0xc0
- ldr r1, [r1]
- add r5, r0, #0
- ldrh r1, [r1, #0x14]
- add r0, r4, #0
- add r6, r2, #0
- bl MOD08_02227470
- add r7, r0, #0
- add r0, r4, #0
- add r4, #0xc0
- ldr r1, [r4]
- ldrh r1, [r1, #0x16]
- bl MOD08_02227470
- lsl r1, r6, #2
- add r1, r5, r1
- ldr r1, [r1, #0x1c]
- cmp r1, #2
- bne _02213C84
- cmp r7, r0
- bne _02213C7C
- cmp r0, #3
- beq _02213C78
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_02213C78:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02213C7C:
- cmp r0, #3
- bne _02213C90
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_02213C84:
- cmp r1, #0
- beq _02213C90
- cmp r0, #3
- bne _02213C90
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_02213C90:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02213C94
-MOD08_02213C94: ; 0x02213C94
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r7, r0, #0
- add r5, r1, #0
- add r0, r3, #0
- mov r1, #0
- add r4, r2, #0
- str r3, [sp, #0x10]
- bl MOD08_022156AC
- add r1, r0, #0
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- ldr r0, [r5]
- add r2, r5, #0
- str r0, [sp, #0xc]
- add r2, #0xc4
- ldr r2, [r2]
- mov r0, #7
- add r3, r4, #0
- bl FUN_0200687C
- ldr r0, [sp, #0x10]
- mov r1, #1
- bl MOD08_022156AC
- add r2, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- mov r0, #0x90
- str r0, [sp, #8]
- add r0, r5, #0
- add r0, #0xc8
- ldr r0, [r0]
- ldr r3, [r5]
- mov r1, #7
- bl FUN_020030E8
- add r0, r5, #0
- add r0, #0xc4
- lsl r1, r4, #0x18
- ldr r0, [r0]
- lsr r1, r1, #0x18
- bl FUN_02018744
- add r0, r5, #0
- mov r6, #2
- bl MOD08_02212004
- cmp r0, #1
- bne _02213D08
- mov r6, #4
- b _02213D18
-_02213D08:
- add r0, r7, #0
- add r1, r5, #0
- mov r2, #7
- bl MOD08_02213C40
- cmp r0, #1
- bne _02213D18
- mov r6, #3
-_02213D18:
- ldr r0, [sp, #0x10]
- add r1, r6, #0
- bl MOD08_022156AC
- add r1, r0, #0
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- ldr r0, [r5]
- add r5, #0xc4
- str r0, [sp, #0xc]
- ldr r2, [r5]
- mov r0, #7
- add r3, r4, #0
- bl FUN_020068C8
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02213D40
-MOD08_02213D40: ; 0x02213D40
- lsl r0, r0, #0x10
- and r0, r1
- cmp r1, r0
- bne _02213D4C
- mov r0, #1
- bx lr
-_02213D4C:
- mov r0, #0
- bx lr
-
- thumb_func_start MOD08_02213D50
-MOD08_02213D50: ; 0x02213D50
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- ldr r3, _02213DA0 ; =0x0222AA2C
- add r2, sp, #0
- add r5, r0, #0
- add r4, r2, #0
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldr r7, _02213DA4 ; =0x0222AADC
- mov r6, #0
-_02213D68:
- ldr r0, [r5, #0x18]
- ldr r1, [r4]
- bl MOD08_02213D40
- cmp r0, #0
- beq _02213D92
- ldr r0, [r4]
- mov r1, #0
- lsr r2, r0, #0x10
- cmp r2, #2
- blt _02213D8A
-_02213D7E:
- lsr r0, r2, #0x1f
- add r0, r2, r0
- asr r2, r0, #1
- add r1, r1, #1
- cmp r2, #2
- bge _02213D7E
-_02213D8A:
- lsl r1, r1, #2
- ldr r1, [r7, r1]
- add r0, r5, #0
- blx r1
-_02213D92:
- add r6, r6, #1
- add r4, r4, #4
- cmp r6, #4
- blo _02213D68
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02213DA0: .word 0x0222AA2C
-_02213DA4: .word 0x0222AADC
-
- thumb_func_start MOD08_02213DA8
-MOD08_02213DA8: ; 0x02213DA8
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5]
- mov r1, #0x4c
- bl AllocFromHeap
- add r4, r0, #0
- bne _02213DC0
- bl ErrorHandling
- mov r0, #0
- pop {r3, r4, r5, pc}
-_02213DC0:
- mov r1, #0
- mov r2, #0x4c
- bl memset
- mov r0, #0
- str r0, [r4]
- strb r0, [r4, #5]
- str r5, [r4, #0x48]
- strb r0, [r4, #9]
- mov r0, #0x1f
- strb r0, [r4, #0xa]
- mov r0, #0x1d
- strb r0, [r4, #0xb]
- mov r0, #2
- strb r0, [r4, #0xc]
- add r0, r5, #0
- mov r1, #5
- bl MOD08_02212498
- cmp r0, #1
- bne _02213DFA
- mov r0, #0
- strb r0, [r4, #9]
- mov r0, #0x1f
- strb r0, [r4, #0xa]
- mov r0, #0xf
- strb r0, [r4, #0xb]
- mov r0, #7
- strb r0, [r4, #0xc]
-_02213DFA:
- add r0, r5, #0
- mov r1, #5
- bl MOD08_02212498
- cmp r0, #2
- bne _02213E16
- mov r0, #7
- strb r0, [r4, #9]
- mov r0, #0xf
- strb r0, [r4, #0xa]
- mov r0, #0x1d
- strb r0, [r4, #0xb]
- mov r0, #2
- strb r0, [r4, #0xc]
-_02213E16:
- mov r1, #0
- add r2, r5, #0
- add r3, r4, #0
-_02213E1C:
- add r0, r2, #0
- add r0, #0x94
- ldr r0, [r0]
- add r1, r1, #1
- str r0, [r3, #0x1c]
- add r2, r2, #4
- add r3, r3, #4
- cmp r1, #0xa
- blt _02213E1C
- mov r0, #0x5f
- mov r1, #1
- lsl r0, r0, #2
- strb r1, [r5, r0]
- add r0, r4, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02213E3C
-MOD08_02213E3C: ; 0x02213E3C
- push {r3, r4, r5, lr}
- add r5, r1, #0
- ldrb r0, [r5, #5]
- cmp r0, #0
- beq _02213E50
- cmp r0, #1
- beq _02213E8E
- cmp r0, #2
- beq _02213EE0
- b _02213F2A
-_02213E50:
- ldr r0, [r5, #0x48]
- mov r1, #2
- bl MOD08_0221477C
- ldr r0, [r5, #0x48]
- mov r1, #2
- bl MOD08_02215600
- add r4, r0, #0
- ldr r0, [r5, #0x48]
- mov r1, #1
- bl MOD08_02215600
- lsl r1, r4, #0x18
- mov r0, #3
- lsr r1, r1, #0x18
- bl FUN_020178BC
- lsl r1, r4, #0x18
- mov r0, #2
- lsr r1, r1, #0x18
- bl FUN_020178BC
- mov r0, #2
- mov r1, #1
- bl FUN_0201797C
- ldrb r0, [r5, #5]
- add r0, r0, #1
- strb r0, [r5, #5]
- b _02213F2E
-_02213E8E:
- ldr r0, [r5, #0x48]
- mov r1, #3
- add r0, #0xc4
- ldr r0, [r0]
- mov r2, #2
- add r3, r1, #0
- bl FUN_020170F4
- ldr r0, [r5, #0x48]
- bl MOD08_02212004
- cmp r0, #1
- beq _02213EB8
- ldr r0, [r5, #0x48]
- mov r2, #0
- add r0, #0xc4
- ldr r0, [r0]
- mov r1, #3
- add r3, r2, #0
- bl FUN_020170F4
-_02213EB8:
- ldr r1, [r5, #0x48]
- ldr r3, [r5, #0x10]
- add r0, r5, #0
- mov r2, #3
- bl MOD08_02213C94
- ldrb r0, [r5, #9]
- mov r1, #4
- mov r2, #8
- str r0, [sp]
- ldrb r3, [r5, #0xa]
- ldr r0, _02213F34 ; =0x04000050
- bl G2x_SetBlendAlpha_
- add r0, r5, #0
- bl MOD08_02213D50
- ldrb r0, [r5, #5]
- add r0, r0, #1
- strb r0, [r5, #5]
-_02213EE0:
- ldrb r1, [r5, #9]
- ldrb r0, [r5, #0xb]
- mov r2, #0
- cmp r1, r0
- bhs _02213EF0
- add r0, r1, #2
- strb r0, [r5, #9]
- b _02213EF2
-_02213EF0:
- add r2, r2, #1
-_02213EF2:
- ldrb r1, [r5, #0xa]
- ldrb r0, [r5, #0xc]
- cmp r1, r0
- bls _02213F00
- sub r0, r1, #2
- strb r0, [r5, #0xa]
- b _02213F02
-_02213F00:
- add r2, r2, #1
-_02213F02:
- cmp r2, #2
- bne _02213F14
- ldrb r0, [r5, #0xb]
- strb r0, [r5, #9]
- ldrb r0, [r5, #0xc]
- strb r0, [r5, #0xa]
- ldrb r0, [r5, #5]
- add r0, r0, #1
- strb r0, [r5, #5]
-_02213F14:
- ldrb r0, [r5, #9]
- ldrb r1, [r5, #0xa]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _02213F38 ; =0x04000052
- strh r1, [r0]
- ldrb r0, [r5, #5]
- cmp r0, #2
- beq _02213F2E
- mov r0, #0
- pop {r3, r4, r5, pc}
-_02213F2A:
- mov r0, #0
- pop {r3, r4, r5, pc}
-_02213F2E:
- mov r0, #1
- pop {r3, r4, r5, pc}
- nop
-_02213F34: .word 0x04000050
-_02213F38: .word 0x04000052
-
- thumb_func_start MOD08_02213F3C
-MOD08_02213F3C: ; 0x02213F3C
- push {r3, r4, r5, lr}
- sub sp, #0x10
- add r4, r1, #0
- ldrb r0, [r4, #5]
- cmp r0, #4
- bls _02213F4A
- b _0221411C
-_02213F4A:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02213F56: ; jump table
- .short _02213F60 - _02213F56 - 2 ; case 0
- .short _02213F6E - _02213F56 - 2 ; case 1
- .short _02213FB0 - _02213F56 - 2 ; case 2
- .short _02213FF6 - _02213F56 - 2 ; case 3
- .short _022140F8 - _02213F56 - 2 ; case 4
-_02213F60:
- mov r0, #2
- mov r1, #1
- bl FUN_0201797C
- ldrb r0, [r4, #5]
- add r0, r0, #1
- strb r0, [r4, #5]
-_02213F6E:
- ldr r0, [r4, #0x48]
- mov r1, #2
- bl MOD08_02215600
- add r5, r0, #0
- ldr r0, [r4, #0x48]
- mov r1, #1
- bl MOD08_02215600
- lsl r1, r5, #0x18
- mov r0, #3
- lsr r1, r1, #0x18
- bl FUN_020178BC
- lsl r1, r5, #0x18
- mov r0, #2
- lsr r1, r1, #0x18
- bl FUN_020178BC
- ldrb r0, [r4, #0xa]
- mov r1, #4
- mov r2, #8
- str r0, [sp]
- ldrb r3, [r4, #9]
- ldr r0, _02214128 ; =0x04000050
- bl G2x_SetBlendAlpha_
- add r0, r4, #0
- bl MOD08_02213D50
- ldrb r0, [r4, #5]
- add r0, r0, #1
- strb r0, [r4, #5]
-_02213FB0:
- ldrb r1, [r4, #9]
- ldrb r0, [r4, #0xb]
- mov r2, #0
- cmp r1, r0
- bhs _02213FC0
- add r0, r1, #2
- strb r0, [r4, #9]
- b _02213FC2
-_02213FC0:
- add r2, r2, #1
-_02213FC2:
- ldrb r1, [r4, #0xa]
- ldrb r0, [r4, #0xc]
- cmp r1, r0
- bls _02213FD0
- sub r0, r1, #2
- strb r0, [r4, #0xa]
- b _02213FD2
-_02213FD0:
- add r2, r2, #1
-_02213FD2:
- cmp r2, #2
- bne _02213FE8
- ldrb r0, [r4, #0xb]
- add r0, r0, #2
- strb r0, [r4, #9]
- ldrb r0, [r4, #0xc]
- sub r0, r0, #2
- strb r0, [r4, #0xa]
- ldrb r0, [r4, #5]
- add r0, r0, #1
- strb r0, [r4, #5]
-_02213FE8:
- ldrb r0, [r4, #0xa]
- ldrb r1, [r4, #9]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0221412C ; =0x04000052
- strh r1, [r0]
- b _02214122
-_02213FF6:
- add r0, r4, #0
- add r0, #0x44
- ldrh r0, [r0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- cmp r0, #1
- bne _0221400A
- ldr r0, [r4, #0x48]
- bl MOD08_02214524
-_0221400A:
- add r0, r4, #0
- add r0, #0x44
- ldrh r0, [r0]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1f
- cmp r0, #1
- bne _0221401E
- ldr r0, [r4, #0x48]
- bl MOD08_02214524
-_0221401E:
- ldr r0, [r4, #0x48]
- mov r2, #0
- add r0, #0xc4
- ldr r0, [r0]
- mov r1, #3
- add r3, r2, #0
- bl FUN_020179E0
- ldr r0, [r4, #0x48]
- mov r1, #3
- add r0, #0xc4
- ldr r0, [r0]
- add r2, r1, #0
- mov r3, #0
- bl FUN_020179E0
- ldr r0, [r4, #0x48]
- mov r1, #3
- add r0, #0xc4
- ldr r0, [r0]
- mov r2, #2
- mov r3, #4
- bl FUN_020170F4
- ldr r0, [r4, #0x48]
- bl MOD08_02212004
- cmp r0, #0
- bne _02214078
- ldr r0, [r4, #0x48]
- mov r1, #3
- add r0, #0xc4
- ldr r0, [r0]
- mov r2, #0
- mov r3, #1
- bl FUN_020170F4
- ldr r0, [r4, #0x48]
- mov r1, #3
- bl MOD08_02215638
- ldr r0, [r4, #0x48]
- bl MOD08_02215660
- b _022140CC
-_02214078:
- ldr r2, [r4, #0x48]
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- ldr r0, [r2]
- mov r1, #0x61
- lsl r1, r1, #2
- str r0, [sp, #0xc]
- ldr r0, [r2, r1]
- add r1, r1, #4
- ldr r1, [r2, r1]
- add r2, #0xc4
- ldr r2, [r2]
- mov r3, #3
- bl FUN_0200687C
- mov r2, #0x66
- lsl r2, r2, #2
- add r1, r2, #0
- ldr r3, [r4, #0x48]
- mov r0, #0
- str r0, [sp]
- ldr r0, [r3, r2]
- sub r1, #0x14
- lsl r0, r0, #5
- str r0, [sp, #4]
- sub r0, r2, #4
- ldr r0, [r3, r0]
- sub r2, #0xc
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- add r0, r3, #0
- add r0, #0xc8
- ldr r0, [r0]
- ldr r1, [r3, r1]
- ldr r2, [r3, r2]
- ldr r3, [r3]
- bl FUN_020030E8
-_022140CC:
- ldr r2, [r4, #0x48]
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- ldr r0, [r2]
- mov r1, #0x61
- lsl r1, r1, #2
- str r0, [sp, #0xc]
- ldr r0, [r2, r1]
- add r1, #0xc
- ldr r1, [r2, r1]
- add r2, #0xc4
- ldr r2, [r2]
- mov r3, #3
- bl FUN_020068C8
- ldrb r0, [r4, #5]
- add r0, r0, #1
- strb r0, [r4, #5]
- b _02214122
-_022140F8:
- ldr r0, [r4, #0x48]
- bl MOD08_02212004
- cmp r0, #0
- bne _02214108
- bl MOD11_02231678
- b _0221410C
-_02214108:
- bl MOD12_02233560
-_0221410C:
- ldr r0, [r4, #0x48]
- mov r1, #2
- bl MOD08_02214850
- ldrb r0, [r4, #5]
- add r0, r0, #1
- strb r0, [r4, #5]
- b _02214122
-_0221411C:
- add sp, #0x10
- mov r0, #0
- pop {r3, r4, r5, pc}
-_02214122:
- mov r0, #1
- add sp, #0x10
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02214128: .word 0x04000050
-_0221412C: .word 0x04000052
-
- thumb_func_start MOD08_02214130
-MOD08_02214130: ; 0x02214130
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- ldrb r0, [r4, #5]
- cmp r0, #0
- beq _02214142
- cmp r0, #1
- beq _022141BE
- b _0221423A
-_02214142:
- ldrb r0, [r4, #0xd]
- ldr r2, [r4, #0x48]
- cmp r0, #0
- bne _02214180
- mov r3, #0
- str r3, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- mov r5, #0x67
- add r0, r2, #0
- str r3, [sp, #8]
- lsl r5, r5, #2
- ldr r2, [r2, r5]
- add r0, #0xc8
- lsl r2, r2, #0x10
- ldr r0, [r0]
- mov r1, #1
- lsr r2, r2, #0x10
- bl FUN_02003210
- mov r1, #0
- str r1, [sp]
- ldr r0, [r4, #0x48]
- add r2, r5, #0
- add r0, #0xc8
- ldr r0, [r0]
- add r2, #0x64
- mov r3, #0x10
- bl FUN_02003A64
- b _022141B8
-_02214180:
- mov r3, #0
- str r3, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- ldr r0, _02214254 ; =0x0000FFFF
- mov r5, #0x67
- str r0, [sp, #8]
- add r0, r2, #0
- lsl r5, r5, #2
- ldr r2, [r2, r5]
- add r0, #0xc8
- lsl r2, r2, #0x10
- ldr r0, [r0]
- mov r1, #1
- lsr r2, r2, #0x10
- bl FUN_02003210
- ldr r0, _02214254 ; =0x0000FFFF
- add r2, r5, #0
- str r0, [sp]
- ldr r0, [r4, #0x48]
- mov r1, #0
- add r0, #0xc8
- ldr r0, [r0]
- add r2, #0x64
- mov r3, #0x10
- bl FUN_02003A64
-_022141B8:
- ldrb r0, [r4, #5]
- add r0, r0, #1
- strb r0, [r4, #5]
-_022141BE:
- ldr r0, [r4, #0x48]
- add r0, #0xc8
- ldr r0, [r0]
- bl FUN_020038E4
- cmp r0, #0
- bne _0221424E
- ldr r0, [r4, #0x48]
- mov r2, #0
- add r0, #0xc4
- ldr r0, [r0]
- mov r1, #3
- add r3, r2, #0
- bl FUN_020170F4
- ldr r1, [r4, #0x48]
- ldr r3, [r4, #0x10]
- add r0, r4, #0
- mov r2, #3
- bl MOD08_02213C94
- ldrb r0, [r4, #0xd]
- cmp r0, #0
- bne _02214208
- mov r0, #0x10
- str r0, [sp]
- mov r3, #0
- str r3, [sp, #4]
- str r3, [sp, #8]
- ldr r0, [r4, #0x48]
- mov r1, #1
- add r0, #0xc8
- ldr r0, [r0]
- lsl r2, r1, #9
- bl FUN_02003210
- b _02214222
-_02214208:
- mov r0, #0x10
- str r0, [sp]
- mov r3, #0
- ldr r0, _02214254 ; =0x0000FFFF
- str r3, [sp, #4]
- str r0, [sp, #8]
- ldr r0, [r4, #0x48]
- mov r1, #1
- add r0, #0xc8
- ldr r0, [r0]
- lsl r2, r1, #9
- bl FUN_02003210
-_02214222:
- add r0, r4, #0
- bl MOD08_02213D50
- mov r0, #0x5f
- ldr r1, [r4, #0x48]
- mov r2, #2
- lsl r0, r0, #2
- strb r2, [r1, r0]
- ldrb r0, [r4, #5]
- add r0, r0, #1
- strb r0, [r4, #5]
- b _0221424E
-_0221423A:
- ldr r0, [r4, #0x48]
- add r0, #0xc8
- ldr r0, [r0]
- bl FUN_020038E4
- cmp r0, #0
- bne _0221424E
- add sp, #0xc
- mov r0, #0
- pop {r4, r5, pc}
-_0221424E:
- mov r0, #1
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-_02214254: .word 0x0000FFFF
-
- thumb_func_start MOD08_02214258
-MOD08_02214258: ; 0x02214258
- push {r3, r4, r5, lr}
- sub sp, #0x10
- add r4, r1, #0
- ldrb r0, [r4, #5]
- cmp r0, #3
- bls _02214266
- b _02214462
-_02214266:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02214272: ; jump table
- .short _0221427A - _02214272 - 2 ; case 0
- .short _02214286 - _02214272 - 2 ; case 1
- .short _02214300 - _02214272 - 2 ; case 2
- .short _022143F0 - _02214272 - 2 ; case 3
-_0221427A:
- add r0, r4, #0
- bl MOD08_02213D50
- ldrb r0, [r4, #5]
- add r0, r0, #1
- strb r0, [r4, #5]
-_02214286:
- ldrb r0, [r4, #0xd]
- cmp r0, #0
- bne _022142C2
- mov r3, #0
- str r3, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- str r3, [sp, #8]
- ldr r0, [r4, #0x48]
- mov r1, #1
- add r0, #0xc8
- ldr r0, [r0]
- lsl r2, r1, #9
- bl FUN_02003210
- ldr r3, [r4, #0x48]
- mov r1, #0
- mov r2, #0x67
- add r0, r3, #0
- str r1, [sp]
- lsl r2, r2, #2
- ldr r2, [r3, r2]
- add r0, #0xc8
- lsl r2, r2, #0x10
- ldr r0, [r0]
- lsr r2, r2, #0x10
- mov r3, #0x10
- bl FUN_02003A64
- b _022142FA
-_022142C2:
- mov r3, #0
- str r3, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- ldr r0, _0221448C ; =0x0000FFFF
- mov r1, #1
- str r0, [sp, #8]
- ldr r0, [r4, #0x48]
- lsl r2, r1, #9
- add r0, #0xc8
- ldr r0, [r0]
- bl FUN_02003210
- mov r2, #0x67
- ldr r3, [r4, #0x48]
- ldr r0, _0221448C ; =0x0000FFFF
- lsl r2, r2, #2
- str r0, [sp]
- add r0, r3, #0
- ldr r2, [r3, r2]
- add r0, #0xc8
- lsl r2, r2, #0x10
- ldr r0, [r0]
- mov r1, #0
- lsr r2, r2, #0x10
- mov r3, #0x10
- bl FUN_02003A64
-_022142FA:
- ldrb r0, [r4, #5]
- add r0, r0, #1
- strb r0, [r4, #5]
-_02214300:
- ldr r0, [r4, #0x48]
- add r0, #0xc8
- ldr r0, [r0]
- bl FUN_020038E4
- cmp r0, #0
- beq _02214310
- b _02214486
-_02214310:
- add r0, r4, #0
- add r0, #0x44
- ldrh r0, [r0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- cmp r0, #1
- bne _02214324
- ldr r0, [r4, #0x48]
- bl MOD08_02214524
-_02214324:
- add r0, r4, #0
- add r0, #0x44
- ldrh r0, [r0]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1f
- cmp r0, #1
- bne _02214338
- ldr r0, [r4, #0x48]
- bl MOD08_02214524
-_02214338:
- mov r0, #3
- mov r1, #0
- bl FUN_0201797C
- ldr r0, [r4, #0x48]
- bl MOD08_02212004
- cmp r0, #0
- bne _0221436A
- ldr r0, [r4, #0x48]
- mov r1, #3
- add r0, #0xc4
- ldr r0, [r0]
- mov r2, #0
- mov r3, #1
- bl FUN_020170F4
- ldr r0, [r4, #0x48]
- mov r1, #3
- bl MOD08_02215638
- ldr r0, [r4, #0x48]
- bl MOD08_02215660
- b _022143BE
-_0221436A:
- ldr r2, [r4, #0x48]
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- ldr r0, [r2]
- mov r1, #0x61
- lsl r1, r1, #2
- str r0, [sp, #0xc]
- ldr r0, [r2, r1]
- add r1, r1, #4
- ldr r1, [r2, r1]
- add r2, #0xc4
- ldr r2, [r2]
- mov r3, #3
- bl FUN_0200687C
- mov r2, #0x66
- lsl r2, r2, #2
- add r1, r2, #0
- ldr r3, [r4, #0x48]
- mov r0, #0
- str r0, [sp]
- ldr r0, [r3, r2]
- sub r1, #0x14
- lsl r0, r0, #5
- str r0, [sp, #4]
- sub r0, r2, #4
- ldr r0, [r3, r0]
- sub r2, #0xc
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- add r0, r3, #0
- add r0, #0xc8
- ldr r0, [r0]
- ldr r1, [r3, r1]
- ldr r2, [r3, r2]
- ldr r3, [r3]
- bl FUN_020030E8
-_022143BE:
- ldr r2, [r4, #0x48]
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- ldr r0, [r2]
- mov r1, #0x61
- lsl r1, r1, #2
- str r0, [sp, #0xc]
- ldr r0, [r2, r1]
- add r1, #0xc
- ldr r1, [r2, r1]
- add r2, #0xc4
- ldr r2, [r2]
- mov r3, #3
- bl FUN_020068C8
- mov r0, #3
- mov r1, #1
- bl FUN_0201797C
- ldrb r0, [r4, #5]
- add r0, r0, #1
- strb r0, [r4, #5]
-_022143F0:
- ldr r0, [r4, #0x48]
- mov r2, #0
- add r0, #0xc4
- ldr r0, [r0]
- mov r1, #3
- add r3, r2, #0
- bl FUN_020179E0
- ldr r0, [r4, #0x48]
- mov r1, #3
- add r0, #0xc4
- ldr r0, [r0]
- add r2, r1, #0
- mov r3, #0
- bl FUN_020179E0
- ldrb r0, [r4, #0xd]
- ldr r2, [r4, #0x48]
- cmp r0, #0
- bne _0221443A
- mov r0, #0x10
- str r0, [sp]
- mov r3, #0
- str r3, [sp, #4]
- mov r5, #0x67
- add r0, r2, #0
- str r3, [sp, #8]
- lsl r5, r5, #2
- ldr r2, [r2, r5]
- add r0, #0xc8
- lsl r2, r2, #0x10
- ldr r0, [r0]
- mov r1, #1
- lsr r2, r2, #0x10
- bl FUN_02003210
- b _0221445C
-_0221443A:
- mov r0, #0x10
- str r0, [sp]
- mov r3, #0
- mov r5, #0x67
- ldr r0, _0221448C ; =0x0000FFFF
- str r3, [sp, #4]
- str r0, [sp, #8]
- add r0, r2, #0
- lsl r5, r5, #2
- ldr r2, [r2, r5]
- add r0, #0xc8
- lsl r2, r2, #0x10
- ldr r0, [r0]
- mov r1, #1
- lsr r2, r2, #0x10
- bl FUN_02003210
-_0221445C:
- ldrb r0, [r4, #5]
- add r0, r0, #1
- strb r0, [r4, #5]
-_02214462:
- ldr r0, [r4, #0x48]
- add r0, #0xc8
- ldr r0, [r0]
- bl FUN_020038E4
- cmp r0, #0
- bne _02214486
- mov r0, #0x5f
- ldr r1, [r4, #0x48]
- mov r2, #2
- lsl r0, r0, #2
- strb r2, [r1, r0]
- ldrb r0, [r4, #5]
- add sp, #0x10
- add r0, r0, #1
- strb r0, [r4, #5]
- mov r0, #0
- pop {r3, r4, r5, pc}
-_02214486:
- mov r0, #1
- add sp, #0x10
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0221448C: .word 0x0000FFFF
-
- thumb_func_start MOD08_02214490
-MOD08_02214490: ; 0x02214490
- push {r3, lr}
- add r0, r1, #0
- bl MOD08_02213D50
- mov r0, #0
- pop {r3, pc}
-
- thumb_func_start MOD08_0221449C
-MOD08_0221449C: ; 0x0221449C
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- bl MOD08_02213D50
- add r0, r4, #0
- add r0, #0x44
- ldrh r0, [r0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- cmp r0, #1
- bne _022144BA
- ldr r0, [r4, #0x48]
- bl MOD08_02214524
-_022144BA:
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022144C0
-MOD08_022144C0: ; 0x022144C0
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0x18]
- cmp r0, #1
- bne _022144DA
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
- pop {r3, r4, r5, pc}
-_022144DA:
- mov r3, #4
- mov r1, #8
- ldrsh r2, [r4, r3]
- ldrsh r0, [r4, r1]
- add r0, r2, r0
- strh r0, [r4, #4]
- mov r0, #6
- ldrsh r2, [r4, r0]
- mov r0, #0xa
- ldrsh r0, [r4, r0]
- add r0, r2, r0
- strh r0, [r4, #6]
- ldrsh r0, [r4, r1]
- cmp r0, #0
- beq _02214508
- ldr r1, [r4, #0xc]
- ldrsh r3, [r4, r3]
- lsl r1, r1, #0x18
- ldr r0, [r4]
- lsr r1, r1, #0x18
- mov r2, #0
- bl FUN_020179E0
-_02214508:
- mov r0, #0xa
- ldrsh r0, [r4, r0]
- cmp r0, #0
- beq _02214522
- ldr r1, [r4, #0xc]
- mov r3, #6
- lsl r1, r1, #0x18
- ldrsh r3, [r4, r3]
- ldr r0, [r4]
- lsr r1, r1, #0x18
- mov r2, #3
- bl FUN_020179E0
-_02214522:
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02214524
-MOD08_02214524: ; 0x02214524
- push {r4, lr}
- add r4, r0, #0
- bne _0221452E
- bl ErrorHandling
-_0221452E:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- cmp r1, #0
- beq _0221453C
- mov r0, #1
- str r0, [r1, #0x18]
-_0221453C:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02214540
-MOD08_02214540: ; 0x02214540
- mov r1, #0x67
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- bx lr
-
- thumb_func_start MOD08_02214548
-MOD08_02214548: ; 0x02214548
- mov r0, #0
- bx lr
-
- thumb_func_start MOD08_0221454C
-MOD08_0221454C: ; 0x0221454C
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5, #0x48]
- mov r1, #0x20
- ldr r0, [r0]
- bl AllocFromHeap
- add r4, r0, #0
- ldr r0, [r5, #0x48]
- mov r2, #6
- add r0, #0xc4
- ldr r0, [r0]
- str r0, [r4]
- ldr r0, [r5, #0x48]
- add r0, #0x9c
- ldr r0, [r0]
- strh r0, [r4, #4]
- ldr r0, [r5, #0x48]
- add r0, #0xa0
- ldr r0, [r0]
- strh r0, [r4, #6]
- ldr r0, [r5, #0x48]
- add r0, #0x94
- ldr r0, [r0]
- strh r0, [r4, #8]
- ldr r0, [r5, #0x48]
- add r0, #0x98
- ldr r0, [r0]
- strh r0, [r4, #0xa]
- mov r0, #3
- str r0, [r4, #0xc]
- str r0, [r4, #0x10]
- ldr r1, [r5, #0x48]
- add r0, r5, #0
- bl MOD08_02213C40
- cmp r0, #1
- bne _022145C0
- mov r0, #8
- ldrsh r1, [r4, r0]
- sub r0, #9
- mul r0, r1
- strh r0, [r4, #8]
- mov r0, #0xa
- ldrsh r1, [r4, r0]
- sub r0, #0xb
- mul r0, r1
- strh r0, [r4, #0xa]
- mov r0, #4
- ldrsh r1, [r4, r0]
- sub r0, r0, #5
- mul r0, r1
- strh r0, [r4, #4]
- mov r0, #6
- ldrsh r1, [r4, r0]
- sub r0, r0, #7
- mul r0, r1
- strh r0, [r4, #6]
-_022145C0:
- mov r0, #1
- str r0, [r4, #0x14]
- mov r1, #0
- str r1, [r4, #0x18]
- mov r1, #6
- ldr r2, [r5, #0x48]
- lsl r1, r1, #6
- str r4, [r2, r1]
- add r1, r5, #0
- add r1, #0x44
- ldrh r2, [r1]
- mov r1, #1
- add r5, #0x44
- bic r2, r1
- orr r0, r2
- strh r0, [r5]
- ldr r0, _022145F0 ; =MOD08_022144C0
- ldr r2, _022145F4 ; =0x00001001
- add r1, r4, #0
- bl FUN_0200CA44
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_022145F0: .word MOD08_022144C0
-_022145F4: .word 0x00001001
-
- thumb_func_start MOD08_022145F8
-MOD08_022145F8: ; 0x022145F8
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- ldr r4, [r0, #0x48]
- str r0, [sp]
- ldr r0, [r4]
- mov r1, #0x20
- bl AllocFromHeap
- add r6, r0, #0
- ldr r0, [r4]
- mov r1, #0xc4
- bl AllocFromHeap
- str r0, [r6, #0x1c]
- mov r0, #6
- lsl r0, r0, #6
- str r6, [r4, r0]
- ldr r0, [sp]
- mov r1, #2
- add r0, #0x44
- ldrh r0, [r0]
- add r2, r0, #0
- ldr r0, [sp]
- orr r2, r1
- add r0, #0x44
- strh r2, [r0]
- mov r0, #0
- str r0, [r6, #0x18]
- add r0, r4, #0
- bl MOD08_022155C4
- bl MOD08_022189A0
- add r5, r0, #0
- mov r0, #0
- add r1, r0, #0
- bl MOD08_02218998
- add r1, r0, #0
- ldr r2, [r4]
- add r0, r5, #0
- bl MOD08_022187F4
- mov r4, #0
- ldr r1, [r6, #0x1c]
- ldr r7, _022146C8 ; =0x0222AAF8
- add r1, #0xc0
- str r0, [r1]
- str r4, [sp, #4]
- add r5, r4, #0
-_0221465C:
- ldr r0, [r6, #0x1c]
- strh r4, [r0, r5]
- ldr r0, [r6, #0x1c]
- add r1, r0, r5
- ldrsh r0, [r0, r5]
- add r0, #8
- strh r0, [r1, #2]
- mov r0, #0
- ldrsh r1, [r7, r0]
- ldr r0, [r6, #0x1c]
- add r0, r0, r5
- strh r1, [r0, #4]
- ldr r0, [r6, #0x1c]
- add r1, r0, r5
- mov r0, #0
- strh r0, [r1, #6]
- add r1, r0, #0
- bl MOD08_02218998
- ldr r1, [r6, #0x1c]
- mov r2, #6
- add r1, r1, r5
- str r0, [r1, #8]
- ldr r0, [sp]
- add r1, r0, #0
- ldr r1, [r1, #0x48]
- bl MOD08_02213C40
- cmp r0, #1
- bne _022146A6
- ldr r0, [r6, #0x1c]
- mov r1, #4
- add r0, r0, r5
- ldrsh r2, [r0, r1]
- sub r1, r1, #5
- mul r1, r2
- strh r1, [r0, #4]
-_022146A6:
- ldr r0, [sp, #4]
- add r4, #8
- add r0, r0, #1
- add r5, #0xc
- add r7, r7, #2
- str r0, [sp, #4]
- cmp r0, #0x10
- blt _0221465C
- mov r2, #1
- ldr r0, _022146CC ; =MOD08_022146E4
- add r1, r6, #0
- lsl r2, r2, #0xc
- bl FUN_0200CA44
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022146C8: .word 0x0222AAF8
-_022146CC: .word MOD08_022146E4
-
- thumb_func_start MOD08_022146D0
-MOD08_022146D0: ; 0x022146D0
- add r1, r0, #0
- add r1, #0x44
- ldrh r2, [r1]
- mov r1, #2
- add r0, #0x44
- orr r1, r2
- strh r1, [r0]
- mov r0, #0
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_022146E4
-MOD08_022146E4: ; 0x022146E4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r1, #0
- add r6, r0, #0
- ldr r0, [r5, #0x18]
- ldr r4, [r5, #0x1c]
- cmp r0, #1
- bne _02214712
- add r4, #0xc0
- ldr r0, [r4]
- bl MOD08_02218870
- ldr r0, [r5, #0x1c]
- bl FreeToHeap
- add r0, r5, #0
- bl FreeToHeap
- add r0, r6, #0
- bl FUN_0200CAB4
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-_02214712:
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- bl MOD08_02218894
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
-_02214722:
- mov r0, #6
- ldrsh r1, [r4, r0]
- mov r0, #4
- ldrsh r0, [r4, r0]
- add r0, r1, r0
- strh r0, [r4, #6]
- mov r0, #0
- ldrsh r6, [r4, r0]
- mov r0, #2
- ldrsh r0, [r4, r0]
- cmp r6, r0
- bge _0221476A
- ldr r0, [sp]
- lsl r1, r6, #2
- add r5, r0, r1
- mov r7, #2
-_02214742:
- ldr r1, [r4, #8]
- mov r2, #6
- lsl r0, r1, #0x10
- asr r1, r1, #0x10
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- lsl r1, r1, #0x10
- ldrsh r2, [r4, r2]
- asr r0, r0, #0x10
- lsr r1, r1, #0x10
- add r0, r0, r2
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl MOD08_02218998
- stmia r5!, {r0}
- ldrsh r0, [r4, r7]
- add r6, r6, #1
- cmp r6, r0
- blt _02214742
-_0221476A:
- ldr r0, [sp, #4]
- add r4, #0xc
- add r0, r0, #1
- str r0, [sp, #4]
- cmp r0, #0x10
- blt _02214722
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221477C
-MOD08_0221477C: ; 0x0221477C
- push {r3, r4, r5, lr}
- sub sp, #0x10
- add r4, r1, #0
- mov r1, #2
- add r5, r0, #0
- bl MOD08_02215600
- add r1, r0, #0
- lsl r0, r4, #0x18
- lsl r1, r1, #0x18
- lsr r0, r0, #0x18
- lsr r1, r1, #0x18
- bl FUN_020178BC
- lsl r0, r4, #0x18
- lsr r0, r0, #0x18
- mov r1, #0
- bl FUN_0201797C
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _022147C0
- add r0, r5, #0
- add r0, #0xc4
- lsl r1, r4, #0x18
- ldr r0, [r0]
- lsr r1, r1, #0x18
- mov r2, #2
- mov r3, #4
- bl FUN_020170F4
- b _022147E4
-_022147C0:
- add r0, r5, #0
- add r0, #0xc4
- lsl r1, r4, #0x18
- ldr r0, [r0]
- lsr r1, r1, #0x18
- mov r2, #0
- mov r3, #1
- bl FUN_020170F4
- add r0, r5, #0
- add r0, #0xc4
- lsl r1, r4, #0x18
- ldr r0, [r0]
- lsr r1, r1, #0x18
- mov r2, #2
- mov r3, #4
- bl FUN_020170F4
-_022147E4:
- add r0, r5, #0
- add r0, #0xc4
- lsl r1, r4, #0x18
- ldr r0, [r0]
- lsr r1, r1, #0x18
- bl FUN_02018744
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _02214822
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- ldr r0, [r5]
- mov r1, #0x61
- add r2, r5, #0
- lsl r1, r1, #2
- str r0, [sp, #0xc]
- ldr r0, [r5, r1]
- add r1, r1, #4
- add r2, #0xc4
- ldr r1, [r5, r1]
- ldr r2, [r2]
- add r3, r4, #0
- bl FUN_0200687C
- b _0221482A
-_02214822:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02215638
-_0221482A:
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- ldr r0, [r5]
- mov r1, #0x61
- lsl r1, r1, #2
- str r0, [sp, #0xc]
- ldr r0, [r5, r1]
- add r1, #0xc
- ldr r1, [r5, r1]
- add r5, #0xc4
- ldr r2, [r5]
- add r3, r4, #0
- bl FUN_020068C8
- add sp, #0x10
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02214850
-MOD08_02214850: ; 0x02214850
- push {r3, r4, r5, lr}
- add r4, r1, #0
- mov r1, #1
- add r5, r0, #0
- bl MOD08_02215600
- add r1, r0, #0
- lsl r0, r4, #0x18
- lsl r1, r1, #0x18
- lsr r0, r0, #0x18
- lsr r1, r1, #0x18
- bl FUN_020178BC
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _02214888
- add r0, r5, #0
- add r0, #0xc4
- lsl r1, r4, #0x18
- ldr r0, [r0]
- lsr r1, r1, #0x18
- mov r2, #2
- mov r3, #3
- bl FUN_020170F4
- b _022148AC
-_02214888:
- add r0, r5, #0
- add r0, #0xc4
- lsl r1, r4, #0x18
- mov r2, #0
- ldr r0, [r0]
- lsr r1, r1, #0x18
- add r3, r2, #0
- bl FUN_020170F4
- add r0, r5, #0
- add r0, #0xc4
- lsl r1, r4, #0x18
- ldr r0, [r0]
- lsr r1, r1, #0x18
- mov r2, #2
- mov r3, #3
- bl FUN_020170F4
-_022148AC:
- add r5, #0xc4
- lsl r1, r4, #0x18
- ldr r0, [r5]
- lsr r1, r1, #0x18
- bl FUN_02018744
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022148BC
-MOD08_022148BC: ; 0x022148BC
- add r1, r0, #0
- add r1, #0x44
- ldrh r2, [r1]
- mov r1, #1
- add r0, #0x44
- bic r2, r1
- mov r1, #1
- orr r1, r2
- strh r1, [r0]
- mov r0, #0
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_022148D4
-MOD08_022148D4: ; 0x022148D4
- push {r3, lr}
- ldr r0, [r0, #0x48]
- bl MOD08_02214524
- mov r0, #0
- pop {r3, pc}
-
- thumb_func_start MOD08_022148E0
-MOD08_022148E0: ; 0x022148E0
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldr r2, [r4, #0x14]
- add r5, r0, #0
- lsl r3, r2, #2
- ldr r2, _0221490C ; =0x0222AA64
- ldr r2, [r2, r3]
- blx r2
- cmp r0, #0
- bne _0221490A
- mov r0, #0x5f
- ldr r1, [r4, #0x48]
- mov r2, #0
- lsl r0, r0, #2
- strb r2, [r1, r0]
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
-_0221490A:
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0221490C: .word 0x0222AA64
-
- thumb_func_start MOD08_02214910
-MOD08_02214910: ; 0x02214910
- push {r3, r4, r5, lr}
- add r5, r0, #0
- bl MOD08_02213DA8
- add r4, r0, #0
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- strb r0, [r4, #0xd]
- ldr r0, [r5, #0x18]
- ldr r2, _02214954 ; =0x0000044C
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- str r0, [r4, #0x10]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r1, [r0]
- add r0, r0, #4
- str r0, [r5, #0x18]
- lsl r0, r1, #0x10
- lsr r0, r0, #0x10
- str r0, [r4, #0x14]
- ldr r0, _02214958 ; =0xFFFF0000
- and r0, r1
- lsr r0, r0, #0x10
- str r0, [r4, #0x18]
- ldr r0, _0221495C ; =MOD08_022148E0
- add r1, r4, #0
- bl FUN_0200CA44
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02214954: .word 0x0000044C
-_02214958: .word 0xFFFF0000
-_0221495C: .word MOD08_022148E0
-
- thumb_func_start MOD08_02214960
-MOD08_02214960: ; 0x02214960
- ldr r1, [r0, #0x18]
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r3, [r1]
- add r2, r1, #4
- str r2, [r0, #0x18]
- ldr r1, [r2]
- add r2, r2, #4
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- str r2, [r0, #0x18]
- cmp r3, #3
- bhi _022149B4
- add r2, r3, r3
- add r2, pc
- ldrh r2, [r2, #6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_02214986: ; jump table
- .short _0221498E - _02214986 - 2 ; case 0
- .short _02214998 - _02214986 - 2 ; case 1
- .short _022149A2 - _02214986 - 2 ; case 2
- .short _022149AC - _02214986 - 2 ; case 3
-_0221498E:
- mov r2, #6
- lsl r2, r2, #6
- ldr r0, [r0, r2]
- strh r1, [r0, #8]
- bx lr
-_02214998:
- mov r2, #6
- lsl r2, r2, #6
- ldr r0, [r0, r2]
- strh r1, [r0, #0xa]
- bx lr
-_022149A2:
- mov r2, #6
- lsl r2, r2, #6
- ldr r0, [r0, r2]
- strh r1, [r0, #4]
- bx lr
-_022149AC:
- mov r2, #6
- lsl r2, r2, #6
- ldr r0, [r0, r2]
- strh r1, [r0, #4]
-_022149B4:
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_022149B8
-MOD08_022149B8: ; 0x022149B8
- push {r3, r4, r5, lr}
- add r5, r0, #0
- bl MOD08_02213DA8
- add r4, r0, #0
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- strb r0, [r4, #0xd]
- ldr r0, [r5, #0x18]
- ldr r2, _02214A00 ; =0x0000044C
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- str r0, [r4, #0x10]
- ldr r0, [r5, #0x18]
- add r1, r0, #4
- str r1, [r5, #0x18]
- ldr r0, [r1]
- add r1, r1, #4
- str r1, [r5, #0x18]
- lsl r1, r0, #0x10
- lsr r1, r1, #0x10
- add r1, r1, #3
- str r1, [r4, #0x14]
- ldr r1, _02214A04 ; =0xFFFF0000
- and r0, r1
- lsr r0, r0, #0x10
- str r0, [r4, #0x18]
- ldr r0, _02214A08 ; =MOD08_022148E0
- add r1, r4, #0
- bl FUN_0200CA44
- pop {r3, r4, r5, pc}
- nop
-_02214A00: .word 0x0000044C
-_02214A04: .word 0xFFFF0000
-_02214A08: .word MOD08_022148E0
-
- thumb_func_start MOD08_02214A0C
-MOD08_02214A0C: ; 0x02214A0C
- mov r1, #0x5f
- lsl r1, r1, #2
- ldrb r1, [r0, r1]
- cmp r1, #2
- bne _02214A24
- ldr r1, [r0, #0x18]
- add r1, r1, #4
- str r1, [r0, #0x18]
- mov r1, #0
- add r0, #0x8d
- strb r1, [r0]
- bx lr
-_02214A24:
- mov r1, #1
- add r0, #0x8d
- strb r1, [r0]
- bx lr
-
- thumb_func_start MOD08_02214A2C
-MOD08_02214A2C: ; 0x02214A2C
- mov r1, #0x5f
- lsl r1, r1, #2
- ldrb r1, [r0, r1]
- cmp r1, #0
- bne _02214A44
- ldr r1, [r0, #0x18]
- add r1, r1, #4
- str r1, [r0, #0x18]
- mov r1, #0
- add r0, #0x8d
- strb r1, [r0]
- bx lr
-_02214A44:
- mov r1, #1
- add r0, #0x8d
- strb r1, [r0]
- bx lr
-
- thumb_func_start MOD08_02214A4C
-MOD08_02214A4C: ; 0x02214A4C
- push {r3, r4, r5, lr}
- sub sp, #0x10
- add r5, r0, #0
- ldr r0, [r5, #0x18]
- mov r1, #0
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r4, [r0]
- add r0, r0, #4
- str r0, [r5, #0x18]
- add r0, r4, #0
- bl MOD08_022156AC
- add r1, r0, #0
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- ldr r0, [r5]
- add r2, r5, #0
- str r0, [sp, #0xc]
- add r2, #0xc4
- ldr r2, [r2]
- mov r0, #7
- mov r3, #3
- bl FUN_0200687C
- add r0, r4, #0
- mov r1, #1
- bl MOD08_022156AC
- mov r2, #0
- str r2, [sp]
- add r1, r0, #0
- ldr r0, [r5]
- add r3, r2, #0
- str r0, [sp, #4]
- mov r0, #7
- bl FUN_02006930
- add r0, r4, #0
- mov r1, #2
- bl MOD08_022156AC
- add r1, r0, #0
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- ldr r0, [r5]
- add r5, #0xc4
- str r0, [sp, #0xc]
- ldr r2, [r5]
- mov r0, #7
- mov r3, #3
- bl FUN_020068C8
- add sp, #0x10
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02214AC8
-MOD08_02214AC8: ; 0x02214AC8
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- bl MOD08_02213DA8
- add r4, r0, #0
- ldr r0, [r5, #0x18]
- add r1, r0, #4
- str r1, [r5, #0x18]
- ldr r0, [r1]
- str r0, [sp]
- add r0, r1, #4
- str r0, [r5, #0x18]
- ldr r7, [r0]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r6, [r0]
- add r0, r0, #4
- str r0, [r5, #0x18]
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _02214AFA
- str r6, [r4, #0x10]
- b _02214B12
-_02214AFA:
- add r0, r5, #0
- add r5, #0xc0
- ldr r1, [r5]
- ldrh r1, [r1, #0x16]
- bl MOD08_02227470
- cmp r0, #3
- bne _02214B0E
- str r7, [r4, #0x10]
- b _02214B12
-_02214B0E:
- ldr r0, [sp]
- str r0, [r4, #0x10]
-_02214B12:
- ldr r0, _02214B20 ; =MOD08_022148E0
- ldr r2, _02214B24 ; =0x0000044C
- add r1, r4, #0
- bl FUN_0200CA44
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02214B20: .word MOD08_022148E0
-_02214B24: .word 0x0000044C
-
- thumb_func_start MOD08_02214B28
-MOD08_02214B28: ; 0x02214B28
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02214B2C
-MOD08_02214B2C: ; 0x02214B2C
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02214B30
-MOD08_02214B30: ; 0x02214B30
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02214B34
-MOD08_02214B34: ; 0x02214B34
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02214B38
-MOD08_02214B38: ; 0x02214B38
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02214B3C
-MOD08_02214B3C: ; 0x02214B3C
- ldr r1, [r0, #0x18]
- ldr r3, _02214B50 ; =FUN_020054C8
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r2, [r1]
- add r1, r1, #4
- str r1, [r0, #0x18]
- lsl r0, r2, #0x10
- lsr r0, r0, #0x10
- bx r3
- .align 2, 0
-_02214B50: .word FUN_020054C8
-
- thumb_func_start MOD08_02214B54
-MOD08_02214B54: ; 0x02214B54
- ldr r1, [r0, #0x18]
- ldr r3, _02214B6C ; =FUN_020054F0
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r2, [r1]
- add r1, r1, #4
- str r1, [r0, #0x18]
- lsl r0, r2, #0x10
- lsr r0, r0, #0x10
- mov r1, #0
- bx r3
- nop
-_02214B6C: .word FUN_020054F0
-
- thumb_func_start MOD08_02214B70
-MOD08_02214B70: ; 0x02214B70
- push {r3, r4, r5, lr}
- ldr r1, [r0, #0x18]
- add r2, r1, #4
- str r2, [r0, #0x18]
- ldr r1, [r2]
- lsl r1, r1, #0x10
- lsr r4, r1, #0x10
- add r1, r2, #4
- str r1, [r0, #0x18]
- ldr r2, [r1]
- add r1, r1, #4
- str r1, [r0, #0x18]
- lsl r1, r2, #0x18
- asr r1, r1, #0x18
- bl MOD08_02215354
- add r5, r0, #0
- add r0, r4, #0
- bl FUN_020054C8
- ldr r1, _02214BA4 ; =0x0000FFFF
- add r0, r4, #0
- add r2, r5, #0
- bl FUN_02005530
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02214BA4: .word 0x0000FFFF
-
- thumb_func_start MOD08_02214BA8
-MOD08_02214BA8: ; 0x02214BA8
- push {r3, lr}
- ldr r1, [r0, #0x18]
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r2, [r1]
- add r1, r1, #4
- str r1, [r0, #0x18]
- lsl r1, r2, #0x18
- asr r1, r1, #0x18
- bl MOD08_02215354
- bl FUN_0200554C
- pop {r3, pc}
-
- thumb_func_start MOD08_02214BC4
-MOD08_02214BC4: ; 0x02214BC4
- push {r3, r4, r5, lr}
- add r5, r0, #0
- bl MOD08_0221252C
- mov r1, #0
- mov r2, #0x3c
- add r4, r0, #0
- bl memset
- mov r0, #1
- strb r0, [r4]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- strh r0, [r4, #0x1a]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- str r0, [r4, #8]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- str r0, [r4, #0xc]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- str r0, [r4, #0x10]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- strb r0, [r4, #3]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r1, [r4, #8]
- add r0, r5, #0
- lsl r1, r1, #0x18
- asr r1, r1, #0x18
- bl MOD08_02215354
- str r0, [r4, #8]
- ldr r1, [r4, #0xc]
- add r0, r5, #0
- lsl r1, r1, #0x18
- asr r1, r1, #0x18
- bl MOD08_02215354
- str r0, [r4, #0xc]
- ldr r0, [r4, #8]
- ldr r1, [r4, #0xc]
- ldr r2, [r4, #0x10]
- lsl r0, r0, #0x18
- lsl r1, r1, #0x18
- lsl r2, r2, #0x18
- asr r0, r0, #0x18
- asr r1, r1, #0x18
- asr r2, r2, #0x18
- bl MOD08_0221540C
- str r0, [r4, #0x10]
- ldrh r0, [r4, #0x1a]
- bl FUN_020054C8
- ldrh r0, [r4, #0x1a]
- ldr r1, _02214C60 ; =0x0000FFFF
- ldr r2, [r4, #8]
- bl FUN_02005530
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_0221255C
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02214C60: .word 0x0000FFFF
-
- thumb_func_start MOD08_02214C64
-MOD08_02214C64: ; 0x02214C64
- push {r3, r4, r5, lr}
- add r5, r0, #0
- bl MOD08_0221252C
- mov r1, #0
- mov r2, #0x3c
- add r4, r0, #0
- bl memset
- mov r0, #2
- strb r0, [r4]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- strh r0, [r4, #0x1a]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [r4, #8]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [r4, #0xc]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [r4, #0x10]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- strb r0, [r4, #3]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldrh r0, [r4, #0x1a]
- bl FUN_020054C8
- ldrh r0, [r4, #0x1a]
- ldr r1, _02214CD8 ; =0x0000FFFF
- ldr r2, [r4, #8]
- bl FUN_02005530
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_0221255C
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02214CD8: .word 0x0000FFFF
-
- thumb_func_start MOD08_02214CDC
-MOD08_02214CDC: ; 0x02214CDC
- push {r3, r4, r5, lr}
- add r5, r0, #0
- bl MOD08_0221252C
- mov r1, #0
- mov r2, #0x3c
- add r4, r0, #0
- bl memset
- mov r0, #1
- strb r0, [r4]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- strh r0, [r4, #0x1a]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [r4, #8]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [r4, #0xc]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [r4, #0x10]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- strb r0, [r4, #3]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r1, [r4, #8]
- add r0, r5, #0
- lsl r1, r1, #0x18
- asr r1, r1, #0x18
- bl MOD08_02215354
- str r0, [r4, #8]
- ldr r1, [r4, #0xc]
- add r0, r5, #0
- lsl r1, r1, #0x18
- asr r1, r1, #0x18
- bl MOD08_02215354
- str r0, [r4, #0xc]
- ldr r1, [r4, #0x10]
- add r0, r5, #0
- lsl r1, r1, #0x18
- asr r1, r1, #0x18
- bl MOD08_02215354
- str r0, [r4, #0x10]
- ldrh r0, [r4, #0x1a]
- bl FUN_020054C8
- ldrh r0, [r4, #0x1a]
- ldr r1, _02214D7C ; =0x0000FFFF
- ldr r2, [r4, #8]
- bl FUN_02005530
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_0221255C
- pop {r3, r4, r5, pc}
- nop
-_02214D7C: .word 0x0000FFFF
-
- thumb_func_start MOD08_02214D80
-MOD08_02214D80: ; 0x02214D80
- push {r3, r4, r5, lr}
- add r5, r0, #0
- bl MOD08_0221252C
- mov r1, #0
- mov r2, #0x3c
- add r4, r0, #0
- bl memset
- mov r0, #4
- strb r0, [r4]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- strh r0, [r4, #0x1a]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [r4, #0x14]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- strb r0, [r4, #3]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- strb r0, [r4, #0x18]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldrb r0, [r4, #3]
- strb r0, [r4, #4]
- ldr r1, [r4, #0x14]
- add r0, r5, #0
- lsl r1, r1, #0x18
- asr r1, r1, #0x18
- bl MOD08_02215354
- str r0, [r4, #0x14]
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_0221255C
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02214DE4
-MOD08_02214DE4: ; 0x02214DE4
- push {r3, r4, r5, lr}
- add r5, r0, #0
- bl MOD08_0221252C
- mov r1, #0
- mov r2, #0x3c
- add r4, r0, #0
- bl memset
- mov r0, #5
- strb r0, [r4]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- strh r0, [r4, #0x1a]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [r4, #0x14]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r0, [r0]
- strb r0, [r4, #3]
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r1, [r4, #0x14]
- add r0, r5, #0
- lsl r1, r1, #0x18
- asr r1, r1, #0x18
- bl MOD08_02215354
- str r0, [r4, #0x14]
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_0221255C
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02214E3C
-MOD08_02214E3C: ; 0x02214E3C
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02214E40
-MOD08_02214E40: ; 0x02214E40
- push {r4, lr}
- add r4, r0, #0
- add r0, #0x90
- ldrh r0, [r0]
- cmp r0, #0
- beq _02214E5C
- add r0, r4, #0
- mov r1, #1
- add r0, #0x8d
- strb r1, [r0]
- ldr r0, _02214E94 ; =0x0000017D
- mov r1, #0
- strb r1, [r4, r0]
- pop {r4, pc}
-_02214E5C:
- bl FUN_02005514
- cmp r0, #0
- beq _02214E80
- ldr r0, _02214E94 ; =0x0000017D
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- ldrb r1, [r4, r0]
- cmp r1, #0x5a
- bls _02214E78
- mov r1, #0
- strb r1, [r4, r0]
- pop {r4, pc}
-_02214E78:
- mov r0, #1
- add r4, #0x8d
- strb r0, [r4]
- pop {r4, pc}
-_02214E80:
- add r0, r4, #0
- mov r1, #0
- add r0, #0x8d
- strb r1, [r0]
- ldr r0, _02214E94 ; =0x0000017D
- strb r1, [r4, r0]
- ldr r0, [r4, #0x18]
- add r0, r0, #4
- str r0, [r4, #0x18]
- pop {r4, pc}
- .align 2, 0
-_02214E94: .word 0x0000017D
-
- thumb_func_start MOD08_02214E98
-MOD08_02214E98: ; 0x02214E98
- push {r3, lr}
- ldr r1, [r0, #0x18]
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r3, [r1]
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r2, [r1]
- add r1, r1, #4
- str r1, [r0, #0x18]
- lsl r0, r2, #0x10
- lsr r0, r0, #0x10
- str r0, [sp]
- lsl r3, r3, #0x10
- ldr r0, _02214EC4 ; =0x04001050
- mov r1, #1
- mov r2, #2
- lsr r3, r3, #0x10
- bl G2x_SetBlendAlpha_
- pop {r3, pc}
- nop
-_02214EC4: .word 0x04001050
-
- thumb_func_start MOD08_02214EC8
-MOD08_02214EC8: ; 0x02214EC8
- ldr r3, _02214ECC ; =MOD08_0221268C
- bx r3
- .align 2, 0
-_02214ECC: .word MOD08_0221268C
-
- thumb_func_start MOD08_02214ED0
-MOD08_02214ED0: ; 0x02214ED0
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02214ED4
-MOD08_02214ED4: ; 0x02214ED4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x18
- add r5, r0, #0
- ldr r0, [r5, #0x18]
- add r6, r5, #0
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r1, [r0]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r7, [r0]
- add r0, r0, #4
- lsl r4, r1, #2
- add r6, #0xcc
- str r0, [r5, #0x18]
- ldr r0, [r6, r4]
- cmp r0, #0
- beq _02214EFC
- bl ErrorHandling
-_02214EFC:
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r0, #0xac
- ldr r0, [r0]
- bl FUN_0200BB34
- str r0, [r6, r4]
- ldr r0, [r6, r4]
- cmp r0, #0
- bne _02214F16
- bl ErrorHandling
-_02214F16:
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- ldr r1, [r6, r4]
- add r0, #0xac
- ldr r0, [r0]
- add r2, r7, #0
- bl FUN_0200BBF0
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r0, #0xac
- ldr r0, [r0]
- bl FUN_0200BB68
- mov r2, #0x11
- mov r1, #0
- lsl r2, r2, #0x10
- bl FUN_02008D24
- add r0, r5, #0
- mov r1, #0
- add r2, sp, #0
- add r0, #0x18
-_02214F48:
- ldr r3, [r5, #0x18]
- add r1, r1, #1
- ldr r3, [r3]
- str r3, [r2]
- ldr r3, [r0]
- add r2, r2, #4
- add r3, r3, #4
- str r3, [r0]
- cmp r1, #6
- blt _02214F48
- add r5, #0xc0
- ldr r0, [r5]
- ldr r1, [r6, r4]
- add r0, #0xac
- ldr r0, [r0]
- add r2, sp, #0
- bl FUN_0200BF60
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02214F70
-MOD08_02214F70: ; 0x02214F70
- push {lr}
- sub sp, #0xc
- add r2, r0, #0
- ldr r0, [r2, #0x18]
- add r0, r0, #4
- str r0, [r2, #0x18]
- ldr r1, [r0]
- add r0, r0, #4
- str r0, [r2, #0x18]
- ldr r3, [r0]
- add r0, r0, #4
- str r0, [r2, #0x18]
- mov r0, #1
- str r0, [sp]
- str r0, [sp, #4]
- ldr r0, _02214FB0 ; =0x00001388
- lsl r1, r1, #2
- add r0, r3, r0
- str r0, [sp, #8]
- add r0, r2, #0
- add r1, r2, r1
- add r0, #0xc0
- ldr r0, [r0]
- add r1, #0xcc
- add r0, #0xac
- ldr r0, [r0]
- ldr r1, [r1]
- mov r2, #0x15
- bl FUN_0200C00C
- add sp, #0xc
- pop {pc}
- .align 2, 0
-_02214FB0: .word 0x00001388
-
- thumb_func_start MOD08_02214FB4
-MOD08_02214FB4: ; 0x02214FB4
- push {r4, lr}
- sub sp, #0x18
- add r4, r0, #0
- ldr r0, [r4, #0x18]
- add r0, r0, #4
- str r0, [r4, #0x18]
- ldr r3, [r0]
- add r0, r0, #4
- str r0, [r4, #0x18]
- ldr r1, [r0]
- add r2, r0, #4
- str r2, [r4, #0x18]
- ldr r0, [r2]
- add r2, r2, #4
- str r2, [r4, #0x18]
- mov r2, #0x16
- str r2, [sp]
- str r1, [sp, #4]
- mov r2, #0
- str r2, [sp, #8]
- mov r2, #1
- str r2, [sp, #0xc]
- str r0, [sp, #0x10]
- ldr r0, _0221500C ; =0x00001388
- add r2, r4, #0
- add r0, r1, r0
- str r0, [sp, #0x14]
- add r2, #0xc0
- ldr r2, [r2]
- lsl r3, r3, #2
- add r0, r4, #0
- add r3, r4, r3
- add r0, #0xc8
- add r2, #0xac
- add r3, #0xcc
- ldr r0, [r0]
- ldr r2, [r2]
- ldr r3, [r3]
- mov r1, #2
- bl FUN_0200C0DC
- add sp, #0x18
- pop {r4, pc}
- nop
-_0221500C: .word 0x00001388
-
- thumb_func_start MOD08_02215010
-MOD08_02215010: ; 0x02215010
- push {r3, lr}
- sub sp, #8
- add r2, r0, #0
- ldr r0, [r2, #0x18]
- add r0, r0, #4
- str r0, [r2, #0x18]
- ldr r1, [r0]
- add r0, r0, #4
- str r0, [r2, #0x18]
- ldr r3, [r0]
- add r0, r0, #4
- str r0, [r2, #0x18]
- mov r0, #1
- str r0, [sp]
- ldr r0, _02215050 ; =0x00001388
- lsl r1, r1, #2
- add r0, r3, r0
- str r0, [sp, #4]
- add r0, r2, #0
- add r1, r2, r1
- add r0, #0xc0
- ldr r0, [r0]
- add r1, #0xcc
- add r0, #0xac
- ldr r0, [r0]
- ldr r1, [r1]
- mov r2, #0x17
- bl FUN_0200C124
- add sp, #8
- pop {r3, pc}
- nop
-_02215050: .word 0x00001388
-
- thumb_func_start MOD08_02215054
-MOD08_02215054: ; 0x02215054
- push {r3, lr}
- sub sp, #8
- add r2, r0, #0
- ldr r0, [r2, #0x18]
- add r0, r0, #4
- str r0, [r2, #0x18]
- ldr r1, [r0]
- add r0, r0, #4
- str r0, [r2, #0x18]
- ldr r3, [r0]
- add r0, r0, #4
- str r0, [r2, #0x18]
- mov r0, #1
- str r0, [sp]
- ldr r0, _02215094 ; =0x00001388
- lsl r1, r1, #2
- add r0, r3, r0
- str r0, [sp, #4]
- add r0, r2, #0
- add r1, r2, r1
- add r0, #0xc0
- ldr r0, [r0]
- add r1, #0xcc
- add r0, #0xac
- ldr r0, [r0]
- ldr r1, [r1]
- mov r2, #0x18
- bl FUN_0200C13C
- add sp, #8
- pop {r3, pc}
- nop
-_02215094: .word 0x00001388
-
- thumb_func_start MOD08_02215098
-MOD08_02215098: ; 0x02215098
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x40
- add r4, r0, #0
- ldr r1, [r4, #0x18]
- add r1, r1, #4
- str r1, [r4, #0x18]
- ldr r5, [r1]
- add r2, r1, #4
- str r2, [r4, #0x18]
- ldr r1, [r2]
- str r1, [sp]
- add r1, r2, #4
- str r1, [r4, #0x18]
- bl MOD08_02212460
- add r6, r0, #0
- add r0, r4, #0
- add r1, r6, #0
- mov r2, #0
- bl MOD08_02217B98
- add r1, sp, #0xc
- strh r0, [r1]
- add r0, r4, #0
- add r1, r6, #0
- mov r2, #1
- bl MOD08_02217B98
- add r2, sp, #0xc
- strh r0, [r2, #2]
- mov r1, #0
- strh r1, [r2, #4]
- strh r1, [r2, #6]
- mov r0, #0x64
- str r0, [sp, #0x14]
- mov r0, #1
- str r0, [sp, #0x1c]
- str r0, [sp, #0x38]
- add r0, r4, #0
- ldr r3, _022151A0 ; =0x00001388
- str r1, [sp, #0x18]
- str r1, [sp, #0x3c]
- add r2, sp, #0xc
- add r0, #0x18
-_022150F0:
- ldr r6, [r4, #0x18]
- add r1, r1, #1
- ldr r6, [r6]
- add r6, r6, r3
- str r6, [r2, #0x14]
- ldr r6, [r0]
- add r2, r2, #4
- add r6, r6, #4
- str r6, [r0]
- cmp r1, #6
- blt _022150F0
- mov r0, #0x41
- lsl r0, r0, #2
- add r3, sp, #0xc
- add r2, r4, r0
- mov r6, #6
-_02215110:
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- sub r6, r6, #1
- bne _02215110
- ldr r0, [r3]
- lsl r7, r5, #2
- str r0, [r2]
- add r0, r4, #0
- str r0, [sp, #8]
- add r0, #0xcc
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- ldr r1, [sp, #8]
- add r0, #0xac
- ldr r0, [r0]
- ldr r1, [r1, r7]
- add r2, sp, #0xc
- bl FUN_0200C154
- str r0, [sp, #4]
- ldr r0, [r4, #0x18]
- add r2, r4, #0
- ldr r3, [r0]
- add r0, r0, #4
- add r2, #0x18
- mov r6, #0
- str r0, [r4, #0x18]
- cmp r3, #0
- ble _02215168
- add r5, r4, #0
-_02215150:
- ldr r0, [r4, #0x18]
- add r6, r6, #1
- ldr r1, [r0]
- add r0, r5, #0
- add r0, #0x94
- str r1, [r0]
- ldr r0, [r2]
- add r5, r5, #4
- add r0, r0, #4
- str r0, [r2]
- cmp r6, r3
- blt _02215150
-_02215168:
- cmp r6, #0xa
- bge _02215180
- lsl r0, r6, #2
- add r2, r4, r0
- mov r1, #0
-_02215172:
- add r0, r2, #0
- add r0, #0x94
- add r6, r6, #1
- add r2, r2, #4
- str r1, [r0]
- cmp r6, #0xa
- blt _02215172
-_02215180:
- ldr r0, [sp]
- bl MOD08_02218C5C
- add r5, r0, #0
- add r0, r4, #0
- add r4, #0xc0
- ldr r1, [r4]
- ldr r2, [sp, #8]
- add r1, #0xac
- ldr r1, [r1]
- ldr r2, [r2, r7]
- ldr r3, [sp, #4]
- blx r5
- add sp, #0x40
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022151A0: .word 0x00001388
-
- thumb_func_start MOD08_022151A4
-MOD08_022151A4: ; 0x022151A4
- push {r4, r5, r6, r7, lr}
- sub sp, #0x34
- add r5, r0, #0
- ldr r1, [r5, #0x18]
- add r1, r1, #4
- str r1, [r5, #0x18]
- ldr r4, [r1]
- add r1, r1, #4
- str r1, [r5, #0x18]
- ldr r7, [r1]
- add r1, r1, #4
- str r1, [r5, #0x18]
- bl MOD08_02212460
- add r6, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0
- bl MOD08_02217B98
- add r1, sp, #0
- strh r0, [r1]
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #1
- bl MOD08_02217B98
- add r2, sp, #0
- strh r0, [r2, #2]
- mov r1, #0
- strh r1, [r2, #4]
- strh r1, [r2, #6]
- mov r0, #0x64
- str r0, [sp, #8]
- mov r0, #1
- str r0, [sp, #0x10]
- str r0, [sp, #0x2c]
- add r0, r5, #0
- ldr r3, _02215254 ; =0x00001388
- str r1, [sp, #0xc]
- str r1, [sp, #0x30]
- add r2, sp, #0
- add r0, #0x18
-_022151FA:
- ldr r6, [r5, #0x18]
- add r1, r1, #1
- ldr r6, [r6]
- add r6, r6, r3
- str r6, [r2, #0x14]
- ldr r6, [r0]
- add r2, r2, #4
- add r6, r6, #4
- str r6, [r0]
- cmp r1, #6
- blt _022151FA
- mov r0, #0x41
- lsl r0, r0, #2
- add r6, sp, #0
- add r3, r5, r0
- mov r2, #6
-_0221521A:
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _0221521A
- ldr r0, [r6]
- lsl r1, r4, #2
- str r0, [r3]
- add r0, r5, #0
- add r0, #0xc0
- ldr r0, [r0]
- add r1, r5, r1
- add r0, #0xac
- add r1, #0xcc
- ldr r0, [r0]
- ldr r1, [r1]
- add r2, sp, #0
- bl FUN_0200C154
- add r5, #0xdc
- lsl r4, r7, #2
- add r6, r0, #0
- ldr r0, [r5, r4]
- cmp r0, #0
- beq _0221524E
- bl ErrorHandling
-_0221524E:
- str r6, [r5, r4]
- add sp, #0x34
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02215254: .word 0x00001388
-
- thumb_func_start MOD08_02215258
-MOD08_02215258: ; 0x02215258
- push {r3, r4, r5, lr}
- ldr r1, [r0, #0x18]
- add r5, r0, #0
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r2, [r1]
- add r1, r1, #4
- add r5, #0xcc
- lsl r4, r2, #2
- str r1, [r0, #0x18]
- ldr r1, [r5, r4]
- cmp r1, #0
- beq _0221527E
- add r0, #0xc0
- ldr r0, [r0]
- add r0, #0xac
- ldr r0, [r0]
- bl FUN_0200C398
-_0221527E:
- mov r0, #0
- str r0, [r5, r4]
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02215284
-MOD08_02215284: ; 0x02215284
- ldr r1, [r0, #0x18]
- add r1, r1, #4
- str r1, [r0, #0x18]
- ldr r3, [r1]
- add r2, r1, #4
- str r2, [r0, #0x18]
- ldr r1, [r2]
- add r2, r2, #4
- str r2, [r0, #0x18]
- lsl r2, r3, #2
- add r2, r0, r2
- mov r0, #0x4f
- lsl r0, r0, #2
- ldr r3, _022152A4 ; =FUN_0200C644
- ldr r0, [r2, r0]
- bx r3
- .align 2, 0
-_022152A4: .word FUN_0200C644
-
- thumb_func_start MOD08_022152A8
-MOD08_022152A8: ; 0x022152A8
- ldr r3, _022152AC ; =ErrorHandling
- bx r3
- .align 2, 0
-_022152AC: .word ErrorHandling
-
- thumb_func_start MOD08_022152B0
-MOD08_022152B0: ; 0x022152B0
- push {r4, r5, lr}
- sub sp, #0xc
- add r5, r0, #0
- ldr r1, [r5, #0x18]
- add r1, r1, #4
- str r1, [r5, #0x18]
- ldr r4, [r1]
- add r1, r1, #4
- str r1, [r5, #0x18]
- ldr r1, [r1]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- lsl r1, r1, #0x18
- asr r1, r1, #0x18
- bl MOD08_02215354
- add r3, r0, #0
- ldr r0, [r5, #0x18]
- add r0, r0, #4
- str r0, [r5, #0x18]
- ldr r1, [r0]
- add r0, r0, #4
- str r0, [r5, #0x18]
- add r0, r5, #0
- add r0, #0xc0
- ldr r2, [r0]
- mov r0, #0x46
- lsl r0, r0, #2
- str r1, [sp]
- ldr r1, [r2, r0]
- sub r0, #0xc
- str r1, [sp, #4]
- ldr r1, [r5]
- str r1, [sp, #8]
- add r1, r4, #0
- ldrh r4, [r2, #0x14]
- ldr r0, [r2, r0]
- lsl r4, r4, #1
- add r2, r2, r4
- add r2, #0xd8
- ldrh r2, [r2]
- bl FUN_02069FB0
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221530C
-MOD08_0221530C: ; 0x0221530C
- push {r4, lr}
- add r4, r0, #0
- bl FUN_02005670
- cmp r0, #0
- bne _02215330
- ldr r0, [r4, #0x18]
- add r1, r0, #4
- str r1, [r4, #0x18]
- ldr r0, [r1]
- add r1, r1, #4
- str r1, [r4, #0x18]
- mov r1, #0
- add r4, #0x8d
- strb r1, [r4]
- bl FUN_02005614
- pop {r4, pc}
-_02215330:
- mov r0, #1
- add r4, #0x8d
- strb r0, [r4]
- pop {r4, pc}
-
- thumb_func_start MOD08_02215338
-MOD08_02215338: ; 0x02215338
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_0221533C
-MOD08_0221533C: ; 0x0221533C
- cmp r0, #0x55
- bls _02215344
- mov r0, #0
- bx lr
-_02215344:
- lsl r1, r0, #2
- ldr r0, _0221534C ; =0x0222AC6C
- ldr r0, [r0, r1]
- bx lr
- .align 2, 0
-_0221534C: .word 0x0222AC6C
-
- thumb_func_start MOD08_02215350
-MOD08_02215350: ; 0x02215350
- ldrb r0, [r0, #1]
- bx lr
-
- thumb_func_start MOD08_02215354
-MOD08_02215354: ; 0x02215354
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD08_02212458
- add r7, r0, #0
- add r0, r5, #0
- bl MOD08_02212460
- add r6, r0, #0
- add r0, r5, #0
- add r1, r7, #0
- bl MOD08_02227470
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02227470
- add r0, r5, #0
- add r1, r7, #0
- bl MOD08_02227470
- cmp r0, #3
- bne _02215390
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02227470
- cmp r0, #4
- beq _022153F6
-_02215390:
- add r0, r5, #0
- add r1, r7, #0
- bl MOD08_02227470
- cmp r0, #4
- bne _022153B0
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02227470
- cmp r0, #3
- bne _022153B0
- mov r0, #0
- mvn r0, r0
- mul r4, r0
- b _022153F6
-_022153B0:
- add r0, r5, #0
- add r1, r7, #0
- bl MOD08_02227470
- cmp r0, #3
- bne _022153D4
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02227470
- cmp r0, #3
- bne _022153D4
- cmp r4, #0
- ble _022153F6
- mov r0, #0
- mvn r0, r0
- mul r4, r0
- b _022153F6
-_022153D4:
- add r0, r5, #0
- add r1, r7, #0
- bl MOD08_02227470
- cmp r0, #4
- bne _022153F6
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02227470
- cmp r0, #4
- bne _022153F6
- cmp r4, #0
- bge _022153F6
- mov r0, #0
- mvn r0, r0
- mul r4, r0
-_022153F6:
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _02215406
- mov r0, #0
- mvn r0, r0
- mul r4, r0
-_02215406:
- lsl r0, r4, #0x18
- asr r0, r0, #0x18
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_0221540C
-MOD08_0221540C: ; 0x0221540C
- push {r3, lr}
- cmp r0, r1
- bge _0221541E
- add r0, r2, #0
- bl abs
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- pop {r3, pc}
-_0221541E:
- cmp r0, r1
- ble _02215430
- add r0, r2, #0
- bl abs
- neg r0, r0
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- pop {r3, pc}
-_02215430:
- mov r0, #0
- pop {r3, pc}
-
- thumb_func_start MOD08_02215434
-MOD08_02215434: ; 0x02215434
- push {r3, r4, r5, lr}
- ldr r4, [r0, #0x18]
- add r3, r0, #0
- add r4, r4, #4
- str r4, [r0, #0x18]
- ldr r5, [r4]
- add r4, r4, #4
- add r3, #0x18
- str r4, [r0, #0x18]
- cmp r5, r2
- beq _02215456
- cmp r5, r2
- beq _02215452
- bl ErrorHandling
-_02215452:
- mov r0, #0
- pop {r3, r4, r5, pc}
-_02215456:
- mov r4, #0
- cmp r2, #0
- ble _02215470
-_0221545C:
- ldr r5, [r0, #0x18]
- add r4, r4, #1
- ldr r5, [r5]
- str r5, [r1]
- ldr r5, [r3]
- add r1, r1, #4
- add r5, r5, #4
- str r5, [r3]
- cmp r4, r2
- blt _0221545C
-_02215470:
- mov r0, #1
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02215474
-MOD08_02215474: ; 0x02215474
- push {r3, r4}
- add r4, r0, #0
- mov r0, #0x41
- lsl r0, r0, #2
- add r3, r1, r0
- mov r2, #6
-_02215480:
- ldmia r3!, {r0, r1}
- stmia r4!, {r0, r1}
- sub r2, r2, #1
- bne _02215480
- ldr r0, [r3]
- str r0, [r4]
- pop {r3, r4}
- bx lr
-
- thumb_func_start MOD08_02215490
-MOD08_02215490: ; 0x02215490
- add r0, #0xc0
- ldr r0, [r0]
- add r0, r0, r1
- add r0, #0xc0
- ldrb r0, [r0]
- bx lr
-
- thumb_func_start MOD08_0221549C
-MOD08_0221549C: ; 0x0221549C
- add r0, #0xc0
- ldr r0, [r0]
- add r0, r0, r1
- add r0, #0xe0
- ldrb r0, [r0]
- bx lr
-
- thumb_func_start MOD08_022154A8
-MOD08_022154A8: ; 0x022154A8
- add r0, #0xc0
- ldr r2, [r0]
- lsl r0, r1, #1
- add r0, r2, r0
- add r0, #0xd8
- ldrh r0, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_022154B8
-MOD08_022154B8: ; 0x022154B8
- add r0, #0xc0
- ldr r0, [r0]
- add r0, r0, r1
- add r0, #0xe8
- ldrb r0, [r0]
- bx lr
-
- thumb_func_start MOD08_022154C4
-MOD08_022154C4: ; 0x022154C4
- add r0, #0xc0
- ldr r2, [r0]
- lsl r0, r1, #2
- add r0, r2, r0
- add r0, #0xec
- ldr r0, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_022154D4
-MOD08_022154D4: ; 0x022154D4
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r0, #0xc0
- ldr r0, [r0]
- lsl r4, r1, #2
- add r0, r0, r4
- add r0, #0xc4
- ldr r0, [r0]
- cmp r0, #0
- bne _022154EC
- mov r0, #0
- pop {r3, r4, r5, pc}
-_022154EC:
- bl FUN_02008268
- cmp r0, #0
- beq _02215500
- add r5, #0xc0
- ldr r0, [r5]
- add r0, r0, r4
- add r0, #0xc4
- ldr r0, [r0]
- pop {r3, r4, r5, pc}
-_02215500:
- mov r0, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02215504
-MOD08_02215504: ; 0x02215504
- add r0, #0xc8
- ldr r0, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_0221550C
-MOD08_0221550C: ; 0x0221550C
- add r0, #0xc0
- ldr r2, [r0]
- lsl r0, r1, #2
- add r0, r2, r0
- add r0, #0xb0
- ldr r0, [r0]
- ldr r0, [r0, #8]
- bx lr
-
- thumb_func_start MOD08_0221551C
-MOD08_0221551C: ; 0x0221551C
- add r0, #0xc0
- ldr r2, [r0]
- lsl r0, r1, #2
- add r0, r2, r0
- add r0, #0xb0
- ldr r0, [r0]
- ldr r0, [r0, #4]
- bx lr
-
- thumb_func_start MOD08_0221552C
-MOD08_0221552C: ; 0x0221552C
- add r0, #0xc0
- ldr r2, [r0]
- lsl r0, r1, #2
- add r0, r2, r0
- add r0, #0xb0
- ldr r0, [r0]
- ldr r0, [r0, #0xc]
- bx lr
-
- thumb_func_start MOD08_0221553C
-MOD08_0221553C: ; 0x0221553C
- add r0, #0xc0
- ldr r0, [r0]
- add r0, #0xd4
- ldr r1, [r0]
- mov r0, #2
- tst r0, r1
- beq _0221554E
- mov r0, #1
- bx lr
-_0221554E:
- mov r0, #0
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02215554
-MOD08_02215554: ; 0x02215554
- add r0, #0xc0
- ldr r2, [r0]
- lsl r0, r1, #2
- add r0, r2, r0
- add r0, #0xfc
- ldr r1, [r0]
- ldr r0, _02215570 ; =0x200400C0
- tst r0, r1
- beq _0221556A
- mov r0, #1
- bx lr
-_0221556A:
- mov r0, #0
- bx lr
- nop
-_02215570: .word 0x200400C0
-
- thumb_func_start MOD08_02215574
-MOD08_02215574: ; 0x02215574
- push {r3, lr}
- bl MOD08_02212004
- cmp r0, #1
- bne _02215582
- mov r0, #2
- pop {r3, pc}
-_02215582:
- mov r0, #1
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02215588
-MOD08_02215588: ; 0x02215588
- push {r3, r4, r5, lr}
- sub sp, #0x18
- ldr r3, _022155C0 ; =0x0222AAAC
- add r2, sp, #0
- add r5, r0, #0
- add r4, r1, #0
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _022155B4
- add r0, sp, #0xc
- lsl r1, r4, #2
- add sp, #0x18
- ldr r0, [r0, r1]
- pop {r3, r4, r5, pc}
-_022155B4:
- lsl r1, r4, #2
- add r0, sp, #0
- ldr r0, [r0, r1]
- add sp, #0x18
- pop {r3, r4, r5, pc}
- nop
-_022155C0: .word 0x0222AAAC
-
- thumb_func_start MOD08_022155C4
-MOD08_022155C4: ; 0x022155C4
- push {r3, r4, r5, lr}
- sub sp, #0x18
- ldr r3, _022155FC ; =0x0222AA94
- add r2, sp, #0
- add r5, r0, #0
- add r4, r1, #0
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _022155F0
- add r0, sp, #0xc
- lsl r1, r4, #2
- add sp, #0x18
- ldr r0, [r0, r1]
- pop {r3, r4, r5, pc}
-_022155F0:
- lsl r1, r4, #2
- add r0, sp, #0
- ldr r0, [r0, r1]
- add sp, #0x18
- pop {r3, r4, r5, pc}
- nop
-_022155FC: .word 0x0222AA94
-
- thumb_func_start MOD08_02215600
-MOD08_02215600: ; 0x02215600
- push {r3, lr}
- cmp r1, #3
- bhi _02215636
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02215612: ; jump table
- .short _0221561A - _02215612 - 2 ; case 0
- .short _02215622 - _02215612 - 2 ; case 1
- .short _0221562A - _02215612 - 2 ; case 2
- .short _02215632 - _02215612 - 2 ; case 3
-_0221561A:
- bl MOD08_02212004
- mov r0, #0
- pop {r3, pc}
-_02215622:
- bl MOD08_02212004
- mov r0, #1
- pop {r3, pc}
-_0221562A:
- bl MOD08_02212004
- mov r0, #3
- pop {r3, pc}
-_02215632:
- bl MOD08_02215574
-_02215636:
- pop {r3, pc}
-
- thumb_func_start MOD08_02215638
-MOD08_02215638: ; 0x02215638
- push {r3, lr}
- add r2, r0, #0
- mov r0, #0
- str r0, [sp]
- add r0, r2, #0
- add r2, #0xc0
- ldr r3, [r2]
- mov r2, #0x11
- add r0, #0xc4
- lsl r2, r2, #4
- lsl r1, r1, #0x18
- ldr r2, [r3, r2]
- mov r3, #1
- ldr r0, [r0]
- lsr r1, r1, #0x18
- lsl r3, r3, #0x10
- bl FUN_02017E14
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02215660
-MOD08_02215660: ; 0x02215660
- push {r3, lr}
- mov r2, #2
- add r1, r0, #0
- lsl r2, r2, #8
- str r2, [sp]
- add r1, #0xc0
- add r0, #0xc8
- ldr r1, [r1]
- sub r2, #0xec
- ldr r1, [r1, r2]
- mov r2, #0
- ldr r0, [r0]
- add r3, r2, #0
- bl FUN_02003054
- pop {r3, pc}
-
- thumb_func_start MOD08_02215680
-MOD08_02215680: ; 0x02215680
- push {r3, r4, r5, lr}
- add r5, r0, #0
- bl MOD08_022132C4
- add r4, r0, #0
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _022156A8
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_022154A8
- bl MOD08_0222A6C8
- cmp r0, #1
- bne _022156A8
- mov r0, #1
- pop {r3, r4, r5, pc}
-_022156A8:
- mov r0, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_022156AC
-MOD08_022156AC: ; 0x022156AC
- mov r2, #0x14
- mul r2, r0
- ldr r0, _022156BC ; =0x0222ADC0
- lsl r1, r1, #2
- add r0, r0, r2
- ldr r0, [r1, r0]
- bx lr
- nop
-_022156BC: .word 0x0222ADC0
-
- thumb_func_start MOD08_022156C0
-MOD08_022156C0: ; 0x022156C0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x90
- ldr r3, _02215900 ; =0x0222AA4C
- add r6, r2, #0
- add r2, sp, #0x78
- add r7, r0, #0
- add r5, r1, #0
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- add r0, r5, #0
- mov r1, #0x58
- bl AllocFromHeap
- add r4, r0, #0
- str r5, [r4]
- str r6, [r4, #4]
- add r0, r7, #0
- bl MOD11_02230078
- str r0, [r4, #8]
- add r0, r7, #0
- bl MOD11_02230080
- str r0, [r4, #0xc]
- add r0, r7, #0
- bl MOD11_022300CC
- str r0, [r4, #0x10]
- mov r6, #0
- add r5, r4, #0
-_02215704:
- mov r0, #0
- str r0, [r5, #0x24]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_022312D0
- str r0, [r5, #0x34]
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #4
- blt _02215704
- add r1, r4, #0
- add r0, r7, #0
- add r1, #0x44
- bl MOD11_02231504
- add r1, r4, #0
- add r0, r7, #0
- add r1, #0x48
- bl MOD11_02231534
- mov r6, #0
- add r7, r6, #0
-_02215732:
- ldr r0, [r4, #4]
- cmp r6, r0
- beq _0221573C
- cmp r0, #0xff
- bne _0221579E
-_0221573C:
- ldr r1, _02215904 ; =0x0000D903
- str r7, [sp]
- add r2, r6, r1
- ldr r1, _02215908 ; =0x00001388
- mov r3, #0x28
- mul r1, r0
- mov r0, #1
- add r5, r2, r1
- str r0, [sp, #4]
- str r5, [sp, #8]
- ldr r0, [r4, #8]
- ldr r1, [r4, #0xc]
- mov r2, #0x1b
- bl FUN_0200C00C
- mov r0, #0x1b
- str r0, [sp]
- mov r0, #0x27
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- mov r0, #1
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- str r5, [sp, #0x14]
- ldr r0, [r4, #0x10]
- ldr r2, [r4, #8]
- ldr r3, [r4, #0xc]
- mov r1, #2
- bl FUN_0200C0DC
- mov r0, #0
- str r0, [sp]
- str r5, [sp, #4]
- ldr r0, [r4, #8]
- ldr r1, [r4, #0xc]
- mov r2, #0x1b
- mov r3, #0x29
- bl FUN_0200C124
- mov r0, #0
- str r0, [sp]
- str r5, [sp, #4]
- ldr r0, [r4, #8]
- ldr r1, [r4, #0xc]
- mov r2, #0x1b
- mov r3, #0x2a
- bl FUN_0200C13C
-_0221579E:
- add r6, r6, #1
- cmp r6, #4
- blt _02215732
- mov r0, #0
- str r0, [sp, #0x24]
- add r7, r4, #0
-_022157AA:
- ldr r1, [r4, #4]
- ldr r0, [sp, #0x24]
- cmp r0, r1
- beq _022157B8
- cmp r1, #0xff
- beq _022157B8
- b _022158EC
-_022157B8:
- ldr r2, _02215904 ; =0x0000D903
- ldr r0, [sp, #0x24]
- add r3, r1, #0
- add r0, r0, r2
- ldr r2, _02215908 ; =0x00001388
- mul r3, r2
- add r1, r0, r3
- str r1, [r7, #0x14]
- ldr r1, [r4, #4]
- add r3, r1, #0
- mul r3, r2
- add r1, r0, r3
- str r1, [sp, #0x60]
- ldr r1, [r4, #4]
- add r3, r1, #0
- mul r3, r2
- add r1, r0, r3
- str r1, [sp, #0x64]
- ldr r1, [r4, #4]
- add r3, r1, #0
- mul r3, r2
- add r1, r0, r3
- str r1, [sp, #0x68]
- ldr r1, [r4, #4]
- mul r2, r1
- mov r1, #0
- add r0, r0, r2
- str r0, [sp, #0x6c]
- str r1, [sp, #0x70]
- str r1, [sp, #0x74]
- ldr r2, [r7, #0x34]
- ldr r5, [r7, #0x48]
- ldr r0, [r2, #4]
- cmp r5, #0
- str r0, [sp, #0x20]
- ldr r0, [r2, #8]
- str r0, [sp, #0x1c]
- ldr r0, [r2]
- str r0, [sp, #0x18]
- beq _022158EC
- add r0, r5, #0
- bl FUN_0200782C
- str r0, [sp, #0x28]
- add r0, r5, #0
- mov r1, #1
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r6, r0, #0x10
- add r0, r5, #0
- mov r1, #0x29
- bl FUN_0200782C
- sub r2, r6, r0
- ldr r0, [sp, #0x28]
- add r1, sp, #0x2c
- strh r0, [r1]
- strh r2, [r1, #2]
- mov r0, #0
- strh r0, [r1, #4]
- strh r0, [r1, #6]
- ldr r1, [sp, #0x24]
- add r3, sp, #0x2c
- add r1, r4, r1
- add r1, #0x44
- ldrb r1, [r1]
- lsl r2, r1, #2
- add r1, sp, #0x78
- ldr r1, [r1, r2]
- str r0, [sp, #0x38]
- str r1, [sp, #0x34]
- mov r1, #1
- str r1, [sp, #0x3c]
- str r1, [sp, #0x58]
- str r0, [sp, #0x5c]
- add r2, sp, #0x60
-_02215852:
- ldr r1, [r2]
- add r0, r0, #1
- str r1, [r3, #0x14]
- add r2, r2, #4
- add r3, r3, #4
- cmp r0, #6
- blt _02215852
- ldr r0, [r4, #8]
- ldr r1, [r4, #0xc]
- add r2, sp, #0x2c
- bl FUN_0200C154
- add r6, r0, #0
- bl FUN_0200C5A8
- str r6, [r7, #0x24]
- cmp r5, #0
- bne _02215880
- add r0, r6, #0
- mov r1, #0
- bl FUN_0200C644
- b _022158A8
-_02215880:
- add r0, r5, #0
- bl FUN_02008268
- cmp r0, #0
- bne _02215894
- add r0, r6, #0
- mov r1, #0
- bl FUN_0200C644
- b _022158A8
-_02215894:
- add r0, r5, #0
- mov r1, #6
- bl FUN_0200782C
- cmp r0, #1
- bne _022158A8
- add r0, r6, #0
- mov r1, #0
- bl FUN_0200C644
-_022158A8:
- cmp r5, #0
- beq _022158C2
- ldr r0, [r6]
- bl FUN_02020350
- add r1, r0, #0
- mov r3, #0x32
- ldr r1, [r1, #4]
- ldr r2, [sp, #0x18]
- mov r0, #0x13
- lsl r3, r3, #6
- bl FUN_0201C2C8
-_022158C2:
- cmp r5, #0
- beq _022158EC
- ldr r0, [r6]
- bl FUN_02020354
- mov r1, #1
- bl FUN_0201E28C
- mov r1, #2
- str r1, [sp]
- mov r1, #0x20
- lsl r0, r0, #0x14
- str r1, [sp, #4]
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- ldr r0, [r4, #0x10]
- ldr r1, [sp, #0x20]
- ldr r2, [sp, #0x1c]
- ldr r3, [r4]
- bl FUN_020030E8
-_022158EC:
- ldr r0, [sp, #0x24]
- add r7, r7, #4
- add r0, r0, #1
- str r0, [sp, #0x24]
- cmp r0, #4
- bge _022158FA
- b _022157AA
-_022158FA:
- add r0, r4, #0
- add sp, #0x90
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02215900: .word 0x0222AA4C
-_02215904: .word 0x0000D903
-_02215908: .word 0x00001388
-
- thumb_func_start MOD08_0221590C
-MOD08_0221590C: ; 0x0221590C
- ldr r3, _02215914 ; =MOD08_022156C0
- mov r2, #0xff
- bx r3
- nop
-_02215914: .word MOD08_022156C0
-
- thumb_func_start MOD08_02215918
-MOD08_02215918: ; 0x02215918
- push {r4, r5, r6, lr}
- add r5, r0, #0
- mov r6, #0
- add r4, r5, #0
-_02215920:
- ldr r0, [r4, #0x24]
- cmp r0, #0
- beq _0221593C
- ldr r0, [r5, #0xc]
- ldr r1, [r4, #0x14]
- bl FUN_0200C358
- ldr r0, [r5, #0xc]
- ldr r1, [r4, #0x14]
- bl FUN_0200C368
- ldr r0, [r4, #0x24]
- bl FUN_0200C3DC
-_0221593C:
- add r6, r6, #1
- add r4, r4, #4
- cmp r6, #4
- blt _02215920
- add r0, r5, #0
- bl FreeToHeap
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_0221594C
-MOD08_0221594C: ; 0x0221594C
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- add r7, r1, #0
- mov r4, #0
- add r5, r6, #0
-_02215956:
- cmp r4, r7
- bne _02215976
- ldr r0, [r5, #0x24]
- cmp r0, #0
- beq _02215976
- ldr r0, [r6, #0xc]
- ldr r1, [r5, #0x14]
- bl FUN_0200C358
- ldr r0, [r6, #0xc]
- ldr r1, [r5, #0x14]
- bl FUN_0200C368
- ldr r0, [r5, #0x24]
- bl FUN_0200C3DC
-_02215976:
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #4
- blt _02215956
- add r0, r6, #0
- bl FreeToHeap
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02215988
-MOD08_02215988: ; 0x02215988
- push {r4, lr}
- add r4, r0, #0
- bne _02215992
- bl ErrorHandling
-_02215992:
- ldr r0, [r4, #4]
- add r0, r4, r0
- add r0, #0x44
- ldrb r0, [r0]
- pop {r4, pc}
-
- thumb_func_start MOD08_0221599C
-MOD08_0221599C: ; 0x0221599C
- push {r4, lr}
- sub sp, #8
- mov r1, #0x12
- lsl r1, r1, #0xa
- add r4, r0, #0
- bl AllocFromHeap
- add r2, r0, #0
- mov r0, #1
- str r0, [sp]
- mov r3, #0x12
- ldr r0, _022159DC ; =MOD08_02215A68
- ldr r1, _022159E0 ; =MOD08_02215A84
- lsl r3, r3, #0xa
- str r4, [sp, #4]
- bl FUN_02012CDC
- add r4, r0, #0
- bl FUN_0201343C
- add r2, r0, #0
- beq _022159D4
- mov r0, #1
- mov r1, #0xe1
- lsl r0, r0, #0xc
- lsl r1, r1, #0xe
- bl FUN_0201EC94
-_022159D4:
- add r0, r4, #0
- add sp, #8
- pop {r4, pc}
- nop
-_022159DC: .word MOD08_02215A68
-_022159E0: .word MOD08_02215A84
-
- thumb_func_start MOD08_022159E4
-MOD08_022159E4: ; 0x022159E4
- push {r4, lr}
- sub sp, #8
- mov r1, #0x42
- lsl r1, r1, #8
- add r4, r0, #0
- bl AllocFromHeap
- add r2, r0, #0
- mov r0, #1
- str r0, [sp]
- mov r3, #0x42
- ldr r0, _02215A24 ; =MOD08_02215A68
- ldr r1, _02215A28 ; =MOD08_02215A84
- lsl r3, r3, #8
- str r4, [sp, #4]
- bl FUN_02012CDC
- add r4, r0, #0
- bl FUN_0201343C
- add r2, r0, #0
- beq _02215A1C
- mov r0, #1
- mov r1, #0xe1
- lsl r0, r0, #0xc
- lsl r1, r1, #0xe
- bl FUN_0201EC94
-_02215A1C:
- add r0, r4, #0
- add sp, #8
- pop {r4, pc}
- nop
-_02215A24: .word MOD08_02215A68
-_02215A28: .word MOD08_02215A84
-
- thumb_func_start MOD08_02215A2C
-MOD08_02215A2C: ; 0x02215A2C
- push {r3, r4, r5, lr}
- add r5, r0, #0
- bl FUN_020133E8
- add r4, r0, #0
- add r0, r5, #0
- bl FUN_02012DE4
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02215A44
-MOD08_02215A44: ; 0x02215A44
- push {r3, lr}
- bl FUN_020222AC
- bl FUN_02013348
- cmp r0, #0
- beq _02215A66
- bl FUN_02013364
- cmp r0, #0
- ble _02215A62
- bl FUN_020222AC
- bl FUN_020B02C8
-_02215A62:
- bl FUN_02013388
-_02215A66:
- pop {r3, pc}
-
- thumb_func_start MOD08_02215A68
-MOD08_02215A68: ; 0x02215A68
- push {r4, lr}
- ldr r3, _02215A80 ; =0x021064B8
- mov r2, #0
- ldr r3, [r3]
- blx r3
- add r4, r0, #0
- bl FUN_0201327C
- lsl r0, r4, #0x10
- lsr r0, r0, #0xd
- pop {r4, pc}
- nop
-_02215A80: .word 0x021064B8
-
- thumb_func_start MOD08_02215A84
-MOD08_02215A84: ; 0x02215A84
- push {r4, lr}
- ldr r3, _02215A9C ; =0x021064C0
- mov r2, #0
- ldr r3, [r3]
- blx r3
- add r4, r0, #0
- bl FUN_020132BC
- lsl r0, r4, #0x10
- lsr r0, r0, #0xd
- pop {r4, pc}
- nop
-_02215A9C: .word 0x021064C0
-
- thumb_func_start MOD08_02215AA0
-MOD08_02215AA0: ; 0x02215AA0
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02215AA4
-MOD08_02215AA4: ; 0x02215AA4
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r6, r1, #0
- add r7, r2, #0
- bl MOD08_0221599C
- add r4, r0, #0
- mov r0, #0x1d
- add r1, r6, #0
- add r2, r5, #0
- bl FUN_0201318C
- add r1, r0, #0
- add r0, r4, #0
- mov r2, #0xa
- add r3, r7, #0
- bl FUN_02013194
- add r0, r4, #0
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02215ACC
-MOD08_02215ACC: ; 0x02215ACC
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r6, r1, #0
- add r7, r2, #0
- str r3, [sp]
- bl MOD08_0221599C
- add r4, r0, #0
- add r0, r6, #0
- add r1, r7, #0
- add r2, r5, #0
- bl FUN_0201318C
- add r1, r0, #0
- ldr r3, [sp]
- add r0, r4, #0
- mov r2, #0xa
- bl FUN_02013194
- add r0, r4, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02215AF8
-MOD08_02215AF8: ; 0x02215AF8
- ldr r3, _02215AFC ; =NARC_AllocAndReadWholeMember
- bx r3
- .align 2, 0
-_02215AFC: .word NARC_AllocAndReadWholeMember
-
- thumb_func_start MOD08_02215B00
-MOD08_02215B00: ; 0x02215B00
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r6, r0, #0
- add r7, r2, #0
- add r0, r5, #0
- str r3, [sp]
- bl MOD08_022159E4
- add r4, r0, #0
- add r0, r6, #0
- add r1, r7, #0
- add r2, r5, #0
- bl MOD08_02215AF8
- add r1, r0, #0
- ldr r3, [sp]
- add r0, r4, #0
- mov r2, #0xa
- bl FUN_02013194
- add r0, r4, #0
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02215B2C
-MOD08_02215B2C: ; 0x02215B2C
- push {r4, lr}
- lsl r4, r2, #2
- ldr r2, _02215B3C ; =0x0222B248
- ldr r2, [r2, r4]
- bl FUN_020133AC
- pop {r4, pc}
- nop
-_02215B3C: .word 0x0222B248
-
- thumb_func_start MOD08_02215B40
-MOD08_02215B40: ; 0x02215B40
- ldr r3, _02215B44 ; =MOD08_02215A2C
- bx r3
- .align 2, 0
-_02215B44: .word MOD08_02215A2C
-
- thumb_func_start MOD08_02215B48
-MOD08_02215B48: ; 0x02215B48
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- add r7, r2, #0
- mov r4, #1
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r6, #0
- add r1, r7, #0
- bl MOD08_02227468
- cmp r5, #5
- bhi _02215B84
- add r0, r5, r5
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02215B6E: ; jump table
- .short _02215B84 - _02215B6E - 2 ; case 0
- .short _02215B7A - _02215B6E - 2 ; case 1
- .short _02215B84 - _02215B6E - 2 ; case 2
- .short _02215B7E - _02215B6E - 2 ; case 3
- .short _02215B84 - _02215B6E - 2 ; case 4
- .short _02215B82 - _02215B6E - 2 ; case 5
-_02215B7A:
- sub r4, r4, #2
- b _02215B84
-_02215B7E:
- sub r4, r4, #2
- b _02215B84
-_02215B82:
- sub r4, r4, #2
-_02215B84:
- add r0, r4, #0
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02215B88
-MOD08_02215B88: ; 0x02215B88
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02215B8C
-MOD08_02215B8C: ; 0x02215B8C
- push {r4, r5, r6, r7, lr}
- sub sp, #0x34
- add r5, r0, #0
- bl FUN_0201341C
- add r4, r0, #0
- bl MOD08_02212458
- add r0, r4, #0
- bl MOD08_02212460
- add r0, r4, #0
- bl MOD08_02212468
- add r6, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD08_02227470
- cmp r0, #3
- bne _02215BC2
- add r0, r4, #0
- mov r1, #1
- add r2, sp, #0x28
- bl MOD08_0222771C
- b _02215BFA
-_02215BC2:
- add r0, r4, #0
- mov r1, #1
- bl MOD08_02227468
- str r0, [sp]
- bl MOD08_02227524
- str r0, [sp, #4]
- add r0, r6, #0
- bl FUN_02013448
- add r7, r0, #0
- add r0, r4, #0
- bl MOD08_02212004
- add r4, r0, #0
- ldr r0, [sp, #4]
- add r1, sp, #0x28
- add r2, r4, #0
- add r3, r7, #0
- bl MOD08_0222765C
- ldr r0, [sp]
- add r1, sp, #0x1c
- add r2, r4, #0
- add r3, r7, #0
- bl MOD08_0222765C
-_02215BFA:
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #0x28]
- ldr r0, [r0]
- ldr r0, [r0, #4]
- add r0, r1, r0
- str r0, [r5, #0x28]
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #0x2c]
- ldr r0, [r0]
- ldr r0, [r0, #8]
- add r0, r1, r0
- str r0, [r5, #0x2c]
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #0x30]
- ldr r0, [r0]
- ldr r0, [r0, #0xc]
- add r0, r1, r0
- str r0, [r5, #0x30]
- mov r0, #1
- add r1, sp, #0x10
- bl MOD08_02227974
- add r0, r6, #0
- bl FUN_0201343C
- add r4, r0, #0
- add r0, sp, #8
- add r1, r4, #0
- bl FUN_0201F014
- add r0, sp, #8
- add r1, r4, #0
- bl FUN_0201EF90
- add sp, #0x34
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02215C44
-MOD08_02215C44: ; 0x02215C44
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x18
- add r5, r0, #0
- bl FUN_0201341C
- add r4, r0, #0
- bl MOD08_02212460
- add r6, r0, #0
- add r0, r4, #0
- bl MOD08_02212468
- add r7, r0, #0
- add r0, r4, #0
- mov r1, #0
- add r2, sp, #0xc
- bl MOD08_0222771C
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #0xc]
- ldr r0, [r0]
- ldr r0, [r0, #4]
- add r0, r1, r0
- str r0, [r5, #0x28]
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #0x10]
- ldr r0, [r0]
- ldr r0, [r0, #8]
- add r0, r1, r0
- str r0, [r5, #0x2c]
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #0x14]
- ldr r0, [r0]
- ldr r0, [r0, #0xc]
- add r0, r1, r0
- str r0, [r5, #0x30]
- add r0, r6, #0
- add r1, sp, #0
- bl MOD08_02227974
- add r0, r7, #0
- add r1, sp, #0
- bl FUN_020133FC
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02215CA0
-MOD08_02215CA0: ; 0x02215CA0
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r0, #0
- bl FUN_0201341C
- add r5, r0, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r5, #0
- add r2, sp, #0
- bl MOD08_0222771C
- ldr r0, [r4, #0x20]
- ldr r1, [sp]
- ldr r0, [r0]
- ldr r0, [r0, #4]
- add r0, r1, r0
- str r0, [r4, #0x28]
- ldr r0, [r4, #0x20]
- ldr r1, [sp, #4]
- ldr r0, [r0]
- ldr r0, [r0, #8]
- add r0, r1, r0
- str r0, [r4, #0x2c]
- ldr r0, [r4, #0x20]
- ldr r1, [sp, #8]
- ldr r0, [r0]
- ldr r0, [r0, #0xc]
- add r0, r1, r0
- str r0, [r4, #0x30]
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02215CE4
-MOD08_02215CE4: ; 0x02215CE4
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r0, #0
- bl FUN_0201341C
- add r5, r0, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- add r2, sp, #0
- bl MOD08_0222771C
- ldr r0, [r4, #0x20]
- ldr r1, [sp]
- ldr r0, [r0]
- ldr r0, [r0, #4]
- add r0, r1, r0
- str r0, [r4, #0x28]
- ldr r0, [r4, #0x20]
- ldr r1, [sp, #4]
- ldr r0, [r0]
- ldr r0, [r0, #8]
- add r0, r1, r0
- str r0, [r4, #0x2c]
- ldr r0, [r4, #0x20]
- ldr r1, [sp, #8]
- ldr r0, [r0]
- ldr r0, [r0, #0xc]
- add r0, r1, r0
- str r0, [r4, #0x30]
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02215D28
-MOD08_02215D28: ; 0x02215D28
- push {r3, r4, r5, r6, lr}
- sub sp, #0xc
- add r5, r0, #0
- bl FUN_0201341C
- add r4, r0, #0
- bl MOD08_02212458
- add r6, r0, #0
- add r0, r4, #0
- bl MOD08_02212460
- add r0, r4, #0
- add r1, r6, #0
- add r2, sp, #0
- bl MOD08_0222771C
- ldr r0, [r5, #0x20]
- ldr r1, [sp]
- ldr r0, [r0]
- ldr r0, [r0, #4]
- add r0, r1, r0
- str r0, [r5, #0x28]
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #4]
- ldr r0, [r0]
- ldr r0, [r0, #8]
- add r0, r1, r0
- str r0, [r5, #0x2c]
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #8]
- ldr r0, [r0]
- ldr r0, [r0, #0xc]
- add r0, r1, r0
- str r0, [r5, #0x30]
- add sp, #0xc
- pop {r3, r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02215D74
-MOD08_02215D74: ; 0x02215D74
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r5, r0, #0
- bl FUN_0201341C
- add r6, r0, #0
- bl MOD08_02212468
- bl FUN_02013448
- add r7, r0, #0
- add r0, r6, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_02227470
- cmp r0, #3
- beq _02215DA0
- mov r4, #1
- b _02215DA2
-_02215DA0:
- mov r4, #0
-_02215DA2:
- add r0, r6, #0
- bl MOD08_02212004
- add r2, r0, #0
- add r0, r4, #0
- add r1, sp, #0
- add r3, r7, #0
- bl MOD08_0222765C
- ldr r0, [r5, #0x20]
- ldr r1, [sp]
- ldr r0, [r0]
- ldr r0, [r0, #4]
- add r0, r1, r0
- str r0, [r5, #0x28]
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #4]
- ldr r0, [r0]
- ldr r0, [r0, #8]
- add r0, r1, r0
- str r0, [r5, #0x2c]
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #8]
- ldr r0, [r0]
- ldr r0, [r0, #0xc]
- add r0, r1, r0
- str r0, [r5, #0x30]
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02215DDC
-MOD08_02215DDC: ; 0x02215DDC
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r5, r0, #0
- bl FUN_0201341C
- add r6, r0, #0
- bl MOD08_02212468
- bl FUN_02013448
- add r7, r0, #0
- add r0, r6, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_02227470
- cmp r0, #3
- beq _02215E08
- mov r4, #1
- b _02215E0A
-_02215E08:
- mov r4, #0
-_02215E0A:
- add r0, r6, #0
- bl MOD08_02212004
- add r2, r0, #0
- add r0, r4, #0
- add r1, sp, #0
- add r3, r7, #0
- bl MOD08_0222765C
- ldr r0, [r5, #0x20]
- ldr r1, [sp]
- ldr r0, [r0]
- ldr r0, [r0, #4]
- add r0, r1, r0
- str r0, [r5, #0x28]
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #4]
- ldr r0, [r0]
- ldr r0, [r0, #8]
- add r0, r1, r0
- str r0, [r5, #0x2c]
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #8]
- ldr r0, [r0]
- ldr r0, [r0, #0xc]
- add r0, r1, r0
- str r0, [r5, #0x30]
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02215E44
-MOD08_02215E44: ; 0x02215E44
- push {r4, r5, r6, r7, lr}
- sub sp, #0x9c
- add r5, r0, #0
- add r1, sp, #0
- mov r0, #0
- strh r0, [r1]
- strh r0, [r1, #2]
- strh r0, [r1, #4]
- strh r0, [r1, #6]
- strh r0, [r1, #8]
- strh r0, [r1, #0xa]
- ldr r3, _02215EE4 ; =0x0222B2A4
- add r2, sp, #0x54
- mov r1, #0x24
-_02215E60:
- ldrh r0, [r3]
- add r3, r3, #2
- strh r0, [r2]
- add r2, r2, #2
- sub r1, r1, #1
- bne _02215E60
- ldr r3, _02215EE8 ; =0x0222B2EC
- add r2, sp, #0xc
- mov r1, #0x24
-_02215E72:
- ldrh r0, [r3]
- add r3, r3, #2
- strh r0, [r2]
- add r2, r2, #2
- sub r1, r1, #1
- bne _02215E72
- bl FUN_0201341C
- add r4, r0, #0
- bl MOD08_02212458
- add r6, r0, #0
- add r0, r4, #0
- bl MOD08_02212460
- add r7, r0, #0
- add r0, r4, #0
- add r1, r6, #0
- bl MOD08_02227468
- add r6, r0, #0
- add r0, r4, #0
- add r1, r7, #0
- bl MOD08_02227468
- lsl r2, r0, #1
- mov r0, #0xc
- add r1, r6, #0
- mul r1, r0
- add r0, sp, #0x54
- add r0, r0, r1
- ldrsh r4, [r2, r0]
- mov r3, #0xac
- add r0, r4, #0
- ldr r4, [r5, #0x20]
- mul r0, r3
- ldr r4, [r4]
- ldr r4, [r4, #4]
- add r0, r0, r4
- str r0, [r5, #0x28]
- add r0, sp, #0xc
- add r0, r0, r1
- ldrsh r0, [r2, r0]
- add r1, r0, #0
- ldr r0, [r5, #0x20]
- mul r1, r3
- ldr r0, [r0]
- ldr r0, [r0, #8]
- add r0, r1, r0
- str r0, [r5, #0x2c]
- ldr r0, [r5, #0x20]
- ldr r0, [r0]
- ldr r0, [r0, #0xc]
- str r0, [r5, #0x30]
- add sp, #0x9c
- pop {r4, r5, r6, r7, pc}
- nop
-_02215EE4: .word 0x0222B2A4
-_02215EE8: .word 0x0222B2EC
-
- thumb_func_start MOD08_02215EEC
-MOD08_02215EEC: ; 0x02215EEC
- push {r3, r4}
- add r3, r2, #0
- add r3, #8
- cmp r0, #7
- bhi _02215F7C
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02215F02: ; jump table
- .short _02215F7C - _02215F02 - 2 ; case 0
- .short _02215F12 - _02215F02 - 2 ; case 1
- .short _02215F1C - _02215F02 - 2 ; case 2
- .short _02215F26 - _02215F02 - 2 ; case 3
- .short _02215F30 - _02215F02 - 2 ; case 4
- .short _02215F42 - _02215F02 - 2 ; case 5
- .short _02215F54 - _02215F02 - 2 ; case 6
- .short _02215F66 - _02215F02 - 2 ; case 7
-_02215F12:
- ldr r0, [r2]
- mul r1, r0
- str r1, [r2]
- pop {r3, r4}
- bx lr
-_02215F1C:
- ldr r0, [r2, #4]
- mul r1, r0
- str r1, [r2, #4]
- pop {r3, r4}
- bx lr
-_02215F26:
- ldr r0, [r3]
- mul r1, r0
- str r1, [r3]
- pop {r3, r4}
- bx lr
-_02215F30:
- ldr r0, [r2]
- add r3, r0, #0
- mul r3, r1
- str r3, [r2]
- ldr r0, [r2, #4]
- mul r1, r0
- str r1, [r2, #4]
- pop {r3, r4}
- bx lr
-_02215F42:
- ldr r0, [r2]
- add r4, r0, #0
- mul r4, r1
- str r4, [r2]
- ldr r0, [r3]
- mul r1, r0
- str r1, [r3]
- pop {r3, r4}
- bx lr
-_02215F54:
- ldr r0, [r2, #4]
- add r4, r0, #0
- mul r4, r1
- str r4, [r2, #4]
- ldr r0, [r3]
- mul r1, r0
- str r1, [r3]
- pop {r3, r4}
- bx lr
-_02215F66:
- ldr r0, [r2]
- add r4, r0, #0
- mul r4, r1
- str r4, [r2]
- ldr r0, [r2, #4]
- add r4, r0, #0
- mul r4, r1
- str r4, [r2, #4]
- ldr r0, [r3]
- mul r1, r0
- str r1, [r3]
-_02215F7C:
- pop {r3, r4}
- bx lr
-
- thumb_func_start MOD08_02215F80
-MOD08_02215F80: ; 0x02215F80
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- add r6, r2, #0
- add r5, r1, #0
- add r1, r3, #0
- add r7, sp, #0x10
- mov r2, #0
- str r2, [r7]
- ldr r3, [sp, #0x30]
- str r2, [r7, #4]
- ldr r4, [sp, #0x38]
- str r2, [r7, #8]
- cmp r3, #5
- bhi _0221602A
- add r3, r3, r3
- add r3, pc
- ldrh r3, [r3, #6]
- lsl r3, r3, #0x10
- asr r3, r3, #0x10
- add pc, r3
-_02215FA8: ; jump table
- .short _0221602A - _02215FA8 - 2 ; case 0
- .short _02215FB4 - _02215FA8 - 2 ; case 1
- .short _02215FDA - _02215FA8 - 2 ; case 2
- .short _02215FEE - _02215FA8 - 2 ; case 3
- .short _02215FF6 - _02215FA8 - 2 ; case 4
- .short _02216000 - _02215FA8 - 2 ; case 5
-_02215FB4:
- add r0, r5, #0
- add r1, r7, #0
- bl FUN_02013628
- add r1, sp, #0x20
- mov r0, #0x14
- ldrsb r0, [r1, r0]
- ldr r1, [sp, #0x10]
- add r2, r1, #0
- mul r2, r0
- ldr r1, [sp, #0x14]
- str r2, [sp, #0x10]
- add r2, r1, #0
- mul r2, r0
- ldr r1, [sp, #0x18]
- str r2, [sp, #0x14]
- mul r0, r1
- str r0, [sp, #0x18]
- b _0221602A
-_02215FDA:
- str r2, [sp, #0x10]
- add r1, sp, #0x20
- mov r0, #0x14
- ldrsb r1, [r1, r0]
- mov r0, #0x32
- lsl r0, r0, #6
- mul r0, r1
- str r0, [sp, #0x14]
- str r2, [sp, #0x18]
- b _0221602A
-_02215FEE:
- add r2, r7, #0
- bl MOD08_0222771C
- b _0221602A
-_02215FF6:
- add r1, r6, #0
- add r2, r7, #0
- bl MOD08_0222771C
- b _0221602A
-_02216000:
- add r1, sp, #0
- str r2, [r1]
- str r2, [r1, #4]
- str r2, [r1, #8]
- str r2, [r1, #0xc]
- mov r2, #4
- bl MOD08_02215434
- ldr r0, [sp]
- add r2, sp, #0x20
- str r0, [sp, #0x10]
- ldr r0, [sp, #4]
- mov r1, #0x14
- str r0, [sp, #0x14]
- ldr r0, [sp, #8]
- str r0, [sp, #0x18]
- ldrsb r1, [r2, r1]
- ldr r0, [sp, #0xc]
- add r2, r7, #0
- bl MOD08_02215EEC
-_0221602A:
- ldr r1, [sp, #0x10]
- ldr r0, [r4]
- sub r0, r1, r0
- str r0, [sp, #0x10]
- ldr r1, [sp, #0x14]
- ldr r0, [r4, #4]
- sub r0, r1, r0
- str r0, [sp, #0x14]
- ldr r1, [sp, #0x18]
- ldr r0, [r4, #8]
- sub r0, r1, r0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, sp, #0x10
- bl FUN_02013610
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02216050
-MOD08_02216050: ; 0x02216050
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- add r6, r2, #0
- add r5, r1, #0
- add r1, r3, #0
- add r7, sp, #0x10
- mov r2, #0
- str r2, [r7]
- ldr r3, [sp, #0x30]
- str r2, [r7, #4]
- ldr r4, [sp, #0x38]
- str r2, [r7, #8]
- cmp r3, #5
- bhi _022160FA
- add r3, r3, r3
- add r3, pc
- ldrh r3, [r3, #6]
- lsl r3, r3, #0x10
- asr r3, r3, #0x10
- add pc, r3
-_02216078: ; jump table
- .short _022160FA - _02216078 - 2 ; case 0
- .short _02216084 - _02216078 - 2 ; case 1
- .short _022160AA - _02216078 - 2 ; case 2
- .short _022160BE - _02216078 - 2 ; case 3
- .short _022160C6 - _02216078 - 2 ; case 4
- .short _022160D0 - _02216078 - 2 ; case 5
-_02216084:
- add r0, r5, #0
- add r1, r7, #0
- bl FUN_02013548
- add r1, sp, #0x20
- mov r0, #0x14
- ldrsb r0, [r1, r0]
- ldr r1, [sp, #0x10]
- add r2, r1, #0
- mul r2, r0
- ldr r1, [sp, #0x14]
- str r2, [sp, #0x10]
- add r2, r1, #0
- mul r2, r0
- ldr r1, [sp, #0x18]
- str r2, [sp, #0x14]
- mul r0, r1
- str r0, [sp, #0x18]
- b _022160FA
-_022160AA:
- str r2, [sp, #0x10]
- add r1, sp, #0x20
- mov r0, #0x14
- ldrsb r1, [r1, r0]
- mov r0, #0x32
- lsl r0, r0, #6
- mul r0, r1
- str r0, [sp, #0x14]
- str r2, [sp, #0x18]
- b _022160FA
-_022160BE:
- add r2, r7, #0
- bl MOD08_0222771C
- b _022160FA
-_022160C6:
- add r1, r6, #0
- add r2, r7, #0
- bl MOD08_0222771C
- b _022160FA
-_022160D0:
- add r1, sp, #0
- str r2, [r1]
- str r2, [r1, #4]
- str r2, [r1, #8]
- str r2, [r1, #0xc]
- mov r2, #4
- bl MOD08_02215434
- ldr r0, [sp]
- add r2, sp, #0x20
- str r0, [sp, #0x10]
- ldr r0, [sp, #4]
- mov r1, #0x14
- str r0, [sp, #0x14]
- ldr r0, [sp, #8]
- str r0, [sp, #0x18]
- ldrsb r1, [r2, r1]
- ldr r0, [sp, #0xc]
- add r2, r7, #0
- bl MOD08_02215EEC
-_022160FA:
- ldr r1, [sp, #0x10]
- ldr r0, [r4]
- sub r0, r1, r0
- str r0, [sp, #0x10]
- ldr r1, [sp, #0x14]
- ldr r0, [r4, #4]
- sub r0, r1, r0
- str r0, [sp, #0x14]
- ldr r1, [sp, #0x18]
- ldr r0, [r4, #8]
- sub r0, r1, r0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, sp, #0x10
- bl FUN_02013530
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02216120
-MOD08_02216120: ; 0x02216120
- push {r4, r5, r6, r7, lr}
- sub sp, #0x94
- add r6, r0, #0
- add r7, r2, #0
- add r4, r1, #0
- str r3, [sp, #0xc]
- bl MOD08_02212468
- add r0, r6, #0
- add r1, r7, #0
- bl MOD08_02227468
- str r0, [sp, #0x10]
- ldr r1, [sp, #0xc]
- add r0, r6, #0
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r6, #0
- add r1, sp, #0x7c
- mov r2, #3
- bl MOD08_02215434
- add r0, r6, #0
- add r1, sp, #0x70
- mov r2, #3
- bl MOD08_02215434
- add r0, r6, #0
- add r1, sp, #0x58
- mov r2, #3
- bl MOD08_02215434
- add r0, r6, #0
- add r1, sp, #0x64
- mov r2, #3
- bl MOD08_02215434
- add r0, r6, #0
- add r1, sp, #0x40
- mov r2, #3
- bl MOD08_02215434
- add r0, r6, #0
- add r1, sp, #0x34
- mov r2, #3
- bl MOD08_02215434
- add r0, r6, #0
- add r1, sp, #0x4c
- mov r2, #3
- bl MOD08_02215434
- ldr r0, [sp, #0x10]
- cmp r0, #5
- bhi _022161A8
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221619C: ; jump table
- .short _022161A8 - _0221619C - 2 ; case 0
- .short _022161B8 - _0221619C - 2 ; case 1
- .short _022161CE - _0221619C - 2 ; case 2
- .short _02216202 - _0221619C - 2 ; case 3
- .short _0221624C - _0221619C - 2 ; case 4
- .short _02216280 - _0221619C - 2 ; case 5
-_022161A8:
- ldr r1, [sp, #0x7c]
- add r0, sp, #0x14
- strh r1, [r0]
- ldr r1, [sp, #0x80]
- strh r1, [r0, #2]
- ldr r1, [sp, #0x84]
- strh r1, [r0, #4]
- b _022162C8
-_022161B8:
- ldr r0, [sp, #0x7c]
- neg r1, r0
- add r0, sp, #0x14
- strh r1, [r0]
- ldr r1, [sp, #0x80]
- neg r1, r1
- strh r1, [r0, #2]
- ldr r1, [sp, #0x84]
- neg r1, r1
- strh r1, [r0, #4]
- b _022162C8
-_022161CE:
- cmp r5, #3
- add r0, sp, #0x14
- bne _022161E2
- ldr r1, [sp, #0x70]
- strh r1, [r0]
- ldr r1, [sp, #0x74]
- strh r1, [r0, #2]
- ldr r1, [sp, #0x78]
- strh r1, [r0, #4]
- b _022162C8
-_022161E2:
- cmp r5, #5
- bne _022161F4
- ldr r1, [sp, #0x58]
- strh r1, [r0]
- ldr r1, [sp, #0x5c]
- strh r1, [r0, #2]
- ldr r1, [sp, #0x60]
- strh r1, [r0, #4]
- b _022162C8
-_022161F4:
- ldr r1, [sp, #0x64]
- strh r1, [r0]
- ldr r1, [sp, #0x68]
- strh r1, [r0, #2]
- ldr r1, [sp, #0x6c]
- strh r1, [r0, #4]
- b _022162C8
-_02216202:
- cmp r5, #2
- bne _0221621C
- ldr r0, [sp, #0x70]
- neg r1, r0
- add r0, sp, #0x14
- strh r1, [r0]
- ldr r1, [sp, #0x74]
- neg r1, r1
- strh r1, [r0, #2]
- ldr r1, [sp, #0x78]
- neg r1, r1
- strh r1, [r0, #4]
- b _022162C8
-_0221621C:
- cmp r5, #5
- bne _02216236
- ldr r0, [sp, #0x64]
- neg r1, r0
- add r0, sp, #0x14
- strh r1, [r0]
- ldr r1, [sp, #0x68]
- neg r1, r1
- strh r1, [r0, #2]
- ldr r1, [sp, #0x6c]
- neg r1, r1
- strh r1, [r0, #4]
- b _022162C8
-_02216236:
- ldr r0, [sp, #0x40]
- neg r1, r0
- add r0, sp, #0x14
- strh r1, [r0]
- ldr r1, [sp, #0x44]
- neg r1, r1
- strh r1, [r0, #2]
- ldr r1, [sp, #0x48]
- neg r1, r1
- strh r1, [r0, #4]
- b _022162C8
-_0221624C:
- cmp r5, #3
- add r0, sp, #0x14
- bne _02216260
- ldr r1, [sp, #0x40]
- strh r1, [r0]
- ldr r1, [sp, #0x44]
- strh r1, [r0, #2]
- ldr r1, [sp, #0x48]
- strh r1, [r0, #4]
- b _022162C8
-_02216260:
- cmp r5, #5
- bne _02216272
- ldr r1, [sp, #0x34]
- strh r1, [r0]
- ldr r1, [sp, #0x38]
- strh r1, [r0, #2]
- ldr r1, [sp, #0x3c]
- strh r1, [r0, #4]
- b _022162C8
-_02216272:
- ldr r1, [sp, #0x4c]
- strh r1, [r0]
- ldr r1, [sp, #0x50]
- strh r1, [r0, #2]
- ldr r1, [sp, #0x54]
- strh r1, [r0, #4]
- b _022162C8
-_02216280:
- cmp r5, #3
- bne _0221629A
- ldr r0, [sp, #0x4c]
- neg r1, r0
- add r0, sp, #0x14
- strh r1, [r0]
- ldr r1, [sp, #0x50]
- neg r1, r1
- strh r1, [r0, #2]
- ldr r1, [sp, #0x54]
- neg r1, r1
- strh r1, [r0, #4]
- b _022162C8
-_0221629A:
- cmp r5, #2
- bne _022162B4
- ldr r0, [sp, #0x58]
- neg r1, r0
- add r0, sp, #0x14
- strh r1, [r0]
- ldr r1, [sp, #0x5c]
- neg r1, r1
- strh r1, [r0, #2]
- ldr r1, [sp, #0x60]
- neg r1, r1
- strh r1, [r0, #4]
- b _022162C8
-_022162B4:
- ldr r0, [sp, #0x34]
- neg r1, r0
- add r0, sp, #0x14
- strh r1, [r0]
- ldr r1, [sp, #0x38]
- neg r1, r1
- strh r1, [r0, #2]
- ldr r1, [sp, #0x3c]
- neg r1, r1
- strh r1, [r0, #4]
-_022162C8:
- ldr r2, [sp, #0xc]
- add r0, r6, #0
- add r1, r7, #0
- bl MOD08_02215B48
- add r5, r0, #0
- add r1, sp, #0x28
- mov r0, #0
- str r0, [r1]
- str r0, [r1, #4]
- str r0, [r1, #8]
- add r0, r6, #0
- mov r2, #3
- bl MOD08_02215434
- add r0, r6, #0
- add r1, r7, #0
- add r2, sp, #0x1c
- bl MOD08_0222771C
- ldr r0, [sp, #0x28]
- cmp r0, #0
- bne _02216334
- ldr r0, [sp, #0x2c]
- cmp r0, #0
- bne _02216334
- ldr r0, [sp, #0x30]
- cmp r0, #0
- bne _02216334
- add r3, sp, #0x1c
- ldmia r3!, {r0, r1}
- add r2, sp, #0x88
- stmia r2!, {r0, r1}
- ldr r0, [r3]
- str r0, [r2]
- ldr r1, [r4, #0x20]
- ldr r0, [sp, #0x1c]
- ldr r1, [r1]
- ldr r1, [r1, #4]
- add r0, r0, r1
- str r0, [r4, #0x28]
- ldr r1, [r4, #0x20]
- ldr r0, [sp, #0x20]
- ldr r1, [r1]
- ldr r1, [r1, #8]
- add r0, r0, r1
- str r0, [r4, #0x2c]
- ldr r1, [r4, #0x20]
- ldr r0, [sp, #0x24]
- ldr r1, [r1]
- ldr r1, [r1, #0xc]
- add r0, r0, r1
- str r0, [r4, #0x30]
- b _02216388
-_02216334:
- ldr r2, [sp, #0x28]
- ldr r1, [sp, #0x2c]
- ldr r0, [sp, #0x30]
- str r2, [sp, #0x88]
- str r1, [sp, #0x8c]
- str r0, [sp, #0x90]
- cmp r2, #0
- bne _0221634E
- mov r0, #0x32
- lsl r0, r0, #6
- cmp r1, r0
- bne _0221634E
- mov r5, #1
-_0221634E:
- ldr r1, [sp, #0x88]
- add r0, r1, #0
- ldr r1, [sp, #0x8c]
- mul r0, r5
- add r2, r1, #0
- mul r2, r5
- ldr r1, [sp, #0x24]
- str r2, [sp, #0x8c]
- add r2, r1, #0
- mul r2, r5
- str r0, [sp, #0x88]
- str r2, [sp, #0x90]
- ldr r1, [r4, #0x20]
- ldr r1, [r1]
- ldr r1, [r1, #4]
- add r0, r0, r1
- str r0, [r4, #0x28]
- ldr r1, [r4, #0x20]
- ldr r0, [sp, #0x8c]
- ldr r1, [r1]
- ldr r1, [r1, #8]
- add r0, r0, r1
- str r0, [r4, #0x2c]
- ldr r1, [r4, #0x20]
- ldr r0, [sp, #0x90]
- ldr r1, [r1]
- ldr r1, [r1, #0xc]
- add r0, r0, r1
- str r0, [r4, #0x30]
-_02216388:
- ldr r0, [sp, #0xa8]
- cmp r0, #0
- beq _022163C6
- cmp r0, #1
- beq _02216398
- cmp r0, #2
- beq _022163B0
- b _022163C6
-_02216398:
- ldr r0, [sp, #0xac]
- ldr r3, [sp, #0xc]
- str r0, [sp]
- str r5, [sp, #4]
- add r0, sp, #0x88
- str r0, [sp, #8]
- add r0, r6, #0
- add r1, r4, #0
- add r2, r7, #0
- bl MOD08_02215F80
- b _022163C6
-_022163B0:
- ldr r0, [sp, #0xac]
- ldr r3, [sp, #0xc]
- str r0, [sp]
- str r5, [sp, #4]
- add r0, sp, #0x88
- str r0, [sp, #8]
- add r0, r6, #0
- add r1, r4, #0
- add r2, r7, #0
- bl MOD08_02216050
-_022163C6:
- add r1, sp, #0x14
- ldrh r2, [r1]
- add r0, r4, #0
- add r0, #0x50
- strh r2, [r0]
- add r0, r4, #0
- ldrh r2, [r1, #2]
- add r0, #0x52
- add r4, #0x54
- strh r2, [r0]
- ldrh r0, [r1, #4]
- strh r0, [r4]
- add sp, #0x94
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022163E4
-MOD08_022163E4: ; 0x022163E4
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r7, r0, #0
- add r5, r1, #0
- add r4, r2, #0
- bl FUN_0201341C
- add r6, r0, #0
- bl MOD08_02212458
- str r0, [sp, #8]
- add r0, r6, #0
- bl MOD08_02212460
- add r3, r0, #0
- str r5, [sp]
- ldr r2, [sp, #8]
- add r0, r6, #0
- add r1, r7, #0
- str r4, [sp, #4]
- bl MOD08_02216120
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02216414
-MOD08_02216414: ; 0x02216414
- ldr r3, _0221641C ; =MOD08_022163E4
- mov r1, #0
- add r2, r1, #0
- bx r3
- .align 2, 0
-_0221641C: .word MOD08_022163E4
-
- thumb_func_start MOD08_02216420
-MOD08_02216420: ; 0x02216420
- ldr r3, _02216428 ; =MOD08_022163E4
- mov r1, #1
- add r2, r1, #0
- bx r3
- .align 2, 0
-_02216428: .word MOD08_022163E4
-
- thumb_func_start MOD08_0221642C
-MOD08_0221642C: ; 0x0221642C
- ldr r3, _02216434 ; =MOD08_022163E4
- mov r1, #1
- mov r2, #2
- bx r3
- .align 2, 0
-_02216434: .word MOD08_022163E4
-
- thumb_func_start MOD08_02216438
-MOD08_02216438: ; 0x02216438
- ldr r3, _02216440 ; =MOD08_022163E4
- mov r1, #1
- mov r2, #3
- bx r3
- .align 2, 0
-_02216440: .word MOD08_022163E4
-
- thumb_func_start MOD08_02216444
-MOD08_02216444: ; 0x02216444
- ldr r3, _0221644C ; =MOD08_022163E4
- mov r1, #1
- mov r2, #4
- bx r3
- .align 2, 0
-_0221644C: .word MOD08_022163E4
-
- thumb_func_start MOD08_02216450
-MOD08_02216450: ; 0x02216450
- ldr r3, _02216458 ; =MOD08_022163E4
- mov r1, #1
- mov r2, #5
- bx r3
- .align 2, 0
-_02216458: .word MOD08_022163E4
-
- thumb_func_start MOD08_0221645C
-MOD08_0221645C: ; 0x0221645C
- ldr r3, _02216464 ; =MOD08_022163E4
- mov r1, #2
- mov r2, #1
- bx r3
- .align 2, 0
-_02216464: .word MOD08_022163E4
-
- thumb_func_start MOD08_02216468
-MOD08_02216468: ; 0x02216468
- ldr r3, _02216470 ; =MOD08_022163E4
- mov r1, #2
- add r2, r1, #0
- bx r3
- .align 2, 0
-_02216470: .word MOD08_022163E4
-
- thumb_func_start MOD08_02216474
-MOD08_02216474: ; 0x02216474
- ldr r3, _0221647C ; =MOD08_022163E4
- mov r1, #2
- mov r2, #3
- bx r3
- .align 2, 0
-_0221647C: .word MOD08_022163E4
-
- thumb_func_start MOD08_02216480
-MOD08_02216480: ; 0x02216480
- ldr r3, _02216488 ; =MOD08_022163E4
- mov r1, #2
- mov r2, #4
- bx r3
- .align 2, 0
-_02216488: .word MOD08_022163E4
-
- thumb_func_start MOD08_0221648C
-MOD08_0221648C: ; 0x0221648C
- ldr r3, _02216494 ; =MOD08_022163E4
- mov r1, #2
- mov r2, #5
- bx r3
- .align 2, 0
-_02216494: .word MOD08_022163E4
-
- thumb_func_start MOD08_02216498
-MOD08_02216498: ; 0x02216498
- push {r4, r5, r6, lr}
- sub sp, #8
- add r5, r0, #0
- bl FUN_0201341C
- add r4, r0, #0
- bl MOD08_02212458
- add r6, r0, #0
- add r0, r4, #0
- bl MOD08_02212460
- add r2, r0, #0
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- add r0, r4, #0
- add r1, r5, #0
- add r3, r6, #0
- bl MOD08_02216120
- add sp, #8
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022164C8
-MOD08_022164C8: ; 0x022164C8
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldr r2, [r4, #0x14]
- add r5, r0, #0
- cmp r2, #0
- beq _022164D8
- bl MOD08_0221658C
-_022164D8:
- ldr r0, [r4, #0x18]
- cmp r0, #0
- beq _022164E6
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_022168C0
-_022164E6:
- ldr r0, [r4, #0x1c]
- cmp r0, #0
- beq _022164F4
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02217124
-_022164F4:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02217158
- ldr r0, [r4, #0xc]
- cmp r0, #0
- beq _0221650A
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02217168
-_0221650A:
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_0221650C
-MOD08_0221650C: ; 0x0221650C
- push {r3, r4, r5, r6, r7, lr}
- ldr r4, [r1]
- add r6, r2, #0
- add r0, r4, #0
- bl MOD08_02212468
- bl FUN_02013448
- add r7, r0, #0
- add r0, r4, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r4, #0
- bl MOD08_02227470
- cmp r0, #3
- beq _02216534
- mov r5, #1
- b _02216536
-_02216534:
- mov r5, #0
-_02216536:
- add r0, r4, #0
- bl MOD08_02212004
- add r2, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- add r3, r7, #0
- bl MOD08_0222765C
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221654C
-MOD08_0221654C: ; 0x0221654C
- push {r3, r4, r5, r6, r7, lr}
- ldr r4, [r1]
- add r6, r2, #0
- add r0, r4, #0
- bl MOD08_02212468
- bl FUN_02013448
- add r7, r0, #0
- add r0, r4, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r4, #0
- bl MOD08_02227470
- cmp r0, #3
- beq _02216574
- mov r5, #1
- b _02216576
-_02216574:
- mov r5, #0
-_02216576:
- add r0, r4, #0
- bl MOD08_02212004
- add r2, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- add r3, r7, #0
- bl MOD08_0222765C
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221658C
-MOD08_0221658C: ; 0x0221658C
- push {r3, r4, r5, r6, lr}
- sub sp, #0xbc
- add r4, r1, #0
- ldr r2, [r4, #0x14]
- add r5, r0, #0
- cmp r2, #0x64
- bgt _022165F4
- blt _0221659E
- b _02216768
-_0221659E:
- cmp r2, #0x22
- bhi _022165FA
- add r3, r2, r2
- add r3, pc
- ldrh r3, [r3, #6]
- lsl r3, r3, #0x10
- asr r3, r3, #0x10
- add pc, r3
-_022165AE: ; jump table
- .short _02216872 - _022165AE - 2 ; case 0
- .short _022165FC - _022165AE - 2 ; case 1
- .short _02216608 - _022165AE - 2 ; case 2
- .short _02216704 - _022165AE - 2 ; case 3
- .short _02216740 - _022165AE - 2 ; case 4
- .short _02216754 - _022165AE - 2 ; case 5
- .short _02216614 - _022165AE - 2 ; case 6
- .short _02216620 - _022165AE - 2 ; case 7
- .short _022166EC - _022165AE - 2 ; case 8
- .short _022166F8 - _022165AE - 2 ; case 9
- .short _0221662C - _022165AE - 2 ; case 10
- .short _02216638 - _022165AE - 2 ; case 11
- .short _02216794 - _022165AE - 2 ; case 12
- .short _022167A4 - _022165AE - 2 ; case 13
- .short _02216644 - _022165AE - 2 ; case 14
- .short _02216650 - _022165AE - 2 ; case 15
- .short _0221665C - _022165AE - 2 ; case 16
- .short _02216668 - _022165AE - 2 ; case 17
- .short _02216674 - _022165AE - 2 ; case 18
- .short _02216680 - _022165AE - 2 ; case 19
- .short _0221668C - _022165AE - 2 ; case 20
- .short _02216698 - _022165AE - 2 ; case 21
- .short _022166A4 - _022165AE - 2 ; case 22
- .short _022166B0 - _022165AE - 2 ; case 23
- .short _022166BC - _022165AE - 2 ; case 24
- .short _022166C8 - _022165AE - 2 ; case 25
- .short _022166D4 - _022165AE - 2 ; case 26
- .short _022166E0 - _022165AE - 2 ; case 27
- .short _022167B4 - _022165AE - 2 ; case 28
- .short _02216872 - _022165AE - 2 ; case 29
- .short _02216804 - _022165AE - 2 ; case 30
- .short _022167DA - _022165AE - 2 ; case 31
- .short _0221683C - _022165AE - 2 ; case 32
- .short _022167C0 - _022165AE - 2 ; case 33
- .short _022167CE - _022165AE - 2 ; case 34
-_022165F4:
- cmp r2, #0x65
- bne _022165FA
- b _0221677E
-_022165FA:
- b _02216872
-_022165FC:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- add r2, sp, #0xb0
- bl MOD08_0222771C
- b _02216872
-_02216608:
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- add r2, sp, #0xb0
- bl MOD08_0222771C
- b _02216872
-_02216614:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- add r2, sp, #0xb0
- bl MOD08_0222774C
- b _02216872
-_02216620:
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- add r2, sp, #0xb0
- bl MOD08_0222774C
- b _02216872
-_0221662C:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- add r2, sp, #0xb0
- bl MOD08_0222777C
- b _02216872
-_02216638:
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- add r2, sp, #0xb0
- bl MOD08_0222777C
- b _02216872
-_02216644:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- add r2, sp, #0xb0
- bl MOD08_022277AC
- b _02216872
-_02216650:
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- add r2, sp, #0xb0
- bl MOD08_022277AC
- b _02216872
-_0221665C:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- add r2, sp, #0xb0
- bl MOD08_022277DC
- b _02216872
-_02216668:
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- add r2, sp, #0xb0
- bl MOD08_022277DC
- b _02216872
-_02216674:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- add r2, sp, #0xb0
- bl MOD08_0222780C
- b _02216872
-_02216680:
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- add r2, sp, #0xb0
- bl MOD08_0222780C
- b _02216872
-_0221668C:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- add r2, sp, #0xb0
- bl MOD08_0222783C
- b _02216872
-_02216698:
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- add r2, sp, #0xb0
- bl MOD08_0222783C
- b _02216872
-_022166A4:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- add r2, sp, #0xb0
- bl MOD08_0222786C
- b _02216872
-_022166B0:
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- add r2, sp, #0xb0
- bl MOD08_0222786C
- b _02216872
-_022166BC:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- add r2, sp, #0xb0
- bl MOD08_0222789C
- b _02216872
-_022166C8:
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- add r2, sp, #0xb0
- bl MOD08_0222789C
- b _02216872
-_022166D4:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- add r2, sp, #0xb0
- bl MOD08_022278CC
- b _02216872
-_022166E0:
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- add r2, sp, #0xb0
- bl MOD08_022278CC
- b _02216872
-_022166EC:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- add r2, sp, #0xb0
- bl MOD08_0222792C
- b _02216872
-_022166F8:
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- add r2, sp, #0xb0
- bl MOD08_0222792C
- b _02216872
-_02216704:
- ldr r0, [r4]
- add r1, sp, #0xa0
- mov r2, #4
- bl MOD08_02215434
- add r0, r4, #0
- bl MOD08_0221727C
- strb r0, [r4, #8]
- ldr r0, [sp, #0xa4]
- str r0, [sp, #0xb0]
- ldr r0, [sp, #0xa8]
- str r0, [sp, #0xb4]
- ldr r0, [sp, #0xac]
- str r0, [sp, #0xb8]
- ldr r0, [sp, #0xa0]
- cmp r0, #1
- bne _0221672C
- mov r0, #1
- strb r0, [r4, #8]
-_0221672C:
- mov r0, #8
- ldrsb r1, [r4, r0]
- ldr r2, [sp, #0xb0]
- mul r1, r2
- str r1, [sp, #0xb0]
- ldrsb r0, [r4, r0]
- ldr r1, [sp, #0xb4]
- mul r0, r1
- str r0, [sp, #0xb4]
- b _02216872
-_02216740:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- add r2, sp, #0xb0
- bl MOD08_0222771C
- add r0, r4, #0
- add r1, sp, #0xb0
- bl MOD08_0221734C
- b _02216872
-_02216754:
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- add r2, sp, #0xb0
- bl MOD08_0222771C
- add r0, r4, #0
- add r1, sp, #0xb0
- bl MOD08_0221734C
- b _02216872
-_02216768:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- add r2, sp, #0xb0
- bl MOD08_0222771C
- ldr r1, [r4, #0x24]
- add r0, r4, #0
- add r2, sp, #0xb0
- bl MOD08_022172C0
- b _02216872
-_0221677E:
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- add r2, sp, #0xb0
- bl MOD08_0222771C
- ldr r1, [r4, #0x28]
- add r0, r4, #0
- add r2, sp, #0xb0
- bl MOD08_022172C0
- b _02216872
-_02216794:
- add r2, sp, #0xb0
- bl MOD08_0221654C
- add r0, r4, #0
- add r1, sp, #0xb0
- bl MOD08_0221734C
- b _02216872
-_022167A4:
- add r2, sp, #0xb0
- bl MOD08_0221650C
- add r0, r4, #0
- add r1, sp, #0xb0
- bl MOD08_0221734C
- b _02216872
-_022167B4:
- ldr r0, _022168A8 ; =0x00002CE0
- str r0, [sp, #0xb0]
- mov r0, #0
- str r0, [sp, #0xb4]
- str r0, [sp, #0xb8]
- b _02216872
-_022167C0:
- ldr r0, _022168AC ; =0xFFFFEC78
- str r0, [sp, #0xb0]
- ldr r0, _022168B0 ; =0xFFFFE890
- str r0, [sp, #0xb4]
- mov r0, #0
- str r0, [sp, #0xb8]
- b _02216872
-_022167CE:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- add r2, sp, #0xb0
- bl MOD08_0222771C
- b _02216872
-_022167DA:
- ldr r6, _022168B4 ; =0x0222B344
- add r3, sp, #0x70
- mov r2, #6
-_022167E0:
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _022167E0
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- bl MOD08_02227468
- lsl r1, r0, #3
- add r0, sp, #0x70
- ldr r0, [r0, r1]
- str r0, [sp, #0xb0]
- add r0, sp, #0x74
- ldr r0, [r0, r1]
- str r0, [sp, #0xb4]
- mov r0, #0
- str r0, [sp, #0xb8]
- b _02216872
-_02216804:
- ldr r6, _022168B8 ; =0x0222B3DC
- add r3, sp, #0x38
- mov r2, #7
-_0221680A:
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _0221680A
- ldr r0, [r4]
- bl MOD08_02212004
- cmp r0, #1
- bne _02216820
- mov r0, #6
- b _02216828
-_02216820:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- bl MOD08_02227468
-_02216828:
- lsl r1, r0, #3
- add r0, sp, #0x38
- ldr r0, [r0, r1]
- str r0, [sp, #0xb0]
- add r0, sp, #0x3c
- ldr r0, [r0, r1]
- str r0, [sp, #0xb4]
- mov r0, #0
- str r0, [sp, #0xb8]
- b _02216872
-_0221683C:
- ldr r6, _022168BC ; =0x0222B3A4
- add r3, sp, #0
- mov r2, #7
-_02216842:
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _02216842
- ldr r0, [r4]
- bl MOD08_02212004
- cmp r0, #1
- bne _02216858
- mov r0, #6
- b _02216860
-_02216858:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- bl MOD08_02227468
-_02216860:
- lsl r1, r0, #3
- add r0, sp, #0
- ldr r0, [r0, r1]
- str r0, [sp, #0xb0]
- add r0, sp, #4
- ldr r0, [r0, r1]
- str r0, [sp, #0xb4]
- mov r0, #0
- str r0, [sp, #0xb8]
-_02216872:
- add r2, sp, #0xb0
- ldmia r2!, {r0, r1}
- add r4, #0x2c
- stmia r4!, {r0, r1}
- ldr r0, [r2]
- str r0, [r4]
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #0xb0]
- ldr r0, [r0]
- ldr r0, [r0, #4]
- add r0, r1, r0
- str r0, [r5, #0x28]
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #0xb4]
- ldr r0, [r0]
- ldr r0, [r0, #8]
- add r0, r1, r0
- str r0, [r5, #0x2c]
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #0xb8]
- ldr r0, [r0]
- ldr r0, [r0, #0xc]
- add r0, r1, r0
- str r0, [r5, #0x30]
- add sp, #0xbc
- pop {r3, r4, r5, r6, pc}
- nop
-_022168A8: .word 0x00002CE0
-_022168AC: .word 0xFFFFEC78
-_022168B0: .word 0xFFFFE890
-_022168B4: .word 0x0222B344
-_022168B8: .word 0x0222B3DC
-_022168BC: .word 0x0222B3A4
-
- thumb_func_start MOD08_022168C0
-MOD08_022168C0: ; 0x022168C0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x148
- str r0, [sp]
- str r1, [sp, #4]
- ldr r0, [r1]
- ldr r1, [r1, #0x24]
- bl MOD08_02227468
- str r0, [sp, #0x18]
- ldr r0, [sp, #4]
- ldr r1, [sp, #4]
- ldr r0, [r0]
- ldr r1, [r1, #0x28]
- bl MOD08_02227468
- str r0, [sp, #0x14]
- ldr r0, [sp, #4]
- ldr r0, [r0, #0x18]
- cmp r0, #0x1a
- bls _022168EC
- bl _022170F2
-_022168EC:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_022168F8: ; jump table
- .short _0221692E - _022168F8 - 2 ; case 0
- .short _0221693A - _022168F8 - 2 ; case 1
- .short _0221693A - _022168F8 - 2 ; case 2
- .short _02217024 - _022168F8 - 2 ; case 3
- .short _022169A2 - _022168F8 - 2 ; case 4
- .short _02216A5C - _022168F8 - 2 ; case 5
- .short _02216D90 - _022168F8 - 2 ; case 6
- .short _02216D90 - _022168F8 - 2 ; case 7
- .short _02216B16 - _022168F8 - 2 ; case 8
- .short _02216B16 - _022168F8 - 2 ; case 9
- .short _02216B7E - _022168F8 - 2 ; case 10
- .short _02216B7E - _022168F8 - 2 ; case 11
- .short _02216BCC - _022168F8 - 2 ; case 12
- .short _02216BCC - _022168F8 - 2 ; case 13
- .short _02216C14 - _022168F8 - 2 ; case 14
- .short _02216C14 - _022168F8 - 2 ; case 15
- .short _02216C5C - _022168F8 - 2 ; case 16
- .short _02216C5C - _022168F8 - 2 ; case 17
- .short _02216D00 - _022168F8 - 2 ; case 18
- .short _02216D00 - _022168F8 - 2 ; case 19
- .short _02216D48 - _022168F8 - 2 ; case 20
- .short _02216D48 - _022168F8 - 2 ; case 21
- .short _02217038 - _022168F8 - 2 ; case 22
- .short _022170F2 - _022168F8 - 2 ; case 23
- .short _022170C4 - _022168F8 - 2 ; case 24
- .short _02217080 - _022168F8 - 2 ; case 25
- .short _02217092 - _022168F8 - 2 ; case 26
-_0221692E:
- mov r1, #0
- add r0, sp, #0x20
- strh r1, [r0]
- strh r1, [r0, #2]
- strh r1, [r0, #4]
- b _022170F2
-_0221693A:
- ldr r0, [sp, #4]
- ldr r0, [r0]
- bl MOD08_02212004
- cmp r0, #1
- bne _02216974
- ldr r0, [sp, #4]
- ldr r0, [r0, #0x10]
- cmp r0, #2
- add r0, sp, #0x20
- bne _02216962
- ldr r1, _02216CA4 ; =0xFFFFF2F8
- strh r1, [r0]
- mov r1, #0x73
- lsl r1, r1, #4
- strh r1, [r0, #2]
- mov r1, #0x2e
- lsl r1, r1, #4
- strh r1, [r0, #4]
- b _022170F2
-_02216962:
- mov r1, #0x92
- lsl r1, r1, #4
- strh r1, [r0]
- ldr r1, _02216CA8 ; =0xFFFFFA60
- strh r1, [r0, #2]
- mov r1, #0x2e
- lsl r1, r1, #4
- strh r1, [r0, #4]
- b _022170F2
-_02216974:
- ldr r0, [sp, #0x14]
- mov r1, #0xc
- mul r1, r0
- ldr r2, [sp, #0x18]
- mov r0, #0x48
- mul r0, r2
- ldr r2, _02216CAC ; =0x0222BB44
- add r2, r2, r0
- ldr r3, [r1, r2]
- add r2, sp, #0x20
- strh r3, [r2]
- ldr r3, _02216CB0 ; =0x0222BB48
- add r3, r3, r0
- ldr r3, [r1, r3]
- strh r3, [r2, #2]
- ldr r3, _02216CB4 ; =0x0222BB4C
- add r0, r3, r0
- ldr r1, [r1, r0]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r0, r0, #1
- strh r0, [r2, #4]
- b _022170F2
-_022169A2:
- ldr r0, [sp, #4]
- ldr r0, [r0]
- bl MOD08_02212004
- cmp r0, #1
- bne _022169DE
- ldr r0, [sp, #0x14]
- mov r1, #0xc
- mul r1, r0
- ldr r2, [sp, #0x18]
- mov r0, #0x48
- mul r0, r2
- ldr r2, _02216CAC ; =0x0222BB44
- add r2, r2, r0
- ldr r2, [r1, r2]
- neg r3, r2
- add r2, sp, #0x20
- strh r3, [r2]
- ldr r3, _02216CB0 ; =0x0222BB48
- add r3, r3, r0
- ldr r3, [r1, r3]
- strh r3, [r2, #2]
- ldr r3, _02216CB4 ; =0x0222BB4C
- add r0, r3, r0
- ldr r1, [r1, r0]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r0, r0, #1
- strh r0, [r2, #4]
- b _022170F2
-_022169DE:
- ldr r0, [sp, #4]
- ldr r1, [sp, #4]
- ldr r0, [r0]
- ldr r1, [r1, #0x24]
- bl MOD08_02227470
- add r4, r0, #0
- ldr r0, [sp, #4]
- ldr r1, [sp, #4]
- ldr r0, [r0]
- ldr r1, [r1, #0x28]
- bl MOD08_02227470
- cmp r4, r0
- bne _02216A2A
- ldr r0, [sp, #0x14]
- mov r1, #0xc
- mul r1, r0
- ldr r2, [sp, #0x18]
- mov r0, #0x48
- mul r0, r2
- ldr r2, _02216CAC ; =0x0222BB44
- add r2, r2, r0
- ldr r3, [r1, r2]
- add r2, sp, #0x20
- strh r3, [r2]
- ldr r3, _02216CB0 ; =0x0222BB48
- add r3, r3, r0
- ldr r3, [r1, r3]
- strh r3, [r2, #2]
- ldr r3, _02216CB4 ; =0x0222BB4C
- add r0, r3, r0
- ldr r1, [r1, r0]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r0, r0, #1
- strh r0, [r2, #4]
- b _022170F2
-_02216A2A:
- ldr r0, [sp, #4]
- ldr r1, [sp, #4]
- ldr r0, [r0]
- ldr r1, [r1, #0x24]
- bl MOD08_02227470
- cmp r0, #3
- add r0, sp, #0x20
- bne _02216A4E
- mov r1, #0x3b
- lsl r1, r1, #6
- strh r1, [r0]
- mov r1, #0x21
- lsl r1, r1, #6
- strh r1, [r0, #2]
- ldr r1, _02216CB8 ; =0x000005FC
- strh r1, [r0, #4]
- b _022170F2
-_02216A4E:
- ldr r1, _02216CBC ; =0xFFFFEF7C
- strh r1, [r0]
- ldr r1, _02216CC0 ; =0xFFFFF558
- strh r1, [r0, #2]
- ldr r1, _02216CB8 ; =0x000005FC
- strh r1, [r0, #4]
- b _022170F2
-_02216A5C:
- ldr r0, [sp, #4]
- ldr r0, [r0]
- bl MOD08_02212004
- cmp r0, #1
- bne _02216A98
- ldr r0, [sp, #0x14]
- mov r1, #0xc
- mul r1, r0
- ldr r2, [sp, #0x18]
- mov r0, #0x48
- mul r0, r2
- ldr r2, _02216CAC ; =0x0222BB44
- add r2, r2, r0
- ldr r2, [r1, r2]
- neg r3, r2
- add r2, sp, #0x20
- strh r3, [r2]
- ldr r3, _02216CB0 ; =0x0222BB48
- add r3, r3, r0
- ldr r3, [r1, r3]
- strh r3, [r2, #2]
- ldr r3, _02216CB4 ; =0x0222BB4C
- add r0, r3, r0
- ldr r1, [r1, r0]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r0, r0, #1
- strh r0, [r2, #4]
- b _022170F2
-_02216A98:
- ldr r0, [sp, #4]
- ldr r1, [sp, #4]
- ldr r0, [r0]
- ldr r1, [r1, #0x24]
- bl MOD08_02227470
- add r4, r0, #0
- ldr r0, [sp, #4]
- ldr r1, [sp, #4]
- ldr r0, [r0]
- ldr r1, [r1, #0x28]
- bl MOD08_02227470
- cmp r4, r0
- bne _02216AE4
- ldr r0, [sp, #0x14]
- mov r1, #0xc
- mul r1, r0
- ldr r2, [sp, #0x18]
- mov r0, #0x48
- mul r0, r2
- ldr r2, _02216CAC ; =0x0222BB44
- add r2, r2, r0
- ldr r3, [r1, r2]
- add r2, sp, #0x20
- strh r3, [r2]
- ldr r3, _02216CB0 ; =0x0222BB48
- add r3, r3, r0
- ldr r3, [r1, r3]
- strh r3, [r2, #2]
- ldr r3, _02216CB4 ; =0x0222BB4C
- add r0, r3, r0
- ldr r1, [r1, r0]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r0, r0, #1
- strh r0, [r2, #4]
- b _022170F2
-_02216AE4:
- ldr r0, [sp, #4]
- ldr r1, [sp, #4]
- ldr r0, [r0]
- ldr r1, [r1, #0x24]
- bl MOD08_02227470
- cmp r0, #3
- add r0, sp, #0x20
- bne _02216B08
- mov r1, #0x3b
- lsl r1, r1, #6
- strh r1, [r0]
- mov r1, #0x21
- lsl r1, r1, #6
- strh r1, [r0, #2]
- ldr r1, _02216CB8 ; =0x000005FC
- strh r1, [r0, #4]
- b _022170F2
-_02216B08:
- ldr r1, _02216CBC ; =0xFFFFEF7C
- strh r1, [r0]
- ldr r1, _02216CC0 ; =0xFFFFF558
- strh r1, [r0, #2]
- ldr r1, _02216CB8 ; =0x000005FC
- strh r1, [r0, #4]
- b _022170F2
-_02216B16:
- ldr r0, [sp, #4]
- ldr r0, [r0]
- bl MOD08_02212004
- cmp r0, #1
- bne _02216B50
- ldr r0, [sp, #4]
- ldr r0, [r0, #0x10]
- cmp r0, #2
- add r0, sp, #0x20
- bne _02216B3E
- ldr r1, _02216CC4 ; =0xFFFFF6E0
- strh r1, [r0]
- mov r1, #0x5a
- lsl r1, r1, #4
- strh r1, [r0, #2]
- mov r1, #0x2e
- lsl r1, r1, #4
- strh r1, [r0, #4]
- b _022170F2
-_02216B3E:
- mov r1, #0x92
- lsl r1, r1, #4
- strh r1, [r0]
- ldr r1, _02216CA8 ; =0xFFFFFA60
- strh r1, [r0, #2]
- mov r1, #0x2e
- lsl r1, r1, #4
- strh r1, [r0, #4]
- b _022170F2
-_02216B50:
- ldr r0, [sp, #0x14]
- mov r1, #0xc
- mul r1, r0
- ldr r2, [sp, #0x18]
- mov r0, #0x48
- mul r0, r2
- ldr r2, _02216CC8 ; =0x0222B484
- add r2, r2, r0
- ldr r3, [r1, r2]
- add r2, sp, #0x20
- strh r3, [r2]
- ldr r3, _02216CCC ; =0x0222B488
- add r3, r3, r0
- ldr r3, [r1, r3]
- strh r3, [r2, #2]
- ldr r3, _02216CD0 ; =0x0222B48C
- add r0, r3, r0
- ldr r1, [r1, r0]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r0, r0, #1
- strh r0, [r2, #4]
- b _022170F2
-_02216B7E:
- ldr r0, [sp, #4]
- ldr r0, [r0]
- bl MOD08_02212004
- cmp r0, #1
- bne _02216B9E
- ldr r1, _02216CC4 ; =0xFFFFF6E0
- add r0, sp, #0x20
- strh r1, [r0]
- mov r1, #0x5a
- lsl r1, r1, #4
- strh r1, [r0, #2]
- mov r1, #0x2e
- lsl r1, r1, #4
- strh r1, [r0, #4]
- b _022170F2
-_02216B9E:
- ldr r0, [sp, #0x14]
- mov r1, #0xc
- mul r1, r0
- ldr r2, [sp, #0x18]
- mov r0, #0x48
- mul r0, r2
- ldr r2, _02216CD4 ; =0x0222B634
- add r2, r2, r0
- ldr r3, [r1, r2]
- add r2, sp, #0x20
- strh r3, [r2]
- ldr r3, _02216CCC ; =0x0222B488
- add r3, r3, r0
- ldr r3, [r1, r3]
- strh r3, [r2, #2]
- ldr r3, _02216CD0 ; =0x0222B48C
- add r0, r3, r0
- ldr r1, [r1, r0]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r0, r0, #1
- strh r0, [r2, #4]
- b _022170F2
-_02216BCC:
- ldr r0, [sp, #4]
- ldr r0, [r0]
- bl MOD08_02212004
- cmp r0, #1
- bne _02216BEC
- ldr r1, _02216CD8 ; =0xFFFFF488
- add r0, sp, #0x20
- strh r1, [r0]
- mov r1, #0x5a
- lsl r1, r1, #4
- strh r1, [r0, #2]
- mov r1, #0x2e
- lsl r1, r1, #4
- strh r1, [r0, #4]
- b _022170F2
-_02216BEC:
- ldr r0, [sp, #0x14]
- mov r1, #0xc
- mul r1, r0
- ldr r2, [sp, #0x18]
- mov r0, #0x48
- mul r0, r2
- ldr r2, _02216CDC ; =0x0222B994
- add r2, r2, r0
- ldr r3, [r1, r2]
- add r2, sp, #0x20
- strh r3, [r2]
- ldr r3, _02216CE0 ; =0x0222B998
- add r3, r3, r0
- ldr r3, [r1, r3]
- strh r3, [r2, #2]
- ldr r3, _02216CE4 ; =0x0222B99C
- add r0, r3, r0
- ldr r0, [r1, r0]
- strh r0, [r2, #4]
- b _022170F2
-_02216C14:
- ldr r0, [sp, #4]
- ldr r0, [r0]
- bl MOD08_02212004
- cmp r0, #1
- bne _02216C34
- ldr r1, _02216CC4 ; =0xFFFFF6E0
- add r0, sp, #0x20
- strh r1, [r0]
- mov r1, #0x5a
- lsl r1, r1, #4
- strh r1, [r0, #2]
- mov r1, #0x2e
- lsl r1, r1, #4
- strh r1, [r0, #4]
- b _022170F2
-_02216C34:
- ldr r0, [sp, #0x14]
- mov r1, #0xc
- mul r1, r0
- ldr r2, [sp, #0x18]
- mov r0, #0x48
- mul r0, r2
- ldr r2, _02216CE8 ; =0x0222BCF4
- add r2, r2, r0
- ldr r3, [r1, r2]
- add r2, sp, #0x20
- strh r3, [r2]
- ldr r3, _02216CEC ; =0x0222BCF8
- add r3, r3, r0
- ldr r3, [r1, r3]
- strh r3, [r2, #2]
- ldr r3, _02216CF0 ; =0x0222BCFC
- add r0, r3, r0
- ldr r0, [r1, r0]
- strh r0, [r2, #4]
- b _022170F2
-_02216C5C:
- ldr r0, [sp, #4]
- ldr r0, [r0]
- bl MOD08_02212004
- cmp r0, #1
- bne _02216C7C
- ldr r1, _02216CC4 ; =0xFFFFF6E0
- add r0, sp, #0x20
- strh r1, [r0]
- mov r1, #0x5a
- lsl r1, r1, #4
- strh r1, [r0, #2]
- mov r1, #0x2e
- lsl r1, r1, #4
- strh r1, [r0, #4]
- b _022170F2
-_02216C7C:
- ldr r0, [sp, #0x14]
- mov r1, #0xc
- mul r1, r0
- ldr r2, [sp, #0x18]
- mov r0, #0x48
- mul r0, r2
- ldr r2, _02216CF4 ; =0x0222B7E4
- add r2, r2, r0
- ldr r3, [r1, r2]
- add r2, sp, #0x20
- strh r3, [r2]
- ldr r3, _02216CF8 ; =0x0222B7E8
- add r3, r3, r0
- ldr r3, [r1, r3]
- strh r3, [r2, #2]
- ldr r3, _02216CFC ; =0x0222B7EC
- add r0, r3, r0
- ldr r0, [r1, r0]
- strh r0, [r2, #4]
- b _022170F2
- .align 2, 0
-_02216CA4: .word 0xFFFFF2F8
-_02216CA8: .word 0xFFFFFA60
-_02216CAC: .word 0x0222BB44
-_02216CB0: .word 0x0222BB48
-_02216CB4: .word 0x0222BB4C
-_02216CB8: .word 0x000005FC
-_02216CBC: .word 0xFFFFEF7C
-_02216CC0: .word 0xFFFFF558
-_02216CC4: .word 0xFFFFF6E0
-_02216CC8: .word 0x0222B484
-_02216CCC: .word 0x0222B488
-_02216CD0: .word 0x0222B48C
-_02216CD4: .word 0x0222B634
-_02216CD8: .word 0xFFFFF488
-_02216CDC: .word 0x0222B994
-_02216CE0: .word 0x0222B998
-_02216CE4: .word 0x0222B99C
-_02216CE8: .word 0x0222BCF4
-_02216CEC: .word 0x0222BCF8
-_02216CF0: .word 0x0222BCFC
-_02216CF4: .word 0x0222B7E4
-_02216CF8: .word 0x0222B7E8
-_02216CFC: .word 0x0222B7EC
-_02216D00:
- ldr r0, [sp, #4]
- ldr r0, [r0]
- bl MOD08_02212004
- cmp r0, #1
- bne _02216D20
- ldr r1, _02217044 ; =0xFFFFF6E0
- add r0, sp, #0x20
- strh r1, [r0]
- mov r1, #0x5a
- lsl r1, r1, #4
- strh r1, [r0, #2]
- mov r1, #0x2e
- lsl r1, r1, #4
- strh r1, [r0, #4]
- b _022170F2
-_02216D20:
- ldr r0, [sp, #0x14]
- mov r1, #0xc
- mul r1, r0
- ldr r2, [sp, #0x18]
- mov r0, #0x48
- mul r0, r2
- ldr r2, _02217048 ; =0x0222BEA4
- add r2, r2, r0
- ldr r3, [r1, r2]
- add r2, sp, #0x20
- strh r3, [r2]
- ldr r3, _0221704C ; =0x0222BEA8
- add r3, r3, r0
- ldr r3, [r1, r3]
- strh r3, [r2, #2]
- ldr r3, _02217050 ; =0x0222BEAC
- add r0, r3, r0
- ldr r0, [r1, r0]
- strh r0, [r2, #4]
- b _022170F2
-_02216D48:
- ldr r0, [sp, #4]
- ldr r0, [r0]
- bl MOD08_02212004
- cmp r0, #1
- bne _02216D68
- ldr r1, _02217054 ; =0xFFFFEF10
- add r0, sp, #0x20
- strh r1, [r0]
- mov r1, #0x5a
- lsl r1, r1, #4
- strh r1, [r0, #2]
- mov r1, #0x2e
- lsl r1, r1, #4
- strh r1, [r0, #4]
- b _022170F2
-_02216D68:
- ldr r0, [sp, #0x14]
- mov r1, #0xc
- mul r1, r0
- ldr r2, [sp, #0x18]
- mov r0, #0x48
- mul r0, r2
- ldr r2, _02217058 ; =0x0222C054
- add r2, r2, r0
- ldr r3, [r1, r2]
- add r2, sp, #0x20
- strh r3, [r2]
- ldr r3, _0221705C ; =0x0222C058
- add r3, r3, r0
- ldr r3, [r1, r3]
- strh r3, [r2, #2]
- ldr r3, _02217060 ; =0x0222C05C
- add r0, r3, r0
- ldr r0, [r1, r0]
- strh r0, [r2, #4]
- b _022170F2
-_02216D90:
- ldr r4, _02217064 ; =0x0222B414
- add r3, sp, #0xd8
- mov r2, #0xe
-_02216D96:
- ldmia r4!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _02216D96
- ldr r3, _02217068 ; =0x0222B334
- add r2, sp, #0x58
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- add r1, sp, #0xc8
- mov r0, #0
- str r1, [sp, #0xc]
- add r1, sp, #0xb8
- mov ip, r0
- str r1, [sp, #0x1c]
- add r0, sp, #0xd8
- add r7, sp, #0xa8
- add r6, sp, #0x98
- add r5, sp, #0x88
- add r1, sp, #0x78
- add r2, sp, #0x68
-_02216DC2:
- ldr r4, [r0]
- ldr r3, [sp, #0xc]
- str r4, [r3]
- ldr r4, [r0, #0x10]
- ldr r3, [sp, #0x1c]
- str r4, [r3]
- ldr r3, [r0, #0x20]
- stmia r7!, {r3}
- ldr r3, [r0, #0x30]
- stmia r6!, {r3}
- ldr r3, [r0, #0x40]
- stmia r5!, {r3}
- ldr r3, [r0, #0x50]
- stmia r1!, {r3}
- ldr r3, [r0, #0x60]
- add r0, r0, #4
- stmia r2!, {r3}
- ldr r3, [sp, #0xc]
- add r3, r3, #4
- str r3, [sp, #0xc]
- ldr r3, [sp, #0x1c]
- add r3, r3, #4
- str r3, [sp, #0x1c]
- mov r3, ip
- add r3, r3, #1
- mov ip, r3
- cmp r3, #4
- blt _02216DC2
- ldr r0, [sp, #4]
- ldr r0, [r0]
- bl MOD08_02212004
- cmp r0, #1
- bne _02216E3E
- mov r0, #0
- str r0, [sp, #8]
- add r0, sp, #0x58
- str r0, [sp, #0x10]
- add r7, sp, #0xc8
- add r6, sp, #0xb8
- add r0, sp, #0xa8
- add r1, sp, #0x98
- add r2, sp, #0x88
- add r3, sp, #0x78
- add r4, sp, #0x68
-_02216E1C:
- ldr r5, [sp, #0x10]
- ldr r5, [r5]
- stmia r7!, {r5}
- stmia r6!, {r5}
- stmia r0!, {r5}
- stmia r1!, {r5}
- stmia r2!, {r5}
- stmia r3!, {r5}
- stmia r4!, {r5}
- ldr r5, [sp, #0x10]
- add r5, r5, #4
- str r5, [sp, #0x10]
- ldr r5, [sp, #8]
- add r5, r5, #1
- str r5, [sp, #8]
- cmp r5, #4
- blt _02216E1C
-_02216E3E:
- ldr r0, [sp, #0x18]
- cmp r0, #5
- bhi _02216E5C
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02216E50: ; jump table
- .short _02216E5C - _02216E50 - 2 ; case 0
- .short _02216E6C - _02216E50 - 2 ; case 1
- .short _02216E98 - _02216E50 - 2 ; case 2
- .short _02216ED0 - _02216E50 - 2 ; case 3
- .short _02216F5E - _02216E50 - 2 ; case 4
- .short _02216F96 - _02216E50 - 2 ; case 5
-_02216E5C:
- ldr r1, [sp, #0xc8]
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0xcc]
- strh r1, [r0, #2]
- ldr r1, [sp, #0xd0]
- strh r1, [r0, #4]
- b _022170F2
-_02216E6C:
- ldr r0, [sp, #0xd4]
- cmp r0, #1
- bne _02216E82
- ldr r1, [sp, #0xc8]
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0xcc]
- strh r1, [r0, #2]
- ldr r1, [sp, #0xd0]
- strh r1, [r0, #4]
- b _022170F2
-_02216E82:
- ldr r0, [sp, #0xc8]
- neg r1, r0
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0xcc]
- neg r1, r1
- strh r1, [r0, #2]
- ldr r1, [sp, #0xd0]
- neg r1, r1
- strh r1, [r0, #4]
- b _022170F2
-_02216E98:
- ldr r0, [sp, #0x14]
- cmp r0, #3
- bne _02216EAE
- ldr r1, [sp, #0xb8]
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0xbc]
- strh r1, [r0, #2]
- ldr r1, [sp, #0xc0]
- strh r1, [r0, #4]
- b _022170F2
-_02216EAE:
- cmp r0, #5
- add r0, sp, #0x20
- bne _02216EC2
- ldr r1, [sp, #0x98]
- strh r1, [r0]
- ldr r1, [sp, #0x9c]
- strh r1, [r0, #2]
- ldr r1, [sp, #0xa0]
- strh r1, [r0, #4]
- b _022170F2
-_02216EC2:
- ldr r1, [sp, #0xa8]
- strh r1, [r0]
- ldr r1, [sp, #0xac]
- strh r1, [r0, #2]
- ldr r1, [sp, #0xb0]
- strh r1, [r0, #4]
- b _022170F2
-_02216ED0:
- ldr r0, [sp, #0x14]
- cmp r0, #2
- bne _02216F02
- ldr r0, [sp, #0xc4]
- cmp r0, #1
- bne _02216EEC
- ldr r1, [sp, #0xb8]
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0xbc]
- strh r1, [r0, #2]
- ldr r1, [sp, #0xc0]
- strh r1, [r0, #4]
- b _022170F2
-_02216EEC:
- ldr r0, [sp, #0xb8]
- neg r1, r0
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0xbc]
- neg r1, r1
- strh r1, [r0, #2]
- ldr r1, [sp, #0xc0]
- neg r1, r1
- strh r1, [r0, #4]
- b _022170F2
-_02216F02:
- cmp r0, #5
- bne _02216F32
- ldr r0, [sp, #0xb4]
- cmp r0, #1
- bne _02216F22
- ldr r0, [sp, #0x88]
- neg r1, r0
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0x8c]
- neg r1, r1
- strh r1, [r0, #2]
- ldr r1, [sp, #0x90]
- neg r1, r1
- strh r1, [r0, #4]
- b _022170F2
-_02216F22:
- ldr r1, [sp, #0x88]
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0x8c]
- strh r1, [r0, #2]
- ldr r1, [sp, #0x90]
- strh r1, [r0, #4]
- b _022170F2
-_02216F32:
- ldr r0, [sp, #0x84]
- cmp r0, #1
- bne _02216F48
- ldr r1, [sp, #0x78]
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0x7c]
- strh r1, [r0, #2]
- ldr r1, [sp, #0x80]
- strh r1, [r0, #4]
- b _022170F2
-_02216F48:
- ldr r0, [sp, #0x78]
- neg r1, r0
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0x7c]
- neg r1, r1
- strh r1, [r0, #2]
- ldr r1, [sp, #0x80]
- neg r1, r1
- strh r1, [r0, #4]
- b _022170F2
-_02216F5E:
- ldr r0, [sp, #0x14]
- cmp r0, #3
- bne _02216F74
- ldr r1, [sp, #0x78]
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0x7c]
- strh r1, [r0, #2]
- ldr r1, [sp, #0x80]
- strh r1, [r0, #4]
- b _022170F2
-_02216F74:
- cmp r0, #5
- add r0, sp, #0x20
- bne _02216F88
- ldr r1, [sp, #0x68]
- strh r1, [r0]
- ldr r1, [sp, #0x6c]
- strh r1, [r0, #2]
- ldr r1, [sp, #0x70]
- strh r1, [r0, #4]
- b _022170F2
-_02216F88:
- ldr r1, [sp, #0x88]
- strh r1, [r0]
- ldr r1, [sp, #0x8c]
- strh r1, [r0, #2]
- ldr r1, [sp, #0x90]
- strh r1, [r0, #4]
- b _022170F2
-_02216F96:
- ldr r0, [sp, #0x14]
- cmp r0, #3
- bne _02216FC8
- ldr r0, [sp, #0xc4]
- cmp r0, #1
- bne _02216FB2
- ldr r1, [sp, #0x88]
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0x8c]
- strh r1, [r0, #2]
- ldr r1, [sp, #0x90]
- strh r1, [r0, #4]
- b _022170F2
-_02216FB2:
- ldr r0, [sp, #0x88]
- neg r1, r0
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0x8c]
- neg r1, r1
- strh r1, [r0, #2]
- ldr r1, [sp, #0x90]
- neg r1, r1
- strh r1, [r0, #4]
- b _022170F2
-_02216FC8:
- cmp r0, #2
- bne _02216FF8
- ldr r0, [sp, #0xc4]
- cmp r0, #1
- bne _02216FE2
- ldr r1, [sp, #0x98]
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0x9c]
- strh r1, [r0, #2]
- ldr r1, [sp, #0xa0]
- strh r1, [r0, #4]
- b _022170F2
-_02216FE2:
- ldr r0, [sp, #0x98]
- neg r1, r0
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0x9c]
- neg r1, r1
- strh r1, [r0, #2]
- ldr r1, [sp, #0xa0]
- neg r1, r1
- strh r1, [r0, #4]
- b _022170F2
-_02216FF8:
- ldr r0, [sp, #0xc4]
- cmp r0, #1
- bne _0221700E
- ldr r1, [sp, #0x68]
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0x6c]
- strh r1, [r0, #2]
- ldr r1, [sp, #0x70]
- strh r1, [r0, #4]
- b _022170F2
-_0221700E:
- ldr r0, [sp, #0x68]
- neg r1, r0
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, [sp, #0x6c]
- neg r1, r1
- strh r1, [r0, #2]
- ldr r1, [sp, #0x70]
- neg r1, r1
- strh r1, [r0, #4]
- b _022170F2
-_02217024:
- ldr r1, _0221706C ; =0xFFFFFCE0
- add r0, sp, #0x20
- strh r1, [r0]
- mov r1, #0x4b
- lsl r1, r1, #4
- strh r1, [r0, #2]
- mov r1, #0x7d
- lsl r1, r1, #2
- strh r1, [r0, #4]
- b _022170F2
-_02217038:
- ldr r1, _02217070 ; =0xFFFFF2AE
- add r0, sp, #0x20
- strh r1, [r0]
- ldr r1, _02217074 ; =0xFFFFF5AC
- b _02217078
- nop
-_02217044: .word 0xFFFFF6E0
-_02217048: .word 0x0222BEA4
-_0221704C: .word 0x0222BEA8
-_02217050: .word 0x0222BEAC
-_02217054: .word 0xFFFFEF10
-_02217058: .word 0x0222C054
-_0221705C: .word 0x0222C058
-_02217060: .word 0x0222C05C
-_02217064: .word 0x0222B414
-_02217068: .word 0x0222B334
-_0221706C: .word 0xFFFFFCE0
-_02217070: .word 0xFFFFF2AE
-_02217074: .word 0xFFFFF5AC
-_02217078:
- strh r1, [r0, #2]
- mov r1, #0
- strh r1, [r0, #4]
- b _022170F2
-_02217080:
- ldr r1, _02217114 ; =0xFFFFF290
- add r0, sp, #0x20
- strh r1, [r0]
- mov r1, #0x7a
- lsl r1, r1, #4
- strh r1, [r0, #2]
- mov r1, #0
- strh r1, [r0, #4]
- b _022170F2
-_02217092:
- ldr r0, [sp, #4]
- ldr r1, [sp, #4]
- ldr r0, [r0]
- ldr r1, [r1, #0x24]
- bl MOD08_02227470
- cmp r0, #3
- add r0, sp, #0x20
- bne _022170B6
- mov r1, #0x3b
- lsl r1, r1, #6
- strh r1, [r0]
- mov r1, #0x21
- lsl r1, r1, #6
- strh r1, [r0, #2]
- mov r1, #0
- strh r1, [r0, #4]
- b _022170F2
-_022170B6:
- ldr r1, _02217118 ; =0xFFFFE890
- strh r1, [r0]
- ldr r1, _0221711C ; =0xFFFFF768
- strh r1, [r0, #2]
- mov r1, #0
- strh r1, [r0, #4]
- b _022170F2
-_022170C4:
- ldr r4, _02217120 ; =0x0222B374
- add r3, sp, #0x28
- mov r2, #6
-_022170CA:
- ldmia r4!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _022170CA
- ldr r0, [sp, #4]
- ldr r1, [sp, #4]
- ldr r0, [r0]
- ldr r1, [r1, #0x24]
- bl MOD08_02227468
- lsl r2, r0, #3
- add r0, sp, #0x28
- ldr r1, [r0, r2]
- add r0, sp, #0x20
- strh r1, [r0]
- add r1, sp, #0x2c
- ldr r1, [r1, r2]
- strh r1, [r0, #2]
- mov r1, #0
- strh r1, [r0, #4]
-_022170F2:
- add r1, sp, #0x20
- ldr r0, [sp]
- ldrh r2, [r1]
- add r0, #0x50
- strh r2, [r0]
- ldr r0, [sp]
- ldrh r2, [r1, #2]
- add r0, #0x52
- strh r2, [r0]
- ldr r0, [sp]
- ldrh r1, [r1, #4]
- add r0, #0x54
- str r0, [sp]
- strh r1, [r0]
- add sp, #0x148
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02217114: .word 0xFFFFF290
-_02217118: .word 0xFFFFE890
-_0221711C: .word 0xFFFFF768
-_02217120: .word 0x0222B374
-
- thumb_func_start MOD08_02217124
-MOD08_02217124: ; 0x02217124
- push {r3, r4, r5, r6, r7, lr}
- add r7, r0, #0
- add r5, r1, #0
- bl MOD08_022178CC
- add r6, r0, #0
- mov r4, #0
- cmp r6, #0
- ble _02217154
-_02217136:
- add r0, r4, #0
- bl MOD08_022178A4
- ldr r1, [r5, #0x1c]
- and r1, r0
- cmp r0, r1
- bne _0221714E
- add r0, r4, #0
- add r1, r7, #0
- add r2, r5, #0
- bl MOD08_0221788C
-_0221714E:
- add r4, r4, #1
- cmp r4, r6
- blt _02217136
-_02217154:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02217158
-MOD08_02217158: ; 0x02217158
- add r3, r0, #0
- add r2, r1, #0
- add r1, r3, #0
- ldr r3, _02217164 ; =MOD08_02217B04
- ldr r0, [r2, #0x20]
- bx r3
- .align 2, 0
-_02217164: .word MOD08_02217B04
-
- thumb_func_start MOD08_02217168
-MOD08_02217168: ; 0x02217168
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r6, r0, #0
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- bl MOD08_02227468
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- bl MOD08_02227468
- ldr r1, [r4, #0xc]
- cmp r1, #3
- bhi _022171B0
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02217190: ; jump table
- .short _022171B0 - _02217190 - 2 ; case 0
- .short _02217198 - _02217190 - 2 ; case 1
- .short _022171A6 - _02217190 - 2 ; case 2
- .short _022171B0 - _02217190 - 2 ; case 3
-_02217198:
- cmp r0, #0
- bne _022171A2
- mov r5, #1
- lsl r5, r5, #8
- b _022171B0
-_022171A2:
- ldr r5, _022171C4 ; =0xFFFFEC00
- b _022171B0
-_022171A6:
- cmp r0, #0
- bne _022171AE
- mov r5, #0
- b _022171B0
-_022171AE:
- ldr r5, _022171C8 ; =0xFFFFEB00
-_022171B0:
- ldr r0, [r4, #4]
- bl FUN_02013448
- ldr r0, [r6, #0x20]
- ldr r0, [r0]
- ldr r0, [r0, #0xc]
- add r0, r5, r0
- str r0, [r6, #0x30]
- pop {r4, r5, r6, pc}
- nop
-_022171C4: .word 0xFFFFEC00
-_022171C8: .word 0xFFFFEB00
-
- thumb_func_start MOD08_022171CC
-MOD08_022171CC: ; 0x022171CC
- push {r4, r5, r6, lr}
- add r6, r0, #0
- bl FUN_0201341C
- add r5, r0, #0
- bl MOD08_02212014
- mov r1, #0x38
- bl AllocFromHeap
- add r4, r0, #0
- str r5, [r4]
- add r0, r5, #0
- bl MOD08_02212468
- str r0, [r4, #4]
- add r1, r4, #0
- ldr r0, [r4]
- add r1, #0xc
- mov r2, #6
- bl MOD08_02215434
- ldr r0, [r4, #0x10]
- cmp r0, #4
- bhi _02217214
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221720A: ; jump table
- .short _02217214 - _0221720A - 2 ; case 0
- .short _02217226 - _0221720A - 2 ; case 1
- .short _02217238 - _0221720A - 2 ; case 2
- .short _0221724A - _0221720A - 2 ; case 3
- .short _0221725C - _0221720A - 2 ; case 4
-_02217214:
- ldr r0, [r4]
- bl MOD08_02212458
- str r0, [r4, #0x24]
- ldr r0, [r4]
- bl MOD08_02212460
- str r0, [r4, #0x28]
- b _0221726C
-_02217226:
- ldr r0, [r4]
- bl MOD08_02212460
- str r0, [r4, #0x24]
- ldr r0, [r4]
- bl MOD08_02212458
- str r0, [r4, #0x28]
- b _0221726C
-_02217238:
- ldr r0, [r4]
- bl MOD08_02212458
- str r0, [r4, #0x24]
- ldr r0, [r4]
- bl MOD08_02212460
- str r0, [r4, #0x28]
- b _0221726C
-_0221724A:
- ldr r0, [r4]
- bl MOD08_02212460
- str r0, [r4, #0x24]
- ldr r0, [r4]
- bl MOD08_02212458
- str r0, [r4, #0x28]
- b _0221726C
-_0221725C:
- ldr r0, [r4]
- bl MOD08_02212458
- str r0, [r4, #0x24]
- ldr r0, [r4]
- bl MOD08_02212460
- str r0, [r4, #0x28]
-_0221726C:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD08_022164C8
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_0221727C
-MOD08_0221727C: ; 0x0221727C
- push {r4, r5, r6, lr}
- add r6, r0, #0
- ldr r0, [r6]
- ldr r1, [r6, #0x24]
- mov r4, #1
- bl MOD08_02227468
- add r5, r0, #0
- ldr r0, [r6]
- ldr r1, [r6, #0x28]
- bl MOD08_02227468
- cmp r5, #5
- bhi _022172BA
- add r0, r5, r5
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_022172A4: ; jump table
- .short _022172BA - _022172A4 - 2 ; case 0
- .short _022172B0 - _022172A4 - 2 ; case 1
- .short _022172BA - _022172A4 - 2 ; case 2
- .short _022172B4 - _022172A4 - 2 ; case 3
- .short _022172BA - _022172A4 - 2 ; case 4
- .short _022172B8 - _022172A4 - 2 ; case 5
-_022172B0:
- sub r4, r4, #2
- b _022172BA
-_022172B4:
- sub r4, r4, #2
- b _022172BA
-_022172B8:
- sub r4, r4, #2
-_022172BA:
- add r0, r4, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022172C0
-MOD08_022172C0: ; 0x022172C0
- push {r4, r5, r6, r7, lr}
- sub sp, #0x2c
- add r5, r0, #0
- add r0, sp, #0x20
- mov r4, #0
- str r4, [r0]
- str r4, [r0, #4]
- add r6, r1, #0
- add r7, r2, #0
- str r4, [r0, #8]
-_022172D4:
- ldr r0, [r5]
- add r1, r6, #0
- bl MOD08_02227468
- cmp r4, r0
- ldr r0, [r5]
- bne _022172EC
- add r1, sp, #0x10
- mov r2, #4
- bl MOD08_02215434
- b _022172F4
-_022172EC:
- add r1, sp, #0
- mov r2, #4
- bl MOD08_02215434
-_022172F4:
- add r4, r4, #1
- cmp r4, #6
- blt _022172D4
- add r0, r5, #0
- bl MOD08_0221727C
- strb r0, [r5, #8]
- ldr r0, [sp, #0x14]
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x18]
- str r0, [sp, #0x24]
- ldr r0, [sp, #0x1c]
- str r0, [sp, #0x28]
- ldr r0, [sp, #0x10]
- cmp r0, #1
- bne _02217318
- mov r0, #1
- strb r0, [r5, #8]
-_02217318:
- mov r1, #8
- ldrsb r0, [r5, r1]
- ldr r2, [sp, #0x20]
- ldr r3, [sp, #0x24]
- mul r0, r2
- str r0, [sp, #0x20]
- ldrsb r2, [r5, r1]
- mul r2, r3
- str r2, [sp, #0x24]
- ldrsb r1, [r5, r1]
- ldr r2, [sp, #0x28]
- mul r1, r2
- str r1, [sp, #0x28]
- ldr r1, [r7]
- add r0, r1, r0
- str r0, [r7]
- ldr r1, [r7, #4]
- ldr r0, [sp, #0x24]
- add r0, r1, r0
- str r0, [r7, #4]
- ldr r1, [r7, #8]
- ldr r0, [sp, #0x28]
- add r0, r1, r0
- str r0, [r7, #8]
- add sp, #0x2c
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_0221734C
-MOD08_0221734C: ; 0x0221734C
- push {r4, r5, lr}
- sub sp, #0x1c
- add r5, r0, #0
- add r4, r1, #0
- add r1, sp, #0
- mov r0, #0
- str r0, [r1]
- str r0, [r1, #4]
- str r0, [r1, #8]
- ldr r0, [r5]
- add r1, sp, #0xc
- mov r2, #4
- bl MOD08_02215434
- add r0, r5, #0
- bl MOD08_0221727C
- strb r0, [r5, #8]
- ldr r0, [sp, #0x10]
- str r0, [sp]
- ldr r0, [sp, #0x14]
- str r0, [sp, #4]
- ldr r0, [sp, #0x18]
- str r0, [sp, #8]
- ldr r0, [sp, #0xc]
- cmp r0, #1
- bne _02217386
- mov r0, #1
- strb r0, [r5, #8]
-_02217386:
- mov r1, #8
- ldrsb r0, [r5, r1]
- ldr r2, [sp]
- ldr r3, [sp, #4]
- mul r0, r2
- str r0, [sp]
- ldrsb r2, [r5, r1]
- mul r2, r3
- str r2, [sp, #4]
- ldrsb r1, [r5, r1]
- ldr r2, [sp, #8]
- mul r1, r2
- str r1, [sp, #8]
- ldr r1, [r4]
- add r0, r1, r0
- str r0, [r4]
- ldr r1, [r4, #4]
- ldr r0, [sp, #4]
- add r0, r1, r0
- str r0, [r4, #4]
- ldr r1, [r4, #8]
- ldr r0, [sp, #8]
- add r0, r1, r0
- str r0, [r4, #8]
- add sp, #0x1c
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022173BC
-MOD08_022173BC: ; 0x022173BC
- ldr r3, _022173C4 ; =MOD08_02215434
- ldr r0, [r0]
- mov r2, #5
- bx r3
- .align 2, 0
-_022173C4: .word MOD08_02215434
-
- thumb_func_start MOD08_022173C8
-MOD08_022173C8: ; 0x022173C8
- mov r0, #1
- bx lr
-
- thumb_func_start MOD08_022173CC
-MOD08_022173CC: ; 0x022173CC
- push {r4, r5, lr}
- sub sp, #0x1c
- add r5, r0, #0
- add r4, r1, #0
- add r1, sp, #0
- mov r0, #0
- strh r0, [r1]
- strh r0, [r1, #2]
- strh r0, [r1, #4]
- add r0, r4, #0
- add r1, sp, #8
- bl MOD08_022173BC
- add r0, r4, #0
- bl MOD08_0221727C
- strb r0, [r4, #8]
- ldr r0, [sp, #0xc]
- cmp r0, #1
- bne _022173F8
- mov r0, #1
- strb r0, [r4, #8]
-_022173F8:
- ldr r0, [sp, #8]
- cmp r0, #3
- bgt _02217416
- cmp r0, #0
- blt _02217482
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0221740E: ; jump table
- .short _0221741A - _0221740E - 2 ; case 0
- .short _02217446 - _0221740E - 2 ; case 1
- .short _02217482 - _0221740E - 2 ; case 2
- .short _02217482 - _0221740E - 2 ; case 3
-_02217416:
- cmp r0, #0xff
- b _02217482
-_0221741A:
- add r0, r5, #0
- add r1, sp, #0
- bl FUN_02013514
- add r2, sp, #0
- mov r0, #0
- mov r1, #8
- ldrsh r3, [r2, r0]
- ldrsb r0, [r4, r1]
- mul r0, r3
- strh r0, [r2]
- mov r0, #2
- ldrsh r3, [r2, r0]
- ldrsb r0, [r4, r1]
- mul r0, r3
- strh r0, [r2, #2]
- mov r0, #4
- ldrsh r3, [r2, r0]
- ldrsb r0, [r4, r1]
- mul r0, r3
- strh r0, [r2, #4]
- b _02217482
-_02217446:
- ldr r0, [sp, #0x10]
- add r2, sp, #0
- strh r0, [r2]
- ldr r0, [sp, #0x14]
- mov r1, #8
- strh r0, [r2, #2]
- ldr r0, [sp, #0x18]
- strh r0, [r2, #4]
- mov r0, #0
- ldrsh r3, [r2, r0]
- ldrsb r0, [r4, r1]
- mul r0, r3
- strh r0, [r2]
- mov r0, #2
- ldrsh r3, [r2, r0]
- ldrsb r0, [r4, r1]
- mul r0, r3
- strh r0, [r2, #2]
- mov r0, #4
- ldrsh r3, [r2, r0]
- ldrsb r0, [r4, r1]
- add r1, sp, #0
- mul r0, r3
- strh r0, [r2, #4]
- add r0, r5, #0
- bl FUN_02013514
- add sp, #0x1c
- mov r0, #1
- pop {r4, r5, pc}
-_02217482:
- add r1, sp, #0
- mov r0, #0
- ldrsh r2, [r1, r0]
- ldr r0, [r4, #0x2c]
- sub r0, r2, r0
- strh r0, [r1]
- mov r0, #2
- ldrsh r2, [r1, r0]
- ldr r0, [r4, #0x30]
- sub r0, r2, r0
- strh r0, [r1, #2]
- mov r0, #4
- ldrsh r2, [r1, r0]
- ldr r0, [r4, #0x34]
- sub r0, r2, r0
- strh r0, [r1, #4]
- add r0, r5, #0
- add r1, sp, #0
- bl FUN_02013514
- mov r0, #1
- add sp, #0x1c
- pop {r4, r5, pc}
-
- thumb_func_start MOD08_022174B0
-MOD08_022174B0: ; 0x022174B0
- mov r0, #1
- bx lr
-
- thumb_func_start MOD08_022174B4
-MOD08_022174B4: ; 0x022174B4
- mov r0, #1
- bx lr
-
- thumb_func_start MOD08_022174B8
-MOD08_022174B8: ; 0x022174B8
- push {r4, r5, r6, lr}
- sub sp, #0x20
- add r5, r0, #0
- add r4, r1, #0
- add r1, sp, #0
- mov r0, #0
- str r0, [r1]
- str r0, [r1, #4]
- str r0, [r1, #8]
- add r0, r4, #0
- add r1, sp, #0xc
- bl MOD08_022173BC
- add r0, r4, #0
- bl MOD08_0221727C
- strb r0, [r4, #8]
- ldr r0, [sp, #0x10]
- cmp r0, #1
- bne _022174E4
- mov r0, #1
- strb r0, [r4, #8]
-_022174E4:
- ldr r0, [sp, #0xc]
- cmp r0, #3
- bgt _02217502
- cmp r0, #0
- blt _02217562
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_022174FA: ; jump table
- .short _02217506 - _022174FA - 2 ; case 0
- .short _0221752A - _022174FA - 2 ; case 1
- .short _0221754C - _022174FA - 2 ; case 2
- .short _02217558 - _022174FA - 2 ; case 3
-_02217502:
- cmp r0, #0xff
- b _02217562
-_02217506:
- add r0, r5, #0
- add r1, sp, #0
- bl FUN_02013548
- mov r0, #8
- ldrsb r1, [r4, r0]
- ldr r2, [sp]
- mul r1, r2
- str r1, [sp]
- ldrsb r1, [r4, r0]
- ldr r2, [sp, #4]
- mul r1, r2
- str r1, [sp, #4]
- ldrsb r0, [r4, r0]
- ldr r1, [sp, #8]
- mul r0, r1
- str r0, [sp, #8]
- b _02217562
-_0221752A:
- ldr r2, [sp, #0x14]
- ldr r1, [sp, #0x18]
- ldr r0, [sp, #0x1c]
- str r2, [sp]
- str r1, [sp, #4]
- str r0, [sp, #8]
- mov r3, #8
- ldrsb r6, [r4, r3]
- mul r6, r2
- str r6, [sp]
- ldrsb r2, [r4, r3]
- mul r2, r1
- str r2, [sp, #4]
- ldrsb r1, [r4, r3]
- mul r1, r0
- str r1, [sp, #8]
- b _02217562
-_0221754C:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- add r2, sp, #0
- bl MOD08_0222771C
- b _02217562
-_02217558:
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- add r2, sp, #0
- bl MOD08_0222771C
-_02217562:
- ldr r1, [sp]
- ldr r0, [r4, #0x2c]
- sub r0, r1, r0
- str r0, [sp]
- ldr r1, [sp, #4]
- ldr r0, [r4, #0x30]
- sub r0, r1, r0
- str r0, [sp, #4]
- add r0, r5, #0
- add r1, sp, #0
- bl FUN_02013530
- mov r0, #1
- add sp, #0x20
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_02217580
-MOD08_02217580: ; 0x02217580
- push {r3, r4, r5, lr}
- sub sp, #0x18
- add r5, r0, #0
- add r4, r1, #0
- mov r1, #0
- add r0, sp, #0
- strh r1, [r0]
- add r0, r4, #0
- add r1, sp, #4
- bl MOD08_022173BC
- add r0, r4, #0
- bl MOD08_0221727C
- strb r0, [r4, #8]
- ldr r0, [sp, #8]
- cmp r0, #1
- bne _022175A8
- mov r0, #1
- strb r0, [r4, #8]
-_022175A8:
- ldr r0, [sp, #4]
- cmp r0, #3
- bgt _022175C6
- cmp r0, #0
- blt _022175F4
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_022175BE: ; jump table
- .short _022175CA - _022175BE - 2 ; case 0
- .short _022175E2 - _022175BE - 2 ; case 1
- .short _022175F4 - _022175BE - 2 ; case 2
- .short _022175F4 - _022175BE - 2 ; case 3
-_022175C6:
- cmp r0, #0xff
- b _022175F4
-_022175CA:
- add r0, r5, #0
- add r1, sp, #0
- bl FUN_02013594
- add r1, sp, #0
- mov r0, #0
- ldrsh r2, [r1, r0]
- mov r0, #8
- ldrsb r0, [r4, r0]
- mul r0, r2
- strh r0, [r1]
- b _022175F4
-_022175E2:
- ldr r0, [sp, #0xc]
- add r1, sp, #0
- strh r0, [r1]
- mov r0, #0
- ldrsh r2, [r1, r0]
- mov r0, #8
- ldrsb r0, [r4, r0]
- mul r0, r2
- strh r0, [r1]
-_022175F4:
- add r0, r5, #0
- add r1, sp, #0
- bl FUN_0201357C
- mov r0, #1
- add sp, #0x18
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02217604
-MOD08_02217604: ; 0x02217604
- push {r3, r4, r5, lr}
- sub sp, #0x18
- add r5, r0, #0
- add r4, r1, #0
- mov r1, #0
- add r0, sp, #0
- strh r1, [r0]
- add r0, r4, #0
- add r1, sp, #4
- bl MOD08_022173BC
- add r0, r4, #0
- bl MOD08_0221727C
- strb r0, [r4, #8]
- ldr r0, [sp, #8]
- cmp r0, #1
- bne _0221762C
- mov r0, #1
- strb r0, [r4, #8]
-_0221762C:
- ldr r0, [sp, #4]
- cmp r0, #3
- bgt _0221764A
- cmp r0, #0
- blt _02217674
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02217642: ; jump table
- .short _0221764E - _02217642 - 2 ; case 0
- .short _02217664 - _02217642 - 2 ; case 1
- .short _02217674 - _02217642 - 2 ; case 2
- .short _02217674 - _02217642 - 2 ; case 3
-_0221764A:
- cmp r0, #0xff
- b _02217674
-_0221764E:
- add r0, r5, #0
- add r1, sp, #0
- bl FUN_020135C4
- add r1, sp, #0
- mov r0, #8
- ldrh r2, [r1]
- ldrsb r0, [r4, r0]
- mul r0, r2
- strh r0, [r1]
- b _02217674
-_02217664:
- ldr r0, [sp, #0xc]
- add r1, sp, #0
- strh r0, [r1]
- mov r0, #8
- ldrh r2, [r1]
- ldrsb r0, [r4, r0]
- mul r0, r2
- strh r0, [r1]
-_02217674:
- add r0, r5, #0
- add r1, sp, #0
- bl FUN_020135B0
- mov r0, #1
- add sp, #0x18
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02217684
-MOD08_02217684: ; 0x02217684
- push {r3, r4, r5, lr}
- sub sp, #0x18
- add r5, r0, #0
- add r4, r1, #0
- mov r1, #0
- add r0, sp, #0
- strh r1, [r0]
- add r0, r4, #0
- add r1, sp, #4
- bl MOD08_022173BC
- add r0, r4, #0
- bl MOD08_0221727C
- strb r0, [r4, #8]
- ldr r0, [sp, #8]
- cmp r0, #1
- bne _022176AC
- mov r0, #1
- strb r0, [r4, #8]
-_022176AC:
- ldr r1, [sp, #4]
- cmp r1, #3
- bgt _022176CA
- cmp r1, #0
- blt _022176DE
- add r0, r1, r1
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_022176C2: ; jump table
- .short _022176CE - _022176C2 - 2 ; case 0
- .short _022176D8 - _022176C2 - 2 ; case 1
- .short _022176DE - _022176C2 - 2 ; case 2
- .short _022176DE - _022176C2 - 2 ; case 3
-_022176CA:
- cmp r1, #0xff
- b _022176DE
-_022176CE:
- add r0, r5, #0
- add r1, sp, #0
- bl FUN_020135F4
- b _022176DE
-_022176D8:
- ldr r1, [sp, #0xc]
- add r0, sp, #0
- strh r1, [r0]
-_022176DE:
- add r0, r5, #0
- add r1, sp, #0
- bl FUN_020135E0
- mov r0, #1
- add sp, #0x18
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_022176EC
-MOD08_022176EC: ; 0x022176EC
- mov r0, #1
- bx lr
-
- thumb_func_start MOD08_022176F0
-MOD08_022176F0: ; 0x022176F0
- mov r0, #1
- bx lr
-
- thumb_func_start MOD08_022176F4
-MOD08_022176F4: ; 0x022176F4
- mov r0, #1
- bx lr
-
- thumb_func_start MOD08_022176F8
-MOD08_022176F8: ; 0x022176F8
- mov r0, #1
- bx lr
-
- thumb_func_start MOD08_022176FC
-MOD08_022176FC: ; 0x022176FC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x20
- add r7, r0, #0
- add r4, r1, #0
- add r1, sp, #0
- mov r0, #0
- str r0, [r1]
- str r0, [r1, #4]
- str r0, [r1, #8]
- add r0, r4, #0
- add r1, sp, #0xc
- bl MOD08_022173BC
- add r0, r4, #0
- bl MOD08_0221727C
- strb r0, [r4, #8]
- ldr r0, [sp, #0x10]
- cmp r0, #1
- bne _02217728
- mov r0, #1
- strb r0, [r4, #8]
-_02217728:
- ldr r0, [sp, #0xc]
- cmp r0, #4
- bgt _02217748
- cmp r0, #0
- blt _022177E2
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0221773E: ; jump table
- .short _0221774C - _0221773E - 2 ; case 0
- .short _02217770 - _0221773E - 2 ; case 1
- .short _022177CC - _0221773E - 2 ; case 2
- .short _022177D8 - _0221773E - 2 ; case 3
- .short _02217792 - _0221773E - 2 ; case 4
-_02217748:
- cmp r0, #0xff
- b _022177E2
-_0221774C:
- add r0, r7, #0
- add r1, sp, #0
- bl FUN_02013628
- mov r0, #8
- ldrsb r1, [r4, r0]
- ldr r2, [sp]
- mul r1, r2
- str r1, [sp]
- ldrsb r1, [r4, r0]
- ldr r2, [sp, #4]
- mul r1, r2
- str r1, [sp, #4]
- ldrsb r0, [r4, r0]
- ldr r1, [sp, #8]
- mul r0, r1
- str r0, [sp, #8]
- b _022177E2
-_02217770:
- ldr r2, [sp, #0x14]
- ldr r1, [sp, #0x18]
- ldr r0, [sp, #0x1c]
- str r2, [sp]
- str r1, [sp, #4]
- str r0, [sp, #8]
- mov r3, #8
- ldrsb r5, [r4, r3]
- mul r5, r2
- str r5, [sp]
- ldrsb r2, [r4, r3]
- mul r2, r1
- str r2, [sp, #4]
- ldrsb r1, [r4, r3]
- mul r1, r0
- str r1, [sp, #8]
- b _022177E2
-_02217792:
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- add r2, sp, #0
- bl MOD08_0222771C
- ldr r1, [sp]
- ldr r5, [sp, #0x14]
- add r0, r1, #0
- ldr r6, [sp, #0x18]
- mul r0, r5
- add r1, r6, #0
- bl _s32_div_f
- ldr r1, [sp, #4]
- str r0, [sp]
- add r0, r1, #0
- mul r0, r5
- add r1, r6, #0
- bl _s32_div_f
- ldr r1, [sp, #8]
- str r0, [sp, #4]
- add r0, r1, #0
- mul r0, r5
- add r1, r6, #0
- bl _s32_div_f
- str r0, [sp, #8]
- b _022177E2
-_022177CC:
- ldr r0, [r4]
- ldr r1, [r4, #0x24]
- add r2, sp, #0
- bl MOD08_0222771C
- b _022177E2
-_022177D8:
- ldr r0, [r4]
- ldr r1, [r4, #0x28]
- add r2, sp, #0
- bl MOD08_0222771C
-_022177E2:
- ldr r1, [sp]
- ldr r0, [r4, #0x2c]
- sub r0, r1, r0
- str r0, [sp]
- ldr r1, [sp, #4]
- ldr r0, [r4, #0x30]
- sub r0, r1, r0
- str r0, [sp, #4]
- ldr r1, [sp, #8]
- ldr r0, [r4, #0x34]
- sub r0, r1, r0
- str r0, [sp, #8]
- add r0, r7, #0
- add r1, sp, #0
- bl FUN_02013610
- mov r0, #1
- add sp, #0x20
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02217808
-MOD08_02217808: ; 0x02217808
- push {r3, r4, r5, lr}
- sub sp, #0x18
- add r5, r0, #0
- add r4, r1, #0
- mov r1, #0
- add r0, sp, #0
- strh r1, [r0]
- add r0, r4, #0
- add r1, sp, #4
- bl MOD08_022173BC
- add r0, r4, #0
- bl MOD08_0221727C
- strb r0, [r4, #8]
- ldr r0, [sp, #8]
- cmp r0, #1
- bne _02217830
- mov r0, #1
- strb r0, [r4, #8]
-_02217830:
- ldr r0, [sp, #4]
- cmp r0, #3
- bgt _0221784E
- cmp r0, #0
- blt _0221787C
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02217846: ; jump table
- .short _02217852 - _02217846 - 2 ; case 0
- .short _0221786A - _02217846 - 2 ; case 1
- .short _0221787C - _02217846 - 2 ; case 2
- .short _0221787C - _02217846 - 2 ; case 3
-_0221784E:
- cmp r0, #0xff
- b _0221787C
-_02217852:
- add r0, r5, #0
- add r1, sp, #0
- bl FUN_02013674
- add r1, sp, #0
- mov r0, #0
- ldrsh r2, [r1, r0]
- mov r0, #8
- ldrsb r0, [r4, r0]
- mul r0, r2
- strh r0, [r1]
- b _0221787C
-_0221786A:
- ldr r0, [sp, #0xc]
- add r1, sp, #0
- strh r0, [r1]
- mov r0, #0
- ldrsh r2, [r1, r0]
- mov r0, #8
- ldrsb r0, [r4, r0]
- mul r0, r2
- strh r0, [r1]
-_0221787C:
- add r0, r5, #0
- add r1, sp, #0
- bl FUN_0201365C
- mov r0, #1
- add sp, #0x18
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221788C
-MOD08_0221788C: ; 0x0221788C
- push {r3, lr}
- add r3, r0, #0
- add r0, r1, #0
- add r1, r2, #0
- ldr r2, _022178A0 ; =0x0222C204
- lsl r3, r3, #2
- ldr r2, [r2, r3]
- blx r2
- pop {r3, pc}
- nop
-_022178A0: .word 0x0222C204
-
- thumb_func_start MOD08_022178A4
-MOD08_022178A4: ; 0x022178A4
- push {r3, r4, r5}
- sub sp, #0x3c
- ldr r4, _022178C8 ; =0x0222C23C
- add r5, r0, #0
- add r3, sp, #0
- mov r2, #7
-_022178B0:
- ldmia r4!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _022178B0
- ldr r0, [r4]
- lsl r1, r5, #2
- str r0, [r3]
- add r0, sp, #0
- ldr r0, [r0, r1]
- add sp, #0x3c
- pop {r3, r4, r5}
- bx lr
- .align 2, 0
-_022178C8: .word 0x0222C23C
-
- thumb_func_start MOD08_022178CC
-MOD08_022178CC: ; 0x022178CC
- push {r4, r5, r6, lr}
- mov r4, #0
- ldr r6, _022178F4 ; =0x0000FEFE
- add r5, r4, #0
-_022178D4:
- add r0, r4, #0
- bl MOD08_022178A4
- add r4, r4, #1
- cmp r0, r6
- beq _022178E6
- add r5, r5, #1
- cmp r5, #0xff
- blt _022178D4
-_022178E6:
- cmp r5, #0xff
- blt _022178EE
- mov r0, #0
- pop {r4, r5, r6, pc}
-_022178EE:
- add r0, r4, #0
- pop {r4, r5, r6, pc}
- nop
-_022178F4: .word 0x0000FEFE
-
- thumb_func_start MOD08_022178F8
-MOD08_022178F8: ; 0x022178F8
- ldr r3, _02217900 ; =MOD08_02215434
- ldr r0, [r0]
- mov r2, #4
- bx r3
- .align 2, 0
-_02217900: .word MOD08_02215434
-
- thumb_func_start MOD08_02217904
-MOD08_02217904: ; 0x02217904
- push {r3, lr}
- sub sp, #8
- add r2, sp, #0
- mov r0, #0
- strh r0, [r2]
- strh r0, [r2, #2]
- strh r0, [r2, #4]
- strh r0, [r2, #6]
- ldr r0, [r1, #4]
- bl FUN_0201343C
- add r1, r0, #0
- add r0, sp, #0
- bl FUN_0201EF90
- mov r0, #1
- add sp, #8
- pop {r3, pc}
-
- thumb_func_start MOD08_02217928
-MOD08_02217928: ; 0x02217928
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- ldr r1, _02217960 ; =0x0222C278
- add r0, sp, #0
- ldrh r2, [r1, #0x20]
- strh r2, [r0]
- ldrh r2, [r1, #0x22]
- strh r2, [r0, #2]
- ldrh r2, [r1, #0x24]
- ldrh r1, [r1, #0x26]
- strh r2, [r0, #4]
- strh r1, [r0, #6]
- ldr r0, [r4, #4]
- bl FUN_0201343C
- add r5, r0, #0
- ldr r0, [r4, #4]
- mov r1, #1
- bl FUN_02013440
- add r0, sp, #0
- add r1, r5, #0
- bl FUN_0201EF90
- mov r0, #1
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02217960: .word 0x0222C278
-
- thumb_func_start MOD08_02217964
-MOD08_02217964: ; 0x02217964
- push {r4, lr}
- sub sp, #0x18
- add r4, r1, #0
- add r1, sp, #0
- mov r0, #0
- strh r0, [r1]
- strh r0, [r1, #2]
- strh r0, [r1, #4]
- strh r0, [r1, #6]
- add r0, r4, #0
- add r1, sp, #8
- bl MOD08_022178F8
- ldr r1, [sp, #0xc]
- add r0, sp, #0
- strh r1, [r0]
- ldr r1, [sp, #0x10]
- strh r1, [r0, #2]
- ldr r1, [sp, #0x14]
- strh r1, [r0, #4]
- ldr r0, [r4, #4]
- bl FUN_0201343C
- add r1, r0, #0
- add r0, sp, #0
- bl FUN_0201EF90
- mov r0, #1
- add sp, #0x18
- pop {r4, pc}
-
- thumb_func_start MOD08_022179A0
-MOD08_022179A0: ; 0x022179A0
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- ldr r1, _022179D8 ; =0x0222C278
- add r0, sp, #0
- ldrh r2, [r1, #0x18]
- strh r2, [r0]
- ldrh r2, [r1, #0x1a]
- strh r2, [r0, #2]
- ldrh r2, [r1, #0x1c]
- ldrh r1, [r1, #0x1e]
- strh r2, [r0, #4]
- strh r1, [r0, #6]
- ldr r0, [r4, #4]
- bl FUN_0201343C
- add r5, r0, #0
- ldr r0, [r4, #4]
- mov r1, #1
- bl FUN_02013440
- add r0, sp, #0
- add r1, r5, #0
- bl FUN_0201EF90
- mov r0, #1
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-_022179D8: .word 0x0222C278
-
- thumb_func_start MOD08_022179DC
-MOD08_022179DC: ; 0x022179DC
- push {r3, r4, r5, lr}
- sub sp, #0x10
- add r4, r1, #0
- ldr r1, _02217A38 ; =0x0222C278
- add r0, sp, #0
- ldrh r2, [r1, #0x10]
- strh r2, [r0, #8]
- ldrh r2, [r1, #0x12]
- strh r2, [r0, #0xa]
- ldrh r2, [r1, #0x14]
- strh r2, [r0, #0xc]
- ldrh r2, [r1, #0x16]
- strh r2, [r0, #0xe]
- ldrh r2, [r1, #0x28]
- strh r2, [r0]
- ldrh r2, [r1, #0x2a]
- strh r2, [r0, #2]
- ldrh r2, [r1, #0x2c]
- strh r2, [r0, #4]
- ldrh r1, [r1, #0x2e]
- strh r1, [r0, #6]
- ldr r0, [r4, #4]
- bl FUN_0201343C
- add r5, r0, #0
- ldr r0, [r4, #4]
- mov r1, #1
- bl FUN_02013440
- ldr r0, [r4]
- bl MOD08_02212004
- cmp r0, #1
- bne _02217A2A
- add r0, sp, #8
- add r1, r5, #0
- bl FUN_0201EF90
- b _02217A32
-_02217A2A:
- add r0, sp, #0
- add r1, r5, #0
- bl FUN_0201EF90
-_02217A32:
- mov r0, #1
- add sp, #0x10
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02217A38: .word 0x0222C278
-
- thumb_func_start MOD08_02217A3C
-MOD08_02217A3C: ; 0x02217A3C
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- ldr r1, _02217A74 ; =0x0222C278
- add r0, sp, #0
- ldrh r2, [r1]
- strh r2, [r0]
- ldrh r2, [r1, #2]
- strh r2, [r0, #2]
- ldrh r2, [r1, #4]
- ldrh r1, [r1, #6]
- strh r2, [r0, #4]
- strh r1, [r0, #6]
- ldr r0, [r4, #4]
- bl FUN_0201343C
- add r5, r0, #0
- ldr r0, [r4, #4]
- mov r1, #1
- bl FUN_02013440
- add r0, sp, #0
- add r1, r5, #0
- bl FUN_0201EF90
- mov r0, #1
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02217A74: .word 0x0222C278
-
- thumb_func_start MOD08_02217A78
-MOD08_02217A78: ; 0x02217A78
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- ldr r1, _02217AB0 ; =0x0222C278
- add r0, sp, #0
- ldrh r2, [r1, #8]
- strh r2, [r0]
- ldrh r2, [r1, #0xa]
- strh r2, [r0, #2]
- ldrh r2, [r1, #0xc]
- ldrh r1, [r1, #0xe]
- strh r2, [r0, #4]
- strh r1, [r0, #6]
- ldr r0, [r4, #4]
- bl FUN_0201343C
- add r5, r0, #0
- ldr r0, [r4, #4]
- mov r1, #1
- bl FUN_02013440
- add r0, sp, #0
- add r1, r5, #0
- bl FUN_0201EF90
- mov r0, #1
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02217AB0: .word 0x0222C278
-
- thumb_func_start MOD08_02217AB4
-MOD08_02217AB4: ; 0x02217AB4
- push {r4, r5, lr}
- sub sp, #0xc
- add r5, r1, #0
- ldr r0, [r5, #4]
- bl FUN_0201343C
- add r4, r0, #0
- ldr r0, [r5]
- ldr r1, [r5, #0x24]
- add r2, sp, #0
- bl MOD08_022278FC
- add r0, sp, #0
- add r1, r4, #0
- bl FUN_0201F04C
- mov r0, #1
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02217ADC
-MOD08_02217ADC: ; 0x02217ADC
- push {r4, r5, lr}
- sub sp, #0xc
- add r5, r1, #0
- ldr r0, [r5, #4]
- bl FUN_0201343C
- add r4, r0, #0
- ldr r0, [r5]
- ldr r1, [r5, #0x28]
- add r2, sp, #0
- bl MOD08_022278FC
- add r0, sp, #0
- add r1, r4, #0
- bl FUN_0201F04C
- mov r0, #1
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02217B04
-MOD08_02217B04: ; 0x02217B04
- push {r3, lr}
- add r3, r0, #0
- add r0, r1, #0
- add r1, r2, #0
- ldr r2, _02217B18 ; =0x0222C2A8
- lsl r3, r3, #2
- ldr r2, [r2, r3]
- blx r2
- pop {r3, pc}
- nop
-_02217B18: .word 0x0222C2A8
-
- thumb_func_start MOD08_02217B1C
-MOD08_02217B1C: ; 0x02217B1C
- push {r3, r4, r5, r6}
- cmp r2, #0
- beq _02217B32
- mov r4, #0x18
- add r6, r0, #0
- mul r6, r4
- ldr r4, _02217B48 ; =0x0222C2CC
- lsl r5, r1, #2
- add r4, r4, r6
- ldrsh r4, [r5, r4]
- strh r4, [r2]
-_02217B32:
- cmp r3, #0
- beq _02217B44
- mov r2, #0x18
- mul r2, r0
- ldr r0, _02217B4C ; =0x0222C2CE
- lsl r1, r1, #2
- add r0, r0, r2
- ldrsh r0, [r1, r0]
- strh r0, [r3]
-_02217B44:
- pop {r3, r4, r5, r6}
- bx lr
- .align 2, 0
-_02217B48: .word 0x0222C2CC
-_02217B4C: .word 0x0222C2CE
-
- thumb_func_start MOD08_02217B50
-MOD08_02217B50: ; 0x02217B50
- push {r3, r4, r5, r6, r7, lr}
- add r7, r0, #0
- add r5, r1, #0
- add r4, r2, #0
- add r6, r3, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _02217B70
- mov r0, #0
- add r1, r5, #2
- add r2, r4, #0
- add r3, r6, #0
- bl MOD08_02217B1C
- pop {r3, r4, r5, r6, r7, pc}
-_02217B70:
- add r0, r7, #0
- bl MOD08_0221553C
- cmp r0, #1
- bne _02217B88
- mov r0, #1
- sub r1, r5, #2
- add r2, r4, #0
- add r3, r6, #0
- bl MOD08_02217B1C
- pop {r3, r4, r5, r6, r7, pc}
-_02217B88:
- mov r0, #0
- add r1, r5, #0
- add r2, r4, #0
- add r3, r6, #0
- bl MOD08_02217B1C
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02217B98
-MOD08_02217B98: ; 0x02217B98
- push {r3, r4, r5, r6, r7, lr}
- add r7, r0, #0
- add r6, r2, #0
- bl MOD08_02227468
- add r4, r0, #0
- add r0, r7, #0
- bl MOD08_0221553C
- cmp r0, #1
- bne _02217BB2
- mov r5, #1
- b _02217BB4
-_02217BB2:
- mov r5, #0
-_02217BB4:
- add r0, r7, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _02217BC0
- add r4, r4, #2
-_02217BC0:
- cmp r6, #3
- bhi _02217BF8
- add r0, r6, r6
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02217BD0: ; jump table
- .short _02217BD8 - _02217BD0 - 2 ; case 0
- .short _02217BE8 - _02217BD0 - 2 ; case 1
- .short _02217BD8 - _02217BD0 - 2 ; case 2
- .short _02217BE8 - _02217BD0 - 2 ; case 3
-_02217BD8:
- mov r0, #0x18
- add r2, r5, #0
- mul r2, r0
- ldr r0, _02217C00 ; =0x0222C2CC
- lsl r1, r4, #2
- add r0, r0, r2
- ldrsh r0, [r1, r0]
- pop {r3, r4, r5, r6, r7, pc}
-_02217BE8:
- mov r0, #0x18
- add r2, r5, #0
- mul r2, r0
- ldr r0, _02217C04 ; =0x0222C2CE
- lsl r1, r4, #2
- add r0, r0, r2
- ldrsh r0, [r1, r0]
- pop {r3, r4, r5, r6, r7, pc}
-_02217BF8:
- bl ErrorHandling
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02217C00: .word 0x0222C2CC
-_02217C04: .word 0x0222C2CE
-
- thumb_func_start MOD08_02217C08
-MOD08_02217C08: ; 0x02217C08
- push {r3, lr}
- ldr r0, [r0]
- bl FUN_02020354
- mov r1, #1
- bl FUN_0201E28C
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- pop {r3, pc}
-
- thumb_func_start MOD08_02217C1C
-MOD08_02217C1C: ; 0x02217C1C
- push {r4, r5, r6, lr}
- add r6, r0, #0
- mov r5, #1
- bl MOD08_02227470
- add r4, r0, #0
- add r0, r6, #0
- bl MOD08_02212004
- cmp r0, #0
- beq _02217C3A
- cmp r4, #3
- bne _02217C40
- sub r5, r5, #2
- b _02217C40
-_02217C3A:
- cmp r4, #4
- bne _02217C40
- sub r5, r5, #2
-_02217C40:
- add r0, r5, #0
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_02217C44
-MOD08_02217C44: ; 0x02217C44
- push {r4, lr}
- mov r4, #1
- bl MOD08_02227470
- cmp r0, #4
- bne _02217C52
- sub r4, r4, #2
-_02217C52:
- add r0, r4, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02217C58
-MOD08_02217C58: ; 0x02217C58
- ldr r3, _02217C60 ; =0x020C50B8
- sub r0, r1, r0
- lsl r1, r2, #0xc
- bx r3
- .align 2, 0
-_02217C60: .word 0x020C50B8
-
- thumb_func_start MOD08_02217C64
-MOD08_02217C64: ; 0x02217C64
- push {r3, lr}
- sub r0, r1, r0
- add r1, r2, #0
- bl FX_Div
- add r1, sp, #0
- str r0, [sp]
- bl FX_Modf
- cmp r0, #0
- beq _02217C84
- mov r0, #1
- ldr r1, [sp]
- lsl r0, r0, #0xc
- add r0, r1, r0
- str r0, [sp]
-_02217C84:
- ldr r0, [sp]
- cmp r0, #0
- bge _02217C8C
- neg r0, r0
-_02217C8C:
- str r0, [sp]
- asr r0, r0, #0xc
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02217C94
-MOD08_02217C94: ; 0x02217C94
- push {r4, lr}
- add r4, r0, #0
- add r0, r1, #0
- mov r1, #0
- ldrsh r1, [r4, r1]
- add r1, r2, r1
- mov r2, #2
- ldrsh r2, [r4, r2]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add r2, r3, r2
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- bl FUN_0200C714
- pop {r4, pc}
-
- thumb_func_start MOD08_02217CB4
-MOD08_02217CB4: ; 0x02217CB4
- push {r4, lr}
- sub sp, #8
- add r4, r1, #0
- add r1, sp, #4
- add r2, sp, #0
- bl MOD08_0221825C
- ldr r1, [sp, #4]
- ldr r2, [sp]
- add r0, r4, #0
- bl FUN_0200C884
- add sp, #8
- pop {r4, pc}
-
- thumb_func_start MOD08_02217CD0
-MOD08_02217CD0: ; 0x02217CD0
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r5, r0, #0
- mov r1, #0
- add r6, r3, #0
- ldrsh r3, [r5, r1]
- add r0, r4, #0
- add r2, r2, r3
- bl FUN_02007558
- mov r2, #2
- ldrsh r2, [r5, r2]
- add r0, r4, #0
- mov r1, #1
- add r2, r6, r2
- bl FUN_02007558
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_02217CF4
-MOD08_02217CF4: ; 0x02217CF4
- push {r3, r4, r5, lr}
- add r5, r0, #0
- mov r2, #0
- add r4, r1, #0
- ldrsh r2, [r5, r2]
- add r0, r4, #0
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #2
- ldrsh r2, [r5, r2]
- add r0, r4, #0
- mov r1, #0xd
- bl FUN_02007558
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02217D14
-MOD08_02217D14: ; 0x02217D14
- push {r3, r4, r5, lr}
- add r4, r3, #0
- add r5, r0, #0
- ldr r3, [sp, #0x1c]
- ldr r0, [sp, #0x14]
- str r3, [r5, #4]
- str r1, [r5, #8]
- str r0, [r5, #0xc]
- ldr r0, [sp, #0x18]
- str r4, [r5, #0x10]
- str r0, [r5, #0x14]
- sub r0, r2, r1
- add r1, r3, #0
- bl _s32_div_f
- str r0, [r5, #0x18]
- add r0, sp, #0
- ldrh r0, [r0, #0x10]
- ldr r1, [sp, #0x1c]
- sub r0, r0, r4
- bl _s32_div_f
- str r0, [r5, #0x1c]
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02217D44
-MOD08_02217D44: ; 0x02217D44
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r4, r1, #0
- add r7, r2, #0
- str r3, [sp]
- cmp r5, #0
- bne _02217D56
- bl ErrorHandling
-_02217D56:
- cmp r4, r7
- bls _02217D62
- add r0, sp, #8
- ldrh r1, [r0, #0x1c]
- neg r1, r1
- strh r1, [r0, #0x1c]
-_02217D62:
- add r1, sp, #8
- mov r0, #0x1c
- ldrsh r6, [r1, r0]
- lsl r0, r4, #0xc
- lsl r1, r7, #0xc
- lsl r2, r6, #0xc
- bl MOD08_02217C64
- str r0, [r5, #4]
- ldr r0, [sp, #0x1c]
- str r4, [r5, #8]
- str r0, [r5, #0xc]
- ldr r0, [sp]
- str r0, [r5, #0x10]
- ldr r0, [sp, #0x20]
- str r0, [r5, #0x14]
- str r6, [r5, #0x18]
- add r0, sp, #8
- ldrh r1, [r0, #0x10]
- ldr r0, [sp]
- sub r0, r1, r0
- ldr r1, [r5, #4]
- bl _s32_div_f
- str r0, [r5, #0x1c]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02217D98
-MOD08_02217D98: ; 0x02217D98
- push {r4, lr}
- add r4, r0, #0
- bne _02217DA2
- bl ErrorHandling
-_02217DA2:
- ldr r0, [r4, #4]
- cmp r0, #0
- beq _02217E26
- ldr r1, [r4, #8]
- ldr r0, [r4, #0x18]
- add r0, r1, r0
- str r0, [r4, #8]
- ldr r1, [r4, #0x10]
- ldr r0, [r4, #0x1c]
- add r0, r1, r0
- str r0, [r4, #0x10]
- ldr r0, [r4, #8]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [r4, #8]
- ldr r0, [r4, #0x10]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [r4, #0x10]
- ldr r0, [r4, #4]
- sub r0, r0, #1
- str r0, [r4, #4]
- ldr r0, [r4, #8]
- ldr r2, [r4, #0xc]
- asr r0, r0, #4
- lsl r1, r0, #2
- ldr r0, _02217E2C ; =0x020FFA38
- asr r3, r2, #0x1f
- ldrsh r0, [r0, r1]
- asr r1, r0, #0x1f
- bl _ll_mul
- mov r2, #2
- mov r3, #0
- lsl r2, r2, #0xa
- add r2, r0, r2
- adc r1, r3
- lsl r0, r1, #0x14
- lsr r1, r2, #0xc
- orr r1, r0
- asr r0, r1, #0xc
- strh r0, [r4]
- ldr r0, [r4, #0x10]
- ldr r2, [r4, #0x14]
- asr r0, r0, #4
- lsl r0, r0, #1
- add r0, r0, #1
- lsl r1, r0, #1
- ldr r0, _02217E2C ; =0x020FFA38
- asr r3, r2, #0x1f
- ldrsh r0, [r0, r1]
- asr r1, r0, #0x1f
- bl _ll_mul
- mov r2, #2
- mov r3, #0
- lsl r2, r2, #0xa
- add r2, r0, r2
- adc r1, r3
- lsl r0, r1, #0x14
- lsr r1, r2, #0xc
- orr r1, r0
- asr r0, r1, #0xc
- strh r0, [r4, #2]
- mov r0, #1
- pop {r4, pc}
-_02217E26:
- mov r0, #0
- pop {r4, pc}
- nop
-_02217E2C: .word 0x020FFA38
-
- thumb_func_start MOD08_02217E30
-MOD08_02217E30: ; 0x02217E30
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r4, r1, #0
- add r6, r2, #0
- add r7, r3, #0
- bl MOD08_02217D98
- cmp r0, #0
- beq _02217E52
- add r0, r5, #0
- add r1, r7, #0
- add r2, r4, #0
- add r3, r6, #0
- bl MOD08_02217C94
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_02217E52:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02217E58
-MOD08_02217E58: ; 0x02217E58
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r4, r1, #0
- add r6, r2, #0
- add r7, r3, #0
- bl MOD08_02217D98
- cmp r0, #0
- beq _02217E7A
- add r0, r5, #0
- add r1, r7, #0
- add r2, r4, #0
- add r3, r6, #0
- bl MOD08_02217CD0
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_02217E7A:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02217E80
-MOD08_02217E80: ; 0x02217E80
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r0, #0
- add r4, r1, #0
- add r6, r3, #0
- str r2, [sp]
- cmp r5, #0
- bne _02217E94
- bl ErrorHandling
-_02217E94:
- strh r4, [r5]
- strh r6, [r5, #2]
- add r0, sp, #0x10
- ldrh r7, [r0, #0x14]
- lsl r0, r4, #0xc
- str r0, [sp, #4]
- str r7, [r5, #4]
- ldr r1, [sp]
- add r2, r7, #0
- lsl r1, r1, #0xc
- bl MOD08_02217C58
- str r0, [r5, #8]
- lsl r4, r6, #0xc
- add r2, sp, #0x10
- mov r1, #0x10
- ldrsh r1, [r2, r1]
- add r0, r4, #0
- add r2, r7, #0
- lsl r1, r1, #0xc
- bl MOD08_02217C58
- str r0, [r5, #0xc]
- ldr r0, [sp, #4]
- str r0, [r5, #0x10]
- str r4, [r5, #0x14]
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02217ECC
-MOD08_02217ECC: ; 0x02217ECC
- push {r4, lr}
- add r4, r0, #0
- bne _02217ED6
- bl ErrorHandling
-_02217ED6:
- ldr r0, [r4, #4]
- cmp r0, #0
- beq _02217F02
- ldr r1, [r4, #0x10]
- ldr r0, [r4, #8]
- add r0, r1, r0
- str r0, [r4, #0x10]
- ldr r1, [r4, #0x14]
- ldr r0, [r4, #0xc]
- add r0, r1, r0
- str r0, [r4, #0x14]
- ldr r0, [r4, #0x10]
- asr r0, r0, #0xc
- strh r0, [r4]
- ldr r0, [r4, #0x14]
- asr r0, r0, #0xc
- strh r0, [r4, #2]
- ldr r0, [r4, #4]
- sub r0, r0, #1
- str r0, [r4, #4]
- mov r0, #1
- pop {r4, pc}
-_02217F02:
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02217F08
-MOD08_02217F08: ; 0x02217F08
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD08_02217ECC
- cmp r0, #0
- beq _02217F26
- mov r2, #0
- add r0, r5, #0
- add r1, r4, #0
- add r3, r2, #0
- bl MOD08_02217C94
- mov r0, #1
- pop {r3, r4, r5, pc}
-_02217F26:
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02217F2C
-MOD08_02217F2C: ; 0x02217F2C
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD08_02217ECC
- cmp r0, #0
- beq _02217F4A
- mov r2, #0
- add r0, r5, #0
- add r1, r4, #0
- add r3, r2, #0
- bl MOD08_02217CD0
- mov r0, #1
- pop {r3, r4, r5, pc}
-_02217F4A:
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02217F50
-MOD08_02217F50: ; 0x02217F50
- push {r3, r4, r5, lr}
- sub sp, #0x10
- add r5, r1, #0
- add r4, sp, #0x10
- mov r1, #0x14
- ldrsh r1, [r4, r1]
- str r1, [sp]
- ldrh r1, [r4, #0x18]
- str r1, [sp, #4]
- add r1, r2, #0
- add r2, r3, #0
- mov r3, #0x10
- ldrsh r3, [r4, r3]
- bl MOD08_02217E80
- mov r1, #0
- strh r1, [r5]
- ldr r0, _02217F94 ; =0x0000BFFF
- strh r1, [r5, #2]
- str r0, [sp]
- ldr r0, [sp, #0x2c]
- str r1, [sp, #4]
- str r0, [sp, #8]
- add r0, r4, #0
- ldrh r0, [r0, #0x18]
- ldr r3, _02217F98 ; =0x00003FFF
- add r2, r1, #0
- str r0, [sp, #0xc]
- add r0, r5, #0
- bl MOD08_02217D14
- add sp, #0x10
- pop {r3, r4, r5, pc}
- nop
-_02217F94: .word 0x0000BFFF
-_02217F98: .word 0x00003FFF
-
- thumb_func_start MOD08_02217F9C
-MOD08_02217F9C: ; 0x02217F9C
- push {r4, r5, r6, lr}
- add r5, r0, #0
- add r4, r1, #0
- cmp r5, #0
- bne _02217FAA
- bl ErrorHandling
-_02217FAA:
- cmp r4, #0
- bne _02217FB2
- bl ErrorHandling
-_02217FB2:
- add r0, r5, #0
- bl MOD08_02217ECC
- add r6, r0, #0
- add r0, r4, #0
- bl MOD08_02217D98
- mov r2, #0
- ldrsh r3, [r5, r2]
- ldrsh r1, [r4, r2]
- add r1, r3, r1
- strh r1, [r5]
- mov r1, #2
- ldrsh r3, [r5, r1]
- ldrsh r1, [r4, r1]
- add r1, r3, r1
- strh r1, [r5, #2]
- cmp r6, r0
- bne _02217FE0
- cmp r6, #0
- bne _02217FE0
- add r0, r2, #0
- pop {r4, r5, r6, pc}
-_02217FE0:
- mov r0, #1
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_02217FE4
-MOD08_02217FE4: ; 0x02217FE4
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r2, #0
- bl MOD08_02217F9C
- cmp r0, #0
- beq _02218002
- mov r2, #0
- add r0, r5, #0
- add r1, r4, #0
- add r3, r2, #0
- bl MOD08_02217C94
- mov r0, #1
- pop {r3, r4, r5, pc}
-_02218002:
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218008
-MOD08_02218008: ; 0x02218008
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r6, r1, #0
- add r7, r2, #0
- add r4, r3, #0
- cmp r5, #0
- bne _0221801A
- bl ErrorHandling
-_0221801A:
- str r6, [r5]
- lsl r0, r6, #0xc
- lsl r1, r7, #0xc
- add r2, r4, #0
- str r4, [r5, #4]
- bl MOD08_02217C58
- asr r0, r0, #0xc
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218030
-MOD08_02218030: ; 0x02218030
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r6, r1, #0
- add r7, r2, #0
- add r4, r3, #0
- cmp r5, #0
- bne _02218042
- bl ErrorHandling
-_02218042:
- str r6, [r5]
- lsl r6, r6, #0xc
- add r0, r6, #0
- lsl r1, r7, #0xc
- add r2, r4, #0
- str r4, [r5, #4]
- bl MOD08_02217C58
- str r0, [r5, #8]
- str r6, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02218058
-MOD08_02218058: ; 0x02218058
- push {r4, lr}
- add r4, r0, #0
- bne _02218062
- bl ErrorHandling
-_02218062:
- ldr r0, [r4, #4]
- cmp r0, #0
- beq _0221807A
- ldr r1, [r4]
- ldr r0, [r4, #8]
- add r0, r1, r0
- str r0, [r4]
- ldr r0, [r4, #4]
- sub r0, r0, #1
- str r0, [r4, #4]
- mov r0, #1
- pop {r4, pc}
-_0221807A:
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218080
-MOD08_02218080: ; 0x02218080
- push {r4, lr}
- add r4, r0, #0
- bne _0221808A
- bl ErrorHandling
-_0221808A:
- ldr r0, [r4, #4]
- cmp r0, #0
- beq _022180A6
- ldr r1, [r4, #0xc]
- ldr r0, [r4, #8]
- add r0, r1, r0
- str r0, [r4, #0xc]
- asr r0, r0, #0xc
- str r0, [r4]
- ldr r0, [r4, #4]
- sub r0, r0, #1
- str r0, [r4, #4]
- mov r0, #1
- pop {r4, pc}
-_022180A6:
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022180AC
-MOD08_022180AC: ; 0x022180AC
- push {r3, r4, r5, lr}
- ldr r4, [sp, #0x10]
- add r5, r0, #0
- str r4, [r5, #4]
- str r1, [r5, #8]
- sub r0, r2, r1
- add r1, r4, #0
- str r3, [r5, #0xc]
- bl _u32_div_f
- str r0, [r5, #0x10]
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_022180C4
-MOD08_022180C4: ; 0x022180C4
- push {r4, lr}
- add r4, r0, #0
- bne _022180CE
- bl ErrorHandling
-_022180CE:
- ldr r0, [r4, #4]
- cmp r0, #0
- beq _02218116
- ldr r1, [r4, #8]
- ldr r0, [r4, #0x10]
- add r0, r1, r0
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [r4, #8]
- ldr r0, [r4, #4]
- sub r0, r0, #1
- str r0, [r4, #4]
- ldr r0, [r4, #8]
- ldr r2, [r4, #0xc]
- asr r0, r0, #4
- lsl r0, r0, #1
- add r0, r0, #1
- lsl r1, r0, #1
- ldr r0, _0221811C ; =0x020FFA38
- asr r3, r2, #0x1f
- ldrsh r0, [r0, r1]
- asr r1, r0, #0x1f
- bl _ll_mul
- mov r2, #2
- mov r3, #0
- lsl r2, r2, #0xa
- add r2, r0, r2
- adc r1, r3
- lsl r0, r1, #0x14
- lsr r1, r2, #0xc
- orr r1, r0
- asr r0, r1, #0xc
- str r0, [r4]
- mov r0, #1
- pop {r4, pc}
-_02218116:
- mov r0, #0
- pop {r4, pc}
- nop
-_0221811C: .word 0x020FFA38
-
- thumb_func_start MOD08_02218120
-MOD08_02218120: ; 0x02218120
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- add r5, r1, #0
- add r6, r2, #0
- add r7, r3, #0
- cmp r4, #0
- bne _02218132
- bl ErrorHandling
-_02218132:
- ldr r0, [sp, #0x18]
- add r1, r6, #0
- str r0, [r4, #4]
- lsl r0, r5, #8
- bl _s32_div_f
- add r5, r0, #0
- lsl r0, r7, #8
- add r1, r6, #0
- bl _s32_div_f
- add r1, r0, #0
- ldr r2, [sp, #0x18]
- lsl r0, r5, #0xc
- lsl r1, r1, #0xc
- bl MOD08_02217C58
- str r0, [r4, #8]
- lsl r0, r5, #0x10
- asr r0, r0, #0x10
- strh r0, [r4]
- strh r0, [r4, #2]
- mov r0, #0
- ldrsh r0, [r4, r0]
- lsl r0, r0, #0xc
- str r0, [r4, #0x10]
- mov r0, #2
- ldrsh r0, [r4, r0]
- lsl r0, r0, #0xc
- str r0, [r4, #0x14]
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02218170
-MOD08_02218170: ; 0x02218170
- push {r4, lr}
- add r4, r0, #0
- bne _0221817A
- bl ErrorHandling
-_0221817A:
- ldr r0, [r4, #4]
- cmp r0, #0
- beq _022181A4
- sub r0, r0, #1
- str r0, [r4, #4]
- ldr r1, [r4, #0x10]
- ldr r0, [r4, #8]
- add r0, r1, r0
- str r0, [r4, #0x10]
- ldr r1, [r4, #0x14]
- ldr r0, [r4, #8]
- add r0, r1, r0
- str r0, [r4, #0x14]
- ldr r0, [r4, #0x10]
- asr r0, r0, #0xc
- strh r0, [r4]
- ldr r0, [r4, #0x14]
- asr r0, r0, #0xc
- strh r0, [r4, #2]
- mov r0, #1
- pop {r4, pc}
-_022181A4:
- mov r0, #0
- pop {r4, pc}
-
- thumb_func_start MOD08_022181A8
-MOD08_022181A8: ; 0x022181A8
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r6, r1, #0
- add r7, r2, #0
- str r3, [sp]
- cmp r5, #0
- bne _022181BA
- bl ErrorHandling
-_022181BA:
- ldr r0, [sp, #0x20]
- add r1, sp, #8
- str r0, [r5, #4]
- mov r0, #0x14
- ldrsh r4, [r1, r0]
- lsl r0, r6, #8
- add r1, r4, #0
- bl _s32_div_f
- add r6, r0, #0
- lsl r0, r7, #8
- add r1, r4, #0
- bl _s32_div_f
- add r1, r0, #0
- ldr r2, [sp, #0x20]
- lsl r0, r6, #0xc
- lsl r1, r1, #0xc
- bl MOD08_02217C58
- str r0, [r5, #8]
- ldr r0, [sp]
- add r1, r4, #0
- lsl r0, r0, #8
- bl _s32_div_f
- add r7, r0, #0
- add r1, sp, #8
- mov r0, #0x10
- ldrsh r0, [r1, r0]
- add r1, r4, #0
- lsl r0, r0, #8
- bl _s32_div_f
- add r1, r0, #0
- ldr r2, [sp, #0x20]
- lsl r0, r7, #0xc
- lsl r1, r1, #0xc
- bl MOD08_02217C58
- str r0, [r5, #0xc]
- strh r6, [r5]
- strh r7, [r5, #2]
- mov r0, #0
- ldrsh r0, [r5, r0]
- lsl r0, r0, #0xc
- str r0, [r5, #0x10]
- mov r0, #2
- ldrsh r0, [r5, r0]
- lsl r0, r0, #0xc
- str r0, [r5, #0x14]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218224
-MOD08_02218224: ; 0x02218224
- push {r4, lr}
- add r4, r0, #0
- bne _0221822E
- bl ErrorHandling
-_0221822E:
- ldr r0, [r4, #4]
- cmp r0, #0
- beq _02218258
- sub r0, r0, #1
- str r0, [r4, #4]
- ldr r1, [r4, #0x10]
- ldr r0, [r4, #8]
- add r0, r1, r0
- str r0, [r4, #0x10]
- ldr r1, [r4, #0x14]
- ldr r0, [r4, #0xc]
- add r0, r1, r0
- str r0, [r4, #0x14]
- ldr r0, [r4, #0x10]
- asr r0, r0, #0xc
- strh r0, [r4]
- ldr r0, [r4, #0x14]
- asr r0, r0, #0xc
- strh r0, [r4, #2]
- mov r0, #1
- pop {r4, pc}
-_02218258:
- mov r0, #0
- pop {r4, pc}
-
- thumb_func_start MOD08_0221825C
-MOD08_0221825C: ; 0x0221825C
- push {r4, r5, r6, lr}
- add r5, r0, #0
- mov r0, #0
- ldrsh r0, [r5, r0]
- add r4, r1, #0
- add r6, r2, #0
- bl _fflt
- ldr r1, _02218288 ; =0x43800000
- bl _fdiv
- str r0, [r4]
- mov r0, #2
- ldrsh r0, [r5, r0]
- bl _fflt
- ldr r1, _02218288 ; =0x43800000
- bl _fdiv
- str r0, [r6]
- pop {r4, r5, r6, pc}
- nop
-_02218288: .word 0x43800000
-
- thumb_func_start MOD08_0221828C
-MOD08_0221828C: ; 0x0221828C
- push {r3, r4, lr}
- sub sp, #4
- lsl r1, r1, #1
- mov r0, #0x50
- sub r0, r0, r1
- lsl r4, r0, #0xc
- asr r1, r4, #0x1f
- add r0, r4, #0
- asr r3, r2, #0x1f
- bl _ll_mul
- mov r2, #2
- mov r3, #0
- lsl r2, r2, #0xa
- add r0, r0, r2
- adc r1, r3
- lsl r1, r1, #0x14
- lsr r0, r0, #0xc
- orr r0, r1
- lsl r1, r2, #9
- bl FX_Div
- sub r0, r4, r0
- add r1, sp, #0
- bl FX_Modf
- cmp r0, #0
- beq _022182CA
- mov r1, #2
- lsl r1, r1, #0xa
- add r0, r0, r1
-_022182CA:
- ldr r1, [sp]
- add r0, r1, r0
- asr r1, r0, #0xc
- lsr r0, r1, #0x1f
- add r0, r1, r0
- lsl r0, r0, #0xf
- asr r0, r0, #0x10
- add sp, #4
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_022182DC
-MOD08_022182DC: ; 0x022182DC
- push {r4, r5, r6, lr}
- add r6, r2, #0
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- add r1, r6, #0
- add r2, r3, #0
- bl MOD08_0221828C
- add r2, r0, #0
- ldr r0, [sp, #0x10]
- cmp r0, #1
- bne _02218306
- mov r0, #0
- mvn r0, r0
- mul r0, r2
- lsl r0, r0, #0x10
- asr r2, r0, #0x10
- sub r0, r4, r6
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
-_02218306:
- add r0, r5, #0
- mov r1, #1
- add r2, r4, r2
- bl FUN_02007558
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218314
-MOD08_02218314: ; 0x02218314
- push {r3, r4, r5, r6, r7, lr}
- add r7, r2, #0
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- add r1, r7, #0
- add r2, r3, #0
- bl MOD08_0221828C
- add r4, r0, #0
- ldr r0, [sp, #0x18]
- cmp r0, #1
- bne _0221833E
- mov r0, #0
- mvn r0, r0
- mul r0, r4
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- sub r0, r5, r7
- lsl r0, r0, #0x10
- asr r5, r0, #0x10
-_0221833E:
- add r1, sp, #0
- add r0, r6, #0
- add r1, #2
- add r2, sp, #0
- bl FUN_0200C7A0
- add r2, sp, #0
- mov r1, #2
- ldrsh r1, [r2, r1]
- add r2, r5, r4
- lsl r2, r2, #0x10
- add r0, r6, #0
- asr r2, r2, #0x10
- bl FUN_0200C714
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218360
-MOD08_02218360: ; 0x02218360
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD08_02218170
- cmp r0, #0
- beq _0221837A
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02217CB4
- mov r0, #1
- pop {r3, r4, r5, pc}
-_0221837A:
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218380
-MOD08_02218380: ; 0x02218380
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD08_02218170
- cmp r0, #0
- beq _0221839A
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02217CF4
- mov r0, #1
- pop {r3, r4, r5, pc}
-_0221839A:
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022183A0
-MOD08_022183A0: ; 0x022183A0
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD08_02218224
- cmp r0, #0
- beq _022183BA
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02217CF4
- mov r0, #1
- pop {r3, r4, r5, pc}
-_022183BA:
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022183C0
-MOD08_022183C0: ; 0x022183C0
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r6, r1, #0
- add r4, r2, #0
- add r7, r3, #0
- cmp r5, #0
- bne _022183D2
- bl ErrorHandling
-_022183D2:
- str r7, [r5, #4]
- ldr r0, [sp, #0x18]
- str r7, [r5, #8]
- str r0, [r5, #0xc]
- mov r1, #0
- str r1, [r5, #0x10]
- str r6, [r5, #0x14]
- str r4, [r5, #0x18]
- neg r0, r6
- str r0, [r5, #0x1c]
- neg r0, r4
- str r0, [r5, #0x20]
- strh r1, [r5]
- strh r1, [r5, #2]
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_022183F0
-MOD08_022183F0: ; 0x022183F0
- push {r4, lr}
- add r4, r0, #0
- bne _022183FA
- bl ErrorHandling
-_022183FA:
- ldr r0, [r4, #0xc]
- cmp r0, #0
- beq _0221844E
- ldr r0, [r4, #4]
- add r1, r0, #1
- str r1, [r4, #4]
- ldr r0, [r4, #8]
- cmp r1, r0
- blt _0221844A
- mov r2, #0
- str r2, [r4, #4]
- ldrsh r0, [r4, r2]
- ldr r1, [r4, #0x1c]
- str r0, [r4, #0x1c]
- cmp r1, #0
- bne _0221841E
- strh r2, [r4]
- b _02218422
-_0221841E:
- neg r0, r1
- strh r0, [r4]
-_02218422:
- mov r0, #2
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #0x20]
- str r0, [r4, #0x20]
- cmp r1, #0
- bne _02218432
- mov r0, #0
- b _02218434
-_02218432:
- neg r0, r1
-_02218434:
- strh r0, [r4, #2]
- ldr r0, [r4, #0x10]
- add r0, r0, #1
- str r0, [r4, #0x10]
- cmp r0, #4
- blt _0221844A
- mov r0, #0
- str r0, [r4, #0x10]
- ldr r0, [r4, #0xc]
- sub r0, r0, #1
- str r0, [r4, #0xc]
-_0221844A:
- mov r0, #1
- pop {r4, pc}
-_0221844E:
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218454
-MOD08_02218454: ; 0x02218454
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r4, r1, #0
- add r6, r2, #0
- add r7, r3, #0
- bl MOD08_022183F0
- cmp r0, #0
- beq _02218476
- add r0, r5, #0
- add r1, r7, #0
- add r2, r4, #0
- add r3, r6, #0
- bl MOD08_02217CD0
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_02218476:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221847C
-MOD08_0221847C: ; 0x0221847C
- push {r3, r4, r5, r6, r7, lr}
- mov ip, r1
- str r0, [sp]
- strh r3, [r0]
- add r0, sp, #8
- mov r1, #0x10
- ldrsh r3, [r0, r1]
- ldr r1, [sp]
- mov r6, #0
- strh r3, [r1, #2]
- add r1, #0x94
- str r2, [r1]
- ldr r1, [sp]
- ldrh r2, [r0, #0x14]
- add r1, #0xa8
- strh r2, [r1]
- ldr r1, [sp]
- add r1, #0xaa
- strh r6, [r1]
- ldr r1, [sp]
- ldrb r7, [r0, #0x18]
- add r1, #0xac
- strb r7, [r1]
- ldr r1, [sp]
- add r1, #0xad
- strb r6, [r1]
- ldrb r1, [r0, #0x1c]
- ldr r0, [sp]
- add r0, #0xae
- strb r1, [r0]
- cmp r7, #0
- ble _022184D8
- ldr r5, [sp]
-_022184BE:
- mov r4, ip
- add r3, r5, #4
- mov r2, #4
-_022184C4:
- ldmia r4!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _022184C4
- ldr r0, [r4]
- add r6, r6, #1
- str r0, [r3]
- add r5, #0x24
- cmp r6, r7
- blt _022184BE
-_022184D8:
- ldr r0, [sp]
- ldr r1, [sp, #0x28]
- add r0, #0x98
- str r1, [r0]
- ldr r0, [sp]
- ldr r1, [sp, #0x2c]
- add r0, #0x9c
- str r1, [r0]
- ldr r0, [sp]
- ldr r1, [sp, #0x30]
- add r0, #0xa0
- str r1, [r0]
- ldr r0, [sp]
- ldr r1, [sp, #0x34]
- add r0, #0xa4
- str r1, [r0]
- ldr r0, [sp]
- mov r5, #0
- add r0, #0xac
- ldrb r0, [r0]
- cmp r0, #0
- ble _02218522
- ldr r4, [sp]
- add r6, r5, #0
-_02218508:
- add r0, r4, #0
- add r0, #0x98
- ldr r0, [r0]
- add r1, r6, #0
- bl FUN_0200C644
- ldr r0, [sp]
- add r5, r5, #1
- add r0, #0xac
- ldrb r0, [r0]
- add r4, r4, #4
- cmp r5, r0
- blt _02218508
-_02218522:
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02218524
-MOD08_02218524: ; 0x02218524
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x20
- add r5, r0, #0
- mov r0, #0
- add r2, sp, #0x10
- mov r1, #1
-_02218530:
- add r0, r0, #1
- stmia r2!, {r1}
- cmp r0, #4
- blt _02218530
- add r0, r5, #0
- add r0, #0xa8
- ldrh r2, [r0]
- add r0, r5, #0
- add r0, #0xaa
- ldrh r0, [r0]
- cmp r2, r0
- bhi _02218570
- add r0, r5, #0
- add r0, #0xad
- ldrb r0, [r0]
- lsl r0, r0, #2
- add r0, r5, r0
- add r0, #0x98
- ldr r0, [r0]
- bl FUN_0200C644
- add r0, r5, #0
- add r0, #0xad
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r5, #0
- add r0, #0xad
- strb r1, [r0]
- add r0, r5, #0
- mov r1, #0
- add r0, #0xaa
- strh r1, [r0]
-_02218570:
- add r0, r5, #0
- add r0, #0xad
- ldrb r1, [r0]
- add r0, r5, #0
- add r0, #0xac
- ldrb r0, [r0]
- cmp r1, r0
- bhs _0221858E
- add r0, r5, #0
- add r0, #0xaa
- ldrh r0, [r0]
- add r1, r0, #1
- add r0, r5, #0
- add r0, #0xaa
- strh r1, [r0]
-_0221858E:
- mov r0, #0
- str r0, [sp]
- add r0, r5, #0
- add r0, #0xad
- ldrb r0, [r0]
- cmp r0, #0
- ble _0221862E
- add r0, sp, #0x10
- add r7, r5, #4
- str r0, [sp, #4]
- add r6, r5, #0
- add r4, r5, #0
-_022185A6:
- add r1, r5, #0
- add r1, #0x94
- ldr r1, [r1]
- add r0, r7, #0
- blx r1
- ldr r1, [sp, #4]
- cmp r0, #0
- str r0, [r1]
- beq _02218604
- add r0, r5, #0
- add r0, #0xae
- ldrb r0, [r0]
- cmp r0, #0
- bne _022185EA
- mov r1, #0
- mov r2, #4
- ldrsh r1, [r5, r1]
- ldrsh r2, [r6, r2]
- add r0, r4, #0
- add r0, #0x98
- add r1, r1, r2
- mov r2, #2
- ldrsh r3, [r5, r2]
- mov r2, #6
- ldrsh r2, [r6, r2]
- lsl r1, r1, #0x10
- ldr r0, [r0]
- add r2, r3, r2
- lsl r2, r2, #0x10
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl FUN_0200C714
- b _02218610
-_022185EA:
- add r0, r7, #0
- add r1, sp, #0xc
- add r2, sp, #8
- bl MOD08_0221825C
- add r0, r4, #0
- add r0, #0x98
- ldr r0, [r0]
- ldr r1, [sp, #0xc]
- ldr r2, [sp, #8]
- bl FUN_0200C884
- b _02218610
-_02218604:
- add r0, r4, #0
- add r0, #0x98
- ldr r0, [r0]
- mov r1, #0
- bl FUN_0200C644
-_02218610:
- ldr r0, [sp, #4]
- add r7, #0x24
- add r0, r0, #4
- str r0, [sp, #4]
- ldr r0, [sp]
- add r6, #0x24
- add r0, r0, #1
- str r0, [sp]
- add r0, r5, #0
- add r0, #0xad
- ldrb r1, [r0]
- ldr r0, [sp]
- add r4, r4, #4
- cmp r0, r1
- blt _022185A6
-_0221862E:
- add r5, #0xac
- ldrb r2, [r5]
- mov r3, #0
- cmp r2, #0
- ble _0221864E
- add r1, sp, #0x10
-_0221863A:
- ldr r0, [r1]
- cmp r0, #1
- bne _02218646
- add sp, #0x20
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_02218646:
- add r3, r3, #1
- add r1, r1, #4
- cmp r3, r2
- blt _0221863A
-_0221864E:
- mov r0, #0
- add sp, #0x20
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02218654
-MOD08_02218654: ; 0x02218654
- push {r3, r4, r5, lr}
- sub sp, #0x10
- ldr r3, _02218684 ; =0x0000FFFF
- add r4, r1, #0
- mov r1, #2
- str r3, [sp]
- lsl r1, r1, #0x10
- str r1, [sp, #4]
- ldr r1, _02218688 ; =0xFFFF8000
- add r5, r0, #0
- str r1, [sp, #8]
- str r2, [sp, #0xc]
- mov r1, #0
- add r2, r3, #0
- add r3, r1, #0
- bl MOD08_02217D14
- ldr r0, [r5, #4]
- add r1, r0, #0
- mul r1, r4
- str r1, [r5, #4]
- add sp, #0x10
- pop {r3, r4, r5, pc}
- nop
-_02218684: .word 0x0000FFFF
-_02218688: .word 0xFFFF8000
-
- thumb_func_start MOD08_0221868C
-MOD08_0221868C: ; 0x0221868C
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02217ECC
- cmp r0, #0
- bne _022186A8
- mov r0, #1
- str r0, [r4, #0x24]
- add r0, r5, #0
- bl FUN_0200CAB4
- pop {r3, r4, r5, pc}
-_022186A8:
- mov r0, #0
- ldrsh r1, [r4, r0]
- cmp r1, #0
- bge _022186B2
- strh r0, [r4]
-_022186B2:
- mov r0, #2
- ldrsh r0, [r4, r0]
- cmp r0, #0
- bge _022186BE
- mov r0, #0
- strh r0, [r4, #2]
-_022186BE:
- mov r0, #0
- ldrsh r1, [r4, r0]
- mov r0, #2
- ldrsh r0, [r4, r0]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _022186D0 ; =0x04000052
- strh r1, [r0]
- pop {r3, r4, r5, pc}
- .align 2, 0
-_022186D0: .word 0x04000052
-
- thumb_func_start MOD08_022186D4
-MOD08_022186D4: ; 0x022186D4
- push {r4, r5, r6, lr}
- sub sp, #8
- add r6, sp, #8
- mov r5, #0x10
- ldrsh r5, [r6, r5]
- add r4, r0, #0
- str r5, [sp]
- ldr r5, [sp, #0x1c]
- lsl r5, r5, #0x10
- lsr r5, r5, #0x10
- str r5, [sp, #4]
- bl MOD08_02217E80
- mov r2, #0
- ldr r0, _02218700 ; =MOD08_0221868C
- add r1, r4, #0
- str r2, [r4, #0x24]
- bl FUN_0200CA44
- add sp, #8
- pop {r4, r5, r6, pc}
- nop
-_02218700: .word MOD08_0221868C
-
- thumb_func_start MOD08_02218704
-MOD08_02218704: ; 0x02218704
- ldr r0, [r0, #0x24]
- bx lr
-
- thumb_func_start MOD08_02218708
-MOD08_02218708: ; 0x02218708
- push {r3, lr}
- ldr r0, [r1, #8]
- cmp r0, #0
- beq _0221871C
- mov r0, #1
- str r0, [r1, #0xc]
- ldr r0, [r1, #0x18]
- ldr r1, [r1, #0x10]
- blx r1
- pop {r3, pc}
-_0221871C:
- bl FUN_020129C8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218724
-MOD08_02218724: ; 0x02218724
- push {r4, lr}
- add r4, r1, #0
- ldr r0, [r4, #8]
- cmp r0, #0
- beq _0221873E
- ldr r0, [r4, #0xc]
- cmp r0, #0
- beq _0221873E
- ldr r0, [r4, #0x18]
- ldr r1, [r4, #0x14]
- blx r1
- mov r0, #0
- str r0, [r4, #0xc]
-_0221873E:
- pop {r4, pc}
-
- thumb_func_start MOD08_02218740
-MOD08_02218740: ; 0x02218740
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r4, r1, #0
- add r6, r2, #0
- add r7, r3, #0
- cmp r5, #0
- bne _02218752
- bl ErrorHandling
-_02218752:
- mov r0, #1
- str r0, [r5, #8]
- mov r2, #0
- str r2, [r5, #0xc]
- str r4, [r5, #0x18]
- str r6, [r5, #0x10]
- ldr r0, _02218778 ; =MOD08_02218708
- str r7, [r5, #0x14]
- add r1, r5, #0
- bl FUN_0200CA98
- str r0, [r5, #4]
- ldr r0, _0221877C ; =MOD08_02218724
- add r1, r5, #0
- mov r2, #0
- bl FUN_0200CA60
- str r0, [r5]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02218778: .word MOD08_02218708
-_0221877C: .word MOD08_02218724
-
- thumb_func_start MOD08_02218780
-MOD08_02218780: ; 0x02218780
- push {r4, lr}
- add r4, r0, #0
- bne _0221878A
- bl ErrorHandling
-_0221878A:
- ldr r0, [r4, #4]
- cmp r0, #0
- beq _02218794
- bl FUN_0200CAB4
-_02218794:
- ldr r0, [r4]
- cmp r0, #0
- beq _0221879E
- bl FUN_0200CAB4
-_0221879E:
- bl FUN_020129C8
- pop {r4, pc}
-
- thumb_func_start MOD08_022187A4
-MOD08_022187A4: ; 0x022187A4
- push {r4, lr}
- add r4, r0, #0
- bne _022187AE
- bl ErrorHandling
-_022187AE:
- mov r0, #0
- str r0, [r4, #8]
- pop {r4, pc}
-
- thumb_func_start MOD08_022187B4
-MOD08_022187B4: ; 0x022187B4
- push {r3, r4, r5, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x1c]
- bl FUN_0201299C
- add r5, r0, #0
- bl FUN_020129C8
- mov r1, #0x62
- lsl r1, r1, #4
- ldr r1, [r4, r1]
- add r0, r5, #0
- mov r2, #4
- mov r3, #1
- bl FUN_020129D8
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022187D8
-MOD08_022187D8: ; 0x022187D8
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x1c]
- bl FUN_020129B4
- add r0, r4, #0
- bl MOD08_022187B4
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022187EC
-MOD08_022187EC: ; 0x022187EC
- ldr r3, _022187F0 ; =MOD08_022187B4
- bx r3
- .align 2, 0
-_022187F0: .word MOD08_022187B4
-
- thumb_func_start MOD08_022187F4
-MOD08_022187F4: ; 0x022187F4
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- add r7, r2, #0
- add r5, r0, #0
- ldr r1, _02218864 ; =0x00000624
- add r0, r7, #0
- bl AllocFromHeap
- ldr r2, _02218864 ; =0x00000624
- mov r1, #0
- add r4, r0, #0
- bl memset
- cmp r4, #0
- bne _02218816
- bl ErrorHandling
-_02218816:
- mov r2, #0x32
- add r1, r4, #0
- lsl r2, r2, #4
- add r0, r7, #0
- add r1, #0x20
- add r2, r4, r2
- bl FUN_02012944
- str r0, [r4, #0x1c]
- cmp r0, #0
- bne _02218830
- bl ErrorHandling
-_02218830:
- mov r0, #0x62
- lsl r0, r0, #4
- add r1, r4, #0
- mov r2, #3
- str r5, [r4, r0]
- add r0, r6, #0
- add r1, #0x20
- lsl r2, r2, #8
- bl MIi_CpuClear32
- mov r2, #0x32
- lsl r2, r2, #4
- add r1, r4, r2
- add r0, r6, #0
- sub r2, #0x20
- bl MIi_CpuClear32
- ldr r2, _02218868 ; =MOD08_022187D8
- ldr r3, _0221886C ; =MOD08_022187EC
- add r0, r4, #0
- add r1, r4, #0
- bl MOD08_02218740
- add r0, r4, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02218864: .word 0x00000624
-_02218868: .word MOD08_022187D8
-_0221886C: .word MOD08_022187EC
-
- thumb_func_start MOD08_02218870
-MOD08_02218870: ; 0x02218870
- push {r4, lr}
- add r4, r0, #0
- bne _0221887A
- bl ErrorHandling
-_0221887A:
- add r0, r4, #0
- bl MOD08_02218780
- ldr r0, [r4, #0x1c]
- cmp r0, #0
- beq _0221888A
- bl FUN_02012974
-_0221888A:
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218894
-MOD08_02218894: ; 0x02218894
- push {r4, lr}
- add r4, r0, #0
- bne _0221889E
- bl ErrorHandling
-_0221889E:
- ldr r0, [r4, #0x1c]
- bl FUN_02012988
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022188A8
-MOD08_022188A8: ; 0x022188A8
- push {r4, lr}
- add r4, r0, #0
- bne _022188B2
- bl ErrorHandling
-_022188B2:
- add r0, r4, #0
- bl MOD08_022187A4
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022188BC
-MOD08_022188BC: ; 0x022188BC
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x1c]
- bl FUN_02012B30
- ldr r0, [r4, #0x1c]
- bl FUN_02012B68
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022188D0
-MOD08_022188D0: ; 0x022188D0
- ldr r3, _022188D8 ; =FUN_02012B68
- ldr r0, [r0, #0x1c]
- bx r3
- nop
-_022188D8: .word FUN_02012B68
-
- thumb_func_start MOD08_022188DC
-MOD08_022188DC: ; 0x022188DC
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- add r7, r0, #0
- str r1, [sp, #0x14]
- ldr r0, [sp, #0x40]
- mov r1, #0x20
- str r2, [sp, #0x18]
- add r5, r3, #0
- bl AllocFromHeap
- add r4, r0, #0
- bne _022188F8
- bl ErrorHandling
-_022188F8:
- add r0, r4, #0
- mov r1, #0
- mov r2, #0x20
- bl memset
- ldr r0, [sp, #0x34]
- bl MOD08_022189A0
- add r6, r0, #0
- ldr r0, [sp, #0x40]
- bl FUN_02012A00
- str r0, [r4, #0x1c]
- str r5, [sp]
- add r1, sp, #0x20
- mov r0, #0x10
- ldrsh r0, [r1, r0]
- add r1, r7, #0
- str r0, [sp, #4]
- ldr r0, [sp, #0x3c]
- str r6, [sp, #8]
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x38]
- str r0, [sp, #0x10]
- ldr r0, [r4, #0x1c]
- ldr r2, [sp, #0x14]
- ldr r3, [sp, #0x18]
- bl FUN_02012A30
- ldr r2, _02218944 ; =MOD08_022188BC
- ldr r3, _02218948 ; =MOD08_022188D0
- add r0, r4, #0
- add r1, r4, #0
- bl MOD08_02218740
- add r0, r4, #0
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02218944: .word MOD08_022188BC
-_02218948: .word MOD08_022188D0
-
- thumb_func_start MOD08_0221894C
-MOD08_0221894C: ; 0x0221894C
- push {r4, lr}
- add r4, r0, #0
- bne _02218956
- bl ErrorHandling
-_02218956:
- add r0, r4, #0
- bl MOD08_02218780
- ldr r0, [r4, #0x1c]
- cmp r0, #0
- beq _02218966
- bl FUN_02012B00
-_02218966:
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218970
-MOD08_02218970: ; 0x02218970
- push {r4, lr}
- add r4, r0, #0
- bne _0221897A
- bl ErrorHandling
-_0221897A:
- ldr r0, [r4, #0x1c]
- bl FUN_02012B20
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218984
-MOD08_02218984: ; 0x02218984
- push {r4, lr}
- add r4, r0, #0
- bne _0221898E
- bl ErrorHandling
-_0221898E:
- add r0, r4, #0
- bl MOD08_022187A4
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218998
-MOD08_02218998: ; 0x02218998
- lsl r1, r1, #0x10
- orr r0, r1
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_022189A0
-MOD08_022189A0: ; 0x022189A0
- cmp r0, #3
- bhi _022189C6
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_022189B0: ; jump table
- .short _022189B8 - _022189B0 - 2 ; case 0
- .short _022189BC - _022189B0 - 2 ; case 1
- .short _022189C0 - _022189B0 - 2 ; case 2
- .short _022189C4 - _022189B0 - 2 ; case 3
-_022189B8:
- ldr r0, _022189C8 ; =0x04000010
- bx lr
-_022189BC:
- ldr r0, _022189CC ; =0x04000014
- bx lr
-_022189C0:
- ldr r0, _022189D0 ; =0x04000018
- bx lr
-_022189C4:
- ldr r0, _022189D4 ; =0x0400001C
-_022189C6:
- bx lr
- .align 2, 0
-_022189C8: .word 0x04000010
-_022189CC: .word 0x04000014
-_022189D0: .word 0x04000018
-_022189D4: .word 0x0400001C
-
- thumb_func_start MOD08_022189D8
-MOD08_022189D8: ; 0x022189D8
- add r2, r0, r2
- lsr r0, r2, #0x1f
- add r0, r2, r0
- asr r2, r0, #1
- ldr r0, [sp]
- add r1, r1, r3
- strh r2, [r0]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r1, r0, #1
- ldr r0, [sp, #4]
- strh r1, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_022189F4
-MOD08_022189F4: ; 0x022189F4
- push {r3, lr}
- sub r1, r1, r3
- neg r1, r1
- sub r0, r0, r2
- lsl r1, r1, #0x10
- lsl r0, r0, #0x10
- asr r1, r1, #0x10
- add r2, r1, #0
- asr r0, r0, #0x10
- mul r2, r1
- add r1, r0, #0
- mul r1, r0
- add r0, r2, r1
- lsl r0, r0, #0xc
- bl FX_Sqrt
- ldr r1, [sp, #8]
- str r0, [r1]
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218A1C
-MOD08_02218A1C: ; 0x02218A1C
- push {r4, r5, r6, lr}
- add r6, r0, #0
- sub r0, r1, r3
- neg r0, r0
- lsl r0, r0, #0x10
- sub r1, r6, r2
- asr r4, r0, #0x10
- lsl r1, r1, #0x10
- ldr r5, [sp, #0x10]
- lsl r0, r4, #0xc
- asr r1, r1, #4
- bl FX_Atan2
- strh r0, [r5]
- ldrh r1, [r5]
- cmp r1, #0
- beq _02218A4C
- cmp r4, #0
- bge _02218A4C
- ldr r0, _02218A50 ; =0x00007FFF
- sub r1, r1, r0
- ldr r0, _02218A54 ; =0x0000FFFF
- mul r0, r1
- strh r0, [r5]
-_02218A4C:
- pop {r4, r5, r6, pc}
- nop
-_02218A50: .word 0x00007FFF
-_02218A54: .word 0x0000FFFF
-
- thumb_func_start MOD08_02218A58
-MOD08_02218A58: ; 0x02218A58
- cmp r2, #0
- ldr r3, [r0]
- bge _02218A70
- add r2, r3, r2
- cmp r2, r1
- ble _02218A6A
- str r2, [r0]
- mov r0, #0
- bx lr
-_02218A6A:
- str r1, [r0]
- mov r0, #1
- bx lr
-_02218A70:
- add r2, r3, r2
- cmp r2, r1
- bge _02218A7C
- str r2, [r0]
- mov r0, #0
- bx lr
-_02218A7C:
- str r1, [r0]
- mov r0, #1
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02218A84
-MOD08_02218A84: ; 0x02218A84
- push {r4, lr}
- sub sp, #8
- add r4, r1, #0
- ldr r0, [r4]
- cmp r0, #0
- beq _02218AF4
- mov r0, #0x17
- ldrsb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, #0x17]
- ldrsb r1, [r4, r0]
- mov r0, #0x16
- ldrsb r0, [r4, r0]
- cmp r1, r0
- blt _02218AF4
- mov r0, #0
- strb r0, [r4, #0x17]
- ldrb r0, [r4, #0x14]
- str r0, [sp]
- ldrh r0, [r4, #0x10]
- str r0, [sp, #4]
- ldrh r2, [r4, #0xc]
- ldrh r3, [r4, #0xe]
- ldr r0, [r4, #0x18]
- ldr r1, [r4, #8]
- bl FUN_020039E8
- ldrb r3, [r4, #0x13]
- ldrb r1, [r4, #0x14]
- cmp r1, r3
- bne _02218ACA
- mov r0, #0
- add sp, #8
- str r0, [r4]
- pop {r4, pc}
-_02218ACA:
- mov r0, #0x15
- ldrsb r2, [r4, r0]
- add r1, r1, r2
- lsl r0, r1, #0x18
- asr r0, r0, #0x18
- cmp r2, #0
- ble _02218AE8
- cmp r0, r3
- ble _02218AE2
- add sp, #8
- strb r3, [r4, #0x14]
- pop {r4, pc}
-_02218AE2:
- add sp, #8
- strb r1, [r4, #0x14]
- pop {r4, pc}
-_02218AE8:
- cmp r0, r3
- bge _02218AF2
- add sp, #8
- strb r3, [r4, #0x14]
- pop {r4, pc}
-_02218AF2:
- strb r1, [r4, #0x14]
-_02218AF4:
- add sp, #8
- pop {r4, pc}
-
- thumb_func_start MOD08_02218AF8
-MOD08_02218AF8: ; 0x02218AF8
- push {r4, lr}
- add r4, r0, #0
- bne _02218B02
- bl ErrorHandling
-_02218B02:
- ldr r0, [r4]
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218B08
-MOD08_02218B08: ; 0x02218B08
- push {r4, lr}
- add r4, r0, #0
- bne _02218B12
- bl ErrorHandling
-_02218B12:
- ldr r0, [r4, #4]
- bl FUN_0200CAB4
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
-
- thumb_func_start MOD08_02218B20
-MOD08_02218B20: ; 0x02218B20
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r0, r1, #0
- mov r1, #0x1c
- add r6, r2, #0
- add r7, r3, #0
- bl AllocFromHeap
- add r4, r0, #0
- bne _02218B38
- bl ErrorHandling
-_02218B38:
- str r5, [r4, #0x18]
- str r6, [r4, #8]
- strh r7, [r4, #0xc]
- add r1, sp, #8
- ldrh r0, [r1, #0x10]
- strh r0, [r4, #0xe]
- ldrh r0, [r1, #0x24]
- strh r0, [r4, #0x10]
- ldrb r2, [r1, #0x1c]
- add r0, sp, #0x28
- ldrb r0, [r0]
- strb r2, [r4, #0x12]
- strb r0, [r4, #0x13]
- strb r2, [r4, #0x14]
- mov r0, #0x14
- ldrsb r0, [r1, r0]
- strb r0, [r4, #0x16]
- strb r0, [r4, #0x17]
- ldrb r2, [r4, #0x12]
- ldrb r0, [r4, #0x13]
- cmp r2, r0
- bhs _02218B6A
- mov r0, #0x18
- ldrsb r0, [r1, r0]
- b _02218B70
-_02218B6A:
- mov r0, #0x18
- ldrsb r0, [r1, r0]
- neg r0, r0
-_02218B70:
- strb r0, [r4, #0x15]
- mov r0, #1
- str r0, [r4]
- ldr r0, _02218B88 ; =MOD08_02218A84
- ldr r2, [sp, #0x30]
- add r1, r4, #0
- bl FUN_0200CA44
- str r0, [r4, #4]
- add r0, r4, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02218B88: .word MOD08_02218A84
-
- thumb_func_start MOD08_02218B8C
-MOD08_02218B8C: ; 0x02218B8C
- push {r4, r5, r6, r7}
- mov r7, #0
- cmp r1, #0
- ble _02218BCE
- mov r2, #0x97
-_02218B96:
- ldrh r6, [r0]
- mov r3, #0x1f
- add r7, r7, #1
- asr r4, r6, #0xa
- and r4, r3
- add r5, r4, #0
- mov r3, #0x1d
- mul r5, r3
- mov r3, #0x1f
- and r3, r6
- mov r4, #0x4c
- mul r4, r3
- asr r6, r6, #5
- mov r3, #0x1f
- and r3, r6
- add r6, r3, #0
- mul r6, r2
- add r3, r4, r6
- add r3, r5, r3
- asr r5, r3, #8
- lsl r4, r5, #0xa
- lsl r3, r5, #5
- orr r3, r4
- orr r3, r5
- strh r3, [r0]
- add r0, r0, #2
- cmp r7, r1
- blt _02218B96
-_02218BCE:
- pop {r4, r5, r6, r7}
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02218BD4
-MOD08_02218BD4: ; 0x02218BD4
- push {r3, r4, r5, lr}
- add r5, r0, #0
- bl MOD08_02215504
- mov r1, #0
- bl FUN_02003204
- add r4, r0, #0
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _02218BF8
- add r0, r4, #0
- mov r1, #0x30
- bl MOD08_02218B8C
- pop {r3, r4, r5, pc}
-_02218BF8:
- add r0, r4, #0
- mov r1, #0x80
- bl MOD08_02218B8C
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218C04
-MOD08_02218C04: ; 0x02218C04
- push {r3, r4, r5, lr}
- sub sp, #8
- add r5, r0, #0
- bl MOD08_02215504
- add r4, r0, #0
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _02218C30
- mov r1, #0
- str r1, [sp]
- mov r0, #0x60
- str r0, [sp, #4]
- add r0, r4, #0
- add r2, r1, #0
- add r3, r1, #0
- bl FUN_020031B8
- add sp, #8
- pop {r3, r4, r5, pc}
-_02218C30:
- mov r1, #0
- mov r0, #1
- str r1, [sp]
- lsl r0, r0, #8
- str r0, [sp, #4]
- add r0, r4, #0
- add r2, r1, #0
- add r3, r1, #0
- bl FUN_020031B8
- add sp, #8
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02218C48
-MOD08_02218C48: ; 0x02218C48
- cmp r0, #0x54
- blo _02218C50
- mov r0, #0
- bx lr
-_02218C50:
- lsl r1, r0, #2
- ldr r0, _02218C58 ; =0x0222C384
- ldr r0, [r0, r1]
- bx lr
- .align 2, 0
-_02218C58: .word 0x0222C384
-
- thumb_func_start MOD08_02218C5C
-MOD08_02218C5C: ; 0x02218C5C
- cmp r0, #0x21
- blo _02218C64
- mov r0, #0
- bx lr
-_02218C64:
- lsl r1, r0, #2
- ldr r0, _02218C6C ; =0x0222C300
- ldr r0, [r0, r1]
- bx lr
- .align 2, 0
-_02218C6C: .word 0x0222C300
-
- thumb_func_start MOD08_02218C70
-MOD08_02218C70: ; 0x02218C70
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02218C74
-MOD08_02218C74: ; 0x02218C74
- push {r4, lr}
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _02218C86
- cmp r0, #1
- beq _02218C8C
- pop {r4, pc}
-_02218C86:
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, pc}
-_02218C8C:
- ldr r0, [r4, #4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
-
- thumb_func_start MOD08_02218C9C
-MOD08_02218C9C: ; 0x02218C9C
- push {r4, lr}
- add r4, r0, #0
- mov r0, #5
- mov r1, #8
- bl AllocFromHeap
- add r2, r0, #0
- mov r0, #0
- strb r0, [r2]
- mov r3, #1
- ldr r1, _02218CC0 ; =MOD08_02218C74
- add r0, r4, #0
- lsl r3, r3, #0xc
- str r4, [r2, #4]
- bl MOD08_022123E4
- pop {r4, pc}
- nop
-_02218CC0: .word MOD08_02218C74
-
- thumb_func_start MOD08_02218CC4
-MOD08_02218CC4: ; 0x02218CC4
- push {r4, lr}
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _02218CD6
- cmp r0, #1
- beq _02218CDC
- pop {r4, pc}
-_02218CD6:
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, pc}
-_02218CDC:
- ldr r0, [r4, #4]
- add r1, r2, #0
- bl MOD08_02212448
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
-
- thumb_func_start MOD08_02218CEC
-MOD08_02218CEC: ; 0x02218CEC
- push {r4, lr}
- add r4, r0, #0
- mov r0, #5
- mov r1, #8
- bl AllocFromHeap
- add r2, r0, #0
- mov r0, #0
- strb r0, [r2]
- mov r3, #1
- ldr r1, _02218D10 ; =MOD08_02218CC4
- add r0, r4, #0
- lsl r3, r3, #0xc
- str r4, [r2, #4]
- bl MOD08_0221241C
- pop {r4, pc}
- nop
-_02218D10: .word MOD08_02218CC4
-
- thumb_func_start MOD08_02218D14
-MOD08_02218D14: ; 0x02218D14
- push {r4, lr}
- add r4, r1, #0
- ldrb r1, [r4]
- cmp r1, #0
- beq _02218D24
- cmp r1, #1
- beq _02218D2A
- pop {r4, pc}
-_02218D24:
- add r0, r1, #1
- strb r0, [r4]
- pop {r4, pc}
-_02218D2A:
- bl FUN_0200CAB4
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218D38
-MOD08_02218D38: ; 0x02218D38
- push {r4, lr}
- add r4, r0, #0
- mov r0, #5
- mov r1, #8
- bl AllocFromHeap
- add r1, r0, #0
- mov r0, #0
- strb r0, [r1]
- mov r2, #1
- ldr r0, _02218D58 ; =MOD08_02218D14
- lsl r2, r2, #0xc
- str r4, [r1, #4]
- bl FUN_0200CA44
- pop {r4, pc}
- .align 2, 0
-_02218D58: .word MOD08_02218D14
-
- thumb_func_start MOD08_02218D5C
-MOD08_02218D5C: ; 0x02218D5C
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r6, r0, #0
- ldrb r0, [r5]
- cmp r0, #0
- beq _02218D6E
- cmp r0, #1
- beq _02218DB4
- pop {r4, r5, r6, pc}
-_02218D6E:
- ldr r0, [r5, #0x14]
- ldr r0, [r0]
- bl FUN_0200C59C
- ldr r0, [r5, #0x18]
- ldr r0, [r0]
- bl FUN_0200C59C
- ldr r0, [r5, #0x1c]
- ldr r0, [r0]
- bl FUN_0200C59C
- ldr r0, [r5, #0x14]
- mov r1, #1
- ldr r0, [r0]
- mov r2, #0
- bl FUN_0200C7FC
- ldr r0, [r5, #0x18]
- mov r1, #0
- ldr r0, [r0]
- mvn r1, r1
- mov r2, #0
- bl FUN_0200C7FC
- ldr r0, [r5, #0x1c]
- mov r1, #1
- ldr r0, [r0]
- add r2, r1, #0
- bl FUN_0200C7FC
- ldr r0, [r5, #0xc]
- bl FUN_0200BC1C
- pop {r4, r5, r6, pc}
-_02218DB4:
- ldr r0, [r5, #0x10]
- ldr r4, [r5, #4]
- bl FUN_0200C3DC
- add r0, r5, #0
- bl FreeToHeap
- add r0, r4, #0
- add r1, r6, #0
- bl MOD08_02212438
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_02218DCC
-MOD08_02218DCC: ; 0x02218DCC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x38
- add r6, r1, #0
- mov r1, #0x73
- str r0, [sp]
- mov r0, #5
- lsl r1, r1, #2
- add r7, r2, #0
- add r5, r3, #0
- bl AllocFromHeap
- add r4, r0, #0
- bne _02218DEA
- bl ErrorHandling
-_02218DEA:
- mov r0, #0
- strb r0, [r4]
- str r6, [r4, #8]
- str r7, [r4, #0xc]
- ldr r0, [sp]
- str r5, [r4, #0x10]
- str r0, [r4, #4]
- ldr r1, [sp]
- add r0, sp, #4
- bl MOD08_02215474
- str r5, [r4, #0x14]
- mov r6, #1
- add r5, r4, #4
- add r7, sp, #4
-_02218E08:
- ldr r0, [r4, #8]
- ldr r1, [r4, #0xc]
- add r2, r7, #0
- bl FUN_0200C154
- str r0, [r5, #0x14]
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #3
- blt _02218E08
- mov r3, #1
- ldr r0, [sp]
- ldr r1, _02218E30 ; =MOD08_02218D5C
- add r2, r4, #0
- lsl r3, r3, #0xc
- bl MOD08_022123E4
- add sp, #0x38
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02218E30: .word MOD08_02218D5C
-
- thumb_func_start MOD08_02218E34
-MOD08_02218E34: ; 0x02218E34
- push {r4, lr}
- mov r1, #0xc
- add r2, r1, #0
- add r2, #0xf4
- add r4, r0, #0
- bl FUN_02007558
- mov r1, #0xd
- add r2, r1, #0
- add r0, r4, #0
- add r2, #0xf3
- bl FUN_02007558
- pop {r4, pc}
-
- thumb_func_start MOD08_02218E50
-MOD08_02218E50: ; 0x02218E50
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r2, r0, #0
- ldrb r0, [r5, #4]
- cmp r0, #0
- beq _02218E62
- cmp r0, #1
- beq _02218E84
- b _02218F4E
-_02218E62:
- mov r0, #0x26
- ldrsh r0, [r5, r0]
- mov r1, #0x20
- mov r2, #0x22
- str r0, [sp]
- mov r3, #0x24
- add r0, r5, #0
- ldrsh r1, [r5, r1]
- ldrsh r2, [r5, r2]
- ldrsh r3, [r5, r3]
- add r0, #0x7c
- bl MOD08_022183C0
- ldrb r0, [r5, #4]
- add r0, r0, #1
- strb r0, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_02218E84:
- add r0, r5, #0
- add r0, #0x7c
- bl MOD08_022183F0
- cmp r0, #0
- bne _02218E98
- ldrb r0, [r5, #4]
- add r0, r0, #1
- strb r0, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_02218E98:
- ldr r2, [r5, #0x28]
- mov r1, #1
- lsl r1, r1, #8
- add r0, r2, #0
- and r0, r1
- cmp r0, r1
- bne _02218EE4
- ldr r0, [r5]
- mov r6, #0
- cmp r0, #0
- ble _02218F32
- add r4, r5, #0
- mov r7, #0x32
-_02218EB2:
- ldr r0, [r4, #0x34]
- cmp r0, #0
- beq _02218ED8
- mov r2, #0x7c
- mov r3, #0x30
- ldrsh r2, [r5, r2]
- ldrsh r3, [r4, r3]
- mov r1, #0
- add r2, r2, r3
- bl FUN_02007558
- mov r2, #0x7e
- ldrsh r3, [r5, r2]
- ldrsh r2, [r4, r7]
- ldr r0, [r4, #0x34]
- mov r1, #1
- add r2, r3, r2
- bl FUN_02007558
-_02218ED8:
- ldr r0, [r5]
- add r6, r6, #1
- add r4, #0x14
- cmp r6, r0
- blt _02218EB2
- b _02218F32
-_02218EE4:
- lsl r0, r1, #1
- and r2, r0
- cmp r2, r0
- bne _02218F32
- ldr r0, [r5]
- mov r6, #0
- cmp r0, #0
- ble _02218F2C
- add r4, r5, #0
- mov r7, #0x32
-_02218EF8:
- ldr r0, [r4, #0x38]
- cmp r0, #0
- beq _02218F22
- mov r1, #0x7c
- mov r2, #0x30
- ldrsh r1, [r5, r1]
- ldrsh r2, [r4, r2]
- add r1, r1, r2
- mov r2, #0x7e
- ldrsh r3, [r5, r2]
- ldrsh r2, [r4, r7]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add r2, r3, r2
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- bl FUN_0200C714
- ldr r0, [r4, #0x38]
- bl FUN_0200C5A8
-_02218F22:
- ldr r0, [r5]
- add r6, r6, #1
- add r4, #0x14
- cmp r6, r0
- blt _02218EF8
-_02218F2C:
- ldr r0, [r5, #0x10]
- bl FUN_0200BC1C
-_02218F32:
- mov r0, #1
- ldr r1, [r5, #0x28]
- lsl r0, r0, #0xa
- and r1, r0
- cmp r1, r0
- bne _02218F5C
- mov r3, #0x7c
- ldrsh r3, [r5, r3]
- ldr r0, [r5, #0x18]
- mov r1, #3
- mov r2, #0
- bl FUN_020179E0
- pop {r3, r4, r5, r6, r7, pc}
-_02218F4E:
- ldr r0, [r5, #8]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r5, #0
- bl FreeToHeap
-_02218F5C:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02218F60
-MOD08_02218F60: ; 0x02218F60
- push {r3, r4, r5, lr}
- mov r1, #0xa0
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #4
- bl MOD08_02227B70
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- strh r0, [r4, #0x20]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- strh r0, [r4, #0x22]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- strh r0, [r4, #0x24]
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- strh r0, [r4, #0x26]
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- mov r2, #1
- lsl r2, r2, #8
- str r0, [r4, #0x28]
- add r1, r0, #0
- and r0, r2
- cmp r0, r2
- bne _02218FC0
- add r2, r4, #0
- add r0, r5, #0
- add r2, #0x2c
- add r3, r4, #0
- bl MOD08_02227BAC
- b _02218FD6
-_02218FC0:
- lsl r0, r2, #1
- add r3, r1, #0
- and r3, r0
- cmp r3, r0
- bne _02218FD6
- add r2, r4, #0
- add r0, r5, #0
- add r2, #0x2c
- add r3, r4, #0
- bl MOD08_02227F88
-_02218FD6:
- ldr r0, [r4, #8]
- ldr r1, _02218FE4 ; =MOD08_02218E50
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, pc}
- nop
-_02218FE4: .word MOD08_02218E50
-
- thumb_func_start MOD08_02218FE8
-MOD08_02218FE8: ; 0x02218FE8
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4, #0x1c]
- cmp r0, #3
- bhi _022190B2
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02219000: ; jump table
- .short _02219008 - _02219000 - 2 ; case 0
- .short _02219026 - _02219000 - 2 ; case 1
- .short _02219068 - _02219000 - 2 ; case 2
- .short _02219074 - _02219000 - 2 ; case 3
-_02219008:
- ldrh r0, [r4, #0x18]
- mov r1, #4
- mov r2, #0x39
- str r0, [sp]
- ldrh r3, [r4, #0x16]
- ldr r0, _02219154 ; =0x04000050
- bl G2x_SetBlendAlpha_
- mov r0, #2
- mov r1, #1
- bl FUN_0201797C
- ldrb r0, [r4, #0x1c]
- add r0, r0, #1
- strb r0, [r4, #0x1c]
-_02219026:
- ldrh r1, [r4, #8]
- ldrh r2, [r4, #0x16]
- mov r0, #0
- sub r1, r1, #2
- cmp r2, r1
- bge _02219038
- add r1, r2, #2
- strh r1, [r4, #0x16]
- b _0221903A
-_02219038:
- add r0, r0, #1
-_0221903A:
- ldrh r1, [r4, #0x18]
- cmp r1, #9
- bls _02219046
- sub r1, r1, #2
- strh r1, [r4, #0x18]
- b _02219048
-_02219046:
- add r0, r0, #1
-_02219048:
- cmp r0, #2
- bne _0221905A
- ldrh r0, [r4, #8]
- strh r0, [r4, #0x16]
- mov r0, #7
- strh r0, [r4, #0x18]
- ldrb r0, [r4, #0x1c]
- add r0, r0, #1
- strb r0, [r4, #0x1c]
-_0221905A:
- ldrh r0, [r4, #0x18]
- ldrh r1, [r4, #0x16]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _02219158 ; =0x04000052
- strh r1, [r0]
- b _022190CA
-_02219068:
- ldr r1, [r4, #4]
- cmp r1, #0
- beq _022190CA
- add r0, r0, #1
- strb r0, [r4, #0x1c]
- b _022190CA
-_02219074:
- ldrh r0, [r4, #0x16]
- mov r1, #0
- cmp r0, #2
- bls _02219082
- sub r0, r0, #2
- strh r0, [r4, #0x16]
- b _02219084
-_02219082:
- add r1, r1, #1
-_02219084:
- ldrh r0, [r4, #0x18]
- cmp r0, #0x1d
- bhs _02219090
- add r0, r0, #2
- strh r0, [r4, #0x18]
- b _02219092
-_02219090:
- add r1, r1, #1
-_02219092:
- cmp r1, #2
- bne _022190A4
- mov r0, #0
- strh r0, [r4, #0x16]
- mov r0, #0x1f
- strh r0, [r4, #0x18]
- ldrb r0, [r4, #0x1c]
- add r0, r0, #1
- strb r0, [r4, #0x1c]
-_022190A4:
- ldrh r0, [r4, #0x18]
- ldrh r1, [r4, #0x16]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _02219158 ; =0x04000052
- strh r1, [r0]
- b _022190CA
-_022190B2:
- mov r0, #2
- mov r1, #0
- bl FUN_0201797C
- ldr r0, [r4, #0x20]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, pc}
-_022190CA:
- mov r1, #0x10
- ldrsh r3, [r4, r1]
- cmp r3, #0
- ble _022190DC
- mov r0, #0xc
- ldrsh r2, [r4, r0]
- lsl r0, r1, #5
- cmp r2, r0
- bge _022190EA
-_022190DC:
- cmp r3, #0
- bge _022190EE
- mov r0, #0xc
- ldrsh r1, [r4, r0]
- ldr r0, _0221915C ; =0xFFFFFE64
- cmp r1, r0
- bgt _022190EE
-_022190EA:
- mov r0, #1
- str r0, [r4, #4]
-_022190EE:
- mov r0, #0xa
- ldrsh r1, [r4, r0]
- mov r0, #0xe
- ldrsh r0, [r4, r0]
- add r0, r1, r0
- strh r0, [r4, #0xa]
- mov r0, #0xc
- ldrsh r2, [r4, r0]
- mov r0, #0x10
- ldrsh r1, [r4, r0]
- add r1, r2, r1
- strh r1, [r4, #0xc]
- ldrh r2, [r4, #0x12]
- ldrh r1, [r4, #0x14]
- cmp r2, r1
- bhs _02219132
- ldrsh r0, [r4, r0]
- cmp r0, #0
- bge _02219118
- add r0, r0, #1
- b _0221911A
-_02219118:
- mov r0, #0
-_0221911A:
- strh r0, [r4, #0x10]
- mov r0, #0xe
- ldrsh r0, [r4, r0]
- cmp r0, #0
- bge _02219128
- add r0, r0, #1
- b _0221912A
-_02219128:
- mov r0, #0
-_0221912A:
- strh r0, [r4, #0xe]
- mov r0, #0
- strh r0, [r4, #0x14]
- b _02219136
-_02219132:
- add r0, r1, #1
- strh r0, [r4, #0x14]
-_02219136:
- mov r3, #0xa
- ldrsh r3, [r4, r3]
- ldr r0, [r4, #0x30]
- mov r1, #2
- mov r2, #0
- bl FUN_020179E0
- mov r3, #0xc
- ldrsh r3, [r4, r3]
- ldr r0, [r4, #0x30]
- mov r1, #2
- mov r2, #3
- bl FUN_020179E0
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02219154: .word 0x04000050
-_02219158: .word 0x04000052
-_0221915C: .word 0xFFFFFE64
-
- thumb_func_start MOD08_02219160
-MOD08_02219160: ; 0x02219160
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- mov r1, #0xb8
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r1, r4, #0
- add r0, r5, #0
- add r1, #0x1c
- bl MOD08_02227B70
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- strh r0, [r4, #0xa]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- strh r0, [r4, #0xc]
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- strh r0, [r4, #0xe]
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- strh r0, [r4, #0x10]
- add r0, r5, #0
- mov r1, #5
- bl MOD08_02212498
- str r0, [r4]
- add r0, r5, #0
- mov r1, #6
- bl MOD08_02212498
- strh r0, [r4, #8]
- add r0, r5, #0
- mov r1, #7
- bl MOD08_02212498
- strh r0, [r4, #0x12]
- mov r0, #0
- strh r0, [r4, #0x14]
- ldr r0, [r4]
- cmp r0, #0
- beq _0221920C
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_02227470
- cmp r0, #4
- bne _0221920C
- mov r0, #0xa
- ldrsh r1, [r4, r0]
- sub r0, #0xb
- mul r0, r1
- strh r0, [r4, #0xa]
- mov r1, #0xc
- add r0, r1, #0
- ldrsh r2, [r4, r1]
- sub r0, #0xd
- mul r0, r2
- strh r0, [r4, #0xc]
- mov r0, #0xe
- ldrsh r2, [r4, r0]
- sub r0, #0xf
- mul r0, r2
- strh r0, [r4, #0xe]
- mov r0, #0x10
- ldrsh r2, [r4, r0]
- sub r0, #0x11
- mul r0, r2
- strh r0, [r4, #0x10]
- ldrsh r0, [r4, r1]
- sub r0, #0x54
- strh r0, [r4, #0xc]
- b _02219214
-_0221920C:
- mov r0, #0xc
- ldrsh r0, [r4, r0]
- add r0, #0x54
- strh r0, [r4, #0xc]
-_02219214:
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _02219228
- mov r0, #0xe
- ldrsh r1, [r4, r0]
- sub r0, #0xf
- mul r0, r1
- strh r0, [r4, #0xe]
-_02219228:
- mov r1, #0
- strh r1, [r4, #0x16]
- mov r0, #0x1f
- strh r0, [r4, #0x18]
- mov r0, #2
- str r1, [r4, #4]
- bl FUN_0201797C
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- mov r1, #0
- add r7, r0, #0
- bl MOD08_022156AC
- add r6, r0, #0
- add r0, r5, #0
- bl MOD08_02212014
- mov r1, #0
- str r1, [sp]
- str r1, [sp, #4]
- mov r1, #1
- str r1, [sp, #8]
- str r0, [sp, #0xc]
- ldr r2, [r4, #0x30]
- mov r0, #7
- add r1, r6, #0
- mov r3, #2
- bl FUN_0200687C
- add r0, r7, #0
- mov r1, #1
- bl MOD08_022156AC
- add r6, r0, #0
- add r0, r5, #0
- bl MOD08_02212014
- add r3, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- mov r0, #0x90
- str r0, [sp, #8]
- ldr r0, [r4, #0x34]
- mov r1, #7
- add r2, r6, #0
- bl FUN_020030E8
- ldr r0, [r4, #0x30]
- mov r1, #2
- bl FUN_02018744
- add r0, r5, #0
- mov r6, #2
- bl MOD08_02212004
- cmp r0, #1
- bne _022192A8
- mov r6, #4
- b _022192BC
-_022192A8:
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_02227470
- cmp r0, #4
- bne _022192BC
- mov r6, #3
-_022192BC:
- add r0, r7, #0
- add r1, r6, #0
- bl MOD08_022156AC
- add r6, r0, #0
- add r0, r5, #0
- bl MOD08_02212014
- mov r1, #0
- str r1, [sp]
- str r1, [sp, #4]
- mov r1, #1
- str r1, [sp, #8]
- str r0, [sp, #0xc]
- ldr r2, [r4, #0x30]
- mov r0, #7
- add r1, r6, #0
- mov r3, #2
- bl FUN_020068C8
- mov r3, #0xa
- ldrsh r3, [r4, r3]
- ldr r0, [r4, #0x30]
- mov r1, #2
- mov r2, #0
- bl FUN_020179E0
- mov r3, #0xc
- ldrsh r3, [r4, r3]
- ldr r0, [r4, #0x30]
- mov r1, #2
- mov r2, #3
- bl FUN_020179E0
- ldr r0, [r4, #0x20]
- ldr r1, _02219310 ; =MOD08_02218FE8
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02219310: .word MOD08_02218FE8
-
- thumb_func_start MOD08_02219314
-MOD08_02219314: ; 0x02219314
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4, #0x1c]
- cmp r0, #3
- bhi _022193DA
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0221932C: ; jump table
- .short _02219334 - _0221932C - 2 ; case 0
- .short _02219352 - _0221932C - 2 ; case 1
- .short _02219390 - _0221932C - 2 ; case 2
- .short _0221939C - _0221932C - 2 ; case 3
-_02219334:
- ldrh r0, [r4, #0x18]
- mov r1, #4
- mov r2, #0x39
- str r0, [sp]
- ldrh r3, [r4, #0x16]
- ldr r0, _0221947C ; =0x04000050
- bl G2x_SetBlendAlpha_
- mov r0, #2
- mov r1, #1
- bl FUN_0201797C
- ldrb r0, [r4, #0x1c]
- add r0, r0, #1
- strb r0, [r4, #0x1c]
-_02219352:
- ldrh r0, [r4, #0x16]
- mov r1, #0
- cmp r0, #0x10
- bhs _02219360
- add r0, r0, #2
- strh r0, [r4, #0x16]
- b _02219362
-_02219360:
- add r1, r1, #1
-_02219362:
- ldrh r0, [r4, #0x18]
- cmp r0, #4
- bls _0221936E
- sub r0, r0, #2
- strh r0, [r4, #0x18]
- b _02219370
-_0221936E:
- add r1, r1, #1
-_02219370:
- cmp r1, #2
- bne _02219382
- mov r0, #0x10
- strh r0, [r4, #0x16]
- mov r0, #4
- strh r0, [r4, #0x18]
- ldrb r0, [r4, #0x1c]
- add r0, r0, #1
- strb r0, [r4, #0x1c]
-_02219382:
- ldrh r0, [r4, #0x18]
- ldrh r1, [r4, #0x16]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _02219480 ; =0x04000052
- strh r1, [r0]
- b _022193F2
-_02219390:
- ldr r1, [r4, #4]
- cmp r1, #0
- beq _022193F2
- add r0, r0, #1
- strb r0, [r4, #0x1c]
- b _022193F2
-_0221939C:
- ldrh r0, [r4, #0x16]
- mov r1, #0
- cmp r0, #2
- bls _022193AA
- sub r0, r0, #2
- strh r0, [r4, #0x16]
- b _022193AC
-_022193AA:
- add r1, r1, #1
-_022193AC:
- ldrh r0, [r4, #0x18]
- cmp r0, #0x10
- bhs _022193B8
- add r0, r0, #2
- strh r0, [r4, #0x18]
- b _022193BA
-_022193B8:
- add r1, r1, #1
-_022193BA:
- cmp r1, #2
- bne _022193CC
- mov r0, #0
- strh r0, [r4, #0x16]
- mov r0, #0x1f
- strh r0, [r4, #0x18]
- ldrb r0, [r4, #0x1c]
- add r0, r0, #1
- strb r0, [r4, #0x1c]
-_022193CC:
- ldrh r0, [r4, #0x18]
- ldrh r1, [r4, #0x16]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _02219480 ; =0x04000052
- strh r1, [r0]
- b _022193F2
-_022193DA:
- mov r0, #2
- mov r1, #0
- bl FUN_0201797C
- ldr r0, [r4, #0x20]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, pc}
-_022193F2:
- mov r1, #0x10
- ldrsh r3, [r4, r1]
- cmp r3, #0
- ble _02219404
- mov r0, #0xc
- ldrsh r2, [r4, r0]
- lsl r0, r1, #5
- cmp r2, r0
- bge _02219412
-_02219404:
- cmp r3, #0
- bge _02219416
- mov r0, #0xc
- ldrsh r1, [r4, r0]
- ldr r0, _02219484 ; =0xFFFFFE64
- cmp r1, r0
- bgt _02219416
-_02219412:
- mov r0, #1
- str r0, [r4, #4]
-_02219416:
- mov r0, #0xa
- ldrsh r1, [r4, r0]
- mov r0, #0xe
- ldrsh r0, [r4, r0]
- add r0, r1, r0
- strh r0, [r4, #0xa]
- mov r0, #0xc
- ldrsh r2, [r4, r0]
- mov r0, #0x10
- ldrsh r1, [r4, r0]
- add r1, r2, r1
- strh r1, [r4, #0xc]
- ldrh r2, [r4, #0x12]
- ldrh r1, [r4, #0x14]
- cmp r2, r1
- bhs _0221945A
- ldrsh r0, [r4, r0]
- cmp r0, #0
- bge _02219440
- add r0, r0, #1
- b _02219442
-_02219440:
- mov r0, #0
-_02219442:
- strh r0, [r4, #0x10]
- mov r0, #0xe
- ldrsh r0, [r4, r0]
- cmp r0, #0
- bge _02219450
- add r0, r0, #1
- b _02219452
-_02219450:
- mov r0, #0
-_02219452:
- strh r0, [r4, #0xe]
- mov r0, #0
- strh r0, [r4, #0x14]
- b _0221945E
-_0221945A:
- add r0, r1, #1
- strh r0, [r4, #0x14]
-_0221945E:
- mov r3, #0xa
- ldrsh r3, [r4, r3]
- ldr r0, [r4, #0x30]
- mov r1, #2
- mov r2, #0
- bl FUN_020179E0
- mov r3, #0xc
- ldrsh r3, [r4, r3]
- ldr r0, [r4, #0x30]
- mov r1, #2
- mov r2, #3
- bl FUN_020179E0
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0221947C: .word 0x04000050
-_02219480: .word 0x04000052
-_02219484: .word 0xFFFFFE64
-
- thumb_func_start MOD08_02219488
-MOD08_02219488: ; 0x02219488
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- mov r1, #0xb8
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r1, r4, #0
- add r0, r5, #0
- add r1, #0x1c
- bl MOD08_02227B70
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- strh r0, [r4, #0xa]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- strh r0, [r4, #0xc]
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- strh r0, [r4, #0xe]
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- strh r0, [r4, #0x10]
- add r0, r5, #0
- mov r1, #5
- bl MOD08_02212498
- str r0, [r4]
- add r0, r5, #0
- mov r1, #6
- bl MOD08_02212498
- strh r0, [r4, #8]
- add r0, r5, #0
- mov r1, #7
- bl MOD08_02212498
- strh r0, [r4, #0x12]
- mov r0, #0
- strh r0, [r4, #0x14]
- ldr r0, [r4]
- cmp r0, #0
- beq _02219534
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_02227470
- cmp r0, #4
- bne _02219534
- mov r0, #0xa
- ldrsh r1, [r4, r0]
- sub r0, #0xb
- mul r0, r1
- strh r0, [r4, #0xa]
- mov r1, #0xc
- add r0, r1, #0
- ldrsh r2, [r4, r1]
- sub r0, #0xd
- mul r0, r2
- strh r0, [r4, #0xc]
- mov r0, #0xe
- ldrsh r2, [r4, r0]
- sub r0, #0xf
- mul r0, r2
- strh r0, [r4, #0xe]
- mov r0, #0x10
- ldrsh r2, [r4, r0]
- sub r0, #0x11
- mul r0, r2
- strh r0, [r4, #0x10]
- ldrsh r0, [r4, r1]
- sub r0, #0x54
- strh r0, [r4, #0xc]
- b _0221953C
-_02219534:
- mov r0, #0xc
- ldrsh r0, [r4, r0]
- add r0, #0x54
- strh r0, [r4, #0xc]
-_0221953C:
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _02219550
- mov r0, #0xe
- ldrsh r1, [r4, r0]
- sub r0, #0xf
- mul r0, r1
- strh r0, [r4, #0xe]
-_02219550:
- mov r0, #4
- strh r0, [r4, #0x16]
- mov r0, #0x10
- strh r0, [r4, #0x18]
- mov r1, #0
- strh r1, [r4, #0x16]
- strh r0, [r4, #0x18]
- mov r0, #2
- str r1, [r4, #4]
- bl FUN_0201797C
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- mov r1, #0
- add r7, r0, #0
- bl MOD08_022156AC
- add r6, r0, #0
- add r0, r5, #0
- bl MOD08_02212014
- mov r1, #0
- str r1, [sp]
- str r1, [sp, #4]
- mov r1, #1
- str r1, [sp, #8]
- str r0, [sp, #0xc]
- ldr r2, [r4, #0x30]
- mov r0, #7
- add r1, r6, #0
- mov r3, #2
- bl FUN_0200687C
- add r0, r7, #0
- mov r1, #1
- bl MOD08_022156AC
- add r6, r0, #0
- add r0, r5, #0
- bl MOD08_02212014
- add r3, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- mov r0, #0x90
- str r0, [sp, #8]
- ldr r0, [r4, #0x34]
- mov r1, #7
- add r2, r6, #0
- bl FUN_020030E8
- ldr r0, [r4, #0x30]
- mov r1, #2
- bl FUN_02018744
- add r0, r5, #0
- mov r6, #2
- bl MOD08_02212004
- cmp r0, #1
- bne _022195D6
- mov r6, #4
- b _022195EA
-_022195D6:
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_02227470
- cmp r0, #4
- bne _022195EA
- mov r6, #3
-_022195EA:
- add r0, r7, #0
- add r1, r6, #0
- bl MOD08_022156AC
- add r6, r0, #0
- add r0, r5, #0
- bl MOD08_02212014
- mov r1, #0
- str r1, [sp]
- str r1, [sp, #4]
- mov r1, #1
- str r1, [sp, #8]
- str r0, [sp, #0xc]
- ldr r2, [r4, #0x30]
- mov r0, #7
- add r1, r6, #0
- mov r3, #2
- bl FUN_020068C8
- mov r3, #0xa
- ldrsh r3, [r4, r3]
- ldr r0, [r4, #0x30]
- mov r1, #2
- mov r2, #0
- bl FUN_020179E0
- mov r3, #0xc
- ldrsh r3, [r4, r3]
- ldr r0, [r4, #0x30]
- mov r1, #2
- mov r2, #3
- bl FUN_020179E0
- ldr r0, [r4, #0x20]
- ldr r1, _0221963C ; =MOD08_02219314
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0221963C: .word MOD08_02219314
-
- thumb_func_start MOD08_02219640
-MOD08_02219640: ; 0x02219640
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _02219656
- cmp r0, #1
- beq _02219656
- cmp r0, #2
- beq _02219688
- pop {r3, r4, r5, pc}
-_02219656:
- add r0, r4, #0
- add r0, #0xc
- bl MOD08_02218058
- cmp r0, #1
- bne _02219672
- ldr r2, [r4, #0xc]
- ldr r0, [r4, #8]
- lsl r2, r2, #0x10
- mov r1, #9
- lsr r2, r2, #0x10
- bl FUN_02007558
- pop {r3, r4, r5, pc}
-_02219672:
- add r0, r4, #0
- ldr r1, [r4, #0xc]
- ldr r2, [r4, #0x20]
- ldr r3, [r4, #0x24]
- add r0, #0xc
- bl MOD08_02218008
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_02219688:
- ldr r0, [r4, #8]
- mov r1, #0xa
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #8]
- mov r1, #0xb
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #8]
- mov r1, #9
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022196B8
-MOD08_022196B8: ; 0x022196B8
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- bl MOD08_02212014
- mov r1, #0x2c
- bl AllocFromHeap
- add r4, r0, #0
- mov r0, #0
- strb r0, [r4]
- str r5, [r4, #4]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- str r0, [r4, #0x24]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- str r0, [r4, #0x20]
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- add r7, r0, #0
- beq _022196F2
- cmp r7, #2
- bne _022196FC
-_022196F2:
- ldr r0, [r4, #4]
- bl MOD08_02212460
- str r0, [sp]
- b _02219704
-_022196FC:
- ldr r0, [r4, #4]
- bl MOD08_02212458
- str r0, [sp]
-_02219704:
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- add r2, r0, #0
- add r0, r4, #0
- ldr r1, [r4, #0x20]
- ldr r3, [r4, #0x24]
- add r0, #0xc
- bl MOD08_02218008
- ldr r1, [sp]
- add r0, r5, #0
- bl MOD08_02217C1C
- add r6, r0, #0
- ldr r0, [r4, #0x14]
- add r1, r0, #0
- mul r1, r6
- str r1, [r4, #0x14]
- cmp r7, #2
- bne _02219736
- mov r0, #0
- mvn r0, r0
- mul r6, r0
-_02219736:
- ldr r0, [r4, #4]
- ldr r1, [sp]
- bl MOD08_022154D4
- str r0, [r4, #8]
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- cmp r0, #1
- bne _02219760
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- strh r0, [r4, #0x28]
- add r0, r5, #0
- mov r1, #5
- bl MOD08_02212498
- b _02219768
-_02219760:
- mov r0, #0x28
- add r1, r6, #0
- mul r1, r0
- strh r1, [r4, #0x28]
-_02219768:
- strh r0, [r4, #0x2a]
- mov r2, #0x28
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #8]
- mov r1, #0xa
- bl FUN_02007558
- mov r2, #0x2a
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #8]
- mov r1, #0xb
- bl FUN_02007558
- ldr r0, [r4, #4]
- ldr r1, _02219790 ; =MOD08_02219640
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02219790: .word MOD08_02219640
-
- thumb_func_start MOD08_02219794
-MOD08_02219794: ; 0x02219794
- push {r3, r4, r5, lr}
- add r4, r1, #0
- mov r1, #0x2c
- mov r2, #0x2e
- add r5, r0, #0
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r3, [r4, #0x28]
- add r0, r4, #4
- bl MOD08_02217E58
- cmp r0, #0
- bne _022197E0
- mov r2, #0x2c
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x28]
- mov r1, #0
- bl FUN_02007558
- mov r2, #0x2e
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x28]
- mov r1, #1
- sub r2, #8
- bl FUN_02007558
- ldr r0, [r4, #0x28]
- mov r1, #9
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_022197E0:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022197E4
-MOD08_022197E4: ; 0x022197E4
- push {r4, r5, r6, lr}
- add r5, r0, #0
- bl MOD08_02212014
- mov r1, #0x30
- bl AllocFromHeap
- add r4, r0, #0
- add r0, r5, #0
- mov r1, #0
- str r5, [r4]
- bl MOD08_02212498
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- add r2, r0, #0
- add r0, r4, #4
- add r1, r6, #0
- bl MOD08_02218654
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- cmp r0, #8
- bgt _0221982E
- cmp r0, #2
- blt _022198A0
- beq _02219834
- cmp r0, #4
- beq _02219850
- cmp r0, #8
- beq _02219874
- b _022198A0
-_0221982E:
- cmp r0, #0x10
- beq _02219886
- b _022198A0
-_02219834:
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- str r0, [r4, #0x28]
- mov r0, #0
- ldr r1, [r4, #0x10]
- mvn r0, r0
- mul r0, r1
- str r0, [r4, #0x10]
- b _022198A4
-_02219850:
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022274C0
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- str r0, [r4, #0x28]
- mov r0, #0
- ldr r1, [r4, #0x10]
- mvn r0, r0
- mul r0, r1
- str r0, [r4, #0x10]
- b _022198A4
-_02219874:
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- str r0, [r4, #0x28]
- b _022198A4
-_02219886:
- ldr r0, [r4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022274C0
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- str r0, [r4, #0x28]
- b _022198A4
-_022198A0:
- bl ErrorHandling
-_022198A4:
- ldr r0, [r4, #0x28]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #0x2c]
- ldr r0, [r4, #0x28]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #0x2e]
- mov r0, #0x2e
- ldrsh r0, [r4, r0]
- ldr r1, _022198CC ; =MOD08_02219794
- add r2, r4, #0
- add r0, #8
- strh r0, [r4, #0x2e]
- ldr r0, [r4]
- bl MOD08_02212400
- pop {r4, r5, r6, pc}
- .align 2, 0
-_022198CC: .word MOD08_02219794
-
- thumb_func_start MOD08_022198D0
-MOD08_022198D0: ; 0x022198D0
- push {r3, r4, r5, r6, lr}
- sub sp, #4
- add r5, r0, #0
- ldr r0, [r5, #0x14]
- add r4, r1, #0
- mov r1, #1
- add r6, r2, #0
- bl FUN_0200C644
- ldr r0, [r5, #0x14]
- add r1, r4, #0
- add r2, r6, #0
- bl FUN_0200C714
- mov r0, #0
- str r0, [r5, #0x40]
- mov r0, #4
- mov r1, #0xa
- add r5, #0x18
- str r0, [sp]
- add r0, r5, #0
- add r2, r1, #0
- mov r3, #0xe
- bl MOD08_02218120
- add sp, #4
- pop {r3, r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02219908
-MOD08_02219908: ; 0x02219908
- push {r3, r4, lr}
- sub sp, #4
- add r4, r0, #0
- ldr r1, [r4, #0x14]
- add r0, #0x18
- bl MOD08_02218360
- cmp r0, #0
- bne _02219944
- ldr r0, [r4, #0x40]
- cmp r0, #0
- beq _0221992E
- ldr r0, [r4, #0x14]
- mov r1, #0
- bl FUN_0200C644
- add sp, #4
- mov r0, #1
- pop {r3, r4, pc}
-_0221992E:
- mov r0, #1
- str r0, [r4, #0x40]
- mov r0, #2
- add r4, #0x18
- str r0, [sp]
- add r0, r4, #0
- mov r1, #0xe
- mov r2, #0xa
- mov r3, #0xc
- bl MOD08_02218120
-_02219944:
- mov r0, #0
- add sp, #4
- pop {r3, r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221994C
-MOD08_0221994C: ; 0x0221994C
- push {r3, r4, r5, lr}
- add r4, r0, #0
- ldr r1, [r4, #0x48]
- mov r5, #0
- cmp r1, #4
- bhi _022199E4
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02219964: ; jump table
- .short _0221996E - _02219964 - 2 ; case 0
- .short _02219994 - _02219964 - 2 ; case 1
- .short _022199A4 - _02219964 - 2 ; case 2
- .short _022199D2 - _02219964 - 2 ; case 3
- .short _022199E2 - _02219964 - 2 ; case 4
-_0221996E:
- mov r1, #0x4c
- ldrsh r3, [r4, r1]
- ldr r2, [r4, #0x3c]
- mov r1, #0x18
- mul r1, r2
- mov r2, #0x4e
- ldrsh r2, [r4, r2]
- add r1, r3, r1
- lsl r1, r1, #0x10
- sub r2, #0x10
- lsl r2, r2, #0x10
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl MOD08_022198D0
- ldr r0, [r4, #0x48]
- add r0, r0, #1
- str r0, [r4, #0x48]
- b _022199E4
-_02219994:
- bl MOD08_02219908
- cmp r0, #0
- beq _022199E4
- ldr r0, [r4, #0x48]
- add r0, r0, #1
- str r0, [r4, #0x48]
- b _022199E4
-_022199A4:
- ldr r1, [r4, #0x44]
- sub r1, r1, #1
- str r1, [r4, #0x44]
- bpl _022199E4
- ldr r1, [r4, #0x48]
- add r1, r1, #1
- str r1, [r4, #0x48]
- mov r1, #0x4c
- ldrsh r3, [r4, r1]
- ldr r2, [r4, #0x3c]
- mov r1, #0x18
- mul r1, r2
- mov r2, #0x4e
- ldrsh r2, [r4, r2]
- sub r1, r3, r1
- lsl r1, r1, #0x10
- sub r2, #0x18
- lsl r2, r2, #0x10
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl MOD08_022198D0
- b _022199E4
-_022199D2:
- bl MOD08_02219908
- cmp r0, #0
- beq _022199E4
- ldr r0, [r4, #0x48]
- add r0, r0, #1
- str r0, [r4, #0x48]
- b _022199E4
-_022199E2:
- mov r5, #1
-_022199E4:
- add r0, r5, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_022199E8
-MOD08_022199E8: ; 0x022199E8
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0xc]
- cmp r0, #0
- beq _022199FA
- cmp r0, #1
- beq _02219A0C
- b _02219A22
-_022199FA:
- add r0, r4, #0
- bl MOD08_0221994C
- cmp r0, #0
- beq _02219A22
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02219A22
-_02219A0C:
- ldr r0, [r4, #0x14]
- bl FUN_0200C3DC
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, pc}
-_02219A22:
- ldr r0, [r4, #8]
- bl FUN_0200BC1C
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02219A2C
-MOD08_02219A2C: ; 0x02219A2C
- push {r3, r4, r5, r6, r7, lr}
- add r7, r1, #0
- mov r1, #0x50
- add r5, r0, #0
- str r2, [sp]
- add r6, r3, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4]
- ldr r0, [sp]
- str r7, [r4, #4]
- str r0, [r4, #8]
- str r6, [r4, #0x14]
- add r0, r6, #0
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r4, #0x14]
- mov r1, #1
- bl FUN_0200C6B0
- ldr r0, [r4, #0x14]
- mov r1, #2
- bl FUN_0200C840
- ldr r0, [r4, #0x14]
- mov r1, #0
- bl FUN_0200C644
- mov r0, #4
- str r0, [r4, #0x44]
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02217C1C
- str r0, [r4, #0x3c]
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- mov r1, #0
- add r5, r0, #0
- bl FUN_0200782C
- add r1, r4, #0
- add r1, #0x4c
- strh r0, [r1]
- add r0, r5, #0
- mov r1, #1
- bl FUN_0200782C
- add r1, r4, #0
- add r1, #0x4e
- strh r0, [r1]
- ldr r0, [r4]
- ldr r1, _02219AB4 ; =MOD08_022199E8
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02219AB4: .word MOD08_022199E8
-
- thumb_func_start MOD08_02219AB8
-MOD08_02219AB8: ; 0x02219AB8
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #4]
- bl FUN_020038E4
- cmp r0, #0
- bne _02219AD6
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
-_02219AD6:
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02219AD8
-MOD08_02219AD8: ; 0x02219AD8
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- mov r1, #8
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4]
- add r0, r5, #0
- bl MOD08_02215504
- str r0, [r4, #4]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- cmp r0, #0
- beq _02219B06
- cmp r0, #1
- beq _02219B12
- cmp r0, #2
- beq _02219B18
- b _02219B1E
-_02219B06:
- add r0, r5, #0
- bl MOD08_02214540
- lsl r0, r0, #0x10
- lsr r6, r0, #0x10
- b _02219B22
-_02219B12:
- mov r6, #1
- lsl r6, r6, #8
- b _02219B22
-_02219B18:
- mov r6, #2
- lsl r6, r6, #8
- b _02219B22
-_02219B1E:
- bl ErrorHandling
-_02219B22:
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- add r7, r0, #0
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- str r0, [sp, #0xc]
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- str r0, [sp, #0x10]
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- ldr r1, [sp, #0xc]
- lsl r0, r0, #0x10
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- str r1, [sp]
- ldr r1, [sp, #0x10]
- lsl r3, r7, #0x18
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- str r1, [sp, #4]
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- ldr r0, [r4, #4]
- mov r1, #1
- add r2, r6, #0
- asr r3, r3, #0x18
- bl FUN_02003210
- ldr r0, [r4]
- ldr r1, _02219B7C ; =MOD08_02219AB8
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- nop
-_02219B7C: .word MOD08_02219AB8
-
- thumb_func_start MOD08_02219B80
-MOD08_02219B80: ; 0x02219B80
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #5
- bhi _02219C28
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02219B98: ; jump table
- .short _02219BA4 - _02219B98 - 2 ; case 0
- .short _02219BBC - _02219B98 - 2 ; case 1
- .short _02219BCE - _02219B98 - 2 ; case 2
- .short _02219BE0 - _02219B98 - 2 ; case 3
- .short _02219BF8 - _02219B98 - 2 ; case 4
- .short _02219C1A - _02219B98 - 2 ; case 5
-_02219BA4:
- ldr r0, [r4, #0x14]
- mov r1, #0
- str r0, [sp]
- ldr r0, [r4, #4]
- ldr r2, [r4, #0x18]
- ldr r3, [r4, #0x10]
- bl FUN_02007E68
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- pop {r3, r4, r5, pc}
-_02219BBC:
- ldr r0, [r4, #4]
- bl FUN_02007F20
- cmp r0, #0
- bne _02219C28
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- pop {r3, r4, r5, pc}
-_02219BCE:
- ldr r1, [r4, #0x1c]
- cmp r1, #0
- bne _02219BDA
- add r0, r0, #1
- str r0, [r4, #8]
- b _02219BE0
-_02219BDA:
- sub r0, r1, #1
- str r0, [r4, #0x1c]
- pop {r3, r4, r5, pc}
-_02219BE0:
- ldr r0, [r4, #0x14]
- mov r2, #0
- str r0, [sp]
- ldr r0, [r4, #4]
- ldr r1, [r4, #0x18]
- ldr r3, [r4, #0x10]
- bl FUN_02007E68
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- pop {r3, r4, r5, pc}
-_02219BF8:
- ldr r0, [r4, #4]
- bl FUN_02007F20
- cmp r0, #0
- bne _02219C28
- ldr r0, [r4, #0xc]
- sub r0, r0, #1
- str r0, [r4, #0xc]
- cmp r0, #0
- bgt _02219C14
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- pop {r3, r4, r5, pc}
-_02219C14:
- mov r0, #0
- str r0, [r4, #8]
- pop {r3, r4, r5, pc}
-_02219C1A:
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
-_02219C28:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02219C2C
-MOD08_02219C2C: ; 0x02219C2C
- push {r3, r4, r5, r6, r7, lr}
- mov r1, #0x20
- add r4, r0, #0
- bl MOD08_02228064
- add r6, r0, #0
- str r4, [r6]
- mov r1, #0
- add r0, r4, #0
- str r1, [r6, #4]
- bl MOD08_02212498
- ldr r2, _02219DF4 ; =0x00000802
- cmp r0, r2
- bgt _02219C66
- bge _02219CEC
- cmp r0, #8
- bgt _02219C60
- cmp r0, #2
- blt _02219C5E
- beq _02219C7E
- cmp r0, #4
- beq _02219C90
- cmp r0, #8
- beq _02219CB6
-_02219C5E:
- b _02219DA4
-_02219C60:
- cmp r0, #0x10
- beq _02219CC8
- b _02219DA4
-_02219C66:
- add r1, r2, #6
- cmp r0, r1
- bgt _02219C76
- bge _02219D48
- add r1, r2, #2
- cmp r0, r1
- beq _02219D1C
- b _02219DA4
-_02219C76:
- add r2, #0xe
- cmp r0, r2
- beq _02219D78
- b _02219DA4
-_02219C7E:
- add r0, r4, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r6]
- bl MOD08_022154D4
- str r0, [r6, #4]
- b _02219DA8
-_02219C90:
- add r0, r4, #0
- bl MOD08_0221553C
- cmp r0, #1
- beq _02219C9C
- b _02219DA8
-_02219C9C:
- ldr r0, [r6]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r6]
- bl MOD08_022274C0
- add r1, r0, #0
- ldr r0, [r6]
- bl MOD08_022154D4
- str r0, [r6, #4]
- b _02219DA8
-_02219CB6:
- add r0, r4, #0
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r6]
- bl MOD08_022154D4
- str r0, [r6, #4]
- b _02219DA8
-_02219CC8:
- add r0, r4, #0
- bl MOD08_0221553C
- cmp r0, #1
- bne _02219DA8
- ldr r0, [r6]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r6]
- bl MOD08_022274C0
- add r1, r0, #0
- ldr r0, [r6]
- bl MOD08_022154D4
- str r0, [r6, #4]
- b _02219DA8
-_02219CEC:
- mov r7, #0xff
- mov r5, #0
-_02219CF0:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02215490
- cmp r0, #0
- beq _02219D00
- cmp r0, #2
- bne _02219D04
-_02219D00:
- add r7, r5, #0
- b _02219D0A
-_02219D04:
- add r5, r5, #1
- cmp r5, #4
- blt _02219CF0
-_02219D0A:
- cmp r7, #0xff
- bne _02219D10
- mov r7, #0
-_02219D10:
- ldr r0, [r6]
- add r1, r7, #0
- bl MOD08_022154D4
- str r0, [r6, #4]
- b _02219DA8
-_02219D1C:
- mov r7, #0xff
- mov r5, #0
-_02219D20:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02215490
- cmp r0, #4
- bne _02219D30
- add r7, r5, #0
- b _02219D36
-_02219D30:
- add r5, r5, #1
- cmp r5, #4
- blt _02219D20
-_02219D36:
- cmp r7, #0xff
- bne _02219D3C
- mov r7, #0
-_02219D3C:
- ldr r0, [r6]
- add r1, r7, #0
- bl MOD08_022154D4
- str r0, [r6, #4]
- b _02219DA8
-_02219D48:
- mov r7, #0xff
- mov r5, #0
-_02219D4C:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02215490
- cmp r0, #1
- beq _02219D5C
- cmp r0, #3
- bne _02219D60
-_02219D5C:
- add r7, r5, #0
- b _02219D66
-_02219D60:
- add r5, r5, #1
- cmp r5, #4
- blt _02219D4C
-_02219D66:
- cmp r7, #0xff
- bne _02219D6C
- mov r7, #0
-_02219D6C:
- ldr r0, [r6]
- add r1, r7, #0
- bl MOD08_022154D4
- str r0, [r6, #4]
- b _02219DA8
-_02219D78:
- mov r7, #0xff
- mov r5, #0
-_02219D7C:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02215490
- cmp r0, #5
- bne _02219D8C
- add r7, r5, #0
- b _02219D92
-_02219D8C:
- add r5, r5, #1
- cmp r5, #4
- blt _02219D7C
-_02219D92:
- cmp r7, #0xff
- bne _02219D98
- mov r7, #0
-_02219D98:
- ldr r0, [r6]
- add r1, r7, #0
- bl MOD08_022154D4
- str r0, [r6, #4]
- b _02219DA8
-_02219DA4:
- bl ErrorHandling
-_02219DA8:
- ldr r0, [r6, #4]
- cmp r0, #0
- bne _02219DB6
- add r0, r6, #0
- bl FreeToHeap
- pop {r3, r4, r5, r6, r7, pc}
-_02219DB6:
- add r0, r4, #0
- mov r1, #1
- bl MOD08_02212498
- str r0, [r6, #0x10]
- add r0, r4, #0
- mov r1, #2
- bl MOD08_02212498
- str r0, [r6, #0xc]
- add r0, r4, #0
- mov r1, #3
- bl MOD08_02212498
- str r0, [r6, #0x14]
- add r0, r4, #0
- mov r1, #4
- bl MOD08_02212498
- str r0, [r6, #0x18]
- add r0, r4, #0
- mov r1, #5
- bl MOD08_02212498
- str r0, [r6, #0x1c]
- ldr r0, [r6]
- ldr r1, _02219DF8 ; =MOD08_02219B80
- add r2, r6, #0
- bl MOD08_02212400
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02219DF4: .word 0x00000802
-_02219DF8: .word MOD08_02219B80
-
- thumb_func_start MOD08_02219DFC
-MOD08_02219DFC: ; 0x02219DFC
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #4
- bls _02219E0C
- b _02219F60
-_02219E0C:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02219E18: ; jump table
- .short _02219E22 - _02219E18 - 2 ; case 0
- .short _02219E70 - _02219E18 - 2 ; case 1
- .short _02219EC2 - _02219E18 - 2 ; case 2
- .short _02219EEC - _02219E18 - 2 ; case 3
- .short _02219F4E - _02219E18 - 2 ; case 4
-_02219E22:
- ldr r0, [r4, #0x4c]
- asr r0, r0, #0x10
- str r0, [sp]
- ldr r1, [r4, #0x3c]
- ldr r2, [r4, #0x44]
- ldr r3, [r4, #0x40]
- add r0, r4, #0
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- lsl r3, r3, #0x10
- add r0, #0x14
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- asr r3, r3, #0x10
- bl MOD08_02218120
- add r0, r4, #0
- add r0, #0x14
- add r1, sp, #8
- add r2, sp, #4
- bl MOD08_0221825C
- ldr r0, [r4, #0x50]
- cmp r0, #1
- bne _02219E5E
- ldr r1, [sp, #8]
- mov r0, #0
- bl _fsub
- str r0, [sp, #8]
-_02219E5E:
- ldr r0, [r4, #0x10]
- ldr r1, [sp, #8]
- ldr r2, [sp, #4]
- bl FUN_0200C884
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02219F60
-_02219E70:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02218170
- add r5, r0, #0
- add r0, r4, #0
- add r0, #0x14
- add r1, sp, #8
- add r2, sp, #4
- bl MOD08_0221825C
- ldr r0, [r4, #0x50]
- cmp r0, #1
- bne _02219E96
- ldr r1, [sp, #8]
- mov r0, #0
- bl _fsub
- str r0, [sp, #8]
-_02219E96:
- ldr r0, [r4, #0x10]
- ldr r1, [sp, #8]
- ldr r2, [sp, #4]
- bl FUN_0200C884
- cmp r5, #0
- beq _02219EBA
- mov r0, #0
- str r0, [sp]
- mov r1, #0xc
- mov r2, #0xe
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- ldr r3, [r4, #0x28]
- bl MOD08_02218314
- b _02219F60
-_02219EBA:
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02219F60
-_02219EC2:
- ldr r0, [r4, #0x4c]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp]
- ldr r1, [r4, #0x40]
- ldr r2, [r4, #0x44]
- ldr r3, [r4, #0x3c]
- add r0, r4, #0
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- lsl r3, r3, #0x10
- add r0, #0x14
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- asr r3, r3, #0x10
- bl MOD08_02218120
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02219F60
-_02219EEC:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02218170
- add r5, r0, #0
- add r0, r4, #0
- add r0, #0x14
- add r1, sp, #8
- add r2, sp, #4
- bl MOD08_0221825C
- ldr r0, [r4, #0x50]
- cmp r0, #1
- bne _02219F12
- ldr r1, [sp, #8]
- mov r0, #0
- bl _fsub
- str r0, [sp, #8]
-_02219F12:
- ldr r0, [r4, #0x10]
- ldr r1, [sp, #8]
- ldr r2, [sp, #4]
- bl FUN_0200C884
- cmp r5, #0
- beq _02219F36
- mov r0, #0
- str r0, [sp]
- mov r1, #0xc
- mov r2, #0xe
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- ldr r3, [r4, #0x28]
- bl MOD08_02218314
- b _02219F60
-_02219F36:
- ldr r0, [r4, #0x48]
- sub r0, r0, #1
- str r0, [r4, #0x48]
- cmp r0, #0
- bgt _02219F48
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02219F60
-_02219F48:
- mov r0, #0
- str r0, [r4, #8]
- b _02219F60
-_02219F4E:
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
- add sp, #0xc
- pop {r4, r5, pc}
-_02219F60:
- ldr r0, [r4, #4]
- bl FUN_0200BC1C
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02219F6C
-MOD08_02219F6C: ; 0x02219F6C
- push {r4, r5, r6, lr}
- mov r1, #0x54
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4]
- add r0, r5, #0
- bl MOD08_02212504
- str r0, [r4, #4]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- cmp r0, #0
- bne _02219FAE
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_0221552C
- b _02219FCC
-_02219FAE:
- ldr r0, [r4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_0221552C
-_02219FCC:
- strh r0, [r4, #0xe]
- add r0, r6, #0
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #0xc]
- add r0, r6, #0
- mov r1, #0x29
- bl FUN_0200782C
- mov r1, #0xc
- ldrsh r1, [r4, r1]
- sub r0, r1, r0
- strh r0, [r4, #0xc]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- str r0, [r4, #0x38]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- str r0, [r4, #0x3c]
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- str r0, [r4, #0x40]
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- str r0, [r4, #0x44]
- add r0, r5, #0
- mov r1, #5
- bl MOD08_02212498
- str r0, [r4, #0x48]
- add r0, r5, #0
- mov r1, #6
- bl MOD08_02212498
- str r0, [r4, #0x4c]
- add r0, r5, #0
- mov r1, #7
- bl MOD08_02212498
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022124D8
- str r0, [r4, #0x10]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200C6B0
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r4, #0x10]
- mov r1, #2
- bl FUN_0200C840
- ldr r1, [r4, #0x38]
- mov r2, #0x10
- ldr r0, [r4]
- sub r2, r2, r1
- bl MOD08_02227994
- ldr r0, [r4]
- ldr r1, _0221A08C ; =MOD08_02219DFC
- add r2, r4, #0
- bl MOD08_02212400
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- cmp r0, #0
- beq _0221A07A
- mov r1, #1
- b _0221A07C
-_0221A07A:
- mov r1, #0
-_0221A07C:
- ldr r0, [r4]
- bl MOD08_02215680
- cmp r0, #1
- bne _0221A08A
- mov r0, #1
- str r0, [r4, #0x50]
-_0221A08A:
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0221A08C: .word MOD08_02219DFC
-
- thumb_func_start MOD08_0221A090
-MOD08_0221A090: ; 0x0221A090
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #4]
- cmp r0, #5
- bls _0221A0A0
- b _0221A1DC
-_0221A0A0:
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0221A0AC: ; jump table
- .short _0221A0B8 - _0221A0AC - 2 ; case 0
- .short _0221A0FC - _0221A0AC - 2 ; case 1
- .short _0221A12C - _0221A0AC - 2 ; case 2
- .short _0221A140 - _0221A0AC - 2 ; case 3
- .short _0221A186 - _0221A0AC - 2 ; case 4
- .short _0221A1C8 - _0221A0AC - 2 ; case 5
-_0221A0B8:
- ldr r0, [r4, #0x40]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- ldr r0, [r4, #0x44]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp, #4]
- ldr r0, [r4, #0x4c]
- asr r0, r0, #0x10
- str r0, [sp, #8]
- ldr r1, [r4, #0x34]
- ldr r2, [r4, #0x38]
- ldr r3, [r4, #0x3c]
- add r0, r4, #0
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- lsl r3, r3, #0x10
- add r0, #0x10
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- asr r3, r3, #0x10
- bl MOD08_022181A8
- add r0, r4, #0
- ldr r1, [r4, #0xc]
- add r0, #0x10
- bl MOD08_02218380
- ldr r0, [r4, #4]
- add sp, #0xc
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, pc}
-_0221A0FC:
- add r0, r4, #0
- ldr r1, [r4, #0xc]
- add r0, #0x10
- bl MOD08_022183A0
- cmp r0, #0
- beq _0221A122
- mov r0, #0
- str r0, [sp]
- mov r1, #8
- mov r2, #0xa
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- ldr r3, [r4, #0x24]
- bl MOD08_022182DC
- add sp, #0xc
- pop {r4, r5, pc}
-_0221A122:
- ldr r0, [r4, #4]
- add sp, #0xc
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, pc}
-_0221A12C:
- ldr r1, [r4, #0x50]
- cmp r1, #0
- bne _0221A138
- add r0, r0, #1
- str r0, [r4, #4]
- b _0221A140
-_0221A138:
- sub r0, r1, #1
- add sp, #0xc
- str r0, [r4, #0x50]
- pop {r4, r5, pc}
-_0221A140:
- ldr r0, [r4, #0x3c]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- ldr r0, [r4, #0x44]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp, #4]
- ldr r0, [r4, #0x4c]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- ldr r1, [r4, #0x38]
- ldr r2, [r4, #0x34]
- ldr r3, [r4, #0x40]
- add r0, r4, #0
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- lsl r3, r3, #0x10
- add r0, #0x10
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- asr r3, r3, #0x10
- bl MOD08_022181A8
- add r0, r4, #0
- ldr r1, [r4, #0xc]
- add r0, #0x10
- bl MOD08_022183A0
- ldr r0, [r4, #4]
- add sp, #0xc
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, pc}
-_0221A186:
- add r0, r4, #0
- ldr r1, [r4, #0xc]
- add r0, #0x10
- bl MOD08_022183A0
- cmp r0, #0
- beq _0221A1AC
- mov r0, #0
- str r0, [sp]
- mov r1, #8
- mov r2, #0xa
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- ldr r3, [r4, #0x24]
- bl MOD08_022182DC
- add sp, #0xc
- pop {r4, r5, pc}
-_0221A1AC:
- ldr r0, [r4, #0x48]
- sub r0, r0, #1
- str r0, [r4, #0x48]
- cmp r0, #0
- bgt _0221A1C0
- ldr r0, [r4, #4]
- add sp, #0xc
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, pc}
-_0221A1C0:
- mov r0, #0
- add sp, #0xc
- str r0, [r4, #4]
- pop {r4, r5, pc}
-_0221A1C8:
- ldr r0, [r4, #0xc]
- bl MOD08_02218E34
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
-_0221A1DC:
- add sp, #0xc
- pop {r4, r5, pc}
-
- thumb_func_start MOD08_0221A1E0
-MOD08_0221A1E0: ; 0x0221A1E0
- push {r4, r5, r6, r7, lr}
- sub sp, #0x54
- add r5, r0, #0
- mov r1, #0x54
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- mov r1, #0
- str r5, [r4]
- bl MOD08_02212498
- ldr r2, _0221A3E4 ; =0x00000802
- cmp r0, r2
- bgt _0221A224
- bge _0221A290
- mov r2, #0x42
- lsl r2, r2, #2
- cmp r0, r2
- bgt _0221A21C
- sub r1, r2, #6
- cmp r0, r1
- blt _0221A21A
- beq _0221A23C
- sub r1, r2, #4
- cmp r0, r1
- beq _0221A23C
- cmp r0, r2
- beq _0221A266
-_0221A21A:
- b _0221A346
-_0221A21C:
- add r2, #8
- cmp r0, r2
- beq _0221A266
- b _0221A346
-_0221A224:
- add r1, r2, #6
- cmp r0, r1
- bgt _0221A234
- bge _0221A2EC
- add r1, r2, #2
- cmp r0, r1
- beq _0221A2C0
- b _0221A346
-_0221A234:
- add r2, #0xe
- cmp r0, r2
- beq _0221A31C
- b _0221A346
-_0221A23C:
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_0221552C
- strh r0, [r4, #0xa]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- add r1, r0, #0
- ldr r0, [r4]
- add r2, sp, #4
- add r3, sp, #0
- bl MOD08_02227BAC
- ldr r0, [sp, #0xc]
- str r0, [r4, #0xc]
- b _0221A346
-_0221A266:
- ldr r0, [r4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_0221552C
- strh r0, [r4, #0xa]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- add r1, r0, #0
- ldr r0, [r4]
- add r2, sp, #4
- add r3, sp, #0
- bl MOD08_02227BAC
- ldr r0, [sp, #0xc]
- str r0, [r4, #0xc]
- b _0221A346
-_0221A290:
- mov r7, #0xff
- mov r6, #0
-_0221A294:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02215490
- cmp r0, #0
- beq _0221A2A4
- cmp r0, #2
- bne _0221A2A8
-_0221A2A4:
- add r7, r6, #0
- b _0221A2AE
-_0221A2A8:
- add r6, r6, #1
- cmp r6, #4
- blt _0221A294
-_0221A2AE:
- cmp r7, #0xff
- bne _0221A2B4
- mov r7, #0
-_0221A2B4:
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD08_022154D4
- str r0, [r4, #0xc]
- b _0221A346
-_0221A2C0:
- mov r7, #0xff
- mov r6, #0
-_0221A2C4:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02215490
- cmp r0, #4
- bne _0221A2D4
- add r7, r6, #0
- b _0221A2DA
-_0221A2D4:
- add r6, r6, #1
- cmp r6, #4
- blt _0221A2C4
-_0221A2DA:
- cmp r7, #0xff
- bne _0221A2E0
- mov r7, #0
-_0221A2E0:
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD08_022154D4
- str r0, [r4, #0xc]
- b _0221A346
-_0221A2EC:
- mov r7, #0xff
- mov r6, #0
-_0221A2F0:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02215490
- cmp r0, #1
- beq _0221A300
- cmp r0, #3
- bne _0221A304
-_0221A300:
- add r7, r6, #0
- b _0221A30A
-_0221A304:
- add r6, r6, #1
- cmp r6, #4
- blt _0221A2F0
-_0221A30A:
- cmp r7, #0xff
- bne _0221A310
- mov r7, #0
-_0221A310:
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD08_022154D4
- str r0, [r4, #0xc]
- b _0221A346
-_0221A31C:
- mov r7, #0xff
- mov r6, #0
-_0221A320:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02215490
- cmp r0, #5
- bne _0221A330
- add r7, r6, #0
- b _0221A336
-_0221A330:
- add r6, r6, #1
- cmp r6, #4
- blt _0221A320
-_0221A336:
- cmp r7, #0xff
- bne _0221A33C
- mov r7, #0
-_0221A33C:
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD08_022154D4
- str r0, [r4, #0xc]
-_0221A346:
- ldr r0, [r4, #0xc]
- cmp r0, #0
- bne _0221A356
- add r0, r4, #0
- bl FreeToHeap
- add sp, #0x54
- pop {r4, r5, r6, r7, pc}
-_0221A356:
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #8]
- ldr r0, [r4, #0xc]
- mov r1, #0x29
- bl FUN_0200782C
- strh r0, [r4, #0xa]
- mov r0, #0xa
- ldrsh r0, [r4, r0]
- mov r1, #1
- add r0, #0x10
- strh r0, [r4, #0xa]
- add r0, r5, #0
- bl MOD08_02212498
- str r0, [r4, #0x34]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- str r0, [r4, #0x38]
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- str r0, [r4, #0x3c]
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- str r0, [r4, #0x40]
- add r0, r5, #0
- mov r1, #5
- bl MOD08_02212498
- str r0, [r4, #0x44]
- add r0, r5, #0
- mov r1, #6
- bl MOD08_02212498
- str r0, [r4, #0x48]
- add r0, r5, #0
- mov r1, #7
- bl MOD08_02212498
- str r0, [r4, #0x4c]
- add r0, r5, #0
- mov r1, #6
- bl MOD08_02212498
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [r4, #0x48]
- add r0, r5, #0
- mov r1, #6
- bl MOD08_02212498
- asr r0, r0, #0x10
- str r0, [r4, #0x50]
- ldr r0, [r4]
- ldr r1, _0221A3E8 ; =MOD08_0221A090
- add r2, r4, #0
- bl MOD08_02212400
- add r1, r4, #0
- bl MOD08_0221A090
- add sp, #0x54
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0221A3E4: .word 0x00000802
-_0221A3E8: .word MOD08_0221A090
-
- thumb_func_start MOD08_0221A3EC
-MOD08_0221A3EC: ; 0x0221A3EC
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- add r0, #8
- bl MOD08_02218704
- cmp r0, #0
- beq _0221A40E
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
- pop {r3, r4, r5, pc}
-_0221A40E:
- ldr r0, [r4, #4]
- bl FUN_0200BC1C
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221A418
-MOD08_0221A418: ; 0x0221A418
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- mov r1, #0x30
- add r7, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r7, [r4]
- add r0, r7, #0
- bl MOD08_02212504
- str r0, [r4, #4]
- add r0, r7, #0
- mov r1, #0
- bl MOD08_02212498
- add r6, r0, #0
- mov r5, #0
-_0221A43C:
- mov r0, #1
- lsl r0, r5
- tst r0, r6
- beq _0221A452
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_022124D8
- mov r1, #1
- bl FUN_0200C90C
-_0221A452:
- add r5, r5, #1
- cmp r5, #4
- blt _0221A43C
- add r0, r7, #0
- mov r1, #1
- bl MOD08_02212498
- add r5, r0, #0
- add r0, r7, #0
- mov r1, #3
- bl MOD08_02212498
- str r0, [sp, #8]
- ldr r0, [r4]
- ldr r2, [sp, #8]
- add r1, r5, #0
- bl MOD08_02227994
- add r0, r7, #0
- mov r1, #2
- bl MOD08_02212498
- add r6, r0, #0
- add r0, r7, #0
- mov r1, #4
- bl MOD08_02212498
- str r0, [sp, #0xc]
- add r0, r7, #0
- mov r1, #5
- bl MOD08_02212498
- ldr r1, [sp, #0xc]
- ldr r3, [sp, #8]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- str r1, [sp]
- str r0, [sp, #4]
- add r0, r4, #0
- lsl r1, r5, #0x10
- lsl r2, r6, #0x10
- lsl r3, r3, #0x10
- add r0, #8
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- asr r3, r3, #0x10
- bl MOD08_022186D4
- ldr r0, [r4]
- ldr r1, _0221A4C0 ; =MOD08_0221A3EC
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0221A4C0: .word MOD08_0221A3EC
-
- thumb_func_start MOD08_0221A4C4
-MOD08_0221A4C4: ; 0x0221A4C4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x18
- add r6, r0, #0
- mov r1, #1
- bl MOD08_02212498
- add r5, r0, #0
- add r0, r6, #0
- mov r1, #0
- bl MOD08_02212498
- add r1, r0, #0
- add r0, r6, #0
- add r2, sp, #4
- add r3, sp, #0
- bl MOD08_02227BAC
- ldr r0, [sp]
- mov r4, #0
- cmp r0, #0
- ble _0221A512
- mov r7, #6
-_0221A4F0:
- ldr r1, [sp, #0x14]
- add r0, r6, #0
- bl MOD08_02215554
- cmp r0, #1
- bne _0221A500
- cmp r5, #0
- beq _0221A50A
-_0221A500:
- ldr r0, [sp, #0xc]
- add r1, r7, #0
- add r2, r5, #0
- bl FUN_02007558
-_0221A50A:
- ldr r0, [sp]
- add r4, r4, #1
- cmp r4, r0
- blt _0221A4F0
-_0221A512:
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221A518
-MOD08_0221A518: ; 0x0221A518
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r1, [r4, #4]
- ldr r0, [r4, #8]
- cmp r1, r0
- blt _0221A566
- ldr r0, [r4]
- cmp r0, #0
- ldr r0, [r4, #0x14]
- bne _0221A546
- mov r1, #6
- mov r2, #0
- bl FUN_02007558
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [r4, #0x3c]
- add r1, r5, #0
- bl MOD08_02212438
- pop {r3, r4, r5, pc}
-_0221A546:
- mov r1, #6
- bl FUN_0200782C
- add r3, r0, #0
- mov r2, #1
- ldr r0, [r4, #0x14]
- mov r1, #6
- eor r2, r3
- bl FUN_02007558
- ldr r0, [r4]
- sub r0, r0, #1
- str r0, [r4]
- mov r0, #0
- str r0, [r4, #4]
- pop {r3, r4, r5, pc}
-_0221A566:
- add r0, r1, #1
- str r0, [r4, #4]
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_0221A56C
-MOD08_0221A56C: ; 0x0221A56C
- push {r3, r4, r5, lr}
- add r5, r0, #0
- mov r1, #0x40
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- mov r1, #0
- str r5, [r4, #0x3c]
- bl MOD08_02212498
- lsl r0, r0, #1
- str r0, [r4]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- add r1, r4, #0
- str r0, [r4, #8]
- add r0, r5, #0
- add r1, #0x20
- bl MOD08_02227B70
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022154D4
- str r0, [r4, #0x14]
- ldr r0, [r4, #0x3c]
- ldr r1, _0221A5B8 ; =MOD08_0221A518
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, pc}
- nop
-_0221A5B8: .word MOD08_0221A518
-
- thumb_func_start MOD08_0221A5BC
-MOD08_0221A5BC: ; 0x0221A5BC
- push {r4, lr}
- sub sp, #8
- add r4, r1, #0
- add r2, r0, #0
- add r0, r4, #0
- add r0, #0x24
- ldrb r0, [r0]
- cmp r0, #0
- beq _0221A5D4
- cmp r0, #1
- beq _0221A608
- b _0221A632
-_0221A5D4:
- mov r0, #0x16
- ldrsh r3, [r4, r0]
- mov r0, #0x14
- ldrsh r1, [r4, r0]
- mov r2, #0xc
- str r3, [sp]
- ldr r0, [r4, #8]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #4]
- ldrsh r2, [r4, r2]
- add r0, r4, #0
- add r0, #0x40
- add r2, r1, r2
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- bl MOD08_02217E80
- add r0, r4, #0
- add r0, #0x24
- ldrb r0, [r0]
- add r4, #0x24
- add sp, #8
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, pc}
-_0221A608:
- add r0, r4, #0
- add r0, #0x40
- bl MOD08_02217ECC
- cmp r0, #0
- bne _0221A622
- add r0, r4, #0
- add r0, #0x24
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x24
- strb r1, [r0]
-_0221A622:
- mov r2, #0x40
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x18]
- mov r1, #0
- bl FUN_02007558
- add sp, #8
- pop {r4, pc}
-_0221A632:
- ldr r0, [r4, #0x64]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #8
- pop {r4, pc}
-
- thumb_func_start MOD08_0221A644
-MOD08_0221A644: ; 0x0221A644
- push {r4, r5, r6, lr}
- mov r1, #0x68
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4, #0x64]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- str r0, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- strh r0, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- mov r6, #0xff
- add r1, r6, #0
- add r1, #9
- cmp r0, r1
- bgt _0221A690
- add r1, r6, #3
- cmp r0, r1
- blt _0221A6E6
- beq _0221A69A
- add r1, r6, #5
- cmp r0, r1
- beq _0221A6A4
- add r1, r6, #0
- add r1, #9
- cmp r0, r1
- beq _0221A6C0
- b _0221A6E6
-_0221A690:
- add r1, r6, #0
- add r1, #0x11
- cmp r0, r1
- beq _0221A6CA
- b _0221A6E6
-_0221A69A:
- add r0, r5, #0
- bl MOD08_02212458
- add r6, r0, #0
- b _0221A6EA
-_0221A6A4:
- add r0, r5, #0
- bl MOD08_0221553C
- cmp r0, #1
- bne _0221A6EA
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022274C0
- add r6, r0, #0
- b _0221A6EA
-_0221A6C0:
- add r0, r5, #0
- bl MOD08_02212460
- add r6, r0, #0
- b _0221A6EA
-_0221A6CA:
- add r0, r5, #0
- bl MOD08_0221553C
- cmp r0, #1
- bne _0221A6EA
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022274C0
- add r6, r0, #0
- b _0221A6EA
-_0221A6E6:
- bl ErrorHandling
-_0221A6EA:
- cmp r6, #0xff
- bne _0221A6F6
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, r5, r6, pc}
-_0221A6F6:
- add r1, r4, #0
- add r0, r5, #0
- add r1, #0x24
- bl MOD08_02227B70
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_022154D4
- add r1, r4, #0
- add r1, #0x14
- str r0, [r4, #0x18]
- bl MOD08_02227B2C
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02217C1C
- cmp r0, #0
- bgt _0221A728
- mov r0, #0xc
- ldrsh r1, [r4, r0]
- sub r0, #0xd
- mul r0, r1
- strh r0, [r4, #0xc]
-_0221A728:
- ldr r0, [r4, #0x64]
- ldr r1, _0221A734 ; =MOD08_0221A5BC
- add r2, r4, #0
- bl MOD08_02212400
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0221A734: .word MOD08_0221A5BC
-
- thumb_func_start MOD08_0221A738
-MOD08_0221A738: ; 0x0221A738
- push {r4, lr}
- sub sp, #8
- add r4, r1, #0
- add r2, r0, #0
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- cmp r0, #0
- beq _0221A750
- cmp r0, #1
- beq _0221A792
- b _0221A7BC
-_0221A750:
- ldr r0, [r4, #0x14]
- cmp r0, #0
- bne _0221A760
- mov r0, #0xff
- add r4, #0x20
- add sp, #8
- strb r0, [r4]
- pop {r4, pc}
-_0221A760:
- mov r0, #0x12
- ldrsh r3, [r4, r0]
- mov r0, #0x10
- ldrsh r1, [r4, r0]
- mov r2, #0x64
- str r3, [sp]
- ldr r0, [r4, #8]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #4]
- ldrsh r2, [r4, r2]
- add r0, r4, #0
- add r0, #0x3c
- add r2, r1, r2
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- bl MOD08_02217E80
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x20
- strb r1, [r0]
-_0221A792:
- add r0, r4, #0
- add r0, #0x3c
- bl MOD08_02217ECC
- cmp r0, #0
- bne _0221A7AC
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x20
- strb r1, [r0]
-_0221A7AC:
- mov r2, #0x3c
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x14]
- mov r1, #0
- bl FUN_02007558
- add sp, #8
- pop {r4, pc}
-_0221A7BC:
- ldr r0, [r4, #0x60]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #8
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221A7D0
-MOD08_0221A7D0: ; 0x0221A7D0
- push {r3, r4, r5, r6, r7, lr}
- mov r1, #0x68
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4, #0x60]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- str r0, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- add r1, r4, #0
- add r1, #0x64
- strh r0, [r1]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- add r1, r4, #0
- add r7, r0, #0
- add r0, r5, #0
- add r1, #0x20
- bl MOD08_02227B70
- mov r6, #0xff
- add r0, r6, #0
- add r0, #9
- cmp r7, r0
- bgt _0221A82C
- add r0, r6, #3
- cmp r7, r0
- blt _0221A882
- beq _0221A836
- add r0, r6, #5
- cmp r7, r0
- beq _0221A840
- add r0, r6, #0
- add r0, #9
- cmp r7, r0
- beq _0221A85C
- b _0221A882
-_0221A82C:
- add r0, r6, #0
- add r0, #0x11
- cmp r7, r0
- beq _0221A866
- b _0221A882
-_0221A836:
- add r0, r5, #0
- bl MOD08_02212458
- add r6, r0, #0
- b _0221A886
-_0221A840:
- add r0, r5, #0
- bl MOD08_0221553C
- cmp r0, #1
- bne _0221A886
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022274C0
- add r6, r0, #0
- b _0221A886
-_0221A85C:
- add r0, r5, #0
- bl MOD08_02212460
- add r6, r0, #0
- b _0221A886
-_0221A866:
- add r0, r5, #0
- bl MOD08_0221553C
- cmp r0, #1
- bne _0221A886
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022274C0
- add r6, r0, #0
- b _0221A886
-_0221A882:
- bl ErrorHandling
-_0221A886:
- cmp r6, #0xff
- bne _0221A892
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, r6, r7, pc}
-_0221A892:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_022154D4
- add r1, r4, #0
- add r1, #0x10
- str r0, [r4, #0x14]
- bl MOD08_02227B2C
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02217C1C
- cmp r0, #0
- bgt _0221A8C0
- mov r0, #0x64
- ldrsh r1, [r4, r0]
- sub r0, #0x65
- add r2, r1, #0
- mul r2, r0
- add r0, r4, #0
- add r0, #0x64
- strh r2, [r0]
-_0221A8C0:
- add r0, r5, #0
- bl MOD08_02212004
- ldr r0, [r4, #0x60]
- ldr r1, _0221A8D8 ; =MOD08_0221A738
- add r2, r4, #0
- bl MOD08_02212400
- add r1, r4, #0
- bl MOD08_0221A738
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0221A8D8: .word MOD08_0221A738
-
- thumb_func_start MOD08_0221A8DC
-MOD08_0221A8DC: ; 0x0221A8DC
- push {r3, r4, r5, r6, lr}
- sub sp, #4
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #3
- bls _0221A8EC
- b _0221AA6A
-_0221A8EC:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221A8F8: ; jump table
- .short _0221A900 - _0221A8F8 - 2 ; case 0
- .short _0221A962 - _0221A8F8 - 2 ; case 1
- .short _0221A9AC - _0221A8F8 - 2 ; case 2
- .short _0221A9FA - _0221A8F8 - 2 ; case 3
-_0221A900:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02218170
- cmp r0, #1
- bne _0221A958
- add r0, r4, #0
- add r0, #0x38
- bl MOD08_022183F0
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x16
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #0xd
- bl FUN_02007558
- mov r2, #0x38
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #0
- bl FUN_020079E0
- mov r0, #2
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0x28]
- bl MOD08_0221828C
- mov r2, #2
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #1
- add r2, r2, r3
- bl FUN_02007558
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_0221A958:
- ldrb r0, [r4]
- add sp, #4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0221A962:
- ldrb r0, [r4, #9]
- add r0, r0, #1
- strb r0, [r4, #9]
- ldrb r1, [r4, #9]
- ldrb r0, [r4, #0xa]
- cmp r1, r0
- bhi _0221A972
- b _0221AA78
-_0221A972:
- ldr r0, [r4, #0xc]
- mov r1, #0
- bl MOD08_02212498
- add r5, r0, #0
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl MOD08_02212498
- add r6, r0, #0
- ldr r0, [r4, #0xc]
- mov r1, #3
- bl MOD08_02212498
- str r0, [sp]
- add r0, r4, #0
- lsl r1, r5, #0x10
- lsl r3, r6, #0x10
- add r0, #0x14
- asr r1, r1, #0x10
- mov r2, #0x64
- asr r3, r3, #0x10
- bl MOD08_02218120
- ldrb r0, [r4]
- add sp, #4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0221A9AC:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02218170
- cmp r0, #1
- bne _0221A9F0
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x16
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #0xd
- bl FUN_02007558
- mov r0, #2
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0x28]
- bl MOD08_0221828C
- mov r2, #2
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #1
- add r2, r2, r3
- bl FUN_02007558
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_0221A9F0:
- ldrb r0, [r4]
- add sp, #4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0221A9FA:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02218170
- cmp r0, #1
- ldr r0, [r4, #0x10]
- bne _0221AA3E
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x16
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #0xd
- bl FUN_02007558
- mov r0, #2
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0x28]
- bl MOD08_0221828C
- mov r2, #2
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #1
- add r2, r2, r3
- bl FUN_02007558
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_0221AA3E:
- mov r1, #0xc
- add r2, r1, #0
- add r2, #0xf4
- bl FUN_02007558
- mov r1, #0xd
- add r2, r1, #0
- ldr r0, [r4, #0x10]
- add r2, #0xf3
- bl FUN_02007558
- mov r2, #2
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_02007558
- ldrb r0, [r4]
- add sp, #4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0221AA6A:
- ldr r0, [r4, #0xc]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_0221AA78:
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-
- thumb_func_start MOD08_0221AA7C
-MOD08_0221AA7C: ; 0x0221AA7C
- push {r3, r4, r5, r6, lr}
- sub sp, #4
- add r5, r0, #0
- bl MOD08_02212014
- mov r1, #0x5c
- bl AllocFromHeap
- add r4, r0, #0
- mov r0, #0
- strb r0, [r4, #8]
- strb r0, [r4]
- str r5, [r4, #0xc]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #0xc]
- bl MOD08_022154D4
- str r0, [r4, #0x10]
- mov r0, #0
- strb r0, [r4, #9]
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- strb r0, [r4, #0xa]
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #2]
- ldr r0, [r4, #0xc]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #0xc]
- bl MOD08_0221552C
- str r0, [r4, #4]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- str r0, [sp]
- add r0, r4, #0
- mov r1, #0x64
- lsl r3, r6, #0x10
- add r0, #0x14
- add r2, r1, #0
- asr r3, r3, #0x10
- bl MOD08_02218120
- mov r0, #0xa
- str r0, [sp]
- add r0, r4, #0
- mov r2, #0
- add r0, #0x38
- mov r1, #2
- add r3, r2, #0
- bl MOD08_022183C0
- ldr r0, [r4, #0xc]
- ldr r1, _0221AB14 ; =MOD08_0221A8DC
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #4
- pop {r3, r4, r5, r6, pc}
- nop
-_0221AB14: .word MOD08_0221A8DC
-
- thumb_func_start MOD08_0221AB18
-MOD08_0221AB18: ; 0x0221AB18
- push {r3, r4, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #3
- bls _0221AB28
- b _0221ACA8
-_0221AB28:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221AB34: ; jump table
- .short _0221AB3C - _0221AB34 - 2 ; case 0
- .short _0221AB9E - _0221AB34 - 2 ; case 1
- .short _0221ABEA - _0221AB34 - 2 ; case 2
- .short _0221AC38 - _0221AB34 - 2 ; case 3
-_0221AB3C:
- add r0, r4, #0
- add r0, #0x20
- bl MOD08_02218224
- cmp r0, #1
- bne _0221AB94
- add r0, r4, #0
- add r0, #0x44
- bl MOD08_022183F0
- mov r2, #0x20
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x1c]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x22
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x1c]
- mov r1, #0xd
- bl FUN_02007558
- mov r2, #0x44
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x1c]
- mov r1, #0
- bl FUN_020079E0
- mov r0, #2
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0x34]
- bl MOD08_0221828C
- mov r2, #2
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x1c]
- mov r1, #1
- add r2, r2, r3
- bl FUN_02007558
- add sp, #0xc
- pop {r3, r4, pc}
-_0221AB94:
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, pc}
-_0221AB9E:
- ldrb r0, [r4, #9]
- add r0, r0, #1
- strb r0, [r4, #9]
- ldrb r1, [r4, #9]
- ldrb r0, [r4, #0xa]
- cmp r1, r0
- bhi _0221ABAE
- b _0221ACB6
-_0221ABAE:
- ldr r3, [r4, #0x10]
- ldr r2, [r4, #0xc]
- lsl r0, r3, #0x18
- lsr r0, r0, #0x18
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- asr r1, r2, #0x10
- mov r0, #0x64
- str r0, [sp, #4]
- ldr r0, [r4, #0x14]
- lsl r2, r2, #0x18
- lsr r2, r2, #0x18
- asr r3, r3, #0x10
- str r0, [sp, #8]
- add r0, r4, #0
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- lsl r3, r3, #0x10
- add r0, #0x20
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- asr r3, r3, #0x10
- bl MOD08_022181A8
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, pc}
-_0221ABEA:
- add r0, r4, #0
- add r0, #0x20
- bl MOD08_02218224
- cmp r0, #1
- bne _0221AC2E
- mov r2, #0x20
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x1c]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x22
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x1c]
- mov r1, #0xd
- bl FUN_02007558
- mov r0, #2
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0x34]
- bl MOD08_0221828C
- mov r2, #2
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x1c]
- mov r1, #1
- add r2, r2, r3
- bl FUN_02007558
- add sp, #0xc
- pop {r3, r4, pc}
-_0221AC2E:
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, pc}
-_0221AC38:
- add r0, r4, #0
- add r0, #0x20
- bl MOD08_02218224
- cmp r0, #1
- ldr r0, [r4, #0x1c]
- bne _0221AC7C
- mov r2, #0x20
- ldrsh r2, [r4, r2]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x22
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x1c]
- mov r1, #0xd
- bl FUN_02007558
- mov r0, #2
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0x34]
- bl MOD08_0221828C
- mov r2, #2
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x1c]
- mov r1, #1
- add r2, r2, r3
- bl FUN_02007558
- add sp, #0xc
- pop {r3, r4, pc}
-_0221AC7C:
- mov r1, #0xc
- add r2, r1, #0
- add r2, #0xf4
- bl FUN_02007558
- mov r1, #0xd
- add r2, r1, #0
- ldr r0, [r4, #0x1c]
- add r2, #0xf3
- bl FUN_02007558
- mov r2, #2
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x1c]
- mov r1, #1
- bl FUN_02007558
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, pc}
-_0221ACA8:
- ldr r0, [r4, #0x18]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_0221ACB6:
- add sp, #0xc
- pop {r3, r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221ACBC
-MOD08_0221ACBC: ; 0x0221ACBC
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r5, r0, #0
- bl MOD08_02212014
- mov r1, #0x68
- bl AllocFromHeap
- add r4, r0, #0
- mov r0, #0
- strb r0, [r4, #8]
- strb r0, [r4]
- str r5, [r4, #0x18]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #0x18]
- bl MOD08_022154D4
- str r0, [r4, #0x1c]
- mov r0, #0
- strb r0, [r4, #9]
- add r0, r5, #0
- mov r1, #6
- bl MOD08_02212498
- strb r0, [r4, #0xa]
- ldr r0, [r4, #0x18]
- mov r1, #3
- bl MOD08_02212498
- str r0, [r4, #0xc]
- ldr r0, [r4, #0x18]
- mov r1, #4
- bl MOD08_02212498
- str r0, [r4, #0x10]
- ldr r0, [r4, #0x18]
- mov r1, #5
- bl MOD08_02212498
- str r0, [r4, #0x14]
- ldr r0, [r4, #0x18]
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- mov r2, #0
- add r3, r4, #2
- bl MOD08_02217B50
- ldr r0, [r4, #0x18]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #0x18]
- bl MOD08_0221552C
- str r0, [r4, #4]
- mov r1, #2
- ldrsh r1, [r4, r1]
- add r0, r1, r0
- strh r0, [r4, #2]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- asr r0, r0, #0x10
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp, #0x10]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- lsl r0, r0, #0x10
- asr r7, r0, #0x10
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- asr r0, r0, #0x10
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp, #0xc]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- lsl r0, r0, #0x10
- asr r6, r0, #0x10
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- str r6, [sp]
- mov r1, #0x64
- str r1, [sp, #4]
- str r0, [sp, #8]
- add r0, r4, #0
- ldr r1, [sp, #0x10]
- ldr r3, [sp, #0xc]
- add r0, #0x20
- add r2, r7, #0
- bl MOD08_022181A8
- mov r0, #0xa
- str r0, [sp]
- add r0, r4, #0
- mov r2, #0
- add r0, #0x44
- mov r1, #2
- add r3, r2, #0
- bl MOD08_022183C0
- ldr r0, [r4, #0x18]
- ldr r1, _0221ADBC ; =MOD08_0221AB18
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- nop
-_0221ADBC: .word MOD08_0221AB18
-
- thumb_func_start MOD08_0221ADC0
-MOD08_0221ADC0: ; 0x0221ADC0
- push {r3, r4, r5, lr}
- mov r2, #1
- lsl r2, r2, #0x1a
- add r5, r0, #0
- add r4, r1, #0
- ldr r1, [r2]
- ldr r0, _0221ADEC ; =0xFFFF1FFF
- and r0, r1
- str r0, [r2]
- ldr r0, [r4, #8]
- mov r1, #2
- bl MOD08_02214850
- ldr r0, [r4, #8]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, pc}
- nop
-_0221ADEC: .word 0xFFFF1FFF
-
- thumb_func_start MOD08_0221ADF0
-MOD08_0221ADF0: ; 0x0221ADF0
- push {r3, r4, r5, lr}
- add r5, r0, #0
- mov r1, #0x28
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- add r0, r5, #0
- add r1, r4, #4
- bl MOD08_02227B70
- ldr r0, [r4, #8]
- mov r1, #2
- bl MOD08_0221477C
- ldr r0, [r4, #8]
- mov r1, #0
- bl MOD08_022124D8
- str r0, [r4, #0x24]
- mov r1, #2
- bl FUN_0200C90C
- ldr r0, [r4, #0x24]
- mov r1, #2
- bl FUN_0200C840
- ldr r1, _0221AE70 ; =0x3F99999A
- ldr r0, [r4, #0x24]
- add r2, r1, #0
- bl FUN_0200C884
- mov r0, #1
- lsl r0, r0, #0x1a
- ldr r2, [r0]
- ldr r1, _0221AE74 ; =0xFFFF1FFF
- and r2, r1
- lsr r1, r0, #0xb
- orr r1, r2
- str r1, [r0]
- add r0, #0x4a
- ldrh r2, [r0]
- mov r1, #0x3f
- bic r2, r1
- mov r1, #0x1b
- orr r1, r2
- strh r1, [r0]
- ldrh r2, [r0]
- ldr r1, _0221AE78 ; =0xFFFFC0FF
- and r2, r1
- mov r1, #7
- lsl r1, r1, #8
- orr r1, r2
- strh r1, [r0]
- ldr r0, [r4, #8]
- ldr r1, _0221AE7C ; =MOD08_0221ADC0
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, pc}
- nop
-_0221AE70: .word 0x3F99999A
-_0221AE74: .word 0xFFFF1FFF
-_0221AE78: .word 0xFFFFC0FF
-_0221AE7C: .word MOD08_0221ADC0
-
- thumb_func_start MOD08_0221AE80
-MOD08_0221AE80: ; 0x0221AE80
- push {r4, lr}
- sub sp, #8
- add r4, r1, #0
- add r2, r0, #0
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- cmp r0, #0
- beq _0221AE98
- cmp r0, #1
- beq _0221AED4
- b _0221AF0A
-_0221AE98:
- mov r0, #0x12
- ldrsh r3, [r4, r0]
- mov r0, #0x10
- ldrsh r1, [r4, r0]
- mov r0, #0x66
- ldrsh r0, [r4, r0]
- mov r2, #0x64
- add r0, r3, r0
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- ldr r0, [r4, #8]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #4]
- ldrsh r2, [r4, r2]
- add r0, r4, #0
- add r0, #0x3c
- add r2, r1, r2
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- bl MOD08_02217E80
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x20
- strb r1, [r0]
-_0221AED4:
- add r0, r4, #0
- add r0, #0x3c
- bl MOD08_02217ECC
- cmp r0, #0
- bne _0221AEEE
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x20
- strb r1, [r0]
-_0221AEEE:
- mov r2, #0x3c
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x14]
- mov r1, #0
- bl FUN_02007558
- mov r2, #0x3e
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x14]
- mov r1, #1
- bl FUN_02007558
- add sp, #8
- pop {r4, pc}
-_0221AF0A:
- ldr r0, [r4, #0x60]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #8
- pop {r4, pc}
-
- thumb_func_start MOD08_0221AF1C
-MOD08_0221AF1C: ; 0x0221AF1C
- push {r3, r4, r5, r6, r7, lr}
- mov r1, #0x68
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4, #0x60]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- str r0, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- add r1, r4, #0
- add r1, #0x64
- strh r0, [r1]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- add r1, r4, #0
- add r1, #0x66
- strh r0, [r1]
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- add r1, r4, #0
- add r7, r0, #0
- add r0, r5, #0
- add r1, #0x20
- bl MOD08_02227B70
- mov r6, #0xff
- add r0, r6, #0
- add r0, #9
- cmp r7, r0
- bgt _0221AF86
- add r0, r6, #3
- cmp r7, r0
- blt _0221AFDC
- beq _0221AF90
- add r0, r6, #5
- cmp r7, r0
- beq _0221AF9A
- add r0, r6, #0
- add r0, #9
- cmp r7, r0
- beq _0221AFB6
- b _0221AFDC
-_0221AF86:
- add r0, r6, #0
- add r0, #0x11
- cmp r7, r0
- beq _0221AFC0
- b _0221AFDC
-_0221AF90:
- add r0, r5, #0
- bl MOD08_02212458
- add r6, r0, #0
- b _0221AFE0
-_0221AF9A:
- add r0, r5, #0
- bl MOD08_0221553C
- cmp r0, #1
- bne _0221AFE0
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022274C0
- add r6, r0, #0
- b _0221AFE0
-_0221AFB6:
- add r0, r5, #0
- bl MOD08_02212460
- add r6, r0, #0
- b _0221AFE0
-_0221AFC0:
- add r0, r5, #0
- bl MOD08_0221553C
- cmp r0, #1
- bne _0221AFE0
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022274C0
- add r6, r0, #0
- b _0221AFE0
-_0221AFDC:
- bl ErrorHandling
-_0221AFE0:
- cmp r6, #0xff
- bne _0221AFEC
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, r6, r7, pc}
-_0221AFEC:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_022154D4
- str r0, [r4, #0x14]
- cmp r0, #0
- bne _0221B002
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, r6, r7, pc}
-_0221B002:
- add r1, r4, #0
- add r1, #0x10
- bl MOD08_02227B2C
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02217C1C
- cmp r0, #0
- bgt _0221B036
- mov r0, #0x64
- ldrsh r1, [r4, r0]
- sub r0, #0x65
- add r2, r1, #0
- mul r2, r0
- add r0, r4, #0
- add r0, #0x64
- strh r2, [r0]
- mov r0, #0x66
- ldrsh r1, [r4, r0]
- sub r0, #0x67
- add r2, r1, #0
- mul r2, r0
- add r0, r4, #0
- add r0, #0x66
- strh r2, [r0]
-_0221B036:
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _0221B050
- mov r0, #0x66
- ldrsh r1, [r4, r0]
- sub r0, #0x67
- add r2, r1, #0
- mul r2, r0
- add r0, r4, #0
- add r0, #0x66
- strh r2, [r0]
-_0221B050:
- ldr r0, [r4, #0x60]
- ldr r1, _0221B064 ; =MOD08_0221AE80
- add r2, r4, #0
- bl MOD08_02212400
- add r1, r4, #0
- bl MOD08_0221AE80
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0221B064: .word MOD08_0221AE80
-
- thumb_func_start MOD08_0221B068
-MOD08_0221B068: ; 0x0221B068
- push {r3, r4, r5, lr}
- add r4, r1, #0
- mov r1, #0x20
- mov r2, #0x22
- add r5, r0, #0
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r3, [r4, #0x24]
- add r0, #0x30
- bl MOD08_02217E58
- cmp r0, #0
- bne _0221B0AC
- mov r2, #0x20
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x24]
- mov r1, #0
- bl FUN_02007558
- mov r2, #0x22
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x24]
- mov r1, #1
- sub r2, #8
- bl FUN_02007558
- ldr r0, [r4, #4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_0221B0AC:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221B0B0
-MOD08_0221B0B0: ; 0x0221B0B0
- push {r3, r4, r5, r6, lr}
- sub sp, #4
- mov r1, #0x54
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02227B70
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- add r2, r4, #0
- add r1, r0, #0
- add r0, r5, #0
- add r2, #0x1c
- add r3, sp, #0
- bl MOD08_02227BAC
- mov r0, #0x22
- ldrsh r0, [r4, r0]
- mov r1, #1
- add r0, #8
- strh r0, [r4, #0x22]
- add r0, r5, #0
- bl MOD08_02212498
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- add r2, r0, #0
- add r0, r4, #0
- add r0, #0x30
- add r1, r6, #0
- bl MOD08_02218654
- ldr r1, [r4, #0x3c]
- add r2, r4, #0
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r0, r0, #1
- str r0, [r4, #0x3c]
- ldr r1, [r4, #0x44]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r0, r0, #1
- str r0, [r4, #0x44]
- ldr r0, [r4, #4]
- ldr r1, _0221B124 ; =MOD08_0221B068
- bl MOD08_02212400
- add sp, #4
- pop {r3, r4, r5, r6, pc}
- .align 2, 0
-_0221B124: .word MOD08_0221B068
-
- thumb_func_start MOD08_0221B128
-MOD08_0221B128: ; 0x0221B128
- push {r4, lr}
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- bne _0221B160
- add r0, r4, #0
- add r0, #0x30
- bl MOD08_02217ECC
- cmp r0, #0
- bne _0221B146
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221B146:
- mov r2, #0x30
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x24]
- mov r1, #0
- bl FUN_02007558
- mov r2, #0x32
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x24]
- mov r1, #1
- bl FUN_02007558
- pop {r4, pc}
-_0221B160:
- ldr r0, [r4, #4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
-
- thumb_func_start MOD08_0221B170
-MOD08_0221B170: ; 0x0221B170
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- mov r1, #0x5c
- add r6, r0, #0
- bl MOD08_02228064
- add r5, r0, #0
- add r0, r6, #0
- add r1, r5, #0
- bl MOD08_02227B70
- add r0, r6, #0
- mov r1, #0
- bl MOD08_02212498
- add r4, r0, #0
- add r0, r6, #0
- mov r1, #1
- bl MOD08_02212498
- add r7, r0, #0
- cmp r4, #8
- bgt _0221B1AE
- cmp r4, #2
- blt _0221B1EC
- beq _0221B1B4
- cmp r4, #4
- beq _0221B1BE
- cmp r4, #8
- beq _0221B1D0
- b _0221B1EC
-_0221B1AE:
- cmp r4, #0x10
- beq _0221B1DA
- b _0221B1EC
-_0221B1B4:
- add r0, r6, #0
- bl MOD08_02212458
- str r0, [sp, #8]
- b _0221B1F0
-_0221B1BE:
- add r0, r6, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_022274C0
- str r0, [sp, #8]
- b _0221B1F0
-_0221B1D0:
- add r0, r6, #0
- bl MOD08_02212460
- str r0, [sp, #8]
- b _0221B1F0
-_0221B1DA:
- add r0, r6, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_022274C0
- str r0, [sp, #8]
- b _0221B1F0
-_0221B1EC:
- bl ErrorHandling
-_0221B1F0:
- add r2, r5, #0
- ldr r1, [sp, #8]
- add r0, r6, #0
- add r2, #0x54
- bl MOD08_022275C0
- add r2, r5, #0
- add r0, r6, #0
- add r1, r4, #0
- add r2, #0x1c
- add r3, sp, #0xc
- bl MOD08_02227BAC
- add r0, r5, #0
- mov r1, #0
- add r0, #0x58
- strh r1, [r0]
- add r0, r5, #0
- add r0, #0x5a
- strh r1, [r0]
- ldr r0, [r5, #4]
- ldr r1, [sp, #8]
- bl MOD08_02227470
- cmp r0, #3
- bne _0221B22A
- mov r1, #0x4f
- mvn r1, r1
- b _0221B22E
-_0221B22A:
- mov r1, #0x15
- lsl r1, r1, #4
-_0221B22E:
- add r0, r5, #0
- add r0, #0x58
- strh r1, [r0]
- mov r0, #0x22
- ldrsh r3, [r5, r0]
- lsl r0, r7, #0x10
- lsr r0, r0, #0x10
- str r3, [sp]
- str r0, [sp, #4]
- mov r1, #0x20
- mov r2, #0x58
- add r0, r5, #0
- ldrsh r1, [r5, r1]
- ldrsh r2, [r5, r2]
- add r0, #0x30
- bl MOD08_02217E80
- ldr r0, [r5, #4]
- ldr r1, _0221B260 ; =MOD08_0221B128
- add r2, r5, #0
- bl MOD08_02212400
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0221B260: .word MOD08_0221B128
-
- thumb_func_start MOD08_0221B264
-MOD08_0221B264: ; 0x0221B264
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- mov r1, #0x5c
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02227B70
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- str r0, [sp, #0xc]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- add r7, r0, #0
- cmp r6, #8
- bgt _0221B2AC
- cmp r6, #2
- blt _0221B2EA
- beq _0221B2B2
- cmp r6, #4
- beq _0221B2BC
- cmp r6, #8
- beq _0221B2CE
- b _0221B2EA
-_0221B2AC:
- cmp r6, #0x10
- beq _0221B2D8
- b _0221B2EA
-_0221B2B2:
- add r0, r5, #0
- bl MOD08_02212458
- str r0, [sp, #8]
- b _0221B2EE
-_0221B2BC:
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022274C0
- str r0, [sp, #8]
- b _0221B2EE
-_0221B2CE:
- add r0, r5, #0
- bl MOD08_02212460
- str r0, [sp, #8]
- b _0221B2EE
-_0221B2D8:
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022274C0
- str r0, [sp, #8]
- b _0221B2EE
-_0221B2EA:
- bl ErrorHandling
-_0221B2EE:
- add r2, r4, #0
- ldr r1, [sp, #8]
- add r0, r5, #0
- add r2, #0x54
- bl MOD08_022275C0
- add r2, r4, #0
- add r0, r5, #0
- add r1, r6, #0
- add r2, #0x1c
- add r3, sp, #0x10
- bl MOD08_02227BAC
- add r0, r4, #0
- mov r1, #0
- add r0, #0x58
- strh r1, [r0]
- add r0, r4, #0
- add r0, #0x5a
- strh r1, [r0]
- ldr r0, [r4, #4]
- ldr r1, [sp, #8]
- bl MOD08_02227470
- cmp r0, #3
- bne _0221B328
- mov r1, #0x4f
- mvn r1, r1
- b _0221B32C
-_0221B328:
- mov r1, #0x15
- lsl r1, r1, #4
-_0221B32C:
- add r0, r4, #0
- add r0, #0x58
- strh r1, [r0]
- ldr r0, [sp, #0xc]
- cmp r0, #0
- bne _0221B356
- mov r0, #0x22
- ldrsh r3, [r4, r0]
- lsl r0, r7, #0x10
- lsr r0, r0, #0x10
- str r3, [sp]
- str r0, [sp, #4]
- mov r1, #0x20
- mov r2, #0x58
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- add r0, #0x30
- bl MOD08_02217E80
- b _0221B37A
-_0221B356:
- ldr r1, [sp, #8]
- add r0, r5, #0
- mov r2, #0
- bl MOD08_02217B98
- add r2, r0, #0
- mov r0, #0x22
- ldrsh r3, [r4, r0]
- lsl r0, r7, #0x10
- lsr r0, r0, #0x10
- str r3, [sp]
- str r0, [sp, #4]
- mov r1, #0x58
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- add r0, #0x30
- bl MOD08_02217E80
-_0221B37A:
- ldr r0, [r4, #4]
- ldr r1, _0221B388 ; =MOD08_0221B128
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0221B388: .word MOD08_0221B128
-
- thumb_func_start MOD08_0221B38C
-MOD08_0221B38C: ; 0x0221B38C
- push {r3, r4, r5, r6, lr}
- sub sp, #0x1c
- mov r1, #0
- add r5, r0, #0
- bl MOD08_02212498
- add r4, r0, #0
- cmp r4, #8
- bgt _0221B3AE
- cmp r4, #2
- blt _0221B3EC
- beq _0221B3B4
- cmp r4, #4
- beq _0221B3BE
- cmp r4, #8
- beq _0221B3D0
- b _0221B3EC
-_0221B3AE:
- cmp r4, #0x10
- beq _0221B3DA
- b _0221B3EC
-_0221B3B4:
- add r0, r5, #0
- bl MOD08_02212458
- add r6, r0, #0
- b _0221B3F0
-_0221B3BE:
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022274C0
- add r6, r0, #0
- b _0221B3F0
-_0221B3D0:
- add r0, r5, #0
- bl MOD08_02212460
- add r6, r0, #0
- b _0221B3F0
-_0221B3DA:
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022274C0
- add r6, r0, #0
- b _0221B3F0
-_0221B3EC:
- bl ErrorHandling
-_0221B3F0:
- add r0, r5, #0
- add r1, r6, #0
- add r2, sp, #0
- bl MOD08_022275C0
- add r0, r5, #0
- add r1, r4, #0
- add r2, sp, #8
- add r3, sp, #4
- bl MOD08_02227BAC
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_0221552C
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- mov r1, #0
- add r2, sp, #0
- ldrsh r2, [r2, r1]
- ldr r0, [sp, #0x10]
- bl FUN_02007558
- add r3, sp, #0
- mov r2, #2
- ldrsh r2, [r3, r2]
- ldr r0, [sp, #0x10]
- mov r1, #1
- add r2, r2, r4
- bl FUN_02007558
- add sp, #0x1c
- pop {r3, r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221B434
-MOD08_0221B434: ; 0x0221B434
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0x30]
- bl MOD08_02218AF8
- cmp r0, #0
- bne _0221B458
- ldr r0, [r4, #0x30]
- bl MOD08_02218B08
- ldr r0, [r4, #4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_0221B458:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221B45C
-MOD08_0221B45C: ; 0x0221B45C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x30
- mov r1, #0x34
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02227B70
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- add r7, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- str r0, [sp, #0x1c]
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- str r0, [sp, #0x20]
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- str r0, [sp, #0x24]
- add r0, r5, #0
- mov r1, #5
- bl MOD08_02212498
- add r2, r4, #0
- str r0, [sp, #0x28]
- add r0, r5, #0
- add r1, r7, #0
- add r2, #0x1c
- add r3, sp, #0x2c
- bl MOD08_02227F88
- ldr r0, [r4, #0x28]
- ldr r0, [r0]
- bl FUN_02020354
- mov r1, #1
- bl FUN_0201E28C
- add r7, r0, #0
- add r0, r5, #0
- bl MOD08_02212014
- add r1, r0, #0
- mov r0, #0x10
- str r0, [sp]
- lsl r0, r6, #0x18
- asr r0, r0, #0x18
- str r0, [sp, #4]
- ldr r0, [sp, #0x1c]
- lsl r3, r7, #0x14
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [sp, #8]
- ldr r0, [sp, #0x20]
- mov r2, #2
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x24]
- lsr r3, r3, #0x10
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x10]
- ldr r0, [sp, #0x28]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x14]
- ldr r0, _0221B520 ; =0x0000044C
- str r0, [sp, #0x18]
- ldr r0, [r4, #0x18]
- bl MOD08_02218B20
- str r0, [r4, #0x30]
- ldr r0, [r4, #4]
- ldr r1, _0221B524 ; =MOD08_0221B434
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x30
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0221B520: .word 0x0000044C
-_0221B524: .word MOD08_0221B434
-
- thumb_func_start MOD08_0221B528
-MOD08_0221B528: ; 0x0221B528
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- bne _0221B59C
- ldr r0, [r4, #0x4c]
- add r1, r0, #1
- str r1, [r4, #0x4c]
- ldr r0, [r4, #0x44]
- cmp r1, r0
- blt _0221B5B0
- mov r1, #0
- str r1, [r4, #0x4c]
- ldr r0, [r4, #0x48]
- cmp r0, #0
- ldr r0, [r4, #0x54]
- bne _0221B560
- cmp r0, #0
- bge _0221B552
- str r1, [r4, #0x54]
-_0221B552:
- ldr r0, [r4, #0x54]
- cmp r0, #0
- bne _0221B574
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221B574
-_0221B560:
- cmp r0, #0x50
- ble _0221B568
- mov r0, #0x50
- str r0, [r4, #0x54]
-_0221B568:
- ldr r0, [r4, #0x54]
- cmp r0, #0x50
- bne _0221B574
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221B574:
- ldr r0, [r4, #0x24]
- ldr r2, [r4, #0x54]
- mov r1, #0x12
- bl FUN_02007558
- ldr r0, [r4, #0x24]
- ldr r2, [r4, #0x50]
- mov r1, #1
- bl FUN_02007558
- mov r0, #0x42
- ldrsh r1, [r4, r0]
- ldr r2, [r4, #0x50]
- sub r1, r2, r1
- str r1, [r4, #0x50]
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #0x54]
- add r0, r1, r0
- str r0, [r4, #0x54]
- pop {r3, r4, r5, pc}
-_0221B59C:
- ldr r0, [r4, #0x24]
- bl MOD08_02218E34
- ldr r0, [r4, #4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_0221B5B0:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221B5B4
-MOD08_0221B5B4: ; 0x0221B5B4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- mov r1, #0x58
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02227B70
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- add r6, r0, #0
- add r2, r4, #0
- add r0, r5, #0
- add r1, r6, #0
- add r2, #0x1c
- add r3, sp, #4
- bl MOD08_02227BAC
- cmp r6, #8
- bgt _0221B5F6
- cmp r6, #2
- blt _0221B634
- beq _0221B5FC
- cmp r6, #4
- beq _0221B606
- cmp r6, #8
- beq _0221B618
- b _0221B634
-_0221B5F6:
- cmp r6, #0x10
- beq _0221B622
- b _0221B634
-_0221B5FC:
- add r0, r5, #0
- bl MOD08_02212458
- add r7, r0, #0
- b _0221B638
-_0221B606:
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022274C0
- add r7, r0, #0
- b _0221B638
-_0221B618:
- add r0, r5, #0
- bl MOD08_02212460
- add r7, r0, #0
- b _0221B638
-_0221B622:
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022274C0
- add r7, r0, #0
- b _0221B638
-_0221B634:
- bl ErrorHandling
-_0221B638:
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- str r0, [r4, #0x48]
- cmp r0, #0
- ldr r0, [r4, #0x24]
- bne _0221B68C
- mov r1, #1
- bl FUN_0200782C
- str r0, [r4, #0x50]
- ldr r0, [r4, #0x24]
- mov r1, #0x12
- bl FUN_0200782C
- mov r1, #0x50
- sub r0, r1, r0
- str r0, [r4, #0x54]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- add r1, r4, #0
- add r1, #0x40
- strh r0, [r1]
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- add r1, r4, #0
- add r1, #0x42
- strh r0, [r1]
- mov r0, #0x42
- ldrsh r1, [r4, r0]
- sub r0, #0x43
- add r2, r1, #0
- mul r2, r0
- add r0, r4, #0
- add r0, #0x42
- strh r2, [r0]
- b _0221B6BA
-_0221B68C:
- mov r1, #1
- bl FUN_0200782C
- str r0, [r4, #0x50]
- ldr r0, [r4, #0x24]
- mov r1, #0x12
- bl FUN_0200782C
- str r0, [r4, #0x54]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- add r1, r4, #0
- add r1, #0x40
- strh r0, [r1]
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- add r1, r4, #0
- add r1, #0x42
- strh r0, [r1]
-_0221B6BA:
- mov r0, #0
- str r0, [r4, #0x30]
- str r0, [r4, #0x34]
- mov r0, #0x50
- str r0, [r4, #0x38]
- add r0, r5, #0
- add r1, r7, #0
- bl MOD08_0221552C
- mov r1, #0x50
- sub r0, r1, r0
- str r0, [r4, #0x3c]
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- str r0, [r4, #0x44]
- mov r0, #0
- str r0, [r4, #0x4c]
- ldr r0, [r4, #0x3c]
- str r0, [sp]
- ldr r0, [r4, #0x24]
- ldr r1, [r4, #0x30]
- ldr r2, [r4, #0x34]
- ldr r3, [r4, #0x38]
- bl FUN_02007E40
- ldr r0, [r4, #4]
- ldr r1, _0221B700 ; =MOD08_0221B528
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0221B700: .word MOD08_0221B528
-
- thumb_func_start MOD08_0221B704
-MOD08_0221B704: ; 0x0221B704
- push {r3, r4, r5, lr}
- add r5, r0, #0
- mov r4, #0
- cmp r1, #8
- bgt _0221B71E
- cmp r1, #2
- blt _0221B754
- beq _0221B724
- cmp r1, #4
- beq _0221B72C
- cmp r1, #8
- beq _0221B73C
- b _0221B754
-_0221B71E:
- cmp r1, #0x10
- beq _0221B744
- b _0221B754
-_0221B724:
- bl MOD08_02212458
- add r4, r0, #0
- b _0221B758
-_0221B72C:
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022274C0
- add r4, r0, #0
- b _0221B758
-_0221B73C:
- bl MOD08_02212460
- add r4, r0, #0
- b _0221B758
-_0221B744:
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022274C0
- add r4, r0, #0
- b _0221B758
-_0221B754:
- bl ErrorHandling
-_0221B758:
- add r0, r4, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_0221B75C
-MOD08_0221B75C: ; 0x0221B75C
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _0221B76E
- cmp r0, #1
- beq _0221B7B4
- pop {r3, r4, r5, pc}
-_0221B76E:
- ldr r0, [r4, #0x24]
- add r1, r0, #1
- str r1, [r4, #0x24]
- ldr r0, [r4, #0x20]
- cmp r1, r0
- blt _0221B7E6
- mov r0, #0
- str r0, [r4, #0x24]
- mov r0, #0x1c
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #0x44]
- add r2, r1, r0
- str r2, [r4, #0x44]
- ldr r0, [r4, #0x30]
- mov r1, #1
- bl FUN_02007558
- mov r0, #0x1c
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #0x3c]
- sub r1, r1, r0
- str r1, [r4, #0x3c]
- ldr r0, [r4, #0x40]
- cmp r1, r0
- ble _0221B7A8
- str r0, [r4, #0x3c]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221B7A8:
- ldr r0, [r4, #0x30]
- ldr r2, [r4, #0x3c]
- mov r1, #0x12
- bl FUN_02007558
- pop {r3, r4, r5, pc}
-_0221B7B4:
- ldr r0, [r4, #0x30]
- mov r1, #0xe
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #0x30]
- ldr r2, [r4, #0x48]
- mov r1, #1
- bl FUN_02007558
- ldr r0, [r4, #0x30]
- ldr r2, [r4, #0x40]
- mov r1, #0x12
- bl FUN_02007558
- ldr r0, [r4, #0x30]
- bl MOD08_02218E34
- ldr r0, [r4, #4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_0221B7E6:
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_0221B7E8
-MOD08_0221B7E8: ; 0x0221B7E8
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _0221B7FA
- cmp r0, #1
- beq _0221B83E
- pop {r3, r4, r5, pc}
-_0221B7FA:
- ldr r0, [r4, #0x24]
- add r1, r0, #1
- str r1, [r4, #0x24]
- ldr r0, [r4, #0x20]
- cmp r1, r0
- blt _0221B870
- mov r0, #0
- str r0, [r4, #0x24]
- mov r0, #0x1c
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #0x44]
- add r2, r1, r0
- str r2, [r4, #0x44]
- ldr r0, [r4, #0x30]
- mov r1, #1
- bl FUN_02007558
- mov r0, #0x1c
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #0x3c]
- sub r0, r1, r0
- str r0, [r4, #0x3c]
- bpl _0221B832
- mov r0, #0
- str r0, [r4, #0x3c]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221B832:
- ldr r0, [r4, #0x30]
- ldr r2, [r4, #0x3c]
- mov r1, #0x12
- bl FUN_02007558
- pop {r3, r4, r5, pc}
-_0221B83E:
- ldr r0, [r4, #0x30]
- mov r1, #0xe
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #0x30]
- ldr r2, [r4, #0x48]
- mov r1, #1
- bl FUN_02007558
- ldr r0, [r4, #0x30]
- ldr r2, [r4, #0x40]
- mov r1, #0x12
- bl FUN_02007558
- ldr r0, [r4, #0x30]
- bl MOD08_02218E34
- ldr r0, [r4, #4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_0221B870:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221B874
-MOD08_0221B874: ; 0x0221B874
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _0221B886
- cmp r0, #1
- beq _0221B8C8
- pop {r3, r4, r5, pc}
-_0221B886:
- ldr r0, [r4, #0x24]
- add r1, r0, #1
- str r1, [r4, #0x24]
- ldr r0, [r4, #0x20]
- cmp r1, r0
- blt _0221B8E6
- mov r0, #0
- str r0, [r4, #0x24]
- mov r1, #0x1c
- ldrsh r2, [r4, r1]
- ldr r3, [r4, #0x3c]
- sub r2, r3, r2
- str r2, [r4, #0x3c]
- ldrsh r1, [r4, r1]
- ldr r2, [r4, #0x40]
- add r1, r2, r1
- str r1, [r4, #0x40]
- ldr r1, [r4, #0x3c]
- cmp r1, #0
- bge _0221B8B6
- str r0, [r4, #0x3c]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221B8B6:
- ldr r0, [r4, #0x40]
- mov r1, #0
- str r0, [sp]
- ldr r0, [r4, #0x30]
- ldr r2, [r4, #0x3c]
- mov r3, #0x50
- bl FUN_02007E40
- pop {r3, r4, r5, pc}
-_0221B8C8:
- ldr r0, [r4, #0x30]
- mov r1, #0xe
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #0x30]
- bl MOD08_02218E34
- ldr r0, [r4, #4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_0221B8E6:
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_0221B8E8
-MOD08_0221B8E8: ; 0x0221B8E8
- push {r4, r5, r6, lr}
- sub sp, #8
- mov r1, #0x50
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02227B70
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- strh r0, [r4, #0x1c]
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- str r0, [r4, #0x20]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- add r6, r0, #0
- add r2, r4, #0
- add r0, r5, #0
- add r1, r6, #0
- add r2, #0x28
- add r3, sp, #4
- bl MOD08_02227BAC
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_0221B704
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #5
- bl MOD08_02212498
- cmp r0, #0
- beq _0221B96A
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_0221552C
- mov r3, #0x50
- sub r0, r3, r0
- str r0, [r4, #0x3c]
- mov r1, #0
- str r1, [r4, #0x40]
- str r1, [sp]
- ldr r0, [r4, #0x30]
- ldr r2, [r4, #0x3c]
- bl FUN_02007E40
- ldr r0, [r4, #4]
- ldr r1, _0221B9DC ; =MOD08_0221B874
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #8
- pop {r4, r5, r6, pc}
-_0221B96A:
- ldr r0, [r4, #0x30]
- mov r1, #1
- bl FUN_0200782C
- str r0, [r4, #0x44]
- str r0, [r4, #0x48]
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_0221552C
- mov r3, #0x50
- sub r0, r3, r0
- str r0, [r4, #0x3c]
- str r0, [r4, #0x40]
- mov r0, #0x1c
- ldrsh r0, [r4, r0]
- cmp r0, #0
- ble _0221B9AA
- ldr r0, [r4, #0x3c]
- mov r1, #0
- str r0, [sp]
- ldr r0, [r4, #0x30]
- add r2, r1, #0
- bl FUN_02007E40
- ldr r0, [r4, #4]
- ldr r1, _0221B9E0 ; =MOD08_0221B7E8
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #8
- pop {r4, r5, r6, pc}
-_0221B9AA:
- mov r0, #0
- str r0, [r4, #0x3c]
- ldr r1, [r4, #0x44]
- ldr r0, [r4, #0x40]
- add r2, r1, r0
- str r2, [r4, #0x44]
- ldr r0, [r4, #0x30]
- mov r1, #1
- bl FUN_02007558
- ldr r0, [r4, #0x3c]
- mov r1, #0
- str r0, [sp]
- ldr r0, [r4, #0x30]
- add r2, r1, #0
- mov r3, #0x50
- bl FUN_02007E40
- ldr r0, [r4, #4]
- ldr r1, _0221B9E4 ; =MOD08_0221B75C
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #8
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0221B9DC: .word MOD08_0221B874
-_0221B9E0: .word MOD08_0221B7E8
-_0221B9E4: .word MOD08_0221B75C
-
- thumb_func_start MOD08_0221B9E8
-MOD08_0221B9E8: ; 0x0221B9E8
- push {r3, r4, lr}
- sub sp, #4
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _0221B9FC
- cmp r0, #1
- beq _0221BA1C
- b _0221BAAC
-_0221B9FC:
- ldr r0, [r4, #0x10]
- str r0, [sp]
- ldr r1, [r4, #4]
- ldr r2, [r4, #8]
- add r0, r4, #0
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- ldr r3, [r4, #0xc]
- add r0, #0xd4
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl MOD08_022183C0
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221BA1C:
- add r0, r4, #0
- add r0, #0xd4
- bl MOD08_022183F0
- cmp r0, #0
- bne _0221BA70
- ldrb r1, [r4, #1]
- ldr r0, [r4, #0x18]
- cmp r1, r0
- ldrb r0, [r4]
- blt _0221BA36
- add r0, r0, #1
- b _0221BA38
-_0221BA36:
- sub r0, r0, #1
-_0221BA38:
- strb r0, [r4]
- ldr r0, [r4, #0x20]
- cmp r0, #0
- beq _0221BA50
- ldr r1, [r4, #0x1c]
- mov r2, #0
- lsl r1, r1, #0x18
- ldr r0, [r4, #0x28]
- lsr r1, r1, #0x18
- add r3, r2, #0
- bl FUN_020179E0
-_0221BA50:
- ldr r0, [r4, #0x24]
- cmp r0, #0
- beq _0221BA66
- ldr r1, [r4, #0x1c]
- ldr r0, [r4, #0x28]
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- mov r2, #3
- mov r3, #0
- bl FUN_020179E0
-_0221BA66:
- ldrb r0, [r4, #1]
- add sp, #4
- add r0, r0, #1
- strb r0, [r4, #1]
- pop {r3, r4, pc}
-_0221BA70:
- mov r3, #0xd4
- ldrsh r0, [r4, r3]
- cmp r0, #0
- beq _0221BA8C
- mov r0, #1
- str r0, [r4, #0x20]
- ldr r1, [r4, #0x1c]
- ldrsh r3, [r4, r3]
- lsl r1, r1, #0x18
- ldr r0, [r4, #0x28]
- lsr r1, r1, #0x18
- mov r2, #0
- bl FUN_020179E0
-_0221BA8C:
- mov r3, #0xd6
- ldrsh r0, [r4, r3]
- cmp r0, #0
- beq _0221BABA
- mov r0, #1
- str r0, [r4, #0x24]
- ldr r1, [r4, #0x1c]
- ldrsh r3, [r4, r3]
- lsl r1, r1, #0x18
- ldr r0, [r4, #0x28]
- lsr r1, r1, #0x18
- mov r2, #3
- bl FUN_020179E0
- add sp, #4
- pop {r3, r4, pc}
-_0221BAAC:
- ldr r0, [r4, #0x2c]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_0221BABA:
- add sp, #4
- pop {r3, r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221BAC0
-MOD08_0221BAC0: ; 0x0221BAC0
- push {r3, r4, r5, lr}
- mov r1, #0xf8
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- mov r0, #0
- strb r0, [r4]
- strb r0, [r4, #1]
- str r5, [r4, #0x2c]
- add r0, r5, #0
- bl MOD08_02212504
- str r0, [r4, #0x30]
- ldr r0, [r4, #0x2c]
- bl MOD08_02212490
- str r0, [r4, #0x28]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- str r0, [r4, #4]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- str r0, [r4, #8]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- str r0, [r4, #0xc]
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- str r0, [r4, #0x10]
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- str r0, [r4, #0x18]
- add r0, r5, #0
- mov r1, #5
- bl MOD08_02212498
- cmp r0, #0
- bne _0221BB26
- mov r0, #3
- b _0221BB28
-_0221BB26:
- mov r0, #2
-_0221BB28:
- str r0, [r4, #0x1c]
- ldr r0, [r4, #0x2c]
- ldr r1, _0221BB38 ; =MOD08_0221B9E8
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, pc}
- nop
-_0221BB38: .word MOD08_0221B9E8
-
- thumb_func_start MOD08_0221BB3C
-MOD08_0221BB3C: ; 0x0221BB3C
- push {r4, lr}
- add r4, r1, #0
- add r2, r0, #0
- ldr r0, [r4, #0x2c]
- ldr r3, [r4, #0x24]
- cmp r3, r0
- beq _0221BB50
- ldr r1, [r4, #0x28]
- cmp r1, r0
- bne _0221BB60
-_0221BB50:
- ldr r0, [r4, #4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
-_0221BB60:
- mov r1, #0x20
- ldrsh r2, [r4, r1]
- cmp r2, #0
- bge _0221BB82
- add r2, r3, r2
- cmp r2, #0
- ble _0221BB7A
- str r2, [r4, #0x24]
- ldrsh r0, [r4, r1]
- ldr r2, [r4, #0x28]
- add r0, r2, r0
- str r0, [r4, #0x28]
- b _0221BB9A
-_0221BB7A:
- str r0, [r4, #0x24]
- ldr r0, [r4, #0x2c]
- str r0, [r4, #0x28]
- b _0221BB9A
-_0221BB82:
- add r2, r3, r2
- cmp r2, #0xf
- bge _0221BB94
- str r2, [r4, #0x24]
- ldrsh r0, [r4, r1]
- ldr r2, [r4, #0x28]
- add r0, r2, r0
- str r0, [r4, #0x28]
- b _0221BB9A
-_0221BB94:
- str r0, [r4, #0x24]
- ldr r0, [r4, #0x2c]
- str r0, [r4, #0x28]
-_0221BB9A:
- ldr r0, [r4, #0x1c]
- bl FUN_0200C5A8
- ldr r0, [r4, #0x28]
- ldr r1, [r4, #0x24]
- lsl r0, r0, #4
- orr r1, r0
- ldr r0, _0221BBB4 ; =0x0400004D
- strb r1, [r0]
- ldr r0, [r4, #0xc]
- bl FUN_0200BC1C
- pop {r4, pc}
- .align 2, 0
-_0221BBB4: .word 0x0400004D
-
- thumb_func_start MOD08_0221BBB8
-MOD08_0221BBB8: ; 0x0221BBB8
- push {r3, r4, r5, lr}
- mov r1, #0x30
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02227B70
- ldr r0, [r4, #4]
- mov r1, #1
- bl MOD08_02212498
- strh r0, [r4, #0x20]
- ldr r0, [r4, #4]
- mov r1, #2
- bl MOD08_02212498
- str r0, [r4, #0x24]
- ldr r0, [r4, #4]
- mov r1, #3
- bl MOD08_02212498
- str r0, [r4, #0x28]
- ldr r0, [r4, #4]
- mov r1, #0
- bl MOD08_02212498
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_022124D8
- mov r1, #1
- str r0, [r4, #0x1c]
- bl FUN_0200C644
- mov r0, #0x20
- ldrsh r0, [r4, r0]
- cmp r0, #0
- bge _0221BC0E
- mov r0, #0
- b _0221BC10
-_0221BC0E:
- mov r0, #0xf
-_0221BC10:
- str r0, [r4, #0x2c]
- ldr r0, [r4, #0x1c]
- mov r1, #1
- bl FUN_0200C8F8
- ldr r0, [r4, #4]
- ldr r1, _0221BC2C ; =MOD08_0221BB3C
- add r2, r4, #0
- bl MOD08_02212400
- add r1, r4, #0
- bl MOD08_0221BB3C
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0221BC2C: .word MOD08_0221BB3C
-
- thumb_func_start MOD08_0221BC30
-MOD08_0221BC30: ; 0x0221BC30
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- mov r1, #0
- bl MOD08_02212498
- str r0, [r4]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- strh r0, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- strh r0, [r4, #0xe]
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- strh r0, [r4, #4]
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- strh r0, [r4, #6]
- add r0, r5, #0
- mov r1, #5
- bl MOD08_02212498
- str r0, [r4, #8]
- add r0, r5, #0
- mov r1, #6
- bl MOD08_02212498
- str r0, [r4, #0x10]
- add r0, r5, #0
- mov r1, #8
- bl MOD08_02212498
- str r0, [r4, #0x30]
- add r0, r5, #0
- mov r1, #7
- bl MOD08_02212498
- ldr r2, _0221BCFC ; =0xFFFF0000
- mov r1, #0
- and r2, r0
- lsl r0, r0, #0x10
- str r1, [r4, #0x1c]
- lsr r2, r2, #0x10
- str r2, [r4, #0x20]
- lsr r0, r0, #0x10
- str r0, [r4, #0x24]
- ldr r0, [r4, #0x20]
- cmp r0, #0
- bne _0221BCA6
- str r1, [r4, #0x20]
-_0221BCA6:
- ldr r0, [r4, #0x24]
- cmp r0, #0
- bne _0221BCB0
- mov r0, #0xff
- str r0, [r4, #0x24]
-_0221BCB0:
- ldr r1, [r4]
- add r0, r5, #0
- bl MOD08_02212484
- str r0, [r4, #0x38]
- add r0, r5, #0
- bl MOD08_02212468
- str r0, [r4, #0x34]
- ldr r0, [r4, #0x10]
- cmp r0, #0
- bne _0221BCDA
- add r0, r5, #0
- bl MOD08_02212458
- str r0, [r4, #0x14]
- add r0, r5, #0
- bl MOD08_02212460
- str r0, [r4, #0x18]
- b _0221BCEE
-_0221BCDA:
- cmp r0, #1
- bne _0221BCEE
- add r0, r5, #0
- bl MOD08_02212460
- str r0, [r4, #0x14]
- add r0, r5, #0
- bl MOD08_02212458
- str r0, [r4, #0x18]
-_0221BCEE:
- ldr r0, [r4, #0x38]
- cmp r0, #0
- bne _0221BCF8
- bl ErrorHandling
-_0221BCF8:
- pop {r3, r4, r5, pc}
- nop
-_0221BCFC: .word 0xFFFF0000
-
- thumb_func_start MOD08_0221BD00
-MOD08_0221BD00: ; 0x0221BD00
- ldr r0, [r0, #8]
- mov r1, #0
- cmp r0, #0
- beq _0221BD12
-_0221BD08:
- ldrh r2, [r0, #0x26]
- ldrh r3, [r0, #0x24]
- ldr r0, [r0]
- cmp r0, #0
- bne _0221BD08
-_0221BD12:
- cmp r2, r3
- beq _0221BD18
- mov r1, #1
-_0221BD18:
- add r0, r1, #0
- bx lr
-
- thumb_func_start MOD08_0221BD1C
-MOD08_0221BD1C: ; 0x0221BD1C
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r6, r0, #0
- ldr r0, [r5, #0x38]
- bl MOD08_0221BD00
- add r4, r0, #0
- mov r0, #4
- ldrsh r0, [r5, r0]
- ldr r1, [r5, #0x28]
- cmp r1, r0
- bge _0221BD3A
- add r0, r1, #1
- str r0, [r5, #0x28]
- pop {r4, r5, r6, pc}
-_0221BD3A:
- add r0, r5, #0
- add r0, #0xa8
- bl MOD08_02217ECC
- cmp r0, #0
- bne _0221BD62
- cmp r4, #0
- bne _0221BD62
- ldr r0, [r5, #0x34]
- ldr r1, [r5, #0x38]
- bl FUN_020133DC
- ldr r0, [r5, #0x40]
- add r1, r6, #0
- bl MOD08_02212438
- add r0, r5, #0
- bl MOD08_02228094
- pop {r4, r5, r6, pc}
-_0221BD62:
- ldr r1, [r5, #0x1c]
- ldr r0, [r5, #0x20]
- cmp r0, r1
- bgt _0221BD70
- ldr r0, [r5, #0x24]
- cmp r0, r1
- bge _0221BD76
-_0221BD70:
- ldr r0, [r5, #0x24]
- cmp r0, #0xff
- bne _0221BDD4
-_0221BD76:
- mov r0, #0xa8
- ldrsh r2, [r5, r0]
- ldr r1, [r5, #0x38]
- mov r3, #0xac
- add r0, r2, #0
- ldr r2, [r1, #0x20]
- mul r0, r3
- ldr r2, [r2]
- ldr r2, [r2, #4]
- add r0, r0, r2
- str r0, [r1, #0x28]
- mov r0, #0xaa
- ldrsh r4, [r5, r0]
- ldr r2, [r5, #0x38]
- add r1, r4, #0
- mul r1, r3
- ldr r3, [r2, #0x20]
- ldr r3, [r3]
- ldr r3, [r3, #8]
- add r1, r1, r3
- str r1, [r2, #0x2c]
- ldr r1, [r5, #0x30]
- cmp r1, #0
- beq _0221BDD4
- mov r1, #6
- ldrsh r1, [r5, r1]
- add r0, #0xbe
- bl _s32_div_f
- ldr r1, [r5, #0x2c]
- add r0, r1, r0
- str r0, [r5, #0x2c]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_0201B970
- mov r1, #0xaa
- ldrsh r2, [r5, r1]
- mov r1, #0xac
- mul r1, r2
- add r2, r1, r0
- ldr r1, [r5, #0x38]
- ldr r0, [r1, #0x20]
- ldr r0, [r0]
- ldr r0, [r0, #8]
- add r0, r2, r0
- str r0, [r1, #0x2c]
-_0221BDD4:
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221BDD8
-MOD08_0221BDD8: ; 0x0221BDD8
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- mov r1, #0x41
- lsl r1, r1, #2
- add r6, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r1, r4, #0
- add r0, r6, #0
- add r1, #0x3c
- bl MOD08_02227B70
- add r0, r6, #0
- add r1, r4, #0
- bl MOD08_0221BC30
- add r0, r6, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_02217C1C
- add r5, r0, #0
- ldr r1, [r4, #0x14]
- add r0, r6, #0
- add r2, sp, #0x18
- bl MOD08_0222771C
- ldr r1, [r4, #0x18]
- add r0, r6, #0
- add r2, sp, #0xc
- bl MOD08_0222771C
- ldr r0, [sp, #0x18]
- mov r1, #0xac
- bl _s32_div_f
- add r6, r0, #0
- ldr r0, [sp, #0xc]
- mov r1, #0xac
- bl _s32_div_f
- add r7, r0, #0
- ldr r0, [sp, #0x1c]
- mov r1, #0xac
- bl _s32_div_f
- str r0, [sp, #8]
- ldr r0, [sp, #0x10]
- mov r1, #0xac
- bl _s32_div_f
- mov r1, #0xe
- ldrsh r1, [r4, r1]
- add r2, r1, #0
- mul r2, r5
- add r0, r0, r2
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- ldrh r0, [r4, #6]
- lsl r1, r6, #0x10
- mov r2, #0xc
- str r0, [sp, #4]
- ldrsh r2, [r4, r2]
- add r0, r4, #0
- add r0, #0xa8
- add r3, r2, #0
- mul r3, r5
- add r2, r7, r3
- ldr r3, [sp, #8]
- lsl r2, r2, #0x10
- lsl r3, r3, #0x10
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- asr r3, r3, #0x10
- bl MOD08_02217E80
- cmp r5, #0
- ldr r2, _0221BEFC ; =0x00005C71
- ble _0221BE90
- ldr r1, _0221BF00 ; =0x00000E38
- add r0, r4, #0
- add r0, #0xf0
- mul r1, r5
- mul r2, r5
- mov r3, #0xa
- bl MOD08_02218008
- b _0221BEA0
-_0221BE90:
- ldr r1, _0221BF04 ; =0x00003FFF
- add r0, r4, #0
- add r0, #0xf0
- mul r1, r5
- mul r2, r5
- mov r3, #0xa
- bl MOD08_02218008
-_0221BEA0:
- ldr r0, [r4, #0x20]
- mov r5, #0
- cmp r0, #0
- ble _0221BEBA
- add r6, r4, #0
- add r6, #0xa8
-_0221BEAC:
- add r0, r6, #0
- bl MOD08_02217ECC
- ldr r0, [r4, #0x20]
- add r5, r5, #1
- cmp r5, r0
- blt _0221BEAC
-_0221BEBA:
- ldr r0, [r4, #0x24]
- cmp r0, #0xff
- beq _0221BEC4
- add r0, r0, #1
- str r0, [r4, #0x1c]
-_0221BEC4:
- mov r0, #0xa8
- ldrsh r3, [r4, r0]
- ldr r1, [r4, #0x38]
- mov r2, #0xac
- add r0, r3, #0
- ldr r3, [r1, #0x20]
- mul r0, r2
- ldr r3, [r3]
- ldr r3, [r3, #4]
- add r0, r0, r3
- str r0, [r1, #0x28]
- mov r1, #0xaa
- ldrsh r1, [r4, r1]
- ldr r0, [r4, #0x38]
- mul r2, r1
- ldr r1, [r0, #0x20]
- ldr r1, [r1]
- ldr r1, [r1, #8]
- add r1, r2, r1
- str r1, [r0, #0x2c]
- ldr r0, [r4, #0x40]
- ldr r1, _0221BF08 ; =MOD08_0221BD1C
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- nop
-_0221BEFC: .word 0x00005C71
-_0221BF00: .word 0x00000E38
-_0221BF04: .word 0x00003FFF
-_0221BF08: .word MOD08_0221BD1C
-
- thumb_func_start MOD08_0221BF0C
-MOD08_0221BF0C: ; 0x0221BF0C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x20
- mov r1, #0x41
- lsl r1, r1, #2
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r1, r4, #0
- add r0, r5, #0
- add r1, #0x3c
- bl MOD08_02227B70
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- str r0, [r4]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- str r0, [r4, #0x10]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- strh r0, [r4, #6]
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- strh r0, [r4, #4]
- mov r0, #0
- str r0, [r4, #0x28]
- add r0, r5, #0
- mov r1, #5
- bl MOD08_02212498
- ldr r2, _0221C098 ; =0xFFFF0000
- mov r1, #0
- and r2, r0
- lsl r0, r0, #0x10
- str r1, [r4, #0x1c]
- lsr r2, r2, #0x10
- str r2, [r4, #0x20]
- lsr r0, r0, #0x10
- str r0, [r4, #0x24]
- ldr r0, [r4, #0x20]
- cmp r0, #0
- bne _0221BF7E
- str r1, [r4, #0x20]
-_0221BF7E:
- ldr r0, [r4, #0x24]
- cmp r0, #0
- bne _0221BF88
- mov r0, #0xff
- str r0, [r4, #0x24]
-_0221BF88:
- ldr r1, [r4]
- add r0, r5, #0
- bl MOD08_02212484
- str r0, [r4, #0x38]
- add r0, r5, #0
- bl MOD08_02212468
- str r0, [r4, #0x34]
- ldr r0, [r4, #0x10]
- cmp r0, #0
- bne _0221BFB0
- add r0, r5, #0
- bl MOD08_02212458
- str r0, [r4, #0x14]
- add r0, r5, #0
- bl MOD08_02212458
- b _0221BFBE
-_0221BFB0:
- add r0, r5, #0
- bl MOD08_02212460
- str r0, [r4, #0x14]
- add r0, r5, #0
- bl MOD08_02212460
-_0221BFBE:
- str r0, [r4, #0x18]
- ldr r0, [r4, #0x38]
- cmp r0, #0
- bne _0221BFCA
- bl ErrorHandling
-_0221BFCA:
- ldr r1, [r4, #0x14]
- add r0, r5, #0
- add r2, sp, #0x14
- bl MOD08_0222771C
- ldr r1, [r4, #0x18]
- add r0, r5, #0
- add r2, sp, #8
- bl MOD08_0222771C
- cmp r6, #0
- bne _0221BFEE
- add r0, sp, #0x14
- bl MOD08_0222795C
- ldr r0, [sp, #8]
- str r0, [sp, #0x14]
- b _0221BFF8
-_0221BFEE:
- add r0, sp, #8
- bl MOD08_0222795C
- ldr r0, [sp, #0x14]
- str r0, [sp, #8]
-_0221BFF8:
- ldr r0, [sp, #0x14]
- mov r1, #0xac
- bl _s32_div_f
- add r5, r0, #0
- ldr r0, [sp, #8]
- mov r1, #0xac
- bl _s32_div_f
- add r6, r0, #0
- ldr r0, [sp, #0x18]
- mov r1, #0xac
- bl _s32_div_f
- add r7, r0, #0
- ldr r0, [sp, #0xc]
- mov r1, #0xac
- bl _s32_div_f
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- ldrh r0, [r4, #6]
- lsl r1, r5, #0x10
- lsl r2, r6, #0x10
- str r0, [sp, #4]
- add r0, r4, #0
- lsl r3, r7, #0x10
- add r0, #0xa8
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- asr r3, r3, #0x10
- bl MOD08_02217E80
- ldr r0, [r4, #0x20]
- mov r5, #0
- cmp r0, #0
- ble _0221C056
- add r6, r4, #0
- add r6, #0xa8
-_0221C048:
- add r0, r6, #0
- bl MOD08_02217ECC
- ldr r0, [r4, #0x20]
- add r5, r5, #1
- cmp r5, r0
- blt _0221C048
-_0221C056:
- ldr r0, [r4, #0x24]
- cmp r0, #0xff
- beq _0221C060
- add r0, r0, #1
- str r0, [r4, #0x1c]
-_0221C060:
- mov r0, #0xa8
- ldrsh r3, [r4, r0]
- ldr r1, [r4, #0x38]
- mov r2, #0xac
- add r0, r3, #0
- ldr r3, [r1, #0x20]
- mul r0, r2
- ldr r3, [r3]
- ldr r3, [r3, #4]
- add r0, r0, r3
- str r0, [r1, #0x28]
- mov r1, #0xaa
- ldrsh r1, [r4, r1]
- ldr r0, [r4, #0x38]
- mul r2, r1
- ldr r1, [r0, #0x20]
- ldr r1, [r1]
- ldr r1, [r1, #8]
- add r1, r2, r1
- str r1, [r0, #0x2c]
- ldr r0, [r4, #0x40]
- ldr r1, _0221C09C ; =MOD08_0221BD1C
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x20
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0221C098: .word 0xFFFF0000
-_0221C09C: .word MOD08_0221BD1C
-
- thumb_func_start MOD08_0221C0A0
-MOD08_0221C0A0: ; 0x0221C0A0
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r6, r0, #0
- ldr r0, [r5, #0x38]
- bl MOD08_0221BD00
- add r4, r0, #0
- add r0, r5, #0
- add r1, r5, #0
- add r0, #0xa8
- add r1, #0xcc
- bl MOD08_02217F9C
- cmp r0, #0
- bne _0221C0DA
- cmp r4, #0
- bne _0221C0DA
- ldr r0, [r5, #0x34]
- ldr r1, [r5, #0x38]
- bl FUN_020133DC
- ldr r0, [r5, #0x40]
- add r1, r6, #0
- bl MOD08_02212438
- add r0, r5, #0
- bl MOD08_02228094
- pop {r4, r5, r6, pc}
-_0221C0DA:
- mov r1, #0xa8
- ldrsh r1, [r5, r1]
- ldr r0, [r5, #0x38]
- mov r2, #0xac
- add r3, r1, #0
- ldr r1, [r0, #0x20]
- mul r3, r2
- ldr r1, [r1]
- ldr r1, [r1, #4]
- add r1, r3, r1
- str r1, [r0, #0x28]
- mov r1, #0xaa
- ldrsh r1, [r5, r1]
- ldr r0, [r5, #0x38]
- mul r2, r1
- ldr r1, [r0, #0x20]
- ldr r1, [r1]
- ldr r1, [r1, #8]
- add r1, r2, r1
- str r1, [r0, #0x2c]
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_0221C104
-MOD08_0221C104: ; 0x0221C104
- push {r4, r5, r6, r7, lr}
- sub sp, #0x2c
- mov r1, #0x41
- lsl r1, r1, #2
- add r6, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r1, r4, #0
- add r0, r6, #0
- add r1, #0x3c
- bl MOD08_02227B70
- add r0, r6, #0
- add r1, r4, #0
- bl MOD08_0221BC30
- add r0, r6, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_02217C1C
- add r5, r0, #0
- ldr r1, [r4, #0x14]
- add r0, r6, #0
- add r2, sp, #0x20
- bl MOD08_0222771C
- ldr r1, [r4, #0x18]
- add r0, r6, #0
- add r2, sp, #0x14
- bl MOD08_0222771C
- ldr r0, [sp, #0x20]
- mov r1, #0xac
- bl _s32_div_f
- add r6, r0, #0
- ldr r0, [sp, #0x14]
- mov r1, #0xac
- bl _s32_div_f
- str r0, [sp, #0x10]
- ldr r0, [sp, #0x24]
- mov r1, #0xac
- bl _s32_div_f
- add r7, r0, #0
- ldr r0, [sp, #0x18]
- mov r1, #0xac
- bl _s32_div_f
- lsl r1, r7, #0x10
- asr r1, r1, #0x10
- str r1, [sp]
- mov r1, #0xe
- ldrsh r1, [r4, r1]
- mov r3, #0xc
- add r2, r1, #0
- mul r2, r5
- add r0, r0, r2
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp, #4]
- ldrh r0, [r4, #6]
- lsl r2, r6, #0x10
- add r1, r4, #0
- str r0, [sp, #8]
- ldr r0, [r4, #8]
- add r1, #0xcc
- lsl r0, r0, #0xc
- neg r0, r0
- str r0, [sp, #0xc]
- ldrsh r6, [r4, r3]
- add r0, r4, #0
- add r0, #0xa8
- add r3, r6, #0
- ldr r6, [sp, #0x10]
- mul r3, r5
- add r3, r6, r3
- lsl r3, r3, #0x10
- asr r2, r2, #0x10
- asr r3, r3, #0x10
- bl MOD08_02217F50
- cmp r5, #0
- ldr r2, _0221C23C ; =0x00005C71
- ble _0221C1CA
- ldr r1, _0221C240 ; =0x00000E38
- add r0, r4, #0
- add r0, #0xf0
- mul r1, r5
- mul r2, r5
- mov r3, #0xa
- bl MOD08_02218008
- b _0221C1DA
-_0221C1CA:
- ldr r1, _0221C244 ; =0x00003FFF
- add r0, r4, #0
- add r0, #0xf0
- mul r1, r5
- mul r2, r5
- mov r3, #0xa
- bl MOD08_02218008
-_0221C1DA:
- ldr r0, [r4, #0x20]
- mov r5, #0
- cmp r0, #0
- ble _0221C1FA
- add r6, r4, #0
- add r7, r4, #0
- add r6, #0xa8
- add r7, #0xcc
-_0221C1EA:
- add r0, r6, #0
- add r1, r7, #0
- bl MOD08_02217F9C
- ldr r0, [r4, #0x20]
- add r5, r5, #1
- cmp r5, r0
- blt _0221C1EA
-_0221C1FA:
- ldr r0, [r4, #0x24]
- cmp r0, #0xff
- beq _0221C204
- add r0, r0, #1
- str r0, [r4, #0x1c]
-_0221C204:
- mov r0, #0xa8
- ldrsh r3, [r4, r0]
- ldr r1, [r4, #0x38]
- mov r2, #0xac
- add r0, r3, #0
- ldr r3, [r1, #0x20]
- mul r0, r2
- ldr r3, [r3]
- ldr r3, [r3, #4]
- add r0, r0, r3
- str r0, [r1, #0x28]
- mov r1, #0xaa
- ldrsh r1, [r4, r1]
- ldr r0, [r4, #0x38]
- mul r2, r1
- ldr r1, [r0, #0x20]
- ldr r1, [r1]
- ldr r1, [r1, #8]
- add r1, r2, r1
- str r1, [r0, #0x2c]
- ldr r0, [r4, #0x40]
- ldr r1, _0221C248 ; =MOD08_0221C0A0
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x2c
- pop {r4, r5, r6, r7, pc}
- nop
-_0221C23C: .word 0x00005C71
-_0221C240: .word 0x00000E38
-_0221C244: .word 0x00003FFF
-_0221C248: .word MOD08_0221C0A0
-
- thumb_func_start MOD08_0221C24C
-MOD08_0221C24C: ; 0x0221C24C
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r6, r0, #0
- ldr r0, [r5, #0x38]
- bl MOD08_0221BD00
- add r4, r0, #0
- add r0, r5, #0
- add r0, #0x58
- bl MOD08_02217D98
- cmp r0, #0
- bne _0221C282
- cmp r4, #0
- bne _0221C282
- ldr r0, [r5, #0x34]
- ldr r1, [r5, #0x38]
- bl FUN_020133DC
- ldr r0, [r5, #0x40]
- add r1, r6, #0
- bl MOD08_02212438
- add r0, r5, #0
- bl FreeToHeap
- pop {r4, r5, r6, pc}
-_0221C282:
- add r0, r5, #0
- add r0, #0x8c
- ldr r2, [r0]
- mov r0, #0x5a
- ldrsh r0, [r5, r0]
- mov r3, #0xac
- add r1, r0, #0
- mul r1, r3
- add r1, r2, r1
- add r2, r5, #0
- add r2, #0x88
- ldr r4, [r2]
- mov r2, #0x58
- ldrsh r2, [r5, r2]
- ldr r0, [r5, #0x38]
- mul r3, r2
- ldr r2, [r0, #0x20]
- add r3, r4, r3
- ldr r2, [r2]
- ldr r2, [r2, #4]
- add r2, r3, r2
- str r2, [r0, #0x28]
- ldr r2, [r5, #0x38]
- ldr r0, [r2, #0x20]
- ldr r0, [r0]
- ldr r0, [r0, #8]
- add r0, r1, r0
- str r0, [r2, #0x2c]
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_0221C2BC
-MOD08_0221C2BC: ; 0x0221C2BC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- mov r1, #0x94
- add r4, r0, #0
- bl MOD08_02228064
- add r5, r0, #0
- add r1, r5, #0
- add r0, r4, #0
- add r1, #0x3c
- bl MOD08_02227B70
- add r0, r4, #0
- mov r1, #0
- bl MOD08_02212498
- str r0, [r5]
- add r0, r4, #0
- mov r1, #1
- bl MOD08_02212498
- str r0, [r5, #4]
- add r0, r4, #0
- mov r1, #2
- bl MOD08_02212498
- str r0, [r5, #0xc]
- add r0, r4, #0
- mov r1, #3
- bl MOD08_02212498
- str r0, [r5, #8]
- add r0, r4, #0
- mov r1, #4
- bl MOD08_02212498
- str r0, [r5, #0x10]
- add r0, r4, #0
- mov r1, #5
- bl MOD08_02212498
- str r0, [r5, #0x14]
- add r0, r4, #0
- mov r1, #6
- bl MOD08_02212498
- str r0, [r5, #0x18]
- add r0, r4, #0
- mov r1, #7
- bl MOD08_02212498
- str r0, [r5, #0x1c]
- add r0, r4, #0
- mov r1, #8
- bl MOD08_02212498
- str r0, [r5, #0x20]
- cmp r0, #0
- bne _0221C33A
- add r0, r4, #0
- bl MOD08_02212458
- b _0221C340
-_0221C33A:
- add r0, r4, #0
- bl MOD08_02212460
-_0221C340:
- str r0, [r5, #0x24]
- add r2, r5, #0
- ldr r1, [r5, #0x24]
- add r0, r4, #0
- add r2, #0x88
- bl MOD08_0222771C
- ldr r1, [r5]
- add r0, r4, #0
- bl MOD08_02212484
- str r0, [r5, #0x38]
- add r0, r4, #0
- mov r1, #9
- bl MOD08_02212498
- add r1, r0, #0
- add r0, r4, #0
- bl MOD08_02212478
- str r0, [r5, #0x34]
- ldr r1, [r5, #4]
- ldr r0, _0221C420 ; =0x0000FFFF
- mul r0, r1
- mov r1, #0x5a
- lsl r1, r1, #2
- bl _s32_div_f
- add r4, r0, #0
- ldr r1, [r5, #0xc]
- ldr r0, _0221C420 ; =0x0000FFFF
- mul r0, r1
- mov r1, #0x5a
- lsl r1, r1, #2
- bl _s32_div_f
- add r6, r0, #0
- ldr r1, [r5, #8]
- ldr r0, _0221C420 ; =0x0000FFFF
- mul r0, r1
- mov r1, #0x5a
- lsl r1, r1, #2
- bl _s32_div_f
- add r7, r0, #0
- ldr r1, [r5, #0x10]
- ldr r0, _0221C420 ; =0x0000FFFF
- mul r0, r1
- mov r1, #0x5a
- lsl r1, r1, #2
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp]
- ldr r0, [r5, #0x14]
- lsl r1, r4, #0x10
- lsl r0, r0, #0xc
- str r0, [sp, #4]
- ldr r0, [r5, #0x18]
- lsl r2, r6, #0x10
- lsl r0, r0, #0xc
- str r0, [sp, #8]
- ldr r0, [r5, #0x1c]
- lsl r3, r7, #0x10
- str r0, [sp, #0xc]
- add r0, r5, #0
- add r0, #0x58
- lsr r1, r1, #0x10
- lsr r2, r2, #0x10
- lsr r3, r3, #0x10
- bl MOD08_02217D14
- add r0, r5, #0
- add r0, #0x58
- bl MOD08_02217D98
- add r0, r5, #0
- add r0, #0x8c
- ldr r2, [r0]
- mov r0, #0x5a
- ldrsh r0, [r5, r0]
- mov r3, #0x58
- mov r4, #0xac
- add r1, r0, #0
- add r0, r5, #0
- mul r1, r4
- ldrsh r3, [r5, r3]
- add r0, #0x88
- add r2, r2, r1
- ldr r1, [r5, #0x38]
- ldr r0, [r0]
- mul r4, r3
- add r3, r0, r4
- ldr r0, [r1, #0x20]
- ldr r0, [r0]
- ldr r0, [r0, #4]
- add r0, r3, r0
- str r0, [r1, #0x28]
- ldr r1, [r5, #0x38]
- ldr r0, [r1, #0x20]
- ldr r0, [r0]
- ldr r0, [r0, #8]
- add r0, r2, r0
- str r0, [r1, #0x2c]
- ldr r0, [r5, #0x40]
- ldr r1, _0221C424 ; =MOD08_0221C24C
- add r2, r5, #0
- bl MOD08_02212400
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0221C420: .word 0x0000FFFF
-_0221C424: .word MOD08_0221C24C
-
- thumb_func_start MOD08_0221C428
-MOD08_0221C428: ; 0x0221C428
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0x1c]
- bl FUN_0200C608
- cmp r0, #0
- ldr r0, [r4, #0x1c]
- bne _0221C44E
- bl FUN_0200C3DC
- ldr r0, [r4, #4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, pc}
-_0221C44E:
- bl FUN_0200C5A8
- ldr r0, [r4, #0x10]
- bl FUN_0200BC1C
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221C45C
-MOD08_0221C45C: ; 0x0221C45C
- push {r3, r4, r5, r6, r7, lr}
- mov r1, #0x20
- add r5, r0, #0
- add r4, r3, #0
- bl MOD08_02228064
- add r7, r0, #0
- add r0, r5, #0
- add r1, r7, #0
- bl MOD08_02227B70
- add r0, r5, #0
- mov r1, #0
- str r4, [r7, #0x1c]
- bl MOD08_02212498
- lsl r0, r0, #0x10
- asr r6, r0, #0x10
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- lsl r0, r0, #0x10
- asr r2, r0, #0x10
- add r0, r4, #0
- add r1, r6, #0
- bl FUN_0200C82C
- ldr r0, [r7, #4]
- ldr r1, _0221C4A0 ; =MOD08_0221C428
- add r2, r7, #0
- bl MOD08_02212400
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0221C4A0: .word MOD08_0221C428
-
- thumb_func_start MOD08_0221C4A4
-MOD08_0221C4A4: ; 0x0221C4A4
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r4, r0, #0
- ldrb r0, [r5]
- cmp r0, #0
- beq _0221C4B6
- cmp r0, #1
- beq _0221C534
- b _0221C59E
-_0221C4B6:
- ldr r1, [r5, #0x34]
- ldr r0, _0221C5C4 ; =0x0222C4D4
- lsl r2, r1, #1
- ldrsh r4, [r0, r2]
- add r0, r1, #1
- str r0, [r5, #0x34]
- cmp r4, #0xff
- beq _0221C506
- cmp r4, #0
- bne _0221C4FA
- ldr r0, [r5, #0x1c]
- bl FUN_0200C6A4
- add r6, r0, #0
- ldr r0, [r5, #4]
- bl MOD08_02215574
- cmp r6, r0
- ldr r0, [r5, #4]
- bne _0221C4EE
- mov r1, #2
- bl MOD08_02215600
- add r1, r0, #0
- ldr r0, [r5, #0x1c]
- bl FUN_0200C6B0
- b _0221C4FA
-_0221C4EE:
- bl MOD08_02215574
- add r1, r0, #0
- ldr r0, [r5, #0x1c]
- bl FUN_0200C6B0
-_0221C4FA:
- ldr r0, [r5, #0x1c]
- add r1, r4, #0
- mov r2, #0
- bl FUN_0200C82C
- b _0221C5B4
-_0221C506:
- ldr r0, [r5, #0x1c]
- mov r1, #2
- bl FUN_0200C840
- add r0, r5, #0
- ldr r2, _0221C5C8 ; =0x00001FFF
- add r0, #0x20
- mov r1, #0
- mov r3, #8
- bl MOD08_02218008
- mov r1, #7
- ldr r0, [r5, #0x1c]
- mvn r1, r1
- mov r2, #0x10
- bl FUN_0200C8DC
- mov r0, #0
- str r0, [r5, #0x34]
- ldrb r0, [r5]
- add r0, r0, #1
- strb r0, [r5]
- b _0221C5B4
-_0221C534:
- add r0, r5, #0
- add r0, #0x20
- bl MOD08_02218058
- cmp r0, #1
- bne _0221C54E
- ldr r1, [r5, #0x20]
- ldr r0, [r5, #0x1c]
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- bl FUN_0200C898
- b _0221C5B4
-_0221C54E:
- ldr r0, [r5, #0x34]
- cmp r0, #3
- ble _0221C55C
- ldrb r0, [r5]
- add r0, r0, #1
- strb r0, [r5]
- b _0221C5B4
-_0221C55C:
- add r0, r0, #1
- str r0, [r5, #0x34]
- cmp r0, #1
- beq _0221C56E
- cmp r0, #2
- beq _0221C57E
- cmp r0, #3
- beq _0221C58E
- b _0221C5B4
-_0221C56E:
- add r0, r5, #0
- ldr r1, _0221C5C8 ; =0x00001FFF
- ldr r2, _0221C5CC ; =0xFFFFE001
- add r0, #0x20
- mov r3, #8
- bl MOD08_02218008
- b _0221C5B4
-_0221C57E:
- ldr r1, _0221C5CC ; =0xFFFFE001
- add r0, r5, #0
- add r0, #0x20
- lsr r2, r1, #0x13
- mov r3, #8
- bl MOD08_02218008
- b _0221C5B4
-_0221C58E:
- add r0, r5, #0
- ldr r1, _0221C5C8 ; =0x00001FFF
- add r0, #0x20
- mov r2, #0
- mov r3, #8
- bl MOD08_02218008
- b _0221C5B4
-_0221C59E:
- ldr r0, [r5, #0x1c]
- bl FUN_0200C3DC
- ldr r0, [r5, #4]
- add r1, r4, #0
- bl MOD08_02212438
- add r0, r5, #0
- bl FreeToHeap
- pop {r4, r5, r6, pc}
-_0221C5B4:
- ldr r0, [r5, #0x1c]
- bl FUN_0200C5A8
- ldr r0, [r5, #0x10]
- bl FUN_0200BC1C
- pop {r4, r5, r6, pc}
- nop
-_0221C5C4: .word 0x0222C4D4
-_0221C5C8: .word 0x00001FFF
-_0221C5CC: .word 0xFFFFE001
-
- thumb_func_start MOD08_0221C5D0
-MOD08_0221C5D0: ; 0x0221C5D0
- push {r3, r4, r5, r6, r7, lr}
- mov r1, #0x38
- add r5, r0, #0
- add r6, r3, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02227B70
- str r6, [r4, #0x1c]
- mov r0, #0
- str r0, [r4, #0x34]
- add r0, r5, #0
- bl MOD08_02212460
- add r7, r0, #0
- add r0, r5, #0
- add r1, r7, #0
- mov r2, #0
- bl MOD08_02217B98
- add r6, r0, #0
- add r0, r5, #0
- add r1, r7, #0
- mov r2, #1
- bl MOD08_02217B98
- add r2, r0, #0
- ldr r0, [r4, #0x1c]
- add r1, r6, #0
- bl FUN_0200C714
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_02227470
- cmp r0, #4
- ldr r0, [r4, #0x1c]
- bne _0221C630
- mov r1, #1
- bl FUN_0200C5C0
- b _0221C636
-_0221C630:
- mov r1, #0
- bl FUN_0200C5C0
-_0221C636:
- ldr r0, [r4, #4]
- bl MOD08_02215574
- add r1, r0, #0
- ldr r0, [r4, #0x1c]
- bl FUN_0200C6B0
- ldr r0, [r4, #0x1c]
- mov r1, #0
- mov r2, #0xc
- bl FUN_0200C82C
- ldr r0, [r4, #4]
- ldr r1, _0221C65C ; =MOD08_0221C4A4
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0221C65C: .word MOD08_0221C4A4
-
- thumb_func_start MOD08_0221C660
-MOD08_0221C660: ; 0x0221C660
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0x1c]
- bl FUN_0200C608
- cmp r0, #0
- ldr r0, [r4, #0x1c]
- bne _0221C686
- bl FUN_0200C3DC
- ldr r0, [r4, #4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, pc}
-_0221C686:
- bl FUN_0200C5A8
- ldr r0, [r4, #0x10]
- bl FUN_0200BC1C
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221C694
-MOD08_0221C694: ; 0x0221C694
- push {r3, r4, r5, r6, r7, lr}
- mov r1, #0x38
- add r5, r0, #0
- add r6, r3, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02227B70
- add r0, r5, #0
- str r6, [r4, #0x1c]
- bl MOD08_02212460
- add r7, r0, #0
- add r0, r5, #0
- add r1, r7, #0
- mov r2, #0
- bl MOD08_02217B98
- add r6, r0, #0
- add r0, r5, #0
- add r1, r7, #0
- mov r2, #1
- bl MOD08_02217B98
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _0221C6DC
- mov r6, #0x48
- mov r2, #0x20
- mov r5, #0
- b _0221C6F2
-_0221C6DC:
- ldr r0, [r4, #4]
- add r1, r7, #0
- bl MOD08_02227470
- cmp r0, #3
- bne _0221C6EE
- mov r2, #0x7e
- mov r5, #1
- b _0221C6F2
-_0221C6EE:
- mov r2, #0x20
- mov r5, #0
-_0221C6F2:
- ldr r0, [r4, #0x1c]
- add r1, r6, #0
- bl FUN_0200C714
- ldr r0, [r4, #0x1c]
- add r1, r5, #0
- bl FUN_0200C5C0
- ldr r0, [r4, #4]
- mov r1, #2
- bl MOD08_02215600
- add r1, r0, #0
- ldr r0, [r4, #0x1c]
- bl FUN_0200C6B0
- ldr r0, [r4, #4]
- ldr r1, _0221C720 ; =MOD08_0221C660
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0221C720: .word MOD08_0221C660
-
- thumb_func_start MOD08_0221C724
-MOD08_0221C724: ; 0x0221C724
- push {r3, r4, r5, lr}
- sub sp, #0x10
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4]
- cmp r0, #3
- bhi _0221C816
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221C73E: ; jump table
- .short _0221C746 - _0221C73E - 2 ; case 0
- .short _0221C76C - _0221C73E - 2 ; case 1
- .short _0221C784 - _0221C73E - 2 ; case 2
- .short _0221C7C0 - _0221C73E - 2 ; case 3
-_0221C746:
- mov r0, #0xa0
- str r0, [sp]
- mov r3, #0x70
- mov r0, #1
- str r3, [sp, #4]
- mov r2, #0x15
- str r2, [sp, #8]
- lsl r0, r0, #0x12
- str r0, [sp, #0xc]
- add r0, r4, #0
- add r0, #0x24
- add r1, #0x48
- sub r2, #0x33
- bl MOD08_02217F50
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221C82E
-_0221C76C:
- add r0, r4, #0
- ldr r2, [r4, #0x1c]
- add r0, #0x24
- add r1, #0x48
- bl MOD08_02217FE4
- cmp r0, #0
- bne _0221C82E
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221C82E
-_0221C784:
- ldr r0, [r4, #0x1c]
- bl FUN_0200C608
- cmp r0, #0
- bne _0221C82E
- ldr r0, [r4, #0x1c]
- mov r1, #1
- bl FUN_0200C90C
- add r0, r4, #0
- add r2, r4, #0
- mov r1, #0x10
- add r0, #0x20
- strb r1, [r0]
- add r0, r4, #0
- mov r1, #0
- add r0, #0x21
- strb r1, [r0]
- add r1, r4, #0
- add r1, #0x20
- add r2, #0x21
- ldrb r1, [r1]
- ldrb r2, [r2]
- ldr r0, [r4, #4]
- bl MOD08_02227994
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221C82E
-_0221C7C0:
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- cmp r0, #0
- beq _0221C7D8
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- sub r1, r0, #1
- add r0, r4, #0
- add r0, #0x20
- strb r1, [r0]
-_0221C7D8:
- add r0, r4, #0
- add r0, #0x21
- ldrb r0, [r0]
- cmp r0, #0x10
- bhs _0221C7F0
- add r0, r4, #0
- add r0, #0x21
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x21
- strb r1, [r0]
-_0221C7F0:
- add r0, r4, #0
- add r0, #0x20
- ldrb r1, [r0]
- add r0, r4, #0
- add r0, #0x21
- ldrb r0, [r0]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0221C840 ; =0x04000052
- strh r1, [r0]
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- cmp r0, #0
- bne _0221C82E
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221C82E
-_0221C816:
- ldr r0, [r4, #0x1c]
- bl FUN_0200C3DC
- ldr r0, [r4, #4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #0x10
- pop {r3, r4, r5, pc}
-_0221C82E:
- ldr r0, [r4, #0x1c]
- bl FUN_0200C5A8
- ldr r0, [r4, #0x10]
- bl FUN_0200BC1C
- add sp, #0x10
- pop {r3, r4, r5, pc}
- nop
-_0221C840: .word 0x04000052
-
- thumb_func_start MOD08_0221C844
-MOD08_0221C844: ; 0x0221C844
- push {r4, r5, r6, lr}
- mov r1, #0x6c
- add r6, r0, #0
- add r5, r3, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r6, #0
- add r1, r4, #0
- bl MOD08_02227B70
- mov r1, #0x1d
- str r5, [r4, #0x1c]
- add r0, r5, #0
- mvn r1, r1
- mov r2, #0xa0
- bl FUN_0200C714
- ldr r0, [r4, #4]
- mov r1, #2
- bl MOD08_02215600
- add r1, r0, #0
- ldr r0, [r4, #0x1c]
- bl FUN_0200C6B0
- ldr r0, [r4, #4]
- ldr r1, _0221C884 ; =MOD08_0221C724
- add r2, r4, #0
- bl MOD08_02212400
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0221C884: .word MOD08_0221C724
-
- thumb_func_start MOD08_0221C888
-MOD08_0221C888: ; 0x0221C888
- push {r4, lr}
- mov r1, #0
- add r4, r0, #0
- bl MOD08_02212498
- cmp r0, #0
- beq _0221C89E
- add r0, r4, #0
- bl MOD08_02218BD4
- pop {r4, pc}
-_0221C89E:
- add r0, r4, #0
- bl MOD08_02218C04
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221C8A8
-MOD08_0221C8A8: ; 0x0221C8A8
- push {r3, r4, r5, r6, lr}
- sub sp, #4
- add r4, r0, #0
- ldrb r0, [r4]
- cmp r0, #0x18
- bls _0221C8B6
- b _0221CAAA
-_0221C8B6:
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0221C8C2: ; jump table
- .short _0221C8F4 - _0221C8C2 - 2 ; case 0
- .short _0221CAAA - _0221C8C2 - 2 ; case 1
- .short _0221CAAA - _0221C8C2 - 2 ; case 2
- .short _0221CAAA - _0221C8C2 - 2 ; case 3
- .short _0221CAAA - _0221C8C2 - 2 ; case 4
- .short _0221C9A0 - _0221C8C2 - 2 ; case 5
- .short _0221C9A0 - _0221C8C2 - 2 ; case 6
- .short _0221C9CA - _0221C8C2 - 2 ; case 7
- .short _0221CAAA - _0221C8C2 - 2 ; case 8
- .short _0221CAAA - _0221C8C2 - 2 ; case 9
- .short _0221C9E4 - _0221C8C2 - 2 ; case 10
- .short _0221C9E4 - _0221C8C2 - 2 ; case 11
- .short _0221CA0E - _0221C8C2 - 2 ; case 12
- .short _0221CAAA - _0221C8C2 - 2 ; case 13
- .short _0221CAAA - _0221C8C2 - 2 ; case 14
- .short _0221CA26 - _0221C8C2 - 2 ; case 15
- .short _0221CA26 - _0221C8C2 - 2 ; case 16
- .short _0221CA50 - _0221C8C2 - 2 ; case 17
- .short _0221CAAA - _0221C8C2 - 2 ; case 18
- .short _0221CAAA - _0221C8C2 - 2 ; case 19
- .short _0221CAAA - _0221C8C2 - 2 ; case 20
- .short _0221CAAA - _0221C8C2 - 2 ; case 21
- .short _0221CA68 - _0221C8C2 - 2 ; case 22
- .short _0221CA68 - _0221C8C2 - 2 ; case 23
- .short _0221CA92 - _0221C8C2 - 2 ; case 24
-_0221C8F4:
- ldr r0, [r4, #0x34]
- ldr r1, _0221CAF0 ; =0xFFFF1FFF
- cmp r0, #0
- bne _0221C94E
- mov r0, #1
- lsl r0, r0, #0x1a
- ldr r2, [r0]
- add r5, r0, #0
- and r2, r1
- lsr r1, r0, #0xd
- orr r1, r2
- str r1, [r0]
- add r5, #0x48
- ldrh r3, [r5]
- mov r2, #0x3f
- mov r1, #0xf
- bic r3, r2
- orr r1, r3
- mov r3, #0x20
- orr r1, r3
- strh r1, [r5]
- add r5, r0, #0
- add r5, #0x4a
- ldrh r6, [r5]
- mov r1, #0x1f
- bic r6, r2
- orr r1, r6
- orr r1, r3
- strh r1, [r5]
- add r1, r0, #0
- mov r2, #0x80
- add r1, #0x40
- strh r2, [r1]
- ldr r1, _0221CAF4 ; =0x0000A0C0
- add r0, #0x44
- strh r1, [r0]
- bl rand_LC
- mov r1, #5
- bl _s32_div_f
- add r1, #0x23
- add sp, #4
- str r1, [r4, #0x3c]
- pop {r3, r4, r5, r6, pc}
-_0221C94E:
- mov r0, #1
- lsl r0, r0, #0x1a
- ldr r2, [r0]
- add r5, r0, #0
- and r2, r1
- lsr r1, r0, #0xd
- orr r1, r2
- str r1, [r0]
- add r5, #0x48
- ldrh r3, [r5]
- mov r2, #0x3f
- mov r1, #0xf
- bic r3, r2
- orr r1, r3
- mov r3, #0x20
- orr r1, r3
- strh r1, [r5]
- add r5, r0, #0
- add r5, #0x4a
- ldrh r6, [r5]
- mov r1, #0x1f
- bic r6, r2
- orr r1, r6
- orr r1, r3
- strh r1, [r5]
- add r1, r0, #0
- lsl r2, r3, #0xa
- add r1, #0x40
- strh r2, [r1]
- ldr r1, _0221CAF8 ; =0x000056C0
- add r0, #0x44
- strh r1, [r0]
- bl rand_LC
- mov r1, #5
- bl _s32_div_f
- add r1, #0x23
- add sp, #4
- str r1, [r4, #0x3c]
- pop {r3, r4, r5, r6, pc}
-_0221C9A0:
- bl rand_LC
- lsr r2, r0, #0x1f
- lsl r1, r0, #0x1f
- sub r1, r1, r2
- mov r0, #0x1f
- ror r1, r0
- add r0, r2, r1
- beq _0221C9D0
- ldr r0, [r4, #0x38]
- cmp r0, #0
- bne _0221C9D0
- add r0, r0, #1
- str r0, [r4, #0x38]
- ldr r0, [r4, #0x1c]
- mov r1, #0
- mov r2, #4
- bl FUN_0200C82C
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_0221C9CA:
- ldr r0, [r4, #0x38]
- cmp r0, #1
- bne _0221C9D2
-_0221C9D0:
- b _0221CAEC
-_0221C9D2:
- add r0, r0, #1
- str r0, [r4, #0x38]
- ldr r0, [r4, #0x1c]
- mov r1, #0
- mov r2, #4
- bl FUN_0200C82C
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_0221C9E4:
- bl rand_LC
- lsr r2, r0, #0x1f
- lsl r1, r0, #0x1f
- sub r1, r1, r2
- mov r0, #0x1f
- ror r1, r0
- add r0, r2, r1
- beq _0221CAEC
- ldr r0, [r4, #0x38]
- cmp r0, #1
- bne _0221CAEC
- add r0, r0, #1
- str r0, [r4, #0x38]
- ldr r0, [r4, #0x1c]
- mov r1, #0
- mov r2, #4
- bl FUN_0200C82C
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_0221CA0E:
- ldr r0, [r4, #0x38]
- cmp r0, #2
- beq _0221CAEC
- add r0, r0, #1
- str r0, [r4, #0x38]
- ldr r0, [r4, #0x1c]
- mov r1, #0
- mov r2, #4
- bl FUN_0200C82C
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_0221CA26:
- bl rand_LC
- lsr r2, r0, #0x1f
- lsl r1, r0, #0x1f
- sub r1, r1, r2
- mov r0, #0x1f
- ror r1, r0
- add r0, r2, r1
- beq _0221CAEC
- ldr r0, [r4, #0x38]
- cmp r0, #2
- bne _0221CAEC
- add r0, r0, #1
- str r0, [r4, #0x38]
- ldr r0, [r4, #0x1c]
- mov r1, #0
- mov r2, #4
- bl FUN_0200C82C
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_0221CA50:
- ldr r0, [r4, #0x38]
- cmp r0, #3
- beq _0221CAEC
- add r0, r0, #1
- str r0, [r4, #0x38]
- ldr r0, [r4, #0x1c]
- mov r1, #0
- mov r2, #4
- bl FUN_0200C82C
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_0221CA68:
- bl rand_LC
- lsr r2, r0, #0x1f
- lsl r1, r0, #0x1f
- sub r1, r1, r2
- mov r0, #0x1f
- ror r1, r0
- add r0, r2, r1
- beq _0221CAEC
- ldr r0, [r4, #0x38]
- cmp r0, #3
- bne _0221CAEC
- add r0, r0, #1
- str r0, [r4, #0x38]
- ldr r0, [r4, #0x1c]
- mov r1, #0
- mov r2, #8
- bl FUN_0200C82C
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_0221CA92:
- ldr r0, [r4, #0x38]
- cmp r0, #4
- beq _0221CAEC
- add r0, r0, #1
- str r0, [r4, #0x38]
- ldr r0, [r4, #0x1c]
- mov r1, #0
- mov r2, #8
- bl FUN_0200C82C
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_0221CAAA:
- ldr r1, [r4, #0x3c]
- cmp r0, r1
- ble _0221CAEC
- ldr r0, [r4, #0x38]
- cmp r0, #0x14
- ldr r0, [r4, #0x1c]
- bge _0221CAE6
- mov r1, #0
- mov r2, #4
- bl FUN_0200C82C
- add r1, sp, #0
- ldr r0, [r4, #0x1c]
- add r1, #2
- add r2, sp, #0
- bl FUN_0200C7A0
- add r0, sp, #0
- mov r1, #0
- ldrsh r0, [r0, r1]
- cmp r0, #0x82
- ble _0221CADC
- ldr r0, [r4, #0x1c]
- bl FUN_0200C644
-_0221CADC:
- ldr r0, [r4, #0x38]
- add sp, #4
- add r0, r0, #1
- str r0, [r4, #0x38]
- pop {r3, r4, r5, r6, pc}
-_0221CAE6:
- mov r1, #0
- bl FUN_0200C644
-_0221CAEC:
- add sp, #4
- pop {r3, r4, r5, r6, pc}
- .align 2, 0
-_0221CAF0: .word 0xFFFF1FFF
-_0221CAF4: .word 0x0000A0C0
-_0221CAF8: .word 0x000056C0
-
- thumb_func_start MOD08_0221CAFC
-MOD08_0221CAFC: ; 0x0221CAFC
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0x30]
- cmp r0, #0
- beq _0221CB0E
- add r0, r4, #0
- bl MOD08_0221C8A8
-_0221CB0E:
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- ldrb r1, [r4]
- ldr r0, [r4, #0x24]
- cmp r1, r0
- blt _0221CB66
- mov r0, #1
- lsl r0, r0, #0x1a
- ldr r2, [r0]
- ldr r1, _0221CB74 ; =0xFFFF1FFF
- and r1, r2
- add r2, r0, #0
- str r1, [r0]
- add r2, #0x48
- ldrh r3, [r2]
- mov r1, #0x3f
- bic r3, r1
- strh r3, [r2]
- add r2, r0, #0
- add r2, #0x4a
- ldrh r3, [r2]
- bic r3, r1
- strh r3, [r2]
- add r2, r0, #0
- mov r1, #0
- add r2, #0x40
- strh r1, [r2]
- add r0, #0x44
- strh r1, [r0]
- ldr r0, [r4, #0x1c]
- bl FUN_0200C644
- ldr r0, [r4, #0xc]
- bl FUN_0200BC1C
- ldr r0, [r4, #4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, pc}
-_0221CB66:
- ldr r0, [r4, #0x1c]
- bl FUN_0200C5A8
- ldr r0, [r4, #0xc]
- bl FUN_0200BC1C
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0221CB74: .word 0xFFFF1FFF
-
- thumb_func_start MOD08_0221CB78
-MOD08_0221CB78: ; 0x0221CB78
- push {r3, r4, r5, r6, r7, lr}
- mov r1, #0x40
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02227B70
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- str r0, [r4, #0x20]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- str r0, [r4, #0x24]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- str r0, [r4, #0x28]
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- str r0, [r4, #0x2c]
- add r0, r5, #0
- mov r1, #5
- bl MOD08_02212498
- str r0, [r4, #0x30]
- add r0, r5, #0
- mov r1, #6
- bl MOD08_02212498
- str r0, [r4, #0x34]
- ldr r0, [r4, #4]
- ldr r1, [r4, #0x20]
- bl MOD08_022124D8
- str r0, [r4, #0x1c]
- mov r0, #0
- str r0, [r4, #0x38]
- ldr r1, [r4, #0x28]
- cmp r1, #0xff
- beq _0221CBEA
- add r0, r5, #0
- bl MOD08_02215600
- add r1, r0, #0
- ldr r0, [r4, #0x1c]
- bl FUN_0200C6B0
-_0221CBEA:
- ldr r1, [r4, #0x2c]
- cmp r1, #0xff
- beq _0221CBF6
- ldr r0, [r4, #0x1c]
- bl FUN_0200C6C4
-_0221CBF6:
- add r0, r5, #0
- bl MOD08_0221553C
- cmp r0, #1
- beq _0221CC28
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- cmp r0, #2
- beq _0221CC18
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- cmp r0, #3
- bne _0221CC28
-_0221CC18:
- ldr r0, [r4, #0x1c]
- mov r1, #0
- bl FUN_0200C644
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, r6, r7, pc}
-_0221CC28:
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- add r7, r0, #0
- add r0, r5, #0
- bl MOD08_02212458
- add r6, r0, #0
- add r0, r5, #0
- bl MOD08_02212460
- str r0, [sp]
- ldr r0, [r4, #0x2c]
- cmp r0, #0xff
- beq _0221CC76
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02227468
- add r6, r0, #0
- ldr r1, [sp]
- add r0, r5, #0
- bl MOD08_02227468
- cmp r7, #3
- bhi _0221CC76
- add r1, r7, r7
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0221CC6A: ; jump table
- .short _0221CC72 - _0221CC6A - 2 ; case 0
- .short _0221CCFC - _0221CC6A - 2 ; case 1
- .short _0221CCB8 - _0221CC6A - 2 ; case 2
- .short _0221CD40 - _0221CC6A - 2 ; case 3
-_0221CC72:
- cmp r6, #5
- bls _0221CC78
-_0221CC76:
- b _0221CD82
-_0221CC78:
- add r0, r6, r6
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221CC84: ; jump table
- .short _0221CD82 - _0221CC84 - 2 ; case 0
- .short _0221CD82 - _0221CC84 - 2 ; case 1
- .short _0221CC90 - _0221CC84 - 2 ; case 2
- .short _0221CC9A - _0221CC84 - 2 ; case 3
- .short _0221CCA4 - _0221CC84 - 2 ; case 4
- .short _0221CCAE - _0221CC84 - 2 ; case 5
-_0221CC90:
- ldr r0, [r4, #0x1c]
- mov r1, #0x14
- bl FUN_0200C6C4
- b _0221CD82
-_0221CC9A:
- ldr r0, [r4, #0x1c]
- mov r1, #0xa
- bl FUN_0200C6C4
- b _0221CD82
-_0221CCA4:
- ldr r0, [r4, #0x1c]
- mov r1, #0xa
- bl FUN_0200C6C4
- b _0221CD82
-_0221CCAE:
- ldr r0, [r4, #0x1c]
- mov r1, #0x14
- bl FUN_0200C6C4
- b _0221CD82
-_0221CCB8:
- cmp r6, #5
- bhi _0221CD82
- add r0, r6, r6
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221CCC8: ; jump table
- .short _0221CD82 - _0221CCC8 - 2 ; case 0
- .short _0221CD82 - _0221CCC8 - 2 ; case 1
- .short _0221CCD4 - _0221CCC8 - 2 ; case 2
- .short _0221CCDE - _0221CCC8 - 2 ; case 3
- .short _0221CCE8 - _0221CCC8 - 2 ; case 4
- .short _0221CCF2 - _0221CCC8 - 2 ; case 5
-_0221CCD4:
- ldr r0, [r4, #0x1c]
- mov r1, #0xa
- bl FUN_0200C6C4
- b _0221CD82
-_0221CCDE:
- ldr r0, [r4, #0x1c]
- mov r1, #0x14
- bl FUN_0200C6C4
- b _0221CD82
-_0221CCE8:
- ldr r0, [r4, #0x1c]
- mov r1, #0x14
- bl FUN_0200C6C4
- b _0221CD82
-_0221CCF2:
- ldr r0, [r4, #0x1c]
- mov r1, #0xa
- bl FUN_0200C6C4
- b _0221CD82
-_0221CCFC:
- cmp r0, #5
- bhi _0221CD82
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221CD0C: ; jump table
- .short _0221CD82 - _0221CD0C - 2 ; case 0
- .short _0221CD82 - _0221CD0C - 2 ; case 1
- .short _0221CD18 - _0221CD0C - 2 ; case 2
- .short _0221CD22 - _0221CD0C - 2 ; case 3
- .short _0221CD2C - _0221CD0C - 2 ; case 4
- .short _0221CD36 - _0221CD0C - 2 ; case 5
-_0221CD18:
- ldr r0, [r4, #0x1c]
- mov r1, #0x14
- bl FUN_0200C6C4
- b _0221CD82
-_0221CD22:
- ldr r0, [r4, #0x1c]
- mov r1, #0xa
- bl FUN_0200C6C4
- b _0221CD82
-_0221CD2C:
- ldr r0, [r4, #0x1c]
- mov r1, #0xa
- bl FUN_0200C6C4
- b _0221CD82
-_0221CD36:
- ldr r0, [r4, #0x1c]
- mov r1, #0x14
- bl FUN_0200C6C4
- b _0221CD82
-_0221CD40:
- cmp r0, #5
- bhi _0221CD82
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221CD50: ; jump table
- .short _0221CD82 - _0221CD50 - 2 ; case 0
- .short _0221CD82 - _0221CD50 - 2 ; case 1
- .short _0221CD5C - _0221CD50 - 2 ; case 2
- .short _0221CD66 - _0221CD50 - 2 ; case 3
- .short _0221CD70 - _0221CD50 - 2 ; case 4
- .short _0221CD7A - _0221CD50 - 2 ; case 5
-_0221CD5C:
- ldr r0, [r4, #0x1c]
- mov r1, #0xa
- bl FUN_0200C6C4
- b _0221CD82
-_0221CD66:
- ldr r0, [r4, #0x1c]
- mov r1, #0x14
- bl FUN_0200C6C4
- b _0221CD82
-_0221CD70:
- ldr r0, [r4, #0x1c]
- mov r1, #0x14
- bl FUN_0200C6C4
- b _0221CD82
-_0221CD7A:
- ldr r0, [r4, #0x1c]
- mov r1, #0xa
- bl FUN_0200C6C4
-_0221CD82:
- ldr r0, [r4, #4]
- ldr r1, _0221CD90 ; =MOD08_0221CAFC
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0221CD90: .word MOD08_0221CAFC
-
- thumb_func_start MOD08_0221CD94
-MOD08_0221CD94: ; 0x0221CD94
- push {r4, r5, r6, lr}
- add r6, r1, #0
- add r2, r0, #0
- ldr r0, [r6, #0x2c]
- cmp r0, #0
- bne _0221CDB0
- ldr r0, [r6, #4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r6, #0
- bl FreeToHeap
- pop {r4, r5, r6, pc}
-_0221CDB0:
- sub r0, r0, #1
- str r0, [r6, #0x2c]
- mov r4, #0
- add r5, r6, #0
-_0221CDB8:
- ldr r0, [r5, #0x1c]
- cmp r0, #0
- beq _0221CDC2
- bl FUN_0200C5A8
-_0221CDC2:
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #4
- blt _0221CDB8
- ldr r0, [r6, #0xc]
- bl FUN_0200BC1C
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221CDD4
-MOD08_0221CDD4: ; 0x0221CDD4
- push {r3, r4, r5, r6, r7, lr}
- mov r1, #0x34
- add r4, r0, #0
- bl MOD08_02228064
- add r7, r0, #0
- add r0, r4, #0
- add r1, r7, #0
- bl MOD08_02227B70
- add r0, r4, #0
- mov r1, #0
- bl MOD08_02212498
- cmp r0, #0
- bne _0221CDF8
- mov r0, #3
- b _0221CE00
-_0221CDF8:
- add r0, r4, #0
- mov r1, #0
- bl MOD08_02212498
-_0221CE00:
- ldr r5, _0221CE38 ; =0x0222D5A0
- str r0, [r7, #0x2c]
- mov r6, #0
- add r4, r7, #0
-_0221CE08:
- ldr r0, [r7, #4]
- add r1, r6, #0
- bl MOD08_022124D8
- str r0, [r4, #0x1c]
- cmp r0, #0
- beq _0221CE1C
- ldr r1, [r5]
- bl FUN_0200C6C4
-_0221CE1C:
- add r6, r6, #1
- add r4, r4, #4
- add r5, r5, #4
- cmp r6, #4
- blt _0221CE08
- ldr r0, [r7, #4]
- ldr r1, _0221CE3C ; =MOD08_0221CD94
- add r2, r7, #0
- bl MOD08_02212400
- add r1, r7, #0
- bl MOD08_0221CD94
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0221CE38: .word 0x0222D5A0
-_0221CE3C: .word MOD08_0221CD94
-
- thumb_func_start MOD08_0221CE40
-MOD08_0221CE40: ; 0x0221CE40
- push {r3, r4, r5, r6, lr}
- sub sp, #0x14
- add r5, r1, #0
- add r4, r0, #0
- ldrb r0, [r5, #8]
- cmp r0, #0
- beq _0221CE54
- cmp r0, #1
- beq _0221CE9A
- b _0221CEB2
-_0221CE54:
- mov r0, #0
- str r0, [r5]
- ldr r0, [r5, #0xc]
- mov r1, #2
- bl MOD08_022155C4
- add r4, r0, #0
- mov r0, #0
- add r1, r0, #0
- bl MOD08_02218998
- add r6, r0, #0
- ldr r0, [r5, #0xc]
- bl MOD08_02212014
- mov r1, #0xc8
- str r1, [sp]
- mov r3, #2
- str r4, [sp, #4]
- mov r1, #0
- str r1, [sp, #8]
- str r6, [sp, #0xc]
- str r0, [sp, #0x10]
- add r0, r1, #0
- mov r1, #0xa0
- mov r2, #0xb6
- lsl r3, r3, #0x10
- bl MOD08_022188DC
- str r0, [r5, #0x24]
- ldrb r0, [r5, #8]
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r5, #8]
- pop {r3, r4, r5, r6, pc}
-_0221CE9A:
- ldr r0, [r5]
- add r1, r0, #1
- str r1, [r5]
- ldr r0, [r5, #4]
- cmp r1, r0
- blt _0221CEC0
- ldr r0, [r5, #0x24]
- bl MOD08_0221894C
- ldrb r0, [r5, #8]
- add r0, r0, #1
- strb r0, [r5, #8]
-_0221CEB2:
- ldr r0, [r5, #0xc]
- add r1, r4, #0
- bl MOD08_02212438
- add r0, r5, #0
- bl FreeToHeap
-_0221CEC0:
- add sp, #0x14
- pop {r3, r4, r5, r6, pc}
-
- thumb_func_start MOD08_0221CEC4
-MOD08_0221CEC4: ; 0x0221CEC4
- push {r3, r4, r5, lr}
- mov r1, #0x28
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r1, r4, #0
- add r0, r5, #0
- add r1, #8
- bl MOD08_02227B70
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- str r0, [r4, #4]
- ldr r0, [r4, #0xc]
- ldr r1, _0221CEF0 ; =MOD08_0221CE40
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0221CEF0: .word MOD08_0221CE40
-
- thumb_func_start MOD08_0221CEF4
-MOD08_0221CEF4: ; 0x0221CEF4
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- add r4, r1, #0
- str r0, [sp, #0xc]
- ldrb r0, [r4]
- cmp r0, #3
- bls _0221CF04
- b _0221D076
-_0221CF04:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221CF10: ; jump table
- .short _0221CF18 - _0221CF10 - 2 ; case 0
- .short _0221CFCA - _0221CF10 - 2 ; case 1
- .short _0221CFE8 - _0221CF10 - 2 ; case 2
- .short _0221D042 - _0221CF10 - 2 ; case 3
-_0221CF18:
- ldrb r0, [r4, #4]
- mov r7, #0
- add r1, r7, #0
- add r0, r0, #1
- strb r0, [r4, #4]
- ldr r0, [r4, #8]
- bl MOD08_02212498
- cmp r0, #0
- ble _0221CF8E
- ldr r6, _0221D0E4 ; =0x0222C536
- add r5, r4, #0
-_0221CF30:
- add r1, sp, #0x10
- ldr r0, [r5, #0x14]
- add r1, #2
- add r2, sp, #0x10
- bl FUN_0200C7A0
- ldrb r1, [r4, #4]
- ldrb r0, [r6]
- cmp r1, r0
- blo _0221CF74
- add r0, r4, r7
- ldrb r1, [r0, #1]
- add r1, r1, #1
- strb r1, [r0, #1]
- ldrb r2, [r0, #1]
- ldrb r1, [r6, #1]
- cmp r2, r1
- blo _0221CF7C
- mov r1, #0
- strb r1, [r0, #1]
- ldr r0, [r5, #0x14]
- bl FUN_0200C658
- cmp r0, #1
- ldr r0, [r5, #0x14]
- bne _0221CF6C
- mov r1, #0
- bl FUN_0200C644
- b _0221CF7C
-_0221CF6C:
- mov r1, #1
- bl FUN_0200C644
- b _0221CF7C
-_0221CF74:
- ldr r0, [r5, #0x14]
- mov r1, #0
- bl FUN_0200C644
-_0221CF7C:
- ldr r0, [r4, #8]
- mov r1, #0
- add r5, r5, #4
- add r6, r6, #2
- add r7, r7, #1
- bl MOD08_02212498
- cmp r7, r0
- blt _0221CF30
-_0221CF8E:
- ldrb r0, [r4, #4]
- cmp r0, #0x2d
- blo _0221D02C
- mov r5, #0
- ldr r0, [r4, #8]
- add r1, r5, #0
- bl MOD08_02212498
- cmp r0, #0
- ble _0221CFBE
- add r6, r4, #0
- mov r7, #1
-_0221CFA6:
- ldr r0, [r6, #0x14]
- add r1, r7, #0
- bl FUN_0200C644
- ldr r0, [r4, #8]
- mov r1, #0
- add r6, r6, #4
- add r5, r5, #1
- bl MOD08_02212498
- cmp r5, r0
- blt _0221CFA6
-_0221CFBE:
- mov r0, #0
- strb r0, [r4, #4]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221D0B0
-_0221CFCA:
- mov r1, #0x64
- str r1, [sp]
- str r1, [sp, #4]
- mov r0, #0xa
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0x20
- mov r2, #0x3c
- add r3, r1, #0
- bl MOD08_022181A8
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221D0B0
-_0221CFE8:
- add r0, r4, #0
- add r0, #0x20
- bl MOD08_02218224
- cmp r0, #1
- bne _0221D02E
- mov r5, #0
- ldr r0, [r4, #8]
- add r1, r5, #0
- bl MOD08_02212498
- cmp r0, #0
- ble _0221D0B0
- add r7, r4, #0
- add r6, r4, #0
- add r7, #0x20
-_0221D008:
- add r0, r7, #0
- add r1, sp, #0x18
- add r2, sp, #0x14
- bl MOD08_0221825C
- ldr r0, [r6, #0x14]
- ldr r1, [sp, #0x18]
- ldr r2, [sp, #0x14]
- bl FUN_0200C884
- ldr r0, [r4, #8]
- mov r1, #0
- add r6, r6, #4
- add r5, r5, #1
- bl MOD08_02212498
- cmp r5, r0
- blt _0221D008
-_0221D02C:
- b _0221D0B0
-_0221D02E:
- ldrb r0, [r4, #4]
- add r0, r0, #1
- strb r0, [r4, #4]
- ldrb r0, [r4, #4]
- cmp r0, #0x2d
- blo _0221D0B0
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221D0B0
-_0221D042:
- ldrb r0, [r4, #5]
- cmp r0, #0
- beq _0221D04C
- sub r0, r0, #1
- strb r0, [r4, #5]
-_0221D04C:
- ldrb r0, [r4, #6]
- cmp r0, #0xf
- bhs _0221D056
- add r0, r0, #1
- strb r0, [r4, #6]
-_0221D056:
- ldrb r0, [r4, #5]
- cmp r0, #0
- bne _0221D068
- ldrb r0, [r4, #6]
- cmp r0, #0xf
- bne _0221D068
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221D068:
- ldrb r0, [r4, #6]
- ldrb r1, [r4, #5]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0221D0E8 ; =0x04000052
- strh r1, [r0]
- b _0221D0B0
-_0221D076:
- mov r5, #0
- ldr r0, [r4, #8]
- add r1, r5, #0
- bl MOD08_02212498
- cmp r0, #0
- ble _0221D09E
- add r6, r4, #0
- add r7, r5, #0
-_0221D088:
- ldr r0, [r6, #0x14]
- bl FUN_0200C3DC
- ldr r0, [r4, #8]
- add r1, r7, #0
- add r6, r6, #4
- add r5, r5, #1
- bl MOD08_02212498
- cmp r5, r0
- blt _0221D088
-_0221D09E:
- ldr r0, [r4, #8]
- ldr r1, [sp, #0xc]
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
-_0221D0B0:
- mov r5, #0
- ldr r0, [r4, #8]
- add r1, r5, #0
- bl MOD08_02212498
- cmp r0, #0
- ble _0221D0DA
- add r6, r4, #0
- add r7, r5, #0
-_0221D0C2:
- ldr r0, [r6, #0x14]
- ldr r0, [r0]
- bl FUN_0200C59C
- ldr r0, [r4, #8]
- add r1, r7, #0
- add r6, r6, #4
- add r5, r5, #1
- bl MOD08_02212498
- cmp r5, r0
- blt _0221D0C2
-_0221D0DA:
- ldr r0, [r4, #0x10]
- bl FUN_0200BC1C
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0221D0E4: .word 0x0222C536
-_0221D0E8: .word 0x04000052
-
- thumb_func_start MOD08_0221D0EC
-MOD08_0221D0EC: ; 0x0221D0EC
- push {r4, r5, r6, r7, lr}
- sub sp, #0x3c
- str r0, [sp]
- add r5, r1, #0
- add r6, r2, #0
- add r7, r3, #0
- bl MOD08_02212014
- mov r1, #0x44
- bl AllocFromHeap
- add r4, r0, #0
- bne _0221D10A
- bl ErrorHandling
-_0221D10A:
- mov r0, #0
- strb r0, [r4, #4]
- strb r0, [r4]
- str r5, [r4, #0xc]
- ldr r0, [sp]
- str r6, [r4, #0x10]
- str r0, [r4, #8]
- ldr r1, [sp]
- add r0, sp, #8
- bl MOD08_02215474
- mov r1, #0
- mvn r1, r1
- ldr r0, [r4, #8]
- add r2, r1, #0
- bl MOD08_02227994
- mov r0, #0xf
- strb r0, [r4, #5]
- mov r0, #0
- strb r0, [r4, #6]
- ldrb r0, [r4, #6]
- ldrb r1, [r4, #5]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0221D21C ; =0x04000052
- strh r1, [r0]
- ldr r0, [sp]
- str r7, [r4, #0x14]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [sp]
- bl MOD08_02227470
- cmp r0, #3
- bne _0221D166
- ldr r0, [sp]
- bl MOD08_02212004
- add r1, r0, #0
- mov r0, #0
- add r2, sp, #4
- bl MOD08_02227564
- b _0221D176
-_0221D166:
- ldr r0, [sp]
- bl MOD08_02212004
- add r1, r0, #0
- mov r0, #1
- add r2, sp, #4
- bl MOD08_02227564
-_0221D176:
- ldr r0, [r4, #8]
- mov r1, #0
- mov r6, #1
- bl MOD08_02212498
- cmp r0, #1
- ble _0221D1B0
- add r5, r4, #4
- add r7, sp, #4
-_0221D188:
- ldr r0, [r4, #0xc]
- ldr r1, [r4, #0x10]
- add r2, sp, #8
- bl FUN_0200C154
- str r0, [r5, #0x14]
- mov r1, #0
- mov r2, #2
- ldrsh r1, [r7, r1]
- ldrsh r2, [r7, r2]
- bl FUN_0200C714
- ldr r0, [r4, #8]
- mov r1, #0
- add r5, r5, #4
- add r6, r6, #1
- bl MOD08_02212498
- cmp r6, r0
- blt _0221D188
-_0221D1B0:
- add r3, sp, #4
- mov r1, #0
- mov r2, #2
- ldrsh r1, [r3, r1]
- ldrsh r2, [r3, r2]
- ldr r0, [r4, #0x14]
- bl FUN_0200C714
- mov r6, #0
- ldr r0, [r4, #8]
- add r1, r6, #0
- bl MOD08_02212498
- cmp r0, #0
- ble _0221D20A
- add r5, r4, #0
- add r7, r6, #0
-_0221D1D2:
- add r1, r4, r6
- mov r0, #0
- strb r0, [r1, #1]
- ldr r0, [r5, #0x14]
- mov r1, #2
- bl FUN_0200C840
- mov r2, #0x20
- sub r2, r2, r7
- lsl r2, r2, #0x10
- ldr r0, [r5, #0x14]
- mov r1, #0
- asr r2, r2, #0x10
- bl FUN_0200C82C
- ldr r0, [r5, #0x14]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r4, #8]
- mov r1, #0
- add r5, r5, #4
- add r7, r7, #4
- add r6, r6, #1
- bl MOD08_02212498
- cmp r6, r0
- blt _0221D1D2
-_0221D20A:
- mov r3, #1
- ldr r0, [sp]
- ldr r1, _0221D220 ; =MOD08_0221CEF4
- add r2, r4, #0
- lsl r3, r3, #0xc
- bl MOD08_022123E4
- add sp, #0x3c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0221D21C: .word 0x04000052
-_0221D220: .word MOD08_0221CEF4
-
- thumb_func_start MOD08_0221D224
-MOD08_0221D224: ; 0x0221D224
- push {r3, r4, r5, r6, lr}
- sub sp, #4
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #5
- bls _0221D234
- b _0221D404
-_0221D234:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221D240: ; jump table
- .short _0221D24C - _0221D240 - 2 ; case 0
- .short _0221D2AE - _0221D240 - 2 ; case 1
- .short _0221D2C8 - _0221D240 - 2 ; case 2
- .short _0221D2EC - _0221D240 - 2 ; case 3
- .short _0221D346 - _0221D240 - 2 ; case 4
- .short _0221D394 - _0221D240 - 2 ; case 5
-_0221D24C:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02218170
- cmp r0, #1
- bne _0221D2A4
- add r0, r4, #0
- add r0, #0x38
- bl MOD08_022183F0
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x16
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #0xd
- bl FUN_02007558
- mov r2, #0x38
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #0
- bl FUN_020079E0
- mov r0, #2
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0x28]
- bl MOD08_0221828C
- mov r2, #2
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #1
- add r2, r2, r3
- bl FUN_02007558
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_0221D2A4:
- ldrb r0, [r4]
- add sp, #4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0221D2AE:
- mov r0, #0x1f
- str r0, [sp]
- mov r1, #0
- ldr r0, [r4, #0x10]
- mov r2, #0xa
- add r3, r1, #0
- bl FUN_02007E68
- ldrb r0, [r4]
- add sp, #4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0221D2C8:
- ldr r0, [r4, #0x10]
- bl FUN_02007F20
- cmp r0, #0
- bne _0221D2F6
- mov r0, #0x1f
- str r0, [sp]
- mov r2, #0
- ldr r0, [r4, #0x10]
- mov r1, #0xa
- add r3, r2, #0
- bl FUN_02007E68
- ldrb r0, [r4]
- add sp, #4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0221D2EC:
- ldr r0, [r4, #0x10]
- bl FUN_02007F20
- cmp r0, #0
- beq _0221D2F8
-_0221D2F6:
- b _0221D412
-_0221D2F8:
- ldrb r0, [r4, #8]
- add r0, r0, #1
- strb r0, [r4, #8]
- ldrb r0, [r4, #8]
- cmp r0, #3
- blo _0221D33E
- ldr r0, [r4, #0xc]
- mov r1, #0
- bl MOD08_02212498
- add r5, r0, #0
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl MOD08_02212498
- add r6, r0, #0
- ldr r0, [r4, #0xc]
- mov r1, #3
- bl MOD08_02212498
- str r0, [sp]
- add r0, r4, #0
- lsl r1, r5, #0x10
- lsl r3, r6, #0x10
- add r0, #0x14
- asr r1, r1, #0x10
- mov r2, #0x64
- asr r3, r3, #0x10
- bl MOD08_02218120
- ldrb r0, [r4]
- add sp, #4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0221D33E:
- mov r0, #1
- add sp, #4
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0221D346:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02218170
- cmp r0, #1
- bne _0221D38A
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x16
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #0xd
- bl FUN_02007558
- mov r0, #2
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0x28]
- bl MOD08_0221828C
- mov r2, #2
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #1
- add r2, r2, r3
- bl FUN_02007558
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_0221D38A:
- ldrb r0, [r4]
- add sp, #4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0221D394:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02218170
- cmp r0, #1
- ldr r0, [r4, #0x10]
- bne _0221D3D8
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x16
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #0xd
- bl FUN_02007558
- mov r0, #2
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0x28]
- bl MOD08_0221828C
- mov r2, #2
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #1
- add r2, r2, r3
- bl FUN_02007558
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_0221D3D8:
- mov r1, #0xc
- add r2, r1, #0
- add r2, #0xf4
- bl FUN_02007558
- mov r1, #0xd
- add r2, r1, #0
- ldr r0, [r4, #0x10]
- add r2, #0xf3
- bl FUN_02007558
- mov r2, #2
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_02007558
- ldrb r0, [r4]
- add sp, #4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0221D404:
- ldr r0, [r4, #0xc]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_0221D412:
- add sp, #4
- pop {r3, r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221D418
-MOD08_0221D418: ; 0x0221D418
- push {r3, r4, r5, r6, lr}
- sub sp, #4
- add r5, r0, #0
- bl MOD08_02212014
- mov r1, #0x5c
- bl AllocFromHeap
- add r4, r0, #0
- mov r0, #0
- strb r0, [r4, #8]
- strb r0, [r4]
- str r5, [r4, #0xc]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #0xc]
- bl MOD08_022154D4
- str r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #2]
- ldr r0, [r4, #0xc]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #0xc]
- bl MOD08_0221552C
- str r0, [r4, #4]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- str r0, [sp]
- add r0, r4, #0
- mov r1, #0x64
- lsl r3, r6, #0x10
- add r0, #0x14
- add r2, r1, #0
- asr r3, r3, #0x10
- bl MOD08_02218120
- mov r0, #0xa
- str r0, [sp]
- add r0, r4, #0
- mov r2, #0
- add r0, #0x38
- mov r1, #2
- add r3, r2, #0
- bl MOD08_022183C0
- ldr r0, [r4, #0xc]
- ldr r1, _0221D4A0 ; =MOD08_0221D224
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #4
- pop {r3, r4, r5, r6, pc}
- nop
-_0221D4A0: .word MOD08_0221D224
-
- thumb_func_start MOD08_0221D4A4
-MOD08_0221D4A4: ; 0x0221D4A4
- push {r3, r4, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #4
- bls _0221D4B4
- b _0221D6CC
-_0221D4B4:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221D4C0: ; jump table
- .short _0221D4CA - _0221D4C0 - 2 ; case 0
- .short _0221D530 - _0221D4C0 - 2 ; case 1
- .short _0221D594 - _0221D4C0 - 2 ; case 2
- .short _0221D5F8 - _0221D4C0 - 2 ; case 3
- .short _0221D65C - _0221D4C0 - 2 ; case 4
-_0221D4CA:
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_02218224
- cmp r0, #1
- bne _0221D50E
- mov r2, #0x10
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x12
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xd
- bl FUN_02007558
- mov r0, #2
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0x24]
- bl MOD08_0221828C
- mov r2, #2
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #1
- add r2, r2, r3
- bl FUN_02007558
- add sp, #0xc
- pop {r3, r4, pc}
-_0221D50E:
- mov r1, #0x96
- str r1, [sp]
- mov r0, #0x64
- str r0, [sp, #4]
- mov r0, #0xa
- str r0, [sp, #8]
- add r0, r4, #0
- mov r2, #0x32
- add r0, #0x10
- add r3, r2, #0
- bl MOD08_022181A8
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, pc}
-_0221D530:
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_02218224
- cmp r0, #1
- bne _0221D574
- mov r2, #0x10
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x12
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xd
- bl FUN_02007558
- mov r0, #2
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0x24]
- bl MOD08_0221828C
- mov r2, #2
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #1
- add r2, r2, r3
- bl FUN_02007558
- add sp, #0xc
- pop {r3, r4, pc}
-_0221D574:
- mov r2, #0x64
- str r2, [sp]
- str r2, [sp, #4]
- mov r0, #5
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0x10
- mov r1, #0x32
- mov r3, #0x96
- bl MOD08_022181A8
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, pc}
-_0221D594:
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_02218224
- cmp r0, #1
- bne _0221D5D8
- mov r2, #0x10
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x12
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xd
- bl FUN_02007558
- mov r0, #2
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0x24]
- bl MOD08_0221828C
- mov r2, #2
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #1
- add r2, r2, r3
- bl FUN_02007558
- add sp, #0xc
- pop {r3, r4, pc}
-_0221D5D8:
- mov r2, #0x96
- mov r1, #0x64
- str r2, [sp]
- str r1, [sp, #4]
- mov r0, #5
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0x10
- add r3, r1, #0
- bl MOD08_022181A8
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, pc}
-_0221D5F8:
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_02218224
- cmp r0, #1
- bne _0221D63C
- mov r2, #0x10
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x12
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xd
- bl FUN_02007558
- mov r0, #2
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0x24]
- bl MOD08_0221828C
- mov r2, #2
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #1
- add r2, r2, r3
- bl FUN_02007558
- add sp, #0xc
- pop {r3, r4, pc}
-_0221D63C:
- mov r2, #0x64
- str r2, [sp]
- str r2, [sp, #4]
- mov r0, #5
- str r0, [sp, #8]
- add r0, r4, #0
- mov r1, #0x96
- add r0, #0x10
- add r3, r1, #0
- bl MOD08_022181A8
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, pc}
-_0221D65C:
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_02218224
- cmp r0, #1
- ldr r0, [r4, #0xc]
- bne _0221D6A0
- mov r2, #0x10
- ldrsh r2, [r4, r2]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x12
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xd
- bl FUN_02007558
- mov r0, #2
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0x24]
- bl MOD08_0221828C
- mov r2, #2
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #1
- add r2, r2, r3
- bl FUN_02007558
- add sp, #0xc
- pop {r3, r4, pc}
-_0221D6A0:
- mov r1, #0xc
- add r2, r1, #0
- add r2, #0xf4
- bl FUN_02007558
- mov r1, #0xd
- add r2, r1, #0
- ldr r0, [r4, #0xc]
- add r2, #0xf3
- bl FUN_02007558
- mov r2, #2
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_02007558
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, pc}
-_0221D6CC:
- ldr r0, [r4, #8]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #0xc
- pop {r3, r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221D6E0
-MOD08_0221D6E0: ; 0x0221D6E0
- push {r4, r5, lr}
- sub sp, #0xc
- add r5, r0, #0
- bl MOD08_02212014
- mov r1, #0x58
- bl AllocFromHeap
- add r4, r0, #0
- mov r0, #0
- strb r0, [r4]
- str r5, [r4, #8]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #8]
- bl MOD08_022154D4
- str r0, [r4, #0xc]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #2]
- ldr r0, [r4, #8]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #8]
- bl MOD08_0221552C
- str r0, [r4, #4]
- mov r0, #0x32
- str r0, [sp]
- mov r1, #0x64
- str r1, [sp, #4]
- mov r0, #0xa
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0x10
- mov r2, #0x96
- add r3, r1, #0
- bl MOD08_022181A8
- ldr r0, [r4, #8]
- ldr r1, _0221D748 ; =MOD08_0221D4A4
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0xc
- pop {r4, r5, pc}
- nop
-_0221D748: .word MOD08_0221D4A4
-
- thumb_func_start MOD08_0221D74C
-MOD08_0221D74C: ; 0x0221D74C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x18
- add r5, r1, #0
- add r2, r0, #0
- ldrb r0, [r5, #1]
- cmp r0, #0
- beq _0221D766
- cmp r0, #1
- beq _0221D84C
- cmp r0, #2
- bne _0221D764
- b _0221D8AE
-_0221D764:
- b _0221D8E2
-_0221D766:
- ldrb r3, [r5]
- mov r0, #0x1f
- lsr r2, r3, #0x1f
- lsl r1, r3, #0x1f
- sub r1, r1, r2
- ror r1, r0
- add r0, r2, r1
- lsl r0, r0, #1
- add r1, r3, #1
- str r0, [sp, #0xc]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r0, r0, #1
- str r0, [sp, #8]
- ldr r1, [sp, #0xc]
- mov r0, #6
- mul r0, r1
- ldr r1, _0221D900 ; =0x0222C59A
- ldrsh r2, [r1, r0]
- ldr r1, [sp, #8]
- sub r7, r2, r1
- mov r1, #0xa
- ldrsh r3, [r5, r1]
- ldr r1, _0221D904 ; =0x0222C598
- ldrsh r6, [r1, r0]
- mov r1, #8
- ldrsh r2, [r5, r1]
- ldr r1, _0221D908 ; =0x0222C596
- ldrsh r4, [r1, r0]
- lsl r0, r7, #0x10
- str r3, [sp]
- add r1, r2, r4
- lsr r0, r0, #0x10
- add r2, r2, r6
- str r0, [sp, #4]
- add r0, r5, #0
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- add r0, #0x28
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl MOD08_02217E80
- mov r0, #0xa
- ldrsh r3, [r5, r0]
- mov r0, #8
- ldrsh r2, [r5, r0]
- lsl r0, r7, #0x10
- lsr r0, r0, #0x10
- sub r1, r2, r4
- str r3, [sp]
- sub r2, r2, r6
- str r0, [sp, #4]
- add r0, r5, #0
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- add r0, #0x4c
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl MOD08_02217E80
- ldr r0, [sp, #0xc]
- add r1, r0, #1
- mov r0, #6
- mul r0, r1
- ldr r1, _0221D900 ; =0x0222C59A
- ldrsh r2, [r1, r0]
- ldr r1, [sp, #8]
- sub r7, r2, r1
- mov r1, #0xa
- ldrsh r3, [r5, r1]
- ldr r1, _0221D904 ; =0x0222C598
- ldrsh r6, [r1, r0]
- mov r1, #8
- ldrsh r2, [r5, r1]
- ldr r1, _0221D908 ; =0x0222C596
- ldrsh r4, [r1, r0]
- lsl r0, r7, #0x10
- str r3, [sp]
- add r1, r2, r4
- lsr r0, r0, #0x10
- add r2, r2, r6
- str r0, [sp, #4]
- add r0, r5, #0
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- add r0, #0x70
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl MOD08_02217E80
- mov r0, #0xa
- ldrsh r3, [r5, r0]
- mov r0, #8
- ldrsh r2, [r5, r0]
- lsl r0, r7, #0x10
- lsr r0, r0, #0x10
- sub r1, r2, r4
- str r3, [sp]
- sub r2, r2, r6
- str r0, [sp, #4]
- add r0, r5, #0
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- add r0, #0x94
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl MOD08_02217E80
- ldrb r0, [r5]
- add r0, r0, #1
- strb r0, [r5]
- ldrb r0, [r5, #1]
- add r0, r0, #1
- strb r0, [r5, #1]
-_0221D84C:
- mov r0, #0
- add r7, r5, #0
- str r0, [sp, #0x10]
- str r0, [sp, #0x14]
- add r7, #0x28
- add r6, r5, #0
- add r4, r5, #0
-_0221D85A:
- add r0, r7, #0
- bl MOD08_02217ECC
- cmp r0, #0
- bne _0221D870
- ldr r0, [sp, #0x10]
- add r0, r0, #1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x10]
- b _0221D87E
-_0221D870:
- mov r1, #0x28
- mov r2, #0x2a
- ldrsh r1, [r6, r1]
- ldrsh r2, [r6, r2]
- ldr r0, [r4, #0x18]
- bl FUN_0200C714
-_0221D87E:
- ldr r0, [r4, #0x18]
- bl FUN_0200C5A8
- ldr r0, [sp, #0x14]
- add r7, #0x24
- add r0, r0, #1
- add r6, #0x24
- add r4, r4, #4
- str r0, [sp, #0x14]
- cmp r0, #4
- blt _0221D85A
- ldr r0, [sp, #0x10]
- cmp r0, #4
- bne _0221D8F4
- ldrb r0, [r5]
- cmp r0, #9
- bne _0221D8A8
- ldrb r0, [r5, #1]
- add r0, r0, #1
- strb r0, [r5, #1]
- b _0221D8F4
-_0221D8A8:
- mov r0, #0
- strb r0, [r5, #1]
- b _0221D8F4
-_0221D8AE:
- ldrb r0, [r5, #4]
- cmp r0, #0
- beq _0221D8B8
- sub r0, r0, #1
- strb r0, [r5, #4]
-_0221D8B8:
- ldrb r0, [r5, #5]
- cmp r0, #0xf
- bhs _0221D8C2
- add r0, r0, #1
- strb r0, [r5, #5]
-_0221D8C2:
- ldrb r0, [r5, #4]
- cmp r0, #0
- bne _0221D8D4
- ldrb r0, [r5, #5]
- cmp r0, #0xf
- bne _0221D8D4
- ldrb r0, [r5, #1]
- add r0, r0, #1
- strb r0, [r5, #1]
-_0221D8D4:
- ldrb r0, [r5, #5]
- ldrb r1, [r5, #4]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0221D90C ; =0x04000052
- strh r1, [r0]
- b _0221D8F4
-_0221D8E2:
- ldr r0, [r5, #0xc]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r5, #0
- bl FreeToHeap
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
-_0221D8F4:
- ldr r0, [r5, #0x14]
- bl FUN_0200BC1C
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0221D900: .word 0x0222C59A
-_0221D904: .word 0x0222C598
-_0221D908: .word 0x0222C596
-_0221D90C: .word 0x04000052
-
- thumb_func_start MOD08_0221D910
-MOD08_0221D910: ; 0x0221D910
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- str r0, [sp, #0x18]
- bl MOD08_02212014
- mov r1, #0xb8
- bl AllocFromHeap
- add r4, r0, #0
- mov r0, #0
- strb r0, [r4, #1]
- strb r0, [r4]
- ldr r0, [sp, #0x18]
- str r0, [r4, #0xc]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #0xc]
- bl MOD08_022154D4
- str r0, [r4, #0x10]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #8]
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #0xa]
- ldr r0, [r4, #0x10]
- mov r1, #0x29
- bl FUN_0200782C
- mov r1, #0xa
- ldrsh r1, [r4, r1]
- sub r0, r1, r0
- strh r0, [r4, #0xa]
- ldr r0, [r4, #0xc]
- bl MOD08_02212504
- str r0, [r4, #0x14]
- mov r0, #8
- strb r0, [r4, #4]
- mov r1, #6
- strb r1, [r4, #5]
- sub r1, r1, #7
- ldr r0, [r4, #0xc]
- add r2, r1, #0
- bl MOD08_02227994
- ldrb r0, [r4, #5]
- ldrb r1, [r4, #4]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0221DB90 ; =0x04000052
- strh r1, [r0]
- ldr r0, [r4, #0xc]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #0xc]
- bl MOD08_0221550C
- str r0, [sp, #0x20]
- ldr r0, [r4, #0xc]
- bl MOD08_02215574
- add r7, r0, #0
- ldr r0, [r4, #0xc]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #0xc]
- bl MOD08_0221551C
- str r0, [sp, #0x1c]
- mov r6, #0
- add r5, r4, #0
-_0221D9AE:
- ldr r0, [r4, #0xc]
- add r1, r6, #0
- bl MOD08_022124D8
- mov r1, #1
- str r0, [r5, #0x18]
- bl FUN_0200C90C
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #4
- blt _0221D9AE
- ldr r0, [r4, #0xc]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #0xc]
- bl MOD08_02227470
- cmp r0, #3
- ldr r0, [r4, #0x18]
- bne _0221DA9E
- mov r1, #0xa
- bl FUN_0200C6C4
- ldr r0, [r4, #0x1c]
- mov r1, #0xa
- bl FUN_0200C6C4
- ldr r0, [r4, #0x20]
- mov r1, #0x14
- bl FUN_0200C6C4
- ldr r0, [r4, #0x24]
- mov r1, #0x14
- bl FUN_0200C6C4
- ldr r0, [r4, #0x18]
- add r1, r7, #0
- bl FUN_0200C6B0
- ldr r0, [r4, #0x1c]
- add r1, r7, #0
- bl FUN_0200C6B0
- ldr r0, [r4, #0x20]
- add r1, r7, #0
- bl FUN_0200C6B0
- ldr r0, [r4, #0x24]
- add r1, r7, #0
- bl FUN_0200C6B0
- ldr r0, [r4, #0x18]
- ldr r0, [r0]
- bl FUN_02020354
- mov r1, #1
- bl FUN_0201E28C
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- ldr r0, [r4, #0xc]
- bl MOD08_02215504
- add r6, r0, #0
- ldr r0, [sp, #0x18]
- bl MOD08_02212014
- add r3, r0, #0
- mov r0, #2
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- lsl r0, r5, #0x14
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- mov r0, #0x80
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- str r0, [sp, #0x14]
- ldr r1, [sp, #0x1c]
- ldr r2, [sp, #0x20]
- add r0, r6, #0
- bl FUN_02003B40
- ldr r0, [r4, #0x20]
- ldr r0, [r0]
- bl FUN_02020354
- mov r1, #1
- bl FUN_0201E28C
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- ldr r0, [r4, #0xc]
- bl MOD08_02215504
- add r6, r0, #0
- ldr r0, [sp, #0x18]
- bl MOD08_02212014
- add r3, r0, #0
- mov r0, #2
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- lsl r0, r5, #0x14
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- mov r0, #0xc4
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- str r0, [sp, #0x14]
- ldr r1, [sp, #0x1c]
- ldr r2, [sp, #0x20]
- add r0, r6, #0
- bl FUN_02003B40
- b _0221DB80
-_0221DA9E:
- mov r1, #0x14
- bl FUN_0200C6C4
- ldr r0, [r4, #0x1c]
- mov r1, #0x14
- bl FUN_0200C6C4
- ldr r0, [r4, #0x20]
- mov r1, #0xa
- bl FUN_0200C6C4
- ldr r0, [r4, #0x24]
- mov r1, #0xa
- bl FUN_0200C6C4
- ldr r0, [r4, #0x18]
- add r1, r7, #1
- bl FUN_0200C6B0
- ldr r0, [r4, #0x1c]
- add r1, r7, #1
- bl FUN_0200C6B0
- ldr r0, [r4, #0x20]
- add r1, r7, #1
- bl FUN_0200C6B0
- ldr r0, [r4, #0x24]
- add r1, r7, #1
- bl FUN_0200C6B0
- ldr r0, [r4, #0x18]
- add r1, r7, #0
- bl FUN_0200C6B0
- ldr r0, [r4, #0x1c]
- add r1, r7, #0
- bl FUN_0200C6B0
- ldr r0, [r4, #0x20]
- add r1, r7, #0
- bl FUN_0200C6B0
- ldr r0, [r4, #0x24]
- add r1, r7, #0
- bl FUN_0200C6B0
- ldr r0, [r4, #0x18]
- ldr r0, [r0]
- bl FUN_02020354
- mov r1, #1
- bl FUN_0201E28C
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- ldr r0, [r4, #0xc]
- bl MOD08_02215504
- add r6, r0, #0
- ldr r0, [sp, #0x18]
- bl MOD08_02212014
- add r3, r0, #0
- mov r0, #2
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- lsl r0, r5, #0x14
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- mov r0, #0xc4
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- str r0, [sp, #0x14]
- ldr r1, [sp, #0x1c]
- ldr r2, [sp, #0x20]
- add r0, r6, #0
- bl FUN_02003B40
- ldr r0, [r4, #0x20]
- ldr r0, [r0]
- bl FUN_02020354
- mov r1, #1
- bl FUN_0201E28C
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- ldr r0, [r4, #0xc]
- bl MOD08_02215504
- add r6, r0, #0
- ldr r0, [sp, #0x18]
- bl MOD08_02212014
- add r3, r0, #0
- mov r0, #2
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- lsl r0, r5, #0x14
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- mov r0, #0x80
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- str r0, [sp, #0x14]
- ldr r1, [sp, #0x1c]
- ldr r2, [sp, #0x20]
- add r0, r6, #0
- bl FUN_02003B40
-_0221DB80:
- ldr r0, [r4, #0xc]
- ldr r1, _0221DB94 ; =MOD08_0221D74C
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- nop
-_0221DB90: .word 0x04000052
-_0221DB94: .word MOD08_0221D74C
-
- thumb_func_start MOD08_0221DB98
-MOD08_0221DB98: ; 0x0221DB98
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _0221DBAA
- cmp r0, #1
- beq _0221DC04
- b _0221DC44
-_0221DBAA:
- ldrb r1, [r4, #2]
- ldr r5, _0221DC54 ; =0x0222C531
- mov r2, #0x64
- lsl r0, r1, #1
- add r3, r1, r0
- ldr r0, _0221DC58 ; =0x0222C532
- ldr r1, _0221DC5C ; =0x0222C530
- ldrb r0, [r0, r3]
- ldrb r1, [r1, r3]
- ldrb r3, [r5, r3]
- str r0, [sp]
- add r0, r4, #0
- add r0, #0xc
- bl MOD08_02218120
- ldrb r0, [r4, #2]
- cmp r0, #0
- ldr r0, _0221DC60 ; =0x00007FFF
- bne _0221DBE0
- str r0, [sp]
- mov r1, #0
- ldr r0, [r4, #8]
- mov r2, #6
- add r3, r1, #0
- bl FUN_02007E68
- b _0221DBEE
-_0221DBE0:
- str r0, [sp]
- mov r2, #0
- ldr r0, [r4, #8]
- mov r1, #6
- add r3, r2, #0
- bl FUN_02007E68
-_0221DBEE:
- ldrb r1, [r4, #2]
- mov r0, #1
- eor r0, r1
- strb r0, [r4, #2]
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_0221DC04:
- add r0, r4, #0
- add r0, #0xc
- bl MOD08_02218170
- cmp r0, #0
- bne _0221DC2C
- ldr r0, [r4, #8]
- bl FUN_02007F20
- cmp r0, #0
- bne _0221DC2C
- ldrb r0, [r4, #1]
- cmp r0, #4
- ldrb r0, [r4]
- bhs _0221DC28
- sub r0, r0, #1
- strb r0, [r4]
- b _0221DC2C
-_0221DC28:
- add r0, r0, #1
- strb r0, [r4]
-_0221DC2C:
- mov r1, #0xc
- ldrsh r2, [r4, r1]
- ldr r0, [r4, #8]
- bl FUN_02007558
- mov r2, #0xe
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #8]
- mov r1, #0xd
- bl FUN_02007558
- pop {r3, r4, r5, pc}
-_0221DC44:
- ldr r0, [r4, #4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0221DC54: .word 0x0222C531
-_0221DC58: .word 0x0222C532
-_0221DC5C: .word 0x0222C530
-_0221DC60: .word 0x00007FFF
-
- thumb_func_start MOD08_0221DC64
-MOD08_0221DC64: ; 0x0221DC64
- push {r3, r4, r5, lr}
- mov r1, #0x30
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- mov r0, #0
- strb r0, [r4]
- strb r0, [r4, #2]
- strb r0, [r4, #1]
- str r5, [r4, #4]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_022154D4
- str r0, [r4, #8]
- ldr r0, [r4, #4]
- ldr r1, _0221DC98 ; =MOD08_0221DB98
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, pc}
- nop
-_0221DC98: .word MOD08_0221DB98
-
- thumb_func_start MOD08_0221DC9C
-MOD08_0221DC9C: ; 0x0221DC9C
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _0221DCB0
- cmp r0, #1
- beq _0221DCEA
- b _0221DD42
-_0221DCB0:
- ldrb r1, [r4, #1]
- ldr r2, _0221DD54 ; =0x0222C578
- ldr r5, _0221DD58 ; =0x0222C579
- lsl r0, r1, #2
- add r3, r1, r0
- ldr r0, _0221DD5C ; =0x0222C57A
- ldr r1, _0221DD60 ; =0x0222C577
- ldrb r0, [r0, r3]
- ldrb r1, [r1, r3]
- ldrb r2, [r2, r3]
- str r0, [sp]
- mov r0, #0x64
- str r0, [sp, #4]
- ldr r0, _0221DD64 ; =0x0222C57B
- ldrb r0, [r0, r3]
- ldrb r3, [r5, r3]
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_022181A8
- ldrb r0, [r4, #1]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4, #1]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, pc}
-_0221DCEA:
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_02218224
- cmp r0, #0
- bne _0221DD08
- ldrb r0, [r4, #1]
- cmp r0, #3
- ldrb r0, [r4]
- bhs _0221DD04
- sub r0, r0, #1
- strb r0, [r4]
- b _0221DD08
-_0221DD04:
- add r0, r0, #1
- strb r0, [r4]
-_0221DD08:
- mov r2, #0x10
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x12
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xd
- bl FUN_02007558
- mov r0, #2
- mov r1, #4
- ldrsh r0, [r4, r0]
- ldrsh r1, [r4, r1]
- ldr r2, [r4, #0x24]
- bl MOD08_0221828C
- mov r2, #2
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #1
- add r2, r2, r3
- bl FUN_02007558
- add sp, #0xc
- pop {r4, r5, pc}
-_0221DD42:
- ldr r0, [r4, #8]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-_0221DD54: .word 0x0222C578
-_0221DD58: .word 0x0222C579
-_0221DD5C: .word 0x0222C57A
-_0221DD60: .word 0x0222C577
-_0221DD64: .word 0x0222C57B
-
- thumb_func_start MOD08_0221DD68
-MOD08_0221DD68: ; 0x0221DD68
- push {r3, r4, r5, lr}
- mov r1, #0x34
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- mov r0, #0
- strb r0, [r4]
- strb r0, [r4, #1]
- str r5, [r4, #8]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #8]
- bl MOD08_022154D4
- str r0, [r4, #0xc]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #2]
- ldr r0, [r4, #8]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #8]
- bl MOD08_0221552C
- strh r0, [r4, #4]
- ldr r0, [r4, #8]
- ldr r1, _0221DDB0 ; =MOD08_0221DC9C
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0221DDB0: .word MOD08_0221DC9C
-
- thumb_func_start MOD08_0221DDB4
-MOD08_0221DDB4: ; 0x0221DDB4
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4]
- cmp r0, #5
- bls _0221DDC4
- b _0221DF24
-_0221DDC4:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221DDD0: ; jump table
- .short _0221DDDC - _0221DDD0 - 2 ; case 0
- .short _0221DE16 - _0221DDD0 - 2 ; case 1
- .short _0221DE58 - _0221DDD0 - 2 ; case 2
- .short _0221DE82 - _0221DDD0 - 2 ; case 3
- .short _0221DEA4 - _0221DDD0 - 2 ; case 4
- .short _0221DEE2 - _0221DDD0 - 2 ; case 5
-_0221DDDC:
- ldrb r1, [r4, #1]
- ldr r2, _0221DF64 ; =0x0222C550
- ldr r5, _0221DF68 ; =0x0222C551
- lsl r0, r1, #2
- add r3, r1, r0
- ldr r0, _0221DF6C ; =0x0222C552
- ldr r1, _0221DF70 ; =0x0222C54F
- ldrb r0, [r0, r3]
- ldrb r1, [r1, r3]
- ldrb r2, [r2, r3]
- str r0, [sp]
- mov r0, #0x64
- str r0, [sp, #4]
- ldr r0, _0221DF74 ; =0x0222C553
- ldrb r0, [r0, r3]
- ldrb r3, [r5, r3]
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_022181A8
- ldrb r0, [r4, #1]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4, #1]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, pc}
-_0221DE16:
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_02218224
- cmp r0, #0
- bne _0221DE28
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221DE28:
- mov r2, #0x10
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x12
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xd
- bl FUN_02007558
- mov r0, #0
- str r0, [sp]
- mov r1, #2
- mov r2, #6
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- ldr r3, [r4, #0x24]
- bl MOD08_022182DC
- add sp, #0xc
- pop {r4, r5, pc}
-_0221DE58:
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_0200782C
- mov r1, #0
- add r3, r0, #0
- lsl r3, r3, #0x10
- str r1, [sp]
- mov r0, #5
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x10
- add r2, r1, #0
- asr r3, r3, #0x10
- bl MOD08_02217E80
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, pc}
-_0221DE82:
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_02217ECC
- cmp r0, #0
- bne _0221DE94
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221DE94:
- mov r2, #0x12
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_02007558
- add sp, #0xc
- pop {r4, r5, pc}
-_0221DEA4:
- ldrb r1, [r4, #1]
- ldr r2, _0221DF64 ; =0x0222C550
- ldr r5, _0221DF68 ; =0x0222C551
- lsl r0, r1, #2
- add r3, r1, r0
- ldr r0, _0221DF6C ; =0x0222C552
- ldr r1, _0221DF70 ; =0x0222C54F
- ldrb r0, [r0, r3]
- ldrb r1, [r1, r3]
- ldrb r2, [r2, r3]
- str r0, [sp]
- mov r0, #0x64
- str r0, [sp, #4]
- ldr r0, _0221DF74 ; =0x0222C553
- ldrb r0, [r0, r3]
- ldrb r3, [r5, r3]
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_022181A8
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #2]
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, pc}
-_0221DEE2:
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_02218224
- cmp r0, #0
- bne _0221DEF4
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221DEF4:
- mov r2, #0x10
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x12
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xd
- bl FUN_02007558
- mov r0, #1
- str r0, [sp]
- mov r1, #2
- mov r2, #6
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- ldr r3, [r4, #0x24]
- bl MOD08_022182DC
- add sp, #0xc
- pop {r4, r5, pc}
-_0221DF24:
- mov r2, #4
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_02007558
- ldr r0, [r4, #0xc]
- mov r1, #6
- mov r2, #1
- bl FUN_02007558
- mov r1, #0xc
- add r2, r1, #0
- ldr r0, [r4, #0xc]
- add r2, #0xf4
- bl FUN_02007558
- mov r1, #0xd
- add r2, r1, #0
- ldr r0, [r4, #0xc]
- add r2, #0xf3
- bl FUN_02007558
- ldr r0, [r4, #8]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-_0221DF64: .word 0x0222C550
-_0221DF68: .word 0x0222C551
-_0221DF6C: .word 0x0222C552
-_0221DF70: .word 0x0222C54F
-_0221DF74: .word 0x0222C553
-
- thumb_func_start MOD08_0221DF78
-MOD08_0221DF78: ; 0x0221DF78
- push {r3, r4, r5, lr}
- mov r1, #0x34
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- mov r0, #0
- strb r0, [r4]
- strb r0, [r4, #1]
- str r5, [r4, #8]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #8]
- bl MOD08_022154D4
- str r0, [r4, #0xc]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #2]
- mov r0, #2
- ldrsh r0, [r4, r0]
- strh r0, [r4, #4]
- ldr r0, [r4, #8]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #8]
- bl MOD08_0221552C
- strh r0, [r4, #6]
- ldr r0, [r4, #8]
- ldr r1, _0221DFC8 ; =MOD08_0221DDB4
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, pc}
- nop
-_0221DFC8: .word MOD08_0221DDB4
-
- thumb_func_start MOD08_0221DFCC
-MOD08_0221DFCC: ; 0x0221DFCC
- push {r3, r4, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #4
- bhi _0221E0B6
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221DFE6: ; jump table
- .short _0221DFF0 - _0221DFE6 - 2 ; case 0
- .short _0221E02A - _0221DFE6 - 2 ; case 1
- .short _0221E048 - _0221DFE6 - 2 ; case 2
- .short _0221E05E - _0221DFE6 - 2 ; case 3
- .short _0221E098 - _0221DFE6 - 2 ; case 4
-_0221DFF0:
- ldr r0, [r4, #8]
- bl MOD08_02214540
- add r2, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- ldr r0, _0221E0C8 ; =0x00007FFF
- mov r1, #1
- str r0, [sp, #8]
- lsl r2, r2, #0x10
- ldr r0, [r4, #4]
- lsr r2, r2, #0x10
- sub r3, r1, #3
- bl FUN_02003210
- mov r1, #0
- str r1, [sp]
- ldr r0, [r4, #0x10]
- mov r2, #0x10
- add r3, r1, #0
- bl FUN_02007E68
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, pc}
-_0221E02A:
- ldr r0, [r4, #4]
- bl FUN_020038E4
- cmp r0, #0
- bne _0221E0C4
- ldr r0, [r4, #0x10]
- bl FUN_02007F20
- cmp r0, #0
- bne _0221E0C4
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, pc}
-_0221E048:
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- ldrb r0, [r4, #1]
- cmp r0, #5
- bls _0221E0C4
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, pc}
-_0221E05E:
- ldr r0, [r4, #8]
- bl MOD08_02214540
- add r2, r0, #0
- mov r0, #0x10
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- ldr r0, _0221E0C8 ; =0x00007FFF
- mov r1, #1
- str r0, [sp, #8]
- lsl r2, r2, #0x10
- ldr r0, [r4, #4]
- lsr r2, r2, #0x10
- sub r3, r1, #3
- bl FUN_02003210
- mov r2, #0
- str r2, [sp]
- ldr r0, [r4, #0x10]
- mov r1, #0x10
- add r3, r2, #0
- bl FUN_02007E68
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, pc}
-_0221E098:
- ldr r0, [r4, #4]
- bl FUN_020038E4
- cmp r0, #0
- bne _0221E0C4
- ldr r0, [r4, #0x10]
- bl FUN_02007F20
- cmp r0, #0
- bne _0221E0C4
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, pc}
-_0221E0B6:
- ldr r0, [r4, #8]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_0221E0C4:
- add sp, #0xc
- pop {r3, r4, pc}
- .align 2, 0
-_0221E0C8: .word 0x00007FFF
-
- thumb_func_start MOD08_0221E0CC
-MOD08_0221E0CC: ; 0x0221E0CC
- push {r3, r4, r5, lr}
- mov r1, #0x14
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4, #8]
- add r0, r5, #0
- bl MOD08_02215504
- str r0, [r4, #4]
- ldr r0, [r4, #8]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #8]
- bl MOD08_022154D4
- str r0, [r4, #0x10]
- ldr r0, [r4, #8]
- ldr r1, _0221E100 ; =MOD08_0221DFCC
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, pc}
- nop
-_0221E100: .word MOD08_0221DFCC
-
- thumb_func_start MOD08_0221E104
-MOD08_0221E104: ; 0x0221E104
- push {r3, r4, r5, r6, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _0221E118
- cmp r0, #1
- beq _0221E184
- b _0221E1F8
-_0221E118:
- ldrb r1, [r4, #1]
- ldr r2, _0221E20C ; =0x0222C55A
- ldr r5, _0221E210 ; =0x0222C55B
- lsl r0, r1, #2
- add r3, r1, r0
- ldr r0, _0221E214 ; =0x0222C55C
- ldr r1, _0221E218 ; =0x0222C559
- ldrb r0, [r0, r3]
- ldrb r1, [r1, r3]
- ldrb r2, [r2, r3]
- str r0, [sp]
- mov r0, #0x64
- str r0, [sp, #4]
- ldr r0, _0221E21C ; =0x0222C55D
- ldrb r0, [r0, r3]
- ldrb r3, [r5, r3]
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_022181A8
- ldrb r1, [r4, #1]
- ldr r6, _0221E220 ; =0x0222C53C
- lsl r0, r1, #1
- add r5, r1, r0
- mov r0, #4
- ldrsh r3, [r4, r0]
- ldr r0, _0221E224 ; =0x0222C53D
- mov r1, #0
- ldrb r0, [r0, r5]
- add r2, r1, #0
- add r0, r3, r0
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- ldr r0, _0221E228 ; =0x0222C53E
- ldrb r0, [r0, r5]
- ldrb r5, [r6, r5]
- str r0, [sp, #4]
- add r3, r3, r5
- add r0, r4, #0
- lsl r3, r3, #0x10
- add r0, #0x34
- asr r3, r3, #0x10
- bl MOD08_02217E80
- ldrb r0, [r4, #1]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4, #1]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0221E184:
- add r0, r4, #0
- add r0, #0x10
- mov r5, #0
- bl MOD08_02218224
- cmp r0, #0
- bne _0221E194
- add r5, r5, #1
-_0221E194:
- add r0, r4, #0
- add r0, #0x34
- bl MOD08_02217ECC
- cmp r0, #0
- bne _0221E1A2
- add r5, r5, #1
-_0221E1A2:
- cmp r5, #2
- blt _0221E1C8
- ldrb r0, [r4, #1]
- cmp r0, #3
- blo _0221E1C4
- ldrb r0, [r4, #2]
- add r0, r0, #1
- strb r0, [r4, #2]
- mov r0, #0
- strb r0, [r4, #1]
- ldrb r0, [r4, #2]
- cmp r0, #3
- blo _0221E1C8
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221E1C8
-_0221E1C4:
- mov r0, #0
- strb r0, [r4]
-_0221E1C8:
- mov r2, #0x10
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0x12
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0xd
- bl FUN_02007558
- mov r0, #0
- str r0, [sp]
- mov r1, #0x36
- mov r2, #6
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- ldr r3, [r4, #0x24]
- bl MOD08_022182DC
- add sp, #0xc
- pop {r3, r4, r5, r6, pc}
-_0221E1F8:
- ldr r0, [r4, #8]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #0xc
- pop {r3, r4, r5, r6, pc}
- nop
-_0221E20C: .word 0x0222C55A
-_0221E210: .word 0x0222C55B
-_0221E214: .word 0x0222C55C
-_0221E218: .word 0x0222C559
-_0221E21C: .word 0x0222C55D
-_0221E220: .word 0x0222C53C
-_0221E224: .word 0x0222C53D
-_0221E228: .word 0x0222C53E
-
- thumb_func_start MOD08_0221E22C
-MOD08_0221E22C: ; 0x0221E22C
- push {r3, r4, r5, lr}
- mov r1, #0x58
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- mov r0, #0
- strb r0, [r4]
- strb r0, [r4, #1]
- str r5, [r4, #8]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #8]
- bl MOD08_022154D4
- str r0, [r4, #0xc]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #4]
- ldr r0, [r4, #8]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #8]
- bl MOD08_0221552C
- strh r0, [r4, #6]
- ldr r0, [r4, #8]
- ldr r1, _0221E274 ; =MOD08_0221E104
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0221E274: .word MOD08_0221E104
-
- thumb_func_start MOD08_0221E278
-MOD08_0221E278: ; 0x0221E278
- push {r4, lr}
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _0221E28E
- cmp r0, #1
- beq _0221E2A6
- cmp r0, #2
- beq _0221E2C6
- b _0221E308
-_0221E28E:
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- ldrb r0, [r4, #1]
- cmp r0, #0xa
- blo _0221E324
- mov r0, #0
- strb r0, [r4, #1]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221E324
-_0221E2A6:
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_0200C644
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200C644
- ldr r0, [r4, #0x10]
- mov r1, #2
- bl FUN_0200C90C
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221E324
-_0221E2C6:
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- ldrb r0, [r4, #1]
- cmp r0, #0xa
- blo _0221E324
- ldr r0, _0221E338 ; =0x0400004A
- mov r1, #0x3f
- ldrh r2, [r0]
- bic r2, r1
- mov r1, #0x1f
- orr r2, r1
- strh r2, [r0]
- ldrh r3, [r0]
- ldr r2, _0221E33C ; =0xFFFFC0FF
- lsl r1, r1, #8
- and r2, r3
- orr r1, r2
- strh r1, [r0]
- ldr r0, [r4, #0xc]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0x10]
- mov r1, #0
- bl FUN_0200C644
- mov r0, #0
- strb r0, [r4, #1]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221E324
-_0221E308:
- mov r3, #1
- lsl r3, r3, #0x1a
- ldr r1, [r3]
- ldr r0, _0221E340 ; =0xFFFF1FFF
- and r0, r1
- str r0, [r3]
- ldr r0, [r4, #4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
-_0221E324:
- ldr r0, [r4, #0xc]
- bl FUN_0200C5A8
- ldr r0, [r4, #0x10]
- bl FUN_0200C5A8
- ldr r0, [r4, #8]
- bl FUN_0200BC1C
- pop {r4, pc}
- .align 2, 0
-_0221E338: .word 0x0400004A
-_0221E33C: .word 0xFFFFC0FF
-_0221E340: .word 0xFFFF1FFF
-
- thumb_func_start MOD08_0221E344
-MOD08_0221E344: ; 0x0221E344
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x20
- mov r1, #0x14
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4, #4]
- add r0, r5, #0
- bl MOD08_02212504
- str r0, [r4, #8]
- ldr r0, [r4, #4]
- mov r1, #0
- bl MOD08_022124D8
- str r0, [r4, #0xc]
- ldr r0, [r4, #4]
- mov r1, #1
- bl MOD08_022124D8
- str r0, [r4, #0x10]
- mov r0, #1
- lsl r0, r0, #0x1a
- ldr r2, [r0]
- ldr r1, _0221E41C ; =0xFFFF1FFF
- and r2, r1
- lsr r1, r0, #0xb
- orr r1, r2
- str r1, [r0]
- add r0, #0x4a
- ldrh r2, [r0]
- mov r1, #0x3f
- bic r2, r1
- mov r1, #0x1f
- orr r1, r2
- strh r1, [r0]
- ldrh r2, [r0]
- ldr r1, _0221E420 ; =0xFFFFC0FF
- and r2, r1
- mov r1, #0x12
- lsl r1, r1, #8
- orr r1, r2
- strh r1, [r0]
- ldr r0, [r4, #4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_0221550C
- add r7, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_0221551C
- str r0, [sp, #0x18]
- ldr r0, [r4, #0xc]
- ldr r0, [r0]
- bl FUN_02020354
- mov r1, #1
- bl FUN_0201E28C
- add r6, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_02215504
- str r0, [sp, #0x1c]
- add r0, r5, #0
- bl MOD08_02212014
- add r3, r0, #0
- mov r0, #2
- str r0, [sp]
- mov r1, #0x20
- lsl r0, r6, #0x14
- str r1, [sp, #4]
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- add r1, #0xe0
- str r1, [sp, #0xc]
- str r1, [sp, #0x10]
- str r1, [sp, #0x14]
- ldr r0, [sp, #0x1c]
- ldr r1, [sp, #0x18]
- add r2, r7, #0
- bl FUN_02003B40
- ldr r0, [r4, #0xc]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0x10]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #4]
- ldr r1, _0221E424 ; =MOD08_0221E278
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x20
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0221E41C: .word 0xFFFF1FFF
-_0221E420: .word 0xFFFFC0FF
-_0221E424: .word MOD08_0221E278
-
- thumb_func_start MOD08_0221E428
-MOD08_0221E428: ; 0x0221E428
- push {r4, r5, r6, r7, lr}
- sub sp, #0x2c
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4]
- cmp r0, #3
- bls _0221E438
- b _0221E61A
-_0221E438:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221E444: ; jump table
- .short _0221E44C - _0221E444 - 2 ; case 0
- .short _0221E45E - _0221E444 - 2 ; case 1
- .short _0221E576 - _0221E444 - 2 ; case 2
- .short _0221E5AE - _0221E444 - 2 ; case 3
-_0221E44C:
- ldr r0, [r4, #0xc]
- mov r1, #0xe
- mov r2, #1
- bl FUN_02007558
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221E636
-_0221E45E:
- mov r0, #0
- add r6, r4, #0
- ldr r7, _0221E640 ; =0x0222C52C
- str r0, [sp, #0x10]
- str r0, [sp, #0x14]
- add r5, r4, #0
- add r6, #0x20
-_0221E46C:
- ldrb r0, [r5, #0x18]
- cmp r0, #0
- beq _0221E478
- cmp r0, #1
- beq _0221E4A6
- b _0221E4F4
-_0221E478:
- ldrb r0, [r5, #0x19]
- add r0, r0, #1
- strb r0, [r5, #0x19]
- ldrb r1, [r5, #0x19]
- ldrb r0, [r7]
- cmp r1, r0
- blo _0221E4FA
- mov r0, #5
- str r0, [sp]
- mov r0, #0x64
- str r0, [sp, #4]
- mov r0, #5
- mov r1, #0x64
- str r0, [sp, #8]
- add r0, r6, #0
- mov r2, #5
- add r3, r1, #0
- bl MOD08_022181A8
- ldrb r0, [r5, #0x18]
- add r0, r0, #1
- strb r0, [r5, #0x18]
- b _0221E4FA
-_0221E4A6:
- add r0, r6, #0
- bl MOD08_02218224
- cmp r0, #0
- bne _0221E4B8
- ldrb r0, [r5, #0x18]
- add r0, r0, #1
- strb r0, [r5, #0x18]
- b _0221E4FA
-_0221E4B8:
- add r0, r6, #0
- add r1, sp, #0x28
- add r2, sp, #0x24
- bl MOD08_0221825C
- mov r0, #8
- ldrsb r0, [r4, r0]
- bl _fflt
- add r1, r0, #0
- ldr r0, [sp, #0x28]
- bl _fmul
- add r1, r0, #0
- ldr r0, [r5, #0x1c]
- ldr r2, [sp, #0x24]
- bl FUN_0200C884
- mov r0, #0
- str r0, [sp]
- mov r1, #2
- ldr r2, [r4, #4]
- ldrsh r1, [r4, r1]
- lsl r2, r2, #0x10
- ldr r0, [r5, #0x1c]
- ldr r3, [r5, #0x34]
- asr r2, r2, #0x10
- bl MOD08_02218314
- b _0221E4FA
-_0221E4F4:
- ldr r0, [sp, #0x10]
- add r0, r0, #1
- str r0, [sp, #0x10]
-_0221E4FA:
- ldr r0, [r5, #0x1c]
- bl FUN_0200C5A8
- ldr r0, [sp, #0x14]
- add r5, #0x2c
- add r0, r0, #1
- add r7, r7, #1
- add r6, #0x2c
- str r0, [sp, #0x14]
- cmp r0, #3
- blt _0221E46C
- ldr r0, [sp, #0x10]
- cmp r0, #3
- bge _0221E518
- b _0221E636
-_0221E518:
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- ldrb r0, [r4, #1]
- cmp r0, #3
- bhs _0221E56E
- mov r6, #0
- add r5, r4, #0
- add r7, r6, #0
-_0221E52A:
- add r1, sp, #0x18
- ldr r0, [r5, #0x1c]
- add r1, #2
- add r2, sp, #0x18
- bl FUN_0200C7A0
- add r2, sp, #0x18
- mov r1, #2
- ldrsh r1, [r2, r1]
- mov r2, #2
- ldrsh r2, [r4, r2]
- ldr r0, [r5, #0x1c]
- bl FUN_0200C714
- mov r0, #8
- ldrsb r0, [r4, r0]
- bl _fflt
- add r1, r0, #0
- mov r2, #0xfe
- ldr r0, [r5, #0x1c]
- lsl r2, r2, #0x16
- bl FUN_0200C884
- strb r7, [r5, #0x18]
- strb r7, [r5, #0x19]
- add r6, r6, #1
- add r5, #0x2c
- cmp r6, #3
- blt _0221E52A
- ldrb r0, [r4]
- sub r0, r0, #1
- strb r0, [r4]
- b _0221E636
-_0221E56E:
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221E636
-_0221E576:
- add r5, r4, #0
- mov r7, #0
- add r6, r4, #0
- add r5, #0x20
-_0221E57E:
- ldr r0, [r6, #0x1c]
- mov r1, #0
- bl FUN_0200C90C
- mov r0, #0x64
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #5
- mov r1, #5
- str r0, [sp, #8]
- add r0, r5, #0
- mov r2, #0x64
- add r3, r1, #0
- bl MOD08_022181A8
- add r7, r7, #1
- add r6, #0x2c
- add r5, #0x2c
- cmp r7, #3
- blt _0221E57E
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221E636
-_0221E5AE:
- mov r7, #0
- add r6, r4, #0
- str r7, [sp, #0xc]
- add r6, #0x20
- add r5, r4, #0
-_0221E5B8:
- add r0, r6, #0
- bl MOD08_02218224
- cmp r0, #0
- bne _0221E5C6
- add r7, r7, #1
- b _0221E600
-_0221E5C6:
- add r0, r6, #0
- add r1, sp, #0x20
- add r2, sp, #0x1c
- bl MOD08_0221825C
- mov r0, #8
- ldrsb r0, [r4, r0]
- bl _fflt
- add r1, r0, #0
- ldr r0, [sp, #0x20]
- bl _fmul
- add r1, r0, #0
- ldr r0, [r5, #0x1c]
- ldr r2, [sp, #0x1c]
- bl FUN_0200C884
- mov r0, #0
- str r0, [sp]
- mov r1, #2
- ldr r2, [r4, #4]
- ldrsh r1, [r4, r1]
- lsl r2, r2, #0x10
- ldr r0, [r5, #0x1c]
- ldr r3, [r5, #0x34]
- asr r2, r2, #0x10
- bl MOD08_02218314
-_0221E600:
- ldr r0, [sp, #0xc]
- add r6, #0x2c
- add r0, r0, #1
- add r5, #0x2c
- str r0, [sp, #0xc]
- cmp r0, #3
- blt _0221E5B8
- cmp r7, #3
- blt _0221E636
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221E636
-_0221E61A:
- ldr r0, [r4, #0xc]
- mov r1, #0xe
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #0x10]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #0x2c
- pop {r4, r5, r6, r7, pc}
-_0221E636:
- ldr r0, [r4, #0x14]
- bl FUN_0200BC1C
- add sp, #0x2c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0221E640: .word 0x0222C52C
-
- thumb_func_start MOD08_0221E644
-MOD08_0221E644: ; 0x0221E644
- push {r3, r4, r5, r6, r7, lr}
- mov r1, #0x9c
- str r0, [sp]
- bl MOD08_02228064
- add r4, r0, #0
- mov r0, #0
- strb r0, [r4]
- strb r0, [r4, #1]
- ldr r0, [sp]
- str r0, [r4, #0x10]
- bl MOD08_02212504
- str r0, [r4, #0x14]
- ldr r0, [r4, #0x10]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #0x10]
- bl MOD08_022154D4
- str r0, [r4, #0xc]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #2]
- ldr r0, [r4, #0xc]
- mov r1, #0x29
- bl FUN_0200782C
- mov r1, #2
- ldrsh r1, [r4, r1]
- sub r0, r1, r0
- strh r0, [r4, #2]
- ldr r0, [r4, #0x10]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #0x10]
- bl MOD08_0221552C
- mov r1, #0
- str r0, [r4, #4]
- mvn r1, r1
- ldr r0, [r4, #0x10]
- add r2, r1, #0
- bl MOD08_02227994
- mov r6, #0
- ldr r1, _0221E720 ; =0x0000060C
- ldr r0, _0221E724 ; =0x04000052
- add r5, r4, #0
- strh r1, [r0]
- add r7, r6, #0
-_0221E6B0:
- strb r7, [r5, #0x18]
- strb r7, [r5, #0x19]
- ldr r0, [r4, #0x10]
- add r1, r6, #0
- bl MOD08_022124D8
- str r0, [r5, #0x1c]
- mov r1, #2
- bl FUN_0200C840
- ldr r0, [r5, #0x1c]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r5, #0x1c]
- add r1, r6, #1
- bl FUN_0200C6C4
- add r6, r6, #1
- add r5, #0x2c
- cmp r6, #3
- blt _0221E6B0
- ldr r0, [sp]
- mov r1, #0
- bl MOD08_02215680
- cmp r0, #1
- bne _0221E6EE
- mov r0, #0
- mvn r0, r0
- b _0221E6F0
-_0221E6EE:
- mov r0, #1
-_0221E6F0:
- strb r0, [r4, #8]
- mov r6, #0
- add r5, r4, #0
- mov r7, #8
-_0221E6F8:
- ldrsb r0, [r4, r7]
- bl _fflt
- add r1, r0, #0
- mov r2, #0xfe
- ldr r0, [r5, #0x1c]
- lsl r2, r2, #0x16
- bl FUN_0200C884
- add r6, r6, #1
- add r5, #0x2c
- cmp r6, #3
- blt _0221E6F8
- ldr r0, [r4, #0x10]
- ldr r1, _0221E728 ; =MOD08_0221E428
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0221E720: .word 0x0000060C
-_0221E724: .word 0x04000052
-_0221E728: .word MOD08_0221E428
-
- thumb_func_start MOD08_0221E72C
-MOD08_0221E72C: ; 0x0221E72C
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #3
- bls _0221E73C
- b _0221E866
-_0221E73C:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221E748: ; jump table
- .short _0221E750 - _0221E748 - 2 ; case 0
- .short _0221E782 - _0221E748 - 2 ; case 1
- .short _0221E796 - _0221E748 - 2 ; case 2
- .short _0221E7F2 - _0221E748 - 2 ; case 3
-_0221E750:
- ldr r0, [r4, #0xc]
- bl MOD08_02215504
- add r5, r0, #0
- ldr r0, [r4, #0xc]
- bl MOD08_02214540
- add r2, r0, #0
- mov r1, #0
- lsl r2, r2, #0x10
- str r1, [sp]
- mov r0, #0xa
- str r0, [sp, #4]
- str r1, [sp, #8]
- mov r1, #1
- add r0, r5, #0
- lsr r2, r2, #0x10
- add r3, r1, #0
- bl FUN_02003210
- ldrb r0, [r4]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, r7, pc}
-_0221E782:
- ldr r0, [r4, #0xc]
- bl MOD08_02215504
- bl FUN_020038E4
- cmp r0, #0
- bne _0221E874
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221E796:
- mov r0, #5
- str r0, [sp]
- ldrb r1, [r4, #1]
- add r0, r4, #0
- add r0, #0xb4
- lsl r2, r1, #1
- ldr r1, _0221E878 ; =0x0222C586
- ldrsh r1, [r1, r2]
- mov r2, #0
- add r3, r2, #0
- bl MOD08_022183C0
- ldrb r0, [r4, #2]
- cmp r0, #0
- ldr r0, [r4, #0xc]
- bne _0221E7C8
- bl MOD08_02215504
- mov r1, #0
- mov r2, #0xff
- mov r3, #0xa
- str r1, [sp]
- bl FUN_02003A64
- b _0221E7DA
-_0221E7C8:
- bl MOD08_02215504
- ldr r1, _0221E87C ; =0x00007FFF
- mov r2, #0xff
- str r1, [sp]
- mov r1, #0
- mov r3, #0xa
- bl FUN_02003A64
-_0221E7DA:
- mov r0, #3
- strb r0, [r4, #3]
- ldrb r1, [r4, #2]
- mov r0, #1
- eor r0, r1
- strb r0, [r4, #2]
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221E7F2:
- add r0, r4, #0
- add r0, #0xb4
- bl MOD08_022183F0
- cmp r0, #0
- bne _0221E810
- ldrb r0, [r4, #1]
- cmp r0, #8
- ldrb r0, [r4]
- blo _0221E80C
- add r0, r0, #1
- strb r0, [r4]
- b _0221E810
-_0221E80C:
- sub r0, r0, #1
- strb r0, [r4]
-_0221E810:
- ldrb r0, [r4, #3]
- cmp r0, #0
- beq _0221E832
- sub r0, r0, #1
- strb r0, [r4, #3]
- ldrb r0, [r4, #3]
- cmp r0, #0
- bne _0221E832
- ldr r0, [r4, #0xc]
- bl MOD08_02215504
- mov r1, #0
- mov r2, #0xff
- add r3, r1, #0
- str r1, [sp]
- bl FUN_02003A64
-_0221E832:
- mov r6, #0
- add r5, r4, #0
- mov r7, #0x14
-_0221E838:
- ldr r0, [r5, #0x1c]
- cmp r0, #0
- beq _0221E84C
- mov r2, #0xb4
- ldrsh r3, [r4, r2]
- ldrsh r2, [r5, r7]
- mov r1, #0
- add r2, r3, r2
- bl FUN_02007558
-_0221E84C:
- add r6, r6, #1
- add r5, #0x14
- cmp r6, #4
- blt _0221E838
- mov r3, #0xb4
- ldrsh r3, [r4, r3]
- ldr r0, [r4, #8]
- mov r1, #3
- mov r2, #0
- bl FUN_020179E0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
-_0221E866:
- ldr r0, [r4, #0xc]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_0221E874:
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0221E878: .word 0x0222C586
-_0221E87C: .word 0x00007FFF
-
- thumb_func_start MOD08_0221E880
-MOD08_0221E880: ; 0x0221E880
- push {r3, r4, r5, r6, r7, lr}
- mov r1, #0xd8
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- mov r0, #0
- strb r0, [r4]
- strb r0, [r4, #1]
- str r5, [r4, #0xc]
- add r0, r5, #0
- bl MOD08_02212504
- str r0, [r4, #0x10]
- ldr r0, [r4, #0xc]
- bl MOD08_02212490
- str r0, [r4, #8]
- ldr r0, [r4, #0xc]
- bl MOD08_0221553C
- cmp r0, #1
- bne _0221E8B2
- mov r1, #0x40
- b _0221E8B4
-_0221E8B2:
- mov r1, #0xa
-_0221E8B4:
- add r2, r4, #0
- add r0, r5, #0
- add r2, #0x14
- add r3, r4, #4
- bl MOD08_02227BAC
- ldr r0, [r4, #4]
- mov r6, #0
- cmp r0, #0
- ble _0221E8EA
- add r5, r4, #0
- add r7, r6, #0
-_0221E8CC:
- ldr r0, [r5, #0x1c]
- add r1, r7, #0
- bl FUN_0200782C
- strh r0, [r5, #0x14]
- ldr r0, [r5, #0x1c]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r5, #0x16]
- ldr r0, [r4, #4]
- add r6, r6, #1
- add r5, #0x14
- cmp r6, r0
- blt _0221E8CC
-_0221E8EA:
- ldr r0, [r4, #0xc]
- ldr r1, _0221E8F8 ; =MOD08_0221E72C
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0221E8F8: .word MOD08_0221E72C
-
- thumb_func_start MOD08_0221E8FC
-MOD08_0221E8FC: ; 0x0221E8FC
- push {r4, lr}
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- bne _0221E946
- add r0, r4, #0
- add r0, #0x40
- bl MOD08_02217ECC
- cmp r0, #0
- bne _0221E91A
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221E91A:
- add r0, r4, #0
- add r0, #0x1c
- bl MOD08_022183F0
- add r0, r4, #0
- add r0, #0x64
- bl MOD08_02218704
- mov r1, #0x40
- mov r2, #0x42
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x18]
- bl FUN_0200C714
- ldr r0, [r4, #0x18]
- bl FUN_0200C5A8
- ldr r0, [r4, #0x10]
- bl FUN_0200BC1C
- pop {r4, pc}
-_0221E946:
- ldr r0, [r4, #0xc]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221E958
-MOD08_0221E958: ; 0x0221E958
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- mov r1, #0x8c
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- mov r0, #0
- strb r0, [r4]
- strb r0, [r4, #1]
- str r5, [r4, #0xc]
- add r0, r5, #0
- bl MOD08_02212504
- str r0, [r4, #0x10]
- ldr r0, [r4, #0xc]
- bl MOD08_02212490
- str r0, [r4, #8]
- ldr r0, [r4, #0xc]
- mov r1, #0
- bl MOD08_022124D8
- str r0, [r4, #0x18]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- cmp r0, #0
- ldr r0, [r4, #0xc]
- bne _0221E99C
- bl MOD08_02212460
- b _0221E9A0
-_0221E99C:
- bl MOD08_02212458
-_0221E9A0:
- add r6, r0, #0
- ldr r0, [r4, #0xc]
- add r1, r6, #0
- bl MOD08_022154D4
- str r0, [r4, #0x14]
- add r1, r4, #4
- bl MOD08_02227B2C
- ldr r0, [r4, #0x14]
- mov r1, #0x29
- bl FUN_0200782C
- mov r1, #6
- ldrsh r1, [r4, r1]
- sub r0, r1, r0
- strh r0, [r4, #6]
- ldr r0, [r4, #0xc]
- add r1, r6, #0
- bl MOD08_02217C1C
- add r7, r0, #0
- ldr r0, [r4, #0xc]
- add r1, r6, #0
- bl MOD08_02217C44
- add r6, r0, #0
- mov r0, #6
- ldrsh r3, [r4, r0]
- mov r0, #4
- ldrsh r1, [r4, r0]
- mov r2, #0x14
- add r0, r6, #0
- mul r0, r2
- add r0, r3, r0
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- str r2, [sp, #4]
- sub r2, #0x28
- mul r2, r7
- add r2, r1, r2
- add r0, r4, #0
- lsl r2, r2, #0x10
- add r0, #0x40
- asr r2, r2, #0x10
- bl MOD08_02217E80
- add r0, r5, #0
- mov r1, #2
- bl MOD08_022155C4
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD08_022155C4
- mov r5, #1
- add r3, r5, #0
- lsl r3, r6
- add r1, r0, #0
- add r6, r3, #0
- mov r2, #0x20
- add r3, r5, #0
- orr r6, r2
- lsl r3, r1
- add r1, r6, #0
- orr r1, r3
- sub r2, #0x21
- ldr r0, [r4, #0xc]
- orr r1, r5
- add r3, r2, #0
- bl MOD08_022279D0
- mov r1, #0x1f
- mov r2, #0
- str r1, [sp]
- mov r0, #0xf
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x64
- add r3, r2, #0
- bl MOD08_022186D4
- ldr r0, [r4, #0x18]
- add r1, r5, #0
- bl FUN_0200C90C
- ldr r0, [r4, #0xc]
- ldr r1, _0221EA60 ; =MOD08_0221E8FC
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0221EA60: .word MOD08_0221E8FC
-
- thumb_func_start MOD08_0221EA64
-MOD08_0221EA64: ; 0x0221EA64
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _0221EA76
- cmp r0, #1
- beq _0221EAB6
- b _0221EAE6
-_0221EA76:
- ldrb r0, [r4, #1]
- cmp r0, #0
- ldrb r0, [r4, #2]
- bne _0221EA88
- lsl r3, r0, #3
- ldr r0, _0221EB00 ; =0x0222C5B0
- ldr r2, [r0, r3]
- neg r1, r2
- b _0221EA90
-_0221EA88:
- lsl r3, r0, #3
- ldr r0, _0221EB00 ; =0x0222C5B0
- ldr r1, [r0, r3]
- neg r2, r1
-_0221EA90:
- ldr r5, _0221EB04 ; =0x0222C5B4
- add r0, r4, #0
- ldr r3, [r5, r3]
- add r0, #0x5c
- bl MOD08_02218008
- ldrb r0, [r4, #1]
- cmp r0, #1
- bne _0221EAA8
- ldrb r0, [r4, #2]
- add r0, r0, #1
- strb r0, [r4, #2]
-_0221EAA8:
- ldrb r1, [r4, #1]
- mov r0, #1
- eor r0, r1
- strb r0, [r4, #1]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221EAB6:
- add r0, r4, #0
- add r0, #0x5c
- bl MOD08_02218058
- cmp r0, #1
- bne _0221EAD2
- ldr r2, [r4, #0x5c]
- ldr r0, [r4, #0x28]
- lsl r2, r2, #0x10
- mov r1, #9
- lsr r2, r2, #0x10
- bl FUN_02007558
- pop {r3, r4, r5, pc}
-_0221EAD2:
- ldrb r0, [r4, #2]
- cmp r0, #5
- ldrb r0, [r4]
- blo _0221EAE0
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_0221EAE0:
- sub r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_0221EAE6:
- ldr r0, [r4, #0x28]
- mov r1, #9
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0221EB00: .word 0x0222C5B0
-_0221EB04: .word 0x0222C5B4
-
- thumb_func_start MOD08_0221EB08
-MOD08_0221EB08: ; 0x0221EB08
- push {r4, lr}
- sub sp, #8
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _0221EB1C
- cmp r0, #1
- beq _0221EB40
- b _0221EB6A
-_0221EB1C:
- mov r0, #0x22
- ldrsh r0, [r4, r0]
- mov r1, #0x1c
- mov r2, #0x1e
- str r0, [sp]
- mov r3, #0x20
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldrsh r3, [r4, r3]
- add r0, #0x38
- bl MOD08_022183C0
- ldrb r0, [r4]
- add sp, #8
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, pc}
-_0221EB40:
- ldr r0, [r4, #0x2c]
- add r1, sp, #4
- bl MOD08_02227B2C
- add r0, r4, #0
- add r3, sp, #4
- mov r1, #0
- mov r2, #2
- ldrsh r1, [r3, r1]
- ldrsh r2, [r3, r2]
- ldr r3, [r4, #0x2c]
- add r0, #0x38
- bl MOD08_02218454
- cmp r0, #0
- bne _0221EB78
- ldrb r0, [r4]
- add sp, #8
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, pc}
-_0221EB6A:
- ldr r0, [r4, #4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_0221EB78:
- add sp, #8
- pop {r4, pc}
-
- thumb_func_start MOD08_0221EB7C
-MOD08_0221EB7C: ; 0x0221EB7C
- push {r4, r5, r6, lr}
- mov r1, #0x70
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02227B70
- ldr r0, [r4, #4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_022154D4
- str r0, [r4, #0x28]
- ldr r0, [r4, #4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_022154D4
- str r0, [r4, #0x2c]
- ldr r0, [r4, #0x28]
- mov r1, #0xb
- mov r2, #0x64
- bl FUN_02007558
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- strh r0, [r4, #0x1c]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_02212498
- strh r0, [r4, #0x1e]
- add r0, r5, #0
- mov r1, #3
- bl MOD08_02212498
- strh r0, [r4, #0x20]
- add r0, r5, #0
- mov r1, #4
- bl MOD08_02212498
- strh r0, [r4, #0x22]
- add r0, r5, #0
- mov r1, #5
- bl MOD08_02212498
- str r0, [r4, #0x24]
- cmp r6, #0
- ldr r0, [r4, #4]
- bne _0221EC06
- ldr r1, _0221EC10 ; =MOD08_0221EA64
- add r2, r4, #0
- bl MOD08_02212400
- pop {r4, r5, r6, pc}
-_0221EC06:
- ldr r1, _0221EC14 ; =MOD08_0221EB08
- add r2, r4, #0
- bl MOD08_02212400
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0221EC10: .word MOD08_0221EA64
-_0221EC14: .word MOD08_0221EB08
-
- thumb_func_start MOD08_0221EC18
-MOD08_0221EC18: ; 0x0221EC18
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r2, r0, #0
- ldrb r0, [r5]
- cmp r0, #0
- beq _0221EC2A
- cmp r0, #1
- beq _0221EC4C
- b _0221ECA0
-_0221EC2A:
- ldr r2, [r5, #0x48]
- mov r0, #0xa
- add r1, r2, #2
- str r0, [sp]
- add r0, r5, #0
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- add r0, #0x4c
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- mov r3, #0
- bl MOD08_022183C0
- ldrb r0, [r5]
- add r0, r0, #1
- strb r0, [r5]
- pop {r3, r4, r5, r6, r7, pc}
-_0221EC4C:
- add r0, r5, #0
- add r0, #0x4c
- bl MOD08_022183F0
- cmp r0, #0
- bne _0221EC60
- ldrb r0, [r5]
- add r0, r0, #1
- strb r0, [r5]
- pop {r3, r4, r5, r6, r7, pc}
-_0221EC60:
- mov r6, #0
- add r4, r5, #0
- mov r7, #0x28
-_0221EC66:
- ldr r0, [r4, #0x38]
- cmp r0, #0
- beq _0221EC7A
- mov r2, #0x4c
- ldrsh r3, [r5, r2]
- ldrsh r2, [r4, r7]
- mov r1, #0
- add r2, r3, r2
- bl FUN_02007558
-_0221EC7A:
- add r6, r6, #1
- add r4, r4, #4
- cmp r6, #4
- blt _0221EC66
- mov r3, #0x4c
- ldrsh r3, [r5, r3]
- ldr r0, [r5, #0x14]
- mov r1, #3
- mov r2, #0
- bl FUN_020179E0
- mov r3, #0x4e
- mov r1, #3
- ldrsh r3, [r5, r3]
- ldr r0, [r5, #0x14]
- add r2, r1, #0
- bl FUN_020179E0
- pop {r3, r4, r5, r6, r7, pc}
-_0221ECA0:
- ldr r0, [r5, #4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r5, #0
- bl FreeToHeap
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_0221ECB0
-MOD08_0221ECB0: ; 0x0221ECB0
- push {r3, r4, r5, r6, r7, lr}
- mov r1, #0x70
- add r4, r0, #0
- bl MOD08_02228064
- add r7, r0, #0
- add r0, r4, #0
- add r1, r7, #0
- bl MOD08_02227B70
- ldr r0, [r7, #4]
- mov r1, #1
- bl MOD08_02212758
- cmp r0, #0x46
- bgt _0221ECE0
- bge _0221ED02
- cmp r0, #0x1e
- bgt _0221ECDA
- beq _0221ED0E
- b _0221ED14
-_0221ECDA:
- cmp r0, #0x32
- beq _0221ED08
- b _0221ED14
-_0221ECE0:
- cmp r0, #0x6e
- bgt _0221ECEC
- bge _0221ECF6
- cmp r0, #0x5a
- beq _0221ECFC
- b _0221ED14
-_0221ECEC:
- cmp r0, #0x96
- bne _0221ED14
- mov r0, #6
- str r0, [r7, #0x48]
- b _0221ED18
-_0221ECF6:
- mov r0, #5
- str r0, [r7, #0x48]
- b _0221ED18
-_0221ECFC:
- mov r0, #4
- str r0, [r7, #0x48]
- b _0221ED18
-_0221ED02:
- mov r0, #3
- str r0, [r7, #0x48]
- b _0221ED18
-_0221ED08:
- mov r0, #2
- str r0, [r7, #0x48]
- b _0221ED18
-_0221ED0E:
- mov r0, #1
- str r0, [r7, #0x48]
- b _0221ED18
-_0221ED14:
- mov r0, #0
- str r0, [r7, #0x48]
-_0221ED18:
- add r5, r7, #0
- mov r6, #0
- add r4, r7, #0
- add r5, #0x28
-_0221ED20:
- ldr r0, [r7, #4]
- add r1, r6, #0
- bl MOD08_022154D4
- str r0, [r4, #0x38]
- cmp r0, #0
- beq _0221ED34
- add r1, r5, #0
- bl MOD08_02227B2C
-_0221ED34:
- add r6, r6, #1
- add r4, r4, #4
- add r5, r5, #4
- cmp r6, #4
- blt _0221ED20
- ldr r0, [r7, #4]
- ldr r1, _0221ED4C ; =MOD08_0221EC18
- add r2, r7, #0
- bl MOD08_02212400
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0221ED4C: .word MOD08_0221EC18
-
- thumb_func_start MOD08_0221ED50
-MOD08_0221ED50: ; 0x0221ED50
- push {r3, r4, lr}
- sub sp, #4
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _0221ED64
- cmp r0, #1
- beq _0221ED92
- b _0221EE00
-_0221ED64:
- mov r0, #0xa
- str r0, [sp]
- add r0, r4, #0
- mov r2, #0
- add r0, #0x40
- mov r1, #0x14
- add r3, r2, #0
- bl MOD08_022183C0
- mov r0, #0xa
- str r0, [sp]
- add r0, r4, #0
- mov r2, #0
- add r0, #0x64
- mov r1, #2
- add r3, r2, #0
- bl MOD08_022183C0
- ldrb r0, [r4]
- add sp, #4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, pc}
-_0221ED92:
- add r0, r4, #0
- add r0, #0x40
- bl MOD08_022183F0
- cmp r0, #0
- bne _0221EDA6
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221EDF6
-_0221EDA6:
- mov r1, #0x2c
- ldrsh r2, [r4, r1]
- mov r1, #0x40
- ldrsh r1, [r4, r1]
- ldr r0, [r4, #0x38]
- add r1, r2, r1
- mov r2, #0x2e
- ldrsh r3, [r4, r2]
- mov r2, #0x42
- ldrsh r2, [r4, r2]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add r2, r3, r2
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- bl FUN_0200C714
- mov r1, #0x40
- ldrsh r2, [r4, r1]
- mov r1, #0x2c
- ldrsh r1, [r4, r1]
- ldr r0, [r4, #0x3c]
- sub r1, r2, r1
- mov r2, #0x2e
- ldrsh r3, [r4, r2]
- mov r2, #0x42
- ldrsh r2, [r4, r2]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add r2, r3, r2
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- bl FUN_0200C714
- ldr r0, [r4, #0x38]
- bl FUN_0200C5A8
- ldr r0, [r4, #0x3c]
- bl FUN_0200C5A8
-_0221EDF6:
- ldr r0, [r4, #0xc]
- bl FUN_0200BC1C
- add sp, #4
- pop {r3, r4, pc}
-_0221EE00:
- ldr r0, [r4, #4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #4
- pop {r3, r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221EE14
-MOD08_0221EE14: ; 0x0221EE14
- push {r3, r4, r5, lr}
- mov r1, #0x88
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02227B70
- ldr r0, [r4, #4]
- mov r1, #0
- bl MOD08_022124D8
- str r0, [r4, #0x38]
- ldr r0, [r4, #4]
- mov r1, #1
- bl MOD08_022124D8
- str r0, [r4, #0x3c]
- ldr r0, [r4, #4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_022154D4
- str r0, [r4, #0x30]
- ldr r0, [r4, #4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_022154D4
- str r0, [r4, #0x34]
- add r1, r4, #0
- ldr r0, [r4, #0x30]
- add r1, #0x28
- bl MOD08_02227B2C
- add r1, r4, #0
- ldr r0, [r4, #0x34]
- add r1, #0x2c
- bl MOD08_02227B2C
- ldr r0, [r4, #4]
- ldr r1, _0221EE7C ; =MOD08_0221ED50
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0221EE7C: .word MOD08_0221ED50
-
- thumb_func_start MOD08_0221EE80
-MOD08_0221EE80: ; 0x0221EE80
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- ldr r2, [r4, #0x38]
- add r0, #0x8c
- add r1, #0xb0
- bl MOD08_02217FE4
- cmp r0, #0
- bne _0221EEAC
- ldr r0, [r4, #0x38]
- bl FUN_0200C3DC
- ldr r0, [r4, #0x14]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl MOD08_02228094
- pop {r3, r4, r5, pc}
-_0221EEAC:
- add r0, r4, #0
- add r0, #0xd4
- bl MOD08_02218058
- cmp r0, #1
- bne _0221EEC8
- add r1, r4, #0
- add r1, #0xd4
- ldr r1, [r1]
- ldr r0, [r4, #0x38]
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- bl FUN_0200C898
-_0221EEC8:
- ldr r0, [r4, #0x38]
- bl FUN_0200C5A8
- ldr r0, [r4, #0x20]
- bl FUN_0200BC1C
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221EED8
-MOD08_0221EED8: ; 0x0221EED8
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- mov r1, #0xe8
- add r6, r0, #0
- add r7, r3, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r1, r4, #0
- add r0, r6, #0
- add r1, #0x10
- bl MOD08_02227B70
- add r0, r6, #0
- mov r1, #0
- bl MOD08_02212498
- strh r0, [r4, #0xc]
- add r0, r6, #0
- mov r1, #1
- bl MOD08_02212498
- strh r0, [r4, #0xe]
- add r0, r6, #0
- mov r1, #2
- bl MOD08_02212498
- str r0, [r4, #4]
- add r0, r6, #0
- mov r1, #3
- bl MOD08_02212498
- str r0, [r4, #8]
- add r0, r6, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_02217C1C
- add r5, r0, #0
- add r0, r7, #0
- mov r1, #2
- str r7, [r4, #0x38]
- bl FUN_0200C840
- add r0, r6, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_022154D4
- str r0, [r4, #0x44]
- add r0, r6, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_022154D4
- str r0, [r4, #0x58]
- add r1, r4, #0
- ldr r0, [r4, #0x44]
- add r1, #0x40
- bl MOD08_02227B2C
- add r1, r4, #0
- ldr r0, [r4, #0x58]
- add r1, #0x54
- bl MOD08_02227B2C
- mov r0, #0x42
- ldrsh r0, [r4, r0]
- mov r3, #0x54
- str r0, [sp]
- mov r0, #0x56
- ldrsh r2, [r4, r0]
- mov r0, #0xe
- ldrsh r0, [r4, r0]
- add r1, r0, #0
- mul r1, r5
- add r0, r2, r1
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp, #4]
- ldr r0, [r4, #4]
- add r1, r4, #0
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- ldr r0, [r4, #8]
- mov r2, #0x40
- lsl r0, r0, #0xc
- str r0, [sp, #0xc]
- ldrsh r3, [r4, r3]
- add r0, r4, #0
- ldrsh r2, [r4, r2]
- mov ip, r3
- mov r3, #0xc
- ldrsh r3, [r4, r3]
- add r0, #0x8c
- add r1, #0xb0
- add r7, r3, #0
- mul r7, r5
- mov r3, ip
- add r3, r3, r7
- lsl r3, r3, #0x10
- asr r3, r3, #0x10
- bl MOD08_02217F50
- add r0, r6, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_02215490
- cmp r0, #4
- bne _0221EFE0
- add r0, r6, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_02215490
- cmp r0, #2
- bne _0221EFE0
- mov r0, #0
- mvn r0, r0
- mul r5, r0
-_0221EFE0:
- add r0, r6, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_02215490
- cmp r0, #5
- bne _0221F00A
- add r0, r6, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_02215490
- cmp r0, #3
- bne _0221F00A
- mov r0, #0
- mvn r0, r0
- mul r5, r0
-_0221F00A:
- cmp r5, #0
- ldr r2, _0221F064 ; =0x00005C71
- ble _0221F022
- ldr r1, _0221F068 ; =0x00000E38
- add r0, r4, #0
- add r0, #0xd4
- mul r1, r5
- mul r2, r5
- mov r3, #0xa
- bl MOD08_02218008
- b _0221F032
-_0221F022:
- ldr r1, _0221F06C ; =0x00003FFF
- add r0, r4, #0
- add r0, #0xd4
- mul r1, r5
- mul r2, r5
- mov r3, #0xa
- bl MOD08_02218008
-_0221F032:
- add r1, r4, #0
- add r1, #0xd4
- ldr r1, [r1]
- ldr r0, [r4, #0x38]
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- bl FUN_0200C898
- add r0, r4, #0
- add r1, r4, #0
- ldr r2, [r4, #0x38]
- add r0, #0x8c
- add r1, #0xb0
- bl MOD08_02217FE4
- ldr r0, [r4, #0x38]
- bl FUN_0200C5A8
- ldr r0, [r4, #0x14]
- ldr r1, _0221F070 ; =MOD08_0221EE80
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0221F064: .word 0x00005C71
-_0221F068: .word 0x00000E38
-_0221F06C: .word 0x00003FFF
-_0221F070: .word MOD08_0221EE80
-
- thumb_func_start MOD08_0221F074
-MOD08_0221F074: ; 0x0221F074
- push {r4, r5, lr}
- sub sp, #0x1c
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4, #0x18]
- cmp r0, #3
- bls _0221F084
- b _0221F1F0
-_0221F084:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221F090: ; jump table
- .short _0221F098 - _0221F090 - 2 ; case 0
- .short _0221F0C8 - _0221F090 - 2 ; case 1
- .short _0221F168 - _0221F090 - 2 ; case 2
- .short _0221F17A - _0221F090 - 2 ; case 3
-_0221F098:
- mov r0, #0x12
- ldrsh r2, [r4, r0]
- mov r0, #0x96
- mov r3, #0x3c
- str r0, [sp]
- mov r1, #0x64
- str r1, [sp, #4]
- mov r0, #0xc
- mul r1, r2
- mul r3, r2
- lsl r2, r3, #0x10
- str r0, [sp, #8]
- add r0, r4, #0
- lsl r1, r1, #0x10
- add r0, #0x9c
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- mov r3, #5
- bl MOD08_022181A8
- ldrb r0, [r4, #0x18]
- add r0, r0, #1
- strb r0, [r4, #0x18]
- b _0221F20E
-_0221F0C8:
- add r0, r4, #0
- add r0, #0x9c
- bl MOD08_02218224
- cmp r0, #0
- bne _0221F106
- mov r0, #0x12
- ldrsh r2, [r4, r0]
- mov r0, #0xa
- mov r1, #0x3c
- str r0, [sp]
- mov r0, #0x64
- str r0, [sp, #4]
- mov r0, #0xc
- mul r1, r2
- str r0, [sp, #8]
- add r0, r4, #0
- lsl r1, r1, #0x10
- mov r3, #0x96
- add r5, r2, #0
- mul r5, r3
- lsl r2, r5, #0x10
- add r0, #0x9c
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl MOD08_022181A8
- ldrb r0, [r4, #0x18]
- add r0, r0, #1
- strb r0, [r4, #0x18]
- b _0221F20E
-_0221F106:
- add r0, r4, #0
- add r0, #0x9c
- add r1, sp, #0x18
- add r2, sp, #0x14
- bl MOD08_0221825C
- ldr r0, [r4, #0x40]
- ldr r1, [sp, #0x18]
- ldr r2, [sp, #0x14]
- bl FUN_0200C884
- mov r0, #0x16
- add r2, r4, #0
- add r2, #0xb0
- ldrsh r0, [r4, r0]
- ldr r2, [r2]
- mov r1, #0x10
- bl MOD08_0221828C
- mov r2, #0x16
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- mov r1, #0x14
- ldrsh r1, [r4, r1]
- add r2, r2, r3
- lsl r2, r2, #0x10
- ldr r0, [r4, #0x40]
- asr r2, r2, #0x10
- bl FUN_0200C714
- ldrb r1, [r4, #0xc]
- ldrb r0, [r4, #0x10]
- cmp r1, r0
- bhs _0221F14E
- add r0, r1, #1
- strb r0, [r4, #0xc]
-_0221F14E:
- ldrb r1, [r4, #0xd]
- ldrb r0, [r4, #0x11]
- cmp r1, r0
- bls _0221F15A
- sub r0, r1, #1
- strb r0, [r4, #0xd]
-_0221F15A:
- ldrb r0, [r4, #0xd]
- ldrb r1, [r4, #0xc]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0221F220 ; =0x04000052
- strh r1, [r0]
- b _0221F20E
-_0221F168:
- ldr r0, [r4, #4]
- add r0, r0, #1
- str r0, [r4, #4]
- cmp r0, #4
- blt _0221F20E
- ldrb r0, [r4, #0x18]
- add r0, r0, #1
- strb r0, [r4, #0x18]
- b _0221F20E
-_0221F17A:
- add r0, r4, #0
- add r0, #0x9c
- bl MOD08_02218224
- cmp r0, #0
- bne _0221F18E
- ldrb r0, [r4, #0x18]
- add r0, r0, #1
- strb r0, [r4, #0x18]
- b _0221F20E
-_0221F18E:
- add r0, r4, #0
- add r0, #0x9c
- add r1, sp, #0x10
- add r2, sp, #0xc
- bl MOD08_0221825C
- ldr r0, [r4, #0x40]
- ldr r1, [sp, #0x10]
- ldr r2, [sp, #0xc]
- bl FUN_0200C884
- mov r0, #0x16
- add r2, r4, #0
- add r2, #0xb0
- ldrsh r0, [r4, r0]
- ldr r2, [r2]
- mov r1, #0x10
- bl MOD08_0221828C
- mov r2, #0x16
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- mov r1, #0x14
- ldrsh r1, [r4, r1]
- add r2, r2, r3
- lsl r2, r2, #0x10
- ldr r0, [r4, #0x40]
- asr r2, r2, #0x10
- bl FUN_0200C714
- ldrb r1, [r4, #0xc]
- ldrb r0, [r4, #0xe]
- cmp r1, r0
- bls _0221F1D6
- sub r0, r1, #1
- strb r0, [r4, #0xc]
-_0221F1D6:
- ldrb r1, [r4, #0xd]
- ldrb r0, [r4, #0xf]
- cmp r1, r0
- bhs _0221F1E2
- add r0, r1, #1
- strb r0, [r4, #0xd]
-_0221F1E2:
- ldrb r0, [r4, #0xd]
- ldrb r1, [r4, #0xc]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0221F220 ; =0x04000052
- strh r1, [r0]
- b _0221F20E
-_0221F1F0:
- ldr r0, [r4, #0x44]
- bl FUN_0200C3DC
- ldr r0, [r4, #0x48]
- bl FUN_0200C3DC
- ldr r0, [r4, #0x1c]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl MOD08_02228094
- add sp, #0x1c
- pop {r4, r5, pc}
-_0221F20E:
- ldr r0, [r4, #0x40]
- bl FUN_0200C5A8
- ldr r0, [r4, #0x28]
- bl FUN_0200BC1C
- add sp, #0x1c
- pop {r4, r5, pc}
- nop
-_0221F220: .word 0x04000052
-
- thumb_func_start MOD08_0221F224
-MOD08_0221F224: ; 0x0221F224
- push {r4, r5, lr}
- sub sp, #0x14
- mov r1, #0xd4
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r1, r4, #0
- add r0, r5, #0
- add r1, #0x18
- bl MOD08_02227B70
- add r0, r5, #0
- mov r1, #0
- bl MOD08_022124B0
- str r0, [r4, #0x44]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_022124B0
- mov r1, #0
- str r0, [r4, #0x48]
- mvn r1, r1
- ldr r0, [r4, #0x1c]
- add r2, r1, #0
- bl MOD08_02227994
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- mov r1, #0
- strb r1, [r4, #0xc]
- mov r0, #0x1f
- strb r0, [r4, #0xd]
- strb r1, [r4, #0xe]
- strb r0, [r4, #0xf]
- strb r0, [r4, #0x10]
- mov r0, #4
- strb r0, [r4, #0x11]
- add r0, r5, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _0221F2B4
- ldr r0, [r4, #0x44]
- mov r1, #0
- str r0, [r4, #0x40]
- ldr r0, [r4, #0x48]
- bl FUN_0200C644
- ldr r0, [r4, #0x40]
- mov r1, #0
- bl FUN_0200C5C0
- mov r0, #0xb3
- strh r0, [r4, #0x14]
- mov r0, #0x78
- strh r0, [r4, #0x16]
- add r0, r5, #0
- bl MOD08_02215574
- add r1, r0, #0
- ldr r0, [r4, #0x40]
- add r1, r1, #1
- bl FUN_0200C6B0
- mov r0, #0
- mvn r0, r0
- strh r0, [r4, #0x12]
- b _0221F314
-_0221F2B4:
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_02227470
- cmp r0, #4
- bne _0221F2E4
- ldr r0, [r4, #0x48]
- mov r1, #0
- str r0, [r4, #0x40]
- ldr r0, [r4, #0x44]
- bl FUN_0200C644
- ldr r0, [r4, #0x40]
- mov r1, #1
- bl FUN_0200C5C0
- mov r0, #0x90
- strh r0, [r4, #0x14]
- mov r0, #0x40
- strh r0, [r4, #0x16]
- b _0221F310
-_0221F2E4:
- ldr r0, [r4, #0x44]
- mov r1, #0
- str r0, [r4, #0x40]
- ldr r0, [r4, #0x48]
- bl FUN_0200C644
- ldr r0, [r4, #0x40]
- mov r1, #0
- bl FUN_0200C5C0
- mov r0, #0x4c
- strh r0, [r4, #0x14]
- mov r0, #0x78
- strh r0, [r4, #0x16]
- add r0, r5, #0
- bl MOD08_02215574
- add r1, r0, #0
- ldr r0, [r4, #0x40]
- add r1, r1, #1
- bl FUN_0200C6B0
-_0221F310:
- mov r0, #1
- strh r0, [r4, #0x12]
-_0221F314:
- mov r1, #0x14
- mov r2, #0x16
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x40]
- bl FUN_0200C714
- ldr r0, [r4, #0x40]
- mov r1, #2
- bl FUN_0200C840
- ldr r0, [r4, #0x40]
- mov r1, #1
- bl FUN_0200C90C
- mov r0, #0x12
- ldrsh r0, [r4, r0]
- mov r3, #0x64
- add r1, r0, #0
- mov r0, #5
- str r0, [sp]
- mul r1, r3
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- str r3, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0x9c
- add r2, r1, #0
- bl MOD08_022181A8
- add r0, r4, #0
- add r0, #0x9c
- bl MOD08_02218224
- add r0, r4, #0
- add r0, #0x9c
- add r1, sp, #0x10
- add r2, sp, #0xc
- bl MOD08_0221825C
- ldr r0, [r4, #0x40]
- ldr r1, [sp, #0x10]
- ldr r2, [sp, #0xc]
- bl FUN_0200C884
- mov r0, #0x16
- add r2, r4, #0
- add r2, #0xb0
- ldrsh r0, [r4, r0]
- ldr r2, [r2]
- mov r1, #0x10
- bl MOD08_0221828C
- mov r2, #0x16
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- mov r1, #0x14
- ldrsh r1, [r4, r1]
- add r2, r2, r3
- lsl r2, r2, #0x10
- ldr r0, [r4, #0x40]
- asr r2, r2, #0x10
- bl FUN_0200C714
- ldr r0, [r4, #0x1c]
- ldr r1, _0221F3A8 ; =MOD08_0221F074
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x14
- pop {r4, r5, pc}
- nop
-_0221F3A8: .word MOD08_0221F074
-
- thumb_func_start MOD08_0221F3AC
-MOD08_0221F3AC: ; 0x0221F3AC
- push {r4, r5, r6, r7, lr}
- sub sp, #0x3c
- add r4, r1, #0
- str r0, [sp, #0x10]
- ldrb r0, [r4]
- cmp r0, #8
- bls _0221F3BC
- b _0221F710
-_0221F3BC:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221F3C8: ; jump table
- .short _0221F3DA - _0221F3C8 - 2 ; case 0
- .short _0221F412 - _0221F3C8 - 2 ; case 1
- .short _0221F46C - _0221F3C8 - 2 ; case 2
- .short _0221F486 - _0221F3C8 - 2 ; case 3
- .short _0221F4BA - _0221F3C8 - 2 ; case 4
- .short _0221F53E - _0221F3C8 - 2 ; case 5
- .short _0221F5D0 - _0221F3C8 - 2 ; case 6
- .short _0221F66E - _0221F3C8 - 2 ; case 7
- .short _0221F6B6 - _0221F3C8 - 2 ; case 8
-_0221F3DA:
- ldrb r1, [r4, #0xc]
- ldr r2, _0221F6F4 ; =0x0222C569
- ldr r5, _0221F6F8 ; =0x0222C56A
- lsl r0, r1, #2
- add r3, r1, r0
- ldr r0, _0221F6FC ; =0x0222C56B
- ldr r1, _0221F700 ; =0x0222C568
- ldrb r0, [r0, r3]
- ldrb r1, [r1, r3]
- ldrb r2, [r2, r3]
- str r0, [sp]
- mov r0, #0x64
- str r0, [sp, #4]
- ldr r0, _0221F704 ; =0x0222C56C
- ldrb r0, [r0, r3]
- ldrb r3, [r5, r3]
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0xcc
- bl MOD08_022181A8
- ldrb r0, [r4, #0xc]
- add r0, r0, #1
- strb r0, [r4, #0xc]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221F74A
-_0221F412:
- add r0, r4, #0
- add r0, #0xcc
- bl MOD08_02218224
- cmp r0, #1
- bne _0221F458
- mov r2, #0xcc
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x1c]
- mov r1, #0xc
- bl FUN_02007558
- mov r2, #0xce
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x1c]
- mov r1, #0xd
- bl FUN_02007558
- mov r0, #0x20
- add r2, r4, #0
- add r2, #0xe0
- ldrsh r0, [r4, r0]
- ldr r1, [r4, #0x24]
- ldr r2, [r2]
- bl MOD08_0221828C
- mov r2, #0x20
- add r3, r0, #0
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x1c]
- mov r1, #1
- add r2, r2, r3
- bl FUN_02007558
- b _0221F74A
-_0221F458:
- ldrb r0, [r4, #0xc]
- cmp r0, #3
- ldrb r0, [r4]
- blo _0221F466
- add r0, r0, #1
- strb r0, [r4]
- b _0221F74A
-_0221F466:
- sub r0, r0, #1
- strb r0, [r4]
- b _0221F74A
-_0221F46C:
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- ldrb r0, [r4, #1]
- cmp r0, #0xf
- blo _0221F54A
- mov r0, #0
- strb r0, [r4, #1]
- strb r0, [r4, #0xc]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221F74A
-_0221F486:
- add r1, sp, #0x2c
- ldr r0, [r4, #0x30]
- add r1, #2
- add r2, sp, #0x2c
- bl FUN_0200C7A0
- add r1, sp, #0x14
- mov r0, #0x18
- ldrsh r0, [r1, r0]
- cmp r0, #0x68
- bgt _0221F4B2
- ldr r0, [r4, #0x30]
- mov r1, #0
- mov r2, #2
- bl FUN_0200C82C
- ldr r0, [r4, #0x7c]
- mov r1, #0
- mov r2, #2
- bl FUN_0200C82C
- b _0221F74A
-_0221F4B2:
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221F74A
-_0221F4BA:
- add r1, sp, #0x28
- ldr r0, [r4, #0x30]
- add r1, #2
- add r2, sp, #0x28
- bl FUN_0200C7A0
- add r1, sp, #0x14
- mov r0, #0x14
- ldrsh r0, [r1, r0]
- cmp r0, #0x68
- bgt _0221F4E6
- ldr r0, [r4, #0x30]
- mov r1, #0
- mov r2, #2
- bl FUN_0200C82C
- ldr r0, [r4, #0x7c]
- mov r1, #0
- mov r2, #2
- bl FUN_0200C82C
- b _0221F4F2
-_0221F4E6:
- ldr r0, _0221F708 ; =0x04000052
- mov r1, #0x10
- strh r1, [r0]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221F4F2:
- ldrb r0, [r4, #1]
- mov r1, #0x10
- add r2, r1, #0
- add r0, r0, #1
- strb r0, [r4, #1]
- add r0, r4, #4
- bl MOD08_02218A58
- mov r1, #0
- add r0, r4, #0
- add r2, r1, #0
- add r0, #8
- sub r2, #0x10
- bl MOD08_02218A58
- ldr r0, [r4, #8]
- ldr r1, [r4, #4]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0221F708 ; =0x04000052
- strh r1, [r0]
- ldrb r0, [r4, #1]
- cmp r0, #0xa
- bne _0221F52C
- ldr r0, [r4, #0x30]
- mov r1, #0
- mov r2, #0x10
- bl FUN_0200C82C
-_0221F52C:
- ldrb r0, [r4, #1]
- cmp r0, #0xc
- bne _0221F54A
- ldr r0, [r4, #0x7c]
- mov r1, #0
- mov r2, #0x10
- bl FUN_0200C82C
- b _0221F74A
-_0221F53E:
- ldrb r0, [r4, #1]
- add r0, r0, #1
- strb r0, [r4, #1]
- ldrb r0, [r4, #1]
- cmp r0, #0xf
- bhs _0221F54C
-_0221F54A:
- b _0221F74A
-_0221F54C:
- mov r0, #0
- strb r0, [r4, #1]
- add r1, sp, #0x24
- ldr r0, [r4, #0x30]
- add r1, #2
- add r2, sp, #0x24
- bl FUN_0200C7A0
- add r1, sp, #0x20
- ldr r0, [r4, #0x7c]
- add r1, #2
- add r2, sp, #0x20
- bl FUN_0200C7A0
- add r0, r4, #0
- add r0, #0xc8
- str r0, [sp]
- add r0, r4, #0
- add r0, #0xca
- str r0, [sp, #4]
- add r3, sp, #0x14
- mov r0, #0x12
- mov r1, #0x10
- mov r2, #0xe
- mov r5, #0xc
- ldrsh r0, [r3, r0]
- ldrsh r1, [r3, r1]
- ldrsh r2, [r3, r2]
- ldrsh r3, [r3, r5]
- bl MOD08_022189D8
- add r0, r4, #0
- add r0, #0x2c
- str r0, [sp]
- mov r3, #0xca
- add r2, sp, #0x14
- mov r0, #0x12
- mov r1, #0x10
- ldrsh r0, [r2, r0]
- ldrsh r1, [r2, r1]
- mov r2, #0xc8
- ldrsh r2, [r4, r2]
- ldrsh r3, [r4, r3]
- bl MOD08_022189F4
- add r0, r4, #0
- add r0, #0x28
- str r0, [sp]
- mov r3, #0xca
- add r2, sp, #0x14
- mov r0, #0x12
- mov r1, #0x10
- ldrsh r0, [r2, r0]
- ldrsh r1, [r2, r1]
- mov r2, #0xc8
- ldrsh r2, [r4, r2]
- ldrsh r3, [r4, r3]
- bl MOD08_02218A1C
- mov r0, #0xa
- lsl r0, r0, #0xe
- str r0, [r4, #0x2c]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221F74A
-_0221F5D0:
- ldr r3, _0221F70C ; =0x0222C545
- add r2, sp, #0x30
- mov r1, #0xa
-_0221F5D6:
- ldrb r0, [r3]
- add r3, r3, #1
- strb r0, [r2]
- add r2, r2, #1
- sub r1, r1, #1
- bne _0221F5D6
- add r1, sp, #0x1c
- ldr r0, [r4, #0x30]
- add r1, #2
- add r2, sp, #0x1c
- bl FUN_0200C7A0
- add r1, sp, #0x18
- ldr r0, [r4, #0x7c]
- add r1, #2
- add r2, sp, #0x18
- bl FUN_0200C7A0
- add r3, sp, #0x14
- mov r0, #8
- ldrsh r0, [r3, r0]
- mov r2, #0xa
- str r0, [sp]
- mov r0, #4
- ldrsh r0, [r3, r0]
- str r0, [sp, #4]
- str r2, [sp, #8]
- ldrb r1, [r4, #0xc]
- ldr r0, [r4, #0x2c]
- lsl r5, r1, #1
- add r1, sp, #0x30
- ldrsb r1, [r1, r5]
- mov r5, #6
- mul r1, r0
- str r1, [sp, #0xc]
- ldrsh r2, [r3, r2]
- add r0, r4, #0
- add r1, r4, #0
- ldrsh r3, [r3, r5]
- add r0, #0x34
- add r1, #0x58
- bl MOD08_02217F50
- add r3, sp, #0x14
- mov r0, #4
- ldrsh r0, [r3, r0]
- mov r5, #0xa
- str r0, [sp]
- mov r0, #8
- ldrsh r0, [r3, r0]
- str r0, [sp, #4]
- str r5, [sp, #8]
- ldrb r1, [r4, #0xc]
- ldr r0, [r4, #0x2c]
- lsl r2, r1, #1
- add r1, sp, #0x30
- add r1, #1
- ldrsb r1, [r1, r2]
- mov r2, #6
- mul r1, r0
- str r1, [sp, #0xc]
- ldrsh r2, [r3, r2]
- add r0, r4, #0
- add r1, r4, #0
- ldrsh r3, [r3, r5]
- add r0, #0x80
- add r1, #0xa4
- bl MOD08_02217F50
- ldrb r0, [r4, #0xc]
- add r0, r0, #1
- strb r0, [r4, #0xc]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221F74A
-_0221F66E:
- add r0, r4, #0
- ldr r2, [r4, #0x30]
- add r0, #0x34
- add r1, #0x58
- mov r5, #0
- bl MOD08_02217FE4
- cmp r0, #0
- bne _0221F686
- add r0, r5, #1
- lsl r0, r0, #0x18
- lsr r5, r0, #0x18
-_0221F686:
- add r0, r4, #0
- add r1, r4, #0
- ldr r2, [r4, #0x7c]
- add r0, #0x80
- add r1, #0xa4
- bl MOD08_02217FE4
- cmp r0, #0
- bne _0221F69E
- add r0, r5, #1
- lsl r0, r0, #0x18
- lsr r5, r0, #0x18
-_0221F69E:
- cmp r5, #2
- bne _0221F74A
- ldrb r0, [r4, #0xc]
- cmp r0, #5
- ldrb r0, [r4]
- bne _0221F6B0
- add r0, r0, #1
- strb r0, [r4]
- b _0221F74A
-_0221F6B0:
- sub r0, r0, #1
- strb r0, [r4]
- b _0221F74A
-_0221F6B6:
- mov r5, #0
- add r0, r4, #4
- add r1, r5, #0
- sub r2, r5, #2
- bl MOD08_02218A58
- cmp r0, #1
- bne _0221F6C8
- add r5, r5, #1
-_0221F6C8:
- add r0, r4, #0
- add r0, #8
- mov r1, #0x10
- mov r2, #2
- bl MOD08_02218A58
- cmp r0, #1
- bne _0221F6DA
- add r5, r5, #1
-_0221F6DA:
- ldr r0, [r4, #8]
- ldr r1, [r4, #4]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0221F708 ; =0x04000052
- cmp r5, #2
- strh r1, [r0]
- bne _0221F74A
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221F74A
- nop
-_0221F6F4: .word 0x0222C569
-_0221F6F8: .word 0x0222C56A
-_0221F6FC: .word 0x0222C56B
-_0221F700: .word 0x0222C568
-_0221F704: .word 0x0222C56C
-_0221F708: .word 0x04000052
-_0221F70C: .word 0x0222C545
-_0221F710:
- mov r6, #0
- ldr r0, [r4, #0x10]
- add r1, r6, #0
- bl MOD08_02212498
- cmp r0, #0
- ble _0221F738
- add r5, r4, #0
- add r7, r6, #0
-_0221F722:
- ldr r0, [r5, #0x30]
- bl FUN_0200C3DC
- ldr r0, [r4, #0x10]
- add r1, r7, #0
- add r5, #0x4c
- add r6, r6, #1
- bl MOD08_02212498
- cmp r6, r0
- blt _0221F722
-_0221F738:
- ldr r0, [r4, #0x10]
- ldr r1, [sp, #0x10]
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #0x3c
- pop {r4, r5, r6, r7, pc}
-_0221F74A:
- mov r6, #0
- ldr r0, [r4, #0x10]
- add r1, r6, #0
- bl MOD08_02212498
- cmp r0, #0
- ble _0221F7B6
- add r5, r4, #0
- add r7, sp, #0x14
-_0221F75C:
- add r1, sp, #0x14
- ldr r0, [r5, #0x30]
- add r1, #2
- add r2, sp, #0x14
- bl FUN_0200C7A0
- mov r0, #0
- ldrsh r0, [r7, r0]
- cmp r0, #0x50
- bge _0221F780
- ldr r0, [r4, #0x10]
- bl MOD08_02215574
- add r1, r0, #0
- ldr r0, [r5, #0x30]
- bl FUN_0200C6B0
- b _0221F7A6
-_0221F780:
- mov r0, #2
- ldrsh r0, [r7, r0]
- cmp r0, #0x80
- ldr r0, [r4, #0x10]
- ble _0221F798
- bl MOD08_02215574
- add r1, r0, #0
- ldr r0, [r5, #0x30]
- bl FUN_0200C6B0
- b _0221F7A6
-_0221F798:
- bl MOD08_02215574
- add r1, r0, #0
- ldr r0, [r5, #0x30]
- add r1, r1, #1
- bl FUN_0200C6B0
-_0221F7A6:
- ldr r0, [r4, #0x10]
- mov r1, #0
- add r5, #0x4c
- add r6, r6, #1
- bl MOD08_02212498
- cmp r6, r0
- blt _0221F75C
-_0221F7B6:
- ldrb r0, [r4]
- cmp r0, #4
- blo _0221F7EA
- mov r5, #0
- ldr r0, [r4, #0x10]
- add r1, r5, #0
- bl MOD08_02212498
- cmp r0, #0
- ble _0221F7E4
- add r6, r4, #0
- add r7, r5, #0
-_0221F7CE:
- ldr r0, [r6, #0x30]
- bl FUN_0200C5A8
- ldr r0, [r4, #0x10]
- add r1, r7, #0
- add r6, #0x4c
- add r5, r5, #1
- bl MOD08_02212498
- cmp r5, r0
- blt _0221F7CE
-_0221F7E4:
- ldr r0, [r4, #0x18]
- bl FUN_0200BC1C
-_0221F7EA:
- add sp, #0x3c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0221F7F0
-MOD08_0221F7F0: ; 0x0221F7F0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x38
- add r5, r1, #0
- mov r1, #0xf0
- str r0, [sp]
- add r6, r2, #0
- add r7, r3, #0
- bl MOD08_02228064
- add r4, r0, #0
- mov r1, #0
- strb r1, [r4]
- ldr r0, [sp]
- strb r1, [r4, #1]
- str r0, [r4, #0x10]
- str r6, [r4, #0x18]
- str r5, [r4, #0x14]
- str r1, [r4, #4]
- mov r0, #0x10
- str r0, [r4, #8]
- ldr r0, [r4, #0x10]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #0x10]
- bl MOD08_022154D4
- str r0, [r4, #0x1c]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #0x20]
- ldr r0, [r4, #0x10]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #0x10]
- bl MOD08_0221552C
- str r0, [r4, #0x24]
- ldr r0, [sp]
- mov r1, #2
- bl MOD08_022155C4
- add r5, r0, #0
- ldr r0, [sp]
- mov r1, #1
- bl MOD08_022155C4
- mov r2, #1
- add r1, r2, #0
- add r3, r0, #0
- lsl r1, r5
- add r5, r2, #0
- lsl r5, r3
- orr r1, r5
- orr r1, r2
- sub r2, r2, #2
- ldr r0, [r4, #0x10]
- add r3, r2, #0
- bl MOD08_022279D0
- ldr r0, [r4, #8]
- ldr r1, [r4, #4]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0221F92C ; =0x04000052
- strh r1, [r0]
- ldr r1, [sp]
- add r0, sp, #4
- bl MOD08_02215474
- str r7, [r4, #0x30]
- ldr r0, [r4, #0x10]
- mov r1, #0
- mov r6, #1
- bl MOD08_02212498
- cmp r0, #1
- ble _0221F8B2
- add r5, r4, #0
- add r5, #0x4c
- add r7, sp, #4
-_0221F896:
- ldr r0, [r4, #0x14]
- ldr r1, [r4, #0x18]
- add r2, r7, #0
- bl FUN_0200C154
- str r0, [r5, #0x30]
- ldr r0, [r4, #0x10]
- mov r1, #0
- add r5, #0x4c
- add r6, r6, #1
- bl MOD08_02212498
- cmp r6, r0
- blt _0221F896
-_0221F8B2:
- mov r6, #0
- ldr r0, [r4, #0x10]
- add r1, r6, #0
- bl MOD08_02212498
- cmp r0, #0
- ble _0221F8EC
- add r5, r4, #0
- mov r7, #1
-_0221F8C4:
- ldr r0, [r5, #0x30]
- add r1, r7, #0
- bl FUN_0200C90C
- ldr r0, [r4, #0x10]
- bl MOD08_02215574
- add r1, r0, #0
- ldr r0, [r5, #0x30]
- add r1, r1, #1
- bl FUN_0200C6B0
- ldr r0, [r4, #0x10]
- mov r1, #0
- add r5, #0x4c
- add r6, r6, #1
- bl MOD08_02212498
- cmp r6, r0
- blt _0221F8C4
-_0221F8EC:
- ldr r0, [sp]
- bl MOD08_02212004
- cmp r0, #1
- ldr r0, [r4, #0x30]
- bne _0221F90C
- mov r1, #0xa0
- mov r2, #0x2c
- bl FUN_0200C714
- ldr r0, [r4, #0x7c]
- mov r1, #0x50
- mov r2, #0x1d
- bl FUN_0200C714
- b _0221F91E
-_0221F90C:
- mov r1, #0x64
- mov r2, #0x2c
- bl FUN_0200C714
- ldr r0, [r4, #0x7c]
- mov r1, #0xb4
- mov r2, #0x1d
- bl FUN_0200C714
-_0221F91E:
- ldr r0, [r4, #0x10]
- ldr r1, _0221F930 ; =MOD08_0221F3AC
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x38
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0221F92C: .word 0x04000052
-_0221F930: .word MOD08_0221F3AC
-
- thumb_func_start MOD08_0221F934
-MOD08_0221F934: ; 0x0221F934
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r7, r0, #0
- ldrb r0, [r5]
- cmp r0, #0
- beq _0221F946
- cmp r0, #1
- beq _0221F9BA
- b _0221F9EE
-_0221F946:
- ldrb r0, [r5, #6]
- cmp r0, #0xf
- bhs _0221F950
- add r0, r0, #1
- strb r0, [r5, #6]
-_0221F950:
- ldrb r0, [r5, #7]
- cmp r0, #0
- beq _0221F95A
- sub r0, r0, #1
- strb r0, [r5, #7]
-_0221F95A:
- ldrb r0, [r5, #7]
- ldrb r1, [r5, #6]
- mov r6, #0
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0221FA3C ; =0x04000052
- strh r1, [r0]
- ldrb r0, [r5, #4]
- add r0, r0, #1
- strb r0, [r5, #4]
- ldrb r0, [r5, #5]
- cmp r0, #0
- ble _0221F9AC
- ldr r4, _0221FA40 ; =0x0222C5DC
- add r7, r5, #0
-_0221F978:
- add r1, sp, #0
- ldr r0, [r7, #0x14]
- add r1, #2
- add r2, sp, #0
- bl FUN_0200C7A0
- ldrb r1, [r5, #4]
- ldrb r0, [r4]
- cmp r1, r0
- blo _0221F9A0
- add r0, r5, r6
- ldrb r1, [r0, #1]
- add r1, r1, #1
- strb r1, [r0, #1]
- ldrb r2, [r0, #1]
- ldrb r1, [r4, #1]
- cmp r2, r1
- blo _0221F9A0
- mov r1, #0
- strb r1, [r0, #1]
-_0221F9A0:
- ldrb r0, [r5, #5]
- add r6, r6, #1
- add r7, r7, #4
- add r4, r4, #2
- cmp r6, r0
- blt _0221F978
-_0221F9AC:
- ldrb r0, [r5, #4]
- cmp r0, #0x2d
- blo _0221FA18
- ldrb r0, [r5]
- add r0, r0, #1
- strb r0, [r5]
- b _0221FA18
-_0221F9BA:
- ldrb r0, [r5, #6]
- cmp r0, #0
- beq _0221F9C4
- sub r0, r0, #1
- strb r0, [r5, #6]
-_0221F9C4:
- ldrb r0, [r5, #7]
- cmp r0, #0xf
- bhs _0221F9CE
- add r0, r0, #1
- strb r0, [r5, #7]
-_0221F9CE:
- ldrb r0, [r5, #6]
- cmp r0, #0
- bne _0221F9E0
- ldrb r0, [r5, #7]
- cmp r0, #0xf
- bne _0221F9E0
- ldrb r0, [r5]
- add r0, r0, #1
- strb r0, [r5]
-_0221F9E0:
- ldrb r0, [r5, #7]
- ldrb r1, [r5, #6]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0221FA3C ; =0x04000052
- strh r1, [r0]
- b _0221FA18
-_0221F9EE:
- ldrb r0, [r5, #5]
- mov r6, #0
- cmp r0, #0
- ble _0221FA08
- add r4, r5, #0
-_0221F9F8:
- ldr r0, [r4, #0x14]
- bl FUN_0200C3DC
- ldrb r0, [r5, #5]
- add r6, r6, #1
- add r4, r4, #4
- cmp r6, r0
- blt _0221F9F8
-_0221FA08:
- ldr r0, [r5, #8]
- add r1, r7, #0
- bl MOD08_02212438
- add r0, r5, #0
- bl FreeToHeap
- pop {r3, r4, r5, r6, r7, pc}
-_0221FA18:
- ldrb r0, [r5, #5]
- mov r6, #0
- cmp r0, #0
- ble _0221FA34
- add r4, r5, #0
-_0221FA22:
- ldr r0, [r4, #0x14]
- ldr r0, [r0]
- bl FUN_0200C59C
- ldrb r0, [r5, #5]
- add r6, r6, #1
- add r4, r4, #4
- cmp r6, r0
- blt _0221FA22
-_0221FA34:
- ldr r0, [r5, #0x10]
- bl FUN_0200BC1C
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0221FA3C: .word 0x04000052
-_0221FA40: .word 0x0222C5DC
-
- thumb_func_start MOD08_0221FA44
-MOD08_0221FA44: ; 0x0221FA44
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x38
- add r7, r0, #0
- add r5, r1, #0
- add r6, r2, #0
- str r3, [sp]
- bl MOD08_02212014
- mov r1, #0x44
- bl AllocFromHeap
- add r4, r0, #0
- bne _0221FA62
- bl ErrorHandling
-_0221FA62:
- mov r0, #0
- strb r0, [r4, #4]
- strb r0, [r4]
- str r5, [r4, #0xc]
- str r6, [r4, #0x10]
- add r0, sp, #4
- add r1, r7, #0
- str r7, [r4, #8]
- bl MOD08_02215474
- mov r1, #0
- mvn r1, r1
- ldr r0, [r4, #8]
- add r2, r1, #0
- bl MOD08_02227994
- ldr r0, [r4, #8]
- mov r1, #0
- bl MOD08_02212498
- strb r0, [r4, #5]
- mov r0, #0
- strb r0, [r4, #6]
- mov r0, #0xf
- strb r0, [r4, #7]
- ldrb r0, [r4, #7]
- ldrb r1, [r4, #6]
- mov r6, #1
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0221FBA8 ; =0x04000052
- strh r1, [r0]
- ldr r0, [sp]
- str r0, [r4, #0x14]
- ldrb r0, [r4, #5]
- cmp r0, #1
- ble _0221FAC4
- add r5, r4, #4
-_0221FAAE:
- ldr r0, [r4, #0xc]
- ldr r1, [r4, #0x10]
- add r2, sp, #4
- bl FUN_0200C154
- str r0, [r5, #0x14]
- ldrb r0, [r4, #5]
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, r0
- blt _0221FAAE
-_0221FAC4:
- add r0, r7, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r7, #0
- bl MOD08_02227470
- cmp r0, #3
- bne _0221FB18
- add r0, r7, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r7, #0
- bl MOD08_02227470
- cmp r0, #3
- bne _0221FB04
- add r0, r7, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r7, #0
- bl MOD08_02227470
- cmp r0, #3
- bne _0221FB04
- ldr r0, [r4, #0x14]
- mov r1, #0
- bl FUN_0200C5C0
- b _0221FB0C
-_0221FB04:
- ldr r0, [r4, #0x14]
- mov r1, #1
- bl FUN_0200C5C0
-_0221FB0C:
- ldr r0, [r4, #0x14]
- mov r1, #0x80
- mov r2, #0x50
- bl FUN_0200C714
- b _0221FB58
-_0221FB18:
- add r0, r7, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r7, #0
- bl MOD08_02227470
- cmp r0, #4
- bne _0221FB46
- add r0, r7, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r7, #0
- bl MOD08_02227470
- cmp r0, #4
- bne _0221FB46
- ldr r0, [r4, #0x14]
- mov r1, #1
- bl FUN_0200C5C0
- b _0221FB4E
-_0221FB46:
- ldr r0, [r4, #0x14]
- mov r1, #0
- bl FUN_0200C5C0
-_0221FB4E:
- ldr r0, [r4, #0x14]
- mov r1, #0x80
- mov r2, #0x50
- bl FUN_0200C714
-_0221FB58:
- ldrb r0, [r4, #5]
- mov r6, #0
- cmp r0, #0
- ble _0221FB98
- add r5, r4, #0
-_0221FB62:
- add r1, r4, r6
- mov r0, #0
- strb r0, [r1, #1]
- ldr r0, [r5, #0x14]
- mov r1, #2
- bl FUN_0200C840
- ldr r0, [r5, #0x14]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r4, #8]
- bl MOD08_02212004
- cmp r0, #1
- bne _0221FB8E
- mov r2, #0xfe
- ldr r0, [r5, #0x14]
- ldr r1, _0221FBAC ; =0xBF800000
- lsl r2, r2, #0x16
- bl FUN_0200C884
-_0221FB8E:
- ldrb r0, [r4, #5]
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, r0
- blt _0221FB62
-_0221FB98:
- ldr r1, _0221FBB0 ; =MOD08_0221F934
- ldr r3, _0221FBB4 ; =0x0000044C
- add r0, r7, #0
- add r2, r4, #0
- bl MOD08_022123E4
- add sp, #0x38
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0221FBA8: .word 0x04000052
-_0221FBAC: .word 0xBF800000
-_0221FBB0: .word MOD08_0221F934
-_0221FBB4: .word 0x0000044C
-
- thumb_func_start MOD08_0221FBB8
-MOD08_0221FBB8: ; 0x0221FBB8
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r7, r0, #0
- ldrb r0, [r4]
- mov r6, #0
- cmp r0, #3
- bls _0221FBCA
- b _0221FD70
-_0221FBCA:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221FBD6: ; jump table
- .short _0221FBDE - _0221FBD6 - 2 ; case 0
- .short _0221FC12 - _0221FBD6 - 2 ; case 1
- .short _0221FCEA - _0221FBD6 - 2 ; case 2
- .short _0221FD36 - _0221FBD6 - 2 ; case 3
-_0221FBDE:
- ldrb r0, [r4, #9]
- cmp r0, #0xf
- bhs _0221FBE8
- add r0, r0, #1
- strb r0, [r4, #9]
-_0221FBE8:
- ldrb r0, [r4, #0xa]
- cmp r0, #0
- beq _0221FBF2
- sub r0, r0, #1
- strb r0, [r4, #0xa]
-_0221FBF2:
- ldrb r0, [r4, #9]
- cmp r0, #0xf
- bne _0221FC04
- ldrb r0, [r4, #0xa]
- cmp r0, #0
- bne _0221FC04
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221FC04:
- ldrb r0, [r4, #0xa]
- ldrb r1, [r4, #9]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0221FDCC ; =0x04000052
- strh r1, [r0]
- b _0221FD9C
-_0221FC12:
- ldr r0, [r4, #0x30]
- cmp r0, #3
- bhi _0221FC78
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221FC24: ; jump table
- .short _0221FC2C - _0221FC24 - 2 ; case 0
- .short _0221FC46 - _0221FC24 - 2 ; case 1
- .short _0221FC60 - _0221FC24 - 2 ; case 2
- .short _0221FC60 - _0221FC24 - 2 ; case 3
-_0221FC2C:
- ldr r0, [r4, #0x18]
- mov r1, #1
- str r0, [r4, #0x34]
- ldr r0, [r4, #0x24]
- str r0, [r4, #0x38]
- ldr r0, [r4, #0x34]
- bl FUN_0200C644
- ldr r0, [r4, #0x38]
- mov r1, #1
- bl FUN_0200C644
- b _0221FC78
-_0221FC46:
- ldr r0, [r4, #0x1c]
- mov r1, #1
- str r0, [r4, #0x34]
- ldr r0, [r4, #0x20]
- str r0, [r4, #0x38]
- ldr r0, [r4, #0x34]
- bl FUN_0200C644
- ldr r0, [r4, #0x38]
- mov r1, #1
- bl FUN_0200C644
- b _0221FC78
-_0221FC60:
- ldr r0, [r4, #0x28]
- mov r1, #1
- str r0, [r4, #0x34]
- ldr r0, [r4, #0x2c]
- str r0, [r4, #0x38]
- ldr r0, [r4, #0x34]
- bl FUN_0200C644
- ldr r0, [r4, #0x38]
- mov r1, #1
- bl FUN_0200C644
-_0221FC78:
- add r1, sp, #8
- ldr r0, [r4, #0x34]
- add r1, #2
- add r2, sp, #8
- bl FUN_0200C7A0
- ldr r1, [r4, #0x30]
- ldr r0, _0221FDD0 ; =0x0222C614
- lsl r2, r1, #3
- ldrsh r0, [r0, r2]
- ldr r5, _0221FDD4 ; =0x0222C612
- add r3, sp, #8
- str r0, [sp]
- ldr r0, _0221FDD8 ; =0x0222C5D8
- ldrsh r2, [r5, r2]
- ldrb r0, [r0, r1]
- mov r1, #2
- mov r5, #0
- str r0, [sp, #4]
- ldrsh r1, [r3, r1]
- add r0, r4, #0
- ldrsh r3, [r3, r5]
- add r0, #0x3c
- bl MOD08_02217E80
- add r1, sp, #8
- ldr r0, [r4, #0x38]
- add r1, #2
- add r2, sp, #8
- bl FUN_0200C7A0
- ldr r1, [r4, #0x30]
- ldr r0, _0221FDDC ; =0x0222C618
- lsl r2, r1, #3
- ldrsh r0, [r0, r2]
- ldr r5, _0221FDE0 ; =0x0222C616
- add r3, sp, #8
- str r0, [sp]
- ldr r0, _0221FDD8 ; =0x0222C5D8
- ldrsh r2, [r5, r2]
- ldrb r0, [r0, r1]
- mov r1, #2
- mov r5, #0
- str r0, [sp, #4]
- ldrsh r1, [r3, r1]
- add r0, r4, #0
- ldrsh r3, [r3, r5]
- add r0, #0x60
- bl MOD08_02217E80
- ldr r0, [r4, #0x30]
- add r0, r0, #1
- str r0, [r4, #0x30]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221FD9C
-_0221FCEA:
- add r0, r4, #0
- ldr r1, [r4, #0x34]
- add r0, #0x3c
- add r5, r6, #0
- bl MOD08_02217F08
- cmp r0, #0
- bne _0221FCFC
- add r5, r5, #1
-_0221FCFC:
- add r0, r4, #0
- ldr r1, [r4, #0x38]
- add r0, #0x60
- bl MOD08_02217F08
- cmp r0, #0
- bne _0221FD0C
- add r5, r5, #1
-_0221FD0C:
- cmp r5, #2
- blt _0221FD9C
- ldr r0, [r4, #0x30]
- cmp r0, #3
- bgt _0221FD2E
- ldr r0, [r4, #0x34]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0x38]
- mov r1, #0
- bl FUN_0200C644
- ldrb r0, [r4]
- sub r0, r0, #1
- strb r0, [r4]
- b _0221FD9C
-_0221FD2E:
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0221FD9C
-_0221FD36:
- ldrb r0, [r4, #9]
- cmp r0, #0
- beq _0221FD40
- sub r0, r0, #1
- strb r0, [r4, #9]
-_0221FD40:
- ldrb r0, [r4, #0xa]
- cmp r0, #0xf
- bhs _0221FD4A
- add r0, r0, #1
- strb r0, [r4, #0xa]
-_0221FD4A:
- ldrb r1, [r4, #0xa]
- cmp r1, #7
- blo _0221FD52
- mov r6, #1
-_0221FD52:
- ldrb r0, [r4, #9]
- cmp r0, #0
- bne _0221FD62
- cmp r1, #0xf
- bne _0221FD62
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_0221FD62:
- ldrb r0, [r4, #0xa]
- ldrb r1, [r4, #9]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0221FDCC ; =0x04000052
- strh r1, [r0]
- b _0221FD9C
-_0221FD70:
- ldrb r0, [r4, #8]
- mov r6, #0
- cmp r0, #0
- ble _0221FD8A
- add r5, r4, #0
-_0221FD7A:
- ldr r0, [r5, #0x18]
- bl FUN_0200C3DC
- ldrb r0, [r4, #8]
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, r0
- blt _0221FD7A
-_0221FD8A:
- ldr r0, [r4, #0xc]
- add r1, r7, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
-_0221FD9C:
- ldrb r0, [r4]
- cmp r0, #3
- bhs _0221FDC2
- cmp r6, #0
- bne _0221FDC2
- ldrb r0, [r4, #8]
- mov r6, #0
- cmp r0, #0
- ble _0221FDC2
- add r5, r4, #0
-_0221FDB0:
- ldr r0, [r5, #0x18]
- ldr r0, [r0]
- bl FUN_0200C59C
- ldrb r0, [r4, #8]
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, r0
- blt _0221FDB0
-_0221FDC2:
- ldr r0, [r4, #0x14]
- bl FUN_0200BC1C
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0221FDCC: .word 0x04000052
-_0221FDD0: .word 0x0222C614
-_0221FDD4: .word 0x0222C612
-_0221FDD8: .word 0x0222C5D8
-_0221FDDC: .word 0x0222C618
-_0221FDE0: .word 0x0222C616
-
- thumb_func_start MOD08_0221FDE4
-MOD08_0221FDE4: ; 0x0221FDE4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x38
- str r0, [sp]
- add r5, r1, #0
- add r6, r2, #0
- add r7, r3, #0
- bl MOD08_02212014
- mov r1, #0x84
- bl AllocFromHeap
- add r4, r0, #0
- bne _0221FE02
- bl ErrorHandling
-_0221FE02:
- mov r0, #0
- strb r0, [r4, #7]
- strb r0, [r4]
- str r5, [r4, #0x10]
- str r6, [r4, #0x14]
- str r0, [r4, #0x30]
- ldr r0, [sp]
- ldr r1, [sp]
- str r0, [r4, #0xc]
- add r0, sp, #4
- bl MOD08_02215474
- mov r1, #0
- mvn r1, r1
- ldr r0, [r4, #0xc]
- add r2, r1, #0
- bl MOD08_02227994
- mov r1, #0
- strb r1, [r4, #9]
- mov r0, #0xf
- strb r0, [r4, #0xa]
- ldrb r0, [r4, #0xa]
- ldrb r2, [r4, #9]
- lsl r0, r0, #8
- orr r2, r0
- ldr r0, _0221FF0C ; =0x04000052
- strh r2, [r0]
- ldr r0, [r4, #0xc]
- bl MOD08_02212498
- strb r0, [r4, #8]
- str r7, [r4, #0x18]
- ldrb r0, [r4, #8]
- mov r6, #1
- cmp r0, #1
- ble _0221FE66
- add r5, r4, #4
- add r7, sp, #4
-_0221FE50:
- ldr r0, [r4, #0x10]
- ldr r1, [r4, #0x14]
- add r2, r7, #0
- bl FUN_0200C154
- str r0, [r5, #0x18]
- ldrb r0, [r4, #8]
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, r0
- blt _0221FE50
-_0221FE66:
- ldr r0, [r4, #0x18]
- mov r1, #0
- bl FUN_0200C5C0
- ldr r0, [r4, #0x1c]
- mov r1, #0
- bl FUN_0200C5C0
- ldr r0, [r4, #0x20]
- mov r1, #1
- bl FUN_0200C5C0
- ldr r0, [r4, #0x24]
- mov r1, #1
- bl FUN_0200C5C0
- ldr r0, [r4, #0x28]
- mov r1, #2
- bl FUN_0200C5C0
- ldr r0, [r4, #0x2c]
- mov r1, #3
- bl FUN_0200C5C0
- ldr r0, [r4, #0x18]
- mov r1, #1
- bl FUN_0200C8D0
- ldr r0, [r4, #0x24]
- mov r1, #1
- bl FUN_0200C8D0
- ldrb r0, [r4, #8]
- mov r7, #0
- cmp r0, #0
- ble _0221FEDC
- ldr r6, _0221FF10 ; =0x0222C5FA
- add r5, r4, #0
-_0221FEB2:
- ldr r0, [r5, #0x18]
- mov r1, #1
- bl FUN_0200C5E0
- mov r1, #0
- mov r2, #2
- ldrsh r1, [r6, r1]
- ldrsh r2, [r6, r2]
- ldr r0, [r5, #0x18]
- bl FUN_0200C714
- ldr r0, [r5, #0x18]
- mov r1, #1
- bl FUN_0200C90C
- ldrb r0, [r4, #8]
- add r7, r7, #1
- add r5, r5, #4
- add r6, r6, #4
- cmp r7, r0
- blt _0221FEB2
-_0221FEDC:
- ldr r0, [r4, #0x1c]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0x20]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0x28]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0x2c]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [sp]
- ldr r1, _0221FF14 ; =MOD08_0221FBB8
- ldr r3, _0221FF18 ; =0x0000044C
- add r2, r4, #0
- bl MOD08_022123E4
- add sp, #0x38
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0221FF0C: .word 0x04000052
-_0221FF10: .word 0x0222C5FA
-_0221FF14: .word MOD08_0221FBB8
-_0221FF18: .word 0x0000044C
-
- thumb_func_start MOD08_0221FF1C
-MOD08_0221FF1C: ; 0x0221FF1C
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4, #0xc]
- cmp r0, #7
- bls _0221FF2C
- b _02220084
-_0221FF2C:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0221FF38: ; jump table
- .short _0221FF48 - _0221FF38 - 2 ; case 0
- .short _0221FF5C - _0221FF38 - 2 ; case 1
- .short _0221FF7E - _0221FF38 - 2 ; case 2
- .short _0221FFAC - _0221FF38 - 2 ; case 3
- .short _0221FFDA - _0221FF38 - 2 ; case 4
- .short _0221FFF8 - _0221FF38 - 2 ; case 5
- .short _02220020 - _0221FF38 - 2 ; case 6
- .short _02220068 - _0221FF38 - 2 ; case 7
-_0221FF48:
- ldrb r0, [r4, #0xe]
- sub r0, r0, #1
- strb r0, [r4, #0xe]
- ldrb r0, [r4, #0xe]
- cmp r0, #0xa
- bhi _0221FF68
- ldrb r0, [r4, #0xc]
- add r0, r0, #1
- strb r0, [r4, #0xc]
- b _02220092
-_0221FF5C:
- ldrb r0, [r4, #0xd]
- add r0, r0, #1
- strb r0, [r4, #0xd]
- ldrb r0, [r4, #0xd]
- cmp r0, #3
- bhs _0221FF6A
-_0221FF68:
- b _02220092
-_0221FF6A:
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200C644
- mov r0, #0
- strb r0, [r4, #0xd]
- ldrb r0, [r4, #0xc]
- add r0, r0, #1
- strb r0, [r4, #0xc]
- b _02220092
-_0221FF7E:
- ldrb r0, [r4, #0xd]
- add r0, r0, #1
- strb r0, [r4, #0xd]
- ldrb r0, [r4, #0xd]
- cmp r0, #3
- bhi _0221FFA0
- ldr r0, [r4, #0x38]
- ldr r1, _0222009C ; =0x3DCCCCCD
- bl _fadd
- str r0, [r4, #0x38]
- ldr r1, [r4, #0x38]
- ldr r0, [r4, #0x10]
- add r2, r1, #0
- bl FUN_0200C884
- b _02220092
-_0221FFA0:
- mov r0, #0
- strb r0, [r4, #0xd]
- ldrb r0, [r4, #0xc]
- add r0, r0, #1
- strb r0, [r4, #0xc]
- b _02220092
-_0221FFAC:
- ldrb r0, [r4, #0xd]
- add r0, r0, #1
- strb r0, [r4, #0xd]
- ldrb r0, [r4, #0xd]
- cmp r0, #3
- bhi _0221FFCE
- ldr r0, [r4, #0x38]
- ldr r1, _0222009C ; =0x3DCCCCCD
- bl _fsub
- str r0, [r4, #0x38]
- ldr r1, [r4, #0x38]
- ldr r0, [r4, #0x10]
- add r2, r1, #0
- bl FUN_0200C884
- b _02220092
-_0221FFCE:
- mov r0, #0
- strb r0, [r4, #0xd]
- ldrb r0, [r4, #0xc]
- add r0, r0, #1
- strb r0, [r4, #0xc]
- b _02220092
-_0221FFDA:
- ldrb r0, [r4, #0xe]
- sub r0, r0, #1
- strb r0, [r4, #0xe]
- ldrb r0, [r4, #0xe]
- cmp r0, #0xa
- bhi _02220092
- ldr r0, [r4, #0x3c]
- mov r1, #1
- str r1, [r0]
- mov r0, #0
- strb r0, [r4, #0xd]
- ldrb r0, [r4, #0xc]
- add r0, r0, #1
- strb r0, [r4, #0xc]
- b _02220092
-_0221FFF8:
- ldrb r0, [r4, #0xd]
- add r0, r0, #1
- strb r0, [r4, #0xd]
- ldrb r0, [r4, #0xd]
- cmp r0, #0x1e
- bls _02220010
- mov r0, #0
- strb r0, [r4, #0xd]
- ldrb r0, [r4, #0xc]
- add r0, r0, #1
- strb r0, [r4, #0xc]
- b _02220092
-_02220010:
- ldr r0, [r4, #0x3c]
- ldr r0, [r0]
- cmp r0, #2
- bne _02220092
- ldrb r0, [r4, #0xc]
- add r0, r0, #1
- strb r0, [r4, #0xc]
- b _02220092
-_02220020:
- bl rand_LC
- mov r1, #0xa
- bl _s32_div_f
- add r5, r1, #0
- add r2, sp, #8
- ldr r0, [r4, #0x10]
- add r1, sp, #8
- add r2, #2
- add r5, #0xa
- bl FUN_0200C7A0
- ldrb r0, [r4, #0xf]
- add r3, sp, #8
- mov r1, #0
- lsl r2, r0, #2
- ldr r0, _022200A0 ; =0x0222C5E4
- ldrsh r0, [r0, r2]
- str r0, [sp]
- lsl r0, r5, #0x10
- ldr r5, _022200A4 ; =0x0222C5E2
- lsr r0, r0, #0x10
- str r0, [sp, #4]
- ldrsh r2, [r5, r2]
- add r0, r4, #0
- mov r5, #2
- ldrsh r1, [r3, r1]
- ldrsh r3, [r3, r5]
- add r0, #0x14
- bl MOD08_02217E80
- ldrb r0, [r4, #0xc]
- add r0, r0, #1
- strb r0, [r4, #0xc]
- b _02220092
-_02220068:
- add r0, r4, #0
- ldr r1, [r4, #0x10]
- add r0, #0x14
- bl MOD08_02217F08
- cmp r0, #0
- bne _02220092
- ldr r0, [r4, #0x10]
- mov r1, #0
- bl FUN_0200C644
- ldrb r0, [r4, #0xc]
- add r0, r0, #1
- strb r0, [r4, #0xc]
-_02220084:
- ldr r0, [r4, #0x3c]
- mov r1, #3
- str r1, [r0]
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
-_02220092:
- ldr r0, [r4, #0x10]
- bl FUN_0200C5A8
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-_0222009C: .word 0x3DCCCCCD
-_022200A0: .word 0x0222C5E4
-_022200A4: .word 0x0222C5E2
-
- thumb_func_start MOD08_022200A8
-MOD08_022200A8: ; 0x022200A8
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #3
- bhi _02220164
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_022200C0: ; jump table
- .short _022200C8 - _022200C0 - 2 ; case 0
- .short _022200F4 - _022200C0 - 2 ; case 1
- .short _02220116 - _022200C0 - 2 ; case 2
- .short _02220142 - _022200C0 - 2 ; case 3
-_022200C8:
- ldrb r6, [r4, #2]
- mov r3, #1
- mov r2, #0
- cmp r6, #0
- ble _022200E8
- ldr r0, _0222017C ; =0x00000514
- add r5, r4, #0
-_022200D6:
- ldr r1, [r5, r0]
- cmp r1, #1
- beq _022200E0
- mov r3, #0
- b _022200E8
-_022200E0:
- add r2, r2, #1
- add r5, r5, #4
- cmp r2, r6
- blt _022200D6
-_022200E8:
- cmp r3, #1
- bne _02220174
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _02220174
-_022200F4:
- ldrb r0, [r4, #2]
- mov r5, #0
- cmp r0, #0
- ble _0222010E
- ldr r0, _0222017C ; =0x00000514
- add r3, r4, #0
- mov r2, #2
-_02220102:
- str r2, [r3, r0]
- ldrb r1, [r4, #2]
- add r5, r5, #1
- add r3, r3, #4
- cmp r5, r1
- blt _02220102
-_0222010E:
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _02220174
-_02220116:
- ldrb r5, [r4, #2]
- mov r2, #1
- mov r6, #0
- cmp r5, #0
- ble _02220136
- ldr r0, _0222017C ; =0x00000514
- add r3, r4, #0
-_02220124:
- ldr r1, [r3, r0]
- cmp r1, #3
- beq _0222012E
- mov r2, #0
- b _02220136
-_0222012E:
- add r6, r6, #1
- add r3, r3, #4
- cmp r6, r5
- blt _02220124
-_02220136:
- cmp r2, #1
- bne _02220174
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _02220174
-_02220142:
- ldrb r0, [r4, #2]
- mov r6, #0
- cmp r0, #0
- ble _0222015C
- add r5, r4, #0
-_0222014C:
- ldr r0, [r5, #0x24]
- bl FUN_0200C3DC
- ldrb r0, [r4, #2]
- add r6, r6, #1
- add r5, #0x40
- cmp r6, r0
- blt _0222014C
-_0222015C:
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _02220174
-_02220164:
- ldr r0, [r4, #8]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, r5, r6, pc}
-_02220174:
- ldr r0, [r4, #0x10]
- bl FUN_0200BC1C
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0222017C: .word 0x00000514
-
- thumb_func_start MOD08_02220180
-MOD08_02220180: ; 0x02220180
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x50
- str r0, [sp]
- add r5, r1, #0
- add r6, r2, #0
- add r7, r3, #0
- bl MOD08_02212014
- ldr r1, _022202E8 ; =0x00000564
- bl AllocFromHeap
- add r4, r0, #0
- bne _0222019E
- bl ErrorHandling
-_0222019E:
- mov r0, #0
- strb r0, [r4, #1]
- strb r0, [r4]
- str r5, [r4, #0xc]
- ldr r0, [sp]
- str r6, [r4, #0x10]
- str r0, [r4, #8]
- ldr r1, [sp]
- add r0, sp, #0x1c
- bl MOD08_02215474
- mov r1, #0
- mvn r1, r1
- ldr r0, [r4, #8]
- add r2, r1, #0
- bl MOD08_02227994
- ldr r0, [r4, #8]
- mov r1, #0
- bl MOD08_02212498
- strb r0, [r4, #2]
- mov r0, #0xc
- strb r0, [r4, #2]
- mov r0, #0
- str r7, [r4, #0x24]
- str r0, [sp, #4]
- str r0, [sp, #0x14]
- ldrb r0, [r4, #2]
- cmp r0, #0
- ble _022202D8
- ldr r0, _022202EC ; =0x00000514
- add r5, r4, #0
- add r0, r4, r0
- str r0, [sp, #0xc]
- add r0, r4, #0
- str r0, [sp, #8]
- add r0, #0x14
- str r0, [sp, #8]
-_022201EC:
- ldr r0, [sp, #0x14]
- cmp r0, #0
- beq _022201FE
- ldr r0, [r4, #0xc]
- ldr r1, [r4, #0x10]
- add r2, sp, #0x1c
- bl FUN_0200C154
- str r0, [r5, #0x24]
-_022201FE:
- add r1, r5, #0
- ldr r6, [r5, #0x24]
- add r1, #0x20
- mov r0, #0
- strb r0, [r1]
- add r1, r5, #0
- add r1, #0x21
- strb r0, [r1]
- bl rand_LC
- mov r1, #0xa
- bl _s32_div_f
- ldr r0, [sp, #0x14]
- add r1, #0xa
- add r1, r0, r1
- add r0, r5, #0
- add r0, #0x22
- strb r1, [r0]
- bl rand_LC
- mov r1, #6
- bl _s32_div_f
- add r0, r5, #0
- add r0, #0x23
- strb r1, [r0]
- mov r0, #0xfe
- lsl r0, r0, #0x16
- str r0, [r5, #0x4c]
- ldr r0, [r4, #8]
- ldr r1, _022202F0 ; =0x0222C632
- str r0, [r5, #0x14]
- ldr r0, [r4, #0xc]
- str r0, [r5, #0x18]
- ldr r0, [r4, #0x10]
- str r0, [r5, #0x1c]
- ldr r0, [sp, #0xc]
- str r0, [r5, #0x50]
- ldr r0, [sp, #4]
- lsl r0, r0, #3
- str r0, [sp, #0x18]
- add r7, r1, r0
- bl rand_LC
- mov r1, #6
- ldrsh r1, [r7, r1]
- bl _s32_div_f
- mov r0, #2
- ldrsh r0, [r7, r0]
- add r0, r0, r1
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp, #0x10]
- bl rand_LC
- mov r1, #4
- ldrsh r1, [r7, r1]
- bl _s32_div_f
- ldr r2, _022202F0 ; =0x0222C632
- ldr r0, [sp, #0x18]
- ldrsh r0, [r2, r0]
- add r0, r0, r1
- lsl r0, r0, #0x10
- asr r2, r0, #0x10
- ldr r1, [sp, #0x10]
- add r0, r6, #0
- bl FUN_0200C714
- add r0, r6, #0
- mov r1, #2
- bl FUN_0200C840
- ldr r1, [r5, #0x4c]
- add r0, r6, #0
- add r2, r1, #0
- bl FUN_0200C884
- add r0, r6, #0
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [sp]
- ldr r1, _022202F4 ; =MOD08_0221FF1C
- ldr r2, [sp, #8]
- ldr r3, _022202F8 ; =0x0000044B
- bl MOD08_022123E4
- ldr r0, [sp, #4]
- mov r1, #6
- add r0, r0, #1
- bl _s32_div_f
- ldr r0, [sp, #0xc]
- str r1, [sp, #4]
- add r0, r0, #4
- str r0, [sp, #0xc]
- ldr r0, [sp, #8]
- ldrb r1, [r4, #2]
- add r0, #0x40
- str r0, [sp, #8]
- ldr r0, [sp, #0x14]
- add r5, #0x40
- add r0, r0, #1
- str r0, [sp, #0x14]
- cmp r0, r1
- blt _022201EC
-_022202D8:
- ldr r0, [sp]
- ldr r1, _022202FC ; =MOD08_022200A8
- ldr r3, _02220300 ; =0x0000044D
- add r2, r4, #0
- bl MOD08_022123E4
- add sp, #0x50
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022202E8: .word 0x00000564
-_022202EC: .word 0x00000514
-_022202F0: .word 0x0222C632
-_022202F4: .word MOD08_0221FF1C
-_022202F8: .word 0x0000044B
-_022202FC: .word MOD08_022200A8
-_02220300: .word 0x0000044D
-
- thumb_func_start MOD08_02220304
-MOD08_02220304: ; 0x02220304
- push {r3, r4, r5, r6, lr}
- sub sp, #0x14
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4, #4]
- cmp r0, #3
- bhi _022203EA
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0222031E: ; jump table
- .short _02220326 - _0222031E - 2 ; case 0
- .short _02220344 - _0222031E - 2 ; case 1
- .short _02220396 - _0222031E - 2 ; case 2
- .short _022203C0 - _0222031E - 2 ; case 3
-_02220326:
- ldr r0, [r4, #8]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #8]
- bl MOD08_022154D4
- mov r1, #6
- mov r2, #1
- bl FUN_02007558
- ldrb r0, [r4, #4]
- add r0, r0, #1
- strb r0, [r4, #4]
- b _02220410
-_02220344:
- add r0, r4, #0
- add r0, #0x2c
- bl MOD08_02218704
- cmp r0, #0
- beq _02220410
- mov r0, #0
- str r0, [r4]
- ldr r0, [r4, #8]
- mov r1, #1
- bl MOD08_022155C4
- add r5, r0, #0
- mov r0, #0
- add r1, r0, #0
- bl MOD08_02218998
- add r6, r0, #0
- ldr r0, [r4, #8]
- bl MOD08_02212014
- mov r1, #0xc8
- str r1, [sp]
- mov r3, #3
- str r5, [sp, #4]
- mov r1, #0
- str r1, [sp, #8]
- str r6, [sp, #0xc]
- str r0, [sp, #0x10]
- add r0, r1, #0
- mov r1, #0xa0
- add r2, r1, #0
- add r2, #0xcc
- lsl r3, r3, #0xe
- bl MOD08_022188DC
- str r0, [r4, #0x28]
- ldrb r0, [r4, #4]
- add r0, r0, #1
- strb r0, [r4, #4]
- b _02220410
-_02220396:
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
- cmp r0, #0x78
- blt _02220410
- ldr r0, [r4, #0x28]
- bl MOD08_0221894C
- mov r1, #2
- mov r2, #0x10
- str r1, [sp]
- add r0, r4, #0
- str r2, [sp, #4]
- add r0, #0x2c
- add r3, r2, #0
- bl MOD08_022186D4
- ldrb r0, [r4, #4]
- add r0, r0, #1
- strb r0, [r4, #4]
- b _02220410
-_022203C0:
- add r0, r4, #0
- add r0, #0x2c
- bl MOD08_02218704
- cmp r0, #0
- beq _02220410
- ldr r0, [r4, #8]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #8]
- bl MOD08_022154D4
- mov r1, #6
- mov r2, #0
- bl FUN_02007558
- ldrb r0, [r4, #4]
- add r0, r0, #1
- strb r0, [r4, #4]
- b _02220410
-_022203EA:
- mov r2, #1
- lsl r2, r2, #0x1a
- ldr r1, [r2]
- ldr r0, _02220428 ; =0xFFFF1FFF
- and r0, r1
- str r0, [r2]
- ldr r0, [r4, #8]
- mov r1, #2
- bl MOD08_02214850
- ldr r0, [r4, #8]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #0x14
- pop {r3, r4, r5, r6, pc}
-_02220410:
- ldr r0, [r4, #0x24]
- bl FUN_0200C5A8
- ldr r0, [r4, #0x20]
- bl FUN_0200C5A8
- ldr r0, [r4, #0x10]
- bl FUN_0200BC1C
- add sp, #0x14
- pop {r3, r4, r5, r6, pc}
- nop
-_02220428: .word 0xFFFF1FFF
-
- thumb_func_start MOD08_0222042C
-MOD08_0222042C: ; 0x0222042C
- push {r3, r4, r5, lr}
- sub sp, #8
- mov r1, #0x54
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #4
- bl MOD08_02227B70
- ldr r0, [r4, #8]
- mov r1, #0
- bl MOD08_022124D8
- mov r1, #2
- str r0, [r4, #0x20]
- bl FUN_0200C90C
- mov r0, #1
- lsl r0, r0, #0x1a
- ldr r2, [r0]
- ldr r1, _022204C0 ; =0xFFFF1FFF
- and r2, r1
- lsr r1, r0, #0xb
- orr r1, r2
- str r1, [r0]
- add r0, #0x4a
- ldrh r2, [r0]
- mov r1, #0x3f
- bic r2, r1
- mov r1, #0x1b
- orr r1, r2
- strh r1, [r0]
- ldrh r2, [r0]
- ldr r1, _022204C4 ; =0xFFFFC0FF
- and r2, r1
- mov r1, #0x17
- lsl r1, r1, #8
- orr r1, r2
- strh r1, [r0]
- ldr r0, [r4, #8]
- mov r1, #1
- bl MOD08_022124D8
- mov r1, #1
- str r0, [r4, #0x24]
- bl FUN_0200C90C
- mov r1, #0x10
- str r1, [sp]
- add r0, r4, #0
- mov r2, #2
- str r1, [sp, #4]
- add r0, #0x2c
- add r3, r2, #0
- bl MOD08_022186D4
- ldr r0, [r4, #8]
- mov r1, #2
- bl MOD08_0221477C
- mov r0, #2
- mov r1, #1
- bl FUN_0201797C
- ldr r0, [r4, #8]
- ldr r1, _022204C8 ; =MOD08_02220304
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #8
- pop {r3, r4, r5, pc}
- nop
-_022204C0: .word 0xFFFF1FFF
-_022204C4: .word 0xFFFFC0FF
-_022204C8: .word MOD08_02220304
-
- thumb_func_start MOD08_022204CC
-MOD08_022204CC: ; 0x022204CC
- push {r4, lr}
- add r4, r0, #0
- bl FUN_0200C658
- cmp r0, #1
- bne _022204DE
- add r0, r4, #0
- bl FUN_0200C5A8
-_022204DE:
- pop {r4, pc}
-
- thumb_func_start MOD08_022204E0
-MOD08_022204E0: ; 0x022204E0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- str r1, [sp, #4]
- str r0, [sp]
- ldr r0, [sp, #4]
- mov r1, #0x1c
- ldrsh r0, [r0, r1]
- cmp r0, #0
- bgt _02220504
- ldr r0, [sp, #4]
- ldr r0, [r0, #0x30]
- bl MOD08_022204CC
- ldr r0, [sp, #4]
- ldr r0, [r0, #0x34]
- bl MOD08_022204CC
- b _0222050A
-_02220504:
- sub r1, r0, #1
- ldr r0, [sp, #4]
- strh r1, [r0, #0x1c]
-_0222050A:
- ldr r0, [sp, #4]
- ldr r0, [r0, #0x28]
- bl MOD08_022204CC
- ldr r0, [sp, #4]
- ldr r0, [r0, #0x2c]
- bl MOD08_022204CC
- ldr r4, [sp, #4]
- mov r6, #0
- add r7, r6, #0
- add r5, r4, #0
-_02220522:
- mov r0, #0x1e
- ldrsh r0, [r4, r0]
- add r0, r0, #1
- strh r0, [r4, #0x1e]
- mov r0, #0x1e
- ldrsh r0, [r4, r0]
- cmp r0, #0x28
- blt _0222053C
- ldr r0, [r5, #0x28]
- mov r1, #0
- bl FUN_0200C644
- add r6, r6, #1
-_0222053C:
- add r7, r7, #1
- add r4, r4, #2
- add r5, r5, #4
- cmp r7, #4
- blt _02220522
- cmp r6, #4
- bne _02220570
- ldr r4, [sp, #4]
- mov r5, #0
-_0222054E:
- ldr r0, [r4, #0x28]
- bl FUN_0200C3DC
- add r5, r5, #1
- add r4, r4, #4
- cmp r5, #4
- blt _0222054E
- ldr r0, [sp, #4]
- ldr r1, [sp]
- ldr r0, [r0, #4]
- bl MOD08_02212438
- ldr r0, [sp, #4]
- bl FreeToHeap
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-_02220570:
- ldr r0, [sp, #4]
- ldr r0, [r0, #0x10]
- bl FUN_0200BC1C
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_0222057C
-MOD08_0222057C: ; 0x0222057C
- push {r4, r5, r6, r7, lr}
- sub sp, #0x34
- mov r1, #0x38
- add r5, r0, #0
- add r4, r3, #0
- bl MOD08_02228064
- add r6, r0, #0
- mov r0, #0xa
- strh r0, [r6, #0x1c]
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02227B70
- ldr r1, [r6, #4]
- add r0, sp, #0
- bl MOD08_02215474
- str r4, [r6, #0x28]
- mov r0, #0
- strh r0, [r6, #0x1e]
- mov r7, #1
- add r4, r6, #2
- add r5, r6, #4
-_022205AC:
- mov r0, #0
- strh r0, [r4, #0x1e]
- ldr r0, [r6, #8]
- ldr r1, [r6, #0x10]
- add r2, sp, #0
- bl FUN_0200C154
- str r0, [r5, #0x28]
- add r7, r7, #1
- add r4, r4, #2
- add r5, r5, #4
- cmp r7, #4
- blt _022205AC
- ldr r0, [r6, #0x28]
- mov r1, #1
- bl FUN_0200C8D0
- ldr r0, [r6, #0x2c]
- mov r1, #1
- bl FUN_0200C8D0
- mov r1, #0x1f
- ldr r0, [r6, #0x28]
- mvn r1, r1
- mov r2, #0
- bl FUN_0200C82C
- mov r1, #0x1f
- ldr r0, [r6, #0x2c]
- mvn r1, r1
- mov r2, #0x20
- bl FUN_0200C82C
- ldr r0, [r6, #0x30]
- mov r1, #0x20
- mov r2, #0
- bl FUN_0200C82C
- mov r1, #0x20
- ldr r0, [r6, #0x34]
- add r2, r1, #0
- bl FUN_0200C82C
- ldr r0, [r6, #4]
- ldr r1, _02220610 ; =MOD08_022204E0
- add r2, r6, #0
- bl MOD08_02212400
- add sp, #0x34
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02220610: .word MOD08_022204E0
-
- thumb_func_start MOD08_02220614
-MOD08_02220614: ; 0x02220614
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- add r5, r1, #0
- mov r4, #0
- str r0, [sp, #0x1c]
- str r4, [sp, #0x20]
- add r6, r5, #0
- add r7, r5, #0
-_02220624:
- mov r0, #0x22
- ldrsh r0, [r6, r0]
- add r0, r0, #1
- strh r0, [r6, #0x22]
- mov r0, #0x22
- ldrsh r0, [r6, r0]
- cmp r0, #0x14
- blt _02220676
- ldr r0, [r7, #0x2c]
- bl MOD08_022204CC
- mov r0, #0x22
- ldrsh r0, [r5, r0]
- cmp r0, #0x6e
- bne _02220676
- mov r1, #0
- mvn r1, r1
- ldr r0, [r5, #4]
- add r2, r1, #0
- bl MOD08_02227994
- ldr r0, [r5, #0x2c]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r5, #0x30]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r5, #0x34]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r5, #0x38]
- mov r1, #1
- bl FUN_0200C90C
- mov r0, #0xf
- str r0, [r5, #0x54]
- mov r0, #0
- str r0, [r5, #0x58]
-_02220676:
- add r4, r4, #1
- add r6, r6, #2
- add r7, r7, #4
- cmp r4, #4
- blt _02220624
- mov r0, #0x22
- ldrsh r0, [r5, r0]
- cmp r0, #0x32
- bne _022206BA
- ldr r0, [r5, #4]
- bl MOD08_02212014
- add r1, r0, #0
- mov r0, #0x10
- str r0, [sp]
- sub r0, #0x12
- str r0, [sp, #4]
- mov r2, #2
- str r2, [sp, #8]
- mov r0, #0
- str r0, [sp, #0xc]
- mov r0, #0xe
- str r0, [sp, #0x10]
- ldr r0, _02220894 ; =0x0000FFFF
- str r0, [sp, #0x14]
- ldr r0, _02220898 ; =0x000003EA
- str r0, [sp, #0x18]
- ldr r3, [r5, #0x1c]
- ldr r0, [r5, #0x18]
- lsl r3, r3, #0x14
- lsr r3, r3, #0x10
- bl MOD08_02218B20
- str r0, [r5, #0x3c]
-_022206BA:
- mov r0, #0x22
- ldrsh r0, [r5, r0]
- cmp r0, #0x3c
- bne _022206F4
- ldr r0, [r5, #4]
- bl MOD08_02212014
- add r1, r0, #0
- mov r0, #0x10
- str r0, [sp]
- sub r0, #0x12
- str r0, [sp, #4]
- mov r2, #2
- str r2, [sp, #8]
- mov r0, #0xe
- str r0, [sp, #0xc]
- mov r0, #0
- str r0, [sp, #0x10]
- ldr r0, _02220894 ; =0x0000FFFF
- str r0, [sp, #0x14]
- ldr r0, _02220898 ; =0x000003EA
- str r0, [sp, #0x18]
- ldr r3, [r5, #0x1c]
- ldr r0, [r5, #0x18]
- lsl r3, r3, #0x14
- lsr r3, r3, #0x10
- bl MOD08_02218B20
- str r0, [r5, #0x40]
-_022206F4:
- mov r0, #0x22
- ldrsh r0, [r5, r0]
- cmp r0, #0x46
- bne _0222072E
- ldr r0, [r5, #4]
- bl MOD08_02212014
- add r1, r0, #0
- mov r0, #0x10
- str r0, [sp]
- sub r0, #0x12
- str r0, [sp, #4]
- mov r2, #2
- str r2, [sp, #8]
- mov r0, #0
- str r0, [sp, #0xc]
- mov r0, #0xe
- str r0, [sp, #0x10]
- ldr r0, _02220894 ; =0x0000FFFF
- str r0, [sp, #0x14]
- ldr r0, _02220898 ; =0x000003EA
- str r0, [sp, #0x18]
- ldr r3, [r5, #0x1c]
- ldr r0, [r5, #0x18]
- lsl r3, r3, #0x14
- lsr r3, r3, #0x10
- bl MOD08_02218B20
- str r0, [r5, #0x44]
-_0222072E:
- mov r0, #0x22
- ldrsh r0, [r5, r0]
- cmp r0, #0x50
- bne _02220768
- ldr r0, [r5, #4]
- bl MOD08_02212014
- add r1, r0, #0
- mov r0, #0x10
- str r0, [sp]
- sub r0, #0x12
- str r0, [sp, #4]
- mov r2, #2
- str r2, [sp, #8]
- mov r0, #0xe
- str r0, [sp, #0xc]
- mov r0, #0
- str r0, [sp, #0x10]
- ldr r0, _02220894 ; =0x0000FFFF
- str r0, [sp, #0x14]
- ldr r0, _02220898 ; =0x000003EA
- str r0, [sp, #0x18]
- ldr r3, [r5, #0x1c]
- ldr r0, [r5, #0x18]
- lsl r3, r3, #0x14
- lsr r3, r3, #0x10
- bl MOD08_02218B20
- str r0, [r5, #0x48]
-_02220768:
- mov r0, #0x22
- ldrsh r0, [r5, r0]
- cmp r0, #0x5a
- bne _022207A2
- ldr r0, [r5, #4]
- bl MOD08_02212014
- add r1, r0, #0
- mov r0, #0x10
- str r0, [sp]
- sub r0, #0x12
- str r0, [sp, #4]
- mov r2, #2
- str r2, [sp, #8]
- mov r0, #0
- str r0, [sp, #0xc]
- mov r0, #0xe
- str r0, [sp, #0x10]
- ldr r0, _02220894 ; =0x0000FFFF
- str r0, [sp, #0x14]
- ldr r0, _02220898 ; =0x000003EA
- str r0, [sp, #0x18]
- ldr r3, [r5, #0x1c]
- ldr r0, [r5, #0x18]
- lsl r3, r3, #0x14
- lsr r3, r3, #0x10
- bl MOD08_02218B20
- str r0, [r5, #0x4c]
-_022207A2:
- mov r0, #0x22
- ldrsh r0, [r5, r0]
- cmp r0, #0x64
- bne _022207DC
- ldr r0, [r5, #4]
- bl MOD08_02212014
- add r1, r0, #0
- mov r0, #0x10
- str r0, [sp]
- sub r0, #0x12
- str r0, [sp, #4]
- mov r2, #2
- str r2, [sp, #8]
- mov r0, #0xe
- str r0, [sp, #0xc]
- mov r0, #0
- str r0, [sp, #0x10]
- ldr r0, _02220894 ; =0x0000FFFF
- str r0, [sp, #0x14]
- ldr r0, _02220898 ; =0x000003EA
- str r0, [sp, #0x18]
- ldr r3, [r5, #0x1c]
- ldr r0, [r5, #0x18]
- lsl r3, r3, #0x14
- lsr r3, r3, #0x10
- bl MOD08_02218B20
- str r0, [r5, #0x50]
-_022207DC:
- mov r1, #0x22
- ldrsh r0, [r5, r1]
- cmp r0, #0x6e
- bne _02220816
- sub r1, #0x23
- ldr r0, [r5, #4]
- add r2, r1, #0
- bl MOD08_02227994
- ldr r0, [r5, #0x2c]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r5, #0x30]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r5, #0x34]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r5, #0x38]
- mov r1, #1
- bl FUN_0200C90C
- mov r0, #0xf
- str r0, [r5, #0x54]
- mov r0, #0
- str r0, [r5, #0x58]
-_02220816:
- mov r0, #0x22
- ldrsh r0, [r5, r0]
- cmp r0, #0x6e
- blt _0222084E
- ldr r0, [r5, #0x54]
- cmp r0, #0
- ble _02220828
- sub r0, r0, #1
- str r0, [r5, #0x54]
-_02220828:
- ldr r0, [r5, #0x58]
- cmp r0, #0xf
- bge _02220832
- add r0, r0, #1
- str r0, [r5, #0x58]
-_02220832:
- ldr r0, [r5, #0x58]
- ldr r1, [r5, #0x54]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0222089C ; =0x04000052
- strh r1, [r0]
- ldr r0, [r5, #0x54]
- cmp r0, #0
- bne _0222084E
- ldr r0, [r5, #0x58]
- cmp r0, #0xf
- bne _0222084E
- mov r0, #4
- str r0, [sp, #0x20]
-_0222084E:
- ldr r0, [sp, #0x20]
- cmp r0, #4
- bne _0222088A
- mov r6, #0
- add r4, r5, #0
-_02220858:
- ldr r0, [r4, #0x2c]
- bl FUN_0200C3DC
- add r6, r6, #1
- add r4, r4, #4
- cmp r6, #4
- blt _02220858
- mov r6, #0
- add r4, r5, #0
-_0222086A:
- ldr r0, [r4, #0x3c]
- bl MOD08_02218B08
- add r6, r6, #1
- add r4, r4, #4
- cmp r6, #6
- blt _0222086A
- ldr r0, [r5, #4]
- ldr r1, [sp, #0x1c]
- bl MOD08_02212438
- add r0, r5, #0
- bl FreeToHeap
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
-_0222088A:
- ldr r0, [r5, #0x10]
- bl FUN_0200BC1C
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02220894: .word 0x0000FFFF
-_02220898: .word 0x000003EA
-_0222089C: .word 0x04000052
-
- thumb_func_start MOD08_022208A0
-MOD08_022208A0: ; 0x022208A0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x40
- mov r1, #0x5c
- str r0, [sp]
- add r5, r3, #0
- bl MOD08_02228064
- add r4, r0, #0
- mov r0, #0xa
- strh r0, [r4, #0x20]
- ldr r0, [sp]
- add r1, r4, #0
- bl MOD08_02227B70
- ldr r1, [r4, #4]
- add r0, sp, #0xc
- bl MOD08_02215474
- str r5, [r4, #0x2c]
- mov r0, #0
- strh r0, [r4, #0x22]
- mov r0, #1
- str r0, [sp, #8]
- mov r7, #5
- add r6, r4, #2
- add r5, r4, #4
-_022208D4:
- bl rand_LC
- lsr r1, r0, #0x1f
- lsl r2, r0, #0x1e
- sub r2, r2, r1
- mov r0, #0x1e
- ror r2, r0
- add r0, r1, r2
- add r0, r7, r0
- strh r0, [r6, #0x22]
- ldr r0, [r4, #8]
- ldr r1, [r4, #0x10]
- add r2, sp, #0xc
- bl FUN_0200C154
- str r0, [r5, #0x2c]
- ldr r0, [sp, #8]
- add r7, r7, #5
- add r0, r0, #1
- add r6, r6, #2
- add r5, r5, #4
- str r0, [sp, #8]
- cmp r0, #4
- blt _022208D4
- ldr r0, [r4, #0x30]
- mov r1, #1
- bl FUN_0200C8D0
- ldr r0, [r4, #0x34]
- mov r1, #1
- bl FUN_0200C8D0
- ldr r0, [sp]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [sp]
- bl MOD08_022154D4
- mov r1, #0
- add r5, r0, #0
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp, #4]
- add r0, r5, #0
- mov r1, #1
- bl FUN_0200782C
- add r0, r5, #0
- mov r1, #0x29
- bl FUN_0200782C
- ldr r0, [sp]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [sp]
- bl MOD08_02227470
- cmp r0, #3
- bne _02220956
- mov r7, #0x8c
- b _02220958
-_02220956:
- mov r7, #0x54
-_02220958:
- mov r6, #0
- add r5, r4, #0
-_0222095C:
- ldr r0, [r5, #0x2c]
- ldr r1, [sp, #4]
- add r2, r7, #0
- bl FUN_0200C714
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #4
- blt _0222095C
- ldr r0, [sp]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [sp]
- bl MOD08_02227470
- cmp r0, #3
- ldr r0, [r4, #0x2c]
- bne _022209A2
- mov r1, #0xa
- bl FUN_0200C6C4
- ldr r0, [r4, #0x34]
- mov r1, #0xa
- bl FUN_0200C6C4
- ldr r0, [r4, #0x30]
- mov r1, #0x12
- bl FUN_0200C6C4
- ldr r0, [r4, #0x38]
- mov r1, #0x12
- bl FUN_0200C6C4
- b _022209C0
-_022209A2:
- mov r1, #0x12
- bl FUN_0200C6C4
- ldr r0, [r4, #0x34]
- mov r1, #0x12
- bl FUN_0200C6C4
- ldr r0, [r4, #0x30]
- mov r1, #0xa
- bl FUN_0200C6C4
- ldr r0, [r4, #0x38]
- mov r1, #0xa
- bl FUN_0200C6C4
-_022209C0:
- mov r1, #0x1f
- ldr r0, [r4, #0x2c]
- mvn r1, r1
- mov r2, #0
- bl FUN_0200C82C
- mov r1, #0x27
- ldr r0, [r4, #0x38]
- mvn r1, r1
- mov r2, #4
- bl FUN_0200C82C
- ldr r0, [r4, #0x34]
- mov r1, #0x20
- mov r2, #0
- bl FUN_0200C82C
- ldr r0, [r4, #0x30]
- mov r1, #0x28
- mov r2, #4
- bl FUN_0200C82C
- ldr r0, [r4, #0x2c]
- bl FUN_0200C68C
- str r0, [r4, #0x1c]
- ldr r0, [r4, #4]
- ldr r1, _02220A04 ; =MOD08_02220614
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x40
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02220A04: .word MOD08_02220614
-
- thumb_func_start MOD08_02220A08
-MOD08_02220A08: ; 0x02220A08
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- bne _02220A8E
- add r0, r4, #0
- add r0, #0x60
- bl MOD08_02218224
- cmp r0, #0
- bne _02220A4C
- ldr r0, [r4, #0x28]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0x3c]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0x3c]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl MOD08_02228094
- add sp, #0xc
- pop {r4, r5, pc}
-_02220A4C:
- add r0, r4, #0
- add r0, #0x60
- add r1, sp, #8
- add r2, sp, #4
- bl MOD08_0221825C
- ldr r0, [r4, #0x28]
- ldr r1, [sp, #8]
- ldr r2, [sp, #4]
- bl FUN_0200C884
- mov r0, #0
- str r0, [sp]
- mov r1, #0x58
- mov r2, #0x5a
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x28]
- ldr r3, [r4, #0x74]
- bl MOD08_02218314
- ldr r0, [r4, #0x28]
- bl FUN_0200C5A8
- ldr r0, [r4, #0x3c]
- bl FUN_0200C5A8
- ldr r0, [r4, #0x50]
- bl FUN_0200C5A8
- ldr r0, [r4, #0xc]
- bl FUN_0200BC1C
-_02220A8E:
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02220A94
-MOD08_02220A94: ; 0x02220A94
- push {r4, r5, lr}
- sub sp, #0xc
- mov r1, #0x84
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02227B70
- ldr r0, [r4, #4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_022154D4
- mov r1, #1
- str r0, [r4, #0x24]
- bl FUN_0200782C
- add r1, r4, #0
- add r1, #0x58
- strh r0, [r1]
- mov r0, #0x58
- ldrsh r1, [r4, r0]
- add r0, r4, #0
- add r0, #0x5c
- strh r1, [r0]
- ldr r0, [r4, #4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_0221552C
- add r1, r4, #0
- add r1, #0x5a
- strh r0, [r1]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_022124D8
- str r0, [r4, #0x28]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_022124D8
- str r0, [r4, #0x3c]
- add r0, r5, #0
- mov r1, #2
- bl MOD08_022124D8
- str r0, [r4, #0x50]
- ldr r0, [r4, #0x28]
- mov r1, #2
- bl FUN_0200C840
- add r0, r5, #0
- bl MOD08_02215574
- add r1, r0, #0
- ldr r0, [r4, #0x28]
- bl FUN_0200C6B0
- add r0, r5, #0
- bl MOD08_02215574
- add r1, r0, #0
- ldr r0, [r4, #0x3c]
- bl FUN_0200C6B0
- add r0, r5, #0
- bl MOD08_02215574
- add r1, r0, #0
- ldr r0, [r4, #0x50]
- bl FUN_0200C6B0
- ldr r0, [r4, #4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_02215490
- sub r0, r0, #3
- cmp r0, #1
- ldr r0, [r4, #0x28]
- bhi _02220B62
- mov r1, #0x1e
- bl FUN_0200C6C4
- ldr r0, [r4, #0x3c]
- mov r1, #0x32
- bl FUN_0200C6C4
- ldr r0, [r4, #0x50]
- mov r1, #0x46
- bl FUN_0200C6C4
- b _02220B78
-_02220B62:
- mov r1, #0x3c
- bl FUN_0200C6C4
- ldr r0, [r4, #0x3c]
- mov r1, #0x46
- bl FUN_0200C6C4
- ldr r0, [r4, #0x50]
- mov r1, #0x32
- bl FUN_0200C6C4
-_02220B78:
- mov r2, #0x14
- mov r1, #0x64
- str r2, [sp]
- str r1, [sp, #4]
- mov r0, #0xa
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0x60
- add r3, r1, #0
- bl MOD08_022181A8
- ldr r0, [r4, #4]
- ldr r1, _02220B9C ; =MOD08_02220A08
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-_02220B9C: .word MOD08_02220A08
-
- thumb_func_start MOD08_02220BA0
-MOD08_02220BA0: ; 0x02220BA0
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- add r2, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _02220BB4
- cmp r0, #1
- beq _02220CB2
- b _02220D00
-_02220BB4:
- add r0, r4, #0
- add r0, #0xa0
- ldrb r0, [r0]
- cmp r0, #0
- bne _02220C2E
- mov r0, #0x22
- ldrsh r3, [r4, r0]
- mov r0, #0x20
- ldrsh r1, [r4, r0]
- mov r0, #3
- add r2, r1, #0
- str r3, [sp]
- add r2, #0x30
- str r0, [sp, #4]
- add r0, r4, #0
- lsl r2, r2, #0x10
- add r0, #0x34
- asr r2, r2, #0x10
- bl MOD08_02217E80
- mov r0, #0x22
- ldrsh r1, [r4, r0]
- mov r0, #0xa4
- ldrsh r0, [r4, r0]
- add r2, r1, r0
- mov r0, #0x20
- ldrsh r1, [r4, r0]
- lsl r0, r2, #0x10
- asr r3, r0, #0x10
- add r2, r1, #0
- add r2, #0x30
- lsl r2, r2, #0x10
- str r3, [sp]
- mov r0, #6
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x58
- asr r2, r2, #0x10
- bl MOD08_02217E80
- mov r0, #0x22
- ldrsh r1, [r4, r0]
- mov r0, #0xa4
- ldrsh r0, [r4, r0]
- add r2, r1, r0
- mov r0, #0x20
- ldrsh r1, [r4, r0]
- lsl r0, r2, #0x10
- asr r3, r0, #0x10
- add r2, r1, #0
- add r2, #0x30
- lsl r2, r2, #0x10
- str r3, [sp]
- mov r0, #8
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x7c
- asr r2, r2, #0x10
- bl MOD08_02217E80
- b _02220C9C
-_02220C2E:
- mov r0, #0x22
- ldrsh r3, [r4, r0]
- mov r0, #0x20
- ldrsh r2, [r4, r0]
- mov r0, #3
- add r1, r2, #0
- str r3, [sp]
- add r1, #0x30
- str r0, [sp, #4]
- add r0, r4, #0
- lsl r1, r1, #0x10
- add r0, #0x34
- asr r1, r1, #0x10
- bl MOD08_02217E80
- mov r0, #0x22
- ldrsh r1, [r4, r0]
- mov r0, #0xa4
- ldrsh r0, [r4, r0]
- add r1, r1, r0
- mov r0, #0x20
- ldrsh r2, [r4, r0]
- lsl r0, r1, #0x10
- asr r3, r0, #0x10
- add r1, r2, #0
- add r1, #0x30
- lsl r1, r1, #0x10
- str r3, [sp]
- mov r0, #6
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x58
- asr r1, r1, #0x10
- bl MOD08_02217E80
- mov r0, #0x22
- ldrsh r1, [r4, r0]
- mov r0, #0xa4
- ldrsh r0, [r4, r0]
- add r1, r1, r0
- mov r0, #0x20
- ldrsh r2, [r4, r0]
- lsl r0, r1, #0x10
- asr r3, r0, #0x10
- add r1, r2, #0
- add r1, #0x30
- lsl r1, r1, #0x10
- str r3, [sp]
- mov r0, #9
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x7c
- asr r1, r1, #0x10
- bl MOD08_02217E80
-_02220C9C:
- add r0, r4, #0
- add r0, #0xa0
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xa0
- strb r1, [r0]
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _02220D12
-_02220CB2:
- add r0, r4, #0
- ldr r1, [r4, #0x28]
- add r0, #0x58
- mov r5, #0
- bl MOD08_02217F08
- cmp r0, #0
- bne _02220CC4
- add r5, r5, #1
-_02220CC4:
- add r0, r4, #0
- ldr r1, [r4, #0x24]
- add r0, #0x34
- bl MOD08_02217F2C
- cmp r0, #0
- bne _02220CD4
- add r5, r5, #1
-_02220CD4:
- add r0, r4, #0
- ldr r1, [r4, #0x30]
- add r0, #0x7c
- bl MOD08_02217F08
- cmp r0, #0
- bne _02220CE4
- add r5, r5, #1
-_02220CE4:
- cmp r5, #3
- blt _02220D12
- add r0, r4, #0
- add r0, #0xa0
- ldrb r0, [r0]
- cmp r0, #1
- ldrb r0, [r4]
- bne _02220CFA
- sub r0, r0, #1
- strb r0, [r4]
- b _02220D12
-_02220CFA:
- add r0, r0, #1
- strb r0, [r4]
- b _02220D12
-_02220D00:
- ldr r0, [r4, #4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl MOD08_02228094
- add sp, #8
- pop {r3, r4, r5, pc}
-_02220D12:
- ldr r0, [r4, #0x28]
- bl FUN_0200C5A8
- ldr r0, [r4, #0xc]
- bl FUN_0200BC1C
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02220D24
-MOD08_02220D24: ; 0x02220D24
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- mov r1, #0xa8
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02227B70
- add r0, r4, #0
- mov r1, #0
- add r0, #0xa1
- strb r1, [r0]
- add r0, r4, #0
- mov r1, #8
- add r0, #0xa2
- strb r1, [r0]
- add r0, r4, #0
- add r0, #0xa3
- strb r1, [r0]
- sub r1, #9
- ldr r0, [r4, #4]
- add r2, r1, #0
- bl MOD08_02227994
- add r0, r4, #0
- add r0, #0xa2
- ldrb r1, [r0]
- add r0, r4, #0
- add r0, #0xa3
- ldrb r0, [r0]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _02220E94 ; =0x04000052
- strh r1, [r0]
- ldr r0, [r4, #4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_022154D4
- str r0, [r4, #0x24]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #0x20]
- ldr r0, [r4, #0x24]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #0x22]
- ldr r0, [r4, #4]
- mov r1, #0
- bl MOD08_022124D8
- str r0, [r4, #0x28]
- ldr r0, [r4, #4]
- mov r1, #1
- bl MOD08_022124D8
- str r0, [r4, #0x30]
- ldr r0, [r4, #0x24]
- mov r1, #0x29
- bl FUN_0200782C
- neg r1, r0
- add r0, r4, #0
- add r0, #0xa4
- strh r1, [r0]
- ldr r0, [r4, #4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_0221550C
- add r7, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_0221551C
- str r0, [sp, #0x18]
- ldr r0, [r4, #4]
- ldr r5, [r4, #0x28]
- bl MOD08_02215574
- add r1, r0, #0
- add r0, r5, #0
- add r1, r1, #1
- bl FUN_0200C6B0
- ldr r0, [r5]
- bl FUN_02020354
- mov r1, #1
- bl FUN_0201E28C
- add r6, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_02215504
- str r0, [sp, #0x1c]
- ldr r0, [r4, #4]
- bl MOD08_02212014
- add r3, r0, #0
- mov r0, #2
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- lsl r0, r6, #0x14
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- mov r0, #0xc4
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x1c]
- ldr r1, [sp, #0x18]
- add r2, r7, #0
- bl FUN_02003B40
- add r0, r5, #0
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r4, #4]
- ldr r5, [r4, #0x30]
- bl MOD08_02215574
- add r1, r0, #0
- add r0, r5, #0
- add r1, r1, #1
- bl FUN_0200C6B0
- ldr r0, [r5]
- bl FUN_02020354
- mov r1, #1
- bl FUN_0201E28C
- add r6, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_02215504
- str r0, [sp, #0x20]
- ldr r0, [r4, #4]
- bl MOD08_02212014
- add r3, r0, #0
- mov r0, #2
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- lsl r0, r6, #0x14
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- mov r0, #0xc4
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x20]
- ldr r1, [sp, #0x18]
- add r2, r7, #0
- bl FUN_02003B40
- add r0, r5, #0
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r4, #4]
- ldr r1, _02220E98 ; =MOD08_02220BA0
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- nop
-_02220E94: .word 0x04000052
-_02220E98: .word MOD08_02220BA0
-
- thumb_func_start MOD08_02220E9C
-MOD08_02220E9C: ; 0x02220E9C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- mov r6, #0
- str r0, [sp]
- str r1, [sp, #4]
- add r7, r6, #0
- add r4, r1, #0
- add r5, r1, #0
-_02220EAC:
- mov r0, #0x1e
- ldrsh r0, [r4, r0]
- add r0, r0, #1
- strh r0, [r4, #0x1e]
- mov r0, #0x1e
- ldrsh r0, [r4, r0]
- cmp r0, #0x20
- blt _02220ED4
- ldr r0, [r5, #0x30]
- bl MOD08_022204CC
- mov r0, #0x1e
- ldrsh r0, [r4, r0]
- cmp r0, #0xa0
- blt _02220ED4
- ldr r0, [r5, #0x30]
- mov r1, #0
- bl FUN_0200C644
- add r6, r6, #1
-_02220ED4:
- add r7, r7, #1
- add r4, r4, #2
- add r5, r5, #4
- cmp r7, #8
- blt _02220EAC
- cmp r6, #8
- bne _02220F08
- ldr r4, [sp, #4]
- mov r5, #0
-_02220EE6:
- ldr r0, [r4, #0x30]
- bl FUN_0200C3DC
- add r5, r5, #1
- add r4, r4, #4
- cmp r5, #8
- blt _02220EE6
- ldr r0, [sp, #4]
- ldr r1, [sp]
- ldr r0, [r0, #4]
- bl MOD08_02212438
- ldr r0, [sp, #4]
- bl FreeToHeap
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-_02220F08:
- ldr r0, [sp, #4]
- ldr r0, [r0, #0x10]
- bl FUN_0200BC1C
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02220F14
-MOD08_02220F14: ; 0x02220F14
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x58
- mov r1, #0x74
- add r6, r0, #0
- add r5, r3, #0
- bl MOD08_02228064
- add r4, r0, #0
- mov r0, #0xa
- strh r0, [r4, #0x1c]
- add r0, r6, #0
- add r1, r4, #0
- bl MOD08_02227B70
- ldr r1, [r4, #4]
- add r0, sp, #0x24
- bl MOD08_02215474
- str r5, [r4, #0x30]
- mov r6, #1
- add r5, r4, #4
- mov r7, #0x1f
-_02220F40:
- ldr r0, [r4, #8]
- ldr r1, [r4, #0x10]
- add r2, sp, #0x24
- bl FUN_0200C154
- str r0, [r5, #0x30]
- lsr r1, r6, #0x1f
- lsl r0, r6, #0x1f
- sub r0, r0, r1
- ror r0, r7
- add r0, r1, r0
- beq _02220F60
- ldr r0, [r5, #0x30]
- mov r1, #1
- bl FUN_0200C8D0
-_02220F60:
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #8
- blt _02220F40
- ldr r0, [r4, #4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_022154D4
- mov r1, #0
- add r5, r0, #0
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r7, r0, #0x10
- add r0, r5, #0
- mov r1, #1
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r5, r0, #0x10
- ldr r0, [r4, #4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_022154D4
- mov r1, #0
- str r0, [sp, #0x1c]
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r6, r0, #0x10
- ldr r0, [sp, #0x1c]
- mov r1, #1
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- mov r0, #0x14
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x50
- add r1, r7, #0
- add r2, r6, #0
- add r3, r5, #0
- bl MOD08_02217E80
- mov r7, #0
- ldr r0, [r4, #4]
- add r6, r7, #0
- str r7, [sp, #0x14]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_02227470
- cmp r0, #4
- bne _02220FE4
- mov r0, #1
- str r0, [sp, #0x14]
-_02220FE4:
- add r0, r4, #0
- str r0, [sp, #0x20]
- add r0, #0x50
- add r5, r4, #0
- str r0, [sp, #0x20]
-_02220FEE:
- ldr r0, [sp, #0x20]
- bl MOD08_02217ECC
- str r0, [sp, #0x18]
- lsr r2, r7, #0x1f
- lsl r1, r7, #0x1f
- sub r1, r1, r2
- mov r0, #0x1f
- ror r1, r0
- add r0, r2, r1
- beq _02221026
- ldr r0, [sp, #0x14]
- cmp r0, #0
- bne _02221022
- cmp r6, #8
- bge _02221026
- mov r1, #0x50
- mov r2, #0x52
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r5, #0x30]
- bl FUN_0200C714
- add r5, r5, #4
- add r6, r6, #1
- b _02221026
-_02221022:
- mov r0, #0
- str r0, [sp, #0x14]
-_02221026:
- ldr r0, [sp, #0x18]
- add r7, r7, #1
- cmp r0, #1
- beq _02220FEE
- ldr r0, [r4, #4]
- mov r1, #1
- bl MOD08_02215600
- str r0, [sp, #0x10]
- ldr r0, [r4, #4]
- mov r1, #2
- bl MOD08_02215600
- add r7, r0, #0
- mov r6, #0
- str r4, [sp, #0xc]
- add r5, r4, #0
-_02221048:
- mov r0, #8
- sub r0, r0, r6
- str r0, [sp, #8]
- lsl r1, r0, #2
- ldr r0, [sp, #0xc]
- strh r1, [r0, #0x1e]
- ldr r0, [r4, #4]
- bl MOD08_02212004
- cmp r0, #0
- bne _022210A4
- ldr r0, [r4, #4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_02227470
- cmp r0, #3
- bne _02221086
- cmp r6, #4
- ldr r0, [r5, #0x30]
- bge _0222107E
- add r1, r7, #0
- bl FUN_0200C6B0
- b _0222109A
-_0222107E:
- ldr r1, [sp, #0x10]
- bl FUN_0200C6B0
- b _0222109A
-_02221086:
- cmp r6, #4
- ldr r0, [r5, #0x30]
- blt _02221094
- add r1, r7, #0
- bl FUN_0200C6B0
- b _0222109A
-_02221094:
- ldr r1, [sp, #0x10]
- bl FUN_0200C6B0
-_0222109A:
- ldr r0, [r5, #0x30]
- ldr r1, [sp, #8]
- bl FUN_0200C6C4
- b _022210B4
-_022210A4:
- ldr r0, [r5, #0x30]
- add r1, r6, #0
- bl FUN_0200C6C4
- ldr r0, [r5, #0x30]
- add r1, r7, #0
- bl FUN_0200C6B0
-_022210B4:
- ldr r0, [sp, #0xc]
- add r6, r6, #1
- add r0, r0, #2
- add r5, r5, #4
- str r0, [sp, #0xc]
- cmp r6, #8
- blt _02221048
- ldr r0, [r4, #4]
- ldr r1, _022210D0 ; =MOD08_02220E9C
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x58
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022210D0: .word MOD08_02220E9C
-
- thumb_func_start MOD08_022210D4
-MOD08_022210D4: ; 0x022210D4
- push {r4, r5, lr}
- sub sp, #0x1c
- add r5, r1, #0
- add r4, r0, #0
- ldrb r0, [r5]
- cmp r0, #0
- beq _022210EA
- cmp r0, #1
- beq _02221178
- cmp r0, #2
- b _022211D6
-_022210EA:
- ldr r0, [r5, #0x28]
- cmp r0, #0xe
- ble _02221140
- ldr r0, [r5, #0x30]
- ldr r1, _0222121C ; =0x3E4CCCCD
- bl _fsub
- str r0, [r5, #0x30]
- ldr r0, [r5, #0x2c]
- ldr r1, _0222121C ; =0x3E4CCCCD
- bl _fadd
- str r0, [r5, #0x2c]
- ldr r0, [r5, #0x30]
- bl _f2d
- ldr r2, _02221220 ; =0x9999999A
- ldr r3, _02221224 ; =0x3FC99999
- bl _dleq
- bhi _02221124
- ldrb r0, [r5]
- mov r1, #0
- add r0, r0, #1
- strb r0, [r5]
- ldr r0, [r5, #0x1c]
- bl FUN_0200C644
- b _022211FE
-_02221124:
- mov r0, #0x36
- ldrsb r0, [r5, r0]
- bl _fflt
- add r1, r0, #0
- ldr r0, [r5, #0x2c]
- bl _fmul
- add r1, r0, #0
- ldr r0, [r5, #0x1c]
- ldr r2, [r5, #0x30]
- bl FUN_0200C884
- b _022211FE
-_02221140:
- add r0, r5, #0
- add r0, #0x34
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r5, #0
- add r0, #0x34
- strb r1, [r0]
- add r0, r5, #0
- add r0, #0x35
- ldrb r0, [r0]
- sub r1, r0, #1
- add r0, r5, #0
- add r0, #0x35
- strb r1, [r0]
- add r0, r5, #0
- add r0, #0x34
- ldrb r1, [r0]
- add r0, r5, #0
- add r0, #0x35
- ldrb r0, [r0]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _02221228 ; =0x04000052
- strh r1, [r0]
- ldr r0, [r5, #0x28]
- add r0, r0, #1
- str r0, [r5, #0x28]
- b _022211FE
-_02221178:
- ldr r0, [r5, #0x3c]
- bl MOD08_02218AF8
- cmp r0, #0
- bne _022211FE
- ldr r0, [r5, #0x38]
- bl MOD08_02218B08
- ldr r0, [r5, #0x3c]
- bl MOD08_02218B08
- ldr r0, [r5, #0x24]
- ldr r0, [r0]
- bl FUN_02020354
- mov r1, #1
- bl FUN_0201E28C
- add r4, r0, #0
- ldr r0, [r5, #4]
- bl MOD08_02212014
- add r1, r0, #0
- mov r0, #0x10
- str r0, [sp]
- mov r2, #0
- lsl r3, r4, #0x14
- str r2, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- mov r0, #0xf
- str r0, [sp, #0xc]
- str r2, [sp, #0x10]
- ldr r0, _0222122C ; =0x0000FFFF
- mov r2, #2
- str r0, [sp, #0x14]
- ldr r0, _02221230 ; =0x0000044C
- lsr r3, r3, #0x10
- str r0, [sp, #0x18]
- ldr r0, [r5, #0x18]
- bl MOD08_02218B20
- str r0, [r5, #0x3c]
- ldrb r0, [r5]
- add r0, r0, #1
- strb r0, [r5]
- b _022211FE
-_022211D6:
- ldr r0, [r5, #0x3c]
- bl MOD08_02218AF8
- cmp r0, #0
- bne _022211FE
- ldr r0, [r5, #0x20]
- bl FUN_0200C5A8
- ldr r0, [r5, #0x3c]
- bl MOD08_02218B08
- ldr r0, [r5, #4]
- add r1, r4, #0
- bl MOD08_02212438
- add r0, r5, #0
- bl FreeToHeap
- add sp, #0x1c
- pop {r4, r5, pc}
-_022211FE:
- ldr r0, [r5, #0x1c]
- bl FUN_0200C5A8
- ldr r0, [r5, #0x20]
- bl FUN_0200C5A8
- ldr r0, [r5, #0x24]
- bl FUN_0200C5A8
- ldr r0, [r5, #0xc]
- bl FUN_0200BC1C
- add sp, #0x1c
- pop {r4, r5, pc}
- nop
-_0222121C: .word 0x3E4CCCCD
-_02221220: .word 0x9999999A
-_02221224: .word 0x3FC99999
-_02221228: .word 0x04000052
-_0222122C: .word 0x0000FFFF
-_02221230: .word 0x0000044C
-
- thumb_func_start MOD08_02221234
-MOD08_02221234: ; 0x02221234
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x30
- mov r1, #0x40
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02227B70
- ldr r0, [r4, #4]
- mov r1, #0
- bl MOD08_022124D8
- str r0, [r4, #0x1c]
- ldr r0, [r4, #4]
- mov r1, #1
- bl MOD08_022124D8
- str r0, [r4, #0x20]
- ldr r0, [r4, #4]
- mov r1, #2
- bl MOD08_022124D8
- str r0, [r4, #0x24]
- mov r6, #0
- str r6, [r4, #0x28]
- add r0, r5, #0
- sub r6, #0x20
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_02217C1C
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- mul r0, r6
- add r6, r0, #0
- mov r0, #0xfe
- lsl r0, r0, #0x16
- str r0, [r4, #0x2c]
- str r0, [r4, #0x30]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02215680
- cmp r0, #1
- bne _0222129E
- mov r1, #0
- mvn r1, r1
- b _022212A0
-_0222129E:
- mov r1, #1
-_022212A0:
- add r0, r4, #0
- add r0, #0x36
- strb r1, [r0]
- add r1, sp, #0x24
- ldr r0, [r4, #0x20]
- add r1, #2
- add r2, sp, #0x24
- bl FUN_0200C7A0
- add r2, sp, #0x24
- mov r1, #2
- ldrsh r1, [r2, r1]
- mov r3, #0
- ldrsh r2, [r2, r3]
- add r1, r1, r6
- lsl r1, r1, #0x10
- ldr r0, [r4, #0x1c]
- asr r1, r1, #0x10
- bl FUN_0200C714
- ldr r0, [r4, #0x1c]
- mov r1, #2
- bl FUN_0200C840
- mov r0, #0x36
- ldrsb r0, [r4, r0]
- bl _fflt
- add r1, r0, #0
- ldr r0, [r4, #0x2c]
- bl _fmul
- add r1, r0, #0
- ldr r0, [r4, #0x1c]
- ldr r2, [r4, #0x30]
- bl FUN_0200C884
- ldr r0, [r4, #0x1c]
- ldr r0, [r0]
- bl FUN_02020354
- mov r1, #1
- bl FUN_0201E28C
- add r6, r0, #0
- add r0, r5, #0
- bl MOD08_02212014
- add r1, r0, #0
- mov r0, #0x10
- str r0, [sp]
- mov r2, #0
- lsl r3, r6, #0x14
- str r2, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- str r2, [sp, #0xc]
- mov r0, #0xf
- str r0, [sp, #0x10]
- ldr r0, _0222147C ; =0x0000FFFF
- mov r2, #2
- str r0, [sp, #0x14]
- ldr r0, _02221480 ; =0x0000044C
- lsr r3, r3, #0x10
- str r0, [sp, #0x18]
- ldr r0, [r4, #0x18]
- bl MOD08_02218B20
- str r0, [r4, #0x38]
- ldr r0, [r4, #0x24]
- ldr r0, [r0]
- bl FUN_02020354
- mov r1, #1
- bl FUN_0201E28C
- add r6, r0, #0
- add r0, r5, #0
- bl MOD08_02212014
- add r1, r0, #0
- mov r0, #0x10
- str r0, [sp]
- mov r2, #0
- lsl r3, r6, #0x14
- str r2, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- str r2, [sp, #0xc]
- mov r0, #0xf
- str r0, [sp, #0x10]
- ldr r0, _0222147C ; =0x0000FFFF
- mov r2, #2
- str r0, [sp, #0x14]
- ldr r0, _02221480 ; =0x0000044C
- lsr r3, r3, #0x10
- str r0, [sp, #0x18]
- ldr r0, [r4, #0x18]
- bl MOD08_02218B20
- str r0, [r4, #0x3c]
- ldr r0, [r4, #4]
- bl MOD08_02212458
- lsl r0, r0, #0x18
- lsr r6, r0, #0x18
- ldr r0, [r4, #4]
- add r1, r6, #0
- bl MOD08_02227468
- lsl r0, r0, #0x18
- lsr r5, r0, #0x18
- ldr r0, [r4, #4]
- bl MOD08_02212004
- add r1, r0, #0
- add r0, r5, #0
- add r2, sp, #0x2c
- bl MOD08_02227564
- add r2, sp, #0x28
- ldr r0, [r4, #0x1c]
- add r1, sp, #0x28
- add r2, #2
- bl FUN_0200C7A0
- ldr r0, [r4, #4]
- add r1, r6, #0
- bl MOD08_02227470
- cmp r0, #3
- bne _022213BC
- ldr r0, [r4, #0x1c]
- mov r1, #1
- mov r5, #0
- bl FUN_0200C6B0
- ldr r0, [r4, #0x1c]
- add r1, r5, #0
- bl FUN_0200C6C4
- b _022213CE
-_022213BC:
- ldr r0, [r4, #0x1c]
- mov r1, #2
- bl FUN_0200C6B0
- ldr r0, [r4, #0x1c]
- mov r1, #0
- bl FUN_0200C6C4
- mov r5, #2
-_022213CE:
- ldr r0, [r4, #4]
- bl MOD08_02212460
- lsl r0, r0, #0x18
- lsr r6, r0, #0x18
- ldr r0, [r4, #4]
- add r1, r6, #0
- bl MOD08_022154A8
- add r7, r0, #0
- ldr r0, [r4, #4]
- add r1, r6, #0
- bl MOD08_0221549C
- str r0, [sp, #0x1c]
- ldr r0, [r4, #4]
- add r1, r6, #0
- bl MOD08_022154B8
- str r0, [sp, #0x20]
- ldr r0, [r4, #4]
- add r1, r6, #0
- bl MOD08_022154C4
- ldr r1, [sp, #0x1c]
- ldr r3, [sp, #0x20]
- str r0, [sp]
- lsl r0, r7, #0x10
- lsl r1, r1, #0x18
- lsl r2, r5, #0x18
- lsl r3, r3, #0x18
- lsr r0, r0, #0x10
- lsr r1, r1, #0x18
- lsr r2, r2, #0x18
- lsr r3, r3, #0x18
- bl FUN_02068E88
- add r2, r0, #0
- add r5, sp, #0x24
- mov r3, #0xa
- ldrsh r3, [r5, r3]
- mov r1, #4
- ldrsh r1, [r5, r1]
- add r2, r3, r2
- lsl r2, r2, #0x10
- ldr r0, [r4, #0x1c]
- asr r2, r2, #0x10
- bl FUN_0200C714
- ldr r0, [r4, #0x1c]
- mov r1, #1
- bl FUN_0200C644
- add r0, r4, #0
- mov r1, #0
- add r0, #0x34
- strb r1, [r0]
- add r0, r4, #0
- mov r1, #0xf
- add r0, #0x35
- strb r1, [r0]
- sub r1, #0x10
- ldr r0, [r4, #4]
- add r2, r1, #0
- bl MOD08_02227994
- add r0, r4, #0
- add r0, #0x34
- ldrb r1, [r0]
- add r0, r4, #0
- add r0, #0x35
- ldrb r0, [r0]
- add r2, r4, #0
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _02221484 ; =0x04000052
- strh r1, [r0]
- ldr r0, [r4, #4]
- ldr r1, _02221488 ; =MOD08_022210D4
- bl MOD08_02212400
- add r1, r4, #0
- bl MOD08_022210D4
- add sp, #0x30
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0222147C: .word 0x0000FFFF
-_02221480: .word 0x0000044C
-_02221484: .word 0x04000052
-_02221488: .word MOD08_022210D4
-
- thumb_func_start MOD08_0222148C
-MOD08_0222148C: ; 0x0222148C
- push {r3, r4, r5, lr}
- sub sp, #0x58
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _022214A0
- cmp r0, #1
- beq _022214E6
- b _02221560
-_022214A0:
- ldr r0, [r4, #0x68]
- mov r1, #0x20
- lsl r0, r0, #2
- add r2, r4, r0
- ldr r0, [r2, #0x78]
- lsl r0, r0, #0x10
- asr r3, r0, #0x10
- str r3, [sp]
- mov r0, #0xf
- str r0, [sp, #4]
- ldr r2, [r2, #0x6c]
- add r0, r4, #0
- lsl r2, r2, #0x10
- ldrsh r1, [r4, r1]
- add r0, #0x30
- asr r2, r2, #0x10
- bl MOD08_02217E80
- ldr r2, [r4, #0x68]
- ldr r0, [r4, #0x24]
- lsl r2, r2, #2
- add r2, r4, r2
- add r2, #0x84
- ldr r2, [r2]
- mov r1, #2
- bl FUN_02007558
- ldr r0, [r4, #0x24]
- mov r1, #0x2c
- mov r2, #1
- bl FUN_02007558
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_022214E6:
- add r0, r4, #0
- add r0, #0x30
- bl MOD08_02217ECC
- cmp r0, #0
- bne _02221544
- ldr r0, [r4, #0x68]
- add r0, r0, #1
- str r0, [r4, #0x68]
- cmp r0, #2
- ble _02221504
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- b _0222153A
-_02221504:
- ldr r0, [r4, #0x58]
- cmp r0, #0
- bne _02221536
- ldr r0, [r4, #4]
- add r1, sp, #8
- mov r2, #3
- bl MOD08_022127A8
- ldr r0, [r4, #0x68]
- cmp r0, #2
- ldr r0, [r4, #4]
- bne _0222152A
- bl MOD08_02212014
- add r1, r0, #0
- add r0, sp, #8
- bl MOD08_0222A494
- b _02221536
-_0222152A:
- bl MOD08_02212014
- add r1, r0, #0
- add r0, sp, #8
- bl MOD08_0222A2A4
-_02221536:
- mov r0, #0
- strb r0, [r4]
-_0222153A:
- ldr r0, [r4, #0x24]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #0x20]
-_02221544:
- mov r2, #0x30
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x24]
- mov r1, #0
- bl FUN_02007558
- mov r2, #0x32
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x24]
- mov r1, #1
- bl FUN_02007558
- add sp, #0x58
- pop {r3, r4, r5, pc}
-_02221560:
- ldr r0, [r4, #0x24]
- mov r1, #0x2c
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #0x58
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_0222157C
-MOD08_0222157C: ; 0x0222157C
- push {r3, r4, r5, r6, lr}
- sub sp, #4
- mov r1, #0x90
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02227B70
- ldr r0, [r4, #4]
- bl MOD08_02212458
- add r6, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_02212458
- add r1, r0, #0
- add r2, r4, #0
- ldr r0, [r4, #4]
- add r2, #0x5c
- bl MOD08_022275C0
- ldr r0, [r4, #4]
- bl MOD08_02212460
- add r1, r0, #0
- add r2, r4, #0
- ldr r0, [r4, #4]
- add r2, #0x60
- bl MOD08_022275C0
- ldr r0, [r4, #4]
- add r1, r6, #0
- bl MOD08_02227470
- cmp r0, #3
- bne _022215CE
- mov r1, #1
- b _022215D2
-_022215CE:
- mov r1, #0
- mvn r1, r1
-_022215D2:
- add r0, r4, #0
- add r0, #0x54
- strh r1, [r0]
- ldr r0, [r4, #4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_02227470
- add r6, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_02227470
- cmp r6, r0
- bne _022215FE
- mov r0, #1
- b _02221600
-_022215FE:
- mov r0, #0
-_02221600:
- str r0, [r4, #0x58]
- mov r1, #0
- add r0, r5, #0
- str r1, [r4, #0x68]
- bl MOD08_02212498
- add r2, r4, #0
- add r1, r0, #0
- add r0, r5, #0
- add r2, #0x1c
- add r3, sp, #0
- bl MOD08_02227BAC
- ldr r0, [r4, #0x24]
- mov r1, #1
- bl FUN_0200782C
- mov r1, #0x5e
- ldrsh r2, [r4, r1]
- mov r3, #0x54
- sub r0, r0, r2
- ldrsh r2, [r4, r3]
- cmp r2, #0
- ble _02221672
- add r2, r3, #0
- add r2, #0xfb
- str r2, [r4, #0x6c]
- sub r3, #0xa4
- str r3, [r4, #0x70]
- mov r2, #0x5c
- ldrsh r2, [r4, r2]
- str r2, [r4, #0x74]
- ldrsh r2, [r4, r1]
- add r2, r2, r0
- str r2, [r4, #0x78]
- mov r2, #0x62
- ldrsh r2, [r4, r2]
- add r2, r2, r0
- str r2, [r4, #0x7c]
- ldrsh r1, [r4, r1]
- add r1, r1, r0
- add r0, r4, #0
- add r0, #0x80
- str r1, [r0]
- add r0, r4, #0
- mov r1, #0xa
- add r0, #0x84
- str r1, [r0]
- add r0, r4, #0
- ldr r1, _022216C8 ; =0xFFFFFD76
- add r0, #0x88
- str r1, [r0]
- ldr r0, [r4, #0x24]
- mov r1, #2
- bl FUN_0200782C
- b _022216B2
-_02221672:
- add r2, r3, #0
- sub r2, #0xa4
- str r2, [r4, #0x6c]
- add r3, #0xfb
- str r3, [r4, #0x70]
- mov r2, #0x5c
- ldrsh r2, [r4, r2]
- str r2, [r4, #0x74]
- ldrsh r2, [r4, r1]
- add r2, r2, r0
- str r2, [r4, #0x78]
- mov r2, #0x62
- ldrsh r2, [r4, r2]
- add r2, r2, r0
- str r2, [r4, #0x7c]
- ldrsh r1, [r4, r1]
- add r1, r1, r0
- add r0, r4, #0
- add r0, #0x80
- str r1, [r0]
- add r0, r4, #0
- ldr r1, _022216C8 ; =0xFFFFFD76
- add r0, #0x84
- str r1, [r0]
- add r0, r4, #0
- mov r1, #0xa
- add r0, #0x88
- str r1, [r0]
- ldr r0, [r4, #0x24]
- mov r1, #2
- bl FUN_0200782C
-_022216B2:
- add r1, r4, #0
- add r1, #0x8c
- str r0, [r1]
- ldr r0, [r4, #4]
- ldr r1, _022216CC ; =MOD08_0222148C
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #4
- pop {r3, r4, r5, r6, pc}
- nop
-_022216C8: .word 0xFFFFFD76
-_022216CC: .word MOD08_0222148C
-
- thumb_func_start MOD08_022216D0
-MOD08_022216D0: ; 0x022216D0
- push {r3, r4, lr}
- sub sp, #4
- add r4, r2, #0
- ldr r2, [sp, #0x10]
- str r2, [sp]
- mov r2, #0x50
- sub r2, r2, r3
- add r3, r4, #0
- bl FUN_02007E40
- add sp, #4
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_022216E8
-MOD08_022216E8: ; 0x022216E8
- push {r3, r4, r5, r6, lr}
- sub sp, #4
- add r4, r1, #0
- add r2, r0, #0
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- cmp r0, #3
- bls _022216FC
- b _0222181E
-_022216FC:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02221708: ; jump table
- .short _02221710 - _02221708 - 2 ; case 0
- .short _0222176C - _02221708 - 2 ; case 1
- .short _022217AE - _02221708 - 2 ; case 2
- .short _02221804 - _02221708 - 2 ; case 3
-_02221710:
- ldr r2, [r4, #0x10]
- add r2, #0x4f
- str r2, [r4, #0x10]
- cmp r2, #0x50
- blt _02221738
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- add sp, #4
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x20
- strb r1, [r0]
- ldr r1, [r4, #0x14]
- mov r0, #1
- eor r0, r1
- str r0, [r4, #0x14]
- mov r0, #0
- str r0, [r4, #0x10]
- pop {r3, r4, r5, r6, pc}
-_02221738:
- ldr r0, [r4, #0x14]
- cmp r0, #0
- bne _02221754
- mov r0, #2
- str r0, [sp]
- ldr r3, [r4]
- ldr r0, [r4, #0x1c]
- add r3, r3, #2
- mov r1, #0
- lsl r3, r3, #1
- bl MOD08_022216D0
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_02221754:
- mov r0, #2
- str r0, [sp]
- ldr r3, [r4]
- mov r1, #0x50
- add r3, r3, #2
- ldr r0, [r4, #0x1c]
- sub r1, r1, r2
- lsl r3, r3, #1
- bl MOD08_022216D0
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_0222176C:
- ldr r0, [r4, #4]
- mov r3, #0xff
- sub r0, r0, #1
- str r0, [r4, #4]
- ldr r0, [r4, #0xc]
- lsl r3, r3, #8
- add r2, r0, #1
- str r2, [r4, #0xc]
- ldr r6, [r4, #8]
- ldr r1, [r4, #4]
- lsl r0, r6, #8
- add r5, r0, #0
- add r6, #0x50
- lsl r0, r6, #0x18
- and r5, r3
- lsr r0, r0, #0x18
- lsl r1, r1, #8
- orr r5, r0
- ldr r0, _02221868 ; =0x04000040
- and r3, r1
- lsl r1, r2, #0x18
- lsr r1, r1, #0x18
- strh r5, [r0]
- orr r1, r3
- strh r1, [r0, #4]
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- add r4, #0x20
- add sp, #4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_022217AE:
- ldr r0, [r4, #4]
- mov r3, #0xff
- sub r0, r0, #1
- str r0, [r4, #4]
- ldr r0, [r4, #0xc]
- lsl r3, r3, #8
- add r2, r0, #1
- str r2, [r4, #0xc]
- ldr r6, [r4, #8]
- ldr r1, [r4, #4]
- lsl r0, r6, #8
- add r5, r0, #0
- add r6, #0x50
- lsl r0, r6, #0x18
- and r5, r3
- lsr r0, r0, #0x18
- lsl r1, r1, #8
- orr r5, r0
- ldr r0, _02221868 ; =0x04000040
- and r3, r1
- lsl r1, r2, #0x18
- lsr r1, r1, #0x18
- strh r5, [r0]
- orr r1, r3
- strh r1, [r0, #4]
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
- cmp r0, #0x26
- ble _022217FA
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- add r4, #0x20
- add sp, #4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_022217FA:
- mov r0, #0
- add r4, #0x20
- add sp, #4
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_02221804:
- ldr r0, [r4, #0x1c]
- mov r1, #0xe
- mov r2, #0
- bl FUN_02007558
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- add r4, #0x20
- add sp, #4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0222181E:
- mov r0, #1
- lsl r0, r0, #0x1a
- ldr r3, [r0]
- ldr r1, _0222186C ; =0xFFFF1FFF
- and r1, r3
- add r3, r0, #0
- str r1, [r0]
- add r3, #0x48
- ldrh r5, [r3]
- mov r1, #0x3f
- bic r5, r1
- strh r5, [r3]
- add r3, r0, #0
- add r3, #0x4a
- ldrh r5, [r3]
- bic r5, r1
- add r1, r0, #0
- strh r5, [r3]
- mov r3, #0
- add r1, #0x40
- strh r3, [r1]
- add r0, #0x44
- strh r3, [r0]
- ldr r0, [r4, #0x24]
- add r1, r2, #0
- bl MOD08_02212438
- ldr r0, [r4, #0x1c]
- ldr r2, [r4, #0x18]
- mov r1, #0x17
- bl FUN_02007558
- add r0, r4, #0
- bl FreeToHeap
- add sp, #4
- pop {r3, r4, r5, r6, pc}
- .align 2, 0
-_02221868: .word 0x04000040
-_0222186C: .word 0xFFFF1FFF
-
- thumb_func_start MOD08_02221870
-MOD08_02221870: ; 0x02221870
- push {r4, r5, r6, lr}
- mov r1, #0x50
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r1, r4, #0
- add r0, r5, #0
- add r1, #0x20
- bl MOD08_02227B70
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_022154D4
- str r0, [r4, #0x1c]
- mov r0, #0
- str r0, [r4]
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_02227468
- cmp r0, #3
- beq _022218B0
- cmp r0, #4
- bne _022218C4
-_022218B0:
- add r0, r5, #0
- bl MOD08_02215574
- add r1, r0, #0
- sub r1, r1, #1
- lsl r1, r1, #0x18
- mov r0, #2
- lsr r1, r1, #0x18
- bl FUN_020178BC
-_022218C4:
- ldr r0, [r4, #0x1c]
- mov r1, #0
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r6, r0, #0x10
- ldr r0, [r4, #0x1c]
- mov r1, #1
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r5, r0, #0x10
- ldr r0, [r4, #0x1c]
- mov r1, #0x29
- bl FUN_0200782C
- sub r0, r5, r0
- lsl r0, r0, #0x10
- asr r5, r0, #0x10
- ldr r0, [r4, #0x1c]
- mov r1, #0x17
- bl FUN_0200782C
- str r0, [r4, #0x18]
- ldr r0, [r4, #0x1c]
- mov r1, #0x17
- mov r2, #8
- bl FUN_02007558
- sub r6, #0x28
- str r6, [r4, #8]
- add r5, #0x28
- mov r6, #1
- lsl r6, r6, #0x1a
- add r3, r6, #0
- str r5, [r4, #4]
- mov r1, #0
- str r1, [r4, #0x10]
- ldr r0, [r4, #4]
- add r3, #0x48
- str r0, [r4, #0xc]
- str r1, [r4, #0x14]
- ldr r1, [r6]
- ldr r0, _0222197C ; =0xFFFF1FFF
- and r1, r0
- lsr r0, r6, #0xd
- orr r0, r1
- str r0, [r6]
- ldrh r2, [r3]
- mov r1, #0x3f
- mov r0, #0x1f
- bic r2, r1
- orr r0, r2
- mov r2, #0x20
- orr r0, r2
- strh r0, [r3]
- add r3, r6, #0
- add r3, #0x4a
- ldrh r5, [r3]
- mov r0, #0x1b
- bic r5, r1
- orr r0, r5
- orr r0, r2
- strh r0, [r3]
- ldr r2, [r4, #8]
- mov r0, #0xff
- lsl r1, r2, #8
- add r2, #0x50
- lsl r0, r0, #8
- lsl r2, r2, #0x18
- and r1, r0
- lsr r2, r2, #0x18
- orr r2, r1
- add r1, r6, #0
- ldr r5, [r4, #0xc]
- ldr r3, [r4, #4]
- add r1, #0x40
- strh r2, [r1]
- lsl r1, r3, #8
- and r1, r0
- lsl r0, r5, #0x18
- lsr r0, r0, #0x18
- orr r0, r1
- add r6, #0x44
- strh r0, [r6]
- ldr r0, [r4, #0x24]
- ldr r1, _02221980 ; =MOD08_022216E8
- add r2, r4, #0
- bl MOD08_02212400
- pop {r4, r5, r6, pc}
- nop
-_0222197C: .word 0xFFFF1FFF
-_02221980: .word MOD08_022216E8
-
- thumb_func_start MOD08_02221984
-MOD08_02221984: ; 0x02221984
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- mov r1, #0xe8
- mov r2, #0xea
- add r5, r0, #0
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r3, [r4, #8]
- add r0, #0xc
- bl MOD08_02217E58
- str r0, [sp]
- add r0, r4, #0
- add r0, #0x38
- bl MOD08_02218524
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- ldr r0, [r4, #4]
- bl FUN_0200BC1C
- mov r1, #0
- add r2, sp, #0
-_022219B8:
- ldr r0, [r2]
- cmp r0, #1
- beq _022219EE
- add r1, r1, #1
- add r2, r2, #4
- cmp r1, #3
- blt _022219B8
- mov r2, #0xe8
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #8]
- mov r1, #0
- bl FUN_02007558
- mov r2, #0xea
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #8]
- mov r1, #1
- sub r2, #8
- bl FUN_02007558
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_022219EE:
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022219F4
-MOD08_022219F4: ; 0x022219F4
- push {r4, r5, r6, r7, lr}
- sub sp, #0x44
- add r5, r0, #0
- bl MOD08_02212014
- mov r1, #0xf0
- bl AllocFromHeap
- add r4, r0, #0
- str r5, [r4]
- add r0, r5, #0
- bl MOD08_02212504
- str r0, [r4, #4]
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- mov r1, #0
- str r0, [r4, #8]
- bl FUN_0200782C
- add r1, r4, #0
- add r1, #0xe8
- strh r0, [r1]
- ldr r0, [r4, #8]
- mov r1, #1
- bl FUN_0200782C
- add r1, r4, #0
- add r1, #0xea
- strh r0, [r1]
- ldr r0, [r4, #8]
- mov r1, #0x29
- bl FUN_0200782C
- add r1, r4, #0
- add r1, #0xec
- strh r0, [r1]
- mov r0, #0xea
- ldrsh r1, [r4, r0]
- add r0, r4, #0
- add r0, #0xea
- add r1, #8
- strh r1, [r0]
- add r0, r4, #0
- add r0, #0xc
- mov r1, #1
- mov r2, #8
- bl MOD08_02218654
- add r0, sp, #0x20
- mov r1, #1
- mov r2, #0xa
- bl MOD08_02218654
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02217C1C
- ldr r1, [r4, #0x18]
- mov r6, #0
- add r2, r1, #0
- mul r2, r0
- str r2, [r4, #0x18]
- ldr r1, [sp, #0x2c]
- add r5, r4, #0
- mul r0, r1
- str r0, [sp, #0x2c]
- mov r7, #0x64
-_02221A8C:
- ldr r0, [r4]
- add r1, r6, #0
- bl MOD08_022124D8
- str r0, [r5, #0x30]
- add r1, r7, #0
- bl FUN_0200C6C4
- ldr r0, [r5, #0x30]
- mov r1, #1
- bl FUN_0200C6B0
- ldr r0, [r5, #0x30]
- mov r1, #1
- bl FUN_0200C90C
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #2
- blt _02221A8C
- mov r0, #0xea
- ldrsh r1, [r4, r0]
- mov r0, #0xec
- ldrsh r0, [r4, r0]
- mov r3, #0xe8
- ldr r2, _02221B04 ; =MOD08_02217D98
- sub r0, r1, r0
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- mov r0, #2
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4, #0x30]
- str r0, [sp, #0x10]
- ldr r0, [r4, #0x34]
- str r0, [sp, #0x14]
- str r1, [sp, #0x18]
- str r1, [sp, #0x1c]
- add r0, r4, #0
- ldrsh r3, [r4, r3]
- add r0, #0x38
- add r1, sp, #0x20
- bl MOD08_0221847C
- mov r1, #0
- mvn r1, r1
- ldr r0, [r4]
- add r2, r1, #0
- bl MOD08_02227994
- ldr r0, [r4]
- ldr r1, _02221B08 ; =MOD08_02221984
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x44
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02221B04: .word MOD08_02217D98
-_02221B08: .word MOD08_02221984
-
- thumb_func_start MOD08_02221B0C
-MOD08_02221B0C: ; 0x02221B0C
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #4]
- cmp r0, #6
- bls _02221B1C
- b _02221C62
-_02221B1C:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02221B28: ; jump table
- .short _02221B36 - _02221B28 - 2 ; case 0
- .short _02221B78 - _02221B28 - 2 ; case 1
- .short _02221BAE - _02221B28 - 2 ; case 2
- .short _02221BC6 - _02221B28 - 2 ; case 3
- .short _02221BF6 - _02221B28 - 2 ; case 4
- .short _02221C0E - _02221B28 - 2 ; case 5
- .short _02221C32 - _02221B28 - 2 ; case 6
-_02221B36:
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_02217ECC
- cmp r0, #0
- beq _02221B58
- mov r2, #0x48
- mov r3, #0x4a
- add r0, r4, #0
- ldrsh r2, [r4, r2]
- ldrsh r3, [r4, r3]
- ldr r1, [r4, #0xc]
- add r0, #0x10
- bl MOD08_02217CD0
- add sp, #8
- pop {r3, r4, r5, pc}
-_02221B58:
- mov r2, #0
- str r2, [sp]
- mov r0, #2
- str r0, [sp, #4]
- mov r1, #0x10
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- add r0, #0x10
- add r3, r2, #0
- bl MOD08_02217E80
- ldr r0, [r4, #4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r3, r4, r5, pc}
-_02221B78:
- add r0, r4, #0
- add r0, #0x34
- bl MOD08_02218058
- cmp r0, #0
- beq _02221B92
- ldr r0, [r4, #0xc]
- ldr r2, [r4, #0x34]
- mov r1, #9
- bl FUN_02007558
- add sp, #8
- pop {r3, r4, r5, pc}
-_02221B92:
- add r0, r4, #0
- ldr r1, [r4, #0x34]
- add r0, #0x34
- mov r2, #0
- mov r3, #4
- bl MOD08_02218008
- ldr r0, [r4, #4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4, #4]
- mov r0, #2
- strh r0, [r4, #8]
- pop {r3, r4, r5, pc}
-_02221BAE:
- mov r0, #8
- ldrsh r1, [r4, r0]
- sub r1, r1, #1
- strh r1, [r4, #8]
- ldrsh r0, [r4, r0]
- cmp r0, #0
- bge _02221C62
- ldr r0, [r4, #4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r3, r4, r5, pc}
-_02221BC6:
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_02217ECC
- cmp r0, #0
- beq _02221BE8
- mov r2, #0x48
- mov r3, #0x4a
- add r0, r4, #0
- ldrsh r2, [r4, r2]
- ldrsh r3, [r4, r3]
- ldr r1, [r4, #0xc]
- add r0, #0x10
- bl MOD08_02217CD0
- add sp, #8
- pop {r3, r4, r5, pc}
-_02221BE8:
- ldr r0, [r4, #4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4, #4]
- mov r0, #0x20
- strh r0, [r4, #8]
- pop {r3, r4, r5, pc}
-_02221BF6:
- mov r0, #8
- ldrsh r1, [r4, r0]
- sub r1, r1, #1
- strh r1, [r4, #8]
- ldrsh r0, [r4, r0]
- cmp r0, #0
- bge _02221C62
- ldr r0, [r4, #4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r3, r4, r5, pc}
-_02221C0E:
- add r0, r4, #0
- add r0, #0x34
- bl MOD08_02218058
- cmp r0, #0
- beq _02221C28
- ldr r0, [r4, #0xc]
- ldr r2, [r4, #0x34]
- mov r1, #9
- bl FUN_02007558
- add sp, #8
- pop {r3, r4, r5, pc}
-_02221C28:
- ldr r0, [r4, #4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r3, r4, r5, pc}
-_02221C32:
- mov r2, #0x48
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0
- bl FUN_02007558
- mov r2, #0x4a
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_02007558
- ldr r0, [r4, #0xc]
- mov r1, #9
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_02221C62:
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02221C68
-MOD08_02221C68: ; 0x02221C68
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r0, #0
- bl MOD08_02212014
- mov r1, #0xf0
- bl AllocFromHeap
- add r4, r0, #0
- str r5, [r4]
- mov r0, #0
- str r0, [r4, #4]
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- mov r1, #0
- str r0, [r4, #0xc]
- bl FUN_0200782C
- add r1, r4, #0
- add r1, #0x48
- strh r0, [r1]
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_0200782C
- add r1, r4, #0
- add r1, #0x4a
- strh r0, [r1]
- mov r1, #0
- add r0, r4, #0
- str r1, [sp]
- mov r2, #3
- str r2, [sp, #4]
- add r0, #0x10
- sub r2, #0x23
- add r3, r1, #0
- bl MOD08_02217E80
- add r0, r4, #0
- ldr r2, _02221D78 ; =0x00000E38
- add r0, #0x34
- mov r1, #0
- mov r3, #8
- bl MOD08_02218008
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02217C1C
- ldr r1, [r4, #0x18]
- add r2, r1, #0
- mul r2, r0
- str r2, [r4, #0x18]
- ldr r1, [r4, #0x3c]
- mul r0, r1
- str r0, [r4, #0x3c]
- ldr r0, [r4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02217C1C
- add r7, r0, #0
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_02227470
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_02227470
- cmp r6, #3
- bne _02221D36
- cmp r0, #3
- bne _02221D36
- mov r1, #0xa
- add r2, r1, #0
- ldr r0, [r4, #0xc]
- sub r2, #0x32
- bl FUN_02007558
- ldr r0, [r4, #0xc]
- mov r1, #0xb
- mov r2, #0x28
- bl FUN_02007558
- b _02221D6A
-_02221D36:
- cmp r6, #4
- bne _02221D54
- cmp r0, #4
- bne _02221D54
- ldr r0, [r4, #0xc]
- mov r1, #0xa
- mov r2, #0x28
- bl FUN_02007558
- ldr r0, [r4, #0xc]
- mov r1, #0xb
- mov r2, #0x28
- bl FUN_02007558
- b _02221D6A
-_02221D54:
- mov r2, #0x28
- ldr r0, [r4, #0xc]
- mov r1, #0xa
- mul r2, r7
- bl FUN_02007558
- ldr r0, [r4, #0xc]
- mov r1, #0xb
- mov r2, #0x28
- bl FUN_02007558
-_02221D6A:
- ldr r0, [r4]
- ldr r1, _02221D7C ; =MOD08_02221B0C
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02221D78: .word 0x00000E38
-_02221D7C: .word MOD08_02221B0C
-
- thumb_func_start MOD08_02221D80
-MOD08_02221D80: ; 0x02221D80
- push {r4, r5, r6, lr}
- add r5, r0, #0
- add r0, r1, #0
- add r1, r2, #0
- add r2, r3, #0
- ldr r4, [sp, #0x10]
- bl FUN_0200C154
- str r0, [r5]
- add r6, r4, #4
- add r3, r5, #4
- mov r2, #4
-_02221D98:
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _02221D98
- ldr r0, [r6]
- add r2, r5, #0
- str r0, [r3]
- add r3, r4, #0
- add r3, #0x28
- ldmia r3!, {r0, r1}
- add r2, #0x28
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldr r0, [r3]
- str r0, [r2]
- mov r0, #0x3c
- ldrsh r0, [r4, r0]
- strh r0, [r5, #0x3c]
- mov r0, #0x3e
- ldrsh r0, [r4, r0]
- strh r0, [r5, #0x3e]
- mov r0, #0x40
- ldrsh r1, [r4, r0]
- add r0, r5, #0
- add r0, #0x40
- strh r1, [r0]
- ldr r0, [r4, #0x44]
- mov r1, #0
- str r0, [r5, #0x44]
- str r1, [r5, #0x48]
- ldr r0, [r5]
- bl FUN_0200C644
- ldr r0, [r5]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r5]
- mov r1, #1
- bl FUN_0200C6B0
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02221DF0
-MOD08_02221DF0: ; 0x02221DF0
- ldr r3, _02221DF8 ; =FUN_0200C3DC
- ldr r0, [r0]
- bx r3
- nop
-_02221DF8: .word FUN_0200C3DC
-
- thumb_func_start MOD08_02221DFC
-MOD08_02221DFC: ; 0x02221DFC
- ldr r3, _02221E04 ; =FUN_0200C644
- ldr r0, [r0]
- bx r3
- nop
-_02221E04: .word FUN_0200C644
-
- thumb_func_start MOD08_02221E08
-MOD08_02221E08: ; 0x02221E08
- push {r4, lr}
- sub sp, #0x10
- add r4, r0, #0
- ldr r0, [r4, #0x48]
- cmp r0, #0
- bne _02221E1A
- add sp, #0x10
- mov r0, #1
- pop {r4, pc}
-_02221E1A:
- ldr r0, [r4, #0x44]
- cmp r0, #0
- beq _02221E2A
- cmp r0, #1
- beq _02221E2A
- cmp r0, #2
- beq _02221EAC
- b _02221EB2
-_02221E2A:
- add r0, r4, #4
- bl MOD08_02217D98
- cmp r0, #0
- beq _02221E6A
- add r0, r4, #0
- add r0, #0x28
- bl MOD08_022180C4
- mov r0, #0x3c
- ldrsh r1, [r4, r0]
- ldr r0, [r4, #0x28]
- add r0, r1, r0
- str r0, [r4, #0x1c]
- mov r1, #0x3e
- ldrsh r2, [r4, r1]
- mov r1, #4
- ldrsh r1, [r4, r1]
- ldr r0, [r4]
- add r1, r2, r1
- mov r2, #0x40
- ldrsh r3, [r4, r2]
- mov r2, #6
- ldrsh r2, [r4, r2]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add r2, r3, r2
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- bl FUN_0200C714
- b _02221EB2
-_02221E6A:
- ldr r0, [r4, #0x44]
- cmp r0, #1
- bge _02221EA4
- cmp r0, #0
- bne _02221E92
- ldr r1, [r4, #0xc]
- ldr r2, _02221EB8 ; =0x00007FFF
- lsl r1, r1, #0x10
- str r2, [sp]
- ldr r0, [r4, #0x10]
- lsr r1, r1, #0x10
- str r0, [sp, #4]
- ldr r0, [r4, #0x18]
- add r3, r1, #0
- str r0, [sp, #8]
- ldr r0, _02221EBC ; =0x0000071C
- str r0, [sp, #0xc]
- add r0, r4, #4
- bl MOD08_02217D44
-_02221E92:
- ldr r0, [r4, #8]
- ldr r2, _02221EC0 ; =0x0000FFFF
- str r0, [sp]
- add r0, r4, #0
- ldr r3, _02221EC4 ; =0xFFFFF000
- add r0, #0x28
- mov r1, #0
- bl MOD08_022180AC
-_02221EA4:
- ldr r0, [r4, #0x44]
- add r0, r0, #1
- str r0, [r4, #0x44]
- b _02221EB2
-_02221EAC:
- add sp, #0x10
- mov r0, #0
- pop {r4, pc}
-_02221EB2:
- mov r0, #1
- add sp, #0x10
- pop {r4, pc}
- .align 2, 0
-_02221EB8: .word 0x00007FFF
-_02221EBC: .word 0x0000071C
-_02221EC0: .word 0x0000FFFF
-_02221EC4: .word 0xFFFFF000
-
- thumb_func_start MOD08_02221EC8
-MOD08_02221EC8: ; 0x02221EC8
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r7, r0, #0
- add r0, r4, #0
- add r0, #0xf0
- ldr r0, [r0]
- cmp r0, #6
- bhi _02221F3C
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02221EE4: ; jump table
- .short _02221EF2 - _02221EE4 - 2 ; case 0
- .short _02221F0A - _02221EE4 - 2 ; case 1
- .short _02221F56 - _02221EE4 - 2 ; case 2
- .short _02221F6C - _02221EE4 - 2 ; case 3
- .short _0222200C - _02221EE4 - 2 ; case 4
- .short _02222036 - _02221EE4 - 2 ; case 5
- .short _02222076 - _02221EE4 - 2 ; case 6
-_02221EF2:
- add r0, r4, #0
- add r0, #0xc
- bl MOD08_02221E08
- add r0, r4, #0
- add r0, #0xf0
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xf0
- str r1, [r0]
- b _022220A0
-_02221F0A:
- add r0, r4, #0
- add r0, #0xfc
- ldr r1, [r0]
- add r0, r4, #0
- add r1, #0xa
- add r0, #0xfc
- str r1, [r0]
- add r0, r4, #0
- add r0, #0xfc
- ldr r0, [r0]
- mov r1, #0xa
- bl _s32_div_f
- mov r1, #0x1f
- sub r1, r1, r0
- lsl r1, r1, #8
- orr r1, r0
- ldr r0, _022220A8 ; =0x04000052
- strh r1, [r0]
- add r0, r4, #0
- add r0, #0xfc
- ldr r1, [r0]
- ldr r0, _022220AC ; =0x00000136
- cmp r1, r0
- bge _02221F3E
-_02221F3C:
- b _022220A0
-_02221F3E:
- ldr r0, [r4, #0xc]
- mov r1, #0
- bl FUN_0200C90C
- add r0, r4, #0
- add r0, #0xf0
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xf0
- str r1, [r0]
- b _022220A0
-_02221F56:
- ldr r1, _022220B0 ; =0x0000FFFF
- ldr r0, _022220A8 ; =0x04000052
- strh r1, [r0]
- add r0, r4, #0
- add r0, #0xf0
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xf0
- str r1, [r0]
- b _022220A0
-_02221F6C:
- add r0, r4, #0
- add r0, #0xf4
- ldr r0, [r0]
- cmp r0, #0
- bgt _02221FB0
- add r0, r4, #0
- add r0, #0xf8
- ldr r0, [r0]
- mov r2, #0x4c
- add r3, r0, #0
- mul r3, r2
- add r0, r4, r3
- mov r1, #1
- add r0, #0xa0
- str r1, [r0]
- add r0, r4, #0
- add r0, #0xf8
- ldr r0, [r0]
- mul r2, r0
- add r0, r4, r2
- ldr r0, [r0, #0x58]
- bl FUN_0200C644
- add r0, r4, #0
- add r0, #0xf8
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xf8
- str r1, [r0]
- add r0, r4, #0
- mov r1, #8
- add r0, #0xf4
- str r1, [r0]
-_02221FB0:
- add r0, r4, #0
- add r0, #0xf8
- ldr r0, [r0]
- cmp r0, #2
- bge _02221FC8
- add r0, r4, #0
- add r0, #0xf4
- ldr r0, [r0]
- sub r1, r0, #1
- add r0, r4, #0
- add r0, #0xf4
- str r1, [r0]
-_02221FC8:
- add r0, r4, #0
- add r0, #0xc
- bl MOD08_02221E08
- add r5, r4, #0
- add r6, r0, #0
- mov r7, #0
- add r5, #0x58
-_02221FD8:
- add r0, r5, #0
- bl MOD08_02221E08
- str r0, [sp]
- cmp r0, #0
- bne _02221FEC
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02221DFC
-_02221FEC:
- ldr r0, [sp]
- add r7, r7, #1
- orr r6, r0
- add r5, #0x4c
- cmp r7, #2
- blt _02221FD8
- cmp r6, #0
- bne _022220A0
- add r0, r4, #0
- add r0, #0xf0
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xf0
- str r1, [r0]
- b _022220A0
-_0222200C:
- ldr r0, [r4, #0xc]
- bl FUN_0200C5A8
- ldr r0, [r4, #0xc]
- ldr r0, [r0]
- bl FUN_02020388
- cmp r0, #0
- bne _022220A0
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_0200C90C
- add r0, r4, #0
- add r0, #0xf0
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xf0
- str r1, [r0]
- b _022220A0
-_02222036:
- add r0, r4, #0
- add r0, #0xfc
- ldr r1, [r0]
- add r0, r4, #0
- sub r1, #0xa
- add r0, #0xfc
- str r1, [r0]
- add r0, r4, #0
- add r0, #0xfc
- ldr r0, [r0]
- mov r1, #0xa
- bl _s32_div_f
- mov r1, #0x1f
- sub r1, r1, r0
- lsl r1, r1, #8
- orr r1, r0
- ldr r0, _022220A8 ; =0x04000052
- strh r1, [r0]
- add r0, r4, #0
- add r0, #0xfc
- ldr r0, [r0]
- cmp r0, #0
- bgt _022220A0
- add r0, r4, #0
- add r0, #0xf0
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xf0
- str r1, [r0]
- b _022220A0
-_02222076:
- add r5, r4, #0
- mov r6, #0
- add r5, #0x58
-_0222207C:
- add r0, r5, #0
- bl MOD08_02221DF0
- add r6, r6, #1
- add r5, #0x4c
- cmp r6, #2
- blt _0222207C
- ldr r0, [r4, #0xc]
- bl FUN_0200C3DC
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, r6, r7, pc}
-_022220A0:
- ldr r0, [r4, #8]
- bl FUN_0200BC1C
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022220A8: .word 0x04000052
-_022220AC: .word 0x00000136
-_022220B0: .word 0x0000FFFF
-
- thumb_func_start MOD08_022220B4
-MOD08_022220B4: ; 0x022220B4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x48
- add r5, r0, #0
- add r6, r1, #0
- add r7, r2, #0
- str r3, [sp, #0x10]
- bl MOD08_02212014
- mov r1, #1
- lsl r1, r1, #8
- bl AllocFromHeap
- add r4, r0, #0
- str r5, [r4]
- str r6, [r4, #4]
- str r7, [r4, #8]
- mov r1, #8
- add r0, #0xf4
- str r1, [r0]
- add r0, r4, #0
- mov r1, #0
- add r0, #0xf8
- str r1, [r0]
- add r0, r4, #0
- add r0, #0xf0
- str r1, [r0]
- add r0, r5, #0
- bl MOD08_02212458
- add r6, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02217C1C
- ldr r1, [sp, #0x10]
- lsl r0, r0, #0x11
- str r1, [r4, #0xc]
- mov r1, #0
- str r1, [r4, #0x50]
- ldr r2, _022221EC ; =0x0000BFFF
- neg r0, r0
- str r2, [sp]
- str r0, [sp, #4]
- ldr r1, _022221F0 ; =0xFFFF8000
- ldr r0, _022221F4 ; =0x0000071C
- str r1, [sp, #8]
- str r0, [sp, #0xc]
- add r0, r4, #0
- lsr r1, r1, #0x12
- add r0, #0x10
- add r3, r1, #0
- bl MOD08_02217D44
- ldr r0, [r4, #0x14]
- ldr r2, _022221F8 ; =0x0000FFFF
- str r0, [sp]
- add r0, r4, #0
- ldr r3, _022221FC ; =0xFFFFF000
- add r0, #0x34
- mov r1, #0
- bl MOD08_022180AC
- add r0, r4, #0
- ldr r1, [r4, #0x28]
- add r0, #0x48
- strh r1, [r0]
- mov r0, #1
- str r0, [r4, #0x54]
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0
- bl MOD08_02217B98
- add r1, r4, #0
- add r1, #0x4a
- strh r0, [r1]
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #1
- bl MOD08_02217B98
- add r1, r4, #0
- add r1, #0x4c
- strh r0, [r1]
- mov r1, #0x4a
- mov r2, #0x4c
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- bl FUN_0200C714
- ldr r0, [r4, #0xc]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_0200C6B0
- ldr r1, [r4]
- add r0, sp, #0x14
- bl MOD08_02215474
- mov r0, #0x4a
- ldrsh r0, [r4, r0]
- add r1, sp, #0x14
- add r5, r4, #0
- strh r0, [r1]
- mov r0, #0x4c
- ldrsh r0, [r4, r0]
- add r7, r4, #0
- mov r6, #0
- strh r0, [r1, #2]
- add r5, #0x58
- add r7, #0xc
-_0222219A:
- str r7, [sp]
- ldr r1, [r4, #4]
- ldr r2, [r4, #8]
- add r0, r5, #0
- add r3, sp, #0x14
- bl MOD08_02221D80
- add r6, r6, #1
- add r5, #0x4c
- cmp r6, #2
- blt _0222219A
- add r0, r4, #0
- mov r1, #0
- add r0, #0xfc
- str r1, [r0]
- ldr r0, [r4]
- mov r2, #0x1f
- bl MOD08_02227994
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_0200C90C
- mov r6, #0
- add r5, r4, #0
- mov r7, #1
-_022221CE:
- ldr r0, [r5, #0x58]
- add r1, r7, #0
- bl FUN_0200C90C
- add r6, r6, #1
- add r5, #0x4c
- cmp r6, #2
- blt _022221CE
- ldr r0, [r4]
- ldr r1, _02222200 ; =MOD08_02221EC8
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x48
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022221EC: .word 0x0000BFFF
-_022221F0: .word 0xFFFF8000
-_022221F4: .word 0x0000071C
-_022221F8: .word 0x0000FFFF
-_022221FC: .word 0xFFFFF000
-_02222200: .word MOD08_02221EC8
-
- thumb_func_start MOD08_02222204
-MOD08_02222204: ; 0x02222204
- push {r4, lr}
- sub sp, #8
- add r4, r0, #0
- mov r2, #0x60
- ldrsh r3, [r4, r2]
- mov r2, #0x10
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x5c]
- mov r1, #0
- add r2, r3, r2
- bl FUN_02007558
- mov r2, #0x62
- ldrsh r3, [r4, r2]
- mov r2, #0x12
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x5c]
- mov r1, #1
- add r2, r3, r2
- bl FUN_02007558
- mov r1, #0x60
- ldrsh r2, [r4, r1]
- mov r1, #0x10
- ldrsh r1, [r4, r1]
- ldr r0, [r4, #0x58]
- add r1, r2, r1
- mov r2, #0x62
- ldrsh r3, [r4, r2]
- mov r2, #0x12
- ldrsh r2, [r4, r2]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add r3, r3, r2
- mov r2, #0x66
- ldrsh r2, [r4, r2]
- sub r2, r3, r2
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- bl FUN_0200C714
- add r0, r4, #0
- add r0, #0x34
- add r1, sp, #4
- add r2, sp, #0
- bl MOD08_0221825C
- mov r0, #0x64
- ldrsh r0, [r4, r0]
- bl _fflt
- add r1, r0, #0
- ldr r0, _02222298 ; =0x3DCCCCCD
- bl _fmul
- add r1, r0, #0
- ldr r0, [sp, #4]
- bl _fadd
- add r1, r0, #0
- str r1, [sp, #4]
- ldr r0, [r4, #0x58]
- ldr r2, [sp]
- bl FUN_0200C884
- mov r0, #0x64
- ldrsh r1, [r4, r0]
- sub r0, #0x65
- add r4, #0x64
- mul r0, r1
- strh r0, [r4]
- add sp, #8
- pop {r4, pc}
- nop
-_02222298: .word 0x3DCCCCCD
-
- thumb_func_start MOD08_0222229C
-MOD08_0222229C: ; 0x0222229C
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r2, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #0
- beq _022222B4
- cmp r0, #1
- beq _022222EE
- cmp r0, #2
- beq _0222232A
- b _0222233C
-_022222B4:
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_022183F0
- add r0, r4, #0
- add r0, #0x34
- bl MOD08_02218224
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02222204
- cmp r5, #0
- bne _0222233C
- mov r2, #0xa
- str r2, [sp]
- str r2, [sp, #4]
- mov r0, #4
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0x34
- mov r1, #0xc
- mov r3, #0xf
- bl MOD08_022181A8
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _0222233C
-_022222EE:
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_022183F0
- add r0, r4, #0
- add r0, #0x34
- bl MOD08_02218224
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02222204
- cmp r5, #0
- bne _0222233C
- mov r2, #0x60
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x5c]
- mov r1, #0
- bl FUN_02007558
- mov r2, #0x62
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x5c]
- mov r1, #1
- bl FUN_02007558
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _0222233C
-_0222232A:
- ldr r0, [r4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #0xc
- pop {r4, r5, pc}
-_0222233C:
- ldr r0, [r4, #4]
- bl FUN_0200BC1C
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02222348
-MOD08_02222348: ; 0x02222348
- push {r4, r5, lr}
- sub sp, #0xc
- add r5, r0, #0
- bl MOD08_02212014
- mov r1, #0x68
- bl AllocFromHeap
- add r4, r0, #0
- str r5, [r4]
- add r0, r5, #0
- bl MOD08_02212504
- str r0, [r4, #4]
- mov r0, #0
- str r0, [r4, #8]
- str r0, [r4, #0xc]
- ldr r0, [r4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- mov r1, #0
- str r0, [r4, #0x5c]
- bl FUN_0200782C
- add r1, r4, #0
- add r1, #0x60
- strh r0, [r1]
- ldr r0, [r4, #0x5c]
- mov r1, #1
- bl FUN_0200782C
- add r1, r4, #0
- add r1, #0x62
- strh r0, [r1]
- ldr r0, [r4, #0x5c]
- mov r1, #0x29
- bl FUN_0200782C
- add r1, r4, #0
- add r1, #0x66
- strh r0, [r1]
- mov r0, #6
- str r0, [sp]
- add r0, r4, #0
- add r0, #0x10
- mov r1, #2
- mov r2, #0
- mov r3, #1
- bl MOD08_022183C0
- ldr r0, [r4]
- mov r1, #0
- bl MOD08_022124D8
- str r0, [r4, #0x58]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r4, #0x58]
- mov r1, #2
- bl FUN_0200C840
- ldr r0, [r4, #0x58]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r4, #0x58]
- mov r1, #1
- bl FUN_0200C6B0
- mov r0, #0xf
- str r0, [sp]
- mov r1, #0xa
- str r1, [sp, #4]
- mov r0, #7
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0x34
- mov r2, #0xc
- add r3, r1, #0
- bl MOD08_022181A8
- add r0, r4, #0
- mov r1, #1
- add r0, #0x64
- strh r1, [r0]
- ldr r0, [r4]
- mov r1, #0x1c
- mov r2, #0xf
- bl MOD08_02227994
- ldr r0, [r4]
- ldr r1, _02222414 ; =MOD08_0222229C
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-_02222414: .word MOD08_0222229C
-
- thumb_func_start MOD08_02222418
-MOD08_02222418: ; 0x02222418
- mov r2, #0x12
- ldrsh r2, [r0, r2]
- mov r3, #0x10
- ldrsh r0, [r0, r3]
- neg r2, r2
- lsl r2, r2, #0x10
- neg r0, r0
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- orr r0, r2
- mov r2, #3
- ldr r3, _02222434 ; =0x020CE1FC
- lsl r2, r2, #8
- bx r3
- .align 2, 0
-_02222434: .word 0x020CE1FC
-
- thumb_func_start MOD08_02222438
-MOD08_02222438: ; 0x02222438
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r5, r0, #0
- ldr r0, [r5, #0x18]
- bl MOD08_02218970
- str r0, [sp, #0xc]
- ldr r1, [sp, #0xc]
- add r0, r5, #0
- bl MOD08_02222418
- add r0, r5, #0
- add r0, #0x1c
- bl MOD08_02217ECC
- str r0, [sp, #8]
- mov r0, #0x14
- ldrsh r4, [r5, r0]
- mov r0, #0x16
- ldrsh r0, [r5, r0]
- cmp r4, r0
- bgt _022224D8
- ldr r1, [sp, #0xc]
- lsl r2, r4, #2
- add r1, r1, r2
- str r1, [sp]
-_0222246C:
- ldr r1, [sp]
- sub r0, r0, r4
- ldr r2, [r1]
- lsl r1, r2, #0x10
- asr r1, r1, #0x10
- str r1, [sp, #4]
- lsr r1, r2, #0x10
- lsl r1, r1, #0x10
- asr r7, r1, #0x10
- mov r1, #0x1e
- ldrsh r1, [r5, r1]
- mul r0, r1
- mov r1, #0x64
- bl _s32_div_f
- sub r0, r7, r0
- lsl r0, r0, #0x10
- asr r7, r0, #0x10
- mov r0, #0x1c
- ldrsh r1, [r5, r0]
- mov r0, #0x14
- ldrsh r0, [r5, r0]
- add r0, #0x28
- sub r0, r0, r4
- mul r0, r1
- mov r1, #0x64
- bl _s32_div_f
- ldr r1, [sp, #4]
- sub r0, r1, r0
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp, #4]
- sub r6, r4, #1
- bpl _022224B4
- add r6, #0xc0
-_022224B4:
- ldr r0, [sp, #4]
- lsl r1, r7, #0x10
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- lsr r1, r1, #0x10
- bl MOD08_02218998
- ldr r1, [sp, #0xc]
- lsl r2, r6, #2
- str r0, [r1, r2]
- ldr r0, [sp]
- add r4, r4, #1
- add r0, r0, #4
- str r0, [sp]
- mov r0, #0x16
- ldrsh r0, [r5, r0]
- cmp r4, r0
- ble _0222246C
-_022224D8:
- ldr r0, [sp, #8]
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022224E0
-MOD08_022224E0: ; 0x022224E0
- push {r4, r5, r6, lr}
- sub sp, #8
- add r4, r1, #0
- add r6, r0, #0
- ldr r0, [r4, #4]
- cmp r0, #4
- bhi _02222548
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_022224FA: ; jump table
- .short _02222504 - _022224FA - 2 ; case 0
- .short _02222536 - _022224FA - 2 ; case 1
- .short _0222255E - _022224FA - 2 ; case 2
- .short _022225AE - _022224FA - 2 ; case 3
- .short _022225CE - _022224FA - 2 ; case 4
-_02222504:
- add r0, r4, #0
- bl MOD08_02222438
- cmp r0, #0
- bne _02222548
- ldr r0, [r4, #4]
- mov r1, #0x1f
- add r0, r0, #1
- str r0, [r4, #4]
- ldr r0, [r4]
- mov r2, #0
- bl MOD08_02227A00
- mov r1, #0x1f
- mov r2, #0
- str r1, [sp]
- mov r0, #0x10
- add r4, #0x40
- str r0, [sp, #4]
- add r0, r4, #0
- add r3, r2, #0
- bl MOD08_022186D4
- add sp, #8
- pop {r4, r5, r6, pc}
-_02222536:
- add r0, r4, #0
- bl MOD08_02222438
- add r0, r4, #0
- add r0, #0x40
- bl MOD08_02218704
- cmp r0, #0
- bne _0222254A
-_02222548:
- b _02222650
-_0222254A:
- ldr r0, [r4, #4]
- add r0, r0, #1
- str r0, [r4, #4]
- ldr r0, [r4, #0x18]
- bl MOD08_02218984
- mov r0, #0
- add sp, #8
- str r0, [r4, #8]
- pop {r4, r5, r6, pc}
-_0222255E:
- ldr r0, [r4]
- bl MOD08_02212490
- mov r3, #0x10
- ldrsh r3, [r4, r3]
- mov r1, #2
- mov r2, #0
- neg r3, r3
- bl FUN_020179E0
- ldr r0, [r4]
- bl MOD08_02212490
- mov r3, #0x12
- ldrsh r3, [r4, r3]
- mov r1, #2
- mov r2, #3
- neg r3, r3
- bl FUN_020179E0
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- cmp r0, #8
- ble _02222650
- mov r1, #0
- str r1, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- add r0, r4, #0
- mov r2, #0x1f
- add r0, #0x40
- add r3, r2, #0
- bl MOD08_022186D4
- ldr r0, [r4, #4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, r6, pc}
-_022225AE:
- add r0, r4, #0
- add r0, #0x40
- bl MOD08_02218704
- cmp r0, #0
- beq _02222650
- ldr r0, [r4, #0xc]
- mov r1, #6
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, r6, pc}
-_022225CE:
- ldr r0, [r4, #0x18]
- bl MOD08_0221894C
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_02215588
- add r5, r0, #0
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_02215600
- add r1, r0, #0
- lsl r0, r5, #0x18
- lsl r1, r1, #0x18
- lsr r0, r0, #0x18
- lsr r1, r1, #0x18
- bl FUN_020178BC
- ldr r0, [r4]
- bl MOD08_02215574
- add r1, r0, #0
- lsl r1, r1, #0x18
- mov r0, #0
- lsr r1, r1, #0x18
- bl FUN_020178BC
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_02215588
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD08_02212014
- add r3, r0, #0
- lsl r0, r5, #0x18
- mov r1, #1
- lsr r0, r0, #0x18
- lsl r1, r1, #0xe
- mov r2, #0
- bl FUN_02017F18
- ldr r0, [r4]
- bl MOD08_02212490
- add r5, r0, #0
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_02215588
- add r1, r0, #0
- lsl r1, r1, #0x18
- add r0, r5, #0
- lsr r1, r1, #0x18
- bl FUN_02018744
- ldr r0, [r4]
- add r1, r6, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_02222650:
- add sp, #8
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_02222654
-MOD08_02222654: ; 0x02222654
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x20
- add r5, r0, #0
- bl MOD08_02212014
- mov r1, #0x68
- bl AllocFromHeap
- mov r1, #0
- mov r2, #0x68
- add r4, r0, #0
- bl memset
- ldr r1, _022227BC ; =MOD08_022224E0
- str r5, [r4]
- add r0, r5, #0
- add r2, r4, #0
- bl MOD08_02212400
- str r0, [sp, #0x14]
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- str r0, [r4, #0xc]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #0x10]
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #0x12]
- ldr r0, [r4, #0xc]
- mov r1, #0x29
- bl FUN_0200782C
- mov r1, #0x12
- ldrsh r2, [r4, r1]
- sub r0, r2, r0
- strh r0, [r4, #0x12]
- mov r0, #0x10
- ldrsh r0, [r4, r0]
- mov r2, #1
- sub r0, #0x28
- strh r0, [r4, #0x10]
- ldrsh r0, [r4, r1]
- mov r1, #6
- sub r0, #0x28
- strh r0, [r4, #0x12]
- ldr r0, [r4, #0xc]
- bl FUN_02007558
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02217C1C
- add r6, r0, #0
- mov r0, #0x12
- ldrsh r1, [r4, r0]
- sub r1, #8
- strh r1, [r4, #0x14]
- ldrsh r0, [r4, r0]
- add r0, #0x58
- strh r0, [r4, #0x16]
- mov r0, #0x14
- ldrsh r0, [r4, r0]
- cmp r0, #0
- bge _022226F0
- mov r0, #0
- strh r0, [r4, #0x14]
-_022226F0:
- mov r0, #0x16
- ldrsh r0, [r4, r0]
- cmp r0, #0xc0
- ble _022226FC
- mov r0, #0xc0
- strh r0, [r4, #0x16]
-_022226FC:
- add r0, r5, #0
- mov r1, #1
- bl MOD08_022155C4
- add r7, r0, #0
- ldr r0, [sp, #0x14]
- bl FUN_0201B6CC
- str r0, [sp, #0x18]
- ldrh r0, [r4, #0x10]
- ldrh r1, [r4, #0x12]
- bl MOD08_02218998
- str r0, [sp, #0x1c]
- add r0, r5, #0
- bl MOD08_02212014
- mov r1, #0x50
- str r1, [sp]
- ldr r1, [sp, #0x18]
- str r7, [sp, #4]
- add r1, r1, #1
- str r1, [sp, #8]
- ldr r1, [sp, #0x1c]
- ldr r2, _022227C0 ; =0x0000038E
- str r1, [sp, #0xc]
- str r0, [sp, #0x10]
- mov r0, #0x14
- mov r1, #0x16
- ldrsh r0, [r4, r0]
- ldrsh r1, [r4, r1]
- lsl r3, r6, #0xf
- lsl r0, r0, #0x18
- lsl r1, r1, #0x18
- lsr r0, r0, #0x18
- lsr r1, r1, #0x18
- bl MOD08_022188DC
- str r0, [r4, #0x18]
- mov r0, #0x28
- str r0, [sp]
- mov r0, #0x18
- str r0, [sp, #4]
- add r0, r4, #0
- mov r1, #0
- add r0, #0x1c
- mov r2, #0x50
- add r3, r1, #0
- bl MOD08_02217E80
- ldr r0, [r4, #0x24]
- add r1, r0, #0
- mul r1, r6
- str r1, [r4, #0x24]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02227468
- sub r0, r0, #3
- cmp r0, #1
- bhi _022227AE
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_02215588
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD08_02215574
- add r1, r0, #0
- lsl r0, r5, #0x18
- lsl r1, r1, #0x18
- lsr r0, r0, #0x18
- lsr r1, r1, #0x18
- bl FUN_020178BC
- ldr r0, [r4]
- bl MOD08_02215574
- add r1, r0, #0
- add r1, r1, #1
- lsl r1, r1, #0x18
- mov r0, #0
- lsr r1, r1, #0x18
- bl FUN_020178BC
-_022227AE:
- ldr r0, [sp, #0x14]
- add r1, r4, #0
- bl MOD08_022224E0
- add sp, #0x20
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022227BC: .word MOD08_022224E0
-_022227C0: .word 0x0000038E
-
- thumb_func_start MOD08_022227C4
-MOD08_022227C4: ; 0x022227C4
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- add r2, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #3
- bhi _02222874
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_022227DE: ; jump table
- .short _022227E6 - _022227DE - 2 ; case 0
- .short _0222280C - _022227DE - 2 ; case 1
- .short _0222281E - _022227DE - 2 ; case 2
- .short _02222862 - _022227DE - 2 ; case 3
-_022227E6:
- add r0, r4, #0
- add r0, #0x38
- bl MOD08_02218080
- ldr r2, [r4, #0x38]
- mov r1, #0x1f
- sub r1, r1, r2
- lsl r1, r1, #8
- orr r2, r1
- ldr r1, _02222880 ; =0x04000052
- cmp r0, #0
- strh r2, [r1]
- bne _02222874
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- mov r0, #0
- str r0, [r4, #0xc]
- b _02222874
-_0222280C:
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- cmp r0, #0x20
- ble _02222874
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02222874
-_0222281E:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02218170
- add r5, r0, #0
- add r0, r4, #0
- add r0, #0x14
- add r1, sp, #4
- add r2, sp, #0
- bl MOD08_0221825C
- ldr r0, [r4, #0x4c]
- cmp r0, #1
- bne _02222844
- ldr r1, [sp, #4]
- mov r0, #0
- bl _fsub
- str r0, [sp, #4]
-_02222844:
- ldr r0, [r4, #0x10]
- ldr r1, [sp, #4]
- ldr r2, [sp]
- bl FUN_0200C884
- cmp r5, #0
- bne _02222874
- ldr r0, [r4, #0x10]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02222874
-_02222862:
- ldr r0, [r4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #8
- pop {r3, r4, r5, pc}
-_02222874:
- ldr r0, [r4, #4]
- bl FUN_0200BC1C
- add sp, #8
- pop {r3, r4, r5, pc}
- nop
-_02222880: .word 0x04000052
-
- thumb_func_start MOD08_02222884
-MOD08_02222884: ; 0x02222884
- push {r4, r5, lr}
- sub sp, #0xc
- add r5, r1, #0
- add r2, r0, #0
- ldr r0, [r5, #4]
- cmp r0, #0
- beq _022228A0
- cmp r0, #1
- beq _02222928
- cmp r0, #2
- bne _0222289C
- b _022229B4
-_0222289C:
- add sp, #0xc
- pop {r4, r5, pc}
-_022228A0:
- add r0, r5, #0
- add r0, #0x14
- bl MOD08_022183F0
- mov r2, #0x38
- mov r3, #0x3a
- add r0, r5, #0
- ldrsh r2, [r5, r2]
- ldrsh r3, [r5, r3]
- ldr r1, [r5, #8]
- add r0, #0x14
- bl MOD08_02217CD0
- ldr r0, [r5, #0x10]
- cmp r0, #1
- bne _022228DA
- mov r3, #0x3a
- ldrsh r4, [r5, r3]
- ldr r3, [r5, #0x3c]
- mov r2, #0x38
- sub r3, r4, r3
- add r0, r5, #0
- lsl r3, r3, #0x10
- ldrsh r2, [r5, r2]
- ldr r1, [r5, #0xc]
- add r0, #0x14
- asr r3, r3, #0x10
- bl MOD08_02217C94
-_022228DA:
- ldr r0, [r5, #8]
- bl FUN_02007F20
- cmp r0, #0
- bne _022229C2
- mov r2, #0
- str r2, [sp]
- ldr r0, [r5, #8]
- mov r1, #0x10
- add r3, r2, #0
- bl FUN_02007E68
- ldr r0, [r5, #0x10]
- cmp r0, #1
- bne _0222291E
- ldr r0, [r5, #0xc]
- bl MOD08_02217C08
- mov r1, #1
- add r4, r1, #0
- lsl r4, r0
- ldr r0, [r5]
- bl MOD08_02215504
- mov r1, #0x10
- str r1, [sp]
- mov r3, #0
- lsl r2, r4, #0x10
- str r3, [sp, #4]
- mov r1, #4
- lsr r2, r2, #0x10
- str r3, [sp, #8]
- bl FUN_02003210
-_0222291E:
- ldr r0, [r5, #4]
- add sp, #0xc
- add r0, r0, #1
- str r0, [r5, #4]
- pop {r4, r5, pc}
-_02222928:
- add r0, r5, #0
- add r0, #0x14
- bl MOD08_022183F0
- mov r2, #0x38
- mov r3, #0x3a
- add r0, r5, #0
- ldrsh r2, [r5, r2]
- ldrsh r3, [r5, r3]
- ldr r1, [r5, #8]
- add r0, #0x14
- bl MOD08_02217CD0
- ldr r0, [r5, #0x10]
- cmp r0, #1
- bne _02222962
- mov r3, #0x3a
- ldrsh r4, [r5, r3]
- ldr r3, [r5, #0x3c]
- mov r2, #0x38
- sub r3, r4, r3
- add r0, r5, #0
- lsl r3, r3, #0x10
- ldrsh r2, [r5, r2]
- ldr r1, [r5, #0xc]
- add r0, #0x14
- asr r3, r3, #0x10
- bl MOD08_02217C94
-_02222962:
- ldr r0, [r5, #8]
- bl FUN_02007F20
- cmp r0, #0
- bne _022229C2
- mov r2, #0x38
- ldrsh r2, [r5, r2]
- ldr r0, [r5, #8]
- mov r1, #0
- bl FUN_02007558
- mov r2, #0x3a
- ldrsh r2, [r5, r2]
- ldr r0, [r5, #8]
- mov r1, #1
- bl FUN_02007558
- ldr r0, [r5, #0x10]
- cmp r0, #1
- bne _022229AA
- ldr r0, [r5, #8]
- mov r1, #6
- mov r2, #0
- bl FUN_02007558
- mov r2, #0x3a
- ldrsh r3, [r5, r2]
- ldr r2, [r5, #0x3c]
- mov r1, #0x38
- sub r2, r3, r2
- lsl r2, r2, #0x10
- ldrsh r1, [r5, r1]
- ldr r0, [r5, #0xc]
- asr r2, r2, #0x10
- bl FUN_0200C714
-_022229AA:
- ldr r0, [r5, #4]
- add sp, #0xc
- add r0, r0, #1
- str r0, [r5, #4]
- pop {r4, r5, pc}
-_022229B4:
- ldr r0, [r5]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r5, #0
- bl FreeToHeap
-_022229C2:
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022229C8
-MOD08_022229C8: ; 0x022229C8
- push {r3, r4, r5, lr}
- add r5, r0, #0
- bl MOD08_02212014
- mov r1, #0x50
- bl AllocFromHeap
- add r4, r0, #0
- mov r1, #0
- mov r2, #0x50
- bl memset
- str r5, [r4]
- add r0, r5, #0
- bl MOD08_02212504
- str r0, [r4, #4]
- add r0, r5, #0
- bl MOD08_02212004
- str r0, [r4, #0x4c]
- ldr r0, [r4]
- mov r1, #0
- bl MOD08_022124D8
- str r0, [r4, #0x10]
- mov r0, #8
- str r0, [sp]
- add r0, r4, #0
- mov r2, #0xa
- add r0, #0x14
- mov r1, #0xe
- add r3, r2, #0
- bl MOD08_02218120
- add r0, r4, #0
- add r0, #0x38
- mov r1, #0
- mov r2, #0x10
- mov r3, #8
- bl MOD08_02218030
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r4]
- mov r1, #0
- mov r2, #0x1f
- bl MOD08_02227994
- ldr r0, [r4, #0x10]
- mov r1, #2
- bl FUN_0200C840
- ldr r0, [r4, #0x4c]
- cmp r0, #1
- ldr r0, [r4, #0x10]
- bne _02222A48
- ldr r1, _02222A6C ; =0xBFB33333
- ldr r2, _02222A70 ; =0x3FB33333
- bl FUN_0200C884
- b _02222A50
-_02222A48:
- ldr r1, _02222A70 ; =0x3FB33333
- add r2, r1, #0
- bl FUN_0200C884
-_02222A50:
- ldr r0, [r4, #0x10]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200C6B0
- ldr r0, [r4]
- ldr r1, _02222A74 ; =MOD08_022227C4
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02222A6C: .word 0xBFB33333
-_02222A70: .word 0x3FB33333
-_02222A74: .word MOD08_022227C4
-
- thumb_func_start MOD08_02222A78
-MOD08_02222A78: ; 0x02222A78
- push {r4, r5, lr}
- sub sp, #0xc
- add r5, r0, #0
- bl MOD08_02212014
- mov r1, #0x40
- bl AllocFromHeap
- add r4, r0, #0
- mov r1, #0
- mov r2, #0x40
- bl memset
- str r5, [r4]
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- str r0, [r4, #8]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #0x38]
- ldr r0, [r4, #8]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #0x3a]
- ldr r0, [r4, #8]
- mov r1, #0x29
- bl FUN_0200782C
- str r0, [r4, #0x3c]
- mov r1, #4
- add r0, r4, #0
- str r1, [sp]
- add r0, #0x14
- mov r2, #0
- mov r3, #1
- bl MOD08_022183C0
- ldr r0, [r4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02217C1C
- mov r1, #0x14
- ldrsh r1, [r4, r1]
- mov r2, #0x10
- add r0, r1, r0
- mov r1, #0
- strh r0, [r4, #0x14]
- str r1, [sp]
- ldr r0, [r4, #8]
- add r3, r1, #0
- bl FUN_02007E68
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_022124D8
- str r0, [r4, #0xc]
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02227468
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02227468
- cmp r5, #2
- bne _02222B24
- cmp r0, #4
- beq _02222B2C
-_02222B24:
- cmp r5, #5
- bne _02222B5E
- cmp r0, #3
- bne _02222B5E
-_02222B2C:
- ldr r0, [r4, #0xc]
- bl MOD08_02217C08
- mov r1, #1
- add r5, r1, #0
- lsl r5, r0
- ldr r0, [r4]
- bl MOD08_02215504
- mov r3, #0
- lsl r2, r5, #0x10
- str r3, [sp]
- mov r1, #0x10
- str r1, [sp, #4]
- mov r1, #4
- lsr r2, r2, #0x10
- str r3, [sp, #8]
- bl FUN_02003210
- mov r2, #1
- str r2, [r4, #0x10]
- ldr r0, [r4, #8]
- mov r1, #6
- bl FUN_02007558
-_02222B5E:
- ldr r0, [r4]
- ldr r1, _02222B6C ; =MOD08_02222884
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-_02222B6C: .word MOD08_02222884
-
- thumb_func_start MOD08_02222B70
-MOD08_02222B70: ; 0x02222B70
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r0, #0
- ldr r0, [r4, #8]
- mov r5, #0
- cmp r0, #3
- bhi _02222BEC
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02222B8A: ; jump table
- .short _02222B92 - _02222B8A - 2 ; case 0
- .short _02222BAA - _02222B8A - 2 ; case 1
- .short _02222BD0 - _02222B8A - 2 ; case 2
- .short _02222BEA - _02222B8A - 2 ; case 3
-_02222B92:
- add r0, r4, #0
- add r0, #0x1c
- bl MOD08_02218704
- cmp r0, #1
- bne _02222BEC
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- mov r0, #0x20
- str r0, [r4, #0x44]
- b _02222BEC
-_02222BAA:
- ldr r0, [r4, #0x44]
- sub r0, r0, #1
- str r0, [r4, #0x44]
- bpl _02222BEC
- ldr r0, [r4, #8]
- mov r1, #8
- add r0, r0, #1
- str r0, [r4, #8]
- mov r0, #0x10
- str r0, [sp]
- mov r0, #0x18
- add r4, #0x1c
- str r0, [sp, #4]
- add r0, r4, #0
- add r2, r5, #0
- add r3, r1, #0
- bl MOD08_022186D4
- b _02222BEC
-_02222BD0:
- add r0, r4, #0
- add r0, #0x1c
- bl MOD08_02218704
- cmp r0, #1
- bne _02222BEC
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- ldr r0, [r4, #0x14]
- bl MOD08_0221894C
- b _02222BEC
-_02222BEA:
- mov r5, #1
-_02222BEC:
- add r0, r5, #0
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02222BF4
-MOD08_02222BF4: ; 0x02222BF4
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r6, r0, #0
- ldr r0, [r4, #4]
- cmp r0, #0
- beq _02222C0A
- cmp r0, #1
- beq _02222C2C
- cmp r0, #2
- beq _02222C3E
- pop {r4, r5, r6, pc}
-_02222C0A:
- ldr r0, [r4, #0x48]
- bl FUN_0200C658
- cmp r0, #1
- bne _02222C1E
- ldr r0, [r4, #0x10]
- mov r1, #6
- mov r2, #1
- bl FUN_02007558
-_02222C1E:
- add r0, r4, #0
- bl MOD08_02222B70
- ldr r0, [r4, #4]
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, r6, pc}
-_02222C2C:
- add r0, r4, #0
- bl MOD08_02222B70
- cmp r0, #0
- beq _02222CC4
- ldr r0, [r4, #4]
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, r6, pc}
-_02222C3E:
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_02215588
- add r5, r0, #0
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_02215600
- add r1, r0, #0
- lsl r0, r5, #0x18
- lsl r1, r1, #0x18
- lsr r0, r0, #0x18
- lsr r1, r1, #0x18
- bl FUN_020178BC
- ldr r0, [r4]
- bl MOD08_02215574
- add r1, r0, #0
- lsl r1, r1, #0x18
- mov r0, #0
- lsr r1, r1, #0x18
- bl FUN_020178BC
- ldr r0, [r4, #0x10]
- mov r1, #6
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_02215588
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD08_02212014
- add r3, r0, #0
- lsl r0, r5, #0x18
- mov r1, #1
- lsr r0, r0, #0x18
- lsl r1, r1, #0xe
- mov r2, #0
- bl FUN_02017F18
- ldr r0, [r4]
- bl MOD08_02212490
- add r5, r0, #0
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_02215588
- add r1, r0, #0
- lsl r1, r1, #0x18
- add r0, r5, #0
- lsr r1, r1, #0x18
- bl FUN_02018744
- ldr r0, [r4]
- add r1, r6, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_02222CC4:
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02222CC8
-MOD08_02222CC8: ; 0x02222CC8
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- mov r1, #0x4c
- add r7, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r7, [r4]
- add r0, r7, #0
- bl MOD08_02215504
- str r0, [r4, #0x18]
- ldr r0, [r4]
- mov r1, #0
- mov r2, #0x10
- bl MOD08_02227A00
- mov r2, #8
- str r2, [sp]
- mov r0, #0x18
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x1c
- mov r1, #0
- mov r3, #0x10
- bl MOD08_022186D4
- ldr r0, [r4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- mov r1, #0
- str r0, [r4, #0x10]
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r6, r0, #0x10
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r5, r0, #0x10
- ldr r0, [r4, #0x10]
- mov r1, #0x29
- bl FUN_0200782C
- sub r0, r5, r0
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- sub r0, #0x28
- lsl r0, r0, #0x10
- asr r5, r0, #0x10
- ldr r0, [r4]
- mov r1, #0
- bl MOD08_022124D8
- str r0, [r4, #0x48]
- ldr r0, [r4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02227468
- cmp r0, #5
- beq _02222D58
- cmp r0, #2
- bne _02222D6A
-_02222D58:
- ldr r0, [r4, #0x48]
- mov r1, #1
- bl FUN_0200C644
- ldr r0, [r4, #0x48]
- mov r1, #2
- bl FUN_0200C6B0
- b _02222DA6
-_02222D6A:
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_02215588
- str r0, [sp, #0x14]
- ldr r0, [r4]
- bl MOD08_02215574
- add r1, r0, #0
- ldr r0, [sp, #0x14]
- lsl r1, r1, #0x18
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- lsr r1, r1, #0x18
- bl FUN_020178BC
- ldr r0, [r4]
- bl MOD08_02215574
- add r1, r0, #0
- add r1, r1, #1
- lsl r1, r1, #0x18
- mov r0, #0
- lsr r1, r1, #0x18
- bl FUN_020178BC
- ldr r0, [r4, #0x48]
- mov r1, #0
- bl FUN_0200C644
-_02222DA6:
- add r0, r7, #0
- mov r1, #1
- bl MOD08_022155C4
- neg r1, r5
- lsl r1, r1, #0x10
- sub r6, #0x28
- str r0, [sp, #0x18]
- lsl r0, r6, #0x10
- asr r0, r0, #0x10
- neg r0, r0
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- lsr r1, r1, #0x10
- bl MOD08_02218998
- add r6, r0, #0
- add r0, r7, #0
- bl MOD08_02212014
- mov r1, #0x64
- str r1, [sp]
- ldr r1, [sp, #0x18]
- mov r3, #5
- str r1, [sp, #4]
- mov r1, #0
- str r1, [sp, #8]
- str r6, [sp, #0xc]
- str r0, [sp, #0x10]
- lsl r0, r5, #0x18
- add r5, #0x50
- lsl r1, r5, #0x18
- ldr r2, _02222E14 ; =0x0000038E
- lsr r0, r0, #0x18
- lsr r1, r1, #0x18
- lsl r3, r3, #0xc
- bl MOD08_022188DC
- mov r2, #1
- str r0, [r4, #0x14]
- mov r1, #0
- str r1, [sp]
- ldr r0, [r4, #0x18]
- lsl r2, r2, #8
- mov r3, #8
- bl FUN_02003A64
- ldr r0, [r4]
- ldr r1, _02222E18 ; =MOD08_02222BF4
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- nop
-_02222E14: .word 0x0000038E
-_02222E18: .word MOD08_02222BF4
-
- thumb_func_start MOD08_02222E1C
-MOD08_02222E1C: ; 0x02222E1C
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0xc]
- cmp r0, #3
- bhi _02222F1E
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02222E36: ; jump table
- .short _02222E3E - _02222E36 - 2 ; case 0
- .short _02222E8E - _02222E36 - 2 ; case 1
- .short _02222ECC - _02222E36 - 2 ; case 2
- .short _02222F06 - _02222E36 - 2 ; case 3
-_02222E3E:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02218170
- cmp r0, #1
- bne _02222E70
- add r0, r4, #0
- add r0, #0x14
- add r1, sp, #8
- add r2, sp, #4
- bl MOD08_0221825C
- ldr r0, [r4, #0x54]
- bl _fflt
- add r1, r0, #0
- ldr r0, [sp, #8]
- bl _fmul
- add r1, r0, #0
- ldr r0, [r4, #0x10]
- ldr r2, [sp, #4]
- bl FUN_0200C884
- b _02222F1E
-_02222E70:
- ldr r0, [r4, #0xc]
- mov r1, #0xa
- add r0, r0, #1
- str r0, [r4, #0xc]
- mov r0, #5
- str r0, [r4, #0x4c]
- mov r0, #8
- str r0, [sp]
- add r0, r4, #0
- add r0, #0x14
- add r2, r1, #0
- mov r3, #1
- bl MOD08_02218120
- b _02222F1E
-_02222E8E:
- add r0, r4, #0
- add r0, #0x38
- bl MOD08_02218058
- ldr r1, [r4, #0x38]
- add r5, r0, #0
- lsl r1, r1, #0x10
- ldr r0, [r4, #0x10]
- lsr r1, r1, #0x10
- bl FUN_0200C898
- cmp r5, #0
- bne _02222F1E
- ldr r0, [r4, #0x4c]
- cmp r0, #0
- ble _02222EC4
- sub r0, r0, #1
- str r0, [r4, #0x4c]
- add r0, r4, #0
- ldr r1, [r4, #0x38]
- ldr r2, [r4, #0x50]
- add r0, #0x38
- mov r3, #4
- str r1, [r4, #0x50]
- bl MOD08_02218008
- b _02222F1E
-_02222EC4:
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02222F1E
-_02222ECC:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02218170
- cmp r0, #1
- bne _02222EFE
- add r0, r4, #0
- add r0, #0x14
- add r1, sp, #8
- add r2, sp, #4
- bl MOD08_0221825C
- ldr r0, [r4, #0x54]
- bl _fflt
- add r1, r0, #0
- ldr r0, [sp, #8]
- bl _fmul
- add r1, r0, #0
- ldr r0, [r4, #0x10]
- ldr r2, [sp, #4]
- bl FUN_0200C884
- b _02222F1E
-_02222EFE:
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02222F1E
-_02222F06:
- ldr r0, [r4, #0x10]
- bl FUN_0200C3DC
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #0xc
- pop {r4, r5, pc}
-_02222F1E:
- ldr r0, [r4, #8]
- bl FUN_0200BC1C
- add sp, #0xc
- pop {r4, r5, pc}
-
- thumb_func_start MOD08_02222F28
-MOD08_02222F28: ; 0x02222F28
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r6, r1, #0
- mov r1, #0x58
- add r5, r0, #0
- add r7, r2, #0
- str r3, [sp, #4]
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4]
- str r6, [r4, #4]
- str r7, [r4, #8]
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02217C1C
- add r7, r0, #0
- ldr r0, [r4]
- mov r1, #0
- bl MOD08_02215680
- cmp r0, #1
- bne _02222F68
- mov r0, #0
- mvn r0, r0
- str r0, [r4, #0x54]
- neg r6, r7
- b _02222F6E
-_02222F68:
- mov r0, #1
- str r0, [r4, #0x54]
- add r6, r7, #0
-_02222F6E:
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- mov r2, #0
- bl MOD08_02217B98
- str r0, [sp, #8]
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- mov r2, #1
- bl MOD08_02217B98
- str r0, [sp, #0xc]
- ldr r0, [sp, #4]
- mov r1, #2
- str r0, [r4, #0x10]
- bl FUN_0200C840
- mov r1, #0xfe
- lsl r1, r1, #0x16
- ldr r0, [r4, #0x10]
- add r2, r1, #0
- bl FUN_0200C884
- ldr r0, [r4, #0x10]
- ldr r1, [sp, #8]
- ldr r2, [sp, #0xc]
- bl FUN_0200C714
- mov r1, #0x28
- mul r1, r7
- lsl r1, r1, #0x10
- ldr r0, [r4, #0x10]
- asr r1, r1, #0x10
- mov r2, #0
- bl FUN_0200C82C
- ldr r0, [r4, #0x10]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200C6B0
- mov r1, #0xb
- mvn r1, r1
- mul r1, r6
- lsl r1, r1, #0x10
- ldr r0, [r4, #0x10]
- asr r1, r1, #0x10
- mov r2, #0xc
- bl FUN_0200C8DC
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- bl MOD08_02227470
- cmp r0, #4
- ldr r0, [r4, #0x10]
- bne _02223000
- mov r1, #1
- bl FUN_0200C5C0
- b _02223006
-_02223000:
- mov r1, #0
- bl FUN_0200C5C0
-_02223006:
- mov r0, #8
- str r0, [sp]
- add r0, r4, #0
- mov r2, #0xa
- add r0, #0x14
- mov r1, #1
- add r3, r2, #0
- bl MOD08_02218120
- cmp r6, #0
- blt _0222302E
- add r0, r4, #0
- ldr r1, _02223050 ; =0x0000FF48
- ldr r2, _02223054 ; =0x0000E38D
- add r0, #0x38
- mov r3, #4
- bl MOD08_02218008
- ldr r0, _02223050 ; =0x0000FF48
- b _0222303E
-_0222302E:
- add r0, r4, #0
- ldr r2, _02223058 ; =0x00001C71
- add r0, #0x38
- mov r1, #0
- mov r3, #4
- bl MOD08_02218008
- mov r0, #0
-_0222303E:
- str r0, [r4, #0x50]
- ldr r0, [r4]
- ldr r1, _0222305C ; =MOD08_02222E1C
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02223050: .word 0x0000FF48
-_02223054: .word 0x0000E38D
-_02223058: .word 0x00001C71
-_0222305C: .word MOD08_02222E1C
-
- thumb_func_start MOD08_02223060
-MOD08_02223060: ; 0x02223060
- push {r3, r4, r5, r6, lr}
- sub sp, #4
- add r5, r0, #0
- str r1, [r5]
- add r6, r3, #0
- mov r3, #8
- mov r1, #0xa
- add r4, r2, #0
- add r0, r5, #4
- add r2, r1, #0
- str r3, [sp]
- bl MOD08_02218120
- mov r0, #3
- str r0, [r5, #0x2c]
- mov r0, #8
- str r0, [r5, #0x30]
- mov r0, #0xa
- str r0, [r5, #0x34]
- ldr r0, [sp, #0x18]
- add r1, r4, #0
- str r0, [r5, #0x28]
- ldr r0, [r5]
- add r2, r6, #0
- bl FUN_0200C714
- ldr r0, [r5]
- add r1, r4, #0
- add r2, r6, #0
- bl FUN_0200C714
- ldr r0, [r5]
- mov r1, #2
- bl FUN_0200C840
- ldr r0, [r5]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r5]
- mov r1, #1
- bl FUN_0200C6B0
- ldr r0, [sp, #0x18]
- cmp r0, #0
- beq _022230C8
- mov r2, #0xfe
- ldr r0, [r5]
- ldr r1, _022230D4 ; =0xBF800000
- lsl r2, r2, #0x16
- bl FUN_0200C884
-_022230C8:
- ldr r0, [r5]
- mov r1, #0
- bl FUN_0200C644
- add sp, #4
- pop {r3, r4, r5, r6, pc}
- .align 2, 0
-_022230D4: .word 0xBF800000
-
- thumb_func_start MOD08_022230D8
-MOD08_022230D8: ; 0x022230D8
- ldr r3, _022230E0 ; =FUN_0200C3DC
- ldr r0, [r0]
- bx r3
- nop
-_022230E0: .word FUN_0200C3DC
-
- thumb_func_start MOD08_022230E4
-MOD08_022230E4: ; 0x022230E4
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4]
- mov r1, #1
- bl FUN_0200C644
- ldr r0, [r4]
- mov r1, #1
- bl FUN_0200C5E0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022230FC
-MOD08_022230FC: ; 0x022230FC
- push {r3, r4, lr}
- sub sp, #0xc
- add r4, r0, #0
- add r0, r4, #4
- bl MOD08_02218170
- cmp r0, #1
- bne _02223140
- add r0, r4, #4
- add r1, sp, #8
- add r2, sp, #4
- bl MOD08_0221825C
- ldr r0, [r4, #0x28]
- cmp r0, #0
- beq _02223132
- ldr r1, [sp, #8]
- mov r0, #0
- bl _fsub
- add r1, r0, #0
- mov r2, #0xfe
- ldr r0, [r4]
- lsl r2, r2, #0x16
- bl FUN_0200C884
- b _02223172
-_02223132:
- mov r2, #0xfe
- ldr r0, [r4]
- ldr r1, [sp, #8]
- lsl r2, r2, #0x16
- bl FUN_0200C884
- b _02223172
-_02223140:
- ldr r0, [r4, #0x2c]
- cmp r0, #0
- ble _0222316C
- sub r0, r0, #1
- str r0, [r4, #0x2c]
- mov r0, #8
- str r0, [sp]
- ldr r1, [r4, #0x30]
- ldr r3, [r4, #0x34]
- lsl r1, r1, #0x10
- lsl r3, r3, #0x10
- add r0, r4, #4
- asr r1, r1, #0x10
- mov r2, #0xa
- asr r3, r3, #0x10
- bl MOD08_02218120
- ldr r1, [r4, #0x30]
- ldr r0, [r4, #0x34]
- str r0, [r4, #0x30]
- str r1, [r4, #0x34]
- b _02223172
-_0222316C:
- add sp, #0xc
- mov r0, #0
- pop {r3, r4, pc}
-_02223172:
- mov r0, #1
- add sp, #0xc
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_02223178
-MOD08_02223178: ; 0x02223178
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r7, r0, #0
- ldr r0, [r4, #0xc]
- cmp r0, #3
- bhi _02223244
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02223190: ; jump table
- .short _02223198 - _02223190 - 2 ; case 0
- .short _022231CA - _02223190 - 2 ; case 1
- .short _022231E8 - _02223190 - 2 ; case 2
- .short _02223208 - _02223190 - 2 ; case 3
-_02223198:
- ldr r0, [r4, #0x10]
- cmp r0, #4
- blt _022231C2
- mov r0, #0
- str r0, [r4, #0x10]
- ldr r1, [r4, #0x14]
- add r2, r4, #0
- mov r0, #0x38
- add r2, #0x44
- mul r0, r1
- add r0, r2, r0
- bl MOD08_022230E4
- ldr r0, [r4, #0x14]
- add r0, r0, #1
- str r0, [r4, #0x14]
- cmp r0, #4
- blt _022231C2
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
-_022231C2:
- ldr r0, [r4, #0x10]
- add r0, r0, #1
- str r0, [r4, #0x10]
- b _02223244
-_022231CA:
- mov r1, #0x1c
- mov r2, #0x1e
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r3, [r4, #0x18]
- add r0, #0x20
- bl MOD08_02218454
- cmp r0, #0
- bne _02223244
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02223244
-_022231E8:
- add r5, r4, #0
- mov r6, #0
- add r5, #0x44
-_022231EE:
- add r0, r5, #0
- bl MOD08_022230FC
- add r6, r6, #1
- add r5, #0x38
- cmp r6, #4
- blt _022231EE
- cmp r0, #0
- bne _02223244
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02223244
-_02223208:
- mov r2, #0x1c
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x18]
- mov r1, #0
- bl FUN_02007558
- mov r2, #0x1e
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x18]
- mov r1, #1
- bl FUN_02007558
- add r5, r4, #0
- mov r6, #0
- add r5, #0x44
-_02223226:
- add r0, r5, #0
- bl MOD08_022230D8
- add r6, r6, #1
- add r5, #0x38
- cmp r6, #4
- blt _02223226
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, r6, r7, pc}
-_02223244:
- ldr r0, [r4, #8]
- bl FUN_0200BC1C
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_0222324C
-MOD08_0222324C: ; 0x0222324C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x48
- str r1, [sp, #4]
- mov r1, #0x4a
- lsl r1, r1, #2
- add r4, r0, #0
- str r2, [sp, #8]
- str r3, [sp, #0xc]
- bl MOD08_02228064
- add r7, r0, #0
- ldr r0, [sp, #4]
- str r4, [r7]
- str r0, [r7, #4]
- ldr r0, [sp, #8]
- str r0, [r7, #8]
- add r0, r4, #0
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r7]
- bl MOD08_022154D4
- str r0, [r7, #0x18]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r7, #0x1c]
- ldr r0, [r7, #0x18]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r7, #0x1e]
- add r0, r7, #0
- mov r3, #1
- add r0, #0x20
- mov r1, #4
- mov r2, #0
- str r3, [sp]
- bl MOD08_022183C0
- mov r0, #0x1e
- ldrsh r4, [r7, r0]
- ldr r1, [r7]
- add r0, sp, #0x14
- add r4, #0x10
- mov r5, #0
- bl MOD08_02215474
- add r0, r5, #0
- add r6, r7, #0
- str r0, [sp, #0x10]
- add r6, #0x44
-_022232B6:
- ldr r0, [sp, #0x10]
- cmp r0, #0
- bne _022232D0
- str r5, [sp]
- mov r2, #0x1c
- lsl r3, r4, #0x10
- ldrsh r2, [r7, r2]
- ldr r1, [sp, #0xc]
- add r0, r6, #0
- asr r3, r3, #0x10
- bl MOD08_02223060
- b _022232EC
-_022232D0:
- ldr r0, [sp, #4]
- ldr r1, [sp, #8]
- add r2, sp, #0x14
- bl FUN_0200C154
- lsl r3, r4, #0x10
- add r1, r0, #0
- str r5, [sp]
- mov r2, #0x1c
- ldrsh r2, [r7, r2]
- add r0, r6, #0
- asr r3, r3, #0x10
- bl MOD08_02223060
-_022232EC:
- mov r0, #1
- eor r5, r0
- ldr r0, [sp, #0x10]
- sub r4, #0xa
- add r0, r0, #1
- add r6, #0x38
- str r0, [sp, #0x10]
- cmp r0, #4
- blt _022232B6
- ldr r0, [r7]
- ldr r1, _0222330C ; =MOD08_02223178
- add r2, r7, #0
- bl MOD08_02212400
- add sp, #0x48
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0222330C: .word MOD08_02223178
-
- thumb_func_start MOD08_02223310
-MOD08_02223310: ; 0x02223310
- push {r3, r4, r5, lr}
- sub sp, #0x10
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0xc]
- cmp r0, #6
- bls _02223320
- b _022234D2
-_02223320:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0222332C: ; jump table
- .short _0222333A - _0222332C - 2 ; case 0
- .short _0222337C - _0222332C - 2 ; case 1
- .short _022233DC - _0222332C - 2 ; case 2
- .short _0222341C - _0222332C - 2 ; case 3
- .short _0222343C - _0222332C - 2 ; case 4
- .short _0222347A - _0222332C - 2 ; case 5
- .short _022234BA - _0222332C - 2 ; case 6
-_0222333A:
- add r0, r4, #0
- add r0, #0x18
- bl MOD08_02217ECC
- cmp r0, #0
- beq _0222335C
- mov r2, #0x14
- mov r3, #0x16
- add r0, r4, #0
- ldrsh r2, [r4, r2]
- ldrsh r3, [r4, r3]
- ldr r1, [r4, #0x10]
- add r0, #0x18
- bl MOD08_02217CD0
- add sp, #0x10
- pop {r3, r4, r5, pc}
-_0222335C:
- mov r2, #0
- str r2, [sp]
- mov r0, #2
- str r0, [sp, #4]
- mov r1, #0x18
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- add r0, #0x18
- add r3, r2, #0
- bl MOD08_02217E80
- ldr r0, [r4, #0xc]
- add sp, #0x10
- add r0, r0, #1
- str r0, [r4, #0xc]
- pop {r3, r4, r5, pc}
-_0222337C:
- add r0, r4, #0
- add r0, #0x18
- bl MOD08_02217ECC
- cmp r0, #0
- beq _0222339E
- mov r2, #0x14
- mov r3, #0x16
- add r0, r4, #0
- ldrsh r2, [r4, r2]
- ldrsh r3, [r4, r3]
- ldr r1, [r4, #0x10]
- add r0, #0x18
- bl MOD08_02217CD0
- add sp, #0x10
- pop {r3, r4, r5, pc}
-_0222339E:
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #0
- bl FUN_02007558
- mov r2, #0x16
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_02007558
- mov r1, #0
- str r1, [sp]
- mov r0, #4
- str r0, [sp, #4]
- ldr r2, [r4, #0x3c]
- add r0, r4, #0
- lsl r2, r2, #5
- neg r2, r2
- lsl r2, r2, #0x10
- add r0, #0x18
- asr r2, r2, #0x10
- add r3, r1, #0
- bl MOD08_02217E80
- ldr r0, [r4, #0xc]
- add sp, #0x10
- add r0, r0, #1
- str r0, [r4, #0xc]
- pop {r3, r4, r5, pc}
-_022233DC:
- add r0, r4, #0
- ldr r2, [r4, #0x48]
- add r0, #0x4c
- add r1, #0x70
- bl MOD08_02217FE4
- cmp r0, #0
- bne _022234D2
- mov r0, #0x46
- ldrsh r0, [r4, r0]
- add r1, r4, #0
- mov r2, #0x44
- str r0, [sp]
- mov r0, #0x16
- ldrsh r0, [r4, r0]
- mov r3, #0x14
- add r1, #0x70
- str r0, [sp, #4]
- mov r0, #0xa
- str r0, [sp, #8]
- ldr r0, _022234DC ; =0xFFFE0000
- str r0, [sp, #0xc]
- add r0, r4, #0
- ldrsh r2, [r4, r2]
- ldrsh r3, [r4, r3]
- add r0, #0x4c
- bl MOD08_02217F50
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _022234D2
-_0222341C:
- add r0, r4, #0
- ldr r2, [r4, #0x48]
- add r0, #0x4c
- add r1, #0x70
- bl MOD08_02217FE4
- cmp r0, #0
- bne _022234D2
- ldr r0, [r4, #0x48]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _022234D2
-_0222343C:
- add r0, r4, #0
- add r0, #0x18
- bl MOD08_02217ECC
- cmp r0, #0
- beq _0222345C
- mov r2, #0x14
- mov r3, #0x16
- add r0, r4, #0
- ldrsh r2, [r4, r2]
- ldrsh r3, [r4, r3]
- ldr r1, [r4, #0x10]
- add r0, #0x18
- bl MOD08_02217CD0
- b _022234D2
-_0222345C:
- mov r2, #0
- str r2, [sp]
- mov r0, #4
- str r0, [sp, #4]
- mov r1, #0x18
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- add r0, #0x18
- add r3, r2, #0
- bl MOD08_02217E80
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _022234D2
-_0222347A:
- add r0, r4, #0
- add r0, #0x18
- bl MOD08_02217ECC
- cmp r0, #0
- beq _0222349A
- mov r2, #0x14
- mov r3, #0x16
- add r0, r4, #0
- ldrsh r2, [r4, r2]
- ldrsh r3, [r4, r3]
- ldr r1, [r4, #0x10]
- add r0, #0x18
- bl MOD08_02217CD0
- b _022234D2
-_0222349A:
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #0
- bl FUN_02007558
- mov r2, #0x16
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_02007558
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _022234D2
-_022234BA:
- ldr r0, [r4, #0x48]
- bl FUN_0200C3DC
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #0x10
- pop {r3, r4, r5, pc}
-_022234D2:
- ldr r0, [r4, #8]
- bl FUN_0200BC1C
- add sp, #0x10
- pop {r3, r4, r5, pc}
- .align 2, 0
-_022234DC: .word 0xFFFE0000
-
- thumb_func_start MOD08_022234E0
-MOD08_022234E0: ; 0x022234E0
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r7, r1, #0
- mov r1, #0x94
- add r5, r0, #0
- str r2, [sp, #0x10]
- add r6, r3, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4]
- ldr r0, [sp, #0x10]
- str r7, [r4, #4]
- str r0, [r4, #8]
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02217C1C
- str r0, [r4, #0x3c]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- str r0, [r4, #0x10]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #0x14]
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #0x16]
- mov r1, #0
- str r1, [sp]
- mov r0, #4
- str r0, [sp, #4]
- ldr r2, [r4, #0x3c]
- add r0, r4, #0
- lsl r2, r2, #4
- neg r2, r2
- lsl r2, r2, #0x10
- add r0, #0x18
- asr r2, r2, #0x10
- add r3, r1, #0
- bl MOD08_02217E80
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- mov r1, #0
- str r0, [r4, #0x40]
- bl FUN_0200782C
- add r1, r4, #0
- add r1, #0x44
- strh r0, [r1]
- ldr r0, [r4, #0x40]
- mov r1, #1
- bl FUN_0200782C
- add r1, r4, #0
- add r1, #0x46
- strh r0, [r1]
- add r0, r6, #0
- mov r1, #1
- str r6, [r4, #0x48]
- bl FUN_0200C5E0
- ldr r0, [r4, #0x48]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r4, #0x48]
- mov r1, #1
- bl FUN_0200C6B0
- mov r0, #0x16
- ldrsh r0, [r4, r0]
- add r1, r4, #0
- mov r2, #0x14
- str r0, [sp]
- mov r0, #0x46
- ldrsh r0, [r4, r0]
- mov r3, #0x44
- add r1, #0x70
- str r0, [sp, #4]
- mov r0, #0xa
- str r0, [sp, #8]
- mov r0, #2
- lsl r0, r0, #0x10
- str r0, [sp, #0xc]
- add r0, r4, #0
- ldrsh r2, [r4, r2]
- ldrsh r3, [r4, r3]
- add r0, #0x4c
- bl MOD08_02217F50
- ldr r0, [r4]
- ldr r1, _022235C8 ; =MOD08_02223310
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- nop
-_022235C8: .word MOD08_02223310
-
- thumb_func_start MOD08_022235CC
-MOD08_022235CC: ; 0x022235CC
- push {r4, lr}
- sub sp, #8
- add r4, r1, #0
- add r2, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #3
- bhi _02223676
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_022235E6: ; jump table
- .short _022235EE - _022235E6 - 2 ; case 0
- .short _0222361A - _022235E6 - 2 ; case 1
- .short _0222363E - _022235E6 - 2 ; case 2
- .short _02223664 - _022235E6 - 2 ; case 3
-_022235EE:
- mov r2, #0x1a
- ldrsh r3, [r4, r2]
- mov r2, #0x68
- ldrsh r2, [r4, r2]
- mov r1, #0x18
- ldrsh r1, [r4, r1]
- sub r2, r3, r2
- add r0, r4, #0
- lsl r2, r2, #0x10
- ldr r3, [r4, #0x14]
- add r0, #0x1c
- asr r2, r2, #0x10
- bl MOD08_02217E30
- cmp r0, #0
- bne _02223676
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- mov r0, #0x10
- str r0, [r4, #0xc]
- b _02223676
-_0222361A:
- ldr r0, [r4, #0xc]
- sub r0, r0, #1
- str r0, [r4, #0xc]
- bpl _02223676
- ldr r0, [r4, #8]
- mov r2, #0x10
- add r0, r0, #1
- str r0, [r4, #8]
- mov r1, #0
- str r1, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x40
- add r3, r2, #0
- bl MOD08_022186D4
- b _02223676
-_0222363E:
- add r0, r4, #0
- add r0, #0x40
- bl MOD08_02218704
- cmp r0, #0
- beq _02223676
- ldr r0, [r4, #0x14]
- mov r1, #1
- bl FUN_0200C644
- ldr r0, [r4, #0x10]
- mov r1, #6
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02223676
-_02223664:
- ldr r0, [r4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #8
- pop {r4, pc}
-_02223676:
- ldr r0, [r4, #4]
- bl FUN_0200BC1C
- add sp, #8
- pop {r4, pc}
-
- thumb_func_start MOD08_02223680
-MOD08_02223680: ; 0x02223680
- push {r4, r5, r6, lr}
- sub sp, #8
- mov r1, #0x6c
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4]
- add r0, r5, #0
- bl MOD08_02212504
- str r0, [r4, #4]
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02217C1C
- add r6, r0, #0
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- str r0, [r4, #0x10]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #0x18]
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #0x1a]
- ldr r0, [r4, #0x10]
- mov r1, #0x29
- bl FUN_0200782C
- add r1, r4, #0
- add r1, #0x68
- strh r0, [r1]
- mov r0, #0x1a
- ldrsh r0, [r4, r0]
- mov r1, #0
- add r0, #8
- strh r0, [r4, #0x1a]
- ldr r0, [r4]
- bl MOD08_022124D8
- str r0, [r4, #0x14]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r4, #0x10]
- mov r1, #6
- mov r2, #1
- bl FUN_02007558
- add r0, r4, #0
- add r0, #0x1c
- mov r1, #2
- mov r2, #0x10
- bl MOD08_02218654
- ldr r0, [r4]
- mov r1, #0x10
- mov r2, #0
- bl MOD08_02227994
- mov r1, #0x10
- str r1, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- add r0, r4, #0
- mov r2, #0
- add r0, #0x40
- add r3, r2, #0
- bl MOD08_022186D4
- ldr r0, [r4, #0x28]
- add r2, r4, #0
- add r1, r0, #0
- mul r1, r6
- str r1, [r4, #0x28]
- ldr r0, [r4]
- ldr r1, _02223740 ; =MOD08_022235CC
- bl MOD08_02212400
- ldr r0, [r4, #4]
- bl FUN_0200BC1C
- add sp, #8
- pop {r4, r5, r6, pc}
- .align 2, 0
-_02223740: .word MOD08_022235CC
-
- thumb_func_start MOD08_02223744
-MOD08_02223744: ; 0x02223744
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5, #0x38]
- mov r4, #0
- cmp r0, #0
- beq _0222375A
- cmp r0, #1
- beq _0222378E
- cmp r0, #2
- beq _022237BA
- b _022237BC
-_0222375A:
- add r0, r5, #0
- add r0, #0x14
- bl MOD08_02218170
- cmp r0, #0
- beq _02223774
- mov r2, #0x16
- ldrsh r2, [r5, r2]
- ldr r0, [r5, #0x10]
- mov r1, #0xd
- bl FUN_02007558
- b _022237BC
-_02223774:
- ldr r0, [r5, #0x38]
- mov r2, #0xa
- add r0, r0, #1
- str r0, [r5, #0x38]
- mov r0, #0xc
- add r5, #0x14
- str r0, [sp]
- add r0, r5, #0
- mov r1, #0xf
- add r3, r2, #0
- bl MOD08_02218120
- b _022237BC
-_0222378E:
- add r0, r5, #0
- add r0, #0x14
- bl MOD08_02218170
- cmp r0, #0
- ldr r0, [r5, #0x10]
- beq _022237A8
- mov r2, #0x16
- ldrsh r2, [r5, r2]
- mov r1, #0xd
- bl FUN_02007558
- b _022237BC
-_022237A8:
- mov r1, #0xd
- add r2, r1, #0
- add r2, #0xf3
- bl FUN_02007558
- ldr r0, [r5, #0x38]
- add r0, r0, #1
- str r0, [r5, #0x38]
- b _022237BC
-_022237BA:
- mov r4, #1
-_022237BC:
- add r0, r4, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_022237C0
-MOD08_022237C0: ; 0x022237C0
- push {r3, r4, r5, lr}
- sub sp, #8
- add r5, r0, #0
- ldr r0, [r5, #0x40]
- mov r4, #0
- cmp r0, #0
- beq _022237D8
- cmp r0, #1
- beq _0222381E
- cmp r0, #2
- beq _0222383A
- b _0222383C
-_022237D8:
- add r0, r5, #0
- ldr r1, [r5, #0x3c]
- add r0, #0x44
- bl MOD08_02218360
- add r0, r5, #0
- add r0, #0x68
- bl MOD08_02217ECC
- cmp r0, #0
- beq _02223802
- mov r2, #0xb4
- mov r3, #0xb6
- add r0, r5, #0
- ldrsh r2, [r5, r2]
- ldrsh r3, [r5, r3]
- ldr r1, [r5, #0x3c]
- add r0, #0x68
- bl MOD08_02217C94
- b _0222383C
-_02223802:
- ldr r0, [r5, #0x40]
- mov r1, #0x10
- add r0, r0, #1
- str r0, [r5, #0x40]
- str r1, [sp]
- mov r0, #8
- add r5, #0x8c
- str r0, [sp, #4]
- add r0, r5, #0
- add r2, r4, #0
- mov r3, #0xe
- bl MOD08_022186D4
- b _0222383C
-_0222381E:
- add r0, r5, #0
- add r0, #0x8c
- bl MOD08_02218704
- cmp r0, #0
- beq _0222383C
- ldr r0, [r5, #0x3c]
- add r1, r4, #0
- bl FUN_0200C644
- ldr r0, [r5, #0x40]
- add r0, r0, #1
- str r0, [r5, #0x40]
- b _0222383C
-_0222383A:
- mov r4, #1
-_0222383C:
- add r0, r4, #0
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02223844
-MOD08_02223844: ; 0x02223844
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0xc]
- cmp r0, #0
- beq _02223856
- cmp r0, #1
- beq _0222386E
- b _02223884
-_02223856:
- add r0, r4, #0
- bl MOD08_02223744
- add r0, r4, #0
- bl MOD08_022237C0
- cmp r0, #0
- beq _02223884
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02223884
-_0222386E:
- ldr r0, [r4, #0x3c]
- bl FUN_0200C3DC
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, pc}
-_02223884:
- ldr r0, [r4, #8]
- bl FUN_0200BC1C
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_0222388C
-MOD08_0222388C: ; 0x0222388C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r5, r1, #0
- mov r1, #0xb8
- add r6, r0, #0
- add r7, r2, #0
- str r3, [sp, #8]
- bl MOD08_02228064
- add r4, r0, #0
- str r6, [r4]
- str r5, [r4, #4]
- str r7, [r4, #8]
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02217C1C
- str r0, [sp, #0xc]
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02217C44
- add r5, r0, #0
- add r0, r6, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- mov r1, #0
- str r0, [r4, #0x10]
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r7, r0, #0x10
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r6, r0, #0x10
- mov r0, #0xc
- str r0, [sp]
- add r0, r4, #0
- mov r1, #0xa
- add r0, #0x14
- add r2, r1, #0
- mov r3, #0xf
- bl MOD08_02218120
- ldr r0, [sp, #8]
- mov r1, #1
- str r0, [r4, #0x3c]
- bl FUN_0200C5E0
- ldr r0, [r4, #0x3c]
- mov r1, #2
- bl FUN_0200C840
- ldr r0, [r4, #0x3c]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r4, #0x3c]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r4, #0x3c]
- mov r1, #1
- bl FUN_0200C6B0
- ldr r0, [sp, #0xc]
- lsl r0, r0, #5
- add r1, r7, r0
- add r0, r4, #0
- add r0, #0xb4
- strh r1, [r0]
- add r0, r4, #0
- add r0, #0xb6
- strh r6, [r0]
- cmp r5, #0
- bge _02223942
- mov r1, #7
- b _02223944
-_02223942:
- mov r1, #0x17
-_02223944:
- mvn r1, r1
- add r0, r1, #0
- mul r0, r5
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- mov r1, #0
- mov r0, #0x20
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x68
- add r2, r1, #0
- add r3, r1, #0
- bl MOD08_02217E80
- mov r0, #0x20
- str r0, [sp]
- add r0, r4, #0
- add r0, #0x44
- mov r1, #5
- mov r2, #0xa
- mov r3, #0xc
- bl MOD08_02218120
- mov r0, #0x1a
- str r0, [sp]
- ldr r0, _02223994 ; =0x04000050
- mov r1, #0
- mov r2, #0x3f
- mov r3, #0x1f
- bl G2x_SetBlendAlpha_
- ldr r0, [r4]
- ldr r1, _02223998 ; =MOD08_02223844
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02223994: .word 0x04000050
-_02223998: .word MOD08_02223844
-
- thumb_func_start MOD08_0222399C
-MOD08_0222399C: ; 0x0222399C
- push {r3, lr}
- sub sp, #8
- ldr r1, [r0, #0x68]
- cmp r1, #5
- bhi _02223A50
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_022239B2: ; jump table
- .short _022239BE - _022239B2 - 2 ; case 0
- .short _022239D4 - _022239B2 - 2 ; case 1
- .short _022239EE - _022239B2 - 2 ; case 2
- .short _02223A08 - _022239B2 - 2 ; case 3
- .short _02223A22 - _022239B2 - 2 ; case 4
- .short _02223A38 - _022239B2 - 2 ; case 5
-_022239BE:
- mov r2, #0x28
- str r2, [sp]
- mov r1, #8
- str r1, [sp, #4]
- mov r1, #0
- add r0, #0x18
- add r3, r1, #0
- bl MOD08_02217E80
- add sp, #8
- pop {r3, pc}
-_022239D4:
- mov r1, #0x4f
- mvn r1, r1
- str r1, [sp]
- mov r1, #8
- str r1, [sp, #4]
- mov r1, #0
- add r0, #0x18
- add r2, r1, #0
- add r3, r1, #0
- bl MOD08_02217E80
- add sp, #8
- pop {r3, pc}
-_022239EE:
- mov r1, #0x50
- str r1, [sp]
- mov r1, #8
- str r1, [sp, #4]
- mov r1, #0
- add r2, r1, #0
- add r0, #0x18
- sub r2, #0x50
- add r3, r1, #0
- bl MOD08_02217E80
- add sp, #8
- pop {r3, pc}
-_02223A08:
- mov r1, #0x4f
- mvn r1, r1
- str r1, [sp]
- mov r1, #8
- str r1, [sp, #4]
- mov r1, #0
- add r0, #0x18
- add r2, r1, #0
- add r3, r1, #0
- bl MOD08_02217E80
- add sp, #8
- pop {r3, pc}
-_02223A22:
- mov r2, #0x50
- str r2, [sp]
- mov r1, #8
- str r1, [sp, #4]
- mov r1, #0
- add r0, #0x18
- add r3, r1, #0
- bl MOD08_02217E80
- add sp, #8
- pop {r3, pc}
-_02223A38:
- mov r2, #0x27
- mvn r2, r2
- str r2, [sp]
- mov r1, #8
- str r1, [sp, #4]
- mov r1, #0
- add r0, #0x18
- add r3, r1, #0
- bl MOD08_02217E80
- add sp, #8
- pop {r3, pc}
-_02223A50:
- bl ErrorHandling
- add sp, #8
- pop {r3, pc}
-
- thumb_func_start MOD08_02223A58
-MOD08_02223A58: ; 0x02223A58
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0xc]
- cmp r0, #4
- bls _02223A68
- b _02223B7C
-_02223A68:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02223A74: ; jump table
- .short _02223A7E - _02223A74 - 2 ; case 0
- .short _02223A9A - _02223A74 - 2 ; case 1
- .short _02223B1C - _02223A74 - 2 ; case 2
- .short _02223B52 - _02223A74 - 2 ; case 3
- .short _02223B64 - _02223A74 - 2 ; case 4
-_02223A7E:
- ldr r0, [r4, #0x6c]
- add r0, r0, #1
- str r0, [r4, #0x6c]
- cmp r0, #4
- ble _02223B7C
- add r0, r4, #0
- bl MOD08_0222399C
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- mov r0, #0
- str r0, [r4, #0x6c]
- b _02223B7C
-_02223A9A:
- add r0, r4, #0
- add r0, #0x18
- bl MOD08_02217ECC
- cmp r0, #0
- beq _02223ABA
- mov r2, #0x64
- mov r3, #0x66
- add r0, r4, #0
- ldrsh r2, [r4, r2]
- ldrsh r3, [r4, r3]
- ldr r1, [r4, #0x14]
- add r0, #0x18
- bl MOD08_02217C94
- b _02223B7C
-_02223ABA:
- ldr r0, [r4, #0x68]
- add r0, r0, #1
- str r0, [r4, #0x68]
- cmp r0, #6
- bge _02223AEA
- mov r0, #0
- str r0, [r4, #0xc]
- mov r0, #0x64
- ldrsh r1, [r4, r0]
- mov r0, #0x18
- ldrsh r0, [r4, r0]
- add r1, r1, r0
- add r0, r4, #0
- add r0, #0x64
- strh r1, [r0]
- mov r0, #0x66
- ldrsh r1, [r4, r0]
- mov r0, #0x1a
- ldrsh r0, [r4, r0]
- add r1, r1, r0
- add r0, r4, #0
- add r0, #0x66
- strh r1, [r0]
- b _02223B7C
-_02223AEA:
- ldr r0, [r4, #0xc]
- mov r1, #1
- add r0, r0, #1
- str r0, [r4, #0xc]
- ldr r0, [r4, #0x14]
- bl FUN_0200C90C
- mov r1, #0x10
- add r0, r4, #0
- mov r2, #0
- str r1, [sp]
- add r0, #0x3c
- add r3, r2, #0
- str r1, [sp, #4]
- bl MOD08_022186D4
- ldr r0, _02223B88 ; =0x00007FFF
- mov r1, #0
- str r0, [sp]
- ldr r0, [r4, #0x10]
- mov r2, #0xa
- add r3, r1, #0
- bl FUN_02007E68
- b _02223B7C
-_02223B1C:
- add r0, r4, #0
- add r0, #0x3c
- bl MOD08_02218704
- cmp r0, #0
- beq _02223B30
- ldr r0, [r4, #0x14]
- mov r1, #0
- bl FUN_0200C644
-_02223B30:
- ldr r0, [r4, #0x10]
- bl FUN_02007F20
- cmp r0, #0
- bne _02223B7C
- ldr r0, [r4, #0xc]
- mov r2, #0
- add r0, r0, #1
- str r0, [r4, #0xc]
- ldr r0, _02223B88 ; =0x00007FFF
- mov r1, #0xa
- str r0, [sp]
- ldr r0, [r4, #0x10]
- add r3, r2, #0
- bl FUN_02007E68
- b _02223B7C
-_02223B52:
- ldr r0, [r4, #0x10]
- bl FUN_02007F20
- cmp r0, #0
- bne _02223B7C
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02223B7C
-_02223B64:
- ldr r0, [r4, #0x14]
- bl FUN_0200C3DC
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #8
- pop {r3, r4, r5, pc}
-_02223B7C:
- ldr r0, [r4, #8]
- bl FUN_0200BC1C
- add sp, #8
- pop {r3, r4, r5, pc}
- nop
-_02223B88: .word 0x00007FFF
-
- thumb_func_start MOD08_02223B8C
-MOD08_02223B8C: ; 0x02223B8C
- push {r3, r4, r5, r6, r7, lr}
- add r7, r1, #0
- mov r1, #0x70
- add r5, r0, #0
- str r2, [sp]
- add r6, r3, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4]
- ldr r0, [sp]
- str r7, [r4, #4]
- str r0, [r4, #8]
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- str r0, [r4, #0x10]
- str r6, [r4, #0x14]
- add r0, r6, #0
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r4, #0x14]
- mov r1, #1
- bl FUN_0200C6B0
- add r1, r4, #0
- add r2, r4, #0
- ldr r0, [r4, #0x14]
- add r1, #0x64
- add r2, #0x66
- bl FUN_0200C7A0
- ldr r0, [r4]
- ldr r1, _02223BE4 ; =MOD08_02223A58
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02223BE4: .word MOD08_02223A58
-
- thumb_func_start MOD08_02223BE8
-MOD08_02223BE8: ; 0x02223BE8
- push {r3, lr}
- sub sp, #8
- ldr r1, [r0, #0x50]
- cmp r1, #3
- bhi _02223C6A
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02223BFE: ; jump table
- .short _02223C06 - _02223BFE - 2 ; case 0
- .short _02223C1C - _02223BFE - 2 ; case 1
- .short _02223C36 - _02223BFE - 2 ; case 2
- .short _02223C50 - _02223BFE - 2 ; case 3
-_02223C06:
- mov r2, #0x50
- str r2, [sp]
- mov r1, #4
- str r1, [sp, #4]
- mov r1, #0
- add r0, #0x28
- add r3, r1, #0
- bl MOD08_02217E80
- add sp, #8
- pop {r3, pc}
-_02223C1C:
- mov r1, #0x4f
- mvn r1, r1
- str r1, [sp]
- mov r1, #4
- str r1, [sp, #4]
- mov r1, #0
- add r0, #0x28
- add r2, r1, #0
- add r3, r1, #0
- bl MOD08_02217E80
- add sp, #8
- pop {r3, pc}
-_02223C36:
- mov r1, #0x50
- str r1, [sp]
- mov r1, #4
- str r1, [sp, #4]
- mov r1, #0
- add r2, r1, #0
- add r0, #0x28
- sub r2, #0x50
- add r3, r1, #0
- bl MOD08_02217E80
- add sp, #8
- pop {r3, pc}
-_02223C50:
- mov r1, #0x27
- mvn r1, r1
- str r1, [sp]
- mov r1, #4
- str r1, [sp, #4]
- mov r1, #0
- add r0, #0x28
- mov r2, #0x28
- add r3, r1, #0
- bl MOD08_02217E80
- add sp, #8
- pop {r3, pc}
-_02223C6A:
- bl ErrorHandling
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02223C74
-MOD08_02223C74: ; 0x02223C74
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0xc]
- cmp r0, #6
- bhi _02223D7E
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02223C8E: ; jump table
- .short _02223C9C - _02223C8E - 2 ; case 0
- .short _02223CB8 - _02223C8E - 2 ; case 1
- .short _02223D24 - _02223C8E - 2 ; case 2
- .short _02223D80 - _02223C8E - 2 ; case 3
- .short _02223DE2 - _02223C8E - 2 ; case 4
- .short _02223E02 - _02223C8E - 2 ; case 5
- .short _02223E30 - _02223C8E - 2 ; case 6
-_02223C9C:
- ldr r0, [r4, #0x54]
- add r0, r0, #1
- str r0, [r4, #0x54]
- cmp r0, #1
- ble _02223D7E
- add r0, r4, #0
- bl MOD08_02223BE8
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- mov r0, #0
- str r0, [r4, #0x54]
- b _02223E48
-_02223CB8:
- add r0, r4, #0
- add r0, #0x28
- bl MOD08_02217ECC
- cmp r0, #0
- beq _02223CD8
- mov r2, #0x4c
- mov r3, #0x4e
- add r0, r4, #0
- ldrsh r2, [r4, r2]
- ldrsh r3, [r4, r3]
- ldr r1, [r4, #0x24]
- add r0, #0x28
- bl MOD08_02217C94
- b _02223E48
-_02223CD8:
- ldr r0, [r4, #0x50]
- add r0, r0, #1
- str r0, [r4, #0x50]
- cmp r0, #4
- bge _02223D08
- mov r0, #0
- str r0, [r4, #0xc]
- mov r0, #0x4c
- ldrsh r1, [r4, r0]
- mov r0, #0x28
- ldrsh r0, [r4, r0]
- add r1, r1, r0
- add r0, r4, #0
- add r0, #0x4c
- strh r1, [r0]
- mov r0, #0x4e
- ldrsh r1, [r4, r0]
- mov r0, #0x2a
- ldrsh r0, [r4, r0]
- add r1, r1, r0
- add r0, r4, #0
- add r0, #0x4e
- strh r1, [r0]
- b _02223E48
-_02223D08:
- ldr r0, [r4, #0xc]
- mov r1, #1
- add r0, r0, #1
- str r0, [r4, #0xc]
- mov r0, #8
- str r0, [r4, #0x54]
- ldr r0, [r4, #0x24]
- bl FUN_0200C5C0
- ldr r0, [r4, #0x24]
- mov r1, #1
- bl FUN_0200C5E0
- b _02223E48
-_02223D24:
- ldr r0, [r4, #0x54]
- sub r0, r0, #1
- str r0, [r4, #0x54]
- bpl _02223D7E
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- ldr r0, [r4]
- bl MOD08_02215504
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD08_02214540
- add r2, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- ldr r0, _02223E54 ; =0x0000FFFF
- mov r1, #1
- lsl r2, r2, #0x10
- add r3, r1, #0
- str r0, [sp, #8]
- add r0, r5, #0
- lsr r2, r2, #0x10
- sub r3, #9
- bl FUN_02003210
- ldr r7, _02223E54 ; =0x0000FFFF
- mov r6, #0
- add r5, r4, #0
-_02223D64:
- ldr r0, [r5, #0x14]
- cmp r0, #0
- beq _02223D76
- mov r1, #0xe
- mov r2, #0x10
- mov r3, #0
- str r7, [sp]
- bl FUN_02007E68
-_02223D76:
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #4
- blt _02223D64
-_02223D7E:
- b _02223E48
-_02223D80:
- ldr r0, [r4]
- bl MOD08_02215504
- bl FUN_020038E4
- cmp r0, #0
- bne _02223E48
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- ldr r0, [r4]
- bl MOD08_02215504
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD08_02214540
- add r2, r0, #0
- mov r0, #0x10
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- ldr r0, _02223E54 ; =0x0000FFFF
- mov r1, #1
- lsl r2, r2, #0x10
- add r3, r1, #0
- str r0, [sp, #8]
- add r0, r5, #0
- lsr r2, r2, #0x10
- sub r3, #9
- bl FUN_02003210
- ldr r7, _02223E54 ; =0x0000FFFF
- mov r6, #0
- add r5, r4, #0
-_02223DC6:
- ldr r0, [r5, #0x14]
- cmp r0, #0
- beq _02223DD8
- mov r2, #0
- mov r1, #2
- add r3, r2, #0
- str r7, [sp]
- bl FUN_02007E68
-_02223DD8:
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #4
- blt _02223DC6
- b _02223E48
-_02223DE2:
- ldr r0, [r4]
- bl MOD08_02215504
- bl FUN_020038E4
- cmp r0, #0
- bne _02223E48
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- mov r0, #4
- str r0, [r4, #0x54]
- str r0, [r4, #0x50]
- mov r0, #0
- str r0, [r4, #0x58]
- b _02223E48
-_02223E02:
- ldr r0, [r4, #0x54]
- sub r0, r0, #1
- str r0, [r4, #0x54]
- bpl _02223E48
- mov r0, #4
- str r0, [r4, #0x54]
- ldr r0, [r4, #0x50]
- sub r0, r0, #1
- str r0, [r4, #0x50]
- bpl _02223E1E
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02223E48
-_02223E1E:
- ldr r0, [r4, #0x24]
- ldr r1, [r4, #0x58]
- bl FUN_0200C644
- ldr r1, [r4, #0x58]
- mov r0, #1
- eor r0, r1
- str r0, [r4, #0x58]
- b _02223E48
-_02223E30:
- ldr r0, [r4, #0x24]
- bl FUN_0200C3DC
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
-_02223E48:
- ldr r0, [r4, #8]
- bl FUN_0200BC1C
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- nop
-_02223E54: .word 0x0000FFFF
-
- thumb_func_start MOD08_02223E58
-MOD08_02223E58: ; 0x02223E58
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r6, r1, #0
- mov r1, #0x5c
- add r5, r0, #0
- str r2, [sp, #4]
- add r7, r3, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4]
- ldr r0, [sp, #4]
- str r6, [r4, #4]
- str r0, [r4, #8]
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- str r0, [r4, #0x10]
- mov r6, #0
- add r5, r4, #0
-_02223E88:
- ldr r0, [r4]
- add r1, r6, #0
- bl MOD08_022154D4
- str r0, [r5, #0x14]
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #4
- blt _02223E88
- str r7, [r4, #0x24]
- add r0, r7, #0
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r4, #0x24]
- mov r1, #1
- bl FUN_0200C6B0
- add r1, r4, #0
- add r2, r4, #0
- ldr r0, [r4, #0x24]
- add r1, #0x4c
- add r2, #0x4e
- bl FUN_0200C7A0
- mov r1, #0x4c
- ldrsh r2, [r4, r1]
- add r0, r4, #0
- add r0, #0x4c
- sub r2, #0x28
- strh r2, [r0]
- mov r2, #0x4e
- ldrsh r3, [r4, r2]
- add r0, r4, #0
- add r0, #0x4e
- sub r3, #0x28
- strh r3, [r0]
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x24]
- bl FUN_0200C714
- ldr r0, [r4, #0x24]
- mov r1, #1
- bl FUN_0200C90C
- mov r0, #0xf
- mvn r0, r0
- str r0, [r4, #0x54]
- mov r0, #0x1a
- str r0, [sp]
- ldr r0, _02223F08 ; =0x04000050
- mov r1, #0
- mov r2, #0x3f
- mov r3, #0x1f
- bl G2x_SetBlendAlpha_
- ldr r0, [r4]
- ldr r1, _02223F0C ; =MOD08_02223C74
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02223F08: .word 0x04000050
-_02223F0C: .word MOD08_02223C74
-
- thumb_func_start MOD08_02223F10
-MOD08_02223F10: ; 0x02223F10
- push {r3, r4, r5, lr}
- ldr r2, _02223F50 ; =0x00000AAA
- add r4, r0, #0
- add r5, r1, #0
- add r0, #0x10
- mov r1, #0
- mov r3, #3
- bl MOD08_02218030
- cmp r5, #0
- beq _02223F3C
- mov r0, #0
- ldr r1, [r4, #0x18]
- mvn r0, r0
- mul r0, r1
- str r0, [r4, #0x18]
- ldr r0, [r4, #8]
- mov r1, #0xa
- mov r2, #0x10
- bl FUN_02007558
- b _02223F48
-_02223F3C:
- mov r1, #0xa
- add r2, r1, #0
- ldr r0, [r4, #8]
- sub r2, #0x1a
- bl FUN_02007558
-_02223F48:
- mov r0, #0
- str r0, [r4, #0x4c]
- str r0, [r4, #0x50]
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02223F50: .word 0x00000AAA
-
- thumb_func_start MOD08_02223F54
-MOD08_02223F54: ; 0x02223F54
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r0, #0
- ldr r0, [r4, #0x4c]
- mov r5, #0
- cmp r0, #3
- bhi _0222405E
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02223F6E: ; jump table
- .short _02223F76 - _02223F6E - 2 ; case 0
- .short _02223FB6 - _02223F6E - 2 ; case 1
- .short _02224012 - _02223F6E - 2 ; case 2
- .short _0222405C - _02223F6E - 2 ; case 3
-_02223F76:
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_02218080
- ldr r0, [r4, #8]
- ldr r2, [r4, #0x10]
- mov r1, #9
- bl FUN_02007558
- ldr r0, [r4, #0x50]
- sub r0, r0, #1
- str r0, [r4, #0x50]
- bpl _0222405E
- ldr r0, [r4, #0x4c]
- add r0, r0, #1
- str r0, [r4, #0x4c]
- mov r0, #0xe
- ldrsh r3, [r4, r0]
- mov r0, #0xc
- ldrsh r1, [r4, r0]
- add r0, r3, #2
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- mov r0, #2
- add r4, #0x24
- str r0, [sp, #4]
- add r0, r4, #0
- add r2, r1, #0
- bl MOD08_02217E80
- b _0222405E
-_02223FB6:
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_02218080
- cmp r0, #0
- beq _02223FCC
- ldr r0, [r4, #8]
- ldr r2, [r4, #0x10]
- mov r1, #9
- bl FUN_02007558
-_02223FCC:
- add r0, r4, #0
- ldr r1, [r4, #8]
- add r0, #0x24
- bl MOD08_02217F2C
- cmp r0, #0
- bne _0222405E
- ldr r0, [r4, #0x4c]
- mov r2, #0
- add r0, r0, #1
- str r0, [r4, #0x4c]
- ldr r1, [r4, #0x10]
- add r0, r4, #0
- lsl r1, r1, #0x10
- add r0, #0x10
- asr r1, r1, #0x10
- mov r3, #3
- bl MOD08_02218030
- mov r0, #0xe
- ldrsh r3, [r4, r0]
- mov r0, #0xc
- ldrsh r1, [r4, r0]
- mov r0, #2
- add r4, #0x24
- str r3, [sp]
- add r3, r3, #2
- lsl r3, r3, #0x10
- str r0, [sp, #4]
- add r0, r4, #0
- add r2, r1, #0
- asr r3, r3, #0x10
- bl MOD08_02217E80
- b _0222405E
-_02224012:
- add r0, r4, #0
- ldr r1, [r4, #8]
- add r0, #0x24
- bl MOD08_02217F2C
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_02218080
- cmp r0, #0
- ldr r0, [r4, #8]
- beq _02224034
- ldr r2, [r4, #0x10]
- mov r1, #9
- bl FUN_02007558
- b _0222405E
-_02224034:
- mov r2, #0xc
- ldrsh r2, [r4, r2]
- add r1, r5, #0
- bl FUN_02007558
- mov r2, #0xe
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #8]
- mov r1, #1
- bl FUN_02007558
- ldr r0, [r4, #8]
- mov r1, #9
- add r2, r5, #0
- bl FUN_02007558
- ldr r0, [r4, #0x4c]
- add r0, r0, #1
- str r0, [r4, #0x4c]
- b _0222405E
-_0222405C:
- mov r5, #1
-_0222405E:
- add r0, r5, #0
- add sp, #8
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02224064
-MOD08_02224064: ; 0x02224064
- push {r4, lr}
- add r4, r1, #0
- add r2, r0, #0
- ldr r0, [r4]
- cmp r0, #0
- beq _02224076
- cmp r0, #1
- beq _022240A8
- pop {r4, pc}
-_02224076:
- add r0, r4, #0
- bl MOD08_02223F54
- cmp r0, #0
- beq _022240B6
- ldr r0, [r4, #0x48]
- add r0, r0, #1
- str r0, [r4, #0x48]
- cmp r0, #4
- bge _022240A0
- ldr r1, [r4, #0x54]
- mov r0, #1
- eor r1, r0
- add r0, r4, #0
- str r1, [r4, #0x54]
- bl MOD08_02223F10
- add r0, r4, #0
- bl MOD08_02223F54
- pop {r4, pc}
-_022240A0:
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
- pop {r4, pc}
-_022240A8:
- ldr r0, [r4, #4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_022240B6:
- pop {r4, pc}
-
- thumb_func_start MOD08_022240B8
-MOD08_022240B8: ; 0x022240B8
- push {r4, r5, r6, lr}
- mov r1, #0x58
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4, #4]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_02217C1C
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #0
- bl MOD08_02212498
- cmp r0, #0
- bne _02224104
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_022154D4
- str r0, [r4, #8]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #0xc]
- ldr r0, [r4, #8]
- mov r1, #1
- bl FUN_0200782C
- b _02224124
-_02224104:
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_022154D4
- str r0, [r4, #8]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #0xc]
- ldr r0, [r4, #8]
- mov r1, #1
- bl FUN_0200782C
-_02224124:
- strh r0, [r4, #0xe]
- ldr r0, [r4, #8]
- mov r1, #0xb
- mov r2, #0x32
- bl FUN_02007558
- cmp r6, #1
- bne _02224138
- mov r0, #0
- b _0222413A
-_02224138:
- mov r0, #1
-_0222413A:
- str r0, [r4, #0x54]
- ldr r1, [r4, #0x54]
- add r0, r4, #0
- bl MOD08_02223F10
- ldr r0, [r4, #4]
- ldr r1, _02224150 ; =MOD08_02224064
- add r2, r4, #0
- bl MOD08_02212400
- pop {r4, r5, r6, pc}
- .align 2, 0
-_02224150: .word MOD08_02224064
-
- thumb_func_start MOD08_02224154
-MOD08_02224154: ; 0x02224154
- push {r3, r4, r5, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x38]
- mov r5, #0
- cmp r0, #3
- bhi _02224210
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0222416C: ; jump table
- .short _02224174 - _0222416C - 2 ; case 0
- .short _022241A4 - _0222416C - 2 ; case 1
- .short _022241C6 - _0222416C - 2 ; case 2
- .short _022241F6 - _0222416C - 2 ; case 3
-_02224174:
- add r0, r4, #0
- ldr r1, [r4, #0xc]
- add r0, #0x10
- bl MOD08_02218380
- cmp r0, #0
- beq _0222419C
- add r0, r5, #0
- str r0, [sp]
- ldr r1, [r4, #0x3c]
- ldr r2, [r4, #0x40]
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- ldr r0, [r4, #0xc]
- ldr r3, [r4, #0x24]
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl MOD08_022182DC
- b _02224210
-_0222419C:
- ldr r0, [r4, #0x38]
- add r0, r0, #1
- str r0, [r4, #0x38]
- b _02224210
-_022241A4:
- ldr r0, [r4, #0x34]
- sub r0, r0, #1
- str r0, [r4, #0x34]
- bpl _02224210
- ldr r0, [r4, #0x38]
- mov r2, #0xa
- add r0, r0, #1
- str r0, [r4, #0x38]
- mov r0, #8
- add r4, #0x10
- str r0, [sp]
- add r0, r4, #0
- mov r1, #0xf
- add r3, r2, #0
- bl MOD08_02218120
- b _02224210
-_022241C6:
- add r0, r4, #0
- ldr r1, [r4, #0xc]
- add r0, #0x10
- bl MOD08_02218380
- cmp r0, #0
- beq _022241EE
- add r0, r5, #0
- str r0, [sp]
- ldr r1, [r4, #0x3c]
- ldr r2, [r4, #0x40]
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- ldr r0, [r4, #0xc]
- ldr r3, [r4, #0x24]
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl MOD08_022182DC
- b _02224210
-_022241EE:
- ldr r0, [r4, #0x38]
- add r0, r0, #1
- str r0, [r4, #0x38]
- b _02224210
-_022241F6:
- mov r1, #0xc
- add r2, r1, #0
- ldr r0, [r4, #0xc]
- add r2, #0xf4
- bl FUN_02007558
- mov r1, #0xd
- add r2, r1, #0
- ldr r0, [r4, #0xc]
- add r2, #0xf3
- bl FUN_02007558
- mov r5, #1
-_02224210:
- add r0, r5, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02224214
-MOD08_02224214: ; 0x02224214
- push {r4, lr}
- add r4, r1, #0
- add r2, r0, #0
- ldr r0, [r4, #4]
- cmp r0, #0
- beq _0222422A
- cmp r0, #1
- beq _02224240
- cmp r0, #2
- beq _02224250
- pop {r4, pc}
-_0222422A:
- add r0, r4, #0
- bl MOD08_02224154
- cmp r0, #0
- beq _0222425E
- ldr r0, [r4, #4]
- add r0, r0, #1
- str r0, [r4, #4]
- mov r0, #0x10
- str r0, [r4, #8]
- pop {r4, pc}
-_02224240:
- ldr r0, [r4, #8]
- sub r0, r0, #1
- str r0, [r4, #8]
- bpl _0222425E
- ldr r0, [r4, #4]
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, pc}
-_02224250:
- ldr r0, [r4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_0222425E:
- pop {r4, pc}
-
- thumb_func_start MOD08_02224260
-MOD08_02224260: ; 0x02224260
- push {r3, r4, r5, lr}
- mov r1, #0x44
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- str r0, [r4, #0xc]
- mov r0, #8
- str r0, [sp]
- add r0, r4, #0
- mov r1, #0xa
- add r0, #0x10
- add r2, r1, #0
- mov r3, #0xf
- bl MOD08_02218120
- mov r0, #4
- str r0, [r4, #0x34]
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_0221552C
- str r0, [r4, #0x40]
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_0200782C
- str r0, [r4, #0x3c]
- ldr r0, [r4]
- ldr r1, _022242BC ; =MOD08_02224214
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, pc}
- nop
-_022242BC: .word MOD08_02224214
-
- thumb_func_start MOD08_022242C0
-MOD08_022242C0: ; 0x022242C0
- push {r4, r5, r6, lr}
- sub sp, #8
- add r5, r0, #0
- ldr r0, [r5, #0x74]
- mov r1, #0x64
- bl _s32_div_f
- add r4, r0, #0
- ldr r0, [r5, #0x78]
- mov r1, #0x64
- bl _s32_div_f
- add r6, r0, #0
- ldr r0, [r5, #0x70]
- mov r1, #0x64
- bl _s32_div_f
- str r0, [sp]
- add r0, r5, #0
- lsl r1, r4, #0x10
- lsl r3, r6, #0x10
- add r0, #0x18
- asr r1, r1, #0x10
- mov r2, #0xa
- asr r3, r3, #0x10
- bl MOD08_02218120
- ldr r0, [r5]
- mov r1, #0x10
- mov r2, #0
- bl MOD08_02227994
- ldr r0, [r5, #0x70]
- mov r1, #0x64
- bl _s32_div_f
- mov r1, #6
- str r1, [sp]
- lsl r0, r0, #1
- str r0, [sp, #4]
- add r0, r5, #0
- add r0, #0x3c
- mov r1, #0x10
- mov r2, #0xa
- mov r3, #0
- bl MOD08_022186D4
- mov r0, #0
- str r0, [r5, #0x64]
- str r0, [r5, #0x68]
- add sp, #8
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_02224328
-MOD08_02224328: ; 0x02224328
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x64]
- mov r5, #0
- cmp r0, #3
- bhi _022243FC
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02224340: ; jump table
- .short _02224348 - _02224340 - 2 ; case 0
- .short _0222438E - _02224340 - 2 ; case 1
- .short _022243E4 - _02224340 - 2 ; case 2
- .short _022243FA - _02224340 - 2 ; case 3
-_02224348:
- add r0, r4, #0
- ldr r1, [r4, #0x14]
- add r0, #0x18
- bl MOD08_02218360
- cmp r0, #0
- bne _022243FC
- ldr r0, [r4, #0x78]
- mov r1, #0x64
- bl _s32_div_f
- add r6, r0, #0
- ldr r0, [r4, #0x74]
- mov r1, #0x64
- bl _s32_div_f
- add r7, r0, #0
- ldr r0, [r4, #0x70]
- mov r1, #0x64
- bl _s32_div_f
- str r0, [sp]
- add r0, r4, #0
- lsl r1, r6, #0x10
- lsl r3, r7, #0x10
- add r0, #0x18
- asr r1, r1, #0x10
- mov r2, #0xa
- asr r3, r3, #0x10
- bl MOD08_02218120
- ldr r0, [r4, #0x64]
- add r0, r0, #1
- str r0, [r4, #0x64]
- b _022243FC
-_0222438E:
- add r0, r4, #0
- ldr r1, [r4, #0x14]
- add r0, #0x18
- bl MOD08_02218360
- cmp r0, #0
- bne _022243FC
- ldr r0, [r4, #0x68]
- add r0, r0, #1
- str r0, [r4, #0x68]
- cmp r0, #2
- bge _022243DC
- add r0, r5, #0
- str r0, [r4, #0x64]
- ldr r0, [r4, #0x74]
- mov r1, #0x64
- bl _s32_div_f
- add r6, r0, #0
- ldr r0, [r4, #0x78]
- mov r1, #0x64
- bl _s32_div_f
- add r7, r0, #0
- ldr r0, [r4, #0x70]
- mov r1, #0x64
- bl _s32_div_f
- lsl r1, r6, #0x10
- lsl r3, r7, #0x10
- add r4, #0x18
- str r0, [sp]
- add r0, r4, #0
- asr r1, r1, #0x10
- mov r2, #0xa
- asr r3, r3, #0x10
- bl MOD08_02218120
- b _022243FC
-_022243DC:
- ldr r0, [r4, #0x64]
- add r0, r0, #1
- str r0, [r4, #0x64]
- b _022243FC
-_022243E4:
- add r0, r4, #0
- add r0, #0x3c
- bl MOD08_02218704
- cmp r0, #0
- beq _022243FC
- ldr r0, [r4, #0x64]
- mov r5, #1
- add r0, r0, #1
- str r0, [r4, #0x64]
- b _022243FC
-_022243FA:
- mov r5, #1
-_022243FC:
- add r0, r5, #0
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02224400
-MOD08_02224400: ; 0x02224400
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r1, [r5, #0x7c]
- mov r4, #0
- cmp r1, #0
- beq _02224416
- cmp r1, #1
- beq _02224428
- cmp r1, #2
- beq _02224472
- b _02224474
-_02224416:
- bl MOD08_022242C0
- add r0, r5, #0
- bl MOD08_02224328
- ldr r0, [r5, #0x7c]
- add r0, r0, #1
- str r0, [r5, #0x7c]
- b _02224474
-_02224428:
- bl MOD08_02224328
- cmp r0, #0
- beq _02224474
- ldr r0, [r5, #0x6c]
- sub r0, r0, #1
- str r0, [r5, #0x6c]
- bmi _02224468
- ldr r0, [r5, #0x70]
- mov r1, #3
- bl _s32_div_f
- ldr r1, [r5, #0x70]
- sub r0, r1, r0
- str r0, [r5, #0x70]
- ldr r0, [r5, #0x74]
- mov r1, #3
- bl _s32_div_f
- ldr r1, [r5, #0x74]
- sub r0, r1, r0
- str r0, [r5, #0x74]
- ldr r0, [r5, #0x78]
- mov r1, #3
- bl _s32_div_f
- ldr r1, [r5, #0x78]
- sub r0, r1, r0
- str r0, [r5, #0x78]
- add r0, r4, #0
- str r0, [r5, #0x7c]
- b _02224474
-_02224468:
- ldr r0, [r5, #0x7c]
- mov r4, #1
- add r0, r0, #1
- str r0, [r5, #0x7c]
- b _02224474
-_02224472:
- mov r4, #1
-_02224474:
- add r0, r4, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02224478
-MOD08_02224478: ; 0x02224478
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0xc]
- cmp r0, #4
- bls _02224488
- b _022245A8
-_02224488:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02224494: ; jump table
- .short _0222449E - _02224494 - 2 ; case 0
- .short _022244E4 - _02224494 - 2 ; case 1
- .short _02224544 - _02224494 - 2 ; case 2
- .short _02224574 - _02224494 - 2 ; case 3
- .short _02224590 - _02224494 - 2 ; case 4
-_0222449E:
- add r0, r4, #0
- bl MOD08_02224400
- cmp r0, #0
- beq _022245A8
- ldr r0, [r4, #0xc]
- mov r1, #0
- add r0, r0, #1
- str r0, [r4, #0xc]
- mov r0, #0x1e
- str r0, [r4, #0x10]
- ldr r0, [r4, #0x14]
- bl FUN_0200C5C0
- ldr r0, [r4, #0x14]
- mov r1, #1
- bl FUN_0200C5E0
- mov r1, #0xfe
- lsl r1, r1, #0x16
- ldr r0, [r4, #0x14]
- add r2, r1, #0
- bl FUN_0200C884
- mov r1, #0
- mov r2, #0x10
- str r1, [sp]
- mov r0, #4
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x3c
- add r3, r2, #0
- bl MOD08_022186D4
- b _022245A8
-_022244E4:
- ldr r0, [r4, #0x10]
- cmp r0, #0
- bne _02224502
- mov r0, #1
- str r0, [sp]
- mov r0, #8
- mov r1, #0x10
- mov r2, #0
- mov r3, #0xd
- bl FUN_0200A208
- mov r0, #0
- mvn r0, r0
- str r0, [r4, #0x10]
- b _02224508
-_02224502:
- ble _02224508
- sub r0, r0, #1
- str r0, [r4, #0x10]
-_02224508:
- mov r0, #0
- ldr r1, [r4, #0x10]
- mvn r0, r0
- cmp r1, r0
- bne _02224532
- mov r0, #1
- bl FUN_0200A344
- cmp r0, #0
- beq _02224532
- mov r0, #1
- str r0, [sp]
- mov r0, #8
- mov r1, #0
- mov r2, #0x10
- mov r3, #0xd
- bl FUN_0200A208
- mov r0, #1
- mvn r0, r0
- str r0, [r4, #0x10]
-_02224532:
- ldr r0, [r4, #0x14]
- bl FUN_0200C608
- cmp r0, #0
- bne _022245A8
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _022245A8
-_02224544:
- mov r0, #1
- bl FUN_0200A344
- cmp r0, #0
- beq _022245A8
- ldr r0, [r4, #0xc]
- mov r1, #0x10
- add r0, r0, #1
- str r0, [r4, #0xc]
- ldr r0, [r4]
- mov r2, #0
- bl MOD08_02227994
- mov r1, #0x10
- mov r2, #0
- str r1, [sp]
- mov r0, #8
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x3c
- add r3, r2, #0
- bl MOD08_022186D4
- b _022245A8
-_02224574:
- add r0, r4, #0
- add r0, #0x3c
- bl MOD08_02218704
- cmp r0, #0
- beq _022245A8
- ldr r0, [r4, #0x14]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _022245A8
-_02224590:
- ldr r0, [r4, #0x14]
- bl FUN_0200C3DC
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #8
- pop {r3, r4, r5, pc}
-_022245A8:
- ldr r0, [r4, #8]
- bl FUN_0200BC1C
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022245B4
-MOD08_022245B4: ; 0x022245B4
- push {r3, r4, r5, r6, r7, lr}
- add r7, r1, #0
- mov r1, #0x80
- add r6, r0, #0
- str r2, [sp]
- add r5, r3, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r6, [r4]
- ldr r0, [sp]
- str r7, [r4, #4]
- str r0, [r4, #8]
- str r5, [r4, #0x14]
- add r0, r5, #0
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r4, #0x14]
- mov r1, #1
- bl FUN_0200C6B0
- ldr r0, [r4, #0x14]
- mov r1, #2
- bl FUN_0200C840
- ldr r0, [r4, #0x14]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r4, #0x14]
- mov r1, #4
- bl FUN_0200C61C
- mov r0, #3
- str r0, [r4, #0x6c]
- mov r0, #0x19
- lsl r0, r0, #4
- str r0, [r4, #0x70]
- ldr r0, _02224618 ; =0x000005DC
- ldr r1, _0222461C ; =MOD08_02224478
- str r0, [r4, #0x74]
- mov r0, #0xfa
- lsl r0, r0, #2
- str r0, [r4, #0x78]
- ldr r0, [r4]
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02224618: .word 0x000005DC
-_0222461C: .word MOD08_02224478
-
- thumb_func_start MOD08_02224620
-MOD08_02224620: ; 0x02224620
- push {r3, lr}
- sub sp, #8
- ldr r1, [r0, #0x34]
- cmp r1, #3
- bhi _02224668
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02224636: ; jump table
- .short _0222463E - _02224636 - 2 ; case 0
- .short _02224656 - _02224636 - 2 ; case 1
- .short _0222463E - _02224636 - 2 ; case 2
- .short _02224656 - _02224636 - 2 ; case 3
-_0222463E:
- mov r1, #0x20
- str r1, [sp]
- mov r1, #6
- str r1, [sp, #4]
- mov r1, #0
- add r0, #0x10
- add r2, r1, #0
- add r3, r1, #0
- bl MOD08_02217E80
- add sp, #8
- pop {r3, pc}
-_02224656:
- mov r1, #0
- str r1, [sp]
- mov r2, #6
- str r2, [sp, #4]
- add r0, #0x10
- add r2, r1, #0
- mov r3, #0x20
- bl MOD08_02217E80
-_02224668:
- add sp, #8
- pop {r3, pc}
-
- thumb_func_start MOD08_0222466C
-MOD08_0222466C: ; 0x0222466C
- push {r4, lr}
- add r4, r1, #0
- add r2, r0, #0
- ldr r0, [r4]
- cmp r0, #0
- beq _02224682
- cmp r0, #1
- beq _02224690
- cmp r0, #2
- beq _022246C8
- pop {r4, pc}
-_02224682:
- add r0, r4, #0
- bl MOD08_02224620
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
- pop {r4, pc}
-_02224690:
- add r0, r4, #0
- add r0, #0x10
- bl MOD08_02217ECC
- cmp r0, #0
- beq _022246B0
- mov r2, #0xc
- mov r3, #0xe
- add r0, r4, #0
- ldrsh r2, [r4, r2]
- ldrsh r3, [r4, r3]
- ldr r1, [r4, #8]
- add r0, #0x10
- bl MOD08_02217CD0
- pop {r4, pc}
-_022246B0:
- ldr r0, [r4, #0x34]
- add r0, r0, #1
- str r0, [r4, #0x34]
- cmp r0, #4
- bge _022246C0
- mov r0, #0
- str r0, [r4]
- pop {r4, pc}
-_022246C0:
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
- pop {r4, pc}
-_022246C8:
- ldr r0, [r4, #4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
-
- thumb_func_start MOD08_022246D8
-MOD08_022246D8: ; 0x022246D8
- push {r3, r4, r5, lr}
- mov r1, #0x38
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4, #4]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_022154D4
- str r0, [r4, #8]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #0xc]
- ldr r0, [r4, #8]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #0xe]
- mov r0, #0
- str r0, [r4, #0x34]
- ldr r0, [r4, #4]
- ldr r1, _02224718 ; =MOD08_0222466C
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02224718: .word MOD08_0222466C
-
- thumb_func_start MOD08_0222471C
-MOD08_0222471C: ; 0x0222471C
- push {r4, lr}
- sub sp, #8
- add r4, r1, #0
- add r2, r0, #0
- ldr r0, [r4]
- cmp r0, #6
- bhi _0222477E
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02224736: ; jump table
- .short _02224744 - _02224736 - 2 ; case 0
- .short _02224762 - _02224736 - 2 ; case 1
- .short _022247DA - _02224736 - 2 ; case 2
- .short _0222481E - _02224736 - 2 ; case 3
- .short _0222485C - _02224736 - 2 ; case 4
- .short _022248A4 - _02224736 - 2 ; case 5
- .short _022248D4 - _02224736 - 2 ; case 6
-_02224744:
- add r0, r4, #0
- add r0, #0x14
- mov r1, #1
- mov r2, #0x40
- bl MOD08_02218654
- ldr r1, [r4, #0x20]
- ldr r0, [r4, #8]
- add sp, #8
- mul r0, r1
- str r0, [r4, #0x20]
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
- pop {r4, pc}
-_02224762:
- mov r2, #0x12
- ldrsh r2, [r4, r2]
- mov r1, #0x10
- add r0, r4, #0
- add r2, #8
- lsl r2, r2, #0x10
- ldrsh r1, [r4, r1]
- ldr r3, [r4, #0xc]
- add r0, #0x14
- asr r2, r2, #0x10
- bl MOD08_02217E58
- cmp r0, #0
- beq _02224780
-_0222477E:
- b _022248E2
-_02224780:
- mov r2, #0x10
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0
- bl FUN_02007558
- mov r2, #0x12
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_02007558
- mov r0, #0x10
- ldrsh r1, [r4, r0]
- mov r3, #0
- mov r0, #2
- add r2, r1, #0
- str r3, [sp]
- add r2, #0x20
- str r0, [sp, #4]
- add r0, r4, #0
- lsl r2, r2, #0x10
- add r0, #0x14
- asr r2, r2, #0x10
- bl MOD08_02217E80
- ldr r1, [r4, #0x1c]
- ldr r0, [r4, #8]
- mul r0, r1
- str r0, [r4, #0x1c]
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02217ECC
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0
- bl FUN_02007558
- add sp, #8
- pop {r4, pc}
-_022247DA:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02217ECC
- cmp r0, #0
- beq _022247F6
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0xc]
- mov r1, #0
- bl FUN_02007558
- add sp, #8
- pop {r4, pc}
-_022247F6:
- mov r0, #0x3c
- ldrsh r1, [r4, r0]
- mov r3, #0
- mov r0, #2
- str r3, [sp]
- str r0, [sp, #4]
- ldr r2, [r4, #8]
- add r0, r4, #0
- lsl r2, r2, #5
- add r2, r1, r2
- lsl r2, r2, #0x10
- add r0, #0x40
- asr r2, r2, #0x10
- bl MOD08_02217E80
- ldr r0, [r4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4]
- pop {r4, pc}
-_0222481E:
- add r0, r4, #0
- add r0, #0x40
- bl MOD08_02217ECC
- cmp r0, #0
- beq _0222483A
- mov r2, #0x40
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x38]
- mov r1, #0
- bl FUN_02007558
- add sp, #8
- pop {r4, pc}
-_0222483A:
- mov r3, #0
- str r3, [sp]
- mov r0, #8
- str r0, [sp, #4]
- mov r1, #0x14
- mov r2, #0x10
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- add r0, #0x14
- bl MOD08_02217E80
- ldr r0, [r4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4]
- pop {r4, pc}
-_0222485C:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02217ECC
- cmp r0, #0
- ldr r0, [r4, #0xc]
- beq _02224878
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- mov r1, #0
- bl FUN_02007558
- add sp, #8
- pop {r4, pc}
-_02224878:
- mov r2, #0x10
- ldrsh r2, [r4, r2]
- mov r1, #0
- bl FUN_02007558
- mov r3, #0
- str r3, [sp]
- mov r0, #8
- str r0, [sp, #4]
- mov r1, #0x40
- mov r2, #0x3c
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- add r0, #0x40
- bl MOD08_02217E80
- ldr r0, [r4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4]
- pop {r4, pc}
-_022248A4:
- add r0, r4, #0
- add r0, #0x40
- bl MOD08_02217ECC
- cmp r0, #0
- ldr r0, [r4, #0x38]
- beq _022248C0
- mov r2, #0x40
- ldrsh r2, [r4, r2]
- mov r1, #0
- bl FUN_02007558
- add sp, #8
- pop {r4, pc}
-_022248C0:
- mov r2, #0x3c
- ldrsh r2, [r4, r2]
- mov r1, #0
- bl FUN_02007558
- ldr r0, [r4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4]
- pop {r4, pc}
-_022248D4:
- ldr r0, [r4, #4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_022248E2:
- add sp, #8
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022248E8
-MOD08_022248E8: ; 0x022248E8
- push {r3, r4, r5, lr}
- mov r1, #0x64
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4, #4]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_02217C1C
- str r0, [r4, #8]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_022154D4
- str r0, [r4, #0xc]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #0x10]
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #0x12]
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4, #4]
- bl MOD08_022154D4
- str r0, [r4, #0x38]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #0x3c]
- ldr r0, [r4, #0x38]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #0x3e]
- ldr r0, [r4, #4]
- ldr r1, _02224958 ; =MOD08_0222471C
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, pc}
- nop
-_02224958: .word MOD08_0222471C
-
- thumb_func_start MOD08_0222495C
-MOD08_0222495C: ; 0x0222495C
- push {lr}
- sub sp, #0xc
- mov r1, #0
- str r1, [r0, #0x40]
- mov r1, #8
- str r1, [sp]
- mov r1, #0xa
- str r1, [sp, #4]
- mov r2, #2
- str r2, [sp, #8]
- add r0, #0x1c
- mov r2, #9
- add r3, r1, #0
- bl MOD08_022181A8
- add sp, #0xc
- pop {pc}
- .align 2, 0
-
- thumb_func_start MOD08_02224980
-MOD08_02224980: ; 0x02224980
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r0, #0
- ldr r0, [r4, #0x40]
- mov r5, #0
- cmp r0, #3
- bhi _02224A72
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0222499A: ; jump table
- .short _022249A2 - _0222499A - 2 ; case 0
- .short _022249E8 - _0222499A - 2 ; case 1
- .short _02224A2A - _0222499A - 2 ; case 2
- .short _02224A70 - _0222499A - 2 ; case 3
-_022249A2:
- add r0, r4, #0
- ldr r1, [r4, #0x18]
- add r0, #0x1c
- bl MOD08_022183A0
- cmp r0, #0
- beq _022249C6
- add r0, r5, #0
- str r0, [sp]
- mov r1, #0x44
- mov r2, #0x46
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x18]
- ldr r3, [r4, #0x30]
- bl MOD08_022182DC
- b _02224A72
-_022249C6:
- ldr r0, [r4, #0x40]
- mov r1, #9
- add r0, r0, #1
- str r0, [r4, #0x40]
- mov r0, #0xf
- str r0, [sp]
- mov r0, #0xa
- str r0, [sp, #4]
- mov r0, #2
- add r4, #0x1c
- str r0, [sp, #8]
- add r0, r4, #0
- mov r2, #0xb
- mov r3, #8
- bl MOD08_022181A8
- b _02224A72
-_022249E8:
- add r0, r4, #0
- ldr r1, [r4, #0x18]
- add r0, #0x1c
- bl MOD08_022183A0
- cmp r0, #0
- beq _02224A0C
- add r0, r5, #0
- str r0, [sp]
- mov r1, #0x44
- mov r2, #0x46
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x18]
- ldr r3, [r4, #0x30]
- bl MOD08_022182DC
- b _02224A72
-_02224A0C:
- ldr r0, [r4, #0x40]
- mov r2, #0xa
- add r0, r0, #1
- str r0, [r4, #0x40]
- str r2, [sp]
- str r2, [sp, #4]
- mov r0, #2
- add r4, #0x1c
- str r0, [sp, #8]
- add r0, r4, #0
- mov r1, #0xb
- mov r3, #0xf
- bl MOD08_022181A8
- b _02224A72
-_02224A2A:
- add r0, r4, #0
- ldr r1, [r4, #0x18]
- add r0, #0x1c
- bl MOD08_022183A0
- cmp r0, #0
- beq _02224A4E
- add r0, r5, #0
- str r0, [sp]
- mov r1, #0x44
- mov r2, #0x46
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x18]
- ldr r3, [r4, #0x30]
- bl MOD08_022182DC
- b _02224A72
-_02224A4E:
- mov r1, #0xc
- add r2, r1, #0
- ldr r0, [r4, #0x18]
- add r2, #0xf4
- bl FUN_02007558
- mov r1, #0xd
- add r2, r1, #0
- ldr r0, [r4, #0x18]
- add r2, #0xf3
- bl FUN_02007558
- ldr r0, [r4, #0x40]
- mov r5, #1
- add r0, r0, #1
- str r0, [r4, #0x40]
- b _02224A72
-_02224A70:
- mov r5, #1
-_02224A72:
- add r0, r5, #0
- add sp, #0xc
- pop {r4, r5, pc}
-
- thumb_func_start MOD08_02224A78
-MOD08_02224A78: ; 0x02224A78
- push {r3, r4, r5, lr}
- add r4, r2, #0
- mov r2, #0
- str r2, [r1]
- add r5, r0, #0
- mov r1, #0x64
- bl FUN_0200C6C4
- add r0, r5, #0
- mov r1, #1
- bl FUN_0200C6B0
- add r0, r5, #0
- mov r1, #1
- bl FUN_0200C644
- add r0, r5, #0
- mov r1, #1
- bl FUN_0200C5E0
- add r0, r5, #0
- add r1, r4, #0
- bl FUN_0200C5F4
- add r0, r5, #0
- mov r1, #0
- bl FUN_0200C5C0
- add r0, r5, #0
- mov r1, #0
- bl FUN_0200C61C
- mov r1, #0x37
- add r0, r5, #0
- lsl r1, r1, #0xc
- bl FUN_0200C5B4
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02224AC4
-MOD08_02224AC4: ; 0x02224AC4
- push {r3, r4, r5, lr}
- add r5, r1, #0
- ldr r1, [r5]
- mov r4, #0
- cmp r1, #0
- beq _02224AD6
- cmp r1, #1
- beq _02224AE8
- b _02224AEC
-_02224AD6:
- bl FUN_0200C608
- cmp r0, #0
- bne _02224AEE
- ldr r0, [r5]
- mov r4, #1
- add r0, r0, #1
- str r0, [r5]
- b _02224AEE
-_02224AE8:
- mov r4, #1
- b _02224AEE
-_02224AEC:
- mov r4, #1
-_02224AEE:
- add r0, r4, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02224AF4
-MOD08_02224AF4: ; 0x02224AF4
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r7, r0, #0
- ldr r0, [r4, #0xc]
- cmp r0, #5
- bls _02224B02
- b _02224C14
-_02224B02:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02224B0E: ; jump table
- .short _02224B1A - _02224B0E - 2 ; case 0
- .short _02224B3E - _02224B0E - 2 ; case 1
- .short _02224B76 - _02224B0E - 2 ; case 2
- .short _02224BA6 - _02224B0E - 2 ; case 3
- .short _02224BCC - _02224B0E - 2 ; case 4
- .short _02224BF2 - _02224B0E - 2 ; case 5
-_02224B1A:
- add r0, r4, #0
- bl MOD08_0222495C
- ldr r0, [r4, #0x10]
- add r1, r4, #0
- lsl r2, r0, #2
- add r0, r4, r2
- add r1, #0x60
- add r1, r1, r2
- mov r2, #2
- ldr r0, [r0, #0x48]
- lsl r2, r2, #0xc
- bl MOD08_02224A78
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02224C14
-_02224B3E:
- add r0, r4, #0
- bl MOD08_02224980
- add r5, r0, #0
- ldr r0, [r4, #0x10]
- add r1, r4, #0
- lsl r2, r0, #2
- add r0, r4, r2
- add r1, #0x60
- ldr r0, [r0, #0x48]
- add r1, r1, r2
- bl MOD08_02224AC4
- cmp r5, r0
- bne _02224C14
- cmp r5, #1
- bne _02224C14
- ldr r0, [r4, #0x10]
- mov r1, #1
- lsl r0, r0, #2
- add r0, r4, r0
- ldr r0, [r0, #0x48]
- bl FUN_0200C5C0
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02224C14
-_02224B76:
- ldr r0, [r4, #0x10]
- add r2, r4, #0
- add r2, #0x78
- lsl r1, r0, #2
- ldr r0, [r2, r1]
- sub r0, r0, #1
- str r0, [r2, r1]
- ldr r1, [r4, #0x10]
- lsl r0, r1, #2
- add r0, r4, r0
- ldr r0, [r0, #0x78]
- cmp r0, #0
- bge _02224C14
- add r0, r1, #1
- str r0, [r4, #0x10]
- cmp r0, #6
- bge _02224B9E
- mov r0, #0
- str r0, [r4, #0xc]
- b _02224C14
-_02224B9E:
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02224C14
-_02224BA6:
- add r6, r4, #0
- mov r7, #0
- add r6, #0x60
- add r5, r4, #0
-_02224BAE:
- mov r2, #2
- ldr r0, [r5, #0x48]
- add r1, r6, #0
- lsl r2, r2, #0xc
- bl MOD08_02224A78
- add r7, r7, #1
- add r6, r6, #4
- add r5, r5, #4
- cmp r7, #6
- blt _02224BAE
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02224C14
-_02224BCC:
- add r6, r4, #0
- mov r7, #0
- add r6, #0x60
- add r5, r4, #0
-_02224BD4:
- ldr r0, [r5, #0x48]
- add r1, r6, #0
- bl MOD08_02224AC4
- add r7, r7, #1
- add r6, r6, #4
- add r5, r5, #4
- cmp r7, #6
- blt _02224BD4
- cmp r0, #1
- bne _02224C14
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02224C14
-_02224BF2:
- mov r6, #0
- add r5, r4, #0
-_02224BF6:
- ldr r0, [r5, #0x48]
- bl FUN_0200C3DC
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #6
- blt _02224BF6
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, r6, r7, pc}
-_02224C14:
- ldr r0, [r4, #8]
- bl FUN_0200BC1C
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02224C1C
-MOD08_02224C1C: ; 0x02224C1C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x50
- str r1, [sp]
- mov r1, #0x90
- add r4, r0, #0
- str r2, [sp, #4]
- str r3, [sp, #8]
- bl MOD08_02228064
- ldr r1, [sp]
- str r4, [r0]
- str r1, [r0, #4]
- ldr r1, [sp, #4]
- str r0, [sp, #0x14]
- str r1, [r0, #8]
- ldr r0, [r0]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [sp, #0x14]
- ldr r0, [r0]
- bl MOD08_022154D4
- ldr r1, [sp, #0x14]
- str r0, [r1, #0x18]
- mov r1, #0
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r7, r0, #0x10
- ldr r0, [sp, #0x14]
- mov r1, #1
- ldr r0, [r0, #0x18]
- bl FUN_0200782C
- ldr r1, [sp, #0x14]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add r1, #0x44
- str r0, [sp, #0xc]
- strh r0, [r1]
- ldr r0, [sp, #0x14]
- ldr r0, [r0]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [sp, #0x14]
- ldr r0, [r0]
- bl MOD08_0221552C
- ldr r1, [sp, #0x14]
- add r1, #0x46
- strh r0, [r1]
- ldr r1, [sp, #0x14]
- add r0, sp, #0x1c
- ldr r1, [r1]
- bl MOD08_02215474
- ldr r5, [sp, #0x14]
- mov r4, #0
-_02224C94:
- cmp r4, #0
- bne _02224C9C
- ldr r0, [sp, #8]
- b _02224CA6
-_02224C9C:
- ldr r0, [sp]
- ldr r1, [sp, #4]
- add r2, sp, #0x1c
- bl FUN_0200C154
-_02224CA6:
- str r0, [r5, #0x48]
- ldr r0, [r5, #0x48]
- mov r1, #0
- bl FUN_0200C644
- lsr r0, r4, #0x1f
- add r0, r4, r0
- asr r1, r0, #1
- ldr r0, _02224D6C ; =0x00001555
- mov r2, #3
- mul r0, r1
- asr r0, r0, #4
- lsl r0, r0, #2
- ldr r1, _02224D70 ; =0x020FFA38
- str r0, [sp, #0x18]
- add r1, r1, r0
- mov r0, #2
- ldrsh r0, [r1, r0]
- lsl r2, r2, #0x10
- mov r3, #0
- asr r1, r0, #0x1f
- bl _ll_mul
- mov r2, #2
- lsl r2, r2, #0xa
- add r2, r0, r2
- ldr r0, _02224D74 ; =0x00000000
- adc r1, r0
- lsl r0, r1, #0x14
- lsr r1, r2, #0xc
- orr r1, r0
- lsl r0, r1, #4
- asr r6, r0, #0x10
- mov r2, #3
- ldr r1, _02224D70 ; =0x020FFA38
- ldr r0, [sp, #0x18]
- lsl r2, r2, #0x10
- ldrsh r0, [r1, r0]
- mov r3, #0
- asr r1, r0, #0x1f
- bl _ll_mul
- mov r2, #2
- lsl r2, r2, #0xa
- add r0, r0, r2
- ldr r2, _02224D74 ; =0x00000000
- adc r1, r2
- lsl r1, r1, #0x14
- lsr r0, r0, #0xc
- orr r0, r1
- lsl r0, r0, #4
- asr r0, r0, #0x10
- str r0, [sp, #0x10]
- lsr r2, r4, #0x1f
- lsl r1, r4, #0x1f
- sub r1, r1, r2
- mov r0, #0x1f
- ror r1, r0
- add r0, r2, r1
- bne _02224D2E
- add r0, r7, r6
- lsl r0, r0, #0x10
- asr r6, r0, #0x10
- ldr r0, [r5, #0x48]
- mov r1, #1
- bl FUN_0200C8D0
- b _02224D34
-_02224D2E:
- sub r0, r7, r6
- lsl r0, r0, #0x10
- asr r6, r0, #0x10
-_02224D34:
- ldr r1, [sp, #0xc]
- ldr r0, [sp, #0x10]
- sub r0, r1, r0
- lsl r0, r0, #0x10
- asr r2, r0, #0x10
- ldr r0, [r5, #0x48]
- add r1, r6, #0
- bl FUN_0200C714
- cmp r4, #2
- bge _02224D4E
- mov r0, #8
- b _02224D50
-_02224D4E:
- mov r0, #0
-_02224D50:
- add r4, r4, #1
- str r0, [r5, #0x78]
- add r5, r5, #4
- cmp r4, #6
- blt _02224C94
- ldr r0, [sp, #0x14]
- ldr r1, _02224D78 ; =MOD08_02224AF4
- ldr r0, [r0]
- ldr r2, [sp, #0x14]
- bl MOD08_02212400
- add sp, #0x50
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02224D6C: .word 0x00001555
-_02224D70: .word 0x020FFA38
-_02224D74: .word 0x00000000
-_02224D78: .word MOD08_02224AF4
-
- thumb_func_start MOD08_02224D7C
-MOD08_02224D7C: ; 0x02224D7C
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0xc]
- cmp r0, #5
- bhi _02224DBC
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02224D96: ; jump table
- .short _02224DA2 - _02224D96 - 2 ; case 0
- .short _02224DB2 - _02224D96 - 2 ; case 1
- .short _02224E12 - _02224D96 - 2 ; case 2
- .short _02224E6E - _02224D96 - 2 ; case 3
- .short _02224E9E - _02224D96 - 2 ; case 4
- .short _02224EC2 - _02224D96 - 2 ; case 5
-_02224DA2:
- ldr r0, [r4, #0x5c]
- mov r1, #1
- bl FUN_0200C5E0
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02224EDA
-_02224DB2:
- ldr r0, [r4, #0x5c]
- bl FUN_0200C608
- cmp r0, #0
- beq _02224DBE
-_02224DBC:
- b _02224EDA
-_02224DBE:
- ldr r0, [r4, #0x5c]
- mov r1, #0
- bl FUN_0200C5E0
- ldr r0, [r4, #0xc]
- mov r1, #0xa
- add r0, r0, #1
- str r0, [r4, #0xc]
- mov r0, #8
- str r0, [sp]
- add r0, r4, #0
- add r0, #0x14
- add r2, r1, #0
- mov r3, #0
- bl MOD08_02218120
- ldr r0, [r4, #0x10]
- mov r1, #0
- bl FUN_0200782C
- add r5, r0, #0
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200782C
- add r3, r0, #0
- mov r0, #0x8a
- ldrsh r0, [r4, r0]
- lsl r1, r5, #0x10
- lsl r3, r3, #0x10
- str r0, [sp]
- mov r0, #8
- str r0, [sp, #4]
- mov r2, #0x88
- add r0, r4, #0
- ldrsh r2, [r4, r2]
- add r0, #0x38
- asr r1, r1, #0x10
- asr r3, r3, #0x10
- bl MOD08_02217E80
- b _02224EDA
-_02224E12:
- add r0, r4, #0
- ldr r1, [r4, #0x10]
- add r0, #0x38
- bl MOD08_02217F2C
- add r0, r4, #0
- ldr r1, [r4, #0x10]
- add r0, #0x14
- bl MOD08_02218380
- cmp r0, #0
- bne _02224EDA
- ldr r0, [r4, #0x10]
- mov r1, #6
- mov r2, #1
- bl FUN_02007558
- mov r1, #0xc
- add r2, r1, #0
- ldr r0, [r4, #0x10]
- add r2, #0xf4
- bl FUN_02007558
- mov r1, #0xd
- add r2, r1, #0
- ldr r0, [r4, #0x10]
- add r2, #0xf3
- bl FUN_02007558
- ldr r0, [r4, #0x5c]
- mov r1, #1
- bl FUN_0200C5C0
- mov r1, #1
- ldr r0, [r4, #0x5c]
- lsl r1, r1, #0xc
- bl FUN_0200C5F4
- ldr r0, [r4, #0x5c]
- mov r1, #1
- bl FUN_0200C5E0
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02224EDA
-_02224E6E:
- ldr r0, [r4, #0x5c]
- bl FUN_0200C608
- cmp r0, #0
- bne _02224EDA
- ldr r0, [r4, #0x5c]
- mov r1, #0
- bl FUN_0200C5E0
- ldr r0, [r4, #0xc]
- mov r1, #0
- add r0, r0, #1
- str r0, [r4, #0xc]
- str r1, [sp]
- mov r0, #8
- str r0, [sp, #4]
- mov r3, #0x8a
- add r0, r4, #0
- ldrsh r3, [r4, r3]
- add r0, #0x60
- add r2, r1, #0
- bl MOD08_02217E80
- b _02224EDA
-_02224E9E:
- add r0, r4, #0
- add r0, #0x60
- bl MOD08_02217ECC
- cmp r0, #0
- beq _02224EBA
- mov r1, #0x88
- mov r2, #0x62
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x5c]
- bl FUN_0200C714
- b _02224EDA
-_02224EBA:
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02224EDA
-_02224EC2:
- ldr r0, [r4, #0x5c]
- bl FUN_0200C3DC
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #8
- pop {r3, r4, r5, pc}
-_02224EDA:
- ldr r0, [r4, #8]
- bl FUN_0200BC1C
- add sp, #8
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02224EE4
-MOD08_02224EE4: ; 0x02224EE4
- push {r3, r4, r5, r6, r7, lr}
- add r7, r1, #0
- mov r1, #0x8c
- add r5, r0, #0
- str r2, [sp]
- add r6, r3, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4]
- ldr r0, [sp]
- str r7, [r4, #4]
- str r0, [r4, #8]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- mov r1, #6
- mov r2, #0
- str r0, [r4, #0x10]
- bl FUN_02007558
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- mov r2, #0
- bl MOD08_02217B98
- add r1, r4, #0
- add r1, #0x88
- strh r0, [r1]
- add r0, r5, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r5, #0
- mov r2, #1
- bl MOD08_02217B98
- add r1, r4, #0
- add r1, #0x8a
- strh r0, [r1]
- str r6, [r4, #0x5c]
- add r0, r6, #0
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r4, #0x5c]
- mov r1, #1
- bl FUN_0200C6B0
- mov r1, #0x88
- mov r2, #0x8a
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x5c]
- bl FUN_0200C714
- ldr r0, [r4]
- ldr r1, _02224F70 ; =MOD08_02224D7C
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02224F70: .word MOD08_02224D7C
-
- thumb_func_start MOD08_02224F74
-MOD08_02224F74: ; 0x02224F74
- push {r3, r4, lr}
- sub sp, #4
- add r4, r0, #0
- add r0, r1, #0
- bl MOD08_02217C08
- mov r1, #1
- add r2, r1, #0
- lsl r2, r0
- mov r0, #0
- lsl r2, r2, #0x10
- add r4, #0xc4
- str r0, [sp]
- ldr r0, [r4]
- mov r1, #2
- lsr r2, r2, #0x10
- mov r3, #8
- bl FUN_02003A64
- add sp, #4
- pop {r3, r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02224FA0
-MOD08_02224FA0: ; 0x02224FA0
- push {r3, r4, lr}
- sub sp, #0x14
- add r4, r0, #0
- mov r1, #0xa
- mov r0, #0x14
- str r0, [sp]
- str r1, [sp, #4]
- mov r0, #8
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0x28
- add r2, r1, #0
- add r3, r1, #0
- bl MOD08_022181A8
- mov r0, #4
- str r0, [sp]
- add r0, r4, #0
- mov r1, #0xa
- add r0, #0x4c
- add r2, r1, #0
- mov r3, #1
- bl MOD08_02218120
- add r0, r4, #0
- mov r1, #0
- add r0, #0x94
- str r1, [r0]
- add r0, r4, #0
- mov r1, #6
- add r0, #0x98
- str r1, [r0]
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02227468
- add r1, r0, #0
- lsl r2, r1, #1
- ldr r1, _0222503C ; =0x0222C664
- ldr r0, [r4, #0x20]
- ldrh r1, [r1, r2]
- bl FUN_0200C644
- ldr r0, [r4, #0x18]
- mov r1, #1
- bl FUN_0200C644
- add r0, r4, #0
- add r0, #0x28
- add r1, sp, #0x10
- add r2, sp, #0xc
- bl MOD08_0221825C
- add r0, r4, #0
- add r0, #0xc8
- ldr r0, [r0]
- cmp r0, #1
- bne _02225024
- ldr r1, [sp, #0x10]
- mov r0, #0
- bl _fsub
- str r0, [sp, #0x10]
-_02225024:
- ldr r0, [r4, #0x18]
- ldr r1, [sp, #0x10]
- ldr r2, [sp, #0xc]
- bl FUN_0200C884
- ldr r1, [r4, #0x18]
- add r0, r4, #0
- bl MOD08_02224F74
- add sp, #0x14
- pop {r3, r4, pc}
- nop
-_0222503C: .word 0x0222C664
-
- thumb_func_start MOD08_02225040
-MOD08_02225040: ; 0x02225040
- push {r4, r5, lr}
- sub sp, #0x14
- add r5, r0, #0
- add r0, #0x94
- ldr r0, [r0]
- mov r4, #0
- cmp r0, #0
- beq _0222505C
- cmp r0, #1
- beq _022250E4
- cmp r0, #2
- bne _0222505A
- b _02225164
-_0222505A:
- b _02225166
-_0222505C:
- add r0, r5, #0
- add r0, #0x28
- bl MOD08_02218224
- add r0, r5, #0
- add r0, #0x28
- add r1, sp, #0x10
- add r2, sp, #0xc
- bl MOD08_0221825C
- add r0, r5, #0
- add r0, #0xc8
- ldr r0, [r0]
- cmp r0, #1
- bne _02225084
- ldr r1, [sp, #0x10]
- add r0, r4, #0
- bl _fsub
- str r0, [sp, #0x10]
-_02225084:
- ldr r0, [r5, #0x18]
- ldr r1, [sp, #0x10]
- ldr r2, [sp, #0xc]
- bl FUN_0200C884
- mov r0, #0
- str r0, [sp]
- ldr r1, [r5, #0x14]
- ldr r2, [r5, #0x10]
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- ldr r0, [r5, #0x18]
- ldr r3, [r5, #0x3c]
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl MOD08_02218314
- add r0, r5, #0
- add r0, #0x98
- ldr r0, [r0]
- sub r1, r0, #1
- add r0, r5, #0
- add r0, #0x98
- str r1, [r0]
- add r0, r5, #0
- add r0, #0x98
- ldr r0, [r0]
- cmp r0, #0
- bge _02225166
- add r0, r5, #0
- add r0, #0x94
- ldr r0, [r0]
- mov r3, #0x14
- add r1, r0, #1
- add r0, r5, #0
- add r0, #0x94
- str r1, [r0]
- str r3, [sp]
- mov r1, #0xa
- str r1, [sp, #4]
- mov r0, #4
- add r5, #0x28
- str r0, [sp, #8]
- add r0, r5, #0
- mov r2, #1
- bl MOD08_022181A8
- b _02225166
-_022250E4:
- add r0, r5, #0
- add r0, #0x28
- bl MOD08_02218224
- add r0, r5, #0
- add r0, #0x4c
- bl MOD08_02218170
- cmp r0, #0
- beq _02225142
- mov r0, #0x4c
- ldrsh r0, [r5, r0]
- add r1, sp, #0x10
- add r2, sp, #0xc
- strh r0, [r5, #0x28]
- add r0, r5, #0
- add r0, #0x28
- bl MOD08_0221825C
- add r0, r5, #0
- add r0, #0xc8
- ldr r0, [r0]
- cmp r0, #1
- bne _0222511E
- ldr r1, [sp, #0x10]
- add r0, r4, #0
- bl _fsub
- str r0, [sp, #0x10]
-_0222511E:
- ldr r0, [r5, #0x18]
- ldr r1, [sp, #0x10]
- ldr r2, [sp, #0xc]
- bl FUN_0200C884
- mov r0, #0
- str r0, [sp]
- ldr r1, [r5, #0x14]
- ldr r2, [r5, #0x10]
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- ldr r0, [r5, #0x18]
- ldr r3, [r5, #0x3c]
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl MOD08_02218314
- b _02225166
-_02225142:
- add r0, r5, #0
- add r0, #0x94
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r5, #0
- add r0, #0x94
- str r1, [r0]
- ldr r0, [r5, #0x20]
- add r1, r4, #0
- bl FUN_0200C644
- ldr r0, [r5, #0x18]
- add r1, r4, #0
- bl FUN_0200C644
- mov r4, #1
- b _02225166
-_02225164:
- mov r4, #1
-_02225166:
- add r0, r4, #0
- add sp, #0x14
- pop {r4, r5, pc}
-
- thumb_func_start MOD08_0222516C
-MOD08_0222516C: ; 0x0222516C
- push {r4, lr}
- sub sp, #0x18
- add r4, r0, #0
- add r1, sp, #0xc
- ldr r0, [r4, #0x1c]
- add r1, #2
- add r2, sp, #0xc
- bl FUN_0200C7A0
- add r1, sp, #0xc
- mov r0, #0
- ldrsh r3, [r1, r0]
- mov r0, #2
- ldrsh r1, [r1, r0]
- mov r0, #8
- str r3, [sp]
- sub r3, #0x40
- str r0, [sp, #4]
- add r0, r4, #0
- lsl r3, r3, #0x10
- add r0, #0x70
- add r2, r1, #0
- asr r3, r3, #0x10
- bl MOD08_02217E80
- mov r2, #0xa
- str r2, [sp]
- str r2, [sp, #4]
- mov r0, #8
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0x28
- mov r1, #2
- mov r3, #0x14
- bl MOD08_022181A8
- add r0, r4, #0
- add r0, #0x28
- add r1, sp, #0x14
- add r2, sp, #0x10
- bl MOD08_0221825C
- add r0, r4, #0
- add r0, #0xcc
- ldr r0, [r0]
- cmp r0, #1
- bne _022251D4
- ldr r1, [sp, #0x14]
- mov r0, #0
- bl _fsub
- str r0, [sp, #0x14]
-_022251D4:
- ldr r0, [r4, #0x1c]
- ldr r1, [sp, #0x14]
- ldr r2, [sp, #0x10]
- bl FUN_0200C884
- add r0, r4, #0
- ldr r1, [r4, #0x1c]
- add r0, #0x70
- bl MOD08_02217F08
- add r0, r4, #0
- mov r1, #0
- add r0, #0x94
- str r1, [r0]
- add r0, r4, #0
- mov r1, #6
- add r0, #0x98
- str r1, [r0]
- ldr r0, [r4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02227468
- add r1, r0, #0
- lsl r2, r1, #1
- ldr r1, _02225228 ; =0x0222C664
- ldr r0, [r4, #0x24]
- ldrh r1, [r1, r2]
- bl FUN_0200C644
- ldr r0, [r4, #0x1c]
- mov r1, #1
- bl FUN_0200C644
- ldr r1, [r4, #0x1c]
- add r0, r4, #0
- bl MOD08_02224F74
- add sp, #0x18
- pop {r4, pc}
- .align 2, 0
-_02225228: .word 0x0222C664
-
- thumb_func_start MOD08_0222522C
-MOD08_0222522C: ; 0x0222522C
- push {r4, r5, r6, lr}
- sub sp, #8
- add r5, r0, #0
- add r0, #0x94
- ldr r0, [r0]
- mov r4, #0
- cmp r0, #0
- beq _02225246
- cmp r0, #1
- beq _02225276
- cmp r0, #2
- beq _022252C8
- b _022252CA
-_02225246:
- add r0, r5, #0
- add r0, #0x98
- ldr r0, [r0]
- sub r1, r0, #1
- add r0, r5, #0
- add r0, #0x98
- str r1, [r0]
- add r0, r5, #0
- ldr r1, [r5, #0x1c]
- add r0, #0x70
- bl MOD08_02217F08
- add r0, r5, #0
- add r0, #0x98
- ldr r0, [r0]
- cmp r0, #0
- bge _022252CA
- add r0, r5, #0
- add r0, #0x94
- ldr r0, [r0]
- add r5, #0x94
- add r0, r0, #1
- str r0, [r5]
- b _022252CA
-_02225276:
- add r0, r5, #0
- ldr r1, [r5, #0x1c]
- add r0, #0x70
- bl MOD08_02217F08
- add r0, r5, #0
- add r0, #0x28
- bl MOD08_02218224
- add r6, r0, #0
- add r0, r5, #0
- add r0, #0x28
- add r1, sp, #4
- add r2, sp, #0
- bl MOD08_0221825C
- add r0, r5, #0
- add r0, #0xcc
- ldr r0, [r0]
- cmp r0, #1
- bne _022252AA
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl _fsub
- str r0, [sp, #4]
-_022252AA:
- ldr r0, [r5, #0x1c]
- ldr r1, [sp, #4]
- ldr r2, [sp]
- bl FUN_0200C884
- cmp r6, #0
- bne _022252CA
- add r0, r5, #0
- add r0, #0x94
- ldr r0, [r0]
- add r5, #0x94
- add r0, r0, #1
- str r0, [r5]
- mov r4, #1
- b _022252CA
-_022252C8:
- mov r4, #1
-_022252CA:
- add r0, r4, #0
- add sp, #8
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_022252D0
-MOD08_022252D0: ; 0x022252D0
- push {r4, lr}
- sub sp, #8
- add r4, r1, #0
- add r2, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #6
- bhi _022253AA
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_022252EA: ; jump table
- .short _022252F8 - _022252EA - 2 ; case 0
- .short _0222531C - _022252EA - 2 ; case 1
- .short _02225336 - _022252EA - 2 ; case 2
- .short _0222534C - _022252EA - 2 ; case 3
- .short _02225362 - _022252EA - 2 ; case 4
- .short _02225388 - _022252EA - 2 ; case 5
- .short _0222539C - _022252EA - 2 ; case 6
-_022252F8:
- ldr r0, [r4]
- mov r1, #0
- mov r2, #0x10
- bl MOD08_02227994
- mov r2, #8
- str r2, [sp]
- add r0, r4, #0
- str r2, [sp, #4]
- add r0, #0x9c
- mov r1, #0
- mov r3, #0x10
- bl MOD08_022186D4
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _022253AA
-_0222531C:
- add r0, r4, #0
- add r0, #0x9c
- bl MOD08_02218704
- cmp r0, #0
- beq _022253AA
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- add r0, r4, #0
- bl MOD08_02224FA0
- b _022253AA
-_02225336:
- add r0, r4, #0
- bl MOD08_02225040
- cmp r0, #0
- beq _022253AA
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- mov r0, #2
- str r0, [r4, #0xc]
- b _022253AA
-_0222534C:
- ldr r0, [r4, #0xc]
- sub r0, r0, #1
- str r0, [r4, #0xc]
- bpl _022253AA
- add r0, r4, #0
- bl MOD08_0222516C
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _022253AA
-_02225362:
- add r0, r4, #0
- bl MOD08_0222522C
- cmp r0, #0
- beq _022253AA
- ldr r0, [r4, #8]
- mov r1, #8
- add r0, r0, #1
- str r0, [r4, #8]
- mov r0, #0x10
- str r0, [sp]
- add r0, r4, #0
- add r0, #0x9c
- mov r2, #0
- add r3, r1, #0
- str r1, [sp, #4]
- bl MOD08_022186D4
- b _022253AA
-_02225388:
- add r0, r4, #0
- add r0, #0x9c
- bl MOD08_02218704
- cmp r0, #0
- beq _022253AA
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _022253AA
-_0222539C:
- ldr r0, [r4]
- add r1, r2, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
-_022253AA:
- ldr r0, [r4, #4]
- bl FUN_0200BC1C
- add sp, #8
- pop {r4, pc}
-
- thumb_func_start MOD08_022253B4
-MOD08_022253B4: ; 0x022253B4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- mov r1, #0xd0
- add r6, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r6, [r4]
- add r0, r6, #0
- bl MOD08_02212504
- str r0, [r4, #4]
- ldr r0, [r4]
- bl MOD08_02215504
- add r1, r4, #0
- add r1, #0xc4
- str r0, [r1]
- add r0, r6, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- mov r1, #0
- add r7, r0, #0
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- add r0, r7, #0
- mov r1, #1
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r5, r0, #0x10
- add r0, r7, #0
- mov r1, #0x29
- bl FUN_0200782C
- sub r0, r5, r0
- lsl r0, r0, #0x10
- asr r5, r0, #0x10
- add r0, r6, #0
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- mov r1, #0
- str r0, [sp, #4]
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r7, r0, #0x10
- ldr r0, [sp, #4]
- mov r1, #1
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r6, r0, #0x10
- ldr r0, [sp, #4]
- mov r1, #0x29
- bl FUN_0200782C
- sub r0, r6, r0
- lsl r0, r0, #0x10
- str r5, [r4, #0x14]
- asr r6, r0, #0x10
- ldr r0, [r4]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_0221552C
- str r0, [r4, #0x10]
- ldr r0, [r4]
- mov r1, #0
- bl MOD08_022124D8
- str r0, [r4, #0x18]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r4, #0x18]
- mov r1, #1
- bl FUN_0200C6B0
- ldr r0, [r4, #0x18]
- ldr r1, [sp]
- add r2, r5, #0
- bl FUN_0200C714
- ldr r0, [r4, #0x18]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0x18]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r4, #0x18]
- mov r1, #2
- bl FUN_0200C840
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_022124D8
- str r0, [r4, #0x1c]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r4, #0x1c]
- mov r1, #1
- bl FUN_0200C6B0
- ldr r0, [r4, #0x1c]
- add r1, r7, #0
- add r2, r6, #0
- bl FUN_0200C714
- ldr r0, [r4, #0x1c]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0x1c]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r4, #0x1c]
- mov r1, #2
- bl FUN_0200C840
- ldr r0, [r4, #0x1c]
- mov r1, #0
- mov r2, #0x28
- bl FUN_0200C8DC
- ldr r0, [r4]
- mov r1, #0
- bl MOD08_02215680
- add r1, r4, #0
- add r1, #0xc8
- str r0, [r1]
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_02215680
- add r1, r4, #0
- add r1, #0xcc
- str r0, [r1]
- ldr r0, [r4]
- mov r1, #2
- bl MOD08_022124D8
- str r0, [r4, #0x20]
- ldr r0, [r4]
- mov r1, #3
- bl MOD08_022124D8
- str r0, [r4, #0x24]
- ldr r0, [r4, #0x20]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0x24]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4]
- ldr r1, _02225520 ; =MOD08_022252D0
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02225520: .word MOD08_022252D0
-
- thumb_func_start MOD08_02225524
-MOD08_02225524: ; 0x02225524
- push {r4, lr}
- sub sp, #0x20
- mov r2, #0xa
- add r4, r0, #0
- add r0, #0xf8
- mov r1, #0x19
- add r3, r2, #0
- str r2, [sp]
- bl MOD08_02218120
- mov r0, #0x3a
- ldrsh r0, [r4, r0]
- add r1, r4, #0
- mov r3, #0x38
- str r0, [sp]
- mov r0, #9
- str r0, [sp, #4]
- mov r0, #3
- str r0, [sp, #8]
- mov r0, #1
- str r0, [sp, #0xc]
- ldr r0, [r4, #0x44]
- ldr r2, _02225570 ; =MOD08_02218170
- str r0, [sp, #0x10]
- ldr r0, [r4, #0x40]
- add r1, #0xf8
- str r0, [sp, #0x14]
- ldr r0, [r4, #0x3c]
- str r0, [sp, #0x18]
- mov r0, #0
- str r0, [sp, #0x1c]
- add r0, r4, #0
- ldrsh r3, [r4, r3]
- add r0, #0x48
- bl MOD08_0221847C
- add sp, #0x20
- pop {r4, pc}
- .align 2, 0
-_02225570: .word MOD08_02218170
-
- thumb_func_start MOD08_02225574
-MOD08_02225574: ; 0x02225574
- push {r4, lr}
- sub sp, #0x20
- add r4, r0, #0
- mov r0, #6
- str r0, [sp]
- add r0, r4, #0
- mov r1, #0xa
- add r0, #0xf8
- add r2, r1, #0
- mov r3, #0x19
- bl MOD08_02218120
- mov r0, #0x3a
- ldrsh r0, [r4, r0]
- add r1, r4, #0
- mov r3, #0x38
- str r0, [sp]
- mov r0, #5
- str r0, [sp, #4]
- mov r0, #3
- str r0, [sp, #8]
- mov r0, #1
- str r0, [sp, #0xc]
- ldr r0, [r4, #0x3c]
- ldr r2, _022255CC ; =MOD08_02218170
- str r0, [sp, #0x10]
- ldr r0, [r4, #0x40]
- add r1, #0xf8
- str r0, [sp, #0x14]
- ldr r0, [r4, #0x44]
- str r0, [sp, #0x18]
- mov r0, #0
- str r0, [sp, #0x1c]
- add r0, r4, #0
- ldrsh r3, [r4, r3]
- add r0, #0x48
- bl MOD08_0221847C
- ldr r0, [r4, #0x3c]
- mov r1, #1
- bl FUN_0200C644
- add sp, #0x20
- pop {r4, pc}
- .align 2, 0
-_022255CC: .word MOD08_02218170
-
- thumb_func_start MOD08_022255D0
-MOD08_022255D0: ; 0x022255D0
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r7, r0, #0
- ldr r0, [r4, #0xc]
- cmp r0, #4
- bhi _02225688
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_022255E8: ; jump table
- .short _022255F2 - _022255E8 - 2 ; case 0
- .short _02225600 - _022255E8 - 2 ; case 1
- .short _0222562E - _022255E8 - 2 ; case 2
- .short _02225652 - _022255E8 - 2 ; case 3
- .short _02225666 - _022255E8 - 2 ; case 4
-_022255F2:
- add r0, r4, #0
- bl MOD08_02225524
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02225688
-_02225600:
- add r0, r4, #0
- add r0, #0x48
- bl MOD08_02218524
- cmp r0, #0
- bne _02225688
- ldr r0, [r4, #0x3c]
- mov r1, #1
- bl FUN_0200C644
- ldr r0, [r4, #0xc]
- mov r1, #4
- add r0, r0, #1
- str r0, [r4, #0xc]
- mov r0, #6
- str r0, [sp]
- add r0, r4, #0
- add r0, #0x14
- mov r2, #0
- mov r3, #1
- bl MOD08_022183C0
- b _02225688
-_0222562E:
- mov r1, #0x38
- mov r2, #0x3a
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r3, [r4, #0x10]
- add r0, #0x14
- bl MOD08_02218454
- cmp r0, #0
- bne _02225688
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- add r0, r4, #0
- bl MOD08_02225574
- b _02225688
-_02225652:
- add r0, r4, #0
- add r0, #0x48
- bl MOD08_02218524
- cmp r0, #0
- bne _02225688
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02225688
-_02225666:
- mov r6, #0
- add r5, r4, #0
-_0222566A:
- ldr r0, [r5, #0x3c]
- bl FUN_0200C3DC
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #3
- blt _0222566A
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD08_02212438
- pop {r3, r4, r5, r6, r7, pc}
-_02225688:
- ldr r0, [r4, #8]
- bl FUN_0200BC1C
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02225690
-MOD08_02225690: ; 0x02225690
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x38
- add r6, r1, #0
- mov r1, #0x47
- lsl r1, r1, #2
- add r5, r0, #0
- str r2, [sp]
- add r7, r3, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4]
- ldr r0, [sp]
- str r6, [r4, #4]
- str r0, [r4, #8]
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- str r0, [r4, #0x10]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #0x38]
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #0x3a]
- ldr r0, [r4, #0x10]
- mov r1, #0x29
- bl FUN_0200782C
- mov r1, #0x3a
- ldrsh r1, [r4, r1]
- sub r0, r1, r0
- strh r0, [r4, #0x3a]
- add r0, sp, #4
- add r1, r5, #0
- bl MOD08_02215474
- mov r6, #0
- add r5, r4, #0
-_022256EC:
- cmp r6, #0
- bne _022256FC
- add r0, r7, #0
- mov r1, #1
- str r7, [r5, #0x3c]
- bl FUN_0200C5C0
- b _0222570E
-_022256FC:
- ldr r0, [r4, #4]
- ldr r1, [r4, #8]
- add r2, sp, #4
- bl FUN_0200C154
- mov r1, #1
- str r0, [r5, #0x3c]
- bl FUN_0200C90C
-_0222570E:
- ldr r0, [r5, #0x3c]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r5, #0x3c]
- mov r1, #1
- bl FUN_0200C6B0
- mov r1, #0x38
- mov r2, #0x3a
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r5, #0x3c]
- bl FUN_0200C714
- ldr r0, [r5, #0x3c]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r5, #0x3c]
- mov r1, #2
- bl FUN_0200C840
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #3
- blt _022256EC
- ldr r0, [r4]
- ldr r1, _02225754 ; =MOD08_022255D0
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x38
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02225754: .word MOD08_022255D0
-
- thumb_func_start MOD08_02225758
-MOD08_02225758: ; 0x02225758
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r5, r0, #0
- mov r7, #0
- add r6, r5, #0
- str r1, [sp, #0x10]
- add r6, #0x30
- add r4, r7, #0
-_02225768:
- mov r0, #0
- str r0, [sp]
- mov r0, #0x32
- lsl r0, r0, #0xc
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- mov r0, #0x30
- mov r1, #0
- str r0, [sp, #0xc]
- ldr r2, _022257A8 ; =0x00007FFF
- add r0, r6, #0
- add r3, r1, #0
- bl MOD08_02217D14
- ldr r0, [r5, #0x38]
- add r7, r7, #1
- add r0, r0, r4
- str r0, [r5, #0x38]
- ldr r1, [r5, #0x48]
- ldr r0, [sp, #0x10]
- add r6, #0x24
- mul r0, r1
- str r0, [r5, #0x48]
- ldr r0, _022257AC ; =0x00002AAA
- add r5, #0x24
- add r4, r4, r0
- cmp r7, #6
- blt _02225768
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- nop
-_022257A8: .word 0x00007FFF
-_022257AC: .word 0x00002AAA
-
- thumb_func_start MOD08_022257B0
-MOD08_022257B0: ; 0x022257B0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r6, r0, #0
- mov r0, #0
- str r0, [sp, #4]
- add r0, r6, #0
- str r0, [sp]
- add r0, #0x30
- str r0, [sp]
- add r5, r6, #0
- add r4, r6, #0
-_022257C6:
- ldr r0, [sp]
- bl MOD08_02217D98
- ldr r1, [r5, #0x38]
- mov r2, #0xa
- lsl r0, r1, #2
- add r0, r1, r0
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- asr r0, r0, #4
- lsl r1, r0, #2
- ldr r0, _0222586C ; =0x020FFA38
- ldr r3, [r6, #0x14]
- ldrsh r0, [r0, r1]
- lsl r2, r2, #0xc
- mul r2, r3
- asr r1, r0, #0x1f
- asr r3, r2, #0x1f
- bl _ll_mul
- add r3, r1, #0
- mov r1, #0x13
- lsl r1, r1, #4
- mov r2, #0x30
- add r7, r0, #0
- ldrsh r1, [r6, r1]
- ldrsh r2, [r5, r2]
- ldr r0, [r4, #0x18]
- add r1, r1, r2
- ldr r2, _02225870 ; =0x00000132
- lsl r1, r1, #0x10
- ldrsh r2, [r6, r2]
- asr r1, r1, #0x10
- mov ip, r2
- mov r2, #2
- lsl r2, r2, #0xa
- add r7, r7, r2
- ldr r2, _02225874 ; =0x00000000
- adc r3, r2
- lsl r2, r3, #0x14
- lsr r3, r7, #0xc
- orr r3, r2
- lsl r2, r3, #4
- asr r2, r2, #0x10
- mov r3, ip
- add r2, r3, r2
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- bl FUN_0200C714
- ldr r1, [r5, #0x38]
- ldr r0, _02225878 ; =0x00003FFF
- cmp r1, r0
- blt _02225842
- ldr r0, _0222587C ; =0x0000BF49
- cmp r1, r0
- bgt _02225842
- ldr r0, [r4, #0x18]
- mov r1, #1
- bl FUN_0200C6B0
- b _02225852
-_02225842:
- ldr r0, [r6]
- bl MOD08_02215574
- add r1, r0, #0
- ldr r0, [r4, #0x18]
- add r1, r1, #1
- bl FUN_0200C6B0
-_02225852:
- ldr r0, [sp]
- add r5, #0x24
- add r0, #0x24
- str r0, [sp]
- ldr r0, [sp, #4]
- add r4, r4, #4
- add r0, r0, #1
- str r0, [sp, #4]
- cmp r0, #6
- blt _022257C6
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0222586C: .word 0x020FFA38
-_02225870: .word 0x00000132
-_02225874: .word 0x00000000
-_02225878: .word 0x00003FFF
-_0222587C: .word 0x0000BF49
-
- thumb_func_start MOD08_02225880
-MOD08_02225880: ; 0x02225880
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r4, r1, #0
- add r7, r0, #0
- ldr r0, [r4, #0xc]
- cmp r0, #4
- bhi _02225966
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0222589A: ; jump table
- .short _022258A4 - _0222589A - 2 ; case 0
- .short _022258DA - _0222589A - 2 ; case 1
- .short _022258FA - _0222589A - 2 ; case 2
- .short _02225926 - _0222589A - 2 ; case 3
- .short _02225942 - _0222589A - 2 ; case 4
-_022258A4:
- ldr r0, [r4]
- mov r1, #1
- mov r2, #0xf
- bl MOD08_02227994
- mov r0, #0
- str r0, [sp]
- mov r0, #0xa
- str r0, [sp, #4]
- add r0, #0xfe
- add r0, r4, r0
- mov r1, #1
- mov r2, #0x10
- mov r3, #0xf
- bl MOD08_022186D4
- ldr r1, [r4, #0x14]
- add r0, r4, #0
- bl MOD08_02225758
- add r0, r4, #0
- bl MOD08_022257B0
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02225966
-_022258DA:
- add r0, r4, #0
- bl MOD08_022257B0
- mov r0, #0x42
- lsl r0, r0, #2
- add r0, r4, r0
- bl MOD08_02218704
- cmp r0, #0
- beq _02225966
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- mov r0, #0x1c
- str r0, [r4, #0x10]
- b _02225966
-_022258FA:
- add r0, r4, #0
- bl MOD08_022257B0
- ldr r0, [r4, #0x10]
- sub r0, r0, #1
- str r0, [r4, #0x10]
- bpl _02225966
- ldr r0, [r4, #0xc]
- mov r1, #0x10
- add r0, r0, #1
- str r0, [r4, #0xc]
- mov r0, #0xf
- str r0, [sp]
- mov r0, #0xa
- str r0, [sp, #4]
- add r0, #0xfe
- add r0, r4, r0
- mov r2, #1
- mov r3, #0
- bl MOD08_022186D4
- b _02225966
-_02225926:
- add r0, r4, #0
- bl MOD08_022257B0
- mov r0, #0x42
- lsl r0, r0, #2
- add r0, r4, r0
- bl MOD08_02218704
- cmp r0, #0
- beq _02225966
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02225966
-_02225942:
- mov r6, #0
- add r5, r4, #0
-_02225946:
- ldr r0, [r5, #0x18]
- bl FUN_0200C3DC
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #6
- blt _02225946
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD08_02212438
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-_02225966:
- ldr r0, [r4, #8]
- bl FUN_0200BC1C
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02225970
-MOD08_02225970: ; 0x02225970
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x38
- add r5, r1, #0
- mov r1, #0x4d
- lsl r1, r1, #2
- add r4, r0, #0
- str r2, [sp]
- add r7, r3, #0
- bl MOD08_02228064
- add r6, r0, #0
- str r4, [r6]
- ldr r0, [sp]
- str r5, [r6, #4]
- str r0, [r6, #8]
- add r0, r4, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r6]
- bl MOD08_022154D4
- mov r1, #0
- add r5, r0, #0
- bl FUN_0200782C
- mov r1, #0x13
- lsl r1, r1, #4
- strh r0, [r6, r1]
- add r0, r5, #0
- mov r1, #1
- bl FUN_0200782C
- ldr r1, _02225A14 ; =0x00000132
- strh r0, [r6, r1]
- add r0, sp, #4
- add r1, r4, #0
- bl MOD08_02215474
- mov r4, #0
- add r5, r6, #0
-_022259C2:
- cmp r4, #0
- bne _022259CA
- str r7, [r5, #0x18]
- b _022259D6
-_022259CA:
- ldr r0, [r6, #4]
- ldr r1, [r6, #8]
- add r2, sp, #4
- bl FUN_0200C154
- str r0, [r5, #0x18]
-_022259D6:
- ldr r0, [r5, #0x18]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r5, #0x18]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r5, #0x18]
- mov r1, #1
- bl FUN_0200C5E0
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #6
- blt _022259C2
- ldr r0, [r6]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r6]
- bl MOD08_02217C1C
- str r0, [r6, #0x14]
- ldr r0, [r6]
- ldr r1, _02225A18 ; =MOD08_02225880
- add r2, r6, #0
- bl MOD08_02212400
- add sp, #0x38
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02225A14: .word 0x00000132
-_02225A18: .word MOD08_02225880
-
- thumb_func_start MOD08_02225A1C
-MOD08_02225A1C: ; 0x02225A1C
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r7, r1, #0
- add r1, sp, #8
- add r5, r2, #0
- add r1, #2
- add r2, sp, #8
- add r6, r0, #0
- add r4, r3, #0
- bl FUN_0200C7A0
- add r0, sp, #8
- mov r1, #0
- ldrsh r3, [r0, r1]
- mov r1, #2
- ldrsh r2, [r0, r1]
- lsl r0, r4, #7
- neg r0, r0
- add r0, r3, r0
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- lsl r1, r2, #0x10
- lsl r4, r5, #8
- add r2, r2, r4
- str r0, [sp]
- mov r0, #0x3b
- lsl r2, r2, #0x10
- lsl r3, r3, #0x10
- str r0, [sp, #4]
- add r0, r7, #0
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- asr r3, r3, #0x10
- bl MOD08_02217E80
- add r0, r6, #0
- mov r1, #1
- bl FUN_0200C644
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02225A70
-MOD08_02225A70: ; 0x02225A70
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r4, r0, #0
- add r0, r1, #0
- add r1, r4, #0
- bl MOD08_02217F08
- cmp r0, #0
- beq _02225B2A
- add r1, sp, #8
- add r0, r4, #0
- add r1, #2
- add r2, sp, #8
- bl FUN_0200C7A0
- add r1, sp, #8
- mov r0, #2
- ldrsh r0, [r1, r0]
- mov r1, #0x5b
- lsl r1, r1, #2
- str r0, [sp]
- ldr r0, [sp]
- mov r2, #0xe
- mul r1, r0
- lsl r0, r1, #0x10
- lsr r0, r0, #0x10
- asr r0, r0, #4
- lsl r1, r0, #2
- ldr r0, _02225B30 ; =0x020FFA38
- lsl r2, r2, #0xc
- ldrsh r0, [r0, r1]
- mov r3, #0
- asr r7, r0, #0x1f
- add r1, r7, #0
- str r0, [sp, #4]
- bl _ll_mul
- add r3, r0, #0
- add r5, r1, #0
- add r6, sp, #8
- mov r2, #0
- ldrsh r2, [r6, r2]
- mov r6, #2
- lsl r6, r6, #0xa
- add r0, r4, #0
- add r6, r3, r6
- ldr r3, _02225B34 ; =0x00000000
- ldr r1, [sp]
- adc r5, r3
- lsl r3, r5, #0x14
- lsr r5, r6, #0xc
- orr r5, r3
- lsl r3, r5, #4
- asr r3, r3, #0x10
- add r2, r2, r3
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- bl FUN_0200C714
- mov r2, #0xae
- ldr r0, [sp, #4]
- add r1, r7, #0
- lsl r2, r2, #2
- mov r3, #0
- bl _ll_mul
- mov r2, #2
- mov r3, #0
- lsl r2, r2, #0xa
- add r2, r0, r2
- adc r1, r3
- lsl r0, r1, #0x14
- lsr r1, r2, #0xc
- orr r1, r0
- neg r0, r1
- bl _fflt
- ldr r1, _02225B38 ; =0x45800000
- bl _fdiv
- add r1, r0, #0
- mov r0, #0xfe
- lsl r0, r0, #0x16
- bl _fadd
- add r1, r0, #0
- add r0, r4, #0
- add r2, r1, #0
- bl FUN_0200C884
- add sp, #0xc
- mov r0, #0
- pop {r4, r5, r6, r7, pc}
-_02225B2A:
- mov r0, #1
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02225B30: .word 0x020FFA38
-_02225B34: .word 0x00000000
-_02225B38: .word 0x45800000
-
- thumb_func_start MOD08_02225B3C
-MOD08_02225B3C: ; 0x02225B3C
- push {r3, r4, r5, r6, r7, lr}
- mov r1, #0x9d
- add r7, r0, #0
- lsl r1, r1, #2
- ldr r0, [r7, r1]
- cmp r0, #0xf
- bge _02225B84
- sub r0, r1, #4
- ldr r0, [r7, r0]
- add r2, r0, #1
- sub r0, r1, #4
- str r2, [r7, r0]
- ldr r0, [r7, r0]
- cmp r0, #6
- ble _02225B84
- mov r2, #0
- sub r0, r1, #4
- str r2, [r7, r0]
- ldr r1, [r7, r1]
- add r3, r7, #0
- lsl r0, r1, #2
- mov r2, #0x24
- add r0, r7, r0
- add r3, #0x54
- mul r2, r1
- add r1, r3, r2
- ldr r0, [r0, #0x18]
- ldr r2, [r7, #0x10]
- ldr r3, [r7, #0x14]
- bl MOD08_02225A1C
- mov r0, #0x9d
- lsl r0, r0, #2
- ldr r1, [r7, r0]
- add r1, r1, #1
- str r1, [r7, r0]
-_02225B84:
- mov r0, #0x9d
- lsl r0, r0, #2
- ldr r0, [r7, r0]
- mov r4, #0
- cmp r0, #0
- ble _02225BB0
- add r6, r7, #0
- add r6, #0x54
- add r5, r7, #0
-_02225B96:
- ldr r0, [r5, #0x18]
- add r1, r6, #0
- bl MOD08_02225A70
- str r0, [sp]
- mov r0, #0x9d
- lsl r0, r0, #2
- ldr r0, [r7, r0]
- add r4, r4, #1
- add r6, #0x24
- add r5, r5, #4
- cmp r4, r0
- blt _02225B96
-_02225BB0:
- cmp r0, #0xf
- blt _02225BBE
- ldr r0, [sp]
- cmp r0, #1
- bne _02225BBE
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_02225BBE:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02225BC4
-MOD08_02225BC4: ; 0x02225BC4
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- add r7, r0, #0
- add r0, r6, #0
- bl MOD08_02225B3C
- cmp r0, #0
- beq _02225BF6
- mov r4, #0
- add r5, r6, #0
-_02225BD8:
- ldr r0, [r5, #0x18]
- bl FUN_0200C3DC
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #0xf
- blt _02225BD8
- add r0, r6, #0
- bl FreeToHeap
- ldr r0, [r6]
- add r1, r7, #0
- bl MOD08_02212438
- pop {r3, r4, r5, r6, r7, pc}
-_02225BF6:
- ldr r0, [r6, #8]
- bl FUN_0200BC1C
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02225C00
-MOD08_02225C00: ; 0x02225C00
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x40
- add r5, r1, #0
- mov r1, #0x9e
- lsl r1, r1, #2
- add r4, r0, #0
- str r2, [sp]
- add r7, r3, #0
- bl MOD08_02228064
- add r6, r0, #0
- str r4, [r6]
- ldr r0, [sp]
- str r5, [r6, #4]
- str r0, [r6, #8]
- add r0, r4, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r6]
- bl MOD08_022154D4
- mov r1, #0
- add r5, r0, #0
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp, #8]
- add r0, r5, #0
- mov r1, #1
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp, #4]
- add r0, sp, #0xc
- add r1, r4, #0
- bl MOD08_02215474
- mov r4, #0
- add r5, r6, #0
-_02225C54:
- cmp r4, #0
- bne _02225C5C
- str r7, [r5, #0x18]
- b _02225C68
-_02225C5C:
- ldr r0, [r6, #4]
- ldr r1, [r6, #8]
- add r2, sp, #0xc
- bl FUN_0200C154
- str r0, [r5, #0x18]
-_02225C68:
- ldr r0, [r5, #0x18]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r5, #0x18]
- mov r1, #1
- bl FUN_0200C6B0
- ldr r0, [r5, #0x18]
- mov r1, #2
- bl FUN_0200C840
- ldr r0, [r5, #0x18]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r5, #0x18]
- ldr r1, [sp, #8]
- ldr r2, [sp, #4]
- bl FUN_0200C714
- add r0, r4, #0
- mov r1, #3
- bl _s32_div_f
- ldr r0, [r5, #0x18]
- bl FUN_0200C5C0
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #0xf
- blt _02225C54
- ldr r0, [r6]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r6]
- bl MOD08_02217C1C
- str r0, [r6, #0x10]
- ldr r0, [r6]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r6]
- bl MOD08_02217C44
- str r0, [r6, #0x14]
- ldr r0, [r6]
- ldr r1, _02225CD8 ; =MOD08_02225BC4
- add r2, r6, #0
- bl MOD08_02212400
- add sp, #0x40
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02225CD8: .word MOD08_02225BC4
-
- thumb_func_start MOD08_02225CDC
-MOD08_02225CDC: ; 0x02225CDC
- ldr r1, [r0, #0x2c]
- cmp r1, #0
- beq _02225CEC
- cmp r1, #1
- beq _02225D00
- cmp r1, #2
- beq _02225D14
- bx lr
-_02225CEC:
- ldr r1, _02225D28 ; =0x00007FFF
- str r1, [r0, #0x18]
- mov r1, #5
- str r1, [r0, #0x24]
- mov r1, #1
- lsl r1, r1, #0x10
- str r1, [r0, #0x1c]
- mov r1, #0x10
- str r1, [r0, #0x28]
- bx lr
-_02225D00:
- ldr r1, _02225D28 ; =0x00007FFF
- str r1, [r0, #0x18]
- mov r1, #4
- mvn r1, r1
- str r1, [r0, #0x24]
- ldr r1, _02225D2C ; =0xFFFF0000
- str r1, [r0, #0x1c]
- mov r1, #0x10
- str r1, [r0, #0x28]
- bx lr
-_02225D14:
- ldr r1, _02225D28 ; =0x00007FFF
- str r1, [r0, #0x18]
- mov r1, #0xa
- str r1, [r0, #0x24]
- lsl r1, r1, #0xd
- str r1, [r0, #0x1c]
- mov r1, #0x10
- str r1, [r0, #0x28]
- bx lr
- nop
-_02225D28: .word 0x00007FFF
-_02225D2C: .word 0xFFFF0000
-
- thumb_func_start MOD08_02225D30
-MOD08_02225D30: ; 0x02225D30
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r5, r0, #0
- ldr r0, [r5, #4]
- bl MOD08_02218894
- str r0, [sp, #8]
- ldr r0, [r5, #0x10]
- str r0, [sp]
- str r0, [sp, #4]
- sub r0, #8
- str r0, [sp, #4]
- ldr r0, [sp]
- add r0, #0x58
- str r0, [sp]
- ldr r0, [sp, #4]
- cmp r0, #0
- bge _02225D58
- mov r0, #0
- str r0, [sp, #4]
-_02225D58:
- ldr r0, [sp]
- cmp r0, #0xc0
- ble _02225D62
- mov r0, #0xc0
- str r0, [sp]
-_02225D62:
- mov r0, #0
- ldr r1, [r5, #0x20]
- mvn r0, r0
- mul r0, r1
- ldr r4, [sp, #4]
- str r0, [r5, #0x20]
- ldr r0, [sp]
- add r1, r4, #0
- cmp r1, r0
- bge _02225E02
-_02225D76:
- mov r0, #2
- tst r0, r4
- ldr r1, [r5, #0x1c]
- beq _02225D86
- ldr r0, [r5, #0x20]
- lsl r0, r0, #0xc
- add r2, r1, r0
- b _02225D8C
-_02225D86:
- ldr r0, [r5, #0x20]
- lsl r0, r0, #0xc
- sub r2, r1, r0
-_02225D8C:
- ldr r1, [sp, #4]
- ldr r0, [r5, #0x18]
- sub r3, r4, r1
- ldr r1, _02225E08 ; =0x00000199
- mul r1, r3
- add r0, r0, r1
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- asr r0, r0, #4
- lsl r1, r0, #2
- ldr r0, _02225E0C ; =0x020FFA38
- asr r3, r2, #0x1f
- ldrsh r0, [r0, r1]
- asr r1, r0, #0x1f
- bl _ll_mul
- mov r2, #2
- lsl r2, r2, #0xa
- add r2, r0, r2
- ldr r0, _02225E10 ; =0x00000000
- adc r1, r0
- lsl r0, r1, #0x14
- lsr r1, r2, #0xc
- orr r1, r0
- lsl r0, r1, #4
- asr r7, r0, #0x10
- ldr r0, [r5, #0x14]
- ldr r1, [r5, #0x24]
- sub r0, r4, r0
- mul r0, r1
- mov r1, #0xa
- bl _s32_div_f
- add r0, r7, r0
- lsl r0, r0, #0x10
- ldr r1, [r5, #0x30]
- asr r7, r0, #0x10
- lsl r0, r1, #0x10
- lsr r1, r1, #0x10
- lsl r1, r1, #0x10
- asr r0, r0, #0x10
- asr r1, r1, #0x10
- sub r6, r4, #1
- bpl _02225DE6
- add r6, #0xc0
-_02225DE6:
- add r0, r0, r7
- lsl r0, r0, #0x10
- lsl r1, r1, #0x10
- lsr r0, r0, #0x10
- lsr r1, r1, #0x10
- bl MOD08_02218998
- ldr r1, [sp, #8]
- lsl r2, r6, #2
- str r0, [r1, r2]
- ldr r0, [sp]
- add r4, r4, #1
- cmp r4, r0
- blt _02225D76
-_02225E02:
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- nop
-_02225E08: .word 0x00000199
-_02225E0C: .word 0x020FFA38
-_02225E10: .word 0x00000000
-
- thumb_func_start MOD08_02225E14
-MOD08_02225E14: ; 0x02225E14
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r6, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #0
- beq _02225E2A
- cmp r0, #1
- beq _02225E3E
- cmp r0, #2
- beq _02225E68
- pop {r4, r5, r6, pc}
-_02225E2A:
- add r0, r4, #0
- bl MOD08_02225CDC
- add r0, r4, #0
- bl MOD08_02225D30
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- pop {r4, r5, r6, pc}
-_02225E3E:
- ldr r0, [r4, #0x28]
- sub r0, r0, #1
- str r0, [r4, #0x28]
- add r0, r4, #0
- bl MOD08_02225D30
- ldr r0, [r4, #0x28]
- cmp r0, #0
- bge _02225EFA
- ldr r0, [r4, #0x2c]
- add r0, r0, #1
- str r0, [r4, #0x2c]
- cmp r0, #3
- bge _02225E60
- mov r0, #0
- str r0, [r4, #8]
- pop {r4, r5, r6, pc}
-_02225E60:
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- pop {r4, r5, r6, pc}
-_02225E68:
- ldr r0, [r4, #0xc]
- mov r1, #6
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #4]
- bl MOD08_022188A8
- ldr r0, [r4, #4]
- bl MOD08_02218870
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_02215588
- add r5, r0, #0
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_02215600
- add r1, r0, #0
- lsl r0, r5, #0x18
- lsl r1, r1, #0x18
- lsr r0, r0, #0x18
- lsr r1, r1, #0x18
- bl FUN_020178BC
- ldr r0, [r4]
- bl MOD08_02215574
- add r1, r0, #0
- lsl r1, r1, #0x18
- mov r0, #0
- lsr r1, r1, #0x18
- bl FUN_020178BC
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_02215588
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD08_02212014
- add r3, r0, #0
- lsl r0, r5, #0x18
- mov r1, #1
- lsr r0, r0, #0x18
- lsl r1, r1, #0xe
- mov r2, #0
- bl FUN_02017F18
- ldr r0, [r4]
- bl MOD08_02212490
- add r5, r0, #0
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_02215588
- add r1, r0, #0
- lsl r1, r1, #0x18
- add r0, r5, #0
- lsr r1, r1, #0x18
- bl FUN_02018744
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [r4]
- add r1, r6, #0
- bl MOD08_02212438
-_02225EFA:
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_02225EFC
-MOD08_02225EFC: ; 0x02225EFC
- push {r3, r4, r5, r6, r7, lr}
- mov r1, #0x34
- add r7, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r7, [r4]
- add r0, r7, #0
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- mov r1, #0
- str r0, [r4, #0xc]
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r6, r0, #0x10
- ldr r0, [r4, #0xc]
- mov r1, #1
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r5, r0, #0x10
- ldr r0, [r4, #0xc]
- mov r1, #0x29
- bl FUN_0200782C
- sub r0, r5, r0
- lsl r0, r0, #0x10
- asr r5, r0, #0x10
- ldr r0, [r4, #0xc]
- mov r1, #6
- mov r2, #1
- bl FUN_02007558
- sub r6, #0x28
- lsl r0, r6, #0x10
- str r5, [r4, #0x14]
- sub r5, #0x28
- asr r0, r0, #0x10
- neg r0, r0
- neg r1, r5
- lsl r0, r0, #0x10
- lsl r1, r1, #0x10
- str r5, [r4, #0x10]
- lsr r0, r0, #0x10
- lsr r1, r1, #0x10
- bl MOD08_02218998
- str r0, [r4, #0x30]
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_022155C4
- bl MOD08_022189A0
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD08_02212014
- add r2, r0, #0
- ldr r1, [r4, #0x30]
- add r0, r5, #0
- bl MOD08_022187F4
- str r0, [r4, #4]
- mov r0, #1
- str r0, [r4, #0x20]
- add r0, r7, #0
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_02227468
- sub r0, r0, #3
- cmp r0, #1
- bhi _02225FD0
- ldr r0, [r4]
- mov r1, #1
- bl MOD08_02215588
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD08_02215574
- add r1, r0, #0
- lsl r0, r5, #0x18
- lsl r1, r1, #0x18
- lsr r0, r0, #0x18
- lsr r1, r1, #0x18
- bl FUN_020178BC
- ldr r0, [r4]
- bl MOD08_02215574
- add r1, r0, #0
- add r1, r1, #1
- lsl r1, r1, #0x18
- mov r0, #0
- lsr r1, r1, #0x18
- bl FUN_020178BC
-_02225FD0:
- ldr r0, [r4]
- ldr r1, _02225FDC ; =MOD08_02225E14
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02225FDC: .word MOD08_02225E14
-
- thumb_func_start MOD08_02225FE0
-MOD08_02225FE0: ; 0x02225FE0
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #4]
- cmp r0, #5
- bls _02225FF0
- b _02226134
-_02225FF0:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02225FFC: ; jump table
- .short _02226008 - _02225FFC - 2 ; case 0
- .short _0222604E - _02225FFC - 2 ; case 1
- .short _02226088 - _02225FFC - 2 ; case 2
- .short _022260C2 - _02225FFC - 2 ; case 3
- .short _0222610E - _02225FFC - 2 ; case 4
- .short _02226126 - _02225FFC - 2 ; case 5
-_02226008:
- mov r2, #0
- str r2, [sp]
- mov r0, #8
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0xc
- mov r1, #0x7f
- add r3, r2, #0
- bl MOD08_02217E80
- mov r2, #1
- lsl r2, r2, #0x1a
- ldr r1, [r2]
- ldr r0, _02226138 ; =0xFFFF1FFF
- and r1, r0
- lsr r0, r2, #0xd
- orr r0, r1
- str r0, [r2]
- mov r1, #0
- ldr r0, [r4]
- add r2, r1, #0
- bl MOD08_02227A4C
- ldr r1, _0222613C ; =0x04000040
- mov r0, #0xff
- strh r0, [r1]
- mov r0, #0xbf
- strh r0, [r1, #4]
- mov r0, #7
- str r0, [r4, #8]
- ldr r0, [r4, #4]
- add sp, #0xc
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, pc}
-_0222604E:
- ldr r0, [r4, #8]
- sub r0, r0, #1
- str r0, [r4, #8]
- bpl _02226134
- ldr r0, [r4]
- bl MOD08_02215504
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD08_02214540
- add r2, r0, #0
- mov r3, #0
- lsl r2, r2, #0x10
- str r3, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- ldr r0, _02226140 ; =0x0000FFFF
- mov r1, #1
- str r0, [sp, #8]
- add r0, r5, #0
- lsr r2, r2, #0x10
- bl FUN_02003210
- ldr r0, [r4, #4]
- add sp, #0xc
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, pc}
-_02226088:
- add r0, r4, #0
- add r0, #0xc
- bl MOD08_02217ECC
- cmp r0, #0
- beq _022260B8
- mov r0, #0xc
- ldrsh r2, [r4, r0]
- mov r0, #0x7f
- add sp, #0xc
- sub r0, r0, r2
- lsl r1, r0, #8
- mov r0, #0xff
- lsl r0, r0, #8
- add r2, #0x80
- and r1, r0
- lsl r0, r2, #0x18
- lsr r0, r0, #0x18
- orr r0, r1
- ldr r1, _0222613C ; =0x04000040
- strh r0, [r1]
- mov r0, #0xbf
- strh r0, [r1, #4]
- pop {r4, r5, pc}
-_022260B8:
- ldr r0, [r4, #4]
- add sp, #0xc
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, pc}
-_022260C2:
- ldr r0, [r4]
- bl MOD08_02215504
- bl FUN_020038E4
- cmp r0, #0
- bne _02226134
- ldr r0, [r4, #4]
- mov r2, #1
- add r0, r0, #1
- str r0, [r4, #4]
- lsl r2, r2, #0x1a
- ldr r1, [r2]
- ldr r0, _02226138 ; =0xFFFF1FFF
- and r0, r1
- str r0, [r2]
- ldr r0, [r4]
- bl MOD08_02215504
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD08_02214540
- add r2, r0, #0
- mov r0, #0x10
- str r0, [sp]
- mov r3, #0
- lsl r2, r2, #0x10
- ldr r0, _02226140 ; =0x0000FFFF
- str r3, [sp, #4]
- str r0, [sp, #8]
- add r0, r5, #0
- mov r1, #1
- lsr r2, r2, #0x10
- bl FUN_02003210
- add sp, #0xc
- pop {r4, r5, pc}
-_0222610E:
- ldr r0, [r4]
- bl MOD08_02215504
- bl FUN_020038E4
- cmp r0, #0
- bne _02226134
- ldr r0, [r4, #4]
- add sp, #0xc
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, pc}
-_02226126:
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
-_02226134:
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-_02226138: .word 0xFFFF1FFF
-_0222613C: .word 0x04000040
-_02226140: .word 0x0000FFFF
-
- thumb_func_start MOD08_02226144
-MOD08_02226144: ; 0x02226144
- push {r4, lr}
- mov r1, #0x34
- add r4, r0, #0
- bl MOD08_02228064
- add r2, r0, #0
- ldr r1, _0222615C ; =MOD08_02225FE0
- add r0, r4, #0
- str r4, [r2]
- bl MOD08_02212400
- pop {r4, pc}
- .align 2, 0
-_0222615C: .word MOD08_02225FE0
-
- thumb_func_start MOD08_02226160
-MOD08_02226160: ; 0x02226160
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0xc]
- cmp r0, #4
- bhi _02226210
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0222617A: ; jump table
- .short _02226184 - _0222617A - 2 ; case 0
- .short _022261AA - _0222617A - 2 ; case 1
- .short _022261BE - _0222617A - 2 ; case 2
- .short _022261E4 - _0222617A - 2 ; case 3
- .short _022261F8 - _0222617A - 2 ; case 4
-_02226184:
- ldr r0, [r4]
- mov r1, #0
- mov r2, #0x10
- bl MOD08_02227994
- mov r1, #0
- mov r2, #0x10
- str r1, [sp]
- mov r0, #8
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x14
- add r3, r2, #0
- bl MOD08_022186D4
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02226210
-_022261AA:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02218704
- cmp r0, #0
- beq _02226210
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02226210
-_022261BE:
- ldr r0, [r4, #0x10]
- bl FUN_0200C608
- cmp r0, #0
- bne _02226210
- ldr r0, [r4, #0xc]
- mov r2, #0
- add r0, r0, #1
- str r0, [r4, #0xc]
- mov r1, #0x10
- str r1, [sp]
- mov r0, #8
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x14
- add r3, r2, #0
- bl MOD08_022186D4
- b _02226210
-_022261E4:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02218704
- cmp r0, #0
- beq _02226210
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02226210
-_022261F8:
- ldr r0, [r4, #0x10]
- bl FUN_0200C3DC
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #8
- pop {r3, r4, r5, pc}
-_02226210:
- ldr r0, [r4, #8]
- bl FUN_0200BC1C
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0222621C
-MOD08_0222621C: ; 0x0222621C
- push {r3, r4, r5, r6, r7, lr}
- add r7, r1, #0
- mov r1, #0x3c
- add r6, r0, #0
- str r2, [sp]
- add r5, r3, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r6, [r4]
- ldr r0, [sp]
- str r7, [r4, #4]
- str r0, [r4, #8]
- str r5, [r4, #0x10]
- add r0, r5, #0
- mov r1, #1
- bl FUN_0200C5E0
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r4]
- ldr r1, _02226254 ; =MOD08_02226160
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02226254: .word MOD08_02226160
-
- thumb_func_start MOD08_02226258
-MOD08_02226258: ; 0x02226258
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #4]
- cmp r0, #4
- bhi _0222631C
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02226272: ; jump table
- .short _0222627C - _02226272 - 2 ; case 0
- .short _022262E6 - _02226272 - 2 ; case 1
- .short _02226328 - _02226272 - 2 ; case 2
- .short _02226394 - _02226272 - 2 ; case 3
- .short _022263E6 - _02226272 - 2 ; case 4
-_0222627C:
- ldr r0, [r4, #0x68]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- ldr r0, [r4, #0x6c]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp, #4]
- ldr r0, [r4, #0x74]
- asr r0, r0, #0x10
- str r0, [sp, #8]
- ldr r1, [r4, #0x5c]
- ldr r2, [r4, #0x60]
- ldr r3, [r4, #0x64]
- add r0, r4, #0
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- lsl r3, r3, #0x10
- add r0, #0x14
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- asr r3, r3, #0x10
- bl MOD08_022181A8
- mov r1, #0xa
- mov r2, #8
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r3, [r4, #0x10]
- add r0, #0x38
- bl MOD08_02218454
- add r0, r4, #0
- ldr r1, [r4, #0x10]
- add r0, #0x14
- bl MOD08_022183A0
- mov r0, #0
- str r0, [sp]
- mov r1, #8
- mov r2, #0xc
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- ldr r3, [r4, #0x28]
- bl MOD08_022182DC
- ldr r0, [r4, #4]
- add sp, #0xc
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, pc}
-_022262E6:
- mov r1, #0xa
- mov r2, #8
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r3, [r4, #0x10]
- add r0, #0x38
- bl MOD08_02218454
- add r0, r4, #0
- ldr r1, [r4, #0x10]
- add r0, #0x14
- bl MOD08_022183A0
- add r5, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r1, #8
- mov r2, #0xc
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- ldr r3, [r4, #0x28]
- bl MOD08_022182DC
- cmp r5, #0
- beq _0222631E
-_0222631C:
- b _02226424
-_0222631E:
- ldr r0, [r4, #4]
- add sp, #0xc
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, pc}
-_02226328:
- ldr r0, [r4, #0x64]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- ldr r0, [r4, #0x6c]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp, #4]
- ldr r0, [r4, #0x74]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- ldr r1, [r4, #0x60]
- ldr r2, [r4, #0x5c]
- ldr r3, [r4, #0x68]
- add r0, r4, #0
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- lsl r3, r3, #0x10
- add r0, #0x14
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- asr r3, r3, #0x10
- bl MOD08_022181A8
- mov r1, #0xa
- mov r2, #8
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r3, [r4, #0x10]
- add r0, #0x38
- bl MOD08_02218454
- add r0, r4, #0
- ldr r1, [r4, #0x10]
- add r0, #0x14
- bl MOD08_022183A0
- mov r0, #0
- str r0, [sp]
- mov r1, #8
- mov r2, #0xc
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- ldr r3, [r4, #0x28]
- bl MOD08_022182DC
- ldr r0, [r4, #4]
- add sp, #0xc
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, pc}
-_02226394:
- mov r1, #0xa
- mov r2, #8
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r3, [r4, #0x10]
- add r0, #0x38
- bl MOD08_02218454
- add r0, r4, #0
- ldr r1, [r4, #0x10]
- add r0, #0x14
- bl MOD08_022183A0
- add r5, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r1, #8
- mov r2, #0xc
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- ldr r3, [r4, #0x28]
- bl MOD08_022182DC
- cmp r5, #0
- bne _02226424
- ldr r0, [r4, #0x70]
- sub r0, r0, #1
- str r0, [r4, #0x70]
- cmp r0, #0
- bgt _022263DE
- ldr r0, [r4, #4]
- add sp, #0xc
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, pc}
-_022263DE:
- mov r0, #0
- add sp, #0xc
- str r0, [r4, #4]
- pop {r4, r5, pc}
-_022263E6:
- mov r2, #0xa
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #0
- bl FUN_02007558
- mov r2, #8
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_02007558
- mov r1, #0xc
- add r2, r1, #0
- ldr r0, [r4, #0x10]
- add r2, #0xf4
- bl FUN_02007558
- mov r1, #0xd
- add r2, r1, #0
- ldr r0, [r4, #0x10]
- add r2, #0xf3
- bl FUN_02007558
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
-_02226424:
- add sp, #0xc
- pop {r4, r5, pc}
-
- thumb_func_start MOD08_02226428
-MOD08_02226428: ; 0x02226428
- push {r3, r4, r5, lr}
- mov r1, #0x78
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4]
- add r0, r5, #0
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_0221552C
- strh r0, [r4, #0xc]
- ldr r0, [r4]
- bl MOD08_02212460
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD08_022154D4
- str r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #8]
- ldr r0, [r4, #0x10]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #0xa]
- mov r1, #0xa
- str r1, [r4, #0x5c]
- mov r0, #7
- str r0, [r4, #0x60]
- str r1, [r4, #0x64]
- mov r0, #0x1e
- str r0, [r4, #0x68]
- str r1, [r4, #0x6c]
- mov r3, #1
- ldr r0, _0222649C ; =0x00040003
- str r3, [r4, #0x70]
- str r0, [r4, #0x74]
- mov r1, #2
- add r0, r4, #0
- str r1, [sp]
- add r0, #0x38
- mov r2, #0
- bl MOD08_022183C0
- ldr r0, [r4]
- ldr r1, _022264A0 ; =MOD08_02226258
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, pc}
- nop
-_0222649C: .word 0x00040003
-_022264A0: .word MOD08_02226258
-
- thumb_func_start MOD08_022264A4
-MOD08_022264A4: ; 0x022264A4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- ldr r1, [r4, #0x2c]
- add r0, #8
- bl MOD08_02217F08
- cmp r0, #0
- bne _022264CE
- ldr r0, [r4, #0x2c]
- bl FUN_0200C3DC
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
- pop {r3, r4, r5, pc}
-_022264CE:
- ldr r0, [r4, #4]
- bl FUN_0200BC1C
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022264D8
-MOD08_022264D8: ; 0x022264D8
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- mov r1, #0x30
- add r5, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r5, [r4]
- add r0, r5, #0
- bl MOD08_02212518
- str r0, [r4, #4]
- add r0, r5, #0
- bl MOD08_02212458
- add r6, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02227470
- cmp r0, #3
- bne _0222651C
- add r0, r5, #0
- mov r1, #0
- bl MOD08_022124B0
- str r0, [r4, #0x2c]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_022124B0
- bl FUN_0200C3DC
- b _02226532
-_0222651C:
- add r0, r5, #0
- mov r1, #1
- bl MOD08_022124B0
- str r0, [r4, #0x2c]
- add r0, r5, #0
- mov r1, #0
- bl MOD08_022124B0
- bl FUN_0200C3DC
-_02226532:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02217C1C
- add r7, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02217C44
- str r0, [sp, #0xc]
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0
- bl MOD08_02217B98
- str r0, [sp, #0x10]
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #1
- bl MOD08_02217B98
- ldr r1, [sp, #0x10]
- lsl r2, r7, #6
- add r6, r1, r2
- ldr r1, [sp, #0xc]
- lsl r1, r1, #4
- neg r1, r1
- add r5, r0, r1
- str r1, [sp, #8]
- lsl r1, r6, #0x10
- lsl r2, r5, #0x10
- ldr r0, [r4, #0x2c]
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl FUN_0200C714
- ldr r0, [sp, #8]
- mov r2, #0x30
- add r0, r5, r0
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- mul r2, r7
- str r0, [sp]
- mov r0, #6
- add r2, r6, r2
- str r0, [sp, #4]
- add r0, r4, #0
- lsl r1, r6, #0x10
- lsl r2, r2, #0x10
- lsl r3, r5, #0x10
- add r0, #8
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- asr r3, r3, #0x10
- bl MOD08_02217E80
- ldr r0, [r4]
- ldr r1, _022265B0 ; =MOD08_022264A4
- add r2, r4, #0
- bl MOD08_02212400
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_022265B0: .word MOD08_022264A4
-
- thumb_func_start MOD08_022265B4
-MOD08_022265B4: ; 0x022265B4
- push {r4, r5, r6, lr}
- sub sp, #8
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #4]
- cmp r0, #5
- bls _022265C4
- b _022266E0
-_022265C4:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_022265D0: ; jump table
- .short _022265DC - _022265D0 - 2 ; case 0
- .short _022265F6 - _022265D0 - 2 ; case 1
- .short _02226644 - _022265D0 - 2 ; case 2
- .short _02226660 - _022265D0 - 2 ; case 3
- .short _022266A2 - _022265D0 - 2 ; case 4
- .short _022266BA - _022265D0 - 2 ; case 5
-_022265DC:
- mov r1, #4
- add r0, r4, #0
- str r1, [sp]
- add r0, #0x40
- mov r2, #0
- mov r3, #1
- bl MOD08_022183C0
- ldr r0, [r4, #4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, r6, pc}
-_022265F6:
- mov r1, #0x18
- mov r2, #0x1a
- add r0, r4, #0
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r3, [r4, #0x14]
- add r0, #0x40
- bl MOD08_02218454
- cmp r0, #0
- bne _022266E0
- ldr r0, [r4, #4]
- add r0, r0, #1
- str r0, [r4, #4]
- mov r0, #0x1a
- ldrsh r3, [r4, r0]
- mov r0, #0x18
- ldrsh r1, [r4, r0]
- ldr r2, [r4, #0x10]
- sub r0, #0x1f
- mul r0, r2
- add r0, r3, r0
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- mov r0, #4
- str r0, [sp, #4]
- add r0, r4, #0
- ldr r4, [r4, #0xc]
- mov r2, #0x28
- mul r2, r4
- add r2, r1, r2
- lsl r2, r2, #0x10
- add r0, #0x1c
- asr r2, r2, #0x10
- bl MOD08_02217E80
- add sp, #8
- pop {r4, r5, r6, pc}
-_02226644:
- add r0, r4, #0
- ldr r1, [r4, #0x14]
- add r0, #0x1c
- bl MOD08_02217F2C
- cmp r0, #0
- bne _022266E0
- ldr r0, [r4, #4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4, #4]
- mov r0, #8
- str r0, [r4, #8]
- pop {r4, r5, r6, pc}
-_02226660:
- ldr r0, [r4, #8]
- sub r0, r0, #1
- str r0, [r4, #8]
- bpl _022266E0
- ldr r0, [r4, #4]
- mov r5, #0x28
- add r0, r0, #1
- str r0, [r4, #4]
- mov r0, #0x1a
- ldrsh r3, [r4, r0]
- mov r0, #0x18
- ldrsh r2, [r4, r0]
- mov r0, #4
- str r3, [sp]
- str r0, [sp, #4]
- ldr r1, [r4, #0xc]
- add r0, r4, #0
- add r6, r1, #0
- mul r6, r5
- add r1, r2, r6
- lsl r1, r1, #0x10
- ldr r4, [r4, #0x10]
- sub r5, #0x2f
- mul r5, r4
- add r3, r3, r5
- lsl r3, r3, #0x10
- add r0, #0x1c
- asr r1, r1, #0x10
- asr r3, r3, #0x10
- bl MOD08_02217E80
- add sp, #8
- pop {r4, r5, r6, pc}
-_022266A2:
- add r0, r4, #0
- ldr r1, [r4, #0x14]
- add r0, #0x1c
- bl MOD08_02217F2C
- cmp r0, #0
- bne _022266E0
- ldr r0, [r4, #4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r4, r5, r6, pc}
-_022266BA:
- mov r2, #0x18
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x14]
- mov r1, #0
- bl FUN_02007558
- mov r2, #0x1a
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x14]
- mov r1, #1
- bl FUN_02007558
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
-_022266E0:
- add sp, #8
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_022266E4
-MOD08_022266E4: ; 0x022266E4
- push {r4, r5, r6, lr}
- add r5, r0, #0
- mov r1, #0x64
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- str r5, [r4]
- bl MOD08_02212458
- add r6, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_022154D4
- str r0, [r4, #0x14]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #0x18]
- ldr r0, [r4, #0x14]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #0x1a]
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02217C1C
- str r0, [r4, #0xc]
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02217C44
- str r0, [r4, #0x10]
- ldr r0, [r4]
- ldr r1, _02226738 ; =MOD08_022265B4
- add r2, r4, #0
- bl MOD08_02212400
- pop {r4, r5, r6, pc}
- nop
-_02226738: .word MOD08_022265B4
-
- thumb_func_start MOD08_0222673C
-MOD08_0222673C: ; 0x0222673C
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #4]
- cmp r0, #4
- bls _0222674C
- b _0222685C
-_0222674C:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02226758: ; jump table
- .short _02226762 - _02226758 - 2 ; case 0
- .short _02226798 - _02226758 - 2 ; case 1
- .short _022267C0 - _02226758 - 2 ; case 2
- .short _0222681E - _02226758 - 2 ; case 3
- .short _02226836 - _02226758 - 2 ; case 4
-_02226762:
- mov r0, #0x16
- ldrsh r3, [r4, r0]
- mov r0, #0x14
- ldrsh r1, [r4, r0]
- ldr r0, [r4, #0xc]
- mov r5, #4
- lsl r0, r0, #4
- add r0, r3, r0
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- str r5, [sp, #4]
- ldr r2, [r4, #8]
- sub r5, #0x2c
- mul r5, r2
- add r2, r1, r5
- add r0, r4, #0
- lsl r2, r2, #0x10
- add r0, #0x18
- asr r2, r2, #0x10
- bl MOD08_02217E80
- ldr r0, [r4, #4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r3, r4, r5, pc}
-_02226798:
- add r0, r4, #0
- ldr r1, [r4, #0x10]
- add r0, #0x18
- bl MOD08_02217F2C
- cmp r0, #0
- bne _0222685C
- ldr r0, [r4, #4]
- mov r1, #4
- add r0, r0, #1
- str r0, [r4, #4]
- add r4, #0x3c
- add r0, r4, #0
- mov r2, #0
- mov r3, #1
- str r1, [sp]
- bl MOD08_022183C0
- add sp, #8
- pop {r3, r4, r5, pc}
-_022267C0:
- ldr r0, [r4, #0x10]
- mov r1, #0
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r5, r0, #0x10
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200782C
- lsl r0, r0, #0x10
- asr r2, r0, #0x10
- add r0, r4, #0
- ldr r3, [r4, #0x10]
- add r0, #0x3c
- add r1, r5, #0
- bl MOD08_02218454
- cmp r0, #0
- bne _0222685C
- ldr r0, [r4, #4]
- mov r5, #4
- add r0, r0, #1
- str r0, [r4, #4]
- mov r0, #0x16
- ldrsh r3, [r4, r0]
- mov r0, #0x14
- ldrsh r2, [r4, r0]
- add r0, r4, #0
- add r0, #0x18
- str r3, [sp]
- str r5, [sp, #4]
- ldr r1, [r4, #8]
- ldr r4, [r4, #0xc]
- sub r5, #0x2c
- mul r5, r1
- lsl r4, r4, #4
- add r1, r2, r5
- add r3, r3, r4
- lsl r1, r1, #0x10
- lsl r3, r3, #0x10
- asr r1, r1, #0x10
- asr r3, r3, #0x10
- bl MOD08_02217E80
- add sp, #8
- pop {r3, r4, r5, pc}
-_0222681E:
- add r0, r4, #0
- ldr r1, [r4, #0x10]
- add r0, #0x18
- bl MOD08_02217F2C
- cmp r0, #0
- bne _0222685C
- ldr r0, [r4, #4]
- add sp, #8
- add r0, r0, #1
- str r0, [r4, #4]
- pop {r3, r4, r5, pc}
-_02226836:
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #0
- bl FUN_02007558
- mov r2, #0x16
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_02007558
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
-_0222685C:
- add sp, #8
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02226860
-MOD08_02226860: ; 0x02226860
- push {r4, r5, r6, lr}
- add r5, r0, #0
- mov r1, #0x60
- bl MOD08_02228064
- add r4, r0, #0
- add r0, r5, #0
- str r5, [r4]
- bl MOD08_02212460
- add r6, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_022154D4
- str r0, [r4, #0x10]
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4, #0x14]
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #0x16]
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02217C1C
- str r0, [r4, #8]
- add r0, r5, #0
- add r1, r6, #0
- bl MOD08_02217C44
- str r0, [r4, #0xc]
- ldr r0, [r4]
- ldr r1, _022268B4 ; =MOD08_0222673C
- add r2, r4, #0
- bl MOD08_02212400
- pop {r4, r5, r6, pc}
- nop
-_022268B4: .word MOD08_0222673C
-
- thumb_func_start MOD08_022268B8
-MOD08_022268B8: ; 0x022268B8
- push {r4, r5, r6, r7, lr}
- sub sp, #0x3c
- add r7, r1, #0
- add r4, r0, #0
- mov r1, #0xac
- add r6, r2, #0
- str r3, [sp]
- bl MOD08_02228064
- str r4, [r0]
- str r0, [sp, #4]
- str r6, [r0, #0xc]
- add r0, r4, #0
- bl MOD08_02212458
- add r5, r0, #0
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02217C1C
- ldr r1, [sp, #4]
- str r0, [r1, #0x10]
- ldr r1, [r1]
- add r0, sp, #8
- bl MOD08_02215474
- add r0, r4, #0
- add r1, r5, #0
- mov r2, #0
- bl MOD08_02217B98
- add r1, sp, #8
- strh r0, [r1]
- add r0, r4, #0
- add r1, r5, #0
- mov r2, #1
- bl MOD08_02217B98
- add r1, sp, #8
- ldr r5, [sp, #4]
- strh r0, [r1, #2]
- mov r4, #0
-_0222690C:
- cmp r4, #0
- add r2, sp, #8
- bne _02226926
- ldr r0, [sp]
- mov r1, #0
- str r0, [r5, #0x14]
- ldrsh r1, [r2, r1]
- add r3, r2, #0
- mov r2, #2
- ldrsh r2, [r3, r2]
- bl FUN_0200C714
- b _02226930
-_02226926:
- add r0, r7, #0
- add r1, r6, #0
- bl FUN_0200C154
- str r0, [r5, #0x14]
-_02226930:
- ldr r0, [r5, #0x14]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r5, #0x14]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r5, #0x14]
- mov r1, #1
- bl FUN_0200C6B0
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #2
- blt _0222690C
- ldr r0, [sp, #4]
- ldr r1, _02226960 ; =MOD08_02226964
- ldr r0, [r0]
- ldr r2, [sp, #4]
- bl MOD08_02212400
- add sp, #0x3c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02226960: .word MOD08_02226964
-
- thumb_func_start MOD08_02226964
-MOD08_02226964: ; 0x02226964
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r7, r0, #0
- ldr r0, [r4, #4]
- cmp r0, #4
- bhi _02226A48
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0222697C: ; jump table
- .short _02226986 - _0222697C - 2 ; case 0
- .short _022269AE - _0222697C - 2 ; case 1
- .short _022269CE - _0222697C - 2 ; case 2
- .short _02226A00 - _0222697C - 2 ; case 3
- .short _02226A26 - _0222697C - 2 ; case 4
-_02226986:
- add r2, r4, #0
- ldr r0, [r4, #0x14]
- ldr r3, [r4, #0x10]
- add r1, #0x1c
- add r2, #0x64
- bl MOD08_02226A50
- add r1, r4, #0
- add r2, r4, #0
- ldr r0, [r4, #0x14]
- add r1, #0x1c
- add r2, #0x64
- bl MOD08_02226AB0
- ldr r0, [r4, #4]
- add r0, r0, #1
- str r0, [r4, #4]
- mov r0, #8
- str r0, [r4, #8]
- b _02226A48
-_022269AE:
- ldr r0, [r4, #8]
- add r2, r4, #0
- sub r0, r0, #1
- str r0, [r4, #8]
- ldr r0, [r4, #0x14]
- add r1, #0x1c
- add r2, #0x64
- bl MOD08_02226AB0
- ldr r0, [r4, #8]
- cmp r0, #0
- bge _02226A48
- ldr r0, [r4, #4]
- add r0, r0, #1
- str r0, [r4, #4]
- b _02226A48
-_022269CE:
- add r2, r4, #0
- ldr r0, [r4, #0x18]
- ldr r3, [r4, #0x10]
- add r1, #0x40
- add r2, #0x88
- bl MOD08_02226A50
- add r1, r4, #0
- add r2, r4, #0
- ldr r0, [r4, #0x18]
- add r1, #0x40
- add r2, #0x88
- bl MOD08_02226AB0
- add r1, r4, #0
- add r2, r4, #0
- ldr r0, [r4, #0x14]
- add r1, #0x1c
- add r2, #0x64
- bl MOD08_02226AB0
- ldr r0, [r4, #4]
- add r0, r0, #1
- str r0, [r4, #4]
- b _02226A48
-_02226A00:
- add r2, r4, #0
- ldr r0, [r4, #0x14]
- add r1, #0x1c
- add r2, #0x64
- bl MOD08_02226AB0
- add r1, r4, #0
- add r2, r4, #0
- ldr r0, [r4, #0x18]
- add r1, #0x40
- add r2, #0x88
- bl MOD08_02226AB0
- cmp r0, #0
- beq _02226A48
- ldr r0, [r4, #4]
- add r0, r0, #1
- str r0, [r4, #4]
- b _02226A48
-_02226A26:
- mov r6, #0
- add r5, r4, #0
-_02226A2A:
- ldr r0, [r5, #0x14]
- bl FUN_0200C3DC
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #2
- blt _02226A2A
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, r6, r7, pc}
-_02226A48:
- ldr r0, [r4, #0xc]
- bl FUN_0200BC1C
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02226A50
-MOD08_02226A50: ; 0x02226A50
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r6, r1, #0
- add r5, r0, #0
- mov r1, #2
- add r7, r2, #0
- add r4, r3, #0
- bl FUN_0200C840
- add r0, r5, #0
- mov r1, #1
- bl FUN_0200C644
- add r1, sp, #8
- add r0, r5, #0
- add r1, #2
- add r2, sp, #8
- bl FUN_0200C7A0
- add r1, sp, #8
- mov r0, #0
- ldrsh r3, [r1, r0]
- mov r0, #2
- ldrsh r1, [r1, r0]
- add r0, r3, #0
- sub r0, #0x20
- lsl r0, r0, #0x10
- lsl r2, r4, #4
- asr r0, r0, #0x10
- add r2, r1, r2
- str r0, [sp]
- mov r0, #0x20
- lsl r2, r2, #0x10
- str r0, [sp, #4]
- add r0, r6, #0
- asr r2, r2, #0x10
- bl MOD08_02217E80
- mov r0, #0x20
- mov r2, #0xa
- str r0, [sp]
- add r0, r7, #0
- mov r1, #2
- add r3, r2, #0
- bl MOD08_02218120
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02226AB0
-MOD08_02226AB0: ; 0x02226AB0
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r0, r1, #0
- add r4, r2, #0
- add r1, r5, #0
- bl MOD08_02217F08
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02218360
- cmp r0, #0
- beq _02226ACE
- mov r0, #0
- pop {r3, r4, r5, pc}
-_02226ACE:
- add r0, r5, #0
- mov r1, #0
- bl FUN_0200C644
- mov r0, #1
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02226ADC
-MOD08_02226ADC: ; 0x02226ADC
- push {r3, r4, r5, r6, r7, lr}
- mov r1, #0x3c
- add r6, r0, #0
- add r7, r2, #0
- add r5, r3, #0
- bl MOD08_02228064
- add r4, r0, #0
- str r6, [r4]
- str r7, [r4, #0xc]
- str r5, [r4, #0x10]
- add r0, r5, #0
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r4, #0x10]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200C6B0
- ldr r0, [r4, #0x10]
- bl FUN_0200C68C
- str r0, [r4, #8]
- ldr r0, [r4]
- ldr r1, _02226B28 ; =MOD08_02226B2C
- add r2, r4, #0
- bl MOD08_02212400
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02226B28: .word MOD08_02226B2C
-
- thumb_func_start MOD08_02226B2C
-MOD08_02226B2C: ; 0x02226B2C
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #4]
- cmp r0, #4
- bhi _02226C18
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02226B46: ; jump table
- .short _02226B50 - _02226B46 - 2 ; case 0
- .short _02226B80 - _02226B46 - 2 ; case 1
- .short _02226BA6 - _02226B46 - 2 ; case 2
- .short _02226BE4 - _02226B46 - 2 ; case 3
- .short _02226C00 - _02226B46 - 2 ; case 4
-_02226B50:
- mov r0, #4
- str r0, [sp]
- mov r0, #0xa
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x14
- mov r1, #0
- mov r2, #0x10
- mov r3, #0x14
- bl MOD08_022186D4
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_0200C644
- ldr r0, [r4]
- mov r1, #0
- mov r2, #0x14
- bl MOD08_02227994
- ldr r0, [r4, #4]
- add r0, r0, #1
- str r0, [r4, #4]
- b _02226C18
-_02226B80:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02218704
- cmp r0, #0
- beq _02226C18
- ldr r0, [r4, #4]
- mov r1, #1
- add r0, r0, #1
- str r0, [r4, #4]
- ldr r0, [r4, #0x10]
- bl FUN_0200C5E0
- mov r1, #1
- ldr r0, [r4, #0x10]
- lsl r1, r1, #0xc
- bl FUN_0200C5F4
- b _02226C18
-_02226BA6:
- ldr r0, [r4, #0x10]
- bl FUN_0200C630
- mov r1, #3
- bl _s32_div_f
- ldr r2, [r4, #8]
- ldr r0, [r4, #0x10]
- add r1, r2, r1
- bl FUN_0200C680
- ldr r0, [r4, #0x10]
- bl FUN_0200C608
- cmp r0, #0
- bne _02226C18
- ldr r0, [r4, #4]
- mov r1, #0x10
- add r0, r0, #1
- str r0, [r4, #4]
- mov r0, #0x14
- str r0, [sp]
- mov r0, #8
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x14
- mov r2, #0
- mov r3, #4
- bl MOD08_022186D4
- b _02226C18
-_02226BE4:
- add r0, r4, #0
- add r0, #0x14
- bl MOD08_02218704
- cmp r0, #0
- beq _02226C18
- ldr r0, [r4, #4]
- mov r1, #0
- add r0, r0, #1
- str r0, [r4, #4]
- ldr r0, [r4, #0x10]
- bl FUN_0200C644
- b _02226C18
-_02226C00:
- ldr r0, [r4, #0x10]
- bl FUN_0200C3DC
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl FreeToHeap
- add sp, #8
- pop {r3, r4, r5, pc}
-_02226C18:
- ldr r0, [r4, #0xc]
- bl FUN_0200BC1C
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02226C24
-MOD08_02226C24: ; 0x02226C24
- push {r4, r5, r6, r7, lr}
- sub sp, #0x4c
- str r1, [sp, #4]
- str r2, [sp, #8]
- mov r1, #0x54
- add r5, r0, #0
- str r3, [sp, #0xc]
- bl MOD08_02228064
- ldr r1, [sp, #8]
- str r5, [r0]
- str r0, [sp, #0x14]
- str r1, [r0, #8]
- ldr r0, [r0]
- bl MOD08_02212458
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_02217C1C
- ldr r1, [sp, #0x14]
- str r0, [sp, #0x10]
- ldr r1, [r1]
- add r0, sp, #0x18
- bl MOD08_02215474
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0
- bl MOD08_02217B98
- add r1, sp, #0x18
- strh r0, [r1]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #1
- bl MOD08_02217B98
- ldr r7, [sp, #0x14]
- ldr r6, [sp, #0x14]
- ldr r5, [sp, #0x14]
- add r1, sp, #0x18
- add r7, #0x3c
- add r6, #0x24
- strh r0, [r1, #2]
- mov r4, #5
- add r5, #0x14
- add r7, #0x14
- add r6, #0x14
-_02226C88:
- cmp r4, #5
- add r2, sp, #0x18
- bne _02226CA2
- ldr r0, [sp, #0xc]
- mov r1, #0
- str r0, [r5, #0xc]
- ldrsh r1, [r2, r1]
- add r3, r2, #0
- mov r2, #2
- ldrsh r2, [r3, r2]
- bl FUN_0200C714
- b _02226CAC
-_02226CA2:
- ldr r0, [sp, #4]
- ldr r1, [sp, #8]
- bl FUN_0200C154
- str r0, [r5, #0xc]
-_02226CAC:
- ldr r0, [r5, #0xc]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r5, #0xc]
- mov r1, #1
- bl FUN_0200C6B0
- ldr r0, [r5, #0xc]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [sp, #0x10]
- add r1, r6, #0
- str r0, [sp]
- ldr r0, [r5, #0xc]
- add r2, r7, #0
- add r3, r4, #0
- bl MOD08_02226CF4
- sub r5, r5, #4
- sub r7, r7, #4
- sub r6, r6, #4
- sub r4, r4, #1
- bpl _02226C88
- ldr r0, [sp, #0x14]
- ldr r1, _02226CF0 ; =MOD08_02226D78
- ldr r0, [r0]
- ldr r2, [sp, #0x14]
- bl MOD08_02212400
- add sp, #0x4c
- pop {r4, r5, r6, r7, pc}
- nop
-_02226CF0: .word MOD08_02226D78
-
- thumb_func_start MOD08_02226CF4
-MOD08_02226CF4: ; 0x02226CF4
- push {r3, r4, r5, r6, r7, lr}
- add r4, r3, #0
- add r6, r1, #0
- lsr r1, r4, #0x1f
- add r1, r4, r1
- asr r1, r1, #1
- add r5, r0, #0
- add r7, r2, #0
- bl FUN_0200C5C0
- lsl r0, r4, #1
- str r0, [r7]
- mov r0, #0x10
- add r1, sp, #0
- str r0, [r6]
- add r0, r5, #0
- add r1, #2
- add r2, sp, #0
- bl FUN_0200C7A0
- mov r1, #2
- add r6, r1, #0
- add r2, sp, #0
- sub r6, #0xe
- mul r6, r4
- ldr r0, [sp, #0x18]
- ldrsh r3, [r2, r1]
- add r6, #0x28
- add r4, r0, #0
- mul r4, r6
- add r0, r3, r4
- mov r3, #0
- strh r0, [r2, #2]
- ldrsh r0, [r2, r3]
- add r0, #0x28
- strh r0, [r2]
- ldrsh r1, [r2, r1]
- ldrsh r2, [r2, r3]
- add r0, r5, #0
- bl FUN_0200C714
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02226D48
-MOD08_02226D48: ; 0x02226D48
- push {r3, lr}
- ldr r3, [r2]
- cmp r3, #0
- ble _02226D5E
- sub r1, r3, #1
- str r1, [r2]
- bne _02226D74
- mov r1, #1
- bl FUN_0200C644
- b _02226D74
-_02226D5E:
- ldr r2, [r1]
- cmp r2, #0
- ble _02226D6A
- sub r0, r2, #1
- str r0, [r1]
- b _02226D74
-_02226D6A:
- mov r1, #0
- bl FUN_0200C644
- mov r0, #1
- pop {r3, pc}
-_02226D74:
- mov r0, #0
- pop {r3, pc}
-
- thumb_func_start MOD08_02226D78
-MOD08_02226D78: ; 0x02226D78
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- ldr r0, [r1, #4]
- str r1, [sp]
- cmp r0, #0
- beq _02226D8A
- cmp r0, #1
- beq _02226DBC
- b _02226DE0
-_02226D8A:
- add r6, r1, #0
- add r4, r1, #0
- mov r7, #0
- add r6, #0x3c
- add r4, #0x24
- add r5, r1, #0
-_02226D96:
- ldr r0, [r5, #0xc]
- add r1, r4, #0
- add r2, r6, #0
- bl MOD08_02226D48
- add r7, r7, #1
- add r6, r6, #4
- add r4, r4, #4
- add r5, r5, #4
- cmp r7, #6
- blt _02226D96
- cmp r0, #0
- beq _02226DE0
- ldr r0, [sp]
- ldr r0, [r0, #4]
- add r1, r0, #1
- ldr r0, [sp]
- str r1, [r0, #4]
- b _02226DE0
-_02226DBC:
- mov r5, #0
- add r4, r1, #0
-_02226DC0:
- ldr r0, [r4, #0xc]
- bl FUN_0200C3DC
- add r5, r5, #1
- add r4, r4, #4
- cmp r5, #6
- blt _02226DC0
- ldr r0, [sp]
- add r1, r6, #0
- ldr r0, [r0]
- bl MOD08_02212438
- ldr r0, [sp]
- bl FreeToHeap
- pop {r3, r4, r5, r6, r7, pc}
-_02226DE0:
- ldr r0, [sp]
- ldr r0, [r0, #8]
- bl FUN_0200BC1C
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02226DEC
-MOD08_02226DEC: ; 0x02226DEC
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r5, r0, #0
- mov r7, #0
- add r6, r5, #0
- str r1, [sp, #0x10]
- add r6, #0x30
- add r4, r7, #0
-_02226DFC:
- mov r0, #0
- str r0, [sp]
- mov r0, #0x32
- lsl r0, r0, #0xc
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- mov r0, #0x30
- mov r1, #0
- str r0, [sp, #0xc]
- ldr r2, _02226E3C ; =0x00007FFF
- add r0, r6, #0
- add r3, r1, #0
- bl MOD08_02217D14
- ldr r0, [r5, #0x38]
- add r7, r7, #1
- add r0, r0, r4
- str r0, [r5, #0x38]
- ldr r1, [r5, #0x48]
- ldr r0, [sp, #0x10]
- add r6, #0x24
- mul r0, r1
- str r0, [r5, #0x48]
- ldr r0, _02226E40 ; =0x00002AAA
- add r5, #0x24
- add r4, r4, r0
- cmp r7, #6
- blt _02226DFC
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- nop
-_02226E3C: .word 0x00007FFF
-_02226E40: .word 0x00002AAA
-
- thumb_func_start MOD08_02226E44
-MOD08_02226E44: ; 0x02226E44
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- mov r0, #0
- add r7, r6, #0
- str r0, [sp]
- add r7, #0x30
- add r4, r6, #0
- add r5, r6, #0
-_02226E54:
- add r0, r7, #0
- bl MOD08_02217D98
- mov r1, #0x13
- lsl r1, r1, #4
- mov r2, #0x30
- ldrsh r1, [r6, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r5, #0x18]
- add r1, r1, r2
- ldr r2, _02226EB0 ; =0x00000132
- lsl r1, r1, #0x10
- ldrsh r2, [r6, r2]
- asr r1, r1, #0x10
- bl FUN_0200C714
- ldr r1, [r4, #0x38]
- ldr r0, _02226EB4 ; =0x00003FFF
- cmp r1, r0
- blt _02226E8C
- ldr r0, _02226EB8 ; =0x0000BF49
- cmp r1, r0
- bgt _02226E8C
- ldr r0, [r5, #0x18]
- mov r1, #1
- bl FUN_0200C6B0
- b _02226E9C
-_02226E8C:
- ldr r0, [r6]
- bl MOD08_02215574
- add r1, r0, #0
- ldr r0, [r5, #0x18]
- add r1, r1, #1
- bl FUN_0200C6B0
-_02226E9C:
- ldr r0, [sp]
- add r7, #0x24
- add r0, r0, #1
- add r4, #0x24
- add r5, r5, #4
- str r0, [sp]
- cmp r0, #6
- blt _02226E54
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02226EB0: .word 0x00000132
-_02226EB4: .word 0x00003FFF
-_02226EB8: .word 0x0000BF49
-
- thumb_func_start MOD08_02226EBC
-MOD08_02226EBC: ; 0x02226EBC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r4, r1, #0
- add r7, r0, #0
- ldr r0, [r4, #0xc]
- cmp r0, #4
- bhi _02226FA2
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02226ED6: ; jump table
- .short _02226EE0 - _02226ED6 - 2 ; case 0
- .short _02226F16 - _02226ED6 - 2 ; case 1
- .short _02226F36 - _02226ED6 - 2 ; case 2
- .short _02226F62 - _02226ED6 - 2 ; case 3
- .short _02226F7E - _02226ED6 - 2 ; case 4
-_02226EE0:
- ldr r0, [r4]
- mov r1, #1
- mov r2, #0xf
- bl MOD08_02227994
- mov r0, #0
- str r0, [sp]
- mov r0, #0xa
- str r0, [sp, #4]
- add r0, #0xfe
- add r0, r4, r0
- mov r1, #1
- mov r2, #0x10
- mov r3, #0xf
- bl MOD08_022186D4
- ldr r1, [r4, #0x14]
- add r0, r4, #0
- bl MOD08_02226DEC
- add r0, r4, #0
- bl MOD08_02226E44
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02226FA2
-_02226F16:
- add r0, r4, #0
- bl MOD08_02226E44
- mov r0, #0x42
- lsl r0, r0, #2
- add r0, r4, r0
- bl MOD08_02218704
- cmp r0, #0
- beq _02226FA2
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- mov r0, #0x1c
- str r0, [r4, #0x10]
- b _02226FA2
-_02226F36:
- add r0, r4, #0
- bl MOD08_02226E44
- ldr r0, [r4, #0x10]
- sub r0, r0, #1
- str r0, [r4, #0x10]
- bpl _02226FA2
- ldr r0, [r4, #0xc]
- mov r1, #0x10
- add r0, r0, #1
- str r0, [r4, #0xc]
- mov r0, #0xf
- str r0, [sp]
- mov r0, #0xa
- str r0, [sp, #4]
- add r0, #0xfe
- add r0, r4, r0
- mov r2, #1
- mov r3, #0
- bl MOD08_022186D4
- b _02226FA2
-_02226F62:
- add r0, r4, #0
- bl MOD08_02226E44
- mov r0, #0x42
- lsl r0, r0, #2
- add r0, r4, r0
- bl MOD08_02218704
- cmp r0, #0
- beq _02226FA2
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02226FA2
-_02226F7E:
- mov r6, #0
- add r5, r4, #0
-_02226F82:
- ldr r0, [r5, #0x18]
- bl FUN_0200C3DC
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #6
- blt _02226F82
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD08_02212438
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-_02226FA2:
- ldr r0, [r4, #8]
- bl FUN_0200BC1C
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02226FAC
-MOD08_02226FAC: ; 0x02226FAC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x38
- add r5, r1, #0
- mov r1, #0x4d
- lsl r1, r1, #2
- add r4, r0, #0
- str r2, [sp]
- add r7, r3, #0
- bl MOD08_02228064
- add r6, r0, #0
- str r4, [r6]
- ldr r0, [sp]
- str r5, [r6, #4]
- str r0, [r6, #8]
- add r0, r4, #0
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r6]
- bl MOD08_022154D4
- mov r1, #0
- add r5, r0, #0
- bl FUN_0200782C
- mov r1, #0x13
- lsl r1, r1, #4
- strh r0, [r6, r1]
- add r0, r5, #0
- mov r1, #1
- bl FUN_0200782C
- ldr r1, _02227050 ; =0x00000132
- strh r0, [r6, r1]
- add r0, sp, #4
- add r1, r4, #0
- bl MOD08_02215474
- mov r4, #0
- add r5, r6, #0
-_02226FFE:
- cmp r4, #0
- bne _02227006
- str r7, [r5, #0x18]
- b _02227012
-_02227006:
- ldr r0, [r6, #4]
- ldr r1, [r6, #8]
- add r2, sp, #4
- bl FUN_0200C154
- str r0, [r5, #0x18]
-_02227012:
- ldr r0, [r5, #0x18]
- mov r1, #0x64
- bl FUN_0200C6C4
- ldr r0, [r5, #0x18]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r5, #0x18]
- mov r1, #1
- bl FUN_0200C5E0
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #6
- blt _02226FFE
- ldr r0, [r6]
- bl MOD08_02212458
- add r1, r0, #0
- ldr r0, [r6]
- bl MOD08_02217C1C
- str r0, [r6, #0x14]
- ldr r0, [r6]
- ldr r1, _02227054 ; =MOD08_02226EBC
- add r2, r6, #0
- bl MOD08_02212400
- add sp, #0x38
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02227050: .word 0x00000132
-_02227054: .word MOD08_02226EBC
-
- thumb_func_start MOD08_02227058
-MOD08_02227058: ; 0x02227058
- strh r1, [r0, #0xc]
- strh r2, [r0, #0xe]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02227060
-MOD08_02227060: ; 0x02227060
- strh r1, [r0, #0x14]
- strh r2, [r0, #0x16]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02227068
-MOD08_02227068: ; 0x02227068
- push {r4, r5, r6, lr}
- sub sp, #0x10
- add r5, r0, #0
- ldr r0, [r5, #0x1c]
- add r4, r1, #0
- bl MOD08_02212014
- add r6, r0, #0
- ldr r0, [r5, #0x1c]
- mov r1, #3
- bl MOD08_02215600
- add r1, r0, #0
- lsl r0, r4, #0x18
- lsl r1, r1, #0x18
- lsr r0, r0, #0x18
- lsr r1, r1, #0x18
- bl FUN_020178BC
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- str r6, [sp, #0xc]
- ldr r1, [r5, #4]
- ldr r0, [r5]
- lsl r2, r1, #4
- ldr r1, _022270F8 ; =0x0222C670
- add r3, r4, #0
- ldr r1, [r1, r2]
- ldr r2, [r5, #0x2c]
- bl FUN_0200687C
- mov r0, #0
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- mov r0, #0x80
- str r0, [sp, #8]
- ldr r2, [r5, #4]
- ldr r0, [r5, #0x30]
- lsl r3, r2, #4
- ldr r2, _022270FC ; =0x0222C674
- ldr r1, [r5]
- ldr r2, [r2, r3]
- add r3, r6, #0
- bl FUN_020030E8
- lsl r1, r4, #0x18
- ldr r0, [r5, #0x2c]
- lsr r1, r1, #0x18
- bl FUN_02018744
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- str r6, [sp, #0xc]
- ldr r1, [r5, #4]
- ldr r0, [r5]
- lsl r2, r1, #4
- ldr r1, _02227100 ; =0x0222C678
- add r3, r4, #0
- ldr r1, [r1, r2]
- ldr r2, [r5, #0x2c]
- bl FUN_020068C8
- add sp, #0x10
- pop {r4, r5, r6, pc}
- nop
-_022270F8: .word 0x0222C670
-_022270FC: .word 0x0222C674
-_02227100: .word 0x0222C678
-
- thumb_func_start MOD08_02227104
-MOD08_02227104: ; 0x02227104
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4, #0x18]
- cmp r0, #3
- bhi _022271C0
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0222711C: ; jump table
- .short _02227124 - _0222711C - 2 ; case 0
- .short _02227134 - _0222711C - 2 ; case 1
- .short _0222714C - _0222711C - 2 ; case 2
- .short _0222716C - _0222711C - 2 ; case 3
-_02227124:
- add r0, r4, #0
- mov r1, #2
- bl MOD08_02227068
- ldrb r0, [r4, #0x18]
- add r0, r0, #1
- strb r0, [r4, #0x18]
- b _0222720E
-_02227134:
- ldrh r0, [r4, #0x16]
- mov r1, #4
- mov r2, #0x39
- str r0, [sp]
- ldrh r3, [r4, #0x14]
- ldr r0, _0222725C ; =0x04000050
- bl G2x_SetBlendAlpha_
- ldrb r0, [r4, #0x18]
- add r0, r0, #1
- strb r0, [r4, #0x18]
- b _0222720E
-_0222714C:
- add r1, r4, #0
- add r1, #0x40
- ldrb r1, [r1]
- cmp r1, #0x14
- bls _0222715C
- add r0, r0, #1
- strb r0, [r4, #0x18]
- b _0222720E
-_0222715C:
- add r0, r4, #0
- add r0, #0x40
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x40
- strb r1, [r0]
- b _0222720E
-_0222716C:
- ldrh r0, [r4, #0x14]
- cmp r0, #0
- beq _02227176
- sub r0, r0, #1
- strh r0, [r4, #0x14]
-_02227176:
- ldrh r0, [r4, #0x16]
- cmp r0, #0x10
- bhs _02227180
- add r0, r0, #1
- strh r0, [r4, #0x16]
-_02227180:
- ldrh r0, [r4, #0x14]
- cmp r0, #0
- bne _022271B2
- ldrh r0, [r4, #0x16]
- cmp r0, #0x10
- bne _022271B2
- ldr r0, [r4, #0x2c]
- mov r1, #2
- bl FUN_02018744
- ldr r0, [r4, #0x34]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0x38]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0x3c]
- mov r1, #0
- bl FUN_0200C644
- ldrb r0, [r4, #0x18]
- add r0, r0, #1
- strb r0, [r4, #0x18]
-_022271B2:
- ldrh r0, [r4, #0x16]
- ldrh r1, [r4, #0x14]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _02227260 ; =0x04000052
- strh r1, [r0]
- b _0222720E
-_022271C0:
- ldr r0, _02227264 ; =0x0400004A
- mov r1, #0x3f
- ldrh r2, [r0]
- bic r2, r1
- mov r1, #0x1f
- orr r2, r1
- strh r2, [r0]
- ldrh r3, [r0]
- ldr r2, _02227268 ; =0xFFFFC0FF
- lsl r1, r1, #8
- and r2, r3
- orr r1, r2
- strh r1, [r0]
- mov r2, #0
- ldr r0, [r4, #0x2c]
- mov r1, #2
- add r3, r2, #0
- bl FUN_020179E0
- ldr r0, [r4, #0x2c]
- mov r1, #2
- mov r2, #3
- mov r3, #0
- bl FUN_020179E0
- mov r2, #1
- lsl r2, r2, #0x1a
- ldr r1, [r2]
- ldr r0, _0222726C ; =0xFFFF1FFF
- and r0, r1
- str r0, [r2]
- ldr r0, [r4, #0x1c]
- add r1, r5, #0
- bl MOD08_02212438
- add r0, r4, #0
- bl MOD08_02228094
- pop {r3, r4, r5, pc}
-_0222720E:
- mov r3, #0x10
- mov r0, #0xc
- ldrsh r1, [r4, r3]
- ldrsh r0, [r4, r0]
- mov r2, #0
- add r0, r1, r0
- strh r0, [r4, #0x10]
- mov r0, #0x12
- ldrsh r1, [r4, r0]
- mov r0, #0xe
- ldrsh r0, [r4, r0]
- add r0, r1, r0
- strh r0, [r4, #0x12]
- ldrsh r3, [r4, r3]
- ldr r0, [r4, #0x2c]
- mov r1, #2
- bl FUN_020179E0
- mov r3, #0x12
- ldrsh r3, [r4, r3]
- ldr r0, [r4, #0x2c]
- mov r1, #2
- mov r2, #3
- bl FUN_020179E0
- ldr r0, [r4, #0x34]
- bl FUN_0200C5A8
- ldr r0, [r4, #0x38]
- bl FUN_0200C5A8
- ldr r0, [r4, #0x3c]
- bl FUN_0200C5A8
- ldr r0, [r4, #0x24]
- bl FUN_0200BC1C
- pop {r3, r4, r5, pc}
- nop
-_0222725C: .word 0x04000050
-_02227260: .word 0x04000052
-_02227264: .word 0x0400004A
-_02227268: .word 0xFFFFC0FF
-_0222726C: .word 0xFFFF1FFF
-
- thumb_func_start MOD08_02227270
-MOD08_02227270: ; 0x02227270
- push {r3, r4, r5, lr}
- add r4, r1, #0
- mov r1, #7
- str r1, [r4]
- add r5, r0, #0
- mov r1, #0
- bl MOD08_02212498
- str r0, [r4, #4]
- add r0, r5, #0
- mov r1, #1
- bl MOD08_02212498
- str r0, [r4, #8]
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02227290
-MOD08_02227290: ; 0x02227290
- push {r4, r5, r6, lr}
- add r5, r1, #0
- mov r1, #0x44
- add r6, r0, #0
- bl MOD08_02228064
- add r4, r0, #0
- add r1, r4, #0
- add r0, r6, #0
- add r1, #0x18
- bl MOD08_02227B70
- add r2, r4, #0
- ldmia r5!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r5!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r5!, {r0, r1}
- stmia r2!, {r0, r1}
- ldr r0, [r4, #0x1c]
- mov r1, #0
- bl MOD08_022124D8
- str r0, [r4, #0x34]
- ldr r0, [r4, #0x1c]
- mov r1, #1
- bl MOD08_022124D8
- str r0, [r4, #0x38]
- ldr r0, [r4, #0x1c]
- mov r1, #2
- bl MOD08_022124D8
- str r0, [r4, #0x3c]
- ldr r0, [r4, #0x1c]
- mov r1, #2
- bl MOD08_02215600
- ldr r0, [r4, #0x34]
- mov r1, #2
- bl FUN_0200C6B0
- ldr r0, [r4, #0x38]
- mov r1, #2
- bl FUN_0200C6B0
- ldr r0, [r4, #8]
- cmp r0, #0
- bne _022272FA
- add r0, r6, #0
- bl MOD08_02212458
- b _02227300
-_022272FA:
- add r0, r6, #0
- bl MOD08_02212460
-_02227300:
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r6, #0
- bl MOD08_02212004
- cmp r0, #1
- bne _02227338
- ldr r0, [r4, #0x3c]
- mov r1, #0
- bl FUN_0200C644
- ldr r0, [r4, #0x1c]
- mov r1, #2
- bl MOD08_02215600
- add r5, r0, #0
- ldr r0, [r4, #0x34]
- add r1, r5, #0
- bl FUN_0200C6B0
- ldr r0, [r4, #0x38]
- add r1, r5, #0
- bl FUN_0200C6B0
- b _0222735C
-_02227338:
- cmp r5, #1
- bhi _02227346
- ldr r0, [r4, #0x3c]
- mov r1, #0
- bl FUN_0200C644
- b _0222735C
-_02227346:
- sub r0, r5, #3
- cmp r0, #1
- ldr r0, [r4, #0x3c]
- bhi _02227356
- mov r1, #3
- bl FUN_0200C6B0
- b _0222735C
-_02227356:
- mov r1, #1
- bl FUN_0200C6B0
-_0222735C:
- ldr r0, _022273A8 ; =0x0400004A
- ldr r1, _022273AC ; =0xFFFFC0FF
- ldrh r2, [r0]
- and r2, r1
- mov r1, #0x16
- lsl r1, r1, #8
- orr r2, r1
- lsr r1, r0, #0xd
- orr r1, r2
- strh r1, [r0]
- ldrh r2, [r0]
- mov r1, #0x3f
- bic r2, r1
- mov r1, #0x1b
- orr r2, r1
- mov r1, #0x20
- orr r2, r1
- strh r2, [r0]
- lsl r3, r1, #0x15
- ldr r2, [r3]
- ldr r0, _022273B0 ; =0xFFFF1FFF
- and r2, r0
- lsl r0, r1, #0xa
- orr r0, r2
- str r0, [r3]
- ldr r0, [r4, #0x38]
- mov r1, #2
- bl FUN_0200C90C
- mov r0, #0
- strh r0, [r4, #0x10]
- strh r0, [r4, #0x12]
- ldr r0, [r4, #0x1c]
- ldr r1, _022273B4 ; =MOD08_02227104
- add r2, r4, #0
- bl MOD08_02212400
- pop {r4, r5, r6, pc}
- .align 2, 0
-_022273A8: .word 0x0400004A
-_022273AC: .word 0xFFFFC0FF
-_022273B0: .word 0xFFFF1FFF
-_022273B4: .word MOD08_02227104
-
- thumb_func_start MOD08_022273B8
-MOD08_022273B8: ; 0x022273B8
- push {r4, lr}
- sub sp, #0x18
- add r1, sp, #0
- add r4, r0, #0
- bl MOD08_02227270
- add r0, sp, #0
- mov r1, #0
- mov r2, #3
- bl MOD08_02227058
- add r0, sp, #0
- mov r1, #0xc
- mov r2, #4
- bl MOD08_02227060
- add r0, r4, #0
- add r1, sp, #0
- bl MOD08_02227290
- add sp, #0x18
- pop {r4, pc}
-
- thumb_func_start MOD08_022273E4
-MOD08_022273E4: ; 0x022273E4
- push {r4, lr}
- sub sp, #0x18
- add r1, sp, #0
- add r4, r0, #0
- bl MOD08_02227270
- mov r1, #0
- add r0, sp, #0
- sub r2, r1, #3
- bl MOD08_02227058
- add r0, sp, #0
- mov r1, #0xc
- mov r2, #4
- bl MOD08_02227060
- add r0, r4, #0
- add r1, sp, #0
- bl MOD08_02227290
- add sp, #0x18
- pop {r4, pc}
-
- thumb_func_start MOD08_02227410
-MOD08_02227410: ; 0x02227410
- push {r4, lr}
- sub sp, #0x18
- add r1, sp, #0
- add r4, r0, #0
- bl MOD08_02227270
- add r0, sp, #0
- mov r1, #0
- mov r2, #3
- bl MOD08_02227058
- add r0, sp, #0
- mov r1, #0xc
- mov r2, #4
- bl MOD08_02227060
- add r0, r4, #0
- add r1, sp, #0
- bl MOD08_02227290
- add sp, #0x18
- pop {r4, pc}
-
- thumb_func_start MOD08_0222743C
-MOD08_0222743C: ; 0x0222743C
- push {r4, lr}
- sub sp, #0x18
- add r1, sp, #0
- add r4, r0, #0
- bl MOD08_02227270
- mov r1, #0
- add r0, sp, #0
- sub r2, r1, #6
- bl MOD08_02227058
- add r0, sp, #0
- mov r1, #0xc
- mov r2, #4
- bl MOD08_02227060
- add r0, r4, #0
- add r1, sp, #0
- bl MOD08_02227290
- add sp, #0x18
- pop {r4, pc}
-
- thumb_func_start MOD08_02227468
-MOD08_02227468: ; 0x02227468
- ldr r3, _0222746C ; =MOD08_02215490
- bx r3
- .align 2, 0
-_0222746C: .word MOD08_02215490
-
- thumb_func_start MOD08_02227470
-MOD08_02227470: ; 0x02227470
- push {r4, lr}
- bl MOD08_02215490
- cmp r0, #5
- bhi _02227498
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02227486: ; jump table
- .short _02227492 - _02227486 - 2 ; case 0
- .short _02227496 - _02227486 - 2 ; case 1
- .short _02227492 - _02227486 - 2 ; case 2
- .short _02227496 - _02227486 - 2 ; case 3
- .short _02227492 - _02227486 - 2 ; case 4
- .short _02227496 - _02227486 - 2 ; case 5
-_02227492:
- mov r4, #3
- b _02227498
-_02227496:
- mov r4, #4
-_02227498:
- add r0, r4, #0
- pop {r4, pc}
-
- thumb_func_start MOD08_0222749C
-MOD08_0222749C: ; 0x0222749C
- push {r4, r5, r6, lr}
- add r6, r0, #0
- add r5, r1, #0
- mov r4, #0
-_022274A4:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD08_02215490
- cmp r0, r5
- bne _022274B4
- add r0, r4, #0
- pop {r4, r5, r6, pc}
-_022274B4:
- add r4, r4, #1
- cmp r4, #4
- blt _022274A4
- mov r0, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022274C0
-MOD08_022274C0: ; 0x022274C0
- push {r4, r5, r6, lr}
- add r6, r0, #0
- bl MOD08_02215490
- add r5, r0, #0
- cmp r5, #1
- bls _02227520
- mov r4, #0
-_022274D0:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD08_02215490
- cmp r5, #5
- bhi _02227514
- add r1, r5, r5
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_022274E8: ; jump table
- .short _02227514 - _022274E8 - 2 ; case 0
- .short _02227514 - _022274E8 - 2 ; case 1
- .short _022274F4 - _022274E8 - 2 ; case 2
- .short _02227504 - _022274E8 - 2 ; case 3
- .short _022274FC - _022274E8 - 2 ; case 4
- .short _0222750C - _022274E8 - 2 ; case 5
-_022274F4:
- cmp r0, #4
- bne _02227514
- add r0, r4, #0
- pop {r4, r5, r6, pc}
-_022274FC:
- cmp r0, #2
- bne _02227514
- add r0, r4, #0
- pop {r4, r5, r6, pc}
-_02227504:
- cmp r0, #5
- bne _02227514
- add r0, r4, #0
- pop {r4, r5, r6, pc}
-_0222750C:
- cmp r0, #3
- bne _02227514
- add r0, r4, #0
- pop {r4, r5, r6, pc}
-_02227514:
- add r4, r4, #1
- cmp r4, #4
- blt _022274D0
- bl ErrorHandling
- add r0, r5, #0
-_02227520:
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02227524
-MOD08_02227524: ; 0x02227524
- push {r3, lr}
- cmp r0, #5
- bhi _0222755A
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02227536: ; jump table
- .short _02227542 - _02227536 - 2 ; case 0
- .short _02227546 - _02227536 - 2 ; case 1
- .short _0222754A - _02227536 - 2 ; case 2
- .short _0222754E - _02227536 - 2 ; case 3
- .short _02227552 - _02227536 - 2 ; case 4
- .short _02227556 - _02227536 - 2 ; case 5
-_02227542:
- mov r0, #1
- pop {r3, pc}
-_02227546:
- mov r0, #0
- pop {r3, pc}
-_0222754A:
- mov r0, #3
- pop {r3, pc}
-_0222754E:
- mov r0, #2
- pop {r3, pc}
-_02227552:
- mov r0, #5
- pop {r3, pc}
-_02227556:
- mov r0, #4
- pop {r3, pc}
-_0222755A:
- bl ErrorHandling
- mov r0, #0
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02227564
-MOD08_02227564: ; 0x02227564
- push {r3, r4, r5, r6}
- sub sp, #0x30
- ldr r6, _022275B8 ; =0x0222C6C8
- add r5, sp, #0x18
- mov r4, #0xc
-_0222756E:
- ldrh r3, [r6]
- add r6, r6, #2
- strh r3, [r5]
- add r5, r5, #2
- sub r4, r4, #1
- bne _0222756E
- ldr r6, _022275BC ; =0x0222C6E0
- add r5, sp, #0
- mov r4, #0xc
-_02227580:
- ldrh r3, [r6]
- add r6, r6, #2
- strh r3, [r5]
- add r5, r5, #2
- sub r4, r4, #1
- bne _02227580
- cmp r1, #0
- beq _022275A4
- lsl r3, r0, #2
- add r0, sp, #0
- add r1, r0, r3
- ldrh r0, [r0, r3]
- add sp, #0x30
- strh r0, [r2]
- ldrh r0, [r1, #2]
- strh r0, [r2, #2]
- pop {r3, r4, r5, r6}
- bx lr
-_022275A4:
- lsl r3, r0, #2
- add r0, sp, #0x18
- add r1, r0, r3
- ldrh r0, [r0, r3]
- strh r0, [r2]
- ldrh r0, [r1, #2]
- strh r0, [r2, #2]
- add sp, #0x30
- pop {r3, r4, r5, r6}
- bx lr
- .align 2, 0
-_022275B8: .word 0x0222C6C8
-_022275BC: .word 0x0222C6E0
-
- thumb_func_start MOD08_022275C0
-MOD08_022275C0: ; 0x022275C0
- push {r4, r5, r6, lr}
- add r5, r0, #0
- add r4, r2, #0
- bl MOD08_02227468
- add r6, r0, #0
- add r0, r5, #0
- bl MOD08_02212004
- add r1, r0, #0
- add r0, r6, #0
- add r2, r4, #0
- bl MOD08_02227564
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022275E0
-MOD08_022275E0: ; 0x022275E0
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1fc
- sub sp, #0x1fc
- sub sp, #0x1fc
- sub sp, #0x1fc
- sub sp, #0x114
- add r7, r2, #0
- mov r2, #0x12
- str r3, [sp]
- ldr r6, _02227654 ; =0x0222C6F8
- add r5, r0, #0
- add r4, r1, #0
- add r3, sp, #4
- lsl r2, r2, #4
-_022275FC:
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _022275FC
- cmp r7, #1
- bne _0222761E
- cmp r5, #0
- beq _02227612
- cmp r5, #1
- beq _02227616
- b _0222761A
-_02227612:
- mov r5, #6
- b _0222761E
-_02227616:
- mov r5, #7
- b _0222761E
-_0222761A:
- bl ErrorHandling
-_0222761E:
- mov r0, #0x12
- lsl r0, r0, #4
- add r1, sp, #4
- mul r0, r5
- add r0, r1, r0
- ldr r1, _02227658 ; =0x00000908
- add r1, sp
- ldr r1, [r1, #0x10]
- lsl r2, r1, #1
- ldr r1, [sp]
- add r2, r1, r2
- mov r1, #0xc
- add r3, r2, #0
- mul r3, r1
- add r1, r0, r3
- ldr r2, [r1, #8]
- ldr r1, [r1, #4]
- ldr r0, [r0, r3]
- str r0, [r4]
- str r1, [r4, #4]
- str r2, [r4, #8]
- add sp, #0x1fc
- add sp, #0x1fc
- add sp, #0x1fc
- add sp, #0x1fc
- add sp, #0x114
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02227654: .word 0x0222C6F8
-_02227658: .word 0x00000908
-
- thumb_func_start MOD08_0222765C
-MOD08_0222765C: ; 0x0222765C
- push {r3, r4, lr}
- sub sp, #4
- mov r4, #0
- str r4, [sp]
- bl MOD08_022275E0
- add sp, #4
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_0222766C
-MOD08_0222766C: ; 0x0222766C
- push {r3, r4, lr}
- sub sp, #4
- mov r4, #1
- str r4, [sp]
- bl MOD08_022275E0
- add sp, #4
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_0222767C
-MOD08_0222767C: ; 0x0222767C
- push {r3, r4, lr}
- sub sp, #4
- mov r4, #2
- str r4, [sp]
- bl MOD08_022275E0
- add sp, #4
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_0222768C
-MOD08_0222768C: ; 0x0222768C
- push {r3, r4, lr}
- sub sp, #4
- mov r4, #3
- str r4, [sp]
- bl MOD08_022275E0
- add sp, #4
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_0222769C
-MOD08_0222769C: ; 0x0222769C
- push {r3, r4, lr}
- sub sp, #4
- mov r4, #4
- str r4, [sp]
- bl MOD08_022275E0
- add sp, #4
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_022276AC
-MOD08_022276AC: ; 0x022276AC
- push {r3, r4, lr}
- sub sp, #4
- mov r4, #5
- str r4, [sp]
- bl MOD08_022275E0
- add sp, #4
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_022276BC
-MOD08_022276BC: ; 0x022276BC
- push {r3, r4, lr}
- sub sp, #4
- mov r4, #6
- str r4, [sp]
- bl MOD08_022275E0
- add sp, #4
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_022276CC
-MOD08_022276CC: ; 0x022276CC
- push {r3, r4, lr}
- sub sp, #4
- mov r4, #7
- str r4, [sp]
- bl MOD08_022275E0
- add sp, #4
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_022276DC
-MOD08_022276DC: ; 0x022276DC
- push {r3, r4, lr}
- sub sp, #4
- mov r4, #8
- str r4, [sp]
- bl MOD08_022275E0
- add sp, #4
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_022276EC
-MOD08_022276EC: ; 0x022276EC
- push {r3, r4, lr}
- sub sp, #4
- mov r4, #9
- str r4, [sp]
- bl MOD08_022275E0
- add sp, #4
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_022276FC
-MOD08_022276FC: ; 0x022276FC
- push {r3, r4, lr}
- sub sp, #4
- mov r4, #0xa
- str r4, [sp]
- bl MOD08_022275E0
- add sp, #4
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_0222770C
-MOD08_0222770C: ; 0x0222770C
- push {r3, r4, lr}
- sub sp, #4
- mov r4, #0xb
- str r4, [sp]
- bl MOD08_022275E0
- add sp, #4
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_0222771C
-MOD08_0222771C: ; 0x0222771C
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- add r5, r1, #0
- add r6, r2, #0
- bl MOD08_02212468
- bl FUN_02013448
- add r7, r0, #0
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02212004
- add r2, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- add r3, r7, #0
- bl MOD08_0222765C
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_0222774C
-MOD08_0222774C: ; 0x0222774C
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- add r5, r1, #0
- add r6, r2, #0
- bl MOD08_02212468
- bl FUN_02013448
- add r7, r0, #0
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02212004
- add r2, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- add r3, r7, #0
- bl MOD08_0222766C
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_0222777C
-MOD08_0222777C: ; 0x0222777C
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- add r5, r1, #0
- add r6, r2, #0
- bl MOD08_02212468
- bl FUN_02013448
- add r7, r0, #0
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02212004
- add r2, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- add r3, r7, #0
- bl MOD08_0222767C
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_022277AC
-MOD08_022277AC: ; 0x022277AC
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- add r5, r1, #0
- add r6, r2, #0
- bl MOD08_02212468
- bl FUN_02013448
- add r7, r0, #0
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02212004
- add r2, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- add r3, r7, #0
- bl MOD08_0222768C
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_022277DC
-MOD08_022277DC: ; 0x022277DC
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- add r5, r1, #0
- add r6, r2, #0
- bl MOD08_02212468
- bl FUN_02013448
- add r7, r0, #0
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02212004
- add r2, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- add r3, r7, #0
- bl MOD08_0222769C
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_0222780C
-MOD08_0222780C: ; 0x0222780C
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- add r5, r1, #0
- add r6, r2, #0
- bl MOD08_02212468
- bl FUN_02013448
- add r7, r0, #0
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02212004
- add r2, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- add r3, r7, #0
- bl MOD08_022276AC
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_0222783C
-MOD08_0222783C: ; 0x0222783C
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- add r5, r1, #0
- add r6, r2, #0
- bl MOD08_02212468
- bl FUN_02013448
- add r7, r0, #0
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02212004
- add r2, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- add r3, r7, #0
- bl MOD08_022276BC
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_0222786C
-MOD08_0222786C: ; 0x0222786C
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- add r5, r1, #0
- add r6, r2, #0
- bl MOD08_02212468
- bl FUN_02013448
- add r7, r0, #0
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02212004
- add r2, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- add r3, r7, #0
- bl MOD08_022276CC
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_0222789C
-MOD08_0222789C: ; 0x0222789C
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- add r5, r1, #0
- add r6, r2, #0
- bl MOD08_02212468
- bl FUN_02013448
- add r7, r0, #0
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02212004
- add r2, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- add r3, r7, #0
- bl MOD08_022276DC
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_022278CC
-MOD08_022278CC: ; 0x022278CC
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- add r5, r1, #0
- add r6, r2, #0
- bl MOD08_02212468
- bl FUN_02013448
- add r7, r0, #0
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02212004
- add r2, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- add r3, r7, #0
- bl MOD08_022276EC
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_022278FC
-MOD08_022278FC: ; 0x022278FC
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- add r5, r1, #0
- add r6, r2, #0
- bl MOD08_02212468
- bl FUN_02013448
- add r7, r0, #0
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02212004
- add r2, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- add r3, r7, #0
- bl MOD08_022276FC
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_0222792C
-MOD08_0222792C: ; 0x0222792C
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- add r5, r1, #0
- add r6, r2, #0
- bl MOD08_02212468
- bl FUN_02013448
- add r7, r0, #0
- add r0, r4, #0
- add r1, r5, #0
- bl MOD08_02227468
- add r5, r0, #0
- add r0, r4, #0
- bl MOD08_02212004
- add r2, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- add r3, r7, #0
- bl MOD08_0222770C
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_0222795C
-MOD08_0222795C: ; 0x0222795C
- mov r2, #0
- ldr r1, _02227968 ; =0x000068D0
- str r2, [r0]
- str r1, [r0, #4]
- str r2, [r0, #8]
- bx lr
- .align 2, 0
-_02227968: .word 0x000068D0
-
- thumb_func_start MOD08_0222796C
-MOD08_0222796C: ; 0x0222796C
- push {r3, lr}
- bl MOD08_0222765C
- pop {r3, pc}
-
- thumb_func_start MOD08_02227974
-MOD08_02227974: ; 0x02227974
- push {r3, lr}
- add r3, r1, #0
- cmp r0, #0
- bne _02227984
- add r0, r3, #0
- bl FUN_02013428
- pop {r3, pc}
-_02227984:
- ldr r2, _02227990 ; =0x0222C6BC
- ldmia r2!, {r0, r1}
- stmia r3!, {r0, r1}
- ldr r0, [r2]
- str r0, [r3]
- pop {r3, pc}
- .align 2, 0
-_02227990: .word 0x0222C6BC
-
- thumb_func_start MOD08_02227994
-MOD08_02227994: ; 0x02227994
- push {r3, r4, r5, lr}
- add r5, r1, #0
- mov r1, #0
- mvn r1, r1
- add r4, r2, #0
- cmp r5, r1
- bne _022279A4
- mov r5, #0x1a
-_022279A4:
- mov r1, #0
- mvn r1, r1
- cmp r4, r1
- bne _022279AE
- mov r4, #5
-_022279AE:
- mov r1, #2
- bl MOD08_022155C4
- mov r1, #1
- add r2, r1, #0
- lsl r2, r0
- orr r2, r1
- ldr r0, _022279CC ; =0x04000050
- mov r1, #0
- add r3, r5, #0
- str r4, [sp]
- bl G2x_SetBlendAlpha_
- pop {r3, r4, r5, pc}
- nop
-_022279CC: .word 0x04000050
-
- thumb_func_start MOD08_022279D0
-MOD08_022279D0: ; 0x022279D0
- push {r3, r4, r5, lr}
- mov r0, #0
- add r4, r2, #0
- mvn r0, r0
- add r5, r1, #0
- cmp r4, r0
- bne _022279E0
- mov r4, #0x1a
-_022279E0:
- mov r0, #0
- mvn r0, r0
- cmp r3, r0
- bne _022279EA
- mov r3, #5
-_022279EA:
- ldr r0, _022279FC ; =0x04000050
- str r3, [sp]
- mov r1, #0
- add r2, r5, #0
- add r3, r4, #0
- bl G2x_SetBlendAlpha_
- pop {r3, r4, r5, pc}
- nop
-_022279FC: .word 0x04000050
-
- thumb_func_start MOD08_02227A00
-MOD08_02227A00: ; 0x02227A00
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- mov r0, #0
- add r5, r1, #0
- mvn r0, r0
- add r4, r2, #0
- cmp r5, r0
- bne _02227A12
- mov r5, #0x1a
-_02227A12:
- mov r0, #0
- mvn r0, r0
- cmp r4, r0
- bne _02227A1C
- mov r4, #5
-_02227A1C:
- add r0, r6, #0
- mov r1, #2
- bl MOD08_022155C4
- mov r1, #1
- add r2, r1, #0
- lsl r2, r0
- mov r0, #0x11
- add r7, r2, #0
- orr r7, r0
- add r0, r6, #0
- bl MOD08_022155C4
- mov r1, #1
- lsl r1, r0
- ldr r0, _02227A48 ; =0x04000050
- add r2, r7, #0
- add r3, r5, #0
- str r4, [sp]
- bl G2x_SetBlendAlpha_
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02227A48: .word 0x04000050
-
- thumb_func_start MOD08_02227A4C
-MOD08_02227A4C: ; 0x02227A4C
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r4, r2, #0
- cmp r1, #0
- bne _02227AA0
- mov r1, #1
- bl MOD08_022155C4
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #2
- bl MOD08_022155C4
- add r7, r0, #0
- add r0, r5, #0
- mov r1, #0
- bl MOD08_022155C4
- add r2, r0, #0
- mov r0, #1
- add r3, r0, #0
- add r1, r0, #0
- lsl r3, r7
- lsl r0, r2
- lsl r1, r6
- orr r0, r3
- orr r1, r0
- mov r0, #0x11
- add r2, r1, #0
- orr r2, r0
- ldr r0, _02227B20 ; =0x04000048
- ldrh r1, [r0]
- mov r0, #0x3f
- bic r1, r0
- orr r1, r2
- cmp r4, #0
- beq _02227A9A
- mov r0, #0x20
- orr r1, r0
-_02227A9A:
- ldr r0, _02227B20 ; =0x04000048
- strh r1, [r0]
- b _02227AEA
-_02227AA0:
- mov r1, #1
- bl MOD08_022155C4
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #2
- bl MOD08_022155C4
- add r7, r0, #0
- add r0, r5, #0
- mov r1, #0
- bl MOD08_022155C4
- add r2, r0, #0
- mov r0, #1
- add r3, r0, #0
- add r1, r0, #0
- lsl r0, r2
- lsl r3, r7
- lsl r1, r6
- orr r0, r3
- orr r1, r0
- ldr r2, _02227B20 ; =0x04000048
- add r3, r1, #0
- mov r0, #0x11
- orr r3, r0
- ldrh r1, [r2]
- ldr r0, _02227B24 ; =0xFFFFC0FF
- and r1, r0
- lsl r0, r3, #8
- orr r1, r0
- cmp r4, #0
- beq _02227AE6
- lsr r0, r2, #0xd
- orr r1, r0
-_02227AE6:
- ldr r0, _02227B20 ; =0x04000048
- strh r1, [r0]
-_02227AEA:
- add r0, r5, #0
- mov r1, #0
- bl MOD08_022155C4
- add r4, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD08_022155C4
- mov r1, #1
- add r2, r1, #0
- lsl r1, r0
- lsl r2, r4
- orr r1, r2
- add r3, r1, #0
- ldr r1, _02227B28 ; =0x0400004A
- mov r0, #0x11
- orr r3, r0
- ldrh r2, [r1]
- mov r0, #0x3f
- bic r2, r0
- orr r2, r3
- mov r0, #0x20
- orr r0, r2
- strh r0, [r1]
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02227B20: .word 0x04000048
-_02227B24: .word 0xFFFFC0FF
-_02227B28: .word 0x0400004A
-
- thumb_func_start MOD08_02227B2C
-MOD08_02227B2C: ; 0x02227B2C
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- cmp r5, #0
- bne _02227B3E
- mov r0, #0
- strh r0, [r4]
- strh r0, [r4, #2]
- pop {r3, r4, r5, pc}
-_02227B3E:
- bl FUN_02008268
- cmp r0, #0
- bne _02227B4E
- mov r0, #0
- strh r0, [r4]
- strh r0, [r4, #2]
- pop {r3, r4, r5, pc}
-_02227B4E:
- add r0, r5, #0
- mov r1, #0
- bl FUN_0200782C
- strh r0, [r4]
- add r0, r5, #0
- mov r1, #1
- bl FUN_0200782C
- strh r0, [r4, #2]
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02227B64
-MOD08_02227B64: ; 0x02227B64
- ldr r3, _02227B6C ; =FUN_0200C7A0
- add r2, r1, #2
- bx r3
- nop
-_02227B6C: .word FUN_0200C7A0
-
- thumb_func_start MOD08_02227B70
-MOD08_02227B70: ; 0x02227B70
- push {r3, r4, r5, lr}
- add r4, r1, #0
- mov r1, #0
- strb r1, [r4]
- strb r1, [r4, #1]
- strb r1, [r4, #2]
- add r5, r0, #0
- strb r1, [r4, #3]
- str r5, [r4, #4]
- bl MOD08_02212520
- str r0, [r4, #8]
- add r0, r5, #0
- bl MOD08_02212504
- str r0, [r4, #0xc]
- add r0, r5, #0
- bl MOD08_02212518
- str r0, [r4, #0x10]
- add r0, r5, #0
- bl MOD08_02212490
- str r0, [r4, #0x14]
- add r0, r5, #0
- bl MOD08_02215504
- str r0, [r4, #0x18]
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02227BAC
-MOD08_02227BAC: ; 0x02227BAC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r7, r1, #0
- add r4, r3, #0
- mov r1, #0
- str r1, [r4]
- mov r1, #0x40
- and r1, r7
- add r6, r0, #0
- add r5, r2, #0
- cmp r1, #0x40
- beq _02227BC6
- b _02227CE8
-_02227BC6:
- bl MOD08_02212458
- add r7, r0, #0
- add r0, r6, #0
- add r1, r7, #0
- bl MOD08_022154D4
- add r2, r0, #0
- ldr r0, [r4]
- mov r3, #0x14
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- str r2, [r0, #8]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r1, r5, r1
- ldr r0, [r1, #8]
- cmp r0, #0
- beq _02227C08
- str r7, [r1, #0x10]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r1, r5, r1
- ldr r0, [r1, #8]
- add r1, r1, #4
- bl MOD08_02227B2C
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
-_02227C08:
- add r0, r6, #0
- add r1, r7, #0
- bl MOD08_022274C0
- str r0, [sp, #4]
- ldr r1, [sp, #4]
- add r0, r6, #0
- bl MOD08_022154D4
- add r2, r0, #0
- ldr r0, [r4]
- mov r3, #0x14
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- str r2, [r0, #8]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- ldr r1, [r0, #8]
- cmp r1, #0
- beq _02227C50
- ldr r1, [sp, #4]
- str r1, [r0, #0x10]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r1, r5, r1
- ldr r0, [r1, #8]
- add r1, r1, #4
- bl MOD08_02227B2C
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
-_02227C50:
- add r0, r6, #0
- add r1, r7, #0
- bl MOD08_02215490
- bl MOD08_02227524
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_0222749C
- add r7, r0, #0
- add r0, r6, #0
- add r1, r7, #0
- bl MOD08_022154D4
- add r2, r0, #0
- ldr r0, [r4]
- mov r3, #0x14
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- str r2, [r0, #8]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r1, r5, r1
- ldr r0, [r1, #8]
- cmp r0, #0
- beq _02227CA2
- str r7, [r1, #0x10]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r1, r5, r1
- ldr r0, [r1, #8]
- add r1, r1, #4
- bl MOD08_02227B2C
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
-_02227CA2:
- add r0, r6, #0
- add r1, r7, #0
- bl MOD08_022274C0
- add r7, r0, #0
- add r0, r6, #0
- add r1, r7, #0
- bl MOD08_022154D4
- ldr r2, [r4]
- mov r1, #0x14
- add r3, r2, #0
- mul r3, r1
- add r2, r5, r3
- str r0, [r2, #8]
- ldr r0, [r4]
- add r2, r0, #0
- mul r2, r1
- add r2, r5, r2
- ldr r0, [r2, #8]
- cmp r0, #0
- beq _02227DCA
- str r7, [r2, #0x10]
- ldr r0, [r4]
- mul r1, r0
- add r1, r5, r1
- ldr r0, [r1, #8]
- add r1, r1, #4
- bl MOD08_02227B2C
- ldr r0, [r4]
- add sp, #0x10
- add r0, r0, #1
- str r0, [r4]
- pop {r3, r4, r5, r6, r7, pc}
-_02227CE8:
- mov r1, #0x20
- and r1, r7
- cmp r1, #0x20
- bne _02227DE8
- bl MOD08_02212458
- add r7, r0, #0
- add r0, r6, #0
- add r1, r7, #0
- bl MOD08_022274C0
- str r0, [sp, #8]
- cmp r0, r7
- beq _02227D42
- ldr r1, [sp, #8]
- add r0, r6, #0
- bl MOD08_022154D4
- add r2, r0, #0
- ldr r0, [r4]
- mov r3, #0x14
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- str r2, [r0, #8]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- ldr r1, [r0, #8]
- cmp r1, #0
- beq _02227D42
- ldr r1, [sp, #8]
- str r1, [r0, #0x10]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r1, r5, r1
- ldr r0, [r1, #8]
- add r1, r1, #4
- bl MOD08_02227B2C
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
-_02227D42:
- add r0, r6, #0
- add r1, r7, #0
- bl MOD08_02215490
- bl MOD08_02227524
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_0222749C
- str r0, [sp]
- cmp r0, r7
- beq _02227D9A
- ldr r1, [sp]
- add r0, r6, #0
- bl MOD08_022154D4
- add r2, r0, #0
- ldr r0, [r4]
- mov r3, #0x14
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- str r2, [r0, #8]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- ldr r1, [r0, #8]
- cmp r1, #0
- beq _02227D9A
- ldr r1, [sp]
- str r1, [r0, #0x10]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r1, r5, r1
- ldr r0, [r1, #8]
- add r1, r1, #4
- bl MOD08_02227B2C
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
-_02227D9A:
- ldr r1, [sp]
- add r0, r6, #0
- bl MOD08_022274C0
- str r0, [sp, #0xc]
- cmp r0, r7
- beq _02227DCA
- ldr r1, [sp, #0xc]
- add r0, r6, #0
- bl MOD08_022154D4
- ldr r2, [r4]
- mov r1, #0x14
- add r3, r2, #0
- mul r3, r1
- add r2, r5, r3
- str r0, [r2, #8]
- ldr r0, [r4]
- add r2, r0, #0
- mul r2, r1
- add r2, r5, r2
- ldr r0, [r2, #8]
- cmp r0, #0
- bne _02227DCC
-_02227DCA:
- b _02227F82
-_02227DCC:
- ldr r0, [sp, #0xc]
- str r0, [r2, #0x10]
- ldr r0, [r4]
- mul r1, r0
- add r1, r5, r1
- ldr r0, [r1, #8]
- add r1, r1, #4
- bl MOD08_02227B2C
- ldr r0, [r4]
- add sp, #0x10
- add r0, r0, #1
- str r0, [r4]
- pop {r3, r4, r5, r6, r7, pc}
-_02227DE8:
- mov r1, #2
- and r1, r7
- cmp r1, #2
- bne _02227E42
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_022154D4
- add r2, r0, #0
- ldr r0, [r4]
- mov r3, #0x14
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- str r2, [r0, #8]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- ldr r0, [r0, #8]
- cmp r0, #0
- beq _02227E42
- add r0, r6, #0
- bl MOD08_02212458
- add r2, r0, #0
- ldr r0, [r4]
- mov r3, #0x14
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- str r2, [r0, #0x10]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r1, r5, r1
- ldr r0, [r1, #8]
- add r1, r1, #4
- bl MOD08_02227B2C
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
-_02227E42:
- add r0, r6, #0
- bl MOD08_0221553C
- cmp r0, #1
- bne _02227EB8
- mov r0, #4
- and r0, r7
- cmp r0, #4
- bne _02227EB8
- add r0, r6, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_022274C0
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_022154D4
- add r2, r0, #0
- ldr r0, [r4]
- mov r3, #0x14
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- str r2, [r0, #8]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- ldr r0, [r0, #8]
- cmp r0, #0
- beq _02227EB8
- add r0, r6, #0
- bl MOD08_02212458
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_022274C0
- add r2, r0, #0
- ldr r0, [r4]
- mov r3, #0x14
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- str r2, [r0, #0x10]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r1, r5, r1
- ldr r0, [r1, #8]
- add r1, r1, #4
- bl MOD08_02227B2C
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
-_02227EB8:
- mov r0, #8
- and r0, r7
- cmp r0, #8
- bne _02227F14
- add r0, r6, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_022154D4
- add r2, r0, #0
- ldr r0, [r4]
- mov r3, #0x14
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- str r2, [r0, #8]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- ldr r0, [r0, #8]
- cmp r0, #0
- beq _02227F14
- add r0, r6, #0
- bl MOD08_02212460
- add r2, r0, #0
- ldr r0, [r4]
- mov r3, #0x14
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- str r2, [r0, #0x10]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r1, r5, r1
- ldr r0, [r1, #8]
- add r1, r1, #4
- bl MOD08_02227B2C
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
-_02227F14:
- add r0, r6, #0
- bl MOD08_0221553C
- cmp r0, #1
- bne _02227F82
- mov r0, #0x10
- and r0, r7
- cmp r0, #0x10
- bne _02227F82
- add r0, r6, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_022274C0
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_022154D4
- ldr r2, [r4]
- mov r1, #0x14
- add r3, r2, #0
- mul r3, r1
- add r2, r5, r3
- str r0, [r2, #8]
- ldr r0, [r4]
- mul r1, r0
- add r0, r5, r1
- ldr r0, [r0, #8]
- cmp r0, #0
- beq _02227F82
- add r0, r6, #0
- bl MOD08_02212460
- add r1, r0, #0
- add r0, r6, #0
- bl MOD08_022274C0
- ldr r2, [r4]
- mov r1, #0x14
- add r3, r2, #0
- mul r3, r1
- add r2, r5, r3
- str r0, [r2, #0x10]
- ldr r0, [r4]
- mul r1, r0
- add r1, r5, r1
- ldr r0, [r1, #8]
- add r1, r1, #4
- bl MOD08_02227B2C
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
-_02227F82:
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02227F88
-MOD08_02227F88: ; 0x02227F88
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- add r4, r3, #0
- mov r1, #0
- str r1, [r4]
- mov r1, #2
- and r1, r6
- add r7, r0, #0
- add r5, r2, #0
- cmp r1, #2
- bne _02227FC8
- ldr r1, [r4]
- bl MOD08_022124D8
- add r2, r0, #0
- ldr r0, [r4]
- mov r3, #0x14
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- str r2, [r0, #0xc]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r1, r5, r1
- ldr r0, [r1, #0xc]
- add r1, r1, #4
- bl MOD08_02227B64
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
-_02227FC8:
- mov r0, #4
- and r0, r6
- cmp r0, #4
- bne _02227FFC
- ldr r1, [r4]
- add r0, r7, #0
- bl MOD08_022124D8
- add r2, r0, #0
- ldr r0, [r4]
- mov r3, #0x14
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- str r2, [r0, #0xc]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r1, r5, r1
- ldr r0, [r1, #0xc]
- add r1, r1, #4
- bl MOD08_02227B64
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
-_02227FFC:
- mov r0, #8
- and r0, r6
- cmp r0, #8
- bne _02228030
- ldr r1, [r4]
- add r0, r7, #0
- bl MOD08_022124D8
- add r2, r0, #0
- ldr r0, [r4]
- mov r3, #0x14
- add r1, r0, #0
- mul r1, r3
- add r0, r5, r1
- str r2, [r0, #0xc]
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r3
- add r1, r5, r1
- ldr r0, [r1, #0xc]
- add r1, r1, #4
- bl MOD08_02227B64
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
-_02228030:
- mov r0, #0x10
- and r0, r6
- cmp r0, #0x10
- bne _02228060
- ldr r1, [r4]
- add r0, r7, #0
- bl MOD08_022124D8
- ldr r2, [r4]
- mov r1, #0x14
- add r3, r2, #0
- mul r3, r1
- add r2, r5, r3
- str r0, [r2, #0xc]
- ldr r0, [r4]
- mul r1, r0
- add r1, r5, r1
- ldr r0, [r1, #0xc]
- add r1, r1, #4
- bl MOD08_02227B64
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
-_02228060:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02228064
-MOD08_02228064: ; 0x02228064
- push {r3, r4, r5, lr}
- add r4, r0, #0
- add r5, r1, #0
- cmp r4, #0
- bne _02228072
- bl ErrorHandling
-_02228072:
- add r0, r4, #0
- bl MOD08_02212014
- add r1, r5, #0
- bl AllocFromHeap
- add r4, r0, #0
- bne _02228086
- bl ErrorHandling
-_02228086:
- add r0, r4, #0
- mov r1, #0
- add r2, r5, #0
- bl memset
- add r0, r4, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02228094
-MOD08_02228094: ; 0x02228094
- push {r4, lr}
- add r4, r0, #0
- bne _0222809E
- bl ErrorHandling
-_0222809E:
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022280A8
-MOD08_022280A8: ; 0x022280A8
- cmp r0, #1
- blt _022280B2
- ldr r1, _022280C0 ; =0x00000113
- cmp r0, r1
- ble _022280B6
-_022280B2:
- mov r0, #4
- b _022280BC
-_022280B6:
- cmp r0, #0xff
- blt _022280BC
- sub r0, #0xff
-_022280BC:
- sub r0, r0, #1
- bx lr
- .align 2, 0
-_022280C0: .word 0x00000113
-
- thumb_func_start MOD08_022280C4
-MOD08_022280C4: ; 0x022280C4
- push {r3, r4, r5}
- sub sp, #0x2c
- ldr r5, _02228100 ; =0x0222D0A4
- add r2, r0, #0
- add r4, sp, #0
- mov r3, #5
-_022280D0:
- ldmia r5!, {r0, r1}
- stmia r4!, {r0, r1}
- sub r3, r3, #1
- bne _022280D0
- ldr r0, [r5]
- str r0, [r4]
- mov r0, #0
- add r3, r0, #0
- add r4, sp, #0
-_022280E2:
- ldr r1, [r4]
- cmp r2, r1
- bne _022280F0
- add sp, #0x2c
- mov r0, #1
- pop {r3, r4, r5}
- bx lr
-_022280F0:
- add r3, r3, #1
- add r4, r4, #4
- cmp r3, #0xb
- blo _022280E2
- add sp, #0x2c
- pop {r3, r4, r5}
- bx lr
- nop
-_02228100: .word 0x0222D0A4
-
- thumb_func_start MOD08_02228104
-MOD08_02228104: ; 0x02228104
- push {r4, r5}
- sub sp, #0x18
- ldr r3, _0222813C ; =0x0222D004
- add r2, sp, #0
- add r5, r0, #0
- add r4, r2, #0
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- mov r0, #0
- add r2, r0, #0
-_02228120:
- ldr r1, [r4]
- cmp r5, r1
- bne _0222812E
- add sp, #0x18
- mov r0, #1
- pop {r4, r5}
- bx lr
-_0222812E:
- add r2, r2, #1
- add r4, r4, #4
- cmp r2, #6
- blo _02228120
- add sp, #0x18
- pop {r4, r5}
- bx lr
- .align 2, 0
-_0222813C: .word 0x0222D004
-
- thumb_func_start MOD08_02228140
-MOD08_02228140: ; 0x02228140
- push {r3, r4, r5}
- sub sp, #0xc
- ldr r5, _02228174 ; =0x0222CFF8
- add r3, r0, #0
- ldmia r5!, {r0, r1}
- add r4, sp, #0
- add r2, r4, #0
- stmia r4!, {r0, r1}
- ldr r0, [r5]
- str r0, [r4]
- mov r0, #1
- mov r4, #0
-_02228158:
- ldr r1, [r2]
- cmp r3, r1
- bne _02228166
- add sp, #0xc
- mov r0, #0
- pop {r3, r4, r5}
- bx lr
-_02228166:
- add r4, r4, #1
- add r2, r2, #4
- cmp r4, #3
- blo _02228158
- add sp, #0xc
- pop {r3, r4, r5}
- bx lr
- .align 2, 0
-_02228174: .word 0x0222CFF8
-
- thumb_func_start MOD08_02228178
-MOD08_02228178: ; 0x02228178
- push {r3, lr}
- bl MOD08_022280A8
- lsl r1, r0, #3
- ldr r0, _02228188 ; =0x0222D208
- ldr r0, [r0, r1]
- pop {r3, pc}
- nop
-_02228188: .word 0x0222D208
-
- thumb_func_start MOD08_0222818C
-MOD08_0222818C: ; 0x0222818C
- push {r3, lr}
- bl MOD08_022280A8
- lsl r1, r0, #3
- ldr r0, _0222819C ; =0x0222D20C
- ldr r0, [r0, r1]
- pop {r3, pc}
- nop
-_0222819C: .word 0x0222D20C
-
- thumb_func_start MOD08_022281A0
-MOD08_022281A0: ; 0x022281A0
- push {r3, lr}
- bl MOD08_022280A8
- mov r1, #0xc
- mul r1, r0
- ldr r0, _022281B0 ; =0x0222D2A8
- ldr r0, [r0, r1]
- pop {r3, pc}
- .align 2, 0
-_022281B0: .word 0x0222D2A8
-
- thumb_func_start MOD08_022281B4
-MOD08_022281B4: ; 0x022281B4
- push {r3, lr}
- bl MOD08_022280A8
- mov r1, #0xc
- mul r1, r0
- ldr r0, _022281C4 ; =0x0222D2B0
- ldr r0, [r0, r1]
- pop {r3, pc}
- .align 2, 0
-_022281C4: .word 0x0222D2B0
-
- thumb_func_start MOD08_022281C8
-MOD08_022281C8: ; 0x022281C8
- push {r3, lr}
- bl MOD08_022280A8
- mov r1, #0xc
- mul r1, r0
- ldr r0, _022281D8 ; =0x0222D2AC
- ldr r0, [r0, r1]
- pop {r3, pc}
- .align 2, 0
-_022281D8: .word 0x0222D2AC
-
- thumb_func_start MOD08_022281DC
-MOD08_022281DC: ; 0x022281DC
- push {r4, lr}
- add r4, r1, #0
- bl MOD08_022280A8
- lsl r2, r0, #4
- ldr r0, _022281F0 ; =0x0222D398
- lsl r1, r4, #2
- add r0, r0, r2
- ldr r0, [r1, r0]
- pop {r4, pc}
- .align 2, 0
-_022281F0: .word 0x0222D398
-
- thumb_func_start MOD08_022281F4
-MOD08_022281F4: ; 0x022281F4
- push {r4, lr}
- mov r1, #0xb8
- add r4, r0, #0
- bl AllocFromHeap
- cmp r0, #0
- bne _0222820A
- bl ErrorHandling
- mov r0, #0
- pop {r4, pc}
-_0222820A:
- add r1, r0, #0
- str r4, [r0]
- mov r2, #0
- add r1, #0x88
- str r2, [r1]
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02228218
-MOD08_02228218: ; 0x02228218
- push {r3, r4, r5, lr}
- add r5, r1, #0
- bl MOD08_022281F4
- add r1, r5, #0
- add r4, r0, #0
- bl MOD08_02228244
- mov r1, #0
- str r1, [r4, #0x10]
- add r2, r4, #0
- add r0, r1, #0
-_02228230:
- str r0, [r2, #0x14]
- str r0, [r2, #0x38]
- str r0, [r2, #0x5c]
- add r1, r1, #1
- add r2, r2, #4
- cmp r1, #9
- blt _02228230
- add r0, r4, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02228244
-MOD08_02228244: ; 0x02228244
- push {r4, lr}
- add r3, r1, #0
- add r4, r0, #0
- ldmia r3!, {r0, r1}
- add r2, r4, #4
- stmia r2!, {r0, r1}
- ldr r0, [r3]
- mov r1, #0xa1
- str r0, [r2]
- ldr r0, [r4, #0xc]
- mov r2, #0
- bl GetMonDataEncrypted
- add r1, r4, #0
- add r1, #0x9c
- str r0, [r1]
- add r0, r4, #0
- add r0, #0x9c
- ldr r0, [r0]
- cmp r0, #0xd
- blt _02228272
- bl ErrorHandling
-_02228272:
- add r0, r4, #0
- add r0, #0x9c
- ldr r0, [r0]
- cmp r0, #0
- bne _0222829E
- add r0, r4, #0
- mov r2, #0
- add r0, #0x94
- str r2, [r0]
- ldr r0, [r4, #8]
- cmp r0, #0
- beq _02228290
- add r4, #0x98
- str r0, [r4]
- pop {r4, pc}
-_02228290:
- ldr r0, [r4, #0xc]
- mov r1, #0x9a
- bl GetMonDataEncrypted
- add r4, #0x98
- str r0, [r4]
- pop {r4, pc}
-_0222829E:
- add r0, r4, #0
- mov r1, #1
- add r0, #0x94
- str r1, [r0]
- ldr r0, [r4, #0xc]
- add r4, #0xa0
- mov r1, #0xaa
- add r2, r4, #0
- bl GetMonDataEncrypted
- pop {r4, pc}
-
- thumb_func_start MOD08_022282B4
-MOD08_022282B4: ; 0x022282B4
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- add r4, r1, #0
- str r0, [sp]
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- cmp r0, #3
- bls _022282C8
- b _02228520
-_022282C8:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_022282D4: ; jump table
- .short _022282DC - _022282D4 - 2 ; case 0
- .short _02228376 - _022282D4 - 2 ; case 1
- .short _02228402 - _022282D4 - 2 ; case 2
- .short _0222848E - _022282D4 - 2 ; case 3
-_022282DC:
- ldr r1, [r4]
- mov r0, #0x63
- bl NARC_ctor
- add r1, r4, #0
- add r1, #0x8c
- str r0, [r1]
- add r0, r4, #0
- add r6, r4, #0
- str r0, [sp, #0x14]
- add r0, #0xa0
- mov r5, #0
- add r6, #0x10
- str r0, [sp, #0x14]
-_022282F8:
- ldr r0, [sp, #0x14]
- add r1, r5, #0
- bl FUN_02029CC8
- add r7, r0, #0
- beq _02228360
- bl FUN_02029CE0
- cmp r0, #0
- beq _02228360
- cmp r0, #0x51
- bge _02228360
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_02085FF4
- str r0, [sp, #0x10]
- ldr r0, [r4, #0x10]
- lsl r0, r0, #2
- add r0, r4, r0
- str r7, [r0, #0x38]
- ldr r0, [r4, #0x10]
- lsl r0, r0, #2
- add r0, r4, r0
- ldr r0, [r0, #0x14]
- cmp r0, #0
- beq _02228332
- bl ErrorHandling
-_02228332:
- add r0, r4, #0
- add r0, #0x8c
- ldr r0, [r0]
- ldr r1, [r4]
- ldr r2, [sp, #0x10]
- mov r3, #0
- bl MOD08_02215B00
- ldr r1, [r4, #0x10]
- lsl r1, r1, #2
- add r1, r4, r1
- str r0, [r1, #0x14]
- ldr r0, [r4, #0x10]
- lsl r0, r0, #2
- add r0, r4, r0
- ldr r0, [r0, #0x14]
- cmp r0, #0
- bne _0222835A
- bl ErrorHandling
-_0222835A:
- ldr r0, [r6]
- add r0, r0, #1
- str r0, [r6]
-_02228360:
- add r5, r5, #1
- cmp r5, #2
- blt _022282F8
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- add r4, #0x90
- add r0, r0, #1
- add sp, #0x24
- str r0, [r4]
- pop {r4, r5, r6, r7, pc}
-_02228376:
- add r0, r4, #0
- add r6, r4, #0
- str r0, [sp, #0x18]
- add r0, #0xa0
- mov r5, #2
- add r6, #0x10
- str r0, [sp, #0x18]
-_02228384:
- ldr r0, [sp, #0x18]
- add r1, r5, #0
- bl FUN_02029CC8
- add r7, r0, #0
- beq _022283EC
- bl FUN_02029CE0
- cmp r0, #0
- beq _022283EC
- cmp r0, #0x51
- bge _022283EC
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_02085FF4
- str r0, [sp, #4]
- ldr r0, [r4, #0x10]
- lsl r0, r0, #2
- add r0, r4, r0
- str r7, [r0, #0x38]
- ldr r0, [r4, #0x10]
- lsl r0, r0, #2
- add r0, r4, r0
- ldr r0, [r0, #0x14]
- cmp r0, #0
- beq _022283BE
- bl ErrorHandling
-_022283BE:
- add r0, r4, #0
- add r0, #0x8c
- ldr r0, [r0]
- ldr r1, [r4]
- ldr r2, [sp, #4]
- mov r3, #0
- bl MOD08_02215B00
- ldr r1, [r4, #0x10]
- lsl r1, r1, #2
- add r1, r4, r1
- str r0, [r1, #0x14]
- ldr r0, [r4, #0x10]
- lsl r0, r0, #2
- add r0, r4, r0
- ldr r0, [r0, #0x14]
- cmp r0, #0
- bne _022283E6
- bl ErrorHandling
-_022283E6:
- ldr r0, [r6]
- add r0, r0, #1
- str r0, [r6]
-_022283EC:
- add r5, r5, #1
- cmp r5, #4
- blt _02228384
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- add r4, #0x90
- add r0, r0, #1
- add sp, #0x24
- str r0, [r4]
- pop {r4, r5, r6, r7, pc}
-_02228402:
- add r0, r4, #0
- add r6, r4, #0
- str r0, [sp, #0x1c]
- add r0, #0xa0
- mov r5, #4
- add r6, #0x10
- str r0, [sp, #0x1c]
-_02228410:
- ldr r0, [sp, #0x1c]
- add r1, r5, #0
- bl FUN_02029CC8
- add r7, r0, #0
- beq _02228478
- bl FUN_02029CE0
- cmp r0, #0
- beq _02228478
- cmp r0, #0x51
- bge _02228478
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_02085FF4
- str r0, [sp, #8]
- ldr r0, [r4, #0x10]
- lsl r0, r0, #2
- add r0, r4, r0
- str r7, [r0, #0x38]
- ldr r0, [r4, #0x10]
- lsl r0, r0, #2
- add r0, r4, r0
- ldr r0, [r0, #0x14]
- cmp r0, #0
- beq _0222844A
- bl ErrorHandling
-_0222844A:
- add r0, r4, #0
- add r0, #0x8c
- ldr r0, [r0]
- ldr r1, [r4]
- ldr r2, [sp, #8]
- mov r3, #0
- bl MOD08_02215B00
- ldr r1, [r4, #0x10]
- lsl r1, r1, #2
- add r1, r4, r1
- str r0, [r1, #0x14]
- ldr r0, [r4, #0x10]
- lsl r0, r0, #2
- add r0, r4, r0
- ldr r0, [r0, #0x14]
- cmp r0, #0
- bne _02228472
- bl ErrorHandling
-_02228472:
- ldr r0, [r6]
- add r0, r0, #1
- str r0, [r6]
-_02228478:
- add r5, r5, #1
- cmp r5, #6
- blt _02228410
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- add r4, #0x90
- add r0, r0, #1
- add sp, #0x24
- str r0, [r4]
- pop {r4, r5, r6, r7, pc}
-_0222848E:
- add r0, r4, #0
- add r6, r4, #0
- str r0, [sp, #0x20]
- add r0, #0xa0
- mov r5, #6
- add r6, #0x10
- str r0, [sp, #0x20]
-_0222849C:
- ldr r0, [sp, #0x20]
- add r1, r5, #0
- bl FUN_02029CC8
- add r7, r0, #0
- beq _02228504
- bl FUN_02029CE0
- cmp r0, #0
- beq _02228504
- cmp r0, #0x51
- bge _02228504
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_02085FF4
- str r0, [sp, #0xc]
- ldr r0, [r4, #0x10]
- lsl r0, r0, #2
- add r0, r4, r0
- str r7, [r0, #0x38]
- ldr r0, [r4, #0x10]
- lsl r0, r0, #2
- add r0, r4, r0
- ldr r0, [r0, #0x14]
- cmp r0, #0
- beq _022284D6
- bl ErrorHandling
-_022284D6:
- add r0, r4, #0
- add r0, #0x8c
- ldr r0, [r0]
- ldr r1, [r4]
- ldr r2, [sp, #0xc]
- mov r3, #0
- bl MOD08_02215B00
- ldr r1, [r4, #0x10]
- lsl r1, r1, #2
- add r1, r4, r1
- str r0, [r1, #0x14]
- ldr r0, [r4, #0x10]
- lsl r0, r0, #2
- add r0, r4, r0
- ldr r0, [r0, #0x14]
- cmp r0, #0
- bne _022284FE
- bl ErrorHandling
-_022284FE:
- ldr r0, [r6]
- add r0, r0, #1
- str r0, [r6]
-_02228504:
- add r5, r5, #1
- cmp r5, #8
- blt _0222849C
- add r0, r4, #0
- mov r1, #0xff
- add r0, #0x90
- add r4, #0x8c
- str r1, [r0]
- ldr r0, [r4]
- bl NARC_dtor
- ldr r0, [sp]
- bl FUN_0200CAB4
-_02228520:
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02228524
-MOD08_02228524: ; 0x02228524
- push {r4, lr}
- add r4, r0, #0
- add r0, #0x94
- ldr r0, [r0]
- cmp r0, #0
- bne _0222854E
- add r0, r4, #0
- add r0, #0x98
- ldr r0, [r0]
- bl MOD08_02228178
- add r2, r0, #0
- mov r0, #1
- str r0, [r4, #0x10]
- ldr r0, [r4]
- mov r1, #0x63
- mov r3, #0
- bl MOD08_02215ACC
- str r0, [r4, #0x14]
- pop {r4, pc}
-_0222854E:
- mov r1, #0
- add r0, r4, #0
- mov r2, #0xfa
- str r1, [r4, #0x10]
- add r0, #0x90
- str r1, [r0]
- ldr r0, _0222856C ; =MOD08_022282B4
- add r1, r4, #0
- lsl r2, r2, #2
- bl FUN_0200CA44
- add r1, r4, #0
- bl MOD08_022282B4
- pop {r4, pc}
- .align 2, 0
-_0222856C: .word MOD08_022282B4
-
- thumb_func_start MOD08_02228570
-MOD08_02228570: ; 0x02228570
- mov r0, #1
- bx lr
-
- thumb_func_start MOD08_02228574
-MOD08_02228574: ; 0x02228574
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- mov r1, #1
- add r0, #0x88
- str r1, [r0]
- bl MOD08_0221268C
- add r0, r5, #0
- add r1, r4, #0
- bl MOD08_0222865C
- mov r2, #0xfa
- ldr r0, _022285A0 ; =MOD08_022285BC
- add r1, r5, #0
- lsl r2, r2, #2
- bl FUN_0200CA44
- add r5, #0x84
- str r0, [r5]
- pop {r3, r4, r5, pc}
- nop
-_022285A0: .word MOD08_022285BC
-
- thumb_func_start MOD08_022285A4
-MOD08_022285A4: ; 0x022285A4
- ldr r3, _022285AC ; =MOD08_02228574
- ldr r1, _022285B0 ; =MOD08_02228788
- bx r3
- nop
-_022285AC: .word MOD08_02228574
-_022285B0: .word MOD08_02228788
-
- thumb_func_start MOD08_022285B4
-MOD08_022285B4: ; 0x022285B4
- add r0, #0x88
- ldr r0, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_022285BC
-MOD08_022285BC: ; 0x022285BC
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- str r0, [sp]
- ldr r0, [r6, #0x10]
- mov r7, #0
- cmp r0, #9
- ble _022285CE
- bl ErrorHandling
-_022285CE:
- ldr r0, [r6, #0x10]
- mov r4, #0
- cmp r0, #0
- ble _02228606
- add r5, r6, #0
-_022285D8:
- ldr r0, [r5, #0x14]
- cmp r0, #0
- beq _022285FC
- bl FUN_020133C8
- cmp r0, #0
- bne _022285FA
- ldr r0, [r5, #0x5c]
- cmp r0, #0
- beq _022285FA
- ldr r0, [r5, #0x14]
- bl MOD08_02215B40
- mov r0, #0
- str r0, [r5, #0x14]
- str r0, [r5, #0x5c]
- b _022285FC
-_022285FA:
- mov r7, #1
-_022285FC:
- ldr r0, [r6, #0x10]
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, r0
- blt _022285D8
-_02228606:
- cmp r7, #0
- bne _02228616
- mov r0, #0
- add r6, #0x88
- str r0, [r6]
- ldr r0, [sp]
- bl FUN_0200CAB4
-_02228616:
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_02228618
-MOD08_02228618: ; 0x02228618
- ldr r3, _0222861C ; =FreeToHeap
- bx r3
- .align 2, 0
-_0222861C: .word FreeToHeap
-
- thumb_func_start MOD08_02228620
-MOD08_02228620: ; 0x02228620
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #4]
- cmp r0, #0
- bne _02228654
- ldr r0, [r4, #0xc]
- mov r1, #1
- str r1, [r0]
- ldr r0, [r4, #0x10]
- ldr r2, [r4, #0x18]
- mov r1, #0
- add r3, r4, #0
- bl FUN_020133AC
- ldr r0, [r4, #0x10]
- mov r1, #1
- bl FUN_02013440
- add r0, r5, #0
- bl FUN_0200CAB4
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, pc}
-_02228654:
- sub r0, r0, #1
- str r0, [r4, #4]
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0222865C
-MOD08_0222865C: ; 0x0222865C
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- add r0, #0x94
- ldr r0, [r0]
- add r7, r1, #0
- cmp r0, #0
- bne _0222869A
- add r0, r6, #0
- add r0, #0x98
- ldr r0, [r0]
- bl MOD08_0222818C
- add r5, r0, #0
- mov r4, #0
- cmp r5, #0
- ble _0222868E
-_0222867C:
- ldr r0, [r6, #0x14]
- add r1, r4, #0
- add r2, r7, #0
- add r3, r6, #0
- bl FUN_020133AC
- add r4, r4, #1
- cmp r4, r5
- blt _0222867C
-_0222868E:
- mov r1, #1
- str r1, [r6, #0x5c]
- ldr r0, [r6, #0x14]
- bl FUN_02013440
- pop {r3, r4, r5, r6, r7, pc}
-_0222869A:
- ldr r0, [r6, #0x10]
- mov r7, #0
- cmp r0, #0
- ble _02228700
- add r0, r6, #0
- str r0, [sp]
- add r0, #0x5c
- add r5, r6, #0
- str r0, [sp]
-_022286AC:
- ldr r0, [r6]
- mov r1, #0x1c
- bl AllocFromHeap
- add r4, r0, #0
- bne _022286BC
- bl ErrorHandling
-_022286BC:
- str r7, [r4]
- ldr r0, [r6, #4]
- str r0, [r4, #8]
- ldr r0, _02228704 ; =MOD08_022287C4
- str r0, [r4, #0x18]
- mov r0, #0
- str r0, [r5, #0x5c]
- ldr r0, [sp]
- str r0, [r4, #0xc]
- ldr r0, [r5, #0x14]
- str r0, [r4, #0x10]
- ldr r0, [r5, #0x38]
- str r0, [r4, #0x14]
- cmp r0, #0
- bne _022286DE
- bl ErrorHandling
-_022286DE:
- ldr r0, [r4, #0x14]
- bl MOD08_0222A078
- str r0, [r4, #4]
- ldr r0, _02228708 ; =MOD08_02228620
- ldr r2, _0222870C ; =0x000003E9
- add r1, r4, #0
- bl FUN_0200CA44
- ldr r0, [sp]
- add r7, r7, #1
- add r0, r0, #4
- str r0, [sp]
- ldr r0, [r6, #0x10]
- add r5, r5, #4
- cmp r7, r0
- blt _022286AC
-_02228700:
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02228704: .word MOD08_022287C4
-_02228708: .word MOD08_02228620
-_0222870C: .word 0x000003E9
-
- thumb_func_start MOD08_02228710
-MOD08_02228710: ; 0x02228710
- push {r3, r4, r5, lr}
- mov r2, #0
- mov r3, #1
- add r5, r0, #0
- add r4, r1, #0
- bl MOD08_0222796C
- cmp r5, #5
- bhi _02228766
- add r0, r5, r5
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0222872E: ; jump table
- .short _0222873A - _0222872E - 2 ; case 0
- .short _02228742 - _0222872E - 2 ; case 1
- .short _0222874C - _0222872E - 2 ; case 2
- .short _02228754 - _0222872E - 2 ; case 3
- .short _0222875E - _0222872E - 2 ; case 4
- .short _02228766 - _0222872E - 2 ; case 5
-_0222873A:
- mov r5, #0
- add r0, r5, #0
- sub r0, #0x10
- b _0222876E
-_02228742:
- mov r5, #0xe
- mvn r5, r5
- add r0, r5, #0
- sub r0, #0xa
- b _0222876E
-_0222874C:
- mov r5, #7
- mvn r5, r5
- sub r0, r5, #4
- b _0222876E
-_02228754:
- mov r5, #0xd
- mvn r5, r5
- add r0, r5, #0
- sub r0, #0xb
- b _0222876E
-_0222875E:
- mov r5, #7
- mvn r5, r5
- sub r0, r5, #4
- b _0222876E
-_02228766:
- mov r5, #0xf
- mvn r5, r5
- add r0, r5, #0
- sub r0, #0xd
-_0222876E:
- add r5, #0xa
- ldr r3, [r4]
- mov r1, #0xac
- add r2, r5, #0
- mul r2, r1
- sub r2, r3, r2
- str r2, [r4]
- add r0, #0x20
- ldr r2, [r4, #4]
- mul r1, r0
- sub r0, r2, r1
- str r0, [r4, #4]
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02228788
-MOD08_02228788: ; 0x02228788
- push {r3, r4, lr}
- sub sp, #0xc
- add r4, r0, #0
- bl FUN_0201341C
- ldr r0, [r0, #4]
- add r1, sp, #0
- bl MOD08_02228710
- ldr r0, [r4, #0x20]
- ldr r1, [sp]
- ldr r0, [r0]
- ldr r0, [r0, #4]
- add r0, r1, r0
- str r0, [r4, #0x28]
- ldr r0, [r4, #0x20]
- ldr r1, [sp, #4]
- ldr r0, [r0]
- ldr r0, [r0, #8]
- add r0, r1, r0
- str r0, [r4, #0x2c]
- ldr r0, [r4, #0x20]
- ldr r1, [sp, #8]
- ldr r0, [r0]
- ldr r0, [r0, #0xc]
- add r0, r1, r0
- str r0, [r4, #0x30]
- add sp, #0xc
- pop {r3, r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022287C4
-MOD08_022287C4: ; 0x022287C4
- push {r3, r4, r5, r6, lr}
- sub sp, #0xc
- add r5, r0, #0
- bl FUN_0201341C
- add r4, r0, #0
- ldr r0, [r4, #8]
- add r1, sp, #0
- bl MOD08_02228710
- ldr r0, [r4, #0x14]
- bl FUN_02029CE0
- bl FUN_02086018
- ldr r0, [r4, #0x14]
- bl FUN_02029CE4
- add r6, r0, #0
- ldr r0, [r4, #0x14]
- bl FUN_02029CE8
- sub r6, #0xbe
- lsl r1, r6, #0x10
- asr r3, r1, #0x10
- ldr r2, [sp]
- mov r1, #0xac
- add r4, r3, #0
- mul r4, r1
- add r3, r2, r4
- mov r4, #0x64
- sub r0, r4, r0
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- ldr r2, [sp, #4]
- mul r1, r0
- add r0, r2, r1
- str r3, [sp]
- str r0, [sp, #4]
- ldr r0, [r5, #0x20]
- ldr r0, [r0]
- ldr r0, [r0, #4]
- add r0, r3, r0
- str r0, [r5, #0x28]
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #4]
- ldr r0, [r0]
- ldr r0, [r0, #8]
- add r0, r1, r0
- str r0, [r5, #0x2c]
- ldr r0, [r5, #0x20]
- ldr r1, [sp, #8]
- ldr r0, [r0]
- ldr r0, [r0, #0xc]
- add r0, r1, r0
- str r0, [r5, #0x30]
- add sp, #0xc
- pop {r3, r4, r5, r6, pc}
-
- thumb_func_start MOD08_02228838
-MOD08_02228838: ; 0x02228838
- push {r4, lr}
- add r4, r0, #0
- bl FUN_0201341C
- mov r1, #2
- ldrsh r2, [r0, r1]
- mov r1, #0x64
- mov r3, #0xac
- sub r1, r1, r2
- lsl r1, r1, #0x10
- asr r2, r1, #0x10
- add r1, r2, #0
- mov r2, #0
- ldrsh r0, [r0, r2]
- mul r1, r3
- sub r0, #0x81
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add r2, r0, #0
- ldr r0, [r4, #0x20]
- mul r2, r3
- ldr r0, [r0]
- ldr r0, [r0, #4]
- add r0, r2, r0
- str r0, [r4, #0x28]
- ldr r0, [r4, #0x20]
- ldr r0, [r0]
- ldr r0, [r0, #8]
- add r0, r1, r0
- str r0, [r4, #0x2c]
- ldr r0, [r4, #0x20]
- ldr r0, [r0]
- ldr r0, [r0, #0xc]
- str r0, [r4, #0x30]
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02228880
-MOD08_02228880: ; 0x02228880
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5, #8]
- mov r1, #0x24
- bl AllocFromHeap
- add r4, r0, #0
- bne _02228894
- bl ErrorHandling
-_02228894:
- ldmia r5!, {r0, r1}
- add r2, r4, #0
- stmia r2!, {r0, r1}
- ldmia r5!, {r0, r1}
- stmia r2!, {r0, r1}
- ldr r0, [r5]
- str r0, [r2]
- ldr r0, [r4, #0x10]
- cmp r0, #0
- beq _022288B8
- ldr r0, _022288DC ; =0x00000113
- bl MOD08_022281A0
- str r0, [r4, #0x20]
- ldr r0, _022288DC ; =0x00000113
- bl MOD08_022281B4
- b _022288C6
-_022288B8:
- ldr r0, [r4, #4]
- bl MOD08_022281A0
- str r0, [r4, #0x20]
- ldr r0, [r4, #4]
- bl MOD08_022281B4
-_022288C6:
- str r0, [r4, #0x1c]
- ldr r0, [r4, #8]
- ldr r2, [r4, #0x20]
- mov r1, #0x63
- mov r3, #0
- bl MOD08_02215ACC
- str r0, [r4, #0x18]
- add r0, r4, #0
- pop {r3, r4, r5, pc}
- nop
-_022288DC: .word 0x00000113
-
- thumb_func_start MOD08_022288E0
-MOD08_022288E0: ; 0x022288E0
- push {r4, r5, r6, lr}
- add r5, r0, #0
- ldr r1, [r5, #0xc]
- cmp r1, #0xff
- bne _0222893A
- ldr r0, [r5, #0x10]
- cmp r0, #0
- beq _02228910
- ldr r0, [r5, #0x1c]
- mov r4, #0
- cmp r0, #0
- ble _02228944
- ldr r6, _02228950 ; =MOD08_02228838
-_022288FA:
- ldr r0, [r5, #0x18]
- add r1, r4, #0
- add r2, r6, #0
- add r3, r5, #0
- bl FUN_020133AC
- ldr r0, [r5, #0x1c]
- add r4, r4, #1
- cmp r4, r0
- blt _022288FA
- b _02228944
-_02228910:
- ldr r0, [r5, #0x1c]
- mov r4, #0
- cmp r0, #0
- ble _02228944
- ldr r6, _02228950 ; =MOD08_02228838
-_0222891A:
- ldr r0, [r5, #4]
- bl MOD08_022281C8
- cmp r4, r0
- beq _02228930
- ldr r0, [r5, #0x18]
- add r1, r4, #0
- add r2, r6, #0
- add r3, r5, #0
- bl FUN_020133AC
-_02228930:
- ldr r0, [r5, #0x1c]
- add r4, r4, #1
- cmp r4, r0
- blt _0222891A
- b _02228944
-_0222893A:
- ldr r0, [r5, #0x18]
- ldr r2, _02228950 ; =MOD08_02228838
- add r3, r5, #0
- bl FUN_020133AC
-_02228944:
- ldr r0, [r5, #0x18]
- mov r1, #1
- bl FUN_02013440
- pop {r4, r5, r6, pc}
- nop
-_02228950: .word MOD08_02228838
-
- thumb_func_start MOD08_02228954
-MOD08_02228954: ; 0x02228954
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x18]
- bl FUN_020133C8
- cmp r0, #0
- bne _0222896C
- ldr r0, [r4, #0x18]
- bl MOD08_02215B40
- mov r0, #0
- pop {r4, pc}
-_0222896C:
- mov r0, #1
- pop {r4, pc}
-
- thumb_func_start MOD08_02228970
-MOD08_02228970: ; 0x02228970
- ldr r3, _02228974 ; =FreeToHeap
- bx r3
- .align 2, 0
-_02228974: .word FreeToHeap
-
- thumb_func_start MOD08_02228978
-MOD08_02228978: ; 0x02228978
- push {r4, lr}
- add r4, r0, #0
- ldr r1, [r4, #4]
- cmp r1, #0
- bne _0222898C
- add r1, r1, #1
- str r1, [r4, #4]
- mov r1, #1
- bl MOD08_02229A18
-_0222898C:
- add r0, r4, #0
- mov r1, #2
- bl MOD08_02229A1C
- cmp r0, #1
- bne _0222899C
- mov r0, #0
- pop {r4, pc}
-_0222899C:
- mov r0, #1
- pop {r4, pc}
-
- thumb_func_start MOD08_022289A0
-MOD08_022289A0: ; 0x022289A0
- push {r4, lr}
- add r4, r0, #0
- ldr r1, [r4, #4]
- cmp r1, #0
- bne _022289B4
- add r1, r1, #1
- str r1, [r4, #4]
- mov r1, #3
- bl MOD08_02229A18
-_022289B4:
- add r0, r4, #0
- mov r1, #4
- bl MOD08_02229A1C
- cmp r0, #1
- bne _022289C4
- mov r0, #0
- pop {r4, pc}
-_022289C4:
- mov r0, #1
- pop {r4, pc}
-
- thumb_func_start MOD08_022289C8
-MOD08_022289C8: ; 0x022289C8
- push {r4, lr}
- add r4, r0, #0
- ldr r1, [r4, #4]
- cmp r1, #0
- bne _022289DC
- add r1, r1, #1
- str r1, [r4, #4]
- mov r1, #5
- bl MOD08_02229A18
-_022289DC:
- add r0, r4, #0
- mov r1, #6
- bl MOD08_02229A1C
- cmp r0, #1
- bne _022289EC
- mov r0, #0
- pop {r4, pc}
-_022289EC:
- mov r0, #1
- pop {r4, pc}
-
- thumb_func_start MOD08_022289F0
-MOD08_022289F0: ; 0x022289F0
- push {r4, lr}
- add r4, r0, #0
- ldr r1, [r4, #4]
- cmp r1, #0
- bne _02228A04
- add r1, r1, #1
- str r1, [r4, #4]
- mov r1, #7
- bl MOD08_02229A18
-_02228A04:
- add r0, r4, #0
- mov r1, #0xe
- bl MOD08_02229A1C
- cmp r0, #1
- bne _02228A14
- mov r0, #0
- pop {r4, pc}
-_02228A14:
- mov r0, #1
- pop {r4, pc}
-
- thumb_func_start MOD08_02228A18
-MOD08_02228A18: ; 0x02228A18
- push {r4, lr}
- add r4, r0, #0
- ldr r1, [r4, #4]
- cmp r1, #0
- bne _02228A2C
- add r1, r1, #1
- str r1, [r4, #4]
- mov r1, #0xf
- bl MOD08_02229A18
-_02228A2C:
- add r0, r4, #0
- mov r1, #0x12
- bl MOD08_02229A1C
- cmp r0, #1
- bne _02228A3C
- mov r0, #0
- pop {r4, pc}
-_02228A3C:
- mov r0, #1
- pop {r4, pc}
-
- thumb_func_start MOD08_02228A40
-MOD08_02228A40: ; 0x02228A40
- push {r4, lr}
- add r4, r0, #0
- ldr r1, [r4, #4]
- cmp r1, #0
- bne _02228A54
- add r1, r1, #1
- str r1, [r4, #4]
- mov r1, #0x13
- bl MOD08_02229A18
-_02228A54:
- add r0, r4, #0
- mov r1, #0x1b
- bl MOD08_02229A1C
- cmp r0, #1
- bne _02228A64
- mov r0, #0
- pop {r4, pc}
-_02228A64:
- mov r0, #1
- pop {r4, pc}
-
- thumb_func_start MOD08_02228A68
-MOD08_02228A68: ; 0x02228A68
- push {r4, lr}
- add r4, r0, #0
- ldr r1, [r4, #4]
- cmp r1, #0
- bne _02228A7C
- add r1, r1, #1
- str r1, [r4, #4]
- mov r1, #0x15
- bl MOD08_02229A18
-_02228A7C:
- add r0, r4, #0
- mov r1, #0x16
- bl MOD08_02229A1C
- cmp r0, #1
- bne _02228A8C
- mov r0, #0
- pop {r4, pc}
-_02228A8C:
- mov r0, #1
- pop {r4, pc}
-
- thumb_func_start MOD08_02228A90
-MOD08_02228A90: ; 0x02228A90
- push {r4, lr}
- add r4, r0, #0
- ldr r1, [r4, #4]
- cmp r1, #0
- bne _02228AA4
- add r1, r1, #1
- str r1, [r4, #4]
- mov r1, #0x17
- bl MOD08_02229A18
-_02228AA4:
- add r0, r4, #0
- mov r1, #0x1b
- bl MOD08_02229A1C
- cmp r0, #1
- bne _02228AB4
- mov r0, #0
- pop {r4, pc}
-_02228AB4:
- mov r0, #1
- pop {r4, pc}
-
- thumb_func_start MOD08_02228AB8
-MOD08_02228AB8: ; 0x02228AB8
- str r1, [r0]
- mov r1, #0
- str r1, [r0, #4]
- bx lr
-
- thumb_func_start MOD08_02228AC0
-MOD08_02228AC0: ; 0x02228AC0
- push {r3, lr}
- ldr r1, [r0]
- lsl r2, r1, #2
- ldr r1, _02228AD0 ; =0x0222D034
- ldr r1, [r1, r2]
- blx r1
- pop {r3, pc}
- nop
-_02228AD0: .word 0x0222D034
-
- thumb_func_start MOD08_02228AD4
-MOD08_02228AD4: ; 0x02228AD4
- str r1, [r0, #0x14]
- mov r1, #0
- str r1, [r0, #8]
- str r1, [r0, #0xc]
- str r1, [r0, #0x10]
- bx lr
-
- thumb_func_start MOD08_02228AE0
-MOD08_02228AE0: ; 0x02228AE0
- mov r0, #1
- bx lr
-
- thumb_func_start MOD08_02228AE4
-MOD08_02228AE4: ; 0x02228AE4
- push {r4, lr}
- add r4, r0, #0
- bl MOD08_02229114
- cmp r0, #0
- bne _02228AF8
- add r0, r4, #0
- mov r1, #2
- bl MOD08_02228AD4
-_02228AF8:
- mov r0, #1
- pop {r4, pc}
-
- thumb_func_start MOD08_02228AFC
-MOD08_02228AFC: ; 0x02228AFC
- push {r3, lr}
- mov r1, #3
- bl MOD08_02228AD4
- mov r0, #1
- pop {r3, pc}
-
- thumb_func_start MOD08_02228B08
-MOD08_02228B08: ; 0x02228B08
- push {r3, r4, lr}
- sub sp, #0x14
- add r4, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #3
- bhi _02228BD8
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02228B20: ; jump table
- .short _02228B28 - _02228B20 - 2 ; case 0
- .short _02228B7E - _02228B20 - 2 ; case 1
- .short _02228B94 - _02228B20 - 2 ; case 2
- .short _02228BB0 - _02228B20 - 2 ; case 3
-_02228B28:
- ldr r0, [r4, #0x30]
- mov r1, #1
- bl FUN_0200C5C0
- add r0, r4, #0
- add r0, #0xa0
- ldr r0, [r0]
- add r2, sp, #0
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x94
- ldr r0, [r0]
- add r1, sp, #0
- str r0, [sp, #8]
- mov r0, #0xff
- str r0, [sp, #0xc]
- mov r0, #0
- str r0, [sp, #0x10]
- ldr r0, [r4, #0x30]
- add r2, #2
- bl FUN_0200C7A0
- add r0, r4, #0
- add r1, r4, #0
- add r0, #0xb4
- add r1, #0x94
- ldr r0, [r0]
- ldr r1, [r1]
- bl MOD08_0221590C
- add r1, r4, #0
- add r1, #0xd8
- str r0, [r1]
- add r0, sp, #0
- bl MOD08_02228880
- add r1, r4, #0
- add r1, #0xd0
- str r0, [r1]
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02228BE0
-_02228B7E:
- ldr r0, [r4, #0x30]
- bl FUN_0200C630
- cmp r0, #2
- blt _02228BE0
- mov r0, #0
- str r0, [r4, #0x24]
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02228BE0
-_02228B94:
- add r0, r4, #0
- add r0, #0xd0
- ldr r0, [r0]
- bl MOD08_022288E0
- add r0, r4, #0
- add r0, #0xd8
- ldr r0, [r0]
- bl MOD08_02215918
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02228BE0
-_02228BB0:
- add r0, r4, #0
- add r0, #0xd0
- ldr r0, [r0]
- bl MOD08_02228954
- cmp r0, #0
- bne _02228BE0
- ldr r0, [r4, #0x30]
- mov r1, #0
- bl FUN_0200C61C
- add r0, r4, #0
- add r0, #0xd0
- ldr r0, [r0]
- bl MOD08_02228970
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02228BE0
-_02228BD8:
- add r0, r4, #0
- mov r1, #4
- bl MOD08_02228AD4
-_02228BE0:
- mov r0, #1
- add sp, #0x14
- pop {r3, r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02228BE8
-MOD08_02228BE8: ; 0x02228BE8
- mov r0, #1
- bx lr
-
- thumb_func_start MOD08_02228BEC
-MOD08_02228BEC: ; 0x02228BEC
- push {r4, lr}
- add r4, r0, #0
- ldr r1, [r4, #0xc]
- cmp r1, #0
- bne _02228C2C
- add r1, r4, #0
- add r2, r4, #0
- ldr r0, [r4, #0x30]
- add r1, #0xb8
- add r2, #0xba
- bl FUN_0200C7A0
- add r0, r4, #0
- mov r1, #0x3c
- add r0, #0xbc
- strh r1, [r0]
- add r0, r4, #0
- mov r1, #0xb4
- add r0, #0xbe
- strh r1, [r0]
- add r0, r4, #0
- mov r1, #0xa
- add r0, #0xc0
- str r1, [r0]
- add r0, r4, #0
- mov r1, #0xc
- add r0, #0xc8
- str r1, [r0]
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- b _02228C3C
-_02228C2C:
- bl MOD08_02229114
- cmp r0, #0
- bne _02228C3C
- add r0, r4, #0
- mov r1, #6
- bl MOD08_02228AD4
-_02228C3C:
- mov r0, #1
- pop {r4, pc}
-
- thumb_func_start MOD08_02228C40
-MOD08_02228C40: ; 0x02228C40
- mov r0, #1
- bx lr
-
- thumb_func_start MOD08_02228C44
-MOD08_02228C44: ; 0x02228C44
- push {r3, lr}
- mov r1, #8
- bl MOD08_02228AD4
- mov r0, #1
- pop {r3, pc}
-
- thumb_func_start MOD08_02228C50
-MOD08_02228C50: ; 0x02228C50
- push {r3, lr}
- mov r1, #9
- bl MOD08_02228AD4
- mov r0, #1
- pop {r3, pc}
-
- thumb_func_start MOD08_02228C5C
-MOD08_02228C5C: ; 0x02228C5C
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #0
- beq _02228C6E
- cmp r0, #1
- beq _02228CA2
- b _02228CE4
-_02228C6E:
- ldr r0, [r4, #0x30]
- bl FUN_0200C68C
- add r2, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r0, #0xc
- str r0, [sp, #4]
- ldr r0, _02228D00 ; =0x0000037F
- mov r3, #1
- add r5, r3, #0
- str r0, [sp, #8]
- add r0, r4, #0
- lsl r5, r2
- add r0, #0xb0
- lsl r2, r5, #0x10
- ldr r0, [r0]
- mov r1, #4
- lsr r2, r2, #0x10
- sub r3, r3, #2
- bl FUN_02003210
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02228CFA
-_02228CA2:
- add r0, r4, #0
- add r0, #0xb0
- ldr r0, [r0]
- bl FUN_020038E4
- cmp r0, #0
- bne _02228CFA
- ldr r0, [r4, #0x30]
- bl FUN_0200C68C
- add r2, r0, #0
- mov r0, #0xc
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- ldr r0, _02228D00 ; =0x0000037F
- mov r3, #1
- add r5, r3, #0
- str r0, [sp, #8]
- add r0, r4, #0
- lsl r5, r2
- add r0, #0xb0
- lsl r2, r5, #0x10
- ldr r0, [r0]
- mov r1, #4
- lsr r2, r2, #0x10
- sub r3, r3, #2
- bl FUN_02003210
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02228CFA
-_02228CE4:
- add r0, r4, #0
- add r0, #0xb0
- ldr r0, [r0]
- bl FUN_020038E4
- cmp r0, #0
- bne _02228CFA
- add r0, r4, #0
- mov r1, #0xa
- bl MOD08_02228AD4
-_02228CFA:
- mov r0, #1
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-_02228D00: .word 0x0000037F
-
- thumb_func_start MOD08_02228D04
-MOD08_02228D04: ; 0x02228D04
- push {r3, lr}
- mov r1, #0xb
- bl MOD08_02228AD4
- mov r0, #1
- pop {r3, pc}
-
- thumb_func_start MOD08_02228D10
-MOD08_02228D10: ; 0x02228D10
- push {r3, r4, lr}
- sub sp, #0xc
- add r4, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #0
- beq _02228D22
- cmp r0, #1
- beq _02228D62
- b _02228D7E
-_02228D22:
- ldr r0, [r4, #0xc]
- add r0, r0, #1
- str r0, [r4, #0xc]
- cmp r0, #1
- blt _02228D7E
- add r1, sp, #8
- ldr r0, [r4, #0x30]
- add r1, #2
- add r2, sp, #8
- bl FUN_0200C7A0
- add r1, sp, #8
- mov r0, #0
- ldrsh r3, [r1, r0]
- mov r0, #2
- ldrsh r1, [r1, r0]
- add r0, r3, #0
- add r0, #0x20
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp]
- mov r0, #0xa
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x48
- add r2, r1, #0
- bl MOD08_02217E80
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02228D7E
-_02228D62:
- add r0, r4, #0
- ldr r1, [r4, #0x30]
- add r0, #0x48
- bl MOD08_02217F08
- cmp r0, #0
- bne _02228D7E
- ldr r0, [r4, #8]
- mov r1, #0xd
- add r0, r0, #1
- str r0, [r4, #8]
- add r0, r4, #0
- bl MOD08_02228AD4
-_02228D7E:
- mov r0, #1
- add sp, #0xc
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_02228D84
-MOD08_02228D84: ; 0x02228D84
- mov r0, #1
- bx lr
-
- thumb_func_start MOD08_02228D88
-MOD08_02228D88: ; 0x02228D88
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- ldr r1, [r5, #8]
- cmp r1, #0
- beq _02228D98
- cmp r1, #1
- beq _02228DAE
- b _02228E0E
-_02228D98:
- ldr r0, [r5, #0x30]
- mov r1, #1
- bl FUN_0200C5C0
- ldr r0, [r5, #0x30]
- mov r1, #0
- bl FUN_0200C61C
- ldr r0, [r5, #8]
- add r0, r0, #1
- str r0, [r5, #8]
-_02228DAE:
- ldr r1, [r5, #0xc]
- mov r0, #6
- add r2, r1, #0
- mul r2, r0
- ldr r0, _02228E18 ; =0x0222D18A
- ldr r1, _02228E1C ; =0x0222D18C
- ldrsh r0, [r0, r2]
- ldrh r1, [r1, r2]
- str r0, [sp]
- ldr r0, [r5, #0x30]
- bl FUN_0200C61C
- ldr r0, [r5, #0xc]
- ldr r4, _02228E20 ; =0x0222D07C
- add r0, r0, #1
- str r0, [r5, #0xc]
- mov r6, #0
- mov r7, #0x75
-_02228DD2:
- ldr r1, [r5, #0xc]
- ldr r0, [r4]
- cmp r1, r0
- bne _02228DE6
- ldr r0, [r4, #4]
- add r1, r7, #0
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_020054A8
-_02228DE6:
- add r6, r6, #1
- add r4, #8
- cmp r6, #5
- blt _02228DD2
- ldr r0, [r5, #0xc]
- cmp r0, #0x14
- bgt _02228DFA
- ldr r0, [sp]
- cmp r0, #0xff
- bne _02228E02
-_02228DFA:
- ldr r0, [r5, #8]
- add r0, r0, #1
- str r0, [r5, #8]
- b _02228E14
-_02228E02:
- ldr r0, [r5, #0x30]
- ldr r2, [sp]
- mov r1, #0
- bl FUN_0200C82C
- b _02228E14
-_02228E0E:
- mov r1, #0xe
- bl MOD08_02228AD4
-_02228E14:
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02228E18: .word 0x0222D18A
-_02228E1C: .word 0x0222D18C
-_02228E20: .word 0x0222D07C
-
- thumb_func_start MOD08_02228E24
-MOD08_02228E24: ; 0x02228E24
- mov r0, #1
- bx lr
-
- thumb_func_start MOD08_02228E28
-MOD08_02228E28: ; 0x02228E28
- push {r3, lr}
- ldr r1, [r0, #0xc]
- add r1, r1, #1
- str r1, [r0, #0xc]
- cmp r1, #0xe
- blt _02228E44
- ldr r1, [r0, #8]
- add r1, r1, #1
- str r1, [r0, #8]
- mov r1, #0
- str r1, [r0, #0xc]
- mov r1, #0x10
- bl MOD08_02228AD4
-_02228E44:
- mov r0, #1
- pop {r3, pc}
-
- thumb_func_start MOD08_02228E48
-MOD08_02228E48: ; 0x02228E48
- push {r3, lr}
- mov r1, #0x11
- bl MOD08_02228AD4
- mov r0, #1
- pop {r3, pc}
-
- thumb_func_start MOD08_02228E54
-MOD08_02228E54: ; 0x02228E54
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5, #8]
- cmp r0, #0
- beq _02228E64
- cmp r0, #1
- beq _02228E74
- b _02228EDC
-_02228E64:
- ldr r0, [r5, #0x18]
- cmp r0, #3
- blt _02228E6E
- bl ErrorHandling
-_02228E6E:
- ldr r0, [r5, #8]
- add r0, r0, #1
- str r0, [r5, #8]
-_02228E74:
- ldr r1, [r5, #0x18]
- mov r0, #0x18
- add r3, r1, #0
- mul r3, r0
- ldr r0, _02228EE0 ; =0x0222D0D0
- ldr r1, [r5, #0xc]
- add r0, r0, r3
- lsl r2, r1, #1
- ldrsh r4, [r2, r0]
- add r0, r1, #1
- str r0, [r5, #0xc]
- cmp r0, #0xb
- bgt _02228E92
- cmp r4, #0xff
- bne _02228EB2
-_02228E92:
- ldr r0, [r5, #8]
- mov r1, #0
- add r0, r0, #1
- str r0, [r5, #8]
- ldr r0, [r5, #0x18]
- add r0, r0, #1
- str r0, [r5, #0x18]
- ldr r0, [r5, #0x30]
- bl FUN_0200C898
- add r0, r5, #0
- mov r1, #0x12
- bl MOD08_02228AD4
- mov r0, #1
- pop {r3, r4, r5, pc}
-_02228EB2:
- cmp r0, #5
- bne _02228EBE
- ldr r0, _02228EE4 ; =0x000005FE
- mov r1, #0x75
- bl FUN_020054A8
-_02228EBE:
- ldr r0, [r5, #0x30]
- add r1, r4, #0
- mov r2, #0
- bl FUN_0200C82C
- ldr r0, _02228EE8 ; =0x0001FFFE
- mov r1, #0x5a
- mul r0, r4
- lsl r1, r1, #2
- bl _s32_div_f
- add r1, r0, #0
- ldr r0, [r5, #0x30]
- bl FUN_0200C8BC
-_02228EDC:
- mov r0, #1
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02228EE0: .word 0x0222D0D0
-_02228EE4: .word 0x000005FE
-_02228EE8: .word 0x0001FFFE
-
- thumb_func_start MOD08_02228EEC
-MOD08_02228EEC: ; 0x02228EEC
- mov r0, #1
- bx lr
-
- thumb_func_start MOD08_02228EF0
-MOD08_02228EF0: ; 0x02228EF0
- push {r3, lr}
- mov r1, #0x14
- bl MOD08_02228AD4
- mov r0, #1
- pop {r3, pc}
-
- thumb_func_start MOD08_02228EFC
-MOD08_02228EFC: ; 0x02228EFC
- push {r3, lr}
- mov r1, #0x1b
- bl MOD08_02228AD4
- mov r0, #1
- pop {r3, pc}
-
- thumb_func_start MOD08_02228F08
-MOD08_02228F08: ; 0x02228F08
- push {r3, r4, r5, lr}
- sub sp, #0x20
- add r4, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #3
- bhi _02228FDC
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02228F20: ; jump table
- .short _02228F28 - _02228F20 - 2 ; case 0
- .short _02228F5A - _02228F20 - 2 ; case 1
- .short _02228FA2 - _02228F20 - 2 ; case 2
- .short _02228FB4 - _02228F20 - 2 ; case 3
-_02228F28:
- ldr r0, [r4, #0x30]
- bl FUN_0200C68C
- mov r1, #0
- mov r3, #1
- add r2, r0, #0
- add r5, r3, #0
- lsl r5, r2
- lsl r2, r5, #0x10
- str r1, [sp]
- mov r0, #0xa
- str r0, [sp, #4]
- add r0, r4, #0
- str r1, [sp, #8]
- add r0, #0xb0
- ldr r0, [r0]
- mov r1, #4
- lsr r2, r2, #0x10
- sub r3, r3, #6
- bl FUN_02003210
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02228FF2
-_02228F5A:
- add r0, r4, #0
- add r0, #0xb0
- ldr r0, [r0]
- bl FUN_020038E4
- cmp r0, #0
- bne _02228FF2
- add r0, r4, #0
- add r0, #0xa0
- ldr r0, [r0]
- add r1, r4, #0
- str r0, [sp, #0x10]
- add r1, #0x94
- ldr r1, [r1]
- str r1, [sp, #0x14]
- bl MOD08_022281C8
- str r0, [sp, #0x18]
- mov r0, #0
- str r0, [sp, #0x1c]
- add r2, sp, #0xc
- ldr r0, [r4, #0x30]
- add r1, sp, #0xc
- add r2, #2
- bl FUN_0200C7A0
- add r0, sp, #0xc
- bl MOD08_02228880
- add r1, r4, #0
- add r1, #0xd0
- str r0, [r1]
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02228FF2
-_02228FA2:
- add r0, r4, #0
- add r0, #0xd0
- ldr r0, [r0]
- bl MOD08_022288E0
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02228FF2
-_02228FB4:
- add r0, r4, #0
- add r0, #0xd0
- ldr r0, [r0]
- bl MOD08_02228954
- cmp r0, #0
- bne _02228FF2
- ldr r0, [r4, #0x30]
- mov r1, #0
- bl FUN_0200C61C
- add r0, r4, #0
- add r0, #0xd0
- ldr r0, [r0]
- bl MOD08_02228970
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02228FF2
-_02228FDC:
- add r0, r4, #0
- add r0, #0xb0
- ldr r0, [r0]
- bl FUN_020038E4
- cmp r0, #0
- bne _02228FF2
- add r0, r4, #0
- mov r1, #0x16
- bl MOD08_02228AD4
-_02228FF2:
- mov r0, #1
- add sp, #0x20
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD08_02228FF8
-MOD08_02228FF8: ; 0x02228FF8
- mov r0, #1
- bx lr
-
- thumb_func_start MOD08_02228FFC
-MOD08_02228FFC: ; 0x02228FFC
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r0, #0
- ldr r1, [r4, #8]
- cmp r1, #0
- beq _0222900E
- cmp r1, #1
- beq _02229040
- b _02229054
-_0222900E:
- ldr r0, [r4, #0x30]
- bl FUN_0200C68C
- add r2, r0, #0
- mov r0, #0xa
- str r0, [sp]
- mov r0, #0
- mov r3, #1
- add r5, r3, #0
- str r0, [sp, #4]
- str r0, [sp, #8]
- add r0, r4, #0
- lsl r5, r2
- add r0, #0xb0
- lsl r2, r5, #0x10
- ldr r0, [r0]
- mov r1, #4
- lsr r2, r2, #0x10
- sub r3, r3, #6
- bl FUN_02003210
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _0222905A
-_02229040:
- add r0, #0xb0
- ldr r0, [r0]
- bl FUN_020038E4
- cmp r0, #0
- bne _0222905A
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _0222905A
-_02229054:
- mov r1, #0x18
- bl MOD08_02228AD4
-_0222905A:
- mov r0, #1
- add sp, #0xc
- pop {r4, r5, pc}
-
- thumb_func_start MOD08_02229060
-MOD08_02229060: ; 0x02229060
- push {r3, lr}
- mov r1, #0x19
- bl MOD08_02228AD4
- mov r0, #1
- pop {r3, pc}
-
- thumb_func_start MOD08_0222906C
-MOD08_0222906C: ; 0x0222906C
- push {r4, lr}
- add r4, r0, #0
- ldr r1, [r4, #8]
- cmp r1, #0
- beq _0222907C
- cmp r1, #1
- beq _0222908A
- b _022290E2
-_0222907C:
- ldr r0, [r4, #0x30]
- mov r1, #1
- bl FUN_0200C90C
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
-_0222908A:
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- cmp r0, #0
- beq _022290B2
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- sub r1, r0, #1
- add r0, r4, #0
- add r0, #0x20
- strb r1, [r0]
- add r0, r4, #0
- add r0, #0x21
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x21
- strb r1, [r0]
- b _022290CE
-_022290B2:
- add r0, r4, #0
- mov r1, #0
- add r0, #0x20
- strb r1, [r0]
- add r0, r4, #0
- mov r2, #0xf
- add r0, #0x21
- strb r2, [r0]
- ldr r0, [r4, #0x30]
- bl FUN_0200C644
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
-_022290CE:
- add r0, r4, #0
- add r0, #0x20
- add r4, #0x21
- ldrb r1, [r0]
- ldrb r0, [r4]
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _022290EC ; =0x04000052
- strh r1, [r0]
- b _022290E8
-_022290E2:
- mov r1, #0x1a
- bl MOD08_02228AD4
-_022290E8:
- mov r0, #1
- pop {r4, pc}
- .align 2, 0
-_022290EC: .word 0x04000052
-
- thumb_func_start MOD08_022290F0
-MOD08_022290F0: ; 0x022290F0
- push {r3, lr}
- mov r1, #0x1b
- bl MOD08_02228AD4
- mov r0, #1
- pop {r3, pc}
-
- thumb_func_start MOD08_022290FC
-MOD08_022290FC: ; 0x022290FC
- mov r0, #0
- bx lr
-
- thumb_func_start MOD08_02229100
-MOD08_02229100: ; 0x02229100
- push {r3, lr}
- ldr r1, [r0, #0x14]
- lsl r2, r1, #2
- ldr r1, _02229110 ; =0x0222D118
- ldr r1, [r1, r2]
- blx r1
- pop {r3, pc}
- nop
-_02229110: .word 0x0222D118
-
- thumb_func_start MOD08_02229114
-MOD08_02229114: ; 0x02229114
- push {r3, r4, lr}
- sub sp, #0x1c
- add r4, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #3
- bls _02229122
- b _02229322
-_02229122:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0222912E: ; jump table
- .short _02229136 - _0222912E - 2 ; case 0
- .short _022291A4 - _0222912E - 2 ; case 1
- .short _0222929E - _0222912E - 2 ; case 2
- .short _02229302 - _0222912E - 2 ; case 3
-_02229136:
- mov r0, #0xba
- ldrsh r0, [r4, r0]
- add r1, r4, #0
- mov r2, #0xb8
- str r0, [sp]
- mov r0, #0xbe
- ldrsh r0, [r4, r0]
- mov r3, #0xbc
- add r1, #0x6c
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0xc8
- ldr r0, [r0]
- lsl r0, r0, #0xc
- str r0, [sp, #0xc]
- add r0, r4, #0
- ldrsh r2, [r4, r2]
- ldrsh r3, [r4, r3]
- add r0, #0x48
- bl MOD08_02217F50
- add r0, r4, #0
- mov r1, #0
- add r0, #0xc4
- str r1, [r0]
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- add r0, r4, #0
- add r0, #0xd4
- str r1, [r0]
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- bl MOD08_022280C4
- cmp r0, #1
- bne _0222928C
- bl rand_LC
- mov r1, #0x14
- bl _s32_div_f
- add r1, #0xa
- ldr r0, [r4, #0x30]
- lsl r1, r1, #0xd
- bl FUN_0200C8BC
- b _022293BE
-_022291A4:
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- bl MOD08_022280C4
- cmp r0, #1
- bne _02229242
- mov r1, #2
- ldr r0, [r4, #0x30]
- lsl r1, r1, #0xc
- bl FUN_0200C8BC
- add r0, r4, #0
- add r0, #0xc4
- ldr r2, [r0]
- add r0, r4, #0
- add r0, #0xc0
- ldr r1, [r0]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r0, r0, #1
- add r0, #0xa
- cmp r2, r0
- ble _022291DE
- mov r1, #2
- ldr r0, [r4, #0x30]
- lsl r1, r1, #0xc
- bl FUN_0200C8BC
-_022291DE:
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- bl MOD08_02228104
- cmp r0, #1
- bne _02229242
- add r0, r4, #0
- add r0, #0xc4
- ldr r2, [r0]
- add r0, r4, #0
- add r0, #0xc0
- ldr r1, [r0]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r0, r0, #1
- add r0, #0xa
- cmp r2, r0
- bne _02229242
- ldr r0, [r4, #0x30]
- bl FUN_0200C68C
- add r3, r0, #0
- mov r0, #0x10
- str r0, [sp]
- sub r0, #0x12
- str r0, [sp, #4]
- mov r2, #2
- add r1, r4, #0
- lsl r3, r3, #0x14
- str r2, [sp, #8]
- mov r0, #0
- str r0, [sp, #0xc]
- mov r0, #0xe
- str r0, [sp, #0x10]
- ldr r0, _022293C4 ; =0x0000FFFF
- add r1, #0x94
- str r0, [sp, #0x14]
- ldr r0, _022293C8 ; =0x000003EA
- lsr r3, r3, #0x10
- str r0, [sp, #0x18]
- add r0, r4, #0
- add r0, #0xb0
- ldr r0, [r0]
- ldr r1, [r1]
- bl MOD08_02218B20
- add r1, r4, #0
- add r1, #0xd4
- str r0, [r1]
-_02229242:
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xc4
- str r1, [r0]
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- cmp r0, #6
- blt _0222927A
- cmp r0, #8
- bgt _0222927A
- add r0, r4, #0
- add r0, #0xc0
- ldr r1, [r0]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r2, r0, #1
- add r0, r4, #0
- add r0, #0xc4
- ldr r1, [r0]
- cmp r1, r2
- ble _0222927A
- add r0, r2, #5
- cmp r1, r0
- blt _0222928C
-_0222927A:
- add r0, r4, #0
- add r1, r4, #0
- ldr r2, [r4, #0x30]
- add r0, #0x48
- add r1, #0x6c
- bl MOD08_02217FE4
- cmp r0, #0
- beq _0222928E
-_0222928C:
- b _022293BE
-_0222928E:
- add r0, r4, #0
- mov r1, #0
- bl MOD08_02229FFC
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _022293BE
-_0222929E:
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- bl MOD08_02228104
- cmp r0, #1
- bne _022292D2
- add r0, r4, #0
- add r0, #0xd4
- ldr r0, [r0]
- cmp r0, #0
- beq _022292D2
- bl MOD08_02218AF8
- cmp r0, #1
- beq _022293BE
- add r0, r4, #0
- add r0, #0xd4
- ldr r0, [r0]
- bl MOD08_02218B08
- mov r0, #1
- str r0, [r4, #0x28]
- add sp, #0x1c
- mov r0, #0
- pop {r3, r4, pc}
-_022292D2:
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- cmp r0, #0xf
- blt _022292E6
- mov r0, #1
- str r0, [r4, #0x28]
- add sp, #0x1c
- mov r0, #0
- pop {r3, r4, pc}
-_022292E6:
- add r0, r4, #0
- add r0, #0xa0
- ldr r1, [r0]
- ldr r0, _022293CC ; =0x00000111
- cmp r1, r0
- bne _022292FA
- ldr r0, _022293D0 ; =0x000007E8
- mov r1, #0x75
- bl FUN_020054A8
-_022292FA:
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _022293BE
-_02229302:
- ldr r0, [r4, #0x30]
- mov r1, #1
- bl FUN_0200C5C0
- add r0, r4, #0
- mov r1, #1
- bl MOD08_0222A008
- add r0, r4, #0
- mov r1, #0
- add r0, #0xc4
- str r1, [r0]
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _022293BE
-_02229322:
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- cmp r0, #0xf
- bne _0222937C
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- cmp r0, #0xc
- beq _02229378
- cmp r0, #0xd
- beq _02229378
- ldr r0, [r4, #0x30]
- bl FUN_0200C68C
- add r3, r0, #0
- mov r0, #0x10
- str r0, [sp]
- sub r0, #0x12
- str r0, [sp, #4]
- mov r2, #2
- add r1, r4, #0
- lsl r3, r3, #0x14
- str r2, [sp, #8]
- mov r0, #0
- str r0, [sp, #0xc]
- mov r0, #0xe
- str r0, [sp, #0x10]
- ldr r0, _022293C4 ; =0x0000FFFF
- add r1, #0x94
- str r0, [sp, #0x14]
- ldr r0, _022293C8 ; =0x000003EA
- lsr r3, r3, #0x10
- str r0, [sp, #0x18]
- add r0, r4, #0
- add r0, #0xb0
- ldr r0, [r0]
- ldr r1, [r1]
- bl MOD08_02218B20
- add r1, r4, #0
- add r1, #0xd4
- str r0, [r1]
-_02229378:
- mov r0, #1
- str r0, [r4, #0x28]
-_0222937C:
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xc4
- str r1, [r0]
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- cmp r0, #0xf
- ble _022293BE
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- cmp r0, #0xc
- beq _022293B8
- cmp r0, #0xd
- beq _022293B8
- add r0, r4, #0
- add r0, #0xd4
- ldr r0, [r0]
- bl MOD08_02218AF8
- cmp r0, #1
- beq _022293BE
- add r4, #0xd4
- ldr r0, [r4]
- bl MOD08_02218B08
-_022293B8:
- add sp, #0x1c
- mov r0, #0
- pop {r3, r4, pc}
-_022293BE:
- mov r0, #1
- add sp, #0x1c
- pop {r3, r4, pc}
- .align 2, 0
-_022293C4: .word 0x0000FFFF
-_022293C8: .word 0x000003EA
-_022293CC: .word 0x00000111
-_022293D0: .word 0x000007E8
-
- thumb_func_start MOD08_022293D4
-MOD08_022293D4: ; 0x022293D4
- push {r3, r4, lr}
- sub sp, #0x1c
- add r4, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #3
- bls _022293E2
- b _022295CE
-_022293E2:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_022293EE: ; jump table
- .short _022293F6 - _022293EE - 2 ; case 0
- .short _02229464 - _022293EE - 2 ; case 1
- .short _0222955E - _022293EE - 2 ; case 2
- .short _022295AE - _022293EE - 2 ; case 3
-_022293F6:
- mov r0, #0xba
- ldrsh r0, [r4, r0]
- add r1, r4, #0
- mov r2, #0xb8
- str r0, [sp]
- mov r0, #0xbe
- ldrsh r0, [r4, r0]
- mov r3, #0xbc
- add r1, #0x6c
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0xc0
- ldr r0, [r0]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- add r0, r4, #0
- add r0, #0xc8
- ldr r0, [r0]
- lsl r0, r0, #0xc
- str r0, [sp, #0xc]
- add r0, r4, #0
- ldrsh r2, [r4, r2]
- ldrsh r3, [r4, r3]
- add r0, #0x48
- bl MOD08_02217F50
- add r0, r4, #0
- mov r1, #0
- add r0, #0xc4
- str r1, [r0]
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- add r0, r4, #0
- add r0, #0xd4
- str r1, [r0]
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- bl MOD08_022280C4
- cmp r0, #1
- bne _0222954C
- bl rand_LC
- mov r1, #0x14
- bl _s32_div_f
- add r1, #0xa
- ldr r0, [r4, #0x30]
- lsl r1, r1, #0xd
- bl FUN_0200C8BC
- b _02229656
-_02229464:
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- bl MOD08_022280C4
- cmp r0, #1
- bne _02229502
- mov r1, #2
- ldr r0, [r4, #0x30]
- lsl r1, r1, #0xc
- bl FUN_0200C8BC
- add r0, r4, #0
- add r0, #0xc4
- ldr r2, [r0]
- add r0, r4, #0
- add r0, #0xc0
- ldr r1, [r0]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r0, r0, #1
- add r0, #0xa
- cmp r2, r0
- ble _0222949E
- mov r1, #2
- ldr r0, [r4, #0x30]
- lsl r1, r1, #0xc
- bl FUN_0200C8BC
-_0222949E:
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- bl MOD08_02228104
- cmp r0, #1
- bne _02229502
- add r0, r4, #0
- add r0, #0xc4
- ldr r2, [r0]
- add r0, r4, #0
- add r0, #0xc0
- ldr r1, [r0]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r0, r0, #1
- add r0, #0xa
- cmp r2, r0
- bne _02229502
- ldr r0, [r4, #0x30]
- bl FUN_0200C68C
- add r3, r0, #0
- mov r0, #0x10
- str r0, [sp]
- sub r0, #0x12
- str r0, [sp, #4]
- mov r2, #2
- add r1, r4, #0
- lsl r3, r3, #0x14
- str r2, [sp, #8]
- mov r0, #0
- str r0, [sp, #0xc]
- mov r0, #0xe
- str r0, [sp, #0x10]
- ldr r0, _0222965C ; =0x0000FFFF
- add r1, #0x94
- str r0, [sp, #0x14]
- ldr r0, _02229660 ; =0x000003EA
- lsr r3, r3, #0x10
- str r0, [sp, #0x18]
- add r0, r4, #0
- add r0, #0xb0
- ldr r0, [r0]
- ldr r1, [r1]
- bl MOD08_02218B20
- add r1, r4, #0
- add r1, #0xd4
- str r0, [r1]
-_02229502:
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xc4
- str r1, [r0]
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- cmp r0, #6
- blt _0222953A
- cmp r0, #8
- bgt _0222953A
- add r0, r4, #0
- add r0, #0xc0
- ldr r1, [r0]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r2, r0, #1
- add r0, r4, #0
- add r0, #0xc4
- ldr r1, [r0]
- cmp r1, r2
- ble _0222953A
- add r0, r2, #5
- cmp r1, r0
- blt _0222954C
-_0222953A:
- add r0, r4, #0
- add r1, r4, #0
- ldr r2, [r4, #0x30]
- add r0, #0x48
- add r1, #0x6c
- bl MOD08_02217FE4
- cmp r0, #0
- beq _0222954E
-_0222954C:
- b _02229656
-_0222954E:
- add r0, r4, #0
- mov r1, #0
- bl MOD08_02229FFC
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02229656
-_0222955E:
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- bl MOD08_02228104
- cmp r0, #1
- bne _02229592
- add r0, r4, #0
- add r0, #0xd4
- ldr r0, [r0]
- cmp r0, #0
- beq _02229592
- bl MOD08_02218AF8
- cmp r0, #1
- beq _02229656
- add r0, r4, #0
- add r0, #0xd4
- ldr r0, [r0]
- bl MOD08_02218B08
- mov r0, #1
- str r0, [r4, #0x28]
- add sp, #0x1c
- mov r0, #0
- pop {r3, r4, pc}
-_02229592:
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- cmp r0, #0xf
- blt _022295A6
- mov r0, #1
- str r0, [r4, #0x28]
- add sp, #0x1c
- mov r0, #0
- pop {r3, r4, pc}
-_022295A6:
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02229656
-_022295AE:
- ldr r0, [r4, #0x30]
- mov r1, #1
- bl FUN_0200C5C0
- add r0, r4, #0
- mov r1, #0
- bl MOD08_0222A008
- add r0, r4, #0
- mov r1, #0
- add r0, #0xc4
- str r1, [r0]
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02229656
-_022295CE:
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- cmp r0, #0xf
- bne _02229622
- ldr r0, [r4, #0x30]
- mov r1, #2
- bl FUN_0200C61C
- ldr r0, [r4, #0x30]
- bl FUN_0200C68C
- add r3, r0, #0
- mov r0, #0x10
- str r0, [sp]
- sub r0, #0x12
- str r0, [sp, #4]
- mov r2, #2
- add r1, r4, #0
- lsl r3, r3, #0x14
- str r2, [sp, #8]
- mov r0, #0
- str r0, [sp, #0xc]
- mov r0, #0xe
- str r0, [sp, #0x10]
- ldr r0, _0222965C ; =0x0000FFFF
- add r1, #0x94
- str r0, [sp, #0x14]
- ldr r0, _02229660 ; =0x000003EA
- lsr r3, r3, #0x10
- str r0, [sp, #0x18]
- add r0, r4, #0
- add r0, #0xb0
- ldr r0, [r0]
- ldr r1, [r1]
- bl MOD08_02218B20
- add r1, r4, #0
- add r1, #0xd4
- str r0, [r1]
- mov r0, #1
- str r0, [r4, #0x28]
-_02229622:
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xc4
- str r1, [r0]
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- cmp r0, #0xf
- ble _02229656
- add r0, r4, #0
- add r0, #0xd4
- ldr r0, [r0]
- bl MOD08_02218AF8
- cmp r0, #1
- beq _02229656
- add r4, #0xd4
- ldr r0, [r4]
- bl MOD08_02218B08
- add sp, #0x1c
- mov r0, #0
- pop {r3, r4, pc}
-_02229656:
- mov r0, #1
- add sp, #0x1c
- pop {r3, r4, pc}
- .align 2, 0
-_0222965C: .word 0x0000FFFF
-_02229660: .word 0x000003EA
-
- thumb_func_start MOD08_02229664
-MOD08_02229664: ; 0x02229664
- push {r3, r4, lr}
- sub sp, #0x14
- add r4, r0, #0
- ldr r1, [r4, #8]
- cmp r1, #7
- bls _02229672
- b _022297EA
-_02229672:
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0222967E: ; jump table
- .short _0222968E - _0222967E - 2 ; case 0
- .short _022296CC - _0222967E - 2 ; case 1
- .short _022296FC - _0222967E - 2 ; case 2
- .short _02229732 - _0222967E - 2 ; case 3
- .short _02229742 - _0222967E - 2 ; case 4
- .short _02229770 - _0222967E - 2 ; case 5
- .short _0222979E - _0222967E - 2 ; case 6
- .short _022297CC - _0222967E - 2 ; case 7
-_0222968E:
- mov r1, #0
- bl MOD08_0222A008
- ldr r0, [r4, #0x30]
- mov r1, #1
- bl FUN_0200C5C0
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xc4
- str r1, [r0]
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- cmp r0, #2
- blt _022296E2
- ldr r0, [r4, #0x30]
- mov r1, #0
- bl FUN_0200C61C
- add r0, r4, #0
- mov r1, #0
- add r0, #0xc4
- str r1, [r0]
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _022297F0
-_022296CC:
- add r0, #0xc4
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xc4
- str r1, [r0]
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- cmp r0, #2
- bge _022296E4
-_022296E2:
- b _022297F0
-_022296E4:
- ldr r0, [r4, #0x30]
- mov r1, #2
- bl FUN_0200C61C
- add r0, r4, #0
- mov r1, #0
- add r0, #0xc4
- str r1, [r0]
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _022297F0
-_022296FC:
- add r0, #0xa0
- ldr r0, [r0]
- add r2, sp, #0
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x94
- ldr r0, [r0]
- add r1, sp, #0
- str r0, [sp, #8]
- mov r0, #0xff
- str r0, [sp, #0xc]
- mov r0, #1
- str r0, [sp, #0x10]
- ldr r0, [r4, #0x30]
- add r2, #2
- bl FUN_0200C7A0
- add r0, sp, #0
- bl MOD08_02228880
- add r1, r4, #0
- add r1, #0xd0
- str r0, [r1]
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _022297F0
-_02229732:
- add r0, #0xd0
- ldr r0, [r0]
- bl MOD08_022288E0
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _022297F0
-_02229742:
- add r0, #0xc4
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xc4
- str r1, [r0]
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- cmp r0, #6
- blt _022297F0
- ldr r0, [r4, #0x30]
- mov r1, #2
- bl FUN_0200C61C
- add r0, r4, #0
- mov r1, #0
- add r0, #0xc4
- str r1, [r0]
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _022297F0
-_02229770:
- add r0, #0xc4
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xc4
- str r1, [r0]
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- cmp r0, #6
- blt _022297F0
- ldr r0, [r4, #0x30]
- mov r1, #1
- bl FUN_0200C61C
- add r0, r4, #0
- mov r1, #0
- add r0, #0xc4
- str r1, [r0]
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _022297F0
-_0222979E:
- add r0, #0xc4
- ldr r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0xc4
- str r1, [r0]
- add r0, r4, #0
- add r0, #0xc4
- ldr r0, [r0]
- cmp r0, #6
- blt _022297F0
- ldr r0, [r4, #0x30]
- mov r1, #0
- bl FUN_0200C61C
- add r0, r4, #0
- mov r1, #0
- add r0, #0xc4
- str r1, [r0]
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _022297F0
-_022297CC:
- add r0, #0xd0
- ldr r0, [r0]
- bl MOD08_02228954
- cmp r0, #0
- bne _022297F0
- add r0, r4, #0
- add r0, #0xd0
- ldr r0, [r0]
- bl MOD08_02228970
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _022297F0
-_022297EA:
- add sp, #0x14
- mov r0, #0
- pop {r3, r4, pc}
-_022297F0:
- mov r0, #1
- add sp, #0x14
- pop {r3, r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_022297F8
-MOD08_022297F8: ; 0x022297F8
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #0
- beq _02229808
- cmp r0, #1
- beq _0222983C
- b _0222986E
-_02229808:
- ldr r0, [r4, #0x10]
- cmp r0, #0
- bne _0222981E
- ldr r1, _0222987C ; =0xFFFFE001
- add r0, r4, #0
- add r0, #0x34
- lsr r2, r1, #0x13
- mov r3, #0xa
- bl MOD08_02218008
- b _0222982C
-_0222981E:
- add r0, r4, #0
- ldr r1, _02229880 ; =0x00001FFF
- ldr r2, _0222987C ; =0xFFFFE001
- add r0, #0x34
- mov r3, #0xa
- bl MOD08_02218008
-_0222982C:
- ldr r1, [r4, #0x10]
- mov r0, #1
- eor r0, r1
- str r0, [r4, #0x10]
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02229876
-_0222983C:
- ldr r1, [r4, #0x34]
- ldr r0, [r4, #0x30]
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- bl FUN_0200C898
- add r0, r4, #0
- add r0, #0x34
- bl MOD08_02218058
- cmp r0, #0
- bne _02229876
- ldr r0, [r4, #0xc]
- cmp r0, #1
- blt _02229862
- ldr r0, [r4, #8]
- add r0, r0, #1
- str r0, [r4, #8]
- b _02229876
-_02229862:
- add r0, r0, #1
- str r0, [r4, #0xc]
- ldr r0, [r4, #8]
- sub r0, r0, #1
- str r0, [r4, #8]
- b _02229876
-_0222986E:
- mov r0, #0
- add r4, #0xc4
- str r0, [r4]
- pop {r4, pc}
-_02229876:
- mov r0, #1
- pop {r4, pc}
- nop
-_0222987C: .word 0xFFFFE001
-_02229880: .word 0x00001FFF
-
- thumb_func_start MOD08_02229884
-MOD08_02229884: ; 0x02229884
- push {r3, r4, lr}
- sub sp, #4
- add r4, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #0xff
- bne _02229896
- add sp, #4
- mov r0, #0
- pop {r3, r4, pc}
-_02229896:
- ldr r0, [r4, #0x30]
- cmp r0, #0
- beq _022298BA
- add r1, sp, #0
- add r1, #2
- add r2, sp, #0
- bl FUN_0200C7A0
- add r1, sp, #0
- mov r0, #2
- ldrsh r2, [r1, r0]
- add r0, r4, #0
- add r0, #0xb8
- strh r2, [r0]
- mov r0, #0
- ldrsh r0, [r1, r0]
- add r4, #0xba
- strh r0, [r4]
-_022298BA:
- mov r0, #1
- add sp, #4
- pop {r3, r4, pc}
-
- thumb_func_start MOD08_022298C0
-MOD08_022298C0: ; 0x022298C0
- push {r4, lr}
- add r4, r1, #0
- ldr r0, [r4, #0x1c]
- cmp r0, #0
- beq _02229912
- add r0, r4, #0
- add r0, #0xdc
- ldr r0, [r0]
- cmp r0, #0
- ble _022298EA
- add r0, r4, #0
- add r0, #0xdc
- ldr r0, [r0]
- sub r1, r0, #1
- add r0, r4, #0
- add r0, #0xdc
- str r1, [r0]
- ldr r0, [r4, #0x2c]
- bl FUN_0200BC1C
- pop {r4, pc}
-_022298EA:
- add r1, #0x98
- ldr r1, [r1]
- add r0, r4, #0
- lsl r2, r1, #2
- ldr r1, _02229914 ; =0x0222D01C
- ldr r1, [r1, r2]
- blx r1
- cmp r0, #0
- bne _02229900
- mov r0, #0
- str r0, [r4, #0x1c]
-_02229900:
- ldr r0, [r4, #0x24]
- cmp r0, #1
- bne _0222990C
- ldr r0, [r4, #0x30]
- bl FUN_0200C5A8
-_0222990C:
- ldr r0, [r4, #0x2c]
- bl FUN_0200BC1C
-_02229912:
- pop {r4, pc}
- .align 2, 0
-_02229914: .word 0x0222D01C
-
- thumb_func_start MOD08_02229918
-MOD08_02229918: ; 0x02229918
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5, #4]
- mov r1, #0xe0
- bl AllocFromHeap
- mov r1, #0
- mov r2, #0xe0
- add r4, r0, #0
- bl MI_CpuFill8
- cmp r4, #0
- bne _02229936
- bl ErrorHandling
-_02229936:
- add r3, r4, #0
- add r3, #0x90
- mov r2, #5
-_0222993C:
- ldmia r5!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _0222993C
- mov r0, #0
- str r0, [r4, #8]
- str r0, [r4, #0x10]
- str r0, [r4, #0xc]
- str r0, [r4, #0x14]
- str r0, [r4, #0x18]
- str r0, [r4]
- str r0, [r4, #4]
- add r0, r4, #0
- add r0, #0xac
- ldr r0, [r0]
- bl FUN_0200BB34
- str r0, [r4, #0x2c]
- add r0, r4, #0
- mov r1, #0
- add r0, #0xdc
- str r1, [r0]
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- bl MOD08_02228140
- str r0, [r4, #0x24]
- add r0, r4, #0
- mov r2, #0
- add r0, #0xc4
- str r2, [r0]
- add r0, r4, #0
- mov r1, #0x10
- add r0, #0x20
- strb r1, [r0]
- add r0, r4, #0
- add r0, #0x21
- strb r2, [r0]
- bl MOD08_0221268C
- bl rand_LC
- lsr r1, r0, #0x1f
- lsl r0, r0, #0x1f
- sub r0, r0, r1
- mov r2, #0x1f
- ror r0, r2
- add r0, r1, r0
- beq _022299AA
- add r0, r4, #0
- mov r1, #1
- add r0, #0x22
- strb r1, [r0]
- b _022299B2
-_022299AA:
- add r0, r4, #0
- sub r2, #0x20
- add r0, #0x22
- strb r2, [r0]
-_022299B2:
- add r0, r4, #0
- bl MOD08_02229E40
- add r0, r4, #0
- bl MOD08_02229F64
- add r0, r4, #0
- bl MOD08_02229A90
- mov r0, #1
- str r0, [r4, #0x1c]
- mov r0, #0
- str r0, [r4, #0x28]
- mov r2, #0xfa
- ldr r0, _022299E4 ; =MOD08_022298C0
- add r1, r4, #0
- lsl r2, r2, #2
- bl FUN_0200CA44
- add r1, r4, #0
- add r1, #0xcc
- str r0, [r1]
- add r0, r4, #0
- pop {r3, r4, r5, pc}
- nop
-_022299E4: .word MOD08_022298C0
-
- thumb_func_start MOD08_022299E8
-MOD08_022299E8: ; 0x022299E8
- push {r4, lr}
- add r4, r0, #0
- bne _022299F2
- bl ErrorHandling
-_022299F2:
- ldr r0, [r4, #0x1c]
- cmp r0, #0
- beq _022299FC
- mov r0, #1
- pop {r4, pc}
-_022299FC:
- mov r0, #0
- pop {r4, pc}
-
- thumb_func_start MOD08_02229A00
-MOD08_02229A00: ; 0x02229A00
- push {r4, lr}
- add r4, r0, #0
- bne _02229A0A
- bl ErrorHandling
-_02229A0A:
- ldr r0, [r4, #0x28]
- cmp r0, #0
- beq _02229A14
- mov r0, #1
- pop {r4, pc}
-_02229A14:
- mov r0, #0
- pop {r4, pc}
-
- thumb_func_start MOD08_02229A18
-MOD08_02229A18: ; 0x02229A18
- str r1, [r0, #0x14]
- bx lr
-
- thumb_func_start MOD08_02229A1C
-MOD08_02229A1C: ; 0x02229A1C
- ldr r0, [r0, #0x14]
- cmp r0, r1
- bne _02229A26
- mov r0, #1
- bx lr
-_02229A26:
- mov r0, #0
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_02229A2C
-MOD08_02229A2C: ; 0x02229A2C
- push {r4, lr}
- add r4, r0, #0
- bne _02229A36
- bl ErrorHandling
-_02229A36:
- add r0, r4, #0
- add r0, #0xac
- ldr r0, [r0]
- ldr r1, [r4, #0x2c]
- bl FUN_0200C398
- ldr r0, [r4, #0x30]
- bl FUN_0200C3DC
- add r0, r4, #0
- add r0, #0xcc
- ldr r0, [r0]
- bl FUN_0200CAB4
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02229A5C
-MOD08_02229A5C: ; 0x02229A5C
- add r2, r0, #0
- add r0, #0x98
- str r1, [r0]
- mov r0, #0
- str r0, [r2, #8]
- str r0, [r2, #0xc]
- str r0, [r2, #0x10]
- mov r0, #1
- add r1, r2, #0
- str r0, [r2, #0x1c]
- ldr r0, [r2, #0x30]
- ldr r3, _02229A7C ; =FUN_0200C7A0
- add r1, #0xb8
- add r2, #0xba
- bx r3
- nop
-_02229A7C: .word FUN_0200C7A0
-
- thumb_func_start MOD08_02229A80
-MOD08_02229A80: ; 0x02229A80
- push {r4, lr}
- add r4, r0, #0
- bne _02229A8A
- bl ErrorHandling
-_02229A8A:
- add r4, #0x98
- ldr r0, [r4]
- pop {r4, pc}
-
- thumb_func_start MOD08_02229A90
-MOD08_02229A90: ; 0x02229A90
- push {r4, lr}
- add r4, r0, #0
- add r1, r4, #0
- add r2, r4, #0
- ldr r0, [r4, #0x30]
- add r1, #0xb8
- add r2, #0xba
- bl FUN_0200C7A0
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- cmp r0, #0x11
- bls _02229AAE
- b _02229CF6
-_02229AAE:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02229ABA: ; jump table
- .short _02229ADE - _02229ABA - 2 ; case 0
- .short _02229ADE - _02229ABA - 2 ; case 1
- .short _02229ADE - _02229ABA - 2 ; case 2
- .short _02229ADE - _02229ABA - 2 ; case 3
- .short _02229ADE - _02229ABA - 2 ; case 4
- .short _02229ADE - _02229ABA - 2 ; case 5
- .short _02229AF6 - _02229ABA - 2 ; case 6
- .short _02229B1C - _02229ABA - 2 ; case 7
- .short _02229B50 - _02229ABA - 2 ; case 8
- .short _02229B76 - _02229ABA - 2 ; case 9
- .short _02229B9C - _02229ABA - 2 ; case 10
- .short _02229BC2 - _02229ABA - 2 ; case 11
- .short _02229BE8 - _02229ABA - 2 ; case 12
- .short _02229C14 - _02229ABA - 2 ; case 13
- .short _02229C4C - _02229ABA - 2 ; case 14
- .short _02229C72 - _02229ABA - 2 ; case 15
- .short _02229C9E - _02229ABA - 2 ; case 16
- .short _02229CCA - _02229ABA - 2 ; case 17
-_02229ADE:
- add r1, r4, #0
- add r2, r4, #0
- ldr r0, [r4, #0x30]
- add r1, #0xbc
- add r2, #0xbe
- bl FUN_0200C7A0
- add r0, r4, #0
- mov r1, #0
- add r0, #0xc8
- str r1, [r0]
- b _02229CF6
-_02229AF6:
- mov r0, #0
- add r2, r4, #0
- add r3, r4, #0
- add r1, r0, #0
- add r2, #0xbc
- add r3, #0xbe
- bl MOD08_02217B1C
- add r0, r4, #0
- mov r1, #0x30
- add r0, #0xc8
- str r1, [r0]
- mov r0, #0xbe
- ldrsh r1, [r4, r0]
- add r0, r4, #0
- add r0, #0xbe
- add r1, #0x20
- strh r1, [r0]
- b _02229CF6
-_02229B1C:
- add r1, r4, #0
- add r2, r4, #0
- ldr r0, [r4, #0x30]
- add r1, #0xb8
- add r2, #0xba
- bl FUN_0200C7A0
- add r2, r4, #0
- add r3, r4, #0
- mov r0, #1
- mov r1, #4
- add r2, #0xbc
- add r3, #0xbe
- bl MOD08_02217B1C
- add r0, r4, #0
- mov r1, #0x30
- add r0, #0xc8
- str r1, [r0]
- mov r0, #0xbe
- ldrsh r1, [r4, r0]
- add r0, r4, #0
- add r0, #0xbe
- add r1, #0x20
- strh r1, [r0]
- b _02229CF6
-_02229B50:
- add r2, r4, #0
- add r3, r4, #0
- mov r0, #1
- mov r1, #2
- add r2, #0xbc
- add r3, #0xbe
- bl MOD08_02217B1C
- add r0, r4, #0
- mov r1, #0x30
- add r0, #0xc8
- str r1, [r0]
- mov r0, #0xbe
- ldrsh r1, [r4, r0]
- add r0, r4, #0
- add r0, #0xbe
- add r1, #0x20
- strh r1, [r0]
- b _02229CF6
-_02229B76:
- add r2, r4, #0
- add r3, r4, #0
- mov r0, #0
- mov r1, #1
- add r2, #0xbc
- add r3, #0xbe
- bl MOD08_02217B1C
- add r0, r4, #0
- mov r1, #0x30
- add r0, #0xc8
- str r1, [r0]
- mov r0, #0xbe
- ldrsh r1, [r4, r0]
- add r0, r4, #0
- add r0, #0xbe
- add r1, #0x20
- strh r1, [r0]
- b _02229CF6
-_02229B9C:
- add r2, r4, #0
- add r3, r4, #0
- mov r0, #1
- mov r1, #3
- add r2, #0xbc
- add r3, #0xbe
- bl MOD08_02217B1C
- add r0, r4, #0
- mov r1, #0x30
- add r0, #0xc8
- str r1, [r0]
- mov r0, #0xbe
- ldrsh r1, [r4, r0]
- add r0, r4, #0
- add r0, #0xbe
- add r1, #0x20
- strh r1, [r0]
- b _02229CF6
-_02229BC2:
- add r2, r4, #0
- add r3, r4, #0
- mov r0, #1
- mov r1, #5
- add r2, #0xbc
- add r3, #0xbe
- bl MOD08_02217B1C
- add r0, r4, #0
- mov r1, #0x30
- add r0, #0xc8
- str r1, [r0]
- mov r0, #0xbe
- ldrsh r1, [r4, r0]
- add r0, r4, #0
- add r0, #0xbe
- add r1, #0x20
- strh r1, [r0]
- b _02229CF6
-_02229BE8:
- add r2, r4, #0
- add r3, r4, #0
- mov r0, #0
- mov r1, #1
- add r2, #0xbc
- add r3, #0xbe
- bl MOD08_02217B1C
- add r0, r4, #0
- mov r1, #0x10
- add r0, #0xc8
- str r1, [r0]
- mov r0, #0xbe
- ldrsh r1, [r4, r0]
- add r0, r4, #0
- add r0, #0xbe
- add r1, #0x10
- strh r1, [r0]
- mov r0, #0xc
- add r4, #0xc0
- str r0, [r4]
- pop {r4, pc}
-_02229C14:
- add r2, r4, #0
- add r3, r4, #0
- mov r0, #0
- mov r1, #1
- add r2, #0xbc
- add r3, #0xbe
- bl MOD08_02217B1C
- add r0, r4, #0
- mov r1, #0x20
- add r0, #0xc8
- str r1, [r0]
- mov r0, #0xbc
- ldrsh r1, [r4, r0]
- add r0, r4, #0
- add r0, #0xbc
- sub r1, #0x14
- strh r1, [r0]
- mov r0, #0xbe
- ldrsh r1, [r4, r0]
- add r0, r4, #0
- add r0, #0xbe
- add r1, #0x26
- strh r1, [r0]
- mov r0, #0x10
- add r4, #0xc0
- str r0, [r4]
- pop {r4, pc}
-_02229C4C:
- add r0, r4, #0
- mov r1, #0x80
- add r0, #0xbc
- strh r1, [r0]
- add r0, r4, #0
- mov r1, #0x40
- add r0, #0xbe
- strh r1, [r0]
- add r0, r4, #0
- mov r1, #0x20
- add r0, #0xc8
- str r1, [r0]
- mov r0, #0xbe
- ldrsh r1, [r4, r0]
- add r0, r4, #0
- add r0, #0xbe
- add r1, #0x20
- strh r1, [r0]
- b _02229CF6
-_02229C72:
- add r2, r4, #0
- add r3, r4, #0
- mov r0, #0
- mov r1, #1
- add r2, #0xbc
- add r3, #0xbe
- bl MOD08_02217B1C
- add r0, r4, #0
- mov r1, #0x40
- add r0, #0xc8
- str r1, [r0]
- mov r0, #0xbe
- ldrsh r1, [r4, r0]
- add r0, r4, #0
- add r0, #0xbe
- add r1, #8
- strh r1, [r0]
- mov r0, #0x10
- add r4, #0xc0
- str r0, [r4]
- pop {r4, pc}
-_02229C9E:
- add r2, r4, #0
- add r3, r4, #0
- mov r0, #1
- mov r1, #3
- add r2, #0xbc
- add r3, #0xbe
- bl MOD08_02217B1C
- add r0, r4, #0
- mov r1, #0x40
- add r0, #0xc8
- str r1, [r0]
- mov r0, #0xbe
- ldrsh r1, [r4, r0]
- add r0, r4, #0
- add r0, #0xbe
- add r1, #8
- strh r1, [r0]
- mov r0, #0x10
- add r4, #0xc0
- str r0, [r4]
- pop {r4, pc}
-_02229CCA:
- add r2, r4, #0
- add r3, r4, #0
- mov r0, #1
- mov r1, #5
- add r2, #0xbc
- add r3, #0xbe
- bl MOD08_02217B1C
- add r0, r4, #0
- mov r1, #0x40
- add r0, #0xc8
- str r1, [r0]
- mov r0, #0xbe
- ldrsh r1, [r4, r0]
- add r0, r4, #0
- add r0, #0xbe
- add r1, #8
- strh r1, [r0]
- mov r0, #0x10
- add r4, #0xc0
- str r0, [r4]
- pop {r4, pc}
-_02229CF6:
- mov r0, #0x14
- add r4, #0xc0
- str r0, [r4]
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02229D00
-MOD08_02229D00: ; 0x02229D00
- push {r4, lr}
- add r0, #0x90
- ldr r0, [r0]
- add r3, r1, #0
- add r4, r2, #0
- cmp r0, #0x11
- bls _02229D10
- b _02229E3C
-_02229D10:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02229D1C: ; jump table
- .short _02229D40 - _02229D1C - 2 ; case 0
- .short _02229D56 - _02229D1C - 2 ; case 1
- .short _02229D6C - _02229D1C - 2 ; case 2
- .short _02229D98 - _02229D1C - 2 ; case 3
- .short _02229D82 - _02229D1C - 2 ; case 4
- .short _02229DAE - _02229D1C - 2 ; case 5
- .short _02229DC4 - _02229D1C - 2 ; case 6
- .short _02229DCE - _02229D1C - 2 ; case 7
- .short _02229DD8 - _02229D1C - 2 ; case 8
- .short _02229DE2 - _02229D1C - 2 ; case 9
- .short _02229DF0 - _02229D1C - 2 ; case 10
- .short _02229DFE - _02229D1C - 2 ; case 11
- .short _02229E0C - _02229D1C - 2 ; case 12
- .short _02229E1A - _02229D1C - 2 ; case 13
- .short _02229E28 - _02229D1C - 2 ; case 14
- .short _02229E32 - _02229D1C - 2 ; case 15
- .short _02229E32 - _02229D1C - 2 ; case 16
- .short _02229E32 - _02229D1C - 2 ; case 17
-_02229D40:
- mov r0, #0
- add r2, r3, #0
- add r1, r0, #0
- add r3, r4, #0
- bl MOD08_02217B1C
- mov r0, #0
- ldrsh r0, [r4, r0]
- add r0, #0x20
- strh r0, [r4]
- pop {r4, pc}
-_02229D56:
- add r2, r3, #0
- mov r0, #0
- mov r1, #1
- add r3, r4, #0
- bl MOD08_02217B1C
- mov r0, #0
- ldrsh r0, [r4, r0]
- add r0, #0x26
- strh r0, [r4]
- pop {r4, pc}
-_02229D6C:
- add r2, r3, #0
- mov r0, #1
- mov r1, #2
- add r3, r4, #0
- bl MOD08_02217B1C
- mov r0, #0
- ldrsh r0, [r4, r0]
- add r0, #0x20
- strh r0, [r4]
- pop {r4, pc}
-_02229D82:
- add r2, r3, #0
- mov r0, #1
- mov r1, #4
- add r3, r4, #0
- bl MOD08_02217B1C
- mov r0, #0
- ldrsh r0, [r4, r0]
- add r0, #0x20
- strh r0, [r4]
- pop {r4, pc}
-_02229D98:
- add r2, r3, #0
- mov r0, #1
- mov r1, #3
- add r3, r4, #0
- bl MOD08_02217B1C
- mov r0, #0
- ldrsh r0, [r4, r0]
- add r0, #0x26
- strh r0, [r4]
- pop {r4, pc}
-_02229DAE:
- add r2, r3, #0
- mov r0, #1
- mov r1, #5
- add r3, r4, #0
- bl MOD08_02217B1C
- mov r0, #0
- ldrsh r0, [r4, r0]
- add r0, #0x26
- strh r0, [r4]
- pop {r4, pc}
-_02229DC4:
- mov r0, #0xa
- strh r0, [r3]
- mov r0, #0x64
- strh r0, [r4]
- pop {r4, pc}
-_02229DCE:
- mov r0, #0xa
- strh r0, [r3]
- mov r0, #0x64
- strh r0, [r4]
- pop {r4, pc}
-_02229DD8:
- mov r0, #0xa
- strh r0, [r3]
- mov r0, #0x64
- strh r0, [r4]
- pop {r4, pc}
-_02229DE2:
- mov r0, #0
- add r2, r3, #0
- add r1, r0, #0
- add r3, r4, #0
- bl MOD08_02217B1C
- pop {r4, pc}
-_02229DF0:
- mov r0, #0
- add r2, r3, #0
- add r1, r0, #0
- add r3, r4, #0
- bl MOD08_02217B1C
- pop {r4, pc}
-_02229DFE:
- mov r0, #0
- add r2, r3, #0
- add r1, r0, #0
- add r3, r4, #0
- bl MOD08_02217B1C
- pop {r4, pc}
-_02229E0C:
- mov r0, #0
- add r2, r3, #0
- add r1, r0, #0
- add r3, r4, #0
- bl MOD08_02217B1C
- pop {r4, pc}
-_02229E1A:
- mov r0, #0
- add r2, r3, #0
- add r1, r0, #0
- add r3, r4, #0
- bl MOD08_02217B1C
- pop {r4, pc}
-_02229E28:
- mov r0, #0xe6
- strh r0, [r3]
- mov r0, #0x20
- strh r0, [r4]
- pop {r4, pc}
-_02229E32:
- mov r0, #0x1d
- mvn r0, r0
- strh r0, [r3]
- mov r0, #0xa0
- strh r0, [r4]
-_02229E3C:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD08_02229E40
-MOD08_02229E40: ; 0x02229E40
- push {r4, r5, r6, r7, lr}
- sub sp, #0x34
- add r5, r0, #0
- add r0, #0xac
- ldr r0, [r0]
- ldr r1, [r5, #0x2c]
- mov r2, #0xa
- bl FUN_0200BBF0
- add r0, r5, #0
- add r0, #0xa8
- ldr r0, [r0]
- cmp r0, #0
- bne _02229E70
- add r0, r5, #0
- add r0, #0xac
- ldr r0, [r0]
- bl FUN_0200BB68
- mov r2, #0x11
- mov r1, #0
- lsl r2, r2, #0x10
- bl FUN_02008D24
-_02229E70:
- mov r1, #0
- add r2, sp, #0x1c
- mov r0, #0xa
-_02229E76:
- add r1, r1, #1
- stmia r2!, {r0}
- cmp r1, #6
- blt _02229E76
- mov r0, #0
- str r0, [sp, #0x2c]
- str r0, [sp, #0x30]
- add r0, r5, #0
- add r0, #0xac
- ldr r0, [r0]
- ldr r1, [r5, #0x2c]
- add r2, sp, #0x1c
- bl FUN_0200BF60
- add r0, r5, #0
- add r0, #0xa0
- ldr r0, [r0]
- mov r1, #0
- bl MOD08_022281DC
- add r6, r0, #0
- add r0, r5, #0
- add r0, #0xa0
- ldr r0, [r0]
- mov r1, #1
- bl MOD08_022281DC
- add r4, r0, #0
- add r0, r5, #0
- add r0, #0xa0
- ldr r0, [r0]
- mov r1, #2
- bl MOD08_022281DC
- add r7, r0, #0
- add r0, r5, #0
- add r0, #0xa0
- ldr r0, [r0]
- mov r1, #3
- bl MOD08_022281DC
- str r0, [sp, #0x18]
- mov r0, #1
- str r0, [sp]
- str r0, [sp, #4]
- add r0, r5, #0
- add r0, #0x9c
- ldr r1, [r0]
- ldr r0, _02229F60 ; =0x00001770
- mov r2, #0x1b
- add r0, r1, r0
- str r0, [sp, #8]
- add r0, r5, #0
- add r0, #0xac
- ldr r0, [r0]
- ldr r1, [r5, #0x2c]
- add r3, r6, #0
- bl FUN_0200C00C
- mov r0, #0x1b
- str r0, [sp]
- add r2, r5, #0
- str r4, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- mov r0, #1
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- add r0, r5, #0
- add r0, #0x9c
- ldr r1, [r0]
- ldr r0, _02229F60 ; =0x00001770
- add r2, #0xac
- add r0, r1, r0
- str r0, [sp, #0x14]
- add r0, r5, #0
- add r0, #0xb0
- ldr r0, [r0]
- ldr r2, [r2]
- ldr r3, [r5, #0x2c]
- mov r1, #2
- bl FUN_0200C0DC
- mov r0, #1
- str r0, [sp]
- add r0, r5, #0
- add r0, #0x9c
- ldr r1, [r0]
- ldr r0, _02229F60 ; =0x00001770
- mov r2, #0x1b
- add r0, r1, r0
- str r0, [sp, #4]
- add r0, r5, #0
- add r0, #0xac
- ldr r0, [r0]
- ldr r1, [r5, #0x2c]
- add r3, r7, #0
- bl FUN_0200C124
- mov r0, #1
- str r0, [sp]
- add r0, r5, #0
- add r0, #0x9c
- ldr r1, [r0]
- ldr r0, _02229F60 ; =0x00001770
- ldr r3, [sp, #0x18]
- add r0, r1, r0
- str r0, [sp, #4]
- add r0, r5, #0
- add r0, #0xac
- ldr r0, [r0]
- ldr r1, [r5, #0x2c]
- mov r2, #0x1b
- bl FUN_0200C13C
- add sp, #0x34
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02229F60: .word 0x00001770
-
- thumb_func_start MOD08_02229F64
-MOD08_02229F64: ; 0x02229F64
- push {r3, r4, lr}
- sub sp, #0x34
- add r2, sp, #0
- add r1, sp, #0
- add r2, #2
- add r4, r0, #0
- bl MOD08_02229D00
- mov r0, #0
- add r1, sp, #0
- strh r0, [r1, #4]
- strh r0, [r1, #6]
- mov r1, #1
- str r1, [sp, #0x10]
- add r1, r4, #0
- str r0, [sp, #8]
- str r0, [sp, #0xc]
- add r1, #0xa4
- ldr r1, [r1]
- ldr r2, _02229FE0 ; =0x00001770
- str r1, [sp, #0x2c]
- str r0, [sp, #0x30]
- add r3, sp, #0
-_02229F92:
- add r1, r4, #0
- add r1, #0x9c
- ldr r1, [r1]
- add r0, r0, #1
- add r1, r1, r2
- str r1, [r3, #0x14]
- add r3, r3, #4
- cmp r0, #6
- blt _02229F92
- add r0, r4, #0
- add r0, #0xac
- ldr r0, [r0]
- ldr r1, [r4, #0x2c]
- add r2, sp, #0
- bl FUN_0200C154
- str r0, [r4, #0x30]
- mov r1, #1
- bl FUN_0200C644
- ldr r0, [r4, #0x30]
- mov r1, #2
- bl FUN_0200C840
- ldr r0, [r4, #0x30]
- mov r1, #0
- bl FUN_0200C61C
- ldr r0, [r4, #0x30]
- mov r1, #0
- bl FUN_0200C5C0
- ldr r0, [r4, #0x30]
- bl FUN_0200C5A8
- bl MOD08_0221268C
- add sp, #0x34
- pop {r3, r4, pc}
- .align 2, 0
-_02229FE0: .word 0x00001770
-
- thumb_func_start MOD08_02229FE4
-MOD08_02229FE4: ; 0x02229FE4
- ldr r3, _02229FEC ; =FUN_0200C644
- ldr r0, [r0, #0x30]
- bx r3
- nop
-_02229FEC: .word FUN_0200C644
-
- thumb_func_start MOD08_02229FF0
-MOD08_02229FF0: ; 0x02229FF0
- ldr r3, _02229FF8 ; =FUN_0200C714
- ldr r0, [r0, #0x30]
- bx r3
- nop
-_02229FF8: .word FUN_0200C714
-
- thumb_func_start MOD08_02229FFC
-MOD08_02229FFC: ; 0x02229FFC
- ldr r3, _0222A004 ; =FUN_0200C898
- ldr r0, [r0, #0x30]
- bx r3
- nop
-_0222A004: .word FUN_0200C898
-
- thumb_func_start MOD08_0222A008
-MOD08_0222A008: ; 0x0222A008
- str r1, [r0, #0x24]
- bx lr
-
- thumb_func_start MOD08_0222A00C
-MOD08_0222A00C: ; 0x0222A00C
- ldr r3, _0222A014 ; =FUN_0200C6C4
- ldr r0, [r0, #0x30]
- bx r3
- nop
-_0222A014: .word FUN_0200C6C4
-
- thumb_func_start MOD08_0222A018
-MOD08_0222A018: ; 0x0222A018
- ldr r3, _0222A020 ; =FUN_0200C6B0
- ldr r0, [r0, #0x30]
- bx r3
- nop
-_0222A020: .word FUN_0200C6B0
-
- thumb_func_start MOD08_0222A024
-MOD08_0222A024: ; 0x0222A024
- add r0, #0xdc
- str r1, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD08_0222A02C
-MOD08_0222A02C: ; 0x0222A02C
- push {r3, lr}
- sub r1, r1, r3
- neg r1, r1
- sub r0, r0, r2
- lsl r1, r1, #0x10
- lsl r0, r0, #0x10
- asr r1, r1, #0x10
- add r2, r1, #0
- asr r0, r0, #0x10
- mul r2, r1
- add r1, r0, #0
- mul r1, r0
- add r0, r2, r1
- lsl r0, r0, #0xc
- bl FX_Sqrt
- asr r1, r0, #0xb
- lsr r1, r1, #0x14
- add r1, r0, r1
- asr r0, r1, #0xc
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0222A058
-MOD08_0222A058: ; 0x0222A058
- push {r3, r4, r5, lr}
- add r5, r0, #0
- bl FUN_02029CE4
- add r4, r0, #0
- add r0, r5, #0
- bl FUN_02029CE8
- add r1, r0, #0
- add r0, r4, #0
- mov r2, #0xbe
- mov r3, #0x46
- bl MOD08_0222A02C
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0222A078
-MOD08_0222A078: ; 0x0222A078
- push {r4, lr}
- sub sp, #8
- ldr r3, _0222A0D0 ; =0x0222D4D8
- add r4, r0, #0
- add r2, sp, #0
- mov r1, #7
-_0222A084:
- ldrb r0, [r3]
- add r3, r3, #1
- strb r0, [r2]
- add r2, r2, #1
- sub r1, r1, #1
- bne _0222A084
- add r0, r4, #0
- bl FUN_02029CE0
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_02086018
- cmp r0, #0
- bne _0222A0C6
- add r0, r4, #0
- bl MOD08_0222A058
- cmp r0, #0x38
- blt _0222A0B0
- mov r0, #3
- b _0222A0BE
-_0222A0B0:
- add r0, r0, #1
- mov r1, #0x14
- bl _s32_div_f
- cmp r0, #3
- blt _0222A0BE
- mov r0, #3
-_0222A0BE:
- add r1, sp, #0
- add sp, #8
- ldrb r0, [r1, r0]
- pop {r4, pc}
-_0222A0C6:
- add r0, sp, #0
- ldrb r0, [r0, #1]
- add sp, #8
- pop {r4, pc}
- nop
-_0222A0D0: .word 0x0222D4D8
-
- thumb_func_start MOD08_0222A0D4
-MOD08_0222A0D4: ; 0x0222A0D4
- push {r4, r5, r6, lr}
- add r5, r1, #0
- mov r1, #0x48
- add r6, r0, #0
- bl AllocFromHeap
- add r4, r0, #0
- bne _0222A0EC
- bl ErrorHandling
- mov r0, #0
- pop {r4, r5, r6, pc}
-_0222A0EC:
- bl MOD08_0221268C
- str r6, [r4]
- cmp r5, #0
- beq _0222A0FA
- ldr r0, [r5]
- str r0, [r4, #4]
-_0222A0FA:
- mov r1, #0
- add r2, r4, #0
- add r0, r1, #0
-_0222A100:
- add r1, r1, #1
- str r0, [r2, #8]
- add r2, r2, #4
- cmp r1, #0x10
- blt _0222A100
- add r0, r4, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0222A110
-MOD08_0222A110: ; 0x0222A110
- push {r4, r5, r6, lr}
- mov r4, #0
- add r5, r4, #0
- add r3, r0, #0
-_0222A118:
- ldr r2, [r3, #8]
- cmp r2, #0
- bne _0222A138
- add r4, r0, #0
- ldr r0, [r0]
- add r4, #8
- lsl r6, r5, #2
- bl MOD08_0222A1A0
- str r0, [r4, r6]
- ldr r0, [r4, r6]
- mov r1, #0
- str r1, [r0, #0x18]
- ldr r4, [r4, r6]
- str r5, [r4]
- b _0222A140
-_0222A138:
- add r5, r5, #1
- add r3, r3, #4
- cmp r5, #0x10
- blt _0222A118
-_0222A140:
- cmp r4, #0
- bne _0222A148
- bl ErrorHandling
-_0222A148:
- add r0, r4, #0
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_0222A14C
-MOD08_0222A14C: ; 0x0222A14C
- push {r4, r5, r6, lr}
- add r6, r0, #0
- mov r4, #0
- add r5, r6, #0
-_0222A154:
- ldr r0, [r5, #8]
- cmp r0, #0
- beq _0222A15E
- bl FreeToHeap
-_0222A15E:
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #0x10
- blt _0222A154
- add r0, r6, #0
- bl FreeToHeap
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0222A170
-MOD08_0222A170: ; 0x0222A170
- push {r3, r4, r5, lr}
- add r5, r0, #0
- mov r4, #0
-_0222A176:
- ldr r0, [r5, #8]
- cmp r0, #0
- beq _0222A194
- ldr r0, [r0, #0x10]
- bl MOD08_02215B40
- ldr r1, [r5, #8]
- ldr r0, [r1, #0x20]
- cmp r0, #0
- beq _0222A194
- ldr r0, [r1, #0x18]
- cmp r0, #0
- beq _0222A194
- bl FUN_0200CAB4
-_0222A194:
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #0x10
- blt _0222A176
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0222A1A0
-MOD08_0222A1A0: ; 0x0222A1A0
- push {r4, r5, r6, lr}
- add r6, r1, #0
- mov r1, #0x24
- add r5, r0, #0
- bl AllocFromHeap
- add r4, r0, #0
- bne _0222A1B8
- bl ErrorHandling
- mov r0, #0
- pop {r4, r5, r6, pc}
-_0222A1B8:
- str r5, [r4, #4]
- ldr r1, [r6]
- ldr r0, [r6, #4]
- str r1, [r4, #8]
- str r0, [r4, #0xc]
- ldr r0, [r4, #8]
- bl MOD08_0222A260
- str r0, [r4, #0x1c]
- ldr r0, [r4, #4]
- ldr r1, [r4, #8]
- mov r2, #1
- bl MOD08_02215AA4
- str r0, [r4, #0x10]
- add r0, r4, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0222A1DC
-MOD08_0222A1DC: ; 0x0222A1DC
- push {r4, lr}
- add r4, r0, #0
- mov r1, #1
- str r1, [r4, #0x20]
- ldr r1, _0222A1FC ; =MOD08_0222A258
- bl MOD08_0222A22C
- mov r2, #0xfa
- ldr r0, _0222A200 ; =MOD08_0222A208
- add r1, r4, #0
- lsl r2, r2, #2
- bl FUN_0200CA44
- str r0, [r4, #0x18]
- pop {r4, pc}
- nop
-_0222A1FC: .word MOD08_0222A258
-_0222A200: .word MOD08_0222A208
-
- thumb_func_start MOD08_0222A204
-MOD08_0222A204: ; 0x0222A204
- ldr r0, [r0, #0x20]
- bx lr
-
- thumb_func_start MOD08_0222A208
-MOD08_0222A208: ; 0x0222A208
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0x10]
- bl FUN_020133C8
- cmp r0, #0
- bne _0222A228
- mov r0, #0
- str r0, [r4, #0x20]
- ldr r0, [r4, #0x10]
- bl MOD08_02215B40
- add r0, r5, #0
- bl FUN_0200CAB4
-_0222A228:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0222A22C
-MOD08_0222A22C: ; 0x0222A22C
- push {r4, r5, r6, lr}
- add r5, r0, #0
- ldr r0, [r5, #0x1c]
- add r6, r1, #0
- mov r4, #0
- cmp r0, #0
- ble _0222A24E
-_0222A23A:
- ldr r0, [r5, #0x10]
- add r1, r4, #0
- add r2, r6, #0
- add r3, r5, #0
- bl FUN_020133AC
- ldr r0, [r5, #0x1c]
- add r4, r4, #1
- cmp r4, r0
- blt _0222A23A
-_0222A24E:
- ldr r0, [r5, #0x10]
- ldr r1, [r5, #0xc]
- bl FUN_02013440
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD08_0222A258
-MOD08_0222A258: ; 0x0222A258
- ldr r3, _0222A25C ; =FUN_0201341C
- bx r3
- .align 2, 0
-_0222A25C: .word FUN_0201341C
-
- thumb_func_start MOD08_0222A260
-MOD08_0222A260: ; 0x0222A260
- push {r3, r4, r5, lr}
- sub sp, #0x58
- ldr r4, _0222A290 ; =0x0222D4E0
- add r5, r0, #0
- add r3, sp, #0
- mov r2, #0xb
-_0222A26C:
- ldmia r4!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _0222A26C
- sub r0, r5, #5
- cmp r0, #0x16
- blo _0222A284
- bl ErrorHandling
- add sp, #0x58
- mov r0, #0
- pop {r3, r4, r5, pc}
-_0222A284:
- lsl r1, r0, #2
- add r0, sp, #0
- ldr r0, [r0, r1]
- add sp, #0x58
- pop {r3, r4, r5, pc}
- nop
-_0222A290: .word 0x0222D4E0
-
- thumb_func_start MOD08_0222A294
-MOD08_0222A294: ; 0x0222A294
- push {r3, lr}
- add r3, r1, #0
- ldr r1, [r0]
- mov r2, #0
- bl MOD08_0222A2B4
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0222A2A4
-MOD08_0222A2A4: ; 0x0222A2A4
- push {r3, lr}
- add r3, r1, #0
- ldr r1, [r0, #4]
- mov r2, #1
- bl MOD08_0222A2B4
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0222A2B4
-MOD08_0222A2B4: ; 0x0222A2B4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x38
- add r5, r0, #0
- ldr r0, [r5]
- add r4, r1, #0
- lsl r0, r0, #2
- add r0, r5, r0
- ldr r0, [r0, #0x18]
- add r7, r2, #0
- str r3, [sp, #0x10]
- bl FUN_020080E0
- ldr r0, [r5, #4]
- lsl r1, r0, #1
- add r1, r5, r1
- ldrh r6, [r1, #0x28]
- add r1, r5, r0
- add r1, #0x30
- ldrb r1, [r1]
- add r2, r5, r0
- add r2, #0x38
- str r1, [sp, #0x1c]
- add r1, r5, r0
- lsl r0, r0, #2
- ldrb r2, [r2]
- add r0, r5, r0
- add r1, #0x34
- ldr r0, [r0, #0x3c]
- ldrb r1, [r1]
- str r2, [sp, #0x18]
- str r0, [sp, #0x14]
- cmp r7, #0
- beq _0222A30A
- add r0, r5, r4
- add r0, #0x4c
- ldrb r2, [r0]
- mov r0, #1
- tst r0, r2
- beq _0222A306
- mov r4, #0
- b _0222A31C
-_0222A306:
- mov r4, #2
- b _0222A31C
-_0222A30A:
- add r0, r5, r4
- add r0, #0x4c
- ldrb r2, [r0]
- mov r0, #1
- tst r0, r2
- beq _0222A31A
- mov r4, #2
- b _0222A31C
-_0222A31A:
- mov r4, #0
-_0222A31C:
- lsl r0, r1, #0x18
- lsr r0, r0, #0x18
- str r0, [sp]
- ldr r0, [sp, #0x18]
- ldr r2, [sp, #0x1c]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #4]
- ldr r0, [sp, #0x14]
- lsl r1, r6, #0x10
- lsl r2, r2, #0x18
- lsl r3, r4, #0x18
- str r0, [sp, #8]
- add r0, sp, #0x28
- lsr r1, r1, #0x10
- lsr r2, r2, #0x18
- lsr r3, r3, #0x18
- bl FUN_02068C00
- ldr r0, [r5]
- lsl r0, r0, #2
- add r0, r5, r0
- ldr r0, [r0, #0x18]
- bl FUN_020081C0
- add r7, r0, #0
- add r3, sp, #0x28
- add r2, r7, #0
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldr r0, [r5]
- lsl r0, r0, #2
- add r0, r5, r0
- ldr r0, [r0, #0x18]
- bl FUN_020080D0
- ldr r0, [sp, #0x14]
- ldr r2, [sp, #0x10]
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- str r4, [sp, #8]
- ldrh r0, [r7, #6]
- str r0, [sp, #0xc]
- ldr r3, [r5]
- ldrh r0, [r7]
- lsl r3, r3, #2
- add r3, r5, r3
- ldr r3, [r3, #8]
- ldrh r1, [r7, #2]
- ldr r3, [r3]
- bl FUN_02012560
- ldr r1, [r5]
- ldr r3, [sp, #0x18]
- lsl r1, r1, #2
- add r1, r5, r1
- lsl r2, r4, #0x18
- lsl r3, r3, #0x18
- ldrh r0, [r7]
- ldr r1, [r1, #8]
- lsr r2, r2, #0x18
- str r0, [r1, #4]
- ldr r1, [r5]
- ldrh r0, [r7, #4]
- lsl r1, r1, #2
- add r1, r5, r1
- ldr r1, [r1, #8]
- lsr r3, r3, #0x18
- str r0, [r1, #8]
- ldr r0, [sp, #0x14]
- ldr r1, [sp, #0x1c]
- str r0, [sp]
- lsl r0, r6, #0x10
- lsl r1, r1, #0x18
- lsr r0, r0, #0x10
- lsr r1, r1, #0x18
- bl FUN_02068E88
- ldr r1, [r5]
- lsl r1, r1, #2
- add r1, r5, r1
- ldr r1, [r1, #8]
- str r0, [r1, #0xc]
- ldr r0, [r5]
- lsl r1, r0, #2
- add r1, r5, r1
- ldr r1, [r1, #8]
- add r0, r5, r0
- ldr r1, [r1, #0xc]
- add r0, #0x4c
- lsl r1, r1, #0x18
- asr r7, r1, #0x18
- ldrb r0, [r0]
- mov r1, #1
- bl MOD08_0222A6A4
- str r0, [sp, #0x20]
- ldr r0, [r5]
- ldr r2, [sp, #0x20]
- lsl r0, r0, #2
- add r0, r5, r0
- ldr r0, [r0, #0x18]
- mov r1, #1
- add r2, r2, r7
- bl FUN_02007558
- cmp r4, #2
- bne _0222A48E
- mov r0, #1
- str r0, [sp]
- add r0, sp, #0x24
- add r0, #2
- mov r1, #0x8a
- mov r2, #0
- add r3, r6, #0
- bl ReadFromNarcMemberByIdPair
- mov r0, #1
- str r0, [sp]
- add r0, sp, #0x24
- add r0, #1
- mov r1, #0x90
- mov r2, #0
- add r3, r6, #0
- bl ReadFromNarcMemberByIdPair
- mov r0, #1
- str r0, [sp]
- add r0, sp, #0x24
- mov r1, #0x8e
- mov r2, #0
- add r3, r6, #0
- bl ReadFromNarcMemberByIdPair
- ldr r0, [r5]
- add r2, sp, #0x24
- lsl r0, r0, #2
- add r0, r5, r0
- ldrb r2, [r2]
- ldr r0, [r0, #0x18]
- mov r1, #0x2e
- bl FUN_02007558
- ldr r0, [r5]
- ldr r2, [sp, #0x20]
- lsl r0, r0, #2
- add r0, r5, r0
- add r2, #0x24
- ldr r0, [r0, #0x18]
- mov r1, #0x14
- str r2, [sp, #0x20]
- bl FUN_02007558
- ldr r0, [r5]
- add r3, sp, #0x24
- lsl r0, r0, #2
- mov r2, #1
- add r0, r5, r0
- ldrsb r2, [r3, r2]
- ldr r0, [r0, #0x18]
- mov r1, #0x15
- bl FUN_02007558
- ldr r0, [r5]
- mov r2, #0x24
- lsl r0, r0, #2
- add r0, r5, r0
- ldr r0, [r0, #0x18]
- mov r1, #0x16
- sub r2, r2, r7
- bl FUN_02007558
- ldr r0, [r5]
- add r3, sp, #0x24
- lsl r0, r0, #2
- mov r2, #2
- add r0, r5, r0
- ldrsb r2, [r3, r2]
- ldr r0, [r0, #0x18]
- mov r1, #0x29
- bl FUN_02007558
-_0222A48E:
- add sp, #0x38
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0222A494
-MOD08_0222A494: ; 0x0222A494
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x20
- add r5, r0, #0
- ldr r0, [r5]
- str r1, [sp, #0x10]
- lsl r0, r0, #2
- add r0, r5, r0
- ldr r0, [r0, #0x18]
- bl FUN_0200813C
- ldr r0, [r5]
- lsl r0, r0, #2
- add r0, r5, r0
- ldr r0, [r0, #0x18]
- bl FUN_020081C0
- add r4, r0, #0
- ldr r0, [r5]
- lsl r1, r0, #1
- add r1, r5, r1
- ldrh r1, [r1, #0x28]
- lsl r3, r0, #2
- str r1, [sp, #0x1c]
- add r1, r5, r0
- add r1, #0x30
- ldrb r1, [r1]
- str r1, [sp, #0x18]
- add r1, r5, r0
- add r1, #0x38
- ldrb r1, [r1]
- add r0, r5, r0
- add r0, #0x4c
- str r1, [sp, #0x14]
- add r1, r5, r3
- ldr r7, [r1, #0x3c]
- ldrb r1, [r0]
- mov r0, #1
- tst r0, r1
- beq _0222A4E6
- mov r6, #2
- b _0222A4E8
-_0222A4E6:
- mov r6, #0
-_0222A4E8:
- str r7, [sp]
- mov r0, #0
- str r0, [sp, #4]
- str r6, [sp, #8]
- ldrh r0, [r4, #6]
- add r3, r5, r3
- ldr r2, [sp, #0x10]
- str r0, [sp, #0xc]
- ldr r3, [r3, #8]
- ldrh r0, [r4]
- ldrh r1, [r4, #2]
- ldr r3, [r3]
- bl FUN_02012560
- ldr r1, [r5]
- ldrh r0, [r4]
- lsl r1, r1, #2
- add r1, r5, r1
- ldr r1, [r1, #8]
- ldr r3, [sp, #0x14]
- str r0, [r1, #4]
- ldr r1, [r5]
- lsl r2, r6, #0x18
- lsl r1, r1, #2
- add r1, r5, r1
- lsl r3, r3, #0x18
- ldrh r0, [r4, #4]
- ldr r1, [r1, #8]
- lsr r2, r2, #0x18
- str r0, [r1, #8]
- ldr r0, [sp, #0x1c]
- ldr r1, [sp, #0x18]
- lsl r0, r0, #0x10
- lsl r1, r1, #0x18
- str r7, [sp]
- lsr r0, r0, #0x10
- lsr r1, r1, #0x18
- lsr r3, r3, #0x18
- bl FUN_02068E88
- ldr r1, [r5]
- lsl r1, r1, #2
- add r1, r5, r1
- ldr r1, [r1, #8]
- str r0, [r1, #0xc]
- ldr r0, [r5]
- mov r1, #1
- lsl r4, r0, #2
- add r0, r5, r0
- add r0, #0x4c
- ldrb r0, [r0]
- bl MOD08_0222A6A4
- add r1, r5, r4
- add r2, r0, #0
- ldr r0, [r1, #8]
- ldr r3, [r0, #0xc]
- ldr r0, [r1, #0x18]
- mov r1, #1
- add r2, r3, r2
- bl FUN_02007558
- add sp, #0x20
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD08_0222A568
-MOD08_0222A568: ; 0x0222A568
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r5, r0, #0
- ldr r0, [r5]
- add r6, r1, #0
- lsl r0, r0, #2
- add r0, r5, r0
- ldr r0, [r0, #0x18]
- bl FUN_020080E0
- mov r0, #0x75
- add r2, sp, #0
- strh r0, [r2, #4]
- mov r0, #0xd2
- strh r0, [r2, #8]
- mov r0, #0
- strh r0, [r2, #0xa]
- strb r0, [r2, #0xc]
- str r0, [sp, #0x10]
- ldr r0, [r5]
- add r1, r5, r0
- add r1, #0x4c
- ldrb r3, [r1]
- mov r1, #1
- tst r1, r3
- beq _0222A5A4
- mov r1, #0xd1
- strh r1, [r2, #6]
- mov r4, #0x87
- b _0222A5AA
-_0222A5A4:
- mov r1, #0xd0
- strh r1, [r2, #6]
- mov r4, #0x86
-_0222A5AA:
- lsl r0, r0, #2
- add r0, r5, r0
- ldr r0, [r0, #0x18]
- bl FUN_020081C0
- add r7, r0, #0
- add r3, sp, #4
- add r2, r7, #0
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldr r0, [r5]
- lsl r0, r0, #2
- add r0, r5, r0
- ldr r0, [r0, #0x18]
- bl FUN_020080D0
- ldr r3, [r5]
- ldrh r0, [r7]
- lsl r3, r3, #2
- add r3, r5, r3
- ldr r3, [r3, #8]
- ldrh r1, [r7, #2]
- ldr r3, [r3]
- add r2, r6, #0
- bl FUN_02012420
- ldr r2, [r5]
- add r1, sp, #0
- lsl r2, r2, #2
- add r2, r5, r2
- ldrh r0, [r1, #4]
- ldr r2, [r2, #8]
- str r0, [r2, #4]
- ldr r0, [r5]
- ldrh r1, [r1, #8]
- lsl r0, r0, #2
- add r0, r5, r0
- ldr r0, [r0, #8]
- add r2, r4, #0
- str r1, [r0, #8]
- add r0, sp, #0
- mov r1, #0x79
- bl ReadWholeNarcMemberByIdPair
- add r0, sp, #0
- ldrb r1, [r0]
- ldr r0, [r5]
- lsl r0, r0, #2
- add r0, r5, r0
- ldr r0, [r0, #8]
- str r1, [r0, #0xc]
- ldr r0, [r5]
- mov r1, #1
- lsl r4, r0, #2
- add r0, r5, r0
- add r0, #0x4c
- ldrb r0, [r0]
- bl MOD08_0222A6A4
- add r2, r5, r4
- ldr r1, [r2, #8]
- ldr r1, [r1, #0xc]
- add r4, r1, r0
- ldr r0, [r2, #0x18]
- mov r1, #1
- add r2, r4, #0
- bl FUN_02007558
- ldr r1, [r5]
- mov r2, #1
- add r0, r5, r1
- add r0, #0x4c
- ldrb r0, [r0]
- tst r0, r2
- beq _0222A69E
- lsl r0, r1, #2
- add r0, r5, r0
- ldr r0, [r0, #0x18]
- mov r1, #0x2e
- bl FUN_02007558
- ldr r0, [r5]
- add r2, sp, #0
- ldrb r3, [r2]
- lsl r0, r0, #2
- add r0, r5, r0
- mov r2, #0x24
- sub r2, r2, r3
- ldr r0, [r0, #0x18]
- mov r1, #0x14
- add r2, r4, r2
- bl FUN_02007558
- ldr r0, [r5]
- mov r1, #0x15
- lsl r0, r0, #2
- add r0, r5, r0
- ldr r0, [r0, #0x18]
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r5]
- add r2, sp, #0
- lsl r0, r0, #2
- ldrb r3, [r2]
- add r0, r5, r0
- mov r2, #0x24
- ldr r0, [r0, #0x18]
- mov r1, #0x16
- sub r2, r2, r3
- bl FUN_02007558
- ldr r0, [r5]
- mov r1, #0x29
- lsl r0, r0, #2
- add r0, r5, r0
- ldr r0, [r0, #0x18]
- mov r2, #0
- bl FUN_02007558
-_0222A69E:
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD08_0222A6A4
-MOD08_0222A6A4: ; 0x0222A6A4
- cmp r1, #0
- bne _0222A6B0
- lsl r1, r0, #2
- ldr r0, _0222A6C0 ; =0x0222D538
- ldrsh r0, [r0, r1]
- bx lr
-_0222A6B0:
- mov r2, #6
- mul r2, r0
- ldr r0, _0222A6C4 ; =0x0222D550
- lsl r1, r1, #1
- add r0, r0, r2
- ldrsh r0, [r1, r0]
- bx lr
- nop
-_0222A6C0: .word 0x0222D538
-_0222A6C4: .word 0x0222D550
-
- thumb_func_start MOD08_0222A6C8
-MOD08_0222A6C8: ; 0x0222A6C8
- ldr r1, _0222A75C ; =0x0000013B
- cmp r0, r1
- bhi _0222A6F6
- bhs _0222A754
- cmp r0, #0x7d
- bhi _0222A6E4
- bhs _0222A754
- cmp r0, #0x63
- bhi _0222A6DE
- beq _0222A754
- b _0222A758
-_0222A6DE:
- cmp r0, #0x78
- beq _0222A754
- b _0222A758
-_0222A6E4:
- cmp r0, #0xc9
- bhi _0222A6F0
- bhs _0222A754
- cmp r0, #0x9f
- beq _0222A754
- b _0222A758
-_0222A6F0:
- cmp r0, #0xd7
- beq _0222A754
- b _0222A758
-_0222A6F6:
- add r2, r1, #0
- add r2, #0x4a
- cmp r0, r2
- bhi _0222A71E
- add r2, r1, #0
- add r2, #0x4a
- cmp r0, r2
- bhs _0222A754
- add r2, r1, #0
- add r2, #0x14
- cmp r0, r2
- bhi _0222A716
- add r1, #0x14
- cmp r0, r1
- beq _0222A754
- b _0222A758
-_0222A716:
- add r1, #0x2c
- cmp r0, r1
- beq _0222A754
- b _0222A758
-_0222A71E:
- add r2, r1, #0
- add r2, #0x98
- cmp r0, r2
- bhi _0222A74E
- add r2, r1, #0
- add r2, #0x98
- cmp r0, r2
- bhs _0222A754
- add r2, r1, #0
- add r2, #0x5c
- cmp r0, r2
- bhi _0222A758
- add r2, r1, #0
- add r2, #0x5b
- cmp r0, r2
- blo _0222A758
- add r2, r1, #0
- add r2, #0x5b
- cmp r0, r2
- beq _0222A754
- add r1, #0x5c
- cmp r0, r1
- beq _0222A754
- b _0222A758
-_0222A74E:
- add r1, #0x99
- cmp r0, r1
- bne _0222A758
-_0222A754:
- mov r0, #0
- bx lr
-_0222A758:
- mov r0, #1
- bx lr
- .align 2, 0
-_0222A75C: .word 0x0000013B
-
- .section .rodata
- ; 0x0222A760
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD08_02211E60
+MOD08_02211E60: ; 0x02211E60
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _02211E70
+ lsl r1, r0, #2
+ ldr r0, _02211E74 ; =0x0222A9E4
+ ldr r0, [r0, r1]
+ bx lr
+_02211E70:
+ ldr r0, _02211E78 ; =0x0222A780
+ bx lr
+ .align 2, 0
+_02211E74: .word 0x0222A9E4
+_02211E78: .word 0x0222A780
+
+ thumb_func_start MOD08_02211E7C
+MOD08_02211E7C: ; 0x02211E7C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ add r4, r3, #0
+ bl MOD08_02211E60
+ ldr r3, [sp, #0x10]
+ add r1, r0, #0
+ mov r0, #0x20
+ lsl r3, r3, #0x14
+ str r0, [sp]
+ add r0, r5, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x10
+ bl FUN_02003054
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02211EA0
+MOD08_02211EA0: ; 0x02211EA0
+ add r1, r0, #0
+ add r1, #0x8d
+ ldrb r1, [r1]
+ cmp r1, #0
+ bne _02211EB2
+ ldr r1, _02211EC0 ; =MOD08_02211EC4
+ add r0, #0xbc
+ str r1, [r0]
+ bx lr
+_02211EB2:
+ add r1, r0, #0
+ add r1, #0x8d
+ ldrb r1, [r1]
+ add r0, #0x8d
+ sub r1, r1, #1
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_02211EC0: .word MOD08_02211EC4
+
+ thumb_func_start MOD08_02211EC4
+MOD08_02211EC4: ; 0x02211EC4
+ push {r4, lr}
+ add r4, r0, #0
+_02211EC8:
+ ldr r0, [r4, #0x18]
+ ldr r0, [r0]
+ bl MOD08_0221533C
+ add r1, r0, #0
+ add r0, r4, #0
+ blx r1
+ add r0, r4, #0
+ add r0, #0x8d
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02211EE6
+ ldr r0, [r4, #0x10]
+ cmp r0, #1
+ beq _02211EC8
+_02211EE6:
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02211EE8
+MOD08_02211EE8: ; 0x02211EE8
+ push {r3, r4, r5, lr}
+ add r5, r2, #0
+ add r4, r3, #0
+ cmp r0, #1
+ beq _02211EF8
+ cmp r0, #2
+ beq _02211F06
+ b _02211F14
+_02211EF8:
+ add r0, r1, #0
+ add r0, #0x8e
+ ldrh r0, [r0]
+ add r1, #0x8e
+ add r0, r0, #1
+ strh r0, [r1]
+ b _02211F18
+_02211F06:
+ add r0, r1, #0
+ add r0, #0x90
+ ldrh r0, [r0]
+ add r1, #0x90
+ add r0, r0, #1
+ strh r0, [r1]
+ b _02211F18
+_02211F14:
+ bl ErrorHandling
+_02211F18:
+ ldr r2, [sp, #0x10]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02211F24
+MOD08_02211F24: ; 0x02211F24
+ push {r4, lr}
+ add r4, r2, #0
+ cmp r0, #1
+ beq _02211F32
+ cmp r0, #2
+ beq _02211F40
+ b _02211F4E
+_02211F32:
+ add r0, r1, #0
+ add r0, #0x8e
+ ldrh r0, [r0]
+ add r1, #0x8e
+ sub r0, r0, #1
+ strh r0, [r1]
+ b _02211F52
+_02211F40:
+ add r0, r1, #0
+ add r0, #0x90
+ ldrh r0, [r0]
+ add r1, #0x90
+ sub r0, r0, #1
+ strh r0, [r1]
+ b _02211F52
+_02211F4E:
+ bl ErrorHandling
+_02211F52:
+ add r0, r4, #0
+ bl FUN_0200CAB4
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02211F5C
+MOD08_02211F5C: ; 0x02211F5C
+ push {r3, r4, r5, lr}
+ mov r1, #0x69
+ lsl r1, r1, #2
+ add r5, r0, #0
+ bl AllocFromHeap
+ add r4, r0, #0
+ bne _02211F78
+ cmp r4, #0
+ bne _02211F74
+ bl ErrorHandling
+_02211F74:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02211F78:
+ mov r2, #0x69
+ mov r1, #0
+ lsl r2, r2, #2
+ bl memset
+ mov r1, #0x47
+ str r5, [r4]
+ mov r0, #0
+ str r0, [r4, #8]
+ ldr r0, [r4]
+ lsl r1, r1, #2
+ bl AllocFromHeap
+ add r1, r4, #0
+ add r1, #0xc0
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02211FAC
+ bne _02211FA8
+ bl ErrorHandling
+_02211FA8:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02211FAC:
+ mov r2, #0x47
+ mov r1, #0
+ lsl r2, r2, #2
+ bl memset
+ mov r1, #0
+ str r1, [r4, #0xc]
+ str r1, [r4, #0x18]
+ add r2, r4, #0
+ add r3, r1, #0
+_02211FC0:
+ add r0, r2, #0
+ add r0, #0xcc
+ add r1, r1, #1
+ add r2, r2, #4
+ str r3, [r0]
+ cmp r1, #4
+ blt _02211FC0
+ mov r0, #0x59
+ add r2, r4, #0
+ mov r1, #0
+ lsl r0, r0, #2
+_02211FD6:
+ add r3, r3, #1
+ str r1, [r2, r0]
+ add r2, r2, #4
+ cmp r3, #5
+ blt _02211FD6
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #1
+ str r0, [r4, #0xc]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02211FF0
+MOD08_02211FF0: ; 0x02211FF0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ cmp r5, #0
+ bne _02211FFE
+ bl ErrorHandling
+_02211FFE:
+ str r4, [r5, #8]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02212004
+MOD08_02212004: ; 0x02212004
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221200E
+ bl ErrorHandling
+_0221200E:
+ ldr r0, [r4, #8]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02212014
+MOD08_02212014: ; 0x02212014
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221201E
+ bl ErrorHandling
+_0221201E:
+ ldr r0, [r4]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02212024
+MOD08_02212024: ; 0x02212024
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD08_022123CC
+ cmp r0, #0
+ bne _02212034
+ mov r0, #0
+ pop {r4, pc}
+_02212034:
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ bl FreeToHeap
+ add r0, r4, #0
+ bl FreeToHeap
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02212048
+MOD08_02212048: ; 0x02212048
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ add r4, r0, #0
+ add r5, r1, #0
+ str r2, [sp]
+ str r3, [sp, #4]
+ bl MOD08_0221268C
+ add r0, r4, #0
+ bl MOD08_022123CC
+ cmp r0, #0
+ bne _02212068
+ add sp, #0x3c
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_02212068:
+ mov r3, #0
+ mov r2, #1
+ add r1, r3, #0
+_0221206E:
+ add r0, r4, r3
+ add r0, #0x6c
+ strb r2, [r0]
+ add r0, r4, r3
+ add r0, #0x7c
+ add r3, r3, #1
+ strb r1, [r0]
+ cmp r3, #0x10
+ blt _0221206E
+ add r3, r4, #0
+ mov r0, #0
+_02212084:
+ add r2, r3, #0
+ add r2, #0x94
+ add r1, r1, #1
+ add r3, r3, #4
+ str r0, [r2]
+ cmp r1, #0xa
+ blt _02212084
+ add r3, r4, #0
+ mov r2, #0
+_02212096:
+ str r2, [r3, #0x30]
+ add r1, r3, #0
+ str r2, [r3, #0x28]
+ add r1, #0x2c
+ strb r2, [r1]
+ add r1, r3, #0
+ add r1, #0x2d
+ add r0, r0, #1
+ add r3, #0xc
+ strb r2, [r1]
+ cmp r0, #3
+ blt _02212096
+ add r0, r4, #0
+ add r0, #0xc0
+ ldrb r1, [r5]
+ ldr r0, [r0]
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldrb r1, [r5, #1]
+ ldr r0, [r0]
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldrh r1, [r5, #2]
+ ldr r0, [r0]
+ strh r1, [r0, #2]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r5, #4]
+ ldr r0, [r0]
+ str r1, [r0, #4]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldrh r1, [r5, #8]
+ ldr r0, [r0]
+ strh r1, [r0, #8]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldrh r1, [r5, #0xc]
+ ldr r0, [r0]
+ strh r1, [r0, #0xa]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r5, #0x10]
+ ldr r0, [r0]
+ str r1, [r0, #0xc]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldrh r1, [r5, #0xa]
+ ldr r0, [r0]
+ strh r1, [r0, #0x10]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r5, #0x54]
+ ldr r0, [r0]
+ strh r1, [r0, #0x12]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldrh r1, [r5, #0x14]
+ ldr r0, [r0]
+ strh r1, [r0, #0x14]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldrh r1, [r5, #0x16]
+ ldr r0, [r0]
+ strh r1, [r0, #0x16]
+ ldrh r0, [r5, #0xe]
+ lsl r0, r0, #0x1e
+ lsr r2, r0, #0x1f
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r2, [r1, r0]
+ ldr r0, [sp, #4]
+ ldr r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, #0xac
+ str r1, [r0]
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02212148
+ bl ErrorHandling
+_02212148:
+ ldr r0, [sp, #4]
+ mov r5, #0
+ ldr r1, [r0, #4]
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #4]
+ ldr r1, [r0, #8]
+ add r0, r4, #0
+ add r0, #0xc8
+ str r1, [r0]
+ ldr r0, [sp, #4]
+ add r3, r5, #0
+ ldr r1, [r0, #0x30]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r7, r5, #0
+ add r0, #0xd4
+ str r1, [r0]
+ add r0, r2, #0
+ mov ip, r0
+_02212176:
+ add r1, r4, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ ldr r0, [r2, #0xc]
+ add r1, r1, r3
+ add r1, #0xb0
+ str r0, [r1]
+ ldr r0, [sp, #4]
+ add r1, r0, r5
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldrb r6, [r1, #0x1c]
+ add r0, r0, r5
+ add r0, #0xc0
+ strb r6, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r6, [r2, #0x20]
+ add r0, r0, r3
+ add r0, #0xc4
+ str r6, [r0]
+ mov r0, ip
+ ldrh r6, [r0, #0x34]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, r0, r7
+ add r0, #0xd8
+ strh r6, [r0]
+ add r0, r1, #0
+ add r0, #0x3c
+ ldrb r6, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r7, r7, #2
+ add r0, r0, r5
+ add r0, #0xe0
+ strb r6, [r0]
+ add r0, r1, #0
+ add r0, #0x40
+ ldrb r6, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r1, #0x44
+ add r0, r0, r5
+ add r0, #0xe4
+ strb r6, [r0]
+ ldrb r0, [r1]
+ add r1, r4, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r1, r1, r5
+ add r1, #0xe8
+ strb r0, [r1]
+ add r1, r4, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ ldr r0, [r2, #0x48]
+ add r1, r1, r3
+ add r1, #0xec
+ str r0, [r1]
+ add r1, r4, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ ldr r0, [r2, #0x58]
+ add r1, r1, r3
+ add r1, #0xfc
+ str r0, [r1]
+ mov r0, ip
+ add r0, r0, #2
+ add r5, r5, #1
+ add r2, r2, #4
+ add r3, r3, #4
+ mov ip, r0
+ cmp r5, #4
+ blt _02212176
+ ldr r5, [sp, #4]
+ mov r2, #0x61
+ lsl r2, r2, #2
+ add r5, #0x6c
+ add r3, r4, r2
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [sp, #4]
+ add r0, #0x84
+ ldr r3, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ add r0, r2, #0
+ sub r0, #0x78
+ str r3, [r1, r0]
+ ldr r0, [sp, #4]
+ add r0, #0x8c
+ ldr r3, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ add r0, r2, #0
+ sub r0, #0x70
+ str r3, [r1, r0]
+ ldr r0, [sp, #4]
+ add r0, #0x88
+ ldr r3, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ add r0, r2, #0
+ sub r0, #0x74
+ str r3, [r1, r0]
+ ldr r0, [sp]
+ sub r2, #0x62
+ cmp r0, r2
+ bne _02212296
+ ldr r5, _0221236C ; =0x0222AB18
+ add r3, sp, #8
+ mov r2, #6
+_02212270:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02212270
+ ldr r0, [r5]
+ str r0, [r3]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldrh r0, [r0, #0x12]
+ cmp r0, #0xc
+ blo _0221228E
+ mov r0, #0xa1
+ str r0, [sp]
+ b _02212296
+_0221228E:
+ lsl r1, r0, #2
+ add r0, sp, #8
+ ldr r0, [r0, r1]
+ str r0, [sp]
+_02212296:
+ ldr r0, [sp]
+ cmp r0, #0
+ beq _022122A2
+ ldr r1, _02212370 ; =0x000001D3
+ cmp r0, r1
+ ble _022122A6
+_022122A2:
+ mov r0, #1
+ str r0, [sp]
+_022122A6:
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x68]
+ str r0, [r4, #4]
+ ldr r1, [sp]
+ ldr r2, [r4]
+ bl AllocAndReadWholeNarcMemberByIdPair
+ str r0, [r4, #0x14]
+ cmp r0, #0
+ bne _022122C6
+ bne _022122C0
+ bl ErrorHandling
+_022122C0:
+ add sp, #0x3c
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_022122C6:
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_02018884
+ mov r1, #0x1a
+ lsl r1, r1, #4
+ strb r0, [r4, r1]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_02018884
+ ldr r1, _02212374 ; =0x000001A1
+ strb r0, [r4, r1]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #2
+ bl FUN_02018884
+ ldr r1, _02212378 ; =0x000001A2
+ strb r0, [r4, r1]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #3
+ bl FUN_02018884
+ ldr r1, _0221237C ; =0x000001A3
+ mov r3, #0
+ strb r0, [r4, r1]
+ add r2, r4, #0
+ add r1, r3, #0
+_02212310:
+ add r0, r2, #0
+ add r0, #0xdc
+ add r3, r3, #1
+ add r2, r2, #4
+ str r1, [r0]
+ cmp r3, #0xa
+ blt _02212310
+ mov r2, #0x4f
+ lsl r2, r2, #2
+ add r3, r2, #0
+ add r5, r4, #0
+ mov r0, #0
+ add r3, #0x14
+_0221232A:
+ str r0, [r5, r2]
+ str r0, [r5, r3]
+ add r1, r1, #1
+ add r5, r5, #4
+ cmp r1, #5
+ blt _0221232A
+ mov r1, #6
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ add r1, r4, #0
+ ldr r2, _02212380 ; =MOD08_02211EC4
+ add r1, #0xbc
+ str r2, [r1]
+ add r1, r4, #0
+ add r1, #0x8d
+ strb r0, [r1]
+ add r0, r4, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _0221235C
+ mov r0, #0x67
+ mov r1, #7
+ lsl r0, r0, #2
+ b _02212362
+_0221235C:
+ mov r1, #0xff
+ add r0, r1, #0
+ add r0, #0x9d
+_02212362:
+ str r1, [r4, r0]
+ mov r0, #1
+ str r0, [r4, #0x10]
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221236C: .word 0x0222AB18
+_02212370: .word 0x000001D3
+_02212374: .word 0x000001A1
+_02212378: .word 0x000001A2
+_0221237C: .word 0x000001A3
+_02212380: .word MOD08_02211EC4
+
+ thumb_func_start MOD08_02212384
+MOD08_02212384: ; 0x02212384
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD08_022123CC
+ cmp r0, #0
+ bne _02212394
+ mov r0, #0
+ pop {r4, pc}
+_02212394:
+ add r0, r4, #0
+ add r4, #0xbc
+ ldr r1, [r4]
+ blx r1
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022123A0
+MOD08_022123A0: ; 0x022123A0
+ ldr r0, [r0, #0x10]
+ cmp r0, #1
+ bne _022123AA
+ mov r0, #1
+ bx lr
+_022123AA:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022123B0
+MOD08_022123B0: ; 0x022123B0
+ push {r3, lr}
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ bne _022123C2
+ bne _022123BE
+ bl ErrorHandling
+_022123BE:
+ mov r0, #0
+ pop {r3, pc}
+_022123C2:
+ bl FreeToHeap
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022123CC
+MOD08_022123CC: ; 0x022123CC
+ cmp r0, #0
+ bne _022123D4
+ mov r0, #0
+ bx lr
+_022123D4:
+ ldr r0, [r0, #0xc]
+ cmp r0, #1
+ bne _022123DE
+ mov r0, #1
+ bx lr
+_022123DE:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022123E4
+MOD08_022123E4: ; 0x022123E4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r6, r0, #0
+ add r5, r1, #0
+ add r4, r2, #0
+ str r3, [sp]
+ mov r0, #1
+ add r1, r6, #0
+ add r2, r5, #0
+ add r3, r4, #0
+ bl MOD08_02211EE8
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02212400
+MOD08_02212400: ; 0x02212400
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _02212418 ; =0x0000044C
+ add r4, r1, #0
+ add r3, r2, #0
+ str r0, [sp]
+ mov r0, #1
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD08_02211EE8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02212418: .word 0x0000044C
+
+ thumb_func_start MOD08_0221241C
+MOD08_0221241C: ; 0x0221241C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r6, r0, #0
+ add r5, r1, #0
+ add r4, r2, #0
+ str r3, [sp]
+ mov r0, #2
+ add r1, r6, #0
+ add r2, r5, #0
+ add r3, r4, #0
+ bl MOD08_02211EE8
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02212438
+MOD08_02212438: ; 0x02212438
+ add r3, r0, #0
+ add r2, r1, #0
+ add r1, r3, #0
+ ldr r3, _02212444 ; =MOD08_02211F24
+ mov r0, #1
+ bx r3
+ .align 2, 0
+_02212444: .word MOD08_02211F24
+
+ thumb_func_start MOD08_02212448
+MOD08_02212448: ; 0x02212448
+ add r3, r0, #0
+ add r2, r1, #0
+ add r1, r3, #0
+ ldr r3, _02212454 ; =MOD08_02211F24
+ mov r0, #2
+ bx r3
+ .align 2, 0
+_02212454: .word MOD08_02211F24
+
+ thumb_func_start MOD08_02212458
+MOD08_02212458: ; 0x02212458
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldrh r0, [r0, #0x14]
+ bx lr
+
+ thumb_func_start MOD08_02212460
+MOD08_02212460: ; 0x02212460
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldrh r0, [r0, #0x16]
+ bx lr
+
+ thumb_func_start MOD08_02212468
+MOD08_02212468: ; 0x02212468
+ add r0, #0xc0
+ ldr r1, [r0]
+ ldr r0, [r1, #0x18]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ ldr r0, [r0, #0x1c]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02212478
+MOD08_02212478: ; 0x02212478
+ add r0, #0xc0
+ ldr r2, [r0]
+ lsl r0, r1, #2
+ add r0, r2, r0
+ ldr r0, [r0, #0x1c]
+ bx lr
+
+ thumb_func_start MOD08_02212484
+MOD08_02212484: ; 0x02212484
+ add r0, #0xc0
+ ldr r2, [r0]
+ lsl r0, r1, #2
+ add r0, r2, r0
+ ldr r0, [r0, #0x5c]
+ bx lr
+
+ thumb_func_start MOD08_02212490
+MOD08_02212490: ; 0x02212490
+ add r0, #0xc4
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02212498
+MOD08_02212498: ; 0x02212498
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ cmp r5, #0xa
+ blt _022124A6
+ bl ErrorHandling
+_022124A6:
+ lsl r0, r5, #2
+ add r0, r4, r0
+ add r0, #0x94
+ ldr r0, [r0]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_022124B0
+MOD08_022124B0: ; 0x022124B0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ cmp r4, #0xa
+ blt _022124BE
+ bl ErrorHandling
+_022124BE:
+ cmp r5, #0
+ bne _022124C6
+ bl ErrorHandling
+_022124C6:
+ add r5, #0xdc
+ lsl r4, r4, #2
+ ldr r0, [r5, r4]
+ cmp r0, #0
+ bne _022124D4
+ bl ErrorHandling
+_022124D4:
+ ldr r0, [r5, r4]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_022124D8
+MOD08_022124D8: ; 0x022124D8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ cmp r4, #5
+ blt _022124E6
+ bl ErrorHandling
+_022124E6:
+ cmp r5, #0
+ bne _022124EE
+ bl ErrorHandling
+_022124EE:
+ mov r0, #0x4f
+ lsl r0, r0, #2
+ add r5, r5, r0
+ lsl r4, r4, #2
+ ldr r0, [r5, r4]
+ cmp r0, #0
+ bne _02212500
+ bl ErrorHandling
+_02212500:
+ ldr r0, [r5, r4]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02212504
+MOD08_02212504: ; 0x02212504
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221250E
+ bl ErrorHandling
+_0221250E:
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02212518
+MOD08_02212518: ; 0x02212518
+ add r0, #0xcc
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02212520
+MOD08_02212520: ; 0x02212520
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, #0xac
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_0221252C
+MOD08_0221252C: ; 0x0221252C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ mov r1, #0x3c
+ bl AllocFromHeap
+ add r4, r0, #0
+ bne _02212544
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02212544:
+ mov r1, #0
+ mov r2, #0x3c
+ bl memset
+ add r0, r5, #0
+ add r0, #0x90
+ ldrh r0, [r0]
+ add r5, #0x90
+ add r0, r0, #1
+ strh r0, [r5]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_0221255C
+MOD08_0221255C: ; 0x0221255C
+ ldr r3, _02212568 ; =FUN_0200CA44
+ str r0, [r1, #0x38]
+ ldr r0, _0221256C ; =MOD08_02212574
+ ldr r2, _02212570 ; =0x0000044C
+ bx r3
+ nop
+_02212568: .word FUN_0200CA44
+_0221256C: .word MOD08_02212574
+_02212570: .word 0x0000044C
+
+ thumb_func_start MOD08_02212574
+MOD08_02212574: ; 0x02212574
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4]
+ add r5, r0, #0
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _022125B0 ; =0x0222AAC4
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ bne _022125AE
+ ldr r0, [r4, #0x38]
+ add r1, r0, #0
+ add r1, #0x90
+ ldrh r1, [r1]
+ cmp r1, #0
+ beq _022125A2
+ add r1, r0, #0
+ add r1, #0x90
+ ldrh r1, [r1]
+ add r0, #0x90
+ sub r1, r1, #1
+ strh r1, [r0]
+_022125A2:
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_022125AE:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022125B0: .word 0x0222AAC4
+
+ thumb_func_start MOD08_022125B4
+MOD08_022125B4: ; 0x022125B4
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD08_022125B8
+MOD08_022125B8: ; 0x022125B8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldrb r1, [r5, #4]
+ add r0, r1, #1
+ strb r0, [r5, #4]
+ ldrb r0, [r5, #3]
+ cmp r1, r0
+ bhs _022125CC
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_022125CC:
+ mov r0, #0
+ strb r0, [r5, #4]
+ ldr r2, [r5, #0x14]
+ ldr r1, [r5, #0x10]
+ mov r4, #1
+ add r1, r2, r1
+ str r1, [r5, #0x14]
+ ldr r1, [r5, #0x10]
+ cmp r1, #0
+ bne _022125E4
+ add r4, r0, #0
+ b _022125FC
+_022125E4:
+ ldr r2, [r5, #0xc]
+ ldr r1, [r5, #8]
+ cmp r1, r2
+ ldr r1, [r5, #0x14]
+ bge _022125F6
+ cmp r1, r2
+ blt _022125FC
+ add r4, r0, #0
+ b _022125FC
+_022125F6:
+ cmp r1, r2
+ bgt _022125FC
+ add r4, r0, #0
+_022125FC:
+ ldr r0, [r5, #0x14]
+ bl FUN_0200554C
+ ldrh r0, [r5, #0x1a]
+ bl FUN_02005508
+ cmp r0, #0
+ bne _0221260E
+ mov r4, #0
+_0221260E:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02212614
+MOD08_02212614: ; 0x02212614
+ ldr r3, _02212618 ; =MOD08_022125B8
+ bx r3
+ .align 2, 0
+_02212618: .word MOD08_022125B8
+
+ thumb_func_start MOD08_0221261C
+MOD08_0221261C: ; 0x0221261C
+ ldr r3, _02212620 ; =MOD08_022125B8
+ bx r3
+ .align 2, 0
+_02212620: .word MOD08_022125B8
+
+ thumb_func_start MOD08_02212624
+MOD08_02212624: ; 0x02212624
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldrb r1, [r5, #4]
+ add r0, r1, #1
+ strb r0, [r5, #4]
+ ldrb r0, [r5, #3]
+ cmp r1, r0
+ bhs _02212638
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02212638:
+ mov r0, #0
+ strb r0, [r5, #4]
+ ldrb r0, [r5, #0x18]
+ mov r4, #1
+ sub r0, r0, #1
+ strb r0, [r5, #0x18]
+ ldrh r0, [r5, #0x1a]
+ bl FUN_020054C8
+ ldrh r0, [r5, #0x1a]
+ ldr r1, _02212660 ; =0x0000FFFF
+ ldr r2, [r5, #0x14]
+ bl FUN_02005530
+ ldrb r0, [r5, #0x18]
+ cmp r0, #0
+ bne _0221265C
+ mov r4, #0
+_0221265C:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02212660: .word 0x0000FFFF
+
+ thumb_func_start MOD08_02212664
+MOD08_02212664: ; 0x02212664
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r2, [r4, #3]
+ mov r0, #1
+ sub r1, r2, #1
+ strb r1, [r4, #3]
+ cmp r2, #0
+ bne _02212686
+ ldrh r0, [r4, #0x1a]
+ bl FUN_020054C8
+ ldrh r0, [r4, #0x1a]
+ ldr r1, _02212688 ; =0x0000FFFF
+ ldr r2, [r4, #0x14]
+ bl FUN_02005530
+ mov r0, #0
+_02212686:
+ pop {r4, pc}
+ .align 2, 0
+_02212688: .word 0x0000FFFF
+
+ thumb_func_start MOD08_0221268C
+MOD08_0221268C: ; 0x0221268C
+ push {r3, lr}
+ ldr r0, _022126A0 ; =0x04000050
+ mov r3, #8
+ mov r1, #0
+ mov r2, #0x3f
+ str r3, [sp]
+ bl G2x_SetBlendAlpha_
+ pop {r3, pc}
+ nop
+_022126A0: .word 0x04000050
+
+ thumb_func_start MOD08_022126A4
+MOD08_022126A4: ; 0x022126A4
+ push {r3, r4}
+ add r2, r0, #0
+ mov r1, #1
+ add r2, #0x8d
+ strb r1, [r2]
+ ldr r3, _022126D8 ; =0x021C48B8
+ lsl r2, r1, #9
+ ldr r4, [r3, #0x44]
+ tst r2, r4
+ beq _022126D4
+ add r2, r1, #0
+ add r2, #0xff
+ tst r2, r4
+ beq _022126D4
+ ldr r2, [r3, #0x48]
+ lsl r1, r1, #0xa
+ tst r1, r2
+ beq _022126D4
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ mov r1, #0
+ add r0, #0x8d
+ strb r1, [r0]
+_022126D4:
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+_022126D8: .word 0x021C48B8
+
+ thumb_func_start MOD08_022126DC
+MOD08_022126DC: ; 0x022126DC
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r2, [r1]
+ add r1, r0, #0
+ add r1, #0x8d
+ strb r2, [r1]
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r1, _022126F8 ; =MOD08_02211EA0
+ add r0, #0xbc
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_022126F8: .word MOD08_02211EA0
+
+ thumb_func_start MOD08_022126FC
+MOD08_022126FC: ; 0x022126FC
+ add r1, r0, #0
+ add r1, #0x8e
+ ldrh r1, [r1]
+ cmp r1, #0
+ bne _02212714
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ mov r1, #0
+ add r0, #0x8d
+ strb r1, [r0]
+ bx lr
+_02212714:
+ mov r1, #1
+ add r0, #0x8d
+ strb r1, [r0]
+ bx lr
+
+ thumb_func_start MOD08_0221271C
+MOD08_0221271C: ; 0x0221271C
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r3, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r2, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ cmp r3, #0xa
+ bhs _0221273A
+ lsl r1, r3, #2
+ add r0, r0, r1
+ add r0, #0x94
+ str r2, [r0]
+_0221273A:
+ bx lr
+
+ thumb_func_start MOD08_0221273C
+MOD08_0221273C: ; 0x0221273C
+ ldr r1, [r0, #0x18]
+ mov r3, #0
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ add r2, r3, #0
+_02212746:
+ add r1, r0, #0
+ add r1, #0x94
+ add r3, r3, #1
+ add r0, r0, #4
+ str r2, [r1]
+ cmp r3, #0xa
+ blt _02212746
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02212758
+MOD08_02212758: ; 0x02212758
+ cmp r1, #5
+ bhi _022127A4
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02212768: ; jump table
+ .short _02212774 - _02212768 - 2 ; case 0
+ .short _0221277C - _02212768 - 2 ; case 1
+ .short _02212784 - _02212768 - 2 ; case 2
+ .short _0221278C - _02212768 - 2 ; case 3
+ .short _02212794 - _02212768 - 2 ; case 4
+ .short _0221279C - _02212768 - 2 ; case 5
+_02212774:
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ bx lr
+_0221277C:
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldrh r0, [r0, #8]
+ bx lr
+_02212784:
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldrh r0, [r0, #0xa]
+ bx lr
+_0221278C:
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ bx lr
+_02212794:
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldrh r0, [r0, #0x10]
+ bx lr
+_0221279C:
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldrh r0, [r0, #0x12]
+ bx lr
+_022127A4:
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD08_022127A8
+MOD08_022127A8: ; 0x022127A8
+ push {r3, r4, r5, r6, r7, lr}
+ mov r4, #0
+ add r3, r0, #0
+ add r0, r1, #0
+ str r2, [sp]
+ add r6, r4, #0
+ add r5, r0, #0
+ mov ip, r4
+ add r7, r0, #0
+_022127BA:
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r1, r1, r6
+ add r1, #0xb0
+ ldr r1, [r1]
+ str r1, [r5, #8]
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r1, r1, r6
+ add r1, #0xc4
+ ldr r1, [r1]
+ str r1, [r5, #0x18]
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r2, [r1]
+ mov r1, ip
+ add r1, r2, r1
+ add r1, #0xd8
+ ldrh r1, [r1]
+ add r2, r0, r4
+ add r2, #0x30
+ strh r1, [r7, #0x28]
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r7, r7, #2
+ add r1, r1, r4
+ add r1, #0xe0
+ ldrb r1, [r1]
+ strb r1, [r2]
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r2, r0, r4
+ add r1, r1, r4
+ add r1, #0xe4
+ ldrb r1, [r1]
+ add r2, #0x34
+ strb r1, [r2]
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r2, r0, r4
+ add r1, r1, r4
+ add r1, #0xe8
+ ldrb r1, [r1]
+ add r2, #0x38
+ strb r1, [r2]
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r2, r0, r4
+ add r1, r1, r6
+ add r1, #0xec
+ ldr r1, [r1]
+ add r2, #0x4c
+ str r1, [r5, #0x3c]
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r6, r6, #4
+ add r1, r1, r4
+ add r1, #0xc0
+ ldrb r1, [r1]
+ add r4, r4, #1
+ add r5, r5, #4
+ strb r1, [r2]
+ mov r1, ip
+ add r1, r1, #2
+ mov ip, r1
+ cmp r4, #4
+ blt _022127BA
+ ldr r1, [sp]
+ cmp r1, #3
+ bhi _022128B8
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02212860: ; jump table
+ .short _02212868 - _02212860 - 2 ; case 0
+ .short _0221287C - _02212860 - 2 ; case 1
+ .short _02212890 - _02212860 - 2 ; case 2
+ .short _022128A4 - _02212860 - 2 ; case 3
+_02212868:
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r3, #0xc0
+ ldrh r1, [r1, #0x14]
+ str r1, [r0]
+ ldr r1, [r3]
+ ldrh r1, [r1, #0x16]
+ str r1, [r0, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0221287C:
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r3, #0xc0
+ ldrh r1, [r1, #0x14]
+ str r1, [r0]
+ ldr r1, [r3]
+ ldrh r1, [r1, #0x14]
+ str r1, [r0, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_02212890:
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r3, #0xc0
+ ldrh r1, [r1, #0x14]
+ str r1, [r0]
+ ldr r1, [r3]
+ ldrh r1, [r1, #0x14]
+ str r1, [r0, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_022128A4:
+ add r1, r3, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r3, #0xc0
+ ldrh r1, [r1, #0x14]
+ str r1, [r0]
+ ldr r1, [r3]
+ ldrh r1, [r1, #0x14]
+ str r1, [r0, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_022128B8:
+ bl ErrorHandling
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022128C0
+MOD08_022128C0: ; 0x022128C0
+ push {r3, r4, r5, lr}
+ sub sp, #0x50
+ add r5, r0, #0
+ ldr r1, [r5, #0x18]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ ldr r4, [r1]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ add r1, sp, #0
+ add r2, r4, #0
+ bl MOD08_022127A8
+ cmp r4, #2
+ add r0, sp, #0
+ bne _022128EA
+ ldr r1, [r5]
+ bl MOD08_0222A568
+ add sp, #0x50
+ pop {r3, r4, r5, pc}
+_022128EA:
+ cmp r4, #3
+ bne _022128F8
+ ldr r1, [r5]
+ bl MOD08_0222A2A4
+ add sp, #0x50
+ pop {r3, r4, r5, pc}
+_022128F8:
+ ldr r1, [r5]
+ bl MOD08_0222A294
+ add sp, #0x50
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02212904
+MOD08_02212904: ; 0x02212904
+ push {r4, lr}
+ sub sp, #0x50
+ add r4, r0, #0
+ ldr r1, [r4, #0x18]
+ add r1, r1, #4
+ str r1, [r4, #0x18]
+ ldr r2, [r1]
+ add r1, r1, #4
+ str r1, [r4, #0x18]
+ add r1, sp, #0
+ bl MOD08_022127A8
+ ldr r1, [r4]
+ add r0, sp, #0
+ bl MOD08_0222A494
+ add sp, #0x50
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02212928
+MOD08_02212928: ; 0x02212928
+ ldr r1, [r0, #0x18]
+ mov r2, #0
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ add r3, r0, #0
+_02212932:
+ ldr r1, [r3, #0x30]
+ cmp r1, #1
+ beq _0221295E
+ mov r1, #0xc
+ mul r1, r2
+ mov r2, #1
+ add r1, r0, r1
+ str r2, [r1, #0x30]
+ add r2, r1, #0
+ mov r3, #0
+ add r2, #0x2c
+ strb r3, [r2]
+ ldr r2, [r0, #0x18]
+ ldr r3, [r2]
+ add r2, r1, #0
+ add r2, #0x2d
+ strb r3, [r2]
+ ldr r2, [r0, #0x18]
+ add r2, r2, #4
+ str r2, [r0, #0x18]
+ str r2, [r1, #0x28]
+ bx lr
+_0221295E:
+ add r2, r2, #1
+ add r3, #0xc
+ cmp r2, #3
+ blt _02212932
+ bx lr
+
+ thumb_func_start MOD08_02212968
+MOD08_02212968: ; 0x02212968
+ push {r3, r4}
+ ldr r1, [r0, #0x18]
+ add r3, r0, #0
+ add r1, r1, #4
+ add r3, #0x18
+ str r1, [r0, #0x18]
+ mov r2, #2
+_02212976:
+ ldr r1, [r3, #0x30]
+ cmp r1, #0
+ beq _022129AA
+ add r4, r2, #0
+ mov r1, #0xc
+ add r2, r0, #0
+ mul r4, r1
+ add r2, #0x2c
+ ldrb r1, [r2, r4]
+ add r1, r1, #1
+ strb r1, [r2, r4]
+ ldrb r3, [r2, r4]
+ add r2, r0, r4
+ add r1, r2, #0
+ add r1, #0x2d
+ ldrb r1, [r1]
+ cmp r3, r1
+ bne _022129A2
+ mov r0, #0
+ str r0, [r2, #0x30]
+ pop {r3, r4}
+ bx lr
+_022129A2:
+ ldr r1, [r2, #0x28]
+ str r1, [r0, #0x18]
+ pop {r3, r4}
+ bx lr
+_022129AA:
+ sub r3, #0xc
+ sub r2, r2, #1
+ bpl _02212976
+ pop {r3, r4}
+ bx lr
+
+ thumb_func_start MOD08_022129B4
+MOD08_022129B4: ; 0x022129B4
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r1, _02212BB0 ; =0x0000017E
+ add r5, r0, #0
+ ldrb r0, [r5, r1]
+ mov r6, #0
+ cmp r0, #1
+ bhs _022129D2
+ add r0, r5, #0
+ mov r2, #1
+ add r0, #0x8d
+ strb r2, [r0]
+ ldrb r0, [r5, r1]
+ add r0, r0, #1
+ strb r0, [r5, r1]
+ pop {r3, r4, r5, r6, r7, pc}
+_022129D2:
+ add r7, r6, #0
+ add r4, r6, #0
+_022129D6:
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, r0, r4
+ ldr r0, [r0, #0x1c]
+ cmp r0, #0
+ beq _022129EA
+ bl FUN_020133C8
+ add r6, r6, r0
+_022129EA:
+ add r7, r7, #1
+ add r4, r4, #4
+ cmp r7, #0x10
+ blt _022129D6
+ cmp r6, #0
+ bne _02212A0A
+ add r0, r5, #0
+ add r0, #0x8e
+ ldrh r0, [r0]
+ cmp r0, #0
+ bne _02212A0A
+ add r0, r5, #0
+ add r0, #0x90
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _02212A1A
+_02212A0A:
+ add r0, r5, #0
+ mov r1, #1
+ add r0, #0x8d
+ strb r1, [r0]
+ ldr r0, _02212BB4 ; =0x0000017D
+ mov r1, #0
+ strb r1, [r5, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_02212A1A:
+ bl FUN_02005514
+ cmp r0, #0
+ beq _02212A44
+ ldr r0, _02212BB4 ; =0x0000017D
+ ldrb r1, [r5, r0]
+ add r1, r1, #1
+ strb r1, [r5, r0]
+ ldrb r1, [r5, r0]
+ cmp r1, #0x5a
+ bls _02212A3C
+ mov r1, #0
+ strb r1, [r5, r0]
+ add r0, r5, #0
+ add r0, #0x8d
+ strb r1, [r0]
+ b _02212A44
+_02212A3C:
+ mov r0, #1
+ add r5, #0x8d
+ strb r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_02212A44:
+ ldr r0, _02212BB4 ; =0x0000017D
+ mov r1, #0
+ strb r1, [r5, r0]
+ add r0, r0, #1
+ strb r1, [r5, r0]
+ add r0, r5, #0
+ add r2, r1, #0
+_02212A52:
+ add r1, r1, #1
+ str r2, [r0, #0x1c]
+ add r0, r0, #4
+ cmp r1, #3
+ blt _02212A52
+ add r1, r5, #0
+ mov r4, #0
+_02212A60:
+ add r0, r1, #0
+ str r4, [r1, #0x28]
+ add r0, #0x2c
+ strb r4, [r0]
+ add r0, r1, #0
+ add r0, #0x2d
+ strb r4, [r0]
+ str r4, [r1, #0x30]
+ add r2, r2, #1
+ add r1, #0xc
+ cmp r2, #3
+ blt _02212A60
+ add r7, r5, #0
+ mov r6, #0
+_02212A7C:
+ add r0, r7, #0
+ add r0, #0xcc
+ ldr r1, [r0]
+ cmp r1, #0
+ beq _02212A94
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, #0xac
+ ldr r0, [r0]
+ bl FUN_0200C398
+_02212A94:
+ add r0, r7, #0
+ add r0, #0xcc
+ add r4, r4, #1
+ add r7, r7, #4
+ str r6, [r0]
+ cmp r4, #4
+ blt _02212A7C
+_02212AA2:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02213454
+ add r6, r6, #1
+ cmp r6, #5
+ blt _02212AA2
+ mov r6, #0
+ add r4, r6, #0
+ add r7, r6, #0
+_02212AB6:
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, r0, r4
+ ldr r0, [r0, #0x1c]
+ cmp r0, #0
+ beq _02212AD2
+ bl MOD08_02215B40
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, r0, r4
+ str r7, [r0, #0x1c]
+_02212AD2:
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #0x10
+ blt _02212AB6
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ cmp r1, #0
+ beq _02212AE8
+ mov r1, #0
+ str r1, [r5, r0]
+_02212AE8:
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #0
+ bne _02212B3C
+ bl MOD11_02231678
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02215588
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212014
+ add r3, r0, #0
+ lsl r0, r4, #0x18
+ mov r1, #1
+ lsr r0, r0, #0x18
+ lsl r1, r1, #0xe
+ mov r2, #0
+ bl FUN_02017F18
+ add r0, r5, #0
+ bl MOD08_02212490
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02215588
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ add r0, r4, #0
+ lsr r1, r1, #0x18
+ bl FUN_02018744
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201797C
+ b _02212B40
+_02212B3C:
+ bl MOD12_02233560
+_02212B40:
+ mov r1, #0x1a
+ lsl r1, r1, #4
+ ldrb r1, [r5, r1]
+ mov r0, #0
+ bl FUN_020178BC
+ ldr r1, _02212BB8 ; =0x000001A1
+ mov r0, #1
+ ldrb r1, [r5, r1]
+ bl FUN_020178BC
+ ldr r1, _02212BBC ; =0x000001A2
+ mov r0, #2
+ ldrb r1, [r5, r1]
+ bl FUN_020178BC
+ ldr r1, _02212BC0 ; =0x000001A3
+ mov r0, #3
+ ldrb r1, [r5, r1]
+ bl FUN_020178BC
+ add r0, r5, #0
+ add r0, #0xc4
+ mov r2, #0
+ ldr r0, [r0]
+ mov r1, #2
+ add r3, r2, #0
+ bl FUN_020179E0
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #2
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ add r0, r5, #0
+ add r0, #0xc4
+ mov r2, #0
+ ldr r0, [r0]
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_020179E0
+ add r0, r5, #0
+ add r0, #0xc4
+ mov r1, #3
+ ldr r0, [r0]
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_020179E0
+ mov r0, #0
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02212BB0: .word 0x0000017E
+_02212BB4: .word 0x0000017D
+_02212BB8: .word 0x000001A1
+_02212BBC: .word 0x000001A2
+_02212BC0: .word 0x000001A3
+
+ thumb_func_start MOD08_02212BC4
+MOD08_02212BC4: ; 0x02212BC4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r4, [r0]
+ add r1, r0, #4
+ str r1, [r5, #0x18]
+ ldr r0, [r1]
+ str r0, [sp]
+ add r0, r1, #4
+ str r0, [r5, #0x18]
+ ldr r7, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ str r4, [r0, #0x18]
+ add r0, r5, r4
+ add r0, #0x7c
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02212C22
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r6, r4, #2
+ add r0, r0, r6
+ ldr r0, [r0, #0x1c]
+ add r1, sp, #4
+ bl FUN_020133EC
+ mov r0, #0
+ ldr r1, [sp, #8]
+ mvn r0, r0
+ mul r0, r1
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r1, sp, #4
+ add r0, r0, r6
+ ldr r0, [r0, #0x1c]
+ bl FUN_020133FC
+_02212C22:
+ add r0, r5, #0
+ add r0, #0xc0
+ add r1, r5, r4
+ add r1, #0x6c
+ ldr r0, [r0]
+ lsl r6, r4, #2
+ add r0, r0, r6
+ ldrb r1, [r1]
+ ldr r0, [r0, #0x1c]
+ bl FUN_02013440
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, [sp]
+ add r0, r0, r6
+ ldr r0, [r0, #0x1c]
+ add r2, r7, #0
+ add r3, r5, #0
+ bl MOD08_02215B2C
+ add r5, #0xc0
+ ldr r1, [r5]
+ str r0, [r1, #0x5c]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02212C58
+MOD08_02212C58: ; 0x02212C58
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r4, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r7, [r0]
+ add r1, r0, #4
+ str r1, [r5, #0x18]
+ ldr r0, [r1]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ str r0, [sp, #4]
+ ldr r0, [r1]
+ str r0, [sp]
+ add r0, r1, #4
+ str r0, [r5, #0x18]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ str r4, [r0, #0x18]
+ add r0, r5, r4
+ add r0, #0x7c
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02212CBE
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r6, r4, #2
+ add r0, r0, r6
+ ldr r0, [r0, #0x1c]
+ add r1, sp, #8
+ bl FUN_020133EC
+ mov r0, #0
+ ldr r1, [sp, #0xc]
+ mvn r0, r0
+ mul r0, r1
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r1, sp, #8
+ add r0, r0, r6
+ ldr r0, [r0, #0x1c]
+ bl FUN_020133FC
+_02212CBE:
+ add r0, r5, #0
+ add r0, #0xc0
+ add r1, r5, r4
+ add r1, #0x6c
+ ldr r0, [r0]
+ lsl r6, r4, #2
+ add r0, r0, r6
+ ldrb r1, [r1]
+ ldr r0, [r0, #0x1c]
+ bl FUN_02013440
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, [sp, #4]
+ add r0, r0, r6
+ ldr r0, [r0, #0x1c]
+ ldr r2, [sp]
+ add r3, r5, #0
+ bl MOD08_02215B2C
+ add r5, #0xc0
+ ldr r2, [r5]
+ lsl r1, r7, #2
+ add r1, r2, r1
+ str r0, [r1, #0x5c]
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02212CF8
+MOD08_02212CF8: ; 0x02212CF8
+ push {r4, r5, r6, lr}
+ sub sp, #0x90
+ ldr r5, _02212D4C ; =0x0222AB4C
+ add r4, r0, #0
+ add r3, sp, #0
+ mov r2, #0x12
+_02212D04:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02212D04
+ add r0, r4, #0
+ bl MOD08_02212458
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212460
+ add r6, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD08_02227468
+ mov r1, #0x18
+ add r3, r5, #0
+ mul r3, r1
+ add r2, sp, #0
+ lsl r1, r0, #2
+ add r0, r2, r3
+ ldr r4, [r1, r0]
+ cmp r4, #0xff
+ bne _02212D44
+ bl ErrorHandling
+_02212D44:
+ sub r0, r4, #1
+ add sp, #0x90
+ pop {r4, r5, r6, pc}
+ nop
+_02212D4C: .word 0x0222AB4C
+
+ thumb_func_start MOD08_02212D50
+MOD08_02212D50: ; 0x02212D50
+ push {r4, r5, r6, lr}
+ sub sp, #0x90
+ ldr r5, _02212DA4 ; =0x0222ABDC
+ add r4, r0, #0
+ add r3, sp, #0
+ mov r2, #0x12
+_02212D5C:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02212D5C
+ add r0, r4, #0
+ bl MOD08_02212458
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212460
+ add r6, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD08_02227468
+ mov r1, #0x18
+ add r3, r5, #0
+ mul r3, r1
+ add r2, sp, #0
+ lsl r1, r0, #2
+ add r0, r2, r3
+ ldr r4, [r1, r0]
+ cmp r4, #0xff
+ bne _02212D9C
+ bl ErrorHandling
+_02212D9C:
+ add r0, r4, #0
+ add sp, #0x90
+ pop {r4, r5, r6, pc}
+ nop
+_02212DA4: .word 0x0222ABDC
+
+ thumb_func_start MOD08_02212DA8
+MOD08_02212DA8: ; 0x02212DA8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ ldr r1, [r5, #0x18]
+ add r0, #0x18
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ ldr r4, [r1]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ mov r1, #0
+ add r2, sp, #0x10
+_02212DC0:
+ ldr r3, [r5, #0x18]
+ add r1, r1, #1
+ ldr r3, [r3]
+ str r3, [r2]
+ ldr r3, [r0]
+ add r2, r2, #4
+ add r3, r3, #4
+ str r3, [r0]
+ cmp r1, #6
+ blt _02212DC0
+ ldr r1, [r5, #0x18]
+ ldr r1, [r1]
+ str r1, [sp]
+ ldr r1, [r0]
+ add r1, r1, #4
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ str r4, [r0, #0x18]
+ add r0, r5, r4
+ add r0, #0x7c
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02212E1E
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r6, r4, #2
+ add r0, r0, r6
+ ldr r0, [r0, #0x1c]
+ add r1, sp, #4
+ bl FUN_020133EC
+ mov r0, #0
+ ldr r1, [sp, #8]
+ mvn r0, r0
+ mul r0, r1
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r1, sp, #4
+ add r0, r0, r6
+ ldr r0, [r0, #0x1c]
+ bl FUN_020133FC
+_02212E1E:
+ add r0, r5, #0
+ bl MOD08_02212CF8
+ add r7, r0, #0
+ add r0, r5, #0
+ add r0, #0xc0
+ add r1, r5, r4
+ add r1, #0x6c
+ ldr r0, [r0]
+ lsl r6, r4, #2
+ add r0, r0, r6
+ ldrb r1, [r1]
+ ldr r0, [r0, #0x1c]
+ bl FUN_02013440
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r2, r7, #2
+ add r0, r0, r6
+ add r1, sp, #0x10
+ ldr r1, [r1, r2]
+ ldr r0, [r0, #0x1c]
+ ldr r2, [sp]
+ add r3, r5, #0
+ bl MOD08_02215B2C
+ add r5, #0xc0
+ ldr r1, [r5]
+ str r0, [r1, #0x5c]
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02212E60
+MOD08_02212E60: ; 0x02212E60
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ ldr r1, [r5, #0x18]
+ add r0, #0x18
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ ldr r4, [r1]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ mov r1, #0
+ add r2, sp, #0x10
+_02212E78:
+ ldr r3, [r5, #0x18]
+ add r1, r1, #1
+ ldr r3, [r3]
+ str r3, [r2]
+ ldr r3, [r0]
+ add r2, r2, #4
+ add r3, r3, #4
+ str r3, [r0]
+ cmp r1, #4
+ blt _02212E78
+ ldr r1, [r5, #0x18]
+ ldr r1, [r1]
+ str r1, [sp]
+ ldr r1, [r0]
+ add r1, r1, #4
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ str r4, [r0, #0x18]
+ add r0, r5, r4
+ add r0, #0x7c
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02212ED6
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r6, r4, #2
+ add r0, r0, r6
+ ldr r0, [r0, #0x1c]
+ add r1, sp, #4
+ bl FUN_020133EC
+ mov r0, #0
+ ldr r1, [sp, #8]
+ mvn r0, r0
+ mul r0, r1
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r1, sp, #4
+ add r0, r0, r6
+ ldr r0, [r0, #0x1c]
+ bl FUN_020133FC
+_02212ED6:
+ add r0, r5, #0
+ bl MOD08_02212D50
+ add r7, r0, #0
+ add r0, r5, #0
+ add r0, #0xc0
+ add r1, r5, r4
+ add r1, #0x6c
+ ldr r0, [r0]
+ lsl r6, r4, #2
+ add r0, r0, r6
+ ldrb r1, [r1]
+ ldr r0, [r0, #0x1c]
+ bl FUN_02013440
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r2, r7, #2
+ add r0, r0, r6
+ add r1, sp, #0x10
+ ldr r1, [r1, r2]
+ ldr r0, [r0, #0x1c]
+ ldr r2, [sp]
+ add r3, r5, #0
+ bl MOD08_02215B2C
+ add r5, #0xc0
+ ldr r1, [r5]
+ str r0, [r1, #0x5c]
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02212F18
+MOD08_02212F18: ; 0x02212F18
+ push {r3, r4, r5, r6, r7, lr}
+ mov r6, #0
+ add r5, r0, #0
+ add r7, r6, #0
+ add r4, r6, #0
+_02212F22:
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, r0, r4
+ ldr r0, [r0, #0x1c]
+ cmp r0, #0
+ beq _02212F36
+ bl FUN_020133C8
+ add r6, r6, r0
+_02212F36:
+ add r7, r7, #1
+ add r4, r4, #4
+ cmp r7, #0x10
+ blt _02212F22
+ cmp r6, #0
+ bne _02212F50
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ mov r0, #0
+ add r5, #0x8d
+ strb r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_02212F50:
+ mov r0, #1
+ add r5, #0x8d
+ strb r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02212F58
+MOD08_02212F58: ; 0x02212F58
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r1, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r4, r1, #2
+ add r0, r0, r4
+ ldr r0, [r0, #0x1c]
+ cmp r0, #0
+ beq _02212F7C
+ bl ErrorHandling
+_02212F7C:
+ ldr r0, [r5, #0x18]
+ mov r2, #0
+ ldr r1, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r5]
+ bl MOD08_02215AA4
+ add r1, r5, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r1, r1, r4
+ str r0, [r1, #0x1c]
+ add r0, r5, #0
+ mov r1, #2
+ add r0, #0x8d
+ strb r1, [r0]
+ ldr r0, _02212FA8 ; =MOD08_02211EA0
+ add r5, #0xbc
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+ nop
+_02212FA8: .word MOD08_02211EA0
+
+ thumb_func_start MOD08_02212FAC
+MOD08_02212FAC: ; 0x02212FAC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r1, [r0]
+ add r0, r0, #4
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r4, r1, #2
+ add r0, r0, r4
+ ldr r0, [r0, #0x1c]
+ cmp r0, #0
+ beq _02212FD2
+ bl ErrorHandling
+_02212FD2:
+ ldr r0, [r5, #0x18]
+ mov r1, #0x64
+ ldr r2, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r5]
+ mov r3, #0
+ bl MOD08_02215ACC
+ add r1, r5, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r1, r1, r4
+ str r0, [r1, #0x1c]
+ add r0, r5, #0
+ mov r1, #2
+ add r0, #0x8d
+ strb r1, [r0]
+ ldr r0, _02213000 ; =MOD08_02211EA0
+ add r5, #0xbc
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+ nop
+_02213000: .word MOD08_02211EA0
+
+ thumb_func_start MOD08_02213004
+MOD08_02213004: ; 0x02213004
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r1, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r4, r1, #2
+ add r0, r0, r4
+ ldr r0, [r0, #0x1c]
+ bl MOD08_02215B40
+ add r5, #0xc0
+ ldr r0, [r5]
+ mov r1, #0
+ add r0, r0, r4
+ str r1, [r0, #0x1c]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02213030
+MOD08_02213030: ; 0x02213030
+ ldr r1, [r0, #0x18]
+ mov r3, #0
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ add r2, r0, #0
+_0221303A:
+ ldr r1, [r2, #0x1c]
+ cmp r1, #0
+ bne _02213056
+ ldr r1, [r0, #0x18]
+ add r2, r1, #4
+ lsl r1, r3, #2
+ add r1, r0, r1
+ str r2, [r1, #0x1c]
+ ldr r2, [r0, #0x18]
+ ldr r1, [r2]
+ lsl r1, r1, #2
+ add r1, r2, r1
+ str r1, [r0, #0x18]
+ bx lr
+_02213056:
+ add r3, r3, #1
+ add r2, r2, #4
+ cmp r3, #3
+ blt _0221303A
+ bx lr
+
+ thumb_func_start MOD08_02213060
+MOD08_02213060: ; 0x02213060
+ ldr r1, [r0, #0x18]
+ add r3, r0, #0
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ mov r2, #2
+ add r3, #8
+_0221306C:
+ ldr r1, [r3, #0x1c]
+ cmp r1, #0
+ beq _02213082
+ add r3, r0, #0
+ add r3, #0x1c
+ lsl r2, r2, #2
+ ldr r1, [r3, r2]
+ str r1, [r0, #0x18]
+ mov r0, #0
+ str r0, [r3, r2]
+ bx lr
+_02213082:
+ sub r3, r3, #4
+ sub r2, r2, #1
+ bpl _0221306C
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_0221308C
+MOD08_0221308C: ; 0x0221308C
+ push {r3, r4}
+ ldr r2, [r0, #0x18]
+ add r1, r0, #0
+ add r2, r2, #4
+ str r2, [r0, #0x18]
+ ldr r4, [r2]
+ add r2, r2, #4
+ str r2, [r0, #0x18]
+ ldr r3, [r2]
+ add r2, r2, #4
+ str r2, [r0, #0x18]
+ lsl r2, r4, #2
+ add r2, r0, r2
+ add r2, #0x94
+ ldr r2, [r2]
+ add r1, #0x18
+ cmp r3, r2
+ bne _022130BA
+ ldr r1, [r0, #0x18]
+ ldr r1, [r1]
+ str r1, [r0, #0x18]
+ pop {r3, r4}
+ bx lr
+_022130BA:
+ ldr r0, [r1]
+ add r0, r0, #4
+ str r0, [r1]
+ pop {r3, r4}
+ bx lr
+
+ thumb_func_start MOD08_022130C4
+MOD08_022130C4: ; 0x022130C4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x18]
+ add r0, r0, #4
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ bl MOD08_02215350
+ cmp r0, #0
+ ldr r0, [r4, #0x18]
+ beq _022130E4
+ ldr r0, [r0]
+ str r0, [r4, #0x18]
+ pop {r4, pc}
+_022130E4:
+ add r0, r0, #4
+ str r0, [r4, #0x18]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022130EC
+MOD08_022130EC: ; 0x022130EC
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x18]
+ add r1, r0, #4
+ str r1, [r4, #0x18]
+ ldr r0, [r1]
+ add r1, r1, #4
+ str r1, [r4, #0x18]
+ bl MOD08_02218C48
+ add r7, r0, #0
+ ldr r0, [r4, #0x18]
+ add r2, r4, #0
+ ldr r5, [r0]
+ add r0, r0, #4
+ add r2, #0x18
+ mov r3, #0
+ str r0, [r4, #0x18]
+ cmp r5, #0
+ bls _0221312E
+ add r6, r4, #0
+_02213116:
+ ldr r0, [r4, #0x18]
+ add r3, r3, #1
+ ldr r1, [r0]
+ add r0, r6, #0
+ add r0, #0x94
+ str r1, [r0]
+ ldr r0, [r2]
+ add r6, r6, #4
+ add r0, r0, #4
+ str r0, [r2]
+ cmp r3, r5
+ blo _02213116
+_0221312E:
+ cmp r3, #0xa
+ bge _02213146
+ lsl r0, r3, #2
+ add r2, r4, r0
+ mov r1, #0
+_02213138:
+ add r0, r2, #0
+ add r0, #0x94
+ add r3, r3, #1
+ add r2, r2, #4
+ str r1, [r0]
+ cmp r3, #0xa
+ blt _02213138
+_02213146:
+ add r0, r4, #0
+ blx r7
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0221314C
+MOD08_0221314C: ; 0x0221314C
+ ldr r2, [r0, #0x18]
+ add r1, r0, #0
+ add r2, r2, #4
+ str r2, [r0, #0x18]
+ add r2, r0, #0
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r1, #0x18
+ ldrh r3, [r2, #0x10]
+ mov r2, #1
+ tst r2, r3
+ beq _0221316A
+ ldr r2, [r1]
+ add r2, r2, #4
+ str r2, [r1]
+_0221316A:
+ ldr r2, [r0, #0x18]
+ ldr r1, [r2]
+ lsl r1, r1, #2
+ add r1, r2, r1
+ str r1, [r0, #0x18]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02213178
+MOD08_02213178: ; 0x02213178
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0x18]
+ add r1, r1, #4
+ str r1, [r4, #0x18]
+ ldr r2, [r1]
+ add r1, r1, #4
+ str r1, [r4, #0x18]
+ cmp r2, #0
+ bne _0221319A
+ add r1, r4, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ ldrh r1, [r1, #0x14]
+ bl MOD08_02227470
+ b _022131A6
+_0221319A:
+ add r1, r4, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ ldrh r1, [r1, #0x16]
+ bl MOD08_02227470
+_022131A6:
+ cmp r0, #4
+ bne _022131B0
+ ldr r0, [r4, #0x18]
+ add r0, r0, #4
+ str r0, [r4, #0x18]
+_022131B0:
+ ldr r1, [r4, #0x18]
+ ldr r0, [r1]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ str r0, [r4, #0x18]
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022131BC
+MOD08_022131BC: ; 0x022131BC
+ push {r4, r5}
+ sub sp, #0x10
+ ldr r5, _02213214 ; =0x0222AA3C
+ add r2, sp, #0
+ add r4, r0, #0
+ add r3, r2, #0
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r1, [r4, #0x18]
+ add r0, r4, #0
+ add r1, r1, #4
+ str r1, [r4, #0x18]
+ add r1, r4, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r0, #0x18
+ ldr r1, [r1, #0xc]
+ cmp r1, #0
+ beq _02213202
+ ldr r2, [r0]
+ add r2, r2, #4
+ str r2, [r0]
+ mov r2, #0
+_022131EE:
+ ldr r5, [r3]
+ tst r5, r1
+ bne _02213202
+ ldr r5, [r0]
+ add r2, r2, #1
+ add r5, r5, #4
+ add r3, r3, #4
+ str r5, [r0]
+ cmp r2, #4
+ blo _022131EE
+_02213202:
+ ldr r1, [r4, #0x18]
+ ldr r0, [r1]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ str r0, [r4, #0x18]
+ add sp, #0x10
+ pop {r4, r5}
+ bx lr
+ nop
+_02213214: .word 0x0222AA3C
+
+ thumb_func_start MOD08_02213218
+MOD08_02213218: ; 0x02213218
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0x18]
+ add r1, r1, #4
+ str r1, [r4, #0x18]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02213236
+ ldr r1, [r4, #0x18]
+ ldr r0, [r1]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ str r0, [r4, #0x18]
+ pop {r4, pc}
+_02213236:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #4
+ str r0, [r4, #0x18]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02213240
+MOD08_02213240: ; 0x02213240
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r1, [r5, #0x18]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ add r1, r5, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ ldrh r1, [r1, #0x14]
+ bl MOD08_02227470
+ add r1, r5, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r4, r0, #0
+ ldrh r1, [r1, #0x16]
+ add r0, r5, #0
+ bl MOD08_02227470
+ cmp r4, r0
+ bne _02213276
+ ldr r1, [r5, #0x18]
+ ldr r0, [r1]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ str r0, [r5, #0x18]
+ pop {r3, r4, r5, pc}
+_02213276:
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02213280
+MOD08_02213280: ; 0x02213280
+ ldr r2, [r0, #0x18]
+ add r1, r0, #0
+ add r2, r2, #4
+ str r2, [r0, #0x18]
+ ldr r3, [r2]
+ add r2, r2, #4
+ str r2, [r0, #0x18]
+ add r2, r0, #0
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r1, #0x18
+ ldrh r2, [r2, #0x10]
+ cmp r3, r2
+ bne _022132AA
+ ldr r0, [r0, #0x18]
+ ldr r2, [r1]
+ ldr r0, [r0]
+ lsl r0, r0, #2
+ add r0, r2, r0
+ str r0, [r1]
+ bx lr
+_022132AA:
+ ldr r0, [r1]
+ add r0, r0, #4
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022132B4
+MOD08_022132B4: ; 0x022132B4
+ ldr r1, [r0, #0x18]
+ add r2, r1, #4
+ str r2, [r0, #0x18]
+ ldr r1, [r2]
+ lsl r1, r1, #2
+ add r1, r2, r1
+ str r1, [r0, #0x18]
+ bx lr
+
+ thumb_func_start MOD08_022132C4
+MOD08_022132C4: ; 0x022132C4
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ cmp r1, #7
+ bhi _022133A2
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022132D8: ; jump table
+ .short _022132E8 - _022132D8 - 2 ; case 0
+ .short _022132F0 - _022132D8 - 2 ; case 1
+ .short _022132F8 - _022132D8 - 2 ; case 2
+ .short _02213306 - _022132D8 - 2 ; case 3
+ .short _02213314 - _022132D8 - 2 ; case 4
+ .short _0221333A - _022132D8 - 2 ; case 5
+ .short _02213360 - _022132D8 - 2 ; case 6
+ .short _02213382 - _022132D8 - 2 ; case 7
+_022132E8:
+ add r4, #0xc0
+ ldr r0, [r4]
+ ldrh r6, [r0, #0x14]
+ b _022133A2
+_022132F0:
+ add r4, #0xc0
+ ldr r0, [r4]
+ ldrh r6, [r0, #0x16]
+ b _022133A2
+_022132F8:
+ add r4, #0xc0
+ ldr r1, [r4]
+ ldrh r1, [r1, #0x14]
+ bl MOD08_022274C0
+ add r6, r0, #0
+ b _022133A2
+_02213306:
+ add r4, #0xc0
+ ldr r1, [r4]
+ ldrh r1, [r1, #0x16]
+ bl MOD08_022274C0
+ add r6, r0, #0
+ b _022133A2
+_02213314:
+ mov r6, #0xff
+ mov r5, #0
+_02213318:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02215490
+ cmp r0, #0
+ beq _02213328
+ cmp r0, #2
+ bne _0221332C
+_02213328:
+ add r6, r5, #0
+ b _02213332
+_0221332C:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _02213318
+_02213332:
+ cmp r6, #0xff
+ bne _022133A2
+ mov r6, #0
+ b _022133A2
+_0221333A:
+ mov r6, #0xff
+ mov r5, #0
+_0221333E:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02215490
+ cmp r0, #1
+ beq _0221334E
+ cmp r0, #3
+ bne _02213352
+_0221334E:
+ add r6, r5, #0
+ b _02213358
+_02213352:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _0221333E
+_02213358:
+ cmp r6, #0xff
+ bne _022133A2
+ mov r6, #0
+ b _022133A2
+_02213360:
+ mov r6, #0xff
+ mov r5, #0
+_02213364:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02215490
+ cmp r0, #4
+ bne _02213374
+ add r6, r5, #0
+ b _0221337A
+_02213374:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _02213364
+_0221337A:
+ cmp r6, #0xff
+ bne _022133A2
+ mov r6, #0
+ b _022133A2
+_02213382:
+ mov r6, #0xff
+ mov r5, #0
+_02213386:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02215490
+ cmp r0, #5
+ bne _02213396
+ add r6, r5, #0
+ b _0221339C
+_02213396:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _02213386
+_0221339C:
+ cmp r6, #0xff
+ bne _022133A2
+ mov r6, #0
+_022133A2:
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022133A8
+MOD08_022133A8: ; 0x022133A8
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ ldrb r0, [r5, #5]
+ cmp r0, #0
+ beq _022133C4
+ ldrb r0, [r5, #4]
+ add r0, r0, #1
+ strb r0, [r5, #4]
+ ldrb r1, [r5, #4]
+ ldrb r0, [r5, #5]
+ cmp r1, r0
+ bne _022133F2
+ mov r0, #0
+ strb r0, [r5, #4]
+_022133C4:
+ ldr r0, [r5, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ ldr r0, [r5, #8]
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ ldr r0, [r5, #8]
+ mov r1, #0x29
+ bl FUN_0200782C
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ asr r2, r0, #0x10
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl FUN_0200C714
+_022133F2:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_022133F4
+MOD08_022133F4: ; 0x022133F4
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ ldrb r0, [r5, #5]
+ cmp r0, #0
+ beq _02213410
+ ldrb r0, [r5, #4]
+ add r0, r0, #1
+ strb r0, [r5, #4]
+ ldrb r1, [r5, #4]
+ ldrb r0, [r5, #5]
+ cmp r1, r0
+ bne _02213452
+ mov r0, #0
+ strb r0, [r5, #4]
+_02213410:
+ ldr r0, [r5, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ ldr r0, [r5, #8]
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ ldr r0, [r5, #8]
+ mov r1, #0x29
+ bl FUN_0200782C
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ sub r6, #0x28
+ ldr r0, [r5]
+ mov r1, #2
+ mov r2, #0
+ neg r3, r6
+ bl FUN_020179E0
+ sub r4, #0x28
+ ldr r0, [r5]
+ mov r1, #2
+ mov r2, #3
+ neg r3, r4
+ bl FUN_020179E0
+_02213452:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02213454
+MOD08_02213454: ; 0x02213454
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ cmp r1, #4
+ bne _02213480
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0221349E
+ ldr r0, [r0, #0xc]
+ bl FUN_0200CAB4
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FreeToHeap
+ mov r0, #0x5e
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_02213480:
+ mov r0, #0x59
+ lsl r0, r0, #2
+ lsl r5, r1, #2
+ add r4, r4, r0
+ ldr r0, [r4, r5]
+ cmp r0, #0
+ beq _0221349E
+ ldr r0, [r0, #0xc]
+ bl FUN_0200CAB4
+ ldr r0, [r4, r5]
+ bl FreeToHeap
+ mov r0, #0
+ str r0, [r4, r5]
+_0221349E:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_022134A0
+MOD08_022134A0: ; 0x022134A0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022134A4
+MOD08_022134A4: ; 0x022134A4
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022134A8
+MOD08_022134A8: ; 0x022134A8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ ldr r1, [r5, #0x18]
+ add r2, r1, #4
+ str r2, [r5, #0x18]
+ ldr r1, [r2]
+ add r2, r2, #4
+ str r2, [r5, #0x18]
+ ldr r4, [r2]
+ add r2, r2, #4
+ str r2, [r5, #0x18]
+ bl MOD08_022132C4
+ add r6, r0, #0
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ lsl r0, r6, #2
+ add r0, r1, r0
+ add r0, #0xb0
+ ldr r1, [r0]
+ ldr r0, [r1, #4]
+ str r0, [sp, #0x14]
+ ldr r0, [r1, #8]
+ str r0, [sp, #0x10]
+ ldr r0, [r1]
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _022134FE
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_022154A8
+ bl MOD08_0222A6C8
+ cmp r0, #1
+ bne _022134FE
+ mov r7, #0xc9
+ b _02213500
+_022134FE:
+ mov r7, #0xc8
+_02213500:
+ mov r0, #2
+ bl FUN_020187B0
+ mov r2, #0x19
+ mov r1, #0
+ lsl r2, r2, #8
+ bl MI_CpuFill8
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #0
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xc4
+ mov r3, #0x32
+ ldr r0, [r0]
+ ldr r2, [sp, #0x18]
+ mov r1, #2
+ lsl r3, r3, #6
+ bl FUN_02017E14
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0x80
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ ldr r3, [r5]
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ add r2, r5, #0
+ str r0, [sp, #0xc]
+ add r2, #0xc4
+ ldr r2, [r2]
+ mov r0, #7
+ add r1, r7, #0
+ mov r3, #2
+ bl FUN_020068C8
+ cmp r4, #1
+ bne _022135AC
+ ldr r0, [r5]
+ mov r1, #0x10
+ bl AllocFromHeap
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ ldr r0, [r5, r1]
+ add r1, r6, #0
+ str r2, [r0]
+ add r0, r5, #0
+ bl MOD08_022154D4
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ ldr r2, [r5, r1]
+ str r0, [r2, #8]
+ ldr r0, [r5, r1]
+ mov r2, #0
+ strb r2, [r0, #4]
+ ldr r0, [r5, r1]
+ strb r2, [r0, #5]
+ ldr r0, _02213628 ; =MOD08_022133F4
+ ldr r1, [r5, r1]
+ ldr r2, _0221362C ; =0x00001001
+ bl FUN_0200CA44
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ ldr r1, [r5, r1]
+ str r0, [r1, #0xc]
+_022135AC:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_022154D4
+ mov r1, #0
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r7, r0, #0x10
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_022154D4
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_022154D4
+ mov r1, #0x29
+ bl FUN_0200782C
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ add r0, r5, #0
+ add r0, #0xc4
+ sub r7, #0x28
+ ldr r0, [r0]
+ mov r1, #2
+ mov r2, #0
+ neg r3, r7
+ bl FUN_020179E0
+ add r0, r5, #0
+ add r0, #0xc4
+ sub r4, #0x28
+ ldr r0, [r0]
+ mov r1, #2
+ mov r2, #3
+ neg r3, r4
+ bl FUN_020179E0
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201797C
+ add r0, r5, #0
+ bl MOD08_02215574
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ mov r0, #2
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02213628: .word MOD08_022133F4
+_0221362C: .word 0x00001001
+
+ thumb_func_start MOD08_02213630
+MOD08_02213630: ; 0x02213630
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x18]
+ add r0, r0, #4
+ add r0, r0, #4
+ str r0, [r4, #0x18]
+ mov r0, #2
+ bl FUN_020187B0
+ mov r2, #0x19
+ mov r1, #0
+ lsl r2, r2, #8
+ bl MI_CpuFill8
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD08_02213454
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02213658
+MOD08_02213658: ; 0x02213658
+ push {r4, lr}
+ sub sp, #0x18
+ ldr r3, _022136CC ; =0x0222AA7C
+ add r2, sp, #0
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r4, #0x18]
+ add r0, r0, #4
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, #0xac
+ ldr r0, [r0]
+ bl FUN_0200BB34
+ mov r1, #0x4e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, [r4, r1]
+ add r0, #0xac
+ ldr r0, [r0]
+ mov r2, #5
+ bl FUN_0200BBF0
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, #0xac
+ ldr r0, [r0]
+ bl FUN_0200BB68
+ mov r2, #0x11
+ mov r1, #0
+ lsl r2, r2, #0x10
+ bl FUN_02008D24
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ mov r1, #0x4e
+ add r0, #0xac
+ lsl r1, r1, #2
+ ldr r0, [r0]
+ ldr r1, [r4, r1]
+ add r2, sp, #0
+ bl FUN_0200BF60
+ add sp, #0x18
+ pop {r4, pc}
+ .align 2, 0
+_022136CC: .word 0x0222AA7C
+
+ thumb_func_start MOD08_022136D0
+MOD08_022136D0: ; 0x022136D0
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ ldr r1, _0221377C ; =0x00004E21
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r2, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r4, r2, r1
+ ldrh r3, [r0, #0x14]
+ lsr r2, r1, #2
+ add r0, #0xac
+ mul r2, r3
+ add r4, r4, r2
+ mov r2, #0
+ str r2, [sp]
+ mov r2, #1
+ str r2, [sp, #4]
+ str r4, [sp, #8]
+ lsr r1, r1, #6
+ ldr r0, [r0]
+ ldr r1, [r5, r1]
+ mov r2, #0x1b
+ mov r3, #0x28
+ bl FUN_0200C00C
+ mov r0, #0x1b
+ str r0, [sp]
+ mov r3, #0x27
+ str r3, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ add r2, r5, #0
+ add r0, r5, #0
+ str r4, [sp, #0x14]
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r0, #0xc8
+ add r2, #0xac
+ lsl r3, r3, #3
+ ldr r0, [r0]
+ ldr r2, [r2]
+ ldr r3, [r5, r3]
+ mov r1, #2
+ bl FUN_0200C0DC
+ mov r0, #0
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #0x4e
+ str r4, [sp, #4]
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r1, r1, #2
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r5, r1]
+ mov r2, #0x1b
+ mov r3, #0x29
+ bl FUN_0200C124
+ mov r0, #0
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #0x4e
+ str r4, [sp, #4]
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r1, r1, #2
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r5, r1]
+ mov r2, #0x1b
+ mov r3, #0x2a
+ bl FUN_0200C13C
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221377C: .word 0x00004E21
+
+ thumb_func_start MOD08_02213780
+MOD08_02213780: ; 0x02213780
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x70
+ add r4, r0, #0
+ ldr r1, [r4, #0x18]
+ ldr r6, _02213994 ; =0x00004E21
+ add r2, r1, #4
+ str r2, [r4, #0x18]
+ ldr r1, [r2]
+ add r2, r2, #4
+ str r2, [r4, #0x18]
+ mov ip, r1
+ ldr r1, [r2]
+ add r2, r2, #4
+ str r2, [r4, #0x18]
+ str r1, [sp, #0x10]
+ ldr r1, [r2]
+ add r2, r2, #4
+ str r2, [r4, #0x18]
+ str r1, [sp, #0xc]
+ ldr r1, [r2]
+ add r2, r2, #4
+ str r2, [r4, #0x18]
+ add r2, r4, #0
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r1, r1, r6
+ ldrh r3, [r2, #0x14]
+ lsr r2, r6, #2
+ mul r2, r3
+ add r2, r1, r2
+ str r2, [sp, #0x58]
+ add r2, r4, #0
+ add r2, #0xc0
+ ldr r2, [r2]
+ ldrh r3, [r2, #0x14]
+ lsr r2, r6, #2
+ mul r2, r3
+ add r2, r1, r2
+ str r2, [sp, #0x5c]
+ add r2, r4, #0
+ add r2, #0xc0
+ ldr r2, [r2]
+ ldrh r3, [r2, #0x14]
+ lsr r2, r6, #2
+ mul r2, r3
+ add r2, r1, r2
+ str r2, [sp, #0x60]
+ add r2, r4, #0
+ add r2, #0xc0
+ ldr r2, [r2]
+ lsr r3, r6, #2
+ ldrh r2, [r2, #0x14]
+ mul r3, r2
+ add r1, r1, r3
+ str r1, [sp, #0x64]
+ mov r1, #0
+ str r1, [sp, #0x68]
+ str r1, [sp, #0x6c]
+ mov r1, ip
+ bl MOD08_022132C4
+ str r0, [sp, #0x1c]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ ldr r0, [sp, #0x1c]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ add r0, #0xb0
+ ldr r1, [r0]
+ ldr r0, [r1, #4]
+ str r0, [sp, #0x18]
+ ldr r0, [r1, #8]
+ str r0, [sp, #0x14]
+ ldr r0, [r1]
+ ldr r1, [sp, #0x1c]
+ str r0, [sp, #0x20]
+ add r0, r4, #0
+ bl MOD08_022154D4
+ add r6, r0, #0
+ beq _02213848
+ mov r1, #0
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r7, r0, #0x10
+ add r0, r6, #0
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ add r0, r6, #0
+ mov r1, #0x29
+ bl FUN_0200782C
+ sub r0, r5, r0
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+_02213848:
+ add r0, sp, #0x24
+ strh r7, [r0]
+ strh r5, [r0, #2]
+ mov r1, #0
+ strh r1, [r0, #4]
+ strh r1, [r0, #6]
+ mov r0, #0x64
+ str r0, [sp, #0x2c]
+ mov r0, #1
+ str r1, [sp, #0x30]
+ str r0, [sp, #0x34]
+ str r0, [sp, #0x50]
+ str r1, [sp, #0x54]
+ add r2, sp, #0x58
+ add r3, sp, #0x24
+_02213866:
+ ldr r0, [r2]
+ add r1, r1, #1
+ str r0, [r3, #0x14]
+ add r2, r2, #4
+ add r3, r3, #4
+ cmp r1, #6
+ blt _02213866
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ mov r1, #0x4e
+ add r0, #0xac
+ lsl r1, r1, #2
+ ldr r0, [r0]
+ ldr r1, [r4, r1]
+ add r2, sp, #0x24
+ bl FUN_0200C154
+ add r7, r0, #0
+ cmp r6, #0
+ bne _02213898
+ mov r1, #0
+ bl FUN_0200C644
+ b _022138AC
+_02213898:
+ add r0, r6, #0
+ mov r1, #6
+ bl FUN_0200782C
+ cmp r0, #1
+ bne _022138AC
+ add r0, r7, #0
+ mov r1, #0
+ bl FUN_0200C644
+_022138AC:
+ add r0, r4, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _022138CE
+ ldr r1, [sp, #0x1c]
+ add r0, r4, #0
+ bl MOD08_022154A8
+ bl MOD08_0222A6C8
+ cmp r0, #1
+ bne _022138CE
+ add r0, r7, #0
+ mov r1, #1
+ bl FUN_0200C8D0
+_022138CE:
+ ldr r1, [sp, #0x1c]
+ add r0, r4, #0
+ bl MOD08_022154D4
+ cmp r0, #0
+ beq _022138F0
+ ldr r0, [r7]
+ bl FUN_02020350
+ add r1, r0, #0
+ mov r3, #0x32
+ ldr r1, [r1, #4]
+ ldr r2, [sp, #0x20]
+ mov r0, #0x13
+ lsl r3, r3, #6
+ bl FUN_0201C2C8
+_022138F0:
+ ldr r1, [sp, #0x1c]
+ add r0, r4, #0
+ bl MOD08_022154D4
+ cmp r0, #0
+ beq _02213926
+ ldr r0, [r7]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ mov r1, #2
+ str r1, [sp]
+ mov r1, #0x20
+ lsl r0, r0, #0x14
+ str r1, [sp, #4]
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ ldr r1, [sp, #0x18]
+ ldr r2, [sp, #0x14]
+ ldr r3, [r4]
+ bl FUN_020030E8
+_02213926:
+ ldr r0, [sp, #0xc]
+ lsl r5, r0, #2
+ mov r0, #0x4f
+ lsl r0, r0, #2
+ add r6, r4, r0
+ ldr r0, [r6, r5]
+ cmp r0, #0
+ beq _0221393A
+ bl ErrorHandling
+_0221393A:
+ mov r0, #0x15
+ str r7, [r6, r5]
+ mov r2, #1
+ add r1, r4, r5
+ lsl r0, r0, #4
+ str r2, [r1, r0]
+ ldr r0, [sp, #0x10]
+ cmp r0, #1
+ bne _02213990
+ ldr r1, [sp, #0x1c]
+ add r0, r4, #0
+ bl MOD08_022154D4
+ cmp r0, #0
+ beq _02213990
+ mov r0, #0x59
+ lsl r0, r0, #2
+ add r6, r4, r0
+ ldr r0, [r4]
+ mov r1, #0x10
+ bl AllocFromHeap
+ str r0, [r6, r5]
+ ldr r0, [r6, r5]
+ ldr r1, [sp, #0x1c]
+ str r7, [r0]
+ add r0, r4, #0
+ bl MOD08_022154D4
+ ldr r1, [r6, r5]
+ ldr r2, _02213998 ; =0x00001001
+ str r0, [r1, #8]
+ ldr r0, [r6, r5]
+ mov r1, #0
+ strb r1, [r0, #4]
+ ldr r0, [r6, r5]
+ strb r1, [r0, #5]
+ ldr r0, _0221399C ; =MOD08_022133A8
+ ldr r1, [r6, r5]
+ bl FUN_0200CA44
+ ldr r1, [r6, r5]
+ str r0, [r1, #0xc]
+_02213990:
+ add sp, #0x70
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02213994: .word 0x00004E21
+_02213998: .word 0x00001001
+_0221399C: .word MOD08_022133A8
+
+ thumb_func_start MOD08_022139A0
+MOD08_022139A0: ; 0x022139A0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x18]
+ add r0, r0, #4
+ str r0, [r4, #0x18]
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ beq _022139C2
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, #0xac
+ ldr r0, [r0]
+ bl FUN_0200C398
+_022139C2:
+ mov r0, #0x4e
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022139CC
+MOD08_022139CC: ; 0x022139CC
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r1, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ mov r0, #0x4f
+ lsl r0, r0, #2
+ lsl r4, r1, #2
+ add r6, r5, r0
+ ldr r0, [r6, r4]
+ cmp r0, #0
+ beq _022139EE
+ bl FUN_0200C3DC
+_022139EE:
+ mov r0, #0x15
+ mov r2, #0
+ add r1, r5, r4
+ lsl r0, r0, #4
+ str r2, [r1, r0]
+ str r2, [r6, r4]
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_022139FC
+MOD08_022139FC: ; 0x022139FC
+ push {r3, lr}
+ ldr r2, [r1, #0xc]
+ cmp r2, #0
+ bne _02213A0A
+ bl FUN_0200CAB4
+ pop {r3, pc}
+_02213A0A:
+ mov r0, #0x4e
+ ldr r2, [r1]
+ lsl r0, r0, #2
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _02213A1C
+ ldr r0, [r1, #4]
+ bl FUN_0200BC1C
+_02213A1C:
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02213A20
+MOD08_02213A20: ; 0x02213A20
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ add r6, r5, #0
+ add r1, r0, #4
+ str r1, [r5, #0x18]
+ ldr r0, [r1]
+ add r6, #0x54
+ str r0, [sp]
+ add r0, r1, #4
+ str r0, [r5, #0x18]
+ ldr r2, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r1, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ add r0, r5, #0
+ lsl r4, r2, #4
+ str r0, [sp, #8]
+ add r0, #0x4c
+ lsl r1, r1, #2
+ str r0, [sp, #8]
+ str r5, [r0, r4]
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ ldr r3, [r5, r0]
+ add r2, r5, r4
+ str r3, [r2, #0x50]
+ add r1, r5, r1
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ mov r1, #0
+ str r0, [r6, r4]
+ mov r0, #1
+ str r0, [r2, #0x58]
+ ldr r0, [r6, r4]
+ bl FUN_0200C644
+ add r0, r5, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ beq _02213A7C
+ b _02213BCA
+_02213A7C:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227468
+ str r0, [sp, #4]
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227468
+ add r7, r0, #0
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD08_022132C4
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022154D4
+ cmp r0, #0
+ beq _02213AB8
+ mov r1, #6
+ bl FUN_0200782C
+ b _02213ABA
+_02213AB8:
+ mov r0, #0
+_02213ABA:
+ cmp r0, #1
+ ldr r0, [r6, r4]
+ bne _02213AC8
+ mov r1, #0
+ bl FUN_0200C644
+ b _02213ACE
+_02213AC8:
+ mov r1, #1
+ bl FUN_0200C644
+_02213ACE:
+ ldr r0, [sp]
+ cmp r0, #3
+ bhi _02213BBC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02213AE0: ; jump table
+ .short _02213AE8 - _02213AE0 - 2 ; case 0
+ .short _02213B36 - _02213AE0 - 2 ; case 1
+ .short _02213B0E - _02213AE0 - 2 ; case 2
+ .short _02213B7A - _02213AE0 - 2 ; case 3
+_02213AE8:
+ ldr r0, [sp, #4]
+ sub r0, r0, #3
+ cmp r0, #1
+ bhi _02213AFA
+ ldr r0, [r6, r4]
+ mov r1, #1
+ bl FUN_0200C6C4
+ b _02213BBC
+_02213AFA:
+ add r5, #0x54
+ ldr r0, [r5, r4]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r5, r4]
+ mov r1, #0xff
+ bl FUN_0200C6C4
+ b _02213BBC
+_02213B0E:
+ ldr r0, [sp, #4]
+ cmp r0, #5
+ beq _02213B18
+ cmp r0, #2
+ bne _02213B22
+_02213B18:
+ ldr r0, [r6, r4]
+ mov r1, #1
+ bl FUN_0200C6C4
+ b _02213BBC
+_02213B22:
+ add r5, #0x54
+ ldr r0, [r5, r4]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r5, r4]
+ mov r1, #0xff
+ bl FUN_0200C6C4
+ b _02213BBC
+_02213B36:
+ cmp r7, #5
+ bhi _02213BBC
+ add r0, r7, r7
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02213B46: ; jump table
+ .short _02213BBC - _02213B46 - 2 ; case 0
+ .short _02213BBC - _02213B46 - 2 ; case 1
+ .short _02213B52 - _02213B46 - 2 ; case 2
+ .short _02213B5C - _02213B46 - 2 ; case 3
+ .short _02213B66 - _02213B46 - 2 ; case 4
+ .short _02213B70 - _02213B46 - 2 ; case 5
+_02213B52:
+ ldr r0, [r6, r4]
+ mov r1, #0xff
+ bl FUN_0200C6C4
+ b _02213BBC
+_02213B5C:
+ ldr r0, [r6, r4]
+ mov r1, #1
+ bl FUN_0200C6C4
+ b _02213BBC
+_02213B66:
+ ldr r0, [r6, r4]
+ mov r1, #1
+ bl FUN_0200C6C4
+ b _02213BBC
+_02213B70:
+ ldr r0, [r6, r4]
+ mov r1, #0xff
+ bl FUN_0200C6C4
+ b _02213BBC
+_02213B7A:
+ cmp r7, #5
+ bhi _02213BBC
+ add r0, r7, r7
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02213B8A: ; jump table
+ .short _02213BBC - _02213B8A - 2 ; case 0
+ .short _02213BBC - _02213B8A - 2 ; case 1
+ .short _02213B96 - _02213B8A - 2 ; case 2
+ .short _02213BA0 - _02213B8A - 2 ; case 3
+ .short _02213BAA - _02213B8A - 2 ; case 4
+ .short _02213BB4 - _02213B8A - 2 ; case 5
+_02213B96:
+ ldr r0, [r6, r4]
+ mov r1, #1
+ bl FUN_0200C6C4
+ b _02213BBC
+_02213BA0:
+ ldr r0, [r6, r4]
+ mov r1, #0xff
+ bl FUN_0200C6C4
+ b _02213BBC
+_02213BAA:
+ ldr r0, [r6, r4]
+ mov r1, #0xff
+ bl FUN_0200C6C4
+ b _02213BBC
+_02213BB4:
+ ldr r0, [r6, r4]
+ mov r1, #1
+ bl FUN_0200C6C4
+_02213BBC:
+ ldr r1, [sp, #8]
+ mov r2, #1
+ ldr r0, _02213BD0 ; =MOD08_022139FC
+ add r1, r1, r4
+ lsl r2, r2, #0xc
+ bl FUN_0200CA44
+_02213BCA:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02213BD0: .word MOD08_022139FC
+
+ thumb_func_start MOD08_02213BD4
+MOD08_02213BD4: ; 0x02213BD4
+ ldr r1, [r0, #0x18]
+ mov r2, #0
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r3, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ lsl r1, r3, #4
+ add r0, r0, r1
+ str r2, [r0, #0x58]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02213BEC
+MOD08_02213BEC: ; 0x02213BEC
+ ldr r1, [r0, #0x18]
+ ldr r3, _02213BFC ; =MOD08_02213454
+ add r2, r1, #4
+ str r2, [r0, #0x18]
+ ldr r1, [r2]
+ add r2, r2, #4
+ str r2, [r0, #0x18]
+ bx r3
+ .align 2, 0
+_02213BFC: .word MOD08_02213454
+
+ thumb_func_start MOD08_02213C00
+MOD08_02213C00: ; 0x02213C00
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r3, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r2, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ add r0, r0, r3
+ add r0, #0x6c
+ strb r2, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02213C1C
+MOD08_02213C1C: ; 0x02213C1C
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r3, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r2, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ add r0, r0, r3
+ add r0, #0x7c
+ strb r2, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02213C38
+MOD08_02213C38: ; 0x02213C38
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02213C3C
+MOD08_02213C3C: ; 0x02213C3C
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02213C40
+MOD08_02213C40: ; 0x02213C40
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r5, r0, #0
+ ldrh r1, [r1, #0x14]
+ add r0, r4, #0
+ add r6, r2, #0
+ bl MOD08_02227470
+ add r7, r0, #0
+ add r0, r4, #0
+ add r4, #0xc0
+ ldr r1, [r4]
+ ldrh r1, [r1, #0x16]
+ bl MOD08_02227470
+ lsl r1, r6, #2
+ add r1, r5, r1
+ ldr r1, [r1, #0x1c]
+ cmp r1, #2
+ bne _02213C84
+ cmp r7, r0
+ bne _02213C7C
+ cmp r0, #3
+ beq _02213C78
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02213C78:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02213C7C:
+ cmp r0, #3
+ bne _02213C90
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02213C84:
+ cmp r1, #0
+ beq _02213C90
+ cmp r0, #3
+ bne _02213C90
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02213C90:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02213C94
+MOD08_02213C94: ; 0x02213C94
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r7, r0, #0
+ add r5, r1, #0
+ add r0, r3, #0
+ mov r1, #0
+ add r4, r2, #0
+ str r3, [sp, #0x10]
+ bl MOD08_022156AC
+ add r1, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ add r2, r5, #0
+ str r0, [sp, #0xc]
+ add r2, #0xc4
+ ldr r2, [r2]
+ mov r0, #7
+ add r3, r4, #0
+ bl FUN_0200687C
+ ldr r0, [sp, #0x10]
+ mov r1, #1
+ bl MOD08_022156AC
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x90
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ ldr r3, [r5]
+ mov r1, #7
+ bl FUN_020030E8
+ add r0, r5, #0
+ add r0, #0xc4
+ lsl r1, r4, #0x18
+ ldr r0, [r0]
+ lsr r1, r1, #0x18
+ bl FUN_02018744
+ add r0, r5, #0
+ mov r6, #2
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02213D08
+ mov r6, #4
+ b _02213D18
+_02213D08:
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #7
+ bl MOD08_02213C40
+ cmp r0, #1
+ bne _02213D18
+ mov r6, #3
+_02213D18:
+ ldr r0, [sp, #0x10]
+ add r1, r6, #0
+ bl MOD08_022156AC
+ add r1, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ add r5, #0xc4
+ str r0, [sp, #0xc]
+ ldr r2, [r5]
+ mov r0, #7
+ add r3, r4, #0
+ bl FUN_020068C8
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02213D40
+MOD08_02213D40: ; 0x02213D40
+ lsl r0, r0, #0x10
+ and r0, r1
+ cmp r1, r0
+ bne _02213D4C
+ mov r0, #1
+ bx lr
+_02213D4C:
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD08_02213D50
+MOD08_02213D50: ; 0x02213D50
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ ldr r3, _02213DA0 ; =0x0222AA2C
+ add r2, sp, #0
+ add r5, r0, #0
+ add r4, r2, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r7, _02213DA4 ; =0x0222AADC
+ mov r6, #0
+_02213D68:
+ ldr r0, [r5, #0x18]
+ ldr r1, [r4]
+ bl MOD08_02213D40
+ cmp r0, #0
+ beq _02213D92
+ ldr r0, [r4]
+ mov r1, #0
+ lsr r2, r0, #0x10
+ cmp r2, #2
+ blt _02213D8A
+_02213D7E:
+ lsr r0, r2, #0x1f
+ add r0, r2, r0
+ asr r2, r0, #1
+ add r1, r1, #1
+ cmp r2, #2
+ bge _02213D7E
+_02213D8A:
+ lsl r1, r1, #2
+ ldr r1, [r7, r1]
+ add r0, r5, #0
+ blx r1
+_02213D92:
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #4
+ blo _02213D68
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02213DA0: .word 0x0222AA2C
+_02213DA4: .word 0x0222AADC
+
+ thumb_func_start MOD08_02213DA8
+MOD08_02213DA8: ; 0x02213DA8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ mov r1, #0x4c
+ bl AllocFromHeap
+ add r4, r0, #0
+ bne _02213DC0
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02213DC0:
+ mov r1, #0
+ mov r2, #0x4c
+ bl memset
+ mov r0, #0
+ str r0, [r4]
+ strb r0, [r4, #5]
+ str r5, [r4, #0x48]
+ strb r0, [r4, #9]
+ mov r0, #0x1f
+ strb r0, [r4, #0xa]
+ mov r0, #0x1d
+ strb r0, [r4, #0xb]
+ mov r0, #2
+ strb r0, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ cmp r0, #1
+ bne _02213DFA
+ mov r0, #0
+ strb r0, [r4, #9]
+ mov r0, #0x1f
+ strb r0, [r4, #0xa]
+ mov r0, #0xf
+ strb r0, [r4, #0xb]
+ mov r0, #7
+ strb r0, [r4, #0xc]
+_02213DFA:
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ cmp r0, #2
+ bne _02213E16
+ mov r0, #7
+ strb r0, [r4, #9]
+ mov r0, #0xf
+ strb r0, [r4, #0xa]
+ mov r0, #0x1d
+ strb r0, [r4, #0xb]
+ mov r0, #2
+ strb r0, [r4, #0xc]
+_02213E16:
+ mov r1, #0
+ add r2, r5, #0
+ add r3, r4, #0
+_02213E1C:
+ add r0, r2, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ add r1, r1, #1
+ str r0, [r3, #0x1c]
+ add r2, r2, #4
+ add r3, r3, #4
+ cmp r1, #0xa
+ blt _02213E1C
+ mov r0, #0x5f
+ mov r1, #1
+ lsl r0, r0, #2
+ strb r1, [r5, r0]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02213E3C
+MOD08_02213E3C: ; 0x02213E3C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldrb r0, [r5, #5]
+ cmp r0, #0
+ beq _02213E50
+ cmp r0, #1
+ beq _02213E8E
+ cmp r0, #2
+ beq _02213EE0
+ b _02213F2A
+_02213E50:
+ ldr r0, [r5, #0x48]
+ mov r1, #2
+ bl MOD08_0221477C
+ ldr r0, [r5, #0x48]
+ mov r1, #2
+ bl MOD08_02215600
+ add r4, r0, #0
+ ldr r0, [r5, #0x48]
+ mov r1, #1
+ bl MOD08_02215600
+ lsl r1, r4, #0x18
+ mov r0, #3
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ lsl r1, r4, #0x18
+ mov r0, #2
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201797C
+ ldrb r0, [r5, #5]
+ add r0, r0, #1
+ strb r0, [r5, #5]
+ b _02213F2E
+_02213E8E:
+ ldr r0, [r5, #0x48]
+ mov r1, #3
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r2, #2
+ add r3, r1, #0
+ bl FUN_020170F4
+ ldr r0, [r5, #0x48]
+ bl MOD08_02212004
+ cmp r0, #1
+ beq _02213EB8
+ ldr r0, [r5, #0x48]
+ mov r2, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_020170F4
+_02213EB8:
+ ldr r1, [r5, #0x48]
+ ldr r3, [r5, #0x10]
+ add r0, r5, #0
+ mov r2, #3
+ bl MOD08_02213C94
+ ldrb r0, [r5, #9]
+ mov r1, #4
+ mov r2, #8
+ str r0, [sp]
+ ldrb r3, [r5, #0xa]
+ ldr r0, _02213F34 ; =0x04000050
+ bl G2x_SetBlendAlpha_
+ add r0, r5, #0
+ bl MOD08_02213D50
+ ldrb r0, [r5, #5]
+ add r0, r0, #1
+ strb r0, [r5, #5]
+_02213EE0:
+ ldrb r1, [r5, #9]
+ ldrb r0, [r5, #0xb]
+ mov r2, #0
+ cmp r1, r0
+ bhs _02213EF0
+ add r0, r1, #2
+ strb r0, [r5, #9]
+ b _02213EF2
+_02213EF0:
+ add r2, r2, #1
+_02213EF2:
+ ldrb r1, [r5, #0xa]
+ ldrb r0, [r5, #0xc]
+ cmp r1, r0
+ bls _02213F00
+ sub r0, r1, #2
+ strb r0, [r5, #0xa]
+ b _02213F02
+_02213F00:
+ add r2, r2, #1
+_02213F02:
+ cmp r2, #2
+ bne _02213F14
+ ldrb r0, [r5, #0xb]
+ strb r0, [r5, #9]
+ ldrb r0, [r5, #0xc]
+ strb r0, [r5, #0xa]
+ ldrb r0, [r5, #5]
+ add r0, r0, #1
+ strb r0, [r5, #5]
+_02213F14:
+ ldrb r0, [r5, #9]
+ ldrb r1, [r5, #0xa]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _02213F38 ; =0x04000052
+ strh r1, [r0]
+ ldrb r0, [r5, #5]
+ cmp r0, #2
+ beq _02213F2E
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02213F2A:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02213F2E:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_02213F34: .word 0x04000050
+_02213F38: .word 0x04000052
+
+ thumb_func_start MOD08_02213F3C
+MOD08_02213F3C: ; 0x02213F3C
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ ldrb r0, [r4, #5]
+ cmp r0, #4
+ bls _02213F4A
+ b _0221411C
+_02213F4A:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02213F56: ; jump table
+ .short _02213F60 - _02213F56 - 2 ; case 0
+ .short _02213F6E - _02213F56 - 2 ; case 1
+ .short _02213FB0 - _02213F56 - 2 ; case 2
+ .short _02213FF6 - _02213F56 - 2 ; case 3
+ .short _022140F8 - _02213F56 - 2 ; case 4
+_02213F60:
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201797C
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+_02213F6E:
+ ldr r0, [r4, #0x48]
+ mov r1, #2
+ bl MOD08_02215600
+ add r5, r0, #0
+ ldr r0, [r4, #0x48]
+ mov r1, #1
+ bl MOD08_02215600
+ lsl r1, r5, #0x18
+ mov r0, #3
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ lsl r1, r5, #0x18
+ mov r0, #2
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldrb r0, [r4, #0xa]
+ mov r1, #4
+ mov r2, #8
+ str r0, [sp]
+ ldrb r3, [r4, #9]
+ ldr r0, _02214128 ; =0x04000050
+ bl G2x_SetBlendAlpha_
+ add r0, r4, #0
+ bl MOD08_02213D50
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+_02213FB0:
+ ldrb r1, [r4, #9]
+ ldrb r0, [r4, #0xb]
+ mov r2, #0
+ cmp r1, r0
+ bhs _02213FC0
+ add r0, r1, #2
+ strb r0, [r4, #9]
+ b _02213FC2
+_02213FC0:
+ add r2, r2, #1
+_02213FC2:
+ ldrb r1, [r4, #0xa]
+ ldrb r0, [r4, #0xc]
+ cmp r1, r0
+ bls _02213FD0
+ sub r0, r1, #2
+ strb r0, [r4, #0xa]
+ b _02213FD2
+_02213FD0:
+ add r2, r2, #1
+_02213FD2:
+ cmp r2, #2
+ bne _02213FE8
+ ldrb r0, [r4, #0xb]
+ add r0, r0, #2
+ strb r0, [r4, #9]
+ ldrb r0, [r4, #0xc]
+ sub r0, r0, #2
+ strb r0, [r4, #0xa]
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+_02213FE8:
+ ldrb r0, [r4, #0xa]
+ ldrb r1, [r4, #9]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221412C ; =0x04000052
+ strh r1, [r0]
+ b _02214122
+_02213FF6:
+ add r0, r4, #0
+ add r0, #0x44
+ ldrh r0, [r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _0221400A
+ ldr r0, [r4, #0x48]
+ bl MOD08_02214524
+_0221400A:
+ add r0, r4, #0
+ add r0, #0x44
+ ldrh r0, [r0]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _0221401E
+ ldr r0, [r4, #0x48]
+ bl MOD08_02214524
+_0221401E:
+ ldr r0, [r4, #0x48]
+ mov r2, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_020179E0
+ ldr r0, [r4, #0x48]
+ mov r1, #3
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_020179E0
+ ldr r0, [r4, #0x48]
+ mov r1, #3
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r2, #2
+ mov r3, #4
+ bl FUN_020170F4
+ ldr r0, [r4, #0x48]
+ bl MOD08_02212004
+ cmp r0, #0
+ bne _02214078
+ ldr r0, [r4, #0x48]
+ mov r1, #3
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r2, #0
+ mov r3, #1
+ bl FUN_020170F4
+ ldr r0, [r4, #0x48]
+ mov r1, #3
+ bl MOD08_02215638
+ ldr r0, [r4, #0x48]
+ bl MOD08_02215660
+ b _022140CC
+_02214078:
+ ldr r2, [r4, #0x48]
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r2]
+ mov r1, #0x61
+ lsl r1, r1, #2
+ str r0, [sp, #0xc]
+ ldr r0, [r2, r1]
+ add r1, r1, #4
+ ldr r1, [r2, r1]
+ add r2, #0xc4
+ ldr r2, [r2]
+ mov r3, #3
+ bl FUN_0200687C
+ mov r2, #0x66
+ lsl r2, r2, #2
+ add r1, r2, #0
+ ldr r3, [r4, #0x48]
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [r3, r2]
+ sub r1, #0x14
+ lsl r0, r0, #5
+ str r0, [sp, #4]
+ sub r0, r2, #4
+ ldr r0, [r3, r0]
+ sub r2, #0xc
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ add r0, r3, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ ldr r1, [r3, r1]
+ ldr r2, [r3, r2]
+ ldr r3, [r3]
+ bl FUN_020030E8
+_022140CC:
+ ldr r2, [r4, #0x48]
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r2]
+ mov r1, #0x61
+ lsl r1, r1, #2
+ str r0, [sp, #0xc]
+ ldr r0, [r2, r1]
+ add r1, #0xc
+ ldr r1, [r2, r1]
+ add r2, #0xc4
+ ldr r2, [r2]
+ mov r3, #3
+ bl FUN_020068C8
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+ b _02214122
+_022140F8:
+ ldr r0, [r4, #0x48]
+ bl MOD08_02212004
+ cmp r0, #0
+ bne _02214108
+ bl MOD11_02231678
+ b _0221410C
+_02214108:
+ bl MOD12_02233560
+_0221410C:
+ ldr r0, [r4, #0x48]
+ mov r1, #2
+ bl MOD08_02214850
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+ b _02214122
+_0221411C:
+ add sp, #0x10
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02214122:
+ mov r0, #1
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02214128: .word 0x04000050
+_0221412C: .word 0x04000052
+
+ thumb_func_start MOD08_02214130
+MOD08_02214130: ; 0x02214130
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ ldrb r0, [r4, #5]
+ cmp r0, #0
+ beq _02214142
+ cmp r0, #1
+ beq _022141BE
+ b _0221423A
+_02214142:
+ ldrb r0, [r4, #0xd]
+ ldr r2, [r4, #0x48]
+ cmp r0, #0
+ bne _02214180
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ mov r5, #0x67
+ add r0, r2, #0
+ str r3, [sp, #8]
+ lsl r5, r5, #2
+ ldr r2, [r2, r5]
+ add r0, #0xc8
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ mov r1, #1
+ lsr r2, r2, #0x10
+ bl FUN_02003210
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, [r4, #0x48]
+ add r2, r5, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ add r2, #0x64
+ mov r3, #0x10
+ bl FUN_02003A64
+ b _022141B8
+_02214180:
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, _02214254 ; =0x0000FFFF
+ mov r5, #0x67
+ str r0, [sp, #8]
+ add r0, r2, #0
+ lsl r5, r5, #2
+ ldr r2, [r2, r5]
+ add r0, #0xc8
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ mov r1, #1
+ lsr r2, r2, #0x10
+ bl FUN_02003210
+ ldr r0, _02214254 ; =0x0000FFFF
+ add r2, r5, #0
+ str r0, [sp]
+ ldr r0, [r4, #0x48]
+ mov r1, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ add r2, #0x64
+ mov r3, #0x10
+ bl FUN_02003A64
+_022141B8:
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+_022141BE:
+ ldr r0, [r4, #0x48]
+ add r0, #0xc8
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0221424E
+ ldr r0, [r4, #0x48]
+ mov r2, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_020170F4
+ ldr r1, [r4, #0x48]
+ ldr r3, [r4, #0x10]
+ add r0, r4, #0
+ mov r2, #3
+ bl MOD08_02213C94
+ ldrb r0, [r4, #0xd]
+ cmp r0, #0
+ bne _02214208
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ ldr r0, [r4, #0x48]
+ mov r1, #1
+ add r0, #0xc8
+ ldr r0, [r0]
+ lsl r2, r1, #9
+ bl FUN_02003210
+ b _02214222
+_02214208:
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ ldr r0, _02214254 ; =0x0000FFFF
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x48]
+ mov r1, #1
+ add r0, #0xc8
+ ldr r0, [r0]
+ lsl r2, r1, #9
+ bl FUN_02003210
+_02214222:
+ add r0, r4, #0
+ bl MOD08_02213D50
+ mov r0, #0x5f
+ ldr r1, [r4, #0x48]
+ mov r2, #2
+ lsl r0, r0, #2
+ strb r2, [r1, r0]
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+ b _0221424E
+_0221423A:
+ ldr r0, [r4, #0x48]
+ add r0, #0xc8
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0221424E
+ add sp, #0xc
+ mov r0, #0
+ pop {r4, r5, pc}
+_0221424E:
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02214254: .word 0x0000FFFF
+
+ thumb_func_start MOD08_02214258
+MOD08_02214258: ; 0x02214258
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ ldrb r0, [r4, #5]
+ cmp r0, #3
+ bls _02214266
+ b _02214462
+_02214266:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02214272: ; jump table
+ .short _0221427A - _02214272 - 2 ; case 0
+ .short _02214286 - _02214272 - 2 ; case 1
+ .short _02214300 - _02214272 - 2 ; case 2
+ .short _022143F0 - _02214272 - 2 ; case 3
+_0221427A:
+ add r0, r4, #0
+ bl MOD08_02213D50
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+_02214286:
+ ldrb r0, [r4, #0xd]
+ cmp r0, #0
+ bne _022142C2
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ ldr r0, [r4, #0x48]
+ mov r1, #1
+ add r0, #0xc8
+ ldr r0, [r0]
+ lsl r2, r1, #9
+ bl FUN_02003210
+ ldr r3, [r4, #0x48]
+ mov r1, #0
+ mov r2, #0x67
+ add r0, r3, #0
+ str r1, [sp]
+ lsl r2, r2, #2
+ ldr r2, [r3, r2]
+ add r0, #0xc8
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ lsr r2, r2, #0x10
+ mov r3, #0x10
+ bl FUN_02003A64
+ b _022142FA
+_022142C2:
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, _0221448C ; =0x0000FFFF
+ mov r1, #1
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x48]
+ lsl r2, r1, #9
+ add r0, #0xc8
+ ldr r0, [r0]
+ bl FUN_02003210
+ mov r2, #0x67
+ ldr r3, [r4, #0x48]
+ ldr r0, _0221448C ; =0x0000FFFF
+ lsl r2, r2, #2
+ str r0, [sp]
+ add r0, r3, #0
+ ldr r2, [r3, r2]
+ add r0, #0xc8
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ mov r1, #0
+ lsr r2, r2, #0x10
+ mov r3, #0x10
+ bl FUN_02003A64
+_022142FA:
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+_02214300:
+ ldr r0, [r4, #0x48]
+ add r0, #0xc8
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _02214310
+ b _02214486
+_02214310:
+ add r0, r4, #0
+ add r0, #0x44
+ ldrh r0, [r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _02214324
+ ldr r0, [r4, #0x48]
+ bl MOD08_02214524
+_02214324:
+ add r0, r4, #0
+ add r0, #0x44
+ ldrh r0, [r0]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _02214338
+ ldr r0, [r4, #0x48]
+ bl MOD08_02214524
+_02214338:
+ mov r0, #3
+ mov r1, #0
+ bl FUN_0201797C
+ ldr r0, [r4, #0x48]
+ bl MOD08_02212004
+ cmp r0, #0
+ bne _0221436A
+ ldr r0, [r4, #0x48]
+ mov r1, #3
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r2, #0
+ mov r3, #1
+ bl FUN_020170F4
+ ldr r0, [r4, #0x48]
+ mov r1, #3
+ bl MOD08_02215638
+ ldr r0, [r4, #0x48]
+ bl MOD08_02215660
+ b _022143BE
+_0221436A:
+ ldr r2, [r4, #0x48]
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r2]
+ mov r1, #0x61
+ lsl r1, r1, #2
+ str r0, [sp, #0xc]
+ ldr r0, [r2, r1]
+ add r1, r1, #4
+ ldr r1, [r2, r1]
+ add r2, #0xc4
+ ldr r2, [r2]
+ mov r3, #3
+ bl FUN_0200687C
+ mov r2, #0x66
+ lsl r2, r2, #2
+ add r1, r2, #0
+ ldr r3, [r4, #0x48]
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [r3, r2]
+ sub r1, #0x14
+ lsl r0, r0, #5
+ str r0, [sp, #4]
+ sub r0, r2, #4
+ ldr r0, [r3, r0]
+ sub r2, #0xc
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ add r0, r3, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ ldr r1, [r3, r1]
+ ldr r2, [r3, r2]
+ ldr r3, [r3]
+ bl FUN_020030E8
+_022143BE:
+ ldr r2, [r4, #0x48]
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r2]
+ mov r1, #0x61
+ lsl r1, r1, #2
+ str r0, [sp, #0xc]
+ ldr r0, [r2, r1]
+ add r1, #0xc
+ ldr r1, [r2, r1]
+ add r2, #0xc4
+ ldr r2, [r2]
+ mov r3, #3
+ bl FUN_020068C8
+ mov r0, #3
+ mov r1, #1
+ bl FUN_0201797C
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+_022143F0:
+ ldr r0, [r4, #0x48]
+ mov r2, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_020179E0
+ ldr r0, [r4, #0x48]
+ mov r1, #3
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_020179E0
+ ldrb r0, [r4, #0xd]
+ ldr r2, [r4, #0x48]
+ cmp r0, #0
+ bne _0221443A
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ str r3, [sp, #4]
+ mov r5, #0x67
+ add r0, r2, #0
+ str r3, [sp, #8]
+ lsl r5, r5, #2
+ ldr r2, [r2, r5]
+ add r0, #0xc8
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ mov r1, #1
+ lsr r2, r2, #0x10
+ bl FUN_02003210
+ b _0221445C
+_0221443A:
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ mov r5, #0x67
+ ldr r0, _0221448C ; =0x0000FFFF
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r2, #0
+ lsl r5, r5, #2
+ ldr r2, [r2, r5]
+ add r0, #0xc8
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ mov r1, #1
+ lsr r2, r2, #0x10
+ bl FUN_02003210
+_0221445C:
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+_02214462:
+ ldr r0, [r4, #0x48]
+ add r0, #0xc8
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02214486
+ mov r0, #0x5f
+ ldr r1, [r4, #0x48]
+ mov r2, #2
+ lsl r0, r0, #2
+ strb r2, [r1, r0]
+ ldrb r0, [r4, #5]
+ add sp, #0x10
+ add r0, r0, #1
+ strb r0, [r4, #5]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02214486:
+ mov r0, #1
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221448C: .word 0x0000FFFF
+
+ thumb_func_start MOD08_02214490
+MOD08_02214490: ; 0x02214490
+ push {r3, lr}
+ add r0, r1, #0
+ bl MOD08_02213D50
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD08_0221449C
+MOD08_0221449C: ; 0x0221449C
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD08_02213D50
+ add r0, r4, #0
+ add r0, #0x44
+ ldrh r0, [r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _022144BA
+ ldr r0, [r4, #0x48]
+ bl MOD08_02214524
+_022144BA:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022144C0
+MOD08_022144C0: ; 0x022144C0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x18]
+ cmp r0, #1
+ bne _022144DA
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+_022144DA:
+ mov r3, #4
+ mov r1, #8
+ ldrsh r2, [r4, r3]
+ ldrsh r0, [r4, r1]
+ add r0, r2, r0
+ strh r0, [r4, #4]
+ mov r0, #6
+ ldrsh r2, [r4, r0]
+ mov r0, #0xa
+ ldrsh r0, [r4, r0]
+ add r0, r2, r0
+ strh r0, [r4, #6]
+ ldrsh r0, [r4, r1]
+ cmp r0, #0
+ beq _02214508
+ ldr r1, [r4, #0xc]
+ ldrsh r3, [r4, r3]
+ lsl r1, r1, #0x18
+ ldr r0, [r4]
+ lsr r1, r1, #0x18
+ mov r2, #0
+ bl FUN_020179E0
+_02214508:
+ mov r0, #0xa
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ beq _02214522
+ ldr r1, [r4, #0xc]
+ mov r3, #6
+ lsl r1, r1, #0x18
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4]
+ lsr r1, r1, #0x18
+ mov r2, #3
+ bl FUN_020179E0
+_02214522:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02214524
+MOD08_02214524: ; 0x02214524
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221452E
+ bl ErrorHandling
+_0221452E:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ beq _0221453C
+ mov r0, #1
+ str r0, [r1, #0x18]
+_0221453C:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02214540
+MOD08_02214540: ; 0x02214540
+ mov r1, #0x67
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD08_02214548
+MOD08_02214548: ; 0x02214548
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD08_0221454C
+MOD08_0221454C: ; 0x0221454C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x48]
+ mov r1, #0x20
+ ldr r0, [r0]
+ bl AllocFromHeap
+ add r4, r0, #0
+ ldr r0, [r5, #0x48]
+ mov r2, #6
+ add r0, #0xc4
+ ldr r0, [r0]
+ str r0, [r4]
+ ldr r0, [r5, #0x48]
+ add r0, #0x9c
+ ldr r0, [r0]
+ strh r0, [r4, #4]
+ ldr r0, [r5, #0x48]
+ add r0, #0xa0
+ ldr r0, [r0]
+ strh r0, [r4, #6]
+ ldr r0, [r5, #0x48]
+ add r0, #0x94
+ ldr r0, [r0]
+ strh r0, [r4, #8]
+ ldr r0, [r5, #0x48]
+ add r0, #0x98
+ ldr r0, [r0]
+ strh r0, [r4, #0xa]
+ mov r0, #3
+ str r0, [r4, #0xc]
+ str r0, [r4, #0x10]
+ ldr r1, [r5, #0x48]
+ add r0, r5, #0
+ bl MOD08_02213C40
+ cmp r0, #1
+ bne _022145C0
+ mov r0, #8
+ ldrsh r1, [r4, r0]
+ sub r0, #9
+ mul r0, r1
+ strh r0, [r4, #8]
+ mov r0, #0xa
+ ldrsh r1, [r4, r0]
+ sub r0, #0xb
+ mul r0, r1
+ strh r0, [r4, #0xa]
+ mov r0, #4
+ ldrsh r1, [r4, r0]
+ sub r0, r0, #5
+ mul r0, r1
+ strh r0, [r4, #4]
+ mov r0, #6
+ ldrsh r1, [r4, r0]
+ sub r0, r0, #7
+ mul r0, r1
+ strh r0, [r4, #6]
+_022145C0:
+ mov r0, #1
+ str r0, [r4, #0x14]
+ mov r1, #0
+ str r1, [r4, #0x18]
+ mov r1, #6
+ ldr r2, [r5, #0x48]
+ lsl r1, r1, #6
+ str r4, [r2, r1]
+ add r1, r5, #0
+ add r1, #0x44
+ ldrh r2, [r1]
+ mov r1, #1
+ add r5, #0x44
+ bic r2, r1
+ orr r0, r2
+ strh r0, [r5]
+ ldr r0, _022145F0 ; =MOD08_022144C0
+ ldr r2, _022145F4 ; =0x00001001
+ add r1, r4, #0
+ bl FUN_0200CA44
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_022145F0: .word MOD08_022144C0
+_022145F4: .word 0x00001001
+
+ thumb_func_start MOD08_022145F8
+MOD08_022145F8: ; 0x022145F8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ ldr r4, [r0, #0x48]
+ str r0, [sp]
+ ldr r0, [r4]
+ mov r1, #0x20
+ bl AllocFromHeap
+ add r6, r0, #0
+ ldr r0, [r4]
+ mov r1, #0xc4
+ bl AllocFromHeap
+ str r0, [r6, #0x1c]
+ mov r0, #6
+ lsl r0, r0, #6
+ str r6, [r4, r0]
+ ldr r0, [sp]
+ mov r1, #2
+ add r0, #0x44
+ ldrh r0, [r0]
+ add r2, r0, #0
+ ldr r0, [sp]
+ orr r2, r1
+ add r0, #0x44
+ strh r2, [r0]
+ mov r0, #0
+ str r0, [r6, #0x18]
+ add r0, r4, #0
+ bl MOD08_022155C4
+ bl MOD08_022189A0
+ add r5, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD08_02218998
+ add r1, r0, #0
+ ldr r2, [r4]
+ add r0, r5, #0
+ bl MOD08_022187F4
+ mov r4, #0
+ ldr r1, [r6, #0x1c]
+ ldr r7, _022146C8 ; =0x0222AAF8
+ add r1, #0xc0
+ str r0, [r1]
+ str r4, [sp, #4]
+ add r5, r4, #0
+_0221465C:
+ ldr r0, [r6, #0x1c]
+ strh r4, [r0, r5]
+ ldr r0, [r6, #0x1c]
+ add r1, r0, r5
+ ldrsh r0, [r0, r5]
+ add r0, #8
+ strh r0, [r1, #2]
+ mov r0, #0
+ ldrsh r1, [r7, r0]
+ ldr r0, [r6, #0x1c]
+ add r0, r0, r5
+ strh r1, [r0, #4]
+ ldr r0, [r6, #0x1c]
+ add r1, r0, r5
+ mov r0, #0
+ strh r0, [r1, #6]
+ add r1, r0, #0
+ bl MOD08_02218998
+ ldr r1, [r6, #0x1c]
+ mov r2, #6
+ add r1, r1, r5
+ str r0, [r1, #8]
+ ldr r0, [sp]
+ add r1, r0, #0
+ ldr r1, [r1, #0x48]
+ bl MOD08_02213C40
+ cmp r0, #1
+ bne _022146A6
+ ldr r0, [r6, #0x1c]
+ mov r1, #4
+ add r0, r0, r5
+ ldrsh r2, [r0, r1]
+ sub r1, r1, #5
+ mul r1, r2
+ strh r1, [r0, #4]
+_022146A6:
+ ldr r0, [sp, #4]
+ add r4, #8
+ add r0, r0, #1
+ add r5, #0xc
+ add r7, r7, #2
+ str r0, [sp, #4]
+ cmp r0, #0x10
+ blt _0221465C
+ mov r2, #1
+ ldr r0, _022146CC ; =MOD08_022146E4
+ add r1, r6, #0
+ lsl r2, r2, #0xc
+ bl FUN_0200CA44
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022146C8: .word 0x0222AAF8
+_022146CC: .word MOD08_022146E4
+
+ thumb_func_start MOD08_022146D0
+MOD08_022146D0: ; 0x022146D0
+ add r1, r0, #0
+ add r1, #0x44
+ ldrh r2, [r1]
+ mov r1, #2
+ add r0, #0x44
+ orr r1, r2
+ strh r1, [r0]
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022146E4
+MOD08_022146E4: ; 0x022146E4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ add r6, r0, #0
+ ldr r0, [r5, #0x18]
+ ldr r4, [r5, #0x1c]
+ cmp r0, #1
+ bne _02214712
+ add r4, #0xc0
+ ldr r0, [r4]
+ bl MOD08_02218870
+ ldr r0, [r5, #0x1c]
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FreeToHeap
+ add r0, r6, #0
+ bl FUN_0200CAB4
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02214712:
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ bl MOD08_02218894
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+_02214722:
+ mov r0, #6
+ ldrsh r1, [r4, r0]
+ mov r0, #4
+ ldrsh r0, [r4, r0]
+ add r0, r1, r0
+ strh r0, [r4, #6]
+ mov r0, #0
+ ldrsh r6, [r4, r0]
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ cmp r6, r0
+ bge _0221476A
+ ldr r0, [sp]
+ lsl r1, r6, #2
+ add r5, r0, r1
+ mov r7, #2
+_02214742:
+ ldr r1, [r4, #8]
+ mov r2, #6
+ lsl r0, r1, #0x10
+ asr r1, r1, #0x10
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ lsl r1, r1, #0x10
+ ldrsh r2, [r4, r2]
+ asr r0, r0, #0x10
+ lsr r1, r1, #0x10
+ add r0, r0, r2
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl MOD08_02218998
+ stmia r5!, {r0}
+ ldrsh r0, [r4, r7]
+ add r6, r6, #1
+ cmp r6, r0
+ blt _02214742
+_0221476A:
+ ldr r0, [sp, #4]
+ add r4, #0xc
+ add r0, r0, #1
+ str r0, [sp, #4]
+ cmp r0, #0x10
+ blt _02214722
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221477C
+MOD08_0221477C: ; 0x0221477C
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ mov r1, #2
+ add r5, r0, #0
+ bl MOD08_02215600
+ add r1, r0, #0
+ lsl r0, r4, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ mov r1, #0
+ bl FUN_0201797C
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _022147C0
+ add r0, r5, #0
+ add r0, #0xc4
+ lsl r1, r4, #0x18
+ ldr r0, [r0]
+ lsr r1, r1, #0x18
+ mov r2, #2
+ mov r3, #4
+ bl FUN_020170F4
+ b _022147E4
+_022147C0:
+ add r0, r5, #0
+ add r0, #0xc4
+ lsl r1, r4, #0x18
+ ldr r0, [r0]
+ lsr r1, r1, #0x18
+ mov r2, #0
+ mov r3, #1
+ bl FUN_020170F4
+ add r0, r5, #0
+ add r0, #0xc4
+ lsl r1, r4, #0x18
+ ldr r0, [r0]
+ lsr r1, r1, #0x18
+ mov r2, #2
+ mov r3, #4
+ bl FUN_020170F4
+_022147E4:
+ add r0, r5, #0
+ add r0, #0xc4
+ lsl r1, r4, #0x18
+ ldr r0, [r0]
+ lsr r1, r1, #0x18
+ bl FUN_02018744
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02214822
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ mov r1, #0x61
+ add r2, r5, #0
+ lsl r1, r1, #2
+ str r0, [sp, #0xc]
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ add r2, #0xc4
+ ldr r1, [r5, r1]
+ ldr r2, [r2]
+ add r3, r4, #0
+ bl FUN_0200687C
+ b _0221482A
+_02214822:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02215638
+_0221482A:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ mov r1, #0x61
+ lsl r1, r1, #2
+ str r0, [sp, #0xc]
+ ldr r0, [r5, r1]
+ add r1, #0xc
+ ldr r1, [r5, r1]
+ add r5, #0xc4
+ ldr r2, [r5]
+ add r3, r4, #0
+ bl FUN_020068C8
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02214850
+MOD08_02214850: ; 0x02214850
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r1, #1
+ add r5, r0, #0
+ bl MOD08_02215600
+ add r1, r0, #0
+ lsl r0, r4, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02214888
+ add r0, r5, #0
+ add r0, #0xc4
+ lsl r1, r4, #0x18
+ ldr r0, [r0]
+ lsr r1, r1, #0x18
+ mov r2, #2
+ mov r3, #3
+ bl FUN_020170F4
+ b _022148AC
+_02214888:
+ add r0, r5, #0
+ add r0, #0xc4
+ lsl r1, r4, #0x18
+ mov r2, #0
+ ldr r0, [r0]
+ lsr r1, r1, #0x18
+ add r3, r2, #0
+ bl FUN_020170F4
+ add r0, r5, #0
+ add r0, #0xc4
+ lsl r1, r4, #0x18
+ ldr r0, [r0]
+ lsr r1, r1, #0x18
+ mov r2, #2
+ mov r3, #3
+ bl FUN_020170F4
+_022148AC:
+ add r5, #0xc4
+ lsl r1, r4, #0x18
+ ldr r0, [r5]
+ lsr r1, r1, #0x18
+ bl FUN_02018744
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022148BC
+MOD08_022148BC: ; 0x022148BC
+ add r1, r0, #0
+ add r1, #0x44
+ ldrh r2, [r1]
+ mov r1, #1
+ add r0, #0x44
+ bic r2, r1
+ mov r1, #1
+ orr r1, r2
+ strh r1, [r0]
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022148D4
+MOD08_022148D4: ; 0x022148D4
+ push {r3, lr}
+ ldr r0, [r0, #0x48]
+ bl MOD08_02214524
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD08_022148E0
+MOD08_022148E0: ; 0x022148E0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r2, [r4, #0x14]
+ add r5, r0, #0
+ lsl r3, r2, #2
+ ldr r2, _0221490C ; =0x0222AA64
+ ldr r2, [r2, r3]
+ blx r2
+ cmp r0, #0
+ bne _0221490A
+ mov r0, #0x5f
+ ldr r1, [r4, #0x48]
+ mov r2, #0
+ lsl r0, r0, #2
+ strb r2, [r1, r0]
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0221490A:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221490C: .word 0x0222AA64
+
+ thumb_func_start MOD08_02214910
+MOD08_02214910: ; 0x02214910
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD08_02213DA8
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ strb r0, [r4, #0xd]
+ ldr r0, [r5, #0x18]
+ ldr r2, _02214954 ; =0x0000044C
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ str r0, [r4, #0x10]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r1, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ lsl r0, r1, #0x10
+ lsr r0, r0, #0x10
+ str r0, [r4, #0x14]
+ ldr r0, _02214958 ; =0xFFFF0000
+ and r0, r1
+ lsr r0, r0, #0x10
+ str r0, [r4, #0x18]
+ ldr r0, _0221495C ; =MOD08_022148E0
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02214954: .word 0x0000044C
+_02214958: .word 0xFFFF0000
+_0221495C: .word MOD08_022148E0
+
+ thumb_func_start MOD08_02214960
+MOD08_02214960: ; 0x02214960
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r3, [r1]
+ add r2, r1, #4
+ str r2, [r0, #0x18]
+ ldr r1, [r2]
+ add r2, r2, #4
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ str r2, [r0, #0x18]
+ cmp r3, #3
+ bhi _022149B4
+ add r2, r3, r3
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02214986: ; jump table
+ .short _0221498E - _02214986 - 2 ; case 0
+ .short _02214998 - _02214986 - 2 ; case 1
+ .short _022149A2 - _02214986 - 2 ; case 2
+ .short _022149AC - _02214986 - 2 ; case 3
+_0221498E:
+ mov r2, #6
+ lsl r2, r2, #6
+ ldr r0, [r0, r2]
+ strh r1, [r0, #8]
+ bx lr
+_02214998:
+ mov r2, #6
+ lsl r2, r2, #6
+ ldr r0, [r0, r2]
+ strh r1, [r0, #0xa]
+ bx lr
+_022149A2:
+ mov r2, #6
+ lsl r2, r2, #6
+ ldr r0, [r0, r2]
+ strh r1, [r0, #4]
+ bx lr
+_022149AC:
+ mov r2, #6
+ lsl r2, r2, #6
+ ldr r0, [r0, r2]
+ strh r1, [r0, #4]
+_022149B4:
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022149B8
+MOD08_022149B8: ; 0x022149B8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD08_02213DA8
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ strb r0, [r4, #0xd]
+ ldr r0, [r5, #0x18]
+ ldr r2, _02214A00 ; =0x0000044C
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ str r0, [r4, #0x10]
+ ldr r0, [r5, #0x18]
+ add r1, r0, #4
+ str r1, [r5, #0x18]
+ ldr r0, [r1]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ lsl r1, r0, #0x10
+ lsr r1, r1, #0x10
+ add r1, r1, #3
+ str r1, [r4, #0x14]
+ ldr r1, _02214A04 ; =0xFFFF0000
+ and r0, r1
+ lsr r0, r0, #0x10
+ str r0, [r4, #0x18]
+ ldr r0, _02214A08 ; =MOD08_022148E0
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+ nop
+_02214A00: .word 0x0000044C
+_02214A04: .word 0xFFFF0000
+_02214A08: .word MOD08_022148E0
+
+ thumb_func_start MOD08_02214A0C
+MOD08_02214A0C: ; 0x02214A0C
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ ldrb r1, [r0, r1]
+ cmp r1, #2
+ bne _02214A24
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ mov r1, #0
+ add r0, #0x8d
+ strb r1, [r0]
+ bx lr
+_02214A24:
+ mov r1, #1
+ add r0, #0x8d
+ strb r1, [r0]
+ bx lr
+
+ thumb_func_start MOD08_02214A2C
+MOD08_02214A2C: ; 0x02214A2C
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ ldrb r1, [r0, r1]
+ cmp r1, #0
+ bne _02214A44
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ mov r1, #0
+ add r0, #0x8d
+ strb r1, [r0]
+ bx lr
+_02214A44:
+ mov r1, #1
+ add r0, #0x8d
+ strb r1, [r0]
+ bx lr
+
+ thumb_func_start MOD08_02214A4C
+MOD08_02214A4C: ; 0x02214A4C
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ mov r1, #0
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r4, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ add r0, r4, #0
+ bl MOD08_022156AC
+ add r1, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ add r2, r5, #0
+ str r0, [sp, #0xc]
+ add r2, #0xc4
+ ldr r2, [r2]
+ mov r0, #7
+ mov r3, #3
+ bl FUN_0200687C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD08_022156AC
+ mov r2, #0
+ str r2, [sp]
+ add r1, r0, #0
+ ldr r0, [r5]
+ add r3, r2, #0
+ str r0, [sp, #4]
+ mov r0, #7
+ bl FUN_02006930
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD08_022156AC
+ add r1, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ add r5, #0xc4
+ str r0, [sp, #0xc]
+ ldr r2, [r5]
+ mov r0, #7
+ mov r3, #3
+ bl FUN_020068C8
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02214AC8
+MOD08_02214AC8: ; 0x02214AC8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ bl MOD08_02213DA8
+ add r4, r0, #0
+ ldr r0, [r5, #0x18]
+ add r1, r0, #4
+ str r1, [r5, #0x18]
+ ldr r0, [r1]
+ str r0, [sp]
+ add r0, r1, #4
+ str r0, [r5, #0x18]
+ ldr r7, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r6, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02214AFA
+ str r6, [r4, #0x10]
+ b _02214B12
+_02214AFA:
+ add r0, r5, #0
+ add r5, #0xc0
+ ldr r1, [r5]
+ ldrh r1, [r1, #0x16]
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _02214B0E
+ str r7, [r4, #0x10]
+ b _02214B12
+_02214B0E:
+ ldr r0, [sp]
+ str r0, [r4, #0x10]
+_02214B12:
+ ldr r0, _02214B20 ; =MOD08_022148E0
+ ldr r2, _02214B24 ; =0x0000044C
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02214B20: .word MOD08_022148E0
+_02214B24: .word 0x0000044C
+
+ thumb_func_start MOD08_02214B28
+MOD08_02214B28: ; 0x02214B28
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02214B2C
+MOD08_02214B2C: ; 0x02214B2C
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02214B30
+MOD08_02214B30: ; 0x02214B30
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02214B34
+MOD08_02214B34: ; 0x02214B34
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02214B38
+MOD08_02214B38: ; 0x02214B38
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02214B3C
+MOD08_02214B3C: ; 0x02214B3C
+ ldr r1, [r0, #0x18]
+ ldr r3, _02214B50 ; =FUN_020054C8
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r2, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ lsl r0, r2, #0x10
+ lsr r0, r0, #0x10
+ bx r3
+ .align 2, 0
+_02214B50: .word FUN_020054C8
+
+ thumb_func_start MOD08_02214B54
+MOD08_02214B54: ; 0x02214B54
+ ldr r1, [r0, #0x18]
+ ldr r3, _02214B6C ; =FUN_020054F0
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r2, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ lsl r0, r2, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #0
+ bx r3
+ nop
+_02214B6C: .word FUN_020054F0
+
+ thumb_func_start MOD08_02214B70
+MOD08_02214B70: ; 0x02214B70
+ push {r3, r4, r5, lr}
+ ldr r1, [r0, #0x18]
+ add r2, r1, #4
+ str r2, [r0, #0x18]
+ ldr r1, [r2]
+ lsl r1, r1, #0x10
+ lsr r4, r1, #0x10
+ add r1, r2, #4
+ str r1, [r0, #0x18]
+ ldr r2, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ lsl r1, r2, #0x18
+ asr r1, r1, #0x18
+ bl MOD08_02215354
+ add r5, r0, #0
+ add r0, r4, #0
+ bl FUN_020054C8
+ ldr r1, _02214BA4 ; =0x0000FFFF
+ add r0, r4, #0
+ add r2, r5, #0
+ bl FUN_02005530
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02214BA4: .word 0x0000FFFF
+
+ thumb_func_start MOD08_02214BA8
+MOD08_02214BA8: ; 0x02214BA8
+ push {r3, lr}
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r2, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ lsl r1, r2, #0x18
+ asr r1, r1, #0x18
+ bl MOD08_02215354
+ bl FUN_0200554C
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02214BC4
+MOD08_02214BC4: ; 0x02214BC4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD08_0221252C
+ mov r1, #0
+ mov r2, #0x3c
+ add r4, r0, #0
+ bl memset
+ mov r0, #1
+ strb r0, [r4]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ strh r0, [r4, #0x1a]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ str r0, [r4, #8]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ str r0, [r4, #0xc]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ str r0, [r4, #0x10]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ strb r0, [r4, #3]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r1, [r4, #8]
+ add r0, r5, #0
+ lsl r1, r1, #0x18
+ asr r1, r1, #0x18
+ bl MOD08_02215354
+ str r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ add r0, r5, #0
+ lsl r1, r1, #0x18
+ asr r1, r1, #0x18
+ bl MOD08_02215354
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ ldr r2, [r4, #0x10]
+ lsl r0, r0, #0x18
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0x18
+ asr r0, r0, #0x18
+ asr r1, r1, #0x18
+ asr r2, r2, #0x18
+ bl MOD08_0221540C
+ str r0, [r4, #0x10]
+ ldrh r0, [r4, #0x1a]
+ bl FUN_020054C8
+ ldrh r0, [r4, #0x1a]
+ ldr r1, _02214C60 ; =0x0000FFFF
+ ldr r2, [r4, #8]
+ bl FUN_02005530
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_0221255C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02214C60: .word 0x0000FFFF
+
+ thumb_func_start MOD08_02214C64
+MOD08_02214C64: ; 0x02214C64
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD08_0221252C
+ mov r1, #0
+ mov r2, #0x3c
+ add r4, r0, #0
+ bl memset
+ mov r0, #2
+ strb r0, [r4]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ strh r0, [r4, #0x1a]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [r4, #8]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [r4, #0xc]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [r4, #0x10]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ strb r0, [r4, #3]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldrh r0, [r4, #0x1a]
+ bl FUN_020054C8
+ ldrh r0, [r4, #0x1a]
+ ldr r1, _02214CD8 ; =0x0000FFFF
+ ldr r2, [r4, #8]
+ bl FUN_02005530
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_0221255C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02214CD8: .word 0x0000FFFF
+
+ thumb_func_start MOD08_02214CDC
+MOD08_02214CDC: ; 0x02214CDC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD08_0221252C
+ mov r1, #0
+ mov r2, #0x3c
+ add r4, r0, #0
+ bl memset
+ mov r0, #1
+ strb r0, [r4]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ strh r0, [r4, #0x1a]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [r4, #8]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [r4, #0xc]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [r4, #0x10]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ strb r0, [r4, #3]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r1, [r4, #8]
+ add r0, r5, #0
+ lsl r1, r1, #0x18
+ asr r1, r1, #0x18
+ bl MOD08_02215354
+ str r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ add r0, r5, #0
+ lsl r1, r1, #0x18
+ asr r1, r1, #0x18
+ bl MOD08_02215354
+ str r0, [r4, #0xc]
+ ldr r1, [r4, #0x10]
+ add r0, r5, #0
+ lsl r1, r1, #0x18
+ asr r1, r1, #0x18
+ bl MOD08_02215354
+ str r0, [r4, #0x10]
+ ldrh r0, [r4, #0x1a]
+ bl FUN_020054C8
+ ldrh r0, [r4, #0x1a]
+ ldr r1, _02214D7C ; =0x0000FFFF
+ ldr r2, [r4, #8]
+ bl FUN_02005530
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_0221255C
+ pop {r3, r4, r5, pc}
+ nop
+_02214D7C: .word 0x0000FFFF
+
+ thumb_func_start MOD08_02214D80
+MOD08_02214D80: ; 0x02214D80
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD08_0221252C
+ mov r1, #0
+ mov r2, #0x3c
+ add r4, r0, #0
+ bl memset
+ mov r0, #4
+ strb r0, [r4]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ strh r0, [r4, #0x1a]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [r4, #0x14]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ strb r0, [r4, #3]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ strb r0, [r4, #0x18]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldrb r0, [r4, #3]
+ strb r0, [r4, #4]
+ ldr r1, [r4, #0x14]
+ add r0, r5, #0
+ lsl r1, r1, #0x18
+ asr r1, r1, #0x18
+ bl MOD08_02215354
+ str r0, [r4, #0x14]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_0221255C
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02214DE4
+MOD08_02214DE4: ; 0x02214DE4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD08_0221252C
+ mov r1, #0
+ mov r2, #0x3c
+ add r4, r0, #0
+ bl memset
+ mov r0, #5
+ strb r0, [r4]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ strh r0, [r4, #0x1a]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [r4, #0x14]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r0]
+ strb r0, [r4, #3]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r1, [r4, #0x14]
+ add r0, r5, #0
+ lsl r1, r1, #0x18
+ asr r1, r1, #0x18
+ bl MOD08_02215354
+ str r0, [r4, #0x14]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_0221255C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02214E3C
+MOD08_02214E3C: ; 0x02214E3C
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02214E40
+MOD08_02214E40: ; 0x02214E40
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x90
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _02214E5C
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0x8d
+ strb r1, [r0]
+ ldr r0, _02214E94 ; =0x0000017D
+ mov r1, #0
+ strb r1, [r4, r0]
+ pop {r4, pc}
+_02214E5C:
+ bl FUN_02005514
+ cmp r0, #0
+ beq _02214E80
+ ldr r0, _02214E94 ; =0x0000017D
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ ldrb r1, [r4, r0]
+ cmp r1, #0x5a
+ bls _02214E78
+ mov r1, #0
+ strb r1, [r4, r0]
+ pop {r4, pc}
+_02214E78:
+ mov r0, #1
+ add r4, #0x8d
+ strb r0, [r4]
+ pop {r4, pc}
+_02214E80:
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x8d
+ strb r1, [r0]
+ ldr r0, _02214E94 ; =0x0000017D
+ strb r1, [r4, r0]
+ ldr r0, [r4, #0x18]
+ add r0, r0, #4
+ str r0, [r4, #0x18]
+ pop {r4, pc}
+ .align 2, 0
+_02214E94: .word 0x0000017D
+
+ thumb_func_start MOD08_02214E98
+MOD08_02214E98: ; 0x02214E98
+ push {r3, lr}
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r3, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r2, [r1]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ lsl r0, r2, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp]
+ lsl r3, r3, #0x10
+ ldr r0, _02214EC4 ; =0x04001050
+ mov r1, #1
+ mov r2, #2
+ lsr r3, r3, #0x10
+ bl G2x_SetBlendAlpha_
+ pop {r3, pc}
+ nop
+_02214EC4: .word 0x04001050
+
+ thumb_func_start MOD08_02214EC8
+MOD08_02214EC8: ; 0x02214EC8
+ ldr r3, _02214ECC ; =MOD08_0221268C
+ bx r3
+ .align 2, 0
+_02214ECC: .word MOD08_0221268C
+
+ thumb_func_start MOD08_02214ED0
+MOD08_02214ED0: ; 0x02214ED0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02214ED4
+MOD08_02214ED4: ; 0x02214ED4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ add r6, r5, #0
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r1, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r7, [r0]
+ add r0, r0, #4
+ lsl r4, r1, #2
+ add r6, #0xcc
+ str r0, [r5, #0x18]
+ ldr r0, [r6, r4]
+ cmp r0, #0
+ beq _02214EFC
+ bl ErrorHandling
+_02214EFC:
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, #0xac
+ ldr r0, [r0]
+ bl FUN_0200BB34
+ str r0, [r6, r4]
+ ldr r0, [r6, r4]
+ cmp r0, #0
+ bne _02214F16
+ bl ErrorHandling
+_02214F16:
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, [r6, r4]
+ add r0, #0xac
+ ldr r0, [r0]
+ add r2, r7, #0
+ bl FUN_0200BBF0
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, #0xac
+ ldr r0, [r0]
+ bl FUN_0200BB68
+ mov r2, #0x11
+ mov r1, #0
+ lsl r2, r2, #0x10
+ bl FUN_02008D24
+ add r0, r5, #0
+ mov r1, #0
+ add r2, sp, #0
+ add r0, #0x18
+_02214F48:
+ ldr r3, [r5, #0x18]
+ add r1, r1, #1
+ ldr r3, [r3]
+ str r3, [r2]
+ ldr r3, [r0]
+ add r2, r2, #4
+ add r3, r3, #4
+ str r3, [r0]
+ cmp r1, #6
+ blt _02214F48
+ add r5, #0xc0
+ ldr r0, [r5]
+ ldr r1, [r6, r4]
+ add r0, #0xac
+ ldr r0, [r0]
+ add r2, sp, #0
+ bl FUN_0200BF60
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02214F70
+MOD08_02214F70: ; 0x02214F70
+ push {lr}
+ sub sp, #0xc
+ add r2, r0, #0
+ ldr r0, [r2, #0x18]
+ add r0, r0, #4
+ str r0, [r2, #0x18]
+ ldr r1, [r0]
+ add r0, r0, #4
+ str r0, [r2, #0x18]
+ ldr r3, [r0]
+ add r0, r0, #4
+ str r0, [r2, #0x18]
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02214FB0 ; =0x00001388
+ lsl r1, r1, #2
+ add r0, r3, r0
+ str r0, [sp, #8]
+ add r0, r2, #0
+ add r1, r2, r1
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r1, #0xcc
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x15
+ bl FUN_0200C00C
+ add sp, #0xc
+ pop {pc}
+ .align 2, 0
+_02214FB0: .word 0x00001388
+
+ thumb_func_start MOD08_02214FB4
+MOD08_02214FB4: ; 0x02214FB4
+ push {r4, lr}
+ sub sp, #0x18
+ add r4, r0, #0
+ ldr r0, [r4, #0x18]
+ add r0, r0, #4
+ str r0, [r4, #0x18]
+ ldr r3, [r0]
+ add r0, r0, #4
+ str r0, [r4, #0x18]
+ ldr r1, [r0]
+ add r2, r0, #4
+ str r2, [r4, #0x18]
+ ldr r0, [r2]
+ add r2, r2, #4
+ str r2, [r4, #0x18]
+ mov r2, #0x16
+ str r2, [sp]
+ str r1, [sp, #4]
+ mov r2, #0
+ str r2, [sp, #8]
+ mov r2, #1
+ str r2, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, _0221500C ; =0x00001388
+ add r2, r4, #0
+ add r0, r1, r0
+ str r0, [sp, #0x14]
+ add r2, #0xc0
+ ldr r2, [r2]
+ lsl r3, r3, #2
+ add r0, r4, #0
+ add r3, r4, r3
+ add r0, #0xc8
+ add r2, #0xac
+ add r3, #0xcc
+ ldr r0, [r0]
+ ldr r2, [r2]
+ ldr r3, [r3]
+ mov r1, #2
+ bl FUN_0200C0DC
+ add sp, #0x18
+ pop {r4, pc}
+ nop
+_0221500C: .word 0x00001388
+
+ thumb_func_start MOD08_02215010
+MOD08_02215010: ; 0x02215010
+ push {r3, lr}
+ sub sp, #8
+ add r2, r0, #0
+ ldr r0, [r2, #0x18]
+ add r0, r0, #4
+ str r0, [r2, #0x18]
+ ldr r1, [r0]
+ add r0, r0, #4
+ str r0, [r2, #0x18]
+ ldr r3, [r0]
+ add r0, r0, #4
+ str r0, [r2, #0x18]
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02215050 ; =0x00001388
+ lsl r1, r1, #2
+ add r0, r3, r0
+ str r0, [sp, #4]
+ add r0, r2, #0
+ add r1, r2, r1
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r1, #0xcc
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x17
+ bl FUN_0200C124
+ add sp, #8
+ pop {r3, pc}
+ nop
+_02215050: .word 0x00001388
+
+ thumb_func_start MOD08_02215054
+MOD08_02215054: ; 0x02215054
+ push {r3, lr}
+ sub sp, #8
+ add r2, r0, #0
+ ldr r0, [r2, #0x18]
+ add r0, r0, #4
+ str r0, [r2, #0x18]
+ ldr r1, [r0]
+ add r0, r0, #4
+ str r0, [r2, #0x18]
+ ldr r3, [r0]
+ add r0, r0, #4
+ str r0, [r2, #0x18]
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02215094 ; =0x00001388
+ lsl r1, r1, #2
+ add r0, r3, r0
+ str r0, [sp, #4]
+ add r0, r2, #0
+ add r1, r2, r1
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r1, #0xcc
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x18
+ bl FUN_0200C13C
+ add sp, #8
+ pop {r3, pc}
+ nop
+_02215094: .word 0x00001388
+
+ thumb_func_start MOD08_02215098
+MOD08_02215098: ; 0x02215098
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ add r4, r0, #0
+ ldr r1, [r4, #0x18]
+ add r1, r1, #4
+ str r1, [r4, #0x18]
+ ldr r5, [r1]
+ add r2, r1, #4
+ str r2, [r4, #0x18]
+ ldr r1, [r2]
+ str r1, [sp]
+ add r1, r2, #4
+ str r1, [r4, #0x18]
+ bl MOD08_02212460
+ add r6, r0, #0
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #0
+ bl MOD08_02217B98
+ add r1, sp, #0xc
+ strh r0, [r1]
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #1
+ bl MOD08_02217B98
+ add r2, sp, #0xc
+ strh r0, [r2, #2]
+ mov r1, #0
+ strh r1, [r2, #4]
+ strh r1, [r2, #6]
+ mov r0, #0x64
+ str r0, [sp, #0x14]
+ mov r0, #1
+ str r0, [sp, #0x1c]
+ str r0, [sp, #0x38]
+ add r0, r4, #0
+ ldr r3, _022151A0 ; =0x00001388
+ str r1, [sp, #0x18]
+ str r1, [sp, #0x3c]
+ add r2, sp, #0xc
+ add r0, #0x18
+_022150F0:
+ ldr r6, [r4, #0x18]
+ add r1, r1, #1
+ ldr r6, [r6]
+ add r6, r6, r3
+ str r6, [r2, #0x14]
+ ldr r6, [r0]
+ add r2, r2, #4
+ add r6, r6, #4
+ str r6, [r0]
+ cmp r1, #6
+ blt _022150F0
+ mov r0, #0x41
+ lsl r0, r0, #2
+ add r3, sp, #0xc
+ add r2, r4, r0
+ mov r6, #6
+_02215110:
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ sub r6, r6, #1
+ bne _02215110
+ ldr r0, [r3]
+ lsl r7, r5, #2
+ str r0, [r2]
+ add r0, r4, #0
+ str r0, [sp, #8]
+ add r0, #0xcc
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, [sp, #8]
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r1, r7]
+ add r2, sp, #0xc
+ bl FUN_0200C154
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x18]
+ add r2, r4, #0
+ ldr r3, [r0]
+ add r0, r0, #4
+ add r2, #0x18
+ mov r6, #0
+ str r0, [r4, #0x18]
+ cmp r3, #0
+ ble _02215168
+ add r5, r4, #0
+_02215150:
+ ldr r0, [r4, #0x18]
+ add r6, r6, #1
+ ldr r1, [r0]
+ add r0, r5, #0
+ add r0, #0x94
+ str r1, [r0]
+ ldr r0, [r2]
+ add r5, r5, #4
+ add r0, r0, #4
+ str r0, [r2]
+ cmp r6, r3
+ blt _02215150
+_02215168:
+ cmp r6, #0xa
+ bge _02215180
+ lsl r0, r6, #2
+ add r2, r4, r0
+ mov r1, #0
+_02215172:
+ add r0, r2, #0
+ add r0, #0x94
+ add r6, r6, #1
+ add r2, r2, #4
+ str r1, [r0]
+ cmp r6, #0xa
+ blt _02215172
+_02215180:
+ ldr r0, [sp]
+ bl MOD08_02218C5C
+ add r5, r0, #0
+ add r0, r4, #0
+ add r4, #0xc0
+ ldr r1, [r4]
+ ldr r2, [sp, #8]
+ add r1, #0xac
+ ldr r1, [r1]
+ ldr r2, [r2, r7]
+ ldr r3, [sp, #4]
+ blx r5
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022151A0: .word 0x00001388
+
+ thumb_func_start MOD08_022151A4
+MOD08_022151A4: ; 0x022151A4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r5, r0, #0
+ ldr r1, [r5, #0x18]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ ldr r4, [r1]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ ldr r7, [r1]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ bl MOD08_02212460
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0
+ bl MOD08_02217B98
+ add r1, sp, #0
+ strh r0, [r1]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #1
+ bl MOD08_02217B98
+ add r2, sp, #0
+ strh r0, [r2, #2]
+ mov r1, #0
+ strh r1, [r2, #4]
+ strh r1, [r2, #6]
+ mov r0, #0x64
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x2c]
+ add r0, r5, #0
+ ldr r3, _02215254 ; =0x00001388
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x30]
+ add r2, sp, #0
+ add r0, #0x18
+_022151FA:
+ ldr r6, [r5, #0x18]
+ add r1, r1, #1
+ ldr r6, [r6]
+ add r6, r6, r3
+ str r6, [r2, #0x14]
+ ldr r6, [r0]
+ add r2, r2, #4
+ add r6, r6, #4
+ str r6, [r0]
+ cmp r1, #6
+ blt _022151FA
+ mov r0, #0x41
+ lsl r0, r0, #2
+ add r6, sp, #0
+ add r3, r5, r0
+ mov r2, #6
+_0221521A:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0221521A
+ ldr r0, [r6]
+ lsl r1, r4, #2
+ str r0, [r3]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r1, r5, r1
+ add r0, #0xac
+ add r1, #0xcc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ add r2, sp, #0
+ bl FUN_0200C154
+ add r5, #0xdc
+ lsl r4, r7, #2
+ add r6, r0, #0
+ ldr r0, [r5, r4]
+ cmp r0, #0
+ beq _0221524E
+ bl ErrorHandling
+_0221524E:
+ str r6, [r5, r4]
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02215254: .word 0x00001388
+
+ thumb_func_start MOD08_02215258
+MOD08_02215258: ; 0x02215258
+ push {r3, r4, r5, lr}
+ ldr r1, [r0, #0x18]
+ add r5, r0, #0
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r2, [r1]
+ add r1, r1, #4
+ add r5, #0xcc
+ lsl r4, r2, #2
+ str r1, [r0, #0x18]
+ ldr r1, [r5, r4]
+ cmp r1, #0
+ beq _0221527E
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, #0xac
+ ldr r0, [r0]
+ bl FUN_0200C398
+_0221527E:
+ mov r0, #0
+ str r0, [r5, r4]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02215284
+MOD08_02215284: ; 0x02215284
+ ldr r1, [r0, #0x18]
+ add r1, r1, #4
+ str r1, [r0, #0x18]
+ ldr r3, [r1]
+ add r2, r1, #4
+ str r2, [r0, #0x18]
+ ldr r1, [r2]
+ add r2, r2, #4
+ str r2, [r0, #0x18]
+ lsl r2, r3, #2
+ add r2, r0, r2
+ mov r0, #0x4f
+ lsl r0, r0, #2
+ ldr r3, _022152A4 ; =FUN_0200C644
+ ldr r0, [r2, r0]
+ bx r3
+ .align 2, 0
+_022152A4: .word FUN_0200C644
+
+ thumb_func_start MOD08_022152A8
+MOD08_022152A8: ; 0x022152A8
+ ldr r3, _022152AC ; =ErrorHandling
+ bx r3
+ .align 2, 0
+_022152AC: .word ErrorHandling
+
+ thumb_func_start MOD08_022152B0
+MOD08_022152B0: ; 0x022152B0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r1, [r5, #0x18]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ ldr r4, [r1]
+ add r1, r1, #4
+ str r1, [r5, #0x18]
+ ldr r1, [r1]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ lsl r1, r1, #0x18
+ asr r1, r1, #0x18
+ bl MOD08_02215354
+ add r3, r0, #0
+ ldr r0, [r5, #0x18]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ ldr r1, [r0]
+ add r0, r0, #4
+ str r0, [r5, #0x18]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r2, [r0]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r1, [sp]
+ ldr r1, [r2, r0]
+ sub r0, #0xc
+ str r1, [sp, #4]
+ ldr r1, [r5]
+ str r1, [sp, #8]
+ add r1, r4, #0
+ ldrh r4, [r2, #0x14]
+ ldr r0, [r2, r0]
+ lsl r4, r4, #1
+ add r2, r2, r4
+ add r2, #0xd8
+ ldrh r2, [r2]
+ bl FUN_02069FB0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221530C
+MOD08_0221530C: ; 0x0221530C
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_02005670
+ cmp r0, #0
+ bne _02215330
+ ldr r0, [r4, #0x18]
+ add r1, r0, #4
+ str r1, [r4, #0x18]
+ ldr r0, [r1]
+ add r1, r1, #4
+ str r1, [r4, #0x18]
+ mov r1, #0
+ add r4, #0x8d
+ strb r1, [r4]
+ bl FUN_02005614
+ pop {r4, pc}
+_02215330:
+ mov r0, #1
+ add r4, #0x8d
+ strb r0, [r4]
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02215338
+MOD08_02215338: ; 0x02215338
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_0221533C
+MOD08_0221533C: ; 0x0221533C
+ cmp r0, #0x55
+ bls _02215344
+ mov r0, #0
+ bx lr
+_02215344:
+ lsl r1, r0, #2
+ ldr r0, _0221534C ; =0x0222AC6C
+ ldr r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_0221534C: .word 0x0222AC6C
+
+ thumb_func_start MOD08_02215350
+MOD08_02215350: ; 0x02215350
+ ldrb r0, [r0, #1]
+ bx lr
+
+ thumb_func_start MOD08_02215354
+MOD08_02215354: ; 0x02215354
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD08_02212458
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD08_02227470
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02227470
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _02215390
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ beq _022153F6
+_02215390:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _022153B0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _022153B0
+ mov r0, #0
+ mvn r0, r0
+ mul r4, r0
+ b _022153F6
+_022153B0:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _022153D4
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _022153D4
+ cmp r4, #0
+ ble _022153F6
+ mov r0, #0
+ mvn r0, r0
+ mul r4, r0
+ b _022153F6
+_022153D4:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _022153F6
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _022153F6
+ cmp r4, #0
+ bge _022153F6
+ mov r0, #0
+ mvn r0, r0
+ mul r4, r0
+_022153F6:
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02215406
+ mov r0, #0
+ mvn r0, r0
+ mul r4, r0
+_02215406:
+ lsl r0, r4, #0x18
+ asr r0, r0, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0221540C
+MOD08_0221540C: ; 0x0221540C
+ push {r3, lr}
+ cmp r0, r1
+ bge _0221541E
+ add r0, r2, #0
+ bl abs
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ pop {r3, pc}
+_0221541E:
+ cmp r0, r1
+ ble _02215430
+ add r0, r2, #0
+ bl abs
+ neg r0, r0
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ pop {r3, pc}
+_02215430:
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02215434
+MOD08_02215434: ; 0x02215434
+ push {r3, r4, r5, lr}
+ ldr r4, [r0, #0x18]
+ add r3, r0, #0
+ add r4, r4, #4
+ str r4, [r0, #0x18]
+ ldr r5, [r4]
+ add r4, r4, #4
+ add r3, #0x18
+ str r4, [r0, #0x18]
+ cmp r5, r2
+ beq _02215456
+ cmp r5, r2
+ beq _02215452
+ bl ErrorHandling
+_02215452:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02215456:
+ mov r4, #0
+ cmp r2, #0
+ ble _02215470
+_0221545C:
+ ldr r5, [r0, #0x18]
+ add r4, r4, #1
+ ldr r5, [r5]
+ str r5, [r1]
+ ldr r5, [r3]
+ add r1, r1, #4
+ add r5, r5, #4
+ str r5, [r3]
+ cmp r4, r2
+ blt _0221545C
+_02215470:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02215474
+MOD08_02215474: ; 0x02215474
+ push {r3, r4}
+ add r4, r0, #0
+ mov r0, #0x41
+ lsl r0, r0, #2
+ add r3, r1, r0
+ mov r2, #6
+_02215480:
+ ldmia r3!, {r0, r1}
+ stmia r4!, {r0, r1}
+ sub r2, r2, #1
+ bne _02215480
+ ldr r0, [r3]
+ str r0, [r4]
+ pop {r3, r4}
+ bx lr
+
+ thumb_func_start MOD08_02215490
+MOD08_02215490: ; 0x02215490
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, r0, r1
+ add r0, #0xc0
+ ldrb r0, [r0]
+ bx lr
+
+ thumb_func_start MOD08_0221549C
+MOD08_0221549C: ; 0x0221549C
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, r0, r1
+ add r0, #0xe0
+ ldrb r0, [r0]
+ bx lr
+
+ thumb_func_start MOD08_022154A8
+MOD08_022154A8: ; 0x022154A8
+ add r0, #0xc0
+ ldr r2, [r0]
+ lsl r0, r1, #1
+ add r0, r2, r0
+ add r0, #0xd8
+ ldrh r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022154B8
+MOD08_022154B8: ; 0x022154B8
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, r0, r1
+ add r0, #0xe8
+ ldrb r0, [r0]
+ bx lr
+
+ thumb_func_start MOD08_022154C4
+MOD08_022154C4: ; 0x022154C4
+ add r0, #0xc0
+ ldr r2, [r0]
+ lsl r0, r1, #2
+ add r0, r2, r0
+ add r0, #0xec
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022154D4
+MOD08_022154D4: ; 0x022154D4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r4, r1, #2
+ add r0, r0, r4
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _022154EC
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_022154EC:
+ bl FUN_02008268
+ cmp r0, #0
+ beq _02215500
+ add r5, #0xc0
+ ldr r0, [r5]
+ add r0, r0, r4
+ add r0, #0xc4
+ ldr r0, [r0]
+ pop {r3, r4, r5, pc}
+_02215500:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02215504
+MOD08_02215504: ; 0x02215504
+ add r0, #0xc8
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_0221550C
+MOD08_0221550C: ; 0x0221550C
+ add r0, #0xc0
+ ldr r2, [r0]
+ lsl r0, r1, #2
+ add r0, r2, r0
+ add r0, #0xb0
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ bx lr
+
+ thumb_func_start MOD08_0221551C
+MOD08_0221551C: ; 0x0221551C
+ add r0, #0xc0
+ ldr r2, [r0]
+ lsl r0, r1, #2
+ add r0, r2, r0
+ add r0, #0xb0
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ bx lr
+
+ thumb_func_start MOD08_0221552C
+MOD08_0221552C: ; 0x0221552C
+ add r0, #0xc0
+ ldr r2, [r0]
+ lsl r0, r1, #2
+ add r0, r2, r0
+ add r0, #0xb0
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ bx lr
+
+ thumb_func_start MOD08_0221553C
+MOD08_0221553C: ; 0x0221553C
+ add r0, #0xc0
+ ldr r0, [r0]
+ add r0, #0xd4
+ ldr r1, [r0]
+ mov r0, #2
+ tst r0, r1
+ beq _0221554E
+ mov r0, #1
+ bx lr
+_0221554E:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02215554
+MOD08_02215554: ; 0x02215554
+ add r0, #0xc0
+ ldr r2, [r0]
+ lsl r0, r1, #2
+ add r0, r2, r0
+ add r0, #0xfc
+ ldr r1, [r0]
+ ldr r0, _02215570 ; =0x200400C0
+ tst r0, r1
+ beq _0221556A
+ mov r0, #1
+ bx lr
+_0221556A:
+ mov r0, #0
+ bx lr
+ nop
+_02215570: .word 0x200400C0
+
+ thumb_func_start MOD08_02215574
+MOD08_02215574: ; 0x02215574
+ push {r3, lr}
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02215582
+ mov r0, #2
+ pop {r3, pc}
+_02215582:
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02215588
+MOD08_02215588: ; 0x02215588
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ ldr r3, _022155C0 ; =0x0222AAAC
+ add r2, sp, #0
+ add r5, r0, #0
+ add r4, r1, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _022155B4
+ add r0, sp, #0xc
+ lsl r1, r4, #2
+ add sp, #0x18
+ ldr r0, [r0, r1]
+ pop {r3, r4, r5, pc}
+_022155B4:
+ lsl r1, r4, #2
+ add r0, sp, #0
+ ldr r0, [r0, r1]
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ nop
+_022155C0: .word 0x0222AAAC
+
+ thumb_func_start MOD08_022155C4
+MOD08_022155C4: ; 0x022155C4
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ ldr r3, _022155FC ; =0x0222AA94
+ add r2, sp, #0
+ add r5, r0, #0
+ add r4, r1, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _022155F0
+ add r0, sp, #0xc
+ lsl r1, r4, #2
+ add sp, #0x18
+ ldr r0, [r0, r1]
+ pop {r3, r4, r5, pc}
+_022155F0:
+ lsl r1, r4, #2
+ add r0, sp, #0
+ ldr r0, [r0, r1]
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ nop
+_022155FC: .word 0x0222AA94
+
+ thumb_func_start MOD08_02215600
+MOD08_02215600: ; 0x02215600
+ push {r3, lr}
+ cmp r1, #3
+ bhi _02215636
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02215612: ; jump table
+ .short _0221561A - _02215612 - 2 ; case 0
+ .short _02215622 - _02215612 - 2 ; case 1
+ .short _0221562A - _02215612 - 2 ; case 2
+ .short _02215632 - _02215612 - 2 ; case 3
+_0221561A:
+ bl MOD08_02212004
+ mov r0, #0
+ pop {r3, pc}
+_02215622:
+ bl MOD08_02212004
+ mov r0, #1
+ pop {r3, pc}
+_0221562A:
+ bl MOD08_02212004
+ mov r0, #3
+ pop {r3, pc}
+_02215632:
+ bl MOD08_02215574
+_02215636:
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02215638
+MOD08_02215638: ; 0x02215638
+ push {r3, lr}
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ add r0, r2, #0
+ add r2, #0xc0
+ ldr r3, [r2]
+ mov r2, #0x11
+ add r0, #0xc4
+ lsl r2, r2, #4
+ lsl r1, r1, #0x18
+ ldr r2, [r3, r2]
+ mov r3, #1
+ ldr r0, [r0]
+ lsr r1, r1, #0x18
+ lsl r3, r3, #0x10
+ bl FUN_02017E14
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02215660
+MOD08_02215660: ; 0x02215660
+ push {r3, lr}
+ mov r2, #2
+ add r1, r0, #0
+ lsl r2, r2, #8
+ str r2, [sp]
+ add r1, #0xc0
+ add r0, #0xc8
+ ldr r1, [r1]
+ sub r2, #0xec
+ ldr r1, [r1, r2]
+ mov r2, #0
+ ldr r0, [r0]
+ add r3, r2, #0
+ bl FUN_02003054
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02215680
+MOD08_02215680: ; 0x02215680
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD08_022132C4
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _022156A8
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_022154A8
+ bl MOD08_0222A6C8
+ cmp r0, #1
+ bne _022156A8
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_022156A8:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_022156AC
+MOD08_022156AC: ; 0x022156AC
+ mov r2, #0x14
+ mul r2, r0
+ ldr r0, _022156BC ; =0x0222ADC0
+ lsl r1, r1, #2
+ add r0, r0, r2
+ ldr r0, [r1, r0]
+ bx lr
+ nop
+_022156BC: .word 0x0222ADC0
+
+ thumb_func_start MOD08_022156C0
+MOD08_022156C0: ; 0x022156C0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x90
+ ldr r3, _02215900 ; =0x0222AA4C
+ add r6, r2, #0
+ add r2, sp, #0x78
+ add r7, r0, #0
+ add r5, r1, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ add r0, r5, #0
+ mov r1, #0x58
+ bl AllocFromHeap
+ add r4, r0, #0
+ str r5, [r4]
+ str r6, [r4, #4]
+ add r0, r7, #0
+ bl MOD11_02230078
+ str r0, [r4, #8]
+ add r0, r7, #0
+ bl MOD11_02230080
+ str r0, [r4, #0xc]
+ add r0, r7, #0
+ bl MOD11_022300CC
+ str r0, [r4, #0x10]
+ mov r6, #0
+ add r5, r4, #0
+_02215704:
+ mov r0, #0
+ str r0, [r5, #0x24]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_022312D0
+ str r0, [r5, #0x34]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #4
+ blt _02215704
+ add r1, r4, #0
+ add r0, r7, #0
+ add r1, #0x44
+ bl MOD11_02231504
+ add r1, r4, #0
+ add r0, r7, #0
+ add r1, #0x48
+ bl MOD11_02231534
+ mov r6, #0
+ add r7, r6, #0
+_02215732:
+ ldr r0, [r4, #4]
+ cmp r6, r0
+ beq _0221573C
+ cmp r0, #0xff
+ bne _0221579E
+_0221573C:
+ ldr r1, _02215904 ; =0x0000D903
+ str r7, [sp]
+ add r2, r6, r1
+ ldr r1, _02215908 ; =0x00001388
+ mov r3, #0x28
+ mul r1, r0
+ mov r0, #1
+ add r5, r2, r1
+ str r0, [sp, #4]
+ str r5, [sp, #8]
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ mov r2, #0x1b
+ bl FUN_0200C00C
+ mov r0, #0x1b
+ str r0, [sp]
+ mov r0, #0x27
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r5, [sp, #0x14]
+ ldr r0, [r4, #0x10]
+ ldr r2, [r4, #8]
+ ldr r3, [r4, #0xc]
+ mov r1, #2
+ bl FUN_0200C0DC
+ mov r0, #0
+ str r0, [sp]
+ str r5, [sp, #4]
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ mov r2, #0x1b
+ mov r3, #0x29
+ bl FUN_0200C124
+ mov r0, #0
+ str r0, [sp]
+ str r5, [sp, #4]
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ mov r2, #0x1b
+ mov r3, #0x2a
+ bl FUN_0200C13C
+_0221579E:
+ add r6, r6, #1
+ cmp r6, #4
+ blt _02215732
+ mov r0, #0
+ str r0, [sp, #0x24]
+ add r7, r4, #0
+_022157AA:
+ ldr r1, [r4, #4]
+ ldr r0, [sp, #0x24]
+ cmp r0, r1
+ beq _022157B8
+ cmp r1, #0xff
+ beq _022157B8
+ b _022158EC
+_022157B8:
+ ldr r2, _02215904 ; =0x0000D903
+ ldr r0, [sp, #0x24]
+ add r3, r1, #0
+ add r0, r0, r2
+ ldr r2, _02215908 ; =0x00001388
+ mul r3, r2
+ add r1, r0, r3
+ str r1, [r7, #0x14]
+ ldr r1, [r4, #4]
+ add r3, r1, #0
+ mul r3, r2
+ add r1, r0, r3
+ str r1, [sp, #0x60]
+ ldr r1, [r4, #4]
+ add r3, r1, #0
+ mul r3, r2
+ add r1, r0, r3
+ str r1, [sp, #0x64]
+ ldr r1, [r4, #4]
+ add r3, r1, #0
+ mul r3, r2
+ add r1, r0, r3
+ str r1, [sp, #0x68]
+ ldr r1, [r4, #4]
+ mul r2, r1
+ mov r1, #0
+ add r0, r0, r2
+ str r0, [sp, #0x6c]
+ str r1, [sp, #0x70]
+ str r1, [sp, #0x74]
+ ldr r2, [r7, #0x34]
+ ldr r5, [r7, #0x48]
+ ldr r0, [r2, #4]
+ cmp r5, #0
+ str r0, [sp, #0x20]
+ ldr r0, [r2, #8]
+ str r0, [sp, #0x1c]
+ ldr r0, [r2]
+ str r0, [sp, #0x18]
+ beq _022158EC
+ add r0, r5, #0
+ bl FUN_0200782C
+ str r0, [sp, #0x28]
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ add r0, r5, #0
+ mov r1, #0x29
+ bl FUN_0200782C
+ sub r2, r6, r0
+ ldr r0, [sp, #0x28]
+ add r1, sp, #0x2c
+ strh r0, [r1]
+ strh r2, [r1, #2]
+ mov r0, #0
+ strh r0, [r1, #4]
+ strh r0, [r1, #6]
+ ldr r1, [sp, #0x24]
+ add r3, sp, #0x2c
+ add r1, r4, r1
+ add r1, #0x44
+ ldrb r1, [r1]
+ lsl r2, r1, #2
+ add r1, sp, #0x78
+ ldr r1, [r1, r2]
+ str r0, [sp, #0x38]
+ str r1, [sp, #0x34]
+ mov r1, #1
+ str r1, [sp, #0x3c]
+ str r1, [sp, #0x58]
+ str r0, [sp, #0x5c]
+ add r2, sp, #0x60
+_02215852:
+ ldr r1, [r2]
+ add r0, r0, #1
+ str r1, [r3, #0x14]
+ add r2, r2, #4
+ add r3, r3, #4
+ cmp r0, #6
+ blt _02215852
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ add r2, sp, #0x2c
+ bl FUN_0200C154
+ add r6, r0, #0
+ bl FUN_0200C5A8
+ str r6, [r7, #0x24]
+ cmp r5, #0
+ bne _02215880
+ add r0, r6, #0
+ mov r1, #0
+ bl FUN_0200C644
+ b _022158A8
+_02215880:
+ add r0, r5, #0
+ bl FUN_02008268
+ cmp r0, #0
+ bne _02215894
+ add r0, r6, #0
+ mov r1, #0
+ bl FUN_0200C644
+ b _022158A8
+_02215894:
+ add r0, r5, #0
+ mov r1, #6
+ bl FUN_0200782C
+ cmp r0, #1
+ bne _022158A8
+ add r0, r6, #0
+ mov r1, #0
+ bl FUN_0200C644
+_022158A8:
+ cmp r5, #0
+ beq _022158C2
+ ldr r0, [r6]
+ bl FUN_02020350
+ add r1, r0, #0
+ mov r3, #0x32
+ ldr r1, [r1, #4]
+ ldr r2, [sp, #0x18]
+ mov r0, #0x13
+ lsl r3, r3, #6
+ bl FUN_0201C2C8
+_022158C2:
+ cmp r5, #0
+ beq _022158EC
+ ldr r0, [r6]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ mov r1, #2
+ str r1, [sp]
+ mov r1, #0x20
+ lsl r0, r0, #0x14
+ str r1, [sp, #4]
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x10]
+ ldr r1, [sp, #0x20]
+ ldr r2, [sp, #0x1c]
+ ldr r3, [r4]
+ bl FUN_020030E8
+_022158EC:
+ ldr r0, [sp, #0x24]
+ add r7, r7, #4
+ add r0, r0, #1
+ str r0, [sp, #0x24]
+ cmp r0, #4
+ bge _022158FA
+ b _022157AA
+_022158FA:
+ add r0, r4, #0
+ add sp, #0x90
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02215900: .word 0x0222AA4C
+_02215904: .word 0x0000D903
+_02215908: .word 0x00001388
+
+ thumb_func_start MOD08_0221590C
+MOD08_0221590C: ; 0x0221590C
+ ldr r3, _02215914 ; =MOD08_022156C0
+ mov r2, #0xff
+ bx r3
+ nop
+_02215914: .word MOD08_022156C0
+
+ thumb_func_start MOD08_02215918
+MOD08_02215918: ; 0x02215918
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r6, #0
+ add r4, r5, #0
+_02215920:
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ beq _0221593C
+ ldr r0, [r5, #0xc]
+ ldr r1, [r4, #0x14]
+ bl FUN_0200C358
+ ldr r0, [r5, #0xc]
+ ldr r1, [r4, #0x14]
+ bl FUN_0200C368
+ ldr r0, [r4, #0x24]
+ bl FUN_0200C3DC
+_0221593C:
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #4
+ blt _02215920
+ add r0, r5, #0
+ bl FreeToHeap
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_0221594C
+MOD08_0221594C: ; 0x0221594C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r7, r1, #0
+ mov r4, #0
+ add r5, r6, #0
+_02215956:
+ cmp r4, r7
+ bne _02215976
+ ldr r0, [r5, #0x24]
+ cmp r0, #0
+ beq _02215976
+ ldr r0, [r6, #0xc]
+ ldr r1, [r5, #0x14]
+ bl FUN_0200C358
+ ldr r0, [r6, #0xc]
+ ldr r1, [r5, #0x14]
+ bl FUN_0200C368
+ ldr r0, [r5, #0x24]
+ bl FUN_0200C3DC
+_02215976:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _02215956
+ add r0, r6, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02215988
+MOD08_02215988: ; 0x02215988
+ push {r4, lr}
+ add r4, r0, #0
+ bne _02215992
+ bl ErrorHandling
+_02215992:
+ ldr r0, [r4, #4]
+ add r0, r4, r0
+ add r0, #0x44
+ ldrb r0, [r0]
+ pop {r4, pc}
+
+ thumb_func_start MOD08_0221599C
+MOD08_0221599C: ; 0x0221599C
+ push {r4, lr}
+ sub sp, #8
+ mov r1, #0x12
+ lsl r1, r1, #0xa
+ add r4, r0, #0
+ bl AllocFromHeap
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ mov r3, #0x12
+ ldr r0, _022159DC ; =MOD08_02215A68
+ ldr r1, _022159E0 ; =MOD08_02215A84
+ lsl r3, r3, #0xa
+ str r4, [sp, #4]
+ bl FUN_02012CDC
+ add r4, r0, #0
+ bl FUN_0201343C
+ add r2, r0, #0
+ beq _022159D4
+ mov r0, #1
+ mov r1, #0xe1
+ lsl r0, r0, #0xc
+ lsl r1, r1, #0xe
+ bl FUN_0201EC94
+_022159D4:
+ add r0, r4, #0
+ add sp, #8
+ pop {r4, pc}
+ nop
+_022159DC: .word MOD08_02215A68
+_022159E0: .word MOD08_02215A84
+
+ thumb_func_start MOD08_022159E4
+MOD08_022159E4: ; 0x022159E4
+ push {r4, lr}
+ sub sp, #8
+ mov r1, #0x42
+ lsl r1, r1, #8
+ add r4, r0, #0
+ bl AllocFromHeap
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ mov r3, #0x42
+ ldr r0, _02215A24 ; =MOD08_02215A68
+ ldr r1, _02215A28 ; =MOD08_02215A84
+ lsl r3, r3, #8
+ str r4, [sp, #4]
+ bl FUN_02012CDC
+ add r4, r0, #0
+ bl FUN_0201343C
+ add r2, r0, #0
+ beq _02215A1C
+ mov r0, #1
+ mov r1, #0xe1
+ lsl r0, r0, #0xc
+ lsl r1, r1, #0xe
+ bl FUN_0201EC94
+_02215A1C:
+ add r0, r4, #0
+ add sp, #8
+ pop {r4, pc}
+ nop
+_02215A24: .word MOD08_02215A68
+_02215A28: .word MOD08_02215A84
+
+ thumb_func_start MOD08_02215A2C
+MOD08_02215A2C: ; 0x02215A2C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_020133E8
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_02012DE4
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02215A44
+MOD08_02215A44: ; 0x02215A44
+ push {r3, lr}
+ bl FUN_020222AC
+ bl FUN_02013348
+ cmp r0, #0
+ beq _02215A66
+ bl FUN_02013364
+ cmp r0, #0
+ ble _02215A62
+ bl FUN_020222AC
+ bl FUN_020B02C8
+_02215A62:
+ bl FUN_02013388
+_02215A66:
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02215A68
+MOD08_02215A68: ; 0x02215A68
+ push {r4, lr}
+ ldr r3, _02215A80 ; =0x021064B8
+ mov r2, #0
+ ldr r3, [r3]
+ blx r3
+ add r4, r0, #0
+ bl FUN_0201327C
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0xd
+ pop {r4, pc}
+ nop
+_02215A80: .word 0x021064B8
+
+ thumb_func_start MOD08_02215A84
+MOD08_02215A84: ; 0x02215A84
+ push {r4, lr}
+ ldr r3, _02215A9C ; =0x021064C0
+ mov r2, #0
+ ldr r3, [r3]
+ blx r3
+ add r4, r0, #0
+ bl FUN_020132BC
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0xd
+ pop {r4, pc}
+ nop
+_02215A9C: .word 0x021064C0
+
+ thumb_func_start MOD08_02215AA0
+MOD08_02215AA0: ; 0x02215AA0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02215AA4
+MOD08_02215AA4: ; 0x02215AA4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ bl MOD08_0221599C
+ add r4, r0, #0
+ mov r0, #0x1d
+ add r1, r6, #0
+ add r2, r5, #0
+ bl FUN_0201318C
+ add r1, r0, #0
+ add r0, r4, #0
+ mov r2, #0xa
+ add r3, r7, #0
+ bl FUN_02013194
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02215ACC
+MOD08_02215ACC: ; 0x02215ACC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ str r3, [sp]
+ bl MOD08_0221599C
+ add r4, r0, #0
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ bl FUN_0201318C
+ add r1, r0, #0
+ ldr r3, [sp]
+ add r0, r4, #0
+ mov r2, #0xa
+ bl FUN_02013194
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02215AF8
+MOD08_02215AF8: ; 0x02215AF8
+ ldr r3, _02215AFC ; =NARC_AllocAndReadWholeMember
+ bx r3
+ .align 2, 0
+_02215AFC: .word NARC_AllocAndReadWholeMember
+
+ thumb_func_start MOD08_02215B00
+MOD08_02215B00: ; 0x02215B00
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r7, r2, #0
+ add r0, r5, #0
+ str r3, [sp]
+ bl MOD08_022159E4
+ add r4, r0, #0
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ bl MOD08_02215AF8
+ add r1, r0, #0
+ ldr r3, [sp]
+ add r0, r4, #0
+ mov r2, #0xa
+ bl FUN_02013194
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02215B2C
+MOD08_02215B2C: ; 0x02215B2C
+ push {r4, lr}
+ lsl r4, r2, #2
+ ldr r2, _02215B3C ; =0x0222B248
+ ldr r2, [r2, r4]
+ bl FUN_020133AC
+ pop {r4, pc}
+ nop
+_02215B3C: .word 0x0222B248
+
+ thumb_func_start MOD08_02215B40
+MOD08_02215B40: ; 0x02215B40
+ ldr r3, _02215B44 ; =MOD08_02215A2C
+ bx r3
+ .align 2, 0
+_02215B44: .word MOD08_02215A2C
+
+ thumb_func_start MOD08_02215B48
+MOD08_02215B48: ; 0x02215B48
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r7, r2, #0
+ mov r4, #1
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_02227468
+ cmp r5, #5
+ bhi _02215B84
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02215B6E: ; jump table
+ .short _02215B84 - _02215B6E - 2 ; case 0
+ .short _02215B7A - _02215B6E - 2 ; case 1
+ .short _02215B84 - _02215B6E - 2 ; case 2
+ .short _02215B7E - _02215B6E - 2 ; case 3
+ .short _02215B84 - _02215B6E - 2 ; case 4
+ .short _02215B82 - _02215B6E - 2 ; case 5
+_02215B7A:
+ sub r4, r4, #2
+ b _02215B84
+_02215B7E:
+ sub r4, r4, #2
+ b _02215B84
+_02215B82:
+ sub r4, r4, #2
+_02215B84:
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02215B88
+MOD08_02215B88: ; 0x02215B88
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02215B8C
+MOD08_02215B8C: ; 0x02215B8C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r5, r0, #0
+ bl FUN_0201341C
+ add r4, r0, #0
+ bl MOD08_02212458
+ add r0, r4, #0
+ bl MOD08_02212460
+ add r0, r4, #0
+ bl MOD08_02212468
+ add r6, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _02215BC2
+ add r0, r4, #0
+ mov r1, #1
+ add r2, sp, #0x28
+ bl MOD08_0222771C
+ b _02215BFA
+_02215BC2:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD08_02227468
+ str r0, [sp]
+ bl MOD08_02227524
+ str r0, [sp, #4]
+ add r0, r6, #0
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ add r1, sp, #0x28
+ add r2, r4, #0
+ add r3, r7, #0
+ bl MOD08_0222765C
+ ldr r0, [sp]
+ add r1, sp, #0x1c
+ add r2, r4, #0
+ add r3, r7, #0
+ bl MOD08_0222765C
+_02215BFA:
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #0x28]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r1, r0
+ str r0, [r5, #0x28]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #0x2c]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #0x30]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r1, r0
+ str r0, [r5, #0x30]
+ mov r0, #1
+ add r1, sp, #0x10
+ bl MOD08_02227974
+ add r0, r6, #0
+ bl FUN_0201343C
+ add r4, r0, #0
+ add r0, sp, #8
+ add r1, r4, #0
+ bl FUN_0201F014
+ add r0, sp, #8
+ add r1, r4, #0
+ bl FUN_0201EF90
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02215C44
+MOD08_02215C44: ; 0x02215C44
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ bl FUN_0201341C
+ add r4, r0, #0
+ bl MOD08_02212460
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212468
+ add r7, r0, #0
+ add r0, r4, #0
+ mov r1, #0
+ add r2, sp, #0xc
+ bl MOD08_0222771C
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #0xc]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r1, r0
+ str r0, [r5, #0x28]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #0x10]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #0x14]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r1, r0
+ str r0, [r5, #0x30]
+ add r0, r6, #0
+ add r1, sp, #0
+ bl MOD08_02227974
+ add r0, r7, #0
+ add r1, sp, #0
+ bl FUN_020133FC
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02215CA0
+MOD08_02215CA0: ; 0x02215CA0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl FUN_0201341C
+ add r5, r0, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, sp, #0
+ bl MOD08_0222771C
+ ldr r0, [r4, #0x20]
+ ldr r1, [sp]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r1, r0
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #0x20]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x20]
+ ldr r1, [sp, #8]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r1, r0
+ str r0, [r4, #0x30]
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02215CE4
+MOD08_02215CE4: ; 0x02215CE4
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl FUN_0201341C
+ add r5, r0, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, sp, #0
+ bl MOD08_0222771C
+ ldr r0, [r4, #0x20]
+ ldr r1, [sp]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r1, r0
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #0x20]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x20]
+ ldr r1, [sp, #8]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r1, r0
+ str r0, [r4, #0x30]
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02215D28
+MOD08_02215D28: ; 0x02215D28
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ bl FUN_0201341C
+ add r4, r0, #0
+ bl MOD08_02212458
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212460
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, sp, #0
+ bl MOD08_0222771C
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r1, r0
+ str r0, [r5, #0x28]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #8]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r1, r0
+ str r0, [r5, #0x30]
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02215D74
+MOD08_02215D74: ; 0x02215D74
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ bl FUN_0201341C
+ add r6, r0, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ beq _02215DA0
+ mov r4, #1
+ b _02215DA2
+_02215DA0:
+ mov r4, #0
+_02215DA2:
+ add r0, r6, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r4, #0
+ add r1, sp, #0
+ add r3, r7, #0
+ bl MOD08_0222765C
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r1, r0
+ str r0, [r5, #0x28]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #8]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r1, r0
+ str r0, [r5, #0x30]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02215DDC
+MOD08_02215DDC: ; 0x02215DDC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ bl FUN_0201341C
+ add r6, r0, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r6, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ beq _02215E08
+ mov r4, #1
+ b _02215E0A
+_02215E08:
+ mov r4, #0
+_02215E0A:
+ add r0, r6, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r4, #0
+ add r1, sp, #0
+ add r3, r7, #0
+ bl MOD08_0222765C
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r1, r0
+ str r0, [r5, #0x28]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #8]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r1, r0
+ str r0, [r5, #0x30]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02215E44
+MOD08_02215E44: ; 0x02215E44
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x9c
+ add r5, r0, #0
+ add r1, sp, #0
+ mov r0, #0
+ strh r0, [r1]
+ strh r0, [r1, #2]
+ strh r0, [r1, #4]
+ strh r0, [r1, #6]
+ strh r0, [r1, #8]
+ strh r0, [r1, #0xa]
+ ldr r3, _02215EE4 ; =0x0222B2A4
+ add r2, sp, #0x54
+ mov r1, #0x24
+_02215E60:
+ ldrh r0, [r3]
+ add r3, r3, #2
+ strh r0, [r2]
+ add r2, r2, #2
+ sub r1, r1, #1
+ bne _02215E60
+ ldr r3, _02215EE8 ; =0x0222B2EC
+ add r2, sp, #0xc
+ mov r1, #0x24
+_02215E72:
+ ldrh r0, [r3]
+ add r3, r3, #2
+ strh r0, [r2]
+ add r2, r2, #2
+ sub r1, r1, #1
+ bne _02215E72
+ bl FUN_0201341C
+ add r4, r0, #0
+ bl MOD08_02212458
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212460
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD08_02227468
+ add r6, r0, #0
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD08_02227468
+ lsl r2, r0, #1
+ mov r0, #0xc
+ add r1, r6, #0
+ mul r1, r0
+ add r0, sp, #0x54
+ add r0, r0, r1
+ ldrsh r4, [r2, r0]
+ mov r3, #0xac
+ add r0, r4, #0
+ ldr r4, [r5, #0x20]
+ mul r0, r3
+ ldr r4, [r4]
+ ldr r4, [r4, #4]
+ add r0, r0, r4
+ str r0, [r5, #0x28]
+ add r0, sp, #0xc
+ add r0, r0, r1
+ ldrsh r0, [r2, r0]
+ add r1, r0, #0
+ ldr r0, [r5, #0x20]
+ mul r1, r3
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x20]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ str r0, [r5, #0x30]
+ add sp, #0x9c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02215EE4: .word 0x0222B2A4
+_02215EE8: .word 0x0222B2EC
+
+ thumb_func_start MOD08_02215EEC
+MOD08_02215EEC: ; 0x02215EEC
+ push {r3, r4}
+ add r3, r2, #0
+ add r3, #8
+ cmp r0, #7
+ bhi _02215F7C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02215F02: ; jump table
+ .short _02215F7C - _02215F02 - 2 ; case 0
+ .short _02215F12 - _02215F02 - 2 ; case 1
+ .short _02215F1C - _02215F02 - 2 ; case 2
+ .short _02215F26 - _02215F02 - 2 ; case 3
+ .short _02215F30 - _02215F02 - 2 ; case 4
+ .short _02215F42 - _02215F02 - 2 ; case 5
+ .short _02215F54 - _02215F02 - 2 ; case 6
+ .short _02215F66 - _02215F02 - 2 ; case 7
+_02215F12:
+ ldr r0, [r2]
+ mul r1, r0
+ str r1, [r2]
+ pop {r3, r4}
+ bx lr
+_02215F1C:
+ ldr r0, [r2, #4]
+ mul r1, r0
+ str r1, [r2, #4]
+ pop {r3, r4}
+ bx lr
+_02215F26:
+ ldr r0, [r3]
+ mul r1, r0
+ str r1, [r3]
+ pop {r3, r4}
+ bx lr
+_02215F30:
+ ldr r0, [r2]
+ add r3, r0, #0
+ mul r3, r1
+ str r3, [r2]
+ ldr r0, [r2, #4]
+ mul r1, r0
+ str r1, [r2, #4]
+ pop {r3, r4}
+ bx lr
+_02215F42:
+ ldr r0, [r2]
+ add r4, r0, #0
+ mul r4, r1
+ str r4, [r2]
+ ldr r0, [r3]
+ mul r1, r0
+ str r1, [r3]
+ pop {r3, r4}
+ bx lr
+_02215F54:
+ ldr r0, [r2, #4]
+ add r4, r0, #0
+ mul r4, r1
+ str r4, [r2, #4]
+ ldr r0, [r3]
+ mul r1, r0
+ str r1, [r3]
+ pop {r3, r4}
+ bx lr
+_02215F66:
+ ldr r0, [r2]
+ add r4, r0, #0
+ mul r4, r1
+ str r4, [r2]
+ ldr r0, [r2, #4]
+ add r4, r0, #0
+ mul r4, r1
+ str r4, [r2, #4]
+ ldr r0, [r3]
+ mul r1, r0
+ str r1, [r3]
+_02215F7C:
+ pop {r3, r4}
+ bx lr
+
+ thumb_func_start MOD08_02215F80
+MOD08_02215F80: ; 0x02215F80
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r6, r2, #0
+ add r5, r1, #0
+ add r1, r3, #0
+ add r7, sp, #0x10
+ mov r2, #0
+ str r2, [r7]
+ ldr r3, [sp, #0x30]
+ str r2, [r7, #4]
+ ldr r4, [sp, #0x38]
+ str r2, [r7, #8]
+ cmp r3, #5
+ bhi _0221602A
+ add r3, r3, r3
+ add r3, pc
+ ldrh r3, [r3, #6]
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ add pc, r3
+_02215FA8: ; jump table
+ .short _0221602A - _02215FA8 - 2 ; case 0
+ .short _02215FB4 - _02215FA8 - 2 ; case 1
+ .short _02215FDA - _02215FA8 - 2 ; case 2
+ .short _02215FEE - _02215FA8 - 2 ; case 3
+ .short _02215FF6 - _02215FA8 - 2 ; case 4
+ .short _02216000 - _02215FA8 - 2 ; case 5
+_02215FB4:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl FUN_02013628
+ add r1, sp, #0x20
+ mov r0, #0x14
+ ldrsb r0, [r1, r0]
+ ldr r1, [sp, #0x10]
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, [sp, #0x14]
+ str r2, [sp, #0x10]
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, [sp, #0x18]
+ str r2, [sp, #0x14]
+ mul r0, r1
+ str r0, [sp, #0x18]
+ b _0221602A
+_02215FDA:
+ str r2, [sp, #0x10]
+ add r1, sp, #0x20
+ mov r0, #0x14
+ ldrsb r1, [r1, r0]
+ mov r0, #0x32
+ lsl r0, r0, #6
+ mul r0, r1
+ str r0, [sp, #0x14]
+ str r2, [sp, #0x18]
+ b _0221602A
+_02215FEE:
+ add r2, r7, #0
+ bl MOD08_0222771C
+ b _0221602A
+_02215FF6:
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD08_0222771C
+ b _0221602A
+_02216000:
+ add r1, sp, #0
+ str r2, [r1]
+ str r2, [r1, #4]
+ str r2, [r1, #8]
+ str r2, [r1, #0xc]
+ mov r2, #4
+ bl MOD08_02215434
+ ldr r0, [sp]
+ add r2, sp, #0x20
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #4]
+ mov r1, #0x14
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #8]
+ str r0, [sp, #0x18]
+ ldrsb r1, [r2, r1]
+ ldr r0, [sp, #0xc]
+ add r2, r7, #0
+ bl MOD08_02215EEC
+_0221602A:
+ ldr r1, [sp, #0x10]
+ ldr r0, [r4]
+ sub r0, r1, r0
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ ldr r0, [r4, #4]
+ sub r0, r1, r0
+ str r0, [sp, #0x14]
+ ldr r1, [sp, #0x18]
+ ldr r0, [r4, #8]
+ sub r0, r1, r0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, sp, #0x10
+ bl FUN_02013610
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02216050
+MOD08_02216050: ; 0x02216050
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r6, r2, #0
+ add r5, r1, #0
+ add r1, r3, #0
+ add r7, sp, #0x10
+ mov r2, #0
+ str r2, [r7]
+ ldr r3, [sp, #0x30]
+ str r2, [r7, #4]
+ ldr r4, [sp, #0x38]
+ str r2, [r7, #8]
+ cmp r3, #5
+ bhi _022160FA
+ add r3, r3, r3
+ add r3, pc
+ ldrh r3, [r3, #6]
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ add pc, r3
+_02216078: ; jump table
+ .short _022160FA - _02216078 - 2 ; case 0
+ .short _02216084 - _02216078 - 2 ; case 1
+ .short _022160AA - _02216078 - 2 ; case 2
+ .short _022160BE - _02216078 - 2 ; case 3
+ .short _022160C6 - _02216078 - 2 ; case 4
+ .short _022160D0 - _02216078 - 2 ; case 5
+_02216084:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl FUN_02013548
+ add r1, sp, #0x20
+ mov r0, #0x14
+ ldrsb r0, [r1, r0]
+ ldr r1, [sp, #0x10]
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, [sp, #0x14]
+ str r2, [sp, #0x10]
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, [sp, #0x18]
+ str r2, [sp, #0x14]
+ mul r0, r1
+ str r0, [sp, #0x18]
+ b _022160FA
+_022160AA:
+ str r2, [sp, #0x10]
+ add r1, sp, #0x20
+ mov r0, #0x14
+ ldrsb r1, [r1, r0]
+ mov r0, #0x32
+ lsl r0, r0, #6
+ mul r0, r1
+ str r0, [sp, #0x14]
+ str r2, [sp, #0x18]
+ b _022160FA
+_022160BE:
+ add r2, r7, #0
+ bl MOD08_0222771C
+ b _022160FA
+_022160C6:
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD08_0222771C
+ b _022160FA
+_022160D0:
+ add r1, sp, #0
+ str r2, [r1]
+ str r2, [r1, #4]
+ str r2, [r1, #8]
+ str r2, [r1, #0xc]
+ mov r2, #4
+ bl MOD08_02215434
+ ldr r0, [sp]
+ add r2, sp, #0x20
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #4]
+ mov r1, #0x14
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #8]
+ str r0, [sp, #0x18]
+ ldrsb r1, [r2, r1]
+ ldr r0, [sp, #0xc]
+ add r2, r7, #0
+ bl MOD08_02215EEC
+_022160FA:
+ ldr r1, [sp, #0x10]
+ ldr r0, [r4]
+ sub r0, r1, r0
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ ldr r0, [r4, #4]
+ sub r0, r1, r0
+ str r0, [sp, #0x14]
+ ldr r1, [sp, #0x18]
+ ldr r0, [r4, #8]
+ sub r0, r1, r0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, sp, #0x10
+ bl FUN_02013530
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02216120
+MOD08_02216120: ; 0x02216120
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x94
+ add r6, r0, #0
+ add r7, r2, #0
+ add r4, r1, #0
+ str r3, [sp, #0xc]
+ bl MOD08_02212468
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_02227468
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #0xc]
+ add r0, r6, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r6, #0
+ add r1, sp, #0x7c
+ mov r2, #3
+ bl MOD08_02215434
+ add r0, r6, #0
+ add r1, sp, #0x70
+ mov r2, #3
+ bl MOD08_02215434
+ add r0, r6, #0
+ add r1, sp, #0x58
+ mov r2, #3
+ bl MOD08_02215434
+ add r0, r6, #0
+ add r1, sp, #0x64
+ mov r2, #3
+ bl MOD08_02215434
+ add r0, r6, #0
+ add r1, sp, #0x40
+ mov r2, #3
+ bl MOD08_02215434
+ add r0, r6, #0
+ add r1, sp, #0x34
+ mov r2, #3
+ bl MOD08_02215434
+ add r0, r6, #0
+ add r1, sp, #0x4c
+ mov r2, #3
+ bl MOD08_02215434
+ ldr r0, [sp, #0x10]
+ cmp r0, #5
+ bhi _022161A8
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221619C: ; jump table
+ .short _022161A8 - _0221619C - 2 ; case 0
+ .short _022161B8 - _0221619C - 2 ; case 1
+ .short _022161CE - _0221619C - 2 ; case 2
+ .short _02216202 - _0221619C - 2 ; case 3
+ .short _0221624C - _0221619C - 2 ; case 4
+ .short _02216280 - _0221619C - 2 ; case 5
+_022161A8:
+ ldr r1, [sp, #0x7c]
+ add r0, sp, #0x14
+ strh r1, [r0]
+ ldr r1, [sp, #0x80]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x84]
+ strh r1, [r0, #4]
+ b _022162C8
+_022161B8:
+ ldr r0, [sp, #0x7c]
+ neg r1, r0
+ add r0, sp, #0x14
+ strh r1, [r0]
+ ldr r1, [sp, #0x80]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x84]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022162C8
+_022161CE:
+ cmp r5, #3
+ add r0, sp, #0x14
+ bne _022161E2
+ ldr r1, [sp, #0x70]
+ strh r1, [r0]
+ ldr r1, [sp, #0x74]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x78]
+ strh r1, [r0, #4]
+ b _022162C8
+_022161E2:
+ cmp r5, #5
+ bne _022161F4
+ ldr r1, [sp, #0x58]
+ strh r1, [r0]
+ ldr r1, [sp, #0x5c]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x60]
+ strh r1, [r0, #4]
+ b _022162C8
+_022161F4:
+ ldr r1, [sp, #0x64]
+ strh r1, [r0]
+ ldr r1, [sp, #0x68]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x6c]
+ strh r1, [r0, #4]
+ b _022162C8
+_02216202:
+ cmp r5, #2
+ bne _0221621C
+ ldr r0, [sp, #0x70]
+ neg r1, r0
+ add r0, sp, #0x14
+ strh r1, [r0]
+ ldr r1, [sp, #0x74]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x78]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022162C8
+_0221621C:
+ cmp r5, #5
+ bne _02216236
+ ldr r0, [sp, #0x64]
+ neg r1, r0
+ add r0, sp, #0x14
+ strh r1, [r0]
+ ldr r1, [sp, #0x68]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x6c]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022162C8
+_02216236:
+ ldr r0, [sp, #0x40]
+ neg r1, r0
+ add r0, sp, #0x14
+ strh r1, [r0]
+ ldr r1, [sp, #0x44]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x48]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022162C8
+_0221624C:
+ cmp r5, #3
+ add r0, sp, #0x14
+ bne _02216260
+ ldr r1, [sp, #0x40]
+ strh r1, [r0]
+ ldr r1, [sp, #0x44]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x48]
+ strh r1, [r0, #4]
+ b _022162C8
+_02216260:
+ cmp r5, #5
+ bne _02216272
+ ldr r1, [sp, #0x34]
+ strh r1, [r0]
+ ldr r1, [sp, #0x38]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x3c]
+ strh r1, [r0, #4]
+ b _022162C8
+_02216272:
+ ldr r1, [sp, #0x4c]
+ strh r1, [r0]
+ ldr r1, [sp, #0x50]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x54]
+ strh r1, [r0, #4]
+ b _022162C8
+_02216280:
+ cmp r5, #3
+ bne _0221629A
+ ldr r0, [sp, #0x4c]
+ neg r1, r0
+ add r0, sp, #0x14
+ strh r1, [r0]
+ ldr r1, [sp, #0x50]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x54]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022162C8
+_0221629A:
+ cmp r5, #2
+ bne _022162B4
+ ldr r0, [sp, #0x58]
+ neg r1, r0
+ add r0, sp, #0x14
+ strh r1, [r0]
+ ldr r1, [sp, #0x5c]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x60]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022162C8
+_022162B4:
+ ldr r0, [sp, #0x34]
+ neg r1, r0
+ add r0, sp, #0x14
+ strh r1, [r0]
+ ldr r1, [sp, #0x38]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x3c]
+ neg r1, r1
+ strh r1, [r0, #4]
+_022162C8:
+ ldr r2, [sp, #0xc]
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_02215B48
+ add r5, r0, #0
+ add r1, sp, #0x28
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ add r0, r6, #0
+ mov r2, #3
+ bl MOD08_02215434
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, sp, #0x1c
+ bl MOD08_0222771C
+ ldr r0, [sp, #0x28]
+ cmp r0, #0
+ bne _02216334
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0
+ bne _02216334
+ ldr r0, [sp, #0x30]
+ cmp r0, #0
+ bne _02216334
+ add r3, sp, #0x1c
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x88
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ ldr r1, [r4, #0x20]
+ ldr r0, [sp, #0x1c]
+ ldr r1, [r1]
+ ldr r1, [r1, #4]
+ add r0, r0, r1
+ str r0, [r4, #0x28]
+ ldr r1, [r4, #0x20]
+ ldr r0, [sp, #0x20]
+ ldr r1, [r1]
+ ldr r1, [r1, #8]
+ add r0, r0, r1
+ str r0, [r4, #0x2c]
+ ldr r1, [r4, #0x20]
+ ldr r0, [sp, #0x24]
+ ldr r1, [r1]
+ ldr r1, [r1, #0xc]
+ add r0, r0, r1
+ str r0, [r4, #0x30]
+ b _02216388
+_02216334:
+ ldr r2, [sp, #0x28]
+ ldr r1, [sp, #0x2c]
+ ldr r0, [sp, #0x30]
+ str r2, [sp, #0x88]
+ str r1, [sp, #0x8c]
+ str r0, [sp, #0x90]
+ cmp r2, #0
+ bne _0221634E
+ mov r0, #0x32
+ lsl r0, r0, #6
+ cmp r1, r0
+ bne _0221634E
+ mov r5, #1
+_0221634E:
+ ldr r1, [sp, #0x88]
+ add r0, r1, #0
+ ldr r1, [sp, #0x8c]
+ mul r0, r5
+ add r2, r1, #0
+ mul r2, r5
+ ldr r1, [sp, #0x24]
+ str r2, [sp, #0x8c]
+ add r2, r1, #0
+ mul r2, r5
+ str r0, [sp, #0x88]
+ str r2, [sp, #0x90]
+ ldr r1, [r4, #0x20]
+ ldr r1, [r1]
+ ldr r1, [r1, #4]
+ add r0, r0, r1
+ str r0, [r4, #0x28]
+ ldr r1, [r4, #0x20]
+ ldr r0, [sp, #0x8c]
+ ldr r1, [r1]
+ ldr r1, [r1, #8]
+ add r0, r0, r1
+ str r0, [r4, #0x2c]
+ ldr r1, [r4, #0x20]
+ ldr r0, [sp, #0x90]
+ ldr r1, [r1]
+ ldr r1, [r1, #0xc]
+ add r0, r0, r1
+ str r0, [r4, #0x30]
+_02216388:
+ ldr r0, [sp, #0xa8]
+ cmp r0, #0
+ beq _022163C6
+ cmp r0, #1
+ beq _02216398
+ cmp r0, #2
+ beq _022163B0
+ b _022163C6
+_02216398:
+ ldr r0, [sp, #0xac]
+ ldr r3, [sp, #0xc]
+ str r0, [sp]
+ str r5, [sp, #4]
+ add r0, sp, #0x88
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD08_02215F80
+ b _022163C6
+_022163B0:
+ ldr r0, [sp, #0xac]
+ ldr r3, [sp, #0xc]
+ str r0, [sp]
+ str r5, [sp, #4]
+ add r0, sp, #0x88
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD08_02216050
+_022163C6:
+ add r1, sp, #0x14
+ ldrh r2, [r1]
+ add r0, r4, #0
+ add r0, #0x50
+ strh r2, [r0]
+ add r0, r4, #0
+ ldrh r2, [r1, #2]
+ add r0, #0x52
+ add r4, #0x54
+ strh r2, [r0]
+ ldrh r0, [r1, #4]
+ strh r0, [r4]
+ add sp, #0x94
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022163E4
+MOD08_022163E4: ; 0x022163E4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r0, #0
+ add r5, r1, #0
+ add r4, r2, #0
+ bl FUN_0201341C
+ add r6, r0, #0
+ bl MOD08_02212458
+ str r0, [sp, #8]
+ add r0, r6, #0
+ bl MOD08_02212460
+ add r3, r0, #0
+ str r5, [sp]
+ ldr r2, [sp, #8]
+ add r0, r6, #0
+ add r1, r7, #0
+ str r4, [sp, #4]
+ bl MOD08_02216120
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02216414
+MOD08_02216414: ; 0x02216414
+ ldr r3, _0221641C ; =MOD08_022163E4
+ mov r1, #0
+ add r2, r1, #0
+ bx r3
+ .align 2, 0
+_0221641C: .word MOD08_022163E4
+
+ thumb_func_start MOD08_02216420
+MOD08_02216420: ; 0x02216420
+ ldr r3, _02216428 ; =MOD08_022163E4
+ mov r1, #1
+ add r2, r1, #0
+ bx r3
+ .align 2, 0
+_02216428: .word MOD08_022163E4
+
+ thumb_func_start MOD08_0221642C
+MOD08_0221642C: ; 0x0221642C
+ ldr r3, _02216434 ; =MOD08_022163E4
+ mov r1, #1
+ mov r2, #2
+ bx r3
+ .align 2, 0
+_02216434: .word MOD08_022163E4
+
+ thumb_func_start MOD08_02216438
+MOD08_02216438: ; 0x02216438
+ ldr r3, _02216440 ; =MOD08_022163E4
+ mov r1, #1
+ mov r2, #3
+ bx r3
+ .align 2, 0
+_02216440: .word MOD08_022163E4
+
+ thumb_func_start MOD08_02216444
+MOD08_02216444: ; 0x02216444
+ ldr r3, _0221644C ; =MOD08_022163E4
+ mov r1, #1
+ mov r2, #4
+ bx r3
+ .align 2, 0
+_0221644C: .word MOD08_022163E4
+
+ thumb_func_start MOD08_02216450
+MOD08_02216450: ; 0x02216450
+ ldr r3, _02216458 ; =MOD08_022163E4
+ mov r1, #1
+ mov r2, #5
+ bx r3
+ .align 2, 0
+_02216458: .word MOD08_022163E4
+
+ thumb_func_start MOD08_0221645C
+MOD08_0221645C: ; 0x0221645C
+ ldr r3, _02216464 ; =MOD08_022163E4
+ mov r1, #2
+ mov r2, #1
+ bx r3
+ .align 2, 0
+_02216464: .word MOD08_022163E4
+
+ thumb_func_start MOD08_02216468
+MOD08_02216468: ; 0x02216468
+ ldr r3, _02216470 ; =MOD08_022163E4
+ mov r1, #2
+ add r2, r1, #0
+ bx r3
+ .align 2, 0
+_02216470: .word MOD08_022163E4
+
+ thumb_func_start MOD08_02216474
+MOD08_02216474: ; 0x02216474
+ ldr r3, _0221647C ; =MOD08_022163E4
+ mov r1, #2
+ mov r2, #3
+ bx r3
+ .align 2, 0
+_0221647C: .word MOD08_022163E4
+
+ thumb_func_start MOD08_02216480
+MOD08_02216480: ; 0x02216480
+ ldr r3, _02216488 ; =MOD08_022163E4
+ mov r1, #2
+ mov r2, #4
+ bx r3
+ .align 2, 0
+_02216488: .word MOD08_022163E4
+
+ thumb_func_start MOD08_0221648C
+MOD08_0221648C: ; 0x0221648C
+ ldr r3, _02216494 ; =MOD08_022163E4
+ mov r1, #2
+ mov r2, #5
+ bx r3
+ .align 2, 0
+_02216494: .word MOD08_022163E4
+
+ thumb_func_start MOD08_02216498
+MOD08_02216498: ; 0x02216498
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ bl FUN_0201341C
+ add r4, r0, #0
+ bl MOD08_02212458
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212460
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r1, r5, #0
+ add r3, r6, #0
+ bl MOD08_02216120
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022164C8
+MOD08_022164C8: ; 0x022164C8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r2, [r4, #0x14]
+ add r5, r0, #0
+ cmp r2, #0
+ beq _022164D8
+ bl MOD08_0221658C
+_022164D8:
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ beq _022164E6
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_022168C0
+_022164E6:
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _022164F4
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02217124
+_022164F4:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02217158
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _0221650A
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02217168
+_0221650A:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_0221650C
+MOD08_0221650C: ; 0x0221650C
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r4, [r1]
+ add r6, r2, #0
+ add r0, r4, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ beq _02216534
+ mov r5, #1
+ b _02216536
+_02216534:
+ mov r5, #0
+_02216536:
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_0222765C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221654C
+MOD08_0221654C: ; 0x0221654C
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r4, [r1]
+ add r6, r2, #0
+ add r0, r4, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ beq _02216574
+ mov r5, #1
+ b _02216576
+_02216574:
+ mov r5, #0
+_02216576:
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_0222765C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221658C
+MOD08_0221658C: ; 0x0221658C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xbc
+ add r4, r1, #0
+ ldr r2, [r4, #0x14]
+ add r5, r0, #0
+ cmp r2, #0x64
+ bgt _022165F4
+ blt _0221659E
+ b _02216768
+_0221659E:
+ cmp r2, #0x22
+ bhi _022165FA
+ add r3, r2, r2
+ add r3, pc
+ ldrh r3, [r3, #6]
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ add pc, r3
+_022165AE: ; jump table
+ .short _02216872 - _022165AE - 2 ; case 0
+ .short _022165FC - _022165AE - 2 ; case 1
+ .short _02216608 - _022165AE - 2 ; case 2
+ .short _02216704 - _022165AE - 2 ; case 3
+ .short _02216740 - _022165AE - 2 ; case 4
+ .short _02216754 - _022165AE - 2 ; case 5
+ .short _02216614 - _022165AE - 2 ; case 6
+ .short _02216620 - _022165AE - 2 ; case 7
+ .short _022166EC - _022165AE - 2 ; case 8
+ .short _022166F8 - _022165AE - 2 ; case 9
+ .short _0221662C - _022165AE - 2 ; case 10
+ .short _02216638 - _022165AE - 2 ; case 11
+ .short _02216794 - _022165AE - 2 ; case 12
+ .short _022167A4 - _022165AE - 2 ; case 13
+ .short _02216644 - _022165AE - 2 ; case 14
+ .short _02216650 - _022165AE - 2 ; case 15
+ .short _0221665C - _022165AE - 2 ; case 16
+ .short _02216668 - _022165AE - 2 ; case 17
+ .short _02216674 - _022165AE - 2 ; case 18
+ .short _02216680 - _022165AE - 2 ; case 19
+ .short _0221668C - _022165AE - 2 ; case 20
+ .short _02216698 - _022165AE - 2 ; case 21
+ .short _022166A4 - _022165AE - 2 ; case 22
+ .short _022166B0 - _022165AE - 2 ; case 23
+ .short _022166BC - _022165AE - 2 ; case 24
+ .short _022166C8 - _022165AE - 2 ; case 25
+ .short _022166D4 - _022165AE - 2 ; case 26
+ .short _022166E0 - _022165AE - 2 ; case 27
+ .short _022167B4 - _022165AE - 2 ; case 28
+ .short _02216872 - _022165AE - 2 ; case 29
+ .short _02216804 - _022165AE - 2 ; case 30
+ .short _022167DA - _022165AE - 2 ; case 31
+ .short _0221683C - _022165AE - 2 ; case 32
+ .short _022167C0 - _022165AE - 2 ; case 33
+ .short _022167CE - _022165AE - 2 ; case 34
+_022165F4:
+ cmp r2, #0x65
+ bne _022165FA
+ b _0221677E
+_022165FA:
+ b _02216872
+_022165FC:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_0222771C
+ b _02216872
+_02216608:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_0222771C
+ b _02216872
+_02216614:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_0222774C
+ b _02216872
+_02216620:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_0222774C
+ b _02216872
+_0221662C:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_0222777C
+ b _02216872
+_02216638:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_0222777C
+ b _02216872
+_02216644:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_022277AC
+ b _02216872
+_02216650:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_022277AC
+ b _02216872
+_0221665C:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_022277DC
+ b _02216872
+_02216668:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_022277DC
+ b _02216872
+_02216674:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_0222780C
+ b _02216872
+_02216680:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_0222780C
+ b _02216872
+_0221668C:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_0222783C
+ b _02216872
+_02216698:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_0222783C
+ b _02216872
+_022166A4:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_0222786C
+ b _02216872
+_022166B0:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_0222786C
+ b _02216872
+_022166BC:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_0222789C
+ b _02216872
+_022166C8:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_0222789C
+ b _02216872
+_022166D4:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_022278CC
+ b _02216872
+_022166E0:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_022278CC
+ b _02216872
+_022166EC:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_0222792C
+ b _02216872
+_022166F8:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_0222792C
+ b _02216872
+_02216704:
+ ldr r0, [r4]
+ add r1, sp, #0xa0
+ mov r2, #4
+ bl MOD08_02215434
+ add r0, r4, #0
+ bl MOD08_0221727C
+ strb r0, [r4, #8]
+ ldr r0, [sp, #0xa4]
+ str r0, [sp, #0xb0]
+ ldr r0, [sp, #0xa8]
+ str r0, [sp, #0xb4]
+ ldr r0, [sp, #0xac]
+ str r0, [sp, #0xb8]
+ ldr r0, [sp, #0xa0]
+ cmp r0, #1
+ bne _0221672C
+ mov r0, #1
+ strb r0, [r4, #8]
+_0221672C:
+ mov r0, #8
+ ldrsb r1, [r4, r0]
+ ldr r2, [sp, #0xb0]
+ mul r1, r2
+ str r1, [sp, #0xb0]
+ ldrsb r0, [r4, r0]
+ ldr r1, [sp, #0xb4]
+ mul r0, r1
+ str r0, [sp, #0xb4]
+ b _02216872
+_02216740:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_0222771C
+ add r0, r4, #0
+ add r1, sp, #0xb0
+ bl MOD08_0221734C
+ b _02216872
+_02216754:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_0222771C
+ add r0, r4, #0
+ add r1, sp, #0xb0
+ bl MOD08_0221734C
+ b _02216872
+_02216768:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_0222771C
+ ldr r1, [r4, #0x24]
+ add r0, r4, #0
+ add r2, sp, #0xb0
+ bl MOD08_022172C0
+ b _02216872
+_0221677E:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0xb0
+ bl MOD08_0222771C
+ ldr r1, [r4, #0x28]
+ add r0, r4, #0
+ add r2, sp, #0xb0
+ bl MOD08_022172C0
+ b _02216872
+_02216794:
+ add r2, sp, #0xb0
+ bl MOD08_0221654C
+ add r0, r4, #0
+ add r1, sp, #0xb0
+ bl MOD08_0221734C
+ b _02216872
+_022167A4:
+ add r2, sp, #0xb0
+ bl MOD08_0221650C
+ add r0, r4, #0
+ add r1, sp, #0xb0
+ bl MOD08_0221734C
+ b _02216872
+_022167B4:
+ ldr r0, _022168A8 ; =0x00002CE0
+ str r0, [sp, #0xb0]
+ mov r0, #0
+ str r0, [sp, #0xb4]
+ str r0, [sp, #0xb8]
+ b _02216872
+_022167C0:
+ ldr r0, _022168AC ; =0xFFFFEC78
+ str r0, [sp, #0xb0]
+ ldr r0, _022168B0 ; =0xFFFFE890
+ str r0, [sp, #0xb4]
+ mov r0, #0
+ str r0, [sp, #0xb8]
+ b _02216872
+_022167CE:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0xb0
+ bl MOD08_0222771C
+ b _02216872
+_022167DA:
+ ldr r6, _022168B4 ; =0x0222B344
+ add r3, sp, #0x70
+ mov r2, #6
+_022167E0:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _022167E0
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ bl MOD08_02227468
+ lsl r1, r0, #3
+ add r0, sp, #0x70
+ ldr r0, [r0, r1]
+ str r0, [sp, #0xb0]
+ add r0, sp, #0x74
+ ldr r0, [r0, r1]
+ str r0, [sp, #0xb4]
+ mov r0, #0
+ str r0, [sp, #0xb8]
+ b _02216872
+_02216804:
+ ldr r6, _022168B8 ; =0x0222B3DC
+ add r3, sp, #0x38
+ mov r2, #7
+_0221680A:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0221680A
+ ldr r0, [r4]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216820
+ mov r0, #6
+ b _02216828
+_02216820:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ bl MOD08_02227468
+_02216828:
+ lsl r1, r0, #3
+ add r0, sp, #0x38
+ ldr r0, [r0, r1]
+ str r0, [sp, #0xb0]
+ add r0, sp, #0x3c
+ ldr r0, [r0, r1]
+ str r0, [sp, #0xb4]
+ mov r0, #0
+ str r0, [sp, #0xb8]
+ b _02216872
+_0221683C:
+ ldr r6, _022168BC ; =0x0222B3A4
+ add r3, sp, #0
+ mov r2, #7
+_02216842:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02216842
+ ldr r0, [r4]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216858
+ mov r0, #6
+ b _02216860
+_02216858:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ bl MOD08_02227468
+_02216860:
+ lsl r1, r0, #3
+ add r0, sp, #0
+ ldr r0, [r0, r1]
+ str r0, [sp, #0xb0]
+ add r0, sp, #4
+ ldr r0, [r0, r1]
+ str r0, [sp, #0xb4]
+ mov r0, #0
+ str r0, [sp, #0xb8]
+_02216872:
+ add r2, sp, #0xb0
+ ldmia r2!, {r0, r1}
+ add r4, #0x2c
+ stmia r4!, {r0, r1}
+ ldr r0, [r2]
+ str r0, [r4]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #0xb0]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r1, r0
+ str r0, [r5, #0x28]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #0xb4]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #0xb8]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r1, r0
+ str r0, [r5, #0x30]
+ add sp, #0xbc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_022168A8: .word 0x00002CE0
+_022168AC: .word 0xFFFFEC78
+_022168B0: .word 0xFFFFE890
+_022168B4: .word 0x0222B344
+_022168B8: .word 0x0222B3DC
+_022168BC: .word 0x0222B3A4
+
+ thumb_func_start MOD08_022168C0
+MOD08_022168C0: ; 0x022168C0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x148
+ str r0, [sp]
+ str r1, [sp, #4]
+ ldr r0, [r1]
+ ldr r1, [r1, #0x24]
+ bl MOD08_02227468
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r1, [r1, #0x28]
+ bl MOD08_02227468
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x18]
+ cmp r0, #0x1a
+ bls _022168EC
+ bl _022170F2
+_022168EC:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022168F8: ; jump table
+ .short _0221692E - _022168F8 - 2 ; case 0
+ .short _0221693A - _022168F8 - 2 ; case 1
+ .short _0221693A - _022168F8 - 2 ; case 2
+ .short _02217024 - _022168F8 - 2 ; case 3
+ .short _022169A2 - _022168F8 - 2 ; case 4
+ .short _02216A5C - _022168F8 - 2 ; case 5
+ .short _02216D90 - _022168F8 - 2 ; case 6
+ .short _02216D90 - _022168F8 - 2 ; case 7
+ .short _02216B16 - _022168F8 - 2 ; case 8
+ .short _02216B16 - _022168F8 - 2 ; case 9
+ .short _02216B7E - _022168F8 - 2 ; case 10
+ .short _02216B7E - _022168F8 - 2 ; case 11
+ .short _02216BCC - _022168F8 - 2 ; case 12
+ .short _02216BCC - _022168F8 - 2 ; case 13
+ .short _02216C14 - _022168F8 - 2 ; case 14
+ .short _02216C14 - _022168F8 - 2 ; case 15
+ .short _02216C5C - _022168F8 - 2 ; case 16
+ .short _02216C5C - _022168F8 - 2 ; case 17
+ .short _02216D00 - _022168F8 - 2 ; case 18
+ .short _02216D00 - _022168F8 - 2 ; case 19
+ .short _02216D48 - _022168F8 - 2 ; case 20
+ .short _02216D48 - _022168F8 - 2 ; case 21
+ .short _02217038 - _022168F8 - 2 ; case 22
+ .short _022170F2 - _022168F8 - 2 ; case 23
+ .short _022170C4 - _022168F8 - 2 ; case 24
+ .short _02217080 - _022168F8 - 2 ; case 25
+ .short _02217092 - _022168F8 - 2 ; case 26
+_0221692E:
+ mov r1, #0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ strh r1, [r0, #2]
+ strh r1, [r0, #4]
+ b _022170F2
+_0221693A:
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216974
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x10]
+ cmp r0, #2
+ add r0, sp, #0x20
+ bne _02216962
+ ldr r1, _02216CA4 ; =0xFFFFF2F8
+ strh r1, [r0]
+ mov r1, #0x73
+ lsl r1, r1, #4
+ strh r1, [r0, #2]
+ mov r1, #0x2e
+ lsl r1, r1, #4
+ strh r1, [r0, #4]
+ b _022170F2
+_02216962:
+ mov r1, #0x92
+ lsl r1, r1, #4
+ strh r1, [r0]
+ ldr r1, _02216CA8 ; =0xFFFFFA60
+ strh r1, [r0, #2]
+ mov r1, #0x2e
+ lsl r1, r1, #4
+ strh r1, [r0, #4]
+ b _022170F2
+_02216974:
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02216CAC ; =0x0222BB44
+ add r2, r2, r0
+ ldr r3, [r1, r2]
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _02216CB0 ; =0x0222BB48
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02216CB4 ; =0x0222BB4C
+ add r0, r3, r0
+ ldr r1, [r1, r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ strh r0, [r2, #4]
+ b _022170F2
+_022169A2:
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _022169DE
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02216CAC ; =0x0222BB44
+ add r2, r2, r0
+ ldr r2, [r1, r2]
+ neg r3, r2
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _02216CB0 ; =0x0222BB48
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02216CB4 ; =0x0222BB4C
+ add r0, r3, r0
+ ldr r1, [r1, r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ strh r0, [r2, #4]
+ b _022170F2
+_022169DE:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r1, [r1, #0x24]
+ bl MOD08_02227470
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r1, [r1, #0x28]
+ bl MOD08_02227470
+ cmp r4, r0
+ bne _02216A2A
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02216CAC ; =0x0222BB44
+ add r2, r2, r0
+ ldr r3, [r1, r2]
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _02216CB0 ; =0x0222BB48
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02216CB4 ; =0x0222BB4C
+ add r0, r3, r0
+ ldr r1, [r1, r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ strh r0, [r2, #4]
+ b _022170F2
+_02216A2A:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r1, [r1, #0x24]
+ bl MOD08_02227470
+ cmp r0, #3
+ add r0, sp, #0x20
+ bne _02216A4E
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ strh r1, [r0]
+ mov r1, #0x21
+ lsl r1, r1, #6
+ strh r1, [r0, #2]
+ ldr r1, _02216CB8 ; =0x000005FC
+ strh r1, [r0, #4]
+ b _022170F2
+_02216A4E:
+ ldr r1, _02216CBC ; =0xFFFFEF7C
+ strh r1, [r0]
+ ldr r1, _02216CC0 ; =0xFFFFF558
+ strh r1, [r0, #2]
+ ldr r1, _02216CB8 ; =0x000005FC
+ strh r1, [r0, #4]
+ b _022170F2
+_02216A5C:
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216A98
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02216CAC ; =0x0222BB44
+ add r2, r2, r0
+ ldr r2, [r1, r2]
+ neg r3, r2
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _02216CB0 ; =0x0222BB48
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02216CB4 ; =0x0222BB4C
+ add r0, r3, r0
+ ldr r1, [r1, r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ strh r0, [r2, #4]
+ b _022170F2
+_02216A98:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r1, [r1, #0x24]
+ bl MOD08_02227470
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r1, [r1, #0x28]
+ bl MOD08_02227470
+ cmp r4, r0
+ bne _02216AE4
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02216CAC ; =0x0222BB44
+ add r2, r2, r0
+ ldr r3, [r1, r2]
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _02216CB0 ; =0x0222BB48
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02216CB4 ; =0x0222BB4C
+ add r0, r3, r0
+ ldr r1, [r1, r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ strh r0, [r2, #4]
+ b _022170F2
+_02216AE4:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r1, [r1, #0x24]
+ bl MOD08_02227470
+ cmp r0, #3
+ add r0, sp, #0x20
+ bne _02216B08
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ strh r1, [r0]
+ mov r1, #0x21
+ lsl r1, r1, #6
+ strh r1, [r0, #2]
+ ldr r1, _02216CB8 ; =0x000005FC
+ strh r1, [r0, #4]
+ b _022170F2
+_02216B08:
+ ldr r1, _02216CBC ; =0xFFFFEF7C
+ strh r1, [r0]
+ ldr r1, _02216CC0 ; =0xFFFFF558
+ strh r1, [r0, #2]
+ ldr r1, _02216CB8 ; =0x000005FC
+ strh r1, [r0, #4]
+ b _022170F2
+_02216B16:
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216B50
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x10]
+ cmp r0, #2
+ add r0, sp, #0x20
+ bne _02216B3E
+ ldr r1, _02216CC4 ; =0xFFFFF6E0
+ strh r1, [r0]
+ mov r1, #0x5a
+ lsl r1, r1, #4
+ strh r1, [r0, #2]
+ mov r1, #0x2e
+ lsl r1, r1, #4
+ strh r1, [r0, #4]
+ b _022170F2
+_02216B3E:
+ mov r1, #0x92
+ lsl r1, r1, #4
+ strh r1, [r0]
+ ldr r1, _02216CA8 ; =0xFFFFFA60
+ strh r1, [r0, #2]
+ mov r1, #0x2e
+ lsl r1, r1, #4
+ strh r1, [r0, #4]
+ b _022170F2
+_02216B50:
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02216CC8 ; =0x0222B484
+ add r2, r2, r0
+ ldr r3, [r1, r2]
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _02216CCC ; =0x0222B488
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02216CD0 ; =0x0222B48C
+ add r0, r3, r0
+ ldr r1, [r1, r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ strh r0, [r2, #4]
+ b _022170F2
+_02216B7E:
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216B9E
+ ldr r1, _02216CC4 ; =0xFFFFF6E0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ mov r1, #0x5a
+ lsl r1, r1, #4
+ strh r1, [r0, #2]
+ mov r1, #0x2e
+ lsl r1, r1, #4
+ strh r1, [r0, #4]
+ b _022170F2
+_02216B9E:
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02216CD4 ; =0x0222B634
+ add r2, r2, r0
+ ldr r3, [r1, r2]
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _02216CCC ; =0x0222B488
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02216CD0 ; =0x0222B48C
+ add r0, r3, r0
+ ldr r1, [r1, r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ strh r0, [r2, #4]
+ b _022170F2
+_02216BCC:
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216BEC
+ ldr r1, _02216CD8 ; =0xFFFFF488
+ add r0, sp, #0x20
+ strh r1, [r0]
+ mov r1, #0x5a
+ lsl r1, r1, #4
+ strh r1, [r0, #2]
+ mov r1, #0x2e
+ lsl r1, r1, #4
+ strh r1, [r0, #4]
+ b _022170F2
+_02216BEC:
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02216CDC ; =0x0222B994
+ add r2, r2, r0
+ ldr r3, [r1, r2]
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _02216CE0 ; =0x0222B998
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02216CE4 ; =0x0222B99C
+ add r0, r3, r0
+ ldr r0, [r1, r0]
+ strh r0, [r2, #4]
+ b _022170F2
+_02216C14:
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216C34
+ ldr r1, _02216CC4 ; =0xFFFFF6E0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ mov r1, #0x5a
+ lsl r1, r1, #4
+ strh r1, [r0, #2]
+ mov r1, #0x2e
+ lsl r1, r1, #4
+ strh r1, [r0, #4]
+ b _022170F2
+_02216C34:
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02216CE8 ; =0x0222BCF4
+ add r2, r2, r0
+ ldr r3, [r1, r2]
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _02216CEC ; =0x0222BCF8
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02216CF0 ; =0x0222BCFC
+ add r0, r3, r0
+ ldr r0, [r1, r0]
+ strh r0, [r2, #4]
+ b _022170F2
+_02216C5C:
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216C7C
+ ldr r1, _02216CC4 ; =0xFFFFF6E0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ mov r1, #0x5a
+ lsl r1, r1, #4
+ strh r1, [r0, #2]
+ mov r1, #0x2e
+ lsl r1, r1, #4
+ strh r1, [r0, #4]
+ b _022170F2
+_02216C7C:
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02216CF4 ; =0x0222B7E4
+ add r2, r2, r0
+ ldr r3, [r1, r2]
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _02216CF8 ; =0x0222B7E8
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02216CFC ; =0x0222B7EC
+ add r0, r3, r0
+ ldr r0, [r1, r0]
+ strh r0, [r2, #4]
+ b _022170F2
+ .align 2, 0
+_02216CA4: .word 0xFFFFF2F8
+_02216CA8: .word 0xFFFFFA60
+_02216CAC: .word 0x0222BB44
+_02216CB0: .word 0x0222BB48
+_02216CB4: .word 0x0222BB4C
+_02216CB8: .word 0x000005FC
+_02216CBC: .word 0xFFFFEF7C
+_02216CC0: .word 0xFFFFF558
+_02216CC4: .word 0xFFFFF6E0
+_02216CC8: .word 0x0222B484
+_02216CCC: .word 0x0222B488
+_02216CD0: .word 0x0222B48C
+_02216CD4: .word 0x0222B634
+_02216CD8: .word 0xFFFFF488
+_02216CDC: .word 0x0222B994
+_02216CE0: .word 0x0222B998
+_02216CE4: .word 0x0222B99C
+_02216CE8: .word 0x0222BCF4
+_02216CEC: .word 0x0222BCF8
+_02216CF0: .word 0x0222BCFC
+_02216CF4: .word 0x0222B7E4
+_02216CF8: .word 0x0222B7E8
+_02216CFC: .word 0x0222B7EC
+_02216D00:
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216D20
+ ldr r1, _02217044 ; =0xFFFFF6E0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ mov r1, #0x5a
+ lsl r1, r1, #4
+ strh r1, [r0, #2]
+ mov r1, #0x2e
+ lsl r1, r1, #4
+ strh r1, [r0, #4]
+ b _022170F2
+_02216D20:
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02217048 ; =0x0222BEA4
+ add r2, r2, r0
+ ldr r3, [r1, r2]
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _0221704C ; =0x0222BEA8
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02217050 ; =0x0222BEAC
+ add r0, r3, r0
+ ldr r0, [r1, r0]
+ strh r0, [r2, #4]
+ b _022170F2
+_02216D48:
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216D68
+ ldr r1, _02217054 ; =0xFFFFEF10
+ add r0, sp, #0x20
+ strh r1, [r0]
+ mov r1, #0x5a
+ lsl r1, r1, #4
+ strh r1, [r0, #2]
+ mov r1, #0x2e
+ lsl r1, r1, #4
+ strh r1, [r0, #4]
+ b _022170F2
+_02216D68:
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc
+ mul r1, r0
+ ldr r2, [sp, #0x18]
+ mov r0, #0x48
+ mul r0, r2
+ ldr r2, _02217058 ; =0x0222C054
+ add r2, r2, r0
+ ldr r3, [r1, r2]
+ add r2, sp, #0x20
+ strh r3, [r2]
+ ldr r3, _0221705C ; =0x0222C058
+ add r3, r3, r0
+ ldr r3, [r1, r3]
+ strh r3, [r2, #2]
+ ldr r3, _02217060 ; =0x0222C05C
+ add r0, r3, r0
+ ldr r0, [r1, r0]
+ strh r0, [r2, #4]
+ b _022170F2
+_02216D90:
+ ldr r4, _02217064 ; =0x0222B414
+ add r3, sp, #0xd8
+ mov r2, #0xe
+_02216D96:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02216D96
+ ldr r3, _02217068 ; =0x0222B334
+ add r2, sp, #0x58
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ add r1, sp, #0xc8
+ mov r0, #0
+ str r1, [sp, #0xc]
+ add r1, sp, #0xb8
+ mov ip, r0
+ str r1, [sp, #0x1c]
+ add r0, sp, #0xd8
+ add r7, sp, #0xa8
+ add r6, sp, #0x98
+ add r5, sp, #0x88
+ add r1, sp, #0x78
+ add r2, sp, #0x68
+_02216DC2:
+ ldr r4, [r0]
+ ldr r3, [sp, #0xc]
+ str r4, [r3]
+ ldr r4, [r0, #0x10]
+ ldr r3, [sp, #0x1c]
+ str r4, [r3]
+ ldr r3, [r0, #0x20]
+ stmia r7!, {r3}
+ ldr r3, [r0, #0x30]
+ stmia r6!, {r3}
+ ldr r3, [r0, #0x40]
+ stmia r5!, {r3}
+ ldr r3, [r0, #0x50]
+ stmia r1!, {r3}
+ ldr r3, [r0, #0x60]
+ add r0, r0, #4
+ stmia r2!, {r3}
+ ldr r3, [sp, #0xc]
+ add r3, r3, #4
+ str r3, [sp, #0xc]
+ ldr r3, [sp, #0x1c]
+ add r3, r3, #4
+ str r3, [sp, #0x1c]
+ mov r3, ip
+ add r3, r3, #1
+ mov ip, r3
+ cmp r3, #4
+ blt _02216DC2
+ ldr r0, [sp, #4]
+ ldr r0, [r0]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02216E3E
+ mov r0, #0
+ str r0, [sp, #8]
+ add r0, sp, #0x58
+ str r0, [sp, #0x10]
+ add r7, sp, #0xc8
+ add r6, sp, #0xb8
+ add r0, sp, #0xa8
+ add r1, sp, #0x98
+ add r2, sp, #0x88
+ add r3, sp, #0x78
+ add r4, sp, #0x68
+_02216E1C:
+ ldr r5, [sp, #0x10]
+ ldr r5, [r5]
+ stmia r7!, {r5}
+ stmia r6!, {r5}
+ stmia r0!, {r5}
+ stmia r1!, {r5}
+ stmia r2!, {r5}
+ stmia r3!, {r5}
+ stmia r4!, {r5}
+ ldr r5, [sp, #0x10]
+ add r5, r5, #4
+ str r5, [sp, #0x10]
+ ldr r5, [sp, #8]
+ add r5, r5, #1
+ str r5, [sp, #8]
+ cmp r5, #4
+ blt _02216E1C
+_02216E3E:
+ ldr r0, [sp, #0x18]
+ cmp r0, #5
+ bhi _02216E5C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02216E50: ; jump table
+ .short _02216E5C - _02216E50 - 2 ; case 0
+ .short _02216E6C - _02216E50 - 2 ; case 1
+ .short _02216E98 - _02216E50 - 2 ; case 2
+ .short _02216ED0 - _02216E50 - 2 ; case 3
+ .short _02216F5E - _02216E50 - 2 ; case 4
+ .short _02216F96 - _02216E50 - 2 ; case 5
+_02216E5C:
+ ldr r1, [sp, #0xc8]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0xcc]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0xd0]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216E6C:
+ ldr r0, [sp, #0xd4]
+ cmp r0, #1
+ bne _02216E82
+ ldr r1, [sp, #0xc8]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0xcc]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0xd0]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216E82:
+ ldr r0, [sp, #0xc8]
+ neg r1, r0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0xcc]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0xd0]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022170F2
+_02216E98:
+ ldr r0, [sp, #0x14]
+ cmp r0, #3
+ bne _02216EAE
+ ldr r1, [sp, #0xb8]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0xbc]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0xc0]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216EAE:
+ cmp r0, #5
+ add r0, sp, #0x20
+ bne _02216EC2
+ ldr r1, [sp, #0x98]
+ strh r1, [r0]
+ ldr r1, [sp, #0x9c]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0xa0]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216EC2:
+ ldr r1, [sp, #0xa8]
+ strh r1, [r0]
+ ldr r1, [sp, #0xac]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0xb0]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216ED0:
+ ldr r0, [sp, #0x14]
+ cmp r0, #2
+ bne _02216F02
+ ldr r0, [sp, #0xc4]
+ cmp r0, #1
+ bne _02216EEC
+ ldr r1, [sp, #0xb8]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0xbc]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0xc0]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216EEC:
+ ldr r0, [sp, #0xb8]
+ neg r1, r0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0xbc]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0xc0]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022170F2
+_02216F02:
+ cmp r0, #5
+ bne _02216F32
+ ldr r0, [sp, #0xb4]
+ cmp r0, #1
+ bne _02216F22
+ ldr r0, [sp, #0x88]
+ neg r1, r0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0x8c]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x90]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022170F2
+_02216F22:
+ ldr r1, [sp, #0x88]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0x8c]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x90]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216F32:
+ ldr r0, [sp, #0x84]
+ cmp r0, #1
+ bne _02216F48
+ ldr r1, [sp, #0x78]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0x7c]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x80]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216F48:
+ ldr r0, [sp, #0x78]
+ neg r1, r0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0x7c]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x80]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022170F2
+_02216F5E:
+ ldr r0, [sp, #0x14]
+ cmp r0, #3
+ bne _02216F74
+ ldr r1, [sp, #0x78]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0x7c]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x80]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216F74:
+ cmp r0, #5
+ add r0, sp, #0x20
+ bne _02216F88
+ ldr r1, [sp, #0x68]
+ strh r1, [r0]
+ ldr r1, [sp, #0x6c]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x70]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216F88:
+ ldr r1, [sp, #0x88]
+ strh r1, [r0]
+ ldr r1, [sp, #0x8c]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x90]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216F96:
+ ldr r0, [sp, #0x14]
+ cmp r0, #3
+ bne _02216FC8
+ ldr r0, [sp, #0xc4]
+ cmp r0, #1
+ bne _02216FB2
+ ldr r1, [sp, #0x88]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0x8c]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x90]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216FB2:
+ ldr r0, [sp, #0x88]
+ neg r1, r0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0x8c]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x90]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022170F2
+_02216FC8:
+ cmp r0, #2
+ bne _02216FF8
+ ldr r0, [sp, #0xc4]
+ cmp r0, #1
+ bne _02216FE2
+ ldr r1, [sp, #0x98]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0x9c]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0xa0]
+ strh r1, [r0, #4]
+ b _022170F2
+_02216FE2:
+ ldr r0, [sp, #0x98]
+ neg r1, r0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0x9c]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0xa0]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022170F2
+_02216FF8:
+ ldr r0, [sp, #0xc4]
+ cmp r0, #1
+ bne _0221700E
+ ldr r1, [sp, #0x68]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0x6c]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x70]
+ strh r1, [r0, #4]
+ b _022170F2
+_0221700E:
+ ldr r0, [sp, #0x68]
+ neg r1, r0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, [sp, #0x6c]
+ neg r1, r1
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x70]
+ neg r1, r1
+ strh r1, [r0, #4]
+ b _022170F2
+_02217024:
+ ldr r1, _0221706C ; =0xFFFFFCE0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ mov r1, #0x4b
+ lsl r1, r1, #4
+ strh r1, [r0, #2]
+ mov r1, #0x7d
+ lsl r1, r1, #2
+ strh r1, [r0, #4]
+ b _022170F2
+_02217038:
+ ldr r1, _02217070 ; =0xFFFFF2AE
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, _02217074 ; =0xFFFFF5AC
+ b _02217078
+ nop
+_02217044: .word 0xFFFFF6E0
+_02217048: .word 0x0222BEA4
+_0221704C: .word 0x0222BEA8
+_02217050: .word 0x0222BEAC
+_02217054: .word 0xFFFFEF10
+_02217058: .word 0x0222C054
+_0221705C: .word 0x0222C058
+_02217060: .word 0x0222C05C
+_02217064: .word 0x0222B414
+_02217068: .word 0x0222B334
+_0221706C: .word 0xFFFFFCE0
+_02217070: .word 0xFFFFF2AE
+_02217074: .word 0xFFFFF5AC
+_02217078:
+ strh r1, [r0, #2]
+ mov r1, #0
+ strh r1, [r0, #4]
+ b _022170F2
+_02217080:
+ ldr r1, _02217114 ; =0xFFFFF290
+ add r0, sp, #0x20
+ strh r1, [r0]
+ mov r1, #0x7a
+ lsl r1, r1, #4
+ strh r1, [r0, #2]
+ mov r1, #0
+ strh r1, [r0, #4]
+ b _022170F2
+_02217092:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r1, [r1, #0x24]
+ bl MOD08_02227470
+ cmp r0, #3
+ add r0, sp, #0x20
+ bne _022170B6
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ strh r1, [r0]
+ mov r1, #0x21
+ lsl r1, r1, #6
+ strh r1, [r0, #2]
+ mov r1, #0
+ strh r1, [r0, #4]
+ b _022170F2
+_022170B6:
+ ldr r1, _02217118 ; =0xFFFFE890
+ strh r1, [r0]
+ ldr r1, _0221711C ; =0xFFFFF768
+ strh r1, [r0, #2]
+ mov r1, #0
+ strh r1, [r0, #4]
+ b _022170F2
+_022170C4:
+ ldr r4, _02217120 ; =0x0222B374
+ add r3, sp, #0x28
+ mov r2, #6
+_022170CA:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _022170CA
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r1, [r1, #0x24]
+ bl MOD08_02227468
+ lsl r2, r0, #3
+ add r0, sp, #0x28
+ ldr r1, [r0, r2]
+ add r0, sp, #0x20
+ strh r1, [r0]
+ add r1, sp, #0x2c
+ ldr r1, [r1, r2]
+ strh r1, [r0, #2]
+ mov r1, #0
+ strh r1, [r0, #4]
+_022170F2:
+ add r1, sp, #0x20
+ ldr r0, [sp]
+ ldrh r2, [r1]
+ add r0, #0x50
+ strh r2, [r0]
+ ldr r0, [sp]
+ ldrh r2, [r1, #2]
+ add r0, #0x52
+ strh r2, [r0]
+ ldr r0, [sp]
+ ldrh r1, [r1, #4]
+ add r0, #0x54
+ str r0, [sp]
+ strh r1, [r0]
+ add sp, #0x148
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02217114: .word 0xFFFFF290
+_02217118: .word 0xFFFFE890
+_0221711C: .word 0xFFFFF768
+_02217120: .word 0x0222B374
+
+ thumb_func_start MOD08_02217124
+MOD08_02217124: ; 0x02217124
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r1, #0
+ bl MOD08_022178CC
+ add r6, r0, #0
+ mov r4, #0
+ cmp r6, #0
+ ble _02217154
+_02217136:
+ add r0, r4, #0
+ bl MOD08_022178A4
+ ldr r1, [r5, #0x1c]
+ and r1, r0
+ cmp r0, r1
+ bne _0221714E
+ add r0, r4, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ bl MOD08_0221788C
+_0221714E:
+ add r4, r4, #1
+ cmp r4, r6
+ blt _02217136
+_02217154:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217158
+MOD08_02217158: ; 0x02217158
+ add r3, r0, #0
+ add r2, r1, #0
+ add r1, r3, #0
+ ldr r3, _02217164 ; =MOD08_02217B04
+ ldr r0, [r2, #0x20]
+ bx r3
+ .align 2, 0
+_02217164: .word MOD08_02217B04
+
+ thumb_func_start MOD08_02217168
+MOD08_02217168: ; 0x02217168
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ bl MOD08_02227468
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ bl MOD08_02227468
+ ldr r1, [r4, #0xc]
+ cmp r1, #3
+ bhi _022171B0
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02217190: ; jump table
+ .short _022171B0 - _02217190 - 2 ; case 0
+ .short _02217198 - _02217190 - 2 ; case 1
+ .short _022171A6 - _02217190 - 2 ; case 2
+ .short _022171B0 - _02217190 - 2 ; case 3
+_02217198:
+ cmp r0, #0
+ bne _022171A2
+ mov r5, #1
+ lsl r5, r5, #8
+ b _022171B0
+_022171A2:
+ ldr r5, _022171C4 ; =0xFFFFEC00
+ b _022171B0
+_022171A6:
+ cmp r0, #0
+ bne _022171AE
+ mov r5, #0
+ b _022171B0
+_022171AE:
+ ldr r5, _022171C8 ; =0xFFFFEB00
+_022171B0:
+ ldr r0, [r4, #4]
+ bl FUN_02013448
+ ldr r0, [r6, #0x20]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r5, r0
+ str r0, [r6, #0x30]
+ pop {r4, r5, r6, pc}
+ nop
+_022171C4: .word 0xFFFFEC00
+_022171C8: .word 0xFFFFEB00
+
+ thumb_func_start MOD08_022171CC
+MOD08_022171CC: ; 0x022171CC
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ bl FUN_0201341C
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0x38
+ bl AllocFromHeap
+ add r4, r0, #0
+ str r5, [r4]
+ add r0, r5, #0
+ bl MOD08_02212468
+ str r0, [r4, #4]
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r1, #0xc
+ mov r2, #6
+ bl MOD08_02215434
+ ldr r0, [r4, #0x10]
+ cmp r0, #4
+ bhi _02217214
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221720A: ; jump table
+ .short _02217214 - _0221720A - 2 ; case 0
+ .short _02217226 - _0221720A - 2 ; case 1
+ .short _02217238 - _0221720A - 2 ; case 2
+ .short _0221724A - _0221720A - 2 ; case 3
+ .short _0221725C - _0221720A - 2 ; case 4
+_02217214:
+ ldr r0, [r4]
+ bl MOD08_02212458
+ str r0, [r4, #0x24]
+ ldr r0, [r4]
+ bl MOD08_02212460
+ str r0, [r4, #0x28]
+ b _0221726C
+_02217226:
+ ldr r0, [r4]
+ bl MOD08_02212460
+ str r0, [r4, #0x24]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ str r0, [r4, #0x28]
+ b _0221726C
+_02217238:
+ ldr r0, [r4]
+ bl MOD08_02212458
+ str r0, [r4, #0x24]
+ ldr r0, [r4]
+ bl MOD08_02212460
+ str r0, [r4, #0x28]
+ b _0221726C
+_0221724A:
+ ldr r0, [r4]
+ bl MOD08_02212460
+ str r0, [r4, #0x24]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ str r0, [r4, #0x28]
+ b _0221726C
+_0221725C:
+ ldr r0, [r4]
+ bl MOD08_02212458
+ str r0, [r4, #0x24]
+ ldr r0, [r4]
+ bl MOD08_02212460
+ str r0, [r4, #0x28]
+_0221726C:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD08_022164C8
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_0221727C
+MOD08_0221727C: ; 0x0221727C
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r0, [r6]
+ ldr r1, [r6, #0x24]
+ mov r4, #1
+ bl MOD08_02227468
+ add r5, r0, #0
+ ldr r0, [r6]
+ ldr r1, [r6, #0x28]
+ bl MOD08_02227468
+ cmp r5, #5
+ bhi _022172BA
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022172A4: ; jump table
+ .short _022172BA - _022172A4 - 2 ; case 0
+ .short _022172B0 - _022172A4 - 2 ; case 1
+ .short _022172BA - _022172A4 - 2 ; case 2
+ .short _022172B4 - _022172A4 - 2 ; case 3
+ .short _022172BA - _022172A4 - 2 ; case 4
+ .short _022172B8 - _022172A4 - 2 ; case 5
+_022172B0:
+ sub r4, r4, #2
+ b _022172BA
+_022172B4:
+ sub r4, r4, #2
+ b _022172BA
+_022172B8:
+ sub r4, r4, #2
+_022172BA:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022172C0
+MOD08_022172C0: ; 0x022172C0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ add r5, r0, #0
+ add r0, sp, #0x20
+ mov r4, #0
+ str r4, [r0]
+ str r4, [r0, #4]
+ add r6, r1, #0
+ add r7, r2, #0
+ str r4, [r0, #8]
+_022172D4:
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl MOD08_02227468
+ cmp r4, r0
+ ldr r0, [r5]
+ bne _022172EC
+ add r1, sp, #0x10
+ mov r2, #4
+ bl MOD08_02215434
+ b _022172F4
+_022172EC:
+ add r1, sp, #0
+ mov r2, #4
+ bl MOD08_02215434
+_022172F4:
+ add r4, r4, #1
+ cmp r4, #6
+ blt _022172D4
+ add r0, r5, #0
+ bl MOD08_0221727C
+ strb r0, [r5, #8]
+ ldr r0, [sp, #0x14]
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x18]
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x1c]
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x10]
+ cmp r0, #1
+ bne _02217318
+ mov r0, #1
+ strb r0, [r5, #8]
+_02217318:
+ mov r1, #8
+ ldrsb r0, [r5, r1]
+ ldr r2, [sp, #0x20]
+ ldr r3, [sp, #0x24]
+ mul r0, r2
+ str r0, [sp, #0x20]
+ ldrsb r2, [r5, r1]
+ mul r2, r3
+ str r2, [sp, #0x24]
+ ldrsb r1, [r5, r1]
+ ldr r2, [sp, #0x28]
+ mul r1, r2
+ str r1, [sp, #0x28]
+ ldr r1, [r7]
+ add r0, r1, r0
+ str r0, [r7]
+ ldr r1, [r7, #4]
+ ldr r0, [sp, #0x24]
+ add r0, r1, r0
+ str r0, [r7, #4]
+ ldr r1, [r7, #8]
+ ldr r0, [sp, #0x28]
+ add r0, r1, r0
+ str r0, [r7, #8]
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0221734C
+MOD08_0221734C: ; 0x0221734C
+ push {r4, r5, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ add r4, r1, #0
+ add r1, sp, #0
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ ldr r0, [r5]
+ add r1, sp, #0xc
+ mov r2, #4
+ bl MOD08_02215434
+ add r0, r5, #0
+ bl MOD08_0221727C
+ strb r0, [r5, #8]
+ ldr r0, [sp, #0x10]
+ str r0, [sp]
+ ldr r0, [sp, #0x14]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0xc]
+ cmp r0, #1
+ bne _02217386
+ mov r0, #1
+ strb r0, [r5, #8]
+_02217386:
+ mov r1, #8
+ ldrsb r0, [r5, r1]
+ ldr r2, [sp]
+ ldr r3, [sp, #4]
+ mul r0, r2
+ str r0, [sp]
+ ldrsb r2, [r5, r1]
+ mul r2, r3
+ str r2, [sp, #4]
+ ldrsb r1, [r5, r1]
+ ldr r2, [sp, #8]
+ mul r1, r2
+ str r1, [sp, #8]
+ ldr r1, [r4]
+ add r0, r1, r0
+ str r0, [r4]
+ ldr r1, [r4, #4]
+ ldr r0, [sp, #4]
+ add r0, r1, r0
+ str r0, [r4, #4]
+ ldr r1, [r4, #8]
+ ldr r0, [sp, #8]
+ add r0, r1, r0
+ str r0, [r4, #8]
+ add sp, #0x1c
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022173BC
+MOD08_022173BC: ; 0x022173BC
+ ldr r3, _022173C4 ; =MOD08_02215434
+ ldr r0, [r0]
+ mov r2, #5
+ bx r3
+ .align 2, 0
+_022173C4: .word MOD08_02215434
+
+ thumb_func_start MOD08_022173C8
+MOD08_022173C8: ; 0x022173C8
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_022173CC
+MOD08_022173CC: ; 0x022173CC
+ push {r4, r5, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ add r4, r1, #0
+ add r1, sp, #0
+ mov r0, #0
+ strh r0, [r1]
+ strh r0, [r1, #2]
+ strh r0, [r1, #4]
+ add r0, r4, #0
+ add r1, sp, #8
+ bl MOD08_022173BC
+ add r0, r4, #0
+ bl MOD08_0221727C
+ strb r0, [r4, #8]
+ ldr r0, [sp, #0xc]
+ cmp r0, #1
+ bne _022173F8
+ mov r0, #1
+ strb r0, [r4, #8]
+_022173F8:
+ ldr r0, [sp, #8]
+ cmp r0, #3
+ bgt _02217416
+ cmp r0, #0
+ blt _02217482
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0221740E: ; jump table
+ .short _0221741A - _0221740E - 2 ; case 0
+ .short _02217446 - _0221740E - 2 ; case 1
+ .short _02217482 - _0221740E - 2 ; case 2
+ .short _02217482 - _0221740E - 2 ; case 3
+_02217416:
+ cmp r0, #0xff
+ b _02217482
+_0221741A:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_02013514
+ add r2, sp, #0
+ mov r0, #0
+ mov r1, #8
+ ldrsh r3, [r2, r0]
+ ldrsb r0, [r4, r1]
+ mul r0, r3
+ strh r0, [r2]
+ mov r0, #2
+ ldrsh r3, [r2, r0]
+ ldrsb r0, [r4, r1]
+ mul r0, r3
+ strh r0, [r2, #2]
+ mov r0, #4
+ ldrsh r3, [r2, r0]
+ ldrsb r0, [r4, r1]
+ mul r0, r3
+ strh r0, [r2, #4]
+ b _02217482
+_02217446:
+ ldr r0, [sp, #0x10]
+ add r2, sp, #0
+ strh r0, [r2]
+ ldr r0, [sp, #0x14]
+ mov r1, #8
+ strh r0, [r2, #2]
+ ldr r0, [sp, #0x18]
+ strh r0, [r2, #4]
+ mov r0, #0
+ ldrsh r3, [r2, r0]
+ ldrsb r0, [r4, r1]
+ mul r0, r3
+ strh r0, [r2]
+ mov r0, #2
+ ldrsh r3, [r2, r0]
+ ldrsb r0, [r4, r1]
+ mul r0, r3
+ strh r0, [r2, #2]
+ mov r0, #4
+ ldrsh r3, [r2, r0]
+ ldrsb r0, [r4, r1]
+ add r1, sp, #0
+ mul r0, r3
+ strh r0, [r2, #4]
+ add r0, r5, #0
+ bl FUN_02013514
+ add sp, #0x1c
+ mov r0, #1
+ pop {r4, r5, pc}
+_02217482:
+ add r1, sp, #0
+ mov r0, #0
+ ldrsh r2, [r1, r0]
+ ldr r0, [r4, #0x2c]
+ sub r0, r2, r0
+ strh r0, [r1]
+ mov r0, #2
+ ldrsh r2, [r1, r0]
+ ldr r0, [r4, #0x30]
+ sub r0, r2, r0
+ strh r0, [r1, #2]
+ mov r0, #4
+ ldrsh r2, [r1, r0]
+ ldr r0, [r4, #0x34]
+ sub r0, r2, r0
+ strh r0, [r1, #4]
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_02013514
+ mov r0, #1
+ add sp, #0x1c
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD08_022174B0
+MOD08_022174B0: ; 0x022174B0
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_022174B4
+MOD08_022174B4: ; 0x022174B4
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_022174B8
+MOD08_022174B8: ; 0x022174B8
+ push {r4, r5, r6, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ add r4, r1, #0
+ add r1, sp, #0
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ add r0, r4, #0
+ add r1, sp, #0xc
+ bl MOD08_022173BC
+ add r0, r4, #0
+ bl MOD08_0221727C
+ strb r0, [r4, #8]
+ ldr r0, [sp, #0x10]
+ cmp r0, #1
+ bne _022174E4
+ mov r0, #1
+ strb r0, [r4, #8]
+_022174E4:
+ ldr r0, [sp, #0xc]
+ cmp r0, #3
+ bgt _02217502
+ cmp r0, #0
+ blt _02217562
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022174FA: ; jump table
+ .short _02217506 - _022174FA - 2 ; case 0
+ .short _0221752A - _022174FA - 2 ; case 1
+ .short _0221754C - _022174FA - 2 ; case 2
+ .short _02217558 - _022174FA - 2 ; case 3
+_02217502:
+ cmp r0, #0xff
+ b _02217562
+_02217506:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_02013548
+ mov r0, #8
+ ldrsb r1, [r4, r0]
+ ldr r2, [sp]
+ mul r1, r2
+ str r1, [sp]
+ ldrsb r1, [r4, r0]
+ ldr r2, [sp, #4]
+ mul r1, r2
+ str r1, [sp, #4]
+ ldrsb r0, [r4, r0]
+ ldr r1, [sp, #8]
+ mul r0, r1
+ str r0, [sp, #8]
+ b _02217562
+_0221752A:
+ ldr r2, [sp, #0x14]
+ ldr r1, [sp, #0x18]
+ ldr r0, [sp, #0x1c]
+ str r2, [sp]
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r3, #8
+ ldrsb r6, [r4, r3]
+ mul r6, r2
+ str r6, [sp]
+ ldrsb r2, [r4, r3]
+ mul r2, r1
+ str r2, [sp, #4]
+ ldrsb r1, [r4, r3]
+ mul r1, r0
+ str r1, [sp, #8]
+ b _02217562
+_0221754C:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0
+ bl MOD08_0222771C
+ b _02217562
+_02217558:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0
+ bl MOD08_0222771C
+_02217562:
+ ldr r1, [sp]
+ ldr r0, [r4, #0x2c]
+ sub r0, r1, r0
+ str r0, [sp]
+ ldr r1, [sp, #4]
+ ldr r0, [r4, #0x30]
+ sub r0, r1, r0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_02013530
+ mov r0, #1
+ add sp, #0x20
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02217580
+MOD08_02217580: ; 0x02217580
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r1, #0
+ add r0, sp, #0
+ strh r1, [r0]
+ add r0, r4, #0
+ add r1, sp, #4
+ bl MOD08_022173BC
+ add r0, r4, #0
+ bl MOD08_0221727C
+ strb r0, [r4, #8]
+ ldr r0, [sp, #8]
+ cmp r0, #1
+ bne _022175A8
+ mov r0, #1
+ strb r0, [r4, #8]
+_022175A8:
+ ldr r0, [sp, #4]
+ cmp r0, #3
+ bgt _022175C6
+ cmp r0, #0
+ blt _022175F4
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022175BE: ; jump table
+ .short _022175CA - _022175BE - 2 ; case 0
+ .short _022175E2 - _022175BE - 2 ; case 1
+ .short _022175F4 - _022175BE - 2 ; case 2
+ .short _022175F4 - _022175BE - 2 ; case 3
+_022175C6:
+ cmp r0, #0xff
+ b _022175F4
+_022175CA:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_02013594
+ add r1, sp, #0
+ mov r0, #0
+ ldrsh r2, [r1, r0]
+ mov r0, #8
+ ldrsb r0, [r4, r0]
+ mul r0, r2
+ strh r0, [r1]
+ b _022175F4
+_022175E2:
+ ldr r0, [sp, #0xc]
+ add r1, sp, #0
+ strh r0, [r1]
+ mov r0, #0
+ ldrsh r2, [r1, r0]
+ mov r0, #8
+ ldrsb r0, [r4, r0]
+ mul r0, r2
+ strh r0, [r1]
+_022175F4:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_0201357C
+ mov r0, #1
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217604
+MOD08_02217604: ; 0x02217604
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r1, #0
+ add r0, sp, #0
+ strh r1, [r0]
+ add r0, r4, #0
+ add r1, sp, #4
+ bl MOD08_022173BC
+ add r0, r4, #0
+ bl MOD08_0221727C
+ strb r0, [r4, #8]
+ ldr r0, [sp, #8]
+ cmp r0, #1
+ bne _0221762C
+ mov r0, #1
+ strb r0, [r4, #8]
+_0221762C:
+ ldr r0, [sp, #4]
+ cmp r0, #3
+ bgt _0221764A
+ cmp r0, #0
+ blt _02217674
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02217642: ; jump table
+ .short _0221764E - _02217642 - 2 ; case 0
+ .short _02217664 - _02217642 - 2 ; case 1
+ .short _02217674 - _02217642 - 2 ; case 2
+ .short _02217674 - _02217642 - 2 ; case 3
+_0221764A:
+ cmp r0, #0xff
+ b _02217674
+_0221764E:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_020135C4
+ add r1, sp, #0
+ mov r0, #8
+ ldrh r2, [r1]
+ ldrsb r0, [r4, r0]
+ mul r0, r2
+ strh r0, [r1]
+ b _02217674
+_02217664:
+ ldr r0, [sp, #0xc]
+ add r1, sp, #0
+ strh r0, [r1]
+ mov r0, #8
+ ldrh r2, [r1]
+ ldrsb r0, [r4, r0]
+ mul r0, r2
+ strh r0, [r1]
+_02217674:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_020135B0
+ mov r0, #1
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217684
+MOD08_02217684: ; 0x02217684
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r1, #0
+ add r0, sp, #0
+ strh r1, [r0]
+ add r0, r4, #0
+ add r1, sp, #4
+ bl MOD08_022173BC
+ add r0, r4, #0
+ bl MOD08_0221727C
+ strb r0, [r4, #8]
+ ldr r0, [sp, #8]
+ cmp r0, #1
+ bne _022176AC
+ mov r0, #1
+ strb r0, [r4, #8]
+_022176AC:
+ ldr r1, [sp, #4]
+ cmp r1, #3
+ bgt _022176CA
+ cmp r1, #0
+ blt _022176DE
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022176C2: ; jump table
+ .short _022176CE - _022176C2 - 2 ; case 0
+ .short _022176D8 - _022176C2 - 2 ; case 1
+ .short _022176DE - _022176C2 - 2 ; case 2
+ .short _022176DE - _022176C2 - 2 ; case 3
+_022176CA:
+ cmp r1, #0xff
+ b _022176DE
+_022176CE:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_020135F4
+ b _022176DE
+_022176D8:
+ ldr r1, [sp, #0xc]
+ add r0, sp, #0
+ strh r1, [r0]
+_022176DE:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_020135E0
+ mov r0, #1
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_022176EC
+MOD08_022176EC: ; 0x022176EC
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_022176F0
+MOD08_022176F0: ; 0x022176F0
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_022176F4
+MOD08_022176F4: ; 0x022176F4
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_022176F8
+MOD08_022176F8: ; 0x022176F8
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_022176FC
+MOD08_022176FC: ; 0x022176FC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r7, r0, #0
+ add r4, r1, #0
+ add r1, sp, #0
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ add r0, r4, #0
+ add r1, sp, #0xc
+ bl MOD08_022173BC
+ add r0, r4, #0
+ bl MOD08_0221727C
+ strb r0, [r4, #8]
+ ldr r0, [sp, #0x10]
+ cmp r0, #1
+ bne _02217728
+ mov r0, #1
+ strb r0, [r4, #8]
+_02217728:
+ ldr r0, [sp, #0xc]
+ cmp r0, #4
+ bgt _02217748
+ cmp r0, #0
+ blt _022177E2
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0221773E: ; jump table
+ .short _0221774C - _0221773E - 2 ; case 0
+ .short _02217770 - _0221773E - 2 ; case 1
+ .short _022177CC - _0221773E - 2 ; case 2
+ .short _022177D8 - _0221773E - 2 ; case 3
+ .short _02217792 - _0221773E - 2 ; case 4
+_02217748:
+ cmp r0, #0xff
+ b _022177E2
+_0221774C:
+ add r0, r7, #0
+ add r1, sp, #0
+ bl FUN_02013628
+ mov r0, #8
+ ldrsb r1, [r4, r0]
+ ldr r2, [sp]
+ mul r1, r2
+ str r1, [sp]
+ ldrsb r1, [r4, r0]
+ ldr r2, [sp, #4]
+ mul r1, r2
+ str r1, [sp, #4]
+ ldrsb r0, [r4, r0]
+ ldr r1, [sp, #8]
+ mul r0, r1
+ str r0, [sp, #8]
+ b _022177E2
+_02217770:
+ ldr r2, [sp, #0x14]
+ ldr r1, [sp, #0x18]
+ ldr r0, [sp, #0x1c]
+ str r2, [sp]
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r3, #8
+ ldrsb r5, [r4, r3]
+ mul r5, r2
+ str r5, [sp]
+ ldrsb r2, [r4, r3]
+ mul r2, r1
+ str r2, [sp, #4]
+ ldrsb r1, [r4, r3]
+ mul r1, r0
+ str r1, [sp, #8]
+ b _022177E2
+_02217792:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0
+ bl MOD08_0222771C
+ ldr r1, [sp]
+ ldr r5, [sp, #0x14]
+ add r0, r1, #0
+ ldr r6, [sp, #0x18]
+ mul r0, r5
+ add r1, r6, #0
+ bl _s32_div_f
+ ldr r1, [sp, #4]
+ str r0, [sp]
+ add r0, r1, #0
+ mul r0, r5
+ add r1, r6, #0
+ bl _s32_div_f
+ ldr r1, [sp, #8]
+ str r0, [sp, #4]
+ add r0, r1, #0
+ mul r0, r5
+ add r1, r6, #0
+ bl _s32_div_f
+ str r0, [sp, #8]
+ b _022177E2
+_022177CC:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x24]
+ add r2, sp, #0
+ bl MOD08_0222771C
+ b _022177E2
+_022177D8:
+ ldr r0, [r4]
+ ldr r1, [r4, #0x28]
+ add r2, sp, #0
+ bl MOD08_0222771C
+_022177E2:
+ ldr r1, [sp]
+ ldr r0, [r4, #0x2c]
+ sub r0, r1, r0
+ str r0, [sp]
+ ldr r1, [sp, #4]
+ ldr r0, [r4, #0x30]
+ sub r0, r1, r0
+ str r0, [sp, #4]
+ ldr r1, [sp, #8]
+ ldr r0, [r4, #0x34]
+ sub r0, r1, r0
+ str r0, [sp, #8]
+ add r0, r7, #0
+ add r1, sp, #0
+ bl FUN_02013610
+ mov r0, #1
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02217808
+MOD08_02217808: ; 0x02217808
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r1, #0
+ add r0, sp, #0
+ strh r1, [r0]
+ add r0, r4, #0
+ add r1, sp, #4
+ bl MOD08_022173BC
+ add r0, r4, #0
+ bl MOD08_0221727C
+ strb r0, [r4, #8]
+ ldr r0, [sp, #8]
+ cmp r0, #1
+ bne _02217830
+ mov r0, #1
+ strb r0, [r4, #8]
+_02217830:
+ ldr r0, [sp, #4]
+ cmp r0, #3
+ bgt _0221784E
+ cmp r0, #0
+ blt _0221787C
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02217846: ; jump table
+ .short _02217852 - _02217846 - 2 ; case 0
+ .short _0221786A - _02217846 - 2 ; case 1
+ .short _0221787C - _02217846 - 2 ; case 2
+ .short _0221787C - _02217846 - 2 ; case 3
+_0221784E:
+ cmp r0, #0xff
+ b _0221787C
+_02217852:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_02013674
+ add r1, sp, #0
+ mov r0, #0
+ ldrsh r2, [r1, r0]
+ mov r0, #8
+ ldrsb r0, [r4, r0]
+ mul r0, r2
+ strh r0, [r1]
+ b _0221787C
+_0221786A:
+ ldr r0, [sp, #0xc]
+ add r1, sp, #0
+ strh r0, [r1]
+ mov r0, #0
+ ldrsh r2, [r1, r0]
+ mov r0, #8
+ ldrsb r0, [r4, r0]
+ mul r0, r2
+ strh r0, [r1]
+_0221787C:
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_0201365C
+ mov r0, #1
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221788C
+MOD08_0221788C: ; 0x0221788C
+ push {r3, lr}
+ add r3, r0, #0
+ add r0, r1, #0
+ add r1, r2, #0
+ ldr r2, _022178A0 ; =0x0222C204
+ lsl r3, r3, #2
+ ldr r2, [r2, r3]
+ blx r2
+ pop {r3, pc}
+ nop
+_022178A0: .word 0x0222C204
+
+ thumb_func_start MOD08_022178A4
+MOD08_022178A4: ; 0x022178A4
+ push {r3, r4, r5}
+ sub sp, #0x3c
+ ldr r4, _022178C8 ; =0x0222C23C
+ add r5, r0, #0
+ add r3, sp, #0
+ mov r2, #7
+_022178B0:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _022178B0
+ ldr r0, [r4]
+ lsl r1, r5, #2
+ str r0, [r3]
+ add r0, sp, #0
+ ldr r0, [r0, r1]
+ add sp, #0x3c
+ pop {r3, r4, r5}
+ bx lr
+ .align 2, 0
+_022178C8: .word 0x0222C23C
+
+ thumb_func_start MOD08_022178CC
+MOD08_022178CC: ; 0x022178CC
+ push {r4, r5, r6, lr}
+ mov r4, #0
+ ldr r6, _022178F4 ; =0x0000FEFE
+ add r5, r4, #0
+_022178D4:
+ add r0, r4, #0
+ bl MOD08_022178A4
+ add r4, r4, #1
+ cmp r0, r6
+ beq _022178E6
+ add r5, r5, #1
+ cmp r5, #0xff
+ blt _022178D4
+_022178E6:
+ cmp r5, #0xff
+ blt _022178EE
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_022178EE:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ nop
+_022178F4: .word 0x0000FEFE
+
+ thumb_func_start MOD08_022178F8
+MOD08_022178F8: ; 0x022178F8
+ ldr r3, _02217900 ; =MOD08_02215434
+ ldr r0, [r0]
+ mov r2, #4
+ bx r3
+ .align 2, 0
+_02217900: .word MOD08_02215434
+
+ thumb_func_start MOD08_02217904
+MOD08_02217904: ; 0x02217904
+ push {r3, lr}
+ sub sp, #8
+ add r2, sp, #0
+ mov r0, #0
+ strh r0, [r2]
+ strh r0, [r2, #2]
+ strh r0, [r2, #4]
+ strh r0, [r2, #6]
+ ldr r0, [r1, #4]
+ bl FUN_0201343C
+ add r1, r0, #0
+ add r0, sp, #0
+ bl FUN_0201EF90
+ mov r0, #1
+ add sp, #8
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02217928
+MOD08_02217928: ; 0x02217928
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ ldr r1, _02217960 ; =0x0222C278
+ add r0, sp, #0
+ ldrh r2, [r1, #0x20]
+ strh r2, [r0]
+ ldrh r2, [r1, #0x22]
+ strh r2, [r0, #2]
+ ldrh r2, [r1, #0x24]
+ ldrh r1, [r1, #0x26]
+ strh r2, [r0, #4]
+ strh r1, [r0, #6]
+ ldr r0, [r4, #4]
+ bl FUN_0201343C
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02013440
+ add r0, sp, #0
+ add r1, r5, #0
+ bl FUN_0201EF90
+ mov r0, #1
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02217960: .word 0x0222C278
+
+ thumb_func_start MOD08_02217964
+MOD08_02217964: ; 0x02217964
+ push {r4, lr}
+ sub sp, #0x18
+ add r4, r1, #0
+ add r1, sp, #0
+ mov r0, #0
+ strh r0, [r1]
+ strh r0, [r1, #2]
+ strh r0, [r1, #4]
+ strh r0, [r1, #6]
+ add r0, r4, #0
+ add r1, sp, #8
+ bl MOD08_022178F8
+ ldr r1, [sp, #0xc]
+ add r0, sp, #0
+ strh r1, [r0]
+ ldr r1, [sp, #0x10]
+ strh r1, [r0, #2]
+ ldr r1, [sp, #0x14]
+ strh r1, [r0, #4]
+ ldr r0, [r4, #4]
+ bl FUN_0201343C
+ add r1, r0, #0
+ add r0, sp, #0
+ bl FUN_0201EF90
+ mov r0, #1
+ add sp, #0x18
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022179A0
+MOD08_022179A0: ; 0x022179A0
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ ldr r1, _022179D8 ; =0x0222C278
+ add r0, sp, #0
+ ldrh r2, [r1, #0x18]
+ strh r2, [r0]
+ ldrh r2, [r1, #0x1a]
+ strh r2, [r0, #2]
+ ldrh r2, [r1, #0x1c]
+ ldrh r1, [r1, #0x1e]
+ strh r2, [r0, #4]
+ strh r1, [r0, #6]
+ ldr r0, [r4, #4]
+ bl FUN_0201343C
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02013440
+ add r0, sp, #0
+ add r1, r5, #0
+ bl FUN_0201EF90
+ mov r0, #1
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022179D8: .word 0x0222C278
+
+ thumb_func_start MOD08_022179DC
+MOD08_022179DC: ; 0x022179DC
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ ldr r1, _02217A38 ; =0x0222C278
+ add r0, sp, #0
+ ldrh r2, [r1, #0x10]
+ strh r2, [r0, #8]
+ ldrh r2, [r1, #0x12]
+ strh r2, [r0, #0xa]
+ ldrh r2, [r1, #0x14]
+ strh r2, [r0, #0xc]
+ ldrh r2, [r1, #0x16]
+ strh r2, [r0, #0xe]
+ ldrh r2, [r1, #0x28]
+ strh r2, [r0]
+ ldrh r2, [r1, #0x2a]
+ strh r2, [r0, #2]
+ ldrh r2, [r1, #0x2c]
+ strh r2, [r0, #4]
+ ldrh r1, [r1, #0x2e]
+ strh r1, [r0, #6]
+ ldr r0, [r4, #4]
+ bl FUN_0201343C
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02013440
+ ldr r0, [r4]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02217A2A
+ add r0, sp, #8
+ add r1, r5, #0
+ bl FUN_0201EF90
+ b _02217A32
+_02217A2A:
+ add r0, sp, #0
+ add r1, r5, #0
+ bl FUN_0201EF90
+_02217A32:
+ mov r0, #1
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02217A38: .word 0x0222C278
+
+ thumb_func_start MOD08_02217A3C
+MOD08_02217A3C: ; 0x02217A3C
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ ldr r1, _02217A74 ; =0x0222C278
+ add r0, sp, #0
+ ldrh r2, [r1]
+ strh r2, [r0]
+ ldrh r2, [r1, #2]
+ strh r2, [r0, #2]
+ ldrh r2, [r1, #4]
+ ldrh r1, [r1, #6]
+ strh r2, [r0, #4]
+ strh r1, [r0, #6]
+ ldr r0, [r4, #4]
+ bl FUN_0201343C
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02013440
+ add r0, sp, #0
+ add r1, r5, #0
+ bl FUN_0201EF90
+ mov r0, #1
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02217A74: .word 0x0222C278
+
+ thumb_func_start MOD08_02217A78
+MOD08_02217A78: ; 0x02217A78
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ ldr r1, _02217AB0 ; =0x0222C278
+ add r0, sp, #0
+ ldrh r2, [r1, #8]
+ strh r2, [r0]
+ ldrh r2, [r1, #0xa]
+ strh r2, [r0, #2]
+ ldrh r2, [r1, #0xc]
+ ldrh r1, [r1, #0xe]
+ strh r2, [r0, #4]
+ strh r1, [r0, #6]
+ ldr r0, [r4, #4]
+ bl FUN_0201343C
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02013440
+ add r0, sp, #0
+ add r1, r5, #0
+ bl FUN_0201EF90
+ mov r0, #1
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02217AB0: .word 0x0222C278
+
+ thumb_func_start MOD08_02217AB4
+MOD08_02217AB4: ; 0x02217AB4
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldr r0, [r5, #4]
+ bl FUN_0201343C
+ add r4, r0, #0
+ ldr r0, [r5]
+ ldr r1, [r5, #0x24]
+ add r2, sp, #0
+ bl MOD08_022278FC
+ add r0, sp, #0
+ add r1, r4, #0
+ bl FUN_0201F04C
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217ADC
+MOD08_02217ADC: ; 0x02217ADC
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldr r0, [r5, #4]
+ bl FUN_0201343C
+ add r4, r0, #0
+ ldr r0, [r5]
+ ldr r1, [r5, #0x28]
+ add r2, sp, #0
+ bl MOD08_022278FC
+ add r0, sp, #0
+ add r1, r4, #0
+ bl FUN_0201F04C
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217B04
+MOD08_02217B04: ; 0x02217B04
+ push {r3, lr}
+ add r3, r0, #0
+ add r0, r1, #0
+ add r1, r2, #0
+ ldr r2, _02217B18 ; =0x0222C2A8
+ lsl r3, r3, #2
+ ldr r2, [r2, r3]
+ blx r2
+ pop {r3, pc}
+ nop
+_02217B18: .word 0x0222C2A8
+
+ thumb_func_start MOD08_02217B1C
+MOD08_02217B1C: ; 0x02217B1C
+ push {r3, r4, r5, r6}
+ cmp r2, #0
+ beq _02217B32
+ mov r4, #0x18
+ add r6, r0, #0
+ mul r6, r4
+ ldr r4, _02217B48 ; =0x0222C2CC
+ lsl r5, r1, #2
+ add r4, r4, r6
+ ldrsh r4, [r5, r4]
+ strh r4, [r2]
+_02217B32:
+ cmp r3, #0
+ beq _02217B44
+ mov r2, #0x18
+ mul r2, r0
+ ldr r0, _02217B4C ; =0x0222C2CE
+ lsl r1, r1, #2
+ add r0, r0, r2
+ ldrsh r0, [r1, r0]
+ strh r0, [r3]
+_02217B44:
+ pop {r3, r4, r5, r6}
+ bx lr
+ .align 2, 0
+_02217B48: .word 0x0222C2CC
+_02217B4C: .word 0x0222C2CE
+
+ thumb_func_start MOD08_02217B50
+MOD08_02217B50: ; 0x02217B50
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r1, #0
+ add r4, r2, #0
+ add r6, r3, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02217B70
+ mov r0, #0
+ add r1, r5, #2
+ add r2, r4, #0
+ add r3, r6, #0
+ bl MOD08_02217B1C
+ pop {r3, r4, r5, r6, r7, pc}
+_02217B70:
+ add r0, r7, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _02217B88
+ mov r0, #1
+ sub r1, r5, #2
+ add r2, r4, #0
+ add r3, r6, #0
+ bl MOD08_02217B1C
+ pop {r3, r4, r5, r6, r7, pc}
+_02217B88:
+ mov r0, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ add r3, r6, #0
+ bl MOD08_02217B1C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217B98
+MOD08_02217B98: ; 0x02217B98
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r6, r2, #0
+ bl MOD08_02227468
+ add r4, r0, #0
+ add r0, r7, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _02217BB2
+ mov r5, #1
+ b _02217BB4
+_02217BB2:
+ mov r5, #0
+_02217BB4:
+ add r0, r7, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02217BC0
+ add r4, r4, #2
+_02217BC0:
+ cmp r6, #3
+ bhi _02217BF8
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02217BD0: ; jump table
+ .short _02217BD8 - _02217BD0 - 2 ; case 0
+ .short _02217BE8 - _02217BD0 - 2 ; case 1
+ .short _02217BD8 - _02217BD0 - 2 ; case 2
+ .short _02217BE8 - _02217BD0 - 2 ; case 3
+_02217BD8:
+ mov r0, #0x18
+ add r2, r5, #0
+ mul r2, r0
+ ldr r0, _02217C00 ; =0x0222C2CC
+ lsl r1, r4, #2
+ add r0, r0, r2
+ ldrsh r0, [r1, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_02217BE8:
+ mov r0, #0x18
+ add r2, r5, #0
+ mul r2, r0
+ ldr r0, _02217C04 ; =0x0222C2CE
+ lsl r1, r4, #2
+ add r0, r0, r2
+ ldrsh r0, [r1, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_02217BF8:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02217C00: .word 0x0222C2CC
+_02217C04: .word 0x0222C2CE
+
+ thumb_func_start MOD08_02217C08
+MOD08_02217C08: ; 0x02217C08
+ push {r3, lr}
+ ldr r0, [r0]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02217C1C
+MOD08_02217C1C: ; 0x02217C1C
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r5, #1
+ bl MOD08_02227470
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD08_02212004
+ cmp r0, #0
+ beq _02217C3A
+ cmp r4, #3
+ bne _02217C40
+ sub r5, r5, #2
+ b _02217C40
+_02217C3A:
+ cmp r4, #4
+ bne _02217C40
+ sub r5, r5, #2
+_02217C40:
+ add r0, r5, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02217C44
+MOD08_02217C44: ; 0x02217C44
+ push {r4, lr}
+ mov r4, #1
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _02217C52
+ sub r4, r4, #2
+_02217C52:
+ add r0, r4, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217C58
+MOD08_02217C58: ; 0x02217C58
+ ldr r3, _02217C60 ; =0x020C50B8
+ sub r0, r1, r0
+ lsl r1, r2, #0xc
+ bx r3
+ .align 2, 0
+_02217C60: .word 0x020C50B8
+
+ thumb_func_start MOD08_02217C64
+MOD08_02217C64: ; 0x02217C64
+ push {r3, lr}
+ sub r0, r1, r0
+ add r1, r2, #0
+ bl FX_Div
+ add r1, sp, #0
+ str r0, [sp]
+ bl FX_Modf
+ cmp r0, #0
+ beq _02217C84
+ mov r0, #1
+ ldr r1, [sp]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [sp]
+_02217C84:
+ ldr r0, [sp]
+ cmp r0, #0
+ bge _02217C8C
+ neg r0, r0
+_02217C8C:
+ str r0, [sp]
+ asr r0, r0, #0xc
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217C94
+MOD08_02217C94: ; 0x02217C94
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ mov r1, #0
+ ldrsh r1, [r4, r1]
+ add r1, r2, r1
+ mov r2, #2
+ ldrsh r2, [r4, r2]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add r2, r3, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02217CB4
+MOD08_02217CB4: ; 0x02217CB4
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r1, sp, #4
+ add r2, sp, #0
+ bl MOD08_0221825C
+ ldr r1, [sp, #4]
+ ldr r2, [sp]
+ add r0, r4, #0
+ bl FUN_0200C884
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02217CD0
+MOD08_02217CD0: ; 0x02217CD0
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ mov r1, #0
+ add r6, r3, #0
+ ldrsh r3, [r5, r1]
+ add r0, r4, #0
+ add r2, r2, r3
+ bl FUN_02007558
+ mov r2, #2
+ ldrsh r2, [r5, r2]
+ add r0, r4, #0
+ mov r1, #1
+ add r2, r6, r2
+ bl FUN_02007558
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02217CF4
+MOD08_02217CF4: ; 0x02217CF4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r2, #0
+ add r4, r1, #0
+ ldrsh r2, [r5, r2]
+ add r0, r4, #0
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #2
+ ldrsh r2, [r5, r2]
+ add r0, r4, #0
+ mov r1, #0xd
+ bl FUN_02007558
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02217D14
+MOD08_02217D14: ; 0x02217D14
+ push {r3, r4, r5, lr}
+ add r4, r3, #0
+ add r5, r0, #0
+ ldr r3, [sp, #0x1c]
+ ldr r0, [sp, #0x14]
+ str r3, [r5, #4]
+ str r1, [r5, #8]
+ str r0, [r5, #0xc]
+ ldr r0, [sp, #0x18]
+ str r4, [r5, #0x10]
+ str r0, [r5, #0x14]
+ sub r0, r2, r1
+ add r1, r3, #0
+ bl _s32_div_f
+ str r0, [r5, #0x18]
+ add r0, sp, #0
+ ldrh r0, [r0, #0x10]
+ ldr r1, [sp, #0x1c]
+ sub r0, r0, r4
+ bl _s32_div_f
+ str r0, [r5, #0x1c]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02217D44
+MOD08_02217D44: ; 0x02217D44
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r7, r2, #0
+ str r3, [sp]
+ cmp r5, #0
+ bne _02217D56
+ bl ErrorHandling
+_02217D56:
+ cmp r4, r7
+ bls _02217D62
+ add r0, sp, #8
+ ldrh r1, [r0, #0x1c]
+ neg r1, r1
+ strh r1, [r0, #0x1c]
+_02217D62:
+ add r1, sp, #8
+ mov r0, #0x1c
+ ldrsh r6, [r1, r0]
+ lsl r0, r4, #0xc
+ lsl r1, r7, #0xc
+ lsl r2, r6, #0xc
+ bl MOD08_02217C64
+ str r0, [r5, #4]
+ ldr r0, [sp, #0x1c]
+ str r4, [r5, #8]
+ str r0, [r5, #0xc]
+ ldr r0, [sp]
+ str r0, [r5, #0x10]
+ ldr r0, [sp, #0x20]
+ str r0, [r5, #0x14]
+ str r6, [r5, #0x18]
+ add r0, sp, #8
+ ldrh r1, [r0, #0x10]
+ ldr r0, [sp]
+ sub r0, r1, r0
+ ldr r1, [r5, #4]
+ bl _s32_div_f
+ str r0, [r5, #0x1c]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217D98
+MOD08_02217D98: ; 0x02217D98
+ push {r4, lr}
+ add r4, r0, #0
+ bne _02217DA2
+ bl ErrorHandling
+_02217DA2:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _02217E26
+ ldr r1, [r4, #8]
+ ldr r0, [r4, #0x18]
+ add r0, r1, r0
+ str r0, [r4, #8]
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #0x1c]
+ add r0, r1, r0
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #8]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [r4, #8]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ ldr r0, [r4, #8]
+ ldr r2, [r4, #0xc]
+ asr r0, r0, #4
+ lsl r1, r0, #2
+ ldr r0, _02217E2C ; =0x020FFA38
+ asr r3, r2, #0x1f
+ ldrsh r0, [r0, r1]
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ mov r3, #0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ asr r0, r1, #0xc
+ strh r0, [r4]
+ ldr r0, [r4, #0x10]
+ ldr r2, [r4, #0x14]
+ asr r0, r0, #4
+ lsl r0, r0, #1
+ add r0, r0, #1
+ lsl r1, r0, #1
+ ldr r0, _02217E2C ; =0x020FFA38
+ asr r3, r2, #0x1f
+ ldrsh r0, [r0, r1]
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ mov r3, #0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ asr r0, r1, #0xc
+ strh r0, [r4, #2]
+ mov r0, #1
+ pop {r4, pc}
+_02217E26:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_02217E2C: .word 0x020FFA38
+
+ thumb_func_start MOD08_02217E30
+MOD08_02217E30: ; 0x02217E30
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ bl MOD08_02217D98
+ cmp r0, #0
+ beq _02217E52
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ add r3, r6, #0
+ bl MOD08_02217C94
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02217E52:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217E58
+MOD08_02217E58: ; 0x02217E58
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ bl MOD08_02217D98
+ cmp r0, #0
+ beq _02217E7A
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ add r3, r6, #0
+ bl MOD08_02217CD0
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02217E7A:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217E80
+MOD08_02217E80: ; 0x02217E80
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r3, #0
+ str r2, [sp]
+ cmp r5, #0
+ bne _02217E94
+ bl ErrorHandling
+_02217E94:
+ strh r4, [r5]
+ strh r6, [r5, #2]
+ add r0, sp, #0x10
+ ldrh r7, [r0, #0x14]
+ lsl r0, r4, #0xc
+ str r0, [sp, #4]
+ str r7, [r5, #4]
+ ldr r1, [sp]
+ add r2, r7, #0
+ lsl r1, r1, #0xc
+ bl MOD08_02217C58
+ str r0, [r5, #8]
+ lsl r4, r6, #0xc
+ add r2, sp, #0x10
+ mov r1, #0x10
+ ldrsh r1, [r2, r1]
+ add r0, r4, #0
+ add r2, r7, #0
+ lsl r1, r1, #0xc
+ bl MOD08_02217C58
+ str r0, [r5, #0xc]
+ ldr r0, [sp, #4]
+ str r0, [r5, #0x10]
+ str r4, [r5, #0x14]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02217ECC
+MOD08_02217ECC: ; 0x02217ECC
+ push {r4, lr}
+ add r4, r0, #0
+ bne _02217ED6
+ bl ErrorHandling
+_02217ED6:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _02217F02
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #8]
+ add r0, r1, r0
+ str r0, [r4, #0x10]
+ ldr r1, [r4, #0x14]
+ ldr r0, [r4, #0xc]
+ add r0, r1, r0
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #0x10]
+ asr r0, r0, #0xc
+ strh r0, [r4]
+ ldr r0, [r4, #0x14]
+ asr r0, r0, #0xc
+ strh r0, [r4, #2]
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #1
+ pop {r4, pc}
+_02217F02:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217F08
+MOD08_02217F08: ; 0x02217F08
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _02217F26
+ mov r2, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, r2, #0
+ bl MOD08_02217C94
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02217F26:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217F2C
+MOD08_02217F2C: ; 0x02217F2C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _02217F4A
+ mov r2, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, r2, #0
+ bl MOD08_02217CD0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02217F4A:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02217F50
+MOD08_02217F50: ; 0x02217F50
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ add r4, sp, #0x10
+ mov r1, #0x14
+ ldrsh r1, [r4, r1]
+ str r1, [sp]
+ ldrh r1, [r4, #0x18]
+ str r1, [sp, #4]
+ add r1, r2, #0
+ add r2, r3, #0
+ mov r3, #0x10
+ ldrsh r3, [r4, r3]
+ bl MOD08_02217E80
+ mov r1, #0
+ strh r1, [r5]
+ ldr r0, _02217F94 ; =0x0000BFFF
+ strh r1, [r5, #2]
+ str r0, [sp]
+ ldr r0, [sp, #0x2c]
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r4, #0
+ ldrh r0, [r0, #0x18]
+ ldr r3, _02217F98 ; =0x00003FFF
+ add r2, r1, #0
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ bl MOD08_02217D14
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_02217F94: .word 0x0000BFFF
+_02217F98: .word 0x00003FFF
+
+ thumb_func_start MOD08_02217F9C
+MOD08_02217F9C: ; 0x02217F9C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ cmp r5, #0
+ bne _02217FAA
+ bl ErrorHandling
+_02217FAA:
+ cmp r4, #0
+ bne _02217FB2
+ bl ErrorHandling
+_02217FB2:
+ add r0, r5, #0
+ bl MOD08_02217ECC
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD08_02217D98
+ mov r2, #0
+ ldrsh r3, [r5, r2]
+ ldrsh r1, [r4, r2]
+ add r1, r3, r1
+ strh r1, [r5]
+ mov r1, #2
+ ldrsh r3, [r5, r1]
+ ldrsh r1, [r4, r1]
+ add r1, r3, r1
+ strh r1, [r5, #2]
+ cmp r6, r0
+ bne _02217FE0
+ cmp r6, #0
+ bne _02217FE0
+ add r0, r2, #0
+ pop {r4, r5, r6, pc}
+_02217FE0:
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02217FE4
+MOD08_02217FE4: ; 0x02217FE4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r2, #0
+ bl MOD08_02217F9C
+ cmp r0, #0
+ beq _02218002
+ mov r2, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, r2, #0
+ bl MOD08_02217C94
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02218002:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218008
+MOD08_02218008: ; 0x02218008
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ add r4, r3, #0
+ cmp r5, #0
+ bne _0221801A
+ bl ErrorHandling
+_0221801A:
+ str r6, [r5]
+ lsl r0, r6, #0xc
+ lsl r1, r7, #0xc
+ add r2, r4, #0
+ str r4, [r5, #4]
+ bl MOD08_02217C58
+ asr r0, r0, #0xc
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218030
+MOD08_02218030: ; 0x02218030
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ add r4, r3, #0
+ cmp r5, #0
+ bne _02218042
+ bl ErrorHandling
+_02218042:
+ str r6, [r5]
+ lsl r6, r6, #0xc
+ add r0, r6, #0
+ lsl r1, r7, #0xc
+ add r2, r4, #0
+ str r4, [r5, #4]
+ bl MOD08_02217C58
+ str r0, [r5, #8]
+ str r6, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02218058
+MOD08_02218058: ; 0x02218058
+ push {r4, lr}
+ add r4, r0, #0
+ bne _02218062
+ bl ErrorHandling
+_02218062:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _0221807A
+ ldr r1, [r4]
+ ldr r0, [r4, #8]
+ add r0, r1, r0
+ str r0, [r4]
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #1
+ pop {r4, pc}
+_0221807A:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218080
+MOD08_02218080: ; 0x02218080
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221808A
+ bl ErrorHandling
+_0221808A:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _022180A6
+ ldr r1, [r4, #0xc]
+ ldr r0, [r4, #8]
+ add r0, r1, r0
+ str r0, [r4, #0xc]
+ asr r0, r0, #0xc
+ str r0, [r4]
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #1
+ pop {r4, pc}
+_022180A6:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022180AC
+MOD08_022180AC: ; 0x022180AC
+ push {r3, r4, r5, lr}
+ ldr r4, [sp, #0x10]
+ add r5, r0, #0
+ str r4, [r5, #4]
+ str r1, [r5, #8]
+ sub r0, r2, r1
+ add r1, r4, #0
+ str r3, [r5, #0xc]
+ bl _u32_div_f
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_022180C4
+MOD08_022180C4: ; 0x022180C4
+ push {r4, lr}
+ add r4, r0, #0
+ bne _022180CE
+ bl ErrorHandling
+_022180CE:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _02218116
+ ldr r1, [r4, #8]
+ ldr r0, [r4, #0x10]
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ ldr r0, [r4, #8]
+ ldr r2, [r4, #0xc]
+ asr r0, r0, #4
+ lsl r0, r0, #1
+ add r0, r0, #1
+ lsl r1, r0, #1
+ ldr r0, _0221811C ; =0x020FFA38
+ asr r3, r2, #0x1f
+ ldrsh r0, [r0, r1]
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ mov r3, #0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ asr r0, r1, #0xc
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_02218116:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_0221811C: .word 0x020FFA38
+
+ thumb_func_start MOD08_02218120
+MOD08_02218120: ; 0x02218120
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ cmp r4, #0
+ bne _02218132
+ bl ErrorHandling
+_02218132:
+ ldr r0, [sp, #0x18]
+ add r1, r6, #0
+ str r0, [r4, #4]
+ lsl r0, r5, #8
+ bl _s32_div_f
+ add r5, r0, #0
+ lsl r0, r7, #8
+ add r1, r6, #0
+ bl _s32_div_f
+ add r1, r0, #0
+ ldr r2, [sp, #0x18]
+ lsl r0, r5, #0xc
+ lsl r1, r1, #0xc
+ bl MOD08_02217C58
+ str r0, [r4, #8]
+ lsl r0, r5, #0x10
+ asr r0, r0, #0x10
+ strh r0, [r4]
+ strh r0, [r4, #2]
+ mov r0, #0
+ ldrsh r0, [r4, r0]
+ lsl r0, r0, #0xc
+ str r0, [r4, #0x10]
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ lsl r0, r0, #0xc
+ str r0, [r4, #0x14]
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02218170
+MOD08_02218170: ; 0x02218170
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221817A
+ bl ErrorHandling
+_0221817A:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _022181A4
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #8]
+ add r0, r1, r0
+ str r0, [r4, #0x10]
+ ldr r1, [r4, #0x14]
+ ldr r0, [r4, #8]
+ add r0, r1, r0
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #0x10]
+ asr r0, r0, #0xc
+ strh r0, [r4]
+ ldr r0, [r4, #0x14]
+ asr r0, r0, #0xc
+ strh r0, [r4, #2]
+ mov r0, #1
+ pop {r4, pc}
+_022181A4:
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022181A8
+MOD08_022181A8: ; 0x022181A8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ str r3, [sp]
+ cmp r5, #0
+ bne _022181BA
+ bl ErrorHandling
+_022181BA:
+ ldr r0, [sp, #0x20]
+ add r1, sp, #8
+ str r0, [r5, #4]
+ mov r0, #0x14
+ ldrsh r4, [r1, r0]
+ lsl r0, r6, #8
+ add r1, r4, #0
+ bl _s32_div_f
+ add r6, r0, #0
+ lsl r0, r7, #8
+ add r1, r4, #0
+ bl _s32_div_f
+ add r1, r0, #0
+ ldr r2, [sp, #0x20]
+ lsl r0, r6, #0xc
+ lsl r1, r1, #0xc
+ bl MOD08_02217C58
+ str r0, [r5, #8]
+ ldr r0, [sp]
+ add r1, r4, #0
+ lsl r0, r0, #8
+ bl _s32_div_f
+ add r7, r0, #0
+ add r1, sp, #8
+ mov r0, #0x10
+ ldrsh r0, [r1, r0]
+ add r1, r4, #0
+ lsl r0, r0, #8
+ bl _s32_div_f
+ add r1, r0, #0
+ ldr r2, [sp, #0x20]
+ lsl r0, r7, #0xc
+ lsl r1, r1, #0xc
+ bl MOD08_02217C58
+ str r0, [r5, #0xc]
+ strh r6, [r5]
+ strh r7, [r5, #2]
+ mov r0, #0
+ ldrsh r0, [r5, r0]
+ lsl r0, r0, #0xc
+ str r0, [r5, #0x10]
+ mov r0, #2
+ ldrsh r0, [r5, r0]
+ lsl r0, r0, #0xc
+ str r0, [r5, #0x14]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218224
+MOD08_02218224: ; 0x02218224
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221822E
+ bl ErrorHandling
+_0221822E:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _02218258
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #8]
+ add r0, r1, r0
+ str r0, [r4, #0x10]
+ ldr r1, [r4, #0x14]
+ ldr r0, [r4, #0xc]
+ add r0, r1, r0
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #0x10]
+ asr r0, r0, #0xc
+ strh r0, [r4]
+ ldr r0, [r4, #0x14]
+ asr r0, r0, #0xc
+ strh r0, [r4, #2]
+ mov r0, #1
+ pop {r4, pc}
+_02218258:
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD08_0221825C
+MOD08_0221825C: ; 0x0221825C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0
+ ldrsh r0, [r5, r0]
+ add r4, r1, #0
+ add r6, r2, #0
+ bl _fflt
+ ldr r1, _02218288 ; =0x43800000
+ bl _fdiv
+ str r0, [r4]
+ mov r0, #2
+ ldrsh r0, [r5, r0]
+ bl _fflt
+ ldr r1, _02218288 ; =0x43800000
+ bl _fdiv
+ str r0, [r6]
+ pop {r4, r5, r6, pc}
+ nop
+_02218288: .word 0x43800000
+
+ thumb_func_start MOD08_0221828C
+MOD08_0221828C: ; 0x0221828C
+ push {r3, r4, lr}
+ sub sp, #4
+ lsl r1, r1, #1
+ mov r0, #0x50
+ sub r0, r0, r1
+ lsl r4, r0, #0xc
+ asr r1, r4, #0x1f
+ add r0, r4, #0
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ mov r3, #0
+ lsl r2, r2, #0xa
+ add r0, r0, r2
+ adc r1, r3
+ lsl r1, r1, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r1
+ lsl r1, r2, #9
+ bl FX_Div
+ sub r0, r4, r0
+ add r1, sp, #0
+ bl FX_Modf
+ cmp r0, #0
+ beq _022182CA
+ mov r1, #2
+ lsl r1, r1, #0xa
+ add r0, r0, r1
+_022182CA:
+ ldr r1, [sp]
+ add r0, r1, r0
+ asr r1, r0, #0xc
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ lsl r0, r0, #0xf
+ asr r0, r0, #0x10
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_022182DC
+MOD08_022182DC: ; 0x022182DC
+ push {r4, r5, r6, lr}
+ add r6, r2, #0
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r3, #0
+ bl MOD08_0221828C
+ add r2, r0, #0
+ ldr r0, [sp, #0x10]
+ cmp r0, #1
+ bne _02218306
+ mov r0, #0
+ mvn r0, r0
+ mul r0, r2
+ lsl r0, r0, #0x10
+ asr r2, r0, #0x10
+ sub r0, r4, r6
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+_02218306:
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, r2
+ bl FUN_02007558
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218314
+MOD08_02218314: ; 0x02218314
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r2, #0
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r3, #0
+ bl MOD08_0221828C
+ add r4, r0, #0
+ ldr r0, [sp, #0x18]
+ cmp r0, #1
+ bne _0221833E
+ mov r0, #0
+ mvn r0, r0
+ mul r0, r4
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ sub r0, r5, r7
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+_0221833E:
+ add r1, sp, #0
+ add r0, r6, #0
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r2, sp, #0
+ mov r1, #2
+ ldrsh r1, [r2, r1]
+ add r2, r5, r4
+ lsl r2, r2, #0x10
+ add r0, r6, #0
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218360
+MOD08_02218360: ; 0x02218360
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD08_02218170
+ cmp r0, #0
+ beq _0221837A
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02217CB4
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0221837A:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218380
+MOD08_02218380: ; 0x02218380
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD08_02218170
+ cmp r0, #0
+ beq _0221839A
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02217CF4
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0221839A:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022183A0
+MOD08_022183A0: ; 0x022183A0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD08_02218224
+ cmp r0, #0
+ beq _022183BA
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02217CF4
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_022183BA:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022183C0
+MOD08_022183C0: ; 0x022183C0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ add r4, r2, #0
+ add r7, r3, #0
+ cmp r5, #0
+ bne _022183D2
+ bl ErrorHandling
+_022183D2:
+ str r7, [r5, #4]
+ ldr r0, [sp, #0x18]
+ str r7, [r5, #8]
+ str r0, [r5, #0xc]
+ mov r1, #0
+ str r1, [r5, #0x10]
+ str r6, [r5, #0x14]
+ str r4, [r5, #0x18]
+ neg r0, r6
+ str r0, [r5, #0x1c]
+ neg r0, r4
+ str r0, [r5, #0x20]
+ strh r1, [r5]
+ strh r1, [r5, #2]
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_022183F0
+MOD08_022183F0: ; 0x022183F0
+ push {r4, lr}
+ add r4, r0, #0
+ bne _022183FA
+ bl ErrorHandling
+_022183FA:
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _0221844E
+ ldr r0, [r4, #4]
+ add r1, r0, #1
+ str r1, [r4, #4]
+ ldr r0, [r4, #8]
+ cmp r1, r0
+ blt _0221844A
+ mov r2, #0
+ str r2, [r4, #4]
+ ldrsh r0, [r4, r2]
+ ldr r1, [r4, #0x1c]
+ str r0, [r4, #0x1c]
+ cmp r1, #0
+ bne _0221841E
+ strh r2, [r4]
+ b _02218422
+_0221841E:
+ neg r0, r1
+ strh r0, [r4]
+_02218422:
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #0x20]
+ str r0, [r4, #0x20]
+ cmp r1, #0
+ bne _02218432
+ mov r0, #0
+ b _02218434
+_02218432:
+ neg r0, r1
+_02218434:
+ strh r0, [r4, #2]
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ cmp r0, #4
+ blt _0221844A
+ mov r0, #0
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0xc]
+ sub r0, r0, #1
+ str r0, [r4, #0xc]
+_0221844A:
+ mov r0, #1
+ pop {r4, pc}
+_0221844E:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218454
+MOD08_02218454: ; 0x02218454
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ bl MOD08_022183F0
+ cmp r0, #0
+ beq _02218476
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ add r3, r6, #0
+ bl MOD08_02217CD0
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02218476:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221847C
+MOD08_0221847C: ; 0x0221847C
+ push {r3, r4, r5, r6, r7, lr}
+ mov ip, r1
+ str r0, [sp]
+ strh r3, [r0]
+ add r0, sp, #8
+ mov r1, #0x10
+ ldrsh r3, [r0, r1]
+ ldr r1, [sp]
+ mov r6, #0
+ strh r3, [r1, #2]
+ add r1, #0x94
+ str r2, [r1]
+ ldr r1, [sp]
+ ldrh r2, [r0, #0x14]
+ add r1, #0xa8
+ strh r2, [r1]
+ ldr r1, [sp]
+ add r1, #0xaa
+ strh r6, [r1]
+ ldr r1, [sp]
+ ldrb r7, [r0, #0x18]
+ add r1, #0xac
+ strb r7, [r1]
+ ldr r1, [sp]
+ add r1, #0xad
+ strb r6, [r1]
+ ldrb r1, [r0, #0x1c]
+ ldr r0, [sp]
+ add r0, #0xae
+ strb r1, [r0]
+ cmp r7, #0
+ ble _022184D8
+ ldr r5, [sp]
+_022184BE:
+ mov r4, ip
+ add r3, r5, #4
+ mov r2, #4
+_022184C4:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _022184C4
+ ldr r0, [r4]
+ add r6, r6, #1
+ str r0, [r3]
+ add r5, #0x24
+ cmp r6, r7
+ blt _022184BE
+_022184D8:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x28]
+ add r0, #0x98
+ str r1, [r0]
+ ldr r0, [sp]
+ ldr r1, [sp, #0x2c]
+ add r0, #0x9c
+ str r1, [r0]
+ ldr r0, [sp]
+ ldr r1, [sp, #0x30]
+ add r0, #0xa0
+ str r1, [r0]
+ ldr r0, [sp]
+ ldr r1, [sp, #0x34]
+ add r0, #0xa4
+ str r1, [r0]
+ ldr r0, [sp]
+ mov r5, #0
+ add r0, #0xac
+ ldrb r0, [r0]
+ cmp r0, #0
+ ble _02218522
+ ldr r4, [sp]
+ add r6, r5, #0
+_02218508:
+ add r0, r4, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ add r1, r6, #0
+ bl FUN_0200C644
+ ldr r0, [sp]
+ add r5, r5, #1
+ add r0, #0xac
+ ldrb r0, [r0]
+ add r4, r4, #4
+ cmp r5, r0
+ blt _02218508
+_02218522:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02218524
+MOD08_02218524: ; 0x02218524
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ mov r0, #0
+ add r2, sp, #0x10
+ mov r1, #1
+_02218530:
+ add r0, r0, #1
+ stmia r2!, {r1}
+ cmp r0, #4
+ blt _02218530
+ add r0, r5, #0
+ add r0, #0xa8
+ ldrh r2, [r0]
+ add r0, r5, #0
+ add r0, #0xaa
+ ldrh r0, [r0]
+ cmp r2, r0
+ bhi _02218570
+ add r0, r5, #0
+ add r0, #0xad
+ ldrb r0, [r0]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ add r0, #0x98
+ ldr r0, [r0]
+ bl FUN_0200C644
+ add r0, r5, #0
+ add r0, #0xad
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r5, #0
+ add r0, #0xad
+ strb r1, [r0]
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0xaa
+ strh r1, [r0]
+_02218570:
+ add r0, r5, #0
+ add r0, #0xad
+ ldrb r1, [r0]
+ add r0, r5, #0
+ add r0, #0xac
+ ldrb r0, [r0]
+ cmp r1, r0
+ bhs _0221858E
+ add r0, r5, #0
+ add r0, #0xaa
+ ldrh r0, [r0]
+ add r1, r0, #1
+ add r0, r5, #0
+ add r0, #0xaa
+ strh r1, [r0]
+_0221858E:
+ mov r0, #0
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xad
+ ldrb r0, [r0]
+ cmp r0, #0
+ ble _0221862E
+ add r0, sp, #0x10
+ add r7, r5, #4
+ str r0, [sp, #4]
+ add r6, r5, #0
+ add r4, r5, #0
+_022185A6:
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r7, #0
+ blx r1
+ ldr r1, [sp, #4]
+ cmp r0, #0
+ str r0, [r1]
+ beq _02218604
+ add r0, r5, #0
+ add r0, #0xae
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _022185EA
+ mov r1, #0
+ mov r2, #4
+ ldrsh r1, [r5, r1]
+ ldrsh r2, [r6, r2]
+ add r0, r4, #0
+ add r0, #0x98
+ add r1, r1, r2
+ mov r2, #2
+ ldrsh r3, [r5, r2]
+ mov r2, #6
+ ldrsh r2, [r6, r2]
+ lsl r1, r1, #0x10
+ ldr r0, [r0]
+ add r2, r3, r2
+ lsl r2, r2, #0x10
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ b _02218610
+_022185EA:
+ add r0, r7, #0
+ add r1, sp, #0xc
+ add r2, sp, #8
+ bl MOD08_0221825C
+ add r0, r4, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ ldr r1, [sp, #0xc]
+ ldr r2, [sp, #8]
+ bl FUN_0200C884
+ b _02218610
+_02218604:
+ add r0, r4, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200C644
+_02218610:
+ ldr r0, [sp, #4]
+ add r7, #0x24
+ add r0, r0, #4
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ add r6, #0x24
+ add r0, r0, #1
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xad
+ ldrb r1, [r0]
+ ldr r0, [sp]
+ add r4, r4, #4
+ cmp r0, r1
+ blt _022185A6
+_0221862E:
+ add r5, #0xac
+ ldrb r2, [r5]
+ mov r3, #0
+ cmp r2, #0
+ ble _0221864E
+ add r1, sp, #0x10
+_0221863A:
+ ldr r0, [r1]
+ cmp r0, #1
+ bne _02218646
+ add sp, #0x20
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02218646:
+ add r3, r3, #1
+ add r1, r1, #4
+ cmp r3, r2
+ blt _0221863A
+_0221864E:
+ mov r0, #0
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02218654
+MOD08_02218654: ; 0x02218654
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ ldr r3, _02218684 ; =0x0000FFFF
+ add r4, r1, #0
+ mov r1, #2
+ str r3, [sp]
+ lsl r1, r1, #0x10
+ str r1, [sp, #4]
+ ldr r1, _02218688 ; =0xFFFF8000
+ add r5, r0, #0
+ str r1, [sp, #8]
+ str r2, [sp, #0xc]
+ mov r1, #0
+ add r2, r3, #0
+ add r3, r1, #0
+ bl MOD08_02217D14
+ ldr r0, [r5, #4]
+ add r1, r0, #0
+ mul r1, r4
+ str r1, [r5, #4]
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_02218684: .word 0x0000FFFF
+_02218688: .word 0xFFFF8000
+
+ thumb_func_start MOD08_0221868C
+MOD08_0221868C: ; 0x0221868C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02217ECC
+ cmp r0, #0
+ bne _022186A8
+ mov r0, #1
+ str r0, [r4, #0x24]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+_022186A8:
+ mov r0, #0
+ ldrsh r1, [r4, r0]
+ cmp r1, #0
+ bge _022186B2
+ strh r0, [r4]
+_022186B2:
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bge _022186BE
+ mov r0, #0
+ strh r0, [r4, #2]
+_022186BE:
+ mov r0, #0
+ ldrsh r1, [r4, r0]
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _022186D0 ; =0x04000052
+ strh r1, [r0]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022186D0: .word 0x04000052
+
+ thumb_func_start MOD08_022186D4
+MOD08_022186D4: ; 0x022186D4
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r6, sp, #8
+ mov r5, #0x10
+ ldrsh r5, [r6, r5]
+ add r4, r0, #0
+ str r5, [sp]
+ ldr r5, [sp, #0x1c]
+ lsl r5, r5, #0x10
+ lsr r5, r5, #0x10
+ str r5, [sp, #4]
+ bl MOD08_02217E80
+ mov r2, #0
+ ldr r0, _02218700 ; =MOD08_0221868C
+ add r1, r4, #0
+ str r2, [r4, #0x24]
+ bl FUN_0200CA44
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ nop
+_02218700: .word MOD08_0221868C
+
+ thumb_func_start MOD08_02218704
+MOD08_02218704: ; 0x02218704
+ ldr r0, [r0, #0x24]
+ bx lr
+
+ thumb_func_start MOD08_02218708
+MOD08_02218708: ; 0x02218708
+ push {r3, lr}
+ ldr r0, [r1, #8]
+ cmp r0, #0
+ beq _0221871C
+ mov r0, #1
+ str r0, [r1, #0xc]
+ ldr r0, [r1, #0x18]
+ ldr r1, [r1, #0x10]
+ blx r1
+ pop {r3, pc}
+_0221871C:
+ bl FUN_020129C8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218724
+MOD08_02218724: ; 0x02218724
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _0221873E
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _0221873E
+ ldr r0, [r4, #0x18]
+ ldr r1, [r4, #0x14]
+ blx r1
+ mov r0, #0
+ str r0, [r4, #0xc]
+_0221873E:
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02218740
+MOD08_02218740: ; 0x02218740
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ cmp r5, #0
+ bne _02218752
+ bl ErrorHandling
+_02218752:
+ mov r0, #1
+ str r0, [r5, #8]
+ mov r2, #0
+ str r2, [r5, #0xc]
+ str r4, [r5, #0x18]
+ str r6, [r5, #0x10]
+ ldr r0, _02218778 ; =MOD08_02218708
+ str r7, [r5, #0x14]
+ add r1, r5, #0
+ bl FUN_0200CA98
+ str r0, [r5, #4]
+ ldr r0, _0221877C ; =MOD08_02218724
+ add r1, r5, #0
+ mov r2, #0
+ bl FUN_0200CA60
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02218778: .word MOD08_02218708
+_0221877C: .word MOD08_02218724
+
+ thumb_func_start MOD08_02218780
+MOD08_02218780: ; 0x02218780
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221878A
+ bl ErrorHandling
+_0221878A:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _02218794
+ bl FUN_0200CAB4
+_02218794:
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _0221879E
+ bl FUN_0200CAB4
+_0221879E:
+ bl FUN_020129C8
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022187A4
+MOD08_022187A4: ; 0x022187A4
+ push {r4, lr}
+ add r4, r0, #0
+ bne _022187AE
+ bl ErrorHandling
+_022187AE:
+ mov r0, #0
+ str r0, [r4, #8]
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022187B4
+MOD08_022187B4: ; 0x022187B4
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x1c]
+ bl FUN_0201299C
+ add r5, r0, #0
+ bl FUN_020129C8
+ mov r1, #0x62
+ lsl r1, r1, #4
+ ldr r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #4
+ mov r3, #1
+ bl FUN_020129D8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022187D8
+MOD08_022187D8: ; 0x022187D8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x1c]
+ bl FUN_020129B4
+ add r0, r4, #0
+ bl MOD08_022187B4
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022187EC
+MOD08_022187EC: ; 0x022187EC
+ ldr r3, _022187F0 ; =MOD08_022187B4
+ bx r3
+ .align 2, 0
+_022187F0: .word MOD08_022187B4
+
+ thumb_func_start MOD08_022187F4
+MOD08_022187F4: ; 0x022187F4
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r7, r2, #0
+ add r5, r0, #0
+ ldr r1, _02218864 ; =0x00000624
+ add r0, r7, #0
+ bl AllocFromHeap
+ ldr r2, _02218864 ; =0x00000624
+ mov r1, #0
+ add r4, r0, #0
+ bl memset
+ cmp r4, #0
+ bne _02218816
+ bl ErrorHandling
+_02218816:
+ mov r2, #0x32
+ add r1, r4, #0
+ lsl r2, r2, #4
+ add r0, r7, #0
+ add r1, #0x20
+ add r2, r4, r2
+ bl FUN_02012944
+ str r0, [r4, #0x1c]
+ cmp r0, #0
+ bne _02218830
+ bl ErrorHandling
+_02218830:
+ mov r0, #0x62
+ lsl r0, r0, #4
+ add r1, r4, #0
+ mov r2, #3
+ str r5, [r4, r0]
+ add r0, r6, #0
+ add r1, #0x20
+ lsl r2, r2, #8
+ bl MIi_CpuClear32
+ mov r2, #0x32
+ lsl r2, r2, #4
+ add r1, r4, r2
+ add r0, r6, #0
+ sub r2, #0x20
+ bl MIi_CpuClear32
+ ldr r2, _02218868 ; =MOD08_022187D8
+ ldr r3, _0221886C ; =MOD08_022187EC
+ add r0, r4, #0
+ add r1, r4, #0
+ bl MOD08_02218740
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02218864: .word 0x00000624
+_02218868: .word MOD08_022187D8
+_0221886C: .word MOD08_022187EC
+
+ thumb_func_start MOD08_02218870
+MOD08_02218870: ; 0x02218870
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221887A
+ bl ErrorHandling
+_0221887A:
+ add r0, r4, #0
+ bl MOD08_02218780
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _0221888A
+ bl FUN_02012974
+_0221888A:
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218894
+MOD08_02218894: ; 0x02218894
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221889E
+ bl ErrorHandling
+_0221889E:
+ ldr r0, [r4, #0x1c]
+ bl FUN_02012988
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022188A8
+MOD08_022188A8: ; 0x022188A8
+ push {r4, lr}
+ add r4, r0, #0
+ bne _022188B2
+ bl ErrorHandling
+_022188B2:
+ add r0, r4, #0
+ bl MOD08_022187A4
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022188BC
+MOD08_022188BC: ; 0x022188BC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x1c]
+ bl FUN_02012B30
+ ldr r0, [r4, #0x1c]
+ bl FUN_02012B68
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022188D0
+MOD08_022188D0: ; 0x022188D0
+ ldr r3, _022188D8 ; =FUN_02012B68
+ ldr r0, [r0, #0x1c]
+ bx r3
+ nop
+_022188D8: .word FUN_02012B68
+
+ thumb_func_start MOD08_022188DC
+MOD08_022188DC: ; 0x022188DC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r7, r0, #0
+ str r1, [sp, #0x14]
+ ldr r0, [sp, #0x40]
+ mov r1, #0x20
+ str r2, [sp, #0x18]
+ add r5, r3, #0
+ bl AllocFromHeap
+ add r4, r0, #0
+ bne _022188F8
+ bl ErrorHandling
+_022188F8:
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x20
+ bl memset
+ ldr r0, [sp, #0x34]
+ bl MOD08_022189A0
+ add r6, r0, #0
+ ldr r0, [sp, #0x40]
+ bl FUN_02012A00
+ str r0, [r4, #0x1c]
+ str r5, [sp]
+ add r1, sp, #0x20
+ mov r0, #0x10
+ ldrsh r0, [r1, r0]
+ add r1, r7, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x3c]
+ str r6, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x38]
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x1c]
+ ldr r2, [sp, #0x14]
+ ldr r3, [sp, #0x18]
+ bl FUN_02012A30
+ ldr r2, _02218944 ; =MOD08_022188BC
+ ldr r3, _02218948 ; =MOD08_022188D0
+ add r0, r4, #0
+ add r1, r4, #0
+ bl MOD08_02218740
+ add r0, r4, #0
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02218944: .word MOD08_022188BC
+_02218948: .word MOD08_022188D0
+
+ thumb_func_start MOD08_0221894C
+MOD08_0221894C: ; 0x0221894C
+ push {r4, lr}
+ add r4, r0, #0
+ bne _02218956
+ bl ErrorHandling
+_02218956:
+ add r0, r4, #0
+ bl MOD08_02218780
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _02218966
+ bl FUN_02012B00
+_02218966:
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218970
+MOD08_02218970: ; 0x02218970
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221897A
+ bl ErrorHandling
+_0221897A:
+ ldr r0, [r4, #0x1c]
+ bl FUN_02012B20
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218984
+MOD08_02218984: ; 0x02218984
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0221898E
+ bl ErrorHandling
+_0221898E:
+ add r0, r4, #0
+ bl MOD08_022187A4
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218998
+MOD08_02218998: ; 0x02218998
+ lsl r1, r1, #0x10
+ orr r0, r1
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022189A0
+MOD08_022189A0: ; 0x022189A0
+ cmp r0, #3
+ bhi _022189C6
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022189B0: ; jump table
+ .short _022189B8 - _022189B0 - 2 ; case 0
+ .short _022189BC - _022189B0 - 2 ; case 1
+ .short _022189C0 - _022189B0 - 2 ; case 2
+ .short _022189C4 - _022189B0 - 2 ; case 3
+_022189B8:
+ ldr r0, _022189C8 ; =0x04000010
+ bx lr
+_022189BC:
+ ldr r0, _022189CC ; =0x04000014
+ bx lr
+_022189C0:
+ ldr r0, _022189D0 ; =0x04000018
+ bx lr
+_022189C4:
+ ldr r0, _022189D4 ; =0x0400001C
+_022189C6:
+ bx lr
+ .align 2, 0
+_022189C8: .word 0x04000010
+_022189CC: .word 0x04000014
+_022189D0: .word 0x04000018
+_022189D4: .word 0x0400001C
+
+ thumb_func_start MOD08_022189D8
+MOD08_022189D8: ; 0x022189D8
+ add r2, r0, r2
+ lsr r0, r2, #0x1f
+ add r0, r2, r0
+ asr r2, r0, #1
+ ldr r0, [sp]
+ add r1, r1, r3
+ strh r2, [r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r1, r0, #1
+ ldr r0, [sp, #4]
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022189F4
+MOD08_022189F4: ; 0x022189F4
+ push {r3, lr}
+ sub r1, r1, r3
+ neg r1, r1
+ sub r0, r0, r2
+ lsl r1, r1, #0x10
+ lsl r0, r0, #0x10
+ asr r1, r1, #0x10
+ add r2, r1, #0
+ asr r0, r0, #0x10
+ mul r2, r1
+ add r1, r0, #0
+ mul r1, r0
+ add r0, r2, r1
+ lsl r0, r0, #0xc
+ bl FX_Sqrt
+ ldr r1, [sp, #8]
+ str r0, [r1]
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218A1C
+MOD08_02218A1C: ; 0x02218A1C
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ sub r0, r1, r3
+ neg r0, r0
+ lsl r0, r0, #0x10
+ sub r1, r6, r2
+ asr r4, r0, #0x10
+ lsl r1, r1, #0x10
+ ldr r5, [sp, #0x10]
+ lsl r0, r4, #0xc
+ asr r1, r1, #4
+ bl FX_Atan2
+ strh r0, [r5]
+ ldrh r1, [r5]
+ cmp r1, #0
+ beq _02218A4C
+ cmp r4, #0
+ bge _02218A4C
+ ldr r0, _02218A50 ; =0x00007FFF
+ sub r1, r1, r0
+ ldr r0, _02218A54 ; =0x0000FFFF
+ mul r0, r1
+ strh r0, [r5]
+_02218A4C:
+ pop {r4, r5, r6, pc}
+ nop
+_02218A50: .word 0x00007FFF
+_02218A54: .word 0x0000FFFF
+
+ thumb_func_start MOD08_02218A58
+MOD08_02218A58: ; 0x02218A58
+ cmp r2, #0
+ ldr r3, [r0]
+ bge _02218A70
+ add r2, r3, r2
+ cmp r2, r1
+ ble _02218A6A
+ str r2, [r0]
+ mov r0, #0
+ bx lr
+_02218A6A:
+ str r1, [r0]
+ mov r0, #1
+ bx lr
+_02218A70:
+ add r2, r3, r2
+ cmp r2, r1
+ bge _02218A7C
+ str r2, [r0]
+ mov r0, #0
+ bx lr
+_02218A7C:
+ str r1, [r0]
+ mov r0, #1
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02218A84
+MOD08_02218A84: ; 0x02218A84
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _02218AF4
+ mov r0, #0x17
+ ldrsb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, #0x17]
+ ldrsb r1, [r4, r0]
+ mov r0, #0x16
+ ldrsb r0, [r4, r0]
+ cmp r1, r0
+ blt _02218AF4
+ mov r0, #0
+ strb r0, [r4, #0x17]
+ ldrb r0, [r4, #0x14]
+ str r0, [sp]
+ ldrh r0, [r4, #0x10]
+ str r0, [sp, #4]
+ ldrh r2, [r4, #0xc]
+ ldrh r3, [r4, #0xe]
+ ldr r0, [r4, #0x18]
+ ldr r1, [r4, #8]
+ bl FUN_020039E8
+ ldrb r3, [r4, #0x13]
+ ldrb r1, [r4, #0x14]
+ cmp r1, r3
+ bne _02218ACA
+ mov r0, #0
+ add sp, #8
+ str r0, [r4]
+ pop {r4, pc}
+_02218ACA:
+ mov r0, #0x15
+ ldrsb r2, [r4, r0]
+ add r1, r1, r2
+ lsl r0, r1, #0x18
+ asr r0, r0, #0x18
+ cmp r2, #0
+ ble _02218AE8
+ cmp r0, r3
+ ble _02218AE2
+ add sp, #8
+ strb r3, [r4, #0x14]
+ pop {r4, pc}
+_02218AE2:
+ add sp, #8
+ strb r1, [r4, #0x14]
+ pop {r4, pc}
+_02218AE8:
+ cmp r0, r3
+ bge _02218AF2
+ add sp, #8
+ strb r3, [r4, #0x14]
+ pop {r4, pc}
+_02218AF2:
+ strb r1, [r4, #0x14]
+_02218AF4:
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02218AF8
+MOD08_02218AF8: ; 0x02218AF8
+ push {r4, lr}
+ add r4, r0, #0
+ bne _02218B02
+ bl ErrorHandling
+_02218B02:
+ ldr r0, [r4]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218B08
+MOD08_02218B08: ; 0x02218B08
+ push {r4, lr}
+ add r4, r0, #0
+ bne _02218B12
+ bl ErrorHandling
+_02218B12:
+ ldr r0, [r4, #4]
+ bl FUN_0200CAB4
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02218B20
+MOD08_02218B20: ; 0x02218B20
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ mov r1, #0x1c
+ add r6, r2, #0
+ add r7, r3, #0
+ bl AllocFromHeap
+ add r4, r0, #0
+ bne _02218B38
+ bl ErrorHandling
+_02218B38:
+ str r5, [r4, #0x18]
+ str r6, [r4, #8]
+ strh r7, [r4, #0xc]
+ add r1, sp, #8
+ ldrh r0, [r1, #0x10]
+ strh r0, [r4, #0xe]
+ ldrh r0, [r1, #0x24]
+ strh r0, [r4, #0x10]
+ ldrb r2, [r1, #0x1c]
+ add r0, sp, #0x28
+ ldrb r0, [r0]
+ strb r2, [r4, #0x12]
+ strb r0, [r4, #0x13]
+ strb r2, [r4, #0x14]
+ mov r0, #0x14
+ ldrsb r0, [r1, r0]
+ strb r0, [r4, #0x16]
+ strb r0, [r4, #0x17]
+ ldrb r2, [r4, #0x12]
+ ldrb r0, [r4, #0x13]
+ cmp r2, r0
+ bhs _02218B6A
+ mov r0, #0x18
+ ldrsb r0, [r1, r0]
+ b _02218B70
+_02218B6A:
+ mov r0, #0x18
+ ldrsb r0, [r1, r0]
+ neg r0, r0
+_02218B70:
+ strb r0, [r4, #0x15]
+ mov r0, #1
+ str r0, [r4]
+ ldr r0, _02218B88 ; =MOD08_02218A84
+ ldr r2, [sp, #0x30]
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #4]
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02218B88: .word MOD08_02218A84
+
+ thumb_func_start MOD08_02218B8C
+MOD08_02218B8C: ; 0x02218B8C
+ push {r4, r5, r6, r7}
+ mov r7, #0
+ cmp r1, #0
+ ble _02218BCE
+ mov r2, #0x97
+_02218B96:
+ ldrh r6, [r0]
+ mov r3, #0x1f
+ add r7, r7, #1
+ asr r4, r6, #0xa
+ and r4, r3
+ add r5, r4, #0
+ mov r3, #0x1d
+ mul r5, r3
+ mov r3, #0x1f
+ and r3, r6
+ mov r4, #0x4c
+ mul r4, r3
+ asr r6, r6, #5
+ mov r3, #0x1f
+ and r3, r6
+ add r6, r3, #0
+ mul r6, r2
+ add r3, r4, r6
+ add r3, r5, r3
+ asr r5, r3, #8
+ lsl r4, r5, #0xa
+ lsl r3, r5, #5
+ orr r3, r4
+ orr r3, r5
+ strh r3, [r0]
+ add r0, r0, #2
+ cmp r7, r1
+ blt _02218B96
+_02218BCE:
+ pop {r4, r5, r6, r7}
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02218BD4
+MOD08_02218BD4: ; 0x02218BD4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD08_02215504
+ mov r1, #0
+ bl FUN_02003204
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02218BF8
+ add r0, r4, #0
+ mov r1, #0x30
+ bl MOD08_02218B8C
+ pop {r3, r4, r5, pc}
+_02218BF8:
+ add r0, r4, #0
+ mov r1, #0x80
+ bl MOD08_02218B8C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218C04
+MOD08_02218C04: ; 0x02218C04
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ bl MOD08_02215504
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02218C30
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x60
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_020031B8
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02218C30:
+ mov r1, #0
+ mov r0, #1
+ str r1, [sp]
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_020031B8
+ add sp, #8
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02218C48
+MOD08_02218C48: ; 0x02218C48
+ cmp r0, #0x54
+ blo _02218C50
+ mov r0, #0
+ bx lr
+_02218C50:
+ lsl r1, r0, #2
+ ldr r0, _02218C58 ; =0x0222C384
+ ldr r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_02218C58: .word 0x0222C384
+
+ thumb_func_start MOD08_02218C5C
+MOD08_02218C5C: ; 0x02218C5C
+ cmp r0, #0x21
+ blo _02218C64
+ mov r0, #0
+ bx lr
+_02218C64:
+ lsl r1, r0, #2
+ ldr r0, _02218C6C ; =0x0222C300
+ ldr r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_02218C6C: .word 0x0222C300
+
+ thumb_func_start MOD08_02218C70
+MOD08_02218C70: ; 0x02218C70
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02218C74
+MOD08_02218C74: ; 0x02218C74
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _02218C86
+ cmp r0, #1
+ beq _02218C8C
+ pop {r4, pc}
+_02218C86:
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, pc}
+_02218C8C:
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02218C9C
+MOD08_02218C9C: ; 0x02218C9C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #5
+ mov r1, #8
+ bl AllocFromHeap
+ add r2, r0, #0
+ mov r0, #0
+ strb r0, [r2]
+ mov r3, #1
+ ldr r1, _02218CC0 ; =MOD08_02218C74
+ add r0, r4, #0
+ lsl r3, r3, #0xc
+ str r4, [r2, #4]
+ bl MOD08_022123E4
+ pop {r4, pc}
+ nop
+_02218CC0: .word MOD08_02218C74
+
+ thumb_func_start MOD08_02218CC4
+MOD08_02218CC4: ; 0x02218CC4
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _02218CD6
+ cmp r0, #1
+ beq _02218CDC
+ pop {r4, pc}
+_02218CD6:
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, pc}
+_02218CDC:
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212448
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02218CEC
+MOD08_02218CEC: ; 0x02218CEC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #5
+ mov r1, #8
+ bl AllocFromHeap
+ add r2, r0, #0
+ mov r0, #0
+ strb r0, [r2]
+ mov r3, #1
+ ldr r1, _02218D10 ; =MOD08_02218CC4
+ add r0, r4, #0
+ lsl r3, r3, #0xc
+ str r4, [r2, #4]
+ bl MOD08_0221241C
+ pop {r4, pc}
+ nop
+_02218D10: .word MOD08_02218CC4
+
+ thumb_func_start MOD08_02218D14
+MOD08_02218D14: ; 0x02218D14
+ push {r4, lr}
+ add r4, r1, #0
+ ldrb r1, [r4]
+ cmp r1, #0
+ beq _02218D24
+ cmp r1, #1
+ beq _02218D2A
+ pop {r4, pc}
+_02218D24:
+ add r0, r1, #1
+ strb r0, [r4]
+ pop {r4, pc}
+_02218D2A:
+ bl FUN_0200CAB4
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218D38
+MOD08_02218D38: ; 0x02218D38
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #5
+ mov r1, #8
+ bl AllocFromHeap
+ add r1, r0, #0
+ mov r0, #0
+ strb r0, [r1]
+ mov r2, #1
+ ldr r0, _02218D58 ; =MOD08_02218D14
+ lsl r2, r2, #0xc
+ str r4, [r1, #4]
+ bl FUN_0200CA44
+ pop {r4, pc}
+ .align 2, 0
+_02218D58: .word MOD08_02218D14
+
+ thumb_func_start MOD08_02218D5C
+MOD08_02218D5C: ; 0x02218D5C
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ ldrb r0, [r5]
+ cmp r0, #0
+ beq _02218D6E
+ cmp r0, #1
+ beq _02218DB4
+ pop {r4, r5, r6, pc}
+_02218D6E:
+ ldr r0, [r5, #0x14]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ ldr r0, [r5, #0x18]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ ldr r0, [r5, #0x1c]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ ldr r0, [r5, #0x14]
+ mov r1, #1
+ ldr r0, [r0]
+ mov r2, #0
+ bl FUN_0200C7FC
+ ldr r0, [r5, #0x18]
+ mov r1, #0
+ ldr r0, [r0]
+ mvn r1, r1
+ mov r2, #0
+ bl FUN_0200C7FC
+ ldr r0, [r5, #0x1c]
+ mov r1, #1
+ ldr r0, [r0]
+ add r2, r1, #0
+ bl FUN_0200C7FC
+ ldr r0, [r5, #0xc]
+ bl FUN_0200BC1C
+ pop {r4, r5, r6, pc}
+_02218DB4:
+ ldr r0, [r5, #0x10]
+ ldr r4, [r5, #4]
+ bl FUN_0200C3DC
+ add r0, r5, #0
+ bl FreeToHeap
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD08_02212438
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02218DCC
+MOD08_02218DCC: ; 0x02218DCC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r6, r1, #0
+ mov r1, #0x73
+ str r0, [sp]
+ mov r0, #5
+ lsl r1, r1, #2
+ add r7, r2, #0
+ add r5, r3, #0
+ bl AllocFromHeap
+ add r4, r0, #0
+ bne _02218DEA
+ bl ErrorHandling
+_02218DEA:
+ mov r0, #0
+ strb r0, [r4]
+ str r6, [r4, #8]
+ str r7, [r4, #0xc]
+ ldr r0, [sp]
+ str r5, [r4, #0x10]
+ str r0, [r4, #4]
+ ldr r1, [sp]
+ add r0, sp, #4
+ bl MOD08_02215474
+ str r5, [r4, #0x14]
+ mov r6, #1
+ add r5, r4, #4
+ add r7, sp, #4
+_02218E08:
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ add r2, r7, #0
+ bl FUN_0200C154
+ str r0, [r5, #0x14]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #3
+ blt _02218E08
+ mov r3, #1
+ ldr r0, [sp]
+ ldr r1, _02218E30 ; =MOD08_02218D5C
+ add r2, r4, #0
+ lsl r3, r3, #0xc
+ bl MOD08_022123E4
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02218E30: .word MOD08_02218D5C
+
+ thumb_func_start MOD08_02218E34
+MOD08_02218E34: ; 0x02218E34
+ push {r4, lr}
+ mov r1, #0xc
+ add r2, r1, #0
+ add r2, #0xf4
+ add r4, r0, #0
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ add r0, r4, #0
+ add r2, #0xf3
+ bl FUN_02007558
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02218E50
+MOD08_02218E50: ; 0x02218E50
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r5, #4]
+ cmp r0, #0
+ beq _02218E62
+ cmp r0, #1
+ beq _02218E84
+ b _02218F4E
+_02218E62:
+ mov r0, #0x26
+ ldrsh r0, [r5, r0]
+ mov r1, #0x20
+ mov r2, #0x22
+ str r0, [sp]
+ mov r3, #0x24
+ add r0, r5, #0
+ ldrsh r1, [r5, r1]
+ ldrsh r2, [r5, r2]
+ ldrsh r3, [r5, r3]
+ add r0, #0x7c
+ bl MOD08_022183C0
+ ldrb r0, [r5, #4]
+ add r0, r0, #1
+ strb r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_02218E84:
+ add r0, r5, #0
+ add r0, #0x7c
+ bl MOD08_022183F0
+ cmp r0, #0
+ bne _02218E98
+ ldrb r0, [r5, #4]
+ add r0, r0, #1
+ strb r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_02218E98:
+ ldr r2, [r5, #0x28]
+ mov r1, #1
+ lsl r1, r1, #8
+ add r0, r2, #0
+ and r0, r1
+ cmp r0, r1
+ bne _02218EE4
+ ldr r0, [r5]
+ mov r6, #0
+ cmp r0, #0
+ ble _02218F32
+ add r4, r5, #0
+ mov r7, #0x32
+_02218EB2:
+ ldr r0, [r4, #0x34]
+ cmp r0, #0
+ beq _02218ED8
+ mov r2, #0x7c
+ mov r3, #0x30
+ ldrsh r2, [r5, r2]
+ ldrsh r3, [r4, r3]
+ mov r1, #0
+ add r2, r2, r3
+ bl FUN_02007558
+ mov r2, #0x7e
+ ldrsh r3, [r5, r2]
+ ldrsh r2, [r4, r7]
+ ldr r0, [r4, #0x34]
+ mov r1, #1
+ add r2, r3, r2
+ bl FUN_02007558
+_02218ED8:
+ ldr r0, [r5]
+ add r6, r6, #1
+ add r4, #0x14
+ cmp r6, r0
+ blt _02218EB2
+ b _02218F32
+_02218EE4:
+ lsl r0, r1, #1
+ and r2, r0
+ cmp r2, r0
+ bne _02218F32
+ ldr r0, [r5]
+ mov r6, #0
+ cmp r0, #0
+ ble _02218F2C
+ add r4, r5, #0
+ mov r7, #0x32
+_02218EF8:
+ ldr r0, [r4, #0x38]
+ cmp r0, #0
+ beq _02218F22
+ mov r1, #0x7c
+ mov r2, #0x30
+ ldrsh r1, [r5, r1]
+ ldrsh r2, [r4, r2]
+ add r1, r1, r2
+ mov r2, #0x7e
+ ldrsh r3, [r5, r2]
+ ldrsh r2, [r4, r7]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add r2, r3, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ ldr r0, [r4, #0x38]
+ bl FUN_0200C5A8
+_02218F22:
+ ldr r0, [r5]
+ add r6, r6, #1
+ add r4, #0x14
+ cmp r6, r0
+ blt _02218EF8
+_02218F2C:
+ ldr r0, [r5, #0x10]
+ bl FUN_0200BC1C
+_02218F32:
+ mov r0, #1
+ ldr r1, [r5, #0x28]
+ lsl r0, r0, #0xa
+ and r1, r0
+ cmp r1, r0
+ bne _02218F5C
+ mov r3, #0x7c
+ ldrsh r3, [r5, r3]
+ ldr r0, [r5, #0x18]
+ mov r1, #3
+ mov r2, #0
+ bl FUN_020179E0
+ pop {r3, r4, r5, r6, r7, pc}
+_02218F4E:
+ ldr r0, [r5, #8]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl FreeToHeap
+_02218F5C:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02218F60
+MOD08_02218F60: ; 0x02218F60
+ push {r3, r4, r5, lr}
+ mov r1, #0xa0
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #4
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ strh r0, [r4, #0x20]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ strh r0, [r4, #0x22]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ strh r0, [r4, #0x24]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ strh r0, [r4, #0x26]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ mov r2, #1
+ lsl r2, r2, #8
+ str r0, [r4, #0x28]
+ add r1, r0, #0
+ and r0, r2
+ cmp r0, r2
+ bne _02218FC0
+ add r2, r4, #0
+ add r0, r5, #0
+ add r2, #0x2c
+ add r3, r4, #0
+ bl MOD08_02227BAC
+ b _02218FD6
+_02218FC0:
+ lsl r0, r2, #1
+ add r3, r1, #0
+ and r3, r0
+ cmp r3, r0
+ bne _02218FD6
+ add r2, r4, #0
+ add r0, r5, #0
+ add r2, #0x2c
+ add r3, r4, #0
+ bl MOD08_02227F88
+_02218FD6:
+ ldr r0, [r4, #8]
+ ldr r1, _02218FE4 ; =MOD08_02218E50
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ nop
+_02218FE4: .word MOD08_02218E50
+
+ thumb_func_start MOD08_02218FE8
+MOD08_02218FE8: ; 0x02218FE8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x1c]
+ cmp r0, #3
+ bhi _022190B2
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02219000: ; jump table
+ .short _02219008 - _02219000 - 2 ; case 0
+ .short _02219026 - _02219000 - 2 ; case 1
+ .short _02219068 - _02219000 - 2 ; case 2
+ .short _02219074 - _02219000 - 2 ; case 3
+_02219008:
+ ldrh r0, [r4, #0x18]
+ mov r1, #4
+ mov r2, #0x39
+ str r0, [sp]
+ ldrh r3, [r4, #0x16]
+ ldr r0, _02219154 ; =0x04000050
+ bl G2x_SetBlendAlpha_
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201797C
+ ldrb r0, [r4, #0x1c]
+ add r0, r0, #1
+ strb r0, [r4, #0x1c]
+_02219026:
+ ldrh r1, [r4, #8]
+ ldrh r2, [r4, #0x16]
+ mov r0, #0
+ sub r1, r1, #2
+ cmp r2, r1
+ bge _02219038
+ add r1, r2, #2
+ strh r1, [r4, #0x16]
+ b _0221903A
+_02219038:
+ add r0, r0, #1
+_0221903A:
+ ldrh r1, [r4, #0x18]
+ cmp r1, #9
+ bls _02219046
+ sub r1, r1, #2
+ strh r1, [r4, #0x18]
+ b _02219048
+_02219046:
+ add r0, r0, #1
+_02219048:
+ cmp r0, #2
+ bne _0221905A
+ ldrh r0, [r4, #8]
+ strh r0, [r4, #0x16]
+ mov r0, #7
+ strh r0, [r4, #0x18]
+ ldrb r0, [r4, #0x1c]
+ add r0, r0, #1
+ strb r0, [r4, #0x1c]
+_0221905A:
+ ldrh r0, [r4, #0x18]
+ ldrh r1, [r4, #0x16]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _02219158 ; =0x04000052
+ strh r1, [r0]
+ b _022190CA
+_02219068:
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ beq _022190CA
+ add r0, r0, #1
+ strb r0, [r4, #0x1c]
+ b _022190CA
+_02219074:
+ ldrh r0, [r4, #0x16]
+ mov r1, #0
+ cmp r0, #2
+ bls _02219082
+ sub r0, r0, #2
+ strh r0, [r4, #0x16]
+ b _02219084
+_02219082:
+ add r1, r1, #1
+_02219084:
+ ldrh r0, [r4, #0x18]
+ cmp r0, #0x1d
+ bhs _02219090
+ add r0, r0, #2
+ strh r0, [r4, #0x18]
+ b _02219092
+_02219090:
+ add r1, r1, #1
+_02219092:
+ cmp r1, #2
+ bne _022190A4
+ mov r0, #0
+ strh r0, [r4, #0x16]
+ mov r0, #0x1f
+ strh r0, [r4, #0x18]
+ ldrb r0, [r4, #0x1c]
+ add r0, r0, #1
+ strb r0, [r4, #0x1c]
+_022190A4:
+ ldrh r0, [r4, #0x18]
+ ldrh r1, [r4, #0x16]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _02219158 ; =0x04000052
+ strh r1, [r0]
+ b _022190CA
+_022190B2:
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201797C
+ ldr r0, [r4, #0x20]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, pc}
+_022190CA:
+ mov r1, #0x10
+ ldrsh r3, [r4, r1]
+ cmp r3, #0
+ ble _022190DC
+ mov r0, #0xc
+ ldrsh r2, [r4, r0]
+ lsl r0, r1, #5
+ cmp r2, r0
+ bge _022190EA
+_022190DC:
+ cmp r3, #0
+ bge _022190EE
+ mov r0, #0xc
+ ldrsh r1, [r4, r0]
+ ldr r0, _0221915C ; =0xFFFFFE64
+ cmp r1, r0
+ bgt _022190EE
+_022190EA:
+ mov r0, #1
+ str r0, [r4, #4]
+_022190EE:
+ mov r0, #0xa
+ ldrsh r1, [r4, r0]
+ mov r0, #0xe
+ ldrsh r0, [r4, r0]
+ add r0, r1, r0
+ strh r0, [r4, #0xa]
+ mov r0, #0xc
+ ldrsh r2, [r4, r0]
+ mov r0, #0x10
+ ldrsh r1, [r4, r0]
+ add r1, r2, r1
+ strh r1, [r4, #0xc]
+ ldrh r2, [r4, #0x12]
+ ldrh r1, [r4, #0x14]
+ cmp r2, r1
+ bhs _02219132
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bge _02219118
+ add r0, r0, #1
+ b _0221911A
+_02219118:
+ mov r0, #0
+_0221911A:
+ strh r0, [r4, #0x10]
+ mov r0, #0xe
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bge _02219128
+ add r0, r0, #1
+ b _0221912A
+_02219128:
+ mov r0, #0
+_0221912A:
+ strh r0, [r4, #0xe]
+ mov r0, #0
+ strh r0, [r4, #0x14]
+ b _02219136
+_02219132:
+ add r0, r1, #1
+ strh r0, [r4, #0x14]
+_02219136:
+ mov r3, #0xa
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ mov r2, #0
+ bl FUN_020179E0
+ mov r3, #0xc
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ mov r2, #3
+ bl FUN_020179E0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02219154: .word 0x04000050
+_02219158: .word 0x04000052
+_0221915C: .word 0xFFFFFE64
+
+ thumb_func_start MOD08_02219160
+MOD08_02219160: ; 0x02219160
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ mov r1, #0xb8
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x1c
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ strh r0, [r4, #0xa]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ strh r0, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ strh r0, [r4, #0xe]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ strh r0, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ str r0, [r4]
+ add r0, r5, #0
+ mov r1, #6
+ bl MOD08_02212498
+ strh r0, [r4, #8]
+ add r0, r5, #0
+ mov r1, #7
+ bl MOD08_02212498
+ strh r0, [r4, #0x12]
+ mov r0, #0
+ strh r0, [r4, #0x14]
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _0221920C
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _0221920C
+ mov r0, #0xa
+ ldrsh r1, [r4, r0]
+ sub r0, #0xb
+ mul r0, r1
+ strh r0, [r4, #0xa]
+ mov r1, #0xc
+ add r0, r1, #0
+ ldrsh r2, [r4, r1]
+ sub r0, #0xd
+ mul r0, r2
+ strh r0, [r4, #0xc]
+ mov r0, #0xe
+ ldrsh r2, [r4, r0]
+ sub r0, #0xf
+ mul r0, r2
+ strh r0, [r4, #0xe]
+ mov r0, #0x10
+ ldrsh r2, [r4, r0]
+ sub r0, #0x11
+ mul r0, r2
+ strh r0, [r4, #0x10]
+ ldrsh r0, [r4, r1]
+ sub r0, #0x54
+ strh r0, [r4, #0xc]
+ b _02219214
+_0221920C:
+ mov r0, #0xc
+ ldrsh r0, [r4, r0]
+ add r0, #0x54
+ strh r0, [r4, #0xc]
+_02219214:
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02219228
+ mov r0, #0xe
+ ldrsh r1, [r4, r0]
+ sub r0, #0xf
+ mul r0, r1
+ strh r0, [r4, #0xe]
+_02219228:
+ mov r1, #0
+ strh r1, [r4, #0x16]
+ mov r0, #0x1f
+ strh r0, [r4, #0x18]
+ mov r0, #2
+ str r1, [r4, #4]
+ bl FUN_0201797C
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ mov r1, #0
+ add r7, r0, #0
+ bl MOD08_022156AC
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212014
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x30]
+ mov r0, #7
+ add r1, r6, #0
+ mov r3, #2
+ bl FUN_0200687C
+ add r0, r7, #0
+ mov r1, #1
+ bl MOD08_022156AC
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212014
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x90
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x34]
+ mov r1, #7
+ add r2, r6, #0
+ bl FUN_020030E8
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ bl FUN_02018744
+ add r0, r5, #0
+ mov r6, #2
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _022192A8
+ mov r6, #4
+ b _022192BC
+_022192A8:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _022192BC
+ mov r6, #3
+_022192BC:
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD08_022156AC
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212014
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x30]
+ mov r0, #7
+ add r1, r6, #0
+ mov r3, #2
+ bl FUN_020068C8
+ mov r3, #0xa
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ mov r2, #0
+ bl FUN_020179E0
+ mov r3, #0xc
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ mov r2, #3
+ bl FUN_020179E0
+ ldr r0, [r4, #0x20]
+ ldr r1, _02219310 ; =MOD08_02218FE8
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02219310: .word MOD08_02218FE8
+
+ thumb_func_start MOD08_02219314
+MOD08_02219314: ; 0x02219314
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x1c]
+ cmp r0, #3
+ bhi _022193DA
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0221932C: ; jump table
+ .short _02219334 - _0221932C - 2 ; case 0
+ .short _02219352 - _0221932C - 2 ; case 1
+ .short _02219390 - _0221932C - 2 ; case 2
+ .short _0221939C - _0221932C - 2 ; case 3
+_02219334:
+ ldrh r0, [r4, #0x18]
+ mov r1, #4
+ mov r2, #0x39
+ str r0, [sp]
+ ldrh r3, [r4, #0x16]
+ ldr r0, _0221947C ; =0x04000050
+ bl G2x_SetBlendAlpha_
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201797C
+ ldrb r0, [r4, #0x1c]
+ add r0, r0, #1
+ strb r0, [r4, #0x1c]
+_02219352:
+ ldrh r0, [r4, #0x16]
+ mov r1, #0
+ cmp r0, #0x10
+ bhs _02219360
+ add r0, r0, #2
+ strh r0, [r4, #0x16]
+ b _02219362
+_02219360:
+ add r1, r1, #1
+_02219362:
+ ldrh r0, [r4, #0x18]
+ cmp r0, #4
+ bls _0221936E
+ sub r0, r0, #2
+ strh r0, [r4, #0x18]
+ b _02219370
+_0221936E:
+ add r1, r1, #1
+_02219370:
+ cmp r1, #2
+ bne _02219382
+ mov r0, #0x10
+ strh r0, [r4, #0x16]
+ mov r0, #4
+ strh r0, [r4, #0x18]
+ ldrb r0, [r4, #0x1c]
+ add r0, r0, #1
+ strb r0, [r4, #0x1c]
+_02219382:
+ ldrh r0, [r4, #0x18]
+ ldrh r1, [r4, #0x16]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _02219480 ; =0x04000052
+ strh r1, [r0]
+ b _022193F2
+_02219390:
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ beq _022193F2
+ add r0, r0, #1
+ strb r0, [r4, #0x1c]
+ b _022193F2
+_0221939C:
+ ldrh r0, [r4, #0x16]
+ mov r1, #0
+ cmp r0, #2
+ bls _022193AA
+ sub r0, r0, #2
+ strh r0, [r4, #0x16]
+ b _022193AC
+_022193AA:
+ add r1, r1, #1
+_022193AC:
+ ldrh r0, [r4, #0x18]
+ cmp r0, #0x10
+ bhs _022193B8
+ add r0, r0, #2
+ strh r0, [r4, #0x18]
+ b _022193BA
+_022193B8:
+ add r1, r1, #1
+_022193BA:
+ cmp r1, #2
+ bne _022193CC
+ mov r0, #0
+ strh r0, [r4, #0x16]
+ mov r0, #0x1f
+ strh r0, [r4, #0x18]
+ ldrb r0, [r4, #0x1c]
+ add r0, r0, #1
+ strb r0, [r4, #0x1c]
+_022193CC:
+ ldrh r0, [r4, #0x18]
+ ldrh r1, [r4, #0x16]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _02219480 ; =0x04000052
+ strh r1, [r0]
+ b _022193F2
+_022193DA:
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201797C
+ ldr r0, [r4, #0x20]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, pc}
+_022193F2:
+ mov r1, #0x10
+ ldrsh r3, [r4, r1]
+ cmp r3, #0
+ ble _02219404
+ mov r0, #0xc
+ ldrsh r2, [r4, r0]
+ lsl r0, r1, #5
+ cmp r2, r0
+ bge _02219412
+_02219404:
+ cmp r3, #0
+ bge _02219416
+ mov r0, #0xc
+ ldrsh r1, [r4, r0]
+ ldr r0, _02219484 ; =0xFFFFFE64
+ cmp r1, r0
+ bgt _02219416
+_02219412:
+ mov r0, #1
+ str r0, [r4, #4]
+_02219416:
+ mov r0, #0xa
+ ldrsh r1, [r4, r0]
+ mov r0, #0xe
+ ldrsh r0, [r4, r0]
+ add r0, r1, r0
+ strh r0, [r4, #0xa]
+ mov r0, #0xc
+ ldrsh r2, [r4, r0]
+ mov r0, #0x10
+ ldrsh r1, [r4, r0]
+ add r1, r2, r1
+ strh r1, [r4, #0xc]
+ ldrh r2, [r4, #0x12]
+ ldrh r1, [r4, #0x14]
+ cmp r2, r1
+ bhs _0221945A
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bge _02219440
+ add r0, r0, #1
+ b _02219442
+_02219440:
+ mov r0, #0
+_02219442:
+ strh r0, [r4, #0x10]
+ mov r0, #0xe
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bge _02219450
+ add r0, r0, #1
+ b _02219452
+_02219450:
+ mov r0, #0
+_02219452:
+ strh r0, [r4, #0xe]
+ mov r0, #0
+ strh r0, [r4, #0x14]
+ b _0221945E
+_0221945A:
+ add r0, r1, #1
+ strh r0, [r4, #0x14]
+_0221945E:
+ mov r3, #0xa
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ mov r2, #0
+ bl FUN_020179E0
+ mov r3, #0xc
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ mov r2, #3
+ bl FUN_020179E0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221947C: .word 0x04000050
+_02219480: .word 0x04000052
+_02219484: .word 0xFFFFFE64
+
+ thumb_func_start MOD08_02219488
+MOD08_02219488: ; 0x02219488
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ mov r1, #0xb8
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x1c
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ strh r0, [r4, #0xa]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ strh r0, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ strh r0, [r4, #0xe]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ strh r0, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ str r0, [r4]
+ add r0, r5, #0
+ mov r1, #6
+ bl MOD08_02212498
+ strh r0, [r4, #8]
+ add r0, r5, #0
+ mov r1, #7
+ bl MOD08_02212498
+ strh r0, [r4, #0x12]
+ mov r0, #0
+ strh r0, [r4, #0x14]
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _02219534
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _02219534
+ mov r0, #0xa
+ ldrsh r1, [r4, r0]
+ sub r0, #0xb
+ mul r0, r1
+ strh r0, [r4, #0xa]
+ mov r1, #0xc
+ add r0, r1, #0
+ ldrsh r2, [r4, r1]
+ sub r0, #0xd
+ mul r0, r2
+ strh r0, [r4, #0xc]
+ mov r0, #0xe
+ ldrsh r2, [r4, r0]
+ sub r0, #0xf
+ mul r0, r2
+ strh r0, [r4, #0xe]
+ mov r0, #0x10
+ ldrsh r2, [r4, r0]
+ sub r0, #0x11
+ mul r0, r2
+ strh r0, [r4, #0x10]
+ ldrsh r0, [r4, r1]
+ sub r0, #0x54
+ strh r0, [r4, #0xc]
+ b _0221953C
+_02219534:
+ mov r0, #0xc
+ ldrsh r0, [r4, r0]
+ add r0, #0x54
+ strh r0, [r4, #0xc]
+_0221953C:
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02219550
+ mov r0, #0xe
+ ldrsh r1, [r4, r0]
+ sub r0, #0xf
+ mul r0, r1
+ strh r0, [r4, #0xe]
+_02219550:
+ mov r0, #4
+ strh r0, [r4, #0x16]
+ mov r0, #0x10
+ strh r0, [r4, #0x18]
+ mov r1, #0
+ strh r1, [r4, #0x16]
+ strh r0, [r4, #0x18]
+ mov r0, #2
+ str r1, [r4, #4]
+ bl FUN_0201797C
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ mov r1, #0
+ add r7, r0, #0
+ bl MOD08_022156AC
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212014
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x30]
+ mov r0, #7
+ add r1, r6, #0
+ mov r3, #2
+ bl FUN_0200687C
+ add r0, r7, #0
+ mov r1, #1
+ bl MOD08_022156AC
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212014
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x90
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x34]
+ mov r1, #7
+ add r2, r6, #0
+ bl FUN_020030E8
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ bl FUN_02018744
+ add r0, r5, #0
+ mov r6, #2
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _022195D6
+ mov r6, #4
+ b _022195EA
+_022195D6:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _022195EA
+ mov r6, #3
+_022195EA:
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD08_022156AC
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212014
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x30]
+ mov r0, #7
+ add r1, r6, #0
+ mov r3, #2
+ bl FUN_020068C8
+ mov r3, #0xa
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ mov r2, #0
+ bl FUN_020179E0
+ mov r3, #0xc
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ mov r2, #3
+ bl FUN_020179E0
+ ldr r0, [r4, #0x20]
+ ldr r1, _0221963C ; =MOD08_02219314
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221963C: .word MOD08_02219314
+
+ thumb_func_start MOD08_02219640
+MOD08_02219640: ; 0x02219640
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _02219656
+ cmp r0, #1
+ beq _02219656
+ cmp r0, #2
+ beq _02219688
+ pop {r3, r4, r5, pc}
+_02219656:
+ add r0, r4, #0
+ add r0, #0xc
+ bl MOD08_02218058
+ cmp r0, #1
+ bne _02219672
+ ldr r2, [r4, #0xc]
+ ldr r0, [r4, #8]
+ lsl r2, r2, #0x10
+ mov r1, #9
+ lsr r2, r2, #0x10
+ bl FUN_02007558
+ pop {r3, r4, r5, pc}
+_02219672:
+ add r0, r4, #0
+ ldr r1, [r4, #0xc]
+ ldr r2, [r4, #0x20]
+ ldr r3, [r4, #0x24]
+ add r0, #0xc
+ bl MOD08_02218008
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02219688:
+ ldr r0, [r4, #8]
+ mov r1, #0xa
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #8]
+ mov r1, #0xb
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #8]
+ mov r1, #9
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022196B8
+MOD08_022196B8: ; 0x022196B8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0x2c
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4]
+ str r5, [r4, #4]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [r4, #0x24]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [r4, #0x20]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ add r7, r0, #0
+ beq _022196F2
+ cmp r7, #2
+ bne _022196FC
+_022196F2:
+ ldr r0, [r4, #4]
+ bl MOD08_02212460
+ str r0, [sp]
+ b _02219704
+_022196FC:
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ str r0, [sp]
+_02219704:
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ add r2, r0, #0
+ add r0, r4, #0
+ ldr r1, [r4, #0x20]
+ ldr r3, [r4, #0x24]
+ add r0, #0xc
+ bl MOD08_02218008
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD08_02217C1C
+ add r6, r0, #0
+ ldr r0, [r4, #0x14]
+ add r1, r0, #0
+ mul r1, r6
+ str r1, [r4, #0x14]
+ cmp r7, #2
+ bne _02219736
+ mov r0, #0
+ mvn r0, r0
+ mul r6, r0
+_02219736:
+ ldr r0, [r4, #4]
+ ldr r1, [sp]
+ bl MOD08_022154D4
+ str r0, [r4, #8]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ cmp r0, #1
+ bne _02219760
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ strh r0, [r4, #0x28]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ b _02219768
+_02219760:
+ mov r0, #0x28
+ add r1, r6, #0
+ mul r1, r0
+ strh r1, [r4, #0x28]
+_02219768:
+ strh r0, [r4, #0x2a]
+ mov r2, #0x28
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #8]
+ mov r1, #0xa
+ bl FUN_02007558
+ mov r2, #0x2a
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #8]
+ mov r1, #0xb
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ ldr r1, _02219790 ; =MOD08_02219640
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02219790: .word MOD08_02219640
+
+ thumb_func_start MOD08_02219794
+MOD08_02219794: ; 0x02219794
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r1, #0x2c
+ mov r2, #0x2e
+ add r5, r0, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r3, [r4, #0x28]
+ add r0, r4, #4
+ bl MOD08_02217E58
+ cmp r0, #0
+ bne _022197E0
+ mov r2, #0x2c
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x2e
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ sub r2, #8
+ bl FUN_02007558
+ ldr r0, [r4, #0x28]
+ mov r1, #9
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_022197E0:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022197E4
+MOD08_022197E4: ; 0x022197E4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0x30
+ bl AllocFromHeap
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #0
+ str r5, [r4]
+ bl MOD08_02212498
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ add r2, r0, #0
+ add r0, r4, #4
+ add r1, r6, #0
+ bl MOD08_02218654
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ cmp r0, #8
+ bgt _0221982E
+ cmp r0, #2
+ blt _022198A0
+ beq _02219834
+ cmp r0, #4
+ beq _02219850
+ cmp r0, #8
+ beq _02219874
+ b _022198A0
+_0221982E:
+ cmp r0, #0x10
+ beq _02219886
+ b _022198A0
+_02219834:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x28]
+ mov r0, #0
+ ldr r1, [r4, #0x10]
+ mvn r0, r0
+ mul r0, r1
+ str r0, [r4, #0x10]
+ b _022198A4
+_02219850:
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022274C0
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x28]
+ mov r0, #0
+ ldr r1, [r4, #0x10]
+ mvn r0, r0
+ mul r0, r1
+ str r0, [r4, #0x10]
+ b _022198A4
+_02219874:
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x28]
+ b _022198A4
+_02219886:
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022274C0
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x28]
+ b _022198A4
+_022198A0:
+ bl ErrorHandling
+_022198A4:
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x2c]
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x2e]
+ mov r0, #0x2e
+ ldrsh r0, [r4, r0]
+ ldr r1, _022198CC ; =MOD08_02219794
+ add r2, r4, #0
+ add r0, #8
+ strh r0, [r4, #0x2e]
+ ldr r0, [r4]
+ bl MOD08_02212400
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_022198CC: .word MOD08_02219794
+
+ thumb_func_start MOD08_022198D0
+MOD08_022198D0: ; 0x022198D0
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ ldr r0, [r5, #0x14]
+ add r4, r1, #0
+ mov r1, #1
+ add r6, r2, #0
+ bl FUN_0200C644
+ ldr r0, [r5, #0x14]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_0200C714
+ mov r0, #0
+ str r0, [r5, #0x40]
+ mov r0, #4
+ mov r1, #0xa
+ add r5, #0x18
+ str r0, [sp]
+ add r0, r5, #0
+ add r2, r1, #0
+ mov r3, #0xe
+ bl MOD08_02218120
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02219908
+MOD08_02219908: ; 0x02219908
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r1, [r4, #0x14]
+ add r0, #0x18
+ bl MOD08_02218360
+ cmp r0, #0
+ bne _02219944
+ ldr r0, [r4, #0x40]
+ cmp r0, #0
+ beq _0221992E
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_0200C644
+ add sp, #4
+ mov r0, #1
+ pop {r3, r4, pc}
+_0221992E:
+ mov r0, #1
+ str r0, [r4, #0x40]
+ mov r0, #2
+ add r4, #0x18
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0xe
+ mov r2, #0xa
+ mov r3, #0xc
+ bl MOD08_02218120
+_02219944:
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221994C
+MOD08_0221994C: ; 0x0221994C
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0x48]
+ mov r5, #0
+ cmp r1, #4
+ bhi _022199E4
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02219964: ; jump table
+ .short _0221996E - _02219964 - 2 ; case 0
+ .short _02219994 - _02219964 - 2 ; case 1
+ .short _022199A4 - _02219964 - 2 ; case 2
+ .short _022199D2 - _02219964 - 2 ; case 3
+ .short _022199E2 - _02219964 - 2 ; case 4
+_0221996E:
+ mov r1, #0x4c
+ ldrsh r3, [r4, r1]
+ ldr r2, [r4, #0x3c]
+ mov r1, #0x18
+ mul r1, r2
+ mov r2, #0x4e
+ ldrsh r2, [r4, r2]
+ add r1, r3, r1
+ lsl r1, r1, #0x10
+ sub r2, #0x10
+ lsl r2, r2, #0x10
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_022198D0
+ ldr r0, [r4, #0x48]
+ add r0, r0, #1
+ str r0, [r4, #0x48]
+ b _022199E4
+_02219994:
+ bl MOD08_02219908
+ cmp r0, #0
+ beq _022199E4
+ ldr r0, [r4, #0x48]
+ add r0, r0, #1
+ str r0, [r4, #0x48]
+ b _022199E4
+_022199A4:
+ ldr r1, [r4, #0x44]
+ sub r1, r1, #1
+ str r1, [r4, #0x44]
+ bpl _022199E4
+ ldr r1, [r4, #0x48]
+ add r1, r1, #1
+ str r1, [r4, #0x48]
+ mov r1, #0x4c
+ ldrsh r3, [r4, r1]
+ ldr r2, [r4, #0x3c]
+ mov r1, #0x18
+ mul r1, r2
+ mov r2, #0x4e
+ ldrsh r2, [r4, r2]
+ sub r1, r3, r1
+ lsl r1, r1, #0x10
+ sub r2, #0x18
+ lsl r2, r2, #0x10
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_022198D0
+ b _022199E4
+_022199D2:
+ bl MOD08_02219908
+ cmp r0, #0
+ beq _022199E4
+ ldr r0, [r4, #0x48]
+ add r0, r0, #1
+ str r0, [r4, #0x48]
+ b _022199E4
+_022199E2:
+ mov r5, #1
+_022199E4:
+ add r0, r5, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_022199E8
+MOD08_022199E8: ; 0x022199E8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _022199FA
+ cmp r0, #1
+ beq _02219A0C
+ b _02219A22
+_022199FA:
+ add r0, r4, #0
+ bl MOD08_0221994C
+ cmp r0, #0
+ beq _02219A22
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02219A22
+_02219A0C:
+ ldr r0, [r4, #0x14]
+ bl FUN_0200C3DC
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, pc}
+_02219A22:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02219A2C
+MOD08_02219A2C: ; 0x02219A2C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ mov r1, #0x50
+ add r5, r0, #0
+ str r2, [sp]
+ add r6, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ ldr r0, [sp]
+ str r7, [r4, #4]
+ str r0, [r4, #8]
+ str r6, [r4, #0x14]
+ add r0, r6, #0
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x14]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_0200C644
+ mov r0, #4
+ str r0, [r4, #0x44]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02217C1C
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ mov r1, #0
+ add r5, r0, #0
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0x4c
+ strh r0, [r1]
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0x4e
+ strh r0, [r1]
+ ldr r0, [r4]
+ ldr r1, _02219AB4 ; =MOD08_022199E8
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02219AB4: .word MOD08_022199E8
+
+ thumb_func_start MOD08_02219AB8
+MOD08_02219AB8: ; 0x02219AB8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02219AD6
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+_02219AD6:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02219AD8
+MOD08_02219AD8: ; 0x02219AD8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ mov r1, #8
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ add r0, r5, #0
+ bl MOD08_02215504
+ str r0, [r4, #4]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ beq _02219B06
+ cmp r0, #1
+ beq _02219B12
+ cmp r0, #2
+ beq _02219B18
+ b _02219B1E
+_02219B06:
+ add r0, r5, #0
+ bl MOD08_02214540
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ b _02219B22
+_02219B12:
+ mov r6, #1
+ lsl r6, r6, #8
+ b _02219B22
+_02219B18:
+ mov r6, #2
+ lsl r6, r6, #8
+ b _02219B22
+_02219B1E:
+ bl ErrorHandling
+_02219B22:
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ ldr r1, [sp, #0xc]
+ lsl r0, r0, #0x10
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp]
+ ldr r1, [sp, #0x10]
+ lsl r3, r7, #0x18
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp, #4]
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ add r2, r6, #0
+ asr r3, r3, #0x18
+ bl FUN_02003210
+ ldr r0, [r4]
+ ldr r1, _02219B7C ; =MOD08_02219AB8
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02219B7C: .word MOD08_02219AB8
+
+ thumb_func_start MOD08_02219B80
+MOD08_02219B80: ; 0x02219B80
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #5
+ bhi _02219C28
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02219B98: ; jump table
+ .short _02219BA4 - _02219B98 - 2 ; case 0
+ .short _02219BBC - _02219B98 - 2 ; case 1
+ .short _02219BCE - _02219B98 - 2 ; case 2
+ .short _02219BE0 - _02219B98 - 2 ; case 3
+ .short _02219BF8 - _02219B98 - 2 ; case 4
+ .short _02219C1A - _02219B98 - 2 ; case 5
+_02219BA4:
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ ldr r2, [r4, #0x18]
+ ldr r3, [r4, #0x10]
+ bl FUN_02007E68
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_02219BBC:
+ ldr r0, [r4, #4]
+ bl FUN_02007F20
+ cmp r0, #0
+ bne _02219C28
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_02219BCE:
+ ldr r1, [r4, #0x1c]
+ cmp r1, #0
+ bne _02219BDA
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02219BE0
+_02219BDA:
+ sub r0, r1, #1
+ str r0, [r4, #0x1c]
+ pop {r3, r4, r5, pc}
+_02219BE0:
+ ldr r0, [r4, #0x14]
+ mov r2, #0
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ ldr r1, [r4, #0x18]
+ ldr r3, [r4, #0x10]
+ bl FUN_02007E68
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_02219BF8:
+ ldr r0, [r4, #4]
+ bl FUN_02007F20
+ cmp r0, #0
+ bne _02219C28
+ ldr r0, [r4, #0xc]
+ sub r0, r0, #1
+ str r0, [r4, #0xc]
+ cmp r0, #0
+ bgt _02219C14
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_02219C14:
+ mov r0, #0
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_02219C1A:
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+_02219C28:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02219C2C
+MOD08_02219C2C: ; 0x02219C2C
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x20
+ add r4, r0, #0
+ bl MOD08_02228064
+ add r6, r0, #0
+ str r4, [r6]
+ mov r1, #0
+ add r0, r4, #0
+ str r1, [r6, #4]
+ bl MOD08_02212498
+ ldr r2, _02219DF4 ; =0x00000802
+ cmp r0, r2
+ bgt _02219C66
+ bge _02219CEC
+ cmp r0, #8
+ bgt _02219C60
+ cmp r0, #2
+ blt _02219C5E
+ beq _02219C7E
+ cmp r0, #4
+ beq _02219C90
+ cmp r0, #8
+ beq _02219CB6
+_02219C5E:
+ b _02219DA4
+_02219C60:
+ cmp r0, #0x10
+ beq _02219CC8
+ b _02219DA4
+_02219C66:
+ add r1, r2, #6
+ cmp r0, r1
+ bgt _02219C76
+ bge _02219D48
+ add r1, r2, #2
+ cmp r0, r1
+ beq _02219D1C
+ b _02219DA4
+_02219C76:
+ add r2, #0xe
+ cmp r0, r2
+ beq _02219D78
+ b _02219DA4
+_02219C7E:
+ add r0, r4, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_022154D4
+ str r0, [r6, #4]
+ b _02219DA8
+_02219C90:
+ add r0, r4, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ beq _02219C9C
+ b _02219DA8
+_02219C9C:
+ ldr r0, [r6]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_022274C0
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_022154D4
+ str r0, [r6, #4]
+ b _02219DA8
+_02219CB6:
+ add r0, r4, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_022154D4
+ str r0, [r6, #4]
+ b _02219DA8
+_02219CC8:
+ add r0, r4, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _02219DA8
+ ldr r0, [r6]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_022274C0
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_022154D4
+ str r0, [r6, #4]
+ b _02219DA8
+_02219CEC:
+ mov r7, #0xff
+ mov r5, #0
+_02219CF0:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02215490
+ cmp r0, #0
+ beq _02219D00
+ cmp r0, #2
+ bne _02219D04
+_02219D00:
+ add r7, r5, #0
+ b _02219D0A
+_02219D04:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _02219CF0
+_02219D0A:
+ cmp r7, #0xff
+ bne _02219D10
+ mov r7, #0
+_02219D10:
+ ldr r0, [r6]
+ add r1, r7, #0
+ bl MOD08_022154D4
+ str r0, [r6, #4]
+ b _02219DA8
+_02219D1C:
+ mov r7, #0xff
+ mov r5, #0
+_02219D20:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02215490
+ cmp r0, #4
+ bne _02219D30
+ add r7, r5, #0
+ b _02219D36
+_02219D30:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _02219D20
+_02219D36:
+ cmp r7, #0xff
+ bne _02219D3C
+ mov r7, #0
+_02219D3C:
+ ldr r0, [r6]
+ add r1, r7, #0
+ bl MOD08_022154D4
+ str r0, [r6, #4]
+ b _02219DA8
+_02219D48:
+ mov r7, #0xff
+ mov r5, #0
+_02219D4C:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02215490
+ cmp r0, #1
+ beq _02219D5C
+ cmp r0, #3
+ bne _02219D60
+_02219D5C:
+ add r7, r5, #0
+ b _02219D66
+_02219D60:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _02219D4C
+_02219D66:
+ cmp r7, #0xff
+ bne _02219D6C
+ mov r7, #0
+_02219D6C:
+ ldr r0, [r6]
+ add r1, r7, #0
+ bl MOD08_022154D4
+ str r0, [r6, #4]
+ b _02219DA8
+_02219D78:
+ mov r7, #0xff
+ mov r5, #0
+_02219D7C:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02215490
+ cmp r0, #5
+ bne _02219D8C
+ add r7, r5, #0
+ b _02219D92
+_02219D8C:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _02219D7C
+_02219D92:
+ cmp r7, #0xff
+ bne _02219D98
+ mov r7, #0
+_02219D98:
+ ldr r0, [r6]
+ add r1, r7, #0
+ bl MOD08_022154D4
+ str r0, [r6, #4]
+ b _02219DA8
+_02219DA4:
+ bl ErrorHandling
+_02219DA8:
+ ldr r0, [r6, #4]
+ cmp r0, #0
+ bne _02219DB6
+ add r0, r6, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, r6, r7, pc}
+_02219DB6:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD08_02212498
+ str r0, [r6, #0x10]
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [r6, #0xc]
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [r6, #0x14]
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD08_02212498
+ str r0, [r6, #0x18]
+ add r0, r4, #0
+ mov r1, #5
+ bl MOD08_02212498
+ str r0, [r6, #0x1c]
+ ldr r0, [r6]
+ ldr r1, _02219DF8 ; =MOD08_02219B80
+ add r2, r6, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02219DF4: .word 0x00000802
+_02219DF8: .word MOD08_02219B80
+
+ thumb_func_start MOD08_02219DFC
+MOD08_02219DFC: ; 0x02219DFC
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #4
+ bls _02219E0C
+ b _02219F60
+_02219E0C:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02219E18: ; jump table
+ .short _02219E22 - _02219E18 - 2 ; case 0
+ .short _02219E70 - _02219E18 - 2 ; case 1
+ .short _02219EC2 - _02219E18 - 2 ; case 2
+ .short _02219EEC - _02219E18 - 2 ; case 3
+ .short _02219F4E - _02219E18 - 2 ; case 4
+_02219E22:
+ ldr r0, [r4, #0x4c]
+ asr r0, r0, #0x10
+ str r0, [sp]
+ ldr r1, [r4, #0x3c]
+ ldr r2, [r4, #0x44]
+ ldr r3, [r4, #0x40]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ add r0, #0x14
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02218120
+ add r0, r4, #0
+ add r0, #0x14
+ add r1, sp, #8
+ add r2, sp, #4
+ bl MOD08_0221825C
+ ldr r0, [r4, #0x50]
+ cmp r0, #1
+ bne _02219E5E
+ ldr r1, [sp, #8]
+ mov r0, #0
+ bl _fsub
+ str r0, [sp, #8]
+_02219E5E:
+ ldr r0, [r4, #0x10]
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #4]
+ bl FUN_0200C884
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02219F60
+_02219E70:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x14
+ add r1, sp, #8
+ add r2, sp, #4
+ bl MOD08_0221825C
+ ldr r0, [r4, #0x50]
+ cmp r0, #1
+ bne _02219E96
+ ldr r1, [sp, #8]
+ mov r0, #0
+ bl _fsub
+ str r0, [sp, #8]
+_02219E96:
+ ldr r0, [r4, #0x10]
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #4]
+ bl FUN_0200C884
+ cmp r5, #0
+ beq _02219EBA
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0xc
+ mov r2, #0xe
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ ldr r3, [r4, #0x28]
+ bl MOD08_02218314
+ b _02219F60
+_02219EBA:
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02219F60
+_02219EC2:
+ ldr r0, [r4, #0x4c]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp]
+ ldr r1, [r4, #0x40]
+ ldr r2, [r4, #0x44]
+ ldr r3, [r4, #0x3c]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ add r0, #0x14
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02218120
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02219F60
+_02219EEC:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x14
+ add r1, sp, #8
+ add r2, sp, #4
+ bl MOD08_0221825C
+ ldr r0, [r4, #0x50]
+ cmp r0, #1
+ bne _02219F12
+ ldr r1, [sp, #8]
+ mov r0, #0
+ bl _fsub
+ str r0, [sp, #8]
+_02219F12:
+ ldr r0, [r4, #0x10]
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #4]
+ bl FUN_0200C884
+ cmp r5, #0
+ beq _02219F36
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0xc
+ mov r2, #0xe
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ ldr r3, [r4, #0x28]
+ bl MOD08_02218314
+ b _02219F60
+_02219F36:
+ ldr r0, [r4, #0x48]
+ sub r0, r0, #1
+ str r0, [r4, #0x48]
+ cmp r0, #0
+ bgt _02219F48
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02219F60
+_02219F48:
+ mov r0, #0
+ str r0, [r4, #8]
+ b _02219F60
+_02219F4E:
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add sp, #0xc
+ pop {r4, r5, pc}
+_02219F60:
+ ldr r0, [r4, #4]
+ bl FUN_0200BC1C
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02219F6C
+MOD08_02219F6C: ; 0x02219F6C
+ push {r4, r5, r6, lr}
+ mov r1, #0x54
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ add r0, r5, #0
+ bl MOD08_02212504
+ str r0, [r4, #4]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ bne _02219FAE
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_0221552C
+ b _02219FCC
+_02219FAE:
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_0221552C
+_02219FCC:
+ strh r0, [r4, #0xe]
+ add r0, r6, #0
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0xc]
+ add r0, r6, #0
+ mov r1, #0x29
+ bl FUN_0200782C
+ mov r1, #0xc
+ ldrsh r1, [r4, r1]
+ sub r0, r1, r0
+ strh r0, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ str r0, [r4, #0x38]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [r4, #0x40]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ str r0, [r4, #0x44]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ str r0, [r4, #0x48]
+ add r0, r5, #0
+ mov r1, #6
+ bl MOD08_02212498
+ str r0, [r4, #0x4c]
+ add r0, r5, #0
+ mov r1, #7
+ bl MOD08_02212498
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022124D8
+ str r0, [r4, #0x10]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #0x10]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r1, [r4, #0x38]
+ mov r2, #0x10
+ ldr r0, [r4]
+ sub r2, r2, r1
+ bl MOD08_02227994
+ ldr r0, [r4]
+ ldr r1, _0221A08C ; =MOD08_02219DFC
+ add r2, r4, #0
+ bl MOD08_02212400
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ beq _0221A07A
+ mov r1, #1
+ b _0221A07C
+_0221A07A:
+ mov r1, #0
+_0221A07C:
+ ldr r0, [r4]
+ bl MOD08_02215680
+ cmp r0, #1
+ bne _0221A08A
+ mov r0, #1
+ str r0, [r4, #0x50]
+_0221A08A:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0221A08C: .word MOD08_02219DFC
+
+ thumb_func_start MOD08_0221A090
+MOD08_0221A090: ; 0x0221A090
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #5
+ bls _0221A0A0
+ b _0221A1DC
+_0221A0A0:
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0221A0AC: ; jump table
+ .short _0221A0B8 - _0221A0AC - 2 ; case 0
+ .short _0221A0FC - _0221A0AC - 2 ; case 1
+ .short _0221A12C - _0221A0AC - 2 ; case 2
+ .short _0221A140 - _0221A0AC - 2 ; case 3
+ .short _0221A186 - _0221A0AC - 2 ; case 4
+ .short _0221A1C8 - _0221A0AC - 2 ; case 5
+_0221A0B8:
+ ldr r0, [r4, #0x40]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #0x44]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x4c]
+ asr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r1, [r4, #0x34]
+ ldr r2, [r4, #0x38]
+ ldr r3, [r4, #0x3c]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ add r0, #0x10
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_022181A8
+ add r0, r4, #0
+ ldr r1, [r4, #0xc]
+ add r0, #0x10
+ bl MOD08_02218380
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_0221A0FC:
+ add r0, r4, #0
+ ldr r1, [r4, #0xc]
+ add r0, #0x10
+ bl MOD08_022183A0
+ cmp r0, #0
+ beq _0221A122
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #8
+ mov r2, #0xa
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ ldr r3, [r4, #0x24]
+ bl MOD08_022182DC
+ add sp, #0xc
+ pop {r4, r5, pc}
+_0221A122:
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_0221A12C:
+ ldr r1, [r4, #0x50]
+ cmp r1, #0
+ bne _0221A138
+ add r0, r0, #1
+ str r0, [r4, #4]
+ b _0221A140
+_0221A138:
+ sub r0, r1, #1
+ add sp, #0xc
+ str r0, [r4, #0x50]
+ pop {r4, r5, pc}
+_0221A140:
+ ldr r0, [r4, #0x3c]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #0x44]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x4c]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r1, [r4, #0x38]
+ ldr r2, [r4, #0x34]
+ ldr r3, [r4, #0x40]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ add r0, #0x10
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_022181A8
+ add r0, r4, #0
+ ldr r1, [r4, #0xc]
+ add r0, #0x10
+ bl MOD08_022183A0
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_0221A186:
+ add r0, r4, #0
+ ldr r1, [r4, #0xc]
+ add r0, #0x10
+ bl MOD08_022183A0
+ cmp r0, #0
+ beq _0221A1AC
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #8
+ mov r2, #0xa
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ ldr r3, [r4, #0x24]
+ bl MOD08_022182DC
+ add sp, #0xc
+ pop {r4, r5, pc}
+_0221A1AC:
+ ldr r0, [r4, #0x48]
+ sub r0, r0, #1
+ str r0, [r4, #0x48]
+ cmp r0, #0
+ bgt _0221A1C0
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_0221A1C0:
+ mov r0, #0
+ add sp, #0xc
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_0221A1C8:
+ ldr r0, [r4, #0xc]
+ bl MOD08_02218E34
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+_0221A1DC:
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD08_0221A1E0
+MOD08_0221A1E0: ; 0x0221A1E0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x54
+ add r5, r0, #0
+ mov r1, #0x54
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #0
+ str r5, [r4]
+ bl MOD08_02212498
+ ldr r2, _0221A3E4 ; =0x00000802
+ cmp r0, r2
+ bgt _0221A224
+ bge _0221A290
+ mov r2, #0x42
+ lsl r2, r2, #2
+ cmp r0, r2
+ bgt _0221A21C
+ sub r1, r2, #6
+ cmp r0, r1
+ blt _0221A21A
+ beq _0221A23C
+ sub r1, r2, #4
+ cmp r0, r1
+ beq _0221A23C
+ cmp r0, r2
+ beq _0221A266
+_0221A21A:
+ b _0221A346
+_0221A21C:
+ add r2, #8
+ cmp r0, r2
+ beq _0221A266
+ b _0221A346
+_0221A224:
+ add r1, r2, #6
+ cmp r0, r1
+ bgt _0221A234
+ bge _0221A2EC
+ add r1, r2, #2
+ cmp r0, r1
+ beq _0221A2C0
+ b _0221A346
+_0221A234:
+ add r2, #0xe
+ cmp r0, r2
+ beq _0221A31C
+ b _0221A346
+_0221A23C:
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_0221552C
+ strh r0, [r4, #0xa]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r1, r0, #0
+ ldr r0, [r4]
+ add r2, sp, #4
+ add r3, sp, #0
+ bl MOD08_02227BAC
+ ldr r0, [sp, #0xc]
+ str r0, [r4, #0xc]
+ b _0221A346
+_0221A266:
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_0221552C
+ strh r0, [r4, #0xa]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r1, r0, #0
+ ldr r0, [r4]
+ add r2, sp, #4
+ add r3, sp, #0
+ bl MOD08_02227BAC
+ ldr r0, [sp, #0xc]
+ str r0, [r4, #0xc]
+ b _0221A346
+_0221A290:
+ mov r7, #0xff
+ mov r6, #0
+_0221A294:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02215490
+ cmp r0, #0
+ beq _0221A2A4
+ cmp r0, #2
+ bne _0221A2A8
+_0221A2A4:
+ add r7, r6, #0
+ b _0221A2AE
+_0221A2A8:
+ add r6, r6, #1
+ cmp r6, #4
+ blt _0221A294
+_0221A2AE:
+ cmp r7, #0xff
+ bne _0221A2B4
+ mov r7, #0
+_0221A2B4:
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+ b _0221A346
+_0221A2C0:
+ mov r7, #0xff
+ mov r6, #0
+_0221A2C4:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02215490
+ cmp r0, #4
+ bne _0221A2D4
+ add r7, r6, #0
+ b _0221A2DA
+_0221A2D4:
+ add r6, r6, #1
+ cmp r6, #4
+ blt _0221A2C4
+_0221A2DA:
+ cmp r7, #0xff
+ bne _0221A2E0
+ mov r7, #0
+_0221A2E0:
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+ b _0221A346
+_0221A2EC:
+ mov r7, #0xff
+ mov r6, #0
+_0221A2F0:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02215490
+ cmp r0, #1
+ beq _0221A300
+ cmp r0, #3
+ bne _0221A304
+_0221A300:
+ add r7, r6, #0
+ b _0221A30A
+_0221A304:
+ add r6, r6, #1
+ cmp r6, #4
+ blt _0221A2F0
+_0221A30A:
+ cmp r7, #0xff
+ bne _0221A310
+ mov r7, #0
+_0221A310:
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+ b _0221A346
+_0221A31C:
+ mov r7, #0xff
+ mov r6, #0
+_0221A320:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02215490
+ cmp r0, #5
+ bne _0221A330
+ add r7, r6, #0
+ b _0221A336
+_0221A330:
+ add r6, r6, #1
+ cmp r6, #4
+ blt _0221A320
+_0221A336:
+ cmp r7, #0xff
+ bne _0221A33C
+ mov r7, #0
+_0221A33C:
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+_0221A346:
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ bne _0221A356
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #0x54
+ pop {r4, r5, r6, r7, pc}
+_0221A356:
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #8]
+ ldr r0, [r4, #0xc]
+ mov r1, #0x29
+ bl FUN_0200782C
+ strh r0, [r4, #0xa]
+ mov r0, #0xa
+ ldrsh r0, [r4, r0]
+ mov r1, #1
+ add r0, #0x10
+ strh r0, [r4, #0xa]
+ add r0, r5, #0
+ bl MOD08_02212498
+ str r0, [r4, #0x34]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [r4, #0x38]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ str r0, [r4, #0x40]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ str r0, [r4, #0x44]
+ add r0, r5, #0
+ mov r1, #6
+ bl MOD08_02212498
+ str r0, [r4, #0x48]
+ add r0, r5, #0
+ mov r1, #7
+ bl MOD08_02212498
+ str r0, [r4, #0x4c]
+ add r0, r5, #0
+ mov r1, #6
+ bl MOD08_02212498
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [r4, #0x48]
+ add r0, r5, #0
+ mov r1, #6
+ bl MOD08_02212498
+ asr r0, r0, #0x10
+ str r0, [r4, #0x50]
+ ldr r0, [r4]
+ ldr r1, _0221A3E8 ; =MOD08_0221A090
+ add r2, r4, #0
+ bl MOD08_02212400
+ add r1, r4, #0
+ bl MOD08_0221A090
+ add sp, #0x54
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221A3E4: .word 0x00000802
+_0221A3E8: .word MOD08_0221A090
+
+ thumb_func_start MOD08_0221A3EC
+MOD08_0221A3EC: ; 0x0221A3EC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #8
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _0221A40E
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ pop {r3, r4, r5, pc}
+_0221A40E:
+ ldr r0, [r4, #4]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221A418
+MOD08_0221A418: ; 0x0221A418
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ mov r1, #0x30
+ add r7, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r7, [r4]
+ add r0, r7, #0
+ bl MOD08_02212504
+ str r0, [r4, #4]
+ add r0, r7, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r6, r0, #0
+ mov r5, #0
+_0221A43C:
+ mov r0, #1
+ lsl r0, r5
+ tst r0, r6
+ beq _0221A452
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_022124D8
+ mov r1, #1
+ bl FUN_0200C90C
+_0221A452:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _0221A43C
+ add r0, r7, #0
+ mov r1, #1
+ bl MOD08_02212498
+ add r5, r0, #0
+ add r0, r7, #0
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ ldr r2, [sp, #8]
+ add r1, r5, #0
+ bl MOD08_02227994
+ add r0, r7, #0
+ mov r1, #2
+ bl MOD08_02212498
+ add r6, r0, #0
+ add r0, r7, #0
+ mov r1, #4
+ bl MOD08_02212498
+ str r0, [sp, #0xc]
+ add r0, r7, #0
+ mov r1, #5
+ bl MOD08_02212498
+ ldr r1, [sp, #0xc]
+ ldr r3, [sp, #8]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ str r1, [sp]
+ str r0, [sp, #4]
+ add r0, r4, #0
+ lsl r1, r5, #0x10
+ lsl r2, r6, #0x10
+ lsl r3, r3, #0x10
+ add r0, #8
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_022186D4
+ ldr r0, [r4]
+ ldr r1, _0221A4C0 ; =MOD08_0221A3EC
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221A4C0: .word MOD08_0221A3EC
+
+ thumb_func_start MOD08_0221A4C4
+MOD08_0221A4C4: ; 0x0221A4C4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r6, r0, #0
+ mov r1, #1
+ bl MOD08_02212498
+ add r5, r0, #0
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r1, r0, #0
+ add r0, r6, #0
+ add r2, sp, #4
+ add r3, sp, #0
+ bl MOD08_02227BAC
+ ldr r0, [sp]
+ mov r4, #0
+ cmp r0, #0
+ ble _0221A512
+ mov r7, #6
+_0221A4F0:
+ ldr r1, [sp, #0x14]
+ add r0, r6, #0
+ bl MOD08_02215554
+ cmp r0, #1
+ bne _0221A500
+ cmp r5, #0
+ beq _0221A50A
+_0221A500:
+ ldr r0, [sp, #0xc]
+ add r1, r7, #0
+ add r2, r5, #0
+ bl FUN_02007558
+_0221A50A:
+ ldr r0, [sp]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _0221A4F0
+_0221A512:
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221A518
+MOD08_0221A518: ; 0x0221A518
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r1, [r4, #4]
+ ldr r0, [r4, #8]
+ cmp r1, r0
+ blt _0221A566
+ ldr r0, [r4]
+ cmp r0, #0
+ ldr r0, [r4, #0x14]
+ bne _0221A546
+ mov r1, #6
+ mov r2, #0
+ bl FUN_02007558
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [r4, #0x3c]
+ add r1, r5, #0
+ bl MOD08_02212438
+ pop {r3, r4, r5, pc}
+_0221A546:
+ mov r1, #6
+ bl FUN_0200782C
+ add r3, r0, #0
+ mov r2, #1
+ ldr r0, [r4, #0x14]
+ mov r1, #6
+ eor r2, r3
+ bl FUN_02007558
+ ldr r0, [r4]
+ sub r0, r0, #1
+ str r0, [r4]
+ mov r0, #0
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_0221A566:
+ add r0, r1, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_0221A56C
+MOD08_0221A56C: ; 0x0221A56C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r1, #0x40
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #0
+ str r5, [r4, #0x3c]
+ bl MOD08_02212498
+ lsl r0, r0, #1
+ str r0, [r4]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ add r1, r4, #0
+ str r0, [r4, #8]
+ add r0, r5, #0
+ add r1, #0x20
+ bl MOD08_02227B70
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #0x3c]
+ ldr r1, _0221A5B8 ; =MOD08_0221A518
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ nop
+_0221A5B8: .word MOD08_0221A518
+
+ thumb_func_start MOD08_0221A5BC
+MOD08_0221A5BC: ; 0x0221A5BC
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0x24
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0221A5D4
+ cmp r0, #1
+ beq _0221A608
+ b _0221A632
+_0221A5D4:
+ mov r0, #0x16
+ ldrsh r3, [r4, r0]
+ mov r0, #0x14
+ ldrsh r1, [r4, r0]
+ mov r2, #0xc
+ str r3, [sp]
+ ldr r0, [r4, #8]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldrsh r2, [r4, r2]
+ add r0, r4, #0
+ add r0, #0x40
+ add r2, r1, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ add r0, r4, #0
+ add r0, #0x24
+ ldrb r0, [r0]
+ add r4, #0x24
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, pc}
+_0221A608:
+ add r0, r4, #0
+ add r0, #0x40
+ bl MOD08_02217ECC
+ cmp r0, #0
+ bne _0221A622
+ add r0, r4, #0
+ add r0, #0x24
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x24
+ strb r1, [r0]
+_0221A622:
+ mov r2, #0x40
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x18]
+ mov r1, #0
+ bl FUN_02007558
+ add sp, #8
+ pop {r4, pc}
+_0221A632:
+ ldr r0, [r4, #0x64]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD08_0221A644
+MOD08_0221A644: ; 0x0221A644
+ push {r4, r5, r6, lr}
+ mov r1, #0x68
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4, #0x64]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ strh r0, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ mov r6, #0xff
+ add r1, r6, #0
+ add r1, #9
+ cmp r0, r1
+ bgt _0221A690
+ add r1, r6, #3
+ cmp r0, r1
+ blt _0221A6E6
+ beq _0221A69A
+ add r1, r6, #5
+ cmp r0, r1
+ beq _0221A6A4
+ add r1, r6, #0
+ add r1, #9
+ cmp r0, r1
+ beq _0221A6C0
+ b _0221A6E6
+_0221A690:
+ add r1, r6, #0
+ add r1, #0x11
+ cmp r0, r1
+ beq _0221A6CA
+ b _0221A6E6
+_0221A69A:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r6, r0, #0
+ b _0221A6EA
+_0221A6A4:
+ add r0, r5, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _0221A6EA
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r6, r0, #0
+ b _0221A6EA
+_0221A6C0:
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r6, r0, #0
+ b _0221A6EA
+_0221A6CA:
+ add r0, r5, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _0221A6EA
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r6, r0, #0
+ b _0221A6EA
+_0221A6E6:
+ bl ErrorHandling
+_0221A6EA:
+ cmp r6, #0xff
+ bne _0221A6F6
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, r5, r6, pc}
+_0221A6F6:
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x24
+ bl MOD08_02227B70
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_022154D4
+ add r1, r4, #0
+ add r1, #0x14
+ str r0, [r4, #0x18]
+ bl MOD08_02227B2C
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02217C1C
+ cmp r0, #0
+ bgt _0221A728
+ mov r0, #0xc
+ ldrsh r1, [r4, r0]
+ sub r0, #0xd
+ mul r0, r1
+ strh r0, [r4, #0xc]
+_0221A728:
+ ldr r0, [r4, #0x64]
+ ldr r1, _0221A734 ; =MOD08_0221A5BC
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0221A734: .word MOD08_0221A5BC
+
+ thumb_func_start MOD08_0221A738
+MOD08_0221A738: ; 0x0221A738
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0221A750
+ cmp r0, #1
+ beq _0221A792
+ b _0221A7BC
+_0221A750:
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ bne _0221A760
+ mov r0, #0xff
+ add r4, #0x20
+ add sp, #8
+ strb r0, [r4]
+ pop {r4, pc}
+_0221A760:
+ mov r0, #0x12
+ ldrsh r3, [r4, r0]
+ mov r0, #0x10
+ ldrsh r1, [r4, r0]
+ mov r2, #0x64
+ str r3, [sp]
+ ldr r0, [r4, #8]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldrsh r2, [r4, r2]
+ add r0, r4, #0
+ add r0, #0x3c
+ add r2, r1, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x20
+ strb r1, [r0]
+_0221A792:
+ add r0, r4, #0
+ add r0, #0x3c
+ bl MOD08_02217ECC
+ cmp r0, #0
+ bne _0221A7AC
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x20
+ strb r1, [r0]
+_0221A7AC:
+ mov r2, #0x3c
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_02007558
+ add sp, #8
+ pop {r4, pc}
+_0221A7BC:
+ ldr r0, [r4, #0x60]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221A7D0
+MOD08_0221A7D0: ; 0x0221A7D0
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x68
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4, #0x60]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ add r1, r4, #0
+ add r1, #0x64
+ strh r0, [r1]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ add r1, r4, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, #0x20
+ bl MOD08_02227B70
+ mov r6, #0xff
+ add r0, r6, #0
+ add r0, #9
+ cmp r7, r0
+ bgt _0221A82C
+ add r0, r6, #3
+ cmp r7, r0
+ blt _0221A882
+ beq _0221A836
+ add r0, r6, #5
+ cmp r7, r0
+ beq _0221A840
+ add r0, r6, #0
+ add r0, #9
+ cmp r7, r0
+ beq _0221A85C
+ b _0221A882
+_0221A82C:
+ add r0, r6, #0
+ add r0, #0x11
+ cmp r7, r0
+ beq _0221A866
+ b _0221A882
+_0221A836:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r6, r0, #0
+ b _0221A886
+_0221A840:
+ add r0, r5, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _0221A886
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r6, r0, #0
+ b _0221A886
+_0221A85C:
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r6, r0, #0
+ b _0221A886
+_0221A866:
+ add r0, r5, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _0221A886
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r6, r0, #0
+ b _0221A886
+_0221A882:
+ bl ErrorHandling
+_0221A886:
+ cmp r6, #0xff
+ bne _0221A892
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, r6, r7, pc}
+_0221A892:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_022154D4
+ add r1, r4, #0
+ add r1, #0x10
+ str r0, [r4, #0x14]
+ bl MOD08_02227B2C
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02217C1C
+ cmp r0, #0
+ bgt _0221A8C0
+ mov r0, #0x64
+ ldrsh r1, [r4, r0]
+ sub r0, #0x65
+ add r2, r1, #0
+ mul r2, r0
+ add r0, r4, #0
+ add r0, #0x64
+ strh r2, [r0]
+_0221A8C0:
+ add r0, r5, #0
+ bl MOD08_02212004
+ ldr r0, [r4, #0x60]
+ ldr r1, _0221A8D8 ; =MOD08_0221A738
+ add r2, r4, #0
+ bl MOD08_02212400
+ add r1, r4, #0
+ bl MOD08_0221A738
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221A8D8: .word MOD08_0221A738
+
+ thumb_func_start MOD08_0221A8DC
+MOD08_0221A8DC: ; 0x0221A8DC
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #3
+ bls _0221A8EC
+ b _0221AA6A
+_0221A8EC:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221A8F8: ; jump table
+ .short _0221A900 - _0221A8F8 - 2 ; case 0
+ .short _0221A962 - _0221A8F8 - 2 ; case 1
+ .short _0221A9AC - _0221A8F8 - 2 ; case 2
+ .short _0221A9FA - _0221A8F8 - 2 ; case 3
+_0221A900:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ cmp r0, #1
+ bne _0221A958
+ add r0, r4, #0
+ add r0, #0x38
+ bl MOD08_022183F0
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x16
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r2, #0x38
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_020079E0
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x28]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221A958:
+ ldrb r0, [r4]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221A962:
+ ldrb r0, [r4, #9]
+ add r0, r0, #1
+ strb r0, [r4, #9]
+ ldrb r1, [r4, #9]
+ ldrb r0, [r4, #0xa]
+ cmp r1, r0
+ bhi _0221A972
+ b _0221AA78
+_0221A972:
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl MOD08_02212498
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl MOD08_02212498
+ add r6, r0, #0
+ ldr r0, [r4, #0xc]
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [sp]
+ add r0, r4, #0
+ lsl r1, r5, #0x10
+ lsl r3, r6, #0x10
+ add r0, #0x14
+ asr r1, r1, #0x10
+ mov r2, #0x64
+ asr r3, r3, #0x10
+ bl MOD08_02218120
+ ldrb r0, [r4]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221A9AC:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ cmp r0, #1
+ bne _0221A9F0
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x16
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x28]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221A9F0:
+ ldrb r0, [r4]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221A9FA:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ cmp r0, #1
+ ldr r0, [r4, #0x10]
+ bne _0221AA3E
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x16
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x28]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221AA3E:
+ mov r1, #0xc
+ add r2, r1, #0
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #0x10]
+ add r2, #0xf3
+ bl FUN_02007558
+ mov r2, #2
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_02007558
+ ldrb r0, [r4]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221AA6A:
+ ldr r0, [r4, #0xc]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_0221AA78:
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+
+ thumb_func_start MOD08_0221AA7C
+MOD08_0221AA7C: ; 0x0221AA7C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0x5c
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4, #8]
+ strb r0, [r4]
+ str r5, [r4, #0xc]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD08_022154D4
+ str r0, [r4, #0x10]
+ mov r0, #0
+ strb r0, [r4, #9]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ strb r0, [r4, #0xa]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #2]
+ ldr r0, [r4, #0xc]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD08_0221552C
+ str r0, [r4, #4]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0x64
+ lsl r3, r6, #0x10
+ add r0, #0x14
+ add r2, r1, #0
+ asr r3, r3, #0x10
+ bl MOD08_02218120
+ mov r0, #0xa
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0x38
+ mov r1, #2
+ add r3, r2, #0
+ bl MOD08_022183C0
+ ldr r0, [r4, #0xc]
+ ldr r1, _0221AB14 ; =MOD08_0221A8DC
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_0221AB14: .word MOD08_0221A8DC
+
+ thumb_func_start MOD08_0221AB18
+MOD08_0221AB18: ; 0x0221AB18
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #3
+ bls _0221AB28
+ b _0221ACA8
+_0221AB28:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221AB34: ; jump table
+ .short _0221AB3C - _0221AB34 - 2 ; case 0
+ .short _0221AB9E - _0221AB34 - 2 ; case 1
+ .short _0221ABEA - _0221AB34 - 2 ; case 2
+ .short _0221AC38 - _0221AB34 - 2 ; case 3
+_0221AB3C:
+ add r0, r4, #0
+ add r0, #0x20
+ bl MOD08_02218224
+ cmp r0, #1
+ bne _0221AB94
+ add r0, r4, #0
+ add r0, #0x44
+ bl MOD08_022183F0
+ mov r2, #0x20
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x22
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r2, #0x44
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ bl FUN_020079E0
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x34]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #0xc
+ pop {r3, r4, pc}
+_0221AB94:
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221AB9E:
+ ldrb r0, [r4, #9]
+ add r0, r0, #1
+ strb r0, [r4, #9]
+ ldrb r1, [r4, #9]
+ ldrb r0, [r4, #0xa]
+ cmp r1, r0
+ bhi _0221ABAE
+ b _0221ACB6
+_0221ABAE:
+ ldr r3, [r4, #0x10]
+ ldr r2, [r4, #0xc]
+ lsl r0, r3, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ asr r1, r2, #0x10
+ mov r0, #0x64
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x14]
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ asr r3, r3, #0x10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ add r0, #0x20
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_022181A8
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221ABEA:
+ add r0, r4, #0
+ add r0, #0x20
+ bl MOD08_02218224
+ cmp r0, #1
+ bne _0221AC2E
+ mov r2, #0x20
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x22
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x34]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #0xc
+ pop {r3, r4, pc}
+_0221AC2E:
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221AC38:
+ add r0, r4, #0
+ add r0, #0x20
+ bl MOD08_02218224
+ cmp r0, #1
+ ldr r0, [r4, #0x1c]
+ bne _0221AC7C
+ mov r2, #0x20
+ ldrsh r2, [r4, r2]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x22
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x34]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #0xc
+ pop {r3, r4, pc}
+_0221AC7C:
+ mov r1, #0xc
+ add r2, r1, #0
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #0x1c]
+ add r2, #0xf3
+ bl FUN_02007558
+ mov r2, #2
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ bl FUN_02007558
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221ACA8:
+ ldr r0, [r4, #0x18]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_0221ACB6:
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221ACBC
+MOD08_0221ACBC: ; 0x0221ACBC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0x68
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4, #8]
+ strb r0, [r4]
+ str r5, [r4, #0x18]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0x18]
+ bl MOD08_022154D4
+ str r0, [r4, #0x1c]
+ mov r0, #0
+ strb r0, [r4, #9]
+ add r0, r5, #0
+ mov r1, #6
+ bl MOD08_02212498
+ strb r0, [r4, #0xa]
+ ldr r0, [r4, #0x18]
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #0x18]
+ mov r1, #4
+ bl MOD08_02212498
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0x18]
+ mov r1, #5
+ bl MOD08_02212498
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #0x18]
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ mov r2, #0
+ add r3, r4, #2
+ bl MOD08_02217B50
+ ldr r0, [r4, #0x18]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0x18]
+ bl MOD08_0221552C
+ str r0, [r4, #4]
+ mov r1, #2
+ ldrsh r1, [r4, r1]
+ add r0, r1, r0
+ strh r0, [r4, #2]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ asr r0, r0, #0x10
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x10
+ asr r7, r0, #0x10
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ asr r0, r0, #0x10
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r6, [sp]
+ mov r1, #0x64
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r4, #0
+ ldr r1, [sp, #0x10]
+ ldr r3, [sp, #0xc]
+ add r0, #0x20
+ add r2, r7, #0
+ bl MOD08_022181A8
+ mov r0, #0xa
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0x44
+ mov r1, #2
+ add r3, r2, #0
+ bl MOD08_022183C0
+ ldr r0, [r4, #0x18]
+ ldr r1, _0221ADBC ; =MOD08_0221AB18
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0221ADBC: .word MOD08_0221AB18
+
+ thumb_func_start MOD08_0221ADC0
+MOD08_0221ADC0: ; 0x0221ADC0
+ push {r3, r4, r5, lr}
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ add r5, r0, #0
+ add r4, r1, #0
+ ldr r1, [r2]
+ ldr r0, _0221ADEC ; =0xFFFF1FFF
+ and r0, r1
+ str r0, [r2]
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD08_02214850
+ ldr r0, [r4, #8]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, pc}
+ nop
+_0221ADEC: .word 0xFFFF1FFF
+
+ thumb_func_start MOD08_0221ADF0
+MOD08_0221ADF0: ; 0x0221ADF0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r1, #0x28
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r0, r5, #0
+ add r1, r4, #4
+ bl MOD08_02227B70
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD08_0221477C
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x24]
+ mov r1, #2
+ bl FUN_0200C90C
+ ldr r0, [r4, #0x24]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r1, _0221AE70 ; =0x3F99999A
+ ldr r0, [r4, #0x24]
+ add r2, r1, #0
+ bl FUN_0200C884
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ ldr r1, _0221AE74 ; =0xFFFF1FFF
+ and r2, r1
+ lsr r1, r0, #0xb
+ orr r1, r2
+ str r1, [r0]
+ add r0, #0x4a
+ ldrh r2, [r0]
+ mov r1, #0x3f
+ bic r2, r1
+ mov r1, #0x1b
+ orr r1, r2
+ strh r1, [r0]
+ ldrh r2, [r0]
+ ldr r1, _0221AE78 ; =0xFFFFC0FF
+ and r2, r1
+ mov r1, #7
+ lsl r1, r1, #8
+ orr r1, r2
+ strh r1, [r0]
+ ldr r0, [r4, #8]
+ ldr r1, _0221AE7C ; =MOD08_0221ADC0
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ nop
+_0221AE70: .word 0x3F99999A
+_0221AE74: .word 0xFFFF1FFF
+_0221AE78: .word 0xFFFFC0FF
+_0221AE7C: .word MOD08_0221ADC0
+
+ thumb_func_start MOD08_0221AE80
+MOD08_0221AE80: ; 0x0221AE80
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0221AE98
+ cmp r0, #1
+ beq _0221AED4
+ b _0221AF0A
+_0221AE98:
+ mov r0, #0x12
+ ldrsh r3, [r4, r0]
+ mov r0, #0x10
+ ldrsh r1, [r4, r0]
+ mov r0, #0x66
+ ldrsh r0, [r4, r0]
+ mov r2, #0x64
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #8]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldrsh r2, [r4, r2]
+ add r0, r4, #0
+ add r0, #0x3c
+ add r2, r1, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x20
+ strb r1, [r0]
+_0221AED4:
+ add r0, r4, #0
+ add r0, #0x3c
+ bl MOD08_02217ECC
+ cmp r0, #0
+ bne _0221AEEE
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x20
+ strb r1, [r0]
+_0221AEEE:
+ mov r2, #0x3c
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x3e
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_02007558
+ add sp, #8
+ pop {r4, pc}
+_0221AF0A:
+ ldr r0, [r4, #0x60]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD08_0221AF1C
+MOD08_0221AF1C: ; 0x0221AF1C
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x68
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4, #0x60]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ add r1, r4, #0
+ add r1, #0x64
+ strh r0, [r1]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ add r1, r4, #0
+ add r1, #0x66
+ strh r0, [r1]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ add r1, r4, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, #0x20
+ bl MOD08_02227B70
+ mov r6, #0xff
+ add r0, r6, #0
+ add r0, #9
+ cmp r7, r0
+ bgt _0221AF86
+ add r0, r6, #3
+ cmp r7, r0
+ blt _0221AFDC
+ beq _0221AF90
+ add r0, r6, #5
+ cmp r7, r0
+ beq _0221AF9A
+ add r0, r6, #0
+ add r0, #9
+ cmp r7, r0
+ beq _0221AFB6
+ b _0221AFDC
+_0221AF86:
+ add r0, r6, #0
+ add r0, #0x11
+ cmp r7, r0
+ beq _0221AFC0
+ b _0221AFDC
+_0221AF90:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r6, r0, #0
+ b _0221AFE0
+_0221AF9A:
+ add r0, r5, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _0221AFE0
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r6, r0, #0
+ b _0221AFE0
+_0221AFB6:
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r6, r0, #0
+ b _0221AFE0
+_0221AFC0:
+ add r0, r5, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _0221AFE0
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r6, r0, #0
+ b _0221AFE0
+_0221AFDC:
+ bl ErrorHandling
+_0221AFE0:
+ cmp r6, #0xff
+ bne _0221AFEC
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, r6, r7, pc}
+_0221AFEC:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0x14]
+ cmp r0, #0
+ bne _0221B002
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, r6, r7, pc}
+_0221B002:
+ add r1, r4, #0
+ add r1, #0x10
+ bl MOD08_02227B2C
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02217C1C
+ cmp r0, #0
+ bgt _0221B036
+ mov r0, #0x64
+ ldrsh r1, [r4, r0]
+ sub r0, #0x65
+ add r2, r1, #0
+ mul r2, r0
+ add r0, r4, #0
+ add r0, #0x64
+ strh r2, [r0]
+ mov r0, #0x66
+ ldrsh r1, [r4, r0]
+ sub r0, #0x67
+ add r2, r1, #0
+ mul r2, r0
+ add r0, r4, #0
+ add r0, #0x66
+ strh r2, [r0]
+_0221B036:
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _0221B050
+ mov r0, #0x66
+ ldrsh r1, [r4, r0]
+ sub r0, #0x67
+ add r2, r1, #0
+ mul r2, r0
+ add r0, r4, #0
+ add r0, #0x66
+ strh r2, [r0]
+_0221B050:
+ ldr r0, [r4, #0x60]
+ ldr r1, _0221B064 ; =MOD08_0221AE80
+ add r2, r4, #0
+ bl MOD08_02212400
+ add r1, r4, #0
+ bl MOD08_0221AE80
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221B064: .word MOD08_0221AE80
+
+ thumb_func_start MOD08_0221B068
+MOD08_0221B068: ; 0x0221B068
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r1, #0x20
+ mov r2, #0x22
+ add r5, r0, #0
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r3, [r4, #0x24]
+ add r0, #0x30
+ bl MOD08_02217E58
+ cmp r0, #0
+ bne _0221B0AC
+ mov r2, #0x20
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x24]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x22
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ sub r2, #8
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_0221B0AC:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221B0B0
+MOD08_0221B0B0: ; 0x0221B0B0
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ mov r1, #0x54
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r2, r4, #0
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, #0x1c
+ add r3, sp, #0
+ bl MOD08_02227BAC
+ mov r0, #0x22
+ ldrsh r0, [r4, r0]
+ mov r1, #1
+ add r0, #8
+ strh r0, [r4, #0x22]
+ add r0, r5, #0
+ bl MOD08_02212498
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0x30
+ add r1, r6, #0
+ bl MOD08_02218654
+ ldr r1, [r4, #0x3c]
+ add r2, r4, #0
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ str r0, [r4, #0x3c]
+ ldr r1, [r4, #0x44]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ str r0, [r4, #0x44]
+ ldr r0, [r4, #4]
+ ldr r1, _0221B124 ; =MOD08_0221B068
+ bl MOD08_02212400
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0221B124: .word MOD08_0221B068
+
+ thumb_func_start MOD08_0221B128
+MOD08_0221B128: ; 0x0221B128
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ bne _0221B160
+ add r0, r4, #0
+ add r0, #0x30
+ bl MOD08_02217ECC
+ cmp r0, #0
+ bne _0221B146
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221B146:
+ mov r2, #0x30
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x24]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x32
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ bl FUN_02007558
+ pop {r4, pc}
+_0221B160:
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+
+ thumb_func_start MOD08_0221B170
+MOD08_0221B170: ; 0x0221B170
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ mov r1, #0x5c
+ add r6, r0, #0
+ bl MOD08_02228064
+ add r5, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD08_02227B70
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r4, r0, #0
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD08_02212498
+ add r7, r0, #0
+ cmp r4, #8
+ bgt _0221B1AE
+ cmp r4, #2
+ blt _0221B1EC
+ beq _0221B1B4
+ cmp r4, #4
+ beq _0221B1BE
+ cmp r4, #8
+ beq _0221B1D0
+ b _0221B1EC
+_0221B1AE:
+ cmp r4, #0x10
+ beq _0221B1DA
+ b _0221B1EC
+_0221B1B4:
+ add r0, r6, #0
+ bl MOD08_02212458
+ str r0, [sp, #8]
+ b _0221B1F0
+_0221B1BE:
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022274C0
+ str r0, [sp, #8]
+ b _0221B1F0
+_0221B1D0:
+ add r0, r6, #0
+ bl MOD08_02212460
+ str r0, [sp, #8]
+ b _0221B1F0
+_0221B1DA:
+ add r0, r6, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022274C0
+ str r0, [sp, #8]
+ b _0221B1F0
+_0221B1EC:
+ bl ErrorHandling
+_0221B1F0:
+ add r2, r5, #0
+ ldr r1, [sp, #8]
+ add r0, r6, #0
+ add r2, #0x54
+ bl MOD08_022275C0
+ add r2, r5, #0
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, #0x1c
+ add r3, sp, #0xc
+ bl MOD08_02227BAC
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0x58
+ strh r1, [r0]
+ add r0, r5, #0
+ add r0, #0x5a
+ strh r1, [r0]
+ ldr r0, [r5, #4]
+ ldr r1, [sp, #8]
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _0221B22A
+ mov r1, #0x4f
+ mvn r1, r1
+ b _0221B22E
+_0221B22A:
+ mov r1, #0x15
+ lsl r1, r1, #4
+_0221B22E:
+ add r0, r5, #0
+ add r0, #0x58
+ strh r1, [r0]
+ mov r0, #0x22
+ ldrsh r3, [r5, r0]
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ str r3, [sp]
+ str r0, [sp, #4]
+ mov r1, #0x20
+ mov r2, #0x58
+ add r0, r5, #0
+ ldrsh r1, [r5, r1]
+ ldrsh r2, [r5, r2]
+ add r0, #0x30
+ bl MOD08_02217E80
+ ldr r0, [r5, #4]
+ ldr r1, _0221B260 ; =MOD08_0221B128
+ add r2, r5, #0
+ bl MOD08_02212400
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221B260: .word MOD08_0221B128
+
+ thumb_func_start MOD08_0221B264
+MOD08_0221B264: ; 0x0221B264
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ mov r1, #0x5c
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ add r7, r0, #0
+ cmp r6, #8
+ bgt _0221B2AC
+ cmp r6, #2
+ blt _0221B2EA
+ beq _0221B2B2
+ cmp r6, #4
+ beq _0221B2BC
+ cmp r6, #8
+ beq _0221B2CE
+ b _0221B2EA
+_0221B2AC:
+ cmp r6, #0x10
+ beq _0221B2D8
+ b _0221B2EA
+_0221B2B2:
+ add r0, r5, #0
+ bl MOD08_02212458
+ str r0, [sp, #8]
+ b _0221B2EE
+_0221B2BC:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ str r0, [sp, #8]
+ b _0221B2EE
+_0221B2CE:
+ add r0, r5, #0
+ bl MOD08_02212460
+ str r0, [sp, #8]
+ b _0221B2EE
+_0221B2D8:
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ str r0, [sp, #8]
+ b _0221B2EE
+_0221B2EA:
+ bl ErrorHandling
+_0221B2EE:
+ add r2, r4, #0
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ add r2, #0x54
+ bl MOD08_022275C0
+ add r2, r4, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, #0x1c
+ add r3, sp, #0x10
+ bl MOD08_02227BAC
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x58
+ strh r1, [r0]
+ add r0, r4, #0
+ add r0, #0x5a
+ strh r1, [r0]
+ ldr r0, [r4, #4]
+ ldr r1, [sp, #8]
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _0221B328
+ mov r1, #0x4f
+ mvn r1, r1
+ b _0221B32C
+_0221B328:
+ mov r1, #0x15
+ lsl r1, r1, #4
+_0221B32C:
+ add r0, r4, #0
+ add r0, #0x58
+ strh r1, [r0]
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ bne _0221B356
+ mov r0, #0x22
+ ldrsh r3, [r4, r0]
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ str r3, [sp]
+ str r0, [sp, #4]
+ mov r1, #0x20
+ mov r2, #0x58
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ add r0, #0x30
+ bl MOD08_02217E80
+ b _0221B37A
+_0221B356:
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD08_02217B98
+ add r2, r0, #0
+ mov r0, #0x22
+ ldrsh r3, [r4, r0]
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ str r3, [sp]
+ str r0, [sp, #4]
+ mov r1, #0x58
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ add r0, #0x30
+ bl MOD08_02217E80
+_0221B37A:
+ ldr r0, [r4, #4]
+ ldr r1, _0221B388 ; =MOD08_0221B128
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221B388: .word MOD08_0221B128
+
+ thumb_func_start MOD08_0221B38C
+MOD08_0221B38C: ; 0x0221B38C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x1c
+ mov r1, #0
+ add r5, r0, #0
+ bl MOD08_02212498
+ add r4, r0, #0
+ cmp r4, #8
+ bgt _0221B3AE
+ cmp r4, #2
+ blt _0221B3EC
+ beq _0221B3B4
+ cmp r4, #4
+ beq _0221B3BE
+ cmp r4, #8
+ beq _0221B3D0
+ b _0221B3EC
+_0221B3AE:
+ cmp r4, #0x10
+ beq _0221B3DA
+ b _0221B3EC
+_0221B3B4:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r6, r0, #0
+ b _0221B3F0
+_0221B3BE:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r6, r0, #0
+ b _0221B3F0
+_0221B3D0:
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r6, r0, #0
+ b _0221B3F0
+_0221B3DA:
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r6, r0, #0
+ b _0221B3F0
+_0221B3EC:
+ bl ErrorHandling
+_0221B3F0:
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, sp, #0
+ bl MOD08_022275C0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #8
+ add r3, sp, #4
+ bl MOD08_02227BAC
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_0221552C
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ mov r1, #0
+ add r2, sp, #0
+ ldrsh r2, [r2, r1]
+ ldr r0, [sp, #0x10]
+ bl FUN_02007558
+ add r3, sp, #0
+ mov r2, #2
+ ldrsh r2, [r3, r2]
+ ldr r0, [sp, #0x10]
+ mov r1, #1
+ add r2, r2, r4
+ bl FUN_02007558
+ add sp, #0x1c
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221B434
+MOD08_0221B434: ; 0x0221B434
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x30]
+ bl MOD08_02218AF8
+ cmp r0, #0
+ bne _0221B458
+ ldr r0, [r4, #0x30]
+ bl MOD08_02218B08
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_0221B458:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221B45C
+MOD08_0221B45C: ; 0x0221B45C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ mov r1, #0x34
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [sp, #0x20]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ str r0, [sp, #0x24]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ add r2, r4, #0
+ str r0, [sp, #0x28]
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, #0x1c
+ add r3, sp, #0x2c
+ bl MOD08_02227F88
+ ldr r0, [r4, #0x28]
+ ldr r0, [r0]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212014
+ add r1, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ lsl r0, r6, #0x18
+ asr r0, r0, #0x18
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x1c]
+ lsl r3, r7, #0x14
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x20]
+ mov r2, #2
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x24]
+ lsr r3, r3, #0x10
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x28]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x14]
+ ldr r0, _0221B520 ; =0x0000044C
+ str r0, [sp, #0x18]
+ ldr r0, [r4, #0x18]
+ bl MOD08_02218B20
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #4]
+ ldr r1, _0221B524 ; =MOD08_0221B434
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221B520: .word 0x0000044C
+_0221B524: .word MOD08_0221B434
+
+ thumb_func_start MOD08_0221B528
+MOD08_0221B528: ; 0x0221B528
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ bne _0221B59C
+ ldr r0, [r4, #0x4c]
+ add r1, r0, #1
+ str r1, [r4, #0x4c]
+ ldr r0, [r4, #0x44]
+ cmp r1, r0
+ blt _0221B5B0
+ mov r1, #0
+ str r1, [r4, #0x4c]
+ ldr r0, [r4, #0x48]
+ cmp r0, #0
+ ldr r0, [r4, #0x54]
+ bne _0221B560
+ cmp r0, #0
+ bge _0221B552
+ str r1, [r4, #0x54]
+_0221B552:
+ ldr r0, [r4, #0x54]
+ cmp r0, #0
+ bne _0221B574
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221B574
+_0221B560:
+ cmp r0, #0x50
+ ble _0221B568
+ mov r0, #0x50
+ str r0, [r4, #0x54]
+_0221B568:
+ ldr r0, [r4, #0x54]
+ cmp r0, #0x50
+ bne _0221B574
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221B574:
+ ldr r0, [r4, #0x24]
+ ldr r2, [r4, #0x54]
+ mov r1, #0x12
+ bl FUN_02007558
+ ldr r0, [r4, #0x24]
+ ldr r2, [r4, #0x50]
+ mov r1, #1
+ bl FUN_02007558
+ mov r0, #0x42
+ ldrsh r1, [r4, r0]
+ ldr r2, [r4, #0x50]
+ sub r1, r2, r1
+ str r1, [r4, #0x50]
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #0x54]
+ add r0, r1, r0
+ str r0, [r4, #0x54]
+ pop {r3, r4, r5, pc}
+_0221B59C:
+ ldr r0, [r4, #0x24]
+ bl MOD08_02218E34
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_0221B5B0:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221B5B4
+MOD08_0221B5B4: ; 0x0221B5B4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ mov r1, #0x58
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r6, r0, #0
+ add r2, r4, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, #0x1c
+ add r3, sp, #4
+ bl MOD08_02227BAC
+ cmp r6, #8
+ bgt _0221B5F6
+ cmp r6, #2
+ blt _0221B634
+ beq _0221B5FC
+ cmp r6, #4
+ beq _0221B606
+ cmp r6, #8
+ beq _0221B618
+ b _0221B634
+_0221B5F6:
+ cmp r6, #0x10
+ beq _0221B622
+ b _0221B634
+_0221B5FC:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r7, r0, #0
+ b _0221B638
+_0221B606:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r7, r0, #0
+ b _0221B638
+_0221B618:
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r7, r0, #0
+ b _0221B638
+_0221B622:
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r7, r0, #0
+ b _0221B638
+_0221B634:
+ bl ErrorHandling
+_0221B638:
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ str r0, [r4, #0x48]
+ cmp r0, #0
+ ldr r0, [r4, #0x24]
+ bne _0221B68C
+ mov r1, #1
+ bl FUN_0200782C
+ str r0, [r4, #0x50]
+ ldr r0, [r4, #0x24]
+ mov r1, #0x12
+ bl FUN_0200782C
+ mov r1, #0x50
+ sub r0, r1, r0
+ str r0, [r4, #0x54]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ add r1, r4, #0
+ add r1, #0x40
+ strh r0, [r1]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ add r1, r4, #0
+ add r1, #0x42
+ strh r0, [r1]
+ mov r0, #0x42
+ ldrsh r1, [r4, r0]
+ sub r0, #0x43
+ add r2, r1, #0
+ mul r2, r0
+ add r0, r4, #0
+ add r0, #0x42
+ strh r2, [r0]
+ b _0221B6BA
+_0221B68C:
+ mov r1, #1
+ bl FUN_0200782C
+ str r0, [r4, #0x50]
+ ldr r0, [r4, #0x24]
+ mov r1, #0x12
+ bl FUN_0200782C
+ str r0, [r4, #0x54]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ add r1, r4, #0
+ add r1, #0x40
+ strh r0, [r1]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ add r1, r4, #0
+ add r1, #0x42
+ strh r0, [r1]
+_0221B6BA:
+ mov r0, #0
+ str r0, [r4, #0x30]
+ str r0, [r4, #0x34]
+ mov r0, #0x50
+ str r0, [r4, #0x38]
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD08_0221552C
+ mov r1, #0x50
+ sub r0, r1, r0
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ str r0, [r4, #0x44]
+ mov r0, #0
+ str r0, [r4, #0x4c]
+ ldr r0, [r4, #0x3c]
+ str r0, [sp]
+ ldr r0, [r4, #0x24]
+ ldr r1, [r4, #0x30]
+ ldr r2, [r4, #0x34]
+ ldr r3, [r4, #0x38]
+ bl FUN_02007E40
+ ldr r0, [r4, #4]
+ ldr r1, _0221B700 ; =MOD08_0221B528
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221B700: .word MOD08_0221B528
+
+ thumb_func_start MOD08_0221B704
+MOD08_0221B704: ; 0x0221B704
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+ cmp r1, #8
+ bgt _0221B71E
+ cmp r1, #2
+ blt _0221B754
+ beq _0221B724
+ cmp r1, #4
+ beq _0221B72C
+ cmp r1, #8
+ beq _0221B73C
+ b _0221B754
+_0221B71E:
+ cmp r1, #0x10
+ beq _0221B744
+ b _0221B754
+_0221B724:
+ bl MOD08_02212458
+ add r4, r0, #0
+ b _0221B758
+_0221B72C:
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r4, r0, #0
+ b _0221B758
+_0221B73C:
+ bl MOD08_02212460
+ add r4, r0, #0
+ b _0221B758
+_0221B744:
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022274C0
+ add r4, r0, #0
+ b _0221B758
+_0221B754:
+ bl ErrorHandling
+_0221B758:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_0221B75C
+MOD08_0221B75C: ; 0x0221B75C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _0221B76E
+ cmp r0, #1
+ beq _0221B7B4
+ pop {r3, r4, r5, pc}
+_0221B76E:
+ ldr r0, [r4, #0x24]
+ add r1, r0, #1
+ str r1, [r4, #0x24]
+ ldr r0, [r4, #0x20]
+ cmp r1, r0
+ blt _0221B7E6
+ mov r0, #0
+ str r0, [r4, #0x24]
+ mov r0, #0x1c
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #0x44]
+ add r2, r1, r0
+ str r2, [r4, #0x44]
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_02007558
+ mov r0, #0x1c
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #0x3c]
+ sub r1, r1, r0
+ str r1, [r4, #0x3c]
+ ldr r0, [r4, #0x40]
+ cmp r1, r0
+ ble _0221B7A8
+ str r0, [r4, #0x3c]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221B7A8:
+ ldr r0, [r4, #0x30]
+ ldr r2, [r4, #0x3c]
+ mov r1, #0x12
+ bl FUN_02007558
+ pop {r3, r4, r5, pc}
+_0221B7B4:
+ ldr r0, [r4, #0x30]
+ mov r1, #0xe
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #0x30]
+ ldr r2, [r4, #0x48]
+ mov r1, #1
+ bl FUN_02007558
+ ldr r0, [r4, #0x30]
+ ldr r2, [r4, #0x40]
+ mov r1, #0x12
+ bl FUN_02007558
+ ldr r0, [r4, #0x30]
+ bl MOD08_02218E34
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_0221B7E6:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_0221B7E8
+MOD08_0221B7E8: ; 0x0221B7E8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _0221B7FA
+ cmp r0, #1
+ beq _0221B83E
+ pop {r3, r4, r5, pc}
+_0221B7FA:
+ ldr r0, [r4, #0x24]
+ add r1, r0, #1
+ str r1, [r4, #0x24]
+ ldr r0, [r4, #0x20]
+ cmp r1, r0
+ blt _0221B870
+ mov r0, #0
+ str r0, [r4, #0x24]
+ mov r0, #0x1c
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #0x44]
+ add r2, r1, r0
+ str r2, [r4, #0x44]
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_02007558
+ mov r0, #0x1c
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #0x3c]
+ sub r0, r1, r0
+ str r0, [r4, #0x3c]
+ bpl _0221B832
+ mov r0, #0
+ str r0, [r4, #0x3c]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221B832:
+ ldr r0, [r4, #0x30]
+ ldr r2, [r4, #0x3c]
+ mov r1, #0x12
+ bl FUN_02007558
+ pop {r3, r4, r5, pc}
+_0221B83E:
+ ldr r0, [r4, #0x30]
+ mov r1, #0xe
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #0x30]
+ ldr r2, [r4, #0x48]
+ mov r1, #1
+ bl FUN_02007558
+ ldr r0, [r4, #0x30]
+ ldr r2, [r4, #0x40]
+ mov r1, #0x12
+ bl FUN_02007558
+ ldr r0, [r4, #0x30]
+ bl MOD08_02218E34
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_0221B870:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221B874
+MOD08_0221B874: ; 0x0221B874
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _0221B886
+ cmp r0, #1
+ beq _0221B8C8
+ pop {r3, r4, r5, pc}
+_0221B886:
+ ldr r0, [r4, #0x24]
+ add r1, r0, #1
+ str r1, [r4, #0x24]
+ ldr r0, [r4, #0x20]
+ cmp r1, r0
+ blt _0221B8E6
+ mov r0, #0
+ str r0, [r4, #0x24]
+ mov r1, #0x1c
+ ldrsh r2, [r4, r1]
+ ldr r3, [r4, #0x3c]
+ sub r2, r3, r2
+ str r2, [r4, #0x3c]
+ ldrsh r1, [r4, r1]
+ ldr r2, [r4, #0x40]
+ add r1, r2, r1
+ str r1, [r4, #0x40]
+ ldr r1, [r4, #0x3c]
+ cmp r1, #0
+ bge _0221B8B6
+ str r0, [r4, #0x3c]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221B8B6:
+ ldr r0, [r4, #0x40]
+ mov r1, #0
+ str r0, [sp]
+ ldr r0, [r4, #0x30]
+ ldr r2, [r4, #0x3c]
+ mov r3, #0x50
+ bl FUN_02007E40
+ pop {r3, r4, r5, pc}
+_0221B8C8:
+ ldr r0, [r4, #0x30]
+ mov r1, #0xe
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #0x30]
+ bl MOD08_02218E34
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_0221B8E6:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_0221B8E8
+MOD08_0221B8E8: ; 0x0221B8E8
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ mov r1, #0x50
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ strh r0, [r4, #0x1c]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ str r0, [r4, #0x20]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r6, r0, #0
+ add r2, r4, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, #0x28
+ add r3, sp, #4
+ bl MOD08_02227BAC
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_0221B704
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ cmp r0, #0
+ beq _0221B96A
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_0221552C
+ mov r3, #0x50
+ sub r0, r3, r0
+ str r0, [r4, #0x3c]
+ mov r1, #0
+ str r1, [r4, #0x40]
+ str r1, [sp]
+ ldr r0, [r4, #0x30]
+ ldr r2, [r4, #0x3c]
+ bl FUN_02007E40
+ ldr r0, [r4, #4]
+ ldr r1, _0221B9DC ; =MOD08_0221B874
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #8
+ pop {r4, r5, r6, pc}
+_0221B96A:
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_0200782C
+ str r0, [r4, #0x44]
+ str r0, [r4, #0x48]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_0221552C
+ mov r3, #0x50
+ sub r0, r3, r0
+ str r0, [r4, #0x3c]
+ str r0, [r4, #0x40]
+ mov r0, #0x1c
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ ble _0221B9AA
+ ldr r0, [r4, #0x3c]
+ mov r1, #0
+ str r0, [sp]
+ ldr r0, [r4, #0x30]
+ add r2, r1, #0
+ bl FUN_02007E40
+ ldr r0, [r4, #4]
+ ldr r1, _0221B9E0 ; =MOD08_0221B7E8
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #8
+ pop {r4, r5, r6, pc}
+_0221B9AA:
+ mov r0, #0
+ str r0, [r4, #0x3c]
+ ldr r1, [r4, #0x44]
+ ldr r0, [r4, #0x40]
+ add r2, r1, r0
+ str r2, [r4, #0x44]
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_02007558
+ ldr r0, [r4, #0x3c]
+ mov r1, #0
+ str r0, [sp]
+ ldr r0, [r4, #0x30]
+ add r2, r1, #0
+ mov r3, #0x50
+ bl FUN_02007E40
+ ldr r0, [r4, #4]
+ ldr r1, _0221B9E4 ; =MOD08_0221B75C
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0221B9DC: .word MOD08_0221B874
+_0221B9E0: .word MOD08_0221B7E8
+_0221B9E4: .word MOD08_0221B75C
+
+ thumb_func_start MOD08_0221B9E8
+MOD08_0221B9E8: ; 0x0221B9E8
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _0221B9FC
+ cmp r0, #1
+ beq _0221BA1C
+ b _0221BAAC
+_0221B9FC:
+ ldr r0, [r4, #0x10]
+ str r0, [sp]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #8]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r3, [r4, #0xc]
+ add r0, #0xd4
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_022183C0
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221BA1C:
+ add r0, r4, #0
+ add r0, #0xd4
+ bl MOD08_022183F0
+ cmp r0, #0
+ bne _0221BA70
+ ldrb r1, [r4, #1]
+ ldr r0, [r4, #0x18]
+ cmp r1, r0
+ ldrb r0, [r4]
+ blt _0221BA36
+ add r0, r0, #1
+ b _0221BA38
+_0221BA36:
+ sub r0, r0, #1
+_0221BA38:
+ strb r0, [r4]
+ ldr r0, [r4, #0x20]
+ cmp r0, #0
+ beq _0221BA50
+ ldr r1, [r4, #0x1c]
+ mov r2, #0
+ lsl r1, r1, #0x18
+ ldr r0, [r4, #0x28]
+ lsr r1, r1, #0x18
+ add r3, r2, #0
+ bl FUN_020179E0
+_0221BA50:
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ beq _0221BA66
+ ldr r1, [r4, #0x1c]
+ ldr r0, [r4, #0x28]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+_0221BA66:
+ ldrb r0, [r4, #1]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ pop {r3, r4, pc}
+_0221BA70:
+ mov r3, #0xd4
+ ldrsh r0, [r4, r3]
+ cmp r0, #0
+ beq _0221BA8C
+ mov r0, #1
+ str r0, [r4, #0x20]
+ ldr r1, [r4, #0x1c]
+ ldrsh r3, [r4, r3]
+ lsl r1, r1, #0x18
+ ldr r0, [r4, #0x28]
+ lsr r1, r1, #0x18
+ mov r2, #0
+ bl FUN_020179E0
+_0221BA8C:
+ mov r3, #0xd6
+ ldrsh r0, [r4, r3]
+ cmp r0, #0
+ beq _0221BABA
+ mov r0, #1
+ str r0, [r4, #0x24]
+ ldr r1, [r4, #0x1c]
+ ldrsh r3, [r4, r3]
+ lsl r1, r1, #0x18
+ ldr r0, [r4, #0x28]
+ lsr r1, r1, #0x18
+ mov r2, #3
+ bl FUN_020179E0
+ add sp, #4
+ pop {r3, r4, pc}
+_0221BAAC:
+ ldr r0, [r4, #0x2c]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_0221BABA:
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221BAC0
+MOD08_0221BAC0: ; 0x0221BAC0
+ push {r3, r4, r5, lr}
+ mov r1, #0xf8
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4]
+ strb r0, [r4, #1]
+ str r5, [r4, #0x2c]
+ add r0, r5, #0
+ bl MOD08_02212504
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #0x2c]
+ bl MOD08_02212490
+ str r0, [r4, #0x28]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [r4, #4]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ str r0, [r4, #8]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ str r0, [r4, #0x18]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ cmp r0, #0
+ bne _0221BB26
+ mov r0, #3
+ b _0221BB28
+_0221BB26:
+ mov r0, #2
+_0221BB28:
+ str r0, [r4, #0x1c]
+ ldr r0, [r4, #0x2c]
+ ldr r1, _0221BB38 ; =MOD08_0221B9E8
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ nop
+_0221BB38: .word MOD08_0221B9E8
+
+ thumb_func_start MOD08_0221BB3C
+MOD08_0221BB3C: ; 0x0221BB3C
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldr r0, [r4, #0x2c]
+ ldr r3, [r4, #0x24]
+ cmp r3, r0
+ beq _0221BB50
+ ldr r1, [r4, #0x28]
+ cmp r1, r0
+ bne _0221BB60
+_0221BB50:
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+_0221BB60:
+ mov r1, #0x20
+ ldrsh r2, [r4, r1]
+ cmp r2, #0
+ bge _0221BB82
+ add r2, r3, r2
+ cmp r2, #0
+ ble _0221BB7A
+ str r2, [r4, #0x24]
+ ldrsh r0, [r4, r1]
+ ldr r2, [r4, #0x28]
+ add r0, r2, r0
+ str r0, [r4, #0x28]
+ b _0221BB9A
+_0221BB7A:
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #0x2c]
+ str r0, [r4, #0x28]
+ b _0221BB9A
+_0221BB82:
+ add r2, r3, r2
+ cmp r2, #0xf
+ bge _0221BB94
+ str r2, [r4, #0x24]
+ ldrsh r0, [r4, r1]
+ ldr r2, [r4, #0x28]
+ add r0, r2, r0
+ str r0, [r4, #0x28]
+ b _0221BB9A
+_0221BB94:
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #0x2c]
+ str r0, [r4, #0x28]
+_0221BB9A:
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x28]
+ ldr r1, [r4, #0x24]
+ lsl r0, r0, #4
+ orr r1, r0
+ ldr r0, _0221BBB4 ; =0x0400004D
+ strb r1, [r0]
+ ldr r0, [r4, #0xc]
+ bl FUN_0200BC1C
+ pop {r4, pc}
+ .align 2, 0
+_0221BBB4: .word 0x0400004D
+
+ thumb_func_start MOD08_0221BBB8
+MOD08_0221BBB8: ; 0x0221BBB8
+ push {r3, r4, r5, lr}
+ mov r1, #0x30
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl MOD08_02212498
+ strh r0, [r4, #0x20]
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #4]
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl MOD08_02212498
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022124D8
+ mov r1, #1
+ str r0, [r4, #0x1c]
+ bl FUN_0200C644
+ mov r0, #0x20
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bge _0221BC0E
+ mov r0, #0
+ b _0221BC10
+_0221BC0E:
+ mov r0, #0xf
+_0221BC10:
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ bl FUN_0200C8F8
+ ldr r0, [r4, #4]
+ ldr r1, _0221BC2C ; =MOD08_0221BB3C
+ add r2, r4, #0
+ bl MOD08_02212400
+ add r1, r4, #0
+ bl MOD08_0221BB3C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221BC2C: .word MOD08_0221BB3C
+
+ thumb_func_start MOD08_0221BC30
+MOD08_0221BC30: ; 0x0221BC30
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [r4]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ strh r0, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ strh r0, [r4, #0xe]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ strh r0, [r4, #4]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ strh r0, [r4, #6]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ str r0, [r4, #8]
+ add r0, r5, #0
+ mov r1, #6
+ bl MOD08_02212498
+ str r0, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #8
+ bl MOD08_02212498
+ str r0, [r4, #0x30]
+ add r0, r5, #0
+ mov r1, #7
+ bl MOD08_02212498
+ ldr r2, _0221BCFC ; =0xFFFF0000
+ mov r1, #0
+ and r2, r0
+ lsl r0, r0, #0x10
+ str r1, [r4, #0x1c]
+ lsr r2, r2, #0x10
+ str r2, [r4, #0x20]
+ lsr r0, r0, #0x10
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #0x20]
+ cmp r0, #0
+ bne _0221BCA6
+ str r1, [r4, #0x20]
+_0221BCA6:
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ bne _0221BCB0
+ mov r0, #0xff
+ str r0, [r4, #0x24]
+_0221BCB0:
+ ldr r1, [r4]
+ add r0, r5, #0
+ bl MOD08_02212484
+ str r0, [r4, #0x38]
+ add r0, r5, #0
+ bl MOD08_02212468
+ str r0, [r4, #0x34]
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ bne _0221BCDA
+ add r0, r5, #0
+ bl MOD08_02212458
+ str r0, [r4, #0x14]
+ add r0, r5, #0
+ bl MOD08_02212460
+ str r0, [r4, #0x18]
+ b _0221BCEE
+_0221BCDA:
+ cmp r0, #1
+ bne _0221BCEE
+ add r0, r5, #0
+ bl MOD08_02212460
+ str r0, [r4, #0x14]
+ add r0, r5, #0
+ bl MOD08_02212458
+ str r0, [r4, #0x18]
+_0221BCEE:
+ ldr r0, [r4, #0x38]
+ cmp r0, #0
+ bne _0221BCF8
+ bl ErrorHandling
+_0221BCF8:
+ pop {r3, r4, r5, pc}
+ nop
+_0221BCFC: .word 0xFFFF0000
+
+ thumb_func_start MOD08_0221BD00
+MOD08_0221BD00: ; 0x0221BD00
+ ldr r0, [r0, #8]
+ mov r1, #0
+ cmp r0, #0
+ beq _0221BD12
+_0221BD08:
+ ldrh r2, [r0, #0x26]
+ ldrh r3, [r0, #0x24]
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _0221BD08
+_0221BD12:
+ cmp r2, r3
+ beq _0221BD18
+ mov r1, #1
+_0221BD18:
+ add r0, r1, #0
+ bx lr
+
+ thumb_func_start MOD08_0221BD1C
+MOD08_0221BD1C: ; 0x0221BD1C
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ ldr r0, [r5, #0x38]
+ bl MOD08_0221BD00
+ add r4, r0, #0
+ mov r0, #4
+ ldrsh r0, [r5, r0]
+ ldr r1, [r5, #0x28]
+ cmp r1, r0
+ bge _0221BD3A
+ add r0, r1, #1
+ str r0, [r5, #0x28]
+ pop {r4, r5, r6, pc}
+_0221BD3A:
+ add r0, r5, #0
+ add r0, #0xa8
+ bl MOD08_02217ECC
+ cmp r0, #0
+ bne _0221BD62
+ cmp r4, #0
+ bne _0221BD62
+ ldr r0, [r5, #0x34]
+ ldr r1, [r5, #0x38]
+ bl FUN_020133DC
+ ldr r0, [r5, #0x40]
+ add r1, r6, #0
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl MOD08_02228094
+ pop {r4, r5, r6, pc}
+_0221BD62:
+ ldr r1, [r5, #0x1c]
+ ldr r0, [r5, #0x20]
+ cmp r0, r1
+ bgt _0221BD70
+ ldr r0, [r5, #0x24]
+ cmp r0, r1
+ bge _0221BD76
+_0221BD70:
+ ldr r0, [r5, #0x24]
+ cmp r0, #0xff
+ bne _0221BDD4
+_0221BD76:
+ mov r0, #0xa8
+ ldrsh r2, [r5, r0]
+ ldr r1, [r5, #0x38]
+ mov r3, #0xac
+ add r0, r2, #0
+ ldr r2, [r1, #0x20]
+ mul r0, r3
+ ldr r2, [r2]
+ ldr r2, [r2, #4]
+ add r0, r0, r2
+ str r0, [r1, #0x28]
+ mov r0, #0xaa
+ ldrsh r4, [r5, r0]
+ ldr r2, [r5, #0x38]
+ add r1, r4, #0
+ mul r1, r3
+ ldr r3, [r2, #0x20]
+ ldr r3, [r3]
+ ldr r3, [r3, #8]
+ add r1, r1, r3
+ str r1, [r2, #0x2c]
+ ldr r1, [r5, #0x30]
+ cmp r1, #0
+ beq _0221BDD4
+ mov r1, #6
+ ldrsh r1, [r5, r1]
+ add r0, #0xbe
+ bl _s32_div_f
+ ldr r1, [r5, #0x2c]
+ add r0, r1, r0
+ str r0, [r5, #0x2c]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl Sin_Wrap
+ mov r1, #0xaa
+ ldrsh r2, [r5, r1]
+ mov r1, #0xac
+ mul r1, r2
+ add r2, r1, r0
+ ldr r1, [r5, #0x38]
+ ldr r0, [r1, #0x20]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r2, r0
+ str r0, [r1, #0x2c]
+_0221BDD4:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221BDD8
+MOD08_0221BDD8: ; 0x0221BDD8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ mov r1, #0x41
+ lsl r1, r1, #2
+ add r6, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x3c
+ bl MOD08_02227B70
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD08_0221BC30
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_02217C1C
+ add r5, r0, #0
+ ldr r1, [r4, #0x14]
+ add r0, r6, #0
+ add r2, sp, #0x18
+ bl MOD08_0222771C
+ ldr r1, [r4, #0x18]
+ add r0, r6, #0
+ add r2, sp, #0xc
+ bl MOD08_0222771C
+ ldr r0, [sp, #0x18]
+ mov r1, #0xac
+ bl _s32_div_f
+ add r6, r0, #0
+ ldr r0, [sp, #0xc]
+ mov r1, #0xac
+ bl _s32_div_f
+ add r7, r0, #0
+ ldr r0, [sp, #0x1c]
+ mov r1, #0xac
+ bl _s32_div_f
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x10]
+ mov r1, #0xac
+ bl _s32_div_f
+ mov r1, #0xe
+ ldrsh r1, [r4, r1]
+ add r2, r1, #0
+ mul r2, r5
+ add r0, r0, r2
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ ldrh r0, [r4, #6]
+ lsl r1, r6, #0x10
+ mov r2, #0xc
+ str r0, [sp, #4]
+ ldrsh r2, [r4, r2]
+ add r0, r4, #0
+ add r0, #0xa8
+ add r3, r2, #0
+ mul r3, r5
+ add r2, r7, r3
+ ldr r3, [sp, #8]
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ cmp r5, #0
+ ldr r2, _0221BEFC ; =0x00005C71
+ ble _0221BE90
+ ldr r1, _0221BF00 ; =0x00000E38
+ add r0, r4, #0
+ add r0, #0xf0
+ mul r1, r5
+ mul r2, r5
+ mov r3, #0xa
+ bl MOD08_02218008
+ b _0221BEA0
+_0221BE90:
+ ldr r1, _0221BF04 ; =0x00003FFF
+ add r0, r4, #0
+ add r0, #0xf0
+ mul r1, r5
+ mul r2, r5
+ mov r3, #0xa
+ bl MOD08_02218008
+_0221BEA0:
+ ldr r0, [r4, #0x20]
+ mov r5, #0
+ cmp r0, #0
+ ble _0221BEBA
+ add r6, r4, #0
+ add r6, #0xa8
+_0221BEAC:
+ add r0, r6, #0
+ bl MOD08_02217ECC
+ ldr r0, [r4, #0x20]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _0221BEAC
+_0221BEBA:
+ ldr r0, [r4, #0x24]
+ cmp r0, #0xff
+ beq _0221BEC4
+ add r0, r0, #1
+ str r0, [r4, #0x1c]
+_0221BEC4:
+ mov r0, #0xa8
+ ldrsh r3, [r4, r0]
+ ldr r1, [r4, #0x38]
+ mov r2, #0xac
+ add r0, r3, #0
+ ldr r3, [r1, #0x20]
+ mul r0, r2
+ ldr r3, [r3]
+ ldr r3, [r3, #4]
+ add r0, r0, r3
+ str r0, [r1, #0x28]
+ mov r1, #0xaa
+ ldrsh r1, [r4, r1]
+ ldr r0, [r4, #0x38]
+ mul r2, r1
+ ldr r1, [r0, #0x20]
+ ldr r1, [r1]
+ ldr r1, [r1, #8]
+ add r1, r2, r1
+ str r1, [r0, #0x2c]
+ ldr r0, [r4, #0x40]
+ ldr r1, _0221BF08 ; =MOD08_0221BD1C
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0221BEFC: .word 0x00005C71
+_0221BF00: .word 0x00000E38
+_0221BF04: .word 0x00003FFF
+_0221BF08: .word MOD08_0221BD1C
+
+ thumb_func_start MOD08_0221BF0C
+MOD08_0221BF0C: ; 0x0221BF0C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ mov r1, #0x41
+ lsl r1, r1, #2
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x3c
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [r4]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ str r0, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ strh r0, [r4, #6]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ strh r0, [r4, #4]
+ mov r0, #0
+ str r0, [r4, #0x28]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ ldr r2, _0221C098 ; =0xFFFF0000
+ mov r1, #0
+ and r2, r0
+ lsl r0, r0, #0x10
+ str r1, [r4, #0x1c]
+ lsr r2, r2, #0x10
+ str r2, [r4, #0x20]
+ lsr r0, r0, #0x10
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #0x20]
+ cmp r0, #0
+ bne _0221BF7E
+ str r1, [r4, #0x20]
+_0221BF7E:
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ bne _0221BF88
+ mov r0, #0xff
+ str r0, [r4, #0x24]
+_0221BF88:
+ ldr r1, [r4]
+ add r0, r5, #0
+ bl MOD08_02212484
+ str r0, [r4, #0x38]
+ add r0, r5, #0
+ bl MOD08_02212468
+ str r0, [r4, #0x34]
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ bne _0221BFB0
+ add r0, r5, #0
+ bl MOD08_02212458
+ str r0, [r4, #0x14]
+ add r0, r5, #0
+ bl MOD08_02212458
+ b _0221BFBE
+_0221BFB0:
+ add r0, r5, #0
+ bl MOD08_02212460
+ str r0, [r4, #0x14]
+ add r0, r5, #0
+ bl MOD08_02212460
+_0221BFBE:
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x38]
+ cmp r0, #0
+ bne _0221BFCA
+ bl ErrorHandling
+_0221BFCA:
+ ldr r1, [r4, #0x14]
+ add r0, r5, #0
+ add r2, sp, #0x14
+ bl MOD08_0222771C
+ ldr r1, [r4, #0x18]
+ add r0, r5, #0
+ add r2, sp, #8
+ bl MOD08_0222771C
+ cmp r6, #0
+ bne _0221BFEE
+ add r0, sp, #0x14
+ bl MOD08_0222795C
+ ldr r0, [sp, #8]
+ str r0, [sp, #0x14]
+ b _0221BFF8
+_0221BFEE:
+ add r0, sp, #8
+ bl MOD08_0222795C
+ ldr r0, [sp, #0x14]
+ str r0, [sp, #8]
+_0221BFF8:
+ ldr r0, [sp, #0x14]
+ mov r1, #0xac
+ bl _s32_div_f
+ add r5, r0, #0
+ ldr r0, [sp, #8]
+ mov r1, #0xac
+ bl _s32_div_f
+ add r6, r0, #0
+ ldr r0, [sp, #0x18]
+ mov r1, #0xac
+ bl _s32_div_f
+ add r7, r0, #0
+ ldr r0, [sp, #0xc]
+ mov r1, #0xac
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ ldrh r0, [r4, #6]
+ lsl r1, r5, #0x10
+ lsl r2, r6, #0x10
+ str r0, [sp, #4]
+ add r0, r4, #0
+ lsl r3, r7, #0x10
+ add r0, #0xa8
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ ldr r0, [r4, #0x20]
+ mov r5, #0
+ cmp r0, #0
+ ble _0221C056
+ add r6, r4, #0
+ add r6, #0xa8
+_0221C048:
+ add r0, r6, #0
+ bl MOD08_02217ECC
+ ldr r0, [r4, #0x20]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _0221C048
+_0221C056:
+ ldr r0, [r4, #0x24]
+ cmp r0, #0xff
+ beq _0221C060
+ add r0, r0, #1
+ str r0, [r4, #0x1c]
+_0221C060:
+ mov r0, #0xa8
+ ldrsh r3, [r4, r0]
+ ldr r1, [r4, #0x38]
+ mov r2, #0xac
+ add r0, r3, #0
+ ldr r3, [r1, #0x20]
+ mul r0, r2
+ ldr r3, [r3]
+ ldr r3, [r3, #4]
+ add r0, r0, r3
+ str r0, [r1, #0x28]
+ mov r1, #0xaa
+ ldrsh r1, [r4, r1]
+ ldr r0, [r4, #0x38]
+ mul r2, r1
+ ldr r1, [r0, #0x20]
+ ldr r1, [r1]
+ ldr r1, [r1, #8]
+ add r1, r2, r1
+ str r1, [r0, #0x2c]
+ ldr r0, [r4, #0x40]
+ ldr r1, _0221C09C ; =MOD08_0221BD1C
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221C098: .word 0xFFFF0000
+_0221C09C: .word MOD08_0221BD1C
+
+ thumb_func_start MOD08_0221C0A0
+MOD08_0221C0A0: ; 0x0221C0A0
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ ldr r0, [r5, #0x38]
+ bl MOD08_0221BD00
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xa8
+ add r1, #0xcc
+ bl MOD08_02217F9C
+ cmp r0, #0
+ bne _0221C0DA
+ cmp r4, #0
+ bne _0221C0DA
+ ldr r0, [r5, #0x34]
+ ldr r1, [r5, #0x38]
+ bl FUN_020133DC
+ ldr r0, [r5, #0x40]
+ add r1, r6, #0
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl MOD08_02228094
+ pop {r4, r5, r6, pc}
+_0221C0DA:
+ mov r1, #0xa8
+ ldrsh r1, [r5, r1]
+ ldr r0, [r5, #0x38]
+ mov r2, #0xac
+ add r3, r1, #0
+ ldr r1, [r0, #0x20]
+ mul r3, r2
+ ldr r1, [r1]
+ ldr r1, [r1, #4]
+ add r1, r3, r1
+ str r1, [r0, #0x28]
+ mov r1, #0xaa
+ ldrsh r1, [r5, r1]
+ ldr r0, [r5, #0x38]
+ mul r2, r1
+ ldr r1, [r0, #0x20]
+ ldr r1, [r1]
+ ldr r1, [r1, #8]
+ add r1, r2, r1
+ str r1, [r0, #0x2c]
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_0221C104
+MOD08_0221C104: ; 0x0221C104
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ mov r1, #0x41
+ lsl r1, r1, #2
+ add r6, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x3c
+ bl MOD08_02227B70
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD08_0221BC30
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_02217C1C
+ add r5, r0, #0
+ ldr r1, [r4, #0x14]
+ add r0, r6, #0
+ add r2, sp, #0x20
+ bl MOD08_0222771C
+ ldr r1, [r4, #0x18]
+ add r0, r6, #0
+ add r2, sp, #0x14
+ bl MOD08_0222771C
+ ldr r0, [sp, #0x20]
+ mov r1, #0xac
+ bl _s32_div_f
+ add r6, r0, #0
+ ldr r0, [sp, #0x14]
+ mov r1, #0xac
+ bl _s32_div_f
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x24]
+ mov r1, #0xac
+ bl _s32_div_f
+ add r7, r0, #0
+ ldr r0, [sp, #0x18]
+ mov r1, #0xac
+ bl _s32_div_f
+ lsl r1, r7, #0x10
+ asr r1, r1, #0x10
+ str r1, [sp]
+ mov r1, #0xe
+ ldrsh r1, [r4, r1]
+ mov r3, #0xc
+ add r2, r1, #0
+ mul r2, r5
+ add r0, r0, r2
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldrh r0, [r4, #6]
+ lsl r2, r6, #0x10
+ add r1, r4, #0
+ str r0, [sp, #8]
+ ldr r0, [r4, #8]
+ add r1, #0xcc
+ lsl r0, r0, #0xc
+ neg r0, r0
+ str r0, [sp, #0xc]
+ ldrsh r6, [r4, r3]
+ add r0, r4, #0
+ add r0, #0xa8
+ add r3, r6, #0
+ ldr r6, [sp, #0x10]
+ mul r3, r5
+ add r3, r6, r3
+ lsl r3, r3, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02217F50
+ cmp r5, #0
+ ldr r2, _0221C23C ; =0x00005C71
+ ble _0221C1CA
+ ldr r1, _0221C240 ; =0x00000E38
+ add r0, r4, #0
+ add r0, #0xf0
+ mul r1, r5
+ mul r2, r5
+ mov r3, #0xa
+ bl MOD08_02218008
+ b _0221C1DA
+_0221C1CA:
+ ldr r1, _0221C244 ; =0x00003FFF
+ add r0, r4, #0
+ add r0, #0xf0
+ mul r1, r5
+ mul r2, r5
+ mov r3, #0xa
+ bl MOD08_02218008
+_0221C1DA:
+ ldr r0, [r4, #0x20]
+ mov r5, #0
+ cmp r0, #0
+ ble _0221C1FA
+ add r6, r4, #0
+ add r7, r4, #0
+ add r6, #0xa8
+ add r7, #0xcc
+_0221C1EA:
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_02217F9C
+ ldr r0, [r4, #0x20]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _0221C1EA
+_0221C1FA:
+ ldr r0, [r4, #0x24]
+ cmp r0, #0xff
+ beq _0221C204
+ add r0, r0, #1
+ str r0, [r4, #0x1c]
+_0221C204:
+ mov r0, #0xa8
+ ldrsh r3, [r4, r0]
+ ldr r1, [r4, #0x38]
+ mov r2, #0xac
+ add r0, r3, #0
+ ldr r3, [r1, #0x20]
+ mul r0, r2
+ ldr r3, [r3]
+ ldr r3, [r3, #4]
+ add r0, r0, r3
+ str r0, [r1, #0x28]
+ mov r1, #0xaa
+ ldrsh r1, [r4, r1]
+ ldr r0, [r4, #0x38]
+ mul r2, r1
+ ldr r1, [r0, #0x20]
+ ldr r1, [r1]
+ ldr r1, [r1, #8]
+ add r1, r2, r1
+ str r1, [r0, #0x2c]
+ ldr r0, [r4, #0x40]
+ ldr r1, _0221C248 ; =MOD08_0221C0A0
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0221C23C: .word 0x00005C71
+_0221C240: .word 0x00000E38
+_0221C244: .word 0x00003FFF
+_0221C248: .word MOD08_0221C0A0
+
+ thumb_func_start MOD08_0221C24C
+MOD08_0221C24C: ; 0x0221C24C
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ ldr r0, [r5, #0x38]
+ bl MOD08_0221BD00
+ add r4, r0, #0
+ add r0, r5, #0
+ add r0, #0x58
+ bl MOD08_02217D98
+ cmp r0, #0
+ bne _0221C282
+ cmp r4, #0
+ bne _0221C282
+ ldr r0, [r5, #0x34]
+ ldr r1, [r5, #0x38]
+ bl FUN_020133DC
+ ldr r0, [r5, #0x40]
+ add r1, r6, #0
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl FreeToHeap
+ pop {r4, r5, r6, pc}
+_0221C282:
+ add r0, r5, #0
+ add r0, #0x8c
+ ldr r2, [r0]
+ mov r0, #0x5a
+ ldrsh r0, [r5, r0]
+ mov r3, #0xac
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r2, r1
+ add r2, r5, #0
+ add r2, #0x88
+ ldr r4, [r2]
+ mov r2, #0x58
+ ldrsh r2, [r5, r2]
+ ldr r0, [r5, #0x38]
+ mul r3, r2
+ ldr r2, [r0, #0x20]
+ add r3, r4, r3
+ ldr r2, [r2]
+ ldr r2, [r2, #4]
+ add r2, r3, r2
+ str r2, [r0, #0x28]
+ ldr r2, [r5, #0x38]
+ ldr r0, [r2, #0x20]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r2, #0x2c]
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_0221C2BC
+MOD08_0221C2BC: ; 0x0221C2BC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ mov r1, #0x94
+ add r4, r0, #0
+ bl MOD08_02228064
+ add r5, r0, #0
+ add r1, r5, #0
+ add r0, r4, #0
+ add r1, #0x3c
+ bl MOD08_02227B70
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [r5]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD08_02212498
+ str r0, [r5, #4]
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [r5, #0xc]
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [r5, #8]
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD08_02212498
+ str r0, [r5, #0x10]
+ add r0, r4, #0
+ mov r1, #5
+ bl MOD08_02212498
+ str r0, [r5, #0x14]
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD08_02212498
+ str r0, [r5, #0x18]
+ add r0, r4, #0
+ mov r1, #7
+ bl MOD08_02212498
+ str r0, [r5, #0x1c]
+ add r0, r4, #0
+ mov r1, #8
+ bl MOD08_02212498
+ str r0, [r5, #0x20]
+ cmp r0, #0
+ bne _0221C33A
+ add r0, r4, #0
+ bl MOD08_02212458
+ b _0221C340
+_0221C33A:
+ add r0, r4, #0
+ bl MOD08_02212460
+_0221C340:
+ str r0, [r5, #0x24]
+ add r2, r5, #0
+ ldr r1, [r5, #0x24]
+ add r0, r4, #0
+ add r2, #0x88
+ bl MOD08_0222771C
+ ldr r1, [r5]
+ add r0, r4, #0
+ bl MOD08_02212484
+ str r0, [r5, #0x38]
+ add r0, r4, #0
+ mov r1, #9
+ bl MOD08_02212498
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212478
+ str r0, [r5, #0x34]
+ ldr r1, [r5, #4]
+ ldr r0, _0221C420 ; =0x0000FFFF
+ mul r0, r1
+ mov r1, #0x5a
+ lsl r1, r1, #2
+ bl _s32_div_f
+ add r4, r0, #0
+ ldr r1, [r5, #0xc]
+ ldr r0, _0221C420 ; =0x0000FFFF
+ mul r0, r1
+ mov r1, #0x5a
+ lsl r1, r1, #2
+ bl _s32_div_f
+ add r6, r0, #0
+ ldr r1, [r5, #8]
+ ldr r0, _0221C420 ; =0x0000FFFF
+ mul r0, r1
+ mov r1, #0x5a
+ lsl r1, r1, #2
+ bl _s32_div_f
+ add r7, r0, #0
+ ldr r1, [r5, #0x10]
+ ldr r0, _0221C420 ; =0x0000FFFF
+ mul r0, r1
+ mov r1, #0x5a
+ lsl r1, r1, #2
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, [r5, #0x14]
+ lsl r1, r4, #0x10
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x18]
+ lsl r2, r6, #0x10
+ lsl r0, r0, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x1c]
+ lsl r3, r7, #0x10
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r0, #0x58
+ lsr r1, r1, #0x10
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x10
+ bl MOD08_02217D14
+ add r0, r5, #0
+ add r0, #0x58
+ bl MOD08_02217D98
+ add r0, r5, #0
+ add r0, #0x8c
+ ldr r2, [r0]
+ mov r0, #0x5a
+ ldrsh r0, [r5, r0]
+ mov r3, #0x58
+ mov r4, #0xac
+ add r1, r0, #0
+ add r0, r5, #0
+ mul r1, r4
+ ldrsh r3, [r5, r3]
+ add r0, #0x88
+ add r2, r2, r1
+ ldr r1, [r5, #0x38]
+ ldr r0, [r0]
+ mul r4, r3
+ add r3, r0, r4
+ ldr r0, [r1, #0x20]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r3, r0
+ str r0, [r1, #0x28]
+ ldr r1, [r5, #0x38]
+ ldr r0, [r1, #0x20]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r2, r0
+ str r0, [r1, #0x2c]
+ ldr r0, [r5, #0x40]
+ ldr r1, _0221C424 ; =MOD08_0221C24C
+ add r2, r5, #0
+ bl MOD08_02212400
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221C420: .word 0x0000FFFF
+_0221C424: .word MOD08_0221C24C
+
+ thumb_func_start MOD08_0221C428
+MOD08_0221C428: ; 0x0221C428
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C608
+ cmp r0, #0
+ ldr r0, [r4, #0x1c]
+ bne _0221C44E
+ bl FUN_0200C3DC
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, pc}
+_0221C44E:
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x10]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221C45C
+MOD08_0221C45C: ; 0x0221C45C
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x20
+ add r5, r0, #0
+ add r4, r3, #0
+ bl MOD08_02228064
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #0
+ str r4, [r7, #0x1c]
+ bl MOD08_02212498
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ lsl r0, r0, #0x10
+ asr r2, r0, #0x10
+ add r0, r4, #0
+ add r1, r6, #0
+ bl FUN_0200C82C
+ ldr r0, [r7, #4]
+ ldr r1, _0221C4A0 ; =MOD08_0221C428
+ add r2, r7, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221C4A0: .word MOD08_0221C428
+
+ thumb_func_start MOD08_0221C4A4
+MOD08_0221C4A4: ; 0x0221C4A4
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ ldrb r0, [r5]
+ cmp r0, #0
+ beq _0221C4B6
+ cmp r0, #1
+ beq _0221C534
+ b _0221C59E
+_0221C4B6:
+ ldr r1, [r5, #0x34]
+ ldr r0, _0221C5C4 ; =0x0222C4D4
+ lsl r2, r1, #1
+ ldrsh r4, [r0, r2]
+ add r0, r1, #1
+ str r0, [r5, #0x34]
+ cmp r4, #0xff
+ beq _0221C506
+ cmp r4, #0
+ bne _0221C4FA
+ ldr r0, [r5, #0x1c]
+ bl FUN_0200C6A4
+ add r6, r0, #0
+ ldr r0, [r5, #4]
+ bl MOD08_02215574
+ cmp r6, r0
+ ldr r0, [r5, #4]
+ bne _0221C4EE
+ mov r1, #2
+ bl MOD08_02215600
+ add r1, r0, #0
+ ldr r0, [r5, #0x1c]
+ bl FUN_0200C6B0
+ b _0221C4FA
+_0221C4EE:
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r5, #0x1c]
+ bl FUN_0200C6B0
+_0221C4FA:
+ ldr r0, [r5, #0x1c]
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200C82C
+ b _0221C5B4
+_0221C506:
+ ldr r0, [r5, #0x1c]
+ mov r1, #2
+ bl FUN_0200C840
+ add r0, r5, #0
+ ldr r2, _0221C5C8 ; =0x00001FFF
+ add r0, #0x20
+ mov r1, #0
+ mov r3, #8
+ bl MOD08_02218008
+ mov r1, #7
+ ldr r0, [r5, #0x1c]
+ mvn r1, r1
+ mov r2, #0x10
+ bl FUN_0200C8DC
+ mov r0, #0
+ str r0, [r5, #0x34]
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+ b _0221C5B4
+_0221C534:
+ add r0, r5, #0
+ add r0, #0x20
+ bl MOD08_02218058
+ cmp r0, #1
+ bne _0221C54E
+ ldr r1, [r5, #0x20]
+ ldr r0, [r5, #0x1c]
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0200C898
+ b _0221C5B4
+_0221C54E:
+ ldr r0, [r5, #0x34]
+ cmp r0, #3
+ ble _0221C55C
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+ b _0221C5B4
+_0221C55C:
+ add r0, r0, #1
+ str r0, [r5, #0x34]
+ cmp r0, #1
+ beq _0221C56E
+ cmp r0, #2
+ beq _0221C57E
+ cmp r0, #3
+ beq _0221C58E
+ b _0221C5B4
+_0221C56E:
+ add r0, r5, #0
+ ldr r1, _0221C5C8 ; =0x00001FFF
+ ldr r2, _0221C5CC ; =0xFFFFE001
+ add r0, #0x20
+ mov r3, #8
+ bl MOD08_02218008
+ b _0221C5B4
+_0221C57E:
+ ldr r1, _0221C5CC ; =0xFFFFE001
+ add r0, r5, #0
+ add r0, #0x20
+ lsr r2, r1, #0x13
+ mov r3, #8
+ bl MOD08_02218008
+ b _0221C5B4
+_0221C58E:
+ add r0, r5, #0
+ ldr r1, _0221C5C8 ; =0x00001FFF
+ add r0, #0x20
+ mov r2, #0
+ mov r3, #8
+ bl MOD08_02218008
+ b _0221C5B4
+_0221C59E:
+ ldr r0, [r5, #0x1c]
+ bl FUN_0200C3DC
+ ldr r0, [r5, #4]
+ add r1, r4, #0
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl FreeToHeap
+ pop {r4, r5, r6, pc}
+_0221C5B4:
+ ldr r0, [r5, #0x1c]
+ bl FUN_0200C5A8
+ ldr r0, [r5, #0x10]
+ bl FUN_0200BC1C
+ pop {r4, r5, r6, pc}
+ nop
+_0221C5C4: .word 0x0222C4D4
+_0221C5C8: .word 0x00001FFF
+_0221C5CC: .word 0xFFFFE001
+
+ thumb_func_start MOD08_0221C5D0
+MOD08_0221C5D0: ; 0x0221C5D0
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x38
+ add r5, r0, #0
+ add r6, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ str r6, [r4, #0x1c]
+ mov r0, #0
+ str r0, [r4, #0x34]
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ mov r2, #0
+ bl MOD08_02217B98
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ mov r2, #1
+ bl MOD08_02217B98
+ add r2, r0, #0
+ ldr r0, [r4, #0x1c]
+ add r1, r6, #0
+ bl FUN_0200C714
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ ldr r0, [r4, #0x1c]
+ bne _0221C630
+ mov r1, #1
+ bl FUN_0200C5C0
+ b _0221C636
+_0221C630:
+ mov r1, #0
+ bl FUN_0200C5C0
+_0221C636:
+ ldr r0, [r4, #4]
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ mov r2, #0xc
+ bl FUN_0200C82C
+ ldr r0, [r4, #4]
+ ldr r1, _0221C65C ; =MOD08_0221C4A4
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221C65C: .word MOD08_0221C4A4
+
+ thumb_func_start MOD08_0221C660
+MOD08_0221C660: ; 0x0221C660
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C608
+ cmp r0, #0
+ ldr r0, [r4, #0x1c]
+ bne _0221C686
+ bl FUN_0200C3DC
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, pc}
+_0221C686:
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x10]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221C694
+MOD08_0221C694: ; 0x0221C694
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x38
+ add r5, r0, #0
+ add r6, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ add r0, r5, #0
+ str r6, [r4, #0x1c]
+ bl MOD08_02212460
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ mov r2, #0
+ bl MOD08_02217B98
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ mov r2, #1
+ bl MOD08_02217B98
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _0221C6DC
+ mov r6, #0x48
+ mov r2, #0x20
+ mov r5, #0
+ b _0221C6F2
+_0221C6DC:
+ ldr r0, [r4, #4]
+ add r1, r7, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _0221C6EE
+ mov r2, #0x7e
+ mov r5, #1
+ b _0221C6F2
+_0221C6EE:
+ mov r2, #0x20
+ mov r5, #0
+_0221C6F2:
+ ldr r0, [r4, #0x1c]
+ add r1, r6, #0
+ bl FUN_0200C714
+ ldr r0, [r4, #0x1c]
+ add r1, r5, #0
+ bl FUN_0200C5C0
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl MOD08_02215600
+ add r1, r0, #0
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C6B0
+ ldr r0, [r4, #4]
+ ldr r1, _0221C720 ; =MOD08_0221C660
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221C720: .word MOD08_0221C660
+
+ thumb_func_start MOD08_0221C724
+MOD08_0221C724: ; 0x0221C724
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #3
+ bhi _0221C816
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221C73E: ; jump table
+ .short _0221C746 - _0221C73E - 2 ; case 0
+ .short _0221C76C - _0221C73E - 2 ; case 1
+ .short _0221C784 - _0221C73E - 2 ; case 2
+ .short _0221C7C0 - _0221C73E - 2 ; case 3
+_0221C746:
+ mov r0, #0xa0
+ str r0, [sp]
+ mov r3, #0x70
+ mov r0, #1
+ str r3, [sp, #4]
+ mov r2, #0x15
+ str r2, [sp, #8]
+ lsl r0, r0, #0x12
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r0, #0x24
+ add r1, #0x48
+ sub r2, #0x33
+ bl MOD08_02217F50
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221C82E
+_0221C76C:
+ add r0, r4, #0
+ ldr r2, [r4, #0x1c]
+ add r0, #0x24
+ add r1, #0x48
+ bl MOD08_02217FE4
+ cmp r0, #0
+ bne _0221C82E
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221C82E
+_0221C784:
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C608
+ cmp r0, #0
+ bne _0221C82E
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ bl FUN_0200C90C
+ add r0, r4, #0
+ add r2, r4, #0
+ mov r1, #0x10
+ add r0, #0x20
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x21
+ strb r1, [r0]
+ add r1, r4, #0
+ add r1, #0x20
+ add r2, #0x21
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4, #4]
+ bl MOD08_02227994
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221C82E
+_0221C7C0:
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0221C7D8
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x20
+ strb r1, [r0]
+_0221C7D8:
+ add r0, r4, #0
+ add r0, #0x21
+ ldrb r0, [r0]
+ cmp r0, #0x10
+ bhs _0221C7F0
+ add r0, r4, #0
+ add r0, #0x21
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x21
+ strb r1, [r0]
+_0221C7F0:
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x21
+ ldrb r0, [r0]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221C840 ; =0x04000052
+ strh r1, [r0]
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0221C82E
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221C82E
+_0221C816:
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C3DC
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+_0221C82E:
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x10]
+ bl FUN_0200BC1C
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_0221C840: .word 0x04000052
+
+ thumb_func_start MOD08_0221C844
+MOD08_0221C844: ; 0x0221C844
+ push {r4, r5, r6, lr}
+ mov r1, #0x6c
+ add r6, r0, #0
+ add r5, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ mov r1, #0x1d
+ str r5, [r4, #0x1c]
+ add r0, r5, #0
+ mvn r1, r1
+ mov r2, #0xa0
+ bl FUN_0200C714
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl MOD08_02215600
+ add r1, r0, #0
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C6B0
+ ldr r0, [r4, #4]
+ ldr r1, _0221C884 ; =MOD08_0221C724
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0221C884: .word MOD08_0221C724
+
+ thumb_func_start MOD08_0221C888
+MOD08_0221C888: ; 0x0221C888
+ push {r4, lr}
+ mov r1, #0
+ add r4, r0, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ beq _0221C89E
+ add r0, r4, #0
+ bl MOD08_02218BD4
+ pop {r4, pc}
+_0221C89E:
+ add r0, r4, #0
+ bl MOD08_02218C04
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221C8A8
+MOD08_0221C8A8: ; 0x0221C8A8
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0x18
+ bls _0221C8B6
+ b _0221CAAA
+_0221C8B6:
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0221C8C2: ; jump table
+ .short _0221C8F4 - _0221C8C2 - 2 ; case 0
+ .short _0221CAAA - _0221C8C2 - 2 ; case 1
+ .short _0221CAAA - _0221C8C2 - 2 ; case 2
+ .short _0221CAAA - _0221C8C2 - 2 ; case 3
+ .short _0221CAAA - _0221C8C2 - 2 ; case 4
+ .short _0221C9A0 - _0221C8C2 - 2 ; case 5
+ .short _0221C9A0 - _0221C8C2 - 2 ; case 6
+ .short _0221C9CA - _0221C8C2 - 2 ; case 7
+ .short _0221CAAA - _0221C8C2 - 2 ; case 8
+ .short _0221CAAA - _0221C8C2 - 2 ; case 9
+ .short _0221C9E4 - _0221C8C2 - 2 ; case 10
+ .short _0221C9E4 - _0221C8C2 - 2 ; case 11
+ .short _0221CA0E - _0221C8C2 - 2 ; case 12
+ .short _0221CAAA - _0221C8C2 - 2 ; case 13
+ .short _0221CAAA - _0221C8C2 - 2 ; case 14
+ .short _0221CA26 - _0221C8C2 - 2 ; case 15
+ .short _0221CA26 - _0221C8C2 - 2 ; case 16
+ .short _0221CA50 - _0221C8C2 - 2 ; case 17
+ .short _0221CAAA - _0221C8C2 - 2 ; case 18
+ .short _0221CAAA - _0221C8C2 - 2 ; case 19
+ .short _0221CAAA - _0221C8C2 - 2 ; case 20
+ .short _0221CAAA - _0221C8C2 - 2 ; case 21
+ .short _0221CA68 - _0221C8C2 - 2 ; case 22
+ .short _0221CA68 - _0221C8C2 - 2 ; case 23
+ .short _0221CA92 - _0221C8C2 - 2 ; case 24
+_0221C8F4:
+ ldr r0, [r4, #0x34]
+ ldr r1, _0221CAF0 ; =0xFFFF1FFF
+ cmp r0, #0
+ bne _0221C94E
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ add r5, r0, #0
+ and r2, r1
+ lsr r1, r0, #0xd
+ orr r1, r2
+ str r1, [r0]
+ add r5, #0x48
+ ldrh r3, [r5]
+ mov r2, #0x3f
+ mov r1, #0xf
+ bic r3, r2
+ orr r1, r3
+ mov r3, #0x20
+ orr r1, r3
+ strh r1, [r5]
+ add r5, r0, #0
+ add r5, #0x4a
+ ldrh r6, [r5]
+ mov r1, #0x1f
+ bic r6, r2
+ orr r1, r6
+ orr r1, r3
+ strh r1, [r5]
+ add r1, r0, #0
+ mov r2, #0x80
+ add r1, #0x40
+ strh r2, [r1]
+ ldr r1, _0221CAF4 ; =0x0000A0C0
+ add r0, #0x44
+ strh r1, [r0]
+ bl LCRandom
+ mov r1, #5
+ bl _s32_div_f
+ add r1, #0x23
+ add sp, #4
+ str r1, [r4, #0x3c]
+ pop {r3, r4, r5, r6, pc}
+_0221C94E:
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ add r5, r0, #0
+ and r2, r1
+ lsr r1, r0, #0xd
+ orr r1, r2
+ str r1, [r0]
+ add r5, #0x48
+ ldrh r3, [r5]
+ mov r2, #0x3f
+ mov r1, #0xf
+ bic r3, r2
+ orr r1, r3
+ mov r3, #0x20
+ orr r1, r3
+ strh r1, [r5]
+ add r5, r0, #0
+ add r5, #0x4a
+ ldrh r6, [r5]
+ mov r1, #0x1f
+ bic r6, r2
+ orr r1, r6
+ orr r1, r3
+ strh r1, [r5]
+ add r1, r0, #0
+ lsl r2, r3, #0xa
+ add r1, #0x40
+ strh r2, [r1]
+ ldr r1, _0221CAF8 ; =0x000056C0
+ add r0, #0x44
+ strh r1, [r0]
+ bl LCRandom
+ mov r1, #5
+ bl _s32_div_f
+ add r1, #0x23
+ add sp, #4
+ str r1, [r4, #0x3c]
+ pop {r3, r4, r5, r6, pc}
+_0221C9A0:
+ bl LCRandom
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1f
+ sub r1, r1, r2
+ mov r0, #0x1f
+ ror r1, r0
+ add r0, r2, r1
+ beq _0221C9D0
+ ldr r0, [r4, #0x38]
+ cmp r0, #0
+ bne _0221C9D0
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ mov r2, #4
+ bl FUN_0200C82C
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221C9CA:
+ ldr r0, [r4, #0x38]
+ cmp r0, #1
+ bne _0221C9D2
+_0221C9D0:
+ b _0221CAEC
+_0221C9D2:
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ mov r2, #4
+ bl FUN_0200C82C
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221C9E4:
+ bl LCRandom
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1f
+ sub r1, r1, r2
+ mov r0, #0x1f
+ ror r1, r0
+ add r0, r2, r1
+ beq _0221CAEC
+ ldr r0, [r4, #0x38]
+ cmp r0, #1
+ bne _0221CAEC
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ mov r2, #4
+ bl FUN_0200C82C
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221CA0E:
+ ldr r0, [r4, #0x38]
+ cmp r0, #2
+ beq _0221CAEC
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ mov r2, #4
+ bl FUN_0200C82C
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221CA26:
+ bl LCRandom
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1f
+ sub r1, r1, r2
+ mov r0, #0x1f
+ ror r1, r0
+ add r0, r2, r1
+ beq _0221CAEC
+ ldr r0, [r4, #0x38]
+ cmp r0, #2
+ bne _0221CAEC
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ mov r2, #4
+ bl FUN_0200C82C
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221CA50:
+ ldr r0, [r4, #0x38]
+ cmp r0, #3
+ beq _0221CAEC
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ mov r2, #4
+ bl FUN_0200C82C
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221CA68:
+ bl LCRandom
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1f
+ sub r1, r1, r2
+ mov r0, #0x1f
+ ror r1, r0
+ add r0, r2, r1
+ beq _0221CAEC
+ ldr r0, [r4, #0x38]
+ cmp r0, #3
+ bne _0221CAEC
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ mov r2, #8
+ bl FUN_0200C82C
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221CA92:
+ ldr r0, [r4, #0x38]
+ cmp r0, #4
+ beq _0221CAEC
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ mov r2, #8
+ bl FUN_0200C82C
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221CAAA:
+ ldr r1, [r4, #0x3c]
+ cmp r0, r1
+ ble _0221CAEC
+ ldr r0, [r4, #0x38]
+ cmp r0, #0x14
+ ldr r0, [r4, #0x1c]
+ bge _0221CAE6
+ mov r1, #0
+ mov r2, #4
+ bl FUN_0200C82C
+ add r1, sp, #0
+ ldr r0, [r4, #0x1c]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r0, sp, #0
+ mov r1, #0
+ ldrsh r0, [r0, r1]
+ cmp r0, #0x82
+ ble _0221CADC
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C644
+_0221CADC:
+ ldr r0, [r4, #0x38]
+ add sp, #4
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ pop {r3, r4, r5, r6, pc}
+_0221CAE6:
+ mov r1, #0
+ bl FUN_0200C644
+_0221CAEC:
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0221CAF0: .word 0xFFFF1FFF
+_0221CAF4: .word 0x0000A0C0
+_0221CAF8: .word 0x000056C0
+
+ thumb_func_start MOD08_0221CAFC
+MOD08_0221CAFC: ; 0x0221CAFC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x30]
+ cmp r0, #0
+ beq _0221CB0E
+ add r0, r4, #0
+ bl MOD08_0221C8A8
+_0221CB0E:
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ ldrb r1, [r4]
+ ldr r0, [r4, #0x24]
+ cmp r1, r0
+ blt _0221CB66
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ ldr r1, _0221CB74 ; =0xFFFF1FFF
+ and r1, r2
+ add r2, r0, #0
+ str r1, [r0]
+ add r2, #0x48
+ ldrh r3, [r2]
+ mov r1, #0x3f
+ bic r3, r1
+ strh r3, [r2]
+ add r2, r0, #0
+ add r2, #0x4a
+ ldrh r3, [r2]
+ bic r3, r1
+ strh r3, [r2]
+ add r2, r0, #0
+ mov r1, #0
+ add r2, #0x40
+ strh r1, [r2]
+ add r0, #0x44
+ strh r1, [r0]
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C644
+ ldr r0, [r4, #0xc]
+ bl FUN_0200BC1C
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, pc}
+_0221CB66:
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0xc]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221CB74: .word 0xFFFF1FFF
+
+ thumb_func_start MOD08_0221CB78
+MOD08_0221CB78: ; 0x0221CB78
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x40
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [r4, #0x20]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ str r0, [r4, #0x24]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [r4, #0x28]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [r4, #0x2c]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ str r0, [r4, #0x30]
+ add r0, r5, #0
+ mov r1, #6
+ bl MOD08_02212498
+ str r0, [r4, #0x34]
+ ldr r0, [r4, #4]
+ ldr r1, [r4, #0x20]
+ bl MOD08_022124D8
+ str r0, [r4, #0x1c]
+ mov r0, #0
+ str r0, [r4, #0x38]
+ ldr r1, [r4, #0x28]
+ cmp r1, #0xff
+ beq _0221CBEA
+ add r0, r5, #0
+ bl MOD08_02215600
+ add r1, r0, #0
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C6B0
+_0221CBEA:
+ ldr r1, [r4, #0x2c]
+ cmp r1, #0xff
+ beq _0221CBF6
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200C6C4
+_0221CBF6:
+ add r0, r5, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ beq _0221CC28
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ cmp r0, #2
+ beq _0221CC18
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ cmp r0, #3
+ bne _0221CC28
+_0221CC18:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ bl FUN_0200C644
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, r6, r7, pc}
+_0221CC28:
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212460
+ str r0, [sp]
+ ldr r0, [r4, #0x2c]
+ cmp r0, #0xff
+ beq _0221CC76
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02227468
+ add r6, r0, #0
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD08_02227468
+ cmp r7, #3
+ bhi _0221CC76
+ add r1, r7, r7
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0221CC6A: ; jump table
+ .short _0221CC72 - _0221CC6A - 2 ; case 0
+ .short _0221CCFC - _0221CC6A - 2 ; case 1
+ .short _0221CCB8 - _0221CC6A - 2 ; case 2
+ .short _0221CD40 - _0221CC6A - 2 ; case 3
+_0221CC72:
+ cmp r6, #5
+ bls _0221CC78
+_0221CC76:
+ b _0221CD82
+_0221CC78:
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221CC84: ; jump table
+ .short _0221CD82 - _0221CC84 - 2 ; case 0
+ .short _0221CD82 - _0221CC84 - 2 ; case 1
+ .short _0221CC90 - _0221CC84 - 2 ; case 2
+ .short _0221CC9A - _0221CC84 - 2 ; case 3
+ .short _0221CCA4 - _0221CC84 - 2 ; case 4
+ .short _0221CCAE - _0221CC84 - 2 ; case 5
+_0221CC90:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CC9A:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CCA4:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CCAE:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CCB8:
+ cmp r6, #5
+ bhi _0221CD82
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221CCC8: ; jump table
+ .short _0221CD82 - _0221CCC8 - 2 ; case 0
+ .short _0221CD82 - _0221CCC8 - 2 ; case 1
+ .short _0221CCD4 - _0221CCC8 - 2 ; case 2
+ .short _0221CCDE - _0221CCC8 - 2 ; case 3
+ .short _0221CCE8 - _0221CCC8 - 2 ; case 4
+ .short _0221CCF2 - _0221CCC8 - 2 ; case 5
+_0221CCD4:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CCDE:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CCE8:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CCF2:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CCFC:
+ cmp r0, #5
+ bhi _0221CD82
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221CD0C: ; jump table
+ .short _0221CD82 - _0221CD0C - 2 ; case 0
+ .short _0221CD82 - _0221CD0C - 2 ; case 1
+ .short _0221CD18 - _0221CD0C - 2 ; case 2
+ .short _0221CD22 - _0221CD0C - 2 ; case 3
+ .short _0221CD2C - _0221CD0C - 2 ; case 4
+ .short _0221CD36 - _0221CD0C - 2 ; case 5
+_0221CD18:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CD22:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CD2C:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CD36:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CD40:
+ cmp r0, #5
+ bhi _0221CD82
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221CD50: ; jump table
+ .short _0221CD82 - _0221CD50 - 2 ; case 0
+ .short _0221CD82 - _0221CD50 - 2 ; case 1
+ .short _0221CD5C - _0221CD50 - 2 ; case 2
+ .short _0221CD66 - _0221CD50 - 2 ; case 3
+ .short _0221CD70 - _0221CD50 - 2 ; case 4
+ .short _0221CD7A - _0221CD50 - 2 ; case 5
+_0221CD5C:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CD66:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CD70:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ b _0221CD82
+_0221CD7A:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+_0221CD82:
+ ldr r0, [r4, #4]
+ ldr r1, _0221CD90 ; =MOD08_0221CAFC
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221CD90: .word MOD08_0221CAFC
+
+ thumb_func_start MOD08_0221CD94
+MOD08_0221CD94: ; 0x0221CD94
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ add r2, r0, #0
+ ldr r0, [r6, #0x2c]
+ cmp r0, #0
+ bne _0221CDB0
+ ldr r0, [r6, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r6, #0
+ bl FreeToHeap
+ pop {r4, r5, r6, pc}
+_0221CDB0:
+ sub r0, r0, #1
+ str r0, [r6, #0x2c]
+ mov r4, #0
+ add r5, r6, #0
+_0221CDB8:
+ ldr r0, [r5, #0x1c]
+ cmp r0, #0
+ beq _0221CDC2
+ bl FUN_0200C5A8
+_0221CDC2:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0221CDB8
+ ldr r0, [r6, #0xc]
+ bl FUN_0200BC1C
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221CDD4
+MOD08_0221CDD4: ; 0x0221CDD4
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x34
+ add r4, r0, #0
+ bl MOD08_02228064
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD08_02227B70
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ bne _0221CDF8
+ mov r0, #3
+ b _0221CE00
+_0221CDF8:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD08_02212498
+_0221CE00:
+ ldr r5, _0221CE38 ; =0x0222D5A0
+ str r0, [r7, #0x2c]
+ mov r6, #0
+ add r4, r7, #0
+_0221CE08:
+ ldr r0, [r7, #4]
+ add r1, r6, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _0221CE1C
+ ldr r1, [r5]
+ bl FUN_0200C6C4
+_0221CE1C:
+ add r6, r6, #1
+ add r4, r4, #4
+ add r5, r5, #4
+ cmp r6, #4
+ blt _0221CE08
+ ldr r0, [r7, #4]
+ ldr r1, _0221CE3C ; =MOD08_0221CD94
+ add r2, r7, #0
+ bl MOD08_02212400
+ add r1, r7, #0
+ bl MOD08_0221CD94
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221CE38: .word 0x0222D5A0
+_0221CE3C: .word MOD08_0221CD94
+
+ thumb_func_start MOD08_0221CE40
+MOD08_0221CE40: ; 0x0221CE40
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r5, r1, #0
+ add r4, r0, #0
+ ldrb r0, [r5, #8]
+ cmp r0, #0
+ beq _0221CE54
+ cmp r0, #1
+ beq _0221CE9A
+ b _0221CEB2
+_0221CE54:
+ mov r0, #0
+ str r0, [r5]
+ ldr r0, [r5, #0xc]
+ mov r1, #2
+ bl MOD08_022155C4
+ add r4, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD08_02218998
+ add r6, r0, #0
+ ldr r0, [r5, #0xc]
+ bl MOD08_02212014
+ mov r1, #0xc8
+ str r1, [sp]
+ mov r3, #2
+ str r4, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ str r6, [sp, #0xc]
+ str r0, [sp, #0x10]
+ add r0, r1, #0
+ mov r1, #0xa0
+ mov r2, #0xb6
+ lsl r3, r3, #0x10
+ bl MOD08_022188DC
+ str r0, [r5, #0x24]
+ ldrb r0, [r5, #8]
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r5, #8]
+ pop {r3, r4, r5, r6, pc}
+_0221CE9A:
+ ldr r0, [r5]
+ add r1, r0, #1
+ str r1, [r5]
+ ldr r0, [r5, #4]
+ cmp r1, r0
+ blt _0221CEC0
+ ldr r0, [r5, #0x24]
+ bl MOD08_0221894C
+ ldrb r0, [r5, #8]
+ add r0, r0, #1
+ strb r0, [r5, #8]
+_0221CEB2:
+ ldr r0, [r5, #0xc]
+ add r1, r4, #0
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl FreeToHeap
+_0221CEC0:
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+
+ thumb_func_start MOD08_0221CEC4
+MOD08_0221CEC4: ; 0x0221CEC4
+ push {r3, r4, r5, lr}
+ mov r1, #0x28
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #8
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [r4, #4]
+ ldr r0, [r4, #0xc]
+ ldr r1, _0221CEF0 ; =MOD08_0221CE40
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221CEF0: .word MOD08_0221CE40
+
+ thumb_func_start MOD08_0221CEF4
+MOD08_0221CEF4: ; 0x0221CEF4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r4, r1, #0
+ str r0, [sp, #0xc]
+ ldrb r0, [r4]
+ cmp r0, #3
+ bls _0221CF04
+ b _0221D076
+_0221CF04:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221CF10: ; jump table
+ .short _0221CF18 - _0221CF10 - 2 ; case 0
+ .short _0221CFCA - _0221CF10 - 2 ; case 1
+ .short _0221CFE8 - _0221CF10 - 2 ; case 2
+ .short _0221D042 - _0221CF10 - 2 ; case 3
+_0221CF18:
+ ldrb r0, [r4, #4]
+ mov r7, #0
+ add r1, r7, #0
+ add r0, r0, #1
+ strb r0, [r4, #4]
+ ldr r0, [r4, #8]
+ bl MOD08_02212498
+ cmp r0, #0
+ ble _0221CF8E
+ ldr r6, _0221D0E4 ; =0x0222C536
+ add r5, r4, #0
+_0221CF30:
+ add r1, sp, #0x10
+ ldr r0, [r5, #0x14]
+ add r1, #2
+ add r2, sp, #0x10
+ bl FUN_0200C7A0
+ ldrb r1, [r4, #4]
+ ldrb r0, [r6]
+ cmp r1, r0
+ blo _0221CF74
+ add r0, r4, r7
+ ldrb r1, [r0, #1]
+ add r1, r1, #1
+ strb r1, [r0, #1]
+ ldrb r2, [r0, #1]
+ ldrb r1, [r6, #1]
+ cmp r2, r1
+ blo _0221CF7C
+ mov r1, #0
+ strb r1, [r0, #1]
+ ldr r0, [r5, #0x14]
+ bl FUN_0200C658
+ cmp r0, #1
+ ldr r0, [r5, #0x14]
+ bne _0221CF6C
+ mov r1, #0
+ bl FUN_0200C644
+ b _0221CF7C
+_0221CF6C:
+ mov r1, #1
+ bl FUN_0200C644
+ b _0221CF7C
+_0221CF74:
+ ldr r0, [r5, #0x14]
+ mov r1, #0
+ bl FUN_0200C644
+_0221CF7C:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ add r5, r5, #4
+ add r6, r6, #2
+ add r7, r7, #1
+ bl MOD08_02212498
+ cmp r7, r0
+ blt _0221CF30
+_0221CF8E:
+ ldrb r0, [r4, #4]
+ cmp r0, #0x2d
+ blo _0221D02C
+ mov r5, #0
+ ldr r0, [r4, #8]
+ add r1, r5, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ ble _0221CFBE
+ add r6, r4, #0
+ mov r7, #1
+_0221CFA6:
+ ldr r0, [r6, #0x14]
+ add r1, r7, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #8]
+ mov r1, #0
+ add r6, r6, #4
+ add r5, r5, #1
+ bl MOD08_02212498
+ cmp r5, r0
+ blt _0221CFA6
+_0221CFBE:
+ mov r0, #0
+ strb r0, [r4, #4]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221D0B0
+_0221CFCA:
+ mov r1, #0x64
+ str r1, [sp]
+ str r1, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x20
+ mov r2, #0x3c
+ add r3, r1, #0
+ bl MOD08_022181A8
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221D0B0
+_0221CFE8:
+ add r0, r4, #0
+ add r0, #0x20
+ bl MOD08_02218224
+ cmp r0, #1
+ bne _0221D02E
+ mov r5, #0
+ ldr r0, [r4, #8]
+ add r1, r5, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ ble _0221D0B0
+ add r7, r4, #0
+ add r6, r4, #0
+ add r7, #0x20
+_0221D008:
+ add r0, r7, #0
+ add r1, sp, #0x18
+ add r2, sp, #0x14
+ bl MOD08_0221825C
+ ldr r0, [r6, #0x14]
+ ldr r1, [sp, #0x18]
+ ldr r2, [sp, #0x14]
+ bl FUN_0200C884
+ ldr r0, [r4, #8]
+ mov r1, #0
+ add r6, r6, #4
+ add r5, r5, #1
+ bl MOD08_02212498
+ cmp r5, r0
+ blt _0221D008
+_0221D02C:
+ b _0221D0B0
+_0221D02E:
+ ldrb r0, [r4, #4]
+ add r0, r0, #1
+ strb r0, [r4, #4]
+ ldrb r0, [r4, #4]
+ cmp r0, #0x2d
+ blo _0221D0B0
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221D0B0
+_0221D042:
+ ldrb r0, [r4, #5]
+ cmp r0, #0
+ beq _0221D04C
+ sub r0, r0, #1
+ strb r0, [r4, #5]
+_0221D04C:
+ ldrb r0, [r4, #6]
+ cmp r0, #0xf
+ bhs _0221D056
+ add r0, r0, #1
+ strb r0, [r4, #6]
+_0221D056:
+ ldrb r0, [r4, #5]
+ cmp r0, #0
+ bne _0221D068
+ ldrb r0, [r4, #6]
+ cmp r0, #0xf
+ bne _0221D068
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221D068:
+ ldrb r0, [r4, #6]
+ ldrb r1, [r4, #5]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221D0E8 ; =0x04000052
+ strh r1, [r0]
+ b _0221D0B0
+_0221D076:
+ mov r5, #0
+ ldr r0, [r4, #8]
+ add r1, r5, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ ble _0221D09E
+ add r6, r4, #0
+ add r7, r5, #0
+_0221D088:
+ ldr r0, [r6, #0x14]
+ bl FUN_0200C3DC
+ ldr r0, [r4, #8]
+ add r1, r7, #0
+ add r6, r6, #4
+ add r5, r5, #1
+ bl MOD08_02212498
+ cmp r5, r0
+ blt _0221D088
+_0221D09E:
+ ldr r0, [r4, #8]
+ ldr r1, [sp, #0xc]
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+_0221D0B0:
+ mov r5, #0
+ ldr r0, [r4, #8]
+ add r1, r5, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ ble _0221D0DA
+ add r6, r4, #0
+ add r7, r5, #0
+_0221D0C2:
+ ldr r0, [r6, #0x14]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ ldr r0, [r4, #8]
+ add r1, r7, #0
+ add r6, r6, #4
+ add r5, r5, #1
+ bl MOD08_02212498
+ cmp r5, r0
+ blt _0221D0C2
+_0221D0DA:
+ ldr r0, [r4, #0x10]
+ bl FUN_0200BC1C
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221D0E4: .word 0x0222C536
+_0221D0E8: .word 0x04000052
+
+ thumb_func_start MOD08_0221D0EC
+MOD08_0221D0EC: ; 0x0221D0EC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ str r0, [sp]
+ add r5, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ bl MOD08_02212014
+ mov r1, #0x44
+ bl AllocFromHeap
+ add r4, r0, #0
+ bne _0221D10A
+ bl ErrorHandling
+_0221D10A:
+ mov r0, #0
+ strb r0, [r4, #4]
+ strb r0, [r4]
+ str r5, [r4, #0xc]
+ ldr r0, [sp]
+ str r6, [r4, #0x10]
+ str r0, [r4, #8]
+ ldr r1, [sp]
+ add r0, sp, #8
+ bl MOD08_02215474
+ mov r1, #0
+ mvn r1, r1
+ ldr r0, [r4, #8]
+ add r2, r1, #0
+ bl MOD08_02227994
+ mov r0, #0xf
+ strb r0, [r4, #5]
+ mov r0, #0
+ strb r0, [r4, #6]
+ ldrb r0, [r4, #6]
+ ldrb r1, [r4, #5]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221D21C ; =0x04000052
+ strh r1, [r0]
+ ldr r0, [sp]
+ str r7, [r4, #0x14]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [sp]
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _0221D166
+ ldr r0, [sp]
+ bl MOD08_02212004
+ add r1, r0, #0
+ mov r0, #0
+ add r2, sp, #4
+ bl MOD08_02227564
+ b _0221D176
+_0221D166:
+ ldr r0, [sp]
+ bl MOD08_02212004
+ add r1, r0, #0
+ mov r0, #1
+ add r2, sp, #4
+ bl MOD08_02227564
+_0221D176:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ mov r6, #1
+ bl MOD08_02212498
+ cmp r0, #1
+ ble _0221D1B0
+ add r5, r4, #4
+ add r7, sp, #4
+_0221D188:
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x10]
+ add r2, sp, #8
+ bl FUN_0200C154
+ str r0, [r5, #0x14]
+ mov r1, #0
+ mov r2, #2
+ ldrsh r1, [r7, r1]
+ ldrsh r2, [r7, r2]
+ bl FUN_0200C714
+ ldr r0, [r4, #8]
+ mov r1, #0
+ add r5, r5, #4
+ add r6, r6, #1
+ bl MOD08_02212498
+ cmp r6, r0
+ blt _0221D188
+_0221D1B0:
+ add r3, sp, #4
+ mov r1, #0
+ mov r2, #2
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #0x14]
+ bl FUN_0200C714
+ mov r6, #0
+ ldr r0, [r4, #8]
+ add r1, r6, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ ble _0221D20A
+ add r5, r4, #0
+ add r7, r6, #0
+_0221D1D2:
+ add r1, r4, r6
+ mov r0, #0
+ strb r0, [r1, #1]
+ ldr r0, [r5, #0x14]
+ mov r1, #2
+ bl FUN_0200C840
+ mov r2, #0x20
+ sub r2, r2, r7
+ lsl r2, r2, #0x10
+ ldr r0, [r5, #0x14]
+ mov r1, #0
+ asr r2, r2, #0x10
+ bl FUN_0200C82C
+ ldr r0, [r5, #0x14]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #8]
+ mov r1, #0
+ add r5, r5, #4
+ add r7, r7, #4
+ add r6, r6, #1
+ bl MOD08_02212498
+ cmp r6, r0
+ blt _0221D1D2
+_0221D20A:
+ mov r3, #1
+ ldr r0, [sp]
+ ldr r1, _0221D220 ; =MOD08_0221CEF4
+ add r2, r4, #0
+ lsl r3, r3, #0xc
+ bl MOD08_022123E4
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221D21C: .word 0x04000052
+_0221D220: .word MOD08_0221CEF4
+
+ thumb_func_start MOD08_0221D224
+MOD08_0221D224: ; 0x0221D224
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #5
+ bls _0221D234
+ b _0221D404
+_0221D234:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221D240: ; jump table
+ .short _0221D24C - _0221D240 - 2 ; case 0
+ .short _0221D2AE - _0221D240 - 2 ; case 1
+ .short _0221D2C8 - _0221D240 - 2 ; case 2
+ .short _0221D2EC - _0221D240 - 2 ; case 3
+ .short _0221D346 - _0221D240 - 2 ; case 4
+ .short _0221D394 - _0221D240 - 2 ; case 5
+_0221D24C:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ cmp r0, #1
+ bne _0221D2A4
+ add r0, r4, #0
+ add r0, #0x38
+ bl MOD08_022183F0
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x16
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r2, #0x38
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_020079E0
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x28]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221D2A4:
+ ldrb r0, [r4]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221D2AE:
+ mov r0, #0x1f
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, [r4, #0x10]
+ mov r2, #0xa
+ add r3, r1, #0
+ bl FUN_02007E68
+ ldrb r0, [r4]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221D2C8:
+ ldr r0, [r4, #0x10]
+ bl FUN_02007F20
+ cmp r0, #0
+ bne _0221D2F6
+ mov r0, #0x1f
+ str r0, [sp]
+ mov r2, #0
+ ldr r0, [r4, #0x10]
+ mov r1, #0xa
+ add r3, r2, #0
+ bl FUN_02007E68
+ ldrb r0, [r4]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221D2EC:
+ ldr r0, [r4, #0x10]
+ bl FUN_02007F20
+ cmp r0, #0
+ beq _0221D2F8
+_0221D2F6:
+ b _0221D412
+_0221D2F8:
+ ldrb r0, [r4, #8]
+ add r0, r0, #1
+ strb r0, [r4, #8]
+ ldrb r0, [r4, #8]
+ cmp r0, #3
+ blo _0221D33E
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl MOD08_02212498
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl MOD08_02212498
+ add r6, r0, #0
+ ldr r0, [r4, #0xc]
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [sp]
+ add r0, r4, #0
+ lsl r1, r5, #0x10
+ lsl r3, r6, #0x10
+ add r0, #0x14
+ asr r1, r1, #0x10
+ mov r2, #0x64
+ asr r3, r3, #0x10
+ bl MOD08_02218120
+ ldrb r0, [r4]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221D33E:
+ mov r0, #1
+ add sp, #4
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221D346:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ cmp r0, #1
+ bne _0221D38A
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x16
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x28]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221D38A:
+ ldrb r0, [r4]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221D394:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ cmp r0, #1
+ ldr r0, [r4, #0x10]
+ bne _0221D3D8
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x16
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x28]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0221D3D8:
+ mov r1, #0xc
+ add r2, r1, #0
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #0x10]
+ add r2, #0xf3
+ bl FUN_02007558
+ mov r2, #2
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_02007558
+ ldrb r0, [r4]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221D404:
+ ldr r0, [r4, #0xc]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_0221D412:
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221D418
+MOD08_0221D418: ; 0x0221D418
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0x5c
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4, #8]
+ strb r0, [r4]
+ str r5, [r4, #0xc]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD08_022154D4
+ str r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #2]
+ ldr r0, [r4, #0xc]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD08_0221552C
+ str r0, [r4, #4]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0x64
+ lsl r3, r6, #0x10
+ add r0, #0x14
+ add r2, r1, #0
+ asr r3, r3, #0x10
+ bl MOD08_02218120
+ mov r0, #0xa
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0x38
+ mov r1, #2
+ add r3, r2, #0
+ bl MOD08_022183C0
+ ldr r0, [r4, #0xc]
+ ldr r1, _0221D4A0 ; =MOD08_0221D224
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_0221D4A0: .word MOD08_0221D224
+
+ thumb_func_start MOD08_0221D4A4
+MOD08_0221D4A4: ; 0x0221D4A4
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #4
+ bls _0221D4B4
+ b _0221D6CC
+_0221D4B4:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221D4C0: ; jump table
+ .short _0221D4CA - _0221D4C0 - 2 ; case 0
+ .short _0221D530 - _0221D4C0 - 2 ; case 1
+ .short _0221D594 - _0221D4C0 - 2 ; case 2
+ .short _0221D5F8 - _0221D4C0 - 2 ; case 3
+ .short _0221D65C - _0221D4C0 - 2 ; case 4
+_0221D4CA:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02218224
+ cmp r0, #1
+ bne _0221D50E
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x24]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #0xc
+ pop {r3, r4, pc}
+_0221D50E:
+ mov r1, #0x96
+ str r1, [sp]
+ mov r0, #0x64
+ str r0, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r2, #0x32
+ add r0, #0x10
+ add r3, r2, #0
+ bl MOD08_022181A8
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221D530:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02218224
+ cmp r0, #1
+ bne _0221D574
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x24]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #0xc
+ pop {r3, r4, pc}
+_0221D574:
+ mov r2, #0x64
+ str r2, [sp]
+ str r2, [sp, #4]
+ mov r0, #5
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x10
+ mov r1, #0x32
+ mov r3, #0x96
+ bl MOD08_022181A8
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221D594:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02218224
+ cmp r0, #1
+ bne _0221D5D8
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x24]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #0xc
+ pop {r3, r4, pc}
+_0221D5D8:
+ mov r2, #0x96
+ mov r1, #0x64
+ str r2, [sp]
+ str r1, [sp, #4]
+ mov r0, #5
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x10
+ add r3, r1, #0
+ bl MOD08_022181A8
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221D5F8:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02218224
+ cmp r0, #1
+ bne _0221D63C
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x24]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #0xc
+ pop {r3, r4, pc}
+_0221D63C:
+ mov r2, #0x64
+ str r2, [sp]
+ str r2, [sp, #4]
+ mov r0, #5
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x96
+ add r0, #0x10
+ add r3, r1, #0
+ bl MOD08_022181A8
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221D65C:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02218224
+ cmp r0, #1
+ ldr r0, [r4, #0xc]
+ bne _0221D6A0
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x24]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #0xc
+ pop {r3, r4, pc}
+_0221D6A0:
+ mov r1, #0xc
+ add r2, r1, #0
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #0xc]
+ add r2, #0xf3
+ bl FUN_02007558
+ mov r2, #2
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_02007558
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221D6CC:
+ ldr r0, [r4, #8]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221D6E0
+MOD08_0221D6E0: ; 0x0221D6E0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0x58
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4]
+ str r5, [r4, #8]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #2]
+ ldr r0, [r4, #8]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_0221552C
+ str r0, [r4, #4]
+ mov r0, #0x32
+ str r0, [sp]
+ mov r1, #0x64
+ str r1, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x10
+ mov r2, #0x96
+ add r3, r1, #0
+ bl MOD08_022181A8
+ ldr r0, [r4, #8]
+ ldr r1, _0221D748 ; =MOD08_0221D4A4
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_0221D748: .word MOD08_0221D4A4
+
+ thumb_func_start MOD08_0221D74C
+MOD08_0221D74C: ; 0x0221D74C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r5, #1]
+ cmp r0, #0
+ beq _0221D766
+ cmp r0, #1
+ beq _0221D84C
+ cmp r0, #2
+ bne _0221D764
+ b _0221D8AE
+_0221D764:
+ b _0221D8E2
+_0221D766:
+ ldrb r3, [r5]
+ mov r0, #0x1f
+ lsr r2, r3, #0x1f
+ lsl r1, r3, #0x1f
+ sub r1, r1, r2
+ ror r1, r0
+ add r0, r2, r1
+ lsl r0, r0, #1
+ add r1, r3, #1
+ str r0, [sp, #0xc]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ str r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ mov r0, #6
+ mul r0, r1
+ ldr r1, _0221D900 ; =0x0222C59A
+ ldrsh r2, [r1, r0]
+ ldr r1, [sp, #8]
+ sub r7, r2, r1
+ mov r1, #0xa
+ ldrsh r3, [r5, r1]
+ ldr r1, _0221D904 ; =0x0222C598
+ ldrsh r6, [r1, r0]
+ mov r1, #8
+ ldrsh r2, [r5, r1]
+ ldr r1, _0221D908 ; =0x0222C596
+ ldrsh r4, [r1, r0]
+ lsl r0, r7, #0x10
+ str r3, [sp]
+ add r1, r2, r4
+ lsr r0, r0, #0x10
+ add r2, r2, r6
+ str r0, [sp, #4]
+ add r0, r5, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ add r0, #0x28
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ mov r0, #0xa
+ ldrsh r3, [r5, r0]
+ mov r0, #8
+ ldrsh r2, [r5, r0]
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ sub r1, r2, r4
+ str r3, [sp]
+ sub r2, r2, r6
+ str r0, [sp, #4]
+ add r0, r5, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ add r0, #0x4c
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ ldr r0, [sp, #0xc]
+ add r1, r0, #1
+ mov r0, #6
+ mul r0, r1
+ ldr r1, _0221D900 ; =0x0222C59A
+ ldrsh r2, [r1, r0]
+ ldr r1, [sp, #8]
+ sub r7, r2, r1
+ mov r1, #0xa
+ ldrsh r3, [r5, r1]
+ ldr r1, _0221D904 ; =0x0222C598
+ ldrsh r6, [r1, r0]
+ mov r1, #8
+ ldrsh r2, [r5, r1]
+ ldr r1, _0221D908 ; =0x0222C596
+ ldrsh r4, [r1, r0]
+ lsl r0, r7, #0x10
+ str r3, [sp]
+ add r1, r2, r4
+ lsr r0, r0, #0x10
+ add r2, r2, r6
+ str r0, [sp, #4]
+ add r0, r5, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ add r0, #0x70
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ mov r0, #0xa
+ ldrsh r3, [r5, r0]
+ mov r0, #8
+ ldrsh r2, [r5, r0]
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ sub r1, r2, r4
+ str r3, [sp]
+ sub r2, r2, r6
+ str r0, [sp, #4]
+ add r0, r5, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ add r0, #0x94
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+ ldrb r0, [r5, #1]
+ add r0, r0, #1
+ strb r0, [r5, #1]
+_0221D84C:
+ mov r0, #0
+ add r7, r5, #0
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ add r7, #0x28
+ add r6, r5, #0
+ add r4, r5, #0
+_0221D85A:
+ add r0, r7, #0
+ bl MOD08_02217ECC
+ cmp r0, #0
+ bne _0221D870
+ ldr r0, [sp, #0x10]
+ add r0, r0, #1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x10]
+ b _0221D87E
+_0221D870:
+ mov r1, #0x28
+ mov r2, #0x2a
+ ldrsh r1, [r6, r1]
+ ldrsh r2, [r6, r2]
+ ldr r0, [r4, #0x18]
+ bl FUN_0200C714
+_0221D87E:
+ ldr r0, [r4, #0x18]
+ bl FUN_0200C5A8
+ ldr r0, [sp, #0x14]
+ add r7, #0x24
+ add r0, r0, #1
+ add r6, #0x24
+ add r4, r4, #4
+ str r0, [sp, #0x14]
+ cmp r0, #4
+ blt _0221D85A
+ ldr r0, [sp, #0x10]
+ cmp r0, #4
+ bne _0221D8F4
+ ldrb r0, [r5]
+ cmp r0, #9
+ bne _0221D8A8
+ ldrb r0, [r5, #1]
+ add r0, r0, #1
+ strb r0, [r5, #1]
+ b _0221D8F4
+_0221D8A8:
+ mov r0, #0
+ strb r0, [r5, #1]
+ b _0221D8F4
+_0221D8AE:
+ ldrb r0, [r5, #4]
+ cmp r0, #0
+ beq _0221D8B8
+ sub r0, r0, #1
+ strb r0, [r5, #4]
+_0221D8B8:
+ ldrb r0, [r5, #5]
+ cmp r0, #0xf
+ bhs _0221D8C2
+ add r0, r0, #1
+ strb r0, [r5, #5]
+_0221D8C2:
+ ldrb r0, [r5, #4]
+ cmp r0, #0
+ bne _0221D8D4
+ ldrb r0, [r5, #5]
+ cmp r0, #0xf
+ bne _0221D8D4
+ ldrb r0, [r5, #1]
+ add r0, r0, #1
+ strb r0, [r5, #1]
+_0221D8D4:
+ ldrb r0, [r5, #5]
+ ldrb r1, [r5, #4]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221D90C ; =0x04000052
+ strh r1, [r0]
+ b _0221D8F4
+_0221D8E2:
+ ldr r0, [r5, #0xc]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl FreeToHeap
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_0221D8F4:
+ ldr r0, [r5, #0x14]
+ bl FUN_0200BC1C
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221D900: .word 0x0222C59A
+_0221D904: .word 0x0222C598
+_0221D908: .word 0x0222C596
+_0221D90C: .word 0x04000052
+
+ thumb_func_start MOD08_0221D910
+MOD08_0221D910: ; 0x0221D910
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ str r0, [sp, #0x18]
+ bl MOD08_02212014
+ mov r1, #0xb8
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4, #1]
+ strb r0, [r4]
+ ldr r0, [sp, #0x18]
+ str r0, [r4, #0xc]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD08_022154D4
+ str r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #8]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0xa]
+ ldr r0, [r4, #0x10]
+ mov r1, #0x29
+ bl FUN_0200782C
+ mov r1, #0xa
+ ldrsh r1, [r4, r1]
+ sub r0, r1, r0
+ strh r0, [r4, #0xa]
+ ldr r0, [r4, #0xc]
+ bl MOD08_02212504
+ str r0, [r4, #0x14]
+ mov r0, #8
+ strb r0, [r4, #4]
+ mov r1, #6
+ strb r1, [r4, #5]
+ sub r1, r1, #7
+ ldr r0, [r4, #0xc]
+ add r2, r1, #0
+ bl MOD08_02227994
+ ldrb r0, [r4, #5]
+ ldrb r1, [r4, #4]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221DB90 ; =0x04000052
+ strh r1, [r0]
+ ldr r0, [r4, #0xc]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD08_0221550C
+ str r0, [sp, #0x20]
+ ldr r0, [r4, #0xc]
+ bl MOD08_02215574
+ add r7, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD08_0221551C
+ str r0, [sp, #0x1c]
+ mov r6, #0
+ add r5, r4, #0
+_0221D9AE:
+ ldr r0, [r4, #0xc]
+ add r1, r6, #0
+ bl MOD08_022124D8
+ mov r1, #1
+ str r0, [r5, #0x18]
+ bl FUN_0200C90C
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #4
+ blt _0221D9AE
+ ldr r0, [r4, #0xc]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD08_02227470
+ cmp r0, #3
+ ldr r0, [r4, #0x18]
+ bne _0221DA9E
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x20]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x24]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x18]
+ add r1, r7, #0
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x1c]
+ add r1, r7, #0
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x20]
+ add r1, r7, #0
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x24]
+ add r1, r7, #0
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x18]
+ ldr r0, [r0]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ ldr r0, [r4, #0xc]
+ bl MOD08_02215504
+ add r6, r0, #0
+ ldr r0, [sp, #0x18]
+ bl MOD08_02212014
+ add r3, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ lsl r0, r5, #0x14
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ ldr r1, [sp, #0x1c]
+ ldr r2, [sp, #0x20]
+ add r0, r6, #0
+ bl FUN_02003B40
+ ldr r0, [r4, #0x20]
+ ldr r0, [r0]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ ldr r0, [r4, #0xc]
+ bl MOD08_02215504
+ add r6, r0, #0
+ ldr r0, [sp, #0x18]
+ bl MOD08_02212014
+ add r3, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ lsl r0, r5, #0x14
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ mov r0, #0xc4
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ ldr r1, [sp, #0x1c]
+ ldr r2, [sp, #0x20]
+ add r0, r6, #0
+ bl FUN_02003B40
+ b _0221DB80
+_0221DA9E:
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x20]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x24]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x18]
+ add r1, r7, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x1c]
+ add r1, r7, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x20]
+ add r1, r7, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x24]
+ add r1, r7, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x18]
+ add r1, r7, #0
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x1c]
+ add r1, r7, #0
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x20]
+ add r1, r7, #0
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x24]
+ add r1, r7, #0
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x18]
+ ldr r0, [r0]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ ldr r0, [r4, #0xc]
+ bl MOD08_02215504
+ add r6, r0, #0
+ ldr r0, [sp, #0x18]
+ bl MOD08_02212014
+ add r3, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ lsl r0, r5, #0x14
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ mov r0, #0xc4
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ ldr r1, [sp, #0x1c]
+ ldr r2, [sp, #0x20]
+ add r0, r6, #0
+ bl FUN_02003B40
+ ldr r0, [r4, #0x20]
+ ldr r0, [r0]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ ldr r0, [r4, #0xc]
+ bl MOD08_02215504
+ add r6, r0, #0
+ ldr r0, [sp, #0x18]
+ bl MOD08_02212014
+ add r3, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ lsl r0, r5, #0x14
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ ldr r1, [sp, #0x1c]
+ ldr r2, [sp, #0x20]
+ add r0, r6, #0
+ bl FUN_02003B40
+_0221DB80:
+ ldr r0, [r4, #0xc]
+ ldr r1, _0221DB94 ; =MOD08_0221D74C
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0221DB90: .word 0x04000052
+_0221DB94: .word MOD08_0221D74C
+
+ thumb_func_start MOD08_0221DB98
+MOD08_0221DB98: ; 0x0221DB98
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _0221DBAA
+ cmp r0, #1
+ beq _0221DC04
+ b _0221DC44
+_0221DBAA:
+ ldrb r1, [r4, #2]
+ ldr r5, _0221DC54 ; =0x0222C531
+ mov r2, #0x64
+ lsl r0, r1, #1
+ add r3, r1, r0
+ ldr r0, _0221DC58 ; =0x0222C532
+ ldr r1, _0221DC5C ; =0x0222C530
+ ldrb r0, [r0, r3]
+ ldrb r1, [r1, r3]
+ ldrb r3, [r5, r3]
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0xc
+ bl MOD08_02218120
+ ldrb r0, [r4, #2]
+ cmp r0, #0
+ ldr r0, _0221DC60 ; =0x00007FFF
+ bne _0221DBE0
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, [r4, #8]
+ mov r2, #6
+ add r3, r1, #0
+ bl FUN_02007E68
+ b _0221DBEE
+_0221DBE0:
+ str r0, [sp]
+ mov r2, #0
+ ldr r0, [r4, #8]
+ mov r1, #6
+ add r3, r2, #0
+ bl FUN_02007E68
+_0221DBEE:
+ ldrb r1, [r4, #2]
+ mov r0, #1
+ eor r0, r1
+ strb r0, [r4, #2]
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_0221DC04:
+ add r0, r4, #0
+ add r0, #0xc
+ bl MOD08_02218170
+ cmp r0, #0
+ bne _0221DC2C
+ ldr r0, [r4, #8]
+ bl FUN_02007F20
+ cmp r0, #0
+ bne _0221DC2C
+ ldrb r0, [r4, #1]
+ cmp r0, #4
+ ldrb r0, [r4]
+ bhs _0221DC28
+ sub r0, r0, #1
+ strb r0, [r4]
+ b _0221DC2C
+_0221DC28:
+ add r0, r0, #1
+ strb r0, [r4]
+_0221DC2C:
+ mov r1, #0xc
+ ldrsh r2, [r4, r1]
+ ldr r0, [r4, #8]
+ bl FUN_02007558
+ mov r2, #0xe
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #8]
+ mov r1, #0xd
+ bl FUN_02007558
+ pop {r3, r4, r5, pc}
+_0221DC44:
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221DC54: .word 0x0222C531
+_0221DC58: .word 0x0222C532
+_0221DC5C: .word 0x0222C530
+_0221DC60: .word 0x00007FFF
+
+ thumb_func_start MOD08_0221DC64
+MOD08_0221DC64: ; 0x0221DC64
+ push {r3, r4, r5, lr}
+ mov r1, #0x30
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4]
+ strb r0, [r4, #2]
+ strb r0, [r4, #1]
+ str r5, [r4, #4]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ ldr r1, _0221DC98 ; =MOD08_0221DB98
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ nop
+_0221DC98: .word MOD08_0221DB98
+
+ thumb_func_start MOD08_0221DC9C
+MOD08_0221DC9C: ; 0x0221DC9C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _0221DCB0
+ cmp r0, #1
+ beq _0221DCEA
+ b _0221DD42
+_0221DCB0:
+ ldrb r1, [r4, #1]
+ ldr r2, _0221DD54 ; =0x0222C578
+ ldr r5, _0221DD58 ; =0x0222C579
+ lsl r0, r1, #2
+ add r3, r1, r0
+ ldr r0, _0221DD5C ; =0x0222C57A
+ ldr r1, _0221DD60 ; =0x0222C577
+ ldrb r0, [r0, r3]
+ ldrb r1, [r1, r3]
+ ldrb r2, [r2, r3]
+ str r0, [sp]
+ mov r0, #0x64
+ str r0, [sp, #4]
+ ldr r0, _0221DD64 ; =0x0222C57B
+ ldrb r0, [r0, r3]
+ ldrb r3, [r5, r3]
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_022181A8
+ ldrb r0, [r4, #1]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0221DCEA:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02218224
+ cmp r0, #0
+ bne _0221DD08
+ ldrb r0, [r4, #1]
+ cmp r0, #3
+ ldrb r0, [r4]
+ bhs _0221DD04
+ sub r0, r0, #1
+ strb r0, [r4]
+ b _0221DD08
+_0221DD04:
+ add r0, r0, #1
+ strb r0, [r4]
+_0221DD08:
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #2
+ mov r1, #4
+ ldrsh r0, [r4, r0]
+ ldrsh r1, [r4, r1]
+ ldr r2, [r4, #0x24]
+ bl MOD08_0221828C
+ mov r2, #2
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ add sp, #0xc
+ pop {r4, r5, pc}
+_0221DD42:
+ ldr r0, [r4, #8]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_0221DD54: .word 0x0222C578
+_0221DD58: .word 0x0222C579
+_0221DD5C: .word 0x0222C57A
+_0221DD60: .word 0x0222C577
+_0221DD64: .word 0x0222C57B
+
+ thumb_func_start MOD08_0221DD68
+MOD08_0221DD68: ; 0x0221DD68
+ push {r3, r4, r5, lr}
+ mov r1, #0x34
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4]
+ strb r0, [r4, #1]
+ str r5, [r4, #8]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #2]
+ ldr r0, [r4, #8]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_0221552C
+ strh r0, [r4, #4]
+ ldr r0, [r4, #8]
+ ldr r1, _0221DDB0 ; =MOD08_0221DC9C
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221DDB0: .word MOD08_0221DC9C
+
+ thumb_func_start MOD08_0221DDB4
+MOD08_0221DDB4: ; 0x0221DDB4
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #5
+ bls _0221DDC4
+ b _0221DF24
+_0221DDC4:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221DDD0: ; jump table
+ .short _0221DDDC - _0221DDD0 - 2 ; case 0
+ .short _0221DE16 - _0221DDD0 - 2 ; case 1
+ .short _0221DE58 - _0221DDD0 - 2 ; case 2
+ .short _0221DE82 - _0221DDD0 - 2 ; case 3
+ .short _0221DEA4 - _0221DDD0 - 2 ; case 4
+ .short _0221DEE2 - _0221DDD0 - 2 ; case 5
+_0221DDDC:
+ ldrb r1, [r4, #1]
+ ldr r2, _0221DF64 ; =0x0222C550
+ ldr r5, _0221DF68 ; =0x0222C551
+ lsl r0, r1, #2
+ add r3, r1, r0
+ ldr r0, _0221DF6C ; =0x0222C552
+ ldr r1, _0221DF70 ; =0x0222C54F
+ ldrb r0, [r0, r3]
+ ldrb r1, [r1, r3]
+ ldrb r2, [r2, r3]
+ str r0, [sp]
+ mov r0, #0x64
+ str r0, [sp, #4]
+ ldr r0, _0221DF74 ; =0x0222C553
+ ldrb r0, [r0, r3]
+ ldrb r3, [r5, r3]
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_022181A8
+ ldrb r0, [r4, #1]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0221DE16:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02218224
+ cmp r0, #0
+ bne _0221DE28
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221DE28:
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #2
+ mov r2, #6
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ ldr r3, [r4, #0x24]
+ bl MOD08_022182DC
+ add sp, #0xc
+ pop {r4, r5, pc}
+_0221DE58:
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ mov r1, #0
+ add r3, r0, #0
+ lsl r3, r3, #0x10
+ str r1, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x10
+ add r2, r1, #0
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0221DE82:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02217ECC
+ cmp r0, #0
+ bne _0221DE94
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221DE94:
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_02007558
+ add sp, #0xc
+ pop {r4, r5, pc}
+_0221DEA4:
+ ldrb r1, [r4, #1]
+ ldr r2, _0221DF64 ; =0x0222C550
+ ldr r5, _0221DF68 ; =0x0222C551
+ lsl r0, r1, #2
+ add r3, r1, r0
+ ldr r0, _0221DF6C ; =0x0222C552
+ ldr r1, _0221DF70 ; =0x0222C54F
+ ldrb r0, [r0, r3]
+ ldrb r1, [r1, r3]
+ ldrb r2, [r2, r3]
+ str r0, [sp]
+ mov r0, #0x64
+ str r0, [sp, #4]
+ ldr r0, _0221DF74 ; =0x0222C553
+ ldrb r0, [r0, r3]
+ ldrb r3, [r5, r3]
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_022181A8
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #2]
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0221DEE2:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02218224
+ cmp r0, #0
+ bne _0221DEF4
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221DEF4:
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #1
+ str r0, [sp]
+ mov r1, #2
+ mov r2, #6
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ ldr r3, [r4, #0x24]
+ bl MOD08_022182DC
+ add sp, #0xc
+ pop {r4, r5, pc}
+_0221DF24:
+ mov r2, #4
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_02007558
+ ldr r0, [r4, #0xc]
+ mov r1, #6
+ mov r2, #1
+ bl FUN_02007558
+ mov r1, #0xc
+ add r2, r1, #0
+ ldr r0, [r4, #0xc]
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #0xc]
+ add r2, #0xf3
+ bl FUN_02007558
+ ldr r0, [r4, #8]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_0221DF64: .word 0x0222C550
+_0221DF68: .word 0x0222C551
+_0221DF6C: .word 0x0222C552
+_0221DF70: .word 0x0222C54F
+_0221DF74: .word 0x0222C553
+
+ thumb_func_start MOD08_0221DF78
+MOD08_0221DF78: ; 0x0221DF78
+ push {r3, r4, r5, lr}
+ mov r1, #0x34
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4]
+ strb r0, [r4, #1]
+ str r5, [r4, #8]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #2]
+ mov r0, #2
+ ldrsh r0, [r4, r0]
+ strh r0, [r4, #4]
+ ldr r0, [r4, #8]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_0221552C
+ strh r0, [r4, #6]
+ ldr r0, [r4, #8]
+ ldr r1, _0221DFC8 ; =MOD08_0221DDB4
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ nop
+_0221DFC8: .word MOD08_0221DDB4
+
+ thumb_func_start MOD08_0221DFCC
+MOD08_0221DFCC: ; 0x0221DFCC
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #4
+ bhi _0221E0B6
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221DFE6: ; jump table
+ .short _0221DFF0 - _0221DFE6 - 2 ; case 0
+ .short _0221E02A - _0221DFE6 - 2 ; case 1
+ .short _0221E048 - _0221DFE6 - 2 ; case 2
+ .short _0221E05E - _0221DFE6 - 2 ; case 3
+ .short _0221E098 - _0221DFE6 - 2 ; case 4
+_0221DFF0:
+ ldr r0, [r4, #8]
+ bl MOD08_02214540
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, _0221E0C8 ; =0x00007FFF
+ mov r1, #1
+ str r0, [sp, #8]
+ lsl r2, r2, #0x10
+ ldr r0, [r4, #4]
+ lsr r2, r2, #0x10
+ sub r3, r1, #3
+ bl FUN_02003210
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, [r4, #0x10]
+ mov r2, #0x10
+ add r3, r1, #0
+ bl FUN_02007E68
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221E02A:
+ ldr r0, [r4, #4]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0221E0C4
+ ldr r0, [r4, #0x10]
+ bl FUN_02007F20
+ cmp r0, #0
+ bne _0221E0C4
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221E048:
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4, #1]
+ cmp r0, #5
+ bls _0221E0C4
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221E05E:
+ ldr r0, [r4, #8]
+ bl MOD08_02214540
+ add r2, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _0221E0C8 ; =0x00007FFF
+ mov r1, #1
+ str r0, [sp, #8]
+ lsl r2, r2, #0x10
+ ldr r0, [r4, #4]
+ lsr r2, r2, #0x10
+ sub r3, r1, #3
+ bl FUN_02003210
+ mov r2, #0
+ str r2, [sp]
+ ldr r0, [r4, #0x10]
+ mov r1, #0x10
+ add r3, r2, #0
+ bl FUN_02007E68
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221E098:
+ ldr r0, [r4, #4]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0221E0C4
+ ldr r0, [r4, #0x10]
+ bl FUN_02007F20
+ cmp r0, #0
+ bne _0221E0C4
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221E0B6:
+ ldr r0, [r4, #8]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_0221E0C4:
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_0221E0C8: .word 0x00007FFF
+
+ thumb_func_start MOD08_0221E0CC
+MOD08_0221E0CC: ; 0x0221E0CC
+ push {r3, r4, r5, lr}
+ mov r1, #0x14
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4, #8]
+ add r0, r5, #0
+ bl MOD08_02215504
+ str r0, [r4, #4]
+ ldr r0, [r4, #8]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_022154D4
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #8]
+ ldr r1, _0221E100 ; =MOD08_0221DFCC
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ nop
+_0221E100: .word MOD08_0221DFCC
+
+ thumb_func_start MOD08_0221E104
+MOD08_0221E104: ; 0x0221E104
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _0221E118
+ cmp r0, #1
+ beq _0221E184
+ b _0221E1F8
+_0221E118:
+ ldrb r1, [r4, #1]
+ ldr r2, _0221E20C ; =0x0222C55A
+ ldr r5, _0221E210 ; =0x0222C55B
+ lsl r0, r1, #2
+ add r3, r1, r0
+ ldr r0, _0221E214 ; =0x0222C55C
+ ldr r1, _0221E218 ; =0x0222C559
+ ldrb r0, [r0, r3]
+ ldrb r1, [r1, r3]
+ ldrb r2, [r2, r3]
+ str r0, [sp]
+ mov r0, #0x64
+ str r0, [sp, #4]
+ ldr r0, _0221E21C ; =0x0222C55D
+ ldrb r0, [r0, r3]
+ ldrb r3, [r5, r3]
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_022181A8
+ ldrb r1, [r4, #1]
+ ldr r6, _0221E220 ; =0x0222C53C
+ lsl r0, r1, #1
+ add r5, r1, r0
+ mov r0, #4
+ ldrsh r3, [r4, r0]
+ ldr r0, _0221E224 ; =0x0222C53D
+ mov r1, #0
+ ldrb r0, [r0, r5]
+ add r2, r1, #0
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, _0221E228 ; =0x0222C53E
+ ldrb r0, [r0, r5]
+ ldrb r5, [r6, r5]
+ str r0, [sp, #4]
+ add r3, r3, r5
+ add r0, r4, #0
+ lsl r3, r3, #0x10
+ add r0, #0x34
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ ldrb r0, [r4, #1]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0221E184:
+ add r0, r4, #0
+ add r0, #0x10
+ mov r5, #0
+ bl MOD08_02218224
+ cmp r0, #0
+ bne _0221E194
+ add r5, r5, #1
+_0221E194:
+ add r0, r4, #0
+ add r0, #0x34
+ bl MOD08_02217ECC
+ cmp r0, #0
+ bne _0221E1A2
+ add r5, r5, #1
+_0221E1A2:
+ cmp r5, #2
+ blt _0221E1C8
+ ldrb r0, [r4, #1]
+ cmp r0, #3
+ blo _0221E1C4
+ ldrb r0, [r4, #2]
+ add r0, r0, #1
+ strb r0, [r4, #2]
+ mov r0, #0
+ strb r0, [r4, #1]
+ ldrb r0, [r4, #2]
+ cmp r0, #3
+ blo _0221E1C8
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221E1C8
+_0221E1C4:
+ mov r0, #0
+ strb r0, [r4]
+_0221E1C8:
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0x36
+ mov r2, #6
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ ldr r3, [r4, #0x24]
+ bl MOD08_022182DC
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+_0221E1F8:
+ ldr r0, [r4, #8]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_0221E20C: .word 0x0222C55A
+_0221E210: .word 0x0222C55B
+_0221E214: .word 0x0222C55C
+_0221E218: .word 0x0222C559
+_0221E21C: .word 0x0222C55D
+_0221E220: .word 0x0222C53C
+_0221E224: .word 0x0222C53D
+_0221E228: .word 0x0222C53E
+
+ thumb_func_start MOD08_0221E22C
+MOD08_0221E22C: ; 0x0221E22C
+ push {r3, r4, r5, lr}
+ mov r1, #0x58
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4]
+ strb r0, [r4, #1]
+ str r5, [r4, #8]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #4]
+ ldr r0, [r4, #8]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_0221552C
+ strh r0, [r4, #6]
+ ldr r0, [r4, #8]
+ ldr r1, _0221E274 ; =MOD08_0221E104
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221E274: .word MOD08_0221E104
+
+ thumb_func_start MOD08_0221E278
+MOD08_0221E278: ; 0x0221E278
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _0221E28E
+ cmp r0, #1
+ beq _0221E2A6
+ cmp r0, #2
+ beq _0221E2C6
+ b _0221E308
+_0221E28E:
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4, #1]
+ cmp r0, #0xa
+ blo _0221E324
+ mov r0, #0
+ strb r0, [r4, #1]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221E324
+_0221E2A6:
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r0, [r4, #0x10]
+ mov r1, #2
+ bl FUN_0200C90C
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221E324
+_0221E2C6:
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4, #1]
+ cmp r0, #0xa
+ blo _0221E324
+ ldr r0, _0221E338 ; =0x0400004A
+ mov r1, #0x3f
+ ldrh r2, [r0]
+ bic r2, r1
+ mov r1, #0x1f
+ orr r2, r1
+ strh r2, [r0]
+ ldrh r3, [r0]
+ ldr r2, _0221E33C ; =0xFFFFC0FF
+ lsl r1, r1, #8
+ and r2, r3
+ orr r1, r2
+ strh r1, [r0]
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200C644
+ mov r0, #0
+ strb r0, [r4, #1]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221E324
+_0221E308:
+ mov r3, #1
+ lsl r3, r3, #0x1a
+ ldr r1, [r3]
+ ldr r0, _0221E340 ; =0xFFFF1FFF
+ and r0, r1
+ str r0, [r3]
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+_0221E324:
+ ldr r0, [r4, #0xc]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x10]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ pop {r4, pc}
+ .align 2, 0
+_0221E338: .word 0x0400004A
+_0221E33C: .word 0xFFFFC0FF
+_0221E340: .word 0xFFFF1FFF
+
+ thumb_func_start MOD08_0221E344
+MOD08_0221E344: ; 0x0221E344
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ mov r1, #0x14
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4, #4]
+ add r0, r5, #0
+ bl MOD08_02212504
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl MOD08_022124D8
+ str r0, [r4, #0x10]
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ ldr r1, _0221E41C ; =0xFFFF1FFF
+ and r2, r1
+ lsr r1, r0, #0xb
+ orr r1, r2
+ str r1, [r0]
+ add r0, #0x4a
+ ldrh r2, [r0]
+ mov r1, #0x3f
+ bic r2, r1
+ mov r1, #0x1f
+ orr r1, r2
+ strh r1, [r0]
+ ldrh r2, [r0]
+ ldr r1, _0221E420 ; =0xFFFFC0FF
+ and r2, r1
+ mov r1, #0x12
+ lsl r1, r1, #8
+ orr r1, r2
+ strh r1, [r0]
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_0221550C
+ add r7, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_0221551C
+ str r0, [sp, #0x18]
+ ldr r0, [r4, #0xc]
+ ldr r0, [r0]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ add r6, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02215504
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ bl MOD08_02212014
+ add r3, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r1, #0x20
+ lsl r0, r6, #0x14
+ str r1, [sp, #4]
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ add r1, #0xe0
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x10]
+ str r1, [sp, #0x14]
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ add r2, r7, #0
+ bl FUN_02003B40
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #4]
+ ldr r1, _0221E424 ; =MOD08_0221E278
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221E41C: .word 0xFFFF1FFF
+_0221E420: .word 0xFFFFC0FF
+_0221E424: .word MOD08_0221E278
+
+ thumb_func_start MOD08_0221E428
+MOD08_0221E428: ; 0x0221E428
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #3
+ bls _0221E438
+ b _0221E61A
+_0221E438:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221E444: ; jump table
+ .short _0221E44C - _0221E444 - 2 ; case 0
+ .short _0221E45E - _0221E444 - 2 ; case 1
+ .short _0221E576 - _0221E444 - 2 ; case 2
+ .short _0221E5AE - _0221E444 - 2 ; case 3
+_0221E44C:
+ ldr r0, [r4, #0xc]
+ mov r1, #0xe
+ mov r2, #1
+ bl FUN_02007558
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221E636
+_0221E45E:
+ mov r0, #0
+ add r6, r4, #0
+ ldr r7, _0221E640 ; =0x0222C52C
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ add r5, r4, #0
+ add r6, #0x20
+_0221E46C:
+ ldrb r0, [r5, #0x18]
+ cmp r0, #0
+ beq _0221E478
+ cmp r0, #1
+ beq _0221E4A6
+ b _0221E4F4
+_0221E478:
+ ldrb r0, [r5, #0x19]
+ add r0, r0, #1
+ strb r0, [r5, #0x19]
+ ldrb r1, [r5, #0x19]
+ ldrb r0, [r7]
+ cmp r1, r0
+ blo _0221E4FA
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #0x64
+ str r0, [sp, #4]
+ mov r0, #5
+ mov r1, #0x64
+ str r0, [sp, #8]
+ add r0, r6, #0
+ mov r2, #5
+ add r3, r1, #0
+ bl MOD08_022181A8
+ ldrb r0, [r5, #0x18]
+ add r0, r0, #1
+ strb r0, [r5, #0x18]
+ b _0221E4FA
+_0221E4A6:
+ add r0, r6, #0
+ bl MOD08_02218224
+ cmp r0, #0
+ bne _0221E4B8
+ ldrb r0, [r5, #0x18]
+ add r0, r0, #1
+ strb r0, [r5, #0x18]
+ b _0221E4FA
+_0221E4B8:
+ add r0, r6, #0
+ add r1, sp, #0x28
+ add r2, sp, #0x24
+ bl MOD08_0221825C
+ mov r0, #8
+ ldrsb r0, [r4, r0]
+ bl _fflt
+ add r1, r0, #0
+ ldr r0, [sp, #0x28]
+ bl _fmul
+ add r1, r0, #0
+ ldr r0, [r5, #0x1c]
+ ldr r2, [sp, #0x24]
+ bl FUN_0200C884
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #2
+ ldr r2, [r4, #4]
+ ldrsh r1, [r4, r1]
+ lsl r2, r2, #0x10
+ ldr r0, [r5, #0x1c]
+ ldr r3, [r5, #0x34]
+ asr r2, r2, #0x10
+ bl MOD08_02218314
+ b _0221E4FA
+_0221E4F4:
+ ldr r0, [sp, #0x10]
+ add r0, r0, #1
+ str r0, [sp, #0x10]
+_0221E4FA:
+ ldr r0, [r5, #0x1c]
+ bl FUN_0200C5A8
+ ldr r0, [sp, #0x14]
+ add r5, #0x2c
+ add r0, r0, #1
+ add r7, r7, #1
+ add r6, #0x2c
+ str r0, [sp, #0x14]
+ cmp r0, #3
+ blt _0221E46C
+ ldr r0, [sp, #0x10]
+ cmp r0, #3
+ bge _0221E518
+ b _0221E636
+_0221E518:
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4, #1]
+ cmp r0, #3
+ bhs _0221E56E
+ mov r6, #0
+ add r5, r4, #0
+ add r7, r6, #0
+_0221E52A:
+ add r1, sp, #0x18
+ ldr r0, [r5, #0x1c]
+ add r1, #2
+ add r2, sp, #0x18
+ bl FUN_0200C7A0
+ add r2, sp, #0x18
+ mov r1, #2
+ ldrsh r1, [r2, r1]
+ mov r2, #2
+ ldrsh r2, [r4, r2]
+ ldr r0, [r5, #0x1c]
+ bl FUN_0200C714
+ mov r0, #8
+ ldrsb r0, [r4, r0]
+ bl _fflt
+ add r1, r0, #0
+ mov r2, #0xfe
+ ldr r0, [r5, #0x1c]
+ lsl r2, r2, #0x16
+ bl FUN_0200C884
+ strb r7, [r5, #0x18]
+ strb r7, [r5, #0x19]
+ add r6, r6, #1
+ add r5, #0x2c
+ cmp r6, #3
+ blt _0221E52A
+ ldrb r0, [r4]
+ sub r0, r0, #1
+ strb r0, [r4]
+ b _0221E636
+_0221E56E:
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221E636
+_0221E576:
+ add r5, r4, #0
+ mov r7, #0
+ add r6, r4, #0
+ add r5, #0x20
+_0221E57E:
+ ldr r0, [r6, #0x1c]
+ mov r1, #0
+ bl FUN_0200C90C
+ mov r0, #0x64
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #5
+ mov r1, #5
+ str r0, [sp, #8]
+ add r0, r5, #0
+ mov r2, #0x64
+ add r3, r1, #0
+ bl MOD08_022181A8
+ add r7, r7, #1
+ add r6, #0x2c
+ add r5, #0x2c
+ cmp r7, #3
+ blt _0221E57E
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221E636
+_0221E5AE:
+ mov r7, #0
+ add r6, r4, #0
+ str r7, [sp, #0xc]
+ add r6, #0x20
+ add r5, r4, #0
+_0221E5B8:
+ add r0, r6, #0
+ bl MOD08_02218224
+ cmp r0, #0
+ bne _0221E5C6
+ add r7, r7, #1
+ b _0221E600
+_0221E5C6:
+ add r0, r6, #0
+ add r1, sp, #0x20
+ add r2, sp, #0x1c
+ bl MOD08_0221825C
+ mov r0, #8
+ ldrsb r0, [r4, r0]
+ bl _fflt
+ add r1, r0, #0
+ ldr r0, [sp, #0x20]
+ bl _fmul
+ add r1, r0, #0
+ ldr r0, [r5, #0x1c]
+ ldr r2, [sp, #0x1c]
+ bl FUN_0200C884
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #2
+ ldr r2, [r4, #4]
+ ldrsh r1, [r4, r1]
+ lsl r2, r2, #0x10
+ ldr r0, [r5, #0x1c]
+ ldr r3, [r5, #0x34]
+ asr r2, r2, #0x10
+ bl MOD08_02218314
+_0221E600:
+ ldr r0, [sp, #0xc]
+ add r6, #0x2c
+ add r0, r0, #1
+ add r5, #0x2c
+ str r0, [sp, #0xc]
+ cmp r0, #3
+ blt _0221E5B8
+ cmp r7, #3
+ blt _0221E636
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221E636
+_0221E61A:
+ ldr r0, [r4, #0xc]
+ mov r1, #0xe
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #0x10]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+_0221E636:
+ ldr r0, [r4, #0x14]
+ bl FUN_0200BC1C
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221E640: .word 0x0222C52C
+
+ thumb_func_start MOD08_0221E644
+MOD08_0221E644: ; 0x0221E644
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x9c
+ str r0, [sp]
+ bl MOD08_02228064
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4]
+ strb r0, [r4, #1]
+ ldr r0, [sp]
+ str r0, [r4, #0x10]
+ bl MOD08_02212504
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #0x10]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0x10]
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0x29
+ bl FUN_0200782C
+ mov r1, #2
+ ldrsh r1, [r4, r1]
+ sub r0, r1, r0
+ strh r0, [r4, #2]
+ ldr r0, [r4, #0x10]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0x10]
+ bl MOD08_0221552C
+ mov r1, #0
+ str r0, [r4, #4]
+ mvn r1, r1
+ ldr r0, [r4, #0x10]
+ add r2, r1, #0
+ bl MOD08_02227994
+ mov r6, #0
+ ldr r1, _0221E720 ; =0x0000060C
+ ldr r0, _0221E724 ; =0x04000052
+ add r5, r4, #0
+ strh r1, [r0]
+ add r7, r6, #0
+_0221E6B0:
+ strb r7, [r5, #0x18]
+ strb r7, [r5, #0x19]
+ ldr r0, [r4, #0x10]
+ add r1, r6, #0
+ bl MOD08_022124D8
+ str r0, [r5, #0x1c]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r5, #0x1c]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r5, #0x1c]
+ add r1, r6, #1
+ bl FUN_0200C6C4
+ add r6, r6, #1
+ add r5, #0x2c
+ cmp r6, #3
+ blt _0221E6B0
+ ldr r0, [sp]
+ mov r1, #0
+ bl MOD08_02215680
+ cmp r0, #1
+ bne _0221E6EE
+ mov r0, #0
+ mvn r0, r0
+ b _0221E6F0
+_0221E6EE:
+ mov r0, #1
+_0221E6F0:
+ strb r0, [r4, #8]
+ mov r6, #0
+ add r5, r4, #0
+ mov r7, #8
+_0221E6F8:
+ ldrsb r0, [r4, r7]
+ bl _fflt
+ add r1, r0, #0
+ mov r2, #0xfe
+ ldr r0, [r5, #0x1c]
+ lsl r2, r2, #0x16
+ bl FUN_0200C884
+ add r6, r6, #1
+ add r5, #0x2c
+ cmp r6, #3
+ blt _0221E6F8
+ ldr r0, [r4, #0x10]
+ ldr r1, _0221E728 ; =MOD08_0221E428
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221E720: .word 0x0000060C
+_0221E724: .word 0x04000052
+_0221E728: .word MOD08_0221E428
+
+ thumb_func_start MOD08_0221E72C
+MOD08_0221E72C: ; 0x0221E72C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #3
+ bls _0221E73C
+ b _0221E866
+_0221E73C:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221E748: ; jump table
+ .short _0221E750 - _0221E748 - 2 ; case 0
+ .short _0221E782 - _0221E748 - 2 ; case 1
+ .short _0221E796 - _0221E748 - 2 ; case 2
+ .short _0221E7F2 - _0221E748 - 2 ; case 3
+_0221E750:
+ ldr r0, [r4, #0xc]
+ bl MOD08_02215504
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD08_02214540
+ add r2, r0, #0
+ mov r1, #0
+ lsl r2, r2, #0x10
+ str r1, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #1
+ add r0, r5, #0
+ lsr r2, r2, #0x10
+ add r3, r1, #0
+ bl FUN_02003210
+ ldrb r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, r7, pc}
+_0221E782:
+ ldr r0, [r4, #0xc]
+ bl MOD08_02215504
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0221E874
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221E796:
+ mov r0, #5
+ str r0, [sp]
+ ldrb r1, [r4, #1]
+ add r0, r4, #0
+ add r0, #0xb4
+ lsl r2, r1, #1
+ ldr r1, _0221E878 ; =0x0222C586
+ ldrsh r1, [r1, r2]
+ mov r2, #0
+ add r3, r2, #0
+ bl MOD08_022183C0
+ ldrb r0, [r4, #2]
+ cmp r0, #0
+ ldr r0, [r4, #0xc]
+ bne _0221E7C8
+ bl MOD08_02215504
+ mov r1, #0
+ mov r2, #0xff
+ mov r3, #0xa
+ str r1, [sp]
+ bl FUN_02003A64
+ b _0221E7DA
+_0221E7C8:
+ bl MOD08_02215504
+ ldr r1, _0221E87C ; =0x00007FFF
+ mov r2, #0xff
+ str r1, [sp]
+ mov r1, #0
+ mov r3, #0xa
+ bl FUN_02003A64
+_0221E7DA:
+ mov r0, #3
+ strb r0, [r4, #3]
+ ldrb r1, [r4, #2]
+ mov r0, #1
+ eor r0, r1
+ strb r0, [r4, #2]
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221E7F2:
+ add r0, r4, #0
+ add r0, #0xb4
+ bl MOD08_022183F0
+ cmp r0, #0
+ bne _0221E810
+ ldrb r0, [r4, #1]
+ cmp r0, #8
+ ldrb r0, [r4]
+ blo _0221E80C
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221E810
+_0221E80C:
+ sub r0, r0, #1
+ strb r0, [r4]
+_0221E810:
+ ldrb r0, [r4, #3]
+ cmp r0, #0
+ beq _0221E832
+ sub r0, r0, #1
+ strb r0, [r4, #3]
+ ldrb r0, [r4, #3]
+ cmp r0, #0
+ bne _0221E832
+ ldr r0, [r4, #0xc]
+ bl MOD08_02215504
+ mov r1, #0
+ mov r2, #0xff
+ add r3, r1, #0
+ str r1, [sp]
+ bl FUN_02003A64
+_0221E832:
+ mov r6, #0
+ add r5, r4, #0
+ mov r7, #0x14
+_0221E838:
+ ldr r0, [r5, #0x1c]
+ cmp r0, #0
+ beq _0221E84C
+ mov r2, #0xb4
+ ldrsh r3, [r4, r2]
+ ldrsh r2, [r5, r7]
+ mov r1, #0
+ add r2, r3, r2
+ bl FUN_02007558
+_0221E84C:
+ add r6, r6, #1
+ add r5, #0x14
+ cmp r6, #4
+ blt _0221E838
+ mov r3, #0xb4
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #8]
+ mov r1, #3
+ mov r2, #0
+ bl FUN_020179E0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_0221E866:
+ ldr r0, [r4, #0xc]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_0221E874:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221E878: .word 0x0222C586
+_0221E87C: .word 0x00007FFF
+
+ thumb_func_start MOD08_0221E880
+MOD08_0221E880: ; 0x0221E880
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0xd8
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4]
+ strb r0, [r4, #1]
+ str r5, [r4, #0xc]
+ add r0, r5, #0
+ bl MOD08_02212504
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0xc]
+ bl MOD08_02212490
+ str r0, [r4, #8]
+ ldr r0, [r4, #0xc]
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _0221E8B2
+ mov r1, #0x40
+ b _0221E8B4
+_0221E8B2:
+ mov r1, #0xa
+_0221E8B4:
+ add r2, r4, #0
+ add r0, r5, #0
+ add r2, #0x14
+ add r3, r4, #4
+ bl MOD08_02227BAC
+ ldr r0, [r4, #4]
+ mov r6, #0
+ cmp r0, #0
+ ble _0221E8EA
+ add r5, r4, #0
+ add r7, r6, #0
+_0221E8CC:
+ ldr r0, [r5, #0x1c]
+ add r1, r7, #0
+ bl FUN_0200782C
+ strh r0, [r5, #0x14]
+ ldr r0, [r5, #0x1c]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r5, #0x16]
+ ldr r0, [r4, #4]
+ add r6, r6, #1
+ add r5, #0x14
+ cmp r6, r0
+ blt _0221E8CC
+_0221E8EA:
+ ldr r0, [r4, #0xc]
+ ldr r1, _0221E8F8 ; =MOD08_0221E72C
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221E8F8: .word MOD08_0221E72C
+
+ thumb_func_start MOD08_0221E8FC
+MOD08_0221E8FC: ; 0x0221E8FC
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ bne _0221E946
+ add r0, r4, #0
+ add r0, #0x40
+ bl MOD08_02217ECC
+ cmp r0, #0
+ bne _0221E91A
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221E91A:
+ add r0, r4, #0
+ add r0, #0x1c
+ bl MOD08_022183F0
+ add r0, r4, #0
+ add r0, #0x64
+ bl MOD08_02218704
+ mov r1, #0x40
+ mov r2, #0x42
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x18]
+ bl FUN_0200C714
+ ldr r0, [r4, #0x18]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x10]
+ bl FUN_0200BC1C
+ pop {r4, pc}
+_0221E946:
+ ldr r0, [r4, #0xc]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221E958
+MOD08_0221E958: ; 0x0221E958
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ mov r1, #0x8c
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4]
+ strb r0, [r4, #1]
+ str r5, [r4, #0xc]
+ add r0, r5, #0
+ bl MOD08_02212504
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0xc]
+ bl MOD08_02212490
+ str r0, [r4, #8]
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x18]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ ldr r0, [r4, #0xc]
+ bne _0221E99C
+ bl MOD08_02212460
+ b _0221E9A0
+_0221E99C:
+ bl MOD08_02212458
+_0221E9A0:
+ add r6, r0, #0
+ ldr r0, [r4, #0xc]
+ add r1, r6, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0x14]
+ add r1, r4, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4, #0x14]
+ mov r1, #0x29
+ bl FUN_0200782C
+ mov r1, #6
+ ldrsh r1, [r4, r1]
+ sub r0, r1, r0
+ strh r0, [r4, #6]
+ ldr r0, [r4, #0xc]
+ add r1, r6, #0
+ bl MOD08_02217C1C
+ add r7, r0, #0
+ ldr r0, [r4, #0xc]
+ add r1, r6, #0
+ bl MOD08_02217C44
+ add r6, r0, #0
+ mov r0, #6
+ ldrsh r3, [r4, r0]
+ mov r0, #4
+ ldrsh r1, [r4, r0]
+ mov r2, #0x14
+ add r0, r6, #0
+ mul r0, r2
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ str r2, [sp, #4]
+ sub r2, #0x28
+ mul r2, r7
+ add r2, r1, r2
+ add r0, r4, #0
+ lsl r2, r2, #0x10
+ add r0, #0x40
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_022155C4
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_022155C4
+ mov r5, #1
+ add r3, r5, #0
+ lsl r3, r6
+ add r1, r0, #0
+ add r6, r3, #0
+ mov r2, #0x20
+ add r3, r5, #0
+ orr r6, r2
+ lsl r3, r1
+ add r1, r6, #0
+ orr r1, r3
+ sub r2, #0x21
+ ldr r0, [r4, #0xc]
+ orr r1, r5
+ add r3, r2, #0
+ bl MOD08_022279D0
+ mov r1, #0x1f
+ mov r2, #0
+ str r1, [sp]
+ mov r0, #0xf
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x64
+ add r3, r2, #0
+ bl MOD08_022186D4
+ ldr r0, [r4, #0x18]
+ add r1, r5, #0
+ bl FUN_0200C90C
+ ldr r0, [r4, #0xc]
+ ldr r1, _0221EA60 ; =MOD08_0221E8FC
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221EA60: .word MOD08_0221E8FC
+
+ thumb_func_start MOD08_0221EA64
+MOD08_0221EA64: ; 0x0221EA64
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _0221EA76
+ cmp r0, #1
+ beq _0221EAB6
+ b _0221EAE6
+_0221EA76:
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ ldrb r0, [r4, #2]
+ bne _0221EA88
+ lsl r3, r0, #3
+ ldr r0, _0221EB00 ; =0x0222C5B0
+ ldr r2, [r0, r3]
+ neg r1, r2
+ b _0221EA90
+_0221EA88:
+ lsl r3, r0, #3
+ ldr r0, _0221EB00 ; =0x0222C5B0
+ ldr r1, [r0, r3]
+ neg r2, r1
+_0221EA90:
+ ldr r5, _0221EB04 ; =0x0222C5B4
+ add r0, r4, #0
+ ldr r3, [r5, r3]
+ add r0, #0x5c
+ bl MOD08_02218008
+ ldrb r0, [r4, #1]
+ cmp r0, #1
+ bne _0221EAA8
+ ldrb r0, [r4, #2]
+ add r0, r0, #1
+ strb r0, [r4, #2]
+_0221EAA8:
+ ldrb r1, [r4, #1]
+ mov r0, #1
+ eor r0, r1
+ strb r0, [r4, #1]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221EAB6:
+ add r0, r4, #0
+ add r0, #0x5c
+ bl MOD08_02218058
+ cmp r0, #1
+ bne _0221EAD2
+ ldr r2, [r4, #0x5c]
+ ldr r0, [r4, #0x28]
+ lsl r2, r2, #0x10
+ mov r1, #9
+ lsr r2, r2, #0x10
+ bl FUN_02007558
+ pop {r3, r4, r5, pc}
+_0221EAD2:
+ ldrb r0, [r4, #2]
+ cmp r0, #5
+ ldrb r0, [r4]
+ blo _0221EAE0
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_0221EAE0:
+ sub r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_0221EAE6:
+ ldr r0, [r4, #0x28]
+ mov r1, #9
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221EB00: .word 0x0222C5B0
+_0221EB04: .word 0x0222C5B4
+
+ thumb_func_start MOD08_0221EB08
+MOD08_0221EB08: ; 0x0221EB08
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _0221EB1C
+ cmp r0, #1
+ beq _0221EB40
+ b _0221EB6A
+_0221EB1C:
+ mov r0, #0x22
+ ldrsh r0, [r4, r0]
+ mov r1, #0x1c
+ mov r2, #0x1e
+ str r0, [sp]
+ mov r3, #0x20
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ add r0, #0x38
+ bl MOD08_022183C0
+ ldrb r0, [r4]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, pc}
+_0221EB40:
+ ldr r0, [r4, #0x2c]
+ add r1, sp, #4
+ bl MOD08_02227B2C
+ add r0, r4, #0
+ add r3, sp, #4
+ mov r1, #0
+ mov r2, #2
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ ldr r3, [r4, #0x2c]
+ add r0, #0x38
+ bl MOD08_02218454
+ cmp r0, #0
+ bne _0221EB78
+ ldrb r0, [r4]
+ add sp, #8
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, pc}
+_0221EB6A:
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_0221EB78:
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD08_0221EB7C
+MOD08_0221EB7C: ; 0x0221EB7C
+ push {r4, r5, r6, lr}
+ mov r1, #0x70
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x28]
+ mov r1, #0xb
+ mov r2, #0x64
+ bl FUN_02007558
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ strh r0, [r4, #0x1c]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_02212498
+ strh r0, [r4, #0x1e]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD08_02212498
+ strh r0, [r4, #0x20]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD08_02212498
+ strh r0, [r4, #0x22]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD08_02212498
+ str r0, [r4, #0x24]
+ cmp r6, #0
+ ldr r0, [r4, #4]
+ bne _0221EC06
+ ldr r1, _0221EC10 ; =MOD08_0221EA64
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r4, r5, r6, pc}
+_0221EC06:
+ ldr r1, _0221EC14 ; =MOD08_0221EB08
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0221EC10: .word MOD08_0221EA64
+_0221EC14: .word MOD08_0221EB08
+
+ thumb_func_start MOD08_0221EC18
+MOD08_0221EC18: ; 0x0221EC18
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r5]
+ cmp r0, #0
+ beq _0221EC2A
+ cmp r0, #1
+ beq _0221EC4C
+ b _0221ECA0
+_0221EC2A:
+ ldr r2, [r5, #0x48]
+ mov r0, #0xa
+ add r1, r2, #2
+ str r0, [sp]
+ add r0, r5, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ add r0, #0x4c
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ mov r3, #0
+ bl MOD08_022183C0
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_0221EC4C:
+ add r0, r5, #0
+ add r0, #0x4c
+ bl MOD08_022183F0
+ cmp r0, #0
+ bne _0221EC60
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_0221EC60:
+ mov r6, #0
+ add r4, r5, #0
+ mov r7, #0x28
+_0221EC66:
+ ldr r0, [r4, #0x38]
+ cmp r0, #0
+ beq _0221EC7A
+ mov r2, #0x4c
+ ldrsh r3, [r5, r2]
+ ldrsh r2, [r4, r7]
+ mov r1, #0
+ add r2, r3, r2
+ bl FUN_02007558
+_0221EC7A:
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #4
+ blt _0221EC66
+ mov r3, #0x4c
+ ldrsh r3, [r5, r3]
+ ldr r0, [r5, #0x14]
+ mov r1, #3
+ mov r2, #0
+ bl FUN_020179E0
+ mov r3, #0x4e
+ mov r1, #3
+ ldrsh r3, [r5, r3]
+ ldr r0, [r5, #0x14]
+ add r2, r1, #0
+ bl FUN_020179E0
+ pop {r3, r4, r5, r6, r7, pc}
+_0221ECA0:
+ ldr r0, [r5, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0221ECB0
+MOD08_0221ECB0: ; 0x0221ECB0
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x70
+ add r4, r0, #0
+ bl MOD08_02228064
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD08_02227B70
+ ldr r0, [r7, #4]
+ mov r1, #1
+ bl MOD08_02212758
+ cmp r0, #0x46
+ bgt _0221ECE0
+ bge _0221ED02
+ cmp r0, #0x1e
+ bgt _0221ECDA
+ beq _0221ED0E
+ b _0221ED14
+_0221ECDA:
+ cmp r0, #0x32
+ beq _0221ED08
+ b _0221ED14
+_0221ECE0:
+ cmp r0, #0x6e
+ bgt _0221ECEC
+ bge _0221ECF6
+ cmp r0, #0x5a
+ beq _0221ECFC
+ b _0221ED14
+_0221ECEC:
+ cmp r0, #0x96
+ bne _0221ED14
+ mov r0, #6
+ str r0, [r7, #0x48]
+ b _0221ED18
+_0221ECF6:
+ mov r0, #5
+ str r0, [r7, #0x48]
+ b _0221ED18
+_0221ECFC:
+ mov r0, #4
+ str r0, [r7, #0x48]
+ b _0221ED18
+_0221ED02:
+ mov r0, #3
+ str r0, [r7, #0x48]
+ b _0221ED18
+_0221ED08:
+ mov r0, #2
+ str r0, [r7, #0x48]
+ b _0221ED18
+_0221ED0E:
+ mov r0, #1
+ str r0, [r7, #0x48]
+ b _0221ED18
+_0221ED14:
+ mov r0, #0
+ str r0, [r7, #0x48]
+_0221ED18:
+ add r5, r7, #0
+ mov r6, #0
+ add r4, r7, #0
+ add r5, #0x28
+_0221ED20:
+ ldr r0, [r7, #4]
+ add r1, r6, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0x38]
+ cmp r0, #0
+ beq _0221ED34
+ add r1, r5, #0
+ bl MOD08_02227B2C
+_0221ED34:
+ add r6, r6, #1
+ add r4, r4, #4
+ add r5, r5, #4
+ cmp r6, #4
+ blt _0221ED20
+ ldr r0, [r7, #4]
+ ldr r1, _0221ED4C ; =MOD08_0221EC18
+ add r2, r7, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0221ED4C: .word MOD08_0221EC18
+
+ thumb_func_start MOD08_0221ED50
+MOD08_0221ED50: ; 0x0221ED50
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _0221ED64
+ cmp r0, #1
+ beq _0221ED92
+ b _0221EE00
+_0221ED64:
+ mov r0, #0xa
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0x40
+ mov r1, #0x14
+ add r3, r2, #0
+ bl MOD08_022183C0
+ mov r0, #0xa
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0x64
+ mov r1, #2
+ add r3, r2, #0
+ bl MOD08_022183C0
+ ldrb r0, [r4]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, pc}
+_0221ED92:
+ add r0, r4, #0
+ add r0, #0x40
+ bl MOD08_022183F0
+ cmp r0, #0
+ bne _0221EDA6
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221EDF6
+_0221EDA6:
+ mov r1, #0x2c
+ ldrsh r2, [r4, r1]
+ mov r1, #0x40
+ ldrsh r1, [r4, r1]
+ ldr r0, [r4, #0x38]
+ add r1, r2, r1
+ mov r2, #0x2e
+ ldrsh r3, [r4, r2]
+ mov r2, #0x42
+ ldrsh r2, [r4, r2]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add r2, r3, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ mov r1, #0x40
+ ldrsh r2, [r4, r1]
+ mov r1, #0x2c
+ ldrsh r1, [r4, r1]
+ ldr r0, [r4, #0x3c]
+ sub r1, r2, r1
+ mov r2, #0x2e
+ ldrsh r3, [r4, r2]
+ mov r2, #0x42
+ ldrsh r2, [r4, r2]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add r2, r3, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ ldr r0, [r4, #0x38]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x3c]
+ bl FUN_0200C5A8
+_0221EDF6:
+ ldr r0, [r4, #0xc]
+ bl FUN_0200BC1C
+ add sp, #4
+ pop {r3, r4, pc}
+_0221EE00:
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221EE14
+MOD08_0221EE14: ; 0x0221EE14
+ push {r3, r4, r5, lr}
+ mov r1, #0x88
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl MOD08_022124D8
+ str r0, [r4, #0x3c]
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x34]
+ add r1, r4, #0
+ ldr r0, [r4, #0x30]
+ add r1, #0x28
+ bl MOD08_02227B2C
+ add r1, r4, #0
+ ldr r0, [r4, #0x34]
+ add r1, #0x2c
+ bl MOD08_02227B2C
+ ldr r0, [r4, #4]
+ ldr r1, _0221EE7C ; =MOD08_0221ED50
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0221EE7C: .word MOD08_0221ED50
+
+ thumb_func_start MOD08_0221EE80
+MOD08_0221EE80: ; 0x0221EE80
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ ldr r2, [r4, #0x38]
+ add r0, #0x8c
+ add r1, #0xb0
+ bl MOD08_02217FE4
+ cmp r0, #0
+ bne _0221EEAC
+ ldr r0, [r4, #0x38]
+ bl FUN_0200C3DC
+ ldr r0, [r4, #0x14]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl MOD08_02228094
+ pop {r3, r4, r5, pc}
+_0221EEAC:
+ add r0, r4, #0
+ add r0, #0xd4
+ bl MOD08_02218058
+ cmp r0, #1
+ bne _0221EEC8
+ add r1, r4, #0
+ add r1, #0xd4
+ ldr r1, [r1]
+ ldr r0, [r4, #0x38]
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0200C898
+_0221EEC8:
+ ldr r0, [r4, #0x38]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x20]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221EED8
+MOD08_0221EED8: ; 0x0221EED8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ mov r1, #0xe8
+ add r6, r0, #0
+ add r7, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x10
+ bl MOD08_02227B70
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD08_02212498
+ strh r0, [r4, #0xc]
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD08_02212498
+ strh r0, [r4, #0xe]
+ add r0, r6, #0
+ mov r1, #2
+ bl MOD08_02212498
+ str r0, [r4, #4]
+ add r0, r6, #0
+ mov r1, #3
+ bl MOD08_02212498
+ str r0, [r4, #8]
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_02217C1C
+ add r5, r0, #0
+ add r0, r7, #0
+ mov r1, #2
+ str r7, [r4, #0x38]
+ bl FUN_0200C840
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0x44]
+ add r0, r6, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0x58]
+ add r1, r4, #0
+ ldr r0, [r4, #0x44]
+ add r1, #0x40
+ bl MOD08_02227B2C
+ add r1, r4, #0
+ ldr r0, [r4, #0x58]
+ add r1, #0x54
+ bl MOD08_02227B2C
+ mov r0, #0x42
+ ldrsh r0, [r4, r0]
+ mov r3, #0x54
+ str r0, [sp]
+ mov r0, #0x56
+ ldrsh r2, [r4, r0]
+ mov r0, #0xe
+ ldrsh r0, [r4, r0]
+ add r1, r0, #0
+ mul r1, r5
+ add r0, r2, r1
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, [r4, #4]
+ add r1, r4, #0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r0, [r4, #8]
+ mov r2, #0x40
+ lsl r0, r0, #0xc
+ str r0, [sp, #0xc]
+ ldrsh r3, [r4, r3]
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ mov ip, r3
+ mov r3, #0xc
+ ldrsh r3, [r4, r3]
+ add r0, #0x8c
+ add r1, #0xb0
+ add r7, r3, #0
+ mul r7, r5
+ mov r3, ip
+ add r3, r3, r7
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02217F50
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_02215490
+ cmp r0, #4
+ bne _0221EFE0
+ add r0, r6, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_02215490
+ cmp r0, #2
+ bne _0221EFE0
+ mov r0, #0
+ mvn r0, r0
+ mul r5, r0
+_0221EFE0:
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_02215490
+ cmp r0, #5
+ bne _0221F00A
+ add r0, r6, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_02215490
+ cmp r0, #3
+ bne _0221F00A
+ mov r0, #0
+ mvn r0, r0
+ mul r5, r0
+_0221F00A:
+ cmp r5, #0
+ ldr r2, _0221F064 ; =0x00005C71
+ ble _0221F022
+ ldr r1, _0221F068 ; =0x00000E38
+ add r0, r4, #0
+ add r0, #0xd4
+ mul r1, r5
+ mul r2, r5
+ mov r3, #0xa
+ bl MOD08_02218008
+ b _0221F032
+_0221F022:
+ ldr r1, _0221F06C ; =0x00003FFF
+ add r0, r4, #0
+ add r0, #0xd4
+ mul r1, r5
+ mul r2, r5
+ mov r3, #0xa
+ bl MOD08_02218008
+_0221F032:
+ add r1, r4, #0
+ add r1, #0xd4
+ ldr r1, [r1]
+ ldr r0, [r4, #0x38]
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0200C898
+ add r0, r4, #0
+ add r1, r4, #0
+ ldr r2, [r4, #0x38]
+ add r0, #0x8c
+ add r1, #0xb0
+ bl MOD08_02217FE4
+ ldr r0, [r4, #0x38]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x14]
+ ldr r1, _0221F070 ; =MOD08_0221EE80
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221F064: .word 0x00005C71
+_0221F068: .word 0x00000E38
+_0221F06C: .word 0x00003FFF
+_0221F070: .word MOD08_0221EE80
+
+ thumb_func_start MOD08_0221F074
+MOD08_0221F074: ; 0x0221F074
+ push {r4, r5, lr}
+ sub sp, #0x1c
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x18]
+ cmp r0, #3
+ bls _0221F084
+ b _0221F1F0
+_0221F084:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221F090: ; jump table
+ .short _0221F098 - _0221F090 - 2 ; case 0
+ .short _0221F0C8 - _0221F090 - 2 ; case 1
+ .short _0221F168 - _0221F090 - 2 ; case 2
+ .short _0221F17A - _0221F090 - 2 ; case 3
+_0221F098:
+ mov r0, #0x12
+ ldrsh r2, [r4, r0]
+ mov r0, #0x96
+ mov r3, #0x3c
+ str r0, [sp]
+ mov r1, #0x64
+ str r1, [sp, #4]
+ mov r0, #0xc
+ mul r1, r2
+ mul r3, r2
+ lsl r2, r3, #0x10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ add r0, #0x9c
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ mov r3, #5
+ bl MOD08_022181A8
+ ldrb r0, [r4, #0x18]
+ add r0, r0, #1
+ strb r0, [r4, #0x18]
+ b _0221F20E
+_0221F0C8:
+ add r0, r4, #0
+ add r0, #0x9c
+ bl MOD08_02218224
+ cmp r0, #0
+ bne _0221F106
+ mov r0, #0x12
+ ldrsh r2, [r4, r0]
+ mov r0, #0xa
+ mov r1, #0x3c
+ str r0, [sp]
+ mov r0, #0x64
+ str r0, [sp, #4]
+ mov r0, #0xc
+ mul r1, r2
+ str r0, [sp, #8]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ mov r3, #0x96
+ add r5, r2, #0
+ mul r5, r3
+ lsl r2, r5, #0x10
+ add r0, #0x9c
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_022181A8
+ ldrb r0, [r4, #0x18]
+ add r0, r0, #1
+ strb r0, [r4, #0x18]
+ b _0221F20E
+_0221F106:
+ add r0, r4, #0
+ add r0, #0x9c
+ add r1, sp, #0x18
+ add r2, sp, #0x14
+ bl MOD08_0221825C
+ ldr r0, [r4, #0x40]
+ ldr r1, [sp, #0x18]
+ ldr r2, [sp, #0x14]
+ bl FUN_0200C884
+ mov r0, #0x16
+ add r2, r4, #0
+ add r2, #0xb0
+ ldrsh r0, [r4, r0]
+ ldr r2, [r2]
+ mov r1, #0x10
+ bl MOD08_0221828C
+ mov r2, #0x16
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ mov r1, #0x14
+ ldrsh r1, [r4, r1]
+ add r2, r2, r3
+ lsl r2, r2, #0x10
+ ldr r0, [r4, #0x40]
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ ldrb r1, [r4, #0xc]
+ ldrb r0, [r4, #0x10]
+ cmp r1, r0
+ bhs _0221F14E
+ add r0, r1, #1
+ strb r0, [r4, #0xc]
+_0221F14E:
+ ldrb r1, [r4, #0xd]
+ ldrb r0, [r4, #0x11]
+ cmp r1, r0
+ bls _0221F15A
+ sub r0, r1, #1
+ strb r0, [r4, #0xd]
+_0221F15A:
+ ldrb r0, [r4, #0xd]
+ ldrb r1, [r4, #0xc]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221F220 ; =0x04000052
+ strh r1, [r0]
+ b _0221F20E
+_0221F168:
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ cmp r0, #4
+ blt _0221F20E
+ ldrb r0, [r4, #0x18]
+ add r0, r0, #1
+ strb r0, [r4, #0x18]
+ b _0221F20E
+_0221F17A:
+ add r0, r4, #0
+ add r0, #0x9c
+ bl MOD08_02218224
+ cmp r0, #0
+ bne _0221F18E
+ ldrb r0, [r4, #0x18]
+ add r0, r0, #1
+ strb r0, [r4, #0x18]
+ b _0221F20E
+_0221F18E:
+ add r0, r4, #0
+ add r0, #0x9c
+ add r1, sp, #0x10
+ add r2, sp, #0xc
+ bl MOD08_0221825C
+ ldr r0, [r4, #0x40]
+ ldr r1, [sp, #0x10]
+ ldr r2, [sp, #0xc]
+ bl FUN_0200C884
+ mov r0, #0x16
+ add r2, r4, #0
+ add r2, #0xb0
+ ldrsh r0, [r4, r0]
+ ldr r2, [r2]
+ mov r1, #0x10
+ bl MOD08_0221828C
+ mov r2, #0x16
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ mov r1, #0x14
+ ldrsh r1, [r4, r1]
+ add r2, r2, r3
+ lsl r2, r2, #0x10
+ ldr r0, [r4, #0x40]
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ ldrb r1, [r4, #0xc]
+ ldrb r0, [r4, #0xe]
+ cmp r1, r0
+ bls _0221F1D6
+ sub r0, r1, #1
+ strb r0, [r4, #0xc]
+_0221F1D6:
+ ldrb r1, [r4, #0xd]
+ ldrb r0, [r4, #0xf]
+ cmp r1, r0
+ bhs _0221F1E2
+ add r0, r1, #1
+ strb r0, [r4, #0xd]
+_0221F1E2:
+ ldrb r0, [r4, #0xd]
+ ldrb r1, [r4, #0xc]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221F220 ; =0x04000052
+ strh r1, [r0]
+ b _0221F20E
+_0221F1F0:
+ ldr r0, [r4, #0x44]
+ bl FUN_0200C3DC
+ ldr r0, [r4, #0x48]
+ bl FUN_0200C3DC
+ ldr r0, [r4, #0x1c]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl MOD08_02228094
+ add sp, #0x1c
+ pop {r4, r5, pc}
+_0221F20E:
+ ldr r0, [r4, #0x40]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x28]
+ bl FUN_0200BC1C
+ add sp, #0x1c
+ pop {r4, r5, pc}
+ nop
+_0221F220: .word 0x04000052
+
+ thumb_func_start MOD08_0221F224
+MOD08_0221F224: ; 0x0221F224
+ push {r4, r5, lr}
+ sub sp, #0x14
+ mov r1, #0xd4
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x18
+ bl MOD08_02227B70
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_022124B0
+ str r0, [r4, #0x44]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_022124B0
+ mov r1, #0
+ str r0, [r4, #0x48]
+ mvn r1, r1
+ ldr r0, [r4, #0x1c]
+ add r2, r1, #0
+ bl MOD08_02227994
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ mov r1, #0
+ strb r1, [r4, #0xc]
+ mov r0, #0x1f
+ strb r0, [r4, #0xd]
+ strb r1, [r4, #0xe]
+ strb r0, [r4, #0xf]
+ strb r0, [r4, #0x10]
+ mov r0, #4
+ strb r0, [r4, #0x11]
+ add r0, r5, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _0221F2B4
+ ldr r0, [r4, #0x44]
+ mov r1, #0
+ str r0, [r4, #0x40]
+ ldr r0, [r4, #0x48]
+ bl FUN_0200C644
+ ldr r0, [r4, #0x40]
+ mov r1, #0
+ bl FUN_0200C5C0
+ mov r0, #0xb3
+ strh r0, [r4, #0x14]
+ mov r0, #0x78
+ strh r0, [r4, #0x16]
+ add r0, r5, #0
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r4, #0x40]
+ add r1, r1, #1
+ bl FUN_0200C6B0
+ mov r0, #0
+ mvn r0, r0
+ strh r0, [r4, #0x12]
+ b _0221F314
+_0221F2B4:
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _0221F2E4
+ ldr r0, [r4, #0x48]
+ mov r1, #0
+ str r0, [r4, #0x40]
+ ldr r0, [r4, #0x44]
+ bl FUN_0200C644
+ ldr r0, [r4, #0x40]
+ mov r1, #1
+ bl FUN_0200C5C0
+ mov r0, #0x90
+ strh r0, [r4, #0x14]
+ mov r0, #0x40
+ strh r0, [r4, #0x16]
+ b _0221F310
+_0221F2E4:
+ ldr r0, [r4, #0x44]
+ mov r1, #0
+ str r0, [r4, #0x40]
+ ldr r0, [r4, #0x48]
+ bl FUN_0200C644
+ ldr r0, [r4, #0x40]
+ mov r1, #0
+ bl FUN_0200C5C0
+ mov r0, #0x4c
+ strh r0, [r4, #0x14]
+ mov r0, #0x78
+ strh r0, [r4, #0x16]
+ add r0, r5, #0
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r4, #0x40]
+ add r1, r1, #1
+ bl FUN_0200C6B0
+_0221F310:
+ mov r0, #1
+ strh r0, [r4, #0x12]
+_0221F314:
+ mov r1, #0x14
+ mov r2, #0x16
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x40]
+ bl FUN_0200C714
+ ldr r0, [r4, #0x40]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r4, #0x40]
+ mov r1, #1
+ bl FUN_0200C90C
+ mov r0, #0x12
+ ldrsh r0, [r4, r0]
+ mov r3, #0x64
+ add r1, r0, #0
+ mov r0, #5
+ str r0, [sp]
+ mul r1, r3
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ str r3, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x9c
+ add r2, r1, #0
+ bl MOD08_022181A8
+ add r0, r4, #0
+ add r0, #0x9c
+ bl MOD08_02218224
+ add r0, r4, #0
+ add r0, #0x9c
+ add r1, sp, #0x10
+ add r2, sp, #0xc
+ bl MOD08_0221825C
+ ldr r0, [r4, #0x40]
+ ldr r1, [sp, #0x10]
+ ldr r2, [sp, #0xc]
+ bl FUN_0200C884
+ mov r0, #0x16
+ add r2, r4, #0
+ add r2, #0xb0
+ ldrsh r0, [r4, r0]
+ ldr r2, [r2]
+ mov r1, #0x10
+ bl MOD08_0221828C
+ mov r2, #0x16
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ mov r1, #0x14
+ ldrsh r1, [r4, r1]
+ add r2, r2, r3
+ lsl r2, r2, #0x10
+ ldr r0, [r4, #0x40]
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ ldr r0, [r4, #0x1c]
+ ldr r1, _0221F3A8 ; =MOD08_0221F074
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_0221F3A8: .word MOD08_0221F074
+
+ thumb_func_start MOD08_0221F3AC
+MOD08_0221F3AC: ; 0x0221F3AC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ add r4, r1, #0
+ str r0, [sp, #0x10]
+ ldrb r0, [r4]
+ cmp r0, #8
+ bls _0221F3BC
+ b _0221F710
+_0221F3BC:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221F3C8: ; jump table
+ .short _0221F3DA - _0221F3C8 - 2 ; case 0
+ .short _0221F412 - _0221F3C8 - 2 ; case 1
+ .short _0221F46C - _0221F3C8 - 2 ; case 2
+ .short _0221F486 - _0221F3C8 - 2 ; case 3
+ .short _0221F4BA - _0221F3C8 - 2 ; case 4
+ .short _0221F53E - _0221F3C8 - 2 ; case 5
+ .short _0221F5D0 - _0221F3C8 - 2 ; case 6
+ .short _0221F66E - _0221F3C8 - 2 ; case 7
+ .short _0221F6B6 - _0221F3C8 - 2 ; case 8
+_0221F3DA:
+ ldrb r1, [r4, #0xc]
+ ldr r2, _0221F6F4 ; =0x0222C569
+ ldr r5, _0221F6F8 ; =0x0222C56A
+ lsl r0, r1, #2
+ add r3, r1, r0
+ ldr r0, _0221F6FC ; =0x0222C56B
+ ldr r1, _0221F700 ; =0x0222C568
+ ldrb r0, [r0, r3]
+ ldrb r1, [r1, r3]
+ ldrb r2, [r2, r3]
+ str r0, [sp]
+ mov r0, #0x64
+ str r0, [sp, #4]
+ ldr r0, _0221F704 ; =0x0222C56C
+ ldrb r0, [r0, r3]
+ ldrb r3, [r5, r3]
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0xcc
+ bl MOD08_022181A8
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221F74A
+_0221F412:
+ add r0, r4, #0
+ add r0, #0xcc
+ bl MOD08_02218224
+ cmp r0, #1
+ bne _0221F458
+ mov r2, #0xcc
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r2, #0xce
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xd
+ bl FUN_02007558
+ mov r0, #0x20
+ add r2, r4, #0
+ add r2, #0xe0
+ ldrsh r0, [r4, r0]
+ ldr r1, [r4, #0x24]
+ ldr r2, [r2]
+ bl MOD08_0221828C
+ mov r2, #0x20
+ add r3, r0, #0
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_02007558
+ b _0221F74A
+_0221F458:
+ ldrb r0, [r4, #0xc]
+ cmp r0, #3
+ ldrb r0, [r4]
+ blo _0221F466
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221F74A
+_0221F466:
+ sub r0, r0, #1
+ strb r0, [r4]
+ b _0221F74A
+_0221F46C:
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4, #1]
+ cmp r0, #0xf
+ blo _0221F54A
+ mov r0, #0
+ strb r0, [r4, #1]
+ strb r0, [r4, #0xc]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221F74A
+_0221F486:
+ add r1, sp, #0x2c
+ ldr r0, [r4, #0x30]
+ add r1, #2
+ add r2, sp, #0x2c
+ bl FUN_0200C7A0
+ add r1, sp, #0x14
+ mov r0, #0x18
+ ldrsh r0, [r1, r0]
+ cmp r0, #0x68
+ bgt _0221F4B2
+ ldr r0, [r4, #0x30]
+ mov r1, #0
+ mov r2, #2
+ bl FUN_0200C82C
+ ldr r0, [r4, #0x7c]
+ mov r1, #0
+ mov r2, #2
+ bl FUN_0200C82C
+ b _0221F74A
+_0221F4B2:
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221F74A
+_0221F4BA:
+ add r1, sp, #0x28
+ ldr r0, [r4, #0x30]
+ add r1, #2
+ add r2, sp, #0x28
+ bl FUN_0200C7A0
+ add r1, sp, #0x14
+ mov r0, #0x14
+ ldrsh r0, [r1, r0]
+ cmp r0, #0x68
+ bgt _0221F4E6
+ ldr r0, [r4, #0x30]
+ mov r1, #0
+ mov r2, #2
+ bl FUN_0200C82C
+ ldr r0, [r4, #0x7c]
+ mov r1, #0
+ mov r2, #2
+ bl FUN_0200C82C
+ b _0221F4F2
+_0221F4E6:
+ ldr r0, _0221F708 ; =0x04000052
+ mov r1, #0x10
+ strh r1, [r0]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221F4F2:
+ ldrb r0, [r4, #1]
+ mov r1, #0x10
+ add r2, r1, #0
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ add r0, r4, #4
+ bl MOD08_02218A58
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ add r0, #8
+ sub r2, #0x10
+ bl MOD08_02218A58
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #4]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221F708 ; =0x04000052
+ strh r1, [r0]
+ ldrb r0, [r4, #1]
+ cmp r0, #0xa
+ bne _0221F52C
+ ldr r0, [r4, #0x30]
+ mov r1, #0
+ mov r2, #0x10
+ bl FUN_0200C82C
+_0221F52C:
+ ldrb r0, [r4, #1]
+ cmp r0, #0xc
+ bne _0221F54A
+ ldr r0, [r4, #0x7c]
+ mov r1, #0
+ mov r2, #0x10
+ bl FUN_0200C82C
+ b _0221F74A
+_0221F53E:
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4, #1]
+ cmp r0, #0xf
+ bhs _0221F54C
+_0221F54A:
+ b _0221F74A
+_0221F54C:
+ mov r0, #0
+ strb r0, [r4, #1]
+ add r1, sp, #0x24
+ ldr r0, [r4, #0x30]
+ add r1, #2
+ add r2, sp, #0x24
+ bl FUN_0200C7A0
+ add r1, sp, #0x20
+ ldr r0, [r4, #0x7c]
+ add r1, #2
+ add r2, sp, #0x20
+ bl FUN_0200C7A0
+ add r0, r4, #0
+ add r0, #0xc8
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0xca
+ str r0, [sp, #4]
+ add r3, sp, #0x14
+ mov r0, #0x12
+ mov r1, #0x10
+ mov r2, #0xe
+ mov r5, #0xc
+ ldrsh r0, [r3, r0]
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ ldrsh r3, [r3, r5]
+ bl MOD08_022189D8
+ add r0, r4, #0
+ add r0, #0x2c
+ str r0, [sp]
+ mov r3, #0xca
+ add r2, sp, #0x14
+ mov r0, #0x12
+ mov r1, #0x10
+ ldrsh r0, [r2, r0]
+ ldrsh r1, [r2, r1]
+ mov r2, #0xc8
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ bl MOD08_022189F4
+ add r0, r4, #0
+ add r0, #0x28
+ str r0, [sp]
+ mov r3, #0xca
+ add r2, sp, #0x14
+ mov r0, #0x12
+ mov r1, #0x10
+ ldrsh r0, [r2, r0]
+ ldrsh r1, [r2, r1]
+ mov r2, #0xc8
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ bl MOD08_02218A1C
+ mov r0, #0xa
+ lsl r0, r0, #0xe
+ str r0, [r4, #0x2c]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221F74A
+_0221F5D0:
+ ldr r3, _0221F70C ; =0x0222C545
+ add r2, sp, #0x30
+ mov r1, #0xa
+_0221F5D6:
+ ldrb r0, [r3]
+ add r3, r3, #1
+ strb r0, [r2]
+ add r2, r2, #1
+ sub r1, r1, #1
+ bne _0221F5D6
+ add r1, sp, #0x1c
+ ldr r0, [r4, #0x30]
+ add r1, #2
+ add r2, sp, #0x1c
+ bl FUN_0200C7A0
+ add r1, sp, #0x18
+ ldr r0, [r4, #0x7c]
+ add r1, #2
+ add r2, sp, #0x18
+ bl FUN_0200C7A0
+ add r3, sp, #0x14
+ mov r0, #8
+ ldrsh r0, [r3, r0]
+ mov r2, #0xa
+ str r0, [sp]
+ mov r0, #4
+ ldrsh r0, [r3, r0]
+ str r0, [sp, #4]
+ str r2, [sp, #8]
+ ldrb r1, [r4, #0xc]
+ ldr r0, [r4, #0x2c]
+ lsl r5, r1, #1
+ add r1, sp, #0x30
+ ldrsb r1, [r1, r5]
+ mov r5, #6
+ mul r1, r0
+ str r1, [sp, #0xc]
+ ldrsh r2, [r3, r2]
+ add r0, r4, #0
+ add r1, r4, #0
+ ldrsh r3, [r3, r5]
+ add r0, #0x34
+ add r1, #0x58
+ bl MOD08_02217F50
+ add r3, sp, #0x14
+ mov r0, #4
+ ldrsh r0, [r3, r0]
+ mov r5, #0xa
+ str r0, [sp]
+ mov r0, #8
+ ldrsh r0, [r3, r0]
+ str r0, [sp, #4]
+ str r5, [sp, #8]
+ ldrb r1, [r4, #0xc]
+ ldr r0, [r4, #0x2c]
+ lsl r2, r1, #1
+ add r1, sp, #0x30
+ add r1, #1
+ ldrsb r1, [r1, r2]
+ mov r2, #6
+ mul r1, r0
+ str r1, [sp, #0xc]
+ ldrsh r2, [r3, r2]
+ add r0, r4, #0
+ add r1, r4, #0
+ ldrsh r3, [r3, r5]
+ add r0, #0x80
+ add r1, #0xa4
+ bl MOD08_02217F50
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221F74A
+_0221F66E:
+ add r0, r4, #0
+ ldr r2, [r4, #0x30]
+ add r0, #0x34
+ add r1, #0x58
+ mov r5, #0
+ bl MOD08_02217FE4
+ cmp r0, #0
+ bne _0221F686
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+_0221F686:
+ add r0, r4, #0
+ add r1, r4, #0
+ ldr r2, [r4, #0x7c]
+ add r0, #0x80
+ add r1, #0xa4
+ bl MOD08_02217FE4
+ cmp r0, #0
+ bne _0221F69E
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+_0221F69E:
+ cmp r5, #2
+ bne _0221F74A
+ ldrb r0, [r4, #0xc]
+ cmp r0, #5
+ ldrb r0, [r4]
+ bne _0221F6B0
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221F74A
+_0221F6B0:
+ sub r0, r0, #1
+ strb r0, [r4]
+ b _0221F74A
+_0221F6B6:
+ mov r5, #0
+ add r0, r4, #4
+ add r1, r5, #0
+ sub r2, r5, #2
+ bl MOD08_02218A58
+ cmp r0, #1
+ bne _0221F6C8
+ add r5, r5, #1
+_0221F6C8:
+ add r0, r4, #0
+ add r0, #8
+ mov r1, #0x10
+ mov r2, #2
+ bl MOD08_02218A58
+ cmp r0, #1
+ bne _0221F6DA
+ add r5, r5, #1
+_0221F6DA:
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #4]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221F708 ; =0x04000052
+ cmp r5, #2
+ strh r1, [r0]
+ bne _0221F74A
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221F74A
+ nop
+_0221F6F4: .word 0x0222C569
+_0221F6F8: .word 0x0222C56A
+_0221F6FC: .word 0x0222C56B
+_0221F700: .word 0x0222C568
+_0221F704: .word 0x0222C56C
+_0221F708: .word 0x04000052
+_0221F70C: .word 0x0222C545
+_0221F710:
+ mov r6, #0
+ ldr r0, [r4, #0x10]
+ add r1, r6, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ ble _0221F738
+ add r5, r4, #0
+ add r7, r6, #0
+_0221F722:
+ ldr r0, [r5, #0x30]
+ bl FUN_0200C3DC
+ ldr r0, [r4, #0x10]
+ add r1, r7, #0
+ add r5, #0x4c
+ add r6, r6, #1
+ bl MOD08_02212498
+ cmp r6, r0
+ blt _0221F722
+_0221F738:
+ ldr r0, [r4, #0x10]
+ ldr r1, [sp, #0x10]
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+_0221F74A:
+ mov r6, #0
+ ldr r0, [r4, #0x10]
+ add r1, r6, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ ble _0221F7B6
+ add r5, r4, #0
+ add r7, sp, #0x14
+_0221F75C:
+ add r1, sp, #0x14
+ ldr r0, [r5, #0x30]
+ add r1, #2
+ add r2, sp, #0x14
+ bl FUN_0200C7A0
+ mov r0, #0
+ ldrsh r0, [r7, r0]
+ cmp r0, #0x50
+ bge _0221F780
+ ldr r0, [r4, #0x10]
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r5, #0x30]
+ bl FUN_0200C6B0
+ b _0221F7A6
+_0221F780:
+ mov r0, #2
+ ldrsh r0, [r7, r0]
+ cmp r0, #0x80
+ ldr r0, [r4, #0x10]
+ ble _0221F798
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r5, #0x30]
+ bl FUN_0200C6B0
+ b _0221F7A6
+_0221F798:
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r5, #0x30]
+ add r1, r1, #1
+ bl FUN_0200C6B0
+_0221F7A6:
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ add r5, #0x4c
+ add r6, r6, #1
+ bl MOD08_02212498
+ cmp r6, r0
+ blt _0221F75C
+_0221F7B6:
+ ldrb r0, [r4]
+ cmp r0, #4
+ blo _0221F7EA
+ mov r5, #0
+ ldr r0, [r4, #0x10]
+ add r1, r5, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ ble _0221F7E4
+ add r6, r4, #0
+ add r7, r5, #0
+_0221F7CE:
+ ldr r0, [r6, #0x30]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x10]
+ add r1, r7, #0
+ add r6, #0x4c
+ add r5, r5, #1
+ bl MOD08_02212498
+ cmp r5, r0
+ blt _0221F7CE
+_0221F7E4:
+ ldr r0, [r4, #0x18]
+ bl FUN_0200BC1C
+_0221F7EA:
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0221F7F0
+MOD08_0221F7F0: ; 0x0221F7F0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r5, r1, #0
+ mov r1, #0xf0
+ str r0, [sp]
+ add r6, r2, #0
+ add r7, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ mov r1, #0
+ strb r1, [r4]
+ ldr r0, [sp]
+ strb r1, [r4, #1]
+ str r0, [r4, #0x10]
+ str r6, [r4, #0x18]
+ str r5, [r4, #0x14]
+ str r1, [r4, #4]
+ mov r0, #0x10
+ str r0, [r4, #8]
+ ldr r0, [r4, #0x10]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0x10]
+ bl MOD08_022154D4
+ str r0, [r4, #0x1c]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x20]
+ ldr r0, [r4, #0x10]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #0x10]
+ bl MOD08_0221552C
+ str r0, [r4, #0x24]
+ ldr r0, [sp]
+ mov r1, #2
+ bl MOD08_022155C4
+ add r5, r0, #0
+ ldr r0, [sp]
+ mov r1, #1
+ bl MOD08_022155C4
+ mov r2, #1
+ add r1, r2, #0
+ add r3, r0, #0
+ lsl r1, r5
+ add r5, r2, #0
+ lsl r5, r3
+ orr r1, r5
+ orr r1, r2
+ sub r2, r2, #2
+ ldr r0, [r4, #0x10]
+ add r3, r2, #0
+ bl MOD08_022279D0
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #4]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221F92C ; =0x04000052
+ strh r1, [r0]
+ ldr r1, [sp]
+ add r0, sp, #4
+ bl MOD08_02215474
+ str r7, [r4, #0x30]
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ mov r6, #1
+ bl MOD08_02212498
+ cmp r0, #1
+ ble _0221F8B2
+ add r5, r4, #0
+ add r5, #0x4c
+ add r7, sp, #4
+_0221F896:
+ ldr r0, [r4, #0x14]
+ ldr r1, [r4, #0x18]
+ add r2, r7, #0
+ bl FUN_0200C154
+ str r0, [r5, #0x30]
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ add r5, #0x4c
+ add r6, r6, #1
+ bl MOD08_02212498
+ cmp r6, r0
+ blt _0221F896
+_0221F8B2:
+ mov r6, #0
+ ldr r0, [r4, #0x10]
+ add r1, r6, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ ble _0221F8EC
+ add r5, r4, #0
+ mov r7, #1
+_0221F8C4:
+ ldr r0, [r5, #0x30]
+ add r1, r7, #0
+ bl FUN_0200C90C
+ ldr r0, [r4, #0x10]
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r5, #0x30]
+ add r1, r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ add r5, #0x4c
+ add r6, r6, #1
+ bl MOD08_02212498
+ cmp r6, r0
+ blt _0221F8C4
+_0221F8EC:
+ ldr r0, [sp]
+ bl MOD08_02212004
+ cmp r0, #1
+ ldr r0, [r4, #0x30]
+ bne _0221F90C
+ mov r1, #0xa0
+ mov r2, #0x2c
+ bl FUN_0200C714
+ ldr r0, [r4, #0x7c]
+ mov r1, #0x50
+ mov r2, #0x1d
+ bl FUN_0200C714
+ b _0221F91E
+_0221F90C:
+ mov r1, #0x64
+ mov r2, #0x2c
+ bl FUN_0200C714
+ ldr r0, [r4, #0x7c]
+ mov r1, #0xb4
+ mov r2, #0x1d
+ bl FUN_0200C714
+_0221F91E:
+ ldr r0, [r4, #0x10]
+ ldr r1, _0221F930 ; =MOD08_0221F3AC
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221F92C: .word 0x04000052
+_0221F930: .word MOD08_0221F3AC
+
+ thumb_func_start MOD08_0221F934
+MOD08_0221F934: ; 0x0221F934
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ ldrb r0, [r5]
+ cmp r0, #0
+ beq _0221F946
+ cmp r0, #1
+ beq _0221F9BA
+ b _0221F9EE
+_0221F946:
+ ldrb r0, [r5, #6]
+ cmp r0, #0xf
+ bhs _0221F950
+ add r0, r0, #1
+ strb r0, [r5, #6]
+_0221F950:
+ ldrb r0, [r5, #7]
+ cmp r0, #0
+ beq _0221F95A
+ sub r0, r0, #1
+ strb r0, [r5, #7]
+_0221F95A:
+ ldrb r0, [r5, #7]
+ ldrb r1, [r5, #6]
+ mov r6, #0
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221FA3C ; =0x04000052
+ strh r1, [r0]
+ ldrb r0, [r5, #4]
+ add r0, r0, #1
+ strb r0, [r5, #4]
+ ldrb r0, [r5, #5]
+ cmp r0, #0
+ ble _0221F9AC
+ ldr r4, _0221FA40 ; =0x0222C5DC
+ add r7, r5, #0
+_0221F978:
+ add r1, sp, #0
+ ldr r0, [r7, #0x14]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ ldrb r1, [r5, #4]
+ ldrb r0, [r4]
+ cmp r1, r0
+ blo _0221F9A0
+ add r0, r5, r6
+ ldrb r1, [r0, #1]
+ add r1, r1, #1
+ strb r1, [r0, #1]
+ ldrb r2, [r0, #1]
+ ldrb r1, [r4, #1]
+ cmp r2, r1
+ blo _0221F9A0
+ mov r1, #0
+ strb r1, [r0, #1]
+_0221F9A0:
+ ldrb r0, [r5, #5]
+ add r6, r6, #1
+ add r7, r7, #4
+ add r4, r4, #2
+ cmp r6, r0
+ blt _0221F978
+_0221F9AC:
+ ldrb r0, [r5, #4]
+ cmp r0, #0x2d
+ blo _0221FA18
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+ b _0221FA18
+_0221F9BA:
+ ldrb r0, [r5, #6]
+ cmp r0, #0
+ beq _0221F9C4
+ sub r0, r0, #1
+ strb r0, [r5, #6]
+_0221F9C4:
+ ldrb r0, [r5, #7]
+ cmp r0, #0xf
+ bhs _0221F9CE
+ add r0, r0, #1
+ strb r0, [r5, #7]
+_0221F9CE:
+ ldrb r0, [r5, #6]
+ cmp r0, #0
+ bne _0221F9E0
+ ldrb r0, [r5, #7]
+ cmp r0, #0xf
+ bne _0221F9E0
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+_0221F9E0:
+ ldrb r0, [r5, #7]
+ ldrb r1, [r5, #6]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221FA3C ; =0x04000052
+ strh r1, [r0]
+ b _0221FA18
+_0221F9EE:
+ ldrb r0, [r5, #5]
+ mov r6, #0
+ cmp r0, #0
+ ble _0221FA08
+ add r4, r5, #0
+_0221F9F8:
+ ldr r0, [r4, #0x14]
+ bl FUN_0200C3DC
+ ldrb r0, [r5, #5]
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, r0
+ blt _0221F9F8
+_0221FA08:
+ ldr r0, [r5, #8]
+ add r1, r7, #0
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, r6, r7, pc}
+_0221FA18:
+ ldrb r0, [r5, #5]
+ mov r6, #0
+ cmp r0, #0
+ ble _0221FA34
+ add r4, r5, #0
+_0221FA22:
+ ldr r0, [r4, #0x14]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ ldrb r0, [r5, #5]
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, r0
+ blt _0221FA22
+_0221FA34:
+ ldr r0, [r5, #0x10]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221FA3C: .word 0x04000052
+_0221FA40: .word 0x0222C5DC
+
+ thumb_func_start MOD08_0221FA44
+MOD08_0221FA44: ; 0x0221FA44
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r7, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ str r3, [sp]
+ bl MOD08_02212014
+ mov r1, #0x44
+ bl AllocFromHeap
+ add r4, r0, #0
+ bne _0221FA62
+ bl ErrorHandling
+_0221FA62:
+ mov r0, #0
+ strb r0, [r4, #4]
+ strb r0, [r4]
+ str r5, [r4, #0xc]
+ str r6, [r4, #0x10]
+ add r0, sp, #4
+ add r1, r7, #0
+ str r7, [r4, #8]
+ bl MOD08_02215474
+ mov r1, #0
+ mvn r1, r1
+ ldr r0, [r4, #8]
+ add r2, r1, #0
+ bl MOD08_02227994
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD08_02212498
+ strb r0, [r4, #5]
+ mov r0, #0
+ strb r0, [r4, #6]
+ mov r0, #0xf
+ strb r0, [r4, #7]
+ ldrb r0, [r4, #7]
+ ldrb r1, [r4, #6]
+ mov r6, #1
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221FBA8 ; =0x04000052
+ strh r1, [r0]
+ ldr r0, [sp]
+ str r0, [r4, #0x14]
+ ldrb r0, [r4, #5]
+ cmp r0, #1
+ ble _0221FAC4
+ add r5, r4, #4
+_0221FAAE:
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x10]
+ add r2, sp, #4
+ bl FUN_0200C154
+ str r0, [r5, #0x14]
+ ldrb r0, [r4, #5]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, r0
+ blt _0221FAAE
+_0221FAC4:
+ add r0, r7, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r7, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _0221FB18
+ add r0, r7, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r7, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _0221FB04
+ add r0, r7, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r7, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _0221FB04
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_0200C5C0
+ b _0221FB0C
+_0221FB04:
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_0200C5C0
+_0221FB0C:
+ ldr r0, [r4, #0x14]
+ mov r1, #0x80
+ mov r2, #0x50
+ bl FUN_0200C714
+ b _0221FB58
+_0221FB18:
+ add r0, r7, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r7, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _0221FB46
+ add r0, r7, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r7, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _0221FB46
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_0200C5C0
+ b _0221FB4E
+_0221FB46:
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_0200C5C0
+_0221FB4E:
+ ldr r0, [r4, #0x14]
+ mov r1, #0x80
+ mov r2, #0x50
+ bl FUN_0200C714
+_0221FB58:
+ ldrb r0, [r4, #5]
+ mov r6, #0
+ cmp r0, #0
+ ble _0221FB98
+ add r5, r4, #0
+_0221FB62:
+ add r1, r4, r6
+ mov r0, #0
+ strb r0, [r1, #1]
+ ldr r0, [r5, #0x14]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r5, #0x14]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #8]
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _0221FB8E
+ mov r2, #0xfe
+ ldr r0, [r5, #0x14]
+ ldr r1, _0221FBAC ; =0xBF800000
+ lsl r2, r2, #0x16
+ bl FUN_0200C884
+_0221FB8E:
+ ldrb r0, [r4, #5]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, r0
+ blt _0221FB62
+_0221FB98:
+ ldr r1, _0221FBB0 ; =MOD08_0221F934
+ ldr r3, _0221FBB4 ; =0x0000044C
+ add r0, r7, #0
+ add r2, r4, #0
+ bl MOD08_022123E4
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221FBA8: .word 0x04000052
+_0221FBAC: .word 0xBF800000
+_0221FBB0: .word MOD08_0221F934
+_0221FBB4: .word 0x0000044C
+
+ thumb_func_start MOD08_0221FBB8
+MOD08_0221FBB8: ; 0x0221FBB8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r7, r0, #0
+ ldrb r0, [r4]
+ mov r6, #0
+ cmp r0, #3
+ bls _0221FBCA
+ b _0221FD70
+_0221FBCA:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221FBD6: ; jump table
+ .short _0221FBDE - _0221FBD6 - 2 ; case 0
+ .short _0221FC12 - _0221FBD6 - 2 ; case 1
+ .short _0221FCEA - _0221FBD6 - 2 ; case 2
+ .short _0221FD36 - _0221FBD6 - 2 ; case 3
+_0221FBDE:
+ ldrb r0, [r4, #9]
+ cmp r0, #0xf
+ bhs _0221FBE8
+ add r0, r0, #1
+ strb r0, [r4, #9]
+_0221FBE8:
+ ldrb r0, [r4, #0xa]
+ cmp r0, #0
+ beq _0221FBF2
+ sub r0, r0, #1
+ strb r0, [r4, #0xa]
+_0221FBF2:
+ ldrb r0, [r4, #9]
+ cmp r0, #0xf
+ bne _0221FC04
+ ldrb r0, [r4, #0xa]
+ cmp r0, #0
+ bne _0221FC04
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221FC04:
+ ldrb r0, [r4, #0xa]
+ ldrb r1, [r4, #9]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221FDCC ; =0x04000052
+ strh r1, [r0]
+ b _0221FD9C
+_0221FC12:
+ ldr r0, [r4, #0x30]
+ cmp r0, #3
+ bhi _0221FC78
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221FC24: ; jump table
+ .short _0221FC2C - _0221FC24 - 2 ; case 0
+ .short _0221FC46 - _0221FC24 - 2 ; case 1
+ .short _0221FC60 - _0221FC24 - 2 ; case 2
+ .short _0221FC60 - _0221FC24 - 2 ; case 3
+_0221FC2C:
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ str r0, [r4, #0x34]
+ ldr r0, [r4, #0x24]
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x34]
+ bl FUN_0200C644
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl FUN_0200C644
+ b _0221FC78
+_0221FC46:
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ str r0, [r4, #0x34]
+ ldr r0, [r4, #0x20]
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x34]
+ bl FUN_0200C644
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl FUN_0200C644
+ b _0221FC78
+_0221FC60:
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ str r0, [r4, #0x34]
+ ldr r0, [r4, #0x2c]
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x34]
+ bl FUN_0200C644
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl FUN_0200C644
+_0221FC78:
+ add r1, sp, #8
+ ldr r0, [r4, #0x34]
+ add r1, #2
+ add r2, sp, #8
+ bl FUN_0200C7A0
+ ldr r1, [r4, #0x30]
+ ldr r0, _0221FDD0 ; =0x0222C614
+ lsl r2, r1, #3
+ ldrsh r0, [r0, r2]
+ ldr r5, _0221FDD4 ; =0x0222C612
+ add r3, sp, #8
+ str r0, [sp]
+ ldr r0, _0221FDD8 ; =0x0222C5D8
+ ldrsh r2, [r5, r2]
+ ldrb r0, [r0, r1]
+ mov r1, #2
+ mov r5, #0
+ str r0, [sp, #4]
+ ldrsh r1, [r3, r1]
+ add r0, r4, #0
+ ldrsh r3, [r3, r5]
+ add r0, #0x3c
+ bl MOD08_02217E80
+ add r1, sp, #8
+ ldr r0, [r4, #0x38]
+ add r1, #2
+ add r2, sp, #8
+ bl FUN_0200C7A0
+ ldr r1, [r4, #0x30]
+ ldr r0, _0221FDDC ; =0x0222C618
+ lsl r2, r1, #3
+ ldrsh r0, [r0, r2]
+ ldr r5, _0221FDE0 ; =0x0222C616
+ add r3, sp, #8
+ str r0, [sp]
+ ldr r0, _0221FDD8 ; =0x0222C5D8
+ ldrsh r2, [r5, r2]
+ ldrb r0, [r0, r1]
+ mov r1, #2
+ mov r5, #0
+ str r0, [sp, #4]
+ ldrsh r1, [r3, r1]
+ add r0, r4, #0
+ ldrsh r3, [r3, r5]
+ add r0, #0x60
+ bl MOD08_02217E80
+ ldr r0, [r4, #0x30]
+ add r0, r0, #1
+ str r0, [r4, #0x30]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221FD9C
+_0221FCEA:
+ add r0, r4, #0
+ ldr r1, [r4, #0x34]
+ add r0, #0x3c
+ add r5, r6, #0
+ bl MOD08_02217F08
+ cmp r0, #0
+ bne _0221FCFC
+ add r5, r5, #1
+_0221FCFC:
+ add r0, r4, #0
+ ldr r1, [r4, #0x38]
+ add r0, #0x60
+ bl MOD08_02217F08
+ cmp r0, #0
+ bne _0221FD0C
+ add r5, r5, #1
+_0221FD0C:
+ cmp r5, #2
+ blt _0221FD9C
+ ldr r0, [r4, #0x30]
+ cmp r0, #3
+ bgt _0221FD2E
+ ldr r0, [r4, #0x34]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x38]
+ mov r1, #0
+ bl FUN_0200C644
+ ldrb r0, [r4]
+ sub r0, r0, #1
+ strb r0, [r4]
+ b _0221FD9C
+_0221FD2E:
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0221FD9C
+_0221FD36:
+ ldrb r0, [r4, #9]
+ cmp r0, #0
+ beq _0221FD40
+ sub r0, r0, #1
+ strb r0, [r4, #9]
+_0221FD40:
+ ldrb r0, [r4, #0xa]
+ cmp r0, #0xf
+ bhs _0221FD4A
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+_0221FD4A:
+ ldrb r1, [r4, #0xa]
+ cmp r1, #7
+ blo _0221FD52
+ mov r6, #1
+_0221FD52:
+ ldrb r0, [r4, #9]
+ cmp r0, #0
+ bne _0221FD62
+ cmp r1, #0xf
+ bne _0221FD62
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_0221FD62:
+ ldrb r0, [r4, #0xa]
+ ldrb r1, [r4, #9]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0221FDCC ; =0x04000052
+ strh r1, [r0]
+ b _0221FD9C
+_0221FD70:
+ ldrb r0, [r4, #8]
+ mov r6, #0
+ cmp r0, #0
+ ble _0221FD8A
+ add r5, r4, #0
+_0221FD7A:
+ ldr r0, [r5, #0x18]
+ bl FUN_0200C3DC
+ ldrb r0, [r4, #8]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, r0
+ blt _0221FD7A
+_0221FD8A:
+ ldr r0, [r4, #0xc]
+ add r1, r7, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_0221FD9C:
+ ldrb r0, [r4]
+ cmp r0, #3
+ bhs _0221FDC2
+ cmp r6, #0
+ bne _0221FDC2
+ ldrb r0, [r4, #8]
+ mov r6, #0
+ cmp r0, #0
+ ble _0221FDC2
+ add r5, r4, #0
+_0221FDB0:
+ ldr r0, [r5, #0x18]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ ldrb r0, [r4, #8]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, r0
+ blt _0221FDB0
+_0221FDC2:
+ ldr r0, [r4, #0x14]
+ bl FUN_0200BC1C
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221FDCC: .word 0x04000052
+_0221FDD0: .word 0x0222C614
+_0221FDD4: .word 0x0222C612
+_0221FDD8: .word 0x0222C5D8
+_0221FDDC: .word 0x0222C618
+_0221FDE0: .word 0x0222C616
+
+ thumb_func_start MOD08_0221FDE4
+MOD08_0221FDE4: ; 0x0221FDE4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ str r0, [sp]
+ add r5, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ bl MOD08_02212014
+ mov r1, #0x84
+ bl AllocFromHeap
+ add r4, r0, #0
+ bne _0221FE02
+ bl ErrorHandling
+_0221FE02:
+ mov r0, #0
+ strb r0, [r4, #7]
+ strb r0, [r4]
+ str r5, [r4, #0x10]
+ str r6, [r4, #0x14]
+ str r0, [r4, #0x30]
+ ldr r0, [sp]
+ ldr r1, [sp]
+ str r0, [r4, #0xc]
+ add r0, sp, #4
+ bl MOD08_02215474
+ mov r1, #0
+ mvn r1, r1
+ ldr r0, [r4, #0xc]
+ add r2, r1, #0
+ bl MOD08_02227994
+ mov r1, #0
+ strb r1, [r4, #9]
+ mov r0, #0xf
+ strb r0, [r4, #0xa]
+ ldrb r0, [r4, #0xa]
+ ldrb r2, [r4, #9]
+ lsl r0, r0, #8
+ orr r2, r0
+ ldr r0, _0221FF0C ; =0x04000052
+ strh r2, [r0]
+ ldr r0, [r4, #0xc]
+ bl MOD08_02212498
+ strb r0, [r4, #8]
+ str r7, [r4, #0x18]
+ ldrb r0, [r4, #8]
+ mov r6, #1
+ cmp r0, #1
+ ble _0221FE66
+ add r5, r4, #4
+ add r7, sp, #4
+_0221FE50:
+ ldr r0, [r4, #0x10]
+ ldr r1, [r4, #0x14]
+ add r2, r7, #0
+ bl FUN_0200C154
+ str r0, [r5, #0x18]
+ ldrb r0, [r4, #8]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, r0
+ blt _0221FE50
+_0221FE66:
+ ldr r0, [r4, #0x18]
+ mov r1, #0
+ bl FUN_0200C5C0
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ bl FUN_0200C5C0
+ ldr r0, [r4, #0x20]
+ mov r1, #1
+ bl FUN_0200C5C0
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ bl FUN_0200C5C0
+ ldr r0, [r4, #0x28]
+ mov r1, #2
+ bl FUN_0200C5C0
+ ldr r0, [r4, #0x2c]
+ mov r1, #3
+ bl FUN_0200C5C0
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ bl FUN_0200C8D0
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ bl FUN_0200C8D0
+ ldrb r0, [r4, #8]
+ mov r7, #0
+ cmp r0, #0
+ ble _0221FEDC
+ ldr r6, _0221FF10 ; =0x0222C5FA
+ add r5, r4, #0
+_0221FEB2:
+ ldr r0, [r5, #0x18]
+ mov r1, #1
+ bl FUN_0200C5E0
+ mov r1, #0
+ mov r2, #2
+ ldrsh r1, [r6, r1]
+ ldrsh r2, [r6, r2]
+ ldr r0, [r5, #0x18]
+ bl FUN_0200C714
+ ldr r0, [r5, #0x18]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldrb r0, [r4, #8]
+ add r7, r7, #1
+ add r5, r5, #4
+ add r6, r6, #4
+ cmp r7, r0
+ blt _0221FEB2
+_0221FEDC:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x20]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x2c]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [sp]
+ ldr r1, _0221FF14 ; =MOD08_0221FBB8
+ ldr r3, _0221FF18 ; =0x0000044C
+ add r2, r4, #0
+ bl MOD08_022123E4
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221FF0C: .word 0x04000052
+_0221FF10: .word 0x0222C5FA
+_0221FF14: .word MOD08_0221FBB8
+_0221FF18: .word 0x0000044C
+
+ thumb_func_start MOD08_0221FF1C
+MOD08_0221FF1C: ; 0x0221FF1C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0xc]
+ cmp r0, #7
+ bls _0221FF2C
+ b _02220084
+_0221FF2C:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0221FF38: ; jump table
+ .short _0221FF48 - _0221FF38 - 2 ; case 0
+ .short _0221FF5C - _0221FF38 - 2 ; case 1
+ .short _0221FF7E - _0221FF38 - 2 ; case 2
+ .short _0221FFAC - _0221FF38 - 2 ; case 3
+ .short _0221FFDA - _0221FF38 - 2 ; case 4
+ .short _0221FFF8 - _0221FF38 - 2 ; case 5
+ .short _02220020 - _0221FF38 - 2 ; case 6
+ .short _02220068 - _0221FF38 - 2 ; case 7
+_0221FF48:
+ ldrb r0, [r4, #0xe]
+ sub r0, r0, #1
+ strb r0, [r4, #0xe]
+ ldrb r0, [r4, #0xe]
+ cmp r0, #0xa
+ bhi _0221FF68
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ b _02220092
+_0221FF5C:
+ ldrb r0, [r4, #0xd]
+ add r0, r0, #1
+ strb r0, [r4, #0xd]
+ ldrb r0, [r4, #0xd]
+ cmp r0, #3
+ bhs _0221FF6A
+_0221FF68:
+ b _02220092
+_0221FF6A:
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200C644
+ mov r0, #0
+ strb r0, [r4, #0xd]
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ b _02220092
+_0221FF7E:
+ ldrb r0, [r4, #0xd]
+ add r0, r0, #1
+ strb r0, [r4, #0xd]
+ ldrb r0, [r4, #0xd]
+ cmp r0, #3
+ bhi _0221FFA0
+ ldr r0, [r4, #0x38]
+ ldr r1, _0222009C ; =0x3DCCCCCD
+ bl _fadd
+ str r0, [r4, #0x38]
+ ldr r1, [r4, #0x38]
+ ldr r0, [r4, #0x10]
+ add r2, r1, #0
+ bl FUN_0200C884
+ b _02220092
+_0221FFA0:
+ mov r0, #0
+ strb r0, [r4, #0xd]
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ b _02220092
+_0221FFAC:
+ ldrb r0, [r4, #0xd]
+ add r0, r0, #1
+ strb r0, [r4, #0xd]
+ ldrb r0, [r4, #0xd]
+ cmp r0, #3
+ bhi _0221FFCE
+ ldr r0, [r4, #0x38]
+ ldr r1, _0222009C ; =0x3DCCCCCD
+ bl _fsub
+ str r0, [r4, #0x38]
+ ldr r1, [r4, #0x38]
+ ldr r0, [r4, #0x10]
+ add r2, r1, #0
+ bl FUN_0200C884
+ b _02220092
+_0221FFCE:
+ mov r0, #0
+ strb r0, [r4, #0xd]
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ b _02220092
+_0221FFDA:
+ ldrb r0, [r4, #0xe]
+ sub r0, r0, #1
+ strb r0, [r4, #0xe]
+ ldrb r0, [r4, #0xe]
+ cmp r0, #0xa
+ bhi _02220092
+ ldr r0, [r4, #0x3c]
+ mov r1, #1
+ str r1, [r0]
+ mov r0, #0
+ strb r0, [r4, #0xd]
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ b _02220092
+_0221FFF8:
+ ldrb r0, [r4, #0xd]
+ add r0, r0, #1
+ strb r0, [r4, #0xd]
+ ldrb r0, [r4, #0xd]
+ cmp r0, #0x1e
+ bls _02220010
+ mov r0, #0
+ strb r0, [r4, #0xd]
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ b _02220092
+_02220010:
+ ldr r0, [r4, #0x3c]
+ ldr r0, [r0]
+ cmp r0, #2
+ bne _02220092
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ b _02220092
+_02220020:
+ bl LCRandom
+ mov r1, #0xa
+ bl _s32_div_f
+ add r5, r1, #0
+ add r2, sp, #8
+ ldr r0, [r4, #0x10]
+ add r1, sp, #8
+ add r2, #2
+ add r5, #0xa
+ bl FUN_0200C7A0
+ ldrb r0, [r4, #0xf]
+ add r3, sp, #8
+ mov r1, #0
+ lsl r2, r0, #2
+ ldr r0, _022200A0 ; =0x0222C5E4
+ ldrsh r0, [r0, r2]
+ str r0, [sp]
+ lsl r0, r5, #0x10
+ ldr r5, _022200A4 ; =0x0222C5E2
+ lsr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldrsh r2, [r5, r2]
+ add r0, r4, #0
+ mov r5, #2
+ ldrsh r1, [r3, r1]
+ ldrsh r3, [r3, r5]
+ add r0, #0x14
+ bl MOD08_02217E80
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+ b _02220092
+_02220068:
+ add r0, r4, #0
+ ldr r1, [r4, #0x10]
+ add r0, #0x14
+ bl MOD08_02217F08
+ cmp r0, #0
+ bne _02220092
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200C644
+ ldrb r0, [r4, #0xc]
+ add r0, r0, #1
+ strb r0, [r4, #0xc]
+_02220084:
+ ldr r0, [r4, #0x3c]
+ mov r1, #3
+ str r1, [r0]
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+_02220092:
+ ldr r0, [r4, #0x10]
+ bl FUN_0200C5A8
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_0222009C: .word 0x3DCCCCCD
+_022200A0: .word 0x0222C5E4
+_022200A4: .word 0x0222C5E2
+
+ thumb_func_start MOD08_022200A8
+MOD08_022200A8: ; 0x022200A8
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #3
+ bhi _02220164
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022200C0: ; jump table
+ .short _022200C8 - _022200C0 - 2 ; case 0
+ .short _022200F4 - _022200C0 - 2 ; case 1
+ .short _02220116 - _022200C0 - 2 ; case 2
+ .short _02220142 - _022200C0 - 2 ; case 3
+_022200C8:
+ ldrb r6, [r4, #2]
+ mov r3, #1
+ mov r2, #0
+ cmp r6, #0
+ ble _022200E8
+ ldr r0, _0222017C ; =0x00000514
+ add r5, r4, #0
+_022200D6:
+ ldr r1, [r5, r0]
+ cmp r1, #1
+ beq _022200E0
+ mov r3, #0
+ b _022200E8
+_022200E0:
+ add r2, r2, #1
+ add r5, r5, #4
+ cmp r2, r6
+ blt _022200D6
+_022200E8:
+ cmp r3, #1
+ bne _02220174
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _02220174
+_022200F4:
+ ldrb r0, [r4, #2]
+ mov r5, #0
+ cmp r0, #0
+ ble _0222010E
+ ldr r0, _0222017C ; =0x00000514
+ add r3, r4, #0
+ mov r2, #2
+_02220102:
+ str r2, [r3, r0]
+ ldrb r1, [r4, #2]
+ add r5, r5, #1
+ add r3, r3, #4
+ cmp r5, r1
+ blt _02220102
+_0222010E:
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _02220174
+_02220116:
+ ldrb r5, [r4, #2]
+ mov r2, #1
+ mov r6, #0
+ cmp r5, #0
+ ble _02220136
+ ldr r0, _0222017C ; =0x00000514
+ add r3, r4, #0
+_02220124:
+ ldr r1, [r3, r0]
+ cmp r1, #3
+ beq _0222012E
+ mov r2, #0
+ b _02220136
+_0222012E:
+ add r6, r6, #1
+ add r3, r3, #4
+ cmp r6, r5
+ blt _02220124
+_02220136:
+ cmp r2, #1
+ bne _02220174
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _02220174
+_02220142:
+ ldrb r0, [r4, #2]
+ mov r6, #0
+ cmp r0, #0
+ ble _0222015C
+ add r5, r4, #0
+_0222014C:
+ ldr r0, [r5, #0x24]
+ bl FUN_0200C3DC
+ ldrb r0, [r4, #2]
+ add r6, r6, #1
+ add r5, #0x40
+ cmp r6, r0
+ blt _0222014C
+_0222015C:
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _02220174
+_02220164:
+ ldr r0, [r4, #8]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, r5, r6, pc}
+_02220174:
+ ldr r0, [r4, #0x10]
+ bl FUN_0200BC1C
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222017C: .word 0x00000514
+
+ thumb_func_start MOD08_02220180
+MOD08_02220180: ; 0x02220180
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x50
+ str r0, [sp]
+ add r5, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ bl MOD08_02212014
+ ldr r1, _022202E8 ; =0x00000564
+ bl AllocFromHeap
+ add r4, r0, #0
+ bne _0222019E
+ bl ErrorHandling
+_0222019E:
+ mov r0, #0
+ strb r0, [r4, #1]
+ strb r0, [r4]
+ str r5, [r4, #0xc]
+ ldr r0, [sp]
+ str r6, [r4, #0x10]
+ str r0, [r4, #8]
+ ldr r1, [sp]
+ add r0, sp, #0x1c
+ bl MOD08_02215474
+ mov r1, #0
+ mvn r1, r1
+ ldr r0, [r4, #8]
+ add r2, r1, #0
+ bl MOD08_02227994
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD08_02212498
+ strb r0, [r4, #2]
+ mov r0, #0xc
+ strb r0, [r4, #2]
+ mov r0, #0
+ str r7, [r4, #0x24]
+ str r0, [sp, #4]
+ str r0, [sp, #0x14]
+ ldrb r0, [r4, #2]
+ cmp r0, #0
+ ble _022202D8
+ ldr r0, _022202EC ; =0x00000514
+ add r5, r4, #0
+ add r0, r4, r0
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ str r0, [sp, #8]
+ add r0, #0x14
+ str r0, [sp, #8]
+_022201EC:
+ ldr r0, [sp, #0x14]
+ cmp r0, #0
+ beq _022201FE
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x10]
+ add r2, sp, #0x1c
+ bl FUN_0200C154
+ str r0, [r5, #0x24]
+_022201FE:
+ add r1, r5, #0
+ ldr r6, [r5, #0x24]
+ add r1, #0x20
+ mov r0, #0
+ strb r0, [r1]
+ add r1, r5, #0
+ add r1, #0x21
+ strb r0, [r1]
+ bl LCRandom
+ mov r1, #0xa
+ bl _s32_div_f
+ ldr r0, [sp, #0x14]
+ add r1, #0xa
+ add r1, r0, r1
+ add r0, r5, #0
+ add r0, #0x22
+ strb r1, [r0]
+ bl LCRandom
+ mov r1, #6
+ bl _s32_div_f
+ add r0, r5, #0
+ add r0, #0x23
+ strb r1, [r0]
+ mov r0, #0xfe
+ lsl r0, r0, #0x16
+ str r0, [r5, #0x4c]
+ ldr r0, [r4, #8]
+ ldr r1, _022202F0 ; =0x0222C632
+ str r0, [r5, #0x14]
+ ldr r0, [r4, #0xc]
+ str r0, [r5, #0x18]
+ ldr r0, [r4, #0x10]
+ str r0, [r5, #0x1c]
+ ldr r0, [sp, #0xc]
+ str r0, [r5, #0x50]
+ ldr r0, [sp, #4]
+ lsl r0, r0, #3
+ str r0, [sp, #0x18]
+ add r7, r1, r0
+ bl LCRandom
+ mov r1, #6
+ ldrsh r1, [r7, r1]
+ bl _s32_div_f
+ mov r0, #2
+ ldrsh r0, [r7, r0]
+ add r0, r0, r1
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ bl LCRandom
+ mov r1, #4
+ ldrsh r1, [r7, r1]
+ bl _s32_div_f
+ ldr r2, _022202F0 ; =0x0222C632
+ ldr r0, [sp, #0x18]
+ ldrsh r0, [r2, r0]
+ add r0, r0, r1
+ lsl r0, r0, #0x10
+ asr r2, r0, #0x10
+ ldr r1, [sp, #0x10]
+ add r0, r6, #0
+ bl FUN_0200C714
+ add r0, r6, #0
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r1, [r5, #0x4c]
+ add r0, r6, #0
+ add r2, r1, #0
+ bl FUN_0200C884
+ add r0, r6, #0
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [sp]
+ ldr r1, _022202F4 ; =MOD08_0221FF1C
+ ldr r2, [sp, #8]
+ ldr r3, _022202F8 ; =0x0000044B
+ bl MOD08_022123E4
+ ldr r0, [sp, #4]
+ mov r1, #6
+ add r0, r0, #1
+ bl _s32_div_f
+ ldr r0, [sp, #0xc]
+ str r1, [sp, #4]
+ add r0, r0, #4
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #8]
+ ldrb r1, [r4, #2]
+ add r0, #0x40
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x14]
+ add r5, #0x40
+ add r0, r0, #1
+ str r0, [sp, #0x14]
+ cmp r0, r1
+ blt _022201EC
+_022202D8:
+ ldr r0, [sp]
+ ldr r1, _022202FC ; =MOD08_022200A8
+ ldr r3, _02220300 ; =0x0000044D
+ add r2, r4, #0
+ bl MOD08_022123E4
+ add sp, #0x50
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022202E8: .word 0x00000564
+_022202EC: .word 0x00000514
+_022202F0: .word 0x0222C632
+_022202F4: .word MOD08_0221FF1C
+_022202F8: .word 0x0000044B
+_022202FC: .word MOD08_022200A8
+_02220300: .word 0x0000044D
+
+ thumb_func_start MOD08_02220304
+MOD08_02220304: ; 0x02220304
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #4]
+ cmp r0, #3
+ bhi _022203EA
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222031E: ; jump table
+ .short _02220326 - _0222031E - 2 ; case 0
+ .short _02220344 - _0222031E - 2 ; case 1
+ .short _02220396 - _0222031E - 2 ; case 2
+ .short _022203C0 - _0222031E - 2 ; case 3
+_02220326:
+ ldr r0, [r4, #8]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_022154D4
+ mov r1, #6
+ mov r2, #1
+ bl FUN_02007558
+ ldrb r0, [r4, #4]
+ add r0, r0, #1
+ strb r0, [r4, #4]
+ b _02220410
+_02220344:
+ add r0, r4, #0
+ add r0, #0x2c
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02220410
+ mov r0, #0
+ str r0, [r4]
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl MOD08_022155C4
+ add r5, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD08_02218998
+ add r6, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_02212014
+ mov r1, #0xc8
+ str r1, [sp]
+ mov r3, #3
+ str r5, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ str r6, [sp, #0xc]
+ str r0, [sp, #0x10]
+ add r0, r1, #0
+ mov r1, #0xa0
+ add r2, r1, #0
+ add r2, #0xcc
+ lsl r3, r3, #0xe
+ bl MOD08_022188DC
+ str r0, [r4, #0x28]
+ ldrb r0, [r4, #4]
+ add r0, r0, #1
+ strb r0, [r4, #4]
+ b _02220410
+_02220396:
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ cmp r0, #0x78
+ blt _02220410
+ ldr r0, [r4, #0x28]
+ bl MOD08_0221894C
+ mov r1, #2
+ mov r2, #0x10
+ str r1, [sp]
+ add r0, r4, #0
+ str r2, [sp, #4]
+ add r0, #0x2c
+ add r3, r2, #0
+ bl MOD08_022186D4
+ ldrb r0, [r4, #4]
+ add r0, r0, #1
+ strb r0, [r4, #4]
+ b _02220410
+_022203C0:
+ add r0, r4, #0
+ add r0, #0x2c
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02220410
+ ldr r0, [r4, #8]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_022154D4
+ mov r1, #6
+ mov r2, #0
+ bl FUN_02007558
+ ldrb r0, [r4, #4]
+ add r0, r0, #1
+ strb r0, [r4, #4]
+ b _02220410
+_022203EA:
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _02220428 ; =0xFFFF1FFF
+ and r0, r1
+ str r0, [r2]
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD08_02214850
+ ldr r0, [r4, #8]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+_02220410:
+ ldr r0, [r4, #0x24]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x20]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x10]
+ bl FUN_0200BC1C
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02220428: .word 0xFFFF1FFF
+
+ thumb_func_start MOD08_0222042C
+MOD08_0222042C: ; 0x0222042C
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ mov r1, #0x54
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #4
+ bl MOD08_02227B70
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD08_022124D8
+ mov r1, #2
+ str r0, [r4, #0x20]
+ bl FUN_0200C90C
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ ldr r1, _022204C0 ; =0xFFFF1FFF
+ and r2, r1
+ lsr r1, r0, #0xb
+ orr r1, r2
+ str r1, [r0]
+ add r0, #0x4a
+ ldrh r2, [r0]
+ mov r1, #0x3f
+ bic r2, r1
+ mov r1, #0x1b
+ orr r1, r2
+ strh r1, [r0]
+ ldrh r2, [r0]
+ ldr r1, _022204C4 ; =0xFFFFC0FF
+ and r2, r1
+ mov r1, #0x17
+ lsl r1, r1, #8
+ orr r1, r2
+ strh r1, [r0]
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl MOD08_022124D8
+ mov r1, #1
+ str r0, [r4, #0x24]
+ bl FUN_0200C90C
+ mov r1, #0x10
+ str r1, [sp]
+ add r0, r4, #0
+ mov r2, #2
+ str r1, [sp, #4]
+ add r0, #0x2c
+ add r3, r2, #0
+ bl MOD08_022186D4
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD08_0221477C
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201797C
+ ldr r0, [r4, #8]
+ ldr r1, _022204C8 ; =MOD08_02220304
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_022204C0: .word 0xFFFF1FFF
+_022204C4: .word 0xFFFFC0FF
+_022204C8: .word MOD08_02220304
+
+ thumb_func_start MOD08_022204CC
+MOD08_022204CC: ; 0x022204CC
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0200C658
+ cmp r0, #1
+ bne _022204DE
+ add r0, r4, #0
+ bl FUN_0200C5A8
+_022204DE:
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022204E0
+MOD08_022204E0: ; 0x022204E0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r1, [sp, #4]
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ mov r1, #0x1c
+ ldrsh r0, [r0, r1]
+ cmp r0, #0
+ bgt _02220504
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x30]
+ bl MOD08_022204CC
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x34]
+ bl MOD08_022204CC
+ b _0222050A
+_02220504:
+ sub r1, r0, #1
+ ldr r0, [sp, #4]
+ strh r1, [r0, #0x1c]
+_0222050A:
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x28]
+ bl MOD08_022204CC
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x2c]
+ bl MOD08_022204CC
+ ldr r4, [sp, #4]
+ mov r6, #0
+ add r7, r6, #0
+ add r5, r4, #0
+_02220522:
+ mov r0, #0x1e
+ ldrsh r0, [r4, r0]
+ add r0, r0, #1
+ strh r0, [r4, #0x1e]
+ mov r0, #0x1e
+ ldrsh r0, [r4, r0]
+ cmp r0, #0x28
+ blt _0222053C
+ ldr r0, [r5, #0x28]
+ mov r1, #0
+ bl FUN_0200C644
+ add r6, r6, #1
+_0222053C:
+ add r7, r7, #1
+ add r4, r4, #2
+ add r5, r5, #4
+ cmp r7, #4
+ blt _02220522
+ cmp r6, #4
+ bne _02220570
+ ldr r4, [sp, #4]
+ mov r5, #0
+_0222054E:
+ ldr r0, [r4, #0x28]
+ bl FUN_0200C3DC
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #4
+ blt _0222054E
+ ldr r0, [sp, #4]
+ ldr r1, [sp]
+ ldr r0, [r0, #4]
+ bl MOD08_02212438
+ ldr r0, [sp, #4]
+ bl FreeToHeap
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02220570:
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x10]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0222057C
+MOD08_0222057C: ; 0x0222057C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ mov r1, #0x38
+ add r5, r0, #0
+ add r4, r3, #0
+ bl MOD08_02228064
+ add r6, r0, #0
+ mov r0, #0xa
+ strh r0, [r6, #0x1c]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02227B70
+ ldr r1, [r6, #4]
+ add r0, sp, #0
+ bl MOD08_02215474
+ str r4, [r6, #0x28]
+ mov r0, #0
+ strh r0, [r6, #0x1e]
+ mov r7, #1
+ add r4, r6, #2
+ add r5, r6, #4
+_022205AC:
+ mov r0, #0
+ strh r0, [r4, #0x1e]
+ ldr r0, [r6, #8]
+ ldr r1, [r6, #0x10]
+ add r2, sp, #0
+ bl FUN_0200C154
+ str r0, [r5, #0x28]
+ add r7, r7, #1
+ add r4, r4, #2
+ add r5, r5, #4
+ cmp r7, #4
+ blt _022205AC
+ ldr r0, [r6, #0x28]
+ mov r1, #1
+ bl FUN_0200C8D0
+ ldr r0, [r6, #0x2c]
+ mov r1, #1
+ bl FUN_0200C8D0
+ mov r1, #0x1f
+ ldr r0, [r6, #0x28]
+ mvn r1, r1
+ mov r2, #0
+ bl FUN_0200C82C
+ mov r1, #0x1f
+ ldr r0, [r6, #0x2c]
+ mvn r1, r1
+ mov r2, #0x20
+ bl FUN_0200C82C
+ ldr r0, [r6, #0x30]
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_0200C82C
+ mov r1, #0x20
+ ldr r0, [r6, #0x34]
+ add r2, r1, #0
+ bl FUN_0200C82C
+ ldr r0, [r6, #4]
+ ldr r1, _02220610 ; =MOD08_022204E0
+ add r2, r6, #0
+ bl MOD08_02212400
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02220610: .word MOD08_022204E0
+
+ thumb_func_start MOD08_02220614
+MOD08_02220614: ; 0x02220614
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r1, #0
+ mov r4, #0
+ str r0, [sp, #0x1c]
+ str r4, [sp, #0x20]
+ add r6, r5, #0
+ add r7, r5, #0
+_02220624:
+ mov r0, #0x22
+ ldrsh r0, [r6, r0]
+ add r0, r0, #1
+ strh r0, [r6, #0x22]
+ mov r0, #0x22
+ ldrsh r0, [r6, r0]
+ cmp r0, #0x14
+ blt _02220676
+ ldr r0, [r7, #0x2c]
+ bl MOD08_022204CC
+ mov r0, #0x22
+ ldrsh r0, [r5, r0]
+ cmp r0, #0x6e
+ bne _02220676
+ mov r1, #0
+ mvn r1, r1
+ ldr r0, [r5, #4]
+ add r2, r1, #0
+ bl MOD08_02227994
+ ldr r0, [r5, #0x2c]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r5, #0x30]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r5, #0x34]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r5, #0x38]
+ mov r1, #1
+ bl FUN_0200C90C
+ mov r0, #0xf
+ str r0, [r5, #0x54]
+ mov r0, #0
+ str r0, [r5, #0x58]
+_02220676:
+ add r4, r4, #1
+ add r6, r6, #2
+ add r7, r7, #4
+ cmp r4, #4
+ blt _02220624
+ mov r0, #0x22
+ ldrsh r0, [r5, r0]
+ cmp r0, #0x32
+ bne _022206BA
+ ldr r0, [r5, #4]
+ bl MOD08_02212014
+ add r1, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ sub r0, #0x12
+ str r0, [sp, #4]
+ mov r2, #2
+ str r2, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #0xe
+ str r0, [sp, #0x10]
+ ldr r0, _02220894 ; =0x0000FFFF
+ str r0, [sp, #0x14]
+ ldr r0, _02220898 ; =0x000003EA
+ str r0, [sp, #0x18]
+ ldr r3, [r5, #0x1c]
+ ldr r0, [r5, #0x18]
+ lsl r3, r3, #0x14
+ lsr r3, r3, #0x10
+ bl MOD08_02218B20
+ str r0, [r5, #0x3c]
+_022206BA:
+ mov r0, #0x22
+ ldrsh r0, [r5, r0]
+ cmp r0, #0x3c
+ bne _022206F4
+ ldr r0, [r5, #4]
+ bl MOD08_02212014
+ add r1, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ sub r0, #0x12
+ str r0, [sp, #4]
+ mov r2, #2
+ str r2, [sp, #8]
+ mov r0, #0xe
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, _02220894 ; =0x0000FFFF
+ str r0, [sp, #0x14]
+ ldr r0, _02220898 ; =0x000003EA
+ str r0, [sp, #0x18]
+ ldr r3, [r5, #0x1c]
+ ldr r0, [r5, #0x18]
+ lsl r3, r3, #0x14
+ lsr r3, r3, #0x10
+ bl MOD08_02218B20
+ str r0, [r5, #0x40]
+_022206F4:
+ mov r0, #0x22
+ ldrsh r0, [r5, r0]
+ cmp r0, #0x46
+ bne _0222072E
+ ldr r0, [r5, #4]
+ bl MOD08_02212014
+ add r1, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ sub r0, #0x12
+ str r0, [sp, #4]
+ mov r2, #2
+ str r2, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #0xe
+ str r0, [sp, #0x10]
+ ldr r0, _02220894 ; =0x0000FFFF
+ str r0, [sp, #0x14]
+ ldr r0, _02220898 ; =0x000003EA
+ str r0, [sp, #0x18]
+ ldr r3, [r5, #0x1c]
+ ldr r0, [r5, #0x18]
+ lsl r3, r3, #0x14
+ lsr r3, r3, #0x10
+ bl MOD08_02218B20
+ str r0, [r5, #0x44]
+_0222072E:
+ mov r0, #0x22
+ ldrsh r0, [r5, r0]
+ cmp r0, #0x50
+ bne _02220768
+ ldr r0, [r5, #4]
+ bl MOD08_02212014
+ add r1, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ sub r0, #0x12
+ str r0, [sp, #4]
+ mov r2, #2
+ str r2, [sp, #8]
+ mov r0, #0xe
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, _02220894 ; =0x0000FFFF
+ str r0, [sp, #0x14]
+ ldr r0, _02220898 ; =0x000003EA
+ str r0, [sp, #0x18]
+ ldr r3, [r5, #0x1c]
+ ldr r0, [r5, #0x18]
+ lsl r3, r3, #0x14
+ lsr r3, r3, #0x10
+ bl MOD08_02218B20
+ str r0, [r5, #0x48]
+_02220768:
+ mov r0, #0x22
+ ldrsh r0, [r5, r0]
+ cmp r0, #0x5a
+ bne _022207A2
+ ldr r0, [r5, #4]
+ bl MOD08_02212014
+ add r1, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ sub r0, #0x12
+ str r0, [sp, #4]
+ mov r2, #2
+ str r2, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #0xe
+ str r0, [sp, #0x10]
+ ldr r0, _02220894 ; =0x0000FFFF
+ str r0, [sp, #0x14]
+ ldr r0, _02220898 ; =0x000003EA
+ str r0, [sp, #0x18]
+ ldr r3, [r5, #0x1c]
+ ldr r0, [r5, #0x18]
+ lsl r3, r3, #0x14
+ lsr r3, r3, #0x10
+ bl MOD08_02218B20
+ str r0, [r5, #0x4c]
+_022207A2:
+ mov r0, #0x22
+ ldrsh r0, [r5, r0]
+ cmp r0, #0x64
+ bne _022207DC
+ ldr r0, [r5, #4]
+ bl MOD08_02212014
+ add r1, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ sub r0, #0x12
+ str r0, [sp, #4]
+ mov r2, #2
+ str r2, [sp, #8]
+ mov r0, #0xe
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, _02220894 ; =0x0000FFFF
+ str r0, [sp, #0x14]
+ ldr r0, _02220898 ; =0x000003EA
+ str r0, [sp, #0x18]
+ ldr r3, [r5, #0x1c]
+ ldr r0, [r5, #0x18]
+ lsl r3, r3, #0x14
+ lsr r3, r3, #0x10
+ bl MOD08_02218B20
+ str r0, [r5, #0x50]
+_022207DC:
+ mov r1, #0x22
+ ldrsh r0, [r5, r1]
+ cmp r0, #0x6e
+ bne _02220816
+ sub r1, #0x23
+ ldr r0, [r5, #4]
+ add r2, r1, #0
+ bl MOD08_02227994
+ ldr r0, [r5, #0x2c]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r5, #0x30]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r5, #0x34]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r5, #0x38]
+ mov r1, #1
+ bl FUN_0200C90C
+ mov r0, #0xf
+ str r0, [r5, #0x54]
+ mov r0, #0
+ str r0, [r5, #0x58]
+_02220816:
+ mov r0, #0x22
+ ldrsh r0, [r5, r0]
+ cmp r0, #0x6e
+ blt _0222084E
+ ldr r0, [r5, #0x54]
+ cmp r0, #0
+ ble _02220828
+ sub r0, r0, #1
+ str r0, [r5, #0x54]
+_02220828:
+ ldr r0, [r5, #0x58]
+ cmp r0, #0xf
+ bge _02220832
+ add r0, r0, #1
+ str r0, [r5, #0x58]
+_02220832:
+ ldr r0, [r5, #0x58]
+ ldr r1, [r5, #0x54]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0222089C ; =0x04000052
+ strh r1, [r0]
+ ldr r0, [r5, #0x54]
+ cmp r0, #0
+ bne _0222084E
+ ldr r0, [r5, #0x58]
+ cmp r0, #0xf
+ bne _0222084E
+ mov r0, #4
+ str r0, [sp, #0x20]
+_0222084E:
+ ldr r0, [sp, #0x20]
+ cmp r0, #4
+ bne _0222088A
+ mov r6, #0
+ add r4, r5, #0
+_02220858:
+ ldr r0, [r4, #0x2c]
+ bl FUN_0200C3DC
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #4
+ blt _02220858
+ mov r6, #0
+ add r4, r5, #0
+_0222086A:
+ ldr r0, [r4, #0x3c]
+ bl MOD08_02218B08
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #6
+ blt _0222086A
+ ldr r0, [r5, #4]
+ ldr r1, [sp, #0x1c]
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl FreeToHeap
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+_0222088A:
+ ldr r0, [r5, #0x10]
+ bl FUN_0200BC1C
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02220894: .word 0x0000FFFF
+_02220898: .word 0x000003EA
+_0222089C: .word 0x04000052
+
+ thumb_func_start MOD08_022208A0
+MOD08_022208A0: ; 0x022208A0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ mov r1, #0x5c
+ str r0, [sp]
+ add r5, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ mov r0, #0xa
+ strh r0, [r4, #0x20]
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD08_02227B70
+ ldr r1, [r4, #4]
+ add r0, sp, #0xc
+ bl MOD08_02215474
+ str r5, [r4, #0x2c]
+ mov r0, #0
+ strh r0, [r4, #0x22]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r7, #5
+ add r6, r4, #2
+ add r5, r4, #4
+_022208D4:
+ bl LCRandom
+ lsr r1, r0, #0x1f
+ lsl r2, r0, #0x1e
+ sub r2, r2, r1
+ mov r0, #0x1e
+ ror r2, r0
+ add r0, r1, r2
+ add r0, r7, r0
+ strh r0, [r6, #0x22]
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0x10]
+ add r2, sp, #0xc
+ bl FUN_0200C154
+ str r0, [r5, #0x2c]
+ ldr r0, [sp, #8]
+ add r7, r7, #5
+ add r0, r0, #1
+ add r6, r6, #2
+ add r5, r5, #4
+ str r0, [sp, #8]
+ cmp r0, #4
+ blt _022208D4
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_0200C8D0
+ ldr r0, [r4, #0x34]
+ mov r1, #1
+ bl FUN_0200C8D0
+ ldr r0, [sp]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [sp]
+ bl MOD08_022154D4
+ mov r1, #0
+ add r5, r0, #0
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200782C
+ add r0, r5, #0
+ mov r1, #0x29
+ bl FUN_0200782C
+ ldr r0, [sp]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [sp]
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _02220956
+ mov r7, #0x8c
+ b _02220958
+_02220956:
+ mov r7, #0x54
+_02220958:
+ mov r6, #0
+ add r5, r4, #0
+_0222095C:
+ ldr r0, [r5, #0x2c]
+ ldr r1, [sp, #4]
+ add r2, r7, #0
+ bl FUN_0200C714
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #4
+ blt _0222095C
+ ldr r0, [sp]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [sp]
+ bl MOD08_02227470
+ cmp r0, #3
+ ldr r0, [r4, #0x2c]
+ bne _022209A2
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x34]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x30]
+ mov r1, #0x12
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x38]
+ mov r1, #0x12
+ bl FUN_0200C6C4
+ b _022209C0
+_022209A2:
+ mov r1, #0x12
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x34]
+ mov r1, #0x12
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x30]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x38]
+ mov r1, #0xa
+ bl FUN_0200C6C4
+_022209C0:
+ mov r1, #0x1f
+ ldr r0, [r4, #0x2c]
+ mvn r1, r1
+ mov r2, #0
+ bl FUN_0200C82C
+ mov r1, #0x27
+ ldr r0, [r4, #0x38]
+ mvn r1, r1
+ mov r2, #4
+ bl FUN_0200C82C
+ ldr r0, [r4, #0x34]
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_0200C82C
+ ldr r0, [r4, #0x30]
+ mov r1, #0x28
+ mov r2, #4
+ bl FUN_0200C82C
+ ldr r0, [r4, #0x2c]
+ bl FUN_0200C68C
+ str r0, [r4, #0x1c]
+ ldr r0, [r4, #4]
+ ldr r1, _02220A04 ; =MOD08_02220614
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02220A04: .word MOD08_02220614
+
+ thumb_func_start MOD08_02220A08
+MOD08_02220A08: ; 0x02220A08
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ bne _02220A8E
+ add r0, r4, #0
+ add r0, #0x60
+ bl MOD08_02218224
+ cmp r0, #0
+ bne _02220A4C
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x3c]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x3c]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl MOD08_02228094
+ add sp, #0xc
+ pop {r4, r5, pc}
+_02220A4C:
+ add r0, r4, #0
+ add r0, #0x60
+ add r1, sp, #8
+ add r2, sp, #4
+ bl MOD08_0221825C
+ ldr r0, [r4, #0x28]
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #4]
+ bl FUN_0200C884
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0x58
+ mov r2, #0x5a
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x28]
+ ldr r3, [r4, #0x74]
+ bl MOD08_02218314
+ ldr r0, [r4, #0x28]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x3c]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x50]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0xc]
+ bl FUN_0200BC1C
+_02220A8E:
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02220A94
+MOD08_02220A94: ; 0x02220A94
+ push {r4, r5, lr}
+ sub sp, #0xc
+ mov r1, #0x84
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ ldr r0, [r4, #4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ mov r1, #1
+ str r0, [r4, #0x24]
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0x58
+ strh r0, [r1]
+ mov r0, #0x58
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0x5c
+ strh r1, [r0]
+ ldr r0, [r4, #4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_0221552C
+ add r1, r4, #0
+ add r1, #0x5a
+ strh r0, [r1]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x28]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_022124D8
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_022124D8
+ str r0, [r4, #0x50]
+ ldr r0, [r4, #0x28]
+ mov r1, #2
+ bl FUN_0200C840
+ add r0, r5, #0
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r4, #0x28]
+ bl FUN_0200C6B0
+ add r0, r5, #0
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r4, #0x3c]
+ bl FUN_0200C6B0
+ add r0, r5, #0
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r4, #0x50]
+ bl FUN_0200C6B0
+ ldr r0, [r4, #4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02215490
+ sub r0, r0, #3
+ cmp r0, #1
+ ldr r0, [r4, #0x28]
+ bhi _02220B62
+ mov r1, #0x1e
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x3c]
+ mov r1, #0x32
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x50]
+ mov r1, #0x46
+ bl FUN_0200C6C4
+ b _02220B78
+_02220B62:
+ mov r1, #0x3c
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x3c]
+ mov r1, #0x46
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x50]
+ mov r1, #0x32
+ bl FUN_0200C6C4
+_02220B78:
+ mov r2, #0x14
+ mov r1, #0x64
+ str r2, [sp]
+ str r1, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x60
+ add r3, r1, #0
+ bl MOD08_022181A8
+ ldr r0, [r4, #4]
+ ldr r1, _02220B9C ; =MOD08_02220A08
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02220B9C: .word MOD08_02220A08
+
+ thumb_func_start MOD08_02220BA0
+MOD08_02220BA0: ; 0x02220BA0
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r2, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _02220BB4
+ cmp r0, #1
+ beq _02220CB2
+ b _02220D00
+_02220BB4:
+ add r0, r4, #0
+ add r0, #0xa0
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02220C2E
+ mov r0, #0x22
+ ldrsh r3, [r4, r0]
+ mov r0, #0x20
+ ldrsh r1, [r4, r0]
+ mov r0, #3
+ add r2, r1, #0
+ str r3, [sp]
+ add r2, #0x30
+ str r0, [sp, #4]
+ add r0, r4, #0
+ lsl r2, r2, #0x10
+ add r0, #0x34
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ mov r0, #0x22
+ ldrsh r1, [r4, r0]
+ mov r0, #0xa4
+ ldrsh r0, [r4, r0]
+ add r2, r1, r0
+ mov r0, #0x20
+ ldrsh r1, [r4, r0]
+ lsl r0, r2, #0x10
+ asr r3, r0, #0x10
+ add r2, r1, #0
+ add r2, #0x30
+ lsl r2, r2, #0x10
+ str r3, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x58
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ mov r0, #0x22
+ ldrsh r1, [r4, r0]
+ mov r0, #0xa4
+ ldrsh r0, [r4, r0]
+ add r2, r1, r0
+ mov r0, #0x20
+ ldrsh r1, [r4, r0]
+ lsl r0, r2, #0x10
+ asr r3, r0, #0x10
+ add r2, r1, #0
+ add r2, #0x30
+ lsl r2, r2, #0x10
+ str r3, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x7c
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ b _02220C9C
+_02220C2E:
+ mov r0, #0x22
+ ldrsh r3, [r4, r0]
+ mov r0, #0x20
+ ldrsh r2, [r4, r0]
+ mov r0, #3
+ add r1, r2, #0
+ str r3, [sp]
+ add r1, #0x30
+ str r0, [sp, #4]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ add r0, #0x34
+ asr r1, r1, #0x10
+ bl MOD08_02217E80
+ mov r0, #0x22
+ ldrsh r1, [r4, r0]
+ mov r0, #0xa4
+ ldrsh r0, [r4, r0]
+ add r1, r1, r0
+ mov r0, #0x20
+ ldrsh r2, [r4, r0]
+ lsl r0, r1, #0x10
+ asr r3, r0, #0x10
+ add r1, r2, #0
+ add r1, #0x30
+ lsl r1, r1, #0x10
+ str r3, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x58
+ asr r1, r1, #0x10
+ bl MOD08_02217E80
+ mov r0, #0x22
+ ldrsh r1, [r4, r0]
+ mov r0, #0xa4
+ ldrsh r0, [r4, r0]
+ add r1, r1, r0
+ mov r0, #0x20
+ ldrsh r2, [r4, r0]
+ lsl r0, r1, #0x10
+ asr r3, r0, #0x10
+ add r1, r2, #0
+ add r1, #0x30
+ lsl r1, r1, #0x10
+ str r3, [sp]
+ mov r0, #9
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x7c
+ asr r1, r1, #0x10
+ bl MOD08_02217E80
+_02220C9C:
+ add r0, r4, #0
+ add r0, #0xa0
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xa0
+ strb r1, [r0]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _02220D12
+_02220CB2:
+ add r0, r4, #0
+ ldr r1, [r4, #0x28]
+ add r0, #0x58
+ mov r5, #0
+ bl MOD08_02217F08
+ cmp r0, #0
+ bne _02220CC4
+ add r5, r5, #1
+_02220CC4:
+ add r0, r4, #0
+ ldr r1, [r4, #0x24]
+ add r0, #0x34
+ bl MOD08_02217F2C
+ cmp r0, #0
+ bne _02220CD4
+ add r5, r5, #1
+_02220CD4:
+ add r0, r4, #0
+ ldr r1, [r4, #0x30]
+ add r0, #0x7c
+ bl MOD08_02217F08
+ cmp r0, #0
+ bne _02220CE4
+ add r5, r5, #1
+_02220CE4:
+ cmp r5, #3
+ blt _02220D12
+ add r0, r4, #0
+ add r0, #0xa0
+ ldrb r0, [r0]
+ cmp r0, #1
+ ldrb r0, [r4]
+ bne _02220CFA
+ sub r0, r0, #1
+ strb r0, [r4]
+ b _02220D12
+_02220CFA:
+ add r0, r0, #1
+ strb r0, [r4]
+ b _02220D12
+_02220D00:
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl MOD08_02228094
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02220D12:
+ ldr r0, [r4, #0x28]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0xc]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02220D24
+MOD08_02220D24: ; 0x02220D24
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ mov r1, #0xa8
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xa1
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #8
+ add r0, #0xa2
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0xa3
+ strb r1, [r0]
+ sub r1, #9
+ ldr r0, [r4, #4]
+ add r2, r1, #0
+ bl MOD08_02227994
+ add r0, r4, #0
+ add r0, #0xa2
+ ldrb r1, [r0]
+ add r0, r4, #0
+ add r0, #0xa3
+ ldrb r0, [r0]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _02220E94 ; =0x04000052
+ strh r1, [r0]
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x24]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x20]
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x22]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl MOD08_022124D8
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #0x24]
+ mov r1, #0x29
+ bl FUN_0200782C
+ neg r1, r0
+ add r0, r4, #0
+ add r0, #0xa4
+ strh r1, [r0]
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_0221550C
+ add r7, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_0221551C
+ str r0, [sp, #0x18]
+ ldr r0, [r4, #4]
+ ldr r5, [r4, #0x28]
+ bl MOD08_02215574
+ add r1, r0, #0
+ add r0, r5, #0
+ add r1, r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r5]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ add r6, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02215504
+ str r0, [sp, #0x1c]
+ ldr r0, [r4, #4]
+ bl MOD08_02212014
+ add r3, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ lsl r0, r6, #0x14
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ mov r0, #0xc4
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ add r2, r7, #0
+ bl FUN_02003B40
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #4]
+ ldr r5, [r4, #0x30]
+ bl MOD08_02215574
+ add r1, r0, #0
+ add r0, r5, #0
+ add r1, r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r5]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ add r6, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02215504
+ str r0, [sp, #0x20]
+ ldr r0, [r4, #4]
+ bl MOD08_02212014
+ add r3, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ lsl r0, r6, #0x14
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ mov r0, #0xc4
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x20]
+ ldr r1, [sp, #0x18]
+ add r2, r7, #0
+ bl FUN_02003B40
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #4]
+ ldr r1, _02220E98 ; =MOD08_02220BA0
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02220E94: .word 0x04000052
+_02220E98: .word MOD08_02220BA0
+
+ thumb_func_start MOD08_02220E9C
+MOD08_02220E9C: ; 0x02220E9C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ mov r6, #0
+ str r0, [sp]
+ str r1, [sp, #4]
+ add r7, r6, #0
+ add r4, r1, #0
+ add r5, r1, #0
+_02220EAC:
+ mov r0, #0x1e
+ ldrsh r0, [r4, r0]
+ add r0, r0, #1
+ strh r0, [r4, #0x1e]
+ mov r0, #0x1e
+ ldrsh r0, [r4, r0]
+ cmp r0, #0x20
+ blt _02220ED4
+ ldr r0, [r5, #0x30]
+ bl MOD08_022204CC
+ mov r0, #0x1e
+ ldrsh r0, [r4, r0]
+ cmp r0, #0xa0
+ blt _02220ED4
+ ldr r0, [r5, #0x30]
+ mov r1, #0
+ bl FUN_0200C644
+ add r6, r6, #1
+_02220ED4:
+ add r7, r7, #1
+ add r4, r4, #2
+ add r5, r5, #4
+ cmp r7, #8
+ blt _02220EAC
+ cmp r6, #8
+ bne _02220F08
+ ldr r4, [sp, #4]
+ mov r5, #0
+_02220EE6:
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C3DC
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #8
+ blt _02220EE6
+ ldr r0, [sp, #4]
+ ldr r1, [sp]
+ ldr r0, [r0, #4]
+ bl MOD08_02212438
+ ldr r0, [sp, #4]
+ bl FreeToHeap
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02220F08:
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x10]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02220F14
+MOD08_02220F14: ; 0x02220F14
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x58
+ mov r1, #0x74
+ add r6, r0, #0
+ add r5, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ mov r0, #0xa
+ strh r0, [r4, #0x1c]
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ ldr r1, [r4, #4]
+ add r0, sp, #0x24
+ bl MOD08_02215474
+ str r5, [r4, #0x30]
+ mov r6, #1
+ add r5, r4, #4
+ mov r7, #0x1f
+_02220F40:
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0x10]
+ add r2, sp, #0x24
+ bl FUN_0200C154
+ str r0, [r5, #0x30]
+ lsr r1, r6, #0x1f
+ lsl r0, r6, #0x1f
+ sub r0, r0, r1
+ ror r0, r7
+ add r0, r1, r0
+ beq _02220F60
+ ldr r0, [r5, #0x30]
+ mov r1, #1
+ bl FUN_0200C8D0
+_02220F60:
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #8
+ blt _02220F40
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ mov r1, #0
+ add r5, r0, #0
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r7, r0, #0x10
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ ldr r0, [r4, #4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ mov r1, #0
+ str r0, [sp, #0x1c]
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ ldr r0, [sp, #0x1c]
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ mov r0, #0x14
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x50
+ add r1, r7, #0
+ add r2, r6, #0
+ add r3, r5, #0
+ bl MOD08_02217E80
+ mov r7, #0
+ ldr r0, [r4, #4]
+ add r6, r7, #0
+ str r7, [sp, #0x14]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02227470
+ cmp r0, #4
+ bne _02220FE4
+ mov r0, #1
+ str r0, [sp, #0x14]
+_02220FE4:
+ add r0, r4, #0
+ str r0, [sp, #0x20]
+ add r0, #0x50
+ add r5, r4, #0
+ str r0, [sp, #0x20]
+_02220FEE:
+ ldr r0, [sp, #0x20]
+ bl MOD08_02217ECC
+ str r0, [sp, #0x18]
+ lsr r2, r7, #0x1f
+ lsl r1, r7, #0x1f
+ sub r1, r1, r2
+ mov r0, #0x1f
+ ror r1, r0
+ add r0, r2, r1
+ beq _02221026
+ ldr r0, [sp, #0x14]
+ cmp r0, #0
+ bne _02221022
+ cmp r6, #8
+ bge _02221026
+ mov r1, #0x50
+ mov r2, #0x52
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r5, #0x30]
+ bl FUN_0200C714
+ add r5, r5, #4
+ add r6, r6, #1
+ b _02221026
+_02221022:
+ mov r0, #0
+ str r0, [sp, #0x14]
+_02221026:
+ ldr r0, [sp, #0x18]
+ add r7, r7, #1
+ cmp r0, #1
+ beq _02220FEE
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl MOD08_02215600
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl MOD08_02215600
+ add r7, r0, #0
+ mov r6, #0
+ str r4, [sp, #0xc]
+ add r5, r4, #0
+_02221048:
+ mov r0, #8
+ sub r0, r0, r6
+ str r0, [sp, #8]
+ lsl r1, r0, #2
+ ldr r0, [sp, #0xc]
+ strh r1, [r0, #0x1e]
+ ldr r0, [r4, #4]
+ bl MOD08_02212004
+ cmp r0, #0
+ bne _022210A4
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _02221086
+ cmp r6, #4
+ ldr r0, [r5, #0x30]
+ bge _0222107E
+ add r1, r7, #0
+ bl FUN_0200C6B0
+ b _0222109A
+_0222107E:
+ ldr r1, [sp, #0x10]
+ bl FUN_0200C6B0
+ b _0222109A
+_02221086:
+ cmp r6, #4
+ ldr r0, [r5, #0x30]
+ blt _02221094
+ add r1, r7, #0
+ bl FUN_0200C6B0
+ b _0222109A
+_02221094:
+ ldr r1, [sp, #0x10]
+ bl FUN_0200C6B0
+_0222109A:
+ ldr r0, [r5, #0x30]
+ ldr r1, [sp, #8]
+ bl FUN_0200C6C4
+ b _022210B4
+_022210A4:
+ ldr r0, [r5, #0x30]
+ add r1, r6, #0
+ bl FUN_0200C6C4
+ ldr r0, [r5, #0x30]
+ add r1, r7, #0
+ bl FUN_0200C6B0
+_022210B4:
+ ldr r0, [sp, #0xc]
+ add r6, r6, #1
+ add r0, r0, #2
+ add r5, r5, #4
+ str r0, [sp, #0xc]
+ cmp r6, #8
+ blt _02221048
+ ldr r0, [r4, #4]
+ ldr r1, _022210D0 ; =MOD08_02220E9C
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x58
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022210D0: .word MOD08_02220E9C
+
+ thumb_func_start MOD08_022210D4
+MOD08_022210D4: ; 0x022210D4
+ push {r4, r5, lr}
+ sub sp, #0x1c
+ add r5, r1, #0
+ add r4, r0, #0
+ ldrb r0, [r5]
+ cmp r0, #0
+ beq _022210EA
+ cmp r0, #1
+ beq _02221178
+ cmp r0, #2
+ b _022211D6
+_022210EA:
+ ldr r0, [r5, #0x28]
+ cmp r0, #0xe
+ ble _02221140
+ ldr r0, [r5, #0x30]
+ ldr r1, _0222121C ; =0x3E4CCCCD
+ bl _fsub
+ str r0, [r5, #0x30]
+ ldr r0, [r5, #0x2c]
+ ldr r1, _0222121C ; =0x3E4CCCCD
+ bl _fadd
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x30]
+ bl _f2d
+ ldr r2, _02221220 ; =0x9999999A
+ ldr r3, _02221224 ; =0x3FC99999
+ bl _dleq
+ bhi _02221124
+ ldrb r0, [r5]
+ mov r1, #0
+ add r0, r0, #1
+ strb r0, [r5]
+ ldr r0, [r5, #0x1c]
+ bl FUN_0200C644
+ b _022211FE
+_02221124:
+ mov r0, #0x36
+ ldrsb r0, [r5, r0]
+ bl _fflt
+ add r1, r0, #0
+ ldr r0, [r5, #0x2c]
+ bl _fmul
+ add r1, r0, #0
+ ldr r0, [r5, #0x1c]
+ ldr r2, [r5, #0x30]
+ bl FUN_0200C884
+ b _022211FE
+_02221140:
+ add r0, r5, #0
+ add r0, #0x34
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r5, #0
+ add r0, #0x34
+ strb r1, [r0]
+ add r0, r5, #0
+ add r0, #0x35
+ ldrb r0, [r0]
+ sub r1, r0, #1
+ add r0, r5, #0
+ add r0, #0x35
+ strb r1, [r0]
+ add r0, r5, #0
+ add r0, #0x34
+ ldrb r1, [r0]
+ add r0, r5, #0
+ add r0, #0x35
+ ldrb r0, [r0]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _02221228 ; =0x04000052
+ strh r1, [r0]
+ ldr r0, [r5, #0x28]
+ add r0, r0, #1
+ str r0, [r5, #0x28]
+ b _022211FE
+_02221178:
+ ldr r0, [r5, #0x3c]
+ bl MOD08_02218AF8
+ cmp r0, #0
+ bne _022211FE
+ ldr r0, [r5, #0x38]
+ bl MOD08_02218B08
+ ldr r0, [r5, #0x3c]
+ bl MOD08_02218B08
+ ldr r0, [r5, #0x24]
+ ldr r0, [r0]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ add r4, r0, #0
+ ldr r0, [r5, #4]
+ bl MOD08_02212014
+ add r1, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r2, #0
+ lsl r3, r4, #0x14
+ str r2, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0xf
+ str r0, [sp, #0xc]
+ str r2, [sp, #0x10]
+ ldr r0, _0222122C ; =0x0000FFFF
+ mov r2, #2
+ str r0, [sp, #0x14]
+ ldr r0, _02221230 ; =0x0000044C
+ lsr r3, r3, #0x10
+ str r0, [sp, #0x18]
+ ldr r0, [r5, #0x18]
+ bl MOD08_02218B20
+ str r0, [r5, #0x3c]
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+ b _022211FE
+_022211D6:
+ ldr r0, [r5, #0x3c]
+ bl MOD08_02218AF8
+ cmp r0, #0
+ bne _022211FE
+ ldr r0, [r5, #0x20]
+ bl FUN_0200C5A8
+ ldr r0, [r5, #0x3c]
+ bl MOD08_02218B08
+ ldr r0, [r5, #4]
+ add r1, r4, #0
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl FreeToHeap
+ add sp, #0x1c
+ pop {r4, r5, pc}
+_022211FE:
+ ldr r0, [r5, #0x1c]
+ bl FUN_0200C5A8
+ ldr r0, [r5, #0x20]
+ bl FUN_0200C5A8
+ ldr r0, [r5, #0x24]
+ bl FUN_0200C5A8
+ ldr r0, [r5, #0xc]
+ bl FUN_0200BC1C
+ add sp, #0x1c
+ pop {r4, r5, pc}
+ nop
+_0222121C: .word 0x3E4CCCCD
+_02221220: .word 0x9999999A
+_02221224: .word 0x3FC99999
+_02221228: .word 0x04000052
+_0222122C: .word 0x0000FFFF
+_02221230: .word 0x0000044C
+
+ thumb_func_start MOD08_02221234
+MOD08_02221234: ; 0x02221234
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ mov r1, #0x40
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x1c]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl MOD08_022124D8
+ str r0, [r4, #0x20]
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl MOD08_022124D8
+ str r0, [r4, #0x24]
+ mov r6, #0
+ str r6, [r4, #0x28]
+ add r0, r5, #0
+ sub r6, #0x20
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02217C1C
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ mul r0, r6
+ add r6, r0, #0
+ mov r0, #0xfe
+ lsl r0, r0, #0x16
+ str r0, [r4, #0x2c]
+ str r0, [r4, #0x30]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02215680
+ cmp r0, #1
+ bne _0222129E
+ mov r1, #0
+ mvn r1, r1
+ b _022212A0
+_0222129E:
+ mov r1, #1
+_022212A0:
+ add r0, r4, #0
+ add r0, #0x36
+ strb r1, [r0]
+ add r1, sp, #0x24
+ ldr r0, [r4, #0x20]
+ add r1, #2
+ add r2, sp, #0x24
+ bl FUN_0200C7A0
+ add r2, sp, #0x24
+ mov r1, #2
+ ldrsh r1, [r2, r1]
+ mov r3, #0
+ ldrsh r2, [r2, r3]
+ add r1, r1, r6
+ lsl r1, r1, #0x10
+ ldr r0, [r4, #0x1c]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+ ldr r0, [r4, #0x1c]
+ mov r1, #2
+ bl FUN_0200C840
+ mov r0, #0x36
+ ldrsb r0, [r4, r0]
+ bl _fflt
+ add r1, r0, #0
+ ldr r0, [r4, #0x2c]
+ bl _fmul
+ add r1, r0, #0
+ ldr r0, [r4, #0x1c]
+ ldr r2, [r4, #0x30]
+ bl FUN_0200C884
+ ldr r0, [r4, #0x1c]
+ ldr r0, [r0]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212014
+ add r1, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r2, #0
+ lsl r3, r6, #0x14
+ str r2, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ str r2, [sp, #0xc]
+ mov r0, #0xf
+ str r0, [sp, #0x10]
+ ldr r0, _0222147C ; =0x0000FFFF
+ mov r2, #2
+ str r0, [sp, #0x14]
+ ldr r0, _02221480 ; =0x0000044C
+ lsr r3, r3, #0x10
+ str r0, [sp, #0x18]
+ ldr r0, [r4, #0x18]
+ bl MOD08_02218B20
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x24]
+ ldr r0, [r0]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_0201E28C
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212014
+ add r1, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r2, #0
+ lsl r3, r6, #0x14
+ str r2, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ str r2, [sp, #0xc]
+ mov r0, #0xf
+ str r0, [sp, #0x10]
+ ldr r0, _0222147C ; =0x0000FFFF
+ mov r2, #2
+ str r0, [sp, #0x14]
+ ldr r0, _02221480 ; =0x0000044C
+ lsr r3, r3, #0x10
+ str r0, [sp, #0x18]
+ ldr r0, [r4, #0x18]
+ bl MOD08_02218B20
+ str r0, [r4, #0x3c]
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ ldr r0, [r4, #4]
+ add r1, r6, #0
+ bl MOD08_02227468
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ ldr r0, [r4, #4]
+ bl MOD08_02212004
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, sp, #0x2c
+ bl MOD08_02227564
+ add r2, sp, #0x28
+ ldr r0, [r4, #0x1c]
+ add r1, sp, #0x28
+ add r2, #2
+ bl FUN_0200C7A0
+ ldr r0, [r4, #4]
+ add r1, r6, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _022213BC
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ mov r5, #0
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x1c]
+ add r1, r5, #0
+ bl FUN_0200C6C4
+ b _022213CE
+_022213BC:
+ ldr r0, [r4, #0x1c]
+ mov r1, #2
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ bl FUN_0200C6C4
+ mov r5, #2
+_022213CE:
+ ldr r0, [r4, #4]
+ bl MOD08_02212460
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ ldr r0, [r4, #4]
+ add r1, r6, #0
+ bl MOD08_022154A8
+ add r7, r0, #0
+ ldr r0, [r4, #4]
+ add r1, r6, #0
+ bl MOD08_0221549C
+ str r0, [sp, #0x1c]
+ ldr r0, [r4, #4]
+ add r1, r6, #0
+ bl MOD08_022154B8
+ str r0, [sp, #0x20]
+ ldr r0, [r4, #4]
+ add r1, r6, #0
+ bl MOD08_022154C4
+ ldr r1, [sp, #0x1c]
+ ldr r3, [sp, #0x20]
+ str r0, [sp]
+ lsl r0, r7, #0x10
+ lsl r1, r1, #0x18
+ lsl r2, r5, #0x18
+ lsl r3, r3, #0x18
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02068E88
+ add r2, r0, #0
+ add r5, sp, #0x24
+ mov r3, #0xa
+ ldrsh r3, [r5, r3]
+ mov r1, #4
+ ldrsh r1, [r5, r1]
+ add r2, r3, r2
+ lsl r2, r2, #0x10
+ ldr r0, [r4, #0x1c]
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ bl FUN_0200C644
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x34
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #0xf
+ add r0, #0x35
+ strb r1, [r0]
+ sub r1, #0x10
+ ldr r0, [r4, #4]
+ add r2, r1, #0
+ bl MOD08_02227994
+ add r0, r4, #0
+ add r0, #0x34
+ ldrb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x35
+ ldrb r0, [r0]
+ add r2, r4, #0
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _02221484 ; =0x04000052
+ strh r1, [r0]
+ ldr r0, [r4, #4]
+ ldr r1, _02221488 ; =MOD08_022210D4
+ bl MOD08_02212400
+ add r1, r4, #0
+ bl MOD08_022210D4
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222147C: .word 0x0000FFFF
+_02221480: .word 0x0000044C
+_02221484: .word 0x04000052
+_02221488: .word MOD08_022210D4
+
+ thumb_func_start MOD08_0222148C
+MOD08_0222148C: ; 0x0222148C
+ push {r3, r4, r5, lr}
+ sub sp, #0x58
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _022214A0
+ cmp r0, #1
+ beq _022214E6
+ b _02221560
+_022214A0:
+ ldr r0, [r4, #0x68]
+ mov r1, #0x20
+ lsl r0, r0, #2
+ add r2, r4, r0
+ ldr r0, [r2, #0x78]
+ lsl r0, r0, #0x10
+ asr r3, r0, #0x10
+ str r3, [sp]
+ mov r0, #0xf
+ str r0, [sp, #4]
+ ldr r2, [r2, #0x6c]
+ add r0, r4, #0
+ lsl r2, r2, #0x10
+ ldrsh r1, [r4, r1]
+ add r0, #0x30
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ ldr r2, [r4, #0x68]
+ ldr r0, [r4, #0x24]
+ lsl r2, r2, #2
+ add r2, r4, r2
+ add r2, #0x84
+ ldr r2, [r2]
+ mov r1, #2
+ bl FUN_02007558
+ ldr r0, [r4, #0x24]
+ mov r1, #0x2c
+ mov r2, #1
+ bl FUN_02007558
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_022214E6:
+ add r0, r4, #0
+ add r0, #0x30
+ bl MOD08_02217ECC
+ cmp r0, #0
+ bne _02221544
+ ldr r0, [r4, #0x68]
+ add r0, r0, #1
+ str r0, [r4, #0x68]
+ cmp r0, #2
+ ble _02221504
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _0222153A
+_02221504:
+ ldr r0, [r4, #0x58]
+ cmp r0, #0
+ bne _02221536
+ ldr r0, [r4, #4]
+ add r1, sp, #8
+ mov r2, #3
+ bl MOD08_022127A8
+ ldr r0, [r4, #0x68]
+ cmp r0, #2
+ ldr r0, [r4, #4]
+ bne _0222152A
+ bl MOD08_02212014
+ add r1, r0, #0
+ add r0, sp, #8
+ bl MOD08_0222A494
+ b _02221536
+_0222152A:
+ bl MOD08_02212014
+ add r1, r0, #0
+ add r0, sp, #8
+ bl MOD08_0222A2A4
+_02221536:
+ mov r0, #0
+ strb r0, [r4]
+_0222153A:
+ ldr r0, [r4, #0x24]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x20]
+_02221544:
+ mov r2, #0x30
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x24]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x32
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ bl FUN_02007558
+ add sp, #0x58
+ pop {r3, r4, r5, pc}
+_02221560:
+ ldr r0, [r4, #0x24]
+ mov r1, #0x2c
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #0x58
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_0222157C
+MOD08_0222157C: ; 0x0222157C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ mov r1, #0x90
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02227B70
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r6, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r2, r4, #0
+ ldr r0, [r4, #4]
+ add r2, #0x5c
+ bl MOD08_022275C0
+ ldr r0, [r4, #4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r2, r4, #0
+ ldr r0, [r4, #4]
+ add r2, #0x60
+ bl MOD08_022275C0
+ ldr r0, [r4, #4]
+ add r1, r6, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _022215CE
+ mov r1, #1
+ b _022215D2
+_022215CE:
+ mov r1, #0
+ mvn r1, r1
+_022215D2:
+ add r0, r4, #0
+ add r0, #0x54
+ strh r1, [r0]
+ ldr r0, [r4, #4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02227470
+ add r6, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02227470
+ cmp r6, r0
+ bne _022215FE
+ mov r0, #1
+ b _02221600
+_022215FE:
+ mov r0, #0
+_02221600:
+ str r0, [r4, #0x58]
+ mov r1, #0
+ add r0, r5, #0
+ str r1, [r4, #0x68]
+ bl MOD08_02212498
+ add r2, r4, #0
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, #0x1c
+ add r3, sp, #0
+ bl MOD08_02227BAC
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ bl FUN_0200782C
+ mov r1, #0x5e
+ ldrsh r2, [r4, r1]
+ mov r3, #0x54
+ sub r0, r0, r2
+ ldrsh r2, [r4, r3]
+ cmp r2, #0
+ ble _02221672
+ add r2, r3, #0
+ add r2, #0xfb
+ str r2, [r4, #0x6c]
+ sub r3, #0xa4
+ str r3, [r4, #0x70]
+ mov r2, #0x5c
+ ldrsh r2, [r4, r2]
+ str r2, [r4, #0x74]
+ ldrsh r2, [r4, r1]
+ add r2, r2, r0
+ str r2, [r4, #0x78]
+ mov r2, #0x62
+ ldrsh r2, [r4, r2]
+ add r2, r2, r0
+ str r2, [r4, #0x7c]
+ ldrsh r1, [r4, r1]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0x80
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #0xa
+ add r0, #0x84
+ str r1, [r0]
+ add r0, r4, #0
+ ldr r1, _022216C8 ; =0xFFFFFD76
+ add r0, #0x88
+ str r1, [r0]
+ ldr r0, [r4, #0x24]
+ mov r1, #2
+ bl FUN_0200782C
+ b _022216B2
+_02221672:
+ add r2, r3, #0
+ sub r2, #0xa4
+ str r2, [r4, #0x6c]
+ add r3, #0xfb
+ str r3, [r4, #0x70]
+ mov r2, #0x5c
+ ldrsh r2, [r4, r2]
+ str r2, [r4, #0x74]
+ ldrsh r2, [r4, r1]
+ add r2, r2, r0
+ str r2, [r4, #0x78]
+ mov r2, #0x62
+ ldrsh r2, [r4, r2]
+ add r2, r2, r0
+ str r2, [r4, #0x7c]
+ ldrsh r1, [r4, r1]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0x80
+ str r1, [r0]
+ add r0, r4, #0
+ ldr r1, _022216C8 ; =0xFFFFFD76
+ add r0, #0x84
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #0xa
+ add r0, #0x88
+ str r1, [r0]
+ ldr r0, [r4, #0x24]
+ mov r1, #2
+ bl FUN_0200782C
+_022216B2:
+ add r1, r4, #0
+ add r1, #0x8c
+ str r0, [r1]
+ ldr r0, [r4, #4]
+ ldr r1, _022216CC ; =MOD08_0222148C
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_022216C8: .word 0xFFFFFD76
+_022216CC: .word MOD08_0222148C
+
+ thumb_func_start MOD08_022216D0
+MOD08_022216D0: ; 0x022216D0
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r2, #0
+ ldr r2, [sp, #0x10]
+ str r2, [sp]
+ mov r2, #0x50
+ sub r2, r2, r3
+ add r3, r4, #0
+ bl FUN_02007E40
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_022216E8
+MOD08_022216E8: ; 0x022216E8
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #3
+ bls _022216FC
+ b _0222181E
+_022216FC:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02221708: ; jump table
+ .short _02221710 - _02221708 - 2 ; case 0
+ .short _0222176C - _02221708 - 2 ; case 1
+ .short _022217AE - _02221708 - 2 ; case 2
+ .short _02221804 - _02221708 - 2 ; case 3
+_02221710:
+ ldr r2, [r4, #0x10]
+ add r2, #0x4f
+ str r2, [r4, #0x10]
+ cmp r2, #0x50
+ blt _02221738
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add sp, #4
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x20
+ strb r1, [r0]
+ ldr r1, [r4, #0x14]
+ mov r0, #1
+ eor r0, r1
+ str r0, [r4, #0x14]
+ mov r0, #0
+ str r0, [r4, #0x10]
+ pop {r3, r4, r5, r6, pc}
+_02221738:
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ bne _02221754
+ mov r0, #2
+ str r0, [sp]
+ ldr r3, [r4]
+ ldr r0, [r4, #0x1c]
+ add r3, r3, #2
+ mov r1, #0
+ lsl r3, r3, #1
+ bl MOD08_022216D0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_02221754:
+ mov r0, #2
+ str r0, [sp]
+ ldr r3, [r4]
+ mov r1, #0x50
+ add r3, r3, #2
+ ldr r0, [r4, #0x1c]
+ sub r1, r1, r2
+ lsl r3, r3, #1
+ bl MOD08_022216D0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0222176C:
+ ldr r0, [r4, #4]
+ mov r3, #0xff
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ ldr r0, [r4, #0xc]
+ lsl r3, r3, #8
+ add r2, r0, #1
+ str r2, [r4, #0xc]
+ ldr r6, [r4, #8]
+ ldr r1, [r4, #4]
+ lsl r0, r6, #8
+ add r5, r0, #0
+ add r6, #0x50
+ lsl r0, r6, #0x18
+ and r5, r3
+ lsr r0, r0, #0x18
+ lsl r1, r1, #8
+ orr r5, r0
+ ldr r0, _02221868 ; =0x04000040
+ and r3, r1
+ lsl r1, r2, #0x18
+ lsr r1, r1, #0x18
+ strh r5, [r0]
+ orr r1, r3
+ strh r1, [r0, #4]
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r4, #0x20
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_022217AE:
+ ldr r0, [r4, #4]
+ mov r3, #0xff
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ ldr r0, [r4, #0xc]
+ lsl r3, r3, #8
+ add r2, r0, #1
+ str r2, [r4, #0xc]
+ ldr r6, [r4, #8]
+ ldr r1, [r4, #4]
+ lsl r0, r6, #8
+ add r5, r0, #0
+ add r6, #0x50
+ lsl r0, r6, #0x18
+ and r5, r3
+ lsr r0, r0, #0x18
+ lsl r1, r1, #8
+ orr r5, r0
+ ldr r0, _02221868 ; =0x04000040
+ and r3, r1
+ lsl r1, r2, #0x18
+ lsr r1, r1, #0x18
+ strh r5, [r0]
+ orr r1, r3
+ strh r1, [r0, #4]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ cmp r0, #0x26
+ ble _022217FA
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r4, #0x20
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_022217FA:
+ mov r0, #0
+ add r4, #0x20
+ add sp, #4
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_02221804:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xe
+ mov r2, #0
+ bl FUN_02007558
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r4, #0x20
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0222181E:
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r3, [r0]
+ ldr r1, _0222186C ; =0xFFFF1FFF
+ and r1, r3
+ add r3, r0, #0
+ str r1, [r0]
+ add r3, #0x48
+ ldrh r5, [r3]
+ mov r1, #0x3f
+ bic r5, r1
+ strh r5, [r3]
+ add r3, r0, #0
+ add r3, #0x4a
+ ldrh r5, [r3]
+ bic r5, r1
+ add r1, r0, #0
+ strh r5, [r3]
+ mov r3, #0
+ add r1, #0x40
+ strh r3, [r1]
+ add r0, #0x44
+ strh r3, [r0]
+ ldr r0, [r4, #0x24]
+ add r1, r2, #0
+ bl MOD08_02212438
+ ldr r0, [r4, #0x1c]
+ ldr r2, [r4, #0x18]
+ mov r1, #0x17
+ bl FUN_02007558
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_02221868: .word 0x04000040
+_0222186C: .word 0xFFFF1FFF
+
+ thumb_func_start MOD08_02221870
+MOD08_02221870: ; 0x02221870
+ push {r4, r5, r6, lr}
+ mov r1, #0x50
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x20
+ bl MOD08_02227B70
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0x1c]
+ mov r0, #0
+ str r0, [r4]
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227468
+ cmp r0, #3
+ beq _022218B0
+ cmp r0, #4
+ bne _022218C4
+_022218B0:
+ add r0, r5, #0
+ bl MOD08_02215574
+ add r1, r0, #0
+ sub r1, r1, #1
+ lsl r1, r1, #0x18
+ mov r0, #2
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+_022218C4:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x29
+ bl FUN_0200782C
+ sub r0, r5, r0
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x17
+ bl FUN_0200782C
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0x17
+ mov r2, #8
+ bl FUN_02007558
+ sub r6, #0x28
+ str r6, [r4, #8]
+ add r5, #0x28
+ mov r6, #1
+ lsl r6, r6, #0x1a
+ add r3, r6, #0
+ str r5, [r4, #4]
+ mov r1, #0
+ str r1, [r4, #0x10]
+ ldr r0, [r4, #4]
+ add r3, #0x48
+ str r0, [r4, #0xc]
+ str r1, [r4, #0x14]
+ ldr r1, [r6]
+ ldr r0, _0222197C ; =0xFFFF1FFF
+ and r1, r0
+ lsr r0, r6, #0xd
+ orr r0, r1
+ str r0, [r6]
+ ldrh r2, [r3]
+ mov r1, #0x3f
+ mov r0, #0x1f
+ bic r2, r1
+ orr r0, r2
+ mov r2, #0x20
+ orr r0, r2
+ strh r0, [r3]
+ add r3, r6, #0
+ add r3, #0x4a
+ ldrh r5, [r3]
+ mov r0, #0x1b
+ bic r5, r1
+ orr r0, r5
+ orr r0, r2
+ strh r0, [r3]
+ ldr r2, [r4, #8]
+ mov r0, #0xff
+ lsl r1, r2, #8
+ add r2, #0x50
+ lsl r0, r0, #8
+ lsl r2, r2, #0x18
+ and r1, r0
+ lsr r2, r2, #0x18
+ orr r2, r1
+ add r1, r6, #0
+ ldr r5, [r4, #0xc]
+ ldr r3, [r4, #4]
+ add r1, #0x40
+ strh r2, [r1]
+ lsl r1, r3, #8
+ and r1, r0
+ lsl r0, r5, #0x18
+ lsr r0, r0, #0x18
+ orr r0, r1
+ add r6, #0x44
+ strh r0, [r6]
+ ldr r0, [r4, #0x24]
+ ldr r1, _02221980 ; =MOD08_022216E8
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r4, r5, r6, pc}
+ nop
+_0222197C: .word 0xFFFF1FFF
+_02221980: .word MOD08_022216E8
+
+ thumb_func_start MOD08_02221984
+MOD08_02221984: ; 0x02221984
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ mov r1, #0xe8
+ mov r2, #0xea
+ add r5, r0, #0
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r3, [r4, #8]
+ add r0, #0xc
+ bl MOD08_02217E58
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0x38
+ bl MOD08_02218524
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [r4, #4]
+ bl FUN_0200BC1C
+ mov r1, #0
+ add r2, sp, #0
+_022219B8:
+ ldr r0, [r2]
+ cmp r0, #1
+ beq _022219EE
+ add r1, r1, #1
+ add r2, r2, #4
+ cmp r1, #3
+ blt _022219B8
+ mov r2, #0xe8
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0xea
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #8]
+ mov r1, #1
+ sub r2, #8
+ bl FUN_02007558
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_022219EE:
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022219F4
+MOD08_022219F4: ; 0x022219F4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x44
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0xf0
+ bl AllocFromHeap
+ add r4, r0, #0
+ str r5, [r4]
+ add r0, r5, #0
+ bl MOD08_02212504
+ str r0, [r4, #4]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ mov r1, #0
+ str r0, [r4, #8]
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0xe8
+ strh r0, [r1]
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0xea
+ strh r0, [r1]
+ ldr r0, [r4, #8]
+ mov r1, #0x29
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0xec
+ strh r0, [r1]
+ mov r0, #0xea
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xea
+ add r1, #8
+ strh r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc
+ mov r1, #1
+ mov r2, #8
+ bl MOD08_02218654
+ add r0, sp, #0x20
+ mov r1, #1
+ mov r2, #0xa
+ bl MOD08_02218654
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02217C1C
+ ldr r1, [r4, #0x18]
+ mov r6, #0
+ add r2, r1, #0
+ mul r2, r0
+ str r2, [r4, #0x18]
+ ldr r1, [sp, #0x2c]
+ add r5, r4, #0
+ mul r0, r1
+ str r0, [sp, #0x2c]
+ mov r7, #0x64
+_02221A8C:
+ ldr r0, [r4]
+ add r1, r6, #0
+ bl MOD08_022124D8
+ str r0, [r5, #0x30]
+ add r1, r7, #0
+ bl FUN_0200C6C4
+ ldr r0, [r5, #0x30]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r5, #0x30]
+ mov r1, #1
+ bl FUN_0200C90C
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #2
+ blt _02221A8C
+ mov r0, #0xea
+ ldrsh r1, [r4, r0]
+ mov r0, #0xec
+ ldrsh r0, [r4, r0]
+ mov r3, #0xe8
+ ldr r2, _02221B04 ; =MOD08_02217D98
+ sub r0, r1, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4, #0x30]
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x34]
+ str r0, [sp, #0x14]
+ str r1, [sp, #0x18]
+ str r1, [sp, #0x1c]
+ add r0, r4, #0
+ ldrsh r3, [r4, r3]
+ add r0, #0x38
+ add r1, sp, #0x20
+ bl MOD08_0221847C
+ mov r1, #0
+ mvn r1, r1
+ ldr r0, [r4]
+ add r2, r1, #0
+ bl MOD08_02227994
+ ldr r0, [r4]
+ ldr r1, _02221B08 ; =MOD08_02221984
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x44
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02221B04: .word MOD08_02217D98
+_02221B08: .word MOD08_02221984
+
+ thumb_func_start MOD08_02221B0C
+MOD08_02221B0C: ; 0x02221B0C
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #6
+ bls _02221B1C
+ b _02221C62
+_02221B1C:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02221B28: ; jump table
+ .short _02221B36 - _02221B28 - 2 ; case 0
+ .short _02221B78 - _02221B28 - 2 ; case 1
+ .short _02221BAE - _02221B28 - 2 ; case 2
+ .short _02221BC6 - _02221B28 - 2 ; case 3
+ .short _02221BF6 - _02221B28 - 2 ; case 4
+ .short _02221C0E - _02221B28 - 2 ; case 5
+ .short _02221C32 - _02221B28 - 2 ; case 6
+_02221B36:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _02221B58
+ mov r2, #0x48
+ mov r3, #0x4a
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ ldr r1, [r4, #0xc]
+ add r0, #0x10
+ bl MOD08_02217CD0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02221B58:
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r1, #0x10
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ add r0, #0x10
+ add r3, r2, #0
+ bl MOD08_02217E80
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_02221B78:
+ add r0, r4, #0
+ add r0, #0x34
+ bl MOD08_02218058
+ cmp r0, #0
+ beq _02221B92
+ ldr r0, [r4, #0xc]
+ ldr r2, [r4, #0x34]
+ mov r1, #9
+ bl FUN_02007558
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02221B92:
+ add r0, r4, #0
+ ldr r1, [r4, #0x34]
+ add r0, #0x34
+ mov r2, #0
+ mov r3, #4
+ bl MOD08_02218008
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #2
+ strh r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_02221BAE:
+ mov r0, #8
+ ldrsh r1, [r4, r0]
+ sub r1, r1, #1
+ strh r1, [r4, #8]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bge _02221C62
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_02221BC6:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _02221BE8
+ mov r2, #0x48
+ mov r3, #0x4a
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ ldr r1, [r4, #0xc]
+ add r0, #0x10
+ bl MOD08_02217CD0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02221BE8:
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0x20
+ strh r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_02221BF6:
+ mov r0, #8
+ ldrsh r1, [r4, r0]
+ sub r1, r1, #1
+ strh r1, [r4, #8]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bge _02221C62
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_02221C0E:
+ add r0, r4, #0
+ add r0, #0x34
+ bl MOD08_02218058
+ cmp r0, #0
+ beq _02221C28
+ ldr r0, [r4, #0xc]
+ ldr r2, [r4, #0x34]
+ mov r1, #9
+ bl FUN_02007558
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02221C28:
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_02221C32:
+ mov r2, #0x48
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x4a
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_02007558
+ ldr r0, [r4, #0xc]
+ mov r1, #9
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_02221C62:
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02221C68
+MOD08_02221C68: ; 0x02221C68
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0xf0
+ bl AllocFromHeap
+ add r4, r0, #0
+ str r5, [r4]
+ mov r0, #0
+ str r0, [r4, #4]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ mov r1, #0
+ str r0, [r4, #0xc]
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0x48
+ strh r0, [r1]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0x4a
+ strh r0, [r1]
+ mov r1, #0
+ add r0, r4, #0
+ str r1, [sp]
+ mov r2, #3
+ str r2, [sp, #4]
+ add r0, #0x10
+ sub r2, #0x23
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add r0, r4, #0
+ ldr r2, _02221D78 ; =0x00000E38
+ add r0, #0x34
+ mov r1, #0
+ mov r3, #8
+ bl MOD08_02218008
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02217C1C
+ ldr r1, [r4, #0x18]
+ add r2, r1, #0
+ mul r2, r0
+ str r2, [r4, #0x18]
+ ldr r1, [r4, #0x3c]
+ mul r0, r1
+ str r0, [r4, #0x3c]
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02217C1C
+ add r7, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227470
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227470
+ cmp r6, #3
+ bne _02221D36
+ cmp r0, #3
+ bne _02221D36
+ mov r1, #0xa
+ add r2, r1, #0
+ ldr r0, [r4, #0xc]
+ sub r2, #0x32
+ bl FUN_02007558
+ ldr r0, [r4, #0xc]
+ mov r1, #0xb
+ mov r2, #0x28
+ bl FUN_02007558
+ b _02221D6A
+_02221D36:
+ cmp r6, #4
+ bne _02221D54
+ cmp r0, #4
+ bne _02221D54
+ ldr r0, [r4, #0xc]
+ mov r1, #0xa
+ mov r2, #0x28
+ bl FUN_02007558
+ ldr r0, [r4, #0xc]
+ mov r1, #0xb
+ mov r2, #0x28
+ bl FUN_02007558
+ b _02221D6A
+_02221D54:
+ mov r2, #0x28
+ ldr r0, [r4, #0xc]
+ mov r1, #0xa
+ mul r2, r7
+ bl FUN_02007558
+ ldr r0, [r4, #0xc]
+ mov r1, #0xb
+ mov r2, #0x28
+ bl FUN_02007558
+_02221D6A:
+ ldr r0, [r4]
+ ldr r1, _02221D7C ; =MOD08_02221B0C
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02221D78: .word 0x00000E38
+_02221D7C: .word MOD08_02221B0C
+
+ thumb_func_start MOD08_02221D80
+MOD08_02221D80: ; 0x02221D80
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ add r1, r2, #0
+ add r2, r3, #0
+ ldr r4, [sp, #0x10]
+ bl FUN_0200C154
+ str r0, [r5]
+ add r6, r4, #4
+ add r3, r5, #4
+ mov r2, #4
+_02221D98:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02221D98
+ ldr r0, [r6]
+ add r2, r5, #0
+ str r0, [r3]
+ add r3, r4, #0
+ add r3, #0x28
+ ldmia r3!, {r0, r1}
+ add r2, #0x28
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ mov r0, #0x3c
+ ldrsh r0, [r4, r0]
+ strh r0, [r5, #0x3c]
+ mov r0, #0x3e
+ ldrsh r0, [r4, r0]
+ strh r0, [r5, #0x3e]
+ mov r0, #0x40
+ ldrsh r1, [r4, r0]
+ add r0, r5, #0
+ add r0, #0x40
+ strh r1, [r0]
+ ldr r0, [r4, #0x44]
+ mov r1, #0
+ str r0, [r5, #0x44]
+ str r1, [r5, #0x48]
+ ldr r0, [r5]
+ bl FUN_0200C644
+ ldr r0, [r5]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r5]
+ mov r1, #1
+ bl FUN_0200C6B0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02221DF0
+MOD08_02221DF0: ; 0x02221DF0
+ ldr r3, _02221DF8 ; =FUN_0200C3DC
+ ldr r0, [r0]
+ bx r3
+ nop
+_02221DF8: .word FUN_0200C3DC
+
+ thumb_func_start MOD08_02221DFC
+MOD08_02221DFC: ; 0x02221DFC
+ ldr r3, _02221E04 ; =FUN_0200C644
+ ldr r0, [r0]
+ bx r3
+ nop
+_02221E04: .word FUN_0200C644
+
+ thumb_func_start MOD08_02221E08
+MOD08_02221E08: ; 0x02221E08
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldr r0, [r4, #0x48]
+ cmp r0, #0
+ bne _02221E1A
+ add sp, #0x10
+ mov r0, #1
+ pop {r4, pc}
+_02221E1A:
+ ldr r0, [r4, #0x44]
+ cmp r0, #0
+ beq _02221E2A
+ cmp r0, #1
+ beq _02221E2A
+ cmp r0, #2
+ beq _02221EAC
+ b _02221EB2
+_02221E2A:
+ add r0, r4, #4
+ bl MOD08_02217D98
+ cmp r0, #0
+ beq _02221E6A
+ add r0, r4, #0
+ add r0, #0x28
+ bl MOD08_022180C4
+ mov r0, #0x3c
+ ldrsh r1, [r4, r0]
+ ldr r0, [r4, #0x28]
+ add r0, r1, r0
+ str r0, [r4, #0x1c]
+ mov r1, #0x3e
+ ldrsh r2, [r4, r1]
+ mov r1, #4
+ ldrsh r1, [r4, r1]
+ ldr r0, [r4]
+ add r1, r2, r1
+ mov r2, #0x40
+ ldrsh r3, [r4, r2]
+ mov r2, #6
+ ldrsh r2, [r4, r2]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add r2, r3, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ b _02221EB2
+_02221E6A:
+ ldr r0, [r4, #0x44]
+ cmp r0, #1
+ bge _02221EA4
+ cmp r0, #0
+ bne _02221E92
+ ldr r1, [r4, #0xc]
+ ldr r2, _02221EB8 ; =0x00007FFF
+ lsl r1, r1, #0x10
+ str r2, [sp]
+ ldr r0, [r4, #0x10]
+ lsr r1, r1, #0x10
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x18]
+ add r3, r1, #0
+ str r0, [sp, #8]
+ ldr r0, _02221EBC ; =0x0000071C
+ str r0, [sp, #0xc]
+ add r0, r4, #4
+ bl MOD08_02217D44
+_02221E92:
+ ldr r0, [r4, #8]
+ ldr r2, _02221EC0 ; =0x0000FFFF
+ str r0, [sp]
+ add r0, r4, #0
+ ldr r3, _02221EC4 ; =0xFFFFF000
+ add r0, #0x28
+ mov r1, #0
+ bl MOD08_022180AC
+_02221EA4:
+ ldr r0, [r4, #0x44]
+ add r0, r0, #1
+ str r0, [r4, #0x44]
+ b _02221EB2
+_02221EAC:
+ add sp, #0x10
+ mov r0, #0
+ pop {r4, pc}
+_02221EB2:
+ mov r0, #1
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_02221EB8: .word 0x00007FFF
+_02221EBC: .word 0x0000071C
+_02221EC0: .word 0x0000FFFF
+_02221EC4: .word 0xFFFFF000
+
+ thumb_func_start MOD08_02221EC8
+MOD08_02221EC8: ; 0x02221EC8
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r7, r0, #0
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ cmp r0, #6
+ bhi _02221F3C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02221EE4: ; jump table
+ .short _02221EF2 - _02221EE4 - 2 ; case 0
+ .short _02221F0A - _02221EE4 - 2 ; case 1
+ .short _02221F56 - _02221EE4 - 2 ; case 2
+ .short _02221F6C - _02221EE4 - 2 ; case 3
+ .short _0222200C - _02221EE4 - 2 ; case 4
+ .short _02222036 - _02221EE4 - 2 ; case 5
+ .short _02222076 - _02221EE4 - 2 ; case 6
+_02221EF2:
+ add r0, r4, #0
+ add r0, #0xc
+ bl MOD08_02221E08
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xf0
+ str r1, [r0]
+ b _022220A0
+_02221F0A:
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r1, [r0]
+ add r0, r4, #0
+ add r1, #0xa
+ add r0, #0xfc
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #0xa
+ bl _s32_div_f
+ mov r1, #0x1f
+ sub r1, r1, r0
+ lsl r1, r1, #8
+ orr r1, r0
+ ldr r0, _022220A8 ; =0x04000052
+ strh r1, [r0]
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r1, [r0]
+ ldr r0, _022220AC ; =0x00000136
+ cmp r1, r0
+ bge _02221F3E
+_02221F3C:
+ b _022220A0
+_02221F3E:
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_0200C90C
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xf0
+ str r1, [r0]
+ b _022220A0
+_02221F56:
+ ldr r1, _022220B0 ; =0x0000FFFF
+ ldr r0, _022220A8 ; =0x04000052
+ strh r1, [r0]
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xf0
+ str r1, [r0]
+ b _022220A0
+_02221F6C:
+ add r0, r4, #0
+ add r0, #0xf4
+ ldr r0, [r0]
+ cmp r0, #0
+ bgt _02221FB0
+ add r0, r4, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ mov r2, #0x4c
+ add r3, r0, #0
+ mul r3, r2
+ add r0, r4, r3
+ mov r1, #1
+ add r0, #0xa0
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ mul r2, r0
+ add r0, r4, r2
+ ldr r0, [r0, #0x58]
+ bl FUN_0200C644
+ add r0, r4, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xf8
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #8
+ add r0, #0xf4
+ str r1, [r0]
+_02221FB0:
+ add r0, r4, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ cmp r0, #2
+ bge _02221FC8
+ add r0, r4, #0
+ add r0, #0xf4
+ ldr r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xf4
+ str r1, [r0]
+_02221FC8:
+ add r0, r4, #0
+ add r0, #0xc
+ bl MOD08_02221E08
+ add r5, r4, #0
+ add r6, r0, #0
+ mov r7, #0
+ add r5, #0x58
+_02221FD8:
+ add r0, r5, #0
+ bl MOD08_02221E08
+ str r0, [sp]
+ cmp r0, #0
+ bne _02221FEC
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02221DFC
+_02221FEC:
+ ldr r0, [sp]
+ add r7, r7, #1
+ orr r6, r0
+ add r5, #0x4c
+ cmp r7, #2
+ blt _02221FD8
+ cmp r6, #0
+ bne _022220A0
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xf0
+ str r1, [r0]
+ b _022220A0
+_0222200C:
+ ldr r0, [r4, #0xc]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0xc]
+ ldr r0, [r0]
+ bl FUN_02020388
+ cmp r0, #0
+ bne _022220A0
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200C90C
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xf0
+ str r1, [r0]
+ b _022220A0
+_02222036:
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r1, [r0]
+ add r0, r4, #0
+ sub r1, #0xa
+ add r0, #0xfc
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #0xa
+ bl _s32_div_f
+ mov r1, #0x1f
+ sub r1, r1, r0
+ lsl r1, r1, #8
+ orr r1, r0
+ ldr r0, _022220A8 ; =0x04000052
+ strh r1, [r0]
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ cmp r0, #0
+ bgt _022220A0
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xf0
+ str r1, [r0]
+ b _022220A0
+_02222076:
+ add r5, r4, #0
+ mov r6, #0
+ add r5, #0x58
+_0222207C:
+ add r0, r5, #0
+ bl MOD08_02221DF0
+ add r6, r6, #1
+ add r5, #0x4c
+ cmp r6, #2
+ blt _0222207C
+ ldr r0, [r4, #0xc]
+ bl FUN_0200C3DC
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, r6, r7, pc}
+_022220A0:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022220A8: .word 0x04000052
+_022220AC: .word 0x00000136
+_022220B0: .word 0x0000FFFF
+
+ thumb_func_start MOD08_022220B4
+MOD08_022220B4: ; 0x022220B4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x48
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ str r3, [sp, #0x10]
+ bl MOD08_02212014
+ mov r1, #1
+ lsl r1, r1, #8
+ bl AllocFromHeap
+ add r4, r0, #0
+ str r5, [r4]
+ str r6, [r4, #4]
+ str r7, [r4, #8]
+ mov r1, #8
+ add r0, #0xf4
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xf8
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xf0
+ str r1, [r0]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02217C1C
+ ldr r1, [sp, #0x10]
+ lsl r0, r0, #0x11
+ str r1, [r4, #0xc]
+ mov r1, #0
+ str r1, [r4, #0x50]
+ ldr r2, _022221EC ; =0x0000BFFF
+ neg r0, r0
+ str r2, [sp]
+ str r0, [sp, #4]
+ ldr r1, _022221F0 ; =0xFFFF8000
+ ldr r0, _022221F4 ; =0x0000071C
+ str r1, [sp, #8]
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ lsr r1, r1, #0x12
+ add r0, #0x10
+ add r3, r1, #0
+ bl MOD08_02217D44
+ ldr r0, [r4, #0x14]
+ ldr r2, _022221F8 ; =0x0000FFFF
+ str r0, [sp]
+ add r0, r4, #0
+ ldr r3, _022221FC ; =0xFFFFF000
+ add r0, #0x34
+ mov r1, #0
+ bl MOD08_022180AC
+ add r0, r4, #0
+ ldr r1, [r4, #0x28]
+ add r0, #0x48
+ strh r1, [r0]
+ mov r0, #1
+ str r0, [r4, #0x54]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0
+ bl MOD08_02217B98
+ add r1, r4, #0
+ add r1, #0x4a
+ strh r0, [r1]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #1
+ bl MOD08_02217B98
+ add r1, r4, #0
+ add r1, #0x4c
+ strh r0, [r1]
+ mov r1, #0x4a
+ mov r2, #0x4c
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ bl FUN_0200C714
+ ldr r0, [r4, #0xc]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r1, [r4]
+ add r0, sp, #0x14
+ bl MOD08_02215474
+ mov r0, #0x4a
+ ldrsh r0, [r4, r0]
+ add r1, sp, #0x14
+ add r5, r4, #0
+ strh r0, [r1]
+ mov r0, #0x4c
+ ldrsh r0, [r4, r0]
+ add r7, r4, #0
+ mov r6, #0
+ strh r0, [r1, #2]
+ add r5, #0x58
+ add r7, #0xc
+_0222219A:
+ str r7, [sp]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ add r3, sp, #0x14
+ bl MOD08_02221D80
+ add r6, r6, #1
+ add r5, #0x4c
+ cmp r6, #2
+ blt _0222219A
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xfc
+ str r1, [r0]
+ ldr r0, [r4]
+ mov r2, #0x1f
+ bl MOD08_02227994
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200C90C
+ mov r6, #0
+ add r5, r4, #0
+ mov r7, #1
+_022221CE:
+ ldr r0, [r5, #0x58]
+ add r1, r7, #0
+ bl FUN_0200C90C
+ add r6, r6, #1
+ add r5, #0x4c
+ cmp r6, #2
+ blt _022221CE
+ ldr r0, [r4]
+ ldr r1, _02222200 ; =MOD08_02221EC8
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x48
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022221EC: .word 0x0000BFFF
+_022221F0: .word 0xFFFF8000
+_022221F4: .word 0x0000071C
+_022221F8: .word 0x0000FFFF
+_022221FC: .word 0xFFFFF000
+_02222200: .word MOD08_02221EC8
+
+ thumb_func_start MOD08_02222204
+MOD08_02222204: ; 0x02222204
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ mov r2, #0x60
+ ldrsh r3, [r4, r2]
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x5c]
+ mov r1, #0
+ add r2, r3, r2
+ bl FUN_02007558
+ mov r2, #0x62
+ ldrsh r3, [r4, r2]
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x5c]
+ mov r1, #1
+ add r2, r3, r2
+ bl FUN_02007558
+ mov r1, #0x60
+ ldrsh r2, [r4, r1]
+ mov r1, #0x10
+ ldrsh r1, [r4, r1]
+ ldr r0, [r4, #0x58]
+ add r1, r2, r1
+ mov r2, #0x62
+ ldrsh r3, [r4, r2]
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add r3, r3, r2
+ mov r2, #0x66
+ ldrsh r2, [r4, r2]
+ sub r2, r3, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ add r0, r4, #0
+ add r0, #0x34
+ add r1, sp, #4
+ add r2, sp, #0
+ bl MOD08_0221825C
+ mov r0, #0x64
+ ldrsh r0, [r4, r0]
+ bl _fflt
+ add r1, r0, #0
+ ldr r0, _02222298 ; =0x3DCCCCCD
+ bl _fmul
+ add r1, r0, #0
+ ldr r0, [sp, #4]
+ bl _fadd
+ add r1, r0, #0
+ str r1, [sp, #4]
+ ldr r0, [r4, #0x58]
+ ldr r2, [sp]
+ bl FUN_0200C884
+ mov r0, #0x64
+ ldrsh r1, [r4, r0]
+ sub r0, #0x65
+ add r4, #0x64
+ mul r0, r1
+ strh r0, [r4]
+ add sp, #8
+ pop {r4, pc}
+ nop
+_02222298: .word 0x3DCCCCCD
+
+ thumb_func_start MOD08_0222229C
+MOD08_0222229C: ; 0x0222229C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r2, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _022222B4
+ cmp r0, #1
+ beq _022222EE
+ cmp r0, #2
+ beq _0222232A
+ b _0222233C
+_022222B4:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_022183F0
+ add r0, r4, #0
+ add r0, #0x34
+ bl MOD08_02218224
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02222204
+ cmp r5, #0
+ bne _0222233C
+ mov r2, #0xa
+ str r2, [sp]
+ str r2, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x34
+ mov r1, #0xc
+ mov r3, #0xf
+ bl MOD08_022181A8
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _0222233C
+_022222EE:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_022183F0
+ add r0, r4, #0
+ add r0, #0x34
+ bl MOD08_02218224
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02222204
+ cmp r5, #0
+ bne _0222233C
+ mov r2, #0x60
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x5c]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x62
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x5c]
+ mov r1, #1
+ bl FUN_02007558
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _0222233C
+_0222232A:
+ ldr r0, [r4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #0xc
+ pop {r4, r5, pc}
+_0222233C:
+ ldr r0, [r4, #4]
+ bl FUN_0200BC1C
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02222348
+MOD08_02222348: ; 0x02222348
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0x68
+ bl AllocFromHeap
+ add r4, r0, #0
+ str r5, [r4]
+ add r0, r5, #0
+ bl MOD08_02212504
+ str r0, [r4, #4]
+ mov r0, #0
+ str r0, [r4, #8]
+ str r0, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ mov r1, #0
+ str r0, [r4, #0x5c]
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0x60
+ strh r0, [r1]
+ ldr r0, [r4, #0x5c]
+ mov r1, #1
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0x62
+ strh r0, [r1]
+ ldr r0, [r4, #0x5c]
+ mov r1, #0x29
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0x66
+ strh r0, [r1]
+ mov r0, #6
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0x10
+ mov r1, #2
+ mov r2, #0
+ mov r3, #1
+ bl MOD08_022183C0
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x58]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #0x58]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r4, #0x58]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x58]
+ mov r1, #1
+ bl FUN_0200C6B0
+ mov r0, #0xf
+ str r0, [sp]
+ mov r1, #0xa
+ str r1, [sp, #4]
+ mov r0, #7
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x34
+ mov r2, #0xc
+ add r3, r1, #0
+ bl MOD08_022181A8
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0x64
+ strh r1, [r0]
+ ldr r0, [r4]
+ mov r1, #0x1c
+ mov r2, #0xf
+ bl MOD08_02227994
+ ldr r0, [r4]
+ ldr r1, _02222414 ; =MOD08_0222229C
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02222414: .word MOD08_0222229C
+
+ thumb_func_start MOD08_02222418
+MOD08_02222418: ; 0x02222418
+ mov r2, #0x12
+ ldrsh r2, [r0, r2]
+ mov r3, #0x10
+ ldrsh r0, [r0, r3]
+ neg r2, r2
+ lsl r2, r2, #0x10
+ neg r0, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ orr r0, r2
+ mov r2, #3
+ ldr r3, _02222434 ; =0x020CE1FC
+ lsl r2, r2, #8
+ bx r3
+ .align 2, 0
+_02222434: .word 0x020CE1FC
+
+ thumb_func_start MOD08_02222438
+MOD08_02222438: ; 0x02222438
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ bl MOD08_02218970
+ str r0, [sp, #0xc]
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0
+ bl MOD08_02222418
+ add r0, r5, #0
+ add r0, #0x1c
+ bl MOD08_02217ECC
+ str r0, [sp, #8]
+ mov r0, #0x14
+ ldrsh r4, [r5, r0]
+ mov r0, #0x16
+ ldrsh r0, [r5, r0]
+ cmp r4, r0
+ bgt _022224D8
+ ldr r1, [sp, #0xc]
+ lsl r2, r4, #2
+ add r1, r1, r2
+ str r1, [sp]
+_0222246C:
+ ldr r1, [sp]
+ sub r0, r0, r4
+ ldr r2, [r1]
+ lsl r1, r2, #0x10
+ asr r1, r1, #0x10
+ str r1, [sp, #4]
+ lsr r1, r2, #0x10
+ lsl r1, r1, #0x10
+ asr r7, r1, #0x10
+ mov r1, #0x1e
+ ldrsh r1, [r5, r1]
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ sub r0, r7, r0
+ lsl r0, r0, #0x10
+ asr r7, r0, #0x10
+ mov r0, #0x1c
+ ldrsh r1, [r5, r0]
+ mov r0, #0x14
+ ldrsh r0, [r5, r0]
+ add r0, #0x28
+ sub r0, r0, r4
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ ldr r1, [sp, #4]
+ sub r0, r1, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #4]
+ sub r6, r4, #1
+ bpl _022224B4
+ add r6, #0xc0
+_022224B4:
+ ldr r0, [sp, #4]
+ lsl r1, r7, #0x10
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x10
+ bl MOD08_02218998
+ ldr r1, [sp, #0xc]
+ lsl r2, r6, #2
+ str r0, [r1, r2]
+ ldr r0, [sp]
+ add r4, r4, #1
+ add r0, r0, #4
+ str r0, [sp]
+ mov r0, #0x16
+ ldrsh r0, [r5, r0]
+ cmp r4, r0
+ ble _0222246C
+_022224D8:
+ ldr r0, [sp, #8]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022224E0
+MOD08_022224E0: ; 0x022224E0
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #4
+ bhi _02222548
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022224FA: ; jump table
+ .short _02222504 - _022224FA - 2 ; case 0
+ .short _02222536 - _022224FA - 2 ; case 1
+ .short _0222255E - _022224FA - 2 ; case 2
+ .short _022225AE - _022224FA - 2 ; case 3
+ .short _022225CE - _022224FA - 2 ; case 4
+_02222504:
+ add r0, r4, #0
+ bl MOD08_02222438
+ cmp r0, #0
+ bne _02222548
+ ldr r0, [r4, #4]
+ mov r1, #0x1f
+ add r0, r0, #1
+ str r0, [r4, #4]
+ ldr r0, [r4]
+ mov r2, #0
+ bl MOD08_02227A00
+ mov r1, #0x1f
+ mov r2, #0
+ str r1, [sp]
+ mov r0, #0x10
+ add r4, #0x40
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r3, r2, #0
+ bl MOD08_022186D4
+ add sp, #8
+ pop {r4, r5, r6, pc}
+_02222536:
+ add r0, r4, #0
+ bl MOD08_02222438
+ add r0, r4, #0
+ add r0, #0x40
+ bl MOD08_02218704
+ cmp r0, #0
+ bne _0222254A
+_02222548:
+ b _02222650
+_0222254A:
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ ldr r0, [r4, #0x18]
+ bl MOD08_02218984
+ mov r0, #0
+ add sp, #8
+ str r0, [r4, #8]
+ pop {r4, r5, r6, pc}
+_0222255E:
+ ldr r0, [r4]
+ bl MOD08_02212490
+ mov r3, #0x10
+ ldrsh r3, [r4, r3]
+ mov r1, #2
+ mov r2, #0
+ neg r3, r3
+ bl FUN_020179E0
+ ldr r0, [r4]
+ bl MOD08_02212490
+ mov r3, #0x12
+ ldrsh r3, [r4, r3]
+ mov r1, #2
+ mov r2, #3
+ neg r3, r3
+ bl FUN_020179E0
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #8
+ ble _02222650
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x1f
+ add r0, #0x40
+ add r3, r2, #0
+ bl MOD08_022186D4
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, r6, pc}
+_022225AE:
+ add r0, r4, #0
+ add r0, #0x40
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02222650
+ ldr r0, [r4, #0xc]
+ mov r1, #6
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, r6, pc}
+_022225CE:
+ ldr r0, [r4, #0x18]
+ bl MOD08_0221894C
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ add r5, r0, #0
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215600
+ add r1, r0, #0
+ lsl r0, r5, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldr r0, [r4]
+ bl MOD08_02215574
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ mov r0, #0
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02212014
+ add r3, r0, #0
+ lsl r0, r5, #0x18
+ mov r1, #1
+ lsr r0, r0, #0x18
+ lsl r1, r1, #0xe
+ mov r2, #0
+ bl FUN_02017F18
+ ldr r0, [r4]
+ bl MOD08_02212490
+ add r5, r0, #0
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ bl FUN_02018744
+ ldr r0, [r4]
+ add r1, r6, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_02222650:
+ add sp, #8
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02222654
+MOD08_02222654: ; 0x02222654
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0x68
+ bl AllocFromHeap
+ mov r1, #0
+ mov r2, #0x68
+ add r4, r0, #0
+ bl memset
+ ldr r1, _022227BC ; =MOD08_022224E0
+ str r5, [r4]
+ add r0, r5, #0
+ add r2, r4, #0
+ bl MOD08_02212400
+ str r0, [sp, #0x14]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x10]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x12]
+ ldr r0, [r4, #0xc]
+ mov r1, #0x29
+ bl FUN_0200782C
+ mov r1, #0x12
+ ldrsh r2, [r4, r1]
+ sub r0, r2, r0
+ strh r0, [r4, #0x12]
+ mov r0, #0x10
+ ldrsh r0, [r4, r0]
+ mov r2, #1
+ sub r0, #0x28
+ strh r0, [r4, #0x10]
+ ldrsh r0, [r4, r1]
+ mov r1, #6
+ sub r0, #0x28
+ strh r0, [r4, #0x12]
+ ldr r0, [r4, #0xc]
+ bl FUN_02007558
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02217C1C
+ add r6, r0, #0
+ mov r0, #0x12
+ ldrsh r1, [r4, r0]
+ sub r1, #8
+ strh r1, [r4, #0x14]
+ ldrsh r0, [r4, r0]
+ add r0, #0x58
+ strh r0, [r4, #0x16]
+ mov r0, #0x14
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bge _022226F0
+ mov r0, #0
+ strh r0, [r4, #0x14]
+_022226F0:
+ mov r0, #0x16
+ ldrsh r0, [r4, r0]
+ cmp r0, #0xc0
+ ble _022226FC
+ mov r0, #0xc0
+ strh r0, [r4, #0x16]
+_022226FC:
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_022155C4
+ add r7, r0, #0
+ ldr r0, [sp, #0x14]
+ bl FUN_0201B6CC
+ str r0, [sp, #0x18]
+ ldrh r0, [r4, #0x10]
+ ldrh r1, [r4, #0x12]
+ bl MOD08_02218998
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ bl MOD08_02212014
+ mov r1, #0x50
+ str r1, [sp]
+ ldr r1, [sp, #0x18]
+ str r7, [sp, #4]
+ add r1, r1, #1
+ str r1, [sp, #8]
+ ldr r1, [sp, #0x1c]
+ ldr r2, _022227C0 ; =0x0000038E
+ str r1, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r0, #0x14
+ mov r1, #0x16
+ ldrsh r0, [r4, r0]
+ ldrsh r1, [r4, r1]
+ lsl r3, r6, #0xf
+ lsl r0, r0, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl MOD08_022188DC
+ str r0, [r4, #0x18]
+ mov r0, #0x28
+ str r0, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x1c
+ mov r2, #0x50
+ add r3, r1, #0
+ bl MOD08_02217E80
+ ldr r0, [r4, #0x24]
+ add r1, r0, #0
+ mul r1, r6
+ str r1, [r4, #0x24]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02227468
+ sub r0, r0, #3
+ cmp r0, #1
+ bhi _022227AE
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02215574
+ add r1, r0, #0
+ lsl r0, r5, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldr r0, [r4]
+ bl MOD08_02215574
+ add r1, r0, #0
+ add r1, r1, #1
+ lsl r1, r1, #0x18
+ mov r0, #0
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+_022227AE:
+ ldr r0, [sp, #0x14]
+ add r1, r4, #0
+ bl MOD08_022224E0
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022227BC: .word MOD08_022224E0
+_022227C0: .word 0x0000038E
+
+ thumb_func_start MOD08_022227C4
+MOD08_022227C4: ; 0x022227C4
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r2, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #3
+ bhi _02222874
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022227DE: ; jump table
+ .short _022227E6 - _022227DE - 2 ; case 0
+ .short _0222280C - _022227DE - 2 ; case 1
+ .short _0222281E - _022227DE - 2 ; case 2
+ .short _02222862 - _022227DE - 2 ; case 3
+_022227E6:
+ add r0, r4, #0
+ add r0, #0x38
+ bl MOD08_02218080
+ ldr r2, [r4, #0x38]
+ mov r1, #0x1f
+ sub r1, r1, r2
+ lsl r1, r1, #8
+ orr r2, r1
+ ldr r1, _02222880 ; =0x04000052
+ cmp r0, #0
+ strh r2, [r1]
+ bne _02222874
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0
+ str r0, [r4, #0xc]
+ b _02222874
+_0222280C:
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ cmp r0, #0x20
+ ble _02222874
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02222874
+_0222281E:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x14
+ add r1, sp, #4
+ add r2, sp, #0
+ bl MOD08_0221825C
+ ldr r0, [r4, #0x4c]
+ cmp r0, #1
+ bne _02222844
+ ldr r1, [sp, #4]
+ mov r0, #0
+ bl _fsub
+ str r0, [sp, #4]
+_02222844:
+ ldr r0, [r4, #0x10]
+ ldr r1, [sp, #4]
+ ldr r2, [sp]
+ bl FUN_0200C884
+ cmp r5, #0
+ bne _02222874
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02222874
+_02222862:
+ ldr r0, [r4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02222874:
+ ldr r0, [r4, #4]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_02222880: .word 0x04000052
+
+ thumb_func_start MOD08_02222884
+MOD08_02222884: ; 0x02222884
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r2, r0, #0
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ beq _022228A0
+ cmp r0, #1
+ beq _02222928
+ cmp r0, #2
+ bne _0222289C
+ b _022229B4
+_0222289C:
+ add sp, #0xc
+ pop {r4, r5, pc}
+_022228A0:
+ add r0, r5, #0
+ add r0, #0x14
+ bl MOD08_022183F0
+ mov r2, #0x38
+ mov r3, #0x3a
+ add r0, r5, #0
+ ldrsh r2, [r5, r2]
+ ldrsh r3, [r5, r3]
+ ldr r1, [r5, #8]
+ add r0, #0x14
+ bl MOD08_02217CD0
+ ldr r0, [r5, #0x10]
+ cmp r0, #1
+ bne _022228DA
+ mov r3, #0x3a
+ ldrsh r4, [r5, r3]
+ ldr r3, [r5, #0x3c]
+ mov r2, #0x38
+ sub r3, r4, r3
+ add r0, r5, #0
+ lsl r3, r3, #0x10
+ ldrsh r2, [r5, r2]
+ ldr r1, [r5, #0xc]
+ add r0, #0x14
+ asr r3, r3, #0x10
+ bl MOD08_02217C94
+_022228DA:
+ ldr r0, [r5, #8]
+ bl FUN_02007F20
+ cmp r0, #0
+ bne _022229C2
+ mov r2, #0
+ str r2, [sp]
+ ldr r0, [r5, #8]
+ mov r1, #0x10
+ add r3, r2, #0
+ bl FUN_02007E68
+ ldr r0, [r5, #0x10]
+ cmp r0, #1
+ bne _0222291E
+ ldr r0, [r5, #0xc]
+ bl MOD08_02217C08
+ mov r1, #1
+ add r4, r1, #0
+ lsl r4, r0
+ ldr r0, [r5]
+ bl MOD08_02215504
+ mov r1, #0x10
+ str r1, [sp]
+ mov r3, #0
+ lsl r2, r4, #0x10
+ str r3, [sp, #4]
+ mov r1, #4
+ lsr r2, r2, #0x10
+ str r3, [sp, #8]
+ bl FUN_02003210
+_0222291E:
+ ldr r0, [r5, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r5, #4]
+ pop {r4, r5, pc}
+_02222928:
+ add r0, r5, #0
+ add r0, #0x14
+ bl MOD08_022183F0
+ mov r2, #0x38
+ mov r3, #0x3a
+ add r0, r5, #0
+ ldrsh r2, [r5, r2]
+ ldrsh r3, [r5, r3]
+ ldr r1, [r5, #8]
+ add r0, #0x14
+ bl MOD08_02217CD0
+ ldr r0, [r5, #0x10]
+ cmp r0, #1
+ bne _02222962
+ mov r3, #0x3a
+ ldrsh r4, [r5, r3]
+ ldr r3, [r5, #0x3c]
+ mov r2, #0x38
+ sub r3, r4, r3
+ add r0, r5, #0
+ lsl r3, r3, #0x10
+ ldrsh r2, [r5, r2]
+ ldr r1, [r5, #0xc]
+ add r0, #0x14
+ asr r3, r3, #0x10
+ bl MOD08_02217C94
+_02222962:
+ ldr r0, [r5, #8]
+ bl FUN_02007F20
+ cmp r0, #0
+ bne _022229C2
+ mov r2, #0x38
+ ldrsh r2, [r5, r2]
+ ldr r0, [r5, #8]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x3a
+ ldrsh r2, [r5, r2]
+ ldr r0, [r5, #8]
+ mov r1, #1
+ bl FUN_02007558
+ ldr r0, [r5, #0x10]
+ cmp r0, #1
+ bne _022229AA
+ ldr r0, [r5, #8]
+ mov r1, #6
+ mov r2, #0
+ bl FUN_02007558
+ mov r2, #0x3a
+ ldrsh r3, [r5, r2]
+ ldr r2, [r5, #0x3c]
+ mov r1, #0x38
+ sub r2, r3, r2
+ lsl r2, r2, #0x10
+ ldrsh r1, [r5, r1]
+ ldr r0, [r5, #0xc]
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+_022229AA:
+ ldr r0, [r5, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r5, #4]
+ pop {r4, r5, pc}
+_022229B4:
+ ldr r0, [r5]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r5, #0
+ bl FreeToHeap
+_022229C2:
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022229C8
+MOD08_022229C8: ; 0x022229C8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0x50
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x50
+ bl memset
+ str r5, [r4]
+ add r0, r5, #0
+ bl MOD08_02212504
+ str r0, [r4, #4]
+ add r0, r5, #0
+ bl MOD08_02212004
+ str r0, [r4, #0x4c]
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x10]
+ mov r0, #8
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #0xa
+ add r0, #0x14
+ mov r1, #0xe
+ add r3, r2, #0
+ bl MOD08_02218120
+ add r0, r4, #0
+ add r0, #0x38
+ mov r1, #0
+ mov r2, #0x10
+ mov r3, #8
+ bl MOD08_02218030
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4]
+ mov r1, #0
+ mov r2, #0x1f
+ bl MOD08_02227994
+ ldr r0, [r4, #0x10]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r4, #0x4c]
+ cmp r0, #1
+ ldr r0, [r4, #0x10]
+ bne _02222A48
+ ldr r1, _02222A6C ; =0xBFB33333
+ ldr r2, _02222A70 ; =0x3FB33333
+ bl FUN_0200C884
+ b _02222A50
+_02222A48:
+ ldr r1, _02222A70 ; =0x3FB33333
+ add r2, r1, #0
+ bl FUN_0200C884
+_02222A50:
+ ldr r0, [r4, #0x10]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4]
+ ldr r1, _02222A74 ; =MOD08_022227C4
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02222A6C: .word 0xBFB33333
+_02222A70: .word 0x3FB33333
+_02222A74: .word MOD08_022227C4
+
+ thumb_func_start MOD08_02222A78
+MOD08_02222A78: ; 0x02222A78
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ bl MOD08_02212014
+ mov r1, #0x40
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x40
+ bl memset
+ str r5, [r4]
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x38]
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x3a]
+ ldr r0, [r4, #8]
+ mov r1, #0x29
+ bl FUN_0200782C
+ str r0, [r4, #0x3c]
+ mov r1, #4
+ add r0, r4, #0
+ str r1, [sp]
+ add r0, #0x14
+ mov r2, #0
+ mov r3, #1
+ bl MOD08_022183C0
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02217C1C
+ mov r1, #0x14
+ ldrsh r1, [r4, r1]
+ mov r2, #0x10
+ add r0, r1, r0
+ mov r1, #0
+ strh r0, [r4, #0x14]
+ str r1, [sp]
+ ldr r0, [r4, #8]
+ add r3, r1, #0
+ bl FUN_02007E68
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_022124D8
+ str r0, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02227468
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02227468
+ cmp r5, #2
+ bne _02222B24
+ cmp r0, #4
+ beq _02222B2C
+_02222B24:
+ cmp r5, #5
+ bne _02222B5E
+ cmp r0, #3
+ bne _02222B5E
+_02222B2C:
+ ldr r0, [r4, #0xc]
+ bl MOD08_02217C08
+ mov r1, #1
+ add r5, r1, #0
+ lsl r5, r0
+ ldr r0, [r4]
+ bl MOD08_02215504
+ mov r3, #0
+ lsl r2, r5, #0x10
+ str r3, [sp]
+ mov r1, #0x10
+ str r1, [sp, #4]
+ mov r1, #4
+ lsr r2, r2, #0x10
+ str r3, [sp, #8]
+ bl FUN_02003210
+ mov r2, #1
+ str r2, [r4, #0x10]
+ ldr r0, [r4, #8]
+ mov r1, #6
+ bl FUN_02007558
+_02222B5E:
+ ldr r0, [r4]
+ ldr r1, _02222B6C ; =MOD08_02222884
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02222B6C: .word MOD08_02222884
+
+ thumb_func_start MOD08_02222B70
+MOD08_02222B70: ; 0x02222B70
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ mov r5, #0
+ cmp r0, #3
+ bhi _02222BEC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02222B8A: ; jump table
+ .short _02222B92 - _02222B8A - 2 ; case 0
+ .short _02222BAA - _02222B8A - 2 ; case 1
+ .short _02222BD0 - _02222B8A - 2 ; case 2
+ .short _02222BEA - _02222B8A - 2 ; case 3
+_02222B92:
+ add r0, r4, #0
+ add r0, #0x1c
+ bl MOD08_02218704
+ cmp r0, #1
+ bne _02222BEC
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0x20
+ str r0, [r4, #0x44]
+ b _02222BEC
+_02222BAA:
+ ldr r0, [r4, #0x44]
+ sub r0, r0, #1
+ str r0, [r4, #0x44]
+ bpl _02222BEC
+ ldr r0, [r4, #8]
+ mov r1, #8
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0x18
+ add r4, #0x1c
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r2, r5, #0
+ add r3, r1, #0
+ bl MOD08_022186D4
+ b _02222BEC
+_02222BD0:
+ add r0, r4, #0
+ add r0, #0x1c
+ bl MOD08_02218704
+ cmp r0, #1
+ bne _02222BEC
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #0x14]
+ bl MOD08_0221894C
+ b _02222BEC
+_02222BEA:
+ mov r5, #1
+_02222BEC:
+ add r0, r5, #0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02222BF4
+MOD08_02222BF4: ; 0x02222BF4
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _02222C0A
+ cmp r0, #1
+ beq _02222C2C
+ cmp r0, #2
+ beq _02222C3E
+ pop {r4, r5, r6, pc}
+_02222C0A:
+ ldr r0, [r4, #0x48]
+ bl FUN_0200C658
+ cmp r0, #1
+ bne _02222C1E
+ ldr r0, [r4, #0x10]
+ mov r1, #6
+ mov r2, #1
+ bl FUN_02007558
+_02222C1E:
+ add r0, r4, #0
+ bl MOD08_02222B70
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, r6, pc}
+_02222C2C:
+ add r0, r4, #0
+ bl MOD08_02222B70
+ cmp r0, #0
+ beq _02222CC4
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, r6, pc}
+_02222C3E:
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ add r5, r0, #0
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215600
+ add r1, r0, #0
+ lsl r0, r5, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldr r0, [r4]
+ bl MOD08_02215574
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ mov r0, #0
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldr r0, [r4, #0x10]
+ mov r1, #6
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02212014
+ add r3, r0, #0
+ lsl r0, r5, #0x18
+ mov r1, #1
+ lsr r0, r0, #0x18
+ lsl r1, r1, #0xe
+ mov r2, #0
+ bl FUN_02017F18
+ ldr r0, [r4]
+ bl MOD08_02212490
+ add r5, r0, #0
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ bl FUN_02018744
+ ldr r0, [r4]
+ add r1, r6, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_02222CC4:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02222CC8
+MOD08_02222CC8: ; 0x02222CC8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ mov r1, #0x4c
+ add r7, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r7, [r4]
+ add r0, r7, #0
+ bl MOD08_02215504
+ str r0, [r4, #0x18]
+ ldr r0, [r4]
+ mov r1, #0
+ mov r2, #0x10
+ bl MOD08_02227A00
+ mov r2, #8
+ str r2, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x1c
+ mov r1, #0
+ mov r3, #0x10
+ bl MOD08_022186D4
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ mov r1, #0
+ str r0, [r4, #0x10]
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ ldr r0, [r4, #0x10]
+ mov r1, #0x29
+ bl FUN_0200782C
+ sub r0, r5, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ sub r0, #0x28
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x48]
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02227468
+ cmp r0, #5
+ beq _02222D58
+ cmp r0, #2
+ bne _02222D6A
+_02222D58:
+ ldr r0, [r4, #0x48]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r0, [r4, #0x48]
+ mov r1, #2
+ bl FUN_0200C6B0
+ b _02222DA6
+_02222D6A:
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ str r0, [sp, #0x14]
+ ldr r0, [r4]
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [sp, #0x14]
+ lsl r1, r1, #0x18
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldr r0, [r4]
+ bl MOD08_02215574
+ add r1, r0, #0
+ add r1, r1, #1
+ lsl r1, r1, #0x18
+ mov r0, #0
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldr r0, [r4, #0x48]
+ mov r1, #0
+ bl FUN_0200C644
+_02222DA6:
+ add r0, r7, #0
+ mov r1, #1
+ bl MOD08_022155C4
+ neg r1, r5
+ lsl r1, r1, #0x10
+ sub r6, #0x28
+ str r0, [sp, #0x18]
+ lsl r0, r6, #0x10
+ asr r0, r0, #0x10
+ neg r0, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x10
+ bl MOD08_02218998
+ add r6, r0, #0
+ add r0, r7, #0
+ bl MOD08_02212014
+ mov r1, #0x64
+ str r1, [sp]
+ ldr r1, [sp, #0x18]
+ mov r3, #5
+ str r1, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ str r6, [sp, #0xc]
+ str r0, [sp, #0x10]
+ lsl r0, r5, #0x18
+ add r5, #0x50
+ lsl r1, r5, #0x18
+ ldr r2, _02222E14 ; =0x0000038E
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ lsl r3, r3, #0xc
+ bl MOD08_022188DC
+ mov r2, #1
+ str r0, [r4, #0x14]
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, [r4, #0x18]
+ lsl r2, r2, #8
+ mov r3, #8
+ bl FUN_02003A64
+ ldr r0, [r4]
+ ldr r1, _02222E18 ; =MOD08_02222BF4
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02222E14: .word 0x0000038E
+_02222E18: .word MOD08_02222BF4
+
+ thumb_func_start MOD08_02222E1C
+MOD08_02222E1C: ; 0x02222E1C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #3
+ bhi _02222F1E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02222E36: ; jump table
+ .short _02222E3E - _02222E36 - 2 ; case 0
+ .short _02222E8E - _02222E36 - 2 ; case 1
+ .short _02222ECC - _02222E36 - 2 ; case 2
+ .short _02222F06 - _02222E36 - 2 ; case 3
+_02222E3E:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ cmp r0, #1
+ bne _02222E70
+ add r0, r4, #0
+ add r0, #0x14
+ add r1, sp, #8
+ add r2, sp, #4
+ bl MOD08_0221825C
+ ldr r0, [r4, #0x54]
+ bl _fflt
+ add r1, r0, #0
+ ldr r0, [sp, #8]
+ bl _fmul
+ add r1, r0, #0
+ ldr r0, [r4, #0x10]
+ ldr r2, [sp, #4]
+ bl FUN_0200C884
+ b _02222F1E
+_02222E70:
+ ldr r0, [r4, #0xc]
+ mov r1, #0xa
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #5
+ str r0, [r4, #0x4c]
+ mov r0, #8
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0x14
+ add r2, r1, #0
+ mov r3, #1
+ bl MOD08_02218120
+ b _02222F1E
+_02222E8E:
+ add r0, r4, #0
+ add r0, #0x38
+ bl MOD08_02218058
+ ldr r1, [r4, #0x38]
+ add r5, r0, #0
+ lsl r1, r1, #0x10
+ ldr r0, [r4, #0x10]
+ lsr r1, r1, #0x10
+ bl FUN_0200C898
+ cmp r5, #0
+ bne _02222F1E
+ ldr r0, [r4, #0x4c]
+ cmp r0, #0
+ ble _02222EC4
+ sub r0, r0, #1
+ str r0, [r4, #0x4c]
+ add r0, r4, #0
+ ldr r1, [r4, #0x38]
+ ldr r2, [r4, #0x50]
+ add r0, #0x38
+ mov r3, #4
+ str r1, [r4, #0x50]
+ bl MOD08_02218008
+ b _02222F1E
+_02222EC4:
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02222F1E
+_02222ECC:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ cmp r0, #1
+ bne _02222EFE
+ add r0, r4, #0
+ add r0, #0x14
+ add r1, sp, #8
+ add r2, sp, #4
+ bl MOD08_0221825C
+ ldr r0, [r4, #0x54]
+ bl _fflt
+ add r1, r0, #0
+ ldr r0, [sp, #8]
+ bl _fmul
+ add r1, r0, #0
+ ldr r0, [r4, #0x10]
+ ldr r2, [sp, #4]
+ bl FUN_0200C884
+ b _02222F1E
+_02222EFE:
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02222F1E
+_02222F06:
+ ldr r0, [r4, #0x10]
+ bl FUN_0200C3DC
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #0xc
+ pop {r4, r5, pc}
+_02222F1E:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD08_02222F28
+MOD08_02222F28: ; 0x02222F28
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r6, r1, #0
+ mov r1, #0x58
+ add r5, r0, #0
+ add r7, r2, #0
+ str r3, [sp, #4]
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ str r6, [r4, #4]
+ str r7, [r4, #8]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02217C1C
+ add r7, r0, #0
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD08_02215680
+ cmp r0, #1
+ bne _02222F68
+ mov r0, #0
+ mvn r0, r0
+ str r0, [r4, #0x54]
+ neg r6, r7
+ b _02222F6E
+_02222F68:
+ mov r0, #1
+ str r0, [r4, #0x54]
+ add r6, r7, #0
+_02222F6E:
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD08_02217B98
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ mov r2, #1
+ bl MOD08_02217B98
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #4]
+ mov r1, #2
+ str r0, [r4, #0x10]
+ bl FUN_0200C840
+ mov r1, #0xfe
+ lsl r1, r1, #0x16
+ ldr r0, [r4, #0x10]
+ add r2, r1, #0
+ bl FUN_0200C884
+ ldr r0, [r4, #0x10]
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #0xc]
+ bl FUN_0200C714
+ mov r1, #0x28
+ mul r1, r7
+ lsl r1, r1, #0x10
+ ldr r0, [r4, #0x10]
+ asr r1, r1, #0x10
+ mov r2, #0
+ bl FUN_0200C82C
+ ldr r0, [r4, #0x10]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200C6B0
+ mov r1, #0xb
+ mvn r1, r1
+ mul r1, r6
+ lsl r1, r1, #0x10
+ ldr r0, [r4, #0x10]
+ asr r1, r1, #0x10
+ mov r2, #0xc
+ bl FUN_0200C8DC
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD08_02227470
+ cmp r0, #4
+ ldr r0, [r4, #0x10]
+ bne _02223000
+ mov r1, #1
+ bl FUN_0200C5C0
+ b _02223006
+_02223000:
+ mov r1, #0
+ bl FUN_0200C5C0
+_02223006:
+ mov r0, #8
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #0xa
+ add r0, #0x14
+ mov r1, #1
+ add r3, r2, #0
+ bl MOD08_02218120
+ cmp r6, #0
+ blt _0222302E
+ add r0, r4, #0
+ ldr r1, _02223050 ; =0x0000FF48
+ ldr r2, _02223054 ; =0x0000E38D
+ add r0, #0x38
+ mov r3, #4
+ bl MOD08_02218008
+ ldr r0, _02223050 ; =0x0000FF48
+ b _0222303E
+_0222302E:
+ add r0, r4, #0
+ ldr r2, _02223058 ; =0x00001C71
+ add r0, #0x38
+ mov r1, #0
+ mov r3, #4
+ bl MOD08_02218008
+ mov r0, #0
+_0222303E:
+ str r0, [r4, #0x50]
+ ldr r0, [r4]
+ ldr r1, _0222305C ; =MOD08_02222E1C
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02223050: .word 0x0000FF48
+_02223054: .word 0x0000E38D
+_02223058: .word 0x00001C71
+_0222305C: .word MOD08_02222E1C
+
+ thumb_func_start MOD08_02223060
+MOD08_02223060: ; 0x02223060
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ str r1, [r5]
+ add r6, r3, #0
+ mov r3, #8
+ mov r1, #0xa
+ add r4, r2, #0
+ add r0, r5, #4
+ add r2, r1, #0
+ str r3, [sp]
+ bl MOD08_02218120
+ mov r0, #3
+ str r0, [r5, #0x2c]
+ mov r0, #8
+ str r0, [r5, #0x30]
+ mov r0, #0xa
+ str r0, [r5, #0x34]
+ ldr r0, [sp, #0x18]
+ add r1, r4, #0
+ str r0, [r5, #0x28]
+ ldr r0, [r5]
+ add r2, r6, #0
+ bl FUN_0200C714
+ ldr r0, [r5]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_0200C714
+ ldr r0, [r5]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r5]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r5]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [sp, #0x18]
+ cmp r0, #0
+ beq _022230C8
+ mov r2, #0xfe
+ ldr r0, [r5]
+ ldr r1, _022230D4 ; =0xBF800000
+ lsl r2, r2, #0x16
+ bl FUN_0200C884
+_022230C8:
+ ldr r0, [r5]
+ mov r1, #0
+ bl FUN_0200C644
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_022230D4: .word 0xBF800000
+
+ thumb_func_start MOD08_022230D8
+MOD08_022230D8: ; 0x022230D8
+ ldr r3, _022230E0 ; =FUN_0200C3DC
+ ldr r0, [r0]
+ bx r3
+ nop
+_022230E0: .word FUN_0200C3DC
+
+ thumb_func_start MOD08_022230E4
+MOD08_022230E4: ; 0x022230E4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_0200C5E0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022230FC
+MOD08_022230FC: ; 0x022230FC
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ add r0, r4, #4
+ bl MOD08_02218170
+ cmp r0, #1
+ bne _02223140
+ add r0, r4, #4
+ add r1, sp, #8
+ add r2, sp, #4
+ bl MOD08_0221825C
+ ldr r0, [r4, #0x28]
+ cmp r0, #0
+ beq _02223132
+ ldr r1, [sp, #8]
+ mov r0, #0
+ bl _fsub
+ add r1, r0, #0
+ mov r2, #0xfe
+ ldr r0, [r4]
+ lsl r2, r2, #0x16
+ bl FUN_0200C884
+ b _02223172
+_02223132:
+ mov r2, #0xfe
+ ldr r0, [r4]
+ ldr r1, [sp, #8]
+ lsl r2, r2, #0x16
+ bl FUN_0200C884
+ b _02223172
+_02223140:
+ ldr r0, [r4, #0x2c]
+ cmp r0, #0
+ ble _0222316C
+ sub r0, r0, #1
+ str r0, [r4, #0x2c]
+ mov r0, #8
+ str r0, [sp]
+ ldr r1, [r4, #0x30]
+ ldr r3, [r4, #0x34]
+ lsl r1, r1, #0x10
+ lsl r3, r3, #0x10
+ add r0, r4, #4
+ asr r1, r1, #0x10
+ mov r2, #0xa
+ asr r3, r3, #0x10
+ bl MOD08_02218120
+ ldr r1, [r4, #0x30]
+ ldr r0, [r4, #0x34]
+ str r0, [r4, #0x30]
+ str r1, [r4, #0x34]
+ b _02223172
+_0222316C:
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, pc}
+_02223172:
+ mov r0, #1
+ add sp, #0xc
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_02223178
+MOD08_02223178: ; 0x02223178
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r7, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #3
+ bhi _02223244
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02223190: ; jump table
+ .short _02223198 - _02223190 - 2 ; case 0
+ .short _022231CA - _02223190 - 2 ; case 1
+ .short _022231E8 - _02223190 - 2 ; case 2
+ .short _02223208 - _02223190 - 2 ; case 3
+_02223198:
+ ldr r0, [r4, #0x10]
+ cmp r0, #4
+ blt _022231C2
+ mov r0, #0
+ str r0, [r4, #0x10]
+ ldr r1, [r4, #0x14]
+ add r2, r4, #0
+ mov r0, #0x38
+ add r2, #0x44
+ mul r0, r1
+ add r0, r2, r0
+ bl MOD08_022230E4
+ ldr r0, [r4, #0x14]
+ add r0, r0, #1
+ str r0, [r4, #0x14]
+ cmp r0, #4
+ blt _022231C2
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+_022231C2:
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ b _02223244
+_022231CA:
+ mov r1, #0x1c
+ mov r2, #0x1e
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r3, [r4, #0x18]
+ add r0, #0x20
+ bl MOD08_02218454
+ cmp r0, #0
+ bne _02223244
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02223244
+_022231E8:
+ add r5, r4, #0
+ mov r6, #0
+ add r5, #0x44
+_022231EE:
+ add r0, r5, #0
+ bl MOD08_022230FC
+ add r6, r6, #1
+ add r5, #0x38
+ cmp r6, #4
+ blt _022231EE
+ cmp r0, #0
+ bne _02223244
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02223244
+_02223208:
+ mov r2, #0x1c
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x18]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x1e
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ bl FUN_02007558
+ add r5, r4, #0
+ mov r6, #0
+ add r5, #0x44
+_02223226:
+ add r0, r5, #0
+ bl MOD08_022230D8
+ add r6, r6, #1
+ add r5, #0x38
+ cmp r6, #4
+ blt _02223226
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, r6, r7, pc}
+_02223244:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0222324C
+MOD08_0222324C: ; 0x0222324C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x48
+ str r1, [sp, #4]
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ add r4, r0, #0
+ str r2, [sp, #8]
+ str r3, [sp, #0xc]
+ bl MOD08_02228064
+ add r7, r0, #0
+ ldr r0, [sp, #4]
+ str r4, [r7]
+ str r0, [r7, #4]
+ ldr r0, [sp, #8]
+ str r0, [r7, #8]
+ add r0, r4, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r7]
+ bl MOD08_022154D4
+ str r0, [r7, #0x18]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r7, #0x1c]
+ ldr r0, [r7, #0x18]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r7, #0x1e]
+ add r0, r7, #0
+ mov r3, #1
+ add r0, #0x20
+ mov r1, #4
+ mov r2, #0
+ str r3, [sp]
+ bl MOD08_022183C0
+ mov r0, #0x1e
+ ldrsh r4, [r7, r0]
+ ldr r1, [r7]
+ add r0, sp, #0x14
+ add r4, #0x10
+ mov r5, #0
+ bl MOD08_02215474
+ add r0, r5, #0
+ add r6, r7, #0
+ str r0, [sp, #0x10]
+ add r6, #0x44
+_022232B6:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ bne _022232D0
+ str r5, [sp]
+ mov r2, #0x1c
+ lsl r3, r4, #0x10
+ ldrsh r2, [r7, r2]
+ ldr r1, [sp, #0xc]
+ add r0, r6, #0
+ asr r3, r3, #0x10
+ bl MOD08_02223060
+ b _022232EC
+_022232D0:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #8]
+ add r2, sp, #0x14
+ bl FUN_0200C154
+ lsl r3, r4, #0x10
+ add r1, r0, #0
+ str r5, [sp]
+ mov r2, #0x1c
+ ldrsh r2, [r7, r2]
+ add r0, r6, #0
+ asr r3, r3, #0x10
+ bl MOD08_02223060
+_022232EC:
+ mov r0, #1
+ eor r5, r0
+ ldr r0, [sp, #0x10]
+ sub r4, #0xa
+ add r0, r0, #1
+ add r6, #0x38
+ str r0, [sp, #0x10]
+ cmp r0, #4
+ blt _022232B6
+ ldr r0, [r7]
+ ldr r1, _0222330C ; =MOD08_02223178
+ add r2, r7, #0
+ bl MOD08_02212400
+ add sp, #0x48
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222330C: .word MOD08_02223178
+
+ thumb_func_start MOD08_02223310
+MOD08_02223310: ; 0x02223310
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #6
+ bls _02223320
+ b _022234D2
+_02223320:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222332C: ; jump table
+ .short _0222333A - _0222332C - 2 ; case 0
+ .short _0222337C - _0222332C - 2 ; case 1
+ .short _022233DC - _0222332C - 2 ; case 2
+ .short _0222341C - _0222332C - 2 ; case 3
+ .short _0222343C - _0222332C - 2 ; case 4
+ .short _0222347A - _0222332C - 2 ; case 5
+ .short _022234BA - _0222332C - 2 ; case 6
+_0222333A:
+ add r0, r4, #0
+ add r0, #0x18
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _0222335C
+ mov r2, #0x14
+ mov r3, #0x16
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ ldr r1, [r4, #0x10]
+ add r0, #0x18
+ bl MOD08_02217CD0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+_0222335C:
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r1, #0x18
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ add r0, #0x18
+ add r3, r2, #0
+ bl MOD08_02217E80
+ ldr r0, [r4, #0xc]
+ add sp, #0x10
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_0222337C:
+ add r0, r4, #0
+ add r0, #0x18
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _0222339E
+ mov r2, #0x14
+ mov r3, #0x16
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ ldr r1, [r4, #0x10]
+ add r0, #0x18
+ bl MOD08_02217CD0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+_0222339E:
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x16
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_02007558
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ ldr r2, [r4, #0x3c]
+ add r0, r4, #0
+ lsl r2, r2, #5
+ neg r2, r2
+ lsl r2, r2, #0x10
+ add r0, #0x18
+ asr r2, r2, #0x10
+ add r3, r1, #0
+ bl MOD08_02217E80
+ ldr r0, [r4, #0xc]
+ add sp, #0x10
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_022233DC:
+ add r0, r4, #0
+ ldr r2, [r4, #0x48]
+ add r0, #0x4c
+ add r1, #0x70
+ bl MOD08_02217FE4
+ cmp r0, #0
+ bne _022234D2
+ mov r0, #0x46
+ ldrsh r0, [r4, r0]
+ add r1, r4, #0
+ mov r2, #0x44
+ str r0, [sp]
+ mov r0, #0x16
+ ldrsh r0, [r4, r0]
+ mov r3, #0x14
+ add r1, #0x70
+ str r0, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ ldr r0, _022234DC ; =0xFFFE0000
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ add r0, #0x4c
+ bl MOD08_02217F50
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _022234D2
+_0222341C:
+ add r0, r4, #0
+ ldr r2, [r4, #0x48]
+ add r0, #0x4c
+ add r1, #0x70
+ bl MOD08_02217FE4
+ cmp r0, #0
+ bne _022234D2
+ ldr r0, [r4, #0x48]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _022234D2
+_0222343C:
+ add r0, r4, #0
+ add r0, #0x18
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _0222345C
+ mov r2, #0x14
+ mov r3, #0x16
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ ldr r1, [r4, #0x10]
+ add r0, #0x18
+ bl MOD08_02217CD0
+ b _022234D2
+_0222345C:
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ mov r1, #0x18
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ add r0, #0x18
+ add r3, r2, #0
+ bl MOD08_02217E80
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _022234D2
+_0222347A:
+ add r0, r4, #0
+ add r0, #0x18
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _0222349A
+ mov r2, #0x14
+ mov r3, #0x16
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ ldr r1, [r4, #0x10]
+ add r0, #0x18
+ bl MOD08_02217CD0
+ b _022234D2
+_0222349A:
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x16
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_02007558
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _022234D2
+_022234BA:
+ ldr r0, [r4, #0x48]
+ bl FUN_0200C3DC
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+_022234D2:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022234DC: .word 0xFFFE0000
+
+ thumb_func_start MOD08_022234E0
+MOD08_022234E0: ; 0x022234E0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r7, r1, #0
+ mov r1, #0x94
+ add r5, r0, #0
+ str r2, [sp, #0x10]
+ add r6, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ ldr r0, [sp, #0x10]
+ str r7, [r4, #4]
+ str r0, [r4, #8]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02217C1C
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x14]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x16]
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ ldr r2, [r4, #0x3c]
+ add r0, r4, #0
+ lsl r2, r2, #4
+ neg r2, r2
+ lsl r2, r2, #0x10
+ add r0, #0x18
+ asr r2, r2, #0x10
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ mov r1, #0
+ str r0, [r4, #0x40]
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0x44
+ strh r0, [r1]
+ ldr r0, [r4, #0x40]
+ mov r1, #1
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0x46
+ strh r0, [r1]
+ add r0, r6, #0
+ mov r1, #1
+ str r6, [r4, #0x48]
+ bl FUN_0200C5E0
+ ldr r0, [r4, #0x48]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x48]
+ mov r1, #1
+ bl FUN_0200C6B0
+ mov r0, #0x16
+ ldrsh r0, [r4, r0]
+ add r1, r4, #0
+ mov r2, #0x14
+ str r0, [sp]
+ mov r0, #0x46
+ ldrsh r0, [r4, r0]
+ mov r3, #0x44
+ add r1, #0x70
+ str r0, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ mov r0, #2
+ lsl r0, r0, #0x10
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ add r0, #0x4c
+ bl MOD08_02217F50
+ ldr r0, [r4]
+ ldr r1, _022235C8 ; =MOD08_02223310
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022235C8: .word MOD08_02223310
+
+ thumb_func_start MOD08_022235CC
+MOD08_022235CC: ; 0x022235CC
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r2, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #3
+ bhi _02223676
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022235E6: ; jump table
+ .short _022235EE - _022235E6 - 2 ; case 0
+ .short _0222361A - _022235E6 - 2 ; case 1
+ .short _0222363E - _022235E6 - 2 ; case 2
+ .short _02223664 - _022235E6 - 2 ; case 3
+_022235EE:
+ mov r2, #0x1a
+ ldrsh r3, [r4, r2]
+ mov r2, #0x68
+ ldrsh r2, [r4, r2]
+ mov r1, #0x18
+ ldrsh r1, [r4, r1]
+ sub r2, r3, r2
+ add r0, r4, #0
+ lsl r2, r2, #0x10
+ ldr r3, [r4, #0x14]
+ add r0, #0x1c
+ asr r2, r2, #0x10
+ bl MOD08_02217E30
+ cmp r0, #0
+ bne _02223676
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0x10
+ str r0, [r4, #0xc]
+ b _02223676
+_0222361A:
+ ldr r0, [r4, #0xc]
+ sub r0, r0, #1
+ str r0, [r4, #0xc]
+ bpl _02223676
+ ldr r0, [r4, #8]
+ mov r2, #0x10
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x40
+ add r3, r2, #0
+ bl MOD08_022186D4
+ b _02223676
+_0222363E:
+ add r0, r4, #0
+ add r0, #0x40
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02223676
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r0, [r4, #0x10]
+ mov r1, #6
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02223676
+_02223664:
+ ldr r0, [r4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #8
+ pop {r4, pc}
+_02223676:
+ ldr r0, [r4, #4]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02223680
+MOD08_02223680: ; 0x02223680
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ mov r1, #0x6c
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ add r0, r5, #0
+ bl MOD08_02212504
+ str r0, [r4, #4]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02217C1C
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x18]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x1a]
+ ldr r0, [r4, #0x10]
+ mov r1, #0x29
+ bl FUN_0200782C
+ add r1, r4, #0
+ add r1, #0x68
+ strh r0, [r1]
+ mov r0, #0x1a
+ ldrsh r0, [r4, r0]
+ mov r1, #0
+ add r0, #8
+ strh r0, [r4, #0x1a]
+ ldr r0, [r4]
+ bl MOD08_022124D8
+ str r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #0x10]
+ mov r1, #6
+ mov r2, #1
+ bl FUN_02007558
+ add r0, r4, #0
+ add r0, #0x1c
+ mov r1, #2
+ mov r2, #0x10
+ bl MOD08_02218654
+ ldr r0, [r4]
+ mov r1, #0x10
+ mov r2, #0
+ bl MOD08_02227994
+ mov r1, #0x10
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0x40
+ add r3, r2, #0
+ bl MOD08_022186D4
+ ldr r0, [r4, #0x28]
+ add r2, r4, #0
+ add r1, r0, #0
+ mul r1, r6
+ str r1, [r4, #0x28]
+ ldr r0, [r4]
+ ldr r1, _02223740 ; =MOD08_022235CC
+ bl MOD08_02212400
+ ldr r0, [r4, #4]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02223740: .word MOD08_022235CC
+
+ thumb_func_start MOD08_02223744
+MOD08_02223744: ; 0x02223744
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x38]
+ mov r4, #0
+ cmp r0, #0
+ beq _0222375A
+ cmp r0, #1
+ beq _0222378E
+ cmp r0, #2
+ beq _022237BA
+ b _022237BC
+_0222375A:
+ add r0, r5, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ cmp r0, #0
+ beq _02223774
+ mov r2, #0x16
+ ldrsh r2, [r5, r2]
+ ldr r0, [r5, #0x10]
+ mov r1, #0xd
+ bl FUN_02007558
+ b _022237BC
+_02223774:
+ ldr r0, [r5, #0x38]
+ mov r2, #0xa
+ add r0, r0, #1
+ str r0, [r5, #0x38]
+ mov r0, #0xc
+ add r5, #0x14
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #0xf
+ add r3, r2, #0
+ bl MOD08_02218120
+ b _022237BC
+_0222378E:
+ add r0, r5, #0
+ add r0, #0x14
+ bl MOD08_02218170
+ cmp r0, #0
+ ldr r0, [r5, #0x10]
+ beq _022237A8
+ mov r2, #0x16
+ ldrsh r2, [r5, r2]
+ mov r1, #0xd
+ bl FUN_02007558
+ b _022237BC
+_022237A8:
+ mov r1, #0xd
+ add r2, r1, #0
+ add r2, #0xf3
+ bl FUN_02007558
+ ldr r0, [r5, #0x38]
+ add r0, r0, #1
+ str r0, [r5, #0x38]
+ b _022237BC
+_022237BA:
+ mov r4, #1
+_022237BC:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_022237C0
+MOD08_022237C0: ; 0x022237C0
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, [r5, #0x40]
+ mov r4, #0
+ cmp r0, #0
+ beq _022237D8
+ cmp r0, #1
+ beq _0222381E
+ cmp r0, #2
+ beq _0222383A
+ b _0222383C
+_022237D8:
+ add r0, r5, #0
+ ldr r1, [r5, #0x3c]
+ add r0, #0x44
+ bl MOD08_02218360
+ add r0, r5, #0
+ add r0, #0x68
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _02223802
+ mov r2, #0xb4
+ mov r3, #0xb6
+ add r0, r5, #0
+ ldrsh r2, [r5, r2]
+ ldrsh r3, [r5, r3]
+ ldr r1, [r5, #0x3c]
+ add r0, #0x68
+ bl MOD08_02217C94
+ b _0222383C
+_02223802:
+ ldr r0, [r5, #0x40]
+ mov r1, #0x10
+ add r0, r0, #1
+ str r0, [r5, #0x40]
+ str r1, [sp]
+ mov r0, #8
+ add r5, #0x8c
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r2, r4, #0
+ mov r3, #0xe
+ bl MOD08_022186D4
+ b _0222383C
+_0222381E:
+ add r0, r5, #0
+ add r0, #0x8c
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _0222383C
+ ldr r0, [r5, #0x3c]
+ add r1, r4, #0
+ bl FUN_0200C644
+ ldr r0, [r5, #0x40]
+ add r0, r0, #1
+ str r0, [r5, #0x40]
+ b _0222383C
+_0222383A:
+ mov r4, #1
+_0222383C:
+ add r0, r4, #0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02223844
+MOD08_02223844: ; 0x02223844
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _02223856
+ cmp r0, #1
+ beq _0222386E
+ b _02223884
+_02223856:
+ add r0, r4, #0
+ bl MOD08_02223744
+ add r0, r4, #0
+ bl MOD08_022237C0
+ cmp r0, #0
+ beq _02223884
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02223884
+_0222386E:
+ ldr r0, [r4, #0x3c]
+ bl FUN_0200C3DC
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, pc}
+_02223884:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_0222388C
+MOD08_0222388C: ; 0x0222388C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ mov r1, #0xb8
+ add r6, r0, #0
+ add r7, r2, #0
+ str r3, [sp, #8]
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r6, [r4]
+ str r5, [r4, #4]
+ str r7, [r4, #8]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02217C1C
+ str r0, [sp, #0xc]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02217C44
+ add r5, r0, #0
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ mov r1, #0
+ str r0, [r4, #0x10]
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r7, r0, #0x10
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ mov r0, #0xc
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0xa
+ add r0, #0x14
+ add r2, r1, #0
+ mov r3, #0xf
+ bl MOD08_02218120
+ ldr r0, [sp, #8]
+ mov r1, #1
+ str r0, [r4, #0x3c]
+ bl FUN_0200C5E0
+ ldr r0, [r4, #0x3c]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r4, #0x3c]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #0x3c]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x3c]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [sp, #0xc]
+ lsl r0, r0, #5
+ add r1, r7, r0
+ add r0, r4, #0
+ add r0, #0xb4
+ strh r1, [r0]
+ add r0, r4, #0
+ add r0, #0xb6
+ strh r6, [r0]
+ cmp r5, #0
+ bge _02223942
+ mov r1, #7
+ b _02223944
+_02223942:
+ mov r1, #0x17
+_02223944:
+ mvn r1, r1
+ add r0, r1, #0
+ mul r0, r5
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ mov r1, #0
+ mov r0, #0x20
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x68
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD08_02217E80
+ mov r0, #0x20
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0x44
+ mov r1, #5
+ mov r2, #0xa
+ mov r3, #0xc
+ bl MOD08_02218120
+ mov r0, #0x1a
+ str r0, [sp]
+ ldr r0, _02223994 ; =0x04000050
+ mov r1, #0
+ mov r2, #0x3f
+ mov r3, #0x1f
+ bl G2x_SetBlendAlpha_
+ ldr r0, [r4]
+ ldr r1, _02223998 ; =MOD08_02223844
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02223994: .word 0x04000050
+_02223998: .word MOD08_02223844
+
+ thumb_func_start MOD08_0222399C
+MOD08_0222399C: ; 0x0222399C
+ push {r3, lr}
+ sub sp, #8
+ ldr r1, [r0, #0x68]
+ cmp r1, #5
+ bhi _02223A50
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022239B2: ; jump table
+ .short _022239BE - _022239B2 - 2 ; case 0
+ .short _022239D4 - _022239B2 - 2 ; case 1
+ .short _022239EE - _022239B2 - 2 ; case 2
+ .short _02223A08 - _022239B2 - 2 ; case 3
+ .short _02223A22 - _022239B2 - 2 ; case 4
+ .short _02223A38 - _022239B2 - 2 ; case 5
+_022239BE:
+ mov r2, #0x28
+ str r2, [sp]
+ mov r1, #8
+ str r1, [sp, #4]
+ mov r1, #0
+ add r0, #0x18
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, pc}
+_022239D4:
+ mov r1, #0x4f
+ mvn r1, r1
+ str r1, [sp]
+ mov r1, #8
+ str r1, [sp, #4]
+ mov r1, #0
+ add r0, #0x18
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, pc}
+_022239EE:
+ mov r1, #0x50
+ str r1, [sp]
+ mov r1, #8
+ str r1, [sp, #4]
+ mov r1, #0
+ add r2, r1, #0
+ add r0, #0x18
+ sub r2, #0x50
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, pc}
+_02223A08:
+ mov r1, #0x4f
+ mvn r1, r1
+ str r1, [sp]
+ mov r1, #8
+ str r1, [sp, #4]
+ mov r1, #0
+ add r0, #0x18
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, pc}
+_02223A22:
+ mov r2, #0x50
+ str r2, [sp]
+ mov r1, #8
+ str r1, [sp, #4]
+ mov r1, #0
+ add r0, #0x18
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, pc}
+_02223A38:
+ mov r2, #0x27
+ mvn r2, r2
+ str r2, [sp]
+ mov r1, #8
+ str r1, [sp, #4]
+ mov r1, #0
+ add r0, #0x18
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, pc}
+_02223A50:
+ bl ErrorHandling
+ add sp, #8
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02223A58
+MOD08_02223A58: ; 0x02223A58
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #4
+ bls _02223A68
+ b _02223B7C
+_02223A68:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02223A74: ; jump table
+ .short _02223A7E - _02223A74 - 2 ; case 0
+ .short _02223A9A - _02223A74 - 2 ; case 1
+ .short _02223B1C - _02223A74 - 2 ; case 2
+ .short _02223B52 - _02223A74 - 2 ; case 3
+ .short _02223B64 - _02223A74 - 2 ; case 4
+_02223A7E:
+ ldr r0, [r4, #0x6c]
+ add r0, r0, #1
+ str r0, [r4, #0x6c]
+ cmp r0, #4
+ ble _02223B7C
+ add r0, r4, #0
+ bl MOD08_0222399C
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ b _02223B7C
+_02223A9A:
+ add r0, r4, #0
+ add r0, #0x18
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _02223ABA
+ mov r2, #0x64
+ mov r3, #0x66
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ ldr r1, [r4, #0x14]
+ add r0, #0x18
+ bl MOD08_02217C94
+ b _02223B7C
+_02223ABA:
+ ldr r0, [r4, #0x68]
+ add r0, r0, #1
+ str r0, [r4, #0x68]
+ cmp r0, #6
+ bge _02223AEA
+ mov r0, #0
+ str r0, [r4, #0xc]
+ mov r0, #0x64
+ ldrsh r1, [r4, r0]
+ mov r0, #0x18
+ ldrsh r0, [r4, r0]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0x64
+ strh r1, [r0]
+ mov r0, #0x66
+ ldrsh r1, [r4, r0]
+ mov r0, #0x1a
+ ldrsh r0, [r4, r0]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0x66
+ strh r1, [r0]
+ b _02223B7C
+_02223AEA:
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #0x14]
+ bl FUN_0200C90C
+ mov r1, #0x10
+ add r0, r4, #0
+ mov r2, #0
+ str r1, [sp]
+ add r0, #0x3c
+ add r3, r2, #0
+ str r1, [sp, #4]
+ bl MOD08_022186D4
+ ldr r0, _02223B88 ; =0x00007FFF
+ mov r1, #0
+ str r0, [sp]
+ ldr r0, [r4, #0x10]
+ mov r2, #0xa
+ add r3, r1, #0
+ bl FUN_02007E68
+ b _02223B7C
+_02223B1C:
+ add r0, r4, #0
+ add r0, #0x3c
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02223B30
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_0200C644
+_02223B30:
+ ldr r0, [r4, #0x10]
+ bl FUN_02007F20
+ cmp r0, #0
+ bne _02223B7C
+ ldr r0, [r4, #0xc]
+ mov r2, #0
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, _02223B88 ; =0x00007FFF
+ mov r1, #0xa
+ str r0, [sp]
+ ldr r0, [r4, #0x10]
+ add r3, r2, #0
+ bl FUN_02007E68
+ b _02223B7C
+_02223B52:
+ ldr r0, [r4, #0x10]
+ bl FUN_02007F20
+ cmp r0, #0
+ bne _02223B7C
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02223B7C
+_02223B64:
+ ldr r0, [r4, #0x14]
+ bl FUN_0200C3DC
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02223B7C:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_02223B88: .word 0x00007FFF
+
+ thumb_func_start MOD08_02223B8C
+MOD08_02223B8C: ; 0x02223B8C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ mov r1, #0x70
+ add r5, r0, #0
+ str r2, [sp]
+ add r6, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ ldr r0, [sp]
+ str r7, [r4, #4]
+ str r0, [r4, #8]
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x10]
+ str r6, [r4, #0x14]
+ add r0, r6, #0
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_0200C6B0
+ add r1, r4, #0
+ add r2, r4, #0
+ ldr r0, [r4, #0x14]
+ add r1, #0x64
+ add r2, #0x66
+ bl FUN_0200C7A0
+ ldr r0, [r4]
+ ldr r1, _02223BE4 ; =MOD08_02223A58
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02223BE4: .word MOD08_02223A58
+
+ thumb_func_start MOD08_02223BE8
+MOD08_02223BE8: ; 0x02223BE8
+ push {r3, lr}
+ sub sp, #8
+ ldr r1, [r0, #0x50]
+ cmp r1, #3
+ bhi _02223C6A
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02223BFE: ; jump table
+ .short _02223C06 - _02223BFE - 2 ; case 0
+ .short _02223C1C - _02223BFE - 2 ; case 1
+ .short _02223C36 - _02223BFE - 2 ; case 2
+ .short _02223C50 - _02223BFE - 2 ; case 3
+_02223C06:
+ mov r2, #0x50
+ str r2, [sp]
+ mov r1, #4
+ str r1, [sp, #4]
+ mov r1, #0
+ add r0, #0x28
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, pc}
+_02223C1C:
+ mov r1, #0x4f
+ mvn r1, r1
+ str r1, [sp]
+ mov r1, #4
+ str r1, [sp, #4]
+ mov r1, #0
+ add r0, #0x28
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, pc}
+_02223C36:
+ mov r1, #0x50
+ str r1, [sp]
+ mov r1, #4
+ str r1, [sp, #4]
+ mov r1, #0
+ add r2, r1, #0
+ add r0, #0x28
+ sub r2, #0x50
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, pc}
+_02223C50:
+ mov r1, #0x27
+ mvn r1, r1
+ str r1, [sp]
+ mov r1, #4
+ str r1, [sp, #4]
+ mov r1, #0
+ add r0, #0x28
+ mov r2, #0x28
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, pc}
+_02223C6A:
+ bl ErrorHandling
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02223C74
+MOD08_02223C74: ; 0x02223C74
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #6
+ bhi _02223D7E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02223C8E: ; jump table
+ .short _02223C9C - _02223C8E - 2 ; case 0
+ .short _02223CB8 - _02223C8E - 2 ; case 1
+ .short _02223D24 - _02223C8E - 2 ; case 2
+ .short _02223D80 - _02223C8E - 2 ; case 3
+ .short _02223DE2 - _02223C8E - 2 ; case 4
+ .short _02223E02 - _02223C8E - 2 ; case 5
+ .short _02223E30 - _02223C8E - 2 ; case 6
+_02223C9C:
+ ldr r0, [r4, #0x54]
+ add r0, r0, #1
+ str r0, [r4, #0x54]
+ cmp r0, #1
+ ble _02223D7E
+ add r0, r4, #0
+ bl MOD08_02223BE8
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #0
+ str r0, [r4, #0x54]
+ b _02223E48
+_02223CB8:
+ add r0, r4, #0
+ add r0, #0x28
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _02223CD8
+ mov r2, #0x4c
+ mov r3, #0x4e
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ ldr r1, [r4, #0x24]
+ add r0, #0x28
+ bl MOD08_02217C94
+ b _02223E48
+_02223CD8:
+ ldr r0, [r4, #0x50]
+ add r0, r0, #1
+ str r0, [r4, #0x50]
+ cmp r0, #4
+ bge _02223D08
+ mov r0, #0
+ str r0, [r4, #0xc]
+ mov r0, #0x4c
+ ldrsh r1, [r4, r0]
+ mov r0, #0x28
+ ldrsh r0, [r4, r0]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0x4c
+ strh r1, [r0]
+ mov r0, #0x4e
+ ldrsh r1, [r4, r0]
+ mov r0, #0x2a
+ ldrsh r0, [r4, r0]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0x4e
+ strh r1, [r0]
+ b _02223E48
+_02223D08:
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #8
+ str r0, [r4, #0x54]
+ ldr r0, [r4, #0x24]
+ bl FUN_0200C5C0
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ bl FUN_0200C5E0
+ b _02223E48
+_02223D24:
+ ldr r0, [r4, #0x54]
+ sub r0, r0, #1
+ str r0, [r4, #0x54]
+ bpl _02223D7E
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD08_02215504
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02214540
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, _02223E54 ; =0x0000FFFF
+ mov r1, #1
+ lsl r2, r2, #0x10
+ add r3, r1, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ lsr r2, r2, #0x10
+ sub r3, #9
+ bl FUN_02003210
+ ldr r7, _02223E54 ; =0x0000FFFF
+ mov r6, #0
+ add r5, r4, #0
+_02223D64:
+ ldr r0, [r5, #0x14]
+ cmp r0, #0
+ beq _02223D76
+ mov r1, #0xe
+ mov r2, #0x10
+ mov r3, #0
+ str r7, [sp]
+ bl FUN_02007E68
+_02223D76:
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #4
+ blt _02223D64
+_02223D7E:
+ b _02223E48
+_02223D80:
+ ldr r0, [r4]
+ bl MOD08_02215504
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02223E48
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD08_02215504
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02214540
+ add r2, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _02223E54 ; =0x0000FFFF
+ mov r1, #1
+ lsl r2, r2, #0x10
+ add r3, r1, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ lsr r2, r2, #0x10
+ sub r3, #9
+ bl FUN_02003210
+ ldr r7, _02223E54 ; =0x0000FFFF
+ mov r6, #0
+ add r5, r4, #0
+_02223DC6:
+ ldr r0, [r5, #0x14]
+ cmp r0, #0
+ beq _02223DD8
+ mov r2, #0
+ mov r1, #2
+ add r3, r2, #0
+ str r7, [sp]
+ bl FUN_02007E68
+_02223DD8:
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #4
+ blt _02223DC6
+ b _02223E48
+_02223DE2:
+ ldr r0, [r4]
+ bl MOD08_02215504
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02223E48
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #4
+ str r0, [r4, #0x54]
+ str r0, [r4, #0x50]
+ mov r0, #0
+ str r0, [r4, #0x58]
+ b _02223E48
+_02223E02:
+ ldr r0, [r4, #0x54]
+ sub r0, r0, #1
+ str r0, [r4, #0x54]
+ bpl _02223E48
+ mov r0, #4
+ str r0, [r4, #0x54]
+ ldr r0, [r4, #0x50]
+ sub r0, r0, #1
+ str r0, [r4, #0x50]
+ bpl _02223E1E
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02223E48
+_02223E1E:
+ ldr r0, [r4, #0x24]
+ ldr r1, [r4, #0x58]
+ bl FUN_0200C644
+ ldr r1, [r4, #0x58]
+ mov r0, #1
+ eor r0, r1
+ str r0, [r4, #0x58]
+ b _02223E48
+_02223E30:
+ ldr r0, [r4, #0x24]
+ bl FUN_0200C3DC
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_02223E48:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02223E54: .word 0x0000FFFF
+
+ thumb_func_start MOD08_02223E58
+MOD08_02223E58: ; 0x02223E58
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r1, #0
+ mov r1, #0x5c
+ add r5, r0, #0
+ str r2, [sp, #4]
+ add r7, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ ldr r0, [sp, #4]
+ str r6, [r4, #4]
+ str r0, [r4, #8]
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x10]
+ mov r6, #0
+ add r5, r4, #0
+_02223E88:
+ ldr r0, [r4]
+ add r1, r6, #0
+ bl MOD08_022154D4
+ str r0, [r5, #0x14]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #4
+ blt _02223E88
+ str r7, [r4, #0x24]
+ add r0, r7, #0
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ bl FUN_0200C6B0
+ add r1, r4, #0
+ add r2, r4, #0
+ ldr r0, [r4, #0x24]
+ add r1, #0x4c
+ add r2, #0x4e
+ bl FUN_0200C7A0
+ mov r1, #0x4c
+ ldrsh r2, [r4, r1]
+ add r0, r4, #0
+ add r0, #0x4c
+ sub r2, #0x28
+ strh r2, [r0]
+ mov r2, #0x4e
+ ldrsh r3, [r4, r2]
+ add r0, r4, #0
+ add r0, #0x4e
+ sub r3, #0x28
+ strh r3, [r0]
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x24]
+ bl FUN_0200C714
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ bl FUN_0200C90C
+ mov r0, #0xf
+ mvn r0, r0
+ str r0, [r4, #0x54]
+ mov r0, #0x1a
+ str r0, [sp]
+ ldr r0, _02223F08 ; =0x04000050
+ mov r1, #0
+ mov r2, #0x3f
+ mov r3, #0x1f
+ bl G2x_SetBlendAlpha_
+ ldr r0, [r4]
+ ldr r1, _02223F0C ; =MOD08_02223C74
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02223F08: .word 0x04000050
+_02223F0C: .word MOD08_02223C74
+
+ thumb_func_start MOD08_02223F10
+MOD08_02223F10: ; 0x02223F10
+ push {r3, r4, r5, lr}
+ ldr r2, _02223F50 ; =0x00000AAA
+ add r4, r0, #0
+ add r5, r1, #0
+ add r0, #0x10
+ mov r1, #0
+ mov r3, #3
+ bl MOD08_02218030
+ cmp r5, #0
+ beq _02223F3C
+ mov r0, #0
+ ldr r1, [r4, #0x18]
+ mvn r0, r0
+ mul r0, r1
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #8]
+ mov r1, #0xa
+ mov r2, #0x10
+ bl FUN_02007558
+ b _02223F48
+_02223F3C:
+ mov r1, #0xa
+ add r2, r1, #0
+ ldr r0, [r4, #8]
+ sub r2, #0x1a
+ bl FUN_02007558
+_02223F48:
+ mov r0, #0
+ str r0, [r4, #0x4c]
+ str r0, [r4, #0x50]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02223F50: .word 0x00000AAA
+
+ thumb_func_start MOD08_02223F54
+MOD08_02223F54: ; 0x02223F54
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r0, #0
+ ldr r0, [r4, #0x4c]
+ mov r5, #0
+ cmp r0, #3
+ bhi _0222405E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02223F6E: ; jump table
+ .short _02223F76 - _02223F6E - 2 ; case 0
+ .short _02223FB6 - _02223F6E - 2 ; case 1
+ .short _02224012 - _02223F6E - 2 ; case 2
+ .short _0222405C - _02223F6E - 2 ; case 3
+_02223F76:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02218080
+ ldr r0, [r4, #8]
+ ldr r2, [r4, #0x10]
+ mov r1, #9
+ bl FUN_02007558
+ ldr r0, [r4, #0x50]
+ sub r0, r0, #1
+ str r0, [r4, #0x50]
+ bpl _0222405E
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ mov r0, #0xe
+ ldrsh r3, [r4, r0]
+ mov r0, #0xc
+ ldrsh r1, [r4, r0]
+ add r0, r3, #2
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ mov r0, #2
+ add r4, #0x24
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD08_02217E80
+ b _0222405E
+_02223FB6:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02218080
+ cmp r0, #0
+ beq _02223FCC
+ ldr r0, [r4, #8]
+ ldr r2, [r4, #0x10]
+ mov r1, #9
+ bl FUN_02007558
+_02223FCC:
+ add r0, r4, #0
+ ldr r1, [r4, #8]
+ add r0, #0x24
+ bl MOD08_02217F2C
+ cmp r0, #0
+ bne _0222405E
+ ldr r0, [r4, #0x4c]
+ mov r2, #0
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ ldr r1, [r4, #0x10]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ add r0, #0x10
+ asr r1, r1, #0x10
+ mov r3, #3
+ bl MOD08_02218030
+ mov r0, #0xe
+ ldrsh r3, [r4, r0]
+ mov r0, #0xc
+ ldrsh r1, [r4, r0]
+ mov r0, #2
+ add r4, #0x24
+ str r3, [sp]
+ add r3, r3, #2
+ lsl r3, r3, #0x10
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r2, r1, #0
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ b _0222405E
+_02224012:
+ add r0, r4, #0
+ ldr r1, [r4, #8]
+ add r0, #0x24
+ bl MOD08_02217F2C
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02218080
+ cmp r0, #0
+ ldr r0, [r4, #8]
+ beq _02224034
+ ldr r2, [r4, #0x10]
+ mov r1, #9
+ bl FUN_02007558
+ b _0222405E
+_02224034:
+ mov r2, #0xc
+ ldrsh r2, [r4, r2]
+ add r1, r5, #0
+ bl FUN_02007558
+ mov r2, #0xe
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_02007558
+ ldr r0, [r4, #8]
+ mov r1, #9
+ add r2, r5, #0
+ bl FUN_02007558
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222405E
+_0222405C:
+ mov r5, #1
+_0222405E:
+ add r0, r5, #0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02224064
+MOD08_02224064: ; 0x02224064
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _02224076
+ cmp r0, #1
+ beq _022240A8
+ pop {r4, pc}
+_02224076:
+ add r0, r4, #0
+ bl MOD08_02223F54
+ cmp r0, #0
+ beq _022240B6
+ ldr r0, [r4, #0x48]
+ add r0, r0, #1
+ str r0, [r4, #0x48]
+ cmp r0, #4
+ bge _022240A0
+ ldr r1, [r4, #0x54]
+ mov r0, #1
+ eor r1, r0
+ add r0, r4, #0
+ str r1, [r4, #0x54]
+ bl MOD08_02223F10
+ add r0, r4, #0
+ bl MOD08_02223F54
+ pop {r4, pc}
+_022240A0:
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, pc}
+_022240A8:
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_022240B6:
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022240B8
+MOD08_022240B8: ; 0x022240B8
+ push {r4, r5, r6, lr}
+ mov r1, #0x58
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4, #4]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02217C1C
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_02212498
+ cmp r0, #0
+ bne _02224104
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ str r0, [r4, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_0200782C
+ b _02224124
+_02224104:
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ str r0, [r4, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_0200782C
+_02224124:
+ strh r0, [r4, #0xe]
+ ldr r0, [r4, #8]
+ mov r1, #0xb
+ mov r2, #0x32
+ bl FUN_02007558
+ cmp r6, #1
+ bne _02224138
+ mov r0, #0
+ b _0222413A
+_02224138:
+ mov r0, #1
+_0222413A:
+ str r0, [r4, #0x54]
+ ldr r1, [r4, #0x54]
+ add r0, r4, #0
+ bl MOD08_02223F10
+ ldr r0, [r4, #4]
+ ldr r1, _02224150 ; =MOD08_02224064
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02224150: .word MOD08_02224064
+
+ thumb_func_start MOD08_02224154
+MOD08_02224154: ; 0x02224154
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x38]
+ mov r5, #0
+ cmp r0, #3
+ bhi _02224210
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222416C: ; jump table
+ .short _02224174 - _0222416C - 2 ; case 0
+ .short _022241A4 - _0222416C - 2 ; case 1
+ .short _022241C6 - _0222416C - 2 ; case 2
+ .short _022241F6 - _0222416C - 2 ; case 3
+_02224174:
+ add r0, r4, #0
+ ldr r1, [r4, #0xc]
+ add r0, #0x10
+ bl MOD08_02218380
+ cmp r0, #0
+ beq _0222419C
+ add r0, r5, #0
+ str r0, [sp]
+ ldr r1, [r4, #0x3c]
+ ldr r2, [r4, #0x40]
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r4, #0xc]
+ ldr r3, [r4, #0x24]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_022182DC
+ b _02224210
+_0222419C:
+ ldr r0, [r4, #0x38]
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ b _02224210
+_022241A4:
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ bpl _02224210
+ ldr r0, [r4, #0x38]
+ mov r2, #0xa
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ mov r0, #8
+ add r4, #0x10
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0xf
+ add r3, r2, #0
+ bl MOD08_02218120
+ b _02224210
+_022241C6:
+ add r0, r4, #0
+ ldr r1, [r4, #0xc]
+ add r0, #0x10
+ bl MOD08_02218380
+ cmp r0, #0
+ beq _022241EE
+ add r0, r5, #0
+ str r0, [sp]
+ ldr r1, [r4, #0x3c]
+ ldr r2, [r4, #0x40]
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r4, #0xc]
+ ldr r3, [r4, #0x24]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_022182DC
+ b _02224210
+_022241EE:
+ ldr r0, [r4, #0x38]
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ b _02224210
+_022241F6:
+ mov r1, #0xc
+ add r2, r1, #0
+ ldr r0, [r4, #0xc]
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #0xc]
+ add r2, #0xf3
+ bl FUN_02007558
+ mov r5, #1
+_02224210:
+ add r0, r5, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02224214
+MOD08_02224214: ; 0x02224214
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _0222422A
+ cmp r0, #1
+ beq _02224240
+ cmp r0, #2
+ beq _02224250
+ pop {r4, pc}
+_0222422A:
+ add r0, r4, #0
+ bl MOD08_02224154
+ cmp r0, #0
+ beq _0222425E
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0x10
+ str r0, [r4, #8]
+ pop {r4, pc}
+_02224240:
+ ldr r0, [r4, #8]
+ sub r0, r0, #1
+ str r0, [r4, #8]
+ bpl _0222425E
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, pc}
+_02224250:
+ ldr r0, [r4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_0222425E:
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02224260
+MOD08_02224260: ; 0x02224260
+ push {r3, r4, r5, lr}
+ mov r1, #0x44
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+ mov r0, #8
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0xa
+ add r0, #0x10
+ add r2, r1, #0
+ mov r3, #0xf
+ bl MOD08_02218120
+ mov r0, #4
+ str r0, [r4, #0x34]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_0221552C
+ str r0, [r4, #0x40]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ str r0, [r4, #0x3c]
+ ldr r0, [r4]
+ ldr r1, _022242BC ; =MOD08_02224214
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ nop
+_022242BC: .word MOD08_02224214
+
+ thumb_func_start MOD08_022242C0
+MOD08_022242C0: ; 0x022242C0
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, [r5, #0x74]
+ mov r1, #0x64
+ bl _s32_div_f
+ add r4, r0, #0
+ ldr r0, [r5, #0x78]
+ mov r1, #0x64
+ bl _s32_div_f
+ add r6, r0, #0
+ ldr r0, [r5, #0x70]
+ mov r1, #0x64
+ bl _s32_div_f
+ str r0, [sp]
+ add r0, r5, #0
+ lsl r1, r4, #0x10
+ lsl r3, r6, #0x10
+ add r0, #0x18
+ asr r1, r1, #0x10
+ mov r2, #0xa
+ asr r3, r3, #0x10
+ bl MOD08_02218120
+ ldr r0, [r5]
+ mov r1, #0x10
+ mov r2, #0
+ bl MOD08_02227994
+ ldr r0, [r5, #0x70]
+ mov r1, #0x64
+ bl _s32_div_f
+ mov r1, #6
+ str r1, [sp]
+ lsl r0, r0, #1
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0x3c
+ mov r1, #0x10
+ mov r2, #0xa
+ mov r3, #0
+ bl MOD08_022186D4
+ mov r0, #0
+ str r0, [r5, #0x64]
+ str r0, [r5, #0x68]
+ add sp, #8
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02224328
+MOD08_02224328: ; 0x02224328
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x64]
+ mov r5, #0
+ cmp r0, #3
+ bhi _022243FC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02224340: ; jump table
+ .short _02224348 - _02224340 - 2 ; case 0
+ .short _0222438E - _02224340 - 2 ; case 1
+ .short _022243E4 - _02224340 - 2 ; case 2
+ .short _022243FA - _02224340 - 2 ; case 3
+_02224348:
+ add r0, r4, #0
+ ldr r1, [r4, #0x14]
+ add r0, #0x18
+ bl MOD08_02218360
+ cmp r0, #0
+ bne _022243FC
+ ldr r0, [r4, #0x78]
+ mov r1, #0x64
+ bl _s32_div_f
+ add r6, r0, #0
+ ldr r0, [r4, #0x74]
+ mov r1, #0x64
+ bl _s32_div_f
+ add r7, r0, #0
+ ldr r0, [r4, #0x70]
+ mov r1, #0x64
+ bl _s32_div_f
+ str r0, [sp]
+ add r0, r4, #0
+ lsl r1, r6, #0x10
+ lsl r3, r7, #0x10
+ add r0, #0x18
+ asr r1, r1, #0x10
+ mov r2, #0xa
+ asr r3, r3, #0x10
+ bl MOD08_02218120
+ ldr r0, [r4, #0x64]
+ add r0, r0, #1
+ str r0, [r4, #0x64]
+ b _022243FC
+_0222438E:
+ add r0, r4, #0
+ ldr r1, [r4, #0x14]
+ add r0, #0x18
+ bl MOD08_02218360
+ cmp r0, #0
+ bne _022243FC
+ ldr r0, [r4, #0x68]
+ add r0, r0, #1
+ str r0, [r4, #0x68]
+ cmp r0, #2
+ bge _022243DC
+ add r0, r5, #0
+ str r0, [r4, #0x64]
+ ldr r0, [r4, #0x74]
+ mov r1, #0x64
+ bl _s32_div_f
+ add r6, r0, #0
+ ldr r0, [r4, #0x78]
+ mov r1, #0x64
+ bl _s32_div_f
+ add r7, r0, #0
+ ldr r0, [r4, #0x70]
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r1, r6, #0x10
+ lsl r3, r7, #0x10
+ add r4, #0x18
+ str r0, [sp]
+ add r0, r4, #0
+ asr r1, r1, #0x10
+ mov r2, #0xa
+ asr r3, r3, #0x10
+ bl MOD08_02218120
+ b _022243FC
+_022243DC:
+ ldr r0, [r4, #0x64]
+ add r0, r0, #1
+ str r0, [r4, #0x64]
+ b _022243FC
+_022243E4:
+ add r0, r4, #0
+ add r0, #0x3c
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _022243FC
+ ldr r0, [r4, #0x64]
+ mov r5, #1
+ add r0, r0, #1
+ str r0, [r4, #0x64]
+ b _022243FC
+_022243FA:
+ mov r5, #1
+_022243FC:
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02224400
+MOD08_02224400: ; 0x02224400
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r1, [r5, #0x7c]
+ mov r4, #0
+ cmp r1, #0
+ beq _02224416
+ cmp r1, #1
+ beq _02224428
+ cmp r1, #2
+ beq _02224472
+ b _02224474
+_02224416:
+ bl MOD08_022242C0
+ add r0, r5, #0
+ bl MOD08_02224328
+ ldr r0, [r5, #0x7c]
+ add r0, r0, #1
+ str r0, [r5, #0x7c]
+ b _02224474
+_02224428:
+ bl MOD08_02224328
+ cmp r0, #0
+ beq _02224474
+ ldr r0, [r5, #0x6c]
+ sub r0, r0, #1
+ str r0, [r5, #0x6c]
+ bmi _02224468
+ ldr r0, [r5, #0x70]
+ mov r1, #3
+ bl _s32_div_f
+ ldr r1, [r5, #0x70]
+ sub r0, r1, r0
+ str r0, [r5, #0x70]
+ ldr r0, [r5, #0x74]
+ mov r1, #3
+ bl _s32_div_f
+ ldr r1, [r5, #0x74]
+ sub r0, r1, r0
+ str r0, [r5, #0x74]
+ ldr r0, [r5, #0x78]
+ mov r1, #3
+ bl _s32_div_f
+ ldr r1, [r5, #0x78]
+ sub r0, r1, r0
+ str r0, [r5, #0x78]
+ add r0, r4, #0
+ str r0, [r5, #0x7c]
+ b _02224474
+_02224468:
+ ldr r0, [r5, #0x7c]
+ mov r4, #1
+ add r0, r0, #1
+ str r0, [r5, #0x7c]
+ b _02224474
+_02224472:
+ mov r4, #1
+_02224474:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02224478
+MOD08_02224478: ; 0x02224478
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #4
+ bls _02224488
+ b _022245A8
+_02224488:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02224494: ; jump table
+ .short _0222449E - _02224494 - 2 ; case 0
+ .short _022244E4 - _02224494 - 2 ; case 1
+ .short _02224544 - _02224494 - 2 ; case 2
+ .short _02224574 - _02224494 - 2 ; case 3
+ .short _02224590 - _02224494 - 2 ; case 4
+_0222449E:
+ add r0, r4, #0
+ bl MOD08_02224400
+ cmp r0, #0
+ beq _022245A8
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #0x1e
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0x14]
+ bl FUN_0200C5C0
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_0200C5E0
+ mov r1, #0xfe
+ lsl r1, r1, #0x16
+ ldr r0, [r4, #0x14]
+ add r2, r1, #0
+ bl FUN_0200C884
+ mov r1, #0
+ mov r2, #0x10
+ str r1, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x3c
+ add r3, r2, #0
+ bl MOD08_022186D4
+ b _022245A8
+_022244E4:
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ bne _02224502
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #8
+ mov r1, #0x10
+ mov r2, #0
+ mov r3, #0xd
+ bl FUN_0200A208
+ mov r0, #0
+ mvn r0, r0
+ str r0, [r4, #0x10]
+ b _02224508
+_02224502:
+ ble _02224508
+ sub r0, r0, #1
+ str r0, [r4, #0x10]
+_02224508:
+ mov r0, #0
+ ldr r1, [r4, #0x10]
+ mvn r0, r0
+ cmp r1, r0
+ bne _02224532
+ mov r0, #1
+ bl FUN_0200A344
+ cmp r0, #0
+ beq _02224532
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #8
+ mov r1, #0
+ mov r2, #0x10
+ mov r3, #0xd
+ bl FUN_0200A208
+ mov r0, #1
+ mvn r0, r0
+ str r0, [r4, #0x10]
+_02224532:
+ ldr r0, [r4, #0x14]
+ bl FUN_0200C608
+ cmp r0, #0
+ bne _022245A8
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _022245A8
+_02224544:
+ mov r0, #1
+ bl FUN_0200A344
+ cmp r0, #0
+ beq _022245A8
+ ldr r0, [r4, #0xc]
+ mov r1, #0x10
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4]
+ mov r2, #0
+ bl MOD08_02227994
+ mov r1, #0x10
+ mov r2, #0
+ str r1, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x3c
+ add r3, r2, #0
+ bl MOD08_022186D4
+ b _022245A8
+_02224574:
+ add r0, r4, #0
+ add r0, #0x3c
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _022245A8
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _022245A8
+_02224590:
+ ldr r0, [r4, #0x14]
+ bl FUN_0200C3DC
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_022245A8:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022245B4
+MOD08_022245B4: ; 0x022245B4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ mov r1, #0x80
+ add r6, r0, #0
+ str r2, [sp]
+ add r5, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r6, [r4]
+ ldr r0, [sp]
+ str r7, [r4, #4]
+ str r0, [r4, #8]
+ str r5, [r4, #0x14]
+ add r0, r5, #0
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x14]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #0x14]
+ mov r1, #4
+ bl FUN_0200C61C
+ mov r0, #3
+ str r0, [r4, #0x6c]
+ mov r0, #0x19
+ lsl r0, r0, #4
+ str r0, [r4, #0x70]
+ ldr r0, _02224618 ; =0x000005DC
+ ldr r1, _0222461C ; =MOD08_02224478
+ str r0, [r4, #0x74]
+ mov r0, #0xfa
+ lsl r0, r0, #2
+ str r0, [r4, #0x78]
+ ldr r0, [r4]
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02224618: .word 0x000005DC
+_0222461C: .word MOD08_02224478
+
+ thumb_func_start MOD08_02224620
+MOD08_02224620: ; 0x02224620
+ push {r3, lr}
+ sub sp, #8
+ ldr r1, [r0, #0x34]
+ cmp r1, #3
+ bhi _02224668
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02224636: ; jump table
+ .short _0222463E - _02224636 - 2 ; case 0
+ .short _02224656 - _02224636 - 2 ; case 1
+ .short _0222463E - _02224636 - 2 ; case 2
+ .short _02224656 - _02224636 - 2 ; case 3
+_0222463E:
+ mov r1, #0x20
+ str r1, [sp]
+ mov r1, #6
+ str r1, [sp, #4]
+ mov r1, #0
+ add r0, #0x10
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, pc}
+_02224656:
+ mov r1, #0
+ str r1, [sp]
+ mov r2, #6
+ str r2, [sp, #4]
+ add r0, #0x10
+ add r2, r1, #0
+ mov r3, #0x20
+ bl MOD08_02217E80
+_02224668:
+ add sp, #8
+ pop {r3, pc}
+
+ thumb_func_start MOD08_0222466C
+MOD08_0222466C: ; 0x0222466C
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _02224682
+ cmp r0, #1
+ beq _02224690
+ cmp r0, #2
+ beq _022246C8
+ pop {r4, pc}
+_02224682:
+ add r0, r4, #0
+ bl MOD08_02224620
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, pc}
+_02224690:
+ add r0, r4, #0
+ add r0, #0x10
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _022246B0
+ mov r2, #0xc
+ mov r3, #0xe
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ ldr r1, [r4, #8]
+ add r0, #0x10
+ bl MOD08_02217CD0
+ pop {r4, pc}
+_022246B0:
+ ldr r0, [r4, #0x34]
+ add r0, r0, #1
+ str r0, [r4, #0x34]
+ cmp r0, #4
+ bge _022246C0
+ mov r0, #0
+ str r0, [r4]
+ pop {r4, pc}
+_022246C0:
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, pc}
+_022246C8:
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022246D8
+MOD08_022246D8: ; 0x022246D8
+ push {r3, r4, r5, lr}
+ mov r1, #0x38
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4, #4]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ str r0, [r4, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0xe]
+ mov r0, #0
+ str r0, [r4, #0x34]
+ ldr r0, [r4, #4]
+ ldr r1, _02224718 ; =MOD08_0222466C
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02224718: .word MOD08_0222466C
+
+ thumb_func_start MOD08_0222471C
+MOD08_0222471C: ; 0x0222471C
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r2, r0, #0
+ ldr r0, [r4]
+ cmp r0, #6
+ bhi _0222477E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02224736: ; jump table
+ .short _02224744 - _02224736 - 2 ; case 0
+ .short _02224762 - _02224736 - 2 ; case 1
+ .short _022247DA - _02224736 - 2 ; case 2
+ .short _0222481E - _02224736 - 2 ; case 3
+ .short _0222485C - _02224736 - 2 ; case 4
+ .short _022248A4 - _02224736 - 2 ; case 5
+ .short _022248D4 - _02224736 - 2 ; case 6
+_02224744:
+ add r0, r4, #0
+ add r0, #0x14
+ mov r1, #1
+ mov r2, #0x40
+ bl MOD08_02218654
+ ldr r1, [r4, #0x20]
+ ldr r0, [r4, #8]
+ add sp, #8
+ mul r0, r1
+ str r0, [r4, #0x20]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, pc}
+_02224762:
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ mov r1, #0x10
+ add r0, r4, #0
+ add r2, #8
+ lsl r2, r2, #0x10
+ ldrsh r1, [r4, r1]
+ ldr r3, [r4, #0xc]
+ add r0, #0x14
+ asr r2, r2, #0x10
+ bl MOD08_02217E58
+ cmp r0, #0
+ beq _02224780
+_0222477E:
+ b _022248E2
+_02224780:
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x12
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_02007558
+ mov r0, #0x10
+ ldrsh r1, [r4, r0]
+ mov r3, #0
+ mov r0, #2
+ add r2, r1, #0
+ str r3, [sp]
+ add r2, #0x20
+ str r0, [sp, #4]
+ add r0, r4, #0
+ lsl r2, r2, #0x10
+ add r0, #0x14
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ ldr r1, [r4, #0x1c]
+ ldr r0, [r4, #8]
+ mul r0, r1
+ str r0, [r4, #0x1c]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02217ECC
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_02007558
+ add sp, #8
+ pop {r4, pc}
+_022247DA:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _022247F6
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_02007558
+ add sp, #8
+ pop {r4, pc}
+_022247F6:
+ mov r0, #0x3c
+ ldrsh r1, [r4, r0]
+ mov r3, #0
+ mov r0, #2
+ str r3, [sp]
+ str r0, [sp, #4]
+ ldr r2, [r4, #8]
+ add r0, r4, #0
+ lsl r2, r2, #5
+ add r2, r1, r2
+ lsl r2, r2, #0x10
+ add r0, #0x40
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ ldr r0, [r4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, pc}
+_0222481E:
+ add r0, r4, #0
+ add r0, #0x40
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _0222483A
+ mov r2, #0x40
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x38]
+ mov r1, #0
+ bl FUN_02007558
+ add sp, #8
+ pop {r4, pc}
+_0222483A:
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r1, #0x14
+ mov r2, #0x10
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ add r0, #0x14
+ bl MOD08_02217E80
+ ldr r0, [r4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, pc}
+_0222485C:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02217ECC
+ cmp r0, #0
+ ldr r0, [r4, #0xc]
+ beq _02224878
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ mov r1, #0
+ bl FUN_02007558
+ add sp, #8
+ pop {r4, pc}
+_02224878:
+ mov r2, #0x10
+ ldrsh r2, [r4, r2]
+ mov r1, #0
+ bl FUN_02007558
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r1, #0x40
+ mov r2, #0x3c
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ add r0, #0x40
+ bl MOD08_02217E80
+ ldr r0, [r4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, pc}
+_022248A4:
+ add r0, r4, #0
+ add r0, #0x40
+ bl MOD08_02217ECC
+ cmp r0, #0
+ ldr r0, [r4, #0x38]
+ beq _022248C0
+ mov r2, #0x40
+ ldrsh r2, [r4, r2]
+ mov r1, #0
+ bl FUN_02007558
+ add sp, #8
+ pop {r4, pc}
+_022248C0:
+ mov r2, #0x3c
+ ldrsh r2, [r4, r2]
+ mov r1, #0
+ bl FUN_02007558
+ ldr r0, [r4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, pc}
+_022248D4:
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_022248E2:
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022248E8
+MOD08_022248E8: ; 0x022248E8
+ push {r3, r4, r5, lr}
+ mov r1, #0x64
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4, #4]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_02217C1C
+ str r0, [r4, #8]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ str r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x10]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x12]
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x38]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x3c]
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x3e]
+ ldr r0, [r4, #4]
+ ldr r1, _02224958 ; =MOD08_0222471C
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ nop
+_02224958: .word MOD08_0222471C
+
+ thumb_func_start MOD08_0222495C
+MOD08_0222495C: ; 0x0222495C
+ push {lr}
+ sub sp, #0xc
+ mov r1, #0
+ str r1, [r0, #0x40]
+ mov r1, #8
+ str r1, [sp]
+ mov r1, #0xa
+ str r1, [sp, #4]
+ mov r2, #2
+ str r2, [sp, #8]
+ add r0, #0x1c
+ mov r2, #9
+ add r3, r1, #0
+ bl MOD08_022181A8
+ add sp, #0xc
+ pop {pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02224980
+MOD08_02224980: ; 0x02224980
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, [r4, #0x40]
+ mov r5, #0
+ cmp r0, #3
+ bhi _02224A72
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222499A: ; jump table
+ .short _022249A2 - _0222499A - 2 ; case 0
+ .short _022249E8 - _0222499A - 2 ; case 1
+ .short _02224A2A - _0222499A - 2 ; case 2
+ .short _02224A70 - _0222499A - 2 ; case 3
+_022249A2:
+ add r0, r4, #0
+ ldr r1, [r4, #0x18]
+ add r0, #0x1c
+ bl MOD08_022183A0
+ cmp r0, #0
+ beq _022249C6
+ add r0, r5, #0
+ str r0, [sp]
+ mov r1, #0x44
+ mov r2, #0x46
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x18]
+ ldr r3, [r4, #0x30]
+ bl MOD08_022182DC
+ b _02224A72
+_022249C6:
+ ldr r0, [r4, #0x40]
+ mov r1, #9
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ mov r0, #0xf
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #2
+ add r4, #0x1c
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r2, #0xb
+ mov r3, #8
+ bl MOD08_022181A8
+ b _02224A72
+_022249E8:
+ add r0, r4, #0
+ ldr r1, [r4, #0x18]
+ add r0, #0x1c
+ bl MOD08_022183A0
+ cmp r0, #0
+ beq _02224A0C
+ add r0, r5, #0
+ str r0, [sp]
+ mov r1, #0x44
+ mov r2, #0x46
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x18]
+ ldr r3, [r4, #0x30]
+ bl MOD08_022182DC
+ b _02224A72
+_02224A0C:
+ ldr r0, [r4, #0x40]
+ mov r2, #0xa
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ str r2, [sp]
+ str r2, [sp, #4]
+ mov r0, #2
+ add r4, #0x1c
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0xb
+ mov r3, #0xf
+ bl MOD08_022181A8
+ b _02224A72
+_02224A2A:
+ add r0, r4, #0
+ ldr r1, [r4, #0x18]
+ add r0, #0x1c
+ bl MOD08_022183A0
+ cmp r0, #0
+ beq _02224A4E
+ add r0, r5, #0
+ str r0, [sp]
+ mov r1, #0x44
+ mov r2, #0x46
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x18]
+ ldr r3, [r4, #0x30]
+ bl MOD08_022182DC
+ b _02224A72
+_02224A4E:
+ mov r1, #0xc
+ add r2, r1, #0
+ ldr r0, [r4, #0x18]
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #0x18]
+ add r2, #0xf3
+ bl FUN_02007558
+ ldr r0, [r4, #0x40]
+ mov r5, #1
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ b _02224A72
+_02224A70:
+ mov r5, #1
+_02224A72:
+ add r0, r5, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD08_02224A78
+MOD08_02224A78: ; 0x02224A78
+ push {r3, r4, r5, lr}
+ add r4, r2, #0
+ mov r2, #0
+ str r2, [r1]
+ add r5, r0, #0
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200C6B0
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200C644
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200C5E0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0200C5F4
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_0200C5C0
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_0200C61C
+ mov r1, #0x37
+ add r0, r5, #0
+ lsl r1, r1, #0xc
+ bl FUN_0200C5B4
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02224AC4
+MOD08_02224AC4: ; 0x02224AC4
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r1, [r5]
+ mov r4, #0
+ cmp r1, #0
+ beq _02224AD6
+ cmp r1, #1
+ beq _02224AE8
+ b _02224AEC
+_02224AD6:
+ bl FUN_0200C608
+ cmp r0, #0
+ bne _02224AEE
+ ldr r0, [r5]
+ mov r4, #1
+ add r0, r0, #1
+ str r0, [r5]
+ b _02224AEE
+_02224AE8:
+ mov r4, #1
+ b _02224AEE
+_02224AEC:
+ mov r4, #1
+_02224AEE:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02224AF4
+MOD08_02224AF4: ; 0x02224AF4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r7, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #5
+ bls _02224B02
+ b _02224C14
+_02224B02:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02224B0E: ; jump table
+ .short _02224B1A - _02224B0E - 2 ; case 0
+ .short _02224B3E - _02224B0E - 2 ; case 1
+ .short _02224B76 - _02224B0E - 2 ; case 2
+ .short _02224BA6 - _02224B0E - 2 ; case 3
+ .short _02224BCC - _02224B0E - 2 ; case 4
+ .short _02224BF2 - _02224B0E - 2 ; case 5
+_02224B1A:
+ add r0, r4, #0
+ bl MOD08_0222495C
+ ldr r0, [r4, #0x10]
+ add r1, r4, #0
+ lsl r2, r0, #2
+ add r0, r4, r2
+ add r1, #0x60
+ add r1, r1, r2
+ mov r2, #2
+ ldr r0, [r0, #0x48]
+ lsl r2, r2, #0xc
+ bl MOD08_02224A78
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02224C14
+_02224B3E:
+ add r0, r4, #0
+ bl MOD08_02224980
+ add r5, r0, #0
+ ldr r0, [r4, #0x10]
+ add r1, r4, #0
+ lsl r2, r0, #2
+ add r0, r4, r2
+ add r1, #0x60
+ ldr r0, [r0, #0x48]
+ add r1, r1, r2
+ bl MOD08_02224AC4
+ cmp r5, r0
+ bne _02224C14
+ cmp r5, #1
+ bne _02224C14
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x48]
+ bl FUN_0200C5C0
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02224C14
+_02224B76:
+ ldr r0, [r4, #0x10]
+ add r2, r4, #0
+ add r2, #0x78
+ lsl r1, r0, #2
+ ldr r0, [r2, r1]
+ sub r0, r0, #1
+ str r0, [r2, r1]
+ ldr r1, [r4, #0x10]
+ lsl r0, r1, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x78]
+ cmp r0, #0
+ bge _02224C14
+ add r0, r1, #1
+ str r0, [r4, #0x10]
+ cmp r0, #6
+ bge _02224B9E
+ mov r0, #0
+ str r0, [r4, #0xc]
+ b _02224C14
+_02224B9E:
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02224C14
+_02224BA6:
+ add r6, r4, #0
+ mov r7, #0
+ add r6, #0x60
+ add r5, r4, #0
+_02224BAE:
+ mov r2, #2
+ ldr r0, [r5, #0x48]
+ add r1, r6, #0
+ lsl r2, r2, #0xc
+ bl MOD08_02224A78
+ add r7, r7, #1
+ add r6, r6, #4
+ add r5, r5, #4
+ cmp r7, #6
+ blt _02224BAE
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02224C14
+_02224BCC:
+ add r6, r4, #0
+ mov r7, #0
+ add r6, #0x60
+ add r5, r4, #0
+_02224BD4:
+ ldr r0, [r5, #0x48]
+ add r1, r6, #0
+ bl MOD08_02224AC4
+ add r7, r7, #1
+ add r6, r6, #4
+ add r5, r5, #4
+ cmp r7, #6
+ blt _02224BD4
+ cmp r0, #1
+ bne _02224C14
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02224C14
+_02224BF2:
+ mov r6, #0
+ add r5, r4, #0
+_02224BF6:
+ ldr r0, [r5, #0x48]
+ bl FUN_0200C3DC
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #6
+ blt _02224BF6
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, r6, r7, pc}
+_02224C14:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02224C1C
+MOD08_02224C1C: ; 0x02224C1C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x50
+ str r1, [sp]
+ mov r1, #0x90
+ add r4, r0, #0
+ str r2, [sp, #4]
+ str r3, [sp, #8]
+ bl MOD08_02228064
+ ldr r1, [sp]
+ str r4, [r0]
+ str r1, [r0, #4]
+ ldr r1, [sp, #4]
+ str r0, [sp, #0x14]
+ str r1, [r0, #8]
+ ldr r0, [r0]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0]
+ bl MOD08_022154D4
+ ldr r1, [sp, #0x14]
+ str r0, [r1, #0x18]
+ mov r1, #0
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r7, r0, #0x10
+ ldr r0, [sp, #0x14]
+ mov r1, #1
+ ldr r0, [r0, #0x18]
+ bl FUN_0200782C
+ ldr r1, [sp, #0x14]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add r1, #0x44
+ str r0, [sp, #0xc]
+ strh r0, [r1]
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0]
+ bl MOD08_0221552C
+ ldr r1, [sp, #0x14]
+ add r1, #0x46
+ strh r0, [r1]
+ ldr r1, [sp, #0x14]
+ add r0, sp, #0x1c
+ ldr r1, [r1]
+ bl MOD08_02215474
+ ldr r5, [sp, #0x14]
+ mov r4, #0
+_02224C94:
+ cmp r4, #0
+ bne _02224C9C
+ ldr r0, [sp, #8]
+ b _02224CA6
+_02224C9C:
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ add r2, sp, #0x1c
+ bl FUN_0200C154
+_02224CA6:
+ str r0, [r5, #0x48]
+ ldr r0, [r5, #0x48]
+ mov r1, #0
+ bl FUN_0200C644
+ lsr r0, r4, #0x1f
+ add r0, r4, r0
+ asr r1, r0, #1
+ ldr r0, _02224D6C ; =0x00001555
+ mov r2, #3
+ mul r0, r1
+ asr r0, r0, #4
+ lsl r0, r0, #2
+ ldr r1, _02224D70 ; =0x020FFA38
+ str r0, [sp, #0x18]
+ add r1, r1, r0
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ lsl r2, r2, #0x10
+ mov r3, #0
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ ldr r0, _02224D74 ; =0x00000000
+ adc r1, r0
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ lsl r0, r1, #4
+ asr r6, r0, #0x10
+ mov r2, #3
+ ldr r1, _02224D70 ; =0x020FFA38
+ ldr r0, [sp, #0x18]
+ lsl r2, r2, #0x10
+ ldrsh r0, [r1, r0]
+ mov r3, #0
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ lsl r2, r2, #0xa
+ add r0, r0, r2
+ ldr r2, _02224D74 ; =0x00000000
+ adc r1, r2
+ lsl r1, r1, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r1
+ lsl r0, r0, #4
+ asr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ lsr r2, r4, #0x1f
+ lsl r1, r4, #0x1f
+ sub r1, r1, r2
+ mov r0, #0x1f
+ ror r1, r0
+ add r0, r2, r1
+ bne _02224D2E
+ add r0, r7, r6
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ ldr r0, [r5, #0x48]
+ mov r1, #1
+ bl FUN_0200C8D0
+ b _02224D34
+_02224D2E:
+ sub r0, r7, r6
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+_02224D34:
+ ldr r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ sub r0, r1, r0
+ lsl r0, r0, #0x10
+ asr r2, r0, #0x10
+ ldr r0, [r5, #0x48]
+ add r1, r6, #0
+ bl FUN_0200C714
+ cmp r4, #2
+ bge _02224D4E
+ mov r0, #8
+ b _02224D50
+_02224D4E:
+ mov r0, #0
+_02224D50:
+ add r4, r4, #1
+ str r0, [r5, #0x78]
+ add r5, r5, #4
+ cmp r4, #6
+ blt _02224C94
+ ldr r0, [sp, #0x14]
+ ldr r1, _02224D78 ; =MOD08_02224AF4
+ ldr r0, [r0]
+ ldr r2, [sp, #0x14]
+ bl MOD08_02212400
+ add sp, #0x50
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02224D6C: .word 0x00001555
+_02224D70: .word 0x020FFA38
+_02224D74: .word 0x00000000
+_02224D78: .word MOD08_02224AF4
+
+ thumb_func_start MOD08_02224D7C
+MOD08_02224D7C: ; 0x02224D7C
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #5
+ bhi _02224DBC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02224D96: ; jump table
+ .short _02224DA2 - _02224D96 - 2 ; case 0
+ .short _02224DB2 - _02224D96 - 2 ; case 1
+ .short _02224E12 - _02224D96 - 2 ; case 2
+ .short _02224E6E - _02224D96 - 2 ; case 3
+ .short _02224E9E - _02224D96 - 2 ; case 4
+ .short _02224EC2 - _02224D96 - 2 ; case 5
+_02224DA2:
+ ldr r0, [r4, #0x5c]
+ mov r1, #1
+ bl FUN_0200C5E0
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02224EDA
+_02224DB2:
+ ldr r0, [r4, #0x5c]
+ bl FUN_0200C608
+ cmp r0, #0
+ beq _02224DBE
+_02224DBC:
+ b _02224EDA
+_02224DBE:
+ ldr r0, [r4, #0x5c]
+ mov r1, #0
+ bl FUN_0200C5E0
+ ldr r0, [r4, #0xc]
+ mov r1, #0xa
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #8
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0x14
+ add r2, r1, #0
+ mov r3, #0
+ bl MOD08_02218120
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200782C
+ add r5, r0, #0
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ add r3, r0, #0
+ mov r0, #0x8a
+ ldrsh r0, [r4, r0]
+ lsl r1, r5, #0x10
+ lsl r3, r3, #0x10
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r2, #0x88
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ add r0, #0x38
+ asr r1, r1, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ b _02224EDA
+_02224E12:
+ add r0, r4, #0
+ ldr r1, [r4, #0x10]
+ add r0, #0x38
+ bl MOD08_02217F2C
+ add r0, r4, #0
+ ldr r1, [r4, #0x10]
+ add r0, #0x14
+ bl MOD08_02218380
+ cmp r0, #0
+ bne _02224EDA
+ ldr r0, [r4, #0x10]
+ mov r1, #6
+ mov r2, #1
+ bl FUN_02007558
+ mov r1, #0xc
+ add r2, r1, #0
+ ldr r0, [r4, #0x10]
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #0x10]
+ add r2, #0xf3
+ bl FUN_02007558
+ ldr r0, [r4, #0x5c]
+ mov r1, #1
+ bl FUN_0200C5C0
+ mov r1, #1
+ ldr r0, [r4, #0x5c]
+ lsl r1, r1, #0xc
+ bl FUN_0200C5F4
+ ldr r0, [r4, #0x5c]
+ mov r1, #1
+ bl FUN_0200C5E0
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02224EDA
+_02224E6E:
+ ldr r0, [r4, #0x5c]
+ bl FUN_0200C608
+ cmp r0, #0
+ bne _02224EDA
+ ldr r0, [r4, #0x5c]
+ mov r1, #0
+ bl FUN_0200C5E0
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ str r1, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r3, #0x8a
+ add r0, r4, #0
+ ldrsh r3, [r4, r3]
+ add r0, #0x60
+ add r2, r1, #0
+ bl MOD08_02217E80
+ b _02224EDA
+_02224E9E:
+ add r0, r4, #0
+ add r0, #0x60
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _02224EBA
+ mov r1, #0x88
+ mov r2, #0x62
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x5c]
+ bl FUN_0200C714
+ b _02224EDA
+_02224EBA:
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02224EDA
+_02224EC2:
+ ldr r0, [r4, #0x5c]
+ bl FUN_0200C3DC
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02224EDA:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02224EE4
+MOD08_02224EE4: ; 0x02224EE4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ mov r1, #0x8c
+ add r5, r0, #0
+ str r2, [sp]
+ add r6, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ ldr r0, [sp]
+ str r7, [r4, #4]
+ str r0, [r4, #8]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ mov r1, #6
+ mov r2, #0
+ str r0, [r4, #0x10]
+ bl FUN_02007558
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD08_02217B98
+ add r1, r4, #0
+ add r1, #0x88
+ strh r0, [r1]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r5, #0
+ mov r2, #1
+ bl MOD08_02217B98
+ add r1, r4, #0
+ add r1, #0x8a
+ strh r0, [r1]
+ str r6, [r4, #0x5c]
+ add r0, r6, #0
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x5c]
+ mov r1, #1
+ bl FUN_0200C6B0
+ mov r1, #0x88
+ mov r2, #0x8a
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x5c]
+ bl FUN_0200C714
+ ldr r0, [r4]
+ ldr r1, _02224F70 ; =MOD08_02224D7C
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02224F70: .word MOD08_02224D7C
+
+ thumb_func_start MOD08_02224F74
+MOD08_02224F74: ; 0x02224F74
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ add r0, r1, #0
+ bl MOD08_02217C08
+ mov r1, #1
+ add r2, r1, #0
+ lsl r2, r0
+ mov r0, #0
+ lsl r2, r2, #0x10
+ add r4, #0xc4
+ str r0, [sp]
+ ldr r0, [r4]
+ mov r1, #2
+ lsr r2, r2, #0x10
+ mov r3, #8
+ bl FUN_02003A64
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02224FA0
+MOD08_02224FA0: ; 0x02224FA0
+ push {r3, r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ mov r1, #0xa
+ mov r0, #0x14
+ str r0, [sp]
+ str r1, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x28
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD08_022181A8
+ mov r0, #4
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0xa
+ add r0, #0x4c
+ add r2, r1, #0
+ mov r3, #1
+ bl MOD08_02218120
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x94
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #6
+ add r0, #0x98
+ str r1, [r0]
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02227468
+ add r1, r0, #0
+ lsl r2, r1, #1
+ ldr r1, _0222503C ; =0x0222C664
+ ldr r0, [r4, #0x20]
+ ldrh r1, [r1, r2]
+ bl FUN_0200C644
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ bl FUN_0200C644
+ add r0, r4, #0
+ add r0, #0x28
+ add r1, sp, #0x10
+ add r2, sp, #0xc
+ bl MOD08_0221825C
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _02225024
+ ldr r1, [sp, #0x10]
+ mov r0, #0
+ bl _fsub
+ str r0, [sp, #0x10]
+_02225024:
+ ldr r0, [r4, #0x18]
+ ldr r1, [sp, #0x10]
+ ldr r2, [sp, #0xc]
+ bl FUN_0200C884
+ ldr r1, [r4, #0x18]
+ add r0, r4, #0
+ bl MOD08_02224F74
+ add sp, #0x14
+ pop {r3, r4, pc}
+ nop
+_0222503C: .word 0x0222C664
+
+ thumb_func_start MOD08_02225040
+MOD08_02225040: ; 0x02225040
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ mov r4, #0
+ cmp r0, #0
+ beq _0222505C
+ cmp r0, #1
+ beq _022250E4
+ cmp r0, #2
+ bne _0222505A
+ b _02225164
+_0222505A:
+ b _02225166
+_0222505C:
+ add r0, r5, #0
+ add r0, #0x28
+ bl MOD08_02218224
+ add r0, r5, #0
+ add r0, #0x28
+ add r1, sp, #0x10
+ add r2, sp, #0xc
+ bl MOD08_0221825C
+ add r0, r5, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _02225084
+ ldr r1, [sp, #0x10]
+ add r0, r4, #0
+ bl _fsub
+ str r0, [sp, #0x10]
+_02225084:
+ ldr r0, [r5, #0x18]
+ ldr r1, [sp, #0x10]
+ ldr r2, [sp, #0xc]
+ bl FUN_0200C884
+ mov r0, #0
+ str r0, [sp]
+ ldr r1, [r5, #0x14]
+ ldr r2, [r5, #0x10]
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r5, #0x18]
+ ldr r3, [r5, #0x3c]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02218314
+ add r0, r5, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ sub r1, r0, #1
+ add r0, r5, #0
+ add r0, #0x98
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ cmp r0, #0
+ bge _02225166
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ mov r3, #0x14
+ add r1, r0, #1
+ add r0, r5, #0
+ add r0, #0x94
+ str r1, [r0]
+ str r3, [sp]
+ mov r1, #0xa
+ str r1, [sp, #4]
+ mov r0, #4
+ add r5, #0x28
+ str r0, [sp, #8]
+ add r0, r5, #0
+ mov r2, #1
+ bl MOD08_022181A8
+ b _02225166
+_022250E4:
+ add r0, r5, #0
+ add r0, #0x28
+ bl MOD08_02218224
+ add r0, r5, #0
+ add r0, #0x4c
+ bl MOD08_02218170
+ cmp r0, #0
+ beq _02225142
+ mov r0, #0x4c
+ ldrsh r0, [r5, r0]
+ add r1, sp, #0x10
+ add r2, sp, #0xc
+ strh r0, [r5, #0x28]
+ add r0, r5, #0
+ add r0, #0x28
+ bl MOD08_0221825C
+ add r0, r5, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _0222511E
+ ldr r1, [sp, #0x10]
+ add r0, r4, #0
+ bl _fsub
+ str r0, [sp, #0x10]
+_0222511E:
+ ldr r0, [r5, #0x18]
+ ldr r1, [sp, #0x10]
+ ldr r2, [sp, #0xc]
+ bl FUN_0200C884
+ mov r0, #0
+ str r0, [sp]
+ ldr r1, [r5, #0x14]
+ ldr r2, [r5, #0x10]
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r5, #0x18]
+ ldr r3, [r5, #0x3c]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02218314
+ b _02225166
+_02225142:
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r5, #0
+ add r0, #0x94
+ str r1, [r0]
+ ldr r0, [r5, #0x20]
+ add r1, r4, #0
+ bl FUN_0200C644
+ ldr r0, [r5, #0x18]
+ add r1, r4, #0
+ bl FUN_0200C644
+ mov r4, #1
+ b _02225166
+_02225164:
+ mov r4, #1
+_02225166:
+ add r0, r4, #0
+ add sp, #0x14
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD08_0222516C
+MOD08_0222516C: ; 0x0222516C
+ push {r4, lr}
+ sub sp, #0x18
+ add r4, r0, #0
+ add r1, sp, #0xc
+ ldr r0, [r4, #0x1c]
+ add r1, #2
+ add r2, sp, #0xc
+ bl FUN_0200C7A0
+ add r1, sp, #0xc
+ mov r0, #0
+ ldrsh r3, [r1, r0]
+ mov r0, #2
+ ldrsh r1, [r1, r0]
+ mov r0, #8
+ str r3, [sp]
+ sub r3, #0x40
+ str r0, [sp, #4]
+ add r0, r4, #0
+ lsl r3, r3, #0x10
+ add r0, #0x70
+ add r2, r1, #0
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ mov r2, #0xa
+ str r2, [sp]
+ str r2, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x28
+ mov r1, #2
+ mov r3, #0x14
+ bl MOD08_022181A8
+ add r0, r4, #0
+ add r0, #0x28
+ add r1, sp, #0x14
+ add r2, sp, #0x10
+ bl MOD08_0221825C
+ add r0, r4, #0
+ add r0, #0xcc
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _022251D4
+ ldr r1, [sp, #0x14]
+ mov r0, #0
+ bl _fsub
+ str r0, [sp, #0x14]
+_022251D4:
+ ldr r0, [r4, #0x1c]
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ bl FUN_0200C884
+ add r0, r4, #0
+ ldr r1, [r4, #0x1c]
+ add r0, #0x70
+ bl MOD08_02217F08
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x94
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #6
+ add r0, #0x98
+ str r1, [r0]
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02227468
+ add r1, r0, #0
+ lsl r2, r1, #1
+ ldr r1, _02225228 ; =0x0222C664
+ ldr r0, [r4, #0x24]
+ ldrh r1, [r1, r2]
+ bl FUN_0200C644
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r1, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD08_02224F74
+ add sp, #0x18
+ pop {r4, pc}
+ .align 2, 0
+_02225228: .word 0x0222C664
+
+ thumb_func_start MOD08_0222522C
+MOD08_0222522C: ; 0x0222522C
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ mov r4, #0
+ cmp r0, #0
+ beq _02225246
+ cmp r0, #1
+ beq _02225276
+ cmp r0, #2
+ beq _022252C8
+ b _022252CA
+_02225246:
+ add r0, r5, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ sub r1, r0, #1
+ add r0, r5, #0
+ add r0, #0x98
+ str r1, [r0]
+ add r0, r5, #0
+ ldr r1, [r5, #0x1c]
+ add r0, #0x70
+ bl MOD08_02217F08
+ add r0, r5, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ cmp r0, #0
+ bge _022252CA
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ add r5, #0x94
+ add r0, r0, #1
+ str r0, [r5]
+ b _022252CA
+_02225276:
+ add r0, r5, #0
+ ldr r1, [r5, #0x1c]
+ add r0, #0x70
+ bl MOD08_02217F08
+ add r0, r5, #0
+ add r0, #0x28
+ bl MOD08_02218224
+ add r6, r0, #0
+ add r0, r5, #0
+ add r0, #0x28
+ add r1, sp, #4
+ add r2, sp, #0
+ bl MOD08_0221825C
+ add r0, r5, #0
+ add r0, #0xcc
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _022252AA
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl _fsub
+ str r0, [sp, #4]
+_022252AA:
+ ldr r0, [r5, #0x1c]
+ ldr r1, [sp, #4]
+ ldr r2, [sp]
+ bl FUN_0200C884
+ cmp r6, #0
+ bne _022252CA
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ add r5, #0x94
+ add r0, r0, #1
+ str r0, [r5]
+ mov r4, #1
+ b _022252CA
+_022252C8:
+ mov r4, #1
+_022252CA:
+ add r0, r4, #0
+ add sp, #8
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_022252D0
+MOD08_022252D0: ; 0x022252D0
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r2, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #6
+ bhi _022253AA
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022252EA: ; jump table
+ .short _022252F8 - _022252EA - 2 ; case 0
+ .short _0222531C - _022252EA - 2 ; case 1
+ .short _02225336 - _022252EA - 2 ; case 2
+ .short _0222534C - _022252EA - 2 ; case 3
+ .short _02225362 - _022252EA - 2 ; case 4
+ .short _02225388 - _022252EA - 2 ; case 5
+ .short _0222539C - _022252EA - 2 ; case 6
+_022252F8:
+ ldr r0, [r4]
+ mov r1, #0
+ mov r2, #0x10
+ bl MOD08_02227994
+ mov r2, #8
+ str r2, [sp]
+ add r0, r4, #0
+ str r2, [sp, #4]
+ add r0, #0x9c
+ mov r1, #0
+ mov r3, #0x10
+ bl MOD08_022186D4
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022253AA
+_0222531C:
+ add r0, r4, #0
+ add r0, #0x9c
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _022253AA
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ add r0, r4, #0
+ bl MOD08_02224FA0
+ b _022253AA
+_02225336:
+ add r0, r4, #0
+ bl MOD08_02225040
+ cmp r0, #0
+ beq _022253AA
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #2
+ str r0, [r4, #0xc]
+ b _022253AA
+_0222534C:
+ ldr r0, [r4, #0xc]
+ sub r0, r0, #1
+ str r0, [r4, #0xc]
+ bpl _022253AA
+ add r0, r4, #0
+ bl MOD08_0222516C
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022253AA
+_02225362:
+ add r0, r4, #0
+ bl MOD08_0222522C
+ cmp r0, #0
+ beq _022253AA
+ ldr r0, [r4, #8]
+ mov r1, #8
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0x10
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0x9c
+ mov r2, #0
+ add r3, r1, #0
+ str r1, [sp, #4]
+ bl MOD08_022186D4
+ b _022253AA
+_02225388:
+ add r0, r4, #0
+ add r0, #0x9c
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _022253AA
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022253AA
+_0222539C:
+ ldr r0, [r4]
+ add r1, r2, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+_022253AA:
+ ldr r0, [r4, #4]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022253B4
+MOD08_022253B4: ; 0x022253B4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ mov r1, #0xd0
+ add r6, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r6, [r4]
+ add r0, r6, #0
+ bl MOD08_02212504
+ str r0, [r4, #4]
+ ldr r0, [r4]
+ bl MOD08_02215504
+ add r1, r4, #0
+ add r1, #0xc4
+ str r0, [r1]
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ mov r1, #0
+ add r7, r0, #0
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ add r0, r7, #0
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ add r0, r7, #0
+ mov r1, #0x29
+ bl FUN_0200782C
+ sub r0, r5, r0
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ add r0, r6, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ mov r1, #0
+ str r0, [sp, #4]
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r7, r0, #0x10
+ ldr r0, [sp, #4]
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ ldr r0, [sp, #4]
+ mov r1, #0x29
+ bl FUN_0200782C
+ sub r0, r6, r0
+ lsl r0, r0, #0x10
+ str r5, [r4, #0x14]
+ asr r6, r0, #0x10
+ ldr r0, [r4]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_0221552C
+ str r0, [r4, #0x10]
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x18]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x18]
+ ldr r1, [sp]
+ add r2, r5, #0
+ bl FUN_0200C714
+ ldr r0, [r4, #0x18]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #0x18]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_022124D8
+ str r0, [r4, #0x1c]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x1c]
+ add r1, r7, #0
+ add r2, r6, #0
+ bl FUN_0200C714
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #0x1c]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ mov r2, #0x28
+ bl FUN_0200C8DC
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD08_02215680
+ add r1, r4, #0
+ add r1, #0xc8
+ str r0, [r1]
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215680
+ add r1, r4, #0
+ add r1, #0xcc
+ str r0, [r1]
+ ldr r0, [r4]
+ mov r1, #2
+ bl MOD08_022124D8
+ str r0, [r4, #0x20]
+ ldr r0, [r4]
+ mov r1, #3
+ bl MOD08_022124D8
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #0x20]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x24]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4]
+ ldr r1, _02225520 ; =MOD08_022252D0
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02225520: .word MOD08_022252D0
+
+ thumb_func_start MOD08_02225524
+MOD08_02225524: ; 0x02225524
+ push {r4, lr}
+ sub sp, #0x20
+ mov r2, #0xa
+ add r4, r0, #0
+ add r0, #0xf8
+ mov r1, #0x19
+ add r3, r2, #0
+ str r2, [sp]
+ bl MOD08_02218120
+ mov r0, #0x3a
+ ldrsh r0, [r4, r0]
+ add r1, r4, #0
+ mov r3, #0x38
+ str r0, [sp]
+ mov r0, #9
+ str r0, [sp, #4]
+ mov r0, #3
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x44]
+ ldr r2, _02225570 ; =MOD08_02218170
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x40]
+ add r1, #0xf8
+ str r0, [sp, #0x14]
+ ldr r0, [r4, #0x3c]
+ str r0, [sp, #0x18]
+ mov r0, #0
+ str r0, [sp, #0x1c]
+ add r0, r4, #0
+ ldrsh r3, [r4, r3]
+ add r0, #0x48
+ bl MOD08_0221847C
+ add sp, #0x20
+ pop {r4, pc}
+ .align 2, 0
+_02225570: .word MOD08_02218170
+
+ thumb_func_start MOD08_02225574
+MOD08_02225574: ; 0x02225574
+ push {r4, lr}
+ sub sp, #0x20
+ add r4, r0, #0
+ mov r0, #6
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0xa
+ add r0, #0xf8
+ add r2, r1, #0
+ mov r3, #0x19
+ bl MOD08_02218120
+ mov r0, #0x3a
+ ldrsh r0, [r4, r0]
+ add r1, r4, #0
+ mov r3, #0x38
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ mov r0, #3
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x3c]
+ ldr r2, _022255CC ; =MOD08_02218170
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x40]
+ add r1, #0xf8
+ str r0, [sp, #0x14]
+ ldr r0, [r4, #0x44]
+ str r0, [sp, #0x18]
+ mov r0, #0
+ str r0, [sp, #0x1c]
+ add r0, r4, #0
+ ldrsh r3, [r4, r3]
+ add r0, #0x48
+ bl MOD08_0221847C
+ ldr r0, [r4, #0x3c]
+ mov r1, #1
+ bl FUN_0200C644
+ add sp, #0x20
+ pop {r4, pc}
+ .align 2, 0
+_022255CC: .word MOD08_02218170
+
+ thumb_func_start MOD08_022255D0
+MOD08_022255D0: ; 0x022255D0
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r7, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #4
+ bhi _02225688
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022255E8: ; jump table
+ .short _022255F2 - _022255E8 - 2 ; case 0
+ .short _02225600 - _022255E8 - 2 ; case 1
+ .short _0222562E - _022255E8 - 2 ; case 2
+ .short _02225652 - _022255E8 - 2 ; case 3
+ .short _02225666 - _022255E8 - 2 ; case 4
+_022255F2:
+ add r0, r4, #0
+ bl MOD08_02225524
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02225688
+_02225600:
+ add r0, r4, #0
+ add r0, #0x48
+ bl MOD08_02218524
+ cmp r0, #0
+ bne _02225688
+ ldr r0, [r4, #0x3c]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r0, [r4, #0xc]
+ mov r1, #4
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #6
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0x14
+ mov r2, #0
+ mov r3, #1
+ bl MOD08_022183C0
+ b _02225688
+_0222562E:
+ mov r1, #0x38
+ mov r2, #0x3a
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r3, [r4, #0x10]
+ add r0, #0x14
+ bl MOD08_02218454
+ cmp r0, #0
+ bne _02225688
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ add r0, r4, #0
+ bl MOD08_02225574
+ b _02225688
+_02225652:
+ add r0, r4, #0
+ add r0, #0x48
+ bl MOD08_02218524
+ cmp r0, #0
+ bne _02225688
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02225688
+_02225666:
+ mov r6, #0
+ add r5, r4, #0
+_0222566A:
+ ldr r0, [r5, #0x3c]
+ bl FUN_0200C3DC
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #3
+ blt _0222566A
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD08_02212438
+ pop {r3, r4, r5, r6, r7, pc}
+_02225688:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02225690
+MOD08_02225690: ; 0x02225690
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r6, r1, #0
+ mov r1, #0x47
+ lsl r1, r1, #2
+ add r5, r0, #0
+ str r2, [sp]
+ add r7, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ ldr r0, [sp]
+ str r6, [r4, #4]
+ str r0, [r4, #8]
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x38]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x3a]
+ ldr r0, [r4, #0x10]
+ mov r1, #0x29
+ bl FUN_0200782C
+ mov r1, #0x3a
+ ldrsh r1, [r4, r1]
+ sub r0, r1, r0
+ strh r0, [r4, #0x3a]
+ add r0, sp, #4
+ add r1, r5, #0
+ bl MOD08_02215474
+ mov r6, #0
+ add r5, r4, #0
+_022256EC:
+ cmp r6, #0
+ bne _022256FC
+ add r0, r7, #0
+ mov r1, #1
+ str r7, [r5, #0x3c]
+ bl FUN_0200C5C0
+ b _0222570E
+_022256FC:
+ ldr r0, [r4, #4]
+ ldr r1, [r4, #8]
+ add r2, sp, #4
+ bl FUN_0200C154
+ mov r1, #1
+ str r0, [r5, #0x3c]
+ bl FUN_0200C90C
+_0222570E:
+ ldr r0, [r5, #0x3c]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r5, #0x3c]
+ mov r1, #1
+ bl FUN_0200C6B0
+ mov r1, #0x38
+ mov r2, #0x3a
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r5, #0x3c]
+ bl FUN_0200C714
+ ldr r0, [r5, #0x3c]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r5, #0x3c]
+ mov r1, #2
+ bl FUN_0200C840
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #3
+ blt _022256EC
+ ldr r0, [r4]
+ ldr r1, _02225754 ; =MOD08_022255D0
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02225754: .word MOD08_022255D0
+
+ thumb_func_start MOD08_02225758
+MOD08_02225758: ; 0x02225758
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ mov r7, #0
+ add r6, r5, #0
+ str r1, [sp, #0x10]
+ add r6, #0x30
+ add r4, r7, #0
+_02225768:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x32
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #0x30
+ mov r1, #0
+ str r0, [sp, #0xc]
+ ldr r2, _022257A8 ; =0x00007FFF
+ add r0, r6, #0
+ add r3, r1, #0
+ bl MOD08_02217D14
+ ldr r0, [r5, #0x38]
+ add r7, r7, #1
+ add r0, r0, r4
+ str r0, [r5, #0x38]
+ ldr r1, [r5, #0x48]
+ ldr r0, [sp, #0x10]
+ add r6, #0x24
+ mul r0, r1
+ str r0, [r5, #0x48]
+ ldr r0, _022257AC ; =0x00002AAA
+ add r5, #0x24
+ add r4, r4, r0
+ cmp r7, #6
+ blt _02225768
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022257A8: .word 0x00007FFF
+_022257AC: .word 0x00002AAA
+
+ thumb_func_start MOD08_022257B0
+MOD08_022257B0: ; 0x022257B0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r0, #0
+ mov r0, #0
+ str r0, [sp, #4]
+ add r0, r6, #0
+ str r0, [sp]
+ add r0, #0x30
+ str r0, [sp]
+ add r5, r6, #0
+ add r4, r6, #0
+_022257C6:
+ ldr r0, [sp]
+ bl MOD08_02217D98
+ ldr r1, [r5, #0x38]
+ mov r2, #0xa
+ lsl r0, r1, #2
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ asr r0, r0, #4
+ lsl r1, r0, #2
+ ldr r0, _0222586C ; =0x020FFA38
+ ldr r3, [r6, #0x14]
+ ldrsh r0, [r0, r1]
+ lsl r2, r2, #0xc
+ mul r2, r3
+ asr r1, r0, #0x1f
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ add r3, r1, #0
+ mov r1, #0x13
+ lsl r1, r1, #4
+ mov r2, #0x30
+ add r7, r0, #0
+ ldrsh r1, [r6, r1]
+ ldrsh r2, [r5, r2]
+ ldr r0, [r4, #0x18]
+ add r1, r1, r2
+ ldr r2, _02225870 ; =0x00000132
+ lsl r1, r1, #0x10
+ ldrsh r2, [r6, r2]
+ asr r1, r1, #0x10
+ mov ip, r2
+ mov r2, #2
+ lsl r2, r2, #0xa
+ add r7, r7, r2
+ ldr r2, _02225874 ; =0x00000000
+ adc r3, r2
+ lsl r2, r3, #0x14
+ lsr r3, r7, #0xc
+ orr r3, r2
+ lsl r2, r3, #4
+ asr r2, r2, #0x10
+ mov r3, ip
+ add r2, r3, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ ldr r1, [r5, #0x38]
+ ldr r0, _02225878 ; =0x00003FFF
+ cmp r1, r0
+ blt _02225842
+ ldr r0, _0222587C ; =0x0000BF49
+ cmp r1, r0
+ bgt _02225842
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ bl FUN_0200C6B0
+ b _02225852
+_02225842:
+ ldr r0, [r6]
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r4, #0x18]
+ add r1, r1, #1
+ bl FUN_0200C6B0
+_02225852:
+ ldr r0, [sp]
+ add r5, #0x24
+ add r0, #0x24
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r4, r4, #4
+ add r0, r0, #1
+ str r0, [sp, #4]
+ cmp r0, #6
+ blt _022257C6
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222586C: .word 0x020FFA38
+_02225870: .word 0x00000132
+_02225874: .word 0x00000000
+_02225878: .word 0x00003FFF
+_0222587C: .word 0x0000BF49
+
+ thumb_func_start MOD08_02225880
+MOD08_02225880: ; 0x02225880
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r7, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #4
+ bhi _02225966
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222589A: ; jump table
+ .short _022258A4 - _0222589A - 2 ; case 0
+ .short _022258DA - _0222589A - 2 ; case 1
+ .short _022258FA - _0222589A - 2 ; case 2
+ .short _02225926 - _0222589A - 2 ; case 3
+ .short _02225942 - _0222589A - 2 ; case 4
+_022258A4:
+ ldr r0, [r4]
+ mov r1, #1
+ mov r2, #0xf
+ bl MOD08_02227994
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ add r0, #0xfe
+ add r0, r4, r0
+ mov r1, #1
+ mov r2, #0x10
+ mov r3, #0xf
+ bl MOD08_022186D4
+ ldr r1, [r4, #0x14]
+ add r0, r4, #0
+ bl MOD08_02225758
+ add r0, r4, #0
+ bl MOD08_022257B0
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02225966
+_022258DA:
+ add r0, r4, #0
+ bl MOD08_022257B0
+ mov r0, #0x42
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02225966
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #0x1c
+ str r0, [r4, #0x10]
+ b _02225966
+_022258FA:
+ add r0, r4, #0
+ bl MOD08_022257B0
+ ldr r0, [r4, #0x10]
+ sub r0, r0, #1
+ str r0, [r4, #0x10]
+ bpl _02225966
+ ldr r0, [r4, #0xc]
+ mov r1, #0x10
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #0xf
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ add r0, #0xfe
+ add r0, r4, r0
+ mov r2, #1
+ mov r3, #0
+ bl MOD08_022186D4
+ b _02225966
+_02225926:
+ add r0, r4, #0
+ bl MOD08_022257B0
+ mov r0, #0x42
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02225966
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02225966
+_02225942:
+ mov r6, #0
+ add r5, r4, #0
+_02225946:
+ ldr r0, [r5, #0x18]
+ bl FUN_0200C3DC
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #6
+ blt _02225946
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD08_02212438
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02225966:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02225970
+MOD08_02225970: ; 0x02225970
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r5, r1, #0
+ mov r1, #0x4d
+ lsl r1, r1, #2
+ add r4, r0, #0
+ str r2, [sp]
+ add r7, r3, #0
+ bl MOD08_02228064
+ add r6, r0, #0
+ str r4, [r6]
+ ldr r0, [sp]
+ str r5, [r6, #4]
+ str r0, [r6, #8]
+ add r0, r4, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_022154D4
+ mov r1, #0
+ add r5, r0, #0
+ bl FUN_0200782C
+ mov r1, #0x13
+ lsl r1, r1, #4
+ strh r0, [r6, r1]
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200782C
+ ldr r1, _02225A14 ; =0x00000132
+ strh r0, [r6, r1]
+ add r0, sp, #4
+ add r1, r4, #0
+ bl MOD08_02215474
+ mov r4, #0
+ add r5, r6, #0
+_022259C2:
+ cmp r4, #0
+ bne _022259CA
+ str r7, [r5, #0x18]
+ b _022259D6
+_022259CA:
+ ldr r0, [r6, #4]
+ ldr r1, [r6, #8]
+ add r2, sp, #4
+ bl FUN_0200C154
+ str r0, [r5, #0x18]
+_022259D6:
+ ldr r0, [r5, #0x18]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r5, #0x18]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r5, #0x18]
+ mov r1, #1
+ bl FUN_0200C5E0
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _022259C2
+ ldr r0, [r6]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_02217C1C
+ str r0, [r6, #0x14]
+ ldr r0, [r6]
+ ldr r1, _02225A18 ; =MOD08_02225880
+ add r2, r6, #0
+ bl MOD08_02212400
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02225A14: .word 0x00000132
+_02225A18: .word MOD08_02225880
+
+ thumb_func_start MOD08_02225A1C
+MOD08_02225A1C: ; 0x02225A1C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r1, #0
+ add r1, sp, #8
+ add r5, r2, #0
+ add r1, #2
+ add r2, sp, #8
+ add r6, r0, #0
+ add r4, r3, #0
+ bl FUN_0200C7A0
+ add r0, sp, #8
+ mov r1, #0
+ ldrsh r3, [r0, r1]
+ mov r1, #2
+ ldrsh r2, [r0, r1]
+ lsl r0, r4, #7
+ neg r0, r0
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ lsl r1, r2, #0x10
+ lsl r4, r5, #8
+ add r2, r2, r4
+ str r0, [sp]
+ mov r0, #0x3b
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ str r0, [sp, #4]
+ add r0, r7, #0
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ add r0, r6, #0
+ mov r1, #1
+ bl FUN_0200C644
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02225A70
+MOD08_02225A70: ; 0x02225A70
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ add r0, r1, #0
+ add r1, r4, #0
+ bl MOD08_02217F08
+ cmp r0, #0
+ beq _02225B2A
+ add r1, sp, #8
+ add r0, r4, #0
+ add r1, #2
+ add r2, sp, #8
+ bl FUN_0200C7A0
+ add r1, sp, #8
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ mov r1, #0x5b
+ lsl r1, r1, #2
+ str r0, [sp]
+ ldr r0, [sp]
+ mov r2, #0xe
+ mul r1, r0
+ lsl r0, r1, #0x10
+ lsr r0, r0, #0x10
+ asr r0, r0, #4
+ lsl r1, r0, #2
+ ldr r0, _02225B30 ; =0x020FFA38
+ lsl r2, r2, #0xc
+ ldrsh r0, [r0, r1]
+ mov r3, #0
+ asr r7, r0, #0x1f
+ add r1, r7, #0
+ str r0, [sp, #4]
+ bl _ll_mul
+ add r3, r0, #0
+ add r5, r1, #0
+ add r6, sp, #8
+ mov r2, #0
+ ldrsh r2, [r6, r2]
+ mov r6, #2
+ lsl r6, r6, #0xa
+ add r0, r4, #0
+ add r6, r3, r6
+ ldr r3, _02225B34 ; =0x00000000
+ ldr r1, [sp]
+ adc r5, r3
+ lsl r3, r5, #0x14
+ lsr r5, r6, #0xc
+ orr r5, r3
+ lsl r3, r5, #4
+ asr r3, r3, #0x10
+ add r2, r2, r3
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ mov r2, #0xae
+ ldr r0, [sp, #4]
+ add r1, r7, #0
+ lsl r2, r2, #2
+ mov r3, #0
+ bl _ll_mul
+ mov r2, #2
+ mov r3, #0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ neg r0, r1
+ bl _fflt
+ ldr r1, _02225B38 ; =0x45800000
+ bl _fdiv
+ add r1, r0, #0
+ mov r0, #0xfe
+ lsl r0, r0, #0x16
+ bl _fadd
+ add r1, r0, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl FUN_0200C884
+ add sp, #0xc
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_02225B2A:
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02225B30: .word 0x020FFA38
+_02225B34: .word 0x00000000
+_02225B38: .word 0x45800000
+
+ thumb_func_start MOD08_02225B3C
+MOD08_02225B3C: ; 0x02225B3C
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x9d
+ add r7, r0, #0
+ lsl r1, r1, #2
+ ldr r0, [r7, r1]
+ cmp r0, #0xf
+ bge _02225B84
+ sub r0, r1, #4
+ ldr r0, [r7, r0]
+ add r2, r0, #1
+ sub r0, r1, #4
+ str r2, [r7, r0]
+ ldr r0, [r7, r0]
+ cmp r0, #6
+ ble _02225B84
+ mov r2, #0
+ sub r0, r1, #4
+ str r2, [r7, r0]
+ ldr r1, [r7, r1]
+ add r3, r7, #0
+ lsl r0, r1, #2
+ mov r2, #0x24
+ add r0, r7, r0
+ add r3, #0x54
+ mul r2, r1
+ add r1, r3, r2
+ ldr r0, [r0, #0x18]
+ ldr r2, [r7, #0x10]
+ ldr r3, [r7, #0x14]
+ bl MOD08_02225A1C
+ mov r0, #0x9d
+ lsl r0, r0, #2
+ ldr r1, [r7, r0]
+ add r1, r1, #1
+ str r1, [r7, r0]
+_02225B84:
+ mov r0, #0x9d
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r4, #0
+ cmp r0, #0
+ ble _02225BB0
+ add r6, r7, #0
+ add r6, #0x54
+ add r5, r7, #0
+_02225B96:
+ ldr r0, [r5, #0x18]
+ add r1, r6, #0
+ bl MOD08_02225A70
+ str r0, [sp]
+ mov r0, #0x9d
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ add r4, r4, #1
+ add r6, #0x24
+ add r5, r5, #4
+ cmp r4, r0
+ blt _02225B96
+_02225BB0:
+ cmp r0, #0xf
+ blt _02225BBE
+ ldr r0, [sp]
+ cmp r0, #1
+ bne _02225BBE
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02225BBE:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02225BC4
+MOD08_02225BC4: ; 0x02225BC4
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r7, r0, #0
+ add r0, r6, #0
+ bl MOD08_02225B3C
+ cmp r0, #0
+ beq _02225BF6
+ mov r4, #0
+ add r5, r6, #0
+_02225BD8:
+ ldr r0, [r5, #0x18]
+ bl FUN_0200C3DC
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xf
+ blt _02225BD8
+ add r0, r6, #0
+ bl FreeToHeap
+ ldr r0, [r6]
+ add r1, r7, #0
+ bl MOD08_02212438
+ pop {r3, r4, r5, r6, r7, pc}
+_02225BF6:
+ ldr r0, [r6, #8]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02225C00
+MOD08_02225C00: ; 0x02225C00
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ add r5, r1, #0
+ mov r1, #0x9e
+ lsl r1, r1, #2
+ add r4, r0, #0
+ str r2, [sp]
+ add r7, r3, #0
+ bl MOD08_02228064
+ add r6, r0, #0
+ str r4, [r6]
+ ldr r0, [sp]
+ str r5, [r6, #4]
+ str r0, [r6, #8]
+ add r0, r4, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_022154D4
+ mov r1, #0
+ add r5, r0, #0
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #4]
+ add r0, sp, #0xc
+ add r1, r4, #0
+ bl MOD08_02215474
+ mov r4, #0
+ add r5, r6, #0
+_02225C54:
+ cmp r4, #0
+ bne _02225C5C
+ str r7, [r5, #0x18]
+ b _02225C68
+_02225C5C:
+ ldr r0, [r6, #4]
+ ldr r1, [r6, #8]
+ add r2, sp, #0xc
+ bl FUN_0200C154
+ str r0, [r5, #0x18]
+_02225C68:
+ ldr r0, [r5, #0x18]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r5, #0x18]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r5, #0x18]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r5, #0x18]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r5, #0x18]
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #4]
+ bl FUN_0200C714
+ add r0, r4, #0
+ mov r1, #3
+ bl _s32_div_f
+ ldr r0, [r5, #0x18]
+ bl FUN_0200C5C0
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xf
+ blt _02225C54
+ ldr r0, [r6]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_02217C1C
+ str r0, [r6, #0x10]
+ ldr r0, [r6]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_02217C44
+ str r0, [r6, #0x14]
+ ldr r0, [r6]
+ ldr r1, _02225CD8 ; =MOD08_02225BC4
+ add r2, r6, #0
+ bl MOD08_02212400
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02225CD8: .word MOD08_02225BC4
+
+ thumb_func_start MOD08_02225CDC
+MOD08_02225CDC: ; 0x02225CDC
+ ldr r1, [r0, #0x2c]
+ cmp r1, #0
+ beq _02225CEC
+ cmp r1, #1
+ beq _02225D00
+ cmp r1, #2
+ beq _02225D14
+ bx lr
+_02225CEC:
+ ldr r1, _02225D28 ; =0x00007FFF
+ str r1, [r0, #0x18]
+ mov r1, #5
+ str r1, [r0, #0x24]
+ mov r1, #1
+ lsl r1, r1, #0x10
+ str r1, [r0, #0x1c]
+ mov r1, #0x10
+ str r1, [r0, #0x28]
+ bx lr
+_02225D00:
+ ldr r1, _02225D28 ; =0x00007FFF
+ str r1, [r0, #0x18]
+ mov r1, #4
+ mvn r1, r1
+ str r1, [r0, #0x24]
+ ldr r1, _02225D2C ; =0xFFFF0000
+ str r1, [r0, #0x1c]
+ mov r1, #0x10
+ str r1, [r0, #0x28]
+ bx lr
+_02225D14:
+ ldr r1, _02225D28 ; =0x00007FFF
+ str r1, [r0, #0x18]
+ mov r1, #0xa
+ str r1, [r0, #0x24]
+ lsl r1, r1, #0xd
+ str r1, [r0, #0x1c]
+ mov r1, #0x10
+ str r1, [r0, #0x28]
+ bx lr
+ nop
+_02225D28: .word 0x00007FFF
+_02225D2C: .word 0xFFFF0000
+
+ thumb_func_start MOD08_02225D30
+MOD08_02225D30: ; 0x02225D30
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ bl MOD08_02218894
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x10]
+ str r0, [sp]
+ str r0, [sp, #4]
+ sub r0, #8
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ add r0, #0x58
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ bge _02225D58
+ mov r0, #0
+ str r0, [sp, #4]
+_02225D58:
+ ldr r0, [sp]
+ cmp r0, #0xc0
+ ble _02225D62
+ mov r0, #0xc0
+ str r0, [sp]
+_02225D62:
+ mov r0, #0
+ ldr r1, [r5, #0x20]
+ mvn r0, r0
+ mul r0, r1
+ ldr r4, [sp, #4]
+ str r0, [r5, #0x20]
+ ldr r0, [sp]
+ add r1, r4, #0
+ cmp r1, r0
+ bge _02225E02
+_02225D76:
+ mov r0, #2
+ tst r0, r4
+ ldr r1, [r5, #0x1c]
+ beq _02225D86
+ ldr r0, [r5, #0x20]
+ lsl r0, r0, #0xc
+ add r2, r1, r0
+ b _02225D8C
+_02225D86:
+ ldr r0, [r5, #0x20]
+ lsl r0, r0, #0xc
+ sub r2, r1, r0
+_02225D8C:
+ ldr r1, [sp, #4]
+ ldr r0, [r5, #0x18]
+ sub r3, r4, r1
+ ldr r1, _02225E08 ; =0x00000199
+ mul r1, r3
+ add r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ asr r0, r0, #4
+ lsl r1, r0, #2
+ ldr r0, _02225E0C ; =0x020FFA38
+ asr r3, r2, #0x1f
+ ldrsh r0, [r0, r1]
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ ldr r0, _02225E10 ; =0x00000000
+ adc r1, r0
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ lsl r0, r1, #4
+ asr r7, r0, #0x10
+ ldr r0, [r5, #0x14]
+ ldr r1, [r5, #0x24]
+ sub r0, r4, r0
+ mul r0, r1
+ mov r1, #0xa
+ bl _s32_div_f
+ add r0, r7, r0
+ lsl r0, r0, #0x10
+ ldr r1, [r5, #0x30]
+ asr r7, r0, #0x10
+ lsl r0, r1, #0x10
+ lsr r1, r1, #0x10
+ lsl r1, r1, #0x10
+ asr r0, r0, #0x10
+ asr r1, r1, #0x10
+ sub r6, r4, #1
+ bpl _02225DE6
+ add r6, #0xc0
+_02225DE6:
+ add r0, r0, r7
+ lsl r0, r0, #0x10
+ lsl r1, r1, #0x10
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x10
+ bl MOD08_02218998
+ ldr r1, [sp, #8]
+ lsl r2, r6, #2
+ str r0, [r1, r2]
+ ldr r0, [sp]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _02225D76
+_02225E02:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02225E08: .word 0x00000199
+_02225E0C: .word 0x020FFA38
+_02225E10: .word 0x00000000
+
+ thumb_func_start MOD08_02225E14
+MOD08_02225E14: ; 0x02225E14
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _02225E2A
+ cmp r0, #1
+ beq _02225E3E
+ cmp r0, #2
+ beq _02225E68
+ pop {r4, r5, r6, pc}
+_02225E2A:
+ add r0, r4, #0
+ bl MOD08_02225CDC
+ add r0, r4, #0
+ bl MOD08_02225D30
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ pop {r4, r5, r6, pc}
+_02225E3E:
+ ldr r0, [r4, #0x28]
+ sub r0, r0, #1
+ str r0, [r4, #0x28]
+ add r0, r4, #0
+ bl MOD08_02225D30
+ ldr r0, [r4, #0x28]
+ cmp r0, #0
+ bge _02225EFA
+ ldr r0, [r4, #0x2c]
+ add r0, r0, #1
+ str r0, [r4, #0x2c]
+ cmp r0, #3
+ bge _02225E60
+ mov r0, #0
+ str r0, [r4, #8]
+ pop {r4, r5, r6, pc}
+_02225E60:
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ pop {r4, r5, r6, pc}
+_02225E68:
+ ldr r0, [r4, #0xc]
+ mov r1, #6
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ bl MOD08_022188A8
+ ldr r0, [r4, #4]
+ bl MOD08_02218870
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ add r5, r0, #0
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215600
+ add r1, r0, #0
+ lsl r0, r5, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldr r0, [r4]
+ bl MOD08_02215574
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ mov r0, #0
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02212014
+ add r3, r0, #0
+ lsl r0, r5, #0x18
+ mov r1, #1
+ lsr r0, r0, #0x18
+ lsl r1, r1, #0xe
+ mov r2, #0
+ bl FUN_02017F18
+ ldr r0, [r4]
+ bl MOD08_02212490
+ add r5, r0, #0
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ bl FUN_02018744
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [r4]
+ add r1, r6, #0
+ bl MOD08_02212438
+_02225EFA:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02225EFC
+MOD08_02225EFC: ; 0x02225EFC
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x34
+ add r7, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r7, [r4]
+ add r0, r7, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ mov r1, #0
+ str r0, [r4, #0xc]
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ ldr r0, [r4, #0xc]
+ mov r1, #0x29
+ bl FUN_0200782C
+ sub r0, r5, r0
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ ldr r0, [r4, #0xc]
+ mov r1, #6
+ mov r2, #1
+ bl FUN_02007558
+ sub r6, #0x28
+ lsl r0, r6, #0x10
+ str r5, [r4, #0x14]
+ sub r5, #0x28
+ asr r0, r0, #0x10
+ neg r0, r0
+ neg r1, r5
+ lsl r0, r0, #0x10
+ lsl r1, r1, #0x10
+ str r5, [r4, #0x10]
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x10
+ bl MOD08_02218998
+ str r0, [r4, #0x30]
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_022155C4
+ bl MOD08_022189A0
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02212014
+ add r2, r0, #0
+ ldr r1, [r4, #0x30]
+ add r0, r5, #0
+ bl MOD08_022187F4
+ str r0, [r4, #4]
+ mov r0, #1
+ str r0, [r4, #0x20]
+ add r0, r7, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02227468
+ sub r0, r0, #3
+ cmp r0, #1
+ bhi _02225FD0
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD08_02215588
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02215574
+ add r1, r0, #0
+ lsl r0, r5, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ ldr r0, [r4]
+ bl MOD08_02215574
+ add r1, r0, #0
+ add r1, r1, #1
+ lsl r1, r1, #0x18
+ mov r0, #0
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+_02225FD0:
+ ldr r0, [r4]
+ ldr r1, _02225FDC ; =MOD08_02225E14
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02225FDC: .word MOD08_02225E14
+
+ thumb_func_start MOD08_02225FE0
+MOD08_02225FE0: ; 0x02225FE0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #5
+ bls _02225FF0
+ b _02226134
+_02225FF0:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02225FFC: ; jump table
+ .short _02226008 - _02225FFC - 2 ; case 0
+ .short _0222604E - _02225FFC - 2 ; case 1
+ .short _02226088 - _02225FFC - 2 ; case 2
+ .short _022260C2 - _02225FFC - 2 ; case 3
+ .short _0222610E - _02225FFC - 2 ; case 4
+ .short _02226126 - _02225FFC - 2 ; case 5
+_02226008:
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0xc
+ mov r1, #0x7f
+ add r3, r2, #0
+ bl MOD08_02217E80
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _02226138 ; =0xFFFF1FFF
+ and r1, r0
+ lsr r0, r2, #0xd
+ orr r0, r1
+ str r0, [r2]
+ mov r1, #0
+ ldr r0, [r4]
+ add r2, r1, #0
+ bl MOD08_02227A4C
+ ldr r1, _0222613C ; =0x04000040
+ mov r0, #0xff
+ strh r0, [r1]
+ mov r0, #0xbf
+ strh r0, [r1, #4]
+ mov r0, #7
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_0222604E:
+ ldr r0, [r4, #8]
+ sub r0, r0, #1
+ str r0, [r4, #8]
+ bpl _02226134
+ ldr r0, [r4]
+ bl MOD08_02215504
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02214540
+ add r2, r0, #0
+ mov r3, #0
+ lsl r2, r2, #0x10
+ str r3, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, _02226140 ; =0x0000FFFF
+ mov r1, #1
+ str r0, [sp, #8]
+ add r0, r5, #0
+ lsr r2, r2, #0x10
+ bl FUN_02003210
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_02226088:
+ add r0, r4, #0
+ add r0, #0xc
+ bl MOD08_02217ECC
+ cmp r0, #0
+ beq _022260B8
+ mov r0, #0xc
+ ldrsh r2, [r4, r0]
+ mov r0, #0x7f
+ add sp, #0xc
+ sub r0, r0, r2
+ lsl r1, r0, #8
+ mov r0, #0xff
+ lsl r0, r0, #8
+ add r2, #0x80
+ and r1, r0
+ lsl r0, r2, #0x18
+ lsr r0, r0, #0x18
+ orr r0, r1
+ ldr r1, _0222613C ; =0x04000040
+ strh r0, [r1]
+ mov r0, #0xbf
+ strh r0, [r1, #4]
+ pop {r4, r5, pc}
+_022260B8:
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_022260C2:
+ ldr r0, [r4]
+ bl MOD08_02215504
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02226134
+ ldr r0, [r4, #4]
+ mov r2, #1
+ add r0, r0, #1
+ str r0, [r4, #4]
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _02226138 ; =0xFFFF1FFF
+ and r0, r1
+ str r0, [r2]
+ ldr r0, [r4]
+ bl MOD08_02215504
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD08_02214540
+ add r2, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ lsl r2, r2, #0x10
+ ldr r0, _02226140 ; =0x0000FFFF
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r5, #0
+ mov r1, #1
+ lsr r2, r2, #0x10
+ bl FUN_02003210
+ add sp, #0xc
+ pop {r4, r5, pc}
+_0222610E:
+ ldr r0, [r4]
+ bl MOD08_02215504
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02226134
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_02226126:
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+_02226134:
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02226138: .word 0xFFFF1FFF
+_0222613C: .word 0x04000040
+_02226140: .word 0x0000FFFF
+
+ thumb_func_start MOD08_02226144
+MOD08_02226144: ; 0x02226144
+ push {r4, lr}
+ mov r1, #0x34
+ add r4, r0, #0
+ bl MOD08_02228064
+ add r2, r0, #0
+ ldr r1, _0222615C ; =MOD08_02225FE0
+ add r0, r4, #0
+ str r4, [r2]
+ bl MOD08_02212400
+ pop {r4, pc}
+ .align 2, 0
+_0222615C: .word MOD08_02225FE0
+
+ thumb_func_start MOD08_02226160
+MOD08_02226160: ; 0x02226160
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #4
+ bhi _02226210
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222617A: ; jump table
+ .short _02226184 - _0222617A - 2 ; case 0
+ .short _022261AA - _0222617A - 2 ; case 1
+ .short _022261BE - _0222617A - 2 ; case 2
+ .short _022261E4 - _0222617A - 2 ; case 3
+ .short _022261F8 - _0222617A - 2 ; case 4
+_02226184:
+ ldr r0, [r4]
+ mov r1, #0
+ mov r2, #0x10
+ bl MOD08_02227994
+ mov r1, #0
+ mov r2, #0x10
+ str r1, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x14
+ add r3, r2, #0
+ bl MOD08_022186D4
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02226210
+_022261AA:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02226210
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02226210
+_022261BE:
+ ldr r0, [r4, #0x10]
+ bl FUN_0200C608
+ cmp r0, #0
+ bne _02226210
+ ldr r0, [r4, #0xc]
+ mov r2, #0
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r1, #0x10
+ str r1, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x14
+ add r3, r2, #0
+ bl MOD08_022186D4
+ b _02226210
+_022261E4:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02226210
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02226210
+_022261F8:
+ ldr r0, [r4, #0x10]
+ bl FUN_0200C3DC
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02226210:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222621C
+MOD08_0222621C: ; 0x0222621C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ mov r1, #0x3c
+ add r6, r0, #0
+ str r2, [sp]
+ add r5, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r6, [r4]
+ ldr r0, [sp]
+ str r7, [r4, #4]
+ str r0, [r4, #8]
+ str r5, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200C5E0
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4]
+ ldr r1, _02226254 ; =MOD08_02226160
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02226254: .word MOD08_02226160
+
+ thumb_func_start MOD08_02226258
+MOD08_02226258: ; 0x02226258
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #4
+ bhi _0222631C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02226272: ; jump table
+ .short _0222627C - _02226272 - 2 ; case 0
+ .short _022262E6 - _02226272 - 2 ; case 1
+ .short _02226328 - _02226272 - 2 ; case 2
+ .short _02226394 - _02226272 - 2 ; case 3
+ .short _022263E6 - _02226272 - 2 ; case 4
+_0222627C:
+ ldr r0, [r4, #0x68]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #0x6c]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x74]
+ asr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r1, [r4, #0x5c]
+ ldr r2, [r4, #0x60]
+ ldr r3, [r4, #0x64]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ add r0, #0x14
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_022181A8
+ mov r1, #0xa
+ mov r2, #8
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r3, [r4, #0x10]
+ add r0, #0x38
+ bl MOD08_02218454
+ add r0, r4, #0
+ ldr r1, [r4, #0x10]
+ add r0, #0x14
+ bl MOD08_022183A0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #8
+ mov r2, #0xc
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ ldr r3, [r4, #0x28]
+ bl MOD08_022182DC
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_022262E6:
+ mov r1, #0xa
+ mov r2, #8
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r3, [r4, #0x10]
+ add r0, #0x38
+ bl MOD08_02218454
+ add r0, r4, #0
+ ldr r1, [r4, #0x10]
+ add r0, #0x14
+ bl MOD08_022183A0
+ add r5, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #8
+ mov r2, #0xc
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ ldr r3, [r4, #0x28]
+ bl MOD08_022182DC
+ cmp r5, #0
+ beq _0222631E
+_0222631C:
+ b _02226424
+_0222631E:
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_02226328:
+ ldr r0, [r4, #0x64]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #0x6c]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x74]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r1, [r4, #0x60]
+ ldr r2, [r4, #0x5c]
+ ldr r3, [r4, #0x68]
+ add r0, r4, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ add r0, #0x14
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_022181A8
+ mov r1, #0xa
+ mov r2, #8
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r3, [r4, #0x10]
+ add r0, #0x38
+ bl MOD08_02218454
+ add r0, r4, #0
+ ldr r1, [r4, #0x10]
+ add r0, #0x14
+ bl MOD08_022183A0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #8
+ mov r2, #0xc
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ ldr r3, [r4, #0x28]
+ bl MOD08_022182DC
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_02226394:
+ mov r1, #0xa
+ mov r2, #8
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r3, [r4, #0x10]
+ add r0, #0x38
+ bl MOD08_02218454
+ add r0, r4, #0
+ ldr r1, [r4, #0x10]
+ add r0, #0x14
+ bl MOD08_022183A0
+ add r5, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #8
+ mov r2, #0xc
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ ldr r3, [r4, #0x28]
+ bl MOD08_022182DC
+ cmp r5, #0
+ bne _02226424
+ ldr r0, [r4, #0x70]
+ sub r0, r0, #1
+ str r0, [r4, #0x70]
+ cmp r0, #0
+ bgt _022263DE
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_022263DE:
+ mov r0, #0
+ add sp, #0xc
+ str r0, [r4, #4]
+ pop {r4, r5, pc}
+_022263E6:
+ mov r2, #0xa
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #8
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_02007558
+ mov r1, #0xc
+ add r2, r1, #0
+ ldr r0, [r4, #0x10]
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #0x10]
+ add r2, #0xf3
+ bl FUN_02007558
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+_02226424:
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD08_02226428
+MOD08_02226428: ; 0x02226428
+ push {r3, r4, r5, lr}
+ mov r1, #0x78
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ add r0, r5, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_0221552C
+ strh r0, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD08_02212460
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD08_022154D4
+ str r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #8]
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0xa]
+ mov r1, #0xa
+ str r1, [r4, #0x5c]
+ mov r0, #7
+ str r0, [r4, #0x60]
+ str r1, [r4, #0x64]
+ mov r0, #0x1e
+ str r0, [r4, #0x68]
+ str r1, [r4, #0x6c]
+ mov r3, #1
+ ldr r0, _0222649C ; =0x00040003
+ str r3, [r4, #0x70]
+ str r0, [r4, #0x74]
+ mov r1, #2
+ add r0, r4, #0
+ str r1, [sp]
+ add r0, #0x38
+ mov r2, #0
+ bl MOD08_022183C0
+ ldr r0, [r4]
+ ldr r1, _022264A0 ; =MOD08_02226258
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, pc}
+ nop
+_0222649C: .word 0x00040003
+_022264A0: .word MOD08_02226258
+
+ thumb_func_start MOD08_022264A4
+MOD08_022264A4: ; 0x022264A4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ ldr r1, [r4, #0x2c]
+ add r0, #8
+ bl MOD08_02217F08
+ cmp r0, #0
+ bne _022264CE
+ ldr r0, [r4, #0x2c]
+ bl FUN_0200C3DC
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ pop {r3, r4, r5, pc}
+_022264CE:
+ ldr r0, [r4, #4]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022264D8
+MOD08_022264D8: ; 0x022264D8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ mov r1, #0x30
+ add r5, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r5, [r4]
+ add r0, r5, #0
+ bl MOD08_02212518
+ str r0, [r4, #4]
+ add r0, r5, #0
+ bl MOD08_02212458
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02227470
+ cmp r0, #3
+ bne _0222651C
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_022124B0
+ str r0, [r4, #0x2c]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_022124B0
+ bl FUN_0200C3DC
+ b _02226532
+_0222651C:
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_022124B0
+ str r0, [r4, #0x2c]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_022124B0
+ bl FUN_0200C3DC
+_02226532:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02217C1C
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02217C44
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0
+ bl MOD08_02217B98
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #1
+ bl MOD08_02217B98
+ ldr r1, [sp, #0x10]
+ lsl r2, r7, #6
+ add r6, r1, r2
+ ldr r1, [sp, #0xc]
+ lsl r1, r1, #4
+ neg r1, r1
+ add r5, r0, r1
+ str r1, [sp, #8]
+ lsl r1, r6, #0x10
+ lsl r2, r5, #0x10
+ ldr r0, [r4, #0x2c]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ ldr r0, [sp, #8]
+ mov r2, #0x30
+ add r0, r5, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ mul r2, r7
+ str r0, [sp]
+ mov r0, #6
+ add r2, r6, r2
+ str r0, [sp, #4]
+ add r0, r4, #0
+ lsl r1, r6, #0x10
+ lsl r2, r2, #0x10
+ lsl r3, r5, #0x10
+ add r0, #8
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ ldr r0, [r4]
+ ldr r1, _022265B0 ; =MOD08_022264A4
+ add r2, r4, #0
+ bl MOD08_02212400
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022265B0: .word MOD08_022264A4
+
+ thumb_func_start MOD08_022265B4
+MOD08_022265B4: ; 0x022265B4
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #5
+ bls _022265C4
+ b _022266E0
+_022265C4:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022265D0: ; jump table
+ .short _022265DC - _022265D0 - 2 ; case 0
+ .short _022265F6 - _022265D0 - 2 ; case 1
+ .short _02226644 - _022265D0 - 2 ; case 2
+ .short _02226660 - _022265D0 - 2 ; case 3
+ .short _022266A2 - _022265D0 - 2 ; case 4
+ .short _022266BA - _022265D0 - 2 ; case 5
+_022265DC:
+ mov r1, #4
+ add r0, r4, #0
+ str r1, [sp]
+ add r0, #0x40
+ mov r2, #0
+ mov r3, #1
+ bl MOD08_022183C0
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, r6, pc}
+_022265F6:
+ mov r1, #0x18
+ mov r2, #0x1a
+ add r0, r4, #0
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r3, [r4, #0x14]
+ add r0, #0x40
+ bl MOD08_02218454
+ cmp r0, #0
+ bne _022266E0
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0x1a
+ ldrsh r3, [r4, r0]
+ mov r0, #0x18
+ ldrsh r1, [r4, r0]
+ ldr r2, [r4, #0x10]
+ sub r0, #0x1f
+ mul r0, r2
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ add r0, r4, #0
+ ldr r4, [r4, #0xc]
+ mov r2, #0x28
+ mul r2, r4
+ add r2, r1, r2
+ lsl r2, r2, #0x10
+ add r0, #0x1c
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r4, r5, r6, pc}
+_02226644:
+ add r0, r4, #0
+ ldr r1, [r4, #0x14]
+ add r0, #0x1c
+ bl MOD08_02217F2C
+ cmp r0, #0
+ bne _022266E0
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #8
+ str r0, [r4, #8]
+ pop {r4, r5, r6, pc}
+_02226660:
+ ldr r0, [r4, #8]
+ sub r0, r0, #1
+ str r0, [r4, #8]
+ bpl _022266E0
+ ldr r0, [r4, #4]
+ mov r5, #0x28
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0x1a
+ ldrsh r3, [r4, r0]
+ mov r0, #0x18
+ ldrsh r2, [r4, r0]
+ mov r0, #4
+ str r3, [sp]
+ str r0, [sp, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r4, #0
+ add r6, r1, #0
+ mul r6, r5
+ add r1, r2, r6
+ lsl r1, r1, #0x10
+ ldr r4, [r4, #0x10]
+ sub r5, #0x2f
+ mul r5, r4
+ add r3, r3, r5
+ lsl r3, r3, #0x10
+ add r0, #0x1c
+ asr r1, r1, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r4, r5, r6, pc}
+_022266A2:
+ add r0, r4, #0
+ ldr r1, [r4, #0x14]
+ add r0, #0x1c
+ bl MOD08_02217F2C
+ cmp r0, #0
+ bne _022266E0
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, r6, pc}
+_022266BA:
+ mov r2, #0x18
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x1a
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_02007558
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+_022266E0:
+ add sp, #8
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_022266E4
+MOD08_022266E4: ; 0x022266E4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r1, #0x64
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ str r5, [r4]
+ bl MOD08_02212458
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x18]
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x1a]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02217C1C
+ str r0, [r4, #0xc]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02217C44
+ str r0, [r4, #0x10]
+ ldr r0, [r4]
+ ldr r1, _02226738 ; =MOD08_022265B4
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r4, r5, r6, pc}
+ nop
+_02226738: .word MOD08_022265B4
+
+ thumb_func_start MOD08_0222673C
+MOD08_0222673C: ; 0x0222673C
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #4
+ bls _0222674C
+ b _0222685C
+_0222674C:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02226758: ; jump table
+ .short _02226762 - _02226758 - 2 ; case 0
+ .short _02226798 - _02226758 - 2 ; case 1
+ .short _022267C0 - _02226758 - 2 ; case 2
+ .short _0222681E - _02226758 - 2 ; case 3
+ .short _02226836 - _02226758 - 2 ; case 4
+_02226762:
+ mov r0, #0x16
+ ldrsh r3, [r4, r0]
+ mov r0, #0x14
+ ldrsh r1, [r4, r0]
+ ldr r0, [r4, #0xc]
+ mov r5, #4
+ lsl r0, r0, #4
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ str r5, [sp, #4]
+ ldr r2, [r4, #8]
+ sub r5, #0x2c
+ mul r5, r2
+ add r2, r1, r5
+ add r0, r4, #0
+ lsl r2, r2, #0x10
+ add r0, #0x18
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_02226798:
+ add r0, r4, #0
+ ldr r1, [r4, #0x10]
+ add r0, #0x18
+ bl MOD08_02217F2C
+ cmp r0, #0
+ bne _0222685C
+ ldr r0, [r4, #4]
+ mov r1, #4
+ add r0, r0, #1
+ str r0, [r4, #4]
+ add r4, #0x3c
+ add r0, r4, #0
+ mov r2, #0
+ mov r3, #1
+ str r1, [sp]
+ bl MOD08_022183C0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_022267C0:
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ lsl r0, r0, #0x10
+ asr r2, r0, #0x10
+ add r0, r4, #0
+ ldr r3, [r4, #0x10]
+ add r0, #0x3c
+ add r1, r5, #0
+ bl MOD08_02218454
+ cmp r0, #0
+ bne _0222685C
+ ldr r0, [r4, #4]
+ mov r5, #4
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0x16
+ ldrsh r3, [r4, r0]
+ mov r0, #0x14
+ ldrsh r2, [r4, r0]
+ add r0, r4, #0
+ add r0, #0x18
+ str r3, [sp]
+ str r5, [sp, #4]
+ ldr r1, [r4, #8]
+ ldr r4, [r4, #0xc]
+ sub r5, #0x2c
+ mul r5, r1
+ lsl r4, r4, #4
+ add r1, r2, r5
+ add r3, r3, r4
+ lsl r1, r1, #0x10
+ lsl r3, r3, #0x10
+ asr r1, r1, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_0222681E:
+ add r0, r4, #0
+ ldr r1, [r4, #0x10]
+ add r0, #0x18
+ bl MOD08_02217F2C
+ cmp r0, #0
+ bne _0222685C
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_02226836:
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_02007558
+ mov r2, #0x16
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_02007558
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+_0222685C:
+ add sp, #8
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02226860
+MOD08_02226860: ; 0x02226860
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r1, #0x60
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r0, r5, #0
+ str r5, [r4]
+ bl MOD08_02212460
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_022154D4
+ str r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4, #0x14]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #0x16]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02217C1C
+ str r0, [r4, #8]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD08_02217C44
+ str r0, [r4, #0xc]
+ ldr r0, [r4]
+ ldr r1, _022268B4 ; =MOD08_0222673C
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r4, r5, r6, pc}
+ nop
+_022268B4: .word MOD08_0222673C
+
+ thumb_func_start MOD08_022268B8
+MOD08_022268B8: ; 0x022268B8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ add r7, r1, #0
+ add r4, r0, #0
+ mov r1, #0xac
+ add r6, r2, #0
+ str r3, [sp]
+ bl MOD08_02228064
+ str r4, [r0]
+ str r0, [sp, #4]
+ str r6, [r0, #0xc]
+ add r0, r4, #0
+ bl MOD08_02212458
+ add r5, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02217C1C
+ ldr r1, [sp, #4]
+ str r0, [r1, #0x10]
+ ldr r1, [r1]
+ add r0, sp, #8
+ bl MOD08_02215474
+ add r0, r4, #0
+ add r1, r5, #0
+ mov r2, #0
+ bl MOD08_02217B98
+ add r1, sp, #8
+ strh r0, [r1]
+ add r0, r4, #0
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD08_02217B98
+ add r1, sp, #8
+ ldr r5, [sp, #4]
+ strh r0, [r1, #2]
+ mov r4, #0
+_0222690C:
+ cmp r4, #0
+ add r2, sp, #8
+ bne _02226926
+ ldr r0, [sp]
+ mov r1, #0
+ str r0, [r5, #0x14]
+ ldrsh r1, [r2, r1]
+ add r3, r2, #0
+ mov r2, #2
+ ldrsh r2, [r3, r2]
+ bl FUN_0200C714
+ b _02226930
+_02226926:
+ add r0, r7, #0
+ add r1, r6, #0
+ bl FUN_0200C154
+ str r0, [r5, #0x14]
+_02226930:
+ ldr r0, [r5, #0x14]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r5, #0x14]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r5, #0x14]
+ mov r1, #1
+ bl FUN_0200C6B0
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #2
+ blt _0222690C
+ ldr r0, [sp, #4]
+ ldr r1, _02226960 ; =MOD08_02226964
+ ldr r0, [r0]
+ ldr r2, [sp, #4]
+ bl MOD08_02212400
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02226960: .word MOD08_02226964
+
+ thumb_func_start MOD08_02226964
+MOD08_02226964: ; 0x02226964
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r7, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #4
+ bhi _02226A48
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222697C: ; jump table
+ .short _02226986 - _0222697C - 2 ; case 0
+ .short _022269AE - _0222697C - 2 ; case 1
+ .short _022269CE - _0222697C - 2 ; case 2
+ .short _02226A00 - _0222697C - 2 ; case 3
+ .short _02226A26 - _0222697C - 2 ; case 4
+_02226986:
+ add r2, r4, #0
+ ldr r0, [r4, #0x14]
+ ldr r3, [r4, #0x10]
+ add r1, #0x1c
+ add r2, #0x64
+ bl MOD08_02226A50
+ add r1, r4, #0
+ add r2, r4, #0
+ ldr r0, [r4, #0x14]
+ add r1, #0x1c
+ add r2, #0x64
+ bl MOD08_02226AB0
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #8
+ str r0, [r4, #8]
+ b _02226A48
+_022269AE:
+ ldr r0, [r4, #8]
+ add r2, r4, #0
+ sub r0, r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #0x14]
+ add r1, #0x1c
+ add r2, #0x64
+ bl MOD08_02226AB0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ bge _02226A48
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ b _02226A48
+_022269CE:
+ add r2, r4, #0
+ ldr r0, [r4, #0x18]
+ ldr r3, [r4, #0x10]
+ add r1, #0x40
+ add r2, #0x88
+ bl MOD08_02226A50
+ add r1, r4, #0
+ add r2, r4, #0
+ ldr r0, [r4, #0x18]
+ add r1, #0x40
+ add r2, #0x88
+ bl MOD08_02226AB0
+ add r1, r4, #0
+ add r2, r4, #0
+ ldr r0, [r4, #0x14]
+ add r1, #0x1c
+ add r2, #0x64
+ bl MOD08_02226AB0
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ b _02226A48
+_02226A00:
+ add r2, r4, #0
+ ldr r0, [r4, #0x14]
+ add r1, #0x1c
+ add r2, #0x64
+ bl MOD08_02226AB0
+ add r1, r4, #0
+ add r2, r4, #0
+ ldr r0, [r4, #0x18]
+ add r1, #0x40
+ add r2, #0x88
+ bl MOD08_02226AB0
+ cmp r0, #0
+ beq _02226A48
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ b _02226A48
+_02226A26:
+ mov r6, #0
+ add r5, r4, #0
+_02226A2A:
+ ldr r0, [r5, #0x14]
+ bl FUN_0200C3DC
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #2
+ blt _02226A2A
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, r6, r7, pc}
+_02226A48:
+ ldr r0, [r4, #0xc]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02226A50
+MOD08_02226A50: ; 0x02226A50
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r6, r1, #0
+ add r5, r0, #0
+ mov r1, #2
+ add r7, r2, #0
+ add r4, r3, #0
+ bl FUN_0200C840
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200C644
+ add r1, sp, #8
+ add r0, r5, #0
+ add r1, #2
+ add r2, sp, #8
+ bl FUN_0200C7A0
+ add r1, sp, #8
+ mov r0, #0
+ ldrsh r3, [r1, r0]
+ mov r0, #2
+ ldrsh r1, [r1, r0]
+ add r0, r3, #0
+ sub r0, #0x20
+ lsl r0, r0, #0x10
+ lsl r2, r4, #4
+ asr r0, r0, #0x10
+ add r2, r1, r2
+ str r0, [sp]
+ mov r0, #0x20
+ lsl r2, r2, #0x10
+ str r0, [sp, #4]
+ add r0, r6, #0
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ mov r0, #0x20
+ mov r2, #0xa
+ str r0, [sp]
+ add r0, r7, #0
+ mov r1, #2
+ add r3, r2, #0
+ bl MOD08_02218120
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02226AB0
+MOD08_02226AB0: ; 0x02226AB0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ add r4, r2, #0
+ add r1, r5, #0
+ bl MOD08_02217F08
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02218360
+ cmp r0, #0
+ beq _02226ACE
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02226ACE:
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_0200C644
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02226ADC
+MOD08_02226ADC: ; 0x02226ADC
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x3c
+ add r6, r0, #0
+ add r7, r2, #0
+ add r5, r3, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ str r6, [r4]
+ str r7, [r4, #0xc]
+ str r5, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #0x10]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x10]
+ bl FUN_0200C68C
+ str r0, [r4, #8]
+ ldr r0, [r4]
+ ldr r1, _02226B28 ; =MOD08_02226B2C
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02226B28: .word MOD08_02226B2C
+
+ thumb_func_start MOD08_02226B2C
+MOD08_02226B2C: ; 0x02226B2C
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #4
+ bhi _02226C18
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02226B46: ; jump table
+ .short _02226B50 - _02226B46 - 2 ; case 0
+ .short _02226B80 - _02226B46 - 2 ; case 1
+ .short _02226BA6 - _02226B46 - 2 ; case 2
+ .short _02226BE4 - _02226B46 - 2 ; case 3
+ .short _02226C00 - _02226B46 - 2 ; case 4
+_02226B50:
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x14
+ mov r1, #0
+ mov r2, #0x10
+ mov r3, #0x14
+ bl MOD08_022186D4
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r0, [r4]
+ mov r1, #0
+ mov r2, #0x14
+ bl MOD08_02227994
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ b _02226C18
+_02226B80:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02226C18
+ ldr r0, [r4, #4]
+ mov r1, #1
+ add r0, r0, #1
+ str r0, [r4, #4]
+ ldr r0, [r4, #0x10]
+ bl FUN_0200C5E0
+ mov r1, #1
+ ldr r0, [r4, #0x10]
+ lsl r1, r1, #0xc
+ bl FUN_0200C5F4
+ b _02226C18
+_02226BA6:
+ ldr r0, [r4, #0x10]
+ bl FUN_0200C630
+ mov r1, #3
+ bl _s32_div_f
+ ldr r2, [r4, #8]
+ ldr r0, [r4, #0x10]
+ add r1, r2, r1
+ bl FUN_0200C680
+ ldr r0, [r4, #0x10]
+ bl FUN_0200C608
+ cmp r0, #0
+ bne _02226C18
+ ldr r0, [r4, #4]
+ mov r1, #0x10
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0x14
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x14
+ mov r2, #0
+ mov r3, #4
+ bl MOD08_022186D4
+ b _02226C18
+_02226BE4:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02226C18
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r0, r0, #1
+ str r0, [r4, #4]
+ ldr r0, [r4, #0x10]
+ bl FUN_0200C644
+ b _02226C18
+_02226C00:
+ ldr r0, [r4, #0x10]
+ bl FUN_0200C3DC
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl FreeToHeap
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02226C18:
+ ldr r0, [r4, #0xc]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02226C24
+MOD08_02226C24: ; 0x02226C24
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x4c
+ str r1, [sp, #4]
+ str r2, [sp, #8]
+ mov r1, #0x54
+ add r5, r0, #0
+ str r3, [sp, #0xc]
+ bl MOD08_02228064
+ ldr r1, [sp, #8]
+ str r5, [r0]
+ str r0, [sp, #0x14]
+ str r1, [r0, #8]
+ ldr r0, [r0]
+ bl MOD08_02212458
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_02217C1C
+ ldr r1, [sp, #0x14]
+ str r0, [sp, #0x10]
+ ldr r1, [r1]
+ add r0, sp, #0x18
+ bl MOD08_02215474
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD08_02217B98
+ add r1, sp, #0x18
+ strh r0, [r1]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #1
+ bl MOD08_02217B98
+ ldr r7, [sp, #0x14]
+ ldr r6, [sp, #0x14]
+ ldr r5, [sp, #0x14]
+ add r1, sp, #0x18
+ add r7, #0x3c
+ add r6, #0x24
+ strh r0, [r1, #2]
+ mov r4, #5
+ add r5, #0x14
+ add r7, #0x14
+ add r6, #0x14
+_02226C88:
+ cmp r4, #5
+ add r2, sp, #0x18
+ bne _02226CA2
+ ldr r0, [sp, #0xc]
+ mov r1, #0
+ str r0, [r5, #0xc]
+ ldrsh r1, [r2, r1]
+ add r3, r2, #0
+ mov r2, #2
+ ldrsh r2, [r3, r2]
+ bl FUN_0200C714
+ b _02226CAC
+_02226CA2:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #8]
+ bl FUN_0200C154
+ str r0, [r5, #0xc]
+_02226CAC:
+ ldr r0, [r5, #0xc]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r5, #0xc]
+ mov r1, #1
+ bl FUN_0200C6B0
+ ldr r0, [r5, #0xc]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [sp, #0x10]
+ add r1, r6, #0
+ str r0, [sp]
+ ldr r0, [r5, #0xc]
+ add r2, r7, #0
+ add r3, r4, #0
+ bl MOD08_02226CF4
+ sub r5, r5, #4
+ sub r7, r7, #4
+ sub r6, r6, #4
+ sub r4, r4, #1
+ bpl _02226C88
+ ldr r0, [sp, #0x14]
+ ldr r1, _02226CF0 ; =MOD08_02226D78
+ ldr r0, [r0]
+ ldr r2, [sp, #0x14]
+ bl MOD08_02212400
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02226CF0: .word MOD08_02226D78
+
+ thumb_func_start MOD08_02226CF4
+MOD08_02226CF4: ; 0x02226CF4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r3, #0
+ add r6, r1, #0
+ lsr r1, r4, #0x1f
+ add r1, r4, r1
+ asr r1, r1, #1
+ add r5, r0, #0
+ add r7, r2, #0
+ bl FUN_0200C5C0
+ lsl r0, r4, #1
+ str r0, [r7]
+ mov r0, #0x10
+ add r1, sp, #0
+ str r0, [r6]
+ add r0, r5, #0
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ mov r1, #2
+ add r6, r1, #0
+ add r2, sp, #0
+ sub r6, #0xe
+ mul r6, r4
+ ldr r0, [sp, #0x18]
+ ldrsh r3, [r2, r1]
+ add r6, #0x28
+ add r4, r0, #0
+ mul r4, r6
+ add r0, r3, r4
+ mov r3, #0
+ strh r0, [r2, #2]
+ ldrsh r0, [r2, r3]
+ add r0, #0x28
+ strh r0, [r2]
+ ldrsh r1, [r2, r1]
+ ldrsh r2, [r2, r3]
+ add r0, r5, #0
+ bl FUN_0200C714
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02226D48
+MOD08_02226D48: ; 0x02226D48
+ push {r3, lr}
+ ldr r3, [r2]
+ cmp r3, #0
+ ble _02226D5E
+ sub r1, r3, #1
+ str r1, [r2]
+ bne _02226D74
+ mov r1, #1
+ bl FUN_0200C644
+ b _02226D74
+_02226D5E:
+ ldr r2, [r1]
+ cmp r2, #0
+ ble _02226D6A
+ sub r0, r2, #1
+ str r0, [r1]
+ b _02226D74
+_02226D6A:
+ mov r1, #0
+ bl FUN_0200C644
+ mov r0, #1
+ pop {r3, pc}
+_02226D74:
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02226D78
+MOD08_02226D78: ; 0x02226D78
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r1, #4]
+ str r1, [sp]
+ cmp r0, #0
+ beq _02226D8A
+ cmp r0, #1
+ beq _02226DBC
+ b _02226DE0
+_02226D8A:
+ add r6, r1, #0
+ add r4, r1, #0
+ mov r7, #0
+ add r6, #0x3c
+ add r4, #0x24
+ add r5, r1, #0
+_02226D96:
+ ldr r0, [r5, #0xc]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD08_02226D48
+ add r7, r7, #1
+ add r6, r6, #4
+ add r4, r4, #4
+ add r5, r5, #4
+ cmp r7, #6
+ blt _02226D96
+ cmp r0, #0
+ beq _02226DE0
+ ldr r0, [sp]
+ ldr r0, [r0, #4]
+ add r1, r0, #1
+ ldr r0, [sp]
+ str r1, [r0, #4]
+ b _02226DE0
+_02226DBC:
+ mov r5, #0
+ add r4, r1, #0
+_02226DC0:
+ ldr r0, [r4, #0xc]
+ bl FUN_0200C3DC
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #6
+ blt _02226DC0
+ ldr r0, [sp]
+ add r1, r6, #0
+ ldr r0, [r0]
+ bl MOD08_02212438
+ ldr r0, [sp]
+ bl FreeToHeap
+ pop {r3, r4, r5, r6, r7, pc}
+_02226DE0:
+ ldr r0, [sp]
+ ldr r0, [r0, #8]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02226DEC
+MOD08_02226DEC: ; 0x02226DEC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ mov r7, #0
+ add r6, r5, #0
+ str r1, [sp, #0x10]
+ add r6, #0x30
+ add r4, r7, #0
+_02226DFC:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x32
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #0x30
+ mov r1, #0
+ str r0, [sp, #0xc]
+ ldr r2, _02226E3C ; =0x00007FFF
+ add r0, r6, #0
+ add r3, r1, #0
+ bl MOD08_02217D14
+ ldr r0, [r5, #0x38]
+ add r7, r7, #1
+ add r0, r0, r4
+ str r0, [r5, #0x38]
+ ldr r1, [r5, #0x48]
+ ldr r0, [sp, #0x10]
+ add r6, #0x24
+ mul r0, r1
+ str r0, [r5, #0x48]
+ ldr r0, _02226E40 ; =0x00002AAA
+ add r5, #0x24
+ add r4, r4, r0
+ cmp r7, #6
+ blt _02226DFC
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02226E3C: .word 0x00007FFF
+_02226E40: .word 0x00002AAA
+
+ thumb_func_start MOD08_02226E44
+MOD08_02226E44: ; 0x02226E44
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r0, #0
+ add r7, r6, #0
+ str r0, [sp]
+ add r7, #0x30
+ add r4, r6, #0
+ add r5, r6, #0
+_02226E54:
+ add r0, r7, #0
+ bl MOD08_02217D98
+ mov r1, #0x13
+ lsl r1, r1, #4
+ mov r2, #0x30
+ ldrsh r1, [r6, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r5, #0x18]
+ add r1, r1, r2
+ ldr r2, _02226EB0 ; =0x00000132
+ lsl r1, r1, #0x10
+ ldrsh r2, [r6, r2]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+ ldr r1, [r4, #0x38]
+ ldr r0, _02226EB4 ; =0x00003FFF
+ cmp r1, r0
+ blt _02226E8C
+ ldr r0, _02226EB8 ; =0x0000BF49
+ cmp r1, r0
+ bgt _02226E8C
+ ldr r0, [r5, #0x18]
+ mov r1, #1
+ bl FUN_0200C6B0
+ b _02226E9C
+_02226E8C:
+ ldr r0, [r6]
+ bl MOD08_02215574
+ add r1, r0, #0
+ ldr r0, [r5, #0x18]
+ add r1, r1, #1
+ bl FUN_0200C6B0
+_02226E9C:
+ ldr r0, [sp]
+ add r7, #0x24
+ add r0, r0, #1
+ add r4, #0x24
+ add r5, r5, #4
+ str r0, [sp]
+ cmp r0, #6
+ blt _02226E54
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02226EB0: .word 0x00000132
+_02226EB4: .word 0x00003FFF
+_02226EB8: .word 0x0000BF49
+
+ thumb_func_start MOD08_02226EBC
+MOD08_02226EBC: ; 0x02226EBC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r7, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #4
+ bhi _02226FA2
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02226ED6: ; jump table
+ .short _02226EE0 - _02226ED6 - 2 ; case 0
+ .short _02226F16 - _02226ED6 - 2 ; case 1
+ .short _02226F36 - _02226ED6 - 2 ; case 2
+ .short _02226F62 - _02226ED6 - 2 ; case 3
+ .short _02226F7E - _02226ED6 - 2 ; case 4
+_02226EE0:
+ ldr r0, [r4]
+ mov r1, #1
+ mov r2, #0xf
+ bl MOD08_02227994
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ add r0, #0xfe
+ add r0, r4, r0
+ mov r1, #1
+ mov r2, #0x10
+ mov r3, #0xf
+ bl MOD08_022186D4
+ ldr r1, [r4, #0x14]
+ add r0, r4, #0
+ bl MOD08_02226DEC
+ add r0, r4, #0
+ bl MOD08_02226E44
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02226FA2
+_02226F16:
+ add r0, r4, #0
+ bl MOD08_02226E44
+ mov r0, #0x42
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02226FA2
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #0x1c
+ str r0, [r4, #0x10]
+ b _02226FA2
+_02226F36:
+ add r0, r4, #0
+ bl MOD08_02226E44
+ ldr r0, [r4, #0x10]
+ sub r0, r0, #1
+ str r0, [r4, #0x10]
+ bpl _02226FA2
+ ldr r0, [r4, #0xc]
+ mov r1, #0x10
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #0xf
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ add r0, #0xfe
+ add r0, r4, r0
+ mov r2, #1
+ mov r3, #0
+ bl MOD08_022186D4
+ b _02226FA2
+_02226F62:
+ add r0, r4, #0
+ bl MOD08_02226E44
+ mov r0, #0x42
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD08_02218704
+ cmp r0, #0
+ beq _02226FA2
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02226FA2
+_02226F7E:
+ mov r6, #0
+ add r5, r4, #0
+_02226F82:
+ ldr r0, [r5, #0x18]
+ bl FUN_0200C3DC
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #6
+ blt _02226F82
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD08_02212438
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02226FA2:
+ ldr r0, [r4, #8]
+ bl FUN_0200BC1C
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02226FAC
+MOD08_02226FAC: ; 0x02226FAC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r5, r1, #0
+ mov r1, #0x4d
+ lsl r1, r1, #2
+ add r4, r0, #0
+ str r2, [sp]
+ add r7, r3, #0
+ bl MOD08_02228064
+ add r6, r0, #0
+ str r4, [r6]
+ ldr r0, [sp]
+ str r5, [r6, #4]
+ str r0, [r6, #8]
+ add r0, r4, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_022154D4
+ mov r1, #0
+ add r5, r0, #0
+ bl FUN_0200782C
+ mov r1, #0x13
+ lsl r1, r1, #4
+ strh r0, [r6, r1]
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200782C
+ ldr r1, _02227050 ; =0x00000132
+ strh r0, [r6, r1]
+ add r0, sp, #4
+ add r1, r4, #0
+ bl MOD08_02215474
+ mov r4, #0
+ add r5, r6, #0
+_02226FFE:
+ cmp r4, #0
+ bne _02227006
+ str r7, [r5, #0x18]
+ b _02227012
+_02227006:
+ ldr r0, [r6, #4]
+ ldr r1, [r6, #8]
+ add r2, sp, #4
+ bl FUN_0200C154
+ str r0, [r5, #0x18]
+_02227012:
+ ldr r0, [r5, #0x18]
+ mov r1, #0x64
+ bl FUN_0200C6C4
+ ldr r0, [r5, #0x18]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r5, #0x18]
+ mov r1, #1
+ bl FUN_0200C5E0
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _02226FFE
+ ldr r0, [r6]
+ bl MOD08_02212458
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD08_02217C1C
+ str r0, [r6, #0x14]
+ ldr r0, [r6]
+ ldr r1, _02227054 ; =MOD08_02226EBC
+ add r2, r6, #0
+ bl MOD08_02212400
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02227050: .word 0x00000132
+_02227054: .word MOD08_02226EBC
+
+ thumb_func_start MOD08_02227058
+MOD08_02227058: ; 0x02227058
+ strh r1, [r0, #0xc]
+ strh r2, [r0, #0xe]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02227060
+MOD08_02227060: ; 0x02227060
+ strh r1, [r0, #0x14]
+ strh r2, [r0, #0x16]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02227068
+MOD08_02227068: ; 0x02227068
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, [r5, #0x1c]
+ add r4, r1, #0
+ bl MOD08_02212014
+ add r6, r0, #0
+ ldr r0, [r5, #0x1c]
+ mov r1, #3
+ bl MOD08_02215600
+ add r1, r0, #0
+ lsl r0, r4, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ str r6, [sp, #0xc]
+ ldr r1, [r5, #4]
+ ldr r0, [r5]
+ lsl r2, r1, #4
+ ldr r1, _022270F8 ; =0x0222C670
+ add r3, r4, #0
+ ldr r1, [r1, r2]
+ ldr r2, [r5, #0x2c]
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x80
+ str r0, [sp, #8]
+ ldr r2, [r5, #4]
+ ldr r0, [r5, #0x30]
+ lsl r3, r2, #4
+ ldr r2, _022270FC ; =0x0222C674
+ ldr r1, [r5]
+ ldr r2, [r2, r3]
+ add r3, r6, #0
+ bl FUN_020030E8
+ lsl r1, r4, #0x18
+ ldr r0, [r5, #0x2c]
+ lsr r1, r1, #0x18
+ bl FUN_02018744
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ str r6, [sp, #0xc]
+ ldr r1, [r5, #4]
+ ldr r0, [r5]
+ lsl r2, r1, #4
+ ldr r1, _02227100 ; =0x0222C678
+ add r3, r4, #0
+ ldr r1, [r1, r2]
+ ldr r2, [r5, #0x2c]
+ bl FUN_020068C8
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ nop
+_022270F8: .word 0x0222C670
+_022270FC: .word 0x0222C674
+_02227100: .word 0x0222C678
+
+ thumb_func_start MOD08_02227104
+MOD08_02227104: ; 0x02227104
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x18]
+ cmp r0, #3
+ bhi _022271C0
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0222711C: ; jump table
+ .short _02227124 - _0222711C - 2 ; case 0
+ .short _02227134 - _0222711C - 2 ; case 1
+ .short _0222714C - _0222711C - 2 ; case 2
+ .short _0222716C - _0222711C - 2 ; case 3
+_02227124:
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD08_02227068
+ ldrb r0, [r4, #0x18]
+ add r0, r0, #1
+ strb r0, [r4, #0x18]
+ b _0222720E
+_02227134:
+ ldrh r0, [r4, #0x16]
+ mov r1, #4
+ mov r2, #0x39
+ str r0, [sp]
+ ldrh r3, [r4, #0x14]
+ ldr r0, _0222725C ; =0x04000050
+ bl G2x_SetBlendAlpha_
+ ldrb r0, [r4, #0x18]
+ add r0, r0, #1
+ strb r0, [r4, #0x18]
+ b _0222720E
+_0222714C:
+ add r1, r4, #0
+ add r1, #0x40
+ ldrb r1, [r1]
+ cmp r1, #0x14
+ bls _0222715C
+ add r0, r0, #1
+ strb r0, [r4, #0x18]
+ b _0222720E
+_0222715C:
+ add r0, r4, #0
+ add r0, #0x40
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x40
+ strb r1, [r0]
+ b _0222720E
+_0222716C:
+ ldrh r0, [r4, #0x14]
+ cmp r0, #0
+ beq _02227176
+ sub r0, r0, #1
+ strh r0, [r4, #0x14]
+_02227176:
+ ldrh r0, [r4, #0x16]
+ cmp r0, #0x10
+ bhs _02227180
+ add r0, r0, #1
+ strh r0, [r4, #0x16]
+_02227180:
+ ldrh r0, [r4, #0x14]
+ cmp r0, #0
+ bne _022271B2
+ ldrh r0, [r4, #0x16]
+ cmp r0, #0x10
+ bne _022271B2
+ ldr r0, [r4, #0x2c]
+ mov r1, #2
+ bl FUN_02018744
+ ldr r0, [r4, #0x34]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x38]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x3c]
+ mov r1, #0
+ bl FUN_0200C644
+ ldrb r0, [r4, #0x18]
+ add r0, r0, #1
+ strb r0, [r4, #0x18]
+_022271B2:
+ ldrh r0, [r4, #0x16]
+ ldrh r1, [r4, #0x14]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _02227260 ; =0x04000052
+ strh r1, [r0]
+ b _0222720E
+_022271C0:
+ ldr r0, _02227264 ; =0x0400004A
+ mov r1, #0x3f
+ ldrh r2, [r0]
+ bic r2, r1
+ mov r1, #0x1f
+ orr r2, r1
+ strh r2, [r0]
+ ldrh r3, [r0]
+ ldr r2, _02227268 ; =0xFFFFC0FF
+ lsl r1, r1, #8
+ and r2, r3
+ orr r1, r2
+ strh r1, [r0]
+ mov r2, #0
+ ldr r0, [r4, #0x2c]
+ mov r1, #2
+ add r3, r2, #0
+ bl FUN_020179E0
+ ldr r0, [r4, #0x2c]
+ mov r1, #2
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _0222726C ; =0xFFFF1FFF
+ and r0, r1
+ str r0, [r2]
+ ldr r0, [r4, #0x1c]
+ add r1, r5, #0
+ bl MOD08_02212438
+ add r0, r4, #0
+ bl MOD08_02228094
+ pop {r3, r4, r5, pc}
+_0222720E:
+ mov r3, #0x10
+ mov r0, #0xc
+ ldrsh r1, [r4, r3]
+ ldrsh r0, [r4, r0]
+ mov r2, #0
+ add r0, r1, r0
+ strh r0, [r4, #0x10]
+ mov r0, #0x12
+ ldrsh r1, [r4, r0]
+ mov r0, #0xe
+ ldrsh r0, [r4, r0]
+ add r0, r1, r0
+ strh r0, [r4, #0x12]
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x2c]
+ mov r1, #2
+ bl FUN_020179E0
+ mov r3, #0x12
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x2c]
+ mov r1, #2
+ mov r2, #3
+ bl FUN_020179E0
+ ldr r0, [r4, #0x34]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x38]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x3c]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #0x24]
+ bl FUN_0200BC1C
+ pop {r3, r4, r5, pc}
+ nop
+_0222725C: .word 0x04000050
+_02227260: .word 0x04000052
+_02227264: .word 0x0400004A
+_02227268: .word 0xFFFFC0FF
+_0222726C: .word 0xFFFF1FFF
+
+ thumb_func_start MOD08_02227270
+MOD08_02227270: ; 0x02227270
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r1, #7
+ str r1, [r4]
+ add r5, r0, #0
+ mov r1, #0
+ bl MOD08_02212498
+ str r0, [r4, #4]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_02212498
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02227290
+MOD08_02227290: ; 0x02227290
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ mov r1, #0x44
+ add r6, r0, #0
+ bl MOD08_02228064
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x18
+ bl MOD08_02227B70
+ add r2, r4, #0
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ bl MOD08_022124D8
+ str r0, [r4, #0x34]
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ bl MOD08_022124D8
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x1c]
+ mov r1, #2
+ bl MOD08_022124D8
+ str r0, [r4, #0x3c]
+ ldr r0, [r4, #0x1c]
+ mov r1, #2
+ bl MOD08_02215600
+ ldr r0, [r4, #0x34]
+ mov r1, #2
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x38]
+ mov r1, #2
+ bl FUN_0200C6B0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ bne _022272FA
+ add r0, r6, #0
+ bl MOD08_02212458
+ b _02227300
+_022272FA:
+ add r0, r6, #0
+ bl MOD08_02212460
+_02227300:
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r6, #0
+ bl MOD08_02212004
+ cmp r0, #1
+ bne _02227338
+ ldr r0, [r4, #0x3c]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r4, #0x1c]
+ mov r1, #2
+ bl MOD08_02215600
+ add r5, r0, #0
+ ldr r0, [r4, #0x34]
+ add r1, r5, #0
+ bl FUN_0200C6B0
+ ldr r0, [r4, #0x38]
+ add r1, r5, #0
+ bl FUN_0200C6B0
+ b _0222735C
+_02227338:
+ cmp r5, #1
+ bhi _02227346
+ ldr r0, [r4, #0x3c]
+ mov r1, #0
+ bl FUN_0200C644
+ b _0222735C
+_02227346:
+ sub r0, r5, #3
+ cmp r0, #1
+ ldr r0, [r4, #0x3c]
+ bhi _02227356
+ mov r1, #3
+ bl FUN_0200C6B0
+ b _0222735C
+_02227356:
+ mov r1, #1
+ bl FUN_0200C6B0
+_0222735C:
+ ldr r0, _022273A8 ; =0x0400004A
+ ldr r1, _022273AC ; =0xFFFFC0FF
+ ldrh r2, [r0]
+ and r2, r1
+ mov r1, #0x16
+ lsl r1, r1, #8
+ orr r2, r1
+ lsr r1, r0, #0xd
+ orr r1, r2
+ strh r1, [r0]
+ ldrh r2, [r0]
+ mov r1, #0x3f
+ bic r2, r1
+ mov r1, #0x1b
+ orr r2, r1
+ mov r1, #0x20
+ orr r2, r1
+ strh r2, [r0]
+ lsl r3, r1, #0x15
+ ldr r2, [r3]
+ ldr r0, _022273B0 ; =0xFFFF1FFF
+ and r2, r0
+ lsl r0, r1, #0xa
+ orr r0, r2
+ str r0, [r3]
+ ldr r0, [r4, #0x38]
+ mov r1, #2
+ bl FUN_0200C90C
+ mov r0, #0
+ strh r0, [r4, #0x10]
+ strh r0, [r4, #0x12]
+ ldr r0, [r4, #0x1c]
+ ldr r1, _022273B4 ; =MOD08_02227104
+ add r2, r4, #0
+ bl MOD08_02212400
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_022273A8: .word 0x0400004A
+_022273AC: .word 0xFFFFC0FF
+_022273B0: .word 0xFFFF1FFF
+_022273B4: .word MOD08_02227104
+
+ thumb_func_start MOD08_022273B8
+MOD08_022273B8: ; 0x022273B8
+ push {r4, lr}
+ sub sp, #0x18
+ add r1, sp, #0
+ add r4, r0, #0
+ bl MOD08_02227270
+ add r0, sp, #0
+ mov r1, #0
+ mov r2, #3
+ bl MOD08_02227058
+ add r0, sp, #0
+ mov r1, #0xc
+ mov r2, #4
+ bl MOD08_02227060
+ add r0, r4, #0
+ add r1, sp, #0
+ bl MOD08_02227290
+ add sp, #0x18
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022273E4
+MOD08_022273E4: ; 0x022273E4
+ push {r4, lr}
+ sub sp, #0x18
+ add r1, sp, #0
+ add r4, r0, #0
+ bl MOD08_02227270
+ mov r1, #0
+ add r0, sp, #0
+ sub r2, r1, #3
+ bl MOD08_02227058
+ add r0, sp, #0
+ mov r1, #0xc
+ mov r2, #4
+ bl MOD08_02227060
+ add r0, r4, #0
+ add r1, sp, #0
+ bl MOD08_02227290
+ add sp, #0x18
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02227410
+MOD08_02227410: ; 0x02227410
+ push {r4, lr}
+ sub sp, #0x18
+ add r1, sp, #0
+ add r4, r0, #0
+ bl MOD08_02227270
+ add r0, sp, #0
+ mov r1, #0
+ mov r2, #3
+ bl MOD08_02227058
+ add r0, sp, #0
+ mov r1, #0xc
+ mov r2, #4
+ bl MOD08_02227060
+ add r0, r4, #0
+ add r1, sp, #0
+ bl MOD08_02227290
+ add sp, #0x18
+ pop {r4, pc}
+
+ thumb_func_start MOD08_0222743C
+MOD08_0222743C: ; 0x0222743C
+ push {r4, lr}
+ sub sp, #0x18
+ add r1, sp, #0
+ add r4, r0, #0
+ bl MOD08_02227270
+ mov r1, #0
+ add r0, sp, #0
+ sub r2, r1, #6
+ bl MOD08_02227058
+ add r0, sp, #0
+ mov r1, #0xc
+ mov r2, #4
+ bl MOD08_02227060
+ add r0, r4, #0
+ add r1, sp, #0
+ bl MOD08_02227290
+ add sp, #0x18
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02227468
+MOD08_02227468: ; 0x02227468
+ ldr r3, _0222746C ; =MOD08_02215490
+ bx r3
+ .align 2, 0
+_0222746C: .word MOD08_02215490
+
+ thumb_func_start MOD08_02227470
+MOD08_02227470: ; 0x02227470
+ push {r4, lr}
+ bl MOD08_02215490
+ cmp r0, #5
+ bhi _02227498
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02227486: ; jump table
+ .short _02227492 - _02227486 - 2 ; case 0
+ .short _02227496 - _02227486 - 2 ; case 1
+ .short _02227492 - _02227486 - 2 ; case 2
+ .short _02227496 - _02227486 - 2 ; case 3
+ .short _02227492 - _02227486 - 2 ; case 4
+ .short _02227496 - _02227486 - 2 ; case 5
+_02227492:
+ mov r4, #3
+ b _02227498
+_02227496:
+ mov r4, #4
+_02227498:
+ add r0, r4, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD08_0222749C
+MOD08_0222749C: ; 0x0222749C
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r4, #0
+_022274A4:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD08_02215490
+ cmp r0, r5
+ bne _022274B4
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_022274B4:
+ add r4, r4, #1
+ cmp r4, #4
+ blt _022274A4
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022274C0
+MOD08_022274C0: ; 0x022274C0
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ bl MOD08_02215490
+ add r5, r0, #0
+ cmp r5, #1
+ bls _02227520
+ mov r4, #0
+_022274D0:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD08_02215490
+ cmp r5, #5
+ bhi _02227514
+ add r1, r5, r5
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022274E8: ; jump table
+ .short _02227514 - _022274E8 - 2 ; case 0
+ .short _02227514 - _022274E8 - 2 ; case 1
+ .short _022274F4 - _022274E8 - 2 ; case 2
+ .short _02227504 - _022274E8 - 2 ; case 3
+ .short _022274FC - _022274E8 - 2 ; case 4
+ .short _0222750C - _022274E8 - 2 ; case 5
+_022274F4:
+ cmp r0, #4
+ bne _02227514
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_022274FC:
+ cmp r0, #2
+ bne _02227514
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02227504:
+ cmp r0, #5
+ bne _02227514
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_0222750C:
+ cmp r0, #3
+ bne _02227514
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02227514:
+ add r4, r4, #1
+ cmp r4, #4
+ blt _022274D0
+ bl ErrorHandling
+ add r0, r5, #0
+_02227520:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02227524
+MOD08_02227524: ; 0x02227524
+ push {r3, lr}
+ cmp r0, #5
+ bhi _0222755A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02227536: ; jump table
+ .short _02227542 - _02227536 - 2 ; case 0
+ .short _02227546 - _02227536 - 2 ; case 1
+ .short _0222754A - _02227536 - 2 ; case 2
+ .short _0222754E - _02227536 - 2 ; case 3
+ .short _02227552 - _02227536 - 2 ; case 4
+ .short _02227556 - _02227536 - 2 ; case 5
+_02227542:
+ mov r0, #1
+ pop {r3, pc}
+_02227546:
+ mov r0, #0
+ pop {r3, pc}
+_0222754A:
+ mov r0, #3
+ pop {r3, pc}
+_0222754E:
+ mov r0, #2
+ pop {r3, pc}
+_02227552:
+ mov r0, #5
+ pop {r3, pc}
+_02227556:
+ mov r0, #4
+ pop {r3, pc}
+_0222755A:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02227564
+MOD08_02227564: ; 0x02227564
+ push {r3, r4, r5, r6}
+ sub sp, #0x30
+ ldr r6, _022275B8 ; =0x0222C6C8
+ add r5, sp, #0x18
+ mov r4, #0xc
+_0222756E:
+ ldrh r3, [r6]
+ add r6, r6, #2
+ strh r3, [r5]
+ add r5, r5, #2
+ sub r4, r4, #1
+ bne _0222756E
+ ldr r6, _022275BC ; =0x0222C6E0
+ add r5, sp, #0
+ mov r4, #0xc
+_02227580:
+ ldrh r3, [r6]
+ add r6, r6, #2
+ strh r3, [r5]
+ add r5, r5, #2
+ sub r4, r4, #1
+ bne _02227580
+ cmp r1, #0
+ beq _022275A4
+ lsl r3, r0, #2
+ add r0, sp, #0
+ add r1, r0, r3
+ ldrh r0, [r0, r3]
+ add sp, #0x30
+ strh r0, [r2]
+ ldrh r0, [r1, #2]
+ strh r0, [r2, #2]
+ pop {r3, r4, r5, r6}
+ bx lr
+_022275A4:
+ lsl r3, r0, #2
+ add r0, sp, #0x18
+ add r1, r0, r3
+ ldrh r0, [r0, r3]
+ strh r0, [r2]
+ ldrh r0, [r1, #2]
+ strh r0, [r2, #2]
+ add sp, #0x30
+ pop {r3, r4, r5, r6}
+ bx lr
+ .align 2, 0
+_022275B8: .word 0x0222C6C8
+_022275BC: .word 0x0222C6E0
+
+ thumb_func_start MOD08_022275C0
+MOD08_022275C0: ; 0x022275C0
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r2, #0
+ bl MOD08_02227468
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD08_02212004
+ add r1, r0, #0
+ add r0, r6, #0
+ add r2, r4, #0
+ bl MOD08_02227564
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022275E0
+MOD08_022275E0: ; 0x022275E0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1fc
+ sub sp, #0x1fc
+ sub sp, #0x1fc
+ sub sp, #0x1fc
+ sub sp, #0x114
+ add r7, r2, #0
+ mov r2, #0x12
+ str r3, [sp]
+ ldr r6, _02227654 ; =0x0222C6F8
+ add r5, r0, #0
+ add r4, r1, #0
+ add r3, sp, #4
+ lsl r2, r2, #4
+_022275FC:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _022275FC
+ cmp r7, #1
+ bne _0222761E
+ cmp r5, #0
+ beq _02227612
+ cmp r5, #1
+ beq _02227616
+ b _0222761A
+_02227612:
+ mov r5, #6
+ b _0222761E
+_02227616:
+ mov r5, #7
+ b _0222761E
+_0222761A:
+ bl ErrorHandling
+_0222761E:
+ mov r0, #0x12
+ lsl r0, r0, #4
+ add r1, sp, #4
+ mul r0, r5
+ add r0, r1, r0
+ ldr r1, _02227658 ; =0x00000908
+ add r1, sp
+ ldr r1, [r1, #0x10]
+ lsl r2, r1, #1
+ ldr r1, [sp]
+ add r2, r1, r2
+ mov r1, #0xc
+ add r3, r2, #0
+ mul r3, r1
+ add r1, r0, r3
+ ldr r2, [r1, #8]
+ ldr r1, [r1, #4]
+ ldr r0, [r0, r3]
+ str r0, [r4]
+ str r1, [r4, #4]
+ str r2, [r4, #8]
+ add sp, #0x1fc
+ add sp, #0x1fc
+ add sp, #0x1fc
+ add sp, #0x1fc
+ add sp, #0x114
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02227654: .word 0x0222C6F8
+_02227658: .word 0x00000908
+
+ thumb_func_start MOD08_0222765C
+MOD08_0222765C: ; 0x0222765C
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #0
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_0222766C
+MOD08_0222766C: ; 0x0222766C
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #1
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_0222767C
+MOD08_0222767C: ; 0x0222767C
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #2
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_0222768C
+MOD08_0222768C: ; 0x0222768C
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #3
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_0222769C
+MOD08_0222769C: ; 0x0222769C
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #4
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_022276AC
+MOD08_022276AC: ; 0x022276AC
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #5
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_022276BC
+MOD08_022276BC: ; 0x022276BC
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #6
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_022276CC
+MOD08_022276CC: ; 0x022276CC
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #7
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_022276DC
+MOD08_022276DC: ; 0x022276DC
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #8
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_022276EC
+MOD08_022276EC: ; 0x022276EC
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #9
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_022276FC
+MOD08_022276FC: ; 0x022276FC
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #0xa
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_0222770C
+MOD08_0222770C: ; 0x0222770C
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r4, #0xb
+ str r4, [sp]
+ bl MOD08_022275E0
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_0222771C
+MOD08_0222771C: ; 0x0222771C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_0222765C
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0222774C
+MOD08_0222774C: ; 0x0222774C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_0222766C
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0222777C
+MOD08_0222777C: ; 0x0222777C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_0222767C
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_022277AC
+MOD08_022277AC: ; 0x022277AC
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_0222768C
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_022277DC
+MOD08_022277DC: ; 0x022277DC
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_0222769C
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0222780C
+MOD08_0222780C: ; 0x0222780C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_022276AC
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0222783C
+MOD08_0222783C: ; 0x0222783C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_022276BC
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0222786C
+MOD08_0222786C: ; 0x0222786C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_022276CC
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0222789C
+MOD08_0222789C: ; 0x0222789C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_022276DC
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_022278CC
+MOD08_022278CC: ; 0x022278CC
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_022276EC
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_022278FC
+MOD08_022278FC: ; 0x022278FC
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_022276FC
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0222792C
+MOD08_0222792C: ; 0x0222792C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD08_02212468
+ bl FUN_02013448
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD08_02227468
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD08_02212004
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r7, #0
+ bl MOD08_0222770C
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0222795C
+MOD08_0222795C: ; 0x0222795C
+ mov r2, #0
+ ldr r1, _02227968 ; =0x000068D0
+ str r2, [r0]
+ str r1, [r0, #4]
+ str r2, [r0, #8]
+ bx lr
+ .align 2, 0
+_02227968: .word 0x000068D0
+
+ thumb_func_start MOD08_0222796C
+MOD08_0222796C: ; 0x0222796C
+ push {r3, lr}
+ bl MOD08_0222765C
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02227974
+MOD08_02227974: ; 0x02227974
+ push {r3, lr}
+ add r3, r1, #0
+ cmp r0, #0
+ bne _02227984
+ add r0, r3, #0
+ bl FUN_02013428
+ pop {r3, pc}
+_02227984:
+ ldr r2, _02227990 ; =0x0222C6BC
+ ldmia r2!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r2]
+ str r0, [r3]
+ pop {r3, pc}
+ .align 2, 0
+_02227990: .word 0x0222C6BC
+
+ thumb_func_start MOD08_02227994
+MOD08_02227994: ; 0x02227994
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ mov r1, #0
+ mvn r1, r1
+ add r4, r2, #0
+ cmp r5, r1
+ bne _022279A4
+ mov r5, #0x1a
+_022279A4:
+ mov r1, #0
+ mvn r1, r1
+ cmp r4, r1
+ bne _022279AE
+ mov r4, #5
+_022279AE:
+ mov r1, #2
+ bl MOD08_022155C4
+ mov r1, #1
+ add r2, r1, #0
+ lsl r2, r0
+ orr r2, r1
+ ldr r0, _022279CC ; =0x04000050
+ mov r1, #0
+ add r3, r5, #0
+ str r4, [sp]
+ bl G2x_SetBlendAlpha_
+ pop {r3, r4, r5, pc}
+ nop
+_022279CC: .word 0x04000050
+
+ thumb_func_start MOD08_022279D0
+MOD08_022279D0: ; 0x022279D0
+ push {r3, r4, r5, lr}
+ mov r0, #0
+ add r4, r2, #0
+ mvn r0, r0
+ add r5, r1, #0
+ cmp r4, r0
+ bne _022279E0
+ mov r4, #0x1a
+_022279E0:
+ mov r0, #0
+ mvn r0, r0
+ cmp r3, r0
+ bne _022279EA
+ mov r3, #5
+_022279EA:
+ ldr r0, _022279FC ; =0x04000050
+ str r3, [sp]
+ mov r1, #0
+ add r2, r5, #0
+ add r3, r4, #0
+ bl G2x_SetBlendAlpha_
+ pop {r3, r4, r5, pc}
+ nop
+_022279FC: .word 0x04000050
+
+ thumb_func_start MOD08_02227A00
+MOD08_02227A00: ; 0x02227A00
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r0, #0
+ add r5, r1, #0
+ mvn r0, r0
+ add r4, r2, #0
+ cmp r5, r0
+ bne _02227A12
+ mov r5, #0x1a
+_02227A12:
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _02227A1C
+ mov r4, #5
+_02227A1C:
+ add r0, r6, #0
+ mov r1, #2
+ bl MOD08_022155C4
+ mov r1, #1
+ add r2, r1, #0
+ lsl r2, r0
+ mov r0, #0x11
+ add r7, r2, #0
+ orr r7, r0
+ add r0, r6, #0
+ bl MOD08_022155C4
+ mov r1, #1
+ lsl r1, r0
+ ldr r0, _02227A48 ; =0x04000050
+ add r2, r7, #0
+ add r3, r5, #0
+ str r4, [sp]
+ bl G2x_SetBlendAlpha_
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02227A48: .word 0x04000050
+
+ thumb_func_start MOD08_02227A4C
+MOD08_02227A4C: ; 0x02227A4C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r2, #0
+ cmp r1, #0
+ bne _02227AA0
+ mov r1, #1
+ bl MOD08_022155C4
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_022155C4
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_022155C4
+ add r2, r0, #0
+ mov r0, #1
+ add r3, r0, #0
+ add r1, r0, #0
+ lsl r3, r7
+ lsl r0, r2
+ lsl r1, r6
+ orr r0, r3
+ orr r1, r0
+ mov r0, #0x11
+ add r2, r1, #0
+ orr r2, r0
+ ldr r0, _02227B20 ; =0x04000048
+ ldrh r1, [r0]
+ mov r0, #0x3f
+ bic r1, r0
+ orr r1, r2
+ cmp r4, #0
+ beq _02227A9A
+ mov r0, #0x20
+ orr r1, r0
+_02227A9A:
+ ldr r0, _02227B20 ; =0x04000048
+ strh r1, [r0]
+ b _02227AEA
+_02227AA0:
+ mov r1, #1
+ bl MOD08_022155C4
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD08_022155C4
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_022155C4
+ add r2, r0, #0
+ mov r0, #1
+ add r3, r0, #0
+ add r1, r0, #0
+ lsl r0, r2
+ lsl r3, r7
+ lsl r1, r6
+ orr r0, r3
+ orr r1, r0
+ ldr r2, _02227B20 ; =0x04000048
+ add r3, r1, #0
+ mov r0, #0x11
+ orr r3, r0
+ ldrh r1, [r2]
+ ldr r0, _02227B24 ; =0xFFFFC0FF
+ and r1, r0
+ lsl r0, r3, #8
+ orr r1, r0
+ cmp r4, #0
+ beq _02227AE6
+ lsr r0, r2, #0xd
+ orr r1, r0
+_02227AE6:
+ ldr r0, _02227B20 ; =0x04000048
+ strh r1, [r0]
+_02227AEA:
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD08_022155C4
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD08_022155C4
+ mov r1, #1
+ add r2, r1, #0
+ lsl r1, r0
+ lsl r2, r4
+ orr r1, r2
+ add r3, r1, #0
+ ldr r1, _02227B28 ; =0x0400004A
+ mov r0, #0x11
+ orr r3, r0
+ ldrh r2, [r1]
+ mov r0, #0x3f
+ bic r2, r0
+ orr r2, r3
+ mov r0, #0x20
+ orr r0, r2
+ strh r0, [r1]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02227B20: .word 0x04000048
+_02227B24: .word 0xFFFFC0FF
+_02227B28: .word 0x0400004A
+
+ thumb_func_start MOD08_02227B2C
+MOD08_02227B2C: ; 0x02227B2C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ cmp r5, #0
+ bne _02227B3E
+ mov r0, #0
+ strh r0, [r4]
+ strh r0, [r4, #2]
+ pop {r3, r4, r5, pc}
+_02227B3E:
+ bl FUN_02008268
+ cmp r0, #0
+ bne _02227B4E
+ mov r0, #0
+ strh r0, [r4]
+ strh r0, [r4, #2]
+ pop {r3, r4, r5, pc}
+_02227B4E:
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_0200782C
+ strh r0, [r4]
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0200782C
+ strh r0, [r4, #2]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02227B64
+MOD08_02227B64: ; 0x02227B64
+ ldr r3, _02227B6C ; =FUN_0200C7A0
+ add r2, r1, #2
+ bx r3
+ nop
+_02227B6C: .word FUN_0200C7A0
+
+ thumb_func_start MOD08_02227B70
+MOD08_02227B70: ; 0x02227B70
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r1, #0
+ strb r1, [r4]
+ strb r1, [r4, #1]
+ strb r1, [r4, #2]
+ add r5, r0, #0
+ strb r1, [r4, #3]
+ str r5, [r4, #4]
+ bl MOD08_02212520
+ str r0, [r4, #8]
+ add r0, r5, #0
+ bl MOD08_02212504
+ str r0, [r4, #0xc]
+ add r0, r5, #0
+ bl MOD08_02212518
+ str r0, [r4, #0x10]
+ add r0, r5, #0
+ bl MOD08_02212490
+ str r0, [r4, #0x14]
+ add r0, r5, #0
+ bl MOD08_02215504
+ str r0, [r4, #0x18]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02227BAC
+MOD08_02227BAC: ; 0x02227BAC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r7, r1, #0
+ add r4, r3, #0
+ mov r1, #0
+ str r1, [r4]
+ mov r1, #0x40
+ and r1, r7
+ add r6, r0, #0
+ add r5, r2, #0
+ cmp r1, #0x40
+ beq _02227BC6
+ b _02227CE8
+_02227BC6:
+ bl MOD08_02212458
+ add r7, r0, #0
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_022154D4
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #8]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ cmp r0, #0
+ beq _02227C08
+ str r7, [r1, #0x10]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ add r1, r1, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02227C08:
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_022274C0
+ str r0, [sp, #4]
+ ldr r1, [sp, #4]
+ add r0, r6, #0
+ bl MOD08_022154D4
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #8]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ ldr r1, [r0, #8]
+ cmp r1, #0
+ beq _02227C50
+ ldr r1, [sp, #4]
+ str r1, [r0, #0x10]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ add r1, r1, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02227C50:
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_02215490
+ bl MOD08_02227524
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_0222749C
+ add r7, r0, #0
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_022154D4
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #8]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ cmp r0, #0
+ beq _02227CA2
+ str r7, [r1, #0x10]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ add r1, r1, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02227CA2:
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_022274C0
+ add r7, r0, #0
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_022154D4
+ ldr r2, [r4]
+ mov r1, #0x14
+ add r3, r2, #0
+ mul r3, r1
+ add r2, r5, r3
+ str r0, [r2, #8]
+ ldr r0, [r4]
+ add r2, r0, #0
+ mul r2, r1
+ add r2, r5, r2
+ ldr r0, [r2, #8]
+ cmp r0, #0
+ beq _02227DCA
+ str r7, [r2, #0x10]
+ ldr r0, [r4]
+ mul r1, r0
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ add r1, r1, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4]
+ add sp, #0x10
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, r6, r7, pc}
+_02227CE8:
+ mov r1, #0x20
+ and r1, r7
+ cmp r1, #0x20
+ bne _02227DE8
+ bl MOD08_02212458
+ add r7, r0, #0
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_022274C0
+ str r0, [sp, #8]
+ cmp r0, r7
+ beq _02227D42
+ ldr r1, [sp, #8]
+ add r0, r6, #0
+ bl MOD08_022154D4
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #8]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ ldr r1, [r0, #8]
+ cmp r1, #0
+ beq _02227D42
+ ldr r1, [sp, #8]
+ str r1, [r0, #0x10]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ add r1, r1, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02227D42:
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD08_02215490
+ bl MOD08_02227524
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_0222749C
+ str r0, [sp]
+ cmp r0, r7
+ beq _02227D9A
+ ldr r1, [sp]
+ add r0, r6, #0
+ bl MOD08_022154D4
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #8]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ ldr r1, [r0, #8]
+ cmp r1, #0
+ beq _02227D9A
+ ldr r1, [sp]
+ str r1, [r0, #0x10]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ add r1, r1, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02227D9A:
+ ldr r1, [sp]
+ add r0, r6, #0
+ bl MOD08_022274C0
+ str r0, [sp, #0xc]
+ cmp r0, r7
+ beq _02227DCA
+ ldr r1, [sp, #0xc]
+ add r0, r6, #0
+ bl MOD08_022154D4
+ ldr r2, [r4]
+ mov r1, #0x14
+ add r3, r2, #0
+ mul r3, r1
+ add r2, r5, r3
+ str r0, [r2, #8]
+ ldr r0, [r4]
+ add r2, r0, #0
+ mul r2, r1
+ add r2, r5, r2
+ ldr r0, [r2, #8]
+ cmp r0, #0
+ bne _02227DCC
+_02227DCA:
+ b _02227F82
+_02227DCC:
+ ldr r0, [sp, #0xc]
+ str r0, [r2, #0x10]
+ ldr r0, [r4]
+ mul r1, r0
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ add r1, r1, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4]
+ add sp, #0x10
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, r6, r7, pc}
+_02227DE8:
+ mov r1, #2
+ and r1, r7
+ cmp r1, #2
+ bne _02227E42
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022154D4
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #8]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ ldr r0, [r0, #8]
+ cmp r0, #0
+ beq _02227E42
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #0x10]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ add r1, r1, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02227E42:
+ add r0, r6, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _02227EB8
+ mov r0, #4
+ and r0, r7
+ cmp r0, #4
+ bne _02227EB8
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022274C0
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022154D4
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #8]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ ldr r0, [r0, #8]
+ cmp r0, #0
+ beq _02227EB8
+ add r0, r6, #0
+ bl MOD08_02212458
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022274C0
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #0x10]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ add r1, r1, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02227EB8:
+ mov r0, #8
+ and r0, r7
+ cmp r0, #8
+ bne _02227F14
+ add r0, r6, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022154D4
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #8]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ ldr r0, [r0, #8]
+ cmp r0, #0
+ beq _02227F14
+ add r0, r6, #0
+ bl MOD08_02212460
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #0x10]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ add r1, r1, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02227F14:
+ add r0, r6, #0
+ bl MOD08_0221553C
+ cmp r0, #1
+ bne _02227F82
+ mov r0, #0x10
+ and r0, r7
+ cmp r0, #0x10
+ bne _02227F82
+ add r0, r6, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022274C0
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022154D4
+ ldr r2, [r4]
+ mov r1, #0x14
+ add r3, r2, #0
+ mul r3, r1
+ add r2, r5, r3
+ str r0, [r2, #8]
+ ldr r0, [r4]
+ mul r1, r0
+ add r0, r5, r1
+ ldr r0, [r0, #8]
+ cmp r0, #0
+ beq _02227F82
+ add r0, r6, #0
+ bl MOD08_02212460
+ add r1, r0, #0
+ add r0, r6, #0
+ bl MOD08_022274C0
+ ldr r2, [r4]
+ mov r1, #0x14
+ add r3, r2, #0
+ mul r3, r1
+ add r2, r5, r3
+ str r0, [r2, #0x10]
+ ldr r0, [r4]
+ mul r1, r0
+ add r1, r5, r1
+ ldr r0, [r1, #8]
+ add r1, r1, #4
+ bl MOD08_02227B2C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02227F82:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02227F88
+MOD08_02227F88: ; 0x02227F88
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r4, r3, #0
+ mov r1, #0
+ str r1, [r4]
+ mov r1, #2
+ and r1, r6
+ add r7, r0, #0
+ add r5, r2, #0
+ cmp r1, #2
+ bne _02227FC8
+ ldr r1, [r4]
+ bl MOD08_022124D8
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #0xc]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #0xc]
+ add r1, r1, #4
+ bl MOD08_02227B64
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02227FC8:
+ mov r0, #4
+ and r0, r6
+ cmp r0, #4
+ bne _02227FFC
+ ldr r1, [r4]
+ add r0, r7, #0
+ bl MOD08_022124D8
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #0xc]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #0xc]
+ add r1, r1, #4
+ bl MOD08_02227B64
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02227FFC:
+ mov r0, #8
+ and r0, r6
+ cmp r0, #8
+ bne _02228030
+ ldr r1, [r4]
+ add r0, r7, #0
+ bl MOD08_022124D8
+ add r2, r0, #0
+ ldr r0, [r4]
+ mov r3, #0x14
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r5, r1
+ str r2, [r0, #0xc]
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ ldr r0, [r1, #0xc]
+ add r1, r1, #4
+ bl MOD08_02227B64
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02228030:
+ mov r0, #0x10
+ and r0, r6
+ cmp r0, #0x10
+ bne _02228060
+ ldr r1, [r4]
+ add r0, r7, #0
+ bl MOD08_022124D8
+ ldr r2, [r4]
+ mov r1, #0x14
+ add r3, r2, #0
+ mul r3, r1
+ add r2, r5, r3
+ str r0, [r2, #0xc]
+ ldr r0, [r4]
+ mul r1, r0
+ add r1, r5, r1
+ ldr r0, [r1, #0xc]
+ add r1, r1, #4
+ bl MOD08_02227B64
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_02228060:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02228064
+MOD08_02228064: ; 0x02228064
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ cmp r4, #0
+ bne _02228072
+ bl ErrorHandling
+_02228072:
+ add r0, r4, #0
+ bl MOD08_02212014
+ add r1, r5, #0
+ bl AllocFromHeap
+ add r4, r0, #0
+ bne _02228086
+ bl ErrorHandling
+_02228086:
+ add r0, r4, #0
+ mov r1, #0
+ add r2, r5, #0
+ bl memset
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02228094
+MOD08_02228094: ; 0x02228094
+ push {r4, lr}
+ add r4, r0, #0
+ bne _0222809E
+ bl ErrorHandling
+_0222809E:
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022280A8
+MOD08_022280A8: ; 0x022280A8
+ cmp r0, #1
+ blt _022280B2
+ ldr r1, _022280C0 ; =0x00000113
+ cmp r0, r1
+ ble _022280B6
+_022280B2:
+ mov r0, #4
+ b _022280BC
+_022280B6:
+ cmp r0, #0xff
+ blt _022280BC
+ sub r0, #0xff
+_022280BC:
+ sub r0, r0, #1
+ bx lr
+ .align 2, 0
+_022280C0: .word 0x00000113
+
+ thumb_func_start MOD08_022280C4
+MOD08_022280C4: ; 0x022280C4
+ push {r3, r4, r5}
+ sub sp, #0x2c
+ ldr r5, _02228100 ; =0x0222D0A4
+ add r2, r0, #0
+ add r4, sp, #0
+ mov r3, #5
+_022280D0:
+ ldmia r5!, {r0, r1}
+ stmia r4!, {r0, r1}
+ sub r3, r3, #1
+ bne _022280D0
+ ldr r0, [r5]
+ str r0, [r4]
+ mov r0, #0
+ add r3, r0, #0
+ add r4, sp, #0
+_022280E2:
+ ldr r1, [r4]
+ cmp r2, r1
+ bne _022280F0
+ add sp, #0x2c
+ mov r0, #1
+ pop {r3, r4, r5}
+ bx lr
+_022280F0:
+ add r3, r3, #1
+ add r4, r4, #4
+ cmp r3, #0xb
+ blo _022280E2
+ add sp, #0x2c
+ pop {r3, r4, r5}
+ bx lr
+ nop
+_02228100: .word 0x0222D0A4
+
+ thumb_func_start MOD08_02228104
+MOD08_02228104: ; 0x02228104
+ push {r4, r5}
+ sub sp, #0x18
+ ldr r3, _0222813C ; =0x0222D004
+ add r2, sp, #0
+ add r5, r0, #0
+ add r4, r2, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ mov r0, #0
+ add r2, r0, #0
+_02228120:
+ ldr r1, [r4]
+ cmp r5, r1
+ bne _0222812E
+ add sp, #0x18
+ mov r0, #1
+ pop {r4, r5}
+ bx lr
+_0222812E:
+ add r2, r2, #1
+ add r4, r4, #4
+ cmp r2, #6
+ blo _02228120
+ add sp, #0x18
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+_0222813C: .word 0x0222D004
+
+ thumb_func_start MOD08_02228140
+MOD08_02228140: ; 0x02228140
+ push {r3, r4, r5}
+ sub sp, #0xc
+ ldr r5, _02228174 ; =0x0222CFF8
+ add r3, r0, #0
+ ldmia r5!, {r0, r1}
+ add r4, sp, #0
+ add r2, r4, #0
+ stmia r4!, {r0, r1}
+ ldr r0, [r5]
+ str r0, [r4]
+ mov r0, #1
+ mov r4, #0
+_02228158:
+ ldr r1, [r2]
+ cmp r3, r1
+ bne _02228166
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, r5}
+ bx lr
+_02228166:
+ add r4, r4, #1
+ add r2, r2, #4
+ cmp r4, #3
+ blo _02228158
+ add sp, #0xc
+ pop {r3, r4, r5}
+ bx lr
+ .align 2, 0
+_02228174: .word 0x0222CFF8
+
+ thumb_func_start MOD08_02228178
+MOD08_02228178: ; 0x02228178
+ push {r3, lr}
+ bl MOD08_022280A8
+ lsl r1, r0, #3
+ ldr r0, _02228188 ; =0x0222D208
+ ldr r0, [r0, r1]
+ pop {r3, pc}
+ nop
+_02228188: .word 0x0222D208
+
+ thumb_func_start MOD08_0222818C
+MOD08_0222818C: ; 0x0222818C
+ push {r3, lr}
+ bl MOD08_022280A8
+ lsl r1, r0, #3
+ ldr r0, _0222819C ; =0x0222D20C
+ ldr r0, [r0, r1]
+ pop {r3, pc}
+ nop
+_0222819C: .word 0x0222D20C
+
+ thumb_func_start MOD08_022281A0
+MOD08_022281A0: ; 0x022281A0
+ push {r3, lr}
+ bl MOD08_022280A8
+ mov r1, #0xc
+ mul r1, r0
+ ldr r0, _022281B0 ; =0x0222D2A8
+ ldr r0, [r0, r1]
+ pop {r3, pc}
+ .align 2, 0
+_022281B0: .word 0x0222D2A8
+
+ thumb_func_start MOD08_022281B4
+MOD08_022281B4: ; 0x022281B4
+ push {r3, lr}
+ bl MOD08_022280A8
+ mov r1, #0xc
+ mul r1, r0
+ ldr r0, _022281C4 ; =0x0222D2B0
+ ldr r0, [r0, r1]
+ pop {r3, pc}
+ .align 2, 0
+_022281C4: .word 0x0222D2B0
+
+ thumb_func_start MOD08_022281C8
+MOD08_022281C8: ; 0x022281C8
+ push {r3, lr}
+ bl MOD08_022280A8
+ mov r1, #0xc
+ mul r1, r0
+ ldr r0, _022281D8 ; =0x0222D2AC
+ ldr r0, [r0, r1]
+ pop {r3, pc}
+ .align 2, 0
+_022281D8: .word 0x0222D2AC
+
+ thumb_func_start MOD08_022281DC
+MOD08_022281DC: ; 0x022281DC
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD08_022280A8
+ lsl r2, r0, #4
+ ldr r0, _022281F0 ; =0x0222D398
+ lsl r1, r4, #2
+ add r0, r0, r2
+ ldr r0, [r1, r0]
+ pop {r4, pc}
+ .align 2, 0
+_022281F0: .word 0x0222D398
+
+ thumb_func_start MOD08_022281F4
+MOD08_022281F4: ; 0x022281F4
+ push {r4, lr}
+ mov r1, #0xb8
+ add r4, r0, #0
+ bl AllocFromHeap
+ cmp r0, #0
+ bne _0222820A
+ bl ErrorHandling
+ mov r0, #0
+ pop {r4, pc}
+_0222820A:
+ add r1, r0, #0
+ str r4, [r0]
+ mov r2, #0
+ add r1, #0x88
+ str r2, [r1]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02228218
+MOD08_02228218: ; 0x02228218
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ bl MOD08_022281F4
+ add r1, r5, #0
+ add r4, r0, #0
+ bl MOD08_02228244
+ mov r1, #0
+ str r1, [r4, #0x10]
+ add r2, r4, #0
+ add r0, r1, #0
+_02228230:
+ str r0, [r2, #0x14]
+ str r0, [r2, #0x38]
+ str r0, [r2, #0x5c]
+ add r1, r1, #1
+ add r2, r2, #4
+ cmp r1, #9
+ blt _02228230
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02228244
+MOD08_02228244: ; 0x02228244
+ push {r4, lr}
+ add r3, r1, #0
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, r4, #4
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ mov r1, #0xa1
+ str r0, [r2]
+ ldr r0, [r4, #0xc]
+ mov r2, #0
+ bl GetMonData
+ add r1, r4, #0
+ add r1, #0x9c
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0x9c
+ ldr r0, [r0]
+ cmp r0, #0xd
+ blt _02228272
+ bl ErrorHandling
+_02228272:
+ add r0, r4, #0
+ add r0, #0x9c
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _0222829E
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0x94
+ str r2, [r0]
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _02228290
+ add r4, #0x98
+ str r0, [r4]
+ pop {r4, pc}
+_02228290:
+ ldr r0, [r4, #0xc]
+ mov r1, #0x9a
+ bl GetMonData
+ add r4, #0x98
+ str r0, [r4]
+ pop {r4, pc}
+_0222829E:
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0x94
+ str r1, [r0]
+ ldr r0, [r4, #0xc]
+ add r4, #0xa0
+ mov r1, #0xaa
+ add r2, r4, #0
+ bl GetMonData
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022282B4
+MOD08_022282B4: ; 0x022282B4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r4, r1, #0
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ cmp r0, #3
+ bls _022282C8
+ b _02228520
+_022282C8:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022282D4: ; jump table
+ .short _022282DC - _022282D4 - 2 ; case 0
+ .short _02228376 - _022282D4 - 2 ; case 1
+ .short _02228402 - _022282D4 - 2 ; case 2
+ .short _0222848E - _022282D4 - 2 ; case 3
+_022282DC:
+ ldr r1, [r4]
+ mov r0, #0x63
+ bl NARC_ctor
+ add r1, r4, #0
+ add r1, #0x8c
+ str r0, [r1]
+ add r0, r4, #0
+ add r6, r4, #0
+ str r0, [sp, #0x14]
+ add r0, #0xa0
+ mov r5, #0
+ add r6, #0x10
+ str r0, [sp, #0x14]
+_022282F8:
+ ldr r0, [sp, #0x14]
+ add r1, r5, #0
+ bl FUN_02029CC8
+ add r7, r0, #0
+ beq _02228360
+ bl FUN_02029CE0
+ cmp r0, #0
+ beq _02228360
+ cmp r0, #0x51
+ bge _02228360
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02085FF4
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ str r7, [r0, #0x38]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ beq _02228332
+ bl ErrorHandling
+_02228332:
+ add r0, r4, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ ldr r1, [r4]
+ ldr r2, [sp, #0x10]
+ mov r3, #0
+ bl MOD08_02215B00
+ ldr r1, [r4, #0x10]
+ lsl r1, r1, #2
+ add r1, r4, r1
+ str r0, [r1, #0x14]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ bne _0222835A
+ bl ErrorHandling
+_0222835A:
+ ldr r0, [r6]
+ add r0, r0, #1
+ str r0, [r6]
+_02228360:
+ add r5, r5, #1
+ cmp r5, #2
+ blt _022282F8
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ add r4, #0x90
+ add r0, r0, #1
+ add sp, #0x24
+ str r0, [r4]
+ pop {r4, r5, r6, r7, pc}
+_02228376:
+ add r0, r4, #0
+ add r6, r4, #0
+ str r0, [sp, #0x18]
+ add r0, #0xa0
+ mov r5, #2
+ add r6, #0x10
+ str r0, [sp, #0x18]
+_02228384:
+ ldr r0, [sp, #0x18]
+ add r1, r5, #0
+ bl FUN_02029CC8
+ add r7, r0, #0
+ beq _022283EC
+ bl FUN_02029CE0
+ cmp r0, #0
+ beq _022283EC
+ cmp r0, #0x51
+ bge _022283EC
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02085FF4
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ str r7, [r0, #0x38]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ beq _022283BE
+ bl ErrorHandling
+_022283BE:
+ add r0, r4, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ ldr r1, [r4]
+ ldr r2, [sp, #4]
+ mov r3, #0
+ bl MOD08_02215B00
+ ldr r1, [r4, #0x10]
+ lsl r1, r1, #2
+ add r1, r4, r1
+ str r0, [r1, #0x14]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ bne _022283E6
+ bl ErrorHandling
+_022283E6:
+ ldr r0, [r6]
+ add r0, r0, #1
+ str r0, [r6]
+_022283EC:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _02228384
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ add r4, #0x90
+ add r0, r0, #1
+ add sp, #0x24
+ str r0, [r4]
+ pop {r4, r5, r6, r7, pc}
+_02228402:
+ add r0, r4, #0
+ add r6, r4, #0
+ str r0, [sp, #0x1c]
+ add r0, #0xa0
+ mov r5, #4
+ add r6, #0x10
+ str r0, [sp, #0x1c]
+_02228410:
+ ldr r0, [sp, #0x1c]
+ add r1, r5, #0
+ bl FUN_02029CC8
+ add r7, r0, #0
+ beq _02228478
+ bl FUN_02029CE0
+ cmp r0, #0
+ beq _02228478
+ cmp r0, #0x51
+ bge _02228478
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02085FF4
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ str r7, [r0, #0x38]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ beq _0222844A
+ bl ErrorHandling
+_0222844A:
+ add r0, r4, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ ldr r1, [r4]
+ ldr r2, [sp, #8]
+ mov r3, #0
+ bl MOD08_02215B00
+ ldr r1, [r4, #0x10]
+ lsl r1, r1, #2
+ add r1, r4, r1
+ str r0, [r1, #0x14]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ bne _02228472
+ bl ErrorHandling
+_02228472:
+ ldr r0, [r6]
+ add r0, r0, #1
+ str r0, [r6]
+_02228478:
+ add r5, r5, #1
+ cmp r5, #6
+ blt _02228410
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ add r4, #0x90
+ add r0, r0, #1
+ add sp, #0x24
+ str r0, [r4]
+ pop {r4, r5, r6, r7, pc}
+_0222848E:
+ add r0, r4, #0
+ add r6, r4, #0
+ str r0, [sp, #0x20]
+ add r0, #0xa0
+ mov r5, #6
+ add r6, #0x10
+ str r0, [sp, #0x20]
+_0222849C:
+ ldr r0, [sp, #0x20]
+ add r1, r5, #0
+ bl FUN_02029CC8
+ add r7, r0, #0
+ beq _02228504
+ bl FUN_02029CE0
+ cmp r0, #0
+ beq _02228504
+ cmp r0, #0x51
+ bge _02228504
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02085FF4
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ str r7, [r0, #0x38]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ beq _022284D6
+ bl ErrorHandling
+_022284D6:
+ add r0, r4, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ ldr r1, [r4]
+ ldr r2, [sp, #0xc]
+ mov r3, #0
+ bl MOD08_02215B00
+ ldr r1, [r4, #0x10]
+ lsl r1, r1, #2
+ add r1, r4, r1
+ str r0, [r1, #0x14]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ bne _022284FE
+ bl ErrorHandling
+_022284FE:
+ ldr r0, [r6]
+ add r0, r0, #1
+ str r0, [r6]
+_02228504:
+ add r5, r5, #1
+ cmp r5, #8
+ blt _0222849C
+ add r0, r4, #0
+ mov r1, #0xff
+ add r0, #0x90
+ add r4, #0x8c
+ str r1, [r0]
+ ldr r0, [r4]
+ bl NARC_dtor
+ ldr r0, [sp]
+ bl FUN_0200CAB4
+_02228520:
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02228524
+MOD08_02228524: ; 0x02228524
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _0222854E
+ add r0, r4, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ bl MOD08_02228178
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [r4, #0x10]
+ ldr r0, [r4]
+ mov r1, #0x63
+ mov r3, #0
+ bl MOD08_02215ACC
+ str r0, [r4, #0x14]
+ pop {r4, pc}
+_0222854E:
+ mov r1, #0
+ add r0, r4, #0
+ mov r2, #0xfa
+ str r1, [r4, #0x10]
+ add r0, #0x90
+ str r1, [r0]
+ ldr r0, _0222856C ; =MOD08_022282B4
+ add r1, r4, #0
+ lsl r2, r2, #2
+ bl FUN_0200CA44
+ add r1, r4, #0
+ bl MOD08_022282B4
+ pop {r4, pc}
+ .align 2, 0
+_0222856C: .word MOD08_022282B4
+
+ thumb_func_start MOD08_02228570
+MOD08_02228570: ; 0x02228570
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_02228574
+MOD08_02228574: ; 0x02228574
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r1, #1
+ add r0, #0x88
+ str r1, [r0]
+ bl MOD08_0221268C
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD08_0222865C
+ mov r2, #0xfa
+ ldr r0, _022285A0 ; =MOD08_022285BC
+ add r1, r5, #0
+ lsl r2, r2, #2
+ bl FUN_0200CA44
+ add r5, #0x84
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+ nop
+_022285A0: .word MOD08_022285BC
+
+ thumb_func_start MOD08_022285A4
+MOD08_022285A4: ; 0x022285A4
+ ldr r3, _022285AC ; =MOD08_02228574
+ ldr r1, _022285B0 ; =MOD08_02228788
+ bx r3
+ nop
+_022285AC: .word MOD08_02228574
+_022285B0: .word MOD08_02228788
+
+ thumb_func_start MOD08_022285B4
+MOD08_022285B4: ; 0x022285B4
+ add r0, #0x88
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_022285BC
+MOD08_022285BC: ; 0x022285BC
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ str r0, [sp]
+ ldr r0, [r6, #0x10]
+ mov r7, #0
+ cmp r0, #9
+ ble _022285CE
+ bl ErrorHandling
+_022285CE:
+ ldr r0, [r6, #0x10]
+ mov r4, #0
+ cmp r0, #0
+ ble _02228606
+ add r5, r6, #0
+_022285D8:
+ ldr r0, [r5, #0x14]
+ cmp r0, #0
+ beq _022285FC
+ bl FUN_020133C8
+ cmp r0, #0
+ bne _022285FA
+ ldr r0, [r5, #0x5c]
+ cmp r0, #0
+ beq _022285FA
+ ldr r0, [r5, #0x14]
+ bl MOD08_02215B40
+ mov r0, #0
+ str r0, [r5, #0x14]
+ str r0, [r5, #0x5c]
+ b _022285FC
+_022285FA:
+ mov r7, #1
+_022285FC:
+ ldr r0, [r6, #0x10]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r0
+ blt _022285D8
+_02228606:
+ cmp r7, #0
+ bne _02228616
+ mov r0, #0
+ add r6, #0x88
+ str r0, [r6]
+ ldr r0, [sp]
+ bl FUN_0200CAB4
+_02228616:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_02228618
+MOD08_02228618: ; 0x02228618
+ ldr r3, _0222861C ; =FreeToHeap
+ bx r3
+ .align 2, 0
+_0222861C: .word FreeToHeap
+
+ thumb_func_start MOD08_02228620
+MOD08_02228620: ; 0x02228620
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ bne _02228654
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ str r1, [r0]
+ ldr r0, [r4, #0x10]
+ ldr r2, [r4, #0x18]
+ mov r1, #0
+ add r3, r4, #0
+ bl FUN_020133AC
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_02013440
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, pc}
+_02228654:
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222865C
+MOD08_0222865C: ; 0x0222865C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ add r7, r1, #0
+ cmp r0, #0
+ bne _0222869A
+ add r0, r6, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ bl MOD08_0222818C
+ add r5, r0, #0
+ mov r4, #0
+ cmp r5, #0
+ ble _0222868E
+_0222867C:
+ ldr r0, [r6, #0x14]
+ add r1, r4, #0
+ add r2, r7, #0
+ add r3, r6, #0
+ bl FUN_020133AC
+ add r4, r4, #1
+ cmp r4, r5
+ blt _0222867C
+_0222868E:
+ mov r1, #1
+ str r1, [r6, #0x5c]
+ ldr r0, [r6, #0x14]
+ bl FUN_02013440
+ pop {r3, r4, r5, r6, r7, pc}
+_0222869A:
+ ldr r0, [r6, #0x10]
+ mov r7, #0
+ cmp r0, #0
+ ble _02228700
+ add r0, r6, #0
+ str r0, [sp]
+ add r0, #0x5c
+ add r5, r6, #0
+ str r0, [sp]
+_022286AC:
+ ldr r0, [r6]
+ mov r1, #0x1c
+ bl AllocFromHeap
+ add r4, r0, #0
+ bne _022286BC
+ bl ErrorHandling
+_022286BC:
+ str r7, [r4]
+ ldr r0, [r6, #4]
+ str r0, [r4, #8]
+ ldr r0, _02228704 ; =MOD08_022287C4
+ str r0, [r4, #0x18]
+ mov r0, #0
+ str r0, [r5, #0x5c]
+ ldr r0, [sp]
+ str r0, [r4, #0xc]
+ ldr r0, [r5, #0x14]
+ str r0, [r4, #0x10]
+ ldr r0, [r5, #0x38]
+ str r0, [r4, #0x14]
+ cmp r0, #0
+ bne _022286DE
+ bl ErrorHandling
+_022286DE:
+ ldr r0, [r4, #0x14]
+ bl MOD08_0222A078
+ str r0, [r4, #4]
+ ldr r0, _02228708 ; =MOD08_02228620
+ ldr r2, _0222870C ; =0x000003E9
+ add r1, r4, #0
+ bl FUN_0200CA44
+ ldr r0, [sp]
+ add r7, r7, #1
+ add r0, r0, #4
+ str r0, [sp]
+ ldr r0, [r6, #0x10]
+ add r5, r5, #4
+ cmp r7, r0
+ blt _022286AC
+_02228700:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02228704: .word MOD08_022287C4
+_02228708: .word MOD08_02228620
+_0222870C: .word 0x000003E9
+
+ thumb_func_start MOD08_02228710
+MOD08_02228710: ; 0x02228710
+ push {r3, r4, r5, lr}
+ mov r2, #0
+ mov r3, #1
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD08_0222796C
+ cmp r5, #5
+ bhi _02228766
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222872E: ; jump table
+ .short _0222873A - _0222872E - 2 ; case 0
+ .short _02228742 - _0222872E - 2 ; case 1
+ .short _0222874C - _0222872E - 2 ; case 2
+ .short _02228754 - _0222872E - 2 ; case 3
+ .short _0222875E - _0222872E - 2 ; case 4
+ .short _02228766 - _0222872E - 2 ; case 5
+_0222873A:
+ mov r5, #0
+ add r0, r5, #0
+ sub r0, #0x10
+ b _0222876E
+_02228742:
+ mov r5, #0xe
+ mvn r5, r5
+ add r0, r5, #0
+ sub r0, #0xa
+ b _0222876E
+_0222874C:
+ mov r5, #7
+ mvn r5, r5
+ sub r0, r5, #4
+ b _0222876E
+_02228754:
+ mov r5, #0xd
+ mvn r5, r5
+ add r0, r5, #0
+ sub r0, #0xb
+ b _0222876E
+_0222875E:
+ mov r5, #7
+ mvn r5, r5
+ sub r0, r5, #4
+ b _0222876E
+_02228766:
+ mov r5, #0xf
+ mvn r5, r5
+ add r0, r5, #0
+ sub r0, #0xd
+_0222876E:
+ add r5, #0xa
+ ldr r3, [r4]
+ mov r1, #0xac
+ add r2, r5, #0
+ mul r2, r1
+ sub r2, r3, r2
+ str r2, [r4]
+ add r0, #0x20
+ ldr r2, [r4, #4]
+ mul r1, r0
+ sub r0, r2, r1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02228788
+MOD08_02228788: ; 0x02228788
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl FUN_0201341C
+ ldr r0, [r0, #4]
+ add r1, sp, #0
+ bl MOD08_02228710
+ ldr r0, [r4, #0x20]
+ ldr r1, [sp]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r1, r0
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #0x20]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x20]
+ ldr r1, [sp, #8]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r1, r0
+ str r0, [r4, #0x30]
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022287C4
+MOD08_022287C4: ; 0x022287C4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ bl FUN_0201341C
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ add r1, sp, #0
+ bl MOD08_02228710
+ ldr r0, [r4, #0x14]
+ bl FUN_02029CE0
+ bl FUN_02086018
+ ldr r0, [r4, #0x14]
+ bl FUN_02029CE4
+ add r6, r0, #0
+ ldr r0, [r4, #0x14]
+ bl FUN_02029CE8
+ sub r6, #0xbe
+ lsl r1, r6, #0x10
+ asr r3, r1, #0x10
+ ldr r2, [sp]
+ mov r1, #0xac
+ add r4, r3, #0
+ mul r4, r1
+ add r3, r2, r4
+ mov r4, #0x64
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ ldr r2, [sp, #4]
+ mul r1, r0
+ add r0, r2, r1
+ str r3, [sp]
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x20]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r3, r0
+ str r0, [r5, #0x28]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #8]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r1, r0
+ str r0, [r5, #0x30]
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+
+ thumb_func_start MOD08_02228838
+MOD08_02228838: ; 0x02228838
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0201341C
+ mov r1, #2
+ ldrsh r2, [r0, r1]
+ mov r1, #0x64
+ mov r3, #0xac
+ sub r1, r1, r2
+ lsl r1, r1, #0x10
+ asr r2, r1, #0x10
+ add r1, r2, #0
+ mov r2, #0
+ ldrsh r0, [r0, r2]
+ mul r1, r3
+ sub r0, #0x81
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add r2, r0, #0
+ ldr r0, [r4, #0x20]
+ mul r2, r3
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r2, r0
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #0x20]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x20]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ str r0, [r4, #0x30]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02228880
+MOD08_02228880: ; 0x02228880
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ mov r1, #0x24
+ bl AllocFromHeap
+ add r4, r0, #0
+ bne _02228894
+ bl ErrorHandling
+_02228894:
+ ldmia r5!, {r0, r1}
+ add r2, r4, #0
+ stmia r2!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r5]
+ str r0, [r2]
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ beq _022288B8
+ ldr r0, _022288DC ; =0x00000113
+ bl MOD08_022281A0
+ str r0, [r4, #0x20]
+ ldr r0, _022288DC ; =0x00000113
+ bl MOD08_022281B4
+ b _022288C6
+_022288B8:
+ ldr r0, [r4, #4]
+ bl MOD08_022281A0
+ str r0, [r4, #0x20]
+ ldr r0, [r4, #4]
+ bl MOD08_022281B4
+_022288C6:
+ str r0, [r4, #0x1c]
+ ldr r0, [r4, #8]
+ ldr r2, [r4, #0x20]
+ mov r1, #0x63
+ mov r3, #0
+ bl MOD08_02215ACC
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_022288DC: .word 0x00000113
+
+ thumb_func_start MOD08_022288E0
+MOD08_022288E0: ; 0x022288E0
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r1, [r5, #0xc]
+ cmp r1, #0xff
+ bne _0222893A
+ ldr r0, [r5, #0x10]
+ cmp r0, #0
+ beq _02228910
+ ldr r0, [r5, #0x1c]
+ mov r4, #0
+ cmp r0, #0
+ ble _02228944
+ ldr r6, _02228950 ; =MOD08_02228838
+_022288FA:
+ ldr r0, [r5, #0x18]
+ add r1, r4, #0
+ add r2, r6, #0
+ add r3, r5, #0
+ bl FUN_020133AC
+ ldr r0, [r5, #0x1c]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _022288FA
+ b _02228944
+_02228910:
+ ldr r0, [r5, #0x1c]
+ mov r4, #0
+ cmp r0, #0
+ ble _02228944
+ ldr r6, _02228950 ; =MOD08_02228838
+_0222891A:
+ ldr r0, [r5, #4]
+ bl MOD08_022281C8
+ cmp r4, r0
+ beq _02228930
+ ldr r0, [r5, #0x18]
+ add r1, r4, #0
+ add r2, r6, #0
+ add r3, r5, #0
+ bl FUN_020133AC
+_02228930:
+ ldr r0, [r5, #0x1c]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _0222891A
+ b _02228944
+_0222893A:
+ ldr r0, [r5, #0x18]
+ ldr r2, _02228950 ; =MOD08_02228838
+ add r3, r5, #0
+ bl FUN_020133AC
+_02228944:
+ ldr r0, [r5, #0x18]
+ mov r1, #1
+ bl FUN_02013440
+ pop {r4, r5, r6, pc}
+ nop
+_02228950: .word MOD08_02228838
+
+ thumb_func_start MOD08_02228954
+MOD08_02228954: ; 0x02228954
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x18]
+ bl FUN_020133C8
+ cmp r0, #0
+ bne _0222896C
+ ldr r0, [r4, #0x18]
+ bl MOD08_02215B40
+ mov r0, #0
+ pop {r4, pc}
+_0222896C:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02228970
+MOD08_02228970: ; 0x02228970
+ ldr r3, _02228974 ; =FreeToHeap
+ bx r3
+ .align 2, 0
+_02228974: .word FreeToHeap
+
+ thumb_func_start MOD08_02228978
+MOD08_02228978: ; 0x02228978
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ bne _0222898C
+ add r1, r1, #1
+ str r1, [r4, #4]
+ mov r1, #1
+ bl MOD08_02229A18
+_0222898C:
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD08_02229A1C
+ cmp r0, #1
+ bne _0222899C
+ mov r0, #0
+ pop {r4, pc}
+_0222899C:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022289A0
+MOD08_022289A0: ; 0x022289A0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ bne _022289B4
+ add r1, r1, #1
+ str r1, [r4, #4]
+ mov r1, #3
+ bl MOD08_02229A18
+_022289B4:
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD08_02229A1C
+ cmp r0, #1
+ bne _022289C4
+ mov r0, #0
+ pop {r4, pc}
+_022289C4:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022289C8
+MOD08_022289C8: ; 0x022289C8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ bne _022289DC
+ add r1, r1, #1
+ str r1, [r4, #4]
+ mov r1, #5
+ bl MOD08_02229A18
+_022289DC:
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD08_02229A1C
+ cmp r0, #1
+ bne _022289EC
+ mov r0, #0
+ pop {r4, pc}
+_022289EC:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_022289F0
+MOD08_022289F0: ; 0x022289F0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ bne _02228A04
+ add r1, r1, #1
+ str r1, [r4, #4]
+ mov r1, #7
+ bl MOD08_02229A18
+_02228A04:
+ add r0, r4, #0
+ mov r1, #0xe
+ bl MOD08_02229A1C
+ cmp r0, #1
+ bne _02228A14
+ mov r0, #0
+ pop {r4, pc}
+_02228A14:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02228A18
+MOD08_02228A18: ; 0x02228A18
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ bne _02228A2C
+ add r1, r1, #1
+ str r1, [r4, #4]
+ mov r1, #0xf
+ bl MOD08_02229A18
+_02228A2C:
+ add r0, r4, #0
+ mov r1, #0x12
+ bl MOD08_02229A1C
+ cmp r0, #1
+ bne _02228A3C
+ mov r0, #0
+ pop {r4, pc}
+_02228A3C:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02228A40
+MOD08_02228A40: ; 0x02228A40
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ bne _02228A54
+ add r1, r1, #1
+ str r1, [r4, #4]
+ mov r1, #0x13
+ bl MOD08_02229A18
+_02228A54:
+ add r0, r4, #0
+ mov r1, #0x1b
+ bl MOD08_02229A1C
+ cmp r0, #1
+ bne _02228A64
+ mov r0, #0
+ pop {r4, pc}
+_02228A64:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02228A68
+MOD08_02228A68: ; 0x02228A68
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ bne _02228A7C
+ add r1, r1, #1
+ str r1, [r4, #4]
+ mov r1, #0x15
+ bl MOD08_02229A18
+_02228A7C:
+ add r0, r4, #0
+ mov r1, #0x16
+ bl MOD08_02229A1C
+ cmp r0, #1
+ bne _02228A8C
+ mov r0, #0
+ pop {r4, pc}
+_02228A8C:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02228A90
+MOD08_02228A90: ; 0x02228A90
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ bne _02228AA4
+ add r1, r1, #1
+ str r1, [r4, #4]
+ mov r1, #0x17
+ bl MOD08_02229A18
+_02228AA4:
+ add r0, r4, #0
+ mov r1, #0x1b
+ bl MOD08_02229A1C
+ cmp r0, #1
+ bne _02228AB4
+ mov r0, #0
+ pop {r4, pc}
+_02228AB4:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02228AB8
+MOD08_02228AB8: ; 0x02228AB8
+ str r1, [r0]
+ mov r1, #0
+ str r1, [r0, #4]
+ bx lr
+
+ thumb_func_start MOD08_02228AC0
+MOD08_02228AC0: ; 0x02228AC0
+ push {r3, lr}
+ ldr r1, [r0]
+ lsl r2, r1, #2
+ ldr r1, _02228AD0 ; =0x0222D034
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r3, pc}
+ nop
+_02228AD0: .word 0x0222D034
+
+ thumb_func_start MOD08_02228AD4
+MOD08_02228AD4: ; 0x02228AD4
+ str r1, [r0, #0x14]
+ mov r1, #0
+ str r1, [r0, #8]
+ str r1, [r0, #0xc]
+ str r1, [r0, #0x10]
+ bx lr
+
+ thumb_func_start MOD08_02228AE0
+MOD08_02228AE0: ; 0x02228AE0
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_02228AE4
+MOD08_02228AE4: ; 0x02228AE4
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD08_02229114
+ cmp r0, #0
+ bne _02228AF8
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD08_02228AD4
+_02228AF8:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02228AFC
+MOD08_02228AFC: ; 0x02228AFC
+ push {r3, lr}
+ mov r1, #3
+ bl MOD08_02228AD4
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02228B08
+MOD08_02228B08: ; 0x02228B08
+ push {r3, r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #3
+ bhi _02228BD8
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02228B20: ; jump table
+ .short _02228B28 - _02228B20 - 2 ; case 0
+ .short _02228B7E - _02228B20 - 2 ; case 1
+ .short _02228B94 - _02228B20 - 2 ; case 2
+ .short _02228BB0 - _02228B20 - 2 ; case 3
+_02228B28:
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_0200C5C0
+ add r0, r4, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ add r2, sp, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ add r1, sp, #0
+ str r0, [sp, #8]
+ mov r0, #0xff
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x30]
+ add r2, #2
+ bl FUN_0200C7A0
+ add r0, r4, #0
+ add r1, r4, #0
+ add r0, #0xb4
+ add r1, #0x94
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl MOD08_0221590C
+ add r1, r4, #0
+ add r1, #0xd8
+ str r0, [r1]
+ add r0, sp, #0
+ bl MOD08_02228880
+ add r1, r4, #0
+ add r1, #0xd0
+ str r0, [r1]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02228BE0
+_02228B7E:
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C630
+ cmp r0, #2
+ blt _02228BE0
+ mov r0, #0
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02228BE0
+_02228B94:
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl MOD08_022288E0
+ add r0, r4, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ bl MOD08_02215918
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02228BE0
+_02228BB0:
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl MOD08_02228954
+ cmp r0, #0
+ bne _02228BE0
+ ldr r0, [r4, #0x30]
+ mov r1, #0
+ bl FUN_0200C61C
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl MOD08_02228970
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02228BE0
+_02228BD8:
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD08_02228AD4
+_02228BE0:
+ mov r0, #1
+ add sp, #0x14
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02228BE8
+MOD08_02228BE8: ; 0x02228BE8
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_02228BEC
+MOD08_02228BEC: ; 0x02228BEC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0
+ bne _02228C2C
+ add r1, r4, #0
+ add r2, r4, #0
+ ldr r0, [r4, #0x30]
+ add r1, #0xb8
+ add r2, #0xba
+ bl FUN_0200C7A0
+ add r0, r4, #0
+ mov r1, #0x3c
+ add r0, #0xbc
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0xb4
+ add r0, #0xbe
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0xa
+ add r0, #0xc0
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #0xc
+ add r0, #0xc8
+ str r1, [r0]
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ b _02228C3C
+_02228C2C:
+ bl MOD08_02229114
+ cmp r0, #0
+ bne _02228C3C
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD08_02228AD4
+_02228C3C:
+ mov r0, #1
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02228C40
+MOD08_02228C40: ; 0x02228C40
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_02228C44
+MOD08_02228C44: ; 0x02228C44
+ push {r3, lr}
+ mov r1, #8
+ bl MOD08_02228AD4
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02228C50
+MOD08_02228C50: ; 0x02228C50
+ push {r3, lr}
+ mov r1, #9
+ bl MOD08_02228AD4
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02228C5C
+MOD08_02228C5C: ; 0x02228C5C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _02228C6E
+ cmp r0, #1
+ beq _02228CA2
+ b _02228CE4
+_02228C6E:
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C68C
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xc
+ str r0, [sp, #4]
+ ldr r0, _02228D00 ; =0x0000037F
+ mov r3, #1
+ add r5, r3, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ lsl r5, r2
+ add r0, #0xb0
+ lsl r2, r5, #0x10
+ ldr r0, [r0]
+ mov r1, #4
+ lsr r2, r2, #0x10
+ sub r3, r3, #2
+ bl FUN_02003210
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02228CFA
+_02228CA2:
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02228CFA
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C68C
+ add r2, r0, #0
+ mov r0, #0xc
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _02228D00 ; =0x0000037F
+ mov r3, #1
+ add r5, r3, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ lsl r5, r2
+ add r0, #0xb0
+ lsl r2, r5, #0x10
+ ldr r0, [r0]
+ mov r1, #4
+ lsr r2, r2, #0x10
+ sub r3, r3, #2
+ bl FUN_02003210
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02228CFA
+_02228CE4:
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02228CFA
+ add r0, r4, #0
+ mov r1, #0xa
+ bl MOD08_02228AD4
+_02228CFA:
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02228D00: .word 0x0000037F
+
+ thumb_func_start MOD08_02228D04
+MOD08_02228D04: ; 0x02228D04
+ push {r3, lr}
+ mov r1, #0xb
+ bl MOD08_02228AD4
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02228D10
+MOD08_02228D10: ; 0x02228D10
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _02228D22
+ cmp r0, #1
+ beq _02228D62
+ b _02228D7E
+_02228D22:
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ cmp r0, #1
+ blt _02228D7E
+ add r1, sp, #8
+ ldr r0, [r4, #0x30]
+ add r1, #2
+ add r2, sp, #8
+ bl FUN_0200C7A0
+ add r1, sp, #8
+ mov r0, #0
+ ldrsh r3, [r1, r0]
+ mov r0, #2
+ ldrsh r1, [r1, r0]
+ add r0, r3, #0
+ add r0, #0x20
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x48
+ add r2, r1, #0
+ bl MOD08_02217E80
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02228D7E
+_02228D62:
+ add r0, r4, #0
+ ldr r1, [r4, #0x30]
+ add r0, #0x48
+ bl MOD08_02217F08
+ cmp r0, #0
+ bne _02228D7E
+ ldr r0, [r4, #8]
+ mov r1, #0xd
+ add r0, r0, #1
+ str r0, [r4, #8]
+ add r0, r4, #0
+ bl MOD08_02228AD4
+_02228D7E:
+ mov r0, #1
+ add sp, #0xc
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_02228D84
+MOD08_02228D84: ; 0x02228D84
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_02228D88
+MOD08_02228D88: ; 0x02228D88
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r1, [r5, #8]
+ cmp r1, #0
+ beq _02228D98
+ cmp r1, #1
+ beq _02228DAE
+ b _02228E0E
+_02228D98:
+ ldr r0, [r5, #0x30]
+ mov r1, #1
+ bl FUN_0200C5C0
+ ldr r0, [r5, #0x30]
+ mov r1, #0
+ bl FUN_0200C61C
+ ldr r0, [r5, #8]
+ add r0, r0, #1
+ str r0, [r5, #8]
+_02228DAE:
+ ldr r1, [r5, #0xc]
+ mov r0, #6
+ add r2, r1, #0
+ mul r2, r0
+ ldr r0, _02228E18 ; =0x0222D18A
+ ldr r1, _02228E1C ; =0x0222D18C
+ ldrsh r0, [r0, r2]
+ ldrh r1, [r1, r2]
+ str r0, [sp]
+ ldr r0, [r5, #0x30]
+ bl FUN_0200C61C
+ ldr r0, [r5, #0xc]
+ ldr r4, _02228E20 ; =0x0222D07C
+ add r0, r0, #1
+ str r0, [r5, #0xc]
+ mov r6, #0
+ mov r7, #0x75
+_02228DD2:
+ ldr r1, [r5, #0xc]
+ ldr r0, [r4]
+ cmp r1, r0
+ bne _02228DE6
+ ldr r0, [r4, #4]
+ add r1, r7, #0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_020054A8
+_02228DE6:
+ add r6, r6, #1
+ add r4, #8
+ cmp r6, #5
+ blt _02228DD2
+ ldr r0, [r5, #0xc]
+ cmp r0, #0x14
+ bgt _02228DFA
+ ldr r0, [sp]
+ cmp r0, #0xff
+ bne _02228E02
+_02228DFA:
+ ldr r0, [r5, #8]
+ add r0, r0, #1
+ str r0, [r5, #8]
+ b _02228E14
+_02228E02:
+ ldr r0, [r5, #0x30]
+ ldr r2, [sp]
+ mov r1, #0
+ bl FUN_0200C82C
+ b _02228E14
+_02228E0E:
+ mov r1, #0xe
+ bl MOD08_02228AD4
+_02228E14:
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02228E18: .word 0x0222D18A
+_02228E1C: .word 0x0222D18C
+_02228E20: .word 0x0222D07C
+
+ thumb_func_start MOD08_02228E24
+MOD08_02228E24: ; 0x02228E24
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_02228E28
+MOD08_02228E28: ; 0x02228E28
+ push {r3, lr}
+ ldr r1, [r0, #0xc]
+ add r1, r1, #1
+ str r1, [r0, #0xc]
+ cmp r1, #0xe
+ blt _02228E44
+ ldr r1, [r0, #8]
+ add r1, r1, #1
+ str r1, [r0, #8]
+ mov r1, #0
+ str r1, [r0, #0xc]
+ mov r1, #0x10
+ bl MOD08_02228AD4
+_02228E44:
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02228E48
+MOD08_02228E48: ; 0x02228E48
+ push {r3, lr}
+ mov r1, #0x11
+ bl MOD08_02228AD4
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02228E54
+MOD08_02228E54: ; 0x02228E54
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ cmp r0, #0
+ beq _02228E64
+ cmp r0, #1
+ beq _02228E74
+ b _02228EDC
+_02228E64:
+ ldr r0, [r5, #0x18]
+ cmp r0, #3
+ blt _02228E6E
+ bl ErrorHandling
+_02228E6E:
+ ldr r0, [r5, #8]
+ add r0, r0, #1
+ str r0, [r5, #8]
+_02228E74:
+ ldr r1, [r5, #0x18]
+ mov r0, #0x18
+ add r3, r1, #0
+ mul r3, r0
+ ldr r0, _02228EE0 ; =0x0222D0D0
+ ldr r1, [r5, #0xc]
+ add r0, r0, r3
+ lsl r2, r1, #1
+ ldrsh r4, [r2, r0]
+ add r0, r1, #1
+ str r0, [r5, #0xc]
+ cmp r0, #0xb
+ bgt _02228E92
+ cmp r4, #0xff
+ bne _02228EB2
+_02228E92:
+ ldr r0, [r5, #8]
+ mov r1, #0
+ add r0, r0, #1
+ str r0, [r5, #8]
+ ldr r0, [r5, #0x18]
+ add r0, r0, #1
+ str r0, [r5, #0x18]
+ ldr r0, [r5, #0x30]
+ bl FUN_0200C898
+ add r0, r5, #0
+ mov r1, #0x12
+ bl MOD08_02228AD4
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02228EB2:
+ cmp r0, #5
+ bne _02228EBE
+ ldr r0, _02228EE4 ; =0x000005FE
+ mov r1, #0x75
+ bl FUN_020054A8
+_02228EBE:
+ ldr r0, [r5, #0x30]
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200C82C
+ ldr r0, _02228EE8 ; =0x0001FFFE
+ mov r1, #0x5a
+ mul r0, r4
+ lsl r1, r1, #2
+ bl _s32_div_f
+ add r1, r0, #0
+ ldr r0, [r5, #0x30]
+ bl FUN_0200C8BC
+_02228EDC:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02228EE0: .word 0x0222D0D0
+_02228EE4: .word 0x000005FE
+_02228EE8: .word 0x0001FFFE
+
+ thumb_func_start MOD08_02228EEC
+MOD08_02228EEC: ; 0x02228EEC
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_02228EF0
+MOD08_02228EF0: ; 0x02228EF0
+ push {r3, lr}
+ mov r1, #0x14
+ bl MOD08_02228AD4
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02228EFC
+MOD08_02228EFC: ; 0x02228EFC
+ push {r3, lr}
+ mov r1, #0x1b
+ bl MOD08_02228AD4
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD08_02228F08
+MOD08_02228F08: ; 0x02228F08
+ push {r3, r4, r5, lr}
+ sub sp, #0x20
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #3
+ bhi _02228FDC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02228F20: ; jump table
+ .short _02228F28 - _02228F20 - 2 ; case 0
+ .short _02228F5A - _02228F20 - 2 ; case 1
+ .short _02228FA2 - _02228F20 - 2 ; case 2
+ .short _02228FB4 - _02228F20 - 2 ; case 3
+_02228F28:
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C68C
+ mov r1, #0
+ mov r3, #1
+ add r2, r0, #0
+ add r5, r3, #0
+ lsl r5, r2
+ lsl r2, r5, #0x10
+ str r1, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ add r0, r4, #0
+ str r1, [sp, #8]
+ add r0, #0xb0
+ ldr r0, [r0]
+ mov r1, #4
+ lsr r2, r2, #0x10
+ sub r3, r3, #6
+ bl FUN_02003210
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02228FF2
+_02228F5A:
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02228FF2
+ add r0, r4, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+ add r1, #0x94
+ ldr r1, [r1]
+ str r1, [sp, #0x14]
+ bl MOD08_022281C8
+ str r0, [sp, #0x18]
+ mov r0, #0
+ str r0, [sp, #0x1c]
+ add r2, sp, #0xc
+ ldr r0, [r4, #0x30]
+ add r1, sp, #0xc
+ add r2, #2
+ bl FUN_0200C7A0
+ add r0, sp, #0xc
+ bl MOD08_02228880
+ add r1, r4, #0
+ add r1, #0xd0
+ str r0, [r1]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02228FF2
+_02228FA2:
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl MOD08_022288E0
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02228FF2
+_02228FB4:
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl MOD08_02228954
+ cmp r0, #0
+ bne _02228FF2
+ ldr r0, [r4, #0x30]
+ mov r1, #0
+ bl FUN_0200C61C
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl MOD08_02228970
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02228FF2
+_02228FDC:
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02228FF2
+ add r0, r4, #0
+ mov r1, #0x16
+ bl MOD08_02228AD4
+_02228FF2:
+ mov r0, #1
+ add sp, #0x20
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD08_02228FF8
+MOD08_02228FF8: ; 0x02228FF8
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD08_02228FFC
+MOD08_02228FFC: ; 0x02228FFC
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r1, [r4, #8]
+ cmp r1, #0
+ beq _0222900E
+ cmp r1, #1
+ beq _02229040
+ b _02229054
+_0222900E:
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C68C
+ add r2, r0, #0
+ mov r0, #0xa
+ str r0, [sp]
+ mov r0, #0
+ mov r3, #1
+ add r5, r3, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r4, #0
+ lsl r5, r2
+ add r0, #0xb0
+ lsl r2, r5, #0x10
+ ldr r0, [r0]
+ mov r1, #4
+ lsr r2, r2, #0x10
+ sub r3, r3, #6
+ bl FUN_02003210
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _0222905A
+_02229040:
+ add r0, #0xb0
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0222905A
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _0222905A
+_02229054:
+ mov r1, #0x18
+ bl MOD08_02228AD4
+_0222905A:
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD08_02229060
+MOD08_02229060: ; 0x02229060
+ push {r3, lr}
+ mov r1, #0x19
+ bl MOD08_02228AD4
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD08_0222906C
+MOD08_0222906C: ; 0x0222906C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #8]
+ cmp r1, #0
+ beq _0222907C
+ cmp r1, #1
+ beq _0222908A
+ b _022290E2
+_0222907C:
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_0200C90C
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+_0222908A:
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _022290B2
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x20
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x21
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x21
+ strb r1, [r0]
+ b _022290CE
+_022290B2:
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x20
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r2, #0xf
+ add r0, #0x21
+ strb r2, [r0]
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C644
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+_022290CE:
+ add r0, r4, #0
+ add r0, #0x20
+ add r4, #0x21
+ ldrb r1, [r0]
+ ldrb r0, [r4]
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _022290EC ; =0x04000052
+ strh r1, [r0]
+ b _022290E8
+_022290E2:
+ mov r1, #0x1a
+ bl MOD08_02228AD4
+_022290E8:
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_022290EC: .word 0x04000052
+
+ thumb_func_start MOD08_022290F0
+MOD08_022290F0: ; 0x022290F0
+ push {r3, lr}
+ mov r1, #0x1b
+ bl MOD08_02228AD4
+ mov r0, #1
+ pop {r3, pc}
+
+ thumb_func_start MOD08_022290FC
+MOD08_022290FC: ; 0x022290FC
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD08_02229100
+MOD08_02229100: ; 0x02229100
+ push {r3, lr}
+ ldr r1, [r0, #0x14]
+ lsl r2, r1, #2
+ ldr r1, _02229110 ; =0x0222D118
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r3, pc}
+ nop
+_02229110: .word 0x0222D118
+
+ thumb_func_start MOD08_02229114
+MOD08_02229114: ; 0x02229114
+ push {r3, r4, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #3
+ bls _02229122
+ b _02229322
+_02229122:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222912E: ; jump table
+ .short _02229136 - _0222912E - 2 ; case 0
+ .short _022291A4 - _0222912E - 2 ; case 1
+ .short _0222929E - _0222912E - 2 ; case 2
+ .short _02229302 - _0222912E - 2 ; case 3
+_02229136:
+ mov r0, #0xba
+ ldrsh r0, [r4, r0]
+ add r1, r4, #0
+ mov r2, #0xb8
+ str r0, [sp]
+ mov r0, #0xbe
+ ldrsh r0, [r4, r0]
+ mov r3, #0xbc
+ add r1, #0x6c
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ add r0, #0x48
+ bl MOD08_02217F50
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xc4
+ str r1, [r0]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ add r0, r4, #0
+ add r0, #0xd4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl MOD08_022280C4
+ cmp r0, #1
+ bne _0222928C
+ bl LCRandom
+ mov r1, #0x14
+ bl _s32_div_f
+ add r1, #0xa
+ ldr r0, [r4, #0x30]
+ lsl r1, r1, #0xd
+ bl FUN_0200C8BC
+ b _022293BE
+_022291A4:
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl MOD08_022280C4
+ cmp r0, #1
+ bne _02229242
+ mov r1, #2
+ ldr r0, [r4, #0x30]
+ lsl r1, r1, #0xc
+ bl FUN_0200C8BC
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ add r0, #0xa
+ cmp r2, r0
+ ble _022291DE
+ mov r1, #2
+ ldr r0, [r4, #0x30]
+ lsl r1, r1, #0xc
+ bl FUN_0200C8BC
+_022291DE:
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl MOD08_02228104
+ cmp r0, #1
+ bne _02229242
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ add r0, #0xa
+ cmp r2, r0
+ bne _02229242
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C68C
+ add r3, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ sub r0, #0x12
+ str r0, [sp, #4]
+ mov r2, #2
+ add r1, r4, #0
+ lsl r3, r3, #0x14
+ str r2, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #0xe
+ str r0, [sp, #0x10]
+ ldr r0, _022293C4 ; =0x0000FFFF
+ add r1, #0x94
+ str r0, [sp, #0x14]
+ ldr r0, _022293C8 ; =0x000003EA
+ lsr r3, r3, #0x10
+ str r0, [sp, #0x18]
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl MOD08_02218B20
+ add r1, r4, #0
+ add r1, #0xd4
+ str r0, [r1]
+_02229242:
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ cmp r0, #6
+ blt _0222927A
+ cmp r0, #8
+ bgt _0222927A
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r2, r0, #1
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r1, [r0]
+ cmp r1, r2
+ ble _0222927A
+ add r0, r2, #5
+ cmp r1, r0
+ blt _0222928C
+_0222927A:
+ add r0, r4, #0
+ add r1, r4, #0
+ ldr r2, [r4, #0x30]
+ add r0, #0x48
+ add r1, #0x6c
+ bl MOD08_02217FE4
+ cmp r0, #0
+ beq _0222928E
+_0222928C:
+ b _022293BE
+_0222928E:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD08_02229FFC
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022293BE
+_0222929E:
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl MOD08_02228104
+ cmp r0, #1
+ bne _022292D2
+ add r0, r4, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _022292D2
+ bl MOD08_02218AF8
+ cmp r0, #1
+ beq _022293BE
+ add r0, r4, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ bl MOD08_02218B08
+ mov r0, #1
+ str r0, [r4, #0x28]
+ add sp, #0x1c
+ mov r0, #0
+ pop {r3, r4, pc}
+_022292D2:
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ cmp r0, #0xf
+ blt _022292E6
+ mov r0, #1
+ str r0, [r4, #0x28]
+ add sp, #0x1c
+ mov r0, #0
+ pop {r3, r4, pc}
+_022292E6:
+ add r0, r4, #0
+ add r0, #0xa0
+ ldr r1, [r0]
+ ldr r0, _022293CC ; =0x00000111
+ cmp r1, r0
+ bne _022292FA
+ ldr r0, _022293D0 ; =0x000007E8
+ mov r1, #0x75
+ bl FUN_020054A8
+_022292FA:
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022293BE
+_02229302:
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_0200C5C0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD08_0222A008
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xc4
+ str r1, [r0]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022293BE
+_02229322:
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #0xf
+ bne _0222937C
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ cmp r0, #0xc
+ beq _02229378
+ cmp r0, #0xd
+ beq _02229378
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C68C
+ add r3, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ sub r0, #0x12
+ str r0, [sp, #4]
+ mov r2, #2
+ add r1, r4, #0
+ lsl r3, r3, #0x14
+ str r2, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #0xe
+ str r0, [sp, #0x10]
+ ldr r0, _022293C4 ; =0x0000FFFF
+ add r1, #0x94
+ str r0, [sp, #0x14]
+ ldr r0, _022293C8 ; =0x000003EA
+ lsr r3, r3, #0x10
+ str r0, [sp, #0x18]
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl MOD08_02218B20
+ add r1, r4, #0
+ add r1, #0xd4
+ str r0, [r1]
+_02229378:
+ mov r0, #1
+ str r0, [r4, #0x28]
+_0222937C:
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #0xf
+ ble _022293BE
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ cmp r0, #0xc
+ beq _022293B8
+ cmp r0, #0xd
+ beq _022293B8
+ add r0, r4, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ bl MOD08_02218AF8
+ cmp r0, #1
+ beq _022293BE
+ add r4, #0xd4
+ ldr r0, [r4]
+ bl MOD08_02218B08
+_022293B8:
+ add sp, #0x1c
+ mov r0, #0
+ pop {r3, r4, pc}
+_022293BE:
+ mov r0, #1
+ add sp, #0x1c
+ pop {r3, r4, pc}
+ .align 2, 0
+_022293C4: .word 0x0000FFFF
+_022293C8: .word 0x000003EA
+_022293CC: .word 0x00000111
+_022293D0: .word 0x000007E8
+
+ thumb_func_start MOD08_022293D4
+MOD08_022293D4: ; 0x022293D4
+ push {r3, r4, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #3
+ bls _022293E2
+ b _022295CE
+_022293E2:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022293EE: ; jump table
+ .short _022293F6 - _022293EE - 2 ; case 0
+ .short _02229464 - _022293EE - 2 ; case 1
+ .short _0222955E - _022293EE - 2 ; case 2
+ .short _022295AE - _022293EE - 2 ; case 3
+_022293F6:
+ mov r0, #0xba
+ ldrsh r0, [r4, r0]
+ add r1, r4, #0
+ mov r2, #0xb8
+ str r0, [sp]
+ mov r0, #0xbe
+ ldrsh r0, [r4, r0]
+ mov r3, #0xbc
+ add r1, #0x6c
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ add r0, #0x48
+ bl MOD08_02217F50
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xc4
+ str r1, [r0]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ add r0, r4, #0
+ add r0, #0xd4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl MOD08_022280C4
+ cmp r0, #1
+ bne _0222954C
+ bl LCRandom
+ mov r1, #0x14
+ bl _s32_div_f
+ add r1, #0xa
+ ldr r0, [r4, #0x30]
+ lsl r1, r1, #0xd
+ bl FUN_0200C8BC
+ b _02229656
+_02229464:
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl MOD08_022280C4
+ cmp r0, #1
+ bne _02229502
+ mov r1, #2
+ ldr r0, [r4, #0x30]
+ lsl r1, r1, #0xc
+ bl FUN_0200C8BC
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ add r0, #0xa
+ cmp r2, r0
+ ble _0222949E
+ mov r1, #2
+ ldr r0, [r4, #0x30]
+ lsl r1, r1, #0xc
+ bl FUN_0200C8BC
+_0222949E:
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl MOD08_02228104
+ cmp r0, #1
+ bne _02229502
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ add r0, #0xa
+ cmp r2, r0
+ bne _02229502
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C68C
+ add r3, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ sub r0, #0x12
+ str r0, [sp, #4]
+ mov r2, #2
+ add r1, r4, #0
+ lsl r3, r3, #0x14
+ str r2, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #0xe
+ str r0, [sp, #0x10]
+ ldr r0, _0222965C ; =0x0000FFFF
+ add r1, #0x94
+ str r0, [sp, #0x14]
+ ldr r0, _02229660 ; =0x000003EA
+ lsr r3, r3, #0x10
+ str r0, [sp, #0x18]
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl MOD08_02218B20
+ add r1, r4, #0
+ add r1, #0xd4
+ str r0, [r1]
+_02229502:
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ cmp r0, #6
+ blt _0222953A
+ cmp r0, #8
+ bgt _0222953A
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r1, [r0]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r2, r0, #1
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r1, [r0]
+ cmp r1, r2
+ ble _0222953A
+ add r0, r2, #5
+ cmp r1, r0
+ blt _0222954C
+_0222953A:
+ add r0, r4, #0
+ add r1, r4, #0
+ ldr r2, [r4, #0x30]
+ add r0, #0x48
+ add r1, #0x6c
+ bl MOD08_02217FE4
+ cmp r0, #0
+ beq _0222954E
+_0222954C:
+ b _02229656
+_0222954E:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD08_02229FFC
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02229656
+_0222955E:
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl MOD08_02228104
+ cmp r0, #1
+ bne _02229592
+ add r0, r4, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _02229592
+ bl MOD08_02218AF8
+ cmp r0, #1
+ beq _02229656
+ add r0, r4, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ bl MOD08_02218B08
+ mov r0, #1
+ str r0, [r4, #0x28]
+ add sp, #0x1c
+ mov r0, #0
+ pop {r3, r4, pc}
+_02229592:
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ cmp r0, #0xf
+ blt _022295A6
+ mov r0, #1
+ str r0, [r4, #0x28]
+ add sp, #0x1c
+ mov r0, #0
+ pop {r3, r4, pc}
+_022295A6:
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02229656
+_022295AE:
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_0200C5C0
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD08_0222A008
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xc4
+ str r1, [r0]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02229656
+_022295CE:
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #0xf
+ bne _02229622
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ bl FUN_0200C61C
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C68C
+ add r3, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ sub r0, #0x12
+ str r0, [sp, #4]
+ mov r2, #2
+ add r1, r4, #0
+ lsl r3, r3, #0x14
+ str r2, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #0xe
+ str r0, [sp, #0x10]
+ ldr r0, _0222965C ; =0x0000FFFF
+ add r1, #0x94
+ str r0, [sp, #0x14]
+ ldr r0, _02229660 ; =0x000003EA
+ lsr r3, r3, #0x10
+ str r0, [sp, #0x18]
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl MOD08_02218B20
+ add r1, r4, #0
+ add r1, #0xd4
+ str r0, [r1]
+ mov r0, #1
+ str r0, [r4, #0x28]
+_02229622:
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #0xf
+ ble _02229656
+ add r0, r4, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ bl MOD08_02218AF8
+ cmp r0, #1
+ beq _02229656
+ add r4, #0xd4
+ ldr r0, [r4]
+ bl MOD08_02218B08
+ add sp, #0x1c
+ mov r0, #0
+ pop {r3, r4, pc}
+_02229656:
+ mov r0, #1
+ add sp, #0x1c
+ pop {r3, r4, pc}
+ .align 2, 0
+_0222965C: .word 0x0000FFFF
+_02229660: .word 0x000003EA
+
+ thumb_func_start MOD08_02229664
+MOD08_02229664: ; 0x02229664
+ push {r3, r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ ldr r1, [r4, #8]
+ cmp r1, #7
+ bls _02229672
+ b _022297EA
+_02229672:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0222967E: ; jump table
+ .short _0222968E - _0222967E - 2 ; case 0
+ .short _022296CC - _0222967E - 2 ; case 1
+ .short _022296FC - _0222967E - 2 ; case 2
+ .short _02229732 - _0222967E - 2 ; case 3
+ .short _02229742 - _0222967E - 2 ; case 4
+ .short _02229770 - _0222967E - 2 ; case 5
+ .short _0222979E - _0222967E - 2 ; case 6
+ .short _022297CC - _0222967E - 2 ; case 7
+_0222968E:
+ mov r1, #0
+ bl MOD08_0222A008
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_0200C5C0
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #2
+ blt _022296E2
+ ldr r0, [r4, #0x30]
+ mov r1, #0
+ bl FUN_0200C61C
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xc4
+ str r1, [r0]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022297F0
+_022296CC:
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #2
+ bge _022296E4
+_022296E2:
+ b _022297F0
+_022296E4:
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ bl FUN_0200C61C
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xc4
+ str r1, [r0]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022297F0
+_022296FC:
+ add r0, #0xa0
+ ldr r0, [r0]
+ add r2, sp, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ add r1, sp, #0
+ str r0, [sp, #8]
+ mov r0, #0xff
+ str r0, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x30]
+ add r2, #2
+ bl FUN_0200C7A0
+ add r0, sp, #0
+ bl MOD08_02228880
+ add r1, r4, #0
+ add r1, #0xd0
+ str r0, [r1]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022297F0
+_02229732:
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl MOD08_022288E0
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022297F0
+_02229742:
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #6
+ blt _022297F0
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ bl FUN_0200C61C
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xc4
+ str r1, [r0]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022297F0
+_02229770:
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #6
+ blt _022297F0
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_0200C61C
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xc4
+ str r1, [r0]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022297F0
+_0222979E:
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #6
+ blt _022297F0
+ ldr r0, [r4, #0x30]
+ mov r1, #0
+ bl FUN_0200C61C
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xc4
+ str r1, [r0]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022297F0
+_022297CC:
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl MOD08_02228954
+ cmp r0, #0
+ bne _022297F0
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl MOD08_02228970
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _022297F0
+_022297EA:
+ add sp, #0x14
+ mov r0, #0
+ pop {r3, r4, pc}
+_022297F0:
+ mov r0, #1
+ add sp, #0x14
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_022297F8
+MOD08_022297F8: ; 0x022297F8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _02229808
+ cmp r0, #1
+ beq _0222983C
+ b _0222986E
+_02229808:
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ bne _0222981E
+ ldr r1, _0222987C ; =0xFFFFE001
+ add r0, r4, #0
+ add r0, #0x34
+ lsr r2, r1, #0x13
+ mov r3, #0xa
+ bl MOD08_02218008
+ b _0222982C
+_0222981E:
+ add r0, r4, #0
+ ldr r1, _02229880 ; =0x00001FFF
+ ldr r2, _0222987C ; =0xFFFFE001
+ add r0, #0x34
+ mov r3, #0xa
+ bl MOD08_02218008
+_0222982C:
+ ldr r1, [r4, #0x10]
+ mov r0, #1
+ eor r0, r1
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02229876
+_0222983C:
+ ldr r1, [r4, #0x34]
+ ldr r0, [r4, #0x30]
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_0200C898
+ add r0, r4, #0
+ add r0, #0x34
+ bl MOD08_02218058
+ cmp r0, #0
+ bne _02229876
+ ldr r0, [r4, #0xc]
+ cmp r0, #1
+ blt _02229862
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ b _02229876
+_02229862:
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ sub r0, r0, #1
+ str r0, [r4, #8]
+ b _02229876
+_0222986E:
+ mov r0, #0
+ add r4, #0xc4
+ str r0, [r4]
+ pop {r4, pc}
+_02229876:
+ mov r0, #1
+ pop {r4, pc}
+ nop
+_0222987C: .word 0xFFFFE001
+_02229880: .word 0x00001FFF
+
+ thumb_func_start MOD08_02229884
+MOD08_02229884: ; 0x02229884
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0xff
+ bne _02229896
+ add sp, #4
+ mov r0, #0
+ pop {r3, r4, pc}
+_02229896:
+ ldr r0, [r4, #0x30]
+ cmp r0, #0
+ beq _022298BA
+ add r1, sp, #0
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r1, sp, #0
+ mov r0, #2
+ ldrsh r2, [r1, r0]
+ add r0, r4, #0
+ add r0, #0xb8
+ strh r2, [r0]
+ mov r0, #0
+ ldrsh r0, [r1, r0]
+ add r4, #0xba
+ strh r0, [r4]
+_022298BA:
+ mov r0, #1
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD08_022298C0
+MOD08_022298C0: ; 0x022298C0
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _02229912
+ add r0, r4, #0
+ add r0, #0xdc
+ ldr r0, [r0]
+ cmp r0, #0
+ ble _022298EA
+ add r0, r4, #0
+ add r0, #0xdc
+ ldr r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xdc
+ str r1, [r0]
+ ldr r0, [r4, #0x2c]
+ bl FUN_0200BC1C
+ pop {r4, pc}
+_022298EA:
+ add r1, #0x98
+ ldr r1, [r1]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _02229914 ; =0x0222D01C
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ bne _02229900
+ mov r0, #0
+ str r0, [r4, #0x1c]
+_02229900:
+ ldr r0, [r4, #0x24]
+ cmp r0, #1
+ bne _0222990C
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C5A8
+_0222990C:
+ ldr r0, [r4, #0x2c]
+ bl FUN_0200BC1C
+_02229912:
+ pop {r4, pc}
+ .align 2, 0
+_02229914: .word 0x0222D01C
+
+ thumb_func_start MOD08_02229918
+MOD08_02229918: ; 0x02229918
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ mov r1, #0xe0
+ bl AllocFromHeap
+ mov r1, #0
+ mov r2, #0xe0
+ add r4, r0, #0
+ bl MI_CpuFill8
+ cmp r4, #0
+ bne _02229936
+ bl ErrorHandling
+_02229936:
+ add r3, r4, #0
+ add r3, #0x90
+ mov r2, #5
+_0222993C:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222993C
+ mov r0, #0
+ str r0, [r4, #8]
+ str r0, [r4, #0x10]
+ str r0, [r4, #0xc]
+ str r0, [r4, #0x14]
+ str r0, [r4, #0x18]
+ str r0, [r4]
+ str r0, [r4, #4]
+ add r0, r4, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ bl FUN_0200BB34
+ str r0, [r4, #0x2c]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xdc
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl MOD08_02228140
+ str r0, [r4, #0x24]
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0xc4
+ str r2, [r0]
+ add r0, r4, #0
+ mov r1, #0x10
+ add r0, #0x20
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x21
+ strb r2, [r0]
+ bl MOD08_0221268C
+ bl LCRandom
+ lsr r1, r0, #0x1f
+ lsl r0, r0, #0x1f
+ sub r0, r0, r1
+ mov r2, #0x1f
+ ror r0, r2
+ add r0, r1, r0
+ beq _022299AA
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0x22
+ strb r1, [r0]
+ b _022299B2
+_022299AA:
+ add r0, r4, #0
+ sub r2, #0x20
+ add r0, #0x22
+ strb r2, [r0]
+_022299B2:
+ add r0, r4, #0
+ bl MOD08_02229E40
+ add r0, r4, #0
+ bl MOD08_02229F64
+ add r0, r4, #0
+ bl MOD08_02229A90
+ mov r0, #1
+ str r0, [r4, #0x1c]
+ mov r0, #0
+ str r0, [r4, #0x28]
+ mov r2, #0xfa
+ ldr r0, _022299E4 ; =MOD08_022298C0
+ add r1, r4, #0
+ lsl r2, r2, #2
+ bl FUN_0200CA44
+ add r1, r4, #0
+ add r1, #0xcc
+ str r0, [r1]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_022299E4: .word MOD08_022298C0
+
+ thumb_func_start MOD08_022299E8
+MOD08_022299E8: ; 0x022299E8
+ push {r4, lr}
+ add r4, r0, #0
+ bne _022299F2
+ bl ErrorHandling
+_022299F2:
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _022299FC
+ mov r0, #1
+ pop {r4, pc}
+_022299FC:
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02229A00
+MOD08_02229A00: ; 0x02229A00
+ push {r4, lr}
+ add r4, r0, #0
+ bne _02229A0A
+ bl ErrorHandling
+_02229A0A:
+ ldr r0, [r4, #0x28]
+ cmp r0, #0
+ beq _02229A14
+ mov r0, #1
+ pop {r4, pc}
+_02229A14:
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02229A18
+MOD08_02229A18: ; 0x02229A18
+ str r1, [r0, #0x14]
+ bx lr
+
+ thumb_func_start MOD08_02229A1C
+MOD08_02229A1C: ; 0x02229A1C
+ ldr r0, [r0, #0x14]
+ cmp r0, r1
+ bne _02229A26
+ mov r0, #1
+ bx lr
+_02229A26:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_02229A2C
+MOD08_02229A2C: ; 0x02229A2C
+ push {r4, lr}
+ add r4, r0, #0
+ bne _02229A36
+ bl ErrorHandling
+_02229A36:
+ add r0, r4, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r4, #0x2c]
+ bl FUN_0200C398
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C3DC
+ add r0, r4, #0
+ add r0, #0xcc
+ ldr r0, [r0]
+ bl FUN_0200CAB4
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02229A5C
+MOD08_02229A5C: ; 0x02229A5C
+ add r2, r0, #0
+ add r0, #0x98
+ str r1, [r0]
+ mov r0, #0
+ str r0, [r2, #8]
+ str r0, [r2, #0xc]
+ str r0, [r2, #0x10]
+ mov r0, #1
+ add r1, r2, #0
+ str r0, [r2, #0x1c]
+ ldr r0, [r2, #0x30]
+ ldr r3, _02229A7C ; =FUN_0200C7A0
+ add r1, #0xb8
+ add r2, #0xba
+ bx r3
+ nop
+_02229A7C: .word FUN_0200C7A0
+
+ thumb_func_start MOD08_02229A80
+MOD08_02229A80: ; 0x02229A80
+ push {r4, lr}
+ add r4, r0, #0
+ bne _02229A8A
+ bl ErrorHandling
+_02229A8A:
+ add r4, #0x98
+ ldr r0, [r4]
+ pop {r4, pc}
+
+ thumb_func_start MOD08_02229A90
+MOD08_02229A90: ; 0x02229A90
+ push {r4, lr}
+ add r4, r0, #0
+ add r1, r4, #0
+ add r2, r4, #0
+ ldr r0, [r4, #0x30]
+ add r1, #0xb8
+ add r2, #0xba
+ bl FUN_0200C7A0
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ cmp r0, #0x11
+ bls _02229AAE
+ b _02229CF6
+_02229AAE:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02229ABA: ; jump table
+ .short _02229ADE - _02229ABA - 2 ; case 0
+ .short _02229ADE - _02229ABA - 2 ; case 1
+ .short _02229ADE - _02229ABA - 2 ; case 2
+ .short _02229ADE - _02229ABA - 2 ; case 3
+ .short _02229ADE - _02229ABA - 2 ; case 4
+ .short _02229ADE - _02229ABA - 2 ; case 5
+ .short _02229AF6 - _02229ABA - 2 ; case 6
+ .short _02229B1C - _02229ABA - 2 ; case 7
+ .short _02229B50 - _02229ABA - 2 ; case 8
+ .short _02229B76 - _02229ABA - 2 ; case 9
+ .short _02229B9C - _02229ABA - 2 ; case 10
+ .short _02229BC2 - _02229ABA - 2 ; case 11
+ .short _02229BE8 - _02229ABA - 2 ; case 12
+ .short _02229C14 - _02229ABA - 2 ; case 13
+ .short _02229C4C - _02229ABA - 2 ; case 14
+ .short _02229C72 - _02229ABA - 2 ; case 15
+ .short _02229C9E - _02229ABA - 2 ; case 16
+ .short _02229CCA - _02229ABA - 2 ; case 17
+_02229ADE:
+ add r1, r4, #0
+ add r2, r4, #0
+ ldr r0, [r4, #0x30]
+ add r1, #0xbc
+ add r2, #0xbe
+ bl FUN_0200C7A0
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xc8
+ str r1, [r0]
+ b _02229CF6
+_02229AF6:
+ mov r0, #0
+ add r2, r4, #0
+ add r3, r4, #0
+ add r1, r0, #0
+ add r2, #0xbc
+ add r3, #0xbe
+ bl MOD08_02217B1C
+ add r0, r4, #0
+ mov r1, #0x30
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #0x20
+ strh r1, [r0]
+ b _02229CF6
+_02229B1C:
+ add r1, r4, #0
+ add r2, r4, #0
+ ldr r0, [r4, #0x30]
+ add r1, #0xb8
+ add r2, #0xba
+ bl FUN_0200C7A0
+ add r2, r4, #0
+ add r3, r4, #0
+ mov r0, #1
+ mov r1, #4
+ add r2, #0xbc
+ add r3, #0xbe
+ bl MOD08_02217B1C
+ add r0, r4, #0
+ mov r1, #0x30
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #0x20
+ strh r1, [r0]
+ b _02229CF6
+_02229B50:
+ add r2, r4, #0
+ add r3, r4, #0
+ mov r0, #1
+ mov r1, #2
+ add r2, #0xbc
+ add r3, #0xbe
+ bl MOD08_02217B1C
+ add r0, r4, #0
+ mov r1, #0x30
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #0x20
+ strh r1, [r0]
+ b _02229CF6
+_02229B76:
+ add r2, r4, #0
+ add r3, r4, #0
+ mov r0, #0
+ mov r1, #1
+ add r2, #0xbc
+ add r3, #0xbe
+ bl MOD08_02217B1C
+ add r0, r4, #0
+ mov r1, #0x30
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #0x20
+ strh r1, [r0]
+ b _02229CF6
+_02229B9C:
+ add r2, r4, #0
+ add r3, r4, #0
+ mov r0, #1
+ mov r1, #3
+ add r2, #0xbc
+ add r3, #0xbe
+ bl MOD08_02217B1C
+ add r0, r4, #0
+ mov r1, #0x30
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #0x20
+ strh r1, [r0]
+ b _02229CF6
+_02229BC2:
+ add r2, r4, #0
+ add r3, r4, #0
+ mov r0, #1
+ mov r1, #5
+ add r2, #0xbc
+ add r3, #0xbe
+ bl MOD08_02217B1C
+ add r0, r4, #0
+ mov r1, #0x30
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #0x20
+ strh r1, [r0]
+ b _02229CF6
+_02229BE8:
+ add r2, r4, #0
+ add r3, r4, #0
+ mov r0, #0
+ mov r1, #1
+ add r2, #0xbc
+ add r3, #0xbe
+ bl MOD08_02217B1C
+ add r0, r4, #0
+ mov r1, #0x10
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #0x10
+ strh r1, [r0]
+ mov r0, #0xc
+ add r4, #0xc0
+ str r0, [r4]
+ pop {r4, pc}
+_02229C14:
+ add r2, r4, #0
+ add r3, r4, #0
+ mov r0, #0
+ mov r1, #1
+ add r2, #0xbc
+ add r3, #0xbe
+ bl MOD08_02217B1C
+ add r0, r4, #0
+ mov r1, #0x20
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbc
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbc
+ sub r1, #0x14
+ strh r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #0x26
+ strh r1, [r0]
+ mov r0, #0x10
+ add r4, #0xc0
+ str r0, [r4]
+ pop {r4, pc}
+_02229C4C:
+ add r0, r4, #0
+ mov r1, #0x80
+ add r0, #0xbc
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0x40
+ add r0, #0xbe
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0x20
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #0x20
+ strh r1, [r0]
+ b _02229CF6
+_02229C72:
+ add r2, r4, #0
+ add r3, r4, #0
+ mov r0, #0
+ mov r1, #1
+ add r2, #0xbc
+ add r3, #0xbe
+ bl MOD08_02217B1C
+ add r0, r4, #0
+ mov r1, #0x40
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #8
+ strh r1, [r0]
+ mov r0, #0x10
+ add r4, #0xc0
+ str r0, [r4]
+ pop {r4, pc}
+_02229C9E:
+ add r2, r4, #0
+ add r3, r4, #0
+ mov r0, #1
+ mov r1, #3
+ add r2, #0xbc
+ add r3, #0xbe
+ bl MOD08_02217B1C
+ add r0, r4, #0
+ mov r1, #0x40
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #8
+ strh r1, [r0]
+ mov r0, #0x10
+ add r4, #0xc0
+ str r0, [r4]
+ pop {r4, pc}
+_02229CCA:
+ add r2, r4, #0
+ add r3, r4, #0
+ mov r0, #1
+ mov r1, #5
+ add r2, #0xbc
+ add r3, #0xbe
+ bl MOD08_02217B1C
+ add r0, r4, #0
+ mov r1, #0x40
+ add r0, #0xc8
+ str r1, [r0]
+ mov r0, #0xbe
+ ldrsh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xbe
+ add r1, #8
+ strh r1, [r0]
+ mov r0, #0x10
+ add r4, #0xc0
+ str r0, [r4]
+ pop {r4, pc}
+_02229CF6:
+ mov r0, #0x14
+ add r4, #0xc0
+ str r0, [r4]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02229D00
+MOD08_02229D00: ; 0x02229D00
+ push {r4, lr}
+ add r0, #0x90
+ ldr r0, [r0]
+ add r3, r1, #0
+ add r4, r2, #0
+ cmp r0, #0x11
+ bls _02229D10
+ b _02229E3C
+_02229D10:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02229D1C: ; jump table
+ .short _02229D40 - _02229D1C - 2 ; case 0
+ .short _02229D56 - _02229D1C - 2 ; case 1
+ .short _02229D6C - _02229D1C - 2 ; case 2
+ .short _02229D98 - _02229D1C - 2 ; case 3
+ .short _02229D82 - _02229D1C - 2 ; case 4
+ .short _02229DAE - _02229D1C - 2 ; case 5
+ .short _02229DC4 - _02229D1C - 2 ; case 6
+ .short _02229DCE - _02229D1C - 2 ; case 7
+ .short _02229DD8 - _02229D1C - 2 ; case 8
+ .short _02229DE2 - _02229D1C - 2 ; case 9
+ .short _02229DF0 - _02229D1C - 2 ; case 10
+ .short _02229DFE - _02229D1C - 2 ; case 11
+ .short _02229E0C - _02229D1C - 2 ; case 12
+ .short _02229E1A - _02229D1C - 2 ; case 13
+ .short _02229E28 - _02229D1C - 2 ; case 14
+ .short _02229E32 - _02229D1C - 2 ; case 15
+ .short _02229E32 - _02229D1C - 2 ; case 16
+ .short _02229E32 - _02229D1C - 2 ; case 17
+_02229D40:
+ mov r0, #0
+ add r2, r3, #0
+ add r1, r0, #0
+ add r3, r4, #0
+ bl MOD08_02217B1C
+ mov r0, #0
+ ldrsh r0, [r4, r0]
+ add r0, #0x20
+ strh r0, [r4]
+ pop {r4, pc}
+_02229D56:
+ add r2, r3, #0
+ mov r0, #0
+ mov r1, #1
+ add r3, r4, #0
+ bl MOD08_02217B1C
+ mov r0, #0
+ ldrsh r0, [r4, r0]
+ add r0, #0x26
+ strh r0, [r4]
+ pop {r4, pc}
+_02229D6C:
+ add r2, r3, #0
+ mov r0, #1
+ mov r1, #2
+ add r3, r4, #0
+ bl MOD08_02217B1C
+ mov r0, #0
+ ldrsh r0, [r4, r0]
+ add r0, #0x20
+ strh r0, [r4]
+ pop {r4, pc}
+_02229D82:
+ add r2, r3, #0
+ mov r0, #1
+ mov r1, #4
+ add r3, r4, #0
+ bl MOD08_02217B1C
+ mov r0, #0
+ ldrsh r0, [r4, r0]
+ add r0, #0x20
+ strh r0, [r4]
+ pop {r4, pc}
+_02229D98:
+ add r2, r3, #0
+ mov r0, #1
+ mov r1, #3
+ add r3, r4, #0
+ bl MOD08_02217B1C
+ mov r0, #0
+ ldrsh r0, [r4, r0]
+ add r0, #0x26
+ strh r0, [r4]
+ pop {r4, pc}
+_02229DAE:
+ add r2, r3, #0
+ mov r0, #1
+ mov r1, #5
+ add r3, r4, #0
+ bl MOD08_02217B1C
+ mov r0, #0
+ ldrsh r0, [r4, r0]
+ add r0, #0x26
+ strh r0, [r4]
+ pop {r4, pc}
+_02229DC4:
+ mov r0, #0xa
+ strh r0, [r3]
+ mov r0, #0x64
+ strh r0, [r4]
+ pop {r4, pc}
+_02229DCE:
+ mov r0, #0xa
+ strh r0, [r3]
+ mov r0, #0x64
+ strh r0, [r4]
+ pop {r4, pc}
+_02229DD8:
+ mov r0, #0xa
+ strh r0, [r3]
+ mov r0, #0x64
+ strh r0, [r4]
+ pop {r4, pc}
+_02229DE2:
+ mov r0, #0
+ add r2, r3, #0
+ add r1, r0, #0
+ add r3, r4, #0
+ bl MOD08_02217B1C
+ pop {r4, pc}
+_02229DF0:
+ mov r0, #0
+ add r2, r3, #0
+ add r1, r0, #0
+ add r3, r4, #0
+ bl MOD08_02217B1C
+ pop {r4, pc}
+_02229DFE:
+ mov r0, #0
+ add r2, r3, #0
+ add r1, r0, #0
+ add r3, r4, #0
+ bl MOD08_02217B1C
+ pop {r4, pc}
+_02229E0C:
+ mov r0, #0
+ add r2, r3, #0
+ add r1, r0, #0
+ add r3, r4, #0
+ bl MOD08_02217B1C
+ pop {r4, pc}
+_02229E1A:
+ mov r0, #0
+ add r2, r3, #0
+ add r1, r0, #0
+ add r3, r4, #0
+ bl MOD08_02217B1C
+ pop {r4, pc}
+_02229E28:
+ mov r0, #0xe6
+ strh r0, [r3]
+ mov r0, #0x20
+ strh r0, [r4]
+ pop {r4, pc}
+_02229E32:
+ mov r0, #0x1d
+ mvn r0, r0
+ strh r0, [r3]
+ mov r0, #0xa0
+ strh r0, [r4]
+_02229E3C:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_02229E40
+MOD08_02229E40: ; 0x02229E40
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r5, r0, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r5, #0x2c]
+ mov r2, #0xa
+ bl FUN_0200BBF0
+ add r0, r5, #0
+ add r0, #0xa8
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02229E70
+ add r0, r5, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ bl FUN_0200BB68
+ mov r2, #0x11
+ mov r1, #0
+ lsl r2, r2, #0x10
+ bl FUN_02008D24
+_02229E70:
+ mov r1, #0
+ add r2, sp, #0x1c
+ mov r0, #0xa
+_02229E76:
+ add r1, r1, #1
+ stmia r2!, {r0}
+ cmp r1, #6
+ blt _02229E76
+ mov r0, #0
+ str r0, [sp, #0x2c]
+ str r0, [sp, #0x30]
+ add r0, r5, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r5, #0x2c]
+ add r2, sp, #0x1c
+ bl FUN_0200BF60
+ add r0, r5, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ mov r1, #0
+ bl MOD08_022281DC
+ add r6, r0, #0
+ add r0, r5, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ mov r1, #1
+ bl MOD08_022281DC
+ add r4, r0, #0
+ add r0, r5, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ mov r1, #2
+ bl MOD08_022281DC
+ add r7, r0, #0
+ add r0, r5, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ mov r1, #3
+ bl MOD08_022281DC
+ str r0, [sp, #0x18]
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0x9c
+ ldr r1, [r0]
+ ldr r0, _02229F60 ; =0x00001770
+ mov r2, #0x1b
+ add r0, r1, r0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r5, #0x2c]
+ add r3, r6, #0
+ bl FUN_0200C00C
+ mov r0, #0x1b
+ str r0, [sp]
+ add r2, r5, #0
+ str r4, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ add r0, #0x9c
+ ldr r1, [r0]
+ ldr r0, _02229F60 ; =0x00001770
+ add r2, #0xac
+ add r0, r1, r0
+ str r0, [sp, #0x14]
+ add r0, r5, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ ldr r2, [r2]
+ ldr r3, [r5, #0x2c]
+ mov r1, #2
+ bl FUN_0200C0DC
+ mov r0, #1
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x9c
+ ldr r1, [r0]
+ ldr r0, _02229F60 ; =0x00001770
+ mov r2, #0x1b
+ add r0, r1, r0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r5, #0x2c]
+ add r3, r7, #0
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x9c
+ ldr r1, [r0]
+ ldr r0, _02229F60 ; =0x00001770
+ ldr r3, [sp, #0x18]
+ add r0, r1, r0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r5, #0x2c]
+ mov r2, #0x1b
+ bl FUN_0200C13C
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02229F60: .word 0x00001770
+
+ thumb_func_start MOD08_02229F64
+MOD08_02229F64: ; 0x02229F64
+ push {r3, r4, lr}
+ sub sp, #0x34
+ add r2, sp, #0
+ add r1, sp, #0
+ add r2, #2
+ add r4, r0, #0
+ bl MOD08_02229D00
+ mov r0, #0
+ add r1, sp, #0
+ strh r0, [r1, #4]
+ strh r0, [r1, #6]
+ mov r1, #1
+ str r1, [sp, #0x10]
+ add r1, r4, #0
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ add r1, #0xa4
+ ldr r1, [r1]
+ ldr r2, _02229FE0 ; =0x00001770
+ str r1, [sp, #0x2c]
+ str r0, [sp, #0x30]
+ add r3, sp, #0
+_02229F92:
+ add r1, r4, #0
+ add r1, #0x9c
+ ldr r1, [r1]
+ add r0, r0, #1
+ add r1, r1, r2
+ str r1, [r3, #0x14]
+ add r3, r3, #4
+ cmp r0, #6
+ blt _02229F92
+ add r0, r4, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ ldr r1, [r4, #0x2c]
+ add r2, sp, #0
+ bl FUN_0200C154
+ str r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ bl FUN_0200C840
+ ldr r0, [r4, #0x30]
+ mov r1, #0
+ bl FUN_0200C61C
+ ldr r0, [r4, #0x30]
+ mov r1, #0
+ bl FUN_0200C5C0
+ ldr r0, [r4, #0x30]
+ bl FUN_0200C5A8
+ bl MOD08_0221268C
+ add sp, #0x34
+ pop {r3, r4, pc}
+ .align 2, 0
+_02229FE0: .word 0x00001770
+
+ thumb_func_start MOD08_02229FE4
+MOD08_02229FE4: ; 0x02229FE4
+ ldr r3, _02229FEC ; =FUN_0200C644
+ ldr r0, [r0, #0x30]
+ bx r3
+ nop
+_02229FEC: .word FUN_0200C644
+
+ thumb_func_start MOD08_02229FF0
+MOD08_02229FF0: ; 0x02229FF0
+ ldr r3, _02229FF8 ; =FUN_0200C714
+ ldr r0, [r0, #0x30]
+ bx r3
+ nop
+_02229FF8: .word FUN_0200C714
+
+ thumb_func_start MOD08_02229FFC
+MOD08_02229FFC: ; 0x02229FFC
+ ldr r3, _0222A004 ; =FUN_0200C898
+ ldr r0, [r0, #0x30]
+ bx r3
+ nop
+_0222A004: .word FUN_0200C898
+
+ thumb_func_start MOD08_0222A008
+MOD08_0222A008: ; 0x0222A008
+ str r1, [r0, #0x24]
+ bx lr
+
+ thumb_func_start MOD08_0222A00C
+MOD08_0222A00C: ; 0x0222A00C
+ ldr r3, _0222A014 ; =FUN_0200C6C4
+ ldr r0, [r0, #0x30]
+ bx r3
+ nop
+_0222A014: .word FUN_0200C6C4
+
+ thumb_func_start MOD08_0222A018
+MOD08_0222A018: ; 0x0222A018
+ ldr r3, _0222A020 ; =FUN_0200C6B0
+ ldr r0, [r0, #0x30]
+ bx r3
+ nop
+_0222A020: .word FUN_0200C6B0
+
+ thumb_func_start MOD08_0222A024
+MOD08_0222A024: ; 0x0222A024
+ add r0, #0xdc
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A02C
+MOD08_0222A02C: ; 0x0222A02C
+ push {r3, lr}
+ sub r1, r1, r3
+ neg r1, r1
+ sub r0, r0, r2
+ lsl r1, r1, #0x10
+ lsl r0, r0, #0x10
+ asr r1, r1, #0x10
+ add r2, r1, #0
+ asr r0, r0, #0x10
+ mul r2, r1
+ add r1, r0, #0
+ mul r1, r0
+ add r0, r2, r1
+ lsl r0, r0, #0xc
+ bl FX_Sqrt
+ asr r1, r0, #0xb
+ lsr r1, r1, #0x14
+ add r1, r0, r1
+ asr r0, r1, #0xc
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A058
+MOD08_0222A058: ; 0x0222A058
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02029CE4
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_02029CE8
+ add r1, r0, #0
+ add r0, r4, #0
+ mov r2, #0xbe
+ mov r3, #0x46
+ bl MOD08_0222A02C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A078
+MOD08_0222A078: ; 0x0222A078
+ push {r4, lr}
+ sub sp, #8
+ ldr r3, _0222A0D0 ; =0x0222D4D8
+ add r4, r0, #0
+ add r2, sp, #0
+ mov r1, #7
+_0222A084:
+ ldrb r0, [r3]
+ add r3, r3, #1
+ strb r0, [r2]
+ add r2, r2, #1
+ sub r1, r1, #1
+ bne _0222A084
+ add r0, r4, #0
+ bl FUN_02029CE0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02086018
+ cmp r0, #0
+ bne _0222A0C6
+ add r0, r4, #0
+ bl MOD08_0222A058
+ cmp r0, #0x38
+ blt _0222A0B0
+ mov r0, #3
+ b _0222A0BE
+_0222A0B0:
+ add r0, r0, #1
+ mov r1, #0x14
+ bl _s32_div_f
+ cmp r0, #3
+ blt _0222A0BE
+ mov r0, #3
+_0222A0BE:
+ add r1, sp, #0
+ add sp, #8
+ ldrb r0, [r1, r0]
+ pop {r4, pc}
+_0222A0C6:
+ add r0, sp, #0
+ ldrb r0, [r0, #1]
+ add sp, #8
+ pop {r4, pc}
+ nop
+_0222A0D0: .word 0x0222D4D8
+
+ thumb_func_start MOD08_0222A0D4
+MOD08_0222A0D4: ; 0x0222A0D4
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ mov r1, #0x48
+ add r6, r0, #0
+ bl AllocFromHeap
+ add r4, r0, #0
+ bne _0222A0EC
+ bl ErrorHandling
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_0222A0EC:
+ bl MOD08_0221268C
+ str r6, [r4]
+ cmp r5, #0
+ beq _0222A0FA
+ ldr r0, [r5]
+ str r0, [r4, #4]
+_0222A0FA:
+ mov r1, #0
+ add r2, r4, #0
+ add r0, r1, #0
+_0222A100:
+ add r1, r1, #1
+ str r0, [r2, #8]
+ add r2, r2, #4
+ cmp r1, #0x10
+ blt _0222A100
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A110
+MOD08_0222A110: ; 0x0222A110
+ push {r4, r5, r6, lr}
+ mov r4, #0
+ add r5, r4, #0
+ add r3, r0, #0
+_0222A118:
+ ldr r2, [r3, #8]
+ cmp r2, #0
+ bne _0222A138
+ add r4, r0, #0
+ ldr r0, [r0]
+ add r4, #8
+ lsl r6, r5, #2
+ bl MOD08_0222A1A0
+ str r0, [r4, r6]
+ ldr r0, [r4, r6]
+ mov r1, #0
+ str r1, [r0, #0x18]
+ ldr r4, [r4, r6]
+ str r5, [r4]
+ b _0222A140
+_0222A138:
+ add r5, r5, #1
+ add r3, r3, #4
+ cmp r5, #0x10
+ blt _0222A118
+_0222A140:
+ cmp r4, #0
+ bne _0222A148
+ bl ErrorHandling
+_0222A148:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_0222A14C
+MOD08_0222A14C: ; 0x0222A14C
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+_0222A154:
+ ldr r0, [r5, #8]
+ cmp r0, #0
+ beq _0222A15E
+ bl FreeToHeap
+_0222A15E:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0x10
+ blt _0222A154
+ add r0, r6, #0
+ bl FreeToHeap
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A170
+MOD08_0222A170: ; 0x0222A170
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_0222A176:
+ ldr r0, [r5, #8]
+ cmp r0, #0
+ beq _0222A194
+ ldr r0, [r0, #0x10]
+ bl MOD08_02215B40
+ ldr r1, [r5, #8]
+ ldr r0, [r1, #0x20]
+ cmp r0, #0
+ beq _0222A194
+ ldr r0, [r1, #0x18]
+ cmp r0, #0
+ beq _0222A194
+ bl FUN_0200CAB4
+_0222A194:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0x10
+ blt _0222A176
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A1A0
+MOD08_0222A1A0: ; 0x0222A1A0
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ mov r1, #0x24
+ add r5, r0, #0
+ bl AllocFromHeap
+ add r4, r0, #0
+ bne _0222A1B8
+ bl ErrorHandling
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_0222A1B8:
+ str r5, [r4, #4]
+ ldr r1, [r6]
+ ldr r0, [r6, #4]
+ str r1, [r4, #8]
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ bl MOD08_0222A260
+ str r0, [r4, #0x1c]
+ ldr r0, [r4, #4]
+ ldr r1, [r4, #8]
+ mov r2, #1
+ bl MOD08_02215AA4
+ str r0, [r4, #0x10]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A1DC
+MOD08_0222A1DC: ; 0x0222A1DC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #1
+ str r1, [r4, #0x20]
+ ldr r1, _0222A1FC ; =MOD08_0222A258
+ bl MOD08_0222A22C
+ mov r2, #0xfa
+ ldr r0, _0222A200 ; =MOD08_0222A208
+ add r1, r4, #0
+ lsl r2, r2, #2
+ bl FUN_0200CA44
+ str r0, [r4, #0x18]
+ pop {r4, pc}
+ nop
+_0222A1FC: .word MOD08_0222A258
+_0222A200: .word MOD08_0222A208
+
+ thumb_func_start MOD08_0222A204
+MOD08_0222A204: ; 0x0222A204
+ ldr r0, [r0, #0x20]
+ bx lr
+
+ thumb_func_start MOD08_0222A208
+MOD08_0222A208: ; 0x0222A208
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x10]
+ bl FUN_020133C8
+ cmp r0, #0
+ bne _0222A228
+ mov r0, #0
+ str r0, [r4, #0x20]
+ ldr r0, [r4, #0x10]
+ bl MOD08_02215B40
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0222A228:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A22C
+MOD08_0222A22C: ; 0x0222A22C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x1c]
+ add r6, r1, #0
+ mov r4, #0
+ cmp r0, #0
+ ble _0222A24E
+_0222A23A:
+ ldr r0, [r5, #0x10]
+ add r1, r4, #0
+ add r2, r6, #0
+ add r3, r5, #0
+ bl FUN_020133AC
+ ldr r0, [r5, #0x1c]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _0222A23A
+_0222A24E:
+ ldr r0, [r5, #0x10]
+ ldr r1, [r5, #0xc]
+ bl FUN_02013440
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD08_0222A258
+MOD08_0222A258: ; 0x0222A258
+ ldr r3, _0222A25C ; =FUN_0201341C
+ bx r3
+ .align 2, 0
+_0222A25C: .word FUN_0201341C
+
+ thumb_func_start MOD08_0222A260
+MOD08_0222A260: ; 0x0222A260
+ push {r3, r4, r5, lr}
+ sub sp, #0x58
+ ldr r4, _0222A290 ; =0x0222D4E0
+ add r5, r0, #0
+ add r3, sp, #0
+ mov r2, #0xb
+_0222A26C:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222A26C
+ sub r0, r5, #5
+ cmp r0, #0x16
+ blo _0222A284
+ bl ErrorHandling
+ add sp, #0x58
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_0222A284:
+ lsl r1, r0, #2
+ add r0, sp, #0
+ ldr r0, [r0, r1]
+ add sp, #0x58
+ pop {r3, r4, r5, pc}
+ nop
+_0222A290: .word 0x0222D4E0
+
+ thumb_func_start MOD08_0222A294
+MOD08_0222A294: ; 0x0222A294
+ push {r3, lr}
+ add r3, r1, #0
+ ldr r1, [r0]
+ mov r2, #0
+ bl MOD08_0222A2B4
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A2A4
+MOD08_0222A2A4: ; 0x0222A2A4
+ push {r3, lr}
+ add r3, r1, #0
+ ldr r1, [r0, #4]
+ mov r2, #1
+ bl MOD08_0222A2B4
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A2B4
+MOD08_0222A2B4: ; 0x0222A2B4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ add r7, r2, #0
+ str r3, [sp, #0x10]
+ bl FUN_020080E0
+ ldr r0, [r5, #4]
+ lsl r1, r0, #1
+ add r1, r5, r1
+ ldrh r6, [r1, #0x28]
+ add r1, r5, r0
+ add r1, #0x30
+ ldrb r1, [r1]
+ add r2, r5, r0
+ add r2, #0x38
+ str r1, [sp, #0x1c]
+ add r1, r5, r0
+ lsl r0, r0, #2
+ ldrb r2, [r2]
+ add r0, r5, r0
+ add r1, #0x34
+ ldr r0, [r0, #0x3c]
+ ldrb r1, [r1]
+ str r2, [sp, #0x18]
+ str r0, [sp, #0x14]
+ cmp r7, #0
+ beq _0222A30A
+ add r0, r5, r4
+ add r0, #0x4c
+ ldrb r2, [r0]
+ mov r0, #1
+ tst r0, r2
+ beq _0222A306
+ mov r4, #0
+ b _0222A31C
+_0222A306:
+ mov r4, #2
+ b _0222A31C
+_0222A30A:
+ add r0, r5, r4
+ add r0, #0x4c
+ ldrb r2, [r0]
+ mov r0, #1
+ tst r0, r2
+ beq _0222A31A
+ mov r4, #2
+ b _0222A31C
+_0222A31A:
+ mov r4, #0
+_0222A31C:
+ lsl r0, r1, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldr r0, [sp, #0x18]
+ ldr r2, [sp, #0x1c]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x14]
+ lsl r1, r6, #0x10
+ lsl r2, r2, #0x18
+ lsl r3, r4, #0x18
+ str r0, [sp, #8]
+ add r0, sp, #0x28
+ lsr r1, r1, #0x10
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02068C00
+ ldr r0, [r5]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ bl FUN_020081C0
+ add r7, r0, #0
+ add r3, sp, #0x28
+ add r2, r7, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r5]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ bl FUN_020080D0
+ ldr r0, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r4, [sp, #8]
+ ldrh r0, [r7, #6]
+ str r0, [sp, #0xc]
+ ldr r3, [r5]
+ ldrh r0, [r7]
+ lsl r3, r3, #2
+ add r3, r5, r3
+ ldr r3, [r3, #8]
+ ldrh r1, [r7, #2]
+ ldr r3, [r3]
+ bl FUN_02012560
+ ldr r1, [r5]
+ ldr r3, [sp, #0x18]
+ lsl r1, r1, #2
+ add r1, r5, r1
+ lsl r2, r4, #0x18
+ lsl r3, r3, #0x18
+ ldrh r0, [r7]
+ ldr r1, [r1, #8]
+ lsr r2, r2, #0x18
+ str r0, [r1, #4]
+ ldr r1, [r5]
+ ldrh r0, [r7, #4]
+ lsl r1, r1, #2
+ add r1, r5, r1
+ ldr r1, [r1, #8]
+ lsr r3, r3, #0x18
+ str r0, [r1, #8]
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x1c]
+ str r0, [sp]
+ lsl r0, r6, #0x10
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x18
+ bl FUN_02068E88
+ ldr r1, [r5]
+ lsl r1, r1, #2
+ add r1, r5, r1
+ ldr r1, [r1, #8]
+ str r0, [r1, #0xc]
+ ldr r0, [r5]
+ lsl r1, r0, #2
+ add r1, r5, r1
+ ldr r1, [r1, #8]
+ add r0, r5, r0
+ ldr r1, [r1, #0xc]
+ add r0, #0x4c
+ lsl r1, r1, #0x18
+ asr r7, r1, #0x18
+ ldrb r0, [r0]
+ mov r1, #1
+ bl MOD08_0222A6A4
+ str r0, [sp, #0x20]
+ ldr r0, [r5]
+ ldr r2, [sp, #0x20]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ mov r1, #1
+ add r2, r2, r7
+ bl FUN_02007558
+ cmp r4, #2
+ bne _0222A48E
+ mov r0, #1
+ str r0, [sp]
+ add r0, sp, #0x24
+ add r0, #2
+ mov r1, #0x8a
+ mov r2, #0
+ add r3, r6, #0
+ bl ReadFromNarcMemberByIdPair
+ mov r0, #1
+ str r0, [sp]
+ add r0, sp, #0x24
+ add r0, #1
+ mov r1, #0x90
+ mov r2, #0
+ add r3, r6, #0
+ bl ReadFromNarcMemberByIdPair
+ mov r0, #1
+ str r0, [sp]
+ add r0, sp, #0x24
+ mov r1, #0x8e
+ mov r2, #0
+ add r3, r6, #0
+ bl ReadFromNarcMemberByIdPair
+ ldr r0, [r5]
+ add r2, sp, #0x24
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldrb r2, [r2]
+ ldr r0, [r0, #0x18]
+ mov r1, #0x2e
+ bl FUN_02007558
+ ldr r0, [r5]
+ ldr r2, [sp, #0x20]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ add r2, #0x24
+ ldr r0, [r0, #0x18]
+ mov r1, #0x14
+ str r2, [sp, #0x20]
+ bl FUN_02007558
+ ldr r0, [r5]
+ add r3, sp, #0x24
+ lsl r0, r0, #2
+ mov r2, #1
+ add r0, r5, r0
+ ldrsb r2, [r3, r2]
+ ldr r0, [r0, #0x18]
+ mov r1, #0x15
+ bl FUN_02007558
+ ldr r0, [r5]
+ mov r2, #0x24
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ mov r1, #0x16
+ sub r2, r2, r7
+ bl FUN_02007558
+ ldr r0, [r5]
+ add r3, sp, #0x24
+ lsl r0, r0, #2
+ mov r2, #2
+ add r0, r5, r0
+ ldrsb r2, [r3, r2]
+ ldr r0, [r0, #0x18]
+ mov r1, #0x29
+ bl FUN_02007558
+_0222A48E:
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A494
+MOD08_0222A494: ; 0x0222A494
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ ldr r0, [r5]
+ str r1, [sp, #0x10]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ bl FUN_0200813C
+ ldr r0, [r5]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ bl FUN_020081C0
+ add r4, r0, #0
+ ldr r0, [r5]
+ lsl r1, r0, #1
+ add r1, r5, r1
+ ldrh r1, [r1, #0x28]
+ lsl r3, r0, #2
+ str r1, [sp, #0x1c]
+ add r1, r5, r0
+ add r1, #0x30
+ ldrb r1, [r1]
+ str r1, [sp, #0x18]
+ add r1, r5, r0
+ add r1, #0x38
+ ldrb r1, [r1]
+ add r0, r5, r0
+ add r0, #0x4c
+ str r1, [sp, #0x14]
+ add r1, r5, r3
+ ldr r7, [r1, #0x3c]
+ ldrb r1, [r0]
+ mov r0, #1
+ tst r0, r1
+ beq _0222A4E6
+ mov r6, #2
+ b _0222A4E8
+_0222A4E6:
+ mov r6, #0
+_0222A4E8:
+ str r7, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r6, [sp, #8]
+ ldrh r0, [r4, #6]
+ add r3, r5, r3
+ ldr r2, [sp, #0x10]
+ str r0, [sp, #0xc]
+ ldr r3, [r3, #8]
+ ldrh r0, [r4]
+ ldrh r1, [r4, #2]
+ ldr r3, [r3]
+ bl FUN_02012560
+ ldr r1, [r5]
+ ldrh r0, [r4]
+ lsl r1, r1, #2
+ add r1, r5, r1
+ ldr r1, [r1, #8]
+ ldr r3, [sp, #0x14]
+ str r0, [r1, #4]
+ ldr r1, [r5]
+ lsl r2, r6, #0x18
+ lsl r1, r1, #2
+ add r1, r5, r1
+ lsl r3, r3, #0x18
+ ldrh r0, [r4, #4]
+ ldr r1, [r1, #8]
+ lsr r2, r2, #0x18
+ str r0, [r1, #8]
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ lsl r0, r0, #0x10
+ lsl r1, r1, #0x18
+ str r7, [sp]
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02068E88
+ ldr r1, [r5]
+ lsl r1, r1, #2
+ add r1, r5, r1
+ ldr r1, [r1, #8]
+ str r0, [r1, #0xc]
+ ldr r0, [r5]
+ mov r1, #1
+ lsl r4, r0, #2
+ add r0, r5, r0
+ add r0, #0x4c
+ ldrb r0, [r0]
+ bl MOD08_0222A6A4
+ add r1, r5, r4
+ add r2, r0, #0
+ ldr r0, [r1, #8]
+ ldr r3, [r0, #0xc]
+ ldr r0, [r1, #0x18]
+ mov r1, #1
+ add r2, r3, r2
+ bl FUN_02007558
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD08_0222A568
+MOD08_0222A568: ; 0x0222A568
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r6, r1, #0
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ bl FUN_020080E0
+ mov r0, #0x75
+ add r2, sp, #0
+ strh r0, [r2, #4]
+ mov r0, #0xd2
+ strh r0, [r2, #8]
+ mov r0, #0
+ strh r0, [r2, #0xa]
+ strb r0, [r2, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [r5]
+ add r1, r5, r0
+ add r1, #0x4c
+ ldrb r3, [r1]
+ mov r1, #1
+ tst r1, r3
+ beq _0222A5A4
+ mov r1, #0xd1
+ strh r1, [r2, #6]
+ mov r4, #0x87
+ b _0222A5AA
+_0222A5A4:
+ mov r1, #0xd0
+ strh r1, [r2, #6]
+ mov r4, #0x86
+_0222A5AA:
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ bl FUN_020081C0
+ add r7, r0, #0
+ add r3, sp, #4
+ add r2, r7, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r5]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ bl FUN_020080D0
+ ldr r3, [r5]
+ ldrh r0, [r7]
+ lsl r3, r3, #2
+ add r3, r5, r3
+ ldr r3, [r3, #8]
+ ldrh r1, [r7, #2]
+ ldr r3, [r3]
+ add r2, r6, #0
+ bl FUN_02012420
+ ldr r2, [r5]
+ add r1, sp, #0
+ lsl r2, r2, #2
+ add r2, r5, r2
+ ldrh r0, [r1, #4]
+ ldr r2, [r2, #8]
+ str r0, [r2, #4]
+ ldr r0, [r5]
+ ldrh r1, [r1, #8]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #8]
+ add r2, r4, #0
+ str r1, [r0, #8]
+ add r0, sp, #0
+ mov r1, #0x79
+ bl ReadWholeNarcMemberByIdPair
+ add r0, sp, #0
+ ldrb r1, [r0]
+ ldr r0, [r5]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #8]
+ str r1, [r0, #0xc]
+ ldr r0, [r5]
+ mov r1, #1
+ lsl r4, r0, #2
+ add r0, r5, r0
+ add r0, #0x4c
+ ldrb r0, [r0]
+ bl MOD08_0222A6A4
+ add r2, r5, r4
+ ldr r1, [r2, #8]
+ ldr r1, [r1, #0xc]
+ add r4, r1, r0
+ ldr r0, [r2, #0x18]
+ mov r1, #1
+ add r2, r4, #0
+ bl FUN_02007558
+ ldr r1, [r5]
+ mov r2, #1
+ add r0, r5, r1
+ add r0, #0x4c
+ ldrb r0, [r0]
+ tst r0, r2
+ beq _0222A69E
+ lsl r0, r1, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ mov r1, #0x2e
+ bl FUN_02007558
+ ldr r0, [r5]
+ add r2, sp, #0
+ ldrb r3, [r2]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r2, #0x24
+ sub r2, r2, r3
+ ldr r0, [r0, #0x18]
+ mov r1, #0x14
+ add r2, r4, r2
+ bl FUN_02007558
+ ldr r0, [r5]
+ mov r1, #0x15
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r5]
+ add r2, sp, #0
+ lsl r0, r0, #2
+ ldrb r3, [r2]
+ add r0, r5, r0
+ mov r2, #0x24
+ ldr r0, [r0, #0x18]
+ mov r1, #0x16
+ sub r2, r2, r3
+ bl FUN_02007558
+ ldr r0, [r5]
+ mov r1, #0x29
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x18]
+ mov r2, #0
+ bl FUN_02007558
+_0222A69E:
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD08_0222A6A4
+MOD08_0222A6A4: ; 0x0222A6A4
+ cmp r1, #0
+ bne _0222A6B0
+ lsl r1, r0, #2
+ ldr r0, _0222A6C0 ; =0x0222D538
+ ldrsh r0, [r0, r1]
+ bx lr
+_0222A6B0:
+ mov r2, #6
+ mul r2, r0
+ ldr r0, _0222A6C4 ; =0x0222D550
+ lsl r1, r1, #1
+ add r0, r0, r2
+ ldrsh r0, [r1, r0]
+ bx lr
+ nop
+_0222A6C0: .word 0x0222D538
+_0222A6C4: .word 0x0222D550
+
+ thumb_func_start MOD08_0222A6C8
+MOD08_0222A6C8: ; 0x0222A6C8
+ ldr r1, _0222A75C ; =0x0000013B
+ cmp r0, r1
+ bhi _0222A6F6
+ bhs _0222A754
+ cmp r0, #0x7d
+ bhi _0222A6E4
+ bhs _0222A754
+ cmp r0, #0x63
+ bhi _0222A6DE
+ beq _0222A754
+ b _0222A758
+_0222A6DE:
+ cmp r0, #0x78
+ beq _0222A754
+ b _0222A758
+_0222A6E4:
+ cmp r0, #0xc9
+ bhi _0222A6F0
+ bhs _0222A754
+ cmp r0, #0x9f
+ beq _0222A754
+ b _0222A758
+_0222A6F0:
+ cmp r0, #0xd7
+ beq _0222A754
+ b _0222A758
+_0222A6F6:
+ add r2, r1, #0
+ add r2, #0x4a
+ cmp r0, r2
+ bhi _0222A71E
+ add r2, r1, #0
+ add r2, #0x4a
+ cmp r0, r2
+ bhs _0222A754
+ add r2, r1, #0
+ add r2, #0x14
+ cmp r0, r2
+ bhi _0222A716
+ add r1, #0x14
+ cmp r0, r1
+ beq _0222A754
+ b _0222A758
+_0222A716:
+ add r1, #0x2c
+ cmp r0, r1
+ beq _0222A754
+ b _0222A758
+_0222A71E:
+ add r2, r1, #0
+ add r2, #0x98
+ cmp r0, r2
+ bhi _0222A74E
+ add r2, r1, #0
+ add r2, #0x98
+ cmp r0, r2
+ bhs _0222A754
+ add r2, r1, #0
+ add r2, #0x5c
+ cmp r0, r2
+ bhi _0222A758
+ add r2, r1, #0
+ add r2, #0x5b
+ cmp r0, r2
+ blo _0222A758
+ add r2, r1, #0
+ add r2, #0x5b
+ cmp r0, r2
+ beq _0222A754
+ add r1, #0x5c
+ cmp r0, r1
+ beq _0222A754
+ b _0222A758
+_0222A74E:
+ add r1, #0x99
+ cmp r0, r1
+ bne _0222A758
+_0222A754:
+ mov r0, #0
+ bx lr
+_0222A758:
+ mov r0, #1
+ bx lr
+ .align 2, 0
+_0222A75C: .word 0x0000013B
+
+ .section .rodata
+ ; 0x0222A760
.byte 0xCD, 0x75, 0xFF, 0x7F, 0xD7, 0x6A, 0x75, 0x66, 0x33, 0x62, 0x8F, 0x51, 0x6D, 0x4D, 0x6C, 0x41
.byte 0x2A, 0x2D, 0x19, 0x73, 0x08, 0x21, 0x00, 0x00, 0x8C, 0x31, 0xB5, 0x56, 0xBB, 0x53, 0x0A, 0x39
.byte 0xCD, 0x75, 0x39, 0x77, 0xAD, 0x49, 0x8C, 0x3D, 0x6A, 0x35, 0x29, 0x29, 0x08, 0x21, 0x42, 0x14
@@ -50718,7 +50718,7 @@ _0222A75C: .word 0x0000013B
.byte 0x2A, 0x00, 0x80, 0xFD, 0xB0, 0xFF, 0x70, 0x00, 0x00, 0xFE, 0x50, 0x01, 0x32, 0x00, 0x00, 0xFE
.byte 0xB0, 0xFF, 0x70, 0x00, 0x00, 0xFE, 0x50, 0x01, 0x32, 0x00, 0x00, 0xFE, 0xB0, 0xFF, 0x70, 0x00
.byte 0x00, 0xFE, 0x50, 0x01, 0x32, 0x00, 0x00, 0xFE
-
- .section .data
+
+ .section .data
.byte 0x14, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
diff --git a/arm9/modules/09/asm/module_09.s b/arm9/modules/09/asm/module_09.s
index 9ac54172..abb23468 100644
--- a/arm9/modules/09/asm/module_09.s
+++ b/arm9/modules/09/asm/module_09.s
@@ -576,7 +576,7 @@ _022122BA:
add r0, r5, r1
ldr r0, [r0, #4]
mov r1, #0xa2
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x20]
ldrb r1, [r4, #0x11]
mov r0, #0x50
@@ -1630,7 +1630,7 @@ _02212B0A:
ldr r0, [r0, #4]
add r1, #0x3a
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r7, #4
strh r0, [r4, r1]
mov r2, #2
@@ -1686,7 +1686,7 @@ _02212BAA:
add r0, r4, r0
ldr r0, [r0, #4]
mov r1, #0xa2
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _02212C84 ; =0x0000207E
mov r2, #4
strh r0, [r4, r1]
@@ -1841,7 +1841,7 @@ _02212CD0:
add r1, r7, #0
add r1, #0x3a
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x82
lsl r1, r1, #6
strh r0, [r4, r1]
@@ -2423,7 +2423,7 @@ MOD09_022131C8: ; 0x022131C8
ldr r0, [sp]
ldr r0, [r0]
ldr r0, [r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
bgt _022131E2
b _02213476
@@ -2437,11 +2437,11 @@ _022131E2:
ldr r0, [r0]
ldr r1, [sp, #8]
ldr r0, [r0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [r4, #4]
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #8]
ldrh r0, [r4, #8]
cmp r0, #0
@@ -2457,54 +2457,54 @@ _0221320C:
add r4, r0, r5
ldr r0, [r4, #4]
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0xa]
ldr r0, [r4, #4]
mov r1, #0xa5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0xc]
ldr r0, [r4, #4]
mov r1, #0xa6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0xe]
ldr r0, [r4, #4]
mov r1, #0xa7
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x10]
ldr r0, [r4, #4]
mov r1, #0xa8
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x12]
ldr r0, [r4, #4]
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x14]
ldr r0, [r4, #4]
mov r1, #0xa3
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x16]
ldr r0, [r4, #4]
mov r1, #0xb0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r4, #0x18]
ldr r0, [r4, #4]
mov r1, #0xb1
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r6, [sp]
strb r0, [r4, #0x19]
ldr r0, [r4, #4]
add r6, #0x1a
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldrb r1, [r6, r5]
mov r2, #0x7f
lsl r0, r0, #0x18
@@ -2517,7 +2517,7 @@ _0221320C:
ldr r0, [r4, #4]
mov r1, #0xaf
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #1
ldrb r1, [r6, r5]
bne _022132BC
@@ -2535,7 +2535,7 @@ _022132C2:
add r6, r0, #0
ldr r0, [r4, #4]
add r6, #0x1b
- bl GetMonGenderEncrypted
+ bl GetMonGender
ldrb r1, [r6, r5]
mov r2, #7
bic r1, r2
@@ -2557,7 +2557,7 @@ _022132C2:
ldr r0, [r4, #4]
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
lsl r0, r0, #0x1f
@@ -2570,17 +2570,17 @@ _022132C2:
ldr r0, [r4, #4]
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x1c]
ldr r0, [r4, #4]
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x1e]
ldr r0, [r4, #4]
mov r1, #8
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r6, [sp]
str r0, [r4, #0x20]
add r6, #0x1a
@@ -2588,7 +2588,7 @@ _022132C2:
ldrh r0, [r4, #8]
lsl r1, r1, #0x19
lsr r1, r1, #0x19
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
str r0, [r4, #0x24]
ldrb r0, [r6, r5]
lsl r0, r0, #0x19
@@ -2604,55 +2604,55 @@ _0221335A:
add r1, r1, #1
add r4, r0, r5
ldrh r0, [r4, #8]
- bl GetMonExpByLevel
+ bl GetMonExpBySpeciesAndLevel
_02213366:
str r0, [r4, #0x28]
ldr r0, [r4, #4]
mov r1, #0x13
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r4, #0
add r1, #0x2c
strb r0, [r1]
ldr r0, [r4, #4]
mov r1, #0x14
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r4, #0
add r1, #0x2d
strb r0, [r1]
ldr r0, [r4, #4]
mov r1, #0x15
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r4, #0
add r1, #0x2e
strb r0, [r1]
ldr r0, [r4, #4]
mov r1, #0x16
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r4, #0
add r1, #0x2f
strb r0, [r1]
ldr r0, [r4, #4]
mov r1, #0x17
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r4, #0
add r1, #0x30
strb r0, [r1]
ldr r0, [r4, #4]
mov r1, #0xa1
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r4, #0
add r1, #0x31
strb r0, [r1]
ldr r0, [r4, #4]
mov r1, #0x70
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, #0x32
strb r0, [r4]
ldr r1, [sp]
@@ -2670,7 +2670,7 @@ _022133E4:
ldr r0, [r6, #4]
add r1, #0x36
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0xc]
strh r0, [r7, r1]
add r0, r1, #0
@@ -2681,33 +2681,33 @@ _022133E4:
ldr r0, [r6, #4]
add r1, #0x3a
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r5, #2]
add r1, r4, #0
ldr r0, [r6, #4]
add r1, #0x3e
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r5, #3]
ldrh r0, [r5]
ldrb r1, [r5, #3]
- bl FUN_0206AB30
+ bl WazaGetMaxPp
strb r0, [r5, #3]
ldrh r0, [r5]
mov r1, #3
- bl FUN_0206AB18
+ bl GetWazaAttr
strb r0, [r5, #4]
ldrh r0, [r5]
mov r1, #1
- bl FUN_0206AB18
+ bl GetWazaAttr
strb r0, [r5, #5]
ldrh r0, [r5]
mov r1, #4
- bl FUN_0206AB18
+ bl GetWazaAttr
strb r0, [r5, #6]
ldrh r0, [r5]
mov r1, #2
- bl FUN_0206AB18
+ bl GetWazaAttr
strb r0, [r5, #7]
_02213450:
add r0, r4, #1
@@ -2724,7 +2724,7 @@ _0221345A:
ldr r0, [sp]
ldr r0, [r0]
ldr r0, [r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
ldr r1, [sp, #8]
cmp r1, r0
bge _02213476
@@ -3311,7 +3311,7 @@ _022138AC:
ldrh r0, [r1, #0x24]
_022138AE:
mov r1, #0xa
- bl FUN_0206AB18
+ bl GetWazaAttr
bl FUN_02083114
mov r1, #0xa
bl _s32_div_f
@@ -6111,7 +6111,7 @@ MOD09_02215060: ; 0x02215060
ldr r5, [r6, r0]
add r0, r2, #0
mov r1, #0xa
- bl FUN_0206AB18
+ bl GetWazaAttr
bl FUN_0208315C
ldr r3, [r6]
add r7, r0, #0
@@ -6734,7 +6734,7 @@ MOD09_022155D0: ; 0x022155D0
ldr r0, [r5]
mov r4, #0
ldr r0, [r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _02215656
add r0, r4, #0
@@ -6788,7 +6788,7 @@ _0221563E:
add r7, #0x50
ldr r0, [r0]
add r4, r4, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _022155EE
_02215656:
@@ -7741,7 +7741,7 @@ _02215E4C:
ldr r0, [r5]
mov r1, #5
ldrh r0, [r0, #0x24]
- bl FUN_0206AB18
+ bl GetWazaAttr
add r1, sp, #0x14
strb r0, [r1, #2]
ldrb r0, [r1, #2]
@@ -7917,7 +7917,7 @@ MOD09_02215ED0: ; 0x02215ED0
_0221600C:
ldrh r0, [r1, #0x24]
mov r1, #5
- bl FUN_0206AB18
+ bl GetWazaAttr
add r4, r0, #0
mov r0, #0
str r0, [sp]
@@ -7938,7 +7938,7 @@ _0221600C:
ldr r0, [r5]
mov r1, #4
ldrh r0, [r0, #0x24]
- bl FUN_0206AB18
+ bl GetWazaAttr
add r2, r0, #0
add r0, r5, #0
mov r1, #6
@@ -7946,7 +7946,7 @@ _0221600C:
ldr r0, [r5]
mov r1, #2
ldrh r0, [r0, #0x24]
- bl FUN_0206AB18
+ bl GetWazaAttr
add r2, r0, #0
add r0, r5, #0
mov r1, #7
@@ -7954,7 +7954,7 @@ _0221600C:
ldr r0, [r5]
mov r1, #1
ldrh r0, [r0, #0x24]
- bl FUN_0206AB18
+ bl GetWazaAttr
add r2, r0, #0
add r0, r5, #0
mov r1, #0xa
@@ -8227,7 +8227,7 @@ MOD09_022161B0: ; 0x022161B0
_022162BE:
ldrh r0, [r1, #0x24]
mov r1, #5
- bl FUN_0206AB18
+ bl GetWazaAttr
add r4, r0, #0
mov r0, #0
str r0, [sp]
@@ -8336,7 +8336,7 @@ MOD09_02216378: ; 0x02216378
mov r1, #0xa2
mov r2, #0
add r7, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #8]
@@ -10080,7 +10080,7 @@ MOD09_022171AC: ; 0x022171AC
_02217242:
ldrh r0, [r1, #0x24]
mov r1, #1
- bl FUN_0206AB18
+ bl GetWazaAttr
ldr r1, _0221726C ; =0x00002020
add r2, r0, #0
ldr r1, [r5, r1]
@@ -10302,7 +10302,7 @@ _02217400:
cmp r0, #0
beq _02217436
mov r1, #3
- bl FUN_0206AB18
+ bl GetWazaAttr
add r3, r0, #0
ldr r1, _02217444 ; =0x0000201C
lsl r3, r3, #0x18
@@ -10347,7 +10347,7 @@ _02217460:
lsl r1, r4, #2
add r6, r7, r1
mov r1, #0xb
- bl FUN_0206AB18
+ bl GetWazaAttr
add r3, r0, #0
ldr r1, _022174D8 ; =0x0000200C
ldr r2, _022174DC ; =0x0000B010
@@ -10377,7 +10377,7 @@ _0221749E:
cmp r0, #0
beq _022174D6
mov r1, #0xb
- bl FUN_0206AB18
+ bl GetWazaAttr
add r3, r0, #0
ldr r1, _022174E4 ; =0x0000201C
add r3, #0x12
@@ -10495,7 +10495,7 @@ MOD09_02217580: ; 0x02217580
ldr r0, [r5]
mov r4, #0
ldr r0, [r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _022175D8
add r7, r5, #4
@@ -10528,7 +10528,7 @@ _022175C6:
lsr r4, r0, #0x10
ldr r0, [r5]
ldr r0, [r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _02217594
_022175D8:
@@ -13506,7 +13506,7 @@ _02218DF2:
bl MOD11_02230290
add r4, r0, #0
add r0, r6, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #6
bne _02218E32
add r0, r4, #0
diff --git a/arm9/modules/11/asm/module_11.s b/arm9/modules/11/asm/module_11.s
index dd2316a4..719fca68 100644
--- a/arm9/modules/11/asm/module_11.s
+++ b/arm9/modules/11/asm/module_11.s
@@ -1,98639 +1,98639 @@
- .include "asm/macros.inc"
- .include "global.inc"
- .section .text
- .balign 4, 0
-
- thumb_func_start MOD11_0222D5C0
-MOD11_0222D5C0: ; 0x0222D5C0
- push {r4, r5, r6, lr}
- sub sp, #0x28
- add r4, r1, #0
- add r6, r0, #0
- bl FUN_0200628C
- ldr r1, [r4]
- add r5, r0, #0
- cmp r1, #0xf
- bhi _0222D6D2
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0222D5E0: ; jump table
- .short _0222D600 - _0222D5E0 - 2 ; case 0
- .short _0222D620 - _0222D5E0 - 2 ; case 1
- .short _0222D65A - _0222D5E0 - 2 ; case 2
- .short _0222D670 - _0222D5E0 - 2 ; case 3
- .short _0222D686 - _0222D5E0 - 2 ; case 4
- .short _0222D696 - _0222D5E0 - 2 ; case 5
- .short _0222D6AC - _0222D5E0 - 2 ; case 6
- .short _0222D6C8 - _0222D5E0 - 2 ; case 7
- .short _0222D6DA - _0222D5E0 - 2 ; case 8
- .short _0222D6EE - _0222D5E0 - 2 ; case 9
- .short _0222D704 - _0222D5E0 - 2 ; case 10
- .short _0222D720 - _0222D5E0 - 2 ; case 11
- .short _0222D742 - _0222D5E0 - 2 ; case 12
- .short _0222D752 - _0222D5E0 - 2 ; case 13
- .short _0222D7C2 - _0222D5E0 - 2 ; case 14
- .short _0222D7E4 - _0222D5E0 - 2 ; case 15
-_0222D600:
- mov r2, #0xb
- mov r0, #3
- mov r1, #5
- lsl r2, r2, #0x10
- bl FUN_0201681C
- ldr r1, [r5]
- mov r0, #4
- tst r0, r1
- beq _0222D61A
- mov r0, #1
- str r0, [r4]
- b _0222D7EA
-_0222D61A:
- mov r0, #3
- str r0, [r4]
- b _0222D7EA
-_0222D620:
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_0222F29C
- mov r0, #0x4b
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- bl FUN_02033778
- bl FUN_02033590
- cmp r0, #0
- bne _0222D648
- mov r0, #0x51
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- mov r1, #0x14
- bl FUN_0202A0E8
- b _0222D654
-_0222D648:
- mov r0, #0x51
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- mov r1, #0x19
- bl FUN_0202A0E8
-_0222D654:
- mov r0, #2
- str r0, [r4]
- b _0222D7EA
-_0222D65A:
- add r0, r6, #0
- bl MOD11_0222F4E4
- cmp r0, #1
- bne _0222D6D2
- add r0, r6, #0
- bl MOD11_0222F93C
- mov r0, #3
- str r0, [r4]
- b _0222D7EA
-_0222D670:
- add r0, r6, #0
- bl MOD11_0222F988
- cmp r0, #1
- bne _0222D680
- mov r0, #4
- str r0, [r4]
- b _0222D7EA
-_0222D680:
- mov r0, #5
- str r0, [r4]
- b _0222D7EA
-_0222D686:
- add r0, r6, #0
- bl MOD11_0222FABC
- cmp r0, #1
- bne _0222D6D2
- mov r0, #5
- str r0, [r4]
- b _0222D7EA
-_0222D696:
- add r0, r6, #0
- bl MOD11_0222FB04
- cmp r0, #1
- bne _0222D6A6
- mov r0, #6
- str r0, [r4]
- b _0222D7EA
-_0222D6A6:
- mov r0, #8
- str r0, [r4]
- b _0222D7EA
-_0222D6AC:
- add r0, r6, #0
- bl MOD11_0222FC38
- cmp r0, #1
- bne _0222D6D2
- ldr r0, _0222D7F0 ; =SDK_OVERLAY_MODULE_07_ID
- bl UnloadOverlayByID
- mov r0, #7
- str r0, [r4]
- mov r0, #0x3d
- bl FUN_02031588
- b _0222D7EA
-_0222D6C8:
- mov r0, #0x3d
- bl FUN_020315D8
- cmp r0, #0
- bne _0222D6D4
-_0222D6D2:
- b _0222D7EA
-_0222D6D4:
- mov r0, #8
- str r0, [r4]
- b _0222D7EA
-_0222D6DA:
- ldr r0, _0222D7F4 ; =SDK_OVERLAY_MODULE_08_ID
- mov r1, #2
- bl HandleLoadOverlay
- add r0, r6, #0
- bl MOD11_0222DB50
- mov r0, #9
- str r0, [r4]
- b _0222D7EA
-_0222D6EE:
- add r0, r6, #0
- bl MOD11_0222DF4C
- cmp r0, #1
- bne _0222D7EA
- add r0, r6, #0
- bl MOD11_0222DFA4
- mov r0, #0xa
- str r0, [r4]
- b _0222D7EA
-_0222D704:
- add r0, r6, #0
- bl MOD11_0222FC80
- cmp r0, #1
- bne _0222D714
- mov r0, #0xb
- str r0, [r4]
- b _0222D7EA
-_0222D714:
- mov r0, #5
- bl FUN_020168D0
- mov r0, #0xd
- str r0, [r4]
- b _0222D7EA
-_0222D720:
- add r0, r6, #0
- bl MOD11_0222FE58
- cmp r0, #1
- bne _0222D7EA
- ldr r0, _0222D7F0 ; =SDK_OVERLAY_MODULE_07_ID
- bl UnloadOverlayByID
- mov r0, #5
- bl FUN_020168D0
- mov r0, #0x3e
- bl FUN_02031588
- mov r0, #0xc
- str r0, [r4]
- b _0222D7EA
-_0222D742:
- mov r0, #0x3e
- bl FUN_020315D8
- cmp r0, #0
- beq _0222D7EA
- mov r0, #0xf
- str r0, [r4]
- b _0222D7EA
-_0222D752:
- add r1, sp, #0x24
- add r2, sp, #0x20
- bl MOD11_02230D38
- add r6, r0, #0
- beq _0222D7BC
- mov r0, #3
- mov r1, #0x49
- lsl r2, r0, #0x10
- bl FUN_0201681C
- ldr r0, [r5, #4]
- ldr r1, [sp, #0x24]
- bl FUN_0206B9B0
- add r1, r0, #0
- mov r0, #0x5a
- lsl r0, r0, #2
- ldr r2, [r5, r0]
- mov r3, #0x49
- str r2, [sp]
- add r2, r0, #0
- sub r2, #0x58
- ldr r2, [r5, r2]
- str r2, [sp, #4]
- add r2, r0, #0
- sub r2, #0x60
- ldr r2, [r5, r2]
- str r2, [sp, #8]
- add r2, r0, #0
- sub r2, #0x24
- ldr r2, [r5, r2]
- sub r0, #0x40
- str r2, [sp, #0xc]
- ldr r0, [r5, r0]
- add r2, r6, #0
- str r0, [sp, #0x10]
- ldr r0, [sp, #0x20]
- str r0, [sp, #0x14]
- mov r0, #3
- str r0, [sp, #0x18]
- str r3, [sp, #0x1c]
- add r3, #0xe7
- ldr r0, [r5, #4]
- ldr r3, [r5, r3]
- bl FUN_0206C700
- mov r1, #0x66
- lsl r1, r1, #2
- str r0, [r5, r1]
- mov r0, #0xe
- str r0, [r4]
- b _0222D7EA
-_0222D7BC:
- mov r0, #0xf
- str r0, [r4]
- b _0222D7EA
-_0222D7C2:
- mov r0, #0x66
- lsl r0, r0, #2
- ldr r5, [r5, r0]
- add r0, r5, #0
- bl FUN_0206C91C
- cmp r0, #1
- bne _0222D7EA
- add r0, r5, #0
- bl FUN_0206C92C
- mov r0, #0x49
- bl FUN_020168D0
- mov r0, #0xd
- str r0, [r4]
- b _0222D7EA
-_0222D7E4:
- add sp, #0x28
- mov r0, #1
- pop {r4, r5, r6, pc}
-_0222D7EA:
- mov r0, #0
- add sp, #0x28
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0222D7F0: .word SDK_OVERLAY_MODULE_07_ID
-_0222D7F4: .word SDK_OVERLAY_MODULE_08_ID
-
- thumb_func_start MOD11_0222D7F8
-MOD11_0222D7F8: ; 0x0222D7F8
- push {r4, lr}
- add r4, r0, #0
- mov r0, #0x67
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl MOD11_02258658
- ldr r0, [r4, #4]
- bl MOD11_022584AC
- ldr r1, _0222D834 ; =0x000023FB
- mov r0, #4
- ldrb r2, [r4, r1]
- orr r0, r2
- strb r0, [r4, r1]
- mov r0, #2
- bl FUN_02002CF8
- add r0, r4, #0
- mov r1, #3
- bl MOD11_02231338
- ldr r0, _0222D838 ; =SDK_OVERLAY_MODULE_08_ID
- bl UnloadOverlayByID
- ldr r0, _0222D83C ; =SDK_OVERLAY_MODULE_09_ID
- mov r1, #2
- bl HandleLoadOverlay
- pop {r4, pc}
- .align 2, 0
-_0222D834: .word 0x000023FB
-_0222D838: .word SDK_OVERLAY_MODULE_08_ID
-_0222D83C: .word SDK_OVERLAY_MODULE_09_ID
-
- thumb_func_start MOD11_0222D840
-MOD11_0222D840: ; 0x0222D840
- push {r4, lr}
- add r4, r0, #0
- mov r0, #0
- add r1, r0, #0
- bl FUN_02015F10
- mov r0, #0x67
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl MOD11_02258658
- ldr r0, [r4, #8]
- bl FUN_02019178
- ldr r0, [r4, #4]
- bl MOD11_0222E4E8
- add r0, r4, #0
- bl MOD11_0222E51C
- add r0, r4, #0
- add r1, r4, #0
- add r0, #0x90
- add r1, #0x94
- ldr r0, [r0]
- ldr r1, [r1]
- bl FUN_0200C398
- add r4, #0x90
- ldr r0, [r4]
- bl FUN_0200BD04
- bl FUN_0201C29C
- mov r0, #2
- bl FUN_02002CF8
- pop {r4, pc}
-
- thumb_func_start MOD11_0222D88C
-MOD11_0222D88C: ; 0x0222D88C
- push {r3, r4, r5, lr}
- add r4, r0, #0
- ldr r0, _0222D938 ; =SDK_OVERLAY_MODULE_09_ID
- bl UnloadOverlayByID
- ldr r0, _0222D93C ; =SDK_OVERLAY_MODULE_08_ID
- mov r1, #2
- bl HandleLoadOverlay
- add r0, r4, #0
- mov r1, #0
- bl MOD11_02231338
- bl FUN_02022300
- add r5, r0, #0
- bl FUN_020222F8
- add r1, r0, #0
- mov r0, #0
- add r2, r5, #0
- bl MIi_CpuClear16
- bl FUN_02031190
- add r1, r0, #0
- add r0, r4, #0
- bl MOD11_0223021C
- add r1, r0, #0
- add r0, r4, #0
- bl MOD11_022584D4
- mov r1, #0x67
- lsl r1, r1, #2
- str r0, [r4, r1]
- mov r0, #2
- mov r1, #5
- bl FUN_02002C50
- ldr r1, _0222D940 ; =0x000023FB
- mov r0, #2
- ldrb r2, [r4, r1]
- orr r0, r2
- strb r0, [r4, r1]
- ldr r0, [r4, #4]
- bl MOD11_02258450
- mov r0, #0x10
- mov r1, #1
- bl FUN_0201E74C
- mov r0, #0x67
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl MOD11_022586BC
- mov r0, #0x67
- lsl r0, r0, #2
- mov r1, #0
- ldr r0, [r4, r0]
- mov r2, #1
- add r3, r1, #0
- bl MOD11_02258820
- mov r0, #0x67
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl MOD11_02258958
- mov r0, #1
- bl FUN_02002840
- add r0, r4, #0
- bl MOD11_0222FE94
- add r4, #0x90
- ldr r0, [r4]
- bl FUN_0200BB68
- mov r2, #0x11
- mov r1, #0
- lsl r2, r2, #0x10
- bl FUN_02008D24
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0222D938: .word SDK_OVERLAY_MODULE_09_ID
-_0222D93C: .word SDK_OVERLAY_MODULE_08_ID
-_0222D940: .word 0x000023FB
-
- thumb_func_start MOD11_0222D944
-MOD11_0222D944: ; 0x0222D944
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #8]
- bl FUN_02019178
- mov r0, #1
- mov r1, #0
- bl FUN_0201E6E4
- mov r0, #2
- mov r1, #0
- bl FUN_0201E6E4
- ldr r0, [r4, #4]
- mov r1, #1
- bl FUN_020178A0
- ldr r0, [r4, #4]
- mov r1, #2
- bl FUN_020178A0
- ldr r0, [r4, #4]
- mov r1, #3
- bl FUN_020178A0
- add r0, r4, #0
- bl MOD11_02231410
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0222D980
-MOD11_0222D980: ; 0x0222D980
- push {r4, r5, r6, lr}
- sub sp, #0x68
- ldr r1, _0222DB38 ; =0x000023FB
- add r5, r0, #0
- ldrb r2, [r5, r1]
- mov r0, #1
- ldr r4, _0222DB3C ; =0x0225DAE0
- bic r2, r0
- mov r0, #1
- orr r0, r2
- strb r0, [r5, r1]
- add r3, sp, #0x14
- mov r2, #0xa
-_0222D99A:
- ldmia r4!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _0222D99A
- ldr r0, [r4]
- mov r1, #1
- str r0, [r3]
- ldr r0, [r5, #4]
- add r2, sp, #0x14
- mov r3, #0
- bl FUN_02016C18
- ldr r0, [r5, #4]
- mov r1, #1
- bl FUN_02018744
- ldr r0, [r5, #4]
- mov r1, #2
- add r2, sp, #0x30
- mov r3, #0
- bl FUN_02016C18
- ldr r0, [r5, #4]
- mov r1, #2
- bl FUN_02018744
- ldr r0, [r5, #4]
- mov r1, #3
- add r2, sp, #0x4c
- mov r3, #0
- bl FUN_02016C18
- ldr r0, [r5, #4]
- mov r1, #3
- bl FUN_02018744
- ldr r1, _0222DB40 ; =0x04000008
- mov r0, #3
- ldrh r2, [r1]
- bic r2, r0
- mov r0, #1
- orr r2, r0
- strh r2, [r1]
- add r1, r0, #0
- bl FUN_0201E6E4
- add r0, r5, #0
- bl MOD11_02230E44
- add r4, r0, #0
- lsl r0, r4, #0x18
- lsr r0, r0, #0x18
- str r0, [sp]
- mov r0, #5
- str r0, [sp, #4]
- mov r1, #1
- ldr r0, [r5, #4]
- add r2, r1, #0
- mov r3, #0xa
- bl FUN_0200D274
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- mov r0, #5
- str r0, [sp, #0xc]
- mov r1, #9
- lsl r1, r1, #0xa
- ldr r1, [r5, r1]
- ldr r2, [r5, #4]
- mov r0, #7
- add r1, r1, #3
- mov r3, #3
- bl FUN_0200687C
- add r0, r5, #0
- bl MOD11_02230C68
- add r2, r0, #0
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r3, #9
- str r0, [sp, #8]
- lsl r3, r3, #0xa
- ldr r6, [r5, r3]
- ldr r0, [r5, #0x28]
- lsl r3, r6, #1
- add r3, r6, r3
- add r3, #0x9e
- add r2, r3, r2
- mov r1, #7
- mov r3, #5
- bl FUN_020030E8
- add r0, r4, #0
- bl FUN_0200CD64
- add r2, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- mov r0, #0xa0
- str r0, [sp, #8]
- ldr r0, [r5, #0x28]
- mov r1, #0x26
- mov r3, #5
- bl FUN_020030E8
- mov r0, #0
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- mov r0, #0xb0
- str r0, [sp, #8]
- ldr r0, [r5, #0x28]
- mov r1, #0xe
- mov r2, #7
- mov r3, #5
- bl FUN_020030E8
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- mov r0, #5
- str r0, [sp, #0xc]
- ldr r2, [r5, #4]
- mov r0, #7
- mov r1, #2
- mov r3, #3
- bl FUN_020068C8
- mov r0, #1
- lsl r0, r0, #0x1a
- ldr r2, [r0]
- ldr r1, _0222DB44 ; =0xFFFF1FFF
- ldr r3, _0222DB48 ; =0x04001000
- and r2, r1
- str r2, [r0]
- ldr r2, [r3]
- and r1, r2
- add r2, r0, #0
- str r1, [r3]
- add r2, #0x48
- ldrh r3, [r2]
- mov r1, #0x3f
- add r0, #0x4a
- bic r3, r1
- strh r3, [r2]
- ldrh r2, [r0]
- bic r2, r1
- strh r2, [r0]
- bl FUN_0201E788
- mov r0, #0x10
- mov r1, #1
- bl FUN_0201E6E4
- mov r0, #0x10
- mov r1, #1
- bl FUN_0201E74C
- ldr r0, _0222DB4C ; =MOD11_0222F01C
- add r1, r5, #0
- bl FUN_02015F10
- ldr r0, _0222DB38 ; =0x000023FB
- mov r3, #2
- ldrb r1, [r5, r0]
- mov r2, #1
- orr r1, r3
- strb r1, [r5, r0]
- mov r0, #0x13
- str r0, [sp]
- mov r0, #0x1b
- str r0, [sp, #4]
- mov r0, #4
- str r0, [sp, #8]
- mov r0, #0xb
- str r0, [sp, #0xc]
- mov r0, #0x1f
- str r0, [sp, #0x10]
- ldr r0, [r5, #4]
- ldr r1, [r5, #8]
- bl FUN_02019064
- ldr r0, [r5, #8]
- mov r1, #0xff
- bl FUN_02019620
- ldr r0, [r5, #8]
- mov r1, #0
- mov r2, #1
- mov r3, #0xa
- bl FUN_0200D0BC
- add r0, r5, #0
- bl MOD11_0222FE94
- add sp, #0x68
- pop {r4, r5, r6, pc}
- nop
-_0222DB38: .word 0x000023FB
-_0222DB3C: .word 0x0225DAE0
-_0222DB40: .word 0x04000008
-_0222DB44: .word 0xFFFF1FFF
-_0222DB48: .word 0x04001000
-_0222DB4C: .word MOD11_0222F01C
-
- thumb_func_start MOD11_0222DB50
-MOD11_0222DB50: ; 0x0222DB50
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x30
- bl FUN_02006278
- add r4, r0, #0
- bl FUN_020222F0
- add r5, r0, #0
- bl FUN_020222E8
- add r1, r0, #0
- mov r0, #0
- add r2, r5, #0
- bl MIi_CpuClear16
- bl FUN_02022300
- add r5, r0, #0
- bl FUN_020222F8
- add r1, r0, #0
- mov r0, #0
- add r2, r5, #0
- bl MIi_CpuClear16
- bl getseed_LC
- ldr r1, _0222DF0C ; =0x00002430
- str r0, [r4, r1]
- add r0, sp, #0x20
- add r1, sp, #0x14
- bl FUN_0201265C
- ldr r0, _0222DF10 ; =0x021C48B8
- ldr r6, [sp, #0x24]
- ldr r5, [r0, #0x2c]
- ldr r1, [sp, #0x18]
- ldr r0, [sp, #0x1c]
- lsl r6, r6, #8
- add r0, r1, r0
- lsl r3, r0, #0x18
- ldr r0, [sp, #0x14]
- ldr r1, [sp, #0x20]
- lsl r2, r0, #0x10
- ldr r0, [sp, #0x28]
- mul r6, r0
- lsl r0, r6, #0x10
- add r0, r1, r0
- add r0, r2, r0
- add r0, r3, r0
- add r0, r5, r0
- bl seedr_LC
- bl MOD11_0222EF30
- str r0, [r4]
- bl FUN_02015F1C
- mov r0, #2
- mov r1, #5
- bl FUN_02002C50
- mov r0, #0xe
- mov r1, #1
- mov r2, #0xf
- mov r3, #5
- bl FUN_0200B870
- mov r1, #0x6a
- lsl r1, r1, #2
- str r0, [r4, r1]
- ldr r2, [r4, r1]
- add r0, r1, #4
- str r2, [r4, r0]
- mov r0, #5
- bl FUN_02002FD0
- str r0, [r4, #0x28]
- mov r1, #1
- bl FUN_020038F0
- mov r2, #2
- ldr r0, [r4, #0x28]
- mov r1, #0
- lsl r2, r2, #8
- mov r3, #5
- bl FUN_02003008
- mov r1, #1
- ldr r0, [r4, #0x28]
- lsl r2, r1, #9
- mov r3, #5
- bl FUN_02003008
- mov r2, #7
- ldr r0, [r4, #0x28]
- mov r1, #2
- lsl r2, r2, #6
- mov r3, #5
- bl FUN_02003008
- mov r2, #2
- ldr r0, [r4, #0x28]
- mov r1, #3
- lsl r2, r2, #8
- mov r3, #5
- bl FUN_02003008
- mov r0, #5
- bl FUN_02016B94
- str r0, [r4, #4]
- mov r0, #5
- mov r1, #3
- bl FUN_02018FF4
- mov r7, #0x73
- str r0, [r4, #8]
- mov r6, #0
- add r5, r4, #0
- lsl r7, r7, #2
-_0222DC42:
- mov r1, #0x32
- mov r0, #5
- lsl r1, r1, #6
- bl AllocFromHeap
- str r0, [r5, r7]
- add r6, r6, #1
- add r5, #0x10
- cmp r6, #4
- blt _0222DC42
- mov r0, #0x40
- mov r1, #5
- bl FUN_0201C24C
- bl FUN_02031190
- add r1, r0, #0
- add r0, r4, #0
- bl MOD11_0223021C
- add r1, r0, #0
- add r0, r4, #0
- bl MOD11_022584D4
- mov r1, #0x67
- lsl r1, r1, #2
- str r0, [r4, r1]
- ldr r1, [r4, #4]
- add r0, r4, #0
- bl MOD11_0222E264
- mov r0, #0x13
- str r0, [sp]
- mov r0, #0x1b
- str r0, [sp, #4]
- mov r0, #4
- str r0, [sp, #8]
- mov r0, #0xb
- str r0, [sp, #0xc]
- mov r0, #0x1f
- str r0, [sp, #0x10]
- ldr r0, [r4, #4]
- ldr r1, [r4, #8]
- mov r2, #1
- mov r3, #2
- bl FUN_02019064
- ldr r0, [r4, #8]
- mov r1, #0xff
- bl FUN_02019620
- ldr r0, [r4, #8]
- mov r1, #0
- mov r2, #1
- mov r3, #0xa
- bl FUN_0200D0BC
- mov r0, #5
- bl FUN_0200BB14
- add r1, r4, #0
- add r1, #0x90
- str r0, [r1]
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- ldr r1, _0222DF14 ; =0x0225DA20
- ldr r2, _0222DF18 ; =0x0225D9D8
- mov r3, #0x20
- bl FUN_0200BB6C
- ldr r1, _0222DF1C ; =0x00100010
- mov r0, #1
- bl FUN_02008D44
- mov r0, #1
- bl FUN_02008DDC
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- bl FUN_0200BB34
- add r1, r4, #0
- add r1, #0x94
- str r0, [r1]
- add r0, r4, #0
- add r1, r4, #0
- add r0, #0x90
- add r1, #0x94
- ldr r0, [r0]
- ldr r1, [r1]
- mov r2, #0x80
- bl FUN_0200BBF0
- add r0, r4, #0
- add r1, r4, #0
- add r0, #0x90
- add r1, #0x94
- ldr r0, [r0]
- ldr r1, [r1]
- ldr r2, _0222DF20 ; =0x0225D9EC
- bl FUN_0200BF60
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- bl FUN_0200BB68
- mov r2, #0x11
- mov r1, #0
- lsl r2, r2, #0x10
- bl FUN_02008D24
- mov r0, #0x67
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl MOD11_022586BC
- mov r0, #0x67
- lsl r0, r0, #2
- mov r1, #0
- ldr r0, [r4, r0]
- mov r2, #1
- add r3, r1, #0
- bl MOD11_02258820
- mov r0, #0x67
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl MOD11_02258958
- mov r0, #5
- bl FUN_02006D98
- add r1, r4, #0
- add r1, #0x88
- str r0, [r1]
- add r0, r4, #0
- add r0, #0x88
- ldr r0, [r0]
- mov r1, #0
- mov r2, #0xc0
- bl FUN_020081B4
- add r0, r4, #0
- bl MOD11_02231390
- bl MOD11_0222EFDC
- mov r0, #5
- bl MOD08_02211F5C
- add r1, r4, #0
- add r1, #0x8c
- str r0, [r1]
- add r0, r4, #0
- bl MOD11_0222E470
- bl FUN_0201CC08
- mov r0, #4
- bl FUN_0201CC24
- mov r2, #0x51
- mov r0, #1
- mov r1, #0x1a
- lsl r2, r2, #2
- mov r3, #5
- bl NewMsgDataFromNarc
- str r0, [r4, #0xc]
- mov r0, #1
- mov r1, #0x1a
- mov r2, #0
- mov r3, #5
- bl NewMsgDataFromNarc
- str r0, [r4, #0x10]
- mov r0, #5
- bl FUN_0200AA80
- str r0, [r4, #0x14]
- mov r0, #5
- lsl r0, r0, #6
- mov r1, #5
- bl FUN_020219F4
- str r0, [r4, #0x18]
- ldr r0, [r4, #0x28]
- mov r1, #0
- bl FUN_020031FC
- ldr r1, _0222DF24 ; =0x00002224
- mov r2, #0xe0
- add r1, r4, r1
- bl MIi_CpuCopy16
- ldr r0, [r4, #0x28]
- mov r1, #2
- bl FUN_020031FC
- ldr r1, _0222DF28 ; =0x00002304
- mov r2, #0xe0
- add r1, r4, r1
- bl MIi_CpuCopy16
- add r0, r4, #0
- bl MOD11_02230C68
- mov r1, #0
- lsl r5, r0, #2
- mov r3, #9
- str r1, [sp]
- mov r0, #0x70
- str r0, [sp, #4]
- lsl r3, r3, #0xa
- ldr r3, [r4, r3]
- mov r6, #0xc
- mul r6, r3
- ldr r3, _0222DF2C ; =0x0225DB88
- ldr r0, [r4, #0x28]
- add r3, r3, r6
- ldr r3, [r5, r3]
- mov r2, #2
- lsl r3, r3, #0x10
- lsr r3, r3, #0x10
- bl FUN_02003914
- mov r0, #0xc0
- str r0, [sp]
- add r0, #0x40
- mov r3, #9
- str r0, [sp, #4]
- lsl r3, r3, #0xa
- ldr r3, [r4, r3]
- mov r6, #0xc
- mul r6, r3
- ldr r3, _0222DF2C ; =0x0225DB88
- ldr r0, [r4, #0x28]
- add r3, r3, r6
- ldr r3, [r5, r3]
- mov r1, #0
- lsl r3, r3, #0x10
- mov r2, #2
- lsr r3, r3, #0x10
- bl FUN_02003914
- mov r0, #0
- str r0, [sp]
- mov r0, #0xdf
- mov r3, #9
- str r0, [sp, #4]
- lsl r3, r3, #0xa
- mov r1, #2
- ldr r3, [r4, r3]
- mov r6, #0xc
- mul r6, r3
- ldr r3, _0222DF2C ; =0x0225DB88
- ldr r0, [r4, #0x28]
- add r3, r3, r6
- ldr r3, [r5, r3]
- add r2, r1, #0
- lsl r3, r3, #0x10
- lsr r3, r3, #0x10
- bl FUN_02003914
- mov r1, #0
- mov r0, #0xa0
- str r0, [sp]
- mov r0, #0xc0
- str r0, [sp, #4]
- ldr r0, [r4, #0x28]
- add r2, r1, #0
- add r3, r1, #0
- bl FUN_02003914
- mov r2, #0
- str r2, [sp]
- mov r0, #0xff
- str r0, [sp, #4]
- ldr r0, [r4, #0x28]
- ldr r3, _0222DF30 ; =0x0000FFFF
- mov r1, #1
- bl FUN_02003914
- mov r2, #0
- str r2, [sp]
- mov r0, #0xff
- str r0, [sp, #4]
- ldr r0, [r4, #0x28]
- ldr r3, _0222DF30 ; =0x0000FFFF
- mov r1, #3
- bl FUN_02003914
- ldr r0, [r4, #0x28]
- mov r1, #0
- mov r2, #0xb
- mov r3, #5
- bl FUN_020142EC
- mov r1, #0x1b
- lsl r1, r1, #4
- str r0, [r4, r1]
- ldr r0, [r4, r1]
- mov r1, #1
- bl FUN_020143A8
- ldr r0, _0222DF34 ; =MOD11_0222F100
- ldr r2, _0222DF38 ; =0x0000EA60
- add r1, r4, #0
- bl FUN_0200CA44
- str r0, [r4, #0x1c]
- ldr r0, _0222DF3C ; =MOD11_0222F144
- ldr r2, _0222DF40 ; =0x0000C350
- add r1, r4, #0
- bl FUN_0200CA44
- str r0, [r4, #0x20]
- mov r2, #0x4b
- ldr r0, _0222DF44 ; =MOD11_0222F254
- add r1, r4, #0
- lsl r2, r2, #4
- bl FUN_0200CA60
- str r0, [r4, #0x24]
- mov r1, #0x32
- ldr r0, _0222DF48 ; =0x00002434
- mvn r1, r1
- str r1, [r4, r0]
- add r0, r4, #0
- bl MOD11_0222FE94
- add r0, r4, #0
- bl MOD11_02230218
- bl FUN_0206F1C0
- mov r0, #5
- mov r1, #4
- mov r2, #0
- bl FUN_02014BF4
- mov r1, #0x71
- lsl r1, r1, #2
- str r0, [r4, r1]
- mov r0, #2
- mov r1, #5
- bl FUN_0201C328
- mov r1, #0x72
- lsl r1, r1, #2
- str r0, [r4, r1]
- add sp, #0x30
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0222DF0C: .word 0x00002430
-_0222DF10: .word 0x021C48B8
-_0222DF14: .word 0x0225DA20
-_0222DF18: .word 0x0225D9D8
-_0222DF1C: .word 0x00100010
-_0222DF20: .word 0x0225D9EC
-_0222DF24: .word 0x00002224
-_0222DF28: .word 0x00002304
-_0222DF2C: .word 0x0225DB88
-_0222DF30: .word 0x0000FFFF
-_0222DF34: .word MOD11_0222F100
-_0222DF38: .word 0x0000EA60
-_0222DF3C: .word MOD11_0222F144
-_0222DF40: .word 0x0000C350
-_0222DF44: .word MOD11_0222F254
-_0222DF48: .word 0x00002434
-
- thumb_func_start MOD11_0222DF4C
-MOD11_0222DF4C: ; 0x0222DF4C
- push {r4, r5, r6, lr}
- bl FUN_02006278
- ldr r1, _0222DF9C ; =0x000023F8
- add r4, r0, #0
- ldrb r1, [r4, r1]
- cmp r1, #0
- beq _0222DF7A
- ldr r2, [r4, #0x2c]
- mov r1, #4
- tst r1, r2
- ldr r1, [r4, #0x30]
- beq _0222DF6C
- bl MOD11_0223D238
- b _0222DF7A
-_0222DF6C:
- bl MOD11_0223D238
- ldr r1, _0222DFA0 ; =0x000023FA
- strb r0, [r4, r1]
- add r0, r4, #0
- bl MOD11_02254820
-_0222DF7A:
- ldr r0, [r4, #0x44]
- mov r6, #0
- cmp r0, #0
- ble _0222DF96
- add r5, r4, #0
-_0222DF84:
- ldr r1, [r5, #0x34]
- add r0, r4, #0
- bl MOD11_0224CB38
- ldr r0, [r4, #0x44]
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, r0
- blt _0222DF84
-_0222DF96:
- ldr r0, _0222DFA0 ; =0x000023FA
- ldrb r0, [r4, r0]
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0222DF9C: .word 0x000023F8
-_0222DFA0: .word 0x000023FA
-
- thumb_func_start MOD11_0222DFA4
-MOD11_0222DFA4: ; 0x0222DFA4
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- bl FUN_02006278
- add r4, r0, #0
- add r0, r5, #0
- bl FUN_0200628C
- add r7, r0, #0
- mov r0, #0
- add r1, r0, #0
- bl FUN_0200E3A0
- mov r0, #1
- mov r1, #0
- bl FUN_0200E3A0
- add r0, r4, #0
- bl MOD11_02230EC8
- ldr r0, _0222E248 ; =0x0000241C
- ldrb r0, [r4, r0]
- cmp r0, #4
- beq _0222DFE4
- ldr r0, [r4, #0x6c]
- mov r1, #0
- bl FUN_0206B9B0
- add r1, r0, #0
- add r0, r4, #0
- bl MOD11_02230FA8
-_0222DFE4:
- mov r0, #0
- str r0, [sp]
- add r6, r7, #0
- add r5, r4, #0
-_0222DFEC:
- ldr r0, [r5, #0x68]
- ldr r1, [r6, #4]
- bl FUN_0206BAD0
- ldr r0, [r5, #0x68]
- bl FreeToHeap
- add r1, r6, #0
- add r1, #0xf8
- ldr r0, [r5, #0x48]
- ldr r1, [r1]
- bl FUN_0202393C
- ldr r0, [r5, #0x48]
- bl FreeToHeap
- ldr r0, [sp]
- add r6, r6, #4
- add r0, r0, #1
- add r5, r5, #4
- str r0, [sp]
- cmp r0, #4
- blt _0222DFEC
- mov r0, #0x1b
- lsl r0, r0, #4
- ldr r0, [r4, r0]
- bl FUN_020143D0
- mov r1, #0x42
- lsl r1, r1, #2
- ldr r0, [r4, #0x58]
- ldr r1, [r7, r1]
- bl FUN_0206EBB4
- ldr r0, [r4, #0x58]
- bl FreeToHeap
- mov r1, #0x11
- lsl r1, r1, #4
- ldr r0, [r4, #0x60]
- ldr r1, [r7, r1]
- bl FUN_02023D80
- ldr r0, [r4, #0x60]
- bl FreeToHeap
- mov r0, #0x45
- ldr r1, [r4, #0x64]
- lsl r0, r0, #2
- str r1, [r7, r0]
- add r1, r0, #0
- ldr r2, [r4, #0x5c]
- sub r1, #8
- str r2, [r7, r1]
- add r1, r4, #0
- add r1, #0x98
- ldr r2, [r1]
- add r1, r0, #0
- add r1, #0x14
- str r2, [r7, r1]
- add r1, r4, #0
- add r1, #0x9c
- ldr r2, [r1]
- add r1, r0, #0
- add r1, #0x20
- str r2, [r7, r1]
- add r1, r0, #0
- ldr r2, _0222E24C ; =0x00002410
- add r1, #0x7c
- ldr r3, [r4, r2]
- add r0, #0x5c
- str r3, [r7, r1]
- add r1, r2, #0
- add r1, #0xc
- ldrb r3, [r4, r1]
- mov r1, #0x3f
- add r2, #0x28
- and r1, r3
- str r1, [r7, #0x14]
- ldr r1, [r4, r2]
- mov r2, #4
- str r1, [r7, r0]
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- mov r3, #0
- bl MOD11_0224C474
- mov r1, #0x5e
- lsl r1, r1, #2
- str r0, [r7, r1]
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- mov r2, #3
- mov r3, #0
- bl MOD11_0224C474
- mov r1, #0x4e
- lsl r1, r1, #2
- ldr r2, [r7, r1]
- mov r3, #0
- add r0, r2, r0
- str r0, [r7, r1]
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- mov r2, #6
- bl MOD11_0224C474
- add r5, r0, #0
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- mov r2, #6
- mov r3, #2
- bl MOD11_0224C474
- mov r1, #0x4f
- lsl r1, r1, #2
- ldr r2, [r7, r1]
- add r0, r5, r0
- add r0, r2, r0
- str r0, [r7, r1]
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- mov r2, #7
- mov r3, #0
- bl MOD11_0224C474
- add r5, r0, #0
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- mov r2, #7
- mov r3, #2
- bl MOD11_0224C474
- mov r1, #5
- lsl r1, r1, #6
- ldr r2, [r7, r1]
- add r0, r5, r0
- add r0, r2, r0
- str r0, [r7, r1]
- add r7, r1, #0
- mov r6, #0
- add r5, r4, #0
- add r7, #0x8c
-_0222E10A:
- ldr r0, [r5, r7]
- bl FreeToHeap
- add r6, r6, #1
- add r5, #0x10
- cmp r6, #4
- blt _0222E10A
- ldr r0, [r4, #0x18]
- bl FreeToHeap
- ldr r0, [r4, #0x28]
- mov r1, #0
- bl FUN_02003038
- ldr r0, [r4, #0x28]
- mov r1, #1
- bl FUN_02003038
- ldr r0, [r4, #0x28]
- mov r1, #2
- bl FUN_02003038
- ldr r0, [r4, #0x28]
- mov r1, #3
- bl FUN_02003038
- ldr r0, [r4, #0x28]
- bl FUN_02002FEC
- ldr r0, [r4, #0xc]
- bl DestroyMsgData
- ldr r0, [r4, #0x10]
- bl DestroyMsgData
- ldr r0, [r4, #0x14]
- bl FUN_0200AB18
- mov r0, #0x71
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl FUN_02014C28
- bl FUN_02012EAC
- add r0, r4, #0
- add r0, #0x8c
- ldr r0, [r0]
- bl MOD08_02212024
- ldr r0, [r4, #0x30]
- bl MOD11_0223D284
- ldr r0, [r4, #0x44]
- mov r6, #0
- cmp r0, #0
- ble _0222E194
- ldr r7, _0222E250 ; =0x000023F9
- add r5, r4, #0
-_0222E180:
- ldrb r2, [r4, r7]
- ldr r1, [r5, #0x34]
- add r0, r4, #0
- bl MOD11_0224CB54
- ldr r0, [r4, #0x44]
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, r0
- blt _0222E180
-_0222E194:
- add r0, r4, #0
- add r0, #0x88
- ldr r0, [r0]
- bl FUN_020072E8
- ldr r0, _0222E250 ; =0x000023F9
- ldrb r0, [r4, r0]
- cmp r0, #2
- beq _0222E1AC
- add r0, r4, #0
- bl MOD11_0222D840
-_0222E1AC:
- mov r0, #0
- bl FUN_02002B60
- mov r0, #0
- bl FUN_02002B7C
- mov r0, #0
- bl FUN_02002BB8
- ldr r0, [r4, #8]
- mov r1, #3
- bl FUN_020191A4
- ldr r0, [r4, #4]
- bl FreeToHeap
- mov r0, #0x87
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl FreeToHeap
- mov r0, #0x22
- lsl r0, r0, #4
- ldr r0, [r4, r0]
- bl FreeToHeap
- mov r0, #0x6a
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl FUN_0200B990
- mov r0, #2
- bl FUN_02002CF8
- ldr r0, [r4, #0x1c]
- bl FUN_0200CAB4
- ldr r0, [r4, #0x20]
- bl FUN_0200CAB4
- bl FUN_0201CD04
- ldr r0, [r4]
- bl MOD11_0222EFD4
- ldr r0, _0222E254 ; =0x00002430
- ldr r0, [r4, r0]
- bl seedr_LC
- add r0, r4, #0
- bl MOD11_02231474
- cmp r0, #0
- beq _0222E220
- ldr r0, _0222E258 ; =0x00000704
- mov r1, #0
- bl FUN_020054F0
-_0222E220:
- mov r0, #0x72
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- bl FUN_0201C350
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, _0222E25C ; =SDK_OVERLAY_MODULE_08_ID
- bl UnloadOverlayByID
- bl FUN_02033590
- cmp r0, #0
- bne _0222E244
- ldr r0, _0222E260 ; =SDK_OVERLAY_MODULE_16_ID
- bl UnloadOverlayByID
-_0222E244:
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0222E248: .word 0x0000241C
-_0222E24C: .word 0x00002410
-_0222E250: .word 0x000023F9
-_0222E254: .word 0x00002430
-_0222E258: .word 0x00000704
-_0222E25C: .word SDK_OVERLAY_MODULE_08_ID
-_0222E260: .word SDK_OVERLAY_MODULE_16_ID
-
- thumb_func_start MOD11_0222E264
-MOD11_0222E264: ; 0x0222E264
- push {r4, r5, r6, r7, lr}
- sub sp, #0x9c
- add r5, r0, #0
- add r4, r1, #0
- bl FUN_0201E6D8
- mov r0, #0
- bl FUN_0200E394
- mov r0, #1
- bl FUN_0200E394
- ldr r6, _0222E450 ; =0x0225DA68
- add r3, sp, #0x20
- mov r2, #5
-_0222E282:
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _0222E282
- add r0, sp, #0x20
- bl FUN_0201E66C
- mov r1, #6
- mov r2, #2
- mov r0, #0
- lsl r1, r1, #0x18
- lsl r2, r2, #0x12
- bl MIi_CpuClear32
- mov r1, #0x62
- mov r2, #2
- mov r0, #0
- lsl r1, r1, #0x14
- lsl r2, r2, #0x10
- bl MIi_CpuClear32
- mov r1, #0x19
- mov r2, #1
- mov r0, #0
- lsl r1, r1, #0x16
- lsl r2, r2, #0x12
- bl MIi_CpuClear32
- mov r1, #0x66
- mov r2, #2
- mov r0, #0
- lsl r1, r1, #0x14
- lsl r2, r2, #0x10
- bl MIi_CpuClear32
- ldr r6, _0222E454 ; =0x0225D9A8
- add r3, sp, #0x10
- add r2, r3, #0
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- add r0, r2, #0
- bl FUN_02016BBC
- ldr r1, _0222E458 ; =0x000023FB
- mov r0, #1
- ldrb r2, [r5, r1]
- ldr r6, _0222E45C ; =0x0225DB34
- add r3, sp, #0x48
- bic r2, r0
- mov r0, #1
- orr r0, r2
- strb r0, [r5, r1]
- mov r2, #0xa
-_0222E2F0:
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _0222E2F0
- ldr r0, [r6]
- mov r1, #1
- str r0, [r3]
- add r0, r4, #0
- add r2, sp, #0x48
- mov r3, #0
- bl FUN_02016C18
- add r0, r4, #0
- mov r1, #1
- bl FUN_02018744
- add r0, r4, #0
- mov r1, #2
- add r2, sp, #0x64
- mov r3, #0
- bl FUN_02016C18
- add r0, r4, #0
- mov r1, #2
- bl FUN_02018744
- add r0, r4, #0
- mov r1, #3
- add r2, sp, #0x80
- mov r3, #0
- bl FUN_02016C18
- add r0, r4, #0
- mov r1, #3
- bl FUN_02018744
- ldr r1, _0222E460 ; =0x04000008
- mov r0, #3
- ldrh r2, [r1]
- bic r2, r0
- mov r0, #1
- orr r2, r0
- strh r2, [r1]
- add r1, r0, #0
- bl FUN_0201E6E4
- add r0, r4, #0
- bl MOD11_02258450
- add r0, r5, #0
- bl MOD11_02230E44
- add r7, r0, #0
- lsl r0, r7, #0x18
- lsr r0, r0, #0x18
- str r0, [sp]
- mov r0, #5
- mov r1, #1
- str r0, [sp, #4]
- add r0, r4, #0
- add r2, r1, #0
- mov r3, #0xa
- bl FUN_0200D274
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- mov r0, #5
- mov r1, #9
- str r0, [sp, #0xc]
- lsl r1, r1, #0xa
- ldr r1, [r5, r1]
- mov r0, #7
- add r1, r1, #3
- add r2, r4, #0
- mov r3, #3
- bl FUN_0200687C
- add r0, r5, #0
- bl MOD11_02230C68
- add r6, r0, #0
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r2, #9
- str r0, [sp, #8]
- lsl r2, r2, #0xa
- ldr r3, [r5, r2]
- ldr r0, [r5, #0x28]
- lsl r2, r3, #1
- add r2, r3, r2
- add r2, #0x9e
- mov r1, #7
- add r2, r2, r6
- mov r3, #5
- bl FUN_020030E8
- add r0, r7, #0
- bl FUN_0200CD64
- add r2, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- mov r0, #0xa0
- str r0, [sp, #8]
- ldr r0, [r5, #0x28]
- mov r1, #0x26
- mov r3, #5
- bl FUN_020030E8
- mov r0, #0
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- mov r0, #0xb0
- str r0, [sp, #8]
- ldr r0, [r5, #0x28]
- mov r1, #0xe
- mov r2, #7
- mov r3, #5
- bl FUN_020030E8
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- mov r0, #5
- str r0, [sp, #0xc]
- mov r0, #7
- mov r1, #2
- add r2, r4, #0
- mov r3, #3
- bl FUN_020068C8
- mov r0, #1
- lsl r0, r0, #0x1a
- ldr r2, [r0]
- ldr r1, _0222E464 ; =0xFFFF1FFF
- ldr r3, _0222E468 ; =0x04001000
- and r2, r1
- str r2, [r0]
- ldr r2, [r3]
- and r1, r2
- add r2, r0, #0
- str r1, [r3]
- add r2, #0x48
- ldrh r3, [r2]
- mov r1, #0x3f
- add r0, #0x4a
- bic r3, r1
- strh r3, [r2]
- ldrh r2, [r0]
- bic r2, r1
- strh r2, [r0]
- bl FUN_0201E788
- mov r0, #0x10
- mov r1, #1
- bl FUN_0201E6E4
- mov r0, #0x10
- mov r1, #1
- bl FUN_0201E74C
- ldr r0, _0222E46C ; =MOD11_0222F01C
- add r1, r5, #0
- bl FUN_02015F10
- add sp, #0x9c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0222E450: .word 0x0225DA68
-_0222E454: .word 0x0225D9A8
-_0222E458: .word 0x000023FB
-_0222E45C: .word 0x0225DB34
-_0222E460: .word 0x04000008
-_0222E464: .word 0xFFFF1FFF
-_0222E468: .word 0x04001000
-_0222E46C: .word MOD11_0222F01C
-
- thumb_func_start MOD11_0222E470
-MOD11_0222E470: ; 0x0222E470
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- bl MOD11_02230294
- add r4, r0, #0
- mov r0, #0x5f
- lsl r0, r0, #2
- add r0, r5, r0
- add r1, r5, #0
- mov r2, #0
- add r3, r4, #0
- bl MOD11_022583D8
- mov r0, #0x63
- lsl r0, r0, #2
- add r0, r5, r0
- add r1, r5, #0
- mov r2, #1
- add r3, r4, #0
- bl MOD11_022583D8
- add r0, r5, #0
- bl MOD11_0222FF78
- str r0, [sp]
- ldr r0, [r5, #0x44]
- mov r4, #0
- cmp r0, #0
- ble _0222E4E2
- add r6, r5, #0
-_0222E4AC:
- ldr r1, [sp]
- add r0, r5, #0
- mov r2, #2
- add r3, r4, #0
- bl MOD11_0224C474
- add r7, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r7, #0
- bl MOD11_02230014
- mov r1, #0x9a
- mov r2, #0
- bl GetMonDataEncrypted
- add r2, r0, #0
- ldr r1, [r6, #0x34]
- add r0, r5, #0
- add r3, r7, #0
- bl MOD11_0224CA94
- ldr r0, [r5, #0x44]
- add r4, r4, #1
- add r6, r6, #4
- cmp r4, r0
- blt _0222E4AC
-_0222E4E2:
- bl FUN_02033E74
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0222E4E8
-MOD11_0222E4E8: ; 0x0222E4E8
- push {r4, lr}
- add r4, r0, #0
- mov r0, #1
- mov r1, #0
- bl FUN_0201E6E4
- mov r0, #2
- mov r1, #0
- bl FUN_0201E6E4
- add r0, r4, #0
- mov r1, #1
- bl FUN_020178A0
- add r0, r4, #0
- mov r1, #2
- bl FUN_020178A0
- add r0, r4, #0
- mov r1, #3
- bl FUN_020178A0
- add r0, r4, #0
- bl MOD11_022584AC
- pop {r4, pc}
-
- thumb_func_start MOD11_0222E51C
-MOD11_0222E51C: ; 0x0222E51C
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_0222E520
-MOD11_0222E520: ; 0x0222E520
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x40
- add r4, r0, #0
- ldr r0, [r1]
- str r1, [sp, #4]
- str r0, [r4, #0x2c]
- mov r7, #0
- add r6, r4, #0
- add r5, r1, #0
-_0222E532:
- mov r0, #5
- bl FUN_02023928
- add r1, r0, #0
- add r0, r5, #0
- str r1, [r6, #0x48]
- add r0, #0xf8
- ldr r0, [r0]
- bl FUN_0202393C
- mov r0, #0x46
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- add r7, r7, #1
- str r0, [r6, #0x78]
- add r6, r6, #4
- add r5, r5, #4
- cmp r7, #4
- blt _0222E532
- mov r0, #5
- bl FUN_0206EB88
- str r0, [r4, #0x58]
- mov r1, #0x42
- ldr r0, [sp, #4]
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- ldr r1, [r4, #0x58]
- bl FUN_0206EBB4
- mov r0, #5
- bl FUN_02023D6C
- str r0, [r4, #0x60]
- mov r1, #0x11
- ldr r0, [sp, #4]
- lsl r1, r1, #4
- ldr r0, [r0, r1]
- ldr r1, [r4, #0x60]
- bl FUN_02023D80
- mov r1, #0x45
- lsl r1, r1, #2
- ldr r0, [sp, #4]
- add r2, r1, #0
- ldr r0, [r0, r1]
- add r3, r1, #0
- str r0, [r4, #0x64]
- ldr r0, [sp, #4]
- add r2, #0x1c
- ldr r2, [r0, r2]
- add r0, r1, #0
- add r0, #0xa0
- str r2, [r4, r0]
- add r2, r1, #0
- ldr r0, [sp, #4]
- add r2, #0x38
- ldr r2, [r0, r2]
- add r0, r1, #0
- add r0, #0xa4
- str r2, [r4, r0]
- add r2, r1, #0
- ldr r0, [sp, #4]
- sub r2, #8
- ldr r0, [r0, r2]
- add r2, r1, #0
- str r0, [r4, #0x5c]
- ldr r0, [sp, #4]
- add r2, #0x14
- ldr r2, [r0, r2]
- add r0, r4, #0
- add r0, #0x98
- str r2, [r0]
- add r2, r1, #0
- ldr r0, [sp, #4]
- add r2, #0x50
- ldr r2, [r0, r2]
- ldr r0, _0222E8BC ; =0x00002420
- add r3, #0x20
- str r2, [r4, r0]
- ldr r2, [sp, #4]
- ldr r3, [r2, r3]
- add r2, r4, #0
- add r2, #0x9c
- str r3, [r2]
- add r3, r1, #0
- ldr r2, [sp, #4]
- add r3, #0x7c
- ldr r3, [r2, r3]
- add r2, r0, #0
- sub r2, #0x10
- str r3, [r4, r2]
- add r3, r1, #0
- ldr r2, [sp, #4]
- add r3, #0x40
- ldr r3, [r2, r3]
- add r2, r0, #0
- sub r2, #0x24
- str r3, [r4, r2]
- add r3, r1, #0
- ldr r2, [sp, #4]
- add r3, #0x3c
- ldr r3, [r2, r3]
- add r2, r0, #0
- sub r2, #0x20
- str r3, [r4, r2]
- add r3, r1, #0
- ldr r2, [sp, #4]
- add r3, #0x44
- ldr r3, [r2, r3]
- add r2, r0, #0
- sub r2, #0x1c
- str r3, [r4, r2]
- add r3, r1, #0
- ldr r2, [sp, #4]
- add r3, #0x4c
- ldr r3, [r2, r3]
- add r2, r0, #0
- sub r2, #0x14
- str r3, [r4, r2]
- add r3, r1, #0
- ldr r2, [sp, #4]
- add r3, #0x78
- ldr r3, [r2, r3]
- add r2, r0, #0
- sub r2, #0x18
- str r3, [r4, r2]
- add r3, r1, #0
- ldr r2, [sp, #4]
- add r3, #0x80
- ldr r3, [r2, r3]
- add r2, r0, #0
- sub r2, #8
- str r3, [r4, r2]
- add r3, r1, #0
- ldr r2, [sp, #4]
- add r3, #0x54
- ldr r3, [r2, r3]
- add r2, r0, #4
- str r3, [r4, r2]
- add r3, r1, #0
- ldr r2, [sp, #4]
- add r3, #0x58
- ldr r3, [r2, r3]
- add r2, r0, #0
- add r2, #0xc
- str r3, [r4, r2]
- add r3, r1, #0
- ldr r2, [sp, #4]
- add r3, #0x60
- ldr r2, [r2, r3]
- add r0, #8
- str r2, [r4, r0]
- ldr r0, [sp, #4]
- add r1, #0x30
- ldr r0, [r0, r1]
- mov r1, #0x86
- lsl r1, r1, #2
- str r0, [r4, r1]
- ldr r0, [sp, #4]
- sub r1, #0xd4
- ldr r0, [r0, r1]
- cmp r0, #0
- bne _0222E67E
- bl ErrorHandling
-_0222E67E:
- ldr r5, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- str r4, [sp, #0x30]
- add r6, r5, #0
- add r7, r4, #0
-_0222E68A:
- ldr r0, [sp, #0x30]
- ldr r1, [r5, #0x18]
- add r0, #0xa0
- strh r1, [r0]
- add r3, r6, #0
- add r2, r7, #0
- mov r0, #6
- add r3, #0x28
- add r2, #0xac
- mov ip, r0
-_0222E69E:
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- mov r0, ip
- sub r0, r0, #1
- mov ip, r0
- bne _0222E69E
- ldr r0, [r3]
- add r5, r5, #4
- str r0, [r2]
- ldr r0, [sp, #0x30]
- add r6, #0x34
- add r0, r0, #2
- str r0, [sp, #0x30]
- ldr r0, [sp, #8]
- add r7, #0x34
- add r0, r0, #1
- str r0, [sp, #8]
- cmp r0, #4
- blt _0222E68A
- add r0, r4, #0
- bl MOD11_0223D1DC
- str r0, [r4, #0x30]
- mov r6, #0
- add r5, r4, #0
- mov r7, #5
-_0222E6D2:
- add r0, r7, #0
- bl FUN_0206B8AC
- str r0, [r5, #0x68]
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #4
- blt _0222E6D2
- ldr r0, [r4, #0x2c]
- mov r1, #4
- tst r1, r0
- bne _0222E6EC
- b _0222EA8A
-_0222E6EC:
- add r0, r4, #0
- bl FUN_0206BF90
- bl FUN_02031190
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x34]
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_0222FEC0
- ldr r1, [r4, #0x2c]
- mov r0, #0x80
- tst r0, r1
- beq _0222E7D0
- ldr r6, _0222E8C0 ; =0x0225DC18
- mov r5, #0
- add r7, r4, #0
-_0222E712:
- add r0, sp, #0x3c
- strb r5, [r0]
- ldrb r1, [r6]
- strb r1, [r0, #1]
- add r0, r4, #0
- add r1, sp, #0x3c
- bl MOD11_0224CA64
- str r0, [r7, #0x34]
- add r5, r5, #1
- add r6, r6, #1
- add r7, r7, #4
- cmp r5, #4
- blt _0222E712
- str r5, [r4, #0x44]
- mov r6, #0
- add r5, r4, #0
-_0222E734:
- ldr r1, [r5, #0x34]
- add r0, r4, #0
- bl MOD11_0225377C
- ldr r0, [sp, #4]
- ldr r1, [r5, #0x68]
- ldr r0, [r0, #4]
- bl FUN_0206BAD0
- ldr r0, [sp, #4]
- add r6, r6, #1
- add r0, r0, #4
- add r5, r5, #4
- str r0, [sp, #4]
- cmp r6, #4
- blt _0222E734
- mov r0, #0
- str r0, [sp, #0xc]
- ldr r0, [r4, #0x44]
- cmp r0, #0
- ble _0222E7C6
- add r7, r4, #0
-_0222E760:
- ldr r0, [r7, #0x68]
- mov r5, #0
- bl FUN_0206B9AC
- cmp r0, #0
- ble _0222E7AA
-_0222E76C:
- ldr r0, [r7, #0x68]
- add r1, r5, #0
- bl FUN_0206B9B0
- mov r1, #5
- mov r2, #0
- add r6, r0, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _0222E79E
- add r0, r6, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- bne _0222E79E
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- bne _0222E7AA
-_0222E79E:
- ldr r0, [r7, #0x68]
- add r5, r5, #1
- bl FUN_0206B9AC
- cmp r5, r0
- blt _0222E76C
-_0222E7AA:
- str r5, [sp]
- ldr r1, [r4, #0x30]
- ldr r3, [sp, #0xc]
- add r0, r4, #0
- mov r2, #2
- bl MOD11_0224C54C
- ldr r0, [sp, #0xc]
- ldr r1, [r4, #0x44]
- add r0, r0, #1
- add r7, r7, #4
- str r0, [sp, #0xc]
- cmp r0, r1
- blt _0222E760
-_0222E7C6:
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- bl MOD11_0224B240
- b _0222EA80
-_0222E7D0:
- mov r0, #8
- tst r0, r1
- beq _0222E8AC
- mov r5, #0
- add r6, r4, #0
-_0222E7DA:
- add r0, sp, #0x3c
- strb r5, [r0]
- ldr r0, [sp, #0x34]
- bl FUN_020313CC
- add r7, r0, #0
- add r0, r5, #0
- bl FUN_020313CC
- ldr r1, _0222E8C4 ; =0x0225D9C8
- lsl r2, r7, #2
- add r1, r1, r2
- ldrb r1, [r0, r1]
- add r0, sp, #0x3c
- strb r1, [r0, #1]
- add r0, r4, #0
- add r1, sp, #0x3c
- bl MOD11_0224CA64
- str r0, [r6, #0x34]
- add r5, r5, #1
- add r6, r6, #4
- cmp r5, #4
- blt _0222E7DA
- str r5, [r4, #0x44]
- mov r6, #0
- add r5, r4, #0
-_0222E810:
- ldr r1, [r5, #0x34]
- add r0, r4, #0
- bl MOD11_0225377C
- ldr r0, [sp, #4]
- ldr r1, [r5, #0x68]
- ldr r0, [r0, #4]
- bl FUN_0206BAD0
- ldr r0, [sp, #4]
- add r6, r6, #1
- add r0, r0, #4
- add r5, r5, #4
- str r0, [sp, #4]
- cmp r6, #4
- blt _0222E810
- mov r0, #0
- str r0, [sp, #0x10]
- ldr r0, [r4, #0x44]
- cmp r0, #0
- ble _0222E8A2
- add r7, r4, #0
-_0222E83C:
- ldr r0, [r7, #0x68]
- mov r5, #0
- bl FUN_0206B9AC
- cmp r0, #0
- ble _0222E886
-_0222E848:
- ldr r0, [r7, #0x68]
- add r1, r5, #0
- bl FUN_0206B9B0
- mov r1, #5
- mov r2, #0
- add r6, r0, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _0222E87A
- add r0, r6, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- bne _0222E87A
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- bne _0222E886
-_0222E87A:
- ldr r0, [r7, #0x68]
- add r5, r5, #1
- bl FUN_0206B9AC
- cmp r5, r0
- blt _0222E848
-_0222E886:
- str r5, [sp]
- ldr r1, [r4, #0x30]
- ldr r3, [sp, #0x10]
- add r0, r4, #0
- mov r2, #2
- bl MOD11_0224C54C
- ldr r0, [sp, #0x10]
- ldr r1, [r4, #0x44]
- add r0, r0, #1
- add r7, r7, #4
- str r0, [sp, #0x10]
- cmp r0, r1
- blt _0222E83C
-_0222E8A2:
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- bl MOD11_0224B240
- b _0222EA80
-_0222E8AC:
- mov r0, #2
- tst r0, r1
- bne _0222E8B4
- b _0222E9D4
-_0222E8B4:
- ldr r0, [sp, #0x34]
- ldr r1, _0222E8C8 ; =0x0225D9A0
- b _0222E8CC
- nop
-_0222E8BC: .word 0x00002420
-_0222E8C0: .word 0x0225DC18
-_0222E8C4: .word 0x0225D9C8
-_0222E8C8: .word 0x0225D9A0
-_0222E8CC:
- lsl r0, r0, #2
- mov r5, #0
- add r6, r1, r0
- add r7, r4, #0
-_0222E8D4:
- add r0, sp, #0x3c
- strb r5, [r0]
- ldrb r1, [r6]
- strb r1, [r0, #1]
- add r0, r4, #0
- add r1, sp, #0x3c
- bl MOD11_0224CA64
- add r1, r0, #0
- add r0, r4, #0
- str r1, [r7, #0x34]
- bl MOD11_0225377C
- add r5, r5, #1
- add r6, r6, #1
- add r7, r7, #4
- cmp r5, #4
- blt _0222E8D4
- str r5, [r4, #0x44]
- mov r6, #0
- add r5, r4, #0
-_0222E8FE:
- ldr r0, [sp, #4]
- ldr r1, [r5, #0x68]
- ldr r0, [r0, #4]
- bl FUN_0206BAD0
- ldr r0, [sp, #4]
- add r6, r6, #1
- add r0, r0, #4
- add r5, r5, #4
- str r0, [sp, #4]
- cmp r6, #4
- blt _0222E8FE
- mov r0, #0
- str r0, [sp, #0x14]
- ldr r0, [r4, #0x44]
- cmp r0, #0
- ble _0222E9D2
-_0222E920:
- ldr r0, [sp, #0x14]
- mov r1, #1
- and r0, r1
- str r0, [sp, #0x2c]
- lsl r0, r0, #2
- add r7, r4, r0
- ldr r0, [r7, #0x68]
- mov r6, #0
- bl FUN_0206B9AC
- cmp r0, #0
- ble _0222E9B8
-_0222E938:
- ldr r0, [r7, #0x68]
- add r1, r6, #0
- bl FUN_0206B9B0
- ldr r1, [sp, #0x14]
- add r5, r0, #0
- cmp r1, #1
- ble _0222E984
- ldr r1, [r4, #0x30]
- ldr r3, [sp, #0x2c]
- add r0, r4, #0
- mov r2, #2
- bl MOD11_0224C474
- cmp r6, r0
- beq _0222E9AC
- add r0, r5, #0
- mov r1, #5
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _0222E9AC
- add r0, r5, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- bne _0222E9AC
- add r0, r5, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- bne _0222E9B8
- b _0222E9AC
-_0222E984:
- mov r1, #5
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _0222E9AC
- add r0, r5, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- bne _0222E9AC
- add r0, r5, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- bne _0222E9B8
-_0222E9AC:
- ldr r0, [r7, #0x68]
- add r6, r6, #1
- bl FUN_0206B9AC
- cmp r6, r0
- blt _0222E938
-_0222E9B8:
- str r6, [sp]
- ldr r1, [r4, #0x30]
- ldr r3, [sp, #0x14]
- add r0, r4, #0
- mov r2, #2
- bl MOD11_0224C54C
- ldr r0, [sp, #0x14]
- ldr r1, [r4, #0x44]
- add r0, r0, #1
- str r0, [sp, #0x14]
- cmp r0, r1
- blt _0222E920
-_0222E9D2:
- b _0222EA80
-_0222E9D4:
- ldr r0, [sp, #0x34]
- ldr r1, _0222EC6C ; =0x0225D99C
- lsl r0, r0, #1
- mov r5, #0
- add r6, r1, r0
- add r7, r4, #0
-_0222E9E0:
- add r0, sp, #0x3c
- strb r5, [r0]
- ldrb r1, [r6]
- strb r1, [r0, #1]
- add r0, r4, #0
- add r1, sp, #0x3c
- bl MOD11_0224CA64
- add r1, r0, #0
- add r0, r4, #0
- str r1, [r7, #0x34]
- bl MOD11_0225377C
- add r5, r5, #1
- add r6, r6, #1
- add r7, r7, #4
- cmp r5, #2
- blt _0222E9E0
- mov r0, #0
- str r5, [r4, #0x44]
- str r0, [sp, #0x18]
- add r7, r4, #0
-_0222EA0C:
- ldr r0, [sp, #4]
- ldr r1, [r7, #0x68]
- ldr r0, [r0, #4]
- bl FUN_0206BAD0
- ldr r0, [r7, #0x68]
- mov r5, #0
- bl FUN_0206B9AC
- cmp r0, #0
- ble _0222EA60
-_0222EA22:
- ldr r0, [r7, #0x68]
- add r1, r5, #0
- bl FUN_0206B9B0
- mov r1, #5
- mov r2, #0
- add r6, r0, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _0222EA54
- add r0, r6, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- bne _0222EA54
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- bne _0222EA60
-_0222EA54:
- ldr r0, [r7, #0x68]
- add r5, r5, #1
- bl FUN_0206B9AC
- cmp r5, r0
- blt _0222EA22
-_0222EA60:
- str r5, [sp]
- ldr r1, [r4, #0x30]
- ldr r3, [sp, #0x18]
- add r0, r4, #0
- mov r2, #2
- bl MOD11_0224C54C
- ldr r0, [sp, #4]
- add r7, r7, #4
- add r0, r0, #4
- str r0, [sp, #4]
- ldr r0, [sp, #0x18]
- add r0, r0, #1
- str r0, [sp, #0x18]
- cmp r0, #4
- blt _0222EA0C
-_0222EA80:
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- bl MOD11_0224B240
- b _0222EE3E
-_0222EA8A:
- mov r1, #0x10
- tst r1, r0
- beq _0222EB90
- ldr r6, _0222EC70 ; =0x0225DC18
- mov r5, #0
- add r7, r4, #0
-_0222EA96:
- add r0, sp, #0x3c
- strb r5, [r0]
- ldrb r1, [r6]
- strb r1, [r0, #1]
- add r0, r4, #0
- add r1, sp, #0x3c
- bl MOD11_0224CA64
- add r1, r0, #0
- add r0, r4, #0
- str r1, [r7, #0x34]
- bl MOD11_0225377C
- add r5, r5, #1
- add r6, r6, #1
- add r7, r7, #4
- cmp r5, #4
- blt _0222EA96
- str r5, [r4, #0x44]
- mov r6, #0
- add r5, r4, #0
-_0222EAC0:
- ldr r0, [sp, #4]
- ldr r1, [r5, #0x68]
- ldr r0, [r0, #4]
- bl FUN_0206BAD0
- ldr r0, [sp, #4]
- add r6, r6, #1
- add r0, r0, #4
- add r5, r5, #4
- str r0, [sp, #4]
- cmp r6, #4
- blt _0222EAC0
- ldr r0, [r4, #0x44]
- mov r7, #0
- cmp r0, #0
- ble _0222EB80
-_0222EAE0:
- add r0, r4, #0
- add r1, r7, #0
- mov r5, #0
- bl MOD11_0222FFC8
- cmp r0, #0
- ble _0222EB64
-_0222EAEE:
- add r0, r4, #0
- add r1, r7, #0
- add r2, r5, #0
- bl MOD11_02230014
- add r6, r0, #0
- cmp r7, #2
- bne _0222EB2E
- mov r1, #5
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _0222EB56
- add r0, r6, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- bne _0222EB56
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _0222EB56
- ldr r0, [sp, #0x38]
- cmp r0, r5
- bne _0222EB64
- b _0222EB56
-_0222EB2E:
- mov r1, #5
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _0222EB56
- add r0, r6, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- bne _0222EB56
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- bne _0222EB64
-_0222EB56:
- add r0, r4, #0
- add r1, r7, #0
- add r5, r5, #1
- bl MOD11_0222FFC8
- cmp r5, r0
- blt _0222EAEE
-_0222EB64:
- str r5, [sp]
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- mov r2, #2
- add r3, r7, #0
- bl MOD11_0224C54C
- cmp r7, #0
- bne _0222EB78
- str r5, [sp, #0x38]
-_0222EB78:
- ldr r0, [r4, #0x44]
- add r7, r7, #1
- cmp r7, r0
- blt _0222EAE0
-_0222EB80:
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- bl MOD11_0224B240
- ldr r0, _0222EC74 ; =0x000023F8
- mov r1, #1
- strb r1, [r4, r0]
- b _0222EE3E
-_0222EB90:
- mov r1, #8
- tst r1, r0
- beq _0222EC60
- ldr r6, _0222EC70 ; =0x0225DC18
- mov r5, #0
- add r7, r4, #0
-_0222EB9C:
- add r0, sp, #0x3c
- strb r5, [r0]
- ldrb r1, [r6]
- strb r1, [r0, #1]
- add r0, r4, #0
- add r1, sp, #0x3c
- bl MOD11_0224CA64
- add r1, r0, #0
- add r0, r4, #0
- str r1, [r7, #0x34]
- bl MOD11_0225377C
- add r5, r5, #1
- add r6, r6, #1
- add r7, r7, #4
- cmp r5, #4
- blt _0222EB9C
- str r5, [r4, #0x44]
- mov r6, #0
- add r5, r4, #0
-_0222EBC6:
- ldr r0, [sp, #4]
- ldr r1, [r5, #0x68]
- ldr r0, [r0, #4]
- bl FUN_0206BAD0
- ldr r0, [sp, #4]
- add r6, r6, #1
- add r0, r0, #4
- add r5, r5, #4
- str r0, [sp, #4]
- cmp r6, #4
- blt _0222EBC6
- mov r0, #0
- str r0, [sp, #0x1c]
- ldr r0, [r4, #0x44]
- cmp r0, #0
- ble _0222EC50
- add r7, r4, #0
-_0222EBEA:
- ldr r0, [r7, #0x68]
- mov r5, #0
- bl FUN_0206B9AC
- cmp r0, #0
- ble _0222EC34
-_0222EBF6:
- ldr r0, [r7, #0x68]
- add r1, r5, #0
- bl FUN_0206B9B0
- mov r1, #5
- mov r2, #0
- add r6, r0, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _0222EC28
- add r0, r6, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- bne _0222EC28
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- bne _0222EC34
-_0222EC28:
- ldr r0, [r7, #0x68]
- add r5, r5, #1
- bl FUN_0206B9AC
- cmp r5, r0
- blt _0222EBF6
-_0222EC34:
- str r5, [sp]
- ldr r1, [r4, #0x30]
- ldr r3, [sp, #0x1c]
- add r0, r4, #0
- mov r2, #2
- bl MOD11_0224C54C
- ldr r0, [sp, #0x1c]
- ldr r1, [r4, #0x44]
- add r0, r0, #1
- add r7, r7, #4
- str r0, [sp, #0x1c]
- cmp r0, r1
- blt _0222EBEA
-_0222EC50:
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- bl MOD11_0224B240
- ldr r0, _0222EC74 ; =0x000023F8
- mov r1, #1
- strb r1, [r4, r0]
- b _0222EE3E
-_0222EC60:
- mov r1, #2
- tst r0, r1
- bne _0222EC68
- b _0222ED8A
-_0222EC68:
- ldr r6, _0222EC70 ; =0x0225DC18
- b _0222EC78
- .align 2, 0
-_0222EC6C: .word 0x0225D99C
-_0222EC70: .word 0x0225DC18
-_0222EC74: .word 0x000023F8
-_0222EC78:
- mov r5, #0
- add r7, r4, #0
-_0222EC7C:
- add r0, sp, #0x3c
- strb r5, [r0]
- ldrb r1, [r6]
- strb r1, [r0, #1]
- add r0, r4, #0
- add r1, sp, #0x3c
- bl MOD11_0224CA64
- add r1, r0, #0
- add r0, r4, #0
- str r1, [r7, #0x34]
- bl MOD11_0225377C
- add r5, r5, #1
- add r6, r6, #1
- add r7, r7, #4
- cmp r5, #4
- blt _0222EC7C
- str r5, [r4, #0x44]
- mov r6, #0
- add r5, r4, #0
-_0222ECA6:
- ldr r0, [sp, #4]
- ldr r1, [r5, #0x68]
- ldr r0, [r0, #4]
- bl FUN_0206BAD0
- ldr r0, [sp, #4]
- add r6, r6, #1
- add r0, r0, #4
- add r5, r5, #4
- str r0, [sp, #4]
- cmp r6, #4
- blt _0222ECA6
- mov r0, #0
- str r0, [sp, #0x20]
- ldr r0, [r4, #0x44]
- cmp r0, #0
- ble _0222ED7A
-_0222ECC8:
- ldr r0, [sp, #0x20]
- mov r1, #1
- and r0, r1
- str r0, [sp, #0x28]
- lsl r0, r0, #2
- add r7, r4, r0
- ldr r0, [r7, #0x68]
- mov r6, #0
- bl FUN_0206B9AC
- cmp r0, #0
- ble _0222ED60
-_0222ECE0:
- ldr r0, [r7, #0x68]
- add r1, r6, #0
- bl FUN_0206B9B0
- ldr r1, [sp, #0x20]
- add r5, r0, #0
- cmp r1, #1
- ble _0222ED2C
- ldr r1, [r4, #0x30]
- ldr r3, [sp, #0x28]
- add r0, r4, #0
- mov r2, #2
- bl MOD11_0224C474
- cmp r6, r0
- beq _0222ED54
- add r0, r5, #0
- mov r1, #5
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _0222ED54
- add r0, r5, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- bne _0222ED54
- add r0, r5, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- bne _0222ED60
- b _0222ED54
-_0222ED2C:
- mov r1, #5
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _0222ED54
- add r0, r5, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- bne _0222ED54
- add r0, r5, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- bne _0222ED60
-_0222ED54:
- ldr r0, [r7, #0x68]
- add r6, r6, #1
- bl FUN_0206B9AC
- cmp r6, r0
- blt _0222ECE0
-_0222ED60:
- str r6, [sp]
- ldr r1, [r4, #0x30]
- ldr r3, [sp, #0x20]
- add r0, r4, #0
- mov r2, #2
- bl MOD11_0224C54C
- ldr r0, [sp, #0x20]
- ldr r1, [r4, #0x44]
- add r0, r0, #1
- str r0, [sp, #0x20]
- cmp r0, r1
- blt _0222ECC8
-_0222ED7A:
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- bl MOD11_0224B240
- ldr r0, _0222EEE0 ; =0x000023F8
- mov r1, #1
- strb r1, [r4, r0]
- b _0222EE3E
-_0222ED8A:
- ldr r6, _0222EEE4 ; =0x0225D998
- mov r5, #0
- add r7, r4, #0
-_0222ED90:
- add r0, sp, #0x3c
- strb r5, [r0]
- ldrb r1, [r6]
- strb r1, [r0, #1]
- add r0, r4, #0
- add r1, sp, #0x3c
- bl MOD11_0224CA64
- add r1, r0, #0
- add r0, r4, #0
- str r1, [r7, #0x34]
- bl MOD11_0225377C
- add r5, r5, #1
- add r6, r6, #1
- add r7, r7, #4
- cmp r5, #2
- blt _0222ED90
- mov r0, #0
- str r5, [r4, #0x44]
- str r0, [sp, #0x24]
- add r7, r4, #0
-_0222EDBC:
- ldr r0, [sp, #4]
- ldr r1, [r7, #0x68]
- ldr r0, [r0, #4]
- bl FUN_0206BAD0
- ldr r0, [r7, #0x68]
- mov r5, #0
- bl FUN_0206B9AC
- cmp r0, #0
- ble _0222EE10
-_0222EDD2:
- ldr r0, [r7, #0x68]
- add r1, r5, #0
- bl FUN_0206B9B0
- mov r1, #5
- mov r2, #0
- add r6, r0, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _0222EE04
- add r0, r6, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- bne _0222EE04
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- bne _0222EE10
-_0222EE04:
- ldr r0, [r7, #0x68]
- add r5, r5, #1
- bl FUN_0206B9AC
- cmp r5, r0
- blt _0222EDD2
-_0222EE10:
- str r5, [sp]
- ldr r1, [r4, #0x30]
- ldr r3, [sp, #0x24]
- add r0, r4, #0
- mov r2, #2
- bl MOD11_0224C54C
- ldr r0, [sp, #4]
- add r7, r7, #4
- add r0, r0, #4
- str r0, [sp, #4]
- ldr r0, [sp, #0x24]
- add r0, r0, #1
- str r0, [sp, #0x24]
- cmp r0, #4
- blt _0222EDBC
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- bl MOD11_0224B240
- ldr r0, _0222EEE0 ; =0x000023F8
- mov r1, #1
- strb r1, [r4, r0]
-_0222EE3E:
- mov r0, #2
- ldr r1, [r4, #0x2c]
- lsl r0, r0, #8
- tst r0, r1
- beq _0222EE5A
- ldr r0, [r4, #0x6c]
- mov r1, #0
- bl FUN_0206B9B0
- add r2, r4, #0
- mov r1, #0x8f
- add r2, #0xf4
- bl GetMonDataEncrypted
-_0222EE5A:
- ldr r1, [r4, #0x2c]
- mov r0, #1
- tst r0, r1
- beq _0222EEDC
- add r0, r4, #0
- add r0, #0xe1
- ldrb r0, [r0]
- bl MOD11_0222EEF0
- cmp r0, #1
- beq _0222EE7C
- ldr r0, _0222EEE8 ; =0x00000149
- ldrb r0, [r4, r0]
- bl MOD11_0222EEF0
- cmp r0, #1
- bne _0222EEDC
-_0222EE7C:
- ldr r0, [r4, #0x68]
- mov r5, #0
- bl FUN_0206B9AC
- cmp r0, #0
- ble _0222EEAC
- ldr r6, _0222EEEC ; =0x00002404
- mov r7, #3
-_0222EE8C:
- ldr r0, [r4, #0x68]
- add r1, r5, #0
- bl FUN_0206B9B0
- ldr r2, [r4, r6]
- add r1, r7, #0
- lsl r2, r2, #0x10
- lsr r2, r2, #0x10
- bl MonApplyFriendshipModEncrypted
- ldr r0, [r4, #0x68]
- add r5, r5, #1
- bl FUN_0206B9AC
- cmp r5, r0
- blt _0222EE8C
-_0222EEAC:
- ldr r0, [r4, #0x70]
- mov r5, #0
- bl FUN_0206B9AC
- cmp r0, #0
- ble _0222EEDC
- ldr r6, _0222EEEC ; =0x00002404
- mov r7, #3
-_0222EEBC:
- ldr r0, [r4, #0x70]
- add r1, r5, #0
- bl FUN_0206B9B0
- ldr r2, [r4, r6]
- add r1, r7, #0
- lsl r2, r2, #0x10
- lsr r2, r2, #0x10
- bl MonApplyFriendshipModEncrypted
- ldr r0, [r4, #0x70]
- add r5, r5, #1
- bl FUN_0206B9AC
- cmp r5, r0
- blt _0222EEBC
-_0222EEDC:
- add sp, #0x40
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0222EEE0: .word 0x000023F8
-_0222EEE4: .word 0x0225D998
-_0222EEE8: .word 0x00000149
-_0222EEEC: .word 0x00002404
-
- thumb_func_start MOD11_0222EEF0
-MOD11_0222EEF0: ; 0x0222EEF0
- sub r0, #0x3e
- cmp r0, #0x11
- bhi _0222EF2A
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0222EF02: ; jump table
- .short _0222EF26 - _0222EF02 - 2 ; case 0
- .short _0222EF2A - _0222EF02 - 2 ; case 1
- .short _0222EF26 - _0222EF02 - 2 ; case 2
- .short _0222EF26 - _0222EF02 - 2 ; case 3
- .short _0222EF26 - _0222EF02 - 2 ; case 4
- .short _0222EF26 - _0222EF02 - 2 ; case 5
- .short _0222EF26 - _0222EF02 - 2 ; case 6
- .short _0222EF26 - _0222EF02 - 2 ; case 7
- .short _0222EF2A - _0222EF02 - 2 ; case 8
- .short _0222EF2A - _0222EF02 - 2 ; case 9
- .short _0222EF2A - _0222EF02 - 2 ; case 10
- .short _0222EF2A - _0222EF02 - 2 ; case 11
- .short _0222EF26 - _0222EF02 - 2 ; case 12
- .short _0222EF26 - _0222EF02 - 2 ; case 13
- .short _0222EF26 - _0222EF02 - 2 ; case 14
- .short _0222EF26 - _0222EF02 - 2 ; case 15
- .short _0222EF26 - _0222EF02 - 2 ; case 16
- .short _0222EF26 - _0222EF02 - 2 ; case 17
-_0222EF26:
- mov r0, #1
- bx lr
-_0222EF2A:
- mov r0, #0
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_0222EF30
-MOD11_0222EF30: ; 0x0222EF30
- push {r3, lr}
- sub sp, #8
- mov r2, #2
- mov r1, #0
- ldr r0, _0222EF4C ; =MOD11_0222EF50
- str r2, [sp]
- str r0, [sp, #4]
- mov r0, #5
- add r3, r1, #0
- bl FUN_02022318
- add sp, #8
- pop {r3, pc}
- nop
-_0222EF4C: .word MOD11_0222EF50
-
- thumb_func_start MOD11_0222EF50
-MOD11_0222EF50: ; 0x0222EF50
- push {r3, lr}
- mov r0, #1
- add r1, r0, #0
- bl FUN_0201E6E4
- ldr r0, _0222EFBC ; =0x04000008
- mov r1, #3
- ldrh r2, [r0]
- bic r2, r1
- mov r1, #1
- orr r1, r2
- strh r1, [r0]
- add r0, #0x58
- ldrh r2, [r0]
- ldr r1, _0222EFC0 ; =0xFFFFCFFD
- and r2, r1
- strh r2, [r0]
- add r2, r1, #2
- ldrh r3, [r0]
- add r1, r1, #2
- and r3, r2
- mov r2, #0x10
- orr r2, r3
- strh r2, [r0]
- ldrh r3, [r0]
- ldr r2, _0222EFC4 ; =0x0000CFFB
- and r3, r2
- strh r3, [r0]
- ldrh r3, [r0]
- sub r2, #0x1c
- and r3, r1
- mov r1, #8
- orr r1, r3
- strh r1, [r0]
- ldrh r1, [r0]
- and r1, r2
- strh r1, [r0]
- mov r0, #0
- add r1, r0, #0
- add r2, r0, #0
- add r3, r0, #0
- bl G3X_SetFog
- mov r0, #0
- ldr r2, _0222EFC8 ; =0x00007FFF
- add r1, r0, #0
- mov r3, #0x3f
- str r0, [sp]
- bl G3X_SetClearColor
- ldr r1, _0222EFCC ; =0xBFFF0000
- ldr r0, _0222EFD0 ; =0x04000580
- str r1, [r0]
- pop {r3, pc}
- .align 2, 0
-_0222EFBC: .word 0x04000008
-_0222EFC0: .word 0xFFFFCFFD
-_0222EFC4: .word 0x0000CFFB
-_0222EFC8: .word 0x00007FFF
-_0222EFCC: .word 0xBFFF0000
-_0222EFD0: .word 0x04000580
-
- thumb_func_start MOD11_0222EFD4
-MOD11_0222EFD4: ; 0x0222EFD4
- ldr r3, _0222EFD8 ; =FUN_020223BC
- bx r3
- .align 2, 0
-_0222EFD8: .word FUN_020223BC
-
- thumb_func_start MOD11_0222EFDC
-MOD11_0222EFDC: ; 0x0222EFDC
- push {r3, r4, r5, lr}
- ldr r3, _0222F014 ; =0x021064B8
- mov r0, #2
- mov r1, #0
- ldr r3, [r3]
- lsl r0, r0, #0xe
- add r2, r1, #0
- blx r3
- ldr r3, _0222F018 ; =0x021064C0
- mov r1, #0
- add r4, r0, #0
- ldr r3, [r3]
- mov r0, #0xc0
- add r2, r1, #0
- blx r3
- add r5, r0, #0
- cmp r4, #0
- bne _0222F004
- bl ErrorHandling
-_0222F004:
- cmp r5, #0
- bne _0222F00C
- bl ErrorHandling
-_0222F00C:
- bl FUN_02012CC8
- pop {r3, r4, r5, pc}
- nop
-_0222F014: .word 0x021064B8
-_0222F018: .word 0x021064C0
-
- thumb_func_start MOD11_0222F01C
-MOD11_0222F01C: ; 0x0222F01C
- push {r3, r4, r5, lr}
- sub sp, #0x50
- add r4, r0, #0
- bl rand_LC
- ldr r1, _0222F0B8 ; =0x000023FB
- ldrb r2, [r4, r1]
- lsl r0, r2, #0x1f
- lsr r0, r0, #0x1f
- beq _0222F040
- mov r0, #1
- bic r2, r0
- strb r2, [r4, r1]
- ldr r0, _0222F0BC ; =0x04000050
- mov r1, #0
- strh r1, [r0]
- ldr r0, _0222F0C0 ; =0x04001050
- strh r1, [r0]
-_0222F040:
- ldr r1, _0222F0B8 ; =0x000023FB
- ldrb r2, [r4, r1]
- lsl r0, r2, #0x1e
- lsr r0, r0, #0x1f
- beq _0222F064
- mov r0, #2
- bic r2, r0
- strb r2, [r4, r1]
- ldr r5, _0222F0C4 ; =0x0225DA90
- add r3, sp, #0x28
- mov r2, #5
-_0222F056:
- ldmia r5!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _0222F056
- add r0, sp, #0x28
- bl FUN_0201E66C
-_0222F064:
- ldr r1, _0222F0B8 ; =0x000023FB
- ldrb r2, [r4, r1]
- lsl r0, r2, #0x1d
- lsr r0, r0, #0x1f
- beq _0222F088
- mov r0, #4
- bic r2, r0
- strb r2, [r4, r1]
- ldr r5, _0222F0C8 ; =0x0225DAB8
- add r3, sp, #0
- mov r2, #5
-_0222F07A:
- ldmia r5!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _0222F07A
- add r0, sp, #0
- bl FUN_0201E66C
-_0222F088:
- add r0, r4, #0
- add r0, #0x88
- ldr r0, [r0]
- bl FUN_020081C4
- bl FUN_0201C30C
- bl FUN_0200BC30
- ldr r0, [r4, #0x28]
- bl FUN_0200372C
- ldr r0, [r4, #4]
- bl FUN_0201AB60
- ldr r3, _0222F0CC ; =0x027E0000
- ldr r1, _0222F0D0 ; =0x00003FF8
- mov r0, #1
- ldr r2, [r3, r1]
- orr r0, r2
- str r0, [r3, r1]
- add sp, #0x50
- pop {r3, r4, r5, pc}
- nop
-_0222F0B8: .word 0x000023FB
-_0222F0BC: .word 0x04000050
-_0222F0C0: .word 0x04001050
-_0222F0C4: .word 0x0225DA90
-_0222F0C8: .word 0x0225DAB8
-_0222F0CC: .word 0x027E0000
-_0222F0D0: .word 0x00003FF8
-
- thumb_func_start MOD11_0222F0D4
-MOD11_0222F0D4: ; 0x0222F0D4
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #0xc]
- bl FUN_0200372C
- bl FUN_0201C30C
- ldr r0, [r4, #4]
- bl FUN_0201AB60
- ldr r3, _0222F0F8 ; =0x027E0000
- ldr r1, _0222F0FC ; =0x00003FF8
- mov r0, #1
- ldr r2, [r3, r1]
- orr r0, r2
- str r0, [r3, r1]
- pop {r4, pc}
- nop
-_0222F0F8: .word 0x027E0000
-_0222F0FC: .word 0x00003FF8
-
- thumb_func_start MOD11_0222F100
-MOD11_0222F100: ; 0x0222F100
- push {r4, lr}
- add r4, r1, #0
- ldr r1, [r4, #4]
- mov r0, #5
- bl FUN_020335F0
- ldr r0, _0222F140 ; =0x000023F9
- ldrb r0, [r4, r0]
- cmp r0, #0
- beq _0222F118
- cmp r0, #3
- bne _0222F13E
-_0222F118:
- cmp r0, #0
- bne _0222F120
- bl MOD08_02215A44
-_0222F120:
- add r0, r4, #0
- add r0, #0x88
- ldr r0, [r0]
- bl FUN_02006ED4
- add r4, #0x94
- ldr r0, [r4]
- bl FUN_0200BC1C
- bl FUN_0200BC38
- mov r0, #1
- mov r1, #0
- bl FUN_020222B4
-_0222F13E:
- pop {r4, pc}
- .align 2, 0
-_0222F140: .word 0x000023F9
-
- thumb_func_start MOD11_0222F144
-MOD11_0222F144: ; 0x0222F144
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- add r0, r6, #0
- bl MOD11_0222FF84
- str r0, [sp]
- add r0, r6, #0
- mov r5, #0
- bl MOD11_02231474
- add r4, r0, #0
- add r0, r6, #0
- bl MOD11_0222FF74
- mov r1, #0x22
- lsl r1, r1, #4
- tst r0, r1
- bne _0222F24E
- mov r0, #2
- tst r0, r4
- beq _0222F186
- mov r0, #1
- tst r0, r4
- beq _0222F24E
- ldr r0, _0222F250 ; =0x00000704
- add r1, r5, #0
- bl FUN_020054F0
- add r0, r6, #0
- mov r1, #2
- bl MOD11_02231484
- pop {r3, r4, r5, r6, r7, pc}
-_0222F186:
- ldr r0, [sp]
- add r4, r5, #0
- cmp r0, #0
- ble _0222F1D0
-_0222F18E:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0222FF7C
- add r7, r0, #0
- bl MOD11_02253A58
- cmp r0, #0
- bne _0222F1C8
- add r0, r7, #0
- bl MOD11_02253A70
- add r1, r0, #0
- beq _0222F1C8
- ldr r0, [r1, #0x28]
- ldr r1, [r1, #0x2c]
- lsl r0, r0, #0x10
- lsl r1, r1, #0x10
- lsr r0, r0, #0x10
- lsr r1, r1, #0x10
- mov r2, #0x30
- bl FUN_02079A54
- cmp r0, #1
- bne _0222F1C8
- add r0, r4, #0
- bl MaskOfFlagNo
- orr r5, r0
-_0222F1C8:
- ldr r0, [sp]
- add r4, r4, #1
- cmp r4, r0
- blt _0222F18E
-_0222F1D0:
- cmp r5, #0
- beq _0222F1F6
- add r0, r6, #0
- bl MOD11_02231474
- cmp r0, #0
- bne _0222F1F6
- ldr r0, _0222F250 ; =0x00000704
- bl FUN_020054C8
- add r0, r6, #0
- mov r1, #1
- bl MOD11_02231484
- add r0, r6, #0
- mov r1, #4
- bl MOD11_022314B0
- b _0222F214
-_0222F1F6:
- cmp r5, #0
- bne _0222F214
- add r0, r6, #0
- bl MOD11_02231474
- cmp r0, #0
- beq _0222F214
- ldr r0, _0222F250 ; =0x00000704
- mov r1, #0
- bl FUN_020054F0
- add r0, r6, #0
- mov r1, #0
- bl MOD11_02231484
-_0222F214:
- add r0, r6, #0
- bl MOD11_02231474
- cmp r0, #0
- beq _0222F24E
- add r0, r6, #0
- bl MOD11_022314A0
- add r4, r0, #0
- ldr r0, _0222F250 ; =0x00000704
- bl FUN_02005508
- cmp r0, #0
- bne _0222F24E
- sub r1, r4, #1
- bne _0222F244
- ldr r0, _0222F250 ; =0x00000704
- bl FUN_020054C8
- add r0, r6, #0
- mov r1, #4
- bl MOD11_022314B0
- pop {r3, r4, r5, r6, r7, pc}
-_0222F244:
- lsl r1, r1, #0x18
- add r0, r6, #0
- lsr r1, r1, #0x18
- bl MOD11_022314B0
-_0222F24E:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0222F250: .word 0x00000704
-
- thumb_func_start MOD11_0222F254
-MOD11_0222F254: ; 0x0222F254
- push {r3, r4, r5, lr}
- ldr r3, _0222F280 ; =0x00002434
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, r3]
- mov r1, #1
- add r0, r0, #3
- str r0, [r4, r3]
- ldr r0, [r4, #4]
- ldr r3, [r4, r3]
- mov r2, #3
- bl FUN_020179E0
- ldr r0, _0222F280 ; =0x00002434
- ldr r0, [r4, r0]
- cmp r0, #0
- bne _0222F27C
- add r0, r5, #0
- bl FUN_0200CAB4
-_0222F27C:
- pop {r3, r4, r5, pc}
- nop
-_0222F280: .word 0x00002434
-
- thumb_func_start MOD11_0222F284
-MOD11_0222F284: ; 0x0222F284 __sinit
- push {r3, lr}
- bl FUN_02033590
- cmp r0, #0
- bne _0222F296
- ldr r0, _0222F298 ; =SDK_OVERLAY_MODULE_16_ID
- mov r1, #2
- bl HandleLoadOverlay
-_0222F296:
- pop {r3, pc}
- .align 2, 0
-_0222F298: .word SDK_OVERLAY_MODULE_16_ID
-
- thumb_func_start MOD11_0222F29C
-MOD11_0222F29C: ; 0x0222F29C
- push {r4, r5, r6, lr}
- sub sp, #0x68
- add r4, r1, #0
- ldr r1, _0222F4C0 ; =0x00001028
- mov r2, #5
- bl FUN_02006268
- add r5, r0, #0
- ldr r0, _0222F4C4 ; =0x00001020
- str r4, [r5]
- mov r2, #0
- strb r2, [r5, r0]
- add r1, r0, #1
- strb r2, [r5, r1]
- add r0, r0, #2
- strh r2, [r5, r0]
- mov r0, #5
- bl FUN_02002FD0
- str r0, [r5, #0xc]
- mov r1, #1
- bl FUN_020038F0
- mov r2, #2
- ldr r0, [r5, #0xc]
- mov r1, #0
- lsl r2, r2, #8
- mov r3, #5
- bl FUN_02003008
- mov r1, #0
- mov r0, #1
- str r1, [sp]
- lsl r0, r0, #8
- str r0, [sp, #4]
- ldr r0, [r5, #0xc]
- mov r2, #2
- add r3, r1, #0
- bl FUN_02003914
- mov r0, #5
- bl FUN_02016B94
- str r0, [r5, #4]
- mov r0, #5
- mov r1, #1
- bl FUN_02018FF4
- str r0, [r5, #8]
- add r0, r5, #0
- bl FUN_0206BFF0
- bl FUN_0201E6D8
- ldr r6, _0222F4C8 ; =0x0225DA40
- add r3, sp, #0x40
- mov r2, #5
-_0222F30E:
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _0222F30E
- add r0, sp, #0x40
- bl FUN_0201E66C
- mov r1, #6
- mov r2, #2
- mov r0, #0
- lsl r1, r1, #0x18
- lsl r2, r2, #0x12
- bl MIi_CpuClear32
- mov r1, #0x62
- mov r2, #2
- mov r0, #0
- lsl r1, r1, #0x14
- lsl r2, r2, #0x10
- bl MIi_CpuClear32
- mov r1, #0x19
- mov r2, #1
- mov r0, #0
- lsl r1, r1, #0x16
- lsl r2, r2, #0x12
- bl MIi_CpuClear32
- mov r1, #0x66
- mov r2, #2
- mov r0, #0
- lsl r1, r1, #0x14
- lsl r2, r2, #0x10
- bl MIi_CpuClear32
- mov r1, #5
- mov r2, #2
- mov r0, #0
- lsl r1, r1, #0x18
- lsl r2, r2, #8
- bl MIi_CpuClear16
- ldr r6, _0222F4CC ; =0x0225D9B8
- add r3, sp, #0x30
- add r2, r3, #0
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- add r0, r2, #0
- bl FUN_02016BBC
- ldr r6, _0222F4D0 ; =0x0225DA04
- add r3, sp, #0x14
- ldmia r6!, {r0, r1}
- add r2, r3, #0
- stmia r3!, {r0, r1}
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- ldr r0, [r6]
- mov r1, #1
- str r0, [r3]
- ldr r0, [r5, #4]
- mov r3, #0
- bl FUN_02016C18
- ldr r0, [r5, #4]
- mov r1, #1
- bl FUN_02018744
- mov r0, #0x13
- lsl r0, r0, #4
- ldr r0, [r4, r0]
- bl FUN_02025084
- add r4, r0, #0
- lsl r0, r4, #0x18
- lsr r0, r0, #0x18
- str r0, [sp]
- mov r0, #5
- str r0, [sp, #4]
- mov r1, #1
- ldr r0, [r5, #4]
- add r2, r1, #0
- mov r3, #0xa
- bl FUN_0200D274
- mov r0, #0
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- mov r0, #0xb0
- str r0, [sp, #8]
- ldr r0, [r5, #0xc]
- mov r1, #0xe
- mov r2, #7
- mov r3, #5
- bl FUN_020030E8
- add r0, r4, #0
- bl FUN_0200CD64
- add r2, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- mov r0, #0xa0
- str r0, [sp, #8]
- ldr r0, [r5, #0xc]
- mov r1, #0x26
- mov r3, #5
- bl FUN_020030E8
- mov r1, #0
- mov r0, #1
- str r1, [sp]
- lsl r0, r0, #8
- str r0, [sp, #4]
- ldr r0, [r5, #0xc]
- add r2, r1, #0
- add r3, r1, #0
- bl FUN_02003914
- bl FUN_0201E788
- mov r0, #0x10
- mov r1, #1
- bl FUN_0201E6E4
- mov r0, #0x13
- str r0, [sp]
- mov r0, #0x1b
- str r0, [sp, #4]
- mov r0, #4
- str r0, [sp, #8]
- mov r0, #0xb
- str r0, [sp, #0xc]
- mov r0, #0x1f
- str r0, [sp, #0x10]
- ldr r0, [r5, #4]
- ldr r1, [r5, #8]
- mov r2, #1
- mov r3, #2
- bl FUN_02019064
- ldr r0, [r5, #8]
- mov r1, #0xff
- bl FUN_02019620
- ldr r0, [r5, #8]
- mov r1, #0
- mov r2, #1
- mov r3, #0xa
- bl FUN_0200D0BC
- mov r2, #0x51
- mov r0, #1
- mov r1, #0x1a
- lsl r2, r2, #2
- mov r3, #5
- bl NewMsgDataFromNarc
- add r4, r0, #0
- mov r0, #1
- lsl r0, r0, #8
- mov r1, #5
- bl FUN_020219F4
- add r6, r0, #0
- ldr r1, _0222F4D4 ; =0x0000039B
- add r0, r4, #0
- add r2, r6, #0
- bl FUN_0200A8E0
- mov r3, #0
- str r3, [sp]
- str r3, [sp, #4]
- str r3, [sp, #8]
- ldr r0, [r5, #8]
- mov r1, #1
- add r2, r6, #0
- bl FUN_0201BD84
- add r0, r6, #0
- bl FUN_02021A20
- add r0, r4, #0
- bl DestroyMsgData
- ldr r0, _0222F4D8 ; =MOD11_0222F0D4
- add r1, r5, #0
- bl FUN_02015F10
- mov r0, #0x10
- str r0, [sp]
- mov r3, #0
- str r3, [sp, #4]
- str r3, [sp, #8]
- ldr r0, [r5, #0xc]
- ldr r2, _0222F4DC ; =0x0000FFFF
- mov r1, #5
- bl FUN_02003210
- ldr r0, [r5, #8]
- mov r1, #1
- bl FUN_0200D858
- ldr r1, _0222F4E0 ; =0x00001024
- str r0, [r5, r1]
- bl FUN_02033E74
- add sp, #0x68
- pop {r4, r5, r6, pc}
- nop
-_0222F4C0: .word 0x00001028
-_0222F4C4: .word 0x00001020
-_0222F4C8: .word 0x0225DA40
-_0222F4CC: .word 0x0225D9B8
-_0222F4D0: .word 0x0225DA04
-_0222F4D4: .word 0x0000039B
-_0222F4D8: .word MOD11_0222F0D4
-_0222F4DC: .word 0x0000FFFF
-_0222F4E0: .word 0x00001024
-
- thumb_func_start MOD11_0222F4E4
-MOD11_0222F4E4: ; 0x0222F4E4
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- bl FUN_02006278
- add r4, r0, #0
- ldr r1, [r4, #4]
- mov r0, #5
- bl FUN_020335F0
- ldr r0, _0222F804 ; =0x00001021
- mov r7, #0
- ldrb r1, [r4, r0]
- cmp r1, #0x21
- bls _0222F502
- b _0222F922
-_0222F502:
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0222F50E: ; jump table
- .short _0222F552 - _0222F50E - 2 ; case 0
- .short _0222F562 - _0222F50E - 2 ; case 1
- .short _0222F576 - _0222F50E - 2 ; case 2
- .short _0222F586 - _0222F50E - 2 ; case 3
- .short _0222F5C0 - _0222F50E - 2 ; case 4
- .short _0222F898 - _0222F50E - 2 ; case 5
- .short _0222F5D8 - _0222F50E - 2 ; case 6
- .short _0222F5F2 - _0222F50E - 2 ; case 7
- .short _0222F898 - _0222F50E - 2 ; case 8
- .short _0222F606 - _0222F50E - 2 ; case 9
- .short _0222F622 - _0222F50E - 2 ; case 10
- .short _0222F898 - _0222F50E - 2 ; case 11
- .short _0222F636 - _0222F50E - 2 ; case 12
- .short _0222F650 - _0222F50E - 2 ; case 13
- .short _0222F898 - _0222F50E - 2 ; case 14
- .short _0222F664 - _0222F50E - 2 ; case 15
- .short _0222F67E - _0222F50E - 2 ; case 16
- .short _0222F898 - _0222F50E - 2 ; case 17
- .short _0222F692 - _0222F50E - 2 ; case 18
- .short _0222F6AC - _0222F50E - 2 ; case 19
- .short _0222F898 - _0222F50E - 2 ; case 20
- .short _0222F6C0 - _0222F50E - 2 ; case 21
- .short _0222F704 - _0222F50E - 2 ; case 22
- .short _0222F898 - _0222F50E - 2 ; case 23
- .short _0222F740 - _0222F50E - 2 ; case 24
- .short _0222F774 - _0222F50E - 2 ; case 25
- .short _0222F898 - _0222F50E - 2 ; case 26
- .short _0222F7AE - _0222F50E - 2 ; case 27
- .short _0222F7E2 - _0222F50E - 2 ; case 28
- .short _0222F898 - _0222F50E - 2 ; case 29
- .short _0222F82A - _0222F50E - 2 ; case 30
- .short _0222F85E - _0222F50E - 2 ; case 31
- .short _0222F898 - _0222F50E - 2 ; case 32
- .short _0222F908 - _0222F50E - 2 ; case 33
-_0222F552:
- add r0, r7, #0
- bl FUN_0200E394
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F562:
- ldr r0, [r4, #0xc]
- bl FUN_020038E4
- cmp r0, #0
- bne _0222F610
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F576:
- mov r0, #0x32
- bl FUN_02031588
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F586:
- mov r0, #0x32
- bl FUN_020315D8
- cmp r0, #0
- beq _0222F5A8
- mov r0, #0x33
- bl FUN_02031588
- ldr r0, _0222F808 ; =0x00001022
- add r1, r7, #0
- strh r1, [r4, r0]
- sub r1, r0, #1
- ldrb r1, [r4, r1]
- sub r0, r0, #1
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F5A8:
- ldr r0, _0222F808 ; =0x00001022
- ldrh r1, [r4, r0]
- add r1, r1, #1
- strh r1, [r4, r0]
- ldrh r1, [r4, r0]
- ldr r0, _0222F80C ; =0x00000708
- cmp r1, r0
- bls _0222F610
- mov r0, #1
- bl FUN_020336A0
- b _0222F922
-_0222F5C0:
- mov r1, #0x11
- add r0, r4, #0
- lsl r1, r1, #4
- bl FUN_0206C1A0
- cmp r0, #1
- bne _0222F610
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F5D8:
- add r0, r4, #0
- bl FUN_0206C1FC
- cmp r0, #1
- bne _0222F610
- mov r0, #0x34
- bl FUN_02031588
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F5F2:
- add r0, r4, #0
- bl FUN_0206C224
- cmp r0, #1
- bne _0222F610
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F606:
- add r0, r4, #0
- bl FUN_0206C268
- cmp r0, #1
- beq _0222F612
-_0222F610:
- b _0222F922
-_0222F612:
- mov r0, #0x35
- bl FUN_02031588
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F622:
- add r0, r4, #0
- bl FUN_0206C294
- cmp r0, #1
- bne _0222F71C
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F636:
- add r0, r4, #0
- bl FUN_0206C2D4
- cmp r0, #1
- bne _0222F71C
- mov r0, #0x36
- bl FUN_02031588
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F650:
- add r0, r4, #0
- bl FUN_0206C2F8
- cmp r0, #1
- bne _0222F71C
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F664:
- add r0, r4, #0
- bl FUN_0206C33C
- cmp r0, #1
- bne _0222F71C
- mov r0, #0x37
- bl FUN_02031588
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F67E:
- add r0, r4, #0
- bl FUN_0206C364
- cmp r0, #1
- bne _0222F71C
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F692:
- add r0, r4, #0
- bl FUN_0206C398
- cmp r0, #1
- bne _0222F71C
- mov r0, #0x38
- bl FUN_02031588
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F6AC:
- add r0, r4, #0
- bl FUN_0206C3F4
- cmp r0, #1
- bne _0222F71C
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F6C0:
- ldr r1, [r4]
- ldr r2, [r1]
- mov r1, #0x80
- tst r1, r2
- bne _0222F6D0
- mov r1, #0x21
- strb r1, [r4, r0]
- b _0222F922
-_0222F6D0:
- bl FUN_02031190
- cmp r0, #0
- beq _0222F6E8
- mov r0, #0x39
- bl FUN_02031588
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F6E8:
- add r0, r4, #0
- mov r1, #1
- bl FUN_0206C438
- cmp r0, #1
- bne _0222F71C
- mov r0, #0x39
- bl FUN_02031588
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F704:
- mov r1, #1
- sub r0, r0, #1
- strb r1, [r4, r0]
- bl FUN_02031190
- cmp r0, #0
- beq _0222F728
- mov r0, #0x39
- bl FUN_020315D8
- cmp r0, #1
- beq _0222F71E
-_0222F71C:
- b _0222F922
-_0222F71E:
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F728:
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x39
- bl FUN_0206C46C
- cmp r0, #1
- bne _0222F81E
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F740:
- bl FUN_02031190
- cmp r0, #0
- beq _0222F758
- mov r0, #0x3a
- bl FUN_02031588
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F758:
- add r0, r4, #0
- mov r1, #3
- bl FUN_0206C438
- cmp r0, #1
- bne _0222F81E
- mov r0, #0x3a
- bl FUN_02031588
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F774:
- mov r1, #1
- sub r0, r0, #1
- strb r1, [r4, r0]
- bl FUN_02031190
- cmp r0, #0
- beq _0222F796
- mov r0, #0x3a
- bl FUN_020315D8
- cmp r0, #1
- bne _0222F81E
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F796:
- add r0, r4, #0
- mov r1, #3
- mov r2, #0x3a
- bl FUN_0206C46C
- cmp r0, #1
- bne _0222F81E
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F7AE:
- bl FUN_02031190
- cmp r0, #0
- beq _0222F7C6
- mov r0, #0x3b
- bl FUN_02031588
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F7C6:
- add r0, r4, #0
- mov r1, #1
- bl FUN_0206C4C4
- cmp r0, #1
- bne _0222F81E
- mov r0, #0x3b
- bl FUN_02031588
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F7E2:
- mov r1, #1
- sub r0, r0, #1
- strb r1, [r4, r0]
- bl FUN_02031190
- cmp r0, #0
- beq _0222F810
- mov r0, #0x3b
- bl FUN_020315D8
- cmp r0, #1
- bne _0222F81E
- ldr r0, _0222F804 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
- .align 2, 0
-_0222F804: .word 0x00001021
-_0222F808: .word 0x00001022
-_0222F80C: .word 0x00000708
-_0222F810:
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x3b
- bl FUN_0206C4F0
- cmp r0, #1
- beq _0222F820
-_0222F81E:
- b _0222F922
-_0222F820:
- ldr r0, _0222F928 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F82A:
- bl FUN_02031190
- cmp r0, #0
- beq _0222F842
- mov r0, #0x3c
- bl FUN_02031588
- ldr r0, _0222F928 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F842:
- add r0, r4, #0
- mov r1, #3
- bl FUN_0206C4C4
- cmp r0, #1
- bne _0222F922
- mov r0, #0x3c
- bl FUN_02031588
- ldr r0, _0222F928 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F85E:
- mov r1, #1
- sub r0, r0, #1
- strb r1, [r4, r0]
- bl FUN_02031190
- cmp r0, #0
- beq _0222F880
- mov r0, #0x3c
- bl FUN_020315D8
- cmp r0, #1
- bne _0222F922
- ldr r0, _0222F928 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F880:
- add r0, r4, #0
- mov r1, #3
- mov r2, #0x3c
- bl FUN_0206C4F0
- cmp r0, #1
- bne _0222F922
- ldr r0, _0222F928 ; =0x00001021
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0222F922
-_0222F898:
- bl FUN_02030F20
- ldr r1, _0222F92C ; =0x00001020
- ldrb r2, [r4, r1]
- cmp r2, r0
- bne _0222F8EE
- add r0, r1, #1
- ldrb r0, [r4, r0]
- cmp r0, #0x14
- bne _0222F8BE
- add r6, r7, #0
- add r5, r4, #0
-_0222F8B0:
- ldr r0, [r5, #0x10]
- bl FreeToHeap
- add r6, r6, #1
- add r5, r5, #4
- cmp r6, #4
- blt _0222F8B0
-_0222F8BE:
- ldr r0, _0222F92C ; =0x00001020
- mov r3, #0
- strb r3, [r4, r0]
- add r1, r0, #2
- strh r3, [r4, r1]
- add r1, r0, #1
- ldrb r1, [r4, r1]
- add r2, r1, #1
- add r1, r0, #1
- strb r2, [r4, r1]
- add r0, r0, #1
- ldrb r0, [r4, r0]
- cmp r0, #0x21
- bne _0222F922
- str r3, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- str r3, [sp, #8]
- ldr r0, [r4, #0xc]
- ldr r2, _0222F930 ; =0x0000FFFF
- mov r1, #5
- bl FUN_02003210
- b _0222F922
-_0222F8EE:
- add r0, r1, #2
- ldrh r0, [r4, r0]
- add r2, r0, #1
- add r0, r1, #2
- strh r2, [r4, r0]
- ldrh r1, [r4, r0]
- ldr r0, _0222F934 ; =0x00000708
- cmp r1, r0
- bls _0222F922
- mov r0, #1
- bl FUN_020336A0
- b _0222F922
-_0222F908:
- ldr r0, [r4, #0xc]
- bl FUN_020038E4
- cmp r0, #0
- bne _0222F922
- ldr r0, _0222F938 ; =0x00001024
- mov r7, #1
- ldr r0, [r4, r0]
- bl FUN_0200DBFC
- mov r0, #0
- bl FUN_02031400
-_0222F922:
- add r0, r7, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0222F928: .word 0x00001021
-_0222F92C: .word 0x00001020
-_0222F930: .word 0x0000FFFF
-_0222F934: .word 0x00000708
-_0222F938: .word 0x00001024
-
- thumb_func_start MOD11_0222F93C
-MOD11_0222F93C: ; 0x0222F93C
- push {r4, lr}
- bl FUN_02006278
- add r4, r0, #0
- mov r0, #0
- add r1, r0, #0
- bl FUN_02015F10
- mov r0, #0
- add r1, r0, #0
- bl FUN_0200E3A0
- ldr r0, [r4, #0xc]
- mov r1, #0
- bl FUN_02003038
- ldr r0, [r4, #0xc]
- bl FUN_02002FEC
- ldr r0, [r4, #8]
- mov r1, #1
- bl FUN_020191A4
- mov r0, #2
- mov r1, #0
- bl FUN_0201E6E4
- ldr r0, [r4, #4]
- mov r1, #1
- bl FUN_020178A0
- ldr r0, [r4, #4]
- bl FreeToHeap
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
-
- thumb_func_start MOD11_0222F988
-MOD11_0222F988: ; 0x0222F988
- push {r4, r5, r6, lr}
- ldr r1, _0222FAB4 ; =0x00002444
- add r5, r0, #0
- mov r2, #5
- bl FUN_02006268
- add r4, r0, #0
- add r0, r5, #0
- bl FUN_0200628C
- add r6, r0, #0
- bl FUN_02031190
- lsl r0, r0, #0x18
- lsr r5, r0, #0x18
- ldr r2, _0222FAB4 ; =0x00002444
- mov r0, #0
- add r1, r4, #0
- bl MIi_CpuClearFast
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0222E520
- ldr r1, [r4, #0x2c]
- mov r0, #4
- tst r0, r1
- beq _0222F9C6
- mov r0, #0x80
- tst r0, r1
- beq _0222F9CA
-_0222F9C6:
- mov r0, #0
- pop {r4, r5, r6, pc}
-_0222F9CA:
- ldr r0, _0222FAB8 ; =SDK_OVERLAY_MODULE_07_ID
- mov r1, #2
- bl HandleLoadOverlay
- ldr r1, [r4, #0x2c]
- mov r0, #8
- tst r0, r1
- bne _0222F9DE
- mov r0, #0
- pop {r4, r5, r6, pc}
-_0222F9DE:
- mov r0, #5
- mov r1, #0x2c
- bl AllocFromHeap
- mov r1, #7
- lsl r1, r1, #6
- str r0, [r4, r1]
- ldr r1, [r4, r1]
- mov r0, #0
- mov r2, #0x2c
- bl MIi_CpuClearFast
- add r0, r5, #0
- bl FUN_020313CC
- cmp r0, #3
- bhi _0222FA5A
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0222FA0C: ; jump table
- .short _0222FA14 - _0222FA0C - 2 ; case 0
- .short _0222FA3A - _0222FA0C - 2 ; case 1
- .short _0222FA3A - _0222FA0C - 2 ; case 2
- .short _0222FA14 - _0222FA0C - 2 ; case 3
-_0222FA14:
- lsl r0, r5, #2
- add r0, r4, r0
- ldr r1, [r0, #0x68]
- mov r0, #7
- lsl r0, r0, #6
- ldr r0, [r4, r0]
- str r1, [r0, #4]
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_022302BC
- lsl r0, r0, #2
- add r0, r4, r0
- ldr r1, [r0, #0x68]
- mov r0, #7
- lsl r0, r0, #6
- ldr r0, [r4, r0]
- str r1, [r0, #0xc]
- b _0222FA5A
-_0222FA3A:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_022302BC
- lsl r0, r0, #2
- add r0, r4, r0
- ldr r2, [r0, #0x68]
- mov r0, #7
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- str r2, [r1, #4]
- lsl r1, r5, #2
- add r1, r4, r1
- ldr r1, [r1, #0x68]
- ldr r0, [r4, r0]
- str r1, [r0, #0xc]
-_0222FA5A:
- mov r0, #7
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r2, #5
- str r2, [r1, #0x24]
- ldr r0, [r4, r0]
- mov r1, #0
- add r0, #0x28
- strb r1, [r0]
- add r0, r5, #0
- bl FUN_020313CC
- cmp r0, #3
- bhi _0222FAA4
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0222FA82: ; jump table
- .short _0222FA8A - _0222FA82 - 2 ; case 0
- .short _0222FA98 - _0222FA82 - 2 ; case 1
- .short _0222FA98 - _0222FA82 - 2 ; case 2
- .short _0222FA8A - _0222FA82 - 2 ; case 3
-_0222FA8A:
- mov r0, #7
- lsl r0, r0, #6
- ldr r0, [r4, r0]
- mov r1, #0
- add r0, #0x29
- strb r1, [r0]
- b _0222FAA4
-_0222FA98:
- mov r0, #7
- lsl r0, r0, #6
- ldr r0, [r4, r0]
- mov r1, #1
- add r0, #0x29
- strb r1, [r0]
-_0222FAA4:
- mov r0, #7
- lsl r0, r0, #6
- ldr r0, [r4, r0]
- bl MOD07_02211E60
- mov r0, #1
- pop {r4, r5, r6, pc}
- nop
-_0222FAB4: .word 0x00002444
-_0222FAB8: .word SDK_OVERLAY_MODULE_07_ID
-
- thumb_func_start MOD11_0222FABC
-MOD11_0222FABC: ; 0x0222FABC
- push {r3, r4, r5, r6, r7, lr}
- bl FUN_02006278
- add r6, r0, #0
- mov r0, #7
- lsl r0, r0, #6
- ldr r0, [r6, r0]
- add r0, #0x2b
- ldrb r0, [r0]
- cmp r0, #0
- beq _0222FAFE
- mov r4, #0
- mov r7, #7
- add r5, r4, #0
- lsl r7, r7, #6
-_0222FADA:
- ldr r0, [r6, r7]
- add r0, r0, r5
- ldr r0, [r0, #0x14]
- cmp r0, #0
- beq _0222FAE8
- bl FreeToHeap
-_0222FAE8:
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #4
- blt _0222FADA
- mov r0, #7
- lsl r0, r0, #6
- ldr r0, [r6, r0]
- bl FreeToHeap
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_0222FAFE:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0222FB04
-MOD11_0222FB04: ; 0x0222FB04
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- bl FUN_02006278
- add r4, r0, #0
- add r0, r5, #0
- bl FUN_0200628C
- bl FUN_02031190
- lsl r0, r0, #0x18
- lsr r7, r0, #0x18
- ldr r1, [r4, #0x2c]
- mov r0, #4
- tst r0, r1
- beq _0222FB2A
- mov r0, #0x80
- tst r0, r1
- beq _0222FB2E
-_0222FB2A:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0222FB2E:
- mov r0, #5
- mov r1, #0x2c
- bl AllocFromHeap
- mov r1, #7
- lsl r1, r1, #6
- str r0, [r4, r1]
- ldr r1, [r4, r1]
- mov r0, #0
- mov r2, #0x2c
- bl MIi_CpuClearFast
- ldr r1, [r4, #0x2c]
- mov r0, #8
- tst r0, r1
- beq _0222FBA4
- mov r6, #0
- add r5, r4, #0
-_0222FB52:
- add r0, r6, #0
- bl FUN_020313CC
- mov r2, #7
- lsl r2, r2, #6
- ldr r2, [r4, r2]
- lsl r0, r0, #2
- ldr r1, [r5, #0x68]
- add r0, r2, r0
- str r1, [r0, #4]
- add r0, r6, #0
- bl FUN_020313CC
- add r7, r0, #0
- ldr r0, [r5, #0x48]
- mov r1, #5
- bl FUN_020239A0
- mov r1, #7
- lsl r1, r1, #6
- ldr r2, [r4, r1]
- lsl r1, r7, #2
- add r1, r2, r1
- add r6, r6, #1
- add r5, r5, #4
- str r0, [r1, #0x14]
- cmp r6, #4
- blt _0222FB52
- mov r0, #7
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r2, #5
- str r2, [r1, #0x24]
- ldr r1, [r4, r0]
- mov r2, #1
- add r1, #0x28
- strb r2, [r1]
- ldr r0, [r4, r0]
- add r0, #0x29
- strb r2, [r0]
- b _0222FC2A
-_0222FBA4:
- add r0, r7, #0
- lsl r6, r7, #2
- bl FUN_020313CC
- mov r2, #7
- lsl r2, r2, #6
- add r1, r4, r6
- ldr r2, [r4, r2]
- lsl r0, r0, #2
- ldr r1, [r1, #0x68]
- add r0, r2, r0
- str r1, [r0, #4]
- mov r0, #1
- eor r0, r7
- lsl r5, r0, #2
- str r0, [sp]
- bl FUN_020313CC
- add r1, r4, r5
- ldr r2, [r1, #0x68]
- mov r1, #7
- lsl r1, r1, #6
- ldr r1, [r4, r1]
- lsl r0, r0, #2
- add r0, r1, r0
- str r2, [r0, #4]
- add r0, r7, #0
- bl FUN_020313CC
- add r7, r0, #0
- add r0, r4, r6
- ldr r0, [r0, #0x48]
- mov r1, #5
- bl FUN_020239A0
- mov r1, #7
- lsl r1, r1, #6
- ldr r2, [r4, r1]
- lsl r1, r7, #2
- add r1, r2, r1
- str r0, [r1, #0x14]
- ldr r0, [sp]
- bl FUN_020313CC
- add r6, r0, #0
- add r0, r4, r5
- ldr r0, [r0, #0x48]
- mov r1, #5
- bl FUN_020239A0
- mov r1, #7
- lsl r1, r1, #6
- ldr r3, [r4, r1]
- lsl r2, r6, #2
- add r2, r3, r2
- str r0, [r2, #0x14]
- ldr r0, [r4, r1]
- mov r2, #5
- str r2, [r0, #0x24]
- ldr r0, [r4, r1]
- mov r2, #1
- add r0, #0x28
- strb r2, [r0]
- ldr r0, [r4, r1]
- mov r2, #0
- add r0, #0x29
- strb r2, [r0]
-_0222FC2A:
- mov r0, #7
- lsl r0, r0, #6
- ldr r0, [r4, r0]
- bl MOD07_02211E60
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0222FC38
-MOD11_0222FC38: ; 0x0222FC38
- push {r3, r4, r5, r6, r7, lr}
- bl FUN_02006278
- add r6, r0, #0
- mov r0, #7
- lsl r0, r0, #6
- ldr r0, [r6, r0]
- add r0, #0x2b
- ldrb r0, [r0]
- cmp r0, #0
- beq _0222FC7A
- mov r4, #0
- mov r7, #7
- add r5, r4, #0
- lsl r7, r7, #6
-_0222FC56:
- ldr r0, [r6, r7]
- add r0, r0, r5
- ldr r0, [r0, #0x14]
- cmp r0, #0
- beq _0222FC64
- bl FreeToHeap
-_0222FC64:
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #4
- blt _0222FC56
- mov r0, #7
- lsl r0, r0, #6
- ldr r0, [r6, r0]
- bl FreeToHeap
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_0222FC7A:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0222FC80
-MOD11_0222FC80: ; 0x0222FC80
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- bl FUN_0200628C
- add r7, r0, #0
- bl FUN_02031190
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #4]
- ldr r1, [r7]
- mov r0, #4
- tst r0, r1
- beq _0222FCA2
- mov r0, #0x80
- tst r0, r1
- beq _0222FCA8
-_0222FCA2:
- add sp, #0x10
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0222FCA8:
- ldr r0, _0222FE54 ; =SDK_OVERLAY_MODULE_07_ID
- mov r1, #2
- bl HandleLoadOverlay
- mov r0, #5
- mov r1, #0x2c
- bl AllocFromHeap
- add r6, r0, #0
- mov r0, #0x66
- lsl r0, r0, #2
- str r6, [r7, r0]
- mov r0, #0
- add r1, r6, #0
- mov r2, #0x2c
- bl MIi_CpuClearFast
- str r7, [r6]
- ldr r0, [r7, #0x14]
- cmp r0, #5
- bhi _0222FD54
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0222FCDE: ; jump table
- .short _0222FD54 - _0222FCDE - 2 ; case 0
- .short _0222FCEA - _0222FCDE - 2 ; case 1
- .short _0222FD0E - _0222FCDE - 2 ; case 2
- .short _0222FD32 - _0222FCDE - 2 ; case 3
- .short _0222FD54 - _0222FCDE - 2 ; case 4
- .short _0222FD32 - _0222FCDE - 2 ; case 5
-_0222FCEA:
- bl FUN_02033590
- cmp r0, #0
- bne _0222FD00
- mov r0, #0x51
- lsl r0, r0, #2
- ldr r0, [r7, r0]
- mov r1, #0x15
- bl FUN_0202A0E8
- b _0222FD54
-_0222FD00:
- mov r0, #0x51
- lsl r0, r0, #2
- ldr r0, [r7, r0]
- mov r1, #0x1a
- bl FUN_0202A0E8
- b _0222FD54
-_0222FD0E:
- bl FUN_02033590
- cmp r0, #0
- bne _0222FD24
- mov r0, #0x51
- lsl r0, r0, #2
- ldr r0, [r7, r0]
- mov r1, #0x16
- bl FUN_0202A0E8
- b _0222FD54
-_0222FD24:
- mov r0, #0x51
- lsl r0, r0, #2
- ldr r0, [r7, r0]
- mov r1, #0x1b
- bl FUN_0202A0E8
- b _0222FD54
-_0222FD32:
- bl FUN_02033590
- cmp r0, #0
- bne _0222FD48
- mov r0, #0x51
- lsl r0, r0, #2
- ldr r0, [r7, r0]
- mov r1, #0x17
- bl FUN_0202A0E8
- b _0222FD54
-_0222FD48:
- mov r0, #0x51
- lsl r0, r0, #2
- ldr r0, [r7, r0]
- mov r1, #0x1c
- bl FUN_0202A0E8
-_0222FD54:
- ldr r1, [r7]
- mov r0, #8
- tst r0, r1
- beq _0222FDBE
- mov r4, #0
- add r5, r7, #0
-_0222FD60:
- add r0, r4, #0
- bl FUN_020313CC
- lsl r0, r0, #2
- ldr r1, [r5, #4]
- add r0, r6, r0
- str r1, [r0, #4]
- add r0, r4, #0
- bl FUN_020313CC
- str r0, [sp, #8]
- add r0, r5, #0
- add r0, #0xf8
- ldr r0, [r0]
- mov r1, #5
- bl FUN_020239A0
- ldr r1, [sp, #8]
- add r4, r4, #1
- lsl r1, r1, #2
- add r1, r6, r1
- add r5, r5, #4
- str r0, [r1, #0x14]
- cmp r4, #4
- blt _0222FD60
- mov r0, #5
- str r0, [r6, #0x24]
- add r0, r6, #0
- mov r1, #2
- add r0, #0x28
- strb r1, [r0]
- add r0, r6, #0
- mov r1, #1
- add r0, #0x29
- strb r1, [r0]
- ldr r1, [r7, #0x14]
- cmp r1, #5
- beq _0222FDB4
- add r0, r6, #0
- add r0, #0x2a
- strb r1, [r0]
- b _0222FE48
-_0222FDB4:
- add r0, r6, #0
- mov r1, #3
- add r0, #0x2a
- strb r1, [r0]
- b _0222FE48
-_0222FDBE:
- ldr r0, [sp, #4]
- lsl r5, r0, #2
- bl FUN_020313CC
- add r1, r7, r5
- lsl r0, r0, #2
- ldr r1, [r1, #4]
- add r0, r6, r0
- str r1, [r0, #4]
- ldr r0, [sp, #4]
- mov r1, #1
- eor r0, r1
- lsl r4, r0, #2
- str r0, [sp]
- bl FUN_020313CC
- add r1, r7, r4
- lsl r0, r0, #2
- ldr r1, [r1, #4]
- add r0, r6, r0
- str r1, [r0, #4]
- ldr r0, [sp, #4]
- bl FUN_020313CC
- str r0, [sp, #0xc]
- add r0, r7, r5
- add r0, #0xf8
- ldr r0, [r0]
- mov r1, #5
- bl FUN_020239A0
- ldr r1, [sp, #0xc]
- lsl r1, r1, #2
- add r1, r6, r1
- str r0, [r1, #0x14]
- ldr r0, [sp]
- bl FUN_020313CC
- add r5, r0, #0
- add r0, r7, r4
- add r0, #0xf8
- ldr r0, [r0]
- mov r1, #5
- bl FUN_020239A0
- lsl r1, r5, #2
- add r1, r6, r1
- str r0, [r1, #0x14]
- mov r0, #5
- str r0, [r6, #0x24]
- add r0, r6, #0
- mov r1, #2
- add r0, #0x28
- strb r1, [r0]
- add r0, r6, #0
- mov r1, #0
- add r0, #0x29
- strb r1, [r0]
- ldr r1, [r7, #0x14]
- cmp r1, #5
- beq _0222FE40
- add r0, r6, #0
- add r0, #0x2a
- strb r1, [r0]
- b _0222FE48
-_0222FE40:
- add r0, r6, #0
- mov r1, #3
- add r0, #0x2a
- strb r1, [r0]
-_0222FE48:
- add r0, r6, #0
- bl MOD07_02211E60
- mov r0, #1
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0222FE54: .word SDK_OVERLAY_MODULE_07_ID
-
- thumb_func_start MOD11_0222FE58
-MOD11_0222FE58: ; 0x0222FE58
- push {r4, r5, r6, lr}
- bl FUN_0200628C
- mov r1, #0x66
- lsl r1, r1, #2
- ldr r6, [r0, r1]
- add r0, r6, #0
- add r0, #0x2b
- ldrb r0, [r0]
- cmp r0, #0
- beq _0222FE8E
- mov r4, #0
- add r5, r6, #0
-_0222FE72:
- ldr r0, [r5, #0x14]
- cmp r0, #0
- beq _0222FE7C
- bl FreeToHeap
-_0222FE7C:
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #4
- blt _0222FE72
- add r0, r6, #0
- bl FreeToHeap
- mov r0, #1
- pop {r4, r5, r6, pc}
-_0222FE8E:
- mov r0, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0222FE94
-MOD11_0222FE94: ; 0x0222FE94
- push {r3, lr}
- ldr r1, [r0, #0x2c]
- ldr r0, _0222FEBC ; =0x00000404
- tst r0, r1
- beq _0222FEA6
- mov r0, #1
- bl FUN_02002B7C
- pop {r3, pc}
-_0222FEA6:
- mov r0, #3
- bl FUN_02002B7C
- mov r0, #1
- bl FUN_02002B60
- mov r0, #1
- bl FUN_02002BB8
- pop {r3, pc}
- nop
-_0222FEBC: .word 0x00000404
-
- thumb_func_start MOD11_0222FEC0
-MOD11_0222FEC0: ; 0x0222FEC0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x40
- str r0, [sp]
- mov r0, #0x5f
- mov r3, #0
- add r4, sp, #0x30
- add r5, sp, #0x20
- lsl r0, r0, #2
-_0222FED0:
- stmia r4!, {r3}
- ldr r2, [r1, r0]
- add r3, r3, #1
- add r1, r1, #4
- stmia r5!, {r2}
- cmp r3, #4
- blt _0222FED0
- bl FUN_02031190
- str r0, [sp, #0x10]
- bl FUN_02030F20
- str r0, [sp, #0xc]
- mov r0, #0
- str r0, [sp, #4]
- ldr r0, [sp, #0xc]
- sub r0, r0, #1
- str r0, [sp, #0x14]
- cmp r0, #0
- ble _0222FF50
- add r0, sp, #0x30
- add r3, sp, #0x20
- str r0, [sp, #8]
- str r3, [sp, #0x18]
- mov ip, r0
-_0222FF02:
- ldr r0, [sp, #4]
- add r2, r0, #1
- ldr r0, [sp, #0xc]
- cmp r2, r0
- bge _0222FF3C
- ldr r0, [sp, #0x18]
- lsl r1, r2, #2
- add r4, r0, r1
- mov r0, ip
- add r5, r0, r1
-_0222FF16:
- ldr r0, [r4]
- ldr r6, [r3]
- str r0, [sp, #0x1c]
- cmp r6, r0
- bge _0222FF30
- ldr r0, [sp, #8]
- ldr r1, [r5]
- ldr r7, [r0]
- str r1, [r0]
- ldr r0, [sp, #0x1c]
- str r7, [r5]
- str r0, [r3]
- str r6, [r4]
-_0222FF30:
- ldr r0, [sp, #0xc]
- add r2, r2, #1
- add r4, r4, #4
- add r5, r5, #4
- cmp r2, r0
- blt _0222FF16
-_0222FF3C:
- ldr r0, [sp, #8]
- add r3, r3, #4
- add r0, r0, #4
- str r0, [sp, #8]
- ldr r0, [sp, #4]
- add r1, r0, #1
- ldr r0, [sp, #0x14]
- str r1, [sp, #4]
- cmp r1, r0
- blt _0222FF02
-_0222FF50:
- ldr r1, [sp, #0x30]
- ldr r0, [sp, #0x10]
- cmp r1, r0
- bne _0222FF60
- ldr r1, _0222FF64 ; =0x000023F8
- ldr r0, [sp]
- mov r2, #1
- strb r2, [r0, r1]
-_0222FF60:
- add sp, #0x40
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0222FF64: .word 0x000023F8
-
- thumb_func_start MOD11_0222FF68
-MOD11_0222FF68: ; 0x0222FF68
- ldr r0, [r0, #4]
- bx lr
-
- thumb_func_start MOD11_0222FF6C
-MOD11_0222FF6C: ; 0x0222FF6C
- ldr r2, [r0, #8]
- lsl r0, r1, #4
- add r0, r2, r0
- bx lr
-
- thumb_func_start MOD11_0222FF74
-MOD11_0222FF74: ; 0x0222FF74
- ldr r0, [r0, #0x2c]
- bx lr
-
- thumb_func_start MOD11_0222FF78
-MOD11_0222FF78: ; 0x0222FF78
- ldr r0, [r0, #0x30]
- bx lr
-
- thumb_func_start MOD11_0222FF7C
-MOD11_0222FF7C: ; 0x0222FF7C
- lsl r1, r1, #2
- add r0, r0, r1
- ldr r0, [r0, #0x34]
- bx lr
-
- thumb_func_start MOD11_0222FF84
-MOD11_0222FF84: ; 0x0222FF84
- ldr r0, [r0, #0x44]
- bx lr
-
- thumb_func_start MOD11_0222FF88
-MOD11_0222FF88: ; 0x0222FF88
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r2, [r5, #0x2c]
- mov r3, #8
- add r4, r1, #0
- tst r3, r2
- bne _0222FFA6
- mov r3, #0x10
- tst r2, r3
- beq _0222FFAE
- bl MOD11_02230260
- mov r1, #1
- tst r0, r1
- beq _0222FFAE
-_0222FFA6:
- lsl r0, r4, #2
- add r0, r5, r0
- ldr r0, [r0, #0x68]
- pop {r3, r4, r5, pc}
-_0222FFAE:
- ldr r1, [r5, #0x2c]
- mov r0, #2
- tst r0, r1
- beq _0222FFC0
- lsl r0, r4, #0x1f
- lsr r0, r0, #0x1d
- add r0, r5, r0
- ldr r0, [r0, #0x68]
- pop {r3, r4, r5, pc}
-_0222FFC0:
- lsl r0, r4, #2
- add r0, r5, r0
- ldr r0, [r0, #0x68]
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_0222FFC8
-MOD11_0222FFC8: ; 0x0222FFC8
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r2, [r5, #0x2c]
- mov r3, #8
- add r4, r1, #0
- tst r3, r2
- bne _0222FFE6
- mov r3, #0x10
- tst r2, r3
- beq _0222FFF2
- bl MOD11_02230260
- mov r1, #1
- tst r0, r1
- beq _0222FFF2
-_0222FFE6:
- lsl r0, r4, #2
- add r0, r5, r0
- ldr r0, [r0, #0x68]
- bl FUN_0206B9AC
- pop {r3, r4, r5, pc}
-_0222FFF2:
- ldr r1, [r5, #0x2c]
- mov r0, #2
- tst r0, r1
- beq _02230008
- lsl r0, r4, #0x1f
- lsr r0, r0, #0x1d
- add r0, r5, r0
- ldr r0, [r0, #0x68]
- bl FUN_0206B9AC
- pop {r3, r4, r5, pc}
-_02230008:
- lsl r0, r4, #2
- add r0, r5, r0
- ldr r0, [r0, #0x68]
- bl FUN_0206B9AC
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02230014
-MOD11_02230014: ; 0x02230014
- push {r4, r5, r6, lr}
- add r5, r0, #0
- add r6, r2, #0
- ldr r2, [r5, #0x2c]
- mov r3, #8
- add r4, r1, #0
- tst r3, r2
- bne _02230034
- mov r3, #0x10
- tst r2, r3
- beq _02230042
- bl MOD11_02230260
- mov r1, #1
- tst r0, r1
- beq _02230042
-_02230034:
- lsl r0, r4, #2
- add r0, r5, r0
- ldr r0, [r0, #0x68]
- add r1, r6, #0
- bl FUN_0206B9B0
- pop {r4, r5, r6, pc}
-_02230042:
- ldr r1, [r5, #0x2c]
- mov r0, #2
- tst r0, r1
- beq _0223005A
- lsl r0, r4, #0x1f
- lsr r0, r0, #0x1d
- add r0, r5, r0
- ldr r0, [r0, #0x68]
- add r1, r6, #0
- bl FUN_0206B9B0
- pop {r4, r5, r6, pc}
-_0223005A:
- lsl r0, r4, #2
- add r0, r5, r0
- ldr r0, [r0, #0x68]
- add r1, r6, #0
- bl FUN_0206B9B0
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_02230068
-MOD11_02230068: ; 0x02230068
- add r0, #0x88
- ldr r0, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_02230070
-MOD11_02230070: ; 0x02230070
- add r0, #0x8c
- ldr r0, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_02230078
-MOD11_02230078: ; 0x02230078
- add r0, #0x90
- ldr r0, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_02230080
-MOD11_02230080: ; 0x02230080
- add r0, #0x94
- ldr r0, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_02230088
-MOD11_02230088: ; 0x02230088
- mov r2, #0x5f
- lsl r2, r2, #2
- add r2, r0, r2
- lsl r0, r1, #4
- add r0, r2, r0
- bx lr
-
- thumb_func_start MOD11_02230094
-MOD11_02230094: ; 0x02230094
- mov r1, #0x67
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- bx lr
-
- thumb_func_start MOD11_0223009C
-MOD11_0223009C: ; 0x0223009C
- lsl r1, r1, #2
- add r1, r0, r1
- mov r0, #0x1a
- lsl r0, r0, #4
- ldr r0, [r1, r0]
- bx lr
-
- thumb_func_start MOD11_022300A8
-MOD11_022300A8: ; 0x022300A8
- lsl r1, r1, #2
- add r1, r0, r1
- mov r0, #0x1a
- lsl r0, r0, #4
- str r2, [r1, r0]
- bx lr
-
- thumb_func_start MOD11_022300B4
-MOD11_022300B4: ; 0x022300B4
- mov r1, #0x6a
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- bx lr
-
- thumb_func_start MOD11_022300BC
-MOD11_022300BC: ; 0x022300BC
- mov r1, #0x6b
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- bx lr
-
- thumb_func_start MOD11_022300C4
-MOD11_022300C4: ; 0x022300C4
- ldr r0, [r0, #0xc]
- bx lr
-
- thumb_func_start MOD11_022300C8
-MOD11_022300C8: ; 0x022300C8
- ldr r0, [r0, #0x10]
- bx lr
-
- thumb_func_start MOD11_022300CC
-MOD11_022300CC: ; 0x022300CC
- ldr r0, [r0, #0x28]
- bx lr
-
- thumb_func_start MOD11_022300D0
-MOD11_022300D0: ; 0x022300D0
- ldr r0, [r0, #0x60]
- bx lr
-
- thumb_func_start MOD11_022300D4
-MOD11_022300D4: ; 0x022300D4
- mov r1, #0x89
- lsl r1, r1, #2
- add r0, r0, r1
- bx lr
-
- thumb_func_start MOD11_022300DC
-MOD11_022300DC: ; 0x022300DC
- ldr r1, _022300E4 ; =0x00001224
- add r0, r0, r1
- bx lr
- nop
-_022300E4: .word 0x00001224
-
- thumb_func_start MOD11_022300E8
-MOD11_022300E8: ; 0x022300E8
- ldr r1, _022300F0 ; =0x000023E4
- add r0, r0, r1
- bx lr
- nop
-_022300F0: .word 0x000023E4
-
- thumb_func_start MOD11_022300F4
-MOD11_022300F4: ; 0x022300F4
- ldr r1, _022300FC ; =0x000023E6
- add r0, r0, r1
- bx lr
- nop
-_022300FC: .word 0x000023E6
-
- thumb_func_start MOD11_02230100
-MOD11_02230100: ; 0x02230100
- ldr r1, _02230108 ; =0x000023E8
- add r0, r0, r1
- bx lr
- nop
-_02230108: .word 0x000023E8
-
- thumb_func_start MOD11_0223010C
-MOD11_0223010C: ; 0x0223010C
- ldr r1, _02230114 ; =0x000023EA
- add r0, r0, r1
- bx lr
- nop
-_02230114: .word 0x000023EA
-
- thumb_func_start MOD11_02230118
-MOD11_02230118: ; 0x02230118
- ldr r1, _02230120 ; =0x000023EC
- add r0, r0, r1
- bx lr
- nop
-_02230120: .word 0x000023EC
-
- thumb_func_start MOD11_02230124
-MOD11_02230124: ; 0x02230124
- ldr r1, _0223012C ; =0x000023EE
- add r0, r0, r1
- bx lr
- nop
-_0223012C: .word 0x000023EE
-
- thumb_func_start MOD11_02230130
-MOD11_02230130: ; 0x02230130
- mov r1, #0x73
- lsl r1, r1, #2
- add r0, r0, r1
- bx lr
-
- thumb_func_start MOD11_02230138
-MOD11_02230138: ; 0x02230138
- ldr r0, [r0, #0x14]
- bx lr
-
- thumb_func_start MOD11_0223013C
-MOD11_0223013C: ; 0x0223013C
- ldr r0, [r0, #0x18]
- bx lr
-
- thumb_func_start MOD11_02230140
-MOD11_02230140: ; 0x02230140
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r2, [r5, #0x2c]
- mov r3, #8
- add r4, r1, #0
- tst r3, r2
- bne _0223015E
- mov r3, #0x10
- tst r2, r3
- beq _02230168
- bl MOD11_02230260
- mov r1, #1
- tst r0, r1
- beq _02230168
-_0223015E:
- lsl r0, r4, #1
- add r0, r5, r0
- add r0, #0xa0
- ldrh r0, [r0]
- pop {r3, r4, r5, pc}
-_02230168:
- ldr r1, [r5, #0x2c]
- mov r0, #2
- tst r0, r1
- beq _0223017C
- lsl r0, r4, #0x1f
- lsr r0, r0, #0x1e
- add r0, r5, r0
- add r0, #0xa0
- ldrh r0, [r0]
- pop {r3, r4, r5, pc}
-_0223017C:
- lsl r0, r4, #1
- add r0, r5, r0
- add r0, #0xa0
- ldrh r0, [r0]
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02230188
-MOD11_02230188: ; 0x02230188
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r2, [r5, #0x2c]
- mov r3, #8
- add r4, r1, #0
- tst r3, r2
- bne _022301A6
- mov r3, #0x10
- tst r2, r3
- beq _022301B0
- bl MOD11_02230260
- mov r1, #1
- tst r0, r1
- beq _022301B0
-_022301A6:
- mov r0, #0x34
- add r5, #0xac
- mul r0, r4
- add r0, r5, r0
- pop {r3, r4, r5, pc}
-_022301B0:
- ldr r1, [r5, #0x2c]
- mov r0, #2
- tst r0, r1
- beq _022301C8
- mov r0, #1
- add r1, r4, #0
- and r1, r0
- mov r0, #0x34
- add r5, #0xac
- mul r0, r1
- add r0, r5, r0
- pop {r3, r4, r5, pc}
-_022301C8:
- mov r0, #0x34
- add r5, #0xac
- mul r0, r4
- add r0, r5, r0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022301D4
-MOD11_022301D4: ; 0x022301D4
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r2, [r5, #0x2c]
- mov r3, #8
- add r4, r1, #0
- tst r3, r2
- bne _022301F2
- mov r3, #0x10
- tst r2, r3
- beq _022301FA
- bl MOD11_02230260
- mov r1, #1
- tst r0, r1
- beq _022301FA
-_022301F2:
- lsl r0, r4, #2
- add r0, r5, r0
- ldr r0, [r0, #0x48]
- pop {r3, r4, r5, pc}
-_022301FA:
- ldr r1, [r5, #0x2c]
- mov r0, #2
- tst r0, r1
- beq _0223020C
- lsl r0, r4, #0x1f
- lsr r0, r0, #0x1d
- add r0, r5, r0
- ldr r0, [r0, #0x48]
- pop {r3, r4, r5, pc}
-_0223020C:
- lsl r0, r4, #2
- add r0, r5, r0
- ldr r0, [r0, #0x48]
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02230214
-MOD11_02230214: ; 0x02230214
- ldr r0, [r0, #0x58]
- bx lr
-
- thumb_func_start MOD11_02230218
-MOD11_02230218: ; 0x02230218
- ldr r0, [r0, #0x5c]
- bx lr
-
- thumb_func_start MOD11_0223021C
-MOD11_0223021C: ; 0x0223021C
- lsl r1, r1, #2
- add r0, r0, r1
- ldr r3, _02230228 ; =FUN_020239CC
- ldr r0, [r0, #0x48]
- bx r3
- nop
-_02230228: .word FUN_020239CC
-
- thumb_func_start MOD11_0223022C
-MOD11_0223022C: ; 0x0223022C
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- ldr r0, [r6, #0x44]
- add r7, r1, #0
- mov r4, #0
- cmp r0, #0
- ble _02230250
- add r5, r6, #0
-_0223023C:
- ldr r0, [r5, #0x34]
- bl MOD11_02253A4C
- cmp r7, r0
- beq _02230250
- ldr r0, [r6, #0x44]
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, r0
- blt _0223023C
-_02230250:
- ldr r0, [r6, #0x44]
- cmp r4, r0
- blt _0223025A
- bl ErrorHandling
-_0223025A:
- add r0, r4, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02230260
-MOD11_02230260: ; 0x02230260
- lsl r1, r1, #2
- add r0, r0, r1
- ldr r3, _0223026C ; =MOD11_02253A4C
- ldr r0, [r0, #0x34]
- bx r3
- nop
-_0223026C: .word MOD11_02253A4C
-
- thumb_func_start MOD11_02230270
-MOD11_02230270: ; 0x02230270
- push {r3, lr}
- lsl r1, r1, #2
- add r0, r0, r1
- ldr r0, [r0, #0x34]
- bl MOD11_02253A4C
- mov r1, #1
- and r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02230288
-MOD11_02230288: ; 0x02230288
- mov r1, #0x1b
- lsl r1, r1, #4
- ldr r0, [r0, r1]
- bx lr
-
- thumb_func_start MOD11_02230290
-MOD11_02230290: ; 0x02230290
- ldr r0, [r0, #0x64]
- bx lr
-
- thumb_func_start MOD11_02230294
-MOD11_02230294: ; 0x02230294
- ldr r1, _022302A4 ; =0x000023FC
- ldr r0, [r0, r1]
- cmp r0, #0xc
- bgt _022302A0
- cmp r0, #0
- bge _022302A2
-_022302A0:
- mov r0, #0xc
-_022302A2:
- bx lr
- .align 2, 0
-_022302A4: .word 0x000023FC
-
- thumb_func_start MOD11_022302A8
-MOD11_022302A8: ; 0x022302A8
- mov r1, #9
- lsl r1, r1, #0xa
- ldr r0, [r0, r1]
- bx lr
-
- thumb_func_start MOD11_022302B0
-MOD11_022302B0: ; 0x022302B0
- ldr r1, _022302B8 ; =0x00002404
- ldr r0, [r0, r1]
- bx lr
- nop
-_022302B8: .word 0x00002404
-
- thumb_func_start MOD11_022302BC
-MOD11_022302BC: ; 0x022302BC
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- add r5, r1, #0
- bl MOD11_0222FF84
- str r0, [sp]
- add r0, r6, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- bne _022302D8
- add r0, r5, #0
- pop {r3, r4, r5, r6, r7, pc}
-_022302D8:
- ldr r0, [sp]
- mov r4, #0
- cmp r0, #0
- ble _02230302
-_022302E0:
- cmp r4, r5
- beq _022302FA
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_02230270
- add r7, r0, #0
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_02230270
- cmp r7, r0
- beq _02230302
-_022302FA:
- ldr r0, [sp]
- add r4, r4, #1
- cmp r4, r0
- blt _022302E0
-_02230302:
- add r0, r4, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02230308
-MOD11_02230308: ; 0x02230308
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r0, #0
- add r6, r1, #0
- str r2, [sp]
- bl MOD11_0222FF84
- str r0, [sp, #4]
- add r0, r5, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- bne _0223032C
- mov r0, #1
- add sp, #8
- eor r0, r6
- pop {r3, r4, r5, r6, r7, pc}
-_0223032C:
- ldr r0, [sp, #4]
- mov r4, #0
- cmp r0, #0
- ble _02230368
-_02230334:
- cmp r4, r6
- beq _02230360
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02230260
- mov r1, #2
- and r1, r0
- ldr r0, [sp]
- cmp r0, r1
- bne _02230360
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02230270
- add r7, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02230270
- cmp r7, r0
- bne _02230368
-_02230360:
- ldr r0, [sp, #4]
- add r4, r4, #1
- cmp r4, r0
- blt _02230334
-_02230368:
- add r0, r4, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02230370
-MOD11_02230370: ; 0x02230370
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- add r6, r1, #0
- ldr r1, [sp, #0x38]
- add r5, r2, #0
- str r1, [sp, #0x38]
- add r1, r0, #0
- ldr r1, [r1, #0x30]
- add r4, r3, #0
- str r1, [sp, #0x1c]
- mov r1, #0
- str r1, [sp, #0x14]
- ldr r1, [sp, #0x1c]
- str r0, [sp, #4]
- mov r2, #2
- add r3, r6, #0
- bl MOD11_0224C474
- str r0, [sp, #0x10]
- ldr r0, [sp, #4]
- bl MOD11_0222FF74
- cmp r0, #3
- beq _022303BA
- ldr r0, [sp, #4]
- bl MOD11_0222FF74
- mov r1, #0x10
- tst r0, r1
- beq _022303E0
- ldr r0, [sp, #4]
- add r1, r6, #0
- bl MOD11_02230260
- mov r1, #1
- tst r0, r1
- bne _022303E0
-_022303BA:
- ldr r0, [sp, #4]
- add r1, r6, #0
- bl MOD11_022302BC
- add r3, r0, #0
- ldr r0, [sp, #4]
- ldr r1, [sp, #0x1c]
- mov r2, #2
- bl MOD11_0224C474
- str r0, [sp, #0xc]
- cmp r0, r5
- bne _022303E4
- ldr r0, [sp, #4]
- add r1, r6, #0
- bl MOD11_022302BC
- add r6, r0, #0
- b _022303E4
-_022303E0:
- ldr r0, [sp, #0x10]
- str r0, [sp, #0xc]
-_022303E4:
- ldr r0, [sp, #4]
- add r1, r6, #0
- add r2, r5, #0
- bl MOD11_02230014
- str r0, [sp, #0x18]
- mov r0, #0
- str r0, [sp, #8]
- ldr r0, [sp, #0x38]
- mov r1, #0xf
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02230478
- ldr r0, [sp, #0x18]
- mov r1, #0x9f
- mov r2, #0
- bl GetMonDataEncrypted
- mov r1, #7
- str r0, [sp, #0x20]
- tst r1, r0
- beq _02230478
- mov r1, #7
- bic r0, r1
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x18]
- mov r1, #0x9f
- add r2, sp, #0x20
- bl SetMonDataEncrypted
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _02230434
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _02230474
-_02230434:
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x34
- mov r3, #0
- bl MOD11_02243420
- mov r1, #7
- str r0, [sp, #0x20]
- bic r0, r1
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x34
- add r3, sp, #0x20
- bl MOD11_0224379C
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x35
- mov r3, #0
- bl MOD11_02243420
- ldr r1, _02230688 ; =0xF7FFFFFF
- str r0, [sp, #0x20]
- and r0, r1
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x35
- add r3, sp, #0x20
- bl MOD11_0224379C
-_02230474:
- mov r0, #1
- str r0, [sp, #0x14]
-_02230478:
- ldr r0, [sp, #0x38]
- mov r1, #0x10
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _022304DC
- ldr r0, [sp, #0x18]
- mov r1, #0x9f
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r1, _0223068C ; =0x00000F88
- str r0, [sp, #0x20]
- tst r1, r0
- beq _022304DC
- ldr r1, _02230690 ; =0xFFFFF077
- add r2, sp, #0x20
- and r0, r1
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x18]
- mov r1, #0x9f
- bl SetMonDataEncrypted
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _022304B8
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _022304D8
-_022304B8:
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x34
- mov r3, #0
- bl MOD11_02243420
- ldr r1, _02230690 ; =0xFFFFF077
- str r0, [sp, #0x20]
- and r0, r1
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x34
- add r3, sp, #0x20
- bl MOD11_0224379C
-_022304D8:
- mov r0, #1
- str r0, [sp, #0x14]
-_022304DC:
- ldr r0, [sp, #0x38]
- mov r1, #0x11
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02230540
- ldr r0, [sp, #0x18]
- mov r1, #0x9f
- mov r2, #0
- bl GetMonDataEncrypted
- mov r1, #0x10
- str r0, [sp, #0x20]
- tst r1, r0
- beq _02230540
- mov r1, #0x10
- bic r0, r1
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x18]
- mov r1, #0x9f
- add r2, sp, #0x20
- bl SetMonDataEncrypted
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _0223051C
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _0223053C
-_0223051C:
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x34
- mov r3, #0
- bl MOD11_02243420
- mov r1, #0x10
- str r0, [sp, #0x20]
- bic r0, r1
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x34
- add r3, sp, #0x20
- bl MOD11_0224379C
-_0223053C:
- mov r0, #1
- str r0, [sp, #0x14]
-_02230540:
- ldr r0, [sp, #0x38]
- mov r1, #0x12
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _022305A4
- ldr r0, [sp, #0x18]
- mov r1, #0x9f
- mov r2, #0
- bl GetMonDataEncrypted
- mov r1, #0x20
- str r0, [sp, #0x20]
- tst r1, r0
- beq _022305A4
- mov r1, #0x20
- bic r0, r1
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x18]
- mov r1, #0x9f
- add r2, sp, #0x20
- bl SetMonDataEncrypted
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _02230580
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _022305A0
-_02230580:
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x34
- mov r3, #0
- bl MOD11_02243420
- mov r1, #0x20
- str r0, [sp, #0x20]
- bic r0, r1
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x34
- add r3, sp, #0x20
- bl MOD11_0224379C
-_022305A0:
- mov r0, #1
- str r0, [sp, #0x14]
-_022305A4:
- ldr r0, [sp, #0x38]
- mov r1, #0x13
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02230608
- ldr r0, [sp, #0x18]
- mov r1, #0x9f
- mov r2, #0
- bl GetMonDataEncrypted
- mov r1, #0x40
- str r0, [sp, #0x20]
- tst r1, r0
- beq _02230608
- mov r1, #0x40
- bic r0, r1
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x18]
- mov r1, #0x9f
- add r2, sp, #0x20
- bl SetMonDataEncrypted
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _022305E4
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _02230604
-_022305E4:
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x34
- mov r3, #0
- bl MOD11_02243420
- mov r1, #0x40
- str r0, [sp, #0x20]
- bic r0, r1
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x34
- add r3, sp, #0x20
- bl MOD11_0224379C
-_02230604:
- mov r0, #1
- str r0, [sp, #0x14]
-_02230608:
- ldr r0, [sp, #0x38]
- mov r1, #0x14
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02230650
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _02230626
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _02230650
-_02230626:
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x35
- mov r3, #0
- bl MOD11_02243420
- mov r1, #7
- str r0, [sp, #0x20]
- tst r1, r0
- beq _02230650
- mov r1, #7
- bic r0, r1
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x35
- add r3, sp, #0x20
- bl MOD11_0224379C
- mov r0, #1
- str r0, [sp, #0x14]
-_02230650:
- ldr r0, [sp, #0x38]
- mov r1, #0x15
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _022306AC
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _0223066E
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _022306AC
-_0223066E:
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x35
- mov r3, #0
- bl MOD11_02243420
- mov r1, #0xf
- lsl r1, r1, #0x10
- str r0, [sp, #0x20]
- tst r1, r0
- beq _022306AC
- ldr r1, _02230694 ; =0xFFF0FFFF
- b _02230698
- .align 2, 0
-_02230688: .word 0xF7FFFFFF
-_0223068C: .word 0x00000F88
-_02230690: .word 0xFFFFF077
-_02230694: .word 0xFFF0FFFF
-_02230698:
- mov r2, #0x35
- and r0, r1
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- add r3, sp, #0x20
- bl MOD11_0224379C
- mov r0, #1
- str r0, [sp, #0x14]
-_022306AC:
- ldr r0, [sp, #0x38]
- mov r1, #0x16
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02230706
- ldr r0, [sp, #4]
- ldr r1, [sp, #0x1c]
- mov r2, #1
- add r3, r6, #0
- bl MOD11_0224C474
- str r0, [sp, #0x20]
- cmp r0, #0
- bne _02230706
- ldr r0, [sp, #4]
- ldr r1, [sp, #0x1c]
- mov r2, #0
- add r3, r6, #0
- bl MOD11_0224C474
- mov r1, #0x40
- str r0, [sp, #0x20]
- orr r0, r1
- str r0, [sp, #0x20]
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r1, [sp, #0x1c]
- mov r2, #0
- add r3, r6, #0
- bl MOD11_0224C54C
- mov r0, #5
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r1, [sp, #0x1c]
- mov r2, #1
- add r3, r6, #0
- bl MOD11_0224C54C
- mov r0, #1
- str r0, [sp, #0x14]
-_02230706:
- ldr r0, [sp, #0x38]
- mov r1, #0x1b
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02230744
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _02230724
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _02230744
-_02230724:
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x13
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #0xc
- bge _02230744
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x13
- mov r3, #1
- bl MOD11_02243DB0
- mov r0, #1
- str r0, [sp, #0x14]
-_02230744:
- ldr r0, [sp, #0x38]
- mov r1, #0x1c
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02230782
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _02230762
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _02230782
-_02230762:
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x14
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #0xc
- bge _02230782
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x14
- mov r3, #1
- bl MOD11_02243DB0
- mov r0, #1
- str r0, [sp, #0x14]
-_02230782:
- ldr r0, [sp, #0x38]
- mov r1, #0x1d
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _022307C0
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _022307A0
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _022307C0
-_022307A0:
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x16
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #0xc
- bge _022307C0
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x16
- mov r3, #1
- bl MOD11_02243DB0
- mov r0, #1
- str r0, [sp, #0x14]
-_022307C0:
- ldr r0, [sp, #0x38]
- mov r1, #0x1e
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _022307FE
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _022307DE
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _022307FE
-_022307DE:
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x17
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #0xc
- bge _022307FE
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x17
- mov r3, #1
- bl MOD11_02243DB0
- mov r0, #1
- str r0, [sp, #0x14]
-_022307FE:
- ldr r0, [sp, #0x38]
- mov r1, #0x1f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _0223083C
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _0223081C
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _0223083C
-_0223081C:
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x15
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #0xc
- bge _0223083C
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x15
- mov r3, #1
- bl MOD11_02243DB0
- mov r0, #1
- str r0, [sp, #0x14]
-_0223083C:
- ldr r0, [sp, #0x38]
- mov r1, #0x20
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _0223087A
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _0223085A
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _0223087A
-_0223085A:
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x18
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #0xc
- bge _0223087A
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x18
- mov r3, #1
- bl MOD11_02243DB0
- mov r0, #1
- str r0, [sp, #0x14]
-_0223087A:
- ldr r0, [sp, #0x38]
- mov r1, #0x21
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _022308C4
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _02230898
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _022308C4
-_02230898:
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x35
- mov r3, #0
- bl MOD11_02243420
- mov r1, #1
- lsl r1, r1, #0x14
- add r2, r0, #0
- str r0, [sp, #0x20]
- tst r2, r1
- bne _022308C4
- orr r0, r1
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x35
- add r3, sp, #0x20
- bl MOD11_0224379C
- mov r0, #1
- str r0, [sp, #0x14]
-_022308C4:
- ldr r0, [sp, #0x38]
- mov r1, #0x24
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _0223095A
- ldr r0, [sp, #0x38]
- mov r1, #0x37
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- str r0, [sp, #0x20]
- add r1, r4, #0
- ldr r0, [sp, #0x18]
- add r1, #0x3a
- mov r2, #0
- bl GetMonDataEncrypted
- add r7, r0, #0
- add r1, r4, #0
- ldr r0, [sp, #0x18]
- add r1, #0x42
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r7, r0
- beq _0223095A
- add r1, r4, #0
- ldr r0, [sp, #0x18]
- ldr r2, [sp, #0x20]
- add r1, #0x3a
- bl AddMonPartyStatEncrypted
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _0223091C
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _02230956
-_0223091C:
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x35
- mov r3, #0
- bl MOD11_02243420
- mov r1, #2
- lsl r1, r1, #0x14
- tst r0, r1
- bne _02230956
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x4b
- mov r3, #0
- bl MOD11_02243420
- add r7, r0, #0
- add r0, r4, #0
- bl MaskOfFlagNo
- tst r0, r7
- bne _02230956
- add r4, #0x1f
- ldr r0, [sp, #0x1c]
- ldr r3, [sp, #0x20]
- add r1, r6, #0
- add r2, r4, #0
- bl MOD11_02243DB0
-_02230956:
- mov r0, #1
- str r0, [sp, #0x14]
-_0223095A:
- ldr r0, [sp, #0x38]
- mov r1, #0x25
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _022309F8
- ldr r0, [sp, #0x38]
- mov r1, #0x37
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- str r0, [sp, #0x20]
- mov r4, #0
-_0223097E:
- add r1, r4, #0
- ldr r0, [sp, #0x18]
- add r1, #0x3a
- mov r2, #0
- bl GetMonDataEncrypted
- add r7, r0, #0
- add r1, r4, #0
- ldr r0, [sp, #0x18]
- add r1, #0x42
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r7, r0
- beq _022309F2
- add r1, r4, #0
- ldr r0, [sp, #0x18]
- ldr r2, [sp, #0x20]
- add r1, #0x3a
- bl AddMonPartyStatEncrypted
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _022309B4
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _022309EE
-_022309B4:
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x35
- mov r3, #0
- bl MOD11_02243420
- mov r1, #2
- lsl r1, r1, #0x14
- tst r0, r1
- bne _022309EE
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x4b
- mov r3, #0
- bl MOD11_02243420
- add r7, r0, #0
- add r0, r4, #0
- bl MaskOfFlagNo
- tst r0, r7
- bne _022309EE
- add r2, r4, #0
- ldr r0, [sp, #0x1c]
- ldr r3, [sp, #0x20]
- add r1, r6, #0
- add r2, #0x1f
- bl MOD11_02243DB0
-_022309EE:
- mov r0, #1
- str r0, [sp, #0x14]
-_022309F2:
- add r4, r4, #1
- cmp r4, #4
- blt _0223097E
-_022309F8:
- ldr r0, [sp, #0x38]
- mov r1, #0x26
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- bne _02230A0C
- b _02230B14
-_02230A0C:
- mov r0, #0
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x38]
- mov r1, #0x17
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02230A36
- ldr r0, [sp, #0x18]
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- bne _02230A42
- mov r0, #1
- str r0, [sp, #0x20]
- b _02230A42
-_02230A36:
- ldr r0, [sp, #0x18]
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- str r0, [sp, #0x20]
-_02230A42:
- ldr r0, [sp, #0x20]
- cmp r0, #0
- beq _02230B14
- ldr r0, [sp, #0x18]
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- add r4, r0, #0
- ldr r0, [sp, #0x18]
- mov r1, #0xa3
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r4, r0
- beq _02230B14
- ldr r0, [sp, #0x38]
- mov r1, #0x36
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- str r0, [sp, #0x20]
- cmp r0, #0xfd
- beq _02230AA2
- cmp r0, #0xfe
- beq _02230A8C
- cmp r0, #0xff
- bne _02230AC2
- ldr r0, [sp, #0x18]
- mov r1, #0xa3
- mov r2, #0
- bl GetMonDataEncrypted
- str r0, [sp, #0x20]
- b _02230AC2
-_02230A8C:
- ldr r0, [sp, #0x18]
- mov r1, #0xa3
- mov r2, #0
- bl GetMonDataEncrypted
- lsr r0, r0, #1
- str r0, [sp, #0x20]
- bne _02230AC2
- mov r0, #1
- str r0, [sp, #0x20]
- b _02230AC2
-_02230AA2:
- ldr r0, [sp, #0x18]
- mov r1, #0xa3
- mov r2, #0
- bl GetMonDataEncrypted
- mov r1, #0x19
- mul r1, r0
- add r0, r1, #0
- mov r1, #0x64
- bl _u32_div_f
- str r0, [sp, #0x20]
- cmp r0, #0
- bne _02230AC2
- mov r0, #1
- str r0, [sp, #0x20]
-_02230AC2:
- ldr r0, [sp, #0x18]
- ldr r2, [sp, #0x20]
- mov r1, #0xa2
- bl AddMonPartyStatEncrypted
- ldr r0, [sp, #0x38]
- mov r1, #0x17
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- bne _02230B10
- ldr r0, [sp, #4]
- add r1, r6, #0
- bl MOD11_02230270
- cmp r0, #0
- beq _02230AF8
- ldr r0, [sp, #0x1c]
- add r1, r6, #0
- mov r2, #0x5f
- add r3, sp, #0x20
- bl MOD11_0224379C
- b _02230B10
-_02230AF8:
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _02230B04
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _02230B10
-_02230B04:
- ldr r0, [sp, #0x1c]
- ldr r3, [sp, #0x20]
- add r1, r6, #0
- mov r2, #0x2f
- bl MOD11_02243DB0
-_02230B10:
- mov r0, #1
- str r0, [sp, #0x14]
-_02230B14:
- ldr r0, [sp, #0x38]
- mov r1, #0x2d
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02230B4A
- ldr r0, [sp, #0x18]
- mov r1, #9
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0x64
- bhs _02230B4A
- ldr r0, [sp, #0x14]
- cmp r0, #1
- bne _02230B4A
- ldr r0, [sp, #0x38]
- mov r1, #0x38
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- str r0, [sp, #8]
-_02230B4A:
- ldr r0, [sp, #0x38]
- mov r1, #0x2e
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02230B8E
- ldr r0, [sp, #0x18]
- mov r1, #9
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0x64
- blo _02230B8E
- ldr r0, [sp, #0x18]
- mov r1, #9
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0xc8
- bhs _02230B8E
- ldr r0, [sp, #0x14]
- cmp r0, #1
- bne _02230B8E
- ldr r0, [sp, #0x38]
- mov r1, #0x39
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- str r0, [sp, #8]
-_02230B8E:
- ldr r0, [sp, #0x38]
- mov r1, #0x2f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02230BC4
- ldr r0, [sp, #0x18]
- mov r1, #9
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0xc8
- blo _02230BC4
- ldr r0, [sp, #0x14]
- cmp r0, #1
- bne _02230BC4
- ldr r0, [sp, #0x38]
- mov r1, #0x3a
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- str r0, [sp, #8]
-_02230BC4:
- ldr r0, [sp, #8]
- cmp r0, #0
- beq _02230C4A
- ble _02230C28
- ldr r0, [sp, #0x18]
- mov r1, #0x9a
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0xb
- bne _02230BE0
- ldr r0, [sp, #8]
- add r0, r0, #1
- str r0, [sp, #8]
-_02230BE0:
- ldr r0, [sp, #0x18]
- mov r1, #0x97
- mov r2, #0
- bl GetMonDataEncrypted
- add r4, r0, #0
- ldr r0, [sp, #4]
- bl MOD11_022302B0
- cmp r4, r0
- bne _02230BFC
- ldr r0, [sp, #8]
- add r0, r0, #1
- str r0, [sp, #8]
-_02230BFC:
- ldr r0, [sp, #0x18]
- mov r1, #6
- mov r2, #0
- bl GetMonDataEncrypted
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x38]
- mov r1, #1
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0x34
- bne _02230C28
- ldr r1, [sp, #8]
- mov r0, #0x96
- mul r0, r1
- mov r1, #0x64
- bl _s32_div_f
- str r0, [sp, #8]
-_02230C28:
- ldr r0, [sp, #0x18]
- ldr r2, [sp, #8]
- mov r1, #9
- bl AddMonPartyStatEncrypted
- ldr r0, [sp, #0x10]
- cmp r0, r5
- beq _02230C3E
- ldr r0, [sp, #0xc]
- cmp r0, r5
- bne _02230C4A
-_02230C3E:
- ldr r0, [sp, #0x1c]
- ldr r3, [sp, #8]
- add r1, r6, #0
- mov r2, #0x2c
- bl MOD11_02243DB0
-_02230C4A:
- ldr r0, [sp, #0x14]
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02230C50
-MOD11_02230C50: ; 0x02230C50
- ldr r1, _02230C58 ; =0x00002408
- ldr r0, [r0, r1]
- bx lr
- nop
-_02230C58: .word 0x00002408
-
- thumb_func_start MOD11_02230C5C
-MOD11_02230C5C: ; 0x02230C5C
- ldr r1, _02230C64 ; =0x0000240C
- ldr r0, [r0, r1]
- bx lr
- nop
-_02230C64: .word 0x0000240C
-
- thumb_func_start MOD11_02230C68
-MOD11_02230C68: ; 0x02230C68
- mov r2, #9
- lsl r2, r2, #0xa
- ldr r1, [r0, r2]
- cmp r1, #5
- bhi _02230CB4
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02230C7E: ; jump table
- .short _02230C8A - _02230C7E - 2 ; case 0
- .short _02230C8A - _02230C7E - 2 ; case 1
- .short _02230C8A - _02230C7E - 2 ; case 2
- .short _02230C8A - _02230C7E - 2 ; case 3
- .short _02230C8A - _02230C7E - 2 ; case 4
- .short _02230C8A - _02230C7E - 2 ; case 5
-_02230C8A:
- add r2, #0xc
- ldr r1, [r0, r2]
- cmp r1, #4
- bhi _02230CB6
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02230C9E: ; jump table
- .short _02230CA8 - _02230C9E - 2 ; case 0
- .short _02230CA8 - _02230C9E - 2 ; case 1
- .short _02230CAC - _02230C9E - 2 ; case 2
- .short _02230CB0 - _02230C9E - 2 ; case 3
- .short _02230CB0 - _02230C9E - 2 ; case 4
-_02230CA8:
- mov r0, #0
- bx lr
-_02230CAC:
- mov r0, #1
- bx lr
-_02230CB0:
- mov r0, #2
- bx lr
-_02230CB4:
- mov r0, #0
-_02230CB6:
- bx lr
-
- thumb_func_start MOD11_02230CB8
-MOD11_02230CB8: ; 0x02230CB8
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD11_02230260
- cmp r0, #4
- bne _02230D32
- ldr r1, [r5, #0x2c]
- mov r0, #8
- tst r0, r1
- bne _02230D32
- mov r0, #4
- tst r0, r1
- beq _02230CEE
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_022302BC
- bl MaskOfFlagNo
- mov r1, #0x91
- lsl r1, r1, #6
- ldrb r1, [r5, r1]
- tst r0, r1
- bne _02230D32
- mov r0, #1
- pop {r3, r4, r5, pc}
-_02230CEE:
- ldr r1, [r5, #0x30]
- add r0, r5, #0
- mov r2, #0xc
- mov r3, #0
- bl MOD11_0224C474
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- ldr r1, [r5, #0x30]
- add r0, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_0224C474
- cmp r0, #0xe
- bne _02230D12
- cmp r4, #0x10
- bhi _02230D2A
-_02230D12:
- ldr r1, [r5, #0x30]
- add r0, r5, #0
- mov r2, #0xa
- mov r3, #0
- bl MOD11_0224C474
- add r4, r0, #0
- mov r0, #0
- bl MaskOfFlagNo
- tst r0, r4
- beq _02230D2E
-_02230D2A:
- mov r0, #0
- pop {r3, r4, r5, pc}
-_02230D2E:
- mov r0, #1
- pop {r3, r4, r5, pc}
-_02230D32:
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02230D38
-MOD11_02230D38: ; 0x02230D38
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r0, #0
- mov r0, #0
- str r0, [sp, #4]
- ldr r0, [r5, #0x14]
- add r4, r1, #0
- add r7, r2, #0
- cmp r0, #1
- beq _02230D5A
- cmp r0, #4
- beq _02230D5A
- cmp r0, #5
- beq _02230D5A
- ldr r0, [sp, #4]
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-_02230D5A:
- mov r0, #0x5e
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- cmp r0, #0
- beq _02230DCE
-_02230D64:
- mov r0, #0
- str r0, [r4]
- cmp r0, #6
- bge _02230D9C
- mov r6, #0x5e
- lsl r6, r6, #2
-_02230D70:
- bl MaskOfFlagNo
- ldr r1, [r5, r6]
- tst r0, r1
- beq _02230D92
- ldr r0, [r4]
- bl MaskOfFlagNo
- mov r3, #0x5e
- lsl r3, r3, #2
- mov r2, #0
- mvn r2, r2
- ldr r1, [r5, r3]
- eor r0, r2
- and r0, r1
- str r0, [r5, r3]
- b _02230D9C
-_02230D92:
- ldr r0, [r4]
- add r0, r0, #1
- str r0, [r4]
- cmp r0, #6
- blt _02230D70
-_02230D9C:
- ldr r1, [r4]
- cmp r1, #6
- bge _02230DC4
- ldr r0, [r5, #4]
- bl FUN_0206B9B0
- mov r3, #0x59
- str r7, [sp]
- lsl r3, r3, #2
- ldr r3, [r5, r3]
- add r1, r0, #0
- lsl r3, r3, #0x10
- ldr r0, [r5, #4]
- mov r2, #0
- lsr r3, r3, #0x10
- bl FUN_02069168
- str r0, [sp, #4]
- cmp r0, #0
- bne _02230DD0
-_02230DC4:
- mov r0, #0x5e
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- cmp r0, #0
- bne _02230D64
-_02230DCE:
- ldr r0, [sp, #4]
-_02230DD0:
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02230DD4
-MOD11_02230DD4: ; 0x02230DD4
- ldr r1, _02230DDC ; =0x000023F8
- ldrb r0, [r0, r1]
- bx lr
- nop
-_02230DDC: .word 0x000023F8
-
- thumb_func_start MOD11_02230DE0
-MOD11_02230DE0: ; 0x02230DE0
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x30]
- cmp r0, #0
- bne _02230DEE
- bl ErrorHandling
-_02230DEE:
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- mov r2, #5
- mov r3, #0
- bl MOD11_0224C474
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- pop {r4, pc}
-
- thumb_func_start MOD11_02230E00
-MOD11_02230E00: ; 0x02230E00
- ldr r1, _02230E08 ; =0x00002410
- ldr r0, [r0, r1]
- bx lr
- nop
-_02230E08: .word 0x00002410
-
- thumb_func_start MOD11_02230E0C
-MOD11_02230E0C: ; 0x02230E0C
- ldr r2, _02230E14 ; =0x00002410
- str r1, [r0, r2]
- bx lr
- nop
-_02230E14: .word 0x00002410
-
- thumb_func_start MOD11_02230E18
-MOD11_02230E18: ; 0x02230E18
- mov r1, #0x6d
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- bx lr
-
- thumb_func_start MOD11_02230E20
-MOD11_02230E20: ; 0x02230E20
- push {r3, lr}
- ldr r2, [r0, #0x2c]
- mov r1, #4
- tst r1, r2
- beq _02230E2E
- mov r0, #1
- pop {r3, pc}
-_02230E2E:
- mov r1, #0x6d
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- bl FUN_0202502C
- cmp r0, #0
- bne _02230E40
- mov r0, #1
- pop {r3, pc}
-_02230E40:
- mov r0, #0
- pop {r3, pc}
-
- thumb_func_start MOD11_02230E44
-MOD11_02230E44: ; 0x02230E44
- mov r1, #0x6d
- lsl r1, r1, #2
- ldr r3, _02230E50 ; =FUN_02025084
- ldr r0, [r0, r1]
- bx r3
- nop
-_02230E50: .word FUN_02025084
-
- thumb_func_start MOD11_02230E54
-MOD11_02230E54: ; 0x02230E54
- push {r3, lr}
- ldr r2, [r0, #0x2c]
- mov r1, #4
- tst r1, r2
- beq _02230E62
- mov r0, #1
- pop {r3, pc}
-_02230E62:
- mov r1, #0x6d
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- bl FUN_02024FF4
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02230E70
-MOD11_02230E70: ; 0x02230E70
- mov r1, #0x6d
- lsl r1, r1, #2
- ldr r3, _02230E7C ; =FUN_02025048
- ldr r0, [r0, r1]
- bx r3
- nop
-_02230E7C: .word FUN_02025048
-
- thumb_func_start MOD11_02230E80
-MOD11_02230E80: ; 0x02230E80
- mov r1, #0x71
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- bx lr
-
- thumb_func_start MOD11_02230E88
-MOD11_02230E88: ; 0x02230E88
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r2, [r5, #0x2c]
- mov r3, #8
- add r4, r1, #0
- tst r3, r2
- bne _02230EA6
- mov r3, #0x10
- tst r2, r3
- beq _02230EAE
- bl MOD11_02230260
- mov r1, #1
- tst r0, r1
- beq _02230EAE
-_02230EA6:
- lsl r0, r4, #2
- add r0, r5, r0
- ldr r0, [r0, #0x78]
- pop {r3, r4, r5, pc}
-_02230EAE:
- ldr r1, [r5, #0x2c]
- mov r0, #2
- tst r0, r1
- beq _02230EC0
- lsl r0, r4, #0x1f
- lsr r0, r0, #0x1d
- add r0, r5, r0
- ldr r0, [r0, #0x78]
- pop {r3, r4, r5, pc}
-_02230EC0:
- lsl r0, r4, #2
- add r0, r5, r0
- ldr r0, [r0, #0x78]
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02230EC8
-MOD11_02230EC8: ; 0x02230EC8
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- mov r1, #0xa9
- ldr r2, [r5, #0x2c]
- lsl r1, r1, #2
- tst r1, r2
- bne _02230F66
- mov r4, #0
- add r1, r4, #0
- bl MOD11_0222FFC8
- cmp r0, #0
- ble _02230F66
- add r7, r4, #0
-_02230EE4:
- add r0, r5, #0
- mov r1, #0
- add r2, r4, #0
- bl MOD11_02230014
- mov r1, #0xad
- mov r2, #0
- add r6, r0, #0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
- mov r0, #0x67
- lsl r0, r0, #2
- cmp r1, r0
- bne _02230F58
- add r0, r4, #0
- bl MaskOfFlagNo
- ldr r1, _02230F68 ; =0x00002414
- ldrb r1, [r5, r1]
- tst r0, r1
- beq _02230F58
- add r0, r5, #0
- bl MOD11_02230294
- cmp r0, #0xb
- bhi _02230F40
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02230F28: ; jump table
- .short _02230F44 - _02230F28 - 2 ; case 0
- .short _02230F44 - _02230F28 - 2 ; case 1
- .short _02230F40 - _02230F28 - 2 ; case 2
- .short _02230F40 - _02230F28 - 2 ; case 3
- .short _02230F44 - _02230F28 - 2 ; case 4
- .short _02230F44 - _02230F28 - 2 ; case 5
- .short _02230F40 - _02230F28 - 2 ; case 6
- .short _02230F40 - _02230F28 - 2 ; case 7
- .short _02230F40 - _02230F28 - 2 ; case 8
- .short _02230F4A - _02230F28 - 2 ; case 9
- .short _02230F40 - _02230F28 - 2 ; case 10
- .short _02230F4A - _02230F28 - 2 ; case 11
-_02230F40:
- str r7, [sp]
- b _02230F4E
-_02230F44:
- mov r0, #1
- str r0, [sp]
- b _02230F4E
-_02230F4A:
- mov r0, #2
- str r0, [sp]
-_02230F4E:
- add r0, r6, #0
- mov r1, #0x70
- add r2, sp, #0
- bl SetMonDataEncrypted
-_02230F58:
- add r0, r5, #0
- mov r1, #0
- add r4, r4, #1
- bl MOD11_0222FFC8
- cmp r4, r0
- blt _02230EE4
-_02230F66:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02230F68: .word 0x00002414
-
- thumb_func_start MOD11_02230F6C
-MOD11_02230F6C: ; 0x02230F6C
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r0, r2, #0
- add r4, r1, #0
- bl MaskOfFlagNo
- ldr r1, _02230F84 ; =0x00002414
- add r2, r5, r1
- ldrb r1, [r2, r4]
- orr r0, r1
- strb r0, [r2, r4]
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02230F84: .word 0x00002414
-
- thumb_func_start MOD11_02230F88
-MOD11_02230F88: ; 0x02230F88
- push {r4, lr}
- add r4, r0, #0
- add r0, #0x98
- ldr r0, [r0]
- cmp r0, #0
- beq _02230FA4
- add r0, r1, #0
- bl FUN_020690E4
- add r4, #0x98
- add r1, r0, #0
- ldr r0, [r4]
- bl FUN_0204C104
-_02230FA4:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02230FA8
-MOD11_02230FA8: ; 0x02230FA8
- push {r3, r4, lr}
- sub sp, #4
- add r3, r0, #0
- mov r0, #5
- str r0, [sp]
- ldr r4, _02230FC8 ; =0x0000241C
- add r0, r3, #0
- ldrb r2, [r3, r4]
- add r4, r4, #2
- add r0, #0x9c
- ldrh r3, [r3, r4]
- ldr r0, [r0]
- bl FUN_02061028
- add sp, #4
- pop {r3, r4, pc}
- .align 2, 0
-_02230FC8: .word 0x0000241C
-
- thumb_func_start MOD11_02230FCC
-MOD11_02230FCC: ; 0x02230FCC
- push {r4, r5, r6, r7, lr}
- sub sp, #0x2c
- mov r1, #1
- add r4, r0, #0
- mov r0, #5
- lsl r1, r1, #0x10
- bl AllocFromHeap
- mov r1, #0x87
- lsl r1, r1, #2
- str r0, [r4, r1]
- mov r0, #5
- sub r1, #0x1c
- bl AllocFromHeap
- mov r1, #0x22
- lsl r1, r1, #4
- str r0, [r4, r1]
- sub r1, r1, #4
- mov r2, #1
- ldr r0, _02231224 ; =0x06010000
- ldr r1, [r4, r1]
- lsl r2, r2, #0x10
- bl MIi_CpuCopy32
- mov r0, #0x22
- lsl r0, r0, #4
- ldr r5, [r4, r0]
- ldr r0, [r4, #0x28]
- mov r1, #0
- bl FUN_020031FC
- mov r2, #2
- add r1, r5, #0
- lsl r2, r2, #8
- bl MIi_CpuCopy32
- mov r0, #0x19
- lsl r0, r0, #0x16
- str r0, [sp, #0x24]
- mov r0, #0x63
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- ldr r0, [r0]
- bl FUN_02020350
- ldr r1, [r0, #4]
- ldr r0, [sp, #0x24]
- add r0, r0, r1
- str r0, [sp, #0x24]
- mov r0, #0x14
- str r0, [sp, #0x28]
- lsl r0, r0, #0xb
- str r0, [sp, #0xc]
-_02231038:
- mov r0, #0x10
- mov ip, r0
- lsl r0, r0, #6
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x28]
- mov r7, #1
- sub r0, #0x14
- lsl r1, r0, #8
- ldr r0, [sp, #0x24]
- add r0, r0, r1
- str r0, [sp, #0x10]
-_0223104E:
- mov r0, ip
- sub r0, #0x10
- ldr r1, [sp, #0x10]
- lsl r3, r0, #5
- add r3, r1, r3
- ldr r5, [sp, #0xc]
- ldr r1, [sp, #0x14]
- mov r2, #0
- add r6, r5, r1
-_02231060:
- cmp r0, #8
- bge _02231088
- add r1, r2, #0
- tst r1, r7
- beq _0223107A
- lsr r1, r2, #0x1f
- add r1, r2, r1
- asr r1, r1, #1
- ldrb r5, [r3, r1]
- mov r1, #0xf0
- and r1, r5
- asr r1, r1, #4
- b _022310B6
-_0223107A:
- lsr r1, r2, #0x1f
- add r1, r2, r1
- asr r1, r1, #1
- ldrb r5, [r3, r1]
- mov r1, #0xf
- and r1, r5
- b _022310B6
-_02231088:
- mov r1, #1
- tst r1, r2
- beq _022310A4
- lsr r1, r2, #0x1f
- add r1, r2, r1
- asr r1, r1, #1
- add r5, r3, r1
- mov r1, #7
- lsl r1, r1, #8
- ldrb r5, [r5, r1]
- mov r1, #0xf0
- and r1, r5
- asr r1, r1, #4
- b _022310B6
-_022310A4:
- lsr r1, r2, #0x1f
- add r1, r2, r1
- asr r1, r1, #1
- add r5, r3, r1
- mov r1, #7
- lsl r1, r1, #8
- ldrb r5, [r5, r1]
- mov r1, #0xf
- and r1, r5
-_022310B6:
- cmp r1, #0
- beq _022310C6
- mov r5, #0x87
- lsl r5, r5, #2
- ldr r5, [r4, r5]
- add r1, #0x70
- add r5, r6, r5
- strb r1, [r2, r5]
-_022310C6:
- add r2, r2, #1
- cmp r2, #0x40
- blt _02231060
- ldr r0, [sp, #0x14]
- add r0, #0x40
- str r0, [sp, #0x14]
- mov r0, ip
- add r0, r0, #1
- mov ip, r0
- cmp r0, #0x20
- blt _0223104E
- mov r1, #2
- ldr r0, [sp, #0xc]
- lsl r1, r1, #0xa
- add r0, r0, r1
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x28]
- add r0, r0, #1
- str r0, [sp, #0x28]
- cmp r0, #0x1c
- blt _02231038
- mov r0, #0x19
- lsl r0, r0, #0x16
- str r0, [sp, #8]
- mov r0, #0x5f
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- ldr r0, [r0]
- bl FUN_02020350
- ldr r1, [r0, #4]
- ldr r0, [sp, #8]
- mov r7, #0x26
- add r0, r0, r1
- str r0, [sp, #8]
- mov r3, #0
- mov r0, #0xf
- mov r1, #0xf0
- lsl r7, r7, #0xa
- mov r2, #1
-_02231116:
- add r5, r3, #0
- tst r5, r2
- beq _0223112C
- lsr r5, r3, #0x1f
- add r5, r3, r5
- asr r6, r5, #1
- ldr r5, [sp, #8]
- ldrb r5, [r5, r6]
- and r5, r1
- asr r5, r5, #4
- b _02231138
-_0223112C:
- lsr r5, r3, #0x1f
- add r5, r3, r5
- asr r6, r5, #1
- ldr r5, [sp, #8]
- ldrb r5, [r5, r6]
- and r5, r0
-_02231138:
- cmp r5, #0
- beq _02231148
- mov r6, #0x87
- lsl r6, r6, #2
- ldr r6, [r4, r6]
- add r5, #0x70
- add r6, r6, r3
- strb r5, [r6, r7]
-_02231148:
- mov r5, #2
- add r3, r3, #1
- lsl r5, r5, #0xa
- cmp r3, r5
- blt _02231116
- mov r0, #0x1c
- str r0, [sp, #4]
- lsl r0, r0, #0xb
- str r0, [sp, #0x18]
-_0223115A:
- ldr r0, [sp, #4]
- mov r2, #0
- sub r0, #0x1c
- lsl r1, r0, #8
- ldr r0, [sp, #8]
- str r2, [sp, #0x20]
- add r0, r0, r1
- str r0, [sp, #0x1c]
- mov r7, #1
-_0223116C:
- asr r0, r2, #2
- lsr r0, r0, #0x1d
- add r0, r2, r0
- asr r0, r0, #3
- lsl r1, r0, #0xa
- ldr r0, [sp, #0x1c]
- lsr r5, r2, #0x1f
- add r6, r0, r1
- lsl r1, r2, #0x1d
- sub r1, r1, r5
- mov r0, #0x1d
- ror r1, r0
- add r0, r5, r1
- lsl r0, r0, #5
- ldr r5, [sp, #0x18]
- ldr r1, [sp, #0x20]
- mov r3, #0
- add r0, r6, r0
- add r1, r5, r1
-_02231192:
- add r5, r3, #0
- tst r5, r7
- beq _022311AE
- lsr r5, r3, #0x1f
- add r5, r3, r5
- asr r5, r5, #1
- add r6, r0, r5
- mov r5, #1
- lsl r5, r5, #0xa
- ldrb r6, [r6, r5]
- mov r5, #0xf0
- and r5, r6
- asr r5, r5, #4
- b _022311C0
-_022311AE:
- lsr r5, r3, #0x1f
- add r5, r3, r5
- asr r5, r5, #1
- add r6, r0, r5
- mov r5, #1
- lsl r5, r5, #0xa
- ldrb r6, [r6, r5]
- mov r5, #0xf
- and r5, r6
-_022311C0:
- cmp r5, #0
- beq _022311D0
- mov r6, #0x87
- lsl r6, r6, #2
- ldr r6, [r4, r6]
- add r5, #0x70
- add r6, r1, r6
- strb r5, [r3, r6]
-_022311D0:
- add r3, r3, #1
- cmp r3, #0x40
- blt _02231192
- ldr r0, [sp, #0x20]
- add r2, r2, #1
- add r0, #0x40
- str r0, [sp, #0x20]
- cmp r2, #0x18
- blt _0223116C
- mov r3, #2
- ldr r0, [sp, #0x18]
- lsl r3, r3, #0xa
- add r0, r0, r3
- str r0, [sp, #0x18]
- ldr r0, [sp, #4]
- add r0, r0, #1
- str r0, [sp, #4]
- cmp r0, #0x20
- blt _0223115A
- mov r0, #0
- mov r2, #0x87
- str r0, [sp]
- lsl r2, r2, #2
- ldr r0, [r4, #4]
- ldr r2, [r4, r2]
- mov r1, #3
- lsl r3, r3, #5
- bl FUN_02017E14
- mov r0, #0x5f
- lsl r0, r0, #2
- add r0, r4, r0
- bl MOD11_0225840C
- mov r0, #0x63
- lsl r0, r0, #2
- add r0, r4, r0
- bl MOD11_0225840C
- add sp, #0x2c
- pop {r4, r5, r6, r7, pc}
- nop
-_02231224: .word 0x06010000
-
- thumb_func_start MOD11_02231228
-MOD11_02231228: ; 0x02231228
- mov r1, #0x87
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- bx lr
-
- thumb_func_start MOD11_02231230
-MOD11_02231230: ; 0x02231230
- mov r1, #0x22
- lsl r1, r1, #4
- ldr r0, [r0, r1]
- bx lr
-
- thumb_func_start MOD11_02231238
-MOD11_02231238: ; 0x02231238
- ldr r1, _02231240 ; =0x00002424
- ldr r0, [r0, r1]
- bx lr
- nop
-_02231240: .word 0x00002424
-
- thumb_func_start MOD11_02231244
-MOD11_02231244: ; 0x02231244
- ldr r1, _0223124C ; =0x00002224
- add r0, r0, r1
- bx lr
- nop
-_0223124C: .word 0x00002224
-
- thumb_func_start MOD11_02231250
-MOD11_02231250: ; 0x02231250
- ldr r1, _02231258 ; =0x00002304
- add r0, r0, r1
- bx lr
- nop
-_02231258: .word 0x00002304
-
- thumb_func_start MOD11_0223125C
-MOD11_0223125C: ; 0x0223125C
- ldr r1, _02231264 ; =0x00002428
- ldr r0, [r0, r1]
- bx lr
- nop
-_02231264: .word 0x00002428
-
- thumb_func_start MOD11_02231268
-MOD11_02231268: ; 0x02231268
- ldr r1, _02231270 ; =0x0000241D
- ldrb r0, [r0, r1]
- bx lr
- nop
-_02231270: .word 0x0000241D
-
- thumb_func_start MOD11_02231274
-MOD11_02231274: ; 0x02231274
- ldr r2, _0223127C ; =0x0000241D
- strb r1, [r0, r2]
- bx lr
- nop
-_0223127C: .word 0x0000241D
-
- thumb_func_start MOD11_02231280
-MOD11_02231280: ; 0x02231280
- ldr r1, _02231288 ; =0x0000242C
- ldr r0, [r0, r1]
- bx lr
- nop
-_02231288: .word 0x0000242C
-
- thumb_func_start MOD11_0223128C
-MOD11_0223128C: ; 0x0223128C
- mov r2, #0x86
- lsl r2, r2, #2
- ldr r3, _02231298 ; =FUN_0202A0E8
- ldr r0, [r0, r2]
- bx r3
- nop
-_02231298: .word FUN_0202A0E8
-
- thumb_func_start MOD11_0223129C
-MOD11_0223129C: ; 0x0223129C
- mov r1, #0x86
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- ldr r3, _022312A8 ; =FUN_0202A170
- mov r1, #0x16
- bx r3
- .align 2, 0
-_022312A8: .word FUN_0202A170
-
- thumb_func_start MOD11_022312AC
-MOD11_022312AC: ; 0x022312AC
- ldr r2, _022312B4 ; =0x0000243C
- str r1, [r0, r2]
- bx lr
- nop
-_022312B4: .word 0x0000243C
-
- thumb_func_start MOD11_022312B8
-MOD11_022312B8: ; 0x022312B8
- mov r2, #0x91
- lsl r2, r2, #6
- strb r1, [r0, r2]
- bx lr
-
- thumb_func_start MOD11_022312C0
-MOD11_022312C0: ; 0x022312C0
- mov r1, #0x6f
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- bx lr
-
- thumb_func_start MOD11_022312C8
-MOD11_022312C8: ; 0x022312C8
- mov r2, #0x6f
- lsl r2, r2, #2
- str r1, [r0, r2]
- bx lr
-
- thumb_func_start MOD11_022312D0
-MOD11_022312D0: ; 0x022312D0
- mov r2, #0x73
- lsl r2, r2, #2
- add r2, r0, r2
- lsl r0, r1, #4
- add r0, r2, r0
- bx lr
-
- thumb_func_start MOD11_022312DC
-MOD11_022312DC: ; 0x022312DC
- push {r3, r4, r5, lr}
- add r5, r1, #0
- add r4, r0, #0
- cmp r5, #4
- blt _022312EA
- bl ErrorHandling
-_022312EA:
- lsl r0, r5, #4
- ldr r0, [r4, r0]
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_022312F0
-MOD11_022312F0: ; 0x022312F0
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r6, r2, #0
- cmp r4, #4
- blt _02231300
- bl ErrorHandling
-_02231300:
- lsl r0, r4, #4
- add r0, r5, r0
- str r6, [r0, #4]
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_02231308
-MOD11_02231308: ; 0x02231308
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r6, r2, #0
- cmp r4, #4
- blt _02231318
- bl ErrorHandling
-_02231318:
- lsl r0, r4, #4
- add r0, r5, r0
- str r6, [r0, #8]
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_02231320
-MOD11_02231320: ; 0x02231320
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r6, r2, #0
- cmp r4, #4
- blt _02231330
- bl ErrorHandling
-_02231330:
- lsl r0, r4, #4
- add r0, r5, r0
- str r6, [r0, #0xc]
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_02231338
-MOD11_02231338: ; 0x02231338
- ldr r2, _02231340 ; =0x000023F9
- strb r1, [r0, r2]
- bx lr
- nop
-_02231340: .word 0x000023F9
-
- thumb_func_start MOD11_02231344
-MOD11_02231344: ; 0x02231344
- ldr r2, _0223134C ; =0x000023F0
- str r1, [r0, r2]
- bx lr
- nop
-_0223134C: .word 0x000023F0
-
- thumb_func_start MOD11_02231350
-MOD11_02231350: ; 0x02231350
- ldr r2, _02231358 ; =0x000023F4
- str r1, [r0, r2]
- bx lr
- nop
-_02231358: .word 0x000023F4
-
- thumb_func_start MOD11_0223135C
-MOD11_0223135C: ; 0x0223135C
- ldr r2, _02231364 ; =0x000023F0
- ldr r0, [r0, r2]
- strb r1, [r0]
- bx lr
- .align 2, 0
-_02231364: .word 0x000023F0
-
- thumb_func_start MOD11_02231368
-MOD11_02231368: ; 0x02231368
- ldr r2, _02231370 ; =0x000023F4
- ldr r0, [r0, r2]
- strb r1, [r0]
- bx lr
- .align 2, 0
-_02231370: .word 0x000023F4
-
- thumb_func_start MOD11_02231374
-MOD11_02231374: ; 0x02231374
- ldr r2, _0223137C ; =0x000023FA
- strb r1, [r0, r2]
- bx lr
- nop
-_0223137C: .word 0x000023FA
-
- thumb_func_start MOD11_02231380
-MOD11_02231380: ; 0x02231380
- lsl r1, r1, #2
- add r0, r0, r1
- ldr r3, _0223138C ; =MOD11_02253A70
- ldr r0, [r0, #0x34]
- bx r3
- nop
-_0223138C: .word MOD11_02253A70
-
- thumb_func_start MOD11_02231390
-MOD11_02231390: ; 0x02231390
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- ldr r0, [r6, #0x44]
- mov r7, #0
- cmp r0, #0
- ble _022313DC
- add r5, r6, #0
-_0223139E:
- ldr r0, [r5, #0x34]
- bl MOD11_02253A70
- add r4, r0, #0
- str r6, [r4, #0xc]
- ldr r0, [r5, #0x34]
- bl MOD11_02253A4C
- str r0, [sp]
- add r0, r6, #0
- bl MOD11_0222FF74
- add r1, r0, #0
- ldr r0, [sp]
- bl MOD11_02257F6C
- add r1, r4, #0
- add r1, #0x25
- strb r0, [r1]
- add r0, r4, #0
- bl MOD11_02256FB0
- add r0, r4, #0
- mov r1, #0
- bl MOD11_022572AC
- ldr r0, [r6, #0x44]
- add r7, r7, #1
- add r5, r5, #4
- cmp r7, r0
- blt _0223139E
-_022313DC:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022313E0
-MOD11_022313E0: ; 0x022313E0
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- ldr r0, [r6, #0x44]
- mov r4, #0
- cmp r0, #0
- ble _0223140C
- add r5, r6, #0
- mov r7, #1
-_022313F0:
- ldr r0, [r5, #0x34]
- bl MOD11_02253A70
- ldr r1, [r0, #0x28]
- cmp r1, #0
- beq _02231402
- add r1, r7, #0
- bl MOD11_022572AC
-_02231402:
- ldr r0, [r6, #0x44]
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, r0
- blt _022313F0
-_0223140C:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02231410
-MOD11_02231410: ; 0x02231410
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- ldr r0, [r6, #0x44]
- mov r4, #0
- cmp r0, #0
- ble _02231436
- add r5, r6, #0
- add r7, r4, #0
-_02231420:
- ldr r0, [r5, #0x34]
- bl MOD11_02253A70
- add r1, r7, #0
- bl MOD11_022572AC
- ldr r0, [r6, #0x44]
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, r0
- blt _02231420
-_02231436:
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02231438
-MOD11_02231438: ; 0x02231438
- push {r4, r5, r6, lr}
- add r6, r0, #0
- ldr r0, [r6, #0x44]
- mov r4, #0
- cmp r0, #0
- ble _0223145A
- add r5, r6, #0
-_02231446:
- ldr r0, [r5, #0x34]
- bl MOD11_02253A70
- bl MOD11_02257030
- ldr r0, [r6, #0x44]
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, r0
- blt _02231446
-_0223145A:
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_0223145C
-MOD11_0223145C: ; 0x0223145C
- ldr r1, _02231464 ; =0x0000241C
- ldrb r0, [r0, r1]
- bx lr
- nop
-_02231464: .word 0x0000241C
-
- thumb_func_start MOD11_02231468
-MOD11_02231468: ; 0x02231468
- ldr r2, _02231470 ; =0x0000241C
- strb r1, [r0, r2]
- bx lr
- nop
-_02231470: .word 0x0000241C
-
- thumb_func_start MOD11_02231474
-MOD11_02231474: ; 0x02231474
- ldr r1, _02231480 ; =0x000023FB
- ldrb r0, [r0, r1]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x1e
- bx lr
- nop
-_02231480: .word 0x000023FB
-
- thumb_func_start MOD11_02231484
-MOD11_02231484: ; 0x02231484
- push {r3, r4}
- ldr r3, _0223149C ; =0x000023FB
- lsl r1, r1, #0x1e
- ldrb r4, [r0, r3]
- mov r2, #0x18
- lsr r1, r1, #0x1b
- bic r4, r2
- orr r1, r4
- strb r1, [r0, r3]
- pop {r3, r4}
- bx lr
- nop
-_0223149C: .word 0x000023FB
-
- thumb_func_start MOD11_022314A0
-MOD11_022314A0: ; 0x022314A0
- ldr r1, _022314AC ; =0x000023FB
- ldrb r0, [r0, r1]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1d
- bx lr
- nop
-_022314AC: .word 0x000023FB
-
- thumb_func_start MOD11_022314B0
-MOD11_022314B0: ; 0x022314B0
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- cmp r4, #0xf
- blo _022314BE
- bl ErrorHandling
-_022314BE:
- ldr r1, _022314D0 ; =0x000023FB
- mov r0, #0xe0
- ldrb r2, [r5, r1]
- bic r2, r0
- lsl r0, r4, #0x1d
- lsr r0, r0, #0x18
- orr r0, r2
- strb r0, [r5, r1]
- pop {r3, r4, r5, pc}
- .align 2, 0
-_022314D0: .word 0x000023FB
-
- thumb_func_start MOD11_022314D4
-MOD11_022314D4: ; 0x022314D4
- ldr r2, _022314DC ; =0x00002438
- str r1, [r0, r2]
- bx lr
- nop
-_022314DC: .word 0x00002438
-
- thumb_func_start MOD11_022314E0
-MOD11_022314E0: ; 0x022314E0
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- ldr r0, [r6, #0x44]
- add r7, r1, #0
- mov r4, #0
- cmp r0, #0
- ble _02231502
- add r5, r6, #0
-_022314F0:
- ldr r0, [r5, #0x34]
- bl MOD11_02253A4C
- strb r4, [r7, r0]
- ldr r0, [r6, #0x44]
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, r0
- blt _022314F0
-_02231502:
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02231504
-MOD11_02231504: ; 0x02231504
- push {r3, r4, r5, r6, r7, lr}
- add r7, r0, #0
- add r6, r1, #0
- mov r1, #0
- mov r0, #0xff
-_0223150E:
- strb r0, [r6, r1]
- add r1, r1, #1
- cmp r1, #4
- blt _0223150E
- ldr r0, [r7, #0x44]
- mov r5, #0
- cmp r0, #0
- ble _02231532
- add r4, r7, #0
-_02231520:
- ldr r0, [r4, #0x34]
- bl MOD11_02253A4C
- strb r0, [r6, r5]
- ldr r0, [r7, #0x44]
- add r5, r5, #1
- add r4, r4, #4
- cmp r5, r0
- blt _02231520
-_02231532:
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02231534
-MOD11_02231534: ; 0x02231534
- push {r3, r4, r5, r6, r7, lr}
- add r7, r0, #0
- mov r0, #0
- add r6, r1, #0
- add r5, r0, #0
-_0223153E:
- add r0, r0, #1
- stmia r1!, {r5}
- cmp r0, #4
- blt _0223153E
- ldr r0, [r7, #0x44]
- cmp r0, #0
- ble _02231560
- add r4, r7, #0
-_0223154E:
- ldr r0, [r4, #0x34]
- bl MOD11_02253A64
- stmia r6!, {r0}
- ldr r0, [r7, #0x44]
- add r5, r5, #1
- add r4, r4, #4
- cmp r5, r0
- blt _0223154E
-_02231560:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02231564
-MOD11_02231564: ; 0x02231564
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- ldr r0, [r6, #0x44]
- add r7, r1, #0
- mov r4, #0
- cmp r0, #0
- ble _0223158A
- add r5, r6, #0
-_02231574:
- ldr r0, [r5, #0x34]
- bl MOD11_02253A70
- add r1, r7, #0
- bl MOD11_02257264
- ldr r0, [r6, #0x44]
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, r0
- blt _02231574
-_0223158A:
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0223158C
-MOD11_0223158C: ; 0x0223158C
- push {r4, r5, r6, lr}
- add r6, r1, #0
- add r5, r0, #0
- add r0, r6, #0
- bl FUN_020239F4
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- add r0, r5, #0
- bl FUN_02069AEC
- ldr r1, _022315BC ; =0x0225DC1C
- lsl r0, r0, #2
- ldrb r1, [r1, r4]
- add r4, r1, #0
- mul r4, r0
- add r0, r6, #0
- bl FUN_02023A10
- cmp r4, r0
- bls _022315B8
- add r4, r0, #0
-_022315B8:
- add r0, r4, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-_022315BC: .word 0x0225DC1C
-
- thumb_func_start MOD11_022315C0
-MOD11_022315C0: ; 0x022315C0
- push {r4, r5, r6, lr}
- add r6, r1, #0
- add r5, r0, #0
- lsl r0, r6, #2
- add r0, r5, r0
- ldr r0, [r0, #0x34]
- bl MOD11_02253A4C
- add r4, r0, #0
- ldr r1, [r5, #0x30]
- add r0, r5, #0
- mov r2, #2
- add r3, r6, #0
- bl MOD11_0224C474
- add r2, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02230014
- add r6, r0, #0
- ldr r0, [r5, #0x2c]
- mov r1, #0x84
- tst r1, r0
- bne _02231606
- mov r1, #1
- tst r1, r4
- bne _022315FE
- sub r0, #0x4a
- cmp r0, #1
- bhi _02231606
-_022315FE:
- ldr r0, [r5, #0x60]
- add r1, r6, #0
- bl FUN_0202498C
-_02231606:
- mov r0, #1
- tst r0, r4
- bne _02231626
- add r0, r6, #0
- mov r1, #0xad
- mov r2, #0
- bl GetMonDataEncrypted
- mov r1, #0x67
- lsl r1, r1, #2
- cmp r0, r1
- bne _02231626
- ldr r0, [r5, #0x60]
- add r1, r6, #0
- bl FUN_02024AF0
-_02231626:
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_02231628
-MOD11_02231628: ; 0x02231628
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- lsl r0, r4, #2
- add r0, r5, r0
- ldr r0, [r0, #0x34]
- bl MOD11_02253A4C
- ldr r2, [r5, #0x2c]
- mov r1, #0x84
- tst r1, r2
- bne _02231664
- mov r1, #1
- tst r0, r1
- beq _02231664
- ldr r1, [r5, #0x30]
- add r0, r5, #0
- mov r2, #2
- add r3, r4, #0
- bl MOD11_0224C474
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02230014
- add r1, r0, #0
- ldr r0, [r5, #0x60]
- bl FUN_02024AF0
-_02231664:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02231668
-MOD11_02231668: ; 0x02231668
- ldr r3, _02231674 ; =FUN_02024594
- lsl r1, r1, #0x10
- ldr r0, [r0, #0x60]
- lsr r1, r1, #0x10
- bx r3
- nop
-_02231674: .word FUN_02024594
-
- thumb_func_start MOD11_02231678
-MOD11_02231678: ; 0x02231678
- ldr r0, _02231680 ; =0x04000050
- mov r1, #0
- strh r1, [r0]
- bx lr
- .align 2, 0
-_02231680: .word 0x04000050
-
- thumb_func_start MOD11_02231684
-MOD11_02231684: ; 0x02231684
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r4, r1, #0
- add r5, r0, #0
- mov r1, #0
- str r2, [sp, #0xc]
- add r7, r3, #0
- bl MOD11_0222FF6C
- add r6, r0, #0
- ldr r1, [r5, #0x2c]
- mov r0, #0x80
- tst r0, r1
- beq _0223174C
- ldr r0, _02231780 ; =0x00002710
- cmp r4, r0
- bne _022316F6
- cmp r7, #0x64
- bne _022316BC
- ldr r0, [sp, #0xc]
- mov r1, #0x34
- add r5, #0xd0
- mul r1, r0
- add r0, r5, r1
- mov r1, #5
- bl FUN_020137D4
- b _022316CC
-_022316BC:
- ldr r0, [sp, #0xc]
- mov r1, #0x34
- add r5, #0xd8
- mul r1, r0
- add r0, r5, r1
- mov r1, #5
- bl FUN_020137D4
-_022316CC:
- add r4, r0, #0
- add r0, r6, #0
- mov r1, #0xff
- bl FUN_02019620
- mov r3, #0
- ldr r0, [sp, #0x28]
- str r3, [sp]
- str r0, [sp, #4]
- ldr r0, _02231784 ; =MOD11_0223220C
- mov r1, #1
- str r0, [sp, #8]
- add r0, r6, #0
- add r2, r4, #0
- bl FUN_0201BD84
- add r5, r0, #0
- add r0, r4, #0
- bl FUN_02021A20
- b _02231778
-_022316F6:
- cmp r7, #0x64
- bne _02231702
- lsl r0, r4, #1
- add r0, r4, r0
- add r4, r0, #1
- b _02231708
-_02231702:
- lsl r0, r4, #1
- add r0, r4, r0
- add r4, r0, #2
-_02231708:
- ldr r2, _02231788 ; =0x0000022B
- mov r0, #0
- mov r1, #0x1a
- mov r3, #5
- bl NewMsgDataFromNarc
- add r1, r4, #0
- add r7, r0, #0
- bl FUN_0200A914
- add r4, r0, #0
- add r0, r6, #0
- mov r1, #0xff
- bl FUN_02019620
- mov r3, #0
- ldr r0, [sp, #0x28]
- str r3, [sp]
- str r0, [sp, #4]
- ldr r0, _02231784 ; =MOD11_0223220C
- mov r1, #1
- str r0, [sp, #8]
- add r0, r6, #0
- add r2, r4, #0
- bl FUN_0201BD84
- add r5, r0, #0
- add r0, r4, #0
- bl FUN_02021A20
- add r0, r7, #0
- bl DestroyMsgData
- b _02231778
-_0223174C:
- ldr r2, [r5, #0x18]
- add r0, r4, #0
- add r1, r7, #0
- mov r3, #5
- bl FUN_0206AD4C
- add r0, r6, #0
- mov r1, #0xff
- bl FUN_02019620
- mov r3, #0
- ldr r0, [sp, #0x28]
- str r3, [sp]
- str r0, [sp, #4]
- ldr r0, _02231784 ; =MOD11_0223220C
- mov r1, #1
- str r0, [sp, #8]
- ldr r2, [r5, #0x18]
- add r0, r6, #0
- bl FUN_0201BD84
- add r5, r0, #0
-_02231778:
- lsl r0, r5, #0x18
- lsr r0, r0, #0x18
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02231780: .word 0x00002710
-_02231784: .word MOD11_0223220C
-_02231788: .word 0x0000022B
-
- thumb_func_start MOD11_0223178C
-MOD11_0223178C: ; 0x0223178C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- str r1, [sp, #0xc]
- add r5, r0, #0
- add r4, r2, #0
- mov r1, #0
- add r6, r3, #0
- bl MOD11_0222FF6C
- add r7, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02231850
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02231A4C
- ldr r1, [sp, #0xc]
- add r0, r5, #0
- add r2, r4, #0
- bl MOD11_022321EC
- add r0, r7, #0
- mov r1, #0xff
- bl FUN_02019620
- mov r3, #0
- str r3, [sp]
- ldr r0, _022317DC ; =MOD11_0223220C
- str r6, [sp, #4]
- str r0, [sp, #8]
- ldr r2, [r5, #0x18]
- add r0, r7, #0
- mov r1, #1
- bl FUN_0201BD84
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022317DC: .word MOD11_0223220C
-
- thumb_func_start MOD11_022317E0
-MOD11_022317E0: ; 0x022317E0
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r7, r3, #0
- add r4, r1, #0
- add r5, r0, #0
- add r1, r7, #0
- add r6, r2, #0
- bl MOD11_02231850
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_02231A4C
- add r0, r5, #0
- add r1, r6, #0
- add r2, r7, #0
- bl MOD11_022321EC
- ldr r1, [sp, #0x28]
- mov r0, #1
- tst r0, r1
- beq _02231814
- add r0, r4, #0
- mov r1, #0xff
- bl FUN_02019620
-_02231814:
- ldr r1, [sp, #0x28]
- mov r0, #2
- tst r0, r1
- beq _0223182C
- mov r0, #0
- ldr r1, [r5, #0x18]
- add r2, r0, #0
- bl FUN_02002E14
- ldr r1, [sp, #0x2c]
- sub r3, r1, r0
- b _0223182E
-_0223182C:
- mov r3, #0
-_0223182E:
- ldr r0, [sp, #0x24]
- mov r1, #0
- str r0, [sp]
- ldr r0, [sp, #0x30]
- str r0, [sp, #4]
- ldr r0, _0223184C ; =MOD11_0223220C
- str r0, [sp, #8]
- add r0, r4, #0
- ldr r4, [sp, #0x20]
- ldr r2, [r5, #0x18]
- add r3, r4, r3
- bl FUN_0201BD84
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0223184C: .word MOD11_0223220C
-
- thumb_func_start MOD11_02231850
-MOD11_02231850: ; 0x02231850
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r6, r0, #0
- bl MOD11_0222FF74
- add r5, r0, #0
- ldrb r0, [r4, #1]
- mov r1, #0x80
- tst r1, r0
- bne _02231876
- mov r1, #0x40
- tst r1, r0
- beq _02231880
- ldr r1, [r4, #0x20]
- add r0, r6, #0
- bl MOD11_02230270
- cmp r0, #0
- bne _02231878
-_02231876:
- b _02231A4A
-_02231878:
- ldrh r0, [r4, #2]
- add r0, r0, #1
- strh r0, [r4, #2]
- pop {r4, r5, r6, pc}
-_02231880:
- mov r1, #0x3f
- and r0, r1
- cmp r0, #0x3c
- bls _0223188A
- b _02231A46
-_0223188A:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02231896: ; jump table
- .short _02231A4A - _02231896 - 2 ; case 0
- .short _02231910 - _02231896 - 2 ; case 1
- .short _02231928 - _02231896 - 2 ; case 2
- .short _02231A4A - _02231896 - 2 ; case 3
- .short _02231A4A - _02231896 - 2 ; case 4
- .short _02231A4A - _02231896 - 2 ; case 5
- .short _02231A4A - _02231896 - 2 ; case 6
- .short _02231A4A - _02231896 - 2 ; case 7
- .short _02231A4A - _02231896 - 2 ; case 8
- .short _0223198A - _02231896 - 2 ; case 9
- .short _02231928 - _02231896 - 2 ; case 10
- .short _02231928 - _02231896 - 2 ; case 11
- .short _02231928 - _02231896 - 2 ; case 12
- .short _02231928 - _02231896 - 2 ; case 13
- .short _02231928 - _02231896 - 2 ; case 14
- .short _02231928 - _02231896 - 2 ; case 15
- .short _02231928 - _02231896 - 2 ; case 16
- .short _02231928 - _02231896 - 2 ; case 17
- .short _02231928 - _02231896 - 2 ; case 18
- .short _02231928 - _02231896 - 2 ; case 19
- .short _0223194E - _02231896 - 2 ; case 20
- .short _02231966 - _02231896 - 2 ; case 21
- .short _02231A4A - _02231896 - 2 ; case 22
- .short _02231966 - _02231896 - 2 ; case 23
- .short _02231A4A - _02231896 - 2 ; case 24
- .short _02231A4A - _02231896 - 2 ; case 25
- .short _02231A4A - _02231896 - 2 ; case 26
- .short _02231A4A - _02231896 - 2 ; case 27
- .short _02231A4A - _02231896 - 2 ; case 28
- .short _02231A4A - _02231896 - 2 ; case 29
- .short _02231A4A - _02231896 - 2 ; case 30
- .short _0223198A - _02231896 - 2 ; case 31
- .short _0223198A - _02231896 - 2 ; case 32
- .short _0223198A - _02231896 - 2 ; case 33
- .short _02231928 - _02231896 - 2 ; case 34
- .short _02231928 - _02231896 - 2 ; case 35
- .short _022319E8 - _02231896 - 2 ; case 36
- .short _02231928 - _02231896 - 2 ; case 37
- .short _02231928 - _02231896 - 2 ; case 38
- .short _02231928 - _02231896 - 2 ; case 39
- .short _02231928 - _02231896 - 2 ; case 40
- .short _02231928 - _02231896 - 2 ; case 41
- .short _02231928 - _02231896 - 2 ; case 42
- .short _022319E8 - _02231896 - 2 ; case 43
- .short _02231928 - _02231896 - 2 ; case 44
- .short _02231928 - _02231896 - 2 ; case 45
- .short _02231928 - _02231896 - 2 ; case 46
- .short _02231928 - _02231896 - 2 ; case 47
- .short _02231966 - _02231896 - 2 ; case 48
- .short _02231A4A - _02231896 - 2 ; case 49
- .short _02231A4A - _02231896 - 2 ; case 50
- .short _02231A4A - _02231896 - 2 ; case 51
- .short _022319E8 - _02231896 - 2 ; case 52
- .short _022319E8 - _02231896 - 2 ; case 53
- .short _022319E8 - _02231896 - 2 ; case 54
- .short _022319E8 - _02231896 - 2 ; case 55
- .short _02231A4A - _02231896 - 2 ; case 56
- .short _02231A4A - _02231896 - 2 ; case 57
- .short _02231A4A - _02231896 - 2 ; case 58
- .short _02231A4A - _02231896 - 2 ; case 59
- .short _02231A4A - _02231896 - 2 ; case 60
-_02231910:
- ldr r1, [r4, #4]
- add r0, r6, #0
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- bl MOD11_02230270
- cmp r0, #0
- beq _02231944
- ldrh r0, [r4, #2]
- add r0, r0, #1
- strh r0, [r4, #2]
- pop {r4, r5, r6, pc}
-_02231928:
- ldr r1, [r4, #4]
- add r0, r6, #0
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- bl MOD11_02230270
- cmp r0, #0
- beq _02231944
- ldrh r0, [r4, #2]
- add r0, r0, #1
- strh r0, [r4, #2]
- mov r0, #1
- tst r0, r5
- bne _02231946
-_02231944:
- b _02231A4A
-_02231946:
- ldrh r0, [r4, #2]
- add r0, r0, #1
- strh r0, [r4, #2]
- pop {r4, r5, r6, pc}
-_0223194E:
- ldr r1, [r4, #8]
- add r0, r6, #0
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- bl MOD11_02230270
- cmp r0, #0
- beq _02231A4A
- ldrh r0, [r4, #2]
- add r0, r0, #1
- strh r0, [r4, #2]
- pop {r4, r5, r6, pc}
-_02231966:
- ldr r1, [r4, #8]
- add r0, r6, #0
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- bl MOD11_02230270
- cmp r0, #0
- beq _02231A4A
- ldrh r0, [r4, #2]
- add r0, r0, #1
- strh r0, [r4, #2]
- mov r0, #1
- tst r0, r5
- beq _02231A4A
- ldrh r0, [r4, #2]
- add r0, r0, #1
- strh r0, [r4, #2]
- pop {r4, r5, r6, pc}
-_0223198A:
- ldr r1, [r4, #4]
- add r0, r6, #0
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- bl MOD11_02230270
- cmp r0, #0
- beq _022319C4
- ldrh r0, [r4, #2]
- add r0, r0, #3
- strh r0, [r4, #2]
- mov r0, #1
- tst r0, r5
- beq _022319AC
- ldrh r0, [r4, #2]
- add r0, r0, #2
- strh r0, [r4, #2]
-_022319AC:
- ldr r1, [r4, #8]
- add r0, r6, #0
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- bl MOD11_02230270
- cmp r0, #0
- beq _02231A4A
- ldrh r0, [r4, #2]
- add r0, r0, #1
- strh r0, [r4, #2]
- pop {r4, r5, r6, pc}
-_022319C4:
- ldr r1, [r4, #8]
- add r0, r6, #0
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- bl MOD11_02230270
- cmp r0, #0
- beq _02231A4A
- ldrh r0, [r4, #2]
- add r0, r0, #1
- strh r0, [r4, #2]
- mov r0, #1
- tst r0, r5
- beq _02231A4A
- ldrh r0, [r4, #2]
- add r0, r0, #1
- strh r0, [r4, #2]
- pop {r4, r5, r6, pc}
-_022319E8:
- ldr r1, [r4, #4]
- add r0, r6, #0
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- bl MOD11_02230270
- cmp r0, #0
- beq _02231A22
- ldrh r0, [r4, #2]
- add r0, r0, #3
- strh r0, [r4, #2]
- mov r0, #1
- tst r0, r5
- beq _02231A0A
- ldrh r0, [r4, #2]
- add r0, r0, #2
- strh r0, [r4, #2]
-_02231A0A:
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- bl MOD11_02230270
- cmp r0, #0
- beq _02231A4A
- ldrh r0, [r4, #2]
- add r0, r0, #1
- strh r0, [r4, #2]
- pop {r4, r5, r6, pc}
-_02231A22:
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- bl MOD11_02230270
- cmp r0, #0
- beq _02231A4A
- ldrh r0, [r4, #2]
- add r0, r0, #1
- strh r0, [r4, #2]
- mov r0, #1
- tst r0, r5
- beq _02231A4A
- ldrh r0, [r4, #2]
- add r0, r0, #1
- strh r0, [r4, #2]
- pop {r4, r5, r6, pc}
-_02231A46:
- bl ErrorHandling
-_02231A4A:
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_02231A4C
-MOD11_02231A4C: ; 0x02231A4C
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldrb r2, [r4, #1]
- mov r1, #0x3f
- add r5, r0, #0
- and r1, r2
- cmp r1, #0x3c
- bls _02231A5E
- b _022320C2
-_02231A5E:
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02231A6A: ; jump table
- .short _022320C6 - _02231A6A - 2 ; case 0
- .short _022320C6 - _02231A6A - 2 ; case 1
- .short _02231AE4 - _02231A6A - 2 ; case 2
- .short _02231AEE - _02231A6A - 2 ; case 3
- .short _02231AF8 - _02231A6A - 2 ; case 4
- .short _02231B02 - _02231A6A - 2 ; case 5
- .short _02231B0C - _02231A6A - 2 ; case 6
- .short _02231B16 - _02231A6A - 2 ; case 7
- .short _02231B22 - _02231A6A - 2 ; case 8
- .short _02231B2C - _02231A6A - 2 ; case 9
- .short _02231B40 - _02231A6A - 2 ; case 10
- .short _02231B54 - _02231A6A - 2 ; case 11
- .short _02231B68 - _02231A6A - 2 ; case 12
- .short _02231B7C - _02231A6A - 2 ; case 13
- .short _02231B90 - _02231A6A - 2 ; case 14
- .short _02231BA4 - _02231A6A - 2 ; case 15
- .short _02231BB8 - _02231A6A - 2 ; case 16
- .short _02231BCC - _02231A6A - 2 ; case 17
- .short _02231BE0 - _02231A6A - 2 ; case 18
- .short _02231BF4 - _02231A6A - 2 ; case 19
- .short _02231AEE - _02231A6A - 2 ; case 20
- .short _02231C08 - _02231A6A - 2 ; case 21
- .short _02231C1C - _02231A6A - 2 ; case 22
- .short _02231C30 - _02231A6A - 2 ; case 23
- .short _02231C44 - _02231A6A - 2 ; case 24
- .short _02231C58 - _02231A6A - 2 ; case 25
- .short _02231C6C - _02231A6A - 2 ; case 26
- .short _02231C80 - _02231A6A - 2 ; case 27
- .short _02231C94 - _02231A6A - 2 ; case 28
- .short _02231CA8 - _02231A6A - 2 ; case 29
- .short _02231CBC - _02231A6A - 2 ; case 30
- .short _02231CD0 - _02231A6A - 2 ; case 31
- .short _02231CEE - _02231A6A - 2 ; case 32
- .short _02231D0C - _02231A6A - 2 ; case 33
- .short _02231D2A - _02231A6A - 2 ; case 34
- .short _02231D48 - _02231A6A - 2 ; case 35
- .short _02231D66 - _02231A6A - 2 ; case 36
- .short _02231D84 - _02231A6A - 2 ; case 37
- .short _02231DA2 - _02231A6A - 2 ; case 38
- .short _02231DC0 - _02231A6A - 2 ; case 39
- .short _02231DDE - _02231A6A - 2 ; case 40
- .short _02231DFC - _02231A6A - 2 ; case 41
- .short _02231E1A - _02231A6A - 2 ; case 42
- .short _02231E38 - _02231A6A - 2 ; case 43
- .short _02231E56 - _02231A6A - 2 ; case 44
- .short _02231E74 - _02231A6A - 2 ; case 45
- .short _02231E92 - _02231A6A - 2 ; case 46
- .short _02231EB0 - _02231A6A - 2 ; case 47
- .short _02231ECE - _02231A6A - 2 ; case 48
- .short _02231EEC - _02231A6A - 2 ; case 49
- .short _02231F0A - _02231A6A - 2 ; case 50
- .short _02231F28 - _02231A6A - 2 ; case 51
- .short _02231F46 - _02231A6A - 2 ; case 52
- .short _02231F6E - _02231A6A - 2 ; case 53
- .short _02231F96 - _02231A6A - 2 ; case 54
- .short _02231FBE - _02231A6A - 2 ; case 55
- .short _02231FE6 - _02231A6A - 2 ; case 56
- .short _0223200E - _02231A6A - 2 ; case 57
- .short _02232036 - _02231A6A - 2 ; case 58
- .short _0223205E - _02231A6A - 2 ; case 59
- .short _02232086 - _02231A6A - 2 ; case 60
-_02231AE4:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- pop {r3, r4, r5, pc}
-_02231AEE:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320EC
- pop {r3, r4, r5, pc}
-_02231AF8:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_02232160
- pop {r3, r4, r5, pc}
-_02231B02:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320F8
- pop {r3, r4, r5, pc}
-_02231B0C:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_02232104
- pop {r3, r4, r5, pc}
-_02231B16:
- ldr r2, [r4, #4]
- ldr r3, [r4, #0x1c]
- mov r1, #0
- bl MOD11_0223211C
- pop {r3, r4, r5, pc}
-_02231B22:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022321C4
- pop {r3, r4, r5, pc}
-_02231B2C:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320C8
- pop {r3, r4, r5, pc}
-_02231B40:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320EC
- pop {r3, r4, r5, pc}
-_02231B54:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232154
- pop {r3, r4, r5, pc}
-_02231B68:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232160
- pop {r3, r4, r5, pc}
-_02231B7C:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232148
- pop {r3, r4, r5, pc}
-_02231B90:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232178
- pop {r3, r4, r5, pc}
-_02231BA4:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320F8
- pop {r3, r4, r5, pc}
-_02231BB8:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223219C
- pop {r3, r4, r5, pc}
-_02231BCC:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232104
- pop {r3, r4, r5, pc}
-_02231BE0:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022321C4
- pop {r3, r4, r5, pc}
-_02231BF4:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022321DC
- pop {r3, r4, r5, pc}
-_02231C08:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320EC
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320C8
- pop {r3, r4, r5, pc}
-_02231C1C:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320EC
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320EC
- pop {r3, r4, r5, pc}
-_02231C30:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_02232154
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320C8
- pop {r3, r4, r5, pc}
-_02231C44:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320F8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320EC
- pop {r3, r4, r5, pc}
-_02231C58:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_02232104
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232104
- pop {r3, r4, r5, pc}
-_02231C6C:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022321C4
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022321C4
- pop {r3, r4, r5, pc}
-_02231C80:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022321C4
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320C8
- pop {r3, r4, r5, pc}
-_02231C94:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022321C4
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320F8
- pop {r3, r4, r5, pc}
-_02231CA8:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022321C4
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232104
- pop {r3, r4, r5, pc}
-_02231CBC:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022321AC
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022321C4
- pop {r3, r4, r5, pc}
-_02231CD0:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320C8
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320EC
- pop {r3, r4, r5, pc}
-_02231CEE:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320C8
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_02232154
- pop {r3, r4, r5, pc}
-_02231D0C:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320C8
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320F8
- pop {r3, r4, r5, pc}
-_02231D2A:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320EC
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320EC
- pop {r3, r4, r5, pc}
-_02231D48:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320EC
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_02232104
- pop {r3, r4, r5, pc}
-_02231D66:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232154
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320C8
- pop {r3, r4, r5, pc}
-_02231D84:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232154
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320EC
- pop {r3, r4, r5, pc}
-_02231DA2:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232154
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320F8
- pop {r3, r4, r5, pc}
-_02231DC0:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232154
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_02232160
- pop {r3, r4, r5, pc}
-_02231DDE:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232154
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_02232148
- pop {r3, r4, r5, pc}
-_02231DFC:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232154
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_0223216C
- pop {r3, r4, r5, pc}
-_02231E1A:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232154
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_02232104
- pop {r3, r4, r5, pc}
-_02231E38:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320F8
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320C8
- pop {r3, r4, r5, pc}
-_02231E56:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320F8
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320EC
- pop {r3, r4, r5, pc}
-_02231E74:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320F8
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_02232160
- pop {r3, r4, r5, pc}
-_02231E92:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320F8
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_0223216C
- pop {r3, r4, r5, pc}
-_02231EB0:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022321DC
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022321DC
- pop {r3, r4, r5, pc}
-_02231ECE:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320F8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320C8
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022321A0
- pop {r3, r4, r5, pc}
-_02231EEC:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022321C4
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320C8
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320C8
- pop {r3, r4, r5, pc}
-_02231F0A:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022321AC
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022321C4
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320C8
- pop {r3, r4, r5, pc}
-_02231F28:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022321AC
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022321C4
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320F8
- pop {r3, r4, r5, pc}
-_02231F46:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232154
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320C8
- ldr r2, [r4, #0x10]
- add r0, r5, #0
- mov r1, #3
- bl MOD11_022320EC
- pop {r3, r4, r5, pc}
-_02231F6E:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232154
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320C8
- ldr r2, [r4, #0x10]
- add r0, r5, #0
- mov r1, #3
- bl MOD11_02232154
- pop {r3, r4, r5, pc}
-_02231F96:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02232154
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320C8
- ldr r2, [r4, #0x10]
- add r0, r5, #0
- mov r1, #3
- bl MOD11_02232160
- pop {r3, r4, r5, pc}
-_02231FBE:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022320C8
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320F8
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320C8
- ldr r2, [r4, #0x10]
- add r0, r5, #0
- mov r1, #3
- bl MOD11_022320F8
- pop {r3, r4, r5, pc}
-_02231FE6:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022321C4
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022320C8
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022321C4
- ldr r2, [r4, #0x10]
- add r0, r5, #0
- mov r1, #3
- bl MOD11_022320C8
- pop {r3, r4, r5, pc}
-_0223200E:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022321AC
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022321C4
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320C8
- ldr r2, [r4, #0x10]
- add r0, r5, #0
- mov r1, #3
- bl MOD11_022320C8
- pop {r3, r4, r5, pc}
-_02232036:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022321AC
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022321C4
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320C8
- ldr r2, [r4, #0x10]
- add r0, r5, #0
- mov r1, #3
- bl MOD11_022321C4
- pop {r3, r4, r5, pc}
-_0223205E:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022321AC
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022321C4
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022321AC
- ldr r2, [r4, #0x10]
- add r0, r5, #0
- mov r1, #3
- bl MOD11_022321C4
- pop {r3, r4, r5, pc}
-_02232086:
- ldr r2, [r4, #4]
- mov r1, #0
- bl MOD11_022321AC
- ldr r2, [r4, #8]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022321C4
- ldr r2, [r4, #0xc]
- add r0, r5, #0
- mov r1, #2
- bl MOD11_022320C8
- ldr r2, [r4, #0x10]
- add r0, r5, #0
- mov r1, #3
- bl MOD11_022321AC
- ldr r2, [r4, #0x14]
- add r0, r5, #0
- mov r1, #4
- bl MOD11_022321C4
- ldr r2, [r4, #0x18]
- add r0, r5, #0
- mov r1, #5
- bl MOD11_022320C8
- pop {r3, r4, r5, pc}
-_022320C2:
- bl ErrorHandling
-_022320C6:
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_022320C8
-MOD11_022320C8: ; 0x022320C8
- push {r3, r4, r5, lr}
- mov r3, #0xff
- lsl r3, r3, #8
- add r4, r1, #0
- lsl r1, r2, #0x18
- and r2, r3
- add r5, r0, #0
- lsr r1, r1, #0x18
- asr r2, r2, #8
- bl MOD11_02230014
- add r2, r0, #0
- ldr r0, [r5, #0x14]
- add r1, r4, #0
- bl FUN_0200ACF8
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022320EC
-MOD11_022320EC: ; 0x022320EC
- ldr r3, _022320F4 ; =FUN_0200AD5C
- ldr r0, [r0, #0x14]
- bx r3
- nop
-_022320F4: .word FUN_0200AD5C
-
- thumb_func_start MOD11_022320F8
-MOD11_022320F8: ; 0x022320F8
- ldr r3, _02232100 ; =FUN_0200AE38
- ldr r0, [r0, #0x14]
- bx r3
- nop
-_02232100: .word FUN_0200AE38
-
- thumb_func_start MOD11_02232104
-MOD11_02232104: ; 0x02232104
- push {r3, lr}
- sub sp, #8
- mov r3, #0
- str r3, [sp]
- mov r3, #1
- str r3, [sp, #4]
- ldr r0, [r0, #0x14]
- mov r3, #5
- bl FUN_0200AD38
- add sp, #8
- pop {r3, pc}
-
- thumb_func_start MOD11_0223211C
-MOD11_0223211C: ; 0x0223211C
- push {r4, lr}
- sub sp, #8
- cmp r3, #0
- beq _02232134
- mov r4, #1
- str r4, [sp]
- str r4, [sp, #4]
- ldr r0, [r0, #0x14]
- bl FUN_0200AD38
- add sp, #8
- pop {r4, pc}
-_02232134:
- mov r3, #1
- str r3, [sp]
- str r3, [sp, #4]
- ldr r0, [r0, #0x14]
- mov r3, #5
- bl FUN_0200AD38
- add sp, #8
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02232148
-MOD11_02232148: ; 0x02232148
- ldr r3, _02232150 ; =FUN_0200AF18
- ldr r0, [r0, #0x14]
- bx r3
- nop
-_02232150: .word FUN_0200AF18
-
- thumb_func_start MOD11_02232154
-MOD11_02232154: ; 0x02232154
- ldr r3, _0223215C ; =FUN_0200ADCC
- ldr r0, [r0, #0x14]
- bx r3
- nop
-_0223215C: .word FUN_0200ADCC
-
- thumb_func_start MOD11_02232160
-MOD11_02232160: ; 0x02232160
- ldr r3, _02232168 ; =FUN_0200AF50
- ldr r0, [r0, #0x14]
- bx r3
- nop
-_02232168: .word FUN_0200AF50
-
- thumb_func_start MOD11_0223216C
-MOD11_0223216C: ; 0x0223216C
- ldr r3, _02232174 ; =FUN_0200AF88
- ldr r0, [r0, #0x14]
- bx r3
- nop
-_02232174: .word FUN_0200AF88
-
- thumb_func_start MOD11_02232178
-MOD11_02232178: ; 0x02232178
- push {r3, r4, r5, lr}
- mov r3, #0xff
- lsl r3, r3, #8
- add r4, r1, #0
- lsl r1, r2, #0x18
- and r2, r3
- add r5, r0, #0
- lsr r1, r1, #0x18
- asr r2, r2, #8
- bl MOD11_02230014
- add r2, r0, #0
- ldr r0, [r5, #0x14]
- add r1, r4, #0
- bl FUN_0200AC60
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0223219C
-MOD11_0223219C: ; 0x0223219C
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_022321A0
-MOD11_022321A0: ; 0x022321A0
- ldr r3, _022321A8 ; =FUN_0200AFBC
- ldr r0, [r0, #0x14]
- bx r3
- nop
-_022321A8: .word FUN_0200AFBC
-
- thumb_func_start MOD11_022321AC
-MOD11_022321AC: ; 0x022321AC
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r1, r2, #0
- bl MOD11_02230188
- add r2, r0, #0
- ldr r0, [r5, #0x14]
- add r1, r4, #0
- bl FUN_0200B0D4
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_022321C4
-MOD11_022321C4: ; 0x022321C4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r1, r2, #0
- bl MOD11_02230188
- add r2, r0, #0
- ldr r0, [r5, #0x14]
- add r1, r4, #0
- bl FUN_0200B144
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_022321DC
-MOD11_022321DC: ; 0x022321DC
- push {r4, lr}
- add r4, r0, #0
- add r3, r2, #0
- ldr r0, [r4, #0x14]
- ldr r2, [r4, #0x64]
- bl FUN_0200B410
- pop {r4, pc}
-
- thumb_func_start MOD11_022321EC
-MOD11_022321EC: ; 0x022321EC
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r0, r1, #0
- ldrh r1, [r2, #2]
- bl FUN_0200A914
- add r4, r0, #0
- ldr r0, [r5, #0x14]
- ldr r1, [r5, #0x18]
- add r2, r4, #0
- bl FUN_0200B7B8
- add r0, r4, #0
- bl FUN_02021A20
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_0223220C
-MOD11_0223220C: ; 0x0223220C
- push {r4, lr}
- mov r4, #0
- cmp r1, #5
- bhi _02232252
- add r0, r1, r1
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02232220: ; jump table
- .short _02232252 - _02232220 - 2 ; case 0
- .short _0223222C - _02232220 - 2 ; case 1
- .short _02232234 - _02232220 - 2 ; case 2
- .short _0223223C - _02232220 - 2 ; case 3
- .short _02232244 - _02232220 - 2 ; case 4
- .short _0223224C - _02232220 - 2 ; case 5
-_0223222C:
- bl FUN_02005514
- add r4, r0, #0
- b _02232252
-_02232234:
- bl FUN_02005CBC
- add r4, r0, #0
- b _02232252
-_0223223C:
- ldr r0, _02232258 ; =0x00000484
- bl FUN_02005C28
- b _02232252
-_02232244:
- ldr r0, _0223225C ; =0x000005E6
- bl FUN_020054C8
- b _02232252
-_0223224C:
- ldr r0, _02232260 ; =0x00000483
- bl FUN_02005C28
-_02232252:
- add r0, r4, #0
- pop {r4, pc}
- nop
-_02232258: .word 0x00000484
-_0223225C: .word 0x000005E6
-_02232260: .word 0x00000483
-
- thumb_func_start MOD11_02232264
-MOD11_02232264: ; 0x02232264
- push {r3, lr}
- add r2, r1, #0
- add r2, #0xb4
- ldr r2, [r2]
- lsl r2, r2, #2
- add r3, r1, r2
- mov r2, #0x27
- lsl r2, r2, #8
- ldr r2, [r3, r2]
- lsl r3, r2, #2
- ldr r2, _02232280 ; =0x0225DDE4
- ldr r2, [r2, r3]
- blx r2
- pop {r3, pc}
- .align 2, 0
-_02232280: .word 0x0225DDE4
-
- thumb_func_start MOD11_02232284
-MOD11_02232284: ; 0x02232284
- push {r4, lr}
- add r4, r0, #0
- add r0, r1, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- mov r1, #0
- bl MOD11_022548F0
- mov r0, #0
- pop {r4, pc}
-
- thumb_func_start MOD11_0223229C
-MOD11_0223229C: ; 0x0223229C
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r4, r0, #0
- bl MOD11_0222FF84
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- cmp r0, #0
- beq _022322C2
- cmp r0, #3
- beq _0223230E
- cmp r0, #4
- beq _022322E0
-_022322C2:
- mov r5, #0
- cmp r6, #0
- ble _0223230E
-_022322C8:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02254908
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_022315C0
- add r5, r5, #1
- cmp r5, r6
- blt _022322C8
- b _0223230E
-_022322E0:
- mov r5, #0
- cmp r6, #0
- ble _0223230E
- mov r7, #1
-_022322E8:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _02232314 ; =0x00000195
- ldrb r0, [r0, r1]
- tst r0, r7
- beq _02232308
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02254908
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_022315C0
-_02232308:
- add r5, r5, #1
- cmp r5, r6
- blt _022322E8
-_0223230E:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02232314: .word 0x00000195
-
- thumb_func_start MOD11_02232318
-MOD11_02232318: ; 0x02232318
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- add r4, r0, #0
- bl MOD11_0222FF84
- add r7, r0, #0
- add r0, r6, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r6, #0
- bl MOD11_0223A404
- cmp r0, #6
- bhi _02232350
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02232342: ; jump table
- .short _02232350 - _02232342 - 2 ; case 0
- .short _022323F4 - _02232342 - 2 ; case 1
- .short _0223243E - _02232342 - 2 ; case 2
- .short _0223236E - _02232342 - 2 ; case 3
- .short _022323B2 - _02232342 - 2 ; case 4
- .short _02232350 - _02232342 - 2 ; case 5
- .short _02232488 - _02232342 - 2 ; case 6
-_02232350:
- mov r5, #0
- cmp r7, #0
- ble _0223236C
-_02232356:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02254A0C
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_022315C0
- add r5, r5, #1
- cmp r5, r7
- blt _02232356
-_0223236C:
- b _022324D0
-_0223236E:
- mov r5, #0
- cmp r7, #0
- ble _0223239C
-_02232374:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _022324D4 ; =0x00000195
- ldrb r1, [r0, r1]
- mov r0, #1
- tst r0, r1
- bne _02232396
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02254A0C
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_022315C0
-_02232396:
- add r5, r5, #1
- cmp r5, r7
- blt _02232374
-_0223239C:
- add r0, r4, #0
- add r1, r6, #0
- mov r2, #1
- bl MOD11_022448CC
- add r0, r4, #0
- add r1, r6, #0
- mov r2, #3
- bl MOD11_022448CC
- b _022324D0
-_022323B2:
- mov r5, #0
- cmp r7, #0
- ble _022323F2
-_022323B8:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _022324D4 ; =0x00000195
- ldrb r1, [r0, r1]
- mov r0, #1
- tst r0, r1
- beq _022323EC
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_022448BC
- add r0, r4, #0
- add r1, r6, #0
- add r2, r5, #0
- bl MOD11_022448CC
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02254A0C
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_022315C0
-_022323EC:
- add r5, r5, #1
- cmp r5, r7
- blt _022323B8
-_022323F2:
- b _022324D0
-_022323F4:
- ldr r1, [r6, #0x64]
- add r0, r4, #0
- bl MOD11_0222FF7C
- ldr r1, _022324D4 ; =0x00000195
- mov r2, #1
- ldrb r0, [r0, r1]
- tst r0, r2
- bne _0223241A
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_022448CC
- add r0, r4, #0
- add r1, r6, #0
- mov r2, #3
- bl MOD11_022448CC
- b _0223242C
-_0223241A:
- ldr r1, [r6, #0x64]
- add r0, r6, #0
- bl MOD11_022448BC
- ldr r2, [r6, #0x64]
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_022448CC
-_0223242C:
- ldr r1, [r6, #0x64]
- add r0, r4, #0
- bl MOD11_022315C0
- ldr r1, [r6, #0x64]
- add r0, r4, #0
- bl MOD11_02254A0C
- b _022324D0
-_0223243E:
- ldr r1, [r6, #0x6c]
- add r0, r4, #0
- bl MOD11_0222FF7C
- ldr r1, _022324D4 ; =0x00000195
- mov r2, #1
- ldrb r0, [r0, r1]
- tst r0, r2
- bne _02232464
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_022448CC
- add r0, r4, #0
- add r1, r6, #0
- mov r2, #3
- bl MOD11_022448CC
- b _02232476
-_02232464:
- ldr r1, [r6, #0x6c]
- add r0, r6, #0
- bl MOD11_022448BC
- ldr r2, [r6, #0x6c]
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_022448CC
-_02232476:
- ldr r1, [r6, #0x6c]
- add r0, r4, #0
- bl MOD11_022315C0
- ldr r1, [r6, #0x6c]
- add r0, r4, #0
- bl MOD11_02254A0C
- b _022324D0
-_02232488:
- ldr r1, [r6, #0x78]
- add r0, r4, #0
- bl MOD11_0222FF7C
- ldr r1, _022324D4 ; =0x00000195
- mov r2, #1
- ldrb r0, [r0, r1]
- tst r0, r2
- bne _022324AE
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_022448CC
- add r0, r4, #0
- add r1, r6, #0
- mov r2, #3
- bl MOD11_022448CC
- b _022324C0
-_022324AE:
- ldr r1, [r6, #0x78]
- add r0, r6, #0
- bl MOD11_022448BC
- ldr r2, [r6, #0x78]
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_022448CC
-_022324C0:
- ldr r1, [r6, #0x78]
- add r0, r4, #0
- bl MOD11_022315C0
- ldr r1, [r6, #0x78]
- add r0, r4, #0
- bl MOD11_02254A0C
-_022324D0:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022324D4: .word 0x00000195
-
- thumb_func_start MOD11_022324D8
-MOD11_022324D8: ; 0x022324D8
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- add r4, r0, #0
- bl MOD11_0222FF84
- add r7, r0, #0
- add r0, r6, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r6, #0
- bl MOD11_0223A404
- cmp r0, #6
- bhi _02232510
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02232502: ; jump table
- .short _02232510 - _02232502 - 2 ; case 0
- .short _022325C2 - _02232502 - 2 ; case 1
- .short _02232610 - _02232502 - 2 ; case 2
- .short _02232534 - _02232502 - 2 ; case 3
- .short _0223257C - _02232502 - 2 ; case 4
- .short _02232510 - _02232502 - 2 ; case 5
- .short _0223265E - _02232502 - 2 ; case 6
-_02232510:
- mov r5, #0
- cmp r7, #0
- ble _02232532
- add r6, r5, #0
-_02232518:
- add r0, r4, #0
- add r1, r5, #0
- add r2, r6, #0
- add r3, r6, #0
- bl MOD11_02254B40
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_022315C0
- add r5, r5, #1
- cmp r5, r7
- blt _02232518
-_02232532:
- b _022326AA
-_02232534:
- mov r5, #0
- cmp r7, #0
- ble _02232566
-_0223253A:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _022326B0 ; =0x00000195
- ldrb r1, [r0, r1]
- mov r0, #1
- tst r0, r1
- bne _02232560
- mov r2, #0
- add r0, r4, #0
- add r1, r5, #0
- add r3, r2, #0
- bl MOD11_02254B40
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_022315C0
-_02232560:
- add r5, r5, #1
- cmp r5, r7
- blt _0223253A
-_02232566:
- add r0, r4, #0
- add r1, r6, #0
- mov r2, #1
- bl MOD11_022448CC
- add r0, r4, #0
- add r1, r6, #0
- mov r2, #3
- bl MOD11_022448CC
- b _022326AA
-_0223257C:
- mov r5, #0
- cmp r7, #0
- ble _022325C0
-_02232582:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _022326B0 ; =0x00000195
- ldrb r1, [r0, r1]
- mov r0, #1
- tst r0, r1
- beq _022325BA
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_022448BC
- add r0, r4, #0
- add r1, r6, #0
- add r2, r5, #0
- bl MOD11_022448CC
- mov r2, #0
- add r0, r4, #0
- add r1, r5, #0
- add r3, r2, #0
- bl MOD11_02254B40
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_022315C0
-_022325BA:
- add r5, r5, #1
- cmp r5, r7
- blt _02232582
-_022325C0:
- b _022326AA
-_022325C2:
- ldr r1, [r6, #0x64]
- add r0, r4, #0
- bl MOD11_0222FF7C
- ldr r1, _022326B0 ; =0x00000195
- mov r2, #1
- ldrb r0, [r0, r1]
- tst r0, r2
- bne _022325E8
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_022448CC
- add r0, r4, #0
- add r1, r6, #0
- mov r2, #3
- bl MOD11_022448CC
- b _022325FA
-_022325E8:
- ldr r1, [r6, #0x64]
- add r0, r6, #0
- bl MOD11_022448BC
- ldr r2, [r6, #0x64]
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_022448CC
-_022325FA:
- ldr r1, [r6, #0x64]
- add r0, r4, #0
- bl MOD11_022315C0
- mov r2, #0
- ldr r1, [r6, #0x64]
- add r0, r4, #0
- add r3, r2, #0
- bl MOD11_02254B40
- b _022326AA
-_02232610:
- ldr r1, [r6, #0x6c]
- add r0, r4, #0
- bl MOD11_0222FF7C
- ldr r1, _022326B0 ; =0x00000195
- mov r2, #1
- ldrb r0, [r0, r1]
- tst r0, r2
- bne _02232636
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_022448CC
- add r0, r4, #0
- add r1, r6, #0
- mov r2, #3
- bl MOD11_022448CC
- b _02232648
-_02232636:
- ldr r1, [r6, #0x6c]
- add r0, r6, #0
- bl MOD11_022448BC
- ldr r2, [r6, #0x6c]
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_022448CC
-_02232648:
- ldr r1, [r6, #0x6c]
- add r0, r4, #0
- bl MOD11_022315C0
- mov r2, #0
- ldr r1, [r6, #0x6c]
- add r0, r4, #0
- add r3, r2, #0
- bl MOD11_02254B40
- b _022326AA
-_0223265E:
- ldr r1, [r6, #0x78]
- add r0, r4, #0
- bl MOD11_0222FF7C
- ldr r1, _022326B0 ; =0x00000195
- mov r2, #1
- ldrb r0, [r0, r1]
- tst r0, r2
- bne _02232684
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_022448CC
- add r0, r4, #0
- add r1, r6, #0
- mov r2, #3
- bl MOD11_022448CC
- b _02232696
-_02232684:
- ldr r1, [r6, #0x78]
- add r0, r6, #0
- bl MOD11_022448BC
- ldr r2, [r6, #0x78]
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_022448CC
-_02232696:
- ldr r1, [r6, #0x78]
- add r0, r4, #0
- bl MOD11_022315C0
- mov r2, #0
- ldr r1, [r6, #0x78]
- add r0, r4, #0
- add r3, r2, #0
- bl MOD11_02254B40
-_022326AA:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022326B0: .word 0x00000195
-
- thumb_func_start MOD11_022326B4
-MOD11_022326B4: ; 0x022326B4
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- add r5, r0, #0
- bl MOD11_0222FF84
- add r7, r0, #0
- add r0, r6, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r6, #0
- bl MOD11_0223A404
- add r2, r0, #0
- beq _022326DC
- cmp r2, #3
- beq _022326F4
- cmp r2, #4
- beq _0223271E
- b _02232756
-_022326DC:
- mov r4, #0
- cmp r7, #0
- ble _02232768
-_022326E2:
- add r0, r5, #0
- add r1, r6, #0
- add r2, r4, #0
- bl MOD11_02254D50
- add r4, r4, #1
- cmp r4, r7
- blt _022326E2
- b _02232768
-_022326F4:
- mov r4, #0
- cmp r7, #0
- ble _02232768
-_022326FA:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0222FF7C
- ldr r1, _0223276C ; =0x00000195
- ldrb r1, [r0, r1]
- mov r0, #1
- tst r0, r1
- bne _02232716
- add r0, r5, #0
- add r1, r6, #0
- add r2, r4, #0
- bl MOD11_02254D50
-_02232716:
- add r4, r4, #1
- cmp r4, r7
- blt _022326FA
- b _02232768
-_0223271E:
- mov r4, #0
- cmp r7, #0
- ble _02232768
-_02232724:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0222FF7C
- ldr r1, _0223276C ; =0x00000195
- ldrb r1, [r0, r1]
- mov r0, #1
- tst r0, r1
- beq _0223274E
- add r0, r4, #0
- bl MaskOfFlagNo
- ldr r1, _02232770 ; =0x00003108
- ldrb r1, [r6, r1]
- tst r0, r1
- bne _0223274E
- add r0, r5, #0
- add r1, r6, #0
- add r2, r4, #0
- bl MOD11_02254D50
-_0223274E:
- add r4, r4, #1
- cmp r4, r7
- blt _02232724
- b _02232768
-_02232756:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0223C230
- add r2, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02254D50
-_02232768:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0223276C: .word 0x00000195
-_02232770: .word 0x00003108
-
- thumb_func_start MOD11_02232774
-MOD11_02232774: ; 0x02232774
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r5, #0
- bl MOD11_02254F60
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022327A0
-MOD11_022327A0: ; 0x022327A0
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r4, r0, #0
- bl MOD11_0222FF84
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- cmp r0, #0
- beq _022327C6
- cmp r0, #3
- beq _0223282A
- cmp r0, #4
- beq _0223286A
-_022327C6:
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #0x10
- tst r0, r1
- beq _022327F8
- mov r5, #0
- cmp r6, #0
- ble _022328B4
- ldr r7, _022328B8 ; =0x00000195
-_022327DA:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldrb r0, [r0, r7]
- cmp r0, #4
- beq _022327F0
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02254F7C
-_022327F0:
- add r5, r5, #1
- cmp r5, r6
- blt _022327DA
- b _022328B4
-_022327F8:
- mov r5, #0
- cmp r6, #0
- ble _022328B4
- mov r7, #8
-_02232800:
- add r0, r4, #0
- bl MOD11_0222FF74
- tst r0, r7
- bne _0223281A
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _0223281A
- cmp r5, #1
- bgt _022328B4
-_0223281A:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02254F7C
- add r5, r5, #1
- cmp r5, r6
- blt _02232800
- b _022328B4
-_0223282A:
- mov r5, #0
- cmp r6, #0
- ble _022328B4
- mov r7, #1
-_02232832:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _022328B8 ; =0x00000195
- ldrb r0, [r0, r1]
- tst r0, r7
- bne _02232862
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02254F7C
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #8
- tst r0, r1
- bne _02232862
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- bne _022328B4
-_02232862:
- add r5, r5, #1
- cmp r5, r6
- blt _02232832
- b _022328B4
-_0223286A:
- mov r5, #0
- cmp r6, #0
- ble _022328B4
- mov r7, #1
-_02232872:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _022328B8 ; =0x00000195
- ldrb r0, [r0, r1]
- tst r0, r7
- beq _022328AE
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02254F7C
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #8
- tst r0, r1
- bne _022328AE
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #0x10
- tst r0, r1
- bne _022328AE
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- bne _022328B4
-_022328AE:
- add r5, r5, #1
- cmp r5, r6
- blt _02232872
-_022328B4:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022328B8: .word 0x00000195
-
- thumb_func_start MOD11_022328BC
-MOD11_022328BC: ; 0x022328BC
- push {r3, r4, r5, r6, r7, lr}
- add r7, r1, #0
- add r4, r0, #0
- bl MOD11_0222FF84
- add r6, r0, #0
- add r0, r7, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r7, #0
- bl MOD11_0223A404
- add r5, r0, #0
- add r0, r7, #0
- bl MOD11_0223A404
- add r7, r0, #0
- cmp r5, #0
- beq _022328EC
- cmp r5, #3
- beq _02232920
- cmp r5, #4
- beq _02232962
-_022328EC:
- mov r5, #0
- cmp r6, #0
- ble _022329AE
-_022328F2:
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #8
- tst r0, r1
- bne _0223290E
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _0223290E
- cmp r5, #1
- bgt _022329AE
-_0223290E:
- add r0, r4, #0
- add r1, r5, #0
- add r2, r7, #0
- bl MOD11_02254FAC
- add r5, r5, #1
- cmp r5, r6
- blt _022328F2
- b _022329AE
-_02232920:
- mov r5, #0
- cmp r6, #0
- ble _022329AE
-_02232926:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _022329B4 ; =0x00000195
- ldrb r1, [r0, r1]
- mov r0, #1
- tst r0, r1
- bne _0223295A
- add r0, r4, #0
- add r1, r5, #0
- add r2, r7, #0
- bl MOD11_02254FAC
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #8
- tst r0, r1
- bne _0223295A
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- bne _022329AE
-_0223295A:
- add r5, r5, #1
- cmp r5, r6
- blt _02232926
- b _022329AE
-_02232962:
- mov r5, #0
- cmp r6, #0
- ble _022329AE
-_02232968:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _022329B4 ; =0x00000195
- ldrb r1, [r0, r1]
- mov r0, #1
- tst r0, r1
- beq _022329A8
- add r0, r4, #0
- add r1, r5, #0
- add r2, r7, #0
- bl MOD11_02254FAC
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #8
- tst r0, r1
- bne _022329A8
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #0x10
- tst r0, r1
- bne _022329A8
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- bne _022329AE
-_022329A8:
- add r5, r5, #1
- cmp r5, r6
- blt _02232968
-_022329AE:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022329B4: .word 0x00000195
-
- thumb_func_start MOD11_022329B8
-MOD11_022329B8: ; 0x022329B8
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- add r4, r0, #0
- bl MOD11_0222FF84
- add r5, r0, #0
- add r0, r6, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r6, #0
- bl MOD11_0223A404
- cmp r0, #0xc
- bhi _022329FC
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_022329E2: ; jump table
- .short _022329FC - _022329E2 - 2 ; case 0
- .short _022329FC - _022329E2 - 2 ; case 1
- .short _022329FC - _022329E2 - 2 ; case 2
- .short _02232A2E - _022329E2 - 2 ; case 3
- .short _02232A6E - _022329E2 - 2 ; case 4
- .short _022329FC - _022329E2 - 2 ; case 5
- .short _022329FC - _022329E2 - 2 ; case 6
- .short _022329FC - _022329E2 - 2 ; case 7
- .short _022329FC - _022329E2 - 2 ; case 8
- .short _02232ABA - _022329E2 - 2 ; case 9
- .short _02232AE6 - _022329E2 - 2 ; case 10
- .short _02232B12 - _022329E2 - 2 ; case 11
- .short _02232B3A - _022329E2 - 2 ; case 12
-_022329FC:
- mov r6, #0
- cmp r5, #0
- ble _02232A2C
- mov r7, #8
-_02232A04:
- add r0, r4, #0
- bl MOD11_0222FF74
- tst r0, r7
- bne _02232A1E
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _02232A1E
- cmp r6, #1
- bgt _02232A2C
-_02232A1E:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_02254FE4
- add r6, r6, #1
- cmp r6, r5
- blt _02232A04
-_02232A2C:
- b _02232B60
-_02232A2E:
- mov r6, #0
- cmp r5, #0
- ble _02232A6C
- mov r7, #1
-_02232A36:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0222FF7C
- ldr r1, _02232B64 ; =0x00000195
- ldrb r0, [r0, r1]
- tst r0, r7
- bne _02232A66
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_02254FE4
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #8
- tst r0, r1
- bne _02232A66
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- bne _02232B60
-_02232A66:
- add r6, r6, #1
- cmp r6, r5
- blt _02232A36
-_02232A6C:
- b _02232B60
-_02232A6E:
- mov r6, #0
- cmp r5, #0
- ble _02232B60
- mov r7, #1
-_02232A76:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0222FF7C
- ldr r1, _02232B64 ; =0x00000195
- ldrb r0, [r0, r1]
- tst r0, r7
- beq _02232AB2
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_02254FE4
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #8
- tst r0, r1
- bne _02232AB2
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #0x10
- tst r0, r1
- bne _02232AB2
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- bne _02232B60
-_02232AB2:
- add r6, r6, #1
- cmp r6, r5
- blt _02232A76
- b _02232B60
-_02232ABA:
- mov r6, #0
- cmp r5, #0
- ble _02232B60
- ldr r7, _02232B64 ; =0x00000195
-_02232AC2:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0222FF7C
- ldrb r0, [r0, r7]
- cmp r0, #0
- beq _02232AD4
- cmp r0, #2
- bne _02232ADE
-_02232AD4:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_02254FE4
- b _02232B60
-_02232ADE:
- add r6, r6, #1
- cmp r6, r5
- blt _02232AC2
- b _02232B60
-_02232AE6:
- mov r6, #0
- cmp r5, #0
- ble _02232B60
- ldr r7, _02232B64 ; =0x00000195
-_02232AEE:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0222FF7C
- ldrb r0, [r0, r7]
- cmp r0, #1
- beq _02232B00
- cmp r0, #3
- bne _02232B0A
-_02232B00:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_02254FE4
- b _02232B60
-_02232B0A:
- add r6, r6, #1
- cmp r6, r5
- blt _02232AEE
- b _02232B60
-_02232B12:
- mov r6, #0
- cmp r5, #0
- ble _02232B60
- ldr r7, _02232B64 ; =0x00000195
-_02232B1A:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0222FF7C
- ldrb r0, [r0, r7]
- cmp r0, #4
- bne _02232B32
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_02254FE4
- b _02232B60
-_02232B32:
- add r6, r6, #1
- cmp r6, r5
- blt _02232B1A
- b _02232B60
-_02232B3A:
- mov r6, #0
- cmp r5, #0
- ble _02232B60
- ldr r7, _02232B64 ; =0x00000195
-_02232B42:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0222FF7C
- ldrb r0, [r0, r7]
- cmp r0, #5
- bne _02232B5A
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_02254FE4
- b _02232B60
-_02232B5A:
- add r6, r6, #1
- cmp r6, r5
- blt _02232B42
-_02232B60:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02232B64: .word 0x00000195
-
- thumb_func_start MOD11_02232B68
-MOD11_02232B68: ; 0x02232B68
- push {r3, r4, r5, r6, r7, lr}
- add r7, r1, #0
- add r4, r0, #0
- bl MOD11_0222FF84
- add r5, r0, #0
- add r0, r7, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r7, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r7, #0
- bl MOD11_0223A404
- add r7, r0, #0
- cmp r6, #0xc
- bhi _02232BB6
- add r0, r6, r6
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02232B9C: ; jump table
- .short _02232BB6 - _02232B9C - 2 ; case 0
- .short _02232BB6 - _02232B9C - 2 ; case 1
- .short _02232BB6 - _02232B9C - 2 ; case 2
- .short _02232BDE - _02232B9C - 2 ; case 3
- .short _02232C14 - _02232B9C - 2 ; case 4
- .short _02232BB6 - _02232B9C - 2 ; case 5
- .short _02232BB6 - _02232B9C - 2 ; case 6
- .short _02232BB6 - _02232B9C - 2 ; case 7
- .short _02232BB6 - _02232B9C - 2 ; case 8
- .short _02232C4A - _02232B9C - 2 ; case 9
- .short _02232C78 - _02232B9C - 2 ; case 10
- .short _02232CA6 - _02232B9C - 2 ; case 11
- .short _02232CD0 - _02232B9C - 2 ; case 12
-_02232BB6:
- mov r6, #0
- cmp r5, #0
- ble _02232BDC
-_02232BBC:
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _02232BCC
- cmp r6, #1
- bgt _02232BDC
-_02232BCC:
- add r0, r4, #0
- add r1, r6, #0
- add r2, r7, #0
- bl MOD11_02255000
- add r6, r6, #1
- cmp r6, r5
- blt _02232BBC
-_02232BDC:
- b _02232CF8
-_02232BDE:
- mov r6, #0
- cmp r5, #0
- ble _02232C12
-_02232BE4:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0222FF7C
- ldr r1, _02232CFC ; =0x00000195
- ldrb r1, [r0, r1]
- mov r0, #1
- tst r0, r1
- bne _02232C0C
- add r0, r4, #0
- add r1, r6, #0
- add r2, r7, #0
- bl MOD11_02255000
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- bne _02232CF8
-_02232C0C:
- add r6, r6, #1
- cmp r6, r5
- blt _02232BE4
-_02232C12:
- b _02232CF8
-_02232C14:
- mov r6, #0
- cmp r5, #0
- ble _02232CF8
-_02232C1A:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0222FF7C
- ldr r1, _02232CFC ; =0x00000195
- ldrb r1, [r0, r1]
- mov r0, #1
- tst r0, r1
- beq _02232C42
- add r0, r4, #0
- add r1, r6, #0
- add r2, r7, #0
- bl MOD11_02255000
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- bne _02232CF8
-_02232C42:
- add r6, r6, #1
- cmp r6, r5
- blt _02232C1A
- b _02232CF8
-_02232C4A:
- mov r6, #0
- cmp r5, #0
- ble _02232CF8
-_02232C50:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0222FF7C
- ldr r1, _02232CFC ; =0x00000195
- ldrb r0, [r0, r1]
- cmp r0, #0
- beq _02232C64
- cmp r0, #2
- bne _02232C70
-_02232C64:
- add r0, r4, #0
- add r1, r6, #0
- add r2, r7, #0
- bl MOD11_02255000
- b _02232CF8
-_02232C70:
- add r6, r6, #1
- cmp r6, r5
- blt _02232C50
- b _02232CF8
-_02232C78:
- mov r6, #0
- cmp r5, #0
- ble _02232CF8
-_02232C7E:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0222FF7C
- ldr r1, _02232CFC ; =0x00000195
- ldrb r0, [r0, r1]
- cmp r0, #1
- beq _02232C92
- cmp r0, #3
- bne _02232C9E
-_02232C92:
- add r0, r4, #0
- add r1, r6, #0
- add r2, r7, #0
- bl MOD11_02255000
- b _02232CF8
-_02232C9E:
- add r6, r6, #1
- cmp r6, r5
- blt _02232C7E
- b _02232CF8
-_02232CA6:
- mov r6, #0
- cmp r5, #0
- ble _02232CF8
-_02232CAC:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0222FF7C
- ldr r1, _02232CFC ; =0x00000195
- ldrb r0, [r0, r1]
- cmp r0, #4
- bne _02232CC8
- add r0, r4, #0
- add r1, r6, #0
- add r2, r7, #0
- bl MOD11_02255000
- b _02232CF8
-_02232CC8:
- add r6, r6, #1
- cmp r6, r5
- blt _02232CAC
- b _02232CF8
-_02232CD0:
- mov r6, #0
- cmp r5, #0
- ble _02232CF8
-_02232CD6:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0222FF7C
- ldr r1, _02232CFC ; =0x00000195
- ldrb r0, [r0, r1]
- cmp r0, #5
- bne _02232CF2
- add r0, r4, #0
- add r1, r6, #0
- add r2, r7, #0
- bl MOD11_02255000
- b _02232CF8
-_02232CF2:
- add r6, r6, #1
- cmp r6, r5
- blt _02232CD6
-_02232CF8:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02232CFC: .word 0x00000195
-
- thumb_func_start MOD11_02232D00
-MOD11_02232D00: ; 0x02232D00
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r6, r0, #0
- bl MOD11_0222FF84
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- mov r4, #0
- cmp r5, #0
- ble _02232D28
-_02232D1A:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0225624C
- add r4, r4, #1
- cmp r4, r5
- blt _02232D1A
-_02232D28:
- mov r0, #0
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_02232D2C
-MOD11_02232D2C: ; 0x02232D2C
- push {r3, r4, r5, r6, r7, lr}
- add r7, r1, #0
- add r4, r0, #0
- bl MOD11_0222FF84
- add r6, r0, #0
- add r0, r7, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r7, #0
- bl MOD11_0223A404
- add r2, r0, #0
- beq _02232D54
- cmp r2, #3
- beq _02232D6E
- cmp r2, #4
- beq _02232D9A
- b _02232DC6
-_02232D54:
- mov r5, #0
- cmp r6, #0
- ble _02232DDA
-_02232D5A:
- add r0, r4, #0
- add r1, r7, #0
- add r2, r5, #0
- mov r3, #0
- bl MOD11_02255034
- add r5, r5, #1
- cmp r5, r6
- blt _02232D5A
- b _02232DDA
-_02232D6E:
- mov r5, #0
- cmp r6, #0
- ble _02232DDA
-_02232D74:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _02232DE0 ; =0x00000195
- ldrb r1, [r0, r1]
- mov r0, #1
- tst r0, r1
- bne _02232D92
- add r0, r4, #0
- add r1, r7, #0
- add r2, r5, #0
- mov r3, #0
- bl MOD11_02255034
-_02232D92:
- add r5, r5, #1
- cmp r5, r6
- blt _02232D74
- b _02232DDA
-_02232D9A:
- mov r5, #0
- cmp r6, #0
- ble _02232DDA
-_02232DA0:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _02232DE0 ; =0x00000195
- ldrb r1, [r0, r1]
- mov r0, #1
- tst r0, r1
- beq _02232DBE
- add r0, r4, #0
- add r1, r7, #0
- add r2, r5, #0
- mov r3, #0
- bl MOD11_02255034
-_02232DBE:
- add r5, r5, #1
- cmp r5, r6
- blt _02232DA0
- b _02232DDA
-_02232DC6:
- add r0, r4, #0
- add r1, r7, #0
- bl MOD11_0223C230
- add r2, r0, #0
- add r0, r4, #0
- add r1, r7, #0
- mov r3, #0
- bl MOD11_02255034
-_02232DDA:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02232DE0: .word 0x00000195
-
- thumb_func_start MOD11_02232DE4
-MOD11_02232DE4: ; 0x02232DE4
- push {r3, r4, r5, r6, r7, lr}
- str r1, [sp]
- add r5, r0, #0
- bl MOD11_0222FF84
- add r7, r0, #0
- ldr r0, [sp]
- mov r1, #1
- bl MOD11_0223A424
- ldr r0, [sp]
- bl MOD11_0223A404
- add r2, r0, #0
- ldr r4, _02232EA4 ; =0x00000000
- beq _02232E0E
- cmp r2, #3
- beq _02232E28
- cmp r2, #4
- beq _02232E5A
- b _02232E8C
-_02232E0E:
- cmp r7, #0
- ble _02232EA0
- add r6, r4, #0
-_02232E14:
- ldr r1, [sp]
- add r0, r5, #0
- add r2, r4, #0
- add r3, r6, #0
- bl MOD11_02255034
- add r4, r4, #1
- cmp r4, r7
- blt _02232E14
- b _02232EA0
-_02232E28:
- add r6, r4, #0
- cmp r7, #0
- ble _02232EA0
-_02232E2E:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0222FF7C
- ldr r1, _02232EA8 ; =0x00000195
- ldrb r1, [r0, r1]
- mov r0, #1
- tst r0, r1
- bne _02232E52
- ldr r1, [sp]
- add r0, r5, #0
- add r2, r6, #0
- add r3, r4, #0
- bl MOD11_02255034
- add r0, r4, #4
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
-_02232E52:
- add r6, r6, #1
- cmp r6, r7
- blt _02232E2E
- b _02232EA0
-_02232E5A:
- add r6, r4, #0
- cmp r7, #0
- ble _02232EA0
-_02232E60:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0222FF7C
- ldr r1, _02232EA8 ; =0x00000195
- ldrb r1, [r0, r1]
- mov r0, #1
- tst r0, r1
- beq _02232E84
- ldr r1, [sp]
- add r0, r5, #0
- add r2, r6, #0
- add r3, r4, #0
- bl MOD11_02255034
- add r0, r4, #4
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
-_02232E84:
- add r6, r6, #1
- cmp r6, r7
- blt _02232E60
- b _02232EA0
-_02232E8C:
- ldr r1, [sp]
- add r0, r5, #0
- bl MOD11_0223C230
- add r2, r0, #0
- ldr r1, [sp]
- add r0, r5, #0
- add r3, r4, #0
- bl MOD11_02255034
-_02232EA0:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02232EA4: .word 0x00000000
-_02232EA8: .word 0x00000195
-
- thumb_func_start MOD11_02232EAC
-MOD11_02232EAC: ; 0x02232EAC
- push {r3, r4, r5, r6, r7, lr}
- add r7, r1, #0
- add r4, r0, #0
- bl MOD11_0222FF84
- add r6, r0, #0
- add r0, r7, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r7, #0
- bl MOD11_0223A404
- add r2, r0, #0
- beq _02232ED4
- cmp r2, #3
- beq _02232EEA
- cmp r2, #4
- beq _02232F20
- b _02232F48
-_02232ED4:
- mov r5, #0
- cmp r6, #0
- ble _02232F58
-_02232EDA:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0225516C
- add r5, r5, #1
- cmp r5, r6
- blt _02232EDA
- b _02232F58
-_02232EEA:
- mov r5, #0
- cmp r6, #0
- ble _02232F58
-_02232EF0:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _02232F5C ; =0x00000195
- ldrb r1, [r0, r1]
- mov r0, #1
- tst r0, r1
- bne _02232F18
- add r0, r5, #0
- bl MaskOfFlagNo
- ldr r1, _02232F60 ; =0x00003108
- ldrb r1, [r7, r1]
- tst r0, r1
- bne _02232F18
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0225516C
-_02232F18:
- add r5, r5, #1
- cmp r5, r6
- blt _02232EF0
- b _02232F58
-_02232F20:
- mov r5, #0
- cmp r6, #0
- ble _02232F58
- mov r7, #1
-_02232F28:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _02232F5C ; =0x00000195
- ldrb r0, [r0, r1]
- tst r0, r7
- beq _02232F40
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0225516C
-_02232F40:
- add r5, r5, #1
- cmp r5, r6
- blt _02232F28
- b _02232F58
-_02232F48:
- add r0, r4, #0
- add r1, r7, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r4, #0
- bl MOD11_0225516C
-_02232F58:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02232F5C: .word 0x00000195
-_02232F60: .word 0x00003108
-
- thumb_func_start MOD11_02232F64
-MOD11_02232F64: ; 0x02232F64
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- bl MOD11_02243388
- cmp r0, #0
- beq _02232F7C
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- b _02232F82
-_02232F7C:
- add r0, r4, #0
- bl MOD11_022433DC
-_02232F82:
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02232F88
-MOD11_02232F88: ; 0x02232F88
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- add r5, r1, #0
- ldr r1, [r5, #0x64]
- add r7, r0, #0
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x60
- bne _02232FA0
- mov r4, #0
- b _02232FB4
-_02232FA0:
- ldr r0, _022330D4 ; =0x00002160
- ldr r4, [r5, r0]
- cmp r4, #0
- bne _02232FB4
- ldr r0, _022330D8 ; =0x00003044
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _022330DC ; =0x000003E2
- ldrb r4, [r1, r0]
-_02232FB4:
- ldr r0, [r5, #0x6c]
- str r0, [sp, #0x18]
- ldr r1, [sp, #0x18]
- add r0, r7, #0
- bl MOD11_02230270
- mov r3, #6
- lsl r3, r3, #6
- add r6, r0, #0
- ldr r0, [r5, r3]
- ldr r1, _022330E0 ; =0x00002154
- str r0, [sp]
- ldr r0, [r5, r1]
- ldr r2, _022330D8 ; =0x00003044
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #4]
- lsl r0, r4, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #8]
- ldr r0, [r5, #0x64]
- lsl r4, r6, #2
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x18]
- add r4, r5, r4
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x10]
- sub r0, r1, #4
- ldr r0, [r5, r0]
- add r3, #0x3c
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x14]
- ldr r2, [r5, r2]
- ldr r3, [r4, r3]
- add r0, r7, #0
- add r1, r5, #0
- bl MOD11_0224B310
- ldr r1, _022330E4 ; =0x00002144
- str r0, [r5, r1]
- add r0, r1, #0
- add r0, #0xc
- ldr r2, [r5, r1]
- ldr r0, [r5, r0]
- mul r0, r2
- str r0, [r5, r1]
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_02249D90
- cmp r0, #0x61
- bne _02233040
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- mov r2, #0
- bl MOD11_02249DA4
- ldr r1, _022330E4 ; =0x00002144
- add r0, #0x64
- ldr r1, [r5, r1]
- mul r0, r1
- mov r1, #0x64
- bl _s32_div_f
- ldr r1, _022330E4 ; =0x00002144
- str r0, [r5, r1]
-_02233040:
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_02249D90
- cmp r0, #0x68
- bne _0223306E
- ldr r0, _022330E4 ; =0x00002144
- ldr r2, [r5, #0x64]
- ldr r1, [r5, r0]
- mov r0, #0xc0
- mul r0, r2
- add r2, r5, r0
- ldr r0, _022330E8 ; =0x00002DCC
- ldr r0, [r2, r0]
- lsl r0, r0, #5
- lsr r0, r0, #0x1c
- add r0, #0xa
- mul r0, r1
- mov r1, #0xa
- bl _u32_div_f
- ldr r1, _022330E4 ; =0x00002144
- str r0, [r5, r1]
-_0223306E:
- ldr r2, [r5, #0x64]
- mov r1, #0xc0
- add r0, r2, #0
- mul r0, r1
- ldr r2, _022330E8 ; =0x00002DCC
- add r3, r5, r0
- ldr r3, [r3, r2]
- lsl r3, r3, #1
- lsr r3, r3, #0x1f
- beq _022330CE
- add r2, #0x10
- add r3, r5, r2
- add r1, #0xb4
- ldr r2, [r5, r1]
- ldr r1, [r3, r0]
- cmp r2, r1
- bne _02233094
- sub r1, r1, #1
- str r1, [r3, r0]
-_02233094:
- ldr r2, [r5, #0x64]
- mov r1, #0xc0
- add r0, r2, #0
- mul r0, r1
- add r1, #0xb4
- ldr r3, [r5, r1]
- ldr r1, _022330EC ; =0x00002DDC
- add r2, r5, r0
- ldr r2, [r2, r1]
- sub r2, r3, r2
- cmp r2, #2
- bge _022330C2
- ldr r0, _022330E4 ; =0x00002144
- ldr r1, [r5, r0]
- mov r0, #0xf
- mul r0, r1
- mov r1, #0xa
- bl _s32_div_f
- ldr r1, _022330E4 ; =0x00002144
- add sp, #0x1c
- str r0, [r5, r1]
- pop {r4, r5, r6, r7, pc}
-_022330C2:
- sub r1, #0x10
- add r3, r5, r1
- ldr r2, [r3, r0]
- ldr r1, _022330F0 ; =0xBFFFFFFF
- and r1, r2
- str r1, [r3, r0]
-_022330CE:
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- nop
-_022330D4: .word 0x00002160
-_022330D8: .word 0x00003044
-_022330DC: .word 0x000003E2
-_022330E0: .word 0x00002154
-_022330E4: .word 0x00002144
-_022330E8: .word 0x00002DCC
-_022330EC: .word 0x00002DDC
-_022330F0: .word 0xBFFFFFFF
-
- thumb_func_start MOD11_022330F4
-MOD11_022330F4: ; 0x022330F4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02232F88
- ldr r1, _02233128 ; =0x00002144
- add r0, r4, #0
- ldr r1, [r4, r1]
- bl MOD11_0224BF10
- ldr r1, _02233128 ; =0x00002144
- str r0, [r4, r1]
- mov r0, #0
- ldr r2, [r4, r1]
- mvn r0, r0
- mul r0, r2
- str r0, [r4, r1]
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02233128: .word 0x00002144
-
- thumb_func_start MOD11_0223312C
-MOD11_0223312C: ; 0x0223312C
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02232F88
- ldr r1, _02233154 ; =0x00002144
- mov r0, #0
- ldr r2, [r4, r1]
- mvn r0, r0
- mul r0, r2
- str r0, [r4, r1]
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02233154: .word 0x00002144
-
- thumb_func_start MOD11_02233158
-MOD11_02233158: ; 0x02233158
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r0, _02233194 ; =0x0000213C
- ldr r1, [r4, r0]
- mov r0, #1
- tst r0, r1
- bne _02233178
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_022559BC
-_02233178:
- ldr r1, _02233194 ; =0x0000213C
- mov r0, #1
- ldr r2, [r4, r1]
- orr r0, r2
- str r0, [r4, r1]
- add r0, r1, #4
- ldr r2, [r4, r0]
- mov r0, #4
- orr r2, r0
- add r0, r1, #4
- str r2, [r4, r0]
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02233194: .word 0x0000213C
-
- thumb_func_start MOD11_02233198
-MOD11_02233198: ; 0x02233198
- push {r4, r5, lr}
- sub sp, #0x44
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- add r1, sp, #0x24
- bl MOD11_0223C490
- add r0, r5, #0
- add r1, r4, #0
- add r2, sp, #0x24
- add r3, sp, #0
- bl MOD11_0223C55C
- add r0, r5, #0
- add r1, r4, #0
- add r2, sp, #0
- bl MOD11_022559F4
- mov r0, #0
- add sp, #0x44
- pop {r4, r5, pc}
-
- thumb_func_start MOD11_022331CC
-MOD11_022331CC: ; 0x022331CC
- push {r4, r5, lr}
- sub sp, #0x44
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- add r1, sp, #0x24
- bl MOD11_0223C490
- add r0, r5, #0
- add r1, r4, #0
- add r2, sp, #0x24
- add r3, sp, #0
- bl MOD11_0223C55C
- add r1, sp, #0
- ldrb r2, [r1, #1]
- mov r0, #0x80
- orr r0, r2
- strb r0, [r1, #1]
- add r0, r5, #0
- add r1, r4, #0
- add r2, sp, #0
- bl MOD11_022559F4
- mov r0, #0
- add sp, #0x44
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0223320C
-MOD11_0223320C: ; 0x0223320C
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r1, r4, #0
- add r4, #0xf4
- add r0, r5, #0
- add r2, r4, #0
- bl MOD11_022559F4
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0223322C
-MOD11_0223322C: ; 0x0223322C
- push {r3, r4, r5, lr}
- sub sp, #0x20
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- add r1, sp, #0
- bl MOD11_0223C490
- add r1, r4, #0
- add r4, #0xf4
- add r0, r5, #0
- add r2, sp, #0
- add r3, r4, #0
- bl MOD11_0223C55C
- mov r0, #0
- add sp, #0x20
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02233258
-MOD11_02233258: ; 0x02233258
- push {r3, r4, r5, r6, lr}
- sub sp, #0x44
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- add r1, sp, #0x24
- bl MOD11_0223C490
- add r0, r5, #0
- add r1, r4, #0
- add r2, sp, #0x24
- add r3, sp, #0
- bl MOD11_0223C55C
- add r1, sp, #0
- ldrb r2, [r1, #1]
- mov r0, #0x40
- orr r0, r2
- strb r0, [r1, #1]
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0223C230
- str r0, [sp, #0x20]
- add r0, r5, #0
- add r1, r4, #0
- add r2, sp, #0
- bl MOD11_022559F4
- mov r0, #0
- add sp, #0x44
- pop {r3, r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022332AC
-MOD11_022332AC: ; 0x022332AC
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- cmp r0, #0xff
- bne _022332CA
- mov r0, #0x49
- lsl r0, r0, #2
- b _022332CC
-_022332CA:
- ldr r0, _0223331C ; =0x00003044
-_022332CC:
- ldr r0, [r5, r0]
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- ldr r0, _02233320 ; =0x0000213C
- ldr r1, [r5, r0]
- mov r0, #1
- lsl r0, r0, #0xe
- tst r0, r1
- bne _022332E8
- add r0, r6, #0
- bl MOD11_02230E20
- cmp r0, #1
- beq _022332EC
-_022332E8:
- cmp r4, #0x90
- bne _02233302
-_022332EC:
- ldr r1, _02233320 ; =0x0000213C
- mov r0, #1
- ldr r2, [r5, r1]
- lsl r0, r0, #0xe
- orr r0, r2
- str r0, [r5, r1]
- add r0, r6, #0
- add r1, r5, #0
- add r2, r4, #0
- bl MOD11_02255A10
-_02233302:
- add r0, r6, #0
- bl MOD11_02230E20
- cmp r0, #0
- bne _02233316
- ldr r2, _02233324 ; =0x00000123
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A43C
-_02233316:
- mov r0, #0
- pop {r4, r5, r6, pc}
- nop
-_0223331C: .word 0x00003044
-_02233320: .word 0x0000213C
-_02233324: .word 0x00000123
-
- thumb_func_start MOD11_02233328
-MOD11_02233328: ; 0x02233328
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp, #8]
- cmp r6, #0xff
- bne _0223335A
- mov r0, #0x49
- lsl r0, r0, #2
- b _0223335C
-_0223335A:
- ldr r0, _022333C8 ; =0x00003044
-_0223335C:
- ldr r0, [r4, r0]
- add r1, r4, #0
- lsl r0, r0, #0x10
- lsr r6, r0, #0x10
- add r0, r5, #0
- add r2, r7, #0
- bl MOD11_0223C230
- str r0, [sp, #4]
- ldr r2, [sp, #8]
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r7, r0, #0
- ldr r0, _022333CC ; =0x0000213C
- ldr r1, [r4, r0]
- mov r0, #1
- lsl r0, r0, #0xe
- tst r0, r1
- bne _02233390
- add r0, r5, #0
- bl MOD11_02230E20
- cmp r0, #1
- beq _02233394
-_02233390:
- cmp r6, #0x90
- bne _022333AE
-_02233394:
- ldr r1, _022333CC ; =0x0000213C
- mov r0, #1
- ldr r2, [r4, r1]
- lsl r0, r0, #0xe
- orr r0, r2
- str r0, [r4, r1]
- ldr r3, [sp, #4]
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- str r7, [sp]
- bl MOD11_02255A40
-_022333AE:
- add r0, r5, #0
- bl MOD11_02230E20
- cmp r0, #0
- bne _022333C2
- ldr r2, _022333D0 ; =0x00000123
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A43C
-_022333C2:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_022333C8: .word 0x00003044
-_022333CC: .word 0x0000213C
-_022333D0: .word 0x00000123
-
- thumb_func_start MOD11_022333D4
-MOD11_022333D4: ; 0x022333D4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- ldr r2, _02233404 ; =0x0000216C
- add r1, r0, #0
- ldr r2, [r4, r2]
- add r0, r5, #0
- bl MOD11_02255A70
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02233404: .word 0x0000216C
-
- thumb_func_start MOD11_02233408
-MOD11_02233408: ; 0x02233408
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- str r0, [sp]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- ldr r0, [sp]
- add r1, r4, #0
- bl MOD11_0223C230
- add r2, r0, #0
- ldr r0, _0223349C ; =0x00002D8C
- add r7, r2, #0
- add r5, r4, r0
- mov r0, #0xc0
- mul r7, r0
- ldr r0, _022334A0 ; =0x0000215C
- ldr r6, [r5, r7]
- ldr r3, [r4, r0]
- add r1, r3, r6
- cmp r1, #0
- bgt _02233446
- neg r1, r6
- sub r0, #0x14
- str r1, [r4, r0]
- b _0223344A
-_02233446:
- sub r0, #0x14
- str r3, [r4, r0]
-_0223344A:
- ldr r0, _022334A4 ; =0x00002148
- ldr r6, [r4, r0]
- cmp r6, #0
- bge _02233460
- mov r0, #0x59
- lsl r0, r0, #2
- add r3, r4, r0
- lsl r1, r2, #2
- ldr r0, [r3, r1]
- sub r0, r0, r6
- str r0, [r3, r1]
-_02233460:
- mov r0, #0xc0
- add r3, r2, #0
- mul r3, r0
- ldr r0, _0223349C ; =0x00002D8C
- ldr r6, _022334A0 ; =0x0000215C
- add r1, r4, r0
- ldr r0, [r1, r3]
- ldr r6, [r4, r6]
- add r0, r0, r6
- str r0, [r1, r3]
- ldr r1, [r1, r3]
- cmp r1, #0
- bge _02233480
- mov r0, #0
- str r0, [r5, r7]
- b _0223348E
-_02233480:
- add r0, r4, r3
- ldr r3, _0223349C ; =0x00002D8C
- add r3, r3, #4
- ldr r0, [r0, r3]
- cmp r1, r0
- bls _0223348E
- str r0, [r5, r7]
-_0223348E:
- ldr r0, [sp]
- add r1, r4, #0
- bl MOD11_02245190
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0223349C: .word 0x00002D8C
-_022334A0: .word 0x0000215C
-_022334A4: .word 0x00002148
-
- thumb_func_start MOD11_022334A8
-MOD11_022334A8: ; 0x022334A8
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02255A8C
- mov r0, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_022334D4
-MOD11_022334D4: ; 0x022334D4
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_0223C230
- add r4, r0, #0
- mov r1, #0xc0
- mul r1, r4
- add r2, r5, r1
- ldr r1, _02233530 ; =0x00002D8C
- ldr r1, [r2, r1]
- cmp r1, #0
- bne _0223352A
- str r4, [r5, #0x74]
- bl MaskOfFlagNo
- ldr r1, _02233534 ; =0x0000213C
- lsl r0, r0, #0x18
- ldr r2, [r5, r1]
- orr r0, r2
- str r0, [r5, r1]
- mov r0, #0x55
- lsl r0, r0, #2
- add r2, r5, r0
- lsl r1, r4, #2
- ldr r0, [r2, r1]
- add r0, r0, #1
- str r0, [r2, r1]
- add r0, r6, #0
- add r1, r5, #0
- add r2, r4, #0
- bl MOD11_0223D0EC
-_0223352A:
- mov r0, #0
- pop {r4, r5, r6, pc}
- nop
-_02233530: .word 0x00002D8C
-_02233534: .word 0x0000213C
-
- thumb_func_start MOD11_02233538
-MOD11_02233538: ; 0x02233538
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r2, [r4, #0x74]
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02255BEC
- ldr r0, [r4, #0x74]
- bl MaskOfFlagNo
- ldr r2, _02233594 ; =0x0000213C
- lsl r3, r0, #0x18
- mov r0, #0
- mvn r0, r0
- ldr r1, [r4, r2]
- eor r0, r3
- and r0, r1
- str r0, [r4, r2]
- ldr r0, [r4, #0x74]
- bl MaskOfFlagNo
- mov r1, #0x85
- lsl r1, r1, #6
- ldr r2, [r4, r1]
- lsl r0, r0, #0x1c
- orr r0, r2
- str r0, [r4, r1]
- ldr r0, [r4, #0x74]
- mov r2, #0x27
- lsl r0, r0, #4
- add r0, r4, r0
- add r1, #0x68
- str r2, [r0, r1]
- ldr r2, [r4, #0x74]
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02245A10
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02233594: .word 0x0000213C
-
- thumb_func_start MOD11_02233598
-MOD11_02233598: ; 0x02233598
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r6, #0
- bl MOD11_0222FF74
- mov r1, #4
- tst r0, r1
- bne _022335D2
- ldr r0, _022335FC ; =0x021C48B8
- ldr r1, [r0, #0x48]
- ldr r0, _02233600 ; =0x00000C03
- tst r0, r1
- bne _022335CC
- bl FUN_02020AA4
- cmp r0, #0
- beq _022335D2
-_022335CC:
- add r0, r5, #0
- add r0, #0xf0
- str r4, [r0]
-_022335D2:
- add r0, r5, #0
- add r0, #0xf0
- ldr r0, [r0]
- cmp r4, r0
- beq _022335F0
- mov r1, #1
- add r0, r5, #0
- mvn r1, r1
- bl MOD11_0223A424
- add r0, r5, #0
- add r0, #0xf0
- ldr r0, [r0]
- add r0, r0, #1
- b _022335F2
-_022335F0:
- mov r0, #0
-_022335F2:
- add r5, #0xf0
- str r0, [r5]
- mov r0, #0
- pop {r4, r5, r6, pc}
- nop
-_022335FC: .word 0x021C48B8
-_02233600: .word 0x00000C03
-
- thumb_func_start MOD11_02233604
-MOD11_02233604: ; 0x02233604
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0223C230
- add r3, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r7, #0
- bl MOD11_02255D00
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0223363C
-MOD11_0223363C: ; 0x0223363C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r6, r1, #0
- str r0, [sp]
- add r0, r6, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r6, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r6, #0
- bl MOD11_0223A404
- str r0, [sp, #4]
- add r0, r6, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r6, #0
- bl MOD11_0223A404
- add r5, r0, #0
- ldr r0, [sp]
- ldr r2, [sp, #4]
- add r1, r6, #0
- bl MOD11_0223A444
- cmp r7, #6
- bhi _022336DA
- add r1, r7, r7
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02233686: ; jump table
- .short _02233694 - _02233686 - 2 ; case 0
- .short _0223369E - _02233686 - 2 ; case 1
- .short _022336A8 - _02233686 - 2 ; case 2
- .short _022336B2 - _02233686 - 2 ; case 3
- .short _022336BC - _02233686 - 2 ; case 4
- .short _022336C6 - _02233686 - 2 ; case 5
- .short _022336D0 - _02233686 - 2 ; case 6
-_02233694:
- ldr r0, [r0]
- cmp r0, r4
- beq _022336DA
- mov r5, #0
- b _022336DA
-_0223369E:
- ldr r0, [r0]
- cmp r0, r4
- bne _022336DA
- mov r5, #0
- b _022336DA
-_022336A8:
- ldr r0, [r0]
- cmp r0, r4
- bgt _022336DA
- mov r5, #0
- b _022336DA
-_022336B2:
- ldr r0, [r0]
- cmp r0, r4
- ble _022336DA
- mov r5, #0
- b _022336DA
-_022336BC:
- ldr r0, [r0]
- tst r0, r4
- bne _022336DA
- mov r5, #0
- b _022336DA
-_022336C6:
- ldr r0, [r0]
- tst r0, r4
- beq _022336DA
- mov r5, #0
- b _022336DA
-_022336D0:
- ldr r0, [r0]
- and r0, r4
- cmp r4, r0
- beq _022336DA
- mov r5, #0
-_022336DA:
- cmp r5, #0
- beq _022336E6
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_0223A424
-_022336E6:
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_022336EC
-MOD11_022336EC: ; 0x022336EC
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r6, r1, #0
- str r0, [sp]
- add r0, r6, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r6, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r6, #0
- bl MOD11_0223A404
- str r0, [sp, #4]
- add r0, r6, #0
- bl MOD11_0223A404
- str r0, [sp, #8]
- add r0, r6, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r6, #0
- bl MOD11_0223A404
- add r5, r0, #0
- ldr r0, [sp]
- ldr r2, [sp, #4]
- add r1, r6, #0
- bl MOD11_0223C230
- add r1, r0, #0
- ldr r2, [sp, #8]
- add r0, r6, #0
- mov r3, #0
- bl MOD11_02243420
- cmp r7, #6
- bhi _02233790
- add r1, r7, r7
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0223374A: ; jump table
- .short _02233758 - _0223374A - 2 ; case 0
- .short _02233760 - _0223374A - 2 ; case 1
- .short _02233768 - _0223374A - 2 ; case 2
- .short _02233770 - _0223374A - 2 ; case 3
- .short _02233778 - _0223374A - 2 ; case 4
- .short _02233780 - _0223374A - 2 ; case 5
- .short _02233788 - _0223374A - 2 ; case 6
-_02233758:
- cmp r0, r4
- beq _02233790
- mov r5, #0
- b _02233790
-_02233760:
- cmp r0, r4
- bne _02233790
- mov r5, #0
- b _02233790
-_02233768:
- cmp r0, r4
- bgt _02233790
- mov r5, #0
- b _02233790
-_02233770:
- cmp r0, r4
- ble _02233790
- mov r5, #0
- b _02233790
-_02233778:
- tst r0, r4
- bne _02233790
- mov r5, #0
- b _02233790
-_02233780:
- tst r0, r4
- beq _02233790
- mov r5, #0
- b _02233790
-_02233788:
- and r0, r4
- cmp r4, r0
- beq _02233790
- mov r5, #0
-_02233790:
- cmp r5, #0
- beq _0223379C
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_0223A424
-_0223379C:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022337A4
-MOD11_022337A4: ; 0x022337A4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02255D20
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022337C0
-MOD11_022337C0: ; 0x022337C0
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A434
- mov r0, #0
- pop {r4, pc}
-
- thumb_func_start MOD11_022337E0
-MOD11_022337E0: ; 0x022337E0
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r2, _02233804 ; =0x00003044
- add r0, r4, #0
- ldr r2, [r4, r2]
- mov r1, #0x1e
- lsl r2, r2, #4
- add r3, r4, r2
- ldr r2, _02233808 ; =0x000003DE
- ldrh r2, [r3, r2]
- bl MOD11_0223A434
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-_02233804: .word 0x00003044
-_02233808: .word 0x000003DE
-
- thumb_func_start MOD11_0223380C
-MOD11_0223380C: ; 0x0223380C
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- ldr r2, _02233890 ; =0x0000213C
- mov r1, #1
- ldr r3, [r4, r2]
- bic r3, r1
- str r3, [r4, r2]
- ldr r3, [r4, r2]
- ldr r1, _02233894 ; =0xFFFFBFFF
- and r1, r3
- mov r3, #0x49
- lsl r3, r3, #2
- str r1, [r4, r2]
- ldr r2, [r4, r3]
- ldr r1, _02233898 ; =0x00003044
- cmp r0, #0
- str r2, [r4, r1]
- bne _02233866
- mov r0, #1
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- ldr r3, [r4, r3]
- ldr r2, [r4, #0x64]
- lsl r3, r3, #0x10
- add r0, r5, #0
- add r1, r4, #0
- lsr r3, r3, #0x10
- bl MOD11_02244C28
- str r0, [r4, #0x6c]
- ldr r1, [r4, #0x64]
- lsl r1, r1, #4
- add r2, r4, r1
- ldr r1, _0223389C ; =0x000021AC
- str r0, [r2, r1]
-_02233866:
- ldr r0, [r4, #0x6c]
- cmp r0, #0xff
- bne _0223387C
- mov r2, #0x26
- str r2, [r4, #0xc]
- add r0, r4, #0
- mov r1, #1
- add r2, #0xf3
- bl MOD11_0223A434
- b _02233888
-_0223387C:
- ldr r2, _02233898 ; =0x00003044
- add r0, r4, #0
- ldr r2, [r4, r2]
- mov r1, #0
- bl MOD11_0223A434
-_02233888:
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, pc}
- nop
-_02233890: .word 0x0000213C
-_02233894: .word 0xFFFFBFFF
-_02233898: .word 0x00003044
-_0223389C: .word 0x000021AC
-
- thumb_func_start MOD11_022338A0
-MOD11_022338A0: ; 0x022338A0
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0222FF74
- mov r1, #1
- lsl r1, r1, #0xa
- tst r0, r1
- bne _022338C8
- add r0, r5, #0
- bl MOD11_02230C50
- mov r1, #1
- tst r0, r1
- beq _022338D0
-_022338C8:
- ldr r0, _022338F4 ; =0x00002150
- mov r1, #1
- str r1, [r4, r0]
- b _022338F0
-_022338D0:
- ldr r3, [r4, #0x6c]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0
- bl MOD11_0224C474
- str r0, [sp]
- ldr r3, _022338F8 ; =0x0000214C
- ldr r1, [r4, #0x64]
- ldr r2, [r4, #0x6c]
- ldr r3, [r4, r3]
- add r0, r4, #0
- bl MOD11_0224BF3C
- ldr r1, _022338F4 ; =0x00002150
- str r0, [r4, r1]
-_022338F0:
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-_022338F4: .word 0x00002150
-_022338F8: .word 0x0000214C
-
- thumb_func_start MOD11_022338FC
-MOD11_022338FC: ; 0x022338FC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r1, #0
- add r7, r0, #0
- bl MOD11_0222FF74
- add r4, r0, #0
- ldr r1, [r5, #0x74]
- add r0, r7, #0
- bl MOD11_0222FF7C
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r1, r0, #0
- ldr r0, _02233A70 ; =0x00000195
- ldrb r2, [r6, r0]
- mov r0, #1
- tst r0, r2
- beq _02233936
- mov r0, #0xa9
- lsl r0, r0, #2
- tst r0, r4
- beq _02233938
-_02233936:
- b _02233A64
-_02233938:
- mov r0, #0
- str r0, [sp, #4]
- ldr r1, [sp, #4]
- str r0, [sp]
- add r4, r0, #0
- add r0, r7, #0
- bl MOD11_0222FF88
- bl FUN_0206B9AC
- cmp r0, #0
- ble _022339C6
-_02233950:
- add r0, r7, #0
- mov r1, #0
- add r2, r4, #0
- bl MOD11_02230014
- mov r1, #5
- mov r2, #0
- add r6, r0, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _022339B4
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _022339B4
- add r0, r4, #0
- bl MaskOfFlagNo
- ldr r1, [r5, #0x74]
- asr r1, r1, #1
- lsl r1, r1, #0x1f
- lsr r1, r1, #0x1d
- add r1, r5, r1
- add r1, #0xa4
- ldr r1, [r1]
- tst r0, r1
- beq _02233994
- ldr r0, [sp, #4]
- add r0, r0, #1
- str r0, [sp, #4]
-_02233994:
- add r0, r6, #0
- mov r1, #6
- mov r2, #0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
- add r0, r5, #0
- mov r2, #1
- bl MOD11_0224C12C
- cmp r0, #0x32
- bne _022339B4
- ldr r0, [sp]
- add r0, r0, #1
- str r0, [sp]
-_022339B4:
- add r0, r7, #0
- mov r1, #0
- add r4, r4, #1
- bl MOD11_0222FF88
- bl FUN_0206B9AC
- cmp r4, r0
- blt _02233950
-_022339C6:
- ldr r1, [r5, #0x74]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- mov r0, #0xb5
- lsl r0, r0, #6
- ldrh r0, [r1, r0]
- mov r1, #9
- bl GetMonBaseStat
- lsl r0, r0, #0x10
- lsr r1, r0, #0x10
- ldr r2, [r5, #0x74]
- mov r0, #0xc0
- mul r0, r2
- add r2, r5, r0
- ldr r0, _02233A74 ; =0x00002D74
- ldrb r0, [r2, r0]
- mul r0, r1
- mov r1, #7
- bl _s32_div_f
- lsl r0, r0, #0x10
- ldr r1, [sp]
- lsr r0, r0, #0x10
- cmp r1, #0
- beq _02233A3E
- lsr r4, r0, #1
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl _s32_div_f
- add r1, r5, #0
- add r1, #0x9c
- str r0, [r1]
- add r0, r5, #0
- add r0, #0x9c
- ldr r0, [r0]
- cmp r0, #0
- bne _02233A1E
- add r0, r5, #0
- mov r1, #1
- add r0, #0x9c
- str r1, [r0]
-_02233A1E:
- ldr r1, [sp]
- add r0, r4, #0
- bl _s32_div_f
- add r1, r5, #0
- add r1, #0xa0
- str r0, [r1]
- add r0, r5, #0
- add r0, #0xa0
- ldr r0, [r0]
- cmp r0, #0
- bne _02233A6A
- mov r0, #1
- add r5, #0xa0
- str r0, [r5]
- b _02233A6A
-_02233A3E:
- ldr r1, [sp, #4]
- bl _s32_div_f
- add r1, r5, #0
- add r1, #0x9c
- str r0, [r1]
- add r0, r5, #0
- add r0, #0x9c
- ldr r0, [r0]
- cmp r0, #0
- bne _02233A5C
- add r0, r5, #0
- mov r1, #1
- add r0, #0x9c
- str r1, [r0]
-_02233A5C:
- mov r0, #0
- add r5, #0xa0
- str r0, [r5]
- b _02233A6A
-_02233A64:
- add r0, r5, #0
- bl MOD11_0223A424
-_02233A6A:
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02233A70: .word 0x00000195
-_02233A74: .word 0x00002D74
-
- thumb_func_start MOD11_02233A78
-MOD11_02233A78: ; 0x02233A78
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- mov r0, #5
- mov r1, #0x58
- bl AllocFromHeap
- mov r1, #0x5e
- lsl r1, r1, #2
- str r0, [r4, r1]
- ldr r0, [r4, r1]
- mov r2, #0
- str r5, [r0]
- ldr r0, [r4, r1]
- str r4, [r0, #4]
- ldr r0, [r4, r1]
- str r2, [r0, #0x28]
- ldr r0, [r4, r1]
- str r2, [r0, #0x48]
- ldr r0, _02233AB4 ; =MOD11_0223A79C
- ldr r1, [r4, r1]
- bl FUN_0200CA44
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02233AB4: .word MOD11_0223A79C
-
- thumb_func_start MOD11_02233AB8
-MOD11_02233AB8: ; 0x02233AB8
- push {r3, lr}
- mov r0, #0x5e
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _02233ACC
- add r0, r1, #0
- mov r1, #1
- bl MOD11_0223A424
-_02233ACC:
- mov r0, #0
- pop {r3, pc}
-
- thumb_func_start MOD11_02233AD0
-MOD11_02233AD0: ; 0x02233AD0
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02233AE8
-MOD11_02233AE8: ; 0x02233AE8
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- str r1, [sp, #8]
- add r6, r0, #0
- bl MOD11_0222FF84
- add r7, r0, #0
- ldr r0, [sp, #8]
- mov r1, #1
- bl MOD11_0223A424
- mov r4, #0
- add r5, r4, #0
- cmp r7, #0
- ble _02233B40
- ldr r0, [sp, #8]
- str r0, [sp, #0xc]
-_02233B0A:
- mov r0, #0x4f
- ldr r1, [sp, #0xc]
- lsl r0, r0, #2
- ldr r1, [r1, r0]
- mov r0, #1
- tst r0, r1
- beq _02233B34
- add r0, r5, #0
- bl MaskOfFlagNo
- orr r4, r0
- mov r0, #0
- str r0, [sp]
- mov r0, #6
- str r0, [sp, #4]
- ldr r1, [sp, #8]
- add r0, r6, #0
- add r2, r5, #0
- mov r3, #1
- bl MOD11_022558E0
-_02233B34:
- ldr r0, [sp, #0xc]
- add r5, r5, #1
- add r0, r0, #4
- str r0, [sp, #0xc]
- cmp r5, r7
- blt _02233B0A
-_02233B40:
- mov r5, #0
- cmp r7, #0
- ble _02233B98
-_02233B46:
- add r0, r6, #0
- bl MOD11_0222FF74
- cmp r0, #7
- bne _02233B80
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_022302BC
- str r0, [sp, #0x10]
- add r0, r5, #0
- bl MaskOfFlagNo
- tst r0, r4
- bne _02233B92
- ldr r0, [sp, #0x10]
- bl MaskOfFlagNo
- tst r0, r4
- bne _02233B92
- add r0, r5, #0
- bl MaskOfFlagNo
- orr r4, r0
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_022564CC
- b _02233B92
-_02233B80:
- add r0, r5, #0
- bl MaskOfFlagNo
- tst r0, r4
- bne _02233B92
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_022564CC
-_02233B92:
- add r5, r5, #1
- cmp r5, r7
- blt _02233B46
-_02233B98:
- mov r0, #0
- cmp r7, #0
- ble _02233BBA
- mov r1, #0x4f
- ldr r4, [sp, #8]
- lsl r1, r1, #2
- mov r2, #1
-_02233BA6:
- ldr r3, [r4, r1]
- tst r3, r2
- beq _02233BB2
- ldr r1, [sp, #8]
- str r0, [r1, #0x78]
- b _02233BBA
-_02233BB2:
- add r0, r0, #1
- add r4, r4, #4
- cmp r0, r7
- blt _02233BA6
-_02233BBA:
- mov r0, #0
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02233BC0
-MOD11_02233BC0: ; 0x02233BC0
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- str r0, [sp]
- add r5, r1, #0
- bl MOD11_0222FF84
- str r0, [sp, #8]
- mov r6, #0
- ldr r1, [sp, #8]
- add r0, r6, #0
- cmp r1, #0
- ble _02233BF2
- mov r3, #0x4f
- add r1, r5, #0
- lsl r3, r3, #2
- mov r4, #1
-_02233BE0:
- ldr r2, [r1, r3]
- tst r2, r4
- beq _02233BE8
- add r6, r6, #1
-_02233BE8:
- ldr r2, [sp, #8]
- add r0, r0, #1
- add r1, r1, #4
- cmp r0, r2
- blt _02233BE0
-_02233BF2:
- ldr r0, [sp, #8]
- mov r4, #0
- cmp r0, #0
- ble _02233C6C
- str r5, [sp, #4]
- add r7, r5, #0
-_02233BFE:
- mov r0, #0x4f
- ldr r1, [sp, #4]
- lsl r0, r0, #2
- ldr r1, [r1, r0]
- mov r0, #1
- tst r0, r1
- beq _02233C58
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0224AD90
- cmp r0, #0
- beq _02233C58
- mov r0, #0x23
- lsl r0, r0, #8
- ldrb r0, [r7, r0]
- add r1, r5, r4
- sub r6, r6, #1
- sub r2, r0, #1
- ldr r0, _02233C8C ; =0x000021A0
- strb r2, [r1, r0]
- add r0, r4, #0
- bl MaskOfFlagNo
- mov r1, #0x85
- lsl r1, r1, #6
- ldr r1, [r5, r1]
- lsl r0, r0, #0x18
- tst r0, r1
- bne _02233C58
- add r0, r4, #0
- bl MaskOfFlagNo
- mov r1, #0x85
- lsl r1, r1, #6
- ldr r1, [r5, r1]
- lsl r0, r0, #0x18
- orr r1, r0
- mov r0, #0x85
- lsl r0, r0, #6
- str r1, [r5, r0]
- ldr r0, [sp]
- add r1, r4, #0
- bl MOD11_022564CC
-_02233C58:
- ldr r0, [sp, #4]
- add r4, r4, #1
- add r0, r0, #4
- str r0, [sp, #4]
- mov r0, #1
- lsl r0, r0, #8
- add r7, r7, r0
- ldr r0, [sp, #8]
- cmp r4, r0
- blt _02233BFE
-_02233C6C:
- cmp r6, #0
- bne _02233C84
- mov r1, #0x85
- lsl r1, r1, #6
- ldr r2, [r5, r1]
- ldr r0, _02233C90 ; =0xF0FFFFFF
- and r0, r2
- str r0, [r5, r1]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
-_02233C84:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- nop
-_02233C8C: .word 0x000021A0
-_02233C90: .word 0xF0FFFFFF
-
- thumb_func_start MOD11_02233C94
-MOD11_02233C94: ; 0x02233C94
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r7, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- cmp r0, #1
- beq _02233CB6
- cmp r0, #6
- beq _02233CBA
- cmp r0, #0x12
- beq _02233CBE
- b _02233CC0
-_02233CB6:
- ldr r4, [r5, #0x64]
- b _02233CC0
-_02233CBA:
- ldr r4, [r5, #0x78]
- b _02233CC0
-_02233CBE:
- ldr r4, [r5, #0x6c]
-_02233CC0:
- mov r0, #0x4f
- lsl r0, r0, #2
- add r3, r5, r0
- lsl r2, r4, #2
- ldr r1, [r3, r2]
- mov r0, #1
- bic r1, r0
- add r0, r4, #0
- str r1, [r3, r2]
- bl MaskOfFlagNo
- ldr r3, _02233D24 ; =0x00003108
- mov r2, #0
- mvn r2, r2
- eor r0, r2
- ldrb r1, [r5, r3]
- add r2, r4, #0
- and r0, r1
- ldr r1, _02233D28 ; =0x000021A0
- strb r0, [r5, r3]
- add r0, r5, r1
- sub r1, r1, #4
- add r6, r5, r1
- ldrb r1, [r0, r4]
- strb r1, [r6, r4]
- mov r1, #6
- strb r1, [r0, r4]
- ldrb r3, [r6, r4]
- add r0, r7, #0
- add r1, r5, #0
- bl MOD11_02242B78
- ldrb r3, [r6, r4]
- add r0, r7, #0
- add r1, r5, #0
- add r2, r4, #0
- bl MOD11_0224B290
- ldr r0, _02233D2C ; =0x00002E4C
- add r2, r4, #0
- ldr r1, [r5, r0]
- ldr r0, _02233D30 ; =0x00003122
- strh r1, [r5, r0]
- add r0, r7, #0
- add r1, r5, #0
- bl MOD11_02245608
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02233D24: .word 0x00003108
-_02233D28: .word 0x000021A0
-_02233D2C: .word 0x00002E4C
-_02233D30: .word 0x00003122
-
- thumb_func_start MOD11_02233D34
-MOD11_02233D34: ; 0x02233D34
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- bl MOD11_0222FF84
- add r4, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r7, r0, #0
- mov r0, #0
- cmp r4, #0
- ble _02233D76
- mov r2, #0x4f
- add r1, r5, #0
- lsl r2, r2, #2
- mov r3, #1
-_02233D5C:
- ldr r6, [r1, r2]
- tst r6, r3
- beq _02233D6E
- str r0, [r5, #0x78]
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_0223A424
- b _02233D76
-_02233D6E:
- add r0, r0, #1
- add r1, r1, #4
- cmp r0, r4
- blt _02233D5C
-_02233D76:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02233D7C
-MOD11_02233D7C: ; 0x02233D7C
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- mov r0, #5
- mov r1, #0x58
- bl AllocFromHeap
- mov r1, #0x5e
- lsl r1, r1, #2
- str r0, [r4, r1]
- ldr r0, [r4, r1]
- mov r2, #0
- str r5, [r0]
- ldr r0, [r4, r1]
- str r4, [r0, #4]
- ldr r0, [r4, r1]
- str r2, [r0, #0x28]
- ldr r0, [r4, r1]
- str r6, [r0, #0x24]
- add r0, r1, #0
- sub r0, #0x50
- ldr r3, [r4, r0]
- ldr r0, [r4, r1]
- str r3, [r0, #0x2c]
- ldr r0, _02233DC8 ; =MOD11_0223B49C
- ldr r1, [r4, r1]
- bl FUN_0200CA44
- mov r0, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-_02233DC8: .word MOD11_0223B49C
-
- thumb_func_start MOD11_02233DCC
-MOD11_02233DCC: ; 0x02233DCC
- push {r3, lr}
- mov r0, #0x5e
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _02233DE0
- add r0, r1, #0
- mov r1, #1
- bl MOD11_0223A424
-_02233DE0:
- mov r0, #0
- pop {r3, pc}
-
- thumb_func_start MOD11_02233DE4
-MOD11_02233DE4: ; 0x02233DE4
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- add r6, r0, #0
- ldr r0, _02233E4C ; =0x0000217D
- ldrb r0, [r5, r0]
- cmp r0, #0
- bne _02233E46
- cmp r4, #0
- bne _02233E36
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x5c
- bne _02233E1C
- mov r4, #5
- b _02233E36
-_02233E1C:
- bl rand_LC
- mov r1, #3
- and r0, r1
- cmp r0, #2
- bge _02233E2C
- add r4, r0, #2
- b _02233E36
-_02233E2C:
- bl rand_LC
- mov r1, #3
- and r0, r1
- add r4, r0, #2
-_02233E36:
- lsl r0, r4, #0x18
- ldr r1, _02233E50 ; =0x0000217C
- lsr r2, r0, #0x18
- strb r2, [r5, r1]
- add r0, r1, #1
- strb r2, [r5, r0]
- add r1, #0xc
- str r6, [r5, r1]
-_02233E46:
- mov r0, #0
- pop {r4, r5, r6, pc}
- nop
-_02233E4C: .word 0x0000217D
-_02233E50: .word 0x0000217C
-
- thumb_func_start MOD11_02233E54
-MOD11_02233E54: ; 0x02233E54
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r7, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp]
- add r0, r4, #0
- bl MOD11_0223A404
- add r5, r0, #0
- ldr r2, [sp]
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_0223A444
- add r4, r0, #0
- cmp r6, #0x14
- bhi _02233F3E
- add r0, r6, r6
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02233E96: ; jump table
- .short _02233F3E - _02233E96 - 2 ; case 0
- .short _02233F3E - _02233E96 - 2 ; case 1
- .short _02233F3E - _02233E96 - 2 ; case 2
- .short _02233F3E - _02233E96 - 2 ; case 3
- .short _02233F3E - _02233E96 - 2 ; case 4
- .short _02233F3E - _02233E96 - 2 ; case 5
- .short _02233F3E - _02233E96 - 2 ; case 6
- .short _02233EC0 - _02233E96 - 2 ; case 7
- .short _02233EC4 - _02233E96 - 2 ; case 8
- .short _02233ECC - _02233E96 - 2 ; case 9
- .short _02233ED4 - _02233E96 - 2 ; case 10
- .short _02233EDC - _02233E96 - 2 ; case 11
- .short _02233EEA - _02233E96 - 2 ; case 12
- .short _02233EF4 - _02233E96 - 2 ; case 13
- .short _02233F00 - _02233E96 - 2 ; case 14
- .short _02233F08 - _02233E96 - 2 ; case 15
- .short _02233F10 - _02233E96 - 2 ; case 16
- .short _02233F1A - _02233E96 - 2 ; case 17
- .short _02233F20 - _02233E96 - 2 ; case 18
- .short _02233F2E - _02233E96 - 2 ; case 19
- .short _02233F36 - _02233E96 - 2 ; case 20
-_02233EC0:
- str r5, [r4]
- b _02233F42
-_02233EC4:
- ldr r0, [r4]
- add r0, r0, r5
- str r0, [r4]
- b _02233F42
-_02233ECC:
- ldr r0, [r4]
- sub r0, r0, r5
- str r0, [r4]
- b _02233F42
-_02233ED4:
- ldr r0, [r4]
- orr r0, r5
- str r0, [r4]
- b _02233F42
-_02233EDC:
- mov r0, #0
- mvn r0, r0
- ldr r1, [r4]
- eor r0, r5
- and r0, r1
- str r0, [r4]
- b _02233F42
-_02233EEA:
- ldr r0, [r4]
- add r1, r0, #0
- mul r1, r5
- str r1, [r4]
- b _02233F42
-_02233EF4:
- ldr r0, [r4]
- add r1, r5, #0
- bl _s32_div_f
- str r0, [r4]
- b _02233F42
-_02233F00:
- ldr r0, [r4]
- lsl r0, r5
- str r0, [r4]
- b _02233F42
-_02233F08:
- ldr r0, [r4]
- asr r0, r5
- str r0, [r4]
- b _02233F42
-_02233F10:
- add r0, r5, #0
- bl MaskOfFlagNo
- str r0, [r4]
- b _02233F42
-_02233F1A:
- bl ErrorHandling
- b _02233F42
-_02233F20:
- ldr r0, [r4]
- sub r0, r0, r5
- str r0, [r4]
- bpl _02233F42
- mov r0, #0
- str r0, [r4]
- b _02233F42
-_02233F2E:
- ldr r0, [r4]
- eor r0, r5
- str r0, [r4]
- b _02233F42
-_02233F36:
- ldr r0, [r4]
- and r0, r5
- str r0, [r4]
- b _02233F42
-_02233F3E:
- bl ErrorHandling
-_02233F42:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02233F48
-MOD11_02233F48: ; 0x02233F48
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x18
- str r0, [sp]
- mov r0, #0xb5
- add r5, r1, #0
- lsl r0, r0, #6
- add r2, r5, r0
- add r0, r5, #0
- add r0, #0x94
- ldr r1, [r0]
- mov r0, #0xc0
- mul r0, r1
- add r6, r2, r0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- str r0, [sp, #0x14]
- add r0, r5, #0
- bl MOD11_0223A404
- str r0, [sp, #0x10]
- add r0, r5, #0
- bl MOD11_0223A404
- ldr r1, _022342D0 ; =0x0000213C
- str r0, [sp, #0xc]
- mov r0, #0
- str r0, [sp, #8]
- ldr r2, [r5, r1]
- ldr r0, _022342D4 ; =0xFFFDFFFF
- and r2, r0
- str r2, [r5, r1]
- add r1, r5, #0
- add r1, #0x8c
- ldr r4, [r1]
- cmp r4, #0x2e
- blt _02233FA8
- asr r7, r0, #0x11
- mov r0, #0x4e
- mov r1, #0xd
- lsl r0, r0, #2
- sub r4, #0x2e
- str r1, [r5, r0]
- b _02233FD8
-_02233FA8:
- cmp r4, #0x27
- blt _02233FBA
- mov r0, #0x4e
- mov r1, #0xc
- lsl r0, r0, #2
- sub r4, #0x27
- mov r7, #2
- str r1, [r5, r0]
- b _02233FD8
-_02233FBA:
- cmp r4, #0x16
- blt _02233FCC
- asr r7, r0, #0x12
- mov r0, #0x4e
- mov r1, #0xd
- lsl r0, r0, #2
- sub r4, #0x16
- str r1, [r5, r0]
- b _02233FD8
-_02233FCC:
- mov r0, #0x4e
- mov r1, #0xc
- lsl r0, r0, #2
- sub r4, #0xf
- mov r7, #1
- str r1, [r5, r0]
-_02233FD8:
- cmp r7, #0
- bgt _02233FDE
- b _02234116
-_02233FDE:
- add r1, r4, #1
- add r6, #0x18
- add r0, r6, r1
- str r0, [sp, #4]
- ldrsb r0, [r6, r1]
- cmp r0, #0xc
- bne _02234042
- ldr r1, _022342D0 ; =0x0000213C
- mov r0, #2
- ldr r2, [r5, r1]
- lsl r0, r0, #0x10
- orr r0, r2
- str r0, [r5, r1]
- add r0, r5, #0
- add r0, #0x88
- ldr r0, [r0]
- sub r0, r0, #2
- cmp r0, #1
- bhi _0223400E
- ldr r1, [sp, #0x10]
- add r0, r5, #0
- bl MOD11_0223A424
- b _02234538
-_0223400E:
- add r0, r5, #0
- mov r1, #0x8e
- add r0, #0xf6
- strh r1, [r0]
- add r0, r5, #0
- mov r1, #0xc
- add r0, #0xf5
- strb r1, [r0]
- add r1, r5, #0
- add r1, #0x94
- ldr r1, [r1]
- add r0, r5, #0
- bl MOD11_0224682C
- add r1, r5, #0
- add r1, #0xf8
- str r0, [r1]
- add r0, r5, #0
- add r1, r4, #1
- add r0, #0xfc
- str r1, [r0]
- ldr r1, [sp, #0x14]
- add r0, r5, #0
- bl MOD11_0223A424
- b _02234538
-_02234042:
- add r0, r5, #0
- add r0, #0x88
- ldr r0, [r0]
- cmp r0, #3
- bne _0223408E
- add r0, r5, #0
- ldr r1, _022342D8 ; =0x0000026E
- add r0, #0xf6
- strh r1, [r0]
- add r0, r5, #0
- mov r1, #0x27
- add r0, #0xf5
- strb r1, [r0]
- add r1, r5, #0
- add r1, #0x94
- ldr r1, [r1]
- add r0, r5, #0
- bl MOD11_0224682C
- add r1, r5, #0
- add r1, #0xf8
- str r0, [r1]
- add r0, r5, #0
- add r0, #0x94
- ldr r0, [r0]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- ldr r0, _022342DC ; =0x00002D67
- add r2, r5, r2
- ldrb r2, [r2, r0]
- add r0, r5, #0
- add r0, #0xfc
- str r2, [r0]
- add r0, r4, #1
- add r1, #0x40
- str r0, [r5, r1]
- b _022340FA
-_0223408E:
- cmp r0, #5
- bne _022340CA
- mov r1, #0xbd
- add r0, r5, #0
- lsl r1, r1, #2
- add r0, #0xf6
- strh r1, [r0]
- add r0, r5, #0
- mov r1, #0x2d
- add r0, #0xf5
- strb r1, [r0]
- add r1, r5, #0
- add r1, #0x94
- ldr r1, [r1]
- add r0, r5, #0
- bl MOD11_0224682C
- add r1, r5, #0
- add r1, #0xf8
- str r0, [r1]
- mov r1, #0x4a
- lsl r1, r1, #2
- ldr r2, [r5, r1]
- add r0, r5, #0
- add r0, #0xfc
- str r2, [r0]
- add r0, r4, #1
- sub r1, #0x28
- str r0, [r5, r1]
- b _022340FA
-_022340CA:
- cmp r7, #1
- bne _022340D2
- ldr r1, _022342E0 ; =0x000002EE
- b _022340D4
-_022340D2:
- ldr r1, _022342E4 ; =0x000002F1
-_022340D4:
- add r0, r5, #0
- add r0, #0xf6
- strh r1, [r0]
- add r0, r5, #0
- mov r1, #0xc
- add r0, #0xf5
- strb r1, [r0]
- add r1, r5, #0
- add r1, #0x94
- ldr r1, [r1]
- add r0, r5, #0
- bl MOD11_0224682C
- add r1, r5, #0
- add r1, #0xf8
- str r0, [r1]
- add r0, r4, #1
- add r5, #0xfc
- str r0, [r5]
-_022340FA:
- ldr r0, [sp, #4]
- mov r1, #0
- ldrsb r0, [r0, r1]
- add r2, r0, r7
- ldr r0, [sp, #4]
- strb r2, [r0]
- ldrsb r0, [r0, r1]
- cmp r0, #0xc
- bgt _0223410E
- b _02234538
-_0223410E:
- ldr r0, [sp, #4]
- mov r1, #0xc
- strb r1, [r0]
- b _02234538
-_02234116:
- add r0, r5, #0
- add r0, #0x90
- ldr r1, [r0]
- mov r0, #2
- lsl r0, r0, #0x1a
- tst r1, r0
- beq _02234126
- b _0223449C
-_02234126:
- add r1, r5, #0
- add r1, #0x94
- ldr r1, [r1]
- ldr r2, [r5, #0x64]
- cmp r2, r1
- bne _02234134
- b _022343E4
-_02234134:
- ldr r0, [sp]
- bl MOD11_02230270
- lsl r0, r0, #3
- mov r1, #0x71
- add r0, r5, r0
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- lsl r0, r0, #0x11
- lsr r0, r0, #0x1d
- beq _02234172
- add r0, r5, #0
- sub r1, #0xb3
- add r0, #0xf6
- strh r1, [r0]
- add r0, r5, #0
- mov r1, #2
- add r0, #0xf5
- strb r1, [r0]
- add r1, r5, #0
- add r1, #0x94
- ldr r1, [r1]
- add r0, r5, #0
- bl MOD11_0224682C
- add r1, r5, #0
- add r1, #0xf8
- str r0, [r1]
- mov r0, #1
- str r0, [sp, #8]
- b _0223444C
-_02234172:
- add r2, r5, #0
- add r2, #0x94
- ldr r1, [r5, #0x64]
- ldr r2, [r2]
- add r0, r5, #0
- mov r3, #0x1d
- bl MOD11_02246D84
- cmp r0, #1
- beq _0223419A
- add r2, r5, #0
- add r2, #0x94
- ldr r1, [r5, #0x64]
- ldr r2, [r2]
- add r0, r5, #0
- mov r3, #0x49
- bl MOD11_02246D84
- cmp r0, #1
- bne _0223423C
-_0223419A:
- add r0, r5, #0
- add r0, #0x88
- ldr r0, [r0]
- cmp r0, #3
- bne _022341FE
- add r0, r5, #0
- ldr r1, _022342E8 ; =0x000002D7
- add r0, #0xf6
- strh r1, [r0]
- add r0, r5, #0
- mov r1, #0x35
- add r0, #0xf5
- strb r1, [r0]
- add r1, r5, #0
- add r1, #0x94
- ldr r1, [r1]
- add r0, r5, #0
- bl MOD11_0224682C
- add r1, r5, #0
- add r1, #0xf8
- str r0, [r1]
- add r0, r5, #0
- add r0, #0x94
- ldr r1, [r0]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _022342DC ; =0x00002D67
- ldrb r1, [r1, r0]
- add r0, r5, #0
- add r0, #0xfc
- str r1, [r0]
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_0224682C
- mov r1, #1
- lsl r1, r1, #8
- str r0, [r5, r1]
- ldr r0, [r5, #0x64]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- ldr r0, _022342DC ; =0x00002D67
- add r2, r5, r2
- ldrb r0, [r2, r0]
- add r1, #0x44
- str r0, [r5, r1]
- b _02234236
-_022341FE:
- add r0, r5, #0
- ldr r1, _022342EC ; =0x0000029D
- add r0, #0xf6
- strh r1, [r0]
- add r0, r5, #0
- mov r1, #0xb
- add r0, #0xf5
- strb r1, [r0]
- add r1, r5, #0
- add r1, #0x94
- ldr r1, [r1]
- add r0, r5, #0
- bl MOD11_0224682C
- add r1, r5, #0
- add r1, #0xf8
- str r0, [r1]
- add r0, r5, #0
- add r0, #0x94
- ldr r1, [r0]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _022342DC ; =0x00002D67
- ldrb r1, [r1, r0]
- add r0, r5, #0
- add r0, #0xfc
- str r1, [r0]
-_02234236:
- mov r0, #1
- str r0, [sp, #8]
- b _0223444C
-_0223423C:
- add r2, r5, #0
- add r2, #0x94
- ldr r1, [r5, #0x64]
- ldr r2, [r2]
- add r0, r5, #0
- mov r3, #0x33
- bl MOD11_02246D84
- cmp r0, #1
- bne _02234256
- add r0, r4, #1
- cmp r0, #6
- beq _0223426E
-_02234256:
- add r2, r5, #0
- add r2, #0x94
- ldr r1, [r5, #0x64]
- ldr r2, [r2]
- add r0, r5, #0
- mov r3, #0x34
- bl MOD11_02246D84
- cmp r0, #1
- bne _02234338
- cmp r4, #0
- bne _02234338
-_0223426E:
- add r0, r5, #0
- add r0, #0x88
- ldr r0, [r0]
- cmp r0, #3
- bne _022342F0
- add r0, r5, #0
- ldr r1, _022342E8 ; =0x000002D7
- add r0, #0xf6
- strh r1, [r0]
- add r0, r5, #0
- mov r1, #0x35
- add r0, #0xf5
- strb r1, [r0]
- add r1, r5, #0
- add r1, #0x94
- ldr r1, [r1]
- add r0, r5, #0
- bl MOD11_0224682C
- add r1, r5, #0
- add r1, #0xf8
- str r0, [r1]
- add r0, r5, #0
- add r0, #0x94
- ldr r1, [r0]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _022342DC ; =0x00002D67
- ldrb r1, [r1, r0]
- add r0, r5, #0
- add r0, #0xfc
- str r1, [r0]
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_0224682C
- mov r1, #1
- lsl r1, r1, #8
- str r0, [r5, r1]
- ldr r0, [r5, #0x64]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- ldr r0, _022342DC ; =0x00002D67
- add r2, r5, r2
- ldrb r0, [r2, r0]
- add r1, #0x44
- b _02234330
- .align 2, 0
-_022342D0: .word 0x0000213C
-_022342D4: .word 0xFFFDFFFF
-_022342D8: .word 0x0000026E
-_022342DC: .word 0x00002D67
-_022342E0: .word 0x000002EE
-_022342E4: .word 0x000002F1
-_022342E8: .word 0x000002D7
-_022342EC: .word 0x0000029D
-_022342F0:
- mov r1, #0xb
- add r0, r5, #0
- lsl r1, r1, #6
- add r0, #0xf6
- strh r1, [r0]
- add r0, r5, #0
- mov r1, #0x27
- add r0, #0xf5
- strb r1, [r0]
- add r1, r5, #0
- add r1, #0x94
- ldr r1, [r1]
- add r0, r5, #0
- bl MOD11_0224682C
- add r1, r5, #0
- add r1, #0xf8
- str r0, [r1]
- add r0, r5, #0
- add r0, #0x94
- ldr r0, [r0]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- ldr r0, _02234540 ; =0x00002D67
- add r2, r5, r2
- ldrb r2, [r2, r0]
- add r0, r5, #0
- add r0, #0xfc
- str r2, [r0]
- add r0, r4, #1
- add r1, #0x40
-_02234330:
- str r0, [r5, r1]
- mov r0, #1
- str r0, [sp, #8]
- b _0223444C
-_02234338:
- add r0, r4, #1
- add r1, r6, r0
- mov r0, #0x18
- ldrsb r0, [r1, r0]
- cmp r0, #0
- bne _022343A2
- ldr r1, _02234544 ; =0x0000213C
- mov r0, #2
- ldr r2, [r5, r1]
- lsl r0, r0, #0x10
- orr r0, r2
- str r0, [r5, r1]
- add r0, r5, #0
- add r0, #0x88
- ldr r0, [r0]
- sub r0, r0, #2
- cmp r0, #1
- bhi _0223436A
- ldr r1, [sp, #0x10]
- add r0, r5, #0
- bl MOD11_0223A424
- add sp, #0x18
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0223436A:
- add r0, r5, #0
- mov r1, #0x91
- add r0, #0xf6
- strh r1, [r0]
- add r0, r5, #0
- mov r1, #0xc
- add r0, #0xf5
- strb r1, [r0]
- add r1, r5, #0
- add r1, #0x94
- ldr r1, [r1]
- add r0, r5, #0
- bl MOD11_0224682C
- add r1, r5, #0
- add r1, #0xf8
- str r0, [r1]
- add r0, r5, #0
- add r1, r4, #1
- add r0, #0xfc
- str r1, [r0]
- ldr r1, [sp, #0x14]
- add r0, r5, #0
- bl MOD11_0223A424
- add sp, #0x18
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_022343A2:
- add r2, r5, #0
- add r2, #0x94
- ldr r1, [r5, #0x64]
- ldr r2, [r2]
- add r0, r5, #0
- mov r3, #0x13
- bl MOD11_02246D84
- cmp r0, #1
- bne _022343C6
- add r0, r5, #0
- add r0, #0x88
- ldr r0, [r0]
- cmp r0, #2
- bne _022343C6
- mov r0, #1
- str r0, [sp, #8]
- b _0223444C
-_022343C6:
- add r0, r5, #0
- add r0, #0x94
- ldr r1, [r0]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _02234548 ; =0x00002DB0
- ldr r1, [r1, r0]
- mov r0, #1
- lsl r0, r0, #0x18
- tst r0, r1
- beq _0223444C
- mov r0, #2
- str r0, [sp, #8]
- b _0223444C
-_022343E4:
- add r1, r4, #1
- add r2, r6, r1
- mov r1, #0x18
- ldrsb r1, [r2, r1]
- cmp r1, #0
- bne _0223444C
- ldr r1, _02234544 ; =0x0000213C
- lsr r0, r0, #0xa
- ldr r2, [r5, r1]
- orr r0, r2
- str r0, [r5, r1]
- add r0, r5, #0
- add r0, #0x88
- ldr r0, [r0]
- sub r0, r0, #2
- cmp r0, #1
- bhi _02234414
- ldr r1, [sp, #0x10]
- add r0, r5, #0
- bl MOD11_0223A424
- add sp, #0x18
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02234414:
- add r0, r5, #0
- mov r1, #0x91
- add r0, #0xf6
- strh r1, [r0]
- add r0, r5, #0
- mov r1, #0xc
- add r0, #0xf5
- strb r1, [r0]
- add r1, r5, #0
- add r1, #0x94
- ldr r1, [r1]
- add r0, r5, #0
- bl MOD11_0224682C
- add r1, r5, #0
- add r1, #0xf8
- str r0, [r1]
- add r0, r5, #0
- add r1, r4, #1
- add r0, #0xfc
- str r1, [r0]
- ldr r1, [sp, #0x14]
- add r0, r5, #0
- bl MOD11_0223A424
- add sp, #0x18
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0223444C:
- ldr r0, [sp, #8]
- cmp r0, #2
- bne _0223446A
- add r0, r5, #0
- add r0, #0x88
- ldr r0, [r0]
- cmp r0, #1
- bne _0223446A
- ldr r1, [sp, #0xc]
- add r0, r5, #0
- bl MOD11_0223A424
- add sp, #0x18
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0223446A:
- ldr r0, [sp, #8]
- cmp r0, #0
- beq _02234488
- add r0, r5, #0
- add r0, #0x88
- ldr r0, [r0]
- cmp r0, #2
- bne _02234488
- ldr r1, [sp, #0x10]
- add r0, r5, #0
- bl MOD11_0223A424
- add sp, #0x18
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02234488:
- ldr r0, [sp, #8]
- cmp r0, #0
- beq _0223449C
- ldr r1, [sp, #0x14]
- add r0, r5, #0
- bl MOD11_0223A424
- add sp, #0x18
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0223449C:
- add r0, r5, #0
- add r0, #0x88
- ldr r0, [r0]
- cmp r0, #3
- bne _022344F0
- add r0, r5, #0
- ldr r1, _0223454C ; =0x00000296
- add r0, #0xf6
- strh r1, [r0]
- add r0, r5, #0
- mov r1, #0x36
- add r0, #0xf5
- strb r1, [r0]
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_0224682C
- add r1, r5, #0
- add r1, #0xf8
- str r0, [r1]
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _02234540 ; =0x00002D67
- ldrb r1, [r1, r0]
- add r0, r5, #0
- add r0, #0xfc
- str r1, [r0]
- add r1, r5, #0
- add r1, #0x94
- ldr r1, [r1]
- add r0, r5, #0
- bl MOD11_0224682C
- mov r1, #1
- lsl r1, r1, #8
- str r0, [r5, r1]
- add r2, r4, #1
- add r0, r1, #4
- str r2, [r5, r0]
- b _02234524
-_022344F0:
- mov r0, #0
- mvn r0, r0
- cmp r7, r0
- bne _022344FC
- ldr r1, _02234550 ; =0x000002FA
- b _022344FE
-_022344FC:
- ldr r1, _02234554 ; =0x000002FD
-_022344FE:
- add r0, r5, #0
- add r0, #0xf6
- strh r1, [r0]
- add r0, r5, #0
- mov r1, #0xc
- add r0, #0xf5
- strb r1, [r0]
- add r1, r5, #0
- add r1, #0x94
- ldr r1, [r1]
- add r0, r5, #0
- bl MOD11_0224682C
- add r1, r5, #0
- add r1, #0xf8
- str r0, [r1]
- add r0, r4, #1
- add r5, #0xfc
- str r0, [r5]
-_02234524:
- add r6, #0x18
- add r1, r4, #1
- ldrsb r0, [r6, r1]
- add r0, r0, r7
- strb r0, [r6, r1]
- ldrsb r0, [r6, r1]
- cmp r0, #0
- bge _02234538
- mov r0, #0
- strb r0, [r6, r1]
-_02234538:
- mov r0, #0
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02234540: .word 0x00002D67
-_02234544: .word 0x0000213C
-_02234548: .word 0x00002DB0
-_0223454C: .word 0x00000296
-_02234550: .word 0x000002FA
-_02234554: .word 0x000002FD
-
- thumb_func_start MOD11_02234558
-MOD11_02234558: ; 0x02234558
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r5, r1, #0
- str r0, [sp]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- str r0, [sp, #8]
- add r0, r5, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- ldr r0, [sp]
- ldr r2, [sp, #8]
- add r1, r5, #0
- bl MOD11_0223C230
- str r0, [sp, #4]
- ldr r1, [sp, #4]
- add r0, r5, #0
- add r2, r6, #0
- mov r3, #0
- bl MOD11_02243420
- str r0, [sp, #0xc]
- cmp r7, #0x14
- bhi _02234644
- add r1, r7, r7
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_022345B2: ; jump table
- .short _02234644 - _022345B2 - 2 ; case 0
- .short _02234644 - _022345B2 - 2 ; case 1
- .short _02234644 - _022345B2 - 2 ; case 2
- .short _02234644 - _022345B2 - 2 ; case 3
- .short _02234644 - _022345B2 - 2 ; case 4
- .short _02234644 - _022345B2 - 2 ; case 5
- .short _02234644 - _022345B2 - 2 ; case 6
- .short _022345DC - _022345B2 - 2 ; case 7
- .short _022345E0 - _022345B2 - 2 ; case 8
- .short _022345E6 - _022345B2 - 2 ; case 9
- .short _022345EC - _022345B2 - 2 ; case 10
- .short _022345F2 - _022345B2 - 2 ; case 11
- .short _022345FE - _022345B2 - 2 ; case 12
- .short _02234606 - _022345B2 - 2 ; case 13
- .short _02234610 - _022345B2 - 2 ; case 14
- .short _02234616 - _022345B2 - 2 ; case 15
- .short _0223461C - _022345B2 - 2 ; case 16
- .short _02234626 - _022345B2 - 2 ; case 17
- .short _0223462C - _022345B2 - 2 ; case 18
- .short _02234638 - _022345B2 - 2 ; case 19
- .short _0223463E - _022345B2 - 2 ; case 20
-_022345DC:
- str r4, [sp, #0xc]
- b _02234648
-_022345E0:
- add r0, r0, r4
- str r0, [sp, #0xc]
- b _02234648
-_022345E6:
- sub r0, r0, r4
- str r0, [sp, #0xc]
- b _02234648
-_022345EC:
- orr r0, r4
- str r0, [sp, #0xc]
- b _02234648
-_022345F2:
- mov r1, #0
- mvn r1, r1
- eor r1, r4
- and r0, r1
- str r0, [sp, #0xc]
- b _02234648
-_022345FE:
- add r1, r0, #0
- mul r1, r4
- str r1, [sp, #0xc]
- b _02234648
-_02234606:
- add r1, r4, #0
- bl _s32_div_f
- str r0, [sp, #0xc]
- b _02234648
-_02234610:
- lsl r0, r4
- str r0, [sp, #0xc]
- b _02234648
-_02234616:
- asr r0, r4
- str r0, [sp, #0xc]
- b _02234648
-_0223461C:
- add r0, r4, #0
- bl MaskOfFlagNo
- str r0, [sp, #0xc]
- b _02234648
-_02234626:
- bl ErrorHandling
- b _02234648
-_0223462C:
- sub r0, r0, r4
- str r0, [sp, #0xc]
- bpl _02234648
- mov r0, #0
- str r0, [sp, #0xc]
- b _02234648
-_02234638:
- eor r0, r4
- str r0, [sp, #0xc]
- b _02234648
-_0223463E:
- and r0, r4
- str r0, [sp, #0xc]
- b _02234648
-_02234644:
- bl ErrorHandling
-_02234648:
- cmp r6, #0x1a
- bne _0223465E
- ldr r1, [sp, #4]
- ldr r2, [sp, #0xc]
- lsl r1, r1, #0x18
- lsl r2, r2, #0x18
- add r0, r5, #0
- lsr r1, r1, #0x18
- lsr r2, r2, #0x18
- bl MOD11_0223D1C4
-_0223465E:
- ldr r1, [sp, #4]
- add r0, r5, #0
- add r2, r6, #0
- add r3, sp, #0xc
- bl MOD11_0224379C
- ldr r0, [sp]
- ldr r2, [sp, #4]
- add r1, r5, #0
- bl MOD11_02245190
- mov r0, #0
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0223467C
-MOD11_0223467C: ; 0x0223467C
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r6, #0
- add r1, r5, #0
- add r2, r7, #0
- bl MOD11_0223C230
- ldr r1, _022346B4 ; =0x0000218C
- add r2, r5, r1
- lsl r1, r0, #2
- ldr r0, [r2, r1]
- orr r0, r4
- str r0, [r2, r1]
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022346B4: .word 0x0000218C
-
- thumb_func_start MOD11_022346B8
-MOD11_022346B8: ; 0x022346B8
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r5, #0
- add r2, r7, #0
- bl MOD11_02255D3C
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022346F0
-MOD11_022346F0: ; 0x022346F0
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r5, r1, #0
- str r0, [sp]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- str r0, [sp, #8]
- cmp r4, #0
- bne _02234766
- ldr r0, [sp]
- bl MOD11_0222FF84
- mov r4, #0
- str r0, [sp, #4]
- cmp r0, #0
- ble _022347A8
-_02234732:
- cmp r7, #0
- bne _02234750
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r6, r0
- bne _0223475C
- ldr r1, [sp, #8]
- add r0, r5, #0
- bl MOD11_0223A424
- add r5, #0x80
- str r4, [r5]
- b _022347A8
-_02234750:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r6, r0
- beq _022347A8
-_0223475C:
- ldr r0, [sp, #4]
- add r4, r4, #1
- cmp r4, r0
- blt _02234732
- b _022347A8
-_02234766:
- ldr r0, [sp]
- add r1, r5, #0
- add r2, r4, #0
- bl MOD11_0223C230
- add r4, r0, #0
- cmp r7, #0
- bne _02234790
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r6, r0
- bne _022347A8
- ldr r1, [sp, #8]
- add r0, r5, #0
- bl MOD11_0223A424
- add r5, #0x80
- str r4, [r5]
- b _022347A8
-_02234790:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r6, r0
- beq _022347A8
- ldr r1, [sp, #8]
- add r0, r5, #0
- bl MOD11_0223A424
- add r5, #0x80
- str r4, [r5]
-_022347A8:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022347B0
-MOD11_022347B0: ; 0x022347B0
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- add r6, r0, #0
- bl rand_LC
- add r1, r4, #1
- bl _s32_div_f
- mov r0, #0x4d
- add r1, r6, r1
- lsl r0, r0, #2
- str r1, [r5, r0]
- mov r0, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022347E4
-MOD11_022347E4: ; 0x022347E4
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r7, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- str r0, [sp]
- add r0, r7, #0
- add r1, r5, #0
- add r2, r4, #0
- bl MOD11_0223A444
- add r4, r0, #0
- ldr r2, [sp]
- add r0, r7, #0
- add r1, r5, #0
- bl MOD11_0223A444
- add r1, r0, #0
- cmp r6, #0x14
- bhi _022348F2
- add r0, r6, r6
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02234832: ; jump table
- .short _022348F2 - _02234832 - 2 ; case 0
- .short _022348F2 - _02234832 - 2 ; case 1
- .short _022348F2 - _02234832 - 2 ; case 2
- .short _022348F2 - _02234832 - 2 ; case 3
- .short _022348F2 - _02234832 - 2 ; case 4
- .short _022348F2 - _02234832 - 2 ; case 5
- .short _022348F2 - _02234832 - 2 ; case 6
- .short _0223485C - _02234832 - 2 ; case 7
- .short _02234862 - _02234832 - 2 ; case 8
- .short _0223486C - _02234832 - 2 ; case 9
- .short _02234876 - _02234832 - 2 ; case 10
- .short _02234880 - _02234832 - 2 ; case 11
- .short _02234890 - _02234832 - 2 ; case 12
- .short _0223489A - _02234832 - 2 ; case 13
- .short _022348A6 - _02234832 - 2 ; case 14
- .short _022348B2 - _02234832 - 2 ; case 15
- .short _022348BE - _02234832 - 2 ; case 16
- .short _022348C8 - _02234832 - 2 ; case 17
- .short _022348CE - _02234832 - 2 ; case 18
- .short _022348DE - _02234832 - 2 ; case 19
- .short _022348E8 - _02234832 - 2 ; case 20
-_0223485C:
- ldr r0, [r1]
- str r0, [r4]
- b _022348F6
-_02234862:
- ldr r2, [r4]
- ldr r0, [r1]
- add r0, r2, r0
- str r0, [r4]
- b _022348F6
-_0223486C:
- ldr r2, [r4]
- ldr r0, [r1]
- sub r0, r2, r0
- str r0, [r4]
- b _022348F6
-_02234876:
- ldr r2, [r4]
- ldr r0, [r1]
- orr r0, r2
- str r0, [r4]
- b _022348F6
-_02234880:
- mov r0, #0
- ldr r1, [r1]
- mvn r0, r0
- ldr r2, [r4]
- eor r0, r1
- and r0, r2
- str r0, [r4]
- b _022348F6
-_02234890:
- ldr r2, [r4]
- ldr r0, [r1]
- mul r0, r2
- str r0, [r4]
- b _022348F6
-_0223489A:
- ldr r0, [r4]
- ldr r1, [r1]
- bl _s32_div_f
- str r0, [r4]
- b _022348F6
-_022348A6:
- ldr r2, [r4]
- ldr r0, [r1]
- add r1, r2, #0
- lsl r1, r0
- str r1, [r4]
- b _022348F6
-_022348B2:
- ldr r2, [r4]
- ldr r0, [r1]
- add r1, r2, #0
- asr r1, r0
- str r1, [r4]
- b _022348F6
-_022348BE:
- ldr r0, [r1]
- bl MaskOfFlagNo
- str r0, [r4]
- b _022348F6
-_022348C8:
- ldr r0, [r4]
- str r0, [r1]
- b _022348F6
-_022348CE:
- ldr r2, [r4]
- ldr r0, [r1]
- sub r0, r2, r0
- str r0, [r4]
- bpl _022348F6
- mov r0, #0
- str r0, [r4]
- b _022348F6
-_022348DE:
- ldr r2, [r4]
- ldr r0, [r1]
- eor r0, r2
- str r0, [r4]
- b _022348F6
-_022348E8:
- ldr r2, [r4]
- ldr r0, [r1]
- and r0, r2
- str r0, [r4]
- b _022348F6
-_022348F2:
- bl ErrorHandling
-_022348F6:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022348FC
-MOD11_022348FC: ; 0x022348FC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r4, r1, #0
- add r7, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r5, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp, #4]
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp, #8]
- ldr r2, [sp, #4]
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_0223C230
- str r0, [sp]
- ldr r1, [sp]
- add r0, r4, #0
- add r2, r6, #0
- mov r3, #0
- bl MOD11_02243420
- str r0, [sp, #0xc]
- ldr r2, [sp, #8]
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_0223A444
- add r1, r0, #0
- cmp r5, #0x14
- bhi _02234A22
- add r0, r5, r5
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02234962: ; jump table
- .short _02234A22 - _02234962 - 2 ; case 0
- .short _02234A22 - _02234962 - 2 ; case 1
- .short _02234A22 - _02234962 - 2 ; case 2
- .short _02234A22 - _02234962 - 2 ; case 3
- .short _02234A22 - _02234962 - 2 ; case 4
- .short _02234A22 - _02234962 - 2 ; case 5
- .short _02234A22 - _02234962 - 2 ; case 6
- .short _0223498C - _02234962 - 2 ; case 7
- .short _02234992 - _02234962 - 2 ; case 8
- .short _0223499C - _02234962 - 2 ; case 9
- .short _022349A6 - _02234962 - 2 ; case 10
- .short _022349B0 - _02234962 - 2 ; case 11
- .short _022349C0 - _02234962 - 2 ; case 12
- .short _022349CA - _02234962 - 2 ; case 13
- .short _022349D6 - _02234962 - 2 ; case 14
- .short _022349E2 - _02234962 - 2 ; case 15
- .short _022349EE - _02234962 - 2 ; case 16
- .short _022349F8 - _02234962 - 2 ; case 17
- .short _022349FE - _02234962 - 2 ; case 18
- .short _02234A0E - _02234962 - 2 ; case 19
- .short _02234A18 - _02234962 - 2 ; case 20
-_0223498C:
- ldr r0, [r1]
- str r0, [sp, #0xc]
- b _02234A26
-_02234992:
- ldr r2, [sp, #0xc]
- ldr r0, [r1]
- add r0, r2, r0
- str r0, [sp, #0xc]
- b _02234A26
-_0223499C:
- ldr r2, [sp, #0xc]
- ldr r0, [r1]
- sub r0, r2, r0
- str r0, [sp, #0xc]
- b _02234A26
-_022349A6:
- ldr r2, [sp, #0xc]
- ldr r0, [r1]
- orr r0, r2
- str r0, [sp, #0xc]
- b _02234A26
-_022349B0:
- ldr r2, [r1]
- mov r1, #0
- mvn r1, r1
- ldr r0, [sp, #0xc]
- eor r1, r2
- and r0, r1
- str r0, [sp, #0xc]
- b _02234A26
-_022349C0:
- ldr r2, [sp, #0xc]
- ldr r0, [r1]
- mul r0, r2
- str r0, [sp, #0xc]
- b _02234A26
-_022349CA:
- ldr r0, [sp, #0xc]
- ldr r1, [r1]
- bl _s32_div_f
- str r0, [sp, #0xc]
- b _02234A26
-_022349D6:
- ldr r2, [sp, #0xc]
- ldr r0, [r1]
- add r1, r2, #0
- lsl r1, r0
- str r1, [sp, #0xc]
- b _02234A26
-_022349E2:
- ldr r2, [sp, #0xc]
- ldr r0, [r1]
- add r1, r2, #0
- asr r1, r0
- str r1, [sp, #0xc]
- b _02234A26
-_022349EE:
- ldr r0, [r1]
- bl MaskOfFlagNo
- str r0, [sp, #0xc]
- b _02234A26
-_022349F8:
- ldr r0, [sp, #0xc]
- str r0, [r1]
- b _02234A26
-_022349FE:
- ldr r2, [sp, #0xc]
- ldr r0, [r1]
- sub r0, r2, r0
- str r0, [sp, #0xc]
- bpl _02234A26
- mov r0, #0
- str r0, [sp, #0xc]
- b _02234A26
-_02234A0E:
- ldr r2, [sp, #0xc]
- ldr r0, [r1]
- eor r0, r2
- str r0, [sp, #0xc]
- b _02234A26
-_02234A18:
- ldr r2, [sp, #0xc]
- ldr r0, [r1]
- and r0, r2
- str r0, [sp, #0xc]
- b _02234A26
-_02234A22:
- bl ErrorHandling
-_02234A26:
- cmp r5, #0x11
- beq _02234A56
- cmp r6, #0x1a
- bne _02234A40
- ldr r1, [sp]
- ldr r2, [sp, #0xc]
- lsl r1, r1, #0x18
- lsl r2, r2, #0x18
- add r0, r4, #0
- lsr r1, r1, #0x18
- lsr r2, r2, #0x18
- bl MOD11_0223D1C4
-_02234A40:
- ldr r1, [sp]
- add r0, r4, #0
- add r2, r6, #0
- add r3, sp, #0xc
- bl MOD11_0224379C
- ldr r2, [sp]
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_02245190
-_02234A56:
- mov r0, #0
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02234A5C
-MOD11_02234A5C: ; 0x02234A5C
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r1, r0, #0
- add r0, r4, #0
- bl MOD11_0223A424
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02234A7C
-MOD11_02234A7C: ; 0x02234A7C
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A43C
- mov r0, #0
- pop {r4, pc}
-
- thumb_func_start MOD11_02234A9C
-MOD11_02234A9C: ; 0x02234A9C
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223A444
- add r2, r0, #0
- ldr r2, [r2]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A43C
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02234ACC
-MOD11_02234ACC: ; 0x02234ACC
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r5, r1, #0
- str r0, [sp, #8]
- mov r4, #0
- bl MOD11_0222FF74
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r1, [r5, #0x64]
- lsl r0, r1, #1
- add r2, r5, r0
- ldr r0, _02234BCC ; =0x00003084
- ldrh r2, [r2, r0]
- cmp r2, #0
- beq _02234AF6
- add r4, r2, #0
- b _02234B40
-_02234AF6:
- mov r2, #2
- tst r2, r6
- beq _02234B40
- lsl r1, r1, #3
- add r3, r5, r1
- add r1, r0, #0
- add r1, #0xe
- add r4, r0, #0
- ldrh r2, [r3, r1]
- add r1, r0, #0
- add r4, #8
- add r0, #0xa
- add r1, #0xc
- ldrh r4, [r3, r4]
- ldrh r0, [r3, r0]
- ldrh r1, [r3, r1]
- add r0, r4, r0
- add r0, r1, r0
- add r4, r2, r0
- beq _02234B40
- ldr r6, _02234BD0 ; =0x0000308C
- mov r7, #0x1e
-_02234B22:
- bl rand_LC
- lsr r2, r0, #0x1f
- lsl r0, r0, #0x1e
- ldr r1, [r5, #0x64]
- sub r0, r0, r2
- ror r0, r7
- add r0, r2, r0
- lsl r1, r1, #3
- lsl r2, r0, #1
- add r0, r5, r1
- add r0, r2, r0
- ldrh r4, [r0, r6]
- cmp r4, #0
- beq _02234B22
-_02234B40:
- cmp r4, #0
- beq _02234BAA
- lsl r1, r4, #0x10
- add r0, r5, #0
- lsr r1, r1, #0x10
- bl MOD11_0224C0B4
- cmp r0, #1
- bne _02234BAA
- ldr r1, _02234BD4 ; =0x0000213C
- lsl r3, r4, #0x10
- ldr r2, [r5, r1]
- mov r0, #1
- bic r2, r0
- str r2, [r5, r1]
- ldr r2, [r5, r1]
- ldr r0, _02234BD8 ; =0xFFFFBFFF
- lsr r3, r3, #0x10
- and r0, r2
- str r0, [r5, r1]
- ldr r0, _02234BDC ; =0x00003044
- add r1, r5, #0
- str r4, [r5, r0]
- mov r0, #1
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- ldr r0, [sp, #8]
- ldr r2, [r5, #0x64]
- bl MOD11_02244C28
- str r0, [r5, #0x6c]
- cmp r0, #0xff
- bne _02234B94
- mov r2, #0x26
- str r2, [r5, #0xc]
- add r0, r5, #0
- mov r1, #1
- add r2, #0xf3
- bl MOD11_0223A434
- b _02234BC4
-_02234B94:
- ldr r1, [r5, #0x64]
- lsl r1, r1, #4
- add r2, r5, r1
- ldr r1, _02234BE0 ; =0x000021AC
- str r0, [r2, r1]
- add r0, r5, #0
- mov r1, #0
- add r2, r4, #0
- bl MOD11_0223A434
- b _02234BC4
-_02234BAA:
- ldr r2, [r5, #0x64]
- mov r0, #0xb5
- lsl r0, r0, #2
- mov r1, #0x1c
- add r3, r2, #0
- mul r3, r1
- add r0, r5, r0
- ldr r2, [r0, r3]
- mov r1, #1
- bic r2, r1
- mov r1, #1
- orr r1, r2
- str r1, [r0, r3]
-_02234BC4:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- nop
-_02234BCC: .word 0x00003084
-_02234BD0: .word 0x0000308C
-_02234BD4: .word 0x0000213C
-_02234BD8: .word 0xFFFFBFFF
-_02234BDC: .word 0x00003044
-_02234BE0: .word 0x000021AC
-
- thumb_func_start MOD11_02234BE4
-MOD11_02234BE4: ; 0x02234BE4
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0222FF84
- mov r2, #0
- cmp r0, #0
- ble _02234C24
- ldr r6, _02234C28 ; =0x00002D58
- mov r1, #6
- add r5, r6, #0
- add r5, #0x58
-_02234C06:
- mov r7, #0
-_02234C08:
- add r3, r4, r7
- add r7, r7, #1
- strb r1, [r3, r6]
- cmp r7, #8
- blt _02234C08
- ldr r3, _02234C2C ; =0x00002DB0
- add r2, r2, #1
- ldr r7, [r4, r3]
- ldr r3, _02234C30 ; =0xFFEFFFFF
- and r3, r7
- str r3, [r4, r5]
- add r4, #0xc0
- cmp r2, r0
- blt _02234C06
-_02234C24:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02234C28: .word 0x00002D58
-_02234C2C: .word 0x00002DB0
-_02234C30: .word 0xFFEFFFFF
-
- thumb_func_start MOD11_02234C34
-MOD11_02234C34: ; 0x02234C34
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_022451C0
- mov r0, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02234C60
-MOD11_02234C60: ; 0x02234C60
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_022451F0
- mov r0, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02234C8C
-MOD11_02234C8C: ; 0x02234C8C
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r5, #0
- add r2, r7, #0
- bl MOD11_02255E0C
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02234CC4
-MOD11_02234CC4: ; 0x02234CC4
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r5, #0
- add r2, r7, #0
- bl MOD11_02255E2C
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02234CFC
-MOD11_02234CFC: ; 0x02234CFC
- push {r4, r5, r6, r7, lr}
- sub sp, #0x3c
- add r7, r0, #0
- add r5, r1, #0
- str r2, [sp]
- mov r0, #5
- mov r1, #0x60
- bl AllocFromHeap
- add r4, r0, #0
- ldr r0, [sp]
- add r6, r7, #0
- lsl r0, r0, #1
- add r6, #0xa0
- str r0, [sp, #4]
- ldrh r0, [r6, r0]
- add r1, sp, #8
- bl FUN_0206ADE0
- ldr r0, [sp, #4]
- add r1, r4, #0
- ldrh r0, [r6, r0]
- bl FUN_0206ADF0
- add r0, sp, #8
- ldrb r1, [r0]
- cmp r1, #3
- bhi _02234D48
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02234D40: ; jump table
- .short _02234D48 - _02234D40 - 2 ; case 0
- .short _02234D5C - _02234D40 - 2 ; case 1
- .short _02234D6E - _02234D40 - 2 ; case 2
- .short _02234D7E - _02234D40 - 2 ; case 3
-_02234D48:
- add r0, sp, #8
- ldrb r0, [r0, #3]
- sub r1, r0, #1
- mov r0, #6
- mul r0, r1
- add r0, r4, r0
- ldrh r0, [r0, #2]
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- b _02234D8C
-_02234D5C:
- ldrb r0, [r0, #3]
- sub r1, r0, #1
- mov r0, #0xe
- mul r0, r1
- add r0, r4, r0
- ldrh r0, [r0, #2]
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- b _02234D8C
-_02234D6E:
- ldrb r0, [r0, #3]
- sub r0, r0, #1
- lsl r0, r0, #3
- add r0, r4, r0
- ldrh r0, [r0, #2]
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- b _02234D8C
-_02234D7E:
- ldrb r0, [r0, #3]
- sub r0, r0, #1
- lsl r0, r0, #4
- add r0, r4, r0
- ldrh r0, [r0, #2]
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
-_02234D8C:
- ldr r2, [r7, #0x2c]
- mov r0, #0x10
- tst r0, r2
- bne _02234D98
- cmp r2, #0x4b
- bne _02234DAE
-_02234D98:
- add r0, sp, #8
- ldrb r2, [r0, #1]
- ldr r0, _02234DEC ; =0x0225FF20
- lsl r1, r1, #2
- ldrb r0, [r0, r2]
- ldr r2, _02234DF0 ; =0x00002168
- ldr r2, [r5, r2]
- add r5, r0, #0
- mul r1, r2
- mul r5, r1
- b _02234DDE
-_02234DAE:
- mov r0, #2
- tst r0, r2
- add r0, sp, #8
- beq _02234DCC
- ldrb r2, [r0, #1]
- ldr r0, _02234DEC ; =0x0225FF20
- lsl r1, r1, #2
- ldrb r0, [r0, r2]
- ldr r2, _02234DF0 ; =0x00002168
- ldr r2, [r5, r2]
- add r5, r0, #0
- mul r1, r2
- lsl r1, r1, #1
- mul r5, r1
- b _02234DDE
-_02234DCC:
- ldrb r2, [r0, #1]
- ldr r0, _02234DEC ; =0x0225FF20
- lsl r1, r1, #2
- ldrb r0, [r0, r2]
- ldr r2, _02234DF0 ; =0x00002168
- ldr r2, [r5, r2]
- add r5, r0, #0
- mul r1, r2
- mul r5, r1
-_02234DDE:
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- add sp, #0x3c
- pop {r4, r5, r6, r7, pc}
- nop
-_02234DEC: .word 0x0225FF20
-_02234DF0: .word 0x00002168
-
- thumb_func_start MOD11_02234DF4
-MOD11_02234DF4: ; 0x02234DF4
- push {r4, r5, r6, lr}
- add r6, r1, #0
- add r5, r0, #0
- add r0, r6, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r0, _02234E70 ; =0x0000241C
- ldrb r0, [r5, r0]
- cmp r0, #1
- bne _02234E3E
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #1
- bl MOD11_02234CFC
- add r4, r0, #0
- ldr r1, [r5, #0x2c]
- mov r0, #0x10
- tst r0, r1
- bne _02234E22
- cmp r1, #0x4b
- bne _02234E2E
-_02234E22:
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #3
- bl MOD11_02234CFC
- add r4, r4, r0
-_02234E2E:
- add r0, r5, #0
- mov r1, #0
- bl MOD11_022301D4
- add r1, r4, #0
- bl FUN_02023A30
- b _02234E56
-_02234E3E:
- ldr r0, [r5, #0x68]
- ldr r1, [r5, #0x48]
- bl MOD11_0223158C
- add r4, r0, #0
- add r0, r5, #0
- mov r1, #0
- bl MOD11_022301D4
- add r1, r4, #0
- bl FUN_02023A54
-_02234E56:
- cmp r4, #0
- beq _02234E62
- mov r0, #0x13
- lsl r0, r0, #4
- str r4, [r6, r0]
- b _02234E6A
-_02234E62:
- mov r0, #0x13
- mov r1, #0
- lsl r0, r0, #4
- str r1, [r6, r0]
-_02234E6A:
- mov r0, #0
- pop {r4, r5, r6, pc}
- nop
-_02234E70: .word 0x0000241C
-
- thumb_func_start MOD11_02234E74
-MOD11_02234E74: ; 0x02234E74
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r6, #0
- bl MOD11_02230E20
- cmp r0, #1
- beq _02234EAC
- cmp r4, #0xf
- beq _02234EAC
- cmp r4, #0x10
- beq _02234EAC
- add r0, r4, #0
- sub r0, #0x19
- cmp r0, #1
- bhi _02234ED2
-_02234EAC:
- add r0, r6, #0
- add r1, r5, #0
- add r2, r7, #0
- bl MOD11_0223C230
- add r7, r0, #0
- add r0, r5, #0
- add r1, r7, #0
- add r2, r4, #0
- bl MOD11_0224C20C
- cmp r0, #1
- bne _02234ED2
- add r0, r6, #0
- add r1, r5, #0
- add r2, r7, #0
- add r3, r4, #0
- bl MOD11_02255E4C
-_02234ED2:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02234ED8
-MOD11_02234ED8: ; 0x02234ED8
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- str r0, [sp, #4]
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r6, #0
- bl MOD11_02230E20
- cmp r0, #1
- beq _02234F1A
- cmp r4, #0xf
- beq _02234F1A
- cmp r4, #0x10
- beq _02234F1A
- add r0, r4, #0
- sub r0, #0x19
- cmp r0, #1
- bhi _02234F5C
-_02234F1A:
- add r0, r6, #0
- add r1, r5, #0
- add r2, r7, #0
- bl MOD11_0223C230
- add r7, r0, #0
- ldr r2, [sp, #4]
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_0223C230
- str r0, [sp, #8]
- add r0, r5, #0
- add r1, r7, #0
- add r2, r4, #0
- bl MOD11_0224C20C
- cmp r0, #1
- bne _02234F5C
- ldr r1, [sp, #8]
- add r0, r5, #0
- add r2, r4, #0
- bl MOD11_0224C20C
- cmp r0, #1
- bne _02234F5C
- ldr r3, [sp, #8]
- add r0, r6, #0
- add r1, r5, #0
- add r2, r7, #0
- str r4, [sp]
- bl MOD11_02255E7C
-_02234F5C:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02234F64
-MOD11_02234F64: ; 0x02234F64
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r7, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r7, #0
- add r1, r5, #0
- add r2, r4, #0
- bl MOD11_0223C230
- str r0, [sp]
- add r0, r7, #0
- add r1, r5, #0
- add r2, r6, #0
- bl MOD11_0223A444
- add r4, r0, #0
- add r0, r7, #0
- bl MOD11_02230E20
- cmp r0, #1
- beq _02234FB4
- cmp r6, #0xf
- beq _02234FB4
- cmp r6, #0x10
- beq _02234FB4
- ldr r0, [r4]
- sub r0, #0x19
- cmp r0, #1
- bhi _02234FCE
-_02234FB4:
- ldr r1, [sp]
- ldr r2, [r4]
- add r0, r5, #0
- bl MOD11_0224C20C
- cmp r0, #1
- bne _02234FCE
- ldr r2, [sp]
- ldr r3, [r4]
- add r0, r7, #0
- add r1, r5, #0
- bl MOD11_02255E4C
-_02234FCE:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02234FD4
-MOD11_02234FD4: ; 0x02234FD4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r2, r0, #0
- add r1, r4, #0
- ldr r3, _02235008 ; =0x0000219C
- add r4, r4, r2
- ldrb r3, [r4, r3]
- add r0, r5, #0
- bl MOD11_02255EAC
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02235008: .word 0x0000219C
-
- thumb_func_start MOD11_0223500C
-MOD11_0223500C: ; 0x0223500C
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r2, r0, #0
- add r1, r4, #0
- ldr r3, _02235040 ; =0x0000219C
- add r4, r4, r2
- ldrb r3, [r4, r3]
- add r0, r5, #0
- bl MOD11_02255EF0
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02235040: .word 0x0000219C
-
- thumb_func_start MOD11_02235044
-MOD11_02235044: ; 0x02235044
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02255F3C
- mov r0, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02235070
-MOD11_02235070: ; 0x02235070
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02255F54
- mov r0, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_0223509C
-MOD11_0223509C: ; 0x0223509C
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- mov r2, #0x13
- lsl r2, r2, #4
- add r1, r0, #0
- ldr r2, [r4, r2]
- add r0, r5, #0
- bl MOD11_02255E2C
- mov r0, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_022350CC
-MOD11_022350CC: ; 0x022350CC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp]
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x79
- bne _022350FC
- ldr r1, [sp]
- add r0, r4, #0
- bl MOD11_0223A424
- add sp, #8
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_022350FC:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r4, r0
- ldr r0, _02235238 ; =0x00002D4C
- mov r6, #0
-_02235108:
- ldrh r1, [r2, r0]
- cmp r1, #0
- beq _02235116
- add r6, r6, #1
- add r2, r2, #2
- cmp r6, #4
- blt _02235108
-_02235116:
- mov r0, #0
- str r0, [sp, #4]
- cmp r6, #0
- ble _0223518E
- add r7, r0, #0
-_02235120:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r0, r4, r0
- add r2, r7, r0
- ldr r0, _02235238 ; =0x00002D4C
- ldrh r0, [r2, r0]
- cmp r0, #0xa0
- beq _02235182
- lsl r0, r0, #4
- add r2, r4, r0
- ldr r0, _0223523C ; =0x000003E2
- ldrb r5, [r2, r0]
- cmp r5, #9
- bne _02235162
- add r0, r4, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #7
- beq _0223515C
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #7
- bne _02235160
-_0223515C:
- mov r5, #7
- b _02235162
-_02235160:
- mov r5, #0
-_02235162:
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- cmp r5, r0
- beq _02235182
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- cmp r5, r0
- bne _0223518E
-_02235182:
- ldr r0, [sp, #4]
- add r7, r7, #2
- add r0, r0, #1
- str r0, [sp, #4]
- cmp r0, r6
- blt _02235120
-_0223518E:
- ldr r0, [sp, #4]
- cmp r0, r6
- bne _0223519E
- ldr r1, [sp]
- add r0, r4, #0
- bl MOD11_0223A424
- b _02235230
-_0223519E:
- ldr r7, _02235238 ; =0x00002D4C
-_022351A0:
- bl rand_LC
- add r1, r6, #0
- bl _s32_div_f
- ldr r2, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r2
- lsl r1, r1, #1
- add r0, r4, r0
- add r0, r1, r0
- ldrh r0, [r0, r7]
- cmp r0, #0xa0
- beq _022351A0
- lsl r0, r0, #4
- add r1, r4, r0
- ldr r0, _0223523C ; =0x000003E2
- ldrb r5, [r1, r0]
- cmp r5, #9
- bne _022351EE
- add r1, r2, #0
- add r0, r4, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #7
- beq _022351E8
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #7
- bne _022351EC
-_022351E8:
- mov r5, #7
- b _022351EE
-_022351EC:
- mov r5, #0
-_022351EE:
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- cmp r5, r0
- beq _022351A0
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- cmp r5, r0
- beq _022351A0
- ldr r1, [r4, #0x64]
- lsl r0, r5, #0x18
- add r3, r1, #0
- mov r2, #0xc0
- mul r3, r2
- ldr r1, _02235240 ; =0x00002D64
- lsr r0, r0, #0x18
- add r3, r4, r3
- strb r0, [r3, r1]
- ldr r3, [r4, #0x64]
- add r1, r1, #1
- add r6, r3, #0
- mul r6, r2
- add r3, r4, r6
- strb r0, [r3, r1]
- add r2, #0x70
- str r5, [r4, r2]
-_02235230:
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02235238: .word 0x00002D4C
-_0223523C: .word 0x000003E2
-_02235240: .word 0x00002D64
-
- thumb_func_start MOD11_02235244
-MOD11_02235244: ; 0x02235244
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r6, r1, #0
- str r0, [sp]
- add r0, r6, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r6, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r6, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r6, #0
- bl MOD11_0223A404
- str r0, [sp, #4]
- add r0, r6, #0
- bl MOD11_0223A404
- add r5, r0, #0
- ldr r0, [sp]
- add r1, r6, #0
- add r2, r4, #0
- bl MOD11_0223A444
- add r4, r0, #0
- ldr r0, [sp]
- ldr r2, [sp, #4]
- add r1, r6, #0
- bl MOD11_0223A444
- cmp r7, #6
- bhi _022352FC
- add r1, r7, r7
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0223529A: ; jump table
- .short _022352A8 - _0223529A - 2 ; case 0
- .short _022352B4 - _0223529A - 2 ; case 1
- .short _022352C0 - _0223529A - 2 ; case 2
- .short _022352CC - _0223529A - 2 ; case 3
- .short _022352D8 - _0223529A - 2 ; case 4
- .short _022352E4 - _0223529A - 2 ; case 5
- .short _022352F0 - _0223529A - 2 ; case 6
-_022352A8:
- ldr r1, [r4]
- ldr r0, [r0]
- cmp r1, r0
- beq _022352FC
- mov r5, #0
- b _022352FC
-_022352B4:
- ldr r1, [r4]
- ldr r0, [r0]
- cmp r1, r0
- bne _022352FC
- mov r5, #0
- b _022352FC
-_022352C0:
- ldr r1, [r4]
- ldr r0, [r0]
- cmp r1, r0
- bhi _022352FC
- mov r5, #0
- b _022352FC
-_022352CC:
- ldr r1, [r4]
- ldr r0, [r0]
- cmp r1, r0
- bls _022352FC
- mov r5, #0
- b _022352FC
-_022352D8:
- ldr r1, [r4]
- ldr r0, [r0]
- tst r0, r1
- bne _022352FC
- mov r5, #0
- b _022352FC
-_022352E4:
- ldr r1, [r4]
- ldr r0, [r0]
- tst r0, r1
- beq _022352FC
- mov r5, #0
- b _022352FC
-_022352F0:
- ldr r1, [r0]
- ldr r0, [r4]
- and r0, r1
- cmp r1, r0
- beq _022352FC
- mov r5, #0
-_022352FC:
- cmp r5, #0
- beq _02235308
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_0223A424
-_02235308:
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02235310
-MOD11_02235310: ; 0x02235310
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r6, r1, #0
- str r0, [sp]
- add r0, r6, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r6, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r6, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r6, #0
- bl MOD11_0223A404
- str r0, [sp, #4]
- add r0, r6, #0
- bl MOD11_0223A404
- str r0, [sp, #8]
- add r0, r6, #0
- bl MOD11_0223A404
- add r5, r0, #0
- ldr r0, [sp]
- add r1, r6, #0
- add r2, r4, #0
- bl MOD11_0223C230
- add r1, r0, #0
- ldr r2, [sp, #4]
- add r0, r6, #0
- mov r3, #0
- bl MOD11_02243420
- add r4, r0, #0
- ldr r0, [sp]
- ldr r2, [sp, #8]
- add r1, r6, #0
- bl MOD11_0223A444
- cmp r7, #6
- bhi _022353D0
- add r1, r7, r7
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0223537A: ; jump table
- .short _02235388 - _0223537A - 2 ; case 0
- .short _02235392 - _0223537A - 2 ; case 1
- .short _0223539C - _0223537A - 2 ; case 2
- .short _022353A6 - _0223537A - 2 ; case 3
- .short _022353B0 - _0223537A - 2 ; case 4
- .short _022353BA - _0223537A - 2 ; case 5
- .short _022353C4 - _0223537A - 2 ; case 6
-_02235388:
- ldr r0, [r0]
- cmp r4, r0
- beq _022353D0
- mov r5, #0
- b _022353D0
-_02235392:
- ldr r0, [r0]
- cmp r4, r0
- bne _022353D0
- mov r5, #0
- b _022353D0
-_0223539C:
- ldr r0, [r0]
- cmp r4, r0
- bhi _022353D0
- mov r5, #0
- b _022353D0
-_022353A6:
- ldr r0, [r0]
- cmp r4, r0
- bls _022353D0
- mov r5, #0
- b _022353D0
-_022353B0:
- ldr r0, [r0]
- tst r0, r4
- bne _022353D0
- mov r5, #0
- b _022353D0
-_022353BA:
- ldr r0, [r0]
- tst r0, r4
- beq _022353D0
- mov r5, #0
- b _022353D0
-_022353C4:
- ldr r1, [r0]
- add r0, r1, #0
- and r0, r4
- cmp r1, r0
- beq _022353D0
- mov r5, #0
-_022353D0:
- cmp r5, #0
- beq _022353DC
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_0223A424
-_022353DC:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022353E4
-MOD11_022353E4: ; 0x022353E4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- mov r0, #0x53
- lsl r0, r0, #2
- ldr r1, _0223542C ; =0x00002168
- ldr r2, [r4, r0]
- ldr r1, [r4, r1]
- add r3, r2, #0
- mul r3, r1
- add r1, r0, #0
- sub r1, #0x1c
- str r3, [r4, r1]
- add r1, r0, #0
- sub r1, #0x1c
- ldr r2, [r4, r1]
- ldr r1, _02235430 ; =0x0000FFFF
- cmp r2, r1
- ble _02235416
- sub r0, #0x1c
- str r1, [r4, r0]
-_02235416:
- add r0, r5, #0
- mov r1, #0
- bl MOD11_022301D4
- mov r1, #0x13
- lsl r1, r1, #4
- ldr r1, [r4, r1]
- bl FUN_02023A30
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0223542C: .word 0x00002168
-_02235430: .word 0x0000FFFF
-
- thumb_func_start MOD11_02235434
-MOD11_02235434: ; 0x02235434
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r7, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- str r0, [sp]
- ldr r1, [r5, #0x64]
- add r0, r7, #0
- bl MOD11_02230270
- add r6, r0, #0
- mov r0, #0x6f
- lsl r0, r0, #2
- add r3, r5, r0
- lsl r2, r6, #2
- ldr r1, [r3, r2]
- mov r4, #2
- tst r4, r1
- beq _02235478
- ldr r1, [sp]
- add r0, r5, #0
- bl MOD11_0223A424
- ldr r1, _02235508 ; =0x0000216C
- mov r0, #0x40
- ldr r2, [r5, r1]
- orr r0, r2
- str r0, [r5, r1]
- b _02235504
-_02235478:
- mov r4, #2
- orr r1, r4
- str r1, [r3, r2]
- add r1, r0, #0
- add r1, #8
- add r4, r5, r1
- lsl r6, r6, #3
- ldr r2, [r4, r6]
- ldr r1, _0223550C ; =0xFFFFFC7F
- add r0, #0xc4
- and r1, r2
- orr r0, r1
- str r0, [r4, r6]
- ldr r0, [r4, r6]
- mov r1, #0x60
- bic r0, r1
- ldr r1, [r5, #0x64]
- lsl r1, r1, #0x1e
- lsr r1, r1, #0x19
- orr r0, r1
- str r0, [r4, r6]
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_02249D90
- cmp r0, #0x60
- bne _022354CC
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- mov r2, #0
- bl MOD11_02249DA4
- ldr r1, [r4, r6]
- ldr r2, _0223550C ; =0xFFFFFC7F
- and r2, r1
- lsl r1, r1, #0x16
- lsr r1, r1, #0x1d
- add r0, r1, r0
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x16
- orr r0, r2
- str r0, [r4, r6]
-_022354CC:
- add r0, r5, #0
- mov r1, #0x14
- add r0, #0xf5
- strb r1, [r0]
- ldr r0, _02235510 ; =0x00003044
- mov r2, #1
- ldr r1, [r5, r0]
- add r0, r5, #0
- add r0, #0xf8
- str r1, [r0]
- add r0, r5, #0
- ldr r1, [r5, #0x64]
- add r0, #0xfc
- str r1, [r0]
- ldr r3, [r5, #0x64]
- add r0, r7, #0
- add r1, r5, #0
- bl MOD11_022467AC
- cmp r0, #2
- bne _022354FE
- mov r0, #0xc0
- add r5, #0xf6
- strh r0, [r5]
- b _02235504
-_022354FE:
- mov r0, #0xbe
- add r5, #0xf6
- strh r0, [r5]
-_02235504:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02235508: .word 0x0000216C
-_0223550C: .word 0xFFFFFC7F
-_02235510: .word 0x00003044
-
- thumb_func_start MOD11_02235514
-MOD11_02235514: ; 0x02235514
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r7, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- str r0, [sp]
- ldr r1, [r5, #0x64]
- add r0, r7, #0
- bl MOD11_02230270
- add r6, r0, #0
- mov r0, #0x6f
- lsl r0, r0, #2
- add r3, r5, r0
- lsl r2, r6, #2
- ldr r1, [r3, r2]
- mov r4, #1
- tst r4, r1
- beq _02235558
- ldr r1, [sp]
- add r0, r5, #0
- bl MOD11_0223A424
- ldr r1, _022355EC ; =0x0000216C
- mov r0, #0x40
- ldr r2, [r5, r1]
- orr r0, r2
- str r0, [r5, r1]
- b _022355E6
-_02235558:
- mov r4, #1
- orr r1, r4
- add r0, #8
- add r4, r5, r0
- lsl r6, r6, #3
- str r1, [r3, r2]
- ldr r1, [r4, r6]
- mov r0, #0x1c
- bic r1, r0
- mov r0, #0x14
- orr r0, r1
- str r0, [r4, r6]
- ldr r0, [r4, r6]
- mov r1, #3
- bic r0, r1
- ldr r2, [r5, #0x64]
- mov r1, #3
- and r1, r2
- orr r0, r1
- str r0, [r4, r6]
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_02249D90
- cmp r0, #0x60
- bne _022355AE
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- mov r2, #0
- bl MOD11_02249DA4
- ldr r1, [r4, r6]
- add r3, r0, #0
- mov r0, #0x1c
- add r2, r1, #0
- bic r2, r0
- lsl r0, r1, #0x1b
- lsr r0, r0, #0x1d
- add r0, r0, r3
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1b
- orr r0, r2
- str r0, [r4, r6]
-_022355AE:
- add r0, r5, #0
- mov r1, #0x14
- add r0, #0xf5
- strb r1, [r0]
- ldr r0, _022355F0 ; =0x00003044
- mov r2, #1
- ldr r1, [r5, r0]
- add r0, r5, #0
- add r0, #0xf8
- str r1, [r0]
- add r0, r5, #0
- ldr r1, [r5, #0x64]
- add r0, #0xfc
- str r1, [r0]
- ldr r3, [r5, #0x64]
- add r0, r7, #0
- add r1, r5, #0
- bl MOD11_022467AC
- cmp r0, #2
- bne _022355E0
- mov r0, #0xc4
- add r5, #0xf6
- strh r0, [r5]
- b _022355E6
-_022355E0:
- mov r0, #0xc2
- add r5, #0xf6
- strh r0, [r5]
-_022355E6:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022355EC: .word 0x0000216C
-_022355F0: .word 0x00003044
-
- thumb_func_start MOD11_022355F4
-MOD11_022355F4: ; 0x022355F4
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- ldr r1, [r4, #0x64]
- add r0, r5, #0
- bl MOD11_02230270
- mov r5, #0x6f
- add r2, r0, #0
- lsl r5, r5, #2
- add r1, r4, r5
- lsl r0, r2, #2
- ldr r6, [r1, r0]
- mov r3, #0x40
- tst r3, r6
- beq _02235638
- add r0, r4, #0
- add r1, r7, #0
- bl MOD11_0223A424
- ldr r1, _02235668 ; =0x0000216C
- mov r0, #0x40
- ldr r2, [r4, r1]
- orr r0, r2
- str r0, [r4, r1]
- b _02235662
-_02235638:
- mov r3, #0x40
- orr r3, r6
- str r3, [r1, r0]
- add r5, #8
- lsl r0, r2, #3
- add r1, r4, r5
- ldr r3, [r1, r0]
- ldr r2, _0223566C ; =0xFFFF8FFF
- and r3, r2
- mov r2, #5
- lsl r2, r2, #0xc
- orr r2, r3
- str r2, [r1, r0]
- ldr r3, [r1, r0]
- ldr r2, _02235670 ; =0xFFFFF3FF
- and r3, r2
- ldr r2, [r4, #0x64]
- lsl r2, r2, #0x1e
- lsr r2, r2, #0x14
- orr r2, r3
- str r2, [r1, r0]
-_02235662:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02235668: .word 0x0000216C
-_0223566C: .word 0xFFFF8FFF
-_02235670: .word 0xFFFFF3FF
-
- thumb_func_start MOD11_02235674
-MOD11_02235674: ; 0x02235674
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r1, _02235844 ; =0x0000213C
- mov r0, #1
- ldr r2, [r4, r1]
- lsl r0, r0, #0xa
- orr r0, r2
- str r0, [r4, r1]
- ldr r1, [r4, #0x64]
- ldr r2, [r4, #0x6c]
- add r0, r4, #0
- mov r3, #5
- bl MOD11_02246D84
- cmp r0, #1
- bne _022356AA
- ldr r1, _02235848 ; =0x0000216C
- mov r0, #2
- ldr r2, [r4, r1]
- lsl r0, r0, #0x12
- orr r0, r2
- str r0, [r4, r1]
- b _0223583E
-_022356AA:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- mov r0, #0xb7
- lsl r0, r0, #6
- ldr r1, [r1, r0]
- mov r0, #0x18
- tst r0, r1
- bne _02235730
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x63
- beq _02235730
- ldr r1, [r4, #0x6c]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x63
- beq _02235730
- ldr r0, _0223584C ; =0x00003044
- mov r2, #0xc0
- ldr r0, [r4, r0]
- ldr r5, [r4, #0x6c]
- lsl r0, r0, #4
- add r1, r4, r0
- ldr r0, _02235850 ; =0x000003E3
- ldrb r1, [r1, r0]
- ldr r0, [r4, #0x64]
- add r3, r0, #0
- mul r3, r2
- add r0, r4, r3
- ldr r3, _02235854 ; =0x00002D74
- mul r2, r5
- add r2, r4, r2
- ldrb r0, [r0, r3]
- ldrb r2, [r2, r3]
- sub r0, r0, r2
- add r0, r1, r0
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- bl rand_LC
- mov r1, #0x64
- bl _s32_div_f
- cmp r1, r5
- bge _0223572C
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- add r2, r1, #0
- mul r2, r0
- ldr r1, _02235854 ; =0x00002D74
- add r2, r4, r2
- ldrb r3, [r2, r1]
- ldr r2, [r4, #0x6c]
- mul r0, r2
- add r0, r4, r0
- ldrb r0, [r0, r1]
- cmp r3, r0
- blo _0223572C
- mov r3, #1
- b _022357E8
-_0223572C:
- mov r3, #0
- b _022357E8
-_02235730:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r3, r4, r0
- ldr r0, _02235858 ; =0x00002DCC
- ldr r1, [r4, #0x64]
- ldr r2, [r3, r0]
- lsl r2, r2, #0x1e
- lsr r2, r2, #0x1e
- cmp r1, r2
- bne _02235750
- sub r0, #0xc
- ldr r2, [r3, r0]
- mov r0, #0x18
- tst r0, r2
- bne _02235766
-_02235750:
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x63
- beq _02235766
- ldr r1, [r4, #0x6c]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x63
- bne _02235784
-_02235766:
- ldr r0, [r4, #0x64]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- ldr r3, [r4, #0x6c]
- add r0, r4, r2
- ldr r2, _02235854 ; =0x00002D74
- mul r1, r3
- add r1, r4, r1
- ldrb r0, [r0, r2]
- ldrb r1, [r1, r2]
- cmp r0, r1
- blo _02235784
- mov r3, #1
- b _022357DC
-_02235784:
- ldr r0, _0223584C ; =0x00003044
- mov r2, #0xc0
- ldr r0, [r4, r0]
- ldr r5, [r4, #0x6c]
- lsl r0, r0, #4
- add r1, r4, r0
- ldr r0, _02235850 ; =0x000003E3
- ldrb r1, [r1, r0]
- ldr r0, [r4, #0x64]
- add r3, r0, #0
- mul r3, r2
- add r0, r4, r3
- ldr r3, _02235854 ; =0x00002D74
- mul r2, r5
- add r2, r4, r2
- ldrb r0, [r0, r3]
- ldrb r2, [r2, r3]
- sub r0, r0, r2
- add r0, r1, r0
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- bl rand_LC
- mov r1, #0x64
- bl _s32_div_f
- cmp r1, r5
- bge _022357DA
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- add r2, r1, #0
- mul r2, r0
- ldr r1, _02235854 ; =0x00002D74
- add r2, r4, r2
- ldrb r3, [r2, r1]
- ldr r2, [r4, #0x6c]
- mul r0, r2
- add r0, r4, r0
- ldrb r0, [r0, r1]
- cmp r3, r0
- blo _022357DA
- mov r3, #1
- b _022357DC
-_022357DA:
- mov r3, #0
-_022357DC:
- ldr r1, _02235848 ; =0x0000216C
- mov r0, #1
- ldr r2, [r4, r1]
- lsl r0, r0, #0xa
- orr r0, r2
- str r0, [r4, r1]
-_022357E8:
- cmp r3, #0
- beq _0223580E
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0223585C ; =0x00002D8C
- ldr r0, [r1, r0]
- ldr r1, _02235860 ; =0x00002144
- neg r0, r0
- str r0, [r4, r1]
- add r0, r1, #0
- add r0, #0x28
- ldr r2, [r4, r0]
- mov r0, #0x20
- orr r0, r2
- add r1, #0x28
- str r0, [r4, r1]
- b _0223583E
-_0223580E:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- add r2, r1, #0
- mul r2, r0
- ldr r1, _02235854 ; =0x00002D74
- add r2, r4, r2
- ldrb r3, [r2, r1]
- ldr r2, [r4, #0x6c]
- mul r0, r2
- add r0, r4, r0
- ldrb r0, [r0, r1]
- cmp r3, r0
- ldr r1, _02235848 ; =0x0000216C
- blo _02235834
- ldr r2, [r4, r1]
- mov r0, #1
- orr r0, r2
- str r0, [r4, r1]
- b _0223583E
-_02235834:
- mov r0, #1
- ldr r2, [r4, r1]
- lsl r0, r0, #0xc
- orr r0, r2
- str r0, [r4, r1]
-_0223583E:
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02235844: .word 0x0000213C
-_02235848: .word 0x0000216C
-_0223584C: .word 0x00003044
-_02235850: .word 0x000003E3
-_02235854: .word 0x00002D74
-_02235858: .word 0x00002DCC
-_0223585C: .word 0x00002D8C
-_02235860: .word 0x00002144
-
- thumb_func_start MOD11_02235864
-MOD11_02235864: ; 0x02235864
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0223A444
- add r4, r0, #0
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD11_022476C0
- str r0, [r4]
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0223589C
-MOD11_0223589C: ; 0x0223589C
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r6, #0
- add r1, r5, #0
- add r2, r4, #0
- bl MOD11_0223A444
- add r4, r0, #0
- add r0, r6, #0
- add r1, r5, #0
- add r2, r7, #0
- bl MOD11_0223A444
- add r1, r0, #0
- ldr r0, [r4]
- cmp r0, #0
- bge _022358DE
- mov r5, #0
- mvn r5, r5
- b _022358E0
-_022358DE:
- mov r5, #1
-_022358E0:
- ldr r0, [r4]
- ldr r1, [r1]
- bl _s32_div_f
- str r0, [r4]
- cmp r0, #0
- bne _022358F0
- str r5, [r4]
-_022358F0:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_022358F4
-MOD11_022358F4: ; 0x022358F4
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- add r0, r6, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r6, #0
- bl MOD11_0223A404
- str r0, [sp]
- ldr r0, [r6, #0x6c]
- lsl r0, r0, #1
- add r1, r6, r0
- ldr r0, _02235A18 ; =0x0000307C
- ldrh r0, [r1, r0]
- bl MOD11_0224C044
- cmp r0, #0
- beq _0223594E
- ldr r0, [r6, #0x64]
- mov r2, #2
- mov r3, #0xc0
- add r1, r0, #0
- mul r1, r3
- add r0, r6, r1
- ldr r1, _02235A1C ; =0x00002DB0
- mov ip, r0
- ldr r0, [r0, r1]
- lsl r2, r2, #0x14
- tst r0, r2
- bne _0223594E
- ldr r0, [r6, #0x6c]
- add r4, r0, #0
- mul r4, r3
- add r4, r6, r4
- ldr r4, [r4, r1]
- lsl r1, r2, #3
- tst r1, r4
- bne _0223594E
- lsl r0, r0, #1
- add r1, r6, r0
- ldr r0, _02235A18 ; =0x0000307C
- ldrh r7, [r1, r0]
- cmp r7, #0
- bne _02235958
-_0223594E:
- ldr r1, [sp]
- add r0, r6, #0
- bl MOD11_0223A424
- b _02235A14
-_02235958:
- mov r2, #0
- sub r3, #0xc1
- mov r4, ip
- add r5, r2, #0
-_02235960:
- ldr r0, _02235A20 ; =0x00002D4C
- ldrh r0, [r4, r0]
- cmp r7, r0
- beq _02235988
- mov r0, ip
- add r1, r0, r5
- ldr r0, _02235A20 ; =0x00002D4C
- ldrh r0, [r1, r0]
- cmp r0, #0x66
- bne _0223597E
- mov r0, #0
- mvn r0, r0
- cmp r3, r0
- bne _0223597E
- add r3, r2, #0
-_0223597E:
- add r2, r2, #1
- add r4, r4, #2
- add r5, r5, #2
- cmp r2, #4
- blt _02235960
-_02235988:
- cmp r2, #4
- bne _02235A0C
- mov r4, #0x49
- lsl r4, r4, #2
- str r7, [r6, r4]
- ldr r2, [r6, #0x64]
- mov r1, #0xc0
- add r5, r2, #0
- mul r5, r1
- add r5, r6, r5
- lsl r2, r3, #1
- add r5, r5, r2
- ldr r0, [r6, r4]
- ldr r2, _02235A20 ; =0x00002D4C
- strh r0, [r5, r2]
- ldr r0, [r6, r4]
- lsl r0, r0, #4
- add r4, r6, r0
- mov r0, #0xf9
- lsl r0, r0, #2
- ldrb r0, [r4, r0]
- cmp r0, #5
- bhs _022359B8
- b _022359BA
-_022359B8:
- mov r0, #5
-_022359BA:
- ldr r4, [r6, #0x64]
- add r2, #0x20
- mul r1, r4
- add r1, r6, r1
- add r1, r1, r3
- strb r0, [r1, r2]
- add r0, r3, #0
- bl MaskOfFlagNo
- ldr r1, _02235A24 ; =0x00002DCC
- mov r4, #0xc0
- add r3, r6, r1
- ldr r1, [r6, #0x64]
- mov r5, #0x3c
- add r2, r1, #0
- mul r2, r4
- ldr r7, [r3, r2]
- add r1, r7, #0
- bic r1, r5
- lsl r5, r7, #0x1a
- lsr r5, r5, #0x1c
- orr r0, r5
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1a
- orr r0, r1
- str r0, [r3, r2]
- add r0, r4, #0
- add r0, #0x64
- ldr r1, [r6, r0]
- add r0, r4, #0
- add r0, #0xc3
- cmp r1, r0
- bne _02235A14
- ldr r0, [r6, #0x64]
- add r2, r0, #0
- mul r2, r4
- ldr r1, [r3, r2]
- ldr r0, _02235A28 ; =0xFFFFE3FF
- and r0, r1
- str r0, [r3, r2]
- b _02235A14
-_02235A0C:
- ldr r1, [sp]
- add r0, r6, #0
- bl MOD11_0223A424
-_02235A14:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02235A18: .word 0x0000307C
-_02235A1C: .word 0x00002DB0
-_02235A20: .word 0x00002D4C
-_02235A24: .word 0x00002DCC
-_02235A28: .word 0xFFFFE3FF
-
- thumb_func_start MOD11_02235A2C
-MOD11_02235A2C: ; 0x02235A2C
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- add r0, r6, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r4, _02235A7C ; =0x00002D4C
- mov r7, #0xc0
-_02235A3C:
- bl rand_LC
- ldr r1, _02235A80 ; =0x000001D3
- bl _s32_div_f
- add r0, r1, #1
- ldr r1, [r6, #0x64]
- lsl r0, r0, #0x10
- add r2, r1, #0
- mul r2, r7
- lsr r5, r0, #0x10
- mov r0, #0
- add r2, r6, r2
-_02235A56:
- ldrh r1, [r2, r4]
- cmp r5, r1
- beq _02235A64
- add r0, r0, #1
- add r2, r2, #2
- cmp r0, #4
- blt _02235A56
-_02235A64:
- cmp r0, #4
- bne _02235A3C
- add r0, r5, #0
- bl MOD11_0224C07C
- cmp r0, #0
- beq _02235A3C
- mov r0, #0x49
- lsl r0, r0, #2
- str r5, [r6, r0]
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02235A7C: .word 0x00002D4C
-_02235A80: .word 0x000001D3
-
- thumb_func_start MOD11_02235A84
-MOD11_02235A84: ; 0x02235A84
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- mov r0, #0xb5
- lsl r0, r0, #6
- add r2, r5, r0
- ldr r1, [r5, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- lsl r1, r1, #1
- add r0, r2, r0
- add r2, r5, r1
- ldr r1, _02235B34 ; =0x0000307C
- ldrh r1, [r2, r1]
- bl MOD11_022461AC
- ldr r3, [r5, #0x6c]
- add r6, r0, #0
- mov r7, #0xc0
- add r0, r3, #0
- mul r0, r7
- add r2, r5, r0
- ldr r0, _02235B38 ; =0x00002DE8
- ldrh r1, [r2, r0]
- cmp r1, #0
- bne _02235B26
- cmp r6, #4
- beq _02235B26
- add r1, r0, #0
- add r2, r2, r6
- sub r1, #0x7c
- ldrb r1, [r2, r1]
- cmp r1, #0
- beq _02235B26
- lsl r1, r3, #1
- add r2, r5, r1
- ldr r1, _02235B34 ; =0x0000307C
- ldrh r2, [r2, r1]
- cmp r2, #0
- beq _02235B26
- add r1, r7, #0
- add r1, #0x64
- str r2, [r5, r1]
- add r1, r7, #0
- add r1, #0x64
- ldr r3, [r5, r1]
- ldr r1, [r5, #0x6c]
- add r2, r1, #0
- mul r2, r7
- add r1, r5, r2
- strh r3, [r1, r0]
- bl rand_LC
- ldr r1, _02235B3C ; =0x00002DC8
- ldr r4, [r5, #0x6c]
- add r3, r5, r1
- add r2, r4, #0
- add r1, r7, #0
- mul r2, r1
- ldr r1, [r3, r2]
- mov r4, #7
- bic r1, r4
- lsr r5, r0, #0x1f
- lsl r4, r0, #0x1e
- sub r4, r4, r5
- mov r0, #0x1e
- ror r4, r0
- add r0, r5, r4
- add r4, r0, #3
- mov r0, #7
- and r0, r4
- orr r0, r1
- str r0, [r3, r2]
- b _02235B2E
-_02235B26:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223A424
-_02235B2E:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02235B34: .word 0x0000307C
-_02235B38: .word 0x00002DE8
-_02235B3C: .word 0x00002DC8
-
- thumb_func_start MOD11_02235B40
-MOD11_02235B40: ; 0x02235B40
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r1, #0
- str r0, [sp]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r1, [r5, #0x64]
- lsl r0, r1, #6
- add r2, r5, r0
- mov r0, #0x7a
- lsl r0, r0, #2
- ldr r4, [r2, r0]
- ldr r0, [sp]
- bl MOD11_02230270
- str r0, [sp, #4]
- ldr r0, [sp]
- add r1, r4, #0
- bl MOD11_02230270
- ldr r6, [r5, #0x64]
- add r3, r0, #0
- lsl r0, r6, #6
- add r1, r5, r0
- lsl r0, r4, #2
- add r0, r1, r0
- mov r1, #0x76
- lsl r1, r1, #2
- ldr r7, [r0, r1]
- cmp r7, #0
- beq _02235C06
- ldr r0, [sp, #4]
- cmp r0, r3
- beq _02235C06
- mov r0, #0xc0
- mul r0, r4
- add r2, r5, r0
- ldr r0, _02235C30 ; =0x00002D8C
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _02235C06
- ldr r0, _02235C34 ; =0x00002144
- lsl r2, r7, #1
- sub r1, #0x14
- str r2, [r5, r0]
- add r1, r5, r1
- lsl r0, r3, #3
- ldr r0, [r1, r0]
- lsl r1, r0, #0xb
- lsr r1, r1, #0x1f
- beq _02235BC0
- lsl r0, r0, #9
- lsr r0, r0, #0x1e
- mov r1, #0xc0
- mul r1, r0
- add r2, r5, r1
- ldr r1, _02235C30 ; =0x00002D8C
- ldr r1, [r2, r1]
- cmp r1, #0
- beq _02235BC0
- str r0, [r5, #0x6c]
- b _02235BC2
-_02235BC0:
- str r4, [r5, #0x6c]
-_02235BC2:
- ldr r1, [r5, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _02235C30 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _02235BFA
- ldr r0, [sp]
- ldr r2, [r5, #0x64]
- add r1, r5, #0
- bl MOD11_022482A4
- mov r1, #0xc0
- mul r1, r0
- str r0, [r5, #0x6c]
- ldr r0, _02235C30 ; =0x00002D8C
- add r1, r5, r1
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _02235BFA
- mov r2, #0x26
- str r2, [r5, #0xc]
- add r0, r5, #0
- mov r1, #1
- add r2, #0xf3
- bl MOD11_0223A434
-_02235BFA:
- ldr r1, [r5, #0x64]
- ldr r2, [r5, #0x6c]
- add r0, r5, #0
- bl MOD11_0224C438
- b _02235C28
-_02235C06:
- mov r0, #0xb5
- lsl r0, r0, #2
- mov r1, #0x1c
- add r3, r6, #0
- mul r3, r1
- add r0, r5, r0
- ldr r2, [r0, r3]
- mov r1, #1
- bic r2, r1
- mov r1, #1
- orr r1, r2
- str r1, [r0, r3]
- ldr r1, _02235C38 ; =0x0000216C
- mov r0, #0x40
- ldr r2, [r5, r1]
- orr r0, r2
- str r0, [r5, r1]
-_02235C28:
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02235C30: .word 0x00002D8C
-_02235C34: .word 0x00002144
-_02235C38: .word 0x0000216C
-
- thumb_func_start MOD11_02235C3C
-MOD11_02235C3C: ; 0x02235C3C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r1, #0
- str r0, [sp]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r1, [r5, #0x64]
- lsl r0, r1, #6
- add r2, r5, r0
- mov r0, #2
- lsl r0, r0, #8
- ldr r4, [r2, r0]
- ldr r0, [sp]
- bl MOD11_02230270
- str r0, [sp, #4]
- ldr r0, [sp]
- add r1, r4, #0
- bl MOD11_02230270
- ldr r6, [r5, #0x64]
- add r3, r0, #0
- lsl r0, r6, #6
- add r1, r5, r0
- lsl r0, r4, #2
- add r0, r1, r0
- mov r1, #0x1f
- lsl r1, r1, #4
- ldr r7, [r0, r1]
- cmp r7, #0
- beq _02235D02
- ldr r0, [sp, #4]
- cmp r0, r3
- beq _02235D02
- mov r0, #0xc0
- mul r0, r4
- add r2, r5, r0
- ldr r0, _02235D2C ; =0x00002D8C
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _02235D02
- ldr r0, _02235D30 ; =0x00002144
- lsl r2, r7, #1
- sub r1, #0x2c
- str r2, [r5, r0]
- add r1, r5, r1
- lsl r0, r3, #3
- ldr r0, [r1, r0]
- lsl r1, r0, #0xb
- lsr r1, r1, #0x1f
- beq _02235CBC
- lsl r0, r0, #9
- lsr r0, r0, #0x1e
- mov r1, #0xc0
- mul r1, r0
- add r2, r5, r1
- ldr r1, _02235D2C ; =0x00002D8C
- ldr r1, [r2, r1]
- cmp r1, #0
- beq _02235CBC
- str r0, [r5, #0x6c]
- b _02235CBE
-_02235CBC:
- str r4, [r5, #0x6c]
-_02235CBE:
- ldr r1, [r5, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _02235D2C ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _02235CF6
- ldr r0, [sp]
- ldr r2, [r5, #0x64]
- add r1, r5, #0
- bl MOD11_022482A4
- mov r1, #0xc0
- mul r1, r0
- str r0, [r5, #0x6c]
- ldr r0, _02235D2C ; =0x00002D8C
- add r1, r5, r1
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _02235CF6
- mov r2, #0x26
- str r2, [r5, #0xc]
- add r0, r5, #0
- mov r1, #1
- add r2, #0xf3
- bl MOD11_0223A434
-_02235CF6:
- ldr r1, [r5, #0x64]
- ldr r2, [r5, #0x6c]
- add r0, r5, #0
- bl MOD11_0224C438
- b _02235D24
-_02235D02:
- mov r0, #0xb5
- lsl r0, r0, #2
- mov r1, #0x1c
- add r3, r6, #0
- mul r3, r1
- add r0, r5, r0
- ldr r2, [r0, r3]
- mov r1, #1
- bic r2, r1
- mov r1, #1
- orr r1, r2
- str r1, [r0, r3]
- ldr r1, _02235D34 ; =0x0000216C
- mov r0, #0x40
- ldr r2, [r5, r1]
- orr r0, r2
- str r0, [r5, r1]
-_02235D24:
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02235D2C: .word 0x00002D8C
-_02235D30: .word 0x00002144
-_02235D34: .word 0x0000216C
-
- thumb_func_start MOD11_02235D38
-MOD11_02235D38: ; 0x02235D38
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r7, r0, #0
- mov r0, #0xb5
- lsl r0, r0, #6
- add r2, r5, r0
- ldr r1, [r5, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- lsl r1, r1, #1
- add r0, r2, r0
- add r2, r5, r1
- ldr r1, _02235E0C ; =0x0000307C
- ldrh r1, [r2, r1]
- bl MOD11_022461AC
- ldr r1, [r5, #0x6c]
- add r4, r0, #0
- lsl r1, r1, #1
- add r2, r5, r1
- ldr r1, _02235E0C ; =0x0000307C
- add r0, r5, #0
- ldrh r1, [r2, r1]
- bl MOD11_0224C0B4
- cmp r0, #0
- bne _02235D7E
- mov r4, #4
-_02235D7E:
- ldr r0, [r5, #0x6c]
- mov r2, #0xc0
- add r1, r0, #0
- mul r1, r2
- ldr r3, _02235E10 ; =0x00002DEC
- add r6, r5, r1
- ldrh r1, [r6, r3]
- cmp r1, #0
- bne _02235DF6
- cmp r4, #4
- beq _02235DF6
- add r1, r3, #0
- add r6, r6, r4
- sub r1, #0x80
- ldrb r1, [r6, r1]
- cmp r1, #0
- beq _02235DF6
- lsl r0, r0, #1
- add r1, r5, r0
- ldr r0, _02235E0C ; =0x0000307C
- ldrh r1, [r1, r0]
- cmp r1, #0
- beq _02235DF6
- add r0, r2, #0
- add r0, #0x64
- str r1, [r5, r0]
- ldr r1, [r5, #0x6c]
- add r0, r2, #0
- add r0, #0x64
- add r6, r1, #0
- mul r6, r2
- ldr r0, [r5, r0]
- add r1, r5, r6
- strh r0, [r1, r3]
- ldr r0, [r5, #0x6c]
- add r1, r0, #0
- mul r1, r2
- add r1, r5, r1
- add r0, r3, #2
- strh r4, [r1, r0]
- bl rand_LC
- ldr r1, _02235E14 ; =0x00002DC8
- ldr r2, [r5, #0x6c]
- add r4, r5, r1
- mov r1, #0xc0
- add r5, r2, #0
- mul r5, r1
- mov r1, #5
- bl _s32_div_f
- ldr r2, [r4, r5]
- mov r0, #0x38
- bic r2, r0
- add r0, r1, #3
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1a
- orr r0, r2
- str r0, [r4, r5]
- b _02235E08
-_02235DF6:
- ldr r1, _02235E18 ; =0x0000216C
- mov r0, #0x40
- ldr r2, [r5, r1]
- orr r0, r2
- str r0, [r5, r1]
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_0223A424
-_02235E08:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02235E0C: .word 0x0000307C
-_02235E10: .word 0x00002DEC
-_02235E14: .word 0x00002DC8
-_02235E18: .word 0x0000216C
-
- thumb_func_start MOD11_02235E1C
-MOD11_02235E1C: ; 0x02235E1C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp]
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x79
- bne _02235E4C
- ldr r1, [sp]
- add r0, r4, #0
- bl MOD11_0223A424
- add sp, #8
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02235E4C:
- ldr r0, [r4, #0x64]
- lsl r0, r0, #1
- add r2, r4, r0
- ldr r0, _02235FB4 ; =0x000030C4
- ldrh r1, [r2, r0]
- cmp r1, #0
- beq _02235E62
- add r0, #8
- ldrh r0, [r2, r0]
- cmp r0, #0xff
- bne _02235E64
-_02235E62:
- b _02235FA6
-_02235E64:
- add r0, r4, #0
- bl MOD11_02246AF8
- cmp r0, #0
- beq _02235E98
- ldr r0, [r4, #0x64]
- lsl r0, r0, #1
- add r1, r4, r0
- ldr r0, _02235FB8 ; =0x000030CC
- ldrh r1, [r1, r0]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _02235FBC ; =0x00002DB0
- ldr r1, [r1, r0]
- mov r0, #1
- lsl r0, r0, #0xc
- tst r0, r1
- beq _02235E98
- ldr r1, [sp]
- add r0, r4, #0
- bl MOD11_0223A424
- add sp, #8
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02235E98:
- ldr r0, [r4, #0x64]
- mov r7, #0
- lsl r0, r0, #1
- add r1, r4, r0
- ldr r0, _02235FC0 ; =0x000030D4
- ldrh r6, [r1, r0]
-_02235EA4:
- add r1, sp, #4
- add r2, sp, #4
- ldr r0, _02235FC4 ; =0x0000FFFF
- add r1, #2
- add r2, #1
- add r3, sp, #4
- bl MOD11_02246B58
- add r0, sp, #4
- ldrb r0, [r0, #2]
- cmp r0, r6
- bne _02235F12
- add r0, sp, #4
- ldrb r0, [r0]
- cmp r0, #5
- bhi _02235F12
- add r0, sp, #4
- ldrb r5, [r0, #1]
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- cmp r5, r0
- beq _02235F12
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- cmp r5, r0
- beq _02235F12
- ldr r0, [r4, #0x64]
- add r3, sp, #4
- mov r2, #0xc0
- add r1, r0, #0
- mul r1, r2
- add r0, r4, r1
- ldr r1, _02235FC8 ; =0x00002D64
- add sp, #8
- strb r5, [r0, r1]
- ldr r5, [r4, #0x64]
- ldrb r0, [r3, #1]
- add r6, r5, #0
- mul r6, r2
- add r5, r4, r6
- add r1, r1, #1
- strb r0, [r5, r1]
- ldrb r0, [r3, #1]
- add r2, #0x70
- str r0, [r4, r2]
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02235F12:
- mov r0, #0xfa
- add r7, r7, #1
- lsl r0, r0, #2
- cmp r7, r0
- blt _02235EA4
- mov r7, #0
- add r1, sp, #4
- add r2, sp, #4
- add r0, r7, #0
- add r1, #2
- add r2, #1
- add r3, sp, #4
- bl MOD11_02246B58
- cmp r0, #1
- bne _02235FA6
-_02235F32:
- add r0, sp, #4
- ldrb r0, [r0, #2]
- cmp r0, r6
- bne _02235F90
- add r0, sp, #4
- ldrb r0, [r0]
- cmp r0, #5
- bhi _02235F90
- add r0, sp, #4
- ldrb r5, [r0, #1]
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- cmp r5, r0
- beq _02235F90
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- cmp r5, r0
- beq _02235F90
- ldr r0, [r4, #0x64]
- add r3, sp, #4
- mov r2, #0xc0
- add r1, r0, #0
- mul r1, r2
- add r0, r4, r1
- ldr r1, _02235FC8 ; =0x00002D64
- add sp, #8
- strb r5, [r0, r1]
- ldr r5, [r4, #0x64]
- ldrb r0, [r3, #1]
- add r6, r5, #0
- mul r6, r2
- add r5, r4, r6
- add r1, r1, #1
- strb r0, [r5, r1]
- ldrb r0, [r3, #1]
- add r2, #0x70
- str r0, [r4, r2]
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02235F90:
- add r7, r7, #1
- add r1, sp, #4
- add r2, sp, #4
- add r0, r7, #0
- add r1, #2
- add r2, #1
- add r3, sp, #4
- bl MOD11_02246B58
- cmp r0, #1
- beq _02235F32
-_02235FA6:
- ldr r1, [sp]
- add r0, r4, #0
- bl MOD11_0223A424
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02235FB4: .word 0x000030C4
-_02235FB8: .word 0x000030CC
-_02235FBC: .word 0x00002DB0
-_02235FC0: .word 0x000030D4
-_02235FC4: .word 0x0000FFFF
-_02235FC8: .word 0x00002D64
-
- thumb_func_start MOD11_02235FCC
-MOD11_02235FCC: ; 0x02235FCC
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- str r0, [sp]
- mov r0, #0
- add r6, r1, #0
- mvn r0, r0
- str r0, [sp, #8]
- add r0, r6, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r6, #0
- bl MOD11_0223A404
- mov ip, r0
- ldr r1, [r6, #0x64]
- mov r0, #0xc0
- mul r0, r1
- str r0, [sp, #4]
- add r3, r6, r0
- ldr r0, _022360DC ; =0x00002DB0
- ldr r1, [r3, r0]
- mov r0, #2
- lsl r0, r0, #0x14
- tst r0, r1
- bne _0223601E
- ldr r0, [r6, #0x6c]
- lsl r0, r0, #1
- add r1, r6, r0
- ldr r0, _022360E0 ; =0x000030AC
- ldrh r7, [r1, r0]
- cmp r7, #0xa5
- beq _0223601E
- cmp r7, #0xa6
- beq _0223601E
- mov r0, #7
- lsl r0, r0, #6
- cmp r7, r0
- beq _0223601E
- cmp r7, #0
- bne _02236028
-_0223601E:
- add r0, r6, #0
- mov r1, ip
- bl MOD11_0223A424
- b _022360D6
-_02236028:
- mov r0, #0
- add r1, r3, #0
- add r2, r0, #0
-_0223602E:
- ldr r4, _022360E4 ; =0x00002D4C
- ldrh r4, [r1, r4]
- cmp r4, #0xa6
- beq _02236040
- ldr r4, _022360E4 ; =0x00002D4C
- add r5, r3, r2
- ldrh r4, [r5, r4]
- cmp r7, r4
- beq _02236060
-_02236040:
- ldr r4, _022360E4 ; =0x00002D4C
- add r5, r3, r2
- ldrh r4, [r5, r4]
- cmp r4, #0xa6
- bne _02236056
- mov r5, #0
- ldr r4, [sp, #8]
- mvn r5, r5
- cmp r4, r5
- bne _02236056
- str r0, [sp, #8]
-_02236056:
- add r0, r0, #1
- add r1, r1, #2
- add r2, r2, #2
- cmp r0, #4
- blt _0223602E
-_02236060:
- cmp r0, #4
- bne _022360CE
- ldr r0, [sp, #4]
- add r1, r6, r0
- ldr r0, [sp, #8]
- lsl r0, r0, #1
- add r1, r1, r0
- ldr r0, _022360E4 ; =0x00002D4C
- strh r7, [r1, r0]
- ldr r1, [r6, #0x6c]
- ldr r3, [r6, #0x64]
- lsl r1, r1, #1
- add r2, r6, r1
- ldr r1, _022360E0 ; =0x000030AC
- add r0, #0x20
- ldrh r1, [r2, r1]
- lsl r1, r1, #4
- add r2, r6, r1
- mov r1, #0xf9
- lsl r1, r1, #2
- ldrb r1, [r2, r1]
- mov r2, #0xc0
- mul r2, r3
- add r3, r6, r2
- ldr r2, [sp, #8]
- add r2, r3, r2
- strb r1, [r2, r0]
- ldr r0, [sp]
- ldr r2, [r6, #0x64]
- add r1, r6, #0
- bl MOD11_02256150
- ldr r0, [r6, #0x6c]
- lsl r0, r0, #1
- add r1, r6, r0
- ldr r0, _022360E0 ; =0x000030AC
- ldrh r1, [r1, r0]
- mov r0, #0x49
- lsl r0, r0, #2
- str r1, [r6, r0]
- ldr r1, [r6, r0]
- add r0, #0x5f
- cmp r1, r0
- bne _022360D6
- ldr r0, _022360E8 ; =0x00002DCC
- ldr r1, [r6, #0x64]
- add r3, r6, r0
- mov r0, #0xc0
- add r2, r1, #0
- mul r2, r0
- ldr r1, [r3, r2]
- ldr r0, _022360EC ; =0xFFFFE3FF
- and r0, r1
- str r0, [r3, r2]
- b _022360D6
-_022360CE:
- add r0, r6, #0
- mov r1, ip
- bl MOD11_0223A424
-_022360D6:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_022360DC: .word 0x00002DB0
-_022360E0: .word 0x000030AC
-_022360E4: .word 0x00002D4C
-_022360E8: .word 0x00002DCC
-_022360EC: .word 0xFFFFE3FF
-
- thumb_func_start MOD11_022360F0
-MOD11_022360F0: ; 0x022360F0
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r5, r1, #0
- str r0, [sp, #4]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- mov r7, #0
- str r0, [sp, #8]
- add r6, r7, #0
- add r4, r7, #0
-_0223610E:
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r0, r5, r0
- add r1, r4, r0
- ldr r0, _022361B8 ; =0x00002D4C
- ldrh r0, [r1, r0]
- bl MOD11_02246BE8
- cmp r0, #0
- bne _0223614E
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r0, r5, r0
- add r1, r4, r0
- ldr r0, _022361B8 ; =0x00002D4C
- ldrh r1, [r1, r0]
- mov r0, #0x42
- lsl r0, r0, #2
- cmp r1, r0
- beq _0223614E
- cmp r1, #0xfd
- beq _0223614E
- add r0, #0xb8
- cmp r1, r0
- beq _0223614E
- add r0, r5, #0
- bl MOD11_02246AF8
- cmp r0, #0
- beq _02236156
-_0223614E:
- add r0, r6, #0
- bl MaskOfFlagNo
- orr r7, r0
-_02236156:
- add r6, r6, #1
- add r4, r4, #2
- cmp r6, #4
- blt _0223610E
- mov r0, #2
- mvn r0, r0
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r2, [r5, #0x64]
- add r1, r5, #0
- add r3, r7, #0
- bl MOD11_02245D38
- add r4, r0, #0
- cmp r4, #0xf
- bne _02236180
- ldr r1, [sp, #8]
- add r0, r5, #0
- bl MOD11_0223A424
- b _022361B0
-_02236180:
- mov r7, #0x1e
-_02236182:
- bl rand_LC
- lsr r1, r0, #0x1f
- lsl r0, r0, #0x1e
- sub r0, r0, r1
- ror r0, r7
- add r6, r1, r0
- add r0, r6, #0
- bl MaskOfFlagNo
- tst r0, r4
- bne _02236182
- ldr r0, [r5, #0x64]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- add r2, r5, r2
- lsl r0, r6, #1
- add r2, r2, r0
- ldr r0, _022361B8 ; =0x00002D4C
- add r1, #0x64
- ldrh r0, [r2, r0]
- str r0, [r5, r1]
-_022361B0:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- nop
-_022361B8: .word 0x00002D4C
-
- thumb_func_start MOD11_022361BC
-MOD11_022361BC: ; 0x022361BC
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- ldr r1, _02236200 ; =0x00002D8C
- add r2, r4, r0
- ldr r0, [r2, r1]
- add r1, r1, #4
- ldr r1, [r2, r1]
- mov r2, #0x40
- bl FUN_02079A0C
- ldr r3, _02236204 ; =0x0225DC3C
- mov r2, #0
-_022361E2:
- ldrb r1, [r3]
- cmp r0, r1
- ble _022361F0
- add r2, r2, #1
- add r3, r3, #2
- cmp r2, #6
- blo _022361E2
-_022361F0:
- ldr r0, _02236208 ; =0x0225DC3D
- lsl r1, r2, #1
- ldrb r1, [r0, r1]
- ldr r0, _0223620C ; =0x00002154
- str r1, [r4, r0]
- mov r0, #0
- pop {r4, pc}
- nop
-_02236200: .word 0x00002D8C
-_02236204: .word 0x0225DC3C
-_02236208: .word 0x0225DC3D
-_0223620C: .word 0x00002154
-
- thumb_func_start MOD11_02236210
-MOD11_02236210: ; 0x02236210
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- ldr r2, [r5, #0x6c]
- add r4, r0, #0
- lsl r0, r2, #1
- add r1, r5, r0
- ldr r0, _022362AC ; =0x0000307C
- ldrh r1, [r1, r0]
- cmp r1, #0
- beq _0223629E
- mov r0, #0xb5
- lsl r0, r0, #6
- mov r3, #0xc0
- add r0, r5, r0
- mul r3, r2
- add r0, r0, r3
- bl MOD11_022461AC
- add r2, r0, #0
- cmp r2, #4
- beq _0223625C
- ldr r0, [r5, #0x6c]
- mov r1, #0xc0
- mul r1, r0
- add r1, r5, r1
- add r3, r1, r2
- ldr r1, _022362B0 ; =0x00002D6C
- ldrb r3, [r3, r1]
- cmp r3, #0
- bne _02236266
-_0223625C:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223A424
- b _022362A6
-_02236266:
- mov r1, #4
- cmp r3, #4
- bge _0223626E
- add r1, r3, #0
-_0223626E:
- lsl r0, r0, #1
- add r3, r5, r0
- ldr r0, _022362AC ; =0x0000307C
- ldrh r3, [r3, r0]
- mov r0, #0x49
- lsl r0, r0, #2
- str r3, [r5, r0]
- add r0, #0xc
- str r1, [r5, r0]
- ldr r0, _022362B0 ; =0x00002D6C
- ldr r4, [r5, #0x6c]
- mov r3, #0xc0
- add r0, r5, r0
- mul r3, r4
- add r3, r0, r3
- ldrb r0, [r3, r2]
- sub r0, r0, r1
- strb r0, [r3, r2]
- ldr r2, [r5, #0x6c]
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_02245190
- b _022362A6
-_0223629E:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223A424
-_022362A6:
- mov r0, #0
- pop {r4, r5, r6, pc}
- nop
-_022362AC: .word 0x0000307C
-_022362B0: .word 0x00002D6C
-
- thumb_func_start MOD11_022362B4
-MOD11_022362B4: ; 0x022362B4
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r7, r0, #0
- bl MOD11_0222FF74
- add r4, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- mov r1, #0x4d
- mov r0, #0
- lsl r1, r1, #2
- ldr r2, _022363F4 ; =0x00003044
- str r0, [r5, r1]
- ldr r2, [r5, r2]
- cmp r2, #0xd7
- bne _02236382
- sub r1, #0x10
- str r2, [r5, r1]
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x2b
- beq _0223630A
- ldr r2, [r5, #0x64]
- mov r0, #0xc0
- add r3, r2, #0
- mul r3, r0
- ldr r2, _022363F8 ; =0x00002DAC
- mov r1, #0
- add r3, r5, r3
- str r1, [r3, r2]
- add r1, r2, #4
- ldr r2, [r5, #0x64]
- add r1, r5, r1
- mul r0, r2
- ldr r3, [r1, r0]
- ldr r2, _022363FC ; =0xF7FFFFFF
- and r2, r3
- str r2, [r1, r0]
- b _02236316
-_0223630A:
- mov r1, #0x4d
- lsl r1, r1, #2
- ldr r2, [r5, r1]
- mov r0, #5
- orr r0, r2
- str r0, [r5, r1]
-_02236316:
- mov r0, #2
- tst r0, r4
- beq _02236374
- add r0, r7, #0
- add r1, r5, #0
- mov r2, #0x10
- bl MOD11_0223C230
- add r4, r0, #0
- bl MaskOfFlagNo
- ldr r1, _02236400 ; =0x00003108
- ldrb r1, [r5, r1]
- tst r0, r1
- bne _022363E2
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- add r2, r4, #0
- mov r3, #0x2b
- bl MOD11_02246D84
- cmp r0, #0
- bne _0223635E
- mov r0, #0xc0
- mul r0, r4
- ldr r1, _022363F8 ; =0x00002DAC
- mov r3, #0
- add r2, r5, r0
- str r3, [r2, r1]
- add r1, r1, #4
- add r3, r5, r1
- ldr r2, [r3, r0]
- ldr r1, _022363FC ; =0xF7FFFFFF
- and r1, r2
- str r1, [r3, r0]
- b _022363E2
-_0223635E:
- mov r1, #0x46
- lsl r1, r1, #2
- add r0, r1, #0
- str r4, [r5, r1]
- add r0, #0x1c
- ldr r2, [r5, r0]
- mov r0, #0xa
- orr r0, r2
- add r1, #0x1c
- str r0, [r5, r1]
- b _022363E2
-_02236374:
- mov r1, #0x4d
- lsl r1, r1, #2
- ldr r2, [r5, r1]
- mov r0, #8
- orr r0, r2
- str r0, [r5, r1]
- b _022363E2
-_02236382:
- ldr r3, [r5, #0x64]
- mov r2, #0xc0
- mul r2, r3
- add r3, r5, r2
- ldr r2, _022363F8 ; =0x00002DAC
- str r0, [r3, r2]
- add r0, r2, #4
- add r6, r5, r0
- ldr r0, [r5, #0x64]
- mov r2, #0xc0
- add r3, r0, #0
- mul r3, r2
- ldr r2, [r6, r3]
- ldr r0, _022363FC ; =0xF7FFFFFF
- and r0, r2
- str r0, [r6, r3]
- mov r0, #2
- tst r0, r4
- beq _022363DA
- add r0, r7, #0
- add r1, r5, #0
- mov r2, #0x10
- bl MOD11_0223C230
- add r4, r0, #0
- bl MaskOfFlagNo
- ldr r1, _02236400 ; =0x00003108
- ldrb r1, [r5, r1]
- tst r0, r1
- bne _022363E2
- mov r0, #0xc0
- mul r0, r4
- ldr r1, _022363F8 ; =0x00002DAC
- mov r3, #0
- add r2, r5, r0
- str r3, [r2, r1]
- add r1, r1, #4
- add r3, r5, r1
- ldr r2, [r3, r0]
- ldr r1, _022363FC ; =0xF7FFFFFF
- and r1, r2
- str r1, [r3, r0]
- b _022363E2
-_022363DA:
- ldr r2, [r5, r1]
- mov r0, #8
- orr r0, r2
- str r0, [r5, r1]
-_022363E2:
- ldr r3, _022363F4 ; =0x00003044
- ldr r2, [r5, #0x64]
- ldr r3, [r5, r3]
- add r0, r7, #0
- add r1, r5, #0
- bl MOD11_02256284
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022363F4: .word 0x00003044
-_022363F8: .word 0x00002DAC
-_022363FC: .word 0xF7FFFFFF
-_02236400: .word 0x00003108
-
- thumb_func_start MOD11_02236404
-MOD11_02236404: ; 0x02236404
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp]
- add r0, r5, #0
- bl MOD11_0222FF74
- str r0, [sp, #4]
- ldr r1, [r4, #0x64]
- add r0, r5, #0
- bl MOD11_02230270
- add r7, r0, #0
- ldr r1, [r4, #0x64]
- add r0, r5, #0
- bl MOD11_02230270
- cmp r0, #0
- beq _02236454
- ldr r0, [sp, #4]
- mov r1, #0x84
- tst r0, r1
- bne _02236454
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
- b _022364EC
-_02236454:
- ldr r0, [r4, #0x64]
- add r1, r4, r0
- ldr r0, _022364F4 ; =0x0000219C
- ldrb r0, [r1, r0]
- bl MaskOfFlagNo
- lsl r1, r7, #3
- add r2, r4, r1
- mov r1, #0x71
- lsl r1, r1, #2
- ldr r1, [r2, r1]
- lsl r1, r1, #3
- lsr r1, r1, #0x1a
- tst r0, r1
- beq _0223647C
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
- b _022364EC
-_0223647C:
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x79
- beq _02236494
- ldr r1, [r4, #0x6c]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x79
- bne _0223649E
-_02236494:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
- b _022364EC
-_0223649E:
- ldr r2, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r2
- add r1, r4, r0
- ldr r0, _022364F8 ; =0x00002DB8
- ldrh r0, [r1, r0]
- cmp r0, #0
- beq _022364C6
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- mov r3, #0x3c
- bl MOD11_02246D84
- cmp r0, #1
- bne _022364C6
- ldr r1, [sp]
- add r0, r4, #0
- bl MOD11_0223A424
- b _022364EC
-_022364C6:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _022364F8 ; =0x00002DB8
- ldrh r0, [r1, r0]
- cmp r0, #0
- bne _022364E4
- ldr r2, [r4, #0x6c]
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246C50
- cmp r0, #0
- bne _022364EC
-_022364E4:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_022364EC:
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022364F4: .word 0x0000219C
-_022364F8: .word 0x00002DB8
-
- thumb_func_start MOD11_022364FC
-MOD11_022364FC: ; 0x022364FC
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r6, r1, #0
- str r0, [sp]
- add r0, r6, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r6, #0
- bl MOD11_0223A404
- ldr r1, [r6, #0x64]
- str r0, [sp, #8]
- lsl r0, r1, #1
- add r2, r6, r0
- ldr r0, _02236640 ; =0x0000305C
- ldrh r0, [r2, r0]
- cmp r0, #0xb6
- beq _0223653C
- cmp r0, #0xc5
- beq _0223653C
- cmp r0, #0xcb
- beq _0223653C
- ldr r0, _02236644 ; =0x00002DC8
- add r3, r1, #0
- mov r2, #0xc0
- add r0, r6, r0
- mul r3, r2
- ldr r2, [r0, r3]
- ldr r1, _02236648 ; =0xFFFFE7FF
- and r1, r2
- str r1, [r0, r3]
-_0223653C:
- ldr r0, [sp]
- mov r7, #0
- add r4, r7, #0
- bl MOD11_0222FF84
- cmp r0, #0
- ble _02236564
- add r5, r6, #0
-_0223654C:
- ldr r0, _0223664C ; =0x000021A8
- ldr r0, [r5, r0]
- cmp r0, #0x27
- beq _02236556
- add r7, r7, #1
-_02236556:
- ldr r0, [sp]
- add r5, #0x10
- add r4, r4, #1
- bl MOD11_0222FF84
- cmp r4, r0
- blt _0223654C
-_02236564:
- cmp r7, #1
- beq _0223656E
- mov r0, #1
- str r0, [sp, #4]
- b _02236572
-_0223656E:
- mov r0, #0
- str r0, [sp, #4]
-_02236572:
- ldr r7, [r6, #0x64]
- ldr r0, _02236644 ; =0x00002DC8
- add r5, r7, #0
- add r4, r6, r0
- mov r0, #0xc0
- mul r5, r0
- bl rand_LC
- ldr r1, [r4, r5]
- lsl r1, r1, #0x13
- lsr r1, r1, #0x1e
- lsl r2, r1, #1
- ldr r1, _02236650 ; =0x0225DC34
- ldrh r1, [r1, r2]
- cmp r1, r0
- blo _02236628
- ldr r0, [sp, #4]
- cmp r0, #0
- beq _02236628
- ldr r0, _02236654 ; =0x00003044
- ldr r0, [r6, r0]
- lsl r0, r0, #4
- add r1, r6, r0
- ldr r0, _02236658 ; =0x000003DE
- ldrh r0, [r1, r0]
- cmp r0, #0x6f
- bne _022365C0
- mov r2, #0x75
- lsl r2, r2, #2
- add r0, r6, r2
- lsl r4, r7, #6
- ldr r3, [r0, r4]
- mov r1, #4
- orr r1, r3
- str r1, [r0, r4]
- add r0, r6, #0
- sub r2, #0xba
- add r0, #0xf6
- strh r2, [r0]
-_022365C0:
- ldr r0, _02236654 ; =0x00003044
- ldr r0, [r6, r0]
- lsl r0, r0, #4
- add r1, r6, r0
- ldr r0, _02236658 ; =0x000003DE
- ldrh r0, [r1, r0]
- cmp r0, #0x74
- bne _022365EC
- mov r2, #0x75
- ldr r1, [r6, #0x64]
- lsl r2, r2, #2
- lsl r4, r1, #6
- add r0, r6, r2
- add r1, r2, #0
- ldr r3, [r0, r4]
- add r1, #0x2c
- orr r1, r3
- str r1, [r0, r4]
- add r0, r6, #0
- sub r2, #0x1a
- add r0, #0xf6
- strh r2, [r0]
-_022365EC:
- add r0, r6, #0
- mov r1, #2
- add r0, #0xf5
- strb r1, [r0]
- ldr r1, [r6, #0x64]
- add r0, r6, #0
- bl MOD11_0224682C
- add r1, r6, #0
- add r1, #0xf8
- str r0, [r1]
- ldr r2, [r6, #0x64]
- mov r0, #0xc0
- add r1, r2, #0
- mul r1, r0
- ldr r0, _02236644 ; =0x00002DC8
- add r0, r6, r0
- ldr r3, [r0, r1]
- lsl r2, r3, #0x13
- lsr r4, r2, #0x1e
- cmp r4, #3
- bhs _02236638
- ldr r2, _02236648 ; =0xFFFFE7FF
- and r3, r2
- add r2, r4, #1
- lsl r2, r2, #0x1e
- lsr r2, r2, #0x13
- orr r2, r3
- str r2, [r0, r1]
- b _02236638
-_02236628:
- ldr r1, [r4, r5]
- ldr r0, _02236648 ; =0xFFFFE7FF
- and r0, r1
- str r0, [r4, r5]
- ldr r1, [sp, #8]
- add r0, r6, #0
- bl MOD11_0223A424
-_02236638:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- nop
-_02236640: .word 0x0000305C
-_02236644: .word 0x00002DC8
-_02236648: .word 0xFFFFE7FF
-_0223664C: .word 0x000021A8
-_02236650: .word 0x0225DC34
-_02236654: .word 0x00003044
-_02236658: .word 0x000003DE
-
- thumb_func_start MOD11_0223665C
-MOD11_0223665C: ; 0x0223665C
- push {r3, r4, r5, lr}
- add r5, r1, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _022366C8 ; =0x00002D90
- ldr r0, [r1, r0]
- mov r1, #4
- bl MOD11_022476C0
- ldr r1, [r5, #0x64]
- mov r2, #0xc0
- add r3, r1, #0
- mul r3, r2
- add r1, r5, r3
- ldr r3, _022366CC ; =0x00002D8C
- ldr r1, [r1, r3]
- cmp r1, r0
- bgt _0223669E
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223A424
- b _022366C2
-_0223669E:
- ldr r1, _022366D0 ; =0x0000215C
- neg r4, r0
- str r4, [r5, r1]
- ldr r1, [r5, #0x64]
- add r4, r1, #0
- add r1, r3, #0
- mul r4, r2
- add r3, #0x24
- add r4, r5, r4
- add r1, #0x54
- str r0, [r4, r1]
- ldr r0, [r5, #0x64]
- add r3, r5, r3
- mul r2, r0
- ldr r1, [r3, r2]
- ldr r0, _022366D4 ; =0xFFFF1FFF
- and r0, r1
- str r0, [r3, r2]
-_022366C2:
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_022366C8: .word 0x00002D90
-_022366CC: .word 0x00002D8C
-_022366D0: .word 0x0000215C
-_022366D4: .word 0xFFFF1FFF
-
- thumb_func_start MOD11_022366D8
-MOD11_022366D8: ; 0x022366D8
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- add r5, r0, #0
- str r1, [sp]
- add r0, r1, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r0, [sp]
- bl MOD11_0223A404
- str r0, [sp, #0x18]
- add r0, r5, #0
- bl MOD11_0222FF74
- add r4, r0, #0
- mov r0, #1
- tst r0, r4
- bne _02236700
- b _0223684E
-_02236700:
- ldr r1, [sp]
- add r0, r5, #0
- ldr r1, [r1, #0x6c]
- mov r7, #0
- bl MOD11_0222FF88
- ldr r1, [sp]
- str r0, [sp, #0x14]
- ldr r1, [r1, #0x6c]
- add r0, r5, #0
- bl MOD11_0222FFC8
- add r6, r0, #0
- mov r0, #8
- tst r0, r4
- bne _02236734
- mov r0, #0x10
- tst r0, r4
- beq _0223674C
- ldr r1, [sp]
- add r0, r5, #0
- ldr r1, [r1, #0x6c]
- bl MOD11_02230270
- cmp r0, #0
- beq _0223674C
-_02236734:
- mov r0, #0
- str r0, [sp, #0xc]
- mov r0, #1
- str r0, [sp, #0x10]
- ldr r0, [sp]
- ldr r1, [r0, #0x6c]
- add r1, r0, r1
- ldr r0, _02236868 ; =0x0000219C
- ldrb r0, [r1, r0]
- str r0, [sp, #8]
- str r0, [sp, #4]
- b _0223678C
-_0223674C:
- mov r0, #2
- str r0, [sp, #0x10]
- tst r0, r4
- beq _02236776
- mov r0, #0
- str r0, [sp, #0xc]
- ldr r0, [sp]
- ldr r1, [r0, #0x6c]
- add r2, r0, r1
- ldr r0, _02236868 ; =0x0000219C
- ldrb r0, [r2, r0]
- str r0, [sp, #8]
- add r0, r5, #0
- bl MOD11_022302BC
- ldr r1, [sp]
- add r1, r1, r0
- ldr r0, _02236868 ; =0x0000219C
- ldrb r0, [r1, r0]
- str r0, [sp, #4]
- b _0223678C
-_02236776:
- mov r0, #0
- str r0, [sp, #0xc]
- mov r0, #1
- str r0, [sp, #0x10]
- ldr r0, [sp]
- ldr r1, [r0, #0x6c]
- add r1, r0, r1
- ldr r0, _02236868 ; =0x0000219C
- ldrb r0, [r1, r0]
- str r0, [sp, #8]
- str r0, [sp, #4]
-_0223678C:
- ldr r5, [sp, #0xc]
- add r0, r5, #0
- cmp r0, r6
- bge _022367CE
-_02236794:
- ldr r0, [sp, #0x14]
- add r1, r5, #0
- bl FUN_0206B9B0
- mov r1, #5
- mov r2, #0
- add r4, r0, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _022367C8
- add r0, r4, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- bne _022367C8
- add r0, r4, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _022367C8
- add r7, r7, #1
-_022367C8:
- add r5, r5, #1
- cmp r5, r6
- blt _02236794
-_022367CE:
- ldr r0, [sp, #0x10]
- cmp r7, r0
- bgt _022367DE
- ldr r0, [sp]
- ldr r1, [sp, #0x18]
- bl MOD11_0223A424
- b _02236860
-_022367DE:
- ldr r0, [sp]
- bl MOD11_02246CCC
- cmp r0, #0
- beq _02236844
- mov r7, #5
-_022367EA:
- bl rand_LC
- add r1, r6, #0
- bl _s32_div_f
- ldr r0, [sp, #0xc]
- add r5, r1, #0
- add r5, r5, r0
- ldr r0, [sp, #8]
- cmp r5, r0
- beq _022367EA
- ldr r0, [sp, #4]
- cmp r5, r0
- beq _022367EA
- ldr r0, [sp, #0x14]
- add r1, r5, #0
- bl FUN_0206B9B0
- add r1, r7, #0
- mov r2, #0
- add r4, r0, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _022367EA
- add r0, r4, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #1
- beq _022367EA
- add r0, r4, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _022367EA
- ldr r0, [sp]
- ldr r1, [r0, #0x6c]
- add r1, r0, r1
- ldr r0, _0223686C ; =0x000021A0
- strb r5, [r1, r0]
- b _02236860
-_02236844:
- ldr r0, [sp]
- ldr r1, [sp, #0x18]
- bl MOD11_0223A424
- b _02236860
-_0223684E:
- ldr r0, [sp]
- bl MOD11_02246CCC
- cmp r0, #0
- bne _02236860
- ldr r0, [sp]
- ldr r1, [sp, #0x18]
- bl MOD11_0223A424
-_02236860:
- mov r0, #0
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- nop
-_02236868: .word 0x0000219C
-_0223686C: .word 0x000021A0
-
- thumb_func_start MOD11_02236870
-MOD11_02236870: ; 0x02236870
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r5, [r4, #0x64]
- ldr r1, _02236A40 ; =0x00002DB0
- add r0, r5, #0
- mov r2, #0xc0
- mov r5, #2
- add r3, r4, r1
- mul r0, r2
- ldr r6, [r3, r0]
- lsl r5, r5, #0x14
- orr r5, r6
- str r5, [r3, r0]
- ldr r3, [r4, #0x64]
- mov r0, #0
- add r5, r3, #0
- mul r5, r2
- add r3, r1, #0
- add r5, r4, r5
- add r3, #0x38
- strh r0, [r5, r3]
- add r3, r1, #0
- add r3, #0x18
- ldr r6, [r4, #0x64]
- add r5, r4, r3
- add r3, r6, #0
- mul r3, r2
- ldr r7, [r5, r3]
- mov r6, #7
- bic r7, r6
- str r7, [r5, r3]
- ldr r3, [r4, #0x6c]
- add r5, r3, #0
- mul r5, r2
- add r3, r1, #0
- add r5, r4, r5
- sub r3, #8
- ldr r3, [r5, r3]
- ldr r5, [r4, #0x64]
- add r6, r5, #0
- mul r6, r2
- add r5, r1, #0
- add r6, r4, r6
- add r5, #0x34
- str r3, [r6, r5]
- ldr r3, [r4, #0x6c]
- add r5, r3, #0
- mul r5, r2
- add r3, r1, #0
- add r5, r4, r5
- add r3, #0xe
- ldrb r3, [r5, r3]
- ldr r5, [r4, #0x64]
- add r6, r5, #0
- lsl r3, r3, #0x1c
- mul r6, r2
- add r5, r1, #0
- lsr r3, r3, #0x1c
- add r6, r4, r6
- add r5, #0x4a
- strh r3, [r6, r5]
- add r3, r1, #0
- add r3, #0x1c
- ldr r6, [r4, #0x64]
- add r5, r4, r3
- add r3, r6, #0
- mul r3, r2
- ldr r7, [r5, r3]
- mov r6, #0x3c
- bic r7, r6
- str r7, [r5, r3]
- ldr r6, [r4, #0x64]
- sub r1, #0x70
- add r3, r6, #0
- mul r3, r2
- ldr r7, [r5, r3]
- ldr r6, _02236A44 ; =0xFFFFE3FF
- and r6, r7
- str r6, [r5, r3]
- add r5, r4, r1
- ldr r1, [r4, #0x64]
- add r3, r1, #0
- mul r3, r2
- ldr r1, [r4, #0x6c]
- add r3, r5, r3
- mul r2, r1
- add r2, r5, r2
-_02236926:
- ldrb r1, [r2, r0]
- strb r1, [r3, r0]
- add r0, r0, #1
- cmp r0, #0x28
- blo _02236926
- ldr r3, [r4, #0x64]
- ldr r1, _02236A48 ; =0x00002D68
- add r6, r3, #0
- mov r2, #0xc0
- add r0, r4, r1
- mul r6, r2
- ldr r5, [r0, r6]
- mov r3, #1
- bic r5, r3
- str r5, [r0, r6]
- ldr r3, [r4, #0x64]
- add r6, r3, #0
- mul r6, r2
- ldr r5, [r0, r6]
- mov r3, #2
- bic r5, r3
- str r5, [r0, r6]
- ldr r3, [r4, #0x64]
- add r6, r3, #0
- mul r6, r2
- ldr r5, [r0, r6]
- mov r3, #4
- bic r5, r3
- str r5, [r0, r6]
- ldr r3, [r4, #0x64]
- add r6, r3, #0
- mul r6, r2
- ldr r5, [r0, r6]
- mov r3, #8
- bic r5, r3
- str r5, [r0, r6]
- ldr r3, [r4, #0x64]
- add r6, r3, #0
- mul r6, r2
- ldr r5, [r0, r6]
- mov r3, #0x10
- bic r5, r3
- str r5, [r0, r6]
- ldr r3, [r4, #0x64]
- add r6, r3, #0
- mul r6, r2
- ldr r5, [r0, r6]
- mov r3, #0x20
- bic r5, r3
- str r5, [r0, r6]
- ldr r5, [r4, #0x64]
- add r3, r5, #0
- mul r3, r2
- ldr r6, [r0, r3]
- ldr r5, _02236A4C ; =0xFFFFFEFF
- and r5, r6
- str r5, [r0, r3]
- ldr r5, [r4, #0x64]
- add r3, r5, #0
- mul r3, r2
- ldr r6, [r0, r3]
- ldr r5, _02236A50 ; =0xFFFFFDFF
- and r5, r6
- str r5, [r0, r3]
- ldr r5, [r4, #0x64]
- add r3, r5, #0
- mul r3, r2
- ldr r6, [r0, r3]
- ldr r5, _02236A54 ; =0xFFFFFBFF
- and r5, r6
- str r5, [r0, r3]
- add r3, r1, #0
- add r3, #0x60
- add r6, r4, r3
- ldr r3, [r4, #0x64]
- add r1, #0x70
- add r5, r3, #0
- mul r5, r2
- ldr r7, [r6, r5]
- ldr r3, _02236A58 ; =0xBFFFFFFF
- and r3, r7
- add r7, r2, #0
- add r7, #0x90
- ldr r7, [r4, r7]
- lsl r7, r7, #0x1f
- lsr r7, r7, #1
- orr r3, r7
- str r3, [r6, r5]
- add r3, r2, #0
- add r3, #0x90
- ldr r3, [r4, r3]
- add r6, r3, #1
- ldr r3, [r4, #0x64]
- add r5, r3, #0
- mul r5, r2
- add r3, r4, r5
- str r6, [r3, r1]
- ldr r1, [r4, #0x64]
- add r5, r1, #0
- mul r5, r2
- ldr r3, [r0, r5]
- mov r1, #0x40
- bic r3, r1
- str r3, [r0, r5]
- ldr r1, [r4, #0x64]
- mov r6, #0
- add r3, r1, #0
- mul r3, r2
- ldr r2, [r0, r3]
- mov r1, #0x80
- bic r2, r1
- str r2, [r0, r3]
- mov r0, #0xf9
- add r5, r6, #0
- mov r1, #5
- lsl r0, r0, #2
-_02236A0E:
- ldr r3, [r4, #0x64]
- mov r2, #0xc0
- mul r2, r3
- add r3, r4, r2
- ldr r2, _02236A5C ; =0x00002D4C
- add r7, r3, r5
- ldrh r2, [r7, r2]
- lsl r2, r2, #4
- add r2, r4, r2
- ldrb r2, [r2, r0]
- cmp r2, #5
- bhs _02236A2E
- add r7, r3, r6
- ldr r3, _02236A60 ; =0x00002D6C
- strb r2, [r7, r3]
- b _02236A34
-_02236A2E:
- ldr r2, _02236A60 ; =0x00002D6C
- add r3, r3, r6
- strb r1, [r3, r2]
-_02236A34:
- add r6, r6, #1
- add r5, r5, #2
- cmp r6, #4
- blt _02236A0E
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02236A40: .word 0x00002DB0
-_02236A44: .word 0xFFFFE3FF
-_02236A48: .word 0x00002D68
-_02236A4C: .word 0xFFFFFEFF
-_02236A50: .word 0xFFFFFDFF
-_02236A54: .word 0xFFFFFBFF
-_02236A58: .word 0xBFFFFFFF
-_02236A5C: .word 0x00002D4C
-_02236A60: .word 0x00002D6C
-
- thumb_func_start MOD11_02236A64
-MOD11_02236A64: ; 0x02236A64
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- ldr r1, [r4, #0x64]
- add r0, r5, #0
- bl MOD11_02230270
- mov r2, #0x72
- mov r1, #1
- add r3, r0, #0
- eor r3, r1
- lsl r0, r3, #3
- add r5, r4, r0
- lsl r2, r2, #2
- ldr r5, [r5, r2]
- lsl r5, r5, #0x1e
- lsr r5, r5, #0x1e
- cmp r5, #3
- bne _02236ABA
- mov r0, #0xb5
- lsl r0, r0, #2
- add r2, r4, r0
- ldr r3, [r4, #0x64]
- mov r0, #0x1c
- mul r0, r3
- ldr r5, [r2, r0]
- mov r3, #1
- bic r5, r3
- orr r1, r5
- str r1, [r2, r0]
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
- b _02236AE2
-_02236ABA:
- add r1, r2, #0
- sub r1, #0xc
- lsl r6, r3, #2
- add r1, r4, r1
- ldr r5, [r1, r6]
- mov r3, #4
- orr r3, r5
- str r3, [r1, r6]
- add r2, r4, r2
- ldr r4, [r2, r0]
- mov r3, #3
- add r1, r4, #0
- bic r1, r3
- lsl r3, r4, #0x1e
- lsr r3, r3, #0x1e
- add r4, r3, #1
- mov r3, #3
- and r3, r4
- orr r1, r3
- str r1, [r2, r0]
-_02236AE2:
- mov r0, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02236AE8
-MOD11_02236AE8: ; 0x02236AE8
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r6, #0
- add r1, r5, #0
- add r2, r4, #0
- bl MOD11_0223C230
- add r4, r0, #0
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_02230270
- lsl r0, r0, #3
- add r1, r5, r0
- mov r0, #0x72
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1e
- lsr r1, r0, #0x1e
- beq _02236B56
- mov r0, #0xc0
- mul r0, r4
- ldr r4, _02236B64 ; =0x00002D8C
- add r0, r5, r0
- ldr r2, [r0, r4]
- cmp r2, #0
- beq _02236B56
- mov r2, #5
- sub r1, r2, r1
- ldr r3, _02236B68 ; =0x0000215C
- lsl r1, r1, #1
- str r1, [r5, r3]
- add r1, r4, #4
- ldr r1, [r0, r1]
- sub r0, r2, #6
- mul r0, r1
- ldr r1, [r5, r3]
- bl MOD11_022476C0
- ldr r1, _02236B68 ; =0x0000215C
- str r0, [r5, r1]
- b _02236B5E
-_02236B56:
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_0223A424
-_02236B5E:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02236B64: .word 0x00002D8C
-_02236B68: .word 0x0000215C
-
- thumb_func_start MOD11_02236B6C
-MOD11_02236B6C: ; 0x02236B6C
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r4, r0, #0
- str r1, [sp]
- add r0, r1, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r0, [sp]
- bl MOD11_0223A404
- str r0, [sp, #8]
- add r0, r4, #0
- bl MOD11_0222FF84
- mov r2, #0x4d
- mov r7, #0
- str r0, [sp, #4]
- add r1, r0, #0
- ldr r0, [sp]
- lsl r2, r2, #2
- str r1, [r0, r2]
- ldr r0, [sp, #4]
- add r6, r7, #0
- cmp r0, #0
- ble _02236BFC
- ldr r4, [sp]
- ldr r1, _02236C10 ; =0x00002DC8
- add r0, r4, #0
- add r5, r0, r1
-_02236BA8:
- mov r0, #0xb7
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r0, #0x20
- tst r0, r1
- bne _02236BCE
- ldr r0, _02236C14 ; =0x00002D8C
- ldr r0, [r4, r0]
- cmp r0, #0
- beq _02236BCE
- ldr r0, [sp]
- add r2, r6, #0
- add r1, r0, #0
- ldr r1, [r1, #0x64]
- mov r3, #0x2b
- bl MOD11_02246D84
- cmp r0, #1
- bne _02236BD2
-_02236BCE:
- add r7, r7, #1
- b _02236BF0
-_02236BD2:
- mov r0, #0xb7
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r0, #0x20
- orr r1, r0
- mov r0, #0xb7
- lsl r0, r0, #6
- str r1, [r4, r0]
- ldr r1, [r5]
- ldr r0, _02236C18 ; =0xFFFF9FFF
- and r1, r0
- mov r0, #6
- lsl r0, r0, #0xc
- orr r0, r1
- str r0, [r5]
-_02236BF0:
- ldr r0, [sp, #4]
- add r6, r6, #1
- add r4, #0xc0
- add r5, #0xc0
- cmp r6, r0
- blt _02236BA8
-_02236BFC:
- ldr r0, [sp, #4]
- cmp r7, r0
- bne _02236C0A
- ldr r0, [sp]
- ldr r1, [sp, #8]
- bl MOD11_0223A424
-_02236C0A:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02236C10: .word 0x00002DC8
-_02236C14: .word 0x00002D8C
-_02236C18: .word 0xFFFF9FFF
-
- thumb_func_start MOD11_02236C1C
-MOD11_02236C1C: ; 0x02236C1C
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223A444
- ldr r1, _02236C4C ; =0x00003104
- ldr r1, [r4, r1]
- add r2, r4, r1
- ldr r1, _02236C50 ; =0x000021EC
- ldrb r1, [r2, r1]
- str r1, [r0]
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02236C4C: .word 0x00003104
-_02236C50: .word 0x000021EC
-
- thumb_func_start MOD11_02236C54
-MOD11_02236C54: ; 0x02236C54
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0223A444
- add r6, r0, #0
- add r0, r5, #0
- bl MOD11_0222FF84
- ldr r1, [r6]
- cmp r1, r0
- bhs _02236C92
- add r0, r4, #0
- add r1, r7, #0
- bl MOD11_0223A424
-_02236C92:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02236C98
-MOD11_02236C98: ; 0x02236C98
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_0223C230
- add r4, r0, #0
- mov r0, #0x4e
- mov r3, #0
- lsl r0, r0, #2
- str r3, [r5, r0]
- ldr r0, _02236F40 ; =0x0000215C
- add r1, r4, #0
- str r3, [r5, r0]
- add r0, r5, #0
- mov r2, #0x1b
- bl MOD11_02243420
- str r0, [sp, #4]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- add r7, r0, #0
- mov r0, #0xd
- str r0, [sp]
- add r0, r6, #0
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _02236D08
- mov r0, #0x4c
- str r0, [sp]
- add r0, r6, #0
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- beq _02236D0A
-_02236D08:
- b _02236F38
-_02236D0A:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #0xc
- tst r0, r1
- beq _02236D74
- ldr r0, [sp, #4]
- cmp r0, #5
- beq _02236D74
- cmp r7, #5
- beq _02236D74
- cmp r0, #8
- beq _02236D74
- cmp r7, #8
- beq _02236D74
- cmp r0, #4
- beq _02236D74
- cmp r7, #4
- beq _02236D74
- mov r0, #0xc0
- add r6, r4, #0
- mul r6, r0
- ldr r0, _02236F44 ; =0x00002D8C
- add r1, r5, r6
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02236D74
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r0, #8
- beq _02236D74
- mov r3, #0xb7
- add r1, r5, r6
- lsl r3, r3, #6
- ldr r2, [r1, r3]
- ldr r0, _02236F48 ; =0x00040080
- tst r0, r2
- bne _02236D74
- mov r0, #0xc9
- add r2, r0, #0
- add r2, #0x5b
- str r0, [r5, r2]
- sub r3, #0x30
- ldr r1, [r1, r3]
- sub r0, #0xca
- mul r0, r1
- mov r1, #0x10
- bl MOD11_022476C0
- ldr r1, _02236F40 ; =0x0000215C
- str r0, [r5, r1]
-_02236D74:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #0x30
- tst r0, r1
- beq _02236DDC
- mov r0, #0xc0
- add r6, r4, #0
- mul r6, r0
- ldr r0, _02236F44 ; =0x00002D8C
- add r2, r5, r6
- ldr r1, [r2, r0]
- cmp r1, #0
- beq _02236DDC
- add r0, #0x34
- ldr r1, [r2, r0]
- ldr r0, _02236F48 ; =0x00040080
- tst r0, r1
- bne _02236DDC
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x57
- beq _02236DB2
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x5e
- bne _02236DC8
-_02236DB2:
- ldr r0, _02236F4C ; =0x00002D90
- add r1, r5, r6
- ldr r1, [r1, r0]
- mov r0, #0
- mvn r0, r0
- mul r0, r1
- mov r1, #8
- bl MOD11_022476C0
- ldr r1, _02236F40 ; =0x0000215C
- str r0, [r5, r1]
-_02236DC8:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x5e
- bne _02236DDC
- mov r0, #0x4e
- mov r1, #2
- lsl r0, r0, #2
- str r1, [r5, r0]
-_02236DDC:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #0xc0
- tst r1, r0
- beq _02236E5E
- ldr r1, _02236F44 ; =0x00002D8C
- add r6, r4, #0
- mul r6, r0
- add r0, r5, r1
- str r0, [sp, #8]
- ldr r0, [r0, r6]
- cmp r0, #0
- beq _02236E5E
- add r0, r5, r6
- add r1, #0x34
- ldr r1, [r0, r1]
- ldr r0, _02236F48 ; =0x00040080
- tst r0, r1
- bne _02236E5E
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x73
- bne _02236E2A
- ldr r0, _02236F4C ; =0x00002D90
- add r1, r5, r6
- ldr r0, [r1, r0]
- ldr r1, [sp, #8]
- ldr r1, [r1, r6]
- cmp r1, r0
- bhs _02236E5E
- mov r1, #0x10
- bl MOD11_022476C0
- ldr r1, _02236F40 ; =0x0000215C
- str r0, [r5, r1]
- b _02236E5E
-_02236E2A:
- ldr r0, [sp, #4]
- cmp r0, #0xf
- beq _02236E5E
- cmp r7, #0xf
- beq _02236E5E
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x51
- beq _02236E5E
- ldr r1, _02236F50 ; =0x00000102
- add r0, r1, #0
- add r0, #0x22
- str r1, [r5, r0]
- ldr r0, _02236F4C ; =0x00002D90
- add r1, r5, r6
- ldr r1, [r1, r0]
- mov r0, #0
- mvn r0, r0
- mul r0, r1
- mov r1, #0x10
- bl MOD11_022476C0
- ldr r1, _02236F40 ; =0x0000215C
- str r0, [r5, r1]
-_02236E5E:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #3
- tst r0, r1
- beq _02236F38
- ldr r1, _02236F44 ; =0x00002D8C
- mov r0, #0xc0
- add r6, r4, #0
- mul r6, r0
- add r7, r5, r1
- ldr r0, [r7, r6]
- cmp r0, #0
- beq _02236EA0
- add r1, r1, #4
- add r1, r5, r1
- str r1, [sp, #0xc]
- ldr r1, [r1, r6]
- cmp r0, r1
- bhs _02236EA0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x2c
- bne _02236EA0
- ldr r0, [sp, #0xc]
- mov r1, #0x10
- ldr r0, [r0, r6]
- bl MOD11_022476C0
- ldr r1, _02236F40 ; =0x0000215C
- str r0, [r5, r1]
-_02236EA0:
- ldr r0, [r7, r6]
- cmp r0, #0
- beq _02236ECC
- ldr r1, _02236F4C ; =0x00002D90
- add r1, r5, r1
- str r1, [sp, #0x10]
- ldr r1, [r1, r6]
- cmp r0, r1
- bhs _02236ECC
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x57
- bne _02236ECC
- ldr r0, [sp, #0x10]
- mov r1, #8
- ldr r0, [r0, r6]
- bl MOD11_022476C0
- ldr r1, _02236F40 ; =0x0000215C
- str r0, [r5, r1]
-_02236ECC:
- ldr r0, [r7, r6]
- cmp r0, #0
- beq _02236F38
- ldr r0, _02236F54 ; =0x00002DAC
- add r7, r5, r0
- ldr r0, [r7, r6]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- beq _02236F38
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x5d
- bne _02236F38
- ldr r0, [r7, r6]
- mov r1, #7
- tst r1, r0
- beq _02236EFC
- mov r0, #0x13
- mov r1, #0
- lsl r0, r0, #4
- str r1, [r5, r0]
- b _02236F30
-_02236EFC:
- ldr r1, _02236F58 ; =0x00000F88
- tst r1, r0
- beq _02236F0C
- mov r0, #0x13
- mov r1, #1
- lsl r0, r0, #4
- str r1, [r5, r0]
- b _02236F30
-_02236F0C:
- mov r1, #0x10
- tst r1, r0
- beq _02236F1C
- mov r0, #0x13
- mov r1, #2
- lsl r0, r0, #4
- str r1, [r5, r0]
- b _02236F30
-_02236F1C:
- mov r1, #0x40
- tst r0, r1
- beq _02236F2A
- mov r0, #3
- add r1, #0xf0
- str r0, [r5, r1]
- b _02236F30
-_02236F2A:
- mov r0, #4
- add r1, #0xf0
- str r0, [r5, r1]
-_02236F30:
- mov r0, #0x4e
- mov r1, #1
- lsl r0, r0, #2
- str r1, [r5, r0]
-_02236F38:
- mov r0, #0
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- nop
-_02236F40: .word 0x0000215C
-_02236F44: .word 0x00002D8C
-_02236F48: .word 0x00040080
-_02236F4C: .word 0x00002D90
-_02236F50: .word 0x00000102
-_02236F54: .word 0x00002DAC
-_02236F58: .word 0x00000F88
-
- thumb_func_start MOD11_02236F5C
-MOD11_02236F5C: ; 0x02236F5C
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r6, [r4, #0x64]
- mov r0, #0xb5
- lsl r0, r0, #2
- add r2, r4, r0
- mov r0, #0x1c
- add r1, r6, #0
- mul r1, r0
- ldr r3, [r2, r1]
- ldr r0, _0223705C ; =0xFFFFFE3F
- mov r7, #0xc0
- and r0, r3
- add r3, r6, #0
- mul r3, r7
- add r6, r4, r3
- ldr r3, _02237060 ; =0x00002DC8
- ldr r6, [r6, r3]
- sub r3, #0x18
- lsl r6, r6, #0xe
- lsr r6, r6, #0x1d
- lsl r6, r6, #0x1d
- lsr r6, r6, #0x17
- orr r0, r6
- str r0, [r2, r1]
- ldr r2, [r4, #0x64]
- add r0, r2, #0
- mul r0, r7
- add r0, r4, r0
- ldr r1, [r0, r3]
- mov r0, #1
- lsl r0, r0, #0xc
- tst r0, r1
- bne _02236FCA
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_022451C0
- ldr r0, _02237060 ; =0x00002DC8
- ldr r2, [r4, #0x64]
- add r1, r4, r0
- add r0, r7, #0
- mul r0, r2
- ldr r3, [r1, r0]
- ldr r2, _02237064 ; =0xFFFC7FFF
- and r3, r2
- mov r2, #0xa
- lsl r2, r2, #0xe
- orr r2, r3
- str r2, [r1, r0]
-_02236FCA:
- ldr r1, [r4, #0x64]
- ldr r0, _02237060 ; =0x00002DC8
- mov r7, #0xc0
- add r3, r1, #0
- add r6, r4, r0
- mul r3, r7
- ldr r1, [r6, r3]
- ldr r2, _02237064 ; =0xFFFC7FFF
- and r2, r1
- lsl r1, r1, #0xe
- lsr r1, r1, #0x1d
- sub r1, r1, #1
- lsl r1, r1, #0x1d
- lsr r1, r1, #0xe
- orr r1, r2
- str r1, [r6, r3]
- ldr r2, [r4, #0x64]
- add r1, r2, #0
- mul r1, r7
- add r1, r4, r1
- ldr r0, [r1, r0]
- lsl r0, r0, #0xe
- lsr r0, r0, #0x1d
- bne _02237002
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_022451F0
-_02237002:
- ldr r0, _02237068 ; =0x00003044
- mov r2, #1
- ldr r0, [r4, r0]
- lsl r0, r0, #4
- add r1, r4, r0
- ldr r0, _0223706C ; =0x000003E1
- ldrb r1, [r1, r0]
- ldr r0, _02237070 ; =0x00002154
- str r1, [r4, r0]
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _02237060 ; =0x00002DC8
- ldr r0, [r1, r0]
- lsl r0, r0, #0xe
- lsr r1, r0, #0x1d
- mov r0, #5
- sub r3, r0, r1
- cmp r3, #1
- ble _0223703A
- ldr r0, _02237070 ; =0x00002154
-_0223702E:
- ldr r1, [r4, r0]
- add r2, r2, #1
- lsl r1, r1, #1
- str r1, [r4, r0]
- cmp r2, r3
- blt _0223702E
-_0223703A:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _02237074 ; =0x00002DB0
- ldr r1, [r1, r0]
- mov r0, #1
- lsl r0, r0, #0x1e
- tst r0, r1
- beq _02237056
- ldr r0, _02237070 ; =0x00002154
- ldr r1, [r4, r0]
- lsl r1, r1, #1
- str r1, [r4, r0]
-_02237056:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0223705C: .word 0xFFFFFE3F
-_02237060: .word 0x00002DC8
-_02237064: .word 0xFFFC7FFF
-_02237068: .word 0x00003044
-_0223706C: .word 0x000003E1
-_02237070: .word 0x00002154
-_02237074: .word 0x00002DB0
-
- thumb_func_start MOD11_02237078
-MOD11_02237078: ; 0x02237078
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r2, [r4, #0x64]
- mov r0, #0xc0
- add r1, r2, #0
- mul r1, r0
- ldr r0, _022370F4 ; =0x00002DC8
- add r0, r4, r0
- ldr r3, [r0, r1]
- lsl r2, r3, #0xb
- lsr r5, r2, #0x1d
- cmp r5, #5
- bhs _022370A8
- ldr r2, _022370F8 ; =0xFFE3FFFF
- and r3, r2
- add r2, r5, #1
- lsl r2, r2, #0x1d
- lsr r2, r2, #0xb
- orr r2, r3
- str r2, [r0, r1]
-_022370A8:
- ldr r0, _022370FC ; =0x00003044
- ldr r0, [r4, r0]
- lsl r0, r0, #4
- add r1, r4, r0
- ldr r0, _02237100 ; =0x000003E1
- ldrb r1, [r1, r0]
- ldr r0, _02237104 ; =0x00002154
- str r1, [r4, r0]
- ldr r2, [r4, #0x64]
- mov r1, #0xc0
- mul r1, r2
- add r2, r4, r1
- ldr r1, _022370F4 ; =0x00002DC8
- mov r0, #1
- ldr r1, [r2, r1]
- lsl r1, r1, #0xb
- lsr r1, r1, #0x1d
- cmp r1, #1
- bls _022370EE
- ldr r3, _02237104 ; =0x00002154
- ldr r2, _022370F4 ; =0x00002DC8
- mov r1, #0xc0
-_022370D4:
- ldr r5, [r4, r3]
- add r0, r0, #1
- lsl r5, r5, #1
- str r5, [r4, r3]
- ldr r5, [r4, #0x64]
- add r6, r5, #0
- mul r6, r1
- add r5, r4, r6
- ldr r5, [r5, r2]
- lsl r5, r5, #0xb
- lsr r5, r5, #0x1d
- cmp r0, r5
- blo _022370D4
-_022370EE:
- mov r0, #0
- pop {r4, r5, r6, pc}
- nop
-_022370F4: .word 0x00002DC8
-_022370F8: .word 0xFFE3FFFF
-_022370FC: .word 0x00003044
-_02237100: .word 0x000003E1
-_02237104: .word 0x00002154
-
- thumb_func_start MOD11_02237108
-MOD11_02237108: ; 0x02237108
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r3, r0, #0
- add r0, r4, #0
- add r0, #0x94
- ldr r0, [r0]
- mov r5, #0xc0
- add r1, r0, #0
- mul r1, r5
- ldr r6, _02237184 ; =0x00002DBE
- add r1, r4, r1
- ldrb r0, [r1, r6]
- lsl r0, r0, #0x1c
- lsr r2, r0, #0x1c
- add r0, r5, #0
- add r0, #0x58
- ldr r0, [r4, r0]
- mul r5, r0
- add r5, r4, r5
- ldrb r5, [r5, r6]
- lsl r5, r5, #0x1c
- lsr r5, r5, #0x1c
- cmp r5, r2
- beq _0223715A
- sub r6, #0xe
- ldr r6, [r1, r6]
- mov r1, #0xf
- lsl r1, r1, #0x10
- tst r1, r6
- bne _0223715A
- cmp r5, #2
- beq _0223715A
- cmp r2, #2
- bne _02237164
-_0223715A:
- add r0, r4, #0
- add r1, r3, #0
- bl MOD11_0223A424
- b _0223717E
-_02237164:
- bl MaskOfFlagNo
- ldr r1, _02237188 ; =0x00002DB0
- mov r2, #0xc0
- add r1, r4, r1
- add r4, #0x94
- ldr r3, [r4]
- lsl r0, r0, #0x10
- add r4, r3, #0
- mul r4, r2
- ldr r2, [r1, r4]
- orr r0, r2
- str r0, [r1, r4]
-_0223717E:
- mov r0, #0
- pop {r4, r5, r6, pc}
- nop
-_02237184: .word 0x00002DBE
-_02237188: .word 0x00002DB0
-
- thumb_func_start MOD11_0223718C
-MOD11_0223718C: ; 0x0223718C
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- ldr r1, [r4, #0x64]
- add r0, r5, #0
- bl MOD11_02230270
- mov r5, #0x6f
- add r2, r0, #0
- lsl r5, r5, #2
- add r1, r4, r5
- lsl r0, r2, #2
- ldr r6, [r1, r0]
- mov r3, #8
- tst r3, r6
- beq _022371D0
- add r0, r4, #0
- add r1, r7, #0
- bl MOD11_0223A424
- ldr r1, _02237214 ; =0x0000216C
- mov r0, #0x40
- ldr r2, [r4, r1]
- orr r0, r2
- str r0, [r4, r1]
- b _02237210
-_022371D0:
- mov r3, #8
- orr r3, r6
- str r3, [r1, r0]
- add r5, #8
- lsl r0, r2, #3
- add r1, r4, r5
- ldr r3, [r1, r0]
- ldr r2, _02237218 ; =0xFFF1FFFF
- and r3, r2
- mov r2, #0xa
- lsl r2, r2, #0x10
- orr r2, r3
- str r2, [r1, r0]
- ldr r3, [r1, r0]
- ldr r2, _0223721C ; =0xFFFE7FFF
- and r3, r2
- ldr r2, [r4, #0x64]
- lsl r2, r2, #0x1e
- lsr r2, r2, #0xf
- orr r2, r3
- str r2, [r1, r0]
- add r0, r4, #0
- mov r1, #1
- add r0, #0xf5
- strb r1, [r0]
- add r0, r4, #0
- ldr r1, [r4, #0x64]
- add r0, #0xf8
- str r1, [r0]
- mov r0, #0xc6
- add r4, #0xf6
- strh r0, [r4]
-_02237210:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02237214: .word 0x0000216C
-_02237218: .word 0xFFF1FFFF
-_0223721C: .word 0xFFFE7FFF
-
- thumb_func_start MOD11_02237220
-MOD11_02237220: ; 0x02237220
- push {r3, r4, r5, lr}
- add r5, r1, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- bl rand_LC
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- cmp r0, #0x66
- bge _02237248
- ldr r0, _02237284 ; =0x00002154
- mov r1, #0x28
- str r1, [r5, r0]
- b _0223727E
-_02237248:
- cmp r0, #0xb2
- bge _02237254
- ldr r0, _02237284 ; =0x00002154
- mov r1, #0x50
- str r1, [r5, r0]
- b _0223727E
-_02237254:
- cmp r0, #0xcc
- bge _02237260
- ldr r0, _02237284 ; =0x00002154
- mov r1, #0x78
- str r1, [r5, r0]
- b _0223727E
-_02237260:
- ldr r1, [r5, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _02237288 ; =0x00002D90
- ldr r0, [r1, r0]
- mov r1, #4
- bl MOD11_022476C0
- ldr r1, _0223728C ; =0x0000215C
- str r0, [r5, r1]
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223A424
-_0223727E:
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02237284: .word 0x00002154
-_02237288: .word 0x00002D90
-_0223728C: .word 0x0000215C
-
- thumb_func_start MOD11_02237290
-MOD11_02237290: ; 0x02237290
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r0, _0223732C ; =0x00003120
- ldrb r0, [r4, r0]
- cmp r0, #0
- bne _0223731C
- bl rand_LC
- mov r1, #0x64
- bl _s32_div_f
- ldr r0, _0223732C ; =0x00003120
- strb r1, [r4, r0]
- ldrb r1, [r4, r0]
- cmp r1, #5
- bhs _022372C4
- ldr r1, _02237330 ; =0x00002154
- mov r2, #0xa
- str r2, [r4, r1]
- mov r1, #4
- strb r1, [r4, r0]
- b _0223731C
-_022372C4:
- cmp r1, #0xf
- bhs _022372D4
- ldr r1, _02237330 ; =0x00002154
- mov r2, #0x1e
- str r2, [r4, r1]
- mov r1, #5
- strb r1, [r4, r0]
- b _0223731C
-_022372D4:
- cmp r1, #0x23
- bhs _022372E4
- ldr r1, _02237330 ; =0x00002154
- mov r2, #0x32
- str r2, [r4, r1]
- mov r1, #6
- strb r1, [r4, r0]
- b _0223731C
-_022372E4:
- cmp r1, #0x41
- bhs _022372F4
- ldr r1, _02237330 ; =0x00002154
- mov r2, #0x46
- str r2, [r4, r1]
- mov r1, #7
- strb r1, [r4, r0]
- b _0223731C
-_022372F4:
- cmp r1, #0x55
- bhs _02237304
- ldr r1, _02237330 ; =0x00002154
- mov r2, #0x5a
- str r2, [r4, r1]
- mov r1, #8
- strb r1, [r4, r0]
- b _0223731C
-_02237304:
- cmp r1, #0x5f
- ldr r1, _02237330 ; =0x00002154
- bhs _02237314
- mov r2, #0x6e
- str r2, [r4, r1]
- mov r1, #9
- strb r1, [r4, r0]
- b _0223731C
-_02237314:
- mov r2, #0x96
- str r2, [r4, r1]
- mov r1, #0xa
- strb r1, [r4, r0]
-_0223731C:
- ldr r0, _0223732C ; =0x00003120
- ldrb r1, [r4, r0]
- mov r0, #0x13
- lsl r0, r0, #4
- str r1, [r4, r0]
- mov r0, #0
- pop {r4, pc}
- nop
-_0223732C: .word 0x00003120
-_02237330: .word 0x00002154
-
- thumb_func_start MOD11_02237334
-MOD11_02237334: ; 0x02237334
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- str r0, [sp]
- add r0, r6, #0
- add r1, r5, #0
- add r2, r4, #0
- bl MOD11_0223C230
- add r4, r0, #0
- add r0, r6, #0
- add r1, r5, #0
- add r2, r4, #0
- bl MOD11_02246DE0
- cmp r0, #0
- bne _0223737E
- ldr r1, [sp]
- add r0, r5, #0
- bl MOD11_0223A424
- b _02237392
-_0223737E:
- cmp r7, #1
- bne _02237392
- mov r0, #0x4f
- lsl r0, r0, #2
- add r3, r5, r0
- lsl r2, r4, #2
- ldr r1, [r3, r2]
- mov r0, #1
- orr r0, r1
- str r0, [r3, r2]
-_02237392:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02237398
-MOD11_02237398: ; 0x02237398
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- ldr r1, [r4, #0x64]
- bl MOD11_02230270
- ldr r1, [r4, #0x64]
- mov r6, #0xe
- ldr r5, _022374D4 ; =0x00002DB0
- add r2, r1, #0
- mov r3, #0xc0
- mul r2, r3
- add r1, r4, r5
- ldr r7, [r1, r2]
- lsl r6, r6, #0xc
- tst r6, r7
- beq _022373F4
- ldr r0, _022374D8 ; =0xFFFF1FFF
- and r0, r7
- str r0, [r1, r2]
- ldr r0, [r4, #0x64]
- mov r2, #0x74
- add r1, r0, #0
- add r0, r5, #0
- mul r1, r3
- add r1, r4, r1
- add r0, #0x1c
- ldr r0, [r1, r0]
- add r5, #0x3a
- lsl r0, r0, #0x18
- lsr r1, r0, #0x1e
- add r0, r3, #0
- add r0, #0x58
- str r1, [r4, r0]
- ldr r0, [r4, #0x64]
- add r1, r0, #0
- mul r1, r3
- add r0, r4, r1
- ldrh r0, [r0, r5]
- add r3, #0x64
- mov r1, #1
- str r0, [r4, r3]
- add r0, r4, #0
- bl MOD11_0223A43C
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_022373F4:
- add r5, #0x10
- add r5, r4, r5
- ldr r1, [r5, r2]
- mov r6, #4
- tst r6, r1
- beq _0223742A
- mov r0, #4
- bic r1, r0
- str r1, [r5, r2]
- ldr r0, [r4, #0x64]
- add r2, r0, #0
- mul r2, r3
- ldr r1, [r5, r2]
- mov r0, #3
- bic r1, r0
- str r1, [r5, r2]
- mov r1, #0x49
- add r0, r1, #0
- add r0, #0xdb
- str r1, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x75
- bl MOD11_0223A43C
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0223742A:
- mov r1, #0x72
- lsl r1, r1, #2
- add r6, r4, r1
- lsl r5, r0, #3
- ldr r2, [r6, r5]
- lsl r3, r2, #0x1e
- lsr r3, r3, #0x1e
- beq _02237466
- sub r1, #0xc
- lsl r3, r0, #2
- add r1, r4, r1
- ldr r2, [r1, r3]
- mov r0, #4
- bic r2, r0
- str r2, [r1, r3]
- ldr r1, [r6, r5]
- mov r0, #3
- bic r1, r0
- str r1, [r6, r5]
- mov r1, #0xbf
- add r0, r1, #0
- add r0, #0x65
- str r1, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x75
- bl MOD11_0223A43C
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02237466:
- lsl r2, r2, #0x1c
- lsr r2, r2, #0x1e
- beq _0223749A
- add r2, r1, #0
- sub r2, #0xc
- lsl r7, r0, #2
- add r3, r4, r2
- ldr r2, [r3, r7]
- ldr r0, _022374DC ; =0xFFFFFBFF
- and r0, r2
- str r0, [r3, r7]
- ldr r2, [r6, r5]
- mov r0, #0xc
- bic r2, r0
- add r0, r1, #0
- str r2, [r6, r5]
- sub r0, #0x42
- sub r1, #0xa4
- str r0, [r4, r1]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x75
- bl MOD11_0223A43C
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0223749A:
- add r2, r1, #0
- sub r2, #0xc
- add r2, r4, r2
- lsl r0, r0, #2
- ldr r6, [r2, r0]
- mov r5, #0x80
- add r3, r6, #0
- tst r3, r5
- beq _022374C6
- mov r3, #0x80
- bic r6, r3
- str r6, [r2, r0]
- sub r1, #0xa
- add r5, #0xa4
- str r1, [r4, r5]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x75
- bl MOD11_0223A43C
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_022374C6:
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022374D4: .word 0x00002DB0
-_022374D8: .word 0xFFFF1FFF
-_022374DC: .word 0xFFFFFBFF
-
- thumb_func_start MOD11_022374E0
-MOD11_022374E0: ; 0x022374E0
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- ldr r0, _02237578 ; =0x000080FF
- tst r0, r1
- beq _02237522
- mov r0, #0xd
- str r0, [sp]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _02237522
- mov r0, #0x4c
- str r0, [sp]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- beq _02237536
-_02237522:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0223757C ; =0x00002D90
- ldr r0, [r1, r0]
- lsr r1, r0, #1
- ldr r0, _02237580 ; =0x0000215C
- str r1, [r4, r0]
- b _02237572
-_02237536:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r0, #0x30
- tst r0, r1
- ldr r1, [r4, #0x64]
- beq _0223755E
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0223757C ; =0x00002D90
- ldr r1, [r1, r0]
- mov r0, #0x14
- mul r0, r1
- mov r1, #0x1e
- bl MOD11_022476C0
- ldr r1, _02237580 ; =0x0000215C
- str r0, [r4, r1]
- b _02237572
-_0223755E:
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0223757C ; =0x00002D90
- ldr r0, [r1, r0]
- mov r1, #4
- bl MOD11_022476C0
- ldr r1, _02237580 ; =0x0000215C
- str r0, [r4, r1]
-_02237572:
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02237578: .word 0x000080FF
-_0223757C: .word 0x00002D90
-_02237580: .word 0x0000215C
-
- thumb_func_start MOD11_02237584
-MOD11_02237584: ; 0x02237584
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r0, _02237664 ; =0x00002D54
- ldr r1, [r4, #0x64]
- add r3, r4, r0
- mov r0, #0xc0
- mul r0, r1
- ldr r1, [r3, r0]
- mov r5, #2
- lsl r0, r1, #2
- lsr r0, r0, #0x1b
- and r0, r5
- lsl r2, r0, #4
- lsl r0, r1, #7
- lsr r0, r0, #0x1b
- and r0, r5
- lsl r7, r0, #3
- lsl r0, r1, #0xc
- lsr r0, r0, #0x1b
- and r0, r5
- lsl r0, r0, #2
- mov ip, r0
- lsl r0, r1, #0x11
- lsr r0, r0, #0x1b
- and r0, r5
- lsl r6, r0, #1
- lsl r0, r1, #0x1b
- lsr r0, r0, #0x1b
- lsl r1, r1, #0x16
- and r0, r5
- lsr r1, r1, #0x1b
- lsr r0, r0, #1
- and r1, r5
- orr r0, r1
- add r1, r6, #0
- orr r1, r0
- mov r0, ip
- orr r0, r1
- orr r0, r7
- add r1, r2, #0
- orr r1, r0
- ldr r0, _02237668 ; =0x00002154
- str r1, [r4, r0]
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- ldr r5, [r3, r0]
- lsl r0, r5, #2
- lsr r0, r0, #0x1b
- lsl r0, r0, #0x1f
- lsr r6, r0, #0x1a
- lsl r0, r5, #7
- lsr r0, r0, #0x1b
- lsl r0, r0, #0x1f
- lsr r3, r0, #0x1b
- lsl r0, r5, #0xc
- lsr r0, r0, #0x1b
- lsl r0, r0, #0x1f
- lsr r2, r0, #0x1c
- lsl r0, r5, #0x11
- lsr r0, r0, #0x1b
- lsl r0, r0, #0x1f
- lsr r7, r0, #0x1d
- lsl r0, r5, #0x1b
- lsr r1, r0, #0x1b
- mov r0, #1
- and r0, r1
- lsl r1, r5, #0x16
- lsr r1, r1, #0x1b
- lsl r1, r1, #0x1f
- lsr r1, r1, #0x1e
- orr r0, r1
- orr r0, r7
- orr r0, r2
- orr r0, r3
- add r1, r6, #0
- orr r1, r0
- ldr r0, _02237668 ; =0x00002154
- add r0, #0xc
- str r1, [r4, r0]
- ldr r0, _02237668 ; =0x00002154
- ldr r1, [r4, r0]
- mov r0, #0x28
- mul r0, r1
- mov r1, #0x3f
- bl _s32_div_f
- ldr r1, _02237668 ; =0x00002154
- add r0, #0x1e
- str r0, [r4, r1]
- add r1, #0xc
- ldr r1, [r4, r1]
- mov r0, #0xf
- mul r0, r1
- mov r1, #0x3f
- bl _s32_div_f
- add r1, r0, #1
- ldr r0, _0223766C ; =0x00002160
- str r1, [r4, r0]
- ldr r1, [r4, r0]
- cmp r1, #9
- blt _0223765E
- add r1, r1, #1
- str r1, [r4, r0]
-_0223765E:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02237664: .word 0x00002D54
-_02237668: .word 0x00002154
-_0223766C: .word 0x00002160
-
- thumb_func_start MOD11_02237670
-MOD11_02237670: ; 0x02237670
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r2, _022376C8 ; =0x00002D58
- mov r1, #0
- mov r3, #0xc0
- add r5, r2, #0
-_02237684:
- ldr r6, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r6
- ldr r6, [r4, #0x64]
- add r0, r4, r0
- add r0, r1, r0
- add r7, r6, #0
- mul r7, r3
- add r6, r4, r7
- add r6, r1, r6
- ldrsb r0, [r0, r2]
- add r1, r1, #1
- cmp r1, #8
- strb r0, [r6, r5]
- blt _02237684
- ldr r0, [r4, #0x64]
- ldr r6, [r4, #0x6c]
- mov r3, #0xc0
- add r1, r0, #0
- ldr r5, _022376CC ; =0x00002DB0
- mul r1, r3
- mul r3, r6
- add r2, r4, r5
- add r3, r4, r3
- ldr r4, [r3, r5]
- mov r3, #1
- lsl r3, r3, #0x14
- ldr r0, [r2, r1]
- and r3, r4
- orr r0, r3
- str r0, [r2, r1]
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022376C8: .word 0x00002D58
-_022376CC: .word 0x00002DB0
-
- thumb_func_start MOD11_022376D0
-MOD11_022376D0: ; 0x022376D0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x18
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- ldr r1, [r4, #0x6c]
- add r2, r0, #0
- mov r0, #0x62
- add r3, r4, r1
- lsl r0, r0, #2
- ldrb r0, [r3, r0]
- cmp r0, #0
- bne _022377A4
- add r0, r5, #0
- bl MOD11_02230270
- mov r1, #0x6f
- lsl r1, r1, #2
- lsl r3, r0, #2
- add r6, r4, r1
- add r7, r1, #0
- ldr r2, [r6, r3]
- mov r0, #0x10
- orr r0, r2
- str r0, [r6, r3]
- ldr r0, [r4, #0x6c]
- sub r7, #0x34
- add r2, r4, r0
- mov r0, #3
- strb r0, [r2, r7]
- add r7, r1, #0
- ldr r0, _022377B4 ; =0x00003044
- sub r7, #0x2c
- ldr r2, [r4, r0]
- ldr r0, [r4, #0x6c]
- sub r1, #0x24
- lsl r0, r0, #1
- add r0, r4, r0
- strh r2, [r0, r7]
- ldr r2, [r4, #0x6c]
- ldr r0, [r4, #0x64]
- lsl r2, r2, #2
- add r2, r4, r2
- str r0, [r2, r1]
- mov r0, #3
- lsl r0, r0, #7
- ldr r0, [r4, r0]
- ldr r2, _022377B4 ; =0x00003044
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- str r0, [sp, #8]
- ldr r0, [r4, #0x64]
- add r1, r4, #0
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0xc]
- ldr r0, [r4, #0x6c]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- ldr r2, [r4, r2]
- ldr r3, [r6, r3]
- add r0, r5, #0
- bl MOD11_0224B310
- mov r1, #0
- mvn r1, r1
- mul r1, r0
- add r0, r4, #0
- bl MOD11_0224BF10
- ldr r1, [r4, #0x6c]
- lsl r1, r1, #2
- add r2, r4, r1
- mov r1, #0x6a
- lsl r1, r1, #2
- str r0, [r2, r1]
- ldr r0, [r4, #0x64]
- lsl r0, r0, #6
- add r2, r4, r0
- add r0, r1, #0
- add r0, #0x2c
- ldr r0, [r2, r0]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1f
- beq _022377AC
- ldr r0, [r4, #0x6c]
- add r5, r4, r1
- lsl r4, r0, #2
- ldr r1, [r5, r4]
- mov r0, #0xf
- mul r0, r1
- mov r1, #0xa
- bl _s32_div_f
- str r0, [r5, r4]
- b _022377AC
-_022377A4:
- add r0, r4, #0
- add r1, r2, #0
- bl MOD11_0223A424
-_022377AC:
- mov r0, #0
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022377B4: .word 0x00003044
-
- thumb_func_start MOD11_022377B8
-MOD11_022377B8: ; 0x022377B8
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp, #4]
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp, #8]
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0223C230
- str r0, [sp, #0xc]
- add r0, r5, #0
- add r1, r4, #0
- add r2, r7, #0
- bl MOD11_0223C230
- add r6, r0, #0
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_0223CC8C
- str r0, [sp]
- ldr r2, [sp, #0xc]
- add r0, r5, #0
- add r1, r4, #0
- add r3, r6, #0
- bl MOD11_0223D29C
- ldr r0, _02237830 ; =0x0000216C
- ldr r1, [r4, r0]
- ldr r0, _02237834 ; =0x001FD849
- tst r0, r1
- beq _02237828
- ldr r1, [sp, #8]
- add r0, r4, #0
- bl MOD11_0223A424
-_02237828:
- mov r0, #0
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02237830: .word 0x0000216C
-_02237834: .word 0x001FD849
-
- thumb_func_start MOD11_02237838
-MOD11_02237838: ; 0x02237838
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- ldr r2, [r4, #0x64]
- add r0, r5, #0
- add r1, r4, #0
- mov r3, #0
- bl MOD11_02246ED0
- cmp r0, #0
- beq _02237866
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_02237866:
- mov r0, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0223786C
-MOD11_0223786C: ; 0x0223786C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r1, #0
- add r7, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r1, [r5, #0x64]
- add r0, r7, #0
- bl MOD11_0222FFC8
- ldr r1, _02237AA0 ; =0x0000217D
- str r0, [sp]
- ldrb r0, [r5, r1]
- cmp r0, #0
- bne _02237900
- mov r0, #2
- strb r0, [r5, r1]
- add r0, r1, #0
- mov r2, #0xfd
- add r0, #0xb
- str r2, [r5, r0]
- mov r2, #0
- add r0, r1, #2
- strb r2, [r5, r0]
- add r6, r1, #2
-_022378A2:
- ldr r2, _02237AA4 ; =0x0000217F
- ldr r1, [r5, #0x64]
- ldrb r2, [r5, r2]
- add r0, r7, #0
- bl MOD11_02230014
- ldr r1, _02237AA4 ; =0x0000217F
- add r4, r0, #0
- ldrb r3, [r5, r1]
- ldr r1, [r5, #0x64]
- add r2, r5, r1
- ldr r1, _02237AA8 ; =0x0000219C
- ldrb r1, [r2, r1]
- cmp r3, r1
- beq _02237900
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _022378F8
- add r0, r4, #0
- mov r1, #0xad
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _022378F8
- add r0, r4, #0
- mov r1, #0xad
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r1, _02237AAC ; =0x000001EE
- cmp r0, r1
- beq _022378F8
- add r0, r4, #0
- mov r1, #0x9f
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _02237900
-_022378F8:
- ldrb r0, [r5, r6]
- add r0, r0, #1
- strb r0, [r5, r6]
- b _022378A2
-_02237900:
- ldr r2, _02237AA4 ; =0x0000217F
- ldr r1, [r5, #0x64]
- ldrb r2, [r5, r2]
- add r0, r7, #0
- bl MOD11_02230014
- add r4, r0, #0
- mov r1, #5
- mov r2, #0
- bl GetMonDataEncrypted
- str r0, [sp, #4]
- add r0, r4, #0
- mov r1, #0x70
- mov r2, #0
- bl GetMonDataEncrypted
- add r6, r0, #0
- add r0, r4, #0
- mov r1, #0xa0
- mov r2, #0
- bl GetMonDataEncrypted
- add r4, r0, #0
- ldr r0, [sp, #4]
- add r1, r6, #0
- mov r2, #1
- bl GetMonBaseStat_HandleFormeConversion
- ldr r1, _02237AB0 ; =0x00002144
- ldr r2, _02237AB4 ; =0x00003044
- str r0, [r5, r1]
- ldr r2, [r5, r2]
- ldr r0, [r5, r1]
- lsl r2, r2, #4
- add r3, r5, r2
- ldr r2, _02237AB8 ; =0x000003E1
- ldrb r2, [r3, r2]
- mul r2, r0
- str r2, [r5, r1]
- lsl r0, r4, #1
- mov r1, #5
- bl _s32_div_f
- ldr r1, _02237AB0 ; =0x00002144
- add r0, r0, #2
- ldr r2, [r5, r1]
- mul r0, r2
- str r0, [r5, r1]
- ldr r1, [r5, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- mov r1, #0xb5
- add r2, r5, r0
- lsl r1, r1, #6
- ldrh r0, [r2, r1]
- add r1, #0x26
- ldrb r1, [r2, r1]
- mov r2, #2
- lsl r1, r1, #0x1b
- lsr r1, r1, #0x1b
- bl GetMonBaseStat_HandleFormeConversion
- add r1, r0, #0
- ldr r0, _02237AB0 ; =0x00002144
- ldr r0, [r5, r0]
- bl _u32_div_f
- ldr r1, _02237AB0 ; =0x00002144
- str r0, [r5, r1]
- ldr r0, [r5, r1]
- mov r1, #0x32
- bl _s32_div_f
- ldr r1, _02237AB0 ; =0x00002144
- str r0, [r5, r1]
- ldr r0, [r5, r1]
- add r0, r0, #2
- str r0, [r5, r1]
- add r0, r1, #0
- add r0, #0xc
- ldr r2, [r5, r1]
- ldr r0, [r5, r0]
- mul r0, r2
- str r0, [r5, r1]
- ldr r0, [r5, #0x64]
- lsl r0, r0, #6
- add r2, r5, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r2, r0]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1f
- beq _022379CC
- ldr r1, [r5, r1]
- mov r0, #0xf
- mul r0, r1
- mov r1, #0xa
- bl _s32_div_f
- ldr r1, _02237AB0 ; =0x00002144
- str r0, [r5, r1]
-_022379CC:
- ldr r1, _02237AB0 ; =0x00002144
- add r0, r5, #0
- ldr r1, [r5, r1]
- bl MOD11_0224BF10
- ldr r1, _02237AB0 ; =0x00002144
- str r0, [r5, r1]
- mov r0, #0
- ldr r2, [r5, r1]
- mvn r0, r0
- mul r0, r2
- str r0, [r5, r1]
- add r0, r5, #0
- add r3, r1, #0
- ldr r2, _02237ABC ; =0x000001E1
- add r0, #0xf6
- strh r2, [r0]
- add r0, r5, #0
- mov r2, #2
- add r0, #0xf5
- strb r2, [r0]
- add r3, #0x3b
- ldrb r3, [r5, r3]
- ldr r0, [r5, #0x64]
- add r6, r1, #0
- lsl r3, r3, #8
- orr r3, r0
- add r0, r5, #0
- add r0, #0xf8
- str r3, [r0]
- add r0, r1, #0
- add r0, #0x3b
- ldrb r0, [r5, r0]
- add r6, #0x3b
- add r3, r0, #1
- add r0, r1, #0
- add r0, #0x3b
- strb r3, [r5, r0]
- add r0, r1, #0
- add r0, #0x38
- strb r2, [r5, r0]
- add r0, r1, #0
- add r0, #0x3b
- ldrb r2, [r5, r0]
- ldr r0, [sp]
- cmp r2, r0
- bge _02237A94
-_02237A2A:
- ldr r1, [r5, #0x64]
- add r0, r7, #0
- bl MOD11_02230014
- ldr r1, _02237AA4 ; =0x0000217F
- add r4, r0, #0
- ldrb r3, [r5, r1]
- ldr r1, [r5, #0x64]
- add r2, r5, r1
- ldr r1, _02237AA8 ; =0x0000219C
- ldrb r1, [r2, r1]
- cmp r3, r1
- beq _02237A9A
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _02237A7C
- add r0, r4, #0
- mov r1, #0xad
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _02237A7C
- add r0, r4, #0
- mov r1, #0xad
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r1, _02237AAC ; =0x000001EE
- cmp r0, r1
- beq _02237A7C
- add r0, r4, #0
- mov r1, #0x9f
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _02237A9A
-_02237A7C:
- ldrb r0, [r5, r6]
- add r0, r0, #1
- strb r0, [r5, r6]
- ldr r0, _02237AA4 ; =0x0000217F
- ldrb r2, [r5, r0]
- ldr r0, [sp]
- cmp r2, r0
- blt _02237A2A
- ldr r0, _02237AC0 ; =0x0000217C
- mov r1, #1
- strb r1, [r5, r0]
- b _02237A9A
-_02237A94:
- mov r0, #1
- add r1, #0x38
- strb r0, [r5, r1]
-_02237A9A:
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02237AA0: .word 0x0000217D
-_02237AA4: .word 0x0000217F
-_02237AA8: .word 0x0000219C
-_02237AAC: .word 0x000001EE
-_02237AB0: .word 0x00002144
-_02237AB4: .word 0x00003044
-_02237AB8: .word 0x000003E1
-_02237ABC: .word 0x000001E1
-_02237AC0: .word 0x0000217C
-
- thumb_func_start MOD11_02237AC4
-MOD11_02237AC4: ; 0x02237AC4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r1, [r4, #0x64]
- add r0, r5, #0
- bl MOD11_02230270
- mov r1, #0x71
- lsl r1, r1, #2
- mov r2, #1
- add r1, r4, r1
- lsl r0, r0, #3
- ldr r3, [r1, r0]
- lsl r2, r2, #0x14
- orr r2, r3
- str r2, [r1, r0]
- ldr r3, [r1, r0]
- ldr r2, _02237B00 ; =0xFF9FFFFF
- and r3, r2
- ldr r2, [r4, #0x64]
- lsl r2, r2, #0x1e
- lsr r2, r2, #9
- orr r2, r3
- str r2, [r1, r0]
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02237B00: .word 0xFF9FFFFF
-
- thumb_func_start MOD11_02237B04
-MOD11_02237B04: ; 0x02237B04
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r4, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _02237B82
- add r0, r4, #0
- add r1, r5, #0
- mov r2, #0x10
- bl MOD11_0223C230
- add r4, r0, #0
- bl MaskOfFlagNo
- ldr r1, _02237B90 ; =0x00003108
- ldrb r1, [r5, r1]
- tst r0, r1
- bne _02237B78
- mov r0, #0xc0
- mul r0, r4
- add r1, r5, r0
- ldr r0, _02237B94 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02237B78
- ldr r0, [r5, #0x64]
- mov r2, #0x75
- lsl r0, r0, #6
- add r0, r5, r0
- lsl r2, r2, #2
- ldr r0, [r0, r2]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1f
- bne _02237B78
- add r1, r5, r2
- lsl r0, r4, #6
- ldr r3, [r1, r0]
- lsl r3, r3, #0x1c
- lsr r3, r3, #0x1f
- bne _02237B78
- sub r2, #0xbc
- str r4, [r5, r2]
- ldr r3, [r1, r0]
- mov r2, #8
- orr r2, r3
- str r2, [r1, r0]
- b _02237B8A
-_02237B78:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0223A424
- b _02237B8A
-_02237B82:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_02237B8A:
- mov r0, #0
- pop {r4, r5, r6, pc}
- nop
-_02237B90: .word 0x00003108
-_02237B94: .word 0x00002D8C
-
- thumb_func_start MOD11_02237B98
-MOD11_02237B98: ; 0x02237B98
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp, #4]
- add r0, r5, #0
- bl MOD11_0222FF74
- str r0, [sp, #8]
- ldr r1, [r4, #0x64]
- add r0, r5, #0
- bl MOD11_02230270
- str r0, [sp]
- ldr r1, [r4, #0x6c]
- add r0, r5, #0
- bl MOD11_02230270
- add r7, r0, #0
- ldr r1, [r4, #0x64]
- add r0, r5, #0
- bl MOD11_02230270
- cmp r0, #0
- beq _02237BF2
- ldr r0, [sp, #8]
- mov r1, #0x84
- tst r0, r1
- bne _02237BF2
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
- b _02237C90
-_02237BF2:
- ldr r0, [r4, #0x64]
- add r1, r4, r0
- ldr r0, _02237C98 ; =0x0000219C
- ldrb r0, [r1, r0]
- bl MaskOfFlagNo
- ldr r1, [sp]
- lsl r1, r1, #3
- add r2, r4, r1
- mov r1, #0x71
- lsl r1, r1, #2
- ldr r1, [r2, r1]
- lsl r1, r1, #3
- lsr r1, r1, #0x1a
- tst r0, r1
- bne _02237C30
- ldr r0, [r4, #0x6c]
- add r1, r4, r0
- ldr r0, _02237C98 ; =0x0000219C
- ldrb r0, [r1, r0]
- bl MaskOfFlagNo
- lsl r1, r7, #3
- add r2, r4, r1
- mov r1, #0x71
- lsl r1, r1, #2
- ldr r1, [r2, r1]
- lsl r1, r1, #3
- lsr r1, r1, #0x1a
- tst r0, r1
- beq _02237C3A
-_02237C30:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
- b _02237C90
-_02237C3A:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- add r2, r1, #0
- mul r2, r0
- add r3, r4, r2
- ldr r2, _02237C9C ; =0x00002DB8
- ldrh r3, [r3, r2]
- cmp r3, #0
- bne _02237C58
- ldr r3, [r4, #0x6c]
- mul r0, r3
- add r0, r4, r0
- ldrh r0, [r0, r2]
- cmp r0, #0
- beq _02237C6E
-_02237C58:
- add r0, r4, #0
- bl MOD11_02246CAC
- cmp r0, #0
- beq _02237C6E
- ldr r1, [r4, #0x6c]
- add r0, r4, #0
- bl MOD11_02246CAC
- cmp r0, #0
- bne _02237C78
-_02237C6E:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
- b _02237C90
-_02237C78:
- ldr r1, [r4, #0x64]
- ldr r2, [r4, #0x6c]
- add r0, r4, #0
- mov r3, #0x3c
- bl MOD11_02246D84
- cmp r0, #1
- bne _02237C90
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_0223A424
-_02237C90:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- nop
-_02237C98: .word 0x0000219C
-_02237C9C: .word 0x00002DB8
-
- thumb_func_start MOD11_02237CA0
-MOD11_02237CA0: ; 0x02237CA0
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- mov r2, #0x63
- lsl r2, r2, #2
- ldr r3, [r4, #0x64]
- add r5, r4, r2
- add r1, r0, #0
- ldrb r0, [r5, r3]
- cmp r0, #0
- beq _02237CCA
- add r0, r4, #0
- bl MOD11_0223A424
- b _02237CDA
-_02237CCA:
- mov r0, #2
- strb r0, [r5, r3]
- ldr r0, [r4, #0x64]
- add r2, #0x2c
- add r1, r4, r0
- ldr r0, _02237CE0 ; =0x0000219C
- ldrb r0, [r1, r0]
- strb r0, [r1, r2]
-_02237CDA:
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02237CE0: .word 0x0000219C
-
- thumb_func_start MOD11_02237CE4
-MOD11_02237CE4: ; 0x02237CE4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x48
- str r0, [sp]
- str r1, [sp, #4]
- add r0, r1, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r0, [sp, #4]
- bl MOD11_0223A404
- ldr r1, [sp, #4]
- str r0, [sp, #0x14]
- ldr r0, [sp]
- ldr r1, [r1, #0x64]
- mov r7, #0
- bl MOD11_0222FFC8
- str r0, [sp, #0xc]
- add r0, r7, #0
- str r0, [sp, #0x10]
- ldr r0, [sp, #0xc]
- cmp r0, #0
- ble _02237D8A
- add r5, sp, #0x18
-_02237D16:
- ldr r0, [sp, #4]
- ldr r1, [r0, #0x64]
- add r2, r0, r1
- ldr r0, _02237DB8 ; =0x0000219C
- ldrb r2, [r2, r0]
- ldr r0, [sp, #0x10]
- cmp r0, r2
- beq _02237D7E
- ldr r0, [sp]
- ldr r2, [sp, #0x10]
- bl MOD11_02230014
- mov r1, #0xad
- mov r2, #0
- str r0, [sp, #8]
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _02237D7E
- ldr r0, [sp, #8]
- mov r1, #0xad
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r1, _02237DBC ; =0x000001EE
- cmp r0, r1
- beq _02237D7E
- mov r4, #0
-_02237D4E:
- add r1, r4, #0
- ldr r0, [sp, #8]
- add r1, #0x36
- mov r2, #0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r6, r0, #0x10
- add r0, r6, #0
- bl MOD11_02246BE8
- cmp r0, #0
- bne _02237D78
- add r0, r6, #0
- bl MOD11_0224C07C
- cmp r0, #1
- bne _02237D78
- strh r6, [r5]
- add r5, r5, #2
- add r7, r7, #1
-_02237D78:
- add r4, r4, #1
- cmp r4, #4
- blt _02237D4E
-_02237D7E:
- ldr r0, [sp, #0x10]
- add r1, r0, #1
- ldr r0, [sp, #0xc]
- str r1, [sp, #0x10]
- cmp r1, r0
- blt _02237D16
-_02237D8A:
- cmp r7, #0
- beq _02237DA8
- bl rand_LC
- add r1, r7, #0
- bl _s32_div_f
- lsl r1, r1, #1
- add r0, sp, #0x18
- ldrh r2, [r0, r1]
- mov r1, #0x49
- ldr r0, [sp, #4]
- lsl r1, r1, #2
- str r2, [r0, r1]
- b _02237DB0
-_02237DA8:
- ldr r0, [sp, #4]
- ldr r1, [sp, #0x14]
- bl MOD11_0223A424
-_02237DB0:
- mov r0, #0
- add sp, #0x48
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02237DB8: .word 0x0000219C
-_02237DBC: .word 0x000001EE
-
- thumb_func_start MOD11_02237DC0
-MOD11_02237DC0: ; 0x02237DC0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r7, r0, #0
- str r1, [sp]
- add r0, r1, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r0, [sp]
- bl MOD11_0223A404
- str r0, [sp, #4]
- mov r6, #0
- add r0, r7, #0
- add r4, r6, #0
- bl MOD11_0222FF84
- cmp r0, #0
- ble _02237E00
- ldr r5, [sp]
-_02237DE8:
- ldr r0, _02237E30 ; =0x00002D8C
- ldr r0, [r5, r0]
- cmp r0, #0
- beq _02237DF2
- add r6, r6, #1
-_02237DF2:
- add r0, r7, #0
- add r5, #0xc0
- add r4, r4, #1
- bl MOD11_0222FF84
- cmp r4, r0
- blt _02237DE8
-_02237E00:
- ldr r0, [sp]
- add r0, #0xec
- ldr r1, [r0]
- sub r0, r6, #1
- cmp r1, r0
- bne _02237E16
- ldr r0, [sp]
- ldr r1, [sp, #4]
- bl MOD11_0223A424
- b _02237E2A
-_02237E16:
- mov r1, #0x75
- ldr r0, [sp]
- lsl r1, r1, #2
- add r3, r0, r1
- ldr r0, [r0, #0x64]
- lsl r2, r0, #6
- ldr r1, [r3, r2]
- mov r0, #0x10
- orr r0, r1
- str r0, [r3, r2]
-_02237E2A:
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02237E30: .word 0x00002D8C
-
- thumb_func_start MOD11_02237E34
-MOD11_02237E34: ; 0x02237E34
- push {r4, r5, r6, lr}
- sub sp, #8
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r1, [r5, #0x64]
- add r0, r6, #0
- bl MOD11_02230270
- add r1, r5, #0
- ldr r4, [r5, #0x64]
- add r1, #0x84
- str r4, [r1]
- ldr r1, [r5, #0x6c]
- lsl r0, r0, #3
- str r1, [r5, #0x64]
- mov r1, #0x71
- lsl r1, r1, #2
- add r1, r5, r1
- ldr r0, [r1, r0]
- lsl r1, r0, #0xb
- lsr r1, r1, #0x1f
- beq _02237E7E
- lsl r0, r0, #9
- lsr r0, r0, #0x1e
- mov r1, #0xc0
- mul r1, r0
- add r2, r5, r1
- ldr r1, _02237EDC ; =0x00002D8C
- ldr r1, [r2, r1]
- cmp r1, #0
- beq _02237E7E
- str r0, [r5, #0x6c]
- b _02237ECA
-_02237E7E:
- ldr r0, _02237EE0 ; =0x00003044
- ldr r3, [r5, r0]
- lsl r0, r3, #4
- add r1, r5, r0
- ldr r0, _02237EE4 ; =0x000003E6
- ldrh r0, [r1, r0]
- cmp r0, #4
- beq _02237E92
- cmp r0, #8
- bne _02237E96
-_02237E92:
- str r4, [r5, #0x6c]
- b _02237ECA
-_02237E96:
- mov r0, #1
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- lsl r3, r3, #0x10
- ldr r2, [r5, #0x64]
- add r0, r6, #0
- add r1, r5, #0
- lsr r3, r3, #0x10
- bl MOD11_02244C28
- mov r1, #0xb5
- lsl r1, r1, #2
- add r2, r5, r1
- mov r1, #0x1c
- mul r1, r0
- ldr r1, [r2, r1]
- lsl r2, r1, #0x1e
- lsr r2, r2, #0x1f
- bne _02237EC4
- lsl r1, r1, #0x1d
- lsr r1, r1, #0x1f
- beq _02237EC8
-_02237EC4:
- str r0, [r5, #0x6c]
- b _02237ECA
-_02237EC8:
- str r4, [r5, #0x6c]
-_02237ECA:
- mov r1, #0x85
- lsl r1, r1, #6
- ldr r2, [r5, r1]
- mov r0, #8
- orr r0, r2
- str r0, [r5, r1]
- mov r0, #0
- add sp, #8
- pop {r4, r5, r6, pc}
- .align 2, 0
-_02237EDC: .word 0x00002D8C
-_02237EE0: .word 0x00003044
-_02237EE4: .word 0x000003E6
-
- thumb_func_start MOD11_02237EE8
-MOD11_02237EE8: ; 0x02237EE8
- push {r3, r4, r5, lr}
- add r5, r1, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r1, [r5, #0x64]
- ldr r0, [r5, #0x6c]
- lsl r4, r1, #6
- add r2, r5, r4
- lsl r1, r0, #2
- add r2, r2, r1
- mov r1, #0x76
- lsl r1, r1, #2
- ldr r1, [r2, r1]
- cmp r1, #0
- beq _02237F1A
- bl MaskOfFlagNo
- mov r1, #0x7b
- add r2, r5, r4
- lsl r1, r1, #2
- ldr r1, [r2, r1]
- tst r0, r1
- bne _02237F40
-_02237F1A:
- ldr r0, [r5, #0x6c]
- add r2, r5, r4
- lsl r1, r0, #2
- add r2, r2, r1
- mov r1, #0x1f
- lsl r1, r1, #4
- ldr r1, [r2, r1]
- cmp r1, #0
- beq _02237F48
- bl MaskOfFlagNo
- ldr r1, [r5, #0x64]
- lsl r1, r1, #6
- add r2, r5, r1
- mov r1, #0x81
- lsl r1, r1, #2
- ldr r1, [r2, r1]
- tst r0, r1
- beq _02237F48
-_02237F40:
- ldr r0, _02237F54 ; =0x00002158
- mov r1, #0x14
- str r1, [r5, r0]
- b _02237F4E
-_02237F48:
- ldr r0, _02237F54 ; =0x00002158
- mov r1, #0xa
- str r1, [r5, r0]
-_02237F4E:
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02237F54: .word 0x00002158
-
- thumb_func_start MOD11_02237F58
-MOD11_02237F58: ; 0x02237F58
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- ldr r1, [r4, #0x6c]
- add r0, r5, #0
- bl MOD11_02230270
- lsl r1, r0, #2
- add r2, r4, r1
- mov r1, #0x6f
- lsl r1, r1, #2
- ldr r2, [r2, r1]
- mov r1, #1
- tst r1, r2
- bne _02237F8C
- mov r1, #2
- tst r1, r2
- beq _02237FBC
-_02237F8C:
- mov r5, #0x6f
- lsl r5, r5, #2
- add r2, r4, r5
- lsl r1, r0, #2
- ldr r6, [r2, r1]
- mov r3, #1
- bic r6, r3
- str r6, [r2, r1]
- ldr r6, [r2, r1]
- mov r3, #2
- bic r6, r3
- add r5, #8
- str r6, [r2, r1]
- lsl r2, r0, #3
- add r3, r4, r5
- ldr r1, [r3, r2]
- mov r0, #0x1c
- bic r1, r0
- str r1, [r3, r2]
- ldr r1, [r3, r2]
- ldr r0, _02237FC8 ; =0xFFFFFC7F
- and r0, r1
- str r0, [r3, r2]
- b _02237FC4
-_02237FBC:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_02237FC4:
- mov r0, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-_02237FC8: .word 0xFFFFFC7F
-
- thumb_func_start MOD11_02237FCC
-MOD11_02237FCC: ; 0x02237FCC
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r1, r0, #0
- mov r0, #0xb7
- lsl r0, r0, #6
- add r3, r4, r0
- ldr r0, [r4, #0x6c]
- mov r5, #0xc0
- add r2, r0, #0
- mul r2, r5
- ldr r0, [r3, r2]
- lsl r5, r5, #5
- tst r5, r0
- beq _02237FFE
- add r0, r4, #0
- bl MOD11_0223A424
- b _02238006
-_02237FFE:
- mov r1, #1
- lsl r1, r1, #0xc
- orr r0, r1
- str r0, [r3, r2]
-_02238006:
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0223800C
-MOD11_0223800C: ; 0x0223800C
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r4, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r6, r0, #0
- ldr r1, [r5, #0x6c]
- add r0, r4, #0
- bl MOD11_02230270
- add r4, r0, #0
- ldr r2, [r5, #0x6c]
- mov r0, #0xc0
- mul r0, r2
- add r1, r5, r0
- ldr r0, _02238118 ; =0x00002DB8
- ldrh r0, [r1, r0]
- cmp r0, #0
- beq _02238086
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- mov r3, #0x3c
- bl MOD11_02246D84
- cmp r0, #1
- bne _02238086
- add r0, r5, #0
- ldr r1, _0223811C ; =0x000002CA
- add r0, #0xf6
- strh r1, [r0]
- add r0, r5, #0
- mov r1, #0x25
- add r0, #0xf5
- strb r1, [r0]
- ldr r1, [r5, #0x6c]
- add r0, r5, #0
- bl MOD11_0224682C
- add r1, r5, #0
- add r1, #0xf8
- str r0, [r1]
- ldr r0, [r5, #0x6c]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- ldr r0, _02238120 ; =0x00002D67
- add r2, r5, r2
- ldrb r2, [r2, r0]
- add r0, r5, #0
- add r0, #0xfc
- str r2, [r0]
- ldr r0, _02238124 ; =0x00003044
- add r1, #0x40
- ldr r0, [r5, r0]
- str r0, [r5, r1]
- b _02238114
-_02238086:
- ldr r1, [r5, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _02238118 ; =0x00002DB8
- ldrh r0, [r1, r0]
- cmp r0, #0
- beq _0223810C
- mov r1, #0x8a
- add r0, r5, #0
- lsl r1, r1, #2
- add r0, #0xf6
- strh r1, [r0]
- add r0, r5, #0
- mov r1, #0x21
- add r0, #0xf5
- strb r1, [r0]
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_0224682C
- add r1, r5, #0
- add r1, #0xf8
- str r0, [r1]
- ldr r1, [r5, #0x6c]
- add r0, r5, #0
- bl MOD11_0224682C
- add r1, r5, #0
- add r1, #0xfc
- str r0, [r1]
- ldr r0, [r5, #0x6c]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- add r0, r5, r2
- ldr r2, _02238118 ; =0x00002DB8
- ldrh r3, [r0, r2]
- add r0, r1, #0
- add r0, #0x40
- str r3, [r5, r0]
- ldr r3, [r5, #0x6c]
- mov r0, #0
- mul r1, r3
- add r1, r5, r1
- strh r0, [r1, r2]
- ldr r0, [r5, #0x6c]
- add r1, r5, r0
- ldr r0, _02238128 ; =0x0000219C
- ldrb r0, [r1, r0]
- bl MaskOfFlagNo
- mov r1, #0x71
- lsl r1, r1, #2
- add r3, r5, r1
- lsl r2, r4, #3
- ldr r4, [r3, r2]
- ldr r1, _0223812C ; =0xE07FFFFF
- and r1, r4
- lsl r4, r4, #3
- lsr r4, r4, #0x1a
- orr r0, r4
- lsl r0, r0, #0x1a
- lsr r0, r0, #3
- orr r0, r1
- str r0, [r3, r2]
- b _02238114
-_0223810C:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_02238114:
- mov r0, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-_02238118: .word 0x00002DB8
-_0223811C: .word 0x000002CA
-_02238120: .word 0x00002D67
-_02238124: .word 0x00003044
-_02238128: .word 0x0000219C
-_0223812C: .word 0xE07FFFFF
-
- thumb_func_start MOD11_02238130
-MOD11_02238130: ; 0x02238130
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r0, _02238178 ; =0x00002154
- ldr r0, [r4, r0]
- cmp r0, #0
- bne _02238174
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- ldr r1, _0223817C ; =0x00003044
- ldr r1, [r4, r1]
- lsl r1, r1, #4
- add r2, r4, r1
- ldr r1, _02238180 ; =0x000003E1
- ldrb r3, [r2, r1]
- ldr r1, _02238184 ; =0x00002D8C
- add r2, r4, r0
- ldr r0, [r2, r1]
- add r1, r1, #4
- ldr r1, [r2, r1]
- mul r0, r3
- bl _u32_div_f
- ldr r1, _02238178 ; =0x00002154
- str r0, [r4, r1]
- ldr r0, [r4, r1]
- cmp r0, #0
- bne _02238174
- mov r0, #1
- str r0, [r4, r1]
-_02238174:
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-_02238178: .word 0x00002154
-_0223817C: .word 0x00003044
-_02238180: .word 0x000003E1
-_02238184: .word 0x00002D8C
-
- thumb_func_start MOD11_02238188
-MOD11_02238188: ; 0x02238188
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x18
- add r7, r1, #0
- str r0, [sp]
- add r0, r7, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r7, #0
- bl MOD11_0223A404
- str r0, [sp, #0x14]
- ldr r0, [sp]
- ldr r1, [r7, #0x64]
- mov r2, #0
- bl MOD11_02230308
- add r4, r0, #0
- ldr r0, [sp]
- ldr r1, [r7, #0x64]
- mov r2, #2
- bl MOD11_02230308
- mov r6, #0xb7
- add r3, r0, #0
- lsl r6, r6, #6
- add r1, r4, #0
- mov r0, #0xc0
- mov r4, #1
- add r2, r7, r6
- mul r1, r0
- ldr r5, [r2, r1]
- lsl r4, r4, #0x1e
- orr r5, r4
- str r5, [r2, r1]
- add r1, r3, #0
- mul r1, r0
- ldr r3, [r2, r1]
- orr r3, r4
- str r3, [r2, r1]
- ldr r1, [r7, #0x64]
- mul r0, r1
- add r0, r7, r0
- ldr r2, [r0, r6]
- lsr r0, r4, #0x11
- tst r0, r2
- beq _022381F0
- ldr r1, [sp, #0x14]
- add r0, r7, #0
- bl MOD11_0223A424
- b _02238294
-_022381F0:
- ldr r0, [sp]
- bl MOD11_02230270
- str r0, [sp, #0x10]
- ldr r0, [sp]
- bl MOD11_0222FF84
- str r0, [sp, #8]
- mov r0, #0
- str r0, [sp, #0xc]
- ldr r0, [sp, #8]
- cmp r0, #0
- ble _0223826A
- str r7, [sp, #4]
-_0223820C:
- ldr r0, [sp]
- ldr r1, [sp, #0xc]
- bl MOD11_02230270
- ldr r1, [sp, #0x10]
- cmp r1, r0
- beq _02238258
- mov r2, #0
- ldr r0, _0223829C ; =0x00002D4C
- add r4, r2, #0
-_02238220:
- ldr r1, [r7, #0x64]
- mov r6, #0xc0
- mul r6, r1
- add r1, r7, r6
- add r6, r1, r4
- ldr r1, _0223829C ; =0x00002D4C
- ldr r5, [sp, #4]
- ldrh r6, [r6, r1]
- mov r3, #0
-_02238232:
- ldrh r1, [r5, r0]
- cmp r6, r1
- bne _02238240
- cmp r6, #0
- beq _02238240
- cmp r1, #0
- bne _02238248
-_02238240:
- add r3, r3, #1
- add r5, r5, #2
- cmp r3, #4
- blt _02238232
-_02238248:
- cmp r3, #4
- bne _02238254
- add r2, r2, #1
- add r4, r4, #2
- cmp r2, #4
- blt _02238220
-_02238254:
- cmp r3, #4
- bne _0223826A
-_02238258:
- ldr r0, [sp, #4]
- add r0, #0xc0
- str r0, [sp, #4]
- ldr r0, [sp, #0xc]
- add r1, r0, #1
- ldr r0, [sp, #8]
- str r1, [sp, #0xc]
- cmp r1, r0
- blt _0223820C
-_0223826A:
- ldr r1, [sp, #0xc]
- ldr r0, [sp, #8]
- cmp r1, r0
- bne _0223827C
- ldr r1, [sp, #0x14]
- add r0, r7, #0
- bl MOD11_0223A424
- b _02238294
-_0223827C:
- mov r0, #0xb7
- ldr r1, [r7, #0x64]
- lsl r0, r0, #6
- add r3, r7, r0
- mov r0, #0xc0
- add r2, r1, #0
- mul r2, r0
- mov r0, #2
- ldr r1, [r3, r2]
- lsl r0, r0, #0xc
- orr r0, r1
- str r0, [r3, r2]
-_02238294:
- mov r0, #0
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0223829C: .word 0x00002D4C
-
- thumb_func_start MOD11_022382A0
-MOD11_022382A0: ; 0x022382A0
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp]
- ldr r1, [r4, #0x6c]
- add r0, r5, #0
- bl MOD11_02230270
- ldr r6, [r4, #0x74]
- mov r0, #0xc0
- mul r0, r6
- add r1, r4, r0
- mov r0, #0xb7
- lsl r0, r0, #6
- ldr r1, [r1, r0]
- mov r0, #1
- lsl r0, r0, #0xe
- tst r0, r1
- beq _0223833C
- ldr r1, [r4, #0x64]
- add r0, r5, #0
- bl MOD11_02230270
- add r7, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02230270
- cmp r7, r0
- beq _0223833C
- ldr r0, [r4, #0x64]
- mov r2, #0xc0
- add r1, r0, #0
- mul r1, r2
- ldr r3, _02238348 ; =0x00002D8C
- add r0, r4, r1
- ldr r0, [r0, r3]
- cmp r0, #0
- beq _0223833C
- mov r1, #0xc1
- lsl r1, r1, #6
- ldr r6, [r4, r1]
- cmp r6, #0xa5
- beq _0223833C
- add r0, r2, #0
- add r0, #0x64
- str r6, [r4, r0]
- ldr r0, [r4, #0x64]
- ldr r1, [r4, r1]
- sub r3, #0x4c
- lsl r1, r1, #0x10
- add r3, r4, r3
- mul r2, r0
- add r0, r3, r2
- lsr r1, r1, #0x10
- bl MOD11_022461AC
- ldr r3, [r4, #0x64]
- mov r2, #0xc0
- mul r2, r3
- add r2, r4, r2
- add r2, r2, r0
- ldr r0, _0223834C ; =0x00002D6C
- mov r1, #0
- strb r1, [r2, r0]
- ldr r2, [r4, #0x64]
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02245190
- b _02238344
-_0223833C:
- ldr r1, [sp]
- add r0, r4, #0
- bl MOD11_0223A424
-_02238344:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02238348: .word 0x00002D8C
-_0223834C: .word 0x00002D6C
-
- thumb_func_start MOD11_02238350
-MOD11_02238350: ; 0x02238350
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r7, r0, #0
- str r1, [sp]
- add r0, r1, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r0, [sp]
- bl MOD11_0223A404
- str r0, [sp, #4]
- mov r6, #0
- add r0, r7, #0
- add r4, r6, #0
- bl MOD11_0222FF84
- cmp r0, #0
- ble _02238390
- ldr r5, [sp]
-_02238378:
- ldr r0, _022383C0 ; =0x00002D8C
- ldr r0, [r5, r0]
- cmp r0, #0
- beq _02238382
- add r6, r6, #1
-_02238382:
- add r0, r7, #0
- add r5, #0xc0
- add r4, r4, #1
- bl MOD11_0222FF84
- cmp r4, r0
- blt _02238378
-_02238390:
- ldr r0, [sp]
- add r0, #0xec
- ldr r1, [r0]
- sub r0, r6, #1
- cmp r1, r0
- bne _022383A6
- ldr r0, [sp]
- ldr r1, [sp, #4]
- bl MOD11_0223A424
- b _022383BA
-_022383A6:
- mov r1, #0x75
- ldr r0, [sp]
- lsl r1, r1, #2
- add r3, r0, r1
- ldr r0, [r0, #0x64]
- lsl r2, r0, #6
- ldr r1, [r3, r2]
- mov r0, #0x20
- orr r0, r1
- str r0, [r3, r2]
-_022383BA:
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022383C0: .word 0x00002D8C
-
- thumb_func_start MOD11_022383C4
-MOD11_022383C4: ; 0x022383C4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r2, [r4, #0x6c]
- mov r1, #0xc0
- mul r1, r2
- add r2, r4, r1
- ldr r1, _02238410 ; =0x00002D60
- ldr r5, _02238414 ; =0x0225DCA8
- ldr r3, [r2, r1]
- ldr r1, _02238418 ; =0x0000FFFF
- mov r0, #0
-_022383E2:
- ldrh r2, [r5]
- cmp r2, r3
- bge _022383F2
- add r5, r5, #4
- ldrh r2, [r5]
- add r0, r0, #1
- cmp r2, r1
- bne _022383E2
-_022383F2:
- lsl r2, r0, #2
- ldr r0, _02238414 ; =0x0225DCA8
- ldrh r1, [r0, r2]
- ldr r0, _02238418 ; =0x0000FFFF
- cmp r1, r0
- beq _02238404
- ldr r0, _0223841C ; =0x0225DCAA
- ldrh r1, [r0, r2]
- b _02238406
-_02238404:
- mov r1, #0x78
-_02238406:
- ldr r0, _02238420 ; =0x00002154
- str r1, [r4, r0]
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02238410: .word 0x00002D60
-_02238414: .word 0x0225DCA8
-_02238418: .word 0x0000FFFF
-_0223841C: .word 0x0225DCAA
-_02238420: .word 0x00002154
-
- thumb_func_start MOD11_02238424
-MOD11_02238424: ; 0x02238424
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- mov r0, #0xd
- str r0, [sp]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _022384CC
- mov r0, #0x4c
- str r0, [sp]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _022384CC
- mov r1, #6
- lsl r1, r1, #6
- ldr r2, [r4, r1]
- ldr r0, _022384D0 ; =0x000080FF
- tst r0, r2
- ldr r0, _022384D4 ; =0x00003044
- beq _022384BE
- ldr r0, [r4, r0]
- lsl r0, r0, #4
- add r2, r4, r0
- ldr r0, _022384D8 ; =0x000003E1
- ldrb r0, [r2, r0]
- lsl r2, r0, #1
- ldr r0, _022384DC ; =0x00002154
- str r2, [r4, r0]
- ldr r2, [r4, r1]
- mov r1, #3
- tst r1, r2
- beq _02238486
- mov r1, #0xb
- add r0, #0xc
- str r1, [r4, r0]
-_02238486:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r0, #0xc
- tst r0, r1
- beq _02238498
- ldr r0, _022384E0 ; =0x00002160
- mov r1, #5
- str r1, [r4, r0]
-_02238498:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r0, #0x30
- tst r0, r1
- beq _022384AA
- ldr r0, _022384E0 ; =0x00002160
- mov r1, #0xa
- str r1, [r4, r0]
-_022384AA:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r0, #0xc0
- tst r0, r1
- beq _022384CC
- ldr r0, _022384E0 ; =0x00002160
- mov r1, #0xf
- str r1, [r4, r0]
- b _022384CC
-_022384BE:
- ldr r0, [r4, r0]
- lsl r0, r0, #4
- add r1, r4, r0
- ldr r0, _022384D8 ; =0x000003E1
- ldrb r1, [r1, r0]
- ldr r0, _022384DC ; =0x00002154
- str r1, [r4, r0]
-_022384CC:
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-_022384D0: .word 0x000080FF
-_022384D4: .word 0x00003044
-_022384D8: .word 0x000003E1
-_022384DC: .word 0x00002154
-_022384E0: .word 0x00002160
-
- thumb_func_start MOD11_022384E4
-MOD11_022384E4: ; 0x022384E4
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- add r6, r1, #0
- str r0, [sp]
- add r0, r6, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r6, #0
- bl MOD11_0223A404
- str r0, [sp, #0x10]
- ldr r0, [sp]
- bl MOD11_0222FF84
- mov r7, #0
- str r0, [sp, #0xc]
- cmp r0, #0
- bgt _0223850C
- b _02238612
-_0223850C:
- mov r0, #0xb5
- lsl r0, r0, #6
- add r0, r6, r0
- str r6, [sp, #8]
- add r5, r6, #0
- str r0, [sp, #4]
-_02238518:
- ldr r1, [sp, #8]
- ldr r0, _02238654 ; =0x000021A8
- ldr r0, [r1, r0]
- cmp r0, #0x27
- beq _022385FC
- ldr r0, _02238658 ; =0x00002D8C
- ldr r0, [r5, r0]
- cmp r0, #0
- beq _022385FC
- ldr r0, _0223865C ; =0x00002DAC
- ldr r1, [r5, r0]
- mov r0, #0x27
- tst r0, r1
- bne _022385FC
- add r0, r6, #0
- add r1, r7, #0
- bl MOD11_02247190
- cmp r0, #0
- bne _022385FC
- ldr r0, [sp]
- add r1, r7, #0
- bl MOD11_02230270
- str r0, [sp, #0x14]
- ldr r0, [sp]
- ldr r1, [r6, #0x78]
- bl MOD11_02230270
- ldr r1, [sp, #0x14]
- cmp r1, r0
- beq _022385FC
- ldr r0, _02238660 ; =0x00002DEC
- ldrh r4, [r5, r0]
- cmp r4, #0
- beq _02238570
- add r0, r0, #2
- ldrh r0, [r5, r0]
- lsl r0, r0, #1
- add r1, r5, r0
- ldr r0, _02238664 ; =0x00002D4C
- ldrh r0, [r1, r0]
- cmp r4, r0
- beq _0223857A
-_02238570:
- add r0, r6, #0
- add r1, r7, #0
- bl MOD11_0224683C
- add r4, r0, #0
-_0223857A:
- cmp r4, #0
- beq _022385FC
- lsl r1, r4, #0x10
- ldr r0, [sp, #4]
- lsr r1, r1, #0x10
- bl MOD11_022461AC
- str r0, [sp, #0x18]
- lsl r0, r4, #4
- add r1, r6, r0
- ldr r0, _02238668 ; =0x000003DE
- ldrh r0, [r1, r0]
- cmp r0, #0x80
- bne _022385FC
- ldr r0, [sp, #0x18]
- add r1, r5, r0
- ldr r0, _0223866C ; =0x00002D6C
- ldrb r0, [r1, r0]
- cmp r0, #0
- beq _022385FC
- ldr r0, _0223866C ; =0x00002D6C
- add r1, r6, r0
- mov r0, #0xc0
- mul r0, r7
- add r5, r1, r0
- ldr r0, [sp, #0x18]
- ldrb r0, [r5, r0]
- sub r1, r0, #1
- ldr r0, [sp, #0x18]
- strb r1, [r5, r0]
- ldr r1, [r6, #0x78]
- add r0, r6, #0
- bl MOD11_02246D1C
- cmp r0, #0x2e
- bne _022385D0
- ldr r0, [sp, #0x18]
- ldrb r0, [r5, r0]
- cmp r0, #0
- beq _022385D0
- sub r1, r0, #1
- ldr r0, [sp, #0x18]
- strb r1, [r5, r0]
-_022385D0:
- ldr r0, [sp]
- add r1, r6, #0
- bl MOD11_02247264
- str r7, [r6, #0x64]
- ldr r0, [r6, #0x78]
- lsl r2, r7, #1
- str r0, [r6, #0x6c]
- ldr r1, _02238670 ; =0x00002158
- mov r0, #0x14
- str r0, [r6, r1]
- ldr r0, _02238674 ; =0x00003044
- add r2, r6, r2
- str r4, [r6, r0]
- add r0, #0x38
- strh r4, [r2, r0]
- lsl r0, r7, #4
- mov r2, #0x27
- add r0, r6, r0
- add r1, #0x50
- str r2, [r0, r1]
- b _02238612
-_022385FC:
- ldr r0, [sp, #8]
- add r7, r7, #1
- add r0, #0x10
- str r0, [sp, #8]
- ldr r0, [sp, #4]
- add r5, #0xc0
- add r0, #0xc0
- str r0, [sp, #4]
- ldr r0, [sp, #0xc]
- cmp r7, r0
- blt _02238518
-_02238612:
- ldr r0, [sp, #0xc]
- cmp r7, r0
- bne _02238622
- ldr r1, [sp, #0x10]
- add r0, r6, #0
- bl MOD11_0223A424
- b _0223864E
-_02238622:
- ldr r1, [r6, #0x64]
- add r0, r6, #0
- bl MOD11_02249D90
- add r5, r0, #0
- ldr r1, [r6, #0x64]
- add r0, r6, #0
- mov r2, #0
- bl MOD11_02249DA4
- cmp r5, #0x36
- beq _02238642
- cmp r5, #0x72
- beq _02238642
- cmp r5, #0x7c
- bne _0223864E
-_02238642:
- ldr r1, [r6, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r6, r0
- ldr r0, _02238678 ; =0x00002DF8
- strh r4, [r1, r0]
-_0223864E:
- mov r0, #0
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02238654: .word 0x000021A8
-_02238658: .word 0x00002D8C
-_0223865C: .word 0x00002DAC
-_02238660: .word 0x00002DEC
-_02238664: .word 0x00002D4C
-_02238668: .word 0x000003DE
-_0223866C: .word 0x00002D6C
-_02238670: .word 0x00002158
-_02238674: .word 0x00003044
-_02238678: .word 0x00002DF8
-
- thumb_func_start MOD11_0223867C
-MOD11_0223867C: ; 0x0223867C
- push {r3, r4, r5, lr}
- sub sp, #0x10
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r0, [r4, #0x64]
- ldr r3, _022386BC ; =0x00002144
- str r0, [sp]
- ldr r0, [r4, #0x6c]
- ldr r2, _022386C0 ; =0x00003044
- str r0, [sp, #4]
- ldr r0, [r4, r3]
- add r1, r4, #0
- str r0, [sp, #8]
- add r0, r3, #0
- add r0, #0x28
- add r0, r4, r0
- str r0, [sp, #0xc]
- add r3, #0x1c
- ldr r2, [r4, r2]
- ldr r3, [r4, r3]
- add r0, r5, #0
- bl MOD11_02246274
- ldr r1, _022386BC ; =0x00002144
- str r0, [r4, r1]
- mov r0, #0
- add sp, #0x10
- pop {r3, r4, r5, pc}
- .align 2, 0
-_022386BC: .word 0x00002144
-_022386C0: .word 0x00003044
-
- thumb_func_start MOD11_022386C4
-MOD11_022386C4: ; 0x022386C4
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r4, r1, #0
- str r0, [sp]
- add r0, r4, #0
- mov r1, #1
- mov r6, #0
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp, #8]
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r5, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp, #4]
- ldr r0, [sp]
- ldr r2, [sp, #8]
- add r1, r4, #0
- bl MOD11_0223C230
- cmp r7, #6
- bhi _022387B6
- add r1, r7, r7
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02238710: ; jump table
- .short _0223871E - _02238710 - 2 ; case 0
- .short _02238734 - _02238710 - 2 ; case 1
- .short _0223874A - _02238710 - 2 ; case 2
- .short _02238760 - _02238710 - 2 ; case 3
- .short _02238776 - _02238710 - 2 ; case 4
- .short _0223878C - _02238710 - 2 ; case 5
- .short _022387A2 - _02238710 - 2 ; case 6
-_0223871E:
- lsl r0, r0, #6
- add r1, r4, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- cmp r5, r0
- bne _022387B6
- mov r6, #1
- b _022387B6
-_02238734:
- lsl r0, r0, #6
- add r1, r4, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1f
- cmp r5, r0
- bne _022387B6
- mov r6, #1
- b _022387B6
-_0223874A:
- lsl r0, r0, #6
- add r1, r4, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1f
- cmp r5, r0
- bne _022387B6
- mov r6, #1
- b _022387B6
-_02238760:
- lsl r0, r0, #6
- add r1, r4, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1f
- cmp r5, r0
- bne _022387B6
- mov r6, #1
- b _022387B6
-_02238776:
- lsl r0, r0, #6
- add r1, r4, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x1f
- cmp r5, r0
- bne _022387B6
- mov r6, #1
- b _022387B6
-_0223878C:
- lsl r0, r0, #6
- add r1, r4, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1a
- lsr r0, r0, #0x1f
- cmp r5, r0
- bne _022387B6
- mov r6, #1
- b _022387B6
-_022387A2:
- lsl r0, r0, #6
- add r1, r4, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x19
- lsr r0, r0, #0x1f
- cmp r5, r0
- bne _022387B6
- mov r6, #1
-_022387B6:
- cmp r6, #0
- beq _022387C2
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_0223A424
-_022387C2:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_022387C8
-MOD11_022387C8: ; 0x022387C8
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r7, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp]
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r5, r0, #0
- ldr r2, [sp]
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_0223C230
- cmp r6, #6
- bhi _022388BC
- add r1, r6, r6
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02238808: ; jump table
- .short _02238816 - _02238808 - 2 ; case 0
- .short _0223882E - _02238808 - 2 ; case 1
- .short _02238846 - _02238808 - 2 ; case 2
- .short _0223885E - _02238808 - 2 ; case 3
- .short _02238876 - _02238808 - 2 ; case 4
- .short _0223888E - _02238808 - 2 ; case 5
- .short _022388A6 - _02238808 - 2 ; case 6
-_02238816:
- mov r1, #0x75
- lsl r1, r1, #2
- lsl r3, r0, #6
- add r1, r4, r1
- ldr r2, [r1, r3]
- mov r0, #1
- bic r2, r0
- mov r0, #1
- and r0, r5
- orr r0, r2
- str r0, [r1, r3]
- b _022388BC
-_0223882E:
- mov r1, #0x75
- lsl r1, r1, #2
- lsl r3, r0, #6
- add r1, r4, r1
- ldr r2, [r1, r3]
- mov r0, #2
- bic r2, r0
- lsl r0, r5, #0x1f
- lsr r0, r0, #0x1e
- orr r0, r2
- str r0, [r1, r3]
- b _022388BC
-_02238846:
- mov r1, #0x75
- lsl r1, r1, #2
- lsl r3, r0, #6
- add r1, r4, r1
- ldr r2, [r1, r3]
- mov r0, #4
- bic r2, r0
- lsl r0, r5, #0x1f
- lsr r0, r0, #0x1d
- orr r0, r2
- str r0, [r1, r3]
- b _022388BC
-_0223885E:
- mov r1, #0x75
- lsl r1, r1, #2
- lsl r3, r0, #6
- add r1, r4, r1
- ldr r2, [r1, r3]
- mov r0, #8
- bic r2, r0
- lsl r0, r5, #0x1f
- lsr r0, r0, #0x1c
- orr r0, r2
- str r0, [r1, r3]
- b _022388BC
-_02238876:
- mov r1, #0x75
- lsl r1, r1, #2
- lsl r3, r0, #6
- add r1, r4, r1
- ldr r2, [r1, r3]
- mov r0, #0x10
- bic r2, r0
- lsl r0, r5, #0x1f
- lsr r0, r0, #0x1b
- orr r0, r2
- str r0, [r1, r3]
- b _022388BC
-_0223888E:
- mov r1, #0x75
- lsl r1, r1, #2
- lsl r3, r0, #6
- add r1, r4, r1
- ldr r2, [r1, r3]
- mov r0, #0x20
- bic r2, r0
- lsl r0, r5, #0x1f
- lsr r0, r0, #0x1a
- orr r0, r2
- str r0, [r1, r3]
- b _022388BC
-_022388A6:
- mov r1, #0x75
- lsl r1, r1, #2
- lsl r3, r0, #6
- add r1, r4, r1
- ldr r2, [r1, r3]
- mov r0, #0x40
- bic r2, r0
- lsl r0, r5, #0x1f
- lsr r0, r0, #0x19
- orr r0, r2
- str r0, [r1, r3]
-_022388BC:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_022388C0
-MOD11_022388C0: ; 0x022388C0
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r0, [r4, #0x6c]
- ldr r1, _022388FC ; =0x000021F0
- lsl r0, r0, #2
- add r0, r4, r0
- ldr r2, [r0, r1]
- mov r0, #0x19
- mul r0, r2
- ldr r2, [r4, #0x64]
- lsl r2, r2, #2
- add r2, r4, r2
- ldr r1, [r2, r1]
- bl _u32_div_f
- add r1, r0, #1
- ldr r0, _02238900 ; =0x00002154
- str r1, [r4, r0]
- ldr r1, [r4, r0]
- cmp r1, #0x96
- ble _022388F6
- mov r1, #0x96
- str r1, [r4, r0]
-_022388F6:
- mov r0, #0
- pop {r4, pc}
- nop
-_022388FC: .word 0x000021F0
-_02238900: .word 0x00002154
-
- thumb_func_start MOD11_02238904
-MOD11_02238904: ; 0x02238904
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- str r0, [sp]
- ldr r1, [r5, #0x64]
- add r0, r6, #0
- bl MOD11_02230270
- ldr r1, [r5, #0x64]
- add r7, r0, #0
- lsl r1, r1, #6
- add r2, r5, r1
- mov r1, #0x83
- lsl r1, r1, #2
- ldr r1, [r2, r1]
- add r0, r6, #0
- bl MOD11_02230270
- add r4, r0, #0
- ldr r0, [r5, #0x64]
- mov r2, #0x82
- lsl r0, r0, #6
- add r0, r5, r0
- lsl r2, r2, #2
- ldr r1, [r0, r2]
- cmp r1, #0
- beq _022389E4
- cmp r7, r4
- beq _022389E4
- add r2, r2, #4
- ldr r2, [r0, r2]
- mov r0, #0xc0
- mul r0, r2
- add r2, r5, r0
- ldr r0, _022389F0 ; =0x00002D8C
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _022389E4
- mov r0, #0xf
- mul r0, r1
- mov r1, #0xa
- bl _s32_div_f
- ldr r1, _022389F4 ; =0x00002144
- str r0, [r5, r1]
- mov r0, #0x71
- lsl r0, r0, #2
- add r1, r5, r0
- lsl r0, r4, #3
- ldr r0, [r1, r0]
- lsl r1, r0, #0xb
- lsr r1, r1, #0x1f
- beq _02238992
- lsl r0, r0, #9
- lsr r0, r0, #0x1e
- mov r1, #0xc0
- mul r1, r0
- add r2, r5, r1
- ldr r1, _022389F0 ; =0x00002D8C
- ldr r1, [r2, r1]
- cmp r1, #0
- beq _02238992
- str r0, [r5, #0x6c]
- b _022389A0
-_02238992:
- ldr r0, [r5, #0x64]
- lsl r0, r0, #6
- add r1, r5, r0
- mov r0, #0x83
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- str r0, [r5, #0x6c]
-_022389A0:
- ldr r1, [r5, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _022389F0 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _022389D8
- ldr r2, [r5, #0x64]
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_022482A4
- mov r1, #0xc0
- mul r1, r0
- str r0, [r5, #0x6c]
- ldr r0, _022389F0 ; =0x00002D8C
- add r1, r5, r1
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _022389D8
- mov r2, #0x26
- str r2, [r5, #0xc]
- add r0, r5, #0
- mov r1, #1
- add r2, #0xf3
- bl MOD11_0223A434
-_022389D8:
- ldr r1, [r5, #0x64]
- ldr r2, [r5, #0x6c]
- add r0, r5, #0
- bl MOD11_0224C438
- b _022389EC
-_022389E4:
- ldr r1, [sp]
- add r0, r5, #0
- bl MOD11_0223A424
-_022389EC:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022389F0: .word 0x00002D8C
-_022389F4: .word 0x00002144
-
- thumb_func_start MOD11_022389F8
-MOD11_022389F8: ; 0x022389F8
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r0, [r4, #0x6c]
- ldr r1, _02238A34 ; =0x000021A8
- lsl r0, r0, #4
- add r0, r4, r0
- ldr r0, [r0, r1]
- cmp r0, #0x27
- ldr r0, _02238A38 ; =0x00003044
- bne _02238A22
- ldr r0, [r4, r0]
- lsl r0, r0, #4
- add r2, r4, r0
- ldr r0, _02238A3C ; =0x000003E1
- ldrb r0, [r2, r0]
- lsl r0, r0, #1
- b _02238A2C
-_02238A22:
- ldr r0, [r4, r0]
- lsl r0, r0, #4
- add r2, r4, r0
- ldr r0, _02238A3C ; =0x000003E1
- ldrb r0, [r2, r0]
-_02238A2C:
- sub r1, #0x54
- str r0, [r4, r1]
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-_02238A34: .word 0x000021A8
-_02238A38: .word 0x00003044
-_02238A3C: .word 0x000003E1
-
- thumb_func_start MOD11_02238A40
-MOD11_02238A40: ; 0x02238A40
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r4, r0
- lsl r0, r1, #1
- add r1, r4, r0
- ldr r0, _02238A74 ; =0x000030BC
- ldrh r0, [r1, r0]
- add r1, r2, r0
- ldr r0, _02238A78 ; =0x00002D6C
- ldrb r1, [r1, r0]
- cmp r1, #4
- bls _02238A68
- mov r1, #4
-_02238A68:
- ldr r0, _02238A7C ; =0x0225DC2C
- ldrb r1, [r0, r1]
- ldr r0, _02238A80 ; =0x00002154
- str r1, [r4, r0]
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-_02238A74: .word 0x000030BC
-_02238A78: .word 0x00002D6C
-_02238A7C: .word 0x0225DC2C
-_02238A80: .word 0x00002154
-
- thumb_func_start MOD11_02238A84
-MOD11_02238A84: ; 0x02238A84
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r3, r4, r0
- ldr r1, _02238AB4 ; =0x00002D8C
- mov r0, #0x78
- ldr r2, [r3, r1]
- add r1, r1, #4
- ldr r1, [r3, r1]
- mul r0, r2
- bl _u32_div_f
- add r1, r0, #1
- ldr r0, _02238AB8 ; =0x00002154
- str r1, [r4, r0]
- mov r0, #0
- pop {r4, pc}
- nop
-_02238AB4: .word 0x00002D8C
-_02238AB8: .word 0x00002154
-
- thumb_func_start MOD11_02238ABC
-MOD11_02238ABC: ; 0x02238ABC
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r6, r0, #0
- ldr r1, [r5, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- ldr r3, _02238B68 ; =0x00002DEC
- add r0, r5, r0
- ldrh r4, [r0, r3]
- cmp r4, #0
- beq _02238AF0
- add r2, r3, #2
- ldrh r2, [r0, r2]
- sub r3, #0xa0
- lsl r2, r2, #1
- add r0, r0, r2
- ldrh r0, [r0, r3]
- cmp r4, r0
- beq _02238AF8
-_02238AF0:
- add r0, r5, #0
- bl MOD11_0224683C
- add r4, r0, #0
-_02238AF8:
- ldr r0, [r5, #0x6c]
- lsl r1, r0, #4
- add r2, r5, r1
- ldr r1, _02238B6C ; =0x000021A8
- ldr r1, [r2, r1]
- cmp r1, #0x27
- beq _02238B5C
- lsl r0, r0, #6
- add r1, r5, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- bne _02238B5C
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0224C0F0
- cmp r0, #1
- bne _02238B5C
- lsl r0, r4, #4
- add r1, r5, r0
- ldr r0, _02238B70 ; =0x000003E1
- ldrb r0, [r1, r0]
- cmp r0, #0
- beq _02238B5C
- ldr r2, [r5, #0x64]
- ldr r3, _02238B74 ; =0x00002DCC
- add r0, r2, #0
- mov r6, #0xc0
- add r1, r5, r3
- mul r0, r6
- mov r2, #1
- ldr r7, [r1, r0]
- lsl r2, r2, #0x1e
- orr r2, r7
- str r2, [r1, r0]
- add r0, r6, #0
- add r0, #0xb4
- ldr r2, [r5, r0]
- ldr r0, [r5, #0x64]
- add r3, #0x10
- add r1, r0, #0
- mul r1, r6
- add r0, r5, r1
- str r2, [r0, r3]
- add r6, #0x64
- str r4, [r5, r6]
- b _02238B64
-_02238B5C:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_02238B64:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02238B68: .word 0x00002DEC
-_02238B6C: .word 0x000021A8
-_02238B70: .word 0x000003E1
-_02238B74: .word 0x00002DCC
-
- thumb_func_start MOD11_02238B78
-MOD11_02238B78: ; 0x02238B78
- push {r3, r4, r5, lr}
- add r5, r1, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- ldr r0, _02238BC8 ; =0x00003048
- ldr r0, [r5, r0]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl MOD11_02246BE8
- cmp r0, #0
- bne _02238BBC
- ldr r0, _02238BC8 ; =0x00003048
- ldr r0, [r5, r0]
- cmp r0, #0
- beq _02238BBC
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl MOD11_0224C07C
- cmp r0, #1
- bne _02238BBC
- ldr r0, _02238BC8 ; =0x00003048
- ldr r1, [r5, r0]
- mov r0, #0x49
- lsl r0, r0, #2
- str r1, [r5, r0]
- b _02238BC4
-_02238BBC:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223A424
-_02238BC4:
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02238BC8: .word 0x00003048
-
- thumb_func_start MOD11_02238BCC
-MOD11_02238BCC: ; 0x02238BCC
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- ldr r5, _02238C1C ; =0x00002D58
- mov r1, #0
- ldr r3, [r4, #0x6c]
- mov r2, #0xc0
- mul r2, r3
- add r3, r4, r2
- add r0, r1, #0
- add r2, r3, #0
- add r6, r5, #0
-_02238BEA:
- ldrsb r7, [r2, r6]
- cmp r7, #6
- ble _02238BF8
- add r7, r3, r0
- ldrsb r7, [r7, r5]
- sub r7, r7, #6
- add r1, r1, r7
-_02238BF8:
- add r0, r0, #1
- add r2, r2, #1
- cmp r0, #8
- blt _02238BEA
- mov r0, #0x14
- add r2, r1, #0
- mul r2, r0
- ldr r0, _02238C20 ; =0x00002154
- add r2, #0x3c
- str r2, [r4, r0]
- ldr r1, [r4, r0]
- cmp r1, #0xc8
- ble _02238C16
- mov r1, #0xc8
- str r1, [r4, r0]
-_02238C16:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02238C1C: .word 0x00002D58
-_02238C20: .word 0x00002154
-
- thumb_func_start MOD11_02238C24
-MOD11_02238C24: ; 0x02238C24
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- ldr r1, [r5, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- ldr r6, _02238C94 ; =0x00002DEC
- add r2, r5, r0
- ldrh r0, [r2, r6]
- cmp r0, #0
- beq _02238C58
- add r3, r6, #2
- ldrh r3, [r2, r3]
- sub r6, #0xa0
- lsl r3, r3, #1
- add r2, r2, r3
- ldrh r2, [r2, r6]
- cmp r0, r2
- beq _02238C5E
-_02238C58:
- add r0, r5, #0
- bl MOD11_0224683C
-_02238C5E:
- ldr r1, [r5, #0x6c]
- lsl r2, r1, #4
- add r3, r5, r2
- ldr r2, _02238C98 ; =0x000021A8
- ldr r2, [r3, r2]
- cmp r2, #0x27
- beq _02238C88
- lsl r0, r0, #4
- add r2, r5, r0
- ldr r0, _02238C9C ; =0x000003E1
- ldrb r0, [r2, r0]
- cmp r0, #0
- bne _02238C90
- lsl r0, r1, #6
- add r1, r5, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- bne _02238C90
-_02238C88:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223A424
-_02238C90:
- mov r0, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-_02238C94: .word 0x00002DEC
-_02238C98: .word 0x000021A8
-_02238C9C: .word 0x000003E1
-
- thumb_func_start MOD11_02238CA0
-MOD11_02238CA0: ; 0x02238CA0
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r7, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp, #8]
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp, #4]
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp]
- ldr r2, [sp, #8]
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r7, #0
- bl MOD11_02230270
- ldr r1, [sp, #4]
- cmp r1, #0
- beq _02238CF2
- cmp r1, #1
- beq _02238CF2
- cmp r1, #2
- beq _02238D70
- b _02238E4A
-_02238CF2:
- cmp r6, #5
- bls _02238CF8
- b _02238E4A
-_02238CF8:
- add r1, r6, r6
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02238D04: ; jump table
- .short _02238D10 - _02238D04 - 2 ; case 0
- .short _02238D20 - _02238D04 - 2 ; case 1
- .short _02238D30 - _02238D04 - 2 ; case 2
- .short _02238D40 - _02238D04 - 2 ; case 3
- .short _02238D50 - _02238D04 - 2 ; case 4
- .short _02238D60 - _02238D04 - 2 ; case 5
-_02238D10:
- lsl r0, r0, #3
- add r1, r4, r0
- mov r0, #0x71
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1b
- lsr r5, r0, #0x1d
- b _02238E4A
-_02238D20:
- lsl r0, r0, #3
- add r1, r4, r0
- mov r0, #0x71
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x16
- lsr r5, r0, #0x1d
- b _02238E4A
-_02238D30:
- lsl r0, r0, #3
- add r1, r4, r0
- mov r0, #0x71
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x11
- lsr r5, r0, #0x1d
- b _02238E4A
-_02238D40:
- lsl r0, r0, #3
- add r1, r4, r0
- mov r0, #0x71
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0xc
- lsr r5, r0, #0x1d
- b _02238E4A
-_02238D50:
- lsl r0, r0, #3
- add r1, r4, r0
- mov r0, #0x72
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1e
- lsr r5, r0, #0x1e
- b _02238E4A
-_02238D60:
- lsl r0, r0, #3
- add r1, r4, r0
- mov r0, #0x72
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1c
- lsr r5, r0, #0x1e
- b _02238E4A
-_02238D70:
- cmp r6, #5
- bhi _02238E4A
- add r1, r6, r6
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02238D80: ; jump table
- .short _02238D8C - _02238D80 - 2 ; case 0
- .short _02238DAC - _02238D80 - 2 ; case 1
- .short _02238DCC - _02238D80 - 2 ; case 2
- .short _02238DEC - _02238D80 - 2 ; case 3
- .short _02238E0C - _02238D80 - 2 ; case 4
- .short _02238E2C - _02238D80 - 2 ; case 5
-_02238D8C:
- mov r2, #0x71
- lsl r2, r2, #2
- add r6, r4, r2
- lsl r3, r0, #3
- ldr r7, [r6, r3]
- mov r1, #0x1c
- bic r7, r1
- sub r2, #8
- str r7, [r6, r3]
- add r3, r4, r2
- lsl r2, r0, #2
- ldr r1, [r3, r2]
- mov r0, #1
- bic r1, r0
- str r1, [r3, r2]
- b _02238E4A
-_02238DAC:
- mov r2, #0x71
- lsl r2, r2, #2
- add r6, r4, r2
- lsl r7, r0, #3
- ldr r3, [r6, r7]
- ldr r1, _02238E74 ; =0xFFFFFC7F
- sub r2, #8
- and r1, r3
- add r3, r4, r2
- lsl r2, r0, #2
- str r1, [r6, r7]
- ldr r1, [r3, r2]
- mov r0, #2
- bic r1, r0
- str r1, [r3, r2]
- b _02238E4A
-_02238DCC:
- mov r2, #0x71
- lsl r2, r2, #2
- add r6, r4, r2
- lsl r7, r0, #3
- ldr r3, [r6, r7]
- ldr r1, _02238E78 ; =0xFFFF8FFF
- sub r2, #8
- and r1, r3
- add r3, r4, r2
- lsl r2, r0, #2
- str r1, [r6, r7]
- ldr r1, [r3, r2]
- mov r0, #0x40
- bic r1, r0
- str r1, [r3, r2]
- b _02238E4A
-_02238DEC:
- mov r2, #0x71
- lsl r2, r2, #2
- add r6, r4, r2
- lsl r7, r0, #3
- ldr r3, [r6, r7]
- ldr r1, _02238E7C ; =0xFFF1FFFF
- sub r2, #8
- and r1, r3
- add r3, r4, r2
- lsl r2, r0, #2
- str r1, [r6, r7]
- ldr r1, [r3, r2]
- mov r0, #8
- bic r1, r0
- str r1, [r3, r2]
- b _02238E4A
-_02238E0C:
- mov r2, #0x72
- lsl r2, r2, #2
- add r6, r4, r2
- lsl r3, r0, #3
- ldr r7, [r6, r3]
- mov r1, #3
- bic r7, r1
- sub r2, #0xc
- str r7, [r6, r3]
- add r3, r4, r2
- lsl r2, r0, #2
- ldr r1, [r3, r2]
- mov r0, #4
- bic r1, r0
- str r1, [r3, r2]
- b _02238E4A
-_02238E2C:
- mov r2, #0x72
- lsl r2, r2, #2
- add r6, r4, r2
- lsl r3, r0, #3
- ldr r7, [r6, r3]
- mov r1, #0xc
- bic r7, r1
- sub r2, #0xc
- str r7, [r6, r3]
- lsl r3, r0, #2
- add r1, r4, r2
- ldr r2, [r1, r3]
- ldr r0, _02238E80 ; =0xFFFFFBFF
- and r0, r2
- str r0, [r1, r3]
-_02238E4A:
- ldr r0, [sp, #4]
- cmp r0, #0
- bne _02238E5C
- cmp r5, #0
- bne _02238E5C
- ldr r1, [sp]
- add r0, r4, #0
- bl MOD11_0223A424
-_02238E5C:
- ldr r0, [sp, #4]
- cmp r0, #1
- bne _02238E6E
- cmp r5, #0
- beq _02238E6E
- ldr r1, [sp]
- add r0, r4, #0
- bl MOD11_0223A424
-_02238E6E:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02238E74: .word 0xFFFFFC7F
-_02238E78: .word 0xFFFF8FFF
-_02238E7C: .word 0xFFF1FFFF
-_02238E80: .word 0xFFFFFBFF
-
- thumb_func_start MOD11_02238E84
-MOD11_02238E84: ; 0x02238E84
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r1, r0, #0
- ldr r0, [r4, #0x6c]
- lsl r0, r0, #6
- add r2, r4, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r2, r0]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1f
- bne _02238EB0
- add r0, r4, #0
- bl MOD11_0223A424
-_02238EB0:
- mov r0, #0
- pop {r4, pc}
-
- thumb_func_start MOD11_02238EB4
-MOD11_02238EB4: ; 0x02238EB4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r1, r0, #0
- ldr r0, [r4, #0x6c]
- mov r2, #0xc0
- add r3, r0, #0
- mul r3, r2
- add r5, r4, r3
- ldr r3, _02238EFC ; =0x00002DAC
- ldr r0, [r5, r3]
- cmp r0, #0
- bne _02238EF2
- add r0, r3, #4
- ldr r5, [r5, r0]
- mov r0, #1
- lsl r0, r0, #0x18
- tst r0, r5
- bne _02238EF2
- ldr r0, [r4, #0x64]
- mul r2, r0
- add r0, r4, r2
- ldr r0, [r0, r3]
- cmp r0, #0
- bne _02238EF8
-_02238EF2:
- add r0, r4, #0
- bl MOD11_0223A424
-_02238EF8:
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02238EFC: .word 0x00002DAC
-
- thumb_func_start MOD11_02238F00
-MOD11_02238F00: ; 0x02238F00
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- ldr r2, [r4, #0x64]
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_022473F8
- ldr r2, [r4, #0x64]
- mov r1, #0xc0
- mul r1, r2
- add r2, r4, r1
- ldr r1, _02238F48 ; =0x00002DCC
- ldr r1, [r2, r1]
- lsl r1, r1, #0x13
- lsr r2, r1, #0x1d
- sub r1, r0, #1
- cmp r2, r1
- blo _02238F3A
- cmp r0, #2
- bge _02238F42
-_02238F3A:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_02238F42:
- mov r0, #0
- pop {r4, r5, r6, pc}
- nop
-_02238F48: .word 0x00002DCC
-
- thumb_func_start MOD11_02238F4C
-MOD11_02238F4C: ; 0x02238F4C
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- ldr r1, [r4, #0x64]
- add r0, r5, #0
- bl MOD11_02230270
- mov r2, #0x72
- mov r1, #1
- add r3, r0, #0
- eor r3, r1
- lsl r0, r3, #3
- add r5, r4, r0
- lsl r2, r2, #2
- ldr r5, [r5, r2]
- lsl r5, r5, #0x1c
- lsr r5, r5, #0x1e
- cmp r5, #2
- bne _02238FA2
- mov r0, #0xb5
- lsl r0, r0, #2
- add r2, r4, r0
- ldr r3, [r4, #0x64]
- mov r0, #0x1c
- mul r0, r3
- ldr r5, [r2, r0]
- mov r3, #1
- bic r5, r3
- orr r1, r5
- str r1, [r2, r0]
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
- b _02238FCA
-_02238FA2:
- add r5, r2, #0
- sub r5, #0xc
- add r5, r4, r5
- lsl r3, r3, #2
- ldr r6, [r5, r3]
- lsl r1, r1, #0xa
- orr r1, r6
- str r1, [r5, r3]
- add r2, r4, r2
- ldr r4, [r2, r0]
- mov r3, #0xc
- add r1, r4, #0
- bic r1, r3
- lsl r3, r4, #0x1c
- lsr r3, r3, #0x1e
- add r3, r3, #1
- lsl r3, r3, #0x1e
- lsr r3, r3, #0x1c
- orr r1, r3
- str r1, [r2, r0]
-_02238FCA:
- mov r0, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02238FD0
-MOD11_02238FD0: ; 0x02238FD0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r1, #0
- add r4, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- str r0, [sp, #4]
- add r0, r4, #0
- add r1, r5, #0
- add r2, r6, #0
- bl MOD11_0223C230
- add r7, r0, #0
- add r0, r4, #0
- add r1, r7, #0
- bl MOD11_02230270
- mov r1, #0x72
- lsl r1, r1, #2
- add r4, r5, r1
- lsl r6, r0, #3
- str r0, [sp]
- ldr r0, [r4, r6]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1e
- beq _0223906A
- sub r1, #0x94
- str r0, [r5, r1]
- add r0, r5, #0
- mov r1, #6
- add r0, #0x88
- str r1, [r0]
- add r0, r5, #0
- add r0, #0x94
- str r7, [r0]
- ldr r1, [r5, #0x78]
- add r0, r5, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #3
- beq _02239048
- ldr r1, [r5, #0x78]
- add r0, r5, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #3
- bne _02239072
-_02239048:
- mov r0, #0x6f
- ldr r1, [sp]
- lsl r0, r0, #2
- add r2, r5, r0
- lsl r1, r1, #2
- ldr r7, [r2, r1]
- ldr r3, _02239078 ; =0xFFFFFBFF
- sub r0, #0x88
- and r3, r7
- str r3, [r2, r1]
- ldr r2, [r4, r6]
- mov r1, #0xc
- bic r2, r1
- str r2, [r4, r6]
- mov r1, #0
- str r1, [r5, r0]
- b _02239072
-_0223906A:
- ldr r1, [sp, #4]
- add r0, r5, #0
- bl MOD11_0223A424
-_02239072:
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02239078: .word 0xFFFFFBFF
-
- thumb_func_start MOD11_0223907C
-MOD11_0223907C: ; 0x0223907C
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- str r0, [sp, #8]
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- str r0, [sp, #4]
- cmp r4, #0
- bne _0223912C
- add r0, r6, #0
- bl MOD11_0222FF84
- mov r6, #0
- str r0, [sp]
- cmp r0, #0
- ble _02239194
-_022390BE:
- ldr r0, _0223919C ; =0x000021EC
- add r1, r5, r6
- ldrb r4, [r1, r0]
- ldr r0, [sp, #8]
- cmp r0, #0
- bne _022390F6
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- add r2, r4, #0
- add r3, r7, #0
- bl MOD11_02246D84
- cmp r0, #1
- bne _02239122
- mov r0, #0xc0
- mul r0, r4
- add r1, r5, r0
- ldr r0, _022391A0 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02239122
- ldr r1, [sp, #4]
- add r0, r5, #0
- bl MOD11_0223A424
- add r5, #0x80
- str r4, [r5]
- b _02239194
-_022390F6:
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- add r2, r4, #0
- add r3, r7, #0
- bl MOD11_02246D84
- cmp r0, #0
- beq _02239114
- mov r0, #0xc0
- mul r0, r4
- add r1, r5, r0
- ldr r0, _022391A0 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _02239122
-_02239114:
- ldr r1, [sp, #4]
- add r0, r5, #0
- bl MOD11_0223A424
- add r5, #0x80
- str r4, [r5]
- b _02239194
-_02239122:
- ldr r0, [sp]
- add r6, r6, #1
- cmp r6, r0
- blt _022390BE
- b _02239194
-_0223912C:
- add r0, r6, #0
- add r1, r5, #0
- add r2, r4, #0
- bl MOD11_0223C230
- add r4, r0, #0
- ldr r0, [sp, #8]
- cmp r0, #0
- bne _0223916A
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- add r2, r4, #0
- add r3, r7, #0
- bl MOD11_02246D84
- cmp r0, #1
- bne _02239194
- mov r0, #0xc0
- mul r0, r4
- add r1, r5, r0
- ldr r0, _022391A0 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02239194
- ldr r1, [sp, #4]
- add r0, r5, #0
- bl MOD11_0223A424
- add r5, #0x80
- str r4, [r5]
- b _02239194
-_0223916A:
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- add r2, r4, #0
- add r3, r7, #0
- bl MOD11_02246D84
- cmp r0, #0
- beq _02239188
- mov r0, #0xc0
- mul r0, r4
- add r1, r5, r0
- ldr r0, _022391A0 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _02239194
-_02239188:
- ldr r1, [sp, #4]
- add r0, r5, #0
- bl MOD11_0223A424
- add r5, #0x80
- str r4, [r5]
-_02239194:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- nop
-_0223919C: .word 0x000021EC
-_022391A0: .word 0x00002D8C
-
- thumb_func_start MOD11_022391A4
-MOD11_022391A4: ; 0x022391A4
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp]
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0223C230
- add r6, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r7, #0
- bl MOD11_0223C230
- add r7, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02230270
- add r6, r0, #0
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_02230270
- cmp r6, r0
- bne _02239200
- ldr r1, [sp]
- add r0, r4, #0
- bl MOD11_0223A424
-_02239200:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02239204
-MOD11_02239204: ; 0x02239204
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- str r0, [sp]
- add r0, r1, #0
- mov r1, #1
- bl MOD11_0223A424
- mov r7, #0
- ldr r0, [sp]
- add r1, r7, #0
- bl MOD11_0222FFC8
- cmp r0, #0
- bgt _02239222
- b _02239360
-_02239222:
- ldr r0, [sp]
- mov r1, #0
- add r2, r7, #0
- bl MOD11_02230014
- mov r1, #0xad
- mov r2, #0
- add r4, r0, #0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r6, r0, #0x10
- add r0, r4, #0
- mov r1, #6
- mov r2, #0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- add r0, r4, #0
- mov r1, #0xa
- mov r2, #0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #4]
- cmp r0, #0x35
- bne _022392EC
- cmp r6, #0
- beq _022392EC
- ldr r0, _02239368 ; =0x000001EE
- cmp r6, r0
- beq _022392EC
- ldr r0, [sp, #8]
- cmp r0, #0
- bne _022392EC
- bl rand_LC
- mov r1, #0xa
- bl _s32_div_f
- cmp r1, #0
- bne _022392EC
- bl rand_LC
- mov r1, #0x64
- bl _s32_div_f
- add r5, r1, #0
- add r0, r4, #0
- mov r1, #0xa0
- mov r2, #0
- bl GetMonDataEncrypted
- sub r0, r0, #1
- mov r1, #0xa
- bl _u32_div_f
- lsl r0, r0, #0x18
- lsr r2, r0, #0x18
- cmp r2, #0xa
- blo _022392A4
- mov r2, #9
-_022392A4:
- mov r1, #0
- ldr r3, _0223936C ; =0x0225E150
- str r1, [sp, #0xc]
-_022392AA:
- ldrb r0, [r3]
- cmp r0, r5
- ble _022392C4
- ldr r3, [sp, #0xc]
- ldr r5, _02239370 ; =0x0225DD24
- add r2, r2, r3
- lsl r2, r2, #1
- add r0, r4, #0
- mov r1, #6
- add r2, r5, r2
- bl SetMonDataEncrypted
- b _022392EC
-_022392C4:
- cmp r5, #0x62
- blt _022392E2
- cmp r5, #0x63
- bgt _022392E2
- mov r3, #0x63
- sub r3, r3, r5
- add r2, r2, r3
- lsl r3, r2, #1
- ldr r2, _02239374 ; =0x0225DC48
- add r0, r4, #0
- mov r1, #6
- add r2, r2, r3
- bl SetMonDataEncrypted
- b _022392EC
-_022392E2:
- add r1, r1, #1
- add r3, r3, #1
- str r1, [sp, #0xc]
- cmp r1, #9
- blt _022392AA
-_022392EC:
- ldr r0, [sp, #4]
- cmp r0, #0x76
- bne _02239350
- cmp r6, #0
- beq _02239350
- ldr r0, _02239368 ; =0x000001EE
- cmp r6, r0
- beq _02239350
- ldr r0, [sp, #8]
- cmp r0, #0
- bne _02239350
- mov r2, #0
- add r0, r4, #0
- mov r1, #0xa0
- str r2, [sp, #0xc]
- mov r5, #0xa
- bl GetMonDataEncrypted
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- cmp r1, #0xa
- ble _02239324
- ldr r0, [sp, #0xc]
-_0223931A:
- add r5, #0xa
- add r0, r0, #1
- cmp r5, r1
- blt _0223931A
- str r0, [sp, #0xc]
-_02239324:
- ldr r0, [sp, #0xc]
- cmp r0, #0xa
- blt _0223932E
- bl ErrorHandling
-_0223932E:
- bl rand_LC
- mov r1, #0x64
- bl _s32_div_f
- ldr r2, [sp, #0xc]
- ldr r0, _02239378 ; =0x0225E15C
- ldrb r0, [r0, r2]
- cmp r1, r0
- bge _02239350
- mov r0, #0x5e
- str r0, [sp, #0xc]
- add r0, r4, #0
- mov r1, #6
- add r2, sp, #0xc
- bl SetMonDataEncrypted
-_02239350:
- ldr r0, [sp]
- mov r1, #0
- add r7, r7, #1
- bl MOD11_0222FFC8
- cmp r7, r0
- bge _02239360
- b _02239222
-_02239360:
- mov r0, #0
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02239368: .word 0x000001EE
-_0223936C: .word 0x0225E150
-_02239370: .word 0x0225DD24
-_02239374: .word 0x0225DC48
-_02239378: .word 0x0225E15C
-
- thumb_func_start MOD11_0223937C
-MOD11_0223937C: ; 0x0223937C
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- mov r0, #0xb5
- ldr r1, [r4, #0x64]
- lsl r0, r0, #2
- add r3, r4, r0
- mov r0, #0x1c
- add r2, r1, #0
- mul r2, r0
- ldr r1, [r3, r2]
- mov r0, #0x10
- orr r0, r1
- str r0, [r3, r2]
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022393A4
-MOD11_022393A4: ; 0x022393A4
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r4, #0
- bl MOD11_02249B7C
- cmp r0, #1
- bne _022393E0
- add r0, r4, #0
- add r1, r7, #0
- bl MOD11_0223A424
-_022393E0:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_022393E4
-MOD11_022393E4: ; 0x022393E4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r1, #0
- str r0, [sp]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- str r0, [sp, #4]
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- add r7, r0, #0
- ldr r0, [sp]
- ldr r2, [sp, #4]
- add r1, r5, #0
- bl MOD11_0223C230
- add r1, r0, #0
- cmp r6, #0
- bne _02239438
- add r0, r5, #0
- bl MOD11_02249D90
- cmp r4, r0
- bne _0223944A
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_0223A424
- b _0223944A
-_02239438:
- add r0, r5, #0
- bl MOD11_02249D90
- cmp r4, r0
- beq _0223944A
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_0223A424
-_0223944A:
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02239450
-MOD11_02239450: ; 0x02239450
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223A444
- add r6, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r7, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r4, #0
- bl MOD11_02249B4C
- add r1, r0, #0
- add r0, r4, #0
- mov r2, #1
- bl MOD11_0224C12C
- str r0, [r6]
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0223949C
-MOD11_0223949C: ; 0x0223949C
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223A444
- add r6, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r7, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r4, #0
- bl MOD11_02249B4C
- add r1, r0, #0
- add r0, r4, #0
- mov r2, #2
- bl MOD11_0224C12C
- str r0, [r6]
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022394E8
-MOD11_022394E8: ; 0x022394E8
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r4, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r6, r0, #0
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x79
- bne _02239516
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0223A424
- mov r0, #0
- pop {r4, r5, r6, pc}
-_02239516:
- add r0, r4, #0
- bl MOD11_02230294
- ldr r1, _02239570 ; =0x0225E168
- mov r2, #0x1b
- ldrb r4, [r1, r0]
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- mov r3, #0
- bl MOD11_02243420
- cmp r4, r0
- beq _02239564
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- cmp r4, r0
- beq _02239564
- ldr r1, [r5, #0x64]
- lsl r0, r4, #0x18
- add r3, r1, #0
- mov r2, #0xc0
- mul r3, r2
- ldr r1, _02239574 ; =0x00002D64
- lsr r0, r0, #0x18
- add r3, r5, r3
- strb r0, [r3, r1]
- ldr r3, [r5, #0x64]
- add r1, r1, #1
- add r6, r3, #0
- mul r6, r2
- add r3, r5, r6
- strb r0, [r3, r1]
- add r2, #0x70
- str r4, [r5, r2]
- b _0223956C
-_02239564:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_0223956C:
- mov r0, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-_02239570: .word 0x0225E168
-_02239574: .word 0x00002D64
-
- thumb_func_start MOD11_02239578
-MOD11_02239578: ; 0x02239578
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_02230294
- lsl r1, r0, #1
- ldr r0, _0223959C ; =0x0225DD0A
- ldrh r1, [r0, r1]
- mov r0, #0x49
- lsl r0, r0, #2
- str r1, [r4, r0]
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0223959C: .word 0x0225DD0A
-
- thumb_func_start MOD11_022395A0
-MOD11_022395A0: ; 0x022395A0
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_02230294
- lsl r1, r0, #2
- ldr r0, _022395C4 ; =0x0225DD48
- ldr r1, [r0, r1]
- ldr r0, _022395C8 ; =0x00002174
- str r1, [r4, r0]
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_022395C4: .word 0x0225DD48
-_022395C8: .word 0x00002174
-
- thumb_func_start MOD11_022395CC
-MOD11_022395CC: ; 0x022395CC
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r5, r0, #0
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02249DF0
- cmp r0, #0
- beq _022395FE
- ldr r1, _0223960C ; =0x00002154
- str r0, [r4, r1]
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02249E04
- ldr r1, _02239610 ; =0x00002160
- str r0, [r4, r1]
- b _02239606
-_022395FE:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0223A424
-_02239606:
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_0223960C: .word 0x00002154
-_02239610: .word 0x00002160
-
- thumb_func_start MOD11_02239614
-MOD11_02239614: ; 0x02239614
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- ldr r2, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r2
- add r1, r4, r0
- ldr r0, _02239674 ; =0x00002DB8
- ldrh r0, [r1, r0]
- cmp r0, #0
- beq _0223965A
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- mov r3, #0x3c
- bl MOD11_02246D84
- cmp r0, #1
- bne _0223965A
- add r0, r4, #0
- add r1, r7, #0
- bl MOD11_0223A424
- b _02239670
-_0223965A:
- ldr r2, [r4, #0x6c]
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02249F8C
- cmp r0, #1
- beq _02239670
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_02239670:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02239674: .word 0x00002DB8
-
- thumb_func_start MOD11_02239678
-MOD11_02239678: ; 0x02239678
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- ldr r2, [r4, #0x64]
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0224A4E0
- cmp r0, #1
- beq _022396A4
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_022396A4:
- mov r0, #0
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_022396A8
-MOD11_022396A8: ; 0x022396A8
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp]
- mov r2, #0
- str r2, [sp, #4]
- add r0, r5, #0
- add r1, r4, #0
- add r3, r2, #0
- str r2, [sp, #8]
- bl MOD11_02255980
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022396D8
-MOD11_022396D8: ; 0x022396D8
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r0, r5, #0
- mov r1, #0
- bl MOD11_0224AD90
- add r4, r0, #0
- beq _02239714
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- add r1, r0, #0
- cmp r4, #0xff
- bne _0223970C
- add r0, r5, #0
- bl MOD11_0223A424
- b _02239714
-_0223970C:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_02239714:
- mov r0, #0
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_02239718
-MOD11_02239718: ; 0x02239718
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- add r5, r0, #0
- bl MOD11_0222FF84
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- mov r2, #0
- str r2, [sp]
- mov r0, #6
- str r0, [sp, #4]
- add r0, r5, #0
- add r1, r4, #0
- add r3, r2, #0
- bl MOD11_022558E0
- mov r0, #0
- str r0, [r4, #0x78]
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02239748
-MOD11_02239748: ; 0x02239748
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #0
- bl MOD11_0224AD90
- add r5, r0, #0
- beq _0223977A
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r1, r0, #0
- cmp r5, #0xff
- bne _02239774
- add r0, r4, #0
- bl MOD11_0223A424
- b _0223977A
-_02239774:
- ldr r0, _02239780 ; =0x000021A0
- sub r1, r5, #1
- strb r1, [r4, r0]
-_0223977A:
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02239780: .word 0x000021A0
-
- thumb_func_start MOD11_02239784
-MOD11_02239784: ; 0x02239784
- push {r4, lr}
- add r4, r0, #0
- add r0, r1, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0222FF74
- mov r1, #4
- tst r0, r1
- beq _022397A2
- add r0, r4, #0
- bl MOD11_02256774
-_022397A2:
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022397A8
-MOD11_022397A8: ; 0x022397A8
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- str r0, [sp]
- add r0, r6, #0
- add r1, r5, #0
- add r2, r4, #0
- bl MOD11_0223C230
- add r4, r0, #0
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_02230270
- add r6, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- add r7, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- add r2, r0, #0
- lsl r0, r6, #2
- add r1, r5, r0
- mov r0, #0x6f
- lsl r0, r0, #2
- ldr r1, [r1, r0]
- mov r0, #0x80
- tst r0, r1
- beq _0223989C
- mov r0, #0xc0
- add r6, r4, #0
- mul r6, r0
- ldr r0, _022398A8 ; =0x00002D8C
- add r1, r5, r6
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0223989C
- lsl r1, r7, #0x18
- lsl r2, r2, #0x18
- mov r0, #5
- lsr r1, r1, #0x18
- lsr r2, r2, #0x18
- bl MOD11_02246B9C
- cmp r0, #0x14
- bgt _0223983A
- bge _02239862
- cmp r0, #0
- bgt _02239834
- beq _02239872
- b _0223987E
-_02239834:
- cmp r0, #0xa
- beq _0223986A
- b _0223987E
-_0223983A:
- cmp r0, #0x50
- bgt _02239846
- bge _02239852
- cmp r0, #0x28
- beq _0223985A
- b _0223987E
-_02239846:
- cmp r0, #0xa0
- bne _0223987E
- ldr r0, _022398AC ; =0x0000215C
- mov r1, #2
- str r1, [r5, r0]
- b _02239882
-_02239852:
- ldr r0, _022398AC ; =0x0000215C
- mov r1, #4
- str r1, [r5, r0]
- b _02239882
-_0223985A:
- ldr r0, _022398AC ; =0x0000215C
- mov r1, #8
- str r1, [r5, r0]
- b _02239882
-_02239862:
- ldr r0, _022398AC ; =0x0000215C
- mov r1, #0x10
- str r1, [r5, r0]
- b _02239882
-_0223986A:
- ldr r0, _022398AC ; =0x0000215C
- mov r1, #0x20
- str r1, [r5, r0]
- b _02239882
-_02239872:
- ldr r1, [sp]
- add r0, r5, #0
- bl MOD11_0223A424
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0223987E:
- bl ErrorHandling
-_02239882:
- ldr r0, _022398B0 ; =0x00002D90
- add r1, r5, r6
- ldr r1, [r1, r0]
- mov r0, #0
- mvn r0, r0
- mul r0, r1
- ldr r1, _022398AC ; =0x0000215C
- ldr r1, [r5, r1]
- bl MOD11_022476C0
- ldr r1, _022398AC ; =0x0000215C
- str r0, [r5, r1]
- b _022398A4
-_0223989C:
- ldr r1, [sp]
- add r0, r5, #0
- bl MOD11_0223A424
-_022398A4:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022398A8: .word 0x00002D8C
-_022398AC: .word 0x0000215C
-_022398B0: .word 0x00002D90
-
- thumb_func_start MOD11_022398B4
-MOD11_022398B4: ; 0x022398B4
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r6, r0, #0
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x20
- ldr r0, _0223992C ; =0x00003044
- bne _022398E6
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _02239930 ; =0x000003E5
- ldrb r0, [r1, r0]
- lsl r0, r0, #0x11
- lsr r4, r0, #0x10
- b _022398F0
-_022398E6:
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _02239930 ; =0x000003E5
- ldrb r4, [r1, r0]
-_022398F0:
- cmp r4, #0
- bne _022398F8
- bl ErrorHandling
-_022398F8:
- bl rand_LC
- mov r1, #0x64
- bl _s32_div_f
- cmp r1, r4
- bge _0223991E
- add r0, r5, #0
- add r0, #0x94
- ldr r1, [r0]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _02239934 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0223991E
- mov r0, #0
- pop {r4, r5, r6, pc}
-_0223991E:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0223A424
- mov r0, #0
- pop {r4, r5, r6, pc}
- nop
-_0223992C: .word 0x00003044
-_02239930: .word 0x000003E5
-_02239934: .word 0x00002D8C
-
- thumb_func_start MOD11_02239938
-MOD11_02239938: ; 0x02239938
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r7, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r6, r0, #0
- mov r3, #0xb5
- mov r2, #0xc0
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r0, r5, r0
- lsl r3, r3, #6
- ldrh r4, [r0, r3]
- add r2, #0xf9
- cmp r4, r2
- bne _022399BA
- ldr r4, [r5, #0x6c]
- mov r2, #0xc0
- mul r2, r4
- add r4, r5, r2
- add r2, r3, #0
- add r2, #0x4c
- ldr r2, [r4, r2]
- cmp r2, #0
- beq _022399BA
- add r3, #0x70
- ldr r2, [r0, r3]
- mov r0, #2
- lsl r0, r0, #0x14
- tst r0, r2
- bne _022399BA
- add r0, r7, #0
- bl MOD11_02230E88
- bl FUN_02005EE0
- cmp r0, #0
- beq _02239998
- cmp r0, #1
- beq _0223999C
- cmp r0, #2
- beq _022399A0
-_02239998:
- mov r4, #0
- b _022399A2
-_0223999C:
- mov r4, #0xa
- b _022399A2
-_022399A0:
- mov r4, #0x1e
-_022399A2:
- bl rand_LC
- mov r1, #0x64
- bl _s32_div_f
- cmp r1, r4
- ble _022399C2
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0223A424
- b _022399C2
-_022399BA:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_022399C2:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022399C8
-MOD11_022399C8: ; 0x022399C8
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r1, r0, #0
- ldr r0, _022399F8 ; =0x000003DE
- add r2, r4, r0
- ldr r0, _022399FC ; =0x00003044
- ldr r0, [r4, r0]
- lsl r0, r0, #4
- add r0, r2, r0
- bl FUN_0206AB58
- mov r1, #0x4d
- lsl r1, r1, #2
- str r0, [r4, r1]
- mov r0, #0
- pop {r4, pc}
- nop
-_022399F8: .word 0x000003DE
-_022399FC: .word 0x00003044
-
- thumb_func_start MOD11_02239A00
-MOD11_02239A00: ; 0x02239A00
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp]
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0223C230
- add r1, r0, #0
- ldr r3, [sp]
- add r0, r5, #0
- add r2, r7, #0
- bl MOD11_022562E4
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02239A40
-MOD11_02239A40: ; 0x02239A40
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r5, #0
- bl MOD11_02256308
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02239A6C
-MOD11_02239A6C: ; 0x02239A6C
- push {r4, lr}
- add r4, r0, #0
- add r0, r1, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- mov r1, #0
- bl MOD11_02256398
- mov r0, #0
- pop {r4, pc}
-
- thumb_func_start MOD11_02239A84
-MOD11_02239A84: ; 0x02239A84
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r1, r0, #0
- mov r0, #0x4a
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- ldr r2, _02239AC0 ; =0x0000219C
- str r0, [sp]
- add r3, r4, r1
- ldrb r2, [r3, r2]
- add r0, r5, #0
- mov r3, #0
- bl MOD11_02230370
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_02239AC0: .word 0x0000219C
-
- thumb_func_start MOD11_02239AC4
-MOD11_02239AC4: ; 0x02239AC4
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0223C230
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_022470B8
- cmp r0, #0
- beq _02239B02
- add r0, r4, #0
- add r1, r7, #0
- bl MOD11_0223A424
-_02239B02:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02239B08
-MOD11_02239B08: ; 0x02239B08
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r5, #0
- bl MOD11_022563D0
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02239B34
-MOD11_02239B34: ; 0x02239B34
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r5, #0
- bl MOD11_022563F8
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02239B60
-MOD11_02239B60: ; 0x02239B60
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r5, #0
- bl MOD11_02256420
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02239B8C
-MOD11_02239B8C: ; 0x02239B8C
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r5, #0
- bl MOD11_02256448
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02239BB8
-MOD11_02239BB8: ; 0x02239BB8
- push {r4, lr}
- add r4, r0, #0
- add r0, r1, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_02256470
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02239BD0
-MOD11_02239BD0: ; 0x02239BD0
- push {r4, lr}
- add r4, r0, #0
- add r0, r1, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0225648C
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02239BE8
-MOD11_02239BE8: ; 0x02239BE8
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- str r0, [sp]
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0223C230
- add r1, r0, #0
- ldr r3, [sp]
- add r0, r5, #0
- add r2, r7, #0
- bl MOD11_022564A8
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02239C28
-MOD11_02239C28: ; 0x02239C28
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_022564F4
- mov r0, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02239C54
-MOD11_02239C54: ; 0x02239C54
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- mov r2, #0x4e
- lsl r2, r2, #2
- add r6, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r4, r2
- bl MOD11_02248308
- cmp r0, #0
- bne _02239C84
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_02239C84:
- mov r0, #0
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_02239C88
-MOD11_02239C88: ; 0x02239C88
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r4, r0, #0
- bl MOD11_0222FF84
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r2, r0, #0
- cmp r2, #3
- beq _02239CAE
- cmp r2, #4
- beq _02239CD6
- b _02239CFE
-_02239CAE:
- mov r5, #0
- cmp r6, #0
- ble _02239D0E
- mov r7, #1
-_02239CB6:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _02239D14 ; =0x00000195
- ldrb r0, [r0, r1]
- tst r0, r7
- bne _02239CCE
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_022565A0
-_02239CCE:
- add r5, r5, #1
- cmp r5, r6
- blt _02239CB6
- b _02239D0E
-_02239CD6:
- mov r5, #0
- cmp r6, #0
- ble _02239D0E
- mov r7, #1
-_02239CDE:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _02239D14 ; =0x00000195
- ldrb r0, [r0, r1]
- tst r0, r7
- beq _02239CF6
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_022565A0
-_02239CF6:
- add r5, r5, #1
- cmp r5, r6
- blt _02239CDE
- b _02239D0E
-_02239CFE:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r4, #0
- bl MOD11_022565A0
-_02239D0E:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02239D14: .word 0x00000195
-
- thumb_func_start MOD11_02239D18
-MOD11_02239D18: ; 0x02239D18
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r4, r0, #0
- bl MOD11_0222FF84
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r2, r0, #0
- cmp r2, #3
- beq _02239D3E
- cmp r2, #4
- beq _02239D66
- b _02239D8E
-_02239D3E:
- mov r5, #0
- cmp r6, #0
- ble _02239D9E
- mov r7, #1
-_02239D46:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _02239DA4 ; =0x00000195
- ldrb r0, [r0, r1]
- tst r0, r7
- bne _02239D5E
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_022565BC
-_02239D5E:
- add r5, r5, #1
- cmp r5, r6
- blt _02239D46
- b _02239D9E
-_02239D66:
- mov r5, #0
- cmp r6, #0
- ble _02239D9E
- mov r7, #1
-_02239D6E:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _02239DA4 ; =0x00000195
- ldrb r0, [r0, r1]
- tst r0, r7
- beq _02239D86
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_022565BC
-_02239D86:
- add r5, r5, #1
- cmp r5, r6
- blt _02239D6E
- b _02239D9E
-_02239D8E:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r4, #0
- bl MOD11_022565BC
-_02239D9E:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02239DA4: .word 0x00000195
-
- thumb_func_start MOD11_02239DA8
-MOD11_02239DA8: ; 0x02239DA8
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x18
- str r0, [sp]
- str r1, [sp, #4]
- add r0, r1, #0
- mov r1, #1
- mov r5, #0
- bl MOD11_0223A424
- ldr r0, [sp, #4]
- bl MOD11_0223A404
- add r4, r0, #0
- ldr r0, [sp, #4]
- bl MOD11_0223A404
- str r0, [sp, #0x14]
- ldr r0, [sp]
- bl MOD11_0222FF74
- str r0, [sp, #0xc]
- ldr r0, [sp]
- ldr r1, [sp, #4]
- add r2, r4, #0
- bl MOD11_0223C230
- str r0, [sp, #0x10]
- ldr r0, [sp, #0xc]
- mov r1, #8
- tst r0, r1
- bne _02239DFA
- ldr r0, [sp, #0xc]
- mov r1, #0x10
- tst r0, r1
- beq _02239EDA
- ldr r0, [sp]
- ldr r1, [sp, #0x10]
- bl MOD11_02230270
- cmp r0, #0
- beq _02239EDA
-_02239DFA:
- ldr r0, [sp]
- ldr r1, [sp, #0x10]
- bl MOD11_0222FF88
- add r7, r0, #0
- ldr r0, [sp]
- ldr r1, [sp, #0x10]
- bl MOD11_022302BC
- add r1, r0, #0
- ldr r0, [sp]
- bl MOD11_0222FF88
- str r0, [sp, #8]
- ldr r0, [sp]
- ldr r1, [sp, #0x10]
- bl MOD11_0222FF7C
- add r0, r7, #0
- mov r4, #0
- bl FUN_0206B9AC
- cmp r0, #0
- ble _02239E68
-_02239E2A:
- add r0, r7, #0
- add r1, r4, #0
- bl FUN_0206B9B0
- mov r1, #0xad
- mov r2, #0
- add r6, r0, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _02239E5C
- add r0, r6, #0
- mov r1, #0xad
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r1, _02239F48 ; =0x000001EE
- cmp r0, r1
- beq _02239E5C
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- add r5, r5, r0
-_02239E5C:
- add r0, r7, #0
- add r4, r4, #1
- bl FUN_0206B9AC
- cmp r4, r0
- blt _02239E2A
-_02239E68:
- ldr r0, [sp, #0xc]
- cmp r0, #0x4b
- beq _02239E76
- cmp r0, #0xcb
- beq _02239E76
- cmp r0, #0x4a
- bne _02239E82
-_02239E76:
- ldr r0, [sp]
- ldr r1, [sp, #0x10]
- bl MOD11_02230270
- cmp r0, #0
- beq _02239ECC
-_02239E82:
- ldr r0, [sp, #8]
- mov r4, #0
- bl FUN_0206B9AC
- cmp r0, #0
- ble _02239ECC
- ldr r7, _02239F48 ; =0x000001EE
-_02239E90:
- ldr r0, [sp, #8]
- add r1, r4, #0
- bl FUN_0206B9B0
- mov r1, #0xad
- mov r2, #0
- add r6, r0, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _02239EC0
- add r0, r6, #0
- mov r1, #0xad
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, r7
- beq _02239EC0
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- add r5, r5, r0
-_02239EC0:
- ldr r0, [sp, #8]
- add r4, r4, #1
- bl FUN_0206B9AC
- cmp r4, r0
- blt _02239E90
-_02239ECC:
- cmp r5, #0
- bne _02239F42
- ldr r0, [sp, #4]
- ldr r1, [sp, #0x14]
- bl MOD11_0223A424
- b _02239F42
-_02239EDA:
- ldr r0, [sp]
- ldr r1, [sp, #0x10]
- bl MOD11_0222FF88
- add r7, r0, #0
- ldr r0, [sp]
- ldr r1, [sp, #0x10]
- bl MOD11_0222FF7C
- add r0, r7, #0
- mov r4, #0
- bl FUN_0206B9AC
- cmp r0, #0
- ble _02239F36
-_02239EF8:
- add r0, r7, #0
- add r1, r4, #0
- bl FUN_0206B9B0
- mov r1, #0xad
- mov r2, #0
- add r6, r0, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _02239F2A
- add r0, r6, #0
- mov r1, #0xad
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r1, _02239F48 ; =0x000001EE
- cmp r0, r1
- beq _02239F2A
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- add r5, r5, r0
-_02239F2A:
- add r0, r7, #0
- add r4, r4, #1
- bl FUN_0206B9AC
- cmp r4, r0
- blt _02239EF8
-_02239F36:
- cmp r5, #0
- bne _02239F42
- ldr r0, [sp, #4]
- ldr r1, [sp, #0x14]
- bl MOD11_0223A424
-_02239F42:
- mov r0, #0
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02239F48: .word 0x000001EE
-
- thumb_func_start MOD11_02239F4C
-MOD11_02239F4C: ; 0x02239F4C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x20
- add r6, r1, #0
- add r0, r6, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r6, #0
- bl MOD11_0223A404
- mov ip, r0
- ldr r1, [r6, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r0, r6, r0
- add r5, r0, #1
- ldr r7, _02239FC0 ; =0x00002D58
- mov r4, #0
- mov r3, #1
- add r0, sp, #0
-_02239F74:
- ldrsb r1, [r5, r7]
- cmp r1, #0xc
- bge _02239F82
- lsl r1, r4, #2
- sub r2, r3, #1
- add r4, r4, #1
- str r2, [r0, r1]
-_02239F82:
- add r3, r3, #1
- add r5, r5, #1
- cmp r3, #8
- blt _02239F74
- cmp r4, #0
- beq _02239FB0
- bl rand_LC
- add r1, r4, #0
- bl _s32_div_f
- lsl r1, r1, #2
- add r0, sp, #0
- ldr r0, [r0, r1]
- ldr r1, _02239FC4 ; =0x00002170
- add r0, #0x27
- str r0, [r6, r1]
- mov r0, #2
- ldr r2, [r6, r1]
- lsl r0, r0, #0x1e
- orr r0, r2
- str r0, [r6, r1]
- b _02239FB8
-_02239FB0:
- add r0, r6, #0
- mov r1, ip
- bl MOD11_0223A424
-_02239FB8:
- mov r0, #0
- add sp, #0x20
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02239FC0: .word 0x00002D58
-_02239FC4: .word 0x00002170
-
- thumb_func_start MOD11_02239FC8
-MOD11_02239FC8: ; 0x02239FC8
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r7, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r2, r0, #0
- ldr r0, _0223A00C ; =0x00002DB8
- add r5, r2, #0
- add r6, r4, r0
- mov r0, #0xc0
- mul r5, r0
- lsl r0, r2, #1
- add r1, r4, r0
- ldrh r3, [r6, r5]
- ldr r0, _0223A010 ; =0x00003124
- strh r3, [r1, r0]
- mov r0, #0
- strh r0, [r6, r5]
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_02245190
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0223A00C: .word 0x00002DB8
-_0223A010: .word 0x00003124
-
- thumb_func_start MOD11_0223A014
-MOD11_0223A014: ; 0x0223A014
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r1, r0, #0
- ldr r0, [r4, #0x64]
- ldr r2, _0223A054 ; =0x00003124
- lsl r0, r0, #1
- add r0, r4, r0
- ldrh r3, [r0, r2]
- cmp r3, #0
- beq _0223A048
- mov r0, #0x4a
- lsl r0, r0, #2
- str r3, [r4, r0]
- ldr r0, [r4, #0x64]
- mov r1, #0
- lsl r0, r0, #1
- add r0, r4, r0
- strh r1, [r0, r2]
- b _0223A04E
-_0223A048:
- add r0, r4, #0
- bl MOD11_0223A424
-_0223A04E:
- mov r0, #0
- pop {r4, pc}
- nop
-_0223A054: .word 0x00003124
-
- thumb_func_start MOD11_0223A058
-MOD11_0223A058: ; 0x0223A058
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- mov r2, #0x4e
- lsl r2, r2, #2
- add r6, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r4, r2
- bl MOD11_02249B94
- cmp r0, #0
- bne _0223A088
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_0223A088:
- mov r0, #0
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_0223A08C
-MOD11_0223A08C: ; 0x0223A08C
- push {r4, lr}
- add r4, r0, #0
- add r0, r1, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_022565D8
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0223A0A4
-MOD11_0223A0A4: ; 0x0223A0A4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_022565F4
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0223A0C0
-MOD11_0223A0C0: ; 0x0223A0C0
- push {r4, lr}
- add r4, r0, #0
- add r0, r1, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0225664C
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0223A0D8
-MOD11_0223A0D8: ; 0x0223A0D8
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- mov r4, #0
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_0223C230
- add r7, r0, #0
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_02249D90
- add r6, r0, #0
- add r0, r5, #0
- add r1, r7, #0
- add r2, r4, #0
- bl MOD11_02249DA4
- str r0, [sp]
- cmp r6, #0x40
- bne _0223A126
- bl rand_LC
- mov r1, #0x64
- bl _s32_div_f
- ldr r0, [sp]
- cmp r1, r0
- bge _0223A126
- mov r4, #1
-_0223A126:
- cmp r6, #0x66
- bne _0223A13E
- mov r0, #0xc0
- mul r0, r7
- add r2, r5, r0
- ldr r0, _0223A170 ; =0x00002D8C
- ldr r1, [r2, r0]
- add r0, r0, #4
- ldr r0, [r2, r0]
- cmp r1, r0
- bne _0223A13E
- mov r4, #1
-_0223A13E:
- cmp r4, #0
- beq _0223A16C
- mov r1, #0xc0
- add r0, r7, #0
- mul r0, r1
- add r2, r5, r0
- ldr r0, _0223A170 ; =0x00002D8C
- ldr r3, [r2, r0]
- ldr r2, _0223A174 ; =0x0000215C
- ldr r0, [r5, r2]
- add r0, r0, r3
- cmp r0, #0
- bgt _0223A16C
- sub r0, r3, #1
- neg r0, r0
- str r0, [r5, r2]
- add r0, r2, #0
- add r0, #0x10
- ldr r0, [r5, r0]
- add r1, #0x40
- orr r0, r1
- add r2, #0x10
- str r0, [r5, r2]
-_0223A16C:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0223A170: .word 0x00002D8C
-_0223A174: .word 0x0000215C
-
- thumb_func_start MOD11_0223A178
-MOD11_0223A178: ; 0x0223A178
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r5, #0
- bl MOD11_0223A404
- add r4, r0, #0
- add r0, r5, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r6, #0
- add r1, r5, #0
- add r2, r4, #0
- bl MOD11_0223C230
- add r1, r0, #0
- mov r0, #0xc0
- add r4, r1, #0
- mul r4, r0
- ldr r0, _0223A208 ; =0x00002D8C
- add r2, r5, r4
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _0223A1FA
- ldr r0, _0223A20C ; =0x0000219C
- add r2, r5, r1
- ldrb r2, [r2, r0]
- cmp r2, #6
- beq _0223A1FA
- add r0, r6, #0
- bl MOD11_02230014
- add r6, r0, #0
- mov r1, #0xa
- mov r2, #0
- bl GetMonDataEncrypted
- str r0, [sp]
- add r0, r6, #0
- mov r1, #0x9f
- mov r2, #0
- bl GetMonDataEncrypted
- add r2, r0, #0
- ldr r0, _0223A210 ; =0x00002D67
- add r1, r5, r4
- ldrb r0, [r1, r0]
- cmp r0, #0x1e
- beq _0223A202
- ldr r1, [sp]
- add r0, r5, #0
- bl MOD11_02248A14
- cmp r0, #0
- bne _0223A202
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_0223A424
- b _0223A202
-_0223A1FA:
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_0223A424
-_0223A202:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0223A208: .word 0x00002D8C
-_0223A20C: .word 0x0000219C
-_0223A210: .word 0x00002D67
-
- thumb_func_start MOD11_0223A214
-MOD11_0223A214: ; 0x0223A214
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r7, #0
- bl MOD11_0223C230
- mov r1, #0xc0
- mul r1, r0
- add r2, r4, r1
- ldr r1, _0223A26C ; =0x00002DB0
- ldr r2, [r2, r1]
- mov r1, #1
- lsl r1, r1, #0x18
- tst r1, r2
- bne _0223A260
- mov r1, #0x1c
- mul r1, r0
- mov r0, #0xba
- add r1, r4, r1
- lsl r0, r0, #2
- ldr r1, [r1, r0]
- mov r0, #8
- tst r0, r1
- beq _0223A268
-_0223A260:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_0223A268:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0223A26C: .word 0x00002DB0
-
- thumb_func_start MOD11_0223A270
-MOD11_0223A270: ; 0x0223A270
- push {r3, r4, r5, r6, lr}
- sub sp, #4
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- mov r0, #0xd
- str r0, [sp]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _0223A2B0
- mov r0, #0x4c
- str r0, [sp]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- beq _0223A2B8
-_0223A2B0:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_0223A2B8:
- mov r0, #0
- add sp, #4
- pop {r3, r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0223A2C0
-MOD11_0223A2C0: ; 0x0223A2C0
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_022482A4
- str r0, [r4, #0x6c]
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0223A2F0
-MOD11_0223A2F0: ; 0x0223A2F0
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- mov r2, #0x4e
- lsl r2, r2, #2
- add r6, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r4, r2
- bl MOD11_0224C258
- cmp r0, #0
- bne _0223A320
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_0223A320:
- mov r0, #0
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_0223A324
-MOD11_0223A324: ; 0x0223A324
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02256668
- mov r0, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_0223A350
-MOD11_0223A350: ; 0x0223A350
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223C230
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02256714
- mov r0, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_0223A37C
-MOD11_0223A37C: ; 0x0223A37C
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r4, #0
- bl MOD11_0223A404
- add r7, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0223C230
- add r1, r0, #0
- add r0, r5, #0
- add r2, r7, #0
- bl MOD11_02256754
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0223A3B4
-MOD11_0223A3B4: ; 0x0223A3B4
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- mov r1, #1
- bl MOD11_0223A424
- add r0, r4, #0
- bl MOD11_0223A404
- add r6, r0, #0
- add r0, r5, #0
- mov r1, #0
- bl MOD11_0222FFC8
- cmp r0, #6
- bne _0223A3E0
- ldr r0, [r5, #0x64]
- bl FUN_0206B334
- cmp r0, #0x12
- beq _0223A3F0
-_0223A3E0:
- ldr r0, _0223A3F4 ; =0x00002410
- ldr r0, [r5, r0]
- cmp r0, #0
- beq _0223A3F0
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0223A424
-_0223A3F0:
- mov r0, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0223A3F4: .word 0x00002410
-
- thumb_func_start MOD11_0223A3F8
-MOD11_0223A3F8: ; 0x0223A3F8
- ldr r3, _0223A400 ; =MOD11_022432B4
- add r0, r1, #0
- bx r3
- nop
-_0223A400: .word MOD11_022432B4
-
- thumb_func_start MOD11_0223A404
-MOD11_0223A404: ; 0x0223A404
- add r1, r0, #0
- add r1, #0xb4
- ldr r1, [r1]
- lsl r1, r1, #2
- add r2, r0, r1
- mov r1, #0x27
- lsl r1, r1, #8
- ldr r2, [r2, r1]
- add r1, r0, #0
- add r1, #0xb4
- ldr r1, [r1]
- add r0, #0xb4
- add r1, r1, #1
- str r1, [r0]
- add r0, r2, #0
- bx lr
-
- thumb_func_start MOD11_0223A424
-MOD11_0223A424: ; 0x0223A424
- add r2, r0, #0
- add r2, #0xb4
- ldr r2, [r2]
- add r0, #0xb4
- add r1, r2, r1
- str r1, [r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_0223A434
-MOD11_0223A434: ; 0x0223A434
- ldr r3, _0223A438 ; =MOD11_022431DC
- bx r3
- .align 2, 0
-_0223A438: .word MOD11_022431DC
-
- thumb_func_start MOD11_0223A43C
-MOD11_0223A43C: ; 0x0223A43C
- ldr r3, _0223A440 ; =MOD11_0224321C
- bx r3
- .align 2, 0
-_0223A440: .word MOD11_0224321C
-
- thumb_func_start MOD11_0223A444
-MOD11_0223A444: ; 0x0223A444
- push {r4, lr}
- add r4, r1, #0
- cmp r2, #0x44
- bls _0223A44E
- b _0223A738
-_0223A44E:
- add r1, r2, r2
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0223A45A: ; jump table
- .short _0223A4E4 - _0223A45A - 2 ; case 0
- .short _0223A4E8 - _0223A45A - 2 ; case 1
- .short _0223A4EE - _0223A45A - 2 ; case 2
- .short _0223A4F4 - _0223A45A - 2 ; case 3
- .short _0223A4FA - _0223A45A - 2 ; case 4
- .short _0223A500 - _0223A45A - 2 ; case 5
- .short _0223A506 - _0223A45A - 2 ; case 6
- .short _0223A50C - _0223A45A - 2 ; case 7
- .short _0223A514 - _0223A45A - 2 ; case 8
- .short _0223A51A - _0223A45A - 2 ; case 9
- .short _0223A522 - _0223A45A - 2 ; case 10
- .short _0223A528 - _0223A45A - 2 ; case 11
- .short _0223A53A - _0223A45A - 2 ; case 12
- .short _0223A54C - _0223A45A - 2 ; case 13
- .short _0223A562 - _0223A45A - 2 ; case 14
- .short _0223A568 - _0223A45A - 2 ; case 15
- .short _0223A56E - _0223A45A - 2 ; case 16
- .short _0223A574 - _0223A45A - 2 ; case 17
- .short _0223A57A - _0223A45A - 2 ; case 18
- .short _0223A580 - _0223A45A - 2 ; case 19
- .short _0223A586 - _0223A45A - 2 ; case 20
- .short _0223A58E - _0223A45A - 2 ; case 21
- .short _0223A59A - _0223A45A - 2 ; case 22
- .short _0223A5A2 - _0223A45A - 2 ; case 23
- .short _0223A5AA - _0223A45A - 2 ; case 24
- .short _0223A5B0 - _0223A45A - 2 ; case 25
- .short _0223A5B8 - _0223A45A - 2 ; case 26
- .short _0223A5C0 - _0223A45A - 2 ; case 27
- .short _0223A5C8 - _0223A45A - 2 ; case 28
- .short _0223A5D0 - _0223A45A - 2 ; case 29
- .short _0223A5D6 - _0223A45A - 2 ; case 30
- .short _0223A5DC - _0223A45A - 2 ; case 31
- .short _0223A5E2 - _0223A45A - 2 ; case 32
- .short _0223A5E8 - _0223A45A - 2 ; case 33
- .short _0223A5EE - _0223A45A - 2 ; case 34
- .short _0223A5F4 - _0223A45A - 2 ; case 35
- .short _0223A5FC - _0223A45A - 2 ; case 36
- .short _0223A604 - _0223A45A - 2 ; case 37
- .short _0223A60C - _0223A45A - 2 ; case 38
- .short _0223A614 - _0223A45A - 2 ; case 39
- .short _0223A61A - _0223A45A - 2 ; case 40
- .short _0223A622 - _0223A45A - 2 ; case 41
- .short _0223A630 - _0223A45A - 2 ; case 42
- .short _0223A63E - _0223A45A - 2 ; case 43
- .short _0223A646 - _0223A45A - 2 ; case 44
- .short _0223A64C - _0223A45A - 2 ; case 45
- .short _0223A65A - _0223A45A - 2 ; case 46
- .short _0223A668 - _0223A45A - 2 ; case 47
- .short _0223A678 - _0223A45A - 2 ; case 48
- .short _0223A688 - _0223A45A - 2 ; case 49
- .short _0223A69A - _0223A45A - 2 ; case 50
- .short _0223A6A0 - _0223A45A - 2 ; case 51
- .short _0223A6A6 - _0223A45A - 2 ; case 52
- .short _0223A6AC - _0223A45A - 2 ; case 53
- .short _0223A6B8 - _0223A45A - 2 ; case 54
- .short _0223A6BE - _0223A45A - 2 ; case 55
- .short _0223A6C4 - _0223A45A - 2 ; case 56
- .short _0223A6CA - _0223A45A - 2 ; case 57
- .short _0223A6D0 - _0223A45A - 2 ; case 58
- .short _0223A6D6 - _0223A45A - 2 ; case 59
- .short _0223A6DC - _0223A45A - 2 ; case 60
- .short _0223A6E4 - _0223A45A - 2 ; case 61
- .short _0223A6EA - _0223A45A - 2 ; case 62
- .short _0223A6EE - _0223A45A - 2 ; case 63
- .short _0223A6F4 - _0223A45A - 2 ; case 64
- .short _0223A6FA - _0223A45A - 2 ; case 65
- .short _0223A70A - _0223A45A - 2 ; case 66
- .short _0223A71A - _0223A45A - 2 ; case 67
- .short _0223A728 - _0223A45A - 2 ; case 68
-_0223A4E4:
- add r0, #0x2c
- pop {r4, pc}
-_0223A4E8:
- ldr r0, _0223A73C ; =0x0000214C
- add r0, r4, r0
- pop {r4, pc}
-_0223A4EE:
- ldr r0, _0223A740 ; =0x00002170
- add r0, r4, r0
- pop {r4, pc}
-_0223A4F4:
- ldr r0, _0223A744 ; =0x00002174
- add r0, r4, r0
- pop {r4, pc}
-_0223A4FA:
- ldr r0, _0223A748 ; =0x00002178
- add r0, r4, r0
- pop {r4, pc}
-_0223A500:
- add r4, #0x88
- add r0, r4, #0
- pop {r4, pc}
-_0223A506:
- ldr r0, _0223A74C ; =0x0000213C
- add r0, r4, r0
- pop {r4, pc}
-_0223A50C:
- mov r0, #6
- lsl r0, r0, #6
- add r0, r4, r0
- pop {r4, pc}
-_0223A514:
- ldr r0, _0223A750 ; =0x00002158
- add r0, r4, r0
- pop {r4, pc}
-_0223A51A:
- mov r0, #0x4d
- lsl r0, r0, #2
- add r0, r4, r0
- pop {r4, pc}
-_0223A522:
- ldr r0, _0223A754 ; =0x0000216C
- add r0, r4, r0
- pop {r4, pc}
-_0223A528:
- ldr r1, [r4, #0x64]
- bl MOD11_02230270
- mov r1, #0x6f
- lsl r1, r1, #2
- add r1, r4, r1
- lsl r0, r0, #2
- add r0, r1, r0
- pop {r4, pc}
-_0223A53A:
- ldr r1, [r4, #0x6c]
- bl MOD11_02230270
- mov r1, #0x6f
- lsl r1, r1, #2
- add r1, r4, r1
- lsl r0, r0, #2
- add r0, r1, r0
- pop {r4, pc}
-_0223A54C:
- add r1, r4, #0
- add r1, #0x94
- ldr r1, [r1]
- bl MOD11_02230270
- mov r1, #0x6f
- lsl r1, r1, #2
- add r1, r4, r1
- lsl r0, r0, #2
- add r0, r1, r0
- pop {r4, pc}
-_0223A562:
- ldr r0, _0223A758 ; =0x00002144
- add r0, r4, r0
- pop {r4, pc}
-_0223A568:
- add r4, #0x64
- add r0, r4, #0
- pop {r4, pc}
-_0223A56E:
- add r4, #0x6c
- add r0, r4, #0
- pop {r4, pc}
-_0223A574:
- add r4, #0x94
- add r0, r4, #0
- pop {r4, pc}
-_0223A57A:
- add r4, #0x74
- add r0, r4, #0
- pop {r4, pc}
-_0223A580:
- add r4, #0x78
- add r0, r4, #0
- pop {r4, pc}
-_0223A586:
- mov r0, #0x46
- lsl r0, r0, #2
- add r0, r4, r0
- pop {r4, pc}
-_0223A58E:
- ldr r0, _0223A75C ; =0x000030E4
- add r1, r4, r0
- ldr r0, [r4, #0x64]
- lsl r0, r0, #2
- add r0, r1, r0
- pop {r4, pc}
-_0223A59A:
- mov r0, #0x13
- lsl r0, r0, #4
- add r0, r4, r0
- pop {r4, pc}
-_0223A5A2:
- mov r0, #0x53
- lsl r0, r0, #2
- add r0, r4, r0
- pop {r4, pc}
-_0223A5AA:
- ldr r0, _0223A760 ; =0x00003044
- add r0, r4, r0
- pop {r4, pc}
-_0223A5B0:
- mov r0, #0x15
- lsl r0, r0, #4
- add r0, r4, r0
- pop {r4, pc}
-_0223A5B8:
- mov r0, #0x47
- lsl r0, r0, #2
- add r0, r4, r0
- pop {r4, pc}
-_0223A5C0:
- mov r0, #0x12
- lsl r0, r0, #4
- add r0, r4, r0
- pop {r4, pc}
-_0223A5C8:
- mov r0, #0xc1
- lsl r0, r0, #6
- add r0, r4, r0
- pop {r4, pc}
-_0223A5D0:
- add r4, #0x98
- add r0, r4, #0
- pop {r4, pc}
-_0223A5D6:
- ldr r0, _0223A764 ; =0x00002154
- add r0, r4, r0
- pop {r4, pc}
-_0223A5DC:
- add r4, #0x38
- add r0, r4, #0
- pop {r4, pc}
-_0223A5E2:
- ldr r0, _0223A768 ; =0x0000215C
- add r0, r4, r0
- pop {r4, pc}
-_0223A5E8:
- ldr r1, _0223A76C ; =0x0000241C
- add r0, r0, r1
- pop {r4, pc}
-_0223A5EE:
- add r4, #0x8c
- add r0, r4, #0
- pop {r4, pc}
-_0223A5F4:
- mov r0, #0x49
- lsl r0, r0, #2
- add r0, r4, r0
- pop {r4, pc}
-_0223A5FC:
- mov r0, #0x4a
- lsl r0, r0, #2
- add r0, r4, r0
- pop {r4, pc}
-_0223A604:
- mov r0, #0x4b
- lsl r0, r0, #2
- add r0, r4, r0
- pop {r4, pc}
-_0223A60C:
- mov r0, #0x61
- lsl r0, r0, #2
- add r0, r4, r0
- pop {r4, pc}
-_0223A614:
- ldr r0, _0223A770 ; =0x00003104
- add r0, r4, r0
- pop {r4, pc}
-_0223A61A:
- mov r0, #0x86
- lsl r0, r0, #6
- add r0, r4, r0
- pop {r4, pc}
-_0223A622:
- mov r0, #0x7b
- lsl r0, r0, #2
- add r1, r4, r0
- ldr r0, [r4, #0x64]
- lsl r0, r0, #6
- add r0, r1, r0
- pop {r4, pc}
-_0223A630:
- mov r0, #0x81
- lsl r0, r0, #2
- add r1, r4, r0
- ldr r0, [r4, #0x64]
- lsl r0, r0, #6
- add r0, r1, r0
- pop {r4, pc}
-_0223A63E:
- mov r0, #0x4e
- lsl r0, r0, #2
- add r0, r4, r0
- pop {r4, pc}
-_0223A646:
- ldr r0, _0223A774 ; =0x00002150
- add r0, r4, r0
- pop {r4, pc}
-_0223A64C:
- mov r0, #0x82
- lsl r0, r0, #2
- add r1, r4, r0
- ldr r0, [r4, #0x64]
- lsl r0, r0, #6
- add r0, r1, r0
- pop {r4, pc}
-_0223A65A:
- mov r0, #0x82
- lsl r0, r0, #2
- add r1, r4, r0
- ldr r0, [r4, #0x6c]
- lsl r0, r0, #6
- add r0, r1, r0
- pop {r4, pc}
-_0223A668:
- mov r0, #0xba
- lsl r0, r0, #2
- add r2, r4, r0
- ldr r1, [r4, #0x64]
- mov r0, #0x1c
- mul r0, r1
- add r0, r2, r0
- pop {r4, pc}
-_0223A678:
- mov r0, #0xba
- lsl r0, r0, #2
- add r2, r4, r0
- ldr r1, [r4, #0x6c]
- mov r0, #0x1c
- mul r0, r1
- add r0, r2, r0
- pop {r4, pc}
-_0223A688:
- mov r0, #0xba
- lsl r0, r0, #2
- add r2, r4, r0
- add r4, #0x94
- ldr r1, [r4]
- mov r0, #0x1c
- mul r0, r1
- add r0, r2, r0
- pop {r4, pc}
-_0223A69A:
- ldr r0, _0223A778 ; =0x00003114
- add r0, r4, r0
- pop {r4, pc}
-_0223A6A0:
- ldr r0, _0223A77C ; =0x00003118
- add r0, r4, r0
- pop {r4, pc}
-_0223A6A6:
- ldr r1, _0223A780 ; =0x00002408
- add r0, r0, r1
- pop {r4, pc}
-_0223A6AC:
- ldr r0, _0223A784 ; =0x0000304C
- add r1, r4, r0
- ldr r0, [r4, #0x64]
- lsl r0, r0, #2
- add r0, r1, r0
- pop {r4, pc}
-_0223A6B8:
- ldr r0, _0223A788 ; =0x00002148
- add r0, r4, r0
- pop {r4, pc}
-_0223A6BE:
- ldr r1, _0223A78C ; =0x00002410
- add r0, r0, r1
- pop {r4, pc}
-_0223A6C4:
- add r4, #0x7c
- add r0, r4, #0
- pop {r4, pc}
-_0223A6CA:
- ldr r0, _0223A790 ; =0x00002160
- add r0, r4, r0
- pop {r4, pc}
-_0223A6D0:
- ldr r0, _0223A794 ; =0x00002164
- add r0, r4, r0
- pop {r4, pc}
-_0223A6D6:
- ldr r1, _0223A798 ; =0x00002418
- add r0, r0, r1
- pop {r4, pc}
-_0223A6DC:
- mov r0, #0x85
- lsl r0, r0, #6
- add r0, r4, r0
- pop {r4, pc}
-_0223A6E4:
- add r4, #0xec
- add r0, r4, #0
- pop {r4, pc}
-_0223A6EA:
- add r0, #0x44
- pop {r4, pc}
-_0223A6EE:
- add r4, #0x68
- add r0, r4, #0
- pop {r4, pc}
-_0223A6F4:
- add r4, #0x70
- add r0, r4, #0
- pop {r4, pc}
-_0223A6FA:
- mov r0, #0xb6
- lsl r0, r0, #2
- add r2, r4, r0
- ldr r1, [r4, #0x6c]
- mov r0, #0x1c
- mul r0, r1
- add r0, r2, r0
- pop {r4, pc}
-_0223A70A:
- mov r0, #0x21
- lsl r0, r0, #4
- add r1, r4, r0
- sub r0, #0xf8
- ldr r0, [r4, r0]
- lsl r0, r0, #6
- add r0, r1, r0
- pop {r4, pc}
-_0223A71A:
- mov r0, #0x21
- lsl r0, r0, #4
- add r1, r4, r0
- ldr r0, [r4, #0x6c]
- lsl r0, r0, #6
- add r0, r1, r0
- pop {r4, pc}
-_0223A728:
- mov r0, #0xbb
- lsl r0, r0, #2
- add r2, r4, r0
- ldr r1, [r4, #0x64]
- mov r0, #0x1c
- mul r0, r1
- add r0, r2, r0
- pop {r4, pc}
-_0223A738:
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-_0223A73C: .word 0x0000214C
-_0223A740: .word 0x00002170
-_0223A744: .word 0x00002174
-_0223A748: .word 0x00002178
-_0223A74C: .word 0x0000213C
-_0223A750: .word 0x00002158
-_0223A754: .word 0x0000216C
-_0223A758: .word 0x00002144
-_0223A75C: .word 0x000030E4
-_0223A760: .word 0x00003044
-_0223A764: .word 0x00002154
-_0223A768: .word 0x0000215C
-_0223A76C: .word 0x0000241C
-_0223A770: .word 0x00003104
-_0223A774: .word 0x00002150
-_0223A778: .word 0x00003114
-_0223A77C: .word 0x00003118
-_0223A780: .word 0x00002408
-_0223A784: .word 0x0000304C
-_0223A788: .word 0x00002148
-_0223A78C: .word 0x00002410
-_0223A790: .word 0x00002160
-_0223A794: .word 0x00002164
-_0223A798: .word 0x00002418
-
- thumb_func_start MOD11_0223A79C
-MOD11_0223A79C: ; 0x0223A79C
- push {r4, r5, r6, r7, lr}
- sub sp, #0xd4
- add r4, r1, #0
- str r0, [sp, #0x14]
- ldr r0, [r4]
- bl MOD11_022300C4
- str r0, [sp, #0x3c]
- ldr r0, [r4]
- bl MOD11_0222FF74
- str r0, [sp, #0x38]
- ldr r0, [r4, #4]
- mov r7, #0
- ldr r0, [r0, #0x74]
- ldr r5, [r4, #0x48]
- asr r1, r0, #1
- mov r0, #1
- and r0, r1
- str r0, [sp, #0x40]
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD11_0222FFC8
- cmp r5, r0
- bge _0223A81E
- ldr r0, [sp, #0x40]
- lsl r0, r0, #2
- str r0, [sp, #0x24]
-_0223A7D6:
- ldr r0, [r4]
- mov r1, #0
- add r2, r5, #0
- bl MOD11_02230014
- mov r1, #6
- mov r2, #0
- add r6, r0, #0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r1, #1
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0x32
- beq _0223A81E
- add r0, r5, #0
- bl MaskOfFlagNo
- add r2, r0, #0
- ldr r1, [r4, #4]
- ldr r0, [sp, #0x24]
- add r0, r0, r1
- add r0, #0xa4
- ldr r0, [r0]
- tst r0, r2
- bne _0223A81E
- ldr r0, [r4]
- mov r1, #0
- add r5, r5, #1
- bl MOD11_0222FFC8
- cmp r5, r0
- blt _0223A7D6
-_0223A81E:
- ldr r0, [r4]
- mov r1, #0
- bl MOD11_0222FFC8
- cmp r5, r0
- bne _0223A830
- mov r0, #0x26
- str r0, [r4, #0x28]
- b _0223A84C
-_0223A830:
- ldr r0, [sp, #0x38]
- mov r2, #2
- tst r0, r2
- beq _0223A84C
- ldr r0, [sp, #0x38]
- mov r1, #0x40
- tst r0, r1
- bne _0223A84C
- ldr r1, [r4, #4]
- ldr r0, _0223AB98 ; =0x0000219E
- ldrb r0, [r1, r0]
- cmp r0, r5
- bne _0223A84C
- add r7, r2, #0
-_0223A84C:
- ldr r0, [r4, #0x28]
- cmp r0, #0x26
- bls _0223A856
- bl _0223B2AE
-_0223A856:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0223A862: ; jump table
- .short _0223A8B0 - _0223A862 - 2 ; case 0
- .short _0223AA74 - _0223A862 - 2 ; case 1
- .short _0223AA8C - _0223A862 - 2 ; case 2
- .short _0223AA9E - _0223A862 - 2 ; case 3
- .short _0223AACA - _0223A862 - 2 ; case 4
- .short _0223AADE - _0223A862 - 2 ; case 5
- .short _0223AB16 - _0223A862 - 2 ; case 6
- .short _0223AC16 - _0223A862 - 2 ; case 7
- .short _0223AC32 - _0223A862 - 2 ; case 8
- .short _0223AC50 - _0223A862 - 2 ; case 9
- .short _0223ACF8 - _0223A862 - 2 ; case 10
- .short _0223AE3C - _0223A862 - 2 ; case 11
- .short _0223ADBA - _0223A862 - 2 ; case 12
- .short _0223AE3C - _0223A862 - 2 ; case 13
- .short _0223AE5E - _0223A862 - 2 ; case 14
- .short _0223AEC0 - _0223A862 - 2 ; case 15
- .short _0223AF42 - _0223A862 - 2 ; case 16
- .short _0223AFDA - _0223A862 - 2 ; case 17
- .short _0223AFAC - _0223A862 - 2 ; case 18
- .short _0223AFDA - _0223A862 - 2 ; case 19
- .short _0223AFF2 - _0223A862 - 2 ; case 20
- .short _0223B012 - _0223A862 - 2 ; case 21
- .short _0223B05A - _0223A862 - 2 ; case 22
- .short _0223B07E - _0223A862 - 2 ; case 23
- .short _0223B16A - _0223A862 - 2 ; case 24
- .short _0223AFDA - _0223A862 - 2 ; case 25
- .short _0223B192 - _0223A862 - 2 ; case 26
- .short _0223AFDA - _0223A862 - 2 ; case 27
- .short _0223B1CE - _0223A862 - 2 ; case 28
- .short _0223AFDA - _0223A862 - 2 ; case 29
- .short _0223B1F6 - _0223A862 - 2 ; case 30
- .short _0223B0B6 - _0223A862 - 2 ; case 31
- .short _0223AFDA - _0223A862 - 2 ; case 32
- .short _0223B0E0 - _0223A862 - 2 ; case 33
- .short _0223B102 - _0223A862 - 2 ; case 34
- .short _0223B152 - _0223A862 - 2 ; case 35
- .short _0223B25C - _0223A862 - 2 ; case 36
- .short _0223B272 - _0223A862 - 2 ; case 37
- .short _0223B298 - _0223A862 - 2 ; case 38
-_0223A8B0:
- add r0, r6, #0
- mov r1, #6
- mov r2, #0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r1, #1
- mov r2, #5
- bl FUN_0206E7B8
- str r0, [sp, #0x18]
- ldr r0, [sp, #0x38]
- mov r1, #1
- and r0, r1
- str r0, [sp, #0x1c]
- bne _0223A90E
- ldr r1, [r4, #4]
- ldr r0, _0223AB9C ; =0x00002E4C
- ldr r2, _0223ABA0 ; =0x00002FCC
- ldr r0, [r1, r0]
- ldr r1, [r1, r2]
- add r0, r0, r1
- bne _0223A90E
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _0223A90E
- ldr r1, [r4, #4]
- ldr r0, _0223ABA4 ; =0x00003144
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _0223A90E
- ldr r0, _0223ABA8 ; =0x00000467
- bl FUN_0200521C
- ldr r1, [r4, #4]
- ldr r0, _0223ABA4 ; =0x00003144
- mov r2, #1
- str r2, [r1, r0]
- ldr r0, [r4]
- mov r1, #2
- bl MOD11_02231484
-_0223A90E:
- mov r0, #0
- str r0, [sp, #0x34]
- mov r1, #1
- add r0, sp, #0xb0
- strh r1, [r0, #2]
- ldr r2, [sp, #0x34]
- add r0, r6, #0
- mov r1, #0xa2
- bl GetMonDataEncrypted
- cmp r0, #0
- bne _0223A928
- b _0223AA34
-_0223A928:
- add r0, r6, #0
- mov r1, #0xa0
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0x64
- beq _0223AA34
- ldr r0, [r4, #4]
- str r0, [sp, #0x20]
- add r0, r5, #0
- bl MaskOfFlagNo
- ldr r1, [sp, #0x40]
- lsl r2, r1, #2
- ldr r1, [sp, #0x20]
- add r1, r1, r2
- add r1, #0xa4
- ldr r1, [r1]
- tst r0, r1
- beq _0223A958
- ldr r0, [sp, #0x20]
- add r0, #0x9c
- ldr r0, [r0]
- str r0, [sp, #0x34]
-_0223A958:
- ldr r0, [sp, #0x18]
- cmp r0, #0x32
- bne _0223A96C
- ldr r0, [sp, #0x20]
- add r0, #0xa0
- str r0, [sp, #0x20]
- ldr r1, [r0]
- ldr r0, [sp, #0x34]
- add r0, r0, r1
- str r0, [sp, #0x34]
-_0223A96C:
- ldr r0, [sp, #0x18]
- cmp r0, #0x41
- bne _0223A980
- ldr r1, [sp, #0x34]
- mov r0, #0x96
- mul r0, r1
- mov r1, #0x64
- bl _u32_div_f
- str r0, [sp, #0x34]
-_0223A980:
- ldr r0, [sp, #0x1c]
- cmp r0, #0
- beq _0223A994
- ldr r1, [sp, #0x34]
- mov r0, #0x96
- mul r0, r1
- mov r1, #0x64
- bl _u32_div_f
- str r0, [sp, #0x34]
-_0223A994:
- ldr r0, [r4]
- add r1, r6, #0
- bl MOD11_0224AE14
- cmp r0, #0
- bne _0223A9D6
- add r0, r6, #0
- mov r1, #0xc
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r1, _0223ABAC ; =0x020ECAC4
- ldrb r1, [r1]
- cmp r1, r0
- beq _0223A9C2
- ldr r1, [sp, #0x34]
- mov r0, #0xaa
- mul r0, r1
- mov r1, #0x64
- bl _u32_div_f
- str r0, [sp, #0x34]
- b _0223A9D0
-_0223A9C2:
- ldr r1, [sp, #0x34]
- mov r0, #0x96
- mul r0, r1
- mov r1, #0x64
- bl _u32_div_f
- str r0, [sp, #0x34]
-_0223A9D0:
- mov r1, #2
- add r0, sp, #0xb0
- strh r1, [r0, #2]
-_0223A9D6:
- add r0, r6, #0
- mov r1, #8
- mov r2, #0
- bl GetMonDataEncrypted
- str r0, [sp, #0x48]
- add r0, r6, #0
- bl FUN_02068734
- ldr r1, [sp, #0x48]
- sub r0, r1, r0
- str r0, [r4, #0x3c]
- ldr r1, [sp, #0x48]
- ldr r0, [sp, #0x34]
- add r2, r1, r0
- str r2, [sp, #0x48]
- ldr r3, [r4, #4]
- ldr r0, _0223ABB0 ; =0x0000219C
- add r1, r3, r7
- ldrb r0, [r1, r0]
- cmp r5, r0
- bne _0223AA0C
- mov r0, #0xc0
- mul r0, r7
- add r1, r3, r0
- ldr r0, _0223ABB4 ; =0x00002DA4
- str r2, [r1, r0]
-_0223AA0C:
- add r0, r6, #0
- mov r1, #8
- add r2, sp, #0x48
- bl SetMonDataEncrypted
- ldr r6, [r4, #4]
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD11_0222FF88
- ldr r3, [r6, #0x74]
- mov r2, #0xc0
- mul r2, r3
- add r3, r6, r2
- mov r2, #0xb5
- lsl r2, r2, #6
- ldrh r2, [r3, r2]
- add r1, r5, #0
- bl MOD11_0223B2DC
-_0223AA34:
- ldr r0, [sp, #0x34]
- cmp r0, #0
- beq _0223AA6C
- mov r1, #0x11
- add r0, sp, #0xb0
- strb r1, [r0, #1]
- lsl r0, r5, #8
- orr r0, r7
- str r0, [sp, #0xb4]
- ldr r0, [sp, #0x34]
- str r0, [sp, #0xb8]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x3c]
- add r2, sp, #0xb0
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- mov r0, #0x14
- str r0, [r4, #0x34]
- ldr r0, [r4, #0x28]
- add sp, #0xd4
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AA6C:
- mov r0, #0x25
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AA74:
- ldr r0, [r4, #0x30]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_0201BD70
- cmp r0, #0
- bne _0223AB20
- ldr r0, [r4, #0x28]
- add sp, #0xd4
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AA8C:
- ldr r0, [r4, #0x34]
- sub r0, r0, #1
- str r0, [r4, #0x34]
- bne _0223AB20
- ldr r0, [r4, #0x28]
- add sp, #0xd4
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AA9E:
- ldr r1, [r4, #4]
- ldr r0, _0223ABB0 ; =0x0000219C
- add r2, r1, r7
- ldrb r0, [r2, r0]
- cmp r5, r0
- bne _0223AAC2
- ldr r0, [r4]
- ldr r3, [r4, #0x3c]
- add r2, r7, #0
- bl MOD11_02255B68
- mov r0, #0
- str r0, [r4, #0x3c]
- ldr r0, [r4, #0x28]
- add sp, #0xd4
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AAC2:
- mov r0, #5
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AACA:
- ldr r0, [r4, #4]
- bl MOD11_02243388
- cmp r0, #0
- beq _0223AB20
- ldr r0, [r4, #0x28]
- add sp, #0xd4
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AADE:
- add r0, r6, #0
- bl FUN_020690E8
- cmp r0, #0
- beq _0223AB0E
- ldr r1, [r4, #4]
- ldr r0, _0223ABB0 ; =0x0000219C
- add r2, r1, r7
- ldrb r0, [r2, r0]
- cmp r5, r0
- bne _0223AB06
- ldr r0, [r4]
- add r2, r7, #0
- mov r3, #8
- bl MOD11_02255E4C
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD11_02255FA0
-_0223AB06:
- mov r0, #6
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AB0E:
- mov r0, #0x25
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AB16:
- ldr r0, [r4, #4]
- bl MOD11_02243388
- cmp r0, #0
- bne _0223AB22
-_0223AB20:
- b _0223B2AE
-_0223AB22:
- ldr r3, _0223ABB8 ; =0x0225DCC0
- add r2, sp, #0x98
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- add r0, r6, #0
- mov r1, #0xa0
- mov r2, #0
- bl GetMonDataEncrypted
- str r0, [sp, #0x30]
- mov r0, #5
- mov r1, #0x18
- bl AllocFromHeap
- mov r1, #0x5f
- ldr r2, [r4, #4]
- lsl r1, r1, #2
- str r0, [r2, r1]
- ldr r0, [r4, #4]
- ldr r0, [r0, r1]
- mov r1, #0
- str r0, [sp, #0x2c]
- str r1, [sp, #0x4c]
-_0223AB58:
- lsl r2, r1, #2
- add r1, sp, #0x98
- ldr r1, [r1, r2]
- add r0, r6, #0
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r1, [sp, #0x4c]
- lsl r2, r1, #2
- ldr r1, [sp, #0x2c]
- str r0, [r1, r2]
- ldr r0, [sp, #0x4c]
- add r1, r0, #1
- str r1, [sp, #0x4c]
- cmp r1, #6
- blt _0223AB58
- ldr r0, [r4]
- bl MOD11_022302B0
- add r2, r0, #0
- lsl r2, r2, #0x10
- add r0, r6, #0
- mov r1, #0
- lsr r2, r2, #0x10
- bl MonApplyFriendshipModEncrypted
- add r0, r6, #0
- bl CalcMonStatsMaybeEncrypted
- ldr r1, [r4, #4]
- ldr r0, _0223ABB0 ; =0x0000219C
- b _0223ABBC
- .align 2, 0
-_0223AB98: .word 0x0000219E
-_0223AB9C: .word 0x00002E4C
-_0223ABA0: .word 0x00002FCC
-_0223ABA4: .word 0x00003144
-_0223ABA8: .word 0x00000467
-_0223ABAC: .word 0x020ECAC4
-_0223ABB0: .word 0x0000219C
-_0223ABB4: .word 0x00002DA4
-_0223ABB8: .word 0x0225DCC0
-_0223ABBC:
- add r2, r1, r7
- ldrb r3, [r2, r0]
- cmp r5, r3
- bne _0223ABCC
- ldr r0, [r4]
- add r2, r7, #0
- bl MOD11_02243054
-_0223ABCC:
- add r0, r5, #0
- bl MaskOfFlagNo
- ldr r1, [r4, #4]
- ldr r2, _0223AF48 ; =0x00003109
- ldrb r3, [r1, r2]
- orr r0, r3
- strb r0, [r1, r2]
- ldr r0, [r4]
- ldr r1, [r4, #4]
- add r2, r7, #0
- bl MOD11_02256020
- mov r1, #3
- add r0, sp, #0xb0
- strh r1, [r0, #2]
- mov r1, #0x11
- strb r1, [r0, #1]
- lsl r0, r5, #8
- orr r0, r7
- str r0, [sp, #0xb4]
- ldr r0, [sp, #0x30]
- str r0, [sp, #0xb8]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x3c]
- add r2, sp, #0xb0
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- mov r0, #7
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AC16:
- ldr r0, [r4, #0x30]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_0201BD70
- cmp r0, #0
- beq _0223AC26
- b _0223B2AE
-_0223AC26:
- mov r0, #8
- str r0, [r4, #0x28]
- mov r0, #0
- add sp, #0xd4
- str r0, [r4, #0x38]
- pop {r4, r5, r6, r7, pc}
-_0223AC32:
- ldr r0, [r4, #4]
- add r1, r0, r7
- ldr r0, _0223AF4C ; =0x0000219C
- ldrb r0, [r1, r0]
- cmp r5, r0
- beq _0223AC48
- ldr r0, [r4]
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0223CDC4
-_0223AC48:
- mov r0, #9
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AC50:
- ldr r0, [r4]
- bl MOD11_0222FF68
- add r6, r0, #0
- ldr r0, [r4]
- mov r1, #1
- bl MOD11_0222FF6C
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD11_022300CC
- add r7, r0, #0
- ldr r0, _0223AF50 ; =0x04000008
- mov r2, #3
- ldrh r1, [r0]
- bic r1, r2
- mov r2, #2
- orr r1, r2
- strh r1, [r0]
- mov r0, #1
- add r1, r0, #0
- bl FUN_020178BC
- mov r0, #2
- mov r1, #0
- bl FUN_020178BC
- ldr r0, [r4]
- mov r1, #2
- bl MOD11_02231564
- mov r0, #5
- str r0, [sp]
- add r0, r6, #0
- mov r1, #2
- mov r2, #1
- mov r3, #0
- bl FUN_0200CABC
- bl FUN_0200CAFC
- add r2, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r0, #0x20
- str r0, [sp, #4]
- mov r0, #0x80
- str r0, [sp, #8]
- add r0, r7, #0
- mov r1, #0x26
- mov r3, #5
- bl FUN_020030E8
- mov r0, #7
- str r0, [sp]
- mov r0, #0xe
- str r0, [sp, #4]
- mov r0, #0xc
- str r0, [sp, #8]
- mov r0, #0xb
- str r0, [sp, #0xc]
- mov r0, #0xa
- str r0, [sp, #0x10]
- add r0, r6, #0
- add r1, r5, #0
- mov r2, #2
- mov r3, #0x11
- bl FUN_02019064
- add r0, r5, #0
- mov r1, #0xff
- bl FUN_02019620
- add r0, r5, #0
- mov r1, #0
- mov r2, #1
- mov r3, #8
- bl FUN_0200CCA4
- mov r0, #0xa
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223ACF8:
- ldr r3, _0223AF54 ; =0x0225DCD8
- add r2, sp, #0x80
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldr r3, _0223AF58 ; =0x0225DC60
- add r2, sp, #0x68
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldr r0, [r4]
- mov r1, #1
- bl MOD11_0222FF6C
- add r7, r0, #0
- mov r0, #0x5f
- ldr r1, [r4, #4]
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- str r0, [sp, #0x28]
- mov r0, #0
- str r0, [sp, #0x4c]
-_0223AD30:
- ldr r2, _0223AF5C ; =0x000003B3
- add r1, sp, #0xb0
- strh r2, [r1, #2]
- mov r2, #4
- strb r2, [r1, #1]
- lsl r2, r0, #2
- add r1, sp, #0x80
- ldr r1, [r1, r2]
- lsl r0, r0, #4
- str r1, [sp, #0xb4]
- mov r1, #0
- str r1, [sp]
- str r0, [sp, #4]
- add r0, r1, #0
- str r0, [sp, #8]
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- ldr r0, [r4]
- ldr r2, [sp, #0x3c]
- add r1, r7, #0
- add r3, sp, #0xb0
- bl MOD11_022317E0
- mov r1, #0xed
- ldr r5, [sp, #0x4c]
- lsl r1, r1, #2
- add r0, sp, #0xb0
- strh r1, [r0, #2]
- mov r1, #7
- strb r1, [r0, #1]
- lsl r2, r5, #2
- add r1, sp, #0x68
- ldr r1, [r1, r2]
- add r0, r6, #0
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r1, [sp, #0x28]
- lsl r2, r5, #2
- ldr r1, [r1, r2]
- ldr r2, [sp, #0x3c]
- sub r0, r0, r1
- str r0, [sp, #0xb4]
- mov r0, #2
- str r0, [sp, #0xcc]
- mov r0, #0x50
- str r0, [sp]
- lsl r0, r5, #4
- str r0, [sp, #4]
- mov r0, #2
- str r0, [sp, #8]
- mov r0, #0x1c
- str r0, [sp, #0xc]
- mov r0, #0
- str r0, [sp, #0x10]
- ldr r0, [r4]
- add r1, r7, #0
- add r3, sp, #0xb0
- bl MOD11_022317E0
- ldr r0, [sp, #0x4c]
- add r0, r0, #1
- str r0, [sp, #0x4c]
- cmp r0, #6
- blt _0223AD30
- mov r0, #0xb
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223ADBA:
- ldr r3, _0223AF60 ; =0x0225DC90
- add r2, sp, #0x50
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldr r0, [r4]
- mov r1, #1
- bl MOD11_0222FF6C
- mov r1, #0x24
- str r1, [sp]
- mov r1, #0x60
- str r1, [sp, #4]
- mov r1, #0xf
- mov r2, #0x50
- mov r3, #0
- add r7, r0, #0
- bl FUN_020196F4
- mov r1, #0
- str r1, [sp, #0x4c]
- add r5, sp, #0xb0
-_0223ADEC:
- ldr r0, _0223AF64 ; =0x000003B5
- lsl r2, r1, #2
- add r1, sp, #0x50
- strh r0, [r5, #2]
- mov r0, #7
- ldr r1, [r1, r2]
- strb r0, [r5, #1]
- add r0, r6, #0
- mov r2, #0
- bl GetMonDataEncrypted
- str r0, [sp, #0xb4]
- mov r0, #3
- str r0, [sp, #0xcc]
- mov r0, #0x48
- str r0, [sp]
- ldr r0, [sp, #0x4c]
- ldr r2, [sp, #0x3c]
- lsl r0, r0, #4
- str r0, [sp, #4]
- mov r0, #2
- str r0, [sp, #8]
- mov r0, #0x24
- str r0, [sp, #0xc]
- mov r0, #0
- str r0, [sp, #0x10]
- ldr r0, [r4]
- add r1, r7, #0
- add r3, r5, #0
- bl MOD11_022317E0
- ldr r0, [sp, #0x4c]
- add r1, r0, #1
- str r1, [sp, #0x4c]
- cmp r1, #6
- blt _0223ADEC
- mov r0, #0xd
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AE3C:
- ldr r0, _0223AF68 ; =0x021C48B8
- ldr r1, [r0, #0x48]
- ldr r0, _0223AF6C ; =0x00000C03
- tst r0, r1
- bne _0223AE4E
- bl FUN_02020AA4
- cmp r0, #0
- beq _0223AEDC
-_0223AE4E:
- ldr r0, _0223AF70 ; =0x000005DC
- bl FUN_020054C8
- ldr r0, [r4, #0x28]
- add sp, #0xd4
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AE5E:
- ldr r0, [r4]
- mov r1, #1
- bl MOD11_0222FF6C
- add r6, r0, #0
- mov r1, #0
- bl FUN_0200CCF8
- add r0, r6, #0
- bl FUN_02019178
- ldr r1, _0223AF50 ; =0x04000008
- mov r0, #3
- ldrh r2, [r1]
- bic r2, r0
- mov r0, #1
- orr r2, r0
- strh r2, [r1]
- mov r1, #0
- bl FUN_020178BC
- mov r0, #2
- mov r1, #1
- bl FUN_020178BC
- ldr r0, [r4]
- mov r1, #0
- bl MOD11_02231564
- ldr r0, [r4, #4]
- add r1, r0, r7
- ldr r0, _0223AF4C ; =0x0000219C
- ldrb r0, [r1, r0]
- cmp r5, r0
- beq _0223AEAC
- ldr r0, [r4]
- add r1, r4, #0
- bl MOD11_0223D068
-_0223AEAC:
- mov r0, #0x5f
- ldr r1, [r4, #4]
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- bl FreeToHeap
- mov r0, #0xf
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AEC0:
- ldr r0, [r4]
- bl MOD11_0222FF68
- add r1, r4, #0
- add r0, r6, #0
- add r1, #0x38
- add r2, sp, #0x44
- bl FUN_02069818
- cmp r0, #0
- beq _0223AEE6
- ldr r1, _0223AF74 ; =0x0000FFFE
- cmp r0, r1
- bne _0223AEDE
-_0223AEDC:
- b _0223B2AE
-_0223AEDE:
- add r1, r1, #1
- cmp r0, r1
- beq _0223AEEE
- b _0223AEFC
-_0223AEE6:
- mov r0, #3
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AEEE:
- add r0, sp, #0x44
- ldrh r0, [r0]
- add sp, #0xd4
- str r0, [r4, #0x40]
- mov r0, #0x10
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AEFC:
- ldr r1, [r4, #4]
- ldr r0, _0223AF4C ; =0x0000219C
- add r2, r1, r7
- ldrb r3, [r2, r0]
- cmp r5, r3
- bne _0223AF10
- ldr r0, [r4]
- add r2, r7, #0
- bl MOD11_02243054
-_0223AF10:
- mov r1, #4
- add r0, sp, #0xb0
- strh r1, [r0, #2]
- mov r1, #0xa
- strb r1, [r0, #1]
- lsl r0, r5, #8
- orr r0, r7
- str r0, [sp, #0xb4]
- add r0, sp, #0x44
- ldrh r0, [r0]
- str r0, [sp, #0xb8]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x3c]
- add r2, sp, #0xb0
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- mov r0, #0x24
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AF42:
- ldr r1, _0223AF78 ; =0x0000049A
- b _0223AF7C
- nop
-_0223AF48: .word 0x00003109
-_0223AF4C: .word 0x0000219C
-_0223AF50: .word 0x04000008
-_0223AF54: .word 0x0225DCD8
-_0223AF58: .word 0x0225DC60
-_0223AF5C: .word 0x000003B3
-_0223AF60: .word 0x0225DC90
-_0223AF64: .word 0x000003B5
-_0223AF68: .word 0x021C48B8
-_0223AF6C: .word 0x00000C03
-_0223AF70: .word 0x000005DC
-_0223AF74: .word 0x0000FFFE
-_0223AF78: .word 0x0000049A
-_0223AF7C:
- add r0, sp, #0xb0
- strh r1, [r0, #2]
- mov r1, #0xa
- strb r1, [r0, #1]
- lsl r0, r5, #8
- orr r0, r7
- str r0, [sp, #0xb4]
- ldr r0, [r4, #0x40]
- str r0, [sp, #0xb8]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x3c]
- add r2, sp, #0xb0
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- ldr r0, [r4, #0x28]
- add sp, #0xd4
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AFAC:
- ldr r1, _0223B2B4 ; =0x0000049B
- add r0, sp, #0xb0
- strh r1, [r0, #2]
- mov r1, #2
- strb r1, [r0, #1]
- lsl r0, r5, #8
- orr r0, r7
- str r0, [sp, #0xb4]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x3c]
- add r2, sp, #0xb0
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- ldr r0, [r4, #0x28]
- add sp, #0xd4
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AFDA:
- ldr r0, [r4, #0x30]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_0201BD70
- cmp r0, #0
- bne _0223B01E
- ldr r0, [r4, #0x28]
- add sp, #0xd4
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223AFF2:
- mov r0, #1
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- str r0, [sp, #8]
- ldr r0, [r4]
- ldr r1, [r4, #4]
- ldr r3, _0223B2B8 ; =0x0000049C
- add r2, r7, #0
- bl MOD11_02255980
- ldr r0, [r4, #0x28]
- add sp, #0xd4
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B012:
- ldr r0, [r4, #4]
- add r1, r7, #0
- bl MOD11_0224AD90
- cmp r0, #0
- bne _0223B020
-_0223B01E:
- b _0223B2AE
-_0223B020:
- ldr r0, [r4, #4]
- add r1, r7, #0
- bl MOD11_0224AD90
- cmp r0, #0xff
- bne _0223B034
- mov r0, #0x1f
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B034:
- ldr r1, _0223B2BC ; =0x0000049F
- add r0, sp, #0xb0
- strh r1, [r0, #2]
- mov r1, #0
- strb r1, [r0, #1]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x3c]
- add r2, sp, #0xb0
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- mov r0, #0x16
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B05A:
- ldr r0, [r4, #0x30]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_0201BD70
- cmp r0, #0
- bne _0223B160
- ldr r0, [r4]
- ldr r2, [r4, #0x40]
- add r1, r7, #0
- add r3, r5, #0
- bl MOD11_022562B0
- ldr r0, [r4, #0x28]
- add sp, #0xd4
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B07E:
- ldr r0, [r4, #4]
- add r1, r7, #0
- bl MOD11_0224AD90
- cmp r0, #0xff
- bne _0223B092
- mov r0, #0x1f
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B092:
- ldr r0, [r4, #4]
- add r1, r7, #0
- bl MOD11_0224AD90
- cmp r0, #0
- beq _0223B160
- ldr r1, [r4, #4]
- lsl r0, r7, #8
- add r1, r1, r0
- mov r0, #0x23
- lsl r0, r0, #8
- ldrb r0, [r1, r0]
- add sp, #0xd4
- sub r0, r0, #1
- str r0, [r4, #0x44]
- mov r0, #0x18
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B0B6:
- mov r1, #0x4a
- lsl r1, r1, #4
- add r0, sp, #0xb0
- strh r1, [r0, #2]
- mov r1, #0
- strb r1, [r0, #1]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x3c]
- add r2, sp, #0xb0
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- ldr r0, [r4, #0x28]
- add sp, #0xd4
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B0E0:
- mov r0, #2
- str r0, [sp]
- ldr r0, [r4, #0x40]
- ldr r3, _0223B2C0 ; =0x000004A1
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- ldr r0, [r4]
- ldr r1, [r4, #4]
- add r2, r7, #0
- bl MOD11_02255980
- ldr r0, [r4, #0x28]
- add sp, #0xd4
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B102:
- ldr r0, [r4, #4]
- add r1, r7, #0
- bl MOD11_0224AD90
- cmp r0, #0
- beq _0223B160
- ldr r0, [r4, #4]
- add r1, r7, #0
- bl MOD11_0224AD90
- cmp r0, #0xff
- bne _0223B122
- mov r0, #0x10
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B122:
- ldr r1, _0223B2C4 ; =0x000004A4
- add r0, sp, #0xb0
- strh r1, [r0, #2]
- mov r1, #0xa
- strb r1, [r0, #1]
- lsl r0, r5, #8
- orr r0, r7
- str r0, [sp, #0xb4]
- ldr r0, [r4, #0x40]
- str r0, [sp, #0xb8]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x3c]
- add r2, sp, #0xb0
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- mov r0, #0x23
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B152:
- ldr r0, [r4, #0x30]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_0201BD70
- cmp r0, #0
- beq _0223B162
-_0223B160:
- b _0223B2AE
-_0223B162:
- mov r0, #0xf
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B16A:
- ldr r1, _0223B2C8 ; =0x000004A5
- add r0, sp, #0xb0
- strh r1, [r0, #2]
- mov r1, #0
- strb r1, [r0, #1]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x3c]
- add r2, sp, #0xb0
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- ldr r0, [r4, #0x28]
- add sp, #0xd4
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B192:
- ldr r1, _0223B2CC ; =0x000004A6
- add r0, sp, #0xb0
- strh r1, [r0, #2]
- mov r1, #0xa
- strb r1, [r0, #1]
- lsl r0, r5, #8
- orr r0, r7
- str r0, [sp, #0xb4]
- ldr r1, [r4, #0x44]
- add r0, r6, #0
- add r1, #0x36
- mov r2, #0
- bl GetMonDataEncrypted
- str r0, [sp, #0xb8]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x3c]
- add r2, sp, #0xb0
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- ldr r0, [r4, #0x28]
- add sp, #0xd4
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B1CE:
- ldr r1, _0223B2D0 ; =0x000004A7
- add r0, sp, #0xb0
- strh r1, [r0, #2]
- mov r1, #0
- strb r1, [r0, #1]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x3c]
- add r2, sp, #0xb0
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- ldr r0, [r4, #0x28]
- add sp, #0xd4
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B1F6:
- ldr r1, _0223B2D4 ; =0x000004A8
- add r0, sp, #0xb0
- strh r1, [r0, #2]
- mov r1, #0xa
- strb r1, [r0, #1]
- lsl r0, r5, #8
- orr r0, r7
- str r0, [sp, #0xb4]
- ldr r0, [r4, #0x40]
- str r0, [sp, #0xb8]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x3c]
- add r2, sp, #0xb0
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- mov r0, #0
- str r0, [sp, #0x4c]
- ldr r1, [r4, #0x44]
- add r0, r6, #0
- add r1, #0x3e
- add r2, sp, #0x4c
- bl SetMonDataEncrypted
- ldr r1, [r4, #0x40]
- ldr r2, [r4, #0x44]
- lsl r1, r1, #0x10
- lsl r2, r2, #0x18
- add r0, r6, #0
- lsr r1, r1, #0x10
- lsr r2, r2, #0x18
- bl FUN_020697CC
- ldr r1, [r4, #4]
- ldr r0, _0223B2D8 ; =0x0000219C
- add r2, r1, r7
- ldrb r3, [r2, r0]
- cmp r5, r3
- bne _0223B254
- ldr r0, [r4]
- add r2, r7, #0
- bl MOD11_02243054
-_0223B254:
- mov r0, #0x24
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B25C:
- ldr r0, [r4, #0x30]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_0201BD70
- cmp r0, #0
- bne _0223B2AE
- mov r0, #0xf
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B272:
- add r0, r5, #0
- bl MaskOfFlagNo
- ldr r1, [sp, #0x40]
- ldr r2, [r4, #4]
- mov r3, #0
- mvn r3, r3
- add r2, #0xa4
- lsl r1, r1, #2
- ldr r6, [r2, r1]
- eor r0, r3
- and r0, r6
- str r0, [r2, r1]
- add r0, r5, #1
- str r0, [r4, #0x48]
- mov r0, #0
- add sp, #0xd4
- str r0, [r4, #0x28]
- pop {r4, r5, r6, r7, pc}
-_0223B298:
- mov r0, #0x5e
- ldr r1, [r4, #4]
- mov r2, #0
- lsl r0, r0, #2
- str r2, [r1, r0]
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [sp, #0x14]
- bl FUN_0200CAB4
-_0223B2AE:
- add sp, #0xd4
- pop {r4, r5, r6, r7, pc}
- nop
-_0223B2B4: .word 0x0000049B
-_0223B2B8: .word 0x0000049C
-_0223B2BC: .word 0x0000049F
-_0223B2C0: .word 0x000004A1
-_0223B2C4: .word 0x000004A4
-_0223B2C8: .word 0x000004A5
-_0223B2CC: .word 0x000004A6
-_0223B2D0: .word 0x000004A7
-_0223B2D4: .word 0x000004A8
-_0223B2D8: .word 0x0000219C
-
- thumb_func_start MOD11_0223B2DC
-MOD11_0223B2DC: ; 0x0223B2DC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x28
- str r0, [sp]
- str r1, [sp, #4]
- add r0, r2, #0
- mov r1, #5
- mov r4, #0
- bl AllocAndLoadMonPersonal
- add r7, r0, #0
- ldr r0, [sp]
- ldr r1, [sp, #4]
- bl FUN_0206B9B0
- mov r1, #6
- add r2, r4, #0
- str r0, [sp, #0x14]
- bl GetMonDataEncrypted
- lsl r0, r0, #0x10
- lsr r6, r0, #0x10
- add r0, r6, #0
- mov r1, #1
- mov r2, #5
- bl FUN_0206E7B8
- add r5, r0, #0
- add r0, r6, #0
- mov r1, #2
- mov r2, #5
- bl FUN_0206E7B8
- add r6, r0, #0
- add r0, r4, #0
- str r0, [sp, #0x18]
- str r0, [sp, #0x1c]
- add r0, sp, #0x20
- str r0, [sp, #0xc]
-_0223B328:
- ldr r1, [sp, #0x1c]
- ldr r0, [sp, #0x14]
- add r1, #0xd
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r1, [sp, #0xc]
- strb r0, [r1]
- add r0, r1, #0
- ldrb r1, [r0]
- ldr r0, [sp, #0x18]
- add r0, r0, r1
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x18]
- ldr r0, [sp, #0xc]
- add r0, r0, #1
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x1c]
- add r0, r0, #1
- str r0, [sp, #0x1c]
- cmp r0, #6
- blt _0223B328
- mov r0, #0
- str r0, [sp, #8]
- add r0, sp, #0x20
- str r0, [sp, #0x10]
-_0223B35E:
- ldr r1, [sp, #0x18]
- ldr r0, _0223B498 ; =0x000001FE
- cmp r1, r0
- blo _0223B368
- b _0223B48C
-_0223B368:
- ldr r0, [sp, #8]
- cmp r0, #5
- bhi _0223B414
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0223B37A: ; jump table
- .short _0223B386 - _0223B37A - 2 ; case 0
- .short _0223B39E - _0223B37A - 2 ; case 1
- .short _0223B3B6 - _0223B37A - 2 ; case 2
- .short _0223B3CE - _0223B37A - 2 ; case 3
- .short _0223B3E6 - _0223B37A - 2 ; case 4
- .short _0223B3FE - _0223B37A - 2 ; case 5
-_0223B386:
- add r0, r7, #0
- mov r1, #0xa
- bl GetPersonalAttr
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- cmp r5, #0x79
- bne _0223B414
- add r0, r4, r6
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- b _0223B414
-_0223B39E:
- add r0, r7, #0
- mov r1, #0xb
- bl GetPersonalAttr
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- cmp r5, #0x74
- bne _0223B414
- add r0, r4, r6
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- b _0223B414
-_0223B3B6:
- add r0, r7, #0
- mov r1, #0xc
- bl GetPersonalAttr
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- cmp r5, #0x75
- bne _0223B414
- add r0, r4, r6
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- b _0223B414
-_0223B3CE:
- add r0, r7, #0
- mov r1, #0xd
- bl GetPersonalAttr
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- cmp r5, #0x78
- bne _0223B414
- add r0, r4, r6
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- b _0223B414
-_0223B3E6:
- add r0, r7, #0
- mov r1, #0xe
- bl GetPersonalAttr
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- cmp r5, #0x76
- bne _0223B414
- add r0, r4, r6
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- b _0223B414
-_0223B3FE:
- add r0, r7, #0
- mov r1, #0xf
- bl GetPersonalAttr
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- cmp r5, #0x77
- bne _0223B414
- add r0, r4, r6
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
-_0223B414:
- ldr r0, [sp, #4]
- bl MaskOfFlagNo
- add r1, r0, #0
- lsl r1, r1, #0x18
- ldr r0, [sp]
- lsr r1, r1, #0x18
- bl FUN_02069CF4
- cmp r0, #0
- beq _0223B42E
- lsl r0, r4, #0x11
- asr r4, r0, #0x10
-_0223B42E:
- cmp r5, #0x31
- bne _0223B436
- lsl r0, r4, #0x11
- asr r4, r0, #0x10
-_0223B436:
- ldr r0, [sp, #0x18]
- ldr r1, _0223B498 ; =0x000001FE
- add r0, r0, r4
- cmp r0, r1
- ble _0223B448
- sub r0, r0, r1
- sub r0, r4, r0
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
-_0223B448:
- ldr r0, [sp, #0x10]
- ldrb r0, [r0]
- add r0, r0, r4
- cmp r0, #0xff
- ble _0223B45A
- sub r0, #0xff
- sub r0, r4, r0
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
-_0223B45A:
- ldr r0, [sp, #0x10]
- ldr r2, [sp, #0x10]
- ldrb r0, [r0]
- add r1, r0, r4
- ldr r0, [sp, #0x10]
- strb r1, [r0]
- ldr r0, [sp, #0x18]
- ldr r1, [sp, #8]
- add r0, r0, r4
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x18]
- ldr r0, [sp, #0x14]
- add r1, #0xd
- bl SetMonDataEncrypted
- ldr r0, [sp, #0x10]
- add r0, r0, #1
- str r0, [sp, #0x10]
- ldr r0, [sp, #8]
- add r0, r0, #1
- str r0, [sp, #8]
- cmp r0, #6
- bge _0223B48C
- b _0223B35E
-_0223B48C:
- add r0, r7, #0
- bl FreeMonPersonal
- add sp, #0x28
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0223B498: .word 0x000001FE
-
- thumb_func_start MOD11_0223B49C
-MOD11_0223B49C: ; 0x0223B49C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x158
- add r4, r1, #0
- str r0, [sp, #0x10]
- ldr r0, [r4]
- bl MOD11_022300C4
- str r0, [sp, #0x20]
- ldr r0, [r4]
- bl MOD11_022300CC
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD11_02230068
- mov r7, #1
- str r0, [sp, #0x24]
- add r0, r7, #0
- ldr r6, [r4, #4]
- bl MaskOfFlagNo
- ldr r1, _0223B7F0 ; =0x00003108
- ldrb r1, [r6, r1]
- tst r0, r1
- beq _0223B4D0
- mov r7, #3
-_0223B4D0:
- ldr r0, [r4, #0x28]
- cmp r0, #0x20
- bls _0223B4DA
- bl _0223BFD0
-_0223B4DA:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0223B4E6: ; jump table
- .short _0223B528 - _0223B4E6 - 2 ; case 0
- .short _0223B5E8 - _0223B4E6 - 2 ; case 1
- .short _0223B634 - _0223B4E6 - 2 ; case 2
- .short _0223B662 - _0223B4E6 - 2 ; case 3
- .short _0223B68C - _0223B4E6 - 2 ; case 4
- .short _0223B6A0 - _0223B4E6 - 2 ; case 5
- .short _0223B6D4 - _0223B4E6 - 2 ; case 6
- .short _0223B6F6 - _0223B4E6 - 2 ; case 7
- .short _0223B716 - _0223B4E6 - 2 ; case 8
- .short _0223B75C - _0223B4E6 - 2 ; case 9
- .short _0223B77A - _0223B4E6 - 2 ; case 10
- .short _0223B8BC - _0223B4E6 - 2 ; case 11
- .short _0223B90A - _0223B4E6 - 2 ; case 12
- .short _0223B990 - _0223B4E6 - 2 ; case 13
- .short _0223B9E4 - _0223B4E6 - 2 ; case 14
- .short _0223BA12 - _0223B4E6 - 2 ; case 15
- .short _0223BA42 - _0223B4E6 - 2 ; case 16
- .short _0223BAC4 - _0223B4E6 - 2 ; case 17
- .short _0223BAEA - _0223B4E6 - 2 ; case 18
- .short _0223BB12 - _0223B4E6 - 2 ; case 19
- .short _0223BB6A - _0223B4E6 - 2 ; case 20
- .short _0223BC38 - _0223B4E6 - 2 ; case 21
- .short _0223BC7E - _0223B4E6 - 2 ; case 22
- .short _0223BC7E - _0223B4E6 - 2 ; case 23
- .short _0223BDD8 - _0223B4E6 - 2 ; case 24
- .short _0223BE26 - _0223B4E6 - 2 ; case 25
- .short _0223BE62 - _0223B4E6 - 2 ; case 26
- .short _0223BEA6 - _0223B4E6 - 2 ; case 27
- .short _0223BED8 - _0223B4E6 - 2 ; case 28
- .short _0223BEF0 - _0223B4E6 - 2 ; case 29
- .short _0223BF06 - _0223B4E6 - 2 ; case 30
- .short _0223BF5E - _0223B4E6 - 2 ; case 31
- .short _0223BF8E - _0223B4E6 - 2 ; case 32
-_0223B528:
- ldr r0, [r4, #0x24]
- cmp r0, #0
- bne _0223B5A4
- mov r0, #3
- str r0, [sp, #0x138]
- mov r0, #5
- str r0, [sp, #0x134]
- ldr r0, _0223B7F4 ; =0x00004E20
- add r0, r7, r0
- str r0, [sp, #0x13c]
- ldr r0, [r4, #0x2c]
- str r0, [sp, #0x140]
- ldr r0, [r4]
- bl MOD11_02230078
- str r0, [sp, #0x14c]
- ldr r0, [r4]
- bl MOD11_022300CC
- str r0, [sp, #0x150]
- mov r0, #1
- str r0, [sp, #0x144]
- mov r0, #0
- str r0, [sp, #0x148]
- ldr r0, [r4]
- str r0, [sp, #0x154]
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _0223B578
- cmp r7, #1
- bne _0223B572
- mov r0, #0x10
- str r0, [sp, #0x130]
- b _0223B57C
-_0223B572:
- mov r0, #0x11
- str r0, [sp, #0x130]
- b _0223B57C
-_0223B578:
- mov r0, #0xf
- str r0, [sp, #0x130]
-_0223B57C:
- add r0, sp, #0x130
- bl MOD08_02229918
- str r0, [r4, #8]
- mov r0, #1
- str r0, [r4, #0x28]
- ldr r0, _0223B7F8 ; =0x0000070A
- bl FUN_020054C8
- ldr r2, [r4]
- ldr r0, _0223B7FC ; =0x0000241E
- ldrh r1, [r2, r0]
- add r1, r1, #1
- strh r1, [r2, r0]
- ldr r0, [r4, #8]
- mov r1, #0
- bl MOD08_02228AB8
- add sp, #0x158
- pop {r3, r4, r5, r6, r7, pc}
-_0223B5A4:
- ldr r0, [r4]
- mov r1, #0
- bl MOD11_0222FF7C
- add r5, r0, #0
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_02229A80
- cmp r0, #4
- beq _0223B678
- add r0, r5, #0
- add r0, #0x88
- ldr r0, [r0]
- add r5, #0x88
- str r0, [r4, #8]
- mov r0, #0
- str r0, [r5]
- mov r0, #1
- str r0, [r4, #0x28]
- ldr r0, _0223B7F8 ; =0x0000070A
- bl FUN_020054C8
- ldr r2, [r4]
- ldr r0, _0223B7FC ; =0x0000241E
- ldrh r1, [r2, r0]
- add r1, r1, #1
- strh r1, [r2, r0]
- ldr r0, [r4, #8]
- mov r1, #0
- bl MOD08_02228AB8
- add sp, #0x158
- pop {r3, r4, r5, r6, r7, pc}
-_0223B5E8:
- ldr r0, [r4, #8]
- mov r1, #0
- bl MOD08_02228AC0
- cmp r0, #0
- bne _0223B678
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #1
- tst r0, r1
- beq _0223B618
- ldr r0, _0223B800 ; =0x000005E6
- mov r1, #0x75
- bl FUN_020054A8
- ldr r0, [r4, #8]
- mov r1, #2
- bl MOD08_02228AB8
- mov r0, #0x19
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223B618:
- ldr r0, _0223B804 ; =0x00000708
- mov r1, #0x75
- bl FUN_020054A8
- ldr r0, [r4, #8]
- mov r1, #1
- bl MOD08_02228AB8
- mov r0, #2
- str r0, [r4, #0x28]
- mov r0, #0x17
- add sp, #0x158
- str r0, [r4, #0x34]
- pop {r3, r4, r5, r6, r7, pc}
-_0223B634:
- ldr r0, [r4, #0x34]
- sub r0, r0, #1
- str r0, [r4, #0x34]
- bne _0223B678
- ldr r0, [r4]
- ldr r2, [r4, #0x2c]
- add r1, r7, #0
- bl MOD11_02254EA8
- ldr r0, [r4]
- ldr r1, [r4, #4]
- bl MOD11_0223BFD8
- str r0, [r4, #0x38]
- cmp r0, #4
- bge _0223B656
- b _0223B658
-_0223B656:
- mov r0, #3
-_0223B658:
- str r0, [r4, #0x3c]
- mov r0, #3
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223B662:
- ldr r0, [r4, #8]
- mov r1, #1
- bl MOD08_02228AC0
- cmp r0, #0
- bne _0223B678
- ldr r0, [r4, #4]
- bl MOD11_02243388
- cmp r0, #0
- bne _0223B67C
-_0223B678:
- bl _0223BFD0
-_0223B67C:
- ldr r0, [r4, #8]
- mov r1, #3
- bl MOD08_02228AB8
- mov r0, #4
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223B68C:
- ldr r0, [r4, #8]
- mov r1, #3
- bl MOD08_02228AC0
- cmp r0, #0
- bne _0223B78E
- mov r0, #5
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223B6A0:
- ldr r0, [r4, #0x3c]
- cmp r0, #0
- bne _0223B6C0
- ldr r0, [r4, #0x38]
- cmp r0, #4
- bne _0223B6B8
- mov r0, #7
- str r0, [r4, #0x28]
- mov r0, #0xc
- add sp, #0x158
- str r0, [r4, #0x34]
- pop {r3, r4, r5, r6, r7, pc}
-_0223B6B8:
- mov r0, #0x1c
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223B6C0:
- ldr r0, [r4, #8]
- mov r1, #4
- bl MOD08_02228AB8
- mov r0, #6
- str r0, [r4, #0x28]
- mov r0, #0xc
- add sp, #0x158
- str r0, [r4, #0x34]
- pop {r3, r4, r5, r6, r7, pc}
-_0223B6D4:
- ldr r0, [r4, #8]
- mov r1, #4
- bl MOD08_02228AC0
- cmp r0, #0
- bne _0223B78E
- ldr r0, [r4, #0x34]
- sub r0, r0, #1
- str r0, [r4, #0x34]
- bne _0223B78E
- ldr r0, [r4, #0x3c]
- add sp, #0x158
- sub r0, r0, #1
- str r0, [r4, #0x3c]
- mov r0, #5
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223B6F6:
- ldr r0, [r4, #0x34]
- sub r0, r0, #1
- str r0, [r4, #0x34]
- bne _0223B78E
- ldr r0, [r4, #8]
- mov r1, #6
- bl MOD08_02228AB8
- ldr r0, _0223B808 ; =0x00000709
- mov r1, #0x75
- bl FUN_020054A8
- mov r0, #8
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223B716:
- ldr r0, [r4, #8]
- mov r1, #6
- bl MOD08_02228AC0
- cmp r0, #0
- bne _0223B78E
- ldr r1, _0223B80C ; =0x00000363
- add r0, sp, #0x10c
- strh r1, [r0, #2]
- mov r1, #0x82
- strb r1, [r0, #1]
- str r7, [sp, #0x110]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x20]
- add r2, sp, #0x10c
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- mov r0, #0x14
- str r0, [r4, #0x34]
- mov r0, #9
- str r0, [r4, #0x28]
- ldr r0, _0223B810 ; =0x00000467
- bl FUN_0200521C
- ldr r0, [r4]
- mov r1, #2
- bl MOD11_02231484
- add sp, #0x158
- pop {r3, r4, r5, r6, r7, pc}
-_0223B75C:
- ldr r0, [r4, #0x30]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_0201BD70
- cmp r0, #0
- bne _0223B78E
- mov r0, #0xa
- str r0, [r4, #0x28]
- ldr r0, [r4, #8]
- mov r1, #7
- bl MOD08_02228AB8
- add sp, #0x158
- pop {r3, r4, r5, r6, r7, pc}
-_0223B77A:
- ldr r0, [r4, #8]
- mov r1, #7
- bl MOD08_02228AC0
- cmp r0, #0
- bne _0223B78E
- ldr r0, [r4, #0x34]
- sub r0, r0, #1
- str r0, [r4, #0x34]
- beq _0223B792
-_0223B78E:
- bl _0223BFD0
-_0223B792:
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD11_022314D4
- ldr r2, [r4, #4]
- ldr r0, [r4]
- add r3, r2, r7
- ldr r2, _0223B814 ; =0x0000219C
- add r1, r7, #0
- ldrb r2, [r3, r2]
- bl MOD11_02230014
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #6
- lsl r1, r1, #8
- tst r0, r1
- beq _0223B83C
- ldr r2, [r4, #4]
- ldr r0, [r4]
- add r3, r2, r7
- ldr r2, _0223B814 ; =0x0000219C
- add r1, r7, #0
- ldrb r2, [r3, r2]
- bl MOD11_02230014
- add r2, r0, #0
- ldr r0, [r4]
- ldr r1, [r4, #4]
- bl MOD11_0224AD38
- ldr r0, [r4]
- bl MOD11_02230288
- mov r1, #1
- bl FUN_020143A8
- mov r1, #0
- str r1, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- str r1, [sp, #8]
- ldr r2, _0223B818 ; =0x0000FFFF
- b _0223B81C
- nop
-_0223B7F0: .word 0x00003108
-_0223B7F4: .word 0x00004E20
-_0223B7F8: .word 0x0000070A
-_0223B7FC: .word 0x0000241E
-_0223B800: .word 0x000005E6
-_0223B804: .word 0x00000708
-_0223B808: .word 0x00000709
-_0223B80C: .word 0x00000363
-_0223B810: .word 0x00000467
-_0223B814: .word 0x0000219C
-_0223B818: .word 0x0000FFFF
-_0223B81C:
- add r0, r5, #0
- mov r1, #0xf
- mov r3, #1
- bl FUN_02003210
- mov r1, #0
- ldr r0, [sp, #0x24]
- mov r2, #0x10
- add r3, r1, #0
- str r1, [sp]
- bl FUN_02007E98
- mov r0, #0x20
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223B83C:
- add r0, r6, #0
- mov r1, #5
- mov r2, #0
- bl GetMonDataEncrypted
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD11_02231668
- cmp r0, #0
- beq _0223B88A
- ldr r0, [r4]
- bl MOD11_02230288
- mov r1, #1
- bl FUN_020143A8
- mov r1, #0
- str r1, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- str r1, [sp, #8]
- ldr r2, _0223BBD4 ; =0x0000FFFF
- add r0, r5, #0
- mov r1, #5
- mov r3, #1
- bl FUN_02003210
- mov r1, #0
- ldr r0, [sp, #0x24]
- mov r2, #0x10
- add r3, r1, #0
- str r1, [sp]
- bl FUN_02007E98
- mov r0, #0x10
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223B88A:
- ldr r1, _0223BBD8 ; =0x00000367
- add r0, sp, #0xe8
- strh r1, [r0, #2]
- mov r1, #0x82
- strb r1, [r0, #1]
- str r7, [sp, #0xec]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x20]
- add r2, sp, #0xe8
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- mov r0, #0x14
- str r0, [r4, #0x34]
- mov r0, #0xb
- str r0, [r4, #0x28]
- ldr r0, [r4]
- bl MOD11_0223129C
- add sp, #0x158
- pop {r3, r4, r5, r6, r7, pc}
-_0223B8BC:
- ldr r0, [r4, #0x30]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_0201BD70
- cmp r0, #0
- bne _0223B914
- ldr r0, [r4, #0x34]
- sub r0, r0, #1
- str r0, [r4, #0x34]
- bne _0223B914
- mov r0, #0xc
- str r0, [r4, #0x28]
- mov r1, #0
- str r1, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- str r1, [sp, #8]
- ldr r2, _0223BBD4 ; =0x0000FFFF
- add r0, r5, #0
- mov r1, #5
- mov r3, #1
- bl FUN_02003210
- mov r1, #0
- ldr r0, [sp, #0x24]
- str r1, [sp]
- mov r2, #0x10
- add r3, r1, #0
- bl FUN_02007E98
- ldr r0, [r4]
- bl MOD11_02230288
- mov r1, #1
- bl FUN_020143A8
- add sp, #0x158
- pop {r3, r4, r5, r6, r7, pc}
-_0223B90A:
- add r0, r5, #0
- bl FUN_020038E4
- cmp r0, #0
- beq _0223B916
-_0223B914:
- b _0223BFD0
-_0223B916:
- ldr r0, [r4, #8]
- bl MOD08_02229A2C
- ldr r0, [sp, #0x24]
- bl FUN_02007540
- ldr r0, [r4]
- bl MOD11_0222D944
- ldr r0, [r4]
- mov r1, #0
- bl MOD11_02230088
- mov r1, #0
- bl MOD11_022583C8
- ldr r0, [r4]
- mov r1, #1
- bl MOD11_02230088
- mov r1, #0
- bl MOD11_022583C8
- ldr r0, [r4]
- bl MOD11_0222FF68
- str r0, [sp, #0xd0]
- ldr r0, [r4]
- bl MOD11_022300CC
- str r0, [sp, #0xd4]
- ldr r0, [sp, #0x24]
- add r1, r7, #0
- str r0, [sp, #0xd8]
- mov r0, #5
- str r0, [sp, #0xdc]
- ldr r2, [r4, #4]
- ldr r0, [r4]
- add r3, r2, r7
- ldr r2, _0223BBDC ; =0x0000219C
- ldrb r2, [r3, r2]
- bl MOD11_02230014
- str r0, [sp, #0xe0]
- ldr r0, [r4]
- bl MOD11_022300D0
- bl FUN_0206BB34
- str r0, [sp, #0xe4]
- bl FUN_0201D658
- str r0, [r4, #0x54]
- add r0, sp, #0xd0
- bl MOD16_021EEF0C
- str r0, [r4, #0x50]
- mov r0, #0xd
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223B990:
- ldr r0, [r4, #0x50]
- bl MOD16_021EEF84
- cmp r0, #0
- beq _0223BA4C
- ldr r0, _0223BBE0 ; =0x021C48B8
- ldr r1, [r0, #0x48]
- mov r0, #1
- tst r0, r1
- beq _0223B9AA
- mov r0, #0xe
- str r0, [r4, #0x28]
- b _0223B9BC
-_0223B9AA:
- bl FUN_02020AA4
- cmp r0, #0
- beq _0223B9BC
- ldr r0, _0223BBE4 ; =0x000005DC
- bl FUN_020054C8
- mov r0, #0xe
- str r0, [r4, #0x28]
-_0223B9BC:
- ldr r0, [r4, #0x28]
- cmp r0, #0xe
- bne _0223BA4C
- mov r1, #0
- str r1, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- str r1, [sp, #8]
- ldr r2, _0223BBD4 ; =0x0000FFFF
- add r0, r5, #0
- mov r1, #5
- mov r3, #1
- bl FUN_02003210
- ldr r0, [r4, #0x50]
- mov r1, #0
- bl MOD05_021EEF9C
- add sp, #0x158
- pop {r3, r4, r5, r6, r7, pc}
-_0223B9E4:
- ldr r0, [r4, #0x50]
- bl MOD16_021EEF98
- add r5, r0, #0
- mov r1, #0
- mov r2, #4
- bl FUN_020079E0
- add r0, r5, #0
- mov r1, #0
- bl FUN_0200782C
- cmp r0, #0x80
- blt _0223BA4C
- add r0, r5, #0
- mov r1, #0
- mov r2, #0x80
- bl FUN_02007558
- mov r0, #0xf
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223BA12:
- ldr r0, [r4, #0x50]
- bl MOD05_021EEF68
- ldr r0, [r4, #0x54]
- bl FUN_0201D674
- ldr r0, [r4]
- bl MOD11_0222D980
- mov r0, #0x10
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- str r0, [sp, #8]
- ldr r2, _0223BBD4 ; =0x0000FFFF
- add r0, r5, #0
- mov r1, #5
- mov r3, #1
- bl FUN_02003210
- mov r0, #0x11
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223BA42:
- add r0, r5, #0
- bl FUN_020038E4
- cmp r0, #0
- beq _0223BA4E
-_0223BA4C:
- b _0223BFD0
-_0223BA4E:
- ldr r2, [r4, #4]
- ldr r0, [r4]
- add r3, r2, r7
- ldr r2, _0223BBDC ; =0x0000219C
- add r1, r7, #0
- ldrb r2, [r3, r2]
- bl MOD11_02230014
- add r6, r0, #0
- ldr r0, [r4, #8]
- bl MOD08_02229A2C
- ldr r0, [sp, #0x24]
- bl FUN_02007540
- ldr r0, [r4]
- bl MOD11_0222D944
- ldr r0, [r4]
- bl MOD11_0222D980
- add r0, sp, #0xc0
- add r1, r6, #0
- mov r2, #2
- bl FUN_02068B68
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x24]
- add r1, sp, #0xc0
- mov r2, #0x80
- mov r3, #0x48
- bl FUN_020073A0
- mov r0, #0x10
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- str r0, [sp, #8]
- ldr r2, _0223BBD4 ; =0x0000FFFF
- add r0, r5, #0
- mov r1, #5
- mov r3, #1
- bl FUN_02003210
- mov r2, #0
- ldr r0, [sp, #0x24]
- mov r1, #0x10
- add r3, r2, #0
- str r2, [sp]
- bl FUN_02007E98
- mov r0, #0x11
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223BAC4:
- add r0, r5, #0
- bl FUN_020038E4
- cmp r0, #0
- bne _0223BB74
- mov r0, #0x12
- str r0, [r4, #0x28]
- ldr r0, [r4]
- bl MOD11_02230288
- mov r1, #0
- bl FUN_020143A8
- add r0, r5, #0
- mov r1, #1
- bl FUN_020038F0
- add sp, #0x158
- pop {r3, r4, r5, r6, r7, pc}
-_0223BAEA:
- ldr r1, [r4, #4]
- mov r0, #5
- str r0, [sp]
- mov r2, #0
- ldr r0, _0223BBDC ; =0x0000219C
- str r2, [sp, #4]
- add r3, r1, r7
- ldrb r0, [r3, r0]
- mov r3, #0xd9
- lsl r3, r3, #2
- orr r0, r7
- str r0, [sp, #8]
- ldr r0, [r4]
- bl MOD11_02255980
- ldr r0, [r4, #0x28]
- add sp, #0x158
- add r0, r0, #1
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223BB12:
- add r0, r6, #0
- mov r1, #0
- bl MOD11_0224AD90
- cmp r0, #0
- beq _0223BB74
- ldr r0, [r4, #4]
- mov r1, #0
- bl MOD11_0224AD90
- cmp r0, #0xff
- bne _0223BB32
- mov r0, #0x16
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223BB32:
- ldr r0, [r4]
- bl MOD11_02230288
- mov r1, #1
- bl FUN_020143A8
- mov r1, #0
- str r1, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- str r1, [sp, #8]
- ldr r2, _0223BBD4 ; =0x0000FFFF
- add r0, r5, #0
- mov r1, #0xf
- mov r3, #1
- bl FUN_02003210
- mov r1, #0
- ldr r0, [sp, #0x24]
- mov r2, #0x10
- add r3, r1, #0
- str r1, [sp]
- bl FUN_02007E98
- mov r0, #0x14
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223BB6A:
- add r0, r5, #0
- bl FUN_020038E4
- cmp r0, #0
- beq _0223BB76
-_0223BB74:
- b _0223BFD0
-_0223BB76:
- mov r0, #0
- add r1, r0, #0
- bl FUN_0200E3A0
- mov r0, #1
- mov r1, #0
- bl FUN_0200E3A0
- ldr r2, [r4, #4]
- ldr r0, [r4]
- add r3, r2, r7
- ldr r2, _0223BBDC ; =0x0000219C
- add r1, r7, #0
- ldrb r2, [r3, r2]
- bl MOD11_02230014
- mov r1, #5
- mov r2, #0
- add r6, r0, #0
- bl GetMonDataEncrypted
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD11_02230E18
- str r0, [sp]
- mov r0, #5
- mov r1, #1
- add r2, r5, #0
- mov r3, #0xa
- bl FUN_02077A84
- add r5, r0, #0
- str r5, [r4, #0x54]
- ldr r0, [r4]
- mov r1, #0
- bl MOD11_0222FFC8
- cmp r0, #6
- bge _0223BBCA
- mov r0, #0
- b _0223BBEE
-_0223BBCA:
- ldr r0, [r4]
- bl MOD11_02231280
- ldr r1, _0223BBE8 ; =0x00000496
- b _0223BBEC
- .align 2, 0
-_0223BBD4: .word 0x0000FFFF
-_0223BBD8: .word 0x00000367
-_0223BBDC: .word 0x0000219C
-_0223BBE0: .word 0x021C48B8
-_0223BBE4: .word 0x000005DC
-_0223BBE8: .word 0x00000496
-_0223BBEC:
- add r0, r0, r1
-_0223BBEE:
- str r0, [r5, #0x44]
- add r0, r6, #0
- mov r1, #0x70
- mov r2, #0
- bl GetMonDataEncrypted
- str r0, [r5, #8]
- ldr r0, [r4]
- bl MOD11_02230290
- str r0, [r5, #0x48]
- add r0, r6, #0
- mov r1, #0x6f
- mov r2, #0
- bl GetMonDataEncrypted
- str r0, [r5, #0x10]
- ldr r0, _0223BF18 ; =0x020FA5FC
- add r1, r5, #0
- mov r2, #5
- bl FUN_02006234
- str r0, [r4, #0x50]
- mov r0, #0x15
- str r0, [r4, #0x28]
- ldr r0, [r4]
- bl MOD11_02231438
- ldr r0, [r4]
- bl MOD11_0222D840
- ldr r0, [r4]
- mov r1, #1
- bl MOD11_02231338
- add sp, #0x158
- pop {r3, r4, r5, r6, r7, pc}
-_0223BC38:
- ldr r0, [r4, #0x50]
- bl FUN_02006290
- cmp r0, #0
- beq _0223BC88
- ldr r2, [r4, #4]
- ldr r5, [r4, #0x54]
- add r3, r2, r7
- ldr r2, _0223BF1C ; =0x0000219C
- ldr r0, [r4]
- ldrb r2, [r3, r2]
- add r1, r7, #0
- bl MOD11_02230014
- ldr r1, [r5, #0x14]
- cmp r1, #0
- bne _0223BC62
- ldr r2, [r5, #0x18]
- mov r1, #0x77
- bl SetMonDataEncrypted
-_0223BC62:
- add r0, r5, #0
- bl FUN_02077AC4
- ldr r0, [r4, #0x50]
- bl FUN_02006260
- ldr r0, [r4]
- mov r1, #2
- bl MOD11_02231338
- mov r0, #0x17
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223BC7E:
- add r0, r5, #0
- bl FUN_020038E4
- cmp r0, #0
- beq _0223BC8A
-_0223BC88:
- b _0223BFD0
-_0223BC8A:
- ldr r0, [r4]
- mov r1, #0
- bl MOD11_0222FF88
- ldr r2, [r4, #4]
- str r0, [sp, #0x28]
- add r3, r2, r7
- ldr r2, _0223BF1C ; =0x0000219C
- ldr r0, [r4]
- ldrb r2, [r3, r2]
- add r1, r7, #0
- bl MOD11_02230014
- add r6, r0, #0
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD11_02231628
- ldr r0, [r4]
- ldr r1, [r4, #4]
- add r2, r6, #0
- bl MOD11_0224AD38
- ldr r0, [r4]
- add r1, r6, #0
- bl MOD11_02230F88
- ldr r0, [r4]
- add r1, r6, #0
- bl MOD11_02230FA8
- mov r1, #0
- ldr r0, [r4]
- add r2, r1, #0
- mov r3, #9
- bl MOD11_022564A8
- ldr r0, [sp, #0x28]
- add r1, r6, #0
- bl FUN_0206B900
- cmp r0, #1
- bne _0223BD1E
- ldr r0, [r4, #0x28]
- cmp r0, #0x16
- bne _0223BD16
- ldr r0, [r4]
- bl MOD11_02230288
- mov r1, #1
- bl FUN_020143A8
- mov r1, #0
- str r1, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- str r1, [sp, #8]
- ldr r2, _0223BF20 ; =0x0000FFFF
- add r0, r5, #0
- mov r1, #0xf
- mov r3, #1
- bl FUN_02003210
- mov r1, #0
- ldr r0, [sp, #0x24]
- mov r2, #0x10
- add r3, r1, #0
- str r1, [sp]
- bl FUN_02007E98
-_0223BD16:
- mov r0, #0x20
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223BD1E:
- ldr r0, [r4]
- bl MOD11_02230290
- str r0, [sp, #0x1c]
- bl FUN_0206B330
- str r0, [sp, #0x18]
- ldr r0, [sp, #0x1c]
- bl FUN_0206B334
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x1c]
- ldr r1, [sp, #0x14]
- bl FUN_0206B428
- mov r5, #0
-_0223BD3E:
- add r1, r5, #0
- add r0, r6, #0
- add r1, #0x42
- mov r2, #0
- bl GetMonDataEncrypted
- add r1, r5, #0
- str r0, [sp, #0x2c]
- add r0, r6, #0
- add r1, #0x3a
- add r2, sp, #0x2c
- bl SetMonDataEncrypted
- add r5, r5, #1
- cmp r5, #4
- blt _0223BD3E
- add r0, r6, #0
- bl FUN_020690E4
- add r2, r0, #0
- ldr r0, [sp, #0x1c]
- ldr r1, [sp, #0x14]
- bl FUN_0206B244
- ldr r0, [r4, #0x28]
- cmp r0, #0x16
- bne _0223BDD0
- ldr r1, [sp, #0x18]
- ldr r0, [sp, #0x14]
- cmp r1, r0
- ldr r0, [r4]
- bne _0223BD96
- bl MOD11_02231280
- ldr r1, _0223BF24 ; =0x00000496
- add r1, r0, r1
- add r0, sp, #0x9c
- strh r1, [r0, #2]
- mov r1, #0x93
- strb r1, [r0, #1]
- ldr r0, [sp, #0x18]
- str r7, [sp, #0xa0]
- str r0, [sp, #0xa4]
- b _0223BDB0
-_0223BD96:
- bl MOD11_02231280
- ldr r1, _0223BF28 ; =0x00000498
- add r1, r0, r1
- add r0, sp, #0x9c
- strh r1, [r0, #2]
- mov r1, #0xaf
- strb r1, [r0, #1]
- ldr r0, [sp, #0x18]
- str r7, [sp, #0xa0]
- str r0, [sp, #0xa4]
- ldr r0, [sp, #0x14]
- str r0, [sp, #0xa8]
-_0223BDB0:
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x20]
- add r2, sp, #0x9c
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- mov r0, #0x14
- str r0, [r4, #0x34]
- mov r0, #0x18
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223BDD0:
- mov r0, #0x20
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223BDD8:
- ldr r0, [r4, #0x30]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_0201BD70
- cmp r0, #0
- bne _0223BEBC
- ldr r0, [r4, #0x34]
- sub r0, r0, #1
- str r0, [r4, #0x34]
- bne _0223BEBC
- ldr r0, [r4]
- bl MOD11_02230288
- mov r1, #1
- bl FUN_020143A8
- mov r1, #0
- str r1, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- str r1, [sp, #8]
- ldr r2, _0223BF20 ; =0x0000FFFF
- add r0, r5, #0
- mov r1, #0xf
- mov r3, #1
- bl FUN_02003210
- mov r1, #0
- ldr r0, [sp, #0x24]
- mov r2, #0x10
- add r3, r1, #0
- str r1, [sp]
- bl FUN_02007E98
- mov r0, #0x20
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223BE26:
- ldr r0, [r4, #8]
- mov r1, #2
- bl MOD08_02228AC0
- cmp r0, #0
- bne _0223BEBC
- ldr r0, [r4, #8]
- bl MOD08_02229A2C
- ldr r1, _0223BF2C ; =0x0000035B
- add r0, sp, #0x78
- strh r1, [r0, #2]
- mov r1, #0
- strb r1, [r0, #1]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x20]
- add r2, sp, #0x78
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- mov r0, #0x14
- str r0, [r4, #0x34]
- mov r0, #0x1a
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223BE62:
- ldr r0, [r4, #0x30]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_0201BD70
- cmp r0, #0
- bne _0223BEBC
- ldr r0, [r4, #0x34]
- sub r0, r0, #1
- str r0, [r4, #0x34]
- bne _0223BEBC
- mov r1, #0xd7
- lsl r1, r1, #2
- add r0, sp, #0x2c
- strh r1, [r0, #0x2a]
- mov r1, #0
- add r0, sp, #0x54
- strb r1, [r0, #1]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x20]
- add r2, sp, #0x54
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- mov r0, #0x14
- str r0, [r4, #0x34]
- mov r0, #0x1b
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223BEA6:
- ldr r0, [r4, #0x30]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_0201BD70
- cmp r0, #0
- bne _0223BEBC
- ldr r0, [r4, #0x34]
- sub r0, r0, #1
- str r0, [r4, #0x34]
- beq _0223BEBE
-_0223BEBC:
- b _0223BFD0
-_0223BEBE:
- mov r0, #0x5e
- ldr r1, [r4, #4]
- mov r2, #0
- lsl r0, r0, #2
- str r2, [r1, r0]
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [sp, #0x10]
- bl FUN_0200CAB4
- add sp, #0x158
- pop {r3, r4, r5, r6, r7, pc}
-_0223BED8:
- ldr r0, [r4]
- ldr r2, [r4, #0x2c]
- add r1, r7, #0
- mov r3, #1
- bl MOD11_02254B40
- mov r0, #0x1d
- str r0, [r4, #0x28]
- mov r0, #2
- add sp, #0x158
- str r0, [r4, #0x34]
- pop {r3, r4, r5, r6, r7, pc}
-_0223BEF0:
- ldr r0, [r4, #0x34]
- sub r0, r0, #1
- str r0, [r4, #0x34]
- bne _0223BFD0
- ldr r0, [r4, #8]
- bl MOD08_02229A2C
- mov r0, #0x1e
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223BF06:
- add r0, r6, #0
- bl MOD11_02243388
- cmp r0, #0
- beq _0223BFD0
- ldr r1, [r4, #0x38]
- ldr r0, _0223BF30 ; =0x0000035F
- b _0223BF34
- nop
-_0223BF18: .word 0x020FA5FC
-_0223BF1C: .word 0x0000219C
-_0223BF20: .word 0x0000FFFF
-_0223BF24: .word 0x00000496
-_0223BF28: .word 0x00000498
-_0223BF2C: .word 0x0000035B
-_0223BF30: .word 0x0000035F
-_0223BF34:
- add r1, r1, r0
- add r0, sp, #0x2c
- strh r1, [r0, #6]
- mov r1, #0
- strb r1, [r0, #5]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- ldr r1, [sp, #0x20]
- add r2, sp, #0x30
- bl MOD11_0223178C
- str r0, [r4, #0x30]
- mov r0, #0x14
- str r0, [r4, #0x34]
- mov r0, #0x1f
- add sp, #0x158
- str r0, [r4, #0x28]
- pop {r3, r4, r5, r6, r7, pc}
-_0223BF5E:
- ldr r0, [r4, #0x30]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_0201BD70
- cmp r0, #0
- bne _0223BFD0
- ldr r0, [r4, #0x34]
- sub r0, r0, #1
- str r0, [r4, #0x34]
- bne _0223BFD0
- mov r0, #0x5e
- ldr r1, [r4, #4]
- mov r2, #0
- lsl r0, r0, #2
- str r2, [r1, r0]
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [sp, #0x10]
- bl FUN_0200CAB4
- add sp, #0x158
- pop {r3, r4, r5, r6, r7, pc}
-_0223BF8E:
- add r0, r5, #0
- bl FUN_020038E4
- cmp r0, #0
- bne _0223BFD0
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #6
- lsl r1, r1, #8
- tst r0, r1
- beq _0223BFB2
- ldr r0, [r4, #8]
- bl MOD08_02229A2C
- ldr r0, [sp, #0x24]
- bl FUN_02007540
-_0223BFB2:
- ldr r1, [r4]
- ldr r0, _0223BFD4 ; =0x0000241C
- mov r2, #4
- strb r2, [r1, r0]
- mov r0, #0x5e
- ldr r1, [r4, #4]
- mov r2, #0
- lsl r0, r0, #2
- str r2, [r1, r0]
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [sp, #0x10]
- bl FUN_0200CAB4
-_0223BFD0:
- add sp, #0x158
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0223BFD4: .word 0x0000241C
-
- thumb_func_start MOD11_0223BFD8
-MOD11_0223BFD8: ; 0x0223BFD8
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- add r4, r1, #0
- bl MOD11_0222FF74
- mov r1, #6
- lsl r1, r1, #8
- tst r0, r1
- beq _0223BFEE
- mov r0, #4
- pop {r3, r4, r5, r6, r7, pc}
-_0223BFEE:
- mov r0, #0x4a
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- ldr r1, [r4, #0x6c]
- cmp r0, #5
- bne _0223C026
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- mov r0, #0xb5
- lsl r0, r0, #6
- ldrh r0, [r1, r0]
- mov r1, #8
- bl GetMonBaseStat
- ldr r1, _0223C200 ; =0x0000311C
- ldr r2, _0223C204 ; =0x0225DCF0
- ldrb r1, [r4, r1]
- lsl r1, r1, #1
- ldrb r2, [r2, r1]
- mul r2, r0
- add r0, r2, #0
- ldr r2, _0223C208 ; =0x0225DCF1
- ldrb r1, [r2, r1]
- bl _u32_div_f
- str r0, [sp]
- b _0223C03A
-_0223C026:
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- mov r0, #0xb5
- lsl r0, r0, #6
- ldrh r0, [r1, r0]
- mov r1, #8
- bl GetMonBaseStat
- str r0, [sp]
-_0223C03A:
- ldr r1, [r4, #0x6c]
- add r0, r4, #0
- mov r2, #0x1b
- mov r3, #0
- mov r5, #0xa
- bl MOD11_02243420
- add r7, r0, #0
- ldr r1, [r4, #0x6c]
- add r0, r4, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- add r1, r0, #0
- mov r0, #0x4a
- lsl r0, r0, #2
- ldr r2, [r4, r0]
- cmp r2, #5
- ble _0223C128
- cmp r2, #0xf
- bhi _0223C12E
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0223C072: ; jump table
- .short _0223C12E - _0223C072 - 2 ; case 0
- .short _0223C12E - _0223C072 - 2 ; case 1
- .short _0223C12E - _0223C072 - 2 ; case 2
- .short _0223C12E - _0223C072 - 2 ; case 3
- .short _0223C12E - _0223C072 - 2 ; case 4
- .short _0223C12E - _0223C072 - 2 ; case 5
- .short _0223C092 - _0223C072 - 2 ; case 6
- .short _0223C0A6 - _0223C072 - 2 ; case 7
- .short _0223C0B4 - _0223C072 - 2 ; case 8
- .short _0223C0D0 - _0223C072 - 2 ; case 9
- .short _0223C0EC - _0223C072 - 2 ; case 10
- .short _0223C12E - _0223C072 - 2 ; case 11
- .short _0223C12E - _0223C072 - 2 ; case 12
- .short _0223C0FA - _0223C072 - 2 ; case 13
- .short _0223C12E - _0223C072 - 2 ; case 14
- .short _0223C11C - _0223C072 - 2 ; case 15
-_0223C092:
- cmp r7, #0xb
- beq _0223C0A2
- cmp r1, #0xb
- beq _0223C0A2
- cmp r7, #6
- beq _0223C0A2
- cmp r1, #6
- bne _0223C12E
-_0223C0A2:
- mov r5, #0x1e
- b _0223C12E
-_0223C0A6:
- add r0, r6, #0
- bl MOD11_02230294
- cmp r0, #7
- bne _0223C12E
- mov r5, #0x23
- b _0223C12E
-_0223C0B4:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0223C20C ; =0x00002D74
- ldrb r1, [r1, r0]
- cmp r1, #0x28
- bhs _0223C12E
- mov r0, #0x28
- sub r5, r0, r1
- cmp r5, #0xa
- bhs _0223C12E
- mov r5, #0xa
- b _0223C12E
-_0223C0D0:
- ldr r2, [r4, #0x6c]
- mov r1, #0xc0
- mul r1, r2
- add r2, r4, r1
- mov r1, #0xb5
- lsl r1, r1, #6
- ldrh r1, [r2, r1]
- add r0, r6, #0
- bl MOD11_02231668
- cmp r0, #1
- bne _0223C12E
- mov r5, #0x1e
- b _0223C12E
-_0223C0EC:
- add r0, #0x28
- ldr r5, [r4, r0]
- add r5, #0xa
- cmp r5, #0x28
- bls _0223C12E
- mov r5, #0x28
- b _0223C12E
-_0223C0FA:
- add r0, r6, #0
- bl MOD11_02230C5C
- cmp r0, #3
- beq _0223C118
- add r0, r6, #0
- bl MOD11_02230C5C
- cmp r0, #4
- beq _0223C118
- add r0, r6, #0
- bl MOD11_02230294
- cmp r0, #5
- bne _0223C12E
-_0223C118:
- mov r5, #0x23
- b _0223C12E
-_0223C11C:
- add r0, #0x28
- ldr r0, [r4, r0]
- cmp r0, #1
- bge _0223C12E
- mov r5, #0x28
- b _0223C12E
-_0223C128:
- ldr r0, _0223C210 ; =0x0225DC28
- sub r1, r2, #2
- ldrb r5, [r0, r1]
-_0223C12E:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- add r6, r1, #0
- mul r6, r0
- ldr r0, _0223C214 ; =0x00002D90
- add r1, r4, r6
- ldr r1, [r1, r0]
- lsl r0, r1, #1
- add r7, r1, r0
- ldr r1, [sp]
- add r0, r1, #0
- mul r0, r5
- mov r1, #0xa
- bl _u32_div_f
- ldr r1, _0223C218 ; =0x00002D8C
- add r2, r4, r6
- ldr r1, [r2, r1]
- lsl r1, r1, #1
- sub r1, r7, r1
- mul r1, r0
- add r0, r1, #0
- add r1, r7, #0
- bl _u32_div_f
- add r1, r0, #0
- ldr r0, _0223C21C ; =0x00002DAC
- add r2, r4, r6
- ldr r2, [r2, r0]
- mov r0, #0x27
- tst r0, r2
- beq _0223C170
- lsl r1, r1, #1
-_0223C170:
- mov r0, #0xd8
- tst r0, r2
- beq _0223C182
- mov r0, #0xf
- mul r0, r1
- mov r1, #0xa
- bl _u32_div_f
- add r1, r0, #0
-_0223C182:
- cmp r1, #0xff
- blo _0223C18A
- mov r5, #4
- b _0223C1FA
-_0223C18A:
- ldr r0, _0223C220 ; =0x040002B0
- mov r2, #0
- strh r2, [r0]
- mov r0, #0xff
- lsl r0, r0, #0x10
- bl _u32_div_f
- ldr r1, _0223C224 ; =0x040002B8
- add r2, r1, #0
- str r0, [r1]
- sub r2, #8
- lsr r0, r1, #0xb
-_0223C1A2:
- ldrh r1, [r2]
- tst r1, r0
- bne _0223C1A2
- ldr r3, _0223C220 ; =0x040002B0
- lsr r0, r3, #0xb
-_0223C1AC:
- ldrh r1, [r3]
- tst r1, r0
- bne _0223C1AC
- ldr r2, _0223C228 ; =0x040002B4
- mov r0, #0
- ldr r1, [r2]
- strh r0, [r3]
- mov r0, #2
- str r1, [r2, #4]
- sub r2, r2, #4
- lsl r0, r0, #0xe
-_0223C1C2:
- ldrh r1, [r2]
- tst r1, r0
- bne _0223C1C2
- ldr r2, _0223C220 ; =0x040002B0
- lsr r0, r2, #0xb
-_0223C1CC:
- ldrh r1, [r2]
- tst r1, r0
- bne _0223C1CC
- ldr r1, _0223C228 ; =0x040002B4
- ldr r0, _0223C22C ; =0x000FFFF0
- ldr r1, [r1]
- bl _u32_div_f
- add r6, r0, #0
- mov r5, #0
-_0223C1E0:
- bl rand_LC
- cmp r0, r6
- bhs _0223C1EE
- add r5, r5, #1
- cmp r5, #4
- blt _0223C1E0
-_0223C1EE:
- mov r0, #0x4a
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- cmp r0, #1
- bne _0223C1FA
- mov r5, #4
-_0223C1FA:
- add r0, r5, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0223C200: .word 0x0000311C
-_0223C204: .word 0x0225DCF0
-_0223C208: .word 0x0225DCF1
-_0223C20C: .word 0x00002D74
-_0223C210: .word 0x0225DC28
-_0223C214: .word 0x00002D90
-_0223C218: .word 0x00002D8C
-_0223C21C: .word 0x00002DAC
-_0223C220: .word 0x040002B0
-_0223C224: .word 0x040002B8
-_0223C228: .word 0x040002B4
-_0223C22C: .word 0x000FFFF0
-
- thumb_func_start MOD11_0223C230
-MOD11_0223C230: ; 0x0223C230
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r4, r0, #0
- add r6, r1, #0
- cmp r2, #0x16
- bgt _0223C27A
- cmp r2, #0
- blt _0223C280
- add r1, r2, r2
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0223C24C: ; jump table
- .short _0223C280 - _0223C24C - 2 ; case 0
- .short _0223C280 - _0223C24C - 2 ; case 1
- .short _0223C284 - _0223C24C - 2 ; case 2
- .short _0223C320 - _0223C24C - 2 ; case 3
- .short _0223C29C - _0223C24C - 2 ; case 4
- .short _0223C288 - _0223C24C - 2 ; case 5
- .short _0223C28C - _0223C24C - 2 ; case 6
- .short _0223C290 - _0223C24C - 2 ; case 7
- .short _0223C296 - _0223C24C - 2 ; case 8
- .short _0223C346 - _0223C24C - 2 ; case 9
- .short _0223C2C2 - _0223C24C - 2 ; case 10
- .short _0223C36E - _0223C24C - 2 ; case 11
- .short _0223C2EA - _0223C24C - 2 ; case 12
- .short _0223C280 - _0223C24C - 2 ; case 13
- .short _0223C3A4 - _0223C24C - 2 ; case 14
- .short _0223C3AC - _0223C24C - 2 ; case 15
- .short _0223C3B4 - _0223C24C - 2 ; case 16
- .short _0223C3F0 - _0223C24C - 2 ; case 17
- .short _0223C280 - _0223C24C - 2 ; case 18
- .short _0223C42C - _0223C24C - 2 ; case 19
- .short _0223C456 - _0223C24C - 2 ; case 20
- .short _0223C480 - _0223C24C - 2 ; case 21
- .short _0223C28C - _0223C24C - 2 ; case 22
-_0223C27A:
- cmp r2, #0xff
- bne _0223C280
- b _0223C480
-_0223C280:
- ldr r5, [r6, #0x64]
- b _0223C486
-_0223C284:
- ldr r5, [r6, #0x6c]
- b _0223C486
-_0223C288:
- ldr r5, [r6, #0x74]
- b _0223C486
-_0223C28C:
- ldr r5, [r6, #0x78]
- b _0223C486
-_0223C290:
- add r6, #0x94
- ldr r5, [r6]
- b _0223C486
-_0223C296:
- add r6, #0x80
- ldr r5, [r6]
- b _0223C486
-_0223C29C:
- bl MOD11_0222FF84
- add r6, r0, #0
- mov r5, #0
- cmp r6, #0
- ble _0223C2C0
- mov r7, #1
-_0223C2AA:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _0223C48C ; =0x00000195
- ldrb r0, [r0, r1]
- tst r0, r7
- bne _0223C2C0
- add r5, r5, #1
- cmp r5, r6
- blt _0223C2AA
-_0223C2C0:
- b _0223C486
-_0223C2C2:
- bl MOD11_0222FF84
- add r6, r0, #0
- mov r5, #0
- cmp r6, #0
- ble _0223C2E8
- ldr r7, _0223C48C ; =0x00000195
-_0223C2D0:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldrb r0, [r0, r7]
- cmp r0, #3
- beq _0223C2E8
- cmp r0, #1
- beq _0223C2E8
- add r5, r5, #1
- cmp r5, r6
- blt _0223C2D0
-_0223C2E8:
- b _0223C486
-_0223C2EA:
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _0223C2F8
- mov r6, #5
- b _0223C2FA
-_0223C2F8:
- mov r6, #1
-_0223C2FA:
- add r0, r4, #0
- bl MOD11_0222FF84
- add r7, r0, #0
- mov r5, #0
- cmp r7, #0
- ble _0223C31E
-_0223C308:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _0223C48C ; =0x00000195
- ldrb r0, [r0, r1]
- cmp r0, r6
- beq _0223C31E
- add r5, r5, #1
- cmp r5, r7
- blt _0223C308
-_0223C31E:
- b _0223C486
-_0223C320:
- bl MOD11_0222FF84
- add r6, r0, #0
- mov r5, #0
- cmp r6, #0
- ble _0223C344
- mov r7, #1
-_0223C32E:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _0223C48C ; =0x00000195
- ldrb r0, [r0, r1]
- tst r0, r7
- beq _0223C344
- add r5, r5, #1
- cmp r5, r6
- blt _0223C32E
-_0223C344:
- b _0223C486
-_0223C346:
- bl MOD11_0222FF84
- add r6, r0, #0
- mov r5, #0
- cmp r6, #0
- ble _0223C36C
- ldr r7, _0223C48C ; =0x00000195
-_0223C354:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldrb r0, [r0, r7]
- cmp r0, #2
- beq _0223C36C
- cmp r0, #0
- beq _0223C36C
- add r5, r5, #1
- cmp r5, r6
- blt _0223C354
-_0223C36C:
- b _0223C486
-_0223C36E:
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _0223C37C
- mov r6, #4
- b _0223C37E
-_0223C37C:
- mov r6, #0
-_0223C37E:
- add r0, r4, #0
- bl MOD11_0222FF84
- add r7, r0, #0
- mov r5, #0
- cmp r7, #0
- ble _0223C486
-_0223C38C:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- ldr r1, _0223C48C ; =0x00000195
- ldrb r0, [r0, r1]
- cmp r0, r6
- beq _0223C486
- add r5, r5, #1
- cmp r5, r7
- blt _0223C38C
- b _0223C486
-_0223C3A4:
- mov r0, #0x47
- lsl r0, r0, #2
- ldr r5, [r6, r0]
- b _0223C486
-_0223C3AC:
- mov r0, #0x12
- lsl r0, r0, #4
- ldr r5, [r6, r0]
- b _0223C486
-_0223C3B4:
- bl MOD11_0222FF84
- mov r5, #0
- str r0, [sp, #4]
- cmp r0, #0
- ble _0223C3E6
-_0223C3C0:
- ldr r7, [r6, #0x64]
- cmp r5, r7
- beq _0223C3DE
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02230270
- str r0, [sp, #8]
- add r0, r4, #0
- add r1, r7, #0
- bl MOD11_02230270
- ldr r1, [sp, #8]
- cmp r1, r0
- beq _0223C3E6
-_0223C3DE:
- ldr r0, [sp, #4]
- add r5, r5, #1
- cmp r5, r0
- blt _0223C3C0
-_0223C3E6:
- ldr r0, [sp, #4]
- cmp r5, r0
- bne _0223C486
- mov r5, #0
- b _0223C486
-_0223C3F0:
- bl MOD11_0222FF84
- mov r5, #0
- str r0, [sp]
- cmp r0, #0
- ble _0223C422
-_0223C3FC:
- ldr r7, [r6, #0x6c]
- cmp r5, r7
- beq _0223C41A
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02230270
- str r0, [sp, #0xc]
- add r0, r4, #0
- add r1, r7, #0
- bl MOD11_02230270
- ldr r1, [sp, #0xc]
- cmp r1, r0
- beq _0223C422
-_0223C41A:
- ldr r0, [sp]
- add r5, r5, #1
- cmp r5, r0
- blt _0223C3FC
-_0223C422:
- ldr r0, [sp]
- cmp r5, r0
- bne _0223C486
- mov r5, #0
- b _0223C486
-_0223C42C:
- bl MOD11_0222FF84
- add r7, r0, #0
- ldr r1, [r6, #0x64]
- add r0, r4, #0
- bl MOD11_02230270
- add r6, r0, #0
- mov r5, #0
- cmp r7, #0
- ble _0223C486
-_0223C442:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02230270
- cmp r6, r0
- bne _0223C486
- add r5, r5, #1
- cmp r5, r7
- blt _0223C442
- b _0223C486
-_0223C456:
- bl MOD11_0222FF84
- add r7, r0, #0
- ldr r1, [r6, #0x6c]
- add r0, r4, #0
- bl MOD11_02230270
- add r6, r0, #0
- mov r5, #0
- cmp r7, #0
- ble _0223C486
-_0223C46C:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02230270
- cmp r6, r0
- bne _0223C486
- add r5, r5, #1
- cmp r5, r7
- blt _0223C46C
- b _0223C486
-_0223C480:
- mov r0, #0x46
- lsl r0, r0, #2
- ldr r5, [r6, r0]
-_0223C486:
- add r0, r5, #0
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0223C48C: .word 0x00000195
-
- thumb_func_start MOD11_0223C490
-MOD11_0223C490: ; 0x0223C490
- push {r3, r4, r5, r6, r7, lr}
- add r7, r0, #0
- add r4, r1, #0
- mov r6, #0
- bl MOD11_0223A404
- str r0, [r4]
- add r0, r7, #0
- bl MOD11_0223A404
- str r0, [r4, #4]
- cmp r0, #0x3c
- bhi _0223C544
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0223C4B6: ; jump table
- .short _0223C530 - _0223C4B6 - 2 ; case 0
- .short _0223C532 - _0223C4B6 - 2 ; case 1
- .short _0223C532 - _0223C4B6 - 2 ; case 2
- .short _0223C532 - _0223C4B6 - 2 ; case 3
- .short _0223C532 - _0223C4B6 - 2 ; case 4
- .short _0223C532 - _0223C4B6 - 2 ; case 5
- .short _0223C532 - _0223C4B6 - 2 ; case 6
- .short _0223C532 - _0223C4B6 - 2 ; case 7
- .short _0223C532 - _0223C4B6 - 2 ; case 8
- .short _0223C536 - _0223C4B6 - 2 ; case 9
- .short _0223C536 - _0223C4B6 - 2 ; case 10
- .short _0223C536 - _0223C4B6 - 2 ; case 11
- .short _0223C536 - _0223C4B6 - 2 ; case 12
- .short _0223C536 - _0223C4B6 - 2 ; case 13
- .short _0223C536 - _0223C4B6 - 2 ; case 14
- .short _0223C536 - _0223C4B6 - 2 ; case 15
- .short _0223C536 - _0223C4B6 - 2 ; case 16
- .short _0223C536 - _0223C4B6 - 2 ; case 17
- .short _0223C536 - _0223C4B6 - 2 ; case 18
- .short _0223C536 - _0223C4B6 - 2 ; case 19
- .short _0223C536 - _0223C4B6 - 2 ; case 20
- .short _0223C536 - _0223C4B6 - 2 ; case 21
- .short _0223C536 - _0223C4B6 - 2 ; case 22
- .short _0223C536 - _0223C4B6 - 2 ; case 23
- .short _0223C536 - _0223C4B6 - 2 ; case 24
- .short _0223C536 - _0223C4B6 - 2 ; case 25
- .short _0223C536 - _0223C4B6 - 2 ; case 26
- .short _0223C536 - _0223C4B6 - 2 ; case 27
- .short _0223C536 - _0223C4B6 - 2 ; case 28
- .short _0223C536 - _0223C4B6 - 2 ; case 29
- .short _0223C536 - _0223C4B6 - 2 ; case 30
- .short _0223C53A - _0223C4B6 - 2 ; case 31
- .short _0223C53A - _0223C4B6 - 2 ; case 32
- .short _0223C53A - _0223C4B6 - 2 ; case 33
- .short _0223C53A - _0223C4B6 - 2 ; case 34
- .short _0223C53A - _0223C4B6 - 2 ; case 35
- .short _0223C53A - _0223C4B6 - 2 ; case 36
- .short _0223C53A - _0223C4B6 - 2 ; case 37
- .short _0223C53A - _0223C4B6 - 2 ; case 38
- .short _0223C53A - _0223C4B6 - 2 ; case 39
- .short _0223C53A - _0223C4B6 - 2 ; case 40
- .short _0223C53A - _0223C4B6 - 2 ; case 41
- .short _0223C53A - _0223C4B6 - 2 ; case 42
- .short _0223C53A - _0223C4B6 - 2 ; case 43
- .short _0223C53A - _0223C4B6 - 2 ; case 44
- .short _0223C53A - _0223C4B6 - 2 ; case 45
- .short _0223C53A - _0223C4B6 - 2 ; case 46
- .short _0223C53A - _0223C4B6 - 2 ; case 47
- .short _0223C53A - _0223C4B6 - 2 ; case 48
- .short _0223C53A - _0223C4B6 - 2 ; case 49
- .short _0223C53A - _0223C4B6 - 2 ; case 50
- .short _0223C53A - _0223C4B6 - 2 ; case 51
- .short _0223C53E - _0223C4B6 - 2 ; case 52
- .short _0223C53E - _0223C4B6 - 2 ; case 53
- .short _0223C53E - _0223C4B6 - 2 ; case 54
- .short _0223C53E - _0223C4B6 - 2 ; case 55
- .short _0223C53E - _0223C4B6 - 2 ; case 56
- .short _0223C53E - _0223C4B6 - 2 ; case 57
- .short _0223C53E - _0223C4B6 - 2 ; case 58
- .short _0223C53E - _0223C4B6 - 2 ; case 59
- .short _0223C542 - _0223C4B6 - 2 ; case 60
-_0223C530:
- b _0223C544
-_0223C532:
- mov r6, #1
- b _0223C544
-_0223C536:
- mov r6, #2
- b _0223C544
-_0223C53A:
- mov r6, #3
- b _0223C544
-_0223C53E:
- mov r6, #4
- b _0223C544
-_0223C542:
- mov r6, #6
-_0223C544:
- mov r5, #0
- cmp r6, #0
- ble _0223C55A
-_0223C54A:
- add r0, r7, #0
- bl MOD11_0223A404
- str r0, [r4, #8]
- add r5, r5, #1
- add r4, r4, #4
- cmp r5, r6
- blt _0223C54A
-_0223C55A:
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0223C55C
-MOD11_0223C55C: ; 0x0223C55C
- push {r3, r4, r5, r6, r7, lr}
- add r4, r2, #0
- ldr r2, [r4]
- add r5, r3, #0
- strh r2, [r5, #2]
- ldr r2, [r4, #4]
- add r7, r0, #0
- strb r2, [r5, #1]
- ldrb r2, [r5, #1]
- add r6, r1, #0
- cmp r2, #0x3c
- bls _0223C576
- b _0223CC58
-_0223C576:
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0223C582: ; jump table
- .short _0223CC58 - _0223C582 - 2 ; case 0
- .short _0223C5FC - _0223C582 - 2 ; case 1
- .short _0223C606 - _0223C582 - 2 ; case 2
- .short _0223C610 - _0223C582 - 2 ; case 3
- .short _0223C61C - _0223C582 - 2 ; case 4
- .short _0223C628 - _0223C582 - 2 ; case 5
- .short _0223C634 - _0223C582 - 2 ; case 6
- .short _0223C634 - _0223C582 - 2 ; case 7
- .short _0223C640 - _0223C582 - 2 ; case 8
- .short _0223C64A - _0223C582 - 2 ; case 9
- .short _0223C660 - _0223C582 - 2 ; case 10
- .short _0223C674 - _0223C582 - 2 ; case 11
- .short _0223C68A - _0223C582 - 2 ; case 12
- .short _0223C69E - _0223C582 - 2 ; case 13
- .short _0223C6B2 - _0223C582 - 2 ; case 14
- .short _0223C6C8 - _0223C582 - 2 ; case 15
- .short _0223C6DC - _0223C582 - 2 ; case 16
- .short _0223C6F0 - _0223C582 - 2 ; case 17
- .short _0223C704 - _0223C582 - 2 ; case 18
- .short _0223C71A - _0223C582 - 2 ; case 19
- .short _0223C728 - _0223C582 - 2 ; case 20
- .short _0223C740 - _0223C582 - 2 ; case 21
- .short _0223C758 - _0223C582 - 2 ; case 22
- .short _0223C76E - _0223C582 - 2 ; case 23
- .short _0223C784 - _0223C582 - 2 ; case 24
- .short _0223C79A - _0223C582 - 2 ; case 25
- .short _0223C7B0 - _0223C582 - 2 ; case 26
- .short _0223C7C6 - _0223C582 - 2 ; case 27
- .short _0223C7DC - _0223C582 - 2 ; case 28
- .short _0223C7F0 - _0223C582 - 2 ; case 29
- .short _0223C804 - _0223C582 - 2 ; case 30
- .short _0223C81A - _0223C582 - 2 ; case 31
- .short _0223C83A - _0223C582 - 2 ; case 32
- .short _0223C85C - _0223C582 - 2 ; case 33
- .short _0223C87C - _0223C582 - 2 ; case 34
- .short _0223C89A - _0223C582 - 2 ; case 35
- .short _0223C8B8 - _0223C582 - 2 ; case 36
- .short _0223C8DA - _0223C582 - 2 ; case 37
- .short _0223C8FA - _0223C582 - 2 ; case 38
- .short _0223C91A - _0223C582 - 2 ; case 39
- .short _0223C93A - _0223C582 - 2 ; case 40
- .short _0223C95A - _0223C582 - 2 ; case 41
- .short _0223C97A - _0223C582 - 2 ; case 42
- .short _0223C99A - _0223C582 - 2 ; case 43
- .short _0223C9BA - _0223C582 - 2 ; case 44
- .short _0223C9D8 - _0223C582 - 2 ; case 45
- .short _0223C9F6 - _0223C582 - 2 ; case 46
- .short _0223CA14 - _0223C582 - 2 ; case 47
- .short _0223CA26 - _0223C582 - 2 ; case 48
- .short _0223CA48 - _0223C582 - 2 ; case 49
- .short _0223CA6A - _0223C582 - 2 ; case 50
- .short _0223CA8C - _0223C582 - 2 ; case 51
- .short _0223CAAC - _0223C582 - 2 ; case 52
- .short _0223CAD8 - _0223C582 - 2 ; case 53
- .short _0223CB06 - _0223C582 - 2 ; case 54
- .short _0223CB32 - _0223C582 - 2 ; case 55
- .short _0223CB5C - _0223C582 - 2 ; case 56
- .short _0223CB8A - _0223C582 - 2 ; case 57
- .short _0223CBB8 - _0223C582 - 2 ; case 58
- .short _0223CBE6 - _0223C582 - 2 ; case 59
- .short _0223CC14 - _0223C582 - 2 ; case 60
-_0223C5FC:
- ldr r2, [r4, #8]
- bl MOD11_0223C230
- str r0, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C606:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C610:
- ldr r1, [r4, #8]
- add r0, r6, #0
- bl MOD11_0223CC8C
- str r0, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C61C:
- ldr r1, [r4, #8]
- add r0, r6, #0
- bl MOD11_0223CD6C
- str r0, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C628:
- ldr r1, [r4, #8]
- add r0, r6, #0
- bl MOD11_0223CCA8
- str r0, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C634:
- ldr r1, [r4, #8]
- add r0, r6, #0
- bl MOD11_0223CD20
- str r0, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C640:
- ldr r2, [r4, #8]
- bl MOD11_0223CDBC
- str r0, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C64A:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C660:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CC8C
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C674:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CD38
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C68A:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CD6C
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C69E:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CD2C
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C6B2:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CD84
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C6C8:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CCA8
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C6DC:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CD9C
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C6F0:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CD20
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C704:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CDBC
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C71A:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r0, [r4, #0xc]
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C728:
- ldr r1, [r4, #8]
- add r0, r6, #0
- bl MOD11_0223CC8C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223C230
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C740:
- ldr r1, [r4, #8]
- add r0, r6, #0
- bl MOD11_0223CC8C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C758:
- ldr r1, [r4, #8]
- add r0, r6, #0
- bl MOD11_0223CC8C
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CC8C
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C76E:
- ldr r2, [r4, #8]
- bl MOD11_0223CD38
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C784:
- ldr r1, [r4, #8]
- add r0, r6, #0
- bl MOD11_0223CCA8
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CC8C
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C79A:
- ldr r1, [r4, #8]
- add r0, r6, #0
- bl MOD11_0223CD20
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CD20
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C7B0:
- ldr r2, [r4, #8]
- bl MOD11_0223CDBC
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CDBC
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C7C6:
- ldr r2, [r4, #8]
- bl MOD11_0223CDBC
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C7DC:
- ldr r2, [r4, #8]
- bl MOD11_0223CDBC
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CCA8
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C7F0:
- ldr r2, [r4, #8]
- bl MOD11_0223CDBC
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CD20
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C804:
- ldr r2, [r4, #8]
- bl MOD11_0223CDB4
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CDBC
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C81A:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #8]
- ldr r1, [r4, #0x10]
- add r0, r6, #0
- bl MOD11_0223CC8C
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C83A:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #8]
- ldr r2, [r4, #0x10]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CD38
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C85C:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #8]
- ldr r1, [r4, #0x10]
- add r0, r6, #0
- bl MOD11_0223CCA8
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C87C:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CC8C
- str r0, [r5, #8]
- ldr r1, [r4, #0x10]
- add r0, r6, #0
- bl MOD11_0223CC8C
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C89A:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CC8C
- str r0, [r5, #8]
- ldr r1, [r4, #0x10]
- add r0, r6, #0
- bl MOD11_0223CD20
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C8B8:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CD38
- str r0, [r5, #8]
- ldr r2, [r4, #0x10]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C8DA:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CD38
- str r0, [r5, #8]
- ldr r1, [r4, #0x10]
- add r0, r6, #0
- bl MOD11_0223CC8C
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C8FA:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CD38
- str r0, [r5, #8]
- ldr r1, [r4, #0x10]
- add r0, r6, #0
- bl MOD11_0223CCA8
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C91A:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CD38
- str r0, [r5, #8]
- ldr r1, [r4, #0x10]
- add r0, r6, #0
- bl MOD11_0223CD6C
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C93A:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CD38
- str r0, [r5, #8]
- ldr r1, [r4, #0x10]
- add r0, r6, #0
- bl MOD11_0223CD2C
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C95A:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CD38
- str r0, [r5, #8]
- ldr r1, [r4, #0x10]
- add r0, r6, #0
- bl MOD11_0223CD78
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C97A:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CD38
- str r0, [r5, #8]
- ldr r1, [r4, #0x10]
- add r0, r6, #0
- bl MOD11_0223CD20
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C99A:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CCA8
- str r0, [r5, #8]
- ldr r2, [r4, #0x10]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C9BA:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CCA8
- str r0, [r5, #8]
- ldr r1, [r4, #0x10]
- add r0, r6, #0
- bl MOD11_0223CC8C
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C9D8:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CCA8
- str r0, [r5, #8]
- ldr r1, [r4, #0x10]
- add r0, r6, #0
- bl MOD11_0223CD6C
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223C9F6:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CCA8
- str r0, [r5, #8]
- ldr r1, [r4, #0x10]
- add r0, r6, #0
- bl MOD11_0223CD78
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223CA14:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r0, [r4, #0xc]
- str r0, [r5, #8]
- ldr r0, [r4, #0x10]
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223CA26:
- ldr r1, [r4, #8]
- add r0, r6, #0
- bl MOD11_0223CCA8
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #8]
- ldr r1, [r4, #0x10]
- add r0, r6, #0
- bl MOD11_0223CDA8
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223CA48:
- ldr r2, [r4, #8]
- bl MOD11_0223CDBC
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #8]
- ldr r2, [r4, #0x10]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223CA6A:
- ldr r2, [r4, #8]
- bl MOD11_0223CDB4
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CDBC
- str r0, [r5, #8]
- ldr r2, [r4, #0x10]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223CA8C:
- ldr r2, [r4, #8]
- bl MOD11_0223CDB4
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CDBC
- str r0, [r5, #8]
- ldr r1, [r4, #0x10]
- add r0, r6, #0
- bl MOD11_0223CCA8
- str r0, [r5, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_0223CAAC:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CD38
- str r0, [r5, #8]
- ldr r2, [r4, #0x10]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #0xc]
- ldr r1, [r4, #0x14]
- add r0, r6, #0
- bl MOD11_0223CC8C
- str r0, [r5, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
-_0223CAD8:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CD38
- str r0, [r5, #8]
- ldr r2, [r4, #0x10]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #0xc]
- ldr r2, [r4, #0x14]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CD38
- str r0, [r5, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
-_0223CB06:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CD38
- str r0, [r5, #8]
- ldr r2, [r4, #0x10]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #0xc]
- ldr r1, [r4, #0x14]
- add r0, r6, #0
- bl MOD11_0223CD6C
- str r0, [r5, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
-_0223CB32:
- ldr r2, [r4, #8]
- bl MOD11_0223CC5C
- str r0, [r5, #4]
- ldr r1, [r4, #0xc]
- add r0, r6, #0
- bl MOD11_0223CCA8
- str r0, [r5, #8]
- ldr r2, [r4, #0x10]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #0xc]
- ldr r1, [r4, #0x14]
- add r0, r6, #0
- bl MOD11_0223CCA8
- str r0, [r5, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
-_0223CB5C:
- ldr r2, [r4, #8]
- bl MOD11_0223CDBC
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #8]
- ldr r2, [r4, #0x10]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CDBC
- str r0, [r5, #0xc]
- ldr r2, [r4, #0x14]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
-_0223CB8A:
- ldr r2, [r4, #8]
- bl MOD11_0223CDB4
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CDBC
- str r0, [r5, #8]
- ldr r2, [r4, #0x10]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #0xc]
- ldr r2, [r4, #0x14]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
-_0223CBB8:
- ldr r2, [r4, #8]
- bl MOD11_0223CDB4
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CDBC
- str r0, [r5, #8]
- ldr r2, [r4, #0x10]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #0xc]
- ldr r2, [r4, #0x14]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CDBC
- str r0, [r5, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
-_0223CBE6:
- ldr r2, [r4, #8]
- bl MOD11_0223CDB4
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CDBC
- str r0, [r5, #8]
- ldr r2, [r4, #0x10]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CDB4
- str r0, [r5, #0xc]
- ldr r2, [r4, #0x14]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CDBC
- str r0, [r5, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
-_0223CC14:
- ldr r2, [r4, #8]
- bl MOD11_0223CDB4
- str r0, [r5, #4]
- ldr r2, [r4, #0xc]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CDBC
- str r0, [r5, #8]
- ldr r2, [r4, #0x10]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #0xc]
- ldr r2, [r4, #0x14]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CDB4
- str r0, [r5, #0x10]
- ldr r2, [r4, #0x18]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CDBC
- str r0, [r5, #0x14]
- ldr r2, [r4, #0x1c]
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_0223CC5C
- str r0, [r5, #0x18]
-_0223CC58:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0223CC5C
-MOD11_0223CC5C: ; 0x0223CC5C
- push {r3, r4, r5, lr}
- add r5, r1, #0
- add r4, r2, #0
- bl MOD11_0223C230
- cmp r4, #0x16
- bne _0223CC76
- ldr r1, _0223CC84 ; =0x000021A0
- add r2, r5, r0
- ldrb r1, [r2, r1]
- lsl r1, r1, #8
- orr r0, r1
- pop {r3, r4, r5, pc}
-_0223CC76:
- ldr r1, _0223CC88 ; =0x0000219C
- add r2, r5, r0
- ldrb r1, [r2, r1]
- lsl r1, r1, #8
- orr r0, r1
- pop {r3, r4, r5, pc}
- nop
-_0223CC84: .word 0x000021A0
-_0223CC88: .word 0x0000219C
-
- thumb_func_start MOD11_0223CC8C
-MOD11_0223CC8C: ; 0x0223CC8C
- cmp r1, #1
- beq _0223CC96
- cmp r1, #0xff
- beq _0223CC9C
- bx lr
-_0223CC96:
- ldr r1, _0223CCA4 ; =0x00003044
- ldr r0, [r0, r1]
- bx lr
-_0223CC9C:
- mov r1, #0x49
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- bx lr
- .align 2, 0
-_0223CCA4: .word 0x00003044
-
- thumb_func_start MOD11_0223CCA8
-MOD11_0223CCA8: ; 0x0223CCA8
- push {r4, lr}
- cmp r1, #0x15
- bgt _0223CCC0
- bge _0223CCF6
- cmp r1, #2
- bgt _0223CD18
- cmp r1, #1
- blt _0223CD18
- beq _0223CCC6
- cmp r1, #2
- beq _0223CCDE
- b _0223CD18
-_0223CCC0:
- cmp r1, #0xff
- beq _0223CD12
- b _0223CD18
-_0223CCC6:
- ldr r3, [r0, #0x64]
- mov r1, #0xc0
- mul r1, r3
- add r2, r0, r1
- ldr r1, _0223CD1C ; =0x00002DB8
- ldrh r4, [r2, r1]
- lsl r1, r3, #0x18
- lsr r1, r1, #0x18
- add r2, r4, #0
- bl MOD11_0223D1D0
- b _0223CD18
-_0223CCDE:
- ldr r3, [r0, #0x6c]
- mov r1, #0xc0
- mul r1, r3
- add r2, r0, r1
- ldr r1, _0223CD1C ; =0x00002DB8
- ldrh r4, [r2, r1]
- lsl r1, r3, #0x18
- lsr r1, r1, #0x18
- add r2, r4, #0
- bl MOD11_0223D1D0
- b _0223CD18
-_0223CCF6:
- mov r1, #0x46
- lsl r1, r1, #2
- ldr r3, [r0, r1]
- mov r1, #0xc0
- mul r1, r3
- add r2, r0, r1
- ldr r1, _0223CD1C ; =0x00002DB8
- ldrh r4, [r2, r1]
- lsl r1, r3, #0x18
- lsr r1, r1, #0x18
- add r2, r4, #0
- bl MOD11_0223D1D0
- b _0223CD18
-_0223CD12:
- mov r1, #0x4a
- lsl r1, r1, #2
- ldr r4, [r0, r1]
-_0223CD18:
- add r0, r4, #0
- pop {r4, pc}
- .align 2, 0
-_0223CD1C: .word 0x00002DB8
-
- thumb_func_start MOD11_0223CD20
-MOD11_0223CD20: ; 0x0223CD20
- cmp r1, #0xff
- bne _0223CD2A
- mov r1, #0x13
- lsl r1, r1, #4
- ldr r0, [r0, r1]
-_0223CD2A:
- bx lr
-
- thumb_func_start MOD11_0223CD2C
-MOD11_0223CD2C: ; 0x0223CD2C
- cmp r1, #0xff
- bne _0223CD36
- mov r1, #0x13
- lsl r1, r1, #4
- ldr r0, [r0, r1]
-_0223CD36:
- bx lr
-
- thumb_func_start MOD11_0223CD38
-MOD11_0223CD38: ; 0x0223CD38
- push {r3, r4, r5, lr}
- add r5, r1, #0
- cmp r2, #0xff
- bne _0223CD48
- mov r0, #0x4b
- lsl r0, r0, #2
- ldr r4, [r5, r0]
- b _0223CD64
-_0223CD48:
- bl MOD11_0223C230
- add r1, r0, #0
- mov r0, #0xc0
- mul r0, r1
- add r2, r5, r0
- ldr r0, _0223CD68 ; =0x00002D67
- lsl r1, r1, #0x18
- ldrb r4, [r2, r0]
- add r0, r5, #0
- lsr r1, r1, #0x18
- add r2, r4, #0
- bl MOD11_0223D1C4
-_0223CD64:
- add r0, r4, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0223CD68: .word 0x00002D67
-
- thumb_func_start MOD11_0223CD6C
-MOD11_0223CD6C: ; 0x0223CD6C
- cmp r1, #0xff
- bne _0223CD76
- mov r1, #0x13
- lsl r1, r1, #4
- ldr r0, [r0, r1]
-_0223CD76:
- bx lr
-
- thumb_func_start MOD11_0223CD78
-MOD11_0223CD78: ; 0x0223CD78
- cmp r1, #0xff
- bne _0223CD82
- mov r1, #0x13
- lsl r1, r1, #4
- ldr r0, [r0, r1]
-_0223CD82:
- bx lr
-
- thumb_func_start MOD11_0223CD84
-MOD11_0223CD84: ; 0x0223CD84
- push {r4, lr}
- add r4, r1, #0
- bl MOD11_0223C230
- ldr r1, _0223CD98 ; =0x0000219C
- add r2, r4, r0
- ldrb r1, [r2, r1]
- lsl r1, r1, #8
- orr r0, r1
- pop {r4, pc}
- .align 2, 0
-_0223CD98: .word 0x0000219C
-
- thumb_func_start MOD11_0223CD9C
-MOD11_0223CD9C: ; 0x0223CD9C
- cmp r1, #0xff
- bne _0223CDA6
- mov r1, #0x13
- lsl r1, r1, #4
- ldr r0, [r0, r1]
-_0223CDA6:
- bx lr
-
- thumb_func_start MOD11_0223CDA8
-MOD11_0223CDA8: ; 0x0223CDA8
- cmp r1, #0xff
- bne _0223CDB2
- mov r1, #0x13
- lsl r1, r1, #4
- ldr r0, [r0, r1]
-_0223CDB2:
- bx lr
-
- thumb_func_start MOD11_0223CDB4
-MOD11_0223CDB4: ; 0x0223CDB4
- ldr r3, _0223CDB8 ; =MOD11_0223C230
- bx r3
- .align 2, 0
-_0223CDB8: .word MOD11_0223C230
-
- thumb_func_start MOD11_0223CDBC
-MOD11_0223CDBC: ; 0x0223CDBC
- ldr r3, _0223CDC0 ; =MOD11_0223C230
- bx r3
- .align 2, 0
-_0223CDC0: .word MOD11_0223C230
-
- thumb_func_start MOD11_0223CDC4
-MOD11_0223CDC4: ; 0x0223CDC4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x78
- add r7, r0, #0
- add r5, r1, #0
- str r2, [sp, #0x18]
- bl MOD11_022300C4
- str r0, [sp, #0x28]
- add r0, r7, #0
- bl MOD11_0223013C
- str r0, [sp, #0x20]
- add r0, r7, #0
- bl MOD11_02230138
- str r0, [sp, #0x24]
- add r0, r7, #0
- bl MOD11_0222FF68
- str r0, [sp, #0x1c]
- add r0, r7, #0
- bl MOD11_02230078
- add r6, r0, #0
- add r0, r7, #0
- bl MOD11_02230080
- add r4, r0, #0
- add r0, r7, #0
- bl MOD11_022300CC
- add r7, r0, #0
- mov r0, #1
- str r0, [sp]
- str r0, [sp, #4]
- ldr r0, _0223D03C ; =0x00004E31
- add r1, r4, #0
- str r0, [sp, #8]
- add r0, r6, #0
- mov r2, #0x1b
- mov r3, #0xc0
- bl FUN_0200C00C
- mov r0, #0x1b
- str r0, [sp]
- mov r0, #0x2e
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- mov r1, #2
- str r1, [sp, #0xc]
- mov r0, #1
- str r0, [sp, #0x10]
- ldr r0, _0223D040 ; =0x00004E2C
- add r2, r6, #0
- str r0, [sp, #0x14]
- add r0, r7, #0
- add r3, r4, #0
- bl FUN_0200C0DC
- mov r0, #1
- str r0, [sp]
- ldr r0, _0223D044 ; =0x00004E29
- add r1, r4, #0
- str r0, [sp, #4]
- add r0, r6, #0
- mov r2, #0x1b
- mov r3, #0xc1
- bl FUN_0200C124
- mov r0, #1
- str r0, [sp]
- ldr r0, _0223D044 ; =0x00004E29
- add r1, r4, #0
- str r0, [sp, #4]
- add r0, r6, #0
- mov r2, #0x1b
- mov r3, #0xc2
- bl FUN_0200C13C
- ldr r2, _0223D048 ; =0x0225DD7C
- add r0, r6, #0
- add r1, r4, #0
- bl FUN_0200C154
- str r0, [r5, #0xc]
- bl FUN_0200C5A8
- ldr r0, [sp, #0x18]
- bl FUN_0206B6C8
- add r3, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r0, #1
- str r0, [sp, #4]
- ldr r0, _0223D04C ; =0x00004E32
- add r1, r4, #0
- str r0, [sp, #8]
- add r0, r6, #0
- mov r2, #0x13
- bl FUN_0200C978
- bl FUN_0206B888
- mov r1, #0x13
- str r1, [sp]
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- mov r0, #3
- str r0, [sp, #0xc]
- mov r0, #1
- str r0, [sp, #0x10]
- ldr r0, _0223D050 ; =0x00004E2D
- mov r1, #2
- str r0, [sp, #0x14]
- add r0, r7, #0
- add r2, r6, #0
- add r3, r4, #0
- bl FUN_0200C0DC
- bl FUN_0206B894
- add r3, r0, #0
- mov r0, #0
- str r0, [sp]
- ldr r0, _0223D054 ; =0x00004E2A
- add r1, r4, #0
- str r0, [sp, #4]
- add r0, r6, #0
- mov r2, #0x13
- bl FUN_0200C124
- bl FUN_0206B8A0
- add r3, r0, #0
- mov r0, #0
- str r0, [sp]
- ldr r0, _0223D054 ; =0x00004E2A
- add r1, r4, #0
- str r0, [sp, #4]
- add r0, r6, #0
- mov r2, #0x13
- bl FUN_0200C13C
- ldr r2, _0223D058 ; =0x0225DDB0
- add r0, r6, #0
- add r1, r4, #0
- bl FUN_0200C154
- str r0, [r5, #0x10]
- ldr r0, [sp, #0x18]
- bl FUN_0206B87C
- add r1, r0, #0
- ldr r0, [r5, #0x10]
- ldr r0, [r0]
- bl FUN_020202DC
- ldr r0, [r5, #0x10]
- bl FUN_0200C5A8
- mov r0, #1
- mov r1, #5
- bl FUN_02011744
- str r0, [r5, #0x50]
- ldr r0, [sp, #0x18]
- mov r1, #0xaf
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- bne _0223CF26
- mov r0, #2
- b _0223CF30
-_0223CF26:
- ldr r0, [sp, #0x18]
- mov r1, #0x6f
- mov r2, #0
- bl GetMonDataEncrypted
-_0223CF30:
- cmp r0, #0
- bne _0223CF42
- mov r1, #0x3b
- ldr r0, [sp, #0x28]
- lsl r1, r1, #4
- bl FUN_0200A914
- add r6, r0, #0
- b _0223CF5C
-_0223CF42:
- cmp r0, #1
- bne _0223CF52
- ldr r0, [sp, #0x28]
- ldr r1, _0223D05C ; =0x000003B1
- bl FUN_0200A914
- add r6, r0, #0
- b _0223CF5C
-_0223CF52:
- ldr r0, [sp, #0x28]
- ldr r1, _0223D060 ; =0x000003B2
- bl FUN_0200A914
- add r6, r0, #0
-_0223CF5C:
- ldr r0, [sp, #0x18]
- bl FUN_020690E4
- add r2, r0, #0
- ldr r0, [sp, #0x24]
- mov r1, #0
- bl FUN_0200ACF8
- ldr r0, [sp, #0x18]
- mov r1, #0xa0
- mov r2, #0
- bl GetMonDataEncrypted
- add r2, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r1, #1
- ldr r0, [sp, #0x24]
- mov r3, #3
- str r1, [sp, #4]
- bl FUN_0200AD38
- ldr r0, [sp, #0x24]
- ldr r1, [sp, #0x20]
- add r2, r6, #0
- bl FUN_0200B7B8
- add r0, r6, #0
- bl FUN_02021A20
- add r0, sp, #0x68
- bl FUN_0201901C
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- ldr r0, [sp, #0x1c]
- add r1, sp, #0x68
- mov r2, #0xc
- mov r3, #4
- bl FUN_020190EC
- mov r1, #0
- str r1, [sp]
- mov r0, #0xff
- str r0, [sp, #4]
- ldr r0, _0223D064 ; =0x00010200
- ldr r2, [sp, #0x20]
- str r0, [sp, #8]
- add r0, sp, #0x68
- add r3, r1, #0
- str r1, [sp, #0xc]
- bl FUN_0201BDE0
- add r0, sp, #0x68
- mov r1, #1
- mov r2, #5
- bl FUN_02011898
- mov r1, #1
- add r2, r1, #0
- add r3, sp, #0x5c
- bl FUN_0201D568
- ldr r0, [r5, #0x50]
- str r0, [sp, #0x2c]
- add r0, sp, #0x68
- str r0, [sp, #0x30]
- add r0, r4, #0
- bl FUN_0200CA40
- str r0, [sp, #0x34]
- ldr r1, _0223D040 ; =0x00004E2C
- add r0, r4, #0
- bl FUN_0200C334
- mov r1, #0
- str r0, [sp, #0x38]
- ldr r0, [sp, #0x60]
- str r1, [sp, #0x3c]
- str r0, [sp, #0x40]
- mov r0, #0xb0
- str r0, [sp, #0x44]
- mov r0, #8
- str r0, [sp, #0x48]
- mov r0, #0x64
- str r0, [sp, #0x50]
- mov r0, #1
- str r0, [sp, #0x54]
- mov r0, #5
- str r0, [sp, #0x58]
- add r0, sp, #0x2c
- str r1, [sp, #0x4c]
- bl FUN_020117E8
- add r2, r5, #0
- add r3, sp, #0x5c
- str r0, [r5, #0x14]
- ldmia r3!, {r0, r1}
- add r2, #0x18
- stmia r2!, {r0, r1}
- ldr r0, [r3]
- mov r1, #1
- str r0, [r2]
- ldr r0, [r5, #0x14]
- bl FUN_02011AC0
- add r0, sp, #0x68
- bl FUN_02019178
- add sp, #0x78
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0223D03C: .word 0x00004E31
-_0223D040: .word 0x00004E2C
-_0223D044: .word 0x00004E29
-_0223D048: .word 0x0225DD7C
-_0223D04C: .word 0x00004E32
-_0223D050: .word 0x00004E2D
-_0223D054: .word 0x00004E2A
-_0223D058: .word 0x0225DDB0
-_0223D05C: .word 0x000003B1
-_0223D060: .word 0x000003B2
-_0223D064: .word 0x00010200
-
- thumb_func_start MOD11_0223D068
-MOD11_0223D068: ; 0x0223D068
- push {r3, r4, r5, lr}
- add r5, r1, #0
- bl MOD11_02230080
- add r4, r0, #0
- ldr r0, [r5, #0xc]
- bl FUN_0200C3DC
- ldr r0, [r5, #0x10]
- bl FUN_0200C3DC
- ldr r0, [r5, #0x14]
- bl FUN_02011870
- add r0, r5, #0
- add r0, #0x18
- bl FUN_0201D5E8
- ldr r1, _0223D0D4 ; =0x00004E31
- add r0, r4, #0
- bl FUN_0200C358
- ldr r1, _0223D0D8 ; =0x00004E2C
- add r0, r4, #0
- bl FUN_0200C368
- ldr r1, _0223D0DC ; =0x00004E29
- add r0, r4, #0
- bl FUN_0200C378
- ldr r1, _0223D0DC ; =0x00004E29
- add r0, r4, #0
- bl FUN_0200C388
- ldr r1, _0223D0E0 ; =0x00004E32
- add r0, r4, #0
- bl FUN_0200C358
- ldr r1, _0223D0E4 ; =0x00004E2D
- add r0, r4, #0
- bl FUN_0200C368
- ldr r1, _0223D0E8 ; =0x00004E2A
- add r0, r4, #0
- bl FUN_0200C378
- ldr r1, _0223D0E8 ; =0x00004E2A
- add r0, r4, #0
- bl FUN_0200C388
- ldr r0, [r5, #0x50]
- bl FUN_020117BC
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0223D0D4: .word 0x00004E31
-_0223D0D8: .word 0x00004E2C
-_0223D0DC: .word 0x00004E29
-_0223D0E0: .word 0x00004E32
-_0223D0E4: .word 0x00004E2D
-_0223D0E8: .word 0x00004E2A
-
- thumb_func_start MOD11_0223D0EC
-MOD11_0223D0EC: ; 0x0223D0EC
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r1, r2, #0
- add r5, r0, #0
- str r2, [sp]
- bl MOD11_02230270
- cmp r0, #0
- bne _0223D1B8
- add r0, r5, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _0223D13C
- add r0, r5, #0
- mov r1, #3
- bl MOD11_0223022C
- lsl r0, r0, #0x18
- lsr r6, r0, #0x18
- add r0, r5, #0
- mov r1, #5
- bl MOD11_0223022C
- lsl r0, r0, #0x18
- lsr r1, r0, #0x18
- mov r2, #0xc0
- add r0, r1, #0
- mul r0, r2
- mul r2, r6
- ldr r3, _0223D1BC ; =0x00002D74
- add r0, r4, r0
- add r2, r4, r2
- ldrb r0, [r0, r3]
- ldrb r2, [r2, r3]
- cmp r0, r2
- bls _0223D148
- add r6, r1, #0
- b _0223D148
-_0223D13C:
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223022C
- lsl r0, r0, #0x18
- lsr r6, r0, #0x18
-_0223D148:
- ldr r1, [sp]
- add r0, r5, #0
- add r2, r1, #0
- add r3, r4, r2
- ldr r2, _0223D1C0 ; =0x0000219C
- ldrb r2, [r3, r2]
- bl MOD11_02230014
- add r7, r0, #0
- ldr r0, [sp]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- add r0, r4, r2
- ldr r2, _0223D1BC ; =0x00002D74
- mul r1, r6
- add r1, r4, r1
- ldrb r0, [r0, r2]
- ldrb r1, [r1, r2]
- cmp r1, r0
- bls _0223D1A4
- sub r0, r1, r0
- cmp r0, #0x1e
- blt _0223D18E
- add r0, r5, #0
- bl MOD11_022302B0
- add r2, r0, #0
- lsl r2, r2, #0x10
- add r0, r7, #0
- mov r1, #8
- lsr r2, r2, #0x10
- bl MonApplyFriendshipModEncrypted
- pop {r3, r4, r5, r6, r7, pc}
-_0223D18E:
- add r0, r5, #0
- bl MOD11_022302B0
- add r2, r0, #0
- lsl r2, r2, #0x10
- add r0, r7, #0
- mov r1, #6
- lsr r2, r2, #0x10
- bl MonApplyFriendshipModEncrypted
- pop {r3, r4, r5, r6, r7, pc}
-_0223D1A4:
- add r0, r5, #0
- bl MOD11_022302B0
- add r2, r0, #0
- lsl r2, r2, #0x10
- add r0, r7, #0
- mov r1, #6
- lsr r2, r2, #0x10
- bl MonApplyFriendshipModEncrypted
-_0223D1B8:
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0223D1BC: .word 0x00002D74
-_0223D1C0: .word 0x0000219C
-
- thumb_func_start MOD11_0223D1C4
-MOD11_0223D1C4: ; 0x0223D1C4
- add r1, r0, r1
- mov r0, #0x39
- lsl r0, r0, #4
- strb r2, [r1, r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_0223D1D0
-MOD11_0223D1D0: ; 0x0223D1D0
- lsl r1, r1, #1
- add r1, r0, r1
- mov r0, #0xe5
- lsl r0, r0, #2
- strh r2, [r1, r0]
- bx lr
-
- thumb_func_start MOD11_0223D1DC
-MOD11_0223D1DC: ; 0x0223D1DC
- push {r3, r4, r5, lr}
- ldr r1, _0223D22C ; =0x0000314C
- add r5, r0, #0
- mov r0, #5
- bl AllocFromHeap
- add r4, r0, #0
- ldr r2, _0223D22C ; =0x0000314C
- mov r0, #0
- add r1, r4, #0
- bl MIi_CpuClearFast
- add r0, r4, #0
- bl MOD11_02245494
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02245588
- bl FUN_02033590
- cmp r0, #0
- bne _0223D216
- mov r2, #0
- add r0, r5, #0
- add r1, r4, #0
- add r3, r2, #0
- bl MOD16_021EFBF4
-_0223D216:
- ldr r0, _0223D230 ; =0x000003DE
- add r0, r4, r0
- bl FUN_0206AB04
- mov r0, #5
- bl FUN_0206EB50
- ldr r1, _0223D234 ; =0x00002120
- str r0, [r4, r1]
- add r0, r4, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0223D22C: .word 0x0000314C
-_0223D230: .word 0x000003DE
-_0223D234: .word 0x00002120
-
- thumb_func_start MOD11_0223D238
-MOD11_0223D238: ; 0x0223D238
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldr r1, _0223D27C ; =0x0000311F
- add r5, r0, #0
- ldrb r1, [r4, r1]
- cmp r1, #0
- bne _0223D25E
- bl MOD11_0223145C
- cmp r0, #0
- beq _0223D25E
- add r0, r5, #0
- bl MOD11_0223145C
- mov r1, #0x40
- tst r0, r1
- bne _0223D25E
- mov r0, #0x29
- str r0, [r4, #8]
-_0223D25E:
- ldr r2, [r4, #8]
- add r0, r5, #0
- lsl r3, r2, #2
- ldr r2, _0223D280 ; =0x0225E194
- add r1, r4, #0
- ldr r2, [r2, r3]
- blx r2
- ldr r0, [r4, #8]
- cmp r0, #0x2b
- bne _0223D276
- mov r0, #1
- pop {r3, r4, r5, pc}
-_0223D276:
- mov r0, #0
- pop {r3, r4, r5, pc}
- nop
-_0223D27C: .word 0x0000311F
-_0223D280: .word 0x0225E194
-
- thumb_func_start MOD11_0223D284
-MOD11_0223D284: ; 0x0223D284
- push {r4, lr}
- add r4, r0, #0
- ldr r0, _0223D298 ; =0x00002120
- ldr r0, [r4, r0]
- bl FreeToHeap
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
- .align 2, 0
-_0223D298: .word 0x00002120
-
- thumb_func_start MOD11_0223D29C
-MOD11_0223D29C: ; 0x0223D29C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- ldr r6, [sp, #0x20]
- add r5, r0, #0
- add r4, r1, #0
- add r7, r2, #0
- str r3, [sp, #4]
- str r6, [sp]
- bl MOD11_0224053C
- ldr r0, [sp, #0x20]
- ldr r3, [sp, #4]
- str r0, [sp]
- add r0, r5, #0
- add r1, r4, #0
- add r2, r7, #0
- bl MOD11_02240890
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0223D2C4
-MOD11_0223D2C4: ; 0x0223D2C4
- push {r3, r4, r5, r6, r7, lr}
- str r0, [sp]
- add r5, r1, #0
- bl MOD11_0222FF84
- add r7, r0, #0
- mov r4, #0
- cmp r7, #0
- ble _0223D2EC
-_0223D2D6:
- ldr r3, _0223D2FC ; =0x0000219C
- add r6, r5, r4
- ldrb r3, [r6, r3]
- ldr r0, [sp]
- add r1, r5, #0
- add r2, r4, #0
- bl MOD11_02242B78
- add r4, r4, #1
- cmp r4, r7
- blt _0223D2D6
-_0223D2EC:
- ldr r0, _0223D300 ; =0x00002E4C
- ldr r1, [r5, r0]
- ldr r0, _0223D304 ; =0x00003122
- strh r1, [r5, r0]
- mov r0, #1
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0223D2FC: .word 0x0000219C
-_0223D300: .word 0x00002E4C
-_0223D304: .word 0x00003122
-
- thumb_func_start MOD11_0223D308
-MOD11_0223D308: ; 0x0223D308
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- mov r2, #0
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #2
- str r0, [r4, #0xc]
- pop {r4, pc}
-
- thumb_func_start MOD11_0223D320
-MOD11_0223D320: ; 0x0223D320
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD11_0224529C
- cmp r0, #0
- beq _0223D342
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x29
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #3
- str r0, [r4, #0xc]
- b _0223D346
-_0223D342:
- mov r0, #3
- str r0, [r4, #8]
-_0223D346:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0224728C
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_0223D350
-MOD11_0223D350: ; 0x0223D350
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD11_022476DC
- add r2, r0, #0
- beq _0223D370
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- pop {r3, r4, r5, pc}
-_0223D370:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0224728C
- mov r0, #4
- str r0, [r4, #8]
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0223D380
-MOD11_0223D380: ; 0x0223D380
- push {r3, r4, r5, r6, r7, lr}
- str r0, [sp]
- add r4, r1, #0
- bl MOD11_0222FF84
- add r5, r0, #0
- mov r3, #0
- cmp r5, #0
- ble _0223D3AA
- mov r7, #0xb7
- lsl r7, r7, #6
- add r6, r4, #0
- add r2, r3, #0
- add r0, r7, #4
-_0223D39C:
- strb r2, [r4, r3]
- ldr r1, [r6, r7]
- add r3, r3, #1
- str r1, [r6, r0]
- add r6, #0xc0
- cmp r3, r5
- blt _0223D39C
-_0223D3AA:
- ldr r0, [sp]
- mov r1, #0
- bl MOD11_022312AC
- mov r0, #5
- str r0, [r4, #8]
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0223D3B8
-MOD11_0223D3B8: ; 0x0223D3B8
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0xb8
- add r7, r0, #0
- add r6, r1, #0
- bl MOD11_0222FF84
- str r0, [sp, #0x64]
- add r0, r7, #0
- bl MOD11_0222FF74
- str r0, [sp, #0x24]
- mov r4, #0
- ldr r0, [sp, #0x64]
- str r4, [sp, #0x60]
- cmp r0, #0
- bgt _0223D3DA
- b _0223DB58
-_0223D3DA:
- mov r0, #0x75
- lsl r0, r0, #2
- add r0, r6, r0
- str r0, [sp, #0x50]
- ldr r0, _0223D710 ; =0x000021AC
- mov r1, #2
- add r0, r6, r0
- str r0, [sp, #0x40]
- mov r0, #0x23
- lsl r0, r0, #8
- add r0, r6, r0
- str r0, [sp, #0x3c]
- ldr r0, [sp, #0x24]
- str r6, [sp, #0x54]
- and r0, r1
- str r0, [sp, #0x38]
- ldr r0, [sp, #0x24]
- mov r1, #8
- and r0, r1
- str r0, [sp, #0x34]
- ldr r0, [sp, #0x24]
- lsl r1, r1, #6
- and r0, r1
- str r0, [sp, #0x30]
- ldr r0, [sp, #0x24]
- mov r1, #0x20
- and r0, r1
- str r0, [sp, #0x2c]
- ldr r0, [sp, #0x24]
- mov r1, #4
- and r0, r1
- str r0, [sp, #0x28]
- ldr r0, [sp, #0x24]
- mov r1, #0x80
- and r0, r1
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x24]
- mov r1, #1
- and r0, r1
- str r6, [sp, #0x4c]
- str r6, [sp, #0x48]
- str r6, [sp, #0x44]
- str r0, [sp, #0x1c]
-_0223D430:
- ldrb r0, [r6, r4]
- add r5, r6, r4
- cmp r0, #0x10
- bhi _0223D50A
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0223D444: ; jump table
- .short _0223D466 - _0223D444 - 2 ; case 0
- .short _0223D4DA - _0223D444 - 2 ; case 1
- .short _0223D6EE - _0223D444 - 2 ; case 2
- .short _0223D6FC - _0223D444 - 2 ; case 3
- .short _0223D7DA - _0223D444 - 2 ; case 4
- .short _0223D814 - _0223D444 - 2 ; case 5
- .short _0223D848 - _0223D444 - 2 ; case 6
- .short _0223D856 - _0223D444 - 2 ; case 7
- .short _0223D884 - _0223D444 - 2 ; case 8
- .short _0223D8FC - _0223D444 - 2 ; case 9
- .short _0223D93C - _0223D444 - 2 ; case 10
- .short _0223D9F8 - _0223D444 - 2 ; case 11
- .short _0223DA46 - _0223D444 - 2 ; case 12
- .short _0223DA94 - _0223D444 - 2 ; case 13
- .short _0223DA9C - _0223D444 - 2 ; case 14
- .short _0223DAB6 - _0223D444 - 2 ; case 15
- .short _0223DB14 - _0223D444 - 2 ; case 16
-_0223D466:
- ldr r0, [sp, #0x38]
- cmp r0, #0
- beq _0223D486
- ldr r0, [sp, #0x34]
- cmp r0, #0
- bne _0223D486
- cmp r4, #2
- bne _0223D47C
- ldrb r0, [r6]
- cmp r0, #0xd
- bne _0223D50A
-_0223D47C:
- cmp r4, #3
- bne _0223D486
- ldrb r0, [r6, #1]
- cmp r0, #0xd
- bne _0223D50A
-_0223D486:
- add r0, r4, #0
- bl MaskOfFlagNo
- ldr r1, _0223D714 ; =0x00003108
- ldrb r1, [r6, r1]
- tst r0, r1
- beq _0223D4A2
- mov r0, #0xc
- strb r0, [r5]
- ldr r1, _0223D718 ; =0x000021A8
- ldr r0, [sp, #0x54]
- mov r2, #0x27
- str r2, [r0, r1]
- b _0223DB20
-_0223D4A2:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224AD04
- cmp r0, #0
- bne _0223D4C8
- ldr r0, [sp, #0x50]
- mov r2, #0xd
- ldr r1, [r0]
- mov r0, #2
- orr r1, r0
- ldr r0, [sp, #0x50]
- str r1, [r0]
- mov r0, #0xc
- strb r0, [r5]
- ldr r1, _0223D718 ; =0x000021A8
- ldr r0, [sp, #0x54]
- str r2, [r0, r1]
- b _0223DB20
-_0223D4C8:
- ldr r3, _0223D71C ; =0x0000219C
- add r0, r7, #0
- ldrb r3, [r5, r3]
- add r1, r6, #0
- add r2, r4, #0
- bl MOD11_02255188
- mov r0, #1
- strb r0, [r5]
-_0223D4DA:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224AD90
- cmp r0, #0
- beq _0223D50A
- mov r1, #0x23
- ldr r0, [sp, #0x4c]
- lsl r1, r1, #8
- ldrb r2, [r0, r1]
- ldr r1, _0223D720 ; =0x000021B4
- ldr r0, [sp, #0x54]
- str r2, [r0, r1]
- ldr r0, [sp, #0x30]
- cmp r0, #0
- beq _0223D52E
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224AD90
- cmp r0, #1
- beq _0223D50C
- cmp r0, #4
- beq _0223D51E
-_0223D50A:
- b _0223DB20
-_0223D50C:
- mov r0, #0x10
- strb r0, [r5]
- mov r0, #0xc
- strb r0, [r5, #4]
- ldr r1, _0223D718 ; =0x000021A8
- ldr r0, [sp, #0x54]
- mov r2, #0x11
- str r2, [r0, r1]
- b _0223DB20
-_0223D51E:
- mov r0, #0x10
- strb r0, [r5]
- mov r1, #0xc
- strb r1, [r5, #4]
- ldr r2, _0223D718 ; =0x000021A8
- ldr r1, [sp, #0x54]
- str r0, [r1, r2]
- b _0223DB20
-_0223D52E:
- ldr r0, [sp, #0x2c]
- cmp r0, #0
- beq _0223D5B0
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224AD90
- cmp r0, #5
- bhi _0223D5DA
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0223D54C: ; jump table
- .short _0223DB20 - _0223D54C - 2 ; case 0
- .short _0223D558 - _0223D54C - 2 ; case 1
- .short _0223D56A - _0223D54C - 2 ; case 2
- .short _0223D57C - _0223D54C - 2 ; case 3
- .short _0223D58E - _0223D54C - 2 ; case 4
- .short _0223D59E - _0223D54C - 2 ; case 5
-_0223D558:
- mov r0, #0x10
- strb r0, [r5]
- mov r0, #0xc
- strb r0, [r5, #4]
- ldr r1, _0223D718 ; =0x000021A8
- ldr r0, [sp, #0x54]
- mov r2, #0x11
- str r2, [r0, r1]
- b _0223DB20
-_0223D56A:
- mov r0, #0x10
- strb r0, [r5]
- mov r0, #0xc
- strb r0, [r5, #4]
- ldr r1, _0223D718 ; =0x000021A8
- ldr r0, [sp, #0x54]
- mov r2, #0x12
- str r2, [r0, r1]
- b _0223DB20
-_0223D57C:
- mov r0, #0x10
- strb r0, [r5]
- mov r0, #0xc
- strb r0, [r5, #4]
- ldr r1, _0223D718 ; =0x000021A8
- ldr r0, [sp, #0x54]
- mov r2, #0x13
- str r2, [r0, r1]
- b _0223DB20
-_0223D58E:
- mov r0, #0x10
- strb r0, [r5]
- mov r1, #0xc
- strb r1, [r5, #4]
- ldr r2, _0223D718 ; =0x000021A8
- ldr r1, [sp, #0x54]
- str r0, [r1, r2]
- b _0223DB20
-_0223D59E:
- mov r0, #0x10
- strb r0, [r5]
- mov r0, #0xc
- strb r0, [r5]
- ldr r1, _0223D718 ; =0x000021A8
- ldr r0, [sp, #0x54]
- mov r2, #0x14
- str r2, [r0, r1]
- b _0223DB20
-_0223D5B0:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224AD90
- cmp r0, #4
- bgt _0223D5D6
- cmp r0, #0
- blt _0223D5DA
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0223D5CC: ; jump table
- .short _0223DB20 - _0223D5CC - 2 ; case 0
- .short _0223D5DC - _0223D5CC - 2 ; case 1
- .short _0223D63C - _0223D5CC - 2 ; case 2
- .short _0223D698 - _0223D5CC - 2 ; case 3
- .short _0223D6A6 - _0223D5CC - 2 ; case 4
-_0223D5D6:
- cmp r0, #0xff
- beq _0223D6B4
-_0223D5DA:
- b _0223DB20
-_0223D5DC:
- mov r0, #0
- mvn r0, r0
- str r0, [sp]
- add r0, r7, #0
- add r1, r6, #0
- add r2, r4, #0
- mov r3, #0
- bl MOD11_02245D38
- cmp r0, #0xf
- bne _0223D5FC
- mov r0, #0x10
- strb r0, [r5]
- mov r0, #0xf
- strb r0, [r5, #4]
- b _0223D632
-_0223D5FC:
- ldr r3, _0223D724 ; =0x00002DEC
- ldr r0, [sp, #0x48]
- ldrh r0, [r0, r3]
- cmp r0, #0
- beq _0223D62E
- ldr r0, [sp, #0x48]
- add r1, r3, #2
- ldrh r1, [r0, r1]
- ldr r2, _0223D728 ; =0x000030BC
- ldr r0, [sp, #0x44]
- strh r1, [r0, r2]
- ldr r0, [sp, #0x48]
- sub r2, #8
- ldrh r1, [r0, r3]
- ldr r0, [sp, #0x44]
- strh r1, [r0, r2]
- ldr r1, _0223D72C ; =0x000021B0
- ldr r0, [sp, #0x54]
- mov r2, #0
- str r2, [r0, r1]
- mov r0, #0x10
- strb r0, [r5]
- mov r0, #0xc
- strb r0, [r5, #4]
- b _0223D632
-_0223D62E:
- mov r0, #2
- strb r0, [r5]
-_0223D632:
- ldr r1, _0223D718 ; =0x000021A8
- ldr r0, [sp, #0x54]
- mov r2, #0xd
- str r2, [r0, r1]
- b _0223DB20
-_0223D63C:
- add r0, r7, #0
- bl MOD11_0222FF74
- mov r1, #0x84
- tst r0, r1
- beq _0223D68A
- ldr r1, _0223D730 ; =0x00000251
- add r0, sp, #0x90
- strh r1, [r0, #6]
- mov r1, #0
- strb r1, [r0, #5]
- mov r0, sp
- str r0, [sp, #0x68]
- sub r0, #8
- str r0, [sp, #0x68]
- add r3, r0, #0
- mov r0, #4
- add r2, sp, #0x94
- str r0, [sp, #0x6c]
-_0223D662:
- ldmia r2!, {r0, r1}
- stmia r3!, {r0, r1}
- ldr r0, [sp, #0x6c]
- sub r0, r0, #1
- str r0, [sp, #0x6c]
- bne _0223D662
- ldr r0, [r2]
- add r1, r4, #0
- str r0, [r3]
- ldr r0, [sp, #0x68]
- ldmia r0!, {r2, r3}
- str r0, [sp, #0x68]
- add r0, r7, #0
- bl MOD11_02255FBC
- mov r0, #0xe
- strb r0, [r5]
- mov r0, #0
- strb r0, [r5, #4]
- b _0223DB20
-_0223D68A:
- ldr r1, _0223D718 ; =0x000021A8
- ldr r0, [sp, #0x54]
- mov r2, #0xe
- str r2, [r0, r1]
- mov r0, #6
- strb r0, [r5]
- b _0223DB20
-_0223D698:
- ldr r1, _0223D718 ; =0x000021A8
- ldr r0, [sp, #0x54]
- mov r2, #0xf
- str r2, [r0, r1]
- mov r0, #8
- strb r0, [r5]
- b _0223DB20
-_0223D6A6:
- ldr r1, _0223D718 ; =0x000021A8
- ldr r0, [sp, #0x54]
- mov r2, #0x10
- str r2, [r0, r1]
- mov r0, #0xa
- strb r0, [r5]
- b _0223DB20
-_0223D6B4:
- ldr r0, [sp, #0x28]
- cmp r0, #0
- beq _0223D6D4
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_02256268
- mov r0, #0
- strb r0, [r5]
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_022302BC
- mov r1, #0
- strb r1, [r6, r0]
- b _0223DB20
-_0223D6D4:
- ldr r0, [sp, #0x38]
- cmp r0, #0
- beq _0223D740
- cmp r4, #2
- bne _0223D740
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_02256268
- mov r0, #0
- strb r0, [r6]
- strb r0, [r6, #2]
- b _0223DB20
-_0223D6EE:
- add r0, r7, #0
- add r1, r6, #0
- add r2, r4, #0
- bl MOD11_02255544
- mov r0, #3
- strb r0, [r5]
-_0223D6FC:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224AD90
- cmp r0, #0xff
- bne _0223D734
- mov r0, #0
- strb r0, [r5]
- b _0223DB20
- nop
-_0223D710: .word 0x000021AC
-_0223D714: .word 0x00003108
-_0223D718: .word 0x000021A8
-_0223D71C: .word 0x0000219C
-_0223D720: .word 0x000021B4
-_0223D724: .word 0x00002DEC
-_0223D728: .word 0x000030BC
-_0223D72C: .word 0x000021B0
-_0223D730: .word 0x00000251
-_0223D734:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224AD90
- cmp r0, #0
- bne _0223D742
-_0223D740:
- b _0223DB20
-_0223D742:
- mov r1, #0x23
- ldr r0, [sp, #0x4c]
- lsl r1, r1, #8
- ldrb r0, [r0, r1]
- sub r3, r0, #1
- cmp r3, #4
- bne _0223D75E
- ldr r1, _0223DA6C ; =0x000021A8
- ldr r0, [sp, #0x54]
- mov r2, #0x10
- str r2, [r0, r1]
- mov r0, #0xa
- strb r0, [r5]
- b _0223DB20
-_0223D75E:
- add r0, sp, #0x94
- str r0, [sp]
- add r0, r7, #0
- add r1, r6, #0
- add r2, r4, #0
- bl MOD11_02245F74
- cmp r0, #0
- bne _0223D7A8
- mov r0, sp
- str r0, [sp, #0x70]
- sub r0, #8
- str r0, [sp, #0x70]
- add r3, r0, #0
- mov r0, #4
- add r2, sp, #0x94
- str r0, [sp, #0x74]
-_0223D780:
- ldmia r2!, {r0, r1}
- stmia r3!, {r0, r1}
- ldr r0, [sp, #0x74]
- sub r0, r0, #1
- str r0, [sp, #0x74]
- bne _0223D780
- ldr r0, [r2]
- add r1, r4, #0
- str r0, [r3]
- ldr r0, [sp, #0x70]
- ldmia r0!, {r2, r3}
- str r0, [sp, #0x70]
- add r0, r7, #0
- bl MOD11_02255FBC
- mov r0, #0xe
- strb r0, [r5]
- mov r0, #2
- strb r0, [r5, #4]
- b _0223DB20
-_0223D7A8:
- mov r3, #0x23
- ldr r0, [sp, #0x4c]
- lsl r3, r3, #8
- ldrb r2, [r0, r3]
- ldr r1, _0223DA70 ; =0x000021B0
- ldr r0, [sp, #0x54]
- str r2, [r0, r1]
- ldr r0, [sp, #0x4c]
- ldr r2, _0223DA74 ; =0x000030BC
- ldrb r0, [r0, r3]
- sub r1, r0, #1
- ldr r0, [sp, #0x44]
- strh r1, [r0, r2]
- ldrh r0, [r0, r2]
- sub r2, #8
- lsl r1, r0, #1
- ldr r0, [sp, #0x48]
- add r1, r0, r1
- ldr r0, _0223DA78 ; =0x00002D4C
- ldrh r1, [r1, r0]
- ldr r0, [sp, #0x44]
- strh r1, [r0, r2]
- mov r0, #4
- strb r0, [r5]
- b _0223DB20
-_0223D7DA:
- add r0, sp, #0x90
- str r0, [sp]
- ldr r1, _0223DA74 ; =0x000030BC
- ldr r0, [sp, #0x44]
- lsl r2, r4, #0x18
- ldrh r0, [r0, r1]
- ldr r3, [sp, #0x24]
- add r1, r6, #0
- str r0, [sp, #4]
- ldr r0, [sp, #0x40]
- lsr r2, r2, #0x18
- str r0, [sp, #8]
- add r0, r7, #0
- bl MOD11_0224235C
- cmp r0, #0
- beq _0223D80E
- ldr r2, [sp, #0x90]
- add r0, r7, #0
- add r1, r6, #0
- add r3, r4, #0
- bl MOD11_02255600
- mov r0, #5
- strb r0, [r5]
- b _0223DB20
-_0223D80E:
- mov r0, #0xc
- strb r0, [r5]
- b _0223DB20
-_0223D814:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224AD90
- cmp r0, #0xff
- bne _0223D826
- mov r0, #2
- strb r0, [r5]
- b _0223DB20
-_0223D826:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224AD90
- cmp r0, #0
- beq _0223D91A
- mov r1, #0x23
- ldr r0, [sp, #0x4c]
- lsl r1, r1, #8
- ldrb r0, [r0, r1]
- ldr r1, _0223DA7C ; =0x000021AC
- sub r2, r0, #1
- ldr r0, [sp, #0x54]
- str r2, [r0, r1]
- mov r0, #0xc
- strb r0, [r5]
- b _0223DB20
-_0223D848:
- add r0, r7, #0
- add r1, r6, #0
- add r2, r4, #0
- bl MOD11_0225573C
- mov r0, #7
- strb r0, [r5]
-_0223D856:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224AD90
- cmp r0, #0xff
- bne _0223D868
- mov r0, #0
- strb r0, [r5]
- b _0223DB20
-_0223D868:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224AD90
- cmp r0, #0
- beq _0223D91A
- ldr r0, [sp, #0x3c]
- ldr r1, _0223DA70 ; =0x000021B0
- ldr r2, [r0]
- ldr r0, [sp, #0x54]
- str r2, [r0, r1]
- mov r0, #0xc
- strb r0, [r5]
- b _0223DB20
-_0223D884:
- mov r0, #6
- str r0, [sp, #0x58]
- add r0, r7, #0
- add r1, r6, #0
- add r2, r4, #0
- bl MOD11_02249E80
- str r0, [sp, #0x5c]
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_02230260
- cmp r0, #4
- beq _0223D8AC
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_02230260
- cmp r0, #5
- bne _0223D8E4
-_0223D8AC:
- ldr r0, [sp, #0x24]
- cmp r0, #3
- beq _0223D8CA
- cmp r0, #7
- beq _0223D8CA
- cmp r0, #0x83
- beq _0223D8CA
- cmp r0, #0x13
- bne _0223D8E4
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_02230260
- cmp r0, #4
- bne _0223D8E4
-_0223D8CA:
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_022302BC
- lsl r0, r0, #4
- add r2, r6, r0
- ldr r0, _0223DA6C ; =0x000021A8
- ldr r1, [r2, r0]
- cmp r1, #0xf
- bne _0223D8E4
- add r0, #8
- ldr r0, [r2, r0]
- str r0, [sp, #0x58]
-_0223D8E4:
- ldr r0, [sp, #0x5c]
- add r1, r6, #0
- str r0, [sp]
- ldr r0, [sp, #0x58]
- add r2, r4, #0
- str r0, [sp, #4]
- add r0, r7, #0
- mov r3, #0
- bl MOD11_022558E0
- mov r0, #9
- strb r0, [r5]
-_0223D8FC:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224AD90
- cmp r0, #0xff
- bne _0223D90E
- mov r0, #0
- strb r0, [r5]
- b _0223DB20
-_0223D90E:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224AD90
- cmp r0, #0
- bne _0223D91C
-_0223D91A:
- b _0223DB20
-_0223D91C:
- mov r3, #0x23
- ldr r0, [sp, #0x4c]
- lsl r3, r3, #8
- ldrb r0, [r0, r3]
- ldr r2, _0223DA70 ; =0x000021B0
- sub r1, r0, #1
- ldr r0, [sp, #0x54]
- str r1, [r0, r2]
- ldr r0, [sp, #0x4c]
- sub r2, #0x10
- ldrb r0, [r0, r3]
- sub r0, r0, #1
- strb r0, [r5, r2]
- mov r0, #0xc
- strb r0, [r5]
- b _0223DB20
-_0223D93C:
- ldr r0, [sp, #0x20]
- cmp r0, #0
- beq _0223D95C
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- ldr r3, _0223DA80 ; =0x000003BB
- add r0, r7, #0
- add r1, r6, #0
- add r2, r4, #0
- bl MOD11_02255980
- mov r0, #0xb
- strb r0, [r5]
- b _0223DB20
-_0223D95C:
- ldr r0, [sp, #0x1c]
- cmp r0, #0
- beq _0223D9AA
- ldr r0, [sp, #0x28]
- cmp r0, #0
- bne _0223D9AA
- mov r1, #0
- add r0, sp, #0x90
- strb r1, [r0, #5]
- ldr r1, _0223DA84 ; =0x00000319
- add r2, sp, #0x94
- strh r1, [r0, #6]
- mov r0, sp
- str r0, [sp, #0x78]
- sub r0, #8
- str r0, [sp, #0x78]
- add r3, r0, #0
- mov r0, #4
- str r0, [sp, #0x7c]
-_0223D982:
- ldmia r2!, {r0, r1}
- stmia r3!, {r0, r1}
- ldr r0, [sp, #0x7c]
- sub r0, r0, #1
- str r0, [sp, #0x7c]
- bne _0223D982
- ldr r0, [r2]
- add r1, r4, #0
- str r0, [r3]
- ldr r0, [sp, #0x78]
- ldmia r0!, {r2, r3}
- str r0, [sp, #0x78]
- add r0, r7, #0
- bl MOD11_02255FBC
- mov r0, #0xe
- strb r0, [r5]
- mov r0, #0
- strb r0, [r5, #4]
- b _0223DB20
-_0223D9AA:
- add r0, r7, #0
- add r1, r6, #0
- add r2, r4, #0
- add r3, sp, #0x94
- bl MOD11_02246ED0
- cmp r0, #0
- beq _0223D9F2
- mov r0, sp
- str r0, [sp, #0x80]
- sub r0, #8
- str r0, [sp, #0x80]
- add r3, r0, #0
- mov r0, #4
- add r2, sp, #0x94
- str r0, [sp, #0x84]
-_0223D9CA:
- ldmia r2!, {r0, r1}
- stmia r3!, {r0, r1}
- ldr r0, [sp, #0x84]
- sub r0, r0, #1
- str r0, [sp, #0x84]
- bne _0223D9CA
- ldr r0, [r2]
- add r1, r4, #0
- str r0, [r3]
- ldr r0, [sp, #0x80]
- ldmia r0!, {r2, r3}
- str r0, [sp, #0x80]
- add r0, r7, #0
- bl MOD11_02255FBC
- mov r0, #0xe
- strb r0, [r5]
- mov r0, #0
- strb r0, [r5, #4]
- b _0223DB20
-_0223D9F2:
- mov r0, #0xb
- strb r0, [r5]
- b _0223DB20
-_0223D9F8:
- ldr r0, [sp, #0x20]
- cmp r0, #0
- beq _0223DA22
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224AD90
- cmp r0, #0
- beq _0223DA26
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224AD90
- cmp r0, #0xff
- bne _0223DA1C
- mov r0, #0
- strb r0, [r5]
- b _0223DA26
-_0223DA1C:
- mov r0, #0xc
- strb r0, [r5]
- b _0223DA26
-_0223DA22:
- mov r0, #0xc
- strb r0, [r5]
-_0223DA26:
- ldr r0, [sp, #0x38]
- cmp r0, #0
- beq _0223DB20
- ldr r0, [sp, #0x34]
- cmp r0, #0
- bne _0223DB20
- ldrb r0, [r5]
- cmp r0, #0xc
- bne _0223DB20
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_022302BC
- mov r1, #0xc
- strb r1, [r6, r0]
- b _0223DB20
-_0223DA46:
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_02256268
- ldr r0, [sp, #0x24]
- cmp r0, #7
- bne _0223DA88
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_022302BC
- ldrb r0, [r6, r0]
- cmp r0, #0xd
- bne _0223DA90
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_022564CC
- b _0223DA90
- .align 2, 0
-_0223DA6C: .word 0x000021A8
-_0223DA70: .word 0x000021B0
-_0223DA74: .word 0x000030BC
-_0223DA78: .word 0x00002D4C
-_0223DA7C: .word 0x000021AC
-_0223DA80: .word 0x000003BB
-_0223DA84: .word 0x00000319
-_0223DA88:
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_022564CC
-_0223DA90:
- mov r0, #0xd
- strb r0, [r5]
-_0223DA94:
- ldr r0, [sp, #0x60]
- add r0, r0, #1
- str r0, [sp, #0x60]
- b _0223DB20
-_0223DA9C:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224AD90
- cmp r0, #0
- beq _0223DB20
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_02243400
- ldrb r0, [r5, #4]
- strb r0, [r5]
- b _0223DB20
-_0223DAB6:
- mov r1, #2
- add r0, sp, #0x90
- strb r1, [r0, #5]
- mov r1, #0x26
- lsl r1, r1, #4
- strh r1, [r0, #6]
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0224682C
- str r0, [sp, #0x98]
- mov r0, sp
- str r0, [sp, #0x88]
- sub r0, #8
- str r0, [sp, #0x88]
- add r3, r0, #0
- mov r0, #4
- add r2, sp, #0x94
- mov ip, r0
-_0223DADC:
- ldmia r2!, {r0, r1}
- stmia r3!, {r0, r1}
- mov r0, ip
- sub r0, r0, #1
- mov ip, r0
- bne _0223DADC
- ldr r0, [r2]
- add r1, r4, #0
- str r0, [r3]
- ldr r0, [sp, #0x88]
- ldmia r0!, {r2, r3}
- str r0, [sp, #0x88]
- add r0, r7, #0
- bl MOD11_02255FBC
- ldr r0, [sp, #0x50]
- mov r1, #1
- ldr r0, [r0]
- bic r0, r1
- mov r1, #1
- orr r1, r0
- ldr r0, [sp, #0x50]
- str r1, [r0]
- mov r0, #0xe
- strb r0, [r5]
- mov r0, #0xc
- strb r0, [r5, #4]
- b _0223DB20
-_0223DB14:
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_022563B4
- ldrb r0, [r5, #4]
- strb r0, [r5]
-_0223DB20:
- ldr r0, [sp, #0x54]
- ldr r1, [sp, #0x4c]
- add r0, #0x10
- str r0, [sp, #0x54]
- ldr r0, [sp, #0x50]
- add r4, r4, #1
- add r0, #0x40
- str r0, [sp, #0x50]
- mov r0, #1
- lsl r0, r0, #8
- add r1, r1, r0
- str r1, [sp, #0x4c]
- ldr r1, [sp, #0x48]
- add r1, #0xc0
- str r1, [sp, #0x48]
- ldr r1, [sp, #0x44]
- add r1, r1, #2
- str r1, [sp, #0x44]
- ldr r1, [sp, #0x40]
- add r1, #0x10
- str r1, [sp, #0x40]
- ldr r1, [sp, #0x3c]
- add r0, r1, r0
- str r0, [sp, #0x3c]
- ldr r0, [sp, #0x64]
- cmp r4, r0
- bge _0223DB58
- b _0223D430
-_0223DB58:
- ldr r1, [sp, #0x60]
- ldr r0, [sp, #0x64]
- cmp r1, r0
- bne _0223DB96
- mov r0, #6
- str r0, [r6, #8]
- ldr r0, [sp, #0x64]
- mov r5, #0
- cmp r0, #0
- ble _0223DB96
- str r6, [sp, #0x8c]
-_0223DB6E:
- ldr r1, _0223DB9C ; =0x000021A8
- ldr r0, [sp, #0x8c]
- ldr r0, [r0, r1]
- cmp r0, #0xf
- bne _0223DB88
- ldr r3, _0223DBA0 ; =0x000021A0
- add r4, r6, r5
- ldrb r3, [r4, r3]
- add r0, r7, #0
- add r1, r6, #0
- add r2, r5, #0
- bl MOD11_0224B290
-_0223DB88:
- ldr r0, [sp, #0x8c]
- add r5, r5, #1
- add r0, #0x10
- str r0, [sp, #0x8c]
- ldr r0, [sp, #0x64]
- cmp r5, r0
- blt _0223DB6E
-_0223DB96:
- add sp, #0xb8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0223DB9C: .word 0x000021A8
-_0223DBA0: .word 0x000021A0
-
- thumb_func_start MOD11_0223DBA4
-MOD11_0223DBA4: ; 0x0223DBA4
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- str r0, [sp, #4]
- add r5, r1, #0
- bl MOD11_0222FF84
- str r0, [sp, #0x14]
- ldr r0, [sp, #4]
- bl MOD11_0222FF74
- mov r2, #0x22
- lsl r2, r2, #4
- mov r1, #0
- tst r2, r0
- beq _0223DBDA
- ldr r0, [sp, #0x14]
- add r4, r1, #0
- cmp r0, #0
- ble _0223DBD8
- ldr r1, _0223DD14 ; =0x000021E8
-_0223DBCC:
- add r0, r5, r4
- strb r4, [r0, r1]
- ldr r0, [sp, #0x14]
- add r4, r4, #1
- cmp r4, r0
- blt _0223DBCC
-_0223DBD8:
- b _0223DD0C
-_0223DBDA:
- mov r2, #4
- tst r0, r2
- beq _0223DC02
- ldr r0, [sp, #0x14]
- add r4, r1, #0
- cmp r0, #0
- ble _0223DC1A
- ldr r2, _0223DD18 ; =0x000021B4
- add r3, r5, #0
-_0223DBEC:
- ldr r0, [r3, r2]
- cmp r0, #4
- bne _0223DBF6
- mov r1, #5
- b _0223DC1A
-_0223DBF6:
- ldr r0, [sp, #0x14]
- add r4, r4, #1
- add r3, #0x10
- cmp r4, r0
- blt _0223DBEC
- b _0223DC1A
-_0223DC02:
- ldr r0, _0223DD18 ; =0x000021B4
- ldr r0, [r5, r0]
- cmp r0, #4
- bne _0223DC0E
- add r4, r1, #0
- mov r1, #5
-_0223DC0E:
- ldr r0, _0223DD1C ; =0x000021D4
- ldr r0, [r5, r0]
- cmp r0, #4
- bne _0223DC1A
- mov r4, #2
- mov r1, #5
-_0223DC1A:
- cmp r1, #5
- bne _0223DC42
- ldr r0, _0223DD14 ; =0x000021E8
- ldr r2, [sp, #0x14]
- strb r4, [r5, r0]
- mov r1, #1
- mov r0, #0
- cmp r2, #0
- ble _0223DD0C
- ldr r3, _0223DD14 ; =0x000021E8
-_0223DC2E:
- cmp r0, r4
- beq _0223DC38
- add r2, r5, r1
- strb r0, [r2, r3]
- add r1, r1, #1
-_0223DC38:
- ldr r2, [sp, #0x14]
- add r0, r0, #1
- cmp r0, r2
- blt _0223DC2E
- b _0223DD0C
-_0223DC42:
- ldr r0, [sp, #0x14]
- mov r2, #0
- cmp r0, #0
- ble _0223DC6A
- ldr r4, _0223DD14 ; =0x000021E8
- add r0, r5, #0
- add r6, r4, #0
- sub r6, #0x34
-_0223DC52:
- ldr r3, [r0, r6]
- sub r3, r3, #2
- cmp r3, #1
- bhi _0223DC60
- add r3, r5, r1
- strb r2, [r3, r4]
- add r1, r1, #1
-_0223DC60:
- ldr r3, [sp, #0x14]
- add r2, r2, #1
- add r0, #0x10
- cmp r2, r3
- blt _0223DC52
-_0223DC6A:
- ldr r0, [sp, #0x14]
- mov r2, #0
- cmp r0, #0
- ble _0223DC94
- ldr r4, _0223DD14 ; =0x000021E8
- add r0, r5, #0
- add r6, r4, #0
- sub r6, #0x34
-_0223DC7A:
- ldr r3, [r0, r6]
- cmp r3, #2
- beq _0223DC8A
- cmp r3, #3
- beq _0223DC8A
- add r3, r5, r1
- strb r2, [r3, r4]
- add r1, r1, #1
-_0223DC8A:
- ldr r3, [sp, #0x14]
- add r2, r2, #1
- add r0, #0x10
- cmp r2, r3
- blt _0223DC7A
-_0223DC94:
- mov r0, #0
- str r0, [sp, #8]
- ldr r0, [sp, #0x14]
- sub r0, r0, #1
- str r0, [sp, #0x18]
- cmp r0, #0
- ble _0223DD0C
-_0223DCA2:
- ldr r0, [sp, #8]
- add r7, r0, #1
- ldr r0, [sp, #0x14]
- cmp r7, r0
- bge _0223DD00
- ldr r0, [sp, #8]
- add r0, r5, r0
- str r0, [sp, #0x10]
-_0223DCB2:
- ldr r1, [sp, #0x10]
- ldr r0, _0223DD14 ; =0x000021E8
- ldrb r6, [r1, r0]
- add r1, r5, r7
- ldrb r4, [r1, r0]
- lsl r0, r6, #4
- str r1, [sp, #0xc]
- add r1, r5, r0
- ldr r0, _0223DD18 ; =0x000021B4
- ldr r0, [r1, r0]
- lsl r1, r4, #4
- add r2, r5, r1
- ldr r1, _0223DD18 ; =0x000021B4
- ldr r1, [r2, r1]
- cmp r0, r1
- bne _0223DCF8
- cmp r0, #1
- beq _0223DCDA
- mov r0, #1
- b _0223DCDC
-_0223DCDA:
- mov r0, #0
-_0223DCDC:
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- add r2, r6, #0
- add r3, r4, #0
- bl MOD11_02244248
- cmp r0, #0
- beq _0223DCF8
- ldr r1, [sp, #0x10]
- ldr r0, _0223DD14 ; =0x000021E8
- strb r4, [r1, r0]
- ldr r1, [sp, #0xc]
- strb r6, [r1, r0]
-_0223DCF8:
- ldr r0, [sp, #0x14]
- add r7, r7, #1
- cmp r7, r0
- blt _0223DCB2
-_0223DD00:
- ldr r0, [sp, #8]
- add r1, r0, #1
- ldr r0, [sp, #0x18]
- str r1, [sp, #8]
- cmp r1, r0
- blt _0223DCA2
-_0223DD0C:
- mov r0, #7
- str r0, [r5, #8]
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0223DD14: .word 0x000021E8
-_0223DD18: .word 0x000021B4
-_0223DD1C: .word 0x000021D4
-
- thumb_func_start MOD11_0223DD20
-MOD11_0223DD20: ; 0x0223DD20
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r4, r1, #0
- mov r1, #0
- str r0, [sp]
- str r1, [sp, #4]
- bl MOD11_0222FF84
- add r7, r0, #0
-_0223DD32:
- ldr r0, [r4, #0x28]
- cmp r0, #3
- bls _0223DD3A
- b _0223DE4A
-_0223DD3A:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0223DD46: ; jump table
- .short _0223DD4E - _0223DD46 - 2 ; case 0
- .short _0223DDE8 - _0223DD46 - 2 ; case 1
- .short _0223DE26 - _0223DD46 - 2 ; case 2
- .short _0223DE42 - _0223DD46 - 2 ; case 3
-_0223DD4E:
- ldr r0, [r4, #0x2c]
- cmp r0, r7
- bge _0223DDDC
- add r6, r4, #0
- add r6, #0x2c
-_0223DD58:
- add r1, r4, r0
- ldr r0, _0223DE60 ; =0x000021E8
- ldrb r5, [r1, r0]
- add r0, r5, #0
- bl MaskOfFlagNo
- ldr r1, _0223DE64 ; =0x00003108
- ldrb r1, [r4, r1]
- tst r0, r1
- ldr r0, [r6]
- beq _0223DD74
- add r0, r0, #1
- str r0, [r6]
- b _0223DDD6
-_0223DD74:
- add r0, r0, #1
- str r0, [r6]
- mov r0, #0xc0
- mul r0, r5
- add r1, r4, r0
- ldr r0, _0223DE68 ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #7
- tst r0, r1
- bne _0223DDD6
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0224683C
- mov r1, #0x42
- lsl r1, r1, #2
- cmp r0, r1
- bne _0223DDD6
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02247190
- cmp r0, #0
- bne _0223DDD6
- lsl r0, r5, #6
- add r1, r4, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- bne _0223DDD6
- ldr r0, [sp]
- bl MOD11_0225679C
- mov r0, #0x46
- lsl r0, r0, #2
- str r5, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xe8
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add sp, #8
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223DDD6:
- ldr r0, [r4, #0x2c]
- cmp r0, r7
- blt _0223DD58
-_0223DDDC:
- mov r0, #0
- str r0, [r4, #0x2c]
- ldr r0, [r4, #0x28]
- add r0, r0, #1
- str r0, [r4, #0x28]
- b _0223DE4A
-_0223DDE8:
- mov r6, #0
- cmp r7, #0
- ble _0223DE1E
- add r5, r4, #0
-_0223DDF0:
- ldr r0, _0223DE6C ; =0x00002DB0
- ldr r1, [r5, r0]
- mov r0, #2
- lsl r0, r0, #0x16
- tst r0, r1
- beq _0223DE16
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0224683C
- cmp r0, #0x63
- beq _0223DE16
- ldr r0, _0223DE6C ; =0x00002DB0
- ldr r1, [r5, r0]
- mov r0, #2
- lsl r0, r0, #0x16
- and r1, r0
- ldr r0, _0223DE6C ; =0x00002DB0
- str r1, [r5, r0]
-_0223DE16:
- add r6, r6, #1
- add r5, #0xc0
- cmp r6, r7
- blt _0223DDF0
-_0223DE1E:
- ldr r0, [r4, #0x28]
- add r0, r0, #1
- str r0, [r4, #0x28]
- b _0223DE4A
-_0223DE26:
- mov r6, #0
- add r5, r4, #0
-_0223DE2A:
- bl rand_LC
- ldr r1, _0223DE70 ; =0x0000310C
- add r6, r6, #1
- strh r0, [r5, r1]
- add r5, r5, #2
- cmp r6, #4
- blt _0223DE2A
- ldr r0, [r4, #0x28]
- add r0, r0, #1
- str r0, [r4, #0x28]
- b _0223DE4A
-_0223DE42:
- mov r0, #0
- str r0, [r4, #0x28]
- mov r0, #2
- str r0, [sp, #4]
-_0223DE4A:
- ldr r0, [sp, #4]
- cmp r0, #0
- bne _0223DE52
- b _0223DD32
-_0223DE52:
- cmp r0, #2
- bne _0223DE5A
- mov r0, #8
- str r0, [r4, #8]
-_0223DE5A:
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0223DE60: .word 0x000021E8
-_0223DE64: .word 0x00003108
-_0223DE68: .word 0x00002DAC
-_0223DE6C: .word 0x00002DB0
-_0223DE70: .word 0x0000310C
-
- thumb_func_start MOD11_0223DE74
-MOD11_0223DE74: ; 0x0223DE74
- push {r4, r5, r6, lr}
- add r6, r0, #0
- add r5, r1, #0
- bl MOD11_0222FF84
- add r4, r0, #0
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_0224728C
- add r0, r5, #0
- add r0, #0xec
- ldr r0, [r0]
- cmp r0, r4
- bne _0223DEA0
- add r0, r5, #0
- mov r1, #0
- add r0, #0xec
- str r1, [r0]
- mov r0, #9
- str r0, [r5, #8]
- pop {r4, r5, r6, pc}
-_0223DEA0:
- add r1, r5, r0
- ldr r0, _0223DEB4 ; =0x000021E8
- ldrb r1, [r1, r0]
- sub r0, #0x40
- lsl r1, r1, #4
- add r1, r5, r1
- ldr r0, [r1, r0]
- str r0, [r5, #8]
- pop {r4, r5, r6, pc}
- nop
-_0223DEB4: .word 0x000021E8
-
- thumb_func_start MOD11_0223DEB8
-MOD11_0223DEB8: ; 0x0223DEB8
- push {r4, r5, r6, r7, lr}
- sub sp, #0x3c
- str r0, [sp]
- add r4, r1, #0
- mov r5, #0
- bl MOD11_0222FF84
- str r0, [sp, #4]
-_0223DEC8:
- ldr r1, [r4, #8]
- add r0, r4, #0
- add r2, r1, #0
- mov r3, #1
- bl MOD11_0224246C
- cmp r0, #1
- beq _0223DEF2
- ldr r1, [r4, #8]
- add r0, r4, #0
- add r2, r1, #0
- bl MOD11_02242510
- cmp r0, #1
- beq _0223DEF2
- ldr r0, [sp]
- add r1, r4, #0
- bl MOD11_02241FD8
- cmp r0, #1
- bne _0223DEF4
-_0223DEF2:
- b _0223E684
-_0223DEF4:
- ldr r0, [r4, #0x10]
- cmp r0, #0xd
- bhi _0223DFCE
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0223DF06: ; jump table
- .short _0223DF22 - _0223DF06 - 2 ; case 0
- .short _0223DFDC - _0223DF06 - 2 ; case 1
- .short _0223E086 - _0223DF06 - 2 ; case 2
- .short _0223E132 - _0223DF06 - 2 ; case 3
- .short _0223E1E0 - _0223DF06 - 2 ; case 4
- .short _0223E25C - _0223DF06 - 2 ; case 5
- .short _0223E2D8 - _0223DF06 - 2 ; case 6
- .short _0223E3A0 - _0223DF06 - 2 ; case 7
- .short _0223E430 - _0223DF06 - 2 ; case 8
- .short _0223E4C0 - _0223DF06 - 2 ; case 9
- .short _0223E554 - _0223DF06 - 2 ; case 10
- .short _0223E5EA - _0223DF06 - 2 ; case 11
- .short _0223E62C - _0223DF06 - 2 ; case 12
- .short _0223E666 - _0223DF06 - 2 ; case 13
-_0223DF22:
- ldr r6, [r4, #0x14]
- cmp r6, #2
- bge _0223DFCA
- mov r0, #0x71
- lsl r0, r0, #2
- add r0, r4, r0
- str r0, [sp, #0x38]
- add r0, r4, #0
- str r0, [sp, #8]
- add r0, #0x14
- str r0, [sp, #8]
- mov r0, #1
- str r0, [sp, #0x1c]
- mov r0, #0x1c
- str r0, [sp, #0x18]
-_0223DF40:
- lsl r0, r6, #2
- mov r1, #0x6f
- add r0, r4, r0
- lsl r1, r1, #2
- ldr r2, [r0, r1]
- mov r1, #1
- tst r1, r2
- beq _0223DFB6
- ldr r1, [sp, #0x38]
- lsl r3, r6, #3
- ldr r7, [r1, r3]
- ldr r2, [sp, #0x18]
- add r1, r7, #0
- str r7, [sp, #0x2c]
- bic r1, r2
- str r1, [sp, #0x2c]
- lsl r1, r7, #0x1b
- lsr r1, r1, #0x1d
- sub r1, r1, #1
- lsl r1, r1, #0x1d
- lsr r2, r1, #0x1b
- ldr r1, [sp, #0x2c]
- orr r2, r1
- ldr r1, [sp, #0x38]
- str r2, [r1, r3]
- ldr r1, [r1, r3]
- lsl r1, r1, #0x1b
- lsr r1, r1, #0x1d
- bne _0223DFB6
- mov r1, #0x6f
- lsl r1, r1, #2
- ldr r2, [r0, r1]
- ldr r1, [sp, #0x1c]
- bic r2, r1
- mov r1, #0x6f
- lsl r1, r1, #2
- str r2, [r0, r1]
- mov r1, #0x73
- add r0, r1, #0
- add r0, #0xb1
- str r1, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x32
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add r1, r4, #0
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- ldr r0, [sp]
- add r2, r6, #0
- bl MOD11_0224C150
- mov r1, #0x46
- lsl r1, r1, #2
- str r0, [r4, r1]
- mov r5, #1
-_0223DFB6:
- ldr r0, [sp, #8]
- ldr r0, [r0]
- add r1, r0, #1
- ldr r0, [sp, #8]
- cmp r5, #0
- str r1, [r0]
- bne _0223DFCA
- ldr r6, [r4, #0x14]
- cmp r6, #2
- blt _0223DF40
-_0223DFCA:
- cmp r5, #0
- beq _0223DFD0
-_0223DFCE:
- b _0223E668
-_0223DFD0:
- ldr r0, [r4, #0x10]
- add r0, r0, #1
- str r0, [r4, #0x10]
- mov r0, #0
- str r0, [r4, #0x14]
- b _0223E668
-_0223DFDC:
- ldr r6, [r4, #0x14]
- cmp r6, #2
- bge _0223E076
- mov r0, #0x71
- lsl r0, r0, #2
- add r7, r4, r0
- add r0, r4, #0
- str r0, [sp, #0xc]
- add r0, #0x14
- str r0, [sp, #0xc]
- mov r0, #2
- str r0, [sp, #0x20]
-_0223DFF4:
- lsl r0, r6, #2
- add r3, r4, r0
- mov r0, #0x6f
- lsl r0, r0, #2
- ldr r1, [r3, r0]
- mov r0, #2
- tst r0, r1
- beq _0223E062
- lsl r2, r6, #3
- ldr r1, [r7, r2]
- ldr r0, _0223E340 ; =0xFFFFFC7F
- and r0, r1
- str r0, [sp, #0x30]
- lsl r0, r1, #0x16
- lsr r0, r0, #0x1d
- sub r0, r0, #1
- lsl r0, r0, #0x1d
- lsr r1, r0, #0x16
- ldr r0, [sp, #0x30]
- orr r0, r1
- str r0, [r7, r2]
- ldr r0, [r7, r2]
- lsl r0, r0, #0x16
- lsr r0, r0, #0x1d
- bne _0223E062
- mov r0, #0x6f
- lsl r0, r0, #2
- ldr r0, [r3, r0]
- ldr r1, [sp, #0x20]
- mov r2, #0x32
- bic r0, r1
- mov r1, #0x6f
- lsl r1, r1, #2
- str r0, [r3, r1]
- mov r1, #0x71
- add r0, r1, #0
- add r0, #0xb3
- str r1, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add r1, r4, #0
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- ldr r0, [sp]
- add r2, r6, #0
- bl MOD11_0224C150
- mov r1, #0x46
- lsl r1, r1, #2
- str r0, [r4, r1]
- mov r5, #1
-_0223E062:
- ldr r0, [sp, #0xc]
- ldr r0, [r0]
- add r1, r0, #1
- ldr r0, [sp, #0xc]
- cmp r5, #0
- str r1, [r0]
- bne _0223E076
- ldr r6, [r4, #0x14]
- cmp r6, #2
- blt _0223DFF4
-_0223E076:
- cmp r5, #0
- bne _0223E124
- ldr r0, [r4, #0x10]
- add r0, r0, #1
- str r0, [r4, #0x10]
- mov r0, #0
- str r0, [r4, #0x14]
- b _0223E668
-_0223E086:
- ldr r6, [r4, #0x14]
- cmp r6, #2
- bge _0223E120
- mov r0, #0x71
- lsl r0, r0, #2
- add r7, r4, r0
- add r0, r4, #0
- str r0, [sp, #0x10]
- add r0, #0x14
- str r0, [sp, #0x10]
- mov r0, #0x40
- str r0, [sp, #0x24]
-_0223E09E:
- lsl r0, r6, #2
- add r3, r4, r0
- mov r0, #0x6f
- lsl r0, r0, #2
- ldr r1, [r3, r0]
- mov r0, #0x40
- tst r0, r1
- beq _0223E10C
- lsl r2, r6, #3
- ldr r1, [r7, r2]
- ldr r0, _0223E344 ; =0xFFFF8FFF
- and r0, r1
- str r0, [sp, #0x34]
- lsl r0, r1, #0x11
- lsr r0, r0, #0x1d
- sub r0, r0, #1
- lsl r0, r0, #0x1d
- lsr r1, r0, #0x11
- ldr r0, [sp, #0x34]
- orr r0, r1
- str r0, [r7, r2]
- ldr r0, [r7, r2]
- lsl r0, r0, #0x11
- lsr r0, r0, #0x1d
- bne _0223E10C
- mov r0, #0x6f
- lsl r0, r0, #2
- ldr r0, [r3, r0]
- ldr r1, [sp, #0x24]
- mov r2, #0x32
- bic r0, r1
- mov r1, #0x6f
- lsl r1, r1, #2
- str r0, [r3, r1]
- mov r1, #0x36
- add r0, r1, #0
- add r0, #0xee
- str r1, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add r1, r4, #0
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- ldr r0, [sp]
- add r2, r6, #0
- bl MOD11_0224C150
- mov r1, #0x46
- lsl r1, r1, #2
- str r0, [r4, r1]
- mov r5, #1
-_0223E10C:
- ldr r0, [sp, #0x10]
- ldr r0, [r0]
- add r1, r0, #1
- ldr r0, [sp, #0x10]
- cmp r5, #0
- str r1, [r0]
- bne _0223E120
- ldr r6, [r4, #0x14]
- cmp r6, #2
- blt _0223E09E
-_0223E120:
- cmp r5, #0
- beq _0223E126
-_0223E124:
- b _0223E668
-_0223E126:
- ldr r0, [r4, #0x10]
- add r0, r0, #1
- str r0, [r4, #0x10]
- mov r0, #0
- str r0, [r4, #0x14]
- b _0223E668
-_0223E132:
- ldr r7, [r4, #0x14]
- cmp r7, #2
- bge _0223E1D0
- mov r0, #0x71
- lsl r0, r0, #2
- add r6, r4, r0
- add r0, r4, #0
- str r0, [sp, #0x14]
- add r0, #0x14
- str r0, [sp, #0x14]
- mov r0, #8
- str r0, [sp, #0x28]
-_0223E14A:
- lsl r0, r7, #2
- add r3, r4, r0
- mov r0, #0x6f
- lsl r0, r0, #2
- ldr r1, [r3, r0]
- mov r0, #8
- tst r0, r1
- beq _0223E1BC
- lsl r0, r7, #3
- ldr r2, [r6, r0]
- ldr r1, _0223E348 ; =0xFFF1FFFF
- and r1, r2
- mov ip, r1
- lsl r1, r2, #0xc
- lsr r1, r1, #0x1d
- sub r1, r1, #1
- lsl r1, r1, #0x1d
- lsr r2, r1, #0xc
- mov r1, ip
- orr r1, r2
- str r1, [r6, r0]
- ldr r1, [r6, r0]
- lsl r1, r1, #0xc
- lsr r1, r1, #0x1d
- bne _0223E1BC
- mov r1, #0x6f
- lsl r1, r1, #2
- ldr r1, [r3, r1]
- ldr r2, [sp, #0x28]
- bic r1, r2
- mov r2, #0x6f
- lsl r2, r2, #2
- str r1, [r3, r2]
- ldr r0, [r6, r0]
- lsl r0, r0, #0xf
- lsr r1, r0, #0x1e
- add r0, r2, #0
- sub r0, #0xa4
- str r1, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x6e
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add r1, r4, #0
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- ldr r0, [sp]
- add r2, r7, #0
- bl MOD11_0224C150
- mov r1, #0x46
- lsl r1, r1, #2
- str r0, [r4, r1]
- mov r5, #1
-_0223E1BC:
- ldr r0, [sp, #0x14]
- ldr r0, [r0]
- add r1, r0, #1
- ldr r0, [sp, #0x14]
- cmp r5, #0
- str r1, [r0]
- bne _0223E1D0
- ldr r7, [r4, #0x14]
- cmp r7, #2
- blt _0223E14A
-_0223E1D0:
- cmp r5, #0
- bne _0223E24E
- ldr r0, [r4, #0x10]
- add r0, r0, #1
- str r0, [r4, #0x10]
- mov r0, #0
- str r0, [r4, #0x14]
- b _0223E668
-_0223E1E0:
- ldr r6, [r4, #0x14]
- cmp r6, #2
- bge _0223E24A
- add r7, r4, #0
- add r7, #0x14
-_0223E1EA:
- lsl r0, r6, #2
- mov r1, #0x6f
- add r0, r4, r0
- lsl r1, r1, #2
- ldr r2, [r0, r1]
- mov r1, #3
- lsl r1, r1, #8
- tst r1, r2
- beq _0223E23A
- mov r1, #0x6f
- lsl r1, r1, #2
- ldr r2, [r0, r1]
- sub r1, #0xbc
- sub r2, r2, r1
- mov r1, #0x6f
- lsl r1, r1, #2
- str r2, [r0, r1]
- ldr r1, [r0, r1]
- mov r0, #3
- lsl r0, r0, #8
- tst r0, r1
- bne _0223E23A
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xe9
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add r1, r4, #0
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- ldr r0, [sp]
- add r2, r6, #0
- bl MOD11_0224C150
- mov r1, #0x46
- lsl r1, r1, #2
- str r0, [r4, r1]
- mov r5, #1
-_0223E23A:
- ldr r0, [r7]
- add r0, r0, #1
- str r0, [r7]
- cmp r5, #0
- bne _0223E24A
- ldr r6, [r4, #0x14]
- cmp r6, #2
- blt _0223E1EA
-_0223E24A:
- cmp r5, #0
- beq _0223E250
-_0223E24E:
- b _0223E668
-_0223E250:
- ldr r0, [r4, #0x10]
- add r0, r0, #1
- str r0, [r4, #0x10]
- mov r0, #0
- str r0, [r4, #0x14]
- b _0223E668
-_0223E25C:
- ldr r6, [r4, #0x14]
- cmp r6, #2
- bge _0223E2C8
- add r7, r4, #0
- add r7, #0x14
-_0223E266:
- lsl r0, r6, #2
- mov r1, #0x6f
- add r0, r4, r0
- lsl r1, r1, #2
- ldr r2, [r0, r1]
- mov r1, #7
- lsl r1, r1, #0xc
- tst r1, r2
- beq _0223E2B8
- mov r1, #0x6f
- lsl r1, r1, #2
- ldr r2, [r0, r1]
- mov r1, #1
- lsl r1, r1, #0xc
- sub r2, r2, r1
- mov r1, #0x6f
- lsl r1, r1, #2
- str r2, [r0, r1]
- ldr r1, [r0, r1]
- mov r0, #7
- lsl r0, r0, #0xc
- tst r0, r1
- bne _0223E2B8
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xfa
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add r1, r4, #0
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- ldr r0, [sp]
- add r2, r6, #0
- bl MOD11_0224C150
- mov r1, #0x46
- lsl r1, r1, #2
- str r0, [r4, r1]
- mov r5, #1
-_0223E2B8:
- ldr r0, [r7]
- add r0, r0, #1
- str r0, [r7]
- cmp r5, #0
- bne _0223E2C8
- ldr r6, [r4, #0x14]
- cmp r6, #2
- blt _0223E266
-_0223E2C8:
- cmp r5, #0
- bne _0223E392
- ldr r0, [r4, #0x10]
- add r0, r0, #1
- str r0, [r4, #0x10]
- mov r0, #0
- str r0, [r4, #0x14]
- b _0223E668
-_0223E2D8:
- ldr r0, [r4, #0x14]
- ldr r1, [sp, #4]
- cmp r0, r1
- bge _0223E38E
- add r6, r4, #0
- mov r7, #2
- add r6, #0x14
-_0223E2E6:
- add r1, r4, r0
- ldr r0, _0223E34C ; =0x000021EC
- ldrb r2, [r1, r0]
- mov r0, #0x63
- lsl r0, r0, #2
- add r1, r4, r2
- ldrb r0, [r1, r0]
- cmp r0, #0
- beq _0223E37C
- mov r0, #0x63
- lsl r0, r0, #2
- ldrb r0, [r1, r0]
- sub r3, r0, #1
- mov r0, #0x63
- lsl r0, r0, #2
- strb r3, [r1, r0]
- ldrb r0, [r1, r0]
- cmp r0, #0
- bne _0223E37C
- mov r0, #0xc0
- mul r0, r2
- ldr r3, _0223E350 ; =0x00002D8C
- add r0, r4, r0
- ldr r3, [r0, r3]
- cmp r3, #0
- beq _0223E37C
- mov r3, #0x46
- lsl r3, r3, #2
- str r2, [r4, r3]
- add r3, r4, #0
- add r3, #0xf5
- strb r7, [r3]
- add r5, r4, #0
- ldr r3, _0223E354 ; =0x00000215
- add r5, #0xf6
- strh r3, [r5]
- sub r3, #0x5d
- ldrb r1, [r1, r3]
- lsl r1, r1, #8
- orr r2, r1
- add r1, r4, #0
- add r1, #0xf8
- str r2, [r1]
- ldr r1, _0223E358 ; =0x00002D90
- b _0223E35C
- .align 2, 0
-_0223E340: .word 0xFFFFFC7F
-_0223E344: .word 0xFFFF8FFF
-_0223E348: .word 0xFFF1FFFF
-_0223E34C: .word 0x000021EC
-_0223E350: .word 0x00002D8C
-_0223E354: .word 0x00000215
-_0223E358: .word 0x00002D90
-_0223E35C:
- ldr r0, [r0, r1]
- add r1, r7, #0
- bl MOD11_022476C0
- ldr r1, _0223E688 ; =0x0000215C
- mov r2, #0x88
- str r0, [r4, r1]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- mov r5, #1
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
-_0223E37C:
- ldr r0, [r6]
- add r0, r0, #1
- str r0, [r6]
- cmp r5, #0
- bne _0223E38E
- ldr r0, [r4, #0x14]
- ldr r1, [sp, #4]
- cmp r0, r1
- blt _0223E2E6
-_0223E38E:
- cmp r5, #0
- beq _0223E394
-_0223E392:
- b _0223E668
-_0223E394:
- ldr r0, [r4, #0x10]
- add r0, r0, #1
- str r0, [r4, #0x10]
- mov r0, #0
- str r0, [r4, #0x14]
- b _0223E668
-_0223E3A0:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r2, #3
- tst r2, r1
- beq _0223E428
- mov r2, #2
- tst r1, r2
- beq _0223E3D6
- add r0, r4, #0
- ldr r1, _0223E68C ; =0x00000321
- add r0, #0xf6
- strh r1, [r0]
- add r0, r4, #0
- mov r1, #0
- add r0, #0xf5
- strb r1, [r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x68
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- b _0223E41E
-_0223E3D6:
- add r1, r0, #4
- ldr r1, [r4, r1]
- sub r2, r1, #1
- add r1, r0, #4
- str r2, [r4, r1]
- add r0, r0, #4
- ldr r0, [r4, r0]
- cmp r0, #0
- bne _0223E3FC
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xea
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- b _0223E41E
-_0223E3FC:
- add r0, r4, #0
- ldr r1, _0223E68C ; =0x00000321
- add r0, #0xf6
- strh r1, [r0]
- add r0, r4, #0
- mov r1, #0
- add r0, #0xf5
- strb r1, [r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x68
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
-_0223E41E:
- mov r0, #0x4e
- mov r1, #0x13
- lsl r0, r0, #2
- str r1, [r4, r0]
- mov r5, #1
-_0223E428:
- ldr r0, [r4, #0x10]
- add r0, r0, #1
- str r0, [r4, #0x10]
- b _0223E668
-_0223E430:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r2, #0xc
- tst r2, r1
- beq _0223E4B8
- mov r2, #8
- tst r1, r2
- beq _0223E466
- add r0, r4, #0
- ldr r1, _0223E690 ; =0x00000325
- add r0, #0xf6
- strh r1, [r0]
- add r0, r4, #0
- mov r1, #0
- add r0, #0xf5
- strb r1, [r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x68
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- b _0223E4AE
-_0223E466:
- add r1, r0, #4
- ldr r1, [r4, r1]
- sub r2, r1, #1
- add r1, r0, #4
- str r2, [r4, r1]
- add r0, r0, #4
- ldr r0, [r4, r0]
- cmp r0, #0
- bne _0223E48C
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xeb
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- b _0223E4AE
-_0223E48C:
- add r0, r4, #0
- ldr r1, _0223E690 ; =0x00000325
- add r0, #0xf6
- strh r1, [r0]
- add r0, r4, #0
- mov r1, #0
- add r0, #0xf5
- strb r1, [r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x68
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
-_0223E4AE:
- mov r0, #0x4e
- mov r1, #0x15
- lsl r0, r0, #2
- str r1, [r4, r0]
- mov r5, #1
-_0223E4B8:
- ldr r0, [r4, #0x10]
- add r0, r0, #1
- str r0, [r4, #0x10]
- b _0223E668
-_0223E4C0:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r2, #0x30
- tst r2, r1
- beq _0223E54C
- mov r2, #0x20
- tst r1, r2
- beq _0223E4F8
- mov r1, #0xca
- add r0, r4, #0
- lsl r1, r1, #2
- add r0, #0xf6
- strh r1, [r0]
- add r0, r4, #0
- mov r1, #0
- add r0, #0xf5
- strb r1, [r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x68
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- b _0223E542
-_0223E4F8:
- add r1, r0, #4
- ldr r1, [r4, r1]
- sub r2, r1, #1
- add r1, r0, #4
- str r2, [r4, r1]
- add r0, r0, #4
- ldr r0, [r4, r0]
- cmp r0, #0
- bne _0223E51E
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xec
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- b _0223E542
-_0223E51E:
- mov r1, #0xca
- add r0, r4, #0
- lsl r1, r1, #2
- add r0, #0xf6
- strh r1, [r0]
- add r0, r4, #0
- mov r1, #0
- add r0, #0xf5
- strb r1, [r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x68
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
-_0223E542:
- mov r0, #0x4e
- mov r1, #0x16
- lsl r0, r0, #2
- str r1, [r4, r0]
- mov r5, #1
-_0223E54C:
- ldr r0, [r4, #0x10]
- add r0, r0, #1
- str r0, [r4, #0x10]
- b _0223E668
-_0223E554:
- mov r0, #6
- lsl r0, r0, #6
- ldr r2, [r4, r0]
- mov r1, #0xc0
- add r0, r2, #0
- tst r0, r1
- beq _0223E5E2
- mov r0, #0x80
- tst r0, r2
- beq _0223E58C
- add r0, r4, #0
- ldr r1, _0223E694 ; =0x0000032B
- add r0, #0xf6
- strh r1, [r0]
- add r0, r4, #0
- mov r1, #0
- add r0, #0xf5
- strb r1, [r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x68
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- b _0223E5D8
-_0223E58C:
- add r0, r1, #0
- add r0, #0xc4
- ldr r0, [r4, r0]
- sub r2, r0, #1
- add r0, r1, #0
- add r0, #0xc4
- add r1, #0xc4
- str r2, [r4, r0]
- ldr r0, [r4, r1]
- cmp r0, #0
- bne _0223E5B6
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xed
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- b _0223E5D8
-_0223E5B6:
- add r0, r4, #0
- ldr r1, _0223E694 ; =0x0000032B
- add r0, #0xf6
- strh r1, [r0]
- add r0, r4, #0
- mov r1, #0
- add r0, #0xf5
- strb r1, [r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x68
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
-_0223E5D8:
- mov r0, #0x4e
- mov r1, #0x14
- lsl r0, r0, #2
- str r1, [r4, r0]
- mov r5, #1
-_0223E5E2:
- ldr r0, [r4, #0x10]
- add r0, r0, #1
- str r0, [r4, #0x10]
- b _0223E668
-_0223E5EA:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r0, #2
- lsl r0, r0, #0xe
- tst r0, r1
- beq _0223E624
- add r0, r4, #0
- ldr r1, _0223E698 ; =0x0000032D
- add r0, #0xf6
- strh r1, [r0]
- add r0, r4, #0
- mov r1, #0
- add r0, #0xf5
- strb r1, [r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x68
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- mov r1, #0x12
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x4e
- lsl r0, r0, #2
- str r1, [r4, r0]
- mov r5, #1
-_0223E624:
- ldr r0, [r4, #0x10]
- add r0, r0, #1
- str r0, [r4, #0x10]
- b _0223E668
-_0223E62C:
- mov r1, #6
- lsl r1, r1, #6
- ldr r3, [r4, r1]
- mov r2, #7
- lsl r2, r2, #0xc
- add r0, r3, #0
- tst r0, r2
- beq _0223E65E
- mov r0, #1
- lsl r0, r0, #0xc
- sub r0, r3, r0
- str r0, [r4, r1]
- ldr r0, [r4, r1]
- tst r0, r2
- bne _0223E65E
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xee
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- mov r5, #1
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
-_0223E65E:
- ldr r0, [r4, #0x10]
- add r0, r0, #1
- str r0, [r4, #0x10]
- b _0223E668
-_0223E666:
- mov r5, #2
-_0223E668:
- cmp r5, #0
- bne _0223E66E
- b _0223DEC8
-_0223E66E:
- cmp r5, #1
- bne _0223E678
- ldr r0, [sp]
- bl MOD11_0225679C
-_0223E678:
- cmp r5, #2
- bne _0223E684
- mov r0, #0
- str r0, [r4, #0x10]
- mov r0, #0xa
- str r0, [r4, #8]
-_0223E684:
- add sp, #0x3c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0223E688: .word 0x0000215C
-_0223E68C: .word 0x00000321
-_0223E690: .word 0x00000325
-_0223E694: .word 0x0000032B
-_0223E698: .word 0x0000032D
-
- thumb_func_start MOD11_0223E69C
-MOD11_0223E69C: ; 0x0223E69C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x18
- add r4, r1, #0
- mov r1, #0
- str r1, [sp, #0x10]
- str r0, [sp, #4]
- bl MOD11_0222FF84
- ldr r1, [r4, #8]
- str r0, [sp, #0xc]
- add r0, r4, #0
- add r2, r1, #0
- mov r3, #1
- bl MOD11_0224246C
- cmp r0, #1
- beq _0223E6D8
- ldr r1, [r4, #8]
- add r0, r4, #0
- add r2, r1, #0
- bl MOD11_02242510
- cmp r0, #1
- beq _0223E6D8
- ldr r0, [sp, #4]
- add r1, r4, #0
- bl MOD11_02241FD8
- cmp r0, #1
- bne _0223E6DC
-_0223E6D8:
- bl _0223F0B2
-_0223E6DC:
- ldr r1, [r4, #0x1c]
- ldr r0, [sp, #0xc]
- cmp r1, r0
- blt _0223E6E8
- bl _0223F0A8
-_0223E6E8:
- ldr r0, _0223EA14 ; =0x000021EC
- add r1, r4, r1
- ldrb r5, [r1, r0]
- add r0, r5, #0
- bl MaskOfFlagNo
- ldr r1, _0223EA18 ; =0x00003108
- ldrb r1, [r4, r1]
- tst r0, r1
- beq _0223E706
- ldr r0, [r4, #0x1c]
- add r0, r0, #1
- str r0, [r4, #0x1c]
- bl _0223F09C
-_0223E706:
- ldr r0, [r4, #0x18]
- cmp r0, #0x1a
- bls _0223E710
- bl _0223F08C
-_0223E710:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0223E71C: ; jump table
- .short _0223E752 - _0223E71C - 2 ; case 0
- .short _0223E7BA - _0223E71C - 2 ; case 1
- .short _0223E83C - _0223E71C - 2 ; case 2
- .short _0223E856 - _0223E71C - 2 ; case 3
- .short _0223E872 - _0223E71C - 2 ; case 4
- .short _0223E88C - _0223E71C - 2 ; case 5
- .short _0223E8F6 - _0223E71C - 2 ; case 6
- .short _0223E948 - _0223E71C - 2 ; case 7
- .short _0223E9C8 - _0223E71C - 2 ; case 8
- .short _0223EA04 - _0223E71C - 2 ; case 9
- .short _0223EA72 - _0223E71C - 2 ; case 10
- .short _0223EAB0 - _0223E71C - 2 ; case 11
- .short _0223EB2A - _0223E71C - 2 ; case 12
- .short _0223EBAE - _0223E71C - 2 ; case 13
- .short _0223ECA6 - _0223E71C - 2 ; case 14
- .short _0223ED0E - _0223E71C - 2 ; case 15
- .short _0223ED90 - _0223E71C - 2 ; case 16
- .short _0223EE56 - _0223E71C - 2 ; case 17
- .short _0223EE74 - _0223E71C - 2 ; case 18
- .short _0223EEBA - _0223E71C - 2 ; case 19
- .short _0223EF06 - _0223E71C - 2 ; case 20
- .short _0223EF50 - _0223E71C - 2 ; case 21
- .short _0223EF9A - _0223E71C - 2 ; case 22
- .short _0223EFE4 - _0223E71C - 2 ; case 23
- .short _0223F034 - _0223E71C - 2 ; case 24
- .short _0223F068 - _0223E71C - 2 ; case 25
- .short _0223F082 - _0223E71C - 2 ; case 26
-_0223E752:
- mov r6, #0xc0
- add r0, r5, #0
- mul r0, r6
- add r3, r4, r0
- mov r0, #0xb7
- lsl r0, r0, #6
- mov r1, #1
- ldr r2, [r3, r0]
- lsl r1, r1, #0xa
- tst r1, r2
- beq _0223E7B0
- add r1, r0, #0
- sub r1, #0x34
- ldr r2, [r3, r1]
- add r1, r0, #0
- sub r1, #0x30
- ldr r1, [r3, r1]
- cmp r2, r1
- beq _0223E7B0
- cmp r2, #0
- beq _0223E7B0
- add r0, #0xc
- ldr r0, [r3, r0]
- lsl r0, r0, #0xd
- lsr r0, r0, #0x1d
- beq _0223E796
- add r6, #0x58
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xef
- str r5, [r4, r6]
- bl MOD11_022431DC
- b _0223E7A4
-_0223E796:
- add r6, #0x58
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x89
- str r5, [r4, r6]
- bl MOD11_022431DC
-_0223E7A4:
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223E7B0:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- bl _0223F08C
-_0223E7BA:
- mov r0, #0xc0
- add r1, r5, #0
- mul r1, r0
- add r6, r4, r1
- mov r1, #0xb7
- lsl r1, r1, #6
- mov r2, #1
- ldr r3, [r6, r1]
- lsl r2, r2, #0x18
- tst r2, r3
- beq _0223E832
- add r2, r1, #0
- sub r2, #0x34
- ldr r3, [r6, r2]
- add r2, r1, #0
- sub r2, #0x30
- ldr r2, [r6, r2]
- cmp r3, r2
- beq _0223E832
- cmp r3, #0
- beq _0223E832
- add r2, r1, #0
- add r2, #0xc
- ldr r2, [r6, r2]
- lsl r2, r2, #0xd
- lsr r2, r2, #0x1d
- beq _0223E800
- add r0, #0x58
- str r5, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xef
- bl MOD11_022431DC
- b _0223E826
-_0223E800:
- add r2, r0, #0
- add r2, #0x58
- str r5, [r4, r2]
- add r2, r0, #0
- add r2, #0xc8
- add r0, #0x64
- sub r1, #0x30
- str r2, [r4, r0]
- ldr r0, [r6, r1]
- mov r1, #0x10
- bl MOD11_022476C0
- ldr r1, _0223EA1C ; =0x0000215C
- mov r2, #0xa9
- str r0, [r4, r1]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
-_0223E826:
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223E832:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- bl _0223F08C
-_0223E83C:
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_022475B8
- cmp r0, #1
- bne _0223E84C
- mov r0, #1
- str r0, [sp, #0x10]
-_0223E84C:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- bl _0223F08C
-_0223E856:
- ldr r0, [sp, #4]
- add r1, r4, #0
- add r2, r5, #0
- bl MOD11_02248C0C
- cmp r0, #1
- bne _0223E868
- mov r0, #1
- str r0, [sp, #0x10]
-_0223E868:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- bl _0223F08C
-_0223E872:
- ldr r0, [sp, #4]
- add r1, r4, #0
- add r2, r5, #0
- bl MOD11_022492A4
- cmp r0, #1
- bne _0223E884
- mov r0, #1
- str r0, [sp, #0x10]
-_0223E884:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223E88C:
- mov r3, #0xc0
- add r0, r5, #0
- mul r0, r3
- mov r2, #0xb7
- add r6, r4, r0
- lsl r2, r2, #6
- ldr r0, [r6, r2]
- mov r1, #4
- tst r1, r0
- beq _0223E8EE
- mov r1, #3
- and r0, r1
- add r1, r0, #0
- mul r1, r3
- add r0, r4, r1
- sub r2, #0x34
- ldr r0, [r0, r2]
- cmp r0, #0
- beq _0223E8EE
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x62
- beq _0223E8EE
- ldr r0, _0223EA20 ; =0x00002D8C
- ldr r1, [r6, r0]
- cmp r1, #0
- beq _0223E8EE
- add r0, #0x34
- ldr r1, [r6, r0]
- mov r0, #3
- and r1, r0
- mov r0, #0x47
- lsl r0, r0, #2
- str r1, [r4, r0]
- add r0, r0, #4
- str r5, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x45
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223E8EE:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223E8F6:
- mov r2, #0xc0
- add r0, r5, #0
- mul r0, r2
- ldr r3, _0223EA24 ; =0x00002DAC
- add r0, r4, r0
- ldr r1, [r0, r3]
- mov r6, #8
- tst r1, r6
- beq _0223E940
- add r1, r3, #0
- sub r1, #0x20
- ldr r1, [r0, r1]
- cmp r1, #0
- beq _0223E940
- add r2, #0x58
- str r5, [r4, r2]
- sub r3, #0x1c
- ldr r1, [r0, r3]
- add r0, r6, #0
- sub r0, #9
- mul r0, r1
- add r1, r6, #0
- bl MOD11_022476C0
- ldr r1, _0223EA1C ; =0x0000215C
- mov r2, #0x17
- str r0, [r4, r1]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223E940:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223E948:
- mov r0, #0xc0
- mul r0, r5
- ldr r1, _0223EA24 ; =0x00002DAC
- add r6, r4, r0
- ldr r0, [r6, r1]
- mov r2, #0x80
- tst r0, r2
- beq _0223E9C0
- add r0, r1, #0
- sub r0, #0x20
- ldr r0, [r6, r0]
- cmp r0, #0
- beq _0223E9C0
- add r2, #0x98
- str r5, [r4, r2]
- sub r1, #0x1c
- ldr r0, [r6, r1]
- mov r1, #0x10
- bl MOD11_022476C0
- ldr r1, _0223EA1C ; =0x0000215C
- str r0, [r4, r1]
- ldr r1, _0223EA24 ; =0x00002DAC
- mov r0, #0xf
- ldr r2, [r6, r1]
- lsl r0, r0, #8
- add r3, r2, #0
- and r3, r0
- cmp r3, r0
- beq _0223E98C
- mov r0, #1
- lsl r0, r0, #8
- add r0, r2, r0
- str r0, [r6, r1]
-_0223E98C:
- ldr r2, _0223EA24 ; =0x00002DAC
- ldr r0, _0223EA1C ; =0x0000215C
- ldr r3, [r6, r2]
- mov r2, #0xf
- lsl r2, r2, #8
- and r2, r3
- ldr r1, [r4, r0]
- lsr r2, r2, #8
- mul r2, r1
- str r2, [r4, r0]
- mov r1, #0
- ldr r2, [r4, r0]
- mvn r1, r1
- mul r1, r2
- str r1, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x17
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223E9C0:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223E9C8:
- mov r0, #0xc0
- add r1, r5, #0
- mul r1, r0
- add r6, r4, r1
- ldr r1, _0223EA24 ; =0x00002DAC
- mov r2, #0x10
- ldr r3, [r6, r1]
- tst r2, r3
- beq _0223E9FC
- sub r1, #0x20
- ldr r1, [r6, r1]
- cmp r1, #0
- beq _0223E9FC
- add r0, #0x58
- str r5, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x1a
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223E9FC:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223EA04:
- mov r6, #0xc0
- add r0, r5, #0
- mul r0, r6
- add r3, r4, r0
- ldr r7, _0223EA28 ; =0x00002DB0
- ldr r0, _0223EA18 ; =0x00003108
- b _0223EA2C
- nop
-_0223EA14: .word 0x000021EC
-_0223EA18: .word 0x00003108
-_0223EA1C: .word 0x0000215C
-_0223EA20: .word 0x00002D8C
-_0223EA24: .word 0x00002DAC
-_0223EA28: .word 0x00002DB0
-_0223EA2C:
- ldr r2, [r3, r7]
- lsl r0, r0, #0x18
- tst r0, r2
- beq _0223EA6A
- add r0, r7, #0
- sub r0, #0x24
- ldr r0, [r3, r0]
- cmp r0, #0
- beq _0223EA6A
- sub r0, r7, #4
- ldr r1, [r3, r0]
- mov r0, #7
- tst r0, r1
- beq _0223EA64
- add r6, #0x58
- str r5, [r4, r6]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x5e
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
- b _0223EA6A
-_0223EA64:
- ldr r0, _0223ED9C ; =0xF7FFFFFF
- and r0, r2
- str r0, [r3, r7]
-_0223EA6A:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223EA72:
- mov r0, #0xc0
- add r1, r5, #0
- mul r1, r0
- add r6, r4, r1
- ldr r1, _0223EDA0 ; =0x00002DB0
- mov r2, #1
- ldr r3, [r6, r1]
- lsl r2, r2, #0x1c
- tst r2, r3
- beq _0223EAA8
- sub r1, #0x24
- ldr r1, [r6, r1]
- cmp r1, #0
- beq _0223EAA8
- add r0, #0x58
- str r5, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x62
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223EAA8:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223EAB0:
- mov r1, #0xc0
- add r0, r5, #0
- mul r0, r1
- ldr r2, _0223EDA0 ; =0x00002DB0
- add r6, r4, r0
- ldr r3, [r6, r2]
- mov r7, #0xe
- lsl r7, r7, #0xc
- add r0, r3, #0
- tst r0, r7
- beq _0223EB22
- add r0, r2, #0
- sub r0, #0x24
- ldr r0, [r6, r0]
- cmp r0, #0
- beq _0223EB22
- mov r0, #2
- lsl r0, r0, #0xc
- sub r0, r3, r0
- str r0, [r6, r2]
- ldr r0, [r6, r2]
- tst r0, r7
- beq _0223EAFE
- sub r2, #0x20
- ldr r2, [r6, r2]
- sub r1, #0xc1
- add r0, r2, #0
- mul r0, r1
- mov r1, #0x10
- bl MOD11_022476C0
- ldr r1, _0223EDA4 ; =0x0000215C
- mov r2, #0x3b
- str r0, [r4, r1]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- b _0223EB08
-_0223EAFE:
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x3c
- bl MOD11_022431DC
-_0223EB08:
- ldr r0, _0223EDA8 ; =0x00002DEA
- ldrh r1, [r6, r0]
- mov r0, #0x49
- lsl r0, r0, #2
- str r1, [r4, r0]
- sub r0, #0xc
- str r5, [r4, r0]
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223EB22:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223EB2A:
- mov r0, #0x7b
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r4, #0
- mov r2, #4
- add r3, r5, #0
- bl MOD11_02246870
- mov r1, #0x4e
- lsl r1, r1, #2
- str r0, [r4, r1]
- mov r0, #0xc0
- mul r0, r5
- add r6, r4, r0
- ldr r0, _0223EDAC ; =0x00002DAC
- ldr r1, [r6, r0]
- mov r0, #7
- tst r0, r1
- beq _0223EBA6
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x62
- beq _0223EBA6
- ldr r1, _0223EDB0 ; =0x00002D8C
- ldr r0, [r6, r1]
- cmp r0, #0
- beq _0223EBA6
- mov r0, #0x4e
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- cmp r0, #0
- beq _0223EBA6
- add r0, r1, #4
- ldr r1, [r6, r0]
- mov r0, #0
- mvn r0, r0
- mul r0, r1
- mov r1, #8
- bl MOD11_022476C0
- ldr r1, _0223EDA4 ; =0x0000215C
- ldr r2, _0223EDB4 ; =0x00000107
- str r0, [r4, r1]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, _0223EDB8 ; =0x0000213C
- mov r1, #0x40
- ldr r2, [r4, r0]
- orr r2, r1
- str r2, [r4, r0]
- add r1, #0xd8
- str r5, [r4, r1]
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223EBA6:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223EBAE:
- mov r0, #0xc0
- mul r0, r5
- add r7, r4, r0
- ldr r0, _0223EDA0 ; =0x00002DB0
- ldr r1, [r7, r0]
- mov r0, #0x70
- tst r0, r1
- beq _0223EC96
- ldr r0, [sp, #0xc]
- mov r6, #0
- cmp r0, #0
- ble _0223EC08
-_0223EBC6:
- mov r0, #0xc0
- mul r0, r6
- add r1, r4, r0
- ldr r0, _0223EDAC ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #7
- tst r0, r1
- beq _0223EBFC
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_02246D1C
- cmp r0, #0x2b
- beq _0223EBFC
- mov r0, #0x46
- lsl r0, r0, #2
- str r6, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x13
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- b _0223EC08
-_0223EBFC:
- add r0, r6, #1
- lsl r0, r0, #0x18
- lsr r6, r0, #0x18
- ldr r0, [sp, #0xc]
- cmp r6, r0
- blt _0223EBC6
-_0223EC08:
- ldr r0, [sp, #0xc]
- cmp r6, r0
- beq _0223EC14
- mov r0, #2
- str r0, [sp, #0x10]
- b _0223F08C
-_0223EC14:
- ldr r0, _0223EDA0 ; =0x00002DB0
- ldr r1, [r7, r0]
- sub r1, #0x10
- str r1, [r7, r0]
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02246764
- cmp r0, #0
- ldr r2, _0223EDA0 ; =0x00002DB0
- beq _0223EC4E
- ldr r1, [r7, r2]
- mov r0, #0x70
- bic r1, r0
- mov r6, #0xf1
- add r0, r5, #0
- str r1, [r7, r2]
- bl MaskOfFlagNo
- add r3, r6, #0
- add r3, #0x8f
- lsl r2, r0, #8
- add r0, r6, #0
- sub r0, #0xf2
- ldr r1, [r4, r3]
- eor r0, r2
- and r0, r1
- str r0, [r4, r3]
- b _0223EC7A
-_0223EC4E:
- ldr r1, [r7, r2]
- mov r0, #0x70
- tst r0, r1
- beq _0223EC5A
- mov r6, #0xf0
- b _0223EC7A
-_0223EC5A:
- mov r0, #0x70
- bic r1, r0
- mov r6, #0xf1
- add r0, r5, #0
- str r1, [r7, r2]
- bl MaskOfFlagNo
- add r3, r6, #0
- add r3, #0x8f
- lsl r2, r0, #8
- add r0, r6, #0
- sub r0, #0xf2
- ldr r1, [r4, r3]
- eor r0, r2
- and r0, r1
- str r0, [r4, r3]
-_0223EC7A:
- mov r0, #0x46
- lsl r0, r0, #2
- str r5, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- add r2, r6, #0
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223EC96:
- ldr r0, [sp, #0x10]
- cmp r0, #2
- bne _0223EC9E
- b _0223F08C
-_0223EC9E:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223ECA6:
- mov r2, #0xc0
- add r0, r5, #0
- mul r0, r2
- add r6, r4, r0
- ldr r0, _0223EDA0 ; =0x00002DB0
- lsl r2, r2, #4
- ldr r1, [r6, r0]
- tst r2, r1
- beq _0223ED06
- mov r2, #1
- lsl r2, r2, #0xa
- sub r1, r1, r2
- str r1, [r6, r0]
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02246764
- cmp r0, #0
- beq _0223ECD8
- ldr r1, _0223EDA0 ; =0x00002DB0
- ldr r0, _0223EDBC ; =0xFFFFF3FF
- ldr r2, [r6, r1]
- and r0, r2
- str r0, [r6, r1]
- b _0223ED06
-_0223ECD8:
- ldr r0, _0223EDA0 ; =0x00002DB0
- ldr r1, [r6, r0]
- mov r0, #3
- lsl r0, r0, #0xa
- tst r0, r1
- bne _0223ED06
- mov r0, #7
- tst r0, r1
- bne _0223ED06
- add r0, r4, #0
- add r0, #0x94
- str r5, [r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x33
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223ED06:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223ED0E:
- mov r0, #0xc0
- add r6, r5, #0
- mul r6, r0
- add r0, r4, r6
- ldr r1, _0223EDC0 ; =0x00002DE8
- mov ip, r0
- ldrh r3, [r0, r1]
- cmp r3, #0
- beq _0223ED88
- ldr r7, _0223EDC4 ; =0x00002D4C
- mov r2, #0
- mov r1, ip
-_0223ED26:
- ldrh r0, [r1, r7]
- cmp r3, r0
- beq _0223ED34
- add r2, r2, #1
- add r1, r1, #2
- cmp r2, #4
- blt _0223ED26
-_0223ED34:
- cmp r2, #4
- bne _0223ED44
- ldr r0, _0223EDC8 ; =0x00002DC8
- add r1, r4, r0
- ldr r2, [r1, r6]
- mov r0, #7
- bic r2, r0
- str r2, [r1, r6]
-_0223ED44:
- ldr r1, _0223EDC8 ; =0x00002DC8
- add r0, r4, r6
- ldr r0, [r0, r1]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1d
- beq _0223ED64
- add r2, r4, r1
- ldr r1, [r2, r6]
- mov r3, #7
- bic r1, r3
- sub r3, r0, #1
- mov r0, #7
- and r0, r3
- orr r0, r1
- str r0, [r2, r6]
- b _0223ED88
-_0223ED64:
- mov r2, #0
- add r1, #0x20
- mov r0, ip
- strh r2, [r0, r1]
- mov r0, #0x46
- lsl r0, r0, #2
- str r5, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x48
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223ED88:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223ED90:
- mov r0, #0xc0
- add r6, r5, #0
- mul r6, r0
- add r0, r4, r6
- ldr r1, _0223EDCC ; =0x00002DEC
- b _0223EDD0
- .align 2, 0
-_0223ED9C: .word 0xF7FFFFFF
-_0223EDA0: .word 0x00002DB0
-_0223EDA4: .word 0x0000215C
-_0223EDA8: .word 0x00002DEA
-_0223EDAC: .word 0x00002DAC
-_0223EDB0: .word 0x00002D8C
-_0223EDB4: .word 0x00000107
-_0223EDB8: .word 0x0000213C
-_0223EDBC: .word 0xFFFFF3FF
-_0223EDC0: .word 0x00002DE8
-_0223EDC4: .word 0x00002D4C
-_0223EDC8: .word 0x00002DC8
-_0223EDCC: .word 0x00002DEC
-_0223EDD0:
- str r0, [sp, #8]
- ldrh r2, [r0, r1]
- cmp r2, #0
- beq _0223EE4E
- ldr r7, _0223F0B8 ; =0x00002D4C
- mov r3, #0
- add r1, r0, #0
-_0223EDDE:
- ldrh r0, [r1, r7]
- cmp r2, r0
- beq _0223EDEC
- add r3, r3, #1
- add r1, r1, #2
- cmp r3, #4
- blt _0223EDDE
-_0223EDEC:
- cmp r3, #4
- beq _0223EDFE
- beq _0223EE0A
- ldr r0, [sp, #8]
- add r1, r0, r3
- ldr r0, _0223F0BC ; =0x00002D6C
- ldrb r0, [r1, r0]
- cmp r0, #0
- bne _0223EE0A
-_0223EDFE:
- ldr r0, _0223F0C0 ; =0x00002DC8
- add r2, r4, r0
- ldr r1, [r2, r6]
- mov r0, #0x38
- bic r1, r0
- str r1, [r2, r6]
-_0223EE0A:
- ldr r1, _0223F0C0 ; =0x00002DC8
- add r0, r4, r6
- ldr r0, [r0, r1]
- lsl r0, r0, #0x1a
- lsr r2, r0, #0x1d
- beq _0223EE2A
- add r1, r4, r1
- sub r2, r2, #1
- lsl r2, r2, #0x1d
- ldr r0, [r1, r6]
- mov r3, #0x38
- bic r0, r3
- lsr r2, r2, #0x1a
- orr r0, r2
- str r0, [r1, r6]
- b _0223EE4E
-_0223EE2A:
- ldr r0, [sp, #8]
- mov r2, #0
- add r1, #0x24
- strh r2, [r0, r1]
- mov r0, #0x46
- lsl r0, r0, #2
- str r5, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x4a
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223EE4E:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223EE56:
- mov r0, #0xc0
- mul r0, r5
- add r3, r4, r0
- mov r0, #0xb7
- lsl r0, r0, #6
- ldr r2, [r3, r0]
- mov r1, #0x18
- tst r1, r2
- beq _0223EE6C
- sub r2, #8
- str r2, [r3, r0]
-_0223EE6C:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223EE74:
- mov r0, #0xc0
- mul r0, r5
- ldr r2, _0223F0C0 ; =0x00002DC8
- add r5, r4, r0
- ldr r1, [r5, r2]
- lsl r1, r1, #0x18
- lsr r1, r1, #0x1e
- beq _0223EEB2
- add r3, r4, r2
- ldr r6, [r3, r0]
- mov r1, #0xc0
- add r7, r6, #0
- bic r7, r1
- lsl r1, r6, #0x18
- lsr r1, r1, #0x1e
- sub r1, r1, #1
- lsl r1, r1, #0x1e
- lsr r1, r1, #0x18
- orr r1, r7
- str r1, [r3, r0]
- ldr r0, [r3, r0]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1e
- bne _0223EEB2
- add r0, r2, #0
- sub r0, #8
- ldr r1, [r5, r0]
- ldr r0, _0223F0C4 ; =0xFFFFFDFF
- sub r2, #8
- and r0, r1
- str r0, [r5, r2]
-_0223EEB2:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223EEBA:
- ldr r0, _0223F0C0 ; =0x00002DC8
- mov r2, #0xc0
- add r3, r5, #0
- mul r3, r2
- add r1, r4, r0
- ldr r7, [r1, r3]
- lsl r0, r7, #0x15
- lsr r6, r0, #0x1d
- beq _0223EEFE
- ldr r0, _0223F0C8 ; =0xFFFFF8FF
- and r7, r0
- sub r0, r6, #1
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x15
- orr r0, r7
- str r0, [r1, r3]
- ldr r0, [r1, r3]
- lsl r0, r0, #0x15
- lsr r0, r0, #0x1d
- bne _0223EEFE
- add r0, r2, #0
- add r0, #0x58
- str r5, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- add r2, #0x60
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223EEFE:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223EF06:
- ldr r0, _0223F0CC ; =0x00002DCC
- mov r1, #0xc0
- add r3, r5, #0
- mul r3, r1
- add r2, r4, r0
- ldr r7, [r2, r3]
- lsl r0, r7, #0x10
- lsr r6, r0, #0x1d
- beq _0223EF48
- ldr r0, _0223F0D0 ; =0xFFFF1FFF
- and r7, r0
- sub r0, r6, #1
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x10
- orr r0, r7
- str r0, [r2, r3]
- ldr r0, [r2, r3]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x1d
- bne _0223EF48
- add r1, #0x58
- str r5, [r4, r1]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xf2
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223EF48:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223EF50:
- ldr r0, _0223F0CC ; =0x00002DCC
- mov r1, #0xc0
- add r3, r5, #0
- mul r3, r1
- add r2, r4, r0
- ldr r7, [r2, r3]
- lsl r0, r7, #0xd
- lsr r6, r0, #0x1d
- beq _0223EF92
- ldr r0, _0223F0D4 ; =0xFFF8FFFF
- and r7, r0
- sub r0, r6, #1
- lsl r0, r0, #0x1d
- lsr r0, r0, #0xd
- orr r0, r7
- str r0, [r2, r3]
- ldr r0, [r2, r3]
- lsl r0, r0, #0xd
- lsr r0, r0, #0x1d
- bne _0223EF92
- add r1, #0x58
- str r5, [r4, r1]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xf3
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223EF92:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223EF9A:
- ldr r0, _0223F0CC ; =0x00002DCC
- mov r1, #0xc0
- add r3, r5, #0
- mul r3, r1
- add r2, r4, r0
- ldr r7, [r2, r3]
- lsl r0, r7, #0xa
- lsr r6, r0, #0x1d
- beq _0223EFDC
- ldr r0, _0223F0D8 ; =0xFFC7FFFF
- and r7, r0
- sub r0, r6, #1
- lsl r0, r0, #0x1d
- lsr r0, r0, #0xa
- orr r0, r7
- str r0, [r2, r3]
- ldr r0, [r2, r3]
- lsl r0, r0, #0xa
- lsr r0, r0, #0x1d
- bne _0223EFDC
- add r1, #0x58
- str r5, [r4, r1]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xf4
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223EFDC:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223EFE4:
- mov r6, #0xc0
- add r0, r5, #0
- mul r0, r6
- mov r3, #0xb7
- add r1, r4, r0
- lsl r3, r3, #6
- ldr r0, [r1, r3]
- lsl r2, r6, #5
- tst r2, r0
- beq _0223F02C
- mov r2, #2
- lsl r2, r2, #0xa
- sub r0, r0, r2
- str r0, [r1, r3]
- ldr r1, [r1, r3]
- lsl r0, r6, #5
- tst r0, r1
- bne _0223F02C
- add r0, r4, #0
- add r0, #0x94
- str r5, [r0]
- add r0, r4, #0
- mov r1, #4
- add r0, #0x88
- str r1, [r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x12
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223F02C:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223F034:
- ldr r0, [sp, #4]
- add r1, r4, #0
- add r2, r5, #0
- add r3, sp, #0x14
- bl MOD11_022493A0
- cmp r0, #1
- bne _0223F060
- mov r0, #0x46
- lsl r0, r0, #2
- str r5, [r4, r0]
- ldr r2, [sp, #0x14]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #0x10]
-_0223F060:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223F068:
- ldr r0, [sp, #4]
- add r1, r4, #0
- add r2, r5, #0
- bl MOD11_02249A7C
- cmp r0, #1
- bne _0223F07A
- mov r0, #1
- str r0, [sp, #0x10]
-_0223F07A:
- ldr r0, [r4, #0x18]
- add r0, r0, #1
- str r0, [r4, #0x18]
- b _0223F08C
-_0223F082:
- mov r0, #0
- str r0, [r4, #0x18]
- ldr r0, [r4, #0x1c]
- add r0, r0, #1
- str r0, [r4, #0x1c]
-_0223F08C:
- ldr r0, [sp, #0x10]
- cmp r0, #0
- beq _0223F09C
- ldr r0, [sp, #4]
- bl MOD11_0225679C
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
-_0223F09C:
- ldr r1, [r4, #0x1c]
- ldr r0, [sp, #0xc]
- cmp r1, r0
- bge _0223F0A8
- bl _0223E6E8
-_0223F0A8:
- mov r0, #0
- str r0, [r4, #0x18]
- str r0, [r4, #0x1c]
- mov r0, #0xb
- str r0, [r4, #8]
-_0223F0B2:
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0223F0B8: .word 0x00002D4C
-_0223F0BC: .word 0x00002D6C
-_0223F0C0: .word 0x00002DC8
-_0223F0C4: .word 0xFFFFFDFF
-_0223F0C8: .word 0xFFFFF8FF
-_0223F0CC: .word 0x00002DCC
-_0223F0D0: .word 0xFFFF1FFF
-_0223F0D4: .word 0xFFF8FFFF
-_0223F0D8: .word 0xFFC7FFFF
-
- thumb_func_start MOD11_0223F0DC
-MOD11_0223F0DC: ; 0x0223F0DC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r4, r1, #0
- str r0, [sp]
- bl MOD11_0222FF84
- ldr r1, [r4, #8]
- add r7, r0, #0
- add r0, r4, #0
- add r2, r1, #0
- mov r3, #1
- bl MOD11_0224246C
- cmp r0, #1
- bne _0223F0FC
- b _0223F30C
-_0223F0FC:
- ldr r0, [sp]
- bl MOD11_0225679C
- ldr r0, [r4, #0x20]
- cmp r0, #0
- beq _0223F114
- cmp r0, #1
- beq _0223F1FE
- cmp r0, #2
- bne _0223F112
- b _0223F2C4
-_0223F112:
- b _0223F302
-_0223F114:
- ldr r0, [r4, #0x24]
- cmp r0, r7
- bge _0223F1F4
- add r5, r4, #0
- add r5, #0x24
-_0223F11E:
- add r1, r4, r0
- ldr r0, _0223F310 ; =0x000021EC
- ldrb r6, [r1, r0]
- add r0, r6, #0
- bl MaskOfFlagNo
- ldr r1, _0223F314 ; =0x00003108
- ldrb r1, [r4, r1]
- tst r0, r1
- ldr r0, [r5]
- beq _0223F13A
- add r0, r0, #1
- str r0, [r5]
- b _0223F1EE
-_0223F13A:
- add r0, r0, #1
- mov r1, #0x62
- str r0, [r5]
- add r0, r4, r6
- lsl r1, r1, #2
- ldrb r1, [r0, r1]
- cmp r1, #0
- beq _0223F1EE
- mov r1, #0x62
- lsl r1, r1, #2
- ldrb r1, [r0, r1]
- sub r2, r1, #1
- mov r1, #0x62
- lsl r1, r1, #2
- strb r2, [r0, r1]
- ldrb r0, [r0, r1]
- cmp r0, #0
- bne _0223F1EE
- mov r0, #0xc0
- mul r0, r6
- add r1, r4, r0
- ldr r0, _0223F318 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0223F1EE
- ldr r0, [sp]
- add r1, r6, #0
- bl MOD11_02230270
- mov r2, #0x6f
- lsl r2, r2, #2
- add r1, r4, r2
- lsl r5, r0, #2
- ldr r3, [r1, r5]
- mov r0, #0x10
- bic r3, r0
- add r0, r4, #0
- str r3, [r1, r5]
- add r2, #0x1f
- add r0, #0xf6
- strh r2, [r0]
- add r0, r4, #0
- mov r1, #0xa
- add r0, #0xf5
- strb r1, [r0]
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_0224682C
- add r1, r4, #0
- add r1, #0xf8
- str r0, [r1]
- mov r0, #0x19
- lsl r0, r0, #4
- add r1, r4, #0
- add r3, r4, r0
- lsl r2, r6, #1
- ldrh r5, [r3, r2]
- add r1, #0xfc
- str r5, [r1]
- add r1, r0, #0
- sub r1, #0x78
- str r6, [r4, r1]
- lsl r1, r6, #2
- add r5, r0, #0
- add r1, r4, r1
- add r5, #8
- ldr r6, [r1, r5]
- add r5, r0, #0
- sub r5, #0x74
- str r6, [r4, r5]
- ldrh r3, [r3, r2]
- add r2, r0, #0
- sub r2, #0x6c
- str r3, [r4, r2]
- add r0, #0x18
- ldr r1, [r1, r0]
- ldr r0, _0223F31C ; =0x0000215C
- mov r2, #0x79
- str r1, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add sp, #8
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223F1EE:
- ldr r0, [r4, #0x24]
- cmp r0, r7
- blt _0223F11E
-_0223F1F4:
- ldr r0, [r4, #0x20]
- add r0, r0, #1
- str r0, [r4, #0x20]
- mov r0, #0
- str r0, [r4, #0x24]
-_0223F1FE:
- ldr r0, [r4, #0x24]
- cmp r0, r7
- bge _0223F2BA
- add r5, r4, #0
- add r5, #0x24
-_0223F208:
- add r1, r4, r0
- ldr r0, _0223F310 ; =0x000021EC
- ldrb r6, [r1, r0]
- add r0, r6, #0
- bl MaskOfFlagNo
- ldr r1, _0223F314 ; =0x00003108
- ldrb r1, [r4, r1]
- tst r0, r1
- ldr r0, [r5]
- beq _0223F224
- add r0, r0, #1
- str r0, [r5]
- b _0223F2B4
-_0223F224:
- add r0, r0, #1
- str r0, [r5]
- mov r0, #0xc0
- mul r0, r6
- mov r1, #0xb7
- add r3, r4, r0
- lsl r1, r1, #6
- ldr r2, [r3, r1]
- mov r1, #0x20
- tst r1, r2
- beq _0223F2B4
- ldr r7, _0223F320 ; =0x00002DC8
- add r2, r4, r7
- ldr r1, [r2, r0]
- lsl r1, r1, #0x11
- lsr r1, r1, #0x1e
- bne _0223F27E
- add r1, r7, #0
- sub r1, #8
- add r1, r4, r1
- str r1, [sp, #4]
- ldr r1, [r1, r0]
- mov r5, #0x20
- bic r1, r5
- ldr r5, [sp, #4]
- sub r7, #0x3c
- str r1, [r5, r0]
- ldr r0, [r2, r0]
- lsl r0, r0, #0x11
- lsr r1, r0, #0x1e
- mov r0, #0x13
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r0, [r3, r7]
- ldr r1, _0223F31C ; =0x0000215C
- neg r0, r0
- str r0, [r4, r1]
- add r0, r1, #0
- sub r0, #0x20
- ldr r2, [r4, r0]
- mov r0, #0x40
- orr r0, r2
- sub r1, #0x20
- str r0, [r4, r1]
- b _0223F298
-_0223F27E:
- mov r3, #0x13
- lsl r3, r3, #4
- str r1, [r4, r3]
- ldr r3, [r2, r0]
- ldr r1, _0223F324 ; =0xFFFF9FFF
- and r1, r3
- lsl r3, r3, #0x11
- lsr r3, r3, #0x1e
- sub r3, r3, #1
- lsl r3, r3, #0x1e
- lsr r3, r3, #0x11
- orr r1, r3
- str r1, [r2, r0]
-_0223F298:
- mov r0, #0x46
- lsl r0, r0, #2
- str r6, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x66
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add sp, #8
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223F2B4:
- ldr r0, [r4, #0x24]
- cmp r0, r7
- blt _0223F208
-_0223F2BA:
- ldr r0, [r4, #0x20]
- add r0, r0, #1
- str r0, [r4, #0x20]
- mov r0, #0
- str r0, [r4, #0x24]
-_0223F2C4:
- mov r1, #6
- lsl r1, r1, #6
- ldr r3, [r4, r1]
- mov r2, #7
- lsl r2, r2, #0x10
- add r0, r3, #0
- tst r0, r2
- beq _0223F2F8
- mov r0, #1
- lsl r0, r0, #0x10
- sub r0, r3, r0
- str r0, [r4, r1]
- ldr r0, [r4, r1]
- tst r0, r2
- bne _0223F2F8
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xfb
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add sp, #8
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_0223F2F8:
- ldr r0, [r4, #0x20]
- add r0, r0, #1
- str r0, [r4, #0x20]
- mov r0, #0
- str r0, [r4, #0x24]
-_0223F302:
- mov r0, #0
- str r0, [r4, #0x20]
- str r0, [r4, #0x24]
- mov r0, #0xc
- str r0, [r4, #8]
-_0223F30C:
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0223F310: .word 0x000021EC
-_0223F314: .word 0x00003108
-_0223F318: .word 0x00002D8C
-_0223F31C: .word 0x0000215C
-_0223F320: .word 0x00002DC8
-_0223F324: .word 0xFFFF9FFF
-
- thumb_func_start MOD11_0223F328
-MOD11_0223F328: ; 0x0223F328
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldr r1, [r4, #8]
- add r5, r0, #0
- add r0, r4, #0
- add r2, r1, #0
- bl MOD11_02242510
- cmp r0, #1
- beq _0223F37C
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02241FD8
- cmp r0, #1
- beq _0223F37C
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02241D2C
- cmp r0, #1
- beq _0223F37C
- mov r1, #0x15
- lsl r1, r1, #4
- ldr r0, [r4, r1]
- add r0, r0, #1
- str r0, [r4, r1]
- add r0, r1, #0
- add r0, #0x24
- ldr r0, [r4, r0]
- add r1, #0x24
- add r0, r0, #1
- str r0, [r4, r1]
- add r0, r4, #0
- bl MOD11_02245494
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02245C5C
- mov r0, #2
- str r0, [r4, #8]
-_0223F37C:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0223F380
-MOD11_0223F380: ; 0x0223F380
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r5, r1, #0
- str r0, [sp, #8]
- add r0, r5, #0
- add r0, #0xec
- ldr r0, [r0]
- mov r4, #0
- add r1, r5, r0
- ldr r0, _0223F4A8 ; =0x000021E8
- ldrb r2, [r1, r0]
- lsl r0, r2, #6
- add r1, r5, r0
- mov r0, #0x75
- str r2, [r5, #0x64]
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- beq _0223F3B4
- mov r0, #0xc1
- mov r1, #0xa5
- lsl r0, r0, #6
- str r1, [r5, r0]
- mov r4, #1
- b _0223F478
-_0223F3B4:
- mov r0, #0xc0
- mul r0, r2
- ldr r6, _0223F4AC ; =0x00002DEC
- add r0, r5, r0
- ldrh r1, [r0, r6]
- cmp r1, #0
- beq _0223F3DC
- add r3, r6, #2
- ldrh r3, [r0, r3]
- sub r6, #0xa0
- lsl r3, r3, #1
- add r0, r0, r3
- ldrh r0, [r0, r6]
- cmp r1, r0
- bne _0223F3DC
- mov r0, #0xc1
- lsl r0, r0, #6
- str r1, [r5, r0]
- mov r4, #1
- b _0223F478
-_0223F3DC:
- cmp r1, #0
- beq _0223F42E
- mov r7, #0xc0
- add r0, r2, #0
- mul r0, r7
- ldr r3, _0223F4B0 ; =0x00002DEE
- add r0, r5, r0
- ldrh r6, [r0, r3]
- lsl r6, r6, #1
- add r0, r0, r6
- add r6, r3, #0
- sub r6, #0xa2
- ldrh r0, [r0, r6]
- cmp r1, r0
- beq _0223F42E
- mov r1, #0xc1
- lsl r1, r1, #6
- str r0, [r5, r1]
- ldr r1, [r5, #0x64]
- mov r0, #0
- add r2, r1, #0
- mul r2, r7
- add r2, r5, r2
- sub r1, r3, #2
- strh r0, [r2, r1]
- ldr r1, [r5, #0x64]
- mov r4, #1
- add r2, r1, #0
- mul r2, r7
- add r1, r5, r2
- strh r0, [r1, r3]
- ldr r0, [r5, #0x64]
- sub r3, #0x26
- add r2, r0, #0
- add r3, r5, r3
- mul r2, r7
- ldr r1, [r3, r2]
- mov r0, #0x38
- bic r1, r0
- str r1, [r3, r2]
- b _0223F478
-_0223F42E:
- add r0, r5, #0
- add r1, r2, #0
- bl MOD11_0224AD04
- cmp r0, #0
- bne _0223F44A
- ldr r0, [r5, #0x64]
- lsl r0, r0, #2
- add r1, r5, r0
- ldr r0, _0223F4B4 ; =0x0000304C
- ldr r1, [r1, r0]
- sub r0, #0xc
- str r1, [r5, r0]
- b _0223F478
-_0223F44A:
- ldr r2, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r2
- lsl r1, r2, #1
- add r3, r5, r0
- add r0, r5, r1
- ldr r1, _0223F4B8 ; =0x000030BC
- ldrh r2, [r0, r1]
- lsl r2, r2, #1
- add r3, r3, r2
- ldr r2, _0223F4BC ; =0x00002D4C
- ldrh r3, [r3, r2]
- add r2, r1, #0
- sub r2, #8
- ldrh r0, [r0, r2]
- cmp r0, r3
- beq _0223F474
- sub r1, #0x7c
- str r3, [r5, r1]
- mov r4, #1
- b _0223F478
-_0223F474:
- sub r1, #0x7c
- str r3, [r5, r1]
-_0223F478:
- mov r3, #0xc1
- lsl r3, r3, #6
- ldr r1, [r5, r3]
- add r0, r3, #4
- str r1, [r5, r0]
- mov r0, #0x16
- str r0, [r5, #8]
- str r4, [sp]
- mov r0, #0
- str r0, [sp, #4]
- ldr r3, [r5, r3]
- ldr r0, [sp, #8]
- lsl r3, r3, #0x10
- ldr r2, [r5, #0x64]
- add r1, r5, #0
- lsr r3, r3, #0x10
- bl MOD11_02244C28
- str r0, [r5, #0x6c]
- ldr r0, [sp, #8]
- bl MOD11_0225679C
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0223F4A8: .word 0x000021E8
-_0223F4AC: .word 0x00002DEC
-_0223F4B0: .word 0x00002DEE
-_0223F4B4: .word 0x0000304C
-_0223F4B8: .word 0x000030BC
-_0223F4BC: .word 0x00002D4C
-
- thumb_func_start MOD11_0223F4C0
-MOD11_0223F4C0: ; 0x0223F4C0
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0xec
- ldr r2, [r2]
- add r7, r0, #0
- add r3, r4, r2
- ldr r2, _0223F5FC ; =0x000021E8
- ldrb r2, [r3, r2]
- str r2, [r4, #0x64]
- bl MOD11_022482A4
- str r0, [r4, #0x6c]
- ldr r0, _0223F600 ; =0x000021B0
- ldr r1, [r4, #0x64]
- add r2, r4, r0
- lsl r0, r1, #4
- add r6, r2, r0
- add r0, r7, #0
- bl MOD11_02230270
- cmp r0, #0
- beq _0223F568
- ldr r0, [r4, #0x64]
- asr r0, r0, #1
- add r1, r4, r0
- ldr r0, _0223F604 ; =0x000003D1
- ldrb r2, [r1, r0]
- cmp r2, #4
- bhi _0223F554
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0223F508: ; jump table
- .short _0223F512 - _0223F508 - 2 ; case 0
- .short _0223F516 - _0223F508 - 2 ; case 1
- .short _0223F51A - _0223F508 - 2 ; case 2
- .short _0223F544 - _0223F508 - 2 ; case 3
- .short _0223F552 - _0223F508 - 2 ; case 4
-_0223F512:
- ldr r5, _0223F608 ; =0x00000121
- b _0223F554
-_0223F516:
- ldr r5, _0223F60C ; =0x0000010B
- b _0223F554
-_0223F51A:
- add r0, r0, #2
- ldrb r0, [r1, r0]
- mov r1, #1
- tst r1, r0
- beq _0223F534
- mov r1, #0x3e
- add r2, r0, #0
- tst r2, r1
- beq _0223F534
- mov r0, #6
- add r1, #0xf2
- str r0, [r4, r1]
- b _0223F53E
-_0223F534:
- bl LowestFlagNo
- mov r1, #0x13
- lsl r1, r1, #4
- str r0, [r4, r1]
-_0223F53E:
- mov r5, #0x43
- lsl r5, r5, #2
- b _0223F554
-_0223F544:
- add r0, r0, #2
- ldrb r0, [r1, r0]
- mov r5, #0x13
- lsl r5, r5, #4
- str r0, [r4, r5]
- sub r5, #0x23
- b _0223F554
-_0223F552:
- ldr r5, _0223F610 ; =0x0000010E
-_0223F554:
- ldr r1, [r4, #0x64]
- mov r0, #1
- bic r1, r0
- ldr r0, _0223F614 ; =0x000003D6
- add r1, r4, r1
- ldrh r1, [r1, r0]
- mov r0, #0x4a
- lsl r0, r0, #2
- str r1, [r4, r0]
- b _0223F5DA
-_0223F568:
- ldrb r0, [r6, #2]
- cmp r0, #3
- bhi _0223F5D2
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0223F57A: ; jump table
- .short _0223F582 - _0223F57A - 2 ; case 0
- .short _0223F582 - _0223F57A - 2 ; case 1
- .short _0223F598 - _0223F57A - 2 ; case 2
- .short _0223F582 - _0223F57A - 2 ; case 3
-_0223F582:
- ldrh r1, [r6]
- ldr r0, _0223F618 ; =0x0000FFC1
- add r0, r1, r0
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- cmp r0, #1
- bhi _0223F594
- mov r5, #0xde
- b _0223F5D2
-_0223F594:
- mov r5, #0xdf
- b _0223F5D2
-_0223F598:
- add r0, r7, #0
- mov r5, #0xb
- bl MOD11_0222FF74
- mov r1, #1
- tst r0, r1
- bne _0223F5D2
- add r0, r7, #0
- bl MOD11_0222FF74
- mov r1, #1
- lsl r1, r1, #0xa
- tst r0, r1
- bne _0223F5D2
- add r0, r7, #0
- bl MOD11_02230214
- ldrh r1, [r6]
- mov r2, #1
- mov r3, #5
- bl FUN_0206EDD4
- add r0, r7, #0
- bl MOD11_02230218
- ldrh r1, [r6]
- ldrb r2, [r6, #2]
- bl FUN_0206F1E4
-_0223F5D2:
- ldrh r1, [r6]
- mov r0, #0x4a
- lsl r0, r0, #2
- str r1, [r4, r0]
-_0223F5DA:
- add r0, r4, #0
- mov r1, #1
- add r2, r5, #0
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x27
- str r0, [r4, #0xc]
- ldr r1, _0223F61C ; =0x0000216C
- mov r0, #2
- ldr r2, [r4, r1]
- lsl r0, r0, #0x1e
- orr r0, r2
- str r0, [r4, r1]
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0223F5FC: .word 0x000021E8
-_0223F600: .word 0x000021B0
-_0223F604: .word 0x000003D1
-_0223F608: .word 0x00000121
-_0223F60C: .word 0x0000010B
-_0223F610: .word 0x0000010E
-_0223F614: .word 0x000003D6
-_0223F618: .word 0x0000FFC1
-_0223F61C: .word 0x0000216C
-
- thumb_func_start MOD11_0223F620
-MOD11_0223F620: ; 0x0223F620
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- mov r2, #9
- bl MOD11_022431DC
- add r0, r4, #0
- add r0, #0xec
- ldr r0, [r0]
- ldr r1, _0223F660 ; =0x000021E8
- add r0, r4, r0
- ldrb r0, [r0, r1]
- mov r2, #0
- str r0, [r4, #0x64]
- str r0, [r4, #0x78]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x28
- str r0, [r4, #0xc]
- mov r0, #0x4e
- lsl r0, r0, #2
- str r2, [r4, r0]
- add r0, r1, #0
- sub r0, #0x7c
- ldr r2, [r4, r0]
- mov r0, #2
- lsl r0, r0, #0x1e
- orr r0, r2
- sub r1, #0x7c
- str r0, [r4, r1]
- pop {r4, pc}
- .align 2, 0
-_0223F660: .word 0x000021E8
-
- thumb_func_start MOD11_0223F664
-MOD11_0223F664: ; 0x0223F664
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r1, #0xec
- ldr r1, [r1]
- add r5, r0, #0
- add r2, r4, r1
- ldr r1, _0223F71C ; =0x000021E8
- ldrb r1, [r2, r1]
- str r1, [r4, #0x64]
- bl MOD11_02230270
- cmp r0, #0
- beq _0223F6D6
- add r0, r5, #0
- bl MOD11_0222FF74
- mov r1, #4
- tst r0, r1
- bne _0223F6D6
- ldr r0, [r4, #0x64]
- mov r2, #0xc0
- add r1, r0, #0
- mul r1, r2
- ldr r0, _0223F720 ; =0x00002DB0
- add r1, r4, r1
- ldr r1, [r1, r0]
- ldr r0, _0223F724 ; =0x0400E000
- tst r0, r1
- beq _0223F6BA
- add r0, r4, #0
- mov r1, #1
- add r2, #0x5e
- bl MOD11_022431DC
- add r0, r4, #0
- mov r1, #0
- add r0, #0xb4
- str r1, [r0]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x27
- str r0, [r4, #0xc]
- pop {r3, r4, r5, pc}
-_0223F6BA:
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xe6
- bl MOD11_022431DC
- add r0, r4, #0
- mov r1, #0
- add r0, #0xb4
- str r1, [r0]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x2a
- str r0, [r4, #0xc]
- pop {r3, r4, r5, pc}
-_0223F6D6:
- ldr r2, [r4, #0x64]
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_022470B8
- cmp r0, #0
- beq _0223F700
- add r0, r4, #0
- mov r1, #1
- mov r2, #3
- bl MOD11_022431DC
- add r0, r4, #0
- mov r1, #0
- add r0, #0xb4
- str r1, [r0]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x2a
- str r0, [r4, #0xc]
- pop {r3, r4, r5, pc}
-_0223F700:
- add r0, r4, #0
- mov r1, #1
- mov r2, #8
- bl MOD11_022431DC
- add r0, r4, #0
- mov r1, #0
- add r0, #0xb4
- str r1, [r0]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x27
- str r0, [r4, #0xc]
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0223F71C: .word 0x000021E8
-_0223F720: .word 0x00002DB0
-_0223F724: .word 0x0400E000
-
- thumb_func_start MOD11_0223F728
-MOD11_0223F728: ; 0x0223F728
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r2, _0223F76C ; =0x00000113
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- mov r0, #0
- str r0, [r4, #0x64]
- mov r0, #1
- str r0, [r4, #0x6c]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x27
- str r0, [r4, #0xc]
- mov r0, #0x4a
- mov r1, #5
- lsl r0, r0, #2
- str r1, [r4, r0]
- add r0, r5, #0
- bl MOD11_02230E00
- sub r1, r0, #1
- add r0, r5, #0
- bl MOD11_02230E0C
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0
- bl MOD11_02256020
- pop {r3, r4, r5, pc}
- nop
-_0223F76C: .word 0x00000113
-
- thumb_func_start MOD11_0223F770
-MOD11_0223F770: ; 0x0223F770
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xe3
- bl MOD11_022431DC
- mov r0, #0
- str r0, [r4, #0x64]
- mov r0, #1
- str r0, [r4, #0x6c]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x27
- str r0, [r4, #0xc]
- bl rand_LC
- mov r1, #0xa
- bl _s32_div_f
- mov r0, #0x4e
- lsl r0, r0, #2
- str r1, [r4, r0]
- ldr r0, _0223F7C4 ; =0x0000311C
- ldrb r1, [r4, r0]
- cmp r1, #0xc
- bhs _0223F7AA
- add r1, r1, #1
- strb r1, [r4, r0]
-_0223F7AA:
- mov r0, #0x4e
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- cmp r0, #0
- beq _0223F7C0
- ldr r0, _0223F7C8 ; =0x0000311D
- ldrb r1, [r4, r0]
- cmp r1, #0xc
- bhs _0223F7C0
- add r1, r1, #1
- strb r1, [r4, r0]
-_0223F7C0:
- pop {r4, pc}
- nop
-_0223F7C4: .word 0x0000311C
-_0223F7C8: .word 0x0000311D
-
- thumb_func_start MOD11_0223F7CC
-MOD11_0223F7CC: ; 0x0223F7CC
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xe4
- bl MOD11_022431DC
- mov r0, #0
- str r0, [r4, #0x64]
- mov r0, #1
- str r0, [r4, #0x6c]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x27
- str r0, [r4, #0xc]
- bl rand_LC
- mov r1, #0xa
- bl _s32_div_f
- mov r0, #0x4e
- lsl r0, r0, #2
- str r1, [r4, r0]
- ldr r0, _0223F824 ; =0x0000311D
- ldrb r1, [r4, r0]
- cmp r1, #0
- beq _0223F806
- sub r1, r1, #1
- strb r1, [r4, r0]
-_0223F806:
- mov r0, #0x4e
- lsl r0, r0, #2
- ldr r1, [r4, r0]
- cmp r1, #0
- beq _0223F822
- mov r1, #1
- sub r0, #8
- str r1, [r4, r0]
- ldr r0, _0223F828 ; =0x0000311C
- ldrb r1, [r4, r0]
- cmp r1, #0
- beq _0223F822
- sub r1, r1, #1
- strb r1, [r4, r0]
-_0223F822:
- pop {r4, pc}
- .align 2, 0
-_0223F824: .word 0x0000311D
-_0223F828: .word 0x0000311C
-
- thumb_func_start MOD11_0223F82C
-MOD11_0223F82C: ; 0x0223F82C
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xe5
- bl MOD11_022431DC
- mov r0, #0
- str r0, [r4, #0x64]
- mov r0, #1
- str r0, [r4, #0x6c]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x27
- str r0, [r4, #0xc]
- pop {r4, pc}
-
- thumb_func_start MOD11_0223F84C
-MOD11_0223F84C: ; 0x0223F84C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x20
- str r0, [sp, #0x18]
- add r4, r1, #0
- add r6, r2, #0
- bl MOD11_0222FF74
- add r5, r0, #0
- ldr r0, [sp, #0x18]
- mov r1, #0
- bl MOD11_022301D4
- add r7, r0, #0
- mov r0, #0x84
- tst r0, r5
- beq _0223F872
- add sp, #0x20
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0223F872:
- ldr r0, [sp, #0x18]
- ldr r1, [r4, #0x64]
- bl MOD11_02230270
- cmp r0, #0
- beq _0223F884
- add sp, #0x20
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0223F884:
- mov r0, #0x40
- tst r0, r5
- beq _0223F89C
- ldr r0, [sp, #0x18]
- ldr r1, [r4, #0x64]
- bl MOD11_02230260
- cmp r0, #4
- bne _0223F89C
- add sp, #0x20
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0223F89C:
- ldr r0, [sp, #0x18]
- add r1, r4, #0
- bl MOD11_0224ADB8
- cmp r0, #1
- bne _0223F8AE
- add sp, #0x20
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0223F8AE:
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_0224AD04
- cmp r0, #0
- bne _0223F8C0
- add sp, #0x20
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0223F8C0:
- add r0, r7, #0
- bl FUN_020239F4
- cmp r0, #8
- blt _0223F8D0
- add sp, #0x20
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0223F8D0:
- add r0, r7, #0
- mov r5, #0xa
- bl FUN_020239F4
- cmp r0, #2
- blt _0223F8DE
- mov r5, #0x1e
-_0223F8DE:
- add r0, r7, #0
- bl FUN_020239F4
- cmp r0, #4
- blt _0223F8EA
- mov r5, #0x32
-_0223F8EA:
- add r0, r7, #0
- bl FUN_020239F4
- cmp r0, #6
- blt _0223F8F6
- mov r5, #0x46
-_0223F8F6:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- add r7, r1, #0
- mul r7, r0
- ldr r0, _0223FAEC ; =0x00002D74
- add r1, r4, r7
- ldrb r0, [r1, r0]
- cmp r0, r5
- bhi _0223F90E
- add sp, #0x20
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0223F90E:
- bl rand_LC
- lsl r0, r0, #0x18
- ldr r1, _0223FAEC ; =0x00002D74
- add r2, r4, r7
- ldrb r2, [r2, r1]
- lsr r0, r0, #0x18
- add r2, r5, r2
- mul r0, r2
- asr r0, r0, #8
- cmp r0, r5
- bge _0223F92C
- add sp, #0x20
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0223F92C:
- ldr r0, _0223FAF0 ; =0x00003044
- ldr r0, [r4, r0]
- cmp r0, #0x63
- bne _0223F940
- add r1, #0x3c
- add r0, r4, r1
- ldr r2, [r0, r7]
- ldr r1, _0223FAF4 ; =0xFF7FFFFF
- and r1, r2
- str r1, [r0, r7]
-_0223F940:
- ldr r7, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r7
- add r1, r4, r0
- ldr r0, _0223FAF8 ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #7
- tst r0, r1
- beq _0223F968
- ldr r0, _0223FAF0 ; =0x00003044
- ldr r0, [r4, r0]
- cmp r0, #0xad
- beq _0223F95E
- cmp r0, #0xd6
- bne _0223F968
-_0223F95E:
- mov r0, #0xfe
- str r0, [r6]
- add sp, #0x20
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_0223F968:
- mov r0, #0xc0
- mul r0, r7
- add r1, r4, r0
- ldr r0, _0223FAEC ; =0x00002D74
- ldrb r0, [r1, r0]
- str r0, [sp, #0x1c]
- bl rand_LC
- ldr r1, [sp, #0x1c]
- lsl r0, r0, #0x18
- add r1, r5, r1
- lsr r0, r0, #0x18
- mul r0, r1
- asr r0, r0, #8
- cmp r0, r5
- bge _0223FA2E
- lsl r0, r7, #1
- add r1, r4, r0
- ldr r0, _0223FAFC ; =0x000030BC
- ldrh r0, [r1, r0]
- bl MaskOfFlagNo
- add r3, r0, #0
- mov r0, #0
- mvn r0, r0
- str r0, [sp]
- ldr r0, [sp, #0x18]
- ldr r2, [r4, #0x64]
- add r1, r4, #0
- bl MOD11_02245D38
- add r5, r0, #0
- cmp r5, #0xf
- bne _0223F9B6
- mov r0, #0xff
- str r0, [r6]
- add sp, #0x20
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_0223F9B6:
- bl rand_LC
- mov r1, #3
- add r7, r0, #0
- and r7, r1
- add r0, r7, #0
- bl MaskOfFlagNo
- tst r0, r5
- bne _0223F9B6
- ldr r0, [r4, #0x64]
- ldr r3, _0223FAFC ; =0x000030BC
- lsl r0, r0, #1
- add r0, r4, r0
- strh r7, [r0, r3]
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- lsl r1, r1, #1
- add r1, r4, r1
- ldrh r1, [r1, r3]
- add r0, r4, r0
- lsl r1, r1, #1
- add r1, r0, r1
- ldr r0, _0223FB00 ; =0x00002D4C
- ldrh r1, [r1, r0]
- add r0, r3, #0
- sub r0, #0x7c
- str r1, [r4, r0]
- add r0, r3, #0
- sub r0, #0x7c
- ldr r1, [r4, r0]
- add r0, r3, #0
- sub r0, #0x78
- str r1, [r4, r0]
- mov r0, #1
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- sub r3, #0x7c
- ldr r3, [r4, r3]
- ldr r0, [sp, #0x18]
- lsl r3, r3, #0x10
- ldr r2, [r4, #0x64]
- add r1, r4, #0
- lsr r3, r3, #0x10
- bl MOD11_02244C28
- str r0, [r4, #0x6c]
- mov r0, #1
- lsl r0, r0, #8
- str r0, [r6]
- ldr r1, _0223FB04 ; =0x00002184
- mov r0, #1
- ldr r2, [r4, r1]
- add sp, #0x20
- orr r0, r2
- str r0, [r4, r1]
- mov r0, #2
- pop {r3, r4, r5, r6, r7, pc}
-_0223FA2E:
- ldr r0, [sp, #0x1c]
- sub r0, r0, r5
- lsl r0, r0, #0x18
- lsr r5, r0, #0x18
- bl rand_LC
- lsl r0, r0, #0x18
- lsr r7, r0, #0x18
- cmp r7, r5
- bge _0223FA8E
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r4, r0
- ldr r0, _0223FAF8 ; =0x00002DAC
- ldr r0, [r2, r0]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bne _0223FA8E
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x48
- beq _0223FA8E
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0xf
- beq _0223FA8E
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x66
- beq _0223FA8E
- mov r1, #6
- lsl r1, r1, #6
- mov r0, #0xf
- ldr r2, [r4, r1]
- lsl r0, r0, #8
- tst r0, r2
- bne _0223FA8E
- sub r1, #0x7f
- add sp, #0x20
- str r1, [r6]
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_0223FA8E:
- sub r0, r7, r5
- cmp r0, r5
- bge _0223FAE2
- ldr r1, [r4, #0x64]
- mov r0, #0x46
- str r1, [r4, #0x6c]
- lsl r0, r0, #2
- str r1, [r4, r0]
- ldr r1, [r4, #0x64]
- mov r3, #0
- str r3, [sp]
- mov r0, #0x28
- str r0, [sp, #4]
- lsl r0, r1, #0x18
- str r3, [sp, #8]
- lsr r0, r0, #0x18
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- mov r2, #1
- ldr r0, [sp, #0x18]
- add r1, r4, #0
- str r2, [sp, #0x14]
- bl MOD11_0224B310
- ldr r1, _0223FB08 ; =0x0000215C
- str r0, [r4, r1]
- ldr r1, [r4, r1]
- add r0, r4, #0
- bl MOD11_0224BF10
- ldr r1, _0223FB08 ; =0x0000215C
- add sp, #0x20
- str r0, [r4, r1]
- mov r0, #0
- ldr r2, [r4, r1]
- mvn r0, r0
- mul r0, r2
- str r0, [r4, r1]
- ldr r0, _0223FB0C ; =0x00000102
- str r0, [r6]
- mov r0, #3
- pop {r3, r4, r5, r6, r7, pc}
-_0223FAE2:
- mov r0, #0xff
- str r0, [r6]
- mov r0, #1
- add sp, #0x20
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0223FAEC: .word 0x00002D74
-_0223FAF0: .word 0x00003044
-_0223FAF4: .word 0xFF7FFFFF
-_0223FAF8: .word 0x00002DAC
-_0223FAFC: .word 0x000030BC
-_0223FB00: .word 0x00002D4C
-_0223FB04: .word 0x00002184
-_0223FB08: .word 0x0000215C
-_0223FB0C: .word 0x00000102
-
- thumb_func_start MOD11_0223FB10
-MOD11_0223FB10: ; 0x0223FB10
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r1, #0
- ldr r3, [r5, #0x64]
- mov r2, #0x1c
- mul r2, r3
- add r6, r5, r2
- mov r2, #0xb5
- lsl r2, r2, #2
- ldr r2, [r6, r2]
- str r0, [sp, #4]
- lsl r2, r2, #0x1f
- mov r4, #1
- lsr r2, r2, #0x1f
- bne _0223FBCA
- ldr r6, [r5, #0x6c]
- cmp r6, #0xff
- beq _0223FBCA
- mov r2, #0xc1
- lsl r2, r2, #6
- ldr r7, [r5, r2]
- ldr r2, _0223FC98 ; =0x0000011E
- cmp r7, r2
- bne _0223FB4E
- mov r2, #0x2e
- str r2, [sp]
- mov r2, #3
- bl MOD11_02246870
- add r4, r4, r0
- b _0223FBCA
-_0223FB4E:
- lsl r0, r7, #4
- add r1, r5, r0
- ldr r0, _0223FC9C ; =0x000003E6
- ldrh r1, [r1, r0]
- cmp r1, #0x40
- bgt _0223FB78
- bge _0223FB94
- cmp r1, #0x10
- bgt _0223FB72
- bge _0223FBCA
- cmp r1, #8
- bgt _0223FBB8
- cmp r1, #4
- blt _0223FBB8
- beq _0223FBA6
- cmp r1, #8
- beq _0223FB94
- b _0223FBB8
-_0223FB72:
- cmp r1, #0x20
- beq _0223FBCA
- b _0223FBB8
-_0223FB78:
- add r0, r2, #0
- sub r0, #0x1e
- cmp r1, r0
- bgt _0223FB8C
- sub r2, #0x1e
- cmp r1, r2
- bge _0223FBCA
- cmp r1, #0x80
- beq _0223FBA6
- b _0223FBB8
-_0223FB8C:
- add r2, #0xe2
- cmp r1, r2
- beq _0223FBCA
- b _0223FBB8
-_0223FB94:
- mov r0, #0x2e
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #9
- bl MOD11_02246870
- add r4, r4, r0
- b _0223FBCA
-_0223FBA6:
- mov r0, #0x2e
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #3
- bl MOD11_02246870
- add r4, r4, r0
- b _0223FBCA
-_0223FBB8:
- cmp r3, r6
- beq _0223FBCA
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02246D1C
- cmp r0, #0x2e
- bne _0223FBCA
- add r4, r4, #1
-_0223FBCA:
- mov r0, #0xb5
- lsl r0, r0, #6
- add r2, r5, r0
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- mov r1, #0xc1
- lsl r1, r1, #6
- ldr r1, [r5, r1]
- add r0, r2, r0
- lsl r1, r1, #0x10
- lsr r1, r1, #0x10
- bl MOD11_022461AC
- add r6, r0, #0
- ldr r1, [r5, #0x64]
- mov r0, #0x75
- lsl r0, r0, #2
- add r0, r5, r0
- lsl r7, r1, #6
- ldr r3, [r0, r7]
- lsl r2, r3, #0x1e
- lsr r2, r2, #0x1f
- bne _0223FC42
- lsl r2, r3, #0x1f
- lsr r2, r2, #0x1f
- bne _0223FC42
- mov r1, #2
- orr r1, r3
- str r1, [r0, r7]
- ldr r0, _0223FCA0 ; =0x00002D6C
- ldr r1, [r5, #0x64]
- add r2, r5, r0
- mov r0, #0xc0
- mul r0, r1
- add r1, r2, r0
- ldrb r0, [r1, r6]
- cmp r0, #0
- beq _0223FC34
- cmp r6, #4
- bge _0223FC34
- cmp r0, r4
- ble _0223FC24
- sub r0, r0, r4
- b _0223FC26
-_0223FC24:
- mov r0, #0
-_0223FC26:
- strb r0, [r1, r6]
- ldr r0, [sp, #4]
- ldr r2, [r5, #0x64]
- add r1, r5, #0
- bl MOD11_02245190
- b _0223FC90
-_0223FC34:
- ldr r1, _0223FCA4 ; =0x0000216C
- mov r0, #2
- ldr r2, [r5, r1]
- lsl r0, r0, #8
- orr r0, r2
- str r0, [r5, r1]
- b _0223FC90
-_0223FC42:
- mov r2, #0xc0
- add r0, r1, #0
- mul r0, r2
- add r0, r5, r0
- ldr r3, _0223FCA0 ; =0x00002D6C
- add r4, r0, r6
- ldrb r4, [r4, r3]
- cmp r4, #0
- bne _0223FC90
- ldr r4, _0223FCA8 ; =0x0000213C
- mov r7, #2
- ldr r4, [r5, r4]
- lsl r7, r7, #8
- tst r4, r7
- bne _0223FC90
- add r3, #0x44
- ldr r0, [r0, r3]
- lsl r3, r7, #3
- tst r3, r0
- bne _0223FC90
- lsl r2, r2, #4
- tst r0, r2
- bne _0223FC90
- add r0, r1, #0
- bl MaskOfFlagNo
- add r1, r7, #0
- sub r1, #0x80
- ldr r2, [r5, r1]
- lsl r0, r0, #8
- tst r0, r2
- bne _0223FC90
- cmp r6, #4
- bge _0223FC90
- ldr r0, _0223FCA4 ; =0x0000216C
- add r1, #0x80
- ldr r2, [r5, r0]
- orr r1, r2
- str r1, [r5, r0]
-_0223FC90:
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0223FC98: .word 0x0000011E
-_0223FC9C: .word 0x000003E6
-_0223FCA0: .word 0x00002D6C
-_0223FCA4: .word 0x0000216C
-_0223FCA8: .word 0x0000213C
-
- thumb_func_start MOD11_0223FCAC
-MOD11_0223FCAC: ; 0x0223FCAC
- push {r3, r4, r5, lr}
- add r5, r1, #0
- ldr r0, [r5, #0x6c]
- mov r4, #0
- cmp r0, #0xff
- bne _0223FCC6
- ldr r1, _0223FD10 ; =0x00003044
- add r0, r5, #0
- ldr r1, [r5, r1]
- bl MOD11_02246AF8
- cmp r0, #0
- beq _0223FCF8
-_0223FCC6:
- ldr r0, [r5, #0x6c]
- cmp r0, #0xff
- bne _0223FD0C
- ldr r1, _0223FD10 ; =0x00003044
- add r0, r5, #0
- ldr r1, [r5, r1]
- bl MOD11_02246AF8
- cmp r0, #1
- bne _0223FD0C
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _0223FD14 ; =0x00002DB0
- ldr r0, [r1, r0]
- mov r1, #1
- lsl r1, r1, #0xc
- tst r0, r1
- bne _0223FCF8
- ldr r0, _0223FD18 ; =0x0000213C
- ldr r2, [r5, r0]
- lsr r0, r1, #3
- tst r0, r2
- beq _0223FD0C
-_0223FCF8:
- ldr r2, _0223FD1C ; =0x00000119
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022431DC
- mov r0, #0x26
- str r0, [r5, #0xc]
- mov r0, #0x15
- str r0, [r5, #8]
- mov r4, #1
-_0223FD0C:
- add r0, r4, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0223FD10: .word 0x00003044
-_0223FD14: .word 0x00002DB0
-_0223FD18: .word 0x0000213C
-_0223FD1C: .word 0x00000119
-
- thumb_func_start MOD11_0223FD20
-MOD11_0223FD20: ; 0x0223FD20
- push {r3, r4, r5, lr}
- sub sp, #0x10
- add r4, r1, #0
- ldr r1, _0223FDA0 ; =0x00003044
- ldr r2, [r4, r1]
- lsl r1, r2, #4
- add r5, r4, r1
- ldr r1, _0223FDA4 ; =0x000003E6
- ldrh r3, [r5, r1]
- cmp r3, #0x10
- beq _0223FD54
- cmp r3, #0x20
- beq _0223FD54
- sub r1, r1, #5
- ldrb r1, [r5, r1]
- cmp r1, #0
- beq _0223FD54
- ldr r1, _0223FDA8 ; =0x0000213C
- ldr r3, [r4, r1]
- mov r1, #2
- lsl r1, r1, #0xe
- tst r1, r3
- bne _0223FD54
- mov r1, #0x20
- tst r1, r3
- beq _0223FD58
-_0223FD54:
- cmp r2, #0x56
- bne _0223FD98
-_0223FD58:
- ldr r1, [r4, #0x64]
- ldr r3, _0223FDAC ; =0x00002144
- str r1, [sp]
- ldr r1, [r4, #0x6c]
- str r1, [sp, #4]
- ldr r1, [r4, r3]
- str r1, [sp, #8]
- add r1, r3, #0
- add r1, #0x28
- add r1, r4, r1
- str r1, [sp, #0xc]
- add r3, #0x1c
- ldr r3, [r4, r3]
- add r1, r4, #0
- bl MOD11_02246274
- ldr r1, _0223FDAC ; =0x00002144
- str r0, [r4, r1]
- add r1, #0x28
- ldr r1, [r4, r1]
- mov r0, #8
- tst r0, r1
- beq _0223FD98
- mov r0, #0xd1
- lsl r0, r0, #2
- add r3, r4, r0
- ldr r0, [r4, #0x64]
- lsl r2, r0, #2
- ldr r1, [r3, r2]
- mov r0, #2
- orr r0, r1
- str r0, [r3, r2]
-_0223FD98:
- mov r0, #0
- add sp, #0x10
- pop {r3, r4, r5, pc}
- nop
-_0223FDA0: .word 0x00003044
-_0223FDA4: .word 0x000003E6
-_0223FDA8: .word 0x0000213C
-_0223FDAC: .word 0x00002144
-
- thumb_func_start MOD11_0223FDB0
-MOD11_0223FDB0: ; 0x0223FDB0
- push {r4, r5, r6, r7, lr}
- sub sp, #0x2c
- str r0, [sp, #0x18]
- add r4, r1, #0
- ldr r0, _022400D8 ; =0x00003044
- add r5, r4, #0
- ldr r0, [r4, r0]
- mov r7, #0
- lsl r0, r0, #4
- add r1, r4, r0
- ldr r0, _022400DC ; =0x000003DE
- add r5, #0x50
- ldrh r0, [r1, r0]
- str r0, [sp, #0x1c]
- mov r0, #0xd1
- lsl r0, r0, #2
- add r6, r4, r0
- mov r0, #7
- str r0, [sp, #0x20]
- mov r0, #8
- str r0, [sp, #0x24]
- mov r0, #1
- str r0, [sp, #0x28]
-_0223FDDE:
- ldr r0, [r4, #0x50]
- cmp r0, #0x10
- bls _0223FDE6
- b _0224043C
-_0223FDE6:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0223FDF2: ; jump table
- .short _0223FE14 - _0223FDF2 - 2 ; case 0
- .short _0223FE48 - _0223FDF2 - 2 ; case 1
- .short _0223FF42 - _0223FDF2 - 2 ; case 2
- .short _0223FFA6 - _0223FDF2 - 2 ; case 3
- .short _0223FFCE - _0223FDF2 - 2 ; case 4
- .short _0224000A - _0223FDF2 - 2 ; case 5
- .short _02240050 - _0223FDF2 - 2 ; case 6
- .short _0224008C - _0223FDF2 - 2 ; case 7
- .short _022400D4 - _0223FDF2 - 2 ; case 8
- .short _02240138 - _0223FDF2 - 2 ; case 9
- .short _02240174 - _0223FDF2 - 2 ; case 10
- .short _022401B0 - _0223FDF2 - 2 ; case 11
- .short _0224028C - _0223FDF2 - 2 ; case 12
- .short _022402E8 - _0223FDF2 - 2 ; case 13
- .short _0224034E - _0223FDF2 - 2 ; case 14
- .short _022403FE - _0223FDF2 - 2 ; case 15
- .short _02240436 - _0223FDF2 - 2 ; case 16
-_0223FE14:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r4, r0
- ldr r0, _022400E0 ; =0x00002DB0
- ldr r1, [r2, r0]
- ldr r0, _022400E4 ; =0xFDFFFFFF
- and r1, r0
- ldr r0, _022400E0 ; =0x00002DB0
- str r1, [r2, r0]
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r4, r0
- mov r0, #0xb7
- lsl r0, r0, #6
- ldr r1, [r2, r0]
- ldr r0, _022400E8 ; =0xFFFFBFFF
- and r1, r0
- mov r0, #0xb7
- lsl r0, r0, #6
- str r1, [r2, r0]
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _0224043C
-_0223FE48:
- ldr r2, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r2
- add r1, r4, r0
- ldr r0, _022400EC ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #7
- tst r0, r1
- beq _0223FF3A
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r0, #0xf
- lsl r0, r0, #8
- tst r0, r1
- beq _0223FE92
- add r0, r4, #0
- add r1, r2, #0
- bl MOD11_02246D1C
- cmp r0, #0x2b
- beq _0223FE92
- mov r0, #0x46
- ldr r1, [r4, #0x64]
- lsl r0, r0, #2
- str r1, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x13
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- mov r7, #2
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- b _0223FF3A
-_0223FE92:
- ldr r0, _022400D8 ; =0x00003044
- ldr r0, [r4, r0]
- cmp r0, #0xd6
- beq _0223FEA8
- mov r0, #0xc1
- lsl r0, r0, #6
- ldr r0, [r4, r0]
- cmp r0, #0xd6
- bne _0223FEA8
- mov r0, #1
- b _0223FEAA
-_0223FEA8:
- mov r0, #0
-_0223FEAA:
- cmp r0, #0
- bne _0223FF3A
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x30
- bne _0223FEBE
- mov r3, #2
- b _0223FEC0
-_0223FEBE:
- mov r3, #1
-_0223FEC0:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r4, r0
- ldr r0, _022400EC ; =0x00002DAC
- ldr r1, [r2, r0]
- mov r0, #7
- and r0, r1
- cmp r0, r3
- ldr r0, _022400EC ; =0x00002DAC
- bhs _0223FEDE
- ldr r1, [r2, r0]
- ldr r0, [sp, #0x20]
- bic r1, r0
- b _0223FEE2
-_0223FEDE:
- ldr r0, [r2, r0]
- sub r1, r0, r3
-_0223FEE2:
- ldr r0, _022400EC ; =0x00002DAC
- str r1, [r2, r0]
- ldr r2, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r2
- add r1, r4, r0
- ldr r0, _022400EC ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #7
- tst r0, r1
- beq _0223FF20
- ldr r0, _022400D8 ; =0x00003044
- ldr r0, [r4, r0]
- cmp r0, #0xad
- beq _0223FF3A
- mov r0, #0xc1
- lsl r0, r0, #6
- ldr r0, [r4, r0]
- cmp r0, #0xd6
- beq _0223FF3A
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x14
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x26
- str r0, [r4, #0xc]
- mov r7, #2
- b _0223FF3A
-_0223FF20:
- mov r0, #0x46
- lsl r0, r0, #2
- str r2, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x13
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- mov r7, #2
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
-_0223FF3A:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _0224043C
-_0223FF42:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _022400EC ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #0x20
- tst r0, r1
- beq _0223FF9E
- bl rand_LC
- mov r1, #5
- bl _s32_div_f
- cmp r1, #0
- beq _0223FF82
- ldr r0, [sp, #0x1c]
- cmp r0, #0x7d
- beq _0223FF9E
- cmp r0, #0xfd
- beq _0223FF9E
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x1c
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x26
- str r0, [r4, #0xc]
- mov r7, #1
- b _0223FF9E
-_0223FF82:
- mov r0, #0x46
- ldr r1, [r4, #0x64]
- lsl r0, r0, #2
- str r1, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x1d
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- mov r7, #2
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
-_0223FF9E:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _0224043C
-_0223FFA6:
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02247190
- cmp r0, #1
- bne _0223FFC6
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xbf
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x26
- str r0, [r4, #0xc]
- mov r7, #1
-_0223FFC6:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _0224043C
-_0223FFCE:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r4, r0
- ldr r0, _022400E0 ; =0x00002DB0
- ldr r1, [r2, r0]
- mov r0, #1
- lsl r0, r0, #0x16
- tst r0, r1
- beq _02240002
- ldr r0, _022400E0 ; =0x00002DB0
- ldr r1, [r2, r0]
- ldr r0, _022400F0 ; =0xFFBFFFFF
- and r1, r0
- ldr r0, _022400E0 ; =0x00002DB0
- str r1, [r2, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x41
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x26
- str r0, [r4, #0xc]
- mov r7, #1
-_02240002:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _0224043C
-_0224000A:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r4, r0
- ldr r0, _022400E0 ; =0x00002DB0
- ldr r1, [r2, r0]
- mov r0, #8
- tst r0, r1
- beq _02240048
- ldr r0, _022400E0 ; =0x00002DB0
- ldr r1, [sp, #0x24]
- ldr r0, [r2, r0]
- bic r0, r1
- ldr r1, _022400E0 ; =0x00002DB0
- str r0, [r2, r1]
- ldr r0, [r4, #0x64]
- mov r1, #0x40
- lsl r0, r0, #2
- ldr r2, [r6, r0]
- orr r1, r2
- str r1, [r6, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xf
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x26
- str r0, [r4, #0xc]
- mov r7, #1
-_02240048:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _0224043C
-_02240050:
- mov r0, #0xc1
- lsl r0, r0, #6
- ldr r3, [r4, r0]
- ldr r2, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r2
- add r1, r4, r0
- ldr r0, _022400F4 ; =0x00002DE8
- ldrh r0, [r1, r0]
- cmp r3, r0
- bne _02240084
- lsl r0, r2, #2
- ldr r2, [r6, r0]
- mov r1, #0x10
- orr r1, r2
- str r1, [r6, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x47
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x26
- str r0, [r4, #0xc]
- mov r7, #1
-_02240084:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _0224043C
-_0224008C:
- ldr r2, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r2
- add r1, r4, r0
- ldr r0, _022400F8 ; =0x00002DC8
- ldr r0, [r1, r0]
- lsl r0, r0, #0x15
- lsr r0, r0, #0x1d
- beq _022400CC
- ldr r0, _022400D8 ; =0x00003044
- ldr r0, [r4, r0]
- lsl r0, r0, #4
- add r1, r4, r0
- ldr r0, _022400FC ; =0x000003E1
- ldrb r0, [r1, r0]
- cmp r0, #0
- bne _022400CC
- lsl r0, r2, #2
- ldr r2, [r6, r0]
- mov r1, #0x20
- orr r1, r2
- str r1, [r6, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x85
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x26
- str r0, [r4, #0xc]
- mov r7, #1
-_022400CC:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _0224043C
-_022400D4:
- ldr r3, _022400D8 ; =0x00003044
- b _02240100
- .align 2, 0
-_022400D8: .word 0x00003044
-_022400DC: .word 0x000003DE
-_022400E0: .word 0x00002DB0
-_022400E4: .word 0xFDFFFFFF
-_022400E8: .word 0xFFFFBFFF
-_022400EC: .word 0x00002DAC
-_022400F0: .word 0xFFBFFFFF
-_022400F4: .word 0x00002DE8
-_022400F8: .word 0x00002DC8
-_022400FC: .word 0x000003E1
-_02240100:
- ldr r0, [sp, #0x18]
- ldr r2, [r4, #0x64]
- ldr r3, [r4, r3]
- add r1, r4, #0
- bl MOD11_022471C4
- cmp r0, #0
- beq _02240130
- ldr r0, [r4, #0x64]
- mov r1, #4
- lsl r0, r0, #2
- ldr r2, [r6, r0]
- orr r1, r2
- str r1, [r6, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x90
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x26
- str r0, [r4, #0xc]
- mov r7, #1
-_02240130:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _0224043C
-_02240138:
- ldr r3, _0224047C ; =0x00003044
- ldr r0, [sp, #0x18]
- ldr r2, [r4, #0x64]
- ldr r3, [r4, r3]
- add r1, r4, #0
- bl MOD11_02247314
- cmp r0, #0
- beq _0224016C
- ldr r0, [r4, #0x64]
- mov r1, #1
- lsl r0, r0, #2
- ldr r2, [r6, r0]
- lsl r1, r1, #8
- orr r1, r2
- str r1, [r6, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x9d
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x26
- str r0, [r4, #0xc]
- mov r7, #1
-_0224016C:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _0224043C
-_02240174:
- ldr r3, _0224047C ; =0x00003044
- ldr r0, [sp, #0x18]
- ldr r2, [r4, #0x64]
- ldr r3, [r4, r3]
- add r1, r4, #0
- bl MOD11_02247348
- cmp r0, #0
- beq _022401A8
- ldr r0, [r4, #0x64]
- mov r1, #2
- lsl r0, r0, #2
- ldr r2, [r6, r0]
- lsl r1, r1, #8
- orr r1, r2
- str r1, [r6, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xae
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x26
- str r0, [r4, #0xc]
- mov r7, #1
-_022401A8:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _0224043C
-_022401B0:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r4, r0
- ldr r0, _02240480 ; =0x00002DB0
- ldr r1, [r2, r0]
- mov r0, #7
- tst r0, r1
- bne _022401CA
- b _0224043C
-_022401CA:
- ldr r0, _02240480 ; =0x00002DB0
- ldr r0, [r2, r0]
- sub r1, r0, #1
- ldr r0, _02240480 ; =0x00002DB0
- str r1, [r2, r0]
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _02240480 ; =0x00002DB0
- ldr r1, [r1, r0]
- mov r0, #7
- tst r0, r1
- beq _02240276
- bl rand_LC
- mov r1, #1
- tst r0, r1
- beq _02240204
- add r0, r4, #0
- mov r2, #0x26
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- mov r7, #2
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- b _0224043C
-_02240204:
- ldr r0, [r4, #0x64]
- mov r1, #0x80
- lsl r0, r0, #2
- ldr r2, [r6, r0]
- mov r3, #0
- orr r1, r2
- str r1, [r6, r0]
- ldr r1, [r4, #0x64]
- mov r0, #0x46
- str r1, [r4, #0x6c]
- lsl r0, r0, #2
- str r1, [r4, r0]
- ldr r0, [r4, #0x64]
- mov r1, #0
- str r1, [sp]
- mov r1, #0x28
- str r1, [sp, #4]
- mov r1, #0
- lsl r0, r0, #0x18
- str r1, [sp, #8]
- lsr r0, r0, #0x18
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x18]
- add r1, r4, #0
- mov r2, #0xa5
- bl MOD11_0224B310
- ldr r1, _02240484 ; =0x0000215C
- str r0, [r4, r1]
- ldr r1, [r4, r1]
- add r0, r4, #0
- bl MOD11_0224BF10
- ldr r1, _02240484 ; =0x0000215C
- str r0, [r4, r1]
- add r0, r1, #0
- ldr r1, [r4, r0]
- mov r0, #0
- add r2, r1, #0
- mvn r0, r0
- mul r2, r0
- ldr r0, _02240484 ; =0x0000215C
- mov r1, #1
- str r2, [r4, r0]
- add r0, r4, #0
- mov r2, #0x27
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x21
- str r0, [r4, #0xc]
- mov r7, #1
- b _0224043C
-_02240276:
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x28
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- mov r7, #2
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- b _0224043C
-_0224028C:
- ldr r2, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r2
- add r1, r4, r0
- ldr r0, _02240488 ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #0x40
- tst r0, r1
- beq _022402E0
- add r0, r4, #0
- add r1, r2, #0
- bl MOD11_02246D1C
- cmp r0, #0x62
- beq _022402E0
- bl rand_LC
- lsr r1, r0, #0x1f
- lsl r2, r0, #0x1e
- sub r2, r2, r1
- mov r0, #0x1e
- ror r2, r0
- add r0, r1, r2
- bne _022402E0
- ldr r0, [r4, #0x64]
- ldr r2, [sp, #0x28]
- lsl r1, r0, #2
- ldr r0, [r6, r1]
- bic r0, r2
- mov r2, #1
- orr r0, r2
- str r0, [r6, r1]
- add r1, r2, #0
- add r0, r4, #0
- mov r2, #0x20
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x26
- str r0, [r4, #0xc]
- mov r7, #1
-_022402E0:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _0224043C
-_022402E8:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _02240480 ; =0x00002DB0
- ldr r1, [r1, r0]
- mov r0, #0xf
- lsl r0, r0, #0x10
- and r0, r1
- beq _02240346
- lsr r0, r0, #0x10
- bl LowestFlagNo
- mov r1, #0x46
- lsl r1, r1, #2
- str r0, [r4, r1]
- bl rand_LC
- mov r1, #1
- tst r0, r1
- beq _02240326
- add r0, r4, #0
- mov r2, #0x6b
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- mov r7, #2
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- b _02240346
-_02240326:
- ldr r0, [r4, #0x64]
- mov r1, #8
- lsl r0, r0, #2
- ldr r2, [r6, r0]
- orr r1, r2
- str r1, [r6, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x6c
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x26
- str r0, [r4, #0xc]
- mov r7, #1
-_02240346:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _0224043C
-_0224034E:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r4, r0
- ldr r0, _02240480 ; =0x00002DB0
- ldr r1, [r2, r0]
- mov r0, #3
- lsl r0, r0, #8
- tst r0, r1
- beq _0224043C
- ldr r0, _02240480 ; =0x00002DB0
- ldr r1, [r2, r0]
- mov r0, #1
- lsl r0, r0, #8
- sub r1, r1, r0
- ldr r0, _02240480 ; =0x00002DB0
- str r1, [r2, r0]
- ldr r0, [r4, #0x64]
- mov r1, #0xc0
- mul r1, r0
- add r2, r4, r1
- ldr r1, _02240480 ; =0x00002DB0
- ldr r2, [r2, r1]
- mov r1, #3
- lsl r1, r1, #8
- tst r1, r2
- bne _022403E8
- lsl r0, r0, #2
- add r1, r4, r0
- ldr r0, _0224048C ; =0x000030E4
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _022403E8
- lsl r1, r0, #1
- ldr r0, _02240490 ; =0x00002144
- str r1, [r4, r0]
- ldr r3, [r4, #0x64]
- lsl r0, r3, #2
- add r1, r4, r0
- ldr r0, _02240494 ; =0x000030F4
- ldr r2, [r1, r0]
- mov r0, #0xc0
- mul r0, r2
- add r1, r4, r0
- ldr r0, _02240498 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _022403B8
- str r2, [r4, #0x6c]
- b _022403E8
-_022403B8:
- ldr r0, [sp, #0x18]
- add r1, r4, #0
- add r2, r3, #0
- bl MOD11_022482A4
- mov r1, #0xc0
- mul r1, r0
- str r0, [r4, #0x6c]
- ldr r0, _02240498 ; =0x00002D8C
- add r1, r4, r1
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _022403E8
- ldr r2, _0224049C ; =0x0000011A
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- mov r0, #0x26
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r7, #2
- b _0224043C
-_022403E8:
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x24
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- mov r7, #2
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- b _0224043C
-_022403FE:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _02240488 ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #0x20
- tst r0, r1
- beq _0224042E
- ldr r0, [sp, #0x1c]
- cmp r0, #0x7d
- beq _0224041A
- cmp r0, #0xfd
- bne _0224042E
-_0224041A:
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x1e
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- mov r7, #2
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
-_0224042E:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _0224043C
-_02240436:
- mov r0, #0
- str r0, [r4, #0x50]
- mov r7, #3
-_0224043C:
- cmp r7, #0
- bne _02240442
- b _0223FDDE
-_02240442:
- ldr r0, [sp, #0x18]
- ldr r2, [r4, #0x64]
- add r1, r4, #0
- bl MOD11_02245190
- cmp r7, #1
- bne _0224046A
- ldr r1, _022404A0 ; =0x0000213C
- mov r0, #2
- ldr r2, [r4, r1]
- orr r0, r2
- str r0, [r4, r1]
- add r0, r1, #0
- add r0, #0x30
- ldr r2, [r4, r0]
- mov r0, #2
- lsl r0, r0, #0x1e
- orr r0, r2
- add r1, #0x30
- str r0, [r4, r1]
-_0224046A:
- cmp r7, #3
- beq _02240474
- add sp, #0x2c
- mov r0, #1
- pop {r4, r5, r6, r7, pc}
-_02240474:
- mov r0, #0
- add sp, #0x2c
- pop {r4, r5, r6, r7, pc}
- nop
-_0224047C: .word 0x00003044
-_02240480: .word 0x00002DB0
-_02240484: .word 0x0000215C
-_02240488: .word 0x00002DAC
-_0224048C: .word 0x000030E4
-_02240490: .word 0x00002144
-_02240494: .word 0x000030F4
-_02240498: .word 0x00002D8C
-_0224049C: .word 0x0000011A
-_022404A0: .word 0x0000213C
-
- thumb_func_start MOD11_022404A4
-MOD11_022404A4: ; 0x022404A4
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r6, r5, #0
- ldr r7, _02240514 ; =0x0000216C
- mov r4, #0
- add r6, #0x54
-_022404B0:
- ldr r0, [r5, #0x54]
- cmp r0, #0
- beq _022404BC
- cmp r0, #1
- beq _022404FC
- b _02240502
-_022404BC:
- ldr r1, [r5, #0x64]
- ldr r2, [r5, #0x6c]
- add r0, r5, #0
- bl MOD11_02247418
- add r2, r0, #0
- beq _022404D4
- ldr r0, _02240514 ; =0x0000216C
- ldr r1, [r5, r0]
- ldr r0, _02240518 ; =0x001FD849
- tst r0, r1
- beq _022404D8
-_022404D4:
- cmp r2, #0xb5
- bne _022404F4
-_022404D8:
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r5, #8]
- mov r4, #1
- str r0, [r5, #0xc]
- mov r0, #0x15
- str r0, [r5, #8]
- mov r0, #2
- ldr r1, [r5, r7]
- lsl r0, r0, #0x1e
- orr r0, r1
- str r0, [r5, r7]
-_022404F4:
- ldr r0, [r6]
- add r0, r0, #1
- str r0, [r6]
- b _02240502
-_022404FC:
- mov r0, #0
- str r0, [r5, #0x54]
- mov r4, #2
-_02240502:
- cmp r4, #0
- beq _022404B0
- cmp r4, #2
- beq _0224050E
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_0224050E:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02240514: .word 0x0000216C
-_02240518: .word 0x001FD849
-
- thumb_func_start MOD11_0224051C
-MOD11_0224051C: ; 0x0224051C
- push {r4, lr}
- add r4, r1, #0
- ldr r2, _02240538 ; =0x00000116
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- pop {r4, pc}
- nop
-_02240538: .word 0x00000116
-
- thumb_func_start MOD11_0224053C
-MOD11_0224053C: ; 0x0224053C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x20
- str r0, [sp, #4]
- add r5, r1, #0
- add r6, r2, #0
- str r3, [sp, #8]
- bl MOD11_0222FF74
- mov r1, #1
- lsl r1, r1, #0xa
- tst r0, r1
- beq _0224055A
- add sp, #0x20
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0224055A:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02246D1C
- ldr r0, [sp, #0x38]
- ldr r2, _02240868 ; =0x00002D5E
- lsl r0, r0, #4
- str r0, [sp, #0x10]
- add r1, r5, r0
- mov r0, #0x3e
- lsl r0, r0, #4
- ldrb r0, [r1, r0]
- add r1, r6, #0
- str r0, [sp, #0x18]
- mov r0, #0xc0
- mul r1, r0
- str r1, [sp, #0xc]
- add r1, r5, r1
- ldrsb r1, [r1, r2]
- sub r1, r1, #6
- lsl r1, r1, #0x18
- asr r7, r1, #0x18
- ldr r1, [sp, #8]
- mul r0, r1
- str r0, [sp, #0x14]
- add r1, r5, r0
- add r0, r2, #1
- ldrsb r1, [r1, r0]
- mov r0, #6
- sub r0, r0, r1
- lsl r0, r0, #0x18
- asr r4, r0, #0x18
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02246D1C
- cmp r0, #0x56
- bne _022405AA
- lsl r0, r7, #0x19
- asr r7, r0, #0x18
-_022405AA:
- ldr r2, [sp, #8]
- add r0, r5, #0
- add r1, r6, #0
- mov r3, #0x56
- bl MOD11_02246D84
- cmp r0, #1
- bne _022405BE
- lsl r0, r4, #0x19
- asr r4, r0, #0x18
-_022405BE:
- ldr r2, [sp, #8]
- add r0, r5, #0
- add r1, r6, #0
- mov r3, #0x6d
- bl MOD11_02246D84
- cmp r0, #1
- bne _022405D0
- mov r7, #0
-_022405D0:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02246D1C
- cmp r0, #0x6d
- bne _022405DE
- mov r4, #0
-_022405DE:
- ldr r0, _0224086C ; =0x00002DB0
- ldr r1, [sp, #0x14]
- add r2, r5, r0
- str r2, [sp, #0x1c]
- ldr r1, [r2, r1]
- mov r2, #2
- lsl r2, r2, #0x1c
- tst r1, r2
- bne _022405FE
- ldr r1, [sp, #0x14]
- add r0, #0x10
- add r1, r5, r1
- ldr r1, [r1, r0]
- lsr r0, r2, #7
- tst r0, r1
- beq _02240604
-_022405FE:
- cmp r4, #0
- bge _02240604
- mov r4, #0
-_02240604:
- add r0, r4, #6
- add r0, r0, r7
- lsl r0, r0, #0x18
- asr r7, r0, #0x18
- bpl _02240610
- mov r7, #0
-_02240610:
- cmp r7, #0xc
- ble _02240616
- mov r7, #0xc
-_02240616:
- ldr r0, _02240870 ; =0x000003E3
- add r1, r5, r0
- ldr r0, [sp, #0x10]
- ldrb r4, [r1, r0]
- cmp r4, #0
- bne _02240628
- add sp, #0x20
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02240628:
- ldr r0, _02240874 ; =0x0000213C
- mov r1, #0x20
- ldr r0, [r5, r0]
- add r2, r0, #0
- tst r2, r1
- beq _0224063A
- add sp, #0x20
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0224063A:
- lsl r1, r1, #5
- tst r0, r1
- beq _02240646
- add sp, #0x20
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02240646:
- mov r0, #0xd
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _02240688
- mov r0, #0x4c
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _02240688
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #0x30
- tst r0, r1
- beq _02240688
- ldr r0, [sp, #0x10]
- add r1, r5, r0
- ldr r0, _02240878 ; =0x000003DE
- ldrh r0, [r1, r0]
- cmp r0, #0x98
- bne _02240688
- mov r4, #0x32
-_02240688:
- ldr r0, _0224087C ; =0x0225E178
- lsl r1, r7, #1
- ldrb r0, [r0, r1]
- ldr r2, _02240880 ; =0x0225E179
- ldrb r1, [r2, r1]
- mul r0, r4
- bl _u32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02246D1C
- cmp r0, #0xe
- bne _022406B6
- mov r0, #0x82
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_022406B6:
- mov r0, #0xd
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _0224074E
- mov r0, #0x4c
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _0224074E
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #0xc
- tst r0, r1
- beq _02240708
- ldr r2, [sp, #8]
- add r0, r5, #0
- add r1, r6, #0
- mov r3, #8
- bl MOD11_02246D84
- cmp r0, #1
- bne _02240708
- mov r0, #0x50
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_02240708:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #0xc0
- tst r0, r1
- beq _02240732
- ldr r2, [sp, #8]
- add r0, r5, #0
- add r1, r6, #0
- mov r3, #0x51
- bl MOD11_02246D84
- cmp r0, #1
- bne _02240732
- mov r0, #0x50
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_02240732:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #2
- lsl r0, r0, #0xe
- tst r0, r1
- beq _0224074E
- mov r0, #6
- mul r0, r4
- mov r1, #0xa
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_0224074E:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02246D1C
- cmp r0, #0x37
- bne _0224076E
- ldr r0, [sp, #0x18]
- cmp r0, #0
- bne _0224076E
- mov r0, #0x50
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_0224076E:
- ldr r2, [sp, #8]
- add r0, r5, #0
- add r1, r6, #0
- mov r3, #0x4d
- bl MOD11_02246D84
- cmp r0, #1
- bne _02240798
- ldr r1, [sp, #0x1c]
- ldr r0, [sp, #0x14]
- ldr r1, [r1, r0]
- mov r0, #7
- tst r0, r1
- beq _02240798
- mov r0, #0x32
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_02240798:
- ldr r1, [sp, #8]
- add r0, r5, #0
- bl MOD11_02249D90
- add r7, r0, #0
- ldr r1, [sp, #8]
- add r0, r5, #0
- mov r2, #0
- bl MOD11_02249DA4
- cmp r7, #0x2f
- bne _022407BE
- mov r1, #0x64
- sub r0, r1, r0
- mul r0, r4
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_022407BE:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02249D90
- add r7, r0, #0
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0
- bl MOD11_02249DA4
- add r6, r0, #0
- cmp r7, #0x5c
- bne _022407E6
- add r0, #0x64
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_022407E6:
- cmp r7, #0x67
- bne _02240806
- ldr r1, [sp, #8]
- add r0, r5, #0
- bl MOD11_02249B7C
- cmp r0, #1
- bne _02240806
- add r6, #0x64
- add r0, r4, #0
- mul r0, r6
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_02240806:
- ldr r0, _02240884 ; =0x00002DCC
- ldr r1, [sp, #0xc]
- add r0, r5, r0
- ldr r2, [r0, r1]
- lsl r1, r2, #4
- lsr r1, r1, #0x1f
- beq _0224082A
- ldr r1, _02240888 ; =0xF7FFFFFF
- and r2, r1
- ldr r1, [sp, #0xc]
- str r2, [r0, r1]
- mov r0, #0x78
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_0224082A:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #7
- lsl r0, r0, #0xc
- tst r0, r1
- beq _02240846
- mov r0, #0xa
- mul r0, r4
- mov r1, #6
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_02240846:
- bl rand_LC
- mov r1, #0x64
- bl _s32_div_f
- add r0, r1, #1
- cmp r0, r4
- ble _02240860
- ldr r1, _0224088C ; =0x0000216C
- mov r0, #1
- ldr r2, [r5, r1]
- orr r0, r2
- str r0, [r5, r1]
-_02240860:
- mov r0, #0
- add sp, #0x20
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02240868: .word 0x00002D5E
-_0224086C: .word 0x00002DB0
-_02240870: .word 0x000003E3
-_02240874: .word 0x0000213C
-_02240878: .word 0x000003DE
-_0224087C: .word 0x0225E178
-_02240880: .word 0x0225E179
-_02240884: .word 0x00002DCC
-_02240888: .word 0xF7FFFFFF
-_0224088C: .word 0x0000216C
-
- thumb_func_start MOD11_02240890
-MOD11_02240890: ; 0x02240890
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- str r0, [sp, #4]
- add r5, r1, #0
- ldr r0, _02240A54 ; =0x0000213C
- add r6, r3, #0
- ldr r3, [r5, r0]
- mov r1, #0x20
- add r7, r2, #0
- ldr r4, [sp, #0x20]
- tst r1, r3
- beq _022408AE
- add sp, #8
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_022408AE:
- lsl r1, r6, #6
- add r3, r5, r1
- mov r1, #0x75
- lsl r1, r1, #2
- ldr r1, [r3, r1]
- lsl r1, r1, #0x1d
- lsr r1, r1, #0x1f
- beq _0224091C
- lsl r1, r4, #4
- add r3, r5, r1
- ldr r1, _02240A58 ; =0x000003E9
- ldrb r3, [r3, r1]
- mov r1, #2
- tst r1, r3
- beq _0224091C
- add r0, #0x30
- ldr r1, [r5, r0]
- ldr r0, _02240A5C ; =0x801FDA49
- tst r0, r1
- bne _0224091C
- cmp r4, #0xae
- bne _022408E8
- lsl r1, r4, #0x10
- add r0, r5, #0
- lsr r1, r1, #0x10
- bl MOD11_02246C20
- cmp r0, #1
- bne _0224091C
-_022408E8:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246AF8
- cmp r0, #0
- beq _02240900
- ldr r0, _02240A54 ; =0x0000213C
- ldr r1, [r5, r0]
- mov r0, #2
- lsl r0, r0, #8
- tst r0, r1
- beq _0224091C
-_02240900:
- ldr r0, [sp, #4]
- add r1, r5, #0
- add r2, r7, #0
- bl MOD11_022451F0
- ldr r1, _02240A60 ; =0x0000216C
- mov r0, #2
- ldr r2, [r5, r1]
- lsl r0, r0, #0xe
- orr r0, r2
- str r0, [r5, r1]
- add sp, #8
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0224091C:
- ldr r0, _02240A54 ; =0x0000213C
- ldr r1, [r5, r0]
- mov r0, #1
- lsl r0, r0, #0xa
- tst r0, r1
- bne _0224096E
- mov r0, #0xc0
- mul r0, r6
- add r3, r5, r0
- mov r0, #0xb7
- lsl r0, r0, #6
- ldr r2, [r3, r0]
- mov r1, #0x18
- tst r1, r2
- beq _02240946
- add r0, #0xc
- ldr r0, [r3, r0]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1e
- cmp r7, r0
- beq _0224095E
-_02240946:
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x63
- beq _0224095E
- ldr r1, [r5, #0x6c]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x63
- bne _0224096E
-_0224095E:
- ldr r1, _02240A60 ; =0x0000216C
- mov r0, #1
- ldr r2, [r5, r1]
- add sp, #8
- bic r2, r0
- str r2, [r5, r1]
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0224096E:
- mov r0, #0xd
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _022409DC
- mov r0, #0x4c
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _022409DC
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #3
- tst r0, r1
- beq _022409B8
- lsl r0, r4, #4
- add r1, r5, r0
- ldr r0, _02240A64 ; =0x000003DE
- ldrh r0, [r1, r0]
- cmp r0, #0x98
- bne _022409B8
- ldr r1, _02240A60 ; =0x0000216C
- mov r0, #1
- ldr r2, [r5, r1]
- bic r2, r0
- str r2, [r5, r1]
-_022409B8:
- mov r0, #6
- lsl r0, r0, #6
- ldr r0, [r5, r0]
- mov r1, #0xc0
- tst r0, r1
- beq _022409DC
- lsl r0, r4, #4
- add r2, r5, r0
- ldr r0, _02240A64 ; =0x000003DE
- add r1, #0x44
- ldrh r0, [r2, r0]
- cmp r0, r1
- bne _022409DC
- ldr r1, _02240A60 ; =0x0000216C
- mov r0, #1
- ldr r2, [r5, r1]
- bic r2, r0
- str r2, [r5, r1]
-_022409DC:
- ldr r1, _02240A60 ; =0x0000216C
- mov r2, #1
- ldr r0, [r5, r1]
- lsl r2, r2, #0xa
- tst r0, r2
- bne _02240A4C
- ldr r0, _02240A68 ; =0x00003044
- sub r2, #0x1a
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r0, r5, r0
- ldrh r0, [r0, r2]
- cmp r0, #0x80
- beq _02240A4C
- sub r1, #0x30
- ldr r0, [r5, r1]
- mov r1, #4
- tst r1, r0
- bne _02240A14
- mov r1, #0xc0
- mul r1, r6
- add r2, r5, r1
- mov r1, #0xb7
- lsl r1, r1, #6
- ldr r2, [r2, r1]
- mov r1, #0x40
- tst r1, r2
- bne _02240A40
-_02240A14:
- mov r1, #0xc0
- mul r1, r6
- add r2, r5, r1
- mov r1, #0xb7
- lsl r1, r1, #6
- ldr r1, [r2, r1]
- mov r2, #2
- lsl r2, r2, #0x1c
- tst r2, r1
- bne _02240A40
- mov r2, #8
- tst r2, r0
- bne _02240A34
- mov r2, #0x80
- tst r2, r1
- bne _02240A40
-_02240A34:
- mov r2, #0x10
- tst r0, r2
- bne _02240A4C
- lsl r0, r2, #0xe
- tst r0, r1
- beq _02240A4C
-_02240A40:
- ldr r1, _02240A60 ; =0x0000216C
- mov r0, #1
- ldr r2, [r5, r1]
- lsl r0, r0, #0x10
- orr r0, r2
- str r0, [r5, r1]
-_02240A4C:
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02240A54: .word 0x0000213C
-_02240A58: .word 0x000003E9
-_02240A5C: .word 0x801FDA49
-_02240A60: .word 0x0000216C
-_02240A64: .word 0x000003DE
-_02240A68: .word 0x00003044
-
- thumb_func_start MOD11_02240A6C
-MOD11_02240A6C: ; 0x02240A6C
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- bl MOD11_0222FF84
- add r2, r0, #0
- ldr r0, [r4, #0x6c]
- cmp r0, #0xff
- bne _02240A80
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02240A80:
- ldr r6, _02240BBC ; =0x0000216C
- ldr r1, _02240BC0 ; =0x801FDA49
- ldr r3, [r4, r6]
- add r7, r3, #0
- and r7, r1
- bne _02240B12
- mov r1, #0x75
- lsl r1, r1, #2
- lsl r0, r0, #6
- add r5, r4, r1
- ldr r3, [r5, r0]
- mov ip, r0
- lsl r0, r3, #0x1b
- lsr r0, r0, #0x1f
- beq _02240B12
- ldr r0, _02240BC4 ; =0x00003044
- ldr r0, [r4, r0]
- lsl r0, r0, #4
- add r1, r4, r0
- ldr r0, _02240BC8 ; =0x000003E9
- ldrb r0, [r1, r0]
- mov r1, #4
- tst r0, r1
- beq _02240B12
- mov r0, #0x10
- bic r3, r0
- mov r0, ip
- str r3, [r5, r0]
- ldr r2, [r4, #0x64]
- mov r0, #0
- lsl r2, r2, #1
- add r3, r4, r2
- ldr r2, _02240BC4 ; =0x00003044
- add r2, #0x18
- strh r0, [r3, r2]
- ldr r2, [r4, #0x64]
- ldr r0, _02240BC4 ; =0x00003044
- lsl r2, r2, #1
- sub r0, r0, #4
- add r3, r4, r2
- ldr r2, _02240BC4 ; =0x00003044
- ldr r0, [r4, r0]
- add r2, #0x38
- strh r0, [r3, r2]
- ldr r0, _02240BC4 ; =0x00003044
- sub r0, r0, #4
- ldr r2, [r4, r0]
- ldr r0, _02240BC4 ; =0x00003044
- add r0, r0, #4
- str r2, [r4, r0]
- add r0, r6, #0
- sub r0, #0x30
- ldr r2, [r4, r0]
- lsl r0, r1, #0x12
- orr r0, r2
- sub r6, #0x30
- str r0, [r4, r6]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x8b
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- ldr r1, [r4, #0x6c]
- ldr r2, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_0224C438
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_02240B12:
- mov r1, #0
- cmp r2, #0
- ble _02240BB8
- mov r0, #0x75
- lsl r0, r0, #2
- add r0, r4, r0
-_02240B1E:
- ldr r3, _02240BCC ; =0x000021EC
- add r5, r4, r1
- ldrb r5, [r5, r3]
- cmp r7, #0
- bne _02240BB2
- lsl r3, r5, #6
- str r3, [sp]
- ldr r3, [r0, r3]
- lsl r3, r3, #0x1a
- lsr r3, r3, #0x1f
- beq _02240BB2
- ldr r3, _02240BC4 ; =0x00003044
- ldr r3, [r4, r3]
- lsl r3, r3, #4
- add r6, r4, r3
- ldr r3, _02240BC8 ; =0x000003E9
- ldrb r6, [r6, r3]
- mov r3, #8
- tst r3, r6
- beq _02240BB2
- mov r1, #0x46
- lsl r1, r1, #2
- str r5, [r4, r1]
- ldr r1, [sp]
- mov r7, #1
- ldr r2, [r0, r1]
- mov r1, #0x20
- bic r2, r1
- ldr r1, [sp]
- lsl r7, r7, #0x14
- str r2, [r0, r1]
- ldr r2, _02240BD0 ; =0x0000213C
- ldr r0, [r4, r2]
- tst r0, r7
- bne _02240B92
- ldr r1, [r4, #0x64]
- mov r0, #0
- lsl r1, r1, #1
- add r3, r4, r1
- ldr r1, _02240BD4 ; =0x0000305C
- strh r0, [r3, r1]
- add r0, r1, #0
- sub r0, #0x1c
- ldr r6, [r4, r0]
- ldr r0, [r4, #0x64]
- lsl r0, r0, #1
- add r3, r4, r0
- add r0, r1, #0
- add r0, #0x20
- strh r6, [r3, r0]
- add r0, r1, #0
- sub r0, #0x1c
- ldr r0, [r4, r0]
- sub r1, #0x14
- str r0, [r4, r1]
- ldr r0, [r4, r2]
- orr r0, r7
- str r0, [r4, r2]
-_02240B92:
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x92
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add r1, r5, #0
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- ldr r2, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_0224C438
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_02240BB2:
- add r1, r1, #1
- cmp r1, r2
- blt _02240B1E
-_02240BB8:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02240BBC: .word 0x0000216C
-_02240BC0: .word 0x801FDA49
-_02240BC4: .word 0x00003044
-_02240BC8: .word 0x000003E9
-_02240BCC: .word 0x000021EC
-_02240BD0: .word 0x0000213C
-_02240BD4: .word 0x0000305C
-
- thumb_func_start MOD11_02240BD8
-MOD11_02240BD8: ; 0x02240BD8
- push {r4, lr}
- add r4, r1, #0
- bl MOD11_02232264
- cmp r0, #1
- bne _02240BF0
- add r0, r4, #0
- mov r1, #0
- add r0, #0xb4
- str r1, [r0]
- ldr r0, [r4, #0xc]
- str r0, [r4, #8]
-_02240BF0:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02240BF4
-MOD11_02240BF4: ; 0x02240BF4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldr r2, [r4, #0x48]
- add r5, r0, #0
- cmp r2, #6
- bhi _02240CEA
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_02240C0C: ; jump table
- .short _02240C1A - _02240C0C - 2 ; case 0
- .short _02240C26 - _02240C0C - 2 ; case 1
- .short _02240C3E - _02240C0C - 2 ; case 2
- .short _02240C8A - _02240C0C - 2 ; case 3
- .short _02240CA6 - _02240C0C - 2 ; case 4
- .short _02240CB8 - _02240C0C - 2 ; case 5
- .short _02240CD4 - _02240C0C - 2 ; case 6
-_02240C1A:
- bl MOD11_0224051C
- ldr r0, [r4, #0x48]
- add r0, r0, #1
- str r0, [r4, #0x48]
- pop {r3, r4, r5, pc}
-_02240C26:
- ldr r2, _02240D30 ; =0x00002184
- ldr r3, [r4, r2]
- mov r2, #4
- tst r2, r3
- bne _02240C38
- bl MOD11_0223FDB0
- cmp r0, #1
- beq _02240D2C
-_02240C38:
- ldr r0, [r4, #0x48]
- add r0, r0, #1
- str r0, [r4, #0x48]
-_02240C3E:
- ldr r0, _02240D30 ; =0x00002184
- ldr r1, [r4, r0]
- mov r0, #1
- tst r0, r1
- bne _02240C84
- add r0, r5, #0
- add r1, r4, #0
- add r2, sp, #0
- bl MOD11_0223F84C
- cmp r0, #0
- beq _02240C84
- cmp r0, #1
- beq _02240C64
- cmp r0, #2
- beq _02240C6A
- cmp r0, #3
- beq _02240C70
- b _02240C74
-_02240C64:
- mov r0, #0x26
- str r0, [r4, #0xc]
- b _02240C74
-_02240C6A:
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- b _02240C74
-_02240C70:
- mov r0, #0x21
- str r0, [r4, #0xc]
-_02240C74:
- mov r0, #0x15
- str r0, [r4, #8]
- ldr r2, [sp]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- pop {r3, r4, r5, pc}
-_02240C84:
- ldr r0, [r4, #0x48]
- add r0, r0, #1
- str r0, [r4, #0x48]
-_02240C8A:
- ldr r0, _02240D30 ; =0x00002184
- ldr r1, [r4, r0]
- mov r0, #8
- tst r0, r1
- bne _02240CA0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223FB10
- cmp r0, #1
- beq _02240D2C
-_02240CA0:
- ldr r0, [r4, #0x48]
- add r0, r0, #1
- str r0, [r4, #0x48]
-_02240CA6:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223FCAC
- cmp r0, #1
- beq _02240D2C
- ldr r0, [r4, #0x48]
- add r0, r0, #1
- str r0, [r4, #0x48]
-_02240CB8:
- ldr r0, _02240D30 ; =0x00002184
- ldr r1, [r4, r0]
- mov r0, #0x80
- tst r0, r1
- bne _02240CCE
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02240A6C
- cmp r0, #1
- beq _02240D2C
-_02240CCE:
- ldr r0, [r4, #0x48]
- add r0, r0, #1
- str r0, [r4, #0x48]
-_02240CD4:
- ldr r3, _02240D34 ; =0x00003044
- ldr r2, [r4, #0x64]
- ldr r3, [r4, r3]
- add r0, r5, #0
- lsl r3, r3, #0x10
- add r1, r4, #0
- lsr r3, r3, #0x10
- bl MOD11_02244F68
- mov r0, #0
- str r0, [r4, #0x48]
-_02240CEA:
- ldr r1, _02240D38 ; =0x0000216C
- ldr r0, _02240D3C ; =0x801FDA49
- ldr r2, [r4, r1]
- tst r0, r2
- beq _02240CFA
- mov r0, #0x19
- str r0, [r4, #8]
- b _02240D24
-_02240CFA:
- add r0, r1, #0
- sub r0, #0x2c
- ldr r2, [r4, r0]
- mov r0, #0x40
- orr r0, r2
- sub r1, #0x2c
- str r0, [r4, r1]
- ldr r2, _02240D34 ; =0x00003044
- add r0, r4, #0
- ldr r2, [r4, r2]
- mov r1, #0
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x17
- str r0, [r4, #0xc]
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02247380
-_02240D24:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0224AB44
-_02240D2C:
- pop {r3, r4, r5, pc}
- nop
-_02240D30: .word 0x00002184
-_02240D34: .word 0x00003044
-_02240D38: .word 0x0000216C
-_02240D3C: .word 0x801FDA49
-
- thumb_func_start MOD11_02240D40
-MOD11_02240D40: ; 0x02240D40
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldr r2, [r4, #0x4c]
- add r5, r0, #0
- cmp r2, #6
- bhi _02240E20
- add r3, r2, r2
- add r3, pc
- ldrh r3, [r3, #6]
- lsl r3, r3, #0x10
- asr r3, r3, #0x10
- add pc, r3
-_02240D58: ; jump table
- .short _02240D66 - _02240D58 - 2 ; case 0
- .short _02240D72 - _02240D58 - 2 ; case 1
- .short _02240D84 - _02240D58 - 2 ; case 2
- .short _02240DAE - _02240D58 - 2 ; case 3
- .short _02240DD8 - _02240D58 - 2 ; case 4
- .short _02240DFA - _02240D58 - 2 ; case 5
- .short _02240E1C - _02240D58 - 2 ; case 6
-_02240D66:
- add r2, r2, #1
- str r2, [r4, #0x4c]
- bl MOD11_0223FCAC
- cmp r0, #1
- beq _02240E24
-_02240D72:
- ldr r0, [r4, #0x4c]
- add r1, r4, #0
- add r0, r0, #1
- str r0, [r4, #0x4c]
- add r0, r5, #0
- bl MOD11_0224510C
- cmp r0, #1
- beq _02240E24
-_02240D84:
- ldr r0, _02240E28 ; =0x00002184
- ldr r1, [r4, r0]
- mov r0, #0x20
- tst r0, r1
- bne _02240DA8
- ldr r3, [r4, #0x6c]
- cmp r3, #0xff
- beq _02240DA8
- ldr r0, _02240E2C ; =0x00003044
- add r1, r4, #0
- ldr r0, [r4, r0]
- str r0, [sp]
- ldr r2, [r4, #0x64]
- add r0, r5, #0
- bl MOD11_0224053C
- cmp r0, #1
- beq _02240E24
-_02240DA8:
- ldr r0, [r4, #0x4c]
- add r0, r0, #1
- str r0, [r4, #0x4c]
-_02240DAE:
- ldr r0, _02240E28 ; =0x00002184
- ldr r1, [r4, r0]
- mov r0, #0x40
- tst r0, r1
- bne _02240DD2
- ldr r3, [r4, #0x6c]
- cmp r3, #0xff
- beq _02240DD2
- ldr r0, _02240E2C ; =0x00003044
- add r1, r4, #0
- ldr r0, [r4, r0]
- str r0, [sp]
- ldr r2, [r4, #0x64]
- add r0, r5, #0
- bl MOD11_02240890
- cmp r0, #1
- beq _02240E24
-_02240DD2:
- ldr r0, [r4, #0x4c]
- add r0, r0, #1
- str r0, [r4, #0x4c]
-_02240DD8:
- ldr r0, _02240E28 ; =0x00002184
- ldr r1, [r4, r0]
- mov r0, #2
- tst r0, r1
- bne _02240DF4
- ldr r0, [r4, #0x6c]
- cmp r0, #0xff
- beq _02240DF4
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0223FD20
- cmp r0, #1
- beq _02240E24
-_02240DF4:
- ldr r0, [r4, #0x4c]
- add r0, r0, #1
- str r0, [r4, #0x4c]
-_02240DFA:
- ldr r0, _02240E28 ; =0x00002184
- ldr r1, [r4, r0]
- mov r0, #0x10
- tst r0, r1
- bne _02240E16
- ldr r0, [r4, #0x6c]
- cmp r0, #0xff
- beq _02240E16
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_022404A4
- cmp r0, #1
- beq _02240E24
-_02240E16:
- ldr r0, [r4, #0x4c]
- add r0, r0, #1
- str r0, [r4, #0x4c]
-_02240E1C:
- mov r0, #0
- str r0, [r4, #0x4c]
-_02240E20:
- mov r0, #0x18
- str r0, [r4, #8]
-_02240E24:
- pop {r3, r4, r5, pc}
- nop
-_02240E28: .word 0x00002184
-_02240E2C: .word 0x00003044
-
- thumb_func_start MOD11_02240E30
-MOD11_02240E30: ; 0x02240E30
- push {r3, r4, lr}
- sub sp, #4
- add r2, sp, #0
- add r4, r1, #0
- bl MOD11_02244948
- cmp r0, #1
- bne _02240E56
- ldr r2, [sp]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x19
- add sp, #4
- str r0, [r4, #0xc]
- pop {r3, r4, pc}
-_02240E56:
- mov r0, #0x19
- str r0, [r4, #8]
- add sp, #4
- pop {r3, r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02240E60
-MOD11_02240E60: ; 0x02240E60
- push {r4, lr}
- ldr r0, _02240ED8 ; =0x0000216C
- add r4, r1, #0
- ldr r1, [r4, r0]
- mov r2, #2
- lsl r2, r2, #0x1e
- add r3, r1, #0
- tst r3, r2
- beq _02240E78
- mov r0, #0x22
- str r0, [r4, #8]
- pop {r4, pc}
-_02240E78:
- lsr r2, r2, #0x16
- tst r2, r1
- beq _02240E92
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x2a
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x26
- str r0, [r4, #0xc]
- pop {r4, pc}
-_02240E92:
- add r2, r0, #0
- add r2, #0x14
- ldr r2, [r4, r2]
- cmp r2, #0
- beq _02240EB8
- mov r3, #1
- add r2, r1, #0
- tst r2, r3
- beq _02240EB8
- mov r2, #1
- bic r1, r2
- str r1, [r4, r0]
- ldr r2, [r4, r0]
- lsl r1, r3, #0xe
- orr r1, r2
- str r1, [r4, r0]
- mov r0, #0x1c
- str r0, [r4, #8]
- pop {r4, pc}
-_02240EB8:
- ldr r0, _02240EDC ; =0x001FD849
- tst r0, r1
- beq _02240ED2
- add r0, r4, #0
- mov r1, #1
- mov r2, #7
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x21
- str r0, [r4, #0xc]
- pop {r4, pc}
-_02240ED2:
- mov r0, #0x1a
- str r0, [r4, #8]
- pop {r4, pc}
- .align 2, 0
-_02240ED8: .word 0x0000216C
-_02240EDC: .word 0x001FD849
-
- thumb_func_start MOD11_02240EE0
-MOD11_02240EE0: ; 0x02240EE0
- push {r4, lr}
- add r4, r1, #0
- mov r1, #1
- add r0, r4, #0
- add r2, r1, #0
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x1b
- str r0, [r4, #0xc]
- pop {r4, pc}
-
- thumb_func_start MOD11_02240EF8
-MOD11_02240EF8: ; 0x02240EF8
- push {r3, r4, r5, r6, r7, lr}
- ldr r2, _02241260 ; =0x0000216C
- add r4, r1, #0
- ldr r1, [r4, r2]
- add r5, r0, #0
- mov r0, #0x20
- tst r0, r1
- beq _02240F1E
- ldr r0, [r4, #0x6c]
- mov r1, #0xc0
- add r3, r0, #0
- mul r3, r1
- ldr r0, _02241264 ; =0x00002D90
- add r3, r4, r3
- ldr r0, [r3, r0]
- sub r1, #0xc1
- mul r1, r0
- sub r2, #0x28
- str r1, [r4, r2]
-_02240F1E:
- ldr r0, _02241268 ; =0x00002144
- ldr r0, [r4, r0]
- cmp r0, #0
- bne _02240F28
- b _022412E8
-_02240F28:
- ldr r1, [r4, #0x6c]
- add r0, r4, #0
- bl MOD11_02249D90
- add r7, r0, #0
- ldr r1, [r4, #0x6c]
- add r0, r4, #0
- mov r2, #0
- bl MOD11_02249DA4
- str r0, [sp]
- ldr r0, _02241268 ; =0x00002144
- ldr r0, [r4, r0]
- cmp r0, #0
- blt _02240F4A
- bl ErrorHandling
-_02240F4A:
- ldr r1, [r4, #0x64]
- add r0, r5, #0
- bl MOD11_02230270
- add r6, r0, #0
- ldr r1, [r4, #0x6c]
- add r0, r5, #0
- bl MOD11_02230270
- cmp r6, r0
- bne _02240F6C
- ldr r1, [r4, #0x64]
- add r0, r5, #0
- mov r2, #0
- mov r3, #0x46
- bl MOD11_022564A8
-_02240F6C:
- ldr r0, [r4, #0x6c]
- ldr r2, [r4, #0x64]
- lsl r0, r0, #2
- add r1, r4, r0
- ldr r0, _0224126C ; =0x000030F4
- str r2, [r1, r0]
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- add r6, r1, #0
- mul r6, r0
- mov r2, #1
- ldr r1, _02241270 ; =0x00002DB0
- add r5, r4, r6
- ldr r3, [r5, r1]
- lsl r2, r2, #0x18
- tst r2, r3
- beq _02241044
- ldr r2, _02241268 ; =0x00002144
- ldr r2, [r4, r2]
- cmp r2, #0
- bge _02241044
- add r3, r1, #0
- add r3, #0x30
- ldr r3, [r5, r3]
- add r5, r2, r3
- cmp r5, #0
- bgt _02240FE8
- mov r2, #0xbb
- lsl r2, r2, #2
- add r6, r4, r2
- ldr r2, [r4, #0x64]
- mov r5, #0x1c
- mul r5, r2
- ldr r2, [r6, r5]
- sub r2, r2, r3
- str r2, [r6, r5]
- ldr r5, [r4, #0x6c]
- add r3, r4, r1
- add r2, r5, #0
- mul r2, r0
- ldr r6, [r3, r2]
- ldr r5, _02241274 ; =0xFEFFFFFF
- and r5, r6
- str r5, [r3, r2]
- ldr r2, [r4, #0x6c]
- add r3, r2, #0
- add r2, r1, #0
- mul r3, r0
- add r3, r4, r3
- add r2, #0x30
- ldr r2, [r3, r2]
- add r1, #0x30
- neg r3, r2
- ldr r2, _02241268 ; =0x00002144
- add r2, r2, #4
- str r3, [r4, r2]
- ldr r2, [r4, #0x6c]
- mov r3, #0
- mul r0, r2
- add r0, r4, r0
- str r3, [r0, r1]
- b _02241014
-_02240FE8:
- mov r3, #0xbb
- lsl r3, r3, #2
- add r6, r4, r3
- ldr r3, [r4, #0x64]
- mov r5, #0x1c
- mul r5, r3
- ldr r3, [r6, r5]
- add r1, #0x30
- add r2, r3, r2
- str r2, [r6, r5]
- ldr r2, [r4, #0x6c]
- add r1, r4, r1
- mul r0, r2
- ldr r2, _02241268 ; =0x00002144
- ldr r3, [r1, r0]
- ldr r2, [r4, r2]
- add r2, r3, r2
- str r2, [r1, r0]
- ldr r0, _02241268 ; =0x00002144
- ldr r1, [r4, r0]
- add r0, r0, #4
- str r1, [r4, r0]
-_02241014:
- mov r0, #0xba
- lsl r0, r0, #2
- ldr r2, [r4, #0x6c]
- add r1, r4, r0
- add r0, r2, #0
- mov r3, #0x1c
- mul r0, r3
- ldr r5, [r1, r0]
- mov r2, #8
- orr r2, r5
- str r2, [r1, r0]
- ldr r0, [r4, #0x6c]
- add r3, #0xfc
- str r0, [r4, r3]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x5a
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x1c
- str r0, [r4, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_02241044:
- ldr r0, _02241278 ; =0x00003044
- ldr r0, [r4, r0]
- lsl r0, r0, #4
- add r1, r4, r0
- ldr r0, _0224127C ; =0x000003DE
- ldrh r0, [r1, r0]
- cmp r0, #0x65
- bne _0224106A
- ldr r0, _02241280 ; =0x00002D8C
- add r1, r4, r6
- ldr r2, [r1, r0]
- ldr r0, _02241268 ; =0x00002144
- ldr r1, [r4, r0]
- add r1, r1, r2
- cmp r1, #0
- bgt _0224106A
- sub r1, r2, #1
- neg r1, r1
- str r1, [r4, r0]
-_0224106A:
- ldr r0, [r4, #0x6c]
- lsl r0, r0, #6
- add r1, r4, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x16
- lsr r0, r0, #0x1f
- bne _022410D0
- cmp r7, #0x40
- bne _022410A4
- bl rand_LC
- mov r1, #0x64
- bl _s32_div_f
- ldr r0, [sp]
- cmp r1, r0
- bge _022410A4
- mov r0, #0xb5
- lsl r0, r0, #2
- add r1, r4, r0
- ldr r2, [r4, #0x6c]
- mov r0, #0x1c
- mul r0, r2
- ldr r3, [r1, r0]
- mov r2, #0x20
- orr r2, r3
- str r2, [r1, r0]
-_022410A4:
- cmp r7, #0x66
- bne _022410D0
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r3, r4, r0
- ldr r0, _02241280 ; =0x00002D8C
- ldr r2, [r3, r0]
- add r0, r0, #4
- ldr r0, [r3, r0]
- cmp r2, r0
- bne _022410D0
- mov r0, #0xb5
- lsl r0, r0, #2
- add r3, r1, #0
- mov r2, #0x1c
- add r0, r4, r0
- mul r3, r2
- ldr r2, [r0, r3]
- mov r1, #0x20
- orr r1, r2
- str r1, [r0, r3]
-_022410D0:
- ldr r0, [r4, #0x6c]
- lsl r1, r0, #6
- add r2, r4, r1
- mov r1, #0x75
- lsl r1, r1, #2
- ldr r1, [r2, r1]
- lsl r1, r1, #0x16
- lsr r1, r1, #0x1f
- bne _022410F4
- mov r1, #0x1c
- mul r1, r0
- add r2, r4, r1
- mov r1, #0xb5
- lsl r1, r1, #2
- ldr r1, [r2, r1]
- lsl r1, r1, #0x1a
- lsr r1, r1, #0x1f
- beq _0224113E
-_022410F4:
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _02241280 ; =0x00002D8C
- add r1, r4, r1
- ldr r2, _02241268 ; =0x00002144
- ldr r1, [r1, r0]
- ldr r0, [r4, r2]
- add r0, r0, r1
- cmp r0, #0
- bgt _0224113E
- sub r0, r1, #1
- neg r0, r0
- str r0, [r4, r2]
- ldr r0, [r4, #0x6c]
- mov r1, #0x75
- lsl r0, r0, #6
- add r0, r4, r0
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- lsl r0, r0, #0x16
- lsr r0, r0, #0x1f
- beq _02241130
- add r0, r2, #0
- add r0, #0x28
- ldr r1, [r4, r0]
- mov r0, #0x80
- orr r0, r1
- add r2, #0x28
- str r0, [r4, r2]
- b _0224113E
-_02241130:
- add r0, r2, #0
- add r0, #0x28
- ldr r0, [r4, r0]
- sub r1, #0xd4
- orr r0, r1
- add r2, #0x28
- str r0, [r4, r2]
-_0224113E:
- ldr r1, [r4, #0x6c]
- ldr r0, _02241284 ; =0x000030E4
- lsl r3, r1, #2
- ldr r1, _02241268 ; =0x00002144
- add r0, r4, r0
- ldr r2, [r0, r3]
- ldr r1, [r4, r1]
- add r1, r2, r1
- str r1, [r0, r3]
- ldr r0, _02241288 ; =0x00002DBC
- ldr r1, [r4, #0x6c]
- add r3, r4, r0
- mov r0, #0xc0
- add r2, r1, #0
- mul r2, r0
- ldrb r0, [r3, r2]
- cmp r0, #0xff
- bhs _02241166
- add r0, r0, #1
- strb r0, [r3, r2]
-_02241166:
- ldr r0, _02241278 ; =0x00003044
- mov r1, #0x3e
- ldr r0, [r4, r0]
- lsl r1, r1, #4
- lsl r0, r0, #4
- add r0, r4, r0
- ldrb r0, [r0, r1]
- cmp r0, #0
- bne _022411D4
- ldr r1, [r4, #0x6c]
- ldr r0, _02241268 ; =0x00002144
- lsl r1, r1, #6
- add r2, r4, r1
- ldr r1, [r4, #0x64]
- ldr r0, [r4, r0]
- lsl r1, r1, #2
- add r2, r2, r1
- mov r1, #0x76
- lsl r1, r1, #2
- str r0, [r2, r1]
- ldr r0, [r4, #0x6c]
- ldr r2, [r4, #0x64]
- lsl r0, r0, #6
- add r0, r4, r0
- add r1, #0x10
- str r2, [r0, r1]
- ldr r0, [r4, #0x64]
- bl MaskOfFlagNo
- mov r1, #0x7b
- ldr r3, [r4, #0x6c]
- lsl r1, r1, #2
- add r2, r4, r1
- lsl r5, r3, #6
- ldr r3, [r2, r5]
- orr r0, r3
- str r0, [r2, r5]
- ldr r2, [r4, #0x6c]
- ldr r0, _02241268 ; =0x00002144
- add r5, r2, #0
- add r2, r1, #0
- mov r3, #0x1c
- mul r5, r3
- ldr r0, [r4, r0]
- add r5, r4, r5
- add r2, #0xec
- str r0, [r5, r2]
- ldr r0, [r4, #0x6c]
- ldr r5, [r4, #0x64]
- add r2, r0, #0
- mul r2, r3
- add r0, r4, r2
- add r1, #0xf0
- str r5, [r0, r1]
- b _02241232
-_022411D4:
- cmp r0, #1
- bne _02241232
- ldr r2, [r4, #0x6c]
- ldr r0, _02241268 ; =0x00002144
- lsl r2, r2, #6
- add r3, r4, r2
- ldr r2, [r4, #0x64]
- ldr r0, [r4, r0]
- lsl r2, r2, #2
- add r2, r3, r2
- lsr r1, r1, #1
- str r0, [r2, r1]
- ldr r0, [r4, #0x6c]
- ldr r2, [r4, #0x64]
- lsl r0, r0, #6
- add r1, r4, r0
- mov r0, #2
- lsl r0, r0, #8
- str r2, [r1, r0]
- ldr r0, [r4, #0x64]
- bl MaskOfFlagNo
- mov r1, #0x81
- ldr r3, [r4, #0x6c]
- lsl r1, r1, #2
- add r2, r4, r1
- lsl r5, r3, #6
- ldr r3, [r2, r5]
- orr r0, r3
- str r0, [r2, r5]
- ldr r2, [r4, #0x6c]
- ldr r0, _02241268 ; =0x00002144
- add r5, r2, #0
- add r2, r1, #0
- mov r3, #0x1c
- mul r5, r3
- ldr r0, [r4, r0]
- add r5, r4, r5
- add r2, #0xdc
- str r0, [r5, r2]
- ldr r0, [r4, #0x6c]
- ldr r5, [r4, #0x64]
- add r2, r0, #0
- mul r2, r3
- add r0, r4, r2
- add r1, #0xe0
- str r5, [r0, r1]
-_02241232:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _02241280 ; =0x00002D8C
- ldr r2, [r1, r0]
- ldr r0, _02241268 ; =0x00002144
- ldr r1, [r4, r0]
- add r0, r1, r2
- cmp r0, #0
- bgt _0224128C
- mov r0, #0xbb
- lsl r0, r0, #2
- add r1, r4, r0
- ldr r3, [r4, #0x64]
- mov r0, #0x1c
- mul r0, r3
- ldr r3, [r1, r0]
- neg r2, r2
- add r2, r3, r2
- str r2, [r1, r0]
- b _022412A0
- nop
-_02241260: .word 0x0000216C
-_02241264: .word 0x00002D90
-_02241268: .word 0x00002144
-_0224126C: .word 0x000030F4
-_02241270: .word 0x00002DB0
-_02241274: .word 0xFEFFFFFF
-_02241278: .word 0x00003044
-_0224127C: .word 0x000003DE
-_02241280: .word 0x00002D8C
-_02241284: .word 0x000030E4
-_02241288: .word 0x00002DBC
-_0224128C:
- ldr r3, [r4, #0x64]
- mov r0, #0xbb
- lsl r0, r0, #2
- mov r2, #0x1c
- add r5, r3, #0
- add r0, r4, r0
- mul r5, r2
- ldr r2, [r0, r5]
- add r1, r2, r1
- str r1, [r0, r5]
-_022412A0:
- ldr r3, _022412F0 ; =0x00002144
- ldr r0, [r4, #0x6c]
- mov r2, #0x82
- lsl r0, r0, #6
- ldr r1, [r4, r3]
- add r0, r4, r0
- lsl r2, r2, #2
- str r1, [r0, r2]
- ldr r1, [r4, #0x6c]
- ldr r0, [r4, #0x64]
- lsl r1, r1, #6
- add r5, r4, r1
- add r1, r2, #4
- str r0, [r5, r1]
- ldr r0, [r4, #0x6c]
- sub r2, #0xf0
- str r0, [r4, r2]
- ldr r0, [r4, r3]
- add r3, #0x18
- str r0, [r4, r3]
- add r0, r4, #0
- mov r1, #1
- mov r2, #2
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x1c
- str r0, [r4, #0xc]
- ldr r1, _022412F4 ; =0x0000213C
- mov r0, #2
- ldr r2, [r4, r1]
- lsl r0, r0, #0xc
- orr r0, r2
- str r0, [r4, r1]
- pop {r3, r4, r5, r6, r7, pc}
-_022412E8:
- mov r0, #0x1c
- str r0, [r4, #8]
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022412F0: .word 0x00002144
-_022412F4: .word 0x0000213C
-
- thumb_func_start MOD11_022412F8
-MOD11_022412F8: ; 0x022412F8
- push {r3, r4, r5, lr}
- sub sp, #0x10
- add r4, r1, #0
- ldr r2, [r4, #0x38]
- add r5, r0, #0
- cmp r2, #0
- beq _0224130C
- cmp r2, #1
- beq _022413D2
- b _02241490
-_0224130C:
- ldr r2, [r4, #0x3c]
- cmp r2, #5
- bls _02241314
- b _02241490
-_02241314:
- add r3, r2, r2
- add r3, pc
- ldrh r3, [r3, #6]
- lsl r3, r3, #0x10
- asr r3, r3, #0x10
- add pc, r3
-_02241320: ; jump table
- .short _0224132C - _02241320 - 2 ; case 0
- .short _02241338 - _02241320 - 2 ; case 1
- .short _0224134A - _02241320 - 2 ; case 2
- .short _0224137E - _02241320 - 2 ; case 3
- .short _02241392 - _02241320 - 2 ; case 4
- .short _022413BC - _02241320 - 2 ; case 5
-_0224132C:
- add r2, r2, #1
- str r2, [r4, #0x3c]
- bl MOD11_02242774
- cmp r0, #1
- beq _02241390
-_02241338:
- ldr r0, [r4, #0x3c]
- add r1, r4, #0
- add r0, r0, #1
- str r0, [r4, #0x3c]
- add r0, r5, #0
- bl MOD11_02242790
- cmp r0, #1
- beq _02241390
-_0224134A:
- ldr r0, [r4, #0x3c]
- add r1, r4, #0
- add r0, r0, #1
- str r0, [r4, #0x3c]
- add r0, r5, #0
- add r2, sp, #0xc
- bl MOD11_022449EC
- cmp r0, #1
- bne _0224137E
- ldr r0, _0224149C ; =0x0000216C
- ldr r1, [r4, r0]
- ldr r0, _022414A0 ; =0x001FD849
- tst r0, r1
- bne _0224137E
- ldr r2, [sp, #0xc]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add sp, #0x10
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- pop {r3, r4, r5, pc}
-_0224137E:
- ldr r0, [r4, #0x3c]
- add r1, r4, #0
- add r0, r0, #1
- str r0, [r4, #0x3c]
- add r0, r5, #0
- bl MOD11_022427E4
- cmp r0, #1
- bne _02241392
-_02241390:
- b _02241498
-_02241392:
- ldr r0, [r4, #0x3c]
- add r1, r4, #0
- add r0, r0, #1
- str r0, [r4, #0x3c]
- add r0, r5, #0
- add r2, sp, #8
- bl MOD11_02248308
- cmp r0, #1
- bne _022413BC
- ldr r2, [sp, #8]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add sp, #0x10
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- pop {r3, r4, r5, pc}
-_022413BC:
- ldr r0, [r4, #0x3c]
- add r1, r4, #0
- add r0, r0, #1
- str r0, [r4, #0x3c]
- add r0, r5, #0
- bl MOD11_02242870
- cmp r0, #1
- bne _02241490
- add sp, #0x10
- pop {r3, r4, r5, pc}
-_022413D2:
- ldr r2, [r4, #0x3c]
- cmp r2, #5
- bhi _02241490
- add r3, r2, r2
- add r3, pc
- ldrh r3, [r3, #6]
- lsl r3, r3, #0x10
- asr r3, r3, #0x10
- add pc, r3
-_022413E4: ; jump table
- .short _022413F0 - _022413E4 - 2 ; case 0
- .short _022413FC - _022413E4 - 2 ; case 1
- .short _02241430 - _022413E4 - 2 ; case 2
- .short _02241442 - _022413E4 - 2 ; case 3
- .short _0224146C - _022413E4 - 2 ; case 4
- .short _0224147E - _022413E4 - 2 ; case 5
-_022413F0:
- add r2, r2, #1
- str r2, [r4, #0x3c]
- bl MOD11_02242774
- cmp r0, #1
- beq _02241498
-_022413FC:
- ldr r0, [r4, #0x3c]
- add r1, r4, #0
- add r0, r0, #1
- str r0, [r4, #0x3c]
- add r0, r5, #0
- add r2, sp, #4
- bl MOD11_022449EC
- cmp r0, #1
- bne _02241430
- ldr r0, _0224149C ; =0x0000216C
- ldr r1, [r4, r0]
- ldr r0, _022414A0 ; =0x001FD849
- tst r0, r1
- bne _02241430
- ldr r2, [sp, #4]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add sp, #0x10
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- pop {r3, r4, r5, pc}
-_02241430:
- ldr r0, [r4, #0x3c]
- add r1, r4, #0
- add r0, r0, #1
- str r0, [r4, #0x3c]
- add r0, r5, #0
- bl MOD11_022427E4
- cmp r0, #1
- beq _02241498
-_02241442:
- ldr r0, [r4, #0x3c]
- add r1, r4, #0
- add r0, r0, #1
- str r0, [r4, #0x3c]
- add r0, r5, #0
- add r2, sp, #0
- bl MOD11_02248308
- cmp r0, #1
- bne _0224146C
- ldr r2, [sp]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add sp, #0x10
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- pop {r3, r4, r5, pc}
-_0224146C:
- ldr r0, [r4, #0x3c]
- add r1, r4, #0
- add r0, r0, #1
- str r0, [r4, #0x3c]
- add r0, r5, #0
- bl MOD11_02242790
- cmp r0, #1
- beq _02241498
-_0224147E:
- ldr r0, [r4, #0x3c]
- add r1, r4, #0
- add r0, r0, #1
- str r0, [r4, #0x3c]
- add r0, r5, #0
- bl MOD11_02242870
- cmp r0, #1
- beq _02241498
-_02241490:
- mov r0, #0
- str r0, [r4, #0x3c]
- mov r0, #0x1e
- str r0, [r4, #8]
-_02241498:
- add sp, #0x10
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0224149C: .word 0x0000216C
-_022414A0: .word 0x001FD849
-
- thumb_func_start MOD11_022414A4
-MOD11_022414A4: ; 0x022414A4
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_022414A8
-MOD11_022414A8: ; 0x022414A8
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r4, r1, #0
- ldr r1, [r4, #0x40]
- add r7, r0, #0
- cmp r1, #7
- bls _022414B8
- b _022416F2
-_022414B8:
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_022414C4: ; jump table
- .short _022414D4 - _022414C4 - 2 ; case 0
- .short _0224154E - _022414C4 - 2 ; case 1
- .short _02241562 - _022414C4 - 2 ; case 2
- .short _02241588 - _022414C4 - 2 ; case 3
- .short _0224159C - _022414C4 - 2 ; case 4
- .short _022415B6 - _022414C4 - 2 ; case 5
- .short _022415E0 - _022414C4 - 2 ; case 6
- .short _02241674 - _022414C4 - 2 ; case 7
-_022414D4:
- mov r1, #0
- ldr r5, [r4, #0x44]
- str r1, [sp, #4]
- bl MOD11_0222FF84
- cmp r5, r0
- bge _02241544
- add r6, r4, #0
- add r6, #0x44
-_022414E6:
- mov r0, #0xc0
- mul r0, r5
- mov r1, #0xb7
- add r0, r4, r0
- lsl r1, r1, #6
- ldr r2, [r0, r1]
- ldr r1, _02241700 ; =0x200400C0
- tst r1, r2
- bne _0224152C
- ldr r1, _02241704 ; =0x00002DC4
- ldr r2, [r0, r1]
- ldr r1, _02241700 ; =0x200400C0
- tst r1, r2
- beq _0224152C
- ldr r1, _02241704 ; =0x00002DC4
- ldr r2, [r0, r1]
- ldr r1, _02241708 ; =0xDFFBFF3F
- and r2, r1
- ldr r1, _02241704 ; =0x00002DC4
- str r2, [r0, r1]
- ldr r2, _0224170C ; =0x0000011F
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- mov r0, #0x46
- ldr r1, [r4, #0x44]
- lsl r0, r0, #2
- str r1, [r4, r0]
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp, #4]
-_0224152C:
- ldr r0, [r6]
- add r0, r0, #1
- str r0, [r6]
- ldr r0, [sp, #4]
- cmp r0, #0
- bne _022415B4
- ldr r5, [r4, #0x44]
- add r0, r7, #0
- bl MOD11_0222FF84
- cmp r5, r0
- blt _022414E6
-_02241544:
- ldr r0, [r4, #0x40]
- add r0, r0, #1
- str r0, [r4, #0x40]
- mov r0, #0
- str r0, [r4, #0x44]
-_0224154E:
- ldr r0, [r4, #0x40]
- add r1, r4, #0
- add r0, r0, #1
- str r0, [r4, #0x40]
- ldr r2, [r4, #8]
- add r0, r7, #0
- bl MOD11_02248A78
- cmp r0, #1
- beq _022415B4
-_02241562:
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_022476DC
- add r2, r0, #0
- beq _02241582
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add sp, #0x10
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_02241582:
- ldr r0, [r4, #0x40]
- add r0, r0, #1
- str r0, [r4, #0x40]
-_02241588:
- ldr r0, [r4, #0x40]
- add r1, r4, #0
- add r0, r0, #1
- str r0, [r4, #0x40]
- ldr r2, [r4, #0x64]
- add r0, r7, #0
- bl MOD11_02248C0C
- cmp r0, #1
- beq _022415B4
-_0224159C:
- ldr r0, [r4, #0x40]
- add r0, r0, #1
- str r0, [r4, #0x40]
- ldr r2, [r4, #0x6c]
- cmp r2, #0xff
- beq _022415B6
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_02248C0C
- cmp r0, #1
- bne _022415B6
-_022415B4:
- b _022416FC
-_022415B6:
- ldr r0, [r4, #0x40]
- add r1, r4, #0
- add r0, r0, #1
- str r0, [r4, #0x40]
- add r0, r7, #0
- add r2, sp, #0xc
- bl MOD11_02249B94
- cmp r0, #1
- bne _022415E0
- ldr r2, [sp, #0xc]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add sp, #0x10
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_022415E0:
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x60
- bne _022415F0
- mov r2, #0
- b _02241604
-_022415F0:
- ldr r0, _02241710 ; =0x00002160
- ldr r2, [r4, r0]
- cmp r2, #0
- bne _02241604
- ldr r0, _02241714 ; =0x00003044
- ldr r0, [r4, r0]
- lsl r0, r0, #4
- add r1, r4, r0
- ldr r0, _02241718 ; =0x000003E2
- ldrb r2, [r1, r0]
-_02241604:
- ldr r0, [r4, #0x40]
- add r0, r0, #1
- str r0, [r4, #0x40]
- ldr r3, [r4, #0x6c]
- cmp r3, #0xff
- beq _02241674
- mov r0, #0xc0
- add r5, r3, #0
- mul r5, r0
- ldr r0, _0224171C ; =0x00002DAC
- add r1, r4, r5
- ldr r1, [r1, r0]
- mov r0, #0x20
- tst r1, r0
- beq _02241674
- ldr r1, _02241720 ; =0x0000216C
- lsl r0, r0, #9
- ldr r1, [r4, r1]
- tst r0, r1
- bne _02241674
- ldr r0, [r4, #0x64]
- cmp r3, r0
- beq _02241674
- mov r0, #0x1c
- mul r0, r3
- add r6, r4, r0
- mov r0, #0xb6
- lsl r0, r0, #2
- ldr r1, [r6, r0]
- cmp r1, #0
- bne _0224164A
- add r0, #8
- ldr r0, [r6, r0]
- cmp r0, #0
- beq _02241674
-_0224164A:
- ldr r0, _02241724 ; =0x00002D8C
- add r1, r4, r5
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02241674
- cmp r2, #0xa
- bne _02241674
- mov r0, #0x46
- lsl r0, r0, #2
- str r3, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x1d
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- add sp, #0x10
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_02241674:
- mov r0, #0
- str r0, [sp]
- ldr r6, [r4, #0x44]
- add r0, r7, #0
- bl MOD11_0222FF84
- cmp r6, r0
- bge _022416E2
- add r5, r4, #0
- add r5, #0x44
-_02241688:
- ldr r0, _02241728 ; =0x000021EC
- add r1, r4, r6
- ldrb r6, [r1, r0]
- add r0, r6, #0
- bl MaskOfFlagNo
- ldr r1, _0224172C ; =0x00003108
- ldrb r1, [r4, r1]
- tst r0, r1
- ldr r0, [r5]
- beq _022416A4
- add r0, r0, #1
- str r0, [r5]
- b _022416D6
-_022416A4:
- add r0, r0, #1
- str r0, [r5]
- add r0, r7, #0
- add r1, r4, #0
- add r2, r6, #0
- add r3, sp, #8
- bl MOD11_022493A0
- cmp r0, #1
- bne _022416D6
- mov r0, #0x46
- lsl r0, r0, #2
- str r6, [r4, r0]
- ldr r2, [sp, #8]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- str r0, [sp]
- b _022416E2
-_022416D6:
- ldr r6, [r4, #0x44]
- add r0, r7, #0
- bl MOD11_0222FF84
- cmp r6, r0
- blt _02241688
-_022416E2:
- ldr r0, [sp]
- cmp r0, #0
- bne _022416F2
- ldr r0, [r4, #0x40]
- add r0, r0, #1
- str r0, [r4, #0x40]
- mov r0, #0
- str r0, [r4, #0x44]
-_022416F2:
- mov r0, #0
- str r0, [r4, #0x40]
- str r0, [r4, #0x44]
- mov r0, #0x1f
- str r0, [r4, #8]
-_022416FC:
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02241700: .word 0x200400C0
-_02241704: .word 0x00002DC4
-_02241708: .word 0xDFFBFF3F
-_0224170C: .word 0x0000011F
-_02241710: .word 0x00002160
-_02241714: .word 0x00003044
-_02241718: .word 0x000003E2
-_0224171C: .word 0x00002DAC
-_02241720: .word 0x0000216C
-_02241724: .word 0x00002D8C
-_02241728: .word 0x000021EC
-_0224172C: .word 0x00003108
-
- thumb_func_start MOD11_02241730
-MOD11_02241730: ; 0x02241730
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_02241734
-MOD11_02241734: ; 0x02241734
- push {r3, r4, r5, r6, r7, lr}
- ldr r6, _02241820 ; =0x0000217D
- add r4, r1, #0
- ldrb r2, [r4, r6]
- str r0, [sp]
- cmp r2, #0
- beq _0224181A
- ldr r3, [r4, #0x74]
- mov ip, r3
- cmp r3, #0xff
- bne _022417CC
- ldr r3, [r4, #0x64]
- mov r7, #0xc0
- add r5, r3, #0
- mul r5, r7
- ldr r3, _02241824 ; =0x00002DAC
- add r5, r4, r5
- ldr r5, [r5, r3]
- mov r3, #7
- tst r3, r5
- bne _022417CC
- add r3, r6, #0
- sub r3, #0x11
- ldr r5, [r4, r3]
- mov r3, #1
- lsl r3, r3, #0xe
- tst r3, r5
- bne _022417CC
- sub r2, r6, #1
- ldrb r2, [r4, r2]
- sub r3, r2, #1
- sub r2, r6, #1
- strb r3, [r4, r2]
- ldrb r2, [r4, r2]
- cmp r2, #0
- beq _022417B2
- mov r3, #1
- add r2, r6, #3
- str r3, [r4, r2]
- bl MOD11_02247264
- add r1, r6, #0
- sub r1, #0x41
- ldr r2, [r4, r1]
- ldr r0, _02241828 ; =0xFFFFBFFF
- and r0, r2
- str r0, [r4, r1]
- add r0, r1, #0
- add r0, #0x4c
- ldr r0, [r4, r0]
- add r1, #0x48
- str r0, [r4, r1]
- ldr r2, _0224182C ; =0x00003044
- add r0, r4, #0
- ldr r2, [r4, r2]
- mov r1, #0
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x17
- str r0, [r4, #0xc]
- b _02241812
-_022417B2:
- ldrb r0, [r4, r6]
- add r7, #0x70
- mov r1, #1
- str r0, [r4, r7]
- add r0, r4, #0
- mov r2, #0x11
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x21
- str r0, [r4, #0xc]
- b _02241812
-_022417CC:
- mov r0, ip
- cmp r0, #0xff
- bne _022417E6
- ldr r0, [r4, #0x64]
- mov r1, #0xc0
- add r3, r0, #0
- mul r3, r1
- ldr r0, _02241824 ; =0x00002DAC
- add r3, r4, r3
- ldr r3, [r3, r0]
- mov r0, #7
- tst r0, r3
- beq _022417F6
-_022417E6:
- ldr r0, _02241830 ; =0x0000217C
- ldrb r0, [r4, r0]
- sub r0, r2, r0
- add r1, r0, #1
- mov r0, #0x13
- lsl r0, r0, #4
- str r1, [r4, r0]
- b _02241800
-_022417F6:
- ldr r0, _02241830 ; =0x0000217C
- add r1, #0x70
- ldrb r0, [r4, r0]
- sub r0, r2, r0
- str r0, [r4, r1]
-_02241800:
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x11
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x21
- str r0, [r4, #0xc]
-_02241812:
- ldr r0, [sp]
- bl MOD11_0225679C
- pop {r3, r4, r5, r6, r7, pc}
-_0224181A:
- mov r0, #0x21
- str r0, [r4, #8]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02241820: .word 0x0000217D
-_02241824: .word 0x00002DAC
-_02241828: .word 0xFFFFBFFF
-_0224182C: .word 0x00003044
-_02241830: .word 0x0000217C
-
- thumb_func_start MOD11_02241834
-MOD11_02241834: ; 0x02241834
- push {r3, lr}
- ldr r0, _02241858 ; =0x0000213C
- ldr r2, [r1, r0]
- mov r0, #0xf
- lsl r0, r0, #0x18
- tst r0, r2
- beq _02241850
- add r0, r1, #0
- mov r1, #0x21
- add r2, r1, #0
- mov r3, #0
- bl MOD11_0224246C
- pop {r3, pc}
-_02241850:
- mov r0, #0x22
- str r0, [r1, #8]
- pop {r3, pc}
- nop
-_02241858: .word 0x0000213C
-
- thumb_func_start MOD11_0224185C
-MOD11_0224185C: ; 0x0224185C
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- mov r1, #0x85
- lsl r1, r1, #6
- add r5, r0, #0
- ldr r2, [r4, r1]
- mov r0, #8
- tst r0, r2
- beq _02241880
- mov r0, #8
- bic r2, r0
- str r2, [r4, r1]
- ldr r0, [r4, #0x64]
- str r0, [r4, #0x6c]
- add r0, r4, #0
- add r0, #0x84
- ldr r0, [r0]
- str r0, [r4, #0x64]
-_02241880:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0224256C
- ldr r0, _022419E0 ; =0x00003044
- ldr r0, [r4, r0]
- lsl r0, r0, #4
- add r1, r4, r0
- ldr r0, _022419E4 ; =0x000003E6
- ldrh r0, [r1, r0]
- cmp r0, #4
- bne _0224194C
- ldr r0, _022419E8 ; =0x0000213C
- ldr r1, [r4, r0]
- mov r0, #2
- tst r0, r1
- bne _0224194C
- add r0, r5, #0
- bl MOD11_0222FF84
- ldr r1, _022419EC ; =0x0000217E
- ldrb r2, [r4, r1]
- cmp r2, r0
- bge _0224194C
- mov r2, #0xd
- add r0, r1, #6
- str r2, [r4, r0]
- add r0, r5, #0
- bl MOD11_0222FF84
- ldr r1, [r4, #0x64]
- add r0, r5, #0
- bl MOD11_0222FF7C
- bl MOD11_02253A4C
- mov r1, #1
- add r7, r0, #0
- and r7, r1
-_022418CE:
- ldr r1, _022419EC ; =0x0000217E
- ldr r0, _022419EC ; =0x0000217E
- ldrb r1, [r4, r1]
- ldrb r0, [r4, r0]
- add r2, r1, #1
- ldr r1, _022419EC ; =0x0000217E
- strb r2, [r4, r1]
- add r1, r4, r0
- ldr r0, _022419F0 ; =0x000021EC
- ldrb r6, [r1, r0]
- add r0, r6, #0
- bl MaskOfFlagNo
- ldr r1, _022419F4 ; =0x00003108
- ldrb r1, [r4, r1]
- tst r0, r1
- bne _02241936
- mov r0, #0xc0
- mul r0, r6
- add r1, r4, r0
- ldr r0, _022419F8 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02241936
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0222FF7C
- str r0, [sp]
- cmp r7, #0
- beq _02241916
- bl MOD11_02253A4C
- mov r1, #1
- tst r0, r1
- beq _02241926
-_02241916:
- cmp r7, #0
- bne _02241936
- ldr r0, [sp]
- bl MOD11_02253A4C
- mov r1, #1
- tst r0, r1
- beq _02241936
-_02241926:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02247264
- str r6, [r4, #0x6c]
- mov r0, #0x16
- str r0, [r4, #8]
- b _02241944
-_02241936:
- add r0, r5, #0
- bl MOD11_0222FF84
- ldr r1, _022419EC ; =0x0000217E
- ldrb r1, [r4, r1]
- cmp r1, r0
- blt _022418CE
-_02241944:
- add r0, r5, #0
- bl MOD11_0225679C
- pop {r3, r4, r5, r6, r7, pc}
-_0224194C:
- ldr r0, _022419E0 ; =0x00003044
- ldr r0, [r4, r0]
- lsl r0, r0, #4
- add r1, r4, r0
- ldr r0, _022419E4 ; =0x000003E6
- ldrh r0, [r1, r0]
- cmp r0, #8
- bne _022419DA
- ldr r0, _022419E8 ; =0x0000213C
- ldr r1, [r4, r0]
- mov r0, #2
- tst r0, r1
- bne _022419DA
- add r0, r5, #0
- bl MOD11_0222FF84
- ldr r1, _022419EC ; =0x0000217E
- ldrb r2, [r4, r1]
- cmp r2, r0
- bge _022419DA
- mov r2, #0xd
- add r0, r1, #6
- str r2, [r4, r0]
- add r0, r5, #0
- bl MOD11_0222FF84
- ldr r7, _022419EC ; =0x0000217E
-_02241982:
- ldr r0, _022419EC ; =0x0000217E
- ldrb r1, [r4, r0]
- ldrb r0, [r4, r7]
- add r1, r4, r1
- add r0, r0, #1
- strb r0, [r4, r7]
- ldr r0, _022419F0 ; =0x000021EC
- ldrb r6, [r1, r0]
- add r0, r6, #0
- bl MaskOfFlagNo
- ldr r1, _022419F4 ; =0x00003108
- ldrb r1, [r4, r1]
- tst r0, r1
- bne _022419C4
- mov r0, #0xc0
- mul r0, r6
- add r1, r4, r0
- ldr r0, _022419F8 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _022419C4
- ldr r0, [r4, #0x64]
- cmp r6, r0
- beq _022419C4
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02247264
- str r6, [r4, #0x6c]
- mov r0, #0x16
- str r0, [r4, #8]
- b _022419D2
-_022419C4:
- add r0, r5, #0
- bl MOD11_0222FF84
- ldr r1, _022419EC ; =0x0000217E
- ldrb r1, [r4, r1]
- cmp r1, r0
- blt _02241982
-_022419D2:
- add r0, r5, #0
- bl MOD11_0225679C
- pop {r3, r4, r5, r6, r7, pc}
-_022419DA:
- mov r0, #0x23
- str r0, [r4, #8]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022419E0: .word 0x00003044
-_022419E4: .word 0x000003E6
-_022419E8: .word 0x0000213C
-_022419EC: .word 0x0000217E
-_022419F0: .word 0x000021EC
-_022419F4: .word 0x00003108
-_022419F8: .word 0x00002D8C
-
- thumb_func_start MOD11_022419FC
-MOD11_022419FC: ; 0x022419FC
- push {r4, lr}
- ldr r0, _02241A38 ; =0x0000213C
- add r4, r1, #0
- ldr r1, [r4, r0]
- mov r0, #0xf
- lsl r0, r0, #0x1c
- and r0, r1
- beq _02241A32
- lsr r0, r0, #0x1c
- bl LowestFlagNo
- str r0, [r4, #0x74]
- ldr r1, _02241A38 ; =0x0000213C
- ldr r0, _02241A3C ; =0x0FFFFFFF
- ldr r2, [r4, r1]
- and r0, r2
- str r0, [r4, r1]
- ldr r2, _02241A40 ; =0x00000115
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x24
- str r0, [r4, #0xc]
- pop {r4, pc}
-_02241A32:
- mov r0, #0x24
- str r0, [r4, #8]
- pop {r4, pc}
- .align 2, 0
-_02241A38: .word 0x0000213C
-_02241A3C: .word 0x0FFFFFFF
-_02241A40: .word 0x00000115
-
- thumb_func_start MOD11_02241A44
-MOD11_02241A44: ; 0x02241A44
- push {r4, lr}
- add r4, r1, #0
- bl MOD11_022429B0
- cmp r0, #1
- beq _02241A54
- mov r0, #0x26
- str r0, [r4, #8]
-_02241A54:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02241A58
-MOD11_02241A58: ; 0x02241A58
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_02241A5C
-MOD11_02241A5C: ; 0x02241A5C
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldr r1, [r4, #0x64]
- add r5, r0, #0
- add r0, r4, #0
- bl MOD11_02249D90
- ldr r1, _02241B60 ; =0x0000213C
- lsl r0, r0, #0x18
- ldr r3, [r4, r1]
- mov r2, #0x20
- lsr r0, r0, #0x18
- tst r2, r3
- bne _02241A82
- add r1, r1, #4
- ldr r2, [r4, r1]
- mov r1, #4
- tst r1, r2
- beq _02241AC4
-_02241A82:
- cmp r0, #0x36
- beq _02241A8E
- cmp r0, #0x72
- beq _02241A8E
- cmp r0, #0x7c
- bne _02241AB6
-_02241A8E:
- mov r0, #0xc1
- lsl r0, r0, #6
- ldr r0, [r4, r0]
- cmp r0, #0xa5
- beq _02241AC4
- cmp r0, #0xe2
- bne _02241AA8
- mov r1, #0x85
- lsl r1, r1, #6
- ldr r2, [r4, r1]
- mov r1, #0x40
- tst r1, r2
- bne _02241AC4
-_02241AA8:
- ldr r2, [r4, #0x64]
- mov r1, #0xc0
- mul r1, r2
- add r2, r4, r1
- ldr r1, _02241B64 ; =0x00002DF8
- strh r0, [r2, r1]
- b _02241AC4
-_02241AB6:
- ldr r2, [r4, #0x64]
- mov r1, #0xc0
- mul r1, r2
- add r2, r4, r1
- ldr r1, _02241B64 ; =0x00002DF8
- mov r0, #0
- strh r0, [r2, r1]
-_02241AC4:
- ldr r0, _02241B60 ; =0x0000213C
- mov r1, #1
- ldr r2, [r4, r0]
- lsl r1, r1, #0x14
- tst r1, r2
- bne _02241B2C
- add r0, r0, #4
- ldr r1, [r4, r0]
- mov r0, #4
- tst r0, r1
- beq _02241AF2
- ldr r2, [r4, #0x64]
- ldr r1, _02241B68 ; =0x00003044
- lsl r2, r2, #1
- add r3, r4, r2
- add r2, r1, #0
- ldr r0, [r4, r1]
- add r2, #0x18
- strh r0, [r3, r2]
- sub r0, r1, #4
- ldr r2, [r4, r0]
- add r0, r1, #4
- b _02241B00
-_02241AF2:
- ldr r0, [r4, #0x64]
- mov r2, #0
- lsl r0, r0, #1
- add r1, r4, r0
- ldr r0, _02241B6C ; =0x0000305C
- strh r2, [r1, r0]
- sub r0, #0x14
-_02241B00:
- str r2, [r4, r0]
- mov r0, #0x85
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r0, #0x40
- tst r0, r1
- beq _02241B20
- mov r0, #0xc1
- ldr r1, [r4, #0x64]
- lsl r0, r0, #6
- ldr r2, [r4, r0]
- lsl r1, r1, #1
- add r1, r4, r1
- add r0, #0x3c
- strh r2, [r1, r0]
- b _02241B2C
-_02241B20:
- ldr r0, [r4, #0x64]
- mov r2, #0
- lsl r0, r0, #1
- add r1, r4, r0
- ldr r0, _02241B70 ; =0x0000307C
- strh r2, [r1, r0]
-_02241B2C:
- mov r0, #0x85
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r0, #4
- tst r0, r1
- beq _02241B48
- mov r0, #0xc1
- ldr r1, [r4, #0x64]
- lsl r0, r0, #6
- ldr r2, [r4, r0]
- lsl r1, r1, #1
- add r1, r4, r1
- add r0, #0x6c
- strh r2, [r1, r0]
-_02241B48:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0224256C
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0224ABF8
- mov r0, #0x27
- str r0, [r4, #8]
- pop {r3, r4, r5, pc}
- nop
-_02241B60: .word 0x0000213C
-_02241B64: .word 0x00002DF8
-_02241B68: .word 0x00003044
-_02241B6C: .word 0x0000305C
-_02241B70: .word 0x0000307C
-
- thumb_func_start MOD11_02241B74
-MOD11_02241B74: ; 0x02241B74
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD11_0222FF74
- mov r1, #0x22
- lsl r1, r1, #4
- tst r0, r1
- bne _02241BF6
- ldr r2, [r4, #0x64]
- add r0, r5, #0
- add r1, r4, #0
- mov r3, #0
- bl MOD11_02248898
- cmp r0, #1
- beq _02241C4C
- ldr r2, [r4, #0x6c]
- cmp r2, #0xff
- beq _02241BAA
- add r0, r5, #0
- add r1, r4, #0
- mov r3, #0
- bl MOD11_02248898
- cmp r0, #1
- beq _02241C4C
-_02241BAA:
- ldr r1, [r4, #8]
- add r0, r4, #0
- add r2, r1, #0
- bl MOD11_02242510
- cmp r0, #1
- beq _02241C4C
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02241FD8
- cmp r0, #1
- beq _02241C4C
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_022476DC
- add r2, r0, #0
- beq _02241BE2
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- pop {r3, r4, r5, pc}
-_02241BE2:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02242924
- cmp r0, #1
- beq _02241C4C
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02242404
-_02241BF6:
- add r1, r4, #0
- add r1, #0xec
- ldr r1, [r1]
- mov r0, #0x27
- add r2, r4, r1
- ldr r1, _02241C50 ; =0x000021E8
- ldrb r2, [r2, r1]
- sub r1, #0x40
- lsl r2, r2, #4
- add r2, r4, r2
- str r0, [r2, r1]
- ldr r1, [r4, #0x64]
- mov r0, #0x1c
- mul r0, r1
- add r1, r4, r0
- mov r0, #0xb5
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x1f
- beq _02241C34
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0224C178
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0224728C
- mov r1, #0
- b _02241C3C
-_02241C34:
- add r0, r4, #0
- add r0, #0xec
- ldr r0, [r0]
- add r1, r0, #1
-_02241C3C:
- add r0, r4, #0
- add r0, #0xec
- str r1, [r0]
- add r0, r4, #0
- bl MOD11_02245494
- mov r0, #8
- str r0, [r4, #8]
-_02241C4C:
- pop {r3, r4, r5, pc}
- nop
-_02241C50: .word 0x000021E8
-
- thumb_func_start MOD11_02241C54
-MOD11_02241C54: ; 0x02241C54
- push {r4, lr}
- add r4, r1, #0
- ldr r1, [r4, #8]
- add r0, r4, #0
- add r2, r1, #0
- mov r3, #1
- bl MOD11_0224246C
- cmp r0, #1
- beq _02241C6C
- mov r0, #0x27
- str r0, [r4, #8]
-_02241C6C:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02241C70
-MOD11_02241C70: ; 0x02241C70
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD11_0223145C
- mov r1, #0x80
- tst r0, r1
- beq _02241C86
- mov r0, #0x2a
- str r0, [r4, #8]
- b _02241CE4
-_02241C86:
- add r0, r5, #0
- bl MOD11_0223145C
- cmp r0, #2
- beq _02241C9A
- add r0, r5, #0
- bl MOD11_0223145C
- cmp r0, #3
- bne _02241CAE
-_02241C9A:
- add r0, r4, #0
- mov r1, #1
- mov r2, #5
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x2a
- str r0, [r4, #0xc]
- b _02241CE4
-_02241CAE:
- add r0, r5, #0
- bl MOD11_0223145C
- cmp r0, #1
- bne _02241CCC
- add r0, r4, #0
- mov r1, #1
- mov r2, #4
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #0x2a
- str r0, [r4, #0xc]
- b _02241CE4
-_02241CCC:
- add r0, r5, #0
- bl MOD11_0223145C
- cmp r0, #4
- beq _02241CE0
- add r0, r5, #0
- bl MOD11_0223145C
- cmp r0, #5
- bne _02241CE4
-_02241CE0:
- mov r0, #0x2a
- str r0, [r4, #8]
-_02241CE4:
- ldr r0, _02241CEC ; =0x0000311F
- mov r1, #1
- strb r1, [r4, r0]
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02241CEC: .word 0x0000311F
-
- thumb_func_start MOD11_02241CF0
-MOD11_02241CF0: ; 0x02241CF0
- push {r4, r5, r6, lr}
- add r6, r0, #0
- add r5, r1, #0
- bl MOD11_0222FF74
- mov r1, #4
- add r4, r0, #0
- and r4, r1
- bne _02241D16
- add r0, r6, #0
- mov r1, #0
- bl MOD11_0222FF88
- add r6, r0, #0
- bl FUN_02069C4C
- add r0, r6, #0
- bl FUN_02069DC8
-_02241D16:
- cmp r4, #0
- beq _02241D20
- mov r0, #0x16
- bl FUN_020311DC
-_02241D20:
- mov r0, #0x2b
- str r0, [r5, #8]
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02241D28
-MOD11_02241D28: ; 0x02241D28
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_02241D2C
-MOD11_02241D2C: ; 0x02241D2C
- push {r4, r5, r6, r7, lr}
- sub sp, #0x34
- str r1, [sp, #4]
- mov r1, #0
- str r0, [sp]
- str r1, [sp, #0x30]
- bl MOD11_0222FF84
- str r0, [sp, #0x28]
- ldr r0, [sp]
- bl MOD11_0222FF74
- str r0, [sp, #0x24]
- ldr r0, [sp, #4]
- ldr r0, [r0, #8]
- str r0, [sp, #0x20]
- mov r0, #0
- str r0, [sp, #0x2c]
- ldr r0, [sp, #0x28]
- cmp r0, #0
- bgt _02241D58
- b _02241F4A
-_02241D58:
- ldr r0, [sp, #4]
- mov r1, #2
- str r0, [sp, #0x1c]
- str r0, [sp, #0x18]
- ldr r0, [sp, #0x24]
- and r0, r1
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x24]
- mov r1, #0x18
- and r0, r1
- str r0, [sp, #0x10]
- ldr r0, [sp, #0x24]
- mov r1, #0x10
- and r0, r1
- str r0, [sp, #0xc]
-_02241D76:
- mov r1, #0x4f
- ldr r0, [sp, #0x1c]
- lsl r1, r1, #2
- ldr r2, [r0, r1]
- mov r0, #1
- bic r2, r0
- ldr r0, [sp, #0x1c]
- str r2, [r0, r1]
- ldr r0, [sp, #0x14]
- cmp r0, #0
- beq _02241D92
- ldr r0, [sp, #0x10]
- cmp r0, #0
- beq _02241DA4
-_02241D92:
- ldr r0, [sp, #0xc]
- cmp r0, #0
- beq _02241E8A
- ldr r0, [sp]
- ldr r1, [sp, #0x2c]
- bl MOD11_02230270
- cmp r0, #0
- bne _02241E8A
-_02241DA4:
- ldr r3, _02241FC8 ; =0x00002D8C
- ldr r0, [sp, #0x18]
- ldr r0, [r0, r3]
- cmp r0, #0
- bne _02241DCC
- ldr r1, [sp, #0x2c]
- mov r2, #2
- add r4, r1, #0
- eor r4, r2
- mov r1, #0xc0
- add r5, r4, #0
- mul r5, r1
- ldr r1, [sp, #4]
- add r1, r1, r5
- ldr r1, [r1, r3]
- cmp r1, #0
- bne _02241DCC
- ldr r1, [sp, #0x2c]
- tst r1, r2
- bne _02241DD0
-_02241DCC:
- cmp r0, #0
- beq _02241DD2
-_02241DD0:
- b _02241F30
-_02241DD2:
- ldr r0, [sp]
- ldr r1, [sp, #0x2c]
- mov r7, #0
- bl MOD11_0222FF88
- add r6, r0, #0
- ldr r0, [sp]
- ldr r1, [sp, #0x2c]
- bl MOD11_0222FF7C
- add r0, r6, #0
- add r5, r7, #0
- bl FUN_0206B9AC
- cmp r0, #0
- ble _02241E4A
- ldr r0, [sp, #0x2c]
- mov r1, #2
- eor r1, r0
- ldr r0, [sp, #4]
- add r0, r0, r1
- str r0, [sp, #8]
-_02241DFE:
- add r0, r6, #0
- add r1, r5, #0
- bl FUN_0206B9B0
- mov r1, #0xad
- mov r2, #0
- add r4, r0, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _02241E3E
- add r0, r4, #0
- mov r1, #0xad
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r1, _02241FCC ; =0x000001EE
- cmp r0, r1
- beq _02241E3E
- add r0, r4, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _02241E3E
- ldr r2, [sp, #8]
- ldr r1, _02241FD0 ; =0x0000219C
- ldrb r1, [r2, r1]
- cmp r5, r1
- beq _02241E3E
- add r7, r7, r0
-_02241E3E:
- add r0, r6, #0
- add r5, r5, #1
- bl FUN_0206B9AC
- cmp r5, r0
- blt _02241DFE
-_02241E4A:
- cmp r7, #0
- bne _02241E6E
- ldr r0, [sp, #0x2c]
- bl MaskOfFlagNo
- ldr r2, _02241FD4 ; =0x00003108
- ldr r1, [sp, #4]
- ldrb r1, [r1, r2]
- orr r1, r0
- ldr r0, [sp, #4]
- strb r1, [r0, r2]
- add r1, r0, #0
- ldr r0, [sp, #0x2c]
- mov r2, #6
- add r1, r1, r0
- ldr r0, _02241FD0 ; =0x0000219C
- strb r2, [r1, r0]
- b _02241F30
-_02241E6E:
- ldr r1, [sp, #0x20]
- ldr r0, [sp, #4]
- str r1, [r0, #0xc]
- mov r1, #0x15
- str r1, [r0, #8]
- mov r1, #0x4f
- ldr r0, [sp, #0x1c]
- lsl r1, r1, #2
- ldr r2, [r0, r1]
- mov r0, #1
- orr r2, r0
- ldr r0, [sp, #0x1c]
- str r2, [r0, r1]
- b _02241F30
-_02241E8A:
- ldr r1, _02241FC8 ; =0x00002D8C
- ldr r0, [sp, #0x18]
- ldr r0, [r0, r1]
- cmp r0, #0
- bne _02241F30
- ldr r0, [sp]
- ldr r1, [sp, #0x2c]
- mov r7, #0
- bl MOD11_0222FF88
- add r6, r0, #0
- ldr r0, [sp]
- ldr r1, [sp, #0x2c]
- bl MOD11_0222FF7C
- add r0, r6, #0
- add r5, r7, #0
- bl FUN_0206B9AC
- cmp r0, #0
- ble _02241EF2
-_02241EB4:
- add r0, r6, #0
- add r1, r5, #0
- bl FUN_0206B9B0
- mov r1, #0xad
- mov r2, #0
- add r4, r0, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _02241EE6
- add r0, r4, #0
- mov r1, #0xad
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r1, _02241FCC ; =0x000001EE
- cmp r0, r1
- beq _02241EE6
- add r0, r4, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- add r7, r7, r0
-_02241EE6:
- add r0, r6, #0
- add r5, r5, #1
- bl FUN_0206B9AC
- cmp r5, r0
- blt _02241EB4
-_02241EF2:
- cmp r7, #0
- bne _02241F16
- ldr r0, [sp, #0x2c]
- bl MaskOfFlagNo
- ldr r2, _02241FD4 ; =0x00003108
- ldr r1, [sp, #4]
- ldrb r1, [r1, r2]
- orr r1, r0
- ldr r0, [sp, #4]
- strb r1, [r0, r2]
- add r1, r0, #0
- ldr r0, [sp, #0x2c]
- mov r2, #6
- add r1, r1, r0
- ldr r0, _02241FD0 ; =0x0000219C
- strb r2, [r1, r0]
- b _02241F30
-_02241F16:
- ldr r1, [sp, #0x20]
- ldr r0, [sp, #4]
- str r1, [r0, #0xc]
- mov r1, #0x15
- str r1, [r0, #8]
- mov r1, #0x4f
- ldr r0, [sp, #0x1c]
- lsl r1, r1, #2
- ldr r2, [r0, r1]
- mov r0, #1
- orr r2, r0
- ldr r0, [sp, #0x1c]
- str r2, [r0, r1]
-_02241F30:
- ldr r0, [sp, #0x1c]
- add r0, r0, #4
- str r0, [sp, #0x1c]
- ldr r0, [sp, #0x18]
- add r0, #0xc0
- str r0, [sp, #0x18]
- ldr r0, [sp, #0x2c]
- add r1, r0, #1
- ldr r0, [sp, #0x28]
- str r1, [sp, #0x2c]
- cmp r1, r0
- bge _02241F4A
- b _02241D76
-_02241F4A:
- ldr r0, [sp, #4]
- ldr r0, [r0, #8]
- cmp r0, #0x15
- bne _02241FC0
- ldr r0, [sp, #0x24]
- mov r1, #0x86
- tst r0, r1
- bne _02241FB2
- ldr r0, [sp]
- bl MOD11_02230E70
- cmp r0, #0
- bne _02241FB2
- mov r1, #0x4f
- ldr r0, [sp, #4]
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- mov r2, #1
- tst r0, r2
- beq _02241F7C
- ldr r0, [sp, #4]
- add r1, r1, #4
- ldr r0, [r0, r1]
- tst r0, r2
- bne _02241FB2
-_02241F7C:
- ldr r0, [sp]
- ldr r1, [sp, #4]
- mov r2, #0
- bl MOD11_02246DE0
- cmp r0, #0
- beq _02241FB2
- mov r1, #0x4f
- ldr r0, [sp, #4]
- lsl r1, r1, #2
- ldr r0, [r0, r1]
- mov r2, #1
- tst r0, r2
- beq _02241FA0
- mov r2, #0
- sub r1, r1, #4
- ldr r0, [sp, #4]
- b _02241FA4
-_02241FA0:
- ldr r0, [sp, #4]
- sub r1, r1, #4
-_02241FA4:
- str r2, [r0, r1]
- ldr r0, [sp, #4]
- mov r1, #1
- mov r2, #0xe7
- bl MOD11_022431DC
- b _02241FBC
-_02241FB2:
- ldr r0, [sp, #4]
- mov r1, #1
- mov r2, #0xa
- bl MOD11_022431DC
-_02241FBC:
- mov r0, #1
- str r0, [sp, #0x30]
-_02241FC0:
- ldr r0, [sp, #0x30]
- add sp, #0x34
- pop {r4, r5, r6, r7, pc}
- nop
-_02241FC8: .word 0x00002D8C
-_02241FCC: .word 0x000001EE
-_02241FD0: .word 0x0000219C
-_02241FD4: .word 0x00003108
-
- thumb_func_start MOD11_02241FD8
-MOD11_02241FD8: ; 0x02241FD8
- push {r4, r5, r6, r7, lr}
- sub sp, #0x2c
- str r0, [sp]
- str r1, [sp, #4]
- bl MOD11_0222FF84
- str r0, [sp, #0x24]
- ldr r0, [sp]
- bl MOD11_0222FF74
- str r0, [sp, #0x20]
- mov r0, #0
- str r0, [sp, #0x1c]
- str r0, [sp, #0x28]
- ldr r0, [sp, #0x24]
- cmp r0, #0
- bgt _02241FFC
- b _02242256
-_02241FFC:
- ldr r0, [sp, #0x20]
- mov r1, #8
- and r0, r1
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x20]
- mov r1, #0x10
- and r0, r1
- str r0, [sp, #8]
-_0224200C:
- ldr r0, [sp, #0x20]
- sub r0, #0x4a
- cmp r0, #1
- bhi _022420A6
- ldr r0, [sp]
- ldr r1, [sp, #0x28]
- bl MOD11_02230270
- cmp r0, #0
- bne _022420A6
- ldr r0, [sp]
- ldr r1, [sp, #0x28]
- bl MOD11_02230260
- cmp r0, #2
- bne _022420C8
- ldr r1, _0224233C ; =0x00002D8C
- ldr r0, [sp, #4]
- ldr r0, [r0, r1]
- cmp r0, #0
- bne _022420C8
- ldr r0, [sp]
- ldr r1, [sp, #0x28]
- mov r7, #0
- bl MOD11_0222FF88
- add r6, r0, #0
- ldr r0, [sp]
- ldr r1, [sp, #0x28]
- bl MOD11_0222FF7C
- add r0, r6, #0
- add r4, r7, #0
- bl FUN_0206B9AC
- cmp r0, #0
- ble _02242094
-_02242056:
- add r0, r6, #0
- add r1, r4, #0
- bl FUN_0206B9B0
- mov r1, #0xad
- mov r2, #0
- add r5, r0, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _02242088
- add r0, r5, #0
- mov r1, #0xad
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r1, _02242340 ; =0x000001EE
- cmp r0, r1
- beq _02242088
- add r0, r5, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- add r7, r7, r0
-_02242088:
- add r0, r6, #0
- add r4, r4, #1
- bl FUN_0206B9AC
- cmp r4, r0
- blt _02242056
-_02242094:
- cmp r7, #0
- bne _022420C8
- ldr r0, [sp, #0x1c]
- mov r1, #2
- orr r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x1c]
- b _02242242
-_022420A6:
- ldr r0, [sp, #0xc]
- cmp r0, #0
- bne _022420BE
- ldr r0, [sp, #8]
- cmp r0, #0
- beq _022421B0
- ldr r0, [sp]
- ldr r1, [sp, #0x28]
- bl MOD11_02230270
- cmp r0, #0
- beq _022421B0
-_022420BE:
- ldr r1, _0224233C ; =0x00002D8C
- ldr r0, [sp, #4]
- ldr r0, [r0, r1]
- cmp r0, #0
- beq _022420CA
-_022420C8:
- b _02242242
-_022420CA:
- ldr r0, [sp]
- ldr r1, [sp, #0x28]
- mov r5, #0
- bl MOD11_0222FF88
- add r7, r0, #0
- ldr r0, [sp]
- ldr r1, [sp, #0x28]
- bl MOD11_022302BC
- add r1, r0, #0
- ldr r0, [sp]
- bl MOD11_0222FF88
- str r0, [sp, #0x18]
- ldr r0, [sp]
- ldr r1, [sp, #0x28]
- bl MOD11_0222FF7C
- str r0, [sp, #0x14]
- add r0, r7, #0
- add r4, r5, #0
- bl FUN_0206B9AC
- cmp r0, #0
- ble _0224213C
-_022420FE:
- add r0, r7, #0
- add r1, r4, #0
- bl FUN_0206B9B0
- mov r1, #0xad
- mov r2, #0
- add r6, r0, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _02242130
- add r0, r6, #0
- mov r1, #0xad
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r1, _02242340 ; =0x000001EE
- cmp r0, r1
- beq _02242130
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- add r5, r5, r0
-_02242130:
- add r0, r7, #0
- add r4, r4, #1
- bl FUN_0206B9AC
- cmp r4, r0
- blt _022420FE
-_0224213C:
- ldr r0, [sp, #0x18]
- mov r4, #0
- bl FUN_0206B9AC
- cmp r0, #0
- ble _02242186
- ldr r7, _02242340 ; =0x000001EE
-_0224214A:
- ldr r0, [sp, #0x18]
- add r1, r4, #0
- bl FUN_0206B9B0
- mov r1, #0xad
- mov r2, #0
- add r6, r0, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _0224217A
- add r0, r6, #0
- mov r1, #0xad
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, r7
- beq _0224217A
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- add r5, r5, r0
-_0224217A:
- ldr r0, [sp, #0x18]
- add r4, r4, #1
- bl FUN_0206B9AC
- cmp r4, r0
- blt _0224214A
-_02242186:
- cmp r5, #0
- bne _02242242
- ldr r0, [sp, #0x14]
- bl MOD11_02253A4C
- mov r1, #1
- tst r0, r1
- beq _022421A2
- ldr r0, [sp, #0x1c]
- orr r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x1c]
- b _02242242
-_022421A2:
- ldr r0, [sp, #0x1c]
- mov r1, #2
- orr r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x1c]
- b _02242242
-_022421B0:
- ldr r1, _0224233C ; =0x00002D8C
- ldr r0, [sp, #4]
- ldr r0, [r0, r1]
- cmp r0, #0
- bne _02242242
- ldr r0, [sp]
- ldr r1, [sp, #0x28]
- mov r7, #0
- bl MOD11_0222FF88
- add r6, r0, #0
- ldr r0, [sp]
- ldr r1, [sp, #0x28]
- bl MOD11_0222FF7C
- str r0, [sp, #0x10]
- add r0, r6, #0
- add r4, r7, #0
- bl FUN_0206B9AC
- cmp r0, #0
- ble _0224221A
-_022421DC:
- add r0, r6, #0
- add r1, r4, #0
- bl FUN_0206B9B0
- mov r1, #0xad
- mov r2, #0
- add r5, r0, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _0224220E
- add r0, r5, #0
- mov r1, #0xad
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r1, _02242340 ; =0x000001EE
- cmp r0, r1
- beq _0224220E
- add r0, r5, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- add r7, r7, r0
-_0224220E:
- add r0, r6, #0
- add r4, r4, #1
- bl FUN_0206B9AC
- cmp r4, r0
- blt _022421DC
-_0224221A:
- cmp r7, #0
- bne _02242242
- ldr r0, [sp, #0x10]
- bl MOD11_02253A4C
- mov r1, #1
- tst r0, r1
- beq _02242236
- ldr r0, [sp, #0x1c]
- orr r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x1c]
- b _02242242
-_02242236:
- ldr r0, [sp, #0x1c]
- mov r1, #2
- orr r0, r1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x1c]
-_02242242:
- ldr r0, [sp, #4]
- add r0, #0xc0
- str r0, [sp, #4]
- ldr r0, [sp, #0x28]
- add r1, r0, #1
- ldr r0, [sp, #0x24]
- str r1, [sp, #0x28]
- cmp r1, r0
- bge _02242256
- b _0224200C
-_02242256:
- ldr r0, [sp, #0x1c]
- cmp r0, #1
- bne _0224226C
- ldr r0, [sp, #0x20]
- mov r1, #1
- tst r0, r1
- beq _0224226C
- ldr r0, [sp, #0x20]
- mov r1, #4
- tst r0, r1
- beq _02242282
-_0224226C:
- ldr r0, [sp, #0x1c]
- cmp r0, #1
- bne _0224231C
- ldr r0, [sp, #0x20]
- mov r1, #0x80
- tst r0, r1
- beq _0224231C
- ldr r0, [sp, #0x20]
- mov r1, #4
- tst r0, r1
- bne _0224231C
-_02242282:
- ldr r0, [sp]
- mov r1, #1
- bl MOD11_02230188
- ldrb r0, [r0, #1]
- sub r0, #0x3e
- cmp r0, #0x23
- bhi _0224230E
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0224229E: ; jump table
- .short _022422E6 - _0224229E - 2 ; case 0
- .short _0224230E - _0224229E - 2 ; case 1
- .short _022422E6 - _0224229E - 2 ; case 2
- .short _02242306 - _0224229E - 2 ; case 3
- .short _02242306 - _0224229E - 2 ; case 4
- .short _02242306 - _0224229E - 2 ; case 5
- .short _02242306 - _0224229E - 2 ; case 6
- .short _022422EE - _0224229E - 2 ; case 7
- .short _0224230E - _0224229E - 2 ; case 8
- .short _0224230E - _0224229E - 2 ; case 9
- .short _022422F6 - _0224229E - 2 ; case 10
- .short _022422F6 - _0224229E - 2 ; case 11
- .short _022422E6 - _0224229E - 2 ; case 12
- .short _022422E6 - _0224229E - 2 ; case 13
- .short _022422E6 - _0224229E - 2 ; case 14
- .short _022422E6 - _0224229E - 2 ; case 15
- .short _022422E6 - _0224229E - 2 ; case 16
- .short _022422E6 - _0224229E - 2 ; case 17
- .short _0224230E - _0224229E - 2 ; case 18
- .short _0224230E - _0224229E - 2 ; case 19
- .short _0224230E - _0224229E - 2 ; case 20
- .short _0224230E - _0224229E - 2 ; case 21
- .short _0224230E - _0224229E - 2 ; case 22
- .short _0224230E - _0224229E - 2 ; case 23
- .short _022422FE - _0224229E - 2 ; case 24
- .short _022422F6 - _0224229E - 2 ; case 25
- .short _022422F6 - _0224229E - 2 ; case 26
- .short _022422F6 - _0224229E - 2 ; case 27
- .short _0224230E - _0224229E - 2 ; case 28
- .short _0224230E - _0224229E - 2 ; case 29
- .short _0224230E - _0224229E - 2 ; case 30
- .short _0224230E - _0224229E - 2 ; case 31
- .short _0224230E - _0224229E - 2 ; case 32
- .short _0224230E - _0224229E - 2 ; case 33
- .short _0224230E - _0224229E - 2 ; case 34
- .short _022422E6 - _0224229E - 2 ; case 35
-_022422E6:
- ldr r0, _02242344 ; =0x00000469
- bl FUN_0200521C
- b _02242314
-_022422EE:
- ldr r0, _02242348 ; =0x0000046A
- bl FUN_0200521C
- b _02242314
-_022422F6:
- ldr r0, _0224234C ; =0x0000046B
- bl FUN_0200521C
- b _02242314
-_022422FE:
- ldr r0, _02242350 ; =0x0000046C
- bl FUN_0200521C
- b _02242314
-_02242306:
- ldr r0, _02242354 ; =0x0000046D
- bl FUN_0200521C
- b _02242314
-_0224230E:
- ldr r0, _02242358 ; =0x00000468
- bl FUN_0200521C
-_02242314:
- ldr r0, [sp]
- mov r1, #2
- bl MOD11_02231484
-_0224231C:
- ldr r0, [sp, #0x1c]
- cmp r0, #0
- beq _0224232A
- ldr r0, [sp]
- ldr r1, [sp, #0x1c]
- bl MOD11_02231468
-_0224232A:
- ldr r0, [sp, #0x1c]
- cmp r0, #0
- beq _02242336
- add sp, #0x2c
- mov r0, #1
- pop {r4, r5, r6, r7, pc}
-_02242336:
- mov r0, #0
- add sp, #0x2c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0224233C: .word 0x00002D8C
-_02242340: .word 0x000001EE
-_02242344: .word 0x00000469
-_02242348: .word 0x0000046A
-_0224234C: .word 0x0000046B
-_02242350: .word 0x0000046C
-_02242354: .word 0x0000046D
-_02242358: .word 0x00000468
-
- thumb_func_start MOD11_0224235C
-MOD11_0224235C: ; 0x0224235C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- str r0, [sp]
- add r5, r1, #0
- ldr r0, _022423F4 ; =0x00002D4C
- add r6, r2, #0
- mov r1, #0xc0
- add r0, r5, r0
- mul r1, r6
- add r0, r0, r1
- str r0, [sp, #8]
- ldr r0, [sp, #0x2c]
- ldr r1, [sp, #8]
- lsl r0, r0, #1
- ldrh r1, [r1, r0]
- str r3, [sp, #4]
- ldr r4, [sp, #0x28]
- ldr r7, [sp, #0x30]
- str r0, [sp, #0xc]
- cmp r1, #0xae
- bne _02242396
- add r0, r5, #0
- bl MOD11_02246C20
- cmp r0, #0
- bne _02242396
- mov r0, #0x10
- str r0, [r4]
- b _022423A6
-_02242396:
- ldr r1, [sp, #8]
- ldr r0, [sp, #0xc]
- ldrh r0, [r1, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _022423F8 ; =0x000003E6
- ldrh r0, [r1, r0]
- str r0, [r4]
-_022423A6:
- ldr r0, [sp, #4]
- mov r1, #2
- tst r0, r1
- beq _022423DC
- ldr r0, [r4]
- add r1, #0xfe
- cmp r0, r1
- bne _022423D6
- ldr r0, [sp]
- add r1, r6, #0
- bl MOD11_022302BC
- bl MaskOfFlagNo
- ldr r1, _022423FC ; =0x00003108
- ldrb r1, [r5, r1]
- tst r0, r1
- bne _022423D0
- add sp, #0x10
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_022423D0:
- add sp, #0x10
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_022423D6:
- add sp, #0x10
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_022423DC:
- ldr r1, [r4]
- ldr r0, _02242400 ; =0x00000251
- tst r0, r1
- beq _022423E8
- str r6, [r7]
- b _022423EE
-_022423E8:
- mov r0, #1
- eor r0, r6
- str r0, [r7]
-_022423EE:
- mov r0, #0
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022423F4: .word 0x00002D4C
-_022423F8: .word 0x000003E6
-_022423FC: .word 0x00003108
-_02242400: .word 0x00000251
-
- thumb_func_start MOD11_02242404
-MOD11_02242404: ; 0x02242404
- push {r3, r4, r5, r6, r7, lr}
- str r1, [sp]
- bl MOD11_0222FF84
- add r4, r0, #0
- mov r3, #0
- cmp r4, #0
- ble _0224243E
- ldr r5, [sp]
- add r7, r3, #0
- add r6, r5, #0
-_0224241A:
- ldr r0, _02242460 ; =0x00002DB0
- add r3, r3, #1
- ldr r2, [r6, r0]
- ldr r0, _02242464 ; =0x0000218C
- ldr r1, [r5, r0]
- mov r0, #0
- mvn r0, r0
- eor r0, r1
- add r1, r2, #0
- and r1, r0
- ldr r0, _02242460 ; =0x00002DB0
- str r1, [r6, r0]
- ldr r0, _02242464 ; =0x0000218C
- add r6, #0xc0
- str r7, [r5, r0]
- add r5, r5, #4
- cmp r3, r4
- blt _0224241A
-_0224243E:
- ldr r1, [sp]
- mov r0, #0
- ldr r1, [r1, #0x64]
- lsl r2, r1, #1
- ldr r1, [sp]
- add r1, r1, r2
- ldr r2, _02242468 ; =0x00003064
- strh r0, [r1, r2]
- ldr r1, [sp]
- add r2, #0x60
- ldr r1, [r1, #0x64]
- lsl r3, r1, #1
- ldr r1, [sp]
- add r1, r1, r3
- strh r0, [r1, r2]
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02242460: .word 0x00002DB0
-_02242464: .word 0x0000218C
-_02242468: .word 0x00003064
-
- thumb_func_start MOD11_0224246C
-MOD11_0224246C: ; 0x0224246C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r0, #0
- ldr r0, _02242504 ; =0x000021EC
- str r1, [sp]
- ldrb r0, [r5, r0]
- add r6, r2, #0
- str r3, [sp, #4]
- mov r4, #0
- bl MaskOfFlagNo
- ldr r1, _02242508 ; =0x0000213C
- lsl r0, r0, #0x18
- ldr r2, [r5, r1]
- mov r1, #0xf
- lsl r1, r1, #0x18
- tst r1, r2
- beq _022424FA
- add r1, r2, #0
- tst r1, r0
- bne _022424AE
- ldr r7, _02242504 ; =0x000021EC
- add r6, r7, #0
- sub r6, #0xb0
-_0224249C:
- add r4, r4, #1
- add r0, r5, r4
- ldrb r0, [r0, r7]
- bl MaskOfFlagNo
- ldr r1, [r5, r6]
- lsl r0, r0, #0x18
- tst r1, r0
- beq _0224249C
-_022424AE:
- ldr r2, _02242508 ; =0x0000213C
- mov r1, #0
- mvn r1, r1
- eor r1, r0
- ldr r3, [r5, r2]
- asr r0, r0, #0x18
- and r1, r3
- str r1, [r5, r2]
- bl LowestFlagNo
- str r0, [r5, #0x74]
- ldr r0, [sp, #4]
- cmp r0, #1
- bne _022424D6
- add r0, r5, #0
- mov r1, #1
- mov r2, #6
- bl MOD11_022431DC
- b _022424E0
-_022424D6:
- add r0, r5, #0
- mov r1, #1
- mov r2, #0x53
- bl MOD11_022431DC
-_022424E0:
- mov r0, #0x15
- str r0, [r5, #8]
- ldr r0, [sp]
- mov r2, #0x27
- str r0, [r5, #0xc]
- ldr r0, [r5, #0x74]
- add sp, #8
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _0224250C ; =0x000021A8
- str r2, [r1, r0]
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_022424FA:
- str r6, [r5, #8]
- add r0, r4, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02242504: .word 0x000021EC
-_02242508: .word 0x0000213C
-_0224250C: .word 0x000021A8
-
- thumb_func_start MOD11_02242510
-MOD11_02242510: ; 0x02242510
- push {r3, r4, r5, lr}
- add r5, r0, #0
- mov r0, #0x85
- lsl r0, r0, #6
- add r4, r1, #0
- ldr r1, [r5, r0]
- mov r0, #0xf
- lsl r0, r0, #0x1c
- tst r0, r1
- beq _02242564
- mov r0, #1
- lsl r0, r0, #0x1c
- add r2, r1, #0
- tst r2, r0
- bne _02242536
-_0224252E:
- lsl r0, r0, #1
- add r2, r1, #0
- tst r2, r0
- beq _0224252E
-_02242536:
- mov r2, #0x85
- lsl r2, r2, #6
- mov r1, #0
- mvn r1, r1
- eor r1, r0
- ldr r3, [r5, r2]
- asr r0, r0, #0x1c
- and r1, r3
- str r1, [r5, r2]
- bl LowestFlagNo
- mov r2, #0x45
- str r0, [r5, #0x74]
- add r0, r5, #0
- mov r1, #1
- lsl r2, r2, #2
- bl MOD11_022431DC
- mov r0, #0x15
- str r0, [r5, #8]
- str r4, [r5, #0xc]
- mov r0, #1
- pop {r3, r4, r5, pc}
-_02242564:
- str r2, [r5, #8]
- mov r0, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224256C
-MOD11_0224256C: ; 0x0224256C
- push {r4, r5, r6, lr}
- add r5, r1, #0
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x60
- bne _02242580
- mov r4, #0
- b _02242594
-_02242580:
- ldr r0, _0224274C ; =0x00002160
- ldr r4, [r5, r0]
- cmp r4, #0
- bne _02242594
- ldr r0, _02242750 ; =0x00003044
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _02242754 ; =0x000003E2
- ldrb r4, [r1, r0]
-_02242594:
- mov r0, #0xc1
- lsl r0, r0, #6
- ldr r2, [r5, r0]
- mov r6, #0x10
- lsl r1, r2, #4
- add r3, r5, r1
- ldr r1, _02242758 ; =0x000003E9
- ldrb r1, [r3, r1]
- tst r1, r6
- beq _022425DE
- ldr r3, _0224275C ; =0x0000213C
- lsl r6, r6, #0x10
- ldr r1, [r5, r3]
- tst r1, r6
- bne _022425DE
- ldr r1, [r5, #0x6c]
- cmp r1, #0xff
- beq _022425DE
- add r3, r3, #4
- ldr r6, [r5, r3]
- mov r3, #4
- tst r3, r6
- beq _022425DE
- lsl r1, r1, #1
- add r3, r5, r1
- add r1, r0, #0
- add r1, #0x44
- strh r2, [r3, r1]
- ldr r2, [r5, #0x6c]
- ldr r1, [r5, r0]
- lsl r2, r2, #3
- add r3, r5, r2
- ldr r2, [r5, #0x64]
- add r0, #0x4c
- lsl r2, r2, #1
- add r2, r3, r2
- strh r1, [r2, r0]
-_022425DE:
- ldr r1, [r5, #0x6c]
- cmp r1, #0xff
- beq _02242628
- add r0, r5, #0
- bl MOD11_02249D90
- ldr r1, _0224275C ; =0x0000213C
- lsl r0, r0, #0x18
- ldr r3, [r5, r1]
- mov r2, #0x20
- lsr r0, r0, #0x18
- tst r2, r3
- bne _02242602
- add r1, r1, #4
- ldr r2, [r5, r1]
- mov r1, #4
- tst r1, r2
- beq _0224261C
-_02242602:
- cmp r0, #0x36
- beq _0224261C
- cmp r0, #0x72
- beq _0224261C
- cmp r0, #0x7c
- beq _0224261C
- ldr r1, [r5, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _02242760 ; =0x00002DF8
- mov r2, #0
- strh r2, [r1, r0]
-_0224261C:
- ldr r0, _0224275C ; =0x0000213C
- mov r1, #1
- ldr r2, [r5, r0]
- lsl r1, r1, #0x14
- tst r1, r2
- beq _0224262A
-_02242628:
- b _0224274A
-_0224262A:
- add r0, r0, #4
- ldr r1, [r5, r0]
- mov r0, #4
- tst r0, r1
- beq _02242668
- ldr r1, [r5, #0x6c]
- ldr r0, _02242750 ; =0x00003044
- lsl r1, r1, #1
- add r2, r5, r1
- add r1, r0, #0
- ldr r3, [r5, r0]
- add r1, #0x20
- strh r3, [r2, r1]
- ldr r1, [r5, #0x6c]
- ldr r3, [r5, #0x64]
- lsl r1, r1, #1
- add r2, r5, r1
- add r1, r0, #0
- add r1, #0x28
- strh r3, [r2, r1]
- ldr r1, [r5, #0x6c]
- lsl r1, r1, #1
- add r2, r5, r1
- add r1, r0, #0
- add r1, #0x30
- strh r4, [r2, r1]
- sub r1, r0, #4
- ldr r1, [r5, r1]
- add r0, r0, #4
- str r1, [r5, r0]
- b _02242692
-_02242668:
- ldr r0, [r5, #0x6c]
- ldr r3, _02242764 ; =0x00003064
- lsl r0, r0, #1
- mov r1, #0
- add r0, r5, r0
- strh r1, [r0, r3]
- ldr r2, [r5, #0x6c]
- mov r0, #0xff
- lsl r2, r2, #1
- add r6, r5, r2
- add r2, r3, #0
- add r2, #8
- strh r0, [r6, r2]
- ldr r0, [r5, #0x6c]
- lsl r0, r0, #1
- add r2, r5, r0
- add r0, r3, #0
- add r0, #0x10
- strh r1, [r2, r0]
- sub r3, #0x1c
- str r1, [r5, r3]
-_02242692:
- mov r0, #0x85
- lsl r0, r0, #6
- ldr r2, [r5, r0]
- mov r1, #0x40
- tst r1, r2
- beq _02242726
- add r0, #0x2c
- ldr r0, [r5, r0]
- ldr r2, _02242768 ; =0x801FDA49
- tst r0, r2
- bne _02242726
- ldr r0, _02242750 ; =0x00003044
- ldr r0, [r5, r0]
- lsl r1, r0, #4
- add r3, r5, r1
- ldr r1, _0224276C ; =0x000003E6
- ldrh r3, [r3, r1]
- cmp r3, #0x40
- bgt _022426C8
- bge _022426DC
- cmp r3, #0x10
- bgt _022426C2
- beq _022426DC
- b _02242702
-_022426C2:
- cmp r3, #0x20
- beq _022426DC
- b _02242702
-_022426C8:
- lsr r1, r2, #0x17
- cmp r3, r1
- bgt _022426D6
- bge _022426DC
- cmp r3, #0x80
- beq _022426DC
- b _02242702
-_022426D6:
- lsr r1, r2, #0x16
- cmp r3, r1
- bne _02242702
-_022426DC:
- ldr r1, [r5, #0x6c]
- ldr r2, _02242770 ; =0x000030C4
- lsl r1, r1, #1
- mov r0, #0
- add r1, r5, r1
- strh r0, [r1, r2]
- ldr r1, [r5, #0x6c]
- mov r4, #0xff
- lsl r1, r1, #1
- add r3, r5, r1
- add r1, r2, #0
- add r1, #8
- strh r4, [r3, r1]
- ldr r1, [r5, #0x6c]
- add r2, #0x10
- lsl r1, r1, #1
- add r1, r5, r1
- strh r0, [r1, r2]
- pop {r4, r5, r6, pc}
-_02242702:
- ldr r1, [r5, #0x6c]
- lsl r1, r1, #1
- add r2, r5, r1
- ldr r1, _02242770 ; =0x000030C4
- strh r0, [r2, r1]
- ldr r0, [r5, #0x6c]
- ldr r3, [r5, #0x64]
- lsl r0, r0, #1
- add r2, r5, r0
- add r0, r1, #0
- add r0, #8
- strh r3, [r2, r0]
- ldr r0, [r5, #0x6c]
- add r1, #0x10
- lsl r0, r0, #1
- add r0, r5, r0
- strh r4, [r0, r1]
- pop {r4, r5, r6, pc}
-_02242726:
- ldr r1, [r5, #0x6c]
- ldr r2, _02242770 ; =0x000030C4
- lsl r1, r1, #1
- mov r0, #0
- add r1, r5, r1
- strh r0, [r1, r2]
- ldr r1, [r5, #0x6c]
- mov r4, #0xff
- lsl r1, r1, #1
- add r3, r5, r1
- add r1, r2, #0
- add r1, #8
- strh r4, [r3, r1]
- ldr r1, [r5, #0x6c]
- add r2, #0x10
- lsl r1, r1, #1
- add r1, r5, r1
- strh r0, [r1, r2]
-_0224274A:
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0224274C: .word 0x00002160
-_02242750: .word 0x00003044
-_02242754: .word 0x000003E2
-_02242758: .word 0x000003E9
-_0224275C: .word 0x0000213C
-_02242760: .word 0x00002DF8
-_02242764: .word 0x00003064
-_02242768: .word 0x801FDA49
-_0224276C: .word 0x000003E6
-_02242770: .word 0x000030C4
-
- thumb_func_start MOD11_02242774
-MOD11_02242774: ; 0x02242774
- push {r4, lr}
- add r4, r1, #0
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x10
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- mov r0, #1
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02242790
-MOD11_02242790: ; 0x02242790
- push {r3, r4, r5, lr}
- ldr r2, _022427E0 ; =0x0000216C
- add r5, r1, #0
- ldr r0, [r5, r2]
- mov r4, #0
- cmp r0, #0
- beq _022427C4
- add r1, r2, #0
- add r1, #0x11
- ldrb r1, [r5, r1]
- cmp r1, #0
- beq _022427C2
- ldr r1, [r5, #0x74]
- cmp r1, #0xff
- bne _022427BE
- add r2, #0x10
- ldrb r1, [r5, r2]
- cmp r1, #1
- beq _022427BE
- mov r1, #1
- lsl r1, r1, #0xe
- tst r0, r1
- beq _022427C4
-_022427BE:
- mov r4, #1
- b _022427C4
-_022427C2:
- mov r4, #1
-_022427C4:
- cmp r4, #1
- bne _022427DA
- add r0, r5, #0
- mov r1, #1
- mov r2, #0x15
- bl MOD11_022431DC
- ldr r0, [r5, #8]
- str r0, [r5, #0xc]
- mov r0, #0x15
- str r0, [r5, #8]
-_022427DA:
- add r0, r4, #0
- pop {r3, r4, r5, pc}
- nop
-_022427E0: .word 0x0000216C
-
- thumb_func_start MOD11_022427E4
-MOD11_022427E4: ; 0x022427E4
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- ldr r2, [r4, #0x6c]
- mov r3, #0
- cmp r2, #0xff
- bne _022427F4
- add r0, r3, #0
- pop {r3, r4, r5, r6, r7, pc}
-_022427F4:
- mov r0, #0xc0
- add r5, r2, #0
- mul r5, r0
- mov r1, #2
- ldr r0, _02242864 ; =0x00002DB0
- add r7, r4, r5
- ldr r6, [r7, r0]
- lsl r1, r1, #0x16
- tst r1, r6
- beq _0224285E
- ldr r1, _02242868 ; =0x0000216C
- mov r6, #2
- lsl r6, r6, #0x16
- ldr r1, [r4, r1]
- lsr r6, r6, #9
- tst r1, r6
- bne _0224285E
- ldr r1, [r4, #0x64]
- cmp r2, r1
- beq _0224285E
- sub r0, #0x24
- ldr r0, [r7, r0]
- cmp r0, #0
- beq _0224285E
- mov r0, #0x1c
- mul r0, r2
- add r2, r4, r0
- mov r0, #0xb6
- lsl r0, r0, #2
- ldr r1, [r2, r0]
- cmp r1, #0
- bne _0224283C
- add r0, #8
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _0224285E
-_0224283C:
- ldr r0, _0224286C ; =0x00002D59
- add r1, r4, r0
- ldrsb r0, [r1, r5]
- cmp r0, #0xc
- bge _0224285E
- add r0, r0, #1
- strb r0, [r1, r5]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xf5
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- mov r3, #1
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
-_0224285E:
- add r0, r3, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02242864: .word 0x00002DB0
-_02242868: .word 0x0000216C
-_0224286C: .word 0x00002D59
-
- thumb_func_start MOD11_02242870
-MOD11_02242870: ; 0x02242870
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- mov r4, #0
- bl MOD11_02249D90
- add r7, r0, #0
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- add r2, r4, #0
- bl MOD11_02249DA4
- add r6, r0, #0
- ldr r0, [r5, #0x6c]
- cmp r0, #0xff
- beq _0224290A
- cmp r7, #0x37
- bne _0224290A
- ldr r1, _02242910 ; =0x0000216C
- ldr r2, [r5, r1]
- ldr r1, _02242914 ; =0x801FDA49
- tst r1, r2
- bne _0224290A
- mov r1, #0x1c
- mul r1, r0
- mov r0, #0xb6
- add r2, r5, r1
- lsl r0, r0, #2
- ldr r1, [r2, r0]
- cmp r1, #0
- bne _022428B8
- add r0, #8
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _0224290A
-_022428B8:
- bl rand_LC
- mov r1, #0x64
- bl _s32_div_f
- cmp r1, r6
- bge _0224290A
- ldr r0, _02242918 ; =0x00003044
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _0224291C ; =0x000003E9
- ldrb r1, [r1, r0]
- mov r0, #0x20
- tst r0, r1
- beq _0224290A
- ldr r0, [r5, #0x6c]
- mov r1, #0xc0
- mul r1, r0
- add r2, r5, r1
- ldr r1, _02242920 ; =0x00002D8C
- ldr r1, [r2, r1]
- cmp r1, #0
- beq _0224290A
- add r1, r5, #0
- add r1, #0x94
- str r0, [r1]
- add r0, r5, #0
- mov r1, #2
- add r0, #0x88
- str r1, [r0]
- add r0, r5, #0
- mov r1, #1
- mov r2, #0xe
- bl MOD11_022431DC
- ldr r0, [r5, #8]
- mov r4, #1
- str r0, [r5, #0xc]
- mov r0, #0x15
- str r0, [r5, #8]
-_0224290A:
- add r0, r4, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02242910: .word 0x0000216C
-_02242914: .word 0x801FDA49
-_02242918: .word 0x00003044
-_0224291C: .word 0x000003E9
-_02242920: .word 0x00002D8C
-
- thumb_func_start MOD11_02242924
-MOD11_02242924: ; 0x02242924
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- ldr r4, [r5, #0x5c]
- str r0, [sp]
- mov r7, #0
- bl MOD11_0222FF84
- cmp r4, r0
- bge _02242994
- add r6, r5, #0
- add r6, #0x5c
-_0224293A:
- mov r0, #0xc0
- mul r0, r4
- mov r1, #0xb7
- add r0, r5, r0
- lsl r1, r1, #6
- ldr r2, [r0, r1]
- ldr r1, _022429A0 ; =0x200400C0
- tst r1, r2
- bne _0224297E
- ldr r1, _022429A4 ; =0x00002DC4
- ldr r2, [r0, r1]
- ldr r1, _022429A0 ; =0x200400C0
- tst r1, r2
- beq _0224297E
- ldr r1, _022429A4 ; =0x00002DC4
- ldr r2, [r0, r1]
- ldr r1, _022429A8 ; =0xDFFBFF3F
- and r2, r1
- ldr r1, _022429A4 ; =0x00002DC4
- str r2, [r0, r1]
- ldr r2, _022429AC ; =0x0000011F
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022431DC
- mov r0, #0x46
- ldr r1, [r5, #0x5c]
- lsl r0, r0, #2
- str r1, [r5, r0]
- ldr r0, [r5, #8]
- mov r7, #1
- str r0, [r5, #0xc]
- mov r0, #0x15
- str r0, [r5, #8]
-_0224297E:
- ldr r0, [r6]
- add r0, r0, #1
- str r0, [r6]
- cmp r7, #1
- beq _02242994
- ldr r0, [sp]
- ldr r4, [r5, #0x5c]
- bl MOD11_0222FF84
- cmp r4, r0
- blt _0224293A
-_02242994:
- cmp r7, #0
- bne _0224299C
- mov r0, #0
- str r0, [r5, #0x5c]
-_0224299C:
- add r0, r7, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022429A0: .word 0x200400C0
-_022429A4: .word 0x00002DC4
-_022429A8: .word 0xDFFBFF3F
-_022429AC: .word 0x0000011F
-
- thumb_func_start MOD11_022429B0
-MOD11_022429B0: ; 0x022429B0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r4, r1, #0
- mov r6, #0
- bl MOD11_0222FF84
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02249D90
- str r0, [sp, #4]
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- add r2, r6, #0
- bl MOD11_02249DA4
- ldr r1, [r4, #8]
- str r0, [sp]
- add r0, r4, #0
- add r2, r1, #0
- mov r3, #1
- bl MOD11_0224246C
- cmp r0, #1
- bne _022429E8
- add sp, #8
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_022429E8:
- add r5, r4, #0
- add r5, #0x30
-_022429EC:
- ldr r0, [r4, #0x30]
- cmp r0, #3
- bls _022429F4
- b _02242B44
-_022429F4:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02242A00: ; jump table
- .short _02242A08 - _02242A00 - 2 ; case 0
- .short _02242A38 - _02242A00 - 2 ; case 1
- .short _02242AB8 - _02242A00 - 2 ; case 2
- .short _02242B3C - _02242A00 - 2 ; case 3
-_02242A08:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- ldr r1, _02242B5C ; =0x00002DB0
- add r0, r4, r0
- ldr r2, [r0, r1]
- mov r1, #2
- lsl r1, r1, #0x16
- tst r1, r2
- beq _02242A30
- ldr r1, _02242B60 ; =0x00003044
- ldr r1, [r4, r1]
- cmp r1, #0x63
- beq _02242A30
- ldr r1, _02242B5C ; =0x00002DB0
- ldr r2, [r0, r1]
- ldr r1, _02242B64 ; =0xFF7FFFFF
- and r2, r1
- ldr r1, _02242B5C ; =0x00002DB0
- str r2, [r0, r1]
-_02242A30:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _02242B44
-_02242A38:
- ldr r3, [r4, #0x6c]
- cmp r3, #0xff
- beq _02242AB0
- ldr r0, [sp, #4]
- cmp r0, #0x57
- bne _02242AB0
- mov r0, #0x85
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r0, #0x10
- tst r0, r1
- bne _02242AB0
- ldr r0, _02242B68 ; =0x0000213C
- ldr r1, [r4, r0]
- mov r0, #2
- lsl r0, r0, #0xc
- tst r0, r1
- beq _02242AB0
- ldr r2, [r4, #0x64]
- mov r0, #0x1c
- mul r0, r2
- add r1, r4, r0
- mov r0, #0xbb
- lsl r0, r0, #2
- ldr r7, [r1, r0]
- cmp r7, #0
- beq _02242AB0
- cmp r2, r3
- beq _02242AB0
- mov r0, #0xc0
- mul r0, r2
- add r2, r4, r0
- ldr r0, _02242B6C ; =0x00002D8C
- ldr r1, [r2, r0]
- add r0, r0, #4
- ldr r0, [r2, r0]
- cmp r1, r0
- bhs _02242AB0
- cmp r1, #0
- beq _02242AB0
- ldr r1, [sp]
- neg r0, r7
- bl MOD11_022476C0
- ldr r1, _02242B70 ; =0x0000215C
- mov r2, #0xd5
- str r0, [r4, r1]
- mov r0, #0x46
- ldr r1, [r4, #0x64]
- lsl r0, r0, #2
- str r1, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- mov r6, #1
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
-_02242AB0:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _02242B44
-_02242AB8:
- ldr r0, [sp, #4]
- cmp r0, #0x61
- bne _02242B34
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x62
- beq _02242B34
- mov r0, #0x85
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r0, #0x10
- tst r0, r1
- bne _02242B34
- ldr r0, _02242B68 ; =0x0000213C
- ldr r1, [r4, r0]
- mov r0, #2
- lsl r0, r0, #0xc
- tst r0, r1
- beq _02242B34
- ldr r0, _02242B60 ; =0x00003044
- ldr r0, [r4, r0]
- lsl r0, r0, #4
- add r1, r4, r0
- mov r0, #0x3e
- lsl r0, r0, #4
- ldrb r0, [r1, r0]
- cmp r0, #2
- beq _02242B34
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- ldr r1, _02242B6C ; =0x00002D8C
- add r0, r4, r0
- ldr r1, [r0, r1]
- cmp r1, #0
- beq _02242B34
- ldr r1, _02242B74 ; =0x00002D90
- ldr r1, [r0, r1]
- mov r0, #0
- mvn r0, r0
- mul r0, r1
- mov r1, #0xa
- bl MOD11_022476C0
- ldr r1, _02242B70 ; =0x0000215C
- mov r2, #0xd6
- str r0, [r4, r1]
- mov r0, #0x46
- ldr r1, [r4, #0x64]
- lsl r0, r0, #2
- str r1, [r4, r0]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- mov r6, #1
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
-_02242B34:
- ldr r0, [r5]
- add r0, r0, #1
- str r0, [r5]
- b _02242B44
-_02242B3C:
- mov r0, #0
- str r0, [r4, #0x30]
- str r0, [r4, #0x34]
- mov r6, #2
-_02242B44:
- cmp r6, #0
- bne _02242B4A
- b _022429EC
-_02242B4A:
- cmp r6, #1
- bne _02242B54
- add sp, #8
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_02242B54:
- mov r0, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02242B5C: .word 0x00002DB0
-_02242B60: .word 0x00003044
-_02242B64: .word 0xFF7FFFFF
-_02242B68: .word 0x0000213C
-_02242B6C: .word 0x00002D8C
-_02242B70: .word 0x0000215C
-_02242B74: .word 0x00002D90
-
- thumb_func_start MOD11_02242B78
-MOD11_02242B78: ; 0x02242B78
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- add r7, r1, #0
- str r2, [sp, #4]
- add r1, r2, #0
- add r2, r3, #0
- str r0, [sp]
- bl MOD11_02230014
- ldr r1, [sp, #4]
- mov r2, #0xc0
- add r5, r1, #0
- mov r1, #0xb5
- lsl r1, r1, #6
- add r1, r7, r1
- mul r5, r2
- str r1, [sp, #0x18]
- mov r1, #5
- mov r2, #0
- add r4, r0, #0
- bl GetMonDataEncrypted
- ldr r1, [sp, #0x18]
- mov r2, #0
- strh r0, [r1, r5]
- add r0, r4, #0
- mov r1, #0xa4
- bl GetMonDataEncrypted
- ldr r1, _02242F4C ; =0x00002D42
- add r2, r7, r5
- strh r0, [r2, r1]
- add r0, r4, #0
- mov r1, #0xa5
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r1, _02242F50 ; =0x00002D44
- add r2, r7, r5
- strh r0, [r2, r1]
- add r0, r4, #0
- mov r1, #0xa6
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r1, _02242F54 ; =0x00002D46
- add r2, r7, r5
- strh r0, [r2, r1]
- add r0, r4, #0
- mov r1, #0xa7
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r1, _02242F58 ; =0x00002D48
- add r2, r7, r5
- strh r0, [r2, r1]
- add r0, r4, #0
- mov r1, #0xa8
- mov r2, #0
- bl GetMonDataEncrypted
- add r1, r7, r5
- ldr r2, _02242F5C ; =0x00002D4A
- str r1, [sp, #0xc]
- strh r0, [r1, r2]
- add r0, r1, #0
- mov r6, #0
- str r0, [sp, #0x14]
- str r0, [sp, #0x10]
-_02242C02:
- add r1, r6, #0
- add r0, r4, #0
- add r1, #0x36
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r2, [sp, #0x14]
- ldr r1, _02242F60 ; =0x00002D4C
- strh r0, [r2, r1]
- add r1, r6, #0
- add r0, r4, #0
- add r1, #0x3a
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r2, [sp, #0x10]
- ldr r1, _02242F64 ; =0x00002D6C
- strb r0, [r2, r1]
- add r1, r6, #0
- add r0, r4, #0
- add r1, #0x3e
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r2, [sp, #0x10]
- ldr r1, _02242F68 ; =0x00002D70
- add r6, r6, #1
- strb r0, [r2, r1]
- ldr r0, [sp, #0x14]
- add r0, r0, #2
- str r0, [sp, #0x14]
- add r0, r2, #0
- add r0, r0, #1
- str r0, [sp, #0x10]
- cmp r6, #4
- blt _02242C02
- add r0, r1, #0
- sub r0, #0x1c
- add r6, r7, r0
- add r0, r4, #0
- mov r1, #0x46
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r1, [r6, r5]
- mov r2, #0x1f
- bic r1, r2
- mov r2, #0x1f
- and r0, r2
- orr r0, r1
- str r0, [r6, r5]
- add r0, r4, #0
- mov r1, #0x47
- mov r2, #0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x1b
- ldr r2, [r6, r5]
- ldr r1, _02242F6C ; =0xFFFFFC1F
- lsr r0, r0, #0x16
- and r1, r2
- orr r0, r1
- str r0, [r6, r5]
- add r0, r4, #0
- mov r1, #0x48
- mov r2, #0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x1b
- ldr r2, [r6, r5]
- ldr r1, _02242F70 ; =0xFFFF83FF
- lsr r0, r0, #0x11
- and r1, r2
- orr r0, r1
- str r0, [r6, r5]
- add r0, r4, #0
- mov r1, #0x49
- mov r2, #0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x1b
- ldr r2, [r6, r5]
- ldr r1, _02242F74 ; =0xFFF07FFF
- lsr r0, r0, #0xc
- and r1, r2
- orr r0, r1
- str r0, [r6, r5]
- add r0, r4, #0
- mov r1, #0x4a
- mov r2, #0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x1b
- ldr r2, [r6, r5]
- ldr r1, _02242F78 ; =0xFE0FFFFF
- lsr r0, r0, #7
- and r1, r2
- orr r0, r1
- str r0, [r6, r5]
- add r0, r4, #0
- mov r1, #0x4b
- mov r2, #0
- bl GetMonDataEncrypted
- lsl r0, r0, #0x1b
- ldr r2, [r6, r5]
- ldr r1, _02242F7C ; =0xC1FFFFFF
- lsr r0, r0, #2
- and r1, r2
- orr r0, r1
- str r0, [r6, r5]
- add r0, r4, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r2, [r6, r5]
- ldr r1, _02242F80 ; =0xBFFFFFFF
- lsl r0, r0, #0x1f
- and r1, r2
- lsr r0, r0, #1
- orr r0, r1
- str r0, [r6, r5]
- add r0, r4, #0
- mov r1, #0x4d
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r2, [r6, r5]
- ldr r1, _02242F84 ; =0x7FFFFFFF
- lsl r0, r0, #0x1f
- and r1, r2
- orr r0, r1
- str r0, [r6, r5]
- ldr r0, _02242F88 ; =0x0000213C
- ldr r1, [r7, r0]
- mov r0, #1
- lsl r0, r0, #8
- tst r0, r1
- bne _02242D2E
- ldr r0, _02242F8C ; =0x00002D58
- mov r2, #0
- mov r1, #6
-_02242D20:
- ldr r3, [sp, #0xc]
- add r2, r2, #1
- strb r1, [r3, r0]
- add r3, r3, #1
- str r3, [sp, #0xc]
- cmp r2, #8
- blt _02242D20
-_02242D2E:
- ldr r0, _02242F90 ; =0x00002D68
- mov r1, #1
- add r0, r7, r0
- ldr r2, [r0, r5]
- bic r2, r1
- str r2, [r0, r5]
- ldr r2, [r0, r5]
- mov r1, #2
- bic r2, r1
- str r2, [r0, r5]
- ldr r2, [r0, r5]
- mov r1, #4
- bic r2, r1
- str r2, [r0, r5]
- ldr r2, [r0, r5]
- mov r1, #8
- bic r2, r1
- str r2, [r0, r5]
- ldr r2, [r0, r5]
- mov r1, #0x10
- bic r2, r1
- str r2, [r0, r5]
- ldr r2, [r0, r5]
- mov r1, #0x20
- bic r2, r1
- str r2, [r0, r5]
- ldr r2, [r0, r5]
- mov r1, #0x40
- bic r2, r1
- str r2, [r0, r5]
- ldr r2, [r0, r5]
- mov r1, #0x80
- bic r2, r1
- str r2, [r0, r5]
- ldr r2, [r0, r5]
- ldr r1, _02242F94 ; =0xFFFFFEFF
- and r1, r2
- str r1, [r0, r5]
- ldr r2, [r0, r5]
- ldr r1, _02242F98 ; =0xFFFFFDFF
- and r1, r2
- str r1, [r0, r5]
- ldr r2, [r0, r5]
- ldr r1, _02242F9C ; =0xFFFFFBFF
- and r1, r2
- str r1, [r0, r5]
- add r0, r4, #0
- mov r1, #0xb0
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r1, _02242FA0 ; =0x00002D64
- add r2, r7, r5
- strb r0, [r2, r1]
- add r0, r4, #0
- mov r1, #0xb1
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r1, _02242FA4 ; =0x00002D65
- add r2, r7, r5
- strb r0, [r2, r1]
- add r1, #0x59
- add r0, r7, r1
- str r0, [sp, #0x1c]
- add r0, r4, #0
- bl GetMonGenderEncrypted
- ldr r1, [sp, #0x1c]
- mov r2, #0xf
- ldrb r1, [r1, r5]
- bic r1, r2
- mov r2, #0xf
- and r0, r2
- orr r1, r0
- ldr r0, [sp, #0x1c]
- strb r1, [r0, r5]
- ldr r0, _02242FA8 ; =0x00002D66
- add r6, r7, r0
- add r0, r4, #0
- bl FUN_02068A80
- ldrb r1, [r6, r5]
- mov r2, #0x20
- lsl r0, r0, #0x1f
- bic r1, r2
- lsr r0, r0, #0x1a
- orr r0, r1
- strb r0, [r6, r5]
- add r0, r4, #0
- mov r1, #0x70
- mov r2, #0
- bl GetMonDataEncrypted
- ldrb r1, [r6, r5]
- mov r2, #0x1f
- lsl r0, r0, #0x18
- bic r1, r2
- lsr r2, r0, #0x18
- mov r0, #0x1f
- and r0, r2
- orr r0, r1
- strb r0, [r6, r5]
- ldr r0, [sp]
- bl MOD11_0222FF74
- mov r1, #0x22
- lsl r1, r1, #4
- tst r0, r1
- beq _02242E24
- ldr r2, _02242FAC ; =0x00002D67
- mov r0, #0
- add r3, r7, r5
- add r1, r2, #0
- strb r0, [r3, r2]
- add r2, #0x51
- add r1, #0x45
- add r2, r7, r2
- str r0, [r3, r1]
- add r1, r2, r5
- str r1, [sp, #8]
- strh r0, [r2, r5]
- b _02242E58
-_02242E24:
- add r0, r4, #0
- mov r1, #0xa
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r1, _02242FAC ; =0x00002D67
- add r2, r7, r5
- strb r0, [r2, r1]
- add r0, r4, #0
- mov r1, #0x9f
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r1, _02242FB0 ; =0x00002DAC
- add r2, r7, r5
- str r0, [r2, r1]
- add r1, #0xc
- add r6, r7, r1
- add r0, r6, r5
- str r0, [sp, #8]
- add r0, r4, #0
- mov r1, #6
- mov r2, #0
- bl GetMonDataEncrypted
- strh r0, [r6, r5]
-_02242E58:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- add r6, r0, #0
- mul r6, r1
- add r0, r4, #0
- mov r1, #0xa0
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r1, _02242FB4 ; =0x00002D74
- add r2, r7, r6
- strb r0, [r2, r1]
- add r0, r4, #0
- mov r1, #9
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r1, _02242FB8 ; =0x00002D75
- add r2, r7, r6
- strb r0, [r2, r1]
- add r0, r4, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r1, _02242FBC ; =0x00002D8C
- add r2, r7, r6
- str r0, [r2, r1]
- add r0, r4, #0
- mov r1, #0xa3
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r1, _02242FC0 ; =0x00002D90
- add r2, r7, r6
- str r0, [r2, r1]
- add r0, r4, #0
- mov r1, #8
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r1, _02242FC4 ; =0x00002DA4
- add r2, r7, r6
- str r0, [r2, r1]
- mov r1, #0
- add r0, r4, #0
- add r2, r1, #0
- bl GetMonDataEncrypted
- ldr r1, _02242FC8 ; =0x00002DA8
- add r2, r7, r6
- str r0, [r2, r1]
- add r0, r4, #0
- mov r1, #7
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r1, _02242FCC ; =0x00002DB4
- add r2, r7, r6
- str r0, [r2, r1]
- add r0, r4, #0
- mov r1, #0x9c
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r1, [sp, #0x1c]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- lsl r0, r0, #0x1c
- ldrb r1, [r1, r5]
- mov r2, #0xf0
- lsr r0, r0, #0x18
- bic r1, r2
- orr r1, r0
- ldr r0, [sp, #0x1c]
- mov r2, #0
- strb r1, [r0, r5]
- add r0, r4, #0
- mov r1, #0x9a
- bl GetMonDataEncrypted
- ldr r1, _02242FD0 ; =0x00002DBF
- add r2, r7, r6
- strb r0, [r2, r1]
- mov r0, #5
- bl FUN_02087A6C
- mov r1, #0
- mov r2, #5
- str r0, [sp, #0x20]
- bl FUN_02087A98
- ldr r1, [sp, #0x18]
- ldr r0, [sp, #0x20]
- ldrh r1, [r1, r5]
- bl FUN_02087B78
- ldr r1, _02242FD4 ; =0x00002D60
- add r2, r7, r6
- str r0, [r2, r1]
- ldr r0, [sp, #0x20]
- bl FUN_02087B0C
- ldr r0, [sp, #0x20]
- bl FUN_02087A84
- ldr r2, _02242FD8 ; =0x00002D76
- add r0, r4, #0
- add r2, r7, r2
- mov r1, #0x74
- add r2, r2, r6
- bl GetMonDataEncrypted
- ldr r2, _02242FDC ; =0x00002D94
- add r0, r4, #0
- add r2, r7, r2
- mov r1, #0x8f
- add r2, r2, r6
- bl GetMonDataEncrypted
- ldr r0, _02242FE0 ; =0x00002DBC
- b _02242FE4
- .align 2, 0
-_02242F4C: .word 0x00002D42
-_02242F50: .word 0x00002D44
-_02242F54: .word 0x00002D46
-_02242F58: .word 0x00002D48
-_02242F5C: .word 0x00002D4A
-_02242F60: .word 0x00002D4C
-_02242F64: .word 0x00002D6C
-_02242F68: .word 0x00002D70
-_02242F6C: .word 0xFFFFFC1F
-_02242F70: .word 0xFFFF83FF
-_02242F74: .word 0xFFF07FFF
-_02242F78: .word 0xFE0FFFFF
-_02242F7C: .word 0xC1FFFFFF
-_02242F80: .word 0xBFFFFFFF
-_02242F84: .word 0x7FFFFFFF
-_02242F88: .word 0x0000213C
-_02242F8C: .word 0x00002D58
-_02242F90: .word 0x00002D68
-_02242F94: .word 0xFFFFFEFF
-_02242F98: .word 0xFFFFFDFF
-_02242F9C: .word 0xFFFFFBFF
-_02242FA0: .word 0x00002D64
-_02242FA4: .word 0x00002D65
-_02242FA8: .word 0x00002D66
-_02242FAC: .word 0x00002D67
-_02242FB0: .word 0x00002DAC
-_02242FB4: .word 0x00002D74
-_02242FB8: .word 0x00002D75
-_02242FBC: .word 0x00002D8C
-_02242FC0: .word 0x00002D90
-_02242FC4: .word 0x00002DA4
-_02242FC8: .word 0x00002DA8
-_02242FCC: .word 0x00002DB4
-_02242FD0: .word 0x00002DBF
-_02242FD4: .word 0x00002D60
-_02242FD8: .word 0x00002D76
-_02242FDC: .word 0x00002D94
-_02242FE0: .word 0x00002DBC
-_02242FE4:
- mov r2, #0
- add r1, r7, r6
- strb r2, [r1, r0]
- add r0, r0, #1
- strb r2, [r1, r0]
- ldr r0, [sp]
- ldr r1, [sp, #4]
- bl MOD11_02230270
- add r4, r0, #0
- ldr r0, [sp, #4]
- add r1, r7, r0
- ldr r0, _02243048 ; =0x0000219C
- ldrb r0, [r1, r0]
- bl MaskOfFlagNo
- lsl r1, r4, #3
- add r2, r7, r1
- mov r1, #0x71
- lsl r1, r1, #2
- ldr r1, [r2, r1]
- lsl r1, r1, #3
- lsr r1, r1, #0x1a
- tst r0, r1
- beq _0224302C
- ldr r0, [sp, #8]
- mov r1, #0
- strh r1, [r0]
- ldr r0, _0224304C ; =0x00002DCC
- add sp, #0x24
- add r2, r7, r0
- ldr r1, [r2, r5]
- ldr r0, _02243050 ; =0xFFBFFFFF
- and r0, r1
- str r0, [r2, r5]
- pop {r4, r5, r6, r7, pc}
-_0224302C:
- ldr r0, [sp, #8]
- ldrh r0, [r0]
- cmp r0, #0
- beq _02243042
- ldr r0, _0224304C ; =0x00002DCC
- add r2, r7, r0
- mov r0, #1
- ldr r1, [r2, r5]
- lsl r0, r0, #0x16
- orr r0, r1
- str r0, [r2, r5]
-_02243042:
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- nop
-_02243048: .word 0x0000219C
-_0224304C: .word 0x00002DCC
-_02243050: .word 0xFFBFFFFF
-
- thumb_func_start MOD11_02243054
-MOD11_02243054: ; 0x02243054
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r5, r2, #0
- str r1, [sp]
- add r1, r5, #0
- add r2, r3, #0
- bl MOD11_02230014
- mov r1, #0xc0
- mul r1, r5
- str r1, [sp, #4]
- mov r1, #0xa4
- mov r2, #0
- add r6, r0, #0
- bl GetMonDataEncrypted
- ldr r2, [sp]
- ldr r1, [sp, #4]
- add r2, r2, r1
- ldr r1, _022431A8 ; =0x00002D42
- strh r0, [r2, r1]
- add r0, r6, #0
- mov r1, #0xa5
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r2, [sp]
- ldr r1, [sp, #4]
- add r2, r2, r1
- ldr r1, _022431AC ; =0x00002D44
- strh r0, [r2, r1]
- add r0, r6, #0
- mov r1, #0xa6
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r2, [sp]
- ldr r1, [sp, #4]
- add r2, r2, r1
- ldr r1, _022431B0 ; =0x00002D46
- strh r0, [r2, r1]
- add r0, r6, #0
- mov r1, #0xa7
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r2, [sp]
- ldr r1, [sp, #4]
- add r2, r2, r1
- ldr r1, _022431B4 ; =0x00002D48
- strh r0, [r2, r1]
- add r0, r6, #0
- mov r1, #0xa8
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r2, [sp]
- ldr r1, [sp, #4]
- add r2, r2, r1
- ldr r1, _022431B8 ; =0x00002D4A
- strh r0, [r2, r1]
- add r0, r6, #0
- mov r1, #0xa0
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r2, [sp]
- ldr r1, [sp, #4]
- add r2, r2, r1
- ldr r1, _022431BC ; =0x00002D74
- strb r0, [r2, r1]
- add r0, r6, #0
- mov r1, #9
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r2, [sp]
- ldr r1, [sp, #4]
- add r2, r2, r1
- ldr r1, _022431C0 ; =0x00002D75
- strb r0, [r2, r1]
- add r0, r6, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r2, [sp]
- ldr r1, [sp, #4]
- add r2, r2, r1
- ldr r1, _022431C4 ; =0x00002D8C
- str r0, [r2, r1]
- add r0, r6, #0
- mov r1, #0xa3
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r2, [sp]
- ldr r1, [sp, #4]
- add r2, r2, r1
- ldr r1, _022431C8 ; =0x00002D90
- str r0, [r2, r1]
- add r0, r1, #0
- add r0, #0x20
- ldr r2, [r2, r0]
- mov r0, #2
- lsl r0, r0, #0x14
- tst r0, r2
- bne _022431A4
- mov r0, #0xc0
- mul r0, r5
- ldr r2, [sp]
- str r0, [sp, #8]
- add r7, r2, r0
- add r1, #0x3c
- add r0, r2, #0
- add r0, r0, r1
- mov r4, #0
- add r5, r7, #0
- str r0, [sp, #0xc]
-_02243142:
- add r0, r4, #0
- bl MaskOfFlagNo
- ldr r2, [sp, #0xc]
- ldr r1, [sp, #8]
- ldr r1, [r2, r1]
- lsl r1, r1, #0x1a
- lsr r1, r1, #0x1c
- tst r0, r1
- bne _02243186
- add r1, r4, #0
- add r0, r6, #0
- add r1, #0x36
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r1, _022431CC ; =0x00002D4C
- mov r2, #0
- strh r0, [r7, r1]
- add r1, r4, #0
- add r0, r6, #0
- add r1, #0x3a
- bl GetMonDataEncrypted
- ldr r1, _022431D0 ; =0x00002D6C
- mov r2, #0
- strb r0, [r5, r1]
- add r1, r4, #0
- add r0, r6, #0
- add r1, #0x3e
- bl GetMonDataEncrypted
- ldr r1, _022431D4 ; =0x00002D70
- strb r0, [r5, r1]
-_02243186:
- add r4, r4, #1
- add r7, r7, #2
- add r5, r5, #1
- cmp r4, #4
- blt _02243142
- add r0, r6, #0
- mov r1, #8
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r2, [sp]
- ldr r1, [sp, #4]
- add r2, r2, r1
- ldr r1, _022431D8 ; =0x00002DA4
- str r0, [r2, r1]
-_022431A4:
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022431A8: .word 0x00002D42
-_022431AC: .word 0x00002D44
-_022431B0: .word 0x00002D46
-_022431B4: .word 0x00002D48
-_022431B8: .word 0x00002D4A
-_022431BC: .word 0x00002D74
-_022431C0: .word 0x00002D75
-_022431C4: .word 0x00002D8C
-_022431C8: .word 0x00002D90
-_022431CC: .word 0x00002D4C
-_022431D0: .word 0x00002D6C
-_022431D4: .word 0x00002D70
-_022431D8: .word 0x00002DA4
-
- thumb_func_start MOD11_022431DC
-MOD11_022431DC: ; 0x022431DC
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r6, r2, #0
- add r5, r0, #0
- add r0, r4, #0
- add r1, r6, #0
- bl GetNarcMemberSizeByIdPair
- mov r1, #0x19
- lsl r1, r1, #6
- cmp r0, r1
- blo _022431F8
- bl ErrorHandling
-_022431F8:
- add r0, r5, #0
- add r0, #0xac
- str r4, [r0]
- add r0, r5, #0
- add r0, #0xb0
- str r6, [r0]
- add r0, r5, #0
- mov r1, #0
- add r0, #0xb4
- str r1, [r0]
- mov r0, #0x27
- lsl r0, r0, #8
- add r0, r5, r0
- add r1, r4, #0
- add r2, r6, #0
- bl ReadWholeNarcMemberByIdPair
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_0224321C
-MOD11_0224321C: ; 0x0224321C
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r6, r2, #0
- add r5, r0, #0
- add r0, r4, #0
- add r1, r6, #0
- bl GetNarcMemberSizeByIdPair
- mov r1, #0x19
- lsl r1, r1, #6
- cmp r0, r1
- blo _02243238
- bl ErrorHandling
-_02243238:
- add r0, r5, #0
- add r0, #0xb8
- ldr r0, [r0]
- cmp r0, #4
- blt _02243246
- bl ErrorHandling
-_02243246:
- add r1, r5, #0
- add r1, #0xb8
- ldr r1, [r1]
- add r0, r5, #0
- add r0, #0xac
- lsl r1, r1, #2
- add r1, r5, r1
- ldr r0, [r0]
- add r1, #0xbc
- str r0, [r1]
- add r1, r5, #0
- add r1, #0xb8
- ldr r1, [r1]
- add r0, r5, #0
- add r0, #0xb0
- lsl r1, r1, #2
- add r1, r5, r1
- ldr r0, [r0]
- add r1, #0xcc
- str r0, [r1]
- add r1, r5, #0
- add r1, #0xb8
- ldr r1, [r1]
- add r0, r5, #0
- add r0, #0xb4
- lsl r1, r1, #2
- add r1, r5, r1
- ldr r0, [r0]
- add r1, #0xdc
- str r0, [r1]
- add r0, r5, #0
- add r0, #0xb8
- ldr r0, [r0]
- add r2, r6, #0
- add r1, r0, #1
- add r0, r5, #0
- add r0, #0xb8
- str r1, [r0]
- add r0, r5, #0
- add r0, #0xac
- str r4, [r0]
- add r0, r5, #0
- add r0, #0xb0
- str r6, [r0]
- add r0, r5, #0
- mov r1, #0
- add r0, #0xb4
- str r1, [r0]
- mov r0, #0x27
- lsl r0, r0, #8
- add r0, r5, r0
- add r1, r4, #0
- bl ReadWholeNarcMemberByIdPair
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_022432B4
-MOD11_022432B4: ; 0x022432B4
- push {r4, lr}
- add r4, r0, #0
- add r1, r4, #0
- add r1, #0xb8
- ldr r1, [r1]
- cmp r1, #0
- beq _022432FE
- add r1, r4, #0
- add r1, #0xb8
- ldr r1, [r1]
- sub r2, r1, #1
- add r1, r4, #0
- add r1, #0xb8
- str r2, [r1]
- add r1, r4, #0
- add r1, #0xb8
- ldr r1, [r1]
- lsl r2, r1, #2
- add r1, r4, r2
- add r2, r4, r2
- add r1, #0xbc
- add r2, #0xcc
- ldr r1, [r1]
- ldr r2, [r2]
- bl MOD11_022431DC
- add r0, r4, #0
- add r0, #0xb8
- ldr r0, [r0]
- lsl r0, r0, #2
- add r0, r4, r0
- add r0, #0xdc
- ldr r0, [r0]
- add r4, #0xb4
- str r0, [r4]
- mov r0, #0
- pop {r4, pc}
-_022432FE:
- mov r0, #1
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02243304
-MOD11_02243304: ; 0x02243304
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- lsl r0, r1, #6
- lsl r6, r2, #4
- add r1, r4, r0
- add r5, r1, r6
- mov r1, #0x22
- add r7, r3, #0
- mov r3, #0
- lsl r1, r1, #8
-_02243318:
- ldrb r2, [r5, r1]
- cmp r2, #0
- bne _0224332C
- add r0, r4, r0
- add r0, r0, r6
- add r1, r0, r3
- mov r0, #0x22
- lsl r0, r0, #8
- strb r7, [r1, r0]
- b _02243334
-_0224332C:
- add r3, r3, #1
- add r5, r5, #1
- cmp r3, #0x10
- blt _02243318
-_02243334:
- cmp r3, #0x10
- blt _0224333C
- bl ErrorHandling
-_0224333C:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02243340
-MOD11_02243340: ; 0x02243340
- push {r3, r4, r5, r6, r7, lr}
- add r7, r0, #0
- add r5, r1, #0
- str r2, [sp]
- add r4, r3, #0
- bne _02243350
- bl ErrorHandling
-_02243350:
- ldr r0, [sp]
- lsl r6, r5, #6
- lsl r5, r0, #4
- add r0, r7, r6
- add r3, r0, r5
- mov r0, #0x22
- mov r2, #0
- lsl r0, r0, #8
-_02243360:
- ldrb r1, [r3, r0]
- cmp r4, r1
- bne _02243376
- add r1, r7, r6
- add r1, r1, r5
- add r3, r1, r2
- mov r1, #0x22
- mov r0, #0
- lsl r1, r1, #8
- strb r0, [r3, r1]
- b _0224337E
-_02243376:
- add r2, r2, #1
- add r3, r3, #1
- cmp r2, #0x10
- blt _02243360
-_0224337E:
- cmp r2, #0x10
- blt _02243386
- bl ErrorHandling
-_02243386:
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02243388
-MOD11_02243388: ; 0x02243388
- push {r3, r4, r5, r6, r7, lr}
- mov r2, #0
- mov r4, #0x22
- mov lr, r0
- mov ip, r2
- add r7, r0, #0
- add r6, r2, #0
- lsl r4, r4, #8
-_02243398:
- mov r0, #0
- add r3, r7, #0
-_0224339C:
- add r1, r6, #0
-_0224339E:
- add r5, r3, r1
- ldrb r5, [r5, r4]
- add r1, r1, #1
- add r2, r2, r5
- cmp r1, #0x10
- blt _0224339E
- add r0, r0, #1
- add r3, #0x10
- cmp r0, #4
- blt _0224339C
- mov r0, ip
- add r0, r0, #1
- add r7, #0x40
- mov ip, r0
- cmp r0, #4
- blt _02243398
- cmp r2, #0
- bne _022433CA
- ldr r1, _022433D8 ; =0x00003148
- mov r3, #0
- mov r0, lr
- str r3, [r0, r1]
-_022433CA:
- cmp r2, #0
- bne _022433D2
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_022433D2:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022433D8: .word 0x00003148
-
- thumb_func_start MOD11_022433DC
-MOD11_022433DC: ; 0x022433DC
- push {r3, lr}
- ldr r1, _022433F8 ; =0x00003148
- ldr r2, [r0, r1]
- add r2, r2, #1
- str r2, [r0, r1]
- ldr r1, [r0, r1]
- ldr r0, _022433FC ; =0x00000708
- cmp r1, r0
- ble _022433F4
- mov r0, #1
- bl FUN_020336A0
-_022433F4:
- pop {r3, pc}
- nop
-_022433F8: .word 0x00003148
-_022433FC: .word 0x00000708
-
- thumb_func_start MOD11_02243400
-MOD11_02243400: ; 0x02243400
- push {r3, r4}
- lsl r1, r1, #8
- add r4, r0, r1
- mov r3, #0
- mov r0, #0x23
- mov r1, #1
- add r2, r3, #0
- lsl r0, r0, #8
- lsl r1, r1, #8
-_02243412:
- add r3, r3, #1
- strb r2, [r4, r0]
- add r4, r4, #1
- cmp r3, r1
- blt _02243412
- pop {r3, r4}
- bx lr
-
- thumb_func_start MOD11_02243420
-MOD11_02243420: ; 0x02243420
- push {r4, r5, r6, lr}
- mov r4, #0xb5
- lsl r4, r4, #6
- add r5, r0, r4
- mov r6, #0xc0
- add r4, r1, #0
- mul r4, r6
- add r4, r5, r4
- cmp r2, #0x64
- bls _02243436
- b _02243794
-_02243436:
- add r5, r2, r2
- add r5, pc
- ldrh r5, [r5, #6]
- lsl r5, r5, #0x10
- asr r5, r5, #0x10
- add pc, r5
-_02243442: ; jump table
- .short _0224350C - _02243442 - 2 ; case 0
- .short _02243510 - _02243442 - 2 ; case 1
- .short _02243514 - _02243442 - 2 ; case 2
- .short _02243518 - _02243442 - 2 ; case 3
- .short _0224351C - _02243442 - 2 ; case 4
- .short _02243520 - _02243442 - 2 ; case 5
- .short _02243524 - _02243442 - 2 ; case 6
- .short _02243524 - _02243442 - 2 ; case 7
- .short _02243524 - _02243442 - 2 ; case 8
- .short _02243524 - _02243442 - 2 ; case 9
- .short _0224352E - _02243442 - 2 ; case 10
- .short _02243536 - _02243442 - 2 ; case 11
- .short _0224353E - _02243442 - 2 ; case 12
- .short _02243546 - _02243442 - 2 ; case 13
- .short _0224354E - _02243442 - 2 ; case 14
- .short _02243556 - _02243442 - 2 ; case 15
- .short _0224355E - _02243442 - 2 ; case 16
- .short _02243566 - _02243442 - 2 ; case 17
- .short _0224356C - _02243442 - 2 ; case 18
- .short _0224356C - _02243442 - 2 ; case 19
- .short _0224356C - _02243442 - 2 ; case 20
- .short _0224356C - _02243442 - 2 ; case 21
- .short _0224356C - _02243442 - 2 ; case 22
- .short _0224356C - _02243442 - 2 ; case 23
- .short _0224356C - _02243442 - 2 ; case 24
- .short _0224356C - _02243442 - 2 ; case 25
- .short _02243576 - _02243442 - 2 ; case 26
- .short _0224357C - _02243442 - 2 ; case 27
- .short _0224357C - _02243442 - 2 ; case 28
- .short _02243582 - _02243442 - 2 ; case 29
- .short _0224358C - _02243442 - 2 ; case 30
- .short _02243596 - _02243442 - 2 ; case 31
- .short _02243596 - _02243442 - 2 ; case 32
- .short _02243596 - _02243442 - 2 ; case 33
- .short _02243596 - _02243442 - 2 ; case 34
- .short _022435A0 - _02243442 - 2 ; case 35
- .short _022435A0 - _02243442 - 2 ; case 36
- .short _022435A0 - _02243442 - 2 ; case 37
- .short _022435A0 - _02243442 - 2 ; case 38
- .short _022435AA - _02243442 - 2 ; case 39
- .short _022435AA - _02243442 - 2 ; case 40
- .short _022435AA - _02243442 - 2 ; case 41
- .short _022435AA - _02243442 - 2 ; case 42
- .short _022435BE - _02243442 - 2 ; case 43
- .short _022435C4 - _02243442 - 2 ; case 44
- .short _022435CA - _02243442 - 2 ; case 45
- .short _022435DC - _02243442 - 2 ; case 46
- .short _022435E8 - _02243442 - 2 ; case 47
- .short _022435EC - _02243442 - 2 ; case 48
- .short _022435F0 - _02243442 - 2 ; case 49
- .short _02243606 - _02243442 - 2 ; case 50
- .short _0224360A - _02243442 - 2 ; case 51
- .short _0224360E - _02243442 - 2 ; case 52
- .short _02243612 - _02243442 - 2 ; case 53
- .short _02243616 - _02243442 - 2 ; case 54
- .short _0224361A - _02243442 - 2 ; case 55
- .short _02243620 - _02243442 - 2 ; case 56
- .short _02243626 - _02243442 - 2 ; case 57
- .short _0224362C - _02243442 - 2 ; case 58
- .short _02243636 - _02243442 - 2 ; case 59
- .short _0224363C - _02243442 - 2 ; case 60
- .short _02243642 - _02243442 - 2 ; case 61
- .short _0224364C - _02243442 - 2 ; case 62
- .short _02243656 - _02243442 - 2 ; case 63
- .short _02243660 - _02243442 - 2 ; case 64
- .short _0224366A - _02243442 - 2 ; case 65
- .short _02243674 - _02243442 - 2 ; case 66
- .short _0224367E - _02243442 - 2 ; case 67
- .short _02243688 - _02243442 - 2 ; case 68
- .short _02243692 - _02243442 - 2 ; case 69
- .short _0224369C - _02243442 - 2 ; case 70
- .short _022436A6 - _02243442 - 2 ; case 71
- .short _022436B0 - _02243442 - 2 ; case 72
- .short _022436BA - _02243442 - 2 ; case 73
- .short _022436C2 - _02243442 - 2 ; case 74
- .short _022436CC - _02243442 - 2 ; case 75
- .short _022436D6 - _02243442 - 2 ; case 76
- .short _022436E0 - _02243442 - 2 ; case 77
- .short _022436EA - _02243442 - 2 ; case 78
- .short _022436F4 - _02243442 - 2 ; case 79
- .short _022436FE - _02243442 - 2 ; case 80
- .short _02243708 - _02243442 - 2 ; case 81
- .short _02243712 - _02243442 - 2 ; case 82
- .short _0224371C - _02243442 - 2 ; case 83
- .short _02243726 - _02243442 - 2 ; case 84
- .short _02243730 - _02243442 - 2 ; case 85
- .short _0224373A - _02243442 - 2 ; case 86
- .short _02243744 - _02243442 - 2 ; case 87
- .short _0224374A - _02243442 - 2 ; case 88
- .short _02243750 - _02243442 - 2 ; case 89
- .short _02243756 - _02243442 - 2 ; case 90
- .short _0224375C - _02243442 - 2 ; case 91
- .short _02243762 - _02243442 - 2 ; case 92
- .short _02243768 - _02243442 - 2 ; case 93
- .short _0224376E - _02243442 - 2 ; case 94
- .short _02243774 - _02243442 - 2 ; case 95
- .short _0224377A - _02243442 - 2 ; case 96
- .short _02243782 - _02243442 - 2 ; case 97
- .short _02243794 - _02243442 - 2 ; case 98
- .short _02243794 - _02243442 - 2 ; case 99
- .short _0224378A - _02243442 - 2 ; case 100
-_0224350C:
- ldrh r0, [r4]
- pop {r4, r5, r6, pc}
-_02243510:
- ldrh r0, [r4, #2]
- pop {r4, r5, r6, pc}
-_02243514:
- ldrh r0, [r4, #4]
- pop {r4, r5, r6, pc}
-_02243518:
- ldrh r0, [r4, #6]
- pop {r4, r5, r6, pc}
-_0224351C:
- ldrh r0, [r4, #8]
- pop {r4, r5, r6, pc}
-_02243520:
- ldrh r0, [r4, #0xa]
- pop {r4, r5, r6, pc}
-_02243524:
- sub r0, r2, #6
- lsl r0, r0, #1
- add r0, r4, r0
- ldrh r0, [r0, #0xc]
- pop {r4, r5, r6, pc}
-_0224352E:
- ldr r0, [r4, #0x14]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x1b
- pop {r4, r5, r6, pc}
-_02243536:
- ldr r0, [r4, #0x14]
- lsl r0, r0, #0x16
- lsr r0, r0, #0x1b
- pop {r4, r5, r6, pc}
-_0224353E:
- ldr r0, [r4, #0x14]
- lsl r0, r0, #0x11
- lsr r0, r0, #0x1b
- pop {r4, r5, r6, pc}
-_02243546:
- ldr r0, [r4, #0x14]
- lsl r0, r0, #0xc
- lsr r0, r0, #0x1b
- pop {r4, r5, r6, pc}
-_0224354E:
- ldr r0, [r4, #0x14]
- lsl r0, r0, #7
- lsr r0, r0, #0x1b
- pop {r4, r5, r6, pc}
-_02243556:
- ldr r0, [r4, #0x14]
- lsl r0, r0, #2
- lsr r0, r0, #0x1b
- pop {r4, r5, r6, pc}
-_0224355E:
- ldr r0, [r4, #0x14]
- lsl r0, r0, #1
- lsr r0, r0, #0x1f
- pop {r4, r5, r6, pc}
-_02243566:
- ldr r0, [r4, #0x14]
- lsr r0, r0, #0x1f
- pop {r4, r5, r6, pc}
-_0224356C:
- sub r2, #0x12
- add r1, r4, r2
- mov r0, #0x18
- ldrsb r0, [r1, r0]
- pop {r4, r5, r6, pc}
-_02243576:
- add r4, #0x27
- ldrb r0, [r4]
- pop {r4, r5, r6, pc}
-_0224357C:
- bl MOD11_0224C740
- pop {r4, r5, r6, pc}
-_02243582:
- add r4, #0x7e
- ldrb r0, [r4]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1c
- pop {r4, r5, r6, pc}
-_0224358C:
- add r4, #0x26
- ldrb r0, [r4]
- lsl r0, r0, #0x1a
- lsr r0, r0, #0x1f
- pop {r4, r5, r6, pc}
-_02243596:
- sub r2, #0x1f
- add r0, r4, r2
- add r0, #0x2c
- ldrb r0, [r0]
- pop {r4, r5, r6, pc}
-_022435A0:
- sub r2, #0x23
- add r0, r4, r2
- add r0, #0x30
- ldrb r0, [r0]
- pop {r4, r5, r6, pc}
-_022435AA:
- sub r2, #0x27
- lsl r0, r2, #1
- add r1, r4, r2
- add r0, r4, r0
- add r1, #0x30
- ldrh r0, [r0, #0xc]
- ldrb r1, [r1]
- bl FUN_0206AB30
- pop {r4, r5, r6, pc}
-_022435BE:
- add r4, #0x34
- ldrb r0, [r4]
- pop {r4, r5, r6, pc}
-_022435C4:
- add r4, #0x35
- ldrb r0, [r4]
- pop {r4, r5, r6, pc}
-_022435CA:
- mov r1, #0
-_022435CC:
- ldrh r0, [r4, #0x36]
- add r1, r1, #1
- add r4, r4, #2
- strh r0, [r3]
- add r3, r3, #2
- cmp r1, #0xb
- blt _022435CC
- b _02243798
-_022435DC:
- add r4, #0x36
- add r0, r3, #0
- add r1, r4, #0
- bl FUN_02021E28
- b _02243798
-_022435E8:
- ldr r0, [r4, #0x4c]
- pop {r4, r5, r6, pc}
-_022435EC:
- ldr r0, [r4, #0x50]
- pop {r4, r5, r6, pc}
-_022435F0:
- mov r1, #0
-_022435F2:
- add r0, r4, #0
- add r0, #0x54
- ldrh r0, [r0]
- add r1, r1, #1
- add r4, r4, #2
- strh r0, [r3]
- add r3, r3, #2
- cmp r1, #0xb
- blt _022435F2
- b _02243798
-_02243606:
- ldr r0, [r4, #0x64]
- pop {r4, r5, r6, pc}
-_0224360A:
- ldr r0, [r4, #0x68]
- pop {r4, r5, r6, pc}
-_0224360E:
- ldr r0, [r4, #0x6c]
- pop {r4, r5, r6, pc}
-_02243612:
- ldr r0, [r4, #0x70]
- pop {r4, r5, r6, pc}
-_02243616:
- ldr r0, [r4, #0x74]
- pop {r4, r5, r6, pc}
-_0224361A:
- add r4, #0x78
- ldrh r0, [r4]
- pop {r4, r5, r6, pc}
-_02243620:
- add r4, #0x7c
- ldrb r0, [r4]
- pop {r4, r5, r6, pc}
-_02243626:
- add r4, #0x7d
- ldrb r0, [r4]
- pop {r4, r5, r6, pc}
-_0224362C:
- add r4, #0x7e
- ldrb r0, [r4]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1c
- pop {r4, r5, r6, pc}
-_02243636:
- add r4, #0x80
- ldr r0, [r4]
- pop {r4, r5, r6, pc}
-_0224363C:
- add r4, #0x84
- ldr r0, [r4]
- pop {r4, r5, r6, pc}
-_02243642:
- add r4, #0x88
- ldr r0, [r4]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1d
- pop {r4, r5, r6, pc}
-_0224364C:
- add r4, #0x88
- ldr r0, [r4]
- lsl r0, r0, #0x1a
- lsr r0, r0, #0x1d
- pop {r4, r5, r6, pc}
-_02243656:
- add r4, #0x88
- ldr r0, [r4]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1e
- pop {r4, r5, r6, pc}
-_02243660:
- add r4, #0x88
- ldr r0, [r4]
- lsl r0, r0, #0x15
- lsr r0, r0, #0x1d
- pop {r4, r5, r6, pc}
-_0224366A:
- add r4, #0x88
- ldr r0, [r4]
- lsl r0, r0, #0x13
- lsr r0, r0, #0x1e
- pop {r4, r5, r6, pc}
-_02243674:
- add r4, #0x88
- ldr r0, [r4]
- lsl r0, r0, #0x11
- lsr r0, r0, #0x1e
- pop {r4, r5, r6, pc}
-_0224367E:
- add r4, #0x88
- ldr r0, [r4]
- lsl r0, r0, #0xe
- lsr r0, r0, #0x1d
- pop {r4, r5, r6, pc}
-_02243688:
- add r4, #0x88
- ldr r0, [r4]
- lsl r0, r0, #0xb
- lsr r0, r0, #0x1d
- pop {r4, r5, r6, pc}
-_02243692:
- add r4, #0x88
- ldr r0, [r4]
- lsl r0, r0, #8
- lsr r0, r0, #0x1d
- pop {r4, r5, r6, pc}
-_0224369C:
- add r4, #0x88
- ldr r0, [r4]
- lsl r0, r0, #5
- lsr r0, r0, #0x1d
- pop {r4, r5, r6, pc}
-_022436A6:
- add r4, #0x88
- ldr r0, [r4]
- lsl r0, r0, #2
- lsr r0, r0, #0x1d
- pop {r4, r5, r6, pc}
-_022436B0:
- add r4, #0x88
- ldr r0, [r4]
- lsl r0, r0, #1
- lsr r0, r0, #0x1f
- pop {r4, r5, r6, pc}
-_022436BA:
- add r4, #0x88
- ldr r0, [r4]
- lsr r0, r0, #0x1f
- pop {r4, r5, r6, pc}
-_022436C2:
- add r4, #0x8c
- ldr r0, [r4]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1e
- pop {r4, r5, r6, pc}
-_022436CC:
- add r4, #0x8c
- ldr r0, [r4]
- lsl r0, r0, #0x1a
- lsr r0, r0, #0x1c
- pop {r4, r5, r6, pc}
-_022436D6:
- add r4, #0x8c
- ldr r0, [r4]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1e
- pop {r4, r5, r6, pc}
-_022436E0:
- add r4, #0x8c
- ldr r0, [r4]
- lsl r0, r0, #0x16
- lsr r0, r0, #0x1e
- pop {r4, r5, r6, pc}
-_022436EA:
- add r4, #0x8c
- ldr r0, [r4]
- lsl r0, r0, #0x13
- lsr r0, r0, #0x1d
- pop {r4, r5, r6, pc}
-_022436F4:
- add r4, #0x8c
- ldr r0, [r4]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x1d
- pop {r4, r5, r6, pc}
-_022436FE:
- add r4, #0x8c
- ldr r0, [r4]
- lsl r0, r0, #0xd
- lsr r0, r0, #0x1d
- pop {r4, r5, r6, pc}
-_02243708:
- add r4, #0x8c
- ldr r0, [r4]
- lsl r0, r0, #0xa
- lsr r0, r0, #0x1d
- pop {r4, r5, r6, pc}
-_02243712:
- add r4, #0x8c
- ldr r0, [r4]
- lsl r0, r0, #9
- lsr r0, r0, #0x1f
- pop {r4, r5, r6, pc}
-_0224371C:
- add r4, #0x8c
- ldr r0, [r4]
- lsl r0, r0, #5
- lsr r0, r0, #0x1c
- pop {r4, r5, r6, pc}
-_02243726:
- add r4, #0x8c
- ldr r0, [r4]
- lsl r0, r0, #4
- lsr r0, r0, #0x1f
- pop {r4, r5, r6, pc}
-_02243730:
- add r4, #0x8c
- ldr r0, [r4]
- lsl r0, r0, #3
- lsr r0, r0, #0x1f
- pop {r4, r5, r6, pc}
-_0224373A:
- add r4, #0x8c
- ldr r0, [r4]
- lsl r0, r0, #2
- lsr r0, r0, #0x1f
- pop {r4, r5, r6, pc}
-_02243744:
- add r4, #0x90
- ldr r0, [r4]
- pop {r4, r5, r6, pc}
-_0224374A:
- add r4, #0x94
- ldr r0, [r4]
- pop {r4, r5, r6, pc}
-_02243750:
- add r4, #0x98
- ldr r0, [r4]
- pop {r4, r5, r6, pc}
-_02243756:
- add r4, #0xa0
- ldr r0, [r4]
- pop {r4, r5, r6, pc}
-_0224375C:
- add r4, #0xa4
- ldr r0, [r4]
- pop {r4, r5, r6, pc}
-_02243762:
- add r4, #0xa8
- ldrh r0, [r4]
- pop {r4, r5, r6, pc}
-_02243768:
- add r4, #0xac
- ldrh r0, [r4]
- pop {r4, r5, r6, pc}
-_0224376E:
- add r4, #0xaa
- ldrh r0, [r4]
- pop {r4, r5, r6, pc}
-_02243774:
- add r4, #0xbc
- ldr r0, [r4]
- pop {r4, r5, r6, pc}
-_0224377A:
- ldr r0, [r4, #0x28]
- lsl r0, r0, #0x19
- lsr r0, r0, #0x1f
- pop {r4, r5, r6, pc}
-_02243782:
- ldr r0, [r4, #0x28]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1f
- pop {r4, r5, r6, pc}
-_0224378A:
- add r6, #0x78
- ldr r2, [r0, r6]
- bl MOD11_02243420
- pop {r4, r5, r6, pc}
-_02243794:
- bl ErrorHandling
-_02243798:
- mov r0, #0
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_0224379C
-MOD11_0224379C: ; 0x0224379C
- push {r4, r5, r6, lr}
- add r5, r2, #0
- mov r2, #0xb5
- lsl r2, r2, #6
- add r4, r0, r2
- mov r6, #0xc0
- add r2, r1, #0
- mul r2, r6
- add r2, r4, r2
- cmp r5, #0x64
- bls _022437B4
- b _02243D9E
-_022437B4:
- add r4, r5, r5
- add r4, pc
- ldrh r4, [r4, #6]
- lsl r4, r4, #0x10
- asr r4, r4, #0x10
- add pc, r4
-_022437C0: ; jump table
- .short _0224388A - _022437C0 - 2 ; case 0
- .short _02243890 - _022437C0 - 2 ; case 1
- .short _02243896 - _022437C0 - 2 ; case 2
- .short _0224389C - _022437C0 - 2 ; case 3
- .short _022438A2 - _022437C0 - 2 ; case 4
- .short _022438A8 - _022437C0 - 2 ; case 5
- .short _022438AE - _022437C0 - 2 ; case 6
- .short _022438AE - _022437C0 - 2 ; case 7
- .short _022438AE - _022437C0 - 2 ; case 8
- .short _022438AE - _022437C0 - 2 ; case 9
- .short _022438BA - _022437C0 - 2 ; case 10
- .short _022438CC - _022437C0 - 2 ; case 11
- .short _022438DE - _022437C0 - 2 ; case 12
- .short _022438F0 - _022437C0 - 2 ; case 13
- .short _02243902 - _022437C0 - 2 ; case 14
- .short _02243914 - _022437C0 - 2 ; case 15
- .short _02243926 - _022437C0 - 2 ; case 16
- .short _02243938 - _022437C0 - 2 ; case 17
- .short _02243948 - _022437C0 - 2 ; case 18
- .short _02243948 - _022437C0 - 2 ; case 19
- .short _02243948 - _022437C0 - 2 ; case 20
- .short _02243948 - _022437C0 - 2 ; case 21
- .short _02243948 - _022437C0 - 2 ; case 22
- .short _02243948 - _022437C0 - 2 ; case 23
- .short _02243948 - _022437C0 - 2 ; case 24
- .short _02243948 - _022437C0 - 2 ; case 25
- .short _02243954 - _022437C0 - 2 ; case 26
- .short _0224395C - _022437C0 - 2 ; case 27
- .short _02243964 - _022437C0 - 2 ; case 28
- .short _0224396C - _022437C0 - 2 ; case 29
- .short _02243984 - _022437C0 - 2 ; case 30
- .short _0224399C - _022437C0 - 2 ; case 31
- .short _0224399C - _022437C0 - 2 ; case 32
- .short _0224399C - _022437C0 - 2 ; case 33
- .short _0224399C - _022437C0 - 2 ; case 34
- .short _022439A8 - _022437C0 - 2 ; case 35
- .short _022439A8 - _022437C0 - 2 ; case 36
- .short _022439A8 - _022437C0 - 2 ; case 37
- .short _022439A8 - _022437C0 - 2 ; case 38
- .short _022439B4 - _022437C0 - 2 ; case 39
- .short _022439B4 - _022437C0 - 2 ; case 40
- .short _022439B4 - _022437C0 - 2 ; case 41
- .short _022439B4 - _022437C0 - 2 ; case 42
- .short _022439BA - _022437C0 - 2 ; case 43
- .short _022439C2 - _022437C0 - 2 ; case 44
- .short _022439CA - _022437C0 - 2 ; case 45
- .short _02243D9E - _022437C0 - 2 ; case 46
- .short _022439DC - _022437C0 - 2 ; case 47
- .short _022439E4 - _022437C0 - 2 ; case 48
- .short _022439EA - _022437C0 - 2 ; case 49
- .short _02243A00 - _022437C0 - 2 ; case 50
- .short _02243A06 - _022437C0 - 2 ; case 51
- .short _02243A0C - _022437C0 - 2 ; case 52
- .short _02243A12 - _022437C0 - 2 ; case 53
- .short _02243A18 - _022437C0 - 2 ; case 54
- .short _02243A1E - _022437C0 - 2 ; case 55
- .short _02243A26 - _022437C0 - 2 ; case 56
- .short _02243A2E - _022437C0 - 2 ; case 57
- .short _02243A36 - _022437C0 - 2 ; case 58
- .short _02243A4E - _022437C0 - 2 ; case 59
- .short _02243A56 - _022437C0 - 2 ; case 60
- .short _02243A5E - _022437C0 - 2 ; case 61
- .short _02243A76 - _022437C0 - 2 ; case 62
- .short _02243A8E - _022437C0 - 2 ; case 63
- .short _02243AA6 - _022437C0 - 2 ; case 64
- .short _02243ABE - _022437C0 - 2 ; case 65
- .short _02243AD6 - _022437C0 - 2 ; case 66
- .short _02243AEE - _022437C0 - 2 ; case 67
- .short _02243B06 - _022437C0 - 2 ; case 68
- .short _02243B1E - _022437C0 - 2 ; case 69
- .short _02243B36 - _022437C0 - 2 ; case 70
- .short _02243B4E - _022437C0 - 2 ; case 71
- .short _02243B66 - _022437C0 - 2 ; case 72
- .short _02243B7E - _022437C0 - 2 ; case 73
- .short _02243B94 - _022437C0 - 2 ; case 74
- .short _02243BAC - _022437C0 - 2 ; case 75
- .short _02243BC4 - _022437C0 - 2 ; case 76
- .short _02243BDC - _022437C0 - 2 ; case 77
- .short _02243BF4 - _022437C0 - 2 ; case 78
- .short _02243C0C - _022437C0 - 2 ; case 79
- .short _02243C24 - _022437C0 - 2 ; case 80
- .short _02243C3C - _022437C0 - 2 ; case 81
- .short _02243C54 - _022437C0 - 2 ; case 82
- .short _02243C6C - _022437C0 - 2 ; case 83
- .short _02243CE0 - _022437C0 - 2 ; case 84
- .short _02243CF8 - _022437C0 - 2 ; case 85
- .short _02243D10 - _022437C0 - 2 ; case 86
- .short _02243D28 - _022437C0 - 2 ; case 87
- .short _02243D30 - _022437C0 - 2 ; case 88
- .short _02243D38 - _022437C0 - 2 ; case 89
- .short _02243D40 - _022437C0 - 2 ; case 90
- .short _02243D48 - _022437C0 - 2 ; case 91
- .short _02243D50 - _022437C0 - 2 ; case 92
- .short _02243D58 - _022437C0 - 2 ; case 93
- .short _02243D60 - _022437C0 - 2 ; case 94
- .short _02243D68 - _022437C0 - 2 ; case 95
- .short _02243D70 - _022437C0 - 2 ; case 96
- .short _02243D82 - _022437C0 - 2 ; case 97
- .short _02243D9E - _022437C0 - 2 ; case 98
- .short _02243D9E - _022437C0 - 2 ; case 99
- .short _02243D94 - _022437C0 - 2 ; case 100
-_0224388A:
- ldrh r0, [r3]
- strh r0, [r2]
- pop {r4, r5, r6, pc}
-_02243890:
- ldrh r0, [r3]
- strh r0, [r2, #2]
- pop {r4, r5, r6, pc}
-_02243896:
- ldrh r0, [r3]
- strh r0, [r2, #4]
- pop {r4, r5, r6, pc}
-_0224389C:
- ldrh r0, [r3]
- strh r0, [r2, #6]
- pop {r4, r5, r6, pc}
-_022438A2:
- ldrh r0, [r3]
- strh r0, [r2, #8]
- pop {r4, r5, r6, pc}
-_022438A8:
- ldrh r0, [r3]
- strh r0, [r2, #0xa]
- pop {r4, r5, r6, pc}
-_022438AE:
- sub r0, r5, #6
- lsl r0, r0, #1
- ldrh r1, [r3]
- add r0, r2, r0
- strh r1, [r0, #0xc]
- pop {r4, r5, r6, pc}
-_022438BA:
- ldr r4, [r2, #0x14]
- mov r0, #0x1f
- bic r4, r0
- ldrb r1, [r3]
- mov r0, #0x1f
- and r0, r1
- orr r0, r4
- str r0, [r2, #0x14]
- pop {r4, r5, r6, pc}
-_022438CC:
- ldr r1, [r2, #0x14]
- ldr r0, _02243C78 ; =0xFFFFFC1F
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x16
- orr r0, r1
- str r0, [r2, #0x14]
- pop {r4, r5, r6, pc}
-_022438DE:
- ldr r1, [r2, #0x14]
- ldr r0, _02243C7C ; =0xFFFF83FF
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x11
- orr r0, r1
- str r0, [r2, #0x14]
- pop {r4, r5, r6, pc}
-_022438F0:
- ldr r1, [r2, #0x14]
- ldr r0, _02243C80 ; =0xFFF07FFF
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0xc
- orr r0, r1
- str r0, [r2, #0x14]
- pop {r4, r5, r6, pc}
-_02243902:
- ldr r1, [r2, #0x14]
- ldr r0, _02243C84 ; =0xFE0FFFFF
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1b
- lsr r0, r0, #7
- orr r0, r1
- str r0, [r2, #0x14]
- pop {r4, r5, r6, pc}
-_02243914:
- ldr r1, [r2, #0x14]
- ldr r0, _02243C88 ; =0xC1FFFFFF
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1b
- lsr r0, r0, #2
- orr r0, r1
- str r0, [r2, #0x14]
- pop {r4, r5, r6, pc}
-_02243926:
- ldr r1, [r2, #0x14]
- ldr r0, _02243C8C ; =0xBFFFFFFF
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1f
- lsr r0, r0, #1
- orr r0, r1
- str r0, [r2, #0x14]
- pop {r4, r5, r6, pc}
-_02243938:
- ldr r1, [r2, #0x14]
- ldr r0, _02243C90 ; =0x7FFFFFFF
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1f
- orr r0, r1
- str r0, [r2, #0x14]
- pop {r4, r5, r6, pc}
-_02243948:
- mov r0, #0
- ldrsb r1, [r3, r0]
- sub r5, #0x12
- add r0, r2, r5
- strb r1, [r0, #0x18]
- pop {r4, r5, r6, pc}
-_02243954:
- ldrb r0, [r3]
- add r2, #0x27
- strb r0, [r2]
- pop {r4, r5, r6, pc}
-_0224395C:
- ldrb r0, [r3]
- add r2, #0x24
- strb r0, [r2]
- pop {r4, r5, r6, pc}
-_02243964:
- ldrb r0, [r3]
- add r2, #0x25
- strb r0, [r2]
- pop {r4, r5, r6, pc}
-_0224396C:
- add r0, r2, #0
- add r0, #0x7e
- ldrb r4, [r0]
- ldrb r1, [r3]
- mov r0, #0xf
- bic r4, r0
- mov r0, #0xf
- and r0, r1
- orr r0, r4
- add r2, #0x7e
- strb r0, [r2]
- pop {r4, r5, r6, pc}
-_02243984:
- add r0, r2, #0
- add r0, #0x26
- ldrb r1, [r0]
- mov r0, #0x20
- add r2, #0x26
- bic r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1a
- orr r0, r1
- strb r0, [r2]
- pop {r4, r5, r6, pc}
-_0224399C:
- sub r5, #0x1f
- add r0, r2, r5
- ldrb r1, [r3]
- add r0, #0x2c
- strb r1, [r0]
- pop {r4, r5, r6, pc}
-_022439A8:
- sub r5, #0x23
- add r0, r2, r5
- ldrb r1, [r3]
- add r0, #0x30
- strb r1, [r0]
- pop {r4, r5, r6, pc}
-_022439B4:
- bl ErrorHandling
- pop {r4, r5, r6, pc}
-_022439BA:
- ldrb r0, [r3]
- add r2, #0x34
- strb r0, [r2]
- pop {r4, r5, r6, pc}
-_022439C2:
- ldrb r0, [r3]
- add r2, #0x35
- strb r0, [r2]
- pop {r4, r5, r6, pc}
-_022439CA:
- mov r1, #0
-_022439CC:
- ldrh r0, [r3]
- add r1, r1, #1
- add r3, r3, #2
- strh r0, [r2, #0x36]
- add r2, r2, #2
- cmp r1, #0xb
- blt _022439CC
- pop {r4, r5, r6, pc}
-_022439DC:
- mov r0, #0
- ldrsh r0, [r3, r0]
- str r0, [r2, #0x4c]
- pop {r4, r5, r6, pc}
-_022439E4:
- ldrh r0, [r3]
- str r0, [r2, #0x50]
- pop {r4, r5, r6, pc}
-_022439EA:
- mov r4, #0
-_022439EC:
- ldrh r1, [r3]
- add r0, r2, #0
- add r0, #0x54
- add r4, r4, #1
- strh r1, [r0]
- add r3, r3, #2
- add r2, r2, #2
- cmp r4, #0xb
- blt _022439EC
- pop {r4, r5, r6, pc}
-_02243A00:
- ldr r0, [r3]
- str r0, [r2, #0x64]
- pop {r4, r5, r6, pc}
-_02243A06:
- ldr r0, [r3]
- str r0, [r2, #0x68]
- pop {r4, r5, r6, pc}
-_02243A0C:
- ldr r0, [r3]
- str r0, [r2, #0x6c]
- pop {r4, r5, r6, pc}
-_02243A12:
- ldr r0, [r3]
- str r0, [r2, #0x70]
- pop {r4, r5, r6, pc}
-_02243A18:
- ldr r0, [r3]
- str r0, [r2, #0x74]
- pop {r4, r5, r6, pc}
-_02243A1E:
- ldrh r0, [r3]
- add r2, #0x78
- strh r0, [r2]
- pop {r4, r5, r6, pc}
-_02243A26:
- ldrb r0, [r3]
- add r2, #0x7c
- strb r0, [r2]
- pop {r4, r5, r6, pc}
-_02243A2E:
- ldrb r0, [r3]
- add r2, #0x7d
- strb r0, [r2]
- pop {r4, r5, r6, pc}
-_02243A36:
- add r0, r2, #0
- add r0, #0x7e
- ldrb r1, [r0]
- mov r0, #0xf0
- add r2, #0x7e
- bic r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x18
- orr r0, r1
- strb r0, [r2]
- pop {r4, r5, r6, pc}
-_02243A4E:
- ldr r0, [r3]
- add r2, #0x80
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243A56:
- ldr r0, [r3]
- add r2, #0x84
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243A5E:
- add r0, r2, #0
- add r0, #0x88
- ldr r4, [r0]
- mov r0, #7
- bic r4, r0
- ldrb r1, [r3]
- mov r0, #7
- add r2, #0x88
- and r0, r1
- orr r0, r4
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243A76:
- add r0, r2, #0
- add r0, #0x88
- ldr r1, [r0]
- mov r0, #0x38
- bic r1, r0
- ldrb r0, [r3]
- add r2, #0x88
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1a
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243A8E:
- add r0, r2, #0
- add r0, #0x88
- ldr r1, [r0]
- mov r0, #0xc0
- bic r1, r0
- ldrb r0, [r3]
- add r2, #0x88
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x18
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243AA6:
- add r0, r2, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _02243C94 ; =0xFFFFF8FF
- add r2, #0x88
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x15
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243ABE:
- add r0, r2, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _02243C98 ; =0xFFFFE7FF
- add r2, #0x88
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x13
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243AD6:
- add r0, r2, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _02243C9C ; =0xFFFF9FFF
- add r2, #0x88
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x11
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243AEE:
- add r0, r2, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _02243CA0 ; =0xFFFC7FFF
- add r2, #0x88
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0xe
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243B06:
- add r0, r2, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _02243CA4 ; =0xFFE3FFFF
- add r2, #0x88
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0xb
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243B1E:
- add r0, r2, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _02243CA8 ; =0xFF1FFFFF
- add r2, #0x88
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1d
- lsr r0, r0, #8
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243B36:
- add r0, r2, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _02243CAC ; =0xF8FFFFFF
- add r2, #0x88
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1d
- lsr r0, r0, #5
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243B4E:
- add r0, r2, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _02243CB0 ; =0xC7FFFFFF
- add r2, #0x88
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1d
- lsr r0, r0, #2
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243B66:
- add r0, r2, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _02243C8C ; =0xBFFFFFFF
- add r2, #0x88
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1f
- lsr r0, r0, #1
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243B7E:
- add r0, r2, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _02243C90 ; =0x7FFFFFFF
- add r2, #0x88
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1f
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243B94:
- add r0, r2, #0
- add r0, #0x8c
- ldr r4, [r0]
- mov r0, #3
- bic r4, r0
- ldrb r1, [r3]
- mov r0, #3
- add r2, #0x8c
- and r0, r1
- orr r0, r4
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243BAC:
- add r0, r2, #0
- add r0, #0x8c
- ldr r1, [r0]
- mov r0, #0x3c
- bic r1, r0
- ldrb r0, [r3]
- add r2, #0x8c
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1a
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243BC4:
- add r0, r2, #0
- add r0, #0x8c
- ldr r1, [r0]
- mov r0, #0xc0
- bic r1, r0
- ldrb r0, [r3]
- add r2, #0x8c
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x18
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243BDC:
- add r0, r2, #0
- add r0, #0x8c
- ldr r1, [r0]
- ldr r0, _02243CB4 ; =0xFFFFFCFF
- add r2, #0x8c
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x16
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243BF4:
- add r0, r2, #0
- add r0, #0x8c
- ldr r1, [r0]
- ldr r0, _02243CB8 ; =0xFFFFE3FF
- add r2, #0x8c
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x13
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243C0C:
- add r0, r2, #0
- add r0, #0x8c
- ldr r1, [r0]
- ldr r0, _02243CBC ; =0xFFFF1FFF
- add r2, #0x8c
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x10
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243C24:
- add r0, r2, #0
- add r0, #0x8c
- ldr r1, [r0]
- ldr r0, _02243CC0 ; =0xFFF8FFFF
- add r2, #0x8c
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0xd
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243C3C:
- add r0, r2, #0
- add r0, #0x8c
- ldr r1, [r0]
- ldr r0, _02243CC4 ; =0xFFC7FFFF
- add r2, #0x8c
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0xa
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243C54:
- add r0, r2, #0
- add r0, #0x8c
- ldr r1, [r0]
- ldr r0, _02243CC8 ; =0xFFBFFFFF
- add r2, #0x8c
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1f
- lsr r0, r0, #9
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243C6C:
- add r0, r2, #0
- add r0, #0x8c
- ldr r1, [r0]
- ldr r0, _02243CCC ; =0xF87FFFFF
- b _02243CD0
- nop
-_02243C78: .word 0xFFFFFC1F
-_02243C7C: .word 0xFFFF83FF
-_02243C80: .word 0xFFF07FFF
-_02243C84: .word 0xFE0FFFFF
-_02243C88: .word 0xC1FFFFFF
-_02243C8C: .word 0xBFFFFFFF
-_02243C90: .word 0x7FFFFFFF
-_02243C94: .word 0xFFFFF8FF
-_02243C98: .word 0xFFFFE7FF
-_02243C9C: .word 0xFFFF9FFF
-_02243CA0: .word 0xFFFC7FFF
-_02243CA4: .word 0xFFE3FFFF
-_02243CA8: .word 0xFF1FFFFF
-_02243CAC: .word 0xF8FFFFFF
-_02243CB0: .word 0xC7FFFFFF
-_02243CB4: .word 0xFFFFFCFF
-_02243CB8: .word 0xFFFFE3FF
-_02243CBC: .word 0xFFFF1FFF
-_02243CC0: .word 0xFFF8FFFF
-_02243CC4: .word 0xFFC7FFFF
-_02243CC8: .word 0xFFBFFFFF
-_02243CCC: .word 0xF87FFFFF
-_02243CD0:
- add r2, #0x8c
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1c
- lsr r0, r0, #5
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243CE0:
- add r0, r2, #0
- add r0, #0x8c
- ldr r1, [r0]
- ldr r0, _02243DA4 ; =0xF7FFFFFF
- add r2, #0x8c
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1f
- lsr r0, r0, #4
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243CF8:
- add r0, r2, #0
- add r0, #0x8c
- ldr r1, [r0]
- ldr r0, _02243DA8 ; =0xEFFFFFFF
- add r2, #0x8c
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1f
- lsr r0, r0, #3
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243D10:
- add r0, r2, #0
- add r0, #0x8c
- ldr r1, [r0]
- ldr r0, _02243DAC ; =0xDFFFFFFF
- add r2, #0x8c
- and r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1f
- lsr r0, r0, #2
- orr r0, r1
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243D28:
- ldr r0, [r3]
- add r2, #0x90
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243D30:
- ldr r0, [r3]
- add r2, #0x94
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243D38:
- ldr r0, [r3]
- add r2, #0x98
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243D40:
- ldr r0, [r3]
- add r2, #0xa0
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243D48:
- ldr r0, [r3]
- add r2, #0xa4
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243D50:
- ldrh r0, [r3]
- add r2, #0xa8
- strh r0, [r2]
- pop {r4, r5, r6, pc}
-_02243D58:
- ldrh r0, [r3]
- add r2, #0xac
- strh r0, [r2]
- pop {r4, r5, r6, pc}
-_02243D60:
- ldrh r0, [r3]
- add r2, #0xaa
- strh r0, [r2]
- pop {r4, r5, r6, pc}
-_02243D68:
- ldr r0, [r3]
- add r2, #0xbc
- str r0, [r2]
- pop {r4, r5, r6, pc}
-_02243D70:
- ldr r1, [r2, #0x28]
- mov r0, #0x40
- bic r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x19
- orr r0, r1
- str r0, [r2, #0x28]
- pop {r4, r5, r6, pc}
-_02243D82:
- ldr r1, [r2, #0x28]
- mov r0, #0x80
- bic r1, r0
- ldrb r0, [r3]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x18
- orr r0, r1
- str r0, [r2, #0x28]
- pop {r4, r5, r6, pc}
-_02243D94:
- add r6, #0x78
- ldr r2, [r0, r6]
- bl MOD11_0224379C
- pop {r4, r5, r6, pc}
-_02243D9E:
- bl ErrorHandling
- pop {r4, r5, r6, pc}
- .align 2, 0
-_02243DA4: .word 0xF7FFFFFF
-_02243DA8: .word 0xEFFFFFFF
-_02243DAC: .word 0xDFFFFFFF
-
- thumb_func_start MOD11_02243DB0
-MOD11_02243DB0: ; 0x02243DB0
- push {r4, lr}
- mov r4, #0xb5
- lsl r4, r4, #6
- add r4, r0, r4
- mov r0, #0xc0
- mul r0, r1
- add r1, r2, #0
- add r0, r4, r0
- add r2, r3, #0
- bl MOD11_02243DC8
- pop {r4, pc}
-
- thumb_func_start MOD11_02243DC8
-MOD11_02243DC8: ; 0x02243DC8
- push {r4, r5, r6, lr}
- add r4, r0, #0
- add r5, r2, #0
- cmp r1, #0x61
- bls _02243DD4
- b _02244200
-_02243DD4:
- add r0, r1, r1
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02243DE0: ; jump table
- .short _02244200 - _02243DE0 - 2 ; case 0
- .short _02243EA4 - _02243DE0 - 2 ; case 1
- .short _02243EAC - _02243DE0 - 2 ; case 2
- .short _02243EB4 - _02243DE0 - 2 ; case 3
- .short _02243EBC - _02243DE0 - 2 ; case 4
- .short _02243EC4 - _02243DE0 - 2 ; case 5
- .short _02244200 - _02243DE0 - 2 ; case 6
- .short _02244200 - _02243DE0 - 2 ; case 7
- .short _02244200 - _02243DE0 - 2 ; case 8
- .short _02244200 - _02243DE0 - 2 ; case 9
- .short _02243ECC - _02243DE0 - 2 ; case 10
- .short _02243EE4 - _02243DE0 - 2 ; case 11
- .short _02243EFA - _02243DE0 - 2 ; case 12
- .short _02243F10 - _02243DE0 - 2 ; case 13
- .short _02243F26 - _02243DE0 - 2 ; case 14
- .short _02243F3C - _02243DE0 - 2 ; case 15
- .short _02244200 - _02243DE0 - 2 ; case 16
- .short _02244200 - _02243DE0 - 2 ; case 17
- .short _02243F52 - _02243DE0 - 2 ; case 18
- .short _02243F52 - _02243DE0 - 2 ; case 19
- .short _02243F52 - _02243DE0 - 2 ; case 20
- .short _02243F52 - _02243DE0 - 2 ; case 21
- .short _02243F52 - _02243DE0 - 2 ; case 22
- .short _02243F52 - _02243DE0 - 2 ; case 23
- .short _02243F52 - _02243DE0 - 2 ; case 24
- .short _02243F52 - _02243DE0 - 2 ; case 25
- .short _02244200 - _02243DE0 - 2 ; case 26
- .short _02244200 - _02243DE0 - 2 ; case 27
- .short _02244200 - _02243DE0 - 2 ; case 28
- .short _02244200 - _02243DE0 - 2 ; case 29
- .short _02244200 - _02243DE0 - 2 ; case 30
- .short _02243F70 - _02243DE0 - 2 ; case 31
- .short _02243F70 - _02243DE0 - 2 ; case 32
- .short _02243F70 - _02243DE0 - 2 ; case 33
- .short _02243F70 - _02243DE0 - 2 ; case 34
- .short _02243F96 - _02243DE0 - 2 ; case 35
- .short _02243F96 - _02243DE0 - 2 ; case 36
- .short _02243F96 - _02243DE0 - 2 ; case 37
- .short _02243F96 - _02243DE0 - 2 ; case 38
- .short _02244200 - _02243DE0 - 2 ; case 39
- .short _02244200 - _02243DE0 - 2 ; case 40
- .short _02244200 - _02243DE0 - 2 ; case 41
- .short _02244200 - _02243DE0 - 2 ; case 42
- .short _02243FA2 - _02243DE0 - 2 ; case 43
- .short _02243FB0 - _02243DE0 - 2 ; case 44
- .short _02244200 - _02243DE0 - 2 ; case 45
- .short _02244200 - _02243DE0 - 2 ; case 46
- .short _02243FD2 - _02243DE0 - 2 ; case 47
- .short _02243FE4 - _02243DE0 - 2 ; case 48
- .short _02244200 - _02243DE0 - 2 ; case 49
- .short _02243FEC - _02243DE0 - 2 ; case 50
- .short _02243FF4 - _02243DE0 - 2 ; case 51
- .short _02244200 - _02243DE0 - 2 ; case 52
- .short _02244200 - _02243DE0 - 2 ; case 53
- .short _02244200 - _02243DE0 - 2 ; case 54
- .short _02244200 - _02243DE0 - 2 ; case 55
- .short _02244200 - _02243DE0 - 2 ; case 56
- .short _02244200 - _02243DE0 - 2 ; case 57
- .short _02244200 - _02243DE0 - 2 ; case 58
- .short _02244200 - _02243DE0 - 2 ; case 59
- .short _02244200 - _02243DE0 - 2 ; case 60
- .short _02243FFC - _02243DE0 - 2 ; case 61
- .short _0224401A - _02243DE0 - 2 ; case 62
- .short _02244038 - _02243DE0 - 2 ; case 63
- .short _02244056 - _02243DE0 - 2 ; case 64
- .short _02244072 - _02243DE0 - 2 ; case 65
- .short _0224408E - _02243DE0 - 2 ; case 66
- .short _022440AA - _02243DE0 - 2 ; case 67
- .short _022440C6 - _02243DE0 - 2 ; case 68
- .short _022440E2 - _02243DE0 - 2 ; case 69
- .short _022440FE - _02243DE0 - 2 ; case 70
- .short _0224411A - _02243DE0 - 2 ; case 71
- .short _02244200 - _02243DE0 - 2 ; case 72
- .short _02244200 - _02243DE0 - 2 ; case 73
- .short _02244200 - _02243DE0 - 2 ; case 74
- .short _02244200 - _02243DE0 - 2 ; case 75
- .short _02244200 - _02243DE0 - 2 ; case 76
- .short _02244200 - _02243DE0 - 2 ; case 77
- .short _02244136 - _02243DE0 - 2 ; case 78
- .short _02244152 - _02243DE0 - 2 ; case 79
- .short _0224416E - _02243DE0 - 2 ; case 80
- .short _02244200 - _02243DE0 - 2 ; case 81
- .short _02244200 - _02243DE0 - 2 ; case 82
- .short _02244200 - _02243DE0 - 2 ; case 83
- .short _02244200 - _02243DE0 - 2 ; case 84
- .short _02244200 - _02243DE0 - 2 ; case 85
- .short _02244200 - _02243DE0 - 2 ; case 86
- .short _0224418A - _02243DE0 - 2 ; case 87
- .short _02244198 - _02243DE0 - 2 ; case 88
- .short _022441A6 - _02243DE0 - 2 ; case 89
- .short _022441B4 - _02243DE0 - 2 ; case 90
- .short _02244200 - _02243DE0 - 2 ; case 91
- .short _02244200 - _02243DE0 - 2 ; case 92
- .short _02244200 - _02243DE0 - 2 ; case 93
- .short _02244200 - _02243DE0 - 2 ; case 94
- .short _022441C2 - _02243DE0 - 2 ; case 95
- .short _022441D0 - _02243DE0 - 2 ; case 96
- .short _022441E8 - _02243DE0 - 2 ; case 97
-_02243EA4:
- ldrh r0, [r4, #2]
- add r0, r0, r5
- strh r0, [r4, #2]
- pop {r4, r5, r6, pc}
-_02243EAC:
- ldrh r0, [r4, #4]
- add r0, r0, r5
- strh r0, [r4, #4]
- pop {r4, r5, r6, pc}
-_02243EB4:
- ldrh r0, [r4, #6]
- add r0, r0, r5
- strh r0, [r4, #6]
- pop {r4, r5, r6, pc}
-_02243EBC:
- ldrh r0, [r4, #8]
- add r0, r0, r5
- strh r0, [r4, #8]
- pop {r4, r5, r6, pc}
-_02243EC4:
- ldrh r0, [r4, #0xa]
- add r0, r0, r5
- strh r0, [r4, #0xa]
- pop {r4, r5, r6, pc}
-_02243ECC:
- ldr r2, [r4, #0x14]
- mov r1, #0x1f
- add r0, r2, #0
- bic r0, r1
- lsl r1, r2, #0x1b
- lsr r1, r1, #0x1b
- add r2, r1, r5
- mov r1, #0x1f
- and r1, r2
- orr r0, r1
- str r0, [r4, #0x14]
- pop {r4, r5, r6, pc}
-_02243EE4:
- ldr r1, [r4, #0x14]
- ldr r0, _02244208 ; =0xFFFFFC1F
- and r0, r1
- lsl r1, r1, #0x16
- lsr r1, r1, #0x1b
- add r1, r1, r5
- lsl r1, r1, #0x1b
- lsr r1, r1, #0x16
- orr r0, r1
- str r0, [r4, #0x14]
- pop {r4, r5, r6, pc}
-_02243EFA:
- ldr r1, [r4, #0x14]
- ldr r0, _0224420C ; =0xFFFF83FF
- and r0, r1
- lsl r1, r1, #0x11
- lsr r1, r1, #0x1b
- add r1, r1, r5
- lsl r1, r1, #0x1b
- lsr r1, r1, #0x11
- orr r0, r1
- str r0, [r4, #0x14]
- pop {r4, r5, r6, pc}
-_02243F10:
- ldr r1, [r4, #0x14]
- ldr r0, _02244210 ; =0xFFF07FFF
- and r0, r1
- lsl r1, r1, #0xc
- lsr r1, r1, #0x1b
- add r1, r1, r5
- lsl r1, r1, #0x1b
- lsr r1, r1, #0xc
- orr r0, r1
- str r0, [r4, #0x14]
- pop {r4, r5, r6, pc}
-_02243F26:
- ldr r1, [r4, #0x14]
- ldr r0, _02244214 ; =0xFE0FFFFF
- and r0, r1
- lsl r1, r1, #7
- lsr r1, r1, #0x1b
- add r1, r1, r5
- lsl r1, r1, #0x1b
- lsr r1, r1, #7
- orr r0, r1
- str r0, [r4, #0x14]
- pop {r4, r5, r6, pc}
-_02243F3C:
- ldr r1, [r4, #0x14]
- ldr r0, _02244218 ; =0xC1FFFFFF
- and r0, r1
- lsl r1, r1, #2
- lsr r1, r1, #0x1b
- add r1, r1, r5
- lsl r1, r1, #0x1b
- lsr r1, r1, #2
- orr r0, r1
- str r0, [r4, #0x14]
- pop {r4, r5, r6, pc}
-_02243F52:
- add r4, #0x18
- sub r1, #0x12
- ldrsb r0, [r4, r1]
- add r0, r5, r0
- bpl _02243F62
- mov r0, #0
- strb r0, [r4, r1]
- pop {r4, r5, r6, pc}
-_02243F62:
- cmp r0, #0xc
- ble _02243F6C
- mov r0, #0xc
- strb r0, [r4, r1]
- pop {r4, r5, r6, pc}
-_02243F6C:
- strb r0, [r4, r1]
- pop {r4, r5, r6, pc}
-_02243F70:
- add r6, r1, #0
- sub r6, #0x1f
- lsl r0, r6, #1
- add r1, r4, r6
- add r0, r4, r0
- add r1, #0x30
- ldrh r0, [r0, #0xc]
- ldrb r1, [r1]
- bl FUN_0206AB30
- add r4, #0x2c
- ldrb r1, [r4, r6]
- add r1, r5, r1
- cmp r1, r0
- ble _02243F92
- strb r0, [r4, r6]
- pop {r4, r5, r6, pc}
-_02243F92:
- strb r1, [r4, r6]
- pop {r4, r5, r6, pc}
-_02243F96:
- add r4, #0x30
- sub r1, #0x23
- ldrb r0, [r4, r1]
- add r0, r0, r5
- strb r0, [r4, r1]
- pop {r4, r5, r6, pc}
-_02243FA2:
- add r0, r4, #0
- add r0, #0x34
- ldrb r0, [r0]
- add r4, #0x34
- add r0, r0, r5
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02243FB0:
- add r0, r4, #0
- add r0, #0x35
- ldrb r0, [r0]
- add r0, r0, r5
- cmp r0, #0xff
- ble _02243FC4
- mov r0, #0xff
- add r4, #0x35
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02243FC4:
- add r0, r4, #0
- add r0, #0x35
- ldrb r0, [r0]
- add r4, #0x35
- add r0, r0, r5
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02243FD2:
- ldr r0, [r4, #0x4c]
- ldr r1, [r4, #0x50]
- add r0, r0, r5
- cmp r0, r1
- bls _02243FE0
- str r1, [r4, #0x4c]
- pop {r4, r5, r6, pc}
-_02243FE0:
- str r0, [r4, #0x4c]
- pop {r4, r5, r6, pc}
-_02243FE4:
- ldr r0, [r4, #0x50]
- add r0, r0, r5
- str r0, [r4, #0x50]
- pop {r4, r5, r6, pc}
-_02243FEC:
- ldr r0, [r4, #0x64]
- add r0, r0, r5
- str r0, [r4, #0x64]
- pop {r4, r5, r6, pc}
-_02243FF4:
- ldr r0, [r4, #0x68]
- add r0, r0, r5
- str r0, [r4, #0x68]
- pop {r4, r5, r6, pc}
-_02243FFC:
- add r0, r4, #0
- add r0, #0x88
- ldr r2, [r0]
- mov r1, #7
- add r0, r2, #0
- bic r0, r1
- lsl r1, r2, #0x1d
- lsr r1, r1, #0x1d
- add r2, r1, r5
- mov r1, #7
- and r1, r2
- orr r0, r1
- add r4, #0x88
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_0224401A:
- add r0, r4, #0
- add r0, #0x88
- ldr r2, [r0]
- mov r1, #0x38
- add r0, r2, #0
- bic r0, r1
- lsl r1, r2, #0x1a
- lsr r1, r1, #0x1d
- add r1, r1, r5
- lsl r1, r1, #0x1d
- lsr r1, r1, #0x1a
- orr r0, r1
- add r4, #0x88
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_02244038:
- add r0, r4, #0
- add r0, #0x88
- ldr r2, [r0]
- mov r1, #0xc0
- add r0, r2, #0
- bic r0, r1
- lsl r1, r2, #0x18
- lsr r1, r1, #0x1e
- add r1, r1, r5
- lsl r1, r1, #0x1e
- lsr r1, r1, #0x18
- orr r0, r1
- add r4, #0x88
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_02244056:
- add r0, r4, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _0224421C ; =0xFFFFF8FF
- add r4, #0x88
- and r0, r1
- lsl r1, r1, #0x15
- lsr r1, r1, #0x1d
- add r1, r1, r5
- lsl r1, r1, #0x1d
- lsr r1, r1, #0x15
- orr r0, r1
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_02244072:
- add r0, r4, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _02244220 ; =0xFFFFE7FF
- add r4, #0x88
- and r0, r1
- lsl r1, r1, #0x13
- lsr r1, r1, #0x1e
- add r1, r1, r5
- lsl r1, r1, #0x1e
- lsr r1, r1, #0x13
- orr r0, r1
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_0224408E:
- add r0, r4, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _02244224 ; =0xFFFF9FFF
- add r4, #0x88
- and r0, r1
- lsl r1, r1, #0x11
- lsr r1, r1, #0x1e
- add r1, r1, r5
- lsl r1, r1, #0x1e
- lsr r1, r1, #0x11
- orr r0, r1
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_022440AA:
- add r0, r4, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _02244228 ; =0xFFFC7FFF
- add r4, #0x88
- and r0, r1
- lsl r1, r1, #0xe
- lsr r1, r1, #0x1d
- add r1, r1, r5
- lsl r1, r1, #0x1d
- lsr r1, r1, #0xe
- orr r0, r1
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_022440C6:
- add r0, r4, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _0224422C ; =0xFFE3FFFF
- add r4, #0x88
- and r0, r1
- lsl r1, r1, #0xb
- lsr r1, r1, #0x1d
- add r1, r1, r5
- lsl r1, r1, #0x1d
- lsr r1, r1, #0xb
- orr r0, r1
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_022440E2:
- add r0, r4, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _02244230 ; =0xFF1FFFFF
- add r4, #0x88
- and r0, r1
- lsl r1, r1, #8
- lsr r1, r1, #0x1d
- add r1, r1, r5
- lsl r1, r1, #0x1d
- lsr r1, r1, #8
- orr r0, r1
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_022440FE:
- add r0, r4, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _02244234 ; =0xF8FFFFFF
- add r4, #0x88
- and r0, r1
- lsl r1, r1, #5
- lsr r1, r1, #0x1d
- add r1, r1, r5
- lsl r1, r1, #0x1d
- lsr r1, r1, #5
- orr r0, r1
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_0224411A:
- add r0, r4, #0
- add r0, #0x88
- ldr r1, [r0]
- ldr r0, _02244238 ; =0xC7FFFFFF
- add r4, #0x88
- and r0, r1
- lsl r1, r1, #2
- lsr r1, r1, #0x1d
- add r1, r1, r5
- lsl r1, r1, #0x1d
- lsr r1, r1, #2
- orr r0, r1
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_02244136:
- add r0, r4, #0
- add r0, #0x8c
- ldr r1, [r0]
- ldr r0, _0224423C ; =0xFFFFE3FF
- add r4, #0x8c
- and r0, r1
- lsl r1, r1, #0x13
- lsr r1, r1, #0x1d
- add r1, r1, r5
- lsl r1, r1, #0x1d
- lsr r1, r1, #0x13
- orr r0, r1
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_02244152:
- add r0, r4, #0
- add r0, #0x8c
- ldr r1, [r0]
- ldr r0, _02244240 ; =0xFFFF1FFF
- add r4, #0x8c
- and r0, r1
- lsl r1, r1, #0x10
- lsr r1, r1, #0x1d
- add r1, r1, r5
- lsl r1, r1, #0x1d
- lsr r1, r1, #0x10
- orr r0, r1
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_0224416E:
- add r0, r4, #0
- add r0, #0x8c
- ldr r1, [r0]
- ldr r0, _02244244 ; =0xFFF8FFFF
- add r4, #0x8c
- and r0, r1
- lsl r1, r1, #0xd
- lsr r1, r1, #0x1d
- add r1, r1, r5
- lsl r1, r1, #0x1d
- lsr r1, r1, #0xd
- orr r0, r1
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_0224418A:
- add r0, r4, #0
- add r0, #0x90
- ldr r0, [r0]
- add r4, #0x90
- add r0, r0, r5
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_02244198:
- add r0, r4, #0
- add r0, #0x94
- ldr r0, [r0]
- add r4, #0x94
- add r0, r0, r5
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_022441A6:
- add r0, r4, #0
- add r0, #0x98
- ldr r0, [r0]
- add r4, #0x98
- add r0, r0, r5
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_022441B4:
- add r0, r4, #0
- add r0, #0xa0
- ldr r0, [r0]
- add r4, #0xa0
- add r0, r0, r5
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_022441C2:
- add r0, r4, #0
- add r0, #0xbc
- ldr r0, [r0]
- add r4, #0xbc
- add r0, r0, r5
- str r0, [r4]
- pop {r4, r5, r6, pc}
-_022441D0:
- ldr r2, [r4, #0x28]
- mov r1, #0x40
- add r0, r2, #0
- bic r0, r1
- lsl r1, r2, #0x19
- lsr r1, r1, #0x1f
- add r1, r1, r5
- lsl r1, r1, #0x1f
- lsr r1, r1, #0x19
- orr r0, r1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, pc}
-_022441E8:
- ldr r2, [r4, #0x28]
- mov r1, #0x80
- add r0, r2, #0
- bic r0, r1
- lsl r1, r2, #0x18
- lsr r1, r1, #0x1f
- add r1, r1, r5
- lsl r1, r1, #0x1f
- lsr r1, r1, #0x18
- orr r0, r1
- str r0, [r4, #0x28]
- pop {r4, r5, r6, pc}
-_02244200:
- bl ErrorHandling
- pop {r4, r5, r6, pc}
- nop
-_02244208: .word 0xFFFFFC1F
-_0224420C: .word 0xFFFF83FF
-_02244210: .word 0xFFF07FFF
-_02244214: .word 0xFE0FFFFF
-_02244218: .word 0xC1FFFFFF
-_0224421C: .word 0xFFFFF8FF
-_02244220: .word 0xFFFFE7FF
-_02244224: .word 0xFFFF9FFF
-_02244228: .word 0xFFFC7FFF
-_0224422C: .word 0xFFE3FFFF
-_02244230: .word 0xFF1FFFFF
-_02244234: .word 0xF8FFFFFF
-_02244238: .word 0xC7FFFFFF
-_0224423C: .word 0xFFFFE3FF
-_02244240: .word 0xFFFF1FFF
-_02244244: .word 0xFFF8FFFF
-
- thumb_func_start MOD11_02244248
-MOD11_02244248: ; 0x02244248
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x68
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #0x64]
- str r0, [sp, #0x60]
- ldr r0, [sp, #0x64]
- str r2, [sp, #8]
- str r0, [sp, #0x5c]
- ldr r0, [sp, #0x64]
- str r3, [sp, #0xc]
- str r0, [sp, #0x48]
- ldr r0, [sp, #0x64]
- add r5, r1, #0
- str r0, [sp, #0x44]
- ldr r0, [sp, #0x64]
- mov r2, #0xc0
- str r0, [sp, #0x40]
- ldr r0, [sp, #0x64]
- ldr r3, _0224455C ; =0x00002D8C
- str r0, [sp, #0x3c]
- ldr r0, [sp, #0x64]
- str r0, [sp, #0x38]
- ldr r0, [sp, #0x64]
- str r0, [sp, #0x34]
- ldr r0, [sp, #8]
- add r1, r0, #0
- mul r1, r2
- add r0, r5, r1
- ldr r0, [r0, r3]
- str r1, [sp, #0x18]
- cmp r0, #0
- bne _0224429C
- ldr r1, [sp, #0xc]
- mul r2, r1
- add r1, r5, r2
- ldr r1, [r1, r3]
- cmp r1, #0
- beq _0224429C
- add sp, #0x68
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_0224429C:
- cmp r0, #0
- beq _022442B6
- ldr r0, [sp, #0xc]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _0224455C ; =0x00002D8C
- add r1, r5, r1
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _022442B6
- add sp, #0x68
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_022442B6:
- ldr r1, [sp, #8]
- add r0, r5, #0
- bl MOD11_02246D1C
- str r0, [sp, #0x2c]
- ldr r1, [sp, #0xc]
- add r0, r5, #0
- bl MOD11_02246D1C
- str r0, [sp, #0x28]
- ldr r1, [sp, #8]
- add r0, r5, #0
- bl MOD11_02249D90
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x58]
- ldr r1, [sp, #8]
- add r0, r5, #0
- mov r2, #0
- bl MOD11_02249DA4
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x54]
- ldr r1, [sp, #0xc]
- add r0, r5, #0
- bl MOD11_02249D90
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x50]
- ldr r1, [sp, #0xc]
- add r0, r5, #0
- mov r2, #0
- bl MOD11_02249DA4
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x4c]
- ldr r0, [sp, #0x18]
- ldr r2, _02244560 ; =0x00002D5B
- add r0, r5, r0
- ldrsb r4, [r0, r2]
- ldr r0, [sp, #0xc]
- mov r1, #0xc0
- mul r1, r0
- add r0, r5, r1
- str r1, [sp, #0x14]
- ldrsb r7, [r0, r2]
- ldr r1, [sp, #8]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x56
- bne _02244338
- sub r0, r4, #6
- lsl r0, r0, #1
- add r4, r0, #6
- cmp r4, #0xc
- ble _02244332
- mov r4, #0xc
-_02244332:
- cmp r4, #0
- bge _02244338
- mov r4, #0
-_02244338:
- ldr r1, [sp, #0xc]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x56
- bne _02244356
- sub r0, r7, #6
- lsl r0, r0, #1
- add r7, r0, #6
- cmp r7, #0xc
- ble _02244350
- mov r7, #0xc
-_02244350:
- cmp r7, #0
- bge _02244356
- mov r7, #0
-_02244356:
- ldr r0, [sp, #0x18]
- lsl r1, r4, #1
- add r2, r5, r0
- ldr r0, _02244564 ; =0x00002D46
- ldrh r2, [r2, r0]
- ldr r0, _02244568 ; =0x0225E284
- ldrb r0, [r0, r1]
- mul r0, r2
- ldr r2, _0224456C ; =0x0225E285
- ldrb r1, [r2, r1]
- bl _s32_div_f
- add r6, r0, #0
- ldr r0, [sp, #0x14]
- lsl r1, r7, #1
- add r2, r5, r0
- ldr r0, _02244564 ; =0x00002D46
- ldrh r2, [r2, r0]
- ldr r0, _02244568 ; =0x0225E284
- ldrb r0, [r0, r1]
- mul r0, r2
- ldr r2, _0224456C ; =0x0225E285
- ldrb r1, [r2, r1]
- bl _s32_div_f
- add r4, r0, #0
- mov r0, #0xd
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _022443FE
- mov r0, #0x4c
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _022443FE
- ldr r0, [sp, #0x2c]
- cmp r0, #0x21
- bne _022443C4
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #3
- tst r0, r1
- bne _022443D6
-_022443C4:
- ldr r0, [sp, #0x2c]
- cmp r0, #0x22
- bne _022443D8
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #0x30
- tst r0, r1
- beq _022443D8
-_022443D6:
- lsl r6, r6, #1
-_022443D8:
- ldr r0, [sp, #0x28]
- cmp r0, #0x21
- bne _022443EA
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #3
- tst r0, r1
- bne _022443FC
-_022443EA:
- ldr r0, [sp, #0x28]
- cmp r0, #0x22
- bne _022443FE
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #0x30
- tst r0, r1
- beq _022443FE
-_022443FC:
- lsl r4, r4, #1
-_022443FE:
- mov r0, #0
- str r0, [sp, #0x24]
- ldr r0, [sp, #0x18]
- ldr r7, _02244570 ; =0x0225E24C
- add r0, r5, r0
- str r0, [sp, #0x1c]
-_0224440A:
- ldr r2, [sp, #0x1c]
- ldr r1, _02244574 ; =0x00002DB8
- add r0, r5, #0
- ldrh r1, [r2, r1]
- mov r2, #1
- bl MOD11_0224C12C
- ldrb r1, [r7]
- cmp r1, r0
- bne _02244422
- lsr r6, r6, #1
- b _0224442E
-_02244422:
- ldr r0, [sp, #0x24]
- add r7, r7, #1
- add r0, r0, #1
- str r0, [sp, #0x24]
- cmp r0, #8
- blo _0224440A
-_0224442E:
- ldr r0, [sp, #0x58]
- cmp r0, #0x72
- bne _02244440
- mov r0, #0xf
- mul r0, r6
- mov r1, #0xa
- bl _u32_div_f
- add r6, r0, #0
-_02244440:
- ldr r0, [sp, #0x58]
- cmp r0, #0x65
- bne _02244456
- ldr r0, [sp, #0x18]
- add r1, r5, r0
- mov r0, #0xb5
- lsl r0, r0, #6
- ldrh r0, [r1, r0]
- cmp r0, #0x84
- bne _02244456
- lsl r6, r6, #1
-_02244456:
- ldr r0, [sp, #0x2c]
- cmp r0, #0x5f
- bne _02244478
- ldr r0, [sp, #0x18]
- add r1, r5, r0
- ldr r0, _02244578 ; =0x00002DAC
- ldr r0, [r1, r0]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- beq _02244478
- mov r0, #0xf
- mul r0, r6
- mov r1, #0xa
- bl _u32_div_f
- add r6, r0, #0
- b _02244488
-_02244478:
- ldr r0, [sp, #0x18]
- add r1, r5, r0
- ldr r0, _02244578 ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #0x40
- tst r0, r1
- beq _02244488
- lsr r6, r6, #2
-_02244488:
- ldr r0, [sp, #0x2c]
- cmp r0, #0x70
- bne _022444A4
- ldr r1, [sp, #0x18]
- mov r0, #0x15
- add r2, r5, r1
- ldr r1, _0224457C ; =0x00002DD8
- lsl r0, r0, #4
- ldr r0, [r5, r0]
- ldr r1, [r2, r1]
- sub r0, r0, r1
- cmp r0, #5
- bge _022444A4
- lsr r6, r6, #1
-_022444A4:
- ldr r0, [sp, #0x2c]
- cmp r0, #0x54
- bne _022444C2
- ldr r0, [sp, #0x18]
- add r2, r5, r0
- ldr r0, _02244580 ; =0x00002DCC
- ldr r1, [r2, r0]
- lsl r1, r1, #9
- lsr r1, r1, #0x1f
- beq _022444C2
- sub r0, #0x14
- ldrh r0, [r2, r0]
- cmp r0, #0
- bne _022444C2
- lsl r6, r6, #1
-_022444C2:
- ldr r0, [sp, #4]
- ldr r1, [sp, #8]
- bl MOD11_02230270
- lsl r0, r0, #2
- add r1, r5, r0
- mov r0, #0x6f
- lsl r0, r0, #2
- ldr r1, [r1, r0]
- mov r0, #3
- lsl r0, r0, #8
- tst r0, r1
- beq _022444DE
- lsl r6, r6, #1
-_022444DE:
- ldr r0, [sp, #0x58]
- cmp r0, #0x33
- bne _0224451C
- ldr r1, [sp, #0x54]
- mov r0, #0x64
- bl _s32_div_f
- add r1, r0, #0
- ldr r0, [sp, #8]
- lsl r0, r0, #1
- add r2, r5, r0
- ldr r0, _02244584 ; =0x0000310C
- ldrh r0, [r2, r0]
- bl _s32_div_f
- cmp r1, #0
- bne _0224451C
- mov r0, #1
- str r0, [sp, #0x40]
- ldr r0, [sp, #0x80]
- cmp r0, #0
- bne _0224451C
- ldr r0, _02244580 ; =0x00002DCC
- ldr r1, [sp, #0x18]
- add r0, r5, r0
- ldr r2, [r0, r1]
- mov r1, #2
- lsl r1, r1, #0x1c
- orr r2, r1
- ldr r1, [sp, #0x18]
- str r2, [r0, r1]
-_0224451C:
- ldr r0, [sp, #0x18]
- add r1, r5, r0
- ldr r0, _02244580 ; =0x00002DCC
- ldr r0, [r1, r0]
- lsl r0, r0, #3
- lsr r0, r0, #0x1f
- beq _0224452E
- mov r0, #1
- str r0, [sp, #0x40]
-_0224452E:
- ldr r0, [sp, #0x58]
- cmp r0, #0x6a
- bne _02244538
- mov r0, #1
- str r0, [sp, #0x38]
-_02244538:
- mov r0, #0
- str r0, [sp, #0x10]
- ldr r0, [sp, #0x14]
- ldr r7, _02244570 ; =0x0225E24C
- add r0, r5, r0
- str r0, [sp, #0x20]
-_02244544:
- ldr r2, [sp, #0x20]
- ldr r1, _02244574 ; =0x00002DB8
- add r0, r5, #0
- ldrh r1, [r2, r1]
- mov r2, #1
- bl MOD11_0224C12C
- ldrb r1, [r7]
- cmp r1, r0
- bne _02244588
- lsr r4, r4, #1
- b _02244594
- .align 2, 0
-_0224455C: .word 0x00002D8C
-_02244560: .word 0x00002D5B
-_02244564: .word 0x00002D46
-_02244568: .word 0x0225E284
-_0224456C: .word 0x0225E285
-_02244570: .word 0x0225E24C
-_02244574: .word 0x00002DB8
-_02244578: .word 0x00002DAC
-_0224457C: .word 0x00002DD8
-_02244580: .word 0x00002DCC
-_02244584: .word 0x0000310C
-_02244588:
- ldr r0, [sp, #0x10]
- add r7, r7, #1
- add r0, r0, #1
- str r0, [sp, #0x10]
- cmp r0, #8
- blo _02244544
-_02244594:
- ldr r0, [sp, #0x50]
- cmp r0, #0x72
- bne _022445A6
- mov r0, #0xf
- mul r0, r4
- mov r1, #0xa
- bl _u32_div_f
- add r4, r0, #0
-_022445A6:
- ldr r0, [sp, #0x50]
- cmp r0, #0x65
- bne _022445BC
- ldr r0, [sp, #0x14]
- add r1, r5, r0
- mov r0, #0xb5
- lsl r0, r0, #6
- ldrh r0, [r1, r0]
- cmp r0, #0x84
- bne _022445BC
- lsl r4, r4, #1
-_022445BC:
- ldr r0, [sp, #0x28]
- cmp r0, #0x5f
- bne _022445DE
- ldr r0, [sp, #0x14]
- add r1, r5, r0
- ldr r0, _02244894 ; =0x00002DAC
- ldr r0, [r1, r0]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- beq _022445DE
- mov r0, #0xf
- mul r0, r4
- mov r1, #0xa
- bl _u32_div_f
- add r4, r0, #0
- b _022445EE
-_022445DE:
- ldr r0, [sp, #0x14]
- add r1, r5, r0
- ldr r0, _02244894 ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #0x40
- tst r0, r1
- beq _022445EE
- lsr r4, r4, #2
-_022445EE:
- ldr r0, [sp, #0x28]
- cmp r0, #0x70
- bne _0224460A
- ldr r1, [sp, #0x14]
- mov r0, #0x15
- add r2, r5, r1
- ldr r1, _02244898 ; =0x00002DD8
- lsl r0, r0, #4
- ldr r0, [r5, r0]
- ldr r1, [r2, r1]
- sub r0, r0, r1
- cmp r0, #5
- bge _0224460A
- lsr r4, r4, #1
-_0224460A:
- ldr r0, [sp, #0x28]
- cmp r0, #0x54
- bne _02244628
- ldr r0, [sp, #0x14]
- add r2, r5, r0
- ldr r0, _0224489C ; =0x00002DCC
- ldr r1, [r2, r0]
- lsl r1, r1, #9
- lsr r1, r1, #0x1f
- beq _02244628
- sub r0, #0x14
- ldrh r0, [r2, r0]
- cmp r0, #0
- bne _02244628
- lsl r4, r4, #1
-_02244628:
- ldr r0, [sp, #4]
- ldr r1, [sp, #0xc]
- bl MOD11_02230270
- lsl r0, r0, #2
- add r1, r5, r0
- mov r0, #0x6f
- lsl r0, r0, #2
- ldr r1, [r1, r0]
- mov r0, #3
- lsl r0, r0, #8
- tst r0, r1
- beq _02244644
- lsl r4, r4, #1
-_02244644:
- ldr r0, [sp, #0x50]
- cmp r0, #0x33
- bne _02244682
- ldr r1, [sp, #0x4c]
- mov r0, #0x64
- bl _s32_div_f
- add r1, r0, #0
- ldr r0, [sp, #0xc]
- lsl r0, r0, #1
- add r2, r5, r0
- ldr r0, _022448A0 ; =0x0000310C
- ldrh r0, [r2, r0]
- bl _s32_div_f
- cmp r1, #0
- bne _02244682
- mov r0, #1
- str r0, [sp, #0x3c]
- ldr r0, [sp, #0x80]
- cmp r0, #0
- bne _02244682
- ldr r0, _0224489C ; =0x00002DCC
- ldr r1, [sp, #0x14]
- add r0, r5, r0
- ldr r2, [r0, r1]
- mov r1, #2
- lsl r1, r1, #0x1c
- orr r2, r1
- ldr r1, [sp, #0x14]
- str r2, [r0, r1]
-_02244682:
- ldr r0, [sp, #0x14]
- add r1, r5, r0
- ldr r0, _0224489C ; =0x00002DCC
- ldr r0, [r1, r0]
- lsl r0, r0, #3
- lsr r0, r0, #0x1f
- beq _02244694
- mov r0, #1
- str r0, [sp, #0x3c]
-_02244694:
- ldr r0, [sp, #0x50]
- cmp r0, #0x6a
- bne _0224469E
- mov r0, #1
- str r0, [sp, #0x34]
-_0224469E:
- ldr r0, [sp, #8]
- lsl r0, r0, #2
- add r1, r5, r0
- ldr r0, _022448A4 ; =0x000021F0
- str r6, [r1, r0]
- ldr r1, [sp, #0xc]
- lsl r1, r1, #2
- add r1, r5, r1
- str r4, [r1, r0]
- ldr r1, [sp, #0x80]
- cmp r1, #0
- bne _02244756
- ldr r1, [sp, #0xc]
- ldr r3, _022448A8 ; =0x000030BC
- lsl r1, r1, #4
- add r2, r5, r1
- add r1, r0, #0
- sub r1, #0x3c
- ldr r1, [r2, r1]
- sub r0, #0x3c
- str r1, [sp, #0x30]
- ldr r1, [sp, #8]
- lsl r1, r1, #1
- add r1, r5, r1
- ldrh r2, [r1, r3]
- ldr r1, [sp, #0xc]
- lsl r1, r1, #1
- add r1, r5, r1
- ldrh r7, [r1, r3]
- ldr r1, [sp, #8]
- lsl r1, r1, #4
- add r1, r5, r1
- ldr r0, [r1, r0]
- cmp r0, #1
- bne _0224470E
- ldr r0, [sp, #8]
- lsl r0, r0, #6
- add r1, r5, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- beq _022446FC
- mov r0, #0xa5
- str r0, [sp, #0x60]
- b _0224470E
-_022446FC:
- ldr r1, [sp, #8]
- add r0, r5, #0
- add r2, r2, #6
- mov r3, #0
- bl MOD11_02243420
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x60]
-_0224470E:
- ldr r0, [sp, #0x30]
- cmp r0, #1
- bne _0224473E
- ldr r0, [sp, #0xc]
- lsl r0, r0, #6
- add r1, r5, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- beq _0224472C
- mov r0, #0xa5
- str r0, [sp, #0x5c]
- b _0224473E
-_0224472C:
- ldr r1, [sp, #0xc]
- add r0, r5, #0
- add r2, r7, #6
- mov r3, #0
- bl MOD11_02243420
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x5c]
-_0224473E:
- ldr r0, [sp, #0x60]
- mov r1, #0xfa
- lsl r0, r0, #4
- add r0, r5, r0
- lsl r1, r1, #2
- ldrsb r0, [r0, r1]
- str r0, [sp, #0x48]
- ldr r0, [sp, #0x5c]
- lsl r0, r0, #4
- add r0, r5, r0
- ldrsb r0, [r0, r1]
- str r0, [sp, #0x44]
-_02244756:
- ldr r1, [sp, #0x48]
- ldr r0, [sp, #0x44]
- cmp r1, r0
- beq _02244760
- b _022448AC
-_02244760:
- ldr r0, [sp, #0x40]
- cmp r0, #0
- beq _0224478C
- ldr r0, [sp, #0x3c]
- cmp r0, #0
- beq _0224478C
- cmp r6, r4
- bhs _02244776
- mov r0, #1
- str r0, [sp, #0x64]
- b _022448B4
-_02244776:
- cmp r6, r4
- bne _02244784
- bl rand_LC
- mov r1, #1
- tst r0, r1
- bne _02244786
-_02244784:
- b _022448B4
-_02244786:
- mov r0, #2
- str r0, [sp, #0x64]
- b _022448B4
-_0224478C:
- ldr r0, [sp, #0x40]
- cmp r0, #0
- bne _0224479E
- ldr r0, [sp, #0x3c]
- cmp r0, #0
- beq _0224479E
- mov r0, #1
- str r0, [sp, #0x64]
- b _022448B4
-_0224479E:
- ldr r0, [sp, #0x40]
- cmp r0, #0
- beq _022447B0
- ldr r0, [sp, #0x3c]
- cmp r0, #0
- bne _022447B0
- mov r0, #0
- str r0, [sp, #0x64]
- b _022448B4
-_022447B0:
- ldr r0, [sp, #0x38]
- cmp r0, #0
- beq _022447DA
- ldr r0, [sp, #0x34]
- cmp r0, #0
- beq _022447DA
- cmp r6, r4
- bls _022447C6
- mov r0, #1
- str r0, [sp, #0x64]
- b _022448B4
-_022447C6:
- cmp r6, r4
- bne _022448B4
- bl rand_LC
- mov r1, #1
- tst r0, r1
- beq _022448B4
- mov r0, #2
- str r0, [sp, #0x64]
- b _022448B4
-_022447DA:
- ldr r0, [sp, #0x38]
- cmp r0, #0
- beq _022447EC
- ldr r0, [sp, #0x34]
- cmp r0, #0
- bne _022447EC
- mov r0, #1
- str r0, [sp, #0x64]
- b _022448B4
-_022447EC:
- ldr r0, [sp, #0x38]
- cmp r0, #0
- bne _022447FE
- ldr r0, [sp, #0x34]
- cmp r0, #0
- beq _022447FE
- mov r0, #0
- str r0, [sp, #0x64]
- b _022448B4
-_022447FE:
- ldr r0, [sp, #0x2c]
- cmp r0, #0x64
- bne _02244828
- ldr r0, [sp, #0x28]
- cmp r0, #0x64
- bne _02244828
- cmp r6, r4
- bls _02244814
- mov r0, #1
- str r0, [sp, #0x64]
- b _022448B4
-_02244814:
- cmp r6, r4
- bne _022448B4
- bl rand_LC
- mov r1, #1
- tst r0, r1
- beq _022448B4
- mov r0, #2
- str r0, [sp, #0x64]
- b _022448B4
-_02244828:
- ldr r0, [sp, #0x2c]
- cmp r0, #0x64
- bne _0224483A
- ldr r0, [sp, #0x28]
- cmp r0, #0x64
- beq _0224483A
- mov r0, #1
- str r0, [sp, #0x64]
- b _022448B4
-_0224483A:
- ldr r0, [sp, #0x2c]
- cmp r0, #0x64
- beq _0224484C
- ldr r0, [sp, #0x28]
- cmp r0, #0x64
- bne _0224484C
- mov r0, #0
- str r0, [sp, #0x64]
- b _022448B4
-_0224484C:
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #7
- lsl r0, r0, #0x10
- tst r0, r1
- beq _02244876
- cmp r6, r4
- bls _02244862
- mov r0, #1
- str r0, [sp, #0x64]
-_02244862:
- cmp r6, r4
- bne _022448B4
- bl rand_LC
- mov r1, #1
- tst r0, r1
- beq _022448B4
- mov r0, #2
- str r0, [sp, #0x64]
- b _022448B4
-_02244876:
- cmp r6, r4
- bhs _0224487E
- mov r0, #1
- str r0, [sp, #0x64]
-_0224487E:
- cmp r6, r4
- bne _022448B4
- bl rand_LC
- mov r1, #1
- tst r0, r1
- beq _022448B4
- mov r0, #2
- str r0, [sp, #0x64]
- b _022448B4
- nop
-_02244894: .word 0x00002DAC
-_02244898: .word 0x00002DD8
-_0224489C: .word 0x00002DCC
-_022448A0: .word 0x0000310C
-_022448A4: .word 0x000021F0
-_022448A8: .word 0x000030BC
-_022448AC:
- cmp r1, r0
- bge _022448B4
- mov r0, #1
- str r0, [sp, #0x64]
-_022448B4:
- ldr r0, [sp, #0x64]
- add sp, #0x68
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022448BC
-MOD11_022448BC: ; 0x022448BC
- asr r1, r1, #1
- lsl r1, r1, #0x1f
- lsr r1, r1, #0x1d
- add r0, r0, r1
- mov r2, #0
- add r0, #0xa4
- str r2, [r0]
- bx lr
-
- thumb_func_start MOD11_022448CC
-MOD11_022448CC: ; 0x022448CC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- str r2, [sp]
- add r5, r1, #0
- mov r4, #0
- bl MOD11_0222FF74
- add r7, r0, #0
- ldr r0, [sp]
- mov r1, #0xc0
- mul r1, r0
- add r0, r5, r1
- str r0, [sp, #4]
- ldr r0, [sp]
- asr r0, r0, #1
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1d
- add r6, r5, r0
- add r6, #0xa4
-_022448F2:
- add r0, r4, #0
- bl MaskOfFlagNo
- ldr r1, _0224493C ; =0x00003108
- ldrb r1, [r5, r1]
- tst r0, r1
- bne _02244928
- ldr r0, [sp]
- bl MaskOfFlagNo
- ldr r1, _0224493C ; =0x00003108
- ldrb r1, [r5, r1]
- tst r0, r1
- bne _02244928
- ldr r1, [sp, #4]
- ldr r0, _02244940 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02244928
- ldr r0, _02244944 ; =0x0000219C
- add r1, r5, r4
- ldrb r0, [r1, r0]
- bl MaskOfFlagNo
- ldr r1, [r6]
- orr r0, r1
- str r0, [r6]
-_02244928:
- add r4, r4, #2
- cmp r7, #0x4a
- beq _02244936
- cmp r7, #0x4b
- beq _02244936
- cmp r4, #2
- ble _022448F2
-_02244936:
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0224493C: .word 0x00003108
-_02244940: .word 0x00002D8C
-_02244944: .word 0x0000219C
-
- thumb_func_start MOD11_02244948
-MOD11_02244948: ; 0x02244948
- push {r4, r5, r6, lr}
- ldr r0, _022449D4 ; =0x00002170
- add r5, r1, #0
- add r4, r2, #0
- ldr r2, [r5, r0]
- mov r0, #2
- lsl r0, r0, #0x1c
- mov r6, #0
- tst r0, r2
- beq _0224497A
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0224C5DC
- str r0, [r4]
- ldr r0, _022449D4 ; =0x00002170
- add r1, r6, #0
- str r1, [r5, r0]
- sub r0, r0, #4
- ldr r1, [r5, r0]
- ldr r0, _022449D8 ; =0x801FDA49
- tst r0, r1
- bne _022449CE
- mov r6, #1
- b _022449CE
-_0224497A:
- cmp r2, #0
- beq _022449CE
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0224C5DC
- str r0, [r4]
- add r0, r5, #0
- add r0, #0x94
- ldr r1, [r0]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _022449DC ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _022449C8
- ldr r1, _022449E0 ; =0x0000216C
- ldr r2, _022449D8 ; =0x801FDA49
- ldr r0, [r5, r1]
- tst r2, r0
- beq _022449C6
- add r1, r1, #4
- mov r2, #2
- ldr r1, [r5, r1]
- lsl r2, r2, #0x16
- tst r2, r1
- beq _022449B8
- ldr r2, _022449E4 ; =0x00040008
- tst r2, r0
- bne _022449C6
-_022449B8:
- mov r2, #1
- lsl r2, r2, #0x1c
- tst r1, r2
- beq _022449C8
- ldr r1, _022449E8 ; =0x00010001
- tst r0, r1
- beq _022449C8
-_022449C6:
- mov r6, #1
-_022449C8:
- ldr r0, _022449D4 ; =0x00002170
- mov r1, #0
- str r1, [r5, r0]
-_022449CE:
- add r0, r6, #0
- pop {r4, r5, r6, pc}
- nop
-_022449D4: .word 0x00002170
-_022449D8: .word 0x801FDA49
-_022449DC: .word 0x00002D8C
-_022449E0: .word 0x0000216C
-_022449E4: .word 0x00040008
-_022449E8: .word 0x00010001
-
- thumb_func_start MOD11_022449EC
-MOD11_022449EC: ; 0x022449EC
- push {r3, r4, r5, r6, r7, lr}
- ldr r0, _02244C04 ; =0x00002174
- add r5, r1, #0
- add r4, r2, #0
- ldr r2, [r5, r0]
- mov r1, #2
- lsl r1, r1, #0x1c
- add r3, r2, #0
- mov r6, #0
- tst r3, r1
- beq _02244A20
- add r0, r5, #0
- mov r1, #2
- bl MOD11_0224C5DC
- str r0, [r4]
- ldr r0, _02244C04 ; =0x00002174
- add r1, r6, #0
- str r1, [r5, r0]
- sub r0, #8
- ldr r1, [r5, r0]
- ldr r0, _02244C08 ; =0x801FDA49
- tst r0, r1
- bne _02244AC0
- mov r6, #1
- b _02244C00
-_02244A20:
- lsr r3, r1, #5
- tst r3, r2
- beq _02244A54
- add r0, r5, #0
- mov r1, #2
- bl MOD11_0224C5DC
- str r0, [r4]
- ldr r0, _02244C04 ; =0x00002174
- add r1, r6, #0
- str r1, [r5, r0]
- add r1, r5, #0
- add r1, #0x94
- ldr r1, [r1]
- add r0, r5, #0
- bl MOD11_0224AD9C
- cmp r0, #0
- bne _02244AC0
- ldr r0, _02244C0C ; =0x0000216C
- ldr r1, [r5, r0]
- ldr r0, _02244C08 ; =0x801FDA49
- tst r0, r1
- bne _02244AC0
- mov r6, #1
- b _02244C00
-_02244A54:
- lsr r3, r1, #4
- tst r3, r2
- beq _02244A96
- add r0, r5, #0
- mov r1, #2
- bl MOD11_0224C5DC
- str r0, [r4]
- ldr r0, _02244C04 ; =0x00002174
- add r1, r6, #0
- str r1, [r5, r0]
- add r0, r5, #0
- add r0, #0x94
- ldr r1, [r0]
- mov r0, #0xc0
- mul r0, r1
- add r2, r5, r0
- ldr r0, _02244C10 ; =0x00002D8C
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _02244AC0
- add r0, r5, #0
- bl MOD11_0224AD9C
- cmp r0, #0
- bne _02244AC0
- ldr r0, _02244C0C ; =0x0000216C
- ldr r1, [r5, r0]
- ldr r0, _02244C08 ; =0x801FDA49
- tst r0, r1
- bne _02244AC0
- mov r6, #1
- b _02244C00
-_02244A96:
- lsr r3, r1, #1
- tst r3, r2
- beq _02244AC6
- add r0, r5, #0
- mov r1, #2
- bl MOD11_0224C5DC
- str r0, [r4]
- ldr r0, _02244C04 ; =0x00002174
- add r1, r6, #0
- str r1, [r5, r0]
- add r0, r5, #0
- add r0, #0x94
- ldr r1, [r0]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _02244C10 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _02244AC2
-_02244AC0:
- b _02244C00
-_02244AC2:
- mov r6, #1
- b _02244C00
-_02244AC6:
- lsr r1, r1, #3
- tst r1, r2
- beq _02244B50
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x20
- ldr r0, _02244C14 ; =0x00003044
- bne _02244AEA
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _02244C18 ; =0x000003E5
- ldrb r0, [r1, r0]
- lsl r0, r0, #0x11
- lsr r6, r0, #0x10
- b _02244AF4
-_02244AEA:
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _02244C18 ; =0x000003E5
- ldrb r6, [r1, r0]
-_02244AF4:
- cmp r6, #0
- bne _02244AFC
- bl ErrorHandling
-_02244AFC:
- bl rand_LC
- mov r1, #0x64
- bl _s32_div_f
- cmp r1, r6
- bge _02244B16
- ldr r1, _02244C1C ; =0x0000213C
- mov r0, #1
- ldr r2, [r5, r1]
- lsl r0, r0, #0x16
- orr r0, r2
- str r0, [r5, r1]
-_02244B16:
- ldr r2, _02244C04 ; =0x00002174
- add r0, r5, #0
- ldr r2, [r5, r2]
- mov r1, #2
- bl MOD11_0224C5DC
- str r0, [r4]
- ldr r1, _02244C04 ; =0x00002174
- mov r0, #0
- str r0, [r5, r1]
- add r0, r5, #0
- add r0, #0x94
- ldr r2, [r0]
- mov r0, #0xc0
- mul r0, r2
- add r2, r5, r0
- ldr r0, _02244C10 ; =0x00002D8C
- ldr r0, [r2, r0]
- cmp r0, #0
- bne _02244B4C
- add r0, r1, #0
- sub r0, #0x38
- ldr r2, [r5, r0]
- ldr r0, _02244C20 ; =0xFFBFFFFF
- sub r1, #0x38
- and r0, r2
- str r0, [r5, r1]
-_02244B4C:
- mov r6, #1
- b _02244C00
-_02244B50:
- cmp r2, #0
- beq _02244BD2
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x20
- ldr r0, _02244C14 ; =0x00003044
- bne _02244B72
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _02244C18 ; =0x000003E5
- ldrb r0, [r1, r0]
- lsl r0, r0, #0x11
- lsr r7, r0, #0x10
- b _02244B7C
-_02244B72:
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _02244C18 ; =0x000003E5
- ldrb r7, [r1, r0]
-_02244B7C:
- cmp r7, #0
- bne _02244B84
- bl ErrorHandling
-_02244B84:
- bl rand_LC
- mov r1, #0x64
- bl _s32_div_f
- cmp r1, r7
- bge _02244C00
- ldr r2, _02244C04 ; =0x00002174
- add r0, r5, #0
- ldr r2, [r5, r2]
- mov r1, #2
- bl MOD11_0224C5DC
- str r0, [r4]
- ldr r0, _02244C04 ; =0x00002174
- mov r1, #0
- str r1, [r5, r0]
- add r0, r5, #0
- add r0, #0x94
- ldr r1, [r0]
- mov r0, #0xc0
- mul r0, r1
- add r2, r5, r0
- ldr r0, _02244C10 ; =0x00002D8C
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _02244C00
- add r0, r5, #0
- bl MOD11_0224AD9C
- cmp r0, #0
- bne _02244C00
- ldr r0, _02244C0C ; =0x0000216C
- ldr r1, [r5, r0]
- ldr r0, _02244C08 ; =0x801FDA49
- tst r0, r1
- bne _02244C00
- mov r6, #1
- b _02244C00
-_02244BD2:
- add r0, r0, #4
- ldr r2, [r5, r0]
- cmp r2, #0
- beq _02244C00
- add r0, r5, #0
- mov r1, #3
- bl MOD11_0224C5DC
- str r0, [r4]
- ldr r0, _02244C24 ; =0x00002178
- add r1, r6, #0
- str r1, [r5, r0]
- add r0, r5, #0
- add r0, #0x94
- ldr r1, [r0]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _02244C10 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02244C00
- mov r6, #1
-_02244C00:
- add r0, r6, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02244C04: .word 0x00002174
-_02244C08: .word 0x801FDA49
-_02244C0C: .word 0x0000216C
-_02244C10: .word 0x00002D8C
-_02244C14: .word 0x00003044
-_02244C18: .word 0x000003E5
-_02244C1C: .word 0x0000213C
-_02244C20: .word 0xFFBFFFFF
-_02244C24: .word 0x00002178
-
- thumb_func_start MOD11_02244C28
-MOD11_02244C28: ; 0x02244C28
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- add r6, r0, #0
- mov r0, #0xff
- add r4, r1, #0
- add r5, r2, #0
- str r0, [sp, #0xc]
- cmp r3, #0
- beq _02244C44
- lsl r0, r3, #4
- add r1, r4, r0
- ldr r0, _02244F24 ; =0x000003E6
- ldrh r0, [r1, r0]
- b _02244C46
-_02244C44:
- ldr r0, [sp, #0x34]
-_02244C46:
- cmp r0, #4
- bne _02244CD6
- add r0, r6, #0
- bl MOD11_0222FF84
- str r0, [sp, #8]
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_0222FF7C
- bl MOD11_02253A4C
- ldr r1, _02244F28 ; =0x0000217E
- mov r2, #0
- strb r2, [r4, r1]
- ldrb r1, [r4, r1]
- ldr r2, [sp, #8]
- cmp r1, r2
- bge _02244CC4
- mov r2, #1
- add r5, r0, #0
- and r5, r2
-_02244C72:
- ldr r0, _02244F2C ; =0x000021EC
- add r1, r4, r1
- ldrb r7, [r1, r0]
- mov r0, #0xc0
- mul r0, r7
- add r1, r4, r0
- ldr r0, _02244F30 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02244CB2
- add r0, r6, #0
- add r1, r7, #0
- bl MOD11_0222FF7C
- str r0, [sp]
- cmp r5, #0
- beq _02244C9E
- bl MOD11_02253A4C
- mov r1, #1
- tst r0, r1
- beq _02244CAE
-_02244C9E:
- cmp r5, #0
- bne _02244CB2
- ldr r0, [sp]
- bl MOD11_02253A4C
- mov r1, #1
- tst r0, r1
- beq _02244CB2
-_02244CAE:
- str r7, [sp, #0xc]
- b _02244CC4
-_02244CB2:
- ldr r0, _02244F28 ; =0x0000217E
- ldrb r0, [r4, r0]
- add r1, r0, #1
- ldr r0, _02244F28 ; =0x0000217E
- strb r1, [r4, r0]
- ldrb r1, [r4, r0]
- ldr r0, [sp, #8]
- cmp r1, r0
- blt _02244C72
-_02244CC4:
- ldr r1, _02244F28 ; =0x0000217E
- ldr r0, [sp, #8]
- ldrb r2, [r4, r1]
- cmp r2, r0
- bne _02244CD0
- b _02244F5C
-_02244CD0:
- add r0, r2, #1
- strb r0, [r4, r1]
- b _02244F5C
-_02244CD6:
- cmp r0, #8
- bne _02244D26
- add r0, r6, #0
- bl MOD11_0222FF84
- add r2, r0, #0
- ldr r0, _02244F28 ; =0x0000217E
- mov r1, #0
- strb r1, [r4, r0]
- ldrb r3, [r4, r0]
- cmp r3, r2
- bge _02244D18
- ldr r7, _02244F30 ; =0x00002D8C
-_02244CF0:
- ldr r1, _02244F2C ; =0x000021EC
- add r6, r4, r3
- ldrb r1, [r6, r1]
- mov r6, #0xc0
- mul r6, r1
- add r6, r4, r6
- ldr r6, [r6, r7]
- cmp r6, #0
- beq _02244D0A
- cmp r1, r5
- beq _02244D0A
- str r1, [sp, #0xc]
- b _02244D18
-_02244D0A:
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- ldr r1, _02244F28 ; =0x0000217E
- ldrb r3, [r4, r1]
- cmp r3, r2
- blt _02244CF0
-_02244D18:
- cmp r3, r2
- beq _02244E02
- ldr r0, _02244F28 ; =0x0000217E
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _02244F5C
-_02244D26:
- mov r1, #2
- lsl r1, r1, #8
- cmp r0, r1
- bne _02244D72
- ldr r1, [sp, #0x30]
- cmp r1, #1
- bne _02244D72
- add r0, r6, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _02244D6E
- bl rand_LC
- lsr r2, r0, #0x1f
- lsl r1, r0, #0x1f
- sub r1, r1, r2
- mov r0, #0x1f
- ror r1, r0
- add r0, r2, r1
- bne _02244D6E
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_022302BC
- mov r1, #0xc0
- mul r1, r0
- str r0, [sp, #0xc]
- ldr r0, _02244F30 ; =0x00002D8C
- add r1, r4, r1
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _02244E02
- str r5, [sp, #0xc]
- b _02244F5C
-_02244D6E:
- str r5, [sp, #0xc]
- b _02244F5C
-_02244D72:
- mov r1, #1
- lsl r1, r1, #0xa
- cmp r0, r1
- bne _02244D8E
- ldr r1, [sp, #0x30]
- cmp r1, #1
- bne _02244D8E
- add r0, r6, #0
- add r1, r4, #0
- add r2, r5, #0
- bl MOD11_022482A4
- str r0, [sp, #0xc]
- b _02244F5C
-_02244D8E:
- cmp r0, #0x80
- bne _02244DA0
- add r0, r6, #0
- add r1, r4, #0
- add r2, r5, #0
- bl MOD11_022482A4
- str r0, [sp, #0xc]
- b _02244F5C
-_02244DA0:
- cmp r0, #0x10
- beq _02244DB0
- cmp r0, #0x20
- beq _02244DB0
- cmp r0, #1
- beq _02244DB0
- cmp r0, #0x40
- bne _02244DB4
-_02244DB0:
- str r5, [sp, #0xc]
- b _02244F5C
-_02244DB4:
- mov r1, #1
- lsl r1, r1, #8
- cmp r0, r1
- bne _02244DD8
- add r0, r6, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _02244DD4
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_022302BC
- str r0, [sp, #0xc]
- b _02244F5C
-_02244DD4:
- str r5, [sp, #0xc]
- b _02244F5C
-_02244DD8:
- lsl r1, r1, #1
- cmp r0, r1
- bne _02244E0C
- add r0, r6, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _02244E08
- lsl r0, r5, #4
- add r1, r4, r0
- ldr r0, _02244F34 ; =0x000021AC
- ldr r0, [r1, r0]
- mov r1, #0xc0
- mul r1, r0
- str r0, [sp, #0xc]
- ldr r0, _02244F30 ; =0x00002D8C
- add r1, r4, r1
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02244E04
-_02244E02:
- b _02244F5C
-_02244E04:
- str r5, [sp, #0xc]
- b _02244F5C
-_02244E08:
- str r5, [sp, #0xc]
- b _02244F5C
-_02244E0C:
- cmp r0, #2
- beq _02244E16
- ldr r0, [sp, #0x30]
- cmp r0, #1
- bne _02244ED6
-_02244E16:
- add r0, r6, #0
- bl MOD11_0222FF74
- str r0, [sp, #0x10]
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_02230270
- add r7, r0, #0
- mov r1, #1
- eor r7, r1
- add r0, r6, #0
- add r1, r5, #0
- mov r2, #0
- bl MOD11_02230308
- str r0, [sp, #0x14]
- add r0, r6, #0
- add r1, r5, #0
- mov r2, #2
- bl MOD11_02230308
- str r0, [sp, #0x18]
- ldr r0, [sp, #0x10]
- mov r1, #2
- tst r0, r1
- beq _02244EBE
- mov r0, #0x71
- lsl r0, r0, #2
- add r1, r4, r0
- lsl r0, r7, #3
- ldr r0, [r1, r0]
- lsl r1, r0, #0xb
- lsr r1, r1, #0x1f
- beq _02244E72
- lsl r0, r0, #9
- lsr r2, r0, #0x1e
- mov r0, #0xc0
- mul r0, r2
- add r1, r4, r0
- ldr r0, _02244F30 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02244E72
- str r2, [sp, #0xc]
- b _02244F5C
-_02244E72:
- ldr r0, [sp, #0x14]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- add r0, r4, r2
- ldr r2, _02244F30 ; =0x00002D8C
- ldr r0, [r0, r2]
- cmp r0, #0
- beq _02244EA0
- ldr r3, [sp, #0x18]
- mul r1, r3
- add r1, r4, r1
- ldr r1, [r1, r2]
- cmp r1, #0
- beq _02244EA0
- bl rand_LC
- lsl r0, r0, #0x1f
- lsr r1, r0, #0x1d
- add r0, sp, #0x14
- ldr r0, [r0, r1]
- str r0, [sp, #0xc]
- b _02244F5C
-_02244EA0:
- cmp r0, #0
- beq _02244EAA
- ldr r0, [sp, #0x14]
- str r0, [sp, #0xc]
- b _02244F5C
-_02244EAA:
- ldr r2, [sp, #0x18]
- mov r0, #0xc0
- mul r0, r2
- add r1, r4, r0
- ldr r0, _02244F30 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02244F5C
- str r2, [sp, #0xc]
- b _02244F5C
-_02244EBE:
- mov r0, #1
- add r2, r5, #0
- eor r2, r0
- mov r0, #0xc0
- mul r0, r2
- add r1, r4, r0
- ldr r0, _02244F30 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02244F5C
- str r2, [sp, #0xc]
- b _02244F5C
-_02244ED6:
- add r0, r6, #0
- add r1, r5, #0
- bl MOD11_02230270
- mov r1, #1
- eor r0, r1
- str r0, [sp, #4]
- lsl r0, r5, #4
- add r1, r4, r0
- ldr r0, _02244F34 ; =0x000021AC
- ldr r7, [r1, r0]
- add r0, r6, #0
- bl MOD11_0222FF84
- mov r0, #0x71
- lsl r0, r0, #2
- add r1, r4, r0
- ldr r0, [sp, #4]
- lsl r0, r0, #3
- ldr r0, [r1, r0]
- lsl r1, r0, #0xb
- lsr r1, r1, #0x1f
- beq _02244F1A
- lsl r0, r0, #9
- lsr r0, r0, #0x1e
- mov r1, #0xc0
- mul r1, r0
- add r2, r4, r1
- ldr r1, _02244F30 ; =0x00002D8C
- ldr r1, [r2, r1]
- cmp r1, #0
- beq _02244F1A
- str r0, [sp, #0xc]
- b _02244F5C
-_02244F1A:
- mov r0, #0xc0
- mul r0, r7
- add r1, r4, r0
- ldr r0, _02244F30 ; =0x00002D8C
- b _02244F38
- .align 2, 0
-_02244F24: .word 0x000003E6
-_02244F28: .word 0x0000217E
-_02244F2C: .word 0x000021EC
-_02244F30: .word 0x00002D8C
-_02244F34: .word 0x000021AC
-_02244F38:
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02244F42
- str r7, [sp, #0xc]
- b _02244F5C
-_02244F42:
- add r0, r6, #0
- add r1, r4, #0
- add r2, r5, #0
- bl MOD11_022482A4
- mov r1, #0xc0
- mul r1, r0
- add r2, r4, r1
- ldr r1, _02244F64 ; =0x00002D8C
- ldr r1, [r2, r1]
- cmp r1, #0
- beq _02244F5C
- str r0, [sp, #0xc]
-_02244F5C:
- ldr r0, [sp, #0xc]
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- nop
-_02244F64: .word 0x00002D8C
-
- thumb_func_start MOD11_02244F68
-MOD11_02244F68: ; 0x02244F68
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r5, r1, #0
- str r0, [sp, #4]
- ldr r0, [r5, #0x6c]
- add r7, r2, #0
- add r6, r3, #0
- cmp r0, #0xff
- beq _02244FC2
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_02246D1C
- cmp r0, #0x60
- beq _02244FC2
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_02246D1C
- cmp r0, #0x68
- beq _02244FC2
- ldr r0, [sp, #4]
- add r1, r7, #0
- bl MOD11_02230270
- add r2, r0, #0
- mov r1, #1
- mov r0, #0x71
- eor r2, r1
- lsl r0, r0, #2
- add r1, r5, r0
- lsl r0, r2, #3
- ldr r0, [r1, r0]
- lsl r1, r0, #0xb
- lsr r1, r1, #0x1f
- beq _02244FC4
- lsl r0, r0, #9
- lsr r1, r0, #0x1e
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _022450F8 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02244FC4
-_02244FC2:
- b _022450F4
-_02244FC4:
- ldr r0, [sp, #4]
- add r1, r5, #0
- add r2, r7, #0
- add r3, r6, #0
- bl MOD11_0224C8EC
- str r0, [sp, #0xc]
- cmp r0, #0
- bne _02244FE0
- lsl r0, r6, #4
- add r1, r5, r0
- ldr r0, _022450FC ; =0x000003E2
- ldrb r0, [r1, r0]
- str r0, [sp, #0xc]
-_02244FE0:
- ldr r0, [sp, #4]
- bl MOD11_0222FF84
- str r0, [sp, #8]
- ldr r0, [sp, #0xc]
- cmp r0, #0xd
- bne _02245070
- lsl r0, r6, #4
- add r1, r5, r0
- ldr r0, _02245100 ; =0x000003E6
- ldrh r0, [r1, r0]
- cmp r0, #0
- beq _02244FFE
- cmp r0, #2
- bne _02245070
-_02244FFE:
- ldr r0, _02245104 ; =0x0000213C
- ldr r1, [r5, r0]
- mov r0, #0x20
- tst r0, r1
- bne _02245070
- mov r0, #0x1f
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #9
- add r3, r7, #0
- bl MOD11_02246870
- cmp r0, #0
- beq _02245070
- ldr r0, [sp, #8]
- mov r6, #0
- cmp r0, #0
- ble _02245050
-_02245024:
- ldr r0, _02245108 ; =0x000021EC
- add r1, r5, r6
- ldrb r4, [r1, r0]
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x1f
- bne _02245048
- mov r0, #0xc0
- mul r0, r4
- add r1, r5, r0
- ldr r0, _022450F8 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02245048
- cmp r7, r4
- bne _02245050
-_02245048:
- ldr r0, [sp, #8]
- add r6, r6, #1
- cmp r6, r0
- blt _02245024
-_02245050:
- ldr r0, [r5, #0x6c]
- cmp r4, r0
- beq _022450F4
- mov r0, #0xb5
- lsl r0, r0, #2
- add r3, r5, r0
- mov r0, #0x1c
- add r2, r4, #0
- mul r2, r0
- ldr r1, [r3, r2]
- mov r0, #2
- orr r0, r1
- str r0, [r3, r2]
- add sp, #0x10
- str r4, [r5, #0x6c]
- pop {r3, r4, r5, r6, r7, pc}
-_02245070:
- ldr r0, [sp, #0xc]
- cmp r0, #0xb
- bne _022450F4
- lsl r0, r6, #4
- add r1, r5, r0
- ldr r0, _02245100 ; =0x000003E6
- ldrh r0, [r1, r0]
- cmp r0, #0
- beq _02245086
- cmp r0, #2
- bne _022450F4
-_02245086:
- ldr r0, _02245104 ; =0x0000213C
- ldr r1, [r5, r0]
- mov r0, #0x20
- tst r0, r1
- bne _022450F4
- mov r0, #0x72
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #9
- add r3, r7, #0
- bl MOD11_02246870
- cmp r0, #0
- beq _022450F4
- ldr r0, [sp, #8]
- mov r6, #0
- cmp r0, #0
- ble _022450D8
-_022450AC:
- ldr r0, _02245108 ; =0x000021EC
- add r1, r5, r6
- ldrb r4, [r1, r0]
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x72
- bne _022450D0
- mov r0, #0xc0
- mul r0, r4
- add r1, r5, r0
- ldr r0, _022450F8 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _022450D0
- cmp r7, r4
- bne _022450D8
-_022450D0:
- ldr r0, [sp, #8]
- add r6, r6, #1
- cmp r6, r0
- blt _022450AC
-_022450D8:
- ldr r0, [r5, #0x6c]
- cmp r4, r0
- beq _022450F4
- mov r0, #0xb5
- lsl r0, r0, #2
- add r3, r5, r0
- mov r0, #0x1c
- add r2, r4, #0
- mul r2, r0
- ldr r1, [r3, r2]
- mov r0, #4
- orr r0, r1
- str r0, [r3, r2]
- str r4, [r5, #0x6c]
-_022450F4:
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022450F8: .word 0x00002D8C
-_022450FC: .word 0x000003E2
-_02245100: .word 0x000003E6
-_02245104: .word 0x0000213C
-_02245108: .word 0x000021EC
-
- thumb_func_start MOD11_0224510C
-MOD11_0224510C: ; 0x0224510C
- push {r3, r4, r5, lr}
- ldr r0, _02245188 ; =0x0000216C
- add r4, r1, #0
- ldr r1, [r4, r0]
- ldr r0, _0224518C ; =0x801FDA49
- mov r2, #0
- tst r0, r1
- bne _0224514A
- mov r0, #0xb5
- lsl r0, r0, #2
- add r1, r4, r0
- ldr r3, [r4, #0x6c]
- mov r0, #0x1c
- mul r0, r3
- ldr r3, [r1, r0]
- lsl r5, r3, #0x1e
- lsr r5, r5, #0x1f
- beq _0224514A
- mov r2, #2
- bic r3, r2
- str r3, [r1, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xb4
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- mov r2, #1
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
-_0224514A:
- ldr r0, _02245188 ; =0x0000216C
- ldr r1, [r4, r0]
- ldr r0, _0224518C ; =0x801FDA49
- tst r0, r1
- bne _02245182
- mov r0, #0xb5
- lsl r0, r0, #2
- add r1, r4, r0
- ldr r3, [r4, #0x6c]
- mov r0, #0x1c
- mul r0, r3
- ldr r3, [r1, r0]
- lsl r5, r3, #0x1d
- lsr r5, r5, #0x1f
- beq _02245182
- mov r2, #4
- bic r3, r2
- str r3, [r1, r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xb4
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- mov r2, #1
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
-_02245182:
- add r0, r2, #0
- pop {r3, r4, r5, pc}
- nop
-_02245188: .word 0x0000216C
-_0224518C: .word 0x801FDA49
-
- thumb_func_start MOD11_02245190
-MOD11_02245190: ; 0x02245190
- push {r4, r5, r6, lr}
- add r6, r0, #0
- add r4, r2, #0
- mov r0, #0xc0
- add r5, r1, #0
- mul r0, r4
- add r1, r5, r0
- ldr r0, _022451BC ; =0x00002DB8
- ldrh r0, [r1, r0]
- cmp r0, #0
- bne _022451B0
- lsl r1, r4, #0x18
- add r0, r5, #0
- lsr r1, r1, #0x18
- bl MOD11_0224C83C
-_022451B0:
- add r0, r6, #0
- add r1, r5, #0
- add r2, r4, #0
- bl MOD11_02256150
- pop {r4, r5, r6, pc}
- .align 2, 0
-_022451BC: .word 0x00002DB8
-
- thumb_func_start MOD11_022451C0
-MOD11_022451C0: ; 0x022451C0
- push {r4, r5}
- ldr r0, _022451E8 ; =0x00002DB0
- add r4, r2, #0
- add r5, r1, r0
- mov r0, #0xc0
- mul r4, r0
- mov r0, #1
- ldr r3, [r5, r4]
- lsl r0, r0, #0xc
- orr r0, r3
- str r0, [r5, r4]
- ldr r0, _022451EC ; =0x00003044
- lsl r2, r2, #2
- ldr r3, [r1, r0]
- add r1, r1, r2
- add r0, #8
- str r3, [r1, r0]
- pop {r4, r5}
- bx lr
- nop
-_022451E8: .word 0x00002DB0
-_022451EC: .word 0x00003044
-
- thumb_func_start MOD11_022451F0
-MOD11_022451F0: ; 0x022451F0
- push {r4, r5}
- ldr r4, _02245234 ; =0x00002DB0
- add r3, r2, #0
- mov r0, #0xc0
- mul r3, r0
- add r0, r1, r4
- ldr r5, [r0, r3]
- ldr r2, _02245238 ; =0xFFFFEFFF
- and r2, r5
- str r2, [r0, r3]
- ldr r5, [r0, r3]
- ldr r2, _0224523C ; =0xFFFFFCFF
- and r2, r5
- str r2, [r0, r3]
- add r0, r4, #0
- add r0, #0x10
- add r5, r1, r0
- ldr r2, [r5, r3]
- ldr r0, _02245240 ; =0xDFFBFF3F
- add r4, #0x18
- and r0, r2
- str r0, [r5, r3]
- add r2, r1, r4
- ldr r1, [r2, r3]
- ldr r0, _02245244 ; =0xFFFC7FFF
- and r0, r1
- str r0, [r2, r3]
- ldr r1, [r2, r3]
- ldr r0, _02245248 ; =0xFFE3FFFF
- and r0, r1
- str r0, [r2, r3]
- pop {r4, r5}
- bx lr
- nop
-_02245234: .word 0x00002DB0
-_02245238: .word 0xFFFFEFFF
-_0224523C: .word 0xFFFFFCFF
-_02245240: .word 0xDFFBFF3F
-_02245244: .word 0xFFFC7FFF
-_02245248: .word 0xFFE3FFFF
-
- thumb_func_start MOD11_0224524C
-MOD11_0224524C: ; 0x0224524C
- mov r2, #0xc0
- mul r2, r1
- add r1, r0, r2
- ldr r0, _02245298 ; =0x00002DAC
- ldr r0, [r1, r0]
- mov r1, #7
- tst r1, r0
- beq _02245260
- mov r0, #1
- bx lr
-_02245260:
- mov r1, #8
- tst r1, r0
- beq _0224526A
- mov r0, #2
- bx lr
-_0224526A:
- mov r1, #0x10
- tst r1, r0
- beq _02245274
- mov r0, #3
- bx lr
-_02245274:
- mov r1, #0x20
- tst r1, r0
- beq _0224527E
- mov r0, #4
- bx lr
-_0224527E:
- mov r1, #0x40
- tst r1, r0
- beq _02245288
- mov r0, #5
- bx lr
-_02245288:
- mov r1, #0x80
- tst r0, r1
- beq _02245292
- mov r0, #2
- bx lr
-_02245292:
- mov r0, #0
- bx lr
- nop
-_02245298: .word 0x00002DAC
-
- thumb_func_start MOD11_0224529C
-MOD11_0224529C: ; 0x0224529C
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- str r0, [sp]
- add r7, r1, #0
- bl MOD11_0222FF74
- mov r1, #0x84
- tst r1, r0
- beq _022452B4
- add sp, #0xc
- mov r0, #0
- pop {r4, r5, r6, r7, pc}
-_022452B4:
- mov r1, #1
- add r2, r0, #0
- tst r2, r1
- bne _022452C2
- add sp, #0xc
- mov r0, #0
- pop {r4, r5, r6, r7, pc}
-_022452C2:
- mov r2, #2
- tst r0, r2
- beq _022452CE
- add sp, #0xc
- mov r0, #0
- pop {r4, r5, r6, r7, pc}
-_022452CE:
- ldr r0, [sp]
- bl MOD11_02230140
- str r0, [sp, #8]
- mov r0, #0
- str r0, [sp, #4]
-_022452DA:
- ldr r0, [sp, #4]
- cmp r0, #4
- bls _022452E2
- b _02245478
-_022452E2:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_022452EE: ; jump table
- .short _022452F8 - _022452EE - 2 ; case 0
- .short _0224533C - _022452EE - 2 ; case 1
- .short _02245384 - _022452EE - 2 ; case 2
- .short _022453F8 - _022452EE - 2 ; case 3
- .short _02245478 - _022452EE - 2 ; case 4
-_022452F8:
- ldr r0, _02245488 ; =0x00002E7C
- ldrb r0, [r7, r0]
- cmp r0, #1
- bne _02245334
- mov r0, #0x85
- lsl r0, r0, #6
- ldr r1, [r7, r0]
- mov r0, #0x20
- tst r0, r1
- bne _02245334
- ldr r0, [sp, #8]
- mov r1, #0xd
- mov r2, #5
- bl FUN_0206ACD4
- cmp r0, #0
- beq _02245334
- mov r1, #0x85
- lsl r1, r1, #6
- ldr r2, [r7, r1]
- mov r0, #0x20
- orr r0, r2
- str r0, [r7, r1]
- mov r0, #0x13
- mov r1, #0xd
- lsl r0, r0, #4
- str r1, [r7, r0]
- add sp, #0xc
- mov r0, #1
- pop {r4, r5, r6, r7, pc}
-_02245334:
- ldr r0, [sp, #4]
- add r0, r0, #1
- str r0, [sp, #4]
- b _02245478
-_0224533C:
- ldr r1, _0224548C ; =0x00002E7D
- mov r0, #2
- ldrb r2, [r7, r1]
- tst r0, r2
- bne _0224537C
- add r0, r1, #0
- sub r0, #0x31
- sub r1, #0x2d
- ldr r2, [r7, r0]
- ldr r0, [r7, r1]
- lsr r0, r0, #1
- cmp r2, r0
- bhi _0224537C
- ldr r0, [sp, #8]
- mov r1, #0xe
- mov r2, #5
- bl FUN_0206ACD4
- cmp r0, #0
- beq _0224537C
- ldr r1, _0224548C ; =0x00002E7D
- mov r0, #2
- ldrb r2, [r7, r1]
- add sp, #0xc
- orr r0, r2
- strb r0, [r7, r1]
- mov r0, #0x13
- mov r1, #0xe
- lsl r0, r0, #4
- str r1, [r7, r0]
- mov r0, #1
- pop {r4, r5, r6, r7, pc}
-_0224537C:
- ldr r0, [sp, #4]
- add r0, r0, #1
- str r0, [sp, #4]
- b _02245478
-_02245384:
- ldr r0, _0224548C ; =0x00002E7D
- ldrb r1, [r7, r0]
- mov r0, #3
- tst r0, r1
- bne _022453F0
- ldr r0, [sp]
- mov r1, #1
- bl MOD11_0222FF88
- mov r6, #0
- add r5, r0, #0
- add r4, r6, #0
- bl FUN_0206B9AC
- cmp r0, #0
- ble _022453C6
-_022453A4:
- add r0, r5, #0
- add r1, r4, #0
- bl FUN_0206B9B0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _022453BA
- add r6, r6, #1
-_022453BA:
- add r0, r5, #0
- add r4, r4, #1
- bl FUN_0206B9AC
- cmp r4, r0
- blt _022453A4
-_022453C6:
- cmp r6, #1
- bne _022453F0
- ldr r0, [sp, #8]
- mov r1, #0xf
- mov r2, #5
- bl FUN_0206ACD4
- cmp r0, #0
- beq _022453F0
- ldr r1, _0224548C ; =0x00002E7D
- mov r0, #3
- ldrb r2, [r7, r1]
- add sp, #0xc
- orr r0, r2
- strb r0, [r7, r1]
- mov r0, #0x13
- mov r1, #0xf
- lsl r0, r0, #4
- str r1, [r7, r0]
- mov r0, #1
- pop {r4, r5, r6, r7, pc}
-_022453F0:
- ldr r0, [sp, #4]
- add r0, r0, #1
- str r0, [sp, #4]
- b _02245478
-_022453F8:
- ldr r0, _0224548C ; =0x00002E7D
- ldrb r1, [r7, r0]
- mov r0, #4
- tst r0, r1
- bne _02245472
- ldr r0, [sp]
- mov r1, #1
- bl MOD11_0222FF88
- mov r6, #0
- add r5, r0, #0
- add r4, r6, #0
- bl FUN_0206B9AC
- cmp r0, #0
- ble _0224543A
-_02245418:
- add r0, r5, #0
- add r1, r4, #0
- bl FUN_0206B9B0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _0224542E
- add r6, r6, #1
-_0224542E:
- add r0, r5, #0
- add r4, r4, #1
- bl FUN_0206B9AC
- cmp r4, r0
- blt _02245418
-_0224543A:
- cmp r6, #1
- bne _02245472
- ldr r0, _02245490 ; =0x00002E4C
- ldr r1, [r7, r0]
- add r0, r0, #4
- ldr r0, [r7, r0]
- lsr r0, r0, #1
- cmp r1, r0
- bhi _02245472
- ldr r0, [sp, #8]
- mov r1, #0x10
- mov r2, #5
- bl FUN_0206ACD4
- cmp r0, #0
- beq _02245472
- ldr r1, _0224548C ; =0x00002E7D
- mov r0, #4
- ldrb r2, [r7, r1]
- add sp, #0xc
- orr r0, r2
- strb r0, [r7, r1]
- mov r0, #0x13
- mov r1, #0x10
- lsl r0, r0, #4
- str r1, [r7, r0]
- mov r0, #1
- pop {r4, r5, r6, r7, pc}
-_02245472:
- ldr r0, [sp, #4]
- add r0, r0, #1
- str r0, [sp, #4]
-_02245478:
- ldr r0, [sp, #4]
- cmp r0, #4
- beq _02245480
- b _022452DA
-_02245480:
- mov r0, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- nop
-_02245488: .word 0x00002E7C
-_0224548C: .word 0x00002E7D
-_02245490: .word 0x00002E4C
-
- thumb_func_start MOD11_02245494
-MOD11_02245494: ; 0x02245494
- push {r3, r4, r5, r6, r7, lr}
- ldr r1, _02245574 ; =0x00002144
- add r5, r0, #0
- mov r4, #0
- add r0, r1, #0
- str r4, [r5, r1]
- mov r2, #1
- add r0, #0xc
- str r2, [r5, r0]
- add r0, r1, #0
- add r0, #8
- str r4, [r5, r0]
- add r0, r1, #0
- add r0, #0x10
- str r4, [r5, r0]
- add r0, r1, #0
- mov r2, #0xa
- add r0, #0x14
- str r2, [r5, r0]
- add r0, r1, #0
- add r0, #0x1c
- str r4, [r5, r0]
- add r0, r1, #0
- add r0, #0x20
- str r4, [r5, r0]
- add r0, r1, #0
- add r0, #0x28
- str r4, [r5, r0]
- mov r0, #0xff
- add r2, r1, #0
- str r0, [r5, #0x74]
- add r2, #0x2c
- str r4, [r5, r2]
- add r2, r1, #0
- add r2, #0x30
- str r4, [r5, r2]
- add r2, r1, #0
- add r2, #0x34
- str r4, [r5, r2]
- add r2, r5, #0
- add r2, #0x88
- str r4, [r2]
- add r2, r5, #0
- add r2, #0x8c
- str r4, [r2]
- add r2, r5, #0
- add r2, #0x94
- str r0, [r2]
- add r0, r1, #0
- add r0, #0x38
- strb r4, [r5, r0]
- add r0, r1, #0
- add r0, #0x39
- strb r4, [r5, r0]
- add r0, r1, #0
- add r0, #0x3a
- strb r4, [r5, r0]
- add r0, r1, #0
- add r0, #0x3c
- str r4, [r5, r0]
- add r0, r1, #0
- str r4, [r5, #0x38]
- add r0, #0x40
- str r4, [r5, r0]
- add r0, r1, #0
- add r0, #0x44
- str r4, [r5, r0]
- str r4, [r5, #0x10]
- str r4, [r5, #0x18]
- str r4, [r5, #0x20]
- str r4, [r5, #0x28]
- str r4, [r5, #0x30]
- str r4, [r5, #0x3c]
- str r4, [r5, #0x40]
- str r4, [r5, #0x48]
- str r4, [r5, #0x4c]
- str r4, [r5, #0x50]
- add r0, r1, #0
- str r4, [r5, #0x54]
- sub r0, #8
- ldr r2, [r5, r0]
- ldr r0, _02245578 ; =0xFF880000
- mov r7, #6
- and r2, r0
- add r0, r1, #0
- sub r0, #8
- str r2, [r5, r0]
- sub r0, r1, #4
- ldr r2, [r5, r0]
- ldr r0, _0224557C ; =0xFFFFFEA1
- and r2, r0
- sub r0, r1, #4
- str r2, [r5, r0]
- ldr r0, _02245580 ; =0x00003120
- strb r4, [r5, r0]
- mov r0, #0xb5
- lsl r0, r0, #2
- add r6, r5, r0
-_02245558:
- mov r0, #0
- add r1, r6, #0
- mov r2, #0x1c
- bl MIi_CpuClearFast
- add r1, r5, r4
- ldr r0, _02245584 ; =0x000021A4
- add r4, r4, #1
- add r6, #0x1c
- strb r7, [r1, r0]
- cmp r4, #4
- blt _02245558
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02245574: .word 0x00002144
-_02245578: .word 0xFF880000
-_0224557C: .word 0xFFFFFEA1
-_02245580: .word 0x00003120
-_02245584: .word 0x000021A4
-
- thumb_func_start MOD11_02245588
-MOD11_02245588: ; 0x02245588
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- str r0, [sp]
- mov r4, #0
- add r5, r6, #0
- mov r7, #0xff
-_02245594:
- ldr r0, _022455F0 ; =0x0000306C
- add r2, r6, r4
- strh r7, [r5, r0]
- ldr r0, _022455F4 ; =0x000021A0
- mov r1, #6
- strb r1, [r2, r0]
- bl rand_LC
- ldr r1, _022455F8 ; =0x0000310C
- add r4, r4, #1
- strh r0, [r5, r1]
- add r5, r5, #2
- cmp r4, #4
- blt _02245594
- ldr r0, _022455FC ; =0x00002168
- mov r1, #1
- str r1, [r6, r0]
- mov r0, #0x5d
- lsl r0, r0, #2
- str r1, [r6, r0]
- ldr r0, [sp]
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- bne _022455E4
- add r0, r1, #0
- bl MaskOfFlagNo
- ldr r1, _02245600 ; =0x00003108
- ldrb r2, [r6, r1]
- orr r0, r2
- strb r0, [r6, r1]
- mov r0, #3
- bl MaskOfFlagNo
- ldr r1, _02245600 ; =0x00003108
- ldrb r2, [r6, r1]
- orr r0, r2
- strb r0, [r6, r1]
-_022455E4:
- ldr r0, _02245604 ; =0x0000311C
- mov r1, #6
- strb r1, [r6, r0]
- add r0, r0, #1
- strb r1, [r6, r0]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022455F0: .word 0x0000306C
-_022455F4: .word 0x000021A0
-_022455F8: .word 0x0000310C
-_022455FC: .word 0x00002168
-_02245600: .word 0x00003108
-_02245604: .word 0x0000311C
-
- thumb_func_start MOD11_02245608
-MOD11_02245608: ; 0x02245608
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x58
- str r1, [sp, #4]
- str r0, [sp]
- ldr r1, _0224594C ; =0x00002DC8
- ldr r0, [sp, #4]
- add r4, r2, #0
- add r1, r0, r1
- mov r0, #0xc0
- mul r0, r4
- add r5, r1, r0
- str r5, [sp, #0x14]
- add r3, sp, #0x20
- mov r2, #7
-_02245624:
- ldmia r5!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _02245624
- ldr r0, [sp]
- bl MOD11_0222FF84
- add r6, r0, #0
- ldr r0, [sp]
- bl MOD11_0222FF74
- ldr r1, [sp, #4]
- lsl r2, r4, #4
- add r1, r1, r2
- ldr r2, _02245950 ; =0x000021A8
- mov r0, #0x27
- str r0, [r1, r2]
- ldr r1, [sp, #4]
- sub r2, #0x6c
- ldr r1, [r1, r2]
- add r0, #0xd9
- tst r0, r1
- bne _022456E2
- mov r5, #0
- cmp r6, #0
- ble _022456BE
- ldr r1, [sp, #4]
- ldr r2, _02245954 ; =0x00002DCC
- add r0, r1, #0
- add r2, r0, r2
- mov r0, #0x18
- mov ip, r0
- mov r7, #3
-_02245666:
- ldr r0, _02245958 ; =0x00002DB0
- ldr r3, [r1, r0]
- mov r0, #1
- lsl r0, r0, #0x1a
- tst r0, r3
- beq _02245688
- ldr r0, [r2]
- lsl r0, r0, #0x16
- lsr r0, r0, #0x1e
- cmp r4, r0
- bne _02245688
- ldr r0, _02245958 ; =0x00002DB0
- ldr r3, [r1, r0]
- ldr r0, _0224595C ; =0xFBFFFFFF
- and r3, r0
- ldr r0, _02245958 ; =0x00002DB0
- str r3, [r1, r0]
-_02245688:
- mov r0, #0xb7
- lsl r0, r0, #6
- ldr r3, [r1, r0]
- mov r0, #0x18
- tst r0, r3
- beq _022456B4
- ldr r0, [r2]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1e
- cmp r4, r0
- bne _022456B4
- mov r0, #0xb7
- lsl r0, r0, #6
- ldr r0, [r1, r0]
- mov r3, ip
- bic r0, r3
- mov r3, #0xb7
- lsl r3, r3, #6
- str r0, [r1, r3]
- ldr r0, [r2]
- bic r0, r7
- str r0, [r2]
-_022456B4:
- add r5, r5, #1
- add r1, #0xc0
- add r2, #0xc0
- cmp r5, r6
- blt _02245666
-_022456BE:
- mov r0, #0xc0
- mul r0, r4
- str r0, [sp, #0xc]
- ldr r2, [sp, #4]
- ldr r1, [sp, #0xc]
- mov r0, #0
- add r1, r2, r1
- ldr r2, _02245958 ; =0x00002DB0
- str r0, [r1, r2]
- ldr r1, [sp, #4]
- add r2, #0x10
- add r2, r1, r2
- ldr r1, [sp, #0xc]
- add r1, r2, r1
- str r1, [sp, #0x10]
- ldr r1, [sp, #0xc]
- str r0, [r2, r1]
- b _0224575A
-_022456E2:
- mov r0, #0xc0
- mul r0, r4
- str r0, [sp, #0xc]
- ldr r1, _02245958 ; =0x00002DB0
- ldr r0, [sp, #4]
- ldr r2, [sp, #0xc]
- add r0, r0, r1
- ldr r3, [r0, r2]
- ldr r2, _02245960 ; =0x15100007
- and r3, r2
- ldr r2, [sp, #0xc]
- str r3, [r0, r2]
- add r2, r1, #0
- ldr r0, [sp, #4]
- add r2, #0x10
- add r0, r0, r2
- ldr r2, [sp, #0xc]
- add r2, r0, r2
- str r2, [sp, #0x10]
- ldr r2, [sp, #0xc]
- ldr r3, [r0, r2]
- ldr r2, _02245964 ; =0x0FA3843F
- and r3, r2
- ldr r2, [sp, #0xc]
- str r3, [r0, r2]
- mov r2, #0
- cmp r6, #0
- ble _0224575A
- ldr r0, [sp, #4]
- add r1, #0x1c
- add r3, r0, #0
- add r1, r3, r1
- mov r7, #0x18
-_02245724:
- mov r3, #0xb7
- lsl r3, r3, #6
- ldr r5, [r0, r3]
- mov r3, #0x18
- tst r3, r5
- beq _02245750
- ldr r3, [r1]
- lsl r3, r3, #0x1e
- lsr r3, r3, #0x1e
- cmp r4, r3
- bne _02245750
- mov r3, #0xb7
- lsl r3, r3, #6
- ldr r5, [r0, r3]
- bic r5, r7
- str r5, [r0, r3]
- ldr r5, [r0, r3]
- mov r3, #0x10
- orr r5, r3
- mov r3, #0xb7
- lsl r3, r3, #6
- str r5, [r0, r3]
-_02245750:
- add r2, r2, #1
- add r0, #0xc0
- add r1, #0xc0
- cmp r2, r6
- blt _02245724
-_0224575A:
- mov r0, #0
- str r0, [sp, #8]
- cmp r6, #0
- ble _022457C2
- ldr r5, [sp, #4]
- ldr r1, _02245954 ; =0x00002DCC
- add r0, r5, #0
- add r7, r0, r1
-_0224576A:
- add r0, r4, #0
- bl MaskOfFlagNo
- ldr r1, _02245958 ; =0x00002DB0
- lsl r0, r0, #0x10
- ldr r1, [r5, r1]
- tst r0, r1
- beq _02245792
- add r0, r4, #0
- bl MaskOfFlagNo
- ldr r1, _02245958 ; =0x00002DB0
- lsl r2, r0, #0x10
- mov r0, #0
- mvn r0, r0
- ldr r1, [r5, r1]
- eor r0, r2
- and r1, r0
- ldr r0, _02245958 ; =0x00002DB0
- str r1, [r5, r0]
-_02245792:
- ldr r0, _02245958 ; =0x00002DB0
- ldr r1, [r5, r0]
- mov r0, #0xe
- lsl r0, r0, #0xc
- tst r0, r1
- beq _022457B4
- ldr r0, [r7]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1e
- cmp r4, r0
- bne _022457B4
- ldr r0, _02245958 ; =0x00002DB0
- ldr r1, [r5, r0]
- ldr r0, _02245968 ; =0xFFFF1FFF
- and r1, r0
- ldr r0, _02245958 ; =0x00002DB0
- str r1, [r5, r0]
-_022457B4:
- ldr r0, [sp, #8]
- add r5, #0xc0
- add r0, r0, #1
- add r7, #0xc0
- str r0, [sp, #8]
- cmp r0, r6
- blt _0224576A
-_022457C2:
- mov r2, #0
- add r1, r2, #0
-_022457C6:
- ldr r0, [sp, #0x14]
- strb r1, [r0, r2]
- add r2, r2, #1
- cmp r2, #0x38
- blo _022457C6
- ldr r1, _0224596C ; =0x0000213C
- ldr r0, [sp, #4]
- ldr r1, [r0, r1]
- mov r0, #1
- lsl r0, r0, #8
- tst r0, r1
- beq _0224587A
- ldr r1, [sp, #4]
- ldr r0, [sp, #0xc]
- ldr r2, [sp, #0x38]
- add r0, r1, r0
- ldr r1, _02245970 ; =0x00002DE0
- str r2, [r0, r1]
- ldr r0, [sp, #4]
- sub r1, #0x14
- add r0, r0, r1
- ldr r1, [sp, #0xc]
- mov r2, #3
- ldr r1, [r0, r1]
- bic r1, r2
- ldr r2, [sp, #0x24]
- lsl r2, r2, #0x1e
- lsr r3, r2, #0x1e
- mov r2, #3
- and r2, r3
- orr r2, r1
- ldr r1, [sp, #0xc]
- str r2, [r0, r1]
- ldr r3, [sp, #0x20]
- ldr r1, [sp, #0x14]
- lsl r3, r3, #0x11
- lsr r3, r3, #0x1e
- lsl r3, r3, #0x1e
- ldr r1, [r1]
- ldr r2, _02245974 ; =0xFFFF9FFF
- lsr r3, r3, #0x11
- and r1, r2
- orr r3, r1
- ldr r1, [sp, #0x14]
- str r3, [r1]
- ldr r1, [sp, #0xc]
- ldr r3, [r0, r1]
- asr r1, r2, #5
- ldr r2, [sp, #0x24]
- and r1, r3
- lsl r2, r2, #0x16
- lsr r2, r2, #0x1e
- lsl r2, r2, #0x1e
- lsr r2, r2, #0x16
- orr r2, r1
- ldr r1, [sp, #0xc]
- str r2, [r0, r1]
- ldr r2, [r0, r1]
- ldr r1, _02245968 ; =0xFFFF1FFF
- and r1, r2
- ldr r2, [sp, #0x24]
- lsl r2, r2, #0x10
- lsr r2, r2, #0x1d
- lsl r2, r2, #0x1d
- lsr r2, r2, #0x10
- orr r2, r1
- ldr r1, [sp, #0xc]
- str r2, [r0, r1]
- ldr r3, [sp, #0x24]
- ldr r1, [r0, r1]
- lsl r3, r3, #0xa
- ldr r2, _02245978 ; =0xFFC7FFFF
- lsr r3, r3, #0x1d
- lsl r3, r3, #0x1d
- and r1, r2
- lsr r3, r3, #0xa
- orr r3, r1
- ldr r1, [sp, #0xc]
- str r3, [r0, r1]
- ldr r3, [r0, r1]
- asr r1, r2, #3
- ldr r2, [sp, #0x24]
- and r1, r3
- lsl r2, r2, #0xd
- lsr r2, r2, #0x1d
- lsl r2, r2, #0x1d
- lsr r2, r2, #0xd
- orr r2, r1
- ldr r1, [sp, #0xc]
- str r2, [r0, r1]
-_0224587A:
- mov r0, #0xc0
- add r3, r0, #0
- ldr r2, [sp, #4]
- add r3, #0x90
- ldr r2, [r2, r3]
- add r1, r4, #0
- ldr r3, [sp, #4]
- mul r1, r0
- add r5, r0, #0
- add r1, r3, r1
- ldr r3, _0224597C ; =0x00002DD4
- add r2, r2, #1
- str r2, [r1, r3]
- ldr r2, [sp, #4]
- add r5, #0x90
- ldr r2, [r2, r5]
- add r0, #0x90
- add r5, r2, #1
- add r2, r3, #4
- str r5, [r1, r2]
- ldr r1, [sp, #0x14]
- lsl r7, r4, #1
- ldr r2, [r1]
- ldr r1, _02245980 ; =0xBFFFFFFF
- mov r5, #0
- and r1, r2
- ldr r2, [sp, #4]
- ldr r0, [r2, r0]
- add r0, r0, #1
- lsl r0, r0, #0x1f
- lsr r0, r0, #1
- orr r1, r0
- ldr r0, [sp, #0x14]
- str r1, [r0]
- add r0, r2, #0
- ldr r1, _02245984 ; =0x0000305C
- add r3, r0, r7
- add r0, r1, #0
- strh r5, [r3, r1]
- add r0, #8
- strh r5, [r3, r0]
- add r0, r1, #0
- mov r2, #0xff
- add r0, #0x10
- strh r2, [r3, r0]
- add r0, r1, #0
- add r0, #0x18
- strh r5, [r3, r0]
- add r0, r1, #0
- add r0, #0x20
- strh r5, [r3, r0]
- add r0, r1, #0
- add r0, #0x28
- strh r5, [r3, r0]
- ldr r0, [sp, #4]
- lsl r2, r4, #3
- add r0, r0, r2
- add r2, r1, #0
- add r2, #0x30
- strh r5, [r0, r2]
- add r2, r1, #0
- add r2, #0x32
- strh r5, [r0, r2]
- add r2, r1, #0
- add r2, #0x34
- strh r5, [r0, r2]
- add r2, r1, #0
- add r2, #0x36
- strh r5, [r0, r2]
- add r0, r1, #0
- add r0, #0x50
- strh r5, [r3, r0]
- add r0, r1, #0
- add r0, #0x68
- strh r5, [r3, r0]
- add r0, r1, #0
- add r0, #0x70
- strh r5, [r3, r0]
- add r0, r1, #0
- add r0, #0x78
- strh r5, [r3, r0]
- add r1, #0x80
- add r0, r4, #0
- strh r5, [r3, r1]
- bl MaskOfFlagNo
- mov r1, #6
- lsl r3, r0, #8
- sub r0, r5, #1
- ldr r2, [sp, #4]
- lsl r1, r1, #6
- ldr r2, [r2, r1]
- eor r0, r3
- and r2, r0
- ldr r0, [sp, #4]
- str r2, [r0, r1]
- ldr r0, [sp, #0x10]
- ldr r1, [r0]
- mov r0, #2
- lsl r0, r0, #0x16
- tst r0, r1
- beq _022459A2
- ldr r0, _02245988 ; =0x00002D42
- b _0224598C
- nop
-_0224594C: .word 0x00002DC8
-_02245950: .word 0x000021A8
-_02245954: .word 0x00002DCC
-_02245958: .word 0x00002DB0
-_0224595C: .word 0xFBFFFFFF
-_02245960: .word 0x15100007
-_02245964: .word 0x0FA3843F
-_02245968: .word 0xFFFF1FFF
-_0224596C: .word 0x0000213C
-_02245970: .word 0x00002DE0
-_02245974: .word 0xFFFF9FFF
-_02245978: .word 0xFFC7FFFF
-_0224597C: .word 0x00002DD4
-_02245980: .word 0xBFFFFFFF
-_02245984: .word 0x0000305C
-_02245988: .word 0x00002D42
-_0224598C:
- ldr r1, [sp, #4]
- add r5, r1, r0
- ldr r1, [sp, #0xc]
- ldrh r3, [r5, r1]
- add r1, r0, #2
- ldr r0, [sp, #4]
- add r2, r0, r1
- ldr r0, [sp, #0xc]
- ldrh r1, [r2, r0]
- strh r1, [r5, r0]
- strh r3, [r2, r0]
-_022459A2:
- mov r5, #0
- cmp r6, #0
- ble _022459E6
- ldr r0, [sp, #4]
- str r0, [sp, #0x18]
- add r7, r0, r7
-_022459AE:
- cmp r5, r4
- beq _022459D2
- ldr r0, [sp]
- add r1, r5, #0
- bl MOD11_02230270
- str r0, [sp, #0x1c]
- ldr r0, [sp]
- add r1, r4, #0
- bl MOD11_02230270
- ldr r1, [sp, #0x1c]
- cmp r1, r0
- beq _022459D2
- ldr r1, [sp, #0x18]
- ldr r0, _02245A08 ; =0x00003084
- mov r2, #0
- strh r2, [r1, r0]
-_022459D2:
- ldr r0, _02245A0C ; =0x0000308C
- mov r1, #0
- strh r1, [r7, r0]
- ldr r0, [sp, #0x18]
- add r5, r5, #1
- add r0, r0, #2
- str r0, [sp, #0x18]
- add r7, #8
- cmp r5, r6
- blt _022459AE
-_022459E6:
- lsl r1, r4, #0x18
- ldr r0, [sp, #4]
- lsr r1, r1, #0x18
- bl MOD11_0224C818
- lsl r1, r4, #0x18
- ldr r0, [sp, #4]
- lsr r1, r1, #0x18
- bl MOD11_0224C830
- lsl r1, r4, #0x18
- ldr r0, [sp, #4]
- lsr r1, r1, #0x18
- bl MOD11_0224C83C
- add sp, #0x58
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02245A08: .word 0x00003084
-_02245A0C: .word 0x0000308C
-
- thumb_func_start MOD11_02245A10
-MOD11_02245A10: ; 0x02245A10
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- str r1, [sp, #4]
- str r0, [sp]
- add r5, r2, #0
- bl MOD11_0222FF84
- str r0, [sp, #0xc]
- mov r0, #0xc0
- mul r0, r5
- ldr r1, [sp, #4]
- str r0, [sp, #8]
- add r3, r1, r0
- ldr r0, _02245C34 ; =0x00002D58
- mov r2, #0
- mov r1, #6
-_02245A30:
- add r2, r2, #1
- strb r1, [r3, r0]
- add r3, r3, #1
- cmp r2, #8
- blt _02245A30
- mov r0, #0xc0
- add r1, r5, #0
- mul r1, r0
- ldr r0, [sp, #4]
- mov r7, #0
- add r2, r0, r1
- ldr r1, _02245C38 ; =0x00002DB0
- add r0, r1, #0
- str r7, [r2, r1]
- add r0, #0x10
- str r7, [r2, r0]
- ldr r0, [sp, #0xc]
- cmp r0, #0
- ble _02245AD6
- ldr r4, [sp, #4]
- add r1, #0x1c
- add r0, r4, #0
- add r6, r0, r1
-_02245A5E:
- ldr r0, _02245C38 ; =0x00002DB0
- ldr r1, [r4, r0]
- mov r0, #1
- lsl r0, r0, #0x1a
- tst r0, r1
- beq _02245A80
- ldr r0, [r6]
- lsl r0, r0, #0x16
- lsr r0, r0, #0x1e
- cmp r5, r0
- bne _02245A80
- ldr r0, _02245C38 ; =0x00002DB0
- ldr r1, [r4, r0]
- ldr r0, _02245C3C ; =0xFBFFFFFF
- and r1, r0
- ldr r0, _02245C38 ; =0x00002DB0
- str r1, [r4, r0]
-_02245A80:
- add r0, r5, #0
- bl MaskOfFlagNo
- ldr r1, _02245C38 ; =0x00002DB0
- lsl r0, r0, #0x10
- ldr r1, [r4, r1]
- tst r0, r1
- beq _02245AA8
- add r0, r5, #0
- bl MaskOfFlagNo
- ldr r1, _02245C38 ; =0x00002DB0
- lsl r2, r0, #0x10
- mov r0, #0
- mvn r0, r0
- ldr r1, [r4, r1]
- eor r0, r2
- and r1, r0
- ldr r0, _02245C38 ; =0x00002DB0
- str r1, [r4, r0]
-_02245AA8:
- ldr r0, _02245C38 ; =0x00002DB0
- ldr r1, [r4, r0]
- mov r0, #0xe
- lsl r0, r0, #0xc
- tst r0, r1
- beq _02245ACA
- ldr r0, [r6]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1e
- cmp r5, r0
- bne _02245ACA
- ldr r0, _02245C38 ; =0x00002DB0
- ldr r1, [r4, r0]
- ldr r0, _02245C40 ; =0xFFFF1FFF
- and r1, r0
- ldr r0, _02245C38 ; =0x00002DB0
- str r1, [r4, r0]
-_02245ACA:
- ldr r0, [sp, #0xc]
- add r7, r7, #1
- add r4, #0xc0
- add r6, #0xc0
- cmp r7, r0
- blt _02245A5E
-_02245AD6:
- ldr r1, _02245C44 ; =0x00002DC8
- ldr r0, [sp, #4]
- add r1, r0, r1
- ldr r0, [sp, #8]
- add r6, r1, r0
- mov r1, #0
- add r0, r1, #0
-_02245AE4:
- strb r0, [r6, r1]
- add r1, r1, #1
- cmp r1, #0x38
- blo _02245AE4
- mov r2, #0x75
- ldr r1, [sp, #4]
- lsl r2, r2, #2
- add r2, r1, r2
- lsl r1, r5, #6
- add r1, r2, r1
- mov r4, #0
-_02245AFA:
- strb r4, [r1, r0]
- add r0, r0, #1
- cmp r0, #0x40
- blo _02245AFA
- mov r2, #0xc0
- add r3, r2, #0
- ldr r0, [sp, #4]
- add r3, #0x90
- ldr r0, [r0, r3]
- add r1, r5, #0
- ldr r3, [sp, #4]
- mul r1, r2
- add r3, r3, r1
- add r1, r2, #0
- ldr r7, _02245C48 ; =0x00002DD4
- add r0, r0, #1
- str r0, [r3, r7]
- ldr r0, [sp, #4]
- add r1, #0x90
- ldr r0, [r0, r1]
- add r1, r7, #4
- add r0, r0, #1
- str r0, [r3, r1]
- ldr r1, [r6]
- ldr r0, _02245C4C ; =0xBFFFFFFF
- add r2, #0x90
- and r0, r1
- ldr r1, [sp, #4]
- mov r3, #0xff
- ldr r1, [r1, r2]
- add r1, r1, #1
- lsl r1, r1, #0x1f
- lsr r1, r1, #1
- orr r0, r1
- str r0, [r6]
- ldr r0, [sp, #4]
- lsl r6, r5, #1
- add r2, r0, r6
- ldr r0, _02245C50 ; =0x0000305C
- add r1, r0, #0
- strh r4, [r2, r0]
- add r1, #8
- strh r4, [r2, r1]
- add r1, r0, #0
- add r1, #0x10
- strh r3, [r2, r1]
- add r1, r0, #0
- add r1, #0x18
- strh r4, [r2, r1]
- add r1, r0, #0
- add r1, #0x20
- strh r4, [r2, r1]
- add r1, r0, #0
- add r1, #0x28
- strh r4, [r2, r1]
- ldr r1, [sp, #4]
- lsl r3, r5, #3
- add r1, r1, r3
- add r3, r0, #0
- add r3, #0x30
- strh r4, [r1, r3]
- add r3, r0, #0
- add r3, #0x32
- strh r4, [r1, r3]
- add r3, r0, #0
- add r3, #0x34
- strh r4, [r1, r3]
- add r3, r0, #0
- add r3, #0x36
- strh r4, [r1, r3]
- add r1, r0, #0
- add r1, #0x50
- strh r4, [r2, r1]
- add r1, r0, #0
- add r1, #0x68
- strh r4, [r2, r1]
- add r1, r0, #0
- add r1, #0x70
- strh r4, [r2, r1]
- add r1, r0, #0
- add r1, #0x78
- strh r4, [r2, r1]
- add r0, #0x80
- strh r4, [r2, r0]
- add r0, r5, #0
- bl MaskOfFlagNo
- mov r1, #6
- lsl r3, r0, #8
- mov r0, #0
- mvn r0, r0
- ldr r2, [sp, #4]
- lsl r1, r1, #6
- ldr r2, [r2, r1]
- eor r0, r3
- and r2, r0
- ldr r0, [sp, #4]
- mov r4, #0
- str r2, [r0, r1]
- ldr r0, [sp, #0xc]
- cmp r0, #0
- ble _02245C00
- ldr r7, [sp, #4]
- add r0, r7, #0
- add r6, r0, r6
-_02245BCC:
- cmp r4, r5
- beq _02245BEE
- ldr r0, [sp]
- add r1, r4, #0
- bl MOD11_02230270
- str r0, [sp, #0x10]
- ldr r0, [sp]
- add r1, r5, #0
- bl MOD11_02230270
- ldr r1, [sp, #0x10]
- cmp r1, r0
- beq _02245BEE
- ldr r0, _02245C54 ; =0x00003084
- mov r1, #0
- strh r1, [r7, r0]
-_02245BEE:
- ldr r0, _02245C58 ; =0x0000308C
- mov r1, #0
- strh r1, [r6, r0]
- ldr r0, [sp, #0xc]
- add r4, r4, #1
- add r7, r7, #2
- add r6, #8
- cmp r4, r0
- blt _02245BCC
-_02245C00:
- mov r1, #0x4f
- ldr r0, [sp, #4]
- lsl r1, r1, #2
- add r3, r0, r1
- lsl r2, r5, #2
- ldr r1, [r3, r2]
- mov r0, #1
- bic r1, r0
- str r1, [r3, r2]
- lsl r1, r5, #0x18
- ldr r0, [sp, #4]
- lsr r1, r1, #0x18
- bl MOD11_0224C818
- lsl r1, r5, #0x18
- ldr r0, [sp, #4]
- lsr r1, r1, #0x18
- bl MOD11_0224C830
- lsl r1, r5, #0x18
- ldr r0, [sp, #4]
- lsr r1, r1, #0x18
- bl MOD11_0224C83C
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02245C34: .word 0x00002D58
-_02245C38: .word 0x00002DB0
-_02245C3C: .word 0xFBFFFFFF
-_02245C40: .word 0xFFFF1FFF
-_02245C44: .word 0x00002DC8
-_02245C48: .word 0x00002DD4
-_02245C4C: .word 0xBFFFFFFF
-_02245C50: .word 0x0000305C
-_02245C54: .word 0x00003084
-_02245C58: .word 0x0000308C
-
- thumb_func_start MOD11_02245C5C
-MOD11_02245C5C: ; 0x02245C5C
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- mov r0, #0x75
- add r5, r1, #0
- lsl r0, r0, #2
- add r7, r5, r0
- mov r0, #0xd1
- lsl r0, r0, #2
- add r6, r5, r0
- mov r0, #8
- add r4, r5, #0
- str r0, [sp, #8]
-_02245C7A:
- mov r0, #0
- add r1, r7, #0
- mov r2, #0x40
- bl MIi_CpuClearFast
- mov r0, #0
- add r1, r6, #0
- mov r2, #4
- bl MIi_CpuClearFast
- ldr r0, _02245D24 ; =0x00002DB0
- ldr r1, [r4, r0]
- ldr r0, [sp, #8]
- bic r1, r0
- ldr r0, _02245D24 ; =0x00002DB0
- str r1, [r4, r0]
- add r0, #0x20
- ldr r0, [r4, r0]
- add r1, r0, #1
- mov r0, #0x15
- lsl r0, r0, #4
- ldr r0, [r5, r0]
- cmp r1, r0
- bge _02245CB6
- ldr r0, _02245D24 ; =0x00002DB0
- ldr r1, [r4, r0]
- ldr r0, _02245D28 ; =0xFFBFFFFF
- and r1, r0
- ldr r0, _02245D24 ; =0x00002DB0
- str r1, [r4, r0]
-_02245CB6:
- ldr r0, _02245D2C ; =0x00002DAC
- ldr r1, [r4, r0]
- mov r0, #7
- tst r0, r1
- beq _02245CD6
- ldr r0, _02245D24 ; =0x00002DB0
- ldr r1, [r4, r0]
- mov r0, #1
- lsl r0, r0, #0xc
- tst r0, r1
- beq _02245CD6
- ldr r0, [sp]
- ldr r2, [sp, #4]
- add r1, r5, #0
- bl MOD11_022451F0
-_02245CD6:
- ldr r0, _02245D2C ; =0x00002DAC
- ldr r1, [r4, r0]
- mov r0, #7
- tst r0, r1
- beq _02245CF8
- ldr r0, _02245D24 ; =0x00002DB0
- ldr r1, [r4, r0]
- mov r0, #3
- lsl r0, r0, #0xa
- tst r0, r1
- beq _02245CF8
- ldr r0, _02245D24 ; =0x00002DB0
- ldr r1, [r4, r0]
- ldr r0, _02245D30 ; =0xFFFFF3FF
- and r1, r0
- ldr r0, _02245D24 ; =0x00002DB0
- str r1, [r4, r0]
-_02245CF8:
- ldr r0, [sp, #4]
- add r7, #0x40
- add r0, r0, #1
- add r6, r6, #4
- add r4, #0xc0
- str r0, [sp, #4]
- cmp r0, #4
- blt _02245C7A
- mov r2, #0x71
- lsl r2, r2, #2
- ldr r0, [r5, r2]
- ldr r1, _02245D34 ; =0xFFEFFFFF
- and r0, r1
- str r0, [r5, r2]
- add r0, r2, #0
- add r0, #8
- ldr r0, [r5, r0]
- add r2, #8
- and r0, r1
- str r0, [r5, r2]
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02245D24: .word 0x00002DB0
-_02245D28: .word 0xFFBFFFFF
-_02245D2C: .word 0x00002DAC
-_02245D30: .word 0xFFFFF3FF
-_02245D34: .word 0xFFEFFFFF
-
- thumb_func_start MOD11_02245D38
-MOD11_02245D38: ; 0x02245D38
- push {r4, r5, r6, r7, lr}
- sub sp, #0x5c
- str r0, [sp]
- ldr r0, [sp, #0x70]
- add r7, r1, #0
- str r0, [sp, #0x70]
- str r2, [sp, #4]
- add r0, r7, #0
- add r1, r2, #0
- add r5, r3, #0
- bl MOD11_02249D90
- str r0, [sp, #0x34]
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- add r4, r7, r1
- str r1, [sp, #0x38]
- ldr r0, [sp, #0x70]
- mov r1, #1
- and r0, r1
- str r0, [sp, #0x2c]
- ldr r0, [sp, #0x70]
- mov r1, #2
- and r0, r1
- str r0, [sp, #0x28]
- ldr r0, [sp, #0x70]
- mov r1, #4
- and r0, r1
- str r0, [sp, #0x24]
- ldr r0, [sp, #4]
- mov r1, #8
- lsl r0, r0, #1
- add r0, r7, r0
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x70]
- mov r2, #0x10
- and r0, r1
- ldr r1, _02245F50 ; =0x00002DC8
- str r0, [sp, #0x1c]
- add r0, r7, r1
- str r0, [sp, #0x3c]
- ldr r0, [sp, #0x70]
- sub r1, #0x88
- and r0, r2
- str r0, [sp, #0x18]
- ldr r0, [sp, #0x70]
- mov r2, #0x20
- and r0, r2
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x70]
- mov r2, #0x40
- and r0, r2
- str r0, [sp, #0x10]
- ldr r2, [sp, #0x70]
- mov r0, #0x80
- and r2, r0
- str r2, [sp, #0xc]
- lsl r2, r0, #2
- ldr r0, [sp, #0x70]
- mov r6, #0
- and r0, r2
- str r0, [sp, #8]
- add r0, r7, r1
- str r0, [sp, #0x40]
- ldr r0, _02245F54 ; =0x00002DE8
- str r4, [sp, #0x30]
- add r0, r4, r0
- str r0, [sp, #0x44]
- ldr r0, _02245F58 ; =0x00002DB0
- add r0, r4, r0
- str r0, [sp, #0x48]
- ldr r0, _02245F5C ; =0x00002DEC
- add r0, r4, r0
- str r0, [sp, #0x4c]
- ldr r0, _02245F60 ; =0x00002DF8
- add r0, r4, r0
- str r0, [sp, #0x50]
- ldr r0, _02245F60 ; =0x00002DF8
- add r0, r4, r0
- str r0, [sp, #0x58]
- ldr r0, _02245F60 ; =0x00002DF8
- add r0, r4, r0
- str r0, [sp, #0x54]
-_02245DE0:
- ldr r0, _02245F64 ; =0x00002D4C
- ldrh r0, [r4, r0]
- cmp r0, #0
- bne _02245DF6
- ldr r0, [sp, #0x2c]
- cmp r0, #0
- beq _02245DF6
- add r0, r6, #0
- bl MaskOfFlagNo
- orr r5, r0
-_02245DF6:
- ldr r1, [sp, #0x30]
- ldr r0, _02245F68 ; =0x00002D6C
- ldrb r0, [r1, r0]
- cmp r0, #0
- bne _02245E0E
- ldr r0, [sp, #0x28]
- cmp r0, #0
- beq _02245E0E
- add r0, r6, #0
- bl MaskOfFlagNo
- orr r5, r0
-_02245E0E:
- ldr r0, [sp, #0x44]
- ldrh r1, [r0]
- ldr r0, _02245F64 ; =0x00002D4C
- ldrh r0, [r4, r0]
- cmp r1, r0
- bne _02245E28
- ldr r0, [sp, #0x24]
- cmp r0, #0
- beq _02245E28
- add r0, r6, #0
- bl MaskOfFlagNo
- orr r5, r0
-_02245E28:
- ldr r1, [sp, #0x20]
- ldr r0, _02245F6C ; =0x0000307C
- ldrh r1, [r1, r0]
- ldr r0, _02245F64 ; =0x00002D4C
- ldrh r0, [r4, r0]
- cmp r1, r0
- bne _02245E50
- ldr r0, [sp, #0x1c]
- cmp r0, #0
- beq _02245E50
- ldr r0, [sp, #0x48]
- ldr r1, [r0]
- mov r0, #2
- lsl r0, r0, #0x1e
- tst r0, r1
- beq _02245E50
- add r0, r6, #0
- bl MaskOfFlagNo
- orr r5, r0
-_02245E50:
- ldr r1, [sp, #0x3c]
- ldr r0, [sp, #0x38]
- ldr r0, [r1, r0]
- lsl r0, r0, #0x15
- lsr r0, r0, #0x1d
- beq _02245E7A
- ldr r0, [sp, #0x18]
- cmp r0, #0
- beq _02245E7A
- ldr r0, _02245F64 ; =0x00002D4C
- ldrh r0, [r4, r0]
- lsl r0, r0, #4
- add r1, r7, r0
- ldr r0, _02245F70 ; =0x000003E1
- ldrb r0, [r1, r0]
- cmp r0, #0
- bne _02245E7A
- add r0, r6, #0
- bl MaskOfFlagNo
- orr r5, r0
-_02245E7A:
- ldr r3, _02245F64 ; =0x00002D4C
- ldr r0, [sp]
- ldrh r3, [r4, r3]
- ldr r2, [sp, #4]
- add r1, r7, #0
- bl MOD11_022471C4
- cmp r0, #0
- beq _02245E9A
- ldr r0, [sp, #0x14]
- cmp r0, #0
- beq _02245E9A
- add r0, r6, #0
- bl MaskOfFlagNo
- orr r5, r0
-_02245E9A:
- ldr r3, _02245F64 ; =0x00002D4C
- ldr r0, [sp]
- ldrh r3, [r4, r3]
- ldr r2, [sp, #4]
- add r1, r7, #0
- bl MOD11_02247314
- cmp r0, #0
- beq _02245EBA
- ldr r0, [sp, #0x10]
- cmp r0, #0
- beq _02245EBA
- add r0, r6, #0
- bl MaskOfFlagNo
- orr r5, r0
-_02245EBA:
- ldr r3, _02245F64 ; =0x00002D4C
- ldr r0, [sp]
- ldrh r3, [r4, r3]
- ldr r2, [sp, #4]
- add r1, r7, #0
- bl MOD11_02247348
- cmp r0, #0
- beq _02245EDA
- ldr r0, [sp, #0xc]
- cmp r0, #0
- beq _02245EDA
- add r0, r6, #0
- bl MaskOfFlagNo
- orr r5, r0
-_02245EDA:
- ldr r0, [sp, #0x4c]
- ldrh r1, [r0]
- cmp r1, #0
- beq _02245EF2
- ldr r0, _02245F64 ; =0x00002D4C
- ldrh r0, [r4, r0]
- cmp r1, r0
- beq _02245EF2
- add r0, r6, #0
- bl MaskOfFlagNo
- orr r5, r0
-_02245EF2:
- ldr r0, [sp, #0x34]
- cmp r0, #0x36
- beq _02245F00
- cmp r0, #0x72
- beq _02245F00
- cmp r0, #0x7c
- bne _02245F38
-_02245F00:
- ldr r0, [sp, #8]
- cmp r0, #0
- beq _02245F38
- ldr r1, [sp, #0x40]
- ldr r0, [sp, #0x38]
- add r0, r1, r0
- ldr r1, [sp, #0x50]
- ldrh r1, [r1]
- bl MOD11_022461AC
- cmp r0, #4
- bne _02245F20
- ldr r0, [sp, #0x54]
- mov r1, #0
- strh r1, [r0]
- b _02245F38
-_02245F20:
- ldr r0, [sp, #0x58]
- ldrh r1, [r0]
- cmp r1, #0
- beq _02245F38
- ldr r0, _02245F64 ; =0x00002D4C
- ldrh r0, [r4, r0]
- cmp r1, r0
- beq _02245F38
- add r0, r6, #0
- bl MaskOfFlagNo
- orr r5, r0
-_02245F38:
- ldr r0, [sp, #0x30]
- add r6, r6, #1
- add r0, r0, #1
- add r4, r4, #2
- str r0, [sp, #0x30]
- cmp r6, #4
- bge _02245F48
- b _02245DE0
-_02245F48:
- add r0, r5, #0
- add sp, #0x5c
- pop {r4, r5, r6, r7, pc}
- nop
-_02245F50: .word 0x00002DC8
-_02245F54: .word 0x00002DE8
-_02245F58: .word 0x00002DB0
-_02245F5C: .word 0x00002DEC
-_02245F60: .word 0x00002DF8
-_02245F64: .word 0x00002D4C
-_02245F68: .word 0x00002D6C
-_02245F6C: .word 0x0000307C
-_02245F70: .word 0x000003E1
-
- thumb_func_start MOD11_02245F74
-MOD11_02245F74: ; 0x02245F74
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x28
- add r7, r3, #0
- mov r3, #1
- str r3, [sp, #8]
- mov r3, #4
- str r3, [sp]
- mov r3, #0
- str r0, [sp, #4]
- add r5, r1, #0
- add r6, r2, #0
- ldr r4, [sp, #0x40]
- bl MOD11_02245D38
- str r0, [sp, #0xc]
- add r0, r7, #0
- bl MaskOfFlagNo
- ldr r1, [sp, #0xc]
- tst r0, r1
- beq _02245FC6
- mov r0, #0xa
- strb r0, [r4, #1]
- ldr r0, _02246188 ; =0x00000261
- add r1, r6, #0
- strh r0, [r4, #2]
- add r0, r5, #0
- bl MOD11_0224682C
- str r0, [r4, #4]
- mov r0, #0xc0
- mul r0, r6
- add r1, r5, r0
- lsl r0, r7, #1
- add r1, r1, r0
- ldr r0, _0224618C ; =0x00002D4C
- ldrh r0, [r1, r0]
- str r0, [r4, #8]
- mov r0, #0
- str r0, [sp, #8]
- b _02246182
-_02245FC6:
- mov r0, #8
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- add r2, r6, #0
- mov r3, #0
- bl MOD11_02245D38
- str r0, [sp, #0x10]
- add r0, r7, #0
- bl MaskOfFlagNo
- ldr r1, [sp, #0x10]
- tst r0, r1
- beq _02245FFE
- mov r0, #2
- strb r0, [r4, #1]
- mov r0, #0x99
- lsl r0, r0, #2
- strh r0, [r4, #2]
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0224682C
- str r0, [r4, #4]
- mov r0, #0
- str r0, [sp, #8]
- b _02246182
-_02245FFE:
- mov r0, #0x10
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- add r2, r6, #0
- mov r3, #0
- bl MOD11_02245D38
- str r0, [sp, #0x14]
- add r0, r7, #0
- bl MaskOfFlagNo
- ldr r1, [sp, #0x14]
- tst r0, r1
- beq _02246044
- mov r0, #0xa
- strb r0, [r4, #1]
- ldr r0, _02246190 ; =0x00000265
- add r1, r6, #0
- strh r0, [r4, #2]
- add r0, r5, #0
- bl MOD11_0224682C
- str r0, [r4, #4]
- mov r0, #0xc0
- mul r0, r6
- add r1, r5, r0
- lsl r0, r7, #1
- add r1, r1, r0
- ldr r0, _0224618C ; =0x00002D4C
- ldrh r0, [r1, r0]
- str r0, [r4, #8]
- mov r0, #0
- str r0, [sp, #8]
- b _02246182
-_02246044:
- mov r0, #0x20
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- add r2, r6, #0
- mov r3, #0
- bl MOD11_02245D38
- str r0, [sp, #0x18]
- add r0, r7, #0
- bl MaskOfFlagNo
- ldr r1, [sp, #0x18]
- tst r0, r1
- beq _0224608C
- mov r0, #0xa
- strb r0, [r4, #1]
- mov r0, #0x9a
- lsl r0, r0, #2
- strh r0, [r4, #2]
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0224682C
- str r0, [r4, #4]
- mov r0, #0xc0
- mul r0, r6
- add r1, r5, r0
- lsl r0, r7, #1
- add r1, r1, r0
- ldr r0, _0224618C ; =0x00002D4C
- ldrh r0, [r1, r0]
- str r0, [r4, #8]
- mov r0, #0
- str r0, [sp, #8]
- b _02246182
-_0224608C:
- mov r0, #0x40
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- add r2, r6, #0
- mov r3, #0
- bl MOD11_02245D38
- str r0, [sp, #0x1c]
- add r0, r7, #0
- bl MaskOfFlagNo
- ldr r1, [sp, #0x1c]
- tst r0, r1
- beq _022460D2
- mov r0, #0xa
- strb r0, [r4, #1]
- ldr r0, _02246194 ; =0x000003E9
- add r1, r6, #0
- strh r0, [r4, #2]
- add r0, r5, #0
- bl MOD11_0224682C
- str r0, [r4, #4]
- mov r0, #0xc0
- mul r0, r6
- add r1, r5, r0
- lsl r0, r7, #1
- add r1, r1, r0
- ldr r0, _0224618C ; =0x00002D4C
- ldrh r0, [r1, r0]
- str r0, [r4, #8]
- mov r0, #0
- str r0, [sp, #8]
- b _02246182
-_022460D2:
- mov r0, #0x80
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- add r2, r6, #0
- mov r3, #0
- bl MOD11_02245D38
- str r0, [sp, #0x20]
- add r0, r7, #0
- bl MaskOfFlagNo
- ldr r1, [sp, #0x20]
- tst r0, r1
- beq _0224611C
- mov r0, #0x22
- strb r0, [r4, #1]
- ldr r0, _02246198 ; =0x00000421
- add r1, r6, #0
- strh r0, [r4, #2]
- add r0, r5, #0
- bl MOD11_0224682C
- str r0, [r4, #4]
- ldr r0, _0224619C ; =0x00000179
- str r0, [r4, #8]
- mov r0, #0xc0
- mul r0, r6
- add r1, r5, r0
- lsl r0, r7, #1
- add r1, r1, r0
- ldr r0, _0224618C ; =0x00002D4C
- ldrh r0, [r1, r0]
- str r0, [r4, #0xc]
- mov r0, #0
- str r0, [sp, #8]
- b _02246182
-_0224611C:
- mov r0, #2
- lsl r0, r0, #8
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- add r2, r6, #0
- mov r3, #0
- bl MOD11_02245D38
- str r0, [sp, #0x24]
- add r0, r7, #0
- bl MaskOfFlagNo
- ldr r1, [sp, #0x24]
- tst r0, r1
- beq _0224615C
- mov r0, #0x18
- strb r0, [r4, #1]
- ldr r0, _022461A0 ; =0x0000038F
- strh r0, [r4, #2]
- mov r0, #0xc0
- mul r0, r6
- add r2, r5, r0
- ldr r0, _022461A4 ; =0x00002DB8
- ldrh r1, [r2, r0]
- add r0, #0x40
- str r1, [r4, #4]
- ldrh r0, [r2, r0]
- str r0, [r4, #8]
- mov r0, #0
- str r0, [sp, #8]
- b _02246182
-_0224615C:
- mov r0, #2
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- add r2, r6, #0
- mov r3, #0
- bl MOD11_02245D38
- add r5, r0, #0
- add r0, r7, #0
- bl MaskOfFlagNo
- tst r0, r5
- beq _02246182
- mov r0, #0
- str r0, [sp, #8]
- strb r0, [r4, #1]
- ldr r0, _022461A8 ; =0x00000337
- strh r0, [r4, #2]
-_02246182:
- ldr r0, [sp, #8]
- add sp, #0x28
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02246188: .word 0x00000261
-_0224618C: .word 0x00002D4C
-_02246190: .word 0x00000265
-_02246194: .word 0x000003E9
-_02246198: .word 0x00000421
-_0224619C: .word 0x00000179
-_022461A0: .word 0x0000038F
-_022461A4: .word 0x00002DB8
-_022461A8: .word 0x00000337
-
- thumb_func_start MOD11_022461AC
-MOD11_022461AC: ; 0x022461AC
- mov r3, #0
-_022461AE:
- ldrh r2, [r0, #0xc]
- cmp r1, r2
- beq _022461BC
- add r3, r3, #1
- add r0, r0, #2
- cmp r3, #4
- blt _022461AE
-_022461BC:
- add r0, r3, #0
- bx lr
-
- thumb_func_start MOD11_022461C0
-MOD11_022461C0: ; 0x022461C0
- push {r4, r5, r6, lr}
- add r6, r2, #0
- add r1, r6, #0
- add r5, r0, #0
- add r4, r3, #0
- bl MOD11_02249D90
- mov r1, #1
- cmp r0, #0x69
- beq _022461E6
- mov r0, #0xc0
- mul r0, r6
- add r2, r5, r0
- mov r0, #0xb7
- lsl r0, r0, #6
- ldr r2, [r2, r0]
- lsl r0, r1, #0xa
- tst r0, r2
- beq _022461FC
-_022461E6:
- lsl r0, r4, #1
- add r2, r4, r0
- ldr r0, _0224626C ; =0x0225E379
- ldrb r0, [r0, r2]
- cmp r0, #2
- bne _022461FC
- ldr r0, _02246270 ; =0x0225E37A
- ldrb r0, [r0, r2]
- cmp r0, #0
- bne _022461FC
- mov r1, #0
-_022461FC:
- lsl r0, r6, #6
- add r2, r5, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r2, r0]
- lsl r0, r0, #0x19
- lsr r0, r0, #0x1f
- beq _0224621A
- lsl r0, r4, #1
- add r2, r4, r0
- ldr r0, _0224626C ; =0x0225E379
- ldrb r0, [r0, r2]
- cmp r0, #2
- bne _0224621A
- mov r1, #0
-_0224621A:
- mov r0, #6
- lsl r0, r0, #6
- ldr r2, [r5, r0]
- mov r0, #7
- lsl r0, r0, #0xc
- tst r0, r2
- beq _0224623E
- lsl r0, r4, #1
- add r2, r4, r0
- ldr r0, _0224626C ; =0x0225E379
- ldrb r0, [r0, r2]
- cmp r0, #2
- bne _0224623E
- ldr r0, _02246270 ; =0x0225E37A
- ldrb r0, [r0, r2]
- cmp r0, #0
- bne _0224623E
- mov r1, #0
-_0224623E:
- mov r0, #0xc0
- mul r0, r6
- add r2, r5, r0
- mov r0, #0xb7
- lsl r0, r0, #6
- ldr r2, [r2, r0]
- mov r0, #1
- lsl r0, r0, #0x16
- tst r0, r2
- beq _02246268
- lsl r0, r4, #1
- add r2, r4, r0
- ldr r0, _0224626C ; =0x0225E379
- ldrb r0, [r0, r2]
- cmp r0, #0x11
- bne _02246268
- ldr r0, _02246270 ; =0x0225E37A
- ldrb r0, [r0, r2]
- cmp r0, #0
- bne _02246268
- mov r1, #0
-_02246268:
- add r0, r1, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0224626C: .word 0x0225E379
-_02246270: .word 0x0225E37A
-
- thumb_func_start MOD11_02246274
-MOD11_02246274: ; 0x02246274
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x30
- ldr r0, [sp, #0x50]
- add r5, r1, #0
- str r0, [sp, #0x50]
- ldr r0, [sp, #0x54]
- str r2, [sp, #8]
- str r0, [sp, #0x54]
- add r0, r2, #0
- add r4, r3, #0
- ldr r7, [sp, #0x48]
- ldr r6, [sp, #0x4c]
- cmp r0, #0xa5
- bne _02246296
- ldr r0, [sp, #0x50]
- add sp, #0x30
- pop {r3, r4, r5, r6, r7, pc}
-_02246296:
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_02249D90
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x24]
- add r0, r5, #0
- add r1, r7, #0
- mov r2, #0
- bl MOD11_02249DA4
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x1c]
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02249D90
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x20]
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0
- bl MOD11_02249DA4
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_02246D1C
- cmp r0, #0x60
- bne _022462DE
- mov r0, #0
- str r0, [sp, #0x28]
- b _022462F6
-_022462DE:
- cmp r4, #0
- beq _022462EA
- lsl r0, r4, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x28]
- b _022462F6
-_022462EA:
- ldr r0, [sp, #8]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _02246588 ; =0x000003E2
- ldrb r0, [r1, r0]
- str r0, [sp, #0x28]
-_022462F6:
- ldr r0, [sp, #8]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _0224658C ; =0x000003E1
- ldrb r0, [r1, r0]
- str r0, [sp, #0x14]
- ldr r0, _02246590 ; =0x0000213C
- ldr r1, [r5, r0]
- mov r0, #2
- lsl r0, r0, #0xa
- tst r0, r1
- bne _02246354
- add r0, r5, #0
- add r1, r7, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- ldr r1, [sp, #0x28]
- cmp r1, r0
- beq _02246332
- add r0, r5, #0
- add r1, r7, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- ldr r1, [sp, #0x28]
- cmp r1, r0
- bne _02246354
-_02246332:
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_02246D1C
- cmp r0, #0x5b
- bne _02246346
- ldr r0, [sp, #0x50]
- lsl r0, r0, #1
- str r0, [sp, #0x50]
- b _02246354
-_02246346:
- ldr r1, [sp, #0x50]
- mov r0, #0xf
- mul r0, r1
- mov r1, #0xa
- bl _s32_div_f
- str r0, [sp, #0x50]
-_02246354:
- add r0, r5, #0
- add r1, r7, #0
- add r2, r6, #0
- mov r3, #0x1a
- bl MOD11_02246D84
- cmp r0, #1
- bne _02246380
- ldr r0, [sp, #0x28]
- cmp r0, #4
- bne _02246380
- ldr r0, [sp, #0x20]
- cmp r0, #0x69
- beq _02246380
- ldr r0, [sp, #0x54]
- ldr r1, [r0]
- mov r0, #2
- lsl r0, r0, #0xa
- orr r1, r0
- ldr r0, [sp, #0x54]
- str r1, [r0]
- b _0224649C
-_02246380:
- mov r0, #0xc0
- add r1, r6, #0
- mul r1, r0
- ldr r0, _02246594 ; =0x00002DCC
- add r3, r5, r1
- ldr r2, [r3, r0]
- lsl r2, r2, #0x10
- lsr r2, r2, #0x1d
- beq _022463B8
- sub r0, #0xc
- ldr r2, [r3, r0]
- mov r0, #1
- lsl r0, r0, #0xa
- tst r2, r0
- bne _022463B8
- ldr r2, [sp, #0x28]
- cmp r2, #4
- bne _022463B8
- ldr r2, [sp, #0x20]
- cmp r2, #0x69
- beq _022463B8
- ldr r1, [sp, #0x54]
- lsl r0, r0, #0xa
- ldr r1, [r1]
- orr r1, r0
- ldr r0, [sp, #0x54]
- str r1, [r0]
- b _0224649C
-_022463B8:
- add r0, r5, r1
- mov r4, #0
- str r0, [sp, #0x18]
-_022463BE:
- lsl r0, r4, #1
- ldr r1, _02246598 ; =0x0225E378
- add r0, r4, r0
- add r1, r1, r0
- str r1, [sp, #0xc]
- ldr r1, _02246598 ; =0x0225E378
- ldrb r1, [r1, r0]
- cmp r1, #0xfe
- bne _022463EE
- ldr r1, [sp, #0x18]
- ldr r0, _0224659C ; =0x00002DB0
- ldr r1, [r1, r0]
- mov r0, #2
- lsl r0, r0, #0x1c
- tst r0, r1
- bne _0224649C
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_02246D1C
- cmp r0, #0x71
- beq _0224649C
- add r4, r4, #1
- b _02246490
-_022463EE:
- ldr r0, [sp, #0x28]
- cmp r0, r1
- bne _0224648E
- ldr r0, [sp, #0xc]
- add r1, r6, #0
- ldrb r0, [r0, #1]
- mov r2, #0x1b
- mov r3, #0
- str r0, [sp, #0x10]
- add r0, r5, #0
- bl MOD11_02243420
- ldr r1, [sp, #0x10]
- cmp r1, r0
- bne _02246434
- add r0, r5, #0
- add r1, r7, #0
- add r2, r6, #0
- add r3, r4, #0
- bl MOD11_022461C0
- cmp r0, #1
- bne _02246434
- ldr r0, [sp, #0x14]
- ldr r2, [sp, #0xc]
- str r0, [sp]
- ldr r0, [sp, #0x54]
- ldr r3, [sp, #0x50]
- str r0, [sp, #4]
- ldrb r2, [r2, #2]
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_0224C648
- str r0, [sp, #0x50]
-_02246434:
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- ldr r1, [sp, #0x10]
- cmp r1, r0
- bne _0224648E
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- str r0, [sp, #0x2c]
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- ldr r1, [sp, #0x2c]
- cmp r1, r0
- beq _0224648E
- add r0, r5, #0
- add r1, r7, #0
- add r2, r6, #0
- add r3, r4, #0
- bl MOD11_022461C0
- cmp r0, #1
- bne _0224648E
- ldr r0, [sp, #0x14]
- ldr r2, [sp, #0xc]
- str r0, [sp]
- ldr r0, [sp, #0x54]
- ldr r3, [sp, #0x50]
- str r0, [sp, #4]
- ldrb r2, [r2, #2]
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_0224C648
- str r0, [sp, #0x50]
-_0224648E:
- add r4, r4, #1
-_02246490:
- lsl r0, r4, #1
- add r1, r4, r0
- ldr r0, _02246598 ; =0x0225E378
- ldrb r0, [r0, r1]
- cmp r0, #0xff
- bne _022463BE
-_0224649C:
- add r0, r5, #0
- add r1, r7, #0
- add r2, r6, #0
- mov r3, #0x19
- bl MOD11_02246D84
- cmp r0, #1
- bne _022464E0
- ldr r1, [sp, #8]
- add r0, r5, #0
- bl MOD11_0224C6D4
- cmp r0, #0
- beq _022464E0
- ldr r0, [sp, #0x54]
- ldr r1, [r0]
- mov r0, #2
- tst r0, r1
- beq _022464CA
- mov r0, #6
- and r0, r1
- cmp r0, #6
- bne _022464E0
-_022464CA:
- ldr r0, [sp, #0x14]
- cmp r0, #0
- beq _022464E0
- ldr r0, [sp, #0x54]
- ldr r1, [r0]
- mov r0, #1
- lsl r0, r0, #0x12
- orr r1, r0
- ldr r0, [sp, #0x54]
- str r1, [r0]
- b _02246582
-_022464E0:
- ldr r0, _02246590 ; =0x0000213C
- ldr r2, [r5, r0]
- mov r0, #2
- lsl r0, r0, #0xa
- add r1, r2, #0
- tst r1, r0
- bne _0224656E
- lsl r0, r0, #4
- tst r0, r2
- bne _0224656E
- ldr r0, [sp, #0x54]
- ldr r1, [r0]
- mov r0, #2
- tst r0, r1
- beq _0224654A
- ldr r0, [sp, #0x14]
- cmp r0, #0
- beq _0224654A
- add r0, r5, #0
- add r1, r7, #0
- add r2, r6, #0
- mov r3, #0x6f
- bl MOD11_02246D84
- cmp r0, #1
- beq _02246524
- add r0, r5, #0
- add r1, r7, #0
- add r2, r6, #0
- mov r3, #0x74
- bl MOD11_02246D84
- cmp r0, #1
- bne _02246532
-_02246524:
- ldr r0, [sp, #0x50]
- lsl r1, r0, #1
- add r0, r0, r1
- mov r1, #4
- bl MOD11_022476C0
- str r0, [sp, #0x50]
-_02246532:
- ldr r0, [sp, #0x24]
- cmp r0, #0x5f
- bne _0224654A
- ldr r0, [sp, #0x1c]
- ldr r1, [sp, #0x50]
- add r0, #0x64
- str r0, [sp, #0x1c]
- mul r0, r1
- mov r1, #0x64
- bl _s32_div_f
- str r0, [sp, #0x50]
-_0224654A:
- ldr r0, [sp, #0x54]
- ldr r1, [r0]
- mov r0, #4
- tst r0, r1
- beq _02246582
- ldr r0, [sp, #0x14]
- cmp r0, #0
- beq _02246582
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_02246D1C
- cmp r0, #0x6e
- bne _02246582
- ldr r0, [sp, #0x50]
- lsl r0, r0, #1
- str r0, [sp, #0x50]
- b _02246582
-_0224656E:
- ldr r0, [sp, #0x54]
- ldr r1, [r0]
- mov r0, #2
- bic r1, r0
- ldr r0, [sp, #0x54]
- str r1, [r0]
- mov r0, #4
- bic r1, r0
- ldr r0, [sp, #0x54]
- str r1, [r0]
-_02246582:
- ldr r0, [sp, #0x50]
- add sp, #0x30
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02246588: .word 0x000003E2
-_0224658C: .word 0x000003E1
-_02246590: .word 0x0000213C
-_02246594: .word 0x00002DCC
-_02246598: .word 0x0225E378
-_0224659C: .word 0x00002DB0
-
- thumb_func_start MOD11_022465A0
-MOD11_022465A0: ; 0x022465A0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r7, r0, #0
- ldr r0, [sp, #0x2c]
- str r1, [sp]
- str r0, [sp, #0x2c]
- ldr r0, [sp, #0x30]
- str r3, [sp, #4]
- str r0, [sp, #0x30]
- ldr r0, [sp, #0x34]
- ldr r6, [sp, #0x38]
- str r0, [sp, #0x34]
- add r0, r1, #0
- cmp r0, #0xa5
- beq _022466B6
- add r0, r3, #0
- cmp r0, #0x60
- bne _022465CA
- mov r0, #0
- str r0, [sp, #0xc]
- b _022465E2
-_022465CA:
- cmp r2, #0
- beq _022465D6
- lsl r0, r2, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0xc]
- b _022465E2
-_022465D6:
- add r0, r1, #0
- lsl r0, r0, #4
- add r1, r7, r0
- ldr r0, _022466BC ; =0x000003E2
- ldrb r0, [r1, r0]
- str r0, [sp, #0xc]
-_022465E2:
- ldr r0, [sp, #4]
- cmp r0, #0x68
- beq _02246612
- ldr r0, [sp, #0x28]
- cmp r0, #0x1a
- bne _02246612
- ldr r0, [sp, #0xc]
- cmp r0, #4
- bne _02246612
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r7, r0]
- mov r0, #7
- lsl r0, r0, #0xc
- tst r0, r1
- bne _02246612
- ldr r0, [sp, #0x2c]
- cmp r0, #0x69
- beq _02246612
- ldr r1, [r6]
- mov r0, #8
- orr r0, r1
- str r0, [r6]
- b _02246686
-_02246612:
- mov r4, #0
-_02246614:
- lsl r0, r4, #1
- add r1, r4, r0
- ldr r0, _022466C0 ; =0x0225E378
- add r5, r0, r1
- ldrb r1, [r0, r1]
- cmp r1, #0xfe
- bne _0224662C
- ldr r0, [sp, #4]
- cmp r0, #0x71
- beq _02246686
- add r4, r4, #1
- b _0224667A
-_0224662C:
- ldr r0, [sp, #0xc]
- cmp r0, r1
- bne _02246678
- ldrb r0, [r5, #1]
- ldr r1, [sp, #0x30]
- str r0, [sp, #8]
- cmp r1, r0
- bne _02246652
- ldr r1, [sp, #0x2c]
- add r0, r7, #0
- add r2, r4, #0
- bl MOD11_022466C4
- cmp r0, #1
- bne _02246652
- ldrb r0, [r5, #2]
- add r1, r6, #0
- bl MOD11_02246714
-_02246652:
- ldr r1, [sp, #0x34]
- ldr r0, [sp, #8]
- cmp r1, r0
- bne _02246678
- ldr r1, [sp, #0x30]
- ldr r0, [sp, #0x34]
- cmp r1, r0
- beq _02246678
- ldr r1, [sp, #0x2c]
- add r0, r7, #0
- add r2, r4, #0
- bl MOD11_022466C4
- cmp r0, #1
- bne _02246678
- ldrb r0, [r5, #2]
- add r1, r6, #0
- bl MOD11_02246714
-_02246678:
- add r4, r4, #1
-_0224667A:
- lsl r0, r4, #1
- add r1, r4, r0
- ldr r0, _022466C0 ; =0x0225E378
- ldrb r0, [r0, r1]
- cmp r0, #0xff
- bne _02246614
-_02246686:
- ldr r0, [sp, #4]
- cmp r0, #0x68
- beq _022466B6
- ldr r0, [sp, #0x28]
- cmp r0, #0x19
- bne _022466B6
- ldr r1, [sp]
- add r0, r7, #0
- bl MOD11_0224C6D4
- cmp r0, #0
- beq _022466B6
- ldr r1, [r6]
- mov r0, #2
- tst r0, r1
- beq _022466AE
- mov r0, #6
- and r0, r1
- cmp r0, #6
- bne _022466B6
-_022466AE:
- ldr r1, [r6]
- mov r0, #8
- orr r0, r1
- str r0, [r6]
-_022466B6:
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022466BC: .word 0x000003E2
-_022466C0: .word 0x0225E378
-
- thumb_func_start MOD11_022466C4
-MOD11_022466C4: ; 0x022466C4
- push {r3, r4}
- mov r3, #1
- cmp r1, #0x69
- bne _022466E2
- lsl r1, r2, #1
- add r4, r2, r1
- ldr r1, _0224670C ; =0x0225E379
- ldrb r1, [r1, r4]
- cmp r1, #2
- bne _022466E2
- ldr r1, _02246710 ; =0x0225E37A
- ldrb r1, [r1, r4]
- cmp r1, #0
- bne _022466E2
- mov r3, #0
-_022466E2:
- mov r1, #6
- lsl r1, r1, #6
- ldr r1, [r0, r1]
- mov r0, #7
- lsl r0, r0, #0xc
- tst r0, r1
- beq _02246706
- lsl r0, r2, #1
- add r1, r2, r0
- ldr r0, _0224670C ; =0x0225E379
- ldrb r0, [r0, r1]
- cmp r0, #2
- bne _02246706
- ldr r0, _02246710 ; =0x0225E37A
- ldrb r0, [r0, r1]
- cmp r0, #0
- bne _02246706
- mov r3, #0
-_02246706:
- add r0, r3, #0
- pop {r3, r4}
- bx lr
- .align 2, 0
-_0224670C: .word 0x0225E379
-_02246710: .word 0x0225E37A
-
- thumb_func_start MOD11_02246714
-MOD11_02246714: ; 0x02246714
- cmp r0, #0
- beq _02246722
- cmp r0, #5
- beq _02246734
- cmp r0, #0x14
- beq _0224674C
- bx lr
-_02246722:
- ldr r2, [r1]
- mov r0, #8
- orr r2, r0
- mov r0, #4
- bic r2, r0
- mov r0, #2
- bic r2, r0
- str r2, [r1]
- bx lr
-_02246734:
- ldr r2, [r1]
- mov r0, #2
- tst r0, r2
- beq _02246744
- mov r0, #2
- bic r2, r0
- str r2, [r1]
- bx lr
-_02246744:
- mov r0, #4
- orr r0, r2
- str r0, [r1]
- bx lr
-_0224674C:
- ldr r2, [r1]
- mov r0, #4
- tst r0, r2
- beq _0224675C
- mov r0, #4
- bic r2, r0
- str r2, [r1]
- bx lr
-_0224675C:
- mov r0, #2
- orr r0, r2
- str r0, [r1]
- bx lr
-
- thumb_func_start MOD11_02246764
-MOD11_02246764: ; 0x02246764
- mov r2, #0xd1
- lsl r2, r2, #2
- add r2, r0, r2
- lsl r0, r1, #2
- ldr r0, [r2, r0]
- lsl r1, r0, #0x1f
- lsr r1, r1, #0x1f
- bne _022467A4
- lsl r1, r0, #0x1e
- lsr r1, r1, #0x1f
- bne _022467A4
- lsl r1, r0, #0x1d
- lsr r1, r1, #0x1f
- bne _022467A4
- lsl r1, r0, #0x1c
- lsr r1, r1, #0x1f
- bne _022467A4
- lsl r1, r0, #0x1b
- lsr r1, r1, #0x1f
- bne _022467A4
- lsl r1, r0, #0x1a
- lsr r1, r1, #0x1f
- bne _022467A4
- lsl r1, r0, #0x19
- lsr r1, r1, #0x1f
- bne _022467A4
- lsl r1, r0, #0x17
- lsr r1, r1, #0x1f
- bne _022467A4
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1f
- beq _022467A8
-_022467A4:
- mov r0, #1
- bx lr
-_022467A8:
- mov r0, #0
- bx lr
-
- thumb_func_start MOD11_022467AC
-MOD11_022467AC: ; 0x022467AC
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- str r0, [sp]
- add r5, r1, #0
- add r6, r2, #0
- str r3, [sp, #4]
- mov r4, #0
- bl MOD11_0222FF84
- add r7, r0, #0
- cmp r6, #0
- beq _022467CA
- cmp r6, #1
- beq _022467EE
- b _02246822
-_022467CA:
- add r0, r4, #0
- cmp r7, #0
- ble _02246822
- ldr r2, _02246828 ; =0x00002D8C
-_022467D2:
- ldr r1, [sp, #4]
- cmp r0, r1
- beq _022467E4
- ldr r1, [r5, r2]
- cmp r1, #0
- beq _022467E4
- add r1, r4, #1
- lsl r1, r1, #0x18
- lsr r4, r1, #0x18
-_022467E4:
- add r0, r0, #1
- add r5, #0xc0
- cmp r0, r7
- blt _022467D2
- b _02246822
-_022467EE:
- add r6, r4, #0
- cmp r7, #0
- ble _02246822
-_022467F4:
- ldr r0, [sp]
- add r1, r6, #0
- bl MOD11_02230270
- str r0, [sp, #8]
- ldr r0, [sp]
- ldr r1, [sp, #4]
- bl MOD11_02230270
- ldr r1, [sp, #8]
- cmp r1, r0
- bne _0224681A
- ldr r0, _02246828 ; =0x00002D8C
- ldr r0, [r5, r0]
- cmp r0, #0
- beq _0224681A
- add r0, r4, #1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
-_0224681A:
- add r6, r6, #1
- add r5, #0xc0
- cmp r6, r7
- blt _022467F4
-_02246822:
- add r0, r4, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02246828: .word 0x00002D8C
-
- thumb_func_start MOD11_0224682C
-MOD11_0224682C: ; 0x0224682C
- add r2, r0, r1
- ldr r0, _02246838 ; =0x0000219C
- ldrb r0, [r2, r0]
- lsl r0, r0, #8
- orr r0, r1
- bx lr
- .align 2, 0
-_02246838: .word 0x0000219C
-
- thumb_func_start MOD11_0224683C
-MOD11_0224683C: ; 0x0224683C
- push {r4, r5}
- lsl r3, r1, #4
- add r5, r0, r3
- ldr r3, _02246868 ; =0x000021B4
- mov r2, #0
- ldr r4, [r5, r3]
- cmp r4, #1
- bne _02246862
- sub r3, r3, #4
- ldr r3, [r5, r3]
- cmp r3, #0
- beq _02246862
- mov r2, #0xc0
- mul r2, r1
- add r1, r0, r2
- lsl r0, r3, #1
- add r1, r1, r0
- ldr r0, _0224686C ; =0x00002D4A
- ldrh r2, [r1, r0]
-_02246862:
- add r0, r2, #0
- pop {r4, r5}
- bx lr
- .align 2, 0
-_02246868: .word 0x000021B4
-_0224686C: .word 0x00002D4A
-
- thumb_func_start MOD11_02246870
-MOD11_02246870: ; 0x02246870
- push {r4, r5, r6, r7, lr}
- sub sp, #0x5c
- str r2, [sp, #4]
- str r0, [sp]
- add r7, r1, #0
- str r3, [sp, #8]
- ldr r6, [sp, #0x70]
- mov r4, #0
- bl MOD11_0222FF84
- add r5, r0, #0
- ldr r0, [sp, #4]
- cmp r0, #9
- bhi _022468E4
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02246898: ; jump table
- .short _022468AC - _02246898 - 2 ; case 0
- .short _022468E6 - _02246898 - 2 ; case 1
- .short _02246932 - _02246898 - 2 ; case 2
- .short _0224696C - _02246898 - 2 ; case 3
- .short _022469B8 - _02246898 - 2 ; case 4
- .short _02246A0A - _02246898 - 2 ; case 5
- .short _02246A2C - _02246898 - 2 ; case 6
- .short _02246A54 - _02246898 - 2 ; case 7
- .short _02246A80 - _02246898 - 2 ; case 8
- .short _02246AB4 - _02246898 - 2 ; case 9
-_022468AC:
- add r0, r4, #0
- str r0, [sp, #0x44]
- cmp r5, #0
- ble _022468E4
-_022468B4:
- ldr r0, [sp]
- ldr r1, [sp, #0x44]
- bl MOD11_02230270
- str r0, [sp, #0x48]
- ldr r0, [sp]
- ldr r1, [sp, #8]
- bl MOD11_02230270
- ldr r1, [sp, #0x48]
- cmp r1, r0
- bne _022468DA
- ldr r1, [sp, #0x44]
- add r0, r7, #0
- bl MOD11_02246D1C
- cmp r6, r0
- bne _022468DA
- add r4, r4, #1
-_022468DA:
- ldr r0, [sp, #0x44]
- add r0, r0, #1
- str r0, [sp, #0x44]
- cmp r0, r5
- blt _022468B4
-_022468E4:
- b _02246AEC
-_022468E6:
- add r0, r4, #0
- str r0, [sp, #0xc]
- cmp r5, #0
- ble _02246930
- str r7, [sp, #0x30]
-_022468F0:
- ldr r0, [sp]
- ldr r1, [sp, #0xc]
- bl MOD11_02230270
- str r0, [sp, #0x4c]
- ldr r0, [sp]
- ldr r1, [sp, #8]
- bl MOD11_02230270
- ldr r1, [sp, #0x4c]
- cmp r1, r0
- bne _02246920
- ldr r1, [sp, #0x30]
- ldr r0, _02246AF4 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02246920
- ldr r1, [sp, #0xc]
- add r0, r7, #0
- bl MOD11_02246D1C
- cmp r6, r0
- bne _02246920
- add r4, r4, #1
-_02246920:
- ldr r0, [sp, #0x30]
- add r0, #0xc0
- str r0, [sp, #0x30]
- ldr r0, [sp, #0xc]
- add r0, r0, #1
- str r0, [sp, #0xc]
- cmp r0, r5
- blt _022468F0
-_02246930:
- b _02246AEC
-_02246932:
- add r0, r4, #0
- str r0, [sp, #0x10]
- cmp r5, #0
- ble _0224696A
-_0224693A:
- ldr r0, [sp]
- ldr r1, [sp, #0x10]
- bl MOD11_02230270
- str r0, [sp, #0x50]
- ldr r0, [sp]
- ldr r1, [sp, #8]
- bl MOD11_02230270
- ldr r1, [sp, #0x50]
- cmp r1, r0
- beq _02246960
- ldr r1, [sp, #0x10]
- add r0, r7, #0
- bl MOD11_02246D1C
- cmp r6, r0
- bne _02246960
- add r4, r4, #1
-_02246960:
- ldr r0, [sp, #0x10]
- add r0, r0, #1
- str r0, [sp, #0x10]
- cmp r0, r5
- blt _0224693A
-_0224696A:
- b _02246AEC
-_0224696C:
- add r0, r4, #0
- str r0, [sp, #0x14]
- cmp r5, #0
- ble _022469B6
- str r7, [sp, #0x34]
-_02246976:
- ldr r0, [sp]
- ldr r1, [sp, #0x14]
- bl MOD11_02230270
- str r0, [sp, #0x54]
- ldr r0, [sp]
- ldr r1, [sp, #8]
- bl MOD11_02230270
- ldr r1, [sp, #0x54]
- cmp r1, r0
- beq _022469A6
- ldr r1, [sp, #0x34]
- ldr r0, _02246AF4 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _022469A6
- ldr r1, [sp, #0x14]
- add r0, r7, #0
- bl MOD11_02246D1C
- cmp r6, r0
- bne _022469A6
- add r4, r4, #1
-_022469A6:
- ldr r0, [sp, #0x34]
- add r0, #0xc0
- str r0, [sp, #0x34]
- ldr r0, [sp, #0x14]
- add r0, r0, #1
- str r0, [sp, #0x14]
- cmp r0, r5
- blt _02246976
-_022469B6:
- b _02246AEC
-_022469B8:
- add r0, r4, #0
- str r0, [sp, #0x18]
- cmp r5, #0
- ble _02246A08
- str r7, [sp, #0x38]
-_022469C2:
- ldr r0, [sp]
- ldr r1, [sp, #0x18]
- bl MOD11_02230270
- str r0, [sp, #0x58]
- ldr r0, [sp]
- ldr r1, [sp, #8]
- bl MOD11_02230270
- ldr r1, [sp, #0x58]
- cmp r1, r0
- beq _022469F8
- ldr r1, [sp, #0x38]
- ldr r0, _02246AF4 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _022469F8
- ldr r1, [sp, #0x18]
- add r0, r7, #0
- bl MOD11_02246D1C
- cmp r6, r0
- bne _022469F8
- ldr r0, [sp, #0x18]
- bl MaskOfFlagNo
- orr r4, r0
-_022469F8:
- ldr r0, [sp, #0x38]
- add r0, #0xc0
- str r0, [sp, #0x38]
- ldr r0, [sp, #0x18]
- add r0, r0, #1
- str r0, [sp, #0x18]
- cmp r0, r5
- blt _022469C2
-_02246A08:
- b _02246AEC
-_02246A0A:
- add r0, r4, #0
- str r0, [sp, #0x1c]
- cmp r5, #0
- ble _02246AEC
-_02246A12:
- ldr r1, [sp, #0x1c]
- add r0, r7, #0
- bl MOD11_02246D1C
- cmp r6, r0
- bne _02246A20
- add r4, r4, #1
-_02246A20:
- ldr r0, [sp, #0x1c]
- add r0, r0, #1
- str r0, [sp, #0x1c]
- cmp r0, r5
- blt _02246A12
- b _02246AEC
-_02246A2C:
- add r0, r4, #0
- str r0, [sp, #0x20]
- cmp r5, #0
- ble _02246AEC
-_02246A34:
- ldr r1, [sp, #0x20]
- ldr r0, [sp, #8]
- cmp r1, r0
- beq _02246A48
- add r0, r7, #0
- bl MOD11_02246D1C
- cmp r6, r0
- bne _02246A48
- add r4, r4, #1
-_02246A48:
- ldr r0, [sp, #0x20]
- add r0, r0, #1
- str r0, [sp, #0x20]
- cmp r0, r5
- blt _02246A34
- b _02246AEC
-_02246A54:
- add r0, r4, #0
- str r0, [sp, #0x24]
- cmp r5, #0
- ble _02246AEC
-_02246A5C:
- ldr r1, [sp, #0x24]
- ldr r0, [sp, #8]
- cmp r1, r0
- beq _02246A74
- add r0, r7, #0
- bl MOD11_02246D1C
- cmp r6, r0
- bne _02246A74
- ldr r0, [sp, #0x24]
- add r4, r0, #1
- b _02246AEC
-_02246A74:
- ldr r0, [sp, #0x24]
- add r0, r0, #1
- str r0, [sp, #0x24]
- cmp r0, r5
- blt _02246A5C
- b _02246AEC
-_02246A80:
- add r0, r4, #0
- str r0, [sp, #0x28]
- cmp r5, #0
- ble _02246AEC
- str r7, [sp, #0x3c]
-_02246A8A:
- ldr r1, [sp, #0x28]
- add r0, r7, #0
- bl MOD11_02246D1C
- cmp r6, r0
- bne _02246AA2
- ldr r1, [sp, #0x3c]
- ldr r0, _02246AF4 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02246AA2
- add r4, r4, #1
-_02246AA2:
- ldr r0, [sp, #0x3c]
- add r0, #0xc0
- str r0, [sp, #0x3c]
- ldr r0, [sp, #0x28]
- add r0, r0, #1
- str r0, [sp, #0x28]
- cmp r0, r5
- blt _02246A8A
- b _02246AEC
-_02246AB4:
- add r0, r4, #0
- str r0, [sp, #0x2c]
- cmp r5, #0
- ble _02246AEC
- str r7, [sp, #0x40]
-_02246ABE:
- ldr r1, [sp, #0x2c]
- ldr r0, [sp, #8]
- cmp r1, r0
- beq _02246ADC
- add r0, r7, #0
- bl MOD11_02246D1C
- cmp r6, r0
- bne _02246ADC
- ldr r1, [sp, #0x40]
- ldr r0, _02246AF4 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02246ADC
- add r4, r4, #1
-_02246ADC:
- ldr r0, [sp, #0x40]
- add r0, #0xc0
- str r0, [sp, #0x40]
- ldr r0, [sp, #0x2c]
- add r0, r0, #1
- str r0, [sp, #0x2c]
- cmp r0, r5
- blt _02246ABE
-_02246AEC:
- add r0, r4, #0
- add sp, #0x5c
- pop {r4, r5, r6, r7, pc}
- nop
-_02246AF4: .word 0x00002D8C
-
- thumb_func_start MOD11_02246AF8
-MOD11_02246AF8: ; 0x02246AF8
- lsl r1, r1, #4
- add r1, r0, r1
- ldr r0, _02246B54 ; =0x000003DE
- ldrh r2, [r1, r0]
- cmp r2, #0x9b
- bgt _02246B2A
- cmp r2, #0x97
- blt _02246B10
- beq _02246B4A
- cmp r2, #0x9b
- beq _02246B4A
- b _02246B4E
-_02246B10:
- cmp r2, #0x27
- bgt _02246B1C
- bge _02246B4A
- cmp r2, #0x1a
- beq _02246B4A
- b _02246B4E
-_02246B1C:
- cmp r2, #0x4b
- bgt _02246B24
- beq _02246B4A
- b _02246B4E
-_02246B24:
- cmp r2, #0x91
- beq _02246B4A
- b _02246B4E
-_02246B2A:
- mov r1, #1
- lsl r1, r1, #8
- cmp r2, r1
- bgt _02246B3A
- bge _02246B4A
- cmp r2, #0xff
- beq _02246B4A
- b _02246B4E
-_02246B3A:
- add r0, r1, #7
- cmp r2, r0
- bgt _02246B44
- beq _02246B4A
- b _02246B4E
-_02246B44:
- add r1, #0x10
- cmp r2, r1
- bne _02246B4E
-_02246B4A:
- mov r0, #1
- bx lr
-_02246B4E:
- mov r0, #0
- bx lr
- nop
-_02246B54: .word 0x000003DE
-
- thumb_func_start MOD11_02246B58
-MOD11_02246B58: ; 0x02246B58
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- add r5, r1, #0
- add r4, r2, #0
- add r7, r3, #0
- mov r0, #1
- cmp r6, #0x70
- blo _02246B76
- bl rand_LC
- mov r1, #0x70
- bl _u32_div_f
- add r6, r1, #0
- mov r0, #0
-_02246B76:
- lsl r1, r6, #1
- ldr r2, _02246B90 ; =0x0225E378
- add r1, r6, r1
- ldrb r2, [r2, r1]
- strb r2, [r5]
- ldr r2, _02246B94 ; =0x0225E379
- ldrb r2, [r2, r1]
- strb r2, [r4]
- ldr r2, _02246B98 ; =0x0225E37A
- ldrb r1, [r2, r1]
- strb r1, [r7]
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02246B90: .word 0x0225E378
-_02246B94: .word 0x0225E379
-_02246B98: .word 0x0225E37A
-
- thumb_func_start MOD11_02246B9C
-MOD11_02246B9C: ; 0x02246B9C
- push {r3, r4, r5, r6, r7, lr}
- ldr r4, _02246BE4 ; =0x0225E378
- add r5, r1, #0
- str r0, [sp]
- add r6, r2, #0
- mov r1, #0x28
-_02246BA8:
- ldrb r2, [r4]
- ldr r0, [sp]
- cmp r0, r2
- bne _02246BD6
- ldrb r7, [r4, #1]
- cmp r5, r7
- bne _02246BC2
- ldrb r0, [r4, #2]
- mul r0, r1
- mov r1, #0xa
- bl _s32_div_f
- add r1, r0, #0
-_02246BC2:
- cmp r6, r7
- bne _02246BD6
- cmp r5, r6
- beq _02246BD6
- ldrb r0, [r4, #2]
- mul r0, r1
- mov r1, #0xa
- bl _s32_div_f
- add r1, r0, #0
-_02246BD6:
- add r4, r4, #3
- ldrb r0, [r4]
- cmp r0, #0xff
- bne _02246BA8
- add r0, r1, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02246BE4: .word 0x0225E378
-
- thumb_func_start MOD11_02246BE8
-MOD11_02246BE8: ; 0x02246BE8
- cmp r0, #0
- beq _02246C10
- cmp r0, #0xd6
- beq _02246C10
- ldr r2, _02246C18 ; =0x0000017F
- cmp r0, r2
- beq _02246C10
- add r1, r2, #0
- sub r1, #0x6d
- cmp r0, r1
- beq _02246C10
- sub r1, r2, #1
- cmp r0, r1
- beq _02246C10
- ldr r1, _02246C1C ; =0x0000FF8A
- add r0, r0, r1
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- cmp r0, #1
- bhi _02246C14
-_02246C10:
- mov r0, #1
- bx lr
-_02246C14:
- mov r0, #0
- bx lr
- .align 2, 0
-_02246C18: .word 0x0000017F
-_02246C1C: .word 0x0000FF8A
-
- thumb_func_start MOD11_02246C20
-MOD11_02246C20: ; 0x02246C20
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r2, #0
- cmp r1, #0xae
- bne _02246C4C
- add r1, r4, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #7
- beq _02246C48
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #7
- bne _02246C4C
-_02246C48:
- mov r0, #1
- pop {r3, r4, r5, pc}
-_02246C4C:
- mov r0, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02246C50
-MOD11_02246C50: ; 0x02246C50
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r6, r2, #0
- add r5, r1, #0
- add r1, r6, #0
- mov r7, #0
- bl MOD11_02230270
- str r0, [sp]
- ldr r0, _02246CA4 ; =0x00002DB8
- add r4, r5, r0
- mov r0, #0xc0
- mul r0, r6
- str r0, [sp, #4]
- ldrh r0, [r4, r0]
- cmp r0, #0
- beq _02246C9E
- ldr r0, _02246CA8 ; =0x0000219C
- add r1, r5, r6
- ldrb r0, [r1, r0]
- bl MaskOfFlagNo
- ldr r1, [sp]
- lsl r1, r1, #3
- add r2, r5, r1
- mov r1, #0x71
- lsl r1, r1, #2
- ldr r1, [r2, r1]
- lsl r1, r1, #3
- lsr r1, r1, #0x1a
- tst r0, r1
- bne _02246C9E
- ldr r0, [sp, #4]
- ldrh r0, [r4, r0]
- bl FUN_0206EA98
- cmp r0, #0
- bne _02246C9E
- mov r7, #1
-_02246C9E:
- add r0, r7, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02246CA4: .word 0x00002DB8
-_02246CA8: .word 0x0000219C
-
- thumb_func_start MOD11_02246CAC
-MOD11_02246CAC: ; 0x02246CAC
- push {r3, lr}
- mov r2, #0xc0
- mul r2, r1
- add r1, r0, r2
- ldr r0, _02246CC8 ; =0x00002DB8
- ldrh r0, [r1, r0]
- bl FUN_0206EA98
- cmp r0, #0
- bne _02246CC4
- mov r0, #1
- pop {r3, pc}
-_02246CC4:
- mov r0, #0
- pop {r3, pc}
- .align 2, 0
-_02246CC8: .word 0x00002DB8
-
- thumb_func_start MOD11_02246CCC
-MOD11_02246CCC: ; 0x02246CCC
- push {r4, r5, r6, lr}
- add r5, r0, #0
- ldr r1, [r5, #0x6c]
- mov r0, #0xc0
- add r3, r1, #0
- ldr r1, _02246D18 ; =0x00002D74
- mul r3, r0
- add r2, r5, r1
- ldrb r4, [r2, r3]
- ldr r2, [r5, #0x64]
- mov r6, #0
- mul r0, r2
- add r0, r5, r0
- ldrb r0, [r0, r1]
- cmp r0, r4
- blo _02246CF0
- mov r6, #1
- b _02246D14
-_02246CF0:
- bl rand_LC
- ldr r2, [r5, #0x64]
- mov r1, #0xc0
- mul r1, r2
- add r2, r5, r1
- ldr r1, _02246D18 ; =0x00002D74
- lsl r0, r0, #0x18
- ldrb r1, [r2, r1]
- lsr r0, r0, #0x18
- add r1, r1, r4
- mul r0, r1
- asr r0, r0, #8
- add r1, r0, #1
- lsr r0, r4, #2
- cmp r1, r0
- ble _02246D14
- mov r6, #1
-_02246D14:
- add r0, r6, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-_02246D18: .word 0x00002D74
-
- thumb_func_start MOD11_02246D1C
-MOD11_02246D1C: ; 0x02246D1C
- push {r4, r5}
- mov r2, #0xc0
- mul r2, r1
- mov r3, #0xb7
- mov r4, #2
- add r5, r0, r2
- lsl r3, r3, #6
- ldr r1, [r5, r3]
- lsl r4, r4, #0x14
- tst r4, r1
- beq _02246D40
- sub r3, #0x59
- ldrb r3, [r5, r3]
- cmp r3, #0x79
- beq _02246D40
- mov r0, #0
- pop {r4, r5}
- bx lr
-_02246D40:
- mov r3, #6
- lsl r3, r3, #6
- ldr r4, [r0, r3]
- mov r3, #7
- lsl r3, r3, #0xc
- tst r3, r4
- beq _02246D5E
- ldr r3, _02246D80 ; =0x00002D67
- add r4, r0, r2
- ldrb r3, [r4, r3]
- cmp r3, #0x1a
- bne _02246D5E
- mov r0, #0
- pop {r4, r5}
- bx lr
-_02246D5E:
- mov r3, #1
- lsl r3, r3, #0xa
- tst r1, r3
- beq _02246D76
- ldr r1, _02246D80 ; =0x00002D67
- add r3, r0, r2
- ldrb r1, [r3, r1]
- cmp r1, #0x1a
- bne _02246D76
- mov r0, #0
- pop {r4, r5}
- bx lr
-_02246D76:
- add r1, r0, r2
- ldr r0, _02246D80 ; =0x00002D67
- ldrb r0, [r1, r0]
- pop {r4, r5}
- bx lr
- .align 2, 0
-_02246D80: .word 0x00002D67
-
- thumb_func_start MOD11_02246D84
-MOD11_02246D84: ; 0x02246D84
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r7, r1, #0
- str r2, [sp]
- add r4, r3, #0
- mov r6, #0
- bl MOD11_02246D1C
- cmp r0, #0x68
- beq _02246DA8
- ldr r1, [sp]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r4, r0
- bne _02246DD6
- mov r6, #1
- b _02246DD6
-_02246DA8:
- ldr r1, [sp]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r4, r0
- bne _02246DD6
- mov r0, #0xb5
- lsl r0, r0, #2
- add r1, r5, r0
- mov r0, #0x1c
- mul r0, r7
- ldr r3, [r1, r0]
- lsl r2, r3, #0x1c
- lsr r2, r2, #0x1f
- bne _02246DD6
- mov r2, #8
- orr r3, r2
- str r3, [r1, r0]
- ldr r1, _02246DDC ; =0x0000213C
- lsl r0, r2, #0x14
- ldr r3, [r5, r1]
- orr r0, r3
- str r0, [r5, r1]
-_02246DD6:
- add r0, r6, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02246DDC: .word 0x0000213C
-
- thumb_func_start MOD11_02246DE0
-MOD11_02246DE0: ; 0x02246DE0
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- mov r6, #0
- str r0, [sp]
- str r1, [sp, #4]
- add r4, r2, #0
- str r6, [sp, #0x18]
- bl MOD11_0222FF74
- add r5, r0, #0
- ldr r0, [sp]
- add r1, r4, #0
- bl MOD11_0222FF88
- str r0, [sp, #0x14]
- ldr r0, [sp]
- add r1, r4, #0
- bl MOD11_0222FFC8
- add r7, r0, #0
- mov r0, #8
- tst r0, r5
- bne _02246E22
- mov r0, #0x10
- tst r0, r5
- beq _02246E36
- ldr r0, [sp]
- add r1, r4, #0
- bl MOD11_02230260
- mov r1, #1
- tst r0, r1
- beq _02246E36
-_02246E22:
- mov r0, #1
- str r0, [sp, #0x10]
- ldr r0, [sp, #4]
- mov r5, #0
- add r1, r0, r4
- ldr r0, _02246ECC ; =0x0000219C
- ldrb r0, [r1, r0]
- str r0, [sp, #0xc]
- str r0, [sp, #8]
- b _02246E72
-_02246E36:
- mov r0, #2
- tst r0, r5
- beq _02246E60
- mov r0, #1
- str r0, [sp, #0x10]
- ldr r0, [sp, #4]
- mov r5, #0
- add r1, r0, r4
- ldr r0, _02246ECC ; =0x0000219C
- ldrb r0, [r1, r0]
- add r1, r4, #0
- str r0, [sp, #0xc]
- ldr r0, [sp]
- bl MOD11_022302BC
- ldr r1, [sp, #4]
- add r1, r1, r0
- ldr r0, _02246ECC ; =0x0000219C
- ldrb r0, [r1, r0]
- str r0, [sp, #8]
- b _02246E72
-_02246E60:
- mov r0, #1
- str r0, [sp, #0x10]
- ldr r0, [sp, #4]
- mov r5, #0
- add r1, r0, r4
- ldr r0, _02246ECC ; =0x0000219C
- ldrb r0, [r1, r0]
- str r0, [sp, #0xc]
- str r0, [sp, #8]
-_02246E72:
- cmp r5, r7
- bge _02246EBC
-_02246E76:
- ldr r0, [sp, #0x14]
- add r1, r5, #0
- bl FUN_0206B9B0
- mov r1, #5
- mov r2, #0
- add r4, r0, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _02246EB6
- add r0, r4, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- bne _02246EB6
- add r0, r4, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _02246EB6
- ldr r0, [sp, #0xc]
- cmp r0, r5
- beq _02246EB6
- ldr r0, [sp, #8]
- cmp r0, r5
- beq _02246EB6
- add r6, r6, #1
-_02246EB6:
- add r5, r5, #1
- cmp r5, r7
- blt _02246E76
-_02246EBC:
- ldr r0, [sp, #0x10]
- cmp r6, r0
- blt _02246EC6
- mov r0, #1
- str r0, [sp, #0x18]
-_02246EC6:
- ldr r0, [sp, #0x18]
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02246ECC: .word 0x0000219C
-
- thumb_func_start MOD11_02246ED0
-MOD11_02246ED0: ; 0x02246ED0
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r5, r1, #0
- add r6, r2, #0
- add r7, r0, #0
- add r4, r3, #0
- bl MOD11_0222FF74
- str r0, [sp, #0xc]
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02249D90
- str r0, [sp, #8]
- cmp r0, #0x3e
- beq _02246F06
- mov r1, #0xa9
- ldr r0, [sp, #0xc]
- lsl r1, r1, #2
- tst r0, r1
- bne _02246F06
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02246D1C
- cmp r0, #0x32
- bne _02246F0C
-_02246F06:
- add sp, #0x14
- mov r0, #0
- pop {r4, r5, r6, r7, pc}
-_02246F0C:
- add r0, r7, #0
- add r1, r6, #0
- bl MOD11_02230270
- add r0, r7, #0
- bl MOD11_0222FF84
- mov r0, #0x17
- str r0, [sp]
- add r0, r7, #0
- add r1, r5, #0
- mov r2, #9
- add r3, r6, #0
- bl MOD11_02246870
- str r0, [sp, #0x10]
- cmp r0, #0
- beq _02246F62
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02246D1C
- cmp r0, #0x17
- beq _02246F62
- cmp r4, #0
- bne _02246F46
- add sp, #0x14
- mov r0, #1
- pop {r4, r5, r6, r7, pc}
-_02246F46:
- mov r0, #0xb
- strb r0, [r4, #1]
- mov r0, #0x27
- strh r0, [r4, #2]
- ldr r1, [sp, #0x10]
- add r0, r5, #0
- bl MOD11_0224682C
- str r0, [r4, #4]
- mov r0, #0x17
- str r0, [r4, #8]
- add sp, #0x14
- mov r0, #1
- pop {r4, r5, r6, r7, pc}
-_02246F62:
- mov r0, #0x47
- str r0, [sp]
- add r0, r7, #0
- add r1, r5, #0
- mov r2, #3
- add r3, r6, #0
- bl MOD11_02246870
- str r0, [sp, #4]
- cmp r0, #0
- beq _02247014
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #7
- lsl r0, r0, #0xc
- tst r0, r1
- bne _02246FEE
- ldr r0, [sp, #8]
- cmp r0, #0x69
- beq _02246FEE
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02246D1C
- cmp r0, #0x1a
- beq _02247014
- mov r0, #0xc0
- mul r0, r6
- add r1, r5, r0
- ldr r0, _022470A8 ; =0x00002DCC
- ldr r0, [r1, r0]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x1d
- bne _02247014
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #2
- beq _02247014
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #2
- beq _02247014
- cmp r4, #0
- bne _02246FD2
- add sp, #0x14
- mov r0, #1
- pop {r4, r5, r6, r7, pc}
-_02246FD2:
- mov r0, #0xb
- strb r0, [r4, #1]
- mov r0, #0x27
- strh r0, [r4, #2]
- ldr r1, [sp, #4]
- add r0, r5, #0
- bl MOD11_0224682C
- str r0, [r4, #4]
- mov r0, #0x47
- str r0, [r4, #8]
- add sp, #0x14
- mov r0, #1
- pop {r4, r5, r6, r7, pc}
-_02246FEE:
- cmp r4, #0
- bne _02246FF8
- add sp, #0x14
- mov r0, #1
- pop {r4, r5, r6, r7, pc}
-_02246FF8:
- mov r0, #0xb
- strb r0, [r4, #1]
- mov r0, #0x27
- strh r0, [r4, #2]
- ldr r1, [sp, #4]
- add r0, r5, #0
- bl MOD11_0224682C
- str r0, [r4, #4]
- mov r0, #0x47
- str r0, [r4, #8]
- add sp, #0x14
- mov r0, #1
- pop {r4, r5, r6, r7, pc}
-_02247014:
- mov r0, #0x2a
- str r0, [sp]
- add r0, r7, #0
- add r1, r5, #0
- mov r2, #3
- add r3, r6, #0
- bl MOD11_02246870
- add r7, r0, #0
- beq _0224706E
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #8
- beq _02247048
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #8
- bne _0224706E
-_02247048:
- cmp r4, #0
- bne _02247052
- add sp, #0x14
- mov r0, #1
- pop {r4, r5, r6, r7, pc}
-_02247052:
- mov r0, #0xb
- strb r0, [r4, #1]
- mov r0, #0x27
- strh r0, [r4, #2]
- add r0, r5, #0
- add r1, r7, #0
- bl MOD11_0224682C
- str r0, [r4, #4]
- mov r0, #0x2a
- str r0, [r4, #8]
- add sp, #0x14
- mov r0, #1
- pop {r4, r5, r6, r7, pc}
-_0224706E:
- mov r0, #0xc0
- mul r0, r6
- add r3, r5, r0
- ldr r0, _022470AC ; =0x00002DB0
- ldr r1, _022470B0 ; =0x0400E000
- ldr r2, [r3, r0]
- tst r2, r1
- bne _02247088
- add r0, #0x10
- ldr r2, [r3, r0]
- lsr r0, r1, #0x10
- tst r0, r2
- beq _022470A0
-_02247088:
- cmp r4, #0
- bne _02247092
- add sp, #0x14
- mov r0, #1
- pop {r4, r5, r6, r7, pc}
-_02247092:
- mov r0, #0
- strb r0, [r4, #1]
- ldr r0, _022470B4 ; =0x0000031A
- add sp, #0x14
- strh r0, [r4, #2]
- mov r0, #1
- pop {r4, r5, r6, r7, pc}
-_022470A0:
- mov r0, #0
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- nop
-_022470A8: .word 0x00002DCC
-_022470AC: .word 0x00002DB0
-_022470B0: .word 0x0400E000
-_022470B4: .word 0x0000031A
-
- thumb_func_start MOD11_022470B8
-MOD11_022470B8: ; 0x022470B8
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r4, r2, #0
- str r0, [sp]
- bl MOD11_0222FF74
- add r7, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02249D90
- mov r6, #0
- cmp r0, #0x3e
- bne _022470EC
- mov r0, #0x75
- lsl r0, r0, #2
- add r3, r5, r0
- lsl r2, r4, #6
- ldr r1, [r3, r2]
- ldr r0, _02247184 ; =0xFFFFFE7F
- mov r6, #1
- and r1, r0
- mov r0, #0x80
- orr r0, r1
- str r0, [r3, r2]
- b _0224717E
-_022470EC:
- mov r0, #0xa9
- lsl r0, r0, #2
- tst r0, r7
- beq _022470F8
- mov r6, #1
- b _0224717E
-_022470F8:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x32
- bne _0224711C
- mov r1, #0x75
- lsl r1, r1, #2
- add r5, r5, r1
- lsl r3, r4, #6
- ldr r2, [r5, r3]
- ldr r0, _02247184 ; =0xFFFFFE7F
- sub r1, #0xd4
- and r0, r2
- orr r0, r1
- str r0, [r5, r3]
- mov r6, #1
- b _0224717E
-_0224711C:
- mov r0, #1
- add r1, r4, #0
- eor r1, r0
- mov r2, #0xc0
- add r3, r1, #0
- mul r3, r2
- add r1, r5, r3
- ldr r3, _02247188 ; =0x00002D46
- mul r2, r4
- add r2, r5, r2
- ldrh r1, [r1, r3]
- ldrh r2, [r2, r3]
- cmp r2, r1
- bhs _02247164
- lsl r0, r2, #7
- bl _s32_div_f
- ldr r1, _0224718C ; =0x0000311E
- ldrb r2, [r5, r1]
- mov r1, #0x1e
- mul r1, r2
- add r0, r1, r0
- lsl r0, r0, #0x18
- lsr r7, r0, #0x18
- bl rand_LC
- lsr r1, r0, #0x1f
- lsl r2, r0, #0x18
- sub r2, r2, r1
- mov r0, #0x18
- ror r2, r0
- add r0, r1, r2
- cmp r7, r0
- ble _02247166
- mov r6, #1
- b _02247166
-_02247164:
- add r6, r0, #0
-_02247166:
- cmp r6, #0
- bne _02247176
- ldr r0, [sp]
- add r1, r4, #0
- mov r2, #0
- mov r3, #0x47
- bl MOD11_022564A8
-_02247176:
- ldr r0, _0224718C ; =0x0000311E
- ldrb r1, [r5, r0]
- add r1, r1, #1
- strb r1, [r5, r0]
-_0224717E:
- add r0, r6, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02247184: .word 0xFFFFFE7F
-_02247188: .word 0x00002D46
-_0224718C: .word 0x0000311E
-
- thumb_func_start MOD11_02247190
-MOD11_02247190: ; 0x02247190
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD11_02246D1C
- cmp r0, #0x36
- bne _022471BA
- mov r2, #0xc0
- mul r2, r4
- add r3, r5, r2
- ldr r2, _022471C0 ; =0x00002DC8
- mov r0, #0x15
- lsl r0, r0, #4
- ldr r2, [r3, r2]
- ldr r1, [r5, r0]
- mov r0, #1
- lsl r2, r2, #1
- and r1, r0
- lsr r2, r2, #0x1f
- cmp r1, r2
- bne _022471BC
-_022471BA:
- mov r0, #0
-_022471BC:
- pop {r3, r4, r5, pc}
- nop
-_022471C0: .word 0x00002DC8
-
- thumb_func_start MOD11_022471C4
-MOD11_022471C4: ; 0x022471C4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r6, r1, #0
- mov r1, #0
- str r0, [sp]
- add r4, r2, #0
- add r5, r3, #0
- str r1, [sp, #4]
- bl MOD11_0222FF84
- str r0, [sp, #0xc]
- ldr r0, [sp]
- add r1, r4, #0
- bl MOD11_02230270
- str r0, [sp, #8]
- ldr r0, [sp, #0xc]
- mov r7, #0
- cmp r0, #0
- ble _0224722E
- ldr r4, _02247234 ; =0x00002D4C
-_022471EE:
- ldr r0, [sp]
- add r1, r7, #0
- bl MOD11_02230270
- ldr r1, [sp, #8]
- cmp r1, r0
- beq _02247224
- mov r0, #0xb7
- lsl r0, r0, #6
- ldr r1, [r6, r0]
- mov r0, #2
- lsl r0, r0, #0xc
- tst r0, r1
- beq _02247224
- mov r1, #0
- add r2, r6, #0
-_0224720E:
- ldrh r0, [r2, r4]
- cmp r5, r0
- beq _0224721C
- add r1, r1, #1
- add r2, r2, #2
- cmp r1, #4
- blt _0224720E
-_0224721C:
- cmp r1, #4
- beq _02247224
- mov r0, #1
- str r0, [sp, #4]
-_02247224:
- ldr r0, [sp, #0xc]
- add r7, r7, #1
- add r6, #0xc0
- cmp r7, r0
- blt _022471EE
-_0224722E:
- ldr r0, [sp, #4]
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02247234: .word 0x00002D4C
-
- thumb_func_start MOD11_02247238
-MOD11_02247238: ; 0x02247238
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r4, r2, #0
- mov r6, #0
- bl MOD11_0222FF84
- add r3, r6, #0
- cmp r0, #0
- ble _02247260
- mov r1, #0xb7
- lsl r1, r1, #6
-_0224724E:
- ldr r2, [r5, r1]
- tst r2, r4
- beq _02247258
- mov r6, #1
- b _02247260
-_02247258:
- add r3, r3, #1
- add r5, #0xc0
- cmp r3, r0
- blt _0224724E
-_02247260:
- add r0, r6, #0
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_02247264
-MOD11_02247264: ; 0x02247264
- ldr r2, _02247284 ; =0x0000216C
- mov r0, #0
- str r0, [r1, r2]
- add r0, r2, #0
- mov r3, #1
- sub r0, #0x1c
- str r3, [r1, r0]
- add r0, r2, #0
- sub r0, #0x30
- ldr r3, [r1, r0]
- ldr r0, _02247288 ; =0xFFEFFFFF
- sub r2, #0x30
- and r0, r3
- str r0, [r1, r2]
- bx lr
- nop
-_02247284: .word 0x0000216C
-_02247288: .word 0xFFEFFFFF
-
- thumb_func_start MOD11_0224728C
-MOD11_0224728C: ; 0x0224728C
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- str r0, [sp, #4]
- str r1, [sp, #8]
- bl MOD11_0222FF84
- mov r2, #0
- str r0, [sp, #0x14]
- cmp r0, #0
- ble _022472B0
- ldr r1, _02247310 ; =0x000021EC
-_022472A2:
- ldr r0, [sp, #8]
- add r0, r0, r2
- strb r2, [r0, r1]
- ldr r0, [sp, #0x14]
- add r2, r2, #1
- cmp r2, r0
- blt _022472A2
-_022472B0:
- mov r0, #0
- str r0, [sp, #0x10]
- ldr r0, [sp, #0x14]
- sub r0, r0, #1
- str r0, [sp, #0x18]
- cmp r0, #0
- ble _0224730C
-_022472BE:
- ldr r0, [sp, #0x10]
- add r4, r0, #1
- ldr r0, [sp, #0x14]
- cmp r4, r0
- bge _02247300
- ldr r1, [sp, #8]
- ldr r0, [sp, #0x10]
- add r6, r1, r0
-_022472CE:
- ldr r0, _02247310 ; =0x000021EC
- ldr r1, [sp, #8]
- ldrb r0, [r6, r0]
- str r0, [sp, #0xc]
- ldr r0, [sp, #8]
- ldr r2, [sp, #0xc]
- add r7, r0, r4
- ldr r0, _02247310 ; =0x000021EC
- ldrb r5, [r7, r0]
- mov r0, #1
- str r0, [sp]
- ldr r0, [sp, #4]
- add r3, r5, #0
- bl MOD11_02244248
- cmp r0, #0
- beq _022472F8
- ldr r0, _02247310 ; =0x000021EC
- ldr r1, [sp, #0xc]
- strb r5, [r6, r0]
- strb r1, [r7, r0]
-_022472F8:
- ldr r0, [sp, #0x14]
- add r4, r4, #1
- cmp r4, r0
- blt _022472CE
-_02247300:
- ldr r0, [sp, #0x10]
- add r1, r0, #1
- ldr r0, [sp, #0x18]
- str r1, [sp, #0x10]
- cmp r1, r0
- blt _022472BE
-_0224730C:
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02247310: .word 0x000021EC
-
- thumb_func_start MOD11_02247314
-MOD11_02247314: ; 0x02247314
- push {r3, r4}
- mov r2, #6
- lsl r2, r2, #6
- ldr r2, [r1, r2]
- mov r1, #7
- lsl r1, r1, #0xc
- mov r0, #0
- tst r1, r2
- beq _0224733E
- ldr r4, _02247344 ; =0x0225E278
- add r2, r0, #0
-_0224732A:
- ldrh r1, [r4]
- cmp r3, r1
- bne _02247336
- mov r0, #1
- pop {r3, r4}
- bx lr
-_02247336:
- add r2, r2, #1
- add r4, r4, #2
- cmp r2, #6
- blo _0224732A
-_0224733E:
- pop {r3, r4}
- bx lr
- nop
-_02247344: .word 0x0225E278
-
- thumb_func_start MOD11_02247348
-MOD11_02247348: ; 0x02247348
- push {r3, r4}
- mov r4, #0xc0
- mul r4, r2
- add r2, r1, r4
- ldr r1, _02247378 ; =0x00002DCC
- mov r0, #0
- ldr r1, [r2, r1]
- lsl r1, r1, #0xd
- lsr r1, r1, #0x1d
- beq _02247374
- ldr r4, _0224737C ; =0x0225E29E
- add r2, r0, #0
-_02247360:
- ldrh r1, [r4]
- cmp r3, r1
- bne _0224736C
- mov r0, #1
- pop {r3, r4}
- bx lr
-_0224736C:
- add r2, r2, #1
- add r4, r4, #2
- cmp r2, #0xe
- blo _02247360
-_02247374:
- pop {r3, r4}
- bx lr
- .align 2, 0
-_02247378: .word 0x00002DCC
-_0224737C: .word 0x0225E29E
-
- thumb_func_start MOD11_02247380
-MOD11_02247380: ; 0x02247380
- push {r4, r5, r6, r7}
- mov r0, #0xc1
- lsl r0, r0, #6
- ldr r3, [r1, r0]
- ldr r0, _022473E8 ; =0x00000183
- cmp r3, r0
- beq _022473E4
- ldr r4, [r1, #0x64]
- mov r0, #0xc0
- add r2, r4, #0
- mul r2, r0
- ldr r4, _022473EC ; =0x00002DCC
- add r0, r1, r2
- ldr r4, [r0, r4]
- lsl r4, r4, #0x13
- lsr r7, r4, #0x1d
- cmp r7, #4
- beq _022473E4
- mov r6, #0
- cmp r7, #0
- bls _022473BA
- ldr r4, _022473F0 ; =0x00002DF0
-_022473AC:
- ldrh r5, [r0, r4]
- cmp r3, r5
- beq _022473E4
- add r6, r6, #1
- add r0, r0, #2
- cmp r6, r7
- blo _022473AC
-_022473BA:
- add r2, r1, r2
- lsl r0, r6, #1
- add r2, r2, r0
- ldr r0, _022473F0 ; =0x00002DF0
- strh r3, [r2, r0]
- sub r0, #0x24
- add r2, r1, r0
- ldr r3, [r1, #0x64]
- mov r0, #0xc0
- add r1, r3, #0
- mul r1, r0
- ldr r3, [r2, r1]
- ldr r0, _022473F4 ; =0xFFFFE3FF
- and r0, r3
- lsl r3, r3, #0x13
- lsr r3, r3, #0x1d
- add r3, r3, #1
- lsl r3, r3, #0x1d
- lsr r3, r3, #0x13
- orr r0, r3
- str r0, [r2, r1]
-_022473E4:
- pop {r4, r5, r6, r7}
- bx lr
- .align 2, 0
-_022473E8: .word 0x00000183
-_022473EC: .word 0x00002DCC
-_022473F0: .word 0x00002DF0
-_022473F4: .word 0xFFFFE3FF
-
- thumb_func_start MOD11_022473F8
-MOD11_022473F8: ; 0x022473F8
- mov r3, #0xc0
- mul r3, r2
- add r3, r1, r3
- ldr r1, _02247414 ; =0x00002D4C
- mov r0, #0
-_02247402:
- ldrh r2, [r3, r1]
- cmp r2, #0
- beq _02247410
- add r0, r0, #1
- add r3, r3, #2
- cmp r0, #4
- blt _02247402
-_02247410:
- bx lr
- nop
-_02247414: .word 0x00002D4C
-
- thumb_func_start MOD11_02247418
-MOD11_02247418: ; 0x02247418
- push {r3, r4, r5, r6, r7, lr}
- add r4, r2, #0
- mov r2, #0
- add r5, r0, #0
- add r7, r1, #0
- str r2, [sp]
- bl MOD11_02246D1C
- cmp r0, #0x60
- bne _02247430
- mov r6, #0
- b _02247444
-_02247430:
- ldr r0, _02247594 ; =0x00002160
- ldr r6, [r5, r0]
- cmp r6, #0
- bne _02247444
- ldr r0, _02247598 ; =0x00003044
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _0224759C ; =0x000003E2
- ldrb r6, [r1, r0]
-_02247444:
- add r0, r5, #0
- add r1, r7, #0
- add r2, r4, #0
- mov r3, #0xa
- bl MOD11_02246D84
- cmp r0, #1
- bne _02247474
- cmp r6, #0xd
- bne _02247474
- cmp r7, r4
- beq _02247474
- mov r0, #0xc0
- mul r0, r4
- add r1, r5, r0
- ldr r0, _022475A0 ; =0x00002D90
- ldr r0, [r1, r0]
- mov r1, #4
- bl MOD11_022476C0
- ldr r1, _022475A4 ; =0x0000215C
- str r0, [r5, r1]
- mov r0, #0xb2
- str r0, [sp]
-_02247474:
- add r0, r5, #0
- add r1, r7, #0
- add r2, r4, #0
- mov r3, #0xb
- bl MOD11_02246D84
- cmp r0, #1
- bne _022474BA
- cmp r6, #0xb
- bne _022474BA
- ldr r0, _022475A8 ; =0x0000213C
- ldr r1, [r5, r0]
- mov r0, #0x20
- tst r0, r1
- bne _022474BA
- ldr r0, _02247598 ; =0x00003044
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _022475AC ; =0x000003E1
- ldrb r0, [r1, r0]
- cmp r0, #0
- beq _022474BA
- mov r0, #0xc0
- mul r0, r4
- add r1, r5, r0
- ldr r0, _022475A0 ; =0x00002D90
- ldr r0, [r1, r0]
- mov r1, #4
- bl MOD11_022476C0
- ldr r1, _022475A4 ; =0x0000215C
- str r0, [r5, r1]
- mov r0, #0xb2
- str r0, [sp]
-_022474BA:
- add r0, r5, #0
- add r1, r7, #0
- add r2, r4, #0
- mov r3, #0x12
- bl MOD11_02246D84
- cmp r0, #1
- bne _02247500
- cmp r6, #0xa
- bne _02247500
- mov r0, #0xc0
- mul r0, r4
- add r1, r5, r0
- ldr r0, _022475B0 ; =0x00002DAC
- ldr r0, [r1, r0]
- mov r1, #0x20
- tst r0, r1
- bne _02247500
- ldr r0, _022475A8 ; =0x0000213C
- ldr r0, [r5, r0]
- tst r0, r1
- bne _02247500
- ldr r0, _02247598 ; =0x00003044
- ldr r3, [r5, r0]
- lsl r0, r3, #4
- add r2, r5, r0
- ldr r0, _022475AC ; =0x000003E1
- ldrb r0, [r2, r0]
- cmp r0, #0
- bne _022474FC
- add r1, #0xe5
- cmp r3, r1
- bne _02247500
-_022474FC:
- mov r0, #0xb3
- str r0, [sp]
-_02247500:
- add r0, r5, #0
- add r1, r7, #0
- add r2, r4, #0
- mov r3, #0x2b
- bl MOD11_02246D84
- cmp r0, #1
- bne _0224752C
- ldr r0, _02247598 ; =0x00003044
- ldr r2, _022475B4 ; =0x0225FF84
- ldr r3, [r5, r0]
- mov r1, #0
-_02247518:
- ldrh r0, [r2]
- cmp r3, r0
- bne _02247524
- mov r0, #0xb5
- str r0, [sp]
- b _0224752C
-_02247524:
- add r1, r1, #1
- add r2, r2, #2
- cmp r1, #0xc
- blo _02247518
-_0224752C:
- add r0, r5, #0
- add r1, r7, #0
- add r2, r4, #0
- mov r3, #0x4e
- bl MOD11_02246D84
- cmp r0, #1
- bne _02247548
- cmp r6, #0xd
- bne _02247548
- cmp r7, r4
- beq _02247548
- mov r0, #0xb6
- str r0, [sp]
-_02247548:
- add r0, r5, #0
- add r1, r7, #0
- add r2, r4, #0
- mov r3, #0x57
- bl MOD11_02246D84
- cmp r0, #1
- bne _0224758E
- cmp r6, #0xb
- bne _0224758E
- ldr r0, _022475A8 ; =0x0000213C
- ldr r1, [r5, r0]
- mov r0, #0x20
- tst r0, r1
- bne _0224758E
- ldr r0, _02247598 ; =0x00003044
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _022475AC ; =0x000003E1
- ldrb r0, [r1, r0]
- cmp r0, #0
- beq _0224758E
- mov r0, #0xc0
- mul r0, r4
- add r1, r5, r0
- ldr r0, _022475A0 ; =0x00002D90
- ldr r0, [r1, r0]
- mov r1, #4
- bl MOD11_022476C0
- ldr r1, _022475A4 ; =0x0000215C
- str r0, [r5, r1]
- mov r0, #0xb2
- str r0, [sp]
-_0224758E:
- ldr r0, [sp]
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02247594: .word 0x00002160
-_02247598: .word 0x00003044
-_0224759C: .word 0x000003E2
-_022475A0: .word 0x00002D90
-_022475A4: .word 0x0000215C
-_022475A8: .word 0x0000213C
-_022475AC: .word 0x000003E1
-_022475B0: .word 0x00002DAC
-_022475B4: .word 0x0225FF84
-
- thumb_func_start MOD11_022475B8
-MOD11_022475B8: ; 0x022475B8
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r0, #0
- add r4, r1, #0
- mov r6, #0
- bl MOD11_02246D1C
- cmp r0, #3
- beq _022475D0
- cmp r0, #0x3d
- beq _02247616
- b _02247696
-_022475D0:
- mov r2, #0xc0
- add r0, r4, #0
- mul r0, r2
- ldr r3, _022476B4 ; =0x00002D8C
- add r0, r5, r0
- ldr r1, [r0, r3]
- cmp r1, #0
- beq _02247696
- add r1, r3, #0
- sub r1, #0x31
- ldrsb r1, [r0, r1]
- cmp r1, #0xc
- bge _02247696
- add r2, #0x90
- ldr r1, [r5, r2]
- add r3, #0x48
- ldr r0, [r0, r3]
- add r1, r1, #1
- cmp r1, r0
- beq _02247696
- add r0, r5, #0
- mov r1, #0x11
- add r0, #0x8c
- str r1, [r0]
- add r0, r5, #0
- mov r1, #3
- add r0, #0x88
- str r1, [r0]
- add r0, r5, #0
- add r0, #0x94
- str r4, [r0]
- mov r0, #0xc
- str r0, [sp]
- mov r6, #1
- b _02247696
-_02247616:
- ldr r1, _022476B8 ; =0x00002DAC
- mov r0, #0xc0
- add r7, r4, #0
- mul r7, r0
- add r0, r5, r1
- str r0, [sp, #4]
- ldr r0, [r0, r7]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- beq _02247696
- add r0, r5, r7
- sub r1, #0x20
- ldr r0, [r0, r1]
- cmp r0, #0
- beq _02247696
- bl rand_LC
- mov r1, #0xa
- bl _s32_div_f
- cmp r1, #3
- bge _02247696
- ldr r0, [sp, #4]
- mov r1, #7
- ldr r0, [r0, r7]
- tst r1, r0
- beq _02247656
- mov r0, #0x13
- add r1, r6, #0
- lsl r0, r0, #4
- str r1, [r5, r0]
- b _0224768A
-_02247656:
- ldr r1, _022476BC ; =0x00000F88
- tst r1, r0
- beq _02247666
- mov r0, #0x13
- mov r1, #1
- lsl r0, r0, #4
- str r1, [r5, r0]
- b _0224768A
-_02247666:
- mov r1, #0x10
- tst r1, r0
- beq _02247676
- mov r0, #0x13
- mov r1, #2
- lsl r0, r0, #4
- str r1, [r5, r0]
- b _0224768A
-_02247676:
- mov r1, #0x40
- tst r0, r1
- beq _02247684
- mov r0, #3
- add r1, #0xf0
- str r0, [r5, r1]
- b _0224768A
-_02247684:
- mov r0, #4
- add r1, #0xf0
- str r0, [r5, r1]
-_0224768A:
- mov r0, #0x46
- lsl r0, r0, #2
- str r4, [r5, r0]
- mov r0, #0xbe
- str r0, [sp]
- mov r6, #1
-_02247696:
- cmp r6, #1
- bne _022476AC
- ldr r2, [sp]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r5, #8]
- str r0, [r5, #0xc]
- mov r0, #0x15
- str r0, [r5, #8]
-_022476AC:
- add r0, r6, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022476B4: .word 0x00002D8C
-_022476B8: .word 0x00002DAC
-_022476BC: .word 0x00000F88
-
- thumb_func_start MOD11_022476C0
-MOD11_022476C0: ; 0x022476C0
- push {r4, lr}
- cmp r0, #0
- bge _022476CC
- mov r4, #0
- mvn r4, r4
- b _022476CE
-_022476CC:
- mov r4, #1
-_022476CE:
- bl _s32_div_f
- cmp r0, #0
- bne _022476D8
- add r0, r4, #0
-_022476D8:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022476DC
-MOD11_022476DC: ; 0x022476DC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0xd0
- add r7, r0, #0
- add r4, r1, #0
- bl MOD11_0222FF84
- str r0, [sp, #0x80]
- mov r0, #0
- str r0, [sp, #0x84]
- str r0, [sp, #0xcc]
-
- thumb_func_start MOD11_022476F0
-MOD11_022476F0: ; 0x022476F0
- ldr r0, [r4, #0x58]
- cmp r0, #0xf
- bls _022476FA
- bl _02248282
-_022476FA:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02247706: ; jump table
- .short _02247726 - _02247706 - 2 ; case 0
- .short _022477A2 - _02247706 - 2 ; case 1
- .short _0224785A - _02247706 - 2 ; case 2
- .short _0224796A - _02247706 - 2 ; case 3
- .short _022479E0 - _02247706 - 2 ; case 4
- .short _02247B34 - _02247706 - 2 ; case 5
- .short _02247C74 - _02247706 - 2 ; case 6
- .short _02247E76 - _02247706 - 2 ; case 7
- .short _02247FCC - _02247706 - 2 ; case 8
- .short _022480A4 - _02247706 - 2 ; case 9
- .short _02248118 - _02247706 - 2 ; case 10
- .short _022481A6 - _02247706 - 2 ; case 11
- .short _022481C4 - _02247706 - 2 ; case 12
- .short _022481FE - _02247706 - 2 ; case 13
- .short _0224823A - _02247706 - 2 ; case 14
- .short _0224827A - _02247706 - 2 ; case 15
-_02247726:
- ldr r0, _02247A18 ; =0x00003121
- ldrb r0, [r4, r0]
- cmp r0, #0
- bne _02247798
- add r0, r7, #0
- bl MOD11_0223125C
- cmp r0, #0xf
- bhi _0224778C
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02247744: ; jump table
- .short _0224778C - _02247744 - 2 ; case 0
- .short _0224778C - _02247744 - 2 ; case 1
- .short _02247764 - _02247744 - 2 ; case 2
- .short _02247764 - _02247744 - 2 ; case 3
- .short _02247764 - _02247744 - 2 ; case 4
- .short _0224776E - _02247744 - 2 ; case 5
- .short _0224776E - _02247744 - 2 ; case 6
- .short _0224776E - _02247744 - 2 ; case 7
- .short _0224778C - _02247744 - 2 ; case 8
- .short _0224778C - _02247744 - 2 ; case 9
- .short _0224777A - _02247744 - 2 ; case 10
- .short _0224778C - _02247744 - 2 ; case 11
- .short _0224778C - _02247744 - 2 ; case 12
- .short _0224778C - _02247744 - 2 ; case 13
- .short _02247784 - _02247744 - 2 ; case 14
- .short _02247784 - _02247744 - 2 ; case 15
-_02247764:
- ldr r0, _02247A1C ; =0x0000010F
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _0224778C
-_0224776E:
- mov r0, #0x11
- lsl r0, r0, #4
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _0224778C
-_0224777A:
- ldr r0, _02247A20 ; =0x00000111
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _0224778C
-_02247784:
- ldr r0, _02247A24 ; =0x00000112
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
-_0224778C:
- ldr r0, [sp, #0x84]
- cmp r0, #1
- bne _02247798
- ldr r0, _02247A18 ; =0x00003121
- mov r1, #1
- strb r1, [r4, r0]
-_02247798:
- ldr r0, [r4, #0x58]
- add r0, r0, #1
- str r0, [r4, #0x58]
- bl _02248282
-_022477A2:
- ldr r0, [sp, #0x80]
- mov r6, #0
- cmp r0, #0
- ble _02247846
- ldr r0, _02247A28 ; =0x00002D68
- add r0, r4, r0
- str r0, [sp, #0x90]
-_022477B0:
- ldr r0, _02247A2C ; =0x000021EC
- add r1, r4, r6
- ldrb r5, [r1, r0]
- add r0, r7, #0
- mov r2, #0
- add r1, r5, #0
- bl MOD11_02230308
- str r0, [sp, #0x88]
- add r0, r7, #0
- add r1, r5, #0
- mov r2, #2
- bl MOD11_02230308
- add r2, r0, #0
- ldr r1, [sp, #0x88]
- add r0, r4, #0
- bl MOD11_0224C84C
- mov r1, #0x12
- lsl r1, r1, #4
- str r0, [r4, r1]
- mov r0, #0xc0
- mul r0, r5
- ldr r1, [sp, #0x90]
- str r0, [sp, #0x8c]
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1f
- bne _0224783E
- mov r0, #0x12
- lsl r0, r0, #4
- ldr r2, [r4, r0]
- cmp r2, #0xff
- beq _0224783E
- ldr r0, [sp, #0x8c]
- add r1, r4, r0
- ldr r0, _02247A30 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0224783E
- mov r0, #0xc0
- mul r0, r2
- add r1, r4, r0
- ldr r0, _02247A30 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0224783E
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x24
- bne _0224783E
- ldr r1, [sp, #0x90]
- ldr r0, [sp, #0x8c]
- ldr r1, [r1, r0]
- mov r0, #4
- add r2, r1, #0
- orr r2, r0
- ldr r1, [sp, #0x90]
- ldr r0, [sp, #0x8c]
- str r2, [r1, r0]
- mov r0, #0x46
- lsl r0, r0, #2
- str r5, [r4, r0]
- mov r0, #0xbb
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _02247846
-_0224783E:
- ldr r0, [sp, #0x80]
- add r6, r6, #1
- cmp r6, r0
- blt _022477B0
-_02247846:
- ldr r0, [sp, #0x80]
- cmp r6, r0
- beq _02247850
- bl _02248282
-_02247850:
- ldr r0, [r4, #0x58]
- add r0, r0, #1
- str r0, [r4, #0x58]
- bl _02248282
-_0224785A:
- mov r0, #0
- str r0, [sp, #0x2c]
- ldr r0, [sp, #0x80]
- cmp r0, #0
- ble _02247958
- ldr r0, _02247A28 ; =0x00002D68
- add r6, r4, r0
- mov r0, #1
- str r0, [sp, #0xbc]
- str r0, [sp, #0xb8]
- str r0, [sp, #0xb4]
- str r0, [sp, #0xb0]
-_02247872:
- ldr r0, [sp, #0x2c]
- add r1, r4, r0
- ldr r0, _02247A2C ; =0x000021EC
- ldrb r1, [r1, r0]
- mov r0, #0xc0
- add r5, r1, #0
- mul r5, r0
- ldr r0, [r6, r5]
- str r1, [sp, #0x10]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- bne _0224793C
- ldr r0, _02247A30 ; =0x00002D8C
- add r1, r4, r5
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0224793C
- ldr r1, [sp, #0x10]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x2d
- bgt _022478A8
- bge _022478D8
- cmp r0, #2
- beq _022478B6
- b _0224793C
-_022478A8:
- cmp r0, #0x46
- bgt _022478B0
- beq _022478FA
- b _0224793C
-_022478B0:
- cmp r0, #0x75
- beq _0224791C
- b _0224793C
-_022478B6:
- ldr r0, [r6, r5]
- ldr r1, [sp, #0xb0]
- bic r0, r1
- mov r1, #1
- orr r0, r1
- str r0, [r6, r5]
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r0, #2
- tst r0, r1
- bne _0224793C
- mov r0, #0xb7
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _0224793C
-_022478D8:
- ldr r0, [r6, r5]
- ldr r1, [sp, #0xb4]
- bic r0, r1
- mov r1, #1
- orr r0, r1
- str r0, [r6, r5]
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r0, #8
- tst r0, r1
- bne _0224793C
- mov r0, #0xb8
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _0224793C
-_022478FA:
- ldr r0, [r6, r5]
- ldr r1, [sp, #0xb8]
- bic r0, r1
- mov r1, #1
- orr r0, r1
- str r0, [r6, r5]
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r0, #0x20
- tst r0, r1
- bne _0224793C
- mov r0, #0xb9
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _0224793C
-_0224791C:
- ldr r0, [r6, r5]
- ldr r1, [sp, #0xbc]
- bic r0, r1
- mov r1, #1
- orr r0, r1
- str r0, [r6, r5]
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r4, r0]
- mov r0, #0x80
- tst r0, r1
- bne _0224793C
- mov r0, #0xfc
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
-_0224793C:
- ldr r0, [sp, #0x84]
- cmp r0, #1
- bne _0224794C
- mov r1, #0x46
- ldr r0, [sp, #0x10]
- lsl r1, r1, #2
- str r0, [r4, r1]
- b _02247958
-_0224794C:
- ldr r0, [sp, #0x2c]
- add r1, r0, #1
- ldr r0, [sp, #0x80]
- str r1, [sp, #0x2c]
- cmp r1, r0
- blt _02247872
-_02247958:
- ldr r1, [sp, #0x2c]
- ldr r0, [sp, #0x80]
- cmp r1, r0
- bne _022479D2
- ldr r0, [r4, #0x58]
- add r0, r0, #1
- str r0, [r4, #0x58]
- bl _02248282
-_0224796A:
- ldr r0, [sp, #0x80]
- mov r5, #0
- cmp r0, #0
- ble _022479CC
- ldr r0, _02247A28 ; =0x00002D68
- add r0, r4, r0
- str r0, [sp, #0x94]
-_02247978:
- ldr r0, _02247A2C ; =0x000021EC
- add r1, r4, r5
- ldrb r1, [r1, r0]
- mov r0, #0xc0
- add r6, r1, #0
- mul r6, r0
- ldr r0, [sp, #0x94]
- str r1, [sp, #0x14]
- ldr r0, [r0, r6]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1f
- bne _022479C4
- ldr r0, _02247A30 ; =0x00002D8C
- add r1, r4, r6
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _022479C4
- ldr r1, [sp, #0x14]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x16
- bne _022479C4
- ldr r0, [sp, #0x94]
- ldr r1, [r0, r6]
- mov r0, #2
- orr r1, r0
- ldr r0, [sp, #0x94]
- str r1, [r0, r6]
- mov r1, #0x46
- ldr r0, [sp, #0x14]
- lsl r1, r1, #2
- str r0, [r4, r1]
- mov r0, #0xba
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _022479CC
-_022479C4:
- ldr r0, [sp, #0x80]
- add r5, r5, #1
- cmp r5, r0
- blt _02247978
-_022479CC:
- ldr r0, [sp, #0x80]
- cmp r5, r0
- beq _022479D6
-_022479D2:
- bl _02248282
-_022479D6:
- ldr r0, [r4, #0x58]
- add r0, r0, #1
- str r0, [r4, #0x58]
- bl _02248282
-_022479E0:
- mov r0, #0
- str r0, [sp, #0x30]
- ldr r0, [sp, #0x80]
- cmp r0, #0
- bgt _022479EC
- b _02247B22
-_022479EC:
- ldr r0, _02247A28 ; =0x00002D68
- add r0, r4, r0
- str r0, [sp, #0x9c]
-_022479F2:
- ldr r0, [sp, #0x30]
- add r1, r4, r0
- ldr r0, _02247A2C ; =0x000021EC
- ldrb r1, [r1, r0]
- mov r0, #0xc0
- mul r0, r1
- str r1, [sp, #0x18]
- ldr r1, [sp, #0x9c]
- str r0, [sp, #0x98]
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1f
- beq _02247A0E
- b _02247B14
-_02247A0E:
- ldr r0, [sp, #0x98]
- add r1, r4, r0
- ldr r0, _02247A30 ; =0x00002D8C
- b _02247A34
- nop
-_02247A18: .word 0x00003121
-_02247A1C: .word 0x0000010F
-_02247A20: .word 0x00000111
-_02247A24: .word 0x00000112
-_02247A28: .word 0x00002D68
-_02247A2C: .word 0x000021EC
-_02247A30: .word 0x00002D8C
-_02247A34:
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02247B14
- ldr r1, [sp, #0x18]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x58
- bne _02247B14
- mov r0, #0
- str r0, [sp, #0x78]
- str r0, [sp, #0x74]
- str r0, [sp, #0x7c]
- ldr r0, [sp, #0x80]
- cmp r0, #0
- ble _02247ACE
- add r5, r4, #0
-_02247A56:
- ldr r1, [sp, #0x18]
- add r0, r7, #0
- bl MOD11_02230270
- add r6, r0, #0
- ldr r1, [sp, #0x7c]
- add r0, r7, #0
- bl MOD11_02230270
- cmp r6, r0
- beq _02247AC0
- ldr r0, _02247D60 ; =0x00002DB0
- ldr r1, [r5, r0]
- mov r0, #1
- lsl r0, r0, #0x18
- tst r0, r1
- bne _02247AC0
- ldr r0, _02247D64 ; =0x00002D8C
- ldr r0, [r5, r0]
- cmp r0, #0
- beq _02247AC0
- ldr r0, _02247D68 ; =0x00002D5A
- ldrsb r0, [r5, r0]
- lsl r2, r0, #1
- ldr r0, _02247D6C ; =0x0225E284
- add r1, r0, r2
- ldr r0, _02247D70 ; =0x00002D44
- ldrb r1, [r1, #1]
- ldrh r3, [r5, r0]
- ldr r0, _02247D6C ; =0x0225E284
- ldrb r0, [r0, r2]
- mul r0, r3
- bl _s32_div_f
- ldr r1, [sp, #0x78]
- add r0, r1, r0
- str r0, [sp, #0x78]
- ldr r0, _02247D74 ; =0x00002D5D
- ldrsb r0, [r5, r0]
- lsl r2, r0, #1
- ldr r0, _02247D6C ; =0x0225E284
- add r1, r0, r2
- ldr r0, _02247D78 ; =0x00002D4A
- ldrb r1, [r1, #1]
- ldrh r3, [r5, r0]
- ldr r0, _02247D6C ; =0x0225E284
- ldrb r0, [r0, r2]
- mul r0, r3
- bl _s32_div_f
- ldr r1, [sp, #0x74]
- add r0, r1, r0
- str r0, [sp, #0x74]
-_02247AC0:
- ldr r0, [sp, #0x7c]
- add r5, #0xc0
- add r1, r0, #1
- ldr r0, [sp, #0x80]
- str r1, [sp, #0x7c]
- cmp r1, r0
- blt _02247A56
-_02247ACE:
- ldr r1, [sp, #0x9c]
- ldr r0, [sp, #0x98]
- ldr r1, [r1, r0]
- mov r0, #8
- add r2, r1, #0
- orr r2, r0
- ldr r1, [sp, #0x9c]
- ldr r0, [sp, #0x98]
- str r2, [r1, r0]
- ldr r1, [sp, #0x78]
- ldr r0, [sp, #0x74]
- add r0, r1, r0
- beq _02247B14
- ldr r0, [sp, #0x74]
- cmp r1, r0
- blt _02247AF2
- mov r1, #0x12
- b _02247AF4
-_02247AF2:
- mov r1, #0xf
-_02247AF4:
- add r0, r4, #0
- add r0, #0x8c
- str r1, [r0]
- add r0, r4, #0
- mov r1, #3
- add r0, #0x88
- str r1, [r0]
- add r1, r4, #0
- ldr r0, [sp, #0x18]
- add r1, #0x94
- str r0, [r1]
- mov r0, #0xc
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _02247B22
-_02247B14:
- ldr r0, [sp, #0x30]
- add r1, r0, #1
- ldr r0, [sp, #0x80]
- str r1, [sp, #0x30]
- cmp r1, r0
- bge _02247B22
- b _022479F2
-_02247B22:
- ldr r1, [sp, #0x30]
- ldr r0, [sp, #0x80]
- cmp r1, r0
- beq _02247B2C
- b _02248282
-_02247B2C:
- ldr r0, [r4, #0x58]
- add r0, r0, #1
- str r0, [r4, #0x58]
- b _02248282
-_02247B34:
- mov r0, #0
- str r0, [sp, #0x34]
- ldr r0, [sp, #0x80]
- cmp r0, #0
- bgt _02247B40
- b _02247C62
-_02247B40:
- ldr r0, _02247D7C ; =0x00002D68
- add r6, r4, r0
-_02247B44:
- ldr r0, [sp, #0x34]
- add r1, r4, r0
- ldr r0, _02247D80 ; =0x000021EC
- ldrb r1, [r1, r0]
- mov r0, #0xc0
- add r5, r1, #0
- mul r5, r0
- ldr r0, [r6, r5]
- str r1, [sp, #0x1c]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x1f
- bne _02247C54
- ldr r0, _02247D64 ; =0x00002D8C
- add r1, r4, r5
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02247C54
- ldr r1, [sp, #0x1c]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x6b
- bne _02247C54
- ldr r1, [r6, r5]
- mov r0, #0x10
- orr r0, r1
- str r0, [r6, r5]
- mov r0, #0
- str r0, [sp, #0x70]
- ldr r0, [sp, #0x80]
- cmp r0, #0
- ble _02247C40
- add r0, r4, r5
- str r4, [sp, #0x50]
- str r0, [sp, #0x4c]
-_02247B8A:
- ldr r1, [sp, #0x1c]
- add r0, r7, #0
- bl MOD11_02230270
- add r5, r0, #0
- ldr r1, [sp, #0x70]
- add r0, r7, #0
- bl MOD11_02230270
- cmp r5, r0
- beq _02247C2E
- ldr r1, [sp, #0x50]
- ldr r0, _02247D64 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02247C2E
- mov r0, #0
- str r0, [sp, #0x6c]
- add r6, r1, #0
-_02247BB0:
- ldr r0, _02247D84 ; =0x00002D4C
- ldrh r5, [r6, r0]
- cmp r5, #0
- beq _02247C1C
- mov r0, #0
- str r0, [sp, #0xc8]
- ldr r0, [sp, #0x70]
- add r1, r4, #0
- str r0, [sp]
- ldr r0, [sp, #0x1c]
- add r2, r5, #0
- str r0, [sp, #4]
- ldr r0, _02247D88 ; =0x00002144
- mov r3, #0
- ldr r0, [r4, r0]
- str r0, [sp, #8]
- add r0, sp, #0xc8
- str r0, [sp, #0xc]
- add r0, r7, #0
- bl MOD11_02246274
- ldr r1, _02247D88 ; =0x00002144
- str r0, [r4, r1]
- ldr r1, [sp, #0xc8]
- mov r0, #8
- tst r0, r1
- bne _02247C1C
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0224C8C0
- cmp r0, #0
- bne _02247C1C
- ldr r1, [sp, #0xc8]
- mov r0, #2
- tst r0, r1
- bne _02247C16
- lsl r0, r5, #4
- add r1, r4, r0
- ldr r0, _02247D8C ; =0x000003DE
- ldrh r0, [r1, r0]
- cmp r0, #0x26
- bne _02247C1C
- ldr r1, [sp, #0x4c]
- ldr r0, _02247D90 ; =0x00002D74
- ldr r2, [sp, #0x50]
- ldrb r0, [r1, r0]
- ldr r1, _02247D90 ; =0x00002D74
- ldrb r1, [r2, r1]
- cmp r0, r1
- bhi _02247C1C
-_02247C16:
- mov r0, #1
- str r0, [sp, #0x84]
- b _02247C28
-_02247C1C:
- ldr r0, [sp, #0x6c]
- add r6, r6, #2
- add r0, r0, #1
- str r0, [sp, #0x6c]
- cmp r0, #4
- blt _02247BB0
-_02247C28:
- ldr r0, [sp, #0x84]
- cmp r0, #1
- beq _02247C40
-_02247C2E:
- ldr r0, [sp, #0x50]
- add r0, #0xc0
- str r0, [sp, #0x50]
- ldr r0, [sp, #0x70]
- add r1, r0, #1
- ldr r0, [sp, #0x80]
- str r1, [sp, #0x70]
- cmp r1, r0
- blt _02247B8A
-_02247C40:
- ldr r0, [sp, #0x84]
- cmp r0, #1
- bne _02247C62
- mov r1, #0x46
- ldr r0, [sp, #0x1c]
- lsl r1, r1, #2
- str r0, [r4, r1]
- mov r0, #0xc2
- str r0, [sp, #0xcc]
- b _02247C62
-_02247C54:
- ldr r0, [sp, #0x34]
- add r1, r0, #1
- ldr r0, [sp, #0x80]
- str r1, [sp, #0x34]
- cmp r1, r0
- bge _02247C62
- b _02247B44
-_02247C62:
- ldr r1, [sp, #0x34]
- ldr r0, [sp, #0x80]
- cmp r1, r0
- beq _02247C6C
- b _02248282
-_02247C6C:
- ldr r0, [r4, #0x58]
- add r0, r0, #1
- str r0, [r4, #0x58]
- b _02248282
-_02247C74:
- mov r0, #0
- str r0, [sp, #0x38]
- ldr r0, [sp, #0x80]
- cmp r0, #0
- bgt _02247C80
- b _02247E64
-_02247C80:
- ldr r0, _02247D7C ; =0x00002D68
- add r6, r4, r0
-_02247C84:
- ldr r0, [sp, #0x38]
- add r1, r4, r0
- ldr r0, _02247D80 ; =0x000021EC
- ldrb r1, [r1, r0]
- mov r0, #0xc0
- add r5, r1, #0
- mul r5, r0
- ldr r0, [r6, r5]
- str r1, [sp, #0x20]
- lsl r0, r0, #0x1a
- lsr r0, r0, #0x1f
- bne _02247CB2
- ldr r0, _02247D64 ; =0x00002D8C
- add r1, r4, r5
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02247CB2
- ldr r1, [sp, #0x20]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x6c
- beq _02247CB4
-_02247CB2:
- b _02247E56
-_02247CB4:
- ldr r1, [r6, r5]
- mov r0, #0x20
- orr r0, r1
- str r0, [r6, r5]
- mov r5, #0
- ldr r0, [sp, #0x80]
- str r5, [sp, #0x5c]
- str r5, [sp, #0x68]
- cmp r0, #0
- bgt _02247CCA
- b _02247DF2
-_02247CCA:
- str r4, [sp, #0x58]
-_02247CCC:
- ldr r1, [sp, #0x20]
- add r0, r7, #0
- bl MOD11_02230270
- add r6, r0, #0
- ldr r1, [sp, #0x68]
- add r0, r7, #0
- bl MOD11_02230270
- cmp r6, r0
- beq _02247DDE
- ldr r1, [sp, #0x58]
- ldr r0, _02247D64 ; =0x00002D8C
- ldr r1, [r1, r0]
- cmp r1, #0
- beq _02247DDE
- ldr r0, [sp, #0x5c]
- add r0, r0, r1
- str r0, [sp, #0x5c]
- mov r0, #0
- str r0, [sp, #0x64]
- ldr r0, [sp, #0x58]
- str r0, [sp, #0x54]
-_02247CFA:
- ldr r1, [sp, #0x54]
- ldr r0, _02247D84 ; =0x00002D4C
- ldrh r6, [r1, r0]
- ldr r1, _02247D94 ; =0x000003E1
- lsl r0, r6, #4
- add r0, r4, r0
- ldrb r1, [r0, r1]
- str r1, [sp, #0x60]
- cmp r1, #1
- bne _02247DB2
- ldr r1, _02247D8C ; =0x000003DE
- ldrh r0, [r0, r1]
- cmp r0, #0x59
- bgt _02247D1E
- bge _02247D46
- cmp r0, #0x26
- beq _02247D2C
- b _02247D98
-_02247D1E:
- cmp r0, #0x90
- bgt _02247D26
- beq _02247D46
- b _02247D98
-_02247D26:
- cmp r0, #0xe3
- beq _02247D46
- b _02247D98
-_02247D2C:
- cmp r5, #0x96
- blo _02247D3C
- bne _02247DCE
- bl rand_LC
- mov r1, #1
- tst r0, r1
- beq _02247DCE
-_02247D3C:
- mov r5, #0x96
- add r0, r5, #0
- add r0, #0x8e
- str r6, [r4, r0]
- b _02247DCE
-_02247D46:
- cmp r5, #0x78
- blo _02247D56
- bne _02247DCE
- bl rand_LC
- mov r1, #1
- tst r0, r1
- beq _02247DCE
-_02247D56:
- mov r5, #0x78
- add r0, r5, #0
- add r0, #0xac
- str r6, [r4, r0]
- b _02247DCE
- .align 2, 0
-_02247D60: .word 0x00002DB0
-_02247D64: .word 0x00002D8C
-_02247D68: .word 0x00002D5A
-_02247D6C: .word 0x0225E284
-_02247D70: .word 0x00002D44
-_02247D74: .word 0x00002D5D
-_02247D78: .word 0x00002D4A
-_02247D7C: .word 0x00002D68
-_02247D80: .word 0x000021EC
-_02247D84: .word 0x00002D4C
-_02247D88: .word 0x00002144
-_02247D8C: .word 0x000003DE
-_02247D90: .word 0x00002D74
-_02247D94: .word 0x000003E1
-_02247D98:
- cmp r5, #0x50
- blo _02247DA8
- bne _02247DCE
- bl rand_LC
- mov r1, #1
- tst r0, r1
- beq _02247DCE
-_02247DA8:
- mov r5, #0x50
- add r0, r5, #0
- add r0, #0xd4
- str r6, [r4, r0]
- b _02247DCE
-_02247DB2:
- add r0, r1, #0
- cmp r5, r0
- blo _02247DC6
- cmp r5, r0
- bne _02247DCE
- bl rand_LC
- mov r1, #1
- tst r0, r1
- beq _02247DCE
-_02247DC6:
- mov r0, #0x49
- lsl r0, r0, #2
- ldr r5, [sp, #0x60]
- str r6, [r4, r0]
-_02247DCE:
- ldr r0, [sp, #0x54]
- add r0, r0, #2
- str r0, [sp, #0x54]
- ldr r0, [sp, #0x64]
- add r0, r0, #1
- str r0, [sp, #0x64]
- cmp r0, #4
- blt _02247CFA
-_02247DDE:
- ldr r0, [sp, #0x58]
- add r0, #0xc0
- str r0, [sp, #0x58]
- ldr r0, [sp, #0x68]
- add r1, r0, #1
- ldr r0, [sp, #0x80]
- str r1, [sp, #0x68]
- cmp r1, r0
- bge _02247DF2
- b _02247CCC
-_02247DF2:
- cmp r5, #0
- beq _02247E08
- mov r1, #0x46
- ldr r0, [sp, #0x20]
- lsl r1, r1, #2
- str r0, [r4, r1]
- mov r0, #0xc3
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _02247E64
-_02247E08:
- ldr r0, [sp, #0x5c]
- cmp r0, #0
- beq _02247E64
- ldr r2, [sp, #0x20]
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_022482A4
- add r5, r0, #0
- add r0, r7, #0
- add r1, r4, #0
- add r2, r5, #0
- bl MOD11_022473F8
- add r6, r0, #0
- bl rand_LC
- add r1, r6, #0
- bl _s32_div_f
- mov r0, #0xc0
- add r2, r5, #0
- mul r2, r0
- lsl r3, r1, #1
- add r1, r4, r2
- add r2, r3, r1
- ldr r1, _02248144 ; =0x00002D4C
- ldrh r2, [r2, r1]
- add r1, r0, #0
- add r1, #0x64
- str r2, [r4, r1]
- ldr r1, [sp, #0x20]
- add r0, #0x58
- str r1, [r4, r0]
- mov r0, #0xc3
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _02247E64
-_02247E56:
- ldr r0, [sp, #0x38]
- add r1, r0, #1
- ldr r0, [sp, #0x80]
- str r1, [sp, #0x38]
- cmp r1, r0
- bge _02247E64
- b _02247C84
-_02247E64:
- ldr r1, [sp, #0x38]
- ldr r0, [sp, #0x80]
- cmp r1, r0
- beq _02247E6E
- b _02248282
-_02247E6E:
- ldr r0, [r4, #0x58]
- add r0, r0, #1
- str r0, [r4, #0x58]
- b _02248282
-_02247E76:
- mov r0, #0
- str r0, [sp, #0x3c]
- ldr r0, [sp, #0x80]
- cmp r0, #0
- bgt _02247E82
- b _02247FBA
-_02247E82:
- ldr r0, _02248148 ; =0x00002D68
- add r0, r4, r0
- str r0, [sp, #0xa0]
-_02247E88:
- ldr r0, [sp, #0x3c]
- add r1, r4, r0
- ldr r0, _0224814C ; =0x000021EC
- ldrb r5, [r1, r0]
- mov r0, #0xc0
- add r6, r5, #0
- mul r6, r0
- ldr r0, [sp, #0xa0]
- ldr r0, [r0, r6]
- lsl r0, r0, #0x17
- lsr r0, r0, #0x1f
- bne _02247F9A
- ldr r0, _02248150 ; =0x00002D8C
- add r1, r4, r6
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02247F9A
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x77
- bne _02247F9A
- ldr r0, [sp, #0xa0]
- ldr r1, [r0, r6]
- mov r0, #1
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, [sp, #0xa0]
- str r1, [r0, r6]
- add r0, r7, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _02247F74
- add r0, r7, #0
- add r1, r5, #0
- mov r2, #0
- bl MOD11_02230308
- str r0, [sp, #0xc0]
- add r0, r7, #0
- add r1, r5, #0
- mov r2, #2
- bl MOD11_02230308
- ldr r2, [sp, #0xc0]
- mov r1, #0xc0
- mul r1, r2
- ldr r2, _02248150 ; =0x00002D8C
- add r1, r4, r1
- ldr r3, [r1, r2]
- str r0, [sp, #0xc4]
- cmp r3, #0
- beq _02247F38
- add r2, #0x2c
- ldrh r2, [r1, r2]
- cmp r2, #0
- beq _02247F38
- mov r2, #0xc0
- mul r2, r0
- add r0, r4, r2
- ldr r2, _02248150 ; =0x00002D8C
- ldr r2, [r0, r2]
- cmp r2, #0
- beq _02247F38
- ldr r2, _02248154 ; =0x00002DB8
- ldrh r0, [r0, r2]
- cmp r0, #0
- beq _02247F38
- bl rand_LC
- lsl r0, r0, #0x1f
- lsr r1, r0, #0x1d
- add r0, sp, #0xc0
- ldr r1, [r0, r1]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _02248154 ; =0x00002DB8
- ldrh r1, [r1, r0]
- mov r0, #0x4a
- lsl r0, r0, #2
- str r1, [r4, r0]
- mov r0, #1
- str r0, [sp, #0x84]
- b _02247F9A
-_02247F38:
- cmp r3, #0
- beq _02247F50
- ldr r0, _02248154 ; =0x00002DB8
- ldrh r1, [r1, r0]
- cmp r1, #0
- beq _02247F50
- mov r0, #0x4a
- lsl r0, r0, #2
- str r1, [r4, r0]
- mov r0, #1
- str r0, [sp, #0x84]
- b _02247F9A
-_02247F50:
- ldr r1, [sp, #0xc4]
- mov r0, #0xc0
- mul r0, r1
- ldr r1, _02248150 ; =0x00002D8C
- add r0, r4, r0
- ldr r1, [r0, r1]
- cmp r1, #0
- beq _02247F9A
- ldr r1, _02248154 ; =0x00002DB8
- ldrh r1, [r0, r1]
- cmp r1, #0
- beq _02247F9A
- mov r0, #0x4a
- lsl r0, r0, #2
- str r1, [r4, r0]
- mov r0, #1
- str r0, [sp, #0x84]
- b _02247F9A
-_02247F74:
- mov r0, #1
- add r1, r5, #0
- eor r1, r0
- mov r0, #0xc0
- mul r0, r1
- ldr r1, _02248150 ; =0x00002D8C
- add r0, r4, r0
- ldr r1, [r0, r1]
- cmp r1, #0
- beq _02247F9A
- ldr r1, _02248154 ; =0x00002DB8
- ldrh r1, [r0, r1]
- cmp r1, #0
- beq _02247F9A
- mov r0, #0x4a
- lsl r0, r0, #2
- str r1, [r4, r0]
- mov r0, #1
- str r0, [sp, #0x84]
-_02247F9A:
- ldr r0, [sp, #0x84]
- cmp r0, #1
- bne _02247FAC
- mov r0, #0x46
- lsl r0, r0, #2
- str r5, [r4, r0]
- mov r0, #0xfd
- str r0, [sp, #0xcc]
- b _02247FBA
-_02247FAC:
- ldr r0, [sp, #0x3c]
- add r1, r0, #1
- ldr r0, [sp, #0x80]
- str r1, [sp, #0x3c]
- cmp r1, r0
- bge _02247FBA
- b _02247E88
-_02247FBA:
- ldr r1, [sp, #0x3c]
- ldr r0, [sp, #0x80]
- cmp r1, r0
- beq _02247FC4
- b _02248282
-_02247FC4:
- ldr r0, [r4, #0x58]
- add r0, r0, #1
- str r0, [r4, #0x58]
- b _02248282
-_02247FCC:
- mov r0, #0
- str r0, [sp, #0x40]
- ldr r0, [sp, #0x80]
- cmp r0, #0
- ble _02248094
- ldr r0, _02248148 ; =0x00002D68
- add r0, r4, r0
- str r0, [sp, #0xa4]
-_02247FDC:
- ldr r0, [sp, #0x40]
- add r1, r4, r0
- ldr r0, _0224814C ; =0x000021EC
- ldrb r6, [r1, r0]
- mov r0, #0xc0
- add r5, r6, #0
- mul r5, r0
- ldr r0, [sp, #0xa4]
- ldr r0, [r0, r5]
- lsl r0, r0, #0x19
- lsr r0, r0, #0x1f
- bne _02248038
- ldr r0, _02248150 ; =0x00002D8C
- add r1, r4, r5
- ldr r0, [r1, r0]
- str r1, [sp, #0x48]
- cmp r0, #0
- beq _02248038
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_02246D1C
- cmp r0, #0x70
- bne _02248038
- mov r0, #0x15
- lsl r0, r0, #4
- ldr r2, [r4, r0]
- ldr r1, [sp, #0x48]
- ldr r0, _02248158 ; =0x00002DD8
- ldr r0, [r1, r0]
- cmp r2, r0
- bgt _02248038
- ldr r0, [sp, #0xa4]
- mov r2, #0x40
- ldr r0, [r0, r5]
- add r1, r0, #0
- orr r1, r2
- ldr r0, [sp, #0xa4]
- add r2, #0xd8
- str r1, [r0, r5]
- str r6, [r4, r2]
- mov r0, #0xc4
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _02248094
-_02248038:
- ldr r0, [sp, #0xa4]
- ldr r0, [r0, r5]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1f
- bne _02248088
- ldr r0, _02248150 ; =0x00002D8C
- add r1, r4, r5
- ldr r0, [r1, r0]
- str r1, [sp, #0x44]
- cmp r0, #0
- beq _02248088
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_02246D1C
- cmp r0, #0x70
- bne _02248088
- mov r0, #0x15
- lsl r0, r0, #4
- ldr r2, [r4, r0]
- ldr r1, [sp, #0x44]
- ldr r0, _02248158 ; =0x00002DD8
- ldr r0, [r1, r0]
- sub r0, r2, r0
- cmp r0, #5
- bne _02248088
- ldr r0, [sp, #0xa4]
- mov r2, #0x80
- ldr r0, [r0, r5]
- add r1, r0, #0
- orr r1, r2
- ldr r0, [sp, #0xa4]
- add r2, #0x98
- str r1, [r0, r5]
- str r6, [r4, r2]
- mov r0, #0xc5
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _02248094
-_02248088:
- ldr r0, [sp, #0x40]
- add r1, r0, #1
- ldr r0, [sp, #0x80]
- str r1, [sp, #0x40]
- cmp r1, r0
- blt _02247FDC
-_02248094:
- ldr r1, [sp, #0x40]
- ldr r0, [sp, #0x80]
- cmp r1, r0
- bne _0224810E
- ldr r0, [r4, #0x58]
- add r0, r0, #1
- str r0, [r4, #0x58]
- b _02248282
-_022480A4:
- ldr r0, [sp, #0x80]
- mov r5, #0
- cmp r0, #0
- ble _02248108
- ldr r0, _02248148 ; =0x00002D68
- add r0, r4, r0
- str r0, [sp, #0xa8]
-_022480B2:
- ldr r0, _0224814C ; =0x000021EC
- add r1, r4, r5
- ldrb r1, [r1, r0]
- mov r0, #0xc0
- add r6, r1, #0
- mul r6, r0
- ldr r0, [sp, #0xa8]
- str r1, [sp, #0x24]
- ldr r0, [r0, r6]
- lsl r0, r0, #0x16
- lsr r0, r0, #0x1f
- bne _02248100
- ldr r0, _02248150 ; =0x00002D8C
- add r1, r4, r6
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02248100
- ldr r1, [sp, #0x24]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x68
- bne _02248100
- ldr r0, [sp, #0xa8]
- mov r2, #2
- ldr r0, [r0, r6]
- lsl r2, r2, #8
- add r1, r0, #0
- orr r1, r2
- ldr r0, [sp, #0xa8]
- sub r2, #0xe8
- str r1, [r0, r6]
- ldr r0, [sp, #0x24]
- str r0, [r4, r2]
- mov r0, #0xb1
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _02248108
-_02248100:
- ldr r0, [sp, #0x80]
- add r5, r5, #1
- cmp r5, r0
- blt _022480B2
-_02248108:
- ldr r0, [sp, #0x80]
- cmp r5, r0
- beq _02248110
-_0224810E:
- b _02248282
-_02248110:
- ldr r0, [r4, #0x58]
- add r0, r0, #1
- str r0, [r4, #0x58]
- b _02248282
-_02248118:
- ldr r0, [sp, #0x80]
- mov r5, #0
- cmp r0, #0
- ble _02248198
- ldr r0, _02248148 ; =0x00002D68
- add r0, r4, r0
- str r0, [sp, #0xac]
-_02248126:
- ldr r0, _0224814C ; =0x000021EC
- add r1, r4, r5
- ldrb r1, [r1, r0]
- mov r0, #0xc0
- add r6, r1, #0
- mul r6, r0
- ldr r0, [sp, #0xac]
- str r1, [sp, #0x28]
- ldr r0, [r0, r6]
- lsl r0, r0, #0x15
- lsr r0, r0, #0x1f
- bne _02248190
- ldr r0, _02248150 ; =0x00002D8C
- b _0224815C
- nop
-_02248144: .word 0x00002D4C
-_02248148: .word 0x00002D68
-_0224814C: .word 0x000021EC
-_02248150: .word 0x00002D8C
-_02248154: .word 0x00002DB8
-_02248158: .word 0x00002DD8
-_0224815C:
- add r1, r4, r6
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02248190
- ldr r1, [sp, #0x28]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x2e
- bne _02248190
- ldr r0, [sp, #0xac]
- ldr r1, [r0, r6]
- mov r0, #1
- lsl r0, r0, #0xa
- orr r1, r0
- ldr r0, [sp, #0xac]
- str r1, [r0, r6]
- mov r1, #0x46
- ldr r0, [sp, #0x28]
- lsl r1, r1, #2
- str r0, [r4, r1]
- add r0, r1, #5
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _02248198
-_02248190:
- ldr r0, [sp, #0x80]
- add r5, r5, #1
- cmp r5, r0
- blt _02248126
-_02248198:
- ldr r0, [sp, #0x80]
- cmp r5, r0
- bne _02248282
- ldr r0, [r4, #0x58]
- add r0, r0, #1
- str r0, [r4, #0x58]
- b _02248282
-_022481A6:
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_0224AE78
- cmp r0, #1
- bne _022481BC
- ldr r0, _02248294 ; =0x00000106
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _02248282
-_022481BC:
- ldr r0, [r4, #0x58]
- add r0, r0, #1
- str r0, [r4, #0x58]
- b _02248282
-_022481C4:
- ldr r0, [sp, #0x80]
- mov r5, #0
- cmp r0, #0
- ble _022481F6
- mov r6, #2
-_022481CE:
- ldr r1, _02248298 ; =0x000021EC
- add r2, r4, r5
- ldrb r2, [r2, r1]
- mov r1, #0xc0
- add r0, r4, #0
- mul r1, r2
- add r2, r4, r1
- ldr r1, _0224829C ; =0x00002DB8
- ldrh r1, [r2, r1]
- mov r2, #1
- bl MOD11_0224C12C
- cmp r0, #0x39
- bne _022481EE
- ldr r0, _022482A0 ; =0x00002168
- str r6, [r4, r0]
-_022481EE:
- ldr r0, [sp, #0x80]
- add r5, r5, #1
- cmp r5, r0
- blt _022481CE
-_022481F6:
- ldr r0, [r4, #0x58]
- add r0, r0, #1
- str r0, [r4, #0x58]
- b _02248282
-_022481FE:
- ldr r0, [sp, #0x80]
- mov r5, #0
- cmp r0, #0
- ble _0224822C
- ldr r6, _02248298 ; =0x000021EC
-_02248208:
- add r2, r4, r5
- ldrb r2, [r2, r6]
- add r0, r7, #0
- add r1, r4, #0
- mov r3, #1
- bl MOD11_02248898
- cmp r0, #1
- bne _02248224
- mov r0, #0xdd
- str r0, [sp, #0xcc]
- mov r0, #1
- str r0, [sp, #0x84]
- b _0224822C
-_02248224:
- ldr r0, [sp, #0x80]
- add r5, r5, #1
- cmp r5, r0
- blt _02248208
-_0224822C:
- ldr r0, [sp, #0x80]
- cmp r5, r0
- bne _02248282
- ldr r0, [r4, #0x58]
- add r0, r0, #1
- str r0, [r4, #0x58]
- b _02248282
-_0224823A:
- ldr r0, [sp, #0x80]
- mov r5, #0
- cmp r0, #0
- ble _0224826C
-_02248242:
- ldr r0, _02248298 ; =0x000021EC
- add r1, r4, r5
- ldrb r6, [r1, r0]
- add r0, r7, #0
- add r1, r4, #0
- add r2, r6, #0
- add r3, sp, #0xcc
- bl MOD11_022493A0
- cmp r0, #1
- bne _02248264
- mov r0, #0x46
- lsl r0, r0, #2
- str r6, [r4, r0]
- mov r0, #1
- str r0, [sp, #0x84]
- b _0224826C
-_02248264:
- ldr r0, [sp, #0x80]
- add r5, r5, #1
- cmp r5, r0
- blt _02248242
-_0224826C:
- ldr r0, [sp, #0x80]
- cmp r5, r0
- bne _02248282
- ldr r0, [r4, #0x58]
- add r0, r0, #1
- str r0, [r4, #0x58]
- b _02248282
-_0224827A:
- mov r0, #0
- str r0, [r4, #0x58]
- mov r0, #2
- str r0, [sp, #0x84]
-_02248282:
- ldr r0, [sp, #0x84]
- cmp r0, #0
- bne _0224828C
- bl MOD11_022476F0
-_0224828C:
- ldr r0, [sp, #0xcc]
- add sp, #0xd0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02248294: .word 0x00000106
-_02248298: .word 0x000021EC
-_0224829C: .word 0x00002DB8
-_022482A0: .word 0x00002168
-
- thumb_func_start MOD11_022482A4
-MOD11_022482A4: ; 0x022482A4
- push {r4, r5, r6, lr}
- sub sp, #8
- add r5, r0, #0
- add r6, r1, #0
- add r4, r2, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _022482FA
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0
- bl MOD11_02230308
- str r0, [sp]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #2
- bl MOD11_02230308
- str r0, [sp, #4]
- bl rand_LC
- mov r3, #1
- add r2, r0, #0
- and r2, r3
- lsl r0, r2, #2
- add r1, sp, #0
- ldr r0, [r1, r0]
- mov r4, #0xc0
- mul r4, r0
- add r5, r6, r4
- ldr r4, _02248304 ; =0x00002D8C
- ldr r4, [r5, r4]
- cmp r4, #0
- bne _022482FE
- add r0, r2, #0
- eor r0, r3
- lsl r0, r0, #2
- add sp, #8
- ldr r0, [r1, r0]
- pop {r4, r5, r6, pc}
-_022482FA:
- mov r0, #1
- eor r0, r4
-_022482FE:
- add sp, #8
- pop {r4, r5, r6, pc}
- nop
-_02248304: .word 0x00002D8C
-
- thumb_func_start MOD11_02248308
-MOD11_02248308: ; 0x02248308
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- ldr r1, [r5, #0x6c]
- add r7, r0, #0
- add r4, r2, #0
- mov r6, #0
- cmp r1, #0xff
- bne _0224831C
- add r0, r6, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0224831C:
- add r0, r5, #0
- bl MOD11_0224AD9C
- cmp r0, #1
- bne _0224832A
- add r0, r6, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0224832A:
- ldr r1, [r5, #0x6c]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x26
- bgt _0224835A
- blt _0224833A
- b _022485FC
-_0224833A:
- cmp r0, #0x10
- bgt _02248346
- bge _02248408
- cmp r0, #9
- beq _02248372
- b _0224887A
-_02248346:
- cmp r0, #0x1b
- bgt _02248358
- cmp r0, #0x18
- blt _02248358
- bne _02248352
- b _022484B0
-_02248352:
- cmp r0, #0x1b
- bne _02248358
- b _02248546
-_02248358:
- b _0224887A
-_0224835A:
- cmp r0, #0x38
- bgt _0224836A
- blt _02248362
- b _02248752
-_02248362:
- cmp r0, #0x31
- bne _02248368
- b _022486BE
-_02248368:
- b _0224887A
-_0224836A:
- cmp r0, #0x6a
- bne _02248370
- b _022487FA
-_02248370:
- b _0224887A
-_02248372:
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r5, r0
- ldr r0, _02248660 ; =0x00002D8C
- ldr r1, [r2, r0]
- cmp r1, #0
- beq _022483E6
- add r1, r0, #0
- add r1, #0x20
- ldr r1, [r2, r1]
- cmp r1, #0
- bne _022483E6
- ldr r2, _02248664 ; =0x0000216C
- ldr r1, _02248668 ; =0x801FDA49
- ldr r3, [r5, r2]
- tst r1, r3
- bne _022483E6
- add r1, r2, #0
- sub r1, #0x30
- ldr r3, [r5, r1]
- mov r1, #0x20
- tst r1, r3
- bne _022483E6
- sub r2, #0x2c
- ldr r2, [r5, r2]
- mov r1, #0x10
- tst r1, r2
- bne _022483E6
- ldr r2, [r5, #0x6c]
- mov r1, #0x1c
- mul r1, r2
- add r1, r5, r1
- lsr r0, r0, #4
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _022483C6
- mov r0, #0x2e
- lsl r0, r0, #4
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _022483E6
-_022483C6:
- ldr r0, _0224866C ; =0x00003044
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _02248670 ; =0x000003E9
- ldrb r1, [r1, r0]
- mov r0, #1
- tst r0, r1
- beq _022483E6
- bl rand_LC
- mov r1, #0xa
- bl _s32_div_f
- cmp r1, #3
- blt _022483E8
-_022483E6:
- b _0224887A
-_022483E8:
- add r0, r5, #0
- mov r1, #3
- add r0, #0x88
- str r1, [r0]
- add r0, r5, #0
- ldr r1, [r5, #0x64]
- add r0, #0x94
- str r1, [r0]
- mov r0, #0x46
- ldr r1, [r5, #0x6c]
- lsl r0, r0, #2
- str r1, [r5, r0]
- mov r0, #0x1f
- str r0, [r4]
- mov r6, #1
- b _0224887A
-_02248408:
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x60
- bne _02248418
- add r7, r6, #0
- b _02248432
-_02248418:
- ldr r0, _02248674 ; =0x00002160
- ldr r0, [r5, r0]
- cmp r0, #0
- beq _02248426
- lsl r0, r0, #0x18
- lsr r7, r0, #0x18
- b _02248432
-_02248426:
- ldr r0, _0224866C ; =0x00003044
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _02248678 ; =0x000003E2
- ldrb r7, [r1, r0]
-_02248432:
- ldr r1, [r5, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r2, r5, r0
- ldr r0, _02248660 ; =0x00002D8C
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _02248516
- ldr r0, _02248664 ; =0x0000216C
- ldr r2, [r5, r0]
- ldr r0, _02248668 ; =0x801FDA49
- tst r0, r2
- bne _02248516
- ldr r0, _0224866C ; =0x00003044
- ldr r3, [r5, r0]
- cmp r3, #0xa5
- beq _02248516
- mov r0, #0x1c
- ldr r2, _02248660 ; =0x00002D8C
- mul r0, r1
- add r0, r5, r0
- lsr r2, r2, #4
- ldr r2, [r0, r2]
- cmp r2, #0
- bne _0224846E
- mov r2, #0x2e
- lsl r2, r2, #4
- ldr r0, [r0, r2]
- cmp r0, #0
- beq _02248516
-_0224846E:
- mov r0, #0x85
- lsl r0, r0, #6
- ldr r2, [r5, r0]
- mov r0, #0x10
- tst r0, r2
- bne _02248516
- lsl r0, r3, #4
- add r2, r5, r0
- ldr r0, _0224867C ; =0x000003E1
- ldrb r0, [r2, r0]
- cmp r0, #0
- beq _02248516
- add r0, r5, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- cmp r7, r0
- beq _02248516
- ldr r1, [r5, #0x6c]
- add r0, r5, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- cmp r7, r0
- beq _02248516
- mov r0, #0xbc
- str r0, [r4]
- add r0, #0x74
- str r7, [r5, r0]
- mov r6, #1
- b _0224887A
-_022484B0:
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r5, r0
- ldr r0, _02248660 ; =0x00002D8C
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _02248516
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x62
- beq _02248516
- ldr r1, _02248664 ; =0x0000216C
- ldr r0, _02248668 ; =0x801FDA49
- ldr r2, [r5, r1]
- tst r0, r2
- bne _02248516
- add r0, r1, #0
- sub r0, #0x30
- ldr r2, [r5, r0]
- mov r0, #0x20
- tst r0, r2
- bne _02248516
- sub r1, #0x2c
- ldr r1, [r5, r1]
- mov r0, #0x10
- tst r0, r1
- bne _02248516
- ldr r1, [r5, #0x6c]
- mov r0, #0x1c
- mul r0, r1
- add r2, r5, r0
- mov r0, #0xb6
- lsl r0, r0, #2
- ldr r1, [r2, r0]
- cmp r1, #0
- bne _02248504
- add r0, #8
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _02248516
-_02248504:
- ldr r0, _0224866C ; =0x00003044
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _02248670 ; =0x000003E9
- ldrb r1, [r1, r0]
- mov r0, #1
- tst r0, r1
- bne _02248518
-_02248516:
- b _0224887A
-_02248518:
- ldr r0, [r5, #0x64]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- ldr r0, _02248680 ; =0x00002D90
- add r2, r5, r2
- ldr r2, [r2, r0]
- sub r1, #0xc1
- add r0, r2, #0
- mul r0, r1
- mov r1, #8
- bl MOD11_022476C0
- ldr r1, _02248684 ; =0x0000215C
- mov r6, #1
- str r0, [r5, r1]
- mov r0, #0x46
- ldr r1, [r5, #0x64]
- lsl r0, r0, #2
- str r1, [r5, r0]
- mov r0, #0xbd
- str r0, [r4]
- b _0224887A
-_02248546:
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r5, r0
- ldr r0, _02248660 ; =0x00002D8C
- ldr r1, [r2, r0]
- cmp r1, #0
- beq _02248650
- add r1, r0, #0
- add r1, #0x20
- ldr r1, [r2, r1]
- cmp r1, #0
- bne _02248650
- ldr r2, _02248664 ; =0x0000216C
- ldr r1, _02248668 ; =0x801FDA49
- ldr r3, [r5, r2]
- tst r1, r3
- bne _02248650
- add r1, r2, #0
- sub r1, #0x30
- ldr r3, [r5, r1]
- mov r1, #0x20
- tst r1, r3
- bne _02248650
- sub r2, #0x2c
- ldr r2, [r5, r2]
- mov r1, #0x10
- tst r1, r2
- bne _02248650
- ldr r2, [r5, #0x6c]
- mov r1, #0x1c
- mul r1, r2
- add r1, r5, r1
- lsr r0, r0, #4
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _0224859A
- mov r0, #0x2e
- lsl r0, r0, #4
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02248650
-_0224859A:
- ldr r0, _0224866C ; =0x00003044
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _02248670 ; =0x000003E9
- ldrb r1, [r1, r0]
- mov r0, #1
- tst r0, r1
- beq _02248650
- bl rand_LC
- mov r1, #0xa
- bl _s32_div_f
- cmp r1, #3
- bge _02248650
- bl rand_LC
- mov r1, #3
- bl _s32_div_f
- cmp r1, #0
- beq _022485D0
- cmp r1, #1
- beq _022485D6
- cmp r1, #2
- beq _022485DC
-_022485D0:
- mov r0, #0x16
- str r0, [r4]
- b _022485E0
-_022485D6:
- mov r0, #0x1f
- str r0, [r4]
- b _022485E0
-_022485DC:
- mov r0, #0x12
- str r0, [r4]
-_022485E0:
- add r0, r5, #0
- mov r1, #3
- add r0, #0x88
- str r1, [r0]
- add r0, r5, #0
- ldr r1, [r5, #0x64]
- add r0, #0x94
- str r1, [r0]
- mov r0, #0x46
- ldr r1, [r5, #0x6c]
- lsl r0, r0, #2
- str r1, [r5, r0]
- mov r6, #1
- b _0224887A
-_022485FC:
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r5, r0
- ldr r0, _02248660 ; =0x00002D8C
- ldr r1, [r2, r0]
- cmp r1, #0
- beq _02248650
- add r1, r0, #0
- add r1, #0x20
- ldr r1, [r2, r1]
- cmp r1, #0
- bne _02248650
- ldr r2, _02248664 ; =0x0000216C
- ldr r1, _02248668 ; =0x801FDA49
- ldr r3, [r5, r2]
- tst r1, r3
- bne _02248650
- add r1, r2, #0
- sub r1, #0x30
- ldr r3, [r5, r1]
- mov r1, #0x20
- tst r1, r3
- bne _02248650
- sub r2, #0x2c
- ldr r2, [r5, r2]
- mov r1, #0x10
- tst r1, r2
- bne _02248650
- ldr r2, [r5, #0x6c]
- mov r1, #0x1c
- mul r1, r2
- add r1, r5, r1
- lsr r0, r0, #4
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _02248652
- mov r0, #0x2e
- lsl r0, r0, #4
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _02248652
-_02248650:
- b _0224887A
-_02248652:
- ldr r0, _0224866C ; =0x00003044
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _02248670 ; =0x000003E9
- b _02248688
- nop
-_02248660: .word 0x00002D8C
-_02248664: .word 0x0000216C
-_02248668: .word 0x801FDA49
-_0224866C: .word 0x00003044
-_02248670: .word 0x000003E9
-_02248674: .word 0x00002160
-_02248678: .word 0x000003E2
-_0224867C: .word 0x000003E1
-_02248680: .word 0x00002D90
-_02248684: .word 0x0000215C
-_02248688:
- ldrb r1, [r1, r0]
- mov r0, #1
- tst r0, r1
- beq _02248770
- bl rand_LC
- mov r1, #0xa
- bl _s32_div_f
- cmp r1, #3
- bge _02248770
- add r0, r5, #0
- mov r1, #3
- add r0, #0x88
- str r1, [r0]
- add r0, r5, #0
- ldr r1, [r5, #0x64]
- add r0, #0x94
- str r1, [r0]
- mov r0, #0x46
- ldr r1, [r5, #0x6c]
- lsl r0, r0, #2
- str r1, [r5, r0]
- mov r0, #0x16
- str r0, [r4]
- mov r6, #1
- b _0224887A
-_022486BE:
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r5, r0
- ldr r0, _02248880 ; =0x00002D8C
- ldr r1, [r2, r0]
- cmp r1, #0
- beq _02248770
- add r1, r0, #0
- add r1, #0x20
- ldr r1, [r2, r1]
- cmp r1, #0
- bne _02248770
- ldr r2, _02248884 ; =0x0000216C
- ldr r1, _02248888 ; =0x801FDA49
- ldr r3, [r5, r2]
- tst r1, r3
- bne _02248770
- add r1, r2, #0
- sub r1, #0x30
- ldr r3, [r5, r1]
- mov r1, #0x20
- tst r1, r3
- bne _02248770
- sub r2, #0x2c
- ldr r2, [r5, r2]
- mov r1, #0x10
- tst r1, r2
- bne _02248770
- ldr r2, [r5, #0x6c]
- mov r1, #0x1c
- mul r1, r2
- add r1, r5, r1
- lsr r0, r0, #4
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _02248712
- mov r0, #0x2e
- lsl r0, r0, #4
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02248770
-_02248712:
- ldr r0, _0224888C ; =0x00003044
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _02248890 ; =0x000003E9
- ldrb r1, [r1, r0]
- mov r0, #1
- tst r0, r1
- beq _02248770
- bl rand_LC
- mov r1, #0xa
- bl _s32_div_f
- cmp r1, #3
- bge _02248770
- add r0, r5, #0
- mov r1, #3
- add r0, #0x88
- str r1, [r0]
- add r0, r5, #0
- ldr r1, [r5, #0x64]
- add r0, #0x94
- str r1, [r0]
- mov r0, #0x46
- ldr r1, [r5, #0x6c]
- lsl r0, r0, #2
- str r1, [r5, r0]
- mov r0, #0x19
- str r0, [r4]
- mov r6, #1
- b _0224887A
-_02248752:
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r5, r0
- ldr r0, _02248880 ; =0x00002D8C
- ldr r1, [r2, r0]
- cmp r1, #0
- beq _02248770
- add r1, r0, #0
- add r1, #0x24
- ldr r2, [r2, r1]
- mov r1, #0xf
- lsl r1, r1, #0x10
- tst r1, r2
- beq _02248772
-_02248770:
- b _0224887A
-_02248772:
- ldr r2, _02248884 ; =0x0000216C
- ldr r1, _02248888 ; =0x801FDA49
- ldr r3, [r5, r2]
- tst r1, r3
- bne _0224887A
- add r1, r2, #0
- sub r1, #0x30
- ldr r3, [r5, r1]
- mov r1, #0x20
- tst r1, r3
- bne _0224887A
- sub r2, #0x2c
- ldr r2, [r5, r2]
- mov r1, #0x10
- tst r1, r2
- bne _0224887A
- ldr r2, [r5, #0x6c]
- mov r1, #0x1c
- mul r1, r2
- add r1, r5, r1
- lsr r0, r0, #4
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _022487AC
- mov r0, #0x2e
- lsl r0, r0, #4
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0224887A
-_022487AC:
- ldr r0, _0224888C ; =0x00003044
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _02248890 ; =0x000003E9
- ldrb r1, [r1, r0]
- mov r0, #1
- tst r0, r1
- beq _0224887A
- mov r0, #0xc0
- mul r0, r2
- add r1, r5, r0
- ldr r0, _02248880 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0224887A
- bl rand_LC
- mov r1, #0xa
- bl _s32_div_f
- cmp r1, #3
- bge _0224887A
- add r0, r5, #0
- mov r1, #3
- add r0, #0x88
- str r1, [r0]
- add r0, r5, #0
- ldr r1, [r5, #0x64]
- add r0, #0x94
- str r1, [r0]
- mov r0, #0x46
- ldr r1, [r5, #0x6c]
- lsl r0, r0, #2
- str r1, [r5, r0]
- mov r0, #0x6a
- str r0, [r4]
- mov r6, #1
- b _0224887A
-_022487FA:
- ldr r1, [r5, #0x6c]
- ldr r0, [r5, #0x74]
- cmp r1, r0
- bne _0224887A
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x62
- beq _0224887A
- mov r0, #6
- str r0, [sp]
- add r0, r7, #0
- add r1, r5, #0
- mov r2, #8
- add r3, r6, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _0224887A
- mov r2, #0x85
- lsl r2, r2, #6
- ldr r1, [r5, r2]
- mov r0, #0x10
- tst r0, r1
- bne _0224887A
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r5, r0
- ldr r0, _02248880 ; =0x00002D8C
- ldr r3, [r1, r0]
- cmp r3, #0
- beq _0224887A
- add r2, #0x2c
- ldr r3, [r5, r2]
- ldr r2, _02248888 ; =0x801FDA49
- tst r2, r3
- bne _0224887A
- ldr r2, _0224888C ; =0x00003044
- ldr r2, [r5, r2]
- lsl r2, r2, #4
- add r3, r5, r2
- ldr r2, _02248890 ; =0x000003E9
- ldrb r3, [r3, r2]
- mov r2, #1
- tst r3, r2
- beq _0224887A
- add r0, r0, #4
- ldr r1, [r1, r0]
- sub r0, r2, #2
- mul r0, r1
- mov r1, #4
- bl MOD11_022476C0
- ldr r1, _02248894 ; =0x0000215C
- mov r6, #1
- str r0, [r5, r1]
- mov r0, #0x46
- ldr r1, [r5, #0x64]
- lsl r0, r0, #2
- str r1, [r5, r0]
- mov r0, #0xc1
- str r0, [r4]
-_0224887A:
- add r0, r6, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02248880: .word 0x00002D8C
-_02248884: .word 0x0000216C
-_02248888: .word 0x801FDA49
-_0224888C: .word 0x00003044
-_02248890: .word 0x000003E9
-_02248894: .word 0x0000215C
-
- thumb_func_start MOD11_02248898
-MOD11_02248898: ; 0x02248898
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r2, #0
- add r0, r4, #0
- add r1, r5, #0
- add r7, r3, #0
- mov r6, #0
- bl MOD11_02246D1C
- cmp r0, #0x28
- bgt _022488DE
- bge _02248978
- cmp r0, #7
- bgt _022488B8
- beq _02248926
- b _022489D0
-_022488B8:
- add r1, r0, #0
- sub r1, #0xc
- cmp r1, #8
- bhi _022488E8
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_022488CC: ; jump table
- .short _02248994 - _022488CC - 2 ; case 0
- .short _022489D0 - _022488CC - 2 ; case 1
- .short _022489D0 - _022488CC - 2 ; case 2
- .short _02248940 - _022488CC - 2 ; case 3
- .short _022489D0 - _022488CC - 2 ; case 4
- .short _022488F0 - _022488CC - 2 ; case 5
- .short _022489D0 - _022488CC - 2 ; case 6
- .short _022489D0 - _022488CC - 2 ; case 7
- .short _0224890A - _022488CC - 2 ; case 8
-_022488DE:
- cmp r0, #0x48
- bgt _022488EA
- bge _02248940
- cmp r0, #0x29
- beq _0224895C
-_022488E8:
- b _022489D0
-_022488EA:
- cmp r0, #0x54
- beq _022489B2
- b _022489D0
-_022488F0:
- mov r0, #0xc0
- add r1, r5, #0
- mul r1, r0
- add r2, r4, r1
- ldr r1, _02248A04 ; =0x00002DAC
- ldr r2, [r2, r1]
- ldr r1, _02248A08 ; =0x00000F88
- tst r1, r2
- beq _022489D0
- mov r6, #1
- add r0, #0x70
- str r6, [r4, r0]
- b _022489D0
-_0224890A:
- mov r0, #0xc0
- add r1, r5, #0
- mul r1, r0
- add r2, r4, r1
- ldr r1, _02248A0C ; =0x00002DB0
- ldr r2, [r2, r1]
- mov r1, #7
- tst r1, r2
- beq _022489D0
- mov r1, #5
- add r0, #0x70
- str r1, [r4, r0]
- mov r6, #1
- b _022489D0
-_02248926:
- mov r0, #0xc0
- mul r0, r5
- add r1, r4, r0
- ldr r0, _02248A04 ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #0x40
- tst r1, r0
- beq _022489D0
- mov r1, #3
- add r0, #0xf0
- str r1, [r4, r0]
- mov r6, #1
- b _022489D0
-_02248940:
- mov r0, #0xc0
- add r1, r5, #0
- mul r1, r0
- add r2, r4, r1
- ldr r1, _02248A04 ; =0x00002DAC
- ldr r2, [r2, r1]
- mov r1, #7
- tst r1, r2
- beq _022489D0
- mov r1, #0
- add r0, #0x70
- str r1, [r4, r0]
- mov r6, #1
- b _022489D0
-_0224895C:
- mov r0, #0xc0
- add r1, r5, #0
- mul r1, r0
- add r2, r4, r1
- ldr r1, _02248A04 ; =0x00002DAC
- ldr r2, [r2, r1]
- mov r1, #0x10
- tst r1, r2
- beq _022489D0
- mov r1, #2
- add r0, #0x70
- str r1, [r4, r0]
- mov r6, #1
- b _022489D0
-_02248978:
- mov r0, #0xc0
- add r1, r5, #0
- mul r1, r0
- add r2, r4, r1
- ldr r1, _02248A04 ; =0x00002DAC
- ldr r2, [r2, r1]
- mov r1, #0x20
- tst r1, r2
- beq _022489D0
- mov r1, #4
- add r0, #0x70
- str r1, [r4, r0]
- mov r6, #1
- b _022489D0
-_02248994:
- mov r0, #0xc0
- add r1, r5, #0
- mul r1, r0
- add r2, r4, r1
- ldr r1, _02248A0C ; =0x00002DB0
- ldr r2, [r2, r1]
- mov r1, #0xf
- lsl r1, r1, #0x10
- tst r1, r2
- beq _022489D0
- mov r1, #6
- add r0, #0x70
- str r1, [r4, r0]
- mov r6, #1
- b _022489D0
-_022489B2:
- mov r0, #0xc0
- add r3, r5, #0
- mul r3, r0
- ldr r0, _02248A10 ; =0x00002DB8
- add r1, r4, r3
- ldrh r1, [r1, r0]
- cmp r1, #0
- beq _022489D0
- add r0, #0x14
- add r2, r4, r0
- mov r0, #1
- ldr r1, [r2, r3]
- lsl r0, r0, #0x16
- orr r0, r1
- str r0, [r2, r3]
-_022489D0:
- cmp r6, #1
- bne _022489FE
- mov r0, #0x46
- lsl r0, r0, #2
- str r5, [r4, r0]
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_02246D1C
- mov r1, #0x4b
- lsl r1, r1, #2
- str r0, [r4, r1]
- cmp r7, #0
- bne _022489FE
- add r0, r4, #0
- mov r1, #1
- mov r2, #0xdd
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
-_022489FE:
- add r0, r6, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02248A04: .word 0x00002DAC
-_02248A08: .word 0x00000F88
-_02248A0C: .word 0x00002DB0
-_02248A10: .word 0x00002DB8
-
- thumb_func_start MOD11_02248A14
-MOD11_02248A14: ; 0x02248A14
- mov r0, #0
- cmp r1, #0x28
- bgt _02248A34
- bge _02248A6A
- cmp r1, #7
- bgt _02248A24
- beq _02248A4C
- bx lr
-_02248A24:
- cmp r1, #0x11
- bgt _02248A72
- cmp r1, #0xf
- blt _02248A72
- beq _02248A56
- cmp r1, #0x11
- beq _02248A42
- bx lr
-_02248A34:
- cmp r1, #0x29
- bgt _02248A3C
- beq _02248A60
- bx lr
-_02248A3C:
- cmp r1, #0x48
- beq _02248A56
- bx lr
-_02248A42:
- ldr r1, _02248A74 ; =0x00000F88
- tst r1, r2
- beq _02248A72
- mov r0, #1
- bx lr
-_02248A4C:
- mov r1, #0x40
- tst r1, r2
- beq _02248A72
- mov r0, #1
- bx lr
-_02248A56:
- mov r1, #7
- tst r1, r2
- beq _02248A72
- mov r0, #1
- bx lr
-_02248A60:
- mov r1, #0x10
- tst r1, r2
- beq _02248A72
- mov r0, #1
- bx lr
-_02248A6A:
- mov r1, #0x20
- tst r1, r2
- beq _02248A72
- mov r0, #1
-_02248A72:
- bx lr
- .align 2, 0
-_02248A74: .word 0x00000F88
-
- thumb_func_start MOD11_02248A78
-MOD11_02248A78: ; 0x02248A78
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- ldr r1, [r4, #0x6c]
- str r0, [sp]
- mov r7, #0
- add r0, r4, #0
- add r6, r2, #0
- add r5, r7, #0
- bl MOD11_02246D1C
- cmp r0, #0x1c
- bne _02248ABA
- ldr r0, [r4, #0x6c]
- cmp r0, #0xff
- beq _02248ABA
- add r1, r4, #0
- add r1, #0x94
- ldr r1, [r1]
- cmp r0, r1
- bne _02248ABA
- ldr r1, _02248BFC ; =0x0000213C
- ldr r2, [r4, r1]
- mov r1, #0x80
- tst r2, r1
- beq _02248ABA
- add r1, #0x98
- str r0, [r4, r1]
- add r0, r4, #0
- ldr r1, [r4, #0x64]
- add r0, #0x94
- str r1, [r0]
- mov r7, #1
- b _02248AEA
-_02248ABA:
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x1c
- bne _02248AEA
- add r1, r4, #0
- add r1, #0x94
- ldr r0, [r4, #0x64]
- ldr r1, [r1]
- cmp r0, r1
- bne _02248AEA
- ldr r1, _02248BFC ; =0x0000213C
- ldr r2, [r4, r1]
- mov r1, #0x80
- tst r2, r1
- beq _02248AEA
- add r1, #0x98
- str r0, [r4, r1]
- add r0, r4, #0
- ldr r1, [r4, #0x6c]
- add r0, #0x94
- str r1, [r0]
- mov r7, #1
-_02248AEA:
- cmp r7, #1
- bne _02248B3A
- mov r0, #0x46
- lsl r0, r0, #2
- ldr r1, [r4, r0]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _02248C00 ; =0x00002DAC
- ldr r0, [r1, r0]
- ldr r1, _02248C04 ; =0x00000F88
- tst r1, r0
- beq _02248B08
- mov r5, #0x16
- b _02248B1A
-_02248B08:
- mov r1, #0x10
- tst r1, r0
- beq _02248B12
- mov r5, #0x19
- b _02248B1A
-_02248B12:
- mov r1, #0x40
- tst r0, r1
- beq _02248B1A
- mov r5, #0x1f
-_02248B1A:
- cmp r5, #0
- beq _02248B3A
- add r0, r4, #0
- mov r1, #3
- add r0, #0x88
- str r1, [r0]
- add r0, r4, #0
- mov r1, #1
- add r2, r5, #0
- bl MOD11_022431DC
- str r6, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- add r0, r7, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02248B3A:
- ldr r0, [sp]
- add r1, r4, #0
- bl MOD11_0224AE78
- add r5, r0, #0
- cmp r5, #1
- bne _02248B5C
- ldr r2, _02248C08 ; =0x00000106
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022431DC
- str r6, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- add r0, r5, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02248B5C:
- ldr r1, [r4, #0x6c]
- add r0, r4, #0
- bl MOD11_02249D90
- cmp r0, #0x6b
- bne _02248B9C
- ldr r0, [r4, #0x6c]
- cmp r0, #0xff
- beq _02248B9C
- add r1, r4, #0
- add r1, #0x94
- ldr r1, [r1]
- cmp r0, r1
- bne _02248B9C
- mov r1, #0x1c
- add r2, r0, #0
- mul r2, r1
- add r3, r4, r2
- mov r2, #0xba
- lsl r2, r2, #2
- ldr r3, [r3, r2]
- mov r2, #4
- tst r2, r3
- beq _02248B9C
- add r1, #0xfc
- str r0, [r4, r1]
- add r0, r4, #0
- ldr r1, [r4, #0x64]
- add r0, #0x94
- str r1, [r0]
- mov r5, #1
- b _02248BD6
-_02248B9C:
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02249D90
- cmp r0, #0x6b
- bne _02248BD6
- add r1, r4, #0
- add r1, #0x94
- ldr r0, [r4, #0x64]
- ldr r1, [r1]
- cmp r0, r1
- bne _02248BD6
- mov r1, #0x1c
- add r2, r0, #0
- mul r2, r1
- add r3, r4, r2
- mov r2, #0xba
- lsl r2, r2, #2
- ldr r3, [r3, r2]
- mov r2, #4
- tst r2, r3
- beq _02248BD6
- add r1, #0xfc
- str r0, [r4, r1]
- add r0, r4, #0
- ldr r1, [r4, #0x6c]
- add r0, #0x94
- str r1, [r0]
- mov r5, #1
-_02248BD6:
- cmp r5, #1
- bne _02248BF6
- add r0, r4, #0
- mov r1, #5
- add r0, #0x88
- str r1, [r0]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0x6a
- bl MOD11_022431DC
- str r6, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
- add r0, r5, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02248BF6:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02248BFC: .word 0x0000213C
-_02248C00: .word 0x00002DAC
-_02248C04: .word 0x00000F88
-_02248C08: .word 0x00000106
-
- thumb_func_start MOD11_02248C0C
-MOD11_02248C0C: ; 0x02248C0C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x18
- str r0, [sp]
- add r4, r1, #0
- mov r0, #0
- str r0, [sp, #0xc]
- str r2, [sp, #4]
- add r0, r4, #0
- add r1, r2, #0
- bl MOD11_02249D90
- str r0, [sp, #0x10]
- ldr r1, [sp, #4]
- add r0, r4, #0
- mov r2, #0
- bl MOD11_02249DA4
- add r6, r0, #0
- ldr r0, [sp, #4]
- mov r3, #0xc0
- add r5, r0, #0
- ldr r0, _02248F50 ; =0x00002D8C
- mul r5, r3
- add r1, r4, r0
- ldr r2, [r1, r5]
- str r1, [sp, #0x14]
- cmp r2, #0
- bne _02248C46
- b _02249274
-_02248C46:
- ldr r1, [sp, #0x10]
- cmp r1, #0x35
- bhi _02248CE8
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02248C58: ; jump table
- .short _02249246 - _02248C58 - 2 ; case 0
- .short _02248CC4 - _02248C58 - 2 ; case 1
- .short _02249246 - _02248C58 - 2 ; case 2
- .short _02249246 - _02248C58 - 2 ; case 3
- .short _02248D00 - _02248C58 - 2 ; case 4
- .short _02248D14 - _02248C58 - 2 ; case 5
- .short _02248D28 - _02248C58 - 2 ; case 6
- .short _02248D3C - _02248C58 - 2 ; case 7
- .short _02248D50 - _02248C58 - 2 ; case 8
- .short _02248D64 - _02248C58 - 2 ; case 9
- .short _02248DC6 - _02248C58 - 2 ; case 10
- .short _02248DDA - _02248C58 - 2 ; case 11
- .short _02248CDC - _02248C58 - 2 ; case 12
- .short _02248E3A - _02248C58 - 2 ; case 13
- .short _02248E76 - _02248C58 - 2 ; case 14
- .short _02248EB2 - _02248C58 - 2 ; case 15
- .short _02248EEE - _02248C58 - 2 ; case 16
- .short _02248F2C - _02248C58 - 2 ; case 17
- .short _02249246 - _02248C58 - 2 ; case 18
- .short _02249246 - _02248C58 - 2 ; case 19
- .short _02249246 - _02248C58 - 2 ; case 20
- .short _02249246 - _02248C58 - 2 ; case 21
- .short _02249246 - _02248C58 - 2 ; case 22
- .short _02249246 - _02248C58 - 2 ; case 23
- .short _02249246 - _02248C58 - 2 ; case 24
- .short _02249246 - _02248C58 - 2 ; case 25
- .short _02249246 - _02248C58 - 2 ; case 26
- .short _02249246 - _02248C58 - 2 ; case 27
- .short _02249246 - _02248C58 - 2 ; case 28
- .short _02249246 - _02248C58 - 2 ; case 29
- .short _02249246 - _02248C58 - 2 ; case 30
- .short _02249246 - _02248C58 - 2 ; case 31
- .short _02249246 - _02248C58 - 2 ; case 32
- .short _02249246 - _02248C58 - 2 ; case 33
- .short _02249246 - _02248C58 - 2 ; case 34
- .short _02248F86 - _02248C58 - 2 ; case 35
- .short _02248FCA - _02248C58 - 2 ; case 36
- .short _02249012 - _02248C58 - 2 ; case 37
- .short _02249058 - _02248C58 - 2 ; case 38
- .short _0224909E - _02248C58 - 2 ; case 39
- .short _022490E4 - _02248C58 - 2 ; case 40
- .short _02249128 - _02248C58 - 2 ; case 41
- .short _02249246 - _02248C58 - 2 ; case 42
- .short _022491D8 - _02248C58 - 2 ; case 43
- .short _0224920C - _02248C58 - 2 ; case 44
- .short _02249246 - _02248C58 - 2 ; case 45
- .short _02249246 - _02248C58 - 2 ; case 46
- .short _02249246 - _02248C58 - 2 ; case 47
- .short _02249194 - _02248C58 - 2 ; case 48
- .short _02249246 - _02248C58 - 2 ; case 49
- .short _02249246 - _02248C58 - 2 ; case 50
- .short _02249246 - _02248C58 - 2 ; case 51
- .short _02249246 - _02248C58 - 2 ; case 52
- .short _022491BC - _02248C58 - 2 ; case 53
-_02248CC4:
- add r1, r4, r5
- add r0, r0, #4
- ldr r0, [r1, r0]
- lsr r0, r0, #1
- cmp r2, r0
- bhi _02248CE8
- ldr r0, _02248F54 ; =0x0000215C
- mov r7, #0xc6
- str r6, [r4, r0]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249246
-_02248CDC:
- add r1, r4, r5
- add r0, r0, #4
- ldr r1, [r1, r0]
- lsr r0, r1, #1
- cmp r2, r0
- bls _02248CEA
-_02248CE8:
- b _02249246
-_02248CEA:
- add r0, r6, #0
- mul r0, r1
- mov r1, #0x64
- bl MOD11_022476C0
- ldr r1, _02248F54 ; =0x0000215C
- mov r7, #0xc6
- str r0, [r4, r1]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249246
-_02248D00:
- add r1, r4, r5
- add r0, #0x20
- ldr r1, [r1, r0]
- mov r0, #0x40
- tst r0, r1
- beq _02248DF2
- mov r0, #1
- mov r7, #0xc7
- str r0, [sp, #0xc]
- b _02249246
-_02248D14:
- add r1, r4, r5
- add r0, #0x20
- ldr r1, [r1, r0]
- mov r0, #7
- tst r0, r1
- beq _02248DF2
- mov r0, #1
- mov r7, #0xc8
- str r0, [sp, #0xc]
- b _02249246
-_02248D28:
- add r1, r4, r5
- add r0, #0x20
- ldr r1, [r1, r0]
- ldr r0, _02248F58 ; =0x00000F88
- tst r0, r1
- beq _02248DF2
- mov r0, #1
- mov r7, #0xc9
- str r0, [sp, #0xc]
- b _02249246
-_02248D3C:
- add r1, r4, r5
- add r0, #0x20
- ldr r1, [r1, r0]
- mov r0, #0x10
- tst r0, r1
- beq _02248DF2
- mov r0, #1
- mov r7, #0xca
- str r0, [sp, #0xc]
- b _02249246
-_02248D50:
- add r1, r4, r5
- add r0, #0x20
- ldr r1, [r1, r0]
- mov r0, #0x20
- tst r0, r1
- beq _02248DF2
- mov r0, #1
- mov r7, #0xcb
- str r0, [sp, #0xc]
- b _02249246
-_02248D64:
- mov r0, #0
- str r0, [sp, #8]
- add r0, r4, r5
- ldr r3, _02248F5C ; =0x00002D4C
- add r1, r0, #0
-_02248D6E:
- ldrh r2, [r0, r3]
- cmp r2, #0
- beq _02248D7C
- ldr r2, _02248F60 ; =0x00002D6C
- ldrb r2, [r1, r2]
- cmp r2, #0
- beq _02248D8A
-_02248D7C:
- ldr r2, [sp, #8]
- add r0, r0, #2
- add r2, r2, #1
- add r1, r1, #1
- str r2, [sp, #8]
- cmp r2, #4
- blt _02248D6E
-_02248D8A:
- ldr r0, [sp, #8]
- cmp r0, #4
- beq _02248DF2
- mov r0, #0xb5
- lsl r0, r0, #6
- ldr r1, [sp, #8]
- add r0, r4, r0
- add r0, r0, r5
- add r1, #0x1f
- add r2, r6, #0
- bl MOD11_02243DC8
- ldr r0, [sp]
- ldr r2, [sp, #4]
- add r1, r4, #0
- bl MOD11_02245190
- ldr r0, [sp, #8]
- add r1, r4, r5
- lsl r0, r0, #1
- add r1, r1, r0
- ldr r0, _02248F5C ; =0x00002D4C
- mov r7, #0xcc
- ldrh r1, [r1, r0]
- mov r0, #0x49
- lsl r0, r0, #2
- str r1, [r4, r0]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249246
-_02248DC6:
- add r1, r4, r5
- add r0, #0x24
- ldr r1, [r1, r0]
- mov r0, #7
- tst r0, r1
- beq _02248DF2
- mov r0, #1
- mov r7, #0xcd
- str r0, [sp, #0xc]
- b _02249246
-_02248DDA:
- add r2, r0, #0
- add r1, r4, r5
- add r2, #0x20
- ldr r2, [r1, r2]
- lsl r3, r2, #0x18
- lsr r3, r3, #0x18
- bne _02248DF4
- add r0, #0x24
- ldr r1, [r1, r0]
- mov r0, #7
- tst r0, r1
- bne _02248DF4
-_02248DF2:
- b _02249246
-_02248DF4:
- mov r0, #0x40
- tst r0, r2
- beq _02248DFC
- mov r7, #0xc7
-_02248DFC:
- mov r0, #7
- tst r0, r2
- beq _02248E04
- mov r7, #0xc8
-_02248E04:
- ldr r0, _02248F58 ; =0x00000F88
- tst r0, r2
- beq _02248E0C
- mov r7, #0xc9
-_02248E0C:
- mov r0, #0x10
- tst r0, r2
- beq _02248E14
- mov r7, #0xca
-_02248E14:
- mov r0, #0x20
- tst r0, r2
- beq _02248E1C
- mov r7, #0xcb
-_02248E1C:
- ldr r0, _02248F64 ; =0x00002DB0
- add r1, r4, r5
- ldr r1, [r1, r0]
- mov r0, #7
- and r0, r1
- beq _02248E2A
- mov r7, #0xcd
-_02248E2A:
- cmp r3, #0
- beq _02248E34
- cmp r0, #0
- beq _02248E34
- mov r7, #0xce
-_02248E34:
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249246
-_02248E3A:
- add r1, r4, r5
- add r0, r0, #4
- ldr r0, [r1, r0]
- lsr r1, r0, #1
- cmp r2, r1
- bhi _02248EFA
- add r1, r6, #0
- bl MOD11_022476C0
- ldr r1, _02248F54 ; =0x0000215C
- add r2, r4, r5
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #0
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r0, _02248F68 ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- bne _02248E6E
- mov r7, #0xcf
- b _02248E70
-_02248E6E:
- mov r7, #0xc6
-_02248E70:
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249246
-_02248E76:
- add r1, r4, r5
- add r0, r0, #4
- ldr r0, [r1, r0]
- lsr r1, r0, #1
- cmp r2, r1
- bhi _02248EFA
- add r1, r6, #0
- bl MOD11_022476C0
- ldr r1, _02248F54 ; =0x0000215C
- add r2, r4, r5
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #1
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r0, _02248F68 ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- bne _02248EAA
- mov r7, #0xcf
- b _02248EAC
-_02248EAA:
- mov r7, #0xc6
-_02248EAC:
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249246
-_02248EB2:
- add r1, r4, r5
- add r0, r0, #4
- ldr r0, [r1, r0]
- lsr r1, r0, #1
- cmp r2, r1
- bhi _02248EFA
- add r1, r6, #0
- bl MOD11_022476C0
- ldr r1, _02248F54 ; =0x0000215C
- add r2, r4, r5
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #2
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r0, _02248F68 ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- bne _02248EE6
- mov r7, #0xcf
- b _02248EE8
-_02248EE6:
- mov r7, #0xc6
-_02248EE8:
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249246
-_02248EEE:
- add r1, r4, r5
- add r0, r0, #4
- ldr r0, [r1, r0]
- lsr r1, r0, #1
- cmp r2, r1
- bls _02248EFC
-_02248EFA:
- b _02249246
-_02248EFC:
- add r1, r6, #0
- bl MOD11_022476C0
- ldr r1, _02248F54 ; =0x0000215C
- add r2, r4, r5
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #3
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r0, _02248F68 ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- bne _02248F24
- mov r7, #0xcf
- b _02248F26
-_02248F24:
- mov r7, #0xc6
-_02248F26:
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249246
-_02248F2C:
- add r1, r4, r5
- add r0, r0, #4
- ldr r0, [r1, r0]
- lsr r1, r0, #1
- cmp r2, r1
- bhi _02249000
- add r1, r6, #0
- bl MOD11_022476C0
- ldr r1, _02248F54 ; =0x0000215C
- add r2, r4, r5
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #4
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r0, _02248F68 ; =0x00002DA8
- b _02248F6C
- .align 2, 0
-_02248F50: .word 0x00002D8C
-_02248F54: .word 0x0000215C
-_02248F58: .word 0x00000F88
-_02248F5C: .word 0x00002D4C
-_02248F60: .word 0x00002D6C
-_02248F64: .word 0x00002DB0
-_02248F68: .word 0x00002DA8
-_02248F6C:
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- bne _02248F7E
- mov r7, #0xcf
- b _02248F80
-_02248F7E:
- mov r7, #0xc6
-_02248F80:
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249246
-_02248F86:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _02248F98
- lsr r0, r6, #0x1f
- add r0, r6, r0
- asr r6, r0, #1
-_02248F98:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _0224927C ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r6, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _02249000
- ldr r0, _02249280 ; =0x00002D59
- add r1, r4, r5
- ldrsb r0, [r1, r0]
- cmp r0, #0xc
- bge _02249000
- mov r1, #0x13
- mov r0, #1
- lsl r1, r1, #4
- str r0, [sp, #0xc]
- str r0, [r4, r1]
- mov r7, #0xd0
- b _02249246
-_02248FCA:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _02248FDC
- lsr r0, r6, #0x1f
- add r0, r6, r0
- asr r6, r0, #1
-_02248FDC:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _0224927C ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r6, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _02249000
- ldr r0, _02249284 ; =0x00002D5A
- add r1, r4, r5
- ldrsb r0, [r1, r0]
- cmp r0, #0xc
- blt _02249002
-_02249000:
- b _02249246
-_02249002:
- mov r0, #0x13
- mov r1, #2
- lsl r0, r0, #4
- str r1, [r4, r0]
- mov r0, #1
- mov r7, #0xd0
- str r0, [sp, #0xc]
- b _02249246
-_02249012:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _02249024
- lsr r0, r6, #0x1f
- add r0, r6, r0
- asr r6, r0, #1
-_02249024:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _0224927C ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r6, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _0224911E
- ldr r0, _02249288 ; =0x00002D5B
- add r1, r4, r5
- ldrsb r0, [r1, r0]
- cmp r0, #0xc
- bge _0224911E
- mov r0, #0x13
- mov r1, #3
- lsl r0, r0, #4
- str r1, [r4, r0]
- mov r0, #1
- mov r7, #0xd0
- str r0, [sp, #0xc]
- b _02249246
-_02249058:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _0224906A
- lsr r0, r6, #0x1f
- add r0, r6, r0
- asr r6, r0, #1
-_0224906A:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _0224927C ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r6, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _0224911E
- ldr r0, _0224928C ; =0x00002D5C
- add r1, r4, r5
- ldrsb r0, [r1, r0]
- cmp r0, #0xc
- bge _0224911E
- mov r0, #0x13
- mov r1, #4
- lsl r0, r0, #4
- str r1, [r4, r0]
- mov r0, #1
- mov r7, #0xd0
- str r0, [sp, #0xc]
- b _02249246
-_0224909E:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _022490B0
- lsr r0, r6, #0x1f
- add r0, r6, r0
- asr r6, r0, #1
-_022490B0:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _0224927C ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r6, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _0224911E
- ldr r0, _02249290 ; =0x00002D5D
- add r1, r4, r5
- ldrsb r0, [r1, r0]
- cmp r0, #0xc
- bge _0224911E
- mov r0, #0x13
- mov r1, #5
- lsl r0, r0, #4
- str r1, [r4, r0]
- mov r0, #1
- mov r7, #0xd0
- str r0, [sp, #0xc]
- b _02249246
-_022490E4:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _022490F6
- lsr r0, r6, #0x1f
- add r0, r6, r0
- asr r6, r0, #1
-_022490F6:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _0224927C ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r6, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _0224911E
- ldr r0, _02249294 ; =0x00002DB0
- add r1, r4, r5
- ldr r1, [r1, r0]
- mov r0, #1
- lsl r0, r0, #0x14
- tst r0, r1
- beq _02249120
-_0224911E:
- b _02249246
-_02249120:
- mov r0, #1
- mov r7, #0xd1
- str r0, [sp, #0xc]
- b _02249246
-_02249128:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _0224913A
- lsr r0, r6, #0x1f
- add r0, r6, r0
- asr r6, r0, #1
-_0224913A:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _0224927C ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r6, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _02249246
- ldr r0, _02249280 ; =0x00002D59
- mov r2, #0
- add r3, r4, r5
-_0224915A:
- ldrsb r1, [r3, r0]
- cmp r1, #0xc
- blt _02249168
- add r2, r2, #1
- add r3, r3, #1
- cmp r2, #5
- blt _0224915A
-_02249168:
- cmp r2, #5
- beq _02249246
- ldr r6, _02249280 ; =0x00002D59
- add r5, r4, r5
- mov r7, #5
-_02249172:
- bl rand_LC
- add r1, r7, #0
- bl _s32_div_f
- add r0, r5, r1
- ldrsb r0, [r0, r6]
- cmp r0, #0xc
- beq _02249172
- mov r0, #0x13
- add r1, r1, #1
- lsl r0, r0, #4
- str r1, [r4, r0]
- mov r0, #1
- mov r7, #0xd2
- str r0, [sp, #0xc]
- b _02249246
-_02249194:
- ldr r6, _02249298 ; =0x00002D58
- add r1, r4, r5
- mov r0, #0
- mov r5, #6
- add r3, r6, #0
-_0224919E:
- ldrsb r2, [r1, r3]
- cmp r2, #6
- bge _022491AA
- mov r2, #1
- strb r5, [r1, r6]
- str r2, [sp, #0xc]
-_022491AA:
- add r0, r0, #1
- add r1, r1, #1
- cmp r0, #8
- blt _0224919E
- ldr r0, [sp, #0xc]
- cmp r0, #1
- bne _02249246
- mov r7, #0xd3
- b _02249246
-_022491BC:
- add r1, r4, r5
- add r0, #0x24
- ldr r1, [r1, r0]
- mov r0, #0xf
- lsl r0, r0, #0x10
- tst r0, r1
- beq _02249246
- mov r0, #6
- add r3, #0x70
- str r0, [r4, r3]
- mov r0, #1
- mov r7, #0xd4
- str r0, [sp, #0xc]
- b _02249246
-_022491D8:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _022491EA
- lsr r0, r6, #0x1f
- add r0, r6, r0
- asr r6, r0, #1
-_022491EA:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _0224927C ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r6, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _02249246
- mov r0, #1
- ldr r7, _0224929C ; =0x00000109
- str r0, [sp, #0xc]
- b _02249246
-_0224920C:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _0224921E
- lsr r0, r6, #0x1f
- add r0, r6, r0
- asr r6, r0, #1
-_0224921E:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _0224927C ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r6, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _02249246
- ldr r0, _022492A0 ; =0x00002DCC
- add r2, r4, r0
- mov r0, #1
- ldr r1, [r2, r5]
- lsl r0, r0, #0x1c
- orr r0, r1
- str r0, [r2, r5]
-_02249246:
- ldr r0, [sp, #0xc]
- cmp r0, #1
- bne _02249274
- mov r1, #0x46
- ldr r0, [sp, #4]
- lsl r1, r1, #2
- str r0, [r4, r1]
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02249B4C
- mov r1, #0x4a
- lsl r1, r1, #2
- str r0, [r4, r1]
- add r0, r4, #0
- mov r1, #1
- add r2, r7, #0
- bl MOD11_022431DC
- ldr r0, [r4, #8]
- str r0, [r4, #0xc]
- mov r0, #0x15
- str r0, [r4, #8]
-_02249274:
- ldr r0, [sp, #0xc]
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0224927C: .word 0x00002D90
-_02249280: .word 0x00002D59
-_02249284: .word 0x00002D5A
-_02249288: .word 0x00002D5B
-_0224928C: .word 0x00002D5C
-_02249290: .word 0x00002D5D
-_02249294: .word 0x00002DB0
-_02249298: .word 0x00002D58
-_0224929C: .word 0x00000109
-_022492A0: .word 0x00002DCC
-
- thumb_func_start MOD11_022492A4
-MOD11_022492A4: ; 0x022492A4
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r5, r1, #0
- add r6, r2, #0
- mov r7, #0
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02249D90
- str r0, [sp, #4]
- add r0, r5, #0
- add r1, r6, #0
- add r2, r7, #0
- bl MOD11_02249DA4
- mov r0, #0xc0
- add r4, r6, #0
- mul r4, r0
- ldr r0, _02249394 ; =0x00002D8C
- add r1, r5, r0
- str r1, [sp, #8]
- ldr r1, [r1, r4]
- cmp r1, #0
- beq _0224938E
- ldr r2, [sp, #4]
- cmp r2, #0x44
- beq _022492E2
- add r0, r2, #0
- cmp r0, #0x6c
- beq _022492FE
- b _02249364
-_022492E2:
- add r2, r5, r4
- add r0, r0, #4
- ldr r0, [r2, r0]
- cmp r1, r0
- bhs _02249364
- mov r1, #0x10
- bl MOD11_022476C0
- ldr r1, _02249398 ; =0x0000215C
- mov r7, #1
- str r0, [r5, r1]
- mov r0, #0xd5
- str r0, [sp]
- b _02249364
-_022492FE:
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0x1b
- add r3, r7, #0
- bl MOD11_02243420
- cmp r0, #3
- beq _0224931E
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0x1c
- add r3, r7, #0
- bl MOD11_02243420
- cmp r0, #3
- bne _0224933E
-_0224931E:
- ldr r0, _0224939C ; =0x00002D90
- add r1, r5, r4
- ldr r0, [r1, r0]
- ldr r1, [sp, #8]
- ldr r1, [r1, r4]
- cmp r1, r0
- bhs _02249364
- mov r1, #0x10
- bl MOD11_022476C0
- ldr r1, _02249398 ; =0x0000215C
- mov r7, #1
- str r0, [r5, r1]
- mov r0, #0xd5
- str r0, [sp]
- b _02249364
-_0224933E:
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02246D1C
- cmp r0, #0x62
- beq _02249364
- ldr r0, _0224939C ; =0x00002D90
- add r1, r5, r4
- ldr r1, [r1, r0]
- sub r0, r7, #1
- mul r0, r1
- mov r1, #8
- bl MOD11_022476C0
- ldr r1, _02249398 ; =0x0000215C
- mov r7, #1
- str r0, [r5, r1]
- mov r0, #0xd7
- str r0, [sp]
-_02249364:
- cmp r7, #1
- bne _0224938E
- mov r0, #0x46
- lsl r0, r0, #2
- str r6, [r5, r0]
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_02249B4C
- mov r1, #0x4a
- lsl r1, r1, #2
- str r0, [r5, r1]
- ldr r2, [sp]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r5, #8]
- str r0, [r5, #0xc]
- mov r0, #0x15
- str r0, [r5, #8]
-_0224938E:
- add r0, r7, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02249394: .word 0x00002D8C
-_02249398: .word 0x0000215C
-_0224939C: .word 0x00002D90
-
- thumb_func_start MOD11_022493A0
-MOD11_022493A0: ; 0x022493A0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x18
- str r0, [sp]
- add r4, r1, #0
- mov r0, #0
- str r0, [sp, #0xc]
- str r2, [sp, #4]
- add r0, r4, #0
- add r1, r2, #0
- add r6, r3, #0
- bl MOD11_02249D90
- str r0, [sp, #0x10]
- ldr r1, [sp, #4]
- add r0, r4, #0
- mov r2, #0
- bl MOD11_02249DA4
- add r7, r0, #0
- ldr r0, [sp, #4]
- mov r3, #0xc0
- add r5, r0, #0
- ldr r0, _022496E4 ; =0x00002D8C
- mul r5, r3
- add r1, r4, r0
- ldr r2, [r1, r5]
- str r1, [sp, #0x14]
- cmp r2, #0
- bne _022493DC
- b _02249A50
-_022493DC:
- ldr r1, [sp, #0x10]
- cmp r1, #0x35
- bhi _02249480
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_022493EE: ; jump table
- .short _02249A3C - _022493EE - 2 ; case 0
- .short _0224945A - _022493EE - 2 ; case 1
- .short _02249A3C - _022493EE - 2 ; case 2
- .short _02249A3C - _022493EE - 2 ; case 3
- .short _0224949A - _022493EE - 2 ; case 4
- .short _022494B0 - _022493EE - 2 ; case 5
- .short _022494C6 - _022493EE - 2 ; case 6
- .short _022494DC - _022493EE - 2 ; case 7
- .short _022494F2 - _022493EE - 2 ; case 8
- .short _02249508 - _022493EE - 2 ; case 9
- .short _0224956C - _022493EE - 2 ; case 10
- .short _02249582 - _022493EE - 2 ; case 11
- .short _02249474 - _022493EE - 2 ; case 12
- .short _022496BC - _022493EE - 2 ; case 13
- .short _0224972C - _022493EE - 2 ; case 14
- .short _0224976A - _022493EE - 2 ; case 15
- .short _022497A8 - _022493EE - 2 ; case 16
- .short _022497E6 - _022493EE - 2 ; case 17
- .short _02249A3C - _022493EE - 2 ; case 18
- .short _02249A3C - _022493EE - 2 ; case 19
- .short _02249A3C - _022493EE - 2 ; case 20
- .short _02249A3C - _022493EE - 2 ; case 21
- .short _02249A3C - _022493EE - 2 ; case 22
- .short _02249A3C - _022493EE - 2 ; case 23
- .short _02249A3C - _022493EE - 2 ; case 24
- .short _02249A3C - _022493EE - 2 ; case 25
- .short _02249A3C - _022493EE - 2 ; case 26
- .short _02249A3C - _022493EE - 2 ; case 27
- .short _02249A3C - _022493EE - 2 ; case 28
- .short _02249A3C - _022493EE - 2 ; case 29
- .short _02249A3C - _022493EE - 2 ; case 30
- .short _02249A3C - _022493EE - 2 ; case 31
- .short _02249A3C - _022493EE - 2 ; case 32
- .short _02249A3C - _022493EE - 2 ; case 33
- .short _02249A3C - _022493EE - 2 ; case 34
- .short _02249826 - _022493EE - 2 ; case 35
- .short _0224986C - _022493EE - 2 ; case 36
- .short _022498B4 - _022493EE - 2 ; case 37
- .short _022498FC - _022493EE - 2 ; case 38
- .short _02249946 - _022493EE - 2 ; case 39
- .short _0224998E - _022493EE - 2 ; case 40
- .short _022499D2 - _022493EE - 2 ; case 41
- .short _02249A3C - _022493EE - 2 ; case 42
- .short _0224964A - _022493EE - 2 ; case 43
- .short _02249680 - _022493EE - 2 ; case 44
- .short _02249A3C - _022493EE - 2 ; case 45
- .short _02249A3C - _022493EE - 2 ; case 46
- .short _02249A3C - _022493EE - 2 ; case 47
- .short _02249602 - _022493EE - 2 ; case 48
- .short _02249A3C - _022493EE - 2 ; case 49
- .short _02249A3C - _022493EE - 2 ; case 50
- .short _02249A3C - _022493EE - 2 ; case 51
- .short _02249A3C - _022493EE - 2 ; case 52
- .short _0224962C - _022493EE - 2 ; case 53
-_0224945A:
- add r1, r4, r5
- add r0, r0, #4
- ldr r0, [r1, r0]
- lsr r0, r0, #1
- cmp r2, r0
- bhi _02249480
- ldr r0, _022496E8 ; =0x0000215C
- str r7, [r4, r0]
- mov r0, #0xc6
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_02249474:
- add r1, r4, r5
- add r0, r0, #4
- ldr r1, [r1, r0]
- lsr r0, r1, #1
- cmp r2, r0
- bls _02249482
-_02249480:
- b _02249A3C
-_02249482:
- add r0, r7, #0
- mul r0, r1
- mov r1, #0x64
- bl MOD11_022476C0
- ldr r1, _022496E8 ; =0x0000215C
- str r0, [r4, r1]
- mov r0, #0xc6
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_0224949A:
- add r1, r4, r5
- add r0, #0x20
- ldr r1, [r1, r0]
- mov r0, #0x40
- tst r0, r1
- beq _0224959C
- mov r0, #0xc7
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_022494B0:
- add r1, r4, r5
- add r0, #0x20
- ldr r1, [r1, r0]
- mov r0, #7
- tst r0, r1
- beq _0224959C
- mov r0, #0xc8
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_022494C6:
- add r1, r4, r5
- add r0, #0x20
- ldr r1, [r1, r0]
- ldr r0, _022496EC ; =0x00000F88
- tst r0, r1
- beq _0224959C
- mov r0, #0xc9
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_022494DC:
- add r1, r4, r5
- add r0, #0x20
- ldr r1, [r1, r0]
- mov r0, #0x10
- tst r0, r1
- beq _0224959C
- mov r0, #0xca
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_022494F2:
- add r1, r4, r5
- add r0, #0x20
- ldr r1, [r1, r0]
- mov r0, #0x20
- tst r0, r1
- beq _0224959C
- mov r0, #0xcb
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_02249508:
- mov r0, #0
- str r0, [sp, #8]
- add r0, r4, r5
- ldr r3, _022496F0 ; =0x00002D4C
- add r1, r0, #0
-_02249512:
- ldrh r2, [r0, r3]
- cmp r2, #0
- beq _02249520
- ldr r2, _022496F4 ; =0x00002D6C
- ldrb r2, [r1, r2]
- cmp r2, #0
- beq _0224952E
-_02249520:
- ldr r2, [sp, #8]
- add r0, r0, #2
- add r2, r2, #1
- add r1, r1, #1
- str r2, [sp, #8]
- cmp r2, #4
- blt _02249512
-_0224952E:
- ldr r0, [sp, #8]
- cmp r0, #4
- beq _0224959C
- mov r0, #0xb5
- lsl r0, r0, #6
- ldr r1, [sp, #8]
- add r0, r4, r0
- add r0, r0, r5
- add r1, #0x1f
- add r2, r7, #0
- bl MOD11_02243DC8
- ldr r0, [sp]
- ldr r2, [sp, #4]
- add r1, r4, #0
- bl MOD11_02245190
- ldr r0, [sp, #8]
- add r1, r4, r5
- lsl r0, r0, #1
- add r1, r1, r0
- ldr r0, _022496F0 ; =0x00002D4C
- ldrh r1, [r1, r0]
- mov r0, #0x49
- lsl r0, r0, #2
- str r1, [r4, r0]
- mov r0, #0xcc
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_0224956C:
- add r1, r4, r5
- add r0, #0x24
- ldr r1, [r1, r0]
- mov r0, #7
- tst r0, r1
- beq _0224959C
- mov r0, #0xcd
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_02249582:
- add r1, r0, #0
- add r1, #0x20
- add r1, r4, r1
- ldr r2, [r1, r5]
- lsl r3, r2, #0x18
- lsr r3, r3, #0x18
- bne _0224959E
- add r3, r4, r5
- add r0, #0x24
- ldr r3, [r3, r0]
- mov r0, #7
- tst r0, r3
- bne _0224959E
-_0224959C:
- b _02249A3C
-_0224959E:
- mov r0, #0x40
- tst r0, r2
- beq _022495A8
- mov r0, #0xc7
- str r0, [r6]
-_022495A8:
- ldr r2, [r1, r5]
- mov r0, #7
- tst r0, r2
- beq _022495B4
- mov r0, #0xc8
- str r0, [r6]
-_022495B4:
- ldr r2, [r1, r5]
- ldr r0, _022496EC ; =0x00000F88
- tst r0, r2
- beq _022495C0
- mov r0, #0xc9
- str r0, [r6]
-_022495C0:
- ldr r2, [r1, r5]
- mov r0, #0x10
- tst r0, r2
- beq _022495CC
- mov r0, #0xca
- str r0, [r6]
-_022495CC:
- ldr r2, [r1, r5]
- mov r0, #0x20
- tst r0, r2
- beq _022495D8
- mov r0, #0xcb
- str r0, [r6]
-_022495D8:
- ldr r0, _022496F8 ; =0x00002DB0
- mov r2, #7
- add r0, r4, r0
- ldr r3, [r0, r5]
- tst r2, r3
- beq _022495E8
- mov r2, #0xcd
- str r2, [r6]
-_022495E8:
- ldr r1, [r1, r5]
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- beq _022495FC
- ldr r1, [r0, r5]
- mov r0, #7
- tst r0, r1
- beq _022495FC
- mov r0, #0xce
- str r0, [r6]
-_022495FC:
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_02249602:
- ldr r7, _022496FC ; =0x00002D58
- add r1, r4, r5
- mov r0, #0
- mov r5, #6
- add r3, r7, #0
-_0224960C:
- ldrsb r2, [r1, r3]
- cmp r2, #6
- bge _02249618
- mov r2, #1
- strb r5, [r1, r7]
- str r2, [sp, #0xc]
-_02249618:
- add r0, r0, #1
- add r1, r1, #1
- cmp r0, #8
- blt _0224960C
- ldr r0, [sp, #0xc]
- cmp r0, #1
- bne _022496C8
- mov r0, #0xd3
- str r0, [r6]
- b _02249A3C
-_0224962C:
- add r1, r4, r5
- add r0, #0x24
- ldr r1, [r1, r0]
- mov r0, #0xf
- lsl r0, r0, #0x10
- tst r0, r1
- beq _022496C8
- mov r0, #6
- add r3, #0x70
- str r0, [r4, r3]
- mov r0, #0xd4
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_0224964A:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _0224965C
- lsr r0, r7, #0x1f
- add r0, r7, r0
- asr r7, r0, #1
-_0224965C:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _02249700 ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r7, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _022496C8
- ldr r0, _02249704 ; =0x00000109
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_02249680:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _02249692
- lsr r0, r7, #0x1f
- add r0, r7, r0
- asr r7, r0, #1
-_02249692:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _02249700 ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r7, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _022496C8
- ldr r0, _02249708 ; =0x00002DCC
- add r2, r4, r0
- mov r0, #1
- ldr r1, [r2, r5]
- lsl r0, r0, #0x1c
- orr r0, r1
- str r0, [r2, r5]
- b _02249A3C
-_022496BC:
- add r1, r4, r5
- add r0, r0, #4
- ldr r0, [r1, r0]
- lsr r1, r0, #1
- cmp r2, r1
- bls _022496CA
-_022496C8:
- b _02249A3C
-_022496CA:
- add r1, r7, #0
- bl MOD11_022476C0
- ldr r1, _022496E8 ; =0x0000215C
- add r2, r4, r5
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #0
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r0, _0224970C ; =0x00002DA8
- b _02249710
- nop
-_022496E4: .word 0x00002D8C
-_022496E8: .word 0x0000215C
-_022496EC: .word 0x00000F88
-_022496F0: .word 0x00002D4C
-_022496F4: .word 0x00002D6C
-_022496F8: .word 0x00002DB0
-_022496FC: .word 0x00002D58
-_02249700: .word 0x00002D90
-_02249704: .word 0x00000109
-_02249708: .word 0x00002DCC
-_0224970C: .word 0x00002DA8
-_02249710:
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- bne _02249722
- mov r0, #0xcf
- b _02249724
-_02249722:
- mov r0, #0xc6
-_02249724:
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_0224972C:
- add r1, r4, r5
- add r0, r0, #4
- ldr r0, [r1, r0]
- lsr r1, r0, #1
- cmp r2, r1
- bhi _022497F2
- add r1, r7, #0
- bl MOD11_022476C0
- ldr r1, _02249A58 ; =0x0000215C
- add r2, r4, r5
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #1
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r0, _02249A5C ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- bne _02249760
- mov r0, #0xcf
- b _02249762
-_02249760:
- mov r0, #0xc6
-_02249762:
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_0224976A:
- add r1, r4, r5
- add r0, r0, #4
- ldr r0, [r1, r0]
- lsr r1, r0, #1
- cmp r2, r1
- bhi _022497F2
- add r1, r7, #0
- bl MOD11_022476C0
- ldr r1, _02249A58 ; =0x0000215C
- add r2, r4, r5
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #2
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r0, _02249A5C ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- bne _0224979E
- mov r0, #0xcf
- b _022497A0
-_0224979E:
- mov r0, #0xc6
-_022497A0:
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_022497A8:
- add r1, r4, r5
- add r0, r0, #4
- ldr r0, [r1, r0]
- lsr r1, r0, #1
- cmp r2, r1
- bhi _022497F2
- add r1, r7, #0
- bl MOD11_022476C0
- ldr r1, _02249A58 ; =0x0000215C
- add r2, r4, r5
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #3
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r0, _02249A5C ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- bne _022497DC
- mov r0, #0xcf
- b _022497DE
-_022497DC:
- mov r0, #0xc6
-_022497DE:
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_022497E6:
- add r1, r4, r5
- add r0, r0, #4
- ldr r0, [r1, r0]
- lsr r1, r0, #1
- cmp r2, r1
- bls _022497F4
-_022497F2:
- b _02249A3C
-_022497F4:
- add r1, r7, #0
- bl MOD11_022476C0
- ldr r1, _02249A58 ; =0x0000215C
- add r2, r4, r5
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #4
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r0, _02249A5C ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- bne _0224981C
- mov r0, #0xcf
- b _0224981E
-_0224981C:
- mov r0, #0xc6
-_0224981E:
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_02249826:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _02249838
- lsr r0, r7, #0x1f
- add r0, r7, r0
- asr r7, r0, #1
-_02249838:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _02249A60 ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r7, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _02249932
- ldr r0, _02249A64 ; =0x00002D59
- add r1, r4, r5
- ldrsb r0, [r1, r0]
- cmp r0, #0xc
- bge _02249932
- mov r1, #0x13
- mov r0, #1
- lsl r1, r1, #4
- str r0, [sp, #0xc]
- str r0, [r4, r1]
- mov r0, #0xd0
- str r0, [r6]
- b _02249A3C
-_0224986C:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _0224987E
- lsr r0, r7, #0x1f
- add r0, r7, r0
- asr r7, r0, #1
-_0224987E:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _02249A60 ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r7, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _02249932
- ldr r0, _02249A68 ; =0x00002D5A
- add r1, r4, r5
- ldrsb r0, [r1, r0]
- cmp r0, #0xc
- bge _02249932
- mov r0, #0x13
- mov r1, #2
- lsl r0, r0, #4
- str r1, [r4, r0]
- mov r0, #0xd0
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_022498B4:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _022498C6
- lsr r0, r7, #0x1f
- add r0, r7, r0
- asr r7, r0, #1
-_022498C6:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _02249A60 ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r7, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _02249932
- ldr r0, _02249A6C ; =0x00002D5B
- add r1, r4, r5
- ldrsb r0, [r1, r0]
- cmp r0, #0xc
- bge _02249932
- mov r0, #0x13
- mov r1, #3
- lsl r0, r0, #4
- str r1, [r4, r0]
- mov r0, #0xd0
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_022498FC:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _0224990E
- lsr r0, r7, #0x1f
- add r0, r7, r0
- asr r7, r0, #1
-_0224990E:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _02249A60 ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r7, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _02249932
- ldr r0, _02249A70 ; =0x00002D5C
- add r1, r4, r5
- ldrsb r0, [r1, r0]
- cmp r0, #0xc
- blt _02249934
-_02249932:
- b _02249A3C
-_02249934:
- mov r0, #0x13
- mov r1, #4
- lsl r0, r0, #4
- str r1, [r4, r0]
- mov r0, #0xd0
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_02249946:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _02249958
- lsr r0, r7, #0x1f
- add r0, r7, r0
- asr r7, r0, #1
-_02249958:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _02249A60 ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r7, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _02249A3C
- ldr r0, _02249A74 ; =0x00002D5D
- add r1, r4, r5
- ldrsb r0, [r1, r0]
- cmp r0, #0xc
- bge _02249A3C
- mov r0, #0x13
- mov r1, #5
- lsl r0, r0, #4
- str r1, [r4, r0]
- mov r0, #0xd0
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_0224998E:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _022499A0
- lsr r0, r7, #0x1f
- add r0, r7, r0
- asr r7, r0, #1
-_022499A0:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _02249A60 ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r7, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _02249A3C
- ldr r0, _02249A78 ; =0x00002DB0
- add r1, r4, r5
- ldr r1, [r1, r0]
- mov r0, #1
- lsl r0, r0, #0x14
- tst r0, r1
- bne _02249A3C
- mov r0, #0xd1
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
- b _02249A3C
-_022499D2:
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x52
- bne _022499E4
- lsr r0, r7, #0x1f
- add r0, r7, r0
- asr r7, r0, #1
-_022499E4:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _02249A60 ; =0x00002D90
- add r1, r4, r1
- ldr r0, [r1, r0]
- add r1, r7, #0
- bl _u32_div_f
- ldr r1, [sp, #0x14]
- ldr r1, [r1, r5]
- cmp r1, r0
- bhi _02249A3C
- ldr r0, _02249A64 ; =0x00002D59
- mov r2, #0
- add r3, r4, r5
-_02249A04:
- ldrsb r1, [r3, r0]
- cmp r1, #0xc
- blt _02249A12
- add r2, r2, #1
- add r3, r3, #1
- cmp r2, #5
- blt _02249A04
-_02249A12:
- cmp r2, #5
- beq _02249A3C
- ldr r7, _02249A64 ; =0x00002D59
- add r5, r4, r5
-_02249A1A:
- bl rand_LC
- mov r1, #5
- bl _s32_div_f
- add r0, r5, r1
- ldrsb r0, [r0, r7]
- cmp r0, #0xc
- beq _02249A1A
- mov r0, #0x13
- add r1, r1, #1
- lsl r0, r0, #4
- str r1, [r4, r0]
- mov r0, #0xd2
- str r0, [r6]
- mov r0, #1
- str r0, [sp, #0xc]
-_02249A3C:
- ldr r0, [sp, #0xc]
- cmp r0, #1
- bne _02249A50
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02249B4C
- mov r1, #0x4a
- lsl r1, r1, #2
- str r0, [r4, r1]
-_02249A50:
- ldr r0, [sp, #0xc]
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02249A58: .word 0x0000215C
-_02249A5C: .word 0x00002DA8
-_02249A60: .word 0x00002D90
-_02249A64: .word 0x00002D59
-_02249A68: .word 0x00002D5A
-_02249A6C: .word 0x00002D5B
-_02249A70: .word 0x00002D5C
-_02249A74: .word 0x00002D5D
-_02249A78: .word 0x00002DB0
-
- thumb_func_start MOD11_02249A7C
-MOD11_02249A7C: ; 0x02249A7C
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r5, r1, #0
- add r4, r2, #0
- mov r6, #0
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02249D90
- add r7, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_02249DA4
- str r0, [sp, #8]
- mov r0, #0xc0
- mul r0, r4
- str r0, [sp]
- add r1, r5, r0
- ldr r0, _02249B40 ; =0x00002D8C
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02249B38
- cmp r7, #0x63
- beq _02249ABA
- cmp r7, #0x64
- beq _02249AD0
- cmp r7, #0x73
- beq _02249AE6
- b _02249B0E
-_02249ABA:
- add r0, r5, #0
- add r0, #0x94
- str r4, [r0]
- add r0, r5, #0
- mov r1, #5
- add r0, #0x88
- str r1, [r0]
- mov r0, #0x2f
- str r0, [sp, #4]
- mov r6, #1
- b _02249B0E
-_02249AD0:
- add r0, r5, #0
- add r0, #0x94
- str r4, [r0]
- add r0, r5, #0
- mov r1, #5
- add r0, #0x88
- str r1, [r0]
- mov r0, #0x19
- str r0, [sp, #4]
- mov r6, #1
- b _02249B0E
-_02249AE6:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x62
- beq _02249B0E
- ldr r0, [sp]
- add r1, r5, r0
- ldr r0, _02249B44 ; =0x00002D90
- ldr r1, [r1, r0]
- sub r0, r6, #1
- mul r0, r1
- ldr r1, [sp, #8]
- bl MOD11_022476C0
- ldr r1, _02249B48 ; =0x0000215C
- mov r6, #1
- str r0, [r5, r1]
- mov r0, #0xd7
- str r0, [sp, #4]
-_02249B0E:
- cmp r6, #1
- bne _02249B38
- mov r0, #0x46
- lsl r0, r0, #2
- str r4, [r5, r0]
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02249B4C
- mov r1, #0x4a
- lsl r1, r1, #2
- str r0, [r5, r1]
- ldr r2, [sp, #4]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_022431DC
- ldr r0, [r5, #8]
- str r0, [r5, #0xc]
- mov r0, #0x15
- str r0, [r5, #8]
-_02249B38:
- add r0, r6, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- nop
-_02249B40: .word 0x00002D8C
-_02249B44: .word 0x00002D90
-_02249B48: .word 0x0000215C
-
- thumb_func_start MOD11_02249B4C
-MOD11_02249B4C: ; 0x02249B4C
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD11_02246D1C
- cmp r0, #0x67
- bne _02249B5E
- mov r0, #0
- pop {r3, r4, r5, pc}
-_02249B5E:
- mov r0, #0xc0
- mul r0, r4
- add r2, r5, r0
- ldr r0, _02249B78 ; =0x00002DCC
- ldr r1, [r2, r0]
- lsl r1, r1, #0xa
- lsr r1, r1, #0x1d
- beq _02249B72
- mov r0, #0
- pop {r3, r4, r5, pc}
-_02249B72:
- sub r0, #0x14
- ldrh r0, [r2, r0]
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02249B78: .word 0x00002DCC
-
- thumb_func_start MOD11_02249B7C
-MOD11_02249B7C: ; 0x02249B7C
- lsl r1, r1, #4
- add r1, r0, r1
- ldr r0, _02249B90 ; =0x000021A8
- ldr r0, [r1, r0]
- cmp r0, #0x27
- bne _02249B8C
- mov r0, #1
- bx lr
-_02249B8C:
- mov r0, #0
- bx lr
- .align 2, 0
-_02249B90: .word 0x000021A8
-
- thumb_func_start MOD11_02249B94
-MOD11_02249B94: ; 0x02249B94
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r5, r1, #0
- ldr r1, [r5, #0x6c]
- str r0, [sp]
- add r6, r2, #0
- mov r7, #0
- cmp r1, #0xff
- bne _02249BAC
- add sp, #0xc
- add r0, r7, #0
- pop {r4, r5, r6, r7, pc}
-_02249BAC:
- add r0, r5, #0
- bl MOD11_0224AD9C
- cmp r0, #1
- bne _02249BBC
- add sp, #0xc
- add r0, r7, #0
- pop {r4, r5, r6, r7, pc}
-_02249BBC:
- ldr r1, [r5, #0x6c]
- add r0, r5, #0
- bl MOD11_02249D90
- add r4, r0, #0
- ldr r1, [r5, #0x6c]
- add r0, r5, #0
- add r2, r7, #0
- bl MOD11_02249DA4
- str r0, [sp, #4]
- ldr r0, [sp]
- ldr r1, [r5, #0x64]
- bl MOD11_02230270
- str r0, [sp, #8]
- cmp r4, #0x2e
- bgt _02249BF2
- cmp r4, #0x2a
- blt _02249BF0
- bne _02249BE8
- b _02249D24
-_02249BE8:
- cmp r4, #0x2d
- beq _02249C74
- cmp r4, #0x2e
- beq _02249CD2
-_02249BF0:
- b _02249D6A
-_02249BF2:
- cmp r4, #0x73
- bne _02249C5C
- ldr r0, [r5, #0x64]
- mov r1, #0xc0
- mul r1, r0
- add r3, r5, r1
- ldr r1, _02249D70 ; =0x00002D8C
- ldr r2, [r3, r1]
- cmp r2, #0
- beq _02249C5C
- add r1, #0x2c
- ldrh r1, [r3, r1]
- cmp r1, #0
- bne _02249C5C
- add r1, r5, r0
- ldr r0, _02249D74 ; =0x0000219C
- ldrb r0, [r1, r0]
- bl MaskOfFlagNo
- ldr r1, [sp, #8]
- lsl r1, r1, #3
- add r2, r5, r1
- mov r1, #0x71
- lsl r1, r1, #2
- ldr r2, [r2, r1]
- lsl r2, r2, #3
- lsr r2, r2, #0x1a
- tst r0, r2
- bne _02249C5C
- ldr r0, _02249D78 ; =0x00003044
- sub r1, #0xaa
- ldr r0, [r5, r0]
- cmp r0, r1
- beq _02249C5C
- ldr r2, [r5, #0x6c]
- mov r1, #0x1c
- mul r1, r2
- add r3, r5, r1
- mov r1, #0xb6
- lsl r1, r1, #2
- ldr r2, [r3, r1]
- cmp r2, #0
- bne _02249C50
- add r1, #8
- ldr r1, [r3, r1]
- cmp r1, #0
- beq _02249C5C
-_02249C50:
- mov r1, #0x85
- lsl r1, r1, #6
- ldr r2, [r5, r1]
- mov r1, #0x10
- tst r1, r2
- beq _02249C5E
-_02249C5C:
- b _02249D6A
-_02249C5E:
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _02249D7C ; =0x000003E9
- ldrb r1, [r1, r0]
- mov r0, #1
- tst r1, r0
- beq _02249D6A
- mov r1, #0xd8
- str r1, [r6]
- add r7, r0, #0
- b _02249D6A
-_02249C74:
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r5, r0
- ldr r0, _02249D70 ; =0x00002D8C
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _02249D6A
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x62
- beq _02249D6A
- mov r0, #0x85
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #0x10
- tst r0, r1
- bne _02249D6A
- ldr r1, [r5, #0x6c]
- mov r0, #0x1c
- mul r0, r1
- add r1, r5, r0
- mov r0, #0xb6
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02249D6A
- ldr r0, [r5, #0x64]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- ldr r0, _02249D80 ; =0x00002D90
- add r2, r5, r2
- ldr r2, [r2, r0]
- sub r1, #0xc1
- add r0, r2, #0
- mul r0, r1
- ldr r1, [sp, #4]
- bl MOD11_022476C0
- ldr r1, _02249D84 ; =0x0000215C
- mov r7, #1
- str r0, [r5, r1]
- lsr r0, r1, #5
- str r0, [r6]
- b _02249D6A
-_02249CD2:
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r5, r0
- ldr r0, _02249D70 ; =0x00002D8C
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _02249D6A
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x62
- beq _02249D6A
- ldr r1, [r5, #0x6c]
- mov r0, #0x1c
- mul r0, r1
- add r1, r5, r0
- mov r0, #0x2e
- lsl r0, r0, #4
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _02249D6A
- ldr r0, [r5, #0x64]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- ldr r0, _02249D80 ; =0x00002D90
- add r2, r5, r2
- ldr r2, [r2, r0]
- sub r1, #0xc1
- add r0, r2, #0
- mul r0, r1
- ldr r1, [sp, #4]
- bl MOD11_022476C0
- ldr r1, _02249D84 ; =0x0000215C
- mov r7, #1
- str r0, [r5, r1]
- lsr r0, r1, #5
- str r0, [r6]
- b _02249D6A
-_02249D24:
- ldr r1, [r5, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- ldr r2, _02249D70 ; =0x00002D8C
- add r0, r5, r0
- ldr r1, [r0, r2]
- cmp r1, #0
- beq _02249D6A
- ldr r1, _02249D88 ; =0x0000216C
- ldr r3, [r5, r1]
- mov r1, #2
- tst r1, r3
- beq _02249D6A
- add r1, r2, #4
- ldr r0, [r0, r1]
- ldr r1, [sp, #4]
- bl MOD11_022476C0
- ldr r1, _02249D84 ; =0x0000215C
- mov r7, #1
- str r0, [r5, r1]
- mov r1, #0xc6
- str r1, [r6]
- ldr r0, [r5, #0x6c]
- add r1, #0x52
- str r0, [r5, r1]
- ldr r0, [r5, #0x6c]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- ldr r0, _02249D8C ; =0x00002DB8
- add r2, r5, r2
- ldrh r0, [r2, r0]
- add r1, #0x68
- str r0, [r5, r1]
-_02249D6A:
- add r0, r7, #0
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02249D70: .word 0x00002D8C
-_02249D74: .word 0x0000219C
-_02249D78: .word 0x00003044
-_02249D7C: .word 0x000003E9
-_02249D80: .word 0x00002D90
-_02249D84: .word 0x0000215C
-_02249D88: .word 0x0000216C
-_02249D8C: .word 0x00002DB8
-
- thumb_func_start MOD11_02249D90
-MOD11_02249D90: ; 0x02249D90
- push {r4, lr}
- add r4, r0, #0
- bl MOD11_02249B4C
- add r1, r0, #0
- add r0, r4, #0
- mov r2, #1
- bl MOD11_0224C12C
- pop {r4, pc}
-
- thumb_func_start MOD11_02249DA4
-MOD11_02249DA4: ; 0x02249DA4
- push {r4, lr}
- add r4, r0, #0
- cmp r2, #0
- beq _02249DB6
- cmp r2, #1
- beq _02249DD2
- cmp r2, #2
- beq _02249DBE
- b _02249DDC
-_02249DB6:
- bl MOD11_02249B4C
- add r1, r0, #0
- b _02249DDC
-_02249DBE:
- mov r0, #0xc0
- mul r0, r1
- add r2, r4, r0
- ldr r0, _02249DE8 ; =0x00002DCC
- ldr r0, [r2, r0]
- lsl r0, r0, #0xa
- lsr r0, r0, #0x1d
- beq _02249DD2
- mov r0, #0
- pop {r4, pc}
-_02249DD2:
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _02249DEC ; =0x00002DB8
- ldrh r1, [r1, r0]
-_02249DDC:
- add r0, r4, #0
- mov r2, #2
- bl MOD11_0224C12C
- pop {r4, pc}
- nop
-_02249DE8: .word 0x00002DCC
-_02249DEC: .word 0x00002DB8
-
- thumb_func_start MOD11_02249DF0
-MOD11_02249DF0: ; 0x02249DF0
- push {r4, lr}
- add r4, r0, #0
- bl MOD11_02249B4C
- add r1, r0, #0
- add r0, r4, #0
- mov r2, #0xb
- bl MOD11_0224C12C
- pop {r4, pc}
-
- thumb_func_start MOD11_02249E04
-MOD11_02249E04: ; 0x02249E04
- push {r4, lr}
- add r4, r0, #0
- bl MOD11_02249B4C
- add r1, r0, #0
- add r0, r4, #0
- mov r2, #0xc
- bl MOD11_0224C12C
- pop {r4, pc}
-
- thumb_func_start MOD11_02249E18
-MOD11_02249E18: ; 0x02249E18
- mov r2, #0xc0
- mul r2, r1
- ldr r1, _02249E28 ; =0x00002DB8
- add r2, r0, r2
- ldrh r1, [r2, r1]
- ldr r3, _02249E2C ; =MOD11_0224C12C
- mov r2, #8
- bx r3
- .align 2, 0
-_02249E28: .word 0x00002DB8
-_02249E2C: .word MOD11_0224C12C
-
- thumb_func_start MOD11_02249E30
-MOD11_02249E30: ; 0x02249E30
- push {r3, lr}
- mov r2, #0xc0
- mul r2, r1
- ldr r1, _02249E54 ; =0x00002DCC
- add r3, r0, r2
- ldr r2, [r3, r1]
- lsl r2, r2, #0xa
- lsr r2, r2, #0x1d
- beq _02249E46
- mov r0, #0
- pop {r3, pc}
-_02249E46:
- sub r1, #0x14
- ldrh r1, [r3, r1]
- mov r2, #9
- bl MOD11_0224C12C
- pop {r3, pc}
- nop
-_02249E54: .word 0x00002DCC
-
- thumb_func_start MOD11_02249E58
-MOD11_02249E58: ; 0x02249E58
- push {r3, lr}
- mov r2, #0xc0
- mul r2, r1
- ldr r1, _02249E7C ; =0x00002DCC
- add r3, r0, r2
- ldr r2, [r3, r1]
- lsl r2, r2, #0xa
- lsr r2, r2, #0x1d
- beq _02249E6E
- mov r0, #0
- pop {r3, pc}
-_02249E6E:
- sub r1, #0x14
- ldrh r1, [r3, r1]
- mov r2, #0xa
- bl MOD11_0224C12C
- pop {r3, pc}
- nop
-_02249E7C: .word 0x00002DCC
-
- thumb_func_start MOD11_02249E80
-MOD11_02249E80: ; 0x02249E80
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r1, #0
- add r4, r2, #0
- str r0, [sp, #4]
- add r0, r5, #0
- add r1, r4, #0
- mov r6, #0
- bl MOD11_02249D90
- cmp r0, #0x7a
- bne _02249E9E
- add sp, #8
- add r0, r6, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02249E9E:
- mov r0, #0xc0
- add r7, r4, #0
- mul r7, r0
- ldr r0, _02249F80 ; =0x00002DB0
- add r2, r5, r7
- ldr r1, [r2, r0]
- ldr r3, _02249F84 ; =0x0400E000
- tst r1, r3
- bne _02249EBA
- add r0, #0x10
- ldr r1, [r2, r0]
- lsr r0, r3, #0x10
- tst r0, r1
- beq _02249EBC
-_02249EBA:
- mov r6, #1
-_02249EBC:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x17
- beq _02249EDC
- mov r0, #0x17
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #3
- add r3, r4, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _02249F10
-_02249EDC:
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #8
- beq _02249EFC
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #8
- bne _02249F12
-_02249EFC:
- mov r0, #0x2a
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #3
- add r3, r4, #0
- bl MOD11_02246870
- cmp r0, #0
- beq _02249F12
-_02249F10:
- mov r6, #1
-_02249F12:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x1a
- beq _02249F4A
- ldr r0, _02249F88 ; =0x00002DCC
- add r1, r5, r7
- ldr r0, [r1, r0]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x1d
- bne _02249F4A
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #2
- beq _02249F4A
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #2
- bne _02249F64
-_02249F4A:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02249D90
- cmp r0, #0x69
- beq _02249F64
- mov r0, #6
- lsl r0, r0, #6
- ldr r1, [r5, r0]
- mov r0, #7
- lsl r0, r0, #0xc
- tst r0, r1
- beq _02249F7A
-_02249F64:
- mov r0, #0x47
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #3
- add r3, r4, #0
- bl MOD11_02246870
- cmp r0, #0
- beq _02249F7A
- mov r6, #1
-_02249F7A:
- add r0, r6, #0
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02249F80: .word 0x00002DB0
-_02249F84: .word 0x0400E000
-_02249F88: .word 0x00002DCC
-
- thumb_func_start MOD11_02249F8C
-MOD11_02249F8C: ; 0x02249F8C
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r4, r1, #0
- str r0, [sp]
- mov r6, #0
- str r2, [sp, #4]
- add r0, r4, #0
- add r1, r2, #0
- add r5, r6, #0
- bl MOD11_02249E18
- add r7, r0, #0
- ldr r1, [sp, #4]
- add r0, r4, #0
- mov r2, #1
- bl MOD11_02249DA4
- str r0, [sp, #0x10]
- ldr r1, [r4, #0x6c]
- add r0, r4, #0
- bl MOD11_0224AD9C
- cmp r0, #1
- bne _02249FC2
- add sp, #0x14
- add r0, r6, #0
- pop {r4, r5, r6, r7, pc}
-_02249FC2:
- cmp r7, #0x17
- bls _02249FC8
- b _0224A444
-_02249FC8:
- add r0, r7, r7
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02249FD4: ; jump table
- .short _0224A444 - _02249FD4 - 2 ; case 0
- .short _0224A04E - _02249FD4 - 2 ; case 1
- .short _0224A066 - _02249FD4 - 2 ; case 2
- .short _0224A07E - _02249FD4 - 2 ; case 3
- .short _0224A096 - _02249FD4 - 2 ; case 4
- .short _0224A0AE - _02249FD4 - 2 ; case 5
- .short _0224A0C6 - _02249FD4 - 2 ; case 6
- .short _0224A004 - _02249FD4 - 2 ; case 7
- .short _0224A13C - _02249FD4 - 2 ; case 8
- .short _0224A154 - _02249FD4 - 2 ; case 9
- .short _0224A024 - _02249FD4 - 2 ; case 10
- .short _0224A1B6 - _02249FD4 - 2 ; case 11
- .short _0224A1FC - _02249FD4 - 2 ; case 12
- .short _0224A242 - _02249FD4 - 2 ; case 13
- .short _0224A288 - _02249FD4 - 2 ; case 14
- .short _0224A2CE - _02249FD4 - 2 ; case 15
- .short _0224A314 - _02249FD4 - 2 ; case 16
- .short _0224A360 - _02249FD4 - 2 ; case 17
- .short _0224A37E - _02249FD4 - 2 ; case 18
- .short _0224A39C - _02249FD4 - 2 ; case 19
- .short _0224A3BA - _02249FD4 - 2 ; case 20
- .short _0224A424 - _02249FD4 - 2 ; case 21
- .short _0224A3D8 - _02249FD4 - 2 ; case 22
- .short _0224A43E - _02249FD4 - 2 ; case 23
-_0224A004:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r4, r0
- ldr r0, _0224A320 ; =0x00002D8C
- ldr r1, [r2, r0]
- add r0, r0, #4
- ldr r0, [r2, r0]
- cmp r1, r0
- beq _0224A020
- ldr r1, _0224A324 ; =0x0000215C
- ldr r0, [sp, #0x10]
- mov r5, #0xc6
- str r0, [r4, r1]
-_0224A020:
- mov r6, #1
- b _0224A45A
-_0224A024:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A328 ; =0x00002D90
- ldr r2, [r1, r0]
- sub r0, r0, #4
- ldr r0, [r1, r0]
- cmp r0, r2
- beq _0224A04A
- ldr r1, [sp, #0x10]
- add r0, r1, #0
- mul r0, r2
- mov r1, #0x64
- bl MOD11_022476C0
- ldr r1, _0224A324 ; =0x0000215C
- mov r5, #0xc6
- str r0, [r4, r1]
-_0224A04A:
- mov r6, #1
- b _0224A45A
-_0224A04E:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A32C ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #0x40
- tst r0, r1
- beq _0224A062
- mov r5, #0xc7
-_0224A062:
- mov r6, #1
- b _0224A45A
-_0224A066:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A32C ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #7
- tst r0, r1
- beq _0224A07A
- mov r5, #0xc8
-_0224A07A:
- mov r6, #1
- b _0224A45A
-_0224A07E:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A32C ; =0x00002DAC
- ldr r1, [r1, r0]
- ldr r0, _0224A330 ; =0x00000F88
- tst r0, r1
- beq _0224A092
- mov r5, #0xc9
-_0224A092:
- mov r6, #1
- b _0224A45A
-_0224A096:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A32C ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #0x10
- tst r0, r1
- beq _0224A0AA
- mov r5, #0xca
-_0224A0AA:
- mov r6, #1
- b _0224A45A
-_0224A0AE:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A32C ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #0x20
- tst r0, r1
- beq _0224A0C2
- mov r5, #0xcb
-_0224A0C2:
- mov r6, #1
- b _0224A45A
-_0224A0C6:
- str r5, [sp, #0xc]
-_0224A0C8:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- add r7, r1, #0
- mul r7, r0
- add r1, r4, r7
- ldr r0, _0224A334 ; =0x00002D4C
- add r2, r6, r1
- ldrh r0, [r2, r0]
- cmp r0, #0
- beq _0224A0FA
- add r2, r5, r1
- ldr r1, _0224A338 ; =0x00002D70
- ldrb r1, [r2, r1]
- bl FUN_0206AB30
- add r1, r4, r7
- add r2, r5, r1
- ldr r1, _0224A33C ; =0x00002D6C
- ldrb r1, [r2, r1]
- sub r1, r0, r1
- ldr r0, [sp, #0xc]
- cmp r1, r0
- ble _0224A0FA
- str r1, [sp, #0xc]
- str r5, [sp, #8]
-_0224A0FA:
- add r5, r5, #1
- add r6, r6, #2
- cmp r5, #4
- blt _0224A0C8
- mov r0, #0xb5
- lsl r0, r0, #6
- ldr r1, [sp, #8]
- add r0, r4, r0
- ldr r2, [sp, #0x10]
- add r0, r0, r7
- add r1, #0x1f
- bl MOD11_02243DC8
- ldr r0, [sp]
- ldr r2, [r4, #0x64]
- add r1, r4, #0
- bl MOD11_02245190
- ldr r0, [r4, #0x64]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- ldr r0, [sp, #8]
- add r2, r4, r2
- lsl r0, r0, #1
- add r2, r2, r0
- ldr r0, _0224A334 ; =0x00002D4C
- add r1, #0x64
- ldrh r0, [r2, r0]
- mov r5, #0xcc
- mov r6, #1
- str r0, [r4, r1]
- b _0224A45A
-_0224A13C:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A340 ; =0x00002DB0
- ldr r1, [r1, r0]
- mov r0, #7
- tst r0, r1
- beq _0224A150
- mov r5, #0xcd
-_0224A150:
- mov r6, #1
- b _0224A45A
-_0224A154:
- ldr r2, [r4, #0x64]
- mov r0, #0xc0
- add r1, r2, #0
- mul r1, r0
- ldr r6, _0224A32C ; =0x00002DAC
- add r0, r4, r1
- ldr r2, [r0, r6]
- lsl r3, r2, #0x18
- lsr r3, r3, #0x18
- bne _0224A172
- add r6, r6, #4
- ldr r6, [r0, r6]
- mov r0, #7
- tst r0, r6
- beq _0224A1B2
-_0224A172:
- mov r0, #0x40
- tst r0, r2
- beq _0224A17A
- mov r5, #0xc7
-_0224A17A:
- mov r0, #7
- tst r0, r2
- beq _0224A182
- mov r5, #0xc8
-_0224A182:
- ldr r0, _0224A330 ; =0x00000F88
- tst r0, r2
- beq _0224A18A
- mov r5, #0xc9
-_0224A18A:
- mov r0, #0x10
- tst r0, r2
- beq _0224A192
- mov r5, #0xca
-_0224A192:
- mov r0, #0x20
- tst r0, r2
- beq _0224A19A
- mov r5, #0xcb
-_0224A19A:
- ldr r0, _0224A340 ; =0x00002DB0
- add r1, r4, r1
- ldr r1, [r1, r0]
- mov r0, #7
- and r0, r1
- beq _0224A1A8
- mov r5, #0xcd
-_0224A1A8:
- cmp r3, #0
- beq _0224A1B2
- cmp r0, #0
- beq _0224A1B2
- mov r5, #0xce
-_0224A1B2:
- mov r6, #1
- b _0224A45A
-_0224A1B6:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- ldr r1, _0224A328 ; =0x00002D90
- add r2, r4, r0
- ldr r0, [r2, r1]
- sub r1, r1, #4
- ldr r1, [r2, r1]
- cmp r1, r0
- beq _0224A1F8
- ldr r1, [sp, #0x10]
- bl MOD11_022476C0
- ldr r1, _0224A324 ; =0x0000215C
- str r0, [r4, r1]
- mov r0, #0x13
- add r1, r6, #0
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r2, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r2
- add r2, r4, r0
- ldr r0, _0224A344 ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- sub r1, r6, #1
- cmp r0, r1
- bne _0224A1F6
- mov r5, #0xcf
- b _0224A1F8
-_0224A1F6:
- mov r5, #0xc6
-_0224A1F8:
- mov r6, #1
- b _0224A45A
-_0224A1FC:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- ldr r1, _0224A328 ; =0x00002D90
- add r2, r4, r0
- ldr r0, [r2, r1]
- sub r1, r1, #4
- ldr r1, [r2, r1]
- cmp r1, r0
- beq _0224A23E
- ldr r1, [sp, #0x10]
- bl MOD11_022476C0
- ldr r1, _0224A324 ; =0x0000215C
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #1
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r2, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r2
- add r2, r4, r0
- ldr r0, _0224A344 ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- sub r1, r6, #1
- cmp r0, r1
- bne _0224A23C
- mov r5, #0xcf
- b _0224A23E
-_0224A23C:
- mov r5, #0xc6
-_0224A23E:
- mov r6, #1
- b _0224A45A
-_0224A242:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- ldr r1, _0224A328 ; =0x00002D90
- add r2, r4, r0
- ldr r0, [r2, r1]
- sub r1, r1, #4
- ldr r1, [r2, r1]
- cmp r1, r0
- beq _0224A284
- ldr r1, [sp, #0x10]
- bl MOD11_022476C0
- ldr r1, _0224A324 ; =0x0000215C
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #2
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r2, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r2
- add r2, r4, r0
- ldr r0, _0224A344 ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- sub r1, r6, #1
- cmp r0, r1
- bne _0224A282
- mov r5, #0xcf
- b _0224A284
-_0224A282:
- mov r5, #0xc6
-_0224A284:
- mov r6, #1
- b _0224A45A
-_0224A288:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- ldr r1, _0224A328 ; =0x00002D90
- add r2, r4, r0
- ldr r0, [r2, r1]
- sub r1, r1, #4
- ldr r1, [r2, r1]
- cmp r1, r0
- beq _0224A2CA
- ldr r1, [sp, #0x10]
- bl MOD11_022476C0
- ldr r1, _0224A324 ; =0x0000215C
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #3
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r2, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r2
- add r2, r4, r0
- ldr r0, _0224A344 ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- sub r1, r6, #1
- cmp r0, r1
- bne _0224A2C8
- mov r5, #0xcf
- b _0224A2CA
-_0224A2C8:
- mov r5, #0xc6
-_0224A2CA:
- mov r6, #1
- b _0224A45A
-_0224A2CE:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- ldr r1, _0224A328 ; =0x00002D90
- add r2, r4, r0
- ldr r0, [r2, r1]
- sub r1, r1, #4
- ldr r1, [r2, r1]
- cmp r1, r0
- beq _0224A310
- ldr r1, [sp, #0x10]
- bl MOD11_022476C0
- ldr r1, _0224A324 ; =0x0000215C
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #4
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r2, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r2
- add r2, r4, r0
- ldr r0, _0224A344 ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- sub r1, r6, #1
- cmp r0, r1
- bne _0224A30E
- mov r5, #0xcf
- b _0224A310
-_0224A30E:
- mov r5, #0xc6
-_0224A310:
- mov r6, #1
- b _0224A45A
-_0224A314:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- add r2, r1, #0
- mul r2, r0
- ldr r1, _0224A348 ; =0x00002D59
- b _0224A34C
- .align 2, 0
-_0224A320: .word 0x00002D8C
-_0224A324: .word 0x0000215C
-_0224A328: .word 0x00002D90
-_0224A32C: .word 0x00002DAC
-_0224A330: .word 0x00000F88
-_0224A334: .word 0x00002D4C
-_0224A338: .word 0x00002D70
-_0224A33C: .word 0x00002D6C
-_0224A340: .word 0x00002DB0
-_0224A344: .word 0x00002DA8
-_0224A348: .word 0x00002D59
-_0224A34C:
- add r2, r4, r2
- ldrsb r1, [r2, r1]
- cmp r1, #0xc
- bge _0224A35C
- mov r1, #1
- add r0, #0x70
- str r1, [r4, r0]
- mov r5, #0xd0
-_0224A35C:
- mov r6, #1
- b _0224A45A
-_0224A360:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- add r2, r1, #0
- mul r2, r0
- ldr r1, _0224A4C0 ; =0x00002D5A
- add r2, r4, r2
- ldrsb r1, [r2, r1]
- cmp r1, #0xc
- bge _0224A37A
- mov r1, #2
- add r0, #0x70
- str r1, [r4, r0]
- mov r5, #0xd0
-_0224A37A:
- mov r6, #1
- b _0224A45A
-_0224A37E:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- add r2, r1, #0
- mul r2, r0
- ldr r1, _0224A4C4 ; =0x00002D5B
- add r2, r4, r2
- ldrsb r1, [r2, r1]
- cmp r1, #0xc
- bge _0224A398
- mov r1, #3
- add r0, #0x70
- str r1, [r4, r0]
- mov r5, #0xd0
-_0224A398:
- mov r6, #1
- b _0224A45A
-_0224A39C:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- add r2, r1, #0
- mul r2, r0
- ldr r1, _0224A4C8 ; =0x00002D5C
- add r2, r4, r2
- ldrsb r1, [r2, r1]
- cmp r1, #0xc
- bge _0224A3B6
- mov r1, #4
- add r0, #0x70
- str r1, [r4, r0]
- mov r5, #0xd0
-_0224A3B6:
- mov r6, #1
- b _0224A45A
-_0224A3BA:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- add r2, r1, #0
- mul r2, r0
- ldr r1, _0224A4CC ; =0x00002D5D
- add r2, r4, r2
- ldrsb r1, [r2, r1]
- cmp r1, #0xc
- bge _0224A3D4
- mov r1, #5
- add r0, #0x70
- str r1, [r4, r0]
- mov r5, #0xd0
-_0224A3D4:
- mov r6, #1
- b _0224A45A
-_0224A3D8:
- ldr r2, [r4, #0x64]
- mov r1, #0xc0
- mul r1, r2
- add r3, r4, r1
- ldr r1, _0224A4D0 ; =0x00002D59
- add r0, r6, #0
-_0224A3E4:
- ldrsb r2, [r3, r1]
- cmp r2, #0xc
- blt _0224A3F2
- add r0, r0, #1
- add r3, r3, #1
- cmp r0, #5
- blt _0224A3E4
-_0224A3F2:
- cmp r0, #5
- beq _0224A420
- ldr r5, _0224A4D0 ; =0x00002D59
- mov r7, #5
- mov r6, #0xc0
-_0224A3FC:
- bl rand_LC
- add r1, r7, #0
- bl _s32_div_f
- ldr r0, [r4, #0x64]
- add r2, r0, #0
- mul r2, r6
- add r0, r4, r2
- add r0, r1, r0
- ldrsb r0, [r0, r5]
- cmp r0, #0xc
- beq _0224A3FC
- mov r0, #0x13
- add r1, r1, #1
- lsl r0, r0, #4
- str r1, [r4, r0]
- mov r5, #0xd2
-_0224A420:
- mov r6, #1
- b _0224A45A
-_0224A424:
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A4D4 ; =0x00002DB0
- ldr r1, [r1, r0]
- mov r0, #1
- lsl r0, r0, #0x14
- tst r0, r1
- bne _0224A43A
- mov r5, #0xd1
-_0224A43A:
- mov r6, #1
- b _0224A45A
-_0224A43E:
- ldr r5, _0224A4D8 ; =0x00000109
- mov r6, #1
- b _0224A45A
-_0224A444:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, _0224A4DC ; =0x00002DB8
- add r1, r4, r1
- ldrh r0, [r1, r0]
- bl FUN_0206EAEC
- cmp r0, #1
- bne _0224A45A
- mov r6, #1
-_0224A45A:
- cmp r6, #1
- bne _0224A4B8
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x67
- beq _0224A482
- ldr r1, [r4, #0x64]
- mov r0, #0xc0
- add r2, r1, #0
- mul r2, r0
- mov r1, #0xb7
- add r2, r4, r2
- lsl r1, r1, #6
- ldr r2, [r2, r1]
- mov r1, #1
- lsl r1, r1, #0x1a
- tst r1, r2
- beq _0224A48C
-_0224A482:
- mov r0, #0x4e
- mov r1, #0
- lsl r0, r0, #2
- str r1, [r4, r0]
- b _0224A490
-_0224A48C:
- add r0, #0x78
- str r5, [r4, r0]
-_0224A490:
- ldr r0, [sp, #4]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- ldr r0, _0224A4DC ; =0x00002DB8
- add r2, r4, r2
- ldrh r0, [r2, r0]
- add r1, #0x68
- str r0, [r4, r1]
- ldr r2, [r4, #0x64]
- mov r0, #0xba
- lsl r0, r0, #2
- mov r1, #0x1c
- add r3, r2, #0
- mul r3, r1
- add r0, r4, r0
- ldr r2, [r0, r3]
- mov r1, #2
- orr r1, r2
- str r1, [r0, r3]
-_0224A4B8:
- add r0, r6, #0
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- nop
-_0224A4C0: .word 0x00002D5A
-_0224A4C4: .word 0x00002D5B
-_0224A4C8: .word 0x00002D5C
-_0224A4CC: .word 0x00002D5D
-_0224A4D0: .word 0x00002D59
-_0224A4D4: .word 0x00002DB0
-_0224A4D8: .word 0x00000109
-_0224A4DC: .word 0x00002DB8
-
- thumb_func_start MOD11_0224A4E0
-MOD11_0224A4E0: ; 0x0224A4E0
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r4, r1, #0
- str r0, [sp]
- str r2, [sp, #4]
- add r0, r4, #0
- add r1, r2, #0
- bl MOD11_02249E30
- add r6, r0, #0
- ldr r1, [sp, #4]
- add r0, r4, #0
- mov r2, #2
- bl MOD11_02249DA4
- str r0, [sp, #0x10]
- ldr r1, [sp, #4]
- add r0, r4, #0
- bl MOD11_02249E58
- ldr r1, _0224A84C ; =0x00002154
- add r2, r4, #0
- str r0, [r4, r1]
- ldr r0, _0224A850 ; =0x00003118
- mov r5, #0
- str r5, [r4, r0]
- add r2, #0x88
- str r5, [r2]
- ldr r1, [r4, r1]
- cmp r1, #0
- bne _0224A524
- add sp, #0x14
- add r0, r5, #0
- pop {r4, r5, r6, r7, pc}
-_0224A524:
- cmp r6, #0x1e
- bls _0224A52A
- b _0224AAAC
-_0224A52A:
- add r1, r6, r6
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0224A536: ; jump table
- .short _0224AAAC - _0224A536 - 2 ; case 0
- .short _0224A5A2 - _0224A536 - 2 ; case 1
- .short _0224A5BA - _0224A536 - 2 ; case 2
- .short _0224A5D2 - _0224A536 - 2 ; case 3
- .short _0224A5EA - _0224A536 - 2 ; case 4
- .short _0224A602 - _0224A536 - 2 ; case 5
- .short _0224A61A - _0224A536 - 2 ; case 6
- .short _0224A574 - _0224A536 - 2 ; case 7
- .short _0224A69C - _0224A536 - 2 ; case 8
- .short _0224A6B4 - _0224A536 - 2 ; case 9
- .short _0224A580 - _0224A536 - 2 ; case 10
- .short _0224A77A - _0224A536 - 2 ; case 11
- .short _0224A7BC - _0224A536 - 2 ; case 12
- .short _0224A7FE - _0224A536 - 2 ; case 13
- .short _0224A840 - _0224A536 - 2 ; case 14
- .short _0224A8B0 - _0224A536 - 2 ; case 15
- .short _0224A9AC - _0224A536 - 2 ; case 16
- .short _0224A9CA - _0224A536 - 2 ; case 17
- .short _0224A9E8 - _0224A536 - 2 ; case 18
- .short _0224AA06 - _0224A536 - 2 ; case 19
- .short _0224AA24 - _0224A536 - 2 ; case 20
- .short _0224AA8E - _0224A536 - 2 ; case 21
- .short _0224AA42 - _0224A536 - 2 ; case 22
- .short _0224AAA8 - _0224A536 - 2 ; case 23
- .short _0224A8F2 - _0224A536 - 2 ; case 24
- .short _0224A91A - _0224A536 - 2 ; case 25
- .short _0224A93E - _0224A536 - 2 ; case 26
- .short _0224A954 - _0224A536 - 2 ; case 27
- .short _0224A96A - _0224A536 - 2 ; case 28
- .short _0224A980 - _0224A536 - 2 ; case 29
- .short _0224A996 - _0224A536 - 2 ; case 30
-_0224A574:
- ldr r1, [sp, #0x10]
- sub r2, r0, #4
- str r1, [r4, r2]
- mov r1, #0xc6
- str r1, [r4, r0]
- b _0224AAAC
-_0224A580:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A854 ; =0x00002D90
- ldr r0, [r1, r0]
- ldr r1, [sp, #0x10]
- mul r0, r1
- mov r1, #0x64
- bl MOD11_022476C0
- ldr r1, _0224A858 ; =0x00003114
- mov r2, #0xc6
- str r0, [r4, r1]
- add r0, r1, #4
- str r2, [r4, r0]
- b _0224AAAC
-_0224A5A2:
- ldr r2, [r4, #0x6c]
- mov r1, #0xc0
- mul r1, r2
- add r2, r4, r1
- ldr r1, _0224A85C ; =0x00002DAC
- ldr r2, [r2, r1]
- mov r1, #0x40
- tst r1, r2
- beq _0224A65C
- mov r1, #0xc7
- str r1, [r4, r0]
- b _0224AAAC
-_0224A5BA:
- ldr r2, [r4, #0x6c]
- mov r1, #0xc0
- mul r1, r2
- add r2, r4, r1
- ldr r1, _0224A85C ; =0x00002DAC
- ldr r2, [r2, r1]
- mov r1, #7
- tst r1, r2
- beq _0224A65C
- mov r1, #0xc8
- str r1, [r4, r0]
- b _0224AAAC
-_0224A5D2:
- ldr r2, [r4, #0x6c]
- mov r1, #0xc0
- mul r1, r2
- add r2, r4, r1
- ldr r1, _0224A85C ; =0x00002DAC
- ldr r2, [r2, r1]
- ldr r1, _0224A860 ; =0x00000F88
- tst r1, r2
- beq _0224A65C
- mov r1, #0xc9
- str r1, [r4, r0]
- b _0224AAAC
-_0224A5EA:
- ldr r2, [r4, #0x6c]
- mov r1, #0xc0
- mul r1, r2
- add r2, r4, r1
- ldr r1, _0224A85C ; =0x00002DAC
- ldr r2, [r2, r1]
- mov r1, #0x10
- tst r1, r2
- beq _0224A65C
- mov r1, #0xca
- str r1, [r4, r0]
- b _0224AAAC
-_0224A602:
- ldr r2, [r4, #0x6c]
- mov r1, #0xc0
- mul r1, r2
- add r2, r4, r1
- ldr r1, _0224A85C ; =0x00002DAC
- ldr r2, [r2, r1]
- mov r1, #0x20
- tst r1, r2
- beq _0224A65C
- mov r1, #0xcb
- str r1, [r4, r0]
- b _0224AAAC
-_0224A61A:
- add r6, r5, #0
- add r7, r5, #0
-_0224A61E:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- str r0, [sp, #8]
- ldr r0, _0224A864 ; =0x00002D4C
- add r2, r7, r1
- ldrh r0, [r2, r0]
- cmp r0, #0
- beq _0224A650
- add r2, r6, r1
- ldr r1, _0224A868 ; =0x00002D70
- ldrb r1, [r2, r1]
- bl FUN_0206AB30
- ldr r1, [sp, #8]
- add r1, r4, r1
- add r2, r6, r1
- ldr r1, _0224A86C ; =0x00002D6C
- ldrb r1, [r2, r1]
- sub r0, r0, r1
- cmp r0, r5
- ble _0224A650
- add r5, r0, #0
- str r6, [sp, #0xc]
-_0224A650:
- add r6, r6, #1
- add r7, r7, #2
- cmp r6, #4
- blt _0224A61E
- cmp r5, #0
- bne _0224A65E
-_0224A65C:
- b _0224AAAC
-_0224A65E:
- mov r0, #0xb5
- lsl r0, r0, #6
- add r1, r4, r0
- ldr r0, [sp, #8]
- ldr r2, [sp, #0x10]
- add r0, r1, r0
- ldr r1, [sp, #0xc]
- add r1, #0x1f
- bl MOD11_02243DC8
- ldr r0, [sp]
- ldr r2, [r4, #0x6c]
- add r1, r4, #0
- bl MOD11_02245190
- ldr r0, [r4, #0x6c]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- ldr r0, [sp, #0xc]
- add r2, r4, r2
- lsl r0, r0, #1
- add r2, r2, r0
- ldr r0, _0224A864 ; =0x00002D4C
- add r1, #0x64
- ldrh r0, [r2, r0]
- str r0, [r4, r1]
- ldr r0, _0224A850 ; =0x00003118
- mov r1, #0xcc
- str r1, [r4, r0]
- b _0224AAAC
-_0224A69C:
- ldr r2, [r4, #0x6c]
- mov r1, #0xc0
- mul r1, r2
- add r2, r4, r1
- ldr r1, _0224A870 ; =0x00002DB0
- ldr r2, [r2, r1]
- mov r1, #7
- tst r1, r2
- beq _0224A770
- mov r1, #0xcd
- str r1, [r4, r0]
- b _0224AAAC
-_0224A6B4:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- ldr r1, _0224A85C ; =0x00002DAC
- add r3, r4, r0
- ldr r0, [r3, r1]
- lsl r2, r0, #0x18
- lsr r2, r2, #0x18
- bne _0224A6D0
- add r1, r1, #4
- ldr r2, [r3, r1]
- mov r1, #7
- tst r1, r2
- beq _0224A770
-_0224A6D0:
- mov r1, #0x40
- tst r0, r1
- beq _0224A6DC
- ldr r0, _0224A850 ; =0x00003118
- mov r1, #0xc7
- str r1, [r4, r0]
-_0224A6DC:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A85C ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #7
- tst r0, r1
- beq _0224A6F4
- ldr r0, _0224A850 ; =0x00003118
- mov r1, #0xc8
- str r1, [r4, r0]
-_0224A6F4:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A85C ; =0x00002DAC
- ldr r1, [r1, r0]
- ldr r0, _0224A860 ; =0x00000F88
- tst r0, r1
- beq _0224A70C
- ldr r0, _0224A850 ; =0x00003118
- mov r1, #0xc9
- str r1, [r4, r0]
-_0224A70C:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A85C ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #0x10
- tst r0, r1
- beq _0224A724
- ldr r0, _0224A850 ; =0x00003118
- mov r1, #0xca
- str r1, [r4, r0]
-_0224A724:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A85C ; =0x00002DAC
- ldr r1, [r1, r0]
- mov r0, #0x20
- tst r0, r1
- beq _0224A73C
- ldr r0, _0224A850 ; =0x00003118
- mov r1, #0xcb
- str r1, [r4, r0]
-_0224A73C:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A870 ; =0x00002DB0
- ldr r1, [r1, r0]
- mov r0, #7
- tst r0, r1
- beq _0224A754
- ldr r0, _0224A850 ; =0x00003118
- mov r1, #0xcd
- str r1, [r4, r0]
-_0224A754:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r2, r4, r0
- ldr r0, _0224A85C ; =0x00002DAC
- ldr r1, [r2, r0]
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- beq _0224A770
- add r0, r0, #4
- ldr r1, [r2, r0]
- mov r0, #7
- tst r0, r1
- bne _0224A772
-_0224A770:
- b _0224AAAC
-_0224A772:
- ldr r0, _0224A850 ; =0x00003118
- mov r1, #0xce
- str r1, [r4, r0]
- b _0224AAAC
-_0224A77A:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A854 ; =0x00002D90
- ldr r0, [r1, r0]
- ldr r1, [sp, #0x10]
- bl MOD11_022476C0
- ldr r1, _0224A858 ; =0x00003114
- str r0, [r4, r1]
- mov r0, #0x13
- add r1, r5, #0
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r2, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r2
- add r2, r4, r0
- ldr r0, _0224A874 ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- sub r1, r5, #1
- cmp r0, r1
- ldr r0, _0224A850 ; =0x00003118
- bne _0224A7B6
- mov r1, #0xcf
- str r1, [r4, r0]
- b _0224AAAC
-_0224A7B6:
- mov r1, #0xc6
- str r1, [r4, r0]
- b _0224AAAC
-_0224A7BC:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A854 ; =0x00002D90
- ldr r0, [r1, r0]
- ldr r1, [sp, #0x10]
- bl MOD11_022476C0
- ldr r1, _0224A858 ; =0x00003114
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #1
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r2, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r2
- add r2, r4, r0
- ldr r0, _0224A874 ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- sub r1, r5, #1
- cmp r0, r1
- ldr r0, _0224A850 ; =0x00003118
- bne _0224A7F8
- mov r1, #0xcf
- str r1, [r4, r0]
- b _0224AAAC
-_0224A7F8:
- mov r1, #0xc6
- str r1, [r4, r0]
- b _0224AAAC
-_0224A7FE:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A854 ; =0x00002D90
- ldr r0, [r1, r0]
- ldr r1, [sp, #0x10]
- bl MOD11_022476C0
- ldr r1, _0224A858 ; =0x00003114
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #2
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r2, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r2
- add r2, r4, r0
- ldr r0, _0224A874 ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- sub r1, r5, #1
- cmp r0, r1
- ldr r0, _0224A850 ; =0x00003118
- bne _0224A83A
- mov r1, #0xcf
- str r1, [r4, r0]
- b _0224AAAC
-_0224A83A:
- mov r1, #0xc6
- str r1, [r4, r0]
- b _0224AAAC
-_0224A840:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224A854 ; =0x00002D90
- b _0224A878
- .align 2, 0
-_0224A84C: .word 0x00002154
-_0224A850: .word 0x00003118
-_0224A854: .word 0x00002D90
-_0224A858: .word 0x00003114
-_0224A85C: .word 0x00002DAC
-_0224A860: .word 0x00000F88
-_0224A864: .word 0x00002D4C
-_0224A868: .word 0x00002D70
-_0224A86C: .word 0x00002D6C
-_0224A870: .word 0x00002DB0
-_0224A874: .word 0x00002DA8
-_0224A878:
- ldr r0, [r1, r0]
- ldr r1, [sp, #0x10]
- bl MOD11_022476C0
- ldr r1, _0224AB14 ; =0x00003114
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #3
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r2, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r2
- add r2, r4, r0
- ldr r0, _0224AB18 ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- sub r1, r5, #1
- cmp r0, r1
- ldr r0, _0224AB1C ; =0x00003118
- bne _0224A8AA
- mov r1, #0xcf
- str r1, [r4, r0]
- b _0224AAAC
-_0224A8AA:
- mov r1, #0xc6
- str r1, [r4, r0]
- b _0224AAAC
-_0224A8B0:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0224AB20 ; =0x00002D90
- ldr r0, [r1, r0]
- ldr r1, [sp, #0x10]
- bl MOD11_022476C0
- ldr r1, _0224AB14 ; =0x00003114
- str r0, [r4, r1]
- mov r0, #0x13
- mov r1, #4
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r2, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r2
- add r2, r4, r0
- ldr r0, _0224AB18 ; =0x00002DA8
- ldr r0, [r2, r0]
- bl FUN_02069BE4
- sub r1, r5, #1
- cmp r0, r1
- ldr r0, _0224AB1C ; =0x00003118
- bne _0224A8EC
- mov r1, #0xcf
- str r1, [r4, r0]
- b _0224AAAC
-_0224A8EC:
- mov r1, #0xc6
- str r1, [r4, r0]
- b _0224AAAC
-_0224A8F2:
- ldr r2, _0224AB24 ; =0x00002D58
- mov r6, #6
- mov r3, #0xd3
- mov r7, #0xc0
-_0224A8FA:
- ldr r0, [r4, #0x6c]
- add r1, r0, #0
- mul r1, r7
- add r0, r4, r1
- add r0, r0, r5
- ldrsb r1, [r0, r2]
- cmp r1, #6
- bge _0224A912
- ldr r1, _0224AB24 ; =0x00002D58
- strb r6, [r0, r1]
- ldr r0, _0224AB1C ; =0x00003118
- str r3, [r4, r0]
-_0224A912:
- add r5, r5, #1
- cmp r5, #8
- blt _0224A8FA
- b _0224AAAC
-_0224A91A:
- ldr r2, [r4, #0x6c]
- mov r1, #0xc0
- add r3, r2, #0
- mul r3, r1
- ldr r2, _0224AB28 ; =0x00002DB0
- add r3, r4, r3
- ldr r3, [r3, r2]
- mov r2, #0xf
- lsl r2, r2, #0x10
- tst r2, r3
- bne _0224A932
- b _0224AAAC
-_0224A932:
- mov r2, #6
- add r1, #0x70
- str r2, [r4, r1]
- mov r1, #0xd4
- str r1, [r4, r0]
- b _0224AAAC
-_0224A93E:
- add r2, r4, #0
- ldr r1, [sp, #4]
- add r2, #0x94
- str r1, [r2]
- add r1, r4, #0
- mov r2, #2
- add r1, #0x88
- str r2, [r1]
- mov r1, #0xe
- str r1, [r4, r0]
- b _0224AAAC
-_0224A954:
- add r2, r4, #0
- ldr r1, [sp, #4]
- add r2, #0x94
- str r1, [r2]
- add r1, r4, #0
- mov r2, #2
- add r1, #0x88
- str r2, [r1]
- mov r1, #0x1f
- str r1, [r4, r0]
- b _0224AAAC
-_0224A96A:
- add r2, r4, #0
- ldr r1, [sp, #4]
- add r2, #0x94
- str r1, [r2]
- add r1, r4, #0
- mov r2, #2
- add r1, #0x88
- str r2, [r1]
- mov r1, #0x16
- str r1, [r4, r0]
- b _0224AAAC
-_0224A980:
- add r2, r4, #0
- ldr r1, [sp, #4]
- add r2, #0x94
- str r1, [r2]
- add r1, r4, #0
- mov r2, #2
- add r1, #0x88
- str r2, [r1]
- mov r1, #0x2f
- str r1, [r4, r0]
- b _0224AAAC
-_0224A996:
- add r2, r4, #0
- ldr r1, [sp, #4]
- add r2, #0x94
- str r1, [r2]
- add r1, r4, #0
- mov r2, #2
- add r1, #0x88
- str r2, [r1]
- mov r1, #0x19
- str r1, [r4, r0]
- b _0224AAAC
-_0224A9AC:
- ldr r2, [r4, #0x6c]
- mov r1, #0xc0
- add r3, r2, #0
- mul r3, r1
- ldr r2, _0224AB2C ; =0x00002D59
- add r3, r4, r3
- ldrsb r2, [r3, r2]
- cmp r2, #0xc
- bge _0224AAAC
- mov r2, #1
- add r1, #0x70
- str r2, [r4, r1]
- mov r1, #0xd0
- str r1, [r4, r0]
- b _0224AAAC
-_0224A9CA:
- ldr r2, [r4, #0x6c]
- mov r1, #0xc0
- add r3, r2, #0
- mul r3, r1
- ldr r2, _0224AB30 ; =0x00002D5A
- add r3, r4, r3
- ldrsb r2, [r3, r2]
- cmp r2, #0xc
- bge _0224AAAC
- mov r2, #2
- add r1, #0x70
- str r2, [r4, r1]
- mov r1, #0xd0
- str r1, [r4, r0]
- b _0224AAAC
-_0224A9E8:
- ldr r2, [r4, #0x6c]
- mov r1, #0xc0
- add r3, r2, #0
- mul r3, r1
- ldr r2, _0224AB34 ; =0x00002D5B
- add r3, r4, r3
- ldrsb r2, [r3, r2]
- cmp r2, #0xc
- bge _0224AAAC
- mov r2, #3
- add r1, #0x70
- str r2, [r4, r1]
- mov r1, #0xd0
- str r1, [r4, r0]
- b _0224AAAC
-_0224AA06:
- ldr r2, [r4, #0x6c]
- mov r1, #0xc0
- add r3, r2, #0
- mul r3, r1
- ldr r2, _0224AB38 ; =0x00002D5C
- add r3, r4, r3
- ldrsb r2, [r3, r2]
- cmp r2, #0xc
- bge _0224AAAC
- mov r2, #4
- add r1, #0x70
- str r2, [r4, r1]
- mov r1, #0xd0
- str r1, [r4, r0]
- b _0224AAAC
-_0224AA24:
- ldr r2, [r4, #0x6c]
- mov r1, #0xc0
- add r3, r2, #0
- mul r3, r1
- ldr r2, _0224AB3C ; =0x00002D5D
- add r3, r4, r3
- ldrsb r2, [r3, r2]
- cmp r2, #0xc
- bge _0224AAAC
- mov r2, #5
- add r1, #0x70
- str r2, [r4, r1]
- mov r1, #0xd0
- str r1, [r4, r0]
- b _0224AAAC
-_0224AA42:
- ldr r1, [r4, #0x6c]
- mov r0, #0xc0
- mul r0, r1
- add r2, r4, r0
- ldr r0, _0224AB2C ; =0x00002D59
-_0224AA4C:
- ldrsb r1, [r2, r0]
- cmp r1, #0xc
- blt _0224AA5A
- add r5, r5, #1
- add r2, r2, #1
- cmp r5, #5
- blt _0224AA4C
-_0224AA5A:
- cmp r5, #5
- beq _0224AAAC
- ldr r5, _0224AB2C ; =0x00002D59
- mov r7, #5
- mov r6, #0xc0
-_0224AA64:
- bl rand_LC
- add r1, r7, #0
- bl _s32_div_f
- ldr r0, [r4, #0x6c]
- add r2, r0, #0
- mul r2, r6
- add r0, r4, r2
- add r0, r1, r0
- ldrsb r0, [r0, r5]
- cmp r0, #0xc
- beq _0224AA64
- mov r0, #0x13
- add r1, r1, #1
- lsl r0, r0, #4
- str r1, [r4, r0]
- ldr r0, _0224AB1C ; =0x00003118
- mov r1, #0xd2
- str r1, [r4, r0]
- b _0224AAAC
-_0224AA8E:
- ldr r2, [r4, #0x6c]
- mov r1, #0xc0
- mul r1, r2
- add r2, r4, r1
- ldr r1, _0224AB28 ; =0x00002DB0
- ldr r2, [r2, r1]
- mov r1, #1
- lsl r1, r1, #0x14
- tst r1, r2
- bne _0224AAAC
- mov r1, #0xd1
- str r1, [r4, r0]
- b _0224AAAC
-_0224AAA8:
- ldr r1, _0224AB40 ; =0x00000109
- str r1, [r4, r0]
-_0224AAAC:
- ldr r0, [r4, #0x6c]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- add r0, r4, r2
- mov r2, #0xb7
- lsl r2, r2, #6
- ldr r3, [r0, r2]
- mov r0, #1
- lsl r0, r0, #0x1a
- tst r0, r3
- beq _0224AACC
- ldr r0, _0224AB1C ; =0x00003118
- mov r1, #0
- str r1, [r4, r0]
- b _0224AB0C
-_0224AACC:
- ldr r0, [sp, #4]
- sub r2, #8
- add r3, r0, #0
- mul r3, r1
- add r0, r4, r3
- ldrh r0, [r0, r2]
- add r1, #0x68
- str r0, [r4, r1]
- add r0, r4, #0
- add r0, #0x88
- ldr r0, [r0]
- cmp r0, #0
- bne _0224AB04
- ldr r0, _0224AB1C ; =0x00003118
- ldr r0, [r4, r0]
- cmp r0, #0
- beq _0224AB04
- mov r0, #0xba
- ldr r1, [r4, #0x64]
- lsl r0, r0, #2
- add r3, r4, r0
- mov r0, #0x1c
- add r2, r1, #0
- mul r2, r0
- ldr r1, [r3, r2]
- mov r0, #2
- orr r0, r1
- str r0, [r3, r2]
-_0224AB04:
- mov r0, #0x46
- ldr r1, [r4, #0x6c]
- lsl r0, r0, #2
- str r1, [r4, r0]
-_0224AB0C:
- mov r0, #1
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- nop
-_0224AB14: .word 0x00003114
-_0224AB18: .word 0x00002DA8
-_0224AB1C: .word 0x00003118
-_0224AB20: .word 0x00002D90
-_0224AB24: .word 0x00002D58
-_0224AB28: .word 0x00002DB0
-_0224AB2C: .word 0x00002D59
-_0224AB30: .word 0x00002D5A
-_0224AB34: .word 0x00002D5B
-_0224AB38: .word 0x00002D5C
-_0224AB3C: .word 0x00002D5D
-_0224AB40: .word 0x00000109
-
- thumb_func_start MOD11_0224AB44
-MOD11_0224AB44: ; 0x0224AB44
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02249D90
- cmp r0, #0x68
- bne _0224ABD2
- ldr r5, [r4, #0x64]
- mov r6, #0xc0
- add r3, r5, #0
- mul r3, r6
- ldr r0, _0224ABE8 ; =0x00002DB0
- add r2, r4, r3
- ldr r1, [r2, r0]
- lsl r6, r6, #4
- tst r6, r1
- bne _0224ABE6
- mov r6, #0x70
- tst r6, r1
- bne _0224ABE6
- ldr r6, _0224ABEC ; =0x0000213C
- ldr r7, [r4, r6]
- mov r6, #2
- lsl r6, r6, #8
- tst r7, r6
- bne _0224ABE6
- lsl r6, r6, #3
- tst r1, r6
- bne _0224ABE6
- mov r6, #0xc1
- lsl r6, r6, #6
- lsl r5, r5, #1
- add r7, r4, r5
- add r5, r6, #0
- add r5, #0x9c
- ldrh r5, [r7, r5]
- ldr r1, [r4, r6]
- cmp r1, r5
- bne _0224ABB8
- add r1, r0, #0
- add r1, #0x1c
- ldr r1, [r2, r1]
- lsl r1, r1, #5
- lsr r5, r1, #0x1c
- cmp r5, #0xa
- bhs _0224ABE6
- add r0, #0x1c
- add r0, r4, r0
- ldr r2, [r0, r3]
- ldr r1, _0224ABF0 ; =0xF87FFFFF
- and r2, r1
- add r1, r5, #1
- lsl r1, r1, #0x1c
- lsr r1, r1, #5
- orr r1, r2
- str r1, [r0, r3]
- pop {r3, r4, r5, r6, r7, pc}
-_0224ABB8:
- add r0, #0x1c
- add r2, r4, r0
- ldr r1, [r2, r3]
- ldr r0, _0224ABF0 ; =0xF87FFFFF
- and r0, r1
- str r0, [r2, r3]
- ldr r0, [r4, #0x64]
- ldr r1, [r4, r6]
- lsl r0, r0, #1
- add r0, r4, r0
- add r6, #0x9c
- strh r1, [r0, r6]
- pop {r3, r4, r5, r6, r7, pc}
-_0224ABD2:
- ldr r0, _0224ABF4 ; =0x00002DCC
- ldr r1, [r4, #0x64]
- add r3, r4, r0
- mov r0, #0xc0
- add r2, r1, #0
- mul r2, r0
- ldr r1, [r3, r2]
- ldr r0, _0224ABF0 ; =0xF87FFFFF
- and r0, r1
- str r0, [r3, r2]
-_0224ABE6:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0224ABE8: .word 0x00002DB0
-_0224ABEC: .word 0x0000213C
-_0224ABF0: .word 0xF87FFFFF
-_0224ABF4: .word 0x00002DCC
-
- thumb_func_start MOD11_0224ABF8
-MOD11_0224ABF8: ; 0x0224ABF8
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- ldr r1, [r4, #0x64]
- add r0, r4, #0
- bl MOD11_02249D90
- cmp r0, #0x68
- bne _0224AC84
- ldr r5, _0224AC9C ; =0x0000216C
- ldr r0, _0224ACA0 ; =0x801FDA49
- ldr r1, [r4, r5]
- tst r0, r1
- beq _0224AC98
- ldr r2, [r4, #0x64]
- mov r0, #0xc1
- lsl r0, r0, #6
- lsl r1, r2, #1
- ldr r3, [r4, r0]
- add r1, r4, r1
- add r0, #0x9c
- ldrh r0, [r1, r0]
- cmp r3, r0
- bne _0224AC98
- mov r0, #0xc0
- add r1, r2, #0
- mul r1, r0
- ldr r3, _0224ACA4 ; =0x00002DCC
- add r6, r4, r1
- ldr r0, [r6, r3]
- lsl r0, r0, #5
- lsr r0, r0, #0x1c
- beq _0224AC98
- mov r7, #0x1c
- mul r7, r2
- mov r2, #0xb5
- add r7, r4, r7
- lsl r2, r2, #2
- ldr r7, [r7, r2]
- lsl r7, r7, #0x17
- lsr r7, r7, #0x1d
- bne _0224AC98
- add r7, r3, #0
- sub r7, #0x1c
- ldr r6, [r6, r7]
- mov r7, #0xc0
- lsl r7, r7, #4
- tst r7, r6
- bne _0224AC98
- mov r7, #0x70
- tst r7, r6
- bne _0224AC98
- sub r5, #0x30
- ldr r5, [r4, r5]
- sub r2, #0xd4
- tst r2, r5
- bne _0224AC98
- mov r2, #1
- lsl r2, r2, #0xc
- tst r2, r6
- bne _0224AC98
- add r2, r4, r3
- sub r0, r0, #1
- lsl r0, r0, #0x1c
- ldr r4, [r2, r1]
- ldr r3, _0224ACA8 ; =0xF87FFFFF
- lsr r0, r0, #5
- and r3, r4
- orr r0, r3
- str r0, [r2, r1]
- pop {r3, r4, r5, r6, r7, pc}
-_0224AC84:
- ldr r0, _0224ACA4 ; =0x00002DCC
- ldr r1, [r4, #0x64]
- add r3, r4, r0
- mov r0, #0xc0
- add r2, r1, #0
- mul r2, r0
- ldr r1, [r3, r2]
- ldr r0, _0224ACA8 ; =0xF87FFFFF
- and r0, r1
- str r0, [r3, r2]
-_0224AC98:
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0224AC9C: .word 0x0000216C
-_0224ACA0: .word 0x801FDA49
-_0224ACA4: .word 0x00002DCC
-_0224ACA8: .word 0xF87FFFFF
-
- thumb_func_start MOD11_0224ACAC
-MOD11_0224ACAC: ; 0x0224ACAC
- push {r4, r5, r6, lr}
- add r5, r0, #0
- cmp r3, #1
- bne _0224ACBE
- sub r0, r2, #2
- cmp r0, #1
- bhi _0224ACBE
- mov r0, #1
- b _0224ACC0
-_0224ACBE:
- mov r0, #0
-_0224ACC0:
- cmp r0, #1
- mov r0, #0xc0
- add r4, r1, #0
- mul r4, r0
- ldr r2, _0224ACFC ; =0x00002D8C
- add r1, r5, r4
- ldr r0, [r1, r2]
- add r2, r2, #4
- ldr r1, [r1, r2]
- lsl r0, r0, #0x10
- lsl r1, r1, #0x10
- lsr r0, r0, #0x10
- lsr r1, r1, #0x10
- mov r2, #0x30
- mov r6, #0
- bl FUN_02079A54
- ldr r1, _0224AD00 ; =0x00002DAC
- add r2, r5, r4
- ldr r1, [r2, r1]
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- bne _0224ACF6
- cmp r0, #4
- beq _0224ACF8
- cmp r0, #3
- beq _0224ACF8
-_0224ACF6:
- mov r6, #0xb
-_0224ACF8:
- add r0, r6, #0
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0224ACFC: .word 0x00002D8C
-_0224AD00: .word 0x00002DAC
-
- thumb_func_start MOD11_0224AD04
-MOD11_0224AD04: ; 0x0224AD04
- push {r3, r4}
- mov r3, #0xc0
- add r4, r1, #0
- mul r4, r3
- add r1, r0, r4
- ldr r0, _0224AD34 ; =0x00002DB0
- mov r2, #1
- ldr r0, [r1, r0]
- lsl r1, r2, #0x16
- tst r1, r0
- bne _0224AD2C
- lsl r1, r3, #4
- tst r1, r0
- bne _0224AD2C
- mov r1, #0x70
- tst r1, r0
- bne _0224AD2C
- lsl r1, r2, #0xc
- tst r0, r1
- beq _0224AD2E
-_0224AD2C:
- mov r2, #0
-_0224AD2E:
- add r0, r2, #0
- pop {r3, r4}
- bx lr
- .align 2, 0
-_0224AD34: .word 0x00002DB0
-
- thumb_func_start MOD11_0224AD38
-MOD11_0224AD38: ; 0x0224AD38
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r4, r1, #0
- add r5, r0, #0
- mov r1, #0
- add r6, r2, #0
- bl MOD11_022301D4
- str r0, [sp, #0xc]
- add r0, r5, #0
- bl MOD11_022302B0
- str r0, [sp, #8]
- add r0, r5, #0
- bl MOD11_02230294
- add r7, r0, #0
- add r0, r5, #0
- bl MOD11_0222FF74
- mov r1, #2
- lsl r1, r1, #8
- tst r0, r1
- beq _0224AD76
- add r0, r6, #0
- mov r1, #0x9a
- mov r2, #0
- bl GetMonDataEncrypted
- add r2, r0, #0
- b _0224AD7A
-_0224AD76:
- sub r1, #0xd8
- ldr r2, [r4, r1]
-_0224AD7A:
- str r7, [sp]
- mov r0, #5
- str r0, [sp, #4]
- ldr r1, [sp, #0xc]
- ldr r3, [sp, #8]
- add r0, r6, #0
- bl FUN_0206A014
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224AD90
-MOD11_0224AD90: ; 0x0224AD90
- lsl r1, r1, #8
- add r1, r0, r1
- mov r0, #0x23
- lsl r0, r0, #8
- ldrb r0, [r1, r0]
- bx lr
-
- thumb_func_start MOD11_0224AD9C
-MOD11_0224AD9C: ; 0x0224AD9C
- mov r3, #0x1c
- mul r3, r1
- add r1, r0, r3
- mov r0, #0xba
- lsl r0, r0, #2
- ldr r1, [r1, r0]
- mov r0, #8
- mov r2, #0
- tst r0, r1
- beq _0224ADB2
- mov r2, #1
-_0224ADB2:
- add r0, r2, #0
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_0224ADB8
-MOD11_0224ADB8: ; 0x0224ADB8
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- mov r1, #0
- bl MOD11_022301D4
- add r4, r0, #0
- bl FUN_020239BC
- add r6, r0, #0
- add r0, r4, #0
- bl FUN_020239CC
- add r7, r0, #0
- add r0, r4, #0
- bl FUN_0202398C
- ldr r2, [r5, #0x64]
- mov r1, #0xc0
- add r4, r2, #0
- mul r4, r1
- ldr r1, _0224AE10 ; =0x00002DB4
- add r3, r5, r4
- ldr r2, [r3, r1]
- cmp r6, r2
- bne _0224AE0C
- add r2, r1, #0
- add r2, #0xa
- ldrb r2, [r3, r2]
- lsl r2, r2, #0x18
- lsr r2, r2, #0x1c
- cmp r7, r2
- bne _0224AE0C
- sub r1, #0x20
- add r1, r5, r1
- add r1, r1, r4
- mov r2, #7
- bl StringNotEqualN
- cmp r0, #0
- bne _0224AE0C
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_0224AE0C:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0224AE10: .word 0x00002DB4
-
- thumb_func_start MOD11_0224AE14
-MOD11_0224AE14: ; 0x0224AE14
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r5, r1, #0
- mov r1, #0
- bl MOD11_022301D4
- add r4, r0, #0
- bl FUN_020239BC
- add r6, r0, #0
- add r0, r4, #0
- bl FUN_020239CC
- add r7, r0, #0
- add r0, r4, #0
- bl FUN_0202398C
- add r4, r0, #0
- add r0, r5, #0
- mov r1, #0x8f
- add r2, sp, #0
- bl GetMonDataEncrypted
- add r0, r5, #0
- mov r1, #7
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r6, r0
- bne _0224AE72
- add r0, r5, #0
- mov r1, #0x9c
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r7, r0
- bne _0224AE72
- add r0, r4, #0
- add r1, sp, #0
- mov r2, #7
- bl StringNotEqualN
- cmp r0, #0
- bne _0224AE72
- add sp, #0x10
- mov r0, #1
- pop {r3, r4, r5, r6, r7, pc}
-_0224AE72:
- mov r0, #0
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0224AE78
-MOD11_0224AE78: ; 0x0224AE78
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- mov r4, #0
- add r7, r0, #0
- add r5, r1, #0
- str r4, [sp, #4]
- bl MOD11_0222FF84
- cmp r0, #0
- bgt _0224AE8E
- b _0224B232
-_0224AE8E:
- ldr r0, _0224B1B8 ; =0x00002D66
- add r6, r5, r0
-_0224AE92:
- ldr r0, _0224B1BC ; =0x000021EC
- add r1, r5, r4
- ldrb r1, [r1, r0]
- mov r0, #0x46
- lsl r0, r0, #2
- str r1, [r5, r0]
- ldr r3, [r5, r0]
- mov r0, #0xc0
- mul r0, r3
- add r2, r5, r0
- mov r0, #0xb5
- lsl r0, r0, #6
- ldrh r1, [r2, r0]
- ldr r0, _0224B1C0 ; =0x0000015F
- cmp r1, r0
- bne _0224AEC6
- ldr r0, _0224B1C4 ; =0x00002D8C
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _0224AEC6
- add r0, r5, #0
- add r1, r3, #0
- bl MOD11_02246D1C
- cmp r0, #0x3b
- beq _0224AEC8
-_0224AEC6:
- b _0224B096
-_0224AEC8:
- mov r0, #0xd
- str r0, [sp]
- add r0, r7, #0
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _0224AEF0
- mov r0, #0x4c
- str r0, [sp]
- add r0, r7, #0
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- beq _0224AEF2
-_0224AEF0:
- b _0224B04A
-_0224AEF2:
- mov r0, #6
- lsl r0, r0, #6
- ldr r0, [r5, r0]
- mov r1, #0xf3
- tst r1, r0
- bne _0224AF4A
- mov r1, #0x46
- lsl r1, r1, #2
- ldr r2, [r5, r1]
- mov r1, #0xc0
- mul r1, r2
- ldr r2, _0224B1C8 ; =0x00002D64
- add r1, r5, r1
- ldrb r2, [r1, r2]
- cmp r2, #0
- beq _0224AF4A
- ldr r2, _0224B1CC ; =0x00002D65
- ldrb r2, [r1, r2]
- cmp r2, #0
- beq _0224AF4A
- ldr r3, _0224B1C8 ; =0x00002D64
- mov r2, #0
- mov r0, #0x46
- strb r2, [r1, r3]
- lsl r0, r0, #2
- ldr r4, [r5, r0]
- mov r1, #0xc0
- add r6, r4, #0
- mul r6, r1
- add r6, r5, r6
- add r4, r3, #1
- strb r2, [r6, r4]
- add r2, r3, #2
- ldr r0, [r5, r0]
- add r2, r5, r2
- add r3, r0, #0
- mul r3, r1
- ldrb r1, [r2, r3]
- mov r0, #0x1f
- bic r1, r0
- mov r0, #1
- strb r1, [r2, r3]
- str r0, [sp, #4]
- b _0224B232
-_0224AF4A:
- mov r1, #0x30
- tst r1, r0
- beq _0224AF9E
- mov r1, #0x46
- lsl r1, r1, #2
- ldr r2, [r5, r1]
- mov r1, #0xc0
- mul r1, r2
- ldr r2, _0224B1C8 ; =0x00002D64
- add r1, r5, r1
- ldrb r2, [r1, r2]
- cmp r2, #0xa
- beq _0224AF9E
- ldr r2, _0224B1CC ; =0x00002D65
- ldrb r2, [r1, r2]
- cmp r2, #0xa
- beq _0224AF9E
- ldr r3, _0224B1C8 ; =0x00002D64
- mov r2, #0xa
- mov r0, #0x46
- strb r2, [r1, r3]
- lsl r0, r0, #2
- ldr r4, [r5, r0]
- mov r1, #0xc0
- add r6, r4, #0
- mul r6, r1
- add r6, r5, r6
- add r4, r3, #1
- strb r2, [r6, r4]
- add r2, r3, #2
- ldr r0, [r5, r0]
- add r2, r5, r2
- add r3, r0, #0
- mul r3, r1
- ldrb r1, [r2, r3]
- mov r0, #0x1f
- bic r1, r0
- mov r0, #1
- str r0, [sp, #4]
- orr r0, r1
- strb r0, [r2, r3]
- b _0224B232
-_0224AF9E:
- mov r1, #3
- tst r1, r0
- beq _0224AFF4
- mov r1, #0x46
- lsl r1, r1, #2
- ldr r2, [r5, r1]
- mov r1, #0xc0
- mul r1, r2
- ldr r2, _0224B1C8 ; =0x00002D64
- add r1, r5, r1
- ldrb r2, [r1, r2]
- cmp r2, #0xb
- beq _0224AFF4
- ldr r2, _0224B1CC ; =0x00002D65
- ldrb r2, [r1, r2]
- cmp r2, #0xb
- beq _0224AFF4
- ldr r3, _0224B1C8 ; =0x00002D64
- mov r2, #0xb
- mov r0, #0x46
- strb r2, [r1, r3]
- lsl r0, r0, #2
- ldr r4, [r5, r0]
- mov r1, #0xc0
- add r6, r4, #0
- mul r6, r1
- add r6, r5, r6
- add r4, r3, #1
- strb r2, [r6, r4]
- add r2, r3, #2
- ldr r0, [r5, r0]
- add r2, r5, r2
- add r3, r0, #0
- mul r3, r1
- ldrb r1, [r2, r3]
- mov r0, #0x1f
- bic r1, r0
- mov r0, #2
- orr r0, r1
- strb r0, [r2, r3]
- mov r0, #1
- str r0, [sp, #4]
- b _0224B232
-_0224AFF4:
- mov r1, #0xc0
- tst r0, r1
- beq _0224B096
- add r0, r1, #0
- add r0, #0x58
- ldr r1, [r5, r0]
- mov r0, #0xc0
- mul r0, r1
- ldr r1, _0224B1C8 ; =0x00002D64
- add r0, r5, r0
- ldrb r1, [r0, r1]
- cmp r1, #0xf
- beq _0224B096
- ldr r1, _0224B1CC ; =0x00002D65
- ldrb r1, [r0, r1]
- cmp r1, #0xf
- beq _0224B096
- ldr r3, _0224B1C8 ; =0x00002D64
- mov r2, #0xf
- strb r2, [r0, r3]
- mov r0, #0x46
- lsl r0, r0, #2
- ldr r4, [r5, r0]
- mov r1, #0xc0
- add r6, r4, #0
- mul r6, r1
- add r6, r5, r6
- add r4, r3, #1
- strb r2, [r6, r4]
- add r2, r3, #2
- ldr r0, [r5, r0]
- add r2, r5, r2
- add r3, r0, #0
- mul r3, r1
- ldrb r1, [r2, r3]
- mov r0, #0x1f
- bic r1, r0
- mov r0, #3
- orr r0, r1
- strb r0, [r2, r3]
- mov r0, #1
- str r0, [sp, #4]
- b _0224B232
-_0224B04A:
- mov r0, #0x46
- lsl r0, r0, #2
- ldr r1, [r5, r0]
- mov r0, #0xc0
- mul r0, r1
- ldr r1, _0224B1C8 ; =0x00002D64
- add r0, r5, r0
- ldrb r1, [r0, r1]
- cmp r1, #0
- beq _0224B096
- ldr r1, _0224B1CC ; =0x00002D65
- ldrb r1, [r0, r1]
- cmp r1, #0
- beq _0224B096
- ldr r3, _0224B1C8 ; =0x00002D64
- mov r2, #0
- strb r2, [r0, r3]
- mov r0, #0x46
- lsl r0, r0, #2
- ldr r4, [r5, r0]
- mov r1, #0xc0
- add r6, r4, #0
- mul r6, r1
- add r6, r5, r6
- add r4, r3, #1
- strb r2, [r6, r4]
- add r2, r3, #2
- ldr r0, [r5, r0]
- add r2, r5, r2
- add r3, r0, #0
- mul r3, r1
- ldrb r1, [r2, r3]
- mov r0, #0x1f
- bic r1, r0
- mov r0, #1
- strb r1, [r2, r3]
- str r0, [sp, #4]
- b _0224B232
-_0224B096:
- mov r0, #0x46
- lsl r0, r0, #2
- ldr r1, [r5, r0]
- mov r0, #0xc0
- mul r0, r1
- mov r1, #0xb5
- add r0, r5, r0
- lsl r1, r1, #6
- ldrh r2, [r0, r1]
- ldr r1, _0224B1D0 ; =0x000001A5
- cmp r2, r1
- bne _0224B1A2
- ldr r1, _0224B1C4 ; =0x00002D8C
- ldr r0, [r0, r1]
- cmp r0, #0
- beq _0224B1A2
- mov r0, #0xd
- str r0, [sp]
- add r0, r7, #0
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _0224B182
- mov r0, #0x4c
- str r0, [sp]
- add r0, r7, #0
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _0224B182
- mov r0, #6
- lsl r0, r0, #6
- ldr r2, [r5, r0]
- mov r0, #0xf3
- tst r0, r2
- bne _0224B10C
- mov r0, #0x46
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- mov r1, #0xc0
- add r3, r0, #0
- mul r3, r1
- ldrb r0, [r6, r3]
- lsl r1, r0, #0x1b
- lsr r1, r1, #0x1b
- cmp r1, #1
- bne _0224B10C
- mov r1, #0x1f
- bic r0, r1
- strb r0, [r6, r3]
- mov r0, #1
- str r0, [sp, #4]
- b _0224B232
-_0224B10C:
- mov r0, #0x30
- tst r0, r2
- beq _0224B134
- mov r0, #0x46
- lsl r0, r0, #2
-_0224B116:
- ldr r0, [r5, r0]
- mov r1, #0xc0
- add r3, r0, #0
- mul r3, r1
- ldrb r0, [r6, r3]
- lsl r1, r0, #0x1b
- lsr r1, r1, #0x1b
- bne _0224B134
- mov r1, #0x1f
- bic r0, r1
- mov r1, #1
- orr r0, r1
- str r1, [sp, #4]
- strb r0, [r6, r3]
- b _0224B232
-_0224B134:
- mov r0, #3
- tst r0, r2
- beq _0224B15C
- mov r0, #0x46
- lsl r0, r0, #2
- ldr r0, [r5, r0]
- mov r1, #0xc0
- add r3, r0, #0
- mul r3, r1
- ldrb r0, [r6, r3]
- lsl r1, r0, #0x1b
- lsr r1, r1, #0x1b
- cmp r1, #1
- bne _0224B15C
- mov r1, #0x1f
- bic r0, r1
- strb r0, [r6, r3]
- mov r0, #1
- str r0, [sp, #4]
- b _0224B232
-_0224B15C:
- mov r0, #0xc0
- tst r0, r2
- beq _0224B1A2
- mov r0, #0x46
- lsl r0, r0, #2
- ldr r1, [r5, r0]
- mov r0, #0xc0
- mul r0, r1
- ldrb r2, [r6, r0]
- lsl r1, r2, #0x1b
- lsr r1, r1, #0x1b
- cmp r1, #1
- bne _0224B1A2
- mov r1, #0x1f
- bic r2, r1
- strb r2, [r6, r0]
- mov r0, #1
- str r0, [sp, #4]
- b _0224B232
-_0224B182:
- mov r0, #0x46
- lsl r0, r0, #2
- ldr r1, [r5, r0]
- mov r0, #0xc0
- mul r0, r1
- ldrb r2, [r6, r0]
- lsl r1, r2, #0x1b
- lsr r1, r1, #0x1b
- cmp r1, #1
- bne _0224B1A2
- mov r1, #0x1f
- bic r2, r1
- strb r2, [r6, r0]
- mov r0, #1
- str r0, [sp, #4]
- b _0224B232
-_0224B1A2:
- mov r0, #0x46
- lsl r0, r0, #2
- ldr r1, [r5, r0]
- mov r0, #0xc0
- mul r0, r1
- mov r1, #0xb5
- add r0, r5, r0
- lsl r1, r1, #6
- ldrh r2, [r0, r1]
- ldr r1, _0224B1D4 ; =0x000001ED
- b _0224B1D8
- .align 2, 0
-_0224B1B8: .word 0x00002D66
-_0224B1BC: .word 0x000021EC
-_0224B1C0: .word 0x0000015F
-_0224B1C4: .word 0x00002D8C
-_0224B1C8: .word 0x00002D64
-_0224B1CC: .word 0x00002D65
-_0224B1D0: .word 0x000001A5
-_0224B1D4: .word 0x000001ED
-_0224B1D8:
- cmp r2, r1
- bne _0224B224
- ldr r1, _0224B238 ; =0x00002D8C
- ldr r1, [r0, r1]
- cmp r1, #0
- beq _0224B224
- ldr r1, _0224B23C ; =0x00002DB8
- mov r2, #5
- ldrh r0, [r0, r1]
- mov r1, #1
- bl FUN_0206E7B8
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl GetArceusTypeByPlate
- mov r1, #0x46
- lsl r1, r1, #2
- ldr r1, [r5, r1]
- mov r2, #0xc0
- add r3, r1, #0
- mul r3, r2
- ldrb r1, [r6, r3]
- lsl r2, r1, #0x1b
- lsr r2, r2, #0x1b
- cmp r0, r2
- beq _0224B224
- mov r2, #0x1f
- lsl r0, r0, #0x18
- bic r1, r2
- lsr r2, r0, #0x18
- mov r0, #0x1f
- and r0, r2
- orr r0, r1
- strb r0, [r6, r3]
- mov r0, #1
- str r0, [sp, #4]
- b _0224B232
-_0224B224:
- add r0, r7, #0
- add r4, r4, #1
- bl MOD11_0222FF84
- cmp r4, r0
- bge _0224B232
- b _0224AE92
-_0224B232:
- ldr r0, [sp, #4]
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0224B238: .word 0x00002D8C
-_0224B23C: .word 0x00002DB8
-
- thumb_func_start MOD11_0224B240
-MOD11_0224B240: ; 0x0224B240
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- str r0, [sp, #4]
- str r1, [sp]
- mov r7, #0
- bl MOD11_0222FF84
- cmp r0, #0
- ble _0224B282
- ldr r5, [sp]
- ldr r4, _0224B288 ; =0x0000312C
-_0224B256:
- mov r1, #0
-_0224B258:
- add r0, r5, r1
- strb r1, [r0, r4]
- add r1, r1, #1
- cmp r1, #6
- blt _0224B258
- ldr r1, [sp]
- ldr r0, [sp, #4]
- add r3, r1, #0
- add r6, r3, r7
- ldr r3, _0224B28C ; =0x0000219C
- add r2, r7, #0
- ldrb r3, [r6, r3]
- bl MOD11_0224B290
- ldr r0, [sp, #4]
- add r5, r5, #6
- add r7, r7, #1
- bl MOD11_0222FF84
- cmp r7, r0
- blt _0224B256
-_0224B282:
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0224B288: .word 0x0000312C
-_0224B28C: .word 0x0000219C
-
- thumb_func_start MOD11_0224B290
-MOD11_0224B290: ; 0x0224B290
- push {r3, r4, r5, r6, r7, lr}
- add r7, r0, #0
- add r6, r1, #0
- add r5, r2, #0
- add r4, r3, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r1, r0
- beq _0224B2AA
- mov r1, #0x18
- tst r1, r0
- beq _0224B2BE
-_0224B2AA:
- mov r1, #0x10
- tst r0, r1
- beq _0224B2E2
- add r0, r7, #0
- add r1, r5, #0
- bl MOD11_02230260
- mov r1, #1
- tst r0, r1
- bne _0224B2E2
-_0224B2BE:
- add r0, r7, #0
- add r1, r5, #0
- bl MOD11_02230260
- cmp r0, #4
- beq _0224B2D6
- add r0, r7, #0
- add r1, r5, #0
- bl MOD11_02230260
- cmp r0, #5
- bne _0224B2DA
-_0224B2D6:
- mov r1, #1
- b _0224B2DC
-_0224B2DA:
- mov r1, #0
-_0224B2DC:
- mov r0, #1
- and r5, r0
- b _0224B2E4
-_0224B2E2:
- mov r1, #0
-_0224B2E4:
- mov r2, #6
- mul r2, r5
- ldr r3, _0224B30C ; =0x0000312C
- mov r0, #0
- add r7, r6, r2
-_0224B2EE:
- ldrb r5, [r7, r3]
- cmp r4, r5
- beq _0224B2FC
- add r0, r0, #1
- add r7, r7, #1
- cmp r0, #6
- blt _0224B2EE
-_0224B2FC:
- ldr r3, _0224B30C ; =0x0000312C
- add r3, r6, r3
- add r4, r3, r2
- ldrb r3, [r4, r1]
- ldrb r2, [r4, r0]
- strb r2, [r4, r1]
- strb r3, [r4, r0]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0224B30C: .word 0x0000312C
-
- thumb_func_start MOD11_0224B310
-MOD11_0224B310: ; 0x0224B310
- push {r4, r5, r6, r7, lr}
- sub sp, #0x8c
- str r0, [sp, #4]
- ldr r0, [sp, #0xa0]
- add r5, r1, #0
- str r0, [sp, #0xa0]
- ldr r0, [sp, #0xb4]
- str r2, [sp, #8]
- str r0, [sp, #0xb4]
- mov r0, #0
- str r0, [sp, #0x84]
- ldr r0, [sp, #0xb4]
- str r3, [sp, #0xc]
- cmp r0, #1
- beq _0224B334
- bhi _0224B334
- bl ErrorHandling
-_0224B334:
- add r0, sp, #0x90
- ldrb r0, [r0, #0x1c]
- mov r2, #1
- mov r3, #0
- str r0, [sp, #0x24]
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- bl MOD11_02243420
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x7c]
- add r0, sp, #0xb0
- ldrb r0, [r0]
- mov r2, #2
- mov r3, #0
- str r0, [sp, #0x20]
- ldr r1, [sp, #0x20]
- add r0, r5, #0
- bl MOD11_02243420
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x78]
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- mov r2, #4
- mov r3, #0
- bl MOD11_02243420
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x74]
- ldr r1, [sp, #0x20]
- add r0, r5, #0
- mov r2, #5
- mov r3, #0
- bl MOD11_02243420
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x10]
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- mov r2, #0x13
- mov r3, #0
- bl MOD11_02243420
- sub r0, r0, #6
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [sp, #0x70]
- ldr r1, [sp, #0x20]
- add r0, r5, #0
- mov r2, #0x14
- mov r3, #0
- bl MOD11_02243420
- sub r0, r0, #6
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [sp, #0x6c]
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- mov r2, #0x16
- mov r3, #0
- bl MOD11_02243420
- sub r0, r0, #6
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [sp, #0x68]
- ldr r1, [sp, #0x20]
- add r0, r5, #0
- mov r2, #0x17
- mov r3, #0
- bl MOD11_02243420
- sub r0, r0, #6
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [sp, #0x64]
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- mov r2, #0x2b
- mov r3, #0
- bl MOD11_02243420
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- mov r2, #0
- str r0, [sp, #0x60]
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- add r3, r2, #0
- bl MOD11_02243420
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r2, #0
- str r0, [sp, #0x58]
- ldr r1, [sp, #0x20]
- add r0, r5, #0
- add r3, r2, #0
- bl MOD11_02243420
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x54]
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- mov r2, #0x2f
- mov r3, #0
- bl MOD11_02243420
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- str r0, [sp, #0x50]
- ldr r1, [sp, #0x20]
- add r0, r5, #0
- mov r2, #0x2f
- mov r3, #0
- bl MOD11_02243420
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- mov r2, #0x30
- mov r3, #0
- bl MOD11_02243420
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x4c]
- ldr r1, [sp, #0x20]
- add r0, r5, #0
- mov r2, #0x30
- mov r3, #0
- bl MOD11_02243420
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- mov r2, #0x34
- mov r3, #0
- bl MOD11_02243420
- str r0, [sp, #0x48]
- ldr r1, [sp, #0x20]
- add r0, r5, #0
- mov r2, #0x34
- mov r3, #0
- bl MOD11_02243420
- str r0, [sp, #0x44]
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- bl MOD11_02246D1C
- add r7, r0, #0
- ldr r1, [sp, #0x20]
- add r0, r5, #0
- bl MOD11_02246D1C
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- mov r2, #0x1d
- mov r3, #0
- bl MOD11_02243420
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x40]
- ldr r1, [sp, #0x20]
- add r0, r5, #0
- mov r2, #0x1d
- mov r3, #0
- bl MOD11_02243420
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x3c]
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- ldr r1, [sp, #0x20]
- add r0, r5, #0
- mov r2, #0x1b
- mov r3, #0
- bl MOD11_02243420
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x38]
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- ldr r1, [sp, #0x20]
- add r0, r5, #0
- mov r2, #0x1c
- mov r3, #0
- bl MOD11_02243420
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #0x34]
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- bl MOD11_02249B4C
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #1
- bl MOD11_0224C12C
- str r0, [sp, #0x30]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #2
- bl MOD11_0224C12C
- str r0, [sp, #0x2c]
- ldr r1, [sp, #0x20]
- add r0, r5, #0
- bl MOD11_02249B4C
- add r4, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #1
- bl MOD11_0224C12C
- str r0, [sp, #0x28]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #2
- bl MOD11_0224C12C
- ldr r0, [sp, #4]
- bl MOD11_0222FF74
- str r0, [sp, #0x5c]
- add r0, sp, #0x90
- ldrh r4, [r0, #0x14]
- cmp r4, #0
- bne _0224B534
- ldr r0, [sp, #8]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _0224B754 ; =0x000003E1
- ldrb r4, [r1, r0]
-_0224B534:
- cmp r7, #0x60
- bne _0224B53C
- mov r6, #0
- b _0224B558
-_0224B53C:
- add r0, sp, #0x90
- ldrb r1, [r0, #0x18]
- cmp r1, #0
- bne _0224B550
- ldr r0, [sp, #8]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _0224B758 ; =0x000003E2
- ldrb r6, [r1, r0]
- b _0224B558
-_0224B550:
- mov r0, #0x3f
- and r0, r1
- lsl r0, r0, #0x18
- lsr r6, r0, #0x18
-_0224B558:
- ldr r0, _0224B75C ; =0x00002158
- ldr r0, [r5, r0]
- cmp r0, #0xa
- bge _0224B564
- bl ErrorHandling
-_0224B564:
- ldr r0, _0224B75C ; =0x00002158
- mov r1, #0xa
- ldr r0, [r5, r0]
- mul r0, r4
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- add r0, sp, #0x90
- ldrb r0, [r0, #0x1c]
- mov r1, #0xc0
- mul r1, r0
- add r2, r5, r1
- mov r1, #0xb7
- lsl r1, r1, #6
- ldr r2, [r2, r1]
- mov r1, #2
- lsl r1, r1, #8
- tst r1, r2
- beq _0224B594
- cmp r6, #0xd
- bne _0224B594
- lsl r1, r4, #0x11
- lsr r4, r1, #0x10
-_0224B594:
- lsl r0, r0, #6
- add r1, r5, r0
- mov r0, #0x75
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1f
- beq _0224B5B2
- mov r0, #0xf
- mul r0, r4
- mov r1, #0xa
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_0224B5B2:
- cmp r7, #0x65
- bne _0224B5CE
- ldr r0, [sp, #8]
- cmp r0, #0xa5
- beq _0224B5CE
- cmp r4, #0x3c
- bhi _0224B5CE
- mov r0, #0xf
- mul r0, r4
- mov r1, #0xa
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_0224B5CE:
- ldr r0, [sp, #8]
- lsl r0, r0, #4
- str r0, [sp, #0x18]
- add r1, r5, r0
- mov r0, #0x3e
- lsl r0, r0, #4
- ldrb r0, [r1, r0]
- cmp r7, #0x25
- str r0, [sp, #0x80]
- beq _0224B5E6
- cmp r7, #0x4a
- bne _0224B5EE
-_0224B5E6:
- ldr r0, [sp, #0x7c]
- lsl r0, r0, #0x11
- lsr r0, r0, #0x10
- str r0, [sp, #0x7c]
-_0224B5EE:
- cmp r7, #0x70
- bne _0224B61C
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #3
- mov r3, #0
- bl MOD11_0224C474
- str r0, [sp, #0x88]
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- mov r2, #0x59
- mov r3, #0
- bl MOD11_02243420
- ldr r1, [sp, #0x88]
- sub r0, r1, r0
- cmp r0, #5
- bge _0224B61C
- ldr r0, [sp, #0x7c]
- lsl r0, r0, #0xf
- lsr r0, r0, #0x10
- str r0, [sp, #0x7c]
-_0224B61C:
- ldr r3, _0224B760 ; =0x0225E336
- mov r2, #0
-_0224B620:
- ldrb r1, [r3]
- ldr r0, [sp, #0x30]
- cmp r0, r1
- bne _0224B640
- ldrb r0, [r3, #1]
- cmp r6, r0
- bne _0224B640
- ldr r0, [sp, #0x2c]
- mov r1, #0x64
- add r0, #0x64
- mul r0, r4
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- b _0224B648
-_0224B640:
- add r2, r2, #1
- add r3, r3, #2
- cmp r2, #0x21
- blo _0224B620
-_0224B648:
- ldr r0, [sp, #0x30]
- cmp r0, #0x36
- bne _0224B660
- ldr r1, [sp, #0x7c]
- mov r0, #0x96
- mul r0, r1
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x7c]
-_0224B660:
- ldr r0, [sp, #0x30]
- cmp r0, #0x7c
- bne _0224B678
- ldr r1, [sp, #0x74]
- mov r0, #0x96
- mul r0, r1
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x74]
-_0224B678:
- ldr r0, [sp, #0x30]
- cmp r0, #0x3b
- bne _0224B6A6
- ldr r0, [sp, #0x5c]
- mov r1, #0x80
- tst r0, r1
- bne _0224B6A6
- ldr r1, _0224B764 ; =0x0000FE84
- ldr r0, [sp, #0x58]
- add r0, r0, r1
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- cmp r0, #1
- bhi _0224B6A6
- ldr r1, [sp, #0x74]
- mov r0, #0x96
- mul r0, r1
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x74]
-_0224B6A6:
- ldr r0, [sp, #0x28]
- cmp r0, #0x3b
- bne _0224B6D4
- ldr r0, [sp, #0x5c]
- mov r1, #0x80
- tst r0, r1
- bne _0224B6D4
- ldr r1, _0224B764 ; =0x0000FE84
- ldr r0, [sp, #0x54]
- add r0, r0, r1
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- cmp r0, #1
- bhi _0224B6D4
- ldr r1, [sp, #0x10]
- mov r0, #0x96
- mul r0, r1
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x10]
-_0224B6D4:
- ldr r0, [sp, #0x30]
- cmp r0, #0x3c
- bne _0224B6EA
- ldr r1, _0224B768 ; =0x0000016E
- ldr r0, [sp, #0x58]
- cmp r0, r1
- bne _0224B6EA
- ldr r0, [sp, #0x74]
- lsl r0, r0, #0x11
- lsr r0, r0, #0x10
- str r0, [sp, #0x74]
-_0224B6EA:
- ldr r0, [sp, #0x28]
- cmp r0, #0x3d
- bne _0224B700
- ldr r1, _0224B768 ; =0x0000016E
- ldr r0, [sp, #0x54]
- cmp r0, r1
- bne _0224B700
- ldr r0, [sp, #0x10]
- lsl r0, r0, #0x11
- lsr r0, r0, #0x10
- str r0, [sp, #0x10]
-_0224B700:
- ldr r0, [sp, #0x30]
- cmp r0, #0x46
- bne _0224B710
- ldr r0, [sp, #0x58]
- cmp r0, #0x19
- bne _0224B710
- lsl r0, r4, #0x11
- lsr r4, r0, #0x10
-_0224B710:
- ldr r0, [sp, #0x28]
- cmp r0, #0x59
- bne _0224B724
- ldr r0, [sp, #0x54]
- cmp r0, #0x84
- bne _0224B724
- ldr r0, [sp, #0x78]
- lsl r0, r0, #0x11
- lsr r0, r0, #0x10
- str r0, [sp, #0x78]
-_0224B724:
- ldr r0, [sp, #0x30]
- cmp r0, #0x5a
- bne _0224B740
- ldr r1, _0224B76C ; =0x0000FF98
- ldr r0, [sp, #0x58]
- add r0, r0, r1
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- cmp r0, #1
- bhi _0224B740
- ldr r0, [sp, #0x7c]
- lsl r0, r0, #0x11
- lsr r0, r0, #0x10
- str r0, [sp, #0x7c]
-_0224B740:
- ldr r0, [sp, #0x30]
- cmp r0, #2
- bne _0224B78A
- cmp r6, #0x10
- beq _0224B74E
- cmp r6, #8
- bne _0224B78A
-_0224B74E:
- ldr r1, _0224B770 ; =0x000001E3
- b _0224B774
- nop
-_0224B754: .word 0x000003E1
-_0224B758: .word 0x000003E2
-_0224B75C: .word 0x00002158
-_0224B760: .word 0x0225E336
-_0224B764: .word 0x0000FE84
-_0224B768: .word 0x0000016E
-_0224B76C: .word 0x0000FF98
-_0224B770: .word 0x000001E3
-_0224B774:
- ldr r0, [sp, #0x58]
- cmp r0, r1
- bne _0224B78A
- ldr r0, [sp, #0x2c]
- mov r1, #0x64
- add r0, #0x64
- mul r0, r4
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_0224B78A:
- ldr r0, [sp, #0x30]
- cmp r0, #3
- bne _0224B7B2
- cmp r6, #0x10
- beq _0224B798
- cmp r6, #0xb
- bne _0224B7B2
-_0224B798:
- mov r1, #0x79
- ldr r0, [sp, #0x58]
- lsl r1, r1, #2
- cmp r0, r1
- bne _0224B7B2
- ldr r0, [sp, #0x2c]
- mov r1, #0x64
- add r0, #0x64
- mul r0, r4
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_0224B7B2:
- ldr r0, [sp, #0x30]
- cmp r0, #0x5d
- bne _0224B7CE
- ldr r0, [sp, #0x80]
- cmp r0, #0
- bne _0224B7CE
- ldr r0, [sp, #0x2c]
- mov r1, #0x64
- add r0, #0x64
- mul r0, r4
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_0224B7CE:
- ldr r0, [sp, #0x30]
- cmp r0, #0x5e
- bne _0224B7EC
- ldr r0, [sp, #0x80]
- cmp r0, #1
- bne _0224B7EC
- ldr r0, [sp, #0x2c]
- mov r1, #0x64
- add r0, #0x64
- str r0, [sp, #0x2c]
- mul r0, r4
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_0224B7EC:
- ldr r1, [sp, #0x24]
- ldr r2, [sp, #0x20]
- add r0, r5, #0
- mov r3, #0x2f
- bl MOD11_02246D84
- cmp r0, #1
- bne _0224B808
- cmp r6, #0xa
- beq _0224B804
- cmp r6, #0xf
- bne _0224B808
-_0224B804:
- lsl r0, r4, #0xf
- lsr r4, r0, #0x10
-_0224B808:
- cmp r7, #0x37
- bne _0224B81E
- ldr r1, [sp, #0x7c]
- mov r0, #0x96
- mul r0, r1
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x7c]
-_0224B81E:
- cmp r7, #0x3e
- bne _0224B83A
- ldr r0, [sp, #0x48]
- cmp r0, #0
- beq _0224B83A
- ldr r1, [sp, #0x7c]
- mov r0, #0x96
- mul r0, r1
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x7c]
-_0224B83A:
- ldr r1, [sp, #0x24]
- ldr r2, [sp, #0x20]
- add r0, r5, #0
- mov r3, #0x3f
- bl MOD11_02246D84
- cmp r0, #1
- bne _0224B862
- ldr r0, [sp, #0x44]
- cmp r0, #0
- beq _0224B862
- ldr r1, [sp, #0x78]
- mov r0, #0x96
- mul r0, r1
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x78]
-_0224B862:
- cmp r7, #0x39
- bne _0224B88C
- mov r0, #0x3a
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r3, [sp, #0x24]
- add r1, r5, #0
- mov r2, #1
- bl MOD11_02246870
- cmp r0, #0
- beq _0224B88C
- ldr r1, [sp, #0x74]
- mov r0, #0x96
- mul r0, r1
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x74]
-_0224B88C:
- cmp r7, #0x3a
- bne _0224B8B6
- mov r0, #0x39
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r3, [sp, #0x24]
- add r1, r5, #0
- mov r2, #1
- bl MOD11_02246870
- cmp r0, #0
- beq _0224B8B6
- ldr r1, [sp, #0x74]
- mov r0, #0x96
- mul r0, r1
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x74]
-_0224B8B6:
- cmp r6, #0xd
- bne _0224B8CE
- mov r2, #1
- ldr r0, [sp, #4]
- add r1, r5, #0
- lsl r2, r2, #0x10
- bl MOD11_02247238
- cmp r0, #0
- beq _0224B8CE
- lsl r0, r4, #0xf
- lsr r4, r0, #0x10
-_0224B8CE:
- cmp r6, #0xa
- bne _0224B8E6
- mov r2, #2
- ldr r0, [sp, #4]
- add r1, r5, #0
- lsl r2, r2, #0x10
- bl MOD11_02247238
- cmp r0, #0
- beq _0224B8E6
- lsl r0, r4, #0xf
- lsr r4, r0, #0x10
-_0224B8E6:
- cmp r6, #0xc
- bne _0224B90A
- cmp r7, #0x41
- bne _0224B90A
- ldr r0, [sp, #0x4c]
- mov r1, #3
- bl _s32_div_f
- ldr r1, [sp, #0x50]
- cmp r1, r0
- bgt _0224B90A
- mov r0, #0x96
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_0224B90A:
- cmp r6, #0xa
- bne _0224B92E
- cmp r7, #0x42
- bne _0224B92E
- ldr r0, [sp, #0x4c]
- mov r1, #3
- bl _s32_div_f
- ldr r1, [sp, #0x50]
- cmp r1, r0
- bgt _0224B92E
- mov r0, #0x96
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_0224B92E:
- cmp r6, #0xb
- bne _0224B952
- cmp r7, #0x43
- bne _0224B952
- ldr r0, [sp, #0x4c]
- mov r1, #3
- bl _s32_div_f
- ldr r1, [sp, #0x50]
- cmp r1, r0
- bgt _0224B952
- mov r0, #0x96
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_0224B952:
- cmp r6, #6
- bne _0224B976
- cmp r7, #0x44
- bne _0224B976
- ldr r0, [sp, #0x4c]
- mov r1, #3
- bl _s32_div_f
- ldr r1, [sp, #0x50]
- cmp r1, r0
- bgt _0224B976
- mov r0, #0x96
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_0224B976:
- cmp r6, #0xa
- bne _0224B98E
- ldr r1, [sp, #0x24]
- ldr r2, [sp, #0x20]
- add r0, r5, #0
- mov r3, #0x55
- bl MOD11_02246D84
- cmp r0, #1
- bne _0224B98E
- lsl r0, r4, #0xf
- lsr r4, r0, #0x10
-_0224B98E:
- cmp r6, #0xa
- bne _0224B9B0
- ldr r1, [sp, #0x24]
- ldr r2, [sp, #0x20]
- add r0, r5, #0
- mov r3, #0x57
- bl MOD11_02246D84
- cmp r0, #1
- bne _0224B9B0
- mov r0, #0x7d
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_0224B9B0:
- cmp r7, #0x56
- bne _0224B9F0
- ldr r0, [sp, #0x70]
- mov r1, #5
- lsl r0, r0, #0x19
- asr r0, r0, #0x18
- str r0, [sp, #0x70]
- ldr r0, [sp, #0x70]
- mvn r1, r1
- cmp r0, r1
- bge _0224B9C8
- str r1, [sp, #0x70]
-_0224B9C8:
- ldr r0, [sp, #0x70]
- cmp r0, #6
- ble _0224B9D2
- mov r0, #6
- str r0, [sp, #0x70]
-_0224B9D2:
- ldr r0, [sp, #0x68]
- mov r1, #5
- lsl r0, r0, #0x19
- asr r0, r0, #0x18
- str r0, [sp, #0x68]
- ldr r0, [sp, #0x68]
- mvn r1, r1
- cmp r0, r1
- bge _0224B9E6
- str r1, [sp, #0x68]
-_0224B9E6:
- ldr r0, [sp, #0x68]
- cmp r0, #6
- ble _0224B9F0
- mov r0, #6
- str r0, [sp, #0x68]
-_0224B9F0:
- ldr r1, [sp, #0x24]
- ldr r2, [sp, #0x20]
- add r0, r5, #0
- mov r3, #0x56
- bl MOD11_02246D84
- cmp r0, #1
- bne _0224BA3C
- ldr r0, [sp, #0x6c]
- mov r1, #5
- lsl r0, r0, #0x19
- asr r0, r0, #0x18
- str r0, [sp, #0x6c]
- ldr r0, [sp, #0x6c]
- mvn r1, r1
- cmp r0, r1
- bge _0224BA14
- str r1, [sp, #0x6c]
-_0224BA14:
- ldr r0, [sp, #0x6c]
- cmp r0, #6
- ble _0224BA1E
- mov r0, #6
- str r0, [sp, #0x6c]
-_0224BA1E:
- ldr r0, [sp, #0x64]
- mov r1, #5
- lsl r0, r0, #0x19
- asr r0, r0, #0x18
- str r0, [sp, #0x64]
- ldr r0, [sp, #0x64]
- mvn r1, r1
- cmp r0, r1
- bge _0224BA32
- str r1, [sp, #0x64]
-_0224BA32:
- ldr r0, [sp, #0x64]
- cmp r0, #6
- ble _0224BA3C
- mov r0, #6
- str r0, [sp, #0x64]
-_0224BA3C:
- ldr r1, [sp, #0x24]
- ldr r2, [sp, #0x20]
- add r0, r5, #0
- mov r3, #0x6d
- bl MOD11_02246D84
- cmp r0, #1
- bne _0224BA52
- mov r0, #0
- str r0, [sp, #0x70]
- str r0, [sp, #0x68]
-_0224BA52:
- cmp r7, #0x6d
- bne _0224BA5C
- mov r0, #0
- str r0, [sp, #0x6c]
- str r0, [sp, #0x64]
-_0224BA5C:
- ldr r0, [sp, #0x70]
- add r0, r0, #6
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [sp, #0x70]
- ldr r0, [sp, #0x6c]
- add r0, r0, #6
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [sp, #0x6c]
- ldr r0, [sp, #0x68]
- add r0, r0, #6
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [sp, #0x68]
- ldr r0, [sp, #0x64]
- add r0, r0, #6
- lsl r0, r0, #0x18
- asr r0, r0, #0x18
- str r0, [sp, #0x64]
- cmp r7, #0x4f
- bne _0224BAAA
- ldr r1, [sp, #0x40]
- ldr r0, [sp, #0x3c]
- cmp r1, r0
- bne _0224BAAA
- add r0, r1, #0
- cmp r0, #2
- beq _0224BAAA
- ldr r0, [sp, #0x3c]
- cmp r0, #2
- beq _0224BAAA
- mov r0, #0x7d
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_0224BAAA:
- cmp r7, #0x4f
- bne _0224BAD0
- ldr r1, [sp, #0x40]
- ldr r0, [sp, #0x3c]
- cmp r1, r0
- beq _0224BAD0
- add r0, r1, #0
- cmp r0, #2
- beq _0224BAD0
- ldr r0, [sp, #0x3c]
- cmp r0, #2
- beq _0224BAD0
- mov r0, #0x4b
- mul r0, r4
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
-_0224BAD0:
- ldr r2, _0224BDDC ; =0x0225E2BA
- mov r3, #0
-_0224BAD4:
- ldrh r1, [r2]
- ldr r0, [sp, #8]
- cmp r0, r1
- bne _0224BAF0
- cmp r7, #0x59
- bne _0224BAF0
- mov r0, #0xc
- mul r0, r4
- mov r1, #0xa
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r4, r0, #0x10
- b _0224BAF8
-_0224BAF0:
- add r3, r3, #1
- add r2, r2, #2
- cmp r3, #0xf
- blo _0224BAD4
-_0224BAF8:
- mov r0, #0xd
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _0224BBCA
- mov r0, #0x4c
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _0224BBCA
- ldr r0, [sp, #0xa0]
- mov r1, #0x30
- and r0, r1
- str r0, [sp, #0x1c]
- beq _0224BB40
- cmp r7, #0x5e
- bne _0224BB40
- ldr r1, [sp, #0x74]
- mov r0, #0xf
- mul r0, r1
- mov r1, #0xa
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x74]
-_0224BB40:
- ldr r0, [sp, #0xa0]
- mov r1, #0xc
- tst r0, r1
- beq _0224BB66
- ldr r0, [sp, #0x38]
- cmp r0, #5
- beq _0224BB54
- ldr r0, [sp, #0x34]
- cmp r0, #5
- bne _0224BB66
-_0224BB54:
- ldr r1, [sp, #0x10]
- mov r0, #0xf
- mul r0, r1
- mov r1, #0xa
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x10]
-_0224BB66:
- ldr r0, [sp, #0x1c]
- cmp r0, #0
- beq _0224BB92
- mov r0, #0x7a
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r3, [sp, #0x24]
- add r1, r5, #0
- mov r2, #1
- bl MOD11_02246870
- cmp r0, #0
- beq _0224BB92
- ldr r1, [sp, #0x7c]
- mov r0, #0xf
- mul r0, r1
- mov r1, #0xa
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x7c]
-_0224BB92:
- ldr r0, [sp, #0x1c]
- cmp r0, #0
- beq _0224BBCA
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x68
- beq _0224BBCA
- mov r0, #0x7a
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r3, [sp, #0x20]
- add r1, r5, #0
- mov r2, #1
- bl MOD11_02246870
- cmp r0, #0
- beq _0224BBCA
- ldr r1, [sp, #0x10]
- mov r0, #0xf
- mul r0, r1
- mov r1, #0xa
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x10]
-_0224BBCA:
- ldr r0, [sp, #0x18]
- add r1, r5, r0
- ldr r0, _0224BDE0 ; =0x000003DE
- ldrh r0, [r1, r0]
- str r0, [sp, #0x14]
- cmp r0, #7
- bne _0224BBE0
- ldr r0, [sp, #0x78]
- lsl r0, r0, #0xf
- lsr r0, r0, #0x10
- str r0, [sp, #0x78]
-_0224BBE0:
- ldr r0, [sp, #0x80]
- cmp r0, #0
- bne _0224BCE2
- ldr r0, [sp, #0xb4]
- cmp r0, #1
- bls _0224BC0E
- ldr r0, [sp, #0x70]
- cmp r0, #6
- ble _0224BC08
- lsl r1, r0, #1
- ldr r0, _0224BDE4 ; =0x0225E284
- ldr r2, [sp, #0x7c]
- ldrb r0, [r0, r1]
- mul r0, r2
- ldr r2, _0224BDE8 ; =0x0225E285
- ldrb r1, [r2, r1]
- bl _s32_div_f
- str r0, [sp, #0x84]
- b _0224BC24
-_0224BC08:
- ldr r0, [sp, #0x7c]
- str r0, [sp, #0x84]
- b _0224BC24
-_0224BC0E:
- ldr r0, [sp, #0x70]
- ldr r2, [sp, #0x7c]
- lsl r1, r0, #1
- ldr r0, _0224BDE4 ; =0x0225E284
- ldrb r0, [r0, r1]
- mul r0, r2
- ldr r2, _0224BDE8 ; =0x0225E285
- ldrb r1, [r2, r1]
- bl _s32_div_f
- str r0, [sp, #0x84]
-_0224BC24:
- ldr r0, [sp, #0x84]
- add r1, r0, #0
- ldr r0, [sp, #0x60]
- mul r1, r4
- str r1, [sp, #0x84]
- lsl r0, r0, #1
- mov r1, #5
- bl _s32_div_f
- add r1, r0, #2
- ldr r0, [sp, #0x84]
- mul r1, r0
- ldr r0, [sp, #0xb4]
- str r1, [sp, #0x84]
- cmp r0, #1
- bls _0224BC60
- ldr r0, [sp, #0x6c]
- cmp r0, #6
- bge _0224BC76
- lsl r1, r0, #1
- ldr r0, _0224BDE4 ; =0x0225E284
- ldr r2, [sp, #0x78]
- ldrb r0, [r0, r1]
- mul r0, r2
- ldr r2, _0224BDE8 ; =0x0225E285
- ldrb r1, [r2, r1]
- bl _s32_div_f
- str r0, [sp, #0x78]
- b _0224BC76
-_0224BC60:
- ldr r0, [sp, #0x6c]
- ldr r2, [sp, #0x78]
- lsl r1, r0, #1
- ldr r0, _0224BDE4 ; =0x0225E284
- ldrb r0, [r0, r1]
- mul r0, r2
- ldr r2, _0224BDE8 ; =0x0225E285
- ldrb r1, [r2, r1]
- bl _s32_div_f
- str r0, [sp, #0x78]
-_0224BC76:
- ldr r0, [sp, #0x84]
- ldr r1, [sp, #0x78]
- bl _s32_div_f
- mov r1, #0x32
- bl _s32_div_f
- str r0, [sp, #0x84]
- ldr r0, [sp, #0x48]
- mov r1, #0x10
- tst r0, r1
- beq _0224BC9C
- cmp r7, #0x3e
- beq _0224BC9C
- ldr r0, [sp, #0x84]
- lsr r1, r0, #0x1f
- add r1, r0, r1
- asr r0, r1, #1
- str r0, [sp, #0x84]
-_0224BC9C:
- ldr r0, [sp, #0xc]
- mov r2, #1
- tst r0, r2
- beq _0224BCB0
- ldr r0, [sp, #0xb4]
- cmp r0, #1
- bne _0224BCB0
- ldr r0, [sp, #0x14]
- cmp r0, #0xba
- bne _0224BCB2
-_0224BCB0:
- b _0224BDC8
-_0224BCB2:
- ldr r0, [sp, #0x5c]
- mov r1, #2
- tst r0, r1
- beq _0224BCD6
- ldr r0, [sp, #4]
- ldr r3, [sp, #0x20]
- add r1, r5, #0
- bl MOD11_022467AC
- cmp r0, #2
- bne _0224BCD6
- ldr r0, [sp, #0x84]
- mov r1, #3
- lsl r0, r0, #1
- bl _s32_div_f
- str r0, [sp, #0x84]
- b _0224BDC8
-_0224BCD6:
- ldr r0, [sp, #0x84]
- lsr r1, r0, #0x1f
- add r1, r0, r1
- asr r0, r1, #1
- str r0, [sp, #0x84]
- b _0224BDC8
-_0224BCE2:
- cmp r0, #1
- bne _0224BDC8
- ldr r0, [sp, #0xb4]
- cmp r0, #1
- bls _0224BD0E
- ldr r0, [sp, #0x68]
- cmp r0, #6
- ble _0224BD08
- lsl r1, r0, #1
- ldr r0, _0224BDE4 ; =0x0225E284
- ldr r2, [sp, #0x74]
- ldrb r0, [r0, r1]
- mul r0, r2
- ldr r2, _0224BDE8 ; =0x0225E285
- ldrb r1, [r2, r1]
- bl _s32_div_f
- str r0, [sp, #0x84]
- b _0224BD24
-_0224BD08:
- ldr r0, [sp, #0x74]
- str r0, [sp, #0x84]
- b _0224BD24
-_0224BD0E:
- ldr r0, [sp, #0x68]
- ldr r2, [sp, #0x74]
- lsl r1, r0, #1
- ldr r0, _0224BDE4 ; =0x0225E284
- ldrb r0, [r0, r1]
- mul r0, r2
- ldr r2, _0224BDE8 ; =0x0225E285
- ldrb r1, [r2, r1]
- bl _s32_div_f
- str r0, [sp, #0x84]
-_0224BD24:
- ldr r0, [sp, #0x84]
- add r1, r0, #0
- ldr r0, [sp, #0x60]
- mul r1, r4
- str r1, [sp, #0x84]
- lsl r0, r0, #1
- mov r1, #5
- bl _s32_div_f
- add r1, r0, #2
- ldr r0, [sp, #0x84]
- mul r1, r0
- ldr r0, [sp, #0xb4]
- str r1, [sp, #0x84]
- cmp r0, #1
- bls _0224BD60
- ldr r0, [sp, #0x64]
- cmp r0, #6
- bge _0224BD76
- lsl r1, r0, #1
- ldr r0, _0224BDE4 ; =0x0225E284
- ldr r2, [sp, #0x10]
- ldrb r0, [r0, r1]
- mul r0, r2
- ldr r2, _0224BDE8 ; =0x0225E285
- ldrb r1, [r2, r1]
- bl _s32_div_f
- str r0, [sp, #0x10]
- b _0224BD76
-_0224BD60:
- ldr r0, [sp, #0x64]
- ldr r2, [sp, #0x10]
- lsl r1, r0, #1
- ldr r0, _0224BDE4 ; =0x0225E284
- ldrb r0, [r0, r1]
- mul r0, r2
- ldr r2, _0224BDE8 ; =0x0225E285
- ldrb r1, [r2, r1]
- bl _s32_div_f
- str r0, [sp, #0x10]
-_0224BD76:
- ldr r0, [sp, #0x84]
- ldr r1, [sp, #0x10]
- bl _s32_div_f
- mov r1, #0x32
- bl _s32_div_f
- str r0, [sp, #0x84]
- ldr r0, [sp, #0xc]
- mov r1, #2
- tst r0, r1
- beq _0224BDC8
- ldr r0, [sp, #0xb4]
- cmp r0, #1
- bne _0224BDC8
- ldr r0, [sp, #0x14]
- cmp r0, #0xba
- beq _0224BDC8
- ldr r0, [sp, #0x5c]
- tst r0, r1
- beq _0224BDBE
- ldr r0, [sp, #4]
- ldr r3, [sp, #0x20]
- add r1, r5, #0
- mov r2, #1
- bl MOD11_022467AC
- cmp r0, #2
- bne _0224BDBE
- ldr r0, [sp, #0x84]
- mov r1, #3
- lsl r0, r0, #1
- bl _s32_div_f
- str r0, [sp, #0x84]
- b _0224BDC8
-_0224BDBE:
- ldr r0, [sp, #0x84]
- lsr r1, r0, #0x1f
- add r1, r0, r1
- asr r0, r1, #1
- str r0, [sp, #0x84]
-_0224BDC8:
- ldr r0, [sp, #0x5c]
- mov r1, #2
- add r4, r0, #0
- and r4, r1
- beq _0224BE16
- ldr r0, [sp, #0x18]
- add r1, r5, r0
- ldr r0, _0224BDEC ; =0x000003E6
- b _0224BDF0
- nop
-_0224BDDC: .word 0x0225E2BA
-_0224BDE0: .word 0x000003DE
-_0224BDE4: .word 0x0225E284
-_0224BDE8: .word 0x0225E285
-_0224BDEC: .word 0x000003E6
-_0224BDF0:
- ldrh r0, [r1, r0]
- cmp r0, #4
- bne _0224BE16
- ldr r0, [sp, #4]
- ldr r3, [sp, #0x20]
- add r1, r5, #0
- mov r2, #1
- bl MOD11_022467AC
- cmp r0, #2
- bne _0224BE16
- ldr r0, [sp, #0x84]
- lsl r1, r0, #1
- add r1, r0, r1
- asr r0, r1, #1
- lsr r0, r0, #0x1e
- add r0, r1, r0
- asr r0, r0, #2
- str r0, [sp, #0x84]
-_0224BE16:
- cmp r4, #0
- beq _0224BE46
- ldr r0, [sp, #0x18]
- add r1, r5, r0
- ldr r0, _0224BF08 ; =0x000003E6
- ldrh r0, [r1, r0]
- cmp r0, #8
- bne _0224BE46
- ldr r0, [sp, #4]
- ldr r3, [sp, #0x20]
- add r1, r5, #0
- mov r2, #0
- bl MOD11_022467AC
- cmp r0, #2
- blo _0224BE46
- ldr r0, [sp, #0x84]
- lsl r1, r0, #1
- add r1, r0, r1
- asr r0, r1, #1
- lsr r0, r0, #0x1e
- add r0, r1, r0
- asr r0, r0, #2
- str r0, [sp, #0x84]
-_0224BE46:
- mov r0, #0xd
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _0224BEDE
- mov r0, #0x4c
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _0224BEDE
- ldr r0, [sp, #0xa0]
- mov r1, #3
- tst r0, r1
- beq _0224BE9A
- cmp r6, #0xa
- beq _0224BE80
- cmp r6, #0xb
- beq _0224BE8C
- b _0224BE9A
-_0224BE80:
- ldr r0, [sp, #0x84]
- lsr r1, r0, #0x1f
- add r1, r0, r1
- asr r0, r1, #1
- str r0, [sp, #0x84]
- b _0224BE9A
-_0224BE8C:
- ldr r1, [sp, #0x84]
- mov r0, #0xf
- mul r0, r1
- mov r1, #0xa
- bl _s32_div_f
- str r0, [sp, #0x84]
-_0224BE9A:
- ldr r1, _0224BF0C ; =0x000080CF
- ldr r0, [sp, #0xa0]
- tst r0, r1
- beq _0224BEB2
- ldr r0, [sp, #8]
- cmp r0, #0x4c
- bne _0224BEB2
- ldr r0, [sp, #0x84]
- lsr r1, r0, #0x1f
- add r1, r0, r1
- asr r0, r1, #1
- str r0, [sp, #0x84]
-_0224BEB2:
- ldr r0, [sp, #0xa0]
- mov r1, #0x30
- tst r0, r1
- beq _0224BEDE
- cmp r6, #0xa
- beq _0224BEC4
- cmp r6, #0xb
- beq _0224BED4
- b _0224BEDE
-_0224BEC4:
- ldr r1, [sp, #0x84]
- mov r0, #0xf
- mul r0, r1
- mov r1, #0xa
- bl _s32_div_f
- str r0, [sp, #0x84]
- b _0224BEDE
-_0224BED4:
- ldr r0, [sp, #0x84]
- lsr r1, r0, #0x1f
- add r1, r0, r1
- asr r0, r1, #1
- str r0, [sp, #0x84]
-_0224BEDE:
- ldr r1, [sp, #0x24]
- add r0, r5, #0
- mov r2, #0x49
- mov r3, #0
- bl MOD11_02243420
- cmp r0, #0
- beq _0224BF00
- cmp r6, #0xa
- bne _0224BF00
- ldr r1, [sp, #0x84]
- mov r0, #0xf
- mul r0, r1
- mov r1, #0xa
- bl _s32_div_f
- str r0, [sp, #0x84]
-_0224BF00:
- ldr r0, [sp, #0x84]
- add r0, r0, #2
- add sp, #0x8c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0224BF08: .word 0x000003E6
-_0224BF0C: .word 0x000080CF
-
- thumb_func_start MOD11_0224BF10
-MOD11_0224BF10: ; 0x0224BF10
- push {r4, lr}
- add r4, r1, #0
- beq _0224BF36
- bl rand_LC
- lsr r2, r0, #0x1f
- lsl r1, r0, #0x1c
- sub r1, r1, r2
- mov r0, #0x1c
- ror r1, r0
- add r0, r2, r1
- mov r1, #0x64
- sub r0, r1, r0
- mul r0, r4
- bl _s32_div_f
- add r4, r0, #0
- bne _0224BF36
- mov r4, #1
-_0224BF36:
- add r0, r4, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224BF3C
-MOD11_0224BF3C: ; 0x0224BF3C
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r4, r0, #0
- mov r7, #1
- str r1, [sp]
- str r2, [sp, #4]
- str r3, [sp, #8]
- bl MOD11_02249B4C
- add r1, r0, #0
- add r0, r4, #0
- add r2, r7, #0
- bl MOD11_0224C12C
- add r3, r0, #0
- ldr r1, [sp]
- mov r0, #0xc0
- mul r0, r1
- mov r1, #0xb5
- lsl r1, r1, #6
- add r2, r4, r0
- add r0, r1, #0
- add r0, #0x70
- ldr r0, [r2, r0]
- ldr r6, [sp, #4]
- str r0, [sp, #0x10]
- mov r0, #0xc0
- mul r0, r6
- add r6, r4, r0
- add r0, r1, #0
- add r0, #0x80
- ldr r0, [r6, r0]
- ldrh r5, [r2, r1]
- add r1, #0x27
- str r0, [sp, #0xc]
- ldrb r0, [r2, r1]
- cmp r0, #0x69
- bne _0224BF8C
- add r2, r7, #0
- b _0224BF8E
-_0224BF8C:
- mov r2, #0
-_0224BF8E:
- cmp r3, #0x42
- bne _0224BF96
- mov r6, #1
- b _0224BF98
-_0224BF96:
- mov r6, #0
-_0224BF98:
- mov r1, #1
- ldr r0, [sp, #0x10]
- lsl r1, r1, #0x14
- tst r0, r1
- beq _0224BFA6
- mov r0, #1
- b _0224BFA8
-_0224BFA6:
- mov r0, #0
-_0224BFA8:
- cmp r3, #0x58
- bne _0224BFB4
- cmp r5, #0x71
- bne _0224BFB4
- mov r1, #1
- b _0224BFB6
-_0224BFB4:
- mov r1, #0
-_0224BFB6:
- cmp r3, #0x5b
- bne _0224BFC2
- cmp r5, #0x53
- bne _0224BFC2
- mov r3, #1
- b _0224BFC4
-_0224BFC2:
- mov r3, #0
-_0224BFC4:
- lsl r0, r0, #1
- add r5, r6, r0
- ldr r0, [sp, #8]
- add r0, r0, r5
- add r2, r2, r0
- lsl r0, r1, #1
- add r1, r2, r0
- lsl r0, r3, #1
- add r0, r1, r0
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- cmp r5, #4
- bls _0224BFE0
- mov r5, #4
-_0224BFE0:
- bl rand_LC
- ldr r1, _0224C040 ; =0x0225E244
- ldrb r1, [r1, r5]
- bl _s32_div_f
- cmp r1, #0
- bne _0224C026
- ldr r1, [sp]
- ldr r2, [sp, #4]
- add r0, r4, #0
- mov r3, #4
- bl MOD11_02246D84
- cmp r0, #0
- bne _0224C026
- ldr r1, [sp]
- ldr r2, [sp, #4]
- add r0, r4, #0
- mov r3, #0x4b
- bl MOD11_02246D84
- cmp r0, #0
- bne _0224C026
- mov r0, #7
- ldr r1, [sp, #0x28]
- lsl r0, r0, #0xc
- tst r0, r1
- bne _0224C026
- mov r1, #2
- ldr r0, [sp, #0xc]
- lsl r1, r1, #0xe
- tst r0, r1
- bne _0224C026
- mov r7, #2
-_0224C026:
- cmp r7, #2
- bne _0224C038
- ldr r1, [sp]
- add r0, r4, #0
- bl MOD11_02246D1C
- cmp r0, #0x61
- bne _0224C038
- mov r7, #3
-_0224C038:
- add r0, r7, #0
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- nop
-_0224C040: .word 0x0225E244
-
- thumb_func_start MOD11_0224C044
-MOD11_0224C044: ; 0x0224C044
- push {r3, r4}
- ldr r4, _0224C074 ; =0x0225E300
- ldr r1, _0224C078 ; =0x0000FFFE
- mov r3, #0
-_0224C04C:
- ldrh r2, [r4]
- cmp r0, r2
- beq _0224C05C
- add r4, r4, #2
- ldrh r2, [r4]
- add r3, r3, #1
- cmp r2, r1
- bne _0224C04C
-_0224C05C:
- ldr r0, _0224C074 ; =0x0225E300
- lsl r1, r3, #1
- ldrh r1, [r0, r1]
- ldr r0, _0224C078 ; =0x0000FFFE
- cmp r1, r0
- bne _0224C06E
- mov r0, #1
- pop {r3, r4}
- bx lr
-_0224C06E:
- mov r0, #0
- pop {r3, r4}
- bx lr
- .align 2, 0
-_0224C074: .word 0x0225E300
-_0224C078: .word 0x0000FFFE
-
- thumb_func_start MOD11_0224C07C
-MOD11_0224C07C: ; 0x0224C07C
- push {r3, r4}
- ldr r4, _0224C0AC ; =0x0225E300
- ldr r1, _0224C0B0 ; =0x0000FFFF
- mov r3, #0
-_0224C084:
- ldrh r2, [r4]
- cmp r0, r2
- beq _0224C094
- add r4, r4, #2
- ldrh r2, [r4]
- add r3, r3, #1
- cmp r2, r1
- bne _0224C084
-_0224C094:
- ldr r0, _0224C0AC ; =0x0225E300
- lsl r1, r3, #1
- ldrh r1, [r0, r1]
- ldr r0, _0224C0B0 ; =0x0000FFFF
- cmp r1, r0
- bne _0224C0A6
- mov r0, #1
- pop {r3, r4}
- bx lr
-_0224C0A6:
- mov r0, #0
- pop {r3, r4}
- bx lr
- .align 2, 0
-_0224C0AC: .word 0x0225E300
-_0224C0B0: .word 0x0000FFFF
-
- thumb_func_start MOD11_0224C0B4
-MOD11_0224C0B4: ; 0x0224C0B4
- push {r4, r5}
- lsl r1, r1, #4
- add r4, r0, r1
- ldr r1, _0224C0E8 ; =0x000003DE
- ldr r3, _0224C0EC ; =0x0225E254
- ldrh r1, [r4, r1]
- ldr r4, _0224C0E8 ; =0x000003DE
- mov r2, #0
-_0224C0C4:
- ldrh r5, [r3]
- lsl r5, r5, #4
- add r5, r0, r5
- ldrh r5, [r5, r4]
- cmp r1, r5
- beq _0224C0D8
- add r2, r2, #1
- add r3, r3, #2
- cmp r2, #6
- blo _0224C0C4
-_0224C0D8:
- cmp r2, #6
- bne _0224C0E2
- mov r0, #1
- pop {r4, r5}
- bx lr
-_0224C0E2:
- mov r0, #0
- pop {r4, r5}
- bx lr
- .align 2, 0
-_0224C0E8: .word 0x000003DE
-_0224C0EC: .word 0x0225E254
-
- thumb_func_start MOD11_0224C0F0
-MOD11_0224C0F0: ; 0x0224C0F0
- push {r4, r5}
- lsl r1, r1, #4
- add r4, r0, r1
- ldr r1, _0224C124 ; =0x000003DE
- ldr r3, _0224C128 ; =0x0225E26C
- ldrh r1, [r4, r1]
- ldr r4, _0224C124 ; =0x000003DE
- mov r2, #0
-_0224C100:
- ldrh r5, [r3]
- lsl r5, r5, #4
- add r5, r0, r5
- ldrh r5, [r5, r4]
- cmp r1, r5
- beq _0224C114
- add r2, r2, #1
- add r3, r3, #2
- cmp r2, #6
- blo _0224C100
-_0224C114:
- cmp r2, #6
- bne _0224C11E
- mov r0, #1
- pop {r4, r5}
- bx lr
-_0224C11E:
- mov r0, #0
- pop {r4, r5}
- bx lr
- .align 2, 0
-_0224C124: .word 0x000003DE
-_0224C128: .word 0x0225E26C
-
- thumb_func_start MOD11_0224C12C
-MOD11_0224C12C: ; 0x0224C12C
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r0, r1, #0
- mov r1, #0
- add r4, r2, #0
- bl FUN_0206E640
- add r1, r0, #0
- ldr r0, _0224C14C ; =0x00002120
- ldr r0, [r5, r0]
- bl FUN_0206EB78
- add r1, r4, #0
- bl FUN_0206E7DC
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0224C14C: .word 0x00002120
-
- thumb_func_start MOD11_0224C150
-MOD11_0224C150: ; 0x0224C150
- push {r3, r4, r5, r6, r7, lr}
- add r7, r0, #0
- add r5, r2, #0
- bl MOD11_0222FF84
- add r6, r0, #0
- mov r4, #0
- cmp r6, #0
- ble _0224C174
-_0224C162:
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_02230270
- cmp r5, r0
- beq _0224C174
- add r4, r4, #1
- cmp r4, r6
- blt _0224C162
-_0224C174:
- add r0, r4, #0
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0224C178
-MOD11_0224C178: ; 0x0224C178
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- str r0, [sp, #4]
- add r5, r1, #0
- bl MOD11_0222FF84
- str r0, [sp, #0x10]
- mov r0, #0
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x10]
- sub r0, r0, #1
- str r0, [sp, #0x18]
- cmp r0, #0
- ble _0224C1FE
-_0224C194:
- ldr r0, [sp, #0x14]
- add r7, r0, #1
- ldr r0, [sp, #0x10]
- cmp r7, r0
- bge _0224C1F2
- ldr r0, [sp, #0x14]
- add r0, r5, r0
- str r0, [sp, #0xc]
-_0224C1A4:
- ldr r1, [sp, #0xc]
- ldr r0, _0224C204 ; =0x000021E8
- ldrb r6, [r1, r0]
- add r1, r5, r7
- ldrb r4, [r1, r0]
- lsl r0, r6, #4
- str r1, [sp, #8]
- add r1, r5, r0
- ldr r0, _0224C208 ; =0x000021B4
- ldr r0, [r1, r0]
- lsl r1, r4, #4
- add r2, r5, r1
- ldr r1, _0224C208 ; =0x000021B4
- ldr r1, [r2, r1]
- cmp r0, r1
- bne _0224C1EA
- cmp r0, #1
- beq _0224C1CC
- mov r0, #1
- b _0224C1CE
-_0224C1CC:
- mov r0, #0
-_0224C1CE:
- str r0, [sp]
- ldr r0, [sp, #4]
- add r1, r5, #0
- add r2, r6, #0
- add r3, r4, #0
- bl MOD11_02244248
- cmp r0, #0
- beq _0224C1EA
- ldr r1, [sp, #0xc]
- ldr r0, _0224C204 ; =0x000021E8
- strb r4, [r1, r0]
- ldr r1, [sp, #8]
- strb r6, [r1, r0]
-_0224C1EA:
- ldr r0, [sp, #0x10]
- add r7, r7, #1
- cmp r7, r0
- blt _0224C1A4
-_0224C1F2:
- ldr r0, [sp, #0x14]
- add r1, r0, #1
- ldr r0, [sp, #0x18]
- str r1, [sp, #0x14]
- cmp r1, r0
- blt _0224C194
-_0224C1FE:
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- nop
-_0224C204: .word 0x000021E8
-_0224C208: .word 0x000021B4
-
- thumb_func_start MOD11_0224C20C
-MOD11_0224C20C: ; 0x0224C20C
- push {r4, r5}
- mov r4, #0xc0
- mul r4, r1
- add r5, r0, r4
- ldr r0, _0224C24C ; =0x00002DB0
- mov r1, #1
- ldr r4, [r5, r0]
- lsl r1, r1, #0x18
- mov r3, #0
- tst r1, r4
- bne _0224C22C
- add r0, #0x10
- ldr r1, [r5, r0]
- ldr r0, _0224C250 ; =0x200400C0
- tst r0, r1
- beq _0224C244
-_0224C22C:
- ldr r4, _0224C254 ; =0x0225E2D8
- mov r1, #0
-_0224C230:
- ldr r0, [r4]
- cmp r2, r0
- bne _0224C23A
- mov r3, #1
- b _0224C246
-_0224C23A:
- add r1, r1, #1
- add r4, r4, #4
- cmp r1, #0xa
- blo _0224C230
- b _0224C246
-_0224C244:
- mov r3, #1
-_0224C246:
- add r0, r3, #0
- pop {r4, r5}
- bx lr
- .align 2, 0
-_0224C24C: .word 0x00002DB0
-_0224C250: .word 0x200400C0
-_0224C254: .word 0x0225E2D8
-
- thumb_func_start MOD11_0224C258
-MOD11_0224C258: ; 0x0224C258
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r5, r1, #0
- ldr r1, [r5, #0x64]
- str r0, [sp]
- add r0, r5, #0
- add r4, r2, #0
- mov r6, #0
- bl MOD11_02249D90
- str r0, [sp, #0xc]
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- add r2, r6, #0
- bl MOD11_02249DA4
- str r0, [sp, #0x10]
- ldr r1, [r5, #0x6c]
- add r0, r5, #0
- bl MOD11_02249D90
- add r7, r0, #0
- ldr r1, [r5, #0x6c]
- add r0, r5, #0
- add r2, r6, #0
- bl MOD11_02249DA4
- str r0, [sp, #8]
- ldr r0, [sp]
- ldr r1, [r5, #0x64]
- bl MOD11_02230270
- str r0, [sp, #4]
- ldr r0, [sp, #0xc]
- cmp r0, #0x57
- bne _0224C2F4
- ldr r0, _0224C41C ; =0x0000213C
- ldr r1, [r5, r0]
- mov r0, #2
- lsl r0, r0, #0xc
- tst r0, r1
- beq _0224C2F4
- ldr r0, [r5, #0x64]
- mov r1, #0x1c
- mul r1, r0
- add r2, r5, r1
- mov r1, #0xbb
- lsl r1, r1, #2
- ldr r2, [r2, r1]
- cmp r2, #0
- beq _0224C2F4
- ldr r1, [r5, #0x6c]
- cmp r0, r1
- beq _0224C2F4
- mov r1, #0xc0
- mul r1, r0
- ldr r3, _0224C420 ; =0x00002D8C
- add r1, r5, r1
- ldr r0, [r1, r3]
- add r3, r3, #4
- ldr r1, [r1, r3]
- cmp r0, r1
- bhs _0224C2F4
- cmp r0, #0
- beq _0224C2F4
- ldr r1, [sp, #0x10]
- neg r0, r2
- bl MOD11_022476C0
- ldr r1, _0224C424 ; =0x0000215C
- mov r6, #1
- str r0, [r5, r1]
- mov r0, #0x46
- ldr r1, [r5, #0x64]
- lsl r0, r0, #2
- str r1, [r5, r0]
- mov r0, #0xd5
- str r0, [r4]
-_0224C2F4:
- ldr r0, [sp, #0xc]
- cmp r0, #0x61
- bne _0224C356
- ldr r1, [r5, #0x64]
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x62
- beq _0224C356
- ldr r0, _0224C41C ; =0x0000213C
- ldr r1, [r5, r0]
- mov r0, #2
- lsl r0, r0, #0xc
- tst r0, r1
- beq _0224C356
- ldr r0, _0224C428 ; =0x00003044
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- mov r0, #0x3e
- lsl r0, r0, #4
- ldrb r0, [r1, r0]
- cmp r0, #2
- beq _0224C356
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- add r2, r1, #0
- mul r2, r0
- ldr r3, _0224C420 ; =0x00002D8C
- add r2, r5, r2
- ldr r1, [r2, r3]
- cmp r1, #0
- beq _0224C356
- add r1, r3, #4
- ldr r1, [r2, r1]
- sub r0, #0xc1
- mul r0, r1
- mov r1, #0xa
- bl MOD11_022476C0
- ldr r1, _0224C424 ; =0x0000215C
- mov r6, #1
- str r0, [r5, r1]
- mov r0, #0x46
- ldr r1, [r5, #0x64]
- lsl r0, r0, #2
- str r1, [r5, r0]
- mov r0, #0xd6
- str r0, [r4]
-_0224C356:
- cmp r7, #0x2d
- bne _0224C3AA
- ldr r1, [r5, #0x64]
- mov r0, #0xc0
- mul r0, r1
- add r2, r5, r0
- ldr r0, _0224C420 ; =0x00002D8C
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _0224C3AA
- add r0, r5, #0
- bl MOD11_02246D1C
- cmp r0, #0x62
- beq _0224C3AA
- ldr r1, [r5, #0x6c]
- mov r0, #0x1c
- mul r0, r1
- add r1, r5, r0
- mov r0, #0xb6
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0224C3AA
- ldr r0, [r5, #0x64]
- mov r1, #0xc0
- add r2, r0, #0
- mul r2, r1
- ldr r0, _0224C42C ; =0x00002D90
- add r2, r5, r2
- ldr r2, [r2, r0]
- sub r1, #0xc1
- add r0, r2, #0
- mul r0, r1
- ldr r1, [sp, #8]
- bl MOD11_022476C0
- ldr r1, _0224C424 ; =0x0000215C
- mov r6, #1
- str r0, [r5, r1]
- lsr r0, r1, #5
- str r0, [r4]
-_0224C3AA:
- cmp r7, #0x73
- bne _0224C416
- ldr r0, [r5, #0x64]
- mov r1, #0xc0
- mul r1, r0
- add r3, r5, r1
- ldr r1, _0224C420 ; =0x00002D8C
- ldr r2, [r3, r1]
- cmp r2, #0
- beq _0224C416
- add r1, #0x2c
- ldrh r1, [r3, r1]
- cmp r1, #0
- bne _0224C416
- add r1, r5, r0
- ldr r0, _0224C430 ; =0x0000219C
- ldrb r0, [r1, r0]
- bl MaskOfFlagNo
- ldr r1, [sp, #4]
- lsl r1, r1, #3
- add r2, r5, r1
- mov r1, #0x71
- lsl r1, r1, #2
- ldr r1, [r2, r1]
- lsl r1, r1, #3
- lsr r1, r1, #0x1a
- tst r0, r1
- bne _0224C416
- ldr r1, [r5, #0x6c]
- mov r0, #0x1c
- mul r0, r1
- add r2, r5, r0
- mov r0, #0xb6
- lsl r0, r0, #2
- ldr r1, [r2, r0]
- cmp r1, #0
- bne _0224C3FE
- add r0, #8
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _0224C416
-_0224C3FE:
- ldr r0, _0224C428 ; =0x00003044
- ldr r0, [r5, r0]
- lsl r0, r0, #4
- add r1, r5, r0
- ldr r0, _0224C434 ; =0x000003E9
- ldrb r1, [r1, r0]
- mov r0, #1
- tst r1, r0
- beq _0224C416
- mov r1, #0xd8
- str r1, [r4]
- add r6, r0, #0
-_0224C416:
- add r0, r6, #0
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0224C41C: .word 0x0000213C
-_0224C420: .word 0x00002D8C
-_0224C424: .word 0x0000215C
-_0224C428: .word 0x00003044
-_0224C42C: .word 0x00002D90
-_0224C430: .word 0x0000219C
-_0224C434: .word 0x000003E9
-
- thumb_func_start MOD11_0224C438
-MOD11_0224C438: ; 0x0224C438
- push {r4, r5, r6, lr}
- add r6, r2, #0
- add r4, r1, #0
- add r1, r6, #0
- add r5, r0, #0
- bl MOD11_02246D1C
- cmp r0, #0x2e
- bne _0224C46A
- cmp r6, #0xff
- beq _0224C46A
- ldr r0, _0224C46C ; =0x00002D6C
- add r1, r5, r0
- mov r0, #0xc0
- mul r0, r4
- add r0, r1, r0
- lsl r1, r4, #1
- add r2, r5, r1
- ldr r1, _0224C470 ; =0x000030BC
- ldrh r2, [r2, r1]
- ldrb r1, [r0, r2]
- cmp r1, #0
- beq _0224C46A
- sub r1, r1, #1
- strb r1, [r0, r2]
-_0224C46A:
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0224C46C: .word 0x00002D6C
-_0224C470: .word 0x000030BC
-
- thumb_func_start MOD11_0224C474
-MOD11_0224C474: ; 0x0224C474
- push {r4, lr}
- add r4, r1, #0
- cmp r2, #0xc
- bhi _0224C528
- add r1, r2, r2
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0224C488: ; jump table
- .short _0224C4A2 - _0224C488 - 2 ; case 0
- .short _0224C4B4 - _0224C488 - 2 ; case 1
- .short _0224C4CA - _0224C488 - 2 ; case 2
- .short _0224C4D2 - _0224C488 - 2 ; case 3
- .short _0224C4DA - _0224C488 - 2 ; case 4
- .short _0224C4E0 - _0224C488 - 2 ; case 5
- .short _0224C4E6 - _0224C488 - 2 ; case 6
- .short _0224C4F2 - _0224C488 - 2 ; case 7
- .short _0224C4FE - _0224C488 - 2 ; case 8
- .short _0224C508 - _0224C488 - 2 ; case 9
- .short _0224C510 - _0224C488 - 2 ; case 10
- .short _0224C516 - _0224C488 - 2 ; case 11
- .short _0224C51E - _0224C488 - 2 ; case 12
-_0224C4A2:
- add r1, r3, #0
- bl MOD11_02230270
- lsl r0, r0, #2
- add r1, r4, r0
- mov r0, #0x6f
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- pop {r4, pc}
-_0224C4B4:
- add r1, r3, #0
- bl MOD11_02230270
- lsl r0, r0, #3
- add r1, r4, r0
- mov r0, #0x71
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- lsl r0, r0, #0x11
- lsr r0, r0, #0x1d
- pop {r4, pc}
-_0224C4CA:
- ldr r0, _0224C530 ; =0x0000219C
- add r1, r4, r3
- ldrb r0, [r1, r0]
- pop {r4, pc}
-_0224C4D2:
- mov r0, #0x15
- lsl r0, r0, #4
- ldr r0, [r4, r0]
- pop {r4, pc}
-_0224C4DA:
- ldr r0, _0224C534 ; =0x00003109
- ldrb r0, [r4, r0]
- pop {r4, pc}
-_0224C4E0:
- ldr r0, _0224C538 ; =0x0000311D
- ldrb r0, [r4, r0]
- pop {r4, pc}
-_0224C4E6:
- lsl r0, r3, #2
- add r1, r4, r0
- mov r0, #0x55
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- pop {r4, pc}
-_0224C4F2:
- lsl r0, r3, #2
- add r1, r4, r0
- mov r0, #0x59
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- pop {r4, pc}
-_0224C4FE:
- lsl r0, r3, #4
- add r1, r4, r0
- ldr r0, _0224C53C ; =0x000021A8
- ldr r0, [r1, r0]
- pop {r4, pc}
-_0224C508:
- mov r0, #0x3d
- lsl r0, r0, #4
- ldrb r0, [r4, r0]
- pop {r4, pc}
-_0224C510:
- ldr r0, _0224C540 ; =0x00003108
- ldrb r0, [r4, r0]
- pop {r4, pc}
-_0224C516:
- ldr r0, _0224C544 ; =0x000003DA
- add r1, r4, r3
- ldrb r0, [r1, r0]
- pop {r4, pc}
-_0224C51E:
- lsl r0, r3, #4
- add r1, r4, r0
- ldr r0, _0224C548 ; =0x000021B0
- ldr r0, [r1, r0]
- pop {r4, pc}
-_0224C528:
- bl ErrorHandling
- mov r0, #0
- pop {r4, pc}
- .align 2, 0
-_0224C530: .word 0x0000219C
-_0224C534: .word 0x00003109
-_0224C538: .word 0x0000311D
-_0224C53C: .word 0x000021A8
-_0224C540: .word 0x00003108
-_0224C544: .word 0x000003DA
-_0224C548: .word 0x000021B0
-
- thumb_func_start MOD11_0224C54C
-MOD11_0224C54C: ; 0x0224C54C
- push {r3, r4, r5, lr}
- add r5, r1, #0
- ldr r4, [sp, #0x10]
- cmp r2, #0xb
- bhi _0224C5CA
- add r1, r2, r2
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0224C562: ; jump table
- .short _0224C57A - _0224C562 - 2 ; case 0
- .short _0224C58C - _0224C562 - 2 ; case 1
- .short _0224C5AA - _0224C562 - 2 ; case 2
- .short _0224C5B2 - _0224C562 - 2 ; case 3
- .short _0224C5CA - _0224C562 - 2 ; case 4
- .short _0224C5CA - _0224C562 - 2 ; case 5
- .short _0224C5CA - _0224C562 - 2 ; case 6
- .short _0224C5CA - _0224C562 - 2 ; case 7
- .short _0224C5CA - _0224C562 - 2 ; case 8
- .short _0224C5BA - _0224C562 - 2 ; case 9
- .short _0224C5CA - _0224C562 - 2 ; case 10
- .short _0224C5C2 - _0224C562 - 2 ; case 11
-_0224C57A:
- add r1, r3, #0
- bl MOD11_02230270
- lsl r0, r0, #2
- add r1, r5, r0
- mov r0, #0x6f
- lsl r0, r0, #2
- str r4, [r1, r0]
- pop {r3, r4, r5, pc}
-_0224C58C:
- add r1, r3, #0
- bl MOD11_02230270
- mov r1, #0x71
- lsl r1, r1, #2
- add r1, r5, r1
- lsl r0, r0, #3
- ldr r3, [r1, r0]
- ldr r2, _0224C5D0 ; =0xFFFF8FFF
- and r3, r2
- lsl r2, r4, #0x1d
- lsr r2, r2, #0x11
- orr r2, r3
- str r2, [r1, r0]
- pop {r3, r4, r5, pc}
-_0224C5AA:
- ldr r0, _0224C5D4 ; =0x0000219C
- add r1, r5, r3
- strb r4, [r1, r0]
- pop {r3, r4, r5, pc}
-_0224C5B2:
- mov r0, #0x15
- lsl r0, r0, #4
- str r4, [r5, r0]
- pop {r3, r4, r5, pc}
-_0224C5BA:
- mov r0, #0x3d
- lsl r0, r0, #4
- strb r4, [r5, r0]
- pop {r3, r4, r5, pc}
-_0224C5C2:
- ldr r0, _0224C5D8 ; =0x000003DA
- add r1, r5, r3
- strb r4, [r1, r0]
- pop {r3, r4, r5, pc}
-_0224C5CA:
- bl ErrorHandling
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0224C5D0: .word 0xFFFF8FFF
-_0224C5D4: .word 0x0000219C
-_0224C5D8: .word 0x000003DA
-
- thumb_func_start MOD11_0224C5DC
-MOD11_0224C5DC: ; 0x0224C5DC
- push {r4, lr}
- add r3, r0, #0
- add r3, #0x88
- str r1, [r3]
- add r3, r0, #0
- ldr r1, _0224C640 ; =0x007FFFFF
- add r4, r2, #0
- and r4, r1
- add r3, #0x8c
- str r4, [r3]
- lsl r1, r1, #0x17
- add r3, r2, #0
- and r3, r1
- add r1, r0, #0
- add r1, #0x90
- str r3, [r1]
- mov r3, #1
- lsl r3, r3, #0x1e
- add r1, r2, #0
- tst r1, r3
- beq _0224C60E
- ldr r1, [r0, #0x64]
- add r0, #0x94
- str r1, [r0]
- b _0224C62E
-_0224C60E:
- lsl r1, r3, #1
- tst r1, r2
- beq _0224C61C
- ldr r1, [r0, #0x6c]
- add r0, #0x94
- str r1, [r0]
- b _0224C62E
-_0224C61C:
- lsr r1, r3, #1
- tst r1, r2
- bne _0224C628
- lsr r1, r3, #2
- tst r1, r2
- beq _0224C62E
-_0224C628:
- mov r1, #0
- add r0, #0x94
- str r1, [r0]
-_0224C62E:
- cmp r4, #0x91
- blo _0224C636
- bl ErrorHandling
-_0224C636:
- ldr r0, _0224C644 ; =0x0225E4C8
- lsl r1, r4, #2
- ldr r0, [r0, r1]
- pop {r4, pc}
- nop
-_0224C640: .word 0x007FFFFF
-_0224C644: .word 0x0225E4C8
-
- thumb_func_start MOD11_0224C648
-MOD11_0224C648: ; 0x0224C648
- push {r3, r4, r5, lr}
- ldr r1, _0224C6D0 ; =0x0000213C
- add r5, r2, #0
- ldr r2, [r0, r1]
- mov r0, #2
- lsl r0, r0, #0xa
- add r1, r2, #0
- ldr r4, [sp, #0x14]
- tst r1, r0
- bne _0224C672
- lsl r0, r0, #4
- tst r0, r2
- bne _0224C672
- cmp r3, #0
- beq _0224C672
- add r0, r3, #0
- mul r0, r5
- mov r1, #0xa
- bl MOD11_022476C0
- add r3, r0, #0
-_0224C672:
- cmp r5, #0
- beq _0224C680
- cmp r5, #5
- beq _0224C692
- cmp r5, #0x14
- beq _0224C6B0
- b _0224C6CC
-_0224C680:
- ldr r1, [r4]
- mov r0, #8
- orr r1, r0
- mov r0, #4
- bic r1, r0
- mov r0, #2
- bic r1, r0
- str r1, [r4]
- b _0224C6CC
-_0224C692:
- ldr r0, [sp, #0x10]
- cmp r0, #0
- beq _0224C6CC
- ldr r1, [r4]
- mov r0, #2
- tst r0, r1
- beq _0224C6A8
- mov r0, #2
- bic r1, r0
- str r1, [r4]
- b _0224C6CC
-_0224C6A8:
- mov r0, #4
- orr r0, r1
- str r0, [r4]
- b _0224C6CC
-_0224C6B0:
- ldr r0, [sp, #0x10]
- cmp r0, #0
- beq _0224C6CC
- ldr r1, [r4]
- mov r0, #4
- tst r0, r1
- beq _0224C6C6
- mov r0, #4
- bic r1, r0
- str r1, [r4]
- b _0224C6CC
-_0224C6C6:
- mov r0, #2
- orr r0, r1
- str r0, [r4]
-_0224C6CC:
- add r0, r3, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0224C6D0: .word 0x0000213C
-
- thumb_func_start MOD11_0224C6D4
-MOD11_0224C6D4: ; 0x0224C6D4
- lsl r1, r1, #4
- add r2, r0, r1
- ldr r1, _0224C738 ; =0x000003DE
- ldrh r3, [r2, r1]
- cmp r3, #0x9b
- bgt _0224C706
- cmp r3, #0x97
- blt _0224C6EC
- beq _0224C726
- cmp r3, #0x9b
- beq _0224C726
- b _0224C732
-_0224C6EC:
- cmp r3, #0x27
- bgt _0224C6F8
- bge _0224C726
- cmp r3, #0x1a
- beq _0224C726
- b _0224C732
-_0224C6F8:
- cmp r3, #0x4b
- bgt _0224C700
- beq _0224C726
- b _0224C732
-_0224C700:
- cmp r3, #0x91
- beq _0224C726
- b _0224C732
-_0224C706:
- mov r2, #1
- lsl r2, r2, #8
- cmp r3, r2
- bgt _0224C716
- bge _0224C726
- cmp r3, #0xff
- beq _0224C726
- b _0224C732
-_0224C716:
- add r1, r2, #7
- cmp r3, r1
- bgt _0224C720
- beq _0224C726
- b _0224C732
-_0224C720:
- add r2, #0x11
- cmp r3, r2
- bne _0224C732
-_0224C726:
- ldr r1, _0224C73C ; =0x0000213C
- ldr r1, [r0, r1]
- mov r0, #2
- lsl r0, r0, #8
- and r0, r1
- bx lr
-_0224C732:
- mov r0, #1
- bx lr
- nop
-_0224C738: .word 0x000003DE
-_0224C73C: .word 0x0000213C
-
- thumb_func_start MOD11_0224C740
-MOD11_0224C740: ; 0x0224C740
- push {r4, r5, r6, lr}
- add r5, r0, #0
- add r6, r1, #0
- cmp r2, #0x1b
- bne _0224C756
- mov r0, #0xc0
- mul r0, r6
- add r1, r5, r0
- ldr r0, _0224C80C ; =0x00002D64
- ldrb r4, [r1, r0]
- b _0224C76A
-_0224C756:
- cmp r2, #0x1c
- bne _0224C766
- mov r0, #0xc0
- mul r0, r6
- add r1, r5, r0
- ldr r0, _0224C810 ; =0x00002D65
- ldrb r4, [r1, r0]
- b _0224C76A
-_0224C766:
- bl ErrorHandling
-_0224C76A:
- mov r0, #0xc0
- mul r0, r6
- mov r2, #0xb5
- add r1, r5, r0
- lsl r2, r2, #6
- ldrh r3, [r1, r2]
- ldr r0, _0224C814 ; =0x000001ED
- cmp r3, r0
- bne _0224C806
- add r0, r2, #0
- add r0, #0x27
- ldrb r0, [r1, r0]
- cmp r0, #0x79
- bne _0224C806
- add r2, #0x78
- ldrh r1, [r1, r2]
- add r0, r5, #0
- mov r2, #1
- bl MOD11_0224C12C
- sub r0, #0x7d
- cmp r0, #0xf
- bhi _0224C804
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0224C7A4: ; jump table
- .short _0224C7C4 - _0224C7A4 - 2 ; case 0
- .short _0224C7C8 - _0224C7A4 - 2 ; case 1
- .short _0224C7CC - _0224C7A4 - 2 ; case 2
- .short _0224C7D0 - _0224C7A4 - 2 ; case 3
- .short _0224C7D4 - _0224C7A4 - 2 ; case 4
- .short _0224C7D8 - _0224C7A4 - 2 ; case 5
- .short _0224C7DC - _0224C7A4 - 2 ; case 6
- .short _0224C7E0 - _0224C7A4 - 2 ; case 7
- .short _0224C7E4 - _0224C7A4 - 2 ; case 8
- .short _0224C7E8 - _0224C7A4 - 2 ; case 9
- .short _0224C7EC - _0224C7A4 - 2 ; case 10
- .short _0224C7F0 - _0224C7A4 - 2 ; case 11
- .short _0224C7F4 - _0224C7A4 - 2 ; case 12
- .short _0224C7F8 - _0224C7A4 - 2 ; case 13
- .short _0224C7FC - _0224C7A4 - 2 ; case 14
- .short _0224C800 - _0224C7A4 - 2 ; case 15
-_0224C7C4:
- mov r4, #0xa
- b _0224C806
-_0224C7C8:
- mov r4, #0xb
- b _0224C806
-_0224C7CC:
- mov r4, #0xd
- b _0224C806
-_0224C7D0:
- mov r4, #0xc
- b _0224C806
-_0224C7D4:
- mov r4, #0xf
- b _0224C806
-_0224C7D8:
- mov r4, #1
- b _0224C806
-_0224C7DC:
- mov r4, #3
- b _0224C806
-_0224C7E0:
- mov r4, #4
- b _0224C806
-_0224C7E4:
- mov r4, #2
- b _0224C806
-_0224C7E8:
- mov r4, #0xe
- b _0224C806
-_0224C7EC:
- mov r4, #6
- b _0224C806
-_0224C7F0:
- mov r4, #5
- b _0224C806
-_0224C7F4:
- mov r4, #7
- b _0224C806
-_0224C7F8:
- mov r4, #0x10
- b _0224C806
-_0224C7FC:
- mov r4, #0x11
- b _0224C806
-_0224C800:
- mov r4, #8
- b _0224C806
-_0224C804:
- mov r4, #0
-_0224C806:
- add r0, r4, #0
- pop {r4, r5, r6, pc}
- nop
-_0224C80C: .word 0x00002D64
-_0224C810: .word 0x00002D65
-_0224C814: .word 0x000001ED
-
- thumb_func_start MOD11_0224C818
-MOD11_0224C818: ; 0x0224C818
- lsl r1, r1, #3
- add r3, r0, r1
- mov r2, #0
- mov r0, #0x37
- add r1, r2, #0
- lsl r0, r0, #4
-_0224C824:
- add r2, r2, #1
- strh r1, [r3, r0]
- add r3, r3, #2
- cmp r2, #4
- blt _0224C824
- bx lr
-
- thumb_func_start MOD11_0224C830
-MOD11_0224C830: ; 0x0224C830
- add r1, r0, r1
- mov r0, #0x39
- mov r2, #0
- lsl r0, r0, #4
- strb r2, [r1, r0]
- bx lr
-
- thumb_func_start MOD11_0224C83C
-MOD11_0224C83C: ; 0x0224C83C
- lsl r1, r1, #1
- add r1, r0, r1
- mov r0, #0xe5
- mov r2, #0
- lsl r0, r0, #2
- strh r2, [r1, r0]
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_0224C84C
-MOD11_0224C84C: ; 0x0224C84C
- push {r4, r5, r6, lr}
- add r4, r2, #0
- add r3, r0, #0
- mov r2, #0xc0
- add r5, r1, #0
- mul r1, r2
- ldr r6, _0224C8BC ; =0x00002D67
- add r1, r3, r1
- ldrb r1, [r1, r6]
- mov r0, #0xff
- cmp r1, #0x3b
- beq _0224C890
- cmp r1, #0x24
- beq _0224C890
- cmp r1, #0x79
- beq _0224C890
- mul r2, r4
- add r2, r3, r2
- ldrb r2, [r2, r6]
- cmp r2, #0x3b
- beq _0224C890
- cmp r2, #0x24
- beq _0224C890
- cmp r2, #0x79
- beq _0224C890
- bl rand_LC
- mov r1, #1
- tst r0, r1
- beq _0224C88C
- add r0, r4, #0
- pop {r4, r5, r6, pc}
-_0224C88C:
- add r0, r5, #0
- pop {r4, r5, r6, pc}
-_0224C890:
- cmp r1, #0x3b
- beq _0224C8A0
- cmp r1, #0x24
- beq _0224C8A0
- cmp r1, #0x79
- beq _0224C8A0
- add r0, r5, #0
- pop {r4, r5, r6, pc}
-_0224C8A0:
- mov r1, #0xc0
- mul r1, r4
- add r2, r3, r1
- ldr r1, _0224C8BC ; =0x00002D67
- ldrb r1, [r2, r1]
- cmp r1, #0x3b
- beq _0224C8B8
- cmp r1, #0x24
- beq _0224C8B8
- cmp r1, #0x79
- beq _0224C8B8
- add r0, r4, #0
-_0224C8B8:
- pop {r4, r5, r6, pc}
- nop
-_0224C8BC: .word 0x00002D67
-
- thumb_func_start MOD11_0224C8C0
-MOD11_0224C8C0: ; 0x0224C8C0
- lsl r1, r1, #4
- add r1, r0, r1
- ldr r0, _0224C8E4 ; =0x000003DE
- ldr r3, _0224C8E8 ; =0x0225E260
- ldrh r1, [r1, r0]
- mov r2, #0
-_0224C8CC:
- ldrh r0, [r3]
- cmp r0, r1
- bne _0224C8D6
- mov r0, #1
- bx lr
-_0224C8D6:
- add r2, r2, #1
- add r3, r3, #2
- cmp r2, #6
- blo _0224C8CC
- mov r0, #0
- bx lr
- nop
-_0224C8E4: .word 0x000003DE
-_0224C8E8: .word 0x0225E260
-
- thumb_func_start MOD11_0224C8EC
-MOD11_0224C8EC: ; 0x0224C8EC
- push {r3, r4, r5, r6, r7, lr}
- add r6, r2, #0
- ldr r2, _0224CA58 ; =0x00000137
- add r7, r0, #0
- add r4, r1, #0
- cmp r3, r2
- bgt _0224C904
- blt _0224C8FE
- b _0224CA00
-_0224C8FE:
- cmp r3, #0xed
- beq _0224C9A6
- b _0224CA52
-_0224C904:
- add r0, r2, #0
- add r0, #0x34
- cmp r3, r0
- bgt _0224C914
- add r2, #0x34
- cmp r3, r2
- beq _0224C91C
- b _0224CA52
-_0224C914:
- add r2, #0x8a
- cmp r3, r2
- beq _0224C928
- b _0224CA52
-_0224C91C:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_02249E04
- add r5, r0, #0
- b _0224CA54
-_0224C928:
- add r0, r4, #0
- add r1, r6, #0
- bl MOD11_02249D90
- sub r0, #0x7d
- cmp r0, #0xf
- bhi _0224C9A2
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0224C942: ; jump table
- .short _0224C982 - _0224C942 - 2 ; case 0
- .short _0224C986 - _0224C942 - 2 ; case 1
- .short _0224C98E - _0224C942 - 2 ; case 2
- .short _0224C98A - _0224C942 - 2 ; case 3
- .short _0224C996 - _0224C942 - 2 ; case 4
- .short _0224C962 - _0224C942 - 2 ; case 5
- .short _0224C96A - _0224C942 - 2 ; case 6
- .short _0224C96E - _0224C942 - 2 ; case 7
- .short _0224C966 - _0224C942 - 2 ; case 8
- .short _0224C992 - _0224C942 - 2 ; case 9
- .short _0224C976 - _0224C942 - 2 ; case 10
- .short _0224C972 - _0224C942 - 2 ; case 11
- .short _0224C97A - _0224C942 - 2 ; case 12
- .short _0224C99A - _0224C942 - 2 ; case 13
- .short _0224C99E - _0224C942 - 2 ; case 14
- .short _0224C97E - _0224C942 - 2 ; case 15
-_0224C962:
- mov r5, #1
- b _0224CA54
-_0224C966:
- mov r5, #2
- b _0224CA54
-_0224C96A:
- mov r5, #3
- b _0224CA54
-_0224C96E:
- mov r5, #4
- b _0224CA54
-_0224C972:
- mov r5, #5
- b _0224CA54
-_0224C976:
- mov r5, #6
- b _0224CA54
-_0224C97A:
- mov r5, #7
- b _0224CA54
-_0224C97E:
- mov r5, #8
- b _0224CA54
-_0224C982:
- mov r5, #0xa
- b _0224CA54
-_0224C986:
- mov r5, #0xb
- b _0224CA54
-_0224C98A:
- mov r5, #0xc
- b _0224CA54
-_0224C98E:
- mov r5, #0xd
- b _0224CA54
-_0224C992:
- mov r5, #0xe
- b _0224CA54
-_0224C996:
- mov r5, #0xf
- b _0224CA54
-_0224C99A:
- mov r5, #0x10
- b _0224CA54
-_0224C99E:
- mov r5, #0x11
- b _0224CA54
-_0224C9A2:
- mov r5, #0
- b _0224CA54
-_0224C9A6:
- ldr r0, _0224CA5C ; =0x00002D54
- add r1, r4, r0
- mov r0, #0xc0
- mul r0, r6
- ldr r4, [r1, r0]
- lsl r0, r4, #2
- lsr r0, r0, #0x1b
- lsl r0, r0, #0x1f
- lsr r5, r0, #0x1a
- lsl r0, r4, #7
- lsr r0, r0, #0x1b
- lsl r0, r0, #0x1f
- lsr r3, r0, #0x1b
- lsl r0, r4, #0xc
- lsr r0, r0, #0x1b
- lsl r0, r0, #0x1f
- lsr r2, r0, #0x1c
- lsl r0, r4, #0x11
- lsr r0, r0, #0x1b
- lsl r0, r0, #0x1f
- lsr r1, r0, #0x1d
- lsl r0, r4, #0x1b
- lsl r4, r4, #0x16
- lsr r4, r4, #0x1b
- lsr r6, r0, #0x1b
- mov r0, #1
- lsl r4, r4, #0x1f
- and r0, r6
- lsr r4, r4, #0x1e
- orr r0, r4
- orr r0, r1
- orr r0, r2
- orr r0, r3
- add r1, r5, #0
- orr r1, r0
- mov r0, #0xf
- mul r0, r1
- mov r1, #0x3f
- bl _s32_div_f
- add r5, r0, #1
- cmp r5, #9
- blt _0224CA54
- add r5, r5, #1
- b _0224CA54
-_0224CA00:
- mov r2, #0xd
- str r2, [sp]
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _0224CA54
- mov r0, #0x4c
- str r0, [sp]
- add r0, r7, #0
- add r1, r4, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _0224CA54
- mov r0, #6
- lsl r0, r0, #6
- ldr r0, [r4, r0]
- ldr r1, _0224CA60 ; =0x000080FF
- tst r1, r0
- beq _0224CA54
- mov r1, #3
- tst r1, r0
- beq _0224CA38
- mov r5, #0xb
-_0224CA38:
- mov r1, #0xc
- tst r1, r0
- beq _0224CA40
- mov r5, #5
-_0224CA40:
- mov r1, #0x30
- tst r1, r0
- beq _0224CA48
- mov r5, #0xa
-_0224CA48:
- mov r1, #0xc0
- tst r0, r1
- beq _0224CA54
- mov r5, #0xf
- b _0224CA54
-_0224CA52:
- mov r5, #0
-_0224CA54:
- add r0, r5, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0224CA58: .word 0x00000137
-_0224CA5C: .word 0x00002D54
-_0224CA60: .word 0x000080FF
-
- thumb_func_start MOD11_0224CA64
-MOD11_0224CA64: ; 0x0224CA64
- push {r3, r4, r5, lr}
- add r5, r1, #0
- mov r1, #0x69
- mov r0, #5
- lsl r1, r1, #2
- bl AllocFromHeap
- add r4, r0, #0
- mov r2, #0x69
- mov r0, #0
- add r1, r4, #0
- lsl r2, r2, #2
- bl MIi_CpuClearFast
- mov r0, #0x65
- ldrb r1, [r5]
- lsl r0, r0, #2
- strb r1, [r4, r0]
- ldrb r1, [r5, #1]
- add r0, r0, #1
- strb r1, [r4, r0]
- add r0, r4, #0
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224CA94
-MOD11_0224CA94: ; 0x0224CA94
- push {r4, r5, r6, lr}
- sub sp, #0x28
- add r5, r0, #0
- add r4, r1, #0
- add r6, r2, #0
- bl MOD11_0222FF74
- mov r1, #0x22
- lsl r1, r1, #4
- tst r0, r1
- bne _0224CB2C
- sub r1, #0x8b
- ldrb r1, [r4, r1]
- mov r0, #1
- tst r0, r1
- beq _0224CAC0
- add r0, r5, #0
- bl MOD11_0222FF74
- mov r1, #1
- tst r0, r1
- beq _0224CB2C
-_0224CAC0:
- ldr r0, _0224CB30 ; =0x00000195
- ldr r1, _0224CB34 ; =0x0225E818
- ldrb r2, [r4, r0]
- sub r0, r0, #1
- ldrb r1, [r1, r2]
- str r1, [sp]
- mov r1, #5
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp, #8]
- ldrb r0, [r4, r0]
- str r0, [sp, #0xc]
- add r0, r5, #0
- str r6, [sp, #0x10]
- bl MOD11_02230078
- str r0, [sp, #0x1c]
- add r0, r5, #0
- bl MOD11_022300CC
- str r0, [sp, #0x20]
- mov r0, #0
- str r0, [sp, #0x18]
- mov r0, #1
- str r0, [sp, #0x14]
- add r0, sp, #0
- bl MOD08_02229918
- add r1, r4, #0
- add r1, #0x88
- str r0, [r1]
- add r0, r4, #0
- add r0, #0x88
- ldr r0, [r0]
- mov r1, #0x64
- bl MOD08_0222A00C
- add r0, r4, #0
- add r0, #0x88
- ldr r0, [r0]
- mov r1, #2
- bl MOD08_0222A018
- add r0, r4, #0
- add r0, #0x88
- ldr r0, [r0]
- mov r1, #0
- bl MOD08_02229FE4
- add r4, #0x88
- ldr r0, [r4]
- mov r1, #0
- bl MOD08_0222A008
-_0224CB2C:
- add sp, #0x28
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0224CB30: .word 0x00000195
-_0224CB34: .word 0x0225E818
-
- thumb_func_start MOD11_0224CB38
-MOD11_0224CB38: ; 0x0224CB38
- push {r3, lr}
- add r2, r1, #0
- add r2, #0x94
- ldrb r2, [r2]
- cmp r2, #0
- beq _0224CB4C
- lsl r3, r2, #2
- ldr r2, _0224CB50 ; =0x0225E70C
- ldr r2, [r2, r3]
- blx r2
-_0224CB4C:
- pop {r3, pc}
- nop
-_0224CB50: .word 0x0225E70C
-
- thumb_func_start MOD11_0224CB54
-MOD11_0224CB54: ; 0x0224CB54
- push {r4, lr}
- add r4, r1, #0
- cmp r2, #2
- beq _0224CB64
- add r0, r4, #0
- add r0, #0x28
- bl MOD11_02257030
-_0224CB64:
- add r0, r4, #0
- bl MOD11_0225468C
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224CB74
-MOD11_0224CB74: ; 0x0224CB74
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_0224CB78
-MOD11_0224CB78: ; 0x0224CB78
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD11_0224D550
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r4, r1]
- add r0, r5, #0
- mov r2, #1
- bl MOD11_022567B8
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_0224CB98
-MOD11_0224CB98: ; 0x0224CB98
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224D574
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CBAC
-MOD11_0224CBAC: ; 0x0224CBAC
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224D738
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CBC0
-MOD11_0224CBC0: ; 0x0224CBC0
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224D87C
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CBD4
-MOD11_0224CBD4: ; 0x0224CBD4
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224DA2C
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CBE8
-MOD11_0224CBE8: ; 0x0224CBE8
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224DAE8
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CBFC
-MOD11_0224CBFC: ; 0x0224CBFC
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0x20]
- bl FUN_02007534
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r4, r1]
- add r0, r5, #0
- mov r2, #7
- bl MOD11_022567B8
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224CC20
-MOD11_0224CC20: ; 0x0224CC20
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224DB4C
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CC34
-MOD11_0224CC34: ; 0x0224CC34
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224DCE4
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CC48
-MOD11_0224CC48: ; 0x0224CC48
- push {r4, lr}
- add r4, r1, #0
- bl MOD11_0224DD44
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CC58
-MOD11_0224CC58: ; 0x0224CC58
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224DD8C
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CC6C
-MOD11_0224CC6C: ; 0x0224CC6C
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224DE50
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CC80
-MOD11_0224CC80: ; 0x0224CC80
- push {r4, lr}
- add r4, r1, #0
- bl MOD11_0224DF18
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CC90
-MOD11_0224CC90: ; 0x0224CC90
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r6, r4, #0
- add r6, #0x94
- add r1, r6, #0
- add r1, #0x29
- ldrb r1, [r1]
- add r5, r0, #0
- bl MOD11_022312B8
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0224DF60
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224CCB8
-MOD11_0224CCB8: ; 0x0224CCB8
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E034
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CCCC
-MOD11_0224CCCC: ; 0x0224CCCC
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E0A4
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CCE0
-MOD11_0224CCE0: ; 0x0224CCE0
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E130
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CCF4
-MOD11_0224CCF4: ; 0x0224CCF4
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E1DC
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CD08
-MOD11_0224CD08: ; 0x0224CD08
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E248
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CD1C
-MOD11_0224CD1C: ; 0x0224CD1C
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E28C
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CD30
-MOD11_0224CD30: ; 0x0224CD30
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E2F4
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CD44
-MOD11_0224CD44: ; 0x0224CD44
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E344
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CD58
-MOD11_0224CD58: ; 0x0224CD58
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #0x20]
- mov r1, #6
- bl FUN_0200782C
- cmp r0, #1
- bne _0224CD7A
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r4, r1]
- add r0, r5, #0
- mov r2, #0x17
- bl MOD11_022567B8
- b _0224CD82
-_0224CD7A:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0224E3E0
-_0224CD82:
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224CD8C
-MOD11_0224CD8C: ; 0x0224CD8C
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E410
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CDA0
-MOD11_0224CDA0: ; 0x0224CDA0
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E49C
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CDB4
-MOD11_0224CDB4: ; 0x0224CDB4
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E510
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CDC8
-MOD11_0224CDC8: ; 0x0224CDC8
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E5F8
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CDDC
-MOD11_0224CDDC: ; 0x0224CDDC
- push {r4, lr}
- add r4, r1, #0
- bl MOD11_0224E628
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CDEC
-MOD11_0224CDEC: ; 0x0224CDEC
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E65C
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CE00
-MOD11_0224CE00: ; 0x0224CE00
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E6FC
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CE14
-MOD11_0224CE14: ; 0x0224CE14
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E734
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CE28
-MOD11_0224CE28: ; 0x0224CE28
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E790
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CE3C
-MOD11_0224CE3C: ; 0x0224CE3C
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E7E8
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CE50
-MOD11_0224CE50: ; 0x0224CE50
- push {r4, lr}
- add r4, r1, #0
- bl MOD11_0224E840
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CE60
-MOD11_0224CE60: ; 0x0224CE60
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E894
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CE74
-MOD11_0224CE74: ; 0x0224CE74
- push {r4, lr}
- add r4, r1, #0
- bl MOD11_0224E8EC
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CE84
-MOD11_0224CE84: ; 0x0224CE84
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E924
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CE98
-MOD11_0224CE98: ; 0x0224CE98
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224E9C0
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224CEAC
-MOD11_0224CEAC: ; 0x0224CEAC
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r6, r1, #0
- mov r2, #0x65
- add r6, #0x94
- lsl r2, r2, #2
- str r1, [sp, #4]
- ldrb r1, [r1, r2]
- ldrb r2, [r6, #1]
- str r0, [sp]
- lsl r2, r2, #0x1c
- lsr r2, r2, #0x1c
- bl MOD11_02230014
- add r7, r0, #0
- mov r0, #2
- ldr r1, [r6, #0x1c]
- lsl r0, r0, #0x14
- tst r0, r1
- bne _0224CF14
- add r0, r6, #0
- add r5, r6, #0
- str r0, [sp, #8]
- add r0, #0x16
- mov r4, #0
- add r5, #0xe
- str r0, [sp, #8]
-_0224CEE2:
- add r0, r4, #0
- bl MaskOfFlagNo
- ldrb r1, [r6, #1]
- lsl r1, r1, #0x18
- lsr r1, r1, #0x1c
- tst r0, r1
- bne _0224CF0C
- add r1, r4, #0
- add r0, r7, #0
- add r1, #0x36
- add r2, r5, #0
- bl SetMonDataEncrypted
- ldr r2, [sp, #8]
- add r1, r4, #0
- add r0, r7, #0
- add r1, #0x3a
- add r2, r2, r4
- bl SetMonDataEncrypted
-_0224CF0C:
- add r4, r4, #1
- add r5, r5, #2
- cmp r4, #4
- blt _0224CEE2
-_0224CF14:
- ldrb r0, [r6, #1]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1c
- bl MaskOfFlagNo
- ldr r1, [r6, #8]
- tst r0, r1
- bne _0224CF30
- add r2, r6, #0
- add r0, r7, #0
- mov r1, #6
- add r2, #0xc
- bl SetMonDataEncrypted
-_0224CF30:
- add r0, r7, #0
- mov r1, #0xa2
- add r2, r6, #2
- bl SetMonDataEncrypted
- add r0, r7, #0
- mov r1, #0x9f
- add r2, r6, #4
- bl SetMonDataEncrypted
- mov r2, #0x65
- ldr r1, [sp, #4]
- lsl r2, r2, #2
- ldrb r1, [r1, r2]
- ldrb r2, [r6]
- ldr r0, [sp]
- bl MOD11_022567B8
- ldr r0, [sp, #4]
- bl MOD11_0224D548
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224CF60
-MOD11_0224CF60: ; 0x0224CF60
- push {r4, r5, r6, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD11_0222FF74
- add r6, r0, #0
- add r0, r5, #0
- bl MOD11_02230094
- ldr r2, _0224CFB0 ; =0x00000196
- ldrb r1, [r4, r2]
- cmp r1, #0
- bne _0224CF94
- mov r1, #8
- and r1, r6
- bne _0224CF8C
- cmp r1, #0
- bne _0224CF94
- sub r1, r2, #1
- ldrb r1, [r4, r1]
- cmp r1, #4
- beq _0224CF94
-_0224CF8C:
- ldr r1, _0224CFB4 ; =0xFFFFF300
- mov r2, #0
- bl MOD11_02259098
-_0224CF94:
- mov r1, #0x65
- add r2, r4, #0
- lsl r1, r1, #2
- add r2, #0x94
- ldrb r1, [r4, r1]
- ldrb r2, [r2]
- add r0, r5, #0
- bl MOD11_022567B8
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, r5, r6, pc}
- nop
-_0224CFB0: .word 0x00000196
-_0224CFB4: .word 0xFFFFF300
-
- thumb_func_start MOD11_0224CFB8
-MOD11_0224CFB8: ; 0x0224CFB8
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- add r0, #0x28
- bl MOD11_02257238
- add r0, r4, #0
- bl MOD11_0225468C
- mov r1, #0x65
- add r2, r4, #0
- lsl r1, r1, #2
- add r2, #0x94
- ldrb r1, [r4, r1]
- ldrb r2, [r2]
- add r0, r5, #0
- bl MOD11_022567B8
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224CFE8
-MOD11_0224CFE8: ; 0x0224CFE8
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r7, r1, #0
- mov r1, #0
- str r1, [sp, #8]
- mov r1, #0x65
- lsl r1, r1, #2
- add r4, r7, #0
- ldrb r1, [r7, r1]
- str r0, [sp]
- add r4, #0x94
- bl MOD11_0222FFC8
- mov r5, #0
- str r0, [sp, #4]
- cmp r0, #0
- ble _0224D04A
-_0224D00A:
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r7, r1]
- ldr r0, [sp]
- add r2, r5, #0
- bl MOD11_02230014
- ldrb r1, [r4, #1]
- add r6, r0, #0
- cmp r1, #0x68
- bne _0224D024
- mov r0, #0
- b _0224D02C
-_0224D024:
- mov r1, #0xa
- mov r2, #0
- bl GetMonDataEncrypted
-_0224D02C:
- ldrh r1, [r4, #2]
- cmp r1, #0xd7
- bne _0224D038
- bne _0224D042
- cmp r0, #0x2b
- beq _0224D042
-_0224D038:
- add r0, r6, #0
- mov r1, #0x9f
- add r2, sp, #8
- bl SetMonDataEncrypted
-_0224D042:
- ldr r0, [sp, #4]
- add r5, r5, #1
- cmp r5, r0
- blt _0224D00A
-_0224D04A:
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r7, r1]
- ldrb r2, [r4]
- ldr r0, [sp]
- bl MOD11_022567B8
- add r0, r7, #0
- bl MOD11_0224D548
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224D064
-MOD11_0224D064: ; 0x0224D064
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224EA74
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224D078
-MOD11_0224D078: ; 0x0224D078
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224EAAC
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224D08C
-MOD11_0224D08C: ; 0x0224D08C
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- str r0, [sp, #0x10]
- add r5, r1, #0
- ldr r0, _0224D180 ; =0x00000195
- add r4, r5, #0
- ldrb r1, [r5, r0]
- mov r0, #1
- add r4, #0x94
- tst r0, r1
- beq _0224D0A6
- mov r6, #2
- b _0224D0A8
-_0224D0A6:
- mov r6, #0
-_0224D0A8:
- ldrb r0, [r4, #5]
- lsl r3, r6, #0x18
- lsr r3, r3, #0x18
- str r0, [sp]
- ldrb r0, [r4, #1]
- str r0, [sp, #4]
- ldr r0, [r4, #8]
- str r0, [sp, #8]
- ldrh r1, [r4, #2]
- ldrb r2, [r4, #4]
- add r0, sp, #0x14
- bl FUN_02068C00
- ldr r0, [r5, #0x20]
- bl FUN_020081C0
- add r7, r0, #0
- add r3, sp, #0x14
- add r2, r7, #0
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldr r0, [r5, #0x20]
- bl FUN_020080D0
- ldr r0, [sp, #0x10]
- bl MOD11_02230130
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r5, r1]
- bl MOD11_022312DC
- add r3, r0, #0
- ldr r0, [r4, #8]
- mov r2, #5
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- str r6, [sp, #8]
- ldrh r0, [r7, #6]
- str r0, [sp, #0xc]
- ldrh r0, [r7]
- ldrh r1, [r7, #2]
- bl FUN_02012560
- ldr r0, [sp, #0x10]
- bl MOD11_02230130
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r5, r1]
- ldrh r2, [r7]
- bl MOD11_022312F0
- ldr r0, [sp, #0x10]
- bl MOD11_02230130
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r5, r1]
- ldrh r2, [r7, #4]
- bl MOD11_02231308
- ldr r0, [r4, #8]
- lsl r2, r6, #0x18
- str r0, [sp]
- ldrh r0, [r4, #2]
- ldrb r1, [r4, #4]
- ldrb r3, [r4, #1]
- lsr r2, r2, #0x18
- bl FUN_02068E88
- add r6, r0, #0
- ldr r0, [sp, #0x10]
- bl MOD11_02230130
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r5, r1]
- add r2, r6, #0
- bl MOD11_02231320
- ldr r0, _0224D180 ; =0x00000195
- mov r1, #1
- ldrb r0, [r5, r0]
- bl MOD08_0222A6A4
- add r2, r0, #0
- ldr r0, [r5, #0x20]
- mov r1, #1
- add r2, r6, r2
- bl FUN_02007558
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r5, r1]
- ldrb r2, [r4]
- ldr r0, [sp, #0x10]
- bl MOD11_022567B8
- add r0, r5, #0
- bl MOD11_0224D548
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- nop
-_0224D180: .word 0x00000195
-
- thumb_func_start MOD11_0224D184
-MOD11_0224D184: ; 0x0224D184
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD11_02230FCC
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r4, r1]
- add r0, r5, #0
- mov r2, #0x2e
- bl MOD11_022567B8
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_0224D1A4
-MOD11_0224D1A4: ; 0x0224D1A4
- push {r4, r5, r6, lr}
- add r4, r1, #0
- ldr r1, _0224D218 ; =0x00000196
- add r5, r0, #0
- ldrb r1, [r4, r1]
- cmp r1, #0
- bne _0224D200
- bl MOD11_02230094
- mov r1, #0
- add r6, r0, #0
- add r2, r1, #0
- add r3, r1, #0
- bl MOD11_02258820
- add r0, r6, #0
- mov r1, #0
- bl MOD11_0225B77C
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r4, r1]
- add r0, r5, #0
- bl MOD11_022302BC
- add r1, r0, #0
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r4, r0]
- cmp r1, r0
- beq _0224D1EC
- add r0, r5, #0
- bl MOD11_02231380
- bl MOD11_02258184
-_0224D1EC:
- add r0, r4, #0
- add r0, #0x28
- bl MOD11_02257238
- add r0, r6, #0
- bl MOD11_02258E30
- add r0, r4, #0
- bl MOD11_0225468C
-_0224D200:
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r4, r1]
- add r0, r5, #0
- mov r2, #0x2f
- bl MOD11_022567B8
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, r5, r6, pc}
- nop
-_0224D218: .word 0x00000196
-
- thumb_func_start MOD11_0224D21C
-MOD11_0224D21C: ; 0x0224D21C
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224EAEC
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224D230
-MOD11_0224D230: ; 0x0224D230
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224EB34
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224D244
-MOD11_0224D244: ; 0x0224D244
- push {r4, r5, r6, lr}
- add r4, r1, #0
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r4, r1]
- add r6, r4, #0
- add r5, r0, #0
- add r6, #0x94
- bl MOD11_02230270
- cmp r0, #0
- beq _0224D268
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0224EB6C
- b _0224D276
-_0224D268:
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r4, r1]
- add r0, r5, #0
- mov r2, #0x32
- bl MOD11_022567B8
-_0224D276:
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224D280
-MOD11_0224D280: ; 0x0224D280
- push {r4, r5, r6, lr}
- add r4, r1, #0
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r4, r1]
- add r6, r4, #0
- add r5, r0, #0
- add r6, #0x94
- bl MOD11_02230270
- cmp r0, #0
- beq _0224D2A4
- add r0, r5, #0
- add r1, r4, #0
- add r2, r6, #0
- bl MOD11_0224EBB8
- b _0224D2B2
-_0224D2A4:
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r4, r1]
- add r0, r5, #0
- mov r2, #0x33
- bl MOD11_022567B8
-_0224D2B2:
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224D2BC
-MOD11_0224D2BC: ; 0x0224D2BC
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD11_02230078
- add r6, r0, #0
- add r0, r5, #0
- bl MOD11_02230080
- add r7, r0, #0
- add r0, r5, #0
- bl MOD11_022300CC
- add r2, r0, #0
- add r0, r6, #0
- add r1, r7, #0
- bl MOD11_0225C91C
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r4, r1]
- add r0, r5, #0
- mov r2, #0x34
- bl MOD11_022567B8
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224D2F8
-MOD11_0224D2F8: ; 0x0224D2F8
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD11_02230080
- bl MOD11_0225C9A0
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r4, r1]
- add r0, r5, #0
- mov r2, #0x35
- bl MOD11_022567B8
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_0224D31C
-MOD11_0224D31C: ; 0x0224D31C
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r4, r5, #0
- add r4, #0x94
- ldrb r1, [r4, #1]
- add r6, r0, #0
- cmp r1, #0
- ldr r1, _0224D360 ; =0x00000196
- bne _0224D33C
- ldrb r1, [r5, r1]
- cmp r1, #0
- bne _0224D348
- ldrh r1, [r4, #2]
- bl MOD11_0223128C
- b _0224D348
-_0224D33C:
- ldrb r1, [r5, r1]
- cmp r1, #0
- beq _0224D348
- ldrh r1, [r4, #2]
- bl MOD11_0223128C
-_0224D348:
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r5, r1]
- ldrb r2, [r4]
- add r0, r6, #0
- bl MOD11_022567B8
- add r0, r5, #0
- bl MOD11_0224D548
- pop {r4, r5, r6, pc}
- nop
-_0224D360: .word 0x00000196
-
- thumb_func_start MOD11_0224D364
-MOD11_0224D364: ; 0x0224D364
- push {r4, lr}
- add r4, r1, #0
- bl MOD11_0224EBF4
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224D374
-MOD11_0224D374: ; 0x0224D374
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224EC4C
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224D388
-MOD11_0224D388: ; 0x0224D388
- push {r4, lr}
- add r4, r1, #0
- bl MOD11_0224EC80
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224D398
-MOD11_0224D398: ; 0x0224D398
- push {r4, lr}
- add r4, r1, #0
- bl MOD11_0224ECB8
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224D3A8
-MOD11_0224D3A8: ; 0x0224D3A8
- push {r4, lr}
- add r4, r1, #0
- bl MOD11_0224ECF0
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224D3B8
-MOD11_0224D3B8: ; 0x0224D3B8
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224ED44
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224D3CC
-MOD11_0224D3CC: ; 0x0224D3CC
- push {r4, lr}
- add r4, r1, #0
- bl MOD11_0224ED98
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224D3DC
-MOD11_0224D3DC: ; 0x0224D3DC
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224EDEC
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224D3F0
-MOD11_0224D3F0: ; 0x0224D3F0
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224EE20
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224D404
-MOD11_0224D404: ; 0x0224D404
- push {r4, lr}
- add r4, r1, #0
- add r2, r4, #0
- add r2, #0x94
- bl MOD11_0224EE80
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, pc}
-
- thumb_func_start MOD11_0224D418
-MOD11_0224D418: ; 0x0224D418
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- mov r7, #0
- str r1, [sp, #4]
- str r1, [sp, #0x10]
- add r1, #0x94
- str r0, [sp]
- str r1, [sp, #0x10]
- str r7, [sp, #8]
- bl MOD11_0222FF74
- mov r1, #0x80
- tst r0, r1
- beq _0224D444
- ldr r1, [sp, #0x10]
- ldr r0, [sp]
- ldr r1, [r1, #4]
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- bl MOD11_02231468
- b _0224D4FC
-_0224D444:
- add r0, r7, #0
- str r0, [sp, #0xc]
- ldr r0, [sp]
- bl MOD11_0222FF84
- cmp r0, #0
- ble _0224D4D2
-_0224D452:
- ldr r0, [sp]
- ldr r1, [sp, #0xc]
- bl MOD11_0222FF88
- add r6, r0, #0
- mov r5, #0
- bl FUN_0206B9AC
- cmp r0, #0
- ble _0224D4C0
-_0224D466:
- add r0, r6, #0
- add r1, r5, #0
- bl FUN_0206B9B0
- mov r1, #5
- mov r2, #0
- add r4, r0, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _0224D4B4
- add r0, r4, #0
- mov r1, #0x4c
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- bne _0224D4B4
- ldr r0, [sp]
- ldr r1, [sp, #0xc]
- bl MOD11_02230270
- cmp r0, #0
- beq _0224D4A8
- add r0, r4, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- ldr r1, [sp, #8]
- add r0, r1, r0
- str r0, [sp, #8]
- b _0224D4B4
-_0224D4A8:
- add r0, r4, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- add r7, r7, r0
-_0224D4B4:
- add r0, r6, #0
- add r5, r5, #1
- bl FUN_0206B9AC
- cmp r5, r0
- blt _0224D466
-_0224D4C0:
- ldr r0, [sp, #0xc]
- add r0, r0, #1
- str r0, [sp, #0xc]
- ldr r0, [sp]
- bl MOD11_0222FF84
- ldr r1, [sp, #0xc]
- cmp r1, r0
- blt _0224D452
-_0224D4D2:
- cmp r7, #0
- bne _0224D4E6
- ldr r0, [sp, #8]
- cmp r0, #0
- bne _0224D4E6
- ldr r0, [sp]
- mov r1, #3
- bl MOD11_02231468
- b _0224D4FC
-_0224D4E6:
- cmp r7, #0
- bne _0224D4F4
- ldr r0, [sp]
- mov r1, #2
- bl MOD11_02231468
- b _0224D4FC
-_0224D4F4:
- ldr r0, [sp]
- mov r1, #1
- bl MOD11_02231468
-_0224D4FC:
- mov r2, #0x65
- ldr r1, [sp, #4]
- lsl r2, r2, #2
- ldrb r1, [r1, r2]
- ldr r2, [sp, #0x10]
- ldr r0, [sp]
- ldrb r2, [r2]
- bl MOD11_022567B8
- ldr r0, [sp, #4]
- bl MOD11_0224D548
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0224D518
-MOD11_0224D518: ; 0x0224D518
- push {r4, r5, r6, lr}
- add r4, r1, #0
- mov r1, #0
- add r5, r0, #0
- bl MOD11_0222FF6C
- add r6, r0, #0
- mov r1, #0xff
- bl FUN_02019620
- add r0, r6, #0
- bl FUN_02019548
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r4, r1]
- add r0, r5, #0
- mov r2, #0x42
- bl MOD11_022567B8
- add r0, r4, #0
- bl MOD11_0224D548
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_0224D548
-MOD11_0224D548: ; 0x0224D548
- mov r1, #0
- add r0, #0x94
- strb r1, [r0]
- bx lr
-
- thumb_func_start MOD11_0224D550
-MOD11_0224D550: ; 0x0224D550
- push {r4, lr}
- add r4, r0, #0
- mov r0, #5
- mov r1, #0x18
- bl AllocFromHeap
- add r1, r0, #0
- str r4, [r1]
- mov r2, #0
- strb r2, [r1, #0x14]
- ldr r0, _0224D570 ; =MOD11_022530A0
- strb r2, [r1, #0x15]
- bl FUN_0200CA44
- pop {r4, pc}
- nop
-_0224D570: .word MOD11_022530A0
-
- thumb_func_start MOD11_0224D574
-MOD11_0224D574: ; 0x0224D574
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x58
- str r0, [sp, #0x24]
- add r6, r1, #0
- add r5, r2, #0
- bl MOD11_02230068
- str r0, [sp, #0x28]
- ldr r0, [sp, #0x24]
- bl MOD11_0222FF74
- mov r0, #5
- mov r1, #0x2c
- bl AllocFromHeap
- add r4, r0, #0
- mov r2, #0
- ldr r0, _0224D720 ; =0x00000195
- strb r2, [r4, #0x12]
- ldrb r0, [r6, r0]
- mov r1, #1
- tst r0, r1
- beq _0224D5CA
- mov r0, #2
- strb r0, [r4, #0x13]
- ldr r0, [sp, #0x24]
- bl MOD11_02230088
- str r0, [r4, #0xc]
- ldr r1, _0224D720 ; =0x00000195
- ldr r0, [r0]
- ldrb r2, [r6, r1]
- mov r1, #1
- and r2, r1
- add r3, r2, #0
- mov r1, #6
- mul r3, r1
- ldr r1, _0224D724 ; =0x0222D550
- mov r2, #0x58
- ldrsh r1, [r1, r3]
- bl FUN_0200C714
- b _0224D5F0
-_0224D5CA:
- ldr r0, [sp, #0x24]
- add r1, r2, #0
- strb r2, [r4, #0x13]
- bl MOD11_02230088
- str r0, [r4, #0xc]
- ldr r1, _0224D720 ; =0x00000195
- ldr r0, [r0]
- ldrb r2, [r6, r1]
- mov r1, #1
- and r2, r1
- add r3, r2, #0
- mov r1, #6
- mul r3, r1
- ldr r1, _0224D724 ; =0x0222D550
- mov r2, #0x88
- ldrsh r1, [r1, r3]
- bl FUN_0200C714
-_0224D5F0:
- ldrb r0, [r5, #1]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1f
- beq _0224D5FC
- mov r0, #1
- b _0224D5FE
-_0224D5FC:
- mov r0, #0
-_0224D5FE:
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp]
- ldrb r0, [r5, #1]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1b
- str r0, [sp, #4]
- ldr r0, [r5, #4]
- str r0, [sp, #8]
- ldrb r2, [r5, #1]
- ldrh r1, [r5, #2]
- ldrb r3, [r4, #0x13]
- lsl r2, r2, #0x1e
- add r0, sp, #0x48
- lsr r2, r2, #0x1e
- bl FUN_02068C00
- ldr r0, [r5, #4]
- str r0, [sp]
- ldrb r3, [r5, #1]
- ldrh r0, [r5, #2]
- ldrb r2, [r4, #0x13]
- lsl r1, r3, #0x1e
- lsl r3, r3, #0x18
- lsr r1, r1, #0x1e
- lsr r3, r3, #0x1b
- bl FUN_02068E88
- str r0, [sp, #0x2c]
- mov r0, #1
- str r0, [sp]
- add r0, sp, #0x30
- ldrh r3, [r5, #2]
- add r0, #2
- mov r1, #0x8a
- mov r2, #0
- bl ReadFromNarcMemberByIdPair
- mov r0, #1
- str r0, [sp]
- add r0, sp, #0x30
- ldrh r3, [r5, #2]
- add r0, #1
- mov r1, #0x90
- mov r2, #0
- bl ReadFromNarcMemberByIdPair
- mov r0, #1
- str r0, [sp]
- ldrh r3, [r5, #2]
- add r0, sp, #0x30
- mov r1, #0x8e
- mov r2, #0
- bl ReadFromNarcMemberByIdPair
- add r0, sp, #0x30
- ldrh r1, [r5, #2]
- add r0, #3
- bl FUN_02069010
- ldr r1, _0224D720 ; =0x00000195
- mov r0, #6
- ldrb r2, [r6, r1]
- ldr r3, _0224D724 ; =0x0222D550
- add r7, r2, #0
- mul r7, r0
- ldr r0, _0224D728 ; =0x0222D552
- mov r2, #2
- ldrsh r0, [r0, r7]
- ldrsh r3, [r3, r7]
- str r0, [sp]
- ldr r0, _0224D72C ; =0x0222D554
- ldrsh r0, [r0, r7]
- str r0, [sp, #4]
- ldr r0, [sp, #0x2c]
- str r0, [sp, #8]
- add r0, sp, #0x30
- ldrsb r2, [r0, r2]
- str r2, [sp, #0xc]
- mov r2, #1
- ldrsb r2, [r0, r2]
- str r2, [sp, #0x10]
- ldrb r0, [r0]
- add r2, sp, #0x48
- str r0, [sp, #0x14]
- sub r0, r1, #1
- ldrb r0, [r6, r0]
- ldr r1, [sp, #0x28]
- str r0, [sp, #0x18]
- add r0, sp, #0x30
- add r0, #3
- str r0, [sp, #0x1c]
- mov r0, #0
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x24]
- bl MOD11_02253A88
- str r0, [r6, #0x20]
- str r0, [r4, #8]
- ldrb r0, [r4, #0x13]
- cmp r0, #2
- bne _0224D6D8
- mov r3, #0
- str r3, [sp]
- mov r1, #8
- ldr r0, [r4, #8]
- add r2, r1, #0
- bl FUN_02007E68
-_0224D6D8:
- ldr r1, _0224D720 ; =0x00000195
- ldrb r0, [r6, r1]
- lsl r2, r0, #2
- ldr r0, _0224D730 ; =0x0222D538
- ldrsh r0, [r0, r2]
- strh r0, [r4, #0x14]
- ldr r0, [sp, #0x24]
- str r0, [r4]
- str r6, [r4, #4]
- ldrb r0, [r5]
- strb r0, [r4, #0x10]
- sub r0, r1, #1
- ldrb r0, [r6, r0]
- strb r0, [r4, #0x11]
- ldrh r0, [r5, #2]
- strh r0, [r4, #0x16]
- ldr r0, [r5, #8]
- str r0, [r4, #0x18]
- ldrb r0, [r6, r1]
- str r0, [r4, #0x1c]
- ldr r0, [r5, #4]
- bl GetNatureFromPersonality
- str r0, [r4, #0x24]
- ldrb r0, [r5, #1]
- add r1, r4, #0
- mov r2, #0
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1f
- str r0, [r4, #0x28]
- ldr r0, _0224D734 ; =MOD11_0224EEA0
- bl FUN_0200CA44
- add sp, #0x58
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0224D720: .word 0x00000195
-_0224D724: .word 0x0222D550
-_0224D728: .word 0x0222D552
-_0224D72C: .word 0x0222D554
-_0224D730: .word 0x0222D538
-_0224D734: .word MOD11_0224EEA0
-
- thumb_func_start MOD11_0224D738
-MOD11_0224D738: ; 0x0224D738
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r7, r0, #0
- add r6, r1, #0
- add r5, r2, #0
- bl MOD11_0222FF74
- mov r0, #5
- mov r1, #0x9c
- bl AllocFromHeap
- add r4, r0, #0
- ldr r0, _0224D874 ; =0x00000195
- ldrb r1, [r6, r0]
- mov r0, #1
- tst r0, r1
- beq _0224D75E
- mov r1, #2
- b _0224D760
-_0224D75E:
- mov r1, #0
-_0224D760:
- add r0, r4, #0
- add r0, #0x84
- strb r1, [r0]
- ldrb r0, [r5, #1]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1f
- beq _0224D772
- mov r0, #1
- b _0224D774
-_0224D772:
- mov r0, #0
-_0224D774:
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp]
- ldrb r0, [r5, #1]
- add r3, r4, #0
- add r3, #0x84
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1b
- str r0, [sp, #4]
- ldr r0, [r5, #4]
- str r0, [sp, #8]
- ldrb r2, [r5, #1]
- add r0, r4, #0
- ldrh r1, [r5, #2]
- lsl r2, r2, #0x1e
- ldrb r3, [r3]
- add r0, #0x14
- lsr r2, r2, #0x1e
- bl FUN_02068C00
- ldr r0, [r5, #4]
- add r2, r4, #0
- str r0, [sp]
- ldrb r3, [r5, #1]
- add r2, #0x84
- ldrh r0, [r5, #2]
- lsl r1, r3, #0x1e
- lsl r3, r3, #0x18
- ldrb r2, [r2]
- lsr r1, r1, #0x1e
- lsr r3, r3, #0x1b
- bl FUN_02068E88
- add r1, r4, #0
- add r1, #0x85
- strb r0, [r1]
- mov r0, #1
- str r0, [sp]
- add r0, r4, #0
- ldrh r3, [r5, #2]
- add r0, #0x90
- mov r1, #0x8a
- mov r2, #0
- bl ReadFromNarcMemberByIdPair
- mov r0, #1
- str r0, [sp]
- add r0, r4, #0
- ldrh r3, [r5, #2]
- add r0, #0x91
- mov r1, #0x90
- mov r2, #0
- bl ReadFromNarcMemberByIdPair
- mov r0, #1
- str r0, [sp]
- add r0, r4, #0
- ldrh r3, [r5, #2]
- add r0, #0x93
- mov r1, #0x8e
- mov r2, #0
- bl ReadFromNarcMemberByIdPair
- add r0, r6, #0
- bl MOD11_02253A78
- str r7, [r4]
- add r0, r4, #0
- str r6, [r4, #4]
- mov r1, #0
- add r0, #0x83
- strb r1, [r0]
- add r0, r4, #0
- add r0, #0x96
- strb r1, [r0]
- add r0, r4, #0
- ldrb r1, [r5]
- add r0, #0x80
- strb r1, [r0]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r2, [r6, r0]
- add r1, r4, #0
- add r1, #0x81
- strb r2, [r1]
- add r1, r4, #0
- ldrh r2, [r5, #2]
- add r1, #0x86
- add r0, r0, #1
- strh r2, [r1]
- ldrb r1, [r6, r0]
- add r0, r4, #0
- add r0, #0x82
- strb r1, [r0]
- add r0, r4, #0
- ldr r1, [r5, #8]
- add r0, #0x88
- str r1, [r0]
- add r0, r4, #0
- ldr r1, [r5, #0xc]
- add r0, #0x8c
- strb r1, [r0]
- ldr r0, [r5, #4]
- bl GetNatureFromPersonality
- add r1, r4, #0
- add r1, #0x8d
- strb r0, [r1]
- add r0, r4, #0
- ldr r1, [r5, #0x10]
- add r0, #0x8e
- strh r1, [r0]
- ldrb r0, [r5, #1]
- lsl r0, r0, #0x1d
- lsr r1, r0, #0x1f
- add r0, r4, #0
- add r0, #0x92
- strb r1, [r0]
- add r0, r4, #0
- mov r2, #0
- add r0, #0x94
- strh r2, [r0]
- ldr r0, _0224D878 ; =MOD11_0224F2DC
- add r1, r4, #0
- bl FUN_0200CA44
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0224D874: .word 0x00000195
-_0224D878: .word MOD11_0224F2DC
-
- thumb_func_start MOD11_0224D87C
-MOD11_0224D87C: ; 0x0224D87C
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- add r7, r0, #0
- add r6, r1, #0
- add r4, r2, #0
- bl MOD11_0222FF74
- mov r0, #5
- mov r1, #0x9c
- bl AllocFromHeap
- add r5, r0, #0
- add r1, r5, #0
- mov r0, #0
- add r1, #0x83
- strb r0, [r1]
- ldr r1, _0224DA24 ; =0x00000195
- ldrb r2, [r6, r1]
- mov r1, #1
- tst r1, r2
- beq _0224D8B0
- add r0, r5, #0
- mov r1, #2
- add r0, #0x84
- strb r1, [r0]
- b _0224D8B6
-_0224D8B0:
- add r1, r5, #0
- add r1, #0x84
- strb r0, [r1]
-_0224D8B6:
- ldrb r0, [r4, #1]
- lsl r0, r0, #0x1d
- lsr r0, r0, #0x1f
- beq _0224D8C2
- mov r0, #1
- b _0224D8C4
-_0224D8C2:
- mov r0, #0
-_0224D8C4:
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp]
- ldrb r0, [r4, #1]
- add r3, r5, #0
- add r3, #0x84
- lsl r0, r0, #0x18
- lsr r0, r0, #0x1b
- str r0, [sp, #4]
- ldr r0, [r4, #4]
- str r0, [sp, #8]
- ldrb r2, [r4, #1]
- add r0, r5, #0
- ldrh r1, [r4, #2]
- lsl r2, r2, #0x1e
- ldrb r3, [r3]
- add r0, #0x14
- lsr r2, r2, #0x1e
- bl FUN_02068C00
- ldr r0, [r4, #4]
- add r2, r5, #0
- str r0, [sp]
- ldrb r3, [r4, #1]
- add r2, #0x84
- ldrh r0, [r4, #2]
- lsl r1, r3, #0x1e
- lsl r3, r3, #0x18
- ldrb r2, [r2]
- lsr r1, r1, #0x1e
- lsr r3, r3, #0x1b
- bl FUN_02068E88
- add r1, r5, #0
- add r1, #0x85
- strb r0, [r1]
- mov r0, #1
- str r0, [sp]
- add r0, r5, #0
- ldrh r3, [r4, #2]
- add r0, #0x90
- mov r1, #0x8a
- mov r2, #0
- bl ReadFromNarcMemberByIdPair
- mov r0, #1
- str r0, [sp]
- add r0, r5, #0
- ldrh r3, [r4, #2]
- add r0, #0x91
- mov r1, #0x90
- mov r2, #0
- bl ReadFromNarcMemberByIdPair
- mov r0, #1
- str r0, [sp]
- add r0, r5, #0
- ldrh r3, [r4, #2]
- add r0, #0x93
- mov r1, #0x8e
- mov r2, #0
- bl ReadFromNarcMemberByIdPair
- add r0, r6, #0
- bl MOD11_02253A78
- str r7, [r5]
- str r6, [r5, #4]
- add r0, r5, #0
- ldrb r1, [r4]
- add r0, #0x80
- strb r1, [r0]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r2, [r6, r0]
- add r1, r5, #0
- add r1, #0x81
- strb r2, [r1]
- add r1, r5, #0
- ldrh r2, [r4, #2]
- add r1, #0x86
- add r0, r0, #1
- strh r2, [r1]
- ldrb r1, [r6, r0]
- add r0, r5, #0
- add r0, #0x82
- strb r1, [r0]
- add r0, r5, #0
- ldr r1, [r4, #8]
- add r0, #0x88
- str r1, [r0]
- add r0, r5, #0
- ldr r1, [r4, #0xc]
- add r0, #0x8c
- strb r1, [r0]
- ldr r0, [r4, #4]
- bl GetNatureFromPersonality
- add r1, r5, #0
- add r1, #0x8d
- strb r0, [r1]
- add r0, r5, #0
- ldr r1, [r4, #0x10]
- add r0, #0x8e
- strh r1, [r0]
- ldrb r0, [r4, #1]
- lsl r0, r0, #0x1d
- lsr r1, r0, #0x1f
- add r0, r5, #0
- add r0, #0x92
- strb r1, [r0]
- add r0, r5, #0
- ldr r1, [r4, #0x14]
- add r0, #0x94
- strh r1, [r0]
- add r0, r5, #0
- mov r1, #0
- add r0, #0x96
- strb r1, [r0]
- add r0, r5, #0
- ldr r2, [r4, #0x4c]
- add r0, #0x98
- str r2, [r0]
- str r4, [sp, #0x18]
- add r7, r5, #0
- add r2, r4, #0
- add r3, r5, #0
-_0224D9C2:
- ldr r0, [sp, #0x18]
- add r0, #0x50
- ldrh r6, [r0]
- add r0, r7, #0
- add r0, #0x40
- strh r6, [r0]
- add r0, r4, r1
- add r0, #0x58
- ldrb r6, [r0]
- add r0, r5, r1
- str r0, [sp, #0x14]
- add r0, #0x48
- str r0, [sp, #0x14]
- strb r6, [r0]
- add r0, r4, r1
- add r0, #0x5c
- ldrb r6, [r0]
- add r0, r5, r1
- str r0, [sp, #0x10]
- add r0, #0x4c
- str r0, [sp, #0x10]
- strb r6, [r0]
- add r0, r4, r1
- add r0, #0x60
- ldrb r6, [r0]
- add r0, r5, r1
- str r0, [sp, #0xc]
- add r0, #0x50
- str r0, [sp, #0xc]
- strb r6, [r0]
- ldr r0, [r2, #0x64]
- add r1, r1, #1
- str r0, [r3, #0x54]
- ldr r0, [sp, #0x18]
- add r7, r7, #2
- add r0, r0, #2
- str r0, [sp, #0x18]
- add r2, r2, #4
- add r3, r3, #4
- cmp r1, #4
- blt _0224D9C2
- ldr r0, _0224DA28 ; =MOD11_0224F7C4
- add r1, r5, #0
- mov r2, #0
- bl FUN_0200CA44
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- nop
-_0224DA24: .word 0x00000195
-_0224DA28: .word MOD11_0224F7C4
-
- thumb_func_start MOD11_0224DA2C
-MOD11_0224DA2C: ; 0x0224DA2C
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r5, r0, #0
- add r4, r1, #0
- mov r0, #5
- mov r1, #0x74
- str r2, [sp]
- bl AllocFromHeap
- add r2, r0, #0
- str r5, [r2]
- str r4, [r2, #4]
- ldr r0, [r4, #0x20]
- add r7, r2, #0
- str r0, [r2, #8]
- ldr r0, [sp]
- add r5, r2, #0
- ldrb r1, [r0]
- add r0, r2, #0
- add r0, #0x68
- strb r1, [r0]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r3, [r4, r0]
- add r1, r2, #0
- add r1, #0x69
- add r0, r0, #1
- strb r3, [r1]
- ldrb r1, [r4, r0]
- add r0, r2, #0
- add r0, #0x6a
- strb r1, [r0]
- add r0, r2, #0
- mov r1, #0
- add r0, #0x6b
- strb r1, [r0]
- ldr r0, [sp]
- ldrb r3, [r0, #1]
- add r0, r2, #0
- add r0, #0x6c
- strb r3, [r0]
- ldr r0, [sp]
- ldrh r3, [r0, #2]
- add r0, r2, #0
- add r0, #0x6e
- strh r3, [r0]
- ldr r0, [sp]
- ldr r3, [sp]
- ldr r0, [r0, #4]
- add r4, r3, #0
- str r0, [r2, #0x70]
-_0224DA92:
- ldrh r0, [r3, #8]
- add r3, r3, #2
- strh r0, [r7, #0x28]
- ldr r0, [sp]
- add r7, r7, #2
- add r0, r0, r1
- str r0, [sp, #0x10]
- ldrb r0, [r0, #0x10]
- str r0, [sp, #8]
- add r0, r2, r1
- ldr r6, [sp, #8]
- add r0, #0x30
- strb r6, [r0]
- ldr r0, [sp, #0x10]
- add r6, r2, r1
- ldrb r0, [r0, #0x14]
- str r6, [sp, #4]
- add r6, #0x34
- str r0, [sp, #0xc]
- strb r0, [r6]
- ldr r0, [sp, #0x10]
- str r6, [sp, #4]
- add r6, r2, r1
- ldrb r0, [r0, #0x18]
- add r6, #0x38
- add r1, r1, #1
- strb r0, [r6]
- ldr r0, [r4, #0x1c]
- add r4, r4, #4
- str r0, [r5, #0x3c]
- add r5, r5, #4
- cmp r1, #4
- blt _0224DA92
- ldr r0, _0224DAE4 ; =MOD11_0224FD90
- add r1, r2, #0
- mov r2, #0
- bl FUN_0200CA44
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- nop
-_0224DAE4: .word MOD11_0224FD90
-
- thumb_func_start MOD11_0224DAE8
-MOD11_0224DAE8: ; 0x0224DAE8
- push {r3, r4, r5, r6, r7, lr}
- add r7, r0, #0
- add r5, r1, #0
- mov r0, #5
- mov r1, #0x10
- add r6, r2, #0
- bl AllocFromHeap
- add r4, r0, #0
- str r7, [r4]
- ldr r0, [r5, #0x20]
- str r0, [r4, #4]
- ldrb r0, [r6]
- strb r0, [r4, #8]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r1, [r5, r0]
- add r0, r0, #1
- strb r1, [r4, #9]
- ldrb r0, [r5, r0]
- mov r1, #0
- add r3, r1, #0
- strb r0, [r4, #0xa]
- strb r1, [r4, #0xb]
- ldrb r0, [r6, #1]
- strb r0, [r4, #0xc]
- ldrh r0, [r6, #2]
- lsl r2, r0, #1
- ldr r0, _0224DB44 ; =0x0225E84A
- ldrh r0, [r0, r2]
- mov r2, #0x10
- str r0, [sp]
- ldr r0, [r4, #4]
- bl FUN_02007E68
- ldr r0, [r4, #4]
- mov r1, #0x2d
- mov r2, #1
- bl FUN_02007558
- ldr r0, _0224DB48 ; =MOD11_0224FFF0
- add r1, r4, #0
- mov r2, #0
- bl FUN_0200CA44
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0224DB44: .word 0x0225E84A
-_0224DB48: .word MOD11_0224FFF0
-
- thumb_func_start MOD11_0224DB4C
-MOD11_0224DB4C: ; 0x0224DB4C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x40
- add r6, r0, #0
- add r5, r1, #0
- str r2, [sp, #0x24]
- bl MOD11_02230068
- str r0, [sp, #0x2c]
- mov r0, #5
- mov r1, #0x24
- bl AllocFromHeap
- add r4, r0, #0
- mov r2, #0
- ldr r0, _0224DCCC ; =0x00000195
- strb r2, [r4, #0x12]
- ldrb r0, [r5, r0]
- mov r1, #1
- tst r0, r1
- beq _0224DB9C
- mov r0, #2
- strb r0, [r4, #0x13]
- add r0, r6, #0
- bl MOD11_02230088
- str r0, [r4, #8]
- ldr r1, _0224DCCC ; =0x00000195
- ldr r0, [r0]
- ldrb r2, [r5, r1]
- mov r1, #1
- and r2, r1
- add r3, r2, #0
- mov r1, #6
- mul r3, r1
- ldr r1, _0224DCD0 ; =0x0222D550
- mov r2, #0x58
- ldrsh r1, [r1, r3]
- bl FUN_0200C714
- b _0224DBC2
-_0224DB9C:
- add r0, r6, #0
- add r1, r2, #0
- strb r2, [r4, #0x13]
- bl MOD11_02230088
- str r0, [r4, #8]
- ldr r1, _0224DCCC ; =0x00000195
- ldr r0, [r0]
- ldrb r2, [r5, r1]
- mov r1, #1
- and r2, r1
- add r3, r2, #0
- mov r1, #6
- mul r3, r1
- ldr r1, _0224DCD0 ; =0x0222D550
- mov r2, #0x88
- ldrsh r1, [r1, r3]
- bl FUN_0200C714
-_0224DBC2:
- add r0, r6, #0
- bl MOD11_0222FF74
- mov r1, #8
- tst r0, r1
- bne _0224DBE4
- add r0, r6, #0
- bl MOD11_0222FF74
- mov r1, #0x10
- tst r0, r1
- beq _0224DBEC
- ldr r0, _0224DCCC ; =0x00000195
- ldrb r1, [r5, r0]
- mov r0, #1
- tst r0, r1
- beq _0224DBEC
-_0224DBE4:
- ldr r0, _0224DCCC ; =0x00000195
- ldrb r0, [r5, r0]
- str r0, [sp, #0x28]
- b _0224DBF6
-_0224DBEC:
- ldr r0, _0224DCCC ; =0x00000195
- ldrb r1, [r5, r0]
- mov r0, #1
- and r0, r1
- str r0, [sp, #0x28]
-_0224DBF6:
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r5, r1]
- add r0, r6, #0
- bl MOD11_0223021C
- add r3, r0, #0
- ldr r1, [sp, #0x24]
- lsl r3, r3, #0x18
- ldrh r1, [r1, #2]
- ldrb r2, [r4, #0x13]
- add r0, sp, #0x30
- lsr r3, r3, #0x18
- bl FUN_02068FE0
- ldr r0, [sp, #0x28]
- mov r1, #6
- add r7, r0, #0
- mul r7, r1
- ldr r0, _0224DCD4 ; =0x0222D552
- mov r1, #0
- ldrsh r0, [r0, r7]
- ldr r3, _0224DCD0 ; =0x0222D550
- add r2, sp, #0x30
- str r0, [sp]
- ldr r0, _0224DCD8 ; =0x0222D554
- ldrsh r3, [r3, r7]
- ldrsh r0, [r0, r7]
- str r0, [sp, #4]
- str r1, [sp, #8]
- str r1, [sp, #0xc]
- str r1, [sp, #0x10]
- mov r0, #0x65
- str r1, [sp, #0x14]
- lsl r0, r0, #2
- ldrb r0, [r5, r0]
- str r0, [sp, #0x18]
- str r1, [sp, #0x1c]
- str r1, [sp, #0x20]
- ldr r1, [sp, #0x2c]
- add r0, r6, #0
- bl MOD11_02253A88
- str r0, [r5, #0x1c]
- str r0, [r4, #4]
- ldrb r0, [r4, #0x13]
- cmp r0, #0
- bne _0224DC80
- add r0, r6, #0
- bl MOD11_0222FF74
- mov r1, #0x22
- lsl r1, r1, #4
- tst r0, r1
- bne _0224DC80
- ldr r0, [sp, #0x24]
- ldrh r0, [r0, #2]
- bl FUN_0206AA30
- ldr r3, _0224DCCC ; =0x00000195
- add r2, r0, #0
- ldrb r3, [r5, r3]
- ldr r1, [sp, #0x28]
- add r0, r6, #0
- asr r3, r3, #1
- bl MOD11_02254308
- str r0, [r5, #0x18]
- str r0, [r4, #0xc]
-_0224DC80:
- ldr r0, [sp, #0x28]
- lsl r1, r0, #2
- ldr r0, _0224DCDC ; =0x0222D538
- ldrsh r0, [r0, r1]
- strh r0, [r4, #0x14]
- ldr r0, [sp, #0x24]
- str r6, [r4]
- ldrb r0, [r0]
- strb r0, [r4, #0x10]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r1, [r5, r0]
- add r0, r0, #1
- strb r1, [r4, #0x11]
- ldrb r0, [r5, r0]
- str r0, [r4, #0x18]
- mov r0, #0
- str r0, [r4, #0x20]
- ldr r0, [r4, #0x18]
- cmp r0, #0
- beq _0224DCAE
- cmp r0, #2
- bne _0224DCBE
-_0224DCAE:
- add r0, r6, #0
- bl MOD11_0222FF68
- mov r1, #3
- mov r2, #2
- mov r3, #0x84
- bl FUN_020179E0
-_0224DCBE:
- ldr r0, _0224DCE0 ; =MOD11_02250060
- add r1, r4, #0
- mov r2, #0
- bl FUN_0200CA44
- add sp, #0x40
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0224DCCC: .word 0x00000195
-_0224DCD0: .word 0x0222D550
-_0224DCD4: .word 0x0222D552
-_0224DCD8: .word 0x0222D554
-_0224DCDC: .word 0x0222D538
-_0224DCE0: .word MOD11_02250060
-
- thumb_func_start MOD11_0224DCE4
-MOD11_0224DCE4: ; 0x0224DCE4
- push {r3, r4, r5, r6, r7, lr}
- add r7, r0, #0
- add r5, r1, #0
- mov r0, #5
- mov r1, #0x1c
- add r6, r2, #0
- bl AllocFromHeap
- add r4, r0, #0
- mov r0, #0
- strb r0, [r4, #0xa]
- str r7, [r4]
- ldrb r1, [r6]
- strb r1, [r4, #8]
- ldrb r1, [r6, #1]
- str r1, [r4, #0x10]
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r2, [r5, r1]
- strb r2, [r4, #9]
- str r5, [r4, #4]
- add r2, r1, #1
- ldrb r3, [r5, r2]
- mov r2, #1
- tst r2, r3
- beq _0224DD1E
- mov r1, #2
- strb r1, [r4, #0xb]
- b _0224DD30
-_0224DD1E:
- ldrb r1, [r5, r1]
- add r0, r7, #0
- bl MOD11_02230188
- mov r1, #0
- strb r1, [r4, #0xb]
- ldrb r0, [r0, #1]
- bl FUN_0206AA30
-_0224DD30:
- str r0, [r4, #0xc]
- ldr r0, _0224DD40 ; =MOD11_02250338
- add r1, r4, #0
- mov r2, #0
- bl FUN_0200CA44
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0224DD40: .word MOD11_02250338
-
- thumb_func_start MOD11_0224DD44
-MOD11_0224DD44: ; 0x0224DD44
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- mov r0, #5
- mov r1, #0x10
- bl AllocFromHeap
- add r1, r0, #0
- mov r0, #0
- strb r0, [r1, #0xa]
- add r2, r4, #0
- str r5, [r1]
- add r2, #0x94
- ldrb r2, [r2]
- strb r2, [r1, #8]
- mov r2, #0x65
- lsl r2, r2, #2
- ldrb r3, [r4, r2]
- add r2, r2, #1
- strb r3, [r1, #9]
- str r4, [r1, #4]
- ldrb r3, [r4, r2]
- mov r2, #1
- tst r2, r3
- beq _0224DD7A
- mov r0, #2
- b _0224DD7A
-_0224DD7A:
- strb r0, [r1, #0xb]
- ldr r0, _0224DD88 ; =MOD11_022508A4
- mov r2, #0
- bl FUN_0200CA44
- pop {r3, r4, r5, pc}
- nop
-_0224DD88: .word MOD11_022508A4
-
- thumb_func_start MOD11_0224DD8C
-MOD11_0224DD8C: ; 0x0224DD8C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x28
- str r0, [sp, #0x10]
- add r5, r1, #0
- add r7, r2, #0
- bl MOD11_02230068
- str r0, [sp, #0x14]
- mov r0, #5
- mov r1, #0x10
- bl AllocFromHeap
- add r4, r0, #0
- mov r0, #0
- ldr r1, _0224DE38 ; =0x00000195
- strb r0, [r4, #0xa]
- ldrb r2, [r5, r1]
- mov r1, #1
- tst r1, r2
- beq _0224DDB8
- mov r0, #2
- b _0224DDB8
-_0224DDB8:
- mov r1, #0x65
- strb r0, [r4, #0xb]
- lsl r1, r1, #2
- ldrb r1, [r5, r1]
- ldr r0, [sp, #0x10]
- bl MOD11_0223021C
- add r3, r0, #0
- lsl r3, r3, #0x18
- ldrh r1, [r7, #2]
- ldrb r2, [r4, #0xb]
- add r0, sp, #0x18
- lsr r3, r3, #0x18
- bl FUN_02068FE0
- ldr r0, _0224DE38 ; =0x00000195
- mov r1, #6
- ldrb r2, [r5, r0]
- sub r0, r0, #1
- ldr r3, _0224DE3C ; =0x0222D576
- add r6, r2, #0
- mul r6, r1
- ldr r1, _0224DE40 ; =0x0222D578
- ldr r2, _0224DE44 ; =0x0222D574
- ldrsh r1, [r1, r6]
- ldrsh r2, [r2, r6]
- ldrsh r3, [r3, r6]
- str r1, [sp]
- ldrb r0, [r5, r0]
- add r1, sp, #0x18
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x14]
- bl FUN_020073A0
- str r0, [r5, #0x1c]
- str r0, [r4, #4]
- ldr r0, _0224DE38 ; =0x00000195
- ldr r2, _0224DE48 ; =0x0222D538
- ldrb r1, [r5, r0]
- sub r0, r0, #1
- lsl r1, r1, #0x1f
- lsr r3, r1, #0x1d
- ldr r1, [r7, #4]
- add r2, r2, r3
- lsl r1, r1, #1
- ldrsh r1, [r1, r2]
- mov r2, #0
- strh r1, [r4, #0xc]
- ldr r1, [sp, #0x10]
- str r1, [r4]
- ldrb r1, [r7]
- strb r1, [r4, #8]
- ldrb r0, [r5, r0]
- add r1, r4, #0
- strb r0, [r4, #9]
- ldr r0, _0224DE4C ; =MOD11_0225092C
- bl FUN_0200CA44
- add sp, #0x28
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0224DE38: .word 0x00000195
-_0224DE3C: .word 0x0222D576
-_0224DE40: .word 0x0222D578
-_0224DE44: .word 0x0222D574
-_0224DE48: .word 0x0222D538
-_0224DE4C: .word MOD11_0225092C
-
- thumb_func_start MOD11_0224DE50
-MOD11_0224DE50: ; 0x0224DE50
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- add r4, r6, #0
- add r4, #0x28
- add r7, r0, #0
- add r5, r2, #0
- mov r0, #0
- add r1, r4, #0
- mov r2, #1
- bl MIi_CpuClearFast
- mov r0, #0x65
- str r7, [r4, #0xc]
- lsl r0, r0, #2
- ldrb r1, [r6, r0]
- add r0, r4, #0
- add r0, #0x24
- strb r1, [r0]
- add r0, r7, #0
- bl MOD11_0222FF74
- add r1, r0, #0
- ldr r0, _0224DF10 ; =0x00000195
- ldrb r0, [r6, r0]
- bl MOD11_02257F6C
- add r1, r4, #0
- add r1, #0x25
- strb r0, [r1]
- add r0, r4, #0
- ldrb r1, [r5]
- add r0, #0x4c
- strb r1, [r0]
- mov r0, #2
- ldrsh r0, [r5, r0]
- str r0, [r4, #0x28]
- ldrh r0, [r5, #4]
- str r0, [r4, #0x2c]
- add r0, r4, #0
- ldrb r1, [r5, #1]
- add r0, #0x48
- strb r1, [r0]
- ldrb r0, [r5, #7]
- lsl r0, r0, #0x19
- lsr r1, r0, #0x1e
- add r0, r4, #0
- add r0, #0x49
- strb r1, [r0]
- mov r1, #0
- str r1, [r4, #0x30]
- ldr r0, [r5, #8]
- str r0, [r4, #0x38]
- ldr r0, [r5, #0xc]
- str r0, [r4, #0x3c]
- add r0, r4, #0
- ldrb r2, [r5, #6]
- add r0, #0x26
- strb r2, [r0]
- ldrb r0, [r5, #7]
- lsl r0, r0, #0x1b
- lsr r2, r0, #0x1b
- add r0, r4, #0
- add r0, #0x4a
- strb r2, [r0]
- ldrb r0, [r5, #7]
- lsl r0, r0, #0x18
- lsr r2, r0, #0x1f
- add r0, r4, #0
- add r0, #0x4b
- strb r2, [r0]
- add r0, r4, #0
- ldrb r2, [r5, #0x14]
- add r0, #0x4d
- strb r2, [r0]
- add r0, r4, #0
- ldr r2, [r5, #0x10]
- add r0, #0x27
- strb r2, [r0]
- add r0, r4, #0
- bl MOD11_022572AC
- mov r2, #0
- ldr r1, [r4, #0x28]
- add r0, r4, #0
- mvn r2, r2
- bl MOD11_02256D70
- mov r2, #0xfa
- ldr r0, _0224DF14 ; =MOD11_022509B4
- add r1, r4, #0
- lsl r2, r2, #2
- bl FUN_0200CA44
- str r0, [r4, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0224DF10: .word 0x00000195
-_0224DF14: .word MOD11_022509B4
-
- thumb_func_start MOD11_0224DF18
-MOD11_0224DF18: ; 0x0224DF18
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r4, r5, #0
- add r4, #0x28
- add r6, r0, #0
- mov r0, #0
- add r1, r4, #0
- mov r2, #1
- bl MIi_CpuClearFast
- mov r0, #0x65
- str r6, [r4, #0xc]
- lsl r0, r0, #2
- ldrb r1, [r5, r0]
- add r0, r4, #0
- add r0, #0x24
- strb r1, [r0]
- add r5, #0x94
- add r0, r4, #0
- ldrb r1, [r5]
- add r0, #0x4c
- strb r1, [r0]
- add r0, r4, #0
- mov r1, #1
- bl MOD11_02257334
- mov r2, #0xfa
- ldr r0, _0224DF5C ; =MOD11_02250A28
- add r1, r4, #0
- lsl r2, r2, #2
- bl FUN_0200CA44
- str r0, [r4, #0x10]
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0224DF5C: .word MOD11_02250A28
-
- thumb_func_start MOD11_0224DF60
-MOD11_0224DF60: ; 0x0224DF60
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- str r1, [sp]
- mov r0, #5
- mov r1, #0x3c
- add r5, r2, #0
- bl AllocFromHeap
- add r4, r0, #0
- mov r0, #0
- add r1, r4, #0
- mov r2, #0x3c
- bl MIi_CpuClearFast
- mov r7, #0
- strb r7, [r4, #0xa]
- strb r7, [r4, #0xb]
- str r6, [r4]
- ldrb r0, [r5]
- mov r1, #0x65
- lsl r1, r1, #2
- strb r0, [r4, #8]
- ldr r0, [sp]
- add r3, r5, #0
- ldrb r0, [r0, r1]
- add r1, r1, #1
- add r6, r4, #0
- strb r0, [r4, #9]
- ldr r0, [sp]
- ldrb r1, [r0, r1]
- add r0, r4, #0
- add r0, #0x34
- strb r1, [r0]
- ldr r0, [sp]
- add r0, #0x28
- str r0, [r4, #4]
- add r0, r4, #0
- ldrb r1, [r5, #1]
- add r0, #0x23
- strb r1, [r0]
- mov r0, #0x24
- ldrsh r0, [r5, r0]
- strh r0, [r4, #0x36]
- ldrh r0, [r5, #0x26]
- strh r0, [r4, #0x38]
- add r0, r5, #0
- add r0, #0x28
- ldrb r1, [r0]
- add r0, r4, #0
- add r0, #0x3a
- strb r1, [r0]
-_0224DFC6:
- mov r2, #0
-_0224DFC8:
- add r0, r3, r2
- ldrb r1, [r0, #8]
- add r0, r6, r2
- add r2, r2, #1
- strb r1, [r0, #0x10]
- cmp r2, #6
- blt _0224DFC8
- add r7, r7, #1
- add r3, r3, #6
- add r6, r6, #6
- cmp r7, #2
- blt _0224DFC6
- mov r0, #0
- add r3, r0, #0
-_0224DFE4:
- add r2, r5, r0
- ldrb r1, [r2, #8]
- cmp r1, #2
- bne _0224DFF2
- add r1, r4, r0
- strb r3, [r1, #0x1c]
- b _0224DFF8
-_0224DFF2:
- ldrb r2, [r2, #2]
- add r1, r4, r0
- strb r2, [r1, #0x1c]
-_0224DFF8:
- add r0, r0, #1
- cmp r0, #6
- blt _0224DFE4
- mov r2, #0
- add r3, r5, #0
- add r6, r4, #0
-_0224E004:
- ldrh r0, [r3, #0x14]
- add r7, r4, r2
- add r1, r5, r2
- strh r0, [r6, #0x24]
- ldrb r0, [r1, #0x1c]
- add r7, #0x2c
- add r1, #0x20
- strb r0, [r7]
- add r0, r4, r2
- ldrb r1, [r1]
- add r0, #0x30
- add r2, r2, #1
- strb r1, [r0]
- add r3, r3, #2
- add r6, r6, #2
- cmp r2, #4
- blt _0224E004
- ldr r0, [sp]
- add r1, r4, #0
- ldr r0, [r0]
- mov r2, #0
- bl FUN_0200CA44
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0224E034
-MOD11_0224E034: ; 0x0224E034
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- str r1, [sp]
- mov r0, #5
- mov r1, #0x24
- add r7, r2, #0
- bl AllocFromHeap
- add r3, r0, #0
- mov r1, #0x65
- mov r4, #0
- add r0, #0x20
- strb r4, [r0]
- ldr r0, [sp]
- str r5, [r3]
- add r0, #0x94
- ldrb r0, [r0]
- lsl r1, r1, #2
- add r5, r7, #0
- strb r0, [r3, #0x1c]
- ldr r0, [sp]
- add r6, r3, #0
- ldrb r0, [r0, r1]
- add r1, r1, #1
- strb r0, [r3, #0x1d]
- ldr r0, [sp]
- ldrb r0, [r0, r1]
- strb r0, [r3, #0x1e]
- ldr r0, [sp]
- add r0, #0x28
- str r0, [r3, #4]
- ldrb r0, [r7, #1]
- strb r0, [r3, #0x1f]
-_0224E076:
- ldrh r0, [r5, #4]
- add r2, r7, r4
- add r1, r3, r4
- strh r0, [r6, #0xc]
- ldrb r0, [r2, #0xc]
- add r4, r4, #1
- add r5, r5, #2
- strb r0, [r1, #0x14]
- ldrb r0, [r2, #0x10]
- add r6, r6, #2
- cmp r4, #4
- strb r0, [r1, #0x18]
- blt _0224E076
- ldrh r0, [r7, #2]
- add r1, r3, #0
- mov r2, #0
- strh r0, [r3, #0x22]
- ldr r0, [sp]
- ldr r0, [r0, #4]
- bl FUN_0200CA44
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224E0A4
-MOD11_0224E0A4: ; 0x0224E0A4
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- str r0, [sp]
- add r7, r1, #0
- mov r0, #5
- mov r1, #0x34
- add r5, r2, #0
- bl AllocFromHeap
- add r6, r0, #0
- mov r0, #0
- strb r0, [r6, #0xf]
- ldr r0, [sp]
- str r0, [r6]
- add r0, r7, #0
- add r0, #0x94
- ldrb r0, [r0]
- strb r0, [r6, #0xc]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r1, [r7, r0]
- add r0, r0, #1
- strb r1, [r6, #0xd]
- ldrb r0, [r7, r0]
- strb r0, [r6, #0xe]
- ldrh r0, [r5, #2]
- strh r0, [r6, #0x30]
- add r0, r7, #0
- add r0, #0x28
- str r0, [r6, #4]
- add r0, r6, #0
- ldrb r1, [r5, #1]
- add r0, #0x32
- strb r1, [r0]
- ldr r0, [sp]
- add r1, sp, #4
- bl MOD11_02231504
- ldr r0, [sp]
- bl MOD11_0222FF84
- add r4, r0, #0
- ldr r0, [sp]
- bl MOD11_0222FF74
- mov r0, #0
- cmp r4, #0
- ble _0224E120
- add r1, r6, #0
-_0224E106:
- ldrh r2, [r5, #4]
- add r0, r0, #1
- strh r2, [r1, #0x10]
- ldrh r2, [r5, #6]
- strh r2, [r1, #0x12]
- ldrh r2, [r5, #8]
- strh r2, [r1, #0x14]
- ldrh r2, [r5, #0xa]
- add r5, #8
- strh r2, [r1, #0x16]
- add r1, #8
- cmp r0, r4
- blt _0224E106
-_0224E120:
- ldr r0, [r7, #8]
- add r1, r6, #0
- mov r2, #0
- bl FUN_0200CA44
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224E130
-MOD11_0224E130: ; 0x0224E130
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r0, #0
- str r1, [sp]
- mov r0, #5
- mov r1, #0x34
- str r2, [sp, #4]
- bl AllocFromHeap
- add r4, r0, #0
- mov r0, #5
- mov r1, #0x34
- bl AllocFromHeap
- str r0, [r4, #8]
- mov r0, #5
- mov r1, #0x38
- bl AllocFromHeap
- ldr r1, [r4, #8]
- str r0, [r1, #4]
- mov r0, #5
- bl FUN_0206B8AC
- ldr r1, [r4, #8]
- mov r6, #0
- ldr r1, [r1, #4]
- ldr r3, [sp, #4]
- str r0, [r1]
- strb r6, [r4, #0xe]
- str r5, [r4]
- ldr r0, [sp, #4]
- mov r1, #0x65
- ldrb r0, [r0]
- lsl r1, r1, #2
- add r5, r4, #0
- strb r0, [r4, #0xc]
- ldr r0, [sp]
- ldrb r0, [r0, r1]
- add r1, r1, #1
- strb r0, [r4, #0xd]
- ldr r0, [sp]
- ldrb r0, [r0, r1]
- strb r0, [r4, #0xf]
- ldr r0, [sp, #4]
- ldrb r0, [r0, #1]
- strb r0, [r4, #0x14]
- ldr r0, [sp, #4]
- ldrb r0, [r0, #2]
- strb r0, [r4, #0x15]
- ldr r0, [sp, #4]
- ldrb r0, [r0, #3]
- strb r0, [r4, #0x16]
-_0224E19A:
- ldr r0, [sp, #4]
- ldr r1, [r4, #8]
- add r7, r0, r6
- ldrb r0, [r7, #4]
- add r1, r1, r6
- mov r2, #0
- strb r0, [r1, #0xc]
-_0224E1A8:
- add r0, r3, r2
- ldrb r1, [r0, #8]
- add r0, r5, r2
- add r2, r2, #1
- strb r1, [r0, #0x18]
- cmp r2, #6
- blt _0224E1A8
- add r7, #0x20
- ldrb r1, [r7]
- add r0, r4, r6
- add r0, #0x30
- add r6, r6, #1
- strb r1, [r0]
- add r3, r3, #6
- add r5, r5, #6
- cmp r6, #4
- blt _0224E19A
- ldr r0, [sp]
- add r1, r4, #0
- ldr r0, [r0, #0xc]
- mov r2, #0
- bl FUN_0200CA44
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224E1DC
-MOD11_0224E1DC: ; 0x0224E1DC
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- str r1, [sp]
- mov r0, #5
- mov r1, #0x34
- add r7, r2, #0
- bl AllocFromHeap
- add r2, r0, #0
- mov r3, #0
- strb r3, [r2, #0xa]
- str r4, [r2]
- ldrb r0, [r7]
- add r5, r7, #0
- add r6, r2, #0
- strb r0, [r2, #8]
- ldrb r0, [r7, #1]
- strb r0, [r2, #9]
- ldrb r0, [r7, #2]
- strb r0, [r2, #0xb]
- ldr r0, [r7, #0x20]
- str r0, [r2, #0x10]
- ldrb r0, [r7, #3]
- strb r0, [r2, #0x16]
- add r0, r7, #0
- strh r3, [r2, #0x14]
- add r0, #0x24
- ldrb r0, [r0]
- strb r0, [r2, #0x18]
-_0224E216:
- add r0, r7, r3
- ldrb r1, [r0, #4]
- add r0, r2, r3
- mov r4, #0
- strb r1, [r0, #0xc]
-_0224E220:
- add r0, r5, r4
- ldrb r1, [r0, #8]
- add r0, r6, r4
- add r4, r4, #1
- strb r1, [r0, #0x1c]
- cmp r4, #6
- blt _0224E220
- add r3, r3, #1
- add r5, r5, #6
- add r6, r6, #6
- cmp r3, #4
- blt _0224E216
- ldr r0, [sp]
- add r1, r2, #0
- ldr r0, [r0, #0x10]
- mov r2, #0
- bl FUN_0200CA44
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224E248
-MOD11_0224E248: ; 0x0224E248
- push {r4, r5, r6, lr}
- add r6, r0, #0
- add r5, r1, #0
- mov r0, #5
- mov r1, #0x1c
- add r4, r2, #0
- bl AllocFromHeap
- add r1, r0, #0
- mov r2, #0
- strb r2, [r1, #0xe]
- str r6, [r1]
- ldrb r0, [r4]
- strb r0, [r1, #0xc]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r5, r0]
- strb r0, [r1, #0xd]
- add r0, r5, #0
- add r0, #0x28
- str r0, [r1, #4]
- ldrh r0, [r4, #2]
- str r0, [r1, #0x10]
- ldrb r0, [r4, #1]
- strb r0, [r1, #0xf]
- ldr r0, [r4, #4]
- strh r0, [r1, #0x18]
- ldr r0, [r4, #8]
- str r0, [r1, #0x14]
- ldr r0, [r5, #0x14]
- bl FUN_0200CA44
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224E28C
-MOD11_0224E28C: ; 0x0224E28C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x28
- add r6, r0, #0
- add r7, r1, #0
- add r5, r2, #0
- bl MOD11_022300C8
- str r0, [sp]
- mov r0, #5
- mov r1, #8
- bl AllocFromHeap
- add r4, r0, #0
- str r6, [r4]
- ldrb r0, [r5]
- mov r1, #0x65
- lsl r1, r1, #2
- strb r0, [r4, #4]
- ldrb r0, [r7, r1]
- strb r0, [r4, #5]
- ldrh r2, [r5, #2]
- lsl r0, r2, #1
- add r2, r2, r0
- add r0, sp, #4
- strh r2, [r0, #2]
- mov r2, #2
- strb r2, [r0, #1]
- ldrb r0, [r5, #1]
- ldrb r1, [r7, r1]
- lsl r0, r0, #8
- orr r0, r1
- str r0, [sp, #8]
- add r0, r6, #0
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r1, [sp]
- add r0, r6, #0
- add r2, sp, #4
- bl MOD11_0223178C
- strb r0, [r4, #6]
- ldr r0, _0224E2F0 ; =MOD11_02253008
- add r1, r4, #0
- mov r2, #0
- bl FUN_0200CA44
- add sp, #0x28
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0224E2F0: .word MOD11_02253008
-
- thumb_func_start MOD11_0224E2F4
-MOD11_0224E2F4: ; 0x0224E2F4
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r6, r1, #0
- add r7, r2, #0
- bl MOD11_022300C4
- str r0, [sp]
- mov r0, #5
- mov r1, #8
- bl AllocFromHeap
- add r4, r0, #0
- add r0, r6, #0
- str r5, [r4]
- add r0, #0x94
- ldrb r0, [r0]
- strb r0, [r4, #4]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r6, r0]
- strb r0, [r4, #5]
- add r0, r5, #0
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r1, [sp]
- add r0, r5, #0
- add r2, r7, #0
- bl MOD11_0223178C
- strb r0, [r4, #6]
- ldr r0, _0224E340 ; =MOD11_02253008
- add r1, r4, #0
- mov r2, #0
- bl FUN_0200CA44
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0224E340: .word MOD11_02253008
-
- thumb_func_start MOD11_0224E344
-MOD11_0224E344: ; 0x0224E344
- push {r3, r4, r5, r6, r7, lr}
- add r7, r0, #0
- add r6, r1, #0
- mov r0, #5
- mov r1, #0x70
- add r5, r2, #0
- bl AllocFromHeap
- add r4, r0, #0
- mov r1, #0
- add r0, #0x6a
- strb r1, [r0]
- str r7, [r4]
- add r0, r6, #0
- str r6, [r4, #4]
- add r0, #0x94
- ldrb r1, [r0]
- add r0, r4, #0
- add r0, #0x68
- strb r1, [r0]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r1, [r6, r0]
- add r0, r4, #0
- add r0, #0x69
- strb r1, [r0]
- add r0, r7, #0
- bl MOD11_02230070
- add r3, r4, #0
- str r0, [r4, #0xc]
- add r7, r5, #0
- add r3, #0x10
- mov r2, #0xb
-_0224E388:
- ldmia r7!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _0224E388
- ldr r0, [r6, #0x20]
- str r0, [r4, #8]
- ldr r0, [r5, #0x4c]
- cmp r0, #1
- bne _0224E3A8
- ldr r0, [r5, #0x50]
- cmp r0, #0x19
- bne _0224E3A8
- mov r0, #0x1a
- mov r1, #1
- lsl r0, r0, #4
- str r1, [r6, r0]
-_0224E3A8:
- ldr r0, [r5, #0x4c]
- cmp r0, #1
- bne _0224E3BC
- ldr r0, [r5, #0x50]
- cmp r0, #0x1a
- bne _0224E3BC
- mov r0, #0x1a
- mov r1, #0
- lsl r0, r0, #4
- str r1, [r6, r0]
-_0224E3BC:
- ldrh r0, [r5, #2]
- add r1, r4, #0
- add r1, #0x6c
- str r0, [sp]
- add r0, r4, #0
- ldr r2, [r5, #0x4c]
- ldr r3, [r5, #0x50]
- add r0, #0x6b
- bl MOD11_022545B4
- ldr r0, _0224E3DC ; =MOD11_02252754
- add r1, r4, #0
- mov r2, #0
- bl FUN_0200CA44
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0224E3DC: .word MOD11_02252754
-
- thumb_func_start MOD11_0224E3E0
-MOD11_0224E3E0: ; 0x0224E3E0
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- mov r0, #5
- mov r1, #0xc
- bl AllocFromHeap
- add r1, r0, #0
- mov r2, #0
- strb r2, [r1, #9]
- str r5, [r1]
- ldr r0, [r4, #0x20]
- str r0, [r1, #4]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r4, r0]
- strb r0, [r1, #8]
- ldr r0, _0224E40C ; =MOD11_022529C0
- strb r2, [r1, #0xa]
- bl FUN_0200CA44
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0224E40C: .word MOD11_022529C0
-
- thumb_func_start MOD11_0224E410
-MOD11_0224E410: ; 0x0224E410
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- add r7, r0, #0
- ldr r0, [r6, #0x2c]
- add r5, r2, #0
- cmp r0, #0
- bne _0224E422
- bl ErrorHandling
-_0224E422:
- add r4, r6, #0
- add r4, #0x28
- add r0, r4, #0
- mov r1, #0
- mov r2, #1
- bl MI_CpuFill8
- str r7, [r4, #0xc]
- add r0, r4, #0
- ldrb r1, [r5]
- add r0, #0x4c
- strb r1, [r0]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r1, [r6, r0]
- add r0, r4, #0
- add r0, #0x24
- strb r1, [r0]
- add r0, r7, #0
- bl MOD11_0222FF74
- add r1, r0, #0
- ldr r0, _0224E490 ; =0x00000195
- ldrb r0, [r6, r0]
- bl MOD11_02257F6C
- add r1, r4, #0
- add r1, #0x25
- strb r0, [r1]
- mov r0, #2
- ldrsh r0, [r5, r0]
- str r0, [r4, #0x28]
- ldrh r0, [r5, #4]
- str r0, [r4, #0x2c]
- ldr r0, [r5, #8]
- str r0, [r4, #0x30]
- add r0, r4, #0
- ldrb r1, [r5, #1]
- add r0, #0x48
- strb r1, [r0]
- ldr r1, [r5, #8]
- ldr r0, _0224E494 ; =0x00007FFF
- cmp r1, r0
- bne _0224E480
- mov r0, #0
- str r0, [r4, #0x28]
- str r0, [r4, #0x30]
-_0224E480:
- mov r2, #0xfa
- ldr r0, _0224E498 ; =MOD11_02252A1C
- add r1, r4, #0
- lsl r2, r2, #2
- bl FUN_0200CA44
- str r0, [r4, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0224E490: .word 0x00000195
-_0224E494: .word 0x00007FFF
-_0224E498: .word MOD11_02252A1C
-
- thumb_func_start MOD11_0224E49C
-MOD11_0224E49C: ; 0x0224E49C
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- add r7, r0, #0
- ldr r0, [r6, #0x2c]
- add r5, r2, #0
- cmp r0, #0
- bne _0224E4AE
- bl ErrorHandling
-_0224E4AE:
- add r4, r6, #0
- add r4, #0x28
- add r0, r4, #0
- mov r1, #0
- mov r2, #1
- bl MI_CpuFill8
- str r7, [r4, #0xc]
- add r0, r4, #0
- ldrb r1, [r5]
- add r0, #0x4c
- strb r1, [r0]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r2, [r6, r0]
- add r1, r4, #0
- add r1, #0x24
- strb r2, [r1]
- ldr r1, [r5, #4]
- add r0, r0, #1
- str r1, [r4, #0x38]
- ldr r1, [r5, #0xc]
- str r1, [r4, #0x3c]
- ldr r2, [r5, #8]
- ldr r1, [r4, #0x38]
- sub r1, r2, r1
- str r1, [r4, #0x40]
- ldrb r0, [r6, r0]
- cmp r0, #0
- bne _0224E4FA
- mov r2, #0xfa
- ldr r0, _0224E50C ; =MOD11_02252A70
- add r1, r4, #0
- lsl r2, r2, #2
- bl FUN_0200CA44
- str r0, [r4, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
-_0224E4FA:
- add r1, r4, #0
- ldr r0, [r4, #0xc]
- add r1, #0x24
- add r4, #0x4c
- ldrb r1, [r1]
- ldrb r2, [r4]
- bl MOD11_022567B8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0224E50C: .word MOD11_02252A70
-
- thumb_func_start MOD11_0224E510
-MOD11_0224E510: ; 0x0224E510
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r5, r0, #0
- add r4, r1, #0
- mov r0, #5
- mov r1, #0x74
- str r2, [sp]
- bl AllocFromHeap
- add r1, r0, #0
- ldr r0, _0224E5F0 ; =0x00000195
- ldrb r2, [r4, r0]
- mov r0, #1
- tst r0, r2
- beq _0224E532
- mov r2, #2
- b _0224E534
-_0224E532:
- mov r2, #0
-_0224E534:
- add r0, r1, #0
- add r0, #0x67
- strb r2, [r0]
- add r0, r1, #0
- mov r2, #0
- add r0, #0x66
- strb r2, [r0]
- str r5, [r1]
- ldr r0, [sp]
- str r4, [r1, #4]
- ldrb r3, [r0]
- add r0, r1, #0
- add r0, #0x64
- strb r3, [r0]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r3, [r4, r0]
- add r0, r1, #0
- add r0, #0x65
- strb r3, [r0]
- ldr r0, [r4, #0x20]
- add r7, r1, #0
- str r0, [r1, #8]
- ldr r0, [sp]
- add r5, r1, #0
- ldrh r3, [r0, #2]
- add r0, r1, #0
- add r0, #0x68
- strh r3, [r0]
- ldr r0, [sp]
- ldrb r3, [r0, #1]
- add r0, r1, #0
- add r0, #0x6a
- strb r3, [r0]
- ldr r0, [sp]
- ldrb r3, [r0, #8]
- add r0, r1, #0
- add r0, #0x6b
- strb r3, [r0]
- ldr r0, [sp]
- ldr r0, [r0, #4]
- str r0, [r1, #0x6c]
- ldr r0, [sp]
- ldrb r3, [r0, #9]
- add r0, r1, #0
- add r0, #0x70
- strh r3, [r0]
- ldr r0, [sp]
- ldrb r3, [r0, #0xa]
- add r0, r1, #0
- add r0, #0x72
- strh r3, [r0]
- ldr r3, [sp]
- add r4, r3, #0
-_0224E5A0:
- ldrh r0, [r3, #0xc]
- add r3, r3, #2
- strh r0, [r7, #0x24]
- ldr r0, [sp]
- add r7, r7, #2
- add r0, r0, r2
- str r0, [sp, #0x10]
- ldrb r0, [r0, #0x14]
- str r0, [sp, #8]
- add r0, r1, r2
- ldr r6, [sp, #8]
- add r0, #0x2c
- strb r6, [r0]
- ldr r0, [sp, #0x10]
- add r6, r1, r2
- ldrb r0, [r0, #0x18]
- str r6, [sp, #4]
- add r6, #0x30
- str r0, [sp, #0xc]
- strb r0, [r6]
- ldr r0, [sp, #0x10]
- str r6, [sp, #4]
- add r6, r1, r2
- ldrb r0, [r0, #0x1c]
- add r6, #0x34
- add r2, r2, #1
- strb r0, [r6]
- ldr r0, [r4, #0x20]
- add r4, r4, #4
- str r0, [r5, #0x38]
- add r5, r5, #4
- cmp r2, #4
- blt _0224E5A0
- ldr r0, _0224E5F4 ; =MOD11_02252B30
- mov r2, #0
- bl FUN_0200CA44
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- nop
-_0224E5F0: .word 0x00000195
-_0224E5F4: .word MOD11_02252B30
-
- thumb_func_start MOD11_0224E5F8
-MOD11_0224E5F8: ; 0x0224E5F8
- push {r3, r4, r5, lr}
- add r5, r2, #0
- ldr r2, _0224E624 ; =0x00000195
- mov r4, #1
- ldrb r2, [r1, r2]
- tst r2, r4
- beq _0224E60A
- mov r4, #0x75
- b _0224E60C
-_0224E60A:
- sub r4, #0x76
-_0224E60C:
- mov r2, #0x65
- lsl r2, r2, #2
- ldrb r1, [r1, r2]
- ldrb r2, [r5]
- bl MOD11_022567B8
- ldrh r0, [r5, #2]
- add r1, r4, #0
- bl FUN_020054A8
- pop {r3, r4, r5, pc}
- nop
-_0224E624: .word 0x00000195
-
- thumb_func_start MOD11_0224E628
-MOD11_0224E628: ; 0x0224E628
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- mov r0, #5
- mov r1, #8
- bl AllocFromHeap
- add r1, r0, #0
- mov r2, #0
- strb r2, [r1, #6]
- add r0, r4, #0
- str r5, [r1]
- add r0, #0x94
- ldrb r0, [r0]
- strb r0, [r1, #4]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r4, r0]
- strb r0, [r1, #5]
- ldr r0, _0224E658 ; =MOD11_02252DB4
- bl FUN_0200CA44
- pop {r3, r4, r5, pc}
- nop
-_0224E658: .word MOD11_02252DB4
-
- thumb_func_start MOD11_0224E65C
-MOD11_0224E65C: ; 0x0224E65C
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r5, r0, #0
- add r4, r1, #0
- mov r0, #5
- mov r1, #0x68
- str r2, [sp]
- bl AllocFromHeap
- add r1, r0, #0
- str r5, [r1]
- ldr r0, [sp]
- str r4, [r1, #4]
- ldrb r2, [r0]
- add r0, r1, #0
- add r0, #0x60
- strb r2, [r0]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r2, [r4, r0]
- add r0, r1, #0
- add r0, #0x61
- strb r2, [r0]
- add r0, r1, #0
- mov r2, #0
- add r0, #0x62
- strb r2, [r0]
- ldr r0, [sp]
- add r7, r1, #0
- ldrb r3, [r0, #1]
- add r0, r1, #0
- add r0, #0x63
- strb r3, [r0]
- ldr r0, [sp]
- ldr r3, [sp]
- ldrb r0, [r0, #2]
- add r4, r3, #0
- add r5, r1, #0
- str r0, [r1, #0x64]
-_0224E6AA:
- ldrh r0, [r3, #4]
- add r3, r3, #2
- strh r0, [r7, #0x20]
- ldr r0, [sp]
- add r7, r7, #2
- add r0, r0, r2
- str r0, [sp, #0x10]
- ldrb r0, [r0, #0xc]
- str r0, [sp, #8]
- add r0, r1, r2
- ldr r6, [sp, #8]
- add r0, #0x28
- strb r6, [r0]
- ldr r0, [sp, #0x10]
- add r6, r1, r2
- ldrb r0, [r0, #0x10]
- str r6, [sp, #4]
- add r6, #0x2c
- str r0, [sp, #0xc]
- strb r0, [r6]
- ldr r0, [sp, #0x10]
- str r6, [sp, #4]
- add r6, r1, r2
- ldrb r0, [r0, #0x14]
- add r6, #0x30
- add r2, r2, #1
- strb r0, [r6]
- ldr r0, [r4, #0x18]
- add r4, r4, #4
- str r0, [r5, #0x34]
- add r5, r5, #4
- cmp r2, #4
- blt _0224E6AA
- ldr r0, _0224E6F8 ; =MOD11_02252E50
- mov r2, #0
- bl FUN_0200CA44
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0224E6F8: .word MOD11_02252E50
-
- thumb_func_start MOD11_0224E6FC
-MOD11_0224E6FC: ; 0x0224E6FC
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r6, r0, #0
- ldr r0, [r5, #0x2c]
- add r4, r2, #0
- cmp r0, #0
- bne _0224E70E
- bl ErrorHandling
-_0224E70E:
- ldrb r1, [r4, #1]
- add r0, r5, #0
- add r0, #0x72
- strb r1, [r0]
- add r0, r5, #0
- mov r2, #1
- ldr r1, [r5, #0x50]
- add r0, #0x28
- lsl r2, r2, #8
- bl MOD11_02256D70
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r5, r1]
- ldrb r2, [r4]
- add r0, r6, #0
- bl MOD11_022567B8
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_0224E734
-MOD11_0224E734: ; 0x0224E734
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r1, #0
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r5, r1]
- add r6, r0, #0
- add r7, r2, #0
- bl MOD11_02230140
- str r0, [sp, #4]
- mov r0, #5
- mov r1, #8
- bl AllocFromHeap
- add r4, r0, #0
- str r6, [r4]
- ldrb r0, [r7]
- strb r0, [r4, #4]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r5, r0]
- strb r0, [r4, #5]
- add r0, r6, #0
- bl MOD11_02230E54
- str r0, [sp]
- mov r2, #0x65
- lsl r2, r2, #2
- ldrb r2, [r5, r2]
- ldrb r3, [r7, #1]
- ldr r1, [sp, #4]
- add r0, r6, #0
- bl MOD11_02231684
- strb r0, [r4, #6]
- ldr r0, _0224E78C ; =MOD11_02253008
- add r1, r4, #0
- mov r2, #0
- bl FUN_0200CA44
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0224E78C: .word MOD11_02253008
-
- thumb_func_start MOD11_0224E790
-MOD11_0224E790: ; 0x0224E790
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x28
- add r5, r0, #0
- add r3, sp, #4
- add r6, r1, #0
- add r7, r2, #0
- bl MOD11_02253B74
- add r0, r5, #0
- bl MOD11_022300C4
- str r0, [sp]
- mov r0, #5
- mov r1, #8
- bl AllocFromHeap
- add r4, r0, #0
- str r5, [r4]
- ldrb r0, [r7]
- strb r0, [r4, #4]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r6, r0]
- strb r0, [r4, #5]
- add r0, r5, #0
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r1, [sp]
- add r0, r5, #0
- add r2, sp, #4
- bl MOD11_0223178C
- strb r0, [r4, #6]
- ldr r0, _0224E7E4 ; =MOD11_02253008
- add r1, r4, #0
- mov r2, #0
- bl FUN_0200CA44
- add sp, #0x28
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0224E7E4: .word MOD11_02253008
-
- thumb_func_start MOD11_0224E7E8
-MOD11_0224E7E8: ; 0x0224E7E8
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x28
- add r5, r0, #0
- add r3, sp, #4
- add r6, r1, #0
- add r7, r2, #0
- bl MOD11_02253C48
- add r0, r5, #0
- bl MOD11_022300C4
- str r0, [sp]
- mov r0, #5
- mov r1, #8
- bl AllocFromHeap
- add r4, r0, #0
- str r5, [r4]
- ldrb r0, [r7]
- strb r0, [r4, #4]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r6, r0]
- strb r0, [r4, #5]
- add r0, r5, #0
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r1, [sp]
- add r0, r5, #0
- add r2, sp, #4
- bl MOD11_0223178C
- strb r0, [r4, #6]
- ldr r0, _0224E83C ; =MOD11_02253008
- add r1, r4, #0
- mov r2, #0
- bl FUN_0200CA44
- add sp, #0x28
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0224E83C: .word MOD11_02253008
-
- thumb_func_start MOD11_0224E840
-MOD11_0224E840: ; 0x0224E840
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- add r5, r0, #0
- add r2, sp, #0
- add r6, r1, #0
- bl MOD11_02253D28
- add r0, r5, #0
- bl MOD11_022300C4
- add r7, r0, #0
- mov r0, #5
- mov r1, #8
- bl AllocFromHeap
- add r4, r0, #0
- str r5, [r4]
- mov r0, #0x22
- strb r0, [r4, #4]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r6, r0]
- strb r0, [r4, #5]
- add r0, r5, #0
- bl MOD11_02230E54
- add r3, r0, #0
- add r0, r5, #0
- add r1, r7, #0
- add r2, sp, #0
- bl MOD11_0223178C
- strb r0, [r4, #6]
- ldr r0, _0224E890 ; =MOD11_02253008
- add r1, r4, #0
- mov r2, #0
- bl FUN_0200CA44
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0224E890: .word MOD11_02253008
-
- thumb_func_start MOD11_0224E894
-MOD11_0224E894: ; 0x0224E894
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x28
- add r5, r0, #0
- add r3, sp, #4
- add r6, r1, #0
- add r7, r2, #0
- bl MOD11_02253DD4
- add r0, r5, #0
- bl MOD11_022300C4
- str r0, [sp]
- mov r0, #5
- mov r1, #8
- bl AllocFromHeap
- add r4, r0, #0
- str r5, [r4]
- ldrb r0, [r7]
- strb r0, [r4, #4]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r6, r0]
- strb r0, [r4, #5]
- add r0, r5, #0
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r1, [sp]
- add r0, r5, #0
- add r2, sp, #4
- bl MOD11_0223178C
- strb r0, [r4, #6]
- ldr r0, _0224E8E8 ; =MOD11_02253008
- add r1, r4, #0
- mov r2, #0
- bl FUN_0200CA44
- add sp, #0x28
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0224E8E8: .word MOD11_02253008
-
- thumb_func_start MOD11_0224E8EC
-MOD11_0224E8EC: ; 0x0224E8EC
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- mov r0, #5
- mov r1, #0xc
- bl AllocFromHeap
- add r1, r0, #0
- add r0, r4, #0
- str r5, [r1]
- add r0, #0x94
- ldrb r0, [r0]
- mov r2, #0
- strb r0, [r1, #8]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r4, r0]
- add r4, #0x28
- strb r0, [r1, #9]
- strb r2, [r1, #0xa]
- ldr r0, _0224E920 ; =MOD11_02252FBC
- str r4, [r1, #4]
- bl FUN_0200CA44
- pop {r3, r4, r5, pc}
- nop
-_0224E920: .word MOD11_02252FBC
-
- thumb_func_start MOD11_0224E924
-MOD11_0224E924: ; 0x0224E924
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- ldr r1, _0224E9B8 ; =0x00000196
- add r4, r2, #0
- ldrb r2, [r5, r1]
- add r6, r0, #0
- cmp r2, #0
- bne _0224E976
- bl MOD11_022300C4
- str r0, [sp]
- mov r0, #5
- mov r1, #0xc
- bl AllocFromHeap
- add r7, r0, #0
- str r6, [r7]
- ldrb r0, [r4]
- strb r0, [r7, #4]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r5, r0]
- strb r0, [r7, #5]
- mov r0, #0
- strb r0, [r7, #7]
- add r0, r6, #0
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r1, [sp]
- add r0, r6, #0
- add r2, r4, #4
- bl MOD11_0223178C
- strb r0, [r7, #6]
- ldr r0, _0224E9BC ; =MOD11_0225304C
- add r1, r7, #0
- mov r2, #0
- bl FUN_0200CA44
- pop {r3, r4, r5, r6, r7, pc}
-_0224E976:
- cmp r2, #1
- bne _0224E992
- sub r1, r1, #2
- ldrb r1, [r5, r1]
- bl MOD11_02256004
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r5, r1]
- ldrb r2, [r4]
- add r0, r6, #0
- bl MOD11_022567B8
- pop {r3, r4, r5, r6, r7, pc}
-_0224E992:
- bl MOD11_0222FF74
- mov r1, #4
- tst r0, r1
- bne _0224E9A8
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r5, r1]
- add r0, r6, #0
- bl MOD11_02256004
-_0224E9A8:
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r5, r1]
- ldrb r2, [r4]
- add r0, r6, #0
- bl MOD11_022567B8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0224E9B8: .word 0x00000196
-_0224E9BC: .word MOD11_0225304C
-
- thumb_func_start MOD11_0224E9C0
-MOD11_0224E9C0: ; 0x0224E9C0
- push {r3, r4, r5, r6, r7, lr}
- add r6, r1, #0
- add r4, r6, #0
- add r4, #0x28
- add r7, r0, #0
- add r5, r2, #0
- mov r0, #0
- add r1, r4, #0
- mov r2, #1
- bl MIi_CpuClearFast
- mov r0, #0x65
- str r7, [r4, #0xc]
- lsl r0, r0, #2
- ldrb r1, [r6, r0]
- add r0, r4, #0
- add r0, #0x24
- strb r1, [r0]
- add r0, r7, #0
- bl MOD11_0222FF74
- add r1, r0, #0
- ldr r0, _0224EA70 ; =0x00000195
- ldrb r0, [r6, r0]
- bl MOD11_02257F6C
- add r1, r4, #0
- add r1, #0x25
- strb r0, [r1]
- add r0, r4, #0
- ldrb r1, [r5]
- add r0, #0x4c
- mov r2, #0
- strb r1, [r0]
- mov r0, #2
- ldrsh r0, [r5, r0]
- str r0, [r4, #0x28]
- ldrh r0, [r5, #4]
- str r0, [r4, #0x2c]
- add r0, r4, #0
- ldrb r1, [r5, #1]
- add r0, #0x48
- strb r1, [r0]
- ldrb r0, [r5, #7]
- lsl r0, r0, #0x19
- lsr r1, r0, #0x1e
- add r0, r4, #0
- add r0, #0x49
- strb r1, [r0]
- str r2, [r4, #0x30]
- ldr r0, [r5, #8]
- sub r2, #0x21
- str r0, [r4, #0x38]
- ldr r0, [r5, #0xc]
- str r0, [r4, #0x3c]
- add r0, r4, #0
- ldrb r1, [r5, #6]
- add r0, #0x26
- strb r1, [r0]
- ldrb r0, [r5, #7]
- lsl r0, r0, #0x1b
- lsr r1, r0, #0x1b
- add r0, r4, #0
- add r0, #0x4a
- strb r1, [r0]
- ldrb r0, [r5, #7]
- lsl r0, r0, #0x18
- lsr r1, r0, #0x1f
- add r0, r4, #0
- add r0, #0x4b
- strb r1, [r0]
- add r0, r4, #0
- ldr r1, [r5, #0x10]
- add r0, #0x27
- strb r1, [r0]
- ldr r1, [r4, #0x28]
- add r0, r4, #0
- bl MOD11_02256D70
- add r1, r4, #0
- ldr r0, [r4, #0xc]
- add r1, #0x24
- add r4, #0x4c
- ldrb r1, [r1]
- ldrb r2, [r4]
- bl MOD11_022567B8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0224EA70: .word 0x00000195
-
- thumb_func_start MOD11_0224EA74
-MOD11_0224EA74: ; 0x0224EA74
- push {r4, r5, r6, lr}
- add r5, r0, #0
- add r6, r1, #0
- mov r0, #5
- mov r1, #0x10
- add r4, r2, #0
- bl AllocFromHeap
- add r1, r0, #0
- mov r2, #0
- strb r2, [r1, #0xa]
- str r5, [r1]
- ldrb r0, [r4]
- strb r0, [r1, #8]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r6, r0]
- strb r0, [r1, #9]
- ldrh r0, [r4, #2]
- strh r0, [r1, #0xc]
- ldrb r0, [r4, #1]
- strb r0, [r1, #0xe]
- ldr r0, _0224EAA8 ; =MOD11_022533F4
- bl FUN_0200CA44
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0224EAA8: .word MOD11_022533F4
-
- thumb_func_start MOD11_0224EAAC
-MOD11_0224EAAC: ; 0x0224EAAC
- push {r4, r5, r6, lr}
- add r6, r0, #0
- add r5, r1, #0
- mov r0, #5
- mov r1, #0x10
- add r4, r2, #0
- bl AllocFromHeap
- add r1, r0, #0
- mov r2, #0
- strb r2, [r1, #0xa]
- str r6, [r1]
- ldr r0, [r5, #0x20]
- str r0, [r1, #4]
- ldrb r0, [r4]
- strb r0, [r1, #8]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r5, r0]
- strb r0, [r1, #9]
- ldrb r0, [r4, #1]
- strb r0, [r1, #0xb]
- strb r2, [r1, #0xc]
- ldrb r0, [r4, #2]
- strb r0, [r1, #0xd]
- ldr r0, _0224EAE8 ; =MOD11_0225352C
- bl FUN_0200CA44
- pop {r4, r5, r6, pc}
- nop
-_0224EAE8: .word MOD11_0225352C
-
- thumb_func_start MOD11_0224EAEC
-MOD11_0224EAEC: ; 0x0224EAEC
- push {r4, r5, r6, lr}
- add r6, r0, #0
- add r5, r1, #0
- mov r0, #5
- mov r1, #0x10
- add r4, r2, #0
- bl AllocFromHeap
- add r1, r0, #0
- mov r0, #0
- strb r0, [r1, #7]
- str r6, [r1]
- ldrb r2, [r4]
- strb r2, [r1, #4]
- mov r2, #0x65
- lsl r2, r2, #2
- ldrb r3, [r5, r2]
- add r2, r2, #1
- strb r3, [r1, #5]
- ldrb r2, [r5, r2]
- strb r2, [r1, #6]
-_0224EB16:
- add r2, r4, r0
- ldrb r3, [r2, #2]
- add r2, r1, r0
- add r0, r0, #1
- strb r3, [r2, #8]
- cmp r0, #6
- blt _0224EB16
- ldr r0, _0224EB30 ; =MOD11_0225359C
- mov r2, #0
- strb r2, [r1, #0xe]
- bl FUN_0200CA44
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0224EB30: .word MOD11_0225359C
-
- thumb_func_start MOD11_0224EB34
-MOD11_0224EB34: ; 0x0224EB34
- push {r4, r5, r6, lr}
- add r5, r0, #0
- add r4, r1, #0
- mov r0, #5
- mov r1, #0x10
- add r6, r2, #0
- bl AllocFromHeap
- add r1, r0, #0
- mov r2, #0
- strb r2, [r1, #7]
- str r5, [r1]
- ldrb r0, [r6]
- strb r0, [r1, #4]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r3, [r4, r0]
- add r0, r0, #1
- strb r3, [r1, #5]
- ldrb r0, [r4, r0]
- strb r0, [r1, #6]
- ldr r0, _0224EB68 ; =MOD11_02253650
- strb r2, [r1, #0xe]
- bl FUN_0200CA44
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0224EB68: .word MOD11_02253650
-
- thumb_func_start MOD11_0224EB6C
-MOD11_0224EB6C: ; 0x0224EB6C
- push {r4, r5, r6, lr}
- add r6, r0, #0
- add r5, r1, #0
- mov r0, #5
- mov r1, #0x10
- add r4, r2, #0
- bl AllocFromHeap
- add r1, r0, #0
- mov r0, #0
- strb r0, [r1, #7]
- str r6, [r1]
- ldrb r2, [r4]
- strb r2, [r1, #4]
- mov r2, #0x65
- lsl r2, r2, #2
- ldrb r3, [r5, r2]
- add r2, r2, #1
- strb r3, [r1, #5]
- ldrb r2, [r5, r2]
- strb r2, [r1, #6]
-_0224EB96:
- add r2, r4, r0
- ldrb r3, [r2, #2]
- add r2, r1, r0
- add r0, r0, #1
- strb r3, [r2, #8]
- cmp r0, #6
- blt _0224EB96
- mov r0, #1
- strb r0, [r1, #0xe]
- ldr r0, _0224EBB4 ; =MOD11_0225359C
- mov r2, #0
- bl FUN_0200CA44
- pop {r4, r5, r6, pc}
- nop
-_0224EBB4: .word MOD11_0225359C
-
- thumb_func_start MOD11_0224EBB8
-MOD11_0224EBB8: ; 0x0224EBB8
- push {r4, r5, r6, lr}
- add r5, r0, #0
- add r4, r1, #0
- mov r0, #5
- mov r1, #0x10
- add r6, r2, #0
- bl AllocFromHeap
- add r1, r0, #0
- mov r2, #0
- strb r2, [r1, #7]
- str r5, [r1]
- ldrb r0, [r6]
- strb r0, [r1, #4]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r3, [r4, r0]
- add r0, r0, #1
- strb r3, [r1, #5]
- ldrb r0, [r4, r0]
- strb r0, [r1, #6]
- mov r0, #1
- strb r0, [r1, #0xe]
- ldr r0, _0224EBF0 ; =MOD11_02253650
- bl FUN_0200CA44
- pop {r4, r5, r6, pc}
- nop
-_0224EBF0: .word MOD11_02253650
-
- thumb_func_start MOD11_0224EBF4
-MOD11_0224EBF4: ; 0x0224EBF4
- push {r4, r5, lr}
- sub sp, #0x24
- add r4, r1, #0
- ldr r1, _0224EC44 ; =0x00000196
- add r5, r0, #0
- ldrb r1, [r4, r1]
- cmp r1, #0
- bne _0224EC32
- bl MOD11_022300C4
- add r1, r0, #0
- ldr r2, _0224EC48 ; =0x0000039B
- add r0, sp, #0
- strh r2, [r0, #2]
- mov r3, #0
- strb r3, [r0, #1]
- add r0, r5, #0
- add r2, sp, #0
- bl MOD11_0223178C
- add r0, r5, #0
- mov r1, #0
- bl MOD11_0222FF6C
- mov r1, #1
- bl FUN_0200D858
- add r1, r0, #0
- add r0, r5, #0
- bl MOD11_022312C8
-_0224EC32:
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r4, r1]
- add r0, r5, #0
- mov r2, #0x37
- bl MOD11_022567B8
- add sp, #0x24
- pop {r4, r5, pc}
- .align 2, 0
-_0224EC44: .word 0x00000196
-_0224EC48: .word 0x0000039B
-
- thumb_func_start MOD11_0224EC4C
-MOD11_0224EC4C: ; 0x0224EC4C
- push {r4, r5, r6, lr}
- sub sp, #0x50
- mov r3, #0x65
- add r4, r1, #0
- lsl r3, r3, #2
- add r6, r2, #0
- ldrb r3, [r4, r3]
- add r1, r6, #0
- add r2, sp, #0
- add r5, r0, #0
- bl MOD11_0225452C
- add r0, sp, #0
- mov r1, #5
- bl MOD08_0222A494
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r4, r1]
- ldrb r2, [r6]
- add r0, r5, #0
- bl MOD11_022567B8
- add sp, #0x50
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224EC80
-MOD11_0224EC80: ; 0x0224EC80
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- mov r0, #5
- mov r1, #0x10
- bl AllocFromHeap
- add r1, r0, #0
- mov r2, #0
- strb r2, [r1, #0xe]
- str r5, [r1]
- add r0, r4, #0
- str r4, [r1, #4]
- add r0, #0x94
- ldrb r0, [r0]
- strb r0, [r1, #0xc]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r4, r0]
- strb r0, [r1, #0xd]
- ldr r0, [r4, #0x20]
- str r0, [r1, #8]
- ldr r0, _0224ECB4 ; =MOD11_022536D4
- bl FUN_0200CA44
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0224ECB4: .word MOD11_022536D4
-
- thumb_func_start MOD11_0224ECB8
-MOD11_0224ECB8: ; 0x0224ECB8
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- mov r0, #5
- mov r1, #0x10
- bl AllocFromHeap
- add r1, r0, #0
- mov r2, #0
- strb r2, [r1, #0xe]
- str r5, [r1]
- add r0, r4, #0
- str r4, [r1, #4]
- add r0, #0x94
- ldrb r0, [r0]
- strb r0, [r1, #0xc]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r4, r0]
- strb r0, [r1, #0xd]
- ldr r0, [r4, #0x20]
- str r0, [r1, #8]
- ldr r0, _0224ECEC ; =MOD11_02253720
- bl FUN_0200CA44
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0224ECEC: .word MOD11_02253720
-
- thumb_func_start MOD11_0224ECF0
-MOD11_0224ECF0: ; 0x0224ECF0
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- add r5, r0, #0
- add r2, sp, #0
- add r6, r1, #0
- bl MOD11_02254108
- add r0, r5, #0
- bl MOD11_022300C4
- add r7, r0, #0
- mov r0, #5
- mov r1, #8
- bl AllocFromHeap
- add r4, r0, #0
- str r5, [r4]
- mov r0, #0x3b
- strb r0, [r4, #4]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r6, r0]
- strb r0, [r4, #5]
- add r0, r5, #0
- bl MOD11_02230E54
- add r3, r0, #0
- add r0, r5, #0
- add r1, r7, #0
- add r2, sp, #0
- bl MOD11_0223178C
- strb r0, [r4, #6]
- ldr r0, _0224ED40 ; =MOD11_02253008
- add r1, r4, #0
- mov r2, #0
- bl FUN_0200CA44
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0224ED40: .word MOD11_02253008
-
- thumb_func_start MOD11_0224ED44
-MOD11_0224ED44: ; 0x0224ED44
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- add r5, r0, #0
- add r3, sp, #0
- add r6, r1, #0
- bl MOD11_022541C4
- add r0, r5, #0
- bl MOD11_022300C4
- add r7, r0, #0
- mov r0, #5
- mov r1, #8
- bl AllocFromHeap
- add r4, r0, #0
- str r5, [r4]
- mov r0, #0x3c
- strb r0, [r4, #4]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r6, r0]
- strb r0, [r4, #5]
- add r0, r5, #0
- bl MOD11_02230E54
- add r3, r0, #0
- add r0, r5, #0
- add r1, r7, #0
- add r2, sp, #0
- bl MOD11_0223178C
- strb r0, [r4, #6]
- ldr r0, _0224ED94 ; =MOD11_02253008
- add r1, r4, #0
- mov r2, #0
- bl FUN_0200CA44
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0224ED94: .word MOD11_02253008
-
- thumb_func_start MOD11_0224ED98
-MOD11_0224ED98: ; 0x0224ED98
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- add r5, r0, #0
- add r2, sp, #0
- add r6, r1, #0
- bl MOD11_022542B4
- add r0, r5, #0
- bl MOD11_022300C4
- add r7, r0, #0
- mov r0, #5
- mov r1, #8
- bl AllocFromHeap
- add r4, r0, #0
- str r5, [r4]
- mov r0, #0x3d
- strb r0, [r4, #4]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r6, r0]
- strb r0, [r4, #5]
- add r0, r5, #0
- bl MOD11_02230E54
- add r3, r0, #0
- add r0, r5, #0
- add r1, r7, #0
- add r2, sp, #0
- bl MOD11_0223178C
- strb r0, [r4, #6]
- ldr r0, _0224EDE8 ; =MOD11_02253008
- add r1, r4, #0
- mov r2, #0
- bl FUN_0200CA44
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0224EDE8: .word MOD11_02253008
-
- thumb_func_start MOD11_0224EDEC
-MOD11_0224EDEC: ; 0x0224EDEC
- push {r4, r5, r6, lr}
- sub sp, #0x50
- mov r3, #0x65
- add r4, r1, #0
- lsl r3, r3, #2
- add r6, r2, #0
- ldrb r3, [r4, r3]
- add r1, r6, #0
- add r2, sp, #0
- add r5, r0, #0
- bl MOD11_0225452C
- add r0, sp, #0
- mov r1, #5
- bl MOD08_0222A568
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r4, r1]
- ldrb r2, [r6]
- add r0, r5, #0
- bl MOD11_022567B8
- add sp, #0x50
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224EE20
-MOD11_0224EE20: ; 0x0224EE20
- push {r4, r5, r6, lr}
- add r6, r0, #0
- add r5, r1, #0
- ldr r0, _0224EE70 ; =0x00000195
- mov r1, #1
- ldrb r0, [r5, r0]
- add r4, r2, #0
- tst r0, r1
- beq _0224EE36
- mov r1, #0x75
- b _0224EE38
-_0224EE36:
- sub r1, #0x76
-_0224EE38:
- ldrb r0, [r4, #1]
- cmp r0, #0
- beq _0224EE48
- cmp r0, #1
- beq _0224EE58
- cmp r0, #2
- beq _0224EE50
- b _0224EE5E
-_0224EE48:
- ldr r0, _0224EE74 ; =0x000006FE
- bl FUN_020054A8
- b _0224EE5E
-_0224EE50:
- ldr r0, _0224EE78 ; =0x000006FC
- bl FUN_020054A8
- b _0224EE5E
-_0224EE58:
- ldr r0, _0224EE7C ; =0x000006FD
- bl FUN_020054A8
-_0224EE5E:
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r5, r1]
- ldrb r2, [r4]
- add r0, r6, #0
- bl MOD11_022567B8
- pop {r4, r5, r6, pc}
- nop
-_0224EE70: .word 0x00000195
-_0224EE74: .word 0x000006FE
-_0224EE78: .word 0x000006FC
-_0224EE7C: .word 0x000006FD
-
- thumb_func_start MOD11_0224EE80
-MOD11_0224EE80: ; 0x0224EE80
- push {r4, r5, r6, lr}
- add r4, r2, #0
- add r6, r0, #0
- ldrh r0, [r4, #2]
- add r5, r1, #0
- bl FUN_0200521C
- mov r1, #0x65
- lsl r1, r1, #2
- ldrb r1, [r5, r1]
- ldrb r2, [r4]
- add r0, r6, #0
- bl MOD11_022567B8
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0224EEA0
-MOD11_0224EEA0: ; 0x0224EEA0
- push {r3, r4, r5, r6, lr}
- sub sp, #0x6c
- add r4, r1, #0
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD11_02230070
- ldrb r1, [r4, #0x12]
- add r5, r0, #0
- cmp r1, #5
- bls _0224EEB8
- b _0224F2C2
-_0224EEB8:
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0224EEC4: ; jump table
- .short _0224EED0 - _0224EEC4 - 2 ; case 0
- .short _0224EEDA - _0224EEC4 - 2 ; case 1
- .short _0224EEE8 - _0224EEC4 - 2 ; case 2
- .short _0224F15E - _0224EEC4 - 2 ; case 3
- .short _0224F1B2 - _0224EEC4 - 2 ; case 4
- .short _0224F1D0 - _0224EEC4 - 2 ; case 5
-_0224EED0:
- mov r0, #0x1c
- str r0, [r4, #0x20]
- ldrb r0, [r4, #0x12]
- add r0, r0, #1
- strb r0, [r4, #0x12]
-_0224EEDA:
- ldr r0, [r4, #0x20]
- sub r0, r0, #1
- str r0, [r4, #0x20]
- bne _0224EFAE
- ldrb r0, [r4, #0x12]
- add r0, r0, #1
- strb r0, [r4, #0x12]
-_0224EEE8:
- ldrb r0, [r4, #0x13]
- add r1, sp, #0x10
- cmp r0, #2
- ldr r0, [r4, #0xc]
- beq _0224EEF4
- b _0224F040
-_0224EEF4:
- ldr r0, [r0]
- add r1, #2
- add r2, sp, #0x10
- bl FUN_0200C7A0
- ldr r0, [r4, #0x1c]
- cmp r0, #1
- beq _0224EF08
- cmp r0, #3
- bne _0224EF2A
-_0224EF08:
- add r1, sp, #0x10
- mov r0, #2
- ldrsh r0, [r1, r0]
- cmp r0, #0xc0
- ldr r0, [r4, #0xc]
- bge _0224EF20
- ldr r0, [r0]
- mov r1, #8
- mov r2, #0
- bl FUN_0200C82C
- b _0224EF2A
-_0224EF20:
- ldr r0, [r0]
- mov r1, #0xc0
- mov r2, #0x58
- bl FUN_0200C714
-_0224EF2A:
- ldr r0, [r4, #0xc]
- add r1, sp, #0x10
- ldr r0, [r0]
- add r1, #2
- add r2, sp, #0x10
- bl FUN_0200C7A0
- ldr r0, [r4, #0x1c]
- cmp r0, #1
- bne _0224EF4E
- add r3, sp, #0x10
- mov r2, #2
- ldrsh r2, [r3, r2]
- ldr r0, [r4, #8]
- mov r1, #0
- bl FUN_02007558
- b _0224EF9E
-_0224EF4E:
- cmp r0, #3
- bne _0224EF78
- ldr r0, [r4, #8]
- mov r1, #0
- bl FUN_0200782C
- add r3, sp, #0x10
- mov r2, #2
- ldrsh r1, [r3, r2]
- sub r0, r0, r1
- strh r0, [r3, #2]
- ldrsh r0, [r3, r2]
- mov r1, #0
- sub r0, #0x18
- strh r0, [r3, #2]
- ldrsh r2, [r3, r2]
- ldr r0, [r4, #8]
- neg r2, r2
- bl FUN_020079E0
- b _0224EF9E
-_0224EF78:
- cmp r0, #5
- bne _0224EF9E
- ldr r0, [r4, #8]
- mov r1, #0
- bl FUN_0200782C
- add r3, sp, #0x10
- mov r2, #2
- ldrsh r1, [r3, r2]
- sub r0, r1, r0
- strh r0, [r3, #2]
- ldrsh r0, [r3, r2]
- mov r1, #0
- sub r0, #0x10
- strh r0, [r3, #2]
- ldrsh r2, [r3, r2]
- ldr r0, [r4, #8]
- bl FUN_020079E0
-_0224EF9E:
- ldr r0, [r4, #8]
- mov r1, #0
- bl FUN_0200782C
- mov r1, #0x14
- ldrsh r1, [r4, r1]
- cmp r0, r1
- bge _0224EFB0
-_0224EFAE:
- b _0224F2D8
-_0224EFB0:
- ldr r0, [r4, #8]
- mov r1, #1
- bl FUN_02007314
- ldr r0, [r4, #8]
- mov r1, #0x2c
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #8]
- mov r1, #0x2d
- mov r2, #0
- bl FUN_02007558
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #8]
- mov r1, #0
- bl FUN_02007558
- ldr r0, [r4]
- bl MOD11_02230E80
- ldr r1, [r4, #0x24]
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- ldrb r1, [r4, #0x11]
- str r1, [sp, #8]
- ldrh r2, [r4, #0x16]
- ldrb r3, [r4, #0x13]
- ldr r1, [r4, #8]
- bl FUN_02069038
- ldrb r1, [r4, #0x11]
- ldr r0, [r4]
- bl MOD11_02230E88
- mov r1, #0x7f
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- mov r1, #5
- str r1, [sp, #8]
- ldrh r2, [r4, #0x16]
- ldr r1, [r4, #0x18]
- mov r3, #0x75
- bl FUN_02069FB0
- ldr r0, [r4, #0x1c]
- cmp r0, #1
- beq _0224F01C
- cmp r0, #3
- bne _0224F028
-_0224F01C:
- ldr r0, [r4, #0xc]
- mov r1, #0xc0
- ldr r0, [r0]
- mov r2, #0x58
- bl FUN_0200C714
-_0224F028:
- mov r2, #0
- str r2, [sp]
- ldr r0, [r4, #8]
- mov r1, #8
- add r3, r2, #0
- bl FUN_02007E68
- ldrb r0, [r4, #0x12]
- add sp, #0x6c
- add r0, r0, #1
- strb r0, [r4, #0x12]
- pop {r3, r4, r5, r6, pc}
-_0224F040:
- ldr r0, [r0]
- add r1, #2
- add r2, sp, #0x10
- bl FUN_0200C7A0
- ldr r0, [r4, #0x1c]
- cmp r0, #0
- beq _0224F054
- cmp r0, #2
- bne _0224F076
-_0224F054:
- add r0, sp, #0x10
- mov r1, #2
- ldrsh r0, [r0, r1]
- cmp r0, #0x40
- ldr r0, [r4, #0xc]
- ble _0224F06C
- ldr r0, [r0]
- sub r1, #0xa
- mov r2, #0
- bl FUN_0200C82C
- b _0224F076
-_0224F06C:
- ldr r0, [r0]
- mov r1, #0x40
- mov r2, #0x88
- bl FUN_0200C714
-_0224F076:
- ldr r0, [r4, #0xc]
- add r1, sp, #0x10
- ldr r0, [r0]
- add r1, #2
- add r2, sp, #0x10
- bl FUN_0200C7A0
- ldr r0, [r4, #0x1c]
- cmp r0, #0
- bne _0224F09A
- add r3, sp, #0x10
- mov r2, #2
- ldrsh r2, [r3, r2]
- ldr r0, [r4, #8]
- mov r1, #0
- bl FUN_02007558
- b _0224F0EA
-_0224F09A:
- cmp r0, #2
- bne _0224F0C2
- ldr r0, [r4, #8]
- mov r1, #0
- bl FUN_0200782C
- add r3, sp, #0x10
- mov r2, #2
- ldrsh r1, [r3, r2]
- sub r0, r1, r0
- strh r0, [r3, #2]
- ldrsh r0, [r3, r2]
- mov r1, #0
- sub r0, #0x18
- strh r0, [r3, #2]
- ldrsh r2, [r3, r2]
- ldr r0, [r4, #8]
- bl FUN_020079E0
- b _0224F0EA
-_0224F0C2:
- cmp r0, #4
- bne _0224F0EA
- ldr r0, [r4, #8]
- mov r1, #0
- bl FUN_0200782C
- add r3, sp, #0x10
- mov r2, #2
- ldrsh r1, [r3, r2]
- sub r0, r0, r1
- strh r0, [r3, #2]
- ldrsh r0, [r3, r2]
- mov r1, #0
- sub r0, #0x10
- strh r0, [r3, #2]
- ldrsh r2, [r3, r2]
- ldr r0, [r4, #8]
- neg r2, r2
- bl FUN_020079E0
-_0224F0EA:
- mov r0, #0x14
- ldrsh r5, [r4, r0]
- ldr r0, [r4, #8]
- mov r1, #0
- bl FUN_0200782C
- cmp r0, r5
- bgt _0224F1C0
- ldr r0, [r4, #8]
- mov r1, #0
- add r2, r5, #0
- bl FUN_02007558
- ldr r0, [r4]
- bl MOD11_02230E80
- ldr r1, [r4, #0x24]
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- ldrb r1, [r4, #0x11]
- str r1, [sp, #8]
- ldrh r2, [r4, #0x16]
- ldrb r3, [r4, #0x13]
- ldr r1, [r4, #8]
- bl FUN_02069038
- ldrb r1, [r4, #0x11]
- ldr r0, [r4]
- bl MOD11_02230E88
- mov r1, #0x7f
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- mov r3, #5
- str r3, [sp, #8]
- ldrh r2, [r4, #0x16]
- ldr r1, [r4, #0x18]
- sub r3, #0x7a
- bl FUN_02069FB0
- ldr r0, [r4, #0x1c]
- cmp r0, #0
- beq _0224F148
- cmp r0, #2
- bne _0224F154
-_0224F148:
- ldr r0, [r4, #0xc]
- mov r1, #0x40
- ldr r0, [r0]
- mov r2, #0x88
- bl FUN_0200C714
-_0224F154:
- ldrb r0, [r4, #0x12]
- add sp, #0x6c
- add r0, r0, #1
- strb r0, [r4, #0x12]
- pop {r3, r4, r5, r6, pc}
-_0224F15E:
- ldr r0, [r4]
- bl MOD11_02230E80
- ldrb r1, [r4, #0x11]
- bl FUN_02014D7C
- cmp r0, #1
- bne _0224F1C0
- ldr r0, [r4, #8]
- bl FUN_02007390
- cmp r0, #0
- bne _0224F1C0
- ldr r0, [r4, #0x28]
- cmp r0, #0
- beq _0224F1AA
- ldrb r1, [r4, #0x11]
- mov r0, #0xb
- add r2, sp, #0x14
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- mov r3, #1
- bl MOD11_02256854
- ldr r0, [r4]
- ldr r1, [r4, #4]
- add r2, r5, #0
- add r3, sp, #0x14
- bl MOD11_02254404
- mov r0, #4
- add sp, #0x6c
- strb r0, [r4, #0x12]
- pop {r3, r4, r5, r6, pc}
-_0224F1AA:
- mov r0, #0xff
- add sp, #0x6c
- strb r0, [r4, #0x12]
- pop {r3, r4, r5, r6, pc}
-_0224F1B2:
- bl MOD08_02212384
- add r0, r5, #0
- bl MOD08_022123A0
- cmp r0, #0
- beq _0224F1C2
-_0224F1C0:
- b _0224F2D8
-_0224F1C2:
- add r0, r5, #0
- bl MOD08_022123B0
- mov r0, #0xff
- add sp, #0x6c
- strb r0, [r4, #0x12]
- pop {r3, r4, r5, r6, pc}
-_0224F1D0:
- ldrb r5, [r4, #0x13]
- cmp r5, #2
- bne _0224F25E
- ldr r0, [r4, #8]
- mov r1, #1
- bl FUN_02007314
- ldr r0, [r4, #8]
- mov r1, #0x2c
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #8]
- mov r1, #0x2d
- mov r2, #0
- bl FUN_02007558
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #8]
- mov r1, #0
- bl FUN_02007558
- ldr r0, [r4]
- bl MOD11_02230E80
- ldr r1, [r4, #0x24]
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- ldrb r1, [r4, #0x11]
- str r1, [sp, #8]
- ldrh r2, [r4, #0x16]
- ldrb r3, [r4, #0x13]
- ldr r1, [r4, #8]
- bl FUN_02069038
- ldrb r1, [r4, #0x11]
- ldr r0, [r4]
- bl MOD11_02230E88
- mov r1, #0x7f
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- mov r1, #5
- str r1, [sp, #8]
- ldrh r2, [r4, #0x16]
- ldr r1, [r4, #0x18]
- mov r3, #0x75
- bl FUN_02069FB0
- ldr r0, [r4, #0x1c]
- cmp r0, #1
- beq _0224F242
- cmp r0, #3
- bne _0224F24E
-_0224F242:
- ldr r0, [r4, #0xc]
- mov r1, #0xc0
- ldr r0, [r0]
- mov r2, #0x58
- bl FUN_0200C714
-_0224F24E:
- mov r2, #0
- str r2, [sp]
- ldr r0, [r4, #8]
- mov r1, #8
- add r3, r2, #0
- bl FUN_02007E68
- b _0224F2BA
-_0224F25E:
- ldr r0, [r4]
- bl MOD11_02230E80
- ldr r1, [r4, #0x24]
- add r3, r5, #0
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- ldrb r1, [r4, #0x11]
- str r1, [sp, #8]
- ldrh r2, [r4, #0x16]
- ldr r1, [r4, #8]
- bl FUN_02069038
- ldrb r1, [r4, #0x11]
- ldr r0, [r4]
- bl MOD11_02230E88
- mov r1, #0x7f
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- mov r3, #5
- str r3, [sp, #8]
- ldrh r2, [r4, #0x16]
- ldr r1, [r4, #0x18]
- sub r3, #0x7a
- bl FUN_02069FB0
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- ldr r0, [r4, #8]
- mov r1, #0
- bl FUN_02007558
- ldr r0, [r4, #0x1c]
- cmp r0, #0
- beq _0224F2AE
- cmp r0, #2
- bne _0224F2BA
-_0224F2AE:
- ldr r0, [r4, #0xc]
- mov r1, #0x40
- ldr r0, [r0]
- mov r2, #0x88
- bl FUN_0200C714
-_0224F2BA:
- mov r0, #3
- add sp, #0x6c
- strb r0, [r4, #0x12]
- pop {r3, r4, r5, r6, pc}
-_0224F2C2:
- ldrb r1, [r4, #0x11]
- ldrb r2, [r4, #0x10]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r6, #0
- bl FUN_0200CAB4
-_0224F2D8:
- add sp, #0x6c
- pop {r3, r4, r5, r6, pc}
-
- thumb_func_start MOD11_0224F2DC
-MOD11_0224F2DC: ; 0x0224F2DC
- push {r4, r5, lr}
- sub sp, #0x9c
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- add r0, #0x83
- ldrb r0, [r0]
- cmp r0, #7
- bls _0224F2F0
- b _0224F7A2
-_0224F2F0:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0224F2FC: ; jump table
- .short _0224F30C - _0224F2FC - 2 ; case 0
- .short _0224F322 - _0224F2FC - 2 ; case 1
- .short _0224F366 - _0224F2FC - 2 ; case 2
- .short _0224F4B0 - _0224F2FC - 2 ; case 3
- .short _0224F4CC - _0224F2FC - 2 ; case 4
- .short _0224F6E2 - _0224F2FC - 2 ; case 5
- .short _0224F6F6 - _0224F2FC - 2 ; case 6
- .short _0224F77C - _0224F2FC - 2 ; case 7
-_0224F30C:
- add r0, r4, #0
- mov r1, #0
- add r0, #0x96
- strb r1, [r0]
- add r0, r4, #0
- add r0, #0x83
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x83
- strb r1, [r0]
-_0224F322:
- add r1, sp, #0x38
- mov r0, #0
- str r0, [r1]
- str r0, [r1, #4]
- str r0, [r1, #8]
- add r0, r4, #0
- add r0, #0x82
- ldrb r0, [r0]
- add r1, r4, #0
- add r2, r4, #0
- str r0, [sp, #0x38]
- add r1, #0x81
- add r2, #0x8c
- ldrb r1, [r1]
- ldrb r2, [r2]
- ldr r0, [r4]
- bl MOD11_02230014
- str r0, [sp, #0x40]
- mov r0, #5
- add r1, sp, #0x38
- bl MOD08_02228218
- str r0, [r4, #8]
- bl MOD08_02228524
- add r0, r4, #0
- add r0, #0x83
- ldrb r0, [r0]
- add r4, #0x83
- add sp, #0x9c
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, pc}
-_0224F366:
- ldr r0, [r4, #4]
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_02229A80
- cmp r0, #0
- bne _0224F3AE
- ldr r0, [r4, #8]
- bl MOD08_02228570
- cmp r0, #1
- bne _0224F3AE
- ldr r0, [r4, #4]
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_02229A00
- cmp r0, #1
- bne _0224F3AE
- add r0, r4, #0
- add r0, #0x82
- ldrb r0, [r0]
- cmp r0, #4
- bne _0224F3B8
- add r0, r4, #0
- add r0, #0x96
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x96
- strb r1, [r0]
- add r0, r4, #0
- add r0, #0x96
- ldrb r0, [r0]
- cmp r0, #0xc
- bhs _0224F3B0
-_0224F3AE:
- b _0224F7C0
-_0224F3B0:
- add r0, r4, #0
- mov r1, #0
- add r0, #0x96
- strb r1, [r0]
-_0224F3B8:
- ldr r0, [r4]
- bl MOD11_02230068
- add r1, r4, #0
- add r1, #0x86
- add r5, r0, #0
- ldrh r1, [r1]
- add r0, sp, #0x24
- bl FUN_02069010
- add r0, r4, #0
- add r0, #0x82
- ldrb r3, [r0]
- mov r0, #6
- add r2, r4, #0
- add r1, r3, #0
- mul r1, r0
- ldr r0, _0224F690 ; =0x0222D552
- add r2, #0x14
- ldrsh r0, [r0, r1]
- str r0, [sp]
- ldr r0, _0224F694 ; =0x0222D554
- ldrsh r0, [r0, r1]
- add r1, r5, #0
- lsl r5, r3, #2
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x85
- ldrb r0, [r0]
- ldr r3, _0224F698 ; =0x0222D538
- str r0, [sp, #8]
- mov r0, #0x90
- ldrsb r0, [r4, r0]
- ldrsh r3, [r3, r5]
- str r0, [sp, #0xc]
- mov r0, #0x91
- ldrsb r0, [r4, r0]
- str r0, [sp, #0x10]
- add r0, r4, #0
- add r0, #0x93
- ldrb r0, [r0]
- str r0, [sp, #0x14]
- add r0, r4, #0
- add r0, #0x81
- ldrb r0, [r0]
- str r0, [sp, #0x18]
- add r0, sp, #0x24
- str r0, [sp, #0x1c]
- mov r0, #0
- str r0, [sp, #0x20]
- ldr r0, [r4]
- bl MOD11_02253A88
- ldr r1, [r4, #4]
- mov r2, #0
- str r0, [r1, #0x20]
- ldr r0, [r4, #4]
- mov r1, #0xc
- ldr r0, [r0, #0x20]
- bl FUN_02007558
- ldr r0, [r4, #4]
- mov r1, #0xd
- ldr r0, [r0, #0x20]
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #4]
- mov r1, #0x2c
- ldr r0, [r0, #0x20]
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #4]
- mov r1, #6
- ldr r0, [r0, #0x20]
- mov r2, #1
- bl FUN_02007558
- add r0, r4, #0
- add r0, #0x8e
- ldrh r0, [r0]
- mov r3, #0
- lsl r1, r0, #1
- ldr r0, _0224F69C ; =0x0225E84A
- ldrh r0, [r0, r1]
- mov r1, #0x10
- add r2, r1, #0
- str r0, [sp]
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x20]
- bl FUN_02007E68
- ldr r0, [r4, #4]
- mov r1, #6
- ldr r0, [r0, #0x20]
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #8]
- bl MOD08_022285A4
- add r0, r4, #0
- add r0, #0x84
- ldrb r0, [r0]
- cmp r0, #2
- ldr r0, _0224F6A0 ; =0x00000706
- bne _0224F498
- mov r1, #0x75
- bl FUN_020054A8
- b _0224F4A0
-_0224F498:
- mov r1, #0x74
- mvn r1, r1
- bl FUN_020054A8
-_0224F4A0:
- add r0, r4, #0
- add r0, #0x83
- ldrb r0, [r0]
- add r4, #0x83
- add sp, #0x9c
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, pc}
-_0224F4B0:
- ldr r0, [r4, #4]
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_022299E8
- cmp r0, #1
- beq _0224F4CC
- add r0, r4, #0
- add r0, #0x83
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x83
- strb r1, [r0]
-_0224F4CC:
- ldr r0, [r4, #4]
- mov r1, #0xc
- ldr r0, [r0, #0x20]
- bl FUN_0200782C
- mov r1, #1
- lsl r1, r1, #8
- cmp r0, r1
- bne _0224F5B2
- ldr r0, [r4, #8]
- bl MOD08_022285B4
- cmp r0, #0
- bne _0224F5B2
- add r0, r4, #0
- add r0, #0x84
- ldrb r0, [r0]
- cmp r0, #2
- bne _0224F534
- ldr r0, [r4, #4]
- mov r1, #1
- ldr r0, [r0, #0x20]
- bl FUN_02007314
- ldr r0, [r4, #4]
- mov r1, #0x2d
- ldr r0, [r0, #0x20]
- mov r2, #0
- bl FUN_02007558
- add r1, r4, #0
- add r1, #0x81
- ldrb r1, [r1]
- ldr r0, [r4]
- bl MOD11_02230E88
- mov r1, #0x7f
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- mov r1, #5
- add r2, r4, #0
- str r1, [sp, #8]
- add r1, r4, #0
- add r2, #0x86
- add r1, #0x88
- ldrh r2, [r2]
- ldr r1, [r1]
- mov r3, #0x75
- bl FUN_02069FB0
- b _0224F55E
-_0224F534:
- add r1, r4, #0
- add r1, #0x81
- ldrb r1, [r1]
- ldr r0, [r4]
- bl MOD11_02230E88
- mov r1, #0x7f
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- mov r3, #5
- add r2, r4, #0
- str r3, [sp, #8]
- add r1, r4, #0
- add r2, #0x86
- add r1, #0x88
- ldrh r2, [r2]
- ldr r1, [r1]
- sub r3, #0x7a
- bl FUN_02069FB0
-_0224F55E:
- ldr r0, [r4]
- bl MOD11_02230E80
- add r1, r4, #0
- add r1, #0x8d
- ldrb r1, [r1]
- add r2, r4, #0
- add r3, r4, #0
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- add r1, r4, #0
- add r1, #0x81
- ldrb r1, [r1]
- add r2, #0x86
- add r3, #0x84
- str r1, [sp, #8]
- ldr r1, [r4, #4]
- ldrh r2, [r2]
- ldrb r3, [r3]
- ldr r1, [r1, #0x20]
- bl FUN_02069038
- add r0, r4, #0
- add r0, #0x8e
- ldrh r0, [r0]
- mov r2, #0
- add r3, r2, #0
- lsl r1, r0, #1
- ldr r0, _0224F69C ; =0x0225E84A
- ldrh r0, [r0, r1]
- mov r1, #0x10
- str r0, [sp]
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x20]
- bl FUN_02007E68
- mov r0, #5
- add r4, #0x83
- add sp, #0x9c
- strb r0, [r4]
- pop {r4, r5, pc}
-_0224F5B2:
- ldr r0, [r4, #4]
- mov r1, #0xc
- ldr r0, [r0, #0x20]
- bl FUN_0200782C
- mov r2, #1
- lsl r2, r2, #8
- cmp r0, r2
- ldr r0, [r4, #4]
- blt _0224F6BC
- ldr r0, [r0, #0x20]
- mov r1, #0xc
- bl FUN_02007558
- ldr r0, [r4, #4]
- mov r1, #0xd
- add r2, r1, #0
- ldr r0, [r0, #0x20]
- add r2, #0xf3
- bl FUN_02007558
- add r0, r4, #0
- add r0, #0x84
- ldrb r0, [r0]
- cmp r0, #2
- bne _0224F628
- ldr r0, [r4, #4]
- mov r1, #1
- ldr r0, [r0, #0x20]
- bl FUN_02007314
- ldr r0, [r4, #4]
- mov r1, #0x2d
- ldr r0, [r0, #0x20]
- mov r2, #0
- bl FUN_02007558
- add r1, r4, #0
- add r1, #0x81
- ldrb r1, [r1]
- ldr r0, [r4]
- bl MOD11_02230E88
- mov r1, #0x7f
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- mov r1, #5
- add r2, r4, #0
- str r1, [sp, #8]
- add r1, r4, #0
- add r2, #0x86
- add r1, #0x88
- ldrh r2, [r2]
- ldr r1, [r1]
- mov r3, #0x75
- bl FUN_02069FB0
- b _0224F652
-_0224F628:
- add r1, r4, #0
- add r1, #0x81
- ldrb r1, [r1]
- ldr r0, [r4]
- bl MOD11_02230E88
- mov r1, #0x7f
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- mov r3, #5
- add r2, r4, #0
- str r3, [sp, #8]
- add r1, r4, #0
- add r2, #0x86
- add r1, #0x88
- ldrh r2, [r2]
- ldr r1, [r1]
- sub r3, #0x7a
- bl FUN_02069FB0
-_0224F652:
- ldr r0, [r4]
- bl MOD11_02230E80
- add r1, r4, #0
- add r1, #0x8d
- ldrb r1, [r1]
- add r2, r4, #0
- add r3, r4, #0
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- add r1, r4, #0
- add r1, #0x81
- ldrb r1, [r1]
- add r2, #0x86
- add r3, #0x84
- str r1, [sp, #8]
- ldr r1, [r4, #4]
- ldrh r2, [r2]
- ldrb r3, [r3]
- ldr r1, [r1, #0x20]
- bl FUN_02069038
- add r0, r4, #0
- add r0, #0x8e
- ldrh r0, [r0]
- mov r2, #0
- mov r3, #1
- lsl r1, r0, #1
- ldr r0, _0224F69C ; =0x0225E84A
- b _0224F6A4
- .align 2, 0
-_0224F690: .word 0x0222D552
-_0224F694: .word 0x0222D554
-_0224F698: .word 0x0222D538
-_0224F69C: .word 0x0225E84A
-_0224F6A0: .word 0x00000706
-_0224F6A4:
- ldrh r0, [r0, r1]
- mov r1, #0x10
- str r0, [sp]
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x20]
- bl FUN_02007E68
- mov r0, #5
- add r4, #0x83
- add sp, #0x9c
- strb r0, [r4]
- pop {r4, r5, pc}
-_0224F6BC:
- ldr r0, [r0, #0x20]
- mov r1, #0xc
- mov r2, #0x20
- bl FUN_020079E0
- ldr r0, [r4, #4]
- mov r1, #0xd
- ldr r0, [r0, #0x20]
- mov r2, #0x20
- bl FUN_020079E0
- ldr r0, [r4, #4]
- mov r1, #0x90
- ldrsb r1, [r4, r1]
- ldr r0, [r0, #0x20]
- bl FUN_02007F34
- add sp, #0x9c
- pop {r4, r5, pc}
-_0224F6E2:
- ldr r0, [r4, #8]
- bl MOD08_022285B4
- cmp r0, #0
- bne _0224F7C0
- mov r0, #6
- add r4, #0x83
- add sp, #0x9c
- strb r0, [r4]
- pop {r4, r5, pc}
-_0224F6F6:
- ldr r0, [r4]
- bl MOD11_02230E80
- add r1, r4, #0
- add r1, #0x81
- ldrb r1, [r1]
- bl FUN_02014D7C
- cmp r0, #1
- bne _0224F7C0
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x20]
- bl FUN_02007390
- cmp r0, #0
- bne _0224F7C0
- ldr r0, [r4, #4]
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_02229A2C
- ldr r0, [r4, #4]
- mov r1, #0
- add r0, #0x88
- str r1, [r0]
- ldr r0, [r4, #8]
- bl MOD08_02228618
- add r0, r4, #0
- add r0, #0x92
- ldrb r0, [r0]
- cmp r0, #0
- beq _0224F772
- mov r0, #5
- bl MOD08_02211F5C
- str r0, [r4, #0x24]
- add r0, r4, #0
- add r0, #0x81
- ldrb r1, [r0]
- mov r0, #0xb
- add r2, sp, #0x44
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- mov r3, #1
- bl MOD11_02256854
- ldr r0, [r4]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0x24]
- add r3, sp, #0x44
- bl MOD11_02254404
- mov r0, #7
- add r4, #0x83
- add sp, #0x9c
- strb r0, [r4]
- pop {r4, r5, pc}
-_0224F772:
- mov r0, #0xff
- add r4, #0x83
- add sp, #0x9c
- strb r0, [r4]
- pop {r4, r5, pc}
-_0224F77C:
- ldr r0, [r4, #0x24]
- bl MOD08_02212384
- ldr r0, [r4, #0x24]
- bl MOD08_022123A0
- cmp r0, #0
- bne _0224F7C0
- ldr r0, [r4, #0x24]
- bl MOD08_022123B0
- ldr r0, [r4, #0x24]
- bl MOD08_02212024
- mov r0, #0xff
- add r4, #0x83
- add sp, #0x9c
- strb r0, [r4]
- pop {r4, r5, pc}
-_0224F7A2:
- add r1, r4, #0
- add r2, r4, #0
- add r1, #0x81
- add r2, #0x80
- ldrb r1, [r1]
- ldrb r2, [r2]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
-_0224F7C0:
- add sp, #0x9c
- pop {r4, r5, pc}
-
- thumb_func_start MOD11_0224F7C4
-MOD11_0224F7C4: ; 0x0224F7C4
- push {r3, r4, r5, r6, lr}
- sub sp, #0x1c4
- add r4, r1, #0
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD11_02230070
- add r1, r4, #0
- add r1, #0x83
- ldrb r1, [r1]
- add r5, r0, #0
- cmp r1, #0xb
- bls _0224F7E0
- b _0224FD68
-_0224F7E0:
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0224F7EC: ; jump table
- .short _0224F804 - _0224F7EC - 2 ; case 0
- .short _0224F90C - _0224F7EC - 2 ; case 1
- .short _0224F958 - _0224F7EC - 2 ; case 2
- .short _0224F9E2 - _0224F7EC - 2 ; case 3
- .short _0224F9FA - _0224F7EC - 2 ; case 4
- .short _0224FC14 - _0224F7EC - 2 ; case 5
- .short _0224FC28 - _0224F7EC - 2 ; case 6
- .short _0224FC9C - _0224F7EC - 2 ; case 7
- .short _0224FCC0 - _0224F7EC - 2 ; case 8
- .short _0224FC9C - _0224F7EC - 2 ; case 9
- .short _0224FD0C - _0224F7EC - 2 ; case 10
- .short _0224FC9C - _0224F7EC - 2 ; case 11
-_0224F804:
- add r0, r4, #0
- add r0, #0x82
- ldrb r1, [r0]
- ldr r0, _0224FB58 ; =0x0225E818
- ldrb r0, [r0, r1]
- str r0, [sp, #0x44]
- mov r0, #5
- str r0, [sp, #0x48]
- add r0, r4, #0
- add r0, #0x81
- ldrb r0, [r0]
- str r0, [sp, #0x50]
- add r0, r4, #0
- add r0, #0x8e
- ldrh r0, [r0]
- str r0, [sp, #0x54]
- ldr r0, [r4]
- bl MOD11_02230078
- str r0, [sp, #0x60]
- ldr r0, [r4]
- bl MOD11_022300CC
- str r0, [sp, #0x64]
- mov r2, #1
- mov r1, #0
- add r0, r4, #0
- str r2, [sp, #0x58]
- str r1, [sp, #0x5c]
- add r0, #0x94
- ldrh r0, [r0]
- cmp r0, #1
- bne _0224F84A
- str r2, [sp, #0x4c]
- b _0224F84C
-_0224F84A:
- str r1, [sp, #0x4c]
-_0224F84C:
- add r0, sp, #0x44
- bl MOD08_02229918
- str r0, [r4, #0xc]
- ldr r0, [r4]
- bl MOD11_02230068
- add r1, r4, #0
- add r1, #0x86
- add r5, r0, #0
- ldrh r1, [r1]
- add r0, sp, #0x30
- bl FUN_02069010
- add r0, r4, #0
- add r0, #0x82
- ldrb r3, [r0]
- mov r0, #6
- add r2, r4, #0
- add r1, r3, #0
- mul r1, r0
- ldr r0, _0224FB5C ; =0x0222D552
- add r2, #0x14
- ldrsh r0, [r0, r1]
- str r0, [sp]
- ldr r0, _0224FB60 ; =0x0222D554
- ldrsh r0, [r0, r1]
- add r1, r5, #0
- lsl r5, r3, #2
- str r0, [sp, #4]
- add r0, r4, #0
- add r0, #0x85
- ldrb r0, [r0]
- ldr r3, _0224FB64 ; =0x0222D538
- str r0, [sp, #8]
- mov r0, #0x90
- ldrsb r0, [r4, r0]
- ldrsh r3, [r3, r5]
- str r0, [sp, #0xc]
- mov r0, #0x91
- ldrsb r0, [r4, r0]
- str r0, [sp, #0x10]
- add r0, r4, #0
- add r0, #0x93
- ldrb r0, [r0]
- str r0, [sp, #0x14]
- add r0, r4, #0
- add r0, #0x81
- ldrb r0, [r0]
- str r0, [sp, #0x18]
- add r0, sp, #0x30
- str r0, [sp, #0x1c]
- mov r0, #0
- str r0, [sp, #0x20]
- ldr r0, [r4]
- bl MOD11_02253A88
- ldr r1, [r4, #4]
- mov r2, #0
- str r0, [r1, #0x20]
- ldr r0, [r4, #4]
- mov r1, #0xc
- ldr r0, [r0, #0x20]
- bl FUN_02007558
- ldr r0, [r4, #4]
- mov r1, #0xd
- ldr r0, [r0, #0x20]
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #4]
- mov r1, #0x2c
- ldr r0, [r0, #0x20]
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #4]
- mov r1, #6
- ldr r0, [r0, #0x20]
- mov r2, #1
- bl FUN_02007558
- ldr r0, [r4]
- mov r1, #5
- bl MOD08_0221590C
- str r0, [r4, #0x10]
- add r0, r4, #0
- add r0, #0x83
- ldrb r0, [r0]
- add r4, #0x83
- add sp, #0x1c4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0224F90C:
- add r1, sp, #0x24
- mov r0, #0
- str r0, [r1]
- str r0, [r1, #4]
- str r0, [r1, #8]
- add r0, r4, #0
- add r0, #0x82
- ldrb r0, [r0]
- add r1, r4, #0
- add r2, r4, #0
- str r0, [sp, #0x24]
- add r1, #0x81
- add r2, #0x8c
- ldrb r1, [r1]
- ldrb r2, [r2]
- ldr r0, [r4]
- bl MOD11_02230014
- str r0, [sp, #0x2c]
- add r0, r4, #0
- add r0, #0x8e
- ldrh r0, [r0]
- add r1, sp, #0x24
- str r0, [sp, #0x28]
- mov r0, #5
- bl MOD08_02228218
- str r0, [r4, #8]
- bl MOD08_02228524
- add r0, r4, #0
- add r0, #0x83
- ldrb r0, [r0]
- add r4, #0x83
- add sp, #0x1c4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0224F958:
- ldr r0, [r4, #0xc]
- bl MOD08_02229A80
- cmp r0, #0
- beq _0224F96C
- add r0, r4, #0
- add r0, #0x94
- ldrh r0, [r0]
- cmp r0, #0
- beq _0224F980
-_0224F96C:
- ldr r0, [r4, #8]
- bl MOD08_02228570
- cmp r0, #1
- bne _0224F980
- ldr r0, [r4, #0xc]
- bl MOD08_02229A00
- cmp r0, #1
- beq _0224F982
-_0224F980:
- b _0224FD86
-_0224F982:
- ldr r0, [r4, #0x10]
- bl MOD08_02215918
- add r0, r4, #0
- add r0, #0x8e
- ldrh r0, [r0]
- mov r3, #0
- lsl r1, r0, #1
- ldr r0, _0224FB68 ; =0x0225E84A
- ldrh r0, [r0, r1]
- mov r1, #0x10
- add r2, r1, #0
- str r0, [sp]
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x20]
- bl FUN_02007E68
- ldr r0, [r4, #4]
- mov r1, #6
- ldr r0, [r0, #0x20]
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #8]
- bl MOD08_022285A4
- add r0, r4, #0
- add r0, #0x84
- ldrb r0, [r0]
- cmp r0, #2
- ldr r0, _0224FB6C ; =0x00000706
- bne _0224F9CA
- mov r1, #0x75
- bl FUN_020054A8
- b _0224F9D2
-_0224F9CA:
- mov r1, #0x74
- mvn r1, r1
- bl FUN_020054A8
-_0224F9D2:
- add r0, r4, #0
- add r0, #0x83
- ldrb r0, [r0]
- add r4, #0x83
- add sp, #0x1c4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0224F9E2:
- ldr r0, [r4, #0xc]
- bl MOD08_022299E8
- cmp r0, #1
- beq _0224F9FA
- add r0, r4, #0
- add r0, #0x83
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x83
- strb r1, [r0]
-_0224F9FA:
- ldr r0, [r4, #4]
- mov r1, #0xc
- ldr r0, [r0, #0x20]
- bl FUN_0200782C
- mov r1, #1
- lsl r1, r1, #8
- cmp r0, r1
- bne _0224FAE0
- ldr r0, [r4, #8]
- bl MOD08_022285B4
- cmp r0, #0
- bne _0224FAE0
- add r0, r4, #0
- add r0, #0x84
- ldrb r0, [r0]
- cmp r0, #2
- bne _0224FA62
- ldr r0, [r4, #4]
- mov r1, #1
- ldr r0, [r0, #0x20]
- bl FUN_02007314
- ldr r0, [r4, #4]
- mov r1, #0x2d
- ldr r0, [r0, #0x20]
- mov r2, #0
- bl FUN_02007558
- add r1, r4, #0
- add r1, #0x81
- ldrb r1, [r1]
- ldr r0, [r4]
- bl MOD11_02230E88
- mov r1, #0x7f
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- mov r1, #5
- add r2, r4, #0
- str r1, [sp, #8]
- add r1, r4, #0
- add r2, #0x86
- add r1, #0x88
- ldrh r2, [r2]
- ldr r1, [r1]
- mov r3, #0x75
- bl FUN_02069FB0
- b _0224FA8C
-_0224FA62:
- add r1, r4, #0
- add r1, #0x81
- ldrb r1, [r1]
- ldr r0, [r4]
- bl MOD11_02230E88
- mov r1, #0x7f
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- mov r3, #5
- add r2, r4, #0
- str r3, [sp, #8]
- add r1, r4, #0
- add r2, #0x86
- add r1, #0x88
- ldrh r2, [r2]
- ldr r1, [r1]
- sub r3, #0x7a
- bl FUN_02069FB0
-_0224FA8C:
- ldr r0, [r4]
- bl MOD11_02230E80
- add r1, r4, #0
- add r1, #0x8d
- ldrb r1, [r1]
- add r2, r4, #0
- add r3, r4, #0
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- add r1, r4, #0
- add r1, #0x81
- ldrb r1, [r1]
- add r2, #0x86
- add r3, #0x84
- str r1, [sp, #8]
- ldr r1, [r4, #4]
- ldrh r2, [r2]
- ldrb r3, [r3]
- ldr r1, [r1, #0x20]
- bl FUN_02069038
- add r0, r4, #0
- add r0, #0x8e
- ldrh r0, [r0]
- mov r2, #0
- add r3, r2, #0
- lsl r1, r0, #1
- ldr r0, _0224FB68 ; =0x0225E84A
- ldrh r0, [r0, r1]
- mov r1, #0x10
- str r0, [sp]
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x20]
- bl FUN_02007E68
- mov r0, #5
- add r4, #0x83
- add sp, #0x1c4
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0224FAE0:
- ldr r0, [r4, #4]
- mov r1, #0xc
- ldr r0, [r0, #0x20]
- bl FUN_0200782C
- mov r2, #1
- lsl r2, r2, #8
- cmp r0, r2
- ldr r0, [r4, #4]
- blt _0224FBEE
- ldr r0, [r0, #0x20]
- mov r1, #0xc
- bl FUN_02007558
- ldr r0, [r4, #4]
- mov r1, #0xd
- add r2, r1, #0
- ldr r0, [r0, #0x20]
- add r2, #0xf3
- bl FUN_02007558
- add r0, r4, #0
- add r0, #0x84
- ldrb r0, [r0]
- cmp r0, #2
- bne _0224FB70
- ldr r0, [r4, #4]
- mov r1, #1
- ldr r0, [r0, #0x20]
- bl FUN_02007314
- ldr r0, [r4, #4]
- mov r1, #0x2d
- ldr r0, [r0, #0x20]
- mov r2, #0
- bl FUN_02007558
- add r1, r4, #0
- add r1, #0x81
- ldrb r1, [r1]
- ldr r0, [r4]
- bl MOD11_02230E88
- mov r1, #0x7f
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- mov r1, #5
- add r2, r4, #0
- str r1, [sp, #8]
- add r1, r4, #0
- add r2, #0x86
- add r1, #0x88
- ldrh r2, [r2]
- ldr r1, [r1]
- mov r3, #0x75
- bl FUN_02069FB0
- b _0224FB9A
- nop
-_0224FB58: .word 0x0225E818
-_0224FB5C: .word 0x0222D552
-_0224FB60: .word 0x0222D554
-_0224FB64: .word 0x0222D538
-_0224FB68: .word 0x0225E84A
-_0224FB6C: .word 0x00000706
-_0224FB70:
- add r1, r4, #0
- add r1, #0x81
- ldrb r1, [r1]
- ldr r0, [r4]
- bl MOD11_02230E88
- mov r1, #0x7f
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- mov r3, #5
- add r2, r4, #0
- str r3, [sp, #8]
- add r1, r4, #0
- add r2, #0x86
- add r1, #0x88
- ldrh r2, [r2]
- ldr r1, [r1]
- sub r3, #0x7a
- bl FUN_02069FB0
-_0224FB9A:
- ldr r0, [r4]
- bl MOD11_02230E80
- add r1, r4, #0
- add r1, #0x8d
- ldrb r1, [r1]
- add r2, r4, #0
- add r3, r4, #0
- str r1, [sp]
- mov r1, #0
- str r1, [sp, #4]
- add r1, r4, #0
- add r1, #0x81
- ldrb r1, [r1]
- add r2, #0x86
- add r3, #0x84
- str r1, [sp, #8]
- ldr r1, [r4, #4]
- ldrh r2, [r2]
- ldrb r3, [r3]
- ldr r1, [r1, #0x20]
- bl FUN_02069038
- add r0, r4, #0
- add r0, #0x8e
- ldrh r0, [r0]
- mov r2, #0
- mov r3, #1
- lsl r1, r0, #1
- ldr r0, _0224FD8C ; =0x0225E84A
- ldrh r0, [r0, r1]
- mov r1, #0x10
- str r0, [sp]
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x20]
- bl FUN_02007E68
- mov r0, #5
- add r4, #0x83
- add sp, #0x1c4
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0224FBEE:
- ldr r0, [r0, #0x20]
- mov r1, #0xc
- mov r2, #0x20
- bl FUN_020079E0
- ldr r0, [r4, #4]
- mov r1, #0xd
- ldr r0, [r0, #0x20]
- mov r2, #0x20
- bl FUN_020079E0
- ldr r0, [r4, #4]
- mov r1, #0x90
- ldrsb r1, [r4, r1]
- ldr r0, [r0, #0x20]
- bl FUN_02007F34
- add sp, #0x1c4
- pop {r3, r4, r5, r6, pc}
-_0224FC14:
- ldr r0, [r4, #8]
- bl MOD08_022285B4
- cmp r0, #0
- bne _0224FC48
- mov r0, #6
- add r4, #0x83
- add sp, #0x1c4
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0224FC28:
- ldr r0, [r4]
- bl MOD11_02230E80
- add r1, r4, #0
- add r1, #0x81
- ldrb r1, [r1]
- bl FUN_02014D7C
- cmp r0, #1
- bne _0224FC48
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x20]
- bl FUN_02007390
- cmp r0, #0
- beq _0224FC4A
-_0224FC48:
- b _0224FD86
-_0224FC4A:
- ldr r0, [r4, #0xc]
- bl MOD08_02229A2C
- ldr r0, [r4, #8]
- bl MOD08_02228618
- add r0, r4, #0
- add r0, #0x92
- ldrb r0, [r0]
- cmp r0, #0
- beq _0224FC92
- add r0, r4, #0
- add r0, #0x81
- ldrb r1, [r0]
- mov r0, #0xb
- add r2, sp, #0x16c
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- mov r3, #1
- bl MOD11_02256854
- ldr r0, [r4]
- ldr r1, [r4, #4]
- add r2, r5, #0
- add r3, sp, #0x16c
- bl MOD11_02254404
- mov r0, #7
- add r4, #0x83
- add sp, #0x1c4
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0224FC92:
- mov r0, #8
- add r4, #0x83
- add sp, #0x1c4
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0224FC9C:
- bl MOD08_02212384
- add r0, r5, #0
- bl MOD08_022123A0
- cmp r0, #0
- bne _0224FD86
- add r0, r5, #0
- bl MOD08_022123B0
- add r0, r4, #0
- add r0, #0x83
- ldrb r0, [r0]
- add r4, #0x83
- add sp, #0x1c4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0224FCC0:
- add r0, r4, #0
- add r0, #0x98
- ldr r0, [r0]
- cmp r0, #0
- beq _0224FD02
- add r0, r4, #0
- add r0, #0x81
- ldrb r1, [r0]
- mov r0, #0xf
- add r2, sp, #0x114
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- mov r3, #1
- bl MOD11_02256854
- ldr r0, [r4]
- ldr r1, [r4, #4]
- add r2, r5, #0
- add r3, sp, #0x114
- bl MOD11_02254404
- add r0, r4, #0
- add r0, #0x83
- ldrb r0, [r0]
- add r4, #0x83
- add sp, #0x1c4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0224FD02:
- mov r0, #0xff
- add r4, #0x83
- add sp, #0x1c4
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0224FD0C:
- add r3, r4, #0
- add r3, #0x81
- ldrb r3, [r3]
- add r1, r4, #0
- ldr r0, [r4]
- add r1, #0x28
- add r2, sp, #0xc4
- bl MOD11_0225452C
- add r0, sp, #0xc4
- mov r1, #5
- bl MOD08_0222A568
- add r0, r4, #0
- add r0, #0x81
- ldrb r1, [r0]
- mov r0, #0x10
- add r2, sp, #0x6c
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- mov r3, #1
- bl MOD11_02256854
- ldr r0, [r4]
- ldr r1, [r4, #4]
- add r2, r5, #0
- add r3, sp, #0x6c
- bl MOD11_02254404
- mov r0, #0x1a
- ldr r1, [r4, #4]
- mov r2, #1
- lsl r0, r0, #4
- str r2, [r1, r0]
- add r0, r4, #0
- add r0, #0x83
- ldrb r0, [r0]
- add r4, #0x83
- add sp, #0x1c4
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, r6, pc}
-_0224FD68:
- add r1, r4, #0
- add r2, r4, #0
- add r1, #0x81
- add r2, #0x80
- ldrb r1, [r1]
- ldrb r2, [r2]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r6, #0
- bl FUN_0200CAB4
-_0224FD86:
- add sp, #0x1c4
- pop {r3, r4, r5, r6, pc}
- nop
-_0224FD8C: .word 0x0225E84A
-
- thumb_func_start MOD11_0224FD90
-MOD11_0224FD90: ; 0x0224FD90
- push {r4, r5, r6, lr}
- sub sp, #0x138
- add r4, r1, #0
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD11_02230070
- add r1, r4, #0
- add r1, #0x6b
- ldrb r1, [r1]
- add r5, r0, #0
- cmp r1, #8
- bhi _0224FE7A
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0224FDB6: ; jump table
- .short _0224FDC8 - _0224FDB6 - 2 ; case 0
- .short _0224FE6C - _0224FDB6 - 2 ; case 1
- .short _0224FE10 - _0224FDB6 - 2 ; case 2
- .short _0224FE6C - _0224FDB6 - 2 ; case 3
- .short _0224FE92 - _0224FDB6 - 2 ; case 4
- .short _0224FF36 - _0224FDB6 - 2 ; case 5
- .short _0224FF50 - _0224FDB6 - 2 ; case 6
- .short _0224FFA6 - _0224FDB6 - 2 ; case 7
- .short _0224FFC0 - _0224FDB6 - 2 ; case 8
-_0224FDC8:
- ldr r0, [r4, #0x70]
- cmp r0, #0
- beq _0224FE06
- add r0, r4, #0
- add r0, #0x69
- ldrb r1, [r0]
- mov r0, #0xf
- add r2, sp, #0xe0
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- mov r3, #1
- bl MOD11_02256854
- ldr r0, [r4]
- ldr r1, [r4, #4]
- add r2, r5, #0
- add r3, sp, #0xe0
- bl MOD11_02254404
- add r0, r4, #0
- add r0, #0x6b
- ldrb r0, [r0]
- add r4, #0x6b
- add sp, #0x138
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_0224FE06:
- mov r0, #4
- add r4, #0x6b
- add sp, #0x138
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_0224FE10:
- add r3, r4, #0
- add r3, #0x69
- ldrb r3, [r3]
- add r1, r4, #0
- ldr r0, [r4]
- add r1, #0x10
- add r2, sp, #0x90
- bl MOD11_0225452C
- add r0, sp, #0x90
- mov r1, #5
- bl MOD08_0222A494
- add r0, r4, #0
- add r0, #0x69
- ldrb r1, [r0]
- mov r0, #0x10
- add r2, sp, #0x38
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- mov r3, #1
- bl MOD11_02256854
- ldr r0, [r4]
- ldr r1, [r4, #4]
- add r2, r5, #0
- add r3, sp, #0x38
- bl MOD11_02254404
- mov r0, #0x1a
- ldr r1, [r4, #4]
- mov r2, #0
- lsl r0, r0, #4
- str r2, [r1, r0]
- add r0, r4, #0
- add r0, #0x6b
- ldrb r0, [r0]
- add r4, #0x6b
- add sp, #0x138
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_0224FE6C:
- bl MOD08_02212384
- add r0, r5, #0
- bl MOD08_022123A0
- cmp r0, #0
- beq _0224FE7C
-_0224FE7A:
- b _0224FFDE
-_0224FE7C:
- add r0, r5, #0
- bl MOD08_022123B0
- add r0, r4, #0
- add r0, #0x6b
- ldrb r0, [r0]
- add r4, #0x6b
- add sp, #0x138
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_0224FE92:
- add r0, r4, #0
- add r0, #0x6a
- ldrb r1, [r0]
- mov r0, #1
- tst r0, r1
- beq _0224FEDA
- ldr r0, _0224FFE4 ; =0x0225E818
- ldrb r0, [r0, r1]
- str r0, [sp, #0x10]
- mov r0, #5
- str r0, [sp, #0x14]
- str r0, [sp, #0x18]
- add r0, r4, #0
- add r0, #0x69
- ldrb r0, [r0]
- str r0, [sp, #0x1c]
- add r0, r4, #0
- add r0, #0x6e
- ldrh r0, [r0]
- str r0, [sp, #0x20]
- ldr r0, [r4]
- bl MOD11_02230078
- str r0, [sp, #0x2c]
- ldr r0, [r4]
- bl MOD11_022300CC
- str r0, [sp, #0x30]
- mov r0, #1
- str r0, [sp, #0x24]
- mov r0, #0
- str r0, [sp, #0x28]
- add r0, sp, #0x10
- bl MOD08_02229918
- str r0, [r4, #0xc]
-_0224FEDA:
- add r0, r4, #0
- mov r1, #5
- add r0, #0x6b
- strb r1, [r0]
- add r0, r4, #0
- add r0, #0x6e
- ldrh r0, [r0]
- mov r2, #0x10
- lsl r1, r0, #1
- ldr r0, _0224FFE8 ; =0x0225E84A
- ldrh r0, [r0, r1]
- mov r1, #0
- add r3, r1, #0
- str r0, [sp]
- ldr r0, [r4, #8]
- bl FUN_02007E68
- add r4, #0x6a
- ldrb r0, [r4]
- cmp r0, #5
- bhi _0224FFDE
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0224FF10: ; jump table
- .short _0224FF1C - _0224FF10 - 2 ; case 0
- .short _0224FF2A - _0224FF10 - 2 ; case 1
- .short _0224FF1C - _0224FF10 - 2 ; case 2
- .short _0224FF2A - _0224FF10 - 2 ; case 3
- .short _0224FF1C - _0224FF10 - 2 ; case 4
- .short _0224FF2A - _0224FF10 - 2 ; case 5
-_0224FF1C:
- mov r1, #0x74
- ldr r0, _0224FFEC ; =0x00000706
- mvn r1, r1
- bl FUN_020054A8
- add sp, #0x138
- pop {r4, r5, r6, pc}
-_0224FF2A:
- ldr r0, _0224FFEC ; =0x00000706
- mov r1, #0x75
- bl FUN_020054A8
- add sp, #0x138
- pop {r4, r5, r6, pc}
-_0224FF36:
- ldr r0, [r4, #8]
- bl FUN_02007F20
- cmp r0, #0
- bne _0224FFDE
- add r0, r4, #0
- add r0, #0x6b
- ldrb r0, [r0]
- add r4, #0x6b
- add sp, #0x138
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_0224FF50:
- mov r1, #0xc
- add r2, r1, #0
- ldr r0, [r4, #8]
- sub r2, #0x2c
- bl FUN_020079E0
- mov r1, #0xd
- add r2, r1, #0
- ldr r0, [r4, #8]
- sub r2, #0x2d
- bl FUN_020079E0
- add r1, r4, #0
- add r1, #0x6c
- ldrb r1, [r1]
- ldr r0, [r4, #8]
- bl FUN_02007F34
- ldr r0, [r4, #8]
- mov r1, #0xc
- bl FUN_0200782C
- cmp r0, #0
- bgt _0224FFDE
- ldr r0, [r4, #8]
- bl FUN_02007534
- add r0, r4, #0
- add r0, #0x6a
- ldrb r1, [r0]
- mov r0, #1
- tst r0, r1
- beq _0224FF9C
- mov r0, #7
- add r4, #0x6b
- add sp, #0x138
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_0224FF9C:
- mov r0, #8
- add r4, #0x6b
- add sp, #0x138
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_0224FFA6:
- ldr r0, [r4, #0xc]
- bl MOD08_022299E8
- cmp r0, #0
- bne _0224FFDE
- ldr r0, [r4, #0xc]
- bl MOD08_02229A2C
- mov r0, #8
- add r4, #0x6b
- add sp, #0x138
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_0224FFC0:
- add r1, r4, #0
- add r2, r4, #0
- add r1, #0x69
- add r2, #0x68
- ldrb r1, [r1]
- ldrb r2, [r2]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r6, #0
- bl FUN_0200CAB4
-_0224FFDE:
- add sp, #0x138
- pop {r4, r5, r6, pc}
- nop
-_0224FFE4: .word 0x0225E818
-_0224FFE8: .word 0x0225E84A
-_0224FFEC: .word 0x00000706
-
- thumb_func_start MOD11_0224FFF0
-MOD11_0224FFF0: ; 0x0224FFF0
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4, #0xb]
- cmp r0, #0
- beq _02250002
- cmp r0, #1
- beq _02250048
- pop {r3, r4, r5, pc}
-_02250002:
- mov r1, #0xc
- add r2, r1, #0
- ldr r0, [r4, #4]
- sub r2, #0x2c
- bl FUN_020079E0
- mov r1, #0xd
- add r2, r1, #0
- ldr r0, [r4, #4]
- sub r2, #0x2d
- bl FUN_020079E0
- ldrb r0, [r4, #0xc]
- cmp r0, #0
- beq _0225002E
- sub r0, r0, #1
- strb r0, [r4, #0xc]
- mov r1, #1
- ldr r0, [r4, #4]
- sub r2, r1, #2
- bl FUN_020079E0
-_0225002E:
- ldr r0, [r4, #4]
- mov r1, #0xc
- bl FUN_0200782C
- cmp r0, #0
- bgt _0225005E
- ldr r0, [r4, #4]
- bl FUN_02007534
- ldrb r0, [r4, #0xb]
- add r0, r0, #1
- strb r0, [r4, #0xb]
- pop {r3, r4, r5, pc}
-_02250048:
- ldrb r1, [r4, #9]
- ldrb r2, [r4, #8]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
-_0225005E:
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02250060
-MOD11_02250060: ; 0x02250060
- push {r3, r4, r5, r6, lr}
- sub sp, #4
- add r4, r1, #0
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD11_0222FF74
- add r5, r0, #0
- ldr r0, [r4, #0x20]
- cmp r0, #0x21
- bge _0225009C
- ldrb r0, [r4, #0x12]
- cmp r0, #2
- blo _0225009C
- ldr r0, [r4, #0x18]
- cmp r0, #0
- beq _02250086
- cmp r0, #2
- bne _0225009C
-_02250086:
- ldr r0, [r4]
- bl MOD11_0222FF68
- mov r1, #3
- mov r2, #1
- mov r3, #4
- bl FUN_020179E0
- ldr r0, [r4, #0x20]
- add r0, r0, #1
- str r0, [r4, #0x20]
-_0225009C:
- ldrb r0, [r4, #0x12]
- cmp r0, #4
- bls _022500A4
- b _02250332
-_022500A4:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_022500B0: ; jump table
- .short _022500BA - _022500B0 - 2 ; case 0
- .short _022500C4 - _022500B0 - 2 ; case 1
- .short _022500D2 - _022500B0 - 2 ; case 2
- .short _022502CA - _022500B0 - 2 ; case 3
- .short _022502E4 - _022500B0 - 2 ; case 4
-_022500BA:
- mov r0, #0x1c
- str r0, [r4, #0x1c]
- ldrb r0, [r4, #0x12]
- add r0, r0, #1
- strb r0, [r4, #0x12]
-_022500C4:
- ldr r0, [r4, #0x1c]
- sub r0, r0, #1
- str r0, [r4, #0x1c]
- bne _022501A6
- ldrb r0, [r4, #0x12]
- add r0, r0, #1
- strb r0, [r4, #0x12]
-_022500D2:
- ldrb r0, [r4, #0x13]
- add r1, sp, #0
- cmp r0, #2
- ldr r0, [r4, #8]
- bne _022501D2
- ldr r0, [r0]
- add r1, #2
- add r2, sp, #0
- bl FUN_0200C7A0
- ldr r0, [r4, #0x18]
- cmp r0, #1
- beq _022500F0
- cmp r0, #3
- bne _02250112
-_022500F0:
- add r1, sp, #0
- mov r0, #2
- ldrsh r0, [r1, r0]
- cmp r0, #0xc0
- ldr r0, [r4, #8]
- bge _02250108
- ldr r0, [r0]
- mov r1, #8
- mov r2, #0
- bl FUN_0200C82C
- b _02250112
-_02250108:
- ldr r0, [r0]
- mov r1, #0xc0
- mov r2, #0x58
- bl FUN_0200C714
-_02250112:
- ldr r0, [r4, #8]
- add r1, sp, #0
- ldr r0, [r0]
- add r1, #2
- add r2, sp, #0
- bl FUN_0200C7A0
- ldr r0, [r4, #0x18]
- cmp r0, #1
- beq _02250136
- cmp r0, #3
- bne _02250146
- cmp r5, #3
- beq _02250136
- cmp r5, #0x83
- beq _02250136
- cmp r5, #7
- bne _02250146
-_02250136:
- add r3, sp, #0
- mov r2, #2
- ldrsh r2, [r3, r2]
- ldr r0, [r4, #4]
- mov r1, #0
- bl FUN_02007558
- b _02250196
-_02250146:
- cmp r0, #3
- bne _02250170
- ldr r0, [r4, #4]
- mov r1, #0
- bl FUN_0200782C
- add r3, sp, #0
- mov r2, #2
- ldrsh r1, [r3, r2]
- sub r0, r0, r1
- strh r0, [r3, #2]
- ldrsh r0, [r3, r2]
- mov r1, #0
- sub r0, #0x18
- strh r0, [r3, #2]
- ldrsh r2, [r3, r2]
- ldr r0, [r4, #4]
- neg r2, r2
- bl FUN_020079E0
- b _02250196
-_02250170:
- cmp r0, #5
- bne _02250196
- ldr r0, [r4, #4]
- mov r1, #0
- bl FUN_0200782C
- add r3, sp, #0
- mov r2, #2
- ldrsh r1, [r3, r2]
- sub r0, r1, r0
- strh r0, [r3, #2]
- ldrsh r0, [r3, r2]
- mov r1, #0
- sub r0, #0x10
- strh r0, [r3, #2]
- ldrsh r2, [r3, r2]
- ldr r0, [r4, #4]
- bl FUN_020079E0
-_02250196:
- mov r0, #0x14
- ldrsh r5, [r4, r0]
- ldr r0, [r4, #4]
- mov r1, #0
- bl FUN_0200782C
- cmp r0, r5
- bge _022501A8
-_022501A6:
- b _02250332
-_022501A8:
- ldr r0, [r4, #4]
- mov r1, #0
- add r2, r5, #0
- bl FUN_02007558
- ldr r0, [r4, #0x18]
- cmp r0, #1
- beq _022501BC
- cmp r0, #3
- bne _022501C8
-_022501BC:
- ldr r0, [r4, #8]
- mov r1, #0xc0
- ldr r0, [r0]
- mov r2, #0x58
- bl FUN_0200C714
-_022501C8:
- ldrb r0, [r4, #0x12]
- add sp, #4
- add r0, r0, #1
- strb r0, [r4, #0x12]
- pop {r3, r4, r5, r6, pc}
-_022501D2:
- ldr r0, [r0]
- add r1, #2
- add r2, sp, #0
- bl FUN_0200C7A0
- ldr r0, [r4, #0x18]
- cmp r0, #0
- beq _022501E6
- cmp r0, #2
- bne _02250208
-_022501E6:
- add r0, sp, #0
- mov r1, #2
- ldrsh r0, [r0, r1]
- cmp r0, #0x40
- ldr r0, [r4, #8]
- ble _022501FE
- ldr r0, [r0]
- sub r1, #0xa
- mov r2, #0
- bl FUN_0200C82C
- b _02250208
-_022501FE:
- ldr r0, [r0]
- mov r1, #0x40
- mov r2, #0x88
- bl FUN_0200C714
-_02250208:
- ldr r0, [r4, #8]
- add r1, sp, #0
- ldr r0, [r0]
- add r1, #2
- add r2, sp, #0
- bl FUN_0200C7A0
- ldr r0, [r4, #0x18]
- cmp r0, #0
- beq _02250230
- cmp r0, #2
- bne _02250240
- cmp r5, #3
- beq _02250230
- cmp r5, #0x83
- beq _02250230
- cmp r5, #0x13
- beq _02250230
- cmp r5, #7
- bne _02250240
-_02250230:
- add r3, sp, #0
- mov r2, #2
- ldrsh r2, [r3, r2]
- ldr r0, [r4, #4]
- mov r1, #0
- bl FUN_02007558
- b _02250290
-_02250240:
- cmp r0, #2
- bne _02250268
- ldr r0, [r4, #4]
- mov r1, #0
- bl FUN_0200782C
- add r3, sp, #0
- mov r2, #2
- ldrsh r1, [r3, r2]
- sub r0, r1, r0
- strh r0, [r3, #2]
- ldrsh r0, [r3, r2]
- mov r1, #0
- sub r0, #0x18
- strh r0, [r3, #2]
- ldrsh r2, [r3, r2]
- ldr r0, [r4, #4]
- bl FUN_020079E0
- b _02250290
-_02250268:
- cmp r0, #4
- bne _02250290
- ldr r0, [r4, #4]
- mov r1, #0
- bl FUN_0200782C
- add r3, sp, #0
- mov r2, #2
- ldrsh r1, [r3, r2]
- sub r0, r0, r1
- strh r0, [r3, #2]
- ldrsh r0, [r3, r2]
- mov r1, #0
- sub r0, #0x10
- strh r0, [r3, #2]
- ldrsh r2, [r3, r2]
- ldr r0, [r4, #4]
- neg r2, r2
- bl FUN_020079E0
-_02250290:
- mov r0, #0x14
- ldrsh r5, [r4, r0]
- ldr r0, [r4, #4]
- mov r1, #0
- bl FUN_0200782C
- cmp r0, r5
- bgt _02250332
- ldr r0, [r4, #4]
- mov r1, #0
- add r2, r5, #0
- bl FUN_02007558
- ldr r0, [r4, #0x18]
- cmp r0, #0
- beq _022502B4
- cmp r0, #2
- bne _022502C0
-_022502B4:
- ldr r0, [r4, #8]
- mov r1, #0x40
- ldr r0, [r0]
- mov r2, #0x88
- bl FUN_0200C714
-_022502C0:
- ldrb r0, [r4, #0x12]
- add sp, #4
- add r0, r0, #1
- strb r0, [r4, #0x12]
- pop {r3, r4, r5, r6, pc}
-_022502CA:
- ldrb r1, [r4, #0x11]
- ldrb r2, [r4, #0x10]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r6, #0
- bl FUN_0200CAB4
- add sp, #4
- pop {r3, r4, r5, r6, pc}
-_022502E4:
- ldrb r0, [r4, #0x13]
- cmp r0, #2
- ldr r0, [r4, #4]
- bne _0225030E
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- mov r1, #0
- bl FUN_02007558
- ldr r0, [r4, #0x18]
- cmp r0, #1
- beq _02250300
- cmp r0, #3
- bne _0225032E
-_02250300:
- ldr r0, [r4, #8]
- mov r1, #0xc0
- ldr r0, [r0]
- mov r2, #0x58
- bl FUN_0200C714
- b _0225032E
-_0225030E:
- mov r2, #0x14
- ldrsh r2, [r4, r2]
- mov r1, #0
- bl FUN_02007558
- ldr r0, [r4, #0x18]
- cmp r0, #0
- beq _02250322
- cmp r0, #2
- bne _0225032E
-_02250322:
- ldr r0, [r4, #8]
- mov r1, #0x40
- ldr r0, [r0]
- mov r2, #0x88
- bl FUN_0200C714
-_0225032E:
- mov r0, #3
- strb r0, [r4, #0x12]
-_02250332:
- add sp, #4
- pop {r3, r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02250338
-MOD11_02250338: ; 0x02250338
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0xd0
- ldr r3, _022505EC ; =0x0225E8D0
- add r4, r1, #0
- add r5, r0, #0
- add r2, sp, #0x30
- mov r1, #0x50
-_02250346:
- ldrh r0, [r3]
- add r3, r3, #2
- strh r0, [r2]
- add r2, r2, #2
- sub r1, r1, #1
- bne _02250346
- ldr r0, [r4]
- bl MOD11_0222FF74
- add r6, r0, #0
- ldrb r0, [r4, #0xa]
- cmp r0, #6
- bls _02250362
- b _0225088A
-_02250362:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0225036E: ; jump table
- .short _0225037C - _0225036E - 2 ; case 0
- .short _02250494 - _0225036E - 2 ; case 1
- .short _0225059E - _0225036E - 2 ; case 2
- .short _0225073C - _0225036E - 2 ; case 3
- .short _022507F2 - _0225036E - 2 ; case 4
- .short _0225084C - _0225036E - 2 ; case 5
- .short _02250874 - _0225036E - 2 ; case 6
-_0225037C:
- ldr r0, [r4, #0x10]
- cmp r0, #0
- bne _0225038A
- mov r0, #1
- add sp, #0xd0
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, r6, r7, pc}
-_0225038A:
- cmp r0, #4
- bhi _022503A4
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0225039A: ; jump table
- .short _022503A4 - _0225039A - 2 ; case 0
- .short _022503A4 - _0225039A - 2 ; case 1
- .short _022503B2 - _0225039A - 2 ; case 2
- .short _022503C0 - _0225039A - 2 ; case 3
- .short _022503CE - _0225039A - 2 ; case 4
-_022503A4:
- mov r0, #0xf
- str r0, [sp, #8]
- mov r0, #3
- str r0, [r4, #0x18]
- mov r0, #5
- str r0, [sp, #0x18]
- b _022503DC
-_022503B2:
- mov r0, #0xc
- str r0, [sp, #8]
- mov r0, #0
- str r0, [r4, #0x18]
- ldr r0, _022505F0 ; =0x00000111
- str r0, [sp, #0x18]
- b _022503DC
-_022503C0:
- mov r0, #0xd
- str r0, [sp, #8]
- mov r0, #0
- str r0, [r4, #0x18]
- ldr r0, _022505F4 ; =0x00000112
- str r0, [sp, #0x18]
- b _022503DC
-_022503CE:
- mov r0, #0xf
- str r0, [sp, #8]
- mov r0, #3
- str r0, [r4, #0x18]
- mov r0, #0x11
- lsl r0, r0, #4
- str r0, [sp, #0x18]
-_022503DC:
- mov r0, #5
- str r0, [sp, #0xc]
- mov r0, #4
- str r0, [sp, #0x10]
- ldrb r0, [r4, #9]
- str r0, [sp, #0x14]
- ldr r0, [r4]
- bl MOD11_02230078
- str r0, [sp, #0x24]
- ldr r0, [r4]
- bl MOD11_022300CC
- str r0, [sp, #0x28]
- mov r0, #0
- str r0, [sp, #0x20]
- ldr r0, [r4]
- str r0, [sp, #0x2c]
- add r0, sp, #8
- bl MOD08_02229918
- ldr r1, [r4, #4]
- add r1, #0x88
- str r0, [r1]
- ldr r0, [r4, #4]
- mov r1, #0x64
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_0222A00C
- ldr r0, [r4, #4]
- mov r1, #2
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_0222A018
- ldr r0, [r4, #4]
- mov r1, #0
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_0222A008
- mov r1, #0
- ldr r0, [r4]
- ldr r2, [r4, #0xc]
- add r3, r1, #0
- bl MOD11_02254308
- ldr r1, [r4, #4]
- str r0, [r1, #0x18]
- ldr r0, [r4, #4]
- mov r1, #0
- ldr r0, [r0, #0x1c]
- bl FUN_0200782C
- add r1, sp, #4
- strh r0, [r1, #2]
- ldr r0, [r4, #4]
- mov r1, #1
- ldr r0, [r0, #0x1c]
- bl FUN_0200782C
- add r3, sp, #4
- strh r0, [r3]
- ldr r0, [r4, #4]
- mov r1, #2
- mov r2, #0
- ldrsh r1, [r3, r1]
- ldrsh r2, [r3, r2]
- ldr r0, [r0, #0x18]
- bl FUN_0200C714
- ldr r0, [r4, #4]
- mov r1, #0
- ldr r0, [r0, #0x18]
- bl FUN_0200C61C
- ldr r0, [r4, #4]
- mov r1, #0
- ldr r0, [r0, #0x18]
- bl FUN_0200C5C0
- ldr r0, [r4, #4]
- mov r1, #6
- ldr r0, [r0, #0x1c]
- mov r2, #1
- bl FUN_02007558
- mov r0, #3
- add sp, #0xd0
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, r6, r7, pc}
-_02250494:
- ldrb r0, [r4, #0xb]
- cmp r0, #2
- ldr r0, [r4, #4]
- bne _0225054A
- ldr r0, [r0, #0x1c]
- mov r1, #0
- mov r2, #5
- bl FUN_020079E0
- ldr r0, [r4, #4]
- mov r1, #0
- ldr r0, [r0, #0x1c]
- bl FUN_0200782C
- mov r1, #0x45
- lsl r1, r1, #2
- cmp r0, r1
- blt _02250520
- ldr r0, [r4, #4]
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_02229A80
- cmp r0, #0
- beq _02250520
- ldr r0, [r4, #4]
- mov r1, #1
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_02229FE4
- ldr r0, [r4, #4]
- mov r1, #0
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_02229A5C
- mov r0, #2
- tst r0, r6
- beq _02250532
- mov r0, #8
- tst r0, r6
- bne _02250532
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- bl MOD11_022302BC
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD11_0222FF7C
- add r4, r0, #0
- add r0, #0x88
- ldr r0, [r0]
- mov r1, #1
- bl MOD08_02229FE4
- add r0, r4, #0
- add r0, #0x88
- ldr r0, [r0]
- mov r1, #0
- bl MOD08_02229A5C
- add r4, #0x88
- ldr r0, [r4]
- mov r1, #0xc
- bl MOD08_0222A024
- add sp, #0xd0
- pop {r3, r4, r5, r6, r7, pc}
-_02250520:
- ldr r0, [r4, #4]
- mov r1, #0
- ldr r0, [r0, #0x1c]
- bl FUN_0200782C
- mov r1, #0x4a
- lsl r1, r1, #2
- cmp r0, r1
- bge _02250534
-_02250532:
- b _0225088A
-_02250534:
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x1c]
- bl FUN_02007534
- ldr r0, [r4, #4]
- mov r1, #0
- str r1, [r0, #0x1c]
- mov r0, #6
- add sp, #0xd0
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, r6, r7, pc}
-_0225054A:
- ldr r0, [r0, #0x1c]
- mov r1, #0
- bl FUN_0200782C
- add r1, sp, #4
- strh r0, [r1, #2]
- ldr r0, [r4, #4]
- mov r1, #1
- ldr r0, [r0, #0x1c]
- bl FUN_0200782C
- add r3, sp, #4
- strh r0, [r3]
- ldr r0, [r4, #4]
- mov r1, #2
- mov r2, #0
- ldrsh r1, [r3, r1]
- ldrsh r2, [r3, r2]
- ldr r0, [r0, #0x18]
- bl FUN_0200C714
- ldr r0, [r4, #4]
- mov r1, #0
- ldr r0, [r0, #0x18]
- bl FUN_0200C61C
- ldr r0, [r4, #4]
- mov r1, #0
- ldr r0, [r0, #0x18]
- bl FUN_0200C5C0
- mov r0, #2
- strb r0, [r4, #0xa]
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x1c]
- bl FUN_02007534
- ldr r0, [r4, #4]
- mov r1, #0
- str r1, [r0, #0x1c]
- add sp, #0xd0
- pop {r3, r4, r5, r6, r7, pc}
-_0225059E:
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x18]
- bl FUN_0200C5A8
- ldr r0, [r4, #4]
- mov r1, #4
- ldr r0, [r0, #0x18]
- mvn r1, r1
- mov r2, #0
- bl FUN_0200C82C
- ldr r0, [r4, #4]
- add r1, sp, #4
- ldr r0, [r0, #0x18]
- add r1, #2
- add r2, sp, #4
- bl FUN_0200C7A0
- ldr r1, [r4, #4]
- add r0, r1, #0
- add r0, #0x88
- ldr r0, [r0]
- cmp r0, #0
- bne _022505D0
- b _022506E4
-_022505D0:
- ldr r0, [r1, #0x18]
- bl FUN_0200C630
- ldr r1, [r4, #0xc]
- str r0, [sp]
- lsl r5, r0, #2
- mov r0, #0x14
- add r2, r1, #0
- mul r2, r0
- add r0, sp, #0x30
- add r0, r0, r2
- ldrsh r1, [r5, r0]
- ldr r0, _022505F8 ; =0x00007FFF
- b _022505FC
- .align 2, 0
-_022505EC: .word 0x0225E8D0
-_022505F0: .word 0x00000111
-_022505F4: .word 0x00000112
-_022505F8: .word 0x00007FFF
-_022505FC:
- cmp r1, r0
- beq _022506E4
- ldr r0, [r4, #4]
- mov r1, #1
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_02229FE4
- ldr r1, [r4, #0xc]
- mov r0, #0x14
- add r3, r1, #0
- mul r3, r0
- add r2, sp, #0x30
- add r2, r2, r3
- add r7, sp, #4
- mov r1, #2
- ldrsh r1, [r7, r1]
- ldrsh r2, [r5, r2]
- ldr r0, [r4, #4]
- add r1, r1, r2
- mov r2, #0
- ldrsh r7, [r7, r2]
- add r2, sp, #0x30
- add r2, #2
- add r2, r2, r3
- ldrsh r2, [r5, r2]
- add r0, #0x88
- lsl r1, r1, #0x10
- add r2, r7, r2
- lsl r2, r2, #0x10
- ldr r0, [r0]
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl MOD08_02229FF0
- ldr r0, [sp]
- cmp r0, #3
- bne _022506E4
- ldr r0, [r4, #4]
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_02229A80
- cmp r0, #0
- beq _022506E4
- ldr r0, [r4, #4]
- mov r1, #0
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_02229A5C
- ldr r0, [r4, #4]
- mov r1, #1
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_0222A008
- mov r0, #2
- tst r0, r6
- beq _022506E4
- mov r0, #8
- tst r0, r6
- bne _022506E4
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- bl MOD11_022302BC
- add r1, r0, #0
- ldr r0, [r4]
- bl MOD11_0222FF7C
- ldr r1, [r4, #0xc]
- add r6, r0, #0
- add r3, r1, #0
- mov r0, #0x14
- mul r3, r0
- add r2, sp, #0x30
- add r2, r2, r3
- add r0, r6, #0
- add r0, #0x88
- add r7, sp, #4
- mov r1, #2
- ldrsh r1, [r7, r1]
- ldrsh r2, [r5, r2]
- ldr r0, [r0]
- add r1, r1, r2
- mov r2, #0
- ldrsh r7, [r7, r2]
- add r2, sp, #0x30
- add r2, #2
- add r2, r2, r3
- ldrsh r2, [r5, r2]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add r2, r7, r2
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- bl MOD08_02229FF0
- add r0, r6, #0
- add r0, #0x88
- ldr r0, [r0]
- mov r1, #1
- bl MOD08_02229FE4
- add r0, r6, #0
- add r0, #0x88
- ldr r0, [r0]
- mov r1, #0
- bl MOD08_02229A5C
- add r6, #0x88
- ldr r0, [r6]
- mov r1, #1
- bl MOD08_0222A008
-_022506E4:
- add r1, sp, #4
- mov r0, #2
- ldrsh r1, [r1, r0]
- sub r0, #0x2a
- cmp r1, r0
- ble _022506F2
- b _0225088A
-_022506F2:
- ldr r0, [r4]
- bl MOD11_02230080
- add r6, r0, #0
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- bl MOD11_02230260
- asr r5, r0, #1
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x18]
- bl FUN_0200C3DC
- ldr r1, _02250890 ; =0x00004E2F
- add r0, r6, #0
- add r1, r5, r1
- bl FUN_0200C358
- ldr r1, _02250894 ; =0x00004E2A
- add r0, r6, #0
- add r1, r5, r1
- bl FUN_0200C368
- ldr r1, _02250898 ; =0x00004E27
- add r0, r6, #0
- add r1, r5, r1
- bl FUN_0200C378
- ldr r1, _02250898 ; =0x00004E27
- add r0, r6, #0
- add r1, r5, r1
- bl FUN_0200C388
- mov r0, #6
- add sp, #0xd0
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, r6, r7, pc}
-_0225073C:
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x18]
- bl FUN_0200C5A8
- ldr r0, [r4, #4]
- add r1, sp, #4
- ldr r0, [r0, #0x18]
- add r1, #2
- add r2, sp, #4
- bl FUN_0200C7A0
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x18]
- bl FUN_0200C630
- add r5, r0, #0
- ldr r0, [r4, #4]
- add r0, #0x88
- ldr r0, [r0]
- cmp r0, #0
- beq _022507E2
- ldr r2, [r4, #0xc]
- mov r1, #0x14
- add r3, r2, #0
- mul r3, r1
- add r1, sp, #0x30
- lsl r6, r5, #2
- add r1, r1, r3
- ldrsh r1, [r6, r1]
- ldr r2, _0225089C ; =0x00007FFF
- cmp r1, r2
- beq _022507E2
- add r7, sp, #4
- mov r2, #2
- ldrsh r2, [r7, r2]
- add r1, r2, r1
- mov r2, #0
- ldrsh r7, [r7, r2]
- add r2, sp, #0x30
- add r2, #2
- add r2, r2, r3
- ldrsh r2, [r6, r2]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add r2, r7, r2
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- bl MOD08_02229FF0
- cmp r5, #3
- bne _022507E2
- ldr r0, [r4, #4]
- ldr r6, [r4, #0x18]
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_02229A80
- cmp r6, r0
- beq _022507E2
- ldr r0, [r4, #4]
- add r1, r6, #0
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_02229A5C
- ldr r0, [r4, #4]
- mov r1, #1
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_0222A018
- ldr r0, [r4, #4]
- mov r1, #1
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_0222A008
- ldr r0, [r4, #0x18]
- cmp r0, #3
- beq _022507E2
- ldr r0, _022508A0 ; =0x0000070A
- bl FUN_020054C8
-_022507E2:
- cmp r5, #4
- bne _0225088A
- mov r0, #8
- str r0, [r4, #0x14]
- mov r0, #4
- add sp, #0xd0
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, r6, r7, pc}
-_022507F2:
- ldr r0, [r4, #0x14]
- sub r0, r0, #1
- str r0, [r4, #0x14]
- bne _0225088A
- ldr r0, [r4]
- bl MOD11_02230080
- add r5, r0, #0
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x18]
- bl FUN_0200C3DC
- ldr r1, _02250890 ; =0x00004E2F
- add r0, r5, #0
- bl FUN_0200C358
- ldr r1, _02250894 ; =0x00004E2A
- add r0, r5, #0
- bl FUN_0200C368
- ldr r1, _02250898 ; =0x00004E27
- add r0, r5, #0
- bl FUN_0200C378
- ldr r1, _02250898 ; =0x00004E27
- add r0, r5, #0
- bl FUN_0200C388
- ldr r0, [r4, #4]
- mov r1, #6
- ldr r0, [r0, #0x1c]
- mov r2, #0
- bl FUN_02007558
- ldr r0, [r4, #0x18]
- cmp r0, #3
- bne _02250844
- mov r0, #6
- add sp, #0xd0
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, r6, r7, pc}
-_02250844:
- mov r0, #5
- add sp, #0xd0
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, r6, r7, pc}
-_0225084C:
- ldr r0, [r4, #4]
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_022299E8
- cmp r0, #1
- beq _0225088A
- ldr r0, [r4, #4]
- add r0, #0x88
- ldr r0, [r0]
- bl MOD08_02229A2C
- ldr r0, [r4, #4]
- mov r1, #0
- add r0, #0x88
- str r1, [r0]
- mov r0, #6
- add sp, #0xd0
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, r6, r7, pc}
-_02250874:
- ldrb r1, [r4, #9]
- ldrb r2, [r4, #8]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
-_0225088A:
- add sp, #0xd0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02250890: .word 0x00004E2F
-_02250894: .word 0x00004E2A
-_02250898: .word 0x00004E27
-_0225089C: .word 0x00007FFF
-_022508A0: .word 0x0000070A
-
- thumb_func_start MOD11_022508A4
-MOD11_022508A4: ; 0x022508A4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4, #0xa]
- cmp r0, #0
- beq _022508B6
- cmp r0, #1
- beq _02250906
- pop {r3, r4, r5, pc}
-_022508B6:
- ldrb r0, [r4, #0xb]
- cmp r0, #2
- ldr r0, [r4, #4]
- bne _022508E2
- ldr r0, [r0, #0x1c]
- mov r1, #0
- mov r2, #5
- bl FUN_020079E0
- ldr r0, [r4, #4]
- mov r1, #0
- ldr r0, [r0, #0x1c]
- bl FUN_0200782C
- mov r1, #0x4a
- lsl r1, r1, #2
- cmp r0, r1
- blt _0225092A
- ldrb r0, [r4, #0xa]
- add r0, r0, #1
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, pc}
-_022508E2:
- mov r1, #0
- ldr r0, [r0, #0x1c]
- sub r2, r1, #5
- bl FUN_020079E0
- ldr r0, [r4, #4]
- mov r1, #0
- ldr r0, [r0, #0x1c]
- bl FUN_0200782C
- mov r1, #0x27
- mvn r1, r1
- cmp r0, r1
- bgt _0225092A
- ldrb r0, [r4, #0xa]
- add r0, r0, #1
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, pc}
-_02250906:
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x1c]
- bl FUN_02007534
- ldr r0, [r4, #4]
- mov r1, #0
- str r1, [r0, #0x1c]
- ldrb r1, [r4, #9]
- ldrb r2, [r4, #8]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
-_0225092A:
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_0225092C
-MOD11_0225092C: ; 0x0225092C
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4, #0xa]
- cmp r0, #0
- beq _0225093E
- cmp r0, #1
- beq _0225099A
- pop {r3, r4, r5, pc}
-_0225093E:
- ldrb r0, [r4, #0xb]
- cmp r0, #0
- ldr r0, [r4, #4]
- bne _02250970
- mov r1, #0
- mov r2, #5
- bl FUN_020079E0
- mov r0, #0xc
- ldrsh r5, [r4, r0]
- ldr r0, [r4, #4]
- mov r1, #0
- bl FUN_0200782C
- cmp r0, r5
- blt _022509B0
- ldr r0, [r4, #4]
- mov r1, #0
- add r2, r5, #0
- bl FUN_02007558
- ldrb r0, [r4, #0xa]
- add r0, r0, #1
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, pc}
-_02250970:
- mov r1, #0
- sub r2, r1, #5
- bl FUN_020079E0
- mov r0, #0xc
- ldrsh r5, [r4, r0]
- ldr r0, [r4, #4]
- mov r1, #0
- bl FUN_0200782C
- cmp r0, r5
- bgt _022509B0
- ldr r0, [r4, #4]
- mov r1, #0
- add r2, r5, #0
- bl FUN_02007558
- ldrb r0, [r4, #0xa]
- add r0, r0, #1
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, pc}
-_0225099A:
- ldrb r1, [r4, #9]
- ldrb r2, [r4, #8]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
-_022509B0:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022509B4
-MOD11_022509B4: ; 0x022509B4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldrb r1, [r4]
- add r5, r0, #0
- cmp r1, #0
- beq _022509C6
- cmp r1, #1
- beq _022509F6
- b _02250A0A
-_022509C6:
- add r0, r4, #0
- add r0, #0x4d
- ldrb r0, [r0]
- cmp r0, #0
- beq _022509DE
- add r0, r4, #0
- add r0, #0x4d
- ldrb r0, [r0]
- add r4, #0x4d
- sub r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_022509DE:
- add r0, r4, #0
- mov r1, #0
- bl MOD11_02257334
- add r0, r4, #0
- mov r1, #1
- bl MOD11_022572AC
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_022509F6:
- add r0, r4, #0
- add r0, #0x4f
- ldrb r0, [r0]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1f
- cmp r0, #1
- bne _02250A26
- add r0, r1, #1
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_02250A0A:
- add r1, r4, #0
- add r2, r4, #0
- add r1, #0x24
- add r2, #0x4c
- ldrb r1, [r1]
- ldrb r2, [r2]
- ldr r0, [r4, #0xc]
- bl MOD11_022567B8
- mov r0, #0
- str r0, [r4, #0x10]
- add r0, r5, #0
- bl FUN_0200CAB4
-_02250A26:
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02250A28
-MOD11_02250A28: ; 0x02250A28
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldrb r1, [r4]
- add r5, r0, #0
- cmp r1, #0
- bne _02250A48
- add r0, r4, #0
- add r0, #0x4f
- ldrb r0, [r0]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1f
- cmp r0, #1
- bne _02250A6C
- add r0, r1, #1
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_02250A48:
- add r1, r4, #0
- add r2, r4, #0
- add r1, #0x24
- add r2, #0x4c
- ldrb r1, [r1]
- ldrb r2, [r2]
- ldr r0, [r4, #0xc]
- bl MOD11_022567B8
- mov r0, #0
- str r0, [r4, #0x10]
- add r0, r5, #0
- bl FUN_0200CAB4
- add r0, r4, #0
- mov r1, #0
- bl MOD11_022572AC
-_02250A6C:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02250A70
-MOD11_02250A70: ; 0x02250A70
- push {r4, r5, r6, r7, lr}
- sub sp, #0x4c
- add r4, r1, #0
- str r0, [sp]
- ldr r0, [r4]
- bl MOD11_0222FF68
- ldr r0, [r4]
- bl MOD11_02230094
- add r6, r0, #0
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- bl MOD11_0222FF7C
- str r0, [sp, #4]
- ldr r0, [r4]
- bl MOD11_0222FF74
- add r7, r0, #0
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- bl MOD11_022302BC
- add r1, r0, #0
- ldrb r0, [r4, #9]
- cmp r1, r0
- beq _02250AB2
- ldr r0, [r4]
- bl MOD11_02231380
- add r5, r0, #0
- b _02250AB4
-_02250AB2:
- mov r5, #0
-_02250AB4:
- ldrb r0, [r4, #0xa]
- cmp r0, #8
- bls _02250ABC
- b _02250F3E
-_02250ABC:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02250AC8: ; jump table
- .short _02250ADA - _02250AC8 - 2 ; case 0
- .short _02250B16 - _02250AC8 - 2 ; case 1
- .short _02250C04 - _02250AC8 - 2 ; case 2
- .short _02250C1A - _02250AC8 - 2 ; case 3
- .short _02250C2C - _02250AC8 - 2 ; case 4
- .short _02250DA0 - _02250AC8 - 2 ; case 5
- .short _02250DF2 - _02250AC8 - 2 ; case 6
- .short _02250ED6 - _02250AC8 - 2 ; case 7
- .short _02250F14 - _02250AC8 - 2 ; case 8
-_02250ADA:
- mov r0, #0
- add r1, r4, #0
- add r2, sp, #0x34
-_02250AE0:
- ldrh r3, [r1, #0x24]
- add r1, r1, #2
- strh r3, [r2]
- add r3, r4, r0
- add r3, #0x2c
- ldrb r3, [r3]
- strh r3, [r2, #8]
- add r3, r4, r0
- add r3, #0x30
- ldrb r3, [r3]
- add r0, r0, #1
- strh r3, [r2, #0x10]
- add r2, r2, #2
- cmp r0, #4
- blt _02250AE0
- ldr r0, [r4]
- bl MOD11_02230094
- add r1, r4, #0
- add r1, #0x34
- ldrb r1, [r1]
- add r2, sp, #0x34
- bl MOD11_0225A760
- ldrb r0, [r4, #0xa]
- add r0, r0, #1
- strb r0, [r4, #0xa]
-_02250B16:
- ldr r0, [r4]
- bl MOD11_022300C4
- add r5, r0, #0
- mov r0, #1
- lsl r0, r0, #0xa
- add r1, r7, #0
- tst r1, r0
- beq _02250B9A
- ldr r0, [r4]
- bl MOD11_02231268
- cmp r0, #0
- beq _02250B3A
- cmp r0, #1
- beq _02250B66
- add sp, #0x4c
- pop {r4, r5, r6, r7, pc}
-_02250B3A:
- mov r0, #2
- add r1, sp, #8
- strb r0, [r1, #9]
- add r0, r4, #0
- add r0, #0x23
- ldrb r0, [r0]
- ldrb r2, [r4, #9]
- mov r3, #0
- lsl r0, r0, #8
- orr r0, r2
- str r0, [sp, #0x14]
- ldr r0, _02250E84 ; =0x00000399
- add r2, sp, #0x10
- strh r0, [r1, #0xa]
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD11_0223178C
- mov r0, #3
- add sp, #0x4c
- strb r0, [r4, #0xa]
- pop {r4, r5, r6, r7, pc}
-_02250B66:
- mov r1, #0
- add r0, sp, #8
- strb r1, [r0, #9]
- ldr r0, [r4]
- bl MOD11_0223021C
- ldr r1, _02250E88 ; =0x000004CA
- add r1, r0, r1
- add r0, sp, #8
- strh r1, [r0, #0xa]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- add r1, r5, #0
- add r2, sp, #0x10
- bl MOD11_0223178C
- add r1, r4, #0
- add r1, #0x35
- strb r0, [r1]
- mov r0, #2
- add sp, #0x4c
- strb r0, [r4, #0xa]
- pop {r4, r5, r6, r7, pc}
-_02250B9A:
- mov r1, #0x20
- add r2, r7, #0
- tst r2, r1
- beq _02250BBA
- mov r1, #8
- add r0, sp, #8
- strb r1, [r0, #9]
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- bl MOD11_02230140
- str r0, [sp, #0x14]
- ldr r1, _02250E8C ; =0x0000039A
- add r0, sp, #8
- strh r1, [r0, #0xa]
- b _02250BF0
-_02250BBA:
- lsl r1, r1, #4
- tst r1, r7
- beq _02250BD8
- mov r1, #8
- add r0, sp, #8
- strb r1, [r0, #9]
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- bl MOD11_02230140
- str r0, [sp, #0x14]
- ldr r1, _02250E90 ; =0x000004C6
- add r0, sp, #8
- strh r1, [r0, #0xa]
- b _02250BF0
-_02250BD8:
- add r2, r4, #0
- mov r1, #2
- add r3, sp, #8
- strb r1, [r3, #9]
- add r2, #0x23
- ldrb r2, [r2]
- ldrb r1, [r4, #9]
- sub r0, #0x67
- lsl r2, r2, #8
- orr r1, r2
- str r1, [sp, #0x14]
- strh r0, [r3, #0xa]
-_02250BF0:
- ldr r0, [r4]
- add r1, r5, #0
- add r2, sp, #0x10
- mov r3, #0
- bl MOD11_0223178C
- mov r0, #3
- add sp, #0x4c
- strb r0, [r4, #0xa]
- pop {r4, r5, r6, r7, pc}
-_02250C04:
- add r0, r4, #0
- add r0, #0x35
- ldrb r0, [r0]
- bl FUN_0201BD70
- cmp r0, #0
- bne _02250C36
- mov r0, #3
- add sp, #0x4c
- strb r0, [r4, #0xa]
- pop {r4, r5, r6, r7, pc}
-_02250C1A:
- ldr r0, [r4, #4]
- bl MOD11_02257208
- ldr r0, [sp, #4]
- ldr r1, [r4]
- bl MOD11_0225464C
- mov r0, #4
- strb r0, [r4, #0xa]
-_02250C2C:
- add r0, r6, #0
- bl MOD11_02258F5C
- cmp r0, #0
- bne _02250C38
-_02250C36:
- b _02250F3E
-_02250C38:
- ldrb r1, [r4, #9]
- add r0, sp, #8
- strb r1, [r0, #1]
- add r1, r4, #0
- add r1, #0x34
- ldrb r1, [r1]
- strb r1, [r0]
- add r1, r4, #0
- add r1, #0x23
- ldrb r1, [r1]
- strb r1, [r0, #2]
- mov r1, #0x36
- ldrsh r1, [r4, r1]
- strh r1, [r0, #4]
- ldrh r1, [r4, #0x38]
- strh r1, [r0, #6]
- add r1, r4, #0
- add r1, #0x3a
- ldrb r1, [r1]
- strb r1, [r0, #3]
- ldr r1, _02250E94 ; =0x00000197
- ldr r0, [sp, #4]
- ldrb r0, [r0, r1]
- cmp r0, #0
- beq _02250CFA
- add r0, r6, #0
- mov r1, #1
- bl MOD11_0225B77C
- ldr r0, [r4]
- bl MOD11_02230C50
- mov r1, #1
- tst r0, r1
- beq _02250C8C
- add r0, r6, #0
- mov r1, #6
- mov r2, #0
- add r3, sp, #8
- bl MOD11_02258820
- b _02250CF0
-_02250C8C:
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #2
- lsl r1, r1, #8
- tst r0, r1
- beq _02250CA8
- add r0, r6, #0
- mov r1, #0xa
- mov r2, #0
- add r3, sp, #8
- bl MOD11_02258820
- b _02250CF0
-_02250CA8:
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #0x20
- tst r0, r1
- beq _02250CC2
- add r0, r6, #0
- mov r1, #8
- mov r2, #0
- add r3, sp, #8
- bl MOD11_02258820
- b _02250CF0
-_02250CC2:
- add r0, sp, #8
- ldrb r0, [r0]
- cmp r0, #4
- bne _02250CE4
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #8
- tst r0, r1
- bne _02250CE4
- add r0, r6, #0
- mov r1, #4
- mov r2, #0
- add r3, sp, #8
- bl MOD11_02258820
- b _02250CF0
-_02250CE4:
- add r0, r6, #0
- mov r1, #3
- mov r2, #0
- add r3, sp, #8
- bl MOD11_02258820
-_02250CF0:
- ldr r0, [r4]
- mov r1, #1
- bl MOD11_022312AC
- b _02250D70
-_02250CFA:
- ldr r0, [r4]
- bl MOD11_02230C50
- mov r1, #1
- tst r0, r1
- beq _02250D14
- add r0, r6, #0
- mov r1, #5
- mov r2, #0
- add r3, sp, #8
- bl MOD11_02258820
- b _02250D68
-_02250D14:
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #2
- lsl r1, r1, #8
- tst r0, r1
- beq _02250D30
- add r0, r6, #0
- mov r1, #9
- mov r2, #0
- add r3, sp, #8
- bl MOD11_02258820
- b _02250D68
-_02250D30:
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #0x20
- tst r0, r1
- add r3, sp, #8
- beq _02250D4A
- add r0, r6, #0
- mov r1, #7
- mov r2, #0
- bl MOD11_02258820
- b _02250D68
-_02250D4A:
- add r0, sp, #8
- ldrb r0, [r0]
- cmp r0, #4
- beq _02250D5E
- add r0, r6, #0
- mov r1, #1
- mov r2, #0
- bl MOD11_02258820
- b _02250D68
-_02250D5E:
- add r0, r6, #0
- mov r1, #2
- mov r2, #0
- bl MOD11_02258820
-_02250D68:
- ldr r1, _02250E94 ; =0x00000197
- ldr r0, [sp, #4]
- mov r2, #1
- strb r2, [r0, r1]
-_02250D70:
- add r1, r4, #0
- add r0, r6, #0
- add r1, #0x1c
- bl MOD11_02258D60
- add r1, r4, #0
- add r2, r4, #0
- add r0, r6, #0
- add r1, #0x10
- add r2, #0x16
- bl MOD11_02258D7C
- add r0, r6, #0
- bl MOD11_02258DD0
- cmp r5, #0
- beq _02250D98
- add r0, r5, #0
- bl MOD11_02258180
-_02250D98:
- mov r0, #5
- add sp, #0x4c
- strb r0, [r4, #0xa]
- pop {r4, r5, r6, r7, pc}
-_02250DA0:
- ldr r0, _02250E98 ; =0x021C48B8
- ldr r1, [r0, #0x48]
- mov r0, #8
- tst r0, r1
- beq _02250DD0
- ldr r0, [r4]
- mov r5, #0
- bl MOD11_0222FF84
- cmp r0, #0
- ble _02250DD0
-_02250DB6:
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD11_0222FF7C
- add r0, #0x28
- bl MOD11_0225704C
- ldr r0, [r4]
- add r5, r5, #1
- bl MOD11_0222FF84
- cmp r5, r0
- blt _02250DB6
-_02250DD0:
- add r0, r6, #0
- bl MOD11_02258E74
- mov r1, #0
- mvn r1, r1
- str r0, [r4, #0xc]
- cmp r0, r1
- beq _02250E02
- mov r0, #0xa
- strb r0, [r4, #0xb]
- ldr r0, _02250E9C ; =0x000005DD
- bl FUN_020054C8
- mov r0, #6
- add sp, #0x4c
- strb r0, [r4, #0xa]
- pop {r4, r5, r6, r7, pc}
-_02250DF2:
- add r0, r6, #0
- bl MOD11_02258F5C
- cmp r0, #1
- beq _02250E04
- ldr r0, [r4, #0xc]
- cmp r0, #1
- beq _02250E04
-_02250E02:
- b _02250F3E
-_02250E04:
- ldr r0, [r4, #0xc]
- cmp r0, #4
- bhi _02250EC4
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02250E16: ; jump table
- .short _02250EC4 - _02250E16 - 2 ; case 0
- .short _02250E20 - _02250E16 - 2 ; case 1
- .short _02250E34 - _02250E16 - 2 ; case 2
- .short _02250E5C - _02250E16 - 2 ; case 3
- .short _02250EA0 - _02250E16 - 2 ; case 4
-_02250E20:
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #0x22
- lsl r1, r1, #4
- tst r0, r1
- beq _02250EC8
- mov r0, #7
- strb r0, [r4, #0xa]
- b _02250EC8
-_02250E34:
- mov r1, #0
- add r0, r6, #0
- add r2, r1, #0
- add r3, r1, #0
- bl MOD11_02258820
- add r0, r6, #0
- mov r1, #0
- bl MOD11_0225B77C
- add r0, r5, #0
- bl MOD11_02258184
- ldr r0, [r4, #4]
- bl MOD11_02257238
- ldr r0, [sp, #4]
- bl MOD11_0225468C
- b _02250EC8
-_02250E5C:
- mov r1, #0
- add r0, r6, #0
- add r2, r1, #0
- add r3, r1, #0
- bl MOD11_02258820
- add r0, r6, #0
- mov r1, #0
- bl MOD11_0225B77C
- add r0, r5, #0
- bl MOD11_02258184
- ldr r0, [r4, #4]
- bl MOD11_02257238
- ldr r0, [sp, #4]
- bl MOD11_0225468C
- b _02250EC8
- .align 2, 0
-_02250E84: .word 0x00000399
-_02250E88: .word 0x000004CA
-_02250E8C: .word 0x0000039A
-_02250E90: .word 0x000004C6
-_02250E94: .word 0x00000197
-_02250E98: .word 0x021C48B8
-_02250E9C: .word 0x000005DD
-_02250EA0:
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- bl MOD11_02230CB8
- cmp r0, #1
- bne _02250EB6
- add r0, r5, #0
- bl MOD11_02258184
- mov r0, #0xff
- str r0, [r4, #0xc]
-_02250EB6:
- mov r1, #0
- add r0, r6, #0
- add r2, r1, #0
- add r3, r1, #0
- bl MOD11_02258820
- b _02250EC8
-_02250EC4:
- bl ErrorHandling
-_02250EC8:
- add r0, r6, #0
- bl MOD11_02258E30
- mov r0, #8
- add sp, #0x4c
- strb r0, [r4, #0xa]
- pop {r4, r5, r6, r7, pc}
-_02250ED6:
- add r0, r6, #0
- bl MOD11_02258F5C
- cmp r0, #1
- bne _02250F3E
- mov r1, #0
- add r0, r6, #0
- add r2, r1, #0
- add r3, r1, #0
- bl MOD11_02258820
- add r0, r6, #0
- mov r1, #0
- bl MOD11_0225B77C
- add r0, r5, #0
- bl MOD11_02258184
- ldr r0, [r4, #4]
- bl MOD11_02257238
- ldr r0, [sp, #4]
- bl MOD11_0225468C
- add r0, r6, #0
- bl MOD11_02258E30
- mov r0, #8
- add sp, #0x4c
- strb r0, [r4, #0xa]
- pop {r4, r5, r6, r7, pc}
-_02250F14:
- add r0, r6, #0
- bl MOD11_0225B780
- cmp r0, #1
- bne _02250F3E
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- ldr r2, [r4, #0xc]
- bl MOD11_02255528
- ldrb r1, [r4, #9]
- ldrb r2, [r4, #8]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [sp]
- bl FUN_0200CAB4
-_02250F3E:
- add sp, #0x4c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02250F44
-MOD11_02250F44: ; 0x02250F44
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldrb r1, [r4, #9]
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD16_021F45A4
- add r2, r0, #0
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- bl MOD11_02255528
- ldrb r1, [r4, #9]
- ldrb r2, [r4, #8]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02250F74
-MOD11_02250F74: ; 0x02250F74
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldrb r1, [r4, #9]
- add r5, r0, #0
- ldrb r2, [r4, #8]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02250F94
-MOD11_02250F94: ; 0x02250F94
- push {r4, r5, r6, lr}
- add r4, r1, #0
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD11_02230DE0
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD11_0222FF78
- mov r2, #0
- ldrb r1, [r4, #9]
- add r3, r2, #0
- bl MOD11_02243420
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r1, #0x1a
- bl GetMonBaseStat
- ldr r2, _0225100C ; =0x0225E830
- lsl r1, r5, #1
- ldrb r2, [r2, r1]
- mul r2, r0
- add r0, r2, #0
- ldr r2, _02251010 ; =0x0225E831
- ldrb r1, [r2, r1]
- bl _s32_div_f
- add r5, r0, #0
- bl rand_LC
- mov r1, #0xff
- bl _s32_div_f
- cmp r1, r5
- ldr r0, [r4]
- bgt _02250FEA
- ldrb r1, [r4, #9]
- mov r2, #4
- bl MOD11_02255528
- b _02250FF2
-_02250FEA:
- ldrb r1, [r4, #9]
- mov r2, #5
- bl MOD11_02255528
-_02250FF2:
- ldrb r1, [r4, #9]
- ldrb r2, [r4, #8]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r6, #0
- bl FUN_0200CAB4
- pop {r4, r5, r6, pc}
- nop
-_0225100C: .word 0x0225E830
-_02251010: .word 0x0225E831
-
- thumb_func_start MOD11_02251014
-MOD11_02251014: ; 0x02251014
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldrb r1, [r4, #9]
- add r5, r0, #0
- ldr r0, [r4]
- mov r2, #4
- bl MOD11_02255528
- ldrb r1, [r4, #9]
- ldrb r2, [r4, #8]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_0225103C
-MOD11_0225103C: ; 0x0225103C
- push {r4, r5, r6, r7, lr}
- sub sp, #0x3c
- add r4, r1, #0
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD11_0222FF68
- ldr r0, [r4]
- bl MOD11_02230094
- add r7, r0, #0
- ldrb r1, [r4, #0x1d]
- ldr r0, [r4]
- bl MOD11_0222FF7C
- str r0, [sp]
- ldrb r1, [r4, #0x1d]
- ldr r0, [r4]
- bl MOD11_022302BC
- add r1, r0, #0
- ldrb r0, [r4, #0x1d]
- cmp r1, r0
- beq _02251076
- ldr r0, [r4]
- bl MOD11_02231380
- add r5, r0, #0
- b _02251078
-_02251076:
- mov r5, #0
-_02251078:
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- cmp r0, #3
- bls _02251084
- b _0225118E
-_02251084:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02251090: ; jump table
- .short _02251098 - _02251090 - 2 ; case 0
- .short _02251114 - _02251090 - 2 ; case 1
- .short _0225113A - _02251090 - 2 ; case 2
- .short _02251180 - _02251090 - 2 ; case 3
-_02251098:
- add r0, r7, #0
- bl MOD11_02258F5C
- cmp r0, #0
- bne _022510A4
- b _022511B6
-_022510A4:
- ldr r0, [r4]
- bl MOD11_022300C4
- add r1, r0, #0
- mov r2, #2
- add r0, sp, #4
- strb r2, [r0, #0x15]
- ldrb r2, [r4, #0x1f]
- ldrb r3, [r4, #0x1d]
- lsl r2, r2, #8
- orr r2, r3
- str r2, [sp, #0x1c]
- ldr r2, _022511BC ; =0x00000399
- mov r3, #0
- strh r2, [r0, #0x16]
- ldr r0, [r4]
- add r2, sp, #0x18
- bl MOD11_0223178C
- add r0, r7, #0
- bl MOD11_02258E30
- add r5, sp, #4
- mov r2, #0
- add r3, r4, #0
- add r6, r5, #0
-_022510D8:
- ldrh r0, [r3, #0xc]
- add r1, r4, r2
- add r2, r2, #1
- strh r0, [r5]
- ldrb r0, [r1, #0x14]
- add r3, r3, #2
- add r5, r5, #2
- strb r0, [r6, #8]
- ldrb r0, [r1, #0x18]
- strb r0, [r6, #0xc]
- add r6, r6, #1
- cmp r2, #4
- blt _022510D8
- ldrb r1, [r4, #0x1e]
- add r0, sp, #4
- mov r2, #0
- strb r1, [r0, #0x10]
- add r0, r7, #0
- mov r1, #0xb
- add r3, sp, #4
- bl MOD11_02258820
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- add r4, #0x20
- add sp, #0x3c
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, r7, pc}
-_02251114:
- add r0, r7, #0
- bl MOD11_02258E74
- mov r1, #0
- mvn r1, r1
- str r0, [r4, #8]
- cmp r0, r1
- beq _022511B6
- ldr r0, _022511C0 ; =0x000005DD
- bl FUN_020054C8
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- add r4, #0x20
- add sp, #0x3c
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, r7, pc}
-_0225113A:
- ldr r0, [r4, #8]
- cmp r0, #0xff
- beq _02251166
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- bne _02251166
- add r0, r7, #0
- mov r1, #0
- bl MOD11_0225B77C
- add r0, r5, #0
- bl MOD11_02258184
- ldr r0, [r4, #4]
- bl MOD11_02257238
- ldr r0, [sp]
- bl MOD11_0225468C
-_02251166:
- ldrb r1, [r4, #0x1d]
- ldr r0, [r4]
- ldr r2, [r4, #8]
- bl MOD11_022555E4
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- add r4, #0x20
- add sp, #0x3c
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, r7, pc}
-_02251180:
- add r0, r4, #0
- add r0, #0x20
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x20
- strb r1, [r0]
-_0225118E:
- add r0, r7, #0
- bl MOD11_0225B780
- cmp r0, #1
- bne _022511B6
- ldr r0, [r4]
- mov r1, #1
- bl MOD11_02231274
- ldrb r1, [r4, #0x1d]
- ldrb r2, [r4, #0x1c]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r6, #0
- bl FUN_0200CAB4
-_022511B6:
- add sp, #0x3c
- pop {r4, r5, r6, r7, pc}
- nop
-_022511BC: .word 0x00000399
-_022511C0: .word 0x000005DD
-
- thumb_func_start MOD11_022511C4
-MOD11_022511C4: ; 0x022511C4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x20
- add r6, r1, #0
- str r0, [sp, #8]
- ldr r0, [r6]
- bl MOD11_0222FF74
- add r4, r0, #0
- ldr r0, [r6]
- bl MOD11_0222FF78
- str r0, [sp, #0xc]
- ldr r0, _02251290 ; =0x00000101
- tst r0, r4
- bne _022511FA
- ldr r0, [r6]
- bl MOD11_02230C50
- mov r1, #1
- tst r0, r1
- bne _022511FA
- ldrb r1, [r6, #0x1d]
- ldr r0, [r6]
- bl MOD11_02230270
- cmp r0, #0
- bne _02251216
-_022511FA:
- bl FUN_02033590
- cmp r0, #0
- beq _02251206
- bl ErrorHandling
-_02251206:
- ldrb r1, [r6, #0x1d]
- ldr r0, [r6]
- bl MOD16_021EFD8C
- cmp r0, #0xff
- beq _0225128C
- add r4, r0, #1
- b _0225126C
-_02251216:
- mov r7, #0
- add r4, r7, #0
- add r5, sp, #0x10
-_0225121C:
- add r0, r4, #0
- bl MaskOfFlagNo
- ldrh r1, [r6, #0x22]
- tst r0, r1
- bne _0225122E
- add r0, r4, #1
- stmia r5!, {r0}
- add r7, r7, #1
-_0225122E:
- add r4, r4, #1
- cmp r4, #4
- blt _0225121C
- bl rand_LC
- add r1, r7, #0
- bl _s32_div_f
- lsl r1, r1, #2
- add r0, sp, #0x10
- ldr r4, [r0, r1]
- mov r0, #1
- sub r3, r4, #1
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- lsl r3, r3, #1
- add r3, r6, r3
- ldrb r2, [r6, #0x1d]
- ldrh r3, [r3, #0xc]
- ldr r0, [r6]
- ldr r1, [sp, #0xc]
- bl MOD11_02244C28
- str r0, [sp]
- ldrb r3, [r6, #0x1d]
- ldr r0, [r6]
- ldr r1, [sp, #0xc]
- mov r2, #0xb
- bl MOD11_0224C54C
-_0225126C:
- ldrb r1, [r6, #0x1d]
- ldr r0, [r6]
- add r2, r4, #0
- bl MOD11_022555E4
- ldrb r1, [r6, #0x1d]
- ldrb r2, [r6, #0x1c]
- ldr r0, [r6]
- bl MOD11_022567B8
- add r0, r6, #0
- bl FreeToHeap
- ldr r0, [sp, #8]
- bl FUN_0200CAB4
-_0225128C:
- add sp, #0x20
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02251290: .word 0x00000101
-
- thumb_func_start MOD11_02251294
-MOD11_02251294: ; 0x02251294
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldrb r1, [r4, #0x1d]
- add r5, r0, #0
- ldrb r2, [r4, #0x1c]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022512B4
-MOD11_022512B4: ; 0x022512B4
- push {r4, r5, r6, r7, lr}
- sub sp, #0x2c
- add r4, r1, #0
- str r0, [sp]
- ldr r0, [r4]
- bl MOD11_0222FF68
- ldrb r1, [r4, #0xd]
- ldr r0, [r4]
- bl MOD11_0222FF7C
- add r7, r0, #0
- ldr r0, [r4]
- bl MOD11_02230094
- add r5, r0, #0
- ldrb r1, [r4, #0xd]
- ldr r0, [r4]
- bl MOD11_022302BC
- add r1, r0, #0
- ldrb r0, [r4, #0xd]
- cmp r1, r0
- beq _022512EE
- ldr r0, [r4]
- bl MOD11_02231380
- add r6, r0, #0
- b _022512F0
-_022512EE:
- mov r6, #0
-_022512F0:
- ldrb r0, [r4, #0xf]
- cmp r0, #3
- bhi _022513BE
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02251302: ; jump table
- .short _0225130A - _02251302 - 2 ; case 0
- .short _02251366 - _02251302 - 2 ; case 1
- .short _02251386 - _02251302 - 2 ; case 2
- .short _022513BA - _02251302 - 2 ; case 3
-_0225130A:
- add r0, r5, #0
- bl MOD11_02258F5C
- cmp r0, #0
- bne _02251316
- b _02251418
-_02251316:
- add r2, sp, #8
- mov r0, #0
- add r1, r4, #0
- add r2, #2
-_0225131E:
- ldrh r3, [r1, #0x10]
- add r0, r0, #1
- strh r3, [r2]
- ldrh r3, [r1, #0x12]
- strh r3, [r2, #2]
- ldrh r3, [r1, #0x14]
- strh r3, [r2, #4]
- ldrh r3, [r1, #0x16]
- add r1, #8
- strh r3, [r2, #6]
- add r2, #8
- cmp r0, #4
- blt _0225131E
- ldrb r1, [r4, #0xe]
- add r0, sp, #0x28
- add r0, #2
- strb r1, [r0]
- ldrh r0, [r4, #0x30]
- ldrb r1, [r4, #0xe]
- bl MOD11_02258F88
- add r1, sp, #0x28
- add r1, #2
- strb r0, [r1, #1]
- add r3, sp, #8
- add r0, r5, #0
- mov r1, #0xc
- mov r2, #0
- add r3, #2
- bl MOD11_02258820
- ldrb r0, [r4, #0xf]
- add sp, #0x2c
- add r0, r0, #1
- strb r0, [r4, #0xf]
- pop {r4, r5, r6, r7, pc}
-_02251366:
- add r0, r5, #0
- bl MOD11_02258E74
- mov r1, #0
- mvn r1, r1
- str r0, [r4, #8]
- cmp r0, r1
- beq _02251418
- ldr r0, _0225141C ; =0x000005DD
- bl FUN_020054C8
- ldrb r0, [r4, #0xf]
- add sp, #0x2c
- add r0, r0, #1
- strb r0, [r4, #0xf]
- pop {r4, r5, r6, r7, pc}
-_02251386:
- ldr r0, [r4, #8]
- cmp r0, #0xff
- beq _022513B0
- ldr r0, [r4, #4]
- bl MOD11_02257238
- add r0, r7, #0
- bl MOD11_0225468C
- add r0, r6, #0
- bl MOD11_02258184
- add r0, r4, #0
- add r0, #0x32
- ldrb r0, [r0]
- cmp r0, #1
- bne _022513B0
- add r0, r5, #0
- mov r1, #0
- bl MOD11_0225B77C
-_022513B0:
- ldrb r0, [r4, #0xf]
- add sp, #0x2c
- add r0, r0, #1
- strb r0, [r4, #0xf]
- pop {r4, r5, r6, r7, pc}
-_022513BA:
- add r0, r0, #1
- strb r0, [r4, #0xf]
-_022513BE:
- add r0, r5, #0
- bl MOD11_0225B780
- cmp r0, #1
- bne _02251418
- ldr r0, [r4]
- ldr r5, [r4, #8]
- bl MOD11_0222FF74
- add r6, r0, #0
- cmp r5, #0xff
- beq _022513F8
- ldr r0, [r4]
- add r1, sp, #4
- bl MOD11_022314E0
- mov r0, #2
- tst r0, r6
- ldr r0, [r4, #8]
- beq _022513F0
- add r1, r0, #1
- add r0, sp, #4
- ldrb r0, [r0, r1]
- add r5, r0, #1
- b _022513F8
-_022513F0:
- sub r1, r0, #1
- add r0, sp, #4
- ldrb r0, [r0, r1]
- add r5, r0, #1
-_022513F8:
- ldrb r1, [r4, #0xd]
- ldr r0, [r4]
- add r2, r5, #0
- bl MOD11_02255720
- ldrb r1, [r4, #0xd]
- ldrb r2, [r4, #0xc]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [sp]
- bl FUN_0200CAB4
-_02251418:
- add sp, #0x2c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0225141C: .word 0x000005DD
-
- thumb_func_start MOD11_02251420
-MOD11_02251420: ; 0x02251420
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r6, r0, #0
- ldr r0, [r5]
- bl MOD11_0222FF78
- add r1, r0, #0
- ldrb r3, [r5, #0xd]
- ldr r0, [r5]
- mov r2, #0xb
- bl MOD11_0224C474
- add r4, r0, #1
- cmp r4, #5
- blt _02251442
- bl ErrorHandling
-_02251442:
- ldrb r1, [r5, #0xd]
- ldr r0, [r5]
- add r2, r4, #0
- bl MOD11_02255720
- ldrb r1, [r5, #0xd]
- ldrb r2, [r5, #0xc]
- ldr r0, [r5]
- bl MOD11_022567B8
- add r0, r5, #0
- bl FreeToHeap
- add r0, r6, #0
- bl FUN_0200CAB4
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_02251464
-MOD11_02251464: ; 0x02251464
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldrb r1, [r4, #0xd]
- add r5, r0, #0
- ldrb r2, [r4, #0xc]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02251484
-MOD11_02251484: ; 0x02251484
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x1fc
- sub sp, #0x14
- add r4, r1, #0
- add r7, r0, #0
- ldr r0, [r4]
- bl MOD11_022300CC
- ldrb r1, [r4, #0xe]
- add r5, r0, #0
- cmp r1, #0x1e
- bls _022514A0
- bl _02251FEA
-_022514A0:
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_022514AC: ; jump table
- .short _022514EA - _022514AC - 2 ; case 0
- .short _02251540 - _022514AC - 2 ; case 1
- .short _022515C2 - _022514AC - 2 ; case 2
- .short _022515D6 - _022514AC - 2 ; case 3
- .short _02251634 - _022514AC - 2 ; case 4
- .short _0225177C - _022514AC - 2 ; case 5
- .short _022517B8 - _022514AC - 2 ; case 6
- .short _02251808 - _022514AC - 2 ; case 7
- .short _022519DC - _022514AC - 2 ; case 8
- .short _02251A5A - _022514AC - 2 ; case 9
- .short _02251A96 - _022514AC - 2 ; case 10
- .short _02251AB8 - _022514AC - 2 ; case 11
- .short _02251FA2 - _022514AC - 2 ; case 12
- .short _02251B3E - _022514AC - 2 ; case 13
- .short _02251FA2 - _022514AC - 2 ; case 14
- .short _02251BF2 - _022514AC - 2 ; case 15
- .short _02251FD0 - _022514AC - 2 ; case 16
- .short _02251AF8 - _022514AC - 2 ; case 17
- .short _02251FA2 - _022514AC - 2 ; case 18
- .short _02251CA6 - _022514AC - 2 ; case 19
- .short _02251FA2 - _022514AC - 2 ; case 20
- .short _02251CEC - _022514AC - 2 ; case 21
- .short _02251D86 - _022514AC - 2 ; case 22
- .short _02251DBC - _022514AC - 2 ; case 23
- .short _02251FD0 - _022514AC - 2 ; case 24
- .short _02251AF8 - _022514AC - 2 ; case 25
- .short _02251FA2 - _022514AC - 2 ; case 26
- .short _02251CA6 - _022514AC - 2 ; case 27
- .short _02251FA2 - _022514AC - 2 ; case 28
- .short _02251E2E - _022514AC - 2 ; case 29
- .short _02251FD0 - _022514AC - 2 ; case 30
-_022514EA:
- ldr r0, [r4]
- bl MOD11_02230094
- bl MOD11_0225C76C
- strb r0, [r4, #0x10]
- ldr r0, [r4]
- bl MOD11_02230288
- mov r1, #1
- bl FUN_020143A8
- mov r1, #0
- mov r2, #3
- str r1, [sp]
- mov r0, #7
- str r0, [sp, #4]
- str r1, [sp, #8]
- mov r1, #5
- add r3, r1, #0
- add r0, r5, #0
- lsl r2, r2, #0xa
- sub r3, #0xd
- bl FUN_02003210
- mov r1, #0
- str r1, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0xa
- add r3, r1, #0
- ldr r2, _02251850 ; =0x0000FFFF
- add r0, r5, #0
- sub r3, #0x12
- bl FUN_02003210
- ldrb r0, [r4, #0xe]
- add sp, #0x1fc
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251540:
- bl FUN_020038E4
- cmp r0, #0
- bne _022515FE
- ldr r0, [r4]
- bl MOD11_0222D7F8
- mov r0, #5
- mov r1, #0x34
- bl AllocFromHeap
- str r0, [r4, #4]
- ldr r1, [r4]
- str r1, [r0]
- ldrb r1, [r4, #0xd]
- ldr r0, [r4]
- bl MOD11_022301D4
- ldr r1, [r4, #4]
- str r0, [r1, #4]
- ldr r0, [r4, #4]
- mov r1, #5
- str r1, [r0, #0xc]
- ldr r0, [r4, #4]
- mov r1, #0
- add r0, #0x26
- strb r1, [r0]
- ldr r0, [r4]
- bl MOD11_02230214
- ldr r1, [r4, #4]
- str r0, [r1, #8]
- ldrb r1, [r4, #0xd]
- ldr r0, [r4, #4]
- str r1, [r0, #0x10]
- ldr r0, [r4, #4]
- ldrb r1, [r4, #0x10]
- add r0, #0x25
- strb r1, [r0]
- ldr r0, [r4, #4]
- ldrb r1, [r4, #0x14]
- add r0, #0x22
- strb r1, [r0]
- ldr r0, [r4, #4]
- ldrb r1, [r4, #0x15]
- add r0, #0x23
- strb r1, [r0]
- ldr r0, [r4, #4]
- ldrb r1, [r4, #0x16]
- add r0, #0x24
- strb r1, [r0]
- ldrb r0, [r4, #0xd]
- add r0, r4, r0
- add r0, #0x30
- ldrb r1, [r0]
- ldr r0, [r4, #4]
- str r1, [r0, #0x18]
- ldr r0, [r4, #4]
- bl MOD09_022186F0
- add sp, #0x1fc
- mov r0, #3
- add sp, #0x14
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_022515C2:
- ldr r0, [r4, #4]
- ldrb r1, [r4, #0x10]
- add r0, #0x25
- strb r1, [r0]
- ldr r0, [r4, #4]
- bl MOD09_022186F0
- ldrb r0, [r4, #0xe]
- add r0, r0, #1
- strb r0, [r4, #0xe]
-_022515D6:
- ldr r1, [r4, #4]
- add r0, r1, #0
- add r0, #0x26
- ldrb r0, [r0]
- cmp r0, #0
- beq _022515FE
- mov r0, #0
- add r1, #0x26
- strb r0, [r1]
- ldr r0, [r4, #4]
- add r0, #0x25
- ldrb r0, [r0]
- strb r0, [r4, #0x10]
- ldr r1, [r4, #4]
- ldrh r0, [r1, #0x1c]
- cmp r0, #0
- beq _0225162A
- ldrb r0, [r1, #0x1e]
- cmp r0, #3
- bls _02251602
-_022515FE:
- bl _02251FEA
-_02251602:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0225160E: ; jump table
- .short _02251616 - _0225160E - 2 ; case 0
- .short _02251616 - _0225160E - 2 ; case 1
- .short _02251620 - _0225160E - 2 ; case 2
- .short _02251620 - _0225160E - 2 ; case 3
-_02251616:
- add sp, #0x1fc
- mov r0, #4
- add sp, #0x14
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251620:
- add sp, #0x1fc
- mov r0, #6
- add sp, #0x14
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_0225162A:
- add sp, #0x1fc
- mov r0, #6
- add sp, #0x14
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251634:
- ldrb r1, [r4, #0xd]
- ldr r0, [r4]
- bl MOD11_0222FF88
- str r0, [sp, #0x14]
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _02251660
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #8
- tst r0, r1
- bne _02251660
- ldrb r1, [r4, #0xd]
- mov r0, #1
- add r7, r1, #0
- and r7, r0
- b _02251662
-_02251660:
- ldrb r7, [r4, #0xd]
-_02251662:
- ldr r0, [r4, #8]
- mov r1, #6
- ldr r0, [r0, #4]
- ldr r0, [r0]
- bl FUN_0206B8CC
- ldr r0, [sp, #0x14]
- mov r6, #0
- bl FUN_0206B9AC
- cmp r0, #0
- ble _022516B0
- mov r0, #6
- mul r0, r7
- add r5, r4, r0
-_02251680:
- ldrb r2, [r5, #0x18]
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD11_02230014
- add r1, r0, #0
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- ldr r0, [r0]
- bl FUN_0206B900
- ldr r1, [r4, #8]
- ldrb r0, [r5, #0x18]
- ldr r1, [r1, #4]
- add r5, r5, #1
- add r1, r1, r6
- add r1, #0x2c
- strb r0, [r1]
- ldr r0, [sp, #0x14]
- add r6, r6, #1
- bl FUN_0206B9AC
- cmp r6, r0
- blt _02251680
-_022516B0:
- ldr r0, [r4, #8]
- ldr r1, [r4]
- ldr r0, [r0, #4]
- str r1, [r0, #8]
- ldr r0, [r4, #8]
- mov r1, #5
- ldr r0, [r0, #4]
- str r1, [r0, #0xc]
- ldr r1, [r4, #8]
- mov r0, #0
- ldr r1, [r1, #4]
- strb r0, [r1, #0x11]
- ldr r1, [r4, #8]
- ldr r1, [r1, #4]
- add r1, #0x36
- strb r0, [r1]
- ldr r1, [r4, #8]
- ldr r1, [r1, #4]
- strh r0, [r1, #0x24]
- ldr r0, [r4, #8]
- mov r1, #2
- ldr r0, [r0, #4]
- add r0, #0x35
- strb r1, [r0]
- ldr r0, [r4, #4]
- ldrh r1, [r0, #0x1c]
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- strh r1, [r0, #0x22]
- ldr r0, [r4, #4]
- ldrb r1, [r0, #0x1e]
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- add r0, #0x33
- strb r1, [r0]
- ldr r0, [r4, #4]
- ldr r1, [r0, #0x10]
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- str r1, [r0, #0x28]
- ldr r0, [r4, #8]
- ldrb r1, [r4, #0x10]
- ldr r0, [r0, #4]
- add r0, #0x32
- strb r1, [r0]
- ldrb r0, [r4, #0xd]
- ldr r2, [r4, #8]
- add r0, r2, r0
- ldrb r1, [r0, #0xc]
- ldr r0, [r2, #4]
- strb r1, [r0, #0x14]
- ldrb r1, [r4, #0xd]
- ldr r5, [r4, #8]
- ldr r0, [r4]
- bl MOD11_022302BC
- add r0, r5, r0
- ldrb r1, [r0, #0xc]
- ldr r0, [r5, #4]
- strb r1, [r0, #0x15]
- ldrb r0, [r4, #0xf]
- cmp r0, #4
- bne _02251746
- ldrb r1, [r4, #0xd]
- ldr r0, [r4]
- bl MOD11_022302BC
- add r0, r4, r0
- add r0, #0x30
- ldrb r1, [r0]
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- str r1, [r0, #0x18]
- ldrb r0, [r4, #0xd]
- b _0225175C
-_02251746:
- ldrb r0, [r4, #0xd]
- add r0, r4, r0
- add r0, #0x30
- ldrb r1, [r0]
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- str r1, [r0, #0x18]
- ldrb r1, [r4, #0xd]
- ldr r0, [r4]
- bl MOD11_022302BC
-_0225175C:
- add r0, r4, r0
- add r0, #0x30
- ldrb r1, [r0]
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- str r1, [r0, #0x1c]
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- bl MOD07_02211E60
- ldrb r0, [r4, #0xe]
- add sp, #0x1fc
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_0225177C:
- ldr r0, [r4, #8]
- ldr r1, [r0, #4]
- add r0, r1, #0
- add r0, #0x36
- ldrb r0, [r0]
- cmp r0, #0
- beq _02251832
- add r1, #0x32
- ldrb r0, [r1]
- mov r1, #0
- strb r0, [r4, #0x10]
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- add r0, #0x36
- strb r1, [r0]
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- ldrb r0, [r0, #0x11]
- cmp r0, #6
- bne _022517AE
- add sp, #0x1fc
- mov r0, #2
- add sp, #0x14
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_022517AE:
- add sp, #0x1fc
- mov r0, #6
- add sp, #0x14
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_022517B8:
- ldr r0, [r4]
- bl MOD11_0222D88C
- ldr r0, [r4]
- bl MOD11_02230094
- ldrb r1, [r4, #0x10]
- bl MOD11_0225C778
- mov r0, #7
- str r0, [sp]
- mov r0, #0
- mov r1, #5
- str r0, [sp, #4]
- mov r2, #3
- add r3, r1, #0
- str r0, [sp, #8]
- add r0, r5, #0
- lsl r2, r2, #0xa
- sub r3, #0xd
- bl FUN_02003210
- mov r0, #0x10
- str r0, [sp]
- mov r0, #0
- mov r1, #0xa
- str r0, [sp, #4]
- add r3, r1, #0
- str r0, [sp, #8]
- ldr r2, _02251850 ; =0x0000FFFF
- add r0, r5, #0
- sub r3, #0x12
- bl FUN_02003210
- ldrb r0, [r4, #0xe]
- add sp, #0x1fc
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251808:
- bl FUN_020038E4
- cmp r0, #0
- bne _02251832
- ldr r0, [r4]
- bl MOD11_02230288
- mov r1, #0
- bl FUN_020143A8
- ldr r0, [r4, #4]
- ldrh r0, [r0, #0x1c]
- cmp r0, #0
- bne _02251826
- b _022519D2
-_02251826:
- mov r0, #9
- strb r0, [r4, #0xe]
- ldr r0, [r4, #4]
- ldrb r1, [r0, #0x1e]
- cmp r1, #3
- bls _02251834
-_02251832:
- b _02251FEA
-_02251834:
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02251840: ; jump table
- .short _022518F4 - _02251840 - 2 ; case 0
- .short _02251848 - _02251840 - 2 ; case 1
- .short _022519C8 - _02251840 - 2 ; case 2
- .short _0225195E - _02251840 - 2 ; case 3
-_02251848:
- ldrh r1, [r0, #0x1c]
- ldr r0, _02251854 ; =0x0000FFE4
- b _02251858
- nop
-_02251850: .word 0x0000FFFF
-_02251854: .word 0x0000FFE4
-_02251858:
- add r0, r1, r0
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- cmp r0, #1
- bhi _0225186C
- add sp, #0x1fc
- mov r0, #8
- add sp, #0x14
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_0225186C:
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- ldrb r0, [r0, #0x11]
- cmp r0, #2
- bhs _0225188A
- ldr r0, [r4]
- bl MOD11_0222FF74
- cmp r0, #3
- beq _02251894
- ldr r0, [r4]
- bl MOD11_0222FF74
- cmp r0, #0x13
- beq _02251894
-_0225188A:
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- ldrb r0, [r0, #0x11]
- cmp r0, #1
- bhs _022518EA
-_02251894:
- ldr r0, [r4, #4]
- ldrh r0, [r0, #0x1c]
- cmp r0, #0x17
- ldr r0, [r4]
- bne _022518C4
- bl MOD11_02230E20
- cmp r0, #1
- bne _022518B0
- add sp, #0x1fc
- mov r0, #0x11
- add sp, #0x14
- strh r0, [r4, #0x12]
- pop {r3, r4, r5, r6, r7, pc}
-_022518B0:
- mov r1, #0x74
- ldr r0, _02251BF8 ; =0x000005EC
- mvn r1, r1
- bl FUN_020054A8
- add sp, #0x1fc
- mov r0, #0x15
- add sp, #0x14
- strh r0, [r4, #0x12]
- pop {r3, r4, r5, r6, r7, pc}
-_022518C4:
- bl MOD11_02230E20
- cmp r0, #1
- bne _022518D6
- add sp, #0x1fc
- mov r0, #0x19
- add sp, #0x14
- strh r0, [r4, #0x12]
- pop {r3, r4, r5, r6, r7, pc}
-_022518D6:
- mov r1, #0x74
- ldr r0, _02251BF8 ; =0x000005EC
- mvn r1, r1
- bl FUN_020054A8
- add sp, #0x1fc
- mov r0, #0x1d
- add sp, #0x14
- strh r0, [r4, #0x12]
- pop {r3, r4, r5, r6, r7, pc}
-_022518EA:
- add sp, #0x1fc
- mov r0, #8
- add sp, #0x14
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_022518F4:
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- ldrb r0, [r0, #0x11]
- cmp r0, #2
- bhs _02251912
- ldr r0, [r4]
- bl MOD11_0222FF74
- cmp r0, #3
- beq _0225191C
- ldr r0, [r4]
- bl MOD11_0222FF74
- cmp r0, #0x13
- beq _0225191C
-_02251912:
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- ldrb r0, [r0, #0x11]
- cmp r0, #1
- bhs _02251954
-_0225191C:
- ldr r0, [r4, #4]
- mov r1, #0x26
- ldrh r0, [r0, #0x1c]
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02251954
- ldr r0, [r4]
- bl MOD11_02230E20
- cmp r0, #1
- bne _02251940
- add sp, #0x1fc
- mov r0, #0x11
- add sp, #0x14
- strh r0, [r4, #0x12]
- pop {r3, r4, r5, r6, r7, pc}
-_02251940:
- mov r1, #0x74
- ldr r0, _02251BF8 ; =0x000005EC
- mvn r1, r1
- bl FUN_020054A8
- add sp, #0x1fc
- mov r0, #0x15
- add sp, #0x14
- strh r0, [r4, #0x12]
- pop {r3, r4, r5, r6, r7, pc}
-_02251954:
- add sp, #0x1fc
- mov r0, #8
- add sp, #0x14
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_0225195E:
- ldrh r1, [r0, #0x1c]
- ldr r0, _02251BFC ; =0x0000FFC1
- add r0, r1, r0
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- cmp r0, #1
- bhi _02251976
- add sp, #0x1fc
- mov r0, #8
- add sp, #0x14
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251976:
- cmp r1, #0x37
- ldr r0, [r4]
- bne _022519A2
- bl MOD11_02230E20
- cmp r0, #1
- bne _0225198E
- add sp, #0x1fc
- mov r0, #0xd
- add sp, #0x14
- strh r0, [r4, #0x12]
- pop {r3, r4, r5, r6, r7, pc}
-_0225198E:
- mov r1, #0x74
- ldr r0, _02251BF8 ; =0x000005EC
- mvn r1, r1
- bl FUN_020054A8
- add sp, #0x1fc
- mov r0, #0xf
- add sp, #0x14
- strh r0, [r4, #0x12]
- pop {r3, r4, r5, r6, r7, pc}
-_022519A2:
- bl MOD11_02230E20
- cmp r0, #1
- bne _022519B4
- add sp, #0x1fc
- mov r0, #0xb
- add sp, #0x14
- strh r0, [r4, #0x12]
- pop {r3, r4, r5, r6, r7, pc}
-_022519B4:
- mov r1, #0x74
- ldr r0, _02251BF8 ; =0x000005EC
- mvn r1, r1
- bl FUN_020054A8
- add sp, #0x1fc
- mov r0, #0xf
- add sp, #0x14
- strh r0, [r4, #0x12]
- pop {r3, r4, r5, r6, r7, pc}
-_022519C8:
- add sp, #0x1fc
- mov r0, #8
- add sp, #0x14
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_022519D2:
- add sp, #0x1fc
- mov r0, #8
- add sp, #0x14
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_022519DC:
- ldr r2, [r4, #4]
- ldrh r0, [r2, #0x1c]
- cmp r0, #0
- bne _022519EC
- mov r1, #0xff
- add r0, sp, #0x1c
- strh r1, [r0]
- b _02251A08
-_022519EC:
- add r1, sp, #0x1c
- strh r0, [r1]
- ldrb r0, [r2, #0x1e]
- strb r0, [r1, #2]
- cmp r0, #1
- bhi _02251A08
- ldr r0, [r4, #8]
- ldr r2, [r0, #4]
- ldrb r0, [r2, #0x11]
- add r0, r2, r0
- add r0, #0x2c
- ldrb r0, [r0]
- add r0, r0, #1
- strb r0, [r1, #3]
-_02251A08:
- add r3, sp, #0x1c
- ldrb r1, [r4, #0xd]
- mov r2, sp
- ldrh r5, [r3]
- ldr r0, [r4]
- sub r2, r2, #4
- strh r5, [r2]
- ldrh r3, [r3, #2]
- strh r3, [r2, #2]
- ldr r2, [r2]
- bl MOD11_022558C4
- ldrb r1, [r4, #0xd]
- ldrb r2, [r4, #0xc]
- ldr r0, [r4]
- bl MOD11_022567B8
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- ldr r0, [r0]
- bl FreeToHeap
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- bl FreeToHeap
- ldr r0, [r4, #8]
- bl FreeToHeap
- ldr r0, [r4, #4]
- bl FreeToHeap
- add r0, r4, #0
- bl FreeToHeap
- add r0, r7, #0
- bl FUN_0200CAB4
- add sp, #0x1fc
- add sp, #0x14
- pop {r3, r4, r5, r6, r7, pc}
-_02251A5A:
- ldr r1, _02251C00 ; =0x000004B6
- add r0, sp, #0x8c
- strh r1, [r0, #2]
- mov r1, #5
- strb r1, [r0, #1]
- ldr r0, [r4, #4]
- ldrh r0, [r0, #0x1c]
- str r0, [sp, #0x90]
- ldr r0, [r4]
- bl MOD11_022300C4
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- add r1, r5, #0
- add r2, sp, #0x8c
- bl MOD11_0223178C
- strb r0, [r4, #0x11]
- mov r0, #0x14
- strb r0, [r4, #0x17]
- ldrb r0, [r4, #0xe]
- add sp, #0x1fc
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251A96:
- ldrb r0, [r4, #0x11]
- bl FUN_0201BD70
- cmp r0, #0
- bne _02251AAC
- ldrb r0, [r4, #0x17]
- sub r0, r0, #1
- strb r0, [r4, #0x17]
- ldrb r0, [r4, #0x17]
- cmp r0, #0
- beq _02251AAE
-_02251AAC:
- b _02251FEA
-_02251AAE:
- ldrh r0, [r4, #0x12]
- add sp, #0x1fc
- add sp, #0x14
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251AB8:
- ldrb r1, [r4, #0xd]
- mov r0, #9
- add r2, sp, #0x1b8
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- mov r3, #1
- bl MOD11_02256854
- ldrb r1, [r4, #0xd]
- ldr r0, [r4]
- bl MOD11_0222FF7C
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD11_02230070
- add r2, r0, #0
- ldr r0, [r4]
- add r1, r5, #0
- add r3, sp, #0x1b8
- bl MOD11_02254404
- ldrb r0, [r4, #0xe]
- add sp, #0x1fc
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251AF8:
- ldr r0, [r4, #8]
- mov r1, #0
- ldr r0, [r0, #4]
- add r2, sp, #0x160
- ldrb r0, [r0, #0x11]
- mov r3, #1
- lsl r5, r0, #1
- mov r0, #9
- str r0, [sp]
- str r5, [sp, #4]
- str r5, [sp, #8]
- str r1, [sp, #0xc]
- ldr r0, [r4]
- bl MOD11_02256854
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD11_0222FF7C
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD11_02230070
- add r2, r0, #0
- ldr r0, [r4]
- add r1, r5, #0
- add r3, sp, #0x160
- bl MOD11_02254404
- ldrb r0, [r4, #0xe]
- add sp, #0x1fc
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251B3E:
- ldr r0, [r4, #4]
- add r2, sp, #0x108
- ldrh r0, [r0, #0x1c]
- cmp r0, #0x37
- bne _02251B7C
- ldrb r0, [r4, #0xd]
- mov r1, #0
- add r3, r1, #0
- str r1, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x36
- str r0, [sp, #0xc]
- ldr r0, [r4]
- bl MOD11_02256854
- ldrb r1, [r4, #0xd]
- ldr r0, [r4]
- bl MOD11_0222FF7C
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD11_02230070
- add r2, r0, #0
- ldr r0, [r4]
- add r1, r5, #0
- add r3, sp, #0x108
- bl MOD11_02254404
- b _02251BE6
-_02251B7C:
- cmp r0, #0x38
- bne _02251BB4
- ldrb r0, [r4, #0xd]
- mov r1, #0
- add r3, r1, #0
- str r1, [sp]
- str r0, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x74
- str r0, [sp, #0xc]
- ldr r0, [r4]
- bl MOD11_02256854
- ldrb r1, [r4, #0xd]
- ldr r0, [r4]
- bl MOD11_0222FF7C
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD11_02230070
- add r2, r0, #0
- ldr r0, [r4]
- add r1, r5, #0
- add r3, sp, #0x108
- bl MOD11_02254404
- b _02251BE6
-_02251BB4:
- ldrb r1, [r4, #0xd]
- mov r0, #0xc
- mov r3, #1
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- bl MOD11_02256854
- ldrb r1, [r4, #0xd]
- ldr r0, [r4]
- bl MOD11_0222FF7C
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD11_02230070
- add r2, r0, #0
- ldr r0, [r4]
- add r1, r5, #0
- add r3, sp, #0x108
- bl MOD11_02254404
-_02251BE6:
- ldrb r0, [r4, #0xe]
- add sp, #0x1fc
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251BF2:
- ldr r2, _02251C04 ; =0x000004B3
- b _02251C08
- nop
-_02251BF8: .word 0x000005EC
-_02251BFC: .word 0x0000FFC1
-_02251C00: .word 0x000004B6
-_02251C04: .word 0x000004B3
-_02251C08:
- add r0, sp, #0x68
- strh r2, [r0, #2]
- mov r1, #0xc
- strb r1, [r0, #1]
- ldrb r1, [r4, #0xd]
- ldr r3, [r4, #8]
- add r3, r3, r1
- ldrb r3, [r3, #0xc]
- lsl r3, r3, #8
- orr r1, r3
- str r1, [sp, #0x6c]
- ldr r1, [r4, #4]
- ldrh r1, [r1, #0x1c]
- sub r1, #0x37
- cmp r1, #7
- bhi _02251C7A
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02251C34: ; jump table
- .short _02251C68 - _02251C34 - 2 ; case 0
- .short _02251C72 - _02251C34 - 2 ; case 1
- .short _02251C44 - _02251C34 - 2 ; case 2
- .short _02251C4A - _02251C34 - 2 ; case 3
- .short _02251C50 - _02251C34 - 2 ; case 4
- .short _02251C56 - _02251C34 - 2 ; case 5
- .short _02251C5C - _02251C34 - 2 ; case 6
- .short _02251C62 - _02251C34 - 2 ; case 7
-_02251C44:
- mov r0, #1
- str r0, [sp, #0x70]
- b _02251C7A
-_02251C4A:
- mov r0, #2
- str r0, [sp, #0x70]
- b _02251C7A
-_02251C50:
- mov r0, #3
- str r0, [sp, #0x70]
- b _02251C7A
-_02251C56:
- mov r0, #6
- str r0, [sp, #0x70]
- b _02251C7A
-_02251C5C:
- mov r0, #4
- str r0, [sp, #0x70]
- b _02251C7A
-_02251C62:
- mov r0, #5
- str r0, [sp, #0x70]
- b _02251C7A
-_02251C68:
- add r1, r2, #1
- strh r1, [r0, #2]
- mov r1, #0
- strb r1, [r0, #1]
- b _02251C7A
-_02251C72:
- add r1, r2, #2
- strh r1, [r0, #2]
- mov r1, #2
- strb r1, [r0, #1]
-_02251C7A:
- ldr r0, [r4]
- bl MOD11_022300C4
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- add r1, r5, #0
- add r2, sp, #0x68
- bl MOD11_0223178C
- strb r0, [r4, #0x11]
- mov r0, #0x14
- strb r0, [r4, #0x17]
- ldrb r0, [r4, #0xe]
- add sp, #0x1fc
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251CA6:
- ldr r0, [r4, #8]
- mov r1, #0
- ldr r0, [r0, #4]
- add r2, sp, #0xb0
- ldrb r0, [r0, #0x11]
- mov r3, #1
- lsl r5, r0, #1
- mov r0, #0xe
- str r0, [sp]
- str r5, [sp, #4]
- str r5, [sp, #8]
- str r1, [sp, #0xc]
- ldr r0, [r4]
- bl MOD11_02256854
- ldr r0, [r4]
- add r1, r5, #0
- bl MOD11_0222FF7C
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD11_02230070
- add r2, r0, #0
- ldr r0, [r4]
- add r1, r5, #0
- add r3, sp, #0xb0
- bl MOD11_02254404
- ldrb r0, [r4, #0xe]
- add sp, #0x1fc
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251CEC:
- ldr r0, [r4, #8]
- ldr r1, [r0, #4]
- ldrb r0, [r1, #0x11]
- lsl r6, r0, #1
- add r0, r1, r0
- add r0, #0x2c
- ldrb r7, [r0]
- ldr r0, [r4]
- add r1, r6, #0
- bl MOD11_02231380
- mov r1, #0
- mov r2, #1
- add r5, r0, #0
- bl MI_CpuFill8
- ldr r0, [r4]
- add r1, r6, #0
- bl MOD11_02230260
- str r0, [sp, #0x18]
- ldr r0, [r4]
- bl MOD11_0222FF74
- add r1, r0, #0
- ldr r0, [sp, #0x18]
- bl MOD11_02257F6C
- add r1, r5, #0
- add r1, #0x25
- strb r0, [r1]
- ldr r0, [r4]
- add r1, r6, #0
- add r2, r7, #0
- bl MOD11_02230014
- mov r1, #0xa2
- mov r2, #0
- add r6, r0, #0
- bl GetMonDataEncrypted
- ldr r1, [r4, #8]
- mov r2, #0
- ldr r1, [r1, #4]
- ldrh r1, [r1, #0x20]
- sub r0, r0, r1
- str r0, [r5, #0x28]
- add r0, r6, #0
- mov r1, #0xa3
- bl GetMonDataEncrypted
- str r0, [r5, #0x2c]
- ldr r0, [r4, #8]
- mov r1, #0x9f
- ldr r0, [r0, #4]
- mov r2, #0
- ldrh r0, [r0, #0x20]
- str r0, [r5, #0x30]
- add r0, r6, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- bne _02251D72
- add r0, r5, #0
- mov r1, #0
- add r0, #0x4a
- strb r1, [r0]
-_02251D72:
- ldr r1, [r5, #0x30]
- add r0, r5, #0
- bl MOD11_02257150
- ldrb r0, [r4, #0xe]
- add sp, #0x1fc
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251D86:
- ldr r1, [r4, #8]
- ldr r0, [r4]
- ldr r1, [r1, #4]
- ldrb r1, [r1, #0x11]
- lsl r1, r1, #1
- bl MOD11_02231380
- add r5, r0, #0
- bl MOD11_02257184
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- beq _02251DA4
- b _02251FEA
-_02251DA4:
- mov r2, #1
- add r0, r5, #0
- mov r1, #0
- lsl r2, r2, #8
- bl MOD11_02256D70
- ldrb r0, [r4, #0xe]
- add sp, #0x1fc
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251DBC:
- ldr r0, [r4]
- bl MOD11_022300C4
- add r5, r0, #0
- ldr r0, [r4, #8]
- ldr r1, [r0, #4]
- ldrb r0, [r1, #0x11]
- ldrh r1, [r1, #0x20]
- lsl r0, r0, #1
- cmp r1, #0
- add r1, sp, #0x1c
- beq _02251DF4
- ldr r2, _02251FF0 ; =0x000004BE
- strh r2, [r1, #0x2a]
- mov r2, #0x11
- add r1, sp, #0x44
- strb r2, [r1, #1]
- ldr r1, [r4, #8]
- add r1, r1, r0
- ldrb r1, [r1, #0xc]
- lsl r1, r1, #8
- orr r0, r1
- str r0, [sp, #0x48]
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- ldrh r0, [r0, #0x20]
- str r0, [sp, #0x4c]
- b _02251E0A
-_02251DF4:
- ldr r2, _02251FF4 ; =0x000004E2
- strh r2, [r1, #0x2a]
- mov r2, #2
- add r1, sp, #0x44
- strb r2, [r1, #1]
- ldr r1, [r4, #8]
- add r1, r1, r0
- ldrb r1, [r1, #0xc]
- lsl r1, r1, #8
- orr r0, r1
- str r0, [sp, #0x48]
-_02251E0A:
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- add r1, r5, #0
- add r2, sp, #0x44
- bl MOD11_0223178C
- strb r0, [r4, #0x11]
- mov r0, #0x14
- strb r0, [r4, #0x17]
- ldrb r0, [r4, #0xe]
- add sp, #0x1fc
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251E2E:
- ldr r0, [r4, #8]
- mov r5, #0
- ldr r0, [r0, #4]
- ldrb r0, [r0, #0x11]
- lsl r7, r0, #1
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD11_02231380
- str r0, [sp, #0x10]
- ldr r0, [r4, #8]
- add r1, r7, #0
- ldr r3, [r0, #4]
- ldr r0, [r4]
- ldrb r2, [r3, #0x11]
- add r2, r3, r2
- add r2, #0x2c
- ldrb r2, [r2]
- bl MOD11_02230014
- mov r1, #0x9f
- add r2, r5, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- bne _02251E6A
- ldr r0, [sp, #0x10]
- add r1, r5, #0
- add r0, #0x4a
- strb r1, [r0]
-_02251E6A:
- ldr r0, [sp, #0x10]
- mov r2, #1
- add r1, r0, #0
- ldr r1, [r1, #0x28]
- lsl r2, r2, #8
- bl MOD11_02256D70
- mov r1, #2
- add r0, sp, #0x1c
- strb r1, [r0, #5]
- ldr r0, [r4, #8]
- mov r1, #0xf
- add r0, r0, r7
- ldrb r0, [r0, #0xc]
- mov r2, #5
- lsl r0, r0, #8
- orr r0, r7
- str r0, [sp, #0x24]
- ldr r0, [r4, #4]
- ldrh r0, [r0, #0x1c]
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02251E9E
- mov r6, #0
- add r5, r5, #1
-_02251E9E:
- ldr r0, [r4, #4]
- mov r1, #0x10
- ldrh r0, [r0, #0x1c]
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02251EB2
- mov r6, #1
- add r5, r5, #1
-_02251EB2:
- ldr r0, [r4, #4]
- mov r1, #0x11
- ldrh r0, [r0, #0x1c]
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02251EC6
- mov r6, #2
- add r5, r5, #1
-_02251EC6:
- ldr r0, [r4, #4]
- mov r1, #0x12
- ldrh r0, [r0, #0x1c]
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02251EDA
- mov r6, #3
- add r5, r5, #1
-_02251EDA:
- ldr r0, [r4, #4]
- mov r1, #0x13
- ldrh r0, [r0, #0x1c]
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02251EEE
- mov r6, #4
- add r5, r5, #1
-_02251EEE:
- ldr r0, [r4, #4]
- mov r1, #0x14
- ldrh r0, [r0, #0x1c]
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02251F02
- mov r6, #5
- add r5, r5, #1
-_02251F02:
- ldr r0, [r4, #4]
- mov r1, #0x15
- ldrh r0, [r0, #0x1c]
- mov r2, #5
- bl FUN_0206E7B8
- cmp r0, #0
- beq _02251F16
- mov r6, #6
- add r5, r5, #1
-_02251F16:
- cmp r5, #1
- beq _02251F22
- ldr r1, _02251FF8 ; =0x000004CD
- add r0, sp, #0x1c
- strh r1, [r0, #6]
- b _02251F76
-_02251F22:
- cmp r6, #6
- bhi _02251F76
- add r0, r6, r6
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02251F32: ; jump table
- .short _02251F40 - _02251F32 - 2 ; case 0
- .short _02251F48 - _02251F32 - 2 ; case 1
- .short _02251F50 - _02251F32 - 2 ; case 2
- .short _02251F58 - _02251F32 - 2 ; case 3
- .short _02251F60 - _02251F32 - 2 ; case 4
- .short _02251F68 - _02251F32 - 2 ; case 5
- .short _02251F70 - _02251F32 - 2 ; case 6
-_02251F40:
- ldr r1, _02251FFC ; =0x000004BA
- add r0, sp, #0x1c
- strh r1, [r0, #6]
- b _02251F76
-_02251F48:
- ldr r1, _02252000 ; =0x000004B7
- add r0, sp, #0x1c
- strh r1, [r0, #6]
- b _02251F76
-_02251F50:
- ldr r1, _02252004 ; =0x000004B9
- add r0, sp, #0x1c
- strh r1, [r0, #6]
- b _02251F76
-_02251F58:
- ldr r1, _02252008 ; =0x000004BB
- add r0, sp, #0x1c
- strh r1, [r0, #6]
- b _02251F76
-_02251F60:
- ldr r1, _0225200C ; =0x000004B8
- add r0, sp, #0x1c
- strh r1, [r0, #6]
- b _02251F76
-_02251F68:
- ldr r1, _02252010 ; =0x000004BC
- add r0, sp, #0x1c
- strh r1, [r0, #6]
- b _02251F76
-_02251F70:
- ldr r1, _02252014 ; =0x000004BD
- add r0, sp, #0x1c
- strh r1, [r0, #6]
-_02251F76:
- ldr r0, [r4]
- bl MOD11_022300C4
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- add r1, r5, #0
- add r2, sp, #0x20
- bl MOD11_0223178C
- strb r0, [r4, #0x11]
- mov r0, #0x14
- strb r0, [r4, #0x17]
- ldrb r0, [r4, #0xe]
- add sp, #0x1fc
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251FA2:
- ldr r0, [r4]
- bl MOD11_02230070
- bl MOD08_02212384
- ldr r0, [r4]
- bl MOD11_02230070
- bl MOD08_022123A0
- cmp r0, #0
- bne _02251FEA
- ldr r0, [r4]
- bl MOD11_02230070
- bl MOD08_022123B0
- ldrb r0, [r4, #0xe]
- add sp, #0x1fc
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, r6, r7, pc}
-_02251FD0:
- ldrb r0, [r4, #0x11]
- bl FUN_0201BD70
- cmp r0, #0
- bne _02251FEA
- ldrb r0, [r4, #0x17]
- sub r0, r0, #1
- strb r0, [r4, #0x17]
- ldrb r0, [r4, #0x17]
- cmp r0, #0
- bne _02251FEA
- mov r0, #8
- strb r0, [r4, #0xe]
-_02251FEA:
- add sp, #0x1fc
- add sp, #0x14
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02251FF0: .word 0x000004BE
-_02251FF4: .word 0x000004E2
-_02251FF8: .word 0x000004CD
-_02251FFC: .word 0x000004BA
-_02252000: .word 0x000004B7
-_02252004: .word 0x000004B9
-_02252008: .word 0x000004BB
-_0225200C: .word 0x000004B8
-_02252010: .word 0x000004BC
-_02252014: .word 0x000004BD
-
- thumb_func_start MOD11_02252018
-MOD11_02252018: ; 0x02252018
- push {r3, r4, r5, r6, lr}
- sub sp, #4
- add r5, r0, #0
- mov r0, #1
- add r3, sp, #0
- strh r0, [r3]
- add r4, r1, #0
- mov r2, sp
- ldrb r1, [r4, #0xd]
- ldrh r6, [r3]
- ldr r0, [r4]
- sub r2, r2, #4
- strh r6, [r2]
- ldrh r3, [r3, #2]
- strh r3, [r2, #2]
- ldr r2, [r2]
- bl MOD11_022558C4
- ldrb r1, [r4, #0xd]
- ldrb r2, [r4, #0xc]
- ldr r0, [r4]
- bl MOD11_022567B8
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- ldr r0, [r0]
- bl FreeToHeap
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- bl FreeToHeap
- ldr r0, [r4, #8]
- bl FreeToHeap
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
- add sp, #4
- pop {r3, r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02252070
-MOD11_02252070: ; 0x02252070
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldrb r1, [r4, #0xd]
- add r5, r0, #0
- ldrb r2, [r4, #0xc]
- ldr r0, [r4]
- bl MOD11_022567B8
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- ldr r0, [r0]
- bl FreeToHeap
- ldr r0, [r4, #8]
- ldr r0, [r0, #4]
- bl FreeToHeap
- ldr r0, [r4, #8]
- bl FreeToHeap
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022520A8
-MOD11_022520A8: ; 0x022520A8
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- add r4, r1, #0
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD11_022300CC
- ldrb r1, [r4, #0xa]
- add r5, r0, #0
- cmp r1, #3
- bhi _02252144
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_022520CA: ; jump table
- .short _022520D2 - _022520CA - 2 ; case 0
- .short _0225213C - _022520CA - 2 ; case 1
- .short _022523B2 - _022520CA - 2 ; case 2
- .short _0225240E - _022520CA - 2 ; case 3
-_022520D2:
- ldr r0, [r4]
- mov r1, #0
- bl MOD11_0222FF6C
- add r6, r0, #0
- mov r1, #0xff
- bl FUN_02019620
- add r0, r6, #0
- bl FUN_02019548
- ldr r0, [r4]
- bl MOD11_02230094
- bl MOD11_0225C76C
- strb r0, [r4, #0x17]
- ldr r0, [r4]
- bl MOD11_02230288
- mov r1, #1
- bl FUN_020143A8
- mov r1, #0
- mov r2, #3
- str r1, [sp]
- mov r0, #7
- str r0, [sp, #4]
- str r1, [sp, #8]
- mov r1, #5
- add r3, r1, #0
- add r0, r5, #0
- lsl r2, r2, #0xa
- sub r3, #0xd
- bl FUN_02003210
- mov r1, #0
- str r1, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0xa
- add r3, r1, #0
- ldr r2, _0225246C ; =0x0000FFFF
- add r0, r5, #0
- sub r3, #0x12
- bl FUN_02003210
- ldrb r0, [r4, #0xa]
- add sp, #0x24
- add r0, r0, #1
- strb r0, [r4, #0xa]
- pop {r4, r5, r6, r7, pc}
-_0225213C:
- bl FUN_020038E4
- cmp r0, #0
- beq _02252146
-_02252144:
- b _02252468
-_02252146:
- ldr r0, [r4]
- bl MOD11_0222D7F8
- mov r0, #5
- mov r1, #0x38
- bl AllocFromHeap
- str r0, [r4, #4]
- mov r0, #5
- bl FUN_0206B8AC
- ldr r1, [r4, #4]
- str r0, [r1]
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #0xc
- and r0, r1
- cmp r0, #0xc
- beq _0225217A
- ldr r0, [r4]
- bl MOD11_0222FF74
- cmp r0, #0xcb
- beq _0225217A
- b _0225228E
-_0225217A:
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- bl MOD11_02230260
- cmp r0, #2
- bne _02252196
- ldrb r0, [r4, #9]
- str r0, [sp, #0x18]
- ldr r0, [r4]
- ldr r1, [sp, #0x18]
- bl MOD11_022302BC
- str r0, [sp, #0x14]
- b _022521A4
-_02252196:
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- bl MOD11_022302BC
- str r0, [sp, #0x18]
- ldrb r0, [r4, #9]
- str r0, [sp, #0x14]
-_022521A4:
- mov r0, #5
- bl AllocMonZeroed
- add r6, r0, #0
- mov r5, #0
-_022521AE:
- ldr r0, [r4, #4]
- add r1, r6, #0
- ldr r0, [r0]
- bl FUN_0206B900
- add r5, r5, #1
- cmp r5, #6
- blt _022521AE
- add r0, r6, #0
- bl FreeToHeap
- ldr r0, [r4]
- ldr r1, [sp, #0x18]
- mov r7, #0
- bl MOD11_0222FFC8
- cmp r0, #0
- ble _02252216
- ldr r0, [sp, #0x18]
- mov r1, #6
- mul r1, r0
- add r5, r4, r1
- add r6, r7, #0
-_022521DC:
- ldrb r2, [r5, #0x1c]
- ldr r0, [r4]
- ldr r1, [sp, #0x18]
- bl MOD11_02230014
- str r0, [sp, #0x1c]
- ldr r0, [r4, #4]
- add r1, r6, #0
- ldr r0, [r0]
- bl FUN_0206B9B0
- add r1, r0, #0
- ldr r0, [sp, #0x1c]
- bl FUN_02069B88
- ldr r0, [r4, #4]
- ldrb r1, [r5, #0x1c]
- add r0, r0, r6
- add r0, #0x2c
- strb r1, [r0]
- ldr r0, [r4]
- ldr r1, [sp, #0x18]
- add r5, r5, #1
- add r6, r6, #2
- add r7, r7, #1
- bl MOD11_0222FFC8
- cmp r7, r0
- blt _022521DC
-_02252216:
- ldr r0, [r4]
- ldr r1, [sp, #0x14]
- mov r6, #0
- bl MOD11_0222FFC8
- cmp r0, #0
- ble _02252272
- ldr r0, [sp, #0x14]
- mov r1, #6
- mul r1, r0
- mov r0, #1
- add r5, r4, r1
- str r0, [sp, #0xc]
- add r7, r6, #0
-_02252232:
- ldrb r2, [r5, #0x1c]
- ldr r0, [r4]
- ldr r1, [sp, #0x14]
- bl MOD11_02230014
- str r0, [sp, #0x20]
- ldr r0, [r4, #4]
- ldr r1, [sp, #0xc]
- ldr r0, [r0]
- bl FUN_0206B9B0
- add r1, r0, #0
- ldr r0, [sp, #0x20]
- bl FUN_02069B88
- ldr r0, [r4, #4]
- ldrb r1, [r5, #0x1c]
- add r0, r0, r7
- add r0, #0x2d
- strb r1, [r0]
- ldr r0, [sp, #0xc]
- ldr r1, [sp, #0x14]
- add r0, r0, #2
- str r0, [sp, #0xc]
- ldr r0, [r4]
- add r5, r5, #1
- add r7, r7, #2
- add r6, r6, #1
- bl MOD11_0222FFC8
- cmp r6, r0
- blt _02252232
-_02252272:
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- bl MOD11_02230260
- cmp r0, #4
- bne _02252286
- ldr r0, [r4, #4]
- mov r1, #1
- strb r1, [r0, #0x11]
- b _0225230E
-_02252286:
- ldr r0, [r4, #4]
- mov r1, #0
- strb r1, [r0, #0x11]
- b _0225230E
-_0225228E:
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _022522B0
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #8
- tst r0, r1
- bne _022522B0
- ldrb r1, [r4, #9]
- mov r0, #1
- add r7, r1, #0
- and r7, r0
- b _022522B4
-_022522B0:
- ldrb r1, [r4, #9]
- add r7, r1, #0
-_022522B4:
- ldr r0, [r4]
- bl MOD11_02230260
- cmp r0, #4
- bne _022522C2
- mov r1, #1
- b _022522C4
-_022522C2:
- mov r1, #0
-_022522C4:
- ldr r0, [r4, #4]
- strb r1, [r0, #0x11]
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- bl MOD11_0222FF88
- str r0, [sp, #0x10]
- mov r5, #0
- bl FUN_0206B9AC
- cmp r0, #0
- ble _0225230E
- mov r0, #6
- mul r0, r7
- add r6, r4, r0
-_022522E2:
- ldrb r2, [r6, #0x1c]
- ldr r0, [r4]
- add r1, r7, #0
- bl MOD11_02230014
- add r1, r0, #0
- ldr r0, [r4, #4]
- ldr r0, [r0]
- bl FUN_0206B900
- ldr r0, [r4, #4]
- ldrb r1, [r6, #0x1c]
- add r0, r0, r5
- add r0, #0x2c
- strb r1, [r0]
- ldr r0, [sp, #0x10]
- add r6, r6, #1
- add r5, r5, #1
- bl FUN_0206B9AC
- cmp r5, r0
- blt _022522E2
-_0225230E:
- ldr r1, [r4]
- ldr r0, [r4, #4]
- str r1, [r0, #8]
- ldr r0, [r4, #4]
- mov r1, #5
- str r1, [r0, #0xc]
- ldr r0, [r4, #4]
- mov r1, #0
- add r0, #0x36
- strb r1, [r0]
- ldr r1, [r4, #0x10]
- ldr r0, [r4, #4]
- strh r1, [r0, #0x24]
- ldrb r1, [r4, #0x16]
- ldr r0, [r4, #4]
- strb r1, [r0, #0x12]
- ldr r0, [r4, #4]
- ldrb r1, [r4, #0xb]
- add r0, #0x35
- strb r1, [r0]
- ldrh r1, [r4, #0x14]
- ldr r0, [r4, #4]
- strh r1, [r0, #0x22]
- ldrb r1, [r4, #9]
- ldr r0, [r4, #4]
- str r1, [r0, #0x28]
- ldr r0, [r4, #4]
- ldrb r1, [r4, #0x17]
- add r0, #0x32
- strb r1, [r0]
- ldrb r0, [r4, #9]
- bl MaskOfFlagNo
- ldrb r1, [r4, #0x18]
- tst r0, r1
- bne _0225235E
- ldrb r0, [r4, #9]
- add r0, r4, r0
- ldrb r1, [r0, #0xc]
- b _02252360
-_0225235E:
- mov r1, #6
-_02252360:
- ldr r0, [r4, #4]
- strb r1, [r0, #0x14]
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #8
- tst r0, r1
- beq _02252378
- ldr r0, [r4, #4]
- mov r1, #6
- strb r1, [r0, #0x15]
- b _022523A2
-_02252378:
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- bl MOD11_022302BC
- bl MaskOfFlagNo
- ldrb r1, [r4, #0x18]
- tst r0, r1
- bne _0225239C
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- bl MOD11_022302BC
- add r0, r4, r0
- ldrb r1, [r0, #0xc]
- ldr r0, [r4, #4]
- strb r1, [r0, #0x15]
- b _022523A2
-_0225239C:
- ldr r0, [r4, #4]
- mov r1, #6
- strb r1, [r0, #0x15]
-_022523A2:
- ldr r0, [r4, #4]
- bl MOD07_02211E60
- ldrb r0, [r4, #0xa]
- add sp, #0x24
- add r0, r0, #1
- strb r0, [r4, #0xa]
- pop {r4, r5, r6, r7, pc}
-_022523B2:
- ldr r0, [r4, #4]
- add r0, #0x36
- ldrb r0, [r0]
- cmp r0, #0
- beq _02252468
- ldr r0, [r4]
- bl MOD11_0222D88C
- ldr r0, [r4]
- bl MOD11_02230094
- ldr r1, [r4, #4]
- add r1, #0x32
- ldrb r1, [r1]
- bl MOD11_0225C778
- mov r0, #7
- str r0, [sp]
- mov r0, #0
- mov r1, #5
- str r0, [sp, #4]
- mov r2, #3
- add r3, r1, #0
- str r0, [sp, #8]
- add r0, r5, #0
- lsl r2, r2, #0xa
- sub r3, #0xd
- bl FUN_02003210
- mov r0, #0x10
- str r0, [sp]
- mov r0, #0
- mov r1, #0xa
- str r0, [sp, #4]
- add r3, r1, #0
- str r0, [sp, #8]
- ldr r2, _0225246C ; =0x0000FFFF
- add r0, r5, #0
- sub r3, #0x12
- bl FUN_02003210
- ldrb r0, [r4, #0xa]
- add sp, #0x24
- add r0, r0, #1
- strb r0, [r4, #0xa]
- pop {r4, r5, r6, r7, pc}
-_0225240E:
- bl FUN_020038E4
- cmp r0, #0
- bne _02252468
- ldr r0, [r4]
- bl MOD11_02230288
- mov r1, #0
- bl FUN_020143A8
- ldr r3, [r4, #4]
- ldr r0, [r4]
- ldrb r2, [r3, #0x11]
- cmp r2, #6
- bne _02252436
- ldrb r1, [r4, #9]
- mov r2, #0xff
- bl MOD11_02255964
- b _02252444
-_02252436:
- add r2, r3, r2
- add r2, #0x2c
- ldrb r2, [r2]
- ldrb r1, [r4, #9]
- add r2, r2, #1
- bl MOD11_02255964
-_02252444:
- ldrb r1, [r4, #9]
- ldrb r2, [r4, #8]
- ldr r0, [r4]
- bl MOD11_022567B8
- ldr r0, [r4, #4]
- ldr r0, [r0]
- bl FreeToHeap
- ldr r0, [r4, #4]
- bl FreeToHeap
- add r0, r4, #0
- bl FreeToHeap
- add r0, r6, #0
- bl FUN_0200CAB4
-_02252468:
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0225246C: .word 0x0000FFFF
-
- thumb_func_start MOD11_02252470
-MOD11_02252470: ; 0x02252470
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r5, r1, #0
- str r0, [sp]
- ldr r0, [r5]
- bl MOD11_0222FF74
- mov r1, #0x10
- ldrb r6, [r5, #9]
- tst r1, r0
- bne _0225248C
- mov r1, #8
- tst r0, r1
- beq _02252490
-_0225248C:
- str r6, [sp, #4]
- b _0225249A
-_02252490:
- ldr r0, [r5]
- add r1, r6, #0
- bl MOD11_022302BC
- str r0, [sp, #4]
-_0225249A:
- ldr r0, [r5]
- add r1, r6, #0
- bl MOD16_021F4A30
- add r4, r0, #0
- cmp r4, #6
- bne _022524FE
- ldr r0, [r5]
- add r1, r6, #0
- bl MOD16_021F4698
- add r4, r0, #0
- cmp r4, #6
- bne _022524FE
- ldrb r1, [r5, #9]
- ldr r0, [r5]
- bl MOD11_0222FF88
- str r0, [sp, #8]
- mov r4, #0
- bl FUN_0206B9AC
- cmp r0, #0
- ble _022524FE
- ldr r0, [sp, #4]
- add r7, r5, r6
- add r6, r5, r0
-_022524D0:
- ldrb r1, [r5, #9]
- ldr r0, [r5]
- add r2, r4, #0
- bl MOD11_02230014
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _022524F2
- ldrb r0, [r7, #0xc]
- cmp r4, r0
- beq _022524F2
- ldrb r0, [r6, #0xc]
- cmp r4, r0
- bne _022524FE
-_022524F2:
- ldr r0, [sp, #8]
- add r4, r4, #1
- bl FUN_0206B9AC
- cmp r4, r0
- blt _022524D0
-_022524FE:
- ldrb r1, [r5, #9]
- ldr r0, [r5]
- add r2, r4, #1
- bl MOD11_02255964
- ldrb r1, [r5, #9]
- ldrb r2, [r5, #8]
- ldr r0, [r5]
- bl MOD11_022567B8
- add r0, r5, #0
- bl FreeToHeap
- ldr r0, [sp]
- bl FUN_0200CAB4
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02252524
-MOD11_02252524: ; 0x02252524
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldrb r1, [r4, #9]
- add r5, r0, #0
- ldrb r2, [r4, #8]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02252544
-MOD11_02252544: ; 0x02252544
- push {r4, r5, r6, r7, lr}
- sub sp, #0x2c
- add r4, r1, #0
- add r7, r0, #0
- ldr r0, [r4]
- bl MOD11_0222FF68
- ldr r0, [r4]
- bl MOD11_02230094
- add r5, r0, #0
- ldrb r1, [r4, #0xd]
- ldr r0, [r4]
- bl MOD11_0222FF7C
- str r0, [sp]
- ldrb r1, [r4, #0xd]
- ldr r0, [r4]
- bl MOD11_022302BC
- add r1, r0, #0
- ldrb r0, [r4, #0xd]
- cmp r1, r0
- beq _0225257E
- ldr r0, [r4]
- bl MOD11_02231380
- add r6, r0, #0
- b _02252580
-_0225257E:
- mov r6, #0
-_02252580:
- ldrb r0, [r4, #0xe]
- cmp r0, #4
- bhi _02252600
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02252592: ; jump table
- .short _0225259C - _02252592 - 2 ; case 0
- .short _022525EC - _02252592 - 2 ; case 1
- .short _0225267E - _02252592 - 2 ; case 2
- .short _0225269C - _02252592 - 2 ; case 3
- .short _022526E0 - _02252592 - 2 ; case 4
-_0225259C:
- add r0, r5, #0
- bl MOD11_02258F5C
- cmp r0, #0
- beq _02252600
- ldr r0, [r4, #0x10]
- cmp r0, #0
- beq _022525E4
- ldr r0, [r4]
- bl MOD11_022300C4
- add r5, r0, #0
- ldrb r0, [r4, #0xf]
- cmp r0, #5
- add r0, sp, #4
- bne _022525C6
- mov r1, #0x82
- strb r1, [r0, #5]
- ldr r0, [r4, #0x14]
- str r0, [sp, #0xc]
- b _022525CA
-_022525C6:
- mov r1, #0
- strb r1, [r0, #5]
-_022525CA:
- ldr r1, [r4, #0x10]
- add r0, sp, #4
- strh r1, [r0, #6]
- ldr r0, [r4]
- bl MOD11_02230E54
- add r3, r0, #0
- ldr r0, [r4]
- add r1, r5, #0
- add r2, sp, #8
- bl MOD11_0223178C
- strh r0, [r4, #0x1a]
-_022525E4:
- mov r0, #1
- add sp, #0x2c
- strb r0, [r4, #0xe]
- pop {r4, r5, r6, r7, pc}
-_022525EC:
- ldrh r0, [r4, #0x1a]
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- bl FUN_0201BD70
- cmp r0, #0
- beq _02252602
- ldr r0, [r4, #0x10]
- cmp r0, #0
- beq _02252602
-_02252600:
- b _0225270A
-_02252602:
- add r0, r5, #0
- bl MOD11_02258E30
- ldrh r1, [r4, #0x18]
- add r0, sp, #4
- strh r1, [r0]
- ldrb r0, [r4, #0xf]
- cmp r0, #5
- bhi _02252672
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02252620: ; jump table
- .short _0225262C - _02252620 - 2 ; case 0
- .short _0225263A - _02252620 - 2 ; case 1
- .short _02252648 - _02252620 - 2 ; case 2
- .short _02252656 - _02252620 - 2 ; case 3
- .short _02252664 - _02252620 - 2 ; case 4
- .short _0225262C - _02252620 - 2 ; case 5
-_0225262C:
- add r0, r5, #0
- mov r1, #0xd
- mov r2, #0
- add r3, sp, #4
- bl MOD11_02258820
- b _02252676
-_0225263A:
- add r0, r5, #0
- mov r1, #0xe
- mov r2, #0
- add r3, sp, #4
- bl MOD11_02258820
- b _02252676
-_02252648:
- add r0, r5, #0
- mov r1, #0xf
- mov r2, #0
- add r3, sp, #4
- bl MOD11_02258820
- b _02252676
-_02252656:
- add r0, r5, #0
- mov r1, #0x10
- mov r2, #0
- add r3, sp, #4
- bl MOD11_02258820
- b _02252676
-_02252664:
- add r0, r5, #0
- mov r1, #0x11
- mov r2, #0
- add r3, sp, #4
- bl MOD11_02258820
- b _02252676
-_02252672:
- bl ErrorHandling
-_02252676:
- mov r0, #2
- add sp, #0x2c
- strb r0, [r4, #0xe]
- pop {r4, r5, r6, r7, pc}
-_0225267E:
- add r0, r5, #0
- bl MOD11_02258E74
- mov r1, #0
- mvn r1, r1
- str r0, [r4, #8]
- cmp r0, r1
- beq _0225270A
- ldr r0, _02252710 ; =0x000005DD
- bl FUN_020054C8
- mov r0, #3
- add sp, #0x2c
- strb r0, [r4, #0xe]
- pop {r4, r5, r6, r7, pc}
-_0225269C:
- add r0, r5, #0
- bl MOD11_02258F5C
- cmp r0, #1
- bne _0225270A
- ldr r0, [r4, #4]
- bl MOD11_02257238
- ldr r0, [sp]
- bl MOD11_0225468C
- add r0, r6, #0
- bl MOD11_02258184
- add r0, r5, #0
- bl MOD11_02258E30
- mov r1, #0
- add r0, r5, #0
- add r2, r1, #0
- add r3, r1, #0
- bl MOD11_02258820
- ldr r0, [r4, #8]
- cmp r0, #1
- bne _022526D8
- add r0, r5, #0
- mov r1, #0
- bl MOD11_0225B77C
-_022526D8:
- mov r0, #4
- add sp, #0x2c
- strb r0, [r4, #0xe]
- pop {r4, r5, r6, r7, pc}
-_022526E0:
- add r0, r5, #0
- bl MOD11_0225B780
- cmp r0, #1
- bne _0225270A
- ldrb r1, [r4, #0xd]
- ldr r0, [r4]
- ldr r2, [r4, #8]
- bl MOD11_02255528
- ldrb r1, [r4, #0xd]
- ldrb r2, [r4, #0xc]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r7, #0
- bl FUN_0200CAB4
-_0225270A:
- add sp, #0x2c
- pop {r4, r5, r6, r7, pc}
- nop
-_02252710: .word 0x000005DD
-
- thumb_func_start MOD11_02252714
-MOD11_02252714: ; 0x02252714
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldrb r1, [r4, #0xd]
- add r5, r0, #0
- ldrb r2, [r4, #0xc]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02252734
-MOD11_02252734: ; 0x02252734
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldrb r1, [r4, #0xd]
- add r5, r0, #0
- ldrb r2, [r4, #0xc]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02252754
-MOD11_02252754: ; 0x02252754
- push {r3, r4, r5, lr}
- sub sp, #0x1fc
- sub sp, #0x14
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- add r0, #0x6a
- ldrb r0, [r0]
- cmp r0, #0xa
- bls _0225276A
- b _022529B8
-_0225276A:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02252776: ; jump table
- .short _0225278C - _02252776 - 2 ; case 0
- .short _02252996 - _02252776 - 2 ; case 1
- .short _022527E6 - _02252776 - 2 ; case 2
- .short _02252996 - _02252776 - 2 ; case 3
- .short _02252842 - _02252776 - 2 ; case 4
- .short _02252996 - _02252776 - 2 ; case 5
- .short _02252890 - _02252776 - 2 ; case 6
- .short _02252996 - _02252776 - 2 ; case 7
- .short _02252918 - _02252776 - 2 ; case 8
- .short _02252996 - _02252776 - 2 ; case 9
- .short _02252974 - _02252776 - 2 ; case 10
-_0225278C:
- ldrh r0, [r4, #0x1e]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- beq _022527DA
- ldr r0, [r4, #0x5c]
- cmp r0, #0
- bne _022527DA
- ldr r0, [r4, #8]
- mov r1, #6
- bl FUN_0200782C
- cmp r0, #0
- bne _022527DA
- add r0, r4, #0
- add r0, #0x69
- ldrb r1, [r0]
- mov r0, #0xf
- add r2, sp, #0x1b8
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- mov r3, #1
- bl MOD11_02256854
- ldr r0, [r4]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0xc]
- add r3, sp, #0x1b8
- bl MOD11_02254404
- add sp, #0x1fc
- mov r0, #1
- add r4, #0x6a
- add sp, #0x14
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_022527DA:
- add sp, #0x1fc
- mov r0, #4
- add r4, #0x6a
- add sp, #0x14
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_022527E6:
- add r3, r4, #0
- add r3, #0x69
- ldrb r3, [r3]
- ldr r0, [r4]
- add r1, #0x10
- add r2, sp, #0x168
- bl MOD11_0225452C
- add r0, sp, #0x168
- mov r1, #5
- bl MOD08_0222A494
- add r0, r4, #0
- add r0, #0x69
- ldrb r1, [r0]
- mov r0, #0x10
- add r2, sp, #0x110
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- mov r3, #1
- bl MOD11_02256854
- ldr r0, [r4]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0xc]
- add r3, sp, #0x110
- bl MOD11_02254404
- mov r0, #0x1a
- add sp, #0x1fc
- ldr r1, [r4, #4]
- mov r2, #0
- lsl r0, r0, #4
- str r2, [r1, r0]
- add r0, r4, #0
- add r0, #0x6a
- ldrb r0, [r0]
- add r4, #0x6a
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_02252842:
- ldr r0, [r4]
- mov r1, #2
- bl MOD11_02231484
- add r0, r4, #0
- add r0, #0x6b
- ldrb r0, [r0]
- cmp r0, #0
- beq _0225285A
- ldr r0, [r4]
- bl MOD11_02231410
-_0225285A:
- add r0, r4, #0
- add r0, #0x6c
- ldrb r0, [r0]
- cmp r0, #0
- beq _02252870
- ldr r0, [r4]
- bl MOD11_02230068
- mov r1, #1
- bl FUN_02008284
-_02252870:
- add r3, r4, #0
- ldr r0, [r4]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0xc]
- add r3, #0x10
- bl MOD11_02254404
- add r0, r4, #0
- add r0, #0x6a
- ldrb r0, [r0]
- add sp, #0x1fc
- add r4, #0x6a
- add r0, r0, #1
- add sp, #0x14
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_02252890:
- ldr r0, [r4]
- mov r1, #0
- bl MOD11_02231484
- add r0, r4, #0
- add r0, #0x6b
- ldrb r0, [r0]
- cmp r0, #0
- beq _022528A8
- ldr r0, [r4]
- bl MOD11_022313E0
-_022528A8:
- add r0, r4, #0
- add r0, #0x6c
- ldrb r0, [r0]
- cmp r0, #0
- beq _022528BE
- ldr r0, [r4]
- bl MOD11_02230068
- mov r1, #1
- bl FUN_02008290
-_022528BE:
- ldrh r0, [r4, #0x1e]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- beq _0225290C
- ldr r0, [r4, #0x5c]
- cmp r0, #0
- bne _0225290C
- ldr r0, [r4, #8]
- mov r1, #6
- bl FUN_0200782C
- cmp r0, #0
- bne _0225290C
- add r0, r4, #0
- add r0, #0x69
- ldrb r1, [r0]
- mov r0, #0xf
- add r2, sp, #0xb8
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- mov r3, #1
- bl MOD11_02256854
- ldr r0, [r4]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0xc]
- add r3, sp, #0xb8
- bl MOD11_02254404
- add sp, #0x1fc
- mov r0, #7
- add r4, #0x6a
- add sp, #0x14
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_0225290C:
- add sp, #0x1fc
- mov r0, #0xa
- add r4, #0x6a
- add sp, #0x14
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_02252918:
- add r3, r4, #0
- add r3, #0x69
- ldrb r3, [r3]
- ldr r0, [r4]
- add r1, #0x10
- add r2, sp, #0x68
- bl MOD11_0225452C
- add r0, sp, #0x68
- mov r1, #5
- bl MOD08_0222A568
- add r0, r4, #0
- add r0, #0x69
- ldrb r1, [r0]
- mov r0, #0x10
- add r2, sp, #0x10
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- mov r3, #1
- bl MOD11_02256854
- ldr r0, [r4]
- ldr r1, [r4, #4]
- ldr r2, [r4, #0xc]
- add r3, sp, #0x10
- bl MOD11_02254404
- mov r0, #0x1a
- add sp, #0x1fc
- ldr r1, [r4, #4]
- mov r2, #1
- lsl r0, r0, #4
- str r2, [r1, r0]
- add r0, r4, #0
- add r0, #0x6a
- ldrb r0, [r0]
- add r4, #0x6a
- add sp, #0x14
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_02252974:
- add r2, r4, #0
- add r1, #0x69
- add r2, #0x68
- ldrb r1, [r1]
- ldrb r2, [r2]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
- add sp, #0x1fc
- add sp, #0x14
- pop {r3, r4, r5, pc}
-_02252996:
- ldr r0, [r4, #0xc]
- bl MOD08_02212384
- ldr r0, [r4, #0xc]
- bl MOD08_022123A0
- cmp r0, #0
- bne _022529B8
- ldr r0, [r4, #0xc]
- bl MOD08_022123B0
- add r0, r4, #0
- add r0, #0x6a
- ldrb r0, [r0]
- add r4, #0x6a
- add r0, r0, #1
- strb r0, [r4]
-_022529B8:
- add sp, #0x1fc
- add sp, #0x14
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022529C0
-MOD11_022529C0: ; 0x022529C0
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4, #9]
- cmp r0, #6
- bhs _022529FA
- ldrb r0, [r4, #0xa]
- cmp r0, #0
- bne _022529F4
- mov r0, #2
- strb r0, [r4, #0xa]
- ldrb r0, [r4, #9]
- mov r1, #6
- add r0, r0, #1
- strb r0, [r4, #9]
- ldr r0, [r4, #4]
- bl FUN_0200782C
- add r3, r0, #0
- mov r2, #1
- ldr r0, [r4, #4]
- mov r1, #6
- eor r2, r3
- bl FUN_02007558
- pop {r3, r4, r5, pc}
-_022529F4:
- sub r0, r0, #1
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, pc}
-_022529FA:
- ldr r0, [r4, #4]
- mov r1, #6
- mov r2, #0
- bl FUN_02007558
- ldrb r1, [r4, #8]
- ldr r0, [r4]
- mov r2, #0x17
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02252A1C
-MOD11_02252A1C: ; 0x02252A1C
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _02252A2E
- cmp r0, #1
- beq _02252A3C
- b _02252A52
-_02252A2E:
- ldr r1, [r4, #0x30]
- add r0, r4, #0
- bl MOD11_02257150
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_02252A3C:
- add r0, r4, #0
- bl MOD11_02257184
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- bne _02252A6C
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_02252A52:
- add r2, r4, #0
- add r1, #0x24
- add r2, #0x4c
- ldrb r1, [r1]
- ldrb r2, [r2]
- ldr r0, [r4, #0xc]
- bl MOD11_022567B8
- mov r0, #0
- str r0, [r4, #0x10]
- add r0, r5, #0
- bl FUN_0200CAB4
-_02252A6C:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02252A70
-MOD11_02252A70: ; 0x02252A70
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4]
- cmp r0, #0
- beq _02252A86
- cmp r0, #1
- beq _02252AA2
- cmp r0, #2
- beq _02252AE8
- b _02252B0E
-_02252A86:
- add r0, r4, #0
- mov r1, #0
- add r0, #0x4e
- strb r1, [r0]
- ldr r0, _02252B2C ; =0x0000070B
- bl FUN_020054C8
- ldr r1, [r4, #0x40]
- add r0, r4, #0
- bl MOD11_022571B8
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
-_02252AA2:
- add r0, r4, #0
- add r0, #0x4e
- ldrb r0, [r0]
- cmp r0, #8
- bhs _02252ABA
- add r0, r4, #0
- add r0, #0x4e
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x4e
- strb r1, [r0]
-_02252ABA:
- add r0, r4, #0
- bl MOD11_022571EC
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- bne _02252B28
- add r0, r4, #0
- add r0, #0x4e
- ldrb r0, [r0]
- cmp r0, #8
- blo _02252AE0
- ldr r0, _02252B2C ; =0x0000070B
- mov r1, #0
- bl FUN_020054F0
- mov r0, #0x64
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_02252AE0:
- ldrb r0, [r4]
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_02252AE8:
- add r0, r4, #0
- add r0, #0x4e
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x4e
- strb r1, [r0]
- add r0, r4, #0
- add r0, #0x4e
- ldrb r0, [r0]
- cmp r0, #8
- blo _02252B28
- ldr r0, _02252B2C ; =0x0000070B
- mov r1, #0
- bl FUN_020054F0
- mov r0, #0x64
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_02252B0E:
- add r2, r4, #0
- add r1, #0x24
- add r2, #0x4c
- ldrb r1, [r1]
- ldrb r2, [r2]
- ldr r0, [r4, #0xc]
- bl MOD11_022567B8
- mov r0, #0
- str r0, [r4, #0x10]
- add r0, r5, #0
- bl FUN_0200CAB4
-_02252B28:
- pop {r3, r4, r5, pc}
- nop
-_02252B2C: .word 0x0000070B
-
- thumb_func_start MOD11_02252B30
-MOD11_02252B30: ; 0x02252B30
- push {r4, r5, r6, lr}
- sub sp, #0x110
- add r4, r1, #0
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD11_02230070
- add r1, r4, #0
- add r1, #0x66
- ldrb r1, [r1]
- add r5, r0, #0
- cmp r1, #0xa
- bls _02252B4C
- b _02252DAA
-_02252B4C:
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02252B58: ; jump table
- .short _02252B6E - _02252B58 - 2 ; case 0
- .short _02252C16 - _02252B58 - 2 ; case 1
- .short _02252BBA - _02252B58 - 2 ; case 2
- .short _02252C16 - _02252B58 - 2 ; case 3
- .short _02252C3A - _02252B58 - 2 ; case 4
- .short _02252C82 - _02252B58 - 2 ; case 5
- .short _02252C9C - _02252B58 - 2 ; case 6
- .short _02252CD8 - _02252B58 - 2 ; case 7
- .short _02252D04 - _02252B58 - 2 ; case 8
- .short _02252D44 - _02252B58 - 2 ; case 9
- .short _02252D8C - _02252B58 - 2 ; case 10
-_02252B6E:
- add r0, r4, #0
- add r0, #0x70
- ldrh r0, [r0]
- cmp r0, #0
- beq _02252BB0
- add r0, r4, #0
- add r0, #0x65
- ldrb r1, [r0]
- mov r0, #0xf
- add r2, sp, #0xb8
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- mov r3, #1
- bl MOD11_02256854
- ldr r0, [r4]
- ldr r1, [r4, #4]
- add r2, r5, #0
- add r3, sp, #0xb8
- bl MOD11_02254404
- add r0, r4, #0
- add r0, #0x66
- ldrb r0, [r0]
- add r4, #0x66
- add sp, #0x110
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02252BB0:
- mov r0, #4
- add r4, #0x66
- add sp, #0x110
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02252BBA:
- add r3, r4, #0
- add r3, #0x65
- ldrb r3, [r3]
- add r1, r4, #0
- ldr r0, [r4]
- add r1, #0xc
- add r2, sp, #0x68
- bl MOD11_0225452C
- add r0, sp, #0x68
- mov r1, #5
- bl MOD08_0222A494
- add r0, r4, #0
- add r0, #0x65
- ldrb r1, [r0]
- mov r0, #0x10
- add r2, sp, #0x10
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- mov r3, #1
- bl MOD11_02256854
- ldr r0, [r4]
- ldr r1, [r4, #4]
- add r2, r5, #0
- add r3, sp, #0x10
- bl MOD11_02254404
- mov r0, #0x1a
- ldr r1, [r4, #4]
- mov r2, #0
- lsl r0, r0, #4
- str r2, [r1, r0]
- add r0, r4, #0
- add r0, #0x66
- ldrb r0, [r0]
- add r4, #0x66
- add sp, #0x110
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02252C16:
- bl MOD08_02212384
- add r0, r5, #0
- bl MOD08_022123A0
- cmp r0, #0
- bne _02252C8A
- add r0, r5, #0
- bl MOD08_022123B0
- add r0, r4, #0
- add r0, #0x66
- ldrb r0, [r0]
- add r4, #0x66
- add sp, #0x110
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02252C3A:
- add r0, r4, #0
- add r0, #0x67
- ldrb r0, [r0]
- cmp r0, #2
- bne _02252C48
- mov r5, #0x75
- b _02252C4C
-_02252C48:
- mov r5, #0x74
- mvn r5, r5
-_02252C4C:
- add r1, r4, #0
- add r1, #0x65
- ldrb r1, [r1]
- ldr r0, [r4]
- bl MOD11_02230E88
- mov r1, #0x7f
- str r1, [sp]
- add r1, r4, #0
- add r1, #0x72
- ldrh r1, [r1]
- add r2, r4, #0
- add r2, #0x68
- str r1, [sp, #4]
- mov r1, #5
- str r1, [sp, #8]
- ldrh r2, [r2]
- add r3, r5, #0
- bl FUN_02069FB0
- add r0, r4, #0
- add r0, #0x66
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x66
- strb r1, [r0]
-_02252C82:
- bl FUN_02005670
- cmp r0, #0
- beq _02252C8C
-_02252C8A:
- b _02252DAA
-_02252C8C:
- add r0, r4, #0
- add r0, #0x66
- ldrb r0, [r0]
- add r4, #0x66
- add sp, #0x110
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02252C9C:
- add r0, r4, #0
- add r0, #0x67
- ldrb r0, [r0]
- cmp r0, #2
- ldr r0, _02252DB0 ; =0x00000703
- bne _02252CB0
- mov r1, #0x75
- bl FUN_020054A8
- b _02252CB8
-_02252CB0:
- mov r1, #0x74
- mvn r1, r1
- bl FUN_020054A8
-_02252CB8:
- ldr r0, [r4, #8]
- mov r1, #0x29
- bl FUN_0200782C
- cmp r0, #0
- ble _02252CCE
- mov r0, #7
- add r4, #0x66
- add sp, #0x110
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02252CCE:
- mov r0, #8
- add r4, #0x66
- add sp, #0x110
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02252CD8:
- ldr r0, [r4, #8]
- mov r1, #0x29
- bl FUN_0200782C
- add r5, r0, #0
- sub r5, #8
- bpl _02252CE8
- mov r5, #0
-_02252CE8:
- ldr r0, [r4, #8]
- mov r1, #0x29
- add r2, r5, #0
- bl FUN_02007558
- cmp r5, #0
- bne _02252DAA
- add r0, r4, #0
- add r0, #0x66
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x66
- strb r1, [r0]
-_02252D04:
- ldr r0, [r4, #0x6c]
- add r1, r4, #0
- str r0, [sp]
- add r0, r4, #0
- add r2, r4, #0
- add r3, r4, #0
- add r0, #0x68
- add r1, #0x6a
- add r2, #0x67
- add r3, #0x6b
- ldrh r0, [r0]
- ldrb r1, [r1]
- ldrb r2, [r2]
- ldrb r3, [r3]
- bl FUN_02068E88
- mov r3, #0x50
- sub r0, r3, r0
- str r0, [sp]
- mov r1, #0
- ldr r0, [r4, #8]
- add r2, r1, #0
- bl FUN_02007E40
- add r0, r4, #0
- add r0, #0x66
- ldrb r0, [r0]
- add r4, #0x66
- add sp, #0x110
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02252D44:
- ldr r0, [r4, #8]
- mov r1, #1
- bl FUN_0200782C
- add r2, r0, #0
- ldr r0, [r4, #8]
- mov r1, #1
- add r2, #8
- bl FUN_02007558
- ldr r0, [r4, #8]
- mov r1, #0x12
- bl FUN_0200782C
- add r5, r0, #0
- sub r5, #8
- bpl _02252D68
- mov r5, #0
-_02252D68:
- ldr r0, [r4, #8]
- mov r1, #0x12
- add r2, r5, #0
- bl FUN_02007558
- cmp r5, #0
- bne _02252DAA
- ldr r0, [r4, #8]
- bl FUN_02007534
- add r0, r4, #0
- add r0, #0x66
- ldrb r0, [r0]
- add r4, #0x66
- add sp, #0x110
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02252D8C:
- add r1, r4, #0
- add r2, r4, #0
- add r1, #0x65
- add r2, #0x64
- ldrb r1, [r1]
- ldrb r2, [r2]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r6, #0
- bl FUN_0200CAB4
-_02252DAA:
- add sp, #0x110
- pop {r4, r5, r6, pc}
- nop
-_02252DB0: .word 0x00000703
-
- thumb_func_start MOD11_02252DB4
-MOD11_02252DB4: ; 0x02252DB4
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r5, r1, #0
- add r6, r0, #0
- ldr r0, [r5]
- bl MOD11_022300CC
- add r4, r0, #0
- ldr r0, [r5]
- bl MOD11_02230068
- add r7, r0, #0
- ldrb r0, [r5, #6]
- cmp r0, #0
- beq _02252DDE
- cmp r0, #1
- beq _02252E1C
- cmp r0, #2
- beq _02252E30
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
-_02252DDE:
- ldr r0, [r5]
- bl MOD11_02230288
- mov r1, #1
- bl FUN_020143A8
- mov r1, #0
- str r1, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- str r1, [sp, #8]
- ldr r2, _02252E4C ; =0x0000FFFF
- add r0, r4, #0
- mov r1, #0xf
- mov r3, #1
- bl FUN_02003210
- mov r1, #0
- add r0, r7, #0
- mov r2, #0x10
- add r3, r1, #0
- str r1, [sp]
- bl FUN_02007E98
- mov r0, #0
- mov r1, #0x10
- bl FUN_020053CC
- ldrb r0, [r5, #6]
- add r0, r0, #1
- strb r0, [r5, #6]
-_02252E1C:
- add r0, r4, #0
- bl FUN_020038E4
- cmp r0, #0
- bne _02252E46
- ldrb r0, [r5, #6]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r5, #6]
- pop {r4, r5, r6, r7, pc}
-_02252E30:
- ldrb r1, [r5, #5]
- ldrb r2, [r5, #4]
- ldr r0, [r5]
- bl MOD11_022567B8
- add r0, r5, #0
- bl FreeToHeap
- add r0, r6, #0
- bl FUN_0200CAB4
-_02252E46:
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- nop
-_02252E4C: .word 0x0000FFFF
-
- thumb_func_start MOD11_02252E50
-MOD11_02252E50: ; 0x02252E50
- push {r4, r5, r6, lr}
- sub sp, #0x110
- add r4, r1, #0
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD11_02230070
- add r1, r4, #0
- add r1, #0x62
- ldrb r1, [r1]
- add r5, r0, #0
- cmp r1, #4
- bls _02252E6C
- b _02252F98
-_02252E6C:
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02252E78: ; jump table
- .short _02252E82 - _02252E78 - 2 ; case 0
- .short _02252EC4 - _02252E78 - 2 ; case 1
- .short _02252F74 - _02252E78 - 2 ; case 2
- .short _02252F18 - _02252E78 - 2 ; case 3
- .short _02252F74 - _02252E78 - 2 ; case 4
-_02252E82:
- ldr r0, [r4, #4]
- ldr r0, [r0, #0x20]
- cmp r0, #0
- beq _02252EBA
- add r2, r4, #0
- add r2, #0x63
- ldrb r2, [r2]
- mov r1, #6
- bl FUN_02007558
- add r0, r4, #0
- add r0, #0x63
- ldrb r0, [r0]
- cmp r0, #1
- bne _02252EAA
- mov r0, #0xff
- add r4, #0x62
- add sp, #0x110
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02252EAA:
- add r0, r4, #0
- add r0, #0x62
- ldrb r0, [r0]
- add r4, #0x62
- add sp, #0x110
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02252EBA:
- mov r0, #0xff
- add r4, #0x62
- add sp, #0x110
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02252EC4:
- ldr r0, [r4, #0x64]
- cmp r0, #0
- beq _02252F0E
- mov r0, #0x1a
- ldr r1, [r4, #4]
- lsl r0, r0, #4
- ldr r0, [r1, r0]
- cmp r0, #0
- bne _02252F0E
- add r0, r4, #0
- add r0, #0x61
- ldrb r1, [r0]
- mov r0, #0xf
- add r2, sp, #0xb8
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- mov r3, #1
- bl MOD11_02256854
- ldr r0, [r4]
- ldr r1, [r4, #4]
- add r2, r5, #0
- add r3, sp, #0xb8
- bl MOD11_02254404
- add r0, r4, #0
- add r0, #0x62
- ldrb r0, [r0]
- add r4, #0x62
- add sp, #0x110
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02252F0E:
- mov r0, #0xff
- add r4, #0x62
- add sp, #0x110
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02252F18:
- add r3, r4, #0
- add r3, #0x61
- ldrb r3, [r3]
- add r1, r4, #0
- ldr r0, [r4]
- add r1, #8
- add r2, sp, #0x68
- bl MOD11_0225452C
- add r0, sp, #0x68
- mov r1, #5
- bl MOD08_0222A568
- add r0, r4, #0
- add r0, #0x61
- ldrb r1, [r0]
- mov r0, #0x10
- add r2, sp, #0x10
- str r0, [sp]
- str r1, [sp, #4]
- str r1, [sp, #8]
- mov r1, #0
- str r1, [sp, #0xc]
- ldr r0, [r4]
- mov r3, #1
- bl MOD11_02256854
- ldr r0, [r4]
- ldr r1, [r4, #4]
- add r2, r5, #0
- add r3, sp, #0x10
- bl MOD11_02254404
- mov r0, #0x1a
- ldr r1, [r4, #4]
- mov r2, #1
- lsl r0, r0, #4
- str r2, [r1, r0]
- add r0, r4, #0
- add r0, #0x62
- ldrb r0, [r0]
- add r4, #0x62
- add sp, #0x110
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02252F74:
- bl MOD08_02212384
- add r0, r5, #0
- bl MOD08_022123A0
- cmp r0, #0
- bne _02252FB6
- add r0, r5, #0
- bl MOD08_022123B0
- add r0, r4, #0
- add r0, #0x62
- ldrb r0, [r0]
- add r4, #0x62
- add sp, #0x110
- add r0, r0, #1
- strb r0, [r4]
- pop {r4, r5, r6, pc}
-_02252F98:
- add r1, r4, #0
- add r2, r4, #0
- add r1, #0x61
- add r2, #0x60
- ldrb r1, [r1]
- ldrb r2, [r2]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r6, #0
- bl FUN_0200CAB4
-_02252FB6:
- add sp, #0x110
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02252FBC
-MOD11_02252FBC: ; 0x02252FBC
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4, #0xa]
- cmp r0, #0
- beq _02252FCE
- cmp r0, #1
- beq _02252FE4
- pop {r3, r4, r5, pc}
-_02252FCE:
- ldr r0, [r4, #4]
- add r1, #0xb
- bl MOD11_0225805C
- ldr r0, _02253004 ; =0x0000070C
- bl FUN_020054C8
- ldrb r0, [r4, #0xa]
- add r0, r0, #1
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, pc}
-_02252FE4:
- ldrb r0, [r4, #0xb]
- cmp r0, #1
- bne _02253000
- ldrb r1, [r4, #9]
- ldrb r2, [r4, #8]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
-_02253000:
- pop {r3, r4, r5, pc}
- nop
-_02253004: .word 0x0000070C
-
- thumb_func_start MOD11_02253008
-MOD11_02253008: ; 0x02253008
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD11_022312C0
- cmp r0, #0
- beq _0225302A
- ldr r0, [r4]
- bl MOD11_022312C0
- bl FUN_0200DBFC
- ldr r0, [r4]
- mov r1, #0
- bl MOD11_022312C8
-_0225302A:
- ldrb r0, [r4, #6]
- bl FUN_0201BD70
- cmp r0, #0
- bne _0225304A
- ldrb r1, [r4, #5]
- ldrb r2, [r4, #4]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
-_0225304A:
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_0225304C
-MOD11_0225304C: ; 0x0225304C
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4, #7]
- cmp r0, #0
- beq _0225305E
- cmp r0, #1
- beq _02253074
- pop {r3, r4, r5, pc}
-_0225305E:
- ldrb r0, [r4, #6]
- bl FUN_0201BD70
- cmp r0, #0
- bne _0225309E
- ldrb r0, [r4, #7]
- add r0, r0, #1
- strb r0, [r4, #7]
- mov r0, #0
- strb r0, [r4, #8]
- pop {r3, r4, r5, pc}
-_02253074:
- ldrb r0, [r4, #8]
- add r0, r0, #1
- strb r0, [r4, #8]
- ldrb r0, [r4, #8]
- cmp r0, #0x28
- bne _0225309E
- ldrb r1, [r4, #5]
- ldr r0, [r4]
- bl MOD11_02256004
- ldrb r1, [r4, #5]
- ldrb r2, [r4, #4]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
-_0225309E:
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_022530A0
-MOD11_022530A0: ; 0x022530A0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x18
- add r4, r1, #0
- str r0, [sp, #0xc]
- ldr r0, [r4]
- bl MOD11_0222FF68
- ldr r0, [r4]
- bl MOD11_022300CC
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD11_02230294
- add r7, r0, #0
- ldr r0, [r4]
- bl MOD11_022302A8
- lsl r1, r0, #2
- ldr r0, _022533D8 ; =0x0225E86C
- ldr r6, [r0, r1]
- ldrb r0, [r4, #0x15]
- add r0, r0, #1
- strb r0, [r4, #0x15]
- ldrb r0, [r4, #0x14]
- cmp r0, #6
- bhi _02253102
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_022530E2: ; jump table
- .short _022530F0 - _022530E2 - 2 ; case 0
- .short _022530F8 - _022530E2 - 2 ; case 1
- .short _0225314A - _022530E2 - 2 ; case 2
- .short _022532AC - _022530E2 - 2 ; case 3
- .short _022532C8 - _022530E2 - 2 ; case 4
- .short _022532E4 - _022530E2 - 2 ; case 5
- .short _022532F6 - _022530E2 - 2 ; case 6
-_022530F0:
- add r0, r0, #1
- add sp, #0x18
- strb r0, [r4, #0x14]
- pop {r3, r4, r5, r6, r7, pc}
-_022530F8:
- add r0, r5, #0
- bl FUN_020038E4
- cmp r0, #0
- beq _02253104
-_02253102:
- b _022533D4
-_02253104:
- mov r0, #5
- mov r1, #0
- bl MOD08_0222A0D4
- str r0, [r4, #4]
- ldr r0, _022533DC ; =0x0225E820
- add r1, sp, #0x10
- ldrb r5, [r0, r7]
- mov r0, #1
- str r0, [sp, #0x14]
- str r5, [sp, #0x10]
- ldr r0, [r4, #4]
- bl MOD08_0222A110
- str r0, [r4, #8]
- add r0, r5, #1
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- ldr r0, [r4, #4]
- add r1, sp, #0x10
- bl MOD08_0222A110
- str r0, [r4, #0xc]
- ldr r0, [r4, #8]
- bl MOD08_0222A1DC
- ldr r0, _022533E0 ; =0x0000084F
- bl FUN_020054C8
- ldrb r0, [r4, #0x14]
- add sp, #0x18
- add r0, r0, #1
- strb r0, [r4, #0x14]
- pop {r3, r4, r5, r6, r7, pc}
-_0225314A:
- ldrb r0, [r4, #0x15]
- cmp r0, #0xa
- bne _02253180
- mov r3, #0
- str r3, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- lsl r0, r6, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- ldr r2, _022533E4 ; =0x0000F3FF
- add r0, r5, #0
- mov r1, #1
- bl FUN_02003210
- mov r3, #0
- str r3, [sp]
- mov r0, #0x10
- str r0, [sp, #4]
- lsl r0, r6, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- ldr r2, _022533E8 ; =0x00003FFF
- add r0, r5, #0
- mov r1, #4
- bl FUN_02003210
-_02253180:
- ldrb r0, [r4, #0x15]
- cmp r0, #0x14
- bne _0225318C
- ldr r0, [r4, #0xc]
- bl MOD08_0222A1DC
-_0225318C:
- ldrb r0, [r4, #0x15]
- cmp r0, #0x17
- bne _0225319A
- mov r0, #0x85
- lsl r0, r0, #4
- bl FUN_020054C8
-_0225319A:
- ldrb r0, [r4, #0x15]
- cmp r0, #0x1c
- bne _02253286
- add r0, r5, #0
- mov r1, #0
- bl FUN_020031FC
- add r7, r0, #0
- ldr r0, [r4]
- bl MOD11_02231244
- add r1, r7, #0
- mov r2, #0xe0
- bl MIi_CpuCopy16
- ldr r0, [r4]
- bl MOD11_0222FF74
- cmp r0, #0x4a
- bne _022531DC
- add r0, r5, #0
- mov r1, #2
- bl FUN_020031FC
- add r7, r0, #0
- ldr r0, [r4]
- bl MOD11_02231250
- add r1, r7, #0
- mov r2, #0xa0
- bl MIi_CpuCopy16
- b _0225323E
-_022531DC:
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _02253200
- add r0, r5, #0
- bl FUN_020031FC
- add r7, r0, #0
- ldr r0, [r4]
- bl MOD11_02231250
- add r1, r7, #0
- mov r2, #0xe0
- bl MIi_CpuCopy16
- b _0225323E
-_02253200:
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #1
- tst r0, r1
- beq _02253226
- add r0, r5, #0
- mov r1, #2
- bl FUN_020031FC
- add r7, r0, #0
- ldr r0, [r4]
- bl MOD11_02231250
- add r1, r7, #0
- mov r2, #0xa0
- bl MIi_CpuCopy16
- b _0225323E
-_02253226:
- add r0, r5, #0
- mov r1, #2
- bl FUN_020031FC
- add r7, r0, #0
- ldr r0, [r4]
- bl MOD11_02231250
- add r1, r7, #0
- mov r2, #0x80
- bl MIi_CpuCopy16
-_0225323E:
- mov r0, #0x10
- str r0, [sp]
- mov r3, #0
- lsl r0, r6, #0x10
- str r3, [sp, #4]
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- ldr r2, _022533E4 ; =0x0000F3FF
- add r0, r5, #0
- mov r1, #1
- bl FUN_02003210
- mov r0, #0x10
- str r0, [sp]
- mov r3, #0
- lsl r0, r6, #0x10
- str r3, [sp, #4]
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- ldr r2, _022533E8 ; =0x00003FFF
- add r0, r5, #0
- mov r1, #4
- bl FUN_02003210
- mov r0, #0x10
- str r0, [sp]
- mov r3, #0
- lsl r0, r6, #0x10
- str r3, [sp, #4]
- lsr r0, r0, #0x10
- str r0, [sp, #8]
- ldr r2, _022533EC ; =0x0000FFFF
- add r0, r5, #0
- mov r1, #0xa
- bl FUN_02003210
-_02253286:
- ldrb r0, [r4, #0x15]
- cmp r0, #0x32
- bne _022532B6
- mov r0, #0x10
- str r0, [sp]
- mov r3, #0
- str r3, [sp, #4]
- mov r2, #3
- str r3, [sp, #8]
- add r0, r5, #0
- mov r1, #1
- lsl r2, r2, #0xa
- bl FUN_02003210
- ldrb r0, [r4, #0x14]
- add sp, #0x18
- add r0, r0, #1
- strb r0, [r4, #0x14]
- pop {r3, r4, r5, r6, r7, pc}
-_022532AC:
- ldr r0, [r4, #0xc]
- bl MOD08_0222A204
- cmp r0, #0
- beq _022532B8
-_022532B6:
- b _022533D4
-_022532B8:
- ldr r0, [r4, #4]
- bl MOD08_0222A14C
- ldrb r0, [r4, #0x14]
- add sp, #0x18
- add r0, r0, #1
- strb r0, [r4, #0x14]
- pop {r3, r4, r5, r6, r7, pc}
-_022532C8:
- ldr r0, [r4]
- bl MOD11_02230288
- mov r1, #0
- bl FUN_020143A8
- add r0, r4, #0
- bl FreeToHeap
- ldr r0, [sp, #0xc]
- bl FUN_0200CAB4
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
-_022532E4:
- ldr r0, [r4, #4]
- bl MOD08_0222A170
- ldr r0, [r4, #4]
- bl MOD08_0222A14C
- ldrb r0, [r4, #0x14]
- add r0, r0, #1
- strb r0, [r4, #0x14]
-_022532F6:
- add r0, r5, #0
- mov r1, #0
- bl FUN_020031FC
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD11_02231244
- add r1, r6, #0
- mov r2, #0xe0
- bl MIi_CpuCopy16
- ldr r0, [r4]
- bl MOD11_0222FF74
- cmp r0, #0x4a
- bne _02253332
- add r0, r5, #0
- mov r1, #2
- bl FUN_020031FC
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD11_02231250
- add r1, r6, #0
- mov r2, #0xa0
- bl MIi_CpuCopy16
- b _02253394
-_02253332:
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- beq _02253356
- add r0, r5, #0
- bl FUN_020031FC
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD11_02231250
- add r1, r6, #0
- mov r2, #0xe0
- bl MIi_CpuCopy16
- b _02253394
-_02253356:
- ldr r0, [r4]
- bl MOD11_0222FF74
- mov r1, #1
- tst r0, r1
- beq _0225337C
- add r0, r5, #0
- mov r1, #2
- bl FUN_020031FC
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD11_02231250
- add r1, r6, #0
- mov r2, #0xa0
- bl MIi_CpuCopy16
- b _02253394
-_0225337C:
- add r0, r5, #0
- mov r1, #2
- bl FUN_020031FC
- add r6, r0, #0
- ldr r0, [r4]
- bl MOD11_02231250
- add r1, r6, #0
- mov r2, #0x80
- bl MIi_CpuCopy16
-_02253394:
- mov r3, #0
- str r3, [sp]
- ldr r0, _022533F0 ; =0x00007FFF
- str r3, [sp, #4]
- str r0, [sp, #8]
- ldr r2, _022533EC ; =0x0000FFFF
- add r0, r5, #0
- mov r1, #1
- bl FUN_02003210
- mov r3, #0
- str r3, [sp]
- ldr r2, _022533EC ; =0x0000FFFF
- str r3, [sp, #4]
- str r2, [sp, #8]
- add r0, r5, #0
- mov r1, #4
- lsr r2, r2, #2
- bl FUN_02003210
- mov r3, #0
- str r3, [sp]
- ldr r0, _022533F0 ; =0x00007FFF
- str r3, [sp, #4]
- str r0, [sp, #8]
- ldr r2, _022533EC ; =0x0000FFFF
- add r0, r5, #0
- mov r1, #0xa
- bl FUN_02003210
- mov r0, #4
- strb r0, [r4, #0x14]
-_022533D4:
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022533D8: .word 0x0225E86C
-_022533DC: .word 0x0225E820
-_022533E0: .word 0x0000084F
-_022533E4: .word 0x0000F3FF
-_022533E8: .word 0x00003FFF
-_022533EC: .word 0x0000FFFF
-_022533F0: .word 0x00007FFF
-
- thumb_func_start MOD11_022533F4
-MOD11_022533F4: ; 0x022533F4
- push {r3, r4, r5, r6, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4]
- bl MOD11_022300CC
- ldrb r1, [r4, #0xa]
- add r6, r0, #0
- cmp r1, #3
- bls _0225340C
- b _02253524
-_0225340C:
- add r1, r1, r1
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02253418: ; jump table
- .short _02253420 - _02253418 - 2 ; case 0
- .short _02253440 - _02253418 - 2 ; case 1
- .short _022534B0 - _02253418 - 2 ; case 2
- .short _022534E2 - _02253418 - 2 ; case 3
-_02253420:
- mov r2, #0
- str r2, [sp]
- mov r1, #0x10
- str r1, [sp, #4]
- mov r1, #0xa
- str r2, [sp, #8]
- add r3, r1, #0
- ldr r2, _02253528 ; =0x0000FFFF
- sub r3, #0x12
- bl FUN_02003210
- ldrb r0, [r4, #0xa]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, r6, pc}
-_02253440:
- bl FUN_020038E4
- cmp r0, #0
- bne _02253524
- ldr r0, [r4]
- bl MOD11_0222D7F8
- mov r0, #5
- mov r1, #0x38
- bl AllocFromHeap
- str r0, [r4, #4]
- ldrb r1, [r4, #9]
- ldr r0, [r4]
- bl MOD11_0222FF88
- ldr r1, [r4, #4]
- mov r2, #3
- str r0, [r1]
- ldr r1, [r4]
- ldr r0, [r4, #4]
- str r1, [r0, #8]
- ldr r0, [r4, #4]
- mov r1, #5
- str r1, [r0, #0xc]
- ldrb r1, [r4, #0xe]
- ldr r0, [r4, #4]
- strb r1, [r0, #0x11]
- ldrh r1, [r4, #0xc]
- ldr r0, [r4, #4]
- strh r1, [r0, #0x24]
- ldr r1, [r4, #4]
- mov r0, #0
- add r1, #0x36
- strb r0, [r1]
- ldr r1, [r4, #4]
- strb r0, [r1, #0x12]
- ldr r1, [r4, #4]
- add r1, #0x35
- strb r2, [r1]
- ldr r1, [r4, #4]
- strh r0, [r1, #0x22]
- ldrb r2, [r4, #9]
- ldr r1, [r4, #4]
- str r2, [r1, #0x28]
- ldr r1, [r4, #4]
- add r1, #0x32
- strb r0, [r1]
- ldr r0, [r4, #4]
- bl MOD07_02211E60
- ldrb r0, [r4, #0xa]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, r6, pc}
-_022534B0:
- ldr r0, [r4, #4]
- add r0, #0x36
- ldrb r0, [r0]
- cmp r0, #0
- beq _02253524
- ldr r0, [r4]
- bl MOD11_0222D88C
- mov r0, #0x10
- str r0, [sp]
- mov r0, #0
- mov r1, #0xa
- str r0, [sp, #4]
- add r3, r1, #0
- str r0, [sp, #8]
- ldr r2, _02253528 ; =0x0000FFFF
- add r0, r6, #0
- sub r3, #0x12
- bl FUN_02003210
- ldrb r0, [r4, #0xa]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r4, #0xa]
- pop {r3, r4, r5, r6, pc}
-_022534E2:
- bl FUN_020038E4
- cmp r0, #0
- bne _02253524
- ldr r0, [r4, #4]
- add r0, #0x34
- ldrb r2, [r0]
- ldr r0, [r4]
- cmp r2, #4
- bne _02253500
- ldrb r1, [r4, #9]
- mov r2, #0xff
- bl MOD11_02255964
- b _02253508
-_02253500:
- ldrb r1, [r4, #9]
- add r2, r2, #1
- bl MOD11_02255964
-_02253508:
- ldrb r1, [r4, #9]
- ldrb r2, [r4, #8]
- ldr r0, [r4]
- bl MOD11_022567B8
- ldr r0, [r4, #4]
- bl FreeToHeap
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
-_02253524:
- add sp, #0xc
- pop {r3, r4, r5, r6, pc}
- .align 2, 0
-_02253528: .word 0x0000FFFF
-
- thumb_func_start MOD11_0225352C
-MOD11_0225352C: ; 0x0225352C
- push {r3, r4, r5, lr}
- add r5, r1, #0
- add r4, r0, #0
- ldrb r0, [r5, #0xa]
- cmp r0, #0
- beq _0225353E
- cmp r0, #1
- beq _02253582
- pop {r3, r4, r5, pc}
-_0225353E:
- ldrb r1, [r5, #0xc]
- ldrb r0, [r5, #0xd]
- cmp r1, r0
- bne _0225357C
- mov r0, #0
- strb r0, [r5, #0xc]
- ldr r0, [r5, #4]
- mov r1, #0x28
- bl FUN_0200782C
- add r4, r0, #0
- ldrb r0, [r5, #0xb]
- cmp r4, r0
- ble _0225355E
- sub r4, r4, #1
- b _02253564
-_0225355E:
- cmp r4, r0
- bge _02253564
- add r4, r4, #1
-_02253564:
- ldr r0, [r5, #4]
- mov r1, #0x28
- add r2, r4, #0
- bl FUN_02007558
- ldrb r0, [r5, #0xb]
- cmp r4, r0
- bne _02253598
- ldrb r0, [r5, #0xa]
- add r0, r0, #1
- strb r0, [r5, #0xa]
- pop {r3, r4, r5, pc}
-_0225357C:
- add r0, r1, #1
- strb r0, [r5, #0xc]
- pop {r3, r4, r5, pc}
-_02253582:
- ldrb r1, [r5, #9]
- ldrb r2, [r5, #8]
- ldr r0, [r5]
- bl MOD11_022567B8
- add r0, r5, #0
- bl FreeToHeap
- add r0, r4, #0
- bl FUN_0200CAB4
-_02253598:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225359C
-MOD11_0225359C: ; 0x0225359C
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r5, r1, #0
- ldrb r1, [r5, #5]
- add r6, r0, #0
- ldr r0, [r5]
- bl MOD11_02230270
- cmp r0, #0
- bne _022535B4
- mov r4, #0
- b _022535B6
-_022535B4:
- mov r4, #1
-_022535B6:
- ldrb r0, [r5, #7]
- cmp r0, #0
- beq _022535C2
- cmp r0, #1
- beq _0225361C
- b _02253636
-_022535C2:
- ldrb r0, [r5, #0xe]
- cmp r0, #0
- bne _022535CE
- mov r7, #0
- mov r6, #1
- b _022535E6
-_022535CE:
- ldrb r0, [r5, #6]
- mov r7, #1
- cmp r0, #3
- beq _022535DC
- cmp r0, #5
- beq _022535E0
- b _022535E4
-_022535DC:
- mov r6, #0
- b _022535E6
-_022535E0:
- mov r6, #2
- b _022535E6
-_022535E4:
- add r6, r7, #0
-_022535E6:
- ldr r0, [r5]
- bl MOD11_02230078
- str r0, [sp, #8]
- ldr r0, [r5]
- bl MOD11_02230080
- ldr r1, [sp, #8]
- add r2, r7, #0
- str r1, [sp]
- str r0, [sp, #4]
- add r0, r5, #0
- add r0, #8
- add r1, r4, #0
- add r3, r6, #0
- bl MOD11_0225CA08
- add r2, r0, #0
- ldr r0, [r5]
- add r1, r4, #0
- bl MOD11_022300A8
- ldrb r0, [r5, #7]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r5, #7]
- pop {r4, r5, r6, r7, pc}
-_0225361C:
- ldr r0, [r5]
- add r1, r4, #0
- bl MOD11_0223009C
- bl MOD11_0225CA6C
- cmp r0, #1
- bne _0225364C
- ldrb r0, [r5, #7]
- add sp, #0xc
- add r0, r0, #1
- strb r0, [r5, #7]
- pop {r4, r5, r6, r7, pc}
-_02253636:
- ldrb r1, [r5, #5]
- ldrb r2, [r5, #4]
- ldr r0, [r5]
- bl MOD11_022567B8
- add r0, r5, #0
- bl FreeToHeap
- add r0, r6, #0
- bl FUN_0200CAB4
-_0225364C:
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02253650
-MOD11_02253650: ; 0x02253650
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- ldrb r1, [r5, #5]
- add r7, r0, #0
- ldr r0, [r5]
- bl MOD11_02230270
- cmp r0, #0
- bne _02253666
- mov r4, #0
- b _02253668
-_02253666:
- mov r4, #1
-_02253668:
- ldr r0, [r5]
- add r1, r4, #0
- bl MOD11_0223009C
- ldrb r1, [r5, #7]
- add r6, r0, #0
- cmp r1, #0
- beq _0225367E
- cmp r1, #1
- beq _0225369A
- b _022536BA
-_0225367E:
- ldrb r0, [r5, #0xe]
- cmp r0, #0
- bne _02253688
- mov r1, #0
- b _0225368A
-_02253688:
- mov r1, #1
-_0225368A:
- add r0, r6, #0
- add r2, r1, #0
- bl MOD11_0225CA90
- ldrb r0, [r5, #7]
- add r0, r0, #1
- strb r0, [r5, #7]
- pop {r3, r4, r5, r6, r7, pc}
-_0225369A:
- bl MOD11_0225CAC8
- cmp r0, #1
- bne _022536D0
- add r0, r6, #0
- bl MOD11_0225CAEC
- ldr r0, [r5]
- add r1, r4, #0
- mov r2, #0
- bl MOD11_022300A8
- ldrb r0, [r5, #7]
- add r0, r0, #1
- strb r0, [r5, #7]
- pop {r3, r4, r5, r6, r7, pc}
-_022536BA:
- ldrb r1, [r5, #5]
- ldrb r2, [r5, #4]
- ldr r0, [r5]
- bl MOD11_022567B8
- add r0, r5, #0
- bl FreeToHeap
- add r0, r7, #0
- bl FUN_0200CAB4
-_022536D0:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022536D4
-MOD11_022536D4: ; 0x022536D4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4, #0xe]
- cmp r0, #0
- bne _02253706
- ldr r0, [r4, #4]
- add r0, #0x8c
- ldr r0, [r0]
- cmp r0, #0
- beq _022536EE
- bl ErrorHandling
-_022536EE:
- ldrb r2, [r4, #0xd]
- ldr r0, [r4]
- mov r1, #5
- bl MOD08_022156C0
- ldr r1, [r4, #4]
- add r1, #0x8c
- str r0, [r1]
- ldrb r0, [r4, #0xe]
- add r0, r0, #1
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, pc}
-_02253706:
- ldrb r1, [r4, #0xd]
- ldrb r2, [r4, #0xc]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02253720
-MOD11_02253720: ; 0x02253720
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #4]
- add r0, #0x8c
- ldr r0, [r0]
- cmp r0, #0
- bne _02253734
- bl ErrorHandling
-_02253734:
- ldr r0, [r4, #4]
- add r0, #0x8c
- ldr r0, [r0]
- bl MOD08_02215988
- cmp r0, #3
- bne _0225374E
- ldrb r0, [r4, #0xe]
- cmp r0, #5
- bhs _0225374E
- add r0, r0, #1
- strb r0, [r4, #0xe]
- pop {r3, r4, r5, pc}
-_0225374E:
- ldr r0, [r4, #4]
- ldrb r1, [r4, #0xd]
- add r0, #0x8c
- ldr r0, [r0]
- bl MOD08_0221594C
- ldr r0, [r4, #4]
- mov r1, #0
- add r0, #0x8c
- str r1, [r0]
- ldrb r1, [r4, #0xd]
- ldrb r2, [r4, #0xc]
- ldr r0, [r4]
- bl MOD11_022567B8
- add r0, r4, #0
- bl FreeToHeap
- add r0, r5, #0
- bl FUN_0200CAB4
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225377C
-MOD11_0225377C: ; 0x0225377C
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r1, #0
- bl MOD11_0222FF74
- mov r1, #0x40
- tst r1, r0
- beq _022537D6
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r1, [r4, r0]
- cmp r1, #0
- beq _022537B6
- ldr r1, _022539F4 ; =MOD11_02250F44
- add r0, r0, #2
- str r1, [r4]
- ldr r1, _022539F8 ; =MOD11_022511C4
- str r1, [r4, #4]
- ldr r1, _022539FC ; =MOD11_02251420
- str r1, [r4, #8]
- ldr r1, _02253A00 ; =MOD11_02252018
- str r1, [r4, #0xc]
- ldr r1, _02253A04 ; =MOD11_02252470
- str r1, [r4, #0x10]
- ldr r1, _02253A08 ; =MOD11_02252714
- str r1, [r4, #0x14]
- mov r1, #1
- strb r1, [r4, r0]
- pop {r3, r4, r5, pc}
-_022537B6:
- ldr r1, _02253A0C ; =MOD11_02250A70
- add r0, r0, #2
- str r1, [r4]
- ldr r1, _02253A10 ; =MOD11_0225103C
- str r1, [r4, #4]
- ldr r1, _02253A14 ; =MOD11_022512B4
- str r1, [r4, #8]
- ldr r1, _02253A18 ; =MOD11_02251484
- str r1, [r4, #0xc]
- ldr r1, _02253A1C ; =MOD11_022520A8
- str r1, [r4, #0x10]
- ldr r1, _02253A20 ; =MOD11_02252544
- str r1, [r4, #0x14]
- mov r1, #0
- strb r1, [r4, r0]
- pop {r3, r4, r5, pc}
-_022537D6:
- mov r1, #0x88
- and r1, r0
- cmp r1, #0x88
- bne _02253888
- ldr r0, _02253A24 ; =0x00000195
- ldrb r1, [r4, r0]
- mov r0, #1
- tst r0, r1
- beq _02253832
- add r0, r5, #0
- bl MOD11_02230DD4
- cmp r0, #0
- beq _02253812
- ldr r0, _022539F4 ; =MOD11_02250F44
- mov r1, #1
- str r0, [r4]
- ldr r0, _022539F8 ; =MOD11_022511C4
- str r0, [r4, #4]
- ldr r0, _022539FC ; =MOD11_02251420
- str r0, [r4, #8]
- ldr r0, _02253A00 ; =MOD11_02252018
- str r0, [r4, #0xc]
- ldr r0, _02253A04 ; =MOD11_02252470
- str r0, [r4, #0x10]
- ldr r0, _02253A08 ; =MOD11_02252714
- str r0, [r4, #0x14]
- ldr r0, _02253A28 ; =0x00000196
- strb r1, [r4, r0]
- pop {r3, r4, r5, pc}
-_02253812:
- ldr r0, _02253A2C ; =MOD11_02250F74
- mov r1, #2
- str r0, [r4]
- ldr r0, _02253A30 ; =MOD11_02251294
- str r0, [r4, #4]
- ldr r0, _02253A34 ; =MOD11_02251464
- str r0, [r4, #8]
- ldr r0, _02253A38 ; =MOD11_02252070
- str r0, [r4, #0xc]
- ldr r0, _02253A3C ; =MOD11_02252524
- str r0, [r4, #0x10]
- ldr r0, _02253A40 ; =MOD11_02252734
- str r0, [r4, #0x14]
- ldr r0, _02253A28 ; =0x00000196
- strb r1, [r4, r0]
- pop {r3, r4, r5, pc}
-_02253832:
- bl FUN_02031190
- add r1, r0, #0
- add r0, r5, #0
- lsl r1, r1, #1
- bl MOD11_02230260
- ldr r1, _02253A24 ; =0x00000195
- ldrb r2, [r4, r1]
- cmp r2, r0
- beq _02253868
- ldr r0, _02253A2C ; =MOD11_02250F74
- mov r2, #2
- str r0, [r4]
- ldr r0, _02253A30 ; =MOD11_02251294
- str r0, [r4, #4]
- ldr r0, _02253A34 ; =MOD11_02251464
- str r0, [r4, #8]
- ldr r0, _02253A38 ; =MOD11_02252070
- str r0, [r4, #0xc]
- ldr r0, _02253A3C ; =MOD11_02252524
- str r0, [r4, #0x10]
- ldr r0, _02253A40 ; =MOD11_02252734
- str r0, [r4, #0x14]
- add r0, r1, #1
- strb r2, [r4, r0]
- pop {r3, r4, r5, pc}
-_02253868:
- ldr r0, _02253A0C ; =MOD11_02250A70
- mov r2, #0
- str r0, [r4]
- ldr r0, _02253A10 ; =MOD11_0225103C
- str r0, [r4, #4]
- ldr r0, _02253A14 ; =MOD11_022512B4
- str r0, [r4, #8]
- ldr r0, _02253A18 ; =MOD11_02251484
- str r0, [r4, #0xc]
- ldr r0, _02253A1C ; =MOD11_022520A8
- str r0, [r4, #0x10]
- ldr r0, _02253A20 ; =MOD11_02252544
- str r0, [r4, #0x14]
- add r0, r1, #1
- strb r2, [r4, r0]
- pop {r3, r4, r5, pc}
-_02253888:
- mov r1, #8
- tst r1, r0
- beq _022538E2
- bl FUN_02031190
- add r1, r0, #0
- add r0, r5, #0
- bl MOD11_02230260
- ldr r1, _02253A24 ; =0x00000195
- ldrb r2, [r4, r1]
- cmp r2, r0
- beq _022538C2
- ldr r0, _02253A2C ; =MOD11_02250F74
- mov r2, #2
- str r0, [r4]
- ldr r0, _02253A30 ; =MOD11_02251294
- str r0, [r4, #4]
- ldr r0, _02253A34 ; =MOD11_02251464
- str r0, [r4, #8]
- ldr r0, _02253A38 ; =MOD11_02252070
- str r0, [r4, #0xc]
- ldr r0, _02253A3C ; =MOD11_02252524
- str r0, [r4, #0x10]
- ldr r0, _02253A40 ; =MOD11_02252734
- str r0, [r4, #0x14]
- add r0, r1, #1
- strb r2, [r4, r0]
- pop {r3, r4, r5, pc}
-_022538C2:
- ldr r0, _02253A0C ; =MOD11_02250A70
- mov r2, #0
- str r0, [r4]
- ldr r0, _02253A10 ; =MOD11_0225103C
- str r0, [r4, #4]
- ldr r0, _02253A14 ; =MOD11_022512B4
- str r0, [r4, #8]
- ldr r0, _02253A18 ; =MOD11_02251484
- str r0, [r4, #0xc]
- ldr r0, _02253A1C ; =MOD11_022520A8
- str r0, [r4, #0x10]
- ldr r0, _02253A20 ; =MOD11_02252544
- str r0, [r4, #0x14]
- add r0, r1, #1
- strb r2, [r4, r0]
- pop {r3, r4, r5, pc}
-_022538E2:
- mov r1, #4
- add r2, r0, #0
- tst r2, r1
- beq _02253934
- ldr r0, _02253A24 ; =0x00000195
- mov r1, #1
- ldrb r2, [r4, r0]
- tst r1, r2
- beq _02253914
- ldr r1, _02253A2C ; =MOD11_02250F74
- add r0, r0, #1
- str r1, [r4]
- ldr r1, _02253A30 ; =MOD11_02251294
- str r1, [r4, #4]
- ldr r1, _02253A34 ; =MOD11_02251464
- str r1, [r4, #8]
- ldr r1, _02253A38 ; =MOD11_02252070
- str r1, [r4, #0xc]
- ldr r1, _02253A3C ; =MOD11_02252524
- str r1, [r4, #0x10]
- ldr r1, _02253A40 ; =MOD11_02252734
- str r1, [r4, #0x14]
- mov r1, #2
- strb r1, [r4, r0]
- pop {r3, r4, r5, pc}
-_02253914:
- ldr r1, _02253A0C ; =MOD11_02250A70
- add r0, r0, #1
- str r1, [r4]
- ldr r1, _02253A10 ; =MOD11_0225103C
- str r1, [r4, #4]
- ldr r1, _02253A14 ; =MOD11_022512B4
- str r1, [r4, #8]
- ldr r1, _02253A18 ; =MOD11_02251484
- str r1, [r4, #0xc]
- ldr r1, _02253A1C ; =MOD11_022520A8
- str r1, [r4, #0x10]
- ldr r1, _02253A20 ; =MOD11_02252544
- str r1, [r4, #0x14]
- mov r1, #0
- strb r1, [r4, r0]
- pop {r3, r4, r5, pc}
-_02253934:
- lsl r1, r1, #7
- tst r1, r0
- beq _02253970
- ldr r0, _02253A24 ; =0x00000195
- mov r1, #1
- ldrb r2, [r4, r0]
- tst r2, r1
- beq _0225395A
- ldr r2, _02253A44 ; =MOD11_02251014
- add r0, r0, #1
- str r2, [r4]
- mov r2, #0
- str r2, [r4, #4]
- str r2, [r4, #8]
- str r2, [r4, #0xc]
- str r2, [r4, #0x10]
- str r2, [r4, #0x14]
- strb r1, [r4, r0]
- pop {r3, r4, r5, pc}
-_0225395A:
- ldr r1, _02253A0C ; =MOD11_02250A70
- add r0, r0, #1
- str r1, [r4]
- mov r1, #0
- str r1, [r4, #4]
- str r1, [r4, #8]
- str r1, [r4, #0xc]
- str r1, [r4, #0x10]
- str r1, [r4, #0x14]
- strb r1, [r4, r0]
- pop {r3, r4, r5, pc}
-_02253970:
- mov r1, #0x20
- tst r0, r1
- ldr r0, _02253A24 ; =0x00000195
- beq _022539AE
- ldrb r2, [r4, r0]
- mov r1, #1
- tst r2, r1
- beq _02253996
- ldr r2, _02253A48 ; =MOD11_02250F94
- add r0, r0, #1
- str r2, [r4]
- mov r2, #0
- str r2, [r4, #4]
- str r2, [r4, #8]
- str r2, [r4, #0xc]
- str r2, [r4, #0x10]
- str r2, [r4, #0x14]
- strb r1, [r4, r0]
- pop {r3, r4, r5, pc}
-_02253996:
- ldr r1, _02253A0C ; =MOD11_02250A70
- mov r2, #0
- str r1, [r4]
- str r2, [r4, #4]
- str r2, [r4, #8]
- str r2, [r4, #0xc]
- ldr r1, _02253A20 ; =MOD11_02252544
- str r2, [r4, #0x10]
- str r1, [r4, #0x14]
- add r0, r0, #1
- strb r2, [r4, r0]
- pop {r3, r4, r5, pc}
-_022539AE:
- ldrb r2, [r4, r0]
- mov r1, #1
- tst r2, r1
- beq _022539D4
- ldr r2, _022539F4 ; =MOD11_02250F44
- add r0, r0, #1
- str r2, [r4]
- ldr r2, _022539F8 ; =MOD11_022511C4
- str r2, [r4, #4]
- ldr r2, _022539FC ; =MOD11_02251420
- str r2, [r4, #8]
- ldr r2, _02253A00 ; =MOD11_02252018
- str r2, [r4, #0xc]
- ldr r2, _02253A04 ; =MOD11_02252470
- str r2, [r4, #0x10]
- ldr r2, _02253A08 ; =MOD11_02252714
- str r2, [r4, #0x14]
- strb r1, [r4, r0]
- pop {r3, r4, r5, pc}
-_022539D4:
- ldr r1, _02253A0C ; =MOD11_02250A70
- add r0, r0, #1
- str r1, [r4]
- ldr r1, _02253A10 ; =MOD11_0225103C
- str r1, [r4, #4]
- ldr r1, _02253A14 ; =MOD11_022512B4
- str r1, [r4, #8]
- ldr r1, _02253A18 ; =MOD11_02251484
- str r1, [r4, #0xc]
- ldr r1, _02253A1C ; =MOD11_022520A8
- str r1, [r4, #0x10]
- ldr r1, _02253A20 ; =MOD11_02252544
- str r1, [r4, #0x14]
- mov r1, #0
- strb r1, [r4, r0]
- pop {r3, r4, r5, pc}
- .align 2, 0
-_022539F4: .word MOD11_02250F44
-_022539F8: .word MOD11_022511C4
-_022539FC: .word MOD11_02251420
-_02253A00: .word MOD11_02252018
-_02253A04: .word MOD11_02252470
-_02253A08: .word MOD11_02252714
-_02253A0C: .word MOD11_02250A70
-_02253A10: .word MOD11_0225103C
-_02253A14: .word MOD11_022512B4
-_02253A18: .word MOD11_02251484
-_02253A1C: .word MOD11_022520A8
-_02253A20: .word MOD11_02252544
-_02253A24: .word 0x00000195
-_02253A28: .word 0x00000196
-_02253A2C: .word MOD11_02250F74
-_02253A30: .word MOD11_02251294
-_02253A34: .word MOD11_02251464
-_02253A38: .word MOD11_02252070
-_02253A3C: .word MOD11_02252524
-_02253A40: .word MOD11_02252734
-_02253A44: .word MOD11_02251014
-_02253A48: .word MOD11_02250F94
-
- thumb_func_start MOD11_02253A4C
-MOD11_02253A4C: ; 0x02253A4C
- ldr r1, _02253A54 ; =0x00000195
- ldrb r0, [r0, r1]
- bx lr
- nop
-_02253A54: .word 0x00000195
-
- thumb_func_start MOD11_02253A58
-MOD11_02253A58: ; 0x02253A58
- ldr r1, _02253A60 ; =0x00000196
- ldrb r0, [r0, r1]
- bx lr
- nop
-_02253A60: .word 0x00000196
-
- thumb_func_start MOD11_02253A64
-MOD11_02253A64: ; 0x02253A64
- ldr r1, [r0, #0x20]
- cmp r1, #0
- bne _02253A6C
- ldr r1, [r0, #0x1c]
-_02253A6C:
- add r0, r1, #0
- bx lr
-
- thumb_func_start MOD11_02253A70
-MOD11_02253A70: ; 0x02253A70
- add r0, #0x28
- bx lr
-
- thumb_func_start MOD11_02253A74
-MOD11_02253A74: ; 0x02253A74
- add r0, #0x80
- bx lr
-
- thumb_func_start MOD11_02253A78
-MOD11_02253A78: ; 0x02253A78
- ldr r3, _02253A84 ; =0x020CE34C
- add r0, #0x80
- mov r1, #0
- mov r2, #8
- bx r3
- nop
-_02253A84: .word 0x020CE34C
-
- thumb_func_start MOD11_02253A88
-MOD11_02253A88: ; 0x02253A88
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- ldr r4, [sp, #0x50]
- add r7, r0, #0
- str r1, [sp, #0x14]
- add r5, r2, #0
- str r3, [sp, #0x18]
- bl MOD11_02230130
- add r1, r4, #0
- bl MOD11_022312DC
- str r0, [sp, #0x20]
- add r0, r7, #0
- add r1, r4, #0
- bl MOD11_02230260
- add r6, r0, #0
- mov r0, #1
- and r0, r6
- str r0, [sp, #0x1c]
- beq _02253AB8
- mov r1, #2
- b _02253ABA
-_02253AB8:
- mov r1, #0
-_02253ABA:
- ldr r0, [r5, #0xc]
- ldr r3, [sp, #0x20]
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- str r1, [sp, #8]
- ldrh r0, [r5, #6]
- mov r2, #5
- str r0, [sp, #0xc]
- ldrh r0, [r5]
- ldrh r1, [r5, #2]
- bl FUN_02012560
- add r0, r7, #0
- bl MOD11_02230130
- ldrh r2, [r5]
- add r1, r4, #0
- bl MOD11_022312F0
- add r0, r7, #0
- bl MOD11_02230130
- ldrh r2, [r5, #4]
- add r1, r4, #0
- bl MOD11_02231308
- add r0, r7, #0
- bl MOD11_02230130
- ldr r2, [sp, #0x40]
- add r1, r4, #0
- bl MOD11_02231320
- ldr r0, [sp, #0x3c]
- ldr r3, [sp, #0x40]
- str r0, [sp]
- str r4, [sp, #4]
- str r4, [sp, #8]
- ldr r0, [sp, #0x54]
- ldr r4, [sp, #0x38]
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x58]
- ldr r2, [sp, #0x18]
- str r0, [sp, #0x10]
- ldr r0, [sp, #0x14]
- add r1, r5, #0
- add r3, r4, r3
- bl FUN_020073E8
- add r4, r0, #0
- ldr r0, [sp, #0x1c]
- cmp r0, #0
- beq _02253B6E
- cmp r6, #1
- ble _02253B2C
- asr r6, r6, #1
-_02253B2C:
- add r0, r4, #0
- mov r1, #0x2a
- add r2, r6, #0
- bl FUN_02007558
- ldr r2, [sp, #0x4c]
- add r0, r4, #0
- mov r1, #0x2e
- bl FUN_02007558
- ldr r2, [sp, #0x38]
- add r0, r4, #0
- mov r1, #0x14
- add r2, #0x24
- bl FUN_02007558
- ldr r2, [sp, #0x48]
- add r0, r4, #0
- mov r1, #0x15
- bl FUN_02007558
- ldr r3, [sp, #0x40]
- mov r2, #0x24
- add r0, r4, #0
- mov r1, #0x16
- sub r2, r2, r3
- bl FUN_02007558
- ldr r2, [sp, #0x44]
- add r0, r4, #0
- mov r1, #0x29
- bl FUN_02007558
-_02253B6E:
- add r0, r4, #0
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02253B74
-MOD11_02253B74: ; 0x02253B74
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- ldr r1, _02253C30 ; =0x00000195
- add r6, r2, #0
- ldrb r2, [r5, r1]
- mov r1, #1
- add r7, r0, #0
- add r4, r3, #0
- tst r1, r2
- beq _02253BCE
- bl MOD11_0222FF74
- mov r1, #4
- tst r0, r1
- beq _02253BAE
- ldr r0, _02253C34 ; =0x000003DE
- strh r0, [r4, #2]
- mov r0, #0x1b
- strb r0, [r4, #1]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r1, [r5, r0]
- str r1, [r4, #4]
- ldrb r1, [r5, r0]
- ldrb r0, [r6, #1]
- lsl r0, r0, #8
- orr r0, r1
- str r0, [r4, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_02253BAE:
- ldr r0, _02253C38 ; =0x000003DD
- strh r0, [r4, #2]
- mov r0, #0x32
- strb r0, [r4, #1]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r1, [r5, r0]
- str r1, [r4, #4]
- ldrb r1, [r5, r0]
- str r1, [r4, #8]
- ldrb r1, [r5, r0]
- ldrb r0, [r6, #1]
- lsl r0, r0, #8
- orr r0, r1
- str r0, [r4, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_02253BCE:
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- bne _02253C18
- add r0, r7, #0
- bl MOD11_0222FF74
- mov r1, #4
- tst r0, r1
- bne _02253C18
- ldrh r0, [r6, #2]
- cmp r0, #0
- bne _02253BF2
- mov r0, #0xf6
- lsl r0, r0, #2
- strh r0, [r4, #2]
- b _02253C1C
-_02253BF2:
- cmp r0, #0x19
- bhs _02253BFC
- ldr r0, _02253C3C ; =0x000003D9
- strh r0, [r4, #2]
- b _02253C1C
-_02253BFC:
- cmp r0, #0x32
- bhs _02253C08
- mov r0, #0xf7
- lsl r0, r0, #2
- strh r0, [r4, #2]
- b _02253C1C
-_02253C08:
- cmp r0, #0x4b
- bhs _02253C12
- ldr r0, _02253C40 ; =0x000003DA
- strh r0, [r4, #2]
- b _02253C1C
-_02253C12:
- ldr r0, _02253C44 ; =0x000003DB
- strh r0, [r4, #2]
- b _02253C1C
-_02253C18:
- ldr r0, _02253C3C ; =0x000003D9
- strh r0, [r4, #2]
-_02253C1C:
- mov r0, #2
- strb r0, [r4, #1]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r1, [r5, r0]
- ldrb r0, [r6, #1]
- lsl r0, r0, #8
- orr r0, r1
- str r0, [r4, #4]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02253C30: .word 0x00000195
-_02253C34: .word 0x000003DE
-_02253C38: .word 0x000003DD
-_02253C3C: .word 0x000003D9
-_02253C40: .word 0x000003DA
-_02253C44: .word 0x000003DB
-
- thumb_func_start MOD11_02253C48
-MOD11_02253C48: ; 0x02253C48
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- ldr r1, _02253D08 ; =0x00000195
- add r6, r2, #0
- ldrb r2, [r5, r1]
- mov r1, #1
- add r7, r0, #0
- add r4, r3, #0
- tst r1, r2
- beq _02253CA4
- bl MOD11_0222FF74
- mov r1, #4
- tst r0, r1
- bne _02253C88
- mov r0, #0xf3
- lsl r0, r0, #2
- strh r0, [r4, #2]
- mov r0, #0x32
- strb r0, [r4, #1]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r1, [r5, r0]
- str r1, [r4, #4]
- ldrb r1, [r5, r0]
- str r1, [r4, #8]
- ldrb r1, [r5, r0]
- ldrb r0, [r6, #1]
- lsl r0, r0, #8
- orr r0, r1
- str r0, [r4, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_02253C88:
- ldr r0, _02253D0C ; =0x000003CE
- strh r0, [r4, #2]
- mov r0, #0x1b
- strb r0, [r4, #1]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r1, [r5, r0]
- str r1, [r4, #4]
- ldrb r1, [r5, r0]
- ldrb r0, [r6, #1]
- lsl r0, r0, #8
- orr r0, r1
- str r0, [r4, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_02253CA4:
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- bne _02253CF0
- add r0, r7, #0
- bl MOD11_0222FF74
- mov r1, #4
- tst r0, r1
- bne _02253CF0
- ldrh r1, [r6, #2]
- cmp r1, #0x64
- bhs _02253CC6
- ldr r0, _02253D10 ; =0x000003D6
- strh r0, [r4, #2]
- b _02253CF4
-_02253CC6:
- ldr r0, _02253D14 ; =0x00000145
- cmp r1, r0
- bhs _02253CD2
- ldr r0, _02253D18 ; =0x000003D7
- strh r0, [r4, #2]
- b _02253CF4
-_02253CD2:
- add r0, #0xe1
- cmp r1, r0
- bhs _02253CDE
- ldr r0, _02253D1C ; =0x000003D5
- strh r0, [r4, #2]
- b _02253CF4
-_02253CDE:
- ldr r0, _02253D20 ; =0x00000307
- cmp r1, r0
- bhs _02253CEA
- add r0, #0xcd
- strh r0, [r4, #2]
- b _02253CF4
-_02253CEA:
- add r0, #0xcc
- strh r0, [r4, #2]
- b _02253CF4
-_02253CF0:
- ldr r0, _02253D24 ; =0x000003D3
- strh r0, [r4, #2]
-_02253CF4:
- mov r0, #2
- strb r0, [r4, #1]
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r1, [r5, r0]
- ldrb r0, [r6, #1]
- lsl r0, r0, #8
- orr r0, r1
- str r0, [r4, #4]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02253D08: .word 0x00000195
-_02253D0C: .word 0x000003CE
-_02253D10: .word 0x000003D6
-_02253D14: .word 0x00000145
-_02253D18: .word 0x000003D7
-_02253D1C: .word 0x000003D5
-_02253D20: .word 0x00000307
-_02253D24: .word 0x000003D3
-
- thumb_func_start MOD11_02253D28
-MOD11_02253D28: ; 0x02253D28
- push {r3, r4, r5, r6, r7, lr}
- add r7, r0, #0
- add r5, r2, #0
- bl MOD11_0222FF74
- add r4, r0, #0
- mov r0, #2
- tst r0, r4
- beq _02253D4E
- add r0, r7, #0
- mov r1, #3
- bl MOD11_0223022C
- add r6, r0, #0
- add r0, r7, #0
- mov r1, #5
- bl MOD11_0223022C
- b _02253D58
-_02253D4E:
- add r0, r7, #0
- mov r1, #1
- bl MOD11_0223022C
- add r6, r0, #0
-_02253D58:
- mov r1, #4
- tst r1, r4
- beq _02253D98
- mov r1, #0x80
- tst r1, r4
- beq _02253D78
- mov r1, #0x3e
- lsl r1, r1, #4
- strh r1, [r5, #2]
- mov r1, #0x3b
- strb r1, [r5, #1]
- str r6, [r5, #4]
- str r6, [r5, #8]
- str r0, [r5, #0xc]
- str r0, [r5, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
-_02253D78:
- mov r1, #8
- add r2, r4, #0
- tst r2, r1
- beq _02253D8E
- ldr r1, _02253DC8 ; =0x000003CB
- strh r1, [r5, #2]
- mov r1, #0x1a
- strb r1, [r5, #1]
- str r6, [r5, #4]
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_02253D8E:
- ldr r0, _02253DCC ; =0x000003CA
- strh r0, [r5, #2]
- strb r1, [r5, #1]
- str r6, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_02253D98:
- mov r1, #0x10
- tst r1, r4
- bne _02253DA4
- mov r1, #8
- tst r1, r4
- beq _02253DB8
-_02253DA4:
- mov r1, #0x3e
- lsl r1, r1, #4
- strh r1, [r5, #2]
- mov r1, #0x3b
- strb r1, [r5, #1]
- str r6, [r5, #4]
- str r6, [r5, #8]
- str r0, [r5, #0xc]
- str r0, [r5, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
-_02253DB8:
- ldr r0, _02253DD0 ; =0x000003C9
- strh r0, [r5, #2]
- mov r0, #0x1e
- strb r0, [r5, #1]
- str r6, [r5, #4]
- str r6, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02253DC8: .word 0x000003CB
-_02253DCC: .word 0x000003CA
-_02253DD0: .word 0x000003C9
-
- thumb_func_start MOD11_02253DD4
-MOD11_02253DD4: ; 0x02253DD4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x18
- str r1, [sp, #4]
- str r0, [sp]
- add r6, r2, #0
- add r4, r3, #0
- bl MOD11_0222FF74
- str r0, [sp, #0x14]
- ldr r2, _022540E4 ; =0x00000195
- ldr r0, [sp, #4]
- ldrb r1, [r0, r2]
- mov r0, #1
- tst r0, r1
- bne _02253DF4
- b _02253F3C
-_02253DF4:
- ldr r0, [sp, #0x14]
- mov r1, #2
- and r0, r1
- str r0, [sp, #0x10]
- beq _02253E10
- ldr r0, [sp, #4]
- sub r1, r2, #1
- ldrb r5, [r0, r1]
- ldr r0, [sp]
- add r1, r5, #0
- bl MOD11_022302BC
- add r7, r0, #0
- b _02253E18
-_02253E10:
- ldr r0, [sp, #4]
- sub r1, r2, #1
- ldrb r5, [r0, r1]
- add r7, r5, #0
-_02253E18:
- ldr r0, [sp, #0x14]
- mov r1, #4
- tst r0, r1
- beq _02253EBE
- ldr r0, [sp, #0x14]
- mov r1, #0x80
- tst r0, r1
- beq _02253E50
- ldr r0, _022540E8 ; =0x000003DF
- add sp, #0x18
- strh r0, [r4, #2]
- mov r0, #0x3c
- strb r0, [r4, #1]
- str r5, [r4, #4]
- str r5, [r4, #8]
- add r0, r6, r5
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r5
- str r0, [r4, #0xc]
- str r7, [r4, #0x10]
- str r7, [r4, #0x14]
- add r0, r6, r7
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r7
- str r0, [r4, #0x18]
- pop {r3, r4, r5, r6, r7, pc}
-_02253E50:
- ldr r0, [sp, #0x14]
- mov r1, #8
- tst r0, r1
- beq _02253E7E
- mov r0, #0x3d
- lsl r0, r0, #4
- strh r0, [r4, #2]
- mov r0, #0x38
- strb r0, [r4, #1]
- str r5, [r4, #4]
- add r0, r6, r5
- ldrb r0, [r0, #4]
- add sp, #0x18
- lsl r0, r0, #8
- orr r0, r5
- str r0, [r4, #8]
- str r7, [r4, #0xc]
- add r0, r6, r7
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r7
- str r0, [r4, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
-_02253E7E:
- ldr r0, [sp, #0x10]
- cmp r0, #0
- beq _02253EA6
- ldr r0, _022540EC ; =0x000003CF
- add sp, #0x18
- strh r0, [r4, #2]
- mov r0, #0x31
- strb r0, [r4, #1]
- str r5, [r4, #4]
- add r0, r6, r5
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r5
- str r0, [r4, #8]
- add r0, r6, r7
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r7
- str r0, [r4, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_02253EA6:
- ldr r0, _022540F0 ; =0x000003CE
- add sp, #0x18
- strh r0, [r4, #2]
- mov r0, #0x1b
- strb r0, [r4, #1]
- str r5, [r4, #4]
- add r0, r6, r5
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r5
- str r0, [r4, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_02253EBE:
- ldr r0, [sp, #0x14]
- mov r1, #0x10
- tst r0, r1
- bne _02253ECE
- ldr r0, [sp, #0x14]
- mov r1, #8
- tst r0, r1
- beq _02253EF6
-_02253ECE:
- ldr r0, _022540E8 ; =0x000003DF
- add sp, #0x18
- strh r0, [r4, #2]
- mov r0, #0x3c
- strb r0, [r4, #1]
- str r5, [r4, #4]
- str r5, [r4, #8]
- add r0, r6, r5
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r5
- str r0, [r4, #0xc]
- str r7, [r4, #0x10]
- str r7, [r4, #0x14]
- add r0, r6, r7
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r7
- str r0, [r4, #0x18]
- pop {r3, r4, r5, r6, r7, pc}
-_02253EF6:
- ldr r0, [sp, #0x10]
- cmp r0, #0
- beq _02253F20
- ldr r0, _022540F4 ; =0x000003CD
- add sp, #0x18
- strh r0, [r4, #2]
- mov r0, #0x39
- strb r0, [r4, #1]
- str r5, [r4, #4]
- str r5, [r4, #8]
- add r0, r6, r5
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r5
- str r0, [r4, #0xc]
- add r0, r6, r7
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r7
- str r0, [r4, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
-_02253F20:
- mov r0, #0xf3
- lsl r0, r0, #2
- strh r0, [r4, #2]
- mov r0, #0x32
- strb r0, [r4, #1]
- str r5, [r4, #4]
- str r5, [r4, #8]
- add r0, r6, r5
- ldrb r0, [r0, #4]
- add sp, #0x18
- lsl r0, r0, #8
- orr r0, r5
- str r0, [r4, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_02253F3C:
- ldr r0, [sp, #0x14]
- mov r1, #4
- and r0, r1
- str r0, [sp, #0xc]
- beq _02253FCC
- bl FUN_02031190
- lsl r0, r0, #0x18
- lsr r2, r0, #0x18
- ldr r0, [sp, #0x14]
- mov r1, #8
- and r0, r1
- str r0, [sp, #8]
- beq _02253FA2
- add r0, r2, #0
- bl FUN_020313CC
- cmp r0, #3
- bhi _02254012
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02253F6E: ; jump table
- .short _02253F76 - _02253F6E - 2 ; case 0
- .short _02253F8C - _02253F6E - 2 ; case 1
- .short _02253F8C - _02253F6E - 2 ; case 2
- .short _02253F76 - _02253F6E - 2 ; case 3
-_02253F76:
- ldr r0, [sp]
- mov r1, #4
- bl MOD11_0223022C
- add r5, r0, #0
- ldr r0, [sp]
- mov r1, #2
- bl MOD11_0223022C
- add r7, r0, #0
- b _02254012
-_02253F8C:
- ldr r0, [sp]
- mov r1, #2
- bl MOD11_0223022C
- add r5, r0, #0
- ldr r0, [sp]
- mov r1, #4
- bl MOD11_0223022C
- add r7, r0, #0
- b _02254012
-_02253FA2:
- ldr r0, [sp, #0x14]
- mov r1, #2
- tst r0, r1
- beq _02253FBE
- ldr r0, [sp]
- bl MOD11_0223022C
- add r5, r0, #0
- ldr r0, [sp]
- mov r1, #4
- bl MOD11_0223022C
- add r7, r0, #0
- b _02254012
-_02253FBE:
- ldr r0, [sp]
- mov r1, #0
- bl MOD11_0223022C
- add r5, r0, #0
- add r7, r5, #0
- b _02254012
-_02253FCC:
- ldr r0, [sp, #0x14]
- mov r1, #8
- and r0, r1
- str r0, [sp, #8]
- beq _02253FEE
- ldr r1, [sp, #4]
- sub r2, r2, #1
- ldrb r1, [r1, r2]
- ldr r0, [sp]
- bl MOD11_022302BC
- add r5, r0, #0
- mov r1, #0x65
- ldr r0, [sp, #4]
- lsl r1, r1, #2
- ldrb r7, [r0, r1]
- b _02254012
-_02253FEE:
- ldr r0, [sp, #0x14]
- mov r1, #2
- tst r0, r1
- beq _0225400A
- ldr r0, [sp]
- bl MOD11_0223022C
- add r5, r0, #0
- ldr r0, [sp]
- mov r1, #4
- bl MOD11_0223022C
- add r7, r0, #0
- b _02254012
-_0225400A:
- ldr r0, [sp, #4]
- sub r1, r2, #1
- ldrb r5, [r0, r1]
- add r7, r5, #0
-_02254012:
- ldr r0, [sp, #0xc]
- cmp r0, #0
- beq _0225407C
- ldr r0, [sp, #8]
- cmp r0, #0
- beq _02254040
- ldr r0, _022540F8 ; =0x000003D1
- add sp, #0x18
- strh r0, [r4, #2]
- mov r0, #0x31
- strb r0, [r4, #1]
- str r5, [r4, #4]
- add r0, r6, r5
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r5
- str r0, [r4, #8]
- add r0, r6, r7
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r7
- str r0, [r4, #0xc]
- pop {r3, r4, r5, r6, r7, pc}
-_02254040:
- ldr r0, [sp, #0x14]
- mov r1, #2
- tst r0, r1
- beq _02254068
- ldr r0, _022540FC ; =0x000003D2
- add sp, #0x18
- strh r0, [r4, #2]
- mov r0, #9
- strb r0, [r4, #1]
- add r0, r6, r5
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r5
- str r0, [r4, #4]
- add r0, r6, r7
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r7
- str r0, [r4, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_02254068:
- ldr r0, _02254100 ; =0x000003D3
- add sp, #0x18
- strh r0, [r4, #2]
- strb r1, [r4, #1]
- add r0, r6, r5
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r5
- str r0, [r4, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_0225407C:
- ldr r0, [sp, #8]
- cmp r0, #0
- beq _022540A6
- ldr r0, _02254104 ; =0x000003E1
- add sp, #0x18
- strh r0, [r4, #2]
- mov r0, #0x39
- strb r0, [r4, #1]
- str r5, [r4, #4]
- str r5, [r4, #8]
- add r0, r6, r5
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r5
- str r0, [r4, #0xc]
- add r0, r6, r7
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r7
- str r0, [r4, #0x10]
- pop {r3, r4, r5, r6, r7, pc}
-_022540A6:
- ldr r0, [sp, #0x14]
- mov r1, #2
- tst r0, r1
- beq _022540CE
- ldr r0, _022540FC ; =0x000003D2
- add sp, #0x18
- strh r0, [r4, #2]
- mov r0, #9
- strb r0, [r4, #1]
- add r0, r6, r5
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r5
- str r0, [r4, #4]
- add r0, r6, r7
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r7
- str r0, [r4, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_022540CE:
- ldr r0, _02254100 ; =0x000003D3
- strh r0, [r4, #2]
- strb r1, [r4, #1]
- add r0, r6, r5
- ldrb r0, [r0, #4]
- lsl r0, r0, #8
- orr r0, r5
- str r0, [r4, #4]
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022540E4: .word 0x00000195
-_022540E8: .word 0x000003DF
-_022540EC: .word 0x000003CF
-_022540F0: .word 0x000003CE
-_022540F4: .word 0x000003CD
-_022540F8: .word 0x000003D1
-_022540FC: .word 0x000003D2
-_02254100: .word 0x000003D3
-_02254104: .word 0x000003E1
-
- thumb_func_start MOD11_02254108
-MOD11_02254108: ; 0x02254108
- push {r3, r4, r5, r6, r7, lr}
- str r0, [sp]
- add r5, r2, #0
- bl MOD11_0222FF74
- add r6, r0, #0
- ldr r0, [sp]
- bl MOD11_0223145C
- add r7, r0, #0
- mov r0, #2
- tst r0, r6
- beq _02254136
- ldr r0, [sp]
- mov r1, #3
- bl MOD11_0223022C
- add r4, r0, #0
- ldr r0, [sp]
- mov r1, #5
- bl MOD11_0223022C
- b _02254140
-_02254136:
- ldr r0, [sp]
- mov r1, #1
- bl MOD11_0223022C
- add r4, r0, #0
-_02254140:
- cmp r7, #1
- beq _0225414E
- cmp r7, #2
- beq _0225416E
- cmp r7, #3
- beq _02254190
- pop {r3, r4, r5, r6, r7, pc}
-_0225414E:
- mov r1, #8
- add r2, r6, #0
- tst r2, r1
- beq _02254164
- ldr r1, _022541B0 ; =0x00000312
- strh r1, [r5, #2]
- mov r1, #0x1a
- strb r1, [r5, #1]
- str r4, [r5, #4]
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_02254164:
- ldr r0, _022541B4 ; =0x00000311
- strh r0, [r5, #2]
- strb r1, [r5, #1]
- str r4, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_0225416E:
- mov r1, #8
- add r2, r6, #0
- tst r2, r1
- beq _02254186
- mov r1, #0xc5
- lsl r1, r1, #2
- strh r1, [r5, #2]
- mov r1, #0x1a
- strb r1, [r5, #1]
- str r4, [r5, #4]
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_02254186:
- ldr r0, _022541B8 ; =0x00000313
- strh r0, [r5, #2]
- strb r1, [r5, #1]
- str r4, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_02254190:
- mov r1, #8
- add r2, r6, #0
- tst r2, r1
- beq _022541A6
- ldr r1, _022541BC ; =0x00000316
- strh r1, [r5, #2]
- mov r1, #0x1a
- strb r1, [r5, #1]
- str r4, [r5, #4]
- str r0, [r5, #8]
- pop {r3, r4, r5, r6, r7, pc}
-_022541A6:
- ldr r0, _022541C0 ; =0x00000315
- strh r0, [r5, #2]
- strb r1, [r5, #1]
- str r4, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022541B0: .word 0x00000312
-_022541B4: .word 0x00000311
-_022541B8: .word 0x00000313
-_022541BC: .word 0x00000316
-_022541C0: .word 0x00000315
-
- thumb_func_start MOD11_022541C4
-MOD11_022541C4: ; 0x022541C4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- mov r6, #0
- add r5, r0, #0
- str r2, [sp]
- add r7, r3, #0
- str r6, [sp, #4]
- add r4, r6, #0
- bl MOD11_0222FF84
- cmp r0, #0
- ble _0225420C
-_022541DC:
- add r0, r4, #0
- bl MaskOfFlagNo
- ldr r1, [sp]
- ldrb r1, [r1, #1]
- tst r0, r1
- beq _02254200
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02230270
- cmp r0, #0
- beq _022541FE
- ldr r0, [sp, #4]
- add r0, r0, #1
- str r0, [sp, #4]
- b _02254200
-_022541FE:
- add r6, r6, #1
-_02254200:
- add r0, r5, #0
- add r4, r4, #1
- bl MOD11_0222FF84
- cmp r4, r0
- blt _022541DC
-_0225420C:
- cmp r6, #0
- beq _0225422A
- ldr r0, [sp, #4]
- cmp r0, #0
- beq _0225422A
- ldr r0, _022542AC ; =0x0000030D
- mov r1, #0xc3
- strh r0, [r7, #2]
- mov r0, #0
- strb r0, [r7, #1]
- add r0, r5, #0
- bl MOD11_02231468
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-_0225422A:
- cmp r6, #0
- beq _02254242
- ldr r0, _022542AC ; =0x0000030D
- mov r1, #0xc2
- strh r0, [r7, #2]
- mov r0, #0
- strb r0, [r7, #1]
- add r0, r5, #0
- bl MOD11_02231468
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-_02254242:
- add r0, r5, #0
- bl MOD11_0222FF74
- mov r1, #8
- tst r0, r1
- beq _0225426E
- mov r0, #0xc6
- lsl r0, r0, #2
- strh r0, [r7, #2]
- mov r0, #0x1a
- strb r0, [r7, #1]
- add r0, r5, #0
- mov r1, #3
- bl MOD11_0223022C
- str r0, [r7, #4]
- add r0, r5, #0
- mov r1, #5
- bl MOD11_0223022C
- str r0, [r7, #8]
- b _0225429E
-_0225426E:
- add r0, r5, #0
- bl MOD11_0222FF74
- mov r1, #2
- tst r0, r1
- ldr r0, _022542B0 ; =0x00000317
- beq _0225428E
- strh r0, [r7, #2]
- mov r0, #8
- strb r0, [r7, #1]
- add r0, r5, #0
- mov r1, #3
- bl MOD11_0223022C
- str r0, [r7, #4]
- b _0225429E
-_0225428E:
- strh r0, [r7, #2]
- mov r0, #8
- strb r0, [r7, #1]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_0223022C
- str r0, [r7, #4]
-_0225429E:
- add r0, r5, #0
- mov r1, #0xc1
- bl MOD11_02231468
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022542AC: .word 0x0000030D
-_022542B0: .word 0x00000317
-
- thumb_func_start MOD11_022542B4
-MOD11_022542B4: ; 0x022542B4
- push {r4, r5, r6, lr}
- add r6, r1, #0
- mov r1, #0xef
- add r4, r2, #0
- lsl r1, r1, #2
- strh r1, [r4, #2]
- mov r1, #8
- add r5, r0, #0
- strb r1, [r4, #1]
- bl MOD11_0222FF74
- mov r1, #4
- tst r0, r1
- beq _022542F4
- bl FUN_02031190
- bl FUN_020313CC
- cmp r0, #0
- beq _022542E8
- add r0, r5, #0
- mov r1, #4
- bl MOD11_0223022C
- str r0, [r4, #4]
- b _022542FC
-_022542E8:
- add r0, r5, #0
- mov r1, #2
- bl MOD11_0223022C
- str r0, [r4, #4]
- b _022542FC
-_022542F4:
- mov r0, #0x65
- lsl r0, r0, #2
- ldrb r0, [r6, r0]
- str r0, [r4, #4]
-_022542FC:
- add r0, r5, #0
- mov r1, #0xc2
- bl MOD11_02231468
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02254308
-MOD11_02254308: ; 0x02254308
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x58
- str r0, [sp, #0x18]
- str r1, [sp, #0x1c]
- add r5, r2, #0
- add r4, r3, #0
- bl MOD11_02230078
- add r7, r0, #0
- ldr r0, [sp, #0x18]
- bl MOD11_02230080
- add r6, r0, #0
- ldr r0, [sp, #0x18]
- bl MOD11_022300CC
- str r0, [sp, #0x20]
- mov r0, #1
- str r0, [sp]
- str r0, [sp, #4]
- ldr r0, _022543EC ; =0x00004E2F
- add r3, r5, #0
- add r0, r4, r0
- str r0, [sp, #8]
- add r0, r7, #0
- add r1, r6, #0
- mov r2, #0x1b
- add r3, #0xc3
- bl FUN_0200C00C
- mov r0, #0x1b
- str r0, [sp]
- add r0, r5, #0
- add r0, #0x2f
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- mov r0, #1
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- ldr r0, _022543F0 ; =0x00004E2A
- mov r1, #2
- add r0, r4, r0
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x20]
- add r2, r7, #0
- add r3, r6, #0
- bl FUN_0200C0DC
- mov r0, #1
- str r0, [sp]
- ldr r0, _022543F4 ; =0x00004E27
- add r3, r5, #0
- add r0, r4, r0
- str r0, [sp, #4]
- add r0, r7, #0
- add r1, r6, #0
- mov r2, #0x1b
- add r3, #0xcb
- bl FUN_0200C124
- mov r0, #1
- str r0, [sp]
- ldr r0, _022543F4 ; =0x00004E27
- add r5, #0xd3
- add r0, r4, r0
- str r0, [sp, #4]
- add r0, r7, #0
- add r1, r6, #0
- mov r2, #0x1b
- add r3, r5, #0
- bl FUN_0200C13C
- ldr r5, _022543F8 ; =0x0225E89C
- add r3, sp, #0x24
- mov r2, #6
-_022543A0:
- ldmia r5!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _022543A0
- ldr r0, [r5]
- ldr r1, _022543EC ; =0x00004E2F
- str r0, [r3]
- add r0, r4, r1
- str r0, [sp, #0x38]
- sub r0, r1, #5
- add r0, r4, r0
- sub r1, #8
- str r0, [sp, #0x3c]
- add r0, r4, r1
- str r0, [sp, #0x40]
- str r0, [sp, #0x44]
- add r0, r7, #0
- add r1, r6, #0
- add r2, sp, #0x24
- bl FUN_0200C154
- ldr r1, [sp, #0x1c]
- mov r2, #6
- add r3, r1, #0
- mul r3, r2
- ldr r1, _022543FC ; =0x0222D550
- ldr r2, _02254400 ; =0x0222D552
- ldrsh r1, [r1, r3]
- ldrsh r2, [r2, r3]
- add r4, r0, #0
- bl FUN_0200C714
- add r0, r4, #0
- bl FUN_0200C5A8
- add r0, r4, #0
- add sp, #0x58
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022543EC: .word 0x00004E2F
-_022543F0: .word 0x00004E2A
-_022543F4: .word 0x00004E27
-_022543F8: .word 0x0225E89C
-_022543FC: .word 0x0222D550
-_02254400: .word 0x0222D552
-
- thumb_func_start MOD11_02254404
-MOD11_02254404: ; 0x02254404
- push {r4, r5, r6, r7, lr}
- sub sp, #0xac
- str r0, [sp]
- ldr r0, [r3, #0x4c]
- str r1, [sp, #4]
- str r2, [sp, #8]
- str r3, [sp, #0xc]
- cmp r0, #0
- bne _02254422
- mov r0, #8
- str r0, [sp, #0x84]
- add r0, r3, #0
- ldrh r0, [r0, #2]
- str r0, [sp, #0x18]
- b _0225442C
-_02254422:
- mov r0, #0x3f
- str r0, [sp, #0x84]
- add r0, r3, #0
- ldr r0, [r0, #0x50]
- str r0, [sp, #0x18]
-_0225442C:
- ldr r0, [sp]
- bl MOD11_0222FF68
- str r0, [sp, #0x20]
- ldr r0, [sp]
- bl MOD11_022300CC
- str r0, [sp, #0x24]
- ldr r0, [sp]
- bl MOD11_02230078
- add r5, sp, #0x1c
- str r0, [sp, #0x1c]
- ldr r0, [sp, #0xc]
- mov r4, #0
- str r0, [sp, #0x14]
- str r5, [sp, #0x10]
- add r6, r5, #0
- add r7, r0, #0
-_02254452:
- ldr r0, [sp]
- add r1, r4, #0
- bl MOD11_022312D0
- str r0, [r5, #0xc]
- ldr r0, [sp, #0x14]
- ldrh r1, [r0, #0x18]
- ldr r0, [sp, #0x10]
- strh r1, [r0, #0x34]
- ldr r0, [sp, #0xc]
- add r0, r0, r4
- add r0, #0x20
- ldrb r1, [r0]
- add r0, r6, #0
- add r0, #0x3c
- strb r1, [r0]
- ldr r0, [sp, #0xc]
- add r0, r0, r4
- add r0, #0x24
- ldrb r1, [r0]
- add r0, r6, #0
- add r0, #0x40
- strb r1, [r0]
- ldr r0, [sp, #0xc]
- add r0, r0, r4
- add r0, #0x28
- ldrb r1, [r0]
- add r0, r6, #0
- add r0, #0x44
- strb r1, [r0]
- ldr r0, [r7, #0x2c]
- add r4, r4, #1
- str r0, [r5, #0x48]
- ldr r0, [r7, #0x3c]
- add r6, r6, #1
- str r0, [r5, #0x58]
- ldr r0, [sp, #0x14]
- add r5, r5, #4
- add r0, r0, #2
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x10]
- add r7, r7, #4
- add r0, r0, #2
- str r0, [sp, #0x10]
- cmp r4, #4
- blt _02254452
- ldr r0, [sp]
- add r1, sp, #0x38
- bl MOD11_02231504
- ldr r0, [sp]
- add r1, sp, #0x3c
- bl MOD11_02231534
- ldr r0, [sp]
- bl MOD11_0222FF74
- mov r2, #0x65
- str r0, [sp, #0x4c]
- ldr r1, [sp, #4]
- lsl r2, r2, #2
- ldrb r1, [r1, r2]
- ldr r0, [sp]
- bl MOD11_02230E88
- str r0, [sp, #0xa0]
- ldr r0, [sp]
- bl MOD11_02231228
- str r0, [sp, #0xa4]
- ldr r0, [sp]
- bl MOD11_02231230
- str r0, [sp, #0xa8]
- mov r0, #7
- str r0, [sp, #0x88]
- ldr r0, [sp]
- bl MOD11_022302A8
- add r0, r0, #3
- str r0, [sp, #0x8c]
- ldr r0, [sp]
- bl MOD11_02230C68
- add r4, r0, #0
- ldr r0, [sp]
- bl MOD11_022302A8
- lsl r1, r0, #1
- add r0, r0, r1
- add r0, #0x9e
- add r0, r4, r0
- str r0, [sp, #0x90]
- mov r0, #2
- str r0, [sp, #0x94]
- mov r0, #0
- ldr r2, [sp, #0x18]
- str r0, [sp, #0x98]
- mov r0, #8
- str r0, [sp, #0x9c]
- lsl r2, r2, #0x10
- ldr r0, [sp, #8]
- ldr r1, [sp, #0xc]
- lsr r2, r2, #0x10
- add r3, sp, #0x1c
- bl MOD08_02212048
- add sp, #0xac
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0225452C
-MOD11_0225452C: ; 0x0225452C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r6, r2, #0
- add r7, r1, #0
- str r3, [r6]
- str r0, [sp]
- str r3, [r6, #4]
- mov r4, #0
- add r5, r6, #0
- str r7, [sp, #0xc]
- str r6, [sp, #8]
- str r7, [sp, #4]
-_02254544:
- ldr r0, [sp]
- add r1, r4, #0
- bl MOD11_022312D0
- str r0, [r5, #8]
- ldr r0, [sp, #0xc]
- ldrh r1, [r0, #0x18]
- ldr r0, [sp, #8]
- strh r1, [r0, #0x28]
- add r0, r7, r4
- add r0, #0x20
- ldrb r1, [r0]
- add r0, r6, r4
- add r0, #0x30
- strb r1, [r0]
- add r0, r7, r4
- add r0, #0x24
- ldrb r1, [r0]
- add r0, r6, r4
- add r0, #0x34
- strb r1, [r0]
- add r0, r7, r4
- add r0, #0x28
- ldrb r1, [r0]
- add r0, r6, r4
- add r0, #0x38
- strb r1, [r0]
- ldr r0, [sp, #4]
- add r4, r4, #1
- ldr r0, [r0, #0x2c]
- str r0, [r5, #0x3c]
- ldr r0, [sp, #0xc]
- add r5, r5, #4
- add r0, r0, #2
- str r0, [sp, #0xc]
- ldr r0, [sp, #8]
- add r0, r0, #2
- str r0, [sp, #8]
- ldr r0, [sp, #4]
- add r0, r0, #4
- str r0, [sp, #4]
- cmp r4, #4
- blt _02254544
- add r1, r6, #0
- ldr r0, [sp]
- add r1, #0x4c
- bl MOD11_02231504
- add r6, #0x18
- ldr r0, [sp]
- add r1, r6, #0
- bl MOD11_02231534
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022545B4
-MOD11_022545B4: ; 0x022545B4
- push {r4, r5, r6, lr}
- add r4, r0, #0
- add r5, r1, #0
- cmp r2, #0
- bne _022545F2
- add r0, sp, #0
- ldrh r6, [r0, #0x10]
- mov r1, #9
- add r0, r6, #0
- bl FUN_0206AB18
- mov r1, #0x40
- tst r0, r1
- bne _022545D4
- mov r0, #1
- b _022545D6
-_022545D4:
- mov r0, #0
-_022545D6:
- strb r0, [r4]
- add r0, r6, #0
- mov r1, #9
- bl FUN_0206AB18
- mov r1, #0x80
- tst r0, r1
- beq _022545EC
- mov r0, #1
- strb r0, [r5]
- pop {r4, r5, r6, pc}
-_022545EC:
- mov r0, #0
- strb r0, [r5]
- pop {r4, r5, r6, pc}
-_022545F2:
- sub r3, #0x12
- cmp r3, #0x15
- bhi _02254642
- add r0, r3, r3
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02254604: ; jump table
- .short _02254630 - _02254604 - 2 ; case 0
- .short _02254630 - _02254604 - 2 ; case 1
- .short _02254630 - _02254604 - 2 ; case 2
- .short _02254630 - _02254604 - 2 ; case 3
- .short _02254630 - _02254604 - 2 ; case 4
- .short _02254642 - _02254604 - 2 ; case 5
- .short _02254642 - _02254604 - 2 ; case 6
- .short _02254642 - _02254604 - 2 ; case 7
- .short _02254642 - _02254604 - 2 ; case 8
- .short _02254642 - _02254604 - 2 ; case 9
- .short _02254642 - _02254604 - 2 ; case 10
- .short _02254642 - _02254604 - 2 ; case 11
- .short _02254642 - _02254604 - 2 ; case 12
- .short _02254630 - _02254604 - 2 ; case 13
- .short _02254630 - _02254604 - 2 ; case 14
- .short _02254642 - _02254604 - 2 ; case 15
- .short _02254630 - _02254604 - 2 ; case 16
- .short _02254630 - _02254604 - 2 ; case 17
- .short _0225463A - _02254604 - 2 ; case 18
- .short _02254630 - _02254604 - 2 ; case 19
- .short _0225463A - _02254604 - 2 ; case 20
- .short _02254630 - _02254604 - 2 ; case 21
-_02254630:
- mov r0, #1
- strb r0, [r4]
- mov r0, #0
- strb r0, [r5]
- pop {r4, r5, r6, pc}
-_0225463A:
- mov r0, #1
- strb r0, [r4]
- strb r0, [r5]
- pop {r4, r5, r6, pc}
-_02254642:
- mov r0, #0
- strb r0, [r4]
- strb r0, [r5]
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225464C
-MOD11_0225464C: ; 0x0225464C
- push {r4, lr}
- add r4, r0, #0
- mov r0, #0x66
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- cmp r0, #0
- bne _02254680
- add r0, r1, #0
- bl MOD11_0222FF74
- mov r1, #0x22
- lsl r1, r1, #4
- tst r0, r1
- bne _02254680
- mov r1, #0xb4
- add r0, r1, #0
- add r0, #0xe8
- strh r1, [r4, r0]
- ldr r0, _02254684 ; =MOD11_022546B4
- ldr r2, _02254688 ; =0x000003F2
- add r1, r4, #0
- bl FUN_0200CA44
- mov r1, #0x66
- lsl r1, r1, #2
- str r0, [r4, r1]
-_02254680:
- pop {r4, pc}
- nop
-_02254684: .word MOD11_022546B4
-_02254688: .word 0x000003F2
-
- thumb_func_start MOD11_0225468C
-MOD11_0225468C: ; 0x0225468C
- push {r4, lr}
- add r4, r0, #0
- mov r0, #0x66
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- cmp r0, #0
- beq _022546B2
- bl FUN_0200CAB4
- mov r0, #0x66
- mov r2, #0
- lsl r0, r0, #2
- str r2, [r4, r0]
- add r0, r0, #4
- strh r2, [r4, r0]
- ldr r0, [r4, #0x20]
- mov r1, #4
- bl FUN_02007558
-_022546B2:
- pop {r4, pc}
-
- thumb_func_start MOD11_022546B4
-MOD11_022546B4: ; 0x022546B4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- mov r1, #0x67
- lsl r1, r1, #2
- ldrh r0, [r4, r1]
- add r0, #0x14
- strh r0, [r4, r1]
- add r0, r1, #0
- ldrh r2, [r4, r1]
- sub r0, #0x34
- cmp r2, r0
- blo _022546D4
- add r0, r1, #0
- sub r0, #0x34
- sub r0, r2, r0
- strh r0, [r4, r1]
-_022546D4:
- mov r0, #0x67
- lsl r0, r0, #2
- ldrh r0, [r4, r0]
- bl FUN_0201B93C
- mov r2, #6
- asr r1, r0, #0x1f
- lsl r2, r2, #0xa
- mov r3, #0
- bl _ll_mul
- add r2, r1, #0
- mov r1, #4
- add r5, r0, #0
- ldr r0, [r4, #0x20]
- mov r4, #0
- lsl r3, r1, #9
- add r3, r5, r3
- adc r2, r4
- lsl r2, r2, #0x14
- lsr r3, r3, #0xc
- orr r3, r2
- asr r2, r3, #0xb
- lsr r2, r2, #0x14
- add r2, r3, r2
- asr r2, r2, #0xc
- bl FUN_02007558
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02254710
-MOD11_02254710: ; 0x02254710
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r7, r0, #0
- str r1, [sp]
- str r2, [sp, #4]
- add r6, r3, #0
- bl MOD11_022300DC
- add r4, r0, #0
- add r0, r7, #0
- bl MOD11_02230118
- add r5, r0, #0
- add r0, r7, #0
- bl MOD11_02230124
- add r7, r0, #0
- add r0, sp, #0x10
- ldrh r2, [r5]
- ldrb r3, [r0, #0x10]
- add r0, r2, #5
- add r1, r0, r3
- mov r0, #1
- lsl r0, r0, #0xc
- cmp r1, r0
- bls _0225474A
- strh r2, [r7]
- mov r0, #0
- strh r0, [r5]
-_0225474A:
- ldr r1, [sp]
- add r0, sp, #8
- strb r1, [r0]
- ldr r1, [sp, #4]
- strb r1, [r0, #1]
- add r1, sp, #0x10
- ldrb r1, [r1, #0x10]
- strh r1, [r0, #2]
- add r1, sp, #8
- mov r0, #0
-_0225475E:
- ldrb r7, [r1, r0]
- ldrh r2, [r5]
- add r0, r0, #1
- strb r7, [r4, r2]
- ldrh r2, [r5]
- add r2, r2, #1
- strh r2, [r5]
- cmp r0, #4
- blo _0225475E
- mov r0, #0
- cmp r3, #0
- ble _02254788
-_02254776:
- ldrb r2, [r6, r0]
- ldrh r1, [r5]
- add r0, r0, #1
- strb r2, [r4, r1]
- ldrh r1, [r5]
- add r1, r1, #1
- strh r1, [r5]
- cmp r0, r3
- blt _02254776
-_02254788:
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0225478C
-MOD11_0225478C: ; 0x0225478C
- push {r3, r4, r5, r6, r7, lr}
- add r3, r1, #0
- ldrb r6, [r3, #3]
- ldrb r1, [r3]
- ldrb r7, [r3, #2]
- lsl r6, r6, #8
- add r5, r0, #0
- mov r2, #0
- orr r6, r7
- ldrb r4, [r3, #1]
- cmp r1, #0
- bne _022547D2
- ldr r0, [r5, #0x30]
- lsl r1, r4, #8
- add r4, r0, r1
- mov r0, #0x23
- lsl r0, r0, #8
- ldrb r0, [r4, r0]
- cmp r0, #0
- bne _0225481C
- cmp r6, #0
- ble _022547CE
- mov r4, #0x23
- lsl r4, r4, #8
-_022547BC:
- add r0, r3, r2
- ldr r7, [r5, #0x30]
- ldrb r0, [r0, #4]
- add r7, r1, r7
- add r7, r2, r7
- add r2, r2, #1
- strb r0, [r7, r4]
- cmp r2, r6
- blt _022547BC
-_022547CE:
- mov r2, #1
- b _0225481C
-_022547D2:
- cmp r1, #1
- bne _022547FE
- lsl r0, r4, #2
- add r0, r5, r0
- ldr r1, [r0, #0x34]
- add r1, #0x94
- ldrb r1, [r1]
- cmp r1, #0
- bne _0225481C
- cmp r6, #0
- ble _022547FA
-_022547E8:
- add r1, r3, r2
- ldrb r4, [r1, #4]
- ldr r1, [r0, #0x34]
- add r1, r1, r2
- add r1, #0x94
- add r2, r2, #1
- strb r4, [r1]
- cmp r2, r6
- blt _022547E8
-_022547FA:
- mov r2, #1
- b _0225481C
-_022547FE:
- cmp r1, #2
- bne _0225481C
- ldrb r7, [r3, #4]
- ldrb r6, [r3, #5]
- bl MOD11_02230DD4
- cmp r0, #0
- beq _0225481A
- ldr r0, [r5, #0x30]
- add r1, r6, #0
- add r2, r4, #0
- add r3, r7, #0
- bl MOD11_02243340
-_0225481A:
- mov r2, #1
-_0225481C:
- add r0, r2, #0
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02254820
-MOD11_02254820: ; 0x02254820
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- bl MOD11_022300DC
- add r4, r0, #0
- add r0, r6, #0
- bl MOD11_0223010C
- add r5, r0, #0
- add r0, r6, #0
- bl MOD11_02230118
- add r7, r0, #0
- add r0, r6, #0
- bl MOD11_02230124
- ldrh r1, [r5]
- ldrh r2, [r7]
- cmp r1, r2
- beq _02254876
- ldrh r2, [r0]
- cmp r1, r2
- bne _02254854
- mov r1, #0
- strh r1, [r5]
- strh r1, [r0]
-_02254854:
- ldrh r1, [r5]
- add r0, r6, #0
- add r1, r4, r1
- bl MOD11_0225478C
- cmp r0, #1
- bne _02254876
- ldrh r0, [r5]
- add r1, r0, #2
- ldrb r2, [r4, r1]
- add r1, r0, #3
- ldrb r1, [r4, r1]
- lsl r1, r1, #8
- orr r1, r2
- add r1, r1, #4
- add r0, r0, r1
- strh r0, [r5]
-_02254876:
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02254878
-MOD11_02254878: ; 0x02254878
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r0, #0
- str r1, [sp, #4]
- ldr r1, [r5, #0x2c]
- mov r0, #4
- add r7, r2, #0
- add r6, r3, #0
- tst r0, r1
- beq _022548C8
- ldr r0, [sp, #4]
- cmp r0, #1
- bne _022548B2
- mov r4, #0
- bl FUN_02030F20
- cmp r0, #0
- ble _022548B2
-_0225489C:
- ldrb r3, [r6]
- ldr r0, [r5, #0x30]
- add r1, r4, #0
- add r2, r7, #0
- bl MOD11_02243304
- add r4, r4, #1
- bl FUN_02030F20
- cmp r4, r0
- blt _0225489C
-_022548B2:
- add r0, sp, #0x10
- ldrb r0, [r0, #0x10]
- ldr r1, [sp, #4]
- add r2, r7, #0
- str r0, [sp]
- add r0, r5, #0
- add r3, r6, #0
- bl FUN_0206C0C8
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-_022548C8:
- ldr r0, [sp, #4]
- cmp r0, #1
- bne _022548D8
- ldrb r3, [r6]
- ldr r0, [r5, #0x30]
- mov r1, #0
- bl MOD11_02243304
-_022548D8:
- add r0, sp, #0x10
- ldrb r0, [r0, #0x10]
- ldr r1, [sp, #4]
- add r2, r7, #0
- str r0, [sp]
- add r0, r5, #0
- add r3, r6, #0
- bl MOD11_02254710
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022548F0
-MOD11_022548F0: ; 0x022548F0
- push {r3, lr}
- sub sp, #8
- add r2, r1, #0
- mov r1, #1
- str r1, [sp, #4]
- mov r3, #4
- str r3, [sp]
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
-
- thumb_func_start MOD11_02254908
-MOD11_02254908: ; 0x02254908
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x48
- add r7, r1, #0
- mov r3, #2
- add r2, sp, #0xc
- strb r3, [r2]
- mov r2, #0xc0
- add r4, r7, #0
- mul r4, r2
- add r2, sp, #0xc
- ldrb r2, [r2, #1]
- mov r3, #3
- add r6, r0, #0
- str r2, [sp, #4]
- bic r2, r3
- str r2, [sp, #4]
- ldr r2, [r6, #0x30]
- add r3, r2, r4
- ldr r2, _02254A04 ; =0x00002DBE
- str r2, [sp, #8]
- ldrb r2, [r3, r2]
- lsl r2, r2, #0x1c
- lsr r3, r2, #0x1c
- mov r2, #3
- and r3, r2
- ldr r2, [sp, #4]
- orr r3, r2
- add r2, sp, #0xc
- strb r3, [r2, #1]
- ldrb r3, [r2, #1]
- mov r2, #4
- bic r3, r2
- ldr r2, [r6, #0x30]
- add r5, r2, r4
- ldr r2, [sp, #8]
- sub r2, #0x58
- ldrb r2, [r5, r2]
- lsl r2, r2, #0x1a
- lsr r2, r2, #0x1f
- lsl r2, r2, #0x1f
- lsr r2, r2, #0x1d
- orr r3, r2
- add r2, sp, #0xc
- strb r3, [r2, #1]
- ldr r2, [r6, #0x30]
- add r3, r2, r4
- ldr r2, [sp, #8]
- sub r2, #0x7e
- ldrh r3, [r3, r2]
- add r2, sp, #0xc
- strh r3, [r2, #2]
- ldr r2, [r6, #0x30]
- add r3, r2, r4
- ldr r2, [sp, #8]
- sub r2, #0x16
- str r2, [sp, #8]
- ldr r2, [r3, r2]
- str r2, [sp, #0x10]
- bl MOD11_02230260
- add r2, r0, #0
- ldr r0, [r6, #0x30]
- add r1, r7, #0
- mov r3, #1
- bl MOD11_0224ACAC
- add r2, sp, #0xc
- str r0, [sp, #0x14]
- ldrb r0, [r2, #1]
- mov r1, #0xf8
- add r5, sp, #0xc
- bic r0, r1
- ldr r1, [r6, #0x30]
- add r3, r1, r4
- ldr r1, _02254A08 ; =0x00002D66
- mov r4, #0
- ldrb r1, [r3, r1]
- lsl r1, r1, #0x1b
- lsr r1, r1, #0x1b
- lsl r1, r1, #0x1b
- lsr r1, r1, #0x18
- orr r0, r1
- strb r0, [r2, #1]
-_022549AE:
- ldr r0, [r6, #0x30]
- add r1, r7, #0
- add r2, r4, #6
- mov r3, #0
- bl MOD11_02243420
- strh r0, [r5, #0xc]
- add r2, r4, #0
- ldr r0, [r6, #0x30]
- add r1, r7, #0
- add r2, #0x1f
- mov r3, #0
- bl MOD11_02243420
- strh r0, [r5, #0x14]
- add r2, r4, #0
- ldr r0, [r6, #0x30]
- add r1, r7, #0
- add r2, #0x27
- mov r3, #0
- bl MOD11_02243420
- strh r0, [r5, #0x1c]
- add r4, r4, #1
- add r5, r5, #2
- cmp r4, #4
- blt _022549AE
- ldr r0, [r6, #0x30]
- add r1, r7, #0
- mov r2, #0x2d
- add r3, sp, #0x30
- bl MOD11_02243420
- mov r0, #0x3c
- str r0, [sp]
- add r0, r6, #0
- mov r1, #1
- add r2, r7, #0
- add r3, sp, #0xc
- bl MOD11_02254878
- add sp, #0x48
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02254A04: .word 0x00002DBE
-_02254A08: .word 0x00002D66
-
- thumb_func_start MOD11_02254A0C
-MOD11_02254A0C: ; 0x02254A0C
- push {r4, r5, r6, r7, lr}
- sub sp, #0x7c
- add r7, r1, #0
- mov r3, #3
- add r2, sp, #8
- strb r3, [r2]
- mov r2, #0xc0
- add r4, r7, #0
- mul r4, r2
- add r2, sp, #8
- ldrb r5, [r2, #1]
- mov r2, #3
- add r6, r0, #0
- bic r5, r2
- ldr r2, [r6, #0x30]
- add r3, r2, r4
- ldr r2, _02254B34 ; =0x00002DBE
- str r2, [sp, #4]
- ldrb r2, [r3, r2]
- lsl r2, r2, #0x1c
- lsr r3, r2, #0x1c
- mov r2, #3
- and r2, r3
- add r3, r5, #0
- orr r3, r2
- add r2, sp, #8
- strb r3, [r2, #1]
- ldrb r3, [r2, #1]
- mov r2, #4
- bic r3, r2
- ldr r2, [r6, #0x30]
- add r5, r2, r4
- ldr r2, [sp, #4]
- sub r2, #0x58
- ldrb r2, [r5, r2]
- lsl r2, r2, #0x1a
- lsr r2, r2, #0x1f
- lsl r2, r2, #0x1f
- lsr r2, r2, #0x1d
- orr r3, r2
- add r2, sp, #8
- strb r3, [r2, #1]
- ldr r2, [r6, #0x30]
- add r3, r2, r4
- ldr r2, [sp, #4]
- sub r2, #0x7e
- ldrh r3, [r3, r2]
- add r2, sp, #8
- strh r3, [r2, #2]
- ldr r2, [r6, #0x30]
- add r3, r2, r4
- ldr r2, [sp, #4]
- sub r2, #0x16
- str r2, [sp, #4]
- ldr r2, [r3, r2]
- str r2, [sp, #0xc]
- bl MOD11_02230260
- add r2, r0, #0
- ldr r0, [r6, #0x30]
- add r1, r7, #0
- mov r3, #1
- bl MOD11_0224ACAC
- str r0, [sp, #0x10]
- ldr r0, [r6, #0x30]
- add r2, sp, #8
- add r1, r0, r7
- ldr r0, _02254B38 ; =0x0000219C
- ldrb r0, [r1, r0]
- mov r1, #0xf8
- str r0, [sp, #0x14]
- ldrb r0, [r2, #1]
- bic r0, r1
- ldr r1, [r6, #0x30]
- add r3, r1, r4
- ldr r1, _02254B3C ; =0x00002D66
- ldrb r3, [r3, r1]
- add r1, #0x59
- lsl r3, r3, #0x1b
- lsr r3, r3, #0x1b
- lsl r3, r3, #0x1b
- lsr r3, r3, #0x18
- orr r0, r3
- strb r0, [r2, #1]
- ldr r0, [r6, #0x30]
- add r0, r0, r4
- ldrb r0, [r0, r1]
- add r1, r7, #0
- str r0, [sp, #0x18]
- add r0, r6, #0
- bl MOD11_022302BC
- ldr r1, [r6, #0x30]
- ldr r2, [sp, #0x14]
- add r1, r1, r0
- ldr r0, _02254B38 ; =0x0000219C
- ldrb r0, [r1, r0]
- add r1, r7, #0
- str r0, [sp, #0x50]
- add r0, r6, #0
- bl MOD11_02230F6C
- mov r4, #0
- add r5, sp, #8
-_02254ADE:
- ldr r0, [r6, #0x30]
- add r1, r7, #0
- add r2, r4, #6
- mov r3, #0
- bl MOD11_02243420
- strh r0, [r5, #0x18]
- add r2, r4, #0
- ldr r0, [r6, #0x30]
- add r1, r7, #0
- add r2, #0x1f
- mov r3, #0
- bl MOD11_02243420
- strh r0, [r5, #0x20]
- add r2, r4, #0
- ldr r0, [r6, #0x30]
- add r1, r7, #0
- add r2, #0x27
- mov r3, #0
- bl MOD11_02243420
- strh r0, [r5, #0x28]
- add r4, r4, #1
- add r5, r5, #2
- cmp r4, #4
- blt _02254ADE
- ldr r0, [r6, #0x30]
- add r1, r7, #0
- mov r2, #0x2d
- add r3, sp, #0x38
- bl MOD11_02243420
- mov r0, #0x74
- str r0, [sp]
- add r0, r6, #0
- mov r1, #1
- add r2, r7, #0
- add r3, sp, #8
- bl MOD11_02254878
- add sp, #0x7c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02254B34: .word 0x00002DBE
-_02254B38: .word 0x0000219C
-_02254B3C: .word 0x00002D66
-
- thumb_func_start MOD11_02254B40
-MOD11_02254B40: ; 0x02254B40
- push {r4, r5, r6, r7, lr}
- sub sp, #0x84
- add r7, r1, #0
- add r4, r0, #0
- mov r1, #4
- add r6, sp, #0x10
- strb r1, [r6]
- mov r0, #0xc0
- add r5, r7, #0
- mul r5, r0
- ldr r0, [r4, #0x30]
- str r2, [sp, #4]
- add r2, r0, r5
- ldr r0, _02254D34 ; =0x00002DB0
- str r3, [sp, #8]
- ldr r3, [r2, r0]
- lsl r1, r1, #0x13
- tst r1, r3
- ldrb r1, [r6, #1]
- beq _02254B8A
- mov r3, #3
- bic r1, r3
- add r3, r0, #0
- add r3, #0x4a
- ldrh r2, [r2, r3]
- add r0, #0x34
- lsl r2, r2, #0x18
- lsr r3, r2, #0x18
- mov r2, #3
- and r2, r3
- orr r1, r2
- strb r1, [r6, #1]
- ldr r1, [r4, #0x30]
- add r1, r1, r5
- ldr r0, [r1, r0]
- str r0, [sp, #0x14]
- b _02254BAA
-_02254B8A:
- mov r3, #3
- bic r1, r3
- add r3, r0, #0
- add r3, #0xe
- ldrb r2, [r2, r3]
- sub r0, #8
- lsl r2, r2, #0x1c
- lsr r3, r2, #0x1c
- mov r2, #3
- and r2, r3
- orr r1, r2
- strb r1, [r6, #1]
- ldr r1, [r4, #0x30]
- add r1, r1, r5
- ldr r0, [r1, r0]
- str r0, [sp, #0x14]
-_02254BAA:
- mov r0, #0xc0
- add r6, r7, #0
- add r3, sp, #0x10
- mul r6, r0
- ldrb r0, [r3, #1]
- mov r1, #4
- bic r0, r1
- ldr r1, [r4, #0x30]
- add r2, r1, r6
- ldr r1, _02254D38 ; =0x00002D66
- ldrb r2, [r2, r1]
- sub r1, #0x26
- lsl r2, r2, #0x1a
- lsr r2, r2, #0x1f
- lsl r2, r2, #0x1f
- lsr r2, r2, #0x1d
- orr r0, r2
- strb r0, [r3, #1]
- ldr r0, [r4, #0x30]
- add r0, r0, r6
- ldrh r0, [r0, r1]
- add r1, r7, #0
- strh r0, [r3, #2]
- add r0, r4, #0
- bl MOD11_02230260
- add r2, r0, #0
- ldr r0, [r4, #0x30]
- add r1, r7, #0
- mov r3, #0
- bl MOD11_0224ACAC
- str r0, [sp, #0x18]
- ldr r0, [r4, #0x30]
- mov r2, #0xf8
- add r1, r0, r7
- ldr r0, _02254D3C ; =0x0000219C
- ldrb r0, [r1, r0]
- str r0, [sp, #0x1c]
- add r0, sp, #0x10
- ldrb r1, [r0, #1]
- bic r1, r2
- ldr r2, [r4, #0x30]
- add r3, r2, r6
- ldr r2, _02254D38 ; =0x00002D66
- ldrb r3, [r3, r2]
- lsl r3, r3, #0x1b
- lsr r3, r3, #0x1b
- lsl r3, r3, #0x1b
- lsr r3, r3, #0x18
- orr r1, r3
- strb r1, [r0, #1]
- ldr r0, [sp, #4]
- cmp r0, #0
- beq _02254C1C
- str r0, [sp, #0x20]
- b _02254C26
-_02254C1C:
- ldr r0, [r4, #0x30]
- add r2, #0x59
- add r0, r0, r5
- ldrb r0, [r0, r2]
- str r0, [sp, #0x20]
-_02254C26:
- ldr r0, [sp, #8]
- str r0, [sp, #0x24]
- ldr r0, [r4, #0x30]
- add r1, r0, r5
- ldr r0, _02254D34 ; =0x00002DB0
- ldr r1, [r1, r0]
- mov r0, #1
- lsl r0, r0, #0x18
- tst r0, r1
- beq _02254C3E
- mov r0, #1
- b _02254C40
-_02254C3E:
- mov r0, #0
-_02254C40:
- ldr r2, [sp, #0x1c]
- str r0, [sp, #0x5c]
- add r0, r4, #0
- add r1, r7, #0
- bl MOD11_02230F6C
- mov r6, #0
- add r5, sp, #0x10
-_02254C50:
- ldr r0, [r4, #0x30]
- add r1, r7, #0
- add r2, r6, #6
- mov r3, #0
- bl MOD11_02243420
- strh r0, [r5, #0x18]
- add r2, r6, #0
- ldr r0, [r4, #0x30]
- add r1, r7, #0
- add r2, #0x1f
- mov r3, #0
- bl MOD11_02243420
- strh r0, [r5, #0x20]
- add r2, r6, #0
- ldr r0, [r4, #0x30]
- add r1, r7, #0
- add r2, #0x27
- mov r3, #0
- bl MOD11_02243420
- strh r0, [r5, #0x28]
- add r6, r6, #1
- add r5, r5, #2
- cmp r6, #4
- blt _02254C50
- ldr r0, [r4, #0x30]
- add r1, r7, #0
- mov r2, #0x2d
- add r3, sp, #0x40
- bl MOD11_02243420
- add r3, sp, #0x10
- mov r2, #0
- mov ip, r2
- str r3, [sp, #0xc]
- add r5, r3, #0
-_02254C9C:
- ldr r0, [r4, #0x30]
- add r1, r0, r2
- mov r0, #0xb5
- lsl r0, r0, #6
- ldrh r1, [r1, r0]
- ldr r0, [sp, #0xc]
- add r0, #0x50
- strh r1, [r0]
- ldr r0, [r4, #0x30]
- add r1, r0, r2
- ldr r0, _02254D38 ; =0x00002D66
- ldrb r0, [r1, r0]
- lsl r0, r0, #0x1a
- lsr r1, r0, #0x1f
- add r0, r3, #0
- add r0, #0x5c
- strb r1, [r0]
- ldr r0, [r4, #0x30]
- add r1, r0, r2
- ldr r0, _02254D38 ; =0x00002D66
- ldrb r0, [r1, r0]
- lsl r0, r0, #0x1b
- lsr r1, r0, #0x1b
- add r0, r3, #0
- add r0, #0x60
- strb r1, [r0]
- ldr r0, [r4, #0x30]
- add r6, r0, r2
- ldr r0, _02254D34 ; =0x00002DB0
- ldr r1, [r6, r0]
- mov r0, #2
- lsl r0, r0, #0x14
- tst r0, r1
- beq _02254CF2
- ldr r0, _02254D40 ; =0x00002DFA
- ldrh r1, [r6, r0]
- add r0, r3, #0
- add r0, #0x58
- strb r1, [r0]
- ldr r0, [r4, #0x30]
- add r1, r0, r2
- ldr r0, _02254D44 ; =0x00002DE4
- b _02254D06
-_02254CF2:
- ldr r0, _02254D48 ; =0x00002DBE
- ldrb r0, [r6, r0]
- lsl r0, r0, #0x1c
- lsr r1, r0, #0x1c
- add r0, r3, #0
- add r0, #0x58
- strb r1, [r0]
- ldr r0, [r4, #0x30]
- add r1, r0, r2
- ldr r0, _02254D4C ; =0x00002DA8
-_02254D06:
- ldr r0, [r1, r0]
- add r2, #0xc0
- str r0, [r5, #0x64]
- ldr r0, [sp, #0xc]
- add r3, r3, #1
- add r0, r0, #2
- str r0, [sp, #0xc]
- mov r0, ip
- add r0, r0, #1
- add r5, r5, #4
- mov ip, r0
- cmp r0, #4
- blt _02254C9C
- mov r0, #0x74
- str r0, [sp]
- add r0, r4, #0
- mov r1, #1
- add r2, r7, #0
- add r3, sp, #0x10
- bl MOD11_02254878
- add sp, #0x84
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02254D34: .word 0x00002DB0
-_02254D38: .word 0x00002D66
-_02254D3C: .word 0x0000219C
-_02254D40: .word 0x00002DFA
-_02254D44: .word 0x00002DE4
-_02254D48: .word 0x00002DBE
-_02254D4C: .word 0x00002DA8
-
- thumb_func_start MOD11_02254D50
-MOD11_02254D50: ; 0x02254D50
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x38
- add r4, r1, #0
- lsl r1, r2, #2
- str r0, [sp, #4]
- add r0, r0, r1
- ldr r1, [r0, #0x34]
- ldr r0, _02254E8C ; =0x00000195
- str r2, [sp, #8]
- ldrb r1, [r1, r0]
- mov r0, #1
- tst r0, r1
- beq _02254D6E
- mov r2, #2
- b _02254D70
-_02254D6E:
- mov r2, #0
-_02254D70:
- ldr r0, [sp, #8]
- mov r1, #0xc0
- add r5, r0, #0
- ldr r0, [sp, #4]
- mul r5, r1
- ldr r0, [r0, #0x30]
- ldr r3, _02254E90 ; =0x00002D66
- add r0, r0, r5
- ldrb r0, [r0, r3]
- mov r1, #5
- lsl r0, r0, #0x1b
- lsr r7, r0, #0x1b
- add r0, sp, #0xc
- strb r1, [r0]
- ldr r0, [sp, #4]
- ldr r0, [r0, #0x30]
- add r1, r0, r5
- add r0, r3, #0
- add r0, #0x4a
- ldr r6, [r1, r0]
- mov r0, #2
- lsl r0, r0, #0x14
- tst r0, r6
- beq _02254DC4
- add r0, r3, #0
- add r0, #0x7e
- ldr r0, [r1, r0]
- lsl r2, r2, #0x18
- str r0, [sp]
- add r0, r3, #0
- sub r0, #0x26
- add r3, #0x94
- ldrh r0, [r1, r0]
- ldrh r1, [r1, r3]
- lsl r3, r7, #0x18
- lsr r2, r2, #0x18
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- lsr r3, r3, #0x18
- bl FUN_02068E88
- b _02254DE6
-_02254DC4:
- add r0, r3, #0
- add r0, #0x42
- ldr r0, [r1, r0]
- lsl r2, r2, #0x18
- str r0, [sp]
- add r0, r3, #0
- sub r0, #0x26
- add r3, #0x58
- ldrh r0, [r1, r0]
- ldrb r1, [r1, r3]
- lsl r3, r7, #0x18
- lsr r2, r2, #0x18
- lsl r1, r1, #0x1c
- lsr r1, r1, #0x1c
- lsr r3, r3, #0x18
- bl FUN_02068E88
-_02254DE6:
- add r1, sp, #0xc
- strb r0, [r1, #1]
- ldr r0, [sp, #4]
- ldr r1, _02254E94 ; =0x00002DBF
- ldr r0, [r0, #0x30]
- add r0, r0, r5
- ldrb r2, [r0, r1]
- add r0, sp, #0xc
- sub r1, #0xf
- strh r2, [r0, #2]
- ldr r0, [sp, #4]
- ldr r0, [r0, #0x30]
- add r0, r0, r5
- ldr r1, [r0, r1]
- mov r0, #1
- lsl r0, r0, #0x18
- tst r0, r1
- beq _02254E0E
- mov r0, #1
- b _02254E10
-_02254E0E:
- mov r0, #0
-_02254E10:
- str r0, [sp, #0x10]
- mov r0, #0
- mov ip, r0
- add r7, sp, #0xc
- ldr r0, _02254E90 ; =0x00002D66
- add r3, r7, #0
- add r2, r4, r0
- add r0, #0x58
- add r5, r7, #0
- add r6, r4, r0
-_02254E24:
- mov r0, #0xb5
- lsl r0, r0, #6
- ldrh r0, [r4, r0]
- strh r0, [r7, #8]
- ldrb r0, [r2]
- lsl r0, r0, #0x1a
- lsr r0, r0, #0x1f
- strb r0, [r3, #0x14]
- ldrb r0, [r2]
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x1b
- strb r0, [r3, #0x18]
- ldr r0, _02254E98 ; =0x00002DB0
- ldr r1, [r4, r0]
- mov r0, #2
- lsl r0, r0, #0x14
- tst r0, r1
- beq _02254E52
- ldr r0, _02254E9C ; =0x00002DFA
- ldrh r0, [r4, r0]
- strb r0, [r3, #0x10]
- ldr r0, _02254EA0 ; =0x00002DE4
- b _02254E5C
-_02254E52:
- ldrb r0, [r6]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1c
- strb r0, [r3, #0x10]
- ldr r0, _02254EA4 ; =0x00002DA8
-_02254E5C:
- ldr r0, [r4, r0]
- add r4, #0xc0
- str r0, [r5, #0x1c]
- mov r0, ip
- add r0, r0, #1
- add r7, r7, #2
- add r2, #0xc0
- add r3, r3, #1
- add r5, r5, #4
- add r6, #0xc0
- mov ip, r0
- cmp r0, #4
- blt _02254E24
- mov r0, #0x2c
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r2, [sp, #8]
- mov r1, #1
- add r3, sp, #0xc
- bl MOD11_02254878
- add sp, #0x38
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02254E8C: .word 0x00000195
-_02254E90: .word 0x00002D66
-_02254E94: .word 0x00002DBF
-_02254E98: .word 0x00002DB0
-_02254E9C: .word 0x00002DFA
-_02254EA0: .word 0x00002DE4
-_02254EA4: .word 0x00002DA8
-
- thumb_func_start MOD11_02254EA8
-MOD11_02254EA8: ; 0x02254EA8
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- add r7, r1, #0
- add r4, r0, #0
- lsl r0, r7, #2
- add r0, r4, r0
- ldr r1, [r0, #0x34]
- ldr r0, _02254F58 ; =0x00000195
- str r2, [sp, #4]
- ldrb r1, [r1, r0]
- mov r0, #1
- tst r0, r1
- beq _02254EC6
- mov r2, #2
- b _02254EC8
-_02254EC6:
- mov r2, #0
-_02254EC8:
- mov r0, #0xc0
- add r6, r7, #0
- mul r6, r0
- ldr r0, [r4, #0x30]
- ldr r5, _02254F5C ; =0x00002D66
- add r0, r0, r6
- ldrb r0, [r0, r5]
- mov r1, #6
- lsl r0, r0, #0x1b
- lsr r3, r0, #0x1b
- add r0, sp, #8
- strb r1, [r0]
- ldr r0, [r4, #0x30]
- add r1, r0, r6
- add r0, r5, #0
- add r0, #0x4a
- ldr r6, [r1, r0]
- mov r0, #2
- lsl r0, r0, #0x14
- tst r0, r6
- beq _02254F16
- add r0, r5, #0
- add r0, #0x7e
- ldr r0, [r1, r0]
- lsl r2, r2, #0x18
- str r0, [sp]
- add r0, r5, #0
- sub r0, #0x26
- add r5, #0x94
- ldrh r0, [r1, r0]
- ldrh r1, [r1, r5]
- lsl r3, r3, #0x18
- lsr r2, r2, #0x18
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- lsr r3, r3, #0x18
- bl FUN_02068E88
- b _02254F38
-_02254F16:
- add r0, r5, #0
- add r0, #0x42
- ldr r0, [r1, r0]
- lsl r2, r2, #0x18
- str r0, [sp]
- add r0, r5, #0
- sub r0, #0x26
- add r5, #0x58
- ldrh r0, [r1, r0]
- ldrb r1, [r1, r5]
- lsl r3, r3, #0x18
- lsr r2, r2, #0x18
- lsl r1, r1, #0x1c
- lsr r1, r1, #0x1c
- lsr r3, r3, #0x18
- bl FUN_02068E88
-_02254F38:
- add r1, sp, #8
- strb r0, [r1, #1]
- ldr r0, [sp, #4]
- add r1, sp, #8
- strh r0, [r1, #2]
- mov r0, #4
- str r0, [sp]
- add r0, r4, #0
- mov r1, #1
- add r2, r7, #0
- add r3, sp, #8
- bl MOD11_02254878
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- nop
-_02254F58: .word 0x00000195
-_02254F5C: .word 0x00002D66
-
- thumb_func_start MOD11_02254F60
-MOD11_02254F60: ; 0x02254F60
- push {r3, lr}
- sub sp, #8
- add r2, r1, #0
- mov r1, #7
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02254F7C
-MOD11_02254F7C: ; 0x02254F7C
- push {r3, lr}
- sub sp, #8
- add r2, r1, #0
- mov r1, #8
- add r3, sp, #4
- strb r1, [r3]
- mov r1, #0x34
- mul r1, r2
- add r1, r0, r1
- add r1, #0xad
- ldrb r1, [r1]
- strh r1, [r3, #2]
- add r1, r0, r2
- add r1, #0xa8
- ldrb r1, [r1]
- strb r1, [r3, #1]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
-
- thumb_func_start MOD11_02254FAC
-MOD11_02254FAC: ; 0x02254FAC
- push {r4, r5, r6, lr}
- sub sp, #8
- mov r6, #9
- add r3, sp, #4
- strb r6, [r3]
- add r5, r0, #0
- strb r2, [r3, #1]
- add r4, r1, #0
- bl MOD11_022302BC
- ldr r1, [r5, #0x30]
- add r2, r4, #0
- add r1, r1, r0
- ldr r0, _02254FE0 ; =0x0000219C
- add r3, sp, #4
- ldrb r1, [r1, r0]
- add r0, sp, #4
- strh r1, [r0, #2]
- mov r0, #4
- str r0, [sp]
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02254878
- add sp, #8
- pop {r4, r5, r6, pc}
- .align 2, 0
-_02254FE0: .word 0x0000219C
-
- thumb_func_start MOD11_02254FE4
-MOD11_02254FE4: ; 0x02254FE4
- push {r3, lr}
- sub sp, #8
- add r2, r1, #0
- mov r1, #0xa
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02255000
-MOD11_02255000: ; 0x02255000
- push {r3, r4, lr}
- sub sp, #0xc
- add r3, r1, #0
- mov r1, #0xb
- add r4, sp, #4
- strb r1, [r4]
- mov r1, #0x34
- mul r1, r3
- add r1, r0, r1
- add r1, #0xad
- ldrb r1, [r1]
- strh r1, [r4, #2]
- add r1, r0, r3
- add r1, #0xa8
- ldrb r1, [r1]
- strb r1, [r4, #1]
- str r2, [sp, #8]
- mov r1, #8
- str r1, [sp]
- add r2, r3, #0
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #0xc
- pop {r3, r4, pc}
-
- thumb_func_start MOD11_02255034
-MOD11_02255034: ; 0x02255034
- push {r4, r5, r6, r7, lr}
- sub sp, #0x2c
- add r5, r1, #0
- ldr r1, _02255158 ; =0x0000219C
- add r4, r2, #0
- add r7, r5, r1
- ldrb r2, [r7, r4]
- add r1, r4, #0
- str r0, [sp, #4]
- str r3, [sp, #8]
- bl MOD11_02230014
- add r6, r0, #0
- mov r1, #5
- mov r2, #0
- bl GetMonDataEncrypted
- str r0, [sp, #0x10]
- add r0, r6, #0
- mov r1, #0xa0
- mov r2, #0
- bl GetMonDataEncrypted
- str r0, [sp, #0xc]
- mov r0, #0xc
- add r2, sp, #0x14
- strb r0, [r2]
- mov r0, #0xc0
- add r6, r4, #0
- mul r6, r0
- ldr r1, _0225515C ; =0x00002D74
- add r0, r5, r6
- ldrb r3, [r0, r1]
- strb r3, [r2, #1]
- add r3, r1, #0
- add r3, #0x18
- ldr r3, [r0, r3]
- add r1, #0x1c
- strh r3, [r2, #2]
- ldr r0, [r0, r1]
- add r1, r4, #0
- strh r0, [r2, #4]
- ldrb r0, [r7, r4]
- strb r0, [r2, #6]
- add r0, r5, #0
- bl MOD11_0224524C
- add r1, sp, #0x14
- ldrb r2, [r1, #7]
- mov r3, #0x1f
- lsl r0, r0, #0x18
- bic r2, r3
- lsr r3, r0, #0x18
- mov r0, #0x1f
- and r0, r3
- orr r0, r2
- strb r0, [r1, #7]
- mov r0, #0xb5
- lsl r0, r0, #6
- add r7, r5, r0
- ldrh r0, [r7, r6]
- cmp r0, #0x1d
- beq _022550B6
- cmp r0, #0x20
- bne _022550D0
-_022550B6:
- ldr r0, _02255160 ; =0x00002D54
- add r1, r5, r6
- ldr r0, [r1, r0]
- lsr r0, r0, #0x1f
- bne _022550D0
- add r0, sp, #0x14
- ldrb r1, [r0, #7]
- mov r2, #0x60
- bic r1, r2
- mov r2, #0x40
- orr r1, r2
- strb r1, [r0, #7]
- b _022550EA
-_022550D0:
- add r3, sp, #0x14
- ldrb r2, [r3, #7]
- mov r0, #0x60
- add r1, r5, r6
- bic r2, r0
- ldr r0, _02255164 ; =0x00002DBE
- ldrb r0, [r1, r0]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1c
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x19
- orr r0, r2
- strb r0, [r3, #7]
-_022550EA:
- ldr r0, [sp, #0x10]
- ldr r1, [sp, #0xc]
- bl GetMonExpByLevel
- mov r1, #0xc0
- mul r1, r4
- add r2, r5, r1
- ldr r1, _02255168 ; =0x00002DA4
- ldr r1, [r2, r1]
- sub r0, r1, r0
- ldr r1, [sp, #0xc]
- str r0, [sp, #0x1c]
- ldr r0, [sp, #0x10]
- add r1, r1, #1
- bl GetMonExpByLevel
- add r5, r0, #0
- ldr r0, [sp, #0x10]
- ldr r1, [sp, #0xc]
- bl GetMonExpByLevel
- sub r0, r5, r0
- str r0, [sp, #0x20]
- ldrh r1, [r7, r6]
- ldr r0, [sp, #4]
- bl MOD11_02231668
- add r3, sp, #0x14
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- lsl r0, r0, #0x1f
- ldrb r1, [r3, #7]
- mov r2, #0x80
- lsr r0, r0, #0x18
- bic r1, r2
- orr r0, r1
- strb r0, [r3, #7]
- ldr r0, [sp, #4]
- bl MOD11_02230E00
- str r0, [sp, #0x24]
- ldr r0, [sp, #8]
- add r1, sp, #0x14
- strb r0, [r1, #0x14]
- mov r0, #0x18
- str r0, [sp]
- ldr r0, [sp, #4]
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #0x14
- bl MOD11_02254878
- add sp, #0x2c
- pop {r4, r5, r6, r7, pc}
- nop
-_02255158: .word 0x0000219C
-_0225515C: .word 0x00002D74
-_02255160: .word 0x00002D54
-_02255164: .word 0x00002DBE
-_02255168: .word 0x00002DA4
-
- thumb_func_start MOD11_0225516C
-MOD11_0225516C: ; 0x0225516C
- push {r3, lr}
- sub sp, #8
- add r2, r1, #0
- mov r1, #0xd
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02255188
-MOD11_02255188: ; 0x02255188
- push {r4, r5, r6, r7, lr}
- sub sp, #0x54
- str r0, [sp, #4]
- str r1, [sp, #8]
- str r2, [sp, #0xc]
- mov r0, #0
- add r1, sp, #0x28
- mov r2, #0x2c
- add r6, r3, #0
- bl MIi_CpuClearFast
- ldr r0, [sp, #4]
- bl MOD11_0222FF78
- ldr r1, [sp, #0xc]
- bl MOD11_02243400
- mov r5, #0
- ldr r0, [sp, #4]
- add r4, r5, #0
- bl MOD11_0222FF84
- cmp r0, #0
- ble _022551D8
-_022551B8:
- ldr r0, [sp, #8]
- add r1, r4, #0
- bl MOD11_0224AD04
- cmp r0, #0
- bne _022551CC
- add r0, r4, #0
- bl MaskOfFlagNo
- orr r5, r0
-_022551CC:
- ldr r0, [sp, #4]
- add r4, r4, #1
- bl MOD11_0222FF84
- cmp r4, r0
- blt _022551B8
-_022551D8:
- mov r1, #0xe
- add r0, sp, #0x28
- strb r1, [r0]
- strb r6, [r0, #1]
- ldr r1, _022554F8 ; =0x00003108
- ldr r0, [sp, #8]
- ldrb r0, [r0, r1]
- add r1, r0, #0
- orr r1, r5
- add r0, sp, #0x48
- strb r1, [r0, #9]
- ldr r0, [sp, #4]
- bl MOD11_0222FF74
- mov r1, #2
- str r0, [sp, #0x20]
- tst r0, r1
- beq _0225520E
- ldr r0, [sp, #0x20]
- mov r1, #8
- tst r0, r1
- bne _0225520E
- ldr r0, [sp, #0xc]
- mov r1, #1
- add r4, r0, #0
- and r4, r1
- b _02255210
-_0225520E:
- ldr r4, [sp, #0xc]
-_02255210:
- ldr r0, [sp, #4]
- add r1, r4, #0
- bl MOD11_0222FF88
- str r0, [sp, #0x24]
- mov r6, #0
- bl FUN_0206B9AC
- cmp r0, #0
- ble _022552A6
- mov r0, #6
- add r1, r4, #0
- mul r1, r0
- ldr r0, [sp, #8]
- add r5, sp, #0x28
- add r7, r0, r1
- mov r1, #0xa9
- ldr r0, [sp, #0x20]
- lsl r1, r1, #2
- and r0, r1
- str r0, [sp, #0x1c]
-_0225523A:
- ldr r1, _022554FC ; =0x0000312C
- ldr r0, [sp, #0x24]
- ldrb r1, [r7, r1]
- bl FUN_0206B9B0
- mov r1, #0xad
- mov r2, #0
- add r4, r0, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _02255298
- ldr r1, _02255500 ; =0x000001EE
- cmp r0, r1
- beq _02255298
- add r0, r4, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _02255280
- add r0, r4, #0
- mov r1, #0x9f
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _0225527A
- mov r0, #3
- strb r0, [r5, #8]
- b _02255284
-_0225527A:
- mov r0, #1
- strb r0, [r5, #8]
- b _02255284
-_02255280:
- mov r0, #2
- strb r0, [r5, #8]
-_02255284:
- ldr r0, [sp, #0x1c]
- cmp r0, #0
- beq _0225528E
- mov r0, #0
- b _02255294
-_0225528E:
- add r0, r4, #0
- bl FUN_02068698
-_02255294:
- strb r0, [r5, #2]
- add r5, r5, #1
-_02255298:
- ldr r0, [sp, #0x24]
- add r7, r7, #1
- add r6, r6, #1
- bl FUN_0206B9AC
- cmp r6, r0
- blt _0225523A
-_022552A6:
- ldr r0, [sp, #0x20]
- mov r1, #0xc
- and r0, r1
- cmp r0, #0xc
- beq _022552C4
- ldr r0, [sp, #0x20]
- mov r1, #0x10
- tst r0, r1
- bne _022552C4
- ldr r0, [sp, #0x20]
- cmp r0, #0x4b
- beq _022552C4
- cmp r0, #0xcb
- beq _022552C4
- b _022553FC
-_022552C4:
- ldr r0, [sp, #4]
- ldr r1, [sp, #0xc]
- bl MOD11_02230270
- cmp r0, #0
- beq _022552DA
- ldr r0, [sp, #4]
- mov r1, #2
- bl MOD11_0223022C
- b _022552E2
-_022552DA:
- ldr r0, [sp, #4]
- mov r1, #3
- bl MOD11_0223022C
-_022552E2:
- add r4, r0, #0
- ldr r0, [sp, #4]
- add r1, r4, #0
- bl MOD11_0222FF88
- str r0, [sp, #0x10]
- mov r5, #0
- bl FUN_0206B9AC
- cmp r0, #0
- ble _0225535E
- add r1, r4, #0
- mov r0, #6
- mul r1, r0
- ldr r0, [sp, #8]
- add r4, sp, #0x28
- add r6, r0, r1
-_02255304:
- ldr r1, _022554FC ; =0x0000312C
- ldr r0, [sp, #0x10]
- ldrb r1, [r6, r1]
- bl FUN_0206B9B0
- mov r1, #0xad
- mov r2, #0
- add r7, r0, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _02255350
- ldr r1, _02255500 ; =0x000001EE
- cmp r0, r1
- beq _02255350
- add r0, r7, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _0225534A
- add r0, r7, #0
- mov r1, #0x9f
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _02255344
- mov r0, #3
- strb r0, [r4, #0xe]
- b _0225534E
-_02255344:
- mov r0, #1
- strb r0, [r4, #0xe]
- b _0225534E
-_0225534A:
- mov r0, #2
- strb r0, [r4, #0xe]
-_0225534E:
- add r4, r4, #1
-_02255350:
- ldr r0, [sp, #0x10]
- add r6, r6, #1
- add r5, r5, #1
- bl FUN_0206B9AC
- cmp r5, r0
- blt _02255304
-_0225535E:
- ldr r0, [sp, #4]
- ldr r1, [sp, #0xc]
- bl MOD11_02230270
- cmp r0, #0
- beq _02255374
- ldr r0, [sp, #4]
- mov r1, #4
- bl MOD11_0223022C
- b _0225537C
-_02255374:
- ldr r0, [sp, #4]
- mov r1, #5
- bl MOD11_0223022C
-_0225537C:
- add r4, r0, #0
- ldr r0, [sp, #4]
- add r1, r4, #0
- bl MOD11_0222FF88
- str r0, [sp, #0x14]
- mov r5, #0
- bl FUN_0206B9AC
- cmp r0, #0
- ble _02255482
- add r1, r4, #0
- mov r0, #6
- mul r1, r0
- ldr r0, [sp, #8]
- add r4, sp, #0x28
- add r6, r0, r1
- add r4, #3
-_022553A0:
- ldr r1, _022554FC ; =0x0000312C
- ldr r0, [sp, #0x14]
- ldrb r1, [r6, r1]
- bl FUN_0206B9B0
- mov r1, #0xad
- mov r2, #0
- add r7, r0, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _022553EC
- ldr r1, _02255500 ; =0x000001EE
- cmp r0, r1
- beq _022553EC
- add r0, r7, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _022553E6
- add r0, r7, #0
- mov r1, #0x9f
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _022553E0
- mov r0, #3
- strb r0, [r4, #0xe]
- b _022553EA
-_022553E0:
- mov r0, #1
- strb r0, [r4, #0xe]
- b _022553EA
-_022553E6:
- mov r0, #2
- strb r0, [r4, #0xe]
-_022553EA:
- add r4, r4, #1
-_022553EC:
- ldr r0, [sp, #0x14]
- add r6, r6, #1
- add r5, r5, #1
- bl FUN_0206B9AC
- cmp r5, r0
- blt _022553A0
- b _02255482
-_022553FC:
- ldr r0, [sp, #4]
- ldr r1, [sp, #0xc]
- mov r2, #2
- bl MOD11_02230308
- add r4, r0, #0
- ldr r0, [sp, #4]
- add r1, r4, #0
- bl MOD11_0222FF88
- str r0, [sp, #0x18]
- mov r5, #0
- bl FUN_0206B9AC
- cmp r0, #0
- ble _02255482
- add r1, r4, #0
- mov r0, #6
- mul r1, r0
- ldr r0, [sp, #8]
- add r4, sp, #0x28
- add r6, r0, r1
-_02255428:
- ldr r1, _022554FC ; =0x0000312C
- ldr r0, [sp, #0x18]
- ldrb r1, [r6, r1]
- bl FUN_0206B9B0
- mov r1, #0xad
- mov r2, #0
- add r7, r0, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _02255474
- ldr r1, _02255500 ; =0x000001EE
- cmp r0, r1
- beq _02255474
- add r0, r7, #0
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _0225546E
- add r0, r7, #0
- mov r1, #0x9f
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _02255468
- mov r0, #3
- strb r0, [r4, #0xe]
- b _02255472
-_02255468:
- mov r0, #1
- strb r0, [r4, #0xe]
- b _02255472
-_0225546E:
- mov r0, #2
- strb r0, [r4, #0xe]
-_02255472:
- add r4, r4, #1
-_02255474:
- ldr r0, [sp, #0x18]
- add r6, r6, #1
- add r5, r5, #1
- bl FUN_0206B9AC
- cmp r5, r0
- blt _02255428
-_02255482:
- mov r5, #0
- add r6, sp, #0x28
- add r4, r6, #0
- add r7, r5, #0
-_0225548A:
- ldr r0, [sp, #8]
- ldr r1, [sp, #0xc]
- add r2, r5, #6
- add r3, r7, #0
- bl MOD11_02243420
- strh r0, [r6, #0x14]
- add r2, r5, #0
- ldr r0, [sp, #8]
- ldr r1, [sp, #0xc]
- add r2, #0x1f
- mov r3, #0
- bl MOD11_02243420
- strb r0, [r4, #0x1c]
- add r2, r5, #0
- ldr r0, [sp, #8]
- ldr r1, [sp, #0xc]
- add r2, #0x27
- mov r3, #0
- bl MOD11_02243420
- add r1, r4, #0
- add r1, #0x20
- add r5, r5, #1
- strb r0, [r1]
- add r6, r6, #2
- add r4, r4, #1
- cmp r5, #4
- blt _0225548A
- ldr r0, [sp, #0xc]
- mov r1, #0xc0
- mul r1, r0
- ldr r0, [sp, #8]
- add r3, sp, #0x28
- add r0, r0, r1
- ldr r1, _02255504 ; =0x00002D8C
- ldr r2, [r0, r1]
- strh r2, [r3, #0x24]
- add r2, r1, #4
- ldr r2, [r0, r2]
- strh r2, [r3, #0x26]
- mov r2, #0x24
- ldrsh r2, [r3, r2]
- cmp r2, #0
- beq _0225550E
- add r1, #0x20
- ldr r0, [r0, r1]
- cmp r0, #0
- add r0, sp, #0x48
- beq _02255508
- mov r1, #3
- strb r1, [r0, #8]
- b _02255514
- nop
-_022554F8: .word 0x00003108
-_022554FC: .word 0x0000312C
-_02255500: .word 0x000001EE
-_02255504: .word 0x00002D8C
-_02255508:
- mov r1, #1
- strb r1, [r0, #8]
- b _02255514
-_0225550E:
- mov r1, #2
- add r0, sp, #0x48
- strb r1, [r0, #8]
-_02255514:
- mov r0, #0x2c
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r2, [sp, #0xc]
- mov r1, #1
- add r3, sp, #0x28
- bl MOD11_02254878
- add sp, #0x54
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02255528
-MOD11_02255528: ; 0x02255528
- push {r0, r1, r2, r3}
- push {r3, lr}
- add r2, r1, #0
- mov r1, #4
- str r1, [sp]
- mov r1, #0
- add r3, sp, #0x10
- bl MOD11_02254878
- pop {r3}
- pop {r3}
- add sp, #0x10
- bx r3
- .align 2, 0
-
- thumb_func_start MOD11_02255544
-MOD11_02255544: ; 0x02255544
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x28
- str r2, [sp, #0xc]
- str r0, [sp, #4]
- str r1, [sp, #8]
- bl MOD11_0222FF78
- ldr r1, [sp, #0xc]
- bl MOD11_02243400
- mov r0, #0xf
- add r2, sp, #0x14
- strb r0, [r2]
- add r7, sp, #0x14
- ldr r1, [sp, #8]
- ldr r0, [sp, #0xc]
- add r5, r7, #0
- add r1, r1, r0
- ldr r0, _022555D4 ; =0x0000219C
- ldrb r0, [r1, r0]
- mov r1, #0xc0
- strb r0, [r2, #1]
- mov r0, #0
- str r0, [sp, #0x10]
- ldr r0, [sp, #0xc]
- mul r1, r0
- ldr r0, [sp, #8]
- add r6, r0, r1
- add r4, r6, #0
-_0225557E:
- ldr r0, _022555D8 ; =0x00002D4C
- ldr r1, _022555DC ; =0x00002D70
- ldrh r0, [r6, r0]
- strh r0, [r7, #4]
- ldr r0, _022555E0 ; =0x00002D6C
- ldrb r0, [r4, r0]
- strb r0, [r5, #0xc]
- ldr r0, _022555D8 ; =0x00002D4C
- ldrb r1, [r4, r1]
- ldrh r0, [r6, r0]
- bl FUN_0206AB30
- strb r0, [r5, #0x10]
- ldr r0, [sp, #0x10]
- add r6, r6, #2
- add r0, r0, #1
- add r7, r7, #2
- add r4, r4, #1
- add r5, r5, #1
- str r0, [sp, #0x10]
- cmp r0, #4
- blt _0225557E
- mov r0, #0
- mvn r0, r0
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r1, [sp, #8]
- ldr r2, [sp, #0xc]
- mov r3, #0
- bl MOD11_02245D38
- add r1, sp, #0x14
- strh r0, [r1, #2]
- mov r0, #0x14
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r2, [sp, #0xc]
- mov r1, #1
- add r3, sp, #0x14
- bl MOD11_02254878
- add sp, #0x28
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_022555D4: .word 0x0000219C
-_022555D8: .word 0x00002D4C
-_022555DC: .word 0x00002D70
-_022555E0: .word 0x00002D6C
-
- thumb_func_start MOD11_022555E4
-MOD11_022555E4: ; 0x022555E4
- push {r0, r1, r2, r3}
- push {r3, lr}
- add r2, r1, #0
- mov r1, #4
- str r1, [sp]
- mov r1, #0
- add r3, sp, #0x10
- bl MOD11_02254878
- pop {r3}
- pop {r3}
- add sp, #0x10
- bx r3
- .align 2, 0
-
- thumb_func_start MOD11_02255600
-MOD11_02255600: ; 0x02255600
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x40
- str r0, [sp, #4]
- str r1, [sp, #8]
- add r0, r1, #0
- add r1, r3, #0
- add r4, r2, #0
- str r3, [sp, #0xc]
- bl MOD11_02243400
- ldr r0, [sp, #4]
- bl MOD11_0222FF74
- mov r2, #0x10
- add r1, sp, #0x1c
- strb r2, [r1]
- strh r4, [r1, #2]
- mov r1, #2
- add r2, r0, #0
- and r2, r1
- beq _0225563A
- mov r1, #8
- tst r0, r1
- bne _0225563A
- cmp r2, #0
- beq _02255642
- ldr r0, [sp, #0xc]
- cmp r0, #2
- blt _02255642
-_0225563A:
- mov r1, #1
- add r0, sp, #0x1c
- strb r1, [r0, #1]
- b _02255648
-_02255642:
- mov r1, #0
- add r0, sp, #0x1c
- strb r1, [r0, #1]
-_02255648:
- ldr r2, [sp, #8]
- mov r0, #0
- str r0, [sp, #0x18]
- ldr r1, _0225570C ; =0x00002D54
- add r0, r2, #0
- add r7, r0, r1
- add r1, #0x6a
- add r5, r0, r1
- mov r0, #3
- add r4, sp, #0x20
- str r0, [sp, #0x14]
- str r0, [sp, #0x10]
- mov r0, #4
- add r3, sp, #0x1c
- add r4, #1
- mov ip, r0
-_02255668:
- ldr r0, _02255710 ; =0x00002D8C
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _022556D6
- strh r0, [r3, #8]
- ldr r0, _02255714 ; =0x00002D90
- ldr r0, [r2, r0]
- strh r0, [r3, #0xa]
- ldrb r1, [r4]
- mov r0, #4
- orr r0, r1
- strb r0, [r4]
- mov r0, #0xb5
- lsl r0, r0, #6
- ldrh r0, [r2, r0]
- cmp r0, #0x1d
- beq _0225568E
- cmp r0, #0x20
- bne _022556A2
-_0225568E:
- ldr r0, [r7]
- lsr r0, r0, #0x1f
- bne _022556A2
- ldrb r0, [r4]
- ldr r1, [sp, #0x10]
- bic r0, r1
- mov r1, #2
- orr r0, r1
- strb r0, [r4]
- b _022556B6
-_022556A2:
- ldrb r6, [r4]
- ldr r0, [sp, #0x14]
- bic r6, r0
- ldrb r0, [r5]
- lsl r0, r0, #0x1c
- lsr r1, r0, #0x1c
- mov r0, #3
- and r0, r1
- orr r0, r6
- strb r0, [r4]
-_022556B6:
- ldr r1, [sp, #8]
- ldr r0, [sp, #0x18]
- add r1, r1, r0
- ldr r0, _02255718 ; =0x0000219C
- ldrb r0, [r1, r0]
- strb r0, [r3, #4]
- ldr r0, _0225571C ; =0x00002DAC
- ldr r0, [r2, r0]
- cmp r0, #0
- beq _022556D0
- mov r0, #3
- strb r0, [r3, #6]
- b _022556E2
-_022556D0:
- mov r0, #1
- strb r0, [r3, #6]
- b _022556E2
-_022556D6:
- ldrb r1, [r4]
- mov r0, ip
- bic r1, r0
- strb r1, [r4]
- mov r0, #2
- strb r0, [r3, #6]
-_022556E2:
- ldr r0, [sp, #0x18]
- add r2, #0xc0
- add r0, r0, #1
- add r3, #8
- add r4, #8
- add r7, #0xc0
- add r5, #0xc0
- str r0, [sp, #0x18]
- cmp r0, #4
- blt _02255668
- mov r0, #0x24
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r2, [sp, #0xc]
- mov r1, #1
- add r3, sp, #0x1c
- bl MOD11_02254878
- add sp, #0x40
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0225570C: .word 0x00002D54
-_02255710: .word 0x00002D8C
-_02255714: .word 0x00002D90
-_02255718: .word 0x0000219C
-_0225571C: .word 0x00002DAC
-
- thumb_func_start MOD11_02255720
-MOD11_02255720: ; 0x02255720
- push {r0, r1, r2, r3}
- push {r3, lr}
- add r2, r1, #0
- mov r1, #4
- str r1, [sp]
- mov r1, #0
- add r3, sp, #0x10
- bl MOD11_02254878
- pop {r3}
- pop {r3}
- add sp, #0x10
- bx r3
- .align 2, 0
-
- thumb_func_start MOD11_0225573C
-MOD11_0225573C: ; 0x0225573C
- push {r4, r5, r6, r7, lr}
- sub sp, #0x34
- str r0, [sp, #4]
- str r1, [sp, #8]
- add r0, r1, #0
- add r1, r2, #0
- str r2, [sp, #0xc]
- bl MOD11_02243400
- add r6, sp, #0x10
- mov r1, #0x11
- add r0, sp, #0x10
- strb r1, [r0]
- mov r0, #0
- ldr r4, [sp, #8]
- mov ip, r0
- ldr r1, _022558B0 ; =0x00002DCC
- add r0, r4, #0
- add r7, r0, r1
- ldr r0, _022558B4 ; =0x0000312C
- add r5, r6, #0
-_02255766:
- ldr r2, [sp, #8]
- mov r1, ip
- add r2, r2, r1
- ldr r1, _022558B8 ; =0x0000219C
- mov r3, #0
- ldrb r1, [r2, r1]
- strb r1, [r6, #4]
-_02255774:
- add r1, r4, r3
- ldrb r2, [r1, r0]
- add r1, r5, r3
- add r3, r3, #1
- strb r2, [r1, #8]
- cmp r3, #6
- blt _02255774
- ldr r1, [r7]
- add r2, r6, #0
- lsl r1, r1, #0xa
- lsr r1, r1, #0x1d
- add r2, #0x20
- strb r1, [r2]
- mov r1, ip
- add r1, r1, #1
- add r6, r6, #1
- add r4, r4, #6
- add r5, r5, #6
- add r7, #0xc0
- mov ip, r1
- cmp r1, #4
- blt _02255766
- ldr r0, [sp, #4]
- bl MOD11_0222FF74
- cmp r0, #0x4a
- bne _02255852
- mov r0, #1
- bl MaskOfFlagNo
- ldr r2, _022558BC ; =0x00003108
- ldr r1, [sp, #8]
- ldrb r1, [r1, r2]
- tst r0, r1
- bne _022557D8
- mov r0, #3
- bl MaskOfFlagNo
- ldr r2, _022558BC ; =0x00003108
- ldr r1, [sp, #8]
- ldrb r1, [r1, r2]
- tst r0, r1
- bne _022557D8
- mov r1, #1
- add r0, sp, #0x10
- strb r1, [r0, #1]
- mov r1, #0
- strb r1, [r0, #2]
- strb r1, [r0, #3]
- b _0225589C
-_022557D8:
- mov r0, #1
- bl MaskOfFlagNo
- ldr r2, _022558BC ; =0x00003108
- ldr r1, [sp, #8]
- add r3, sp, #0x10
- ldrb r1, [r1, r2]
- tst r0, r1
- bne _0225581E
- mov r0, #0
- mov r2, #0xba
- ldr r1, [sp, #8]
- strb r0, [r3, #1]
- lsl r2, r2, #6
- ldr r4, [r1, r2]
- ldr r1, _022558C0 ; =0x200400C0
- tst r1, r4
- beq _02255804
- mov r1, #1
- strb r1, [r3, #2]
- strb r0, [r3, #3]
- b _0225589C
-_02255804:
- ldr r1, [sp, #8]
- sub r2, #0x10
- ldr r2, [r1, r2]
- mov r1, #1
- lsl r1, r1, #0x18
- tst r1, r2
- strb r0, [r3, #2]
- beq _0225581A
- mov r0, #1
- strb r0, [r3, #3]
- b _0225589C
-_0225581A:
- strb r0, [r3, #3]
- b _0225589C
-_0225581E:
- mov r0, #0
- mov r2, #3
- ldr r1, [sp, #8]
- strb r0, [r3, #1]
- lsl r2, r2, #0xc
- ldr r4, [r1, r2]
- ldr r1, _022558C0 ; =0x200400C0
- tst r1, r4
- beq _02255838
- mov r1, #1
- strb r1, [r3, #2]
- strb r0, [r3, #3]
- b _0225589C
-_02255838:
- ldr r1, [sp, #8]
- sub r2, #0x10
- ldr r2, [r1, r2]
- mov r1, #1
- lsl r1, r1, #0x18
- tst r1, r2
- strb r0, [r3, #2]
- beq _0225584E
- mov r0, #1
- strb r0, [r3, #3]
- b _0225589C
-_0225584E:
- strb r0, [r3, #3]
- b _0225589C
-_02255852:
- ldr r0, [sp, #4]
- bl MOD11_0222FF74
- cmp r0, #0
- bne _02255892
- mov r2, #0xba
- mov r0, #0
- add r3, sp, #0x10
- ldr r1, [sp, #8]
- strb r0, [r3, #1]
- lsl r2, r2, #6
- ldr r4, [r1, r2]
- ldr r1, _022558C0 ; =0x200400C0
- tst r1, r4
- beq _02255878
- mov r1, #1
- strb r1, [r3, #2]
- strb r0, [r3, #3]
- b _0225589C
-_02255878:
- ldr r1, [sp, #8]
- sub r2, #0x10
- ldr r2, [r1, r2]
- mov r1, #1
- lsl r1, r1, #0x18
- tst r1, r2
- strb r0, [r3, #2]
- beq _0225588E
- mov r0, #1
- strb r0, [r3, #3]
- b _0225589C
-_0225588E:
- strb r0, [r3, #3]
- b _0225589C
-_02255892:
- mov r1, #0
- add r0, sp, #0x10
- strb r1, [r0, #1]
- strb r1, [r0, #2]
- strb r1, [r0, #3]
-_0225589C:
- mov r0, #0x24
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r2, [sp, #0xc]
- mov r1, #1
- add r3, sp, #0x10
- bl MOD11_02254878
- add sp, #0x34
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_022558B0: .word 0x00002DCC
-_022558B4: .word 0x0000312C
-_022558B8: .word 0x0000219C
-_022558BC: .word 0x00003108
-_022558C0: .word 0x200400C0
-
- thumb_func_start MOD11_022558C4
-MOD11_022558C4: ; 0x022558C4
- push {r0, r1, r2, r3}
- push {r3, lr}
- add r2, r1, #0
- mov r1, #4
- str r1, [sp]
- mov r1, #0
- add r3, sp, #0x10
- bl MOD11_02254878
- pop {r3}
- pop {r3}
- add sp, #0x10
- bx r3
- .align 2, 0
-
- thumb_func_start MOD11_022558E0
-MOD11_022558E0: ; 0x022558E0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x38
- str r0, [sp, #4]
- str r1, [sp, #8]
- add r0, r1, #0
- add r1, r2, #0
- str r2, [sp, #0xc]
- add r4, r3, #0
- bl MOD11_02243400
- mov r0, #0x12
- add r1, sp, #0x10
- strb r0, [r1]
- ldr r0, [sp, #0xc]
- add r7, sp, #0x10
- strb r0, [r1, #1]
- ldr r0, [sp, #0x50]
- strb r4, [r1, #2]
- str r0, [sp, #0x30]
- ldr r0, [sp, #0x54]
- ldr r5, [sp, #8]
- strb r0, [r1, #3]
- ldr r1, _02255958 ; =0x00003108
- ldr r0, [sp, #8]
- mov r3, #0
- ldrb r1, [r0, r1]
- add r0, sp, #0x30
- add r6, r7, #0
- strb r1, [r0, #4]
- ldr r0, _0225595C ; =0x0000312C
-_0225591C:
- ldr r1, [sp, #8]
- mov r4, #0
- add r2, r1, r3
- ldr r1, _02255960 ; =0x0000219C
- ldrb r1, [r2, r1]
- strb r1, [r7, #4]
-_02255928:
- add r1, r5, r4
- ldrb r2, [r1, r0]
- add r1, r6, r4
- add r4, r4, #1
- strb r2, [r1, #8]
- cmp r4, #6
- blt _02255928
- add r3, r3, #1
- add r7, r7, #1
- add r5, r5, #6
- add r6, r6, #6
- cmp r3, #4
- blt _0225591C
- mov r0, #0x28
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r2, [sp, #0xc]
- mov r1, #1
- add r3, sp, #0x10
- bl MOD11_02254878
- add sp, #0x38
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02255958: .word 0x00003108
-_0225595C: .word 0x0000312C
-_02255960: .word 0x0000219C
-
- thumb_func_start MOD11_02255964
-MOD11_02255964: ; 0x02255964
- push {r0, r1, r2, r3}
- push {r3, lr}
- add r2, r1, #0
- mov r1, #4
- str r1, [sp]
- mov r1, #0
- add r3, sp, #0x10
- bl MOD11_02254878
- pop {r3}
- pop {r3}
- add sp, #0x10
- bx r3
- .align 2, 0
-
- thumb_func_start MOD11_02255980
-MOD11_02255980: ; 0x02255980
- push {r4, r5, r6, lr}
- sub sp, #0x10
- add r5, r2, #0
- add r6, r0, #0
- add r0, r1, #0
- add r1, r5, #0
- add r4, r3, #0
- bl MOD11_02243400
- mov r1, #0x13
- add r0, sp, #4
- strb r1, [r0]
- ldr r1, [sp, #0x20]
- strh r4, [r0, #2]
- strb r1, [r0, #1]
- ldr r0, [sp, #0x24]
- mov r1, #1
- str r0, [sp, #8]
- ldr r0, [sp, #0x28]
- add r2, r5, #0
- str r0, [sp, #0xc]
- mov r0, #0xc
- str r0, [sp]
- add r0, r6, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #0x10
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022559BC
-MOD11_022559BC: ; 0x022559BC
- push {r4, lr}
- sub sp, #8
- add r2, r1, #0
- mov r1, #0x14
- add r3, sp, #4
- strb r1, [r3]
- ldr r1, [r2, #0x64]
- add r4, r2, r1
- ldr r1, _022559EC ; =0x0000219C
- ldrb r1, [r4, r1]
- strb r1, [r3, #1]
- ldr r1, _022559F0 ; =0x00003044
- ldr r1, [r2, r1]
- strh r1, [r3, #2]
- mov r1, #4
- str r1, [sp]
- ldr r2, [r2, #0x64]
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r4, pc}
- nop
-_022559EC: .word 0x0000219C
-_022559F0: .word 0x00003044
-
- thumb_func_start MOD11_022559F4
-MOD11_022559F4: ; 0x022559F4
- push {r3, r4, lr}
- sub sp, #4
- add r4, r1, #0
- add r3, r2, #0
- mov r1, #0x15
- strb r1, [r3]
- mov r1, #0x24
- str r1, [sp]
- ldr r2, [r4, #0x64]
- mov r1, #1
- bl MOD11_02254878
- add sp, #4
- pop {r3, r4, pc}
-
- thumb_func_start MOD11_02255A10
-MOD11_02255A10: ; 0x02255A10
- push {r4, r5, r6, lr}
- sub sp, #0x68
- mov r3, #0
- add r4, r1, #0
- str r3, [sp]
- ldr r6, [r4, #0x64]
- add r5, r0, #0
- str r6, [sp, #4]
- ldr r6, [r4, #0x6c]
- str r6, [sp, #8]
- str r2, [sp, #0xc]
- add r2, sp, #0x10
- bl MOD11_02256854
- mov r0, #0x58
- str r0, [sp]
- ldr r2, [r4, #0x64]
- add r0, r5, #0
- mov r1, #1
- add r3, sp, #0x10
- bl MOD11_02254878
- add sp, #0x68
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_02255A40
-MOD11_02255A40: ; 0x02255A40
- push {r4, r5, r6, lr}
- sub sp, #0x68
- add r4, r3, #0
- mov r3, #0
- str r3, [sp]
- ldr r6, [sp, #0x78]
- str r4, [sp, #4]
- str r6, [sp, #8]
- str r2, [sp, #0xc]
- add r2, sp, #0x10
- add r5, r0, #0
- bl MOD11_02256854
- mov r0, #0x58
- str r0, [sp]
- add r0, r5, #0
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #0x10
- bl MOD11_02254878
- add sp, #0x68
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02255A70
-MOD11_02255A70: ; 0x02255A70
- push {r3, lr}
- sub sp, #8
- add r2, r1, #0
- mov r1, #0x17
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02255A8C
-MOD11_02255A8C: ; 0x02255A8C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x20
- add r5, r1, #0
- str r2, [sp, #8]
- add r1, r2, #0
- add r3, r5, r2
- ldr r2, _02255B50 ; =0x0000219C
- str r0, [sp, #4]
- ldrb r2, [r3, r2]
- bl MOD11_02230014
- add r4, r0, #0
- mov r1, #5
- mov r2, #0
- bl GetMonDataEncrypted
- add r7, r0, #0
- add r0, r4, #0
- mov r1, #0xa0
- mov r2, #0
- bl GetMonDataEncrypted
- add r6, r0, #0
- mov r0, #0x18
- add r2, sp, #0xc
- strb r0, [r2]
- ldr r0, [sp, #8]
- mov r1, #0xc0
- add r4, r0, #0
- mul r4, r1
- ldr r1, _02255B54 ; =0x00002D74
- add r0, r5, r4
- ldrb r3, [r0, r1]
- strb r3, [r2, #1]
- add r3, r1, #0
- add r3, #0x18
- ldr r3, [r0, r3]
- strh r3, [r2, #2]
- add r3, r1, #0
- add r3, #0x1c
- ldr r3, [r0, r3]
- sub r1, #0x34
- strh r3, [r2, #4]
- ldr r2, _02255B58 ; =0x0000215C
- ldr r2, [r5, r2]
- str r2, [sp, #0x14]
- ldrh r0, [r0, r1]
- cmp r0, #0x1d
- beq _02255AF2
- cmp r0, #0x20
- bne _02255B04
-_02255AF2:
- ldr r0, _02255B5C ; =0x00002D54
- add r1, r5, r4
- ldr r0, [r1, r0]
- lsr r0, r0, #0x1f
- bne _02255B04
- mov r1, #2
- add r0, sp, #0xc
- strb r1, [r0, #7]
- b _02255B12
-_02255B04:
- ldr r0, _02255B60 ; =0x00002DBE
- add r1, r5, r4
- ldrb r0, [r1, r0]
- lsl r0, r0, #0x1c
- lsr r1, r0, #0x1c
- add r0, sp, #0xc
- strb r1, [r0, #7]
-_02255B12:
- add r0, r7, #0
- add r1, r6, #0
- bl GetMonExpByLevel
- ldr r1, _02255B64 ; =0x00002DA4
- add r2, r5, r4
- ldr r1, [r2, r1]
- sub r0, r1, r0
- str r0, [sp, #0x18]
- add r0, r7, #0
- add r1, r6, #1
- bl GetMonExpByLevel
- add r4, r0, #0
- add r0, r7, #0
- add r1, r6, #0
- bl GetMonExpByLevel
- sub r0, r4, r0
- str r0, [sp, #0x1c]
- mov r0, #0x14
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r2, [sp, #8]
- mov r1, #1
- add r3, sp, #0xc
- bl MOD11_02254878
- add sp, #0x20
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02255B50: .word 0x0000219C
-_02255B54: .word 0x00002D74
-_02255B58: .word 0x0000215C
-_02255B5C: .word 0x00002D54
-_02255B60: .word 0x00002DBE
-_02255B64: .word 0x00002DA4
-
- thumb_func_start MOD11_02255B68
-MOD11_02255B68: ; 0x02255B68
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- add r4, r2, #0
- add r5, r1, #0
- str r3, [sp, #8]
- ldr r2, _02255BE4 ; =0x0000219C
- add r3, r5, r4
- ldrb r2, [r3, r2]
- add r1, r4, #0
- str r0, [sp, #4]
- bl MOD11_02230014
- add r6, r0, #0
- mov r1, #5
- mov r2, #0
- bl GetMonDataEncrypted
- add r7, r0, #0
- add r0, r6, #0
- mov r1, #0xa0
- mov r2, #0
- bl GetMonDataEncrypted
- add r6, r0, #0
- mov r1, #0x19
- add r0, sp, #0xc
- strb r1, [r0]
- ldr r0, [sp, #8]
- add r1, r6, #0
- str r0, [sp, #0x10]
- add r0, r7, #0
- bl GetMonExpByLevel
- mov r1, #0xc0
- mul r1, r4
- add r2, r5, r1
- ldr r1, _02255BE8 ; =0x00002DA4
- ldr r1, [r2, r1]
- sub r0, r1, r0
- str r0, [sp, #0x14]
- add r0, r7, #0
- add r1, r6, #1
- bl GetMonExpByLevel
- add r5, r0, #0
- add r0, r7, #0
- add r1, r6, #0
- bl GetMonExpByLevel
- sub r0, r5, r0
- str r0, [sp, #0x18]
- mov r0, #0x10
- str r0, [sp]
- ldr r0, [sp, #4]
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #0xc
- bl MOD11_02254878
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- nop
-_02255BE4: .word 0x0000219C
-_02255BE8: .word 0x00002DA4
-
- thumb_func_start MOD11_02255BEC
-MOD11_02255BEC: ; 0x02255BEC
- push {r4, r5, r6, r7, lr}
- sub sp, #0x3c
- str r0, [sp, #4]
- add r0, r1, #0
- mov ip, r2
- mov r5, #0xb5
- mov r2, #0x1a
- add r1, sp, #0xc
- strb r2, [r1]
- mov r3, #0xc0
- mov r2, ip
- mul r3, r2
- add r2, r0, r3
- lsl r5, r5, #6
- ldrh r4, [r2, r5]
- strh r4, [r1, #2]
- add r4, r5, #0
- add r4, #0x26
- ldrb r2, [r2, r4]
- add r5, #0x70
- lsl r2, r2, #0x1b
- lsr r2, r2, #0x1b
- strb r2, [r1, #8]
- add r2, r0, r5
- mov r1, #1
- ldr r4, [r2, r3]
- lsl r1, r1, #0x18
- tst r1, r4
- beq _02255C2A
- mov r4, #1
- b _02255C2C
-_02255C2A:
- mov r4, #0
-_02255C2C:
- add r1, sp, #0xc
- strb r4, [r1, #9]
- mov r1, #2
- ldr r4, [r2, r3]
- lsl r1, r1, #0x14
- tst r1, r4
- beq _02255C3E
- mov r4, #1
- b _02255C40
-_02255C3E:
- mov r4, #0
-_02255C40:
- add r1, sp, #0xc
- strb r4, [r1, #0xa]
- ldr r4, [r2, r3]
- mov r2, #2
- lsl r2, r2, #0x14
- tst r2, r4
- beq _02255C5E
- ldr r2, _02255CE8 ; =0x00002DFA
- add r4, r0, r3
- ldrh r3, [r4, r2]
- sub r2, #0x16
- strb r3, [r1, #1]
- ldr r1, [r4, r2]
- str r1, [sp, #0x10]
- b _02255C70
-_02255C5E:
- ldr r2, _02255CEC ; =0x00002DBE
- add r4, r0, r3
- ldrb r3, [r4, r2]
- sub r2, #0x16
- lsl r3, r3, #0x1c
- lsr r3, r3, #0x1c
- strb r3, [r1, #1]
- ldr r1, [r4, r2]
- str r1, [sp, #0x10]
-_02255C70:
- mov r1, #0
- str r1, [sp, #8]
- ldr r1, _02255CF0 ; =0x00002D66
- add r7, sp, #0xc
- add r3, r0, r1
- add r1, #0x58
- add r4, r7, #0
- add r5, r7, #0
- add r6, r0, r1
-_02255C82:
- mov r1, #0xb5
- lsl r1, r1, #6
- ldrh r1, [r0, r1]
- strh r1, [r7, #0xc]
- ldrb r1, [r3]
- lsl r1, r1, #0x1a
- lsr r1, r1, #0x1f
- strb r1, [r4, #0x18]
- ldrb r1, [r3]
- lsl r1, r1, #0x1b
- lsr r1, r1, #0x1b
- strb r1, [r4, #0x1c]
- ldr r1, _02255CF4 ; =0x00002DB0
- ldr r2, [r0, r1]
- mov r1, #2
- lsl r1, r1, #0x14
- tst r1, r2
- beq _02255CB0
- ldr r1, _02255CE8 ; =0x00002DFA
- ldrh r1, [r0, r1]
- strb r1, [r4, #0x14]
- ldr r1, _02255CF8 ; =0x00002DE4
- b _02255CBA
-_02255CB0:
- ldrb r1, [r6]
- lsl r1, r1, #0x1c
- lsr r1, r1, #0x1c
- strb r1, [r4, #0x14]
- ldr r1, _02255CFC ; =0x00002DA8
-_02255CBA:
- ldr r1, [r0, r1]
- add r0, #0xc0
- str r1, [r5, #0x20]
- ldr r1, [sp, #8]
- add r7, r7, #2
- add r1, r1, #1
- add r3, #0xc0
- add r4, r4, #1
- add r5, r5, #4
- add r6, #0xc0
- str r1, [sp, #8]
- cmp r1, #4
- blt _02255C82
- mov r0, #0x30
- str r0, [sp]
- ldr r0, [sp, #4]
- mov r1, #1
- mov r2, ip
- add r3, sp, #0xc
- bl MOD11_02254878
- add sp, #0x3c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02255CE8: .word 0x00002DFA
-_02255CEC: .word 0x00002DBE
-_02255CF0: .word 0x00002D66
-_02255CF4: .word 0x00002DB0
-_02255CF8: .word 0x00002DE4
-_02255CFC: .word 0x00002DA8
-
- thumb_func_start MOD11_02255D00
-MOD11_02255D00: ; 0x02255D00
- push {r4, lr}
- sub sp, #8
- mov r4, #0x1b
- add r1, sp, #4
- strb r4, [r1]
- strh r2, [r1, #2]
- mov r1, #4
- str r1, [sp]
- add r2, r3, #0
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02255D20
-MOD11_02255D20: ; 0x02255D20
- push {r3, lr}
- sub sp, #8
- mov r1, #0x1c
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- mov r2, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02255D3C
-MOD11_02255D3C: ; 0x02255D3C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x30
- mov ip, r1
- mov r3, #0x1d
- add r1, sp, #8
- strb r3, [r1]
- strb r2, [r1, #1]
- ldr r3, [r0, #0x30]
- mov r2, #0xc0
- mov r1, ip
- mul r2, r1
- ldr r1, _02255DF4 ; =0x00002DB0
- add r2, r3, r2
- ldr r2, [r2, r1]
- mov r1, #1
- lsl r1, r1, #0x18
- tst r1, r2
- beq _02255D64
- mov r2, #1
- b _02255D66
-_02255D64:
- mov r2, #0
-_02255D66:
- add r7, sp, #8
- add r1, sp, #8
- mov r3, #0
- strb r2, [r1, #2]
- str r3, [sp, #4]
- add r4, r7, #0
- add r5, r7, #0
-_02255D74:
- ldr r1, [r0, #0x30]
- add r2, r1, r3
- mov r1, #0xb5
- lsl r1, r1, #6
- ldrh r1, [r2, r1]
- strh r1, [r7, #4]
- ldr r1, [r0, #0x30]
- add r2, r1, r3
- ldr r1, _02255DF8 ; =0x00002D66
- ldrb r1, [r2, r1]
- lsl r1, r1, #0x1a
- lsr r1, r1, #0x1f
- strb r1, [r4, #0x10]
- ldr r1, [r0, #0x30]
- add r2, r1, r3
- ldr r1, _02255DF8 ; =0x00002D66
- ldrb r1, [r2, r1]
- lsl r1, r1, #0x1b
- lsr r1, r1, #0x1b
- strb r1, [r4, #0x14]
- ldr r1, [r0, #0x30]
- add r6, r1, r3
- ldr r1, _02255DF4 ; =0x00002DB0
- ldr r2, [r6, r1]
- mov r1, #2
- lsl r1, r1, #0x14
- tst r1, r2
- beq _02255DBA
- ldr r1, _02255DFC ; =0x00002DFA
- ldrh r1, [r6, r1]
- strb r1, [r4, #0xc]
- ldr r1, [r0, #0x30]
- add r2, r1, r3
- ldr r1, _02255E00 ; =0x00002DE4
- b _02255DCA
-_02255DBA:
- ldr r1, _02255E04 ; =0x00002DBE
- ldrb r1, [r6, r1]
- lsl r1, r1, #0x1c
- lsr r1, r1, #0x1c
- strb r1, [r4, #0xc]
- ldr r1, [r0, #0x30]
- add r2, r1, r3
- ldr r1, _02255E08 ; =0x00002DA8
-_02255DCA:
- ldr r1, [r2, r1]
- add r3, #0xc0
- str r1, [r5, #0x18]
- ldr r1, [sp, #4]
- add r7, r7, #2
- add r1, r1, #1
- add r4, r4, #1
- add r5, r5, #4
- str r1, [sp, #4]
- cmp r1, #4
- blt _02255D74
- mov r1, #0x28
- str r1, [sp]
- mov r1, #1
- mov r2, ip
- add r3, sp, #8
- bl MOD11_02254878
- add sp, #0x30
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02255DF4: .word 0x00002DB0
-_02255DF8: .word 0x00002D66
-_02255DFC: .word 0x00002DFA
-_02255E00: .word 0x00002DE4
-_02255E04: .word 0x00002DBE
-_02255E08: .word 0x00002DA8
-
- thumb_func_start MOD11_02255E0C
-MOD11_02255E0C: ; 0x02255E0C
- push {r4, lr}
- sub sp, #8
- add r4, r1, #0
- mov r3, #0x1e
- add r1, sp, #4
- strb r3, [r1]
- strb r2, [r1, #1]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r4, pc}
-
- thumb_func_start MOD11_02255E2C
-MOD11_02255E2C: ; 0x02255E2C
- push {r4, lr}
- sub sp, #8
- add r4, r1, #0
- mov r3, #0x1f
- add r1, sp, #4
- strb r3, [r1]
- strb r2, [r1, #1]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r4, pc}
-
- thumb_func_start MOD11_02255E4C
-MOD11_02255E4C: ; 0x02255E4C
- push {r3, r4, r5, lr}
- sub sp, #0x68
- add r4, r2, #0
- str r3, [sp]
- str r4, [sp, #4]
- str r4, [sp, #8]
- mov r2, #0
- str r2, [sp, #0xc]
- add r2, sp, #0x10
- mov r3, #1
- add r5, r0, #0
- bl MOD11_02256854
- mov r0, #0x58
- str r0, [sp]
- add r0, r5, #0
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #0x10
- bl MOD11_02254878
- add sp, #0x68
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02255E7C
-MOD11_02255E7C: ; 0x02255E7C
- push {r3, r4, r5, lr}
- sub sp, #0x68
- add r4, r2, #0
- ldr r2, [sp, #0x78]
- add r5, r0, #0
- str r2, [sp]
- str r4, [sp, #4]
- str r3, [sp, #8]
- mov r2, #0
- str r2, [sp, #0xc]
- add r2, sp, #0x10
- mov r3, #1
- bl MOD11_02256854
- mov r0, #0x58
- str r0, [sp]
- add r0, r5, #0
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #0x10
- bl MOD11_02254878
- add sp, #0x68
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02255EAC
-MOD11_02255EAC: ; 0x02255EAC
- push {r3, r4, r5, lr}
- sub sp, #8
- add r5, r0, #0
- add r4, r2, #0
- mov r2, #0x20
- add r0, sp, #4
- strb r2, [r0]
- strb r3, [r0, #1]
- ldr r0, _02255EE8 ; =0x00003122
- ldrsh r2, [r1, r0]
- ldr r0, _02255EEC ; =0x00002E4C
- ldr r0, [r1, r0]
- sub r1, r2, r0
- mov r0, #0x64
- mul r0, r1
- add r1, r2, #0
- bl _s32_div_f
- add r1, sp, #4
- strh r0, [r1, #2]
- mov r0, #4
- str r0, [sp]
- add r0, r5, #0
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02255EE8: .word 0x00003122
-_02255EEC: .word 0x00002E4C
-
- thumb_func_start MOD11_02255EF0
-MOD11_02255EF0: ; 0x02255EF0
- push {r4, r5, r6, lr}
- sub sp, #8
- add r5, r0, #0
- add r6, r1, #0
- add r4, r2, #0
- mov r1, #0x21
- add r0, sp, #4
- strb r1, [r0]
- ldr r2, _02255F38 ; =0x00002E4C
- strb r3, [r0, #1]
- ldr r1, [r6, r2]
- cmp r1, #0
- bne _02255F12
- mov r1, #0xfa
- lsl r1, r1, #2
- strh r1, [r0, #2]
- b _02255F24
-_02255F12:
- mov r0, #0xfa
- lsl r0, r0, #2
- mul r0, r1
- add r1, r2, #4
- ldr r1, [r6, r1]
- bl _u32_div_f
- add r1, sp, #4
- strh r0, [r1, #2]
-_02255F24:
- mov r0, #4
- str r0, [sp]
- add r0, r5, #0
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r4, r5, r6, pc}
- .align 2, 0
-_02255F38: .word 0x00002E4C
-
- thumb_func_start MOD11_02255F3C
-MOD11_02255F3C: ; 0x02255F3C
- push {r3, lr}
- sub sp, #8
- mov r1, #0x22
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
-
- thumb_func_start MOD11_02255F54
-MOD11_02255F54: ; 0x02255F54
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r7, r1, #0
- str r2, [sp, #4]
- mov r2, #0x23
- add r1, sp, #8
- add r6, r0, #0
- strb r2, [r1]
- mov r4, #0
- bl MOD11_0222FF84
- cmp r0, #0
- ble _02255F86
- add r5, sp, #8
-_02255F70:
- ldr r0, _02255F9C ; =0x0000219C
- add r1, r7, r4
- ldrb r0, [r1, r0]
- add r4, r4, #1
- strb r0, [r5, #4]
- add r0, r6, #0
- add r5, r5, #1
- bl MOD11_0222FF84
- cmp r4, r0
- blt _02255F70
-_02255F86:
- mov r0, #8
- str r0, [sp]
- ldr r2, [sp, #4]
- add r0, r6, #0
- mov r1, #1
- add r3, sp, #8
- bl MOD11_02254878
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02255F9C: .word 0x0000219C
-
- thumb_func_start MOD11_02255FA0
-MOD11_02255FA0: ; 0x02255FA0
- push {r3, lr}
- sub sp, #8
- add r2, r1, #0
- mov r1, #0x24
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02255FBC
-MOD11_02255FBC: ; 0x02255FBC
- push {r0, r1, r2, r3}
- push {r3, r4, r5, r6, lr}
- sub sp, #0x2c
- add r4, r1, #0
- add r5, r0, #0
- bl MOD11_0222FF78
- add r1, r4, #0
- bl MOD11_02243400
- mov r1, #0x25
- add r0, sp, #4
- strb r1, [r0]
- add r6, sp, #0x48
- add r3, sp, #8
- mov r2, #4
-_02255FDC:
- ldmia r6!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _02255FDC
- ldr r0, [r6]
- mov r1, #1
- str r0, [r3]
- mov r0, #0x28
- str r0, [sp]
- add r0, r5, #0
- add r2, r4, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #0x2c
- pop {r3, r4, r5, r6}
- pop {r3}
- add sp, #0x10
- bx r3
- .align 2, 0
-
- thumb_func_start MOD11_02256004
-MOD11_02256004: ; 0x02256004
- push {r3, lr}
- sub sp, #8
- add r2, r1, #0
- mov r1, #1
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02256020
-MOD11_02256020: ; 0x02256020
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- add r5, r1, #0
- ldr r1, _0225613C ; =0x0000219C
- add r4, r2, #0
- add r7, r5, r1
- ldrb r2, [r7, r4]
- add r1, r4, #0
- str r0, [sp, #4]
- bl MOD11_02230014
- add r6, r0, #0
- mov r1, #5
- mov r2, #0
- bl GetMonDataEncrypted
- str r0, [sp, #0xc]
- add r0, r6, #0
- mov r1, #0xa0
- mov r2, #0
- bl GetMonDataEncrypted
- str r0, [sp, #8]
- mov r0, #0x26
- add r2, sp, #0x10
- strb r0, [r2]
- mov r0, #0xc0
- add r6, r4, #0
- mul r6, r0
- ldr r1, _02256140 ; =0x00002D74
- add r0, r5, r6
- ldrb r3, [r0, r1]
- strb r3, [r2, #1]
- add r3, r1, #0
- add r3, #0x18
- ldr r3, [r0, r3]
- add r1, #0x1c
- strh r3, [r2, #2]
- ldr r0, [r0, r1]
- add r1, r4, #0
- strh r0, [r2, #4]
- ldrb r0, [r7, r4]
- strb r0, [r2, #6]
- add r0, r5, #0
- bl MOD11_0224524C
- add r1, sp, #0x10
- ldrb r2, [r1, #7]
- mov r3, #0x1f
- lsl r0, r0, #0x18
- bic r2, r3
- lsr r3, r0, #0x18
- mov r0, #0x1f
- and r0, r3
- orr r0, r2
- strb r0, [r1, #7]
- mov r0, #0xb5
- lsl r0, r0, #6
- add r7, r5, r0
- ldrh r0, [r7, r6]
- cmp r0, #0x1d
- beq _022560A0
- cmp r0, #0x20
- bne _022560BA
-_022560A0:
- ldr r0, _02256144 ; =0x00002D54
- add r1, r5, r6
- ldr r0, [r1, r0]
- lsr r0, r0, #0x1f
- bne _022560BA
- add r0, sp, #0x10
- ldrb r1, [r0, #7]
- mov r2, #0x60
- bic r1, r2
- mov r2, #0x40
- orr r1, r2
- strb r1, [r0, #7]
- b _022560D4
-_022560BA:
- add r3, sp, #0x10
- ldrb r2, [r3, #7]
- mov r0, #0x60
- add r1, r5, r6
- bic r2, r0
- ldr r0, _02256148 ; =0x00002DBE
- ldrb r0, [r1, r0]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1c
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x19
- orr r0, r2
- strb r0, [r3, #7]
-_022560D4:
- ldr r0, [sp, #0xc]
- ldr r1, [sp, #8]
- bl GetMonExpByLevel
- mov r1, #0xc0
- mul r1, r4
- add r2, r5, r1
- ldr r1, _0225614C ; =0x00002DA4
- ldr r1, [r2, r1]
- sub r0, r1, r0
- ldr r1, [sp, #8]
- str r0, [sp, #0x18]
- ldr r0, [sp, #0xc]
- add r1, r1, #1
- bl GetMonExpByLevel
- add r5, r0, #0
- ldr r0, [sp, #0xc]
- ldr r1, [sp, #8]
- bl GetMonExpByLevel
- sub r0, r5, r0
- str r0, [sp, #0x1c]
- ldrh r1, [r7, r6]
- ldr r0, [sp, #4]
- bl MOD11_02231668
- add r3, sp, #0x10
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- lsl r0, r0, #0x1f
- ldrb r1, [r3, #7]
- mov r2, #0x80
- lsr r0, r0, #0x18
- bic r1, r2
- orr r0, r1
- strb r0, [r3, #7]
- ldr r0, [sp, #4]
- bl MOD11_02230E00
- str r0, [sp, #0x20]
- mov r0, #0x14
- str r0, [sp]
- ldr r0, [sp, #4]
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #0x10
- bl MOD11_02254878
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- nop
-_0225613C: .word 0x0000219C
-_02256140: .word 0x00002D74
-_02256144: .word 0x00002D54
-_02256148: .word 0x00002DBE
-_0225614C: .word 0x00002DA4
-
- thumb_func_start MOD11_02256150
-MOD11_02256150: ; 0x02256150
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x30
- add r6, r1, #0
- str r2, [sp, #8]
- mov r1, #0x27
- add r2, sp, #0x10
- strb r1, [r2]
- ldrb r1, [r2, #1]
- mov r3, #0xf
- str r0, [sp, #4]
- bic r1, r3
- ldr r3, [sp, #8]
- add r4, r6, r3
- ldr r3, _02256230 ; =0x0000219C
- ldrb r4, [r4, r3]
- mov r3, #0xf
- and r3, r4
- orr r1, r3
- strb r1, [r2, #1]
- ldr r1, [sp, #8]
- mov r3, #0xc0
- mul r3, r1
- ldrb r4, [r2, #1]
- mov r1, #0xf0
- str r3, [sp, #0xc]
- bic r4, r1
- add r1, r3, #0
- add r3, r6, r1
- ldr r1, _02256234 ; =0x00002DCC
- ldr r5, [r3, r1]
- lsl r5, r5, #0x1a
- lsr r5, r5, #0x1c
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- lsl r5, r5, #0x1c
- lsr r5, r5, #0x18
- orr r4, r5
- strb r4, [r2, #1]
- add r4, r1, #0
- sub r4, #0x40
- ldr r4, [r3, r4]
- sub r1, #0x14
- strh r4, [r2, #2]
- ldrh r1, [r3, r1]
- strh r1, [r2, #0xc]
- ldr r1, [sp, #8]
- bl MOD11_02230270
- lsl r0, r0, #3
- add r1, r6, r0
- mov r0, #0x71
- lsl r0, r0, #2
- ldr r0, [r1, r0]
- ldr r1, [sp, #8]
- mov r2, #0xc0
- mul r2, r1
- lsl r0, r0, #3
- lsr r0, r0, #0x1a
- add r1, r6, r2
- mov ip, r2
- add r2, sp, #0x10
- str r0, [sp, #0x18]
- ldr r7, _02256238 ; =0x00002D6C
- mov r0, #0
- add r3, r1, #0
- add r4, r2, #0
-_022561D4:
- ldr r5, _0225623C ; =0x00002D4C
- add r0, r0, #1
- ldrh r5, [r1, r5]
- add r1, r1, #2
- strh r5, [r2, #0xe]
- ldrb r5, [r3, r7]
- add r2, r2, #2
- add r3, r3, #1
- strb r5, [r4, #0x16]
- add r4, r4, #1
- cmp r0, #4
- blt _022561D4
- add r1, sp, #0x10
- mov r0, #2
- ldrsh r0, [r1, r0]
- cmp r0, #0
- beq _0225620C
- mov r0, ip
- add r3, r6, r0
- ldr r0, _02256240 ; =0x00002DAC
- ldr r1, _02256244 ; =0xFFFFF0FF
- ldr r2, [r3, r0]
- add r0, r0, #4
- and r1, r2
- str r1, [sp, #0x14]
- ldr r0, [r3, r0]
- str r0, [sp, #0x2c]
- b _0225621A
-_0225620C:
- mov r0, #0
- str r0, [sp, #0x14]
- ldr r0, [sp, #0xc]
- add r1, r6, r0
- ldr r0, _02256248 ; =0x00002DB0
- ldr r0, [r1, r0]
- str r0, [sp, #0x2c]
-_0225621A:
- mov r0, #0x20
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r2, [sp, #8]
- mov r1, #1
- add r3, sp, #0x10
- bl MOD11_02254878
- add sp, #0x30
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02256230: .word 0x0000219C
-_02256234: .word 0x00002DCC
-_02256238: .word 0x00002D6C
-_0225623C: .word 0x00002D4C
-_02256240: .word 0x00002DAC
-_02256244: .word 0xFFFFF0FF
-_02256248: .word 0x00002DB0
-
- thumb_func_start MOD11_0225624C
-MOD11_0225624C: ; 0x0225624C
- push {r3, lr}
- sub sp, #8
- add r2, r1, #0
- mov r1, #0x28
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02256268
-MOD11_02256268: ; 0x02256268
- push {r3, lr}
- sub sp, #8
- add r2, r1, #0
- mov r1, #0x29
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02256284
-MOD11_02256284: ; 0x02256284
- push {r3, r4, r5, lr}
- sub sp, #8
- mov r5, #0x2a
- add r4, sp, #4
- strb r5, [r4]
- strh r3, [r4, #2]
- mov r3, #0xc0
- mul r3, r2
- add r3, r1, r3
- ldr r1, _022562AC ; =0x00002D67
- ldrb r1, [r3, r1]
- add r3, sp, #4
- strb r1, [r4, #1]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- bl MOD11_02254878
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-_022562AC: .word 0x00002D67
-
- thumb_func_start MOD11_022562B0
-MOD11_022562B0: ; 0x022562B0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r1, #0
- add r7, r0, #0
- add r4, r2, #0
- add r6, r3, #0
- bl MOD11_0222FF78
- add r1, r5, #0
- bl MOD11_02243400
- mov r1, #0x2b
- add r0, sp, #4
- strb r1, [r0]
- strh r4, [r0, #2]
- strb r6, [r0, #1]
- mov r0, #4
- str r0, [sp]
- add r0, r7, #0
- mov r1, #1
- add r2, r5, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_022562E4
-MOD11_022562E4: ; 0x022562E4
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- mov r5, #0x2c
- add r1, sp, #4
- strb r5, [r1]
- strb r2, [r1, #1]
- strb r3, [r1, #2]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02256308
-MOD11_02256308: ; 0x02256308
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r7, r1, #0
- mov r1, #0x2d
- add r3, sp, #4
- strb r1, [r3]
- mov r1, #0xc0
- add r6, r7, #0
- mul r6, r1
- ldr r1, [r0, #0x30]
- add r2, r1, r6
- mov r1, #0xb5
- lsl r1, r1, #6
- ldrh r2, [r2, r1]
- strh r2, [r3, #2]
- ldr r2, [r0, #0x30]
- add r4, r2, r6
- add r2, r1, #0
- add r2, #0x26
- ldrb r2, [r4, r2]
- lsl r2, r2, #0x1a
- lsr r2, r2, #0x1f
- strb r2, [r3, #5]
- ldr r2, [r0, #0x30]
- add r5, r2, r6
- add r2, r1, #0
- add r2, #0x70
- ldr r4, [r5, r2]
- mov r2, #2
- lsl r2, r2, #0x14
- tst r2, r4
- beq _0225635C
- add r2, r1, #0
- add r2, #0xba
- ldrh r2, [r5, r2]
- add r1, #0xa4
- strb r2, [r3, #4]
- ldr r2, [r0, #0x30]
- add r2, r2, r6
- ldr r1, [r2, r1]
- str r1, [sp, #0xc]
- b _02256372
-_0225635C:
- add r2, r1, #0
- add r2, #0x7e
- ldrb r2, [r5, r2]
- add r1, #0x68
- lsl r2, r2, #0x1c
- lsr r2, r2, #0x1c
- strb r2, [r3, #4]
- ldr r2, [r0, #0x30]
- add r2, r2, r6
- ldr r1, [r2, r1]
- str r1, [sp, #0xc]
-_02256372:
- ldr r1, [r0, #0x30]
- add r3, sp, #4
- add r2, r1, r6
- ldr r1, _02256394 ; =0x00002D66
- ldrb r1, [r2, r1]
- lsl r1, r1, #0x1b
- lsr r2, r1, #0x1b
- add r1, sp, #4
- strb r2, [r1, #1]
- mov r1, #0xc
- str r1, [sp]
- mov r1, #1
- add r2, r7, #0
- bl MOD11_02254878
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02256394: .word 0x00002D66
-
- thumb_func_start MOD11_02256398
-MOD11_02256398: ; 0x02256398
- push {r3, lr}
- sub sp, #8
- add r2, r1, #0
- mov r1, #0x2e
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022563B4
-MOD11_022563B4: ; 0x022563B4
- push {r3, lr}
- sub sp, #8
- add r2, r1, #0
- mov r1, #0x2f
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022563D0
-MOD11_022563D0: ; 0x022563D0
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- str r4, [sp]
- ldr r1, [r5, #0x30]
- add r2, sp, #4
- mov r3, #0x30
- bl MOD11_022569DC
- mov r0, #8
- str r0, [sp]
- add r0, r5, #0
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #0xc
- pop {r4, r5, pc}
-
- thumb_func_start MOD11_022563F8
-MOD11_022563F8: ; 0x022563F8
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- str r4, [sp]
- ldr r1, [r5, #0x30]
- add r2, sp, #4
- mov r3, #0x31
- bl MOD11_022569DC
- mov r0, #8
- str r0, [sp]
- add r0, r5, #0
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #0xc
- pop {r4, r5, pc}
-
- thumb_func_start MOD11_02256420
-MOD11_02256420: ; 0x02256420
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- str r4, [sp]
- ldr r1, [r5, #0x30]
- add r2, sp, #4
- mov r3, #0x32
- bl MOD11_022569DC
- mov r0, #8
- str r0, [sp]
- add r0, r5, #0
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #0xc
- pop {r4, r5, pc}
-
- thumb_func_start MOD11_02256448
-MOD11_02256448: ; 0x02256448
- push {r4, r5, lr}
- sub sp, #0xc
- add r4, r1, #0
- add r5, r0, #0
- str r4, [sp]
- ldr r1, [r5, #0x30]
- add r2, sp, #4
- mov r3, #0x33
- bl MOD11_022569DC
- mov r0, #8
- str r0, [sp]
- add r0, r5, #0
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #0xc
- pop {r4, r5, pc}
-
- thumb_func_start MOD11_02256470
-MOD11_02256470: ; 0x02256470
- push {r3, lr}
- sub sp, #8
- mov r1, #0x34
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- mov r2, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225648C
-MOD11_0225648C: ; 0x0225648C
- push {r3, lr}
- sub sp, #8
- mov r1, #0x35
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- mov r2, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022564A8
-MOD11_022564A8: ; 0x022564A8
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- mov r5, #0x36
- add r1, sp, #4
- strb r5, [r1]
- strb r2, [r1, #1]
- strh r3, [r1, #2]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022564CC
-MOD11_022564CC: ; 0x022564CC
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- mov r1, #0x37
- add r5, r0, #0
- str r1, [sp, #4]
- bl MOD11_0222FF74
- mov r1, #4
- tst r0, r1
- beq _022564F0
- str r1, [sp]
- add r0, r5, #0
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #4
- bl MOD11_02254878
-_022564F0:
- add sp, #8
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_022564F4
-MOD11_022564F4: ; 0x022564F4
- push {r4, r5, r6, r7, lr}
- sub sp, #0x64
- str r0, [sp, #4]
- add r0, r1, #0
- str r2, [sp, #8]
- mov r2, #0x38
- add r7, sp, #0xc
- add r1, sp, #0xc
- strb r2, [r1]
- mov r1, #0
- mov ip, r1
- ldr r1, _0225658C ; =0x00002D66
- add r4, r7, #0
- add r3, r0, r1
- add r1, #0x58
- add r5, r7, #0
- add r6, r0, r1
-_02256516:
- mov r1, #0xb5
- lsl r1, r1, #6
- ldrh r1, [r0, r1]
- add r2, r4, #0
- add r2, #0x24
- strh r1, [r7, #0x18]
- ldrb r1, [r3]
- lsl r1, r1, #0x1a
- lsr r1, r1, #0x1f
- strb r1, [r2]
- ldrb r1, [r3]
- add r2, r4, #0
- add r2, #0x28
- lsl r1, r1, #0x1b
- lsr r1, r1, #0x1b
- strb r1, [r2]
- ldr r1, _02256590 ; =0x00002DB0
- ldr r2, [r0, r1]
- mov r1, #2
- lsl r1, r1, #0x14
- tst r1, r2
- beq _02256550
- ldr r1, _02256594 ; =0x00002DFA
- add r2, r4, #0
- ldrh r1, [r0, r1]
- add r2, #0x20
- strb r1, [r2]
- ldr r1, _02256598 ; =0x00002DE4
- b _0225655E
-_02256550:
- ldrb r1, [r6]
- add r2, r4, #0
- add r2, #0x20
- lsl r1, r1, #0x1c
- lsr r1, r1, #0x1c
- strb r1, [r2]
- ldr r1, _0225659C ; =0x00002DA8
-_0225655E:
- ldr r1, [r0, r1]
- add r0, #0xc0
- str r1, [r5, #0x2c]
- mov r1, ip
- add r1, r1, #1
- add r7, r7, #2
- add r3, #0xc0
- add r4, r4, #1
- add r5, r5, #4
- add r6, #0xc0
- mov ip, r1
- cmp r1, #4
- blt _02256516
- mov r0, #0x58
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r2, [sp, #8]
- mov r1, #1
- add r3, sp, #0xc
- bl MOD11_02254878
- add sp, #0x64
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0225658C: .word 0x00002D66
-_02256590: .word 0x00002DB0
-_02256594: .word 0x00002DFA
-_02256598: .word 0x00002DE4
-_0225659C: .word 0x00002DA8
-
- thumb_func_start MOD11_022565A0
-MOD11_022565A0: ; 0x022565A0
- push {r3, lr}
- sub sp, #8
- add r2, r1, #0
- mov r1, #0x39
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022565BC
-MOD11_022565BC: ; 0x022565BC
- push {r3, lr}
- sub sp, #8
- add r2, r1, #0
- mov r1, #0x3a
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022565D8
-MOD11_022565D8: ; 0x022565D8
- push {r3, lr}
- sub sp, #8
- mov r1, #0x3b
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- mov r2, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022565F4
-MOD11_022565F4: ; 0x022565F4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r1, #0
- mov r2, #0x3c
- add r1, sp, #4
- strb r2, [r1]
- mov r4, #0
- add r6, r0, #0
- strb r4, [r1, #1]
- bl MOD11_0222FF84
- cmp r0, #0
- ble _02256632
- add r7, sp, #4
-_02256610:
- ldr r0, _02256648 ; =0x000021A8
- ldr r0, [r5, r0]
- cmp r0, #0x10
- bne _02256624
- add r0, r4, #0
- bl MaskOfFlagNo
- ldrb r1, [r7, #1]
- orr r0, r1
- strb r0, [r7, #1]
-_02256624:
- add r0, r6, #0
- add r5, #0x10
- add r4, r4, #1
- bl MOD11_0222FF84
- cmp r4, r0
- blt _02256610
-_02256632:
- mov r0, #4
- str r0, [sp]
- add r0, r6, #0
- mov r1, #1
- mov r2, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02256648: .word 0x000021A8
-
- thumb_func_start MOD11_0225664C
-MOD11_0225664C: ; 0x0225664C
- push {r3, lr}
- sub sp, #8
- mov r1, #0x3d
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- mov r2, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02256668
-MOD11_02256668: ; 0x02256668
- push {r4, r5, r6, r7, lr}
- sub sp, #0x64
- str r0, [sp, #4]
- add r0, r1, #0
- str r2, [sp, #8]
- mov r2, #0x3e
- add r7, sp, #0xc
- add r1, sp, #0xc
- strb r2, [r1]
- mov r1, #0
- mov ip, r1
- ldr r1, _02256700 ; =0x00002D66
- add r4, r7, #0
- add r3, r0, r1
- add r1, #0x58
- add r5, r7, #0
- add r6, r0, r1
-_0225668A:
- mov r1, #0xb5
- lsl r1, r1, #6
- ldrh r1, [r0, r1]
- add r2, r4, #0
- add r2, #0x24
- strh r1, [r7, #0x18]
- ldrb r1, [r3]
- lsl r1, r1, #0x1a
- lsr r1, r1, #0x1f
- strb r1, [r2]
- ldrb r1, [r3]
- add r2, r4, #0
- add r2, #0x28
- lsl r1, r1, #0x1b
- lsr r1, r1, #0x1b
- strb r1, [r2]
- ldr r1, _02256704 ; =0x00002DB0
- ldr r2, [r0, r1]
- mov r1, #2
- lsl r1, r1, #0x14
- tst r1, r2
- beq _022566C4
- ldr r1, _02256708 ; =0x00002DFA
- add r2, r4, #0
- ldrh r1, [r0, r1]
- add r2, #0x20
- strb r1, [r2]
- ldr r1, _0225670C ; =0x00002DE4
- b _022566D2
-_022566C4:
- ldrb r1, [r6]
- add r2, r4, #0
- add r2, #0x20
- lsl r1, r1, #0x1c
- lsr r1, r1, #0x1c
- strb r1, [r2]
- ldr r1, _02256710 ; =0x00002DA8
-_022566D2:
- ldr r1, [r0, r1]
- add r0, #0xc0
- str r1, [r5, #0x2c]
- mov r1, ip
- add r1, r1, #1
- add r7, r7, #2
- add r3, #0xc0
- add r4, r4, #1
- add r5, r5, #4
- add r6, #0xc0
- mov ip, r1
- cmp r1, #4
- blt _0225668A
- mov r0, #0x58
- str r0, [sp]
- ldr r0, [sp, #4]
- ldr r2, [sp, #8]
- mov r1, #1
- add r3, sp, #0xc
- bl MOD11_02254878
- add sp, #0x64
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02256700: .word 0x00002D66
-_02256704: .word 0x00002DB0
-_02256708: .word 0x00002DFA
-_0225670C: .word 0x00002DE4
-_02256710: .word 0x00002DA8
-
- thumb_func_start MOD11_02256714
-MOD11_02256714: ; 0x02256714
- push {r3, r4, r5, lr}
- sub sp, #8
- mov r3, #0x3f
- add r4, sp, #4
- strb r3, [r4]
- ldr r3, _02256750 ; =0x0000216C
- ldr r5, [r1, r3]
- mov r1, #2
- add r3, r5, #0
- tst r3, r1
- beq _0225672E
- strb r1, [r4, #1]
- b _0225673E
-_0225672E:
- mov r1, #4
- tst r1, r5
- beq _0225673A
- mov r1, #1
- strb r1, [r4, #1]
- b _0225673E
-_0225673A:
- mov r1, #0
- strb r1, [r4, #1]
-_0225673E:
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, r4, r5, pc}
- nop
-_02256750: .word 0x0000216C
-
- thumb_func_start MOD11_02256754
-MOD11_02256754: ; 0x02256754
- push {r4, lr}
- sub sp, #8
- add r4, r1, #0
- mov r3, #0x40
- add r1, sp, #4
- strb r3, [r1]
- strh r2, [r1, #2]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- add r2, r4, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r4, pc}
-
- thumb_func_start MOD11_02256774
-MOD11_02256774: ; 0x02256774
- push {r3, r4, lr}
- sub sp, #0xc
- mov r2, #0x41
- add r1, sp, #4
- strb r2, [r1]
- add r4, r0, #0
- bl MOD11_0223145C
- str r0, [sp, #8]
- mov r0, #8
- str r0, [sp]
- add r0, r4, #0
- mov r1, #1
- mov r2, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #0xc
- pop {r3, r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225679C
-MOD11_0225679C: ; 0x0225679C
- push {r3, lr}
- sub sp, #8
- mov r1, #0x42
- str r1, [sp, #4]
- mov r1, #4
- str r1, [sp]
- mov r1, #1
- mov r2, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022567B8
-MOD11_022567B8: ; 0x022567B8
- push {r3, r4, r5, lr}
- sub sp, #8
- add r5, r0, #0
- add r0, sp, #4
- add r4, r1, #0
- strb r2, [r0]
- bl FUN_02031190
- add r1, sp, #4
- strb r0, [r1, #1]
- mov r0, #4
- str r0, [sp]
- add r0, r5, #0
- mov r1, #2
- add r2, r4, #0
- add r3, sp, #4
- bl MOD11_02254878
- add sp, #8
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_022567E0
-MOD11_022567E0: ; 0x022567E0
- push {r3, r4, r5, r6, r7, lr}
- ldrb r6, [r1, #3]
- ldrb r3, [r1]
- ldrb r2, [r1, #2]
- lsl r6, r6, #8
- add r5, r0, #0
- orr r2, r6
- ldrb r4, [r1, #1]
- cmp r3, #0
- bne _02256814
- mov r3, #0
- cmp r2, #0
- ble _02256852
- mov r6, #0x23
- lsl r4, r4, #8
- lsl r6, r6, #8
-_02256800:
- add r0, r1, r3
- ldr r7, [r5, #0x30]
- ldrb r0, [r0, #4]
- add r7, r4, r7
- add r7, r3, r7
- add r3, r3, #1
- strb r0, [r7, r6]
- cmp r3, r2
- blt _02256800
- pop {r3, r4, r5, r6, r7, pc}
-_02256814:
- cmp r3, #1
- bne _02256836
- mov r0, #0
- cmp r2, #0
- ble _02256852
- lsl r3, r4, #2
- add r5, r5, r3
-_02256822:
- add r3, r1, r0
- ldrb r4, [r3, #4]
- ldr r3, [r5, #0x34]
- add r3, r3, r0
- add r3, #0x94
- add r0, r0, #1
- strb r4, [r3]
- cmp r0, r2
- blt _02256822
- pop {r3, r4, r5, r6, r7, pc}
-_02256836:
- cmp r3, #2
- bne _02256852
- ldrb r7, [r1, #4]
- ldrb r6, [r1, #5]
- bl MOD11_02230DD4
- cmp r0, #0
- beq _02256852
- ldr r0, [r5, #0x30]
- add r1, r6, #0
- add r2, r4, #0
- add r3, r7, #0
- bl MOD11_02243340
-_02256852:
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_02256854
-MOD11_02256854: ; 0x02256854
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r4, r1, #0
- add r5, r2, #0
- mov r1, #0x16
- strb r1, [r5]
- add r1, sp, #0x18
- ldrh r1, [r1, #0x1c]
- add r7, r0, #0
- strh r1, [r5, #2]
- ldr r1, [sp, #0x2c]
- strh r1, [r5, #0x14]
- ldr r1, [sp, #0x30]
- strh r1, [r5, #0x16]
- ldr r1, [sp, #0x28]
- str r3, [r5, #0x4c]
- str r1, [r5, #0x50]
- bl MOD11_02230294
- str r0, [r5, #0x54]
- cmp r4, #0
- bne _02256882
- b _022569B2
-_02256882:
- ldr r0, _022569B8 ; =0x00002144
- ldr r1, [r4, r0]
- add r0, #0x10
- str r1, [r5, #4]
- ldr r0, [r4, r0]
- cmp r0, #0
- beq _02256892
- b _0225689E
-_02256892:
- add r0, sp, #0x18
- ldrh r0, [r0, #0x1c]
- lsl r0, r0, #4
- add r1, r4, r0
- ldr r0, _022569BC ; =0x000003E1
- ldrb r0, [r1, r0]
-_0225689E:
- ldr r1, [sp, #0x2c]
- strh r0, [r5, #8]
- mov r0, #0xc0
- add r6, r1, #0
- mul r6, r0
- ldr r0, _022569C0 ; =0x00002D75
- add r1, r4, r6
- ldrb r0, [r1, r0]
- add r1, r4, #0
- mov r2, #8
- strh r0, [r5, #0xc]
- mov r0, #0xd
- str r0, [sp]
- add r0, r7, #0
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _022568E2
- mov r0, #0x4c
- str r0, [sp]
- add r0, r7, #0
- add r1, r4, #0
- mov r2, #8
- mov r3, #0
- bl MOD11_02246870
- cmp r0, #0
- bne _022568E2
- mov r0, #6
- lsl r0, r0, #6
- ldr r0, [r4, r0]
- str r0, [r5, #0x10]
- b _022568E6
-_022568E2:
- mov r0, #0
- str r0, [r5, #0x10]
-_022568E6:
- ldr r0, _022569C4 ; =0x00002164
- ldr r0, [r4, r0]
- strh r0, [r5, #0xa]
- ldr r0, _022569C8 ; =0x00002DB0
- add r1, r4, r0
- mov r0, #1
- ldr r2, [r1, r6]
- lsl r0, r0, #0x18
- tst r0, r2
- beq _022568FE
- mov r3, #1
- b _02256900
-_022568FE:
- mov r3, #0
-_02256900:
- ldrh r0, [r5, #0xe]
- mov r2, #1
- bic r0, r2
- lsl r2, r3, #0x10
- lsr r3, r2, #0x10
- mov r2, #1
- and r3, r2
- orr r0, r3
- strh r0, [r5, #0xe]
- ldr r1, [r1, r6]
- lsl r0, r2, #0x15
- tst r0, r1
- bne _0225691C
- mov r2, #0
-_0225691C:
- ldrh r0, [r5, #0xe]
- mov r1, #2
- str r5, [sp, #0x10]
- bic r0, r1
- lsl r1, r2, #0x10
- lsr r1, r1, #0x10
- lsl r1, r1, #0x1f
- lsr r1, r1, #0x1e
- orr r0, r1
- strh r0, [r5, #0xe]
- ldr r0, _022569CC ; =0x00002D66
- mov r1, #0
- add r2, r4, r0
- add r0, #0x58
- add r3, r5, #0
- add r7, r4, r0
-_0225693C:
- mov r0, #0xb5
- lsl r0, r0, #6
- ldrh r6, [r4, r0]
- ldr r0, [sp, #0x10]
- strh r6, [r0, #0x18]
- ldrb r0, [r2]
- lsl r0, r0, #0x1a
- lsr r6, r0, #0x1f
- add r0, r5, r1
- str r0, [sp, #8]
- add r0, #0x24
- str r0, [sp, #8]
- strb r6, [r0]
- ldrb r0, [r2]
- lsl r0, r0, #0x1b
- lsr r6, r0, #0x1b
- add r0, r5, r1
- str r0, [sp, #4]
- add r0, #0x28
- str r0, [sp, #4]
- strb r6, [r0]
- mov r0, #0xb7
- lsl r0, r0, #6
- ldr r0, [r4, r0]
- str r0, [r3, #0x3c]
- ldr r0, _022569C8 ; =0x00002DB0
- ldr r6, [r4, r0]
- mov r0, #2
- lsl r0, r0, #0x14
- tst r0, r6
- beq _0225698C
- ldr r0, _022569D0 ; =0x00002DFA
- ldrh r6, [r4, r0]
- add r0, r5, r1
- str r0, [sp, #0xc]
- add r0, #0x20
- str r0, [sp, #0xc]
- strb r6, [r0]
- ldr r0, _022569D4 ; =0x00002DE4
- b _0225699A
-_0225698C:
- ldrb r0, [r7]
- lsl r0, r0, #0x1c
- lsr r6, r0, #0x1c
- add r0, r5, r1
- add r0, #0x20
- strb r6, [r0]
- ldr r0, _022569D8 ; =0x00002DA8
-_0225699A:
- ldr r0, [r4, r0]
- add r1, r1, #1
- str r0, [r3, #0x2c]
- ldr r0, [sp, #0x10]
- add r4, #0xc0
- add r0, r0, #2
- str r0, [sp, #0x10]
- add r2, #0xc0
- add r3, r3, #4
- add r7, #0xc0
- cmp r1, #4
- blt _0225693C
-_022569B2:
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- nop
-_022569B8: .word 0x00002144
-_022569BC: .word 0x000003E1
-_022569C0: .word 0x00002D75
-_022569C4: .word 0x00002164
-_022569C8: .word 0x00002DB0
-_022569CC: .word 0x00002D66
-_022569D0: .word 0x00002DFA
-_022569D4: .word 0x00002DE4
-_022569D8: .word 0x00002DA8
-
- thumb_func_start MOD11_022569DC
-MOD11_022569DC: ; 0x022569DC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x20
- str r0, [sp]
- ldr r0, [sp, #0x38]
- add r5, r2, #0
- str r1, [sp, #4]
- str r0, [sp, #0x38]
- mov r0, #0
- add r1, r5, #0
- mov r2, #8
- add r6, r3, #0
- bl MIi_CpuClearFast
- ldr r0, [sp]
- bl MOD11_0222FF74
- add r4, r0, #0
- mov r0, #0xc
- and r0, r4
- strb r6, [r5]
- cmp r0, #0xc
- beq _02256A30
- mov r0, #0x10
- tst r0, r4
- beq _02256A1A
- ldr r0, [sp]
- ldr r1, [sp, #0x38]
- bl MOD11_02230270
- cmp r0, #0
- bne _02256A30
-_02256A1A:
- cmp r4, #0x4b
- bne _02256A2A
- ldr r0, [sp]
- ldr r1, [sp, #0x38]
- bl MOD11_02230270
- cmp r0, #0
- bne _02256A30
-_02256A2A:
- cmp r4, #0xcb
- beq _02256A30
- b _02256B66
-_02256A30:
- ldr r0, [sp]
- ldr r1, [sp, #0x38]
- bl MOD11_02230260
- cmp r0, #2
- beq _02256A48
- ldr r0, [sp]
- ldr r1, [sp, #0x38]
- bl MOD11_02230260
- cmp r0, #3
- bne _02256A56
-_02256A48:
- ldr r6, [sp, #0x38]
- ldr r0, [sp]
- add r1, r6, #0
- bl MOD11_022302BC
- str r0, [sp, #0x38]
- b _02256A60
-_02256A56:
- ldr r0, [sp]
- ldr r1, [sp, #0x38]
- bl MOD11_022302BC
- add r6, r0, #0
-_02256A60:
- ldr r0, [sp]
- add r1, r6, #0
- bl MOD11_0222FF88
- mov r4, #0
- str r0, [sp, #0x10]
- add r7, r4, #0
- bl FUN_0206B9AC
- cmp r0, #0
- ble _02256AE0
- mov r0, #6
- add r1, r6, #0
- mul r1, r0
- ldr r0, [sp, #4]
- add r6, r0, r1
-_02256A80:
- ldr r1, _02256C00 ; =0x0000312C
- ldr r0, [sp, #0x10]
- ldrb r1, [r6, r1]
- bl FUN_0206B9B0
- mov r1, #0xad
- mov r2, #0
- str r0, [sp, #0x14]
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _02256AD2
- ldr r1, _02256C04 ; =0x000001EE
- cmp r0, r1
- beq _02256AD2
- ldr r0, [sp, #0x14]
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _02256ACA
- ldr r0, [sp, #0x14]
- mov r1, #0x9f
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _02256AC2
- add r1, r5, r4
- mov r0, #3
- strb r0, [r1, #2]
- b _02256AD0
-_02256AC2:
- add r1, r5, r4
- mov r0, #1
- strb r0, [r1, #2]
- b _02256AD0
-_02256ACA:
- add r1, r5, r4
- mov r0, #2
- strb r0, [r1, #2]
-_02256AD0:
- add r4, r4, #1
-_02256AD2:
- ldr r0, [sp, #0x10]
- add r6, r6, #1
- add r7, r7, #1
- bl FUN_0206B9AC
- cmp r7, r0
- blt _02256A80
-_02256AE0:
- ldr r0, [sp]
- ldr r1, [sp, #0x38]
- bl MOD11_0222FF88
- str r0, [sp, #8]
- mov r4, #3
- mov r6, #0
- bl FUN_0206B9AC
- cmp r0, #0
- bgt _02256AF8
- b _02256BFA
-_02256AF8:
- ldr r0, [sp, #0x38]
- mov r1, #6
- mul r1, r0
- ldr r0, [sp, #4]
- add r7, r0, r1
-_02256B02:
- ldr r1, _02256C00 ; =0x0000312C
- ldr r0, [sp, #8]
- ldrb r1, [r7, r1]
- bl FUN_0206B9B0
- mov r1, #0xad
- mov r2, #0
- str r0, [sp, #0x18]
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _02256B54
- ldr r1, _02256C04 ; =0x000001EE
- cmp r0, r1
- beq _02256B54
- ldr r0, [sp, #0x18]
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _02256B4C
- ldr r0, [sp, #0x18]
- mov r1, #0x9f
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _02256B44
- add r1, r5, r4
- mov r0, #3
- strb r0, [r1, #2]
- b _02256B52
-_02256B44:
- add r1, r5, r4
- mov r0, #1
- strb r0, [r1, #2]
- b _02256B52
-_02256B4C:
- add r1, r5, r4
- mov r0, #2
- strb r0, [r1, #2]
-_02256B52:
- add r4, r4, #1
-_02256B54:
- ldr r0, [sp, #8]
- add r7, r7, #1
- add r6, r6, #1
- bl FUN_0206B9AC
- cmp r6, r0
- blt _02256B02
- add sp, #0x20
- pop {r3, r4, r5, r6, r7, pc}
-_02256B66:
- mov r0, #2
- tst r0, r4
- beq _02256B7A
- mov r0, #8
- tst r0, r4
- bne _02256B7A
- ldr r0, [sp, #0x38]
- mov r1, #1
- and r0, r1
- str r0, [sp, #0x38]
-_02256B7A:
- ldr r0, [sp]
- ldr r1, [sp, #0x38]
- bl MOD11_0222FF88
- mov r4, #0
- str r0, [sp, #0xc]
- add r7, r4, #0
- bl FUN_0206B9AC
- cmp r0, #0
- ble _02256BFA
- ldr r0, [sp, #0x38]
- mov r1, #6
- mul r1, r0
- ldr r0, [sp, #4]
- add r6, r0, r1
-_02256B9A:
- ldr r1, _02256C00 ; =0x0000312C
- ldr r0, [sp, #0xc]
- ldrb r1, [r6, r1]
- bl FUN_0206B9B0
- mov r1, #0xad
- mov r2, #0
- str r0, [sp, #0x1c]
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _02256BEC
- ldr r1, _02256C04 ; =0x000001EE
- cmp r0, r1
- beq _02256BEC
- ldr r0, [sp, #0x1c]
- mov r1, #0xa2
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _02256BE4
- ldr r0, [sp, #0x1c]
- mov r1, #0x9f
- mov r2, #0
- bl GetMonDataEncrypted
- cmp r0, #0
- beq _02256BDC
- add r1, r5, r4
- mov r0, #3
- strb r0, [r1, #2]
- b _02256BEA
-_02256BDC:
- add r1, r5, r4
- mov r0, #1
- strb r0, [r1, #2]
- b _02256BEA
-_02256BE4:
- add r1, r5, r4
- mov r0, #2
- strb r0, [r1, #2]
-_02256BEA:
- add r4, r4, #1
-_02256BEC:
- ldr r0, [sp, #0xc]
- add r6, r6, #1
- add r7, r7, #1
- bl FUN_0206B9AC
- cmp r7, r0
- blt _02256B9A
-_02256BFA:
- add sp, #0x20
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02256C00: .word 0x0000312C
-_02256C04: .word 0x000001EE
-
- thumb_func_start MOD11_02256C08
-MOD11_02256C08: ; 0x02256C08
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- add r5, r0, #0
- lsl r0, r3, #0x18
- lsr r0, r0, #0x18
- add r4, r1, #0
- add r7, r2, #0
- str r3, [sp, #0x18]
- bl MOD11_02257FC0
- add r6, r0, #0
- ldr r3, [r6, #0x14]
- mov r0, #1
- str r0, [sp]
- str r0, [sp, #4]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0x1b
- str r3, [sp, #8]
- bl FUN_0200C00C
- mov r0, #0x1b
- str r0, [sp]
- mov r0, #0x23
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- mov r0, #1
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- ldr r0, _02256CC8 ; =0x00004E26
- mov r1, #2
- str r0, [sp, #0x14]
- add r0, r7, #0
- add r2, r5, #0
- add r3, r4, #0
- bl FUN_0200C0DC
- ldr r3, [r6, #0x1c]
- mov r0, #1
- str r0, [sp]
- str r3, [sp, #4]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0x1b
- bl FUN_0200C124
- ldr r3, [r6, #0x20]
- mov r0, #1
- str r0, [sp]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0x1b
- str r3, [sp, #4]
- bl FUN_0200C13C
- mov r0, #0x1b
- str r0, [sp]
- mov r0, #0x23
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- mov r0, #1
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- ldr r0, _02256CCC ; =0x00004E27
- mov r1, #2
- str r0, [sp, #0x14]
- add r0, r7, #0
- add r2, r5, #0
- add r3, r4, #0
- bl FUN_0200C0DC
- ldr r0, [sp, #0x18]
- sub r0, r0, #6
- cmp r0, #1
- bhi _02256CC4
- mov r0, #0x1b
- str r0, [sp]
- mov r0, #0x2d
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- mov r0, #1
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- ldr r0, _02256CD0 ; =0x00004E28
- mov r1, #2
- str r0, [sp, #0x14]
- add r0, r7, #0
- add r2, r5, #0
- add r3, r4, #0
- bl FUN_0200C0DC
-_02256CC4:
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02256CC8: .word 0x00004E26
-_02256CCC: .word 0x00004E27
-_02256CD0: .word 0x00004E28
-
- thumb_func_start MOD11_02256CD4
-MOD11_02256CD4: ; 0x02256CD4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x18
- add r5, r0, #0
- lsl r0, r3, #0x18
- lsr r0, r0, #0x18
- add r6, r1, #0
- add r7, r2, #0
- bl MOD11_02258024
- add r4, r0, #0
- beq _02256D44
- ldr r3, [r4, #0x14]
- mov r0, #1
- str r0, [sp]
- str r0, [sp, #4]
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0x1b
- str r3, [sp, #8]
- bl FUN_0200C00C
- mov r0, #0x1b
- str r0, [sp]
- mov r0, #0x23
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- mov r0, #1
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- ldr r0, _02256D48 ; =0x00004E26
- mov r1, #2
- str r0, [sp, #0x14]
- add r0, r7, #0
- add r2, r5, #0
- add r3, r6, #0
- bl FUN_0200C0DC
- ldr r3, [r4, #0x1c]
- mov r0, #1
- str r0, [sp]
- str r3, [sp, #4]
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0x1b
- bl FUN_0200C124
- ldr r3, [r4, #0x20]
- mov r0, #1
- str r0, [sp]
- add r0, r5, #0
- add r1, r6, #0
- mov r2, #0x1b
- str r3, [sp, #4]
- bl FUN_0200C13C
-_02256D44:
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02256D48: .word 0x00004E26
-
- thumb_func_start MOD11_02256D4C
-MOD11_02256D4C: ; 0x02256D4C
- push {r3, r4, r5, lr}
- add r5, r0, #0
- lsl r0, r2, #0x18
- add r4, r1, #0
- lsr r0, r0, #0x18
- bl MOD11_02257FC0
- add r2, r0, #0
- add r0, r5, #0
- add r1, r4, #0
- bl FUN_0200C154
- add r4, r0, #0
- ldr r0, [r4]
- bl FUN_0200C59C
- add r0, r4, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02256D70
-MOD11_02256D70: ; 0x02256D70
- push {r4, r5, r6, lr}
- add r5, r0, #0
- ldr r0, [r5, #4]
- add r6, r1, #0
- add r4, r2, #0
- cmp r0, #0
- bne _02256D82
- bl ErrorHandling
-_02256D82:
- add r0, r5, #0
- add r0, #0x25
- ldrb r0, [r0]
- cmp r0, #6
- bne _02256D94
- mov r1, #3
- lsl r1, r1, #0xa
- and r4, r1
- b _02256DA4
-_02256D94:
- cmp r0, #7
- bne _02256DA0
- mov r1, #3
- lsl r1, r1, #0xc
- and r4, r1
- b _02256DA4
-_02256DA0:
- ldr r1, _02256F00 ; =0xFFFFC3FF
- and r4, r1
-_02256DA4:
- cmp r0, #7
- bhi _02256DEA
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02256DB4: ; jump table
- .short _02256DE6 - _02256DB4 - 2 ; case 0
- .short _02256DC4 - _02256DB4 - 2 ; case 1
- .short _02256DCA - _02256DB4 - 2 ; case 2
- .short _02256DC4 - _02256DB4 - 2 ; case 3
- .short _02256DCA - _02256DB4 - 2 ; case 4
- .short _02256DC4 - _02256DB4 - 2 ; case 5
- .short _02256DEA - _02256DB4 - 2 ; case 6
- .short _02256DEA - _02256DB4 - 2 ; case 7
-_02256DC4:
- mov r0, #0x26
- bic r4, r0
- b _02256DEA
-_02256DCA:
- ldr r0, _02256F04 ; =0xFFFFFDDF
- and r4, r0
- add r0, r5, #0
- add r0, #0x4f
- ldrb r0, [r0]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1f
- bne _02256DE0
- mov r0, #6
- bic r4, r0
- b _02256DEA
-_02256DE0:
- mov r0, #1
- bic r4, r0
- b _02256DEA
-_02256DE6:
- ldr r0, _02256F08 ; =0xFFFFFDFF
- and r4, r0
-_02256DEA:
- ldr r0, [r5, #0xc]
- bl MOD11_0222FF74
- mov r1, #1
- tst r0, r1
- beq _02256DFA
- ldr r0, _02256F08 ; =0xFFFFFDFF
- and r4, r0
-_02256DFA:
- mov r0, #1
- tst r0, r4
- beq _02256E10
- add r0, r5, #0
- mov r1, #0
- bl MOD11_02257150
- add r0, r5, #0
- mov r1, #0
- bl MOD11_02257BEC
-_02256E10:
- mov r0, #2
- tst r0, r4
- beq _02256E1E
- add r0, r5, #0
- add r1, r6, #0
- bl MOD11_0225787C
-_02256E1E:
- mov r0, #4
- tst r0, r4
- beq _02256E2A
- add r0, r5, #0
- bl MOD11_02257908
-_02256E2A:
- mov r0, #0x80
- tst r0, r4
- bne _02256E36
- mov r0, #0x40
- tst r0, r4
- beq _02256E3C
-_02256E36:
- add r0, r5, #0
- bl MOD11_02257654
-_02256E3C:
- mov r0, #8
- tst r0, r4
- beq _02256E48
- add r0, r5, #0
- bl MOD11_0225775C
-_02256E48:
- mov r0, #0x10
- tst r0, r4
- beq _02256E54
- add r0, r5, #0
- bl MOD11_022574F0
-_02256E54:
- mov r0, #0x20
- tst r0, r4
- beq _02256E6A
- add r0, r5, #0
- mov r1, #0
- bl MOD11_022571B8
- add r0, r5, #0
- mov r1, #1
- bl MOD11_02257BEC
-_02256E6A:
- mov r0, #2
- lsl r0, r0, #8
- tst r0, r4
- beq _02256E78
- add r0, r5, #0
- bl MOD11_02257968
-_02256E78:
- mov r0, #1
- lsl r0, r0, #8
- tst r0, r4
- beq _02256EDC
- add r0, r5, #0
- add r0, #0x4a
- ldrb r0, [r0]
- cmp r0, #5
- bhi _02256EA2
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02256E96: ; jump table
- .short _02256EA2 - _02256E96 - 2 ; case 0
- .short _02256EAC - _02256E96 - 2 ; case 1
- .short _02256EB6 - _02256E96 - 2 ; case 2
- .short _02256EC0 - _02256E96 - 2 ; case 3
- .short _02256ECA - _02256E96 - 2 ; case 4
- .short _02256ED4 - _02256E96 - 2 ; case 5
-_02256EA2:
- add r0, r5, #0
- mov r1, #0x38
- bl MOD11_022579B8
- b _02256EDC
-_02256EAC:
- add r0, r5, #0
- mov r1, #0x2f
- bl MOD11_022579B8
- b _02256EDC
-_02256EB6:
- add r0, r5, #0
- mov r1, #0x32
- bl MOD11_022579B8
- b _02256EDC
-_02256EC0:
- add r0, r5, #0
- mov r1, #0x35
- bl MOD11_022579B8
- b _02256EDC
-_02256ECA:
- add r0, r5, #0
- mov r1, #0x2c
- bl MOD11_022579B8
- b _02256EDC
-_02256ED4:
- add r0, r5, #0
- mov r1, #0x29
- bl MOD11_022579B8
-_02256EDC:
- mov r0, #5
- lsl r0, r0, #0xa
- tst r0, r4
- beq _02256EEC
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_022579F8
-_02256EEC:
- mov r0, #0xa
- lsl r0, r0, #0xa
- tst r0, r4
- beq _02256EFC
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02257AD4
-_02256EFC:
- pop {r4, r5, r6, pc}
- nop
-_02256F00: .word 0xFFFFC3FF
-_02256F04: .word 0xFFFFFDDF
-_02256F08: .word 0xFFFFFDFF
-
- thumb_func_start MOD11_02256F0C
-MOD11_02256F0C: ; 0x02256F0C
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x50]
- cmp r0, #0
- beq _02256F1E
- bl FUN_0200CAB4
- mov r0, #0
- str r0, [r4, #0x50]
-_02256F1E:
- ldr r0, [r4, #4]
- cmp r0, #0
- beq _02256F2C
- bl FUN_0200C3DC
- mov r0, #0
- str r0, [r4, #4]
-_02256F2C:
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02256F30
-MOD11_02256F30: ; 0x02256F30
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #0
- beq _02256F42
- bl FUN_0200C3DC
- mov r0, #0
- str r0, [r4, #8]
-_02256F42:
- pop {r4, pc}
-
- thumb_func_start MOD11_02256F44
-MOD11_02256F44: ; 0x02256F44
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r0, #0x25
- ldrb r0, [r0]
- bl MOD11_02257FC0
- add r4, r0, #0
- ldr r0, [r5, #0xc]
- bl MOD11_02230078
- ldr r0, [r5, #0xc]
- bl MOD11_02230080
- ldr r1, [r4, #0x14]
- add r5, r0, #0
- bl FUN_0200C358
- ldr r1, [r4, #0x1c]
- add r0, r5, #0
- bl FUN_0200C378
- ldr r1, [r4, #0x20]
- add r0, r5, #0
- bl FUN_0200C388
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02256F78
-MOD11_02256F78: ; 0x02256F78
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r0, #0x25
- ldrb r0, [r0]
- bl MOD11_02258024
- add r4, r0, #0
- beq _02256FAC
- ldr r0, [r5, #0xc]
- bl MOD11_02230078
- ldr r0, [r5, #0xc]
- bl MOD11_02230080
- ldr r1, [r4, #0x14]
- add r5, r0, #0
- bl FUN_0200C358
- ldr r1, [r4, #0x1c]
- add r0, r5, #0
- bl FUN_0200C378
- ldr r1, [r4, #0x20]
- add r0, r5, #0
- bl FUN_0200C388
-_02256FAC:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02256FB0
-MOD11_02256FB0: ; 0x02256FB0
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- ldr r0, [r5, #0xc]
- bl MOD11_02230078
- add r6, r0, #0
- ldr r0, [r5, #0xc]
- bl MOD11_02230080
- add r7, r0, #0
- ldr r0, [r5, #0xc]
- bl MOD11_022300CC
- str r0, [sp]
- add r0, r5, #0
- add r0, #0x25
- ldrb r0, [r0]
- bl MOD11_02257FC0
- add r3, r5, #0
- add r3, #0x25
- add r4, r0, #0
- ldrb r3, [r3]
- ldr r2, [sp]
- add r0, r6, #0
- add r1, r7, #0
- bl MOD11_02256C08
- add r2, r5, #0
- add r2, #0x25
- ldrb r2, [r2]
- add r0, r6, #0
- add r1, r7, #0
- bl MOD11_02256D4C
- add r3, r5, #0
- str r0, [r5, #4]
- add r3, #0x25
- ldrb r3, [r3]
- ldr r2, [sp]
- add r0, r6, #0
- add r1, r7, #0
- bl MOD11_02256CD4
- ldr r0, [r5, #8]
- cmp r0, #0
- beq _0225702A
- add r5, #0x25
- mov r1, #0
- ldrsh r3, [r4, r1]
- ldrb r2, [r5]
- ldr r1, _0225702C ; =0x0225E970
- ldr r0, [r0]
- ldrsb r1, [r1, r2]
- mov r2, #2
- ldrsh r2, [r4, r2]
- sub r1, r3, r1
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- bl FUN_0200C6E4
-_0225702A:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0225702C: .word 0x0225E970
-
- thumb_func_start MOD11_02257030
-MOD11_02257030: ; 0x02257030
- push {r4, lr}
- add r4, r0, #0
- bl MOD11_02256F0C
- add r0, r4, #0
- bl MOD11_02256F44
- add r0, r4, #0
- bl MOD11_02256F30
- add r0, r4, #0
- bl MOD11_02256F78
- pop {r4, pc}
-
- thumb_func_start MOD11_0225704C
-MOD11_0225704C: ; 0x0225704C
- push {r4, r5, r6, lr}
- add r5, r0, #0
- add r0, #0x25
- ldrb r0, [r0]
- cmp r0, #2
- beq _0225705C
- cmp r0, #4
- bne _02257136
-_0225705C:
- add r0, r5, #0
- add r0, #0x4f
- ldrb r2, [r0]
- mov r1, #8
- add r0, r2, #0
- bic r0, r1
- lsl r1, r2, #0x1c
- lsr r2, r1, #0x1f
- mov r1, #1
- eor r1, r2
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- lsl r1, r1, #0x1f
- lsr r1, r1, #0x1c
- orr r1, r0
- add r0, r5, #0
- add r0, #0x4f
- strb r1, [r0]
- ldr r0, [r5, #4]
- ldr r0, [r0]
- bl FUN_02020350
- add r4, r0, #0
- add r0, r5, #0
- add r0, #0x4f
- ldrb r0, [r0]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1f
- cmp r0, #1
- bne _022570E8
- mov r0, #0x38
- bl MOD11_02257F60
- add r1, r5, #0
- add r1, #0x25
- ldrb r1, [r1]
- mov r6, #0x19
- ldr r3, _02257138 ; =0x0225E9B0
- lsl r2, r1, #2
- ldrh r3, [r3, r2]
- lsl r6, r6, #0x16
- ldr r1, [r4, #4]
- add r3, r6, r3
- add r1, r1, r3
- ldr r3, _0225713C ; =0x0225E9B2
- ldrh r2, [r3, r2]
- bl MIi_CpuCopy16
- mov r0, #0x45
- bl MOD11_02257F60
- add r1, r5, #0
- add r1, #0x25
- ldrb r1, [r1]
- ldr r3, _02257140 ; =0x0225EA10
- lsl r2, r1, #2
- ldrh r3, [r3, r2]
- ldr r1, [r4, #4]
- add r3, r6, r3
- add r1, r1, r3
- ldr r3, _02257144 ; =0x0225EA12
- ldrh r2, [r3, r2]
- bl MIi_CpuCopy16
- ldr r1, [r5, #0x28]
- add r0, r5, #0
- mov r2, #6
- bl MOD11_02256D70
- pop {r4, r5, r6, pc}
-_022570E8:
- mov r0, #0x42
- bl MOD11_02257F60
- add r1, r5, #0
- add r1, #0x25
- ldrb r1, [r1]
- mov r6, #0x19
- ldr r3, _02257138 ; =0x0225E9B0
- lsl r2, r1, #2
- ldrh r3, [r3, r2]
- lsl r6, r6, #0x16
- ldr r1, [r4, #4]
- add r3, r6, r3
- add r1, r1, r3
- ldr r3, _0225713C ; =0x0225E9B2
- ldrh r2, [r3, r2]
- bl MIi_CpuCopy16
- mov r0, #0x44
- bl MOD11_02257F60
- add r1, r5, #0
- add r1, #0x25
- ldrb r1, [r1]
- ldr r3, _02257148 ; =0x0225E9E0
- lsl r2, r1, #2
- ldrh r3, [r3, r2]
- ldr r1, [r4, #4]
- add r3, r6, r3
- add r1, r1, r3
- ldr r3, _0225714C ; =0x0225E9E2
- ldrh r2, [r3, r2]
- bl MIi_CpuCopy16
- ldr r1, [r5, #0x28]
- add r0, r5, #0
- mov r2, #1
- bl MOD11_02256D70
-_02257136:
- pop {r4, r5, r6, pc}
- .align 2, 0
-_02257138: .word 0x0225E9B0
-_0225713C: .word 0x0225E9B2
-_02257140: .word 0x0225EA10
-_02257144: .word 0x0225EA12
-_02257148: .word 0x0225E9E0
-_0225714C: .word 0x0225E9E2
-
- thumb_func_start MOD11_02257150
-MOD11_02257150: ; 0x02257150
- mov r2, #2
- lsl r2, r2, #0x1e
- str r2, [r0, #0x34]
- ldr r3, [r0, #0x28]
- add r2, r3, r1
- bpl _0225715E
- sub r1, r1, r2
-_0225715E:
- ldr r2, [r0, #0x2c]
- add r3, r3, r1
- cmp r3, r2
- ble _0225716A
- sub r2, r3, r2
- sub r1, r1, r2
-_0225716A:
- neg r1, r1
- str r1, [r0, #0x30]
- ldr r1, [r0, #0x28]
- cmp r1, #0
- bge _02257178
- mov r1, #0
- str r1, [r0, #0x28]
-_02257178:
- ldr r2, [r0, #0x2c]
- ldr r1, [r0, #0x28]
- cmp r1, r2
- ble _02257182
- str r2, [r0, #0x28]
-_02257182:
- bx lr
-
- thumb_func_start MOD11_02257184
-MOD11_02257184: ; 0x02257184
- push {r3, r4, r5, lr}
- mov r1, #0
- add r5, r0, #0
- bl MOD11_02257BEC
- add r4, r0, #0
- mov r0, #0
- mvn r0, r0
- cmp r4, r0
- bne _022571AA
- ldr r1, [r5, #0x28]
- ldr r0, [r5, #0x30]
- mov r2, #2
- sub r1, r1, r0
- add r0, r5, #0
- str r1, [r5, #0x28]
- bl MOD11_02256D70
- b _022571B4
-_022571AA:
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #2
- bl MOD11_02256D70
-_022571B4:
- add r0, r4, #0
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_022571B8
-MOD11_022571B8: ; 0x022571B8
- mov r2, #2
- lsl r2, r2, #0x1e
- str r2, [r0, #0x44]
- ldr r3, [r0, #0x38]
- add r2, r3, r1
- bpl _022571C6
- sub r1, r1, r2
-_022571C6:
- ldr r2, [r0, #0x3c]
- add r3, r3, r1
- cmp r3, r2
- ble _022571D2
- sub r2, r3, r2
- sub r1, r1, r2
-_022571D2:
- neg r1, r1
- str r1, [r0, #0x40]
- ldr r1, [r0, #0x38]
- cmp r1, #0
- bge _022571E0
- mov r1, #0
- str r1, [r0, #0x38]
-_022571E0:
- ldr r2, [r0, #0x3c]
- ldr r1, [r0, #0x38]
- cmp r1, r2
- ble _022571EA
- str r2, [r0, #0x38]
-_022571EA:
- bx lr
-
- thumb_func_start MOD11_022571EC
-MOD11_022571EC: ; 0x022571EC
- push {r4, lr}
- mov r1, #1
- add r4, r0, #0
- bl MOD11_02257BEC
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- bne _02257206
- ldr r2, [r4, #0x38]
- ldr r1, [r4, #0x40]
- sub r1, r2, r1
- str r1, [r4, #0x38]
-_02257206:
- pop {r4, pc}
-
- thumb_func_start MOD11_02257208
-MOD11_02257208: ; 0x02257208
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #0
- beq _02257222
- ldr r0, [r0]
- mov r1, #1
- bl FUN_020200BC
- add r0, r4, #0
- mov r1, #1
- bl MOD11_02257284
-_02257222:
- ldr r0, [r4, #0xc]
- bl MOD11_0222FF74
- mov r1, #0x22
- lsl r1, r1, #4
- tst r0, r1
- bne _02257236
- add r0, r4, #0
- bl MOD11_02258188
-_02257236:
- pop {r4, pc}
-
- thumb_func_start MOD11_02257238
-MOD11_02257238: ; 0x02257238
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #0
- beq _0225725C
- ldr r0, [r0]
- mov r1, #0
- bl FUN_020200BC
- ldr r0, [r4, #8]
- mov r1, #0
- ldr r0, [r0]
- bl FUN_02020208
- add r0, r4, #0
- mov r1, #0
- bl MOD11_02257284
-_0225725C:
- add r0, r4, #0
- bl MOD11_022581B0
- pop {r4, pc}
-
- thumb_func_start MOD11_02257264
-MOD11_02257264: ; 0x02257264
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5, #4]
- add r4, r1, #0
- cmp r0, #0
- beq _02257280
- bl FUN_0200C6B0
- ldr r0, [r5, #8]
- cmp r0, #0
- beq _02257280
- add r1, r4, #0
- bl FUN_0200C6B0
-_02257280:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02257284
-MOD11_02257284: ; 0x02257284
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5, #8]
- add r4, r1, #0
- cmp r0, #0
- beq _022572AA
- ldr r0, [r5, #0xc]
- bl MOD11_0222FF74
- mov r1, #0x22
- lsl r1, r1, #4
- tst r0, r1
- beq _022572A2
- cmp r4, #1
- beq _022572AA
-_022572A2:
- ldr r0, [r5, #8]
- add r1, r4, #0
- bl FUN_0200C644
-_022572AA:
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_022572AC
-MOD11_022572AC: ; 0x022572AC
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5, #4]
- add r4, r1, #0
- cmp r0, #0
- beq _022572C4
- bl FUN_0200C644
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_02257284
-_022572C4:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022572C8
-MOD11_022572C8: ; 0x022572C8
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- ldr r0, [r5, #4]
- add r6, r1, #0
- add r7, r2, #0
- cmp r0, #0
- bne _022572DA
- bl ErrorHandling
-_022572DA:
- add r0, r5, #0
- add r0, #0x25
- ldrb r0, [r0]
- bl MOD11_02257FC0
- add r4, r0, #0
- mov r1, #0
- mov r2, #2
- ldrsh r1, [r4, r1]
- ldrsh r2, [r4, r2]
- ldr r0, [r5, #4]
- add r1, r1, r6
- add r2, r2, r7
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- ldr r0, [r0]
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl FUN_0200C6E4
- ldr r0, [r5, #8]
- cmp r0, #0
- beq _0225732C
- add r5, #0x25
- ldrb r3, [r5]
- mov r1, #0
- ldr r2, _02257330 ; =0x0225E970
- ldrsh r1, [r4, r1]
- ldrsb r2, [r2, r3]
- ldr r0, [r0]
- add r1, r1, r6
- sub r1, r1, r2
- mov r2, #2
- ldrsh r2, [r4, r2]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add r2, r2, r7
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- bl FUN_0200C6E4
-_0225732C:
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02257330: .word 0x0225E970
-
- thumb_func_start MOD11_02257334
-MOD11_02257334: ; 0x02257334
- push {r3, r4, r5, lr}
- add r4, r0, #0
- add r5, r1, #0
- cmp r4, #0
- bne _02257342
- bl ErrorHandling
-_02257342:
- ldr r0, [r4, #4]
- cmp r0, #0
- bne _0225734C
- bl ErrorHandling
-_0225734C:
- add r0, r4, #0
- add r0, #0x4f
- ldrb r1, [r0]
- mov r0, #2
- bic r1, r0
- add r0, r4, #0
- add r0, #0x4f
- strb r1, [r0]
- add r0, r4, #0
- add r0, #0x4f
- ldrb r0, [r0]
- mov r1, #1
- bic r0, r1
- lsl r1, r5, #0x18
- lsr r2, r1, #0x18
- mov r1, #1
- and r1, r2
- orr r1, r0
- add r0, r4, #0
- add r0, #0x4f
- strb r1, [r0]
- cmp r5, #0
- bne _022573BA
- add r0, r4, #0
- add r0, #0x25
- ldrb r0, [r0]
- cmp r0, #7
- bhi _022573AC
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02257390: ; jump table
- .short _022573A0 - _02257390 - 2 ; case 0
- .short _022573AC - _02257390 - 2 ; case 1
- .short _022573A0 - _02257390 - 2 ; case 2
- .short _022573AC - _02257390 - 2 ; case 3
- .short _022573A0 - _02257390 - 2 ; case 4
- .short _022573AC - _02257390 - 2 ; case 5
- .short _022573A0 - _02257390 - 2 ; case 6
- .short _022573A0 - _02257390 - 2 ; case 7
-_022573A0:
- add r0, r4, #0
- mov r1, #0xa0
- mov r2, #0
- bl MOD11_022572C8
- b _022573C4
-_022573AC:
- mov r1, #0x9f
- add r0, r4, #0
- mvn r1, r1
- mov r2, #0
- bl MOD11_022572C8
- b _022573C4
-_022573BA:
- mov r1, #0
- add r0, r4, #0
- add r2, r1, #0
- bl MOD11_022572C8
-_022573C4:
- ldr r0, _022573D0 ; =MOD11_022573D8
- ldr r2, _022573D4 ; =0x000003DE
- add r1, r4, #0
- bl FUN_0200CA44
- pop {r3, r4, r5, pc}
- .align 2, 0
-_022573D0: .word MOD11_022573D8
-_022573D4: .word 0x000003DE
-
- thumb_func_start MOD11_022573D8
-MOD11_022573D8: ; 0x022573D8
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- add r7, r0, #0
- add r0, r5, #0
- add r0, #0x25
- ldrb r0, [r0]
- mov r4, #0
- bl MOD11_02257FC0
- add r6, r0, #0
- add r1, sp, #0
- ldr r0, [r5, #4]
- add r1, #2
- add r2, sp, #0
- bl FUN_0200C7A0
- add r0, r5, #0
- add r0, #0x25
- ldrb r0, [r0]
- cmp r0, #7
- bhi _0225745E
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0225740E: ; jump table
- .short _0225741E - _0225740E - 2 ; case 0
- .short _0225745E - _0225740E - 2 ; case 1
- .short _0225741E - _0225740E - 2 ; case 2
- .short _0225745E - _0225740E - 2 ; case 3
- .short _0225741E - _0225740E - 2 ; case 4
- .short _0225745E - _0225740E - 2 ; case 5
- .short _0225741E - _0225740E - 2 ; case 6
- .short _0225741E - _0225740E - 2 ; case 7
-_0225741E:
- add r0, r5, #0
- add r0, #0x4f
- ldrb r0, [r0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- add r0, sp, #0
- bne _02257444
- mov r1, #2
- ldrsh r2, [r0, r1]
- sub r2, #0x18
- strh r2, [r0, #2]
- add r2, r4, #0
- ldrsh r1, [r0, r1]
- ldrsh r2, [r6, r2]
- cmp r1, r2
- bge _0225749C
- strh r2, [r0, #2]
- add r4, r4, #1
- b _0225749C
-_02257444:
- mov r1, #2
- ldrsh r2, [r0, r1]
- add r2, #0x18
- strh r2, [r0, #2]
- add r2, r4, #0
- ldrsh r2, [r6, r2]
- ldrsh r1, [r0, r1]
- add r2, #0xa0
- cmp r1, r2
- ble _0225749C
- strh r2, [r0, #2]
- add r4, r4, #1
- b _0225749C
-_0225745E:
- add r0, r5, #0
- add r0, #0x4f
- ldrb r0, [r0]
- lsl r0, r0, #0x1f
- lsr r0, r0, #0x1f
- add r0, sp, #0
- bne _02257484
- mov r1, #2
- ldrsh r2, [r0, r1]
- add r2, #0x18
- strh r2, [r0, #2]
- mov r2, #0
- ldrsh r1, [r0, r1]
- ldrsh r2, [r6, r2]
- cmp r1, r2
- ble _0225749C
- strh r2, [r0, #2]
- add r4, r4, #1
- b _0225749C
-_02257484:
- mov r1, #2
- ldrsh r2, [r0, r1]
- sub r2, #0x18
- strh r2, [r0, #2]
- mov r2, #0
- ldrsh r2, [r6, r2]
- ldrsh r1, [r0, r1]
- sub r2, #0x18
- cmp r1, r2
- bge _0225749C
- strh r2, [r0, #2]
- add r4, r4, #1
-_0225749C:
- add r2, sp, #0
- mov r1, #2
- mov r3, #0
- ldrsh r1, [r2, r1]
- ldrsh r2, [r2, r3]
- ldr r0, [r5, #4]
- bl FUN_0200C714
- ldr r0, [r5, #8]
- cmp r0, #0
- beq _022574D0
- add r6, sp, #0
- mov r1, #2
- ldrsh r3, [r6, r1]
- add r1, r5, #0
- add r1, #0x25
- ldrb r2, [r1]
- ldr r1, _022574EC ; =0x0225E970
- ldrsb r1, [r1, r2]
- mov r2, #0
- ldrsh r2, [r6, r2]
- sub r1, r3, r1
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- bl FUN_0200C714
-_022574D0:
- cmp r4, #0
- ble _022574E8
- add r0, r5, #0
- add r0, #0x4f
- ldrb r1, [r0]
- mov r0, #2
- add r5, #0x4f
- orr r0, r1
- strb r0, [r5]
- add r0, r7, #0
- bl FUN_0200CAB4
-_022574E8:
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022574EC: .word 0x0225E970
-
- thumb_func_start MOD11_022574F0
-MOD11_022574F0: ; 0x022574F0
- push {r4, r5, r6, r7, lr}
- sub sp, #0x34
- add r5, r0, #0
- ldr r0, [r5, #0xc]
- bl MOD11_0222FF68
- add r6, r0, #0
- ldr r0, [r5, #0xc]
- bl MOD11_022300C4
- add r7, r0, #0
- ldr r0, [r5, #0xc]
- bl MOD11_02230138
- add r4, r0, #0
- mov r0, #0x16
- mov r1, #5
- bl FUN_020219F4
- mov r1, #0xf1
- str r0, [sp, #0x18]
- add r0, r7, #0
- lsl r1, r1, #2
- bl FUN_0200A914
- add r1, r5, #0
- add r2, r5, #0
- add r1, #0x24
- add r2, #0x26
- str r0, [sp, #0x1c]
- ldrb r1, [r1]
- ldrb r2, [r2]
- ldr r0, [r5, #0xc]
- bl MOD11_02230014
- bl FUN_020690E4
- add r2, r0, #0
- add r0, r4, #0
- mov r1, #0
- bl FUN_0200ACF8
- ldr r1, [sp, #0x18]
- ldr r2, [sp, #0x1c]
- add r0, r4, #0
- bl FUN_0200B7B8
- mov r0, #0
- str r0, [sp]
- mov r0, #0xf
- str r0, [sp, #4]
- add r0, r6, #0
- add r1, sp, #0x24
- mov r2, #8
- mov r3, #2
- bl FUN_020190EC
- mov r1, #0
- str r1, [sp]
- mov r0, #0xff
- str r0, [sp, #4]
- ldr r0, _02257630 ; =0x000E020F
- ldr r2, [sp, #0x18]
- str r0, [sp, #8]
- str r1, [sp, #0xc]
- str r1, [sp, #0x10]
- str r1, [sp, #0x14]
- add r0, sp, #0x24
- add r3, r1, #0
- bl FUN_0201BE3C
- ldr r0, [r5, #4]
- ldr r6, [sp, #0x30]
- ldr r0, [r0]
- bl FUN_02020350
- add r4, r0, #0
- mov r0, #1
- lsl r0, r0, #8
- add r0, r6, r0
- str r0, [sp, #0x20]
- add r0, r5, #0
- add r0, #0x25
- ldrb r0, [r0]
- ldr r1, _02257634 ; =0x0225EC88
- ldr r3, [r4, #4]
- lsl r7, r0, #4
- ldrh r2, [r1, r7]
- mov r1, #0x19
- lsl r1, r1, #0x16
- add r1, r1, r2
- ldr r2, _02257638 ; =0x0225EC8A
- add r0, r6, #0
- ldrh r2, [r2, r7]
- add r1, r3, r1
- bl MIi_CpuCopy16
- add r0, r5, #0
- add r0, #0x25
- ldrb r0, [r0]
- ldr r1, _0225763C ; =0x0225EC8C
- ldr r3, [r4, #4]
- lsl r7, r0, #4
- ldrh r2, [r1, r7]
- mov r1, #0x19
- lsl r1, r1, #0x16
- add r1, r1, r2
- ldr r2, _02257640 ; =0x0225EC8E
- ldr r0, [sp, #0x20]
- ldrh r2, [r2, r7]
- add r1, r3, r1
- bl MIi_CpuCopy16
- add r0, r5, #0
- add r0, #0x25
- ldrb r0, [r0]
- ldr r3, _02257644 ; =0x0225EC90
- ldr r1, [r4, #4]
- lsl r2, r0, #4
- ldr r0, _02257638 ; =0x0225EC8A
- ldrh r0, [r0, r2]
- add r0, r6, r0
- ldrh r6, [r3, r2]
- mov r3, #0x19
- lsl r3, r3, #0x16
- add r3, r3, r6
- add r1, r1, r3
- ldr r3, _02257648 ; =0x0225EC92
- ldrh r2, [r3, r2]
- bl MIi_CpuCopy16
- add r5, #0x25
- ldrb r0, [r5]
- ldr r4, [r4, #4]
- lsl r2, r0, #4
- ldr r0, _02257640 ; =0x0225EC8E
- ldrh r1, [r0, r2]
- ldr r0, [sp, #0x20]
- add r0, r0, r1
- ldr r1, _0225764C ; =0x0225EC94
- ldrh r3, [r1, r2]
- mov r1, #0x19
- lsl r1, r1, #0x16
- add r1, r1, r3
- ldr r3, _02257650 ; =0x0225EC96
- add r1, r4, r1
- ldrh r2, [r3, r2]
- bl MIi_CpuCopy16
- add r0, sp, #0x24
- bl FUN_02019178
- ldr r0, [sp, #0x18]
- bl FUN_02021A20
- ldr r0, [sp, #0x1c]
- bl FUN_02021A20
- add sp, #0x34
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02257630: .word 0x000E020F
-_02257634: .word 0x0225EC88
-_02257638: .word 0x0225EC8A
-_0225763C: .word 0x0225EC8C
-_02257640: .word 0x0225EC8E
-_02257644: .word 0x0225EC90
-_02257648: .word 0x0225EC92
-_0225764C: .word 0x0225EC94
-_02257650: .word 0x0225EC96
-
- thumb_func_start MOD11_02257654
-MOD11_02257654: ; 0x02257654
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- str r0, [sp]
- add r0, #0x49
- ldrb r0, [r0]
- cmp r0, #0
- bne _02257666
- mov r0, #0x3e
- b _02257670
-_02257666:
- cmp r0, #1
- bne _0225766E
- mov r0, #0x3c
- b _02257670
-_0225766E:
- mov r0, #0x40
-_02257670:
- bl MOD11_02257F60
- add r4, r0, #0
- mov r0, #5
- mov r1, #0x80
- bl AllocFromHeap
- add r7, r0, #0
- ldr r0, [sp]
- ldr r0, [r0, #4]
- ldr r0, [r0]
- bl FUN_02020350
- str r0, [sp, #4]
- ldr r0, [sp]
- ldr r1, _0225774C ; =0x0225EAB8
- add r0, #0x25
- ldrb r0, [r0]
- lsl r2, r0, #3
- ldrh r3, [r1, r2]
- mov r1, #0x19
- lsl r1, r1, #0x16
- ldr r0, [sp, #4]
- add r1, r1, r3
- ldr r3, _02257750 ; =0x0225EABA
- ldr r0, [r0, #4]
- ldrh r2, [r3, r2]
- add r0, r0, r1
- add r1, r7, #0
- bl MIi_CpuCopy16
- ldr r0, [sp]
- ldr r1, _02257754 ; =0x0225EABC
- add r0, #0x25
- ldrb r0, [r0]
- lsl r2, r0, #3
- ldrh r3, [r1, r2]
- mov r1, #0x19
- ldr r0, [sp, #4]
- lsl r1, r1, #0x16
- add r1, r1, r3
- ldr r3, _02257758 ; =0x0225EABE
- ldr r0, [r0, #4]
- ldrh r2, [r3, r2]
- add r0, r0, r1
- add r1, r7, #0
- add r1, #0x40
- bl MIi_CpuCopy16
- mov r2, #0
- add r1, r2, #0
-_022576D6:
- mov r0, #0
- add r3, r7, r1
-_022576DA:
- ldrb r5, [r4, r2]
- add r6, r4, r2
- add r0, r0, #1
- strb r5, [r3, #0x10]
- ldrb r6, [r6, #0x10]
- add r5, r3, #0
- add r5, #0x40
- strb r6, [r5]
- add r2, r2, #1
- add r3, r3, #1
- cmp r0, #0x10
- blt _022576DA
- add r1, #0x20
- add r2, #0x10
- cmp r1, #0x40
- blt _022576D6
- ldr r0, [sp]
- ldr r1, [sp, #4]
- add r0, #0x25
- ldrb r0, [r0]
- ldr r3, _0225774C ; =0x0225EAB8
- ldr r1, [r1, #4]
- lsl r2, r0, #3
- ldrh r4, [r3, r2]
- mov r3, #0x19
- lsl r3, r3, #0x16
- add r3, r3, r4
- add r1, r1, r3
- ldr r3, _02257750 ; =0x0225EABA
- add r0, r7, #0
- ldrh r2, [r3, r2]
- bl MIi_CpuCopy16
- ldr r0, [sp]
- ldr r3, _02257754 ; =0x0225EABC
- add r0, #0x25
- str r0, [sp]
- ldrb r0, [r0]
- ldr r1, [sp, #4]
- lsl r2, r0, #3
- ldrh r4, [r3, r2]
- mov r3, #0x19
- lsl r3, r3, #0x16
- add r0, r7, #0
- ldr r1, [r1, #4]
- add r3, r3, r4
- add r1, r1, r3
- ldr r3, _02257758 ; =0x0225EABE
- add r0, #0x40
- ldrh r2, [r3, r2]
- bl MIi_CpuCopy16
- add r0, r7, #0
- bl FreeToHeap
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0225774C: .word 0x0225EAB8
-_02257750: .word 0x0225EABA
-_02257754: .word 0x0225EABC
-_02257758: .word 0x0225EABE
-
- thumb_func_start MOD11_0225775C
-MOD11_0225775C: ; 0x0225775C
- push {r4, r5, r6, r7, lr}
- sub sp, #0xc
- str r0, [sp, #4]
- mov r0, #5
- mov r1, #0x60
- bl AllocFromHeap
- add r4, r0, #0
- mov r0, #5
- mov r1, #0xc0
- bl AllocFromHeap
- add r7, r0, #0
- add r0, r4, #0
- mov r1, #0xff
- mov r2, #0x60
- bl MI_CpuFill8
- ldr r0, [sp, #4]
- ldr r0, [r0, #0xc]
- bl MOD11_022300BC
- ldr r1, [sp, #4]
- str r4, [sp]
- add r1, #0x48
- ldrb r1, [r1]
- mov r2, #3
- mov r3, #0
- bl FUN_0200BAAC
- ldr r0, [sp, #4]
- ldr r0, [r0, #4]
- ldr r0, [r0]
- bl FUN_02020350
- str r0, [sp, #8]
- ldr r0, [sp, #4]
- ldr r1, _0225786C ; =0x0225EA28
- add r0, #0x25
- ldrb r0, [r0]
- lsl r2, r0, #3
- ldrh r3, [r1, r2]
- mov r1, #0x19
- lsl r1, r1, #0x16
- ldr r0, [sp, #8]
- add r1, r1, r3
- ldr r3, _02257870 ; =0x0225EA2A
- ldr r0, [r0, #4]
- ldrh r2, [r3, r2]
- add r0, r0, r1
- add r1, r7, #0
- bl MIi_CpuCopy16
- ldr r0, [sp, #4]
- ldr r1, _02257874 ; =0x0225EA2C
- add r0, #0x25
- ldrb r0, [r0]
- lsl r2, r0, #3
- ldrh r3, [r1, r2]
- mov r1, #0x19
- ldr r0, [sp, #8]
- lsl r1, r1, #0x16
- add r1, r1, r3
- ldr r3, _02257878 ; =0x0225EA2E
- ldr r0, [r0, #4]
- ldrh r2, [r3, r2]
- add r0, r0, r1
- add r1, r7, #0
- add r1, #0x60
- bl MIi_CpuCopy16
- mov r2, #0
- add r1, r2, #0
-_022577EE:
- mov r0, #0
- add r3, r7, r1
-_022577F2:
- ldrb r5, [r4, r2]
- add r6, r4, r2
- add r0, r0, #1
- strb r5, [r3, #0x10]
- ldrb r6, [r6, #0x10]
- add r5, r3, #0
- add r5, #0x60
- strb r6, [r5]
- add r2, r2, #1
- add r3, r3, #1
- cmp r0, #0x10
- blt _022577F2
- add r1, #0x20
- add r2, #0x10
- cmp r1, #0x60
- blt _022577EE
- ldr r0, [sp, #4]
- ldr r1, [sp, #8]
- add r0, #0x25
- ldrb r0, [r0]
- ldr r3, _0225786C ; =0x0225EA28
- ldr r1, [r1, #4]
- lsl r2, r0, #3
- ldrh r5, [r3, r2]
- mov r3, #0x19
- lsl r3, r3, #0x16
- add r3, r3, r5
- add r1, r1, r3
- ldr r3, _02257870 ; =0x0225EA2A
- add r0, r7, #0
- ldrh r2, [r3, r2]
- bl MIi_CpuCopy16
- ldr r0, [sp, #4]
- ldr r3, _02257874 ; =0x0225EA2C
- add r0, #0x25
- str r0, [sp, #4]
- ldrb r0, [r0]
- ldr r1, [sp, #8]
- lsl r2, r0, #3
- ldrh r5, [r3, r2]
- mov r3, #0x19
- lsl r3, r3, #0x16
- add r0, r7, #0
- ldr r1, [r1, #4]
- add r3, r3, r5
- add r1, r1, r3
- ldr r3, _02257878 ; =0x0225EA2E
- add r0, #0x60
- ldrh r2, [r3, r2]
- bl MIi_CpuCopy16
- add r0, r4, #0
- bl FreeToHeap
- add r0, r7, #0
- bl FreeToHeap
- add sp, #0xc
- pop {r4, r5, r6, r7, pc}
- nop
-_0225786C: .word 0x0225EA28
-_02257870: .word 0x0225EA2A
-_02257874: .word 0x0225EA2C
-_02257878: .word 0x0225EA2E
-
- thumb_func_start MOD11_0225787C
-MOD11_0225787C: ; 0x0225787C
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r6, r1, #0
- mov r0, #5
- mov r1, #0x60
- bl AllocFromHeap
- mov r1, #0xff
- mov r2, #0x60
- add r4, r0, #0
- bl MI_CpuFill8
- ldr r0, [r5, #0xc]
- bl MOD11_022300B4
- str r4, [sp]
- add r1, r6, #0
- mov r2, #3
- mov r3, #1
- bl FUN_0200BAAC
- ldr r0, [r5, #4]
- ldr r0, [r0]
- bl FUN_02020350
- add r6, r0, #0
- add r0, r5, #0
- add r0, #0x25
- ldrb r0, [r0]
- mov r7, #0x19
- ldr r3, _022578F8 ; =0x0225EA58
- lsl r2, r0, #3
- ldrh r3, [r3, r2]
- lsl r7, r7, #0x16
- ldr r1, [r6, #4]
- add r3, r7, r3
- add r1, r1, r3
- ldr r3, _022578FC ; =0x0225EA5A
- add r0, r4, #0
- ldrh r2, [r3, r2]
- bl MIi_CpuCopy16
- add r5, #0x25
- ldrb r0, [r5]
- ldr r3, _02257900 ; =0x0225EA5C
- ldr r1, [r6, #4]
- lsl r2, r0, #3
- ldrh r3, [r3, r2]
- ldr r0, _022578FC ; =0x0225EA5A
- add r3, r7, r3
- add r1, r1, r3
- ldrh r0, [r0, r2]
- ldr r3, _02257904 ; =0x0225EA5E
- ldrh r2, [r3, r2]
- add r0, r4, r0
- bl MIi_CpuCopy16
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022578F8: .word 0x0225EA58
-_022578FC: .word 0x0225EA5A
-_02257900: .word 0x0225EA5C
-_02257904: .word 0x0225EA5E
-
- thumb_func_start MOD11_02257908
-MOD11_02257908: ; 0x02257908
- push {r3, r4, r5, lr}
- add r5, r0, #0
- mov r0, #5
- mov r1, #0x60
- bl AllocFromHeap
- mov r1, #0xff
- mov r2, #0x60
- add r4, r0, #0
- bl MI_CpuFill8
- ldr r0, [r5, #0xc]
- bl MOD11_022300B4
- str r4, [sp]
- ldr r1, [r5, #0x2c]
- mov r2, #3
- mov r3, #0
- bl FUN_0200BAAC
- ldr r0, [r5, #4]
- ldr r0, [r0]
- bl FUN_02020350
- add r1, r0, #0
- add r5, #0x25
- ldrb r0, [r5]
- ldr r3, _02257960 ; =0x0225E9F8
- ldr r1, [r1, #4]
- lsl r2, r0, #2
- ldrh r5, [r3, r2]
- mov r3, #0x19
- lsl r3, r3, #0x16
- add r3, r5, r3
- add r1, r1, r3
- ldr r3, _02257964 ; =0x0225E9FA
- add r0, r4, #0
- ldrh r2, [r3, r2]
- bl MIi_CpuCopy16
- add r0, r4, #0
- bl FreeToHeap
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02257960: .word 0x0225E9F8
-_02257964: .word 0x0225E9FA
-
- thumb_func_start MOD11_02257968
-MOD11_02257968: ; 0x02257968
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r0, #0x4b
- ldrb r0, [r0]
- cmp r0, #1
- bne _0225797C
- mov r0, #0x3b
- bl MOD11_02257F60
- b _02257982
-_0225797C:
- mov r0, #0x38
- bl MOD11_02257F60
-_02257982:
- add r4, r0, #0
- ldr r0, [r5, #4]
- ldr r0, [r0]
- bl FUN_02020350
- add r5, #0x25
- add r1, r0, #0
- ldrb r0, [r5]
- lsl r2, r0, #2
- add r0, r4, #0
- ldr r4, [r1, #4]
- ldr r1, _022579B0 ; =0x0225E9C8
- ldrh r3, [r1, r2]
- mov r1, #0x19
- lsl r1, r1, #0x16
- add r1, r3, r1
- ldr r3, _022579B4 ; =0x0225E9CA
- add r1, r4, r1
- ldrh r2, [r3, r2]
- bl MIi_CpuCopy16
- pop {r3, r4, r5, pc}
- nop
-_022579B0: .word 0x0225E9C8
-_022579B4: .word 0x0225E9CA
-
- thumb_func_start MOD11_022579B8
-MOD11_022579B8: ; 0x022579B8
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r0, r1, #0
- bl MOD11_02257F60
- add r4, r0, #0
- ldr r0, [r5, #4]
- ldr r0, [r0]
- bl FUN_02020350
- add r5, #0x25
- add r1, r0, #0
- ldrb r0, [r5]
- lsl r2, r0, #2
- add r0, r4, #0
- ldr r4, [r1, #4]
- ldr r1, _022579F0 ; =0x0225E998
- ldrh r3, [r1, r2]
- mov r1, #0x19
- lsl r1, r1, #0x16
- add r1, r3, r1
- ldr r3, _022579F4 ; =0x0225E99A
- add r1, r4, r1
- ldrh r2, [r3, r2]
- bl MIi_CpuCopy16
- pop {r3, r4, r5, pc}
- nop
-_022579F0: .word 0x0225E998
-_022579F4: .word 0x0225E99A
-
- thumb_func_start MOD11_022579F8
-MOD11_022579F8: ; 0x022579F8
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x28
- add r4, r0, #0
- ldr r0, [r4, #0xc]
- add r5, r1, #0
- bl MOD11_0222FF68
- add r6, r0, #0
- ldr r0, [r4, #0xc]
- bl MOD11_022300C4
- mov r1, #1
- lsl r1, r1, #0xa
- add r2, r5, #0
- tst r2, r1
- beq _02257A20
- sub r1, #0x4a
- bl FUN_0200A914
- b _02257A26
-_02257A20:
- add r1, #0xc4
- bl FUN_0200A914
-_02257A26:
- add r7, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r0, #0xf
- str r0, [sp, #4]
- add r0, r6, #0
- add r1, sp, #0x18
- mov r2, #0xd
- mov r3, #2
- bl FUN_020190EC
- mov r1, #0
- str r1, [sp]
- mov r0, #0xff
- str r0, [sp, #4]
- ldr r0, _02257AD0 ; =0x000E020F
- add r2, r7, #0
- str r0, [sp, #8]
- str r1, [sp, #0xc]
- str r1, [sp, #0x10]
- str r1, [sp, #0x14]
- add r0, sp, #0x18
- add r3, r1, #0
- bl FUN_0201BE3C
- ldr r0, [r4, #4]
- ldr r5, [sp, #0x24]
- ldr r0, [r0]
- bl FUN_02020350
- add r4, r0, #0
- mov r2, #0x1a
- mov r6, #0x19
- lsl r2, r2, #4
- lsl r6, r6, #0x16
- add r2, #0xa0
- ldr r1, [r4, #4]
- add r2, r6, r2
- add r1, r1, r2
- add r0, r5, #0
- mov r2, #0xc0
- bl MIi_CpuCopy16
- mov r2, #0xd
- mov r0, #0x1a
- lsl r2, r2, #6
- lsl r0, r0, #4
- ldr r1, [r4, #4]
- add r2, r6, r2
- add r1, r1, r2
- add r0, r5, r0
- mov r2, #0xc0
- bl MIi_CpuCopy16
- mov r2, #0xa
- lsl r2, r2, #8
- add r0, r5, #0
- ldr r1, [r4, #4]
- add r2, r6, r2
- add r1, r1, r2
- add r0, #0xc0
- mov r2, #0xe0
- bl MIi_CpuCopy16
- mov r0, #0x1a
- mov r1, #0xb
- lsl r0, r0, #4
- lsl r1, r1, #8
- add r0, r5, r0
- ldr r2, [r4, #4]
- add r1, r6, r1
- add r1, r2, r1
- add r0, #0xc0
- mov r2, #0xe0
- bl MIi_CpuCopy16
- add r0, sp, #0x18
- bl FUN_02019178
- add r0, r7, #0
- bl FUN_02021A20
- add sp, #0x28
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02257AD0: .word 0x000E020F
-
- thumb_func_start MOD11_02257AD4
-MOD11_02257AD4: ; 0x02257AD4
- push {r4, r5, r6, r7, lr}
- sub sp, #0x34
- add r4, r0, #0
- ldr r0, [r4, #0xc]
- add r5, r1, #0
- bl MOD11_0222FF68
- str r0, [sp, #0x1c]
- ldr r0, [r4, #0xc]
- bl MOD11_022300C4
- str r0, [sp, #0x20]
- ldr r0, [r4, #0xc]
- bl MOD11_02230138
- add r7, r0, #0
- mov r0, #0x1e
- mov r1, #5
- bl FUN_020219F4
- mov r1, #1
- add r6, r0, #0
- lsl r1, r1, #0xa
- add r0, r5, #0
- tst r0, r1
- beq _02257B14
- ldr r0, [sp, #0x20]
- sub r1, #0x49
- bl FUN_0200A914
- str r0, [sp, #0x18]
- b _02257B1E
-_02257B14:
- ldr r0, [sp, #0x20]
- add r1, #0xc5
- bl FUN_0200A914
- str r0, [sp, #0x18]
-_02257B1E:
- mov r0, #1
- str r0, [sp]
- add r2, r4, #0
- str r0, [sp, #4]
- add r2, #0x27
- ldrb r2, [r2]
- add r0, r7, #0
- mov r1, #0
- mov r3, #2
- bl FUN_0200AD38
- ldr r2, [sp, #0x18]
- add r0, r7, #0
- add r1, r6, #0
- bl FUN_0200B7B8
- mov r0, #0
- str r0, [sp]
- mov r0, #0xf
- str r0, [sp, #4]
- ldr r0, [sp, #0x1c]
- add r1, sp, #0x24
- mov r2, #0xd
- mov r3, #2
- bl FUN_020190EC
- mov r1, #0
- str r1, [sp]
- mov r0, #0xff
- str r0, [sp, #4]
- ldr r0, _02257BE8 ; =0x000E020F
- add r2, r6, #0
- str r0, [sp, #8]
- str r1, [sp, #0xc]
- str r1, [sp, #0x10]
- str r1, [sp, #0x14]
- add r0, sp, #0x24
- add r3, r1, #0
- bl FUN_0201BE3C
- ldr r0, [r4, #4]
- ldr r5, [sp, #0x30]
- ldr r0, [r0]
- bl FUN_02020350
- add r4, r0, #0
- mov r7, #0x19
- mov r2, #0x11
- lsl r7, r7, #0x16
- lsl r2, r2, #6
- ldr r1, [r4, #4]
- add r2, r7, r2
- add r1, r1, r2
- add r0, r5, #0
- mov r2, #0xc0
- bl MIi_CpuCopy16
- mov r2, #0x15
- mov r0, #0x1a
- lsl r2, r2, #6
- lsl r0, r0, #4
- ldr r1, [r4, #4]
- add r2, r7, r2
- add r1, r1, r2
- add r0, r5, r0
- mov r2, #0xc0
- bl MIi_CpuCopy16
- mov r2, #3
- lsl r2, r2, #0xa
- add r0, r5, #0
- ldr r1, [r4, #4]
- add r2, r7, r2
- add r1, r1, r2
- add r0, #0xc0
- mov r2, #0xe0
- bl MIi_CpuCopy16
- mov r0, #0x1a
- mov r1, #0xd
- lsl r0, r0, #4
- lsl r1, r1, #8
- add r0, r5, r0
- ldr r2, [r4, #4]
- add r1, r7, r1
- add r1, r2, r1
- add r0, #0xc0
- mov r2, #0xe0
- bl MIi_CpuCopy16
- add r0, sp, #0x24
- bl FUN_02019178
- add r0, r6, #0
- bl FUN_02021A20
- ldr r0, [sp, #0x18]
- bl FUN_02021A20
- add sp, #0x34
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02257BE8: .word 0x000E020F
-
- thumb_func_start MOD11_02257BEC
-MOD11_02257BEC: ; 0x02257BEC
- push {r4, r5, r6, lr}
- sub sp, #8
- add r5, r0, #0
- add r4, r1, #0
- bne _02257C10
- mov r0, #6
- str r0, [sp]
- mov r0, #1
- str r0, [sp, #4]
- add r3, r5, #0
- ldr r0, [r5, #0x2c]
- ldr r1, [r5, #0x28]
- ldr r2, [r5, #0x30]
- add r3, #0x34
- bl MOD11_02257DE8
- add r6, r0, #0
- b _02257C48
-_02257C10:
- ldr r0, [r5, #0x38]
- ldr r1, [r5, #0x40]
- ldr r2, [r5, #0x3c]
- mov r3, #0xb
- bl MOD11_02257F20
- add r1, r0, #0
- bne _02257C22
- mov r1, #1
-_02257C22:
- ldr r6, [r5, #0x40]
- add r0, r6, #0
- bl _s32_div_f
- bl abs
- mov r1, #0xb
- lsl r0, r0, #0x10
- add r3, r5, #0
- str r1, [sp]
- lsr r0, r0, #0x10
- str r0, [sp, #4]
- ldr r0, [r5, #0x3c]
- ldr r1, [r5, #0x38]
- add r2, r6, #0
- add r3, #0x44
- bl MOD11_02257DE8
- add r6, r0, #0
-_02257C48:
- cmp r4, #0
- bne _02257C5A
- add r0, r5, #0
- add r0, #0x4f
- ldrb r0, [r0]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1f
- cmp r0, #1
- beq _02257C64
-_02257C5A:
- lsl r1, r4, #0x18
- add r0, r5, #0
- lsr r1, r1, #0x18
- bl MOD11_02257C80
-_02257C64:
- mov r0, #0
- mvn r0, r0
- cmp r6, r0
- bne _02257C7A
- cmp r4, #0
- bne _02257C76
- mov r0, #0
- str r0, [r5, #0x34]
- b _02257C7A
-_02257C76:
- mov r0, #0
- str r0, [r5, #0x44]
-_02257C7A:
- add r0, r6, #0
- add sp, #8
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_02257C80
-MOD11_02257C80: ; 0x02257C80
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- add r6, r0, #0
- ldr r0, [r6, #4]
- add r4, r1, #0
- ldr r0, [r0]
- bl FUN_02020350
- add r5, r0, #0
- cmp r4, #0
- beq _02257C9E
- cmp r4, #1
- beq _02257D50
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
-_02257C9E:
- add r0, sp, #0x10
- str r0, [sp]
- mov r0, #6
- str r0, [sp, #4]
- add r3, r6, #0
- ldr r0, [r6, #0x2c]
- ldr r1, [r6, #0x28]
- ldr r2, [r6, #0x30]
- add r3, #0x34
- bl MOD11_02257EA4
- mov r1, #0x30
- bl FUN_02079A24
- cmp r0, #1
- beq _02257CCE
- cmp r0, #2
- beq _02257CCA
- cmp r0, #3
- bne _02257CCE
- mov r0, #2
- b _02257CD0
-_02257CCA:
- mov r0, #0xb
- b _02257CD0
-_02257CCE:
- mov r0, #0x14
-_02257CD0:
- bl MOD11_02257F60
- str r0, [sp, #0xc]
- add r0, r6, #0
- add r0, #0x25
- ldrb r0, [r0]
- mov r4, #0
- lsl r1, r0, #3
- ldr r0, _02257DE0 ; =0x0225EA8A
- ldrh r0, [r0, r1]
- lsr r7, r0, #5
-_02257CE6:
- cmp r4, r7
- add r0, sp, #0x10
- bge _02257D16
- add r2, r6, #0
- add r2, #0x25
- ldrb r2, [r2]
- ldrb r0, [r0, r4]
- lsl r3, r2, #3
- ldr r2, _02257DE4 ; =0x0225EA88
- lsl r1, r0, #5
- ldrh r3, [r2, r3]
- ldr r0, [sp, #0xc]
- mov r2, #0x19
- lsl r2, r2, #0x16
- add r0, r0, r1
- add r3, r2, r3
- lsl r2, r4, #5
- ldr r1, [r5, #4]
- add r2, r3, r2
- add r1, r1, r2
- mov r2, #0x20
- bl MIi_CpuCopy16
- b _02257D42
-_02257D16:
- ldrb r0, [r0, r4]
- ldr r2, [r5, #4]
- lsl r1, r0, #5
- ldr r0, [sp, #0xc]
- add r0, r0, r1
- add r1, r6, #0
- add r1, #0x25
- ldrb r1, [r1]
- lsl r3, r1, #3
- ldr r1, _02257DE4 ; =0x0225EA88
- add r1, r1, r3
- ldrh r3, [r1, #4]
- mov r1, #0x19
- lsl r1, r1, #0x16
- add r1, r1, r3
- sub r3, r4, r7
- lsl r3, r3, #5
- add r1, r1, r3
- add r1, r2, r1
- mov r2, #0x20
- bl MIi_CpuCopy16
-_02257D42:
- add r0, r4, #1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- cmp r4, #6
- blo _02257CE6
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
-_02257D50:
- add r0, sp, #0x10
- str r0, [sp]
- mov r0, #0xb
- str r0, [sp, #4]
- add r3, r6, #0
- ldr r0, [r6, #0x3c]
- ldr r1, [r6, #0x38]
- ldr r2, [r6, #0x40]
- add r3, #0x44
- bl MOD11_02257EA4
- add r6, #0x48
- ldrb r0, [r6]
- cmp r0, #0x64
- bne _02257D80
- mov r0, #0
- add r2, r0, #0
- add r1, sp, #0x10
-_02257D74:
- strb r2, [r1, r0]
- add r0, r0, #1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- cmp r0, #0xb
- blo _02257D74
-_02257D80:
- mov r0, #0x1d
- bl MOD11_02257F60
- add r6, r0, #0
- mov r1, #0x19
- mov r0, #0x1a
- lsl r1, r1, #0x16
- lsl r0, r0, #6
- add r0, r1, r0
- str r0, [sp, #8]
- mov r0, #0xe
- lsl r0, r0, #8
- mov r4, #0
- add r7, r1, r0
-_02257D9C:
- cmp r4, #4
- add r0, sp, #0x10
- bhs _02257DBA
- ldrb r0, [r0, r4]
- ldr r1, [sp, #8]
- lsl r2, r4, #5
- lsl r0, r0, #5
- add r1, r1, r2
- ldr r3, [r5, #4]
- add r0, r6, r0
- add r1, r3, r1
- mov r2, #0x20
- bl MIi_CpuCopy16
- b _02257DD0
-_02257DBA:
- ldrb r0, [r0, r4]
- sub r2, r4, #4
- lsl r2, r2, #5
- lsl r0, r0, #5
- ldr r1, [r5, #4]
- add r2, r7, r2
- add r1, r1, r2
- add r0, r6, r0
- mov r2, #0x20
- bl MIi_CpuCopy16
-_02257DD0:
- add r0, r4, #1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- cmp r4, #0xb
- blo _02257D9C
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- nop
-_02257DE0: .word 0x0225EA8A
-_02257DE4: .word 0x0225EA88
-
- thumb_func_start MOD11_02257DE8
-MOD11_02257DE8: ; 0x02257DE8
- push {r4, r5, r6, lr}
- add r6, r2, #0
- add r2, sp, #0
- add r5, r3, #0
- ldrb r2, [r2, #0x10]
- mov r3, #2
- ldr r4, [r5]
- lsl r2, r2, #0x1b
- lsl r3, r3, #0x1e
- lsr r2, r2, #0x18
- cmp r4, r3
- bne _02257E0C
- cmp r0, r2
- bge _02257E0A
- lsl r3, r1, #8
- str r3, [r5]
- b _02257E0C
-_02257E0A:
- str r1, [r5]
-_02257E0C:
- sub r4, r1, r6
- bpl _02257E14
- mov r4, #0
- b _02257E1A
-_02257E14:
- cmp r4, r0
- ble _02257E1A
- add r4, r0, #0
-_02257E1A:
- cmp r0, r2
- bge _02257E32
- ldr r3, [r5]
- asr r1, r3, #8
- cmp r4, r1
- bne _02257E3E
- lsl r1, r3, #0x18
- lsr r1, r1, #0x18
- bne _02257E3E
- mov r0, #0
- mvn r0, r0
- pop {r4, r5, r6, pc}
-_02257E32:
- ldr r1, [r5]
- cmp r4, r1
- bne _02257E3E
- mov r0, #0
- mvn r0, r0
- pop {r4, r5, r6, pc}
-_02257E3E:
- cmp r0, r2
- bge _02257E7E
- lsl r0, r0, #8
- add r1, r2, #0
- bl _s32_div_f
- cmp r6, #0
- ldr r1, [r5]
- bge _02257E62
- add r0, r1, r0
- str r0, [r5]
- asr r0, r0, #8
- cmp r0, r4
- blt _02257EA2
- lsl r0, r4, #8
- str r0, [r5]
- add r0, r4, #0
- pop {r4, r5, r6, pc}
-_02257E62:
- sub r1, r1, r0
- str r1, [r5]
- asr r0, r1, #8
- lsl r1, r1, #0x18
- lsr r1, r1, #0x18
- cmp r1, #0
- ble _02257E72
- add r0, r0, #1
-_02257E72:
- cmp r0, r4
- bgt _02257EA2
- lsl r0, r4, #8
- str r0, [r5]
- add r0, r4, #0
- pop {r4, r5, r6, pc}
-_02257E7E:
- cmp r6, #0
- ldr r1, [r5]
- add r0, sp, #0
- bge _02257E94
- ldrh r0, [r0, #0x14]
- add r0, r1, r0
- str r0, [r5]
- cmp r0, r4
- ble _02257EA0
- str r4, [r5]
- b _02257EA0
-_02257E94:
- ldrh r0, [r0, #0x14]
- sub r0, r1, r0
- str r0, [r5]
- cmp r0, r4
- bge _02257EA0
- str r4, [r5]
-_02257EA0:
- ldr r0, [r5]
-_02257EA2:
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_02257EA4
-MOD11_02257EA4: ; 0x02257EA4
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- ldr r5, [sp, #0x18]
- sub r7, r1, r2
- bpl _02257EB2
- mov r7, #0
- b _02257EB8
-_02257EB2:
- cmp r7, r6
- ble _02257EB8
- add r7, r6, #0
-_02257EB8:
- add r0, sp, #8
- ldrb r4, [r0, #0x14]
- mov r1, #0
- lsl r2, r4, #3
- cmp r4, #0
- ble _02257ECE
- add r0, r1, #0
-_02257EC6:
- strb r0, [r5, r1]
- add r1, r1, #1
- cmp r1, r4
- blt _02257EC6
-_02257ECE:
- cmp r6, r2
- ldr r1, [r3]
- bhs _02257EE2
- add r0, r1, #0
- mul r0, r2
- add r1, r6, #0
- bl _u32_div_f
- lsr r0, r0, #8
- b _02257EEC
-_02257EE2:
- add r0, r1, #0
- mul r0, r2
- add r1, r6, #0
- bl _u32_div_f
-_02257EEC:
- add r2, r0, #0
- cmp r0, #0
- bne _02257EFC
- cmp r7, #0
- ble _02257EFC
- mov r2, #1
- strb r2, [r5]
- b _02257F18
-_02257EFC:
- mov r3, #0
- cmp r4, #0
- ble _02257F18
- mov r1, #8
-_02257F04:
- cmp r0, #8
- blo _02257F0E
- strb r1, [r5, r3]
- sub r0, #8
- b _02257F12
-_02257F0E:
- strb r0, [r5, r3]
- b _02257F18
-_02257F12:
- add r3, r3, #1
- cmp r3, r4
- blt _02257F04
-_02257F18:
- lsl r0, r2, #0x18
- lsr r0, r0, #0x18
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02257F20
-MOD11_02257F20: ; 0x02257F20
- push {r3, r4, r5, r6, r7, lr}
- add r7, r0, #0
- lsl r0, r3, #0x1b
- add r5, r2, #0
- lsr r6, r0, #0x18
- sub r4, r7, r1
- bpl _02257F32
- mov r4, #0
- b _02257F38
-_02257F32:
- cmp r4, r5
- ble _02257F38
- add r4, r5, #0
-_02257F38:
- add r0, r7, #0
- mul r0, r6
- add r1, r5, #0
- bl _s32_div_f
- add r7, r0, #0
- add r0, r4, #0
- mul r0, r6
- add r1, r5, #0
- bl _s32_div_f
- lsl r1, r7, #0x18
- lsl r0, r0, #0x18
- asr r1, r1, #0x18
- asr r0, r0, #0x18
- sub r0, r1, r0
- bl abs
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02257F60
-MOD11_02257F60: ; 0x02257F60
- ldr r1, _02257F68 ; =0x0225ECE8
- lsl r0, r0, #5
- add r0, r1, r0
- bx lr
- .align 2, 0
-_02257F68: .word 0x0225ECE8
-
- thumb_func_start MOD11_02257F6C
-MOD11_02257F6C: ; 0x02257F6C
- push {r3, lr}
- cmp r0, #5
- bhi _02257FB8
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02257F7E: ; jump table
- .short _02257F8A - _02257F7E - 2 ; case 0
- .short _02257FA4 - _02257F7E - 2 ; case 1
- .short _02257FA8 - _02257F7E - 2 ; case 2
- .short _02257FAC - _02257F7E - 2 ; case 3
- .short _02257FB0 - _02257F7E - 2 ; case 4
- .short _02257FB4 - _02257F7E - 2 ; case 5
-_02257F8A:
- mov r0, #2
- lsl r0, r0, #8
- tst r0, r1
- beq _02257F96
- mov r0, #7
- pop {r3, pc}
-_02257F96:
- mov r0, #0x20
- tst r0, r1
- beq _02257FA0
- mov r0, #6
- pop {r3, pc}
-_02257FA0:
- mov r0, #0
- pop {r3, pc}
-_02257FA4:
- mov r0, #1
- pop {r3, pc}
-_02257FA8:
- mov r0, #2
- pop {r3, pc}
-_02257FAC:
- mov r0, #3
- pop {r3, pc}
-_02257FB0:
- mov r0, #4
- pop {r3, pc}
-_02257FB4:
- mov r0, #5
- pop {r3, pc}
-_02257FB8:
- bl ErrorHandling
- mov r0, #0
- pop {r3, pc}
-
- thumb_func_start MOD11_02257FC0
-MOD11_02257FC0: ; 0x02257FC0
- push {r3, lr}
- cmp r0, #7
- bhi _02257FFE
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02257FD2: ; jump table
- .short _02257FE2 - _02257FD2 - 2 ; case 0
- .short _02257FE6 - _02257FD2 - 2 ; case 1
- .short _02257FEA - _02257FD2 - 2 ; case 2
- .short _02257FEE - _02257FD2 - 2 ; case 3
- .short _02257FF2 - _02257FD2 - 2 ; case 4
- .short _02257FF6 - _02257FD2 - 2 ; case 5
- .short _02257FFA - _02257FD2 - 2 ; case 6
- .short _02257FFA - _02257FD2 - 2 ; case 7
-_02257FE2:
- ldr r0, _02258008 ; =0x0225EBEC
- pop {r3, pc}
-_02257FE6:
- ldr r0, _0225800C ; =0x0225EC20
- pop {r3, pc}
-_02257FEA:
- ldr r0, _02258010 ; =0x0225EAE8
- pop {r3, pc}
-_02257FEE:
- ldr r0, _02258014 ; =0x0225EB1C
- pop {r3, pc}
-_02257FF2:
- ldr r0, _02258018 ; =0x0225EB84
- pop {r3, pc}
-_02257FF6:
- ldr r0, _0225801C ; =0x0225EC54
- pop {r3, pc}
-_02257FFA:
- ldr r0, _02258020 ; =0x0225EBB8
- pop {r3, pc}
-_02257FFE:
- bl ErrorHandling
- mov r0, #0
- pop {r3, pc}
- nop
-_02258008: .word 0x0225EBEC
-_0225800C: .word 0x0225EC20
-_02258010: .word 0x0225EAE8
-_02258014: .word 0x0225EB1C
-_02258018: .word 0x0225EB84
-_0225801C: .word 0x0225EC54
-_02258020: .word 0x0225EBB8
-
- thumb_func_start MOD11_02258024
-MOD11_02258024: ; 0x02258024
- push {r3, lr}
- cmp r0, #7
- bhi _0225804E
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02258036: ; jump table
- .short _02258046 - _02258036 - 2 ; case 0
- .short _0225804A - _02258036 - 2 ; case 1
- .short _02258046 - _02258036 - 2 ; case 2
- .short _0225804A - _02258036 - 2 ; case 3
- .short _02258046 - _02258036 - 2 ; case 4
- .short _0225804A - _02258036 - 2 ; case 5
- .short _02258046 - _02258036 - 2 ; case 6
- .short _02258046 - _02258036 - 2 ; case 7
-_02258046:
- ldr r0, _02258058 ; =0x0225EB50
- pop {r3, pc}
-_0225804A:
- mov r0, #0
- pop {r3, pc}
-_0225804E:
- bl ErrorHandling
- mov r0, #0
- pop {r3, pc}
- nop
-_02258058: .word 0x0225EB50
-
- thumb_func_start MOD11_0225805C
-MOD11_0225805C: ; 0x0225805C
- push {r4, r5, r6, lr}
- add r5, r0, #0
- add r6, r1, #0
- mov r0, #0
- strb r0, [r6]
- mov r0, #5
- mov r1, #0xc
- bl AllocFromHeap
- mov r1, #0
- mov r2, #0xc
- add r4, r0, #0
- bl MI_CpuFill8
- mov r2, #0xfa
- str r5, [r4]
- ldr r0, _0225808C ; =MOD11_02258090
- add r1, r4, #0
- lsl r2, r2, #2
- str r6, [r4, #4]
- bl FUN_0200CA44
- pop {r4, r5, r6, pc}
- nop
-_0225808C: .word MOD11_02258090
-
- thumb_func_start MOD11_02258090
-MOD11_02258090: ; 0x02258090
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r4, r1, #0
- add r7, r0, #0
- ldr r0, [r4]
- ldr r0, [r0, #0xc]
- bl MOD11_02230080
- add r5, r0, #0
- ldr r0, [r4]
- ldr r0, [r0, #0xc]
- bl MOD11_022300CC
- add r6, r0, #0
- ldrb r0, [r4, #8]
- cmp r0, #0
- beq _022580BC
- cmp r0, #1
- beq _022580DA
- cmp r0, #2
- beq _02258112
- b _0225814A
-_022580BC:
- ldr r1, _02258174 ; =0x00004E27
- add r0, r5, #0
- mov r2, #1
- bl FUN_0200C344
- add r5, r0, #0
- ldr r0, [r4]
- add r1, r5, #0
- ldr r0, [r0, #4]
- bl FUN_0200C66C
- strb r5, [r4, #9]
- ldrb r0, [r4, #8]
- add r0, r0, #1
- strb r0, [r4, #8]
-_022580DA:
- mov r0, #0xa
- ldrsb r1, [r4, r0]
- add r1, r1, #4
- strb r1, [r4, #0xa]
- ldrsb r0, [r4, r0]
- cmp r0, #0x10
- blt _022580F2
- mov r0, #0x10
- strb r0, [r4, #0xa]
- ldrb r0, [r4, #8]
- add r0, r0, #1
- strb r0, [r4, #8]
-_022580F2:
- ldrb r0, [r4, #0xa]
- mov r1, #2
- mov r3, #1
- str r0, [sp]
- ldr r0, _02258178 ; =0x000073A5
- str r0, [sp, #4]
- ldrb r2, [r4, #9]
- add r0, r6, #0
- lsl r2, r2, #4
- add r2, #0xf
- lsl r2, r2, #0x10
- lsr r2, r2, #0x10
- bl FUN_020039E8
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-_02258112:
- mov r0, #0xa
- ldrsb r1, [r4, r0]
- sub r1, r1, #4
- strb r1, [r4, #0xa]
- ldrsb r0, [r4, r0]
- cmp r0, #0
- bgt _0225812A
- mov r0, #0
- strb r0, [r4, #0xa]
- ldrb r0, [r4, #8]
- add r0, r0, #1
- strb r0, [r4, #8]
-_0225812A:
- ldrb r0, [r4, #0xa]
- mov r1, #2
- mov r3, #1
- str r0, [sp]
- ldr r0, _02258178 ; =0x000073A5
- str r0, [sp, #4]
- ldrb r2, [r4, #9]
- add r0, r6, #0
- lsl r2, r2, #4
- add r2, #0xf
- lsl r2, r2, #0x10
- lsr r2, r2, #0x10
- bl FUN_020039E8
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-_0225814A:
- ldr r1, _0225817C ; =0x00004E26
- add r0, r5, #0
- mov r2, #1
- bl FUN_0200C344
- add r1, r0, #0
- ldr r0, [r4]
- ldr r0, [r0, #4]
- bl FUN_0200C66C
- ldr r0, [r4, #4]
- mov r1, #1
- strb r1, [r0]
- add r0, r4, #0
- bl FreeToHeap
- add r0, r7, #0
- bl FUN_0200CAB4
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02258174: .word 0x00004E27
-_02258178: .word 0x000073A5
-_0225817C: .word 0x00004E26
-
- thumb_func_start MOD11_02258180
-MOD11_02258180: ; 0x02258180
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_02258184
-MOD11_02258184: ; 0x02258184
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_02258188
-MOD11_02258188: ; 0x02258188
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x50]
- cmp r0, #0
- bne _022581A6
- add r0, r4, #0
- mov r1, #0
- add r0, #0x54
- strh r1, [r0]
- ldr r0, _022581A8 ; =MOD11_022581D4
- ldr r2, _022581AC ; =0x000003F2
- add r1, r4, #0
- bl FUN_0200CA44
- str r0, [r4, #0x50]
-_022581A6:
- pop {r4, pc}
- .align 2, 0
-_022581A8: .word MOD11_022581D4
-_022581AC: .word 0x000003F2
-
- thumb_func_start MOD11_022581B0
-MOD11_022581B0: ; 0x022581B0
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #0x50]
- cmp r0, #0
- beq _022581C2
- bl FUN_0200CAB4
- mov r0, #0
- str r0, [r4, #0x50]
-_022581C2:
- add r0, r4, #0
- mov r1, #0
- add r0, #0x54
- strh r1, [r0]
- add r0, r4, #0
- add r2, r1, #0
- bl MOD11_022572C8
- pop {r4, pc}
-
- thumb_func_start MOD11_022581D4
-MOD11_022581D4: ; 0x022581D4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r1, #0x54
- ldrh r2, [r1]
- add r1, r4, #0
- add r1, #0x54
- add r2, #0x14
- strh r2, [r1]
- add r1, r4, #0
- add r1, #0x54
- ldrh r2, [r1]
- mov r1, #0x5a
- add r0, r4, #0
- lsl r1, r1, #2
- add r0, #0x54
- cmp r2, r1
- blo _022581FC
- ldrh r2, [r0]
- sub r1, r2, r1
- strh r1, [r0]
-_022581FC:
- add r0, r4, #0
- add r0, #0x54
- ldrh r0, [r0]
- bl FUN_0201B93C
- mov r2, #6
- asr r1, r0, #0x1f
- lsl r2, r2, #0xa
- mov r3, #0
- bl _ll_mul
- mov r2, #2
- add r3, r0, #0
- add r5, r1, #0
- mov r1, #0
- lsl r2, r2, #0xa
- add r0, r4, #0
- add r3, r3, r2
- adc r5, r1
- lsl r2, r5, #0x14
- lsr r3, r3, #0xc
- orr r3, r2
- asr r2, r3, #0xb
- lsr r2, r2, #0x14
- add r2, r3, r2
- asr r2, r2, #0xc
- bl MOD11_022572C8
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02258238
-MOD11_02258238: ; 0x02258238
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- add r5, r0, #0
- ldr r0, [r5, #4]
- bl MOD11_02230078
- str r0, [sp, #0x20]
- ldr r0, [r5, #4]
- bl MOD11_02230080
- add r7, r0, #0
- ldr r0, [r5, #4]
- bl MOD11_02230C68
- add r6, r0, #0
- ldrb r0, [r5, #8]
- cmp r0, #0
- ldrb r0, [r5, #9]
- bne _02258274
- lsl r1, r0, #1
- ldr r0, _02258320 ; =0x0225F5C0
- ldrh r3, [r0, r1]
- ldr r0, _02258324 ; =0x00004E2D
- mov r1, #0x58
- str r1, [sp, #0x1c]
- add r4, r0, #0
- mov r1, #0x59
- sub r4, #8
- str r1, [sp, #0x18]
- b _02258288
-_02258274:
- lsl r1, r0, #1
- ldr r0, _02258328 ; =0x0225F5A8
- ldrh r3, [r0, r1]
- ldr r0, _0225832C ; =0x00004E2E
- mov r1, #0x5b
- str r1, [sp, #0x1c]
- add r4, r0, #0
- mov r1, #0x5c
- sub r4, #8
- str r1, [sp, #0x18]
-_02258288:
- mov r1, #1
- str r1, [sp]
- str r1, [sp, #4]
- str r0, [sp, #8]
- ldr r0, [sp, #0x20]
- add r1, r7, #0
- mov r2, #0x1b
- bl FUN_0200C00C
- ldr r0, [r5, #4]
- bl MOD11_022300CC
- mov r1, #0x1b
- str r1, [sp]
- ldrb r1, [r5, #9]
- mov r2, #6
- add r3, r1, #0
- mul r3, r2
- ldr r2, _02258330 ; =0x0225F5D8
- lsl r1, r6, #1
- add r2, r2, r3
- ldrh r1, [r1, r2]
- ldr r2, [sp, #0x20]
- add r3, r7, #0
- str r1, [sp, #4]
- mov r1, #0
- str r1, [sp, #8]
- mov r1, #1
- str r1, [sp, #0xc]
- str r1, [sp, #0x10]
- ldr r1, _02258334 ; =0x00004E29
- str r1, [sp, #0x14]
- mov r1, #2
- bl FUN_0200C0DC
- ldr r0, [r5, #4]
- bl MOD11_022300CC
- mov r1, #0
- str r1, [sp]
- mov r1, #0x20
- str r1, [sp, #4]
- mov r1, #0x70
- str r1, [sp, #8]
- ldrb r2, [r5, #9]
- mov r3, #6
- lsl r5, r6, #1
- mul r3, r2
- ldr r2, _02258330 ; =0x0225F5D8
- mov r1, #0x1b
- add r2, r2, r3
- ldrh r2, [r5, r2]
- mov r3, #5
- bl FUN_020030E8
- mov r0, #1
- str r0, [sp]
- ldr r0, [sp, #0x20]
- ldr r3, [sp, #0x1c]
- add r1, r7, #0
- mov r2, #0x1b
- str r4, [sp, #4]
- bl FUN_0200C124
- mov r0, #1
- str r0, [sp]
- ldr r0, [sp, #0x20]
- ldr r3, [sp, #0x18]
- add r1, r7, #0
- mov r2, #0x1b
- str r4, [sp, #4]
- bl FUN_0200C13C
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- nop
-_02258320: .word 0x0225F5C0
-_02258324: .word 0x00004E2D
-_02258328: .word 0x0225F5A8
-_0225832C: .word 0x00004E2E
-_02258330: .word 0x0225F5D8
-_02258334: .word 0x00004E29
-
- thumb_func_start MOD11_02258338
-MOD11_02258338: ; 0x02258338
- push {r3, r4, r5, lr}
- add r4, r0, #0
- ldr r0, [r4, #4]
- bl MOD11_02230078
- add r5, r0, #0
- ldr r0, [r4, #4]
- bl MOD11_02230080
- add r1, r0, #0
- add r0, r5, #0
- ldrb r3, [r4, #8]
- mov r2, #0x34
- ldr r5, _02258368 ; =0x0225F61C
- mul r2, r3
- add r2, r5, r2
- bl FUN_0200C154
- str r0, [r4]
- ldr r0, [r0]
- bl FUN_0200C59C
- pop {r3, r4, r5, pc}
- nop
-_02258368: .word 0x0225F61C
-
- thumb_func_start MOD11_0225836C
-MOD11_0225836C: ; 0x0225836C
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4]
- cmp r0, #0
- beq _0225837E
- bl FUN_0200C3DC
- mov r0, #0
- str r0, [r4]
-_0225837E:
- pop {r4, pc}
-
- thumb_func_start MOD11_02258380
-MOD11_02258380: ; 0x02258380
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5, #4]
- bl MOD11_02230080
- add r4, r0, #0
- ldrb r0, [r5, #8]
- cmp r0, #0
- bne _02258396
- ldr r1, _022583BC ; =0x00004E2D
- b _02258398
-_02258396:
- ldr r1, _022583C0 ; =0x00004E2E
-_02258398:
- add r5, r1, #0
- add r0, r4, #0
- sub r5, #8
- bl FUN_0200C358
- ldr r1, _022583C4 ; =0x00004E29
- add r0, r4, #0
- bl FUN_0200C368
- add r0, r4, #0
- add r1, r5, #0
- bl FUN_0200C378
- add r0, r4, #0
- add r1, r5, #0
- bl FUN_0200C388
- pop {r3, r4, r5, pc}
- .align 2, 0
-_022583BC: .word 0x00004E2D
-_022583C0: .word 0x00004E2E
-_022583C4: .word 0x00004E29
-
- thumb_func_start MOD11_022583C8
-MOD11_022583C8: ; 0x022583C8
- push {r3, lr}
- ldr r0, [r0]
- cmp r0, #0
- beq _022583D4
- bl FUN_0200C644
-_022583D4:
- pop {r3, pc}
- .align 2, 0
-
- thumb_func_start MOD11_022583D8
-MOD11_022583D8: ; 0x022583D8
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r4, r1, #0
- add r6, r2, #0
- mov r0, #0
- add r1, r5, #0
- mov r2, #0x10
- add r7, r3, #0
- bl MIi_CpuClearFast
- str r4, [r5, #4]
- strb r6, [r5, #8]
- strb r7, [r5, #9]
- cmp r7, #0xc
- blt _022583FE
- bl ErrorHandling
- mov r0, #0
- strb r0, [r5, #9]
-_022583FE:
- add r0, r5, #0
- bl MOD11_02258238
- add r0, r5, #0
- bl MOD11_02258338
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0225840C
-MOD11_0225840C: ; 0x0225840C
- push {r4, lr}
- add r4, r0, #0
- bl MOD11_0225836C
- add r0, r4, #0
- bl MOD11_02258380
- mov r0, #0
- add r1, r4, #0
- mov r2, #0x10
- bl MIi_CpuClearFast
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_02258428
-MOD11_02258428: ; 0x02258428
- push {r4, lr}
- mov r1, #7
- mov r0, #5
- lsl r1, r1, #8
- bl AllocFromHeap
- mov r2, #7
- mov r1, #0
- lsl r2, r2, #8
- add r4, r0, #0
- bl MI_CpuFill8
- mov r1, #0
- ldr r0, _0225844C ; =0x0000069F
- mvn r1, r1
- strb r1, [r4, r0]
- add r0, r4, #0
- pop {r4, pc}
- .align 2, 0
-_0225844C: .word 0x0000069F
-
- thumb_func_start MOD11_02258450
-MOD11_02258450: ; 0x02258450
- push {r3, r4, r5, r6, r7, lr}
- mov r4, #0
- ldr r6, _022584A4 ; =0x0225F97C
- add r5, r0, #0
- add r7, r4, #0
-_0225845A:
- add r1, r4, #4
- lsl r1, r1, #0x18
- add r0, r5, #0
- lsr r1, r1, #0x18
- add r2, r6, #0
- add r3, r7, #0
- bl FUN_02016C18
- add r1, r4, #4
- lsl r1, r1, #0x18
- ldr r2, _022584A8 ; =0x000002FF
- add r0, r5, #0
- lsr r1, r1, #0x18
- bl FUN_02018768
- add r1, r4, #4
- lsl r1, r1, #0x18
- mov r2, #0
- add r0, r5, #0
- lsr r1, r1, #0x18
- add r3, r2, #0
- bl FUN_020179E0
- add r1, r4, #4
- lsl r1, r1, #0x18
- add r0, r5, #0
- lsr r1, r1, #0x18
- mov r2, #3
- mov r3, #0
- bl FUN_020179E0
- add r4, r4, #1
- add r6, #0x1c
- cmp r4, #4
- blo _0225845A
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_022584A4: .word 0x0225F97C
-_022584A8: .word 0x000002FF
-
- thumb_func_start MOD11_022584AC
-MOD11_022584AC: ; 0x022584AC
- push {r4, r5, r6, lr}
- mov r4, #0
- add r5, r0, #0
- add r6, r4, #0
-_022584B4:
- add r0, r4, #4
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- add r1, r6, #0
- bl FUN_0201797C
- add r1, r4, #4
- lsl r1, r1, #0x18
- add r0, r5, #0
- lsr r1, r1, #0x18
- bl FUN_020178A0
- add r4, r4, #1
- cmp r4, #4
- blo _022584B4
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_022584D4
-MOD11_022584D4: ; 0x022584D4
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- add r4, r0, #0
- add r5, r1, #0
- bl MOD11_02258428
- add r6, r0, #0
- ldr r0, _0225863C ; =0x000006A1
- str r4, [r6]
- strb r5, [r6, r0]
- add r0, r4, #0
- bl MOD11_022300CC
- str r0, [sp, #0x10]
- mov r0, #0xd
- mov r1, #5
- bl FUN_02011744
- ldr r2, _02258640 ; =0x000004C8
- add r1, r6, #0
- str r0, [r6, r2]
- ldr r0, _02258644 ; =MOD11_0225B794
- add r2, #0x56
- bl FUN_0200CA44
- ldr r1, _02258648 ; =0x000006AC
- mov r7, #2
- str r0, [r6, r1]
- mov r4, #0
- lsl r7, r7, #0xa
- b _0225854E
-_02258512:
- mov r0, #5
- add r1, r7, #0
- bl AllocFromHeap
- lsl r1, r4, #2
- add r1, r6, r1
- str r0, [r1, #0x3c]
- mov r0, #5
- str r0, [sp]
- ldr r1, _0225864C ; =0x0225F6FC
- lsl r2, r4, #1
- ldrh r1, [r1, r2]
- mov r0, #7
- mov r2, #1
- add r3, sp, #0x18
- bl FUN_02006BDC
- add r5, r0, #0
- lsl r0, r4, #2
- add r0, r6, r0
- ldr r1, [r0, #0x3c]
- ldr r0, [sp, #0x18]
- add r2, r7, #0
- add r0, #0xc
- bl MIi_CpuCopy32
- add r0, r5, #0
- bl FreeToHeap
- add r4, r4, #1
-_0225854E:
- cmp r4, #7
- blt _02258512
- mov r1, #2
- mov r0, #5
- lsl r1, r1, #8
- bl AllocFromHeap
- str r0, [r6, #0x58]
- mov r0, #1
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- str r0, [sp, #8]
- ldr r0, [sp, #0x10]
- mov r1, #7
- mov r2, #0xc3
- mov r3, #5
- bl FUN_020030E8
- ldr r0, [sp, #0x10]
- mov r1, #1
- bl FUN_020031FC
- mov r2, #2
- ldr r1, [r6, #0x58]
- lsl r2, r2, #8
- bl MIi_CpuCopy16
- add r5, r6, #0
- mov r7, #0x46
- mov r4, #0
- add r5, #0x68
- lsl r7, r7, #2
- b _022585A2
-_02258592:
- add r0, r4, #0
- mul r0, r7
- add r0, r5, r0
- mov r1, #0xff
- mov r2, #0x18
- bl MI_CpuFill8
- add r4, r4, #1
-_022585A2:
- cmp r4, #4
- blt _02258592
- mov r0, #0
- str r0, [sp, #0xc]
- mov r7, #6
- b _022585DE
-_022585AE:
- mov r0, #0x46
- ldr r1, [sp, #0xc]
- lsl r0, r0, #2
- mul r0, r1
- mov r5, #0
- add r4, r6, r0
- b _022585D4
-_022585BC:
- add r0, r7, #0
- bl FUN_020799E8
- add r1, r0, #0
- mov r0, #5
- bl AllocFromHeap
- lsl r1, r5, #2
- add r1, r4, r1
- add r1, #0x80
- str r0, [r1]
- add r5, r5, #1
-_022585D4:
- cmp r5, #4
- blt _022585BC
- ldr r0, [sp, #0xc]
- add r0, r0, #1
- str r0, [sp, #0xc]
-_022585DE:
- ldr r0, [sp, #0xc]
- cmp r0, #4
- blt _022585AE
- mov r0, #5
- mov r1, #0x20
- bl AllocFromHeap
- str r0, [r6, #0x5c]
- mov r0, #5
- mov r1, #0x20
- bl AllocFromHeap
- str r0, [r6, #0x60]
- ldr r1, [r6, #0x5c]
- ldr r0, [r6, #0x58]
- mov r2, #0x20
- bl MIi_CpuCopy16
- mov r0, #7
- mov r1, #0xca
- add r2, sp, #0x14
- mov r3, #5
- bl FUN_02006C08
- add r4, r0, #0
- ldr r0, [sp, #0x14]
- ldr r1, [r6, #0x60]
- ldr r0, [r0, #0xc]
- mov r2, #0x20
- bl MIi_CpuCopy16
- add r0, r4, #0
- bl FreeToHeap
- bl FUN_02002BE4
- bl FUN_02002C04
- ldr r0, _02258650 ; =MOD11_0225B824
- ldr r2, _02258654 ; =0x0000D6D8
- add r1, r6, #0
- bl FUN_0200CA44
- str r0, [r6, #0x64]
- add r0, r6, #0
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0225863C: .word 0x000006A1
-_02258640: .word 0x000004C8
-_02258644: .word MOD11_0225B794
-_02258648: .word 0x000006AC
-_0225864C: .word 0x0225F6FC
-_02258650: .word MOD11_0225B824
-_02258654: .word 0x0000D6D8
-
- thumb_func_start MOD11_02258658
-MOD11_02258658: ; 0x02258658
- push {r4, r5, r6, lr}
- add r6, r0, #0
- bl MOD11_0225ACB0
- add r0, r6, #0
- bl MOD11_02258B10
- add r0, r6, #0
- bl MOD11_022587A8
- ldr r0, _022586B4 ; =0x000004C8
- ldr r0, [r6, r0]
- bl FUN_020117BC
- ldr r0, _022586B8 ; =0x000006AC
- ldr r0, [r6, r0]
- bl FUN_0200CAB4
- mov r4, #0
- add r5, r6, #0
-_02258680:
- ldr r0, [r5, #0x3c]
- bl FreeToHeap
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #7
- blt _02258680
- ldr r0, [r6, #0x58]
- bl FreeToHeap
- add r0, r6, #0
- bl MOD11_0225A6B0
- ldr r0, [r6, #0x5c]
- bl FreeToHeap
- ldr r0, [r6, #0x60]
- bl FreeToHeap
- ldr r0, [r6, #0x64]
- bl FUN_0200CAB4
- add r0, r6, #0
- bl FreeToHeap
- pop {r4, r5, r6, pc}
- .align 2, 0
-_022586B4: .word 0x000004C8
-_022586B8: .word 0x000006AC
-
- thumb_func_start MOD11_022586BC
-MOD11_022586BC: ; 0x022586BC
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x18
- add r7, r0, #0
- ldr r0, [r7]
- bl MOD11_02230078
- add r6, r0, #0
- ldr r0, [r7]
- bl MOD11_02230080
- add r4, r0, #0
- ldr r0, [r7]
- bl MOD11_0222FF68
- add r5, r0, #0
- ldr r0, [r7]
- bl MOD11_022300CC
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp]
- mov r0, #6
- lsl r0, r0, #0xc
- str r0, [sp, #4]
- mov r0, #1
- str r0, [sp, #8]
- mov r0, #5
- str r0, [sp, #0xc]
- mov r0, #7
- mov r1, #0x11
- add r2, r5, #0
- mov r3, #4
- bl FUN_0200687C
- ldr r2, _02258790 ; =0x00004E2D
- add r0, r6, #0
- add r1, r4, #0
- add r3, r2, #0
- bl FUN_0206E1D4
- ldr r0, [r7]
- bl MOD11_022300CC
- mov r1, #2
- str r1, [sp]
- ldr r1, _02258794 ; =0x00004E30
- add r2, r6, #0
- str r1, [sp, #4]
- mov r1, #3
- add r3, r4, #0
- bl FUN_0206E198
- mov r5, #0
-_02258726:
- ldr r0, _02258798 ; =0x00004E35
- add r1, r4, #0
- add r0, r5, r0
- str r0, [sp]
- add r0, r6, #0
- mov r2, #2
- mov r3, #0
- bl FUN_0206E130
- add r5, r5, #1
- cmp r5, #4
- blt _02258726
- ldr r0, [r7]
- bl MOD11_0222FF74
- mov r1, #1
- lsl r1, r1, #0xa
- tst r0, r1
- beq _0225878C
- ldr r0, _0225879C ; =0x00004E40
- ldr r3, _022587A0 ; =0x00004FB2
- str r0, [sp]
- add r0, r3, #0
- str r3, [sp, #4]
- sub r0, #0xb
- str r0, [sp, #8]
- ldr r2, [sp, #0x14]
- add r0, r6, #0
- add r1, r4, #0
- add r3, r3, #6
- bl MOD11_0225D6A4
- ldr r0, _0225879C ; =0x00004E40
- ldr r3, _022587A0 ; =0x00004FB2
- str r0, [sp]
- add r0, r3, #0
- str r3, [sp, #4]
- sub r0, #0xb
- str r0, [sp, #8]
- mov r0, #0xa
- str r0, [sp, #0xc]
- mov r0, #0
- str r0, [sp, #0x10]
- add r0, r6, #0
- add r1, r4, #0
- mov r2, #5
- add r3, r3, #6
- bl MOD11_0225D73C
- ldr r1, _022587A4 ; =0x000006F8
- str r0, [r7, r1]
-_0225878C:
- add sp, #0x18
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02258790: .word 0x00004E2D
-_02258794: .word 0x00004E30
-_02258798: .word 0x00004E35
-_0225879C: .word 0x00004E40
-_022587A0: .word 0x00004FB2
-_022587A4: .word 0x000006F8
-
- thumb_func_start MOD11_022587A8
-MOD11_022587A8: ; 0x022587A8
- push {r3, r4, r5, r6, r7, lr}
- add r7, r0, #0
- ldr r0, [r7]
- bl MOD11_02230078
- ldr r0, [r7]
- bl MOD11_02230080
- ldr r6, _02258808 ; =0x00004E35
- add r5, r0, #0
- mov r4, #0
-_022587BE:
- add r0, r5, #0
- add r1, r4, r6
- bl FUN_0206E21C
- add r4, r4, #1
- cmp r4, #4
- blt _022587BE
- ldr r1, _0225880C ; =0x00004E30
- add r0, r5, #0
- bl FUN_0206E224
- ldr r1, _02258810 ; =0x00004E2D
- add r0, r5, #0
- add r2, r1, #0
- bl FUN_0206E22C
- ldr r0, [r7]
- bl MOD11_0222FF74
- mov r1, #1
- lsl r1, r1, #0xa
- tst r0, r1
- beq _02258806
- ldr r0, _02258814 ; =0x000006F8
- ldr r0, [r7, r0]
- bl MOD11_0225D7B8
- ldr r3, _02258818 ; =0x00004FA7
- ldr r2, _0225881C ; =0x00004E40
- add r1, r3, #0
- str r3, [sp]
- add r0, r5, #0
- add r1, #0x11
- add r3, #0xb
- bl MOD11_0225D714
-_02258806:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02258808: .word 0x00004E35
-_0225880C: .word 0x00004E30
-_02258810: .word 0x00004E2D
-_02258814: .word 0x000006F8
-_02258818: .word 0x00004FA7
-_0225881C: .word 0x00004E40
-
- thumb_func_start MOD11_02258820
-MOD11_02258820: ; 0x02258820
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x30
- add r7, r0, #0
- str r1, [sp, #0x18]
- str r2, [sp, #0x1c]
- cmp r3, #0
- beq _0225883A
- add r1, r7, #0
- add r0, r3, #0
- add r1, #0x18
- mov r2, #0x22
- bl MI_CpuCopy8
-_0225883A:
- ldr r0, _0225893C ; =0x000006A2
- mov r1, #0
- strb r1, [r7, r0]
- ldr r0, [r7]
- bl MOD11_0222FF68
- str r0, [sp, #0x28]
- ldr r0, [r7]
- bl MOD11_02230078
- str r0, [sp, #0x24]
- ldr r0, [r7]
- bl MOD11_02230080
- str r0, [sp, #0x20]
- ldr r0, _02258940 ; =0x0000069F
- ldrsb r2, [r7, r0]
- mov r0, #0
- mvn r0, r0
- cmp r2, r0
- bne _0225886C
- mov r0, #1
- str r0, [sp, #0x1c]
- mov r5, #0
- b _02258874
-_0225886C:
- mov r0, #0x30
- ldr r1, _02258944 ; =0x0225FAAC
- mul r0, r2
- add r5, r1, r0
-_02258874:
- ldr r0, [sp, #0x18]
- mov r1, #0x30
- ldr r2, _02258944 ; =0x0225FAAC
- mul r1, r0
- add r0, r2, r1
- str r0, [sp, #0x2c]
- ldr r0, [r7]
- bl MOD11_022300CC
- mov r1, #2
- lsl r1, r1, #8
- str r1, [sp]
- ldr r1, [r7, #0x58]
- mov r2, #1
- mov r3, #0
- bl FUN_02003054
- ldr r6, [sp, #0x2c]
- mov r4, #0
-_0225889A:
- ldrh r2, [r6, #4]
- ldr r0, _02258948 ; =0x0000FFFF
- cmp r2, r0
- beq _022588D0
- ldr r0, [sp, #0x1c]
- cmp r0, #1
- beq _022588AE
- ldrh r0, [r5, #4]
- cmp r2, r0
- beq _022588D0
-_022588AE:
- lsl r2, r2, #2
- add r1, r4, #4
- add r2, r7, r2
- lsl r1, r1, #0x18
- mov r3, #2
- ldr r0, [sp, #0x28]
- ldr r2, [r2, #0x3c]
- lsr r1, r1, #0x18
- lsl r3, r3, #0xa
- bl FUN_02017DFC
- add r1, r4, #4
- lsl r1, r1, #0x18
- ldr r0, [sp, #0x28]
- lsr r1, r1, #0x18
- bl FUN_0201AC68
-_022588D0:
- add r4, r4, #1
- add r6, r6, #2
- add r5, r5, #2
- cmp r4, #4
- blt _0225889A
- ldr r0, [r7]
- bl MOD11_022300CC
- mov r1, #0x1b
- str r1, [sp]
- mov r1, #0x24
- str r1, [sp, #4]
- mov r1, #0
- str r1, [sp, #8]
- mov r1, #7
- str r1, [sp, #0xc]
- mov r1, #2
- str r1, [sp, #0x10]
- ldr r1, _0225894C ; =0x00004E33
- ldr r2, [sp, #0x24]
- str r1, [sp, #0x14]
- ldr r3, [sp, #0x20]
- mov r1, #3
- bl FUN_0200C0DC
- ldr r1, _02258940 ; =0x0000069F
- ldr r0, [sp, #0x18]
- mov r2, #0xf
- strb r0, [r7, r1]
- mov r0, #4
- str r0, [sp]
- ldr r0, _02258950 ; =0x04001050
- mov r1, #2
- mov r3, #0x1b
- bl G2x_SetBlendAlpha_
- add r0, r7, #0
- bl MOD11_0225ACB0
- ldr r0, [sp, #0x2c]
- ldr r3, [r0, #0x28]
- cmp r3, #0
- beq _0225892E
- ldr r1, [sp, #0x18]
- ldr r2, [sp, #0x1c]
- add r0, r7, #0
- blx r3
-_0225892E:
- ldr r0, _02258954 ; =MOD11_0225B700
- add r1, r7, #0
- mov r2, #0xa
- bl FUN_0200CA98
- add sp, #0x30
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0225893C: .word 0x000006A2
-_02258940: .word 0x0000069F
-_02258944: .word 0x0225FAAC
-_02258948: .word 0x0000FFFF
-_0225894C: .word 0x00004E33
-_02258950: .word 0x04001050
-_02258954: .word MOD11_0225B700
-
- thumb_func_start MOD11_02258958
-MOD11_02258958: ; 0x02258958
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x20
- ldr r1, _02258ADC ; =0x000005D4
- str r0, [sp, #0x14]
- ldr r0, [r0, r1]
- cmp r0, #0
- bne _02258970
- ldr r0, [sp, #0x14]
- add r1, #0x18
- ldr r0, [r0, r1]
- cmp r0, #0
- beq _02258974
-_02258970:
- bl ErrorHandling
-_02258974:
- ldr r0, [sp, #0x14]
- ldr r0, [r0]
- bl MOD11_02230078
- str r0, [sp, #0x18]
- ldr r0, [sp, #0x14]
- ldr r0, [r0]
- bl MOD11_02230080
- add r7, r0, #0
- mov r0, #1
- str r0, [sp]
- mov r0, #2
- str r0, [sp, #4]
- ldr r0, _02258AE0 ; =0x00004E33
- add r1, r7, #0
- str r0, [sp, #8]
- ldr r0, [sp, #0x18]
- mov r2, #0x1b
- mov r3, #0x90
- bl FUN_0200C00C
- mov r0, #1
- str r0, [sp]
- ldr r0, _02258AE4 ; =0x00004E2B
- add r1, r7, #0
- str r0, [sp, #4]
- ldr r0, [sp, #0x18]
- mov r2, #0x1b
- mov r3, #0x8f
- bl FUN_0200C124
- mov r0, #1
- str r0, [sp]
- ldr r0, _02258AE4 ; =0x00004E2B
- add r1, r7, #0
- str r0, [sp, #4]
- ldr r0, [sp, #0x18]
- mov r2, #0x1b
- mov r3, #0x91
- bl FUN_0200C13C
- mov r0, #1
- str r0, [sp]
- mov r0, #2
- str r0, [sp, #4]
- ldr r0, _02258AE8 ; =0x00004E34
- add r1, r7, #0
- str r0, [sp, #8]
- ldr r0, [sp, #0x18]
- mov r2, #0x1b
- mov r3, #0x8d
- bl FUN_0200C00C
- mov r0, #1
- str r0, [sp]
- ldr r0, _02258AEC ; =0x00004E2C
- add r1, r7, #0
- str r0, [sp, #4]
- ldr r0, [sp, #0x18]
- mov r2, #0x1b
- mov r3, #0x8c
- bl FUN_0200C124
- mov r0, #1
- str r0, [sp]
- ldr r0, _02258AEC ; =0x00004E2C
- add r1, r7, #0
- str r0, [sp, #4]
- ldr r0, [sp, #0x18]
- mov r2, #0x1b
- mov r3, #0x8e
- bl FUN_0200C13C
- mov r0, #0
- ldr r4, [sp, #0x14]
- str r0, [sp, #0x1c]
- mov r6, #0xc
- mov r5, #0xf6
-_02258A12:
- ldr r0, [sp, #0x18]
- ldr r2, _02258AF0 ; =0x0225F8AC
- add r1, r7, #0
- bl FUN_0200C154
- ldr r1, _02258ADC ; =0x000005D4
- mov r3, #0x11
- str r0, [r4, r1]
- add r0, r1, #0
- ldr r0, [r4, r0]
- lsl r1, r6, #0x10
- ldr r0, [r0]
- asr r1, r1, #0x10
- mov r2, #0xd
- lsl r3, r3, #0x10
- bl FUN_0200C720
- ldr r0, _02258ADC ; =0x000005D4
- mov r1, #1
- ldr r0, [r4, r0]
- bl FUN_0200C840
- ldr r0, [sp, #0x18]
- ldr r2, _02258AF4 ; =0x0225F8E0
- add r1, r7, #0
- bl FUN_0200C154
- ldr r1, _02258AF8 ; =0x000005EC
- mov r3, #0x11
- str r0, [r4, r1]
- add r0, r1, #0
- ldr r0, [r4, r0]
- lsl r1, r5, #0x10
- ldr r0, [r0]
- asr r1, r1, #0x10
- mov r2, #9
- lsl r3, r3, #0x10
- bl FUN_0200C720
- ldr r0, [sp, #0x1c]
- add r4, r4, #4
- add r0, r0, #1
- add r6, #0x13
- sub r5, #0xc
- str r0, [sp, #0x1c]
- cmp r0, #6
- blt _02258A12
- ldr r0, [sp, #0x14]
- bl MOD11_02258E30
- ldr r0, [sp, #0x14]
- ldr r0, [r0, #4]
- cmp r0, #0
- beq _02258A82
- bl ErrorHandling
-_02258A82:
- ldr r0, _02258AFC ; =MOD11_02258BE0
- ldr r1, [sp, #0x14]
- ldr r2, _02258B00 ; =0x00000514
- bl FUN_0200CA44
- ldr r1, [sp, #0x14]
- str r0, [r1, #4]
- add r0, r1, #0
- ldr r0, [r0]
- bl MOD11_022300CC
- add r2, r0, #0
- ldr r0, _02258B04 ; =0x00004E3F
- ldr r3, _02258B08 ; =0x00004FB1
- str r0, [sp]
- add r0, r3, #0
- str r3, [sp, #4]
- sub r0, #0xb
- str r0, [sp, #8]
- ldr r0, [sp, #0x18]
- add r1, r7, #0
- add r3, r3, #6
- bl MOD11_0225D3EC
- ldr r0, _02258B04 ; =0x00004E3F
- ldr r3, _02258B08 ; =0x00004FB1
- str r0, [sp]
- add r0, r3, #0
- str r3, [sp, #4]
- sub r0, #0xb
- str r0, [sp, #8]
- mov r2, #5
- str r2, [sp, #0xc]
- mov r0, #0
- str r0, [sp, #0x10]
- ldr r0, [sp, #0x18]
- add r1, r7, #0
- add r3, r3, #6
- bl MOD11_0225D484
- ldr r2, _02258B0C ; =0x000006EC
- ldr r1, [sp, #0x14]
- str r0, [r1, r2]
- add sp, #0x20
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02258ADC: .word 0x000005D4
-_02258AE0: .word 0x00004E33
-_02258AE4: .word 0x00004E2B
-_02258AE8: .word 0x00004E34
-_02258AEC: .word 0x00004E2C
-_02258AF0: .word 0x0225F8AC
-_02258AF4: .word 0x0225F8E0
-_02258AF8: .word 0x000005EC
-_02258AFC: .word MOD11_02258BE0
-_02258B00: .word 0x00000514
-_02258B04: .word 0x00004E3F
-_02258B08: .word 0x00004FB1
-_02258B0C: .word 0x000006EC
-
- thumb_func_start MOD11_02258B10
-MOD11_02258B10: ; 0x02258B10
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- ldr r0, _02258BBC ; =0x000005D4
- ldr r1, [r6, r0]
- cmp r1, #0
- beq _02258B24
- add r0, #0x18
- ldr r0, [r6, r0]
- cmp r0, #0
- bne _02258B28
-_02258B24:
- bl ErrorHandling
-_02258B28:
- ldr r0, [r6]
- bl MOD11_02230078
- ldr r0, [r6]
- bl MOD11_02230080
- ldr r1, _02258BC0 ; =0x00004E33
- add r7, r0, #0
- bl FUN_0200C358
- ldr r1, _02258BC4 ; =0x00004E2B
- add r0, r7, #0
- bl FUN_0200C378
- ldr r1, _02258BC4 ; =0x00004E2B
- add r0, r7, #0
- bl FUN_0200C388
- ldr r1, _02258BC8 ; =0x00004E34
- add r0, r7, #0
- bl FUN_0200C358
- ldr r1, _02258BCC ; =0x00004E2C
- add r0, r7, #0
- bl FUN_0200C378
- ldr r1, _02258BCC ; =0x00004E2C
- add r0, r7, #0
- bl FUN_0200C388
- ldr r1, _02258BC0 ; =0x00004E33
- add r0, r7, #0
- bl FUN_0200C368
- mov r4, #0
- add r5, r6, #0
-_02258B70:
- ldr r0, _02258BBC ; =0x000005D4
- ldr r0, [r5, r0]
- bl FUN_0200C3DC
- ldr r0, _02258BBC ; =0x000005D4
- mov r1, #0
- str r1, [r5, r0]
- add r0, #0x18
- ldr r0, [r5, r0]
- bl FUN_0200C3DC
- ldr r0, _02258BD0 ; =0x000005EC
- mov r1, #0
- str r1, [r5, r0]
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #6
- blt _02258B70
- ldr r0, [r6, #4]
- bl FUN_0200CAB4
- ldr r3, _02258BD4 ; =0x00004FA6
- mov r0, #0
- str r0, [r6, #4]
- add r1, r3, #0
- str r3, [sp]
- ldr r2, _02258BD8 ; =0x00004E3F
- add r0, r7, #0
- add r1, #0x11
- add r3, #0xb
- bl MOD11_0225D45C
- ldr r0, _02258BDC ; =0x000006EC
- ldr r0, [r6, r0]
- bl MOD11_0225D508
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02258BBC: .word 0x000005D4
-_02258BC0: .word 0x00004E33
-_02258BC4: .word 0x00004E2B
-_02258BC8: .word 0x00004E34
-_02258BCC: .word 0x00004E2C
-_02258BD0: .word 0x000005EC
-_02258BD4: .word 0x00004FA6
-_02258BD8: .word 0x00004E3F
-_02258BDC: .word 0x000006EC
-
- thumb_func_start MOD11_02258BE0
-MOD11_02258BE0: ; 0x02258BE0
- push {r3, r4, r5, r6, r7, lr}
- ldr r0, _02258D54 ; =0x00000644
- add r5, r1, #0
- mov r7, #0
- add r4, r5, r0
- mov r6, #0xc
-_02258BEC:
- ldrb r0, [r4, #3]
- cmp r0, #4
- bhi _02258C08
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_02258BFE: ; jump table
- .short _02258C08 - _02258BFE - 2 ; case 0
- .short _02258C48 - _02258BFE - 2 ; case 1
- .short _02258C5A - _02258BFE - 2 ; case 2
- .short _02258CF2 - _02258BFE - 2 ; case 3
- .short _02258C5A - _02258BFE - 2 ; case 4
-_02258C08:
- ldr r0, _02258D58 ; =0x000005D4
- ldr r0, [r5, r0]
- ldr r0, [r0]
- bl FUN_0200C650
- cmp r0, #0
- beq _02258C1C
- ldrb r0, [r4, #2]
- cmp r0, #0x57
- bhs _02258C1E
-_02258C1C:
- b _02258D42
-_02258C1E:
- mov r0, #0
- strb r0, [r4, #4]
- mov r0, #0xa
- strb r0, [r4, #5]
- bl rand_LC
- lsr r1, r0, #0x1f
- lsl r3, r0, #0x1d
- ldrb r2, [r4, #5]
- sub r3, r3, r1
- mov r0, #0x1d
- ror r3, r0
- add r0, r1, r3
- add r0, r2, r0
- strb r0, [r4, #5]
- mov r0, #2
- strb r0, [r4, #7]
- ldrb r0, [r4, #3]
- add r0, r0, #1
- strb r0, [r4, #3]
- b _02258D42
-_02258C48:
- ldrb r1, [r4, #5]
- cmp r1, #0
- beq _02258C54
- sub r0, r1, #1
- strb r0, [r4, #5]
- b _02258D42
-_02258C54:
- add r0, r0, #1
- strb r0, [r4, #3]
- b _02258D42
-_02258C5A:
- ldr r0, _02258D58 ; =0x000005D4
- mov r1, #2
- ldr r0, [r5, r0]
- lsl r1, r1, #0xa
- bl FUN_0200C8BC
- mov r0, #0
- ldrsh r1, [r4, r0]
- mov r0, #6
- lsl r0, r0, #6
- add r0, r1, r0
- strh r0, [r4]
- mov r1, #0
- ldrsh r1, [r4, r1]
- ldr r0, _02258D58 ; =0x000005D4
- mov r3, #0x11
- asr r2, r1, #7
- lsr r2, r2, #0x18
- add r2, r1, r2
- asr r1, r2, #8
- add r1, r1, r6
- lsl r1, r1, #0x10
- ldr r0, [r5, r0]
- asr r1, r1, #0x10
- mov r2, #0xd
- lsl r3, r3, #0x10
- bl FUN_0200C750
- ldrb r0, [r4, #6]
- add r0, r0, #1
- strb r0, [r4, #6]
- ldrb r1, [r4, #6]
- ldrb r0, [r4, #7]
- cmp r1, r0
- blo _02258D42
- mov r0, #0
- strb r0, [r4, #6]
- ldrb r0, [r4, #3]
- cmp r0, #2
- bne _02258CB0
- add r0, r0, #1
- strb r0, [r4, #3]
- b _02258D42
-_02258CB0:
- ldr r0, _02258D58 ; =0x000005D4
- mov r1, #0
- ldr r0, [r5, r0]
- bl FUN_0200C898
- ldr r0, _02258D58 ; =0x000005D4
- lsl r1, r6, #0x10
- mov r3, #0x11
- ldr r0, [r5, r0]
- asr r1, r1, #0x10
- mov r2, #0xd
- lsl r3, r3, #0x10
- bl FUN_0200C750
- mov r0, #0
- strh r0, [r4]
- ldrb r0, [r4, #8]
- cmp r0, #1
- bhs _02258CEA
- add r0, r0, #1
- strb r0, [r4, #8]
- ldrb r0, [r4, #7]
- cmp r0, #1
- bls _02258CE4
- sub r0, r0, #1
- strb r0, [r4, #7]
-_02258CE4:
- mov r0, #2
- strb r0, [r4, #3]
- b _02258D42
-_02258CEA:
- mov r0, #0
- strb r0, [r4, #8]
- strb r0, [r4, #3]
- b _02258D42
-_02258CF2:
- ldr r0, _02258D58 ; =0x000005D4
- ldr r1, _02258D5C ; =0xFFFFF800
- ldr r0, [r5, r0]
- bl FUN_0200C8BC
- mov r0, #0
- ldrsh r1, [r4, r0]
- mov r0, #6
- lsl r0, r0, #6
- sub r0, r1, r0
- strh r0, [r4]
- mov r1, #0
- ldrsh r1, [r4, r1]
- ldr r0, _02258D58 ; =0x000005D4
- mov r3, #0x11
- asr r2, r1, #7
- lsr r2, r2, #0x18
- add r2, r1, r2
- asr r1, r2, #8
- add r1, r1, r6
- lsl r1, r1, #0x10
- ldr r0, [r5, r0]
- asr r1, r1, #0x10
- mov r2, #0xd
- lsl r3, r3, #0x10
- bl FUN_0200C750
- ldrb r0, [r4, #6]
- add r0, r0, #1
- strb r0, [r4, #6]
- ldrb r1, [r4, #7]
- ldrb r0, [r4, #6]
- lsl r1, r1, #1
- cmp r0, r1
- blt _02258D42
- mov r0, #0
- strb r0, [r4, #6]
- ldrb r0, [r4, #3]
- add r0, r0, #1
- strb r0, [r4, #3]
-_02258D42:
- add r7, r7, #1
- add r4, #0xa
- add r5, r5, #4
- add r6, #0x13
- cmp r7, #6
- bge _02258D50
- b _02258BEC
-_02258D50:
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02258D54: .word 0x00000644
-_02258D58: .word 0x000005D4
-_02258D5C: .word 0xFFFFF800
-
- thumb_func_start MOD11_02258D60
-MOD11_02258D60: ; 0x02258D60
- push {r3, r4}
- ldr r2, _02258D78 ; =0x00000646
- mov r4, #0
-_02258D66:
- ldrb r3, [r1, r4]
- add r4, r4, #1
- strb r3, [r0, r2]
- add r0, #0xa
- cmp r4, #6
- blt _02258D66
- pop {r3, r4}
- bx lr
- nop
-_02258D78: .word 0x00000646
-
- thumb_func_start MOD11_02258D7C
-MOD11_02258D7C: ; 0x02258D7C
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r6, r1, #0
- add r7, r2, #0
- mov r4, #0
-_02258D86:
- ldrb r0, [r6, r4]
- bl MOD11_0225A400
- add r1, r0, #0
- ldr r0, _02258DC8 ; =0x000005D4
- ldr r0, [r5, r0]
- ldr r0, [r0]
- bl FUN_02020130
- ldr r0, _02258DC8 ; =0x000005D4
- ldr r0, [r5, r0]
- ldr r0, [r0]
- bl FUN_0200C59C
- ldrb r0, [r7, r4]
- bl MOD11_0225A400
- add r1, r0, #0
- ldr r0, _02258DCC ; =0x000005EC
- ldr r0, [r5, r0]
- ldr r0, [r0]
- bl FUN_02020130
- ldr r0, _02258DCC ; =0x000005EC
- ldr r0, [r5, r0]
- ldr r0, [r0]
- bl FUN_0200C59C
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #6
- blt _02258D86
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02258DC8: .word 0x000005D4
-_02258DCC: .word 0x000005EC
-
- thumb_func_start MOD11_02258DD0
-MOD11_02258DD0: ; 0x02258DD0
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- ldr r0, _02258E28 ; =0x000005D4
- ldr r1, [r5, r0]
- cmp r1, #0
- beq _02258DE4
- add r0, #0x18
- ldr r0, [r5, r0]
- cmp r0, #0
- bne _02258DE8
-_02258DE4:
- bl ErrorHandling
-_02258DE8:
- ldr r7, _02258E28 ; =0x000005D4
- mov r6, #0
- add r4, r5, #0
-_02258DEE:
- ldr r0, [r4, r7]
- mov r1, #1
- ldr r0, [r0]
- bl FUN_0200C63C
- add r6, r6, #1
- add r4, r4, #4
- cmp r6, #6
- blt _02258DEE
- ldr r0, [r5]
- bl MOD11_0222FF74
- mov r1, #1
- tst r0, r1
- beq _02258E24
- ldr r6, _02258E2C ; =0x000005EC
- mov r4, #0
- add r7, r1, #0
-_02258E12:
- ldr r0, [r5, r6]
- add r1, r7, #0
- ldr r0, [r0]
- bl FUN_0200C63C
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #6
- blt _02258E12
-_02258E24:
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02258E28: .word 0x000005D4
-_02258E2C: .word 0x000005EC
-
- thumb_func_start MOD11_02258E30
-MOD11_02258E30: ; 0x02258E30
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- ldr r0, _02258E70 ; =0x000005D4
- ldr r1, [r5, r0]
- cmp r1, #0
- beq _02258E44
- add r0, #0x18
- ldr r0, [r5, r0]
- cmp r0, #0
- bne _02258E48
-_02258E44:
- bl ErrorHandling
-_02258E48:
- ldr r7, _02258E70 ; =0x000005D4
- mov r4, #0
- add r6, r7, #0
- add r6, #0x18
-_02258E50:
- ldr r0, [r5, r7]
- mov r1, #0
- ldr r0, [r0]
- bl FUN_0200C63C
- ldr r0, [r5, r6]
- mov r1, #0
- ldr r0, [r0]
- bl FUN_0200C63C
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #6
- blt _02258E50
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02258E70: .word 0x000005D4
-
- thumb_func_start MOD11_02258E74
-MOD11_02258E74: ; 0x02258E74
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- ldr r0, _02258F4C ; =0x0000069F
- mov r6, #0
- ldrsb r1, [r5, r0]
- sub r0, r6, #1
- cmp r1, r0
- bne _02258E88
- bl ErrorHandling
-_02258E88:
- ldr r0, _02258F4C ; =0x0000069F
- ldr r3, _02258F50 ; =0x0225FAAC
- ldrsb r2, [r5, r0]
- mov r1, #0x30
- mul r1, r2
- add r4, r3, r1
- ldr r1, [r4, #0x14]
- cmp r1, #0
- beq _02258EA2
- add r0, r0, #3
- ldrb r0, [r5, r0]
- cmp r0, #1
- bne _02258EA8
-_02258EA2:
- mov r0, #0
- mvn r0, r0
- pop {r3, r4, r5, r6, r7, pc}
-_02258EA8:
- ldr r0, [r4, #0x18]
- cmp r0, #0
- bne _02258EB2
- bl ErrorHandling
-_02258EB2:
- ldr r0, [r5]
- bl MOD11_0222FF74
- mov r1, #1
- lsl r1, r1, #0xa
- tst r0, r1
- beq _02258ECA
- add r0, r5, #0
- bl MOD11_0225C784
- add r7, r0, #0
- b _02258EE4
-_02258ECA:
- ldr r0, [r4, #0x14]
- bl FUN_02020988
- add r7, r0, #0
- mov r0, #0
- mvn r0, r0
- cmp r7, r0
- bne _02258EE4
- add r0, r5, #0
- bl MOD11_0225B8B0
- add r7, r0, #0
- add r6, r6, #1
-_02258EE4:
- mov r0, #0
- mvn r0, r0
- str r0, [sp]
- cmp r7, r0
- bne _02258EF2
- mov r2, #0xff
- b _02258EFE
-_02258EF2:
- ldr r1, [r4, #0x18]
- lsl r0, r7, #2
- ldr r0, [r1, r0]
- str r0, [sp]
- ldr r0, [r4, #0x1c]
- ldrb r2, [r0, r7]
-_02258EFE:
- ldr r3, [r4, #0x2c]
- cmp r3, #0
- beq _02258F46
- ldr r1, [sp]
- add r0, r5, #0
- blx r3
- mov r1, #0
- mvn r1, r1
- str r0, [sp]
- cmp r0, r1
- beq _02258F46
- ldr r2, [r4, #0x24]
- cmp r2, #0
- beq _02258F20
- add r0, r5, #0
- add r1, r7, #0
- blx r2
-_02258F20:
- mov r0, #0x6f
- lsl r0, r0, #4
- add r0, r5, r0
- mov r1, #0
- mov r2, #4
- bl MI_CpuFill8
- ldr r0, _02258F54 ; =0x000006EC
- ldr r0, [r5, r0]
- bl MOD11_0225D648
- cmp r6, #0
- ldr r0, _02258F58 ; =0x000006F4
- ble _02258F42
- mov r1, #1
- strb r1, [r5, r0]
- b _02258F46
-_02258F42:
- mov r1, #0
- strb r1, [r5, r0]
-_02258F46:
- ldr r0, [sp]
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02258F4C: .word 0x0000069F
-_02258F50: .word 0x0225FAAC
-_02258F54: .word 0x000006EC
-_02258F58: .word 0x000006F4
-
- thumb_func_start MOD11_02258F5C
-MOD11_02258F5C: ; 0x02258F5C
- push {r3, lr}
- ldr r1, [r0, #8]
- cmp r1, #0
- bne _02258F7E
- ldr r1, [r0, #0xc]
- cmp r1, #0
- bne _02258F7E
- ldr r1, _02258F84 ; =0x00000684
- ldr r1, [r0, r1]
- cmp r1, #0
- bne _02258F7E
- bl MOD11_0225B780
- cmp r0, #1
- bne _02258F7E
- mov r0, #1
- pop {r3, pc}
-_02258F7E:
- mov r0, #0
- pop {r3, pc}
- nop
-_02258F84: .word 0x00000684
-
- thumb_func_start MOD11_02258F88
-MOD11_02258F88: ; 0x02258F88
- push {r3, lr}
- cmp r0, #0x40
- bgt _02258FBE
- bge _02259014
- cmp r0, #0x10
- bgt _02258FB8
- bge _02258FEC
- cmp r0, #8
- bhi _02259024
- add r2, r0, r0
- add r2, pc
- ldrh r2, [r2, #6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_02258FA6: ; jump table
- .short _02258FE0 - _02258FA6 - 2 ; case 0
- .short _02258FEC - _02258FA6 - 2 ; case 1
- .short _02258FEC - _02258FA6 - 2 ; case 2
- .short _02259024 - _02258FA6 - 2 ; case 3
- .short _02258FF8 - _02258FA6 - 2 ; case 4
- .short _02259024 - _02258FA6 - 2 ; case 5
- .short _02259024 - _02258FA6 - 2 ; case 6
- .short _02259024 - _02258FA6 - 2 ; case 7
- .short _02258FFC - _02258FA6 - 2 ; case 8
-_02258FB8:
- cmp r0, #0x20
- beq _0225901C
- b _02259024
-_02258FBE:
- mov r2, #1
- lsl r2, r2, #8
- cmp r0, r2
- bgt _02258FCE
- bge _02259008
- cmp r0, #0x80
- beq _02258FF8
- b _02259024
-_02258FCE:
- lsl r1, r2, #1
- cmp r0, r1
- bgt _02258FD8
- beq _02259018
- b _02259024
-_02258FD8:
- lsl r1, r2, #2
- cmp r0, r1
- beq _02259020
- b _02259024
-_02258FE0:
- cmp r1, #4
- bne _02258FE8
- mov r0, #9
- pop {r3, pc}
-_02258FE8:
- mov r0, #8
- pop {r3, pc}
-_02258FEC:
- cmp r1, #4
- bne _02258FF4
- mov r0, #6
- pop {r3, pc}
-_02258FF4:
- mov r0, #4
- pop {r3, pc}
-_02258FF8:
- mov r0, #1
- pop {r3, pc}
-_02258FFC:
- cmp r1, #4
- bne _02259004
- mov r0, #7
- pop {r3, pc}
-_02259004:
- mov r0, #2
- pop {r3, pc}
-_02259008:
- cmp r1, #4
- bne _02259010
- mov r0, #4
- pop {r3, pc}
-_02259010:
- mov r0, #6
- pop {r3, pc}
-_02259014:
- mov r0, #3
- pop {r3, pc}
-_02259018:
- mov r0, #0xa
- pop {r3, pc}
-_0225901C:
- mov r0, #5
- pop {r3, pc}
-_02259020:
- mov r0, #0xb
- pop {r3, pc}
-_02259024:
- bl ErrorHandling
- mov r0, #0
- pop {r3, pc}
-
- thumb_func_start MOD11_0225902C
-MOD11_0225902C: ; 0x0225902C
- push {r4, r5}
- ldr r1, _0225908C ; =0x04001000
- ldr r2, _02259090 ; =0xFFFF1FFF
- ldr r3, [r1]
- add r5, r1, #0
- and r3, r2
- lsr r2, r1, #0xd
- orr r2, r3
- str r2, [r1]
- add r5, #0x4a
- ldrh r4, [r5]
- mov r3, #0x3f
- mov r2, #0x1f
- bic r4, r3
- orr r2, r4
- mov r4, #0x20
- orr r2, r4
- strh r2, [r5]
- add r1, #0x48
- ldrh r5, [r1]
- mov r2, #0x1b
- bic r5, r3
- orr r2, r5
- orr r2, r4
- strh r2, [r1]
- mov r1, #0x6e
- lsl r1, r1, #4
- ldr r1, [r0, r1]
- asr r0, r1, #7
- lsr r0, r0, #0x18
- add r0, r1, r0
- asr r1, r0, #8
- mov r0, #0xff
- sub r0, r0, r1
- bpl _02259074
- mov r0, #0
-_02259074:
- lsl r1, r0, #8
- mov r0, #0xff
- lsl r0, r0, #8
- and r1, r0
- mov r0, #0xff
- orr r0, r1
- ldr r1, _02259094 ; =0x04001040
- strh r0, [r1]
- mov r0, #0xc0
- strh r0, [r1, #4]
- pop {r4, r5}
- bx lr
- .align 2, 0
-_0225908C: .word 0x04001000
-_02259090: .word 0xFFFF1FFF
-_02259094: .word 0x04001040
-
- thumb_func_start MOD11_02259098
-MOD11_02259098: ; 0x02259098
- push {r4, lr}
- lsl r4, r2, #8
- mov r2, #0x6e
- add r3, r0, #0
- lsl r2, r2, #4
- ldr r0, [r3, r2]
- cmp r0, r4
- beq _022590BC
- add r0, r2, #4
- str r1, [r3, r0]
- add r2, #8
- str r4, [r3, r2]
- mov r2, #0x4b
- ldr r0, _022590C0 ; =MOD11_022590C4
- add r1, r3, #0
- lsl r2, r2, #4
- bl FUN_0200CA44
-_022590BC:
- pop {r4, pc}
- nop
-_022590C0: .word MOD11_022590C4
-
- thumb_func_start MOD11_022590C4
-MOD11_022590C4: ; 0x022590C4
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- str r0, [sp]
- ldr r0, [r5]
- mov r4, #0
- bl MOD11_0222FF68
- add r7, r0, #0
- mov r0, #0x6e
- lsl r0, r0, #4
- add r1, r0, #4
- ldr r2, [r5, r0]
- ldr r1, [r5, r1]
- add r1, r2, r1
- str r1, [r5, r0]
- add r1, r0, #4
- ldr r1, [r5, r1]
- cmp r1, #0
- bgt _022590F6
- add r2, r0, #0
- add r2, #8
- ldr r2, [r5, r2]
- ldr r0, [r5, r0]
- cmp r0, r2
- ble _02259106
-_022590F6:
- cmp r1, #0
- ble _0225910E
- ldr r0, _0225915C ; =0x000006E8
- ldr r2, [r5, r0]
- sub r0, #8
- ldr r0, [r5, r0]
- cmp r0, r2
- blt _0225910E
-_02259106:
- mov r0, #0x6e
- lsl r0, r0, #4
- str r2, [r5, r0]
- mov r4, #1
-_0225910E:
- mov r3, #0x6e
- lsl r3, r3, #4
- ldr r3, [r5, r3]
- add r0, r7, #0
- asr r6, r3, #7
- lsr r6, r6, #0x18
- add r6, r3, r6
- mov r1, #6
- mov r2, #0
- asr r3, r6, #8
- bl FUN_020179E0
- add r0, r5, #0
- bl MOD11_0225902C
- cmp r4, #1
- bne _0225915A
- ldr r2, _02259160 ; =0x000002FF
- add r0, r7, #0
- mov r1, #7
- bl FUN_02018768
- mov r0, #7
- mov r1, #0
- bl FUN_0201797C
- mov r0, #7
- mov r1, #0
- bl FUN_020178BC
- ldr r2, _02259164 ; =0x04001000
- ldr r0, _02259168 ; =0xFFFF1FFF
- ldr r1, [r2]
- and r0, r1
- str r0, [r2]
- ldr r0, [sp]
- bl FUN_0200CAB4
-_0225915A:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0225915C: .word 0x000006E8
-_02259160: .word 0x000002FF
-_02259164: .word 0x04001000
-_02259168: .word 0xFFFF1FFF
-
- thumb_func_start MOD11_0225916C
-MOD11_0225916C: ; 0x0225916C
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r6, r1, #0
- ldr r0, _02259240 ; =0x000006A2
- mov r1, #1
- strb r1, [r5, r0]
- ldr r1, _02259244 ; =0x0400104A
- mov r4, #0x3f
- ldrh r2, [r1]
- mov r0, #0xf
- mov r7, #0xc
- bic r2, r4
- orr r0, r2
- mov r2, #0x20
- orr r0, r2
- strh r0, [r1]
- sub r0, r1, #2
- ldrh r3, [r0]
- bic r3, r4
- orr r3, r7
- orr r3, r2
- strh r3, [r0]
- ldrh r4, [r0]
- ldr r3, _02259248 ; =0xFFFFC0FF
- lsl r2, r2, #8
- and r4, r3
- lsl r3, r7, #8
- orr r3, r4
- orr r2, r3
- strh r2, [r0]
- add r2, r1, #0
- mov r0, #0xff
- sub r2, #0xa
- strh r0, [r2]
- mov r3, #0x90
- sub r2, r1, #6
- strh r3, [r2]
- add r2, r1, #0
- sub r2, #8
- strh r0, [r2]
- sub r0, r1, #4
- ldr r2, _0225924C ; =0x000090C0
- sub r1, #0x4a
- strh r2, [r0]
- ldr r2, [r1]
- ldr r0, _02259250 ; =0xFFFF1FFF
- and r2, r0
- lsl r0, r7, #0xb
- orr r0, r2
- str r0, [r1]
- mov r0, #5
- mov r1, #0x14
- bl AllocFromHeap
- add r4, r0, #0
- mov r1, #0
- mov r2, #0x14
- bl MI_CpuFill8
- str r5, [r4]
- ldr r0, _02259254 ; =0xFFFF9C64
- strb r6, [r4, #0x12]
- strh r0, [r4, #8]
- mov r0, #0xfa
- lsl r0, r0, #4
- strh r0, [r4, #0xa]
- mov r0, #8
- ldrsh r1, [r4, r0]
- ldr r0, _02259258 ; =0x0000639C
- sub r0, r0, r1
- mov r1, #0x64
- bl _s32_div_f
- strh r0, [r4, #0xc]
- mov r0, #0xa
- ldrsh r1, [r4, r0]
- mov r0, #0xfa
- lsl r0, r0, #4
- sub r0, r0, r1
- mov r1, #0x64
- bl _s32_div_f
- strh r0, [r4, #0xe]
- ldr r0, _0225925C ; =0x0000070E
- bl FUN_020054C8
- ldr r0, _02259260 ; =MOD11_0225B438
- ldr r2, _02259264 ; =0x000004BA
- add r1, r4, #0
- bl FUN_0200CA44
- ldr r0, _02259268 ; =MOD11_0225B644
- add r1, r4, #0
- bl FUN_02015F34
- cmp r0, #1
- beq _02259232
- bl ErrorHandling
-_02259232:
- ldr r0, _0225926C ; =MOD11_0225B538
- add r1, r4, #0
- mov r2, #0xa
- bl FUN_0200CA60
- str r0, [r4, #4]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02259240: .word 0x000006A2
-_02259244: .word 0x0400104A
-_02259248: .word 0xFFFFC0FF
-_0225924C: .word 0x000090C0
-_02259250: .word 0xFFFF1FFF
-_02259254: .word 0xFFFF9C64
-_02259258: .word 0x0000639C
-_0225925C: .word 0x0000070E
-_02259260: .word MOD11_0225B438
-_02259264: .word 0x000004BA
-_02259268: .word MOD11_0225B644
-_0225926C: .word MOD11_0225B538
-
- thumb_func_start MOD11_02259270
-MOD11_02259270: ; 0x02259270
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldrb r4, [r5, #0x18]
- bl MOD11_02259284
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0225916C
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02259284
-MOD11_02259284: ; 0x02259284
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x30
- add r5, r0, #0
- ldr r0, [r5]
- add r6, r5, #0
- ldrb r7, [r5, #0x18]
- add r6, #0x18
- bl MOD11_022300C4
- add r4, r0, #0
- ldr r0, _02259484 ; =0x0000069E
- strb r7, [r5, r0]
- ldr r0, [r5]
- bl MOD11_0222FF74
- mov r1, #0x20
- tst r0, r1
- beq _022592CA
- ldr r1, _02259488 ; =0x000003A3
- add r0, r4, #0
- bl FUN_0200A914
- mov r1, #0xe9
- str r0, [sp, #0x24]
- add r0, r4, #0
- lsl r1, r1, #2
- bl FUN_0200A914
- str r0, [sp, #0x20]
- ldr r1, _0225948C ; =0x000003A5
- add r0, r4, #0
- bl FUN_0200A914
- str r0, [sp, #0x1c]
- b _0225931A
-_022592CA:
- ldr r0, [r5]
- bl MOD11_0222FF74
- mov r1, #2
- lsl r1, r1, #8
- tst r0, r1
- beq _022592FA
- ldr r1, _02259490 ; =0x000004C7
- add r0, r4, #0
- bl FUN_0200A914
- mov r1, #0xe9
- str r0, [sp, #0x24]
- add r0, r4, #0
- lsl r1, r1, #2
- bl FUN_0200A914
- str r0, [sp, #0x20]
- ldr r1, _0225948C ; =0x000003A5
- add r0, r4, #0
- bl FUN_0200A914
- str r0, [sp, #0x1c]
- b _0225931A
-_022592FA:
- mov r1, #0xe7
- add r0, r4, #0
- lsl r1, r1, #2
- bl FUN_0200A914
- str r0, [sp, #0x24]
- ldr r1, _02259494 ; =0x0000039D
- add r0, r4, #0
- bl FUN_0200A914
- str r0, [sp, #0x20]
- ldr r1, _02259498 ; =0x0000039E
- add r0, r4, #0
- bl FUN_0200A914
- str r0, [sp, #0x1c]
-_0225931A:
- ldr r0, [r5]
- add r1, r7, #0
- bl MOD11_0223022C
- add r1, r0, #0
- ldr r0, [r5]
- bl MOD11_02230CB8
- cmp r0, #1
- bne _0225933E
- mov r1, #0x3a
- add r0, r4, #0
- lsl r1, r1, #4
- bl FUN_0200A914
- add r4, r0, #0
- mov r1, #1
- b _0225934A
-_0225933E:
- ldr r1, _0225949C ; =0x0000039F
- add r0, r4, #0
- bl FUN_0200A914
- add r4, r0, #0
- mov r1, #0
-_0225934A:
- ldr r0, _022594A0 ; =0x000006A3
- mov r3, #2
- strb r1, [r5, r0]
- ldr r0, _022594A4 ; =0x00010203
- ldr r1, _022594A8 ; =0x000004CC
- str r0, [sp]
- ldr r0, _022594AC ; =0x00004E33
- str r3, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x80
- str r0, [sp, #0xc]
- mov r0, #0x54
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp, #0x18]
- ldr r2, [sp, #0x24]
- add r0, r5, #0
- add r1, r5, r1
- bl MOD11_0225A458
- ldr r0, _022594B0 ; =0x00040506
- mov r1, #0x4e
- str r0, [sp]
- mov r3, #2
- lsl r1, r1, #4
- ldr r0, _022594AC ; =0x00004E33
- str r3, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x28
- str r0, [sp, #0xc]
- mov r0, #0xaa
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp, #0x18]
- ldr r2, [sp, #0x20]
- add r0, r5, #0
- add r1, r5, r1
- bl MOD11_0225A458
- ldr r0, _022594B4 ; =0x00070809
- ldr r1, _022594B8 ; =0x000004F4
- str r0, [sp]
- mov r3, #2
- ldr r0, _022594AC ; =0x00004E33
- str r3, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0xd8
- str r0, [sp, #0xc]
- mov r0, #0xaa
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp, #0x18]
- ldr r2, [sp, #0x1c]
- add r0, r5, #0
- add r1, r5, r1
- bl MOD11_0225A458
- ldr r0, _022594BC ; =0x000A0B0C
- ldr r1, _022594C0 ; =0x00000508
- str r0, [sp]
- mov r3, #2
- ldr r0, _022594AC ; =0x00004E33
- str r3, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x80
- str r0, [sp, #0xc]
- mov r0, #0xb2
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, r5, r1
- add r2, r4, #0
- bl MOD11_0225A458
- ldr r0, [sp, #0x24]
- bl FUN_02021A20
- ldr r0, [sp, #0x20]
- bl FUN_02021A20
- ldr r0, [sp, #0x1c]
- bl FUN_02021A20
- add r0, r4, #0
- bl FUN_02021A20
- ldr r0, [r5]
- bl MOD11_0222FF74
- mov r1, #0x22
- lsl r1, r1, #4
- tst r0, r1
- bne _0225947E
- ldrb r1, [r6, #1]
- ldrb r2, [r6, #2]
- ldr r0, [r5]
- bl MOD11_02230014
- add r4, r0, #0
- add r0, r5, #0
- bl MOD11_0225A164
- ldrh r0, [r6, #6]
- mov r3, #4
- add r1, r4, #0
- str r0, [sp]
- ldrb r0, [r6, #3]
- add r2, r7, #0
- str r0, [sp, #4]
- ldrsh r3, [r6, r3]
- add r0, r5, #0
- bl MOD11_0225A270
- add r4, r0, #0
- ldr r0, _022594A8 ; =0x000004CC
- add r1, sp, #0x2c
- ldr r0, [r5, r0]
- add r2, sp, #0x28
- bl FUN_020119A4
- cmp r7, #4
- bne _0225945E
- ldr r0, _022594C4 ; =0x000004DC
- ldr r1, [sp, #0x2c]
- ldrh r0, [r5, r0]
- add r0, #0x10
- add r0, r1, r0
- str r0, [sp, #0x2c]
- b _02259464
-_0225945E:
- ldr r0, [sp, #0x2c]
- sub r0, #0x10
- str r0, [sp, #0x2c]
-_02259464:
- mov r3, #0x11
- ldr r1, [sp, #0x2c]
- ldr r2, [sp, #0x28]
- lsl r3, r3, #4
- sub r2, r2, r3
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- add r0, r4, #0
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- lsl r3, r3, #0xc
- bl FUN_0200C750
-_0225947E:
- add sp, #0x30
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_02259484: .word 0x0000069E
-_02259488: .word 0x000003A3
-_0225948C: .word 0x000003A5
-_02259490: .word 0x000004C7
-_02259494: .word 0x0000039D
-_02259498: .word 0x0000039E
-_0225949C: .word 0x0000039F
-_022594A0: .word 0x000006A3
-_022594A4: .word 0x00010203
-_022594A8: .word 0x000004CC
-_022594AC: .word 0x00004E33
-_022594B0: .word 0x00040506
-_022594B4: .word 0x00070809
-_022594B8: .word 0x000004F4
-_022594BC: .word 0x000A0B0C
-_022594C0: .word 0x00000508
-_022594C4: .word 0x000004DC
-
- thumb_func_start MOD11_022594C8
-MOD11_022594C8: ; 0x022594C8
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldrb r4, [r5, #0x18]
- bl MOD11_022594DC
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0225916C
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_022594DC
-MOD11_022594DC: ; 0x022594DC
- push {r3, r4, r5, lr}
- sub sp, #0x10
- add r5, r0, #0
- bl MOD11_02259284
- ldr r0, [r5]
- bl MOD11_0222FF68
- mov r1, #0x10
- str r1, [sp]
- mov r1, #0x20
- str r1, [sp, #4]
- mov r1, #8
- str r1, [sp, #8]
- mov r1, #0x11
- str r1, [sp, #0xc]
- ldr r2, _02259534 ; =0x000002FF
- add r4, r0, #0
- mov r1, #4
- mov r3, #0
- bl FUN_02018540
- add r0, r4, #0
- mov r1, #5
- bl FUN_0201AC68
- mov r0, #0x4e
- lsl r0, r0, #4
- ldr r0, [r5, r0]
- mov r1, #0
- bl FUN_020119D0
- ldr r0, _02259538 ; =0x000004F4
- mov r1, #0
- ldr r0, [r5, r0]
- bl FUN_020119D0
- ldr r0, _0225953C ; =0x00000508
- mov r1, #0
- ldr r0, [r5, r0]
- bl FUN_020119D0
- add sp, #0x10
- pop {r3, r4, r5, pc}
- .align 2, 0
-_02259534: .word 0x000002FF
-_02259538: .word 0x000004F4
-_0225953C: .word 0x00000508
-
- thumb_func_start MOD11_02259540
-MOD11_02259540: ; 0x02259540
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldrb r4, [r5, #0x18]
- bl MOD11_02259554
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0225916C
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_02259554
-MOD11_02259554: ; 0x02259554
- push {r3, r4, r5, lr}
- sub sp, #0x10
- add r5, r0, #0
- bl MOD11_02259284
- ldr r0, [r5]
- bl MOD11_0222FF68
- mov r1, #0x10
- str r1, [sp]
- mov r1, #0xa
- str r1, [sp, #4]
- mov r1, #8
- str r1, [sp, #8]
- mov r1, #0x11
- str r1, [sp, #0xc]
- ldr r2, _022595C0 ; =0x000002FF
- mov r1, #4
- mov r3, #0
- add r4, r0, #0
- bl FUN_02018540
- mov r0, #0x10
- str r0, [sp]
- mov r0, #0xa
- str r0, [sp, #4]
- mov r0, #8
- str r0, [sp, #8]
- mov r0, #0x11
- str r0, [sp, #0xc]
- ldr r2, _022595C0 ; =0x000002FF
- add r0, r4, #0
- mov r1, #4
- mov r3, #0x16
- bl FUN_02018540
- add r0, r4, #0
- mov r1, #5
- bl FUN_0201AC68
- mov r0, #0x4e
- lsl r0, r0, #4
- ldr r0, [r5, r0]
- mov r1, #0
- bl FUN_020119D0
- ldr r0, _022595C4 ; =0x000004F4
- mov r1, #0
- ldr r0, [r5, r0]
- bl FUN_020119D0
- add sp, #0x10
- pop {r3, r4, r5, pc}
- nop
-_022595C0: .word 0x000002FF
-_022595C4: .word 0x000004F4
-
- thumb_func_start MOD11_022595C8
-MOD11_022595C8: ; 0x022595C8
- push {r4, r5, r6, r7, lr}
- sub sp, #0x2c
- add r5, r0, #0
- add r6, r5, #0
- add r6, #0x18
- bne _022595D8
- bl ErrorHandling
-_022595D8:
- ldrb r1, [r6, #0x10]
- ldr r0, _02259854 ; =0x0000069E
- strb r1, [r5, r0]
- ldr r0, [r5]
- bl MOD11_022300C4
- str r0, [sp, #0x1c]
- ldrb r1, [r6, #0x10]
- add r0, r5, #0
- bl MOD11_0225A69C
- str r0, [sp, #0x20]
- add r0, r5, #0
- bl MOD11_0225A9D4
- ldr r0, _02259858 ; =0x00070809
- ldr r1, _0225985C ; =0x000004CC
- str r0, [sp]
- mov r0, #3
- str r0, [sp, #4]
- ldr r0, _02259860 ; =0x00004E33
- add r1, r5, r1
- str r0, [sp, #8]
- mov r0, #0x40
- str r0, [sp, #0xc]
- mov r0, #0x2e
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x20]
- mov r2, #0
- add r0, #0x28
- str r0, [sp, #0x18]
- add r0, r5, #0
- mov r3, #2
- bl MOD11_0225A458
- ldr r0, _02259858 ; =0x00070809
- mov r1, #0x4e
- str r0, [sp]
- mov r0, #3
- str r0, [sp, #4]
- ldr r0, _02259860 ; =0x00004E33
- lsl r1, r1, #4
- str r0, [sp, #8]
- mov r0, #0xc0
- str r0, [sp, #0xc]
- mov r0, #0x2e
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x20]
- add r1, r5, r1
- add r0, #0x3c
- str r0, [sp, #0x18]
- add r0, r5, #0
- mov r2, #0
- mov r3, #2
- bl MOD11_0225A458
- ldr r0, _02259858 ; =0x00070809
- ldr r1, _02259864 ; =0x000004F4
- str r0, [sp]
- mov r0, #3
- str r0, [sp, #4]
- ldr r0, _02259860 ; =0x00004E33
- add r1, r5, r1
- str r0, [sp, #8]
- mov r0, #0x40
- str r0, [sp, #0xc]
- mov r0, #0x6e
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x20]
- mov r2, #0
- add r0, #0x50
- str r0, [sp, #0x18]
- add r0, r5, #0
- mov r3, #2
- bl MOD11_0225A458
- ldr r0, _02259858 ; =0x00070809
- ldr r1, _02259868 ; =0x00000508
- str r0, [sp]
- mov r0, #3
- str r0, [sp, #4]
- ldr r0, _02259860 ; =0x00004E33
- add r1, r5, r1
- str r0, [sp, #8]
- mov r0, #0xc0
- str r0, [sp, #0xc]
- mov r0, #0x6e
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x20]
- mov r2, #0
- add r0, #0x64
- str r0, [sp, #0x18]
- add r0, r5, #0
- mov r3, #2
- bl MOD11_0225A458
- ldr r0, [sp, #0x20]
- mov r4, #0
- str r0, [sp, #0x28]
- add r0, #0x78
- str r0, [sp, #0x28]
- ldr r0, _0225985C ; =0x000004CC
- add r7, r5, r0
- ldr r0, [sp, #0x20]
- add r0, #0xc8
- str r0, [sp, #0x20]
- b _02259748
-_022596BE:
- add r1, r6, r4
- ldrb r0, [r1, #8]
- ldrb r1, [r1, #0xc]
- bl MOD11_0225B3D4
- str r0, [sp, #0x24]
- str r0, [sp]
- mov r0, #4
- str r0, [sp, #4]
- ldr r0, _02259860 ; =0x00004E33
- ldr r1, _0225986C ; =0x0225F73C
- str r0, [sp, #8]
- lsl r0, r4, #2
- ldrh r1, [r1, r0]
- add r2, r4, #0
- add r2, #9
- str r1, [sp, #0xc]
- ldr r1, _0225986C ; =0x0225F73C
- add r0, r1, r0
- ldrh r0, [r0, #2]
- add r1, r4, #0
- str r0, [sp, #0x10]
- mov r0, #0
- str r0, [sp, #0x14]
- mov r0, #0x14
- mul r1, r0
- ldr r0, [sp, #0x28]
- add r0, r0, r1
- mov r1, #0x14
- mul r1, r2
- mov r2, #0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, r7, r1
- add r3, r2, #0
- bl MOD11_0225A458
- ldr r0, [sp, #0x24]
- ldr r1, _02259870 ; =0x0225F78C
- str r0, [sp]
- mov r0, #4
- str r0, [sp, #4]
- ldr r0, _02259860 ; =0x00004E33
- add r2, r4, #5
- str r0, [sp, #8]
- lsl r0, r4, #2
- ldrh r1, [r1, r0]
- str r1, [sp, #0xc]
- ldr r1, _02259870 ; =0x0225F78C
- add r0, r1, r0
- ldrh r0, [r0, #2]
- add r1, r4, #0
- str r0, [sp, #0x10]
- mov r0, #0
- str r0, [sp, #0x14]
- mov r0, #0x14
- mul r1, r0
- ldr r0, [sp, #0x20]
- add r0, r0, r1
- mov r1, #0x14
- mul r1, r2
- mov r2, #0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, r7, r1
- add r3, r2, #0
- bl MOD11_0225A458
- add r4, r4, #1
-_02259748:
- cmp r4, #4
- blt _022596BE
- ldr r0, [sp, #0x1c]
- ldr r1, _02259874 ; =0x000003A1
- bl FUN_0200A914
- add r4, r0, #0
- ldr r0, _02259878 ; =0x000A0B0C
- ldr r1, _0225987C ; =0x0000051C
- str r0, [sp]
- mov r3, #2
- ldr r0, _02259860 ; =0x00004E33
- str r3, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x80
- str r0, [sp, #0xc]
- mov r0, #0xb2
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, r5, r1
- add r2, r4, #0
- bl MOD11_0225A458
- add r0, r4, #0
- bl FUN_02021A20
- mov r4, #0
- mov r7, #3
- b _022597B0
-_0225978A:
- lsl r0, r4, #1
- ldrh r0, [r6, r0]
- cmp r0, #0
- beq _022597A4
- add r1, r7, #0
- bl FUN_0206AB18
- add r1, r0, #0
- add r0, r5, #0
- add r2, r4, #0
- bl MOD11_0225AB34
- b _022597AE
-_022597A4:
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0225AB50
- b _022597B4
-_022597AE:
- add r4, r4, #1
-_022597B0:
- cmp r4, #4
- blt _0225978A
-_022597B4:
- ldr r0, [r5]
- bl MOD11_0222FF68
- ldrh r0, [r6]
- cmp r0, #0
- bne _022597E2
- ldr r0, _0225985C ; =0x000004CC
- mov r1, #0
- ldr r0, [r5, r0]
- bl FUN_020119D0
- mov r0, #0x53
- lsl r0, r0, #4
- ldr r0, [r5, r0]
- mov r1, #0
- bl FUN_020119D0
- mov r0, #0x16
- lsl r0, r0, #6
- ldr r0, [r5, r0]
- mov r1, #0
- bl FUN_020119D0
-_022597E2:
- ldrh r0, [r6, #2]
- cmp r0, #0
- bne _02259808
- mov r0, #0x4e
- lsl r0, r0, #4
- ldr r0, [r5, r0]
- mov r1, #0
- bl FUN_020119D0
- ldr r0, _02259880 ; =0x00000544
- mov r1, #0
- ldr r0, [r5, r0]
- bl FUN_020119D0
- ldr r0, _02259884 ; =0x00000594
- mov r1, #0
- ldr r0, [r5, r0]
- bl FUN_020119D0
-_02259808:
- ldrh r0, [r6, #4]
- cmp r0, #0
- bne _0225982C
- ldr r0, _02259864 ; =0x000004F4
- mov r1, #0
- ldr r0, [r5, r0]
- bl FUN_020119D0
- ldr r0, _02259888 ; =0x00000558
- mov r1, #0
- ldr r0, [r5, r0]
- bl FUN_020119D0
- ldr r0, _0225988C ; =0x000005A8
- mov r1, #0
- ldr r0, [r5, r0]
- bl FUN_020119D0
-_0225982C:
- ldrh r0, [r6, #6]
- cmp r0, #0
- bne _02259850
- ldr r0, _02259868 ; =0x00000508
- mov r1, #0
- ldr r0, [r5, r0]
- bl FUN_020119D0
- ldr r0, _02259890 ; =0x0000056C
- mov r1, #0
- ldr r0, [r5, r0]
- bl FUN_020119D0
- ldr r0, _02259894 ; =0x000005BC
- mov r1, #0
- ldr r0, [r5, r0]
- bl FUN_020119D0
-_02259850:
- add sp, #0x2c
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02259854: .word 0x0000069E
-_02259858: .word 0x00070809
-_0225985C: .word 0x000004CC
-_02259860: .word 0x00004E33
-_02259864: .word 0x000004F4
-_02259868: .word 0x00000508
-_0225986C: .word 0x0225F73C
-_02259870: .word 0x0225F78C
-_02259874: .word 0x000003A1
-_02259878: .word 0x000A0B0C
-_0225987C: .word 0x0000051C
-_02259880: .word 0x00000544
-_02259884: .word 0x00000594
-_02259888: .word 0x00000558
-_0225988C: .word 0x000005A8
-_02259890: .word 0x0000056C
-_02259894: .word 0x000005BC
-
- thumb_func_start MOD11_02259898
-MOD11_02259898: ; 0x02259898
- push {r3, r4, r5, r6, lr}
- sub sp, #0x1c
- add r5, r0, #0
- ldr r0, [r5]
- bl MOD11_022300C4
- mov r1, #0xeb
- lsl r1, r1, #2
- add r6, r0, #0
- bl FUN_0200A914
- add r4, r0, #0
- ldr r1, _0225991C ; =0x000003AD
- add r0, r6, #0
- bl FUN_0200A914
- add r6, r0, #0
- ldr r0, _02259920 ; =0x00010203
- ldr r1, _02259924 ; =0x000004CC
- str r0, [sp]
- mov r3, #2
- ldr r0, _02259928 ; =0x00004E33
- str r3, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x80
- str r0, [sp, #0xc]
- mov r0, #0x44
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, r5, r1
- add r2, r4, #0
- bl MOD11_0225A458
- ldr r0, _0225992C ; =0x000A0B0C
- mov r1, #0x4e
- str r0, [sp]
- mov r3, #2
- lsl r1, r1, #4
- ldr r0, _02259928 ; =0x00004E33
- str r3, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x80
- str r0, [sp, #0xc]
- mov r0, #0x8c
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, r5, r1
- add r2, r6, #0
- bl MOD11_0225A458
- add r0, r4, #0
- bl FUN_02021A20
- add r0, r6, #0
- bl FUN_02021A20
- add sp, #0x1c
- pop {r3, r4, r5, r6, pc}
- .align 2, 0
-_0225991C: .word 0x000003AD
-_02259920: .word 0x00010203
-_02259924: .word 0x000004CC
-_02259928: .word 0x00004E33
-_0225992C: .word 0x000A0B0C
-
- thumb_func_start MOD11_02259930
-MOD11_02259930: ; 0x02259930
- push {r3, r4, r5, r6, lr}
- sub sp, #0x1c
- add r5, r0, #0
- ldr r0, [r5]
- bl MOD11_022300C4
- ldr r1, _022599B4 ; =0x0000049D
- add r6, r0, #0
- bl FUN_0200A914
- add r4, r0, #0
- ldr r1, _022599B8 ; =0x0000049E
- add r0, r6, #0
- bl FUN_0200A914
- add r6, r0, #0
- ldr r0, _022599BC ; =0x00010203
- ldr r1, _022599C0 ; =0x000004CC
- str r0, [sp]
- mov r3, #2
- ldr r0, _022599C4 ; =0x00004E33
- str r3, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x80
- str r0, [sp, #0xc]
- mov r0, #0x44
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, r5, r1
- add r2, r4, #0
- bl MOD11_0225A458
- ldr r0, _022599C8 ; =0x000A0B0C
- mov r1, #0x4e
- str r0, [sp]
- mov r3, #2
- lsl r1, r1, #4
- ldr r0, _022599C4 ; =0x00004E33
- str r3, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x80
- str r0, [sp, #0xc]
- mov r0, #0x8c
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, r5, r1
- add r2, r6, #0
- bl MOD11_0225A458
- add r0, r4, #0
- bl FUN_02021A20
- add r0, r6, #0
- bl FUN_02021A20
- add sp, #0x1c
- pop {r3, r4, r5, r6, pc}
- nop
-_022599B4: .word 0x0000049D
-_022599B8: .word 0x0000049E
-_022599BC: .word 0x00010203
-_022599C0: .word 0x000004CC
-_022599C4: .word 0x00004E33
-_022599C8: .word 0x000A0B0C
-
- thumb_func_start MOD11_022599CC
-MOD11_022599CC: ; 0x022599CC
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- add r5, r0, #0
- ldr r0, [r5]
- bl MOD11_022300C4
- add r6, r0, #0
- ldr r0, [r5]
- bl MOD11_02230138
- add r4, r0, #0
- ldr r1, _02259A98 ; =0x000004A2
- add r0, r6, #0
- bl FUN_0200A914
- str r0, [sp, #0x1c]
- ldr r1, _02259A9C ; =0x000004A3
- add r0, r6, #0
- bl FUN_0200A914
- str r0, [sp, #0x20]
- mov r0, #0x64
- mov r1, #5
- bl FUN_020219F4
- add r6, r0, #0
- mov r0, #0x64
- mov r1, #5
- bl FUN_020219F4
- add r7, r0, #0
- ldrh r2, [r5, #0x18]
- add r0, r4, #0
- mov r1, #0
- bl FUN_0200AD5C
- ldr r2, [sp, #0x1c]
- add r0, r4, #0
- add r1, r6, #0
- bl FUN_0200B7B8
- ldr r2, [sp, #0x20]
- add r0, r4, #0
- add r1, r7, #0
- bl FUN_0200B7B8
- ldr r0, _02259AA0 ; =0x00010203
- ldr r1, _02259AA4 ; =0x000004CC
- str r0, [sp]
- mov r3, #2
- ldr r0, _02259AA8 ; =0x00004E33
- str r3, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x80
- str r0, [sp, #0xc]
- mov r0, #0x44
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, r5, r1
- add r2, r6, #0
- bl MOD11_0225A458
- ldr r0, _02259AAC ; =0x000A0B0C
- mov r1, #0x4e
- str r0, [sp]
- mov r3, #2
- lsl r1, r1, #4
- ldr r0, _02259AA8 ; =0x00004E33
- str r3, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x80
- str r0, [sp, #0xc]
- mov r0, #0x8c
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, r5, r1
- add r2, r7, #0
- bl MOD11_0225A458
- ldr r0, [sp, #0x1c]
- bl FUN_02021A20
- ldr r0, [sp, #0x20]
- bl FUN_02021A20
- add r0, r6, #0
- bl FUN_02021A20
- add r0, r7, #0
- bl FUN_02021A20
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- nop
-_02259A98: .word 0x000004A2
-_02259A9C: .word 0x000004A3
-_02259AA0: .word 0x00010203
-_02259AA4: .word 0x000004CC
-_02259AA8: .word 0x00004E33
-_02259AAC: .word 0x000A0B0C
-
- thumb_func_start MOD11_02259AB0
-MOD11_02259AB0: ; 0x02259AB0
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- add r5, r0, #0
- ldr r0, [r5]
- bl MOD11_022300C4
- add r6, r0, #0
- ldr r0, [r5]
- bl MOD11_02230138
- add r4, r0, #0
- ldr r1, _02259B7C ; =0x000004C1
- add r0, r6, #0
- bl FUN_0200A914
- str r0, [sp, #0x1c]
- ldr r1, _02259B80 ; =0x000004C2
- add r0, r6, #0
- bl FUN_0200A914
- str r0, [sp, #0x20]
- mov r0, #0x64
- mov r1, #5
- bl FUN_020219F4
- add r6, r0, #0
- mov r0, #0x64
- mov r1, #5
- bl FUN_020219F4
- add r7, r0, #0
- ldrh r2, [r5, #0x18]
- add r0, r4, #0
- mov r1, #0
- bl FUN_0200AD5C
- ldr r2, [sp, #0x1c]
- add r0, r4, #0
- add r1, r6, #0
- bl FUN_0200B7B8
- ldr r2, [sp, #0x20]
- add r0, r4, #0
- add r1, r7, #0
- bl FUN_0200B7B8
- ldr r0, _02259B84 ; =0x00010203
- ldr r1, _02259B88 ; =0x000004CC
- str r0, [sp]
- mov r3, #2
- ldr r0, _02259B8C ; =0x00004E33
- str r3, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x80
- str r0, [sp, #0xc]
- mov r0, #0x44
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, r5, r1
- add r2, r6, #0
- bl MOD11_0225A458
- ldr r0, _02259B90 ; =0x000A0B0C
- mov r1, #0x4e
- str r0, [sp]
- mov r3, #2
- lsl r1, r1, #4
- ldr r0, _02259B8C ; =0x00004E33
- str r3, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x80
- str r0, [sp, #0xc]
- mov r0, #0x8c
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, r5, r1
- add r2, r7, #0
- bl MOD11_0225A458
- ldr r0, [sp, #0x1c]
- bl FUN_02021A20
- ldr r0, [sp, #0x20]
- bl FUN_02021A20
- add r0, r6, #0
- bl FUN_02021A20
- add r0, r7, #0
- bl FUN_02021A20
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- nop
-_02259B7C: .word 0x000004C1
-_02259B80: .word 0x000004C2
-_02259B84: .word 0x00010203
-_02259B88: .word 0x000004CC
-_02259B8C: .word 0x00004E33
-_02259B90: .word 0x000A0B0C
-
- thumb_func_start MOD11_02259B94
-MOD11_02259B94: ; 0x02259B94
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- add r5, r0, #0
- ldr r0, [r5]
- bl MOD11_022300C4
- add r6, r0, #0
- ldr r0, [r5]
- bl MOD11_02230138
- add r4, r0, #0
- ldr r1, _02259C60 ; =0x000004BF
- add r0, r6, #0
- bl FUN_0200A914
- mov r1, #0x13
- str r0, [sp, #0x1c]
- add r0, r6, #0
- lsl r1, r1, #6
- bl FUN_0200A914
- str r0, [sp, #0x20]
- mov r0, #0x64
- mov r1, #5
- bl FUN_020219F4
- add r6, r0, #0
- mov r0, #0x64
- mov r1, #5
- bl FUN_020219F4
- add r7, r0, #0
- ldrh r2, [r5, #0x18]
- add r0, r4, #0
- mov r1, #0
- bl FUN_0200AD5C
- ldr r2, [sp, #0x1c]
- add r0, r4, #0
- add r1, r6, #0
- bl FUN_0200B7B8
- ldr r2, [sp, #0x20]
- add r0, r4, #0
- add r1, r7, #0
- bl FUN_0200B7B8
- ldr r0, _02259C64 ; =0x00010203
- ldr r1, _02259C68 ; =0x000004CC
- str r0, [sp]
- mov r3, #2
- ldr r0, _02259C6C ; =0x00004E33
- str r3, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x80
- str r0, [sp, #0xc]
- mov r0, #0x44
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, r5, r1
- add r2, r6, #0
- bl MOD11_0225A458
- ldr r0, _02259C70 ; =0x000A0B0C
- mov r1, #0x4e
- str r0, [sp]
- mov r3, #2
- lsl r1, r1, #4
- ldr r0, _02259C6C ; =0x00004E33
- str r3, [sp, #4]
- str r0, [sp, #8]
- mov r0, #0x80
- str r0, [sp, #0xc]
- mov r0, #0x8c
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, r5, r1
- add r2, r7, #0
- bl MOD11_0225A458
- ldr r0, [sp, #0x1c]
- bl FUN_02021A20
- ldr r0, [sp, #0x20]
- bl FUN_02021A20
- add r0, r6, #0
- bl FUN_02021A20
- add r0, r7, #0
- bl FUN_02021A20
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_02259C60: .word 0x000004BF
-_02259C64: .word 0x00010203
-_02259C68: .word 0x000004CC
-_02259C6C: .word 0x00004E33
-_02259C70: .word 0x000A0B0C
-
- thumb_func_start MOD11_02259C74
-MOD11_02259C74: ; 0x02259C74
- push {r4, r5, r6, r7, lr}
- sub sp, #0x44
- add r5, r0, #0
- add r7, r5, #0
- add r7, #0x18
- add r0, r7, #0
- add r0, #0x21
- ldrb r1, [r0]
- mov r0, #0x6a
- lsl r0, r0, #4
- strb r1, [r5, r0]
- add r1, r7, #0
- add r1, #0x20
- ldrb r1, [r1]
- sub r0, r0, #2
- strb r1, [r5, r0]
- ldr r0, [r5]
- bl MOD11_022300C4
- str r0, [sp, #0x2c]
- ldr r0, [r5]
- bl MOD11_02230138
- str r0, [sp, #0x1c]
- add r0, r5, #0
- add r1, sp, #0x40
- mov r2, #0
- bl MOD11_0225ACD4
- add r0, r5, #0
- bl MOD11_0225A164
- add r0, r5, #0
- bl MOD11_0225A5C0
- add r1, sp, #0x38
- ldr r0, [r5]
- add r1, #2
- bl MOD11_02231504
- ldr r0, [r5]
- add r1, sp, #0x34
- bl MOD11_022314E0
- mov r0, #0x18
- mov r1, #5
- bl FUN_020219F4
- str r0, [sp, #0x28]
- ldr r0, _02259E38 ; =0x000004CC
- mov r4, #0
- add r0, r5, r0
- str r0, [sp, #0x30]
- b _02259DEC
-_02259CE0:
- add r1, r4, #2
- add r0, sp, #0x34
- ldrb r6, [r0, r1]
- lsl r0, r6, #3
- add r0, r7, r0
- ldrb r1, [r0, #1]
- lsl r0, r1, #0x1d
- lsr r0, r0, #0x1f
- cmp r0, #1
- bne _02259DDA
- add r0, sp, #0x40
- ldrb r0, [r0, r4]
- cmp r0, #1
- bne _02259DDA
- lsl r0, r1, #0x1e
- lsr r0, r0, #0x1e
- bne _02259D0E
- ldr r0, [sp, #0x2c]
- ldr r1, _02259E3C ; =0x000003C2
- bl FUN_0200A914
- str r0, [sp, #0x24]
- b _02259D2A
-_02259D0E:
- cmp r0, #1
- bne _02259D1E
- ldr r0, [sp, #0x2c]
- ldr r1, _02259E40 ; =0x000003C3
- bl FUN_0200A914
- str r0, [sp, #0x24]
- b _02259D2A
-_02259D1E:
- mov r1, #0xf1
- ldr r0, [sp, #0x2c]
- lsl r1, r1, #2
- bl FUN_0200A914
- str r0, [sp, #0x24]
-_02259D2A:
- lsl r2, r6, #3
- ldrb r2, [r7, r2]
- ldr r0, [r5]
- add r1, r6, #0
- bl MOD11_02230014
- str r0, [sp, #0x20]
- bl FUN_020690E4
- add r2, r0, #0
- ldr r0, [sp, #0x1c]
- mov r1, #0
- bl FUN_0200ACF8
- ldr r0, [sp, #0x1c]
- ldr r1, [sp, #0x28]
- ldr r2, [sp, #0x24]
- bl FUN_0200B7B8
- mov r0, #1
- tst r0, r4
- beq _02259D5A
- ldr r0, _02259E44 ; =0x00010203
- b _02259D5C
-_02259D5A:
- ldr r0, _02259E48 ; =0x00040506
-_02259D5C:
- str r0, [sp]
- mov r0, #6
- str r0, [sp, #4]
- ldr r0, _02259E4C ; =0x00004E33
- ldr r1, _02259E50 ; =0x0225F7D4
- str r0, [sp, #8]
- lsl r0, r4, #2
- ldrh r1, [r1, r0]
- add r2, r4, #0
- mov r3, #2
- str r1, [sp, #0xc]
- ldr r1, _02259E50 ; =0x0225F7D4
- add r0, r1, r0
- ldrh r0, [r0, #2]
- mov r1, #0x14
- mul r2, r1
- ldr r1, [sp, #0x30]
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- add r1, r1, r2
- str r0, [sp, #0x18]
- ldr r2, [sp, #0x28]
- add r0, r5, #0
- bl MOD11_0225A458
- ldr r0, [sp, #0x24]
- bl FUN_02021A20
- cmp r4, #1
- beq _02259DA2
- cmp r4, #3
- beq _02259DBE
- b _02259DEA
-_02259DA2:
- lsl r0, r6, #3
- add r6, r7, r0
- ldrh r0, [r6, #6]
- mov r3, #4
- ldr r1, [sp, #0x20]
- str r0, [sp]
- ldrb r0, [r6, #2]
- mov r2, #3
- str r0, [sp, #4]
- ldrsh r3, [r6, r3]
- add r0, r5, #0
- bl MOD11_0225A270
- b _02259DEA
-_02259DBE:
- lsl r0, r6, #3
- add r6, r7, r0
- ldrh r0, [r6, #6]
- mov r3, #4
- ldr r1, [sp, #0x20]
- str r0, [sp]
- ldrb r0, [r6, #2]
- mov r2, #5
- str r0, [sp, #4]
- ldrsh r3, [r6, r3]
- add r0, r5, #0
- bl MOD11_0225A270
- b _02259DEA
-_02259DDA:
- add r0, sp, #0x40
- ldrb r0, [r0, r4]
- cmp r0, #0
- bne _02259DEA
- add r0, r5, #0
- add r1, r4, #0
- bl MOD11_0225ABA4
-_02259DEA:
- add r4, r4, #1
-_02259DEC:
- cmp r4, #4
- bge _02259DF2
- b _02259CE0
-_02259DF2:
- ldr r0, [sp, #0x28]
- bl FUN_02021A20
- ldr r0, [sp, #0x2c]
- ldr r1, _02259E54 ; =0x000003A2
- bl FUN_0200A914
- add r4, r0, #0
- ldr r0, _02259E58 ; =0x000A0B0C
- mov r3, #2
- str r0, [sp]
- ldr r0, _02259E4C ; =0x00004E33
- str r3, [sp, #4]
- str r0, [sp, #8]
- ldr r0, _02259E5C ; =0x0225F7C4
- add r2, r4, #0
- ldrh r1, [r0, #0x20]
- str r1, [sp, #0xc]
- ldrh r0, [r0, #0x22]
- ldr r1, _02259E60 ; =0x0000051C
- str r0, [sp, #0x10]
- mov r0, #1
- str r0, [sp, #0x14]
- mov r0, #0
- str r0, [sp, #0x18]
- add r0, r5, #0
- add r1, r5, r1
- bl MOD11_0225A458
- add r0, r4, #0
- bl FUN_02021A20
- add sp, #0x44
- pop {r4, r5, r6, r7, pc}
- nop
-_02259E38: .word 0x000004CC
-_02259E3C: .word 0x000003C2
-_02259E40: .word 0x000003C3
-_02259E44: .word 0x00010203
-_02259E48: .word 0x00040506
-_02259E4C: .word 0x00004E33
-_02259E50: .word 0x0225F7D4
-_02259E54: .word 0x000003A2
-_02259E58: .word 0x000A0B0C
-_02259E5C: .word 0x0225F7C4
-_02259E60: .word 0x0000051C
-
- thumb_func_start MOD11_02259E64
-MOD11_02259E64: ; 0x02259E64
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- mov r0, #0xff
- add r5, r1, #0
- str r0, [sp]
- add r0, r5, #1
- cmp r0, #5
- bhi _02259E8C
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02259E80: ; jump table
- .short _02259E8C - _02259E80 - 2 ; case 0
- .short _02259E8C - _02259E80 - 2 ; case 1
- .short _02259E90 - _02259E80 - 2 ; case 2
- .short _02259EB4 - _02259E80 - 2 ; case 3
- .short _02259EBA - _02259E80 - 2 ; case 4
- .short _02259EC0 - _02259E80 - 2 ; case 5
-_02259E8C:
- add r0, r5, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02259E90:
- ldr r0, _02259F24 ; =0x0000069E
- mov r7, #0
- ldrb r0, [r4, r0]
- add r6, r7, #0
- cmp r0, #0
- beq _02259EA6
- cmp r0, #2
- beq _02259EAA
- cmp r0, #4
- beq _02259EAA
- b _02259EC4
-_02259EA6:
- str r0, [sp]
- b _02259EC4
-_02259EAA:
- ldr r0, _02259F24 ; =0x0000069E
- ldrb r0, [r4, r0]
- sub r0, r0, #2
- str r0, [sp]
- b _02259EC4
-_02259EB4:
- mov r7, #1
- add r6, r7, #0
- b _02259EC4
-_02259EBA:
- mov r7, #2
- mov r6, #1
- b _02259EC4
-_02259EC0:
- mov r7, #3
- mov r6, #1
-_02259EC4:
- add r0, r4, #0
- add r1, r2, #0
- bl MOD11_0225ADD4
- ldr r0, _02259F28 ; =MOD11_0225AE4C
- add r1, r4, #0
- bl MOD11_0225AD80
- ldr r0, _02259F2C ; =0x0225F854
- sub r2, r5, #1
- mov r1, #6
- mul r1, r2
- add r0, r0, r1
- ldr r1, _02259F30 ; =0x000006B4
- lsl r2, r2, #2
- str r0, [r4, r1]
- ldr r0, _02259F34 ; =0x0225F70C
- add r3, r0, r2
- add r0, r1, #4
- str r3, [r4, r0]
- add r0, r1, #0
- mov r3, #1
- add r0, #0xc
- strb r3, [r4, r0]
- add r0, r1, #0
- add r0, #8
- str r5, [r4, r0]
- add r0, r1, #0
- add r0, #0xd
- strb r7, [r4, r0]
- add r3, r1, #0
- ldr r0, [sp]
- add r3, #0xe
- strb r0, [r4, r3]
- add r0, r1, #0
- add r0, #0xf
- strb r6, [r4, r0]
- ldr r0, _02259F38 ; =0x0225F79C
- add r3, r0, r2
- ldrh r2, [r0, r2]
- add r0, r1, #0
- add r0, #0x10
- strh r2, [r4, r0]
- ldrh r0, [r3, #2]
- add r1, #0x12
- strh r0, [r4, r1]
- add r0, r5, #0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02259F24: .word 0x0000069E
-_02259F28: .word MOD11_0225AE4C
-_02259F2C: .word 0x0225F854
-_02259F30: .word 0x000006B4
-_02259F34: .word 0x0225F70C
-_02259F38: .word 0x0225F79C
-
- thumb_func_start MOD11_02259F3C
-MOD11_02259F3C: ; 0x02259F3C
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- mov r0, #0
- add r4, r1, #0
- mvn r0, r0
- add r1, r2, #0
- cmp r4, r0
- bne _02259F50
- add r0, r4, #0
- pop {r3, r4, r5, r6, r7, pc}
-_02259F50:
- add r2, r5, #0
- add r2, #0x18
- cmp r4, #1
- blt _02259F66
- cmp r4, #4
- bgt _02259F66
- sub r3, r4, #1
- lsl r3, r3, #1
- ldrh r2, [r2, r3]
- cmp r2, #0
- beq _02259FCA
-_02259F66:
- sub r0, r4, #1
- cmp r4, #4
- bgt _02259F88
- add r2, r4, #1
- bmi _02259F8C
- add r2, r2, r2
- add r2, pc
- ldrh r2, [r2, #6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_02259F7C: ; jump table
- .short _02259F8C - _02259F7C - 2 ; case 0
- .short _02259F8C - _02259F7C - 2 ; case 1
- .short _02259F92 - _02259F7C - 2 ; case 2
- .short _02259F92 - _02259F7C - 2 ; case 3
- .short _02259F92 - _02259F7C - 2 ; case 4
- .short _02259F92 - _02259F7C - 2 ; case 5
-_02259F88:
- cmp r4, #0xff
- beq _02259FA2
-_02259F8C:
- mov r0, #0
- mvn r0, r0
- pop {r3, r4, r5, r6, r7, pc}
-_02259F92:
- mov r2, #6
- mul r2, r0
- ldr r3, _02259FCC ; =0x0225F86C
- lsl r0, r0, #2
- add r7, r3, r2
- ldr r2, _02259FD0 ; =0x0225F7AC
- add r6, r2, r0
- b _02259FA6
-_02259FA2:
- ldr r7, _02259FD4 ; =0x0225F884
- ldr r6, _02259FD8 ; =0x0225F7BC
-_02259FA6:
- add r0, r5, #0
- bl MOD11_0225ADD4
- ldr r0, _02259FDC ; =MOD11_0225AF9C
- add r1, r5, #0
- bl MOD11_0225AD80
- ldr r1, _02259FE0 ; =0x000006B4
- mov r2, #3
- str r7, [r5, r1]
- add r0, r1, #4
- str r6, [r5, r0]
- add r0, r1, #0
- add r0, #0xc
- strb r2, [r5, r0]
- add r1, #8
- str r4, [r5, r1]
- add r0, r4, #0
-_02259FCA:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_02259FCC: .word 0x0225F86C
-_02259FD0: .word 0x0225F7AC
-_02259FD4: .word 0x0225F884
-_02259FD8: .word 0x0225F7BC
-_02259FDC: .word MOD11_0225AF9C
-_02259FE0: .word 0x000006B4
-
- thumb_func_start MOD11_02259FE4
-MOD11_02259FE4: ; 0x02259FE4
- push {r4, r5, r6, lr}
- add r5, r0, #0
- mov r0, #0
- add r4, r1, #0
- mvn r0, r0
- cmp r4, r0
- beq _02259FFA
- cmp r4, #1
- beq _02259FFE
- cmp r4, #0xff
- beq _0225A002
-_02259FFA:
- add r0, r4, #0
- pop {r4, r5, r6, pc}
-_02259FFE:
- mov r6, #0
- b _0225A004
-_0225A002:
- mov r6, #1
-_0225A004:
- add r0, r5, #0
- add r1, r2, #0
- bl MOD11_0225ADD4
- ldr r0, _0225A048 ; =MOD11_0225AE4C
- add r1, r5, #0
- bl MOD11_0225AD80
- cmp r4, #1
- ldr r0, _0225A04C ; =0x000006B4
- bne _0225A022
- ldr r1, _0225A050 ; =0x0225F6F6
- str r1, [r5, r0]
- ldr r1, _0225A054 ; =0x0225F6CC
- b _0225A028
-_0225A022:
- ldr r1, _0225A058 ; =0x0225F6F0
- str r1, [r5, r0]
- ldr r1, _0225A05C ; =0x0225F6C8
-_0225A028:
- add r0, r0, #4
- str r1, [r5, r0]
- mov r0, #0x1b
- mov r1, #6
- lsl r0, r0, #6
- strb r1, [r5, r0]
- sub r1, r0, #4
- str r4, [r5, r1]
- add r1, r0, #1
- strb r6, [r5, r1]
- mov r1, #3
- add r0, r0, #3
- strb r1, [r5, r0]
- add r0, r4, #0
- pop {r4, r5, r6, pc}
- nop
-_0225A048: .word MOD11_0225AE4C
-_0225A04C: .word 0x000006B4
-_0225A050: .word 0x0225F6F6
-_0225A054: .word 0x0225F6CC
-_0225A058: .word 0x0225F6F0
-_0225A05C: .word 0x0225F6C8
-
- thumb_func_start MOD11_0225A060
-MOD11_0225A060: ; 0x0225A060
- push {r3, r4, r5, r6, lr}
- sub sp, #4
- add r5, r1, #0
- add r1, sp, #0
- mov r2, #1
- add r4, r0, #0
- bl MOD11_0225ACD4
- cmp r5, #4
- bgt _0225A090
- add r0, r5, #1
- bmi _0225A094
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0225A084: ; jump table
- .short _0225A094 - _0225A084 - 2 ; case 0
- .short _0225A094 - _0225A084 - 2 ; case 1
- .short _0225A09A - _0225A084 - 2 ; case 2
- .short _0225A0AA - _0225A084 - 2 ; case 3
- .short _0225A0BA - _0225A084 - 2 ; case 4
- .short _0225A0CA - _0225A084 - 2 ; case 5
-_0225A090:
- cmp r5, #0xff
- beq _0225A0DA
-_0225A094:
- add sp, #4
- add r0, r5, #0
- pop {r3, r4, r5, r6, pc}
-_0225A09A:
- add r0, sp, #0
- ldrb r0, [r0]
- cmp r0, #0
- bne _0225A116
- mov r0, #0
- add sp, #4
- mvn r0, r0
- pop {r3, r4, r5, r6, pc}
-_0225A0AA:
- add r0, sp, #0
- ldrb r0, [r0, #1]
- cmp r0, #0
- bne _0225A116
- mov r0, #0
- add sp, #4
- mvn r0, r0
- pop {r3, r4, r5, r6, pc}
-_0225A0BA:
- add r0, sp, #0
- ldrb r0, [r0, #2]
- cmp r0, #0
- bne _0225A116
- mov r0, #0
- add sp, #4
- mvn r0, r0
- pop {r3, r4, r5, r6, pc}
-_0225A0CA:
- add r0, sp, #0
- ldrb r0, [r0, #3]
- cmp r0, #0
- bne _0225A116
- mov r0, #0
- add sp, #4
- mvn r0, r0
- pop {r3, r4, r5, r6, pc}
-_0225A0DA:
- add r0, r4, #0
- mov r1, #4
- bl MOD11_0225ADD4
- ldr r0, _0225A14C ; =MOD11_0225AE4C
- add r1, r4, #0
- bl MOD11_0225AD80
- ldr r0, _0225A150 ; =0x0225F8A4
- ldr r1, _0225A154 ; =0x000006B4
- ldr r2, _0225A158 ; =0x0225F80C
- str r0, [r4, r1]
- add r0, r1, #4
- str r2, [r4, r0]
- add r0, r1, #0
- mov r2, #4
- add r0, #0xc
- strb r2, [r4, r0]
- add r0, r1, #0
- add r0, #8
- str r5, [r4, r0]
- add r0, r1, #0
- add r0, #0xd
- strb r2, [r4, r0]
- mov r0, #3
- add r1, #0xf
- strb r0, [r4, r1]
- add sp, #4
- add r0, r5, #0
- pop {r3, r4, r5, r6, pc}
-_0225A116:
- ldr r0, [r4]
- bl MOD11_0222FF68
- ldr r2, _0225A15C ; =0x000002FF
- add r6, r0, #0
- mov r1, #5
- bl FUN_02018768
- add r0, r6, #0
- mov r1, #5
- bl FUN_0201AC68
- add r0, r4, #0
- add r1, r5, #0
- bl MOD11_0225ADD0
- ldr r0, _0225A160 ; =MOD11_0225B234
- add r1, r4, #0
- bl MOD11_0225AD80
- mov r0, #0x6d
- lsl r0, r0, #4
- str r5, [r4, r0]
- add r0, r5, #0
- add sp, #4
- pop {r3, r4, r5, r6, pc}
- nop
-_0225A14C: .word MOD11_0225AE4C
-_0225A150: .word 0x0225F8A4
-_0225A154: .word 0x000006B4
-_0225A158: .word 0x0225F80C
-_0225A15C: .word 0x000002FF
-_0225A160: .word MOD11_0225B234
-
- thumb_func_start MOD11_0225A164
-MOD11_0225A164: ; 0x0225A164
- push {r4, r5, r6, lr}
- sub sp, #0x18
- add r5, r0, #0
- ldr r0, [r5]
- bl MOD11_02230078
- add r4, r0, #0
- ldr r0, [r5]
- bl MOD11_02230080
- add r6, r0, #0
- ldr r0, [r5]
- bl MOD11_022300CC
- add r5, r0, #0
- bl FUN_0206B888
- mov r1, #0x13
- str r1, [sp]
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- mov r1, #3
- str r1, [sp, #0xc]
- mov r0, #2
- str r0, [sp, #0x10]
- ldr r0, _0225A1DC ; =0x00004E32
- add r2, r4, #0
- str r0, [sp, #0x14]
- add r0, r5, #0
- add r3, r6, #0
- bl FUN_0200C0DC
- bl FUN_0206B890
- add r3, r0, #0
- mov r0, #0
- str r0, [sp]
- ldr r0, _0225A1E0 ; =0x00004E31
- add r1, r6, #0
- str r0, [sp, #4]
- add r0, r4, #0
- mov r2, #0x13
- bl FUN_0200C124
- bl FUN_0206B89C
- add r3, r0, #0
- mov r0, #0
- str r0, [sp]
- ldr r0, _0225A1E0 ; =0x00004E31
- add r1, r6, #0
- str r0, [sp, #4]
- add r0, r4, #0
- mov r2, #0x13
- bl FUN_0200C13C
- add sp, #0x18
- pop {r4, r5, r6, pc}
- nop
-_0225A1DC: .word 0x00004E32
-_0225A1E0: .word 0x00004E31
-
- thumb_func_start MOD11_0225A1E4
-MOD11_0225A1E4: ; 0x0225A1E4
- push {r4, lr}
- ldr r0, [r0]
- bl MOD11_02230080
- ldr r1, _0225A220 ; =0x00004E40
- add r4, r0, #0
- bl FUN_0200C358
- ldr r1, _0225A224 ; =0x00004E41
- add r0, r4, #0
- bl FUN_0200C358
- ldr r1, _0225A228 ; =0x00004E42
- add r0, r4, #0
- bl FUN_0200C358
- ldr r1, _0225A22C ; =0x00004E31
- add r0, r4, #0
- bl FUN_0200C378
- ldr r1, _0225A22C ; =0x00004E31
- add r0, r4, #0
- bl FUN_0200C388
- ldr r1, _0225A230 ; =0x00004E32
- add r0, r4, #0
- bl FUN_0200C368
- pop {r4, pc}
- nop
-_0225A220: .word 0x00004E40
-_0225A224: .word 0x00004E41
-_0225A228: .word 0x00004E42
-_0225A22C: .word 0x00004E31
-_0225A230: .word 0x00004E32
-
- thumb_func_start MOD11_0225A234
-MOD11_0225A234: ; 0x0225A234
- push {r3, r4, r5, r6, r7, lr}
- mov r4, #0
- add r5, r0, #0
- add r6, r4, #0
- add r7, r4, #0
-_0225A23E:
- ldr r0, _0225A268 ; =0x00000624
- ldr r0, [r5, r0]
- cmp r0, #0
- beq _0225A24E
- bl FUN_0200C3DC
- ldr r0, _0225A268 ; =0x00000624
- str r6, [r5, r0]
-_0225A24E:
- ldr r0, _0225A26C ; =0x00000634
- ldr r0, [r5, r0]
- cmp r0, #0
- beq _0225A25E
- bl FUN_0200CAB4
- ldr r0, _0225A26C ; =0x00000634
- str r7, [r5, r0]
-_0225A25E:
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #4
- blt _0225A23E
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0225A268: .word 0x00000624
-_0225A26C: .word 0x00000634
-
- thumb_func_start MOD11_0225A270
-MOD11_0225A270: ; 0x0225A270
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x50
- add r6, r2, #0
- add r4, r0, #0
- str r1, [sp, #0xc]
- str r3, [sp, #0x10]
- cmp r6, #2
- blt _0225A284
- sub r5, r6, #2
- b _0225A286
-_0225A284:
- add r5, r6, #0
-_0225A286:
- lsl r0, r5, #2
- add r1, r4, r0
- ldr r0, _0225A3D0 ; =0x00000624
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0225A296
- bl ErrorHandling
-_0225A296:
- lsl r0, r5, #2
- add r1, r4, r0
- ldr r0, _0225A3D4 ; =0x00000634
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0225A2A6
- bl ErrorHandling
-_0225A2A6:
- cmp r6, #5
- bhi _0225A2CE
- add r0, r6, r6
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0225A2B6: ; jump table
- .short _0225A2C2 - _0225A2B6 - 2 ; case 0
- .short _0225A2CE - _0225A2B6 - 2 ; case 1
- .short _0225A2C2 - _0225A2B6 - 2 ; case 2
- .short _0225A2C6 - _0225A2B6 - 2 ; case 3
- .short _0225A2C2 - _0225A2B6 - 2 ; case 4
- .short _0225A2CA - _0225A2B6 - 2 ; case 5
-_0225A2C2:
- ldr r6, _0225A3D8 ; =0x00004E40
- b _0225A2D8
-_0225A2C6:
- ldr r6, _0225A3DC ; =0x00004E41
- b _0225A2D8
-_0225A2CA:
- ldr r6, _0225A3E0 ; =0x00004E42
- b _0225A2D8
-_0225A2CE:
- bl ErrorHandling
- add sp, #0x50
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0225A2D8:
- ldr r0, [r4]
- bl MOD11_02230078
- str r0, [sp, #0x18]
- ldr r0, [r4]
- bl MOD11_02230080
- str r0, [sp, #0x14]
- ldr r0, [sp, #0xc]
- bl FUN_0206B6C8
- add r3, r0, #0
- mov r0, #0
- str r0, [sp]
- mov r0, #2
- str r0, [sp, #4]
- ldr r0, [sp, #0x18]
- ldr r1, [sp, #0x14]
- mov r2, #0x13
- str r6, [sp, #8]
- bl FUN_0200C00C
- ldr r3, _0225A3E4 ; =0x0225F948
- add r2, sp, #0x1c
- mov r7, #6
-_0225A30A:
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- sub r7, r7, #1
- bne _0225A30A
- ldr r0, [r3]
- lsl r3, r5, #2
- str r0, [r2]
- ldr r2, _0225A3E8 ; =0x0225F76C
- str r6, [sp, #0x30]
- ldrh r1, [r2, r3]
- add r0, sp, #0x1c
- strh r1, [r0]
- add r1, r2, r3
- ldrh r1, [r1, #2]
- add r2, sp, #0x1c
- strh r1, [r0, #2]
- ldr r0, [sp, #0x18]
- ldr r1, [sp, #0x14]
- bl FUN_0200C154
- add r3, sp, #0x1c
- mov r1, #0
- mov r2, #2
- ldrsh r1, [r3, r1]
- ldrsh r2, [r3, r2]
- mov r3, #0x11
- lsl r3, r3, #0x10
- add r6, r0, #0
- bl FUN_0200C750
- ldr r0, [sp, #0xc]
- bl FUN_0206B87C
- add r1, r0, #0
- ldr r0, [r6]
- bl FUN_020202DC
- ldr r0, [sp, #0x10]
- mov r7, #0
- cmp r0, #0
- beq _0225A3A8
- ldr r0, [sp, #0x6c]
- cmp r0, #2
- beq _0225A3A8
- cmp r0, #3
- beq _0225A3A8
- ldr r0, [sp, #0x10]
- ldr r1, [sp, #0x68]
- lsl r0, r0, #0x10
- lsl r1, r1, #0x10
- lsr r0, r0, #0x10
- lsr r1, r1, #0x10
- mov r2, #0x30
- bl FUN_02079A54
- cmp r0, #4
- bhi _0225A3A0
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0225A388: ; jump table
- .short _0225A3A0 - _0225A388 - 2 ; case 0
- .short _0225A39E - _0225A388 - 2 ; case 1
- .short _0225A39A - _0225A388 - 2 ; case 2
- .short _0225A396 - _0225A388 - 2 ; case 3
- .short _0225A392 - _0225A388 - 2 ; case 4
-_0225A392:
- mov r7, #1
- b _0225A3A0
-_0225A396:
- mov r7, #2
- b _0225A3A0
-_0225A39A:
- mov r7, #3
- b _0225A3A0
-_0225A39E:
- mov r7, #4
-_0225A3A0:
- add r0, r6, #0
- add r1, r7, #0
- bl FUN_0200C5C0
-_0225A3A8:
- add r0, r6, #0
- bl FUN_0200C5A8
- lsl r0, r5, #2
- add r1, r4, r0
- ldr r0, _0225A3D0 ; =0x00000624
- ldr r2, _0225A3EC ; =0x00000514
- str r6, [r1, r0]
- ldr r0, _0225A3F0 ; =MOD11_0225A3F4
- add r1, r6, #0
- bl FUN_0200CA44
- lsl r1, r5, #2
- add r2, r4, r1
- ldr r1, _0225A3D4 ; =0x00000634
- str r0, [r2, r1]
- add r0, r6, #0
- add sp, #0x50
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0225A3D0: .word 0x00000624
-_0225A3D4: .word 0x00000634
-_0225A3D8: .word 0x00004E40
-_0225A3DC: .word 0x00004E41
-_0225A3E0: .word 0x00004E42
-_0225A3E4: .word 0x0225F948
-_0225A3E8: .word 0x0225F76C
-_0225A3EC: .word 0x00000514
-_0225A3F0: .word MOD11_0225A3F4
-
- thumb_func_start MOD11_0225A3F4
-MOD11_0225A3F4: ; 0x0225A3F4
- ldr r3, _0225A3FC ; =FUN_0200C5A8
- add r0, r1, #0
- bx r3
- nop
-_0225A3FC: .word FUN_0200C5A8
-
- thumb_func_start MOD11_0225A400
-MOD11_0225A400: ; 0x0225A400
- cmp r0, #3
- bhi _0225A418
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0225A410: ; jump table
- .short _0225A418 - _0225A410 - 2 ; case 0
- .short _0225A41C - _0225A410 - 2 ; case 1
- .short _0225A420 - _0225A410 - 2 ; case 2
- .short _0225A424 - _0225A410 - 2 ; case 3
-_0225A418:
- mov r0, #0
- bx lr
-_0225A41C:
- mov r0, #1
- bx lr
-_0225A420:
- mov r0, #3
- bx lr
-_0225A424:
- mov r0, #2
- bx lr
-
- thumb_func_start MOD11_0225A428
-MOD11_0225A428: ; 0x0225A428
- push {r3, r4, r5, r6, r7, lr}
- add r4, r0, #0
- add r6, r2, #0
- add r0, r1, #0
- add r1, r4, #0
- mov r2, #0
- add r7, r3, #0
- bl FUN_02002E14
- add r4, r0, #0
- asr r1, r4, #2
- lsr r1, r1, #0x1d
- add r1, r4, r1
- asr r5, r1, #3
- mov r1, #8
- bl FX_ModS32
- cmp r0, #0
- beq _0225A450
- add r5, r5, #1
-_0225A450:
- str r4, [r6]
- str r5, [r7]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225A458
-MOD11_0225A458: ; 0x0225A458
- push {r4, r5, r6, r7, lr}
- sub sp, #0x7c
- add r5, r1, #0
- add r7, r0, #0
- ldr r0, [r5]
- str r2, [sp, #0x18]
- str r3, [sp, #0x1c]
- ldr r6, [sp, #0x9c]
- ldr r4, [sp, #0xa8]
- cmp r0, #0
- beq _0225A472
- bl ErrorHandling
-_0225A472:
- ldr r0, [r7]
- bl MOD11_02230080
- str r0, [sp, #0x20]
- ldr r0, [r7]
- bl MOD11_0222FF68
- str r0, [sp, #0x24]
- cmp r4, #0
- bne _0225A494
- ldr r0, [sp, #0x18]
- ldr r1, [sp, #0x1c]
- add r2, sp, #0x2c
- add r3, sp, #0x28
- bl MOD11_0225A428
- b _0225A49C
-_0225A494:
- ldrh r0, [r4, #0x12]
- str r0, [sp, #0x2c]
- ldrh r0, [r4, #0x10]
- str r0, [sp, #0x28]
-_0225A49C:
- cmp r4, #0
- bne _0225A4DA
- add r0, sp, #0x3c
- bl FUN_0201901C
- mov r0, #0
- str r0, [sp]
- str r0, [sp, #4]
- ldr r2, [sp, #0x28]
- ldr r0, [sp, #0x24]
- lsl r2, r2, #0x18
- add r1, sp, #0x3c
- lsr r2, r2, #0x18
- mov r3, #2
- bl FUN_020190EC
- mov r3, #0
- str r3, [sp]
- mov r0, #0xff
- str r0, [sp, #4]
- ldr r0, [sp, #0x90]
- ldr r1, [sp, #0x1c]
- str r0, [sp, #8]
- str r3, [sp, #0xc]
- str r3, [sp, #0x10]
- ldr r2, [sp, #0x18]
- add r0, sp, #0x3c
- str r3, [sp, #0x14]
- bl FUN_0201BE3C
- b _0225A4E6
-_0225A4DA:
- add r3, r4, #0
- add r2, sp, #0x3c
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
-_0225A4E6:
- add r0, sp, #0x3c
- mov r1, #2
- mov r2, #5
- bl FUN_02011898
- mov r1, #1
- mov r2, #2
- add r3, sp, #0x30
- bl FUN_0201D568
- ldr r0, [sp, #0xa4]
- cmp r0, #1
- bne _0225A50A
- ldr r1, [sp, #0x2c]
- lsr r0, r1, #0x1f
- add r0, r1, r0
- asr r0, r0, #1
- sub r6, r6, r0
-_0225A50A:
- ldr r0, _0225A588 ; =0x000004C8
- ldr r0, [r7, r0]
- str r0, [sp, #0x4c]
- add r0, sp, #0x3c
- str r0, [sp, #0x50]
- ldr r0, [sp, #0x20]
- bl FUN_0200CA40
- str r0, [sp, #0x54]
- ldr r0, [sp, #0x20]
- ldr r1, [sp, #0x98]
- bl FUN_0200C334
- str r0, [sp, #0x58]
- mov r0, #0
- ldr r1, [sp, #0x34]
- str r0, [sp, #0x5c]
- str r0, [sp, #0x6c]
- mov r0, #0x64
- str r1, [sp, #0x60]
- mov r1, #0x42
- str r0, [sp, #0x70]
- mov r0, #2
- str r0, [sp, #0x74]
- mov r0, #5
- str r0, [sp, #0x78]
- ldr r2, [sp, #0xa0]
- lsl r1, r1, #2
- add r1, r2, r1
- add r0, sp, #0x4c
- str r6, [sp, #0x64]
- str r1, [sp, #0x68]
- bl FUN_020117E8
- ldr r1, [sp, #0x94]
- add r7, r0, #0
- bl FUN_02011AC0
- mov r2, #0x42
- ldr r3, [sp, #0xa0]
- lsl r2, r2, #2
- add r0, r7, #0
- add r1, r6, #0
- add r2, r3, r2
- bl FUN_020118C4
- cmp r4, #0
- bne _0225A570
- add r0, sp, #0x3c
- bl FUN_02019178
-_0225A570:
- str r7, [r5]
- add r3, sp, #0x30
- ldmia r3!, {r0, r1}
- add r2, r5, #4
- stmia r2!, {r0, r1}
- ldr r0, [r3]
- str r0, [r2]
- ldr r0, [sp, #0x2c]
- strh r0, [r5, #0x10]
- add sp, #0x7c
- pop {r4, r5, r6, r7, pc}
- nop
-_0225A588: .word 0x000004C8
-
- thumb_func_start MOD11_0225A58C
-MOD11_0225A58C: ; 0x0225A58C
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- mov r0, #0x4d
- mov r6, #0
- lsl r0, r0, #4
- add r4, r5, r0
- add r7, r6, #0
-_0225A59A:
- ldr r0, _0225A5BC ; =0x000004CC
- ldr r0, [r5, r0]
- cmp r0, #0
- beq _0225A5B0
- bl FUN_02011870
- add r0, r4, #0
- bl FUN_0201D5E8
- ldr r0, _0225A5BC ; =0x000004CC
- str r7, [r5, r0]
-_0225A5B0:
- add r6, r6, #1
- add r5, #0x14
- add r4, #0x14
- cmp r6, #0xd
- blt _0225A59A
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0225A5BC: .word 0x000004CC
-
- thumb_func_start MOD11_0225A5C0
-MOD11_0225A5C0: ; 0x0225A5C0
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r7, r0, #0
- ldr r0, [r7]
- bl MOD11_0222FF68
- mov r1, #5
- bl FUN_0201886C
- add r4, r0, #0
- add r0, r7, #0
- add r1, sp, #4
- mov r2, #0
- bl MOD11_0225ACD4
- add r0, sp, #0
- ldrb r0, [r0, #4]
- cmp r0, #1
- bne _0225A63A
- add r0, r7, #0
- mov r1, #1
- add r2, sp, #0
- mov r3, #0
- bl MOD11_0225AD2C
- add r0, sp, #0
- ldrb r0, [r0, #2]
- cmp r0, #1
- bne _0225A61E
- mov r5, #0xc
- mov r0, #0xa9
- lsl r6, r5, #5
- lsl r0, r0, #2
- mov r2, #0xf
-_0225A604:
- lsl r1, r6, #1
- add r1, r4, r1
- add r3, r2, #0
- add r1, #0x1e
-_0225A60C:
- add r3, r3, #1
- strh r0, [r1]
- add r1, r1, #2
- cmp r3, #0x10
- ble _0225A60C
- add r5, r5, #1
- add r6, #0x20
- cmp r5, #0x10
- ble _0225A604
-_0225A61E:
- add r0, sp, #0
- ldrb r0, [r0, #3]
- cmp r0, #1
- bne _0225A63A
- mov r0, #0xa1
- lsl r0, r0, #2
- add r1, r4, r0
- mov r2, #2
- add r0, #0x20
-_0225A630:
- add r2, r2, #1
- strh r0, [r1]
- add r1, r1, #2
- cmp r2, #0xc
- ble _0225A630
-_0225A63A:
- add r0, sp, #0
- ldrb r0, [r0, #5]
- cmp r0, #1
- bne _0225A694
- add r0, r7, #0
- mov r1, #2
- add r2, sp, #0
- mov r3, #0
- bl MOD11_0225AD2C
- add r0, sp, #0
- ldrb r0, [r0, #2]
- cmp r0, #1
- bne _0225A668
- ldr r0, _0225A698 ; =0x000002A6
- mov r2, #0x13
- add r1, r4, r0
- sub r0, r0, #2
-_0225A65E:
- add r2, r2, #1
- strh r0, [r1]
- add r1, r1, #2
- cmp r2, #0x1d
- ble _0225A65E
-_0225A668:
- add r0, sp, #0
- ldrb r0, [r0, #3]
- cmp r0, #1
- bne _0225A694
- mov r0, #0xa9
- mov r5, #3
- mov r3, #0x60
- lsl r0, r0, #2
- mov r2, #0xf
-_0225A67A:
- lsl r1, r3, #1
- add r1, r4, r1
- add r6, r2, #0
- add r1, #0x1e
-_0225A682:
- add r6, r6, #1
- strh r0, [r1]
- add r1, r1, #2
- cmp r6, #0x10
- ble _0225A682
- add r5, r5, #1
- add r3, #0x20
- cmp r5, #7
- ble _0225A67A
-_0225A694:
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0225A698: .word 0x000002A6
-
- thumb_func_start MOD11_0225A69C
-MOD11_0225A69C: ; 0x0225A69C
- cmp r1, #2
- blt _0225A6A2
- sub r1, r1, #2
-_0225A6A2:
- mov r2, #0x46
- lsl r2, r2, #2
- add r0, #0x68
- mul r2, r1
- add r0, r0, r2
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_0225A6B0
-MOD11_0225A6B0: ; 0x0225A6B0
- push {r4, r5, r6, r7, lr}
- sub sp, #0x1c
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #0x14]
- ldr r0, [sp]
- mov r1, #0x13
- str r0, [sp, #0x10]
- add r0, #0x90
- str r0, [sp, #0x10]
- ldr r0, [sp]
- lsl r1, r1, #4
- str r0, [sp, #0xc]
- add r0, #0xe0
- str r0, [sp, #0xc]
- ldr r0, [sp]
- add r0, r0, r1
- str r0, [sp, #8]
-_0225A6D4:
- mov r0, #0
- str r0, [sp, #0x18]
- ldr r0, [sp]
- ldr r7, [sp, #0x10]
- ldr r6, [sp, #0xc]
- ldr r5, [sp, #8]
- str r0, [sp, #4]
- add r4, r0, #0
-_0225A6E4:
- ldr r0, [sp, #4]
- add r0, #0x80
- ldr r0, [r0]
- bl FreeToHeap
- add r0, r4, #0
- add r0, #0x9c
- ldr r0, [r0]
- cmp r0, #0
- beq _0225A6FE
- add r0, r7, #0
- bl FUN_02019178
-_0225A6FE:
- add r0, r4, #0
- add r0, #0xec
- ldr r0, [r0]
- cmp r0, #0
- beq _0225A70E
- add r0, r6, #0
- bl FUN_02019178
-_0225A70E:
- mov r0, #0x4f
- lsl r0, r0, #2
- ldr r0, [r4, r0]
- cmp r0, #0
- beq _0225A71E
- add r0, r5, #0
- bl FUN_02019178
-_0225A71E:
- ldr r0, [sp, #4]
- add r4, #0x14
- add r0, r0, #4
- str r0, [sp, #4]
- ldr r0, [sp, #0x18]
- add r7, #0x14
- add r0, r0, #1
- add r6, #0x14
- add r5, #0x14
- str r0, [sp, #0x18]
- cmp r0, #4
- blt _0225A6E4
- mov r0, #0x46
- ldr r1, [sp]
- lsl r0, r0, #2
- add r1, r1, r0
- str r1, [sp]
- ldr r1, [sp, #0x10]
- add r1, r1, r0
- str r1, [sp, #0x10]
- ldr r1, [sp, #0xc]
- add r1, r1, r0
- str r1, [sp, #0xc]
- ldr r1, [sp, #8]
- add r0, r1, r0
- str r0, [sp, #8]
- ldr r0, [sp, #0x14]
- add r0, r0, #1
- str r0, [sp, #0x14]
- cmp r0, #4
- blt _0225A6D4
- add sp, #0x1c
- pop {r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0225A760
-MOD11_0225A760: ; 0x0225A760
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x50
- add r7, r0, #0
- ldr r0, [r7]
- add r5, r1, #0
- str r2, [sp, #8]
- bl MOD11_022300C4
- add r4, r0, #0
- add r0, r7, #0
- add r1, r5, #0
- bl MOD11_0225A69C
- str r0, [sp, #0x38]
- mov r0, #6
- bl FUN_020799E8
- str r0, [sp, #0xc]
- ldr r1, _0225A95C ; =0x000003AA
- add r0, r4, #0
- bl FUN_0200A914
- str r0, [sp, #0x28]
- ldr r0, [r7]
- bl MOD11_02230138
- str r0, [sp, #0x24]
- mov r0, #0x10
- mov r1, #5
- bl FUN_020219F4
- str r0, [sp, #0x30]
- ldr r1, _0225A960 ; =0x000003A9
- add r0, r4, #0
- bl FUN_0200A914
- ldr r4, [sp, #0x38]
- str r0, [sp, #0x2c]
- mov r0, #0
- str r0, [sp, #0x34]
- add r0, r4, #0
- str r0, [sp, #0x1c]
- str r0, [sp, #0x18]
- add r0, #0x28
- str r0, [sp, #0x18]
- add r0, r4, #0
- str r0, [sp, #0x14]
- add r0, #0x78
- str r0, [sp, #0x14]
- add r0, r4, #0
- str r0, [sp, #0x10]
- add r0, #0xc8
- ldr r5, [sp, #8]
- add r6, r4, #0
- str r0, [sp, #0x10]
-_0225A7CE:
- ldrh r0, [r5]
- ldrh r1, [r4]
- cmp r0, r1
- beq _0225A814
- cmp r0, #0
- beq _0225A814
- mov r1, #3
- bl FUN_0206AB18
- str r0, [sp, #0x3c]
- bl FUN_0206E12C
- str r0, [sp, #0x40]
- ldr r0, [sp, #0x3c]
- bl FUN_0206E0F0
- add r1, r0, #0
- mov r0, #5
- str r0, [sp]
- ldr r0, [sp, #0x40]
- mov r2, #1
- add r3, sp, #0x4c
- bl FUN_02006BB0
- str r0, [sp, #0x44]
- ldr r0, [sp, #0x4c]
- ldr r1, [sp, #0x1c]
- ldr r0, [r0, #0x14]
- ldr r1, [r1, #0x18]
- ldr r2, [sp, #0xc]
- bl MIi_CpuCopy32
- ldr r0, [sp, #0x44]
- bl FreeToHeap
-_0225A814:
- ldr r0, [r6, #0x34]
- cmp r0, #0
- beq _0225A826
- ldrh r1, [r5]
- ldrh r0, [r4]
- cmp r1, r0
- beq _0225A846
- cmp r1, #0
- beq _0225A846
-_0225A826:
- ldrh r0, [r5]
- mov r1, #5
- bl FUN_0200AA14
- str r0, [sp, #0x48]
- ldr r0, _0225A964 ; =0x00070809
- ldr r1, [sp, #0x48]
- str r0, [sp]
- ldr r3, [sp, #0x18]
- add r0, r7, #0
- mov r2, #2
- bl MOD11_0225A968
- ldr r0, [sp, #0x48]
- bl FUN_02021A20
-_0225A846:
- add r0, r6, #0
- add r0, #0x84
- ldr r0, [r0]
- cmp r0, #0
- beq _0225A876
- add r0, r6, #0
- add r0, #0xd4
- ldr r0, [r0]
- cmp r0, #0
- beq _0225A876
- ldrh r1, [r5]
- cmp r1, #0
- bne _0225A876
- ldrh r0, [r4]
- cmp r1, r0
- bne _0225A876
- ldrh r1, [r5, #8]
- ldrh r0, [r4, #8]
- cmp r1, r0
- bne _0225A876
- ldrh r1, [r5, #0x10]
- ldrh r0, [r4, #0x10]
- cmp r1, r0
- beq _0225A906
-_0225A876:
- mov r0, #1
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- ldrh r2, [r5, #8]
- ldr r0, [sp, #0x24]
- mov r1, #0
- mov r3, #2
- bl FUN_0200AD38
- mov r0, #1
- str r0, [sp]
- mov r0, #0
- str r0, [sp, #4]
- ldrh r2, [r5, #0x10]
- ldr r0, [sp, #0x24]
- mov r1, #1
- mov r3, #2
- bl FUN_0200AD38
- ldr r0, [sp, #0x24]
- ldr r1, [sp, #0x30]
- ldr r2, [sp, #0x2c]
- bl FUN_0200B7B8
- ldrh r0, [r5, #8]
- ldrh r1, [r5, #0x10]
- bl MOD11_0225B3D4
- str r0, [sp, #0x20]
- add r0, r6, #0
- add r0, #0x84
- ldr r0, [r0]
- cmp r0, #0
- beq _0225A8CC
- ldrh r1, [r5]
- ldrh r0, [r4]
- cmp r1, r0
- bne _0225A8CC
- ldrh r1, [r5, #8]
- ldrh r0, [r4, #8]
- cmp r1, r0
- beq _0225A8DC
-_0225A8CC:
- ldr r0, [sp, #0x20]
- ldr r1, [sp, #0x30]
- str r0, [sp]
- ldr r3, [sp, #0x14]
- add r0, r7, #0
- mov r2, #0
- bl MOD11_0225A968
-_0225A8DC:
- add r0, r6, #0
- add r0, #0xd4
- ldr r0, [r0]
- cmp r0, #0
- beq _0225A8F6
- ldrh r1, [r5]
- ldrh r0, [r4]
- cmp r1, r0
- bne _0225A8F6
- ldrh r1, [r5, #8]
- ldrh r0, [r4, #8]
- cmp r1, r0
- beq _0225A906
-_0225A8F6:
- ldr r0, [sp, #0x20]
- ldr r1, [sp, #0x28]
- str r0, [sp]
- ldr r3, [sp, #0x10]
- add r0, r7, #0
- mov r2, #0
- bl MOD11_0225A968
-_0225A906:
- ldr r0, [sp, #0x1c]
- add r4, r4, #2
- add r0, r0, #4
- str r0, [sp, #0x1c]
- ldr r0, [sp, #0x18]
- add r5, r5, #2
- add r0, #0x14
- str r0, [sp, #0x18]
- ldr r0, [sp, #0x14]
- add r6, #0x14
- add r0, #0x14
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x10]
- add r0, #0x14
- str r0, [sp, #0x10]
- ldr r0, [sp, #0x34]
- add r0, r0, #1
- str r0, [sp, #0x34]
- cmp r0, #4
- bge _0225A930
- b _0225A7CE
-_0225A930:
- ldr r0, [sp, #0x28]
- bl FUN_02021A20
- ldr r0, [sp, #0x2c]
- bl FUN_02021A20
- ldr r0, [sp, #0x30]
- bl FUN_02021A20
- mov r0, #0xc
-_0225A944:
- ldr r1, [sp, #8]
- ldrh r2, [r1]
- add r1, r1, #2
- str r1, [sp, #8]
- ldr r1, [sp, #0x38]
- strh r2, [r1]
- add r1, r1, #2
- str r1, [sp, #0x38]
- sub r0, r0, #1
- bne _0225A944
- add sp, #0x50
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0225A95C: .word 0x000003AA
-_0225A960: .word 0x000003A9
-_0225A964: .word 0x00070809
-
- thumb_func_start MOD11_0225A968
-MOD11_0225A968: ; 0x0225A968
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x20
- add r7, r2, #0
- add r6, r1, #0
- add r5, r0, #0
- add r4, r3, #0
- add r0, r6, #0
- add r1, r7, #0
- add r2, sp, #0x1c
- add r3, sp, #0x18
- bl MOD11_0225A428
- ldr r0, [sp, #0x1c]
- strh r0, [r4, #0x12]
- ldr r0, [sp, #0x18]
- strh r0, [r4, #0x10]
- ldr r0, [r4, #0xc]
- cmp r0, #0
- beq _0225A994
- add r0, r4, #0
- bl FUN_02019178
-_0225A994:
- add r0, r4, #0
- bl FUN_0201901C
- ldr r0, [r5]
- bl MOD11_0222FF68
- mov r1, #0
- str r1, [sp]
- str r1, [sp, #4]
- ldr r2, [sp, #0x18]
- add r1, r4, #0
- lsl r2, r2, #0x18
- lsr r2, r2, #0x18
- mov r3, #2
- bl FUN_020190EC
- mov r3, #0
- str r3, [sp]
- mov r0, #0xff
- str r0, [sp, #4]
- ldr r0, [sp, #0x38]
- add r1, r7, #0
- str r0, [sp, #8]
- str r3, [sp, #0xc]
- str r3, [sp, #0x10]
- add r0, r4, #0
- add r2, r6, #0
- str r3, [sp, #0x14]
- bl FUN_0201BE3C
- add sp, #0x20
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0225A9D4
-MOD11_0225A9D4: ; 0x0225A9D4
- push {r4, r5, r6, r7, lr}
- sub sp, #0x44
- add r5, r0, #0
- str r0, [sp, #4]
- add r0, #0x18
- str r0, [sp, #4]
- ldr r0, [r5]
- bl MOD11_02230078
- str r0, [sp, #0xc]
- ldr r0, [r5]
- bl MOD11_02230080
- ldr r1, _0225AAA8 ; =0x0000069E
- str r0, [sp, #8]
- ldrb r1, [r5, r1]
- add r0, r5, #0
- bl MOD11_0225A69C
- ldr r4, _0225AAAC ; =0x0225F914
- str r0, [sp]
- add r3, sp, #0x10
- mov r2, #6
-_0225AA02:
- ldmia r4!, {r0, r1}
- stmia r3!, {r0, r1}
- sub r2, r2, #1
- bne _0225AA02
- ldr r0, [r4]
- mov r4, #0
- str r0, [r3]
- add r6, sp, #0x10
- b _0225AAA0
-_0225AA14:
- lsl r0, r4, #2
- add r1, r5, r0
- ldr r0, _0225AAB0 ; =0x00000604
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0225AA24
- bl ErrorHandling
-_0225AA24:
- ldr r0, [sp, #4]
- lsl r1, r4, #1
- ldrh r0, [r0, r1]
- cmp r0, #0
- beq _0225AA9E
- mov r1, #3
- bl FUN_0206AB18
- add r2, r0, #0
- ldr r0, _0225AAB4 ; =0x00004E35
- ldr r1, _0225AAB8 ; =0x0225F72C
- add r0, r4, r0
- str r0, [sp, #0x24]
- lsl r0, r4, #2
- ldrh r1, [r1, r0]
- add r3, sp, #0x10
- strh r1, [r6]
- ldr r1, _0225AAB8 ; =0x0225F72C
- add r0, r1, r0
- ldrh r0, [r0, #2]
- ldr r1, [sp, #8]
- strh r0, [r6, #2]
- ldr r0, [sp, #0xc]
- bl FUN_0206E240
- lsl r1, r4, #2
- add r2, r5, r1
- ldr r1, _0225AAB0 ; =0x00000604
- mov r3, #0x11
- str r0, [r2, r1]
- add r0, r1, #0
- ldr r0, [r2, r0]
- mov r1, #0
- mov r2, #2
- ldrsh r1, [r6, r1]
- ldrsh r2, [r6, r2]
- lsl r3, r3, #0x10
- bl FUN_0200C750
- lsl r0, r4, #2
- add r1, r5, r0
- ldr r0, _0225AAB0 ; =0x00000604
- ldr r0, [r1, r0]
- ldr r0, [r0]
- bl FUN_02020350
- add r7, r0, #0
- mov r0, #6
- bl FUN_020799E8
- add r2, r0, #0
- ldr r0, [sp]
- lsl r3, r4, #2
- add r0, r0, r3
- mov r3, #0x66
- ldr r1, [r7, #8]
- lsl r3, r3, #0x14
- ldr r0, [r0, #0x18]
- add r1, r3, r1
- bl MIi_CpuCopy16
-_0225AA9E:
- add r4, r4, #1
-_0225AAA0:
- cmp r4, #4
- blt _0225AA14
- add sp, #0x44
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0225AAA8: .word 0x0000069E
-_0225AAAC: .word 0x0225F914
-_0225AAB0: .word 0x00000604
-_0225AAB4: .word 0x00004E35
-_0225AAB8: .word 0x0225F72C
-
- thumb_func_start MOD11_0225AABC
-MOD11_0225AABC: ; 0x0225AABC
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- ldr r0, [r5]
- bl MOD11_02230078
- ldr r0, [r5]
- bl MOD11_02230080
- mov r4, #0
- ldr r7, _0225AAEC ; =0x00000604
- add r6, r4, #0
-_0225AAD2:
- ldr r0, [r5, r7]
- cmp r0, #0
- beq _0225AAE0
- bl FUN_0206E270
- ldr r0, _0225AAEC ; =0x00000604
- str r6, [r5, r0]
-_0225AAE0:
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #4
- blt _0225AAD2
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0225AAEC: .word 0x00000604
-
- thumb_func_start MOD11_0225AAF0
-MOD11_0225AAF0: ; 0x0225AAF0
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- ldr r0, [r5]
- bl MOD11_02230078
- ldr r0, [r5]
- bl MOD11_02230080
- mov r4, #0
- add r6, r0, #0
- add r7, r4, #0
-_0225AB06:
- ldr r0, _0225AB2C ; =0x00000614
- ldr r0, [r5, r0]
- cmp r0, #0
- beq _0225AB20
- bl FUN_0206E2E8
- ldr r1, _0225AB30 ; =0x00004E39
- add r0, r6, #0
- add r1, r4, r1
- bl FUN_0206E2E0
- ldr r0, _0225AB2C ; =0x00000614
- str r7, [r5, r0]
-_0225AB20:
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #4
- blt _0225AB06
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0225AB2C: .word 0x00000614
-_0225AB30: .word 0x00004E39
-
- thumb_func_start MOD11_0225AB34
-MOD11_0225AB34: ; 0x0225AB34
- push {r3, r4, r5, lr}
- ldr r0, [r0]
- add r5, r1, #0
- add r4, r2, #0
- bl MOD11_022300CC
- add r4, #8
- add r1, r5, #0
- mov r2, #5
- mov r3, #1
- str r4, [sp]
- bl MOD08_02211E7C
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_0225AB50
-MOD11_0225AB50: ; 0x0225AB50
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- ldr r0, [r5]
- add r4, r1, #0
- bl MOD11_022300CC
- add r6, r0, #0
- mov r7, #0
- b _0225AB96
-_0225AB62:
- ldr r1, _0225AB9C ; =0x0225F6A8
- lsl r2, r4, #1
- add r1, r1, r2
- ldr r2, _0225ABA0 ; =0x0225F74C
- lsl r3, r4, #2
- add r2, r2, r3
- add r0, r5, #0
- mov r3, #3
- str r7, [sp]
- bl MOD11_0225ADD8
- mov r0, #0x20
- str r0, [sp]
- add r3, r4, #0
- mov r1, #7
- add r3, #8
- lsl r3, r3, #0x14
- ldr r2, [r5, #0x58]
- lsl r1, r1, #6
- add r1, r2, r1
- add r0, r6, #0
- mov r2, #1
- lsr r3, r3, #0x10
- bl FUN_02003054
- add r4, r4, #1
-_0225AB96:
- cmp r4, #4
- blt _0225AB62
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0225AB9C: .word 0x0225F6A8
-_0225ABA0: .word 0x0225F74C
-
- thumb_func_start MOD11_0225ABA4
-MOD11_0225ABA4: ; 0x0225ABA4
- push {r4, r5, r6, r7, lr}
- sub sp, #0x14
- add r4, r1, #0
- ldr r1, _0225AC50 ; =0x0225F684
- add r5, r0, #0
- ldrb r2, [r1, #6]
- add r0, sp, #0x10
- strb r2, [r0]
- ldrb r2, [r1, #7]
- strb r2, [r0, #1]
- ldrb r2, [r1, #8]
- ldrb r1, [r1, #9]
- strb r2, [r0, #2]
- strb r1, [r0, #3]
- ldr r0, [r5]
- bl MOD11_0222FF68
- add r6, r0, #0
- ldr r0, [r5]
- bl MOD11_022300CC
- add r7, r0, #0
- mov r0, #0
- str r0, [sp]
- ldr r2, _0225AC54 ; =0x0225F6C0
- lsl r1, r4, #1
- add r1, r2, r1
- ldr r3, _0225AC58 ; =0x0225F71C
- lsl r2, r4, #2
- add r2, r3, r2
- add r0, r5, #0
- mov r3, #4
- bl MOD11_0225ADD8
- mov r0, #0x20
- str r0, [sp]
- add r3, sp, #0x10
- ldrb r3, [r3, r4]
- mov r1, #7
- ldr r2, [r5, #0x58]
- lsl r1, r1, #6
- lsl r3, r3, #0x14
- add r1, r2, r1
- add r0, r7, #0
- mov r2, #1
- lsr r3, r3, #0x10
- bl FUN_02003054
- add r0, r6, #0
- mov r1, #4
- bl FUN_0201AC68
- ldr r0, _0225AC58 ; =0x0225F71C
- lsl r1, r4, #2
- ldrb r2, [r0, r1]
- add r3, r0, r1
- str r2, [sp]
- ldrb r4, [r3, #3]
- ldrb r2, [r3, #2]
- sub r2, r4, r2
- add r2, r2, #1
- lsl r2, r2, #0x18
- lsr r2, r2, #0x18
- str r2, [sp, #4]
- ldrb r0, [r0, r1]
- ldrb r2, [r3, #1]
- mov r1, #5
- sub r0, r2, r0
- add r0, r0, #1
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp, #8]
- mov r0, #0x11
- str r0, [sp, #0xc]
- ldrb r3, [r3, #2]
- ldr r2, _0225AC5C ; =0x000002FF
- add r0, r6, #0
- bl FUN_02018540
- add r0, r6, #0
- mov r1, #5
- bl FUN_0201AC68
- add sp, #0x14
- pop {r4, r5, r6, r7, pc}
- nop
-_0225AC50: .word 0x0225F684
-_0225AC54: .word 0x0225F6C0
-_0225AC58: .word 0x0225F71C
-_0225AC5C: .word 0x000002FF
-
- thumb_func_start MOD11_0225AC60
-MOD11_0225AC60: ; 0x0225AC60
- push {r4, r5, r6, lr}
- mov r5, #0
- mov r6, #1
- add r4, r5, #0
-_0225AC68:
- add r0, r5, #4
- cmp r0, #6
- beq _0225AC7A
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- add r1, r4, #0
- bl FUN_0201797C
- b _0225AC84
-_0225AC7A:
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- add r1, r6, #0
- bl FUN_0201797C
-_0225AC84:
- add r5, r5, #1
- cmp r5, #4
- blt _0225AC68
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_0225AC8C
-MOD11_0225AC8C: ; 0x0225AC8C
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r2, #0
- cmp r1, #1
- bne _0225AC9A
- bl MOD11_0225ACB0
-_0225AC9A:
- cmp r4, #1
- bne _0225ACA8
- ldr r0, _0225ACAC ; =MOD11_0225B76C
- add r1, r5, #0
- mov r2, #0xa
- bl FUN_0200CA98
-_0225ACA8:
- pop {r3, r4, r5, pc}
- nop
-_0225ACAC: .word MOD11_0225B76C
-
- thumb_func_start MOD11_0225ACB0
-MOD11_0225ACB0: ; 0x0225ACB0
- push {r4, lr}
- add r4, r0, #0
- bl MOD11_0225AABC
- add r0, r4, #0
- bl MOD11_0225AAF0
- add r0, r4, #0
- bl MOD11_0225A58C
- add r0, r4, #0
- bl MOD11_0225A1E4
- add r0, r4, #0
- bl MOD11_0225A234
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225ACD4
-MOD11_0225ACD4: ; 0x0225ACD4
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r0, #0
- ldr r0, [r5]
- add r4, r1, #0
- add r6, r5, #0
- add r1, sp, #0
- add r7, r2, #0
- add r6, #0x18
- bl MOD11_022314E0
- mov r0, #0
- b _0225AD1E
-_0225ACEE:
- add r2, r0, #2
- add r1, sp, #0
- ldrb r1, [r1, r2]
- cmp r7, #1
- bne _0225AD0A
- lsl r1, r1, #3
- add r1, r6, r1
- ldrb r1, [r1, #1]
- lsl r1, r1, #0x1d
- lsr r1, r1, #0x1f
- bne _0225AD0A
- mov r1, #0
- strb r1, [r4, r0]
- b _0225AD1C
-_0225AD0A:
- mov r1, #0x6a
- lsl r1, r1, #4
- ldrb r1, [r5, r1]
- lsl r2, r0, #2
- lsl r3, r1, #4
- ldr r1, _0225AD28 ; =0x0225F9EC
- add r1, r1, r3
- ldr r1, [r2, r1]
- strb r1, [r4, r0]
-_0225AD1C:
- add r0, r0, #1
-_0225AD1E:
- cmp r0, #4
- blt _0225ACEE
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0225AD28: .word 0x0225F9EC
-
- thumb_func_start MOD11_0225AD2C
-MOD11_0225AD2C: ; 0x0225AD2C
- push {r4, lr}
- mov r4, #0x6a
- lsl r4, r4, #4
- ldrb r4, [r0, r4]
- cmp r4, #0xb
- bhi _0225AD76
- add r4, r4, r4
- add r4, pc
- ldrh r4, [r4, #6]
- lsl r4, r4, #0x10
- asr r4, r4, #0x10
- add pc, r4
-_0225AD44: ; jump table
- .short _0225AD5C - _0225AD44 - 2 ; case 0
- .short _0225AD76 - _0225AD44 - 2 ; case 1
- .short _0225AD76 - _0225AD44 - 2 ; case 2
- .short _0225AD76 - _0225AD44 - 2 ; case 3
- .short _0225AD76 - _0225AD44 - 2 ; case 4
- .short _0225AD76 - _0225AD44 - 2 ; case 5
- .short _0225AD76 - _0225AD44 - 2 ; case 6
- .short _0225AD76 - _0225AD44 - 2 ; case 7
- .short _0225AD5C - _0225AD44 - 2 ; case 8
- .short _0225AD5C - _0225AD44 - 2 ; case 9
- .short _0225AD5C - _0225AD44 - 2 ; case 10
- .short _0225AD5C - _0225AD44 - 2 ; case 11
-_0225AD5C:
- mov r4, #0
- add r0, r4, #0
- mov r3, #1
- sub r1, r1, #1
-_0225AD64:
- cmp r4, r1
- bne _0225AD6C
- strb r3, [r2, r4]
- b _0225AD6E
-_0225AD6C:
- strb r0, [r2, r4]
-_0225AD6E:
- add r4, r4, #1
- cmp r4, #4
- blt _0225AD64
- pop {r4, pc}
-_0225AD76:
- add r1, r2, #0
- add r2, r3, #0
- bl MOD11_0225ACD4
- pop {r4, pc}
-
- thumb_func_start MOD11_0225AD80
-MOD11_0225AD80: ; 0x0225AD80
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #0
- beq _0225AD90
- bl ErrorHandling
-_0225AD90:
- mov r0, #0x6b
- lsl r0, r0, #4
- add r0, r4, r0
- mov r1, #0
- mov r2, #0x24
- bl MI_CpuFill8
- ldr r2, _0225ADAC ; =0x00000514
- add r0, r5, #0
- add r1, r4, #0
- bl FUN_0200CA44
- str r0, [r4, #8]
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0225ADAC: .word 0x00000514
-
- thumb_func_start MOD11_0225ADB0
-MOD11_0225ADB0: ; 0x0225ADB0
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #8]
- cmp r0, #0
- beq _0225ADCE
- bl FUN_0200CAB4
- mov r0, #0x6b
- lsl r0, r0, #4
- mov r1, #0
- add r0, r4, r0
- mov r2, #0x24
- str r1, [r4, #8]
- bl MI_CpuFill8
-_0225ADCE:
- pop {r4, pc}
-
- thumb_func_start MOD11_0225ADD0
-MOD11_0225ADD0: ; 0x0225ADD0
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_0225ADD4
-MOD11_0225ADD4: ; 0x0225ADD4
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_0225ADD8
-MOD11_0225ADD8: ; 0x0225ADD8
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #8
- add r5, r0, #0
- ldr r0, [r5]
- add r6, r1, #0
- add r4, r2, #0
- add r7, r3, #0
- bl MOD11_0222FF68
- mov r1, #4
- str r0, [sp, #4]
- bl FUN_0201886C
- mov ip, r0
- lsl r0, r7, #2
- add r0, r5, r0
- ldr r0, [r0, #0x3c]
- ldrb r7, [r4]
- str r0, [sp]
- ldr r0, [sp, #0x20]
- lsl r0, r0, #1
- ldrsh r1, [r6, r0]
- ldrb r0, [r4, #1]
- cmp r7, r0
- bgt _0225AE40
- lsl r6, r7, #5
-_0225AE0C:
- lsl r2, r6, #1
- mov r0, ip
- add r5, r0, r2
- ldr r0, [sp]
- ldrb r3, [r4, #3]
- add r2, r0, r2
- ldrb r0, [r4, #2]
- cmp r0, r3
- bgt _0225AE36
- lsl r3, r0, #1
- add r2, r2, r3
- add r3, r5, r3
-_0225AE24:
- ldrh r5, [r2]
- add r0, r0, #1
- add r2, r2, #2
- add r5, r1, r5
- strh r5, [r3]
- ldrb r5, [r4, #3]
- add r3, r3, #2
- cmp r0, r5
- ble _0225AE24
-_0225AE36:
- ldrb r0, [r4, #1]
- add r7, r7, #1
- add r6, #0x20
- cmp r7, r0
- ble _0225AE0C
-_0225AE40:
- ldr r0, [sp, #4]
- mov r1, #4
- bl FUN_0201AC68
- add sp, #8
- pop {r3, r4, r5, r6, r7, pc}
-
- thumb_func_start MOD11_0225AE4C
-MOD11_0225AE4C: ; 0x0225AE4C
- push {r3, r4, lr}
- sub sp, #0xc
- add r4, r1, #0
- ldr r0, [r4]
- bl MOD11_0222FF68
- mov r3, #0x6b
- lsl r3, r3, #4
- ldrsh r0, [r4, r3]
- cmp r0, #0
- beq _0225AE6C
- cmp r0, #1
- beq _0225AEDC
- cmp r0, #2
- beq _0225AEF8
- b _0225AF66
-_0225AE6C:
- mov r0, #2
- str r0, [sp]
- add r1, r3, #4
- add r2, r3, #0
- add r3, #0x10
- add r2, #8
- ldrb r3, [r4, r3]
- ldr r1, [r4, r1]
- ldr r2, [r4, r2]
- add r0, r4, #0
- bl MOD11_0225ADD8
- ldr r0, _0225AF8C ; =0x000006C1
- add r2, sp, #4
- ldrb r1, [r4, r0]
- mov r0, #0x14
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0225AF90 ; =0x000004CC
- ldr r0, [r1, r0]
- add r1, sp, #8
- bl FUN_020119A4
- ldr r0, _0225AF8C ; =0x000006C1
- ldr r2, [sp, #4]
- ldrb r1, [r4, r0]
- mov r0, #0x14
- sub r2, r2, #2
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0225AF90 ; =0x000004CC
- ldr r0, [r1, r0]
- ldr r1, [sp, #8]
- bl FUN_020118C4
- ldr r0, _0225AF94 ; =0x000006C2
- ldrb r1, [r4, r0]
- cmp r1, #0xff
- beq _0225AECE
- lsl r1, r1, #2
- add r1, r4, r1
- sub r0, #0x9e
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0225AECE
- mov r1, #0
- sub r2, r1, #2
- bl FUN_0200C82C
-_0225AECE:
- mov r0, #0x6b
- lsl r0, r0, #4
- ldrsh r1, [r4, r0]
- add sp, #0xc
- add r1, r1, #1
- strh r1, [r4, r0]
- pop {r3, r4, pc}
-_0225AEDC:
- add r0, r3, #2
- ldrsh r0, [r4, r0]
- add r1, r0, #1
- add r0, r3, #2
- strh r1, [r4, r0]
- ldrsh r0, [r4, r0]
- cmp r0, #0
- ble _0225AF86
- mov r1, #0
- add r0, r3, #2
- strh r1, [r4, r0]
- ldrsh r0, [r4, r3]
- add r0, r0, #1
- strh r0, [r4, r3]
-_0225AEF8:
- mov r0, #1
- ldr r3, _0225AF98 ; =0x000006B4
- str r0, [sp]
- add r2, r3, #4
- ldr r1, [r4, r3]
- add r3, #0xc
- ldrb r3, [r4, r3]
- ldr r2, [r4, r2]
- add r0, r4, #0
- bl MOD11_0225ADD8
- ldr r0, _0225AF8C ; =0x000006C1
- add r2, sp, #4
- ldrb r1, [r4, r0]
- mov r0, #0x14
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0225AF90 ; =0x000004CC
- ldr r0, [r1, r0]
- add r1, sp, #8
- bl FUN_020119A4
- ldr r0, _0225AF8C ; =0x000006C1
- ldr r2, [sp, #4]
- ldrb r1, [r4, r0]
- mov r0, #0x14
- add r2, r2, #1
- mul r0, r1
- add r1, r4, r0
- ldr r0, _0225AF90 ; =0x000004CC
- ldr r0, [r1, r0]
- ldr r1, [sp, #8]
- bl FUN_020118C4
- ldr r0, _0225AF94 ; =0x000006C2
- ldrb r1, [r4, r0]
- cmp r1, #0xff
- beq _0225AF58
- lsl r1, r1, #2
- add r1, r4, r1
- sub r0, #0x9e
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0225AF58
- mov r1, #0
- mov r2, #1
- bl FUN_0200C82C
-_0225AF58:
- mov r0, #0x6b
- lsl r0, r0, #4
- ldrsh r1, [r4, r0]
- add sp, #0xc
- add r1, r1, #1
- strh r1, [r4, r0]
- pop {r3, r4, pc}
-_0225AF66:
- add r0, r3, #2
- ldrsh r0, [r4, r0]
- add r1, r0, #1
- add r0, r3, #2
- strh r1, [r4, r0]
- ldrsh r0, [r4, r0]
- cmp r0, #0
- ble _0225AF86
- add r0, r4, #0
- mov r1, #1
- mov r2, #0
- bl MOD11_0225AC8C
- add r0, r4, #0
- bl MOD11_0225ADB0
-_0225AF86:
- add sp, #0xc
- pop {r3, r4, pc}
- nop
-_0225AF8C: .word 0x000006C1
-_0225AF90: .word 0x000004CC
-_0225AF94: .word 0x000006C2
-_0225AF98: .word 0x000006B4
-
- thumb_func_start MOD11_0225AF9C
-MOD11_0225AF9C: ; 0x0225AF9C
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- add r4, r1, #0
- ldr r0, [r4]
- bl MOD11_0222FF68
- ldr r0, _0225B21C ; =0x000006BC
- add r1, r4, #0
- ldr r0, [r4, r0]
- add r1, #0x18
- cmp r0, #4
- bgt _0225AFCE
- cmp r0, #0
- blt _0225B00A
- add r2, r0, r0
- add r2, pc
- ldrh r2, [r2, #6]
- lsl r2, r2, #0x10
- asr r2, r2, #0x10
- add pc, r2
-_0225AFC4: ; jump table
- .short _0225B00A - _0225AFC4 - 2 ; case 0
- .short _0225AFD2 - _0225AFC4 - 2 ; case 1
- .short _0225AFE0 - _0225AFC4 - 2 ; case 2
- .short _0225AFEE - _0225AFC4 - 2 ; case 3
- .short _0225AFFC - _0225AFC4 - 2 ; case 4
-_0225AFCE:
- cmp r0, #0xff
- b _0225B00A
-_0225AFD2:
- mov r0, #5
- str r0, [sp, #8]
- ldrh r0, [r1]
- mov r5, #0
- mov r6, #9
- str r0, [sp, #4]
- b _0225B012
-_0225AFE0:
- mov r0, #6
- str r0, [sp, #8]
- ldrh r0, [r1, #2]
- mov r5, #1
- mov r6, #0xa
- str r0, [sp, #4]
- b _0225B012
-_0225AFEE:
- mov r0, #7
- str r0, [sp, #8]
- ldrh r0, [r1, #4]
- mov r5, #2
- mov r6, #0xb
- str r0, [sp, #4]
- b _0225B012
-_0225AFFC:
- mov r0, #8
- str r0, [sp, #8]
- ldrh r0, [r1, #6]
- mov r5, #3
- mov r6, #0xc
- str r0, [sp, #4]
- b _0225B012
-_0225B00A:
- mov r5, #0
- add r6, r5, #0
- str r5, [sp, #8]
- str r5, [sp, #4]
-_0225B012:
- mov r3, #0x6b
- lsl r3, r3, #4
- ldrsh r0, [r4, r3]
- cmp r0, #0
- beq _0225B026
- cmp r0, #1
- beq _0225B100
- cmp r0, #2
- beq _0225B11E
- b _0225B1F6
-_0225B026:
- mov r0, #2
- str r0, [sp]
- add r1, r3, #4
- add r2, r3, #0
- add r3, #0x10
- add r2, #8
- ldrb r3, [r4, r3]
- ldr r1, [r4, r1]
- ldr r2, [r4, r2]
- add r0, r4, #0
- bl MOD11_0225ADD8
- ldr r0, _0225B21C ; =0x000006BC
- add r1, sp, #0x20
- ldr r0, [r4, r0]
- cmp r0, #0xff
- beq _0225B0DA
- ldr r0, _0225B220 ; =0x000004CC
- add r2, sp, #0x1c
- add r7, r4, r0
- mov r0, #0x14
- mul r0, r5
- str r0, [sp, #0xc]
- ldr r0, [r7, r0]
- bl FUN_020119A4
- ldr r0, [sp, #0xc]
- ldr r2, [sp, #0x1c]
- ldr r0, [r7, r0]
- ldr r1, [sp, #0x20]
- sub r2, r2, #2
- bl FUN_020118C4
- ldr r0, _0225B220 ; =0x000004CC
- add r1, sp, #0x20
- add r7, r4, r0
- mov r0, #0x14
- mul r0, r6
- str r0, [sp, #0x10]
- ldr r0, [r7, r0]
- add r2, sp, #0x1c
- bl FUN_020119A4
- ldr r0, [sp, #0x10]
- ldr r2, [sp, #0x1c]
- ldr r0, [r7, r0]
- ldr r1, [sp, #0x20]
- sub r2, r2, #2
- bl FUN_020118C4
- ldr r0, _0225B220 ; =0x000004CC
- mov r1, #0x14
- add r6, r4, r0
- ldr r0, [sp, #8]
- add r2, sp, #0x1c
- add r7, r0, #0
- mul r7, r1
- ldr r0, [r6, r7]
- add r1, sp, #0x20
- bl FUN_020119A4
- ldr r2, [sp, #0x1c]
- ldr r0, [r6, r7]
- ldr r1, [sp, #0x20]
- sub r2, r2, #2
- bl FUN_020118C4
- ldr r0, [sp, #4]
- cmp r0, #0
- beq _0225B0F2
- lsl r5, r5, #2
- ldr r0, _0225B224 ; =0x00000604
- add r1, r4, r5
- ldr r0, [r1, r0]
- mov r1, #0
- ldr r0, [r0]
- sub r2, r1, #2
- bl FUN_0200C7FC
- ldr r0, _0225B228 ; =0x00000614
- add r1, r4, r5
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0225B0F2
- mov r1, #0
- ldr r0, [r0]
- sub r2, r1, #2
- bl FUN_0200C7FC
- b _0225B0F2
-_0225B0DA:
- ldr r0, _0225B22C ; =0x0000051C
- add r2, sp, #0x1c
- ldr r0, [r4, r0]
- bl FUN_020119A4
- ldr r0, _0225B22C ; =0x0000051C
- ldr r2, [sp, #0x1c]
- ldr r0, [r4, r0]
- ldr r1, [sp, #0x20]
- sub r2, r2, #2
- bl FUN_020118C4
-_0225B0F2:
- mov r0, #0x6b
- lsl r0, r0, #4
- ldrsh r1, [r4, r0]
- add sp, #0x24
- add r1, r1, #1
- strh r1, [r4, r0]
- pop {r4, r5, r6, r7, pc}
-_0225B100:
- add r0, r3, #2
- ldrsh r0, [r4, r0]
- add r1, r0, #1
- add r0, r3, #2
- strh r1, [r4, r0]
- ldrsh r0, [r4, r0]
- cmp r0, #0
- bgt _0225B112
- b _0225B216
-_0225B112:
- mov r1, #0
- add r0, r3, #2
- strh r1, [r4, r0]
- ldrsh r0, [r4, r3]
- add r0, r0, #1
- strh r0, [r4, r3]
-_0225B11E:
- mov r0, #1
- ldr r3, _0225B230 ; =0x000006B4
- str r0, [sp]
- add r2, r3, #4
- ldr r1, [r4, r3]
- add r3, #0xc
- ldrb r3, [r4, r3]
- ldr r2, [r4, r2]
- add r0, r4, #0
- bl MOD11_0225ADD8
- ldr r0, _0225B21C ; =0x000006BC
- add r1, sp, #0x20
- ldr r0, [r4, r0]
- cmp r0, #0xff
- beq _0225B1D0
- ldr r0, _0225B220 ; =0x000004CC
- add r2, sp, #0x1c
- add r7, r4, r0
- mov r0, #0x14
- mul r0, r5
- str r0, [sp, #0x14]
- ldr r0, [r7, r0]
- bl FUN_020119A4
- ldr r0, [sp, #0x14]
- ldr r2, [sp, #0x1c]
- ldr r0, [r7, r0]
- ldr r1, [sp, #0x20]
- add r2, r2, #1
- bl FUN_020118C4
- ldr r0, _0225B220 ; =0x000004CC
- add r1, sp, #0x20
- add r7, r4, r0
- mov r0, #0x14
- mul r0, r6
- str r0, [sp, #0x18]
- ldr r0, [r7, r0]
- add r2, sp, #0x1c
- bl FUN_020119A4
- ldr r0, [sp, #0x18]
- ldr r2, [sp, #0x1c]
- ldr r0, [r7, r0]
- ldr r1, [sp, #0x20]
- add r2, r2, #1
- bl FUN_020118C4
- ldr r0, _0225B220 ; =0x000004CC
- mov r1, #0x14
- add r6, r4, r0
- ldr r0, [sp, #8]
- add r2, sp, #0x1c
- add r7, r0, #0
- mul r7, r1
- ldr r0, [r6, r7]
- add r1, sp, #0x20
- bl FUN_020119A4
- ldr r2, [sp, #0x1c]
- ldr r0, [r6, r7]
- ldr r1, [sp, #0x20]
- add r2, r2, #1
- bl FUN_020118C4
- ldr r0, [sp, #4]
- cmp r0, #0
- beq _0225B1E8
- lsl r5, r5, #2
- ldr r0, _0225B224 ; =0x00000604
- add r1, r4, r5
- ldr r0, [r1, r0]
- mov r1, #0
- ldr r0, [r0]
- mov r2, #1
- bl FUN_0200C7FC
- ldr r0, _0225B228 ; =0x00000614
- add r1, r4, r5
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0225B1E8
- ldr r0, [r0]
- mov r1, #0
- mov r2, #1
- bl FUN_0200C7FC
- b _0225B1E8
-_0225B1D0:
- ldr r0, _0225B22C ; =0x0000051C
- add r2, sp, #0x1c
- ldr r0, [r4, r0]
- bl FUN_020119A4
- ldr r0, _0225B22C ; =0x0000051C
- ldr r2, [sp, #0x1c]
- ldr r0, [r4, r0]
- ldr r1, [sp, #0x20]
- add r2, r2, #1
- bl FUN_020118C4
-_0225B1E8:
- mov r0, #0x6b
- lsl r0, r0, #4
- ldrsh r1, [r4, r0]
- add sp, #0x24
- add r1, r1, #1
- strh r1, [r4, r0]
- pop {r4, r5, r6, r7, pc}
-_0225B1F6:
- add r0, r3, #2
- ldrsh r0, [r4, r0]
- add r1, r0, #1
- add r0, r3, #2
- strh r1, [r4, r0]
- ldrsh r0, [r4, r0]
- cmp r0, #0
- ble _0225B216
- mov r1, #1
- add r0, r4, #0
- add r2, r1, #0
- bl MOD11_0225AC8C
- add r0, r4, #0
- bl MOD11_0225ADB0
-_0225B216:
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- nop
-_0225B21C: .word 0x000006BC
-_0225B220: .word 0x000004CC
-_0225B224: .word 0x00000604
-_0225B228: .word 0x00000614
-_0225B22C: .word 0x0000051C
-_0225B230: .word 0x000006B4
-
- thumb_func_start MOD11_0225B234
-MOD11_0225B234: ; 0x0225B234
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r4, r1, #0
- ldr r0, [r4]
- bl MOD11_0222FF68
- mov r1, #0x6b
- lsl r1, r1, #4
- ldrsh r0, [r4, r1]
- cmp r0, #3
- bls _0225B24C
- b _0225B3AE
-_0225B24C:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0225B258: ; jump table
- .short _0225B260 - _0225B258 - 2 ; case 0
- .short _0225B2E8 - _0225B258 - 2 ; case 1
- .short _0225B304 - _0225B258 - 2 ; case 2
- .short _0225B38E - _0225B258 - 2 ; case 3
-_0225B260:
- add r1, #0x20
- ldr r1, [r4, r1]
- add r0, r4, #0
- add r2, sp, #4
- mov r3, #1
- bl MOD11_0225AD2C
- mov r5, #0
- mov r7, #2
- add r6, sp, #4
- b _0225B2D6
-_0225B276:
- ldrb r0, [r6, r5]
- cmp r0, #1
- bne _0225B2D4
- mov r1, #6
- add r2, r5, #0
- mul r2, r1
- ldr r1, _0225B3C4 ; =0x0225F88C
- lsl r3, r5, #2
- add r1, r1, r2
- ldr r2, _0225B3C8 ; =0x0225F7FC
- add r0, r4, #0
- add r2, r2, r3
- mov r3, #4
- str r7, [sp]
- bl MOD11_0225ADD8
- mov r0, #0x14
- mul r0, r5
- add r1, r4, r0
- ldr r0, _0225B3CC ; =0x000004CC
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0225B2C0
- add r1, sp, #0xc
- add r2, sp, #8
- bl FUN_020119A4
- mov r0, #0x14
- mul r0, r5
- add r1, r4, r0
- ldr r0, _0225B3CC ; =0x000004CC
- ldr r2, [sp, #8]
- ldr r0, [r1, r0]
- ldr r1, [sp, #0xc]
- sub r2, r2, #2
- bl FUN_020118C4
-_0225B2C0:
- lsl r0, r5, #2
- add r1, r4, r0
- ldr r0, _0225B3D0 ; =0x00000624
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0225B2D4
- mov r1, #0
- sub r2, r1, #2
- bl FUN_0200C82C
-_0225B2D4:
- add r5, r5, #1
-_0225B2D6:
- cmp r5, #4
- blt _0225B276
- mov r0, #0x6b
- lsl r0, r0, #4
- ldrsh r1, [r4, r0]
- add sp, #0x10
- add r1, r1, #1
- strh r1, [r4, r0]
- pop {r3, r4, r5, r6, r7, pc}
-_0225B2E8:
- add r0, r1, #2
- ldrsh r0, [r4, r0]
- add r2, r0, #1
- add r0, r1, #2
- strh r2, [r4, r0]
- ldrsh r0, [r4, r0]
- cmp r0, #0
- ble _0225B3BE
- mov r2, #0
- add r0, r1, #2
- strh r2, [r4, r0]
- ldrsh r0, [r4, r1]
- add r0, r0, #1
- strh r0, [r4, r1]
-_0225B304:
- mov r1, #0x6d
- lsl r1, r1, #4
- ldr r1, [r4, r1]
- add r0, r4, #0
- add r2, sp, #4
- mov r3, #1
- bl MOD11_0225AD2C
- mov r5, #0
- mov r7, #1
- add r6, sp, #4
- b _0225B37C
-_0225B31C:
- ldrb r0, [r6, r5]
- cmp r0, #1
- bne _0225B37A
- mov r1, #6
- add r2, r5, #0
- mul r2, r1
- ldr r1, _0225B3C4 ; =0x0225F88C
- lsl r3, r5, #2
- add r1, r1, r2
- ldr r2, _0225B3C8 ; =0x0225F7FC
- add r0, r4, #0
- add r2, r2, r3
- mov r3, #4
- str r7, [sp]
- bl MOD11_0225ADD8
- mov r0, #0x14
- mul r0, r5
- add r1, r4, r0
- ldr r0, _0225B3CC ; =0x000004CC
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0225B366
- add r1, sp, #0xc
- add r2, sp, #8
- bl FUN_020119A4
- mov r0, #0x14
- mul r0, r5
- add r1, r4, r0
- ldr r0, _0225B3CC ; =0x000004CC
- ldr r2, [sp, #8]
- ldr r0, [r1, r0]
- ldr r1, [sp, #0xc]
- add r2, r2, #1
- bl FUN_020118C4
-_0225B366:
- lsl r0, r5, #2
- add r1, r4, r0
- ldr r0, _0225B3D0 ; =0x00000624
- ldr r0, [r1, r0]
- cmp r0, #0
- beq _0225B37A
- mov r1, #0
- mov r2, #1
- bl FUN_0200C82C
-_0225B37A:
- add r5, r5, #1
-_0225B37C:
- cmp r5, #4
- blt _0225B31C
- mov r0, #0x6b
- lsl r0, r0, #4
- ldrsh r1, [r4, r0]
- add sp, #0x10
- add r1, r1, #1
- strh r1, [r4, r0]
- pop {r3, r4, r5, r6, r7, pc}
-_0225B38E:
- add r0, r1, #2
- ldrsh r0, [r4, r0]
- add r2, r0, #1
- add r0, r1, #2
- strh r2, [r4, r0]
- ldrsh r0, [r4, r0]
- cmp r0, #0
- ble _0225B3BE
- mov r2, #0
- add r0, r1, #2
- strh r2, [r4, r0]
- ldrsh r0, [r4, r1]
- add sp, #0x10
- add r0, r0, #1
- strh r0, [r4, r1]
- pop {r3, r4, r5, r6, r7, pc}
-_0225B3AE:
- mov r1, #1
- add r0, r4, #0
- add r2, r1, #0
- bl MOD11_0225AC8C
- add r0, r4, #0
- bl MOD11_0225ADB0
-_0225B3BE:
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0225B3C4: .word 0x0225F88C
-_0225B3C8: .word 0x0225F7FC
-_0225B3CC: .word 0x000004CC
-_0225B3D0: .word 0x00000624
-
- thumb_func_start MOD11_0225B3D4
-MOD11_0225B3D4: ; 0x0225B3D4
- cmp r0, #0
- bne _0225B3DC
- ldr r0, _0225B42C ; =0x00070800
- bx lr
-_0225B3DC:
- cmp r1, r0
- bne _0225B3E4
- ldr r0, _0225B430 ; =0x00010200
- bx lr
-_0225B3E4:
- cmp r1, #2
- bgt _0225B3F0
- cmp r0, #1
- bne _0225B428
- ldr r0, _0225B434 ; =0x00050600
- bx lr
-_0225B3F0:
- cmp r1, #7
- bgt _0225B408
- cmp r0, #1
- beq _0225B3FE
- cmp r0, #2
- beq _0225B402
- b _0225B428
-_0225B3FE:
- ldr r0, _0225B434 ; =0x00050600
- bx lr
-_0225B402:
- mov r0, #0xc1
- lsl r0, r0, #0xa
- bx lr
-_0225B408:
- asr r2, r1, #1
- lsr r2, r2, #0x1e
- add r2, r1, r2
- asr r2, r2, #2
- cmp r0, r2
- bgt _0225B418
- ldr r0, _0225B434 ; =0x00050600
- bx lr
-_0225B418:
- lsr r2, r1, #0x1f
- add r2, r1, r2
- asr r1, r2, #1
- cmp r0, r1
- bgt _0225B428
- mov r0, #0xc1
- lsl r0, r0, #0xa
- bx lr
-_0225B428:
- ldr r0, _0225B430 ; =0x00010200
- bx lr
- .align 2, 0
-_0225B42C: .word 0x00070800
-_0225B430: .word 0x00010200
-_0225B434: .word 0x00050600
-
- thumb_func_start MOD11_0225B438
-MOD11_0225B438: ; 0x0225B438
- push {r4, r5, r6, lr}
- add r5, r1, #0
- add r6, r0, #0
- ldr r0, [r5]
- ldr r0, [r0]
- bl MOD11_0222FF68
- add r4, r0, #0
- ldrb r0, [r5, #0x13]
- cmp r0, #0
- beq _0225B454
- cmp r0, #1
- beq _0225B4AA
- b _0225B4D6
-_0225B454:
- mov r2, #8
- ldrsh r1, [r5, r2]
- ldr r0, _0225B528 ; =0x000018E7
- add r1, r1, r0
- strh r1, [r5, #8]
- mov r1, #0xa
- ldrsh r3, [r5, r1]
- mov r1, #0xfa
- lsl r1, r1, #2
- sub r1, r3, r1
- strh r1, [r5, #0xa]
- ldrsh r1, [r5, r2]
- lsl r0, r0, #2
- sub r0, r0, r1
- mov r1, #0x64
- bl _s32_div_f
- strh r0, [r5, #0xc]
- mov r0, #0xa
- ldrsh r0, [r5, r0]
- mov r1, #0x64
- neg r0, r0
- bl _s32_div_f
- strh r0, [r5, #0xe]
- mov r0, #8
- ldrsh r0, [r5, r0]
- cmp r0, #0
- bge _0225B496
- mov r0, #0xa
- ldrsh r0, [r5, r0]
- cmp r0, #0
- bgt _0225B526
-_0225B496:
- mov r1, #0
- strh r1, [r5, #8]
- mov r0, #0x90
- strh r0, [r5, #0xa]
- strh r1, [r5, #0xc]
- strh r1, [r5, #0xe]
- ldrb r0, [r5, #0x13]
- add r0, r0, #1
- strb r0, [r5, #0x13]
- pop {r4, r5, r6, pc}
-_0225B4AA:
- ldr r1, [r5]
- ldr r0, _0225B52C ; =0x000006A2
- mov r2, #0
- strb r2, [r1, r0]
- ldr r0, [r5, #4]
- bl FUN_0200CAB4
- bl FUN_02015F1C
- ldr r2, _0225B530 ; =0x04001000
- ldr r0, _0225B534 ; =0xFFFF1FFF
- ldr r1, [r2]
- and r0, r1
- str r0, [r2]
- ldr r0, [r5]
- mov r1, #1
- bl MOD11_0225B77C
- ldrb r0, [r5, #0x13]
- add r0, r0, #1
- strb r0, [r5, #0x13]
- pop {r4, r5, r6, pc}
-_0225B4D6:
- ldr r0, [r5]
- bl MOD11_0225B780
- cmp r0, #0
- beq _0225B526
- mov r2, #0
- add r0, r4, #0
- mov r1, #4
- add r3, r2, #0
- bl FUN_020179E0
- add r0, r4, #0
- mov r1, #4
- mov r2, #3
- mov r3, #0
- bl FUN_020179E0
- mov r2, #0
- add r0, r4, #0
- mov r1, #5
- add r3, r2, #0
- bl FUN_020179E0
- add r0, r4, #0
- mov r1, #5
- mov r2, #3
- mov r3, #0
- bl FUN_020179E0
- ldr r0, [r5]
- mov r1, #1
- ldr r0, [r0]
- bl MOD11_022312AC
- add r0, r5, #0
- bl FreeToHeap
- add r0, r6, #0
- bl FUN_0200CAB4
-_0225B526:
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0225B528: .word 0x000018E7
-_0225B52C: .word 0x000006A2
-_0225B530: .word 0x04001000
-_0225B534: .word 0xFFFF1FFF
-
- thumb_func_start MOD11_0225B538
-MOD11_0225B538: ; 0x0225B538
- push {r4, r5, r6, lr}
- add r5, r1, #0
- ldr r0, [r5]
- ldr r0, [r0]
- bl MOD11_0222FF68
- add r6, r0, #0
- ldrb r0, [r5, #0x12]
- cmp r0, #4
- bne _0225B586
- mov r0, #0xc
- ldrsh r1, [r5, r0]
- mov r0, #0xff
- sub r3, r0, r1
- cmp r3, #0
- ble _0225B55A
- mov r3, #0
-_0225B55A:
- add r0, r6, #0
- mov r1, #4
- mov r2, #0
- bl FUN_020179E0
- mov r3, #0xc
- ldrsh r4, [r5, r3]
- mov r3, #0xff
- add r0, r6, #0
- mov r1, #5
- mov r2, #0
- sub r3, r3, r4
- bl FUN_020179E0
- mov r0, #8
- ldrsh r0, [r5, r0]
- mov r1, #0x64
- neg r0, r0
- bl _s32_div_f
- add r4, r0, #0
- b _0225B5B6
-_0225B586:
- mov r0, #0xc
- ldrsh r3, [r5, r0]
- cmp r3, #0
- bge _0225B590
- mov r3, #0
-_0225B590:
- add r0, r6, #0
- mov r1, #4
- mov r2, #0
- bl FUN_020179E0
- mov r3, #0xc
- ldrsh r3, [r5, r3]
- add r0, r6, #0
- mov r1, #5
- mov r2, #0
- bl FUN_020179E0
- mov r0, #8
- ldrsh r0, [r5, r0]
- mov r1, #0x64
- bl _s32_div_f
- add r4, r0, #0
- add r4, #0xff
-_0225B5B6:
- add r0, r6, #0
- mov r1, #4
- mov r2, #3
- mov r3, #0
- bl FUN_020179E0
- add r0, r6, #0
- mov r1, #5
- mov r2, #3
- mov r3, #0
- bl FUN_020179E0
- mov r0, #0xa
- ldrsh r0, [r5, r0]
- mov r1, #0x64
- bl _s32_div_f
- add r0, #0x90
- cmp r4, #0
- bge _0225B5E2
- mov r4, #0
- b _0225B5E8
-_0225B5E2:
- cmp r4, #0xff
- ble _0225B5E8
- mov r4, #0xff
-_0225B5E8:
- cmp r0, #0xc0
- ble _0225B5F0
- mov r0, #0xc0
- b _0225B5F6
-_0225B5F0:
- cmp r0, #0
- bge _0225B5F6
- mov r0, #0
-_0225B5F6:
- ldrb r1, [r5, #0x12]
- cmp r1, #4
- bne _0225B60A
- lsl r1, r4, #0x18
- ldr r2, _0225B63C ; =0x04001040
- lsr r1, r1, #0x18
- strh r1, [r2]
- mov r1, #0x90
- strh r1, [r2, #4]
- b _0225B620
-_0225B60A:
- cmp r4, #0
- bne _0225B610
- mov r4, #1
-_0225B610:
- mov r1, #0xff
- lsl r2, r4, #8
- lsl r1, r1, #8
- and r1, r2
- ldr r2, _0225B63C ; =0x04001040
- strh r1, [r2]
- mov r1, #0x90
- strh r1, [r2, #4]
-_0225B620:
- ldr r2, _0225B640 ; =0x04001042
- mov r1, #0xff
- lsl r0, r0, #0x18
- strh r1, [r2]
- lsr r1, r0, #0x18
- mov r0, #9
- lsl r0, r0, #0xc
- orr r0, r1
- strh r0, [r2, #4]
- mov r0, #0xe
- ldrsh r0, [r5, r0]
- strh r0, [r5, #0x10]
- pop {r4, r5, r6, pc}
- nop
-_0225B63C: .word 0x04001040
-_0225B640: .word 0x04001042
-
- thumb_func_start MOD11_0225B644
-MOD11_0225B644: ; 0x0225B644
- push {r4, r5, r6, lr}
- add r4, r0, #0
- ldr r0, _0225B6FC ; =0x04000006
- ldrh r0, [r0]
- cmp r0, #0x90
- bne _0225B68E
- ldr r0, [r4]
- ldr r0, [r0]
- bl MOD11_0222FF68
- mov r2, #0
- mov r1, #4
- add r3, r2, #0
- add r5, r0, #0
- bl FUN_020179E0
- mov r3, #0x10
- ldrsh r3, [r4, r3]
- add r0, r5, #0
- mov r1, #4
- mov r2, #3
- bl FUN_020179E0
- mov r2, #0
- add r0, r5, #0
- mov r1, #5
- add r3, r2, #0
- bl FUN_020179E0
- mov r3, #0x10
- ldrsh r3, [r4, r3]
- add r0, r5, #0
- mov r1, #5
- mov r2, #3
- bl FUN_020179E0
- pop {r4, r5, r6, pc}
-_0225B68E:
- cmp r0, #0xc0
- ble _0225B6F8
- ldr r0, [r4]
- ldr r0, [r0]
- bl MOD11_0222FF68
- ldrb r1, [r4, #0x12]
- add r5, r0, #0
- cmp r1, #4
- bne _0225B6C6
- mov r3, #0xc
- ldrsh r6, [r4, r3]
- mov r3, #0xff
- mov r1, #4
- mov r2, #0
- sub r3, r3, r6
- bl FUN_020179E0
- mov r3, #0xc
- ldrsh r4, [r4, r3]
- mov r3, #0xff
- add r0, r5, #0
- mov r1, #5
- mov r2, #0
- sub r3, r3, r4
- bl FUN_020179E0
- b _0225B6E0
-_0225B6C6:
- mov r3, #0xc
- ldrsh r3, [r4, r3]
- mov r1, #4
- mov r2, #0
- bl FUN_020179E0
- mov r3, #0xc
- ldrsh r3, [r4, r3]
- add r0, r5, #0
- mov r1, #5
- mov r2, #0
- bl FUN_020179E0
-_0225B6E0:
- add r0, r5, #0
- mov r1, #4
- mov r2, #3
- mov r3, #0
- bl FUN_020179E0
- add r0, r5, #0
- mov r1, #5
- mov r2, #3
- mov r3, #0
- bl FUN_020179E0
-_0225B6F8:
- pop {r4, r5, r6, pc}
- nop
-_0225B6FC: .word 0x04000006
-
- thumb_func_start MOD11_0225B700
-MOD11_0225B700: ; 0x0225B700
- push {r3, r4, r5, r6, r7, lr}
- str r0, [sp]
- ldr r0, _0225B760 ; =0x0000069F
- ldr r2, _0225B764 ; =0x0225FAAC
- ldrsb r1, [r1, r0]
- mov r0, #0x30
- ldr r7, _0225B768 ; =0x0000FFFF
- mul r0, r1
- add r6, r2, r0
- mov r4, #0
- add r5, r6, #0
-_0225B716:
- ldrh r0, [r5, #4]
- cmp r0, r7
- bne _0225B72A
- add r0, r4, #4
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- mov r1, #0
- bl FUN_0201797C
- b _0225B736
-_0225B72A:
- add r0, r4, #4
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- mov r1, #1
- bl FUN_0201797C
-_0225B736:
- add r4, r4, #1
- add r5, r5, #2
- cmp r4, #4
- blt _0225B716
- mov r4, #0
-_0225B740:
- ldrh r1, [r6, #0xc]
- add r0, r4, #4
- lsl r0, r0, #0x18
- lsl r1, r1, #0x18
- lsr r0, r0, #0x18
- lsr r1, r1, #0x18
- bl FUN_020178BC
- add r4, r4, #1
- add r6, r6, #2
- cmp r4, #4
- blt _0225B740
- ldr r0, [sp]
- bl FUN_0200CAB4
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0225B760: .word 0x0000069F
-_0225B764: .word 0x0225FAAC
-_0225B768: .word 0x0000FFFF
-
- thumb_func_start MOD11_0225B76C
-MOD11_0225B76C: ; 0x0225B76C
- push {r4, lr}
- add r4, r0, #0
- bl MOD11_0225AC60
- add r0, r4, #0
- bl FUN_0200CAB4
- pop {r4, pc}
-
- thumb_func_start MOD11_0225B77C
-MOD11_0225B77C: ; 0x0225B77C
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_0225B780
-MOD11_0225B780: ; 0x0225B780
- ldr r1, _0225B790 ; =0x00000698
- ldr r0, [r0, r1]
- cmp r0, #0
- bne _0225B78C
- mov r0, #1
- bx lr
-_0225B78C:
- mov r0, #0
- bx lr
- .align 2, 0
-_0225B790: .word 0x00000698
-
- thumb_func_start MOD11_0225B794
-MOD11_0225B794: ; 0x0225B794
- push {r3, r4, r5, lr}
- sub sp, #8
- add r5, r1, #0
- ldr r0, [r5]
- bl MOD11_022300CC
- add r4, r0, #0
- bl FUN_020038E4
- cmp r0, #0
- bne _0225B814
- ldr r0, _0225B818 ; =0x000006AA
- mov r1, #1
- ldrsh r0, [r5, r0]
- add r2, r1, #0
- add r3, r1, #0
- asr r0, r0, #8
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- str r0, [sp]
- ldr r0, _0225B81C ; =0x00007FFF
- str r0, [sp, #4]
- add r0, r4, #0
- bl FUN_020039E8
- ldr r1, _0225B820 ; =0x000006A8
-_0225B7C8:
- ldrb r0, [r5, r1]
- cmp r0, #0
- bne _0225B7DA
- add r0, r1, #2
- ldrsh r2, [r5, r0]
- mov r0, #2
- lsl r0, r0, #8
- add r2, r2, r0
- b _0225B7E4
-_0225B7DA:
- add r0, r1, #2
- ldrsh r2, [r5, r0]
- mov r0, #2
- lsl r0, r0, #8
- sub r2, r2, r0
-_0225B7E4:
- add r0, r1, #2
- strh r2, [r5, r0]
- ldr r0, _0225B818 ; =0x000006AA
- mov r1, #0x11
- ldrsh r2, [r5, r0]
- lsl r1, r1, #8
- cmp r2, r1
- blt _0225B804
- mov r1, #0xf
- lsl r1, r1, #8
- strh r1, [r5, r0]
- mov r1, #1
- sub r0, r0, #2
- add sp, #8
- strb r1, [r5, r0]
- pop {r3, r4, r5, pc}
-_0225B804:
- cmp r2, #0
- bgt _0225B814
- mov r1, #1
- lsl r1, r1, #8
- strh r1, [r5, r0]
- mov r1, #0
- sub r0, r0, #2
- strb r1, [r5, r0]
-_0225B814:
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0225B818: .word 0x000006AA
-_0225B81C: .word 0x00007FFF
-_0225B820: .word 0x000006A8
-
- thumb_func_start MOD11_0225B824
-MOD11_0225B824: ; 0x0225B824
- push {r3, r4, r5, r6, r7, lr}
- add r5, r1, #0
- bl FUN_02002BD4
- add r6, r0, #0
- bl FUN_02002BF4
- add r7, r0, #0
- bl FUN_02002BE4
- bl FUN_02002C04
- ldr r0, [r5]
- bl MOD11_022300CC
- add r4, r0, #0
- bl FUN_020038E4
- cmp r0, #0
- bne _0225B8A8
- add r0, r4, #0
- mov r1, #1
- bl FUN_02003204
- add r4, r0, #0
- ldr r0, _0225B8AC ; =0x021C48F8
- ldrh r0, [r0, #0x22]
- cmp r0, #0
- beq _0225B888
- cmp r6, #1
- beq _0225B866
- cmp r7, #1
- bne _0225B888
-_0225B866:
- ldr r1, [r5, #0x5c]
- add r0, r4, #0
- add r0, #0x16
- add r1, #0x16
- mov r2, #0xa
- bl memcmp
- cmp r0, #0
- bne _0225B8A8
- ldr r0, [r5, #0x60]
- add r4, #0x16
- add r0, #0x16
- add r1, r4, #0
- mov r2, #0xa
- bl MIi_CpuCopy16
- pop {r3, r4, r5, r6, r7, pc}
-_0225B888:
- ldr r1, [r5, #0x60]
- add r0, r4, #0
- add r0, #0x16
- add r1, #0x16
- mov r2, #0xa
- bl memcmp
- cmp r0, #0
- bne _0225B8A8
- ldr r0, [r5, #0x5c]
- add r4, #0x16
- add r0, #0x16
- add r1, r4, #0
- mov r2, #0xa
- bl MIi_CpuCopy16
-_0225B8A8:
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0225B8AC: .word 0x021C48F8
-
- thumb_func_start MOD11_0225B8B0
-MOD11_0225B8B0: ; 0x0225B8B0
- push {r4, r5, r6, lr}
- mov r6, #0x6f
- lsl r6, r6, #4
- add r2, r6, #0
- add r5, r0, #0
- sub r2, #0x51
- ldrsb r2, [r5, r2]
- ldr r1, _0225B914 ; =0x0225FAAC
- mov r3, #0x30
- add r4, r2, #0
- mul r4, r3
- add r4, r1, r4
- ldr r2, [r4, #0x20]
- cmp r2, #0
- bne _0225B8D4
- sub r3, #0x31
- add r0, r3, #0
- pop {r4, r5, r6, pc}
-_0225B8D4:
- ldrb r1, [r5, r6]
- cmp r1, #0
- bne _0225B90C
- add r0, r6, #4
- ldrb r0, [r5, r0]
- cmp r0, #1
- beq _0225B8EC
- ldr r1, _0225B918 ; =0x021C48B8
- ldr r2, [r1, #0x48]
- ldr r1, _0225B91C ; =0x00000CF3
- tst r1, r2
- beq _0225B906
-_0225B8EC:
- cmp r0, #0
- bne _0225B8F6
- ldr r0, _0225B920 ; =0x000005DC
- bl FUN_020054C8
-_0225B8F6:
- mov r1, #1
- ldr r0, _0225B924 ; =0x000006F4
- strb r1, [r5, r6]
- mov r2, #0
- strb r2, [r5, r0]
- ldr r2, [r4, #0x20]
- add r0, r5, #0
- blx r2
-_0225B906:
- mov r0, #0
- mvn r0, r0
- pop {r4, r5, r6, pc}
-_0225B90C:
- mov r1, #0
- blx r2
- pop {r4, r5, r6, pc}
- nop
-_0225B914: .word 0x0225FAAC
-_0225B918: .word 0x021C48B8
-_0225B91C: .word 0x00000CF3
-_0225B920: .word 0x000005DC
-_0225B924: .word 0x000006F4
-
- thumb_func_start MOD11_0225B928
-MOD11_0225B928: ; 0x0225B928
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- str r1, [sp, #8]
- mov r1, #0x6f
- lsl r1, r1, #4
- add r6, r0, #0
- add r2, r1, #0
- sub r2, #0x51
- ldrsb r3, [r6, r2]
- add r4, r6, r1
- mov r2, #0x30
- sub r1, #0x52
- ldr r0, _0225BAE8 ; =0x0225FAAC
- mul r2, r3
- add r7, r0, r2
- ldrb r1, [r6, r1]
- ldr r0, [r6]
- bl MOD11_0223022C
- add r1, r0, #0
- ldr r0, [r6]
- bl MOD11_0222FF7C
- bl MOD11_02253A74
- ldr r1, [sp, #8]
- cmp r1, #1
- bne _0225B9AE
- mov r1, #0
- ldrsb r1, [r0, r1]
- ldr r2, _0225BAEC ; =0x0225F698
- strb r1, [r4, #2]
- mov r1, #1
- ldrsb r0, [r0, r1]
- strb r0, [r4, #1]
- ldrsb r1, [r4, r1]
- lsl r0, r1, #1
- add r3, r1, r0
- mov r0, #2
- ldrsb r1, [r4, r0]
- add r0, r2, r3
- ldrb r1, [r1, r0]
- ldr r0, [r7, #0x14]
- lsl r3, r1, #2
- add r0, r0, r3
- ldrb r0, [r0, #1]
- sub r0, #8
- str r0, [sp]
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp, #4]
- ldr r4, [r7, #0x14]
- ldr r0, _0225BAF0 ; =0x000006EC
- add r2, r4, r3
- ldrb r1, [r2, #2]
- ldrb r2, [r2, #3]
- ldrb r3, [r4, r3]
- ldr r0, [r6, r0]
- add r1, #8
- sub r2, #8
- add r3, #8
- bl MOD11_0225D5FC
- mov r0, #0
- add sp, #0x10
- mvn r0, r0
- pop {r3, r4, r5, r6, r7, pc}
-_0225B9AE:
- ldr r0, _0225BAF4 ; =0x0000069F
- ldrsb r0, [r6, r0]
- cmp r0, #5
- beq _0225B9BA
- cmp r0, #6
- bne _0225B9CA
-_0225B9BA:
- mov r1, #1
- ldr r3, _0225BAEC ; =0x0225F698
- add r0, r4, #0
- add r2, r1, #0
- bl MOD11_0225C574
- add r5, r0, #0
- b _0225BA34
-_0225B9CA:
- mov r0, #1
- ldrsb r1, [r4, r0]
- lsl r0, r1, #1
- add r2, r1, r0
- mov r0, #2
- ldr r1, _0225BAEC ; =0x0225F698
- ldrsb r0, [r4, r0]
- add r1, r1, r2
- ldrb r0, [r0, r1]
- str r0, [sp, #0xc]
- cmp r0, #3
- bne _0225B9EC
- ldr r0, _0225BAF8 ; =0x021C48B8
- ldr r1, [r0, #0x48]
- mov r0, #0x40
- tst r0, r1
- bne _0225BA34
-_0225B9EC:
- ldr r3, _0225BAEC ; =0x0225F698
- add r0, r4, #0
- mov r1, #3
- mov r2, #2
- bl MOD11_0225C574
- add r5, r0, #0
- bne _0225BA34
- ldr r0, [sp, #0xc]
- cmp r0, #0
- bne _0225BA34
- ldr r0, _0225BAF8 ; =0x021C48B8
- ldr r1, [r0, #0x48]
- mov r0, #0x20
- tst r0, r1
- beq _0225BA1E
- mov r0, #0
- strb r0, [r4, #2]
- mov r0, #1
- strb r0, [r4, #1]
- ldr r0, _0225BAFC ; =0x000005DC
- bl FUN_020054C8
- mov r5, #0x20
- b _0225BA34
-_0225BA1E:
- mov r0, #0x10
- tst r0, r1
- beq _0225BA34
- mov r0, #2
- strb r0, [r4, #2]
- mov r0, #1
- strb r0, [r4, #1]
- ldr r0, _0225BAFC ; =0x000005DC
- bl FUN_020054C8
- mov r5, #0x10
-_0225BA34:
- cmp r5, #0x20
- bhi _0225BA50
- bhs _0225BA5C
- cmp r5, #2
- bhi _0225BA4A
- cmp r5, #1
- blo _0225BAE0
- beq _0225BA9A
- cmp r5, #2
- beq _0225BAB0
- b _0225BAE0
-_0225BA4A:
- cmp r5, #0x10
- beq _0225BA5C
- b _0225BAE0
-_0225BA50:
- cmp r5, #0x40
- bhi _0225BA58
- beq _0225BA5C
- b _0225BAE0
-_0225BA58:
- cmp r5, #0x80
- bne _0225BAE0
-_0225BA5C:
- mov r0, #1
- ldrsb r1, [r4, r0]
- ldr r2, _0225BAEC ; =0x0225F698
- lsl r0, r1, #1
- add r3, r1, r0
- mov r0, #2
- ldrsb r1, [r4, r0]
- add r0, r2, r3
- ldrb r1, [r1, r0]
- ldr r0, [r7, #0x14]
- lsl r3, r1, #2
- add r0, r0, r3
- ldrb r0, [r0, #1]
- sub r0, #8
- str r0, [sp]
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp, #4]
- ldr r4, [r7, #0x14]
- ldr r0, _0225BAF0 ; =0x000006EC
- add r2, r4, r3
- ldrb r1, [r2, #2]
- ldrb r2, [r2, #3]
- ldrb r3, [r4, r3]
- ldr r0, [r6, r0]
- add r1, #8
- sub r2, #8
- add r3, #8
- bl MOD11_0225D5FC
- b _0225BAE0
-_0225BA9A:
- mov r0, #1
- ldrsb r1, [r4, r0]
- ldr r2, _0225BAEC ; =0x0225F698
- add sp, #0x10
- lsl r0, r1, #1
- add r3, r1, r0
- mov r0, #2
- ldrsb r1, [r4, r0]
- add r0, r2, r3
- ldrb r0, [r1, r0]
- pop {r3, r4, r5, r6, r7, pc}
-_0225BAB0:
- ldr r0, _0225BB00 ; =0x000006A3
- ldrb r0, [r6, r0]
- cmp r0, #1
- bne _0225BAE0
- mov r0, #0
- add r2, r0, #0
- mov r3, #1
- ldr r1, [r7, #0x18]
- ldr r5, [r7, #0x14]
- b _0225BACE
-_0225BAC4:
- lsl r4, r0, #2
- ldr r4, [r1, r4]
- cmp r4, #4
- beq _0225BAE4
- add r0, r0, #1
-_0225BACE:
- lsl r4, r0, #2
- ldrb r4, [r5, r4]
- cmp r0, r4
- bge _0225BADA
- add r4, r3, #0
- b _0225BADC
-_0225BADA:
- add r4, r2, #0
-_0225BADC:
- cmp r4, #0xff
- bne _0225BAC4
-_0225BAE0:
- mov r0, #0
- mvn r0, r0
-_0225BAE4:
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0225BAE8: .word 0x0225FAAC
-_0225BAEC: .word 0x0225F698
-_0225BAF0: .word 0x000006EC
-_0225BAF4: .word 0x0000069F
-_0225BAF8: .word 0x021C48B8
-_0225BAFC: .word 0x000005DC
-_0225BB00: .word 0x000006A3
-
- thumb_func_start MOD11_0225BB04
-MOD11_0225BB04: ; 0x0225BB04
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- ldr r1, _0225BB60 ; =0x0000069E
- ldr r0, [r5]
- ldrb r1, [r5, r1]
- bl MOD11_0223022C
- add r6, r0, #0
- cmp r4, #3
- bne _0225BB26
- ldr r0, [r5]
- add r1, r6, #0
- bl MOD11_02230CB8
- cmp r0, #0
- bne _0225BB5C
-_0225BB26:
- ldr r0, [r5]
- add r1, r6, #0
- bl MOD11_0222FF7C
- bl MOD11_02253A74
- mov r5, #0
- ldr r1, _0225BB64 ; =0x0225F698
- add r2, r5, #0
- b _0225BB58
-_0225BB3A:
- lsl r6, r5, #1
- add r6, r5, r6
- add r3, r2, #0
- add r7, r1, r6
- b _0225BB52
-_0225BB44:
- ldrb r6, [r3, r7]
- cmp r4, r6
- bne _0225BB50
- strb r3, [r0]
- strb r5, [r0, #1]
- pop {r3, r4, r5, r6, r7, pc}
-_0225BB50:
- add r3, r3, #1
-_0225BB52:
- cmp r3, #3
- blt _0225BB44
- add r5, r5, #1
-_0225BB58:
- cmp r5, #2
- blt _0225BB3A
-_0225BB5C:
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0225BB60: .word 0x0000069E
-_0225BB64: .word 0x0225F698
-
- thumb_func_start MOD11_0225BB68
-MOD11_0225BB68: ; 0x0225BB68
- push {r4, r5, r6, lr}
- sub sp, #8
- add r6, r0, #0
- mov r0, #0x6f
- lsl r0, r0, #4
- add r3, r0, #0
- sub r3, #0x51
- ldrsb r5, [r6, r3]
- mov r3, #0x30
- ldr r2, _0225BC54 ; =0x0225FAAC
- mul r3, r5
- add r4, r6, r0
- add r5, r2, r3
- cmp r1, #1
- bne _0225BBCC
- mov r1, #0
- strb r1, [r4, #2]
- strb r1, [r4, #1]
- mov r1, #1
- ldrsb r2, [r4, r1]
- mov r3, #2
- ldr r1, _0225BC58 ; =0x0225F688
- ldrsb r3, [r4, r3]
- add r1, r1, r2
- sub r0, r0, #4
- ldrb r2, [r3, r1]
- ldr r1, [r5, #0x14]
- lsl r3, r2, #2
- add r1, r1, r3
- ldrb r1, [r1, #1]
- sub r1, #8
- str r1, [sp]
- mov r1, #0x11
- lsl r1, r1, #0x10
- str r1, [sp, #4]
- ldr r4, [r5, #0x14]
- ldr r0, [r6, r0]
- add r2, r4, r3
- ldrb r1, [r2, #2]
- ldrb r2, [r2, #3]
- ldrb r3, [r4, r3]
- add r1, #8
- sub r2, #8
- add r3, #8
- bl MOD11_0225D5FC
- mov r0, #0
- add sp, #8
- mvn r0, r0
- pop {r4, r5, r6, pc}
-_0225BBCC:
- ldr r3, _0225BC58 ; =0x0225F688
- add r0, r4, #0
- mov r1, #1
- mov r2, #2
- bl MOD11_0225C574
- cmp r0, #0x20
- bhi _0225BBF2
- bhs _0225BBFE
- cmp r0, #2
- bhi _0225BBEC
- cmp r0, #1
- blo _0225BC4A
- beq _0225BC38
- cmp r0, #2
- b _0225BC4A
-_0225BBEC:
- cmp r0, #0x10
- beq _0225BBFE
- b _0225BC4A
-_0225BBF2:
- cmp r0, #0x40
- bhi _0225BBFA
- beq _0225BBFE
- b _0225BC4A
-_0225BBFA:
- cmp r0, #0x80
- bne _0225BC4A
-_0225BBFE:
- mov r0, #1
- ldrsb r3, [r4, r0]
- mov r0, #2
- ldr r2, _0225BC58 ; =0x0225F688
- ldrsb r1, [r4, r0]
- add r0, r2, r3
- ldrb r1, [r1, r0]
- ldr r0, [r5, #0x14]
- lsl r3, r1, #2
- add r0, r0, r3
- ldrb r0, [r0, #1]
- sub r0, #8
- str r0, [sp]
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp, #4]
- ldr r4, [r5, #0x14]
- ldr r0, _0225BC5C ; =0x000006EC
- add r2, r4, r3
- ldrb r1, [r2, #2]
- ldrb r2, [r2, #3]
- ldrb r3, [r4, r3]
- ldr r0, [r6, r0]
- add r1, #8
- sub r2, #8
- add r3, #8
- bl MOD11_0225D5FC
- b _0225BC4A
-_0225BC38:
- mov r0, #1
- ldrsb r3, [r4, r0]
- mov r0, #2
- ldr r2, _0225BC58 ; =0x0225F688
- ldrsb r1, [r4, r0]
- add r0, r2, r3
- add sp, #8
- ldrb r0, [r1, r0]
- pop {r4, r5, r6, pc}
-_0225BC4A:
- mov r0, #0
- mvn r0, r0
- add sp, #8
- pop {r4, r5, r6, pc}
- nop
-_0225BC54: .word 0x0225FAAC
-_0225BC58: .word 0x0225F688
-_0225BC5C: .word 0x000006EC
-
- thumb_func_start MOD11_0225BC60
-MOD11_0225BC60: ; 0x0225BC60
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x10
- add r7, r1, #0
- add r5, r0, #0
- ldr r1, _0225BDD0 ; =0x0000069E
- ldr r0, [r5]
- ldrb r1, [r5, r1]
- bl MOD11_0223022C
- add r1, r0, #0
- ldr r0, [r5]
- bl MOD11_0222FF7C
- bl MOD11_02253A74
- mov r1, #0x6f
- lsl r1, r1, #4
- add r4, r5, r1
- sub r1, #0x51
- ldrsb r2, [r5, r1]
- add r3, r0, #0
- mov r1, #0x30
- mul r1, r2
- ldr r0, _0225BDD4 ; =0x0225FAAC
- add r2, r5, #0
- add r6, r0, r1
- add r2, #0x18
- cmp r7, #1
- bne _0225BD10
- mov r0, #2
- ldrsb r0, [r3, r0]
- strb r0, [r4, #2]
- mov r0, #3
- ldrsb r0, [r3, r0]
- strb r0, [r4, #1]
- mov r0, #1
- ldrsb r0, [r4, r0]
- lsl r1, r0, #1
- mov r0, #2
- ldrsb r7, [r4, r0]
- ldr r0, _0225BDD8 ; =0x0225F6A0
- add r0, r0, r1
- ldrb r0, [r7, r0]
- cmp r0, #0
- beq _0225BCDE
- sub r1, r0, #1
- lsl r1, r1, #1
- ldrh r1, [r2, r1]
- cmp r1, #0
- bne _0225BCDE
- mov r0, #0
- strb r0, [r3, #2]
- strb r0, [r3, #3]
- strb r0, [r4, #2]
- strb r0, [r4, #1]
- mov r0, #1
- ldrsb r0, [r4, r0]
- lsl r2, r0, #1
- mov r0, #2
- ldrsb r1, [r4, r0]
- ldr r0, _0225BDD8 ; =0x0225F6A0
- add r0, r0, r2
- ldrb r0, [r1, r0]
-_0225BCDE:
- ldr r1, [r6, #0x14]
- lsl r3, r0, #2
- add r0, r1, r3
- ldrb r0, [r0, #1]
- sub r0, #8
- str r0, [sp]
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp, #4]
- ldr r4, [r6, #0x14]
- ldr r0, _0225BDDC ; =0x000006EC
- add r2, r4, r3
- ldrb r1, [r2, #2]
- ldrb r2, [r2, #3]
- ldrb r3, [r4, r3]
- ldr r0, [r5, r0]
- add r1, #8
- sub r2, #8
- add r3, #8
- bl MOD11_0225D5FC
- mov r0, #0
- add sp, #0x10
- mvn r0, r0
- pop {r3, r4, r5, r6, r7, pc}
-_0225BD10:
- ldr r0, _0225BDD8 ; =0x0225F6A0
- add r1, sp, #8
- mov r2, #6
- bl MI_CpuCopy8
- add r0, r4, #0
- mov r1, #2
- mov r2, #3
- add r3, sp, #8
- bl MOD11_0225C574
- cmp r0, #0x20
- bhi _0225BD42
- bhs _0225BD4E
- cmp r0, #2
- bhi _0225BD3C
- cmp r0, #1
- blo _0225BDC6
- beq _0225BD8A
- cmp r0, #2
- beq _0225BD9E
- b _0225BDC6
-_0225BD3C:
- cmp r0, #0x10
- beq _0225BD4E
- b _0225BDC6
-_0225BD42:
- cmp r0, #0x40
- bhi _0225BD4A
- beq _0225BD4E
- b _0225BDC6
-_0225BD4A:
- cmp r0, #0x80
- bne _0225BDC6
-_0225BD4E:
- mov r0, #1
- ldrsb r0, [r4, r0]
- ldr r2, _0225BDD8 ; =0x0225F6A0
- lsl r3, r0, #1
- mov r0, #2
- ldrsb r1, [r4, r0]
- add r0, r2, r3
- ldrb r1, [r1, r0]
- ldr r0, [r6, #0x14]
- lsl r3, r1, #2
- add r0, r0, r3
- ldrb r0, [r0, #1]
- sub r0, #8
- str r0, [sp]
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp, #4]
- ldr r4, [r6, #0x14]
- ldr r0, _0225BDDC ; =0x000006EC
- add r2, r4, r3
- ldrb r1, [r2, #2]
- ldrb r2, [r2, #3]
- ldrb r3, [r4, r3]
- ldr r0, [r5, r0]
- add r1, #8
- sub r2, #8
- add r3, #8
- bl MOD11_0225D5FC
- b _0225BDC6
-_0225BD8A:
- mov r0, #1
- ldrsb r0, [r4, r0]
- ldr r2, _0225BDD8 ; =0x0225F6A0
- add sp, #0x10
- lsl r3, r0, #1
- mov r0, #2
- ldrsb r1, [r4, r0]
- add r0, r2, r3
- ldrb r0, [r1, r0]
- pop {r3, r4, r5, r6, r7, pc}
-_0225BD9E:
- mov r0, #0
- add r2, r0, #0
- mov r3, #1
- ldr r1, [r6, #0x18]
- ldr r5, [r6, #0x14]
- b _0225BDB4
-_0225BDAA:
- lsl r4, r0, #2
- ldr r4, [r1, r4]
- cmp r4, #0xff
- beq _0225BDCA
- add r0, r0, #1
-_0225BDB4:
- lsl r4, r0, #2
- ldrb r4, [r5, r4]
- cmp r0, r4
- bge _0225BDC0
- add r4, r3, #0
- b _0225BDC2
-_0225BDC0:
- add r4, r2, #0
-_0225BDC2:
- cmp r4, #0xff
- bne _0225BDAA
-_0225BDC6:
- mov r0, #0
- mvn r0, r0
-_0225BDCA:
- add sp, #0x10
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0225BDD0: .word 0x0000069E
-_0225BDD4: .word 0x0225FAAC
-_0225BDD8: .word 0x0225F6A0
-_0225BDDC: .word 0x000006EC
-
- thumb_func_start MOD11_0225BDE0
-MOD11_0225BDE0: ; 0x0225BDE0
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r4, r1, #0
- beq _0225BE26
- ldr r1, _0225BE28 ; =0x0000069E
- ldr r0, [r5]
- ldrb r1, [r5, r1]
- bl MOD11_0223022C
- add r1, r0, #0
- ldr r0, [r5]
- bl MOD11_0222FF7C
- bl MOD11_02253A74
- mov r3, #0
- ldr r7, _0225BE2C ; =0x0225F6A0
- add r1, r3, #0
- b _0225BE22
-_0225BE06:
- lsl r5, r3, #1
- add r2, r1, #0
- add r6, r7, r5
- b _0225BE1C
-_0225BE0E:
- ldrb r5, [r2, r6]
- cmp r4, r5
- bne _0225BE1A
- strb r2, [r0, #2]
- strb r3, [r0, #3]
- pop {r3, r4, r5, r6, r7, pc}
-_0225BE1A:
- add r2, r2, #1
-_0225BE1C:
- cmp r2, #2
- blt _0225BE0E
- add r3, r3, #1
-_0225BE22:
- cmp r3, #3
- blt _0225BE06
-_0225BE26:
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0225BE28: .word 0x0000069E
-_0225BE2C: .word 0x0225F6A0
-
- thumb_func_start MOD11_0225BE30
-MOD11_0225BE30: ; 0x0225BE30
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x60
- str r1, [sp, #0x18]
- add r6, r0, #0
- ldr r1, _0225C134 ; =0x0000069E
- mov r0, #0
- str r0, [sp, #0x44]
- ldrb r1, [r6, r1]
- ldr r0, [r6]
- bl MOD11_0223022C
- add r1, r0, #0
- ldr r0, [r6]
- bl MOD11_0222FF7C
- bl MOD11_02253A74
- mov r1, #0x6f
- lsl r1, r1, #4
- add r7, r6, r1
- sub r1, #0x51
- ldrsb r2, [r6, r1]
- str r0, [sp, #0x1c]
- mov r1, #0x30
- mul r1, r2
- ldr r0, _0225C138 ; =0x0225FAAC
- mov r2, #6
- add r0, r0, r1
- str r0, [sp, #0x48]
- ldr r0, _0225C13C ; =0x0225F690
- add r1, sp, #0x50
- bl MI_CpuCopy8
- add r1, sp, #0x58
- add r0, r6, #0
- add r1, #2
- mov r2, #1
- bl MOD11_0225ACD4
- add r1, sp, #0x54
- add r0, r6, #0
- add r1, #2
- mov r2, #0
- bl MOD11_0225ACD4
- add r0, sp, #0x54
- mov r2, #0
- mov r4, #0xff
- add r0, #2
- b _0225BEB0
-_0225BE94:
- lsl r5, r2, #1
- add r1, sp, #0x50
- mov r3, #0
- add r1, r1, r5
- b _0225BEAA
-_0225BE9E:
- ldrb r5, [r3, r1]
- ldrb r5, [r0, r5]
- cmp r5, #0
- bne _0225BEA8
- strb r4, [r3, r1]
-_0225BEA8:
- add r3, r3, #1
-_0225BEAA:
- cmp r3, #2
- blt _0225BE9E
- add r2, r2, #1
-_0225BEB0:
- cmp r2, #2
- blt _0225BE94
- mov r0, #0x6a
- lsl r0, r0, #4
- ldrb r0, [r6, r0]
- cmp r0, #0xb
- bhi _0225BEE2
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0225BECA: ; jump table
- .short _0225BEE2 - _0225BECA - 2 ; case 0
- .short _0225BEEC - _0225BECA - 2 ; case 1
- .short _0225BEEC - _0225BECA - 2 ; case 2
- .short _0225BEEC - _0225BECA - 2 ; case 3
- .short _0225BEE2 - _0225BECA - 2 ; case 4
- .short _0225BEEC - _0225BECA - 2 ; case 5
- .short _0225BEE2 - _0225BECA - 2 ; case 6
- .short _0225BEEC - _0225BECA - 2 ; case 7
- .short _0225BEE2 - _0225BECA - 2 ; case 8
- .short _0225BEE2 - _0225BECA - 2 ; case 9
- .short _0225BEE2 - _0225BECA - 2 ; case 10
- .short _0225BEE2 - _0225BECA - 2 ; case 11
-_0225BEE2:
- mov r0, #2
- mov ip, r0
- mov r0, #3
- str r0, [sp, #0x4c]
- b _0225C0C6
-_0225BEEC:
- mov r0, #1
- str r0, [sp, #0x44]
- mov ip, r0
- mov r0, #2
- str r0, [sp, #0x4c]
- add r0, sp, #0x50
- ldrb r1, [r0, #9]
- cmp r1, #1
- bne _0225BF26
- ldrb r0, [r0, #7]
- cmp r0, #1
- bne _0225BF26
- ldr r0, [sp, #0x48]
- ldr r1, [r0, #0x14]
- ldrb r0, [r1, #0xe]
- ldrb r2, [r1, #0xd]
- str r0, [sp, #0x34]
- add r0, #8
- str r0, [sp, #0x34]
- ldrb r0, [r1, #7]
- sub r2, #8
- str r0, [sp, #0x30]
- sub r0, #8
- str r0, [sp, #0x30]
- ldrb r0, [r1, #0xc]
- str r0, [sp, #0x38]
- add r0, #8
- str r0, [sp, #0x38]
- b _0225BF92
-_0225BF26:
- add r0, sp, #0x50
- ldrb r1, [r0, #9]
- cmp r1, #1
- bne _0225BF56
- ldrb r0, [r0, #7]
- cmp r0, #0
- bne _0225BF56
- ldr r0, [sp, #0x48]
- ldr r1, [r0, #0x14]
- ldrb r0, [r1, #0xe]
- ldrb r2, [r1, #0xd]
- str r0, [sp, #0x34]
- add r0, #8
- str r0, [sp, #0x34]
- ldrb r0, [r1, #0xf]
- sub r2, #8
- str r0, [sp, #0x30]
- sub r0, #8
- str r0, [sp, #0x30]
- ldrb r0, [r1, #0xc]
- str r0, [sp, #0x38]
- add r0, #8
- str r0, [sp, #0x38]
- b _0225BF92
-_0225BF56:
- add r0, sp, #0x50
- ldrb r1, [r0, #9]
- cmp r1, #0
- bne _0225BF86
- ldrb r0, [r0, #7]
- cmp r0, #1
- bne _0225BF86
- ldr r0, [sp, #0x48]
- ldr r1, [r0, #0x14]
- ldrb r0, [r1, #6]
- ldrb r2, [r1, #5]
- str r0, [sp, #0x34]
- add r0, #8
- str r0, [sp, #0x34]
- ldrb r0, [r1, #7]
- sub r2, #8
- str r0, [sp, #0x30]
- sub r0, #8
- str r0, [sp, #0x30]
- ldrb r0, [r1, #4]
- str r0, [sp, #0x38]
- add r0, #8
- str r0, [sp, #0x38]
- b _0225BF92
-_0225BF86:
- mov r0, #0
- mvn r0, r0
- str r0, [sp, #0x34]
- str r0, [sp, #0x30]
- str r0, [sp, #0x38]
- add r2, r0, #0
-_0225BF92:
- add r0, sp, #0x50
- ldrb r1, [r0, #6]
- cmp r1, #1
- bne _0225BFBA
- ldrb r0, [r0, #8]
- cmp r0, #1
- bne _0225BFBA
- ldr r0, [sp, #0x48]
- ldr r0, [r0, #0x14]
- ldrb r3, [r0, #2]
- ldrb r4, [r0, #0xb]
- ldrb r5, [r0]
- ldrb r0, [r0, #1]
- add r3, #8
- sub r4, #8
- str r0, [sp, #0x2c]
- sub r0, #8
- add r5, #8
- str r0, [sp, #0x2c]
- b _0225C014
-_0225BFBA:
- add r0, sp, #0x50
- ldrb r1, [r0, #6]
- cmp r1, #1
- bne _0225BFE2
- ldrb r0, [r0, #8]
- cmp r0, #0
- bne _0225BFE2
- ldr r0, [sp, #0x48]
- ldr r0, [r0, #0x14]
- ldrb r3, [r0, #2]
- ldrb r4, [r0, #3]
- ldrb r5, [r0]
- ldrb r0, [r0, #1]
- add r3, #8
- sub r4, #8
- str r0, [sp, #0x2c]
- sub r0, #8
- add r5, #8
- str r0, [sp, #0x2c]
- b _0225C014
-_0225BFE2:
- add r0, sp, #0x50
- ldrb r1, [r0, #6]
- cmp r1, #0
- bne _0225C00A
- ldrb r0, [r0, #8]
- cmp r0, #1
- bne _0225C00A
- ldr r0, [sp, #0x48]
- ldr r0, [r0, #0x14]
- ldrb r3, [r0, #0xa]
- ldrb r4, [r0, #0xb]
- ldrb r5, [r0, #8]
- ldrb r0, [r0, #9]
- add r3, #8
- sub r4, #8
- str r0, [sp, #0x2c]
- sub r0, #8
- add r5, #8
- str r0, [sp, #0x2c]
- b _0225C014
-_0225C00A:
- mov r3, #0
- mvn r3, r3
- add r4, r3, #0
- add r5, r3, #0
- str r3, [sp, #0x2c]
-_0225C014:
- mov r0, #0
- mvn r0, r0
- str r0, [sp, #0x40]
- str r0, [sp, #0x3c]
- str r0, [sp, #0x28]
- str r0, [sp, #0x24]
- ldr r0, [sp, #0x34]
- cmp r0, r3
- beq _0225C04A
- add r1, r0, #0
- ldr r0, [sp, #0x40]
- cmp r1, r0
- beq _0225C032
- cmp r3, r0
- beq _0225C04A
-_0225C032:
- mov r1, #0
- ldr r0, [sp, #0x34]
- mvn r1, r1
- cmp r0, r1
- bne _0225C044
- cmp r3, r1
- beq _0225C044
- str r3, [sp, #0x34]
- b _0225C04A
-_0225C044:
- mov r0, #2
- str r3, [sp, #0x40]
- str r0, [sp, #0x20]
-_0225C04A:
- ldr r0, [sp, #0x30]
- cmp r0, r4
- beq _0225C074
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- beq _0225C05C
- cmp r4, r1
- beq _0225C074
-_0225C05C:
- mov r1, #0
- ldr r0, [sp, #0x30]
- mvn r1, r1
- cmp r0, r1
- bne _0225C06E
- cmp r4, r1
- beq _0225C06E
- str r4, [sp, #0x30]
- b _0225C074
-_0225C06E:
- mov r0, #3
- str r4, [sp, #0x40]
- str r0, [sp, #0x20]
-_0225C074:
- mov r1, #0
- ldr r0, [sp, #0x38]
- mvn r1, r1
- cmp r0, r1
- beq _0225C082
- cmp r5, r1
- beq _0225C096
-_0225C082:
- mov r1, #0
- ldr r0, [sp, #0x38]
- mvn r1, r1
- cmp r0, r1
- bne _0225C094
- cmp r5, r1
- beq _0225C094
- str r5, [sp, #0x38]
- b _0225C096
-_0225C094:
- str r2, [sp, #0x3c]
-_0225C096:
- mov r1, #0
- mvn r1, r1
- cmp r2, r1
- beq _0225C0A8
- ldr r0, [sp, #0x2c]
- cmp r0, r1
- bne _0225C0A8
- str r2, [sp, #0x2c]
- b _0225C0C6
-_0225C0A8:
- mov r1, #0
- mvn r1, r1
- cmp r2, r1
- bne _0225C0B6
- ldr r0, [sp, #0x2c]
- cmp r0, r1
- bne _0225C0C6
-_0225C0B6:
- ldr r0, [sp, #0x2c]
- str r0, [sp, #0x3c]
- ldr r0, [sp, #0x20]
- cmp r0, #2
- bne _0225C0C4
- str r2, [sp, #0x24]
- b _0225C0C6
-_0225C0C4:
- str r2, [sp, #0x28]
-_0225C0C6:
- ldr r0, [sp, #0x18]
- cmp r0, #1
- beq _0225C0CE
- b _0225C236
-_0225C0CE:
- ldr r0, [sp, #0x44]
- cmp r0, #0
- bne _0225C17A
- ldr r0, [sp, #0x1c]
- mov r1, #6
- ldrsb r1, [r0, r1]
- mov r0, #0x6a
- lsl r0, r0, #4
- ldrb r0, [r6, r0]
- cmp r1, r0
- bne _0225C0F6
- ldr r0, [sp, #0x1c]
- mov r1, #4
- ldrsb r0, [r0, r1]
- mov r1, #5
- strb r0, [r7, #2]
- ldr r0, [sp, #0x1c]
- ldrsb r0, [r0, r1]
- strb r0, [r7, #1]
- b _0225C12C
-_0225C0F6:
- add r0, sp, #0x50
- ldrb r1, [r0, #0xd]
- cmp r1, #1
- bne _0225C106
- mov r0, #0
- strb r0, [r7, #2]
- strb r0, [r7, #1]
- b _0225C12C
-_0225C106:
- ldrb r1, [r0, #0xb]
- cmp r1, #1
- bne _0225C116
- mov r0, #1
- strb r0, [r7, #2]
- mov r0, #0
- strb r0, [r7, #1]
- b _0225C12C
-_0225C116:
- ldrb r0, [r0, #0xa]
- cmp r0, #1
- bne _0225C126
- mov r0, #0
- strb r0, [r7, #2]
- mov r0, #1
- strb r0, [r7, #1]
- b _0225C12C
-_0225C126:
- mov r0, #1
- strb r0, [r7, #2]
- strb r0, [r7, #1]
-_0225C12C:
- mov r0, #1
- ldrsb r0, [r7, r0]
- ldr r2, _0225C13C ; =0x0225F690
- b _0225C140
- .align 2, 0
-_0225C134: .word 0x0000069E
-_0225C138: .word 0x0225FAAC
-_0225C13C: .word 0x0225F690
-_0225C140:
- lsl r3, r0, #1
- mov r0, #2
- ldrsb r1, [r7, r0]
- add r0, r2, r3
- ldrb r1, [r1, r0]
- ldr r0, [sp, #0x48]
- lsl r3, r1, #2
- ldr r0, [r0, #0x14]
- ldr r1, [sp, #0x48]
- add r0, r0, r3
- ldrb r0, [r0, #1]
- sub r0, #8
- str r0, [sp]
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp, #4]
- ldr r4, [r1, #0x14]
- ldr r0, _0225C418 ; =0x000006EC
- add r2, r4, r3
- ldrb r1, [r2, #2]
- ldrb r2, [r2, #3]
- ldrb r3, [r4, r3]
- ldr r0, [r6, r0]
- add r1, #8
- sub r2, #8
- add r3, #8
- bl MOD11_0225D5FC
- b _0225C22E
-_0225C17A:
- mov r2, #0
- strb r2, [r7, #2]
- ldr r0, [sp, #0x24]
- sub r1, r2, #1
- strb r2, [r7, #1]
- cmp r0, r1
- bne _0225C18E
- ldr r0, [sp, #0x28]
- cmp r0, r1
- beq _0225C198
-_0225C18E:
- mov r1, #0
- ldr r0, [sp, #0x40]
- mvn r1, r1
- cmp r0, r1
- bne _0225C1B2
-_0225C198:
- ldr r0, [sp, #0x2c]
- ldr r1, [sp, #0x34]
- str r0, [sp]
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp, #4]
- ldr r0, _0225C418 ; =0x000006EC
- ldr r2, [sp, #0x30]
- ldr r0, [r6, r0]
- ldr r3, [sp, #0x38]
- bl MOD11_0225D5FC
- b _0225C210
-_0225C1B2:
- ldr r0, [sp, #0x24]
- cmp r0, r1
- beq _0225C1E8
- ldr r0, [sp, #0x28]
- cmp r0, r1
- bne _0225C1E8
- ldr r0, [sp, #0x38]
- ldr r1, [sp, #0x34]
- str r0, [sp]
- ldr r0, [sp, #0x34]
- ldr r2, [sp, #0x38]
- str r0, [sp, #4]
- ldr r0, [sp, #0x24]
- ldr r3, [sp, #0x30]
- str r0, [sp, #8]
- ldr r0, [sp, #0x30]
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x2c]
- str r0, [sp, #0x10]
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp, #0x14]
- ldr r0, _0225C418 ; =0x000006EC
- ldr r0, [r6, r0]
- bl MOD11_0225D52C
- b _0225C210
-_0225C1E8:
- ldr r0, [sp, #0x38]
- ldr r1, [sp, #0x34]
- str r0, [sp]
- ldr r0, [sp, #0x34]
- ldr r2, [sp, #0x38]
- str r0, [sp, #4]
- ldr r0, [sp, #0x2c]
- ldr r3, [sp, #0x30]
- str r0, [sp, #8]
- ldr r0, [sp, #0x30]
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x28]
- str r0, [sp, #0x10]
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp, #0x14]
- ldr r0, _0225C418 ; =0x000006EC
- ldr r0, [r6, r0]
- bl MOD11_0225D52C
-_0225C210:
- mov r1, #0
- ldr r0, [sp, #0x40]
- mvn r1, r1
- cmp r0, r1
- beq _0225C22E
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp]
- ldr r0, _0225C418 ; =0x000006EC
- ldr r1, [sp, #0x40]
- ldr r0, [r6, r0]
- ldr r2, [sp, #0x3c]
- ldr r3, [sp, #0x20]
- bl MOD11_0225D620
-_0225C22E:
- mov r0, #0
- add sp, #0x60
- mvn r0, r0
- pop {r3, r4, r5, r6, r7, pc}
-_0225C236:
- ldr r0, [sp, #0x44]
- cmp r0, #0
- bne _0225C24A
- ldr r2, [sp, #0x4c]
- add r0, r7, #0
- mov r1, ip
- add r3, sp, #0x50
- bl MOD11_0225C574
- b _0225C256
-_0225C24A:
- ldr r2, [sp, #0x4c]
- add r0, r7, #0
- mov r1, ip
- mov r3, #0
- bl MOD11_0225C574
-_0225C256:
- cmp r0, #0x20
- bhi _0225C276
- bhs _0225C284
- cmp r0, #2
- bhi _0225C270
- cmp r0, #1
- blo _0225C26E
- bne _0225C268
- b _0225C3BE
-_0225C268:
- cmp r0, #2
- bne _0225C26E
- b _0225C40A
-_0225C26E:
- b _0225C410
-_0225C270:
- cmp r0, #0x10
- beq _0225C284
- b _0225C410
-_0225C276:
- cmp r0, #0x40
- bhi _0225C27E
- beq _0225C284
- b _0225C410
-_0225C27E:
- cmp r0, #0x80
- beq _0225C284
- b _0225C410
-_0225C284:
- ldr r0, [sp, #0x44]
- cmp r0, #0
- bne _0225C2CA
- mov r0, #1
- ldrsb r0, [r7, r0]
- ldr r2, _0225C41C ; =0x0225F690
- lsl r3, r0, #1
- mov r0, #2
- ldrsb r1, [r7, r0]
- add r0, r2, r3
- ldrb r1, [r1, r0]
- ldr r0, [sp, #0x48]
- lsl r3, r1, #2
- ldr r0, [r0, #0x14]
- ldr r1, [sp, #0x48]
- add r0, r0, r3
- ldrb r0, [r0, #1]
- sub r0, #8
- str r0, [sp]
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp, #4]
- ldr r4, [r1, #0x14]
- ldr r0, _0225C418 ; =0x000006EC
- add r2, r4, r3
- ldrb r1, [r2, #2]
- ldrb r2, [r2, #3]
- ldrb r3, [r4, r3]
- ldr r0, [r6, r0]
- add r1, #8
- sub r2, #8
- add r3, #8
- bl MOD11_0225D5FC
- b _0225C410
-_0225C2CA:
- mov r2, #1
- ldrsb r0, [r7, r2]
- cmp r0, #0
- bne _0225C38C
- ldr r0, [sp, #0x28]
- sub r1, r2, #2
- cmp r0, r1
- bne _0225C2E0
- ldr r0, [sp, #0x24]
- cmp r0, r1
- beq _0225C2EA
-_0225C2E0:
- mov r1, #0
- ldr r0, [sp, #0x40]
- mvn r1, r1
- cmp r0, r1
- bne _0225C304
-_0225C2EA:
- ldr r0, [sp, #0x2c]
- ldr r1, [sp, #0x34]
- str r0, [sp]
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp, #4]
- ldr r0, _0225C418 ; =0x000006EC
- ldr r2, [sp, #0x30]
- ldr r0, [r6, r0]
- ldr r3, [sp, #0x38]
- bl MOD11_0225D5FC
- b _0225C362
-_0225C304:
- ldr r0, [sp, #0x24]
- cmp r0, r1
- beq _0225C33A
- ldr r0, [sp, #0x28]
- cmp r0, r1
- bne _0225C33A
- ldr r0, [sp, #0x38]
- ldr r1, [sp, #0x34]
- str r0, [sp]
- ldr r0, [sp, #0x34]
- ldr r2, [sp, #0x38]
- str r0, [sp, #4]
- ldr r0, [sp, #0x24]
- ldr r3, [sp, #0x30]
- str r0, [sp, #8]
- ldr r0, [sp, #0x30]
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x2c]
- str r0, [sp, #0x10]
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp, #0x14]
- ldr r0, _0225C418 ; =0x000006EC
- ldr r0, [r6, r0]
- bl MOD11_0225D52C
- b _0225C362
-_0225C33A:
- ldr r0, [sp, #0x38]
- ldr r1, [sp, #0x34]
- str r0, [sp]
- ldr r0, [sp, #0x34]
- ldr r2, [sp, #0x38]
- str r0, [sp, #4]
- ldr r0, [sp, #0x2c]
- ldr r3, [sp, #0x30]
- str r0, [sp, #8]
- ldr r0, [sp, #0x30]
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x28]
- str r0, [sp, #0x10]
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp, #0x14]
- ldr r0, _0225C418 ; =0x000006EC
- ldr r0, [r6, r0]
- bl MOD11_0225D52C
-_0225C362:
- mov r1, #0
- ldr r0, [sp, #0x40]
- mvn r1, r1
- cmp r0, r1
- beq _0225C382
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp]
- ldr r0, _0225C418 ; =0x000006EC
- ldr r1, [sp, #0x40]
- ldr r0, [r6, r0]
- ldr r2, [sp, #0x3c]
- ldr r3, [sp, #0x20]
- bl MOD11_0225D620
- b _0225C410
-_0225C382:
- ldr r0, _0225C418 ; =0x000006EC
- ldr r0, [r6, r0]
- bl MOD11_0225D664
- b _0225C410
-_0225C38C:
- ldr r0, [sp, #0x48]
- ldr r1, [sp, #0x48]
- ldr r0, [r0, #0x14]
- ldrb r0, [r0, #0x11]
- sub r0, #8
- str r0, [sp]
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp, #4]
- ldr r3, [r1, #0x14]
- ldr r0, _0225C418 ; =0x000006EC
- ldrb r1, [r3, #0x12]
- ldrb r2, [r3, #0x13]
- ldrb r3, [r3, #0x10]
- ldr r0, [r6, r0]
- add r1, #8
- sub r2, #8
- add r3, #8
- bl MOD11_0225D5FC
- ldr r0, _0225C418 ; =0x000006EC
- ldr r0, [r6, r0]
- bl MOD11_0225D664
- b _0225C410
-_0225C3BE:
- ldr r0, [sp, #0x44]
- cmp r0, #1
- bne _0225C3E8
- mov r0, #1
- ldrsb r0, [r7, r0]
- cmp r0, #0
- ble _0225C3D2
- add sp, #0x60
- mov r0, #4
- pop {r3, r4, r5, r6, r7, pc}
-_0225C3D2:
- add r2, sp, #0x58
- mov r0, #0
- add r2, #2
- b _0225C3E2
-_0225C3DA:
- ldrb r1, [r2, r0]
- cmp r1, #1
- beq _0225C414
- add r0, r0, #1
-_0225C3E2:
- cmp r0, #4
- blt _0225C3DA
- b _0225C410
-_0225C3E8:
- mov r0, #1
- ldrsb r0, [r7, r0]
- ldr r2, _0225C41C ; =0x0225F690
- lsl r3, r0, #1
- mov r0, #2
- ldrsb r1, [r7, r0]
- add r0, r2, r3
- ldrb r0, [r1, r0]
- cmp r0, #4
- beq _0225C414
- add r1, sp, #0x58
- add r1, #2
- ldrb r1, [r1, r0]
- cmp r1, #1
- bne _0225C410
- add sp, #0x60
- pop {r3, r4, r5, r6, r7, pc}
-_0225C40A:
- add sp, #0x60
- mov r0, #4
- pop {r3, r4, r5, r6, r7, pc}
-_0225C410:
- mov r0, #0
- mvn r0, r0
-_0225C414:
- add sp, #0x60
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0225C418: .word 0x000006EC
-_0225C41C: .word 0x0225F690
-
- thumb_func_start MOD11_0225C420
-MOD11_0225C420: ; 0x0225C420
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- add r5, r0, #0
- cmp r4, #4
- beq _0225C470
- ldr r1, _0225C474 ; =0x0000069E
- ldr r0, [r5]
- ldrb r1, [r5, r1]
- bl MOD11_0223022C
- add r1, r0, #0
- ldr r0, [r5]
- bl MOD11_0222FF7C
- bl MOD11_02253A74
- mov r1, #0x6a
- lsl r1, r1, #4
- ldrb r1, [r5, r1]
- mov r3, #0
- ldr r7, _0225C478 ; =0x0225F690
- strb r1, [r0, #6]
- add r1, r3, #0
- b _0225C46C
-_0225C450:
- lsl r5, r3, #1
- add r2, r1, #0
- add r6, r7, r5
- b _0225C466
-_0225C458:
- ldrb r5, [r2, r6]
- cmp r4, r5
- bne _0225C464
- strb r2, [r0, #4]
- strb r3, [r0, #5]
- pop {r3, r4, r5, r6, r7, pc}
-_0225C464:
- add r2, r2, #1
-_0225C466:
- cmp r2, #2
- blt _0225C458
- add r3, r3, #1
-_0225C46C:
- cmp r3, #3
- blt _0225C450
-_0225C470:
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0225C474: .word 0x0000069E
-_0225C478: .word 0x0225F690
-
- thumb_func_start MOD11_0225C47C
-MOD11_0225C47C: ; 0x0225C47C
- push {r4, r5, r6, lr}
- sub sp, #8
- add r6, r0, #0
- mov r0, #0x6f
- lsl r0, r0, #4
- add r3, r0, #0
- sub r3, #0x51
- ldrsb r5, [r6, r3]
- mov r3, #0x30
- ldr r2, _0225C568 ; =0x0225FAAC
- mul r3, r5
- add r4, r6, r0
- add r5, r2, r3
- cmp r1, #1
- bne _0225C4DA
- mov r1, #1
- ldrsb r2, [r4, r1]
- mov r3, #2
- ldr r1, _0225C56C ; =0x0225F684
- ldrsb r3, [r4, r3]
- add r1, r1, r2
- sub r0, r0, #4
- ldrb r2, [r3, r1]
- ldr r1, [r5, #0x14]
- lsl r3, r2, #2
- add r1, r1, r3
- ldrb r1, [r1, #1]
- sub r1, #8
- str r1, [sp]
- mov r1, #0x11
- lsl r1, r1, #0x10
- str r1, [sp, #4]
- ldr r4, [r5, #0x14]
- ldr r0, [r6, r0]
- add r2, r4, r3
- ldrb r1, [r2, #2]
- ldrb r2, [r2, #3]
- ldrb r3, [r4, r3]
- add r1, #8
- sub r2, #8
- add r3, #8
- bl MOD11_0225D5FC
- mov r0, #0
- add sp, #8
- mvn r0, r0
- pop {r4, r5, r6, pc}
-_0225C4DA:
- ldr r3, _0225C56C ; =0x0225F684
- add r0, r4, #0
- mov r1, #1
- mov r2, #2
- bl MOD11_0225C574
- cmp r0, #0x20
- bhi _0225C502
- bhs _0225C50E
- cmp r0, #2
- bhi _0225C4FC
- cmp r0, #1
- blo _0225C560
- beq _0225C548
- cmp r0, #2
- beq _0225C55A
- b _0225C560
-_0225C4FC:
- cmp r0, #0x10
- beq _0225C50E
- b _0225C560
-_0225C502:
- cmp r0, #0x40
- bhi _0225C50A
- beq _0225C50E
- b _0225C560
-_0225C50A:
- cmp r0, #0x80
- bne _0225C560
-_0225C50E:
- mov r0, #1
- ldrsb r3, [r4, r0]
- mov r0, #2
- ldr r2, _0225C56C ; =0x0225F684
- ldrsb r1, [r4, r0]
- add r0, r2, r3
- ldrb r1, [r1, r0]
- ldr r0, [r5, #0x14]
- lsl r3, r1, #2
- add r0, r0, r3
- ldrb r0, [r0, #1]
- sub r0, #8
- str r0, [sp]
- mov r0, #0x11
- lsl r0, r0, #0x10
- str r0, [sp, #4]
- ldr r4, [r5, #0x14]
- ldr r0, _0225C570 ; =0x000006EC
- add r2, r4, r3
- ldrb r1, [r2, #2]
- ldrb r2, [r2, #3]
- ldrb r3, [r4, r3]
- ldr r0, [r6, r0]
- add r1, #8
- sub r2, #8
- add r3, #8
- bl MOD11_0225D5FC
- b _0225C560
-_0225C548:
- mov r0, #1
- ldrsb r3, [r4, r0]
- mov r0, #2
- ldr r2, _0225C56C ; =0x0225F684
- ldrsb r1, [r4, r0]
- add r0, r2, r3
- add sp, #8
- ldrb r0, [r1, r0]
- pop {r4, r5, r6, pc}
-_0225C55A:
- add sp, #8
- mov r0, #1
- pop {r4, r5, r6, pc}
-_0225C560:
- mov r0, #0
- mvn r0, r0
- add sp, #8
- pop {r4, r5, r6, pc}
- .align 2, 0
-_0225C568: .word 0x0225FAAC
-_0225C56C: .word 0x0225F684
-_0225C570: .word 0x000006EC
-
- thumb_func_start MOD11_0225C574
-MOD11_0225C574: ; 0x0225C574
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- mov r1, #2
- ldrsb r1, [r0, r1]
- add r6, r2, #0
- add r2, r3, #0
- cmp r1, r4
- blt _0225C588
- sub r1, r4, #1
- strb r1, [r0, #2]
-_0225C588:
- mov r1, #1
- ldrsb r1, [r0, r1]
- cmp r1, r6
- blt _0225C594
- sub r1, r6, #1
- strb r1, [r0, #1]
-_0225C594:
- mov r7, #2
- ldrsb r1, [r0, r7]
- mov r5, #1
- mov r3, #0x40
- str r1, [sp]
- ldrsb r1, [r0, r5]
- mov ip, r1
- ldr r1, _0225C764 ; =0x021C48B8
- ldr r1, [r1, #0x48]
- tst r3, r1
- beq _0225C5FA
- mov r1, ip
- sub r1, r1, #1
- strb r1, [r0, #1]
- ldrsb r1, [r0, r5]
- cmp r1, #0
- bge _0225C5BA
- mov r1, #0
- strb r1, [r0, #1]
-_0225C5BA:
- cmp r2, #0
- beq _0225C5F6
- mov r3, #1
- mov r1, #2
- ldrsb r3, [r0, r3]
- ldrsb r1, [r0, r1]
- mul r3, r4
- add r1, r1, r3
- ldrb r1, [r2, r1]
- cmp r1, #0xff
- bne _0225C5F6
- add r1, r0, #1
- mov r7, #0
- mov r6, #1
-_0225C5D6:
- ldrsb r3, [r1, r7]
- sub r3, r3, #1
- strb r3, [r1]
- ldrsb r3, [r0, r6]
- cmp r3, #0
- bge _0225C5E8
- mov r1, ip
- strb r1, [r0, #1]
- b _0225C5F6
-_0225C5E8:
- mov r5, #2
- ldrsb r5, [r0, r5]
- mul r3, r4
- add r5, r2, r5
- ldrb r3, [r3, r5]
- cmp r3, #0xff
- beq _0225C5D6
-_0225C5F6:
- mov r5, #0x40
- b _0225C70E
-_0225C5FA:
- mov r3, #0x80
- tst r3, r1
- beq _0225C650
- mov r1, ip
- add r1, r1, #1
- strb r1, [r0, #1]
- ldrsb r1, [r0, r5]
- cmp r1, r6
- blt _0225C610
- sub r1, r6, #1
- strb r1, [r0, #1]
-_0225C610:
- cmp r2, #0
- beq _0225C64C
- mov r3, #1
- mov r1, #2
- ldrsb r3, [r0, r3]
- ldrsb r1, [r0, r1]
- mul r3, r4
- add r1, r1, r3
- ldrb r1, [r2, r1]
- cmp r1, #0xff
- bne _0225C64C
- add r1, r0, #1
- mov r7, #1
-_0225C62A:
- mov r3, #0
- ldrsb r3, [r1, r3]
- add r3, r3, #1
- strb r3, [r1]
- ldrsb r3, [r0, r7]
- cmp r3, r6
- blt _0225C63E
- mov r1, ip
- strb r1, [r0, #1]
- b _0225C64C
-_0225C63E:
- mov r5, #2
- ldrsb r5, [r0, r5]
- mul r3, r4
- add r5, r2, r5
- ldrb r3, [r3, r5]
- cmp r3, #0xff
- beq _0225C62A
-_0225C64C:
- mov r5, #0x80
- b _0225C70E
-_0225C650:
- mov r3, #0x20
- tst r3, r1
- beq _0225C6A6
- ldr r1, [sp]
- sub r1, r1, #1
- strb r1, [r0, #2]
- ldrsb r1, [r0, r7]
- cmp r1, #0
- bge _0225C666
- mov r1, #0
- strb r1, [r0, #2]
-_0225C666:
- cmp r2, #0
- beq _0225C6A2
- mov r3, #1
- mov r1, #2
- ldrsb r3, [r0, r3]
- ldrsb r1, [r0, r1]
- mul r3, r4
- add r1, r1, r3
- ldrb r1, [r2, r1]
- cmp r1, #0xff
- bne _0225C6A2
- add r5, r0, #2
- mov r7, #0
- mov r6, #2
-_0225C682:
- ldrsb r1, [r5, r7]
- sub r1, r1, #1
- strb r1, [r5]
- ldrsb r3, [r0, r6]
- cmp r3, #0
- bge _0225C694
- ldr r1, [sp]
- strb r1, [r0, #2]
- b _0225C6A2
-_0225C694:
- mov r1, #1
- ldrsb r1, [r0, r1]
- add r3, r2, r3
- mul r1, r4
- ldrb r1, [r1, r3]
- cmp r1, #0xff
- beq _0225C682
-_0225C6A2:
- mov r5, #0x20
- b _0225C70E
-_0225C6A6:
- mov r3, #0x10
- tst r3, r1
- beq _0225C6FC
- ldr r1, [sp]
- add r1, r1, #1
- strb r1, [r0, #2]
- ldrsb r1, [r0, r7]
- cmp r1, r4
- blt _0225C6BC
- sub r1, r4, #1
- strb r1, [r0, #2]
-_0225C6BC:
- cmp r2, #0
- beq _0225C6F8
- mov r3, #1
- mov r1, #2
- ldrsb r3, [r0, r3]
- ldrsb r1, [r0, r1]
- mul r3, r4
- add r1, r1, r3
- ldrb r1, [r2, r1]
- cmp r1, #0xff
- bne _0225C6F8
- add r5, r0, #2
- mov r7, #0
- mov r6, #2
-_0225C6D8:
- ldrsb r1, [r5, r7]
- add r1, r1, #1
- strb r1, [r5]
- ldrsb r3, [r0, r6]
- cmp r3, r4
- blt _0225C6EA
- ldr r1, [sp]
- strb r1, [r0, #2]
- b _0225C6F8
-_0225C6EA:
- mov r1, #1
- ldrsb r1, [r0, r1]
- add r3, r2, r3
- mul r1, r4
- ldrb r1, [r1, r3]
- cmp r1, #0xff
- beq _0225C6D8
-_0225C6F8:
- mov r5, #0x10
- b _0225C70E
-_0225C6FC:
- add r3, r1, #0
- tst r3, r5
- bne _0225C70E
- tst r1, r7
- beq _0225C70A
- add r5, r7, #0
- b _0225C70E
-_0225C70A:
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0225C70E:
- cmp r2, #0
- beq _0225C738
- mov r1, ip
- add r3, r4, #0
- mul r3, r1
- ldr r1, [sp]
- add r1, r1, r3
- mov r3, #2
- ldrsb r6, [r0, r3]
- mov r3, #1
- ldrsb r3, [r0, r3]
- ldrb r1, [r2, r1]
- mul r3, r4
- add r3, r6, r3
- ldrb r2, [r2, r3]
- cmp r1, r2
- bne _0225C738
- ldr r1, [sp]
- strb r1, [r0, #2]
- mov r1, ip
- strb r1, [r0, #1]
-_0225C738:
- mov r1, #2
- ldrsb r2, [r0, r1]
- ldr r1, [sp]
- cmp r2, r1
- bne _0225C74C
- mov r1, #1
- ldrsb r1, [r0, r1]
- mov r0, ip
- cmp r1, r0
- beq _0225C754
-_0225C74C:
- ldr r0, _0225C768 ; =0x000005DC
- bl FUN_020054C8
- b _0225C75E
-_0225C754:
- mov r0, #0xf0
- tst r0, r5
- beq _0225C75E
- mov r0, #0
- pop {r3, r4, r5, r6, r7, pc}
-_0225C75E:
- add r0, r5, #0
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0225C764: .word 0x021C48B8
-_0225C768: .word 0x000005DC
-
- thumb_func_start MOD11_0225C76C
-MOD11_0225C76C: ; 0x0225C76C
- ldr r1, _0225C774 ; =0x000006F4
- ldrb r0, [r0, r1]
- bx lr
- nop
-_0225C774: .word 0x000006F4
-
- thumb_func_start MOD11_0225C778
-MOD11_0225C778: ; 0x0225C778
- ldr r2, _0225C780 ; =0x000006F4
- strb r1, [r0, r2]
- bx lr
- nop
-_0225C780: .word 0x000006F4
-
- thumb_func_start MOD11_0225C784
-MOD11_0225C784: ; 0x0225C784
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4]
- bl MOD11_02230078
- ldr r0, [r4]
- bl MOD11_02230080
- ldr r0, [r4]
- bl MOD11_022300CC
- ldr r0, [r4]
- bl MOD11_02231268
- cmp r0, #0
- bne _0225C7C0
- ldr r0, _0225C7E4 ; =0x000006FC
- ldrb r0, [r4, r0]
- cmp r0, #2
- blo _0225C7B0
- bl ErrorHandling
-_0225C7B0:
- ldr r1, _0225C7E4 ; =0x000006FC
- add r0, r4, #0
- ldrb r1, [r4, r1]
- lsl r2, r1, #2
- ldr r1, _0225C7E8 ; =0x0225F6B8
- ldr r1, [r1, r2]
- blx r1
- b _0225C7C6
-_0225C7C0:
- add r0, r4, #0
- bl MOD11_0225C8A0
-_0225C7C6:
- mov r1, #0
- mvn r1, r1
- cmp r0, r1
- beq _0225C7E2
- ldr r1, _0225C7EC ; =0x000006FD
- mov r3, #0
- strb r3, [r4, r1]
- add r2, r1, #1
- strb r3, [r4, r2]
- sub r2, r1, #1
- ldrb r2, [r4, r2]
- sub r1, r1, #1
- add r2, r2, #1
- strb r2, [r4, r1]
-_0225C7E2:
- pop {r4, pc}
- .align 2, 0
-_0225C7E4: .word 0x000006FC
-_0225C7E8: .word 0x0225F6B8
-_0225C7EC: .word 0x000006FD
-
- thumb_func_start MOD11_0225C7F0
-MOD11_0225C7F0: ; 0x0225C7F0
- push {r4, lr}
- add r4, r0, #0
- ldr r0, _0225C840 ; =0x000006FD
- ldrb r1, [r4, r0]
- cmp r1, #0
- bne _0225C820
- sub r0, r0, #5
- mov r3, #0x11
- ldr r0, [r4, r0]
- mov r1, #0x80
- mov r2, #0x3c
- lsl r3, r3, #0x10
- bl MOD11_0225D7D0
- ldr r0, _0225C844 ; =0x000006F8
- mov r1, #0x3c
- ldr r0, [r4, r0]
- bl MOD11_0225D820
- ldr r0, _0225C840 ; =0x000006FD
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0225C838
-_0225C820:
- sub r0, r0, #5
- ldr r0, [r4, r0]
- bl MOD11_0225D824
- cmp r0, #1
- bne _0225C838
- ldr r0, _0225C840 ; =0x000006FD
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- mov r0, #0
- pop {r4, pc}
-_0225C838:
- mov r0, #0
- mvn r0, r0
- pop {r4, pc}
- nop
-_0225C840: .word 0x000006FD
-_0225C844: .word 0x000006F8
-
- thumb_func_start MOD11_0225C848
-MOD11_0225C848: ; 0x0225C848
- push {r4, lr}
- add r4, r0, #0
- ldr r0, _0225C898 ; =0x000006FD
- ldrb r1, [r4, r0]
- cmp r1, #0
- bne _0225C878
- sub r0, r0, #5
- mov r3, #0x11
- ldr r0, [r4, r0]
- mov r1, #0x40
- mov r2, #0x16
- lsl r3, r3, #0x10
- bl MOD11_0225D7D0
- ldr r0, _0225C89C ; =0x000006F8
- mov r1, #0x3c
- ldr r0, [r4, r0]
- bl MOD11_0225D820
- ldr r0, _0225C898 ; =0x000006FD
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0225C890
-_0225C878:
- sub r0, r0, #5
- ldr r0, [r4, r0]
- bl MOD11_0225D824
- cmp r0, #1
- bne _0225C890
- ldr r0, _0225C898 ; =0x000006FD
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- mov r0, #1
- pop {r4, pc}
-_0225C890:
- mov r0, #0
- mvn r0, r0
- pop {r4, pc}
- nop
-_0225C898: .word 0x000006FD
-_0225C89C: .word 0x000006F8
-
- thumb_func_start MOD11_0225C8A0
-MOD11_0225C8A0: ; 0x0225C8A0
- push {r4, lr}
- ldr r1, _0225C914 ; =0x000006FD
- add r4, r0, #0
- ldrb r0, [r4, r1]
- cmp r0, #0
- beq _0225C8B2
- cmp r0, #1
- beq _0225C8D0
- b _0225C8F4
-_0225C8B2:
- add r0, r1, #1
- ldrb r0, [r4, r0]
- add r2, r0, #1
- add r0, r1, #1
- strb r2, [r4, r0]
- ldrb r0, [r4, r0]
- cmp r0, #0x3c
- bls _0225C90C
- mov r2, #0
- add r0, r1, #1
- strb r2, [r4, r0]
- ldrb r0, [r4, r1]
- add r0, r0, #1
- strb r0, [r4, r1]
- b _0225C90C
-_0225C8D0:
- sub r0, r1, #5
- mov r3, #0x11
- ldr r0, [r4, r0]
- mov r1, #0x28
- mov r2, #0x92
- lsl r3, r3, #0x10
- bl MOD11_0225D7D0
- ldr r0, _0225C918 ; =0x000006F8
- mov r1, #0x3c
- ldr r0, [r4, r0]
- bl MOD11_0225D820
- ldr r0, _0225C914 ; =0x000006FD
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- b _0225C90C
-_0225C8F4:
- sub r0, r1, #5
- ldr r0, [r4, r0]
- bl MOD11_0225D824
- cmp r0, #1
- bne _0225C90C
- ldr r0, _0225C914 ; =0x000006FD
- ldrb r1, [r4, r0]
- add r1, r1, #1
- strb r1, [r4, r0]
- mov r0, #1
- pop {r4, pc}
-_0225C90C:
- mov r0, #0
- mvn r0, r0
- pop {r4, pc}
- nop
-_0225C914: .word 0x000006FD
-_0225C918: .word 0x000006F8
-
- thumb_func_start MOD11_0225C91C
-MOD11_0225C91C: ; 0x0225C91C
- push {r3, r4, r5, lr}
- sub sp, #0x18
- add r5, r0, #0
- mov r0, #0x1b
- str r0, [sp]
- mov r0, #0x4a
- str r0, [sp, #4]
- mov r0, #0
- add r4, r1, #0
- str r0, [sp, #8]
- mov r0, #1
- str r0, [sp, #0xc]
- str r0, [sp, #0x10]
- ldr r0, _0225C990 ; =0x00004E41
- mov r1, #2
- str r0, [sp, #0x14]
- add r0, r2, #0
- add r2, r5, #0
- add r3, r4, #0
- bl FUN_0200C0DC
- mov r0, #1
- str r0, [sp]
- str r0, [sp, #4]
- ldr r0, _0225C994 ; =0x00004FB9
- mov r2, #0x1b
- add r3, r2, #0
- str r0, [sp, #8]
- add r0, r5, #0
- add r1, r4, #0
- add r3, #0xf9
- bl FUN_0200C00C
- mov r0, #1
- str r0, [sp]
- ldr r0, _0225C998 ; =0x00004FB3
- mov r2, #0x1b
- add r3, r2, #0
- str r0, [sp, #4]
- add r0, r5, #0
- add r1, r4, #0
- add r3, #0xfa
- bl FUN_0200C124
- mov r0, #1
- str r0, [sp]
- ldr r0, _0225C99C ; =0x00004FA8
- mov r2, #0x1b
- add r3, r2, #0
- str r0, [sp, #4]
- add r0, r5, #0
- add r1, r4, #0
- add r3, #0xfb
- bl FUN_0200C13C
- add sp, #0x18
- pop {r3, r4, r5, pc}
- nop
-_0225C990: .word 0x00004E41
-_0225C994: .word 0x00004FB9
-_0225C998: .word 0x00004FB3
-_0225C99C: .word 0x00004FA8
-
- thumb_func_start MOD11_0225C9A0
-MOD11_0225C9A0: ; 0x0225C9A0
- push {r4, lr}
- ldr r1, _0225C9C4 ; =0x00004FB9
- add r4, r0, #0
- bl FUN_0200C358
- ldr r1, _0225C9C8 ; =0x00004E41
- add r0, r4, #0
- bl FUN_0200C368
- ldr r1, _0225C9CC ; =0x00004FB3
- add r0, r4, #0
- bl FUN_0200C378
- ldr r1, _0225C9D0 ; =0x00004FA8
- add r0, r4, #0
- bl FUN_0200C388
- pop {r4, pc}
- .align 2, 0
-_0225C9C4: .word 0x00004FB9
-_0225C9C8: .word 0x00004E41
-_0225C9CC: .word 0x00004FB3
-_0225C9D0: .word 0x00004FA8
-
- thumb_func_start MOD11_0225C9D4
-MOD11_0225C9D4: ; 0x0225C9D4
- push {r4, lr}
- mov r0, #5
- lsl r1, r0, #6
- bl AllocFromHeap
- mov r2, #5
- mov r1, #0
- lsl r2, r2, #6
- add r4, r0, #0
- bl MI_CpuFill8
- add r0, r4, #0
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225C9F0
-MOD11_0225C9F0: ; 0x0225C9F0
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4, #4]
- cmp r0, #0
- beq _0225C9FE
- bl ErrorHandling
-_0225C9FE:
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225CA08
-MOD11_0225CA08: ; 0x0225CA08
- push {r4, r5, r6, r7, lr}
- sub sp, #0x24
- str r0, [sp, #0x14]
- ldr r0, [sp, #0x38]
- str r3, [sp, #0x1c]
- str r0, [sp, #0x38]
- add r6, r1, #0
- str r2, [sp, #0x18]
- ldr r7, [sp, #0x3c]
- bl MOD11_0225C9D4
- ldr r2, [sp, #0x1c]
- ldr r3, [sp, #0x38]
- add r1, r6, #0
- str r0, [sp, #0x20]
- str r7, [sp]
- bl MOD11_0225CB10
- ldr r5, [sp, #0x20]
- mov r4, #0
- add r5, #0x1c
-_0225CA32:
- ldr r0, [sp, #0x14]
- add r1, r6, #0
- ldrb r0, [r0, r4]
- bl MOD11_0225D374
- ldr r1, [sp, #0x1c]
- ldr r2, [sp, #0x20]
- str r1, [sp]
- str r4, [sp, #4]
- str r0, [sp, #8]
- ldr r0, [sp, #0x38]
- mov r1, #0x4f
- str r0, [sp, #0xc]
- lsl r1, r1, #2
- add r1, r2, r1
- ldr r3, [sp, #0x18]
- add r0, r5, #0
- add r2, r6, #0
- str r7, [sp, #0x10]
- bl MOD11_0225CDB0
- add r4, r4, #1
- add r5, #0x30
- cmp r4, #6
- blt _0225CA32
- ldr r0, [sp, #0x20]
- add sp, #0x24
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225CA6C
-MOD11_0225CA6C: ; 0x0225CA6C
- ldr r1, [r0, #4]
- cmp r1, #0
- bne _0225CA8A
- mov r2, #0
-_0225CA74:
- ldr r1, [r0, #0x20]
- cmp r1, #0
- bne _0225CA82
- add r2, r2, #1
- add r0, #0x30
- cmp r2, #6
- blt _0225CA74
-_0225CA82:
- cmp r2, #6
- bne _0225CA8A
- mov r0, #1
- bx lr
-_0225CA8A:
- mov r0, #0
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_0225CA90
-MOD11_0225CA90: ; 0x0225CA90
- push {r3, r4, r5, r6, r7, lr}
- add r6, r0, #0
- add r4, r1, #0
- add r7, r2, #0
- cmp r6, #0
- bne _0225CAA0
- bl ErrorHandling
-_0225CAA0:
- add r0, r6, #0
- add r1, r4, #0
- bl MOD11_0225CC68
- add r5, r6, #0
- mov r4, #0
- add r5, #0x1c
- add r6, #0x18
-_0225CAB0:
- add r0, r5, #0
- add r1, r4, #0
- add r2, r7, #0
- add r3, r6, #0
- bl MOD11_0225D1A8
- add r4, r4, #1
- add r5, #0x30
- cmp r4, #6
- blt _0225CAB0
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225CAC8
-MOD11_0225CAC8: ; 0x0225CAC8
- ldr r1, [r0, #4]
- cmp r1, #0
- bne _0225CAE6
- mov r2, #0
-_0225CAD0:
- ldr r1, [r0, #0x20]
- cmp r1, #0
- bne _0225CADE
- add r2, r2, #1
- add r0, #0x30
- cmp r2, #6
- blt _0225CAD0
-_0225CADE:
- cmp r2, #6
- bne _0225CAE6
- mov r0, #1
- bx lr
-_0225CAE6:
- mov r0, #0
- bx lr
- .align 2, 0
-
- thumb_func_start MOD11_0225CAEC
-MOD11_0225CAEC: ; 0x0225CAEC
- push {r4, r5, r6, lr}
- add r6, r0, #0
- ldr r0, [r6]
- bl FUN_0200C3DC
- mov r4, #0
- add r5, r6, #0
-_0225CAFA:
- ldr r0, [r5, #0x1c]
- bl FUN_0200C3DC
- add r4, r4, #1
- add r5, #0x30
- cmp r4, #6
- blt _0225CAFA
- add r0, r6, #0
- bl MOD11_0225C9F0
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_0225CB10
-MOD11_0225CB10: ; 0x0225CB10
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- ldr r0, [r5]
- add r6, r1, #0
- add r4, r2, #0
- add r7, r3, #0
- mov r1, #0
- cmp r0, #0
- bne _0225CB2A
- ldr r0, [r5, #4]
- cmp r0, #0
- bne _0225CB2A
- mov r1, #1
-_0225CB2A:
- cmp r1, #0
- bne _0225CB32
- bl ErrorHandling
-_0225CB32:
- add r0, r5, #0
- mov r1, #0
- mov r2, #0x1c
- bl MI_CpuFill8
- ldr r1, [sp, #0x18]
- ldr r2, _0225CBA8 ; =0x0225FE48
- add r0, r7, #0
- bl FUN_0200C154
- str r0, [r5]
- cmp r6, #0
- ldr r0, [r5]
- bne _0225CB68
- ldr r2, _0225CBAC ; =0x0225FE38
- lsl r3, r4, #1
- ldrsh r2, [r2, r3]
- mov r1, #0x16
- lsl r1, r1, #4
- bl FUN_0200C714
- ldr r0, [r5]
- mov r1, #8
- ldr r0, [r0]
- bl FUN_02020130
- b _0225CB80
-_0225CB68:
- ldr r2, _0225CBB0 ; =0x0225FE30
- lsl r3, r4, #1
- ldrsh r2, [r2, r3]
- mov r1, #0x5f
- mvn r1, r1
- bl FUN_0200C714
- ldr r0, [r5]
- mov r1, #7
- ldr r0, [r0]
- bl FUN_02020130
-_0225CB80:
- ldr r0, [r5]
- ldr r0, [r0]
- bl FUN_0200C59C
- str r6, [r5, #0xc]
- mov r2, #0x7d
- str r4, [r5, #0x10]
- mov r0, #0
- strb r0, [r5, #0x1a]
- ldr r0, _0225CBB4 ; =MOD11_0225CBBC
- add r1, r5, #0
- lsl r2, r2, #2
- bl FUN_0200CA44
- str r0, [r5, #4]
- ldr r0, _0225CBB8 ; =0x00000711
- bl FUN_020054C8
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0225CBA8: .word 0x0225FE48
-_0225CBAC: .word 0x0225FE38
-_0225CBB0: .word 0x0225FE30
-_0225CBB4: .word MOD11_0225CBBC
-_0225CBB8: .word 0x00000711
-
- thumb_func_start MOD11_0225CBBC
-MOD11_0225CBBC: ; 0x0225CBBC
- push {r3, r4, lr}
- sub sp, #4
- add r4, r1, #0
- ldrb r1, [r4, #0x1a]
- cmp r1, #0
- beq _0225CBCE
- cmp r1, #1
- beq _0225CBEA
- b _0225CC52
-_0225CBCE:
- add r1, sp, #0
- ldr r0, [r4]
- add r1, #2
- add r2, sp, #0
- bl FUN_0200C7A0
- add r1, sp, #0
- mov r0, #2
- ldrsh r0, [r1, r0]
- lsl r0, r0, #8
- str r0, [r4, #0x14]
- ldrb r0, [r4, #0x1a]
- add r0, r0, #1
- strb r0, [r4, #0x1a]
-_0225CBEA:
- ldr r0, [r4, #0xc]
- ldr r1, [r4, #0x14]
- cmp r0, #0
- bne _0225CC22
- mov r0, #0xe
- lsl r0, r0, #8
- sub r2, r1, r0
- lsl r1, r0, #4
- str r2, [r4, #0x14]
- cmp r2, r1
- bgt _0225CC0A
- lsl r0, r0, #4
- str r0, [r4, #0x14]
- ldrb r0, [r4, #0x1a]
- add r0, r0, #1
- strb r0, [r4, #0x1a]
-_0225CC0A:
- ldr r2, [r4, #0x10]
- ldr r1, [r4, #0x14]
- lsl r3, r2, #1
- ldr r2, _0225CC60 ; =0x0225FE38
- lsl r1, r1, #8
- ldrsh r2, [r2, r3]
- ldr r0, [r4]
- asr r1, r1, #0x10
- bl FUN_0200C714
- add sp, #4
- pop {r3, r4, pc}
-_0225CC22:
- mov r0, #0xe
- lsl r0, r0, #8
- add r1, r1, r0
- mov r0, #2
- lsl r0, r0, #0xc
- str r1, [r4, #0x14]
- cmp r1, r0
- blt _0225CC3A
- str r0, [r4, #0x14]
- ldrb r0, [r4, #0x1a]
- add r0, r0, #1
- strb r0, [r4, #0x1a]
-_0225CC3A:
- ldr r2, [r4, #0x10]
- ldr r1, [r4, #0x14]
- lsl r3, r2, #1
- ldr r2, _0225CC64 ; =0x0225FE30
- lsl r1, r1, #8
- ldrsh r2, [r2, r3]
- ldr r0, [r4]
- asr r1, r1, #0x10
- bl FUN_0200C714
- add sp, #4
- pop {r3, r4, pc}
-_0225CC52:
- bl FUN_0200CAB4
- mov r0, #0
- str r0, [r4, #4]
- add sp, #4
- pop {r3, r4, pc}
- nop
-_0225CC60: .word 0x0225FE38
-_0225CC64: .word 0x0225FE30
-
- thumb_func_start MOD11_0225CC68
-MOD11_0225CC68: ; 0x0225CC68
- push {r3, r4, r5, lr}
- add r5, r0, #0
- ldr r0, [r5]
- add r4, r1, #0
- cmp r0, #0
- beq _0225CC7A
- ldr r0, [r5, #4]
- cmp r0, #0
- beq _0225CC7E
-_0225CC7A:
- bl ErrorHandling
-_0225CC7E:
- mov r0, #0
- strb r0, [r5, #0x1a]
- str r4, [r5, #8]
- cmp r4, #0
- bne _0225CC8C
- mov r0, #4
- b _0225CC8C
-_0225CC8C:
- strb r0, [r5, #0x1b]
- mov r2, #0x7d
- ldr r0, _0225CCA0 ; =MOD11_0225CCA4
- add r1, r5, #0
- lsl r2, r2, #2
- bl FUN_0200CA44
- str r0, [r5, #4]
- pop {r3, r4, r5, pc}
- nop
-_0225CCA0: .word MOD11_0225CCA4
-
- thumb_func_start MOD11_0225CCA4
-MOD11_0225CCA4: ; 0x0225CCA4
- push {r3, r4, r5, lr}
- sub sp, #8
- add r4, r1, #0
- add r5, r0, #0
- ldrb r0, [r4, #0x1a]
- cmp r0, #0
- beq _0225CCBC
- cmp r0, #1
- beq _0225CCFC
- cmp r0, #2
- beq _0225CD10
- b _0225CD8E
-_0225CCBC:
- add r1, sp, #4
- ldr r0, [r4]
- add r1, #2
- add r2, sp, #4
- bl FUN_0200C7A0
- add r1, sp, #4
- mov r0, #2
- ldrsh r0, [r1, r0]
- mov r1, #1
- lsl r0, r0, #8
- str r0, [r4, #0x14]
- ldr r0, [r4]
- bl FUN_0200C90C
- mov r0, #1
- lsl r0, r0, #0xc
- strh r0, [r4, #0x18]
- mov r0, #0x18
- ldrsh r0, [r4, r0]
- mov r1, #0
- mov r2, #0x3f
- asr r3, r0, #8
- mov r0, #0x10
- sub r0, r0, r3
- str r0, [sp]
- ldr r0, _0225CDA0 ; =0x04000050
- bl G2x_SetBlendAlpha_
- ldrb r0, [r4, #0x1a]
- add r0, r0, #1
- strb r0, [r4, #0x1a]
-_0225CCFC:
- ldrb r0, [r4, #0x1b]
- cmp r0, #0
- beq _0225CD0A
- sub r0, r0, #1
- add sp, #8
- strb r0, [r4, #0x1b]
- pop {r3, r4, r5, pc}
-_0225CD0A:
- ldrb r0, [r4, #0x1a]
- add r0, r0, #1
- strb r0, [r4, #0x1a]
-_0225CD10:
- ldr r0, [r4, #8]
- cmp r0, #0
- bne _0225CD54
- ldr r0, [r4, #0xc]
- ldr r1, [r4, #0x14]
- cmp r0, #0
- bne _0225CD3A
- mov r0, #1
- lsl r0, r0, #0xa
- sub r1, r1, r0
- str r1, [r4, #0x14]
- ldr r2, [r4, #0x10]
- lsl r1, r1, #8
- lsl r3, r2, #1
- ldr r2, _0225CDA4 ; =0x0225FE38
- ldr r0, [r4]
- ldrsh r2, [r2, r3]
- asr r1, r1, #0x10
- bl FUN_0200C714
- b _0225CD54
-_0225CD3A:
- mov r0, #1
- lsl r0, r0, #0xa
- add r1, r1, r0
- str r1, [r4, #0x14]
- ldr r2, [r4, #0x10]
- lsl r1, r1, #8
- lsl r3, r2, #1
- ldr r2, _0225CDA8 ; =0x0225FE30
- ldr r0, [r4]
- ldrsh r2, [r2, r3]
- asr r1, r1, #0x10
- bl FUN_0200C714
-_0225CD54:
- mov r1, #0x18
- ldrsh r2, [r4, r1]
- add r0, r1, #0
- add r0, #0xe8
- sub r0, r2, r0
- strh r0, [r4, #0x18]
- ldrsh r0, [r4, r1]
- cmp r0, #0
- bgt _0225CD78
- mov r1, #0
- strh r1, [r4, #0x18]
- ldr r0, [r4]
- ldr r0, [r0]
- bl FUN_0200C63C
- ldrb r0, [r4, #0x1a]
- add r0, r0, #1
- strb r0, [r4, #0x1a]
-_0225CD78:
- mov r0, #0x18
- ldrsh r0, [r4, r0]
- add sp, #8
- asr r1, r0, #8
- mov r0, #0x10
- sub r0, r0, r1
- lsl r0, r0, #8
- orr r1, r0
- ldr r0, _0225CDAC ; =0x04000052
- strh r1, [r0]
- pop {r3, r4, r5, pc}
-_0225CD8E:
- bl MOD11_02231678
- add r0, r5, #0
- bl FUN_0200CAB4
- mov r0, #0
- str r0, [r4, #4]
- add sp, #8
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0225CDA0: .word 0x04000050
-_0225CDA4: .word 0x0225FE38
-_0225CDA8: .word 0x0225FE30
-_0225CDAC: .word 0x04000052
-
- thumb_func_start MOD11_0225CDB0
-MOD11_0225CDB0: ; 0x0225CDB0
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- ldr r0, [r5]
- add r7, r1, #0
- add r6, r2, #0
- mov r1, #0
- str r3, [sp]
- ldr r4, [sp, #0x1c]
- cmp r0, #0
- bne _0225CDCC
- ldr r0, [r5, #4]
- cmp r0, #0
- bne _0225CDCC
- mov r1, #1
-_0225CDCC:
- cmp r1, #0
- bne _0225CDD4
- bl ErrorHandling
-_0225CDD4:
- add r0, r5, #0
- mov r1, #0
- mov r2, #0x30
- bl MI_CpuFill8
- ldr r0, [sp, #0x24]
- ldr r1, [sp, #0x28]
- ldr r2, _0225CEA4 ; =0x0225FE7C
- bl FUN_0200C154
- str r0, [r5]
- cmp r6, #0
- ldr r0, [r5]
- bne _0225CE02
- ldr r2, [sp, #0x18]
- mov r1, #0x45
- lsl r3, r2, #1
- ldr r2, _0225CEA8 ; =0x0225FE40
- lsl r1, r1, #2
- ldrsh r2, [r2, r3]
- bl FUN_0200C714
- b _0225CE12
-_0225CE02:
- ldr r2, [sp, #0x18]
- mov r1, #0x13
- lsl r3, r2, #1
- ldr r2, _0225CEAC ; =0x0225FE28
- mvn r1, r1
- ldrsh r2, [r2, r3]
- bl FUN_0200C714
-_0225CE12:
- ldr r0, [r5]
- ldr r1, [sp, #0x20]
- ldr r0, [r0]
- bl FUN_02020130
- ldr r0, [r5]
- ldr r0, [r0]
- bl FUN_0200C59C
- add r0, r5, #0
- str r6, [r5, #8]
- add r0, #0x2d
- strb r4, [r0]
- ldr r0, [sp, #0x18]
- str r0, [r5, #0xc]
- ldr r0, [sp, #0x20]
- bl MOD11_0225D3B4
- add r1, r5, #0
- add r1, #0x2e
- strb r0, [r1]
- ldr r0, [sp, #0x20]
- str r7, [r5, #0x14]
- cmp r0, #6
- bne _0225CE48
- ldr r0, _0225CEB0 ; =0x00000713
- b _0225CE4A
-_0225CE48:
- ldr r0, _0225CEB4 ; =0x00000712
-_0225CE4A:
- strh r0, [r5, #0x2a]
- cmp r6, #0
- bne _0225CE5E
- lsl r0, r4, #4
- add r0, #0xa2
- str r0, [r5, #0x20]
- mov r0, #0xf
- mul r0, r4
- add r0, #0x9c
- b _0225CE70
-_0225CE5E:
- lsl r1, r4, #4
- mov r0, #0x5e
- sub r0, r0, r1
- str r0, [r5, #0x20]
- mov r0, #0xf
- add r1, r4, #0
- mul r1, r0
- mov r0, #0x64
- sub r0, r0, r1
-_0225CE70:
- str r0, [r5, #0x24]
- add r0, r5, #0
- mov r1, #0
- add r0, #0x2c
- strb r1, [r0]
- ldr r0, [sp]
- ldr r2, _0225CEB8 ; =0x000001F5
- cmp r0, #0
- bne _0225CE96
- lsl r0, r4, #1
- add r0, r4, r0
- add r0, r0, #5
- strh r0, [r5, #0x28]
- ldr r0, _0225CEBC ; =MOD11_0225CEC4
- add r1, r5, #0
- bl FUN_0200CA44
- str r0, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_0225CE96:
- ldr r0, _0225CEC0 ; =MOD11_0225D0C4
- strh r1, [r5, #0x28]
- add r1, r5, #0
- bl FUN_0200CA44
- str r0, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0225CEA4: .word 0x0225FE7C
-_0225CEA8: .word 0x0225FE40
-_0225CEAC: .word 0x0225FE28
-_0225CEB0: .word 0x00000713
-_0225CEB4: .word 0x00000712
-_0225CEB8: .word 0x000001F5
-_0225CEBC: .word MOD11_0225CEC4
-_0225CEC0: .word MOD11_0225D0C4
-
- thumb_func_start MOD11_0225CEC4
-MOD11_0225CEC4: ; 0x0225CEC4
- push {r3, r4, r5, lr}
- add r4, r1, #0
- add r5, r0, #0
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- cmp r0, #6
- bls _0225CED6
- b _0225D0A6
-_0225CED6:
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0225CEE2: ; jump table
- .short _0225CEF0 - _0225CEE2 - 2 ; case 0
- .short _0225CF14 - _0225CEE2 - 2 ; case 1
- .short _0225CF22 - _0225CEE2 - 2 ; case 2
- .short _0225CFA4 - _0225CEE2 - 2 ; case 3
- .short _0225CFBC - _0225CEE2 - 2 ; case 4
- .short _0225CFFC - _0225CEE2 - 2 ; case 5
- .short _0225D02A - _0225CEE2 - 2 ; case 6
-_0225CEF0:
- add r1, sp, #0
- ldr r0, [r4]
- add r1, #2
- add r2, sp, #0
- bl FUN_0200C7A0
- add r1, sp, #0
- mov r0, #2
- ldrsh r0, [r1, r0]
- lsl r0, r0, #8
- str r0, [r4, #0x1c]
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x2c
- strb r1, [r0]
-_0225CF14:
- mov r0, #0x28
- ldrsh r0, [r4, r0]
- cmp r0, #0
- ble _0225CF22
- sub r0, r0, #1
- strh r0, [r4, #0x28]
- pop {r3, r4, r5, pc}
-_0225CF22:
- ldr r0, [r4, #8]
- ldr r1, [r4, #0x1c]
- cmp r0, #0
- bne _0225CF66
- mov r0, #0xe
- lsl r0, r0, #8
- sub r1, r1, r0
- str r1, [r4, #0x1c]
- ldr r0, [r4, #0x24]
- lsl r0, r0, #8
- cmp r1, r0
- bgt _0225CF50
- str r0, [r4, #0x1c]
- ldrh r0, [r4, #0x2a]
- bl FUN_020054C8
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x2c
- strb r1, [r0]
-_0225CF50:
- ldr r2, [r4, #0xc]
- ldr r1, [r4, #0x1c]
- lsl r3, r2, #1
- ldr r2, _0225D0BC ; =0x0225FE40
- lsl r1, r1, #8
- ldrsh r2, [r2, r3]
- ldr r0, [r4]
- asr r1, r1, #0x10
- bl FUN_0200C714
- b _0225CF9A
-_0225CF66:
- mov r0, #0xe
- lsl r0, r0, #8
- add r1, r1, r0
- str r1, [r4, #0x1c]
- ldr r0, [r4, #0x24]
- lsl r0, r0, #8
- cmp r1, r0
- blt _0225CF86
- str r0, [r4, #0x1c]
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x2c
- strb r1, [r0]
-_0225CF86:
- ldr r2, [r4, #0xc]
- ldr r1, [r4, #0x1c]
- lsl r3, r2, #1
- ldr r2, _0225D0C0 ; =0x0225FE28
- lsl r1, r1, #8
- ldrsh r2, [r2, r3]
- ldr r0, [r4]
- asr r1, r1, #0x10
- bl FUN_0200C714
-_0225CF9A:
- ldr r0, [r4]
- ldr r0, [r0]
- bl FUN_0200C59C
- pop {r3, r4, r5, pc}
-_0225CFA4:
- ldr r1, [r4, #0x14]
- mov r0, #0
- ldrsb r0, [r1, r0]
- add r0, r0, #1
- strb r0, [r1]
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x2c
- strb r1, [r0]
-_0225CFBC:
- ldr r1, [r4, #0x14]
- mov r0, #0
- ldrsb r0, [r1, r0]
- cmp r0, #6
- beq _0225CFD0
- ldr r0, [r4]
- ldr r0, [r0]
- bl FUN_0200C59C
- pop {r3, r4, r5, pc}
-_0225CFD0:
- ldr r0, [r4, #8]
- cmp r0, #0
- ldr r0, [r4]
- bne _0225CFE2
- ldr r0, [r0]
- mov r1, #1
- bl FUN_02020208
- b _0225CFEA
-_0225CFE2:
- ldr r0, [r0]
- mov r1, #1
- bl FUN_02020208
-_0225CFEA:
- mov r0, #0
- strh r0, [r4, #0x28]
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x2c
- strb r1, [r0]
-_0225CFFC:
- mov r0, #0x28
- ldrsh r1, [r4, r0]
- add r1, r1, #1
- strh r1, [r4, #0x28]
- ldrsh r0, [r4, r0]
- cmp r0, #0
- blt _0225D0BA
- add r1, r4, #0
- ldr r0, [r4]
- add r1, #0x2e
- ldrb r1, [r1]
- ldr r0, [r0]
- bl FUN_02020130
- mov r0, #0
- strh r0, [r4, #0x28]
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x2c
- strb r1, [r0]
-_0225D02A:
- ldr r0, [r4, #8]
- ldr r1, [r4, #0x1c]
- cmp r0, #0
- bne _0225D068
- mov r0, #6
- lsl r0, r0, #8
- add r1, r1, r0
- str r1, [r4, #0x1c]
- ldr r0, [r4, #0x20]
- lsl r0, r0, #8
- cmp r1, r0
- blt _0225D052
- str r0, [r4, #0x1c]
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x2c
- strb r1, [r0]
-_0225D052:
- ldr r2, [r4, #0xc]
- ldr r1, [r4, #0x1c]
- lsl r3, r2, #1
- ldr r2, _0225D0BC ; =0x0225FE40
- lsl r1, r1, #8
- ldrsh r2, [r2, r3]
- ldr r0, [r4]
- asr r1, r1, #0x10
- bl FUN_0200C714
- b _0225D09C
-_0225D068:
- mov r0, #6
- lsl r0, r0, #8
- sub r1, r1, r0
- str r1, [r4, #0x1c]
- ldr r0, [r4, #0x20]
- lsl r0, r0, #8
- cmp r1, r0
- bgt _0225D088
- str r0, [r4, #0x1c]
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x2c
- strb r1, [r0]
-_0225D088:
- ldr r2, [r4, #0xc]
- ldr r1, [r4, #0x1c]
- lsl r3, r2, #1
- ldr r2, _0225D0C0 ; =0x0225FE28
- lsl r1, r1, #8
- ldrsh r2, [r2, r3]
- ldr r0, [r4]
- asr r1, r1, #0x10
- bl FUN_0200C714
-_0225D09C:
- ldr r0, [r4]
- ldr r0, [r0]
- bl FUN_0200C59C
- pop {r3, r4, r5, pc}
-_0225D0A6:
- ldr r0, [r4]
- mov r1, #0
- ldr r0, [r0]
- bl FUN_02020208
- add r0, r5, #0
- bl FUN_0200CAB4
- mov r0, #0
- str r0, [r4, #4]
-_0225D0BA:
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0225D0BC: .word 0x0225FE40
-_0225D0C0: .word 0x0225FE28
-
- thumb_func_start MOD11_0225D0C4
-MOD11_0225D0C4: ; 0x0225D0C4
- push {r3, r4, lr}
- sub sp, #4
- add r4, r1, #0
- add r1, #0x2c
- ldrb r1, [r1]
- cmp r1, #0
- beq _0225D0DC
- cmp r1, #1
- beq _0225D10A
- cmp r1, #2
- beq _0225D11A
- b _0225D192
-_0225D0DC:
- add r1, sp, #0
- ldr r0, [r4]
- add r1, #2
- add r2, sp, #0
- bl FUN_0200C7A0
- add r1, sp, #0
- mov r0, #2
- ldrsh r0, [r1, r0]
- mov r1, #0
- lsl r0, r0, #8
- str r0, [r4, #0x1c]
- ldr r0, [r4]
- ldr r0, [r0]
- bl FUN_02020208
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x2c
- strb r1, [r0]
-_0225D10A:
- mov r0, #0x28
- ldrsh r0, [r4, r0]
- cmp r0, #0
- ble _0225D11A
- sub r0, r0, #1
- add sp, #4
- strh r0, [r4, #0x28]
- pop {r3, r4, pc}
-_0225D11A:
- ldr r0, [r4, #8]
- ldr r1, [r4, #0x1c]
- cmp r0, #0
- bne _0225D15A
- mov r0, #0xe
- lsl r0, r0, #8
- sub r1, r1, r0
- str r1, [r4, #0x1c]
- ldr r0, [r4, #0x20]
- lsl r0, r0, #8
- cmp r1, r0
- bgt _0225D142
- str r0, [r4, #0x1c]
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x2c
- strb r1, [r0]
-_0225D142:
- ldr r2, [r4, #0xc]
- ldr r1, [r4, #0x1c]
- lsl r3, r2, #1
- ldr r2, _0225D1A0 ; =0x0225FE40
- lsl r1, r1, #8
- ldrsh r2, [r2, r3]
- ldr r0, [r4]
- asr r1, r1, #0x10
- bl FUN_0200C714
- add sp, #4
- pop {r3, r4, pc}
-_0225D15A:
- mov r0, #0xe
- lsl r0, r0, #8
- add r1, r1, r0
- str r1, [r4, #0x1c]
- ldr r0, [r4, #0x20]
- lsl r0, r0, #8
- cmp r1, r0
- blt _0225D17A
- str r0, [r4, #0x1c]
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x2c
- strb r1, [r0]
-_0225D17A:
- ldr r2, [r4, #0xc]
- ldr r1, [r4, #0x1c]
- lsl r3, r2, #1
- ldr r2, _0225D1A4 ; =0x0225FE28
- lsl r1, r1, #8
- ldrsh r2, [r2, r3]
- ldr r0, [r4]
- asr r1, r1, #0x10
- bl FUN_0200C714
- add sp, #4
- pop {r3, r4, pc}
-_0225D192:
- bl FUN_0200CAB4
- mov r0, #0
- str r0, [r4, #4]
- add sp, #4
- pop {r3, r4, pc}
- nop
-_0225D1A0: .word 0x0225FE40
-_0225D1A4: .word 0x0225FE28
-
- thumb_func_start MOD11_0225D1A8
-MOD11_0225D1A8: ; 0x0225D1A8
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- ldr r0, [r5]
- add r6, r1, #0
- add r7, r2, #0
- add r4, r3, #0
- cmp r0, #0
- beq _0225D1BE
- ldr r0, [r5, #4]
- cmp r0, #0
- beq _0225D1C2
-_0225D1BE:
- bl ErrorHandling
-_0225D1C2:
- add r0, r5, #0
- mov r1, #0
- add r0, #0x2c
- strb r1, [r0]
- cmp r7, #0
- str r4, [r5, #0x18]
- ldr r2, _0225D200 ; =0x000001F5
- bne _0225D1EC
- lsl r0, r6, #1
- add r0, r6, r0
- strh r0, [r5, #0x28]
- add r0, r5, #0
- mov r1, #4
- add r0, #0x2f
- strb r1, [r0]
- ldr r0, _0225D204 ; =MOD11_0225D20C
- add r1, r5, #0
- bl FUN_0200CA44
- str r0, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
-_0225D1EC:
- add r0, r5, #0
- strh r1, [r5, #0x28]
- add r0, #0x2f
- strb r1, [r0]
- ldr r0, _0225D208 ; =MOD11_0225D31C
- add r1, r5, #0
- bl FUN_0200CA44
- str r0, [r5, #4]
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-_0225D200: .word 0x000001F5
-_0225D204: .word MOD11_0225D20C
-_0225D208: .word MOD11_0225D31C
-
- thumb_func_start MOD11_0225D20C
-MOD11_0225D20C: ; 0x0225D20C
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldr r1, [r4, #0x18]
- add r5, r0, #0
- mov r0, #0
- ldrsh r0, [r1, r0]
- cmp r0, #0
- bne _0225D224
- add r0, r4, #0
- mov r1, #0x64
- add r0, #0x2c
- strb r1, [r0]
-_0225D224:
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- cmp r0, #2
- bgt _0225D23E
- cmp r0, #0
- blt _0225D2FA
- beq _0225D242
- cmp r0, #1
- beq _0225D26E
- cmp r0, #2
- beq _0225D294
- b _0225D2FA
-_0225D23E:
- cmp r0, #0x64
- b _0225D2FA
-_0225D242:
- add r1, sp, #0
- ldr r0, [r4]
- add r1, #2
- add r2, sp, #0
- bl FUN_0200C7A0
- add r1, sp, #0
- mov r0, #2
- ldrsh r0, [r1, r0]
- mov r1, #1
- lsl r0, r0, #8
- str r0, [r4, #0x1c]
- ldr r0, [r4]
- bl FUN_0200C90C
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x2c
- strb r1, [r0]
-_0225D26E:
- add r0, r4, #0
- add r0, #0x2f
- ldrb r0, [r0]
- cmp r0, #0
- beq _0225D286
- add r0, r4, #0
- add r0, #0x2f
- ldrb r0, [r0]
- add r4, #0x2f
- sub r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_0225D286:
- mov r0, #0x28
- ldrsh r0, [r4, r0]
- cmp r0, #0
- ble _0225D294
- sub r0, r0, #1
- strh r0, [r4, #0x28]
- pop {r3, r4, r5, pc}
-_0225D294:
- ldr r0, [r4, #8]
- ldr r1, [r4, #0x1c]
- cmp r0, #0
- bne _0225D2B8
- mov r0, #3
- lsl r0, r0, #0xa
- sub r1, r1, r0
- str r1, [r4, #0x1c]
- ldr r2, [r4, #0xc]
- lsl r1, r1, #8
- lsl r3, r2, #1
- ldr r2, _0225D310 ; =0x0225FE40
- ldr r0, [r4]
- ldrsh r2, [r2, r3]
- asr r1, r1, #0x10
- bl FUN_0200C714
- b _0225D2D2
-_0225D2B8:
- mov r0, #3
- lsl r0, r0, #0xa
- add r1, r1, r0
- str r1, [r4, #0x1c]
- ldr r2, [r4, #0xc]
- lsl r1, r1, #8
- lsl r3, r2, #1
- ldr r2, _0225D314 ; =0x0225FE28
- ldr r0, [r4]
- ldrsh r2, [r2, r3]
- asr r1, r1, #0x10
- bl FUN_0200C714
-_0225D2D2:
- ldr r1, [r4, #0x1c]
- ldr r0, _0225D318 ; =0xFFFFF000
- cmp r1, r0
- blt _0225D2E2
- mov r0, #0x11
- lsl r0, r0, #0xc
- cmp r1, r0
- ble _0225D2F0
-_0225D2E2:
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- add r1, r0, #1
- add r0, r4, #0
- add r0, #0x2c
- strb r1, [r0]
-_0225D2F0:
- ldr r0, [r4]
- ldr r0, [r0]
- bl FUN_0200C59C
- pop {r3, r4, r5, pc}
-_0225D2FA:
- ldr r0, [r4]
- mov r1, #0
- ldr r0, [r0]
- bl FUN_0200C63C
- add r0, r5, #0
- bl FUN_0200CAB4
- mov r0, #0
- str r0, [r4, #4]
- pop {r3, r4, r5, pc}
- .align 2, 0
-_0225D310: .word 0x0225FE40
-_0225D314: .word 0x0225FE28
-_0225D318: .word 0xFFFFF000
-
- thumb_func_start MOD11_0225D31C
-MOD11_0225D31C: ; 0x0225D31C
- push {r3, r4, r5, lr}
- add r4, r1, #0
- ldr r1, [r4, #0x18]
- add r5, r0, #0
- mov r0, #0
- ldrsh r0, [r1, r0]
- cmp r0, #0
- bne _0225D334
- add r0, r4, #0
- mov r1, #0x64
- add r0, #0x2c
- strb r1, [r0]
-_0225D334:
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- cmp r0, #0
- beq _0225D346
- cmp r0, #1
- beq _0225D370
- cmp r0, #0x64
- b _0225D35C
-_0225D346:
- ldr r0, [r4]
- mov r1, #1
- bl FUN_0200C90C
- add r0, r4, #0
- add r0, #0x2c
- ldrb r0, [r0]
- add r4, #0x2c
- add r0, r0, #1
- strb r0, [r4]
- pop {r3, r4, r5, pc}
-_0225D35C:
- ldr r0, [r4]
- mov r1, #0
- ldr r0, [r0]
- bl FUN_0200C63C
- add r0, r5, #0
- bl FUN_0200CAB4
- mov r0, #0
- str r0, [r4, #4]
-_0225D370:
- pop {r3, r4, r5, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225D374
-MOD11_0225D374: ; 0x0225D374
- cmp r0, #3
- bhi _0225D38C
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0225D384: ; jump table
- .short _0225D38C - _0225D384 - 2 ; case 0
- .short _0225D390 - _0225D384 - 2 ; case 1
- .short _0225D39C - _0225D384 - 2 ; case 2
- .short _0225D3A8 - _0225D384 - 2 ; case 3
-_0225D38C:
- mov r0, #6
- bx lr
-_0225D390:
- cmp r1, #0
- bne _0225D398
- mov r0, #3
- bx lr
-_0225D398:
- mov r0, #0
- bx lr
-_0225D39C:
- cmp r1, #0
- bne _0225D3A4
- mov r0, #5
- bx lr
-_0225D3A4:
- mov r0, #2
- bx lr
-_0225D3A8:
- cmp r1, #0
- bne _0225D3B0
- mov r0, #4
- bx lr
-_0225D3B0:
- mov r0, #1
- bx lr
-
- thumb_func_start MOD11_0225D3B4
-MOD11_0225D3B4: ; 0x0225D3B4
- cmp r0, #6
- bhi _0225D3EA
- add r1, r0, r0
- add r1, pc
- ldrh r1, [r1, #6]
- lsl r1, r1, #0x10
- asr r1, r1, #0x10
- add pc, r1
-_0225D3C4: ; jump table
- .short _0225D3D8 - _0225D3C4 - 2 ; case 0
- .short _0225D3E8 - _0225D3C4 - 2 ; case 1
- .short _0225D3E0 - _0225D3C4 - 2 ; case 2
- .short _0225D3D4 - _0225D3C4 - 2 ; case 3
- .short _0225D3E4 - _0225D3C4 - 2 ; case 4
- .short _0225D3DC - _0225D3C4 - 2 ; case 5
- .short _0225D3D2 - _0225D3C4 - 2 ; case 6
-_0225D3D2:
- bx lr
-_0225D3D4:
- mov r0, #0
- bx lr
-_0225D3D8:
- mov r0, #3
- bx lr
-_0225D3DC:
- mov r0, #2
- bx lr
-_0225D3E0:
- mov r0, #5
- bx lr
-_0225D3E4:
- mov r0, #1
- bx lr
-_0225D3E8:
- mov r0, #4
-_0225D3EA:
- bx lr
-
- thumb_func_start MOD11_0225D3EC
-MOD11_0225D3EC: ; 0x0225D3EC
- push {r4, r5, r6, lr}
- sub sp, #0x18
- add r5, r0, #0
- mov r0, #0x1b
- str r0, [sp]
- mov r0, #0x2c
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- mov r0, #1
- str r0, [sp, #0xc]
- mov r0, #2
- str r0, [sp, #0x10]
- ldr r0, [sp, #0x28]
- add r4, r1, #0
- add r6, r3, #0
- str r0, [sp, #0x14]
- add r0, r2, #0
- mov r1, #3
- add r2, r5, #0
- add r3, r4, #0
- bl FUN_0200C0DC
- mov r0, #1
- str r0, [sp]
- mov r0, #2
- str r0, [sp, #4]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0x1b
- mov r3, #0xba
- str r6, [sp, #8]
- bl FUN_0200C00C
- mov r0, #1
- str r0, [sp]
- ldr r0, [sp, #0x2c]
- add r1, r4, #0
- str r0, [sp, #4]
- add r0, r5, #0
- mov r2, #0x1b
- mov r3, #0xbb
- bl FUN_0200C124
- mov r0, #1
- str r0, [sp]
- ldr r0, [sp, #0x30]
- add r1, r4, #0
- str r0, [sp, #4]
- add r0, r5, #0
- mov r2, #0x1b
- mov r3, #0xbc
- bl FUN_0200C13C
- add sp, #0x18
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_0225D45C
-MOD11_0225D45C: ; 0x0225D45C
- push {r4, r5, r6, lr}
- add r5, r0, #0
- add r4, r2, #0
- add r6, r3, #0
- bl FUN_0200C358
- add r0, r5, #0
- add r1, r4, #0
- bl FUN_0200C368
- add r0, r5, #0
- add r1, r6, #0
- bl FUN_0200C378
- ldr r1, [sp, #0x10]
- add r0, r5, #0
- bl FUN_0200C388
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225D484
-MOD11_0225D484: ; 0x0225D484
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x38
- add r5, r3, #0
- mov ip, r2
- ldr r3, _0225D4FC ; =0x0225FEB0
- add r6, r0, #0
- add r7, r1, #0
- add r2, sp, #4
- mov r4, #6
-_0225D496:
- ldmia r3!, {r0, r1}
- stmia r2!, {r0, r1}
- sub r4, r4, #1
- bne _0225D496
- ldr r0, [r3]
- mov r1, #0x18
- str r0, [r2]
- ldr r0, [sp, #0x50]
- str r5, [sp, #0x18]
- str r0, [sp, #0x1c]
- ldr r0, [sp, #0x54]
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x58]
- str r0, [sp, #0x24]
- ldr r0, [sp, #0x5c]
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x60]
- str r0, [sp, #0x30]
- mov r0, ip
- bl AllocFromHeap
- mov r1, #0
- mov r2, #0x18
- str r0, [sp]
- bl MI_CpuFill8
- ldr r5, [sp]
- mov r4, #0
-_0225D4CE:
- add r0, r6, #0
- add r1, r7, #0
- add r2, sp, #4
- bl FUN_0200C154
- mov r1, #0
- stmia r5!, {r0}
- bl FUN_0200C644
- add r4, r4, #1
- cmp r4, #5
- blt _0225D4CE
- ldr r0, _0225D500 ; =MOD11_0225D670
- ldr r1, [sp]
- ldr r2, _0225D504 ; =0x00009C40
- bl FUN_0200CA44
- ldr r1, [sp]
- str r0, [r1, #0x14]
- add r0, r1, #0
- add sp, #0x38
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0225D4FC: .word 0x0225FEB0
-_0225D500: .word MOD11_0225D670
-_0225D504: .word 0x00009C40
-
- thumb_func_start MOD11_0225D508
-MOD11_0225D508: ; 0x0225D508
- push {r4, r5, r6, lr}
- add r6, r0, #0
- mov r4, #0
- add r5, r6, #0
-_0225D510:
- ldr r0, [r5]
- bl FUN_0200C3DC
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #5
- blt _0225D510
- ldr r0, [r6, #0x14]
- bl FUN_0200CAB4
- add r0, r6, #0
- bl FreeToHeap
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_0225D52C
-MOD11_0225D52C: ; 0x0225D52C
- push {r4, r5, r6, lr}
- add r5, r0, #0
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- ldr r4, [sp, #0x24]
- add r6, r3, #0
- ldr r0, [r5]
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- add r3, r4, #0
- bl FUN_0200C750
- ldr r2, [sp, #0x10]
- lsl r1, r6, #0x10
- lsl r2, r2, #0x10
- ldr r0, [r5, #4]
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- add r3, r4, #0
- bl FUN_0200C750
- ldr r1, [sp, #0x14]
- ldr r2, [sp, #0x18]
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- ldr r0, [r5, #8]
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- add r3, r4, #0
- bl FUN_0200C750
- ldr r1, [sp, #0x1c]
- ldr r2, [sp, #0x20]
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- ldr r0, [r5, #0xc]
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- add r3, r4, #0
- bl FUN_0200C750
- ldr r0, [r5]
- mov r1, #0
- bl FUN_0200C5C0
- ldr r0, [r5, #4]
- mov r1, #1
- bl FUN_0200C5C0
- ldr r0, [r5, #8]
- mov r1, #2
- bl FUN_0200C5C0
- ldr r0, [r5, #0xc]
- mov r1, #3
- bl FUN_0200C5C0
- mov r4, #0
- mov r6, #1
-_0225D5A2:
- ldr r0, [r5]
- add r1, r6, #0
- bl FUN_0200C644
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #4
- blt _0225D5A2
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_0225D5B4
-MOD11_0225D5B4: ; 0x0225D5B4
- push {r4, lr}
- sub sp, #0x18
- ldr r4, [sp, #0x20]
- str r4, [sp]
- ldr r4, [sp, #0x24]
- str r4, [sp, #4]
- ldr r4, [sp, #0x28]
- str r4, [sp, #8]
- ldr r4, [sp, #0x2c]
- str r4, [sp, #0xc]
- ldr r4, [sp, #0x30]
- str r4, [sp, #0x10]
- mov r4, #3
- lsl r4, r4, #0x12
- str r4, [sp, #0x14]
- bl MOD11_0225D52C
- add sp, #0x18
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225D5DC
-MOD11_0225D5DC: ; 0x0225D5DC
- push {r3, r4, lr}
- sub sp, #0x14
- add r4, r2, #0
- str r3, [sp]
- ldr r2, [sp, #0x20]
- str r1, [sp, #4]
- str r2, [sp, #8]
- str r4, [sp, #0xc]
- str r2, [sp, #0x10]
- add r2, r3, #0
- add r3, r4, #0
- bl MOD11_0225D5B4
- add sp, #0x14
- pop {r3, r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225D5FC
-MOD11_0225D5FC: ; 0x0225D5FC
- push {r4, lr}
- sub sp, #0x18
- add r4, r2, #0
- str r3, [sp]
- ldr r2, [sp, #0x20]
- str r1, [sp, #4]
- str r2, [sp, #8]
- str r4, [sp, #0xc]
- str r2, [sp, #0x10]
- ldr r2, [sp, #0x24]
- str r2, [sp, #0x14]
- add r2, r3, #0
- add r3, r4, #0
- bl MOD11_0225D52C
- add sp, #0x18
- pop {r4, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225D620
-MOD11_0225D620: ; 0x0225D620
- push {r3, r4, r5, lr}
- add r5, r0, #0
- add r4, r3, #0
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- ldr r0, [r5, #0x10]
- ldr r3, [sp, #0x10]
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl FUN_0200C750
- ldr r0, [r5, #0x10]
- add r1, r4, #0
- bl FUN_0200C5C0
- ldr r0, [r5, #0x10]
- mov r1, #1
- bl FUN_0200C644
- pop {r3, r4, r5, pc}
-
- thumb_func_start MOD11_0225D648
-MOD11_0225D648: ; 0x0225D648
- push {r4, r5, r6, lr}
- mov r4, #0
- add r5, r0, #0
- add r6, r4, #0
-_0225D650:
- ldr r0, [r5]
- add r1, r6, #0
- bl FUN_0200C644
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #5
- blt _0225D650
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225D664
-MOD11_0225D664: ; 0x0225D664
- ldr r3, _0225D66C ; =FUN_0200C644
- ldr r0, [r0, #0x10]
- mov r1, #0
- bx r3
- .align 2, 0
-_0225D66C: .word FUN_0200C644
-
- thumb_func_start MOD11_0225D670
-MOD11_0225D670: ; 0x0225D670
- push {r4, r5, r6, lr}
- add r6, r1, #0
- ldr r0, [r6]
- bl FUN_0200C658
- cmp r0, #0
- beq _0225D6A0
- mov r4, #0
- add r5, r6, #0
-_0225D682:
- ldr r0, [r5]
- bl FUN_0200C5A8
- add r4, r4, #1
- add r5, r5, #4
- cmp r4, #4
- blt _0225D682
- ldr r0, [r6, #0x10]
- bl FUN_0200C658
- cmp r0, #1
- bne _0225D6A0
- ldr r0, [r6, #0x10]
- bl FUN_0200C5A8
-_0225D6A0:
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225D6A4
-MOD11_0225D6A4: ; 0x0225D6A4
- push {r4, r5, r6, lr}
- sub sp, #0x18
- add r5, r0, #0
- mov r0, #0x52
- str r0, [sp]
- mov r0, #0xb
- str r0, [sp, #4]
- mov r0, #0
- str r0, [sp, #8]
- mov r0, #1
- str r0, [sp, #0xc]
- mov r0, #2
- str r0, [sp, #0x10]
- ldr r0, [sp, #0x28]
- add r4, r1, #0
- add r6, r3, #0
- str r0, [sp, #0x14]
- add r0, r2, #0
- mov r1, #3
- add r2, r5, #0
- add r3, r4, #0
- bl FUN_0200C0DC
- mov r0, #0
- str r0, [sp]
- mov r0, #2
- str r0, [sp, #4]
- add r0, r5, #0
- add r1, r4, #0
- mov r2, #0x52
- mov r3, #0xa
- str r6, [sp, #8]
- bl FUN_0200C00C
- mov r0, #0
- str r0, [sp]
- ldr r0, [sp, #0x2c]
- add r1, r4, #0
- str r0, [sp, #4]
- add r0, r5, #0
- mov r2, #0x52
- mov r3, #0xc
- bl FUN_0200C124
- mov r0, #0
- str r0, [sp]
- ldr r0, [sp, #0x30]
- add r1, r4, #0
- str r0, [sp, #4]
- add r0, r5, #0
- mov r2, #0x52
- mov r3, #0xd
- bl FUN_0200C13C
- add sp, #0x18
- pop {r4, r5, r6, pc}
-
- thumb_func_start MOD11_0225D714
-MOD11_0225D714: ; 0x0225D714
- push {r4, r5, r6, lr}
- add r5, r0, #0
- add r4, r2, #0
- add r6, r3, #0
- bl FUN_0200C358
- add r0, r5, #0
- add r1, r4, #0
- bl FUN_0200C368
- add r0, r5, #0
- add r1, r6, #0
- bl FUN_0200C378
- ldr r1, [sp, #0x10]
- add r0, r5, #0
- bl FUN_0200C388
- pop {r4, r5, r6, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225D73C
-MOD11_0225D73C: ; 0x0225D73C
- push {r3, r4, r5, r6, r7, lr}
- sub sp, #0x38
- ldr r5, _0225D7AC ; =0x0225FEE4
- add r6, r3, #0
- add r7, r0, #0
- str r1, [sp]
- add r4, sp, #4
- mov r3, #6
-_0225D74C:
- ldmia r5!, {r0, r1}
- stmia r4!, {r0, r1}
- sub r3, r3, #1
- bne _0225D74C
- ldr r0, [r5]
- mov r1, #0x20
- str r0, [r4]
- ldr r0, [sp, #0x50]
- str r6, [sp, #0x18]
- str r0, [sp, #0x1c]
- ldr r0, [sp, #0x54]
- str r0, [sp, #0x20]
- ldr r0, [sp, #0x58]
- str r0, [sp, #0x24]
- ldr r0, [sp, #0x5c]
- str r0, [sp, #0xc]
- ldr r0, [sp, #0x60]
- str r0, [sp, #0x30]
- add r0, r2, #0
- bl AllocFromHeap
- mov r1, #0
- mov r2, #0x20
- add r4, r0, #0
- bl MI_CpuFill8
- ldr r1, [sp]
- add r0, r7, #0
- add r2, sp, #4
- bl FUN_0200C154
- mov r1, #0
- str r0, [r4]
- bl FUN_0200C644
- mov r0, #3
- lsl r0, r0, #0x12
- str r0, [r4, #0x14]
- ldr r0, _0225D7B0 ; =MOD11_0225D828
- ldr r2, _0225D7B4 ; =0x000003E7
- add r1, r4, #0
- bl FUN_0200CA44
- str r0, [r4, #4]
- add r0, r4, #0
- add sp, #0x38
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0225D7AC: .word 0x0225FEE4
-_0225D7B0: .word MOD11_0225D828
-_0225D7B4: .word 0x000003E7
-
- thumb_func_start MOD11_0225D7B8
-MOD11_0225D7B8: ; 0x0225D7B8
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4]
- bl FUN_0200C3DC
- ldr r0, [r4, #4]
- bl FUN_0200CAB4
- add r0, r4, #0
- bl FreeToHeap
- pop {r4, pc}
-
- thumb_func_start MOD11_0225D7D0
-MOD11_0225D7D0: ; 0x0225D7D0
- push {r3, r4, r5, r6, r7, lr}
- add r5, r0, #0
- add r7, r1, #0
- add r4, r2, #0
- add r6, r3, #0
- bl MOD11_0225D98C
- str r7, [r5, #8]
- str r4, [r5, #0xc]
- str r6, [r5, #0x14]
- lsl r1, r7, #0x10
- lsl r2, r4, #0x10
- ldr r0, [r5]
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- add r3, r6, #0
- bl FUN_0200C750
- ldr r0, [r5]
- mov r1, #1
- bl FUN_0200C644
- pop {r3, r4, r5, r6, r7, pc}
- .align 2, 0
-
- thumb_func_start MOD11_0225D800
-MOD11_0225D800: ; 0x0225D800
- push {r3, lr}
- mov r3, #3
- lsl r3, r3, #0x12
- bl MOD11_0225D7D0
- pop {r3, pc}
-
- thumb_func_start MOD11_0225D80C
-MOD11_0225D80C: ; 0x0225D80C
- push {r4, lr}
- add r4, r0, #0
- ldr r0, [r4]
- mov r1, #0
- bl FUN_0200C644
- add r0, r4, #0
- bl MOD11_0225D98C
- pop {r4, pc}
-
- thumb_func_start MOD11_0225D820
-MOD11_0225D820: ; 0x0225D820
- strh r1, [r0, #0x18]
- bx lr
-
- thumb_func_start MOD11_0225D824
-MOD11_0225D824: ; 0x0225D824
- ldrb r0, [r0, #0x1b]
- bx lr
-
- thumb_func_start MOD11_0225D828
-MOD11_0225D828: ; 0x0225D828
- push {r3, r4, r5, r6, r7, lr}
- add r4, r1, #0
- ldrb r0, [r4, #0x1b]
- cmp r0, #1
- bne _0225D836
- mov r0, #0
- strb r0, [r4, #0x1b]
-_0225D836:
- mov r0, #0x18
- ldrsh r1, [r4, r0]
- cmp r1, #0
- ble _0225D84C
- sub r1, r1, #1
- strh r1, [r4, #0x18]
- ldrsh r0, [r4, r0]
- cmp r0, #0
- bne _0225D84C
- mov r0, #1
- strb r0, [r4, #0x1a]
-_0225D84C:
- ldr r0, [r4]
- bl FUN_0200C658
- cmp r0, #0
- bne _0225D858
- b _0225D984
-_0225D858:
- ldrb r0, [r4, #0x1c]
- cmp r0, #0
- bne _0225D8DA
- mov r1, #0xfa
- ldr r2, [r4, #0x10]
- lsl r1, r1, #2
- add r2, r2, r1
- add r0, r4, #0
- ldr r1, _0225D988 ; =0x00004650
- add r0, #0x10
- str r2, [r4, #0x10]
- cmp r2, r1
- blt _0225D886
- ldr r2, [r0]
- sub r1, r2, r1
- str r1, [r0]
- ldrb r0, [r4, #0x1a]
- cmp r0, #1
- bne _0225D886
- mov r0, #1
- strb r0, [r4, #0x1c]
- mov r0, #0
- strb r0, [r4, #0x1a]
-_0225D886:
- ldrb r0, [r4, #0x1c]
- cmp r0, #0
- bne _0225D8DA
- ldr r0, [r4, #0x10]
- mov r1, #0x64
- bl _s32_div_f
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- bl FUN_0201B93C
- mov r2, #0xe
- asr r1, r0, #0x1f
- lsl r2, r2, #0xc
- mov r3, #0
- bl _ll_mul
- add r5, r1, #0
- ldr r1, [r4, #8]
- mov r2, #2
- add r6, r0, #0
- lsl r1, r1, #0x10
- mov r7, #0
- lsl r2, r2, #0xa
- asr r1, r1, #0x10
- add r2, r6, r2
- adc r5, r7
- lsl r5, r5, #0x14
- lsr r2, r2, #0xc
- orr r2, r5
- asr r5, r2, #0xb
- lsr r5, r5, #0x14
- add r5, r2, r5
- ldr r3, [r4, #0xc]
- asr r2, r5, #0xc
- sub r2, r3, r2
- lsl r2, r2, #0x10
- ldr r0, [r4]
- ldr r3, [r4, #0x14]
- asr r2, r2, #0x10
- bl FUN_0200C750
-_0225D8DA:
- ldrb r0, [r4, #0x1c]
- cmp r0, #1
- bne _0225D97E
- ldrb r0, [r4, #0x1d]
- cmp r0, #3
- bhi _0225D97E
- add r0, r0, r0
- add r0, pc
- ldrh r0, [r0, #6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0225D8F2: ; jump table
- .short _0225D8FA - _0225D8F2 - 2 ; case 0
- .short _0225D912 - _0225D8F2 - 2 ; case 1
- .short _0225D934 - _0225D8F2 - 2 ; case 2
- .short _0225D962 - _0225D8F2 - 2 ; case 3
-_0225D8FA:
- ldrb r0, [r4, #0x1e]
- add r0, r0, #1
- strb r0, [r4, #0x1e]
- ldrb r0, [r4, #0x1e]
- cmp r0, #3
- bls _0225D97E
- mov r0, #0
- strb r0, [r4, #0x1e]
- ldrb r0, [r4, #0x1d]
- add r0, r0, #1
- strb r0, [r4, #0x1d]
- b _0225D97E
-_0225D912:
- ldr r2, [r4, #0xc]
- ldr r1, [r4, #8]
- add r2, #8
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- ldr r0, [r4]
- ldr r3, [r4, #0x14]
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl FUN_0200C750
- mov r0, #1
- strb r0, [r4, #0x1b]
- ldrb r0, [r4, #0x1d]
- add r0, r0, #1
- strb r0, [r4, #0x1d]
- b _0225D97E
-_0225D934:
- ldrb r0, [r4, #0x1e]
- add r0, r0, #1
- strb r0, [r4, #0x1e]
- ldrb r0, [r4, #0x1e]
- cmp r0, #2
- bls _0225D97E
- ldr r2, [r4, #0xc]
- ldr r1, [r4, #8]
- add r2, r2, #2
- lsl r1, r1, #0x10
- lsl r2, r2, #0x10
- ldr r0, [r4]
- ldr r3, [r4, #0x14]
- asr r1, r1, #0x10
- asr r2, r2, #0x10
- bl FUN_0200C750
- mov r0, #0
- strb r0, [r4, #0x1e]
- ldrb r0, [r4, #0x1d]
- add r0, r0, #1
- strb r0, [r4, #0x1d]
- b _0225D97E
-_0225D962:
- ldrb r0, [r4, #0x1e]
- add r0, r0, #1
- strb r0, [r4, #0x1e]
- ldrb r0, [r4, #0x1e]
- cmp r0, #2
- bls _0225D97E
- add r0, r4, #0
- bl MOD11_0225D80C
- mov r0, #0
- strb r0, [r4, #0x1e]
- ldrb r0, [r4, #0x1d]
- add r0, r0, #1
- strb r0, [r4, #0x1d]
-_0225D97E:
- ldr r0, [r4]
- bl FUN_0200C5A8
-_0225D984:
- pop {r3, r4, r5, r6, r7, pc}
- nop
-_0225D988: .word 0x00004650
-
- thumb_func_start MOD11_0225D98C
-MOD11_0225D98C: ; 0x0225D98C
- mov r1, #0
- str r1, [r0, #0x10]
- strb r1, [r0, #0x1c]
- strb r1, [r0, #0x1d]
- strb r1, [r0, #0x1e]
- bx lr
-
- .section .rodata
- ; 0x0225D998
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD11_0222D5C0
+MOD11_0222D5C0: ; 0x0222D5C0
+ push {r4, r5, r6, lr}
+ sub sp, #0x28
+ add r4, r1, #0
+ add r6, r0, #0
+ bl FUN_0200628C
+ ldr r1, [r4]
+ add r5, r0, #0
+ cmp r1, #0xf
+ bhi _0222D6D2
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0222D5E0: ; jump table
+ .short _0222D600 - _0222D5E0 - 2 ; case 0
+ .short _0222D620 - _0222D5E0 - 2 ; case 1
+ .short _0222D65A - _0222D5E0 - 2 ; case 2
+ .short _0222D670 - _0222D5E0 - 2 ; case 3
+ .short _0222D686 - _0222D5E0 - 2 ; case 4
+ .short _0222D696 - _0222D5E0 - 2 ; case 5
+ .short _0222D6AC - _0222D5E0 - 2 ; case 6
+ .short _0222D6C8 - _0222D5E0 - 2 ; case 7
+ .short _0222D6DA - _0222D5E0 - 2 ; case 8
+ .short _0222D6EE - _0222D5E0 - 2 ; case 9
+ .short _0222D704 - _0222D5E0 - 2 ; case 10
+ .short _0222D720 - _0222D5E0 - 2 ; case 11
+ .short _0222D742 - _0222D5E0 - 2 ; case 12
+ .short _0222D752 - _0222D5E0 - 2 ; case 13
+ .short _0222D7C2 - _0222D5E0 - 2 ; case 14
+ .short _0222D7E4 - _0222D5E0 - 2 ; case 15
+_0222D600:
+ mov r2, #0xb
+ mov r0, #3
+ mov r1, #5
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ ldr r1, [r5]
+ mov r0, #4
+ tst r0, r1
+ beq _0222D61A
+ mov r0, #1
+ str r0, [r4]
+ b _0222D7EA
+_0222D61A:
+ mov r0, #3
+ str r0, [r4]
+ b _0222D7EA
+_0222D620:
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0222F29C
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02033778
+ bl FUN_02033590
+ cmp r0, #0
+ bne _0222D648
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x14
+ bl FUN_0202A0E8
+ b _0222D654
+_0222D648:
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x19
+ bl FUN_0202A0E8
+_0222D654:
+ mov r0, #2
+ str r0, [r4]
+ b _0222D7EA
+_0222D65A:
+ add r0, r6, #0
+ bl MOD11_0222F4E4
+ cmp r0, #1
+ bne _0222D6D2
+ add r0, r6, #0
+ bl MOD11_0222F93C
+ mov r0, #3
+ str r0, [r4]
+ b _0222D7EA
+_0222D670:
+ add r0, r6, #0
+ bl MOD11_0222F988
+ cmp r0, #1
+ bne _0222D680
+ mov r0, #4
+ str r0, [r4]
+ b _0222D7EA
+_0222D680:
+ mov r0, #5
+ str r0, [r4]
+ b _0222D7EA
+_0222D686:
+ add r0, r6, #0
+ bl MOD11_0222FABC
+ cmp r0, #1
+ bne _0222D6D2
+ mov r0, #5
+ str r0, [r4]
+ b _0222D7EA
+_0222D696:
+ add r0, r6, #0
+ bl MOD11_0222FB04
+ cmp r0, #1
+ bne _0222D6A6
+ mov r0, #6
+ str r0, [r4]
+ b _0222D7EA
+_0222D6A6:
+ mov r0, #8
+ str r0, [r4]
+ b _0222D7EA
+_0222D6AC:
+ add r0, r6, #0
+ bl MOD11_0222FC38
+ cmp r0, #1
+ bne _0222D6D2
+ ldr r0, _0222D7F0 ; =SDK_OVERLAY_MODULE_07_ID
+ bl UnloadOverlayByID
+ mov r0, #7
+ str r0, [r4]
+ mov r0, #0x3d
+ bl FUN_02031588
+ b _0222D7EA
+_0222D6C8:
+ mov r0, #0x3d
+ bl FUN_020315D8
+ cmp r0, #0
+ bne _0222D6D4
+_0222D6D2:
+ b _0222D7EA
+_0222D6D4:
+ mov r0, #8
+ str r0, [r4]
+ b _0222D7EA
+_0222D6DA:
+ ldr r0, _0222D7F4 ; =SDK_OVERLAY_MODULE_08_ID
+ mov r1, #2
+ bl HandleLoadOverlay
+ add r0, r6, #0
+ bl MOD11_0222DB50
+ mov r0, #9
+ str r0, [r4]
+ b _0222D7EA
+_0222D6EE:
+ add r0, r6, #0
+ bl MOD11_0222DF4C
+ cmp r0, #1
+ bne _0222D7EA
+ add r0, r6, #0
+ bl MOD11_0222DFA4
+ mov r0, #0xa
+ str r0, [r4]
+ b _0222D7EA
+_0222D704:
+ add r0, r6, #0
+ bl MOD11_0222FC80
+ cmp r0, #1
+ bne _0222D714
+ mov r0, #0xb
+ str r0, [r4]
+ b _0222D7EA
+_0222D714:
+ mov r0, #5
+ bl FUN_020168D0
+ mov r0, #0xd
+ str r0, [r4]
+ b _0222D7EA
+_0222D720:
+ add r0, r6, #0
+ bl MOD11_0222FE58
+ cmp r0, #1
+ bne _0222D7EA
+ ldr r0, _0222D7F0 ; =SDK_OVERLAY_MODULE_07_ID
+ bl UnloadOverlayByID
+ mov r0, #5
+ bl FUN_020168D0
+ mov r0, #0x3e
+ bl FUN_02031588
+ mov r0, #0xc
+ str r0, [r4]
+ b _0222D7EA
+_0222D742:
+ mov r0, #0x3e
+ bl FUN_020315D8
+ cmp r0, #0
+ beq _0222D7EA
+ mov r0, #0xf
+ str r0, [r4]
+ b _0222D7EA
+_0222D752:
+ add r1, sp, #0x24
+ add r2, sp, #0x20
+ bl MOD11_02230D38
+ add r6, r0, #0
+ beq _0222D7BC
+ mov r0, #3
+ mov r1, #0x49
+ lsl r2, r0, #0x10
+ bl FUN_0201681C
+ ldr r0, [r5, #4]
+ ldr r1, [sp, #0x24]
+ bl GetPartyMonByIndex
+ add r1, r0, #0
+ mov r0, #0x5a
+ lsl r0, r0, #2
+ ldr r2, [r5, r0]
+ mov r3, #0x49
+ str r2, [sp]
+ add r2, r0, #0
+ sub r2, #0x58
+ ldr r2, [r5, r2]
+ str r2, [sp, #4]
+ add r2, r0, #0
+ sub r2, #0x60
+ ldr r2, [r5, r2]
+ str r2, [sp, #8]
+ add r2, r0, #0
+ sub r2, #0x24
+ ldr r2, [r5, r2]
+ sub r0, #0x40
+ str r2, [sp, #0xc]
+ ldr r0, [r5, r0]
+ add r2, r6, #0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x20]
+ str r0, [sp, #0x14]
+ mov r0, #3
+ str r0, [sp, #0x18]
+ str r3, [sp, #0x1c]
+ add r3, #0xe7
+ ldr r0, [r5, #4]
+ ldr r3, [r5, r3]
+ bl FUN_0206C700
+ mov r1, #0x66
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0xe
+ str r0, [r4]
+ b _0222D7EA
+_0222D7BC:
+ mov r0, #0xf
+ str r0, [r4]
+ b _0222D7EA
+_0222D7C2:
+ mov r0, #0x66
+ lsl r0, r0, #2
+ ldr r5, [r5, r0]
+ add r0, r5, #0
+ bl FUN_0206C91C
+ cmp r0, #1
+ bne _0222D7EA
+ add r0, r5, #0
+ bl FUN_0206C92C
+ mov r0, #0x49
+ bl FUN_020168D0
+ mov r0, #0xd
+ str r0, [r4]
+ b _0222D7EA
+_0222D7E4:
+ add sp, #0x28
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_0222D7EA:
+ mov r0, #0
+ add sp, #0x28
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222D7F0: .word SDK_OVERLAY_MODULE_07_ID
+_0222D7F4: .word SDK_OVERLAY_MODULE_08_ID
+
+ thumb_func_start MOD11_0222D7F8
+MOD11_0222D7F8: ; 0x0222D7F8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD11_02258658
+ ldr r0, [r4, #4]
+ bl MOD11_022584AC
+ ldr r1, _0222D834 ; =0x000023FB
+ mov r0, #4
+ ldrb r2, [r4, r1]
+ orr r0, r2
+ strb r0, [r4, r1]
+ mov r0, #2
+ bl FUN_02002CF8
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD11_02231338
+ ldr r0, _0222D838 ; =SDK_OVERLAY_MODULE_08_ID
+ bl UnloadOverlayByID
+ ldr r0, _0222D83C ; =SDK_OVERLAY_MODULE_09_ID
+ mov r1, #2
+ bl HandleLoadOverlay
+ pop {r4, pc}
+ .align 2, 0
+_0222D834: .word 0x000023FB
+_0222D838: .word SDK_OVERLAY_MODULE_08_ID
+_0222D83C: .word SDK_OVERLAY_MODULE_09_ID
+
+ thumb_func_start MOD11_0222D840
+MOD11_0222D840: ; 0x0222D840
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD11_02258658
+ ldr r0, [r4, #8]
+ bl FUN_02019178
+ ldr r0, [r4, #4]
+ bl MOD11_0222E4E8
+ add r0, r4, #0
+ bl MOD11_0222E51C
+ add r0, r4, #0
+ add r1, r4, #0
+ add r0, #0x90
+ add r1, #0x94
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl FUN_0200C398
+ add r4, #0x90
+ ldr r0, [r4]
+ bl FUN_0200BD04
+ bl FUN_0201C29C
+ mov r0, #2
+ bl FUN_02002CF8
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0222D88C
+MOD11_0222D88C: ; 0x0222D88C
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, _0222D938 ; =SDK_OVERLAY_MODULE_09_ID
+ bl UnloadOverlayByID
+ ldr r0, _0222D93C ; =SDK_OVERLAY_MODULE_08_ID
+ mov r1, #2
+ bl HandleLoadOverlay
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD11_02231338
+ bl FUN_02022300
+ add r5, r0, #0
+ bl FUN_020222F8
+ add r1, r0, #0
+ mov r0, #0
+ add r2, r5, #0
+ bl MIi_CpuClear16
+ bl FUN_02031190
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223021C
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_022584D4
+ mov r1, #0x67
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #2
+ mov r1, #5
+ bl FUN_02002C50
+ ldr r1, _0222D940 ; =0x000023FB
+ mov r0, #2
+ ldrb r2, [r4, r1]
+ orr r0, r2
+ strb r0, [r4, r1]
+ ldr r0, [r4, #4]
+ bl MOD11_02258450
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD11_022586BC
+ mov r0, #0x67
+ lsl r0, r0, #2
+ mov r1, #0
+ ldr r0, [r4, r0]
+ mov r2, #1
+ add r3, r1, #0
+ bl MOD11_02258820
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD11_02258958
+ mov r0, #1
+ bl FUN_02002840
+ add r0, r4, #0
+ bl MOD11_0222FE94
+ add r4, #0x90
+ ldr r0, [r4]
+ bl FUN_0200BB68
+ mov r2, #0x11
+ mov r1, #0
+ lsl r2, r2, #0x10
+ bl FUN_02008D24
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222D938: .word SDK_OVERLAY_MODULE_09_ID
+_0222D93C: .word SDK_OVERLAY_MODULE_08_ID
+_0222D940: .word 0x000023FB
+
+ thumb_func_start MOD11_0222D944
+MOD11_0222D944: ; 0x0222D944
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ bl FUN_02019178
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #3
+ bl FUN_020178A0
+ add r0, r4, #0
+ bl MOD11_02231410
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0222D980
+MOD11_0222D980: ; 0x0222D980
+ push {r4, r5, r6, lr}
+ sub sp, #0x68
+ ldr r1, _0222DB38 ; =0x000023FB
+ add r5, r0, #0
+ ldrb r2, [r5, r1]
+ mov r0, #1
+ ldr r4, _0222DB3C ; =0x0225DAE0
+ bic r2, r0
+ mov r0, #1
+ orr r0, r2
+ strb r0, [r5, r1]
+ add r3, sp, #0x14
+ mov r2, #0xa
+_0222D99A:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222D99A
+ ldr r0, [r4]
+ mov r1, #1
+ str r0, [r3]
+ ldr r0, [r5, #4]
+ add r2, sp, #0x14
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r5, #4]
+ mov r1, #1
+ bl FUN_02018744
+ ldr r0, [r5, #4]
+ mov r1, #2
+ add r2, sp, #0x30
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r5, #4]
+ mov r1, #2
+ bl FUN_02018744
+ ldr r0, [r5, #4]
+ mov r1, #3
+ add r2, sp, #0x4c
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r5, #4]
+ mov r1, #3
+ bl FUN_02018744
+ ldr r1, _0222DB40 ; =0x04000008
+ mov r0, #3
+ ldrh r2, [r1]
+ bic r2, r0
+ mov r0, #1
+ orr r2, r0
+ strh r2, [r1]
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ add r0, r5, #0
+ bl MOD11_02230E44
+ add r4, r0, #0
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ mov r1, #1
+ ldr r0, [r5, #4]
+ add r2, r1, #0
+ mov r3, #0xa
+ bl FUN_0200D274
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #5
+ str r0, [sp, #0xc]
+ mov r1, #9
+ lsl r1, r1, #0xa
+ ldr r1, [r5, r1]
+ ldr r2, [r5, #4]
+ mov r0, #7
+ add r1, r1, #3
+ mov r3, #3
+ bl FUN_0200687C
+ add r0, r5, #0
+ bl MOD11_02230C68
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r3, #9
+ str r0, [sp, #8]
+ lsl r3, r3, #0xa
+ ldr r6, [r5, r3]
+ ldr r0, [r5, #0x28]
+ lsl r3, r6, #1
+ add r3, r6, r3
+ add r3, #0x9e
+ add r2, r3, r2
+ mov r1, #7
+ mov r3, #5
+ bl FUN_020030E8
+ add r0, r4, #0
+ bl FUN_0200CD64
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xa0
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x28]
+ mov r1, #0x26
+ mov r3, #5
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xb0
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x28]
+ mov r1, #0xe
+ mov r2, #7
+ mov r3, #5
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #5
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #7
+ mov r1, #2
+ mov r3, #3
+ bl FUN_020068C8
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ ldr r1, _0222DB44 ; =0xFFFF1FFF
+ ldr r3, _0222DB48 ; =0x04001000
+ and r2, r1
+ str r2, [r0]
+ ldr r2, [r3]
+ and r1, r2
+ add r2, r0, #0
+ str r1, [r3]
+ add r2, #0x48
+ ldrh r3, [r2]
+ mov r1, #0x3f
+ add r0, #0x4a
+ bic r3, r1
+ strh r3, [r2]
+ ldrh r2, [r0]
+ bic r2, r1
+ strh r2, [r0]
+ bl FUN_0201E788
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ ldr r0, _0222DB4C ; =MOD11_0222F01C
+ add r1, r5, #0
+ bl FUN_02015F10
+ ldr r0, _0222DB38 ; =0x000023FB
+ mov r3, #2
+ ldrb r1, [r5, r0]
+ mov r2, #1
+ orr r1, r3
+ strb r1, [r5, r0]
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xb
+ str r0, [sp, #0xc]
+ mov r0, #0x1f
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #4]
+ ldr r1, [r5, #8]
+ bl FUN_02019064
+ ldr r0, [r5, #8]
+ mov r1, #0xff
+ bl FUN_02019620
+ ldr r0, [r5, #8]
+ mov r1, #0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ add r0, r5, #0
+ bl MOD11_0222FE94
+ add sp, #0x68
+ pop {r4, r5, r6, pc}
+ nop
+_0222DB38: .word 0x000023FB
+_0222DB3C: .word 0x0225DAE0
+_0222DB40: .word 0x04000008
+_0222DB44: .word 0xFFFF1FFF
+_0222DB48: .word 0x04001000
+_0222DB4C: .word MOD11_0222F01C
+
+ thumb_func_start MOD11_0222DB50
+MOD11_0222DB50: ; 0x0222DB50
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ bl FUN_02006278
+ add r4, r0, #0
+ bl FUN_020222F0
+ add r5, r0, #0
+ bl FUN_020222E8
+ add r1, r0, #0
+ mov r0, #0
+ add r2, r5, #0
+ bl MIi_CpuClear16
+ bl FUN_02022300
+ add r5, r0, #0
+ bl FUN_020222F8
+ add r1, r0, #0
+ mov r0, #0
+ add r2, r5, #0
+ bl MIi_CpuClear16
+ bl GetLCRNGSeed
+ ldr r1, _0222DF0C ; =0x00002430
+ str r0, [r4, r1]
+ add r0, sp, #0x20
+ add r1, sp, #0x14
+ bl FUN_0201265C
+ ldr r0, _0222DF10 ; =0x021C48B8
+ ldr r6, [sp, #0x24]
+ ldr r5, [r0, #0x2c]
+ ldr r1, [sp, #0x18]
+ ldr r0, [sp, #0x1c]
+ lsl r6, r6, #8
+ add r0, r1, r0
+ lsl r3, r0, #0x18
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x20]
+ lsl r2, r0, #0x10
+ ldr r0, [sp, #0x28]
+ mul r6, r0
+ lsl r0, r6, #0x10
+ add r0, r1, r0
+ add r0, r2, r0
+ add r0, r3, r0
+ add r0, r5, r0
+ bl SetLCRNGSeed
+ bl MOD11_0222EF30
+ str r0, [r4]
+ bl FUN_02015F1C
+ mov r0, #2
+ mov r1, #5
+ bl FUN_02002C50
+ mov r0, #0xe
+ mov r1, #1
+ mov r2, #0xf
+ mov r3, #5
+ bl FUN_0200B870
+ mov r1, #0x6a
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r2, [r4, r1]
+ add r0, r1, #4
+ str r2, [r4, r0]
+ mov r0, #5
+ bl FUN_02002FD0
+ str r0, [r4, #0x28]
+ mov r1, #1
+ bl FUN_020038F0
+ mov r2, #2
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ lsl r2, r2, #8
+ mov r3, #5
+ bl FUN_02003008
+ mov r1, #1
+ ldr r0, [r4, #0x28]
+ lsl r2, r1, #9
+ mov r3, #5
+ bl FUN_02003008
+ mov r2, #7
+ ldr r0, [r4, #0x28]
+ mov r1, #2
+ lsl r2, r2, #6
+ mov r3, #5
+ bl FUN_02003008
+ mov r2, #2
+ ldr r0, [r4, #0x28]
+ mov r1, #3
+ lsl r2, r2, #8
+ mov r3, #5
+ bl FUN_02003008
+ mov r0, #5
+ bl FUN_02016B94
+ str r0, [r4, #4]
+ mov r0, #5
+ mov r1, #3
+ bl FUN_02018FF4
+ mov r7, #0x73
+ str r0, [r4, #8]
+ mov r6, #0
+ add r5, r4, #0
+ lsl r7, r7, #2
+_0222DC42:
+ mov r1, #0x32
+ mov r0, #5
+ lsl r1, r1, #6
+ bl AllocFromHeap
+ str r0, [r5, r7]
+ add r6, r6, #1
+ add r5, #0x10
+ cmp r6, #4
+ blt _0222DC42
+ mov r0, #0x40
+ mov r1, #5
+ bl FUN_0201C24C
+ bl FUN_02031190
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223021C
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_022584D4
+ mov r1, #0x67
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r1, [r4, #4]
+ add r0, r4, #0
+ bl MOD11_0222E264
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xb
+ str r0, [sp, #0xc]
+ mov r0, #0x1f
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #4]
+ ldr r1, [r4, #8]
+ mov r2, #1
+ mov r3, #2
+ bl FUN_02019064
+ ldr r0, [r4, #8]
+ mov r1, #0xff
+ bl FUN_02019620
+ ldr r0, [r4, #8]
+ mov r1, #0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ mov r0, #5
+ bl FUN_0200BB14
+ add r1, r4, #0
+ add r1, #0x90
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ ldr r1, _0222DF14 ; =0x0225DA20
+ ldr r2, _0222DF18 ; =0x0225D9D8
+ mov r3, #0x20
+ bl FUN_0200BB6C
+ ldr r1, _0222DF1C ; =0x00100010
+ mov r0, #1
+ bl FUN_02008D44
+ mov r0, #1
+ bl FUN_02008DDC
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl FUN_0200BB34
+ add r1, r4, #0
+ add r1, #0x94
+ str r0, [r1]
+ add r0, r4, #0
+ add r1, r4, #0
+ add r0, #0x90
+ add r1, #0x94
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x80
+ bl FUN_0200BBF0
+ add r0, r4, #0
+ add r1, r4, #0
+ add r0, #0x90
+ add r1, #0x94
+ ldr r0, [r0]
+ ldr r1, [r1]
+ ldr r2, _0222DF20 ; =0x0225D9EC
+ bl FUN_0200BF60
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl FUN_0200BB68
+ mov r2, #0x11
+ mov r1, #0
+ lsl r2, r2, #0x10
+ bl FUN_02008D24
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD11_022586BC
+ mov r0, #0x67
+ lsl r0, r0, #2
+ mov r1, #0
+ ldr r0, [r4, r0]
+ mov r2, #1
+ add r3, r1, #0
+ bl MOD11_02258820
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD11_02258958
+ mov r0, #5
+ bl FUN_02006D98
+ add r1, r4, #0
+ add r1, #0x88
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #0
+ mov r2, #0xc0
+ bl FUN_020081B4
+ add r0, r4, #0
+ bl MOD11_02231390
+ bl MOD11_0222EFDC
+ mov r0, #5
+ bl MOD08_02211F5C
+ add r1, r4, #0
+ add r1, #0x8c
+ str r0, [r1]
+ add r0, r4, #0
+ bl MOD11_0222E470
+ bl FUN_0201CC08
+ mov r0, #4
+ bl FUN_0201CC24
+ mov r2, #0x51
+ mov r0, #1
+ mov r1, #0x1a
+ lsl r2, r2, #2
+ mov r3, #5
+ bl NewMsgDataFromNarc
+ str r0, [r4, #0xc]
+ mov r0, #1
+ mov r1, #0x1a
+ mov r2, #0
+ mov r3, #5
+ bl NewMsgDataFromNarc
+ str r0, [r4, #0x10]
+ mov r0, #5
+ bl FUN_0200AA80
+ str r0, [r4, #0x14]
+ mov r0, #5
+ lsl r0, r0, #6
+ mov r1, #5
+ bl FUN_020219F4
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_020031FC
+ ldr r1, _0222DF24 ; =0x00002224
+ mov r2, #0xe0
+ add r1, r4, r1
+ bl MIi_CpuCopy16
+ ldr r0, [r4, #0x28]
+ mov r1, #2
+ bl FUN_020031FC
+ ldr r1, _0222DF28 ; =0x00002304
+ mov r2, #0xe0
+ add r1, r4, r1
+ bl MIi_CpuCopy16
+ add r0, r4, #0
+ bl MOD11_02230C68
+ mov r1, #0
+ lsl r5, r0, #2
+ mov r3, #9
+ str r1, [sp]
+ mov r0, #0x70
+ str r0, [sp, #4]
+ lsl r3, r3, #0xa
+ ldr r3, [r4, r3]
+ mov r6, #0xc
+ mul r6, r3
+ ldr r3, _0222DF2C ; =0x0225DB88
+ ldr r0, [r4, #0x28]
+ add r3, r3, r6
+ ldr r3, [r5, r3]
+ mov r2, #2
+ lsl r3, r3, #0x10
+ lsr r3, r3, #0x10
+ bl FUN_02003914
+ mov r0, #0xc0
+ str r0, [sp]
+ add r0, #0x40
+ mov r3, #9
+ str r0, [sp, #4]
+ lsl r3, r3, #0xa
+ ldr r3, [r4, r3]
+ mov r6, #0xc
+ mul r6, r3
+ ldr r3, _0222DF2C ; =0x0225DB88
+ ldr r0, [r4, #0x28]
+ add r3, r3, r6
+ ldr r3, [r5, r3]
+ mov r1, #0
+ lsl r3, r3, #0x10
+ mov r2, #2
+ lsr r3, r3, #0x10
+ bl FUN_02003914
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xdf
+ mov r3, #9
+ str r0, [sp, #4]
+ lsl r3, r3, #0xa
+ mov r1, #2
+ ldr r3, [r4, r3]
+ mov r6, #0xc
+ mul r6, r3
+ ldr r3, _0222DF2C ; =0x0225DB88
+ ldr r0, [r4, #0x28]
+ add r3, r3, r6
+ ldr r3, [r5, r3]
+ add r2, r1, #0
+ lsl r3, r3, #0x10
+ lsr r3, r3, #0x10
+ bl FUN_02003914
+ mov r1, #0
+ mov r0, #0xa0
+ str r0, [sp]
+ mov r0, #0xc0
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x28]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02003914
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x28]
+ ldr r3, _0222DF30 ; =0x0000FFFF
+ mov r1, #1
+ bl FUN_02003914
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x28]
+ ldr r3, _0222DF30 ; =0x0000FFFF
+ mov r1, #3
+ bl FUN_02003914
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ mov r2, #0xb
+ mov r3, #5
+ bl FUN_020142EC
+ mov r1, #0x1b
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r1, #1
+ bl FUN_020143A8
+ ldr r0, _0222DF34 ; =MOD11_0222F100
+ ldr r2, _0222DF38 ; =0x0000EA60
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #0x1c]
+ ldr r0, _0222DF3C ; =MOD11_0222F144
+ ldr r2, _0222DF40 ; =0x0000C350
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #0x20]
+ mov r2, #0x4b
+ ldr r0, _0222DF44 ; =MOD11_0222F254
+ add r1, r4, #0
+ lsl r2, r2, #4
+ bl FUN_0200CA60
+ str r0, [r4, #0x24]
+ mov r1, #0x32
+ ldr r0, _0222DF48 ; =0x00002434
+ mvn r1, r1
+ str r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD11_0222FE94
+ add r0, r4, #0
+ bl MOD11_02230218
+ bl FUN_0206F1C0
+ mov r0, #5
+ mov r1, #4
+ mov r2, #0
+ bl FUN_02014BF4
+ mov r1, #0x71
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #2
+ mov r1, #5
+ bl FUN_0201C328
+ mov r1, #0x72
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222DF0C: .word 0x00002430
+_0222DF10: .word 0x021C48B8
+_0222DF14: .word 0x0225DA20
+_0222DF18: .word 0x0225D9D8
+_0222DF1C: .word 0x00100010
+_0222DF20: .word 0x0225D9EC
+_0222DF24: .word 0x00002224
+_0222DF28: .word 0x00002304
+_0222DF2C: .word 0x0225DB88
+_0222DF30: .word 0x0000FFFF
+_0222DF34: .word MOD11_0222F100
+_0222DF38: .word 0x0000EA60
+_0222DF3C: .word MOD11_0222F144
+_0222DF40: .word 0x0000C350
+_0222DF44: .word MOD11_0222F254
+_0222DF48: .word 0x00002434
+
+ thumb_func_start MOD11_0222DF4C
+MOD11_0222DF4C: ; 0x0222DF4C
+ push {r4, r5, r6, lr}
+ bl FUN_02006278
+ ldr r1, _0222DF9C ; =0x000023F8
+ add r4, r0, #0
+ ldrb r1, [r4, r1]
+ cmp r1, #0
+ beq _0222DF7A
+ ldr r2, [r4, #0x2c]
+ mov r1, #4
+ tst r1, r2
+ ldr r1, [r4, #0x30]
+ beq _0222DF6C
+ bl MOD11_0223D238
+ b _0222DF7A
+_0222DF6C:
+ bl MOD11_0223D238
+ ldr r1, _0222DFA0 ; =0x000023FA
+ strb r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD11_02254820
+_0222DF7A:
+ ldr r0, [r4, #0x44]
+ mov r6, #0
+ cmp r0, #0
+ ble _0222DF96
+ add r5, r4, #0
+_0222DF84:
+ ldr r1, [r5, #0x34]
+ add r0, r4, #0
+ bl MOD11_0224CB38
+ ldr r0, [r4, #0x44]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, r0
+ blt _0222DF84
+_0222DF96:
+ ldr r0, _0222DFA0 ; =0x000023FA
+ ldrb r0, [r4, r0]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222DF9C: .word 0x000023F8
+_0222DFA0: .word 0x000023FA
+
+ thumb_func_start MOD11_0222DFA4
+MOD11_0222DFA4: ; 0x0222DFA4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_0200628C
+ add r7, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ add r0, r4, #0
+ bl MOD11_02230EC8
+ ldr r0, _0222E248 ; =0x0000241C
+ ldrb r0, [r4, r0]
+ cmp r0, #4
+ beq _0222DFE4
+ ldr r0, [r4, #0x6c]
+ mov r1, #0
+ bl GetPartyMonByIndex
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_02230FA8
+_0222DFE4:
+ mov r0, #0
+ str r0, [sp]
+ add r6, r7, #0
+ add r5, r4, #0
+_0222DFEC:
+ ldr r0, [r5, #0x68]
+ ldr r1, [r6, #4]
+ bl FUN_0206BAD0
+ ldr r0, [r5, #0x68]
+ bl FreeToHeap
+ add r1, r6, #0
+ add r1, #0xf8
+ ldr r0, [r5, #0x48]
+ ldr r1, [r1]
+ bl FUN_0202393C
+ ldr r0, [r5, #0x48]
+ bl FreeToHeap
+ ldr r0, [sp]
+ add r6, r6, #4
+ add r0, r0, #1
+ add r5, r5, #4
+ str r0, [sp]
+ cmp r0, #4
+ blt _0222DFEC
+ mov r0, #0x1b
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_020143D0
+ mov r1, #0x42
+ lsl r1, r1, #2
+ ldr r0, [r4, #0x58]
+ ldr r1, [r7, r1]
+ bl FUN_0206EBB4
+ ldr r0, [r4, #0x58]
+ bl FreeToHeap
+ mov r1, #0x11
+ lsl r1, r1, #4
+ ldr r0, [r4, #0x60]
+ ldr r1, [r7, r1]
+ bl FUN_02023D80
+ ldr r0, [r4, #0x60]
+ bl FreeToHeap
+ mov r0, #0x45
+ ldr r1, [r4, #0x64]
+ lsl r0, r0, #2
+ str r1, [r7, r0]
+ add r1, r0, #0
+ ldr r2, [r4, #0x5c]
+ sub r1, #8
+ str r2, [r7, r1]
+ add r1, r4, #0
+ add r1, #0x98
+ ldr r2, [r1]
+ add r1, r0, #0
+ add r1, #0x14
+ str r2, [r7, r1]
+ add r1, r4, #0
+ add r1, #0x9c
+ ldr r2, [r1]
+ add r1, r0, #0
+ add r1, #0x20
+ str r2, [r7, r1]
+ add r1, r0, #0
+ ldr r2, _0222E24C ; =0x00002410
+ add r1, #0x7c
+ ldr r3, [r4, r2]
+ add r0, #0x5c
+ str r3, [r7, r1]
+ add r1, r2, #0
+ add r1, #0xc
+ ldrb r3, [r4, r1]
+ mov r1, #0x3f
+ add r2, #0x28
+ and r1, r3
+ str r1, [r7, #0x14]
+ ldr r1, [r4, r2]
+ mov r2, #4
+ str r1, [r7, r0]
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ mov r3, #0
+ bl MOD11_0224C474
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ str r0, [r7, r1]
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ mov r2, #3
+ mov r3, #0
+ bl MOD11_0224C474
+ mov r1, #0x4e
+ lsl r1, r1, #2
+ ldr r2, [r7, r1]
+ mov r3, #0
+ add r0, r2, r0
+ str r0, [r7, r1]
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ mov r2, #6
+ bl MOD11_0224C474
+ add r5, r0, #0
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ mov r2, #6
+ mov r3, #2
+ bl MOD11_0224C474
+ mov r1, #0x4f
+ lsl r1, r1, #2
+ ldr r2, [r7, r1]
+ add r0, r5, r0
+ add r0, r2, r0
+ str r0, [r7, r1]
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ mov r2, #7
+ mov r3, #0
+ bl MOD11_0224C474
+ add r5, r0, #0
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ mov r2, #7
+ mov r3, #2
+ bl MOD11_0224C474
+ mov r1, #5
+ lsl r1, r1, #6
+ ldr r2, [r7, r1]
+ add r0, r5, r0
+ add r0, r2, r0
+ str r0, [r7, r1]
+ add r7, r1, #0
+ mov r6, #0
+ add r5, r4, #0
+ add r7, #0x8c
+_0222E10A:
+ ldr r0, [r5, r7]
+ bl FreeToHeap
+ add r6, r6, #1
+ add r5, #0x10
+ cmp r6, #4
+ blt _0222E10A
+ ldr r0, [r4, #0x18]
+ bl FreeToHeap
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_02003038
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ bl FUN_02003038
+ ldr r0, [r4, #0x28]
+ mov r1, #2
+ bl FUN_02003038
+ ldr r0, [r4, #0x28]
+ mov r1, #3
+ bl FUN_02003038
+ ldr r0, [r4, #0x28]
+ bl FUN_02002FEC
+ ldr r0, [r4, #0xc]
+ bl DestroyMsgData
+ ldr r0, [r4, #0x10]
+ bl DestroyMsgData
+ ldr r0, [r4, #0x14]
+ bl FUN_0200AB18
+ mov r0, #0x71
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02014C28
+ bl FUN_02012EAC
+ add r0, r4, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ bl MOD08_02212024
+ ldr r0, [r4, #0x30]
+ bl MOD11_0223D284
+ ldr r0, [r4, #0x44]
+ mov r6, #0
+ cmp r0, #0
+ ble _0222E194
+ ldr r7, _0222E250 ; =0x000023F9
+ add r5, r4, #0
+_0222E180:
+ ldrb r2, [r4, r7]
+ ldr r1, [r5, #0x34]
+ add r0, r4, #0
+ bl MOD11_0224CB54
+ ldr r0, [r4, #0x44]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, r0
+ blt _0222E180
+_0222E194:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ bl FUN_020072E8
+ ldr r0, _0222E250 ; =0x000023F9
+ ldrb r0, [r4, r0]
+ cmp r0, #2
+ beq _0222E1AC
+ add r0, r4, #0
+ bl MOD11_0222D840
+_0222E1AC:
+ mov r0, #0
+ bl FUN_02002B60
+ mov r0, #0
+ bl FUN_02002B7C
+ mov r0, #0
+ bl FUN_02002BB8
+ ldr r0, [r4, #8]
+ mov r1, #3
+ bl FUN_020191A4
+ ldr r0, [r4, #4]
+ bl FreeToHeap
+ mov r0, #0x87
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FreeToHeap
+ mov r0, #0x22
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FreeToHeap
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200B990
+ mov r0, #2
+ bl FUN_02002CF8
+ ldr r0, [r4, #0x1c]
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0x20]
+ bl FUN_0200CAB4
+ bl FUN_0201CD04
+ ldr r0, [r4]
+ bl MOD11_0222EFD4
+ ldr r0, _0222E254 ; =0x00002430
+ ldr r0, [r4, r0]
+ bl SetLCRNGSeed
+ add r0, r4, #0
+ bl MOD11_02231474
+ cmp r0, #0
+ beq _0222E220
+ ldr r0, _0222E258 ; =0x00000704
+ mov r1, #0
+ bl FUN_020054F0
+_0222E220:
+ mov r0, #0x72
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0201C350
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, _0222E25C ; =SDK_OVERLAY_MODULE_08_ID
+ bl UnloadOverlayByID
+ bl FUN_02033590
+ cmp r0, #0
+ bne _0222E244
+ ldr r0, _0222E260 ; =SDK_OVERLAY_MODULE_16_ID
+ bl UnloadOverlayByID
+_0222E244:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222E248: .word 0x0000241C
+_0222E24C: .word 0x00002410
+_0222E250: .word 0x000023F9
+_0222E254: .word 0x00002430
+_0222E258: .word 0x00000704
+_0222E25C: .word SDK_OVERLAY_MODULE_08_ID
+_0222E260: .word SDK_OVERLAY_MODULE_16_ID
+
+ thumb_func_start MOD11_0222E264
+MOD11_0222E264: ; 0x0222E264
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x9c
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0201E6D8
+ mov r0, #0
+ bl FUN_0200E394
+ mov r0, #1
+ bl FUN_0200E394
+ ldr r6, _0222E450 ; =0x0225DA68
+ add r3, sp, #0x20
+ mov r2, #5
+_0222E282:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222E282
+ add r0, sp, #0x20
+ bl FUN_0201E66C
+ mov r1, #6
+ mov r2, #2
+ mov r0, #0
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0x12
+ bl MIi_CpuClear32
+ mov r1, #0x62
+ mov r2, #2
+ mov r0, #0
+ lsl r1, r1, #0x14
+ lsl r2, r2, #0x10
+ bl MIi_CpuClear32
+ mov r1, #0x19
+ mov r2, #1
+ mov r0, #0
+ lsl r1, r1, #0x16
+ lsl r2, r2, #0x12
+ bl MIi_CpuClear32
+ mov r1, #0x66
+ mov r2, #2
+ mov r0, #0
+ lsl r1, r1, #0x14
+ lsl r2, r2, #0x10
+ bl MIi_CpuClear32
+ ldr r6, _0222E454 ; =0x0225D9A8
+ add r3, sp, #0x10
+ add r2, r3, #0
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ ldr r1, _0222E458 ; =0x000023FB
+ mov r0, #1
+ ldrb r2, [r5, r1]
+ ldr r6, _0222E45C ; =0x0225DB34
+ add r3, sp, #0x48
+ bic r2, r0
+ mov r0, #1
+ orr r0, r2
+ strb r0, [r5, r1]
+ mov r2, #0xa
+_0222E2F0:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222E2F0
+ ldr r0, [r6]
+ mov r1, #1
+ str r0, [r3]
+ add r0, r4, #0
+ add r2, sp, #0x48
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018744
+ add r0, r4, #0
+ mov r1, #2
+ add r2, sp, #0x64
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_02018744
+ add r0, r4, #0
+ mov r1, #3
+ add r2, sp, #0x80
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_02018744
+ ldr r1, _0222E460 ; =0x04000008
+ mov r0, #3
+ ldrh r2, [r1]
+ bic r2, r0
+ mov r0, #1
+ orr r2, r0
+ strh r2, [r1]
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ add r0, r4, #0
+ bl MOD11_02258450
+ add r0, r5, #0
+ bl MOD11_02230E44
+ add r7, r0, #0
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #5
+ mov r1, #1
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r2, r1, #0
+ mov r3, #0xa
+ bl FUN_0200D274
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #5
+ mov r1, #9
+ str r0, [sp, #0xc]
+ lsl r1, r1, #0xa
+ ldr r1, [r5, r1]
+ mov r0, #7
+ add r1, r1, #3
+ add r2, r4, #0
+ mov r3, #3
+ bl FUN_0200687C
+ add r0, r5, #0
+ bl MOD11_02230C68
+ add r6, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r2, #9
+ str r0, [sp, #8]
+ lsl r2, r2, #0xa
+ ldr r3, [r5, r2]
+ ldr r0, [r5, #0x28]
+ lsl r2, r3, #1
+ add r2, r3, r2
+ add r2, #0x9e
+ mov r1, #7
+ add r2, r2, r6
+ mov r3, #5
+ bl FUN_020030E8
+ add r0, r7, #0
+ bl FUN_0200CD64
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xa0
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x28]
+ mov r1, #0x26
+ mov r3, #5
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xb0
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x28]
+ mov r1, #0xe
+ mov r2, #7
+ mov r3, #5
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #5
+ str r0, [sp, #0xc]
+ mov r0, #7
+ mov r1, #2
+ add r2, r4, #0
+ mov r3, #3
+ bl FUN_020068C8
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ ldr r1, _0222E464 ; =0xFFFF1FFF
+ ldr r3, _0222E468 ; =0x04001000
+ and r2, r1
+ str r2, [r0]
+ ldr r2, [r3]
+ and r1, r2
+ add r2, r0, #0
+ str r1, [r3]
+ add r2, #0x48
+ ldrh r3, [r2]
+ mov r1, #0x3f
+ add r0, #0x4a
+ bic r3, r1
+ strh r3, [r2]
+ ldrh r2, [r0]
+ bic r2, r1
+ strh r2, [r0]
+ bl FUN_0201E788
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ ldr r0, _0222E46C ; =MOD11_0222F01C
+ add r1, r5, #0
+ bl FUN_02015F10
+ add sp, #0x9c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222E450: .word 0x0225DA68
+_0222E454: .word 0x0225D9A8
+_0222E458: .word 0x000023FB
+_0222E45C: .word 0x0225DB34
+_0222E460: .word 0x04000008
+_0222E464: .word 0xFFFF1FFF
+_0222E468: .word 0x04001000
+_0222E46C: .word MOD11_0222F01C
+
+ thumb_func_start MOD11_0222E470
+MOD11_0222E470: ; 0x0222E470
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ bl MOD11_02230294
+ add r4, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ add r0, r5, r0
+ add r1, r5, #0
+ mov r2, #0
+ add r3, r4, #0
+ bl MOD11_022583D8
+ mov r0, #0x63
+ lsl r0, r0, #2
+ add r0, r5, r0
+ add r1, r5, #0
+ mov r2, #1
+ add r3, r4, #0
+ bl MOD11_022583D8
+ add r0, r5, #0
+ bl MOD11_0222FF78
+ str r0, [sp]
+ ldr r0, [r5, #0x44]
+ mov r4, #0
+ cmp r0, #0
+ ble _0222E4E2
+ add r6, r5, #0
+_0222E4AC:
+ ldr r1, [sp]
+ add r0, r5, #0
+ mov r2, #2
+ add r3, r4, #0
+ bl MOD11_0224C474
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD11_02230014
+ mov r1, #0x9a
+ mov r2, #0
+ bl GetMonData
+ add r2, r0, #0
+ ldr r1, [r6, #0x34]
+ add r0, r5, #0
+ add r3, r7, #0
+ bl MOD11_0224CA94
+ ldr r0, [r5, #0x44]
+ add r4, r4, #1
+ add r6, r6, #4
+ cmp r4, r0
+ blt _0222E4AC
+_0222E4E2:
+ bl FUN_02033E74
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0222E4E8
+MOD11_0222E4E8: ; 0x0222E4E8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_020178A0
+ add r0, r4, #0
+ bl MOD11_022584AC
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0222E51C
+MOD11_0222E51C: ; 0x0222E51C
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0222E520
+MOD11_0222E520: ; 0x0222E520
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ add r4, r0, #0
+ ldr r0, [r1]
+ str r1, [sp, #4]
+ str r0, [r4, #0x2c]
+ mov r7, #0
+ add r6, r4, #0
+ add r5, r1, #0
+_0222E532:
+ mov r0, #5
+ bl FUN_02023928
+ add r1, r0, #0
+ add r0, r5, #0
+ str r1, [r6, #0x48]
+ add r0, #0xf8
+ ldr r0, [r0]
+ bl FUN_0202393C
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r7, r7, #1
+ str r0, [r6, #0x78]
+ add r6, r6, #4
+ add r5, r5, #4
+ cmp r7, #4
+ blt _0222E532
+ mov r0, #5
+ bl FUN_0206EB88
+ str r0, [r4, #0x58]
+ mov r1, #0x42
+ ldr r0, [sp, #4]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ ldr r1, [r4, #0x58]
+ bl FUN_0206EBB4
+ mov r0, #5
+ bl FUN_02023D6C
+ str r0, [r4, #0x60]
+ mov r1, #0x11
+ ldr r0, [sp, #4]
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ ldr r1, [r4, #0x60]
+ bl FUN_02023D80
+ mov r1, #0x45
+ lsl r1, r1, #2
+ ldr r0, [sp, #4]
+ add r2, r1, #0
+ ldr r0, [r0, r1]
+ add r3, r1, #0
+ str r0, [r4, #0x64]
+ ldr r0, [sp, #4]
+ add r2, #0x1c
+ ldr r2, [r0, r2]
+ add r0, r1, #0
+ add r0, #0xa0
+ str r2, [r4, r0]
+ add r2, r1, #0
+ ldr r0, [sp, #4]
+ add r2, #0x38
+ ldr r2, [r0, r2]
+ add r0, r1, #0
+ add r0, #0xa4
+ str r2, [r4, r0]
+ add r2, r1, #0
+ ldr r0, [sp, #4]
+ sub r2, #8
+ ldr r0, [r0, r2]
+ add r2, r1, #0
+ str r0, [r4, #0x5c]
+ ldr r0, [sp, #4]
+ add r2, #0x14
+ ldr r2, [r0, r2]
+ add r0, r4, #0
+ add r0, #0x98
+ str r2, [r0]
+ add r2, r1, #0
+ ldr r0, [sp, #4]
+ add r2, #0x50
+ ldr r2, [r0, r2]
+ ldr r0, _0222E8BC ; =0x00002420
+ add r3, #0x20
+ str r2, [r4, r0]
+ ldr r2, [sp, #4]
+ ldr r3, [r2, r3]
+ add r2, r4, #0
+ add r2, #0x9c
+ str r3, [r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x7c
+ ldr r3, [r2, r3]
+ add r2, r0, #0
+ sub r2, #0x10
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x40
+ ldr r3, [r2, r3]
+ add r2, r0, #0
+ sub r2, #0x24
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x3c
+ ldr r3, [r2, r3]
+ add r2, r0, #0
+ sub r2, #0x20
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x44
+ ldr r3, [r2, r3]
+ add r2, r0, #0
+ sub r2, #0x1c
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x4c
+ ldr r3, [r2, r3]
+ add r2, r0, #0
+ sub r2, #0x14
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x78
+ ldr r3, [r2, r3]
+ add r2, r0, #0
+ sub r2, #0x18
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x80
+ ldr r3, [r2, r3]
+ add r2, r0, #0
+ sub r2, #8
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x54
+ ldr r3, [r2, r3]
+ add r2, r0, #4
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x58
+ ldr r3, [r2, r3]
+ add r2, r0, #0
+ add r2, #0xc
+ str r3, [r4, r2]
+ add r3, r1, #0
+ ldr r2, [sp, #4]
+ add r3, #0x60
+ ldr r2, [r2, r3]
+ add r0, #8
+ str r2, [r4, r0]
+ ldr r0, [sp, #4]
+ add r1, #0x30
+ ldr r0, [r0, r1]
+ mov r1, #0x86
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [sp, #4]
+ sub r1, #0xd4
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ bne _0222E67E
+ bl ErrorHandling
+_0222E67E:
+ ldr r5, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ str r4, [sp, #0x30]
+ add r6, r5, #0
+ add r7, r4, #0
+_0222E68A:
+ ldr r0, [sp, #0x30]
+ ldr r1, [r5, #0x18]
+ add r0, #0xa0
+ strh r1, [r0]
+ add r3, r6, #0
+ add r2, r7, #0
+ mov r0, #6
+ add r3, #0x28
+ add r2, #0xac
+ mov ip, r0
+_0222E69E:
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ mov r0, ip
+ sub r0, r0, #1
+ mov ip, r0
+ bne _0222E69E
+ ldr r0, [r3]
+ add r5, r5, #4
+ str r0, [r2]
+ ldr r0, [sp, #0x30]
+ add r6, #0x34
+ add r0, r0, #2
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #8]
+ add r7, #0x34
+ add r0, r0, #1
+ str r0, [sp, #8]
+ cmp r0, #4
+ blt _0222E68A
+ add r0, r4, #0
+ bl MOD11_0223D1DC
+ str r0, [r4, #0x30]
+ mov r6, #0
+ add r5, r4, #0
+ mov r7, #5
+_0222E6D2:
+ add r0, r7, #0
+ bl FUN_0206B8AC
+ str r0, [r5, #0x68]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #4
+ blt _0222E6D2
+ ldr r0, [r4, #0x2c]
+ mov r1, #4
+ tst r1, r0
+ bne _0222E6EC
+ b _0222EA8A
+_0222E6EC:
+ add r0, r4, #0
+ bl FUN_0206BF90
+ bl FUN_02031190
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x34]
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_0222FEC0
+ ldr r1, [r4, #0x2c]
+ mov r0, #0x80
+ tst r0, r1
+ beq _0222E7D0
+ ldr r6, _0222E8C0 ; =0x0225DC18
+ mov r5, #0
+ add r7, r4, #0
+_0222E712:
+ add r0, sp, #0x3c
+ strb r5, [r0]
+ ldrb r1, [r6]
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r1, sp, #0x3c
+ bl MOD11_0224CA64
+ str r0, [r7, #0x34]
+ add r5, r5, #1
+ add r6, r6, #1
+ add r7, r7, #4
+ cmp r5, #4
+ blt _0222E712
+ str r5, [r4, #0x44]
+ mov r6, #0
+ add r5, r4, #0
+_0222E734:
+ ldr r1, [r5, #0x34]
+ add r0, r4, #0
+ bl MOD11_0225377C
+ ldr r0, [sp, #4]
+ ldr r1, [r5, #0x68]
+ ldr r0, [r0, #4]
+ bl FUN_0206BAD0
+ ldr r0, [sp, #4]
+ add r6, r6, #1
+ add r0, r0, #4
+ add r5, r5, #4
+ str r0, [sp, #4]
+ cmp r6, #4
+ blt _0222E734
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x44]
+ cmp r0, #0
+ ble _0222E7C6
+ add r7, r4, #0
+_0222E760:
+ ldr r0, [r7, #0x68]
+ mov r5, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0222E7AA
+_0222E76C:
+ ldr r0, [r7, #0x68]
+ add r1, r5, #0
+ bl GetPartyMonByIndex
+ mov r1, #5
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222E79E
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222E79E
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222E7AA
+_0222E79E:
+ ldr r0, [r7, #0x68]
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _0222E76C
+_0222E7AA:
+ str r5, [sp]
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0xc]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C54C
+ ldr r0, [sp, #0xc]
+ ldr r1, [r4, #0x44]
+ add r0, r0, #1
+ add r7, r7, #4
+ str r0, [sp, #0xc]
+ cmp r0, r1
+ blt _0222E760
+_0222E7C6:
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ bl MOD11_0224B240
+ b _0222EA80
+_0222E7D0:
+ mov r0, #8
+ tst r0, r1
+ beq _0222E8AC
+ mov r5, #0
+ add r6, r4, #0
+_0222E7DA:
+ add r0, sp, #0x3c
+ strb r5, [r0]
+ ldr r0, [sp, #0x34]
+ bl FUN_020313CC
+ add r7, r0, #0
+ add r0, r5, #0
+ bl FUN_020313CC
+ ldr r1, _0222E8C4 ; =0x0225D9C8
+ lsl r2, r7, #2
+ add r1, r1, r2
+ ldrb r1, [r0, r1]
+ add r0, sp, #0x3c
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r1, sp, #0x3c
+ bl MOD11_0224CA64
+ str r0, [r6, #0x34]
+ add r5, r5, #1
+ add r6, r6, #4
+ cmp r5, #4
+ blt _0222E7DA
+ str r5, [r4, #0x44]
+ mov r6, #0
+ add r5, r4, #0
+_0222E810:
+ ldr r1, [r5, #0x34]
+ add r0, r4, #0
+ bl MOD11_0225377C
+ ldr r0, [sp, #4]
+ ldr r1, [r5, #0x68]
+ ldr r0, [r0, #4]
+ bl FUN_0206BAD0
+ ldr r0, [sp, #4]
+ add r6, r6, #1
+ add r0, r0, #4
+ add r5, r5, #4
+ str r0, [sp, #4]
+ cmp r6, #4
+ blt _0222E810
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x44]
+ cmp r0, #0
+ ble _0222E8A2
+ add r7, r4, #0
+_0222E83C:
+ ldr r0, [r7, #0x68]
+ mov r5, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0222E886
+_0222E848:
+ ldr r0, [r7, #0x68]
+ add r1, r5, #0
+ bl GetPartyMonByIndex
+ mov r1, #5
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222E87A
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222E87A
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222E886
+_0222E87A:
+ ldr r0, [r7, #0x68]
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _0222E848
+_0222E886:
+ str r5, [sp]
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0x10]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C54C
+ ldr r0, [sp, #0x10]
+ ldr r1, [r4, #0x44]
+ add r0, r0, #1
+ add r7, r7, #4
+ str r0, [sp, #0x10]
+ cmp r0, r1
+ blt _0222E83C
+_0222E8A2:
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ bl MOD11_0224B240
+ b _0222EA80
+_0222E8AC:
+ mov r0, #2
+ tst r0, r1
+ bne _0222E8B4
+ b _0222E9D4
+_0222E8B4:
+ ldr r0, [sp, #0x34]
+ ldr r1, _0222E8C8 ; =0x0225D9A0
+ b _0222E8CC
+ nop
+_0222E8BC: .word 0x00002420
+_0222E8C0: .word 0x0225DC18
+_0222E8C4: .word 0x0225D9C8
+_0222E8C8: .word 0x0225D9A0
+_0222E8CC:
+ lsl r0, r0, #2
+ mov r5, #0
+ add r6, r1, r0
+ add r7, r4, #0
+_0222E8D4:
+ add r0, sp, #0x3c
+ strb r5, [r0]
+ ldrb r1, [r6]
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r1, sp, #0x3c
+ bl MOD11_0224CA64
+ add r1, r0, #0
+ add r0, r4, #0
+ str r1, [r7, #0x34]
+ bl MOD11_0225377C
+ add r5, r5, #1
+ add r6, r6, #1
+ add r7, r7, #4
+ cmp r5, #4
+ blt _0222E8D4
+ str r5, [r4, #0x44]
+ mov r6, #0
+ add r5, r4, #0
+_0222E8FE:
+ ldr r0, [sp, #4]
+ ldr r1, [r5, #0x68]
+ ldr r0, [r0, #4]
+ bl FUN_0206BAD0
+ ldr r0, [sp, #4]
+ add r6, r6, #1
+ add r0, r0, #4
+ add r5, r5, #4
+ str r0, [sp, #4]
+ cmp r6, #4
+ blt _0222E8FE
+ mov r0, #0
+ str r0, [sp, #0x14]
+ ldr r0, [r4, #0x44]
+ cmp r0, #0
+ ble _0222E9D2
+_0222E920:
+ ldr r0, [sp, #0x14]
+ mov r1, #1
+ and r0, r1
+ str r0, [sp, #0x2c]
+ lsl r0, r0, #2
+ add r7, r4, r0
+ ldr r0, [r7, #0x68]
+ mov r6, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0222E9B8
+_0222E938:
+ ldr r0, [r7, #0x68]
+ add r1, r6, #0
+ bl GetPartyMonByIndex
+ ldr r1, [sp, #0x14]
+ add r5, r0, #0
+ cmp r1, #1
+ ble _0222E984
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0x2c]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C474
+ cmp r6, r0
+ beq _0222E9AC
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222E9AC
+ add r0, r5, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222E9AC
+ add r0, r5, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222E9B8
+ b _0222E9AC
+_0222E984:
+ mov r1, #5
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222E9AC
+ add r0, r5, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222E9AC
+ add r0, r5, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222E9B8
+_0222E9AC:
+ ldr r0, [r7, #0x68]
+ add r6, r6, #1
+ bl GetPartyCount
+ cmp r6, r0
+ blt _0222E938
+_0222E9B8:
+ str r6, [sp]
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0x14]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C54C
+ ldr r0, [sp, #0x14]
+ ldr r1, [r4, #0x44]
+ add r0, r0, #1
+ str r0, [sp, #0x14]
+ cmp r0, r1
+ blt _0222E920
+_0222E9D2:
+ b _0222EA80
+_0222E9D4:
+ ldr r0, [sp, #0x34]
+ ldr r1, _0222EC6C ; =0x0225D99C
+ lsl r0, r0, #1
+ mov r5, #0
+ add r6, r1, r0
+ add r7, r4, #0
+_0222E9E0:
+ add r0, sp, #0x3c
+ strb r5, [r0]
+ ldrb r1, [r6]
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r1, sp, #0x3c
+ bl MOD11_0224CA64
+ add r1, r0, #0
+ add r0, r4, #0
+ str r1, [r7, #0x34]
+ bl MOD11_0225377C
+ add r5, r5, #1
+ add r6, r6, #1
+ add r7, r7, #4
+ cmp r5, #2
+ blt _0222E9E0
+ mov r0, #0
+ str r5, [r4, #0x44]
+ str r0, [sp, #0x18]
+ add r7, r4, #0
+_0222EA0C:
+ ldr r0, [sp, #4]
+ ldr r1, [r7, #0x68]
+ ldr r0, [r0, #4]
+ bl FUN_0206BAD0
+ ldr r0, [r7, #0x68]
+ mov r5, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0222EA60
+_0222EA22:
+ ldr r0, [r7, #0x68]
+ add r1, r5, #0
+ bl GetPartyMonByIndex
+ mov r1, #5
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222EA54
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222EA54
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222EA60
+_0222EA54:
+ ldr r0, [r7, #0x68]
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _0222EA22
+_0222EA60:
+ str r5, [sp]
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0x18]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C54C
+ ldr r0, [sp, #4]
+ add r7, r7, #4
+ add r0, r0, #4
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ add r0, r0, #1
+ str r0, [sp, #0x18]
+ cmp r0, #4
+ blt _0222EA0C
+_0222EA80:
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ bl MOD11_0224B240
+ b _0222EE3E
+_0222EA8A:
+ mov r1, #0x10
+ tst r1, r0
+ beq _0222EB90
+ ldr r6, _0222EC70 ; =0x0225DC18
+ mov r5, #0
+ add r7, r4, #0
+_0222EA96:
+ add r0, sp, #0x3c
+ strb r5, [r0]
+ ldrb r1, [r6]
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r1, sp, #0x3c
+ bl MOD11_0224CA64
+ add r1, r0, #0
+ add r0, r4, #0
+ str r1, [r7, #0x34]
+ bl MOD11_0225377C
+ add r5, r5, #1
+ add r6, r6, #1
+ add r7, r7, #4
+ cmp r5, #4
+ blt _0222EA96
+ str r5, [r4, #0x44]
+ mov r6, #0
+ add r5, r4, #0
+_0222EAC0:
+ ldr r0, [sp, #4]
+ ldr r1, [r5, #0x68]
+ ldr r0, [r0, #4]
+ bl FUN_0206BAD0
+ ldr r0, [sp, #4]
+ add r6, r6, #1
+ add r0, r0, #4
+ add r5, r5, #4
+ str r0, [sp, #4]
+ cmp r6, #4
+ blt _0222EAC0
+ ldr r0, [r4, #0x44]
+ mov r7, #0
+ cmp r0, #0
+ ble _0222EB80
+_0222EAE0:
+ add r0, r4, #0
+ add r1, r7, #0
+ mov r5, #0
+ bl MOD11_0222FFC8
+ cmp r0, #0
+ ble _0222EB64
+_0222EAEE:
+ add r0, r4, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ bl MOD11_02230014
+ add r6, r0, #0
+ cmp r7, #2
+ bne _0222EB2E
+ mov r1, #5
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222EB56
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222EB56
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222EB56
+ ldr r0, [sp, #0x38]
+ cmp r0, r5
+ bne _0222EB64
+ b _0222EB56
+_0222EB2E:
+ mov r1, #5
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222EB56
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222EB56
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222EB64
+_0222EB56:
+ add r0, r4, #0
+ add r1, r7, #0
+ add r5, r5, #1
+ bl MOD11_0222FFC8
+ cmp r5, r0
+ blt _0222EAEE
+_0222EB64:
+ str r5, [sp]
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ mov r2, #2
+ add r3, r7, #0
+ bl MOD11_0224C54C
+ cmp r7, #0
+ bne _0222EB78
+ str r5, [sp, #0x38]
+_0222EB78:
+ ldr r0, [r4, #0x44]
+ add r7, r7, #1
+ cmp r7, r0
+ blt _0222EAE0
+_0222EB80:
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ bl MOD11_0224B240
+ ldr r0, _0222EC74 ; =0x000023F8
+ mov r1, #1
+ strb r1, [r4, r0]
+ b _0222EE3E
+_0222EB90:
+ mov r1, #8
+ tst r1, r0
+ beq _0222EC60
+ ldr r6, _0222EC70 ; =0x0225DC18
+ mov r5, #0
+ add r7, r4, #0
+_0222EB9C:
+ add r0, sp, #0x3c
+ strb r5, [r0]
+ ldrb r1, [r6]
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r1, sp, #0x3c
+ bl MOD11_0224CA64
+ add r1, r0, #0
+ add r0, r4, #0
+ str r1, [r7, #0x34]
+ bl MOD11_0225377C
+ add r5, r5, #1
+ add r6, r6, #1
+ add r7, r7, #4
+ cmp r5, #4
+ blt _0222EB9C
+ str r5, [r4, #0x44]
+ mov r6, #0
+ add r5, r4, #0
+_0222EBC6:
+ ldr r0, [sp, #4]
+ ldr r1, [r5, #0x68]
+ ldr r0, [r0, #4]
+ bl FUN_0206BAD0
+ ldr r0, [sp, #4]
+ add r6, r6, #1
+ add r0, r0, #4
+ add r5, r5, #4
+ str r0, [sp, #4]
+ cmp r6, #4
+ blt _0222EBC6
+ mov r0, #0
+ str r0, [sp, #0x1c]
+ ldr r0, [r4, #0x44]
+ cmp r0, #0
+ ble _0222EC50
+ add r7, r4, #0
+_0222EBEA:
+ ldr r0, [r7, #0x68]
+ mov r5, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0222EC34
+_0222EBF6:
+ ldr r0, [r7, #0x68]
+ add r1, r5, #0
+ bl GetPartyMonByIndex
+ mov r1, #5
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222EC28
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222EC28
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222EC34
+_0222EC28:
+ ldr r0, [r7, #0x68]
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _0222EBF6
+_0222EC34:
+ str r5, [sp]
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0x1c]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C54C
+ ldr r0, [sp, #0x1c]
+ ldr r1, [r4, #0x44]
+ add r0, r0, #1
+ add r7, r7, #4
+ str r0, [sp, #0x1c]
+ cmp r0, r1
+ blt _0222EBEA
+_0222EC50:
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ bl MOD11_0224B240
+ ldr r0, _0222EC74 ; =0x000023F8
+ mov r1, #1
+ strb r1, [r4, r0]
+ b _0222EE3E
+_0222EC60:
+ mov r1, #2
+ tst r0, r1
+ bne _0222EC68
+ b _0222ED8A
+_0222EC68:
+ ldr r6, _0222EC70 ; =0x0225DC18
+ b _0222EC78
+ .align 2, 0
+_0222EC6C: .word 0x0225D99C
+_0222EC70: .word 0x0225DC18
+_0222EC74: .word 0x000023F8
+_0222EC78:
+ mov r5, #0
+ add r7, r4, #0
+_0222EC7C:
+ add r0, sp, #0x3c
+ strb r5, [r0]
+ ldrb r1, [r6]
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r1, sp, #0x3c
+ bl MOD11_0224CA64
+ add r1, r0, #0
+ add r0, r4, #0
+ str r1, [r7, #0x34]
+ bl MOD11_0225377C
+ add r5, r5, #1
+ add r6, r6, #1
+ add r7, r7, #4
+ cmp r5, #4
+ blt _0222EC7C
+ str r5, [r4, #0x44]
+ mov r6, #0
+ add r5, r4, #0
+_0222ECA6:
+ ldr r0, [sp, #4]
+ ldr r1, [r5, #0x68]
+ ldr r0, [r0, #4]
+ bl FUN_0206BAD0
+ ldr r0, [sp, #4]
+ add r6, r6, #1
+ add r0, r0, #4
+ add r5, r5, #4
+ str r0, [sp, #4]
+ cmp r6, #4
+ blt _0222ECA6
+ mov r0, #0
+ str r0, [sp, #0x20]
+ ldr r0, [r4, #0x44]
+ cmp r0, #0
+ ble _0222ED7A
+_0222ECC8:
+ ldr r0, [sp, #0x20]
+ mov r1, #1
+ and r0, r1
+ str r0, [sp, #0x28]
+ lsl r0, r0, #2
+ add r7, r4, r0
+ ldr r0, [r7, #0x68]
+ mov r6, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0222ED60
+_0222ECE0:
+ ldr r0, [r7, #0x68]
+ add r1, r6, #0
+ bl GetPartyMonByIndex
+ ldr r1, [sp, #0x20]
+ add r5, r0, #0
+ cmp r1, #1
+ ble _0222ED2C
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0x28]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C474
+ cmp r6, r0
+ beq _0222ED54
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222ED54
+ add r0, r5, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222ED54
+ add r0, r5, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222ED60
+ b _0222ED54
+_0222ED2C:
+ mov r1, #5
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222ED54
+ add r0, r5, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222ED54
+ add r0, r5, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222ED60
+_0222ED54:
+ ldr r0, [r7, #0x68]
+ add r6, r6, #1
+ bl GetPartyCount
+ cmp r6, r0
+ blt _0222ECE0
+_0222ED60:
+ str r6, [sp]
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0x20]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C54C
+ ldr r0, [sp, #0x20]
+ ldr r1, [r4, #0x44]
+ add r0, r0, #1
+ str r0, [sp, #0x20]
+ cmp r0, r1
+ blt _0222ECC8
+_0222ED7A:
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ bl MOD11_0224B240
+ ldr r0, _0222EEE0 ; =0x000023F8
+ mov r1, #1
+ strb r1, [r4, r0]
+ b _0222EE3E
+_0222ED8A:
+ ldr r6, _0222EEE4 ; =0x0225D998
+ mov r5, #0
+ add r7, r4, #0
+_0222ED90:
+ add r0, sp, #0x3c
+ strb r5, [r0]
+ ldrb r1, [r6]
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ add r1, sp, #0x3c
+ bl MOD11_0224CA64
+ add r1, r0, #0
+ add r0, r4, #0
+ str r1, [r7, #0x34]
+ bl MOD11_0225377C
+ add r5, r5, #1
+ add r6, r6, #1
+ add r7, r7, #4
+ cmp r5, #2
+ blt _0222ED90
+ mov r0, #0
+ str r5, [r4, #0x44]
+ str r0, [sp, #0x24]
+ add r7, r4, #0
+_0222EDBC:
+ ldr r0, [sp, #4]
+ ldr r1, [r7, #0x68]
+ ldr r0, [r0, #4]
+ bl FUN_0206BAD0
+ ldr r0, [r7, #0x68]
+ mov r5, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0222EE10
+_0222EDD2:
+ ldr r0, [r7, #0x68]
+ add r1, r5, #0
+ bl GetPartyMonByIndex
+ mov r1, #5
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0222EE04
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222EE04
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0222EE10
+_0222EE04:
+ ldr r0, [r7, #0x68]
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _0222EDD2
+_0222EE10:
+ str r5, [sp]
+ ldr r1, [r4, #0x30]
+ ldr r3, [sp, #0x24]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C54C
+ ldr r0, [sp, #4]
+ add r7, r7, #4
+ add r0, r0, #4
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x24]
+ add r0, r0, #1
+ str r0, [sp, #0x24]
+ cmp r0, #4
+ blt _0222EDBC
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ bl MOD11_0224B240
+ ldr r0, _0222EEE0 ; =0x000023F8
+ mov r1, #1
+ strb r1, [r4, r0]
+_0222EE3E:
+ mov r0, #2
+ ldr r1, [r4, #0x2c]
+ lsl r0, r0, #8
+ tst r0, r1
+ beq _0222EE5A
+ ldr r0, [r4, #0x6c]
+ mov r1, #0
+ bl GetPartyMonByIndex
+ add r2, r4, #0
+ mov r1, #0x8f
+ add r2, #0xf4
+ bl GetMonData
+_0222EE5A:
+ ldr r1, [r4, #0x2c]
+ mov r0, #1
+ tst r0, r1
+ beq _0222EEDC
+ add r0, r4, #0
+ add r0, #0xe1
+ ldrb r0, [r0]
+ bl MOD11_0222EEF0
+ cmp r0, #1
+ beq _0222EE7C
+ ldr r0, _0222EEE8 ; =0x00000149
+ ldrb r0, [r4, r0]
+ bl MOD11_0222EEF0
+ cmp r0, #1
+ bne _0222EEDC
+_0222EE7C:
+ ldr r0, [r4, #0x68]
+ mov r5, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0222EEAC
+ ldr r6, _0222EEEC ; =0x00002404
+ mov r7, #3
+_0222EE8C:
+ ldr r0, [r4, #0x68]
+ add r1, r5, #0
+ bl GetPartyMonByIndex
+ ldr r2, [r4, r6]
+ add r1, r7, #0
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ bl MonApplyFriendshipMod
+ ldr r0, [r4, #0x68]
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _0222EE8C
+_0222EEAC:
+ ldr r0, [r4, #0x70]
+ mov r5, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0222EEDC
+ ldr r6, _0222EEEC ; =0x00002404
+ mov r7, #3
+_0222EEBC:
+ ldr r0, [r4, #0x70]
+ add r1, r5, #0
+ bl GetPartyMonByIndex
+ ldr r2, [r4, r6]
+ add r1, r7, #0
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ bl MonApplyFriendshipMod
+ ldr r0, [r4, #0x70]
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _0222EEBC
+_0222EEDC:
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222EEE0: .word 0x000023F8
+_0222EEE4: .word 0x0225D998
+_0222EEE8: .word 0x00000149
+_0222EEEC: .word 0x00002404
+
+ thumb_func_start MOD11_0222EEF0
+MOD11_0222EEF0: ; 0x0222EEF0
+ sub r0, #0x3e
+ cmp r0, #0x11
+ bhi _0222EF2A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222EF02: ; jump table
+ .short _0222EF26 - _0222EF02 - 2 ; case 0
+ .short _0222EF2A - _0222EF02 - 2 ; case 1
+ .short _0222EF26 - _0222EF02 - 2 ; case 2
+ .short _0222EF26 - _0222EF02 - 2 ; case 3
+ .short _0222EF26 - _0222EF02 - 2 ; case 4
+ .short _0222EF26 - _0222EF02 - 2 ; case 5
+ .short _0222EF26 - _0222EF02 - 2 ; case 6
+ .short _0222EF26 - _0222EF02 - 2 ; case 7
+ .short _0222EF2A - _0222EF02 - 2 ; case 8
+ .short _0222EF2A - _0222EF02 - 2 ; case 9
+ .short _0222EF2A - _0222EF02 - 2 ; case 10
+ .short _0222EF2A - _0222EF02 - 2 ; case 11
+ .short _0222EF26 - _0222EF02 - 2 ; case 12
+ .short _0222EF26 - _0222EF02 - 2 ; case 13
+ .short _0222EF26 - _0222EF02 - 2 ; case 14
+ .short _0222EF26 - _0222EF02 - 2 ; case 15
+ .short _0222EF26 - _0222EF02 - 2 ; case 16
+ .short _0222EF26 - _0222EF02 - 2 ; case 17
+_0222EF26:
+ mov r0, #1
+ bx lr
+_0222EF2A:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0222EF30
+MOD11_0222EF30: ; 0x0222EF30
+ push {r3, lr}
+ sub sp, #8
+ mov r2, #2
+ mov r1, #0
+ ldr r0, _0222EF4C ; =MOD11_0222EF50
+ str r2, [sp]
+ str r0, [sp, #4]
+ mov r0, #5
+ add r3, r1, #0
+ bl FUN_02022318
+ add sp, #8
+ pop {r3, pc}
+ nop
+_0222EF4C: .word MOD11_0222EF50
+
+ thumb_func_start MOD11_0222EF50
+MOD11_0222EF50: ; 0x0222EF50
+ push {r3, lr}
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ ldr r0, _0222EFBC ; =0x04000008
+ mov r1, #3
+ ldrh r2, [r0]
+ bic r2, r1
+ mov r1, #1
+ orr r1, r2
+ strh r1, [r0]
+ add r0, #0x58
+ ldrh r2, [r0]
+ ldr r1, _0222EFC0 ; =0xFFFFCFFD
+ and r2, r1
+ strh r2, [r0]
+ add r2, r1, #2
+ ldrh r3, [r0]
+ add r1, r1, #2
+ and r3, r2
+ mov r2, #0x10
+ orr r2, r3
+ strh r2, [r0]
+ ldrh r3, [r0]
+ ldr r2, _0222EFC4 ; =0x0000CFFB
+ and r3, r2
+ strh r3, [r0]
+ ldrh r3, [r0]
+ sub r2, #0x1c
+ and r3, r1
+ mov r1, #8
+ orr r1, r3
+ strh r1, [r0]
+ ldrh r1, [r0]
+ and r1, r2
+ strh r1, [r0]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl G3X_SetFog
+ mov r0, #0
+ ldr r2, _0222EFC8 ; =0x00007FFF
+ add r1, r0, #0
+ mov r3, #0x3f
+ str r0, [sp]
+ bl G3X_SetClearColor
+ ldr r1, _0222EFCC ; =0xBFFF0000
+ ldr r0, _0222EFD0 ; =0x04000580
+ str r1, [r0]
+ pop {r3, pc}
+ .align 2, 0
+_0222EFBC: .word 0x04000008
+_0222EFC0: .word 0xFFFFCFFD
+_0222EFC4: .word 0x0000CFFB
+_0222EFC8: .word 0x00007FFF
+_0222EFCC: .word 0xBFFF0000
+_0222EFD0: .word 0x04000580
+
+ thumb_func_start MOD11_0222EFD4
+MOD11_0222EFD4: ; 0x0222EFD4
+ ldr r3, _0222EFD8 ; =FUN_020223BC
+ bx r3
+ .align 2, 0
+_0222EFD8: .word FUN_020223BC
+
+ thumb_func_start MOD11_0222EFDC
+MOD11_0222EFDC: ; 0x0222EFDC
+ push {r3, r4, r5, lr}
+ ldr r3, _0222F014 ; =0x021064B8
+ mov r0, #2
+ mov r1, #0
+ ldr r3, [r3]
+ lsl r0, r0, #0xe
+ add r2, r1, #0
+ blx r3
+ ldr r3, _0222F018 ; =0x021064C0
+ mov r1, #0
+ add r4, r0, #0
+ ldr r3, [r3]
+ mov r0, #0xc0
+ add r2, r1, #0
+ blx r3
+ add r5, r0, #0
+ cmp r4, #0
+ bne _0222F004
+ bl ErrorHandling
+_0222F004:
+ cmp r5, #0
+ bne _0222F00C
+ bl ErrorHandling
+_0222F00C:
+ bl FUN_02012CC8
+ pop {r3, r4, r5, pc}
+ nop
+_0222F014: .word 0x021064B8
+_0222F018: .word 0x021064C0
+
+ thumb_func_start MOD11_0222F01C
+MOD11_0222F01C: ; 0x0222F01C
+ push {r3, r4, r5, lr}
+ sub sp, #0x50
+ add r4, r0, #0
+ bl LCRandom
+ ldr r1, _0222F0B8 ; =0x000023FB
+ ldrb r2, [r4, r1]
+ lsl r0, r2, #0x1f
+ lsr r0, r0, #0x1f
+ beq _0222F040
+ mov r0, #1
+ bic r2, r0
+ strb r2, [r4, r1]
+ ldr r0, _0222F0BC ; =0x04000050
+ mov r1, #0
+ strh r1, [r0]
+ ldr r0, _0222F0C0 ; =0x04001050
+ strh r1, [r0]
+_0222F040:
+ ldr r1, _0222F0B8 ; =0x000023FB
+ ldrb r2, [r4, r1]
+ lsl r0, r2, #0x1e
+ lsr r0, r0, #0x1f
+ beq _0222F064
+ mov r0, #2
+ bic r2, r0
+ strb r2, [r4, r1]
+ ldr r5, _0222F0C4 ; =0x0225DA90
+ add r3, sp, #0x28
+ mov r2, #5
+_0222F056:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222F056
+ add r0, sp, #0x28
+ bl FUN_0201E66C
+_0222F064:
+ ldr r1, _0222F0B8 ; =0x000023FB
+ ldrb r2, [r4, r1]
+ lsl r0, r2, #0x1d
+ lsr r0, r0, #0x1f
+ beq _0222F088
+ mov r0, #4
+ bic r2, r0
+ strb r2, [r4, r1]
+ ldr r5, _0222F0C8 ; =0x0225DAB8
+ add r3, sp, #0
+ mov r2, #5
+_0222F07A:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222F07A
+ add r0, sp, #0
+ bl FUN_0201E66C
+_0222F088:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ bl FUN_020081C4
+ bl FUN_0201C30C
+ bl FUN_0200BC30
+ ldr r0, [r4, #0x28]
+ bl FUN_0200372C
+ ldr r0, [r4, #4]
+ bl FUN_0201AB60
+ ldr r3, _0222F0CC ; =0x027E0000
+ ldr r1, _0222F0D0 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ add sp, #0x50
+ pop {r3, r4, r5, pc}
+ nop
+_0222F0B8: .word 0x000023FB
+_0222F0BC: .word 0x04000050
+_0222F0C0: .word 0x04001050
+_0222F0C4: .word 0x0225DA90
+_0222F0C8: .word 0x0225DAB8
+_0222F0CC: .word 0x027E0000
+_0222F0D0: .word 0x00003FF8
+
+ thumb_func_start MOD11_0222F0D4
+MOD11_0222F0D4: ; 0x0222F0D4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ bl FUN_0200372C
+ bl FUN_0201C30C
+ ldr r0, [r4, #4]
+ bl FUN_0201AB60
+ ldr r3, _0222F0F8 ; =0x027E0000
+ ldr r1, _0222F0FC ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r4, pc}
+ nop
+_0222F0F8: .word 0x027E0000
+_0222F0FC: .word 0x00003FF8
+
+ thumb_func_start MOD11_0222F100
+MOD11_0222F100: ; 0x0222F100
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #4]
+ mov r0, #5
+ bl FUN_020335F0
+ ldr r0, _0222F140 ; =0x000023F9
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ beq _0222F118
+ cmp r0, #3
+ bne _0222F13E
+_0222F118:
+ cmp r0, #0
+ bne _0222F120
+ bl MOD08_02215A44
+_0222F120:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ bl FUN_02006ED4
+ add r4, #0x94
+ ldr r0, [r4]
+ bl FUN_0200BC1C
+ bl FUN_0200BC38
+ mov r0, #1
+ mov r1, #0
+ bl FUN_020222B4
+_0222F13E:
+ pop {r4, pc}
+ .align 2, 0
+_0222F140: .word 0x000023F9
+
+ thumb_func_start MOD11_0222F144
+MOD11_0222F144: ; 0x0222F144
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r0, r6, #0
+ bl MOD11_0222FF84
+ str r0, [sp]
+ add r0, r6, #0
+ mov r5, #0
+ bl MOD11_02231474
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ mov r1, #0x22
+ lsl r1, r1, #4
+ tst r0, r1
+ bne _0222F24E
+ mov r0, #2
+ tst r0, r4
+ beq _0222F186
+ mov r0, #1
+ tst r0, r4
+ beq _0222F24E
+ ldr r0, _0222F250 ; =0x00000704
+ add r1, r5, #0
+ bl FUN_020054F0
+ add r0, r6, #0
+ mov r1, #2
+ bl MOD11_02231484
+ pop {r3, r4, r5, r6, r7, pc}
+_0222F186:
+ ldr r0, [sp]
+ add r4, r5, #0
+ cmp r0, #0
+ ble _0222F1D0
+_0222F18E:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0222FF7C
+ add r7, r0, #0
+ bl MOD11_02253A58
+ cmp r0, #0
+ bne _0222F1C8
+ add r0, r7, #0
+ bl MOD11_02253A70
+ add r1, r0, #0
+ beq _0222F1C8
+ ldr r0, [r1, #0x28]
+ ldr r1, [r1, #0x2c]
+ lsl r0, r0, #0x10
+ lsl r1, r1, #0x10
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x10
+ mov r2, #0x30
+ bl FUN_02079A54
+ cmp r0, #1
+ bne _0222F1C8
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ orr r5, r0
+_0222F1C8:
+ ldr r0, [sp]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _0222F18E
+_0222F1D0:
+ cmp r5, #0
+ beq _0222F1F6
+ add r0, r6, #0
+ bl MOD11_02231474
+ cmp r0, #0
+ bne _0222F1F6
+ ldr r0, _0222F250 ; =0x00000704
+ bl FUN_020054C8
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_02231484
+ add r0, r6, #0
+ mov r1, #4
+ bl MOD11_022314B0
+ b _0222F214
+_0222F1F6:
+ cmp r5, #0
+ bne _0222F214
+ add r0, r6, #0
+ bl MOD11_02231474
+ cmp r0, #0
+ beq _0222F214
+ ldr r0, _0222F250 ; =0x00000704
+ mov r1, #0
+ bl FUN_020054F0
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD11_02231484
+_0222F214:
+ add r0, r6, #0
+ bl MOD11_02231474
+ cmp r0, #0
+ beq _0222F24E
+ add r0, r6, #0
+ bl MOD11_022314A0
+ add r4, r0, #0
+ ldr r0, _0222F250 ; =0x00000704
+ bl FUN_02005508
+ cmp r0, #0
+ bne _0222F24E
+ sub r1, r4, #1
+ bne _0222F244
+ ldr r0, _0222F250 ; =0x00000704
+ bl FUN_020054C8
+ add r0, r6, #0
+ mov r1, #4
+ bl MOD11_022314B0
+ pop {r3, r4, r5, r6, r7, pc}
+_0222F244:
+ lsl r1, r1, #0x18
+ add r0, r6, #0
+ lsr r1, r1, #0x18
+ bl MOD11_022314B0
+_0222F24E:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222F250: .word 0x00000704
+
+ thumb_func_start MOD11_0222F254
+MOD11_0222F254: ; 0x0222F254
+ push {r3, r4, r5, lr}
+ ldr r3, _0222F280 ; =0x00002434
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, r3]
+ mov r1, #1
+ add r0, r0, #3
+ str r0, [r4, r3]
+ ldr r0, [r4, #4]
+ ldr r3, [r4, r3]
+ mov r2, #3
+ bl FUN_020179E0
+ ldr r0, _0222F280 ; =0x00002434
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0222F27C
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0222F27C:
+ pop {r3, r4, r5, pc}
+ nop
+_0222F280: .word 0x00002434
+
+ thumb_func_start MOD11_0222F284
+MOD11_0222F284: ; 0x0222F284 __sinit
+ push {r3, lr}
+ bl FUN_02033590
+ cmp r0, #0
+ bne _0222F296
+ ldr r0, _0222F298 ; =SDK_OVERLAY_MODULE_16_ID
+ mov r1, #2
+ bl HandleLoadOverlay
+_0222F296:
+ pop {r3, pc}
+ .align 2, 0
+_0222F298: .word SDK_OVERLAY_MODULE_16_ID
+
+ thumb_func_start MOD11_0222F29C
+MOD11_0222F29C: ; 0x0222F29C
+ push {r4, r5, r6, lr}
+ sub sp, #0x68
+ add r4, r1, #0
+ ldr r1, _0222F4C0 ; =0x00001028
+ mov r2, #5
+ bl FUN_02006268
+ add r5, r0, #0
+ ldr r0, _0222F4C4 ; =0x00001020
+ str r4, [r5]
+ mov r2, #0
+ strb r2, [r5, r0]
+ add r1, r0, #1
+ strb r2, [r5, r1]
+ add r0, r0, #2
+ strh r2, [r5, r0]
+ mov r0, #5
+ bl FUN_02002FD0
+ str r0, [r5, #0xc]
+ mov r1, #1
+ bl FUN_020038F0
+ mov r2, #2
+ ldr r0, [r5, #0xc]
+ mov r1, #0
+ lsl r2, r2, #8
+ mov r3, #5
+ bl FUN_02003008
+ mov r1, #0
+ mov r0, #1
+ str r1, [sp]
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ ldr r0, [r5, #0xc]
+ mov r2, #2
+ add r3, r1, #0
+ bl FUN_02003914
+ mov r0, #5
+ bl FUN_02016B94
+ str r0, [r5, #4]
+ mov r0, #5
+ mov r1, #1
+ bl FUN_02018FF4
+ str r0, [r5, #8]
+ add r0, r5, #0
+ bl FUN_0206BFF0
+ bl FUN_0201E6D8
+ ldr r6, _0222F4C8 ; =0x0225DA40
+ add r3, sp, #0x40
+ mov r2, #5
+_0222F30E:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222F30E
+ add r0, sp, #0x40
+ bl FUN_0201E66C
+ mov r1, #6
+ mov r2, #2
+ mov r0, #0
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0x12
+ bl MIi_CpuClear32
+ mov r1, #0x62
+ mov r2, #2
+ mov r0, #0
+ lsl r1, r1, #0x14
+ lsl r2, r2, #0x10
+ bl MIi_CpuClear32
+ mov r1, #0x19
+ mov r2, #1
+ mov r0, #0
+ lsl r1, r1, #0x16
+ lsl r2, r2, #0x12
+ bl MIi_CpuClear32
+ mov r1, #0x66
+ mov r2, #2
+ mov r0, #0
+ lsl r1, r1, #0x14
+ lsl r2, r2, #0x10
+ bl MIi_CpuClear32
+ mov r1, #5
+ mov r2, #2
+ mov r0, #0
+ lsl r1, r1, #0x18
+ lsl r2, r2, #8
+ bl MIi_CpuClear16
+ ldr r6, _0222F4CC ; =0x0225D9B8
+ add r3, sp, #0x30
+ add r2, r3, #0
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ ldr r6, _0222F4D0 ; =0x0225DA04
+ add r3, sp, #0x14
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ mov r1, #1
+ str r0, [r3]
+ ldr r0, [r5, #4]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r5, #4]
+ mov r1, #1
+ bl FUN_02018744
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02025084
+ add r4, r0, #0
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ mov r1, #1
+ ldr r0, [r5, #4]
+ add r2, r1, #0
+ mov r3, #0xa
+ bl FUN_0200D274
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xb0
+ str r0, [sp, #8]
+ ldr r0, [r5, #0xc]
+ mov r1, #0xe
+ mov r2, #7
+ mov r3, #5
+ bl FUN_020030E8
+ add r0, r4, #0
+ bl FUN_0200CD64
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xa0
+ str r0, [sp, #8]
+ ldr r0, [r5, #0xc]
+ mov r1, #0x26
+ mov r3, #5
+ bl FUN_020030E8
+ mov r1, #0
+ mov r0, #1
+ str r1, [sp]
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ ldr r0, [r5, #0xc]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02003914
+ bl FUN_0201E788
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xb
+ str r0, [sp, #0xc]
+ mov r0, #0x1f
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #4]
+ ldr r1, [r5, #8]
+ mov r2, #1
+ mov r3, #2
+ bl FUN_02019064
+ ldr r0, [r5, #8]
+ mov r1, #0xff
+ bl FUN_02019620
+ ldr r0, [r5, #8]
+ mov r1, #0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ mov r2, #0x51
+ mov r0, #1
+ mov r1, #0x1a
+ lsl r2, r2, #2
+ mov r3, #5
+ bl NewMsgDataFromNarc
+ add r4, r0, #0
+ mov r0, #1
+ lsl r0, r0, #8
+ mov r1, #5
+ bl FUN_020219F4
+ add r6, r0, #0
+ ldr r1, _0222F4D4 ; =0x0000039B
+ add r0, r4, #0
+ add r2, r6, #0
+ bl FUN_0200A8E0
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ ldr r0, [r5, #8]
+ mov r1, #1
+ add r2, r6, #0
+ bl FUN_0201BD84
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl DestroyMsgData
+ ldr r0, _0222F4D8 ; =MOD11_0222F0D4
+ add r1, r5, #0
+ bl FUN_02015F10
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ ldr r0, [r5, #0xc]
+ ldr r2, _0222F4DC ; =0x0000FFFF
+ mov r1, #5
+ bl FUN_02003210
+ ldr r0, [r5, #8]
+ mov r1, #1
+ bl FUN_0200D858
+ ldr r1, _0222F4E0 ; =0x00001024
+ str r0, [r5, r1]
+ bl FUN_02033E74
+ add sp, #0x68
+ pop {r4, r5, r6, pc}
+ nop
+_0222F4C0: .word 0x00001028
+_0222F4C4: .word 0x00001020
+_0222F4C8: .word 0x0225DA40
+_0222F4CC: .word 0x0225D9B8
+_0222F4D0: .word 0x0225DA04
+_0222F4D4: .word 0x0000039B
+_0222F4D8: .word MOD11_0222F0D4
+_0222F4DC: .word 0x0000FFFF
+_0222F4E0: .word 0x00001024
+
+ thumb_func_start MOD11_0222F4E4
+MOD11_0222F4E4: ; 0x0222F4E4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ mov r0, #5
+ bl FUN_020335F0
+ ldr r0, _0222F804 ; =0x00001021
+ mov r7, #0
+ ldrb r1, [r4, r0]
+ cmp r1, #0x21
+ bls _0222F502
+ b _0222F922
+_0222F502:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0222F50E: ; jump table
+ .short _0222F552 - _0222F50E - 2 ; case 0
+ .short _0222F562 - _0222F50E - 2 ; case 1
+ .short _0222F576 - _0222F50E - 2 ; case 2
+ .short _0222F586 - _0222F50E - 2 ; case 3
+ .short _0222F5C0 - _0222F50E - 2 ; case 4
+ .short _0222F898 - _0222F50E - 2 ; case 5
+ .short _0222F5D8 - _0222F50E - 2 ; case 6
+ .short _0222F5F2 - _0222F50E - 2 ; case 7
+ .short _0222F898 - _0222F50E - 2 ; case 8
+ .short _0222F606 - _0222F50E - 2 ; case 9
+ .short _0222F622 - _0222F50E - 2 ; case 10
+ .short _0222F898 - _0222F50E - 2 ; case 11
+ .short _0222F636 - _0222F50E - 2 ; case 12
+ .short _0222F650 - _0222F50E - 2 ; case 13
+ .short _0222F898 - _0222F50E - 2 ; case 14
+ .short _0222F664 - _0222F50E - 2 ; case 15
+ .short _0222F67E - _0222F50E - 2 ; case 16
+ .short _0222F898 - _0222F50E - 2 ; case 17
+ .short _0222F692 - _0222F50E - 2 ; case 18
+ .short _0222F6AC - _0222F50E - 2 ; case 19
+ .short _0222F898 - _0222F50E - 2 ; case 20
+ .short _0222F6C0 - _0222F50E - 2 ; case 21
+ .short _0222F704 - _0222F50E - 2 ; case 22
+ .short _0222F898 - _0222F50E - 2 ; case 23
+ .short _0222F740 - _0222F50E - 2 ; case 24
+ .short _0222F774 - _0222F50E - 2 ; case 25
+ .short _0222F898 - _0222F50E - 2 ; case 26
+ .short _0222F7AE - _0222F50E - 2 ; case 27
+ .short _0222F7E2 - _0222F50E - 2 ; case 28
+ .short _0222F898 - _0222F50E - 2 ; case 29
+ .short _0222F82A - _0222F50E - 2 ; case 30
+ .short _0222F85E - _0222F50E - 2 ; case 31
+ .short _0222F898 - _0222F50E - 2 ; case 32
+ .short _0222F908 - _0222F50E - 2 ; case 33
+_0222F552:
+ add r0, r7, #0
+ bl FUN_0200E394
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F562:
+ ldr r0, [r4, #0xc]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0222F610
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F576:
+ mov r0, #0x32
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F586:
+ mov r0, #0x32
+ bl FUN_020315D8
+ cmp r0, #0
+ beq _0222F5A8
+ mov r0, #0x33
+ bl FUN_02031588
+ ldr r0, _0222F808 ; =0x00001022
+ add r1, r7, #0
+ strh r1, [r4, r0]
+ sub r1, r0, #1
+ ldrb r1, [r4, r1]
+ sub r0, r0, #1
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F5A8:
+ ldr r0, _0222F808 ; =0x00001022
+ ldrh r1, [r4, r0]
+ add r1, r1, #1
+ strh r1, [r4, r0]
+ ldrh r1, [r4, r0]
+ ldr r0, _0222F80C ; =0x00000708
+ cmp r1, r0
+ bls _0222F610
+ mov r0, #1
+ bl FUN_020336A0
+ b _0222F922
+_0222F5C0:
+ mov r1, #0x11
+ add r0, r4, #0
+ lsl r1, r1, #4
+ bl FUN_0206C1A0
+ cmp r0, #1
+ bne _0222F610
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F5D8:
+ add r0, r4, #0
+ bl FUN_0206C1FC
+ cmp r0, #1
+ bne _0222F610
+ mov r0, #0x34
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F5F2:
+ add r0, r4, #0
+ bl FUN_0206C224
+ cmp r0, #1
+ bne _0222F610
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F606:
+ add r0, r4, #0
+ bl FUN_0206C268
+ cmp r0, #1
+ beq _0222F612
+_0222F610:
+ b _0222F922
+_0222F612:
+ mov r0, #0x35
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F622:
+ add r0, r4, #0
+ bl FUN_0206C294
+ cmp r0, #1
+ bne _0222F71C
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F636:
+ add r0, r4, #0
+ bl FUN_0206C2D4
+ cmp r0, #1
+ bne _0222F71C
+ mov r0, #0x36
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F650:
+ add r0, r4, #0
+ bl FUN_0206C2F8
+ cmp r0, #1
+ bne _0222F71C
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F664:
+ add r0, r4, #0
+ bl FUN_0206C33C
+ cmp r0, #1
+ bne _0222F71C
+ mov r0, #0x37
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F67E:
+ add r0, r4, #0
+ bl FUN_0206C364
+ cmp r0, #1
+ bne _0222F71C
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F692:
+ add r0, r4, #0
+ bl FUN_0206C398
+ cmp r0, #1
+ bne _0222F71C
+ mov r0, #0x38
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F6AC:
+ add r0, r4, #0
+ bl FUN_0206C3F4
+ cmp r0, #1
+ bne _0222F71C
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F6C0:
+ ldr r1, [r4]
+ ldr r2, [r1]
+ mov r1, #0x80
+ tst r1, r2
+ bne _0222F6D0
+ mov r1, #0x21
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F6D0:
+ bl FUN_02031190
+ cmp r0, #0
+ beq _0222F6E8
+ mov r0, #0x39
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F6E8:
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_0206C438
+ cmp r0, #1
+ bne _0222F71C
+ mov r0, #0x39
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F704:
+ mov r1, #1
+ sub r0, r0, #1
+ strb r1, [r4, r0]
+ bl FUN_02031190
+ cmp r0, #0
+ beq _0222F728
+ mov r0, #0x39
+ bl FUN_020315D8
+ cmp r0, #1
+ beq _0222F71E
+_0222F71C:
+ b _0222F922
+_0222F71E:
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F728:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x39
+ bl FUN_0206C46C
+ cmp r0, #1
+ bne _0222F81E
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F740:
+ bl FUN_02031190
+ cmp r0, #0
+ beq _0222F758
+ mov r0, #0x3a
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F758:
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_0206C438
+ cmp r0, #1
+ bne _0222F81E
+ mov r0, #0x3a
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F774:
+ mov r1, #1
+ sub r0, r0, #1
+ strb r1, [r4, r0]
+ bl FUN_02031190
+ cmp r0, #0
+ beq _0222F796
+ mov r0, #0x3a
+ bl FUN_020315D8
+ cmp r0, #1
+ bne _0222F81E
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F796:
+ add r0, r4, #0
+ mov r1, #3
+ mov r2, #0x3a
+ bl FUN_0206C46C
+ cmp r0, #1
+ bne _0222F81E
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F7AE:
+ bl FUN_02031190
+ cmp r0, #0
+ beq _0222F7C6
+ mov r0, #0x3b
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F7C6:
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_0206C4C4
+ cmp r0, #1
+ bne _0222F81E
+ mov r0, #0x3b
+ bl FUN_02031588
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F7E2:
+ mov r1, #1
+ sub r0, r0, #1
+ strb r1, [r4, r0]
+ bl FUN_02031190
+ cmp r0, #0
+ beq _0222F810
+ mov r0, #0x3b
+ bl FUN_020315D8
+ cmp r0, #1
+ bne _0222F81E
+ ldr r0, _0222F804 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+ .align 2, 0
+_0222F804: .word 0x00001021
+_0222F808: .word 0x00001022
+_0222F80C: .word 0x00000708
+_0222F810:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x3b
+ bl FUN_0206C4F0
+ cmp r0, #1
+ beq _0222F820
+_0222F81E:
+ b _0222F922
+_0222F820:
+ ldr r0, _0222F928 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F82A:
+ bl FUN_02031190
+ cmp r0, #0
+ beq _0222F842
+ mov r0, #0x3c
+ bl FUN_02031588
+ ldr r0, _0222F928 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F842:
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_0206C4C4
+ cmp r0, #1
+ bne _0222F922
+ mov r0, #0x3c
+ bl FUN_02031588
+ ldr r0, _0222F928 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F85E:
+ mov r1, #1
+ sub r0, r0, #1
+ strb r1, [r4, r0]
+ bl FUN_02031190
+ cmp r0, #0
+ beq _0222F880
+ mov r0, #0x3c
+ bl FUN_020315D8
+ cmp r0, #1
+ bne _0222F922
+ ldr r0, _0222F928 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F880:
+ add r0, r4, #0
+ mov r1, #3
+ mov r2, #0x3c
+ bl FUN_0206C4F0
+ cmp r0, #1
+ bne _0222F922
+ ldr r0, _0222F928 ; =0x00001021
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0222F922
+_0222F898:
+ bl FUN_02030F20
+ ldr r1, _0222F92C ; =0x00001020
+ ldrb r2, [r4, r1]
+ cmp r2, r0
+ bne _0222F8EE
+ add r0, r1, #1
+ ldrb r0, [r4, r0]
+ cmp r0, #0x14
+ bne _0222F8BE
+ add r6, r7, #0
+ add r5, r4, #0
+_0222F8B0:
+ ldr r0, [r5, #0x10]
+ bl FreeToHeap
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #4
+ blt _0222F8B0
+_0222F8BE:
+ ldr r0, _0222F92C ; =0x00001020
+ mov r3, #0
+ strb r3, [r4, r0]
+ add r1, r0, #2
+ strh r3, [r4, r1]
+ add r1, r0, #1
+ ldrb r1, [r4, r1]
+ add r2, r1, #1
+ add r1, r0, #1
+ strb r2, [r4, r1]
+ add r0, r0, #1
+ ldrb r0, [r4, r0]
+ cmp r0, #0x21
+ bne _0222F922
+ str r3, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ ldr r0, [r4, #0xc]
+ ldr r2, _0222F930 ; =0x0000FFFF
+ mov r1, #5
+ bl FUN_02003210
+ b _0222F922
+_0222F8EE:
+ add r0, r1, #2
+ ldrh r0, [r4, r0]
+ add r2, r0, #1
+ add r0, r1, #2
+ strh r2, [r4, r0]
+ ldrh r1, [r4, r0]
+ ldr r0, _0222F934 ; =0x00000708
+ cmp r1, r0
+ bls _0222F922
+ mov r0, #1
+ bl FUN_020336A0
+ b _0222F922
+_0222F908:
+ ldr r0, [r4, #0xc]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0222F922
+ ldr r0, _0222F938 ; =0x00001024
+ mov r7, #1
+ ldr r0, [r4, r0]
+ bl FUN_0200DBFC
+ mov r0, #0
+ bl FUN_02031400
+_0222F922:
+ add r0, r7, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222F928: .word 0x00001021
+_0222F92C: .word 0x00001020
+_0222F930: .word 0x0000FFFF
+_0222F934: .word 0x00000708
+_0222F938: .word 0x00001024
+
+ thumb_func_start MOD11_0222F93C
+MOD11_0222F93C: ; 0x0222F93C
+ push {r4, lr}
+ bl FUN_02006278
+ add r4, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_02003038
+ ldr r0, [r4, #0xc]
+ bl FUN_02002FEC
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_020191A4
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ bl FreeToHeap
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0222F988
+MOD11_0222F988: ; 0x0222F988
+ push {r4, r5, r6, lr}
+ ldr r1, _0222FAB4 ; =0x00002444
+ add r5, r0, #0
+ mov r2, #5
+ bl FUN_02006268
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_0200628C
+ add r6, r0, #0
+ bl FUN_02031190
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ ldr r2, _0222FAB4 ; =0x00002444
+ mov r0, #0
+ add r1, r4, #0
+ bl MIi_CpuClearFast
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222E520
+ ldr r1, [r4, #0x2c]
+ mov r0, #4
+ tst r0, r1
+ beq _0222F9C6
+ mov r0, #0x80
+ tst r0, r1
+ beq _0222F9CA
+_0222F9C6:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_0222F9CA:
+ ldr r0, _0222FAB8 ; =SDK_OVERLAY_MODULE_07_ID
+ mov r1, #2
+ bl HandleLoadOverlay
+ ldr r1, [r4, #0x2c]
+ mov r0, #8
+ tst r0, r1
+ bne _0222F9DE
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_0222F9DE:
+ mov r0, #5
+ mov r1, #0x2c
+ bl AllocFromHeap
+ mov r1, #7
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ ldr r1, [r4, r1]
+ mov r0, #0
+ mov r2, #0x2c
+ bl MIi_CpuClearFast
+ add r0, r5, #0
+ bl FUN_020313CC
+ cmp r0, #3
+ bhi _0222FA5A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222FA0C: ; jump table
+ .short _0222FA14 - _0222FA0C - 2 ; case 0
+ .short _0222FA3A - _0222FA0C - 2 ; case 1
+ .short _0222FA3A - _0222FA0C - 2 ; case 2
+ .short _0222FA14 - _0222FA0C - 2 ; case 3
+_0222FA14:
+ lsl r0, r5, #2
+ add r0, r4, r0
+ ldr r1, [r0, #0x68]
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ str r1, [r0, #4]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022302BC
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r1, [r0, #0x68]
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ str r1, [r0, #0xc]
+ b _0222FA5A
+_0222FA3A:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022302BC
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r2, [r0, #0x68]
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ str r2, [r1, #4]
+ lsl r1, r5, #2
+ add r1, r4, r1
+ ldr r1, [r1, #0x68]
+ ldr r0, [r4, r0]
+ str r1, [r0, #0xc]
+_0222FA5A:
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r2, #5
+ str r2, [r1, #0x24]
+ ldr r0, [r4, r0]
+ mov r1, #0
+ add r0, #0x28
+ strb r1, [r0]
+ add r0, r5, #0
+ bl FUN_020313CC
+ cmp r0, #3
+ bhi _0222FAA4
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222FA82: ; jump table
+ .short _0222FA8A - _0222FA82 - 2 ; case 0
+ .short _0222FA98 - _0222FA82 - 2 ; case 1
+ .short _0222FA98 - _0222FA82 - 2 ; case 2
+ .short _0222FA8A - _0222FA82 - 2 ; case 3
+_0222FA8A:
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ mov r1, #0
+ add r0, #0x29
+ strb r1, [r0]
+ b _0222FAA4
+_0222FA98:
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ mov r1, #1
+ add r0, #0x29
+ strb r1, [r0]
+_0222FAA4:
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ bl MOD07_02211E60
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+ nop
+_0222FAB4: .word 0x00002444
+_0222FAB8: .word SDK_OVERLAY_MODULE_07_ID
+
+ thumb_func_start MOD11_0222FABC
+MOD11_0222FABC: ; 0x0222FABC
+ push {r3, r4, r5, r6, r7, lr}
+ bl FUN_02006278
+ add r6, r0, #0
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r6, r0]
+ add r0, #0x2b
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0222FAFE
+ mov r4, #0
+ mov r7, #7
+ add r5, r4, #0
+ lsl r7, r7, #6
+_0222FADA:
+ ldr r0, [r6, r7]
+ add r0, r0, r5
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ beq _0222FAE8
+ bl FreeToHeap
+_0222FAE8:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0222FADA
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r6, r0]
+ bl FreeToHeap
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0222FAFE:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0222FB04
+MOD11_0222FB04: ; 0x0222FB04
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_0200628C
+ bl FUN_02031190
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ ldr r1, [r4, #0x2c]
+ mov r0, #4
+ tst r0, r1
+ beq _0222FB2A
+ mov r0, #0x80
+ tst r0, r1
+ beq _0222FB2E
+_0222FB2A:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0222FB2E:
+ mov r0, #5
+ mov r1, #0x2c
+ bl AllocFromHeap
+ mov r1, #7
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ ldr r1, [r4, r1]
+ mov r0, #0
+ mov r2, #0x2c
+ bl MIi_CpuClearFast
+ ldr r1, [r4, #0x2c]
+ mov r0, #8
+ tst r0, r1
+ beq _0222FBA4
+ mov r6, #0
+ add r5, r4, #0
+_0222FB52:
+ add r0, r6, #0
+ bl FUN_020313CC
+ mov r2, #7
+ lsl r2, r2, #6
+ ldr r2, [r4, r2]
+ lsl r0, r0, #2
+ ldr r1, [r5, #0x68]
+ add r0, r2, r0
+ str r1, [r0, #4]
+ add r0, r6, #0
+ bl FUN_020313CC
+ add r7, r0, #0
+ ldr r0, [r5, #0x48]
+ mov r1, #5
+ bl FUN_020239A0
+ mov r1, #7
+ lsl r1, r1, #6
+ ldr r2, [r4, r1]
+ lsl r1, r7, #2
+ add r1, r2, r1
+ add r6, r6, #1
+ add r5, r5, #4
+ str r0, [r1, #0x14]
+ cmp r6, #4
+ blt _0222FB52
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r2, #5
+ str r2, [r1, #0x24]
+ ldr r1, [r4, r0]
+ mov r2, #1
+ add r1, #0x28
+ strb r2, [r1]
+ ldr r0, [r4, r0]
+ add r0, #0x29
+ strb r2, [r0]
+ b _0222FC2A
+_0222FBA4:
+ add r0, r7, #0
+ lsl r6, r7, #2
+ bl FUN_020313CC
+ mov r2, #7
+ lsl r2, r2, #6
+ add r1, r4, r6
+ ldr r2, [r4, r2]
+ lsl r0, r0, #2
+ ldr r1, [r1, #0x68]
+ add r0, r2, r0
+ str r1, [r0, #4]
+ mov r0, #1
+ eor r0, r7
+ lsl r5, r0, #2
+ str r0, [sp]
+ bl FUN_020313CC
+ add r1, r4, r5
+ ldr r2, [r1, #0x68]
+ mov r1, #7
+ lsl r1, r1, #6
+ ldr r1, [r4, r1]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ str r2, [r0, #4]
+ add r0, r7, #0
+ bl FUN_020313CC
+ add r7, r0, #0
+ add r0, r4, r6
+ ldr r0, [r0, #0x48]
+ mov r1, #5
+ bl FUN_020239A0
+ mov r1, #7
+ lsl r1, r1, #6
+ ldr r2, [r4, r1]
+ lsl r1, r7, #2
+ add r1, r2, r1
+ str r0, [r1, #0x14]
+ ldr r0, [sp]
+ bl FUN_020313CC
+ add r6, r0, #0
+ add r0, r4, r5
+ ldr r0, [r0, #0x48]
+ mov r1, #5
+ bl FUN_020239A0
+ mov r1, #7
+ lsl r1, r1, #6
+ ldr r3, [r4, r1]
+ lsl r2, r6, #2
+ add r2, r3, r2
+ str r0, [r2, #0x14]
+ ldr r0, [r4, r1]
+ mov r2, #5
+ str r2, [r0, #0x24]
+ ldr r0, [r4, r1]
+ mov r2, #1
+ add r0, #0x28
+ strb r2, [r0]
+ ldr r0, [r4, r1]
+ mov r2, #0
+ add r0, #0x29
+ strb r2, [r0]
+_0222FC2A:
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ bl MOD07_02211E60
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0222FC38
+MOD11_0222FC38: ; 0x0222FC38
+ push {r3, r4, r5, r6, r7, lr}
+ bl FUN_02006278
+ add r6, r0, #0
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r6, r0]
+ add r0, #0x2b
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0222FC7A
+ mov r4, #0
+ mov r7, #7
+ add r5, r4, #0
+ lsl r7, r7, #6
+_0222FC56:
+ ldr r0, [r6, r7]
+ add r0, r0, r5
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ beq _0222FC64
+ bl FreeToHeap
+_0222FC64:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0222FC56
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r6, r0]
+ bl FreeToHeap
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0222FC7A:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0222FC80
+MOD11_0222FC80: ; 0x0222FC80
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ bl FUN_0200628C
+ add r7, r0, #0
+ bl FUN_02031190
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ ldr r1, [r7]
+ mov r0, #4
+ tst r0, r1
+ beq _0222FCA2
+ mov r0, #0x80
+ tst r0, r1
+ beq _0222FCA8
+_0222FCA2:
+ add sp, #0x10
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0222FCA8:
+ ldr r0, _0222FE54 ; =SDK_OVERLAY_MODULE_07_ID
+ mov r1, #2
+ bl HandleLoadOverlay
+ mov r0, #5
+ mov r1, #0x2c
+ bl AllocFromHeap
+ add r6, r0, #0
+ mov r0, #0x66
+ lsl r0, r0, #2
+ str r6, [r7, r0]
+ mov r0, #0
+ add r1, r6, #0
+ mov r2, #0x2c
+ bl MIi_CpuClearFast
+ str r7, [r6]
+ ldr r0, [r7, #0x14]
+ cmp r0, #5
+ bhi _0222FD54
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222FCDE: ; jump table
+ .short _0222FD54 - _0222FCDE - 2 ; case 0
+ .short _0222FCEA - _0222FCDE - 2 ; case 1
+ .short _0222FD0E - _0222FCDE - 2 ; case 2
+ .short _0222FD32 - _0222FCDE - 2 ; case 3
+ .short _0222FD54 - _0222FCDE - 2 ; case 4
+ .short _0222FD32 - _0222FCDE - 2 ; case 5
+_0222FCEA:
+ bl FUN_02033590
+ cmp r0, #0
+ bne _0222FD00
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r1, #0x15
+ bl FUN_0202A0E8
+ b _0222FD54
+_0222FD00:
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r1, #0x1a
+ bl FUN_0202A0E8
+ b _0222FD54
+_0222FD0E:
+ bl FUN_02033590
+ cmp r0, #0
+ bne _0222FD24
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r1, #0x16
+ bl FUN_0202A0E8
+ b _0222FD54
+_0222FD24:
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r1, #0x1b
+ bl FUN_0202A0E8
+ b _0222FD54
+_0222FD32:
+ bl FUN_02033590
+ cmp r0, #0
+ bne _0222FD48
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r1, #0x17
+ bl FUN_0202A0E8
+ b _0222FD54
+_0222FD48:
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r1, #0x1c
+ bl FUN_0202A0E8
+_0222FD54:
+ ldr r1, [r7]
+ mov r0, #8
+ tst r0, r1
+ beq _0222FDBE
+ mov r4, #0
+ add r5, r7, #0
+_0222FD60:
+ add r0, r4, #0
+ bl FUN_020313CC
+ lsl r0, r0, #2
+ ldr r1, [r5, #4]
+ add r0, r6, r0
+ str r1, [r0, #4]
+ add r0, r4, #0
+ bl FUN_020313CC
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ mov r1, #5
+ bl FUN_020239A0
+ ldr r1, [sp, #8]
+ add r4, r4, #1
+ lsl r1, r1, #2
+ add r1, r6, r1
+ add r5, r5, #4
+ str r0, [r1, #0x14]
+ cmp r4, #4
+ blt _0222FD60
+ mov r0, #5
+ str r0, [r6, #0x24]
+ add r0, r6, #0
+ mov r1, #2
+ add r0, #0x28
+ strb r1, [r0]
+ add r0, r6, #0
+ mov r1, #1
+ add r0, #0x29
+ strb r1, [r0]
+ ldr r1, [r7, #0x14]
+ cmp r1, #5
+ beq _0222FDB4
+ add r0, r6, #0
+ add r0, #0x2a
+ strb r1, [r0]
+ b _0222FE48
+_0222FDB4:
+ add r0, r6, #0
+ mov r1, #3
+ add r0, #0x2a
+ strb r1, [r0]
+ b _0222FE48
+_0222FDBE:
+ ldr r0, [sp, #4]
+ lsl r5, r0, #2
+ bl FUN_020313CC
+ add r1, r7, r5
+ lsl r0, r0, #2
+ ldr r1, [r1, #4]
+ add r0, r6, r0
+ str r1, [r0, #4]
+ ldr r0, [sp, #4]
+ mov r1, #1
+ eor r0, r1
+ lsl r4, r0, #2
+ str r0, [sp]
+ bl FUN_020313CC
+ add r1, r7, r4
+ lsl r0, r0, #2
+ ldr r1, [r1, #4]
+ add r0, r6, r0
+ str r1, [r0, #4]
+ ldr r0, [sp, #4]
+ bl FUN_020313CC
+ str r0, [sp, #0xc]
+ add r0, r7, r5
+ add r0, #0xf8
+ ldr r0, [r0]
+ mov r1, #5
+ bl FUN_020239A0
+ ldr r1, [sp, #0xc]
+ lsl r1, r1, #2
+ add r1, r6, r1
+ str r0, [r1, #0x14]
+ ldr r0, [sp]
+ bl FUN_020313CC
+ add r5, r0, #0
+ add r0, r7, r4
+ add r0, #0xf8
+ ldr r0, [r0]
+ mov r1, #5
+ bl FUN_020239A0
+ lsl r1, r5, #2
+ add r1, r6, r1
+ str r0, [r1, #0x14]
+ mov r0, #5
+ str r0, [r6, #0x24]
+ add r0, r6, #0
+ mov r1, #2
+ add r0, #0x28
+ strb r1, [r0]
+ add r0, r6, #0
+ mov r1, #0
+ add r0, #0x29
+ strb r1, [r0]
+ ldr r1, [r7, #0x14]
+ cmp r1, #5
+ beq _0222FE40
+ add r0, r6, #0
+ add r0, #0x2a
+ strb r1, [r0]
+ b _0222FE48
+_0222FE40:
+ add r0, r6, #0
+ mov r1, #3
+ add r0, #0x2a
+ strb r1, [r0]
+_0222FE48:
+ add r0, r6, #0
+ bl MOD07_02211E60
+ mov r0, #1
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222FE54: .word SDK_OVERLAY_MODULE_07_ID
+
+ thumb_func_start MOD11_0222FE58
+MOD11_0222FE58: ; 0x0222FE58
+ push {r4, r5, r6, lr}
+ bl FUN_0200628C
+ mov r1, #0x66
+ lsl r1, r1, #2
+ ldr r6, [r0, r1]
+ add r0, r6, #0
+ add r0, #0x2b
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0222FE8E
+ mov r4, #0
+ add r5, r6, #0
+_0222FE72:
+ ldr r0, [r5, #0x14]
+ cmp r0, #0
+ beq _0222FE7C
+ bl FreeToHeap
+_0222FE7C:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0222FE72
+ add r0, r6, #0
+ bl FreeToHeap
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_0222FE8E:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0222FE94
+MOD11_0222FE94: ; 0x0222FE94
+ push {r3, lr}
+ ldr r1, [r0, #0x2c]
+ ldr r0, _0222FEBC ; =0x00000404
+ tst r0, r1
+ beq _0222FEA6
+ mov r0, #1
+ bl FUN_02002B7C
+ pop {r3, pc}
+_0222FEA6:
+ mov r0, #3
+ bl FUN_02002B7C
+ mov r0, #1
+ bl FUN_02002B60
+ mov r0, #1
+ bl FUN_02002BB8
+ pop {r3, pc}
+ nop
+_0222FEBC: .word 0x00000404
+
+ thumb_func_start MOD11_0222FEC0
+MOD11_0222FEC0: ; 0x0222FEC0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ str r0, [sp]
+ mov r0, #0x5f
+ mov r3, #0
+ add r4, sp, #0x30
+ add r5, sp, #0x20
+ lsl r0, r0, #2
+_0222FED0:
+ stmia r4!, {r3}
+ ldr r2, [r1, r0]
+ add r3, r3, #1
+ add r1, r1, #4
+ stmia r5!, {r2}
+ cmp r3, #4
+ blt _0222FED0
+ bl FUN_02031190
+ str r0, [sp, #0x10]
+ bl FUN_02030F20
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0xc]
+ sub r0, r0, #1
+ str r0, [sp, #0x14]
+ cmp r0, #0
+ ble _0222FF50
+ add r0, sp, #0x30
+ add r3, sp, #0x20
+ str r0, [sp, #8]
+ str r3, [sp, #0x18]
+ mov ip, r0
+_0222FF02:
+ ldr r0, [sp, #4]
+ add r2, r0, #1
+ ldr r0, [sp, #0xc]
+ cmp r2, r0
+ bge _0222FF3C
+ ldr r0, [sp, #0x18]
+ lsl r1, r2, #2
+ add r4, r0, r1
+ mov r0, ip
+ add r5, r0, r1
+_0222FF16:
+ ldr r0, [r4]
+ ldr r6, [r3]
+ str r0, [sp, #0x1c]
+ cmp r6, r0
+ bge _0222FF30
+ ldr r0, [sp, #8]
+ ldr r1, [r5]
+ ldr r7, [r0]
+ str r1, [r0]
+ ldr r0, [sp, #0x1c]
+ str r7, [r5]
+ str r0, [r3]
+ str r6, [r4]
+_0222FF30:
+ ldr r0, [sp, #0xc]
+ add r2, r2, #1
+ add r4, r4, #4
+ add r5, r5, #4
+ cmp r2, r0
+ blt _0222FF16
+_0222FF3C:
+ ldr r0, [sp, #8]
+ add r3, r3, #4
+ add r0, r0, #4
+ str r0, [sp, #8]
+ ldr r0, [sp, #4]
+ add r1, r0, #1
+ ldr r0, [sp, #0x14]
+ str r1, [sp, #4]
+ cmp r1, r0
+ blt _0222FF02
+_0222FF50:
+ ldr r1, [sp, #0x30]
+ ldr r0, [sp, #0x10]
+ cmp r1, r0
+ bne _0222FF60
+ ldr r1, _0222FF64 ; =0x000023F8
+ ldr r0, [sp]
+ mov r2, #1
+ strb r2, [r0, r1]
+_0222FF60:
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222FF64: .word 0x000023F8
+
+ thumb_func_start MOD11_0222FF68
+MOD11_0222FF68: ; 0x0222FF68
+ ldr r0, [r0, #4]
+ bx lr
+
+ thumb_func_start MOD11_0222FF6C
+MOD11_0222FF6C: ; 0x0222FF6C
+ ldr r2, [r0, #8]
+ lsl r0, r1, #4
+ add r0, r2, r0
+ bx lr
+
+ thumb_func_start MOD11_0222FF74
+MOD11_0222FF74: ; 0x0222FF74
+ ldr r0, [r0, #0x2c]
+ bx lr
+
+ thumb_func_start MOD11_0222FF78
+MOD11_0222FF78: ; 0x0222FF78
+ ldr r0, [r0, #0x30]
+ bx lr
+
+ thumb_func_start MOD11_0222FF7C
+MOD11_0222FF7C: ; 0x0222FF7C
+ lsl r1, r1, #2
+ add r0, r0, r1
+ ldr r0, [r0, #0x34]
+ bx lr
+
+ thumb_func_start MOD11_0222FF84
+MOD11_0222FF84: ; 0x0222FF84
+ ldr r0, [r0, #0x44]
+ bx lr
+
+ thumb_func_start MOD11_0222FF88
+MOD11_0222FF88: ; 0x0222FF88
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r2, [r5, #0x2c]
+ mov r3, #8
+ add r4, r1, #0
+ tst r3, r2
+ bne _0222FFA6
+ mov r3, #0x10
+ tst r2, r3
+ beq _0222FFAE
+ bl MOD11_02230260
+ mov r1, #1
+ tst r0, r1
+ beq _0222FFAE
+_0222FFA6:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x68]
+ pop {r3, r4, r5, pc}
+_0222FFAE:
+ ldr r1, [r5, #0x2c]
+ mov r0, #2
+ tst r0, r1
+ beq _0222FFC0
+ lsl r0, r4, #0x1f
+ lsr r0, r0, #0x1d
+ add r0, r5, r0
+ ldr r0, [r0, #0x68]
+ pop {r3, r4, r5, pc}
+_0222FFC0:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x68]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0222FFC8
+MOD11_0222FFC8: ; 0x0222FFC8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r2, [r5, #0x2c]
+ mov r3, #8
+ add r4, r1, #0
+ tst r3, r2
+ bne _0222FFE6
+ mov r3, #0x10
+ tst r2, r3
+ beq _0222FFF2
+ bl MOD11_02230260
+ mov r1, #1
+ tst r0, r1
+ beq _0222FFF2
+_0222FFE6:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x68]
+ bl GetPartyCount
+ pop {r3, r4, r5, pc}
+_0222FFF2:
+ ldr r1, [r5, #0x2c]
+ mov r0, #2
+ tst r0, r1
+ beq _02230008
+ lsl r0, r4, #0x1f
+ lsr r0, r0, #0x1d
+ add r0, r5, r0
+ ldr r0, [r0, #0x68]
+ bl GetPartyCount
+ pop {r3, r4, r5, pc}
+_02230008:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x68]
+ bl GetPartyCount
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02230014
+MOD11_02230014: ; 0x02230014
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r2, #0
+ ldr r2, [r5, #0x2c]
+ mov r3, #8
+ add r4, r1, #0
+ tst r3, r2
+ bne _02230034
+ mov r3, #0x10
+ tst r2, r3
+ beq _02230042
+ bl MOD11_02230260
+ mov r1, #1
+ tst r0, r1
+ beq _02230042
+_02230034:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x68]
+ add r1, r6, #0
+ bl GetPartyMonByIndex
+ pop {r4, r5, r6, pc}
+_02230042:
+ ldr r1, [r5, #0x2c]
+ mov r0, #2
+ tst r0, r1
+ beq _0223005A
+ lsl r0, r4, #0x1f
+ lsr r0, r0, #0x1d
+ add r0, r5, r0
+ ldr r0, [r0, #0x68]
+ add r1, r6, #0
+ bl GetPartyMonByIndex
+ pop {r4, r5, r6, pc}
+_0223005A:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x68]
+ add r1, r6, #0
+ bl GetPartyMonByIndex
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02230068
+MOD11_02230068: ; 0x02230068
+ add r0, #0x88
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_02230070
+MOD11_02230070: ; 0x02230070
+ add r0, #0x8c
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_02230078
+MOD11_02230078: ; 0x02230078
+ add r0, #0x90
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_02230080
+MOD11_02230080: ; 0x02230080
+ add r0, #0x94
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_02230088
+MOD11_02230088: ; 0x02230088
+ mov r2, #0x5f
+ lsl r2, r2, #2
+ add r2, r0, r2
+ lsl r0, r1, #4
+ add r0, r2, r0
+ bx lr
+
+ thumb_func_start MOD11_02230094
+MOD11_02230094: ; 0x02230094
+ mov r1, #0x67
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD11_0223009C
+MOD11_0223009C: ; 0x0223009C
+ lsl r1, r1, #2
+ add r1, r0, r1
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ bx lr
+
+ thumb_func_start MOD11_022300A8
+MOD11_022300A8: ; 0x022300A8
+ lsl r1, r1, #2
+ add r1, r0, r1
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ str r2, [r1, r0]
+ bx lr
+
+ thumb_func_start MOD11_022300B4
+MOD11_022300B4: ; 0x022300B4
+ mov r1, #0x6a
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD11_022300BC
+MOD11_022300BC: ; 0x022300BC
+ mov r1, #0x6b
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD11_022300C4
+MOD11_022300C4: ; 0x022300C4
+ ldr r0, [r0, #0xc]
+ bx lr
+
+ thumb_func_start MOD11_022300C8
+MOD11_022300C8: ; 0x022300C8
+ ldr r0, [r0, #0x10]
+ bx lr
+
+ thumb_func_start MOD11_022300CC
+MOD11_022300CC: ; 0x022300CC
+ ldr r0, [r0, #0x28]
+ bx lr
+
+ thumb_func_start MOD11_022300D0
+MOD11_022300D0: ; 0x022300D0
+ ldr r0, [r0, #0x60]
+ bx lr
+
+ thumb_func_start MOD11_022300D4
+MOD11_022300D4: ; 0x022300D4
+ mov r1, #0x89
+ lsl r1, r1, #2
+ add r0, r0, r1
+ bx lr
+
+ thumb_func_start MOD11_022300DC
+MOD11_022300DC: ; 0x022300DC
+ ldr r1, _022300E4 ; =0x00001224
+ add r0, r0, r1
+ bx lr
+ nop
+_022300E4: .word 0x00001224
+
+ thumb_func_start MOD11_022300E8
+MOD11_022300E8: ; 0x022300E8
+ ldr r1, _022300F0 ; =0x000023E4
+ add r0, r0, r1
+ bx lr
+ nop
+_022300F0: .word 0x000023E4
+
+ thumb_func_start MOD11_022300F4
+MOD11_022300F4: ; 0x022300F4
+ ldr r1, _022300FC ; =0x000023E6
+ add r0, r0, r1
+ bx lr
+ nop
+_022300FC: .word 0x000023E6
+
+ thumb_func_start MOD11_02230100
+MOD11_02230100: ; 0x02230100
+ ldr r1, _02230108 ; =0x000023E8
+ add r0, r0, r1
+ bx lr
+ nop
+_02230108: .word 0x000023E8
+
+ thumb_func_start MOD11_0223010C
+MOD11_0223010C: ; 0x0223010C
+ ldr r1, _02230114 ; =0x000023EA
+ add r0, r0, r1
+ bx lr
+ nop
+_02230114: .word 0x000023EA
+
+ thumb_func_start MOD11_02230118
+MOD11_02230118: ; 0x02230118
+ ldr r1, _02230120 ; =0x000023EC
+ add r0, r0, r1
+ bx lr
+ nop
+_02230120: .word 0x000023EC
+
+ thumb_func_start MOD11_02230124
+MOD11_02230124: ; 0x02230124
+ ldr r1, _0223012C ; =0x000023EE
+ add r0, r0, r1
+ bx lr
+ nop
+_0223012C: .word 0x000023EE
+
+ thumb_func_start MOD11_02230130
+MOD11_02230130: ; 0x02230130
+ mov r1, #0x73
+ lsl r1, r1, #2
+ add r0, r0, r1
+ bx lr
+
+ thumb_func_start MOD11_02230138
+MOD11_02230138: ; 0x02230138
+ ldr r0, [r0, #0x14]
+ bx lr
+
+ thumb_func_start MOD11_0223013C
+MOD11_0223013C: ; 0x0223013C
+ ldr r0, [r0, #0x18]
+ bx lr
+
+ thumb_func_start MOD11_02230140
+MOD11_02230140: ; 0x02230140
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r2, [r5, #0x2c]
+ mov r3, #8
+ add r4, r1, #0
+ tst r3, r2
+ bne _0223015E
+ mov r3, #0x10
+ tst r2, r3
+ beq _02230168
+ bl MOD11_02230260
+ mov r1, #1
+ tst r0, r1
+ beq _02230168
+_0223015E:
+ lsl r0, r4, #1
+ add r0, r5, r0
+ add r0, #0xa0
+ ldrh r0, [r0]
+ pop {r3, r4, r5, pc}
+_02230168:
+ ldr r1, [r5, #0x2c]
+ mov r0, #2
+ tst r0, r1
+ beq _0223017C
+ lsl r0, r4, #0x1f
+ lsr r0, r0, #0x1e
+ add r0, r5, r0
+ add r0, #0xa0
+ ldrh r0, [r0]
+ pop {r3, r4, r5, pc}
+_0223017C:
+ lsl r0, r4, #1
+ add r0, r5, r0
+ add r0, #0xa0
+ ldrh r0, [r0]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02230188
+MOD11_02230188: ; 0x02230188
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r2, [r5, #0x2c]
+ mov r3, #8
+ add r4, r1, #0
+ tst r3, r2
+ bne _022301A6
+ mov r3, #0x10
+ tst r2, r3
+ beq _022301B0
+ bl MOD11_02230260
+ mov r1, #1
+ tst r0, r1
+ beq _022301B0
+_022301A6:
+ mov r0, #0x34
+ add r5, #0xac
+ mul r0, r4
+ add r0, r5, r0
+ pop {r3, r4, r5, pc}
+_022301B0:
+ ldr r1, [r5, #0x2c]
+ mov r0, #2
+ tst r0, r1
+ beq _022301C8
+ mov r0, #1
+ add r1, r4, #0
+ and r1, r0
+ mov r0, #0x34
+ add r5, #0xac
+ mul r0, r1
+ add r0, r5, r0
+ pop {r3, r4, r5, pc}
+_022301C8:
+ mov r0, #0x34
+ add r5, #0xac
+ mul r0, r4
+ add r0, r5, r0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022301D4
+MOD11_022301D4: ; 0x022301D4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r2, [r5, #0x2c]
+ mov r3, #8
+ add r4, r1, #0
+ tst r3, r2
+ bne _022301F2
+ mov r3, #0x10
+ tst r2, r3
+ beq _022301FA
+ bl MOD11_02230260
+ mov r1, #1
+ tst r0, r1
+ beq _022301FA
+_022301F2:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x48]
+ pop {r3, r4, r5, pc}
+_022301FA:
+ ldr r1, [r5, #0x2c]
+ mov r0, #2
+ tst r0, r1
+ beq _0223020C
+ lsl r0, r4, #0x1f
+ lsr r0, r0, #0x1d
+ add r0, r5, r0
+ ldr r0, [r0, #0x48]
+ pop {r3, r4, r5, pc}
+_0223020C:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x48]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02230214
+MOD11_02230214: ; 0x02230214
+ ldr r0, [r0, #0x58]
+ bx lr
+
+ thumb_func_start MOD11_02230218
+MOD11_02230218: ; 0x02230218
+ ldr r0, [r0, #0x5c]
+ bx lr
+
+ thumb_func_start MOD11_0223021C
+MOD11_0223021C: ; 0x0223021C
+ lsl r1, r1, #2
+ add r0, r0, r1
+ ldr r3, _02230228 ; =FUN_020239CC
+ ldr r0, [r0, #0x48]
+ bx r3
+ nop
+_02230228: .word FUN_020239CC
+
+ thumb_func_start MOD11_0223022C
+MOD11_0223022C: ; 0x0223022C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x44]
+ add r7, r1, #0
+ mov r4, #0
+ cmp r0, #0
+ ble _02230250
+ add r5, r6, #0
+_0223023C:
+ ldr r0, [r5, #0x34]
+ bl MOD11_02253A4C
+ cmp r7, r0
+ beq _02230250
+ ldr r0, [r6, #0x44]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r0
+ blt _0223023C
+_02230250:
+ ldr r0, [r6, #0x44]
+ cmp r4, r0
+ blt _0223025A
+ bl ErrorHandling
+_0223025A:
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02230260
+MOD11_02230260: ; 0x02230260
+ lsl r1, r1, #2
+ add r0, r0, r1
+ ldr r3, _0223026C ; =MOD11_02253A4C
+ ldr r0, [r0, #0x34]
+ bx r3
+ nop
+_0223026C: .word MOD11_02253A4C
+
+ thumb_func_start MOD11_02230270
+MOD11_02230270: ; 0x02230270
+ push {r3, lr}
+ lsl r1, r1, #2
+ add r0, r0, r1
+ ldr r0, [r0, #0x34]
+ bl MOD11_02253A4C
+ mov r1, #1
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02230288
+MOD11_02230288: ; 0x02230288
+ mov r1, #0x1b
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD11_02230290
+MOD11_02230290: ; 0x02230290
+ ldr r0, [r0, #0x64]
+ bx lr
+
+ thumb_func_start MOD11_02230294
+MOD11_02230294: ; 0x02230294
+ ldr r1, _022302A4 ; =0x000023FC
+ ldr r0, [r0, r1]
+ cmp r0, #0xc
+ bgt _022302A0
+ cmp r0, #0
+ bge _022302A2
+_022302A0:
+ mov r0, #0xc
+_022302A2:
+ bx lr
+ .align 2, 0
+_022302A4: .word 0x000023FC
+
+ thumb_func_start MOD11_022302A8
+MOD11_022302A8: ; 0x022302A8
+ mov r1, #9
+ lsl r1, r1, #0xa
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD11_022302B0
+MOD11_022302B0: ; 0x022302B0
+ ldr r1, _022302B8 ; =0x00002404
+ ldr r0, [r0, r1]
+ bx lr
+ nop
+_022302B8: .word 0x00002404
+
+ thumb_func_start MOD11_022302BC
+MOD11_022302BC: ; 0x022302BC
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ bl MOD11_0222FF84
+ str r0, [sp]
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _022302D8
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022302D8:
+ ldr r0, [sp]
+ mov r4, #0
+ cmp r0, #0
+ ble _02230302
+_022302E0:
+ cmp r4, r5
+ beq _022302FA
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_02230270
+ add r7, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_02230270
+ cmp r7, r0
+ beq _02230302
+_022302FA:
+ ldr r0, [sp]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _022302E0
+_02230302:
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02230308
+MOD11_02230308: ; 0x02230308
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r6, r1, #0
+ str r2, [sp]
+ bl MOD11_0222FF84
+ str r0, [sp, #4]
+ add r0, r5, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _0223032C
+ mov r0, #1
+ add sp, #8
+ eor r0, r6
+ pop {r3, r4, r5, r6, r7, pc}
+_0223032C:
+ ldr r0, [sp, #4]
+ mov r4, #0
+ cmp r0, #0
+ ble _02230368
+_02230334:
+ cmp r4, r6
+ beq _02230360
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02230260
+ mov r1, #2
+ and r1, r0
+ ldr r0, [sp]
+ cmp r0, r1
+ bne _02230360
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02230270
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02230270
+ cmp r7, r0
+ bne _02230368
+_02230360:
+ ldr r0, [sp, #4]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _02230334
+_02230368:
+ add r0, r4, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02230370
+MOD11_02230370: ; 0x02230370
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r6, r1, #0
+ ldr r1, [sp, #0x38]
+ add r5, r2, #0
+ str r1, [sp, #0x38]
+ add r1, r0, #0
+ ldr r1, [r1, #0x30]
+ add r4, r3, #0
+ str r1, [sp, #0x1c]
+ mov r1, #0
+ str r1, [sp, #0x14]
+ ldr r1, [sp, #0x1c]
+ str r0, [sp, #4]
+ mov r2, #2
+ add r3, r6, #0
+ bl MOD11_0224C474
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #4]
+ bl MOD11_0222FF74
+ cmp r0, #3
+ beq _022303BA
+ ldr r0, [sp, #4]
+ bl MOD11_0222FF74
+ mov r1, #0x10
+ tst r0, r1
+ beq _022303E0
+ ldr r0, [sp, #4]
+ add r1, r6, #0
+ bl MOD11_02230260
+ mov r1, #1
+ tst r0, r1
+ bne _022303E0
+_022303BA:
+ ldr r0, [sp, #4]
+ add r1, r6, #0
+ bl MOD11_022302BC
+ add r3, r0, #0
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0x1c]
+ mov r2, #2
+ bl MOD11_0224C474
+ str r0, [sp, #0xc]
+ cmp r0, r5
+ bne _022303E4
+ ldr r0, [sp, #4]
+ add r1, r6, #0
+ bl MOD11_022302BC
+ add r6, r0, #0
+ b _022303E4
+_022303E0:
+ ldr r0, [sp, #0x10]
+ str r0, [sp, #0xc]
+_022303E4:
+ ldr r0, [sp, #4]
+ add r1, r6, #0
+ add r2, r5, #0
+ bl MOD11_02230014
+ str r0, [sp, #0x18]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x38]
+ mov r1, #0xf
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02230478
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9f
+ mov r2, #0
+ bl GetMonData
+ mov r1, #7
+ str r0, [sp, #0x20]
+ tst r1, r0
+ beq _02230478
+ mov r1, #7
+ bic r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9f
+ add r2, sp, #0x20
+ bl SetMonData
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _02230434
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _02230474
+_02230434:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x34
+ mov r3, #0
+ bl MOD11_02243420
+ mov r1, #7
+ str r0, [sp, #0x20]
+ bic r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x34
+ add r3, sp, #0x20
+ bl MOD11_0224379C
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x35
+ mov r3, #0
+ bl MOD11_02243420
+ ldr r1, _02230688 ; =0xF7FFFFFF
+ str r0, [sp, #0x20]
+ and r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x35
+ add r3, sp, #0x20
+ bl MOD11_0224379C
+_02230474:
+ mov r0, #1
+ str r0, [sp, #0x14]
+_02230478:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x10
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _022304DC
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9f
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _0223068C ; =0x00000F88
+ str r0, [sp, #0x20]
+ tst r1, r0
+ beq _022304DC
+ ldr r1, _02230690 ; =0xFFFFF077
+ add r2, sp, #0x20
+ and r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9f
+ bl SetMonData
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _022304B8
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _022304D8
+_022304B8:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x34
+ mov r3, #0
+ bl MOD11_02243420
+ ldr r1, _02230690 ; =0xFFFFF077
+ str r0, [sp, #0x20]
+ and r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x34
+ add r3, sp, #0x20
+ bl MOD11_0224379C
+_022304D8:
+ mov r0, #1
+ str r0, [sp, #0x14]
+_022304DC:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x11
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02230540
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9f
+ mov r2, #0
+ bl GetMonData
+ mov r1, #0x10
+ str r0, [sp, #0x20]
+ tst r1, r0
+ beq _02230540
+ mov r1, #0x10
+ bic r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9f
+ add r2, sp, #0x20
+ bl SetMonData
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _0223051C
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _0223053C
+_0223051C:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x34
+ mov r3, #0
+ bl MOD11_02243420
+ mov r1, #0x10
+ str r0, [sp, #0x20]
+ bic r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x34
+ add r3, sp, #0x20
+ bl MOD11_0224379C
+_0223053C:
+ mov r0, #1
+ str r0, [sp, #0x14]
+_02230540:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x12
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _022305A4
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9f
+ mov r2, #0
+ bl GetMonData
+ mov r1, #0x20
+ str r0, [sp, #0x20]
+ tst r1, r0
+ beq _022305A4
+ mov r1, #0x20
+ bic r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9f
+ add r2, sp, #0x20
+ bl SetMonData
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _02230580
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _022305A0
+_02230580:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x34
+ mov r3, #0
+ bl MOD11_02243420
+ mov r1, #0x20
+ str r0, [sp, #0x20]
+ bic r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x34
+ add r3, sp, #0x20
+ bl MOD11_0224379C
+_022305A0:
+ mov r0, #1
+ str r0, [sp, #0x14]
+_022305A4:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x13
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02230608
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9f
+ mov r2, #0
+ bl GetMonData
+ mov r1, #0x40
+ str r0, [sp, #0x20]
+ tst r1, r0
+ beq _02230608
+ mov r1, #0x40
+ bic r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9f
+ add r2, sp, #0x20
+ bl SetMonData
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _022305E4
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _02230604
+_022305E4:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x34
+ mov r3, #0
+ bl MOD11_02243420
+ mov r1, #0x40
+ str r0, [sp, #0x20]
+ bic r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x34
+ add r3, sp, #0x20
+ bl MOD11_0224379C
+_02230604:
+ mov r0, #1
+ str r0, [sp, #0x14]
+_02230608:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x14
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02230650
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _02230626
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _02230650
+_02230626:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x35
+ mov r3, #0
+ bl MOD11_02243420
+ mov r1, #7
+ str r0, [sp, #0x20]
+ tst r1, r0
+ beq _02230650
+ mov r1, #7
+ bic r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x35
+ add r3, sp, #0x20
+ bl MOD11_0224379C
+ mov r0, #1
+ str r0, [sp, #0x14]
+_02230650:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x15
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _022306AC
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _0223066E
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _022306AC
+_0223066E:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x35
+ mov r3, #0
+ bl MOD11_02243420
+ mov r1, #0xf
+ lsl r1, r1, #0x10
+ str r0, [sp, #0x20]
+ tst r1, r0
+ beq _022306AC
+ ldr r1, _02230694 ; =0xFFF0FFFF
+ b _02230698
+ .align 2, 0
+_02230688: .word 0xF7FFFFFF
+_0223068C: .word 0x00000F88
+_02230690: .word 0xFFFFF077
+_02230694: .word 0xFFF0FFFF
+_02230698:
+ mov r2, #0x35
+ and r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ add r3, sp, #0x20
+ bl MOD11_0224379C
+ mov r0, #1
+ str r0, [sp, #0x14]
+_022306AC:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x16
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02230706
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0x1c]
+ mov r2, #1
+ add r3, r6, #0
+ bl MOD11_0224C474
+ str r0, [sp, #0x20]
+ cmp r0, #0
+ bne _02230706
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0x1c]
+ mov r2, #0
+ add r3, r6, #0
+ bl MOD11_0224C474
+ mov r1, #0x40
+ str r0, [sp, #0x20]
+ orr r0, r1
+ str r0, [sp, #0x20]
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0x1c]
+ mov r2, #0
+ add r3, r6, #0
+ bl MOD11_0224C54C
+ mov r0, #5
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0x1c]
+ mov r2, #1
+ add r3, r6, #0
+ bl MOD11_0224C54C
+ mov r0, #1
+ str r0, [sp, #0x14]
+_02230706:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x1b
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02230744
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _02230724
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _02230744
+_02230724:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x13
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #0xc
+ bge _02230744
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x13
+ mov r3, #1
+ bl MOD11_02243DB0
+ mov r0, #1
+ str r0, [sp, #0x14]
+_02230744:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x1c
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02230782
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _02230762
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _02230782
+_02230762:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x14
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #0xc
+ bge _02230782
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x14
+ mov r3, #1
+ bl MOD11_02243DB0
+ mov r0, #1
+ str r0, [sp, #0x14]
+_02230782:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x1d
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _022307C0
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _022307A0
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _022307C0
+_022307A0:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x16
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #0xc
+ bge _022307C0
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x16
+ mov r3, #1
+ bl MOD11_02243DB0
+ mov r0, #1
+ str r0, [sp, #0x14]
+_022307C0:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x1e
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _022307FE
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _022307DE
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _022307FE
+_022307DE:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x17
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #0xc
+ bge _022307FE
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x17
+ mov r3, #1
+ bl MOD11_02243DB0
+ mov r0, #1
+ str r0, [sp, #0x14]
+_022307FE:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x1f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _0223083C
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _0223081C
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _0223083C
+_0223081C:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x15
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #0xc
+ bge _0223083C
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x15
+ mov r3, #1
+ bl MOD11_02243DB0
+ mov r0, #1
+ str r0, [sp, #0x14]
+_0223083C:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x20
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _0223087A
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _0223085A
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _0223087A
+_0223085A:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x18
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #0xc
+ bge _0223087A
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x18
+ mov r3, #1
+ bl MOD11_02243DB0
+ mov r0, #1
+ str r0, [sp, #0x14]
+_0223087A:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x21
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _022308C4
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _02230898
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _022308C4
+_02230898:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x35
+ mov r3, #0
+ bl MOD11_02243420
+ mov r1, #1
+ lsl r1, r1, #0x14
+ add r2, r0, #0
+ str r0, [sp, #0x20]
+ tst r2, r1
+ bne _022308C4
+ orr r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x35
+ add r3, sp, #0x20
+ bl MOD11_0224379C
+ mov r0, #1
+ str r0, [sp, #0x14]
+_022308C4:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x24
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _0223095A
+ ldr r0, [sp, #0x38]
+ mov r1, #0x37
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ str r0, [sp, #0x20]
+ add r1, r4, #0
+ ldr r0, [sp, #0x18]
+ add r1, #0x3a
+ mov r2, #0
+ bl GetMonData
+ add r7, r0, #0
+ add r1, r4, #0
+ ldr r0, [sp, #0x18]
+ add r1, #0x42
+ mov r2, #0
+ bl GetMonData
+ cmp r7, r0
+ beq _0223095A
+ add r1, r4, #0
+ ldr r0, [sp, #0x18]
+ ldr r2, [sp, #0x20]
+ add r1, #0x3a
+ bl AddMonData
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _0223091C
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _02230956
+_0223091C:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x35
+ mov r3, #0
+ bl MOD11_02243420
+ mov r1, #2
+ lsl r1, r1, #0x14
+ tst r0, r1
+ bne _02230956
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x4b
+ mov r3, #0
+ bl MOD11_02243420
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ tst r0, r7
+ bne _02230956
+ add r4, #0x1f
+ ldr r0, [sp, #0x1c]
+ ldr r3, [sp, #0x20]
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_02243DB0
+_02230956:
+ mov r0, #1
+ str r0, [sp, #0x14]
+_0223095A:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x25
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _022309F8
+ ldr r0, [sp, #0x38]
+ mov r1, #0x37
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ str r0, [sp, #0x20]
+ mov r4, #0
+_0223097E:
+ add r1, r4, #0
+ ldr r0, [sp, #0x18]
+ add r1, #0x3a
+ mov r2, #0
+ bl GetMonData
+ add r7, r0, #0
+ add r1, r4, #0
+ ldr r0, [sp, #0x18]
+ add r1, #0x42
+ mov r2, #0
+ bl GetMonData
+ cmp r7, r0
+ beq _022309F2
+ add r1, r4, #0
+ ldr r0, [sp, #0x18]
+ ldr r2, [sp, #0x20]
+ add r1, #0x3a
+ bl AddMonData
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _022309B4
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _022309EE
+_022309B4:
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x35
+ mov r3, #0
+ bl MOD11_02243420
+ mov r1, #2
+ lsl r1, r1, #0x14
+ tst r0, r1
+ bne _022309EE
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x4b
+ mov r3, #0
+ bl MOD11_02243420
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ tst r0, r7
+ bne _022309EE
+ add r2, r4, #0
+ ldr r0, [sp, #0x1c]
+ ldr r3, [sp, #0x20]
+ add r1, r6, #0
+ add r2, #0x1f
+ bl MOD11_02243DB0
+_022309EE:
+ mov r0, #1
+ str r0, [sp, #0x14]
+_022309F2:
+ add r4, r4, #1
+ cmp r4, #4
+ blt _0223097E
+_022309F8:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x26
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ bne _02230A0C
+ b _02230B14
+_02230A0C:
+ mov r0, #0
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x38]
+ mov r1, #0x17
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02230A36
+ ldr r0, [sp, #0x18]
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _02230A42
+ mov r0, #1
+ str r0, [sp, #0x20]
+ b _02230A42
+_02230A36:
+ ldr r0, [sp, #0x18]
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ str r0, [sp, #0x20]
+_02230A42:
+ ldr r0, [sp, #0x20]
+ cmp r0, #0
+ beq _02230B14
+ ldr r0, [sp, #0x18]
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ add r4, r0, #0
+ ldr r0, [sp, #0x18]
+ mov r1, #0xa3
+ mov r2, #0
+ bl GetMonData
+ cmp r4, r0
+ beq _02230B14
+ ldr r0, [sp, #0x38]
+ mov r1, #0x36
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ str r0, [sp, #0x20]
+ cmp r0, #0xfd
+ beq _02230AA2
+ cmp r0, #0xfe
+ beq _02230A8C
+ cmp r0, #0xff
+ bne _02230AC2
+ ldr r0, [sp, #0x18]
+ mov r1, #0xa3
+ mov r2, #0
+ bl GetMonData
+ str r0, [sp, #0x20]
+ b _02230AC2
+_02230A8C:
+ ldr r0, [sp, #0x18]
+ mov r1, #0xa3
+ mov r2, #0
+ bl GetMonData
+ lsr r0, r0, #1
+ str r0, [sp, #0x20]
+ bne _02230AC2
+ mov r0, #1
+ str r0, [sp, #0x20]
+ b _02230AC2
+_02230AA2:
+ ldr r0, [sp, #0x18]
+ mov r1, #0xa3
+ mov r2, #0
+ bl GetMonData
+ mov r1, #0x19
+ mul r1, r0
+ add r0, r1, #0
+ mov r1, #0x64
+ bl _u32_div_f
+ str r0, [sp, #0x20]
+ cmp r0, #0
+ bne _02230AC2
+ mov r0, #1
+ str r0, [sp, #0x20]
+_02230AC2:
+ ldr r0, [sp, #0x18]
+ ldr r2, [sp, #0x20]
+ mov r1, #0xa2
+ bl AddMonData
+ ldr r0, [sp, #0x38]
+ mov r1, #0x17
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ bne _02230B10
+ ldr r0, [sp, #4]
+ add r1, r6, #0
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02230AF8
+ ldr r0, [sp, #0x1c]
+ add r1, r6, #0
+ mov r2, #0x5f
+ add r3, sp, #0x20
+ bl MOD11_0224379C
+ b _02230B10
+_02230AF8:
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _02230B04
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _02230B10
+_02230B04:
+ ldr r0, [sp, #0x1c]
+ ldr r3, [sp, #0x20]
+ add r1, r6, #0
+ mov r2, #0x2f
+ bl MOD11_02243DB0
+_02230B10:
+ mov r0, #1
+ str r0, [sp, #0x14]
+_02230B14:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x2d
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02230B4A
+ ldr r0, [sp, #0x18]
+ mov r1, #9
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0x64
+ bhs _02230B4A
+ ldr r0, [sp, #0x14]
+ cmp r0, #1
+ bne _02230B4A
+ ldr r0, [sp, #0x38]
+ mov r1, #0x38
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ str r0, [sp, #8]
+_02230B4A:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x2e
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02230B8E
+ ldr r0, [sp, #0x18]
+ mov r1, #9
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0x64
+ blo _02230B8E
+ ldr r0, [sp, #0x18]
+ mov r1, #9
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0xc8
+ bhs _02230B8E
+ ldr r0, [sp, #0x14]
+ cmp r0, #1
+ bne _02230B8E
+ ldr r0, [sp, #0x38]
+ mov r1, #0x39
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ str r0, [sp, #8]
+_02230B8E:
+ ldr r0, [sp, #0x38]
+ mov r1, #0x2f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02230BC4
+ ldr r0, [sp, #0x18]
+ mov r1, #9
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0xc8
+ blo _02230BC4
+ ldr r0, [sp, #0x14]
+ cmp r0, #1
+ bne _02230BC4
+ ldr r0, [sp, #0x38]
+ mov r1, #0x3a
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ str r0, [sp, #8]
+_02230BC4:
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ beq _02230C4A
+ ble _02230C28
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9a
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0xb
+ bne _02230BE0
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+_02230BE0:
+ ldr r0, [sp, #0x18]
+ mov r1, #0x97
+ mov r2, #0
+ bl GetMonData
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ bl MOD11_022302B0
+ cmp r4, r0
+ bne _02230BFC
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+_02230BFC:
+ ldr r0, [sp, #0x18]
+ mov r1, #6
+ mov r2, #0
+ bl GetMonData
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x38]
+ mov r1, #1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0x34
+ bne _02230C28
+ ldr r1, [sp, #8]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ str r0, [sp, #8]
+_02230C28:
+ ldr r0, [sp, #0x18]
+ ldr r2, [sp, #8]
+ mov r1, #9
+ bl AddMonData
+ ldr r0, [sp, #0x10]
+ cmp r0, r5
+ beq _02230C3E
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ bne _02230C4A
+_02230C3E:
+ ldr r0, [sp, #0x1c]
+ ldr r3, [sp, #8]
+ add r1, r6, #0
+ mov r2, #0x2c
+ bl MOD11_02243DB0
+_02230C4A:
+ ldr r0, [sp, #0x14]
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02230C50
+MOD11_02230C50: ; 0x02230C50
+ ldr r1, _02230C58 ; =0x00002408
+ ldr r0, [r0, r1]
+ bx lr
+ nop
+_02230C58: .word 0x00002408
+
+ thumb_func_start MOD11_02230C5C
+MOD11_02230C5C: ; 0x02230C5C
+ ldr r1, _02230C64 ; =0x0000240C
+ ldr r0, [r0, r1]
+ bx lr
+ nop
+_02230C64: .word 0x0000240C
+
+ thumb_func_start MOD11_02230C68
+MOD11_02230C68: ; 0x02230C68
+ mov r2, #9
+ lsl r2, r2, #0xa
+ ldr r1, [r0, r2]
+ cmp r1, #5
+ bhi _02230CB4
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02230C7E: ; jump table
+ .short _02230C8A - _02230C7E - 2 ; case 0
+ .short _02230C8A - _02230C7E - 2 ; case 1
+ .short _02230C8A - _02230C7E - 2 ; case 2
+ .short _02230C8A - _02230C7E - 2 ; case 3
+ .short _02230C8A - _02230C7E - 2 ; case 4
+ .short _02230C8A - _02230C7E - 2 ; case 5
+_02230C8A:
+ add r2, #0xc
+ ldr r1, [r0, r2]
+ cmp r1, #4
+ bhi _02230CB6
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02230C9E: ; jump table
+ .short _02230CA8 - _02230C9E - 2 ; case 0
+ .short _02230CA8 - _02230C9E - 2 ; case 1
+ .short _02230CAC - _02230C9E - 2 ; case 2
+ .short _02230CB0 - _02230C9E - 2 ; case 3
+ .short _02230CB0 - _02230C9E - 2 ; case 4
+_02230CA8:
+ mov r0, #0
+ bx lr
+_02230CAC:
+ mov r0, #1
+ bx lr
+_02230CB0:
+ mov r0, #2
+ bx lr
+_02230CB4:
+ mov r0, #0
+_02230CB6:
+ bx lr
+
+ thumb_func_start MOD11_02230CB8
+MOD11_02230CB8: ; 0x02230CB8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_02230260
+ cmp r0, #4
+ bne _02230D32
+ ldr r1, [r5, #0x2c]
+ mov r0, #8
+ tst r0, r1
+ bne _02230D32
+ mov r0, #4
+ tst r0, r1
+ beq _02230CEE
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022302BC
+ bl MaskOfFlagNo
+ mov r1, #0x91
+ lsl r1, r1, #6
+ ldrb r1, [r5, r1]
+ tst r0, r1
+ bne _02230D32
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02230CEE:
+ ldr r1, [r5, #0x30]
+ add r0, r5, #0
+ mov r2, #0xc
+ mov r3, #0
+ bl MOD11_0224C474
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ ldr r1, [r5, #0x30]
+ add r0, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_0224C474
+ cmp r0, #0xe
+ bne _02230D12
+ cmp r4, #0x10
+ bhi _02230D2A
+_02230D12:
+ ldr r1, [r5, #0x30]
+ add r0, r5, #0
+ mov r2, #0xa
+ mov r3, #0
+ bl MOD11_0224C474
+ add r4, r0, #0
+ mov r0, #0
+ bl MaskOfFlagNo
+ tst r0, r4
+ beq _02230D2E
+_02230D2A:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02230D2E:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02230D32:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02230D38
+MOD11_02230D38: ; 0x02230D38
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x14]
+ add r4, r1, #0
+ add r7, r2, #0
+ cmp r0, #1
+ beq _02230D5A
+ cmp r0, #4
+ beq _02230D5A
+ cmp r0, #5
+ beq _02230D5A
+ ldr r0, [sp, #4]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02230D5A:
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _02230DCE
+_02230D64:
+ mov r0, #0
+ str r0, [r4]
+ cmp r0, #6
+ bge _02230D9C
+ mov r6, #0x5e
+ lsl r6, r6, #2
+_02230D70:
+ bl MaskOfFlagNo
+ ldr r1, [r5, r6]
+ tst r0, r1
+ beq _02230D92
+ ldr r0, [r4]
+ bl MaskOfFlagNo
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ mov r2, #0
+ mvn r2, r2
+ ldr r1, [r5, r3]
+ eor r0, r2
+ and r0, r1
+ str r0, [r5, r3]
+ b _02230D9C
+_02230D92:
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ cmp r0, #6
+ blt _02230D70
+_02230D9C:
+ ldr r1, [r4]
+ cmp r1, #6
+ bge _02230DC4
+ ldr r0, [r5, #4]
+ bl GetPartyMonByIndex
+ mov r3, #0x59
+ str r7, [sp]
+ lsl r3, r3, #2
+ ldr r3, [r5, r3]
+ add r1, r0, #0
+ lsl r3, r3, #0x10
+ ldr r0, [r5, #4]
+ mov r2, #0
+ lsr r3, r3, #0x10
+ bl GetMonEvolution
+ str r0, [sp, #4]
+ cmp r0, #0
+ bne _02230DD0
+_02230DC4:
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ bne _02230D64
+_02230DCE:
+ ldr r0, [sp, #4]
+_02230DD0:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02230DD4
+MOD11_02230DD4: ; 0x02230DD4
+ ldr r1, _02230DDC ; =0x000023F8
+ ldrb r0, [r0, r1]
+ bx lr
+ nop
+_02230DDC: .word 0x000023F8
+
+ thumb_func_start MOD11_02230DE0
+MOD11_02230DE0: ; 0x02230DE0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x30]
+ cmp r0, #0
+ bne _02230DEE
+ bl ErrorHandling
+_02230DEE:
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ mov r2, #5
+ mov r3, #0
+ bl MOD11_0224C474
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02230E00
+MOD11_02230E00: ; 0x02230E00
+ ldr r1, _02230E08 ; =0x00002410
+ ldr r0, [r0, r1]
+ bx lr
+ nop
+_02230E08: .word 0x00002410
+
+ thumb_func_start MOD11_02230E0C
+MOD11_02230E0C: ; 0x02230E0C
+ ldr r2, _02230E14 ; =0x00002410
+ str r1, [r0, r2]
+ bx lr
+ nop
+_02230E14: .word 0x00002410
+
+ thumb_func_start MOD11_02230E18
+MOD11_02230E18: ; 0x02230E18
+ mov r1, #0x6d
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD11_02230E20
+MOD11_02230E20: ; 0x02230E20
+ push {r3, lr}
+ ldr r2, [r0, #0x2c]
+ mov r1, #4
+ tst r1, r2
+ beq _02230E2E
+ mov r0, #1
+ pop {r3, pc}
+_02230E2E:
+ mov r1, #0x6d
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bl FUN_0202502C
+ cmp r0, #0
+ bne _02230E40
+ mov r0, #1
+ pop {r3, pc}
+_02230E40:
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD11_02230E44
+MOD11_02230E44: ; 0x02230E44
+ mov r1, #0x6d
+ lsl r1, r1, #2
+ ldr r3, _02230E50 ; =FUN_02025084
+ ldr r0, [r0, r1]
+ bx r3
+ nop
+_02230E50: .word FUN_02025084
+
+ thumb_func_start MOD11_02230E54
+MOD11_02230E54: ; 0x02230E54
+ push {r3, lr}
+ ldr r2, [r0, #0x2c]
+ mov r1, #4
+ tst r1, r2
+ beq _02230E62
+ mov r0, #1
+ pop {r3, pc}
+_02230E62:
+ mov r1, #0x6d
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bl FUN_02024FF4
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02230E70
+MOD11_02230E70: ; 0x02230E70
+ mov r1, #0x6d
+ lsl r1, r1, #2
+ ldr r3, _02230E7C ; =FUN_02025048
+ ldr r0, [r0, r1]
+ bx r3
+ nop
+_02230E7C: .word FUN_02025048
+
+ thumb_func_start MOD11_02230E80
+MOD11_02230E80: ; 0x02230E80
+ mov r1, #0x71
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD11_02230E88
+MOD11_02230E88: ; 0x02230E88
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r2, [r5, #0x2c]
+ mov r3, #8
+ add r4, r1, #0
+ tst r3, r2
+ bne _02230EA6
+ mov r3, #0x10
+ tst r2, r3
+ beq _02230EAE
+ bl MOD11_02230260
+ mov r1, #1
+ tst r0, r1
+ beq _02230EAE
+_02230EA6:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x78]
+ pop {r3, r4, r5, pc}
+_02230EAE:
+ ldr r1, [r5, #0x2c]
+ mov r0, #2
+ tst r0, r1
+ beq _02230EC0
+ lsl r0, r4, #0x1f
+ lsr r0, r0, #0x1d
+ add r0, r5, r0
+ ldr r0, [r0, #0x78]
+ pop {r3, r4, r5, pc}
+_02230EC0:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x78]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02230EC8
+MOD11_02230EC8: ; 0x02230EC8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ mov r1, #0xa9
+ ldr r2, [r5, #0x2c]
+ lsl r1, r1, #2
+ tst r1, r2
+ bne _02230F66
+ mov r4, #0
+ add r1, r4, #0
+ bl MOD11_0222FFC8
+ cmp r0, #0
+ ble _02230F66
+ add r7, r4, #0
+_02230EE4:
+ add r0, r5, #0
+ mov r1, #0
+ add r2, r4, #0
+ bl MOD11_02230014
+ mov r1, #0xad
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ mov r0, #0x67
+ lsl r0, r0, #2
+ cmp r1, r0
+ bne _02230F58
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ ldr r1, _02230F68 ; =0x00002414
+ ldrb r1, [r5, r1]
+ tst r0, r1
+ beq _02230F58
+ add r0, r5, #0
+ bl MOD11_02230294
+ cmp r0, #0xb
+ bhi _02230F40
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02230F28: ; jump table
+ .short _02230F44 - _02230F28 - 2 ; case 0
+ .short _02230F44 - _02230F28 - 2 ; case 1
+ .short _02230F40 - _02230F28 - 2 ; case 2
+ .short _02230F40 - _02230F28 - 2 ; case 3
+ .short _02230F44 - _02230F28 - 2 ; case 4
+ .short _02230F44 - _02230F28 - 2 ; case 5
+ .short _02230F40 - _02230F28 - 2 ; case 6
+ .short _02230F40 - _02230F28 - 2 ; case 7
+ .short _02230F40 - _02230F28 - 2 ; case 8
+ .short _02230F4A - _02230F28 - 2 ; case 9
+ .short _02230F40 - _02230F28 - 2 ; case 10
+ .short _02230F4A - _02230F28 - 2 ; case 11
+_02230F40:
+ str r7, [sp]
+ b _02230F4E
+_02230F44:
+ mov r0, #1
+ str r0, [sp]
+ b _02230F4E
+_02230F4A:
+ mov r0, #2
+ str r0, [sp]
+_02230F4E:
+ add r0, r6, #0
+ mov r1, #0x70
+ add r2, sp, #0
+ bl SetMonData
+_02230F58:
+ add r0, r5, #0
+ mov r1, #0
+ add r4, r4, #1
+ bl MOD11_0222FFC8
+ cmp r4, r0
+ blt _02230EE4
+_02230F66:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02230F68: .word 0x00002414
+
+ thumb_func_start MOD11_02230F6C
+MOD11_02230F6C: ; 0x02230F6C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, r2, #0
+ add r4, r1, #0
+ bl MaskOfFlagNo
+ ldr r1, _02230F84 ; =0x00002414
+ add r2, r5, r1
+ ldrb r1, [r2, r4]
+ orr r0, r1
+ strb r0, [r2, r4]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02230F84: .word 0x00002414
+
+ thumb_func_start MOD11_02230F88
+MOD11_02230F88: ; 0x02230F88
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _02230FA4
+ add r0, r1, #0
+ bl FUN_020690E4
+ add r4, #0x98
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl FUN_0204C104
+_02230FA4:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02230FA8
+MOD11_02230FA8: ; 0x02230FA8
+ push {r3, r4, lr}
+ sub sp, #4
+ add r3, r0, #0
+ mov r0, #5
+ str r0, [sp]
+ ldr r4, _02230FC8 ; =0x0000241C
+ add r0, r3, #0
+ ldrb r2, [r3, r4]
+ add r4, r4, #2
+ add r0, #0x9c
+ ldrh r3, [r3, r4]
+ ldr r0, [r0]
+ bl FUN_02061028
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_02230FC8: .word 0x0000241C
+
+ thumb_func_start MOD11_02230FCC
+MOD11_02230FCC: ; 0x02230FCC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ mov r1, #1
+ add r4, r0, #0
+ mov r0, #5
+ lsl r1, r1, #0x10
+ bl AllocFromHeap
+ mov r1, #0x87
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #5
+ sub r1, #0x1c
+ bl AllocFromHeap
+ mov r1, #0x22
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ sub r1, r1, #4
+ mov r2, #1
+ ldr r0, _02231224 ; =0x06010000
+ ldr r1, [r4, r1]
+ lsl r2, r2, #0x10
+ bl MIi_CpuCopy32
+ mov r0, #0x22
+ lsl r0, r0, #4
+ ldr r5, [r4, r0]
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_020031FC
+ mov r2, #2
+ add r1, r5, #0
+ lsl r2, r2, #8
+ bl MIi_CpuCopy32
+ mov r0, #0x19
+ lsl r0, r0, #0x16
+ str r0, [sp, #0x24]
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ ldr r0, [r0]
+ bl FUN_02020350
+ ldr r1, [r0, #4]
+ ldr r0, [sp, #0x24]
+ add r0, r0, r1
+ str r0, [sp, #0x24]
+ mov r0, #0x14
+ str r0, [sp, #0x28]
+ lsl r0, r0, #0xb
+ str r0, [sp, #0xc]
+_02231038:
+ mov r0, #0x10
+ mov ip, r0
+ lsl r0, r0, #6
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x28]
+ mov r7, #1
+ sub r0, #0x14
+ lsl r1, r0, #8
+ ldr r0, [sp, #0x24]
+ add r0, r0, r1
+ str r0, [sp, #0x10]
+_0223104E:
+ mov r0, ip
+ sub r0, #0x10
+ ldr r1, [sp, #0x10]
+ lsl r3, r0, #5
+ add r3, r1, r3
+ ldr r5, [sp, #0xc]
+ ldr r1, [sp, #0x14]
+ mov r2, #0
+ add r6, r5, r1
+_02231060:
+ cmp r0, #8
+ bge _02231088
+ add r1, r2, #0
+ tst r1, r7
+ beq _0223107A
+ lsr r1, r2, #0x1f
+ add r1, r2, r1
+ asr r1, r1, #1
+ ldrb r5, [r3, r1]
+ mov r1, #0xf0
+ and r1, r5
+ asr r1, r1, #4
+ b _022310B6
+_0223107A:
+ lsr r1, r2, #0x1f
+ add r1, r2, r1
+ asr r1, r1, #1
+ ldrb r5, [r3, r1]
+ mov r1, #0xf
+ and r1, r5
+ b _022310B6
+_02231088:
+ mov r1, #1
+ tst r1, r2
+ beq _022310A4
+ lsr r1, r2, #0x1f
+ add r1, r2, r1
+ asr r1, r1, #1
+ add r5, r3, r1
+ mov r1, #7
+ lsl r1, r1, #8
+ ldrb r5, [r5, r1]
+ mov r1, #0xf0
+ and r1, r5
+ asr r1, r1, #4
+ b _022310B6
+_022310A4:
+ lsr r1, r2, #0x1f
+ add r1, r2, r1
+ asr r1, r1, #1
+ add r5, r3, r1
+ mov r1, #7
+ lsl r1, r1, #8
+ ldrb r5, [r5, r1]
+ mov r1, #0xf
+ and r1, r5
+_022310B6:
+ cmp r1, #0
+ beq _022310C6
+ mov r5, #0x87
+ lsl r5, r5, #2
+ ldr r5, [r4, r5]
+ add r1, #0x70
+ add r5, r6, r5
+ strb r1, [r2, r5]
+_022310C6:
+ add r2, r2, #1
+ cmp r2, #0x40
+ blt _02231060
+ ldr r0, [sp, #0x14]
+ add r0, #0x40
+ str r0, [sp, #0x14]
+ mov r0, ip
+ add r0, r0, #1
+ mov ip, r0
+ cmp r0, #0x20
+ blt _0223104E
+ mov r1, #2
+ ldr r0, [sp, #0xc]
+ lsl r1, r1, #0xa
+ add r0, r0, r1
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x28]
+ add r0, r0, #1
+ str r0, [sp, #0x28]
+ cmp r0, #0x1c
+ blt _02231038
+ mov r0, #0x19
+ lsl r0, r0, #0x16
+ str r0, [sp, #8]
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ ldr r0, [r0]
+ bl FUN_02020350
+ ldr r1, [r0, #4]
+ ldr r0, [sp, #8]
+ mov r7, #0x26
+ add r0, r0, r1
+ str r0, [sp, #8]
+ mov r3, #0
+ mov r0, #0xf
+ mov r1, #0xf0
+ lsl r7, r7, #0xa
+ mov r2, #1
+_02231116:
+ add r5, r3, #0
+ tst r5, r2
+ beq _0223112C
+ lsr r5, r3, #0x1f
+ add r5, r3, r5
+ asr r6, r5, #1
+ ldr r5, [sp, #8]
+ ldrb r5, [r5, r6]
+ and r5, r1
+ asr r5, r5, #4
+ b _02231138
+_0223112C:
+ lsr r5, r3, #0x1f
+ add r5, r3, r5
+ asr r6, r5, #1
+ ldr r5, [sp, #8]
+ ldrb r5, [r5, r6]
+ and r5, r0
+_02231138:
+ cmp r5, #0
+ beq _02231148
+ mov r6, #0x87
+ lsl r6, r6, #2
+ ldr r6, [r4, r6]
+ add r5, #0x70
+ add r6, r6, r3
+ strb r5, [r6, r7]
+_02231148:
+ mov r5, #2
+ add r3, r3, #1
+ lsl r5, r5, #0xa
+ cmp r3, r5
+ blt _02231116
+ mov r0, #0x1c
+ str r0, [sp, #4]
+ lsl r0, r0, #0xb
+ str r0, [sp, #0x18]
+_0223115A:
+ ldr r0, [sp, #4]
+ mov r2, #0
+ sub r0, #0x1c
+ lsl r1, r0, #8
+ ldr r0, [sp, #8]
+ str r2, [sp, #0x20]
+ add r0, r0, r1
+ str r0, [sp, #0x1c]
+ mov r7, #1
+_0223116C:
+ asr r0, r2, #2
+ lsr r0, r0, #0x1d
+ add r0, r2, r0
+ asr r0, r0, #3
+ lsl r1, r0, #0xa
+ ldr r0, [sp, #0x1c]
+ lsr r5, r2, #0x1f
+ add r6, r0, r1
+ lsl r1, r2, #0x1d
+ sub r1, r1, r5
+ mov r0, #0x1d
+ ror r1, r0
+ add r0, r5, r1
+ lsl r0, r0, #5
+ ldr r5, [sp, #0x18]
+ ldr r1, [sp, #0x20]
+ mov r3, #0
+ add r0, r6, r0
+ add r1, r5, r1
+_02231192:
+ add r5, r3, #0
+ tst r5, r7
+ beq _022311AE
+ lsr r5, r3, #0x1f
+ add r5, r3, r5
+ asr r5, r5, #1
+ add r6, r0, r5
+ mov r5, #1
+ lsl r5, r5, #0xa
+ ldrb r6, [r6, r5]
+ mov r5, #0xf0
+ and r5, r6
+ asr r5, r5, #4
+ b _022311C0
+_022311AE:
+ lsr r5, r3, #0x1f
+ add r5, r3, r5
+ asr r5, r5, #1
+ add r6, r0, r5
+ mov r5, #1
+ lsl r5, r5, #0xa
+ ldrb r6, [r6, r5]
+ mov r5, #0xf
+ and r5, r6
+_022311C0:
+ cmp r5, #0
+ beq _022311D0
+ mov r6, #0x87
+ lsl r6, r6, #2
+ ldr r6, [r4, r6]
+ add r5, #0x70
+ add r6, r1, r6
+ strb r5, [r3, r6]
+_022311D0:
+ add r3, r3, #1
+ cmp r3, #0x40
+ blt _02231192
+ ldr r0, [sp, #0x20]
+ add r2, r2, #1
+ add r0, #0x40
+ str r0, [sp, #0x20]
+ cmp r2, #0x18
+ blt _0223116C
+ mov r3, #2
+ ldr r0, [sp, #0x18]
+ lsl r3, r3, #0xa
+ add r0, r0, r3
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+ cmp r0, #0x20
+ blt _0223115A
+ mov r0, #0
+ mov r2, #0x87
+ str r0, [sp]
+ lsl r2, r2, #2
+ ldr r0, [r4, #4]
+ ldr r2, [r4, r2]
+ mov r1, #3
+ lsl r3, r3, #5
+ bl FUN_02017E14
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD11_0225840C
+ mov r0, #0x63
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD11_0225840C
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02231224: .word 0x06010000
+
+ thumb_func_start MOD11_02231228
+MOD11_02231228: ; 0x02231228
+ mov r1, #0x87
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD11_02231230
+MOD11_02231230: ; 0x02231230
+ mov r1, #0x22
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD11_02231238
+MOD11_02231238: ; 0x02231238
+ ldr r1, _02231240 ; =0x00002424
+ ldr r0, [r0, r1]
+ bx lr
+ nop
+_02231240: .word 0x00002424
+
+ thumb_func_start MOD11_02231244
+MOD11_02231244: ; 0x02231244
+ ldr r1, _0223124C ; =0x00002224
+ add r0, r0, r1
+ bx lr
+ nop
+_0223124C: .word 0x00002224
+
+ thumb_func_start MOD11_02231250
+MOD11_02231250: ; 0x02231250
+ ldr r1, _02231258 ; =0x00002304
+ add r0, r0, r1
+ bx lr
+ nop
+_02231258: .word 0x00002304
+
+ thumb_func_start MOD11_0223125C
+MOD11_0223125C: ; 0x0223125C
+ ldr r1, _02231264 ; =0x00002428
+ ldr r0, [r0, r1]
+ bx lr
+ nop
+_02231264: .word 0x00002428
+
+ thumb_func_start MOD11_02231268
+MOD11_02231268: ; 0x02231268
+ ldr r1, _02231270 ; =0x0000241D
+ ldrb r0, [r0, r1]
+ bx lr
+ nop
+_02231270: .word 0x0000241D
+
+ thumb_func_start MOD11_02231274
+MOD11_02231274: ; 0x02231274
+ ldr r2, _0223127C ; =0x0000241D
+ strb r1, [r0, r2]
+ bx lr
+ nop
+_0223127C: .word 0x0000241D
+
+ thumb_func_start MOD11_02231280
+MOD11_02231280: ; 0x02231280
+ ldr r1, _02231288 ; =0x0000242C
+ ldr r0, [r0, r1]
+ bx lr
+ nop
+_02231288: .word 0x0000242C
+
+ thumb_func_start MOD11_0223128C
+MOD11_0223128C: ; 0x0223128C
+ mov r2, #0x86
+ lsl r2, r2, #2
+ ldr r3, _02231298 ; =FUN_0202A0E8
+ ldr r0, [r0, r2]
+ bx r3
+ nop
+_02231298: .word FUN_0202A0E8
+
+ thumb_func_start MOD11_0223129C
+MOD11_0223129C: ; 0x0223129C
+ mov r1, #0x86
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ ldr r3, _022312A8 ; =FUN_0202A170
+ mov r1, #0x16
+ bx r3
+ .align 2, 0
+_022312A8: .word FUN_0202A170
+
+ thumb_func_start MOD11_022312AC
+MOD11_022312AC: ; 0x022312AC
+ ldr r2, _022312B4 ; =0x0000243C
+ str r1, [r0, r2]
+ bx lr
+ nop
+_022312B4: .word 0x0000243C
+
+ thumb_func_start MOD11_022312B8
+MOD11_022312B8: ; 0x022312B8
+ mov r2, #0x91
+ lsl r2, r2, #6
+ strb r1, [r0, r2]
+ bx lr
+
+ thumb_func_start MOD11_022312C0
+MOD11_022312C0: ; 0x022312C0
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+
+ thumb_func_start MOD11_022312C8
+MOD11_022312C8: ; 0x022312C8
+ mov r2, #0x6f
+ lsl r2, r2, #2
+ str r1, [r0, r2]
+ bx lr
+
+ thumb_func_start MOD11_022312D0
+MOD11_022312D0: ; 0x022312D0
+ mov r2, #0x73
+ lsl r2, r2, #2
+ add r2, r0, r2
+ lsl r0, r1, #4
+ add r0, r2, r0
+ bx lr
+
+ thumb_func_start MOD11_022312DC
+MOD11_022312DC: ; 0x022312DC
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ cmp r5, #4
+ blt _022312EA
+ bl ErrorHandling
+_022312EA:
+ lsl r0, r5, #4
+ ldr r0, [r4, r0]
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022312F0
+MOD11_022312F0: ; 0x022312F0
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r6, r2, #0
+ cmp r4, #4
+ blt _02231300
+ bl ErrorHandling
+_02231300:
+ lsl r0, r4, #4
+ add r0, r5, r0
+ str r6, [r0, #4]
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02231308
+MOD11_02231308: ; 0x02231308
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r6, r2, #0
+ cmp r4, #4
+ blt _02231318
+ bl ErrorHandling
+_02231318:
+ lsl r0, r4, #4
+ add r0, r5, r0
+ str r6, [r0, #8]
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02231320
+MOD11_02231320: ; 0x02231320
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r6, r2, #0
+ cmp r4, #4
+ blt _02231330
+ bl ErrorHandling
+_02231330:
+ lsl r0, r4, #4
+ add r0, r5, r0
+ str r6, [r0, #0xc]
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02231338
+MOD11_02231338: ; 0x02231338
+ ldr r2, _02231340 ; =0x000023F9
+ strb r1, [r0, r2]
+ bx lr
+ nop
+_02231340: .word 0x000023F9
+
+ thumb_func_start MOD11_02231344
+MOD11_02231344: ; 0x02231344
+ ldr r2, _0223134C ; =0x000023F0
+ str r1, [r0, r2]
+ bx lr
+ nop
+_0223134C: .word 0x000023F0
+
+ thumb_func_start MOD11_02231350
+MOD11_02231350: ; 0x02231350
+ ldr r2, _02231358 ; =0x000023F4
+ str r1, [r0, r2]
+ bx lr
+ nop
+_02231358: .word 0x000023F4
+
+ thumb_func_start MOD11_0223135C
+MOD11_0223135C: ; 0x0223135C
+ ldr r2, _02231364 ; =0x000023F0
+ ldr r0, [r0, r2]
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_02231364: .word 0x000023F0
+
+ thumb_func_start MOD11_02231368
+MOD11_02231368: ; 0x02231368
+ ldr r2, _02231370 ; =0x000023F4
+ ldr r0, [r0, r2]
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_02231370: .word 0x000023F4
+
+ thumb_func_start MOD11_02231374
+MOD11_02231374: ; 0x02231374
+ ldr r2, _0223137C ; =0x000023FA
+ strb r1, [r0, r2]
+ bx lr
+ nop
+_0223137C: .word 0x000023FA
+
+ thumb_func_start MOD11_02231380
+MOD11_02231380: ; 0x02231380
+ lsl r1, r1, #2
+ add r0, r0, r1
+ ldr r3, _0223138C ; =MOD11_02253A70
+ ldr r0, [r0, #0x34]
+ bx r3
+ nop
+_0223138C: .word MOD11_02253A70
+
+ thumb_func_start MOD11_02231390
+MOD11_02231390: ; 0x02231390
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x44]
+ mov r7, #0
+ cmp r0, #0
+ ble _022313DC
+ add r5, r6, #0
+_0223139E:
+ ldr r0, [r5, #0x34]
+ bl MOD11_02253A70
+ add r4, r0, #0
+ str r6, [r4, #0xc]
+ ldr r0, [r5, #0x34]
+ bl MOD11_02253A4C
+ str r0, [sp]
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ add r1, r0, #0
+ ldr r0, [sp]
+ bl MOD11_02257F6C
+ add r1, r4, #0
+ add r1, #0x25
+ strb r0, [r1]
+ add r0, r4, #0
+ bl MOD11_02256FB0
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD11_022572AC
+ ldr r0, [r6, #0x44]
+ add r7, r7, #1
+ add r5, r5, #4
+ cmp r7, r0
+ blt _0223139E
+_022313DC:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022313E0
+MOD11_022313E0: ; 0x022313E0
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x44]
+ mov r4, #0
+ cmp r0, #0
+ ble _0223140C
+ add r5, r6, #0
+ mov r7, #1
+_022313F0:
+ ldr r0, [r5, #0x34]
+ bl MOD11_02253A70
+ ldr r1, [r0, #0x28]
+ cmp r1, #0
+ beq _02231402
+ add r1, r7, #0
+ bl MOD11_022572AC
+_02231402:
+ ldr r0, [r6, #0x44]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r0
+ blt _022313F0
+_0223140C:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02231410
+MOD11_02231410: ; 0x02231410
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x44]
+ mov r4, #0
+ cmp r0, #0
+ ble _02231436
+ add r5, r6, #0
+ add r7, r4, #0
+_02231420:
+ ldr r0, [r5, #0x34]
+ bl MOD11_02253A70
+ add r1, r7, #0
+ bl MOD11_022572AC
+ ldr r0, [r6, #0x44]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r0
+ blt _02231420
+_02231436:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02231438
+MOD11_02231438: ; 0x02231438
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x44]
+ mov r4, #0
+ cmp r0, #0
+ ble _0223145A
+ add r5, r6, #0
+_02231446:
+ ldr r0, [r5, #0x34]
+ bl MOD11_02253A70
+ bl MOD11_02257030
+ ldr r0, [r6, #0x44]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r0
+ blt _02231446
+_0223145A:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0223145C
+MOD11_0223145C: ; 0x0223145C
+ ldr r1, _02231464 ; =0x0000241C
+ ldrb r0, [r0, r1]
+ bx lr
+ nop
+_02231464: .word 0x0000241C
+
+ thumb_func_start MOD11_02231468
+MOD11_02231468: ; 0x02231468
+ ldr r2, _02231470 ; =0x0000241C
+ strb r1, [r0, r2]
+ bx lr
+ nop
+_02231470: .word 0x0000241C
+
+ thumb_func_start MOD11_02231474
+MOD11_02231474: ; 0x02231474
+ ldr r1, _02231480 ; =0x000023FB
+ ldrb r0, [r0, r1]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1e
+ bx lr
+ nop
+_02231480: .word 0x000023FB
+
+ thumb_func_start MOD11_02231484
+MOD11_02231484: ; 0x02231484
+ push {r3, r4}
+ ldr r3, _0223149C ; =0x000023FB
+ lsl r1, r1, #0x1e
+ ldrb r4, [r0, r3]
+ mov r2, #0x18
+ lsr r1, r1, #0x1b
+ bic r4, r2
+ orr r1, r4
+ strb r1, [r0, r3]
+ pop {r3, r4}
+ bx lr
+ nop
+_0223149C: .word 0x000023FB
+
+ thumb_func_start MOD11_022314A0
+MOD11_022314A0: ; 0x022314A0
+ ldr r1, _022314AC ; =0x000023FB
+ ldrb r0, [r0, r1]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1d
+ bx lr
+ nop
+_022314AC: .word 0x000023FB
+
+ thumb_func_start MOD11_022314B0
+MOD11_022314B0: ; 0x022314B0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ cmp r4, #0xf
+ blo _022314BE
+ bl ErrorHandling
+_022314BE:
+ ldr r1, _022314D0 ; =0x000023FB
+ mov r0, #0xe0
+ ldrb r2, [r5, r1]
+ bic r2, r0
+ lsl r0, r4, #0x1d
+ lsr r0, r0, #0x18
+ orr r0, r2
+ strb r0, [r5, r1]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022314D0: .word 0x000023FB
+
+ thumb_func_start MOD11_022314D4
+MOD11_022314D4: ; 0x022314D4
+ ldr r2, _022314DC ; =0x00002438
+ str r1, [r0, r2]
+ bx lr
+ nop
+_022314DC: .word 0x00002438
+
+ thumb_func_start MOD11_022314E0
+MOD11_022314E0: ; 0x022314E0
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x44]
+ add r7, r1, #0
+ mov r4, #0
+ cmp r0, #0
+ ble _02231502
+ add r5, r6, #0
+_022314F0:
+ ldr r0, [r5, #0x34]
+ bl MOD11_02253A4C
+ strb r4, [r7, r0]
+ ldr r0, [r6, #0x44]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r0
+ blt _022314F0
+_02231502:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02231504
+MOD11_02231504: ; 0x02231504
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r6, r1, #0
+ mov r1, #0
+ mov r0, #0xff
+_0223150E:
+ strb r0, [r6, r1]
+ add r1, r1, #1
+ cmp r1, #4
+ blt _0223150E
+ ldr r0, [r7, #0x44]
+ mov r5, #0
+ cmp r0, #0
+ ble _02231532
+ add r4, r7, #0
+_02231520:
+ ldr r0, [r4, #0x34]
+ bl MOD11_02253A4C
+ strb r0, [r6, r5]
+ ldr r0, [r7, #0x44]
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, r0
+ blt _02231520
+_02231532:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02231534
+MOD11_02231534: ; 0x02231534
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r0, #0
+ add r6, r1, #0
+ add r5, r0, #0
+_0223153E:
+ add r0, r0, #1
+ stmia r1!, {r5}
+ cmp r0, #4
+ blt _0223153E
+ ldr r0, [r7, #0x44]
+ cmp r0, #0
+ ble _02231560
+ add r4, r7, #0
+_0223154E:
+ ldr r0, [r4, #0x34]
+ bl MOD11_02253A64
+ stmia r6!, {r0}
+ ldr r0, [r7, #0x44]
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, r0
+ blt _0223154E
+_02231560:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02231564
+MOD11_02231564: ; 0x02231564
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x44]
+ add r7, r1, #0
+ mov r4, #0
+ cmp r0, #0
+ ble _0223158A
+ add r5, r6, #0
+_02231574:
+ ldr r0, [r5, #0x34]
+ bl MOD11_02253A70
+ add r1, r7, #0
+ bl MOD11_02257264
+ ldr r0, [r6, #0x44]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r0
+ blt _02231574
+_0223158A:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0223158C
+MOD11_0223158C: ; 0x0223158C
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ add r5, r0, #0
+ add r0, r6, #0
+ bl FUN_020239F4
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ add r0, r5, #0
+ bl FUN_02069AEC
+ ldr r1, _022315BC ; =0x0225DC1C
+ lsl r0, r0, #2
+ ldrb r1, [r1, r4]
+ add r4, r1, #0
+ mul r4, r0
+ add r0, r6, #0
+ bl FUN_02023A10
+ cmp r4, r0
+ bls _022315B8
+ add r4, r0, #0
+_022315B8:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_022315BC: .word 0x0225DC1C
+
+ thumb_func_start MOD11_022315C0
+MOD11_022315C0: ; 0x022315C0
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ add r5, r0, #0
+ lsl r0, r6, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x34]
+ bl MOD11_02253A4C
+ add r4, r0, #0
+ ldr r1, [r5, #0x30]
+ add r0, r5, #0
+ mov r2, #2
+ add r3, r6, #0
+ bl MOD11_0224C474
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02230014
+ add r6, r0, #0
+ ldr r0, [r5, #0x2c]
+ mov r1, #0x84
+ tst r1, r0
+ bne _02231606
+ mov r1, #1
+ tst r1, r4
+ bne _022315FE
+ sub r0, #0x4a
+ cmp r0, #1
+ bhi _02231606
+_022315FE:
+ ldr r0, [r5, #0x60]
+ add r1, r6, #0
+ bl FUN_0202498C
+_02231606:
+ mov r0, #1
+ tst r0, r4
+ bne _02231626
+ add r0, r6, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl GetMonData
+ mov r1, #0x67
+ lsl r1, r1, #2
+ cmp r0, r1
+ bne _02231626
+ ldr r0, [r5, #0x60]
+ add r1, r6, #0
+ bl FUN_02024AF0
+_02231626:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02231628
+MOD11_02231628: ; 0x02231628
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x34]
+ bl MOD11_02253A4C
+ ldr r2, [r5, #0x2c]
+ mov r1, #0x84
+ tst r1, r2
+ bne _02231664
+ mov r1, #1
+ tst r0, r1
+ beq _02231664
+ ldr r1, [r5, #0x30]
+ add r0, r5, #0
+ mov r2, #2
+ add r3, r4, #0
+ bl MOD11_0224C474
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02230014
+ add r1, r0, #0
+ ldr r0, [r5, #0x60]
+ bl FUN_02024AF0
+_02231664:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02231668
+MOD11_02231668: ; 0x02231668
+ ldr r3, _02231674 ; =FUN_02024594
+ lsl r1, r1, #0x10
+ ldr r0, [r0, #0x60]
+ lsr r1, r1, #0x10
+ bx r3
+ nop
+_02231674: .word FUN_02024594
+
+ thumb_func_start MOD11_02231678
+MOD11_02231678: ; 0x02231678
+ ldr r0, _02231680 ; =0x04000050
+ mov r1, #0
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_02231680: .word 0x04000050
+
+ thumb_func_start MOD11_02231684
+MOD11_02231684: ; 0x02231684
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r5, r0, #0
+ mov r1, #0
+ str r2, [sp, #0xc]
+ add r7, r3, #0
+ bl MOD11_0222FF6C
+ add r6, r0, #0
+ ldr r1, [r5, #0x2c]
+ mov r0, #0x80
+ tst r0, r1
+ beq _0223174C
+ ldr r0, _02231780 ; =0x00002710
+ cmp r4, r0
+ bne _022316F6
+ cmp r7, #0x64
+ bne _022316BC
+ ldr r0, [sp, #0xc]
+ mov r1, #0x34
+ add r5, #0xd0
+ mul r1, r0
+ add r0, r5, r1
+ mov r1, #5
+ bl FUN_020137D4
+ b _022316CC
+_022316BC:
+ ldr r0, [sp, #0xc]
+ mov r1, #0x34
+ add r5, #0xd8
+ mul r1, r0
+ add r0, r5, r1
+ mov r1, #5
+ bl FUN_020137D4
+_022316CC:
+ add r4, r0, #0
+ add r0, r6, #0
+ mov r1, #0xff
+ bl FUN_02019620
+ mov r3, #0
+ ldr r0, [sp, #0x28]
+ str r3, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02231784 ; =MOD11_0223220C
+ mov r1, #1
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ bl FUN_0201BD84
+ add r5, r0, #0
+ add r0, r4, #0
+ bl FUN_02021A20
+ b _02231778
+_022316F6:
+ cmp r7, #0x64
+ bne _02231702
+ lsl r0, r4, #1
+ add r0, r4, r0
+ add r4, r0, #1
+ b _02231708
+_02231702:
+ lsl r0, r4, #1
+ add r0, r4, r0
+ add r4, r0, #2
+_02231708:
+ ldr r2, _02231788 ; =0x0000022B
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #5
+ bl NewMsgDataFromNarc
+ add r1, r4, #0
+ add r7, r0, #0
+ bl FUN_0200A914
+ add r4, r0, #0
+ add r0, r6, #0
+ mov r1, #0xff
+ bl FUN_02019620
+ mov r3, #0
+ ldr r0, [sp, #0x28]
+ str r3, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02231784 ; =MOD11_0223220C
+ mov r1, #1
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ bl FUN_0201BD84
+ add r5, r0, #0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r7, #0
+ bl DestroyMsgData
+ b _02231778
+_0223174C:
+ ldr r2, [r5, #0x18]
+ add r0, r4, #0
+ add r1, r7, #0
+ mov r3, #5
+ bl FUN_0206AD4C
+ add r0, r6, #0
+ mov r1, #0xff
+ bl FUN_02019620
+ mov r3, #0
+ ldr r0, [sp, #0x28]
+ str r3, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02231784 ; =MOD11_0223220C
+ mov r1, #1
+ str r0, [sp, #8]
+ ldr r2, [r5, #0x18]
+ add r0, r6, #0
+ bl FUN_0201BD84
+ add r5, r0, #0
+_02231778:
+ lsl r0, r5, #0x18
+ lsr r0, r0, #0x18
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02231780: .word 0x00002710
+_02231784: .word MOD11_0223220C
+_02231788: .word 0x0000022B
+
+ thumb_func_start MOD11_0223178C
+MOD11_0223178C: ; 0x0223178C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ str r1, [sp, #0xc]
+ add r5, r0, #0
+ add r4, r2, #0
+ mov r1, #0
+ add r6, r3, #0
+ bl MOD11_0222FF6C
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02231850
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02231A4C
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0
+ add r2, r4, #0
+ bl MOD11_022321EC
+ add r0, r7, #0
+ mov r1, #0xff
+ bl FUN_02019620
+ mov r3, #0
+ str r3, [sp]
+ ldr r0, _022317DC ; =MOD11_0223220C
+ str r6, [sp, #4]
+ str r0, [sp, #8]
+ ldr r2, [r5, #0x18]
+ add r0, r7, #0
+ mov r1, #1
+ bl FUN_0201BD84
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022317DC: .word MOD11_0223220C
+
+ thumb_func_start MOD11_022317E0
+MOD11_022317E0: ; 0x022317E0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r3, #0
+ add r4, r1, #0
+ add r5, r0, #0
+ add r1, r7, #0
+ add r6, r2, #0
+ bl MOD11_02231850
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_02231A4C
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD11_022321EC
+ ldr r1, [sp, #0x28]
+ mov r0, #1
+ tst r0, r1
+ beq _02231814
+ add r0, r4, #0
+ mov r1, #0xff
+ bl FUN_02019620
+_02231814:
+ ldr r1, [sp, #0x28]
+ mov r0, #2
+ tst r0, r1
+ beq _0223182C
+ mov r0, #0
+ ldr r1, [r5, #0x18]
+ add r2, r0, #0
+ bl FUN_02002E14
+ ldr r1, [sp, #0x2c]
+ sub r3, r1, r0
+ b _0223182E
+_0223182C:
+ mov r3, #0
+_0223182E:
+ ldr r0, [sp, #0x24]
+ mov r1, #0
+ str r0, [sp]
+ ldr r0, [sp, #0x30]
+ str r0, [sp, #4]
+ ldr r0, _0223184C ; =MOD11_0223220C
+ str r0, [sp, #8]
+ add r0, r4, #0
+ ldr r4, [sp, #0x20]
+ ldr r2, [r5, #0x18]
+ add r3, r4, r3
+ bl FUN_0201BD84
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223184C: .word MOD11_0223220C
+
+ thumb_func_start MOD11_02231850
+MOD11_02231850: ; 0x02231850
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r0, #0
+ bl MOD11_0222FF74
+ add r5, r0, #0
+ ldrb r0, [r4, #1]
+ mov r1, #0x80
+ tst r1, r0
+ bne _02231876
+ mov r1, #0x40
+ tst r1, r0
+ beq _02231880
+ ldr r1, [r4, #0x20]
+ add r0, r6, #0
+ bl MOD11_02230270
+ cmp r0, #0
+ bne _02231878
+_02231876:
+ b _02231A4A
+_02231878:
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_02231880:
+ mov r1, #0x3f
+ and r0, r1
+ cmp r0, #0x3c
+ bls _0223188A
+ b _02231A46
+_0223188A:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02231896: ; jump table
+ .short _02231A4A - _02231896 - 2 ; case 0
+ .short _02231910 - _02231896 - 2 ; case 1
+ .short _02231928 - _02231896 - 2 ; case 2
+ .short _02231A4A - _02231896 - 2 ; case 3
+ .short _02231A4A - _02231896 - 2 ; case 4
+ .short _02231A4A - _02231896 - 2 ; case 5
+ .short _02231A4A - _02231896 - 2 ; case 6
+ .short _02231A4A - _02231896 - 2 ; case 7
+ .short _02231A4A - _02231896 - 2 ; case 8
+ .short _0223198A - _02231896 - 2 ; case 9
+ .short _02231928 - _02231896 - 2 ; case 10
+ .short _02231928 - _02231896 - 2 ; case 11
+ .short _02231928 - _02231896 - 2 ; case 12
+ .short _02231928 - _02231896 - 2 ; case 13
+ .short _02231928 - _02231896 - 2 ; case 14
+ .short _02231928 - _02231896 - 2 ; case 15
+ .short _02231928 - _02231896 - 2 ; case 16
+ .short _02231928 - _02231896 - 2 ; case 17
+ .short _02231928 - _02231896 - 2 ; case 18
+ .short _02231928 - _02231896 - 2 ; case 19
+ .short _0223194E - _02231896 - 2 ; case 20
+ .short _02231966 - _02231896 - 2 ; case 21
+ .short _02231A4A - _02231896 - 2 ; case 22
+ .short _02231966 - _02231896 - 2 ; case 23
+ .short _02231A4A - _02231896 - 2 ; case 24
+ .short _02231A4A - _02231896 - 2 ; case 25
+ .short _02231A4A - _02231896 - 2 ; case 26
+ .short _02231A4A - _02231896 - 2 ; case 27
+ .short _02231A4A - _02231896 - 2 ; case 28
+ .short _02231A4A - _02231896 - 2 ; case 29
+ .short _02231A4A - _02231896 - 2 ; case 30
+ .short _0223198A - _02231896 - 2 ; case 31
+ .short _0223198A - _02231896 - 2 ; case 32
+ .short _0223198A - _02231896 - 2 ; case 33
+ .short _02231928 - _02231896 - 2 ; case 34
+ .short _02231928 - _02231896 - 2 ; case 35
+ .short _022319E8 - _02231896 - 2 ; case 36
+ .short _02231928 - _02231896 - 2 ; case 37
+ .short _02231928 - _02231896 - 2 ; case 38
+ .short _02231928 - _02231896 - 2 ; case 39
+ .short _02231928 - _02231896 - 2 ; case 40
+ .short _02231928 - _02231896 - 2 ; case 41
+ .short _02231928 - _02231896 - 2 ; case 42
+ .short _022319E8 - _02231896 - 2 ; case 43
+ .short _02231928 - _02231896 - 2 ; case 44
+ .short _02231928 - _02231896 - 2 ; case 45
+ .short _02231928 - _02231896 - 2 ; case 46
+ .short _02231928 - _02231896 - 2 ; case 47
+ .short _02231966 - _02231896 - 2 ; case 48
+ .short _02231A4A - _02231896 - 2 ; case 49
+ .short _02231A4A - _02231896 - 2 ; case 50
+ .short _02231A4A - _02231896 - 2 ; case 51
+ .short _022319E8 - _02231896 - 2 ; case 52
+ .short _022319E8 - _02231896 - 2 ; case 53
+ .short _022319E8 - _02231896 - 2 ; case 54
+ .short _022319E8 - _02231896 - 2 ; case 55
+ .short _02231A4A - _02231896 - 2 ; case 56
+ .short _02231A4A - _02231896 - 2 ; case 57
+ .short _02231A4A - _02231896 - 2 ; case 58
+ .short _02231A4A - _02231896 - 2 ; case 59
+ .short _02231A4A - _02231896 - 2 ; case 60
+_02231910:
+ ldr r1, [r4, #4]
+ add r0, r6, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02231944
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_02231928:
+ ldr r1, [r4, #4]
+ add r0, r6, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02231944
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ mov r0, #1
+ tst r0, r5
+ bne _02231946
+_02231944:
+ b _02231A4A
+_02231946:
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_0223194E:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02231A4A
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_02231966:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02231A4A
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ mov r0, #1
+ tst r0, r5
+ beq _02231A4A
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_0223198A:
+ ldr r1, [r4, #4]
+ add r0, r6, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _022319C4
+ ldrh r0, [r4, #2]
+ add r0, r0, #3
+ strh r0, [r4, #2]
+ mov r0, #1
+ tst r0, r5
+ beq _022319AC
+ ldrh r0, [r4, #2]
+ add r0, r0, #2
+ strh r0, [r4, #2]
+_022319AC:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02231A4A
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_022319C4:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02231A4A
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ mov r0, #1
+ tst r0, r5
+ beq _02231A4A
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_022319E8:
+ ldr r1, [r4, #4]
+ add r0, r6, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02231A22
+ ldrh r0, [r4, #2]
+ add r0, r0, #3
+ strh r0, [r4, #2]
+ mov r0, #1
+ tst r0, r5
+ beq _02231A0A
+ ldrh r0, [r4, #2]
+ add r0, r0, #2
+ strh r0, [r4, #2]
+_02231A0A:
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02231A4A
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_02231A22:
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02231A4A
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ mov r0, #1
+ tst r0, r5
+ beq _02231A4A
+ ldrh r0, [r4, #2]
+ add r0, r0, #1
+ strh r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_02231A46:
+ bl ErrorHandling
+_02231A4A:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02231A4C
+MOD11_02231A4C: ; 0x02231A4C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r2, [r4, #1]
+ mov r1, #0x3f
+ add r5, r0, #0
+ and r1, r2
+ cmp r1, #0x3c
+ bls _02231A5E
+ b _022320C2
+_02231A5E:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02231A6A: ; jump table
+ .short _022320C6 - _02231A6A - 2 ; case 0
+ .short _022320C6 - _02231A6A - 2 ; case 1
+ .short _02231AE4 - _02231A6A - 2 ; case 2
+ .short _02231AEE - _02231A6A - 2 ; case 3
+ .short _02231AF8 - _02231A6A - 2 ; case 4
+ .short _02231B02 - _02231A6A - 2 ; case 5
+ .short _02231B0C - _02231A6A - 2 ; case 6
+ .short _02231B16 - _02231A6A - 2 ; case 7
+ .short _02231B22 - _02231A6A - 2 ; case 8
+ .short _02231B2C - _02231A6A - 2 ; case 9
+ .short _02231B40 - _02231A6A - 2 ; case 10
+ .short _02231B54 - _02231A6A - 2 ; case 11
+ .short _02231B68 - _02231A6A - 2 ; case 12
+ .short _02231B7C - _02231A6A - 2 ; case 13
+ .short _02231B90 - _02231A6A - 2 ; case 14
+ .short _02231BA4 - _02231A6A - 2 ; case 15
+ .short _02231BB8 - _02231A6A - 2 ; case 16
+ .short _02231BCC - _02231A6A - 2 ; case 17
+ .short _02231BE0 - _02231A6A - 2 ; case 18
+ .short _02231BF4 - _02231A6A - 2 ; case 19
+ .short _02231AEE - _02231A6A - 2 ; case 20
+ .short _02231C08 - _02231A6A - 2 ; case 21
+ .short _02231C1C - _02231A6A - 2 ; case 22
+ .short _02231C30 - _02231A6A - 2 ; case 23
+ .short _02231C44 - _02231A6A - 2 ; case 24
+ .short _02231C58 - _02231A6A - 2 ; case 25
+ .short _02231C6C - _02231A6A - 2 ; case 26
+ .short _02231C80 - _02231A6A - 2 ; case 27
+ .short _02231C94 - _02231A6A - 2 ; case 28
+ .short _02231CA8 - _02231A6A - 2 ; case 29
+ .short _02231CBC - _02231A6A - 2 ; case 30
+ .short _02231CD0 - _02231A6A - 2 ; case 31
+ .short _02231CEE - _02231A6A - 2 ; case 32
+ .short _02231D0C - _02231A6A - 2 ; case 33
+ .short _02231D2A - _02231A6A - 2 ; case 34
+ .short _02231D48 - _02231A6A - 2 ; case 35
+ .short _02231D66 - _02231A6A - 2 ; case 36
+ .short _02231D84 - _02231A6A - 2 ; case 37
+ .short _02231DA2 - _02231A6A - 2 ; case 38
+ .short _02231DC0 - _02231A6A - 2 ; case 39
+ .short _02231DDE - _02231A6A - 2 ; case 40
+ .short _02231DFC - _02231A6A - 2 ; case 41
+ .short _02231E1A - _02231A6A - 2 ; case 42
+ .short _02231E38 - _02231A6A - 2 ; case 43
+ .short _02231E56 - _02231A6A - 2 ; case 44
+ .short _02231E74 - _02231A6A - 2 ; case 45
+ .short _02231E92 - _02231A6A - 2 ; case 46
+ .short _02231EB0 - _02231A6A - 2 ; case 47
+ .short _02231ECE - _02231A6A - 2 ; case 48
+ .short _02231EEC - _02231A6A - 2 ; case 49
+ .short _02231F0A - _02231A6A - 2 ; case 50
+ .short _02231F28 - _02231A6A - 2 ; case 51
+ .short _02231F46 - _02231A6A - 2 ; case 52
+ .short _02231F6E - _02231A6A - 2 ; case 53
+ .short _02231F96 - _02231A6A - 2 ; case 54
+ .short _02231FBE - _02231A6A - 2 ; case 55
+ .short _02231FE6 - _02231A6A - 2 ; case 56
+ .short _0223200E - _02231A6A - 2 ; case 57
+ .short _02232036 - _02231A6A - 2 ; case 58
+ .short _0223205E - _02231A6A - 2 ; case 59
+ .short _02232086 - _02231A6A - 2 ; case 60
+_02231AE4:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_02231AEE:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320EC
+ pop {r3, r4, r5, pc}
+_02231AF8:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_02232160
+ pop {r3, r4, r5, pc}
+_02231B02:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320F8
+ pop {r3, r4, r5, pc}
+_02231B0C:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_02232104
+ pop {r3, r4, r5, pc}
+_02231B16:
+ ldr r2, [r4, #4]
+ ldr r3, [r4, #0x1c]
+ mov r1, #0
+ bl MOD11_0223211C
+ pop {r3, r4, r5, pc}
+_02231B22:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321C4
+ pop {r3, r4, r5, pc}
+_02231B2C:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_02231B40:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320EC
+ pop {r3, r4, r5, pc}
+_02231B54:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232154
+ pop {r3, r4, r5, pc}
+_02231B68:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232160
+ pop {r3, r4, r5, pc}
+_02231B7C:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232148
+ pop {r3, r4, r5, pc}
+_02231B90:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232178
+ pop {r3, r4, r5, pc}
+_02231BA4:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320F8
+ pop {r3, r4, r5, pc}
+_02231BB8:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223219C
+ pop {r3, r4, r5, pc}
+_02231BCC:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232104
+ pop {r3, r4, r5, pc}
+_02231BE0:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022321C4
+ pop {r3, r4, r5, pc}
+_02231BF4:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022321DC
+ pop {r3, r4, r5, pc}
+_02231C08:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320EC
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_02231C1C:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320EC
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320EC
+ pop {r3, r4, r5, pc}
+_02231C30:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_02232154
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_02231C44:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320F8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320EC
+ pop {r3, r4, r5, pc}
+_02231C58:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_02232104
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232104
+ pop {r3, r4, r5, pc}
+_02231C6C:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321C4
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022321C4
+ pop {r3, r4, r5, pc}
+_02231C80:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321C4
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_02231C94:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321C4
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320F8
+ pop {r3, r4, r5, pc}
+_02231CA8:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321C4
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232104
+ pop {r3, r4, r5, pc}
+_02231CBC:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321AC
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022321C4
+ pop {r3, r4, r5, pc}
+_02231CD0:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320C8
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320EC
+ pop {r3, r4, r5, pc}
+_02231CEE:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320C8
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_02232154
+ pop {r3, r4, r5, pc}
+_02231D0C:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320C8
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320F8
+ pop {r3, r4, r5, pc}
+_02231D2A:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320EC
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320EC
+ pop {r3, r4, r5, pc}
+_02231D48:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320EC
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_02232104
+ pop {r3, r4, r5, pc}
+_02231D66:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232154
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_02231D84:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232154
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320EC
+ pop {r3, r4, r5, pc}
+_02231DA2:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232154
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320F8
+ pop {r3, r4, r5, pc}
+_02231DC0:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232154
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_02232160
+ pop {r3, r4, r5, pc}
+_02231DDE:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232154
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_02232148
+ pop {r3, r4, r5, pc}
+_02231DFC:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232154
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_0223216C
+ pop {r3, r4, r5, pc}
+_02231E1A:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232154
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_02232104
+ pop {r3, r4, r5, pc}
+_02231E38:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320F8
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_02231E56:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320F8
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320EC
+ pop {r3, r4, r5, pc}
+_02231E74:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320F8
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_02232160
+ pop {r3, r4, r5, pc}
+_02231E92:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320F8
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_0223216C
+ pop {r3, r4, r5, pc}
+_02231EB0:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022321DC
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022321DC
+ pop {r3, r4, r5, pc}
+_02231ECE:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320F8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320C8
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022321A0
+ pop {r3, r4, r5, pc}
+_02231EEC:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321C4
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320C8
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_02231F0A:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321AC
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022321C4
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_02231F28:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321AC
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022321C4
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320F8
+ pop {r3, r4, r5, pc}
+_02231F46:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232154
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320C8
+ ldr r2, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_022320EC
+ pop {r3, r4, r5, pc}
+_02231F6E:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232154
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320C8
+ ldr r2, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_02232154
+ pop {r3, r4, r5, pc}
+_02231F96:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02232154
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320C8
+ ldr r2, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_02232160
+ pop {r3, r4, r5, pc}
+_02231FBE:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022320C8
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320F8
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320C8
+ ldr r2, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_022320F8
+ pop {r3, r4, r5, pc}
+_02231FE6:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321C4
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022320C8
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022321C4
+ ldr r2, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_0223200E:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321AC
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022321C4
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320C8
+ ldr r2, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_02232036:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321AC
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022321C4
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320C8
+ ldr r2, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_022321C4
+ pop {r3, r4, r5, pc}
+_0223205E:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321AC
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022321C4
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022321AC
+ ldr r2, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_022321C4
+ pop {r3, r4, r5, pc}
+_02232086:
+ ldr r2, [r4, #4]
+ mov r1, #0
+ bl MOD11_022321AC
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022321C4
+ ldr r2, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_022320C8
+ ldr r2, [r4, #0x10]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_022321AC
+ ldr r2, [r4, #0x14]
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD11_022321C4
+ ldr r2, [r4, #0x18]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD11_022320C8
+ pop {r3, r4, r5, pc}
+_022320C2:
+ bl ErrorHandling
+_022320C6:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022320C8
+MOD11_022320C8: ; 0x022320C8
+ push {r3, r4, r5, lr}
+ mov r3, #0xff
+ lsl r3, r3, #8
+ add r4, r1, #0
+ lsl r1, r2, #0x18
+ and r2, r3
+ add r5, r0, #0
+ lsr r1, r1, #0x18
+ asr r2, r2, #8
+ bl MOD11_02230014
+ add r2, r0, #0
+ ldr r0, [r5, #0x14]
+ add r1, r4, #0
+ bl FUN_0200ACF8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022320EC
+MOD11_022320EC: ; 0x022320EC
+ ldr r3, _022320F4 ; =FUN_0200AD5C
+ ldr r0, [r0, #0x14]
+ bx r3
+ nop
+_022320F4: .word FUN_0200AD5C
+
+ thumb_func_start MOD11_022320F8
+MOD11_022320F8: ; 0x022320F8
+ ldr r3, _02232100 ; =FUN_0200AE38
+ ldr r0, [r0, #0x14]
+ bx r3
+ nop
+_02232100: .word FUN_0200AE38
+
+ thumb_func_start MOD11_02232104
+MOD11_02232104: ; 0x02232104
+ push {r3, lr}
+ sub sp, #8
+ mov r3, #0
+ str r3, [sp]
+ mov r3, #1
+ str r3, [sp, #4]
+ ldr r0, [r0, #0x14]
+ mov r3, #5
+ bl FUN_0200AD38
+ add sp, #8
+ pop {r3, pc}
+
+ thumb_func_start MOD11_0223211C
+MOD11_0223211C: ; 0x0223211C
+ push {r4, lr}
+ sub sp, #8
+ cmp r3, #0
+ beq _02232134
+ mov r4, #1
+ str r4, [sp]
+ str r4, [sp, #4]
+ ldr r0, [r0, #0x14]
+ bl FUN_0200AD38
+ add sp, #8
+ pop {r4, pc}
+_02232134:
+ mov r3, #1
+ str r3, [sp]
+ str r3, [sp, #4]
+ ldr r0, [r0, #0x14]
+ mov r3, #5
+ bl FUN_0200AD38
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02232148
+MOD11_02232148: ; 0x02232148
+ ldr r3, _02232150 ; =FUN_0200AF18
+ ldr r0, [r0, #0x14]
+ bx r3
+ nop
+_02232150: .word FUN_0200AF18
+
+ thumb_func_start MOD11_02232154
+MOD11_02232154: ; 0x02232154
+ ldr r3, _0223215C ; =FUN_0200ADCC
+ ldr r0, [r0, #0x14]
+ bx r3
+ nop
+_0223215C: .word FUN_0200ADCC
+
+ thumb_func_start MOD11_02232160
+MOD11_02232160: ; 0x02232160
+ ldr r3, _02232168 ; =FUN_0200AF50
+ ldr r0, [r0, #0x14]
+ bx r3
+ nop
+_02232168: .word FUN_0200AF50
+
+ thumb_func_start MOD11_0223216C
+MOD11_0223216C: ; 0x0223216C
+ ldr r3, _02232174 ; =FUN_0200AF88
+ ldr r0, [r0, #0x14]
+ bx r3
+ nop
+_02232174: .word FUN_0200AF88
+
+ thumb_func_start MOD11_02232178
+MOD11_02232178: ; 0x02232178
+ push {r3, r4, r5, lr}
+ mov r3, #0xff
+ lsl r3, r3, #8
+ add r4, r1, #0
+ lsl r1, r2, #0x18
+ and r2, r3
+ add r5, r0, #0
+ lsr r1, r1, #0x18
+ asr r2, r2, #8
+ bl MOD11_02230014
+ add r2, r0, #0
+ ldr r0, [r5, #0x14]
+ add r1, r4, #0
+ bl FUN_0200AC60
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223219C
+MOD11_0223219C: ; 0x0223219C
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_022321A0
+MOD11_022321A0: ; 0x022321A0
+ ldr r3, _022321A8 ; =FUN_0200AFBC
+ ldr r0, [r0, #0x14]
+ bx r3
+ nop
+_022321A8: .word FUN_0200AFBC
+
+ thumb_func_start MOD11_022321AC
+MOD11_022321AC: ; 0x022321AC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r1, r2, #0
+ bl MOD11_02230188
+ add r2, r0, #0
+ ldr r0, [r5, #0x14]
+ add r1, r4, #0
+ bl FUN_0200B0D4
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022321C4
+MOD11_022321C4: ; 0x022321C4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r1, r2, #0
+ bl MOD11_02230188
+ add r2, r0, #0
+ ldr r0, [r5, #0x14]
+ add r1, r4, #0
+ bl FUN_0200B144
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022321DC
+MOD11_022321DC: ; 0x022321DC
+ push {r4, lr}
+ add r4, r0, #0
+ add r3, r2, #0
+ ldr r0, [r4, #0x14]
+ ldr r2, [r4, #0x64]
+ bl FUN_0200B410
+ pop {r4, pc}
+
+ thumb_func_start MOD11_022321EC
+MOD11_022321EC: ; 0x022321EC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ ldrh r1, [r2, #2]
+ bl FUN_0200A914
+ add r4, r0, #0
+ ldr r0, [r5, #0x14]
+ ldr r1, [r5, #0x18]
+ add r2, r4, #0
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0223220C
+MOD11_0223220C: ; 0x0223220C
+ push {r4, lr}
+ mov r4, #0
+ cmp r1, #5
+ bhi _02232252
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02232220: ; jump table
+ .short _02232252 - _02232220 - 2 ; case 0
+ .short _0223222C - _02232220 - 2 ; case 1
+ .short _02232234 - _02232220 - 2 ; case 2
+ .short _0223223C - _02232220 - 2 ; case 3
+ .short _02232244 - _02232220 - 2 ; case 4
+ .short _0223224C - _02232220 - 2 ; case 5
+_0223222C:
+ bl FUN_02005514
+ add r4, r0, #0
+ b _02232252
+_02232234:
+ bl FUN_02005CBC
+ add r4, r0, #0
+ b _02232252
+_0223223C:
+ ldr r0, _02232258 ; =0x00000484
+ bl FUN_02005C28
+ b _02232252
+_02232244:
+ ldr r0, _0223225C ; =0x000005E6
+ bl FUN_020054C8
+ b _02232252
+_0223224C:
+ ldr r0, _02232260 ; =0x00000483
+ bl FUN_02005C28
+_02232252:
+ add r0, r4, #0
+ pop {r4, pc}
+ nop
+_02232258: .word 0x00000484
+_0223225C: .word 0x000005E6
+_02232260: .word 0x00000483
+
+ thumb_func_start MOD11_02232264
+MOD11_02232264: ; 0x02232264
+ push {r3, lr}
+ add r2, r1, #0
+ add r2, #0xb4
+ ldr r2, [r2]
+ lsl r2, r2, #2
+ add r3, r1, r2
+ mov r2, #0x27
+ lsl r2, r2, #8
+ ldr r2, [r3, r2]
+ lsl r3, r2, #2
+ ldr r2, _02232280 ; =0x0225DDE4
+ ldr r2, [r2, r3]
+ blx r2
+ pop {r3, pc}
+ .align 2, 0
+_02232280: .word 0x0225DDE4
+
+ thumb_func_start MOD11_02232284
+MOD11_02232284: ; 0x02232284
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD11_022548F0
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0223229C
+MOD11_0223229C: ; 0x0223229C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ cmp r0, #0
+ beq _022322C2
+ cmp r0, #3
+ beq _0223230E
+ cmp r0, #4
+ beq _022322E0
+_022322C2:
+ mov r5, #0
+ cmp r6, #0
+ ble _0223230E
+_022322C8:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02254908
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022315C0
+ add r5, r5, #1
+ cmp r5, r6
+ blt _022322C8
+ b _0223230E
+_022322E0:
+ mov r5, #0
+ cmp r6, #0
+ ble _0223230E
+ mov r7, #1
+_022322E8:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232314 ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ beq _02232308
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02254908
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022315C0
+_02232308:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _022322E8
+_0223230E:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02232314: .word 0x00000195
+
+ thumb_func_start MOD11_02232318
+MOD11_02232318: ; 0x02232318
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r4, r0, #0
+ bl MOD11_0222FF84
+ add r7, r0, #0
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ cmp r0, #6
+ bhi _02232350
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02232342: ; jump table
+ .short _02232350 - _02232342 - 2 ; case 0
+ .short _022323F4 - _02232342 - 2 ; case 1
+ .short _0223243E - _02232342 - 2 ; case 2
+ .short _0223236E - _02232342 - 2 ; case 3
+ .short _022323B2 - _02232342 - 2 ; case 4
+ .short _02232350 - _02232342 - 2 ; case 5
+ .short _02232488 - _02232342 - 2 ; case 6
+_02232350:
+ mov r5, #0
+ cmp r7, #0
+ ble _0223236C
+_02232356:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02254A0C
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022315C0
+ add r5, r5, #1
+ cmp r5, r7
+ blt _02232356
+_0223236C:
+ b _022324D0
+_0223236E:
+ mov r5, #0
+ cmp r7, #0
+ ble _0223239C
+_02232374:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022324D4 ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ bne _02232396
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02254A0C
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022315C0
+_02232396:
+ add r5, r5, #1
+ cmp r5, r7
+ blt _02232374
+_0223239C:
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #1
+ bl MOD11_022448CC
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #3
+ bl MOD11_022448CC
+ b _022324D0
+_022323B2:
+ mov r5, #0
+ cmp r7, #0
+ ble _022323F2
+_022323B8:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022324D4 ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ beq _022323EC
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_022448BC
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r5, #0
+ bl MOD11_022448CC
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02254A0C
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022315C0
+_022323EC:
+ add r5, r5, #1
+ cmp r5, r7
+ blt _022323B8
+_022323F2:
+ b _022324D0
+_022323F4:
+ ldr r1, [r6, #0x64]
+ add r0, r4, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022324D4 ; =0x00000195
+ mov r2, #1
+ ldrb r0, [r0, r1]
+ tst r0, r2
+ bne _0223241A
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #3
+ bl MOD11_022448CC
+ b _0223242C
+_0223241A:
+ ldr r1, [r6, #0x64]
+ add r0, r6, #0
+ bl MOD11_022448BC
+ ldr r2, [r6, #0x64]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+_0223242C:
+ ldr r1, [r6, #0x64]
+ add r0, r4, #0
+ bl MOD11_022315C0
+ ldr r1, [r6, #0x64]
+ add r0, r4, #0
+ bl MOD11_02254A0C
+ b _022324D0
+_0223243E:
+ ldr r1, [r6, #0x6c]
+ add r0, r4, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022324D4 ; =0x00000195
+ mov r2, #1
+ ldrb r0, [r0, r1]
+ tst r0, r2
+ bne _02232464
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #3
+ bl MOD11_022448CC
+ b _02232476
+_02232464:
+ ldr r1, [r6, #0x6c]
+ add r0, r6, #0
+ bl MOD11_022448BC
+ ldr r2, [r6, #0x6c]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+_02232476:
+ ldr r1, [r6, #0x6c]
+ add r0, r4, #0
+ bl MOD11_022315C0
+ ldr r1, [r6, #0x6c]
+ add r0, r4, #0
+ bl MOD11_02254A0C
+ b _022324D0
+_02232488:
+ ldr r1, [r6, #0x78]
+ add r0, r4, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022324D4 ; =0x00000195
+ mov r2, #1
+ ldrb r0, [r0, r1]
+ tst r0, r2
+ bne _022324AE
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #3
+ bl MOD11_022448CC
+ b _022324C0
+_022324AE:
+ ldr r1, [r6, #0x78]
+ add r0, r6, #0
+ bl MOD11_022448BC
+ ldr r2, [r6, #0x78]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+_022324C0:
+ ldr r1, [r6, #0x78]
+ add r0, r4, #0
+ bl MOD11_022315C0
+ ldr r1, [r6, #0x78]
+ add r0, r4, #0
+ bl MOD11_02254A0C
+_022324D0:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022324D4: .word 0x00000195
+
+ thumb_func_start MOD11_022324D8
+MOD11_022324D8: ; 0x022324D8
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r4, r0, #0
+ bl MOD11_0222FF84
+ add r7, r0, #0
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ cmp r0, #6
+ bhi _02232510
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02232502: ; jump table
+ .short _02232510 - _02232502 - 2 ; case 0
+ .short _022325C2 - _02232502 - 2 ; case 1
+ .short _02232610 - _02232502 - 2 ; case 2
+ .short _02232534 - _02232502 - 2 ; case 3
+ .short _0223257C - _02232502 - 2 ; case 4
+ .short _02232510 - _02232502 - 2 ; case 5
+ .short _0223265E - _02232502 - 2 ; case 6
+_02232510:
+ mov r5, #0
+ cmp r7, #0
+ ble _02232532
+ add r6, r5, #0
+_02232518:
+ add r0, r4, #0
+ add r1, r5, #0
+ add r2, r6, #0
+ add r3, r6, #0
+ bl MOD11_02254B40
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022315C0
+ add r5, r5, #1
+ cmp r5, r7
+ blt _02232518
+_02232532:
+ b _022326AA
+_02232534:
+ mov r5, #0
+ cmp r7, #0
+ ble _02232566
+_0223253A:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022326B0 ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ bne _02232560
+ mov r2, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ add r3, r2, #0
+ bl MOD11_02254B40
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022315C0
+_02232560:
+ add r5, r5, #1
+ cmp r5, r7
+ blt _0223253A
+_02232566:
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #1
+ bl MOD11_022448CC
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #3
+ bl MOD11_022448CC
+ b _022326AA
+_0223257C:
+ mov r5, #0
+ cmp r7, #0
+ ble _022325C0
+_02232582:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022326B0 ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ beq _022325BA
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_022448BC
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r5, #0
+ bl MOD11_022448CC
+ mov r2, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ add r3, r2, #0
+ bl MOD11_02254B40
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022315C0
+_022325BA:
+ add r5, r5, #1
+ cmp r5, r7
+ blt _02232582
+_022325C0:
+ b _022326AA
+_022325C2:
+ ldr r1, [r6, #0x64]
+ add r0, r4, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022326B0 ; =0x00000195
+ mov r2, #1
+ ldrb r0, [r0, r1]
+ tst r0, r2
+ bne _022325E8
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #3
+ bl MOD11_022448CC
+ b _022325FA
+_022325E8:
+ ldr r1, [r6, #0x64]
+ add r0, r6, #0
+ bl MOD11_022448BC
+ ldr r2, [r6, #0x64]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+_022325FA:
+ ldr r1, [r6, #0x64]
+ add r0, r4, #0
+ bl MOD11_022315C0
+ mov r2, #0
+ ldr r1, [r6, #0x64]
+ add r0, r4, #0
+ add r3, r2, #0
+ bl MOD11_02254B40
+ b _022326AA
+_02232610:
+ ldr r1, [r6, #0x6c]
+ add r0, r4, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022326B0 ; =0x00000195
+ mov r2, #1
+ ldrb r0, [r0, r1]
+ tst r0, r2
+ bne _02232636
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #3
+ bl MOD11_022448CC
+ b _02232648
+_02232636:
+ ldr r1, [r6, #0x6c]
+ add r0, r6, #0
+ bl MOD11_022448BC
+ ldr r2, [r6, #0x6c]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+_02232648:
+ ldr r1, [r6, #0x6c]
+ add r0, r4, #0
+ bl MOD11_022315C0
+ mov r2, #0
+ ldr r1, [r6, #0x6c]
+ add r0, r4, #0
+ add r3, r2, #0
+ bl MOD11_02254B40
+ b _022326AA
+_0223265E:
+ ldr r1, [r6, #0x78]
+ add r0, r4, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022326B0 ; =0x00000195
+ mov r2, #1
+ ldrb r0, [r0, r1]
+ tst r0, r2
+ bne _02232684
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #3
+ bl MOD11_022448CC
+ b _02232696
+_02232684:
+ ldr r1, [r6, #0x78]
+ add r0, r6, #0
+ bl MOD11_022448BC
+ ldr r2, [r6, #0x78]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_022448CC
+_02232696:
+ ldr r1, [r6, #0x78]
+ add r0, r4, #0
+ bl MOD11_022315C0
+ mov r2, #0
+ ldr r1, [r6, #0x78]
+ add r0, r4, #0
+ add r3, r2, #0
+ bl MOD11_02254B40
+_022326AA:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022326B0: .word 0x00000195
+
+ thumb_func_start MOD11_022326B4
+MOD11_022326B4: ; 0x022326B4
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r5, r0, #0
+ bl MOD11_0222FF84
+ add r7, r0, #0
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ beq _022326DC
+ cmp r2, #3
+ beq _022326F4
+ cmp r2, #4
+ beq _0223271E
+ b _02232756
+_022326DC:
+ mov r4, #0
+ cmp r7, #0
+ ble _02232768
+_022326E2:
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_02254D50
+ add r4, r4, #1
+ cmp r4, r7
+ blt _022326E2
+ b _02232768
+_022326F4:
+ mov r4, #0
+ cmp r7, #0
+ ble _02232768
+_022326FA:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0222FF7C
+ ldr r1, _0223276C ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ bne _02232716
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_02254D50
+_02232716:
+ add r4, r4, #1
+ cmp r4, r7
+ blt _022326FA
+ b _02232768
+_0223271E:
+ mov r4, #0
+ cmp r7, #0
+ ble _02232768
+_02232724:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0222FF7C
+ ldr r1, _0223276C ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ beq _0223274E
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ ldr r1, _02232770 ; =0x00003108
+ ldrb r1, [r6, r1]
+ tst r0, r1
+ bne _0223274E
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_02254D50
+_0223274E:
+ add r4, r4, #1
+ cmp r4, r7
+ blt _02232724
+ b _02232768
+_02232756:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02254D50
+_02232768:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223276C: .word 0x00000195
+_02232770: .word 0x00003108
+
+ thumb_func_start MOD11_02232774
+MOD11_02232774: ; 0x02232774
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD11_02254F60
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022327A0
+MOD11_022327A0: ; 0x022327A0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ cmp r0, #0
+ beq _022327C6
+ cmp r0, #3
+ beq _0223282A
+ cmp r0, #4
+ beq _0223286A
+_022327C6:
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #0x10
+ tst r0, r1
+ beq _022327F8
+ mov r5, #0
+ cmp r6, #0
+ ble _022328B4
+ ldr r7, _022328B8 ; =0x00000195
+_022327DA:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldrb r0, [r0, r7]
+ cmp r0, #4
+ beq _022327F0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02254F7C
+_022327F0:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _022327DA
+ b _022328B4
+_022327F8:
+ mov r5, #0
+ cmp r6, #0
+ ble _022328B4
+ mov r7, #8
+_02232800:
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ tst r0, r7
+ bne _0223281A
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _0223281A
+ cmp r5, #1
+ bgt _022328B4
+_0223281A:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02254F7C
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02232800
+ b _022328B4
+_0223282A:
+ mov r5, #0
+ cmp r6, #0
+ ble _022328B4
+ mov r7, #1
+_02232832:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022328B8 ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ bne _02232862
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02254F7C
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ bne _02232862
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _022328B4
+_02232862:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02232832
+ b _022328B4
+_0223286A:
+ mov r5, #0
+ cmp r6, #0
+ ble _022328B4
+ mov r7, #1
+_02232872:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022328B8 ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ beq _022328AE
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02254F7C
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ bne _022328AE
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #0x10
+ tst r0, r1
+ bne _022328AE
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _022328B4
+_022328AE:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02232872
+_022328B4:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022328B8: .word 0x00000195
+
+ thumb_func_start MOD11_022328BC
+MOD11_022328BC: ; 0x022328BC
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ add r4, r0, #0
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ add r0, r7, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r7, #0
+ bl MOD11_0223A404
+ add r5, r0, #0
+ add r0, r7, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ cmp r5, #0
+ beq _022328EC
+ cmp r5, #3
+ beq _02232920
+ cmp r5, #4
+ beq _02232962
+_022328EC:
+ mov r5, #0
+ cmp r6, #0
+ ble _022329AE
+_022328F2:
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ bne _0223290E
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _0223290E
+ cmp r5, #1
+ bgt _022329AE
+_0223290E:
+ add r0, r4, #0
+ add r1, r5, #0
+ add r2, r7, #0
+ bl MOD11_02254FAC
+ add r5, r5, #1
+ cmp r5, r6
+ blt _022328F2
+ b _022329AE
+_02232920:
+ mov r5, #0
+ cmp r6, #0
+ ble _022329AE
+_02232926:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022329B4 ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ bne _0223295A
+ add r0, r4, #0
+ add r1, r5, #0
+ add r2, r7, #0
+ bl MOD11_02254FAC
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ bne _0223295A
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _022329AE
+_0223295A:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02232926
+ b _022329AE
+_02232962:
+ mov r5, #0
+ cmp r6, #0
+ ble _022329AE
+_02232968:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _022329B4 ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ beq _022329A8
+ add r0, r4, #0
+ add r1, r5, #0
+ add r2, r7, #0
+ bl MOD11_02254FAC
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ bne _022329A8
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #0x10
+ tst r0, r1
+ bne _022329A8
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _022329AE
+_022329A8:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02232968
+_022329AE:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022329B4: .word 0x00000195
+
+ thumb_func_start MOD11_022329B8
+MOD11_022329B8: ; 0x022329B8
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r4, r0, #0
+ bl MOD11_0222FF84
+ add r5, r0, #0
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ cmp r0, #0xc
+ bhi _022329FC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022329E2: ; jump table
+ .short _022329FC - _022329E2 - 2 ; case 0
+ .short _022329FC - _022329E2 - 2 ; case 1
+ .short _022329FC - _022329E2 - 2 ; case 2
+ .short _02232A2E - _022329E2 - 2 ; case 3
+ .short _02232A6E - _022329E2 - 2 ; case 4
+ .short _022329FC - _022329E2 - 2 ; case 5
+ .short _022329FC - _022329E2 - 2 ; case 6
+ .short _022329FC - _022329E2 - 2 ; case 7
+ .short _022329FC - _022329E2 - 2 ; case 8
+ .short _02232ABA - _022329E2 - 2 ; case 9
+ .short _02232AE6 - _022329E2 - 2 ; case 10
+ .short _02232B12 - _022329E2 - 2 ; case 11
+ .short _02232B3A - _022329E2 - 2 ; case 12
+_022329FC:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232A2C
+ mov r7, #8
+_02232A04:
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ tst r0, r7
+ bne _02232A1E
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _02232A1E
+ cmp r6, #1
+ bgt _02232A2C
+_02232A1E:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02254FE4
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232A04
+_02232A2C:
+ b _02232B60
+_02232A2E:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232A6C
+ mov r7, #1
+_02232A36:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232B64 ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ bne _02232A66
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02254FE4
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ bne _02232A66
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _02232B60
+_02232A66:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232A36
+_02232A6C:
+ b _02232B60
+_02232A6E:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232B60
+ mov r7, #1
+_02232A76:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232B64 ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ beq _02232AB2
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02254FE4
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ bne _02232AB2
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #0x10
+ tst r0, r1
+ bne _02232AB2
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _02232B60
+_02232AB2:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232A76
+ b _02232B60
+_02232ABA:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232B60
+ ldr r7, _02232B64 ; =0x00000195
+_02232AC2:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldrb r0, [r0, r7]
+ cmp r0, #0
+ beq _02232AD4
+ cmp r0, #2
+ bne _02232ADE
+_02232AD4:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02254FE4
+ b _02232B60
+_02232ADE:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232AC2
+ b _02232B60
+_02232AE6:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232B60
+ ldr r7, _02232B64 ; =0x00000195
+_02232AEE:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldrb r0, [r0, r7]
+ cmp r0, #1
+ beq _02232B00
+ cmp r0, #3
+ bne _02232B0A
+_02232B00:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02254FE4
+ b _02232B60
+_02232B0A:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232AEE
+ b _02232B60
+_02232B12:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232B60
+ ldr r7, _02232B64 ; =0x00000195
+_02232B1A:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldrb r0, [r0, r7]
+ cmp r0, #4
+ bne _02232B32
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02254FE4
+ b _02232B60
+_02232B32:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232B1A
+ b _02232B60
+_02232B3A:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232B60
+ ldr r7, _02232B64 ; =0x00000195
+_02232B42:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldrb r0, [r0, r7]
+ cmp r0, #5
+ bne _02232B5A
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02254FE4
+ b _02232B60
+_02232B5A:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232B42
+_02232B60:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02232B64: .word 0x00000195
+
+ thumb_func_start MOD11_02232B68
+MOD11_02232B68: ; 0x02232B68
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ add r4, r0, #0
+ bl MOD11_0222FF84
+ add r5, r0, #0
+ add r0, r7, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r7, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r7, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ cmp r6, #0xc
+ bhi _02232BB6
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02232B9C: ; jump table
+ .short _02232BB6 - _02232B9C - 2 ; case 0
+ .short _02232BB6 - _02232B9C - 2 ; case 1
+ .short _02232BB6 - _02232B9C - 2 ; case 2
+ .short _02232BDE - _02232B9C - 2 ; case 3
+ .short _02232C14 - _02232B9C - 2 ; case 4
+ .short _02232BB6 - _02232B9C - 2 ; case 5
+ .short _02232BB6 - _02232B9C - 2 ; case 6
+ .short _02232BB6 - _02232B9C - 2 ; case 7
+ .short _02232BB6 - _02232B9C - 2 ; case 8
+ .short _02232C4A - _02232B9C - 2 ; case 9
+ .short _02232C78 - _02232B9C - 2 ; case 10
+ .short _02232CA6 - _02232B9C - 2 ; case 11
+ .short _02232CD0 - _02232B9C - 2 ; case 12
+_02232BB6:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232BDC
+_02232BBC:
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _02232BCC
+ cmp r6, #1
+ bgt _02232BDC
+_02232BCC:
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD11_02255000
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232BBC
+_02232BDC:
+ b _02232CF8
+_02232BDE:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232C12
+_02232BE4:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232CFC ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ bne _02232C0C
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD11_02255000
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _02232CF8
+_02232C0C:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232BE4
+_02232C12:
+ b _02232CF8
+_02232C14:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232CF8
+_02232C1A:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232CFC ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ beq _02232C42
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD11_02255000
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _02232CF8
+_02232C42:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232C1A
+ b _02232CF8
+_02232C4A:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232CF8
+_02232C50:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232CFC ; =0x00000195
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ beq _02232C64
+ cmp r0, #2
+ bne _02232C70
+_02232C64:
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD11_02255000
+ b _02232CF8
+_02232C70:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232C50
+ b _02232CF8
+_02232C78:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232CF8
+_02232C7E:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232CFC ; =0x00000195
+ ldrb r0, [r0, r1]
+ cmp r0, #1
+ beq _02232C92
+ cmp r0, #3
+ bne _02232C9E
+_02232C92:
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD11_02255000
+ b _02232CF8
+_02232C9E:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232C7E
+ b _02232CF8
+_02232CA6:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232CF8
+_02232CAC:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232CFC ; =0x00000195
+ ldrb r0, [r0, r1]
+ cmp r0, #4
+ bne _02232CC8
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD11_02255000
+ b _02232CF8
+_02232CC8:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232CAC
+ b _02232CF8
+_02232CD0:
+ mov r6, #0
+ cmp r5, #0
+ ble _02232CF8
+_02232CD6:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232CFC ; =0x00000195
+ ldrb r0, [r0, r1]
+ cmp r0, #5
+ bne _02232CF2
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD11_02255000
+ b _02232CF8
+_02232CF2:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02232CD6
+_02232CF8:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02232CFC: .word 0x00000195
+
+ thumb_func_start MOD11_02232D00
+MOD11_02232D00: ; 0x02232D00
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r0, #0
+ bl MOD11_0222FF84
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ mov r4, #0
+ cmp r5, #0
+ ble _02232D28
+_02232D1A:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0225624C
+ add r4, r4, #1
+ cmp r4, r5
+ blt _02232D1A
+_02232D28:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02232D2C
+MOD11_02232D2C: ; 0x02232D2C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ add r4, r0, #0
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ add r0, r7, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r7, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ beq _02232D54
+ cmp r2, #3
+ beq _02232D6E
+ cmp r2, #4
+ beq _02232D9A
+ b _02232DC6
+_02232D54:
+ mov r5, #0
+ cmp r6, #0
+ ble _02232DDA
+_02232D5A:
+ add r0, r4, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ mov r3, #0
+ bl MOD11_02255034
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02232D5A
+ b _02232DDA
+_02232D6E:
+ mov r5, #0
+ cmp r6, #0
+ ble _02232DDA
+_02232D74:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232DE0 ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ bne _02232D92
+ add r0, r4, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ mov r3, #0
+ bl MOD11_02255034
+_02232D92:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02232D74
+ b _02232DDA
+_02232D9A:
+ mov r5, #0
+ cmp r6, #0
+ ble _02232DDA
+_02232DA0:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232DE0 ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ beq _02232DBE
+ add r0, r4, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ mov r3, #0
+ bl MOD11_02255034
+_02232DBE:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02232DA0
+ b _02232DDA
+_02232DC6:
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r4, #0
+ add r1, r7, #0
+ mov r3, #0
+ bl MOD11_02255034
+_02232DDA:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02232DE0: .word 0x00000195
+
+ thumb_func_start MOD11_02232DE4
+MOD11_02232DE4: ; 0x02232DE4
+ push {r3, r4, r5, r6, r7, lr}
+ str r1, [sp]
+ add r5, r0, #0
+ bl MOD11_0222FF84
+ add r7, r0, #0
+ ldr r0, [sp]
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, [sp]
+ bl MOD11_0223A404
+ add r2, r0, #0
+ ldr r4, _02232EA4 ; =0x00000000
+ beq _02232E0E
+ cmp r2, #3
+ beq _02232E28
+ cmp r2, #4
+ beq _02232E5A
+ b _02232E8C
+_02232E0E:
+ cmp r7, #0
+ ble _02232EA0
+ add r6, r4, #0
+_02232E14:
+ ldr r1, [sp]
+ add r0, r5, #0
+ add r2, r4, #0
+ add r3, r6, #0
+ bl MOD11_02255034
+ add r4, r4, #1
+ cmp r4, r7
+ blt _02232E14
+ b _02232EA0
+_02232E28:
+ add r6, r4, #0
+ cmp r7, #0
+ ble _02232EA0
+_02232E2E:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232EA8 ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ bne _02232E52
+ ldr r1, [sp]
+ add r0, r5, #0
+ add r2, r6, #0
+ add r3, r4, #0
+ bl MOD11_02255034
+ add r0, r4, #4
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_02232E52:
+ add r6, r6, #1
+ cmp r6, r7
+ blt _02232E2E
+ b _02232EA0
+_02232E5A:
+ add r6, r4, #0
+ cmp r7, #0
+ ble _02232EA0
+_02232E60:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232EA8 ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ beq _02232E84
+ ldr r1, [sp]
+ add r0, r5, #0
+ add r2, r6, #0
+ add r3, r4, #0
+ bl MOD11_02255034
+ add r0, r4, #4
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_02232E84:
+ add r6, r6, #1
+ cmp r6, r7
+ blt _02232E60
+ b _02232EA0
+_02232E8C:
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ ldr r1, [sp]
+ add r0, r5, #0
+ add r3, r4, #0
+ bl MOD11_02255034
+_02232EA0:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02232EA4: .word 0x00000000
+_02232EA8: .word 0x00000195
+
+ thumb_func_start MOD11_02232EAC
+MOD11_02232EAC: ; 0x02232EAC
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ add r4, r0, #0
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ add r0, r7, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r7, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ beq _02232ED4
+ cmp r2, #3
+ beq _02232EEA
+ cmp r2, #4
+ beq _02232F20
+ b _02232F48
+_02232ED4:
+ mov r5, #0
+ cmp r6, #0
+ ble _02232F58
+_02232EDA:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0225516C
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02232EDA
+ b _02232F58
+_02232EEA:
+ mov r5, #0
+ cmp r6, #0
+ ble _02232F58
+_02232EF0:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232F5C ; =0x00000195
+ ldrb r1, [r0, r1]
+ mov r0, #1
+ tst r0, r1
+ bne _02232F18
+ add r0, r5, #0
+ bl MaskOfFlagNo
+ ldr r1, _02232F60 ; =0x00003108
+ ldrb r1, [r7, r1]
+ tst r0, r1
+ bne _02232F18
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0225516C
+_02232F18:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02232EF0
+ b _02232F58
+_02232F20:
+ mov r5, #0
+ cmp r6, #0
+ ble _02232F58
+ mov r7, #1
+_02232F28:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02232F5C ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ beq _02232F40
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0225516C
+_02232F40:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02232F28
+ b _02232F58
+_02232F48:
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_0225516C
+_02232F58:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02232F5C: .word 0x00000195
+_02232F60: .word 0x00003108
+
+ thumb_func_start MOD11_02232F64
+MOD11_02232F64: ; 0x02232F64
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD11_02243388
+ cmp r0, #0
+ beq _02232F7C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ b _02232F82
+_02232F7C:
+ add r0, r4, #0
+ bl MOD11_022433DC
+_02232F82:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02232F88
+MOD11_02232F88: ; 0x02232F88
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r1, #0
+ ldr r1, [r5, #0x64]
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x60
+ bne _02232FA0
+ mov r4, #0
+ b _02232FB4
+_02232FA0:
+ ldr r0, _022330D4 ; =0x00002160
+ ldr r4, [r5, r0]
+ cmp r4, #0
+ bne _02232FB4
+ ldr r0, _022330D8 ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _022330DC ; =0x000003E2
+ ldrb r4, [r1, r0]
+_02232FB4:
+ ldr r0, [r5, #0x6c]
+ str r0, [sp, #0x18]
+ ldr r1, [sp, #0x18]
+ add r0, r7, #0
+ bl MOD11_02230270
+ mov r3, #6
+ lsl r3, r3, #6
+ add r6, r0, #0
+ ldr r0, [r5, r3]
+ ldr r1, _022330E0 ; =0x00002154
+ str r0, [sp]
+ ldr r0, [r5, r1]
+ ldr r2, _022330D8 ; =0x00003044
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #4]
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x64]
+ lsl r4, r6, #2
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x18]
+ add r4, r5, r4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x10]
+ sub r0, r1, #4
+ ldr r0, [r5, r0]
+ add r3, #0x3c
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x14]
+ ldr r2, [r5, r2]
+ ldr r3, [r4, r3]
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_0224B310
+ ldr r1, _022330E4 ; =0x00002144
+ str r0, [r5, r1]
+ add r0, r1, #0
+ add r0, #0xc
+ ldr r2, [r5, r1]
+ ldr r0, [r5, r0]
+ mul r0, r2
+ str r0, [r5, r1]
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02249D90
+ cmp r0, #0x61
+ bne _02233040
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ ldr r1, _022330E4 ; =0x00002144
+ add r0, #0x64
+ ldr r1, [r5, r1]
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ ldr r1, _022330E4 ; =0x00002144
+ str r0, [r5, r1]
+_02233040:
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02249D90
+ cmp r0, #0x68
+ bne _0223306E
+ ldr r0, _022330E4 ; =0x00002144
+ ldr r2, [r5, #0x64]
+ ldr r1, [r5, r0]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r5, r0
+ ldr r0, _022330E8 ; =0x00002DCC
+ ldr r0, [r2, r0]
+ lsl r0, r0, #5
+ lsr r0, r0, #0x1c
+ add r0, #0xa
+ mul r0, r1
+ mov r1, #0xa
+ bl _u32_div_f
+ ldr r1, _022330E4 ; =0x00002144
+ str r0, [r5, r1]
+_0223306E:
+ ldr r2, [r5, #0x64]
+ mov r1, #0xc0
+ add r0, r2, #0
+ mul r0, r1
+ ldr r2, _022330E8 ; =0x00002DCC
+ add r3, r5, r0
+ ldr r3, [r3, r2]
+ lsl r3, r3, #1
+ lsr r3, r3, #0x1f
+ beq _022330CE
+ add r2, #0x10
+ add r3, r5, r2
+ add r1, #0xb4
+ ldr r2, [r5, r1]
+ ldr r1, [r3, r0]
+ cmp r2, r1
+ bne _02233094
+ sub r1, r1, #1
+ str r1, [r3, r0]
+_02233094:
+ ldr r2, [r5, #0x64]
+ mov r1, #0xc0
+ add r0, r2, #0
+ mul r0, r1
+ add r1, #0xb4
+ ldr r3, [r5, r1]
+ ldr r1, _022330EC ; =0x00002DDC
+ add r2, r5, r0
+ ldr r2, [r2, r1]
+ sub r2, r3, r2
+ cmp r2, #2
+ bge _022330C2
+ ldr r0, _022330E4 ; =0x00002144
+ ldr r1, [r5, r0]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ bl _s32_div_f
+ ldr r1, _022330E4 ; =0x00002144
+ add sp, #0x1c
+ str r0, [r5, r1]
+ pop {r4, r5, r6, r7, pc}
+_022330C2:
+ sub r1, #0x10
+ add r3, r5, r1
+ ldr r2, [r3, r0]
+ ldr r1, _022330F0 ; =0xBFFFFFFF
+ and r1, r2
+ str r1, [r3, r0]
+_022330CE:
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022330D4: .word 0x00002160
+_022330D8: .word 0x00003044
+_022330DC: .word 0x000003E2
+_022330E0: .word 0x00002154
+_022330E4: .word 0x00002144
+_022330E8: .word 0x00002DCC
+_022330EC: .word 0x00002DDC
+_022330F0: .word 0xBFFFFFFF
+
+ thumb_func_start MOD11_022330F4
+MOD11_022330F4: ; 0x022330F4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02232F88
+ ldr r1, _02233128 ; =0x00002144
+ add r0, r4, #0
+ ldr r1, [r4, r1]
+ bl MOD11_0224BF10
+ ldr r1, _02233128 ; =0x00002144
+ str r0, [r4, r1]
+ mov r0, #0
+ ldr r2, [r4, r1]
+ mvn r0, r0
+ mul r0, r2
+ str r0, [r4, r1]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02233128: .word 0x00002144
+
+ thumb_func_start MOD11_0223312C
+MOD11_0223312C: ; 0x0223312C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02232F88
+ ldr r1, _02233154 ; =0x00002144
+ mov r0, #0
+ ldr r2, [r4, r1]
+ mvn r0, r0
+ mul r0, r2
+ str r0, [r4, r1]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02233154: .word 0x00002144
+
+ thumb_func_start MOD11_02233158
+MOD11_02233158: ; 0x02233158
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, _02233194 ; =0x0000213C
+ ldr r1, [r4, r0]
+ mov r0, #1
+ tst r0, r1
+ bne _02233178
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022559BC
+_02233178:
+ ldr r1, _02233194 ; =0x0000213C
+ mov r0, #1
+ ldr r2, [r4, r1]
+ orr r0, r2
+ str r0, [r4, r1]
+ add r0, r1, #4
+ ldr r2, [r4, r0]
+ mov r0, #4
+ orr r2, r0
+ add r0, r1, #4
+ str r2, [r4, r0]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02233194: .word 0x0000213C
+
+ thumb_func_start MOD11_02233198
+MOD11_02233198: ; 0x02233198
+ push {r4, r5, lr}
+ sub sp, #0x44
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ add r1, sp, #0x24
+ bl MOD11_0223C490
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #0x24
+ add r3, sp, #0
+ bl MOD11_0223C55C
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #0
+ bl MOD11_022559F4
+ mov r0, #0
+ add sp, #0x44
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD11_022331CC
+MOD11_022331CC: ; 0x022331CC
+ push {r4, r5, lr}
+ sub sp, #0x44
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ add r1, sp, #0x24
+ bl MOD11_0223C490
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #0x24
+ add r3, sp, #0
+ bl MOD11_0223C55C
+ add r1, sp, #0
+ ldrb r2, [r1, #1]
+ mov r0, #0x80
+ orr r0, r2
+ strb r0, [r1, #1]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #0
+ bl MOD11_022559F4
+ mov r0, #0
+ add sp, #0x44
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223320C
+MOD11_0223320C: ; 0x0223320C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r1, r4, #0
+ add r4, #0xf4
+ add r0, r5, #0
+ add r2, r4, #0
+ bl MOD11_022559F4
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223322C
+MOD11_0223322C: ; 0x0223322C
+ push {r3, r4, r5, lr}
+ sub sp, #0x20
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ add r1, sp, #0
+ bl MOD11_0223C490
+ add r1, r4, #0
+ add r4, #0xf4
+ add r0, r5, #0
+ add r2, sp, #0
+ add r3, r4, #0
+ bl MOD11_0223C55C
+ mov r0, #0
+ add sp, #0x20
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02233258
+MOD11_02233258: ; 0x02233258
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x44
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ add r1, sp, #0x24
+ bl MOD11_0223C490
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #0x24
+ add r3, sp, #0
+ bl MOD11_0223C55C
+ add r1, sp, #0
+ ldrb r2, [r1, #1]
+ mov r0, #0x40
+ orr r0, r2
+ strb r0, [r1, #1]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ str r0, [sp, #0x20]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #0
+ bl MOD11_022559F4
+ mov r0, #0
+ add sp, #0x44
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022332AC
+MOD11_022332AC: ; 0x022332AC
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ cmp r0, #0xff
+ bne _022332CA
+ mov r0, #0x49
+ lsl r0, r0, #2
+ b _022332CC
+_022332CA:
+ ldr r0, _0223331C ; =0x00003044
+_022332CC:
+ ldr r0, [r5, r0]
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ ldr r0, _02233320 ; =0x0000213C
+ ldr r1, [r5, r0]
+ mov r0, #1
+ lsl r0, r0, #0xe
+ tst r0, r1
+ bne _022332E8
+ add r0, r6, #0
+ bl MOD11_02230E20
+ cmp r0, #1
+ beq _022332EC
+_022332E8:
+ cmp r4, #0x90
+ bne _02233302
+_022332EC:
+ ldr r1, _02233320 ; =0x0000213C
+ mov r0, #1
+ ldr r2, [r5, r1]
+ lsl r0, r0, #0xe
+ orr r0, r2
+ str r0, [r5, r1]
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_02255A10
+_02233302:
+ add r0, r6, #0
+ bl MOD11_02230E20
+ cmp r0, #0
+ bne _02233316
+ ldr r2, _02233324 ; =0x00000123
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A43C
+_02233316:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_0223331C: .word 0x00003044
+_02233320: .word 0x0000213C
+_02233324: .word 0x00000123
+
+ thumb_func_start MOD11_02233328
+MOD11_02233328: ; 0x02233328
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp, #8]
+ cmp r6, #0xff
+ bne _0223335A
+ mov r0, #0x49
+ lsl r0, r0, #2
+ b _0223335C
+_0223335A:
+ ldr r0, _022333C8 ; =0x00003044
+_0223335C:
+ ldr r0, [r4, r0]
+ add r1, r4, #0
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD11_0223C230
+ str r0, [sp, #4]
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r7, r0, #0
+ ldr r0, _022333CC ; =0x0000213C
+ ldr r1, [r4, r0]
+ mov r0, #1
+ lsl r0, r0, #0xe
+ tst r0, r1
+ bne _02233390
+ add r0, r5, #0
+ bl MOD11_02230E20
+ cmp r0, #1
+ beq _02233394
+_02233390:
+ cmp r6, #0x90
+ bne _022333AE
+_02233394:
+ ldr r1, _022333CC ; =0x0000213C
+ mov r0, #1
+ ldr r2, [r4, r1]
+ lsl r0, r0, #0xe
+ orr r0, r2
+ str r0, [r4, r1]
+ ldr r3, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ str r7, [sp]
+ bl MOD11_02255A40
+_022333AE:
+ add r0, r5, #0
+ bl MOD11_02230E20
+ cmp r0, #0
+ bne _022333C2
+ ldr r2, _022333D0 ; =0x00000123
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A43C
+_022333C2:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022333C8: .word 0x00003044
+_022333CC: .word 0x0000213C
+_022333D0: .word 0x00000123
+
+ thumb_func_start MOD11_022333D4
+MOD11_022333D4: ; 0x022333D4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ ldr r2, _02233404 ; =0x0000216C
+ add r1, r0, #0
+ ldr r2, [r4, r2]
+ add r0, r5, #0
+ bl MOD11_02255A70
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02233404: .word 0x0000216C
+
+ thumb_func_start MOD11_02233408
+MOD11_02233408: ; 0x02233408
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ ldr r0, _0223349C ; =0x00002D8C
+ add r7, r2, #0
+ add r5, r4, r0
+ mov r0, #0xc0
+ mul r7, r0
+ ldr r0, _022334A0 ; =0x0000215C
+ ldr r6, [r5, r7]
+ ldr r3, [r4, r0]
+ add r1, r3, r6
+ cmp r1, #0
+ bgt _02233446
+ neg r1, r6
+ sub r0, #0x14
+ str r1, [r4, r0]
+ b _0223344A
+_02233446:
+ sub r0, #0x14
+ str r3, [r4, r0]
+_0223344A:
+ ldr r0, _022334A4 ; =0x00002148
+ ldr r6, [r4, r0]
+ cmp r6, #0
+ bge _02233460
+ mov r0, #0x59
+ lsl r0, r0, #2
+ add r3, r4, r0
+ lsl r1, r2, #2
+ ldr r0, [r3, r1]
+ sub r0, r0, r6
+ str r0, [r3, r1]
+_02233460:
+ mov r0, #0xc0
+ add r3, r2, #0
+ mul r3, r0
+ ldr r0, _0223349C ; =0x00002D8C
+ ldr r6, _022334A0 ; =0x0000215C
+ add r1, r4, r0
+ ldr r0, [r1, r3]
+ ldr r6, [r4, r6]
+ add r0, r0, r6
+ str r0, [r1, r3]
+ ldr r1, [r1, r3]
+ cmp r1, #0
+ bge _02233480
+ mov r0, #0
+ str r0, [r5, r7]
+ b _0223348E
+_02233480:
+ add r0, r4, r3
+ ldr r3, _0223349C ; =0x00002D8C
+ add r3, r3, #4
+ ldr r0, [r0, r3]
+ cmp r1, r0
+ bls _0223348E
+ str r0, [r5, r7]
+_0223348E:
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_02245190
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223349C: .word 0x00002D8C
+_022334A0: .word 0x0000215C
+_022334A4: .word 0x00002148
+
+ thumb_func_start MOD11_022334A8
+MOD11_022334A8: ; 0x022334A8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02255A8C
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022334D4
+MOD11_022334D4: ; 0x022334D4
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0223C230
+ add r4, r0, #0
+ mov r1, #0xc0
+ mul r1, r4
+ add r2, r5, r1
+ ldr r1, _02233530 ; =0x00002D8C
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ bne _0223352A
+ str r4, [r5, #0x74]
+ bl MaskOfFlagNo
+ ldr r1, _02233534 ; =0x0000213C
+ lsl r0, r0, #0x18
+ ldr r2, [r5, r1]
+ orr r0, r2
+ str r0, [r5, r1]
+ mov r0, #0x55
+ lsl r0, r0, #2
+ add r2, r5, r0
+ lsl r1, r4, #2
+ ldr r0, [r2, r1]
+ add r0, r0, #1
+ str r0, [r2, r1]
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_0223D0EC
+_0223352A:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02233530: .word 0x00002D8C
+_02233534: .word 0x0000213C
+
+ thumb_func_start MOD11_02233538
+MOD11_02233538: ; 0x02233538
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r2, [r4, #0x74]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02255BEC
+ ldr r0, [r4, #0x74]
+ bl MaskOfFlagNo
+ ldr r2, _02233594 ; =0x0000213C
+ lsl r3, r0, #0x18
+ mov r0, #0
+ mvn r0, r0
+ ldr r1, [r4, r2]
+ eor r0, r3
+ and r0, r1
+ str r0, [r4, r2]
+ ldr r0, [r4, #0x74]
+ bl MaskOfFlagNo
+ mov r1, #0x85
+ lsl r1, r1, #6
+ ldr r2, [r4, r1]
+ lsl r0, r0, #0x1c
+ orr r0, r2
+ str r0, [r4, r1]
+ ldr r0, [r4, #0x74]
+ mov r2, #0x27
+ lsl r0, r0, #4
+ add r0, r4, r0
+ add r1, #0x68
+ str r2, [r0, r1]
+ ldr r2, [r4, #0x74]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02245A10
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02233594: .word 0x0000213C
+
+ thumb_func_start MOD11_02233598
+MOD11_02233598: ; 0x02233598
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ mov r1, #4
+ tst r0, r1
+ bne _022335D2
+ ldr r0, _022335FC ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ ldr r0, _02233600 ; =0x00000C03
+ tst r0, r1
+ bne _022335CC
+ bl FUN_02020AA4
+ cmp r0, #0
+ beq _022335D2
+_022335CC:
+ add r0, r5, #0
+ add r0, #0xf0
+ str r4, [r0]
+_022335D2:
+ add r0, r5, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ cmp r4, r0
+ beq _022335F0
+ mov r1, #1
+ add r0, r5, #0
+ mvn r1, r1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ add r0, r0, #1
+ b _022335F2
+_022335F0:
+ mov r0, #0
+_022335F2:
+ add r5, #0xf0
+ str r0, [r5]
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_022335FC: .word 0x021C48B8
+_02233600: .word 0x00000C03
+
+ thumb_func_start MOD11_02233604
+MOD11_02233604: ; 0x02233604
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ add r3, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD11_02255D00
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0223363C
+MOD11_0223363C: ; 0x0223363C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r1, #0
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r6, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r5, r0, #0
+ ldr r0, [sp]
+ ldr r2, [sp, #4]
+ add r1, r6, #0
+ bl MOD11_0223A444
+ cmp r7, #6
+ bhi _022336DA
+ add r1, r7, r7
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02233686: ; jump table
+ .short _02233694 - _02233686 - 2 ; case 0
+ .short _0223369E - _02233686 - 2 ; case 1
+ .short _022336A8 - _02233686 - 2 ; case 2
+ .short _022336B2 - _02233686 - 2 ; case 3
+ .short _022336BC - _02233686 - 2 ; case 4
+ .short _022336C6 - _02233686 - 2 ; case 5
+ .short _022336D0 - _02233686 - 2 ; case 6
+_02233694:
+ ldr r0, [r0]
+ cmp r0, r4
+ beq _022336DA
+ mov r5, #0
+ b _022336DA
+_0223369E:
+ ldr r0, [r0]
+ cmp r0, r4
+ bne _022336DA
+ mov r5, #0
+ b _022336DA
+_022336A8:
+ ldr r0, [r0]
+ cmp r0, r4
+ bgt _022336DA
+ mov r5, #0
+ b _022336DA
+_022336B2:
+ ldr r0, [r0]
+ cmp r0, r4
+ ble _022336DA
+ mov r5, #0
+ b _022336DA
+_022336BC:
+ ldr r0, [r0]
+ tst r0, r4
+ bne _022336DA
+ mov r5, #0
+ b _022336DA
+_022336C6:
+ ldr r0, [r0]
+ tst r0, r4
+ beq _022336DA
+ mov r5, #0
+ b _022336DA
+_022336D0:
+ ldr r0, [r0]
+ and r0, r4
+ cmp r4, r0
+ beq _022336DA
+ mov r5, #0
+_022336DA:
+ cmp r5, #0
+ beq _022336E6
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0223A424
+_022336E6:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_022336EC
+MOD11_022336EC: ; 0x022336EC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r6, r1, #0
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r6, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ add r0, r6, #0
+ bl MOD11_0223A404
+ str r0, [sp, #8]
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r5, r0, #0
+ ldr r0, [sp]
+ ldr r2, [sp, #4]
+ add r1, r6, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ ldr r2, [sp, #8]
+ add r0, r6, #0
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r7, #6
+ bhi _02233790
+ add r1, r7, r7
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223374A: ; jump table
+ .short _02233758 - _0223374A - 2 ; case 0
+ .short _02233760 - _0223374A - 2 ; case 1
+ .short _02233768 - _0223374A - 2 ; case 2
+ .short _02233770 - _0223374A - 2 ; case 3
+ .short _02233778 - _0223374A - 2 ; case 4
+ .short _02233780 - _0223374A - 2 ; case 5
+ .short _02233788 - _0223374A - 2 ; case 6
+_02233758:
+ cmp r0, r4
+ beq _02233790
+ mov r5, #0
+ b _02233790
+_02233760:
+ cmp r0, r4
+ bne _02233790
+ mov r5, #0
+ b _02233790
+_02233768:
+ cmp r0, r4
+ bgt _02233790
+ mov r5, #0
+ b _02233790
+_02233770:
+ cmp r0, r4
+ ble _02233790
+ mov r5, #0
+ b _02233790
+_02233778:
+ tst r0, r4
+ bne _02233790
+ mov r5, #0
+ b _02233790
+_02233780:
+ tst r0, r4
+ beq _02233790
+ mov r5, #0
+ b _02233790
+_02233788:
+ and r0, r4
+ cmp r4, r0
+ beq _02233790
+ mov r5, #0
+_02233790:
+ cmp r5, #0
+ beq _0223379C
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0223A424
+_0223379C:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022337A4
+MOD11_022337A4: ; 0x022337A4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02255D20
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022337C0
+MOD11_022337C0: ; 0x022337C0
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A434
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD11_022337E0
+MOD11_022337E0: ; 0x022337E0
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r2, _02233804 ; =0x00003044
+ add r0, r4, #0
+ ldr r2, [r4, r2]
+ mov r1, #0x1e
+ lsl r2, r2, #4
+ add r3, r4, r2
+ ldr r2, _02233808 ; =0x000003DE
+ ldrh r2, [r3, r2]
+ bl MOD11_0223A434
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_02233804: .word 0x00003044
+_02233808: .word 0x000003DE
+
+ thumb_func_start MOD11_0223380C
+MOD11_0223380C: ; 0x0223380C
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ ldr r2, _02233890 ; =0x0000213C
+ mov r1, #1
+ ldr r3, [r4, r2]
+ bic r3, r1
+ str r3, [r4, r2]
+ ldr r3, [r4, r2]
+ ldr r1, _02233894 ; =0xFFFFBFFF
+ and r1, r3
+ mov r3, #0x49
+ lsl r3, r3, #2
+ str r1, [r4, r2]
+ ldr r2, [r4, r3]
+ ldr r1, _02233898 ; =0x00003044
+ cmp r0, #0
+ str r2, [r4, r1]
+ bne _02233866
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r3, [r4, r3]
+ ldr r2, [r4, #0x64]
+ lsl r3, r3, #0x10
+ add r0, r5, #0
+ add r1, r4, #0
+ lsr r3, r3, #0x10
+ bl MOD11_02244C28
+ str r0, [r4, #0x6c]
+ ldr r1, [r4, #0x64]
+ lsl r1, r1, #4
+ add r2, r4, r1
+ ldr r1, _0223389C ; =0x000021AC
+ str r0, [r2, r1]
+_02233866:
+ ldr r0, [r4, #0x6c]
+ cmp r0, #0xff
+ bne _0223387C
+ mov r2, #0x26
+ str r2, [r4, #0xc]
+ add r0, r4, #0
+ mov r1, #1
+ add r2, #0xf3
+ bl MOD11_0223A434
+ b _02233888
+_0223387C:
+ ldr r2, _02233898 ; =0x00003044
+ add r0, r4, #0
+ ldr r2, [r4, r2]
+ mov r1, #0
+ bl MOD11_0223A434
+_02233888:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_02233890: .word 0x0000213C
+_02233894: .word 0xFFFFBFFF
+_02233898: .word 0x00003044
+_0223389C: .word 0x000021AC
+
+ thumb_func_start MOD11_022338A0
+MOD11_022338A0: ; 0x022338A0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0222FF74
+ mov r1, #1
+ lsl r1, r1, #0xa
+ tst r0, r1
+ bne _022338C8
+ add r0, r5, #0
+ bl MOD11_02230C50
+ mov r1, #1
+ tst r0, r1
+ beq _022338D0
+_022338C8:
+ ldr r0, _022338F4 ; =0x00002150
+ mov r1, #1
+ str r1, [r4, r0]
+ b _022338F0
+_022338D0:
+ ldr r3, [r4, #0x6c]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD11_0224C474
+ str r0, [sp]
+ ldr r3, _022338F8 ; =0x0000214C
+ ldr r1, [r4, #0x64]
+ ldr r2, [r4, #0x6c]
+ ldr r3, [r4, r3]
+ add r0, r4, #0
+ bl MOD11_0224BF3C
+ ldr r1, _022338F4 ; =0x00002150
+ str r0, [r4, r1]
+_022338F0:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022338F4: .word 0x00002150
+_022338F8: .word 0x0000214C
+
+ thumb_func_start MOD11_022338FC
+MOD11_022338FC: ; 0x022338FC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ add r7, r0, #0
+ bl MOD11_0222FF74
+ add r4, r0, #0
+ ldr r1, [r5, #0x74]
+ add r0, r7, #0
+ bl MOD11_0222FF7C
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r1, r0, #0
+ ldr r0, _02233A70 ; =0x00000195
+ ldrb r2, [r6, r0]
+ mov r0, #1
+ tst r0, r2
+ beq _02233936
+ mov r0, #0xa9
+ lsl r0, r0, #2
+ tst r0, r4
+ beq _02233938
+_02233936:
+ b _02233A64
+_02233938:
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r1, [sp, #4]
+ str r0, [sp]
+ add r4, r0, #0
+ add r0, r7, #0
+ bl MOD11_0222FF88
+ bl GetPartyCount
+ cmp r0, #0
+ ble _022339C6
+_02233950:
+ add r0, r7, #0
+ mov r1, #0
+ add r2, r4, #0
+ bl MOD11_02230014
+ mov r1, #5
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _022339B4
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _022339B4
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ ldr r1, [r5, #0x74]
+ asr r1, r1, #1
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1d
+ add r1, r5, r1
+ add r1, #0xa4
+ ldr r1, [r1]
+ tst r0, r1
+ beq _02233994
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+_02233994:
+ add r0, r6, #0
+ mov r1, #6
+ mov r2, #0
+ bl GetMonData
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ add r0, r5, #0
+ mov r2, #1
+ bl MOD11_0224C12C
+ cmp r0, #0x32
+ bne _022339B4
+ ldr r0, [sp]
+ add r0, r0, #1
+ str r0, [sp]
+_022339B4:
+ add r0, r7, #0
+ mov r1, #0
+ add r4, r4, #1
+ bl MOD11_0222FF88
+ bl GetPartyCount
+ cmp r4, r0
+ blt _02233950
+_022339C6:
+ ldr r1, [r5, #0x74]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldrh r0, [r1, r0]
+ mov r1, #9
+ bl GetMonBaseStat
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ ldr r2, [r5, #0x74]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r5, r0
+ ldr r0, _02233A74 ; =0x00002D74
+ ldrb r0, [r2, r0]
+ mul r0, r1
+ mov r1, #7
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ ldr r1, [sp]
+ lsr r0, r0, #0x10
+ cmp r1, #0
+ beq _02233A3E
+ lsr r4, r0, #1
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl _s32_div_f
+ add r1, r5, #0
+ add r1, #0x9c
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0x9c
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02233A1E
+ add r0, r5, #0
+ mov r1, #1
+ add r0, #0x9c
+ str r1, [r0]
+_02233A1E:
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl _s32_div_f
+ add r1, r5, #0
+ add r1, #0xa0
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02233A6A
+ mov r0, #1
+ add r5, #0xa0
+ str r0, [r5]
+ b _02233A6A
+_02233A3E:
+ ldr r1, [sp, #4]
+ bl _s32_div_f
+ add r1, r5, #0
+ add r1, #0x9c
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0x9c
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02233A5C
+ add r0, r5, #0
+ mov r1, #1
+ add r0, #0x9c
+ str r1, [r0]
+_02233A5C:
+ mov r0, #0
+ add r5, #0xa0
+ str r0, [r5]
+ b _02233A6A
+_02233A64:
+ add r0, r5, #0
+ bl MOD11_0223A424
+_02233A6A:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02233A70: .word 0x00000195
+_02233A74: .word 0x00002D74
+
+ thumb_func_start MOD11_02233A78
+MOD11_02233A78: ; 0x02233A78
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ mov r0, #5
+ mov r1, #0x58
+ bl AllocFromHeap
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r2, #0
+ str r5, [r0]
+ ldr r0, [r4, r1]
+ str r4, [r0, #4]
+ ldr r0, [r4, r1]
+ str r2, [r0, #0x28]
+ ldr r0, [r4, r1]
+ str r2, [r0, #0x48]
+ ldr r0, _02233AB4 ; =MOD11_0223A79C
+ ldr r1, [r4, r1]
+ bl FUN_0200CA44
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02233AB4: .word MOD11_0223A79C
+
+ thumb_func_start MOD11_02233AB8
+MOD11_02233AB8: ; 0x02233AB8
+ push {r3, lr}
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02233ACC
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+_02233ACC:
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD11_02233AD0
+MOD11_02233AD0: ; 0x02233AD0
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02233AE8
+MOD11_02233AE8: ; 0x02233AE8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ str r1, [sp, #8]
+ add r6, r0, #0
+ bl MOD11_0222FF84
+ add r7, r0, #0
+ ldr r0, [sp, #8]
+ mov r1, #1
+ bl MOD11_0223A424
+ mov r4, #0
+ add r5, r4, #0
+ cmp r7, #0
+ ble _02233B40
+ ldr r0, [sp, #8]
+ str r0, [sp, #0xc]
+_02233B0A:
+ mov r0, #0x4f
+ ldr r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r1, [r1, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _02233B34
+ add r0, r5, #0
+ bl MaskOfFlagNo
+ orr r4, r0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ ldr r1, [sp, #8]
+ add r0, r6, #0
+ add r2, r5, #0
+ mov r3, #1
+ bl MOD11_022558E0
+_02233B34:
+ ldr r0, [sp, #0xc]
+ add r5, r5, #1
+ add r0, r0, #4
+ str r0, [sp, #0xc]
+ cmp r5, r7
+ blt _02233B0A
+_02233B40:
+ mov r5, #0
+ cmp r7, #0
+ ble _02233B98
+_02233B46:
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ cmp r0, #7
+ bne _02233B80
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_022302BC
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ bl MaskOfFlagNo
+ tst r0, r4
+ bne _02233B92
+ ldr r0, [sp, #0x10]
+ bl MaskOfFlagNo
+ tst r0, r4
+ bne _02233B92
+ add r0, r5, #0
+ bl MaskOfFlagNo
+ orr r4, r0
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_022564CC
+ b _02233B92
+_02233B80:
+ add r0, r5, #0
+ bl MaskOfFlagNo
+ tst r0, r4
+ bne _02233B92
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_022564CC
+_02233B92:
+ add r5, r5, #1
+ cmp r5, r7
+ blt _02233B46
+_02233B98:
+ mov r0, #0
+ cmp r7, #0
+ ble _02233BBA
+ mov r1, #0x4f
+ ldr r4, [sp, #8]
+ lsl r1, r1, #2
+ mov r2, #1
+_02233BA6:
+ ldr r3, [r4, r1]
+ tst r3, r2
+ beq _02233BB2
+ ldr r1, [sp, #8]
+ str r0, [r1, #0x78]
+ b _02233BBA
+_02233BB2:
+ add r0, r0, #1
+ add r4, r4, #4
+ cmp r0, r7
+ blt _02233BA6
+_02233BBA:
+ mov r0, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02233BC0
+MOD11_02233BC0: ; 0x02233BC0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r0, [sp]
+ add r5, r1, #0
+ bl MOD11_0222FF84
+ str r0, [sp, #8]
+ mov r6, #0
+ ldr r1, [sp, #8]
+ add r0, r6, #0
+ cmp r1, #0
+ ble _02233BF2
+ mov r3, #0x4f
+ add r1, r5, #0
+ lsl r3, r3, #2
+ mov r4, #1
+_02233BE0:
+ ldr r2, [r1, r3]
+ tst r2, r4
+ beq _02233BE8
+ add r6, r6, #1
+_02233BE8:
+ ldr r2, [sp, #8]
+ add r0, r0, #1
+ add r1, r1, #4
+ cmp r0, r2
+ blt _02233BE0
+_02233BF2:
+ ldr r0, [sp, #8]
+ mov r4, #0
+ cmp r0, #0
+ ble _02233C6C
+ str r5, [sp, #4]
+ add r7, r5, #0
+_02233BFE:
+ mov r0, #0x4f
+ ldr r1, [sp, #4]
+ lsl r0, r0, #2
+ ldr r1, [r1, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _02233C58
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ beq _02233C58
+ mov r0, #0x23
+ lsl r0, r0, #8
+ ldrb r0, [r7, r0]
+ add r1, r5, r4
+ sub r6, r6, #1
+ sub r2, r0, #1
+ ldr r0, _02233C8C ; =0x000021A0
+ strb r2, [r1, r0]
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ mov r1, #0x85
+ lsl r1, r1, #6
+ ldr r1, [r5, r1]
+ lsl r0, r0, #0x18
+ tst r0, r1
+ bne _02233C58
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ mov r1, #0x85
+ lsl r1, r1, #6
+ ldr r1, [r5, r1]
+ lsl r0, r0, #0x18
+ orr r1, r0
+ mov r0, #0x85
+ lsl r0, r0, #6
+ str r1, [r5, r0]
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_022564CC
+_02233C58:
+ ldr r0, [sp, #4]
+ add r4, r4, #1
+ add r0, r0, #4
+ str r0, [sp, #4]
+ mov r0, #1
+ lsl r0, r0, #8
+ add r7, r7, r0
+ ldr r0, [sp, #8]
+ cmp r4, r0
+ blt _02233BFE
+_02233C6C:
+ cmp r6, #0
+ bne _02233C84
+ mov r1, #0x85
+ lsl r1, r1, #6
+ ldr r2, [r5, r1]
+ ldr r0, _02233C90 ; =0xF0FFFFFF
+ and r0, r2
+ str r0, [r5, r1]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+_02233C84:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02233C8C: .word 0x000021A0
+_02233C90: .word 0xF0FFFFFF
+
+ thumb_func_start MOD11_02233C94
+MOD11_02233C94: ; 0x02233C94
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ cmp r0, #1
+ beq _02233CB6
+ cmp r0, #6
+ beq _02233CBA
+ cmp r0, #0x12
+ beq _02233CBE
+ b _02233CC0
+_02233CB6:
+ ldr r4, [r5, #0x64]
+ b _02233CC0
+_02233CBA:
+ ldr r4, [r5, #0x78]
+ b _02233CC0
+_02233CBE:
+ ldr r4, [r5, #0x6c]
+_02233CC0:
+ mov r0, #0x4f
+ lsl r0, r0, #2
+ add r3, r5, r0
+ lsl r2, r4, #2
+ ldr r1, [r3, r2]
+ mov r0, #1
+ bic r1, r0
+ add r0, r4, #0
+ str r1, [r3, r2]
+ bl MaskOfFlagNo
+ ldr r3, _02233D24 ; =0x00003108
+ mov r2, #0
+ mvn r2, r2
+ eor r0, r2
+ ldrb r1, [r5, r3]
+ add r2, r4, #0
+ and r0, r1
+ ldr r1, _02233D28 ; =0x000021A0
+ strb r0, [r5, r3]
+ add r0, r5, r1
+ sub r1, r1, #4
+ add r6, r5, r1
+ ldrb r1, [r0, r4]
+ strb r1, [r6, r4]
+ mov r1, #6
+ strb r1, [r0, r4]
+ ldrb r3, [r6, r4]
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_02242B78
+ ldrb r3, [r6, r4]
+ add r0, r7, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_0224B290
+ ldr r0, _02233D2C ; =0x00002E4C
+ add r2, r4, #0
+ ldr r1, [r5, r0]
+ ldr r0, _02233D30 ; =0x00003122
+ strh r1, [r5, r0]
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_02245608
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02233D24: .word 0x00003108
+_02233D28: .word 0x000021A0
+_02233D2C: .word 0x00002E4C
+_02233D30: .word 0x00003122
+
+ thumb_func_start MOD11_02233D34
+MOD11_02233D34: ; 0x02233D34
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ bl MOD11_0222FF84
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ mov r0, #0
+ cmp r4, #0
+ ble _02233D76
+ mov r2, #0x4f
+ add r1, r5, #0
+ lsl r2, r2, #2
+ mov r3, #1
+_02233D5C:
+ ldr r6, [r1, r2]
+ tst r6, r3
+ beq _02233D6E
+ str r0, [r5, #0x78]
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+ b _02233D76
+_02233D6E:
+ add r0, r0, #1
+ add r1, r1, #4
+ cmp r0, r4
+ blt _02233D5C
+_02233D76:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02233D7C
+MOD11_02233D7C: ; 0x02233D7C
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ mov r0, #5
+ mov r1, #0x58
+ bl AllocFromHeap
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r2, #0
+ str r5, [r0]
+ ldr r0, [r4, r1]
+ str r4, [r0, #4]
+ ldr r0, [r4, r1]
+ str r2, [r0, #0x28]
+ ldr r0, [r4, r1]
+ str r6, [r0, #0x24]
+ add r0, r1, #0
+ sub r0, #0x50
+ ldr r3, [r4, r0]
+ ldr r0, [r4, r1]
+ str r3, [r0, #0x2c]
+ ldr r0, _02233DC8 ; =MOD11_0223B49C
+ ldr r1, [r4, r1]
+ bl FUN_0200CA44
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02233DC8: .word MOD11_0223B49C
+
+ thumb_func_start MOD11_02233DCC
+MOD11_02233DCC: ; 0x02233DCC
+ push {r3, lr}
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02233DE0
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+_02233DE0:
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD11_02233DE4
+MOD11_02233DE4: ; 0x02233DE4
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r0, _02233E4C ; =0x0000217D
+ ldrb r0, [r5, r0]
+ cmp r0, #0
+ bne _02233E46
+ cmp r4, #0
+ bne _02233E36
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x5c
+ bne _02233E1C
+ mov r4, #5
+ b _02233E36
+_02233E1C:
+ bl LCRandom
+ mov r1, #3
+ and r0, r1
+ cmp r0, #2
+ bge _02233E2C
+ add r4, r0, #2
+ b _02233E36
+_02233E2C:
+ bl LCRandom
+ mov r1, #3
+ and r0, r1
+ add r4, r0, #2
+_02233E36:
+ lsl r0, r4, #0x18
+ ldr r1, _02233E50 ; =0x0000217C
+ lsr r2, r0, #0x18
+ strb r2, [r5, r1]
+ add r0, r1, #1
+ strb r2, [r5, r0]
+ add r1, #0xc
+ str r6, [r5, r1]
+_02233E46:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02233E4C: .word 0x0000217D
+_02233E50: .word 0x0000217C
+
+ thumb_func_start MOD11_02233E54
+MOD11_02233E54: ; 0x02233E54
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r7, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r5, r0, #0
+ ldr r2, [sp]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_0223A444
+ add r4, r0, #0
+ cmp r6, #0x14
+ bhi _02233F3E
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02233E96: ; jump table
+ .short _02233F3E - _02233E96 - 2 ; case 0
+ .short _02233F3E - _02233E96 - 2 ; case 1
+ .short _02233F3E - _02233E96 - 2 ; case 2
+ .short _02233F3E - _02233E96 - 2 ; case 3
+ .short _02233F3E - _02233E96 - 2 ; case 4
+ .short _02233F3E - _02233E96 - 2 ; case 5
+ .short _02233F3E - _02233E96 - 2 ; case 6
+ .short _02233EC0 - _02233E96 - 2 ; case 7
+ .short _02233EC4 - _02233E96 - 2 ; case 8
+ .short _02233ECC - _02233E96 - 2 ; case 9
+ .short _02233ED4 - _02233E96 - 2 ; case 10
+ .short _02233EDC - _02233E96 - 2 ; case 11
+ .short _02233EEA - _02233E96 - 2 ; case 12
+ .short _02233EF4 - _02233E96 - 2 ; case 13
+ .short _02233F00 - _02233E96 - 2 ; case 14
+ .short _02233F08 - _02233E96 - 2 ; case 15
+ .short _02233F10 - _02233E96 - 2 ; case 16
+ .short _02233F1A - _02233E96 - 2 ; case 17
+ .short _02233F20 - _02233E96 - 2 ; case 18
+ .short _02233F2E - _02233E96 - 2 ; case 19
+ .short _02233F36 - _02233E96 - 2 ; case 20
+_02233EC0:
+ str r5, [r4]
+ b _02233F42
+_02233EC4:
+ ldr r0, [r4]
+ add r0, r0, r5
+ str r0, [r4]
+ b _02233F42
+_02233ECC:
+ ldr r0, [r4]
+ sub r0, r0, r5
+ str r0, [r4]
+ b _02233F42
+_02233ED4:
+ ldr r0, [r4]
+ orr r0, r5
+ str r0, [r4]
+ b _02233F42
+_02233EDC:
+ mov r0, #0
+ mvn r0, r0
+ ldr r1, [r4]
+ eor r0, r5
+ and r0, r1
+ str r0, [r4]
+ b _02233F42
+_02233EEA:
+ ldr r0, [r4]
+ add r1, r0, #0
+ mul r1, r5
+ str r1, [r4]
+ b _02233F42
+_02233EF4:
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl _s32_div_f
+ str r0, [r4]
+ b _02233F42
+_02233F00:
+ ldr r0, [r4]
+ lsl r0, r5
+ str r0, [r4]
+ b _02233F42
+_02233F08:
+ ldr r0, [r4]
+ asr r0, r5
+ str r0, [r4]
+ b _02233F42
+_02233F10:
+ add r0, r5, #0
+ bl MaskOfFlagNo
+ str r0, [r4]
+ b _02233F42
+_02233F1A:
+ bl ErrorHandling
+ b _02233F42
+_02233F20:
+ ldr r0, [r4]
+ sub r0, r0, r5
+ str r0, [r4]
+ bpl _02233F42
+ mov r0, #0
+ str r0, [r4]
+ b _02233F42
+_02233F2E:
+ ldr r0, [r4]
+ eor r0, r5
+ str r0, [r4]
+ b _02233F42
+_02233F36:
+ ldr r0, [r4]
+ and r0, r5
+ str r0, [r4]
+ b _02233F42
+_02233F3E:
+ bl ErrorHandling
+_02233F42:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02233F48
+MOD11_02233F48: ; 0x02233F48
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r0, [sp]
+ mov r0, #0xb5
+ add r5, r1, #0
+ lsl r0, r0, #6
+ add r2, r5, r0
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r6, r2, r0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp, #0x14]
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ bl MOD11_0223A404
+ ldr r1, _022342D0 ; =0x0000213C
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r2, [r5, r1]
+ ldr r0, _022342D4 ; =0xFFFDFFFF
+ and r2, r0
+ str r2, [r5, r1]
+ add r1, r5, #0
+ add r1, #0x8c
+ ldr r4, [r1]
+ cmp r4, #0x2e
+ blt _02233FA8
+ asr r7, r0, #0x11
+ mov r0, #0x4e
+ mov r1, #0xd
+ lsl r0, r0, #2
+ sub r4, #0x2e
+ str r1, [r5, r0]
+ b _02233FD8
+_02233FA8:
+ cmp r4, #0x27
+ blt _02233FBA
+ mov r0, #0x4e
+ mov r1, #0xc
+ lsl r0, r0, #2
+ sub r4, #0x27
+ mov r7, #2
+ str r1, [r5, r0]
+ b _02233FD8
+_02233FBA:
+ cmp r4, #0x16
+ blt _02233FCC
+ asr r7, r0, #0x12
+ mov r0, #0x4e
+ mov r1, #0xd
+ lsl r0, r0, #2
+ sub r4, #0x16
+ str r1, [r5, r0]
+ b _02233FD8
+_02233FCC:
+ mov r0, #0x4e
+ mov r1, #0xc
+ lsl r0, r0, #2
+ sub r4, #0xf
+ mov r7, #1
+ str r1, [r5, r0]
+_02233FD8:
+ cmp r7, #0
+ bgt _02233FDE
+ b _02234116
+_02233FDE:
+ add r1, r4, #1
+ add r6, #0x18
+ add r0, r6, r1
+ str r0, [sp, #4]
+ ldrsb r0, [r6, r1]
+ cmp r0, #0xc
+ bne _02234042
+ ldr r1, _022342D0 ; =0x0000213C
+ mov r0, #2
+ ldr r2, [r5, r1]
+ lsl r0, r0, #0x10
+ orr r0, r2
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ sub r0, r0, #2
+ cmp r0, #1
+ bhi _0223400E
+ ldr r1, [sp, #0x10]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ b _02234538
+_0223400E:
+ add r0, r5, #0
+ mov r1, #0x8e
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0xc
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ add r0, r5, #0
+ add r1, r4, #1
+ add r0, #0xfc
+ str r1, [r0]
+ ldr r1, [sp, #0x14]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ b _02234538
+_02234042:
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #3
+ bne _0223408E
+ add r0, r5, #0
+ ldr r1, _022342D8 ; =0x0000026E
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0x27
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, _022342DC ; =0x00002D67
+ add r2, r5, r2
+ ldrb r2, [r2, r0]
+ add r0, r5, #0
+ add r0, #0xfc
+ str r2, [r0]
+ add r0, r4, #1
+ add r1, #0x40
+ str r0, [r5, r1]
+ b _022340FA
+_0223408E:
+ cmp r0, #5
+ bne _022340CA
+ mov r1, #0xbd
+ add r0, r5, #0
+ lsl r1, r1, #2
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0x2d
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ ldr r2, [r5, r1]
+ add r0, r5, #0
+ add r0, #0xfc
+ str r2, [r0]
+ add r0, r4, #1
+ sub r1, #0x28
+ str r0, [r5, r1]
+ b _022340FA
+_022340CA:
+ cmp r7, #1
+ bne _022340D2
+ ldr r1, _022342E0 ; =0x000002EE
+ b _022340D4
+_022340D2:
+ ldr r1, _022342E4 ; =0x000002F1
+_022340D4:
+ add r0, r5, #0
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0xc
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ add r0, r4, #1
+ add r5, #0xfc
+ str r0, [r5]
+_022340FA:
+ ldr r0, [sp, #4]
+ mov r1, #0
+ ldrsb r0, [r0, r1]
+ add r2, r0, r7
+ ldr r0, [sp, #4]
+ strb r2, [r0]
+ ldrsb r0, [r0, r1]
+ cmp r0, #0xc
+ bgt _0223410E
+ b _02234538
+_0223410E:
+ ldr r0, [sp, #4]
+ mov r1, #0xc
+ strb r1, [r0]
+ b _02234538
+_02234116:
+ add r0, r5, #0
+ add r0, #0x90
+ ldr r1, [r0]
+ mov r0, #2
+ lsl r0, r0, #0x1a
+ tst r1, r0
+ beq _02234126
+ b _0223449C
+_02234126:
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ ldr r2, [r5, #0x64]
+ cmp r2, r1
+ bne _02234134
+ b _022343E4
+_02234134:
+ ldr r0, [sp]
+ bl MOD11_02230270
+ lsl r0, r0, #3
+ mov r1, #0x71
+ add r0, r5, r0
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x1d
+ beq _02234172
+ add r0, r5, #0
+ sub r1, #0xb3
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #2
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ mov r0, #1
+ str r0, [sp, #8]
+ b _0223444C
+_02234172:
+ add r2, r5, #0
+ add r2, #0x94
+ ldr r1, [r5, #0x64]
+ ldr r2, [r2]
+ add r0, r5, #0
+ mov r3, #0x1d
+ bl MOD11_02246D84
+ cmp r0, #1
+ beq _0223419A
+ add r2, r5, #0
+ add r2, #0x94
+ ldr r1, [r5, #0x64]
+ ldr r2, [r2]
+ add r0, r5, #0
+ mov r3, #0x49
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _0223423C
+_0223419A:
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #3
+ bne _022341FE
+ add r0, r5, #0
+ ldr r1, _022342E8 ; =0x000002D7
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0x35
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _022342DC ; =0x00002D67
+ ldrb r1, [r1, r0]
+ add r0, r5, #0
+ add r0, #0xfc
+ str r1, [r0]
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ mov r1, #1
+ lsl r1, r1, #8
+ str r0, [r5, r1]
+ ldr r0, [r5, #0x64]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, _022342DC ; =0x00002D67
+ add r2, r5, r2
+ ldrb r0, [r2, r0]
+ add r1, #0x44
+ str r0, [r5, r1]
+ b _02234236
+_022341FE:
+ add r0, r5, #0
+ ldr r1, _022342EC ; =0x0000029D
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0xb
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _022342DC ; =0x00002D67
+ ldrb r1, [r1, r0]
+ add r0, r5, #0
+ add r0, #0xfc
+ str r1, [r0]
+_02234236:
+ mov r0, #1
+ str r0, [sp, #8]
+ b _0223444C
+_0223423C:
+ add r2, r5, #0
+ add r2, #0x94
+ ldr r1, [r5, #0x64]
+ ldr r2, [r2]
+ add r0, r5, #0
+ mov r3, #0x33
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02234256
+ add r0, r4, #1
+ cmp r0, #6
+ beq _0223426E
+_02234256:
+ add r2, r5, #0
+ add r2, #0x94
+ ldr r1, [r5, #0x64]
+ ldr r2, [r2]
+ add r0, r5, #0
+ mov r3, #0x34
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02234338
+ cmp r4, #0
+ bne _02234338
+_0223426E:
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #3
+ bne _022342F0
+ add r0, r5, #0
+ ldr r1, _022342E8 ; =0x000002D7
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0x35
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _022342DC ; =0x00002D67
+ ldrb r1, [r1, r0]
+ add r0, r5, #0
+ add r0, #0xfc
+ str r1, [r0]
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ mov r1, #1
+ lsl r1, r1, #8
+ str r0, [r5, r1]
+ ldr r0, [r5, #0x64]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, _022342DC ; =0x00002D67
+ add r2, r5, r2
+ ldrb r0, [r2, r0]
+ add r1, #0x44
+ b _02234330
+ .align 2, 0
+_022342D0: .word 0x0000213C
+_022342D4: .word 0xFFFDFFFF
+_022342D8: .word 0x0000026E
+_022342DC: .word 0x00002D67
+_022342E0: .word 0x000002EE
+_022342E4: .word 0x000002F1
+_022342E8: .word 0x000002D7
+_022342EC: .word 0x0000029D
+_022342F0:
+ mov r1, #0xb
+ add r0, r5, #0
+ lsl r1, r1, #6
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0x27
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, _02234540 ; =0x00002D67
+ add r2, r5, r2
+ ldrb r2, [r2, r0]
+ add r0, r5, #0
+ add r0, #0xfc
+ str r2, [r0]
+ add r0, r4, #1
+ add r1, #0x40
+_02234330:
+ str r0, [r5, r1]
+ mov r0, #1
+ str r0, [sp, #8]
+ b _0223444C
+_02234338:
+ add r0, r4, #1
+ add r1, r6, r0
+ mov r0, #0x18
+ ldrsb r0, [r1, r0]
+ cmp r0, #0
+ bne _022343A2
+ ldr r1, _02234544 ; =0x0000213C
+ mov r0, #2
+ ldr r2, [r5, r1]
+ lsl r0, r0, #0x10
+ orr r0, r2
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ sub r0, r0, #2
+ cmp r0, #1
+ bhi _0223436A
+ ldr r1, [sp, #0x10]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223436A:
+ add r0, r5, #0
+ mov r1, #0x91
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0xc
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ add r0, r5, #0
+ add r1, r4, #1
+ add r0, #0xfc
+ str r1, [r0]
+ ldr r1, [sp, #0x14]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022343A2:
+ add r2, r5, #0
+ add r2, #0x94
+ ldr r1, [r5, #0x64]
+ ldr r2, [r2]
+ add r0, r5, #0
+ mov r3, #0x13
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _022343C6
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #2
+ bne _022343C6
+ mov r0, #1
+ str r0, [sp, #8]
+ b _0223444C
+_022343C6:
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02234548 ; =0x00002DB0
+ ldr r1, [r1, r0]
+ mov r0, #1
+ lsl r0, r0, #0x18
+ tst r0, r1
+ beq _0223444C
+ mov r0, #2
+ str r0, [sp, #8]
+ b _0223444C
+_022343E4:
+ add r1, r4, #1
+ add r2, r6, r1
+ mov r1, #0x18
+ ldrsb r1, [r2, r1]
+ cmp r1, #0
+ bne _0223444C
+ ldr r1, _02234544 ; =0x0000213C
+ lsr r0, r0, #0xa
+ ldr r2, [r5, r1]
+ orr r0, r2
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ sub r0, r0, #2
+ cmp r0, #1
+ bhi _02234414
+ ldr r1, [sp, #0x10]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02234414:
+ add r0, r5, #0
+ mov r1, #0x91
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0xc
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ add r0, r5, #0
+ add r1, r4, #1
+ add r0, #0xfc
+ str r1, [r0]
+ ldr r1, [sp, #0x14]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223444C:
+ ldr r0, [sp, #8]
+ cmp r0, #2
+ bne _0223446A
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _0223446A
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223446A:
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ beq _02234488
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #2
+ bne _02234488
+ ldr r1, [sp, #0x10]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02234488:
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ beq _0223449C
+ ldr r1, [sp, #0x14]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223449C:
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #3
+ bne _022344F0
+ add r0, r5, #0
+ ldr r1, _0223454C ; =0x00000296
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0x36
+ add r0, #0xf5
+ strb r1, [r0]
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02234540 ; =0x00002D67
+ ldrb r1, [r1, r0]
+ add r0, r5, #0
+ add r0, #0xfc
+ str r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ mov r1, #1
+ lsl r1, r1, #8
+ str r0, [r5, r1]
+ add r2, r4, #1
+ add r0, r1, #4
+ str r2, [r5, r0]
+ b _02234524
+_022344F0:
+ mov r0, #0
+ mvn r0, r0
+ cmp r7, r0
+ bne _022344FC
+ ldr r1, _02234550 ; =0x000002FA
+ b _022344FE
+_022344FC:
+ ldr r1, _02234554 ; =0x000002FD
+_022344FE:
+ add r0, r5, #0
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0xc
+ add r0, #0xf5
+ strb r1, [r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ add r0, r4, #1
+ add r5, #0xfc
+ str r0, [r5]
+_02234524:
+ add r6, #0x18
+ add r1, r4, #1
+ ldrsb r0, [r6, r1]
+ add r0, r0, r7
+ strb r0, [r6, r1]
+ ldrsb r0, [r6, r1]
+ cmp r0, #0
+ bge _02234538
+ mov r0, #0
+ strb r0, [r6, r1]
+_02234538:
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02234540: .word 0x00002D67
+_02234544: .word 0x0000213C
+_02234548: .word 0x00002DB0
+_0223454C: .word 0x00000296
+_02234550: .word 0x000002FA
+_02234554: .word 0x000002FD
+
+ thumb_func_start MOD11_02234558
+MOD11_02234558: ; 0x02234558
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ ldr r0, [sp]
+ ldr r2, [sp, #8]
+ add r1, r5, #0
+ bl MOD11_0223C230
+ str r0, [sp, #4]
+ ldr r1, [sp, #4]
+ add r0, r5, #0
+ add r2, r6, #0
+ mov r3, #0
+ bl MOD11_02243420
+ str r0, [sp, #0xc]
+ cmp r7, #0x14
+ bhi _02234644
+ add r1, r7, r7
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022345B2: ; jump table
+ .short _02234644 - _022345B2 - 2 ; case 0
+ .short _02234644 - _022345B2 - 2 ; case 1
+ .short _02234644 - _022345B2 - 2 ; case 2
+ .short _02234644 - _022345B2 - 2 ; case 3
+ .short _02234644 - _022345B2 - 2 ; case 4
+ .short _02234644 - _022345B2 - 2 ; case 5
+ .short _02234644 - _022345B2 - 2 ; case 6
+ .short _022345DC - _022345B2 - 2 ; case 7
+ .short _022345E0 - _022345B2 - 2 ; case 8
+ .short _022345E6 - _022345B2 - 2 ; case 9
+ .short _022345EC - _022345B2 - 2 ; case 10
+ .short _022345F2 - _022345B2 - 2 ; case 11
+ .short _022345FE - _022345B2 - 2 ; case 12
+ .short _02234606 - _022345B2 - 2 ; case 13
+ .short _02234610 - _022345B2 - 2 ; case 14
+ .short _02234616 - _022345B2 - 2 ; case 15
+ .short _0223461C - _022345B2 - 2 ; case 16
+ .short _02234626 - _022345B2 - 2 ; case 17
+ .short _0223462C - _022345B2 - 2 ; case 18
+ .short _02234638 - _022345B2 - 2 ; case 19
+ .short _0223463E - _022345B2 - 2 ; case 20
+_022345DC:
+ str r4, [sp, #0xc]
+ b _02234648
+_022345E0:
+ add r0, r0, r4
+ str r0, [sp, #0xc]
+ b _02234648
+_022345E6:
+ sub r0, r0, r4
+ str r0, [sp, #0xc]
+ b _02234648
+_022345EC:
+ orr r0, r4
+ str r0, [sp, #0xc]
+ b _02234648
+_022345F2:
+ mov r1, #0
+ mvn r1, r1
+ eor r1, r4
+ and r0, r1
+ str r0, [sp, #0xc]
+ b _02234648
+_022345FE:
+ add r1, r0, #0
+ mul r1, r4
+ str r1, [sp, #0xc]
+ b _02234648
+_02234606:
+ add r1, r4, #0
+ bl _s32_div_f
+ str r0, [sp, #0xc]
+ b _02234648
+_02234610:
+ lsl r0, r4
+ str r0, [sp, #0xc]
+ b _02234648
+_02234616:
+ asr r0, r4
+ str r0, [sp, #0xc]
+ b _02234648
+_0223461C:
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ str r0, [sp, #0xc]
+ b _02234648
+_02234626:
+ bl ErrorHandling
+ b _02234648
+_0223462C:
+ sub r0, r0, r4
+ str r0, [sp, #0xc]
+ bpl _02234648
+ mov r0, #0
+ str r0, [sp, #0xc]
+ b _02234648
+_02234638:
+ eor r0, r4
+ str r0, [sp, #0xc]
+ b _02234648
+_0223463E:
+ and r0, r4
+ str r0, [sp, #0xc]
+ b _02234648
+_02234644:
+ bl ErrorHandling
+_02234648:
+ cmp r6, #0x1a
+ bne _0223465E
+ ldr r1, [sp, #4]
+ ldr r2, [sp, #0xc]
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ bl MOD11_0223D1C4
+_0223465E:
+ ldr r1, [sp, #4]
+ add r0, r5, #0
+ add r2, r6, #0
+ add r3, sp, #0xc
+ bl MOD11_0224379C
+ ldr r0, [sp]
+ ldr r2, [sp, #4]
+ add r1, r5, #0
+ bl MOD11_02245190
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223467C
+MOD11_0223467C: ; 0x0223467C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r7, #0
+ bl MOD11_0223C230
+ ldr r1, _022346B4 ; =0x0000218C
+ add r2, r5, r1
+ lsl r1, r0, #2
+ ldr r0, [r2, r1]
+ orr r0, r4
+ str r0, [r2, r1]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022346B4: .word 0x0000218C
+
+ thumb_func_start MOD11_022346B8
+MOD11_022346B8: ; 0x022346B8
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD11_02255D3C
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022346F0
+MOD11_022346F0: ; 0x022346F0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp, #8]
+ cmp r4, #0
+ bne _02234766
+ ldr r0, [sp]
+ bl MOD11_0222FF84
+ mov r4, #0
+ str r0, [sp, #4]
+ cmp r0, #0
+ ble _022347A8
+_02234732:
+ cmp r7, #0
+ bne _02234750
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _0223475C
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add r5, #0x80
+ str r4, [r5]
+ b _022347A8
+_02234750:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ beq _022347A8
+_0223475C:
+ ldr r0, [sp, #4]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _02234732
+ b _022347A8
+_02234766:
+ ldr r0, [sp]
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_0223C230
+ add r4, r0, #0
+ cmp r7, #0
+ bne _02234790
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _022347A8
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add r5, #0x80
+ str r4, [r5]
+ b _022347A8
+_02234790:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ beq _022347A8
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add r5, #0x80
+ str r4, [r5]
+_022347A8:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022347B0
+MOD11_022347B0: ; 0x022347B0
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ bl LCRandom
+ add r1, r4, #1
+ bl _s32_div_f
+ mov r0, #0x4d
+ add r1, r6, r1
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022347E4
+MOD11_022347E4: ; 0x022347E4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_0223A444
+ add r4, r0, #0
+ ldr r2, [sp]
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_0223A444
+ add r1, r0, #0
+ cmp r6, #0x14
+ bhi _022348F2
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02234832: ; jump table
+ .short _022348F2 - _02234832 - 2 ; case 0
+ .short _022348F2 - _02234832 - 2 ; case 1
+ .short _022348F2 - _02234832 - 2 ; case 2
+ .short _022348F2 - _02234832 - 2 ; case 3
+ .short _022348F2 - _02234832 - 2 ; case 4
+ .short _022348F2 - _02234832 - 2 ; case 5
+ .short _022348F2 - _02234832 - 2 ; case 6
+ .short _0223485C - _02234832 - 2 ; case 7
+ .short _02234862 - _02234832 - 2 ; case 8
+ .short _0223486C - _02234832 - 2 ; case 9
+ .short _02234876 - _02234832 - 2 ; case 10
+ .short _02234880 - _02234832 - 2 ; case 11
+ .short _02234890 - _02234832 - 2 ; case 12
+ .short _0223489A - _02234832 - 2 ; case 13
+ .short _022348A6 - _02234832 - 2 ; case 14
+ .short _022348B2 - _02234832 - 2 ; case 15
+ .short _022348BE - _02234832 - 2 ; case 16
+ .short _022348C8 - _02234832 - 2 ; case 17
+ .short _022348CE - _02234832 - 2 ; case 18
+ .short _022348DE - _02234832 - 2 ; case 19
+ .short _022348E8 - _02234832 - 2 ; case 20
+_0223485C:
+ ldr r0, [r1]
+ str r0, [r4]
+ b _022348F6
+_02234862:
+ ldr r2, [r4]
+ ldr r0, [r1]
+ add r0, r2, r0
+ str r0, [r4]
+ b _022348F6
+_0223486C:
+ ldr r2, [r4]
+ ldr r0, [r1]
+ sub r0, r2, r0
+ str r0, [r4]
+ b _022348F6
+_02234876:
+ ldr r2, [r4]
+ ldr r0, [r1]
+ orr r0, r2
+ str r0, [r4]
+ b _022348F6
+_02234880:
+ mov r0, #0
+ ldr r1, [r1]
+ mvn r0, r0
+ ldr r2, [r4]
+ eor r0, r1
+ and r0, r2
+ str r0, [r4]
+ b _022348F6
+_02234890:
+ ldr r2, [r4]
+ ldr r0, [r1]
+ mul r0, r2
+ str r0, [r4]
+ b _022348F6
+_0223489A:
+ ldr r0, [r4]
+ ldr r1, [r1]
+ bl _s32_div_f
+ str r0, [r4]
+ b _022348F6
+_022348A6:
+ ldr r2, [r4]
+ ldr r0, [r1]
+ add r1, r2, #0
+ lsl r1, r0
+ str r1, [r4]
+ b _022348F6
+_022348B2:
+ ldr r2, [r4]
+ ldr r0, [r1]
+ add r1, r2, #0
+ asr r1, r0
+ str r1, [r4]
+ b _022348F6
+_022348BE:
+ ldr r0, [r1]
+ bl MaskOfFlagNo
+ str r0, [r4]
+ b _022348F6
+_022348C8:
+ ldr r0, [r4]
+ str r0, [r1]
+ b _022348F6
+_022348CE:
+ ldr r2, [r4]
+ ldr r0, [r1]
+ sub r0, r2, r0
+ str r0, [r4]
+ bpl _022348F6
+ mov r0, #0
+ str r0, [r4]
+ b _022348F6
+_022348DE:
+ ldr r2, [r4]
+ ldr r0, [r1]
+ eor r0, r2
+ str r0, [r4]
+ b _022348F6
+_022348E8:
+ ldr r2, [r4]
+ ldr r0, [r1]
+ and r0, r2
+ str r0, [r4]
+ b _022348F6
+_022348F2:
+ bl ErrorHandling
+_022348F6:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022348FC
+MOD11_022348FC: ; 0x022348FC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r7, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp, #8]
+ ldr r2, [sp, #4]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ str r0, [sp]
+ ldr r1, [sp]
+ add r0, r4, #0
+ add r2, r6, #0
+ mov r3, #0
+ bl MOD11_02243420
+ str r0, [sp, #0xc]
+ ldr r2, [sp, #8]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_0223A444
+ add r1, r0, #0
+ cmp r5, #0x14
+ bhi _02234A22
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02234962: ; jump table
+ .short _02234A22 - _02234962 - 2 ; case 0
+ .short _02234A22 - _02234962 - 2 ; case 1
+ .short _02234A22 - _02234962 - 2 ; case 2
+ .short _02234A22 - _02234962 - 2 ; case 3
+ .short _02234A22 - _02234962 - 2 ; case 4
+ .short _02234A22 - _02234962 - 2 ; case 5
+ .short _02234A22 - _02234962 - 2 ; case 6
+ .short _0223498C - _02234962 - 2 ; case 7
+ .short _02234992 - _02234962 - 2 ; case 8
+ .short _0223499C - _02234962 - 2 ; case 9
+ .short _022349A6 - _02234962 - 2 ; case 10
+ .short _022349B0 - _02234962 - 2 ; case 11
+ .short _022349C0 - _02234962 - 2 ; case 12
+ .short _022349CA - _02234962 - 2 ; case 13
+ .short _022349D6 - _02234962 - 2 ; case 14
+ .short _022349E2 - _02234962 - 2 ; case 15
+ .short _022349EE - _02234962 - 2 ; case 16
+ .short _022349F8 - _02234962 - 2 ; case 17
+ .short _022349FE - _02234962 - 2 ; case 18
+ .short _02234A0E - _02234962 - 2 ; case 19
+ .short _02234A18 - _02234962 - 2 ; case 20
+_0223498C:
+ ldr r0, [r1]
+ str r0, [sp, #0xc]
+ b _02234A26
+_02234992:
+ ldr r2, [sp, #0xc]
+ ldr r0, [r1]
+ add r0, r2, r0
+ str r0, [sp, #0xc]
+ b _02234A26
+_0223499C:
+ ldr r2, [sp, #0xc]
+ ldr r0, [r1]
+ sub r0, r2, r0
+ str r0, [sp, #0xc]
+ b _02234A26
+_022349A6:
+ ldr r2, [sp, #0xc]
+ ldr r0, [r1]
+ orr r0, r2
+ str r0, [sp, #0xc]
+ b _02234A26
+_022349B0:
+ ldr r2, [r1]
+ mov r1, #0
+ mvn r1, r1
+ ldr r0, [sp, #0xc]
+ eor r1, r2
+ and r0, r1
+ str r0, [sp, #0xc]
+ b _02234A26
+_022349C0:
+ ldr r2, [sp, #0xc]
+ ldr r0, [r1]
+ mul r0, r2
+ str r0, [sp, #0xc]
+ b _02234A26
+_022349CA:
+ ldr r0, [sp, #0xc]
+ ldr r1, [r1]
+ bl _s32_div_f
+ str r0, [sp, #0xc]
+ b _02234A26
+_022349D6:
+ ldr r2, [sp, #0xc]
+ ldr r0, [r1]
+ add r1, r2, #0
+ lsl r1, r0
+ str r1, [sp, #0xc]
+ b _02234A26
+_022349E2:
+ ldr r2, [sp, #0xc]
+ ldr r0, [r1]
+ add r1, r2, #0
+ asr r1, r0
+ str r1, [sp, #0xc]
+ b _02234A26
+_022349EE:
+ ldr r0, [r1]
+ bl MaskOfFlagNo
+ str r0, [sp, #0xc]
+ b _02234A26
+_022349F8:
+ ldr r0, [sp, #0xc]
+ str r0, [r1]
+ b _02234A26
+_022349FE:
+ ldr r2, [sp, #0xc]
+ ldr r0, [r1]
+ sub r0, r2, r0
+ str r0, [sp, #0xc]
+ bpl _02234A26
+ mov r0, #0
+ str r0, [sp, #0xc]
+ b _02234A26
+_02234A0E:
+ ldr r2, [sp, #0xc]
+ ldr r0, [r1]
+ eor r0, r2
+ str r0, [sp, #0xc]
+ b _02234A26
+_02234A18:
+ ldr r2, [sp, #0xc]
+ ldr r0, [r1]
+ and r0, r2
+ str r0, [sp, #0xc]
+ b _02234A26
+_02234A22:
+ bl ErrorHandling
+_02234A26:
+ cmp r5, #0x11
+ beq _02234A56
+ cmp r6, #0x1a
+ bne _02234A40
+ ldr r1, [sp]
+ ldr r2, [sp, #0xc]
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0x18
+ add r0, r4, #0
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ bl MOD11_0223D1C4
+_02234A40:
+ ldr r1, [sp]
+ add r0, r4, #0
+ add r2, r6, #0
+ add r3, sp, #0xc
+ bl MOD11_0224379C
+ ldr r2, [sp]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_02245190
+_02234A56:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02234A5C
+MOD11_02234A5C: ; 0x02234A5C
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A424
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02234A7C
+MOD11_02234A7C: ; 0x02234A7C
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A43C
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02234A9C
+MOD11_02234A9C: ; 0x02234A9C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223A444
+ add r2, r0, #0
+ ldr r2, [r2]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A43C
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02234ACC
+MOD11_02234ACC: ; 0x02234ACC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ str r0, [sp, #8]
+ mov r4, #0
+ bl MOD11_0222FF74
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r1, [r5, #0x64]
+ lsl r0, r1, #1
+ add r2, r5, r0
+ ldr r0, _02234BCC ; =0x00003084
+ ldrh r2, [r2, r0]
+ cmp r2, #0
+ beq _02234AF6
+ add r4, r2, #0
+ b _02234B40
+_02234AF6:
+ mov r2, #2
+ tst r2, r6
+ beq _02234B40
+ lsl r1, r1, #3
+ add r3, r5, r1
+ add r1, r0, #0
+ add r1, #0xe
+ add r4, r0, #0
+ ldrh r2, [r3, r1]
+ add r1, r0, #0
+ add r4, #8
+ add r0, #0xa
+ add r1, #0xc
+ ldrh r4, [r3, r4]
+ ldrh r0, [r3, r0]
+ ldrh r1, [r3, r1]
+ add r0, r4, r0
+ add r0, r1, r0
+ add r4, r2, r0
+ beq _02234B40
+ ldr r6, _02234BD0 ; =0x0000308C
+ mov r7, #0x1e
+_02234B22:
+ bl LCRandom
+ lsr r2, r0, #0x1f
+ lsl r0, r0, #0x1e
+ ldr r1, [r5, #0x64]
+ sub r0, r0, r2
+ ror r0, r7
+ add r0, r2, r0
+ lsl r1, r1, #3
+ lsl r2, r0, #1
+ add r0, r5, r1
+ add r0, r2, r0
+ ldrh r4, [r0, r6]
+ cmp r4, #0
+ beq _02234B22
+_02234B40:
+ cmp r4, #0
+ beq _02234BAA
+ lsl r1, r4, #0x10
+ add r0, r5, #0
+ lsr r1, r1, #0x10
+ bl MOD11_0224C0B4
+ cmp r0, #1
+ bne _02234BAA
+ ldr r1, _02234BD4 ; =0x0000213C
+ lsl r3, r4, #0x10
+ ldr r2, [r5, r1]
+ mov r0, #1
+ bic r2, r0
+ str r2, [r5, r1]
+ ldr r2, [r5, r1]
+ ldr r0, _02234BD8 ; =0xFFFFBFFF
+ lsr r3, r3, #0x10
+ and r0, r2
+ str r0, [r5, r1]
+ ldr r0, _02234BDC ; =0x00003044
+ add r1, r5, #0
+ str r4, [r5, r0]
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #8]
+ ldr r2, [r5, #0x64]
+ bl MOD11_02244C28
+ str r0, [r5, #0x6c]
+ cmp r0, #0xff
+ bne _02234B94
+ mov r2, #0x26
+ str r2, [r5, #0xc]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, #0xf3
+ bl MOD11_0223A434
+ b _02234BC4
+_02234B94:
+ ldr r1, [r5, #0x64]
+ lsl r1, r1, #4
+ add r2, r5, r1
+ ldr r1, _02234BE0 ; =0x000021AC
+ str r0, [r2, r1]
+ add r0, r5, #0
+ mov r1, #0
+ add r2, r4, #0
+ bl MOD11_0223A434
+ b _02234BC4
+_02234BAA:
+ ldr r2, [r5, #0x64]
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ mov r1, #0x1c
+ add r3, r2, #0
+ mul r3, r1
+ add r0, r5, r0
+ ldr r2, [r0, r3]
+ mov r1, #1
+ bic r2, r1
+ mov r1, #1
+ orr r1, r2
+ str r1, [r0, r3]
+_02234BC4:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02234BCC: .word 0x00003084
+_02234BD0: .word 0x0000308C
+_02234BD4: .word 0x0000213C
+_02234BD8: .word 0xFFFFBFFF
+_02234BDC: .word 0x00003044
+_02234BE0: .word 0x000021AC
+
+ thumb_func_start MOD11_02234BE4
+MOD11_02234BE4: ; 0x02234BE4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0222FF84
+ mov r2, #0
+ cmp r0, #0
+ ble _02234C24
+ ldr r6, _02234C28 ; =0x00002D58
+ mov r1, #6
+ add r5, r6, #0
+ add r5, #0x58
+_02234C06:
+ mov r7, #0
+_02234C08:
+ add r3, r4, r7
+ add r7, r7, #1
+ strb r1, [r3, r6]
+ cmp r7, #8
+ blt _02234C08
+ ldr r3, _02234C2C ; =0x00002DB0
+ add r2, r2, #1
+ ldr r7, [r4, r3]
+ ldr r3, _02234C30 ; =0xFFEFFFFF
+ and r3, r7
+ str r3, [r4, r5]
+ add r4, #0xc0
+ cmp r2, r0
+ blt _02234C06
+_02234C24:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02234C28: .word 0x00002D58
+_02234C2C: .word 0x00002DB0
+_02234C30: .word 0xFFEFFFFF
+
+ thumb_func_start MOD11_02234C34
+MOD11_02234C34: ; 0x02234C34
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022451C0
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02234C60
+MOD11_02234C60: ; 0x02234C60
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022451F0
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02234C8C
+MOD11_02234C8C: ; 0x02234C8C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD11_02255E0C
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02234CC4
+MOD11_02234CC4: ; 0x02234CC4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD11_02255E2C
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02234CFC
+MOD11_02234CFC: ; 0x02234CFC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ add r7, r0, #0
+ add r5, r1, #0
+ str r2, [sp]
+ mov r0, #5
+ mov r1, #0x60
+ bl AllocFromHeap
+ add r4, r0, #0
+ ldr r0, [sp]
+ add r6, r7, #0
+ lsl r0, r0, #1
+ add r6, #0xa0
+ str r0, [sp, #4]
+ ldrh r0, [r6, r0]
+ add r1, sp, #8
+ bl FUN_0206ADE0
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ ldrh r0, [r6, r0]
+ bl FUN_0206ADF0
+ add r0, sp, #8
+ ldrb r1, [r0]
+ cmp r1, #3
+ bhi _02234D48
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02234D40: ; jump table
+ .short _02234D48 - _02234D40 - 2 ; case 0
+ .short _02234D5C - _02234D40 - 2 ; case 1
+ .short _02234D6E - _02234D40 - 2 ; case 2
+ .short _02234D7E - _02234D40 - 2 ; case 3
+_02234D48:
+ add r0, sp, #8
+ ldrb r0, [r0, #3]
+ sub r1, r0, #1
+ mov r0, #6
+ mul r0, r1
+ add r0, r4, r0
+ ldrh r0, [r0, #2]
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ b _02234D8C
+_02234D5C:
+ ldrb r0, [r0, #3]
+ sub r1, r0, #1
+ mov r0, #0xe
+ mul r0, r1
+ add r0, r4, r0
+ ldrh r0, [r0, #2]
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ b _02234D8C
+_02234D6E:
+ ldrb r0, [r0, #3]
+ sub r0, r0, #1
+ lsl r0, r0, #3
+ add r0, r4, r0
+ ldrh r0, [r0, #2]
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ b _02234D8C
+_02234D7E:
+ ldrb r0, [r0, #3]
+ sub r0, r0, #1
+ lsl r0, r0, #4
+ add r0, r4, r0
+ ldrh r0, [r0, #2]
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+_02234D8C:
+ ldr r2, [r7, #0x2c]
+ mov r0, #0x10
+ tst r0, r2
+ bne _02234D98
+ cmp r2, #0x4b
+ bne _02234DAE
+_02234D98:
+ add r0, sp, #8
+ ldrb r2, [r0, #1]
+ ldr r0, _02234DEC ; =0x0225FF20
+ lsl r1, r1, #2
+ ldrb r0, [r0, r2]
+ ldr r2, _02234DF0 ; =0x00002168
+ ldr r2, [r5, r2]
+ add r5, r0, #0
+ mul r1, r2
+ mul r5, r1
+ b _02234DDE
+_02234DAE:
+ mov r0, #2
+ tst r0, r2
+ add r0, sp, #8
+ beq _02234DCC
+ ldrb r2, [r0, #1]
+ ldr r0, _02234DEC ; =0x0225FF20
+ lsl r1, r1, #2
+ ldrb r0, [r0, r2]
+ ldr r2, _02234DF0 ; =0x00002168
+ ldr r2, [r5, r2]
+ add r5, r0, #0
+ mul r1, r2
+ lsl r1, r1, #1
+ mul r5, r1
+ b _02234DDE
+_02234DCC:
+ ldrb r2, [r0, #1]
+ ldr r0, _02234DEC ; =0x0225FF20
+ lsl r1, r1, #2
+ ldrb r0, [r0, r2]
+ ldr r2, _02234DF0 ; =0x00002168
+ ldr r2, [r5, r2]
+ add r5, r0, #0
+ mul r1, r2
+ mul r5, r1
+_02234DDE:
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02234DEC: .word 0x0225FF20
+_02234DF0: .word 0x00002168
+
+ thumb_func_start MOD11_02234DF4
+MOD11_02234DF4: ; 0x02234DF4
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ add r5, r0, #0
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, _02234E70 ; =0x0000241C
+ ldrb r0, [r5, r0]
+ cmp r0, #1
+ bne _02234E3E
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #1
+ bl MOD11_02234CFC
+ add r4, r0, #0
+ ldr r1, [r5, #0x2c]
+ mov r0, #0x10
+ tst r0, r1
+ bne _02234E22
+ cmp r1, #0x4b
+ bne _02234E2E
+_02234E22:
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #3
+ bl MOD11_02234CFC
+ add r4, r4, r0
+_02234E2E:
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD11_022301D4
+ add r1, r4, #0
+ bl FUN_02023A30
+ b _02234E56
+_02234E3E:
+ ldr r0, [r5, #0x68]
+ ldr r1, [r5, #0x48]
+ bl MOD11_0223158C
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD11_022301D4
+ add r1, r4, #0
+ bl FUN_02023A54
+_02234E56:
+ cmp r4, #0
+ beq _02234E62
+ mov r0, #0x13
+ lsl r0, r0, #4
+ str r4, [r6, r0]
+ b _02234E6A
+_02234E62:
+ mov r0, #0x13
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r6, r0]
+_02234E6A:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02234E70: .word 0x0000241C
+
+ thumb_func_start MOD11_02234E74
+MOD11_02234E74: ; 0x02234E74
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD11_02230E20
+ cmp r0, #1
+ beq _02234EAC
+ cmp r4, #0xf
+ beq _02234EAC
+ cmp r4, #0x10
+ beq _02234EAC
+ add r0, r4, #0
+ sub r0, #0x19
+ cmp r0, #1
+ bhi _02234ED2
+_02234EAC:
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r7, #0
+ bl MOD11_0223C230
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ bl MOD11_0224C20C
+ cmp r0, #1
+ bne _02234ED2
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r7, #0
+ add r3, r4, #0
+ bl MOD11_02255E4C
+_02234ED2:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02234ED8
+MOD11_02234ED8: ; 0x02234ED8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD11_02230E20
+ cmp r0, #1
+ beq _02234F1A
+ cmp r4, #0xf
+ beq _02234F1A
+ cmp r4, #0x10
+ beq _02234F1A
+ add r0, r4, #0
+ sub r0, #0x19
+ cmp r0, #1
+ bhi _02234F5C
+_02234F1A:
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r7, #0
+ bl MOD11_0223C230
+ add r7, r0, #0
+ ldr r2, [sp, #4]
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0223C230
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ bl MOD11_0224C20C
+ cmp r0, #1
+ bne _02234F5C
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ add r2, r4, #0
+ bl MOD11_0224C20C
+ cmp r0, #1
+ bne _02234F5C
+ ldr r3, [sp, #8]
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r7, #0
+ str r4, [sp]
+ bl MOD11_02255E7C
+_02234F5C:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02234F64
+MOD11_02234F64: ; 0x02234F64
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r7, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_0223C230
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r5, #0
+ add r2, r6, #0
+ bl MOD11_0223A444
+ add r4, r0, #0
+ add r0, r7, #0
+ bl MOD11_02230E20
+ cmp r0, #1
+ beq _02234FB4
+ cmp r6, #0xf
+ beq _02234FB4
+ cmp r6, #0x10
+ beq _02234FB4
+ ldr r0, [r4]
+ sub r0, #0x19
+ cmp r0, #1
+ bhi _02234FCE
+_02234FB4:
+ ldr r1, [sp]
+ ldr r2, [r4]
+ add r0, r5, #0
+ bl MOD11_0224C20C
+ cmp r0, #1
+ bne _02234FCE
+ ldr r2, [sp]
+ ldr r3, [r4]
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_02255E4C
+_02234FCE:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02234FD4
+MOD11_02234FD4: ; 0x02234FD4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r1, r4, #0
+ ldr r3, _02235008 ; =0x0000219C
+ add r4, r4, r2
+ ldrb r3, [r4, r3]
+ add r0, r5, #0
+ bl MOD11_02255EAC
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02235008: .word 0x0000219C
+
+ thumb_func_start MOD11_0223500C
+MOD11_0223500C: ; 0x0223500C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r1, r4, #0
+ ldr r3, _02235040 ; =0x0000219C
+ add r4, r4, r2
+ ldrb r3, [r4, r3]
+ add r0, r5, #0
+ bl MOD11_02255EF0
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02235040: .word 0x0000219C
+
+ thumb_func_start MOD11_02235044
+MOD11_02235044: ; 0x02235044
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02255F3C
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02235070
+MOD11_02235070: ; 0x02235070
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02255F54
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0223509C
+MOD11_0223509C: ; 0x0223509C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ mov r2, #0x13
+ lsl r2, r2, #4
+ add r1, r0, #0
+ ldr r2, [r4, r2]
+ add r0, r5, #0
+ bl MOD11_02255E2C
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022350CC
+MOD11_022350CC: ; 0x022350CC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x79
+ bne _022350FC
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A424
+ add sp, #8
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022350FC:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _02235238 ; =0x00002D4C
+ mov r6, #0
+_02235108:
+ ldrh r1, [r2, r0]
+ cmp r1, #0
+ beq _02235116
+ add r6, r6, #1
+ add r2, r2, #2
+ cmp r6, #4
+ blt _02235108
+_02235116:
+ mov r0, #0
+ str r0, [sp, #4]
+ cmp r6, #0
+ ble _0223518E
+ add r7, r0, #0
+_02235120:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r0, r4, r0
+ add r2, r7, r0
+ ldr r0, _02235238 ; =0x00002D4C
+ ldrh r0, [r2, r0]
+ cmp r0, #0xa0
+ beq _02235182
+ lsl r0, r0, #4
+ add r2, r4, r0
+ ldr r0, _0223523C ; =0x000003E2
+ ldrb r5, [r2, r0]
+ cmp r5, #9
+ bne _02235162
+ add r0, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #7
+ beq _0223515C
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #7
+ bne _02235160
+_0223515C:
+ mov r5, #7
+ b _02235162
+_02235160:
+ mov r5, #0
+_02235162:
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r5, r0
+ beq _02235182
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r5, r0
+ bne _0223518E
+_02235182:
+ ldr r0, [sp, #4]
+ add r7, r7, #2
+ add r0, r0, #1
+ str r0, [sp, #4]
+ cmp r0, r6
+ blt _02235120
+_0223518E:
+ ldr r0, [sp, #4]
+ cmp r0, r6
+ bne _0223519E
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A424
+ b _02235230
+_0223519E:
+ ldr r7, _02235238 ; =0x00002D4C
+_022351A0:
+ bl LCRandom
+ add r1, r6, #0
+ bl _s32_div_f
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ lsl r1, r1, #1
+ add r0, r4, r0
+ add r0, r1, r0
+ ldrh r0, [r0, r7]
+ cmp r0, #0xa0
+ beq _022351A0
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _0223523C ; =0x000003E2
+ ldrb r5, [r1, r0]
+ cmp r5, #9
+ bne _022351EE
+ add r1, r2, #0
+ add r0, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #7
+ beq _022351E8
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #7
+ bne _022351EC
+_022351E8:
+ mov r5, #7
+ b _022351EE
+_022351EC:
+ mov r5, #0
+_022351EE:
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r5, r0
+ beq _022351A0
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r5, r0
+ beq _022351A0
+ ldr r1, [r4, #0x64]
+ lsl r0, r5, #0x18
+ add r3, r1, #0
+ mov r2, #0xc0
+ mul r3, r2
+ ldr r1, _02235240 ; =0x00002D64
+ lsr r0, r0, #0x18
+ add r3, r4, r3
+ strb r0, [r3, r1]
+ ldr r3, [r4, #0x64]
+ add r1, r1, #1
+ add r6, r3, #0
+ mul r6, r2
+ add r3, r4, r6
+ strb r0, [r3, r1]
+ add r2, #0x70
+ str r5, [r4, r2]
+_02235230:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02235238: .word 0x00002D4C
+_0223523C: .word 0x000003E2
+_02235240: .word 0x00002D64
+
+ thumb_func_start MOD11_02235244
+MOD11_02235244: ; 0x02235244
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r1, #0
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r5, r0, #0
+ ldr r0, [sp]
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_0223A444
+ add r4, r0, #0
+ ldr r0, [sp]
+ ldr r2, [sp, #4]
+ add r1, r6, #0
+ bl MOD11_0223A444
+ cmp r7, #6
+ bhi _022352FC
+ add r1, r7, r7
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223529A: ; jump table
+ .short _022352A8 - _0223529A - 2 ; case 0
+ .short _022352B4 - _0223529A - 2 ; case 1
+ .short _022352C0 - _0223529A - 2 ; case 2
+ .short _022352CC - _0223529A - 2 ; case 3
+ .short _022352D8 - _0223529A - 2 ; case 4
+ .short _022352E4 - _0223529A - 2 ; case 5
+ .short _022352F0 - _0223529A - 2 ; case 6
+_022352A8:
+ ldr r1, [r4]
+ ldr r0, [r0]
+ cmp r1, r0
+ beq _022352FC
+ mov r5, #0
+ b _022352FC
+_022352B4:
+ ldr r1, [r4]
+ ldr r0, [r0]
+ cmp r1, r0
+ bne _022352FC
+ mov r5, #0
+ b _022352FC
+_022352C0:
+ ldr r1, [r4]
+ ldr r0, [r0]
+ cmp r1, r0
+ bhi _022352FC
+ mov r5, #0
+ b _022352FC
+_022352CC:
+ ldr r1, [r4]
+ ldr r0, [r0]
+ cmp r1, r0
+ bls _022352FC
+ mov r5, #0
+ b _022352FC
+_022352D8:
+ ldr r1, [r4]
+ ldr r0, [r0]
+ tst r0, r1
+ bne _022352FC
+ mov r5, #0
+ b _022352FC
+_022352E4:
+ ldr r1, [r4]
+ ldr r0, [r0]
+ tst r0, r1
+ beq _022352FC
+ mov r5, #0
+ b _022352FC
+_022352F0:
+ ldr r1, [r0]
+ ldr r0, [r4]
+ and r0, r1
+ cmp r1, r0
+ beq _022352FC
+ mov r5, #0
+_022352FC:
+ cmp r5, #0
+ beq _02235308
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0223A424
+_02235308:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02235310
+MOD11_02235310: ; 0x02235310
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r6, r1, #0
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ add r0, r6, #0
+ bl MOD11_0223A404
+ str r0, [sp, #8]
+ add r0, r6, #0
+ bl MOD11_0223A404
+ add r5, r0, #0
+ ldr r0, [sp]
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ ldr r2, [sp, #4]
+ add r0, r6, #0
+ mov r3, #0
+ bl MOD11_02243420
+ add r4, r0, #0
+ ldr r0, [sp]
+ ldr r2, [sp, #8]
+ add r1, r6, #0
+ bl MOD11_0223A444
+ cmp r7, #6
+ bhi _022353D0
+ add r1, r7, r7
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223537A: ; jump table
+ .short _02235388 - _0223537A - 2 ; case 0
+ .short _02235392 - _0223537A - 2 ; case 1
+ .short _0223539C - _0223537A - 2 ; case 2
+ .short _022353A6 - _0223537A - 2 ; case 3
+ .short _022353B0 - _0223537A - 2 ; case 4
+ .short _022353BA - _0223537A - 2 ; case 5
+ .short _022353C4 - _0223537A - 2 ; case 6
+_02235388:
+ ldr r0, [r0]
+ cmp r4, r0
+ beq _022353D0
+ mov r5, #0
+ b _022353D0
+_02235392:
+ ldr r0, [r0]
+ cmp r4, r0
+ bne _022353D0
+ mov r5, #0
+ b _022353D0
+_0223539C:
+ ldr r0, [r0]
+ cmp r4, r0
+ bhi _022353D0
+ mov r5, #0
+ b _022353D0
+_022353A6:
+ ldr r0, [r0]
+ cmp r4, r0
+ bls _022353D0
+ mov r5, #0
+ b _022353D0
+_022353B0:
+ ldr r0, [r0]
+ tst r0, r4
+ bne _022353D0
+ mov r5, #0
+ b _022353D0
+_022353BA:
+ ldr r0, [r0]
+ tst r0, r4
+ beq _022353D0
+ mov r5, #0
+ b _022353D0
+_022353C4:
+ ldr r1, [r0]
+ add r0, r1, #0
+ and r0, r4
+ cmp r1, r0
+ beq _022353D0
+ mov r5, #0
+_022353D0:
+ cmp r5, #0
+ beq _022353DC
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0223A424
+_022353DC:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022353E4
+MOD11_022353E4: ; 0x022353E4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ mov r0, #0x53
+ lsl r0, r0, #2
+ ldr r1, _0223542C ; =0x00002168
+ ldr r2, [r4, r0]
+ ldr r1, [r4, r1]
+ add r3, r2, #0
+ mul r3, r1
+ add r1, r0, #0
+ sub r1, #0x1c
+ str r3, [r4, r1]
+ add r1, r0, #0
+ sub r1, #0x1c
+ ldr r2, [r4, r1]
+ ldr r1, _02235430 ; =0x0000FFFF
+ cmp r2, r1
+ ble _02235416
+ sub r0, #0x1c
+ str r1, [r4, r0]
+_02235416:
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD11_022301D4
+ mov r1, #0x13
+ lsl r1, r1, #4
+ ldr r1, [r4, r1]
+ bl FUN_02023A30
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223542C: .word 0x00002168
+_02235430: .word 0x0000FFFF
+
+ thumb_func_start MOD11_02235434
+MOD11_02235434: ; 0x02235434
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ ldr r1, [r5, #0x64]
+ add r0, r7, #0
+ bl MOD11_02230270
+ add r6, r0, #0
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ add r3, r5, r0
+ lsl r2, r6, #2
+ ldr r1, [r3, r2]
+ mov r4, #2
+ tst r4, r1
+ beq _02235478
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ ldr r1, _02235508 ; =0x0000216C
+ mov r0, #0x40
+ ldr r2, [r5, r1]
+ orr r0, r2
+ str r0, [r5, r1]
+ b _02235504
+_02235478:
+ mov r4, #2
+ orr r1, r4
+ str r1, [r3, r2]
+ add r1, r0, #0
+ add r1, #8
+ add r4, r5, r1
+ lsl r6, r6, #3
+ ldr r2, [r4, r6]
+ ldr r1, _0223550C ; =0xFFFFFC7F
+ add r0, #0xc4
+ and r1, r2
+ orr r0, r1
+ str r0, [r4, r6]
+ ldr r0, [r4, r6]
+ mov r1, #0x60
+ bic r0, r1
+ ldr r1, [r5, #0x64]
+ lsl r1, r1, #0x1e
+ lsr r1, r1, #0x19
+ orr r0, r1
+ str r0, [r4, r6]
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02249D90
+ cmp r0, #0x60
+ bne _022354CC
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ ldr r1, [r4, r6]
+ ldr r2, _0223550C ; =0xFFFFFC7F
+ and r2, r1
+ lsl r1, r1, #0x16
+ lsr r1, r1, #0x1d
+ add r0, r1, r0
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x16
+ orr r0, r2
+ str r0, [r4, r6]
+_022354CC:
+ add r0, r5, #0
+ mov r1, #0x14
+ add r0, #0xf5
+ strb r1, [r0]
+ ldr r0, _02235510 ; =0x00003044
+ mov r2, #1
+ ldr r1, [r5, r0]
+ add r0, r5, #0
+ add r0, #0xf8
+ str r1, [r0]
+ add r0, r5, #0
+ ldr r1, [r5, #0x64]
+ add r0, #0xfc
+ str r1, [r0]
+ ldr r3, [r5, #0x64]
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_022467AC
+ cmp r0, #2
+ bne _022354FE
+ mov r0, #0xc0
+ add r5, #0xf6
+ strh r0, [r5]
+ b _02235504
+_022354FE:
+ mov r0, #0xbe
+ add r5, #0xf6
+ strh r0, [r5]
+_02235504:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02235508: .word 0x0000216C
+_0223550C: .word 0xFFFFFC7F
+_02235510: .word 0x00003044
+
+ thumb_func_start MOD11_02235514
+MOD11_02235514: ; 0x02235514
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ ldr r1, [r5, #0x64]
+ add r0, r7, #0
+ bl MOD11_02230270
+ add r6, r0, #0
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ add r3, r5, r0
+ lsl r2, r6, #2
+ ldr r1, [r3, r2]
+ mov r4, #1
+ tst r4, r1
+ beq _02235558
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ ldr r1, _022355EC ; =0x0000216C
+ mov r0, #0x40
+ ldr r2, [r5, r1]
+ orr r0, r2
+ str r0, [r5, r1]
+ b _022355E6
+_02235558:
+ mov r4, #1
+ orr r1, r4
+ add r0, #8
+ add r4, r5, r0
+ lsl r6, r6, #3
+ str r1, [r3, r2]
+ ldr r1, [r4, r6]
+ mov r0, #0x1c
+ bic r1, r0
+ mov r0, #0x14
+ orr r0, r1
+ str r0, [r4, r6]
+ ldr r0, [r4, r6]
+ mov r1, #3
+ bic r0, r1
+ ldr r2, [r5, #0x64]
+ mov r1, #3
+ and r1, r2
+ orr r0, r1
+ str r0, [r4, r6]
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02249D90
+ cmp r0, #0x60
+ bne _022355AE
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ ldr r1, [r4, r6]
+ add r3, r0, #0
+ mov r0, #0x1c
+ add r2, r1, #0
+ bic r2, r0
+ lsl r0, r1, #0x1b
+ lsr r0, r0, #0x1d
+ add r0, r0, r3
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1b
+ orr r0, r2
+ str r0, [r4, r6]
+_022355AE:
+ add r0, r5, #0
+ mov r1, #0x14
+ add r0, #0xf5
+ strb r1, [r0]
+ ldr r0, _022355F0 ; =0x00003044
+ mov r2, #1
+ ldr r1, [r5, r0]
+ add r0, r5, #0
+ add r0, #0xf8
+ str r1, [r0]
+ add r0, r5, #0
+ ldr r1, [r5, #0x64]
+ add r0, #0xfc
+ str r1, [r0]
+ ldr r3, [r5, #0x64]
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_022467AC
+ cmp r0, #2
+ bne _022355E0
+ mov r0, #0xc4
+ add r5, #0xf6
+ strh r0, [r5]
+ b _022355E6
+_022355E0:
+ mov r0, #0xc2
+ add r5, #0xf6
+ strh r0, [r5]
+_022355E6:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022355EC: .word 0x0000216C
+_022355F0: .word 0x00003044
+
+ thumb_func_start MOD11_022355F4
+MOD11_022355F4: ; 0x022355F4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02230270
+ mov r5, #0x6f
+ add r2, r0, #0
+ lsl r5, r5, #2
+ add r1, r4, r5
+ lsl r0, r2, #2
+ ldr r6, [r1, r0]
+ mov r3, #0x40
+ tst r3, r6
+ beq _02235638
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+ ldr r1, _02235668 ; =0x0000216C
+ mov r0, #0x40
+ ldr r2, [r4, r1]
+ orr r0, r2
+ str r0, [r4, r1]
+ b _02235662
+_02235638:
+ mov r3, #0x40
+ orr r3, r6
+ str r3, [r1, r0]
+ add r5, #8
+ lsl r0, r2, #3
+ add r1, r4, r5
+ ldr r3, [r1, r0]
+ ldr r2, _0223566C ; =0xFFFF8FFF
+ and r3, r2
+ mov r2, #5
+ lsl r2, r2, #0xc
+ orr r2, r3
+ str r2, [r1, r0]
+ ldr r3, [r1, r0]
+ ldr r2, _02235670 ; =0xFFFFF3FF
+ and r3, r2
+ ldr r2, [r4, #0x64]
+ lsl r2, r2, #0x1e
+ lsr r2, r2, #0x14
+ orr r2, r3
+ str r2, [r1, r0]
+_02235662:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02235668: .word 0x0000216C
+_0223566C: .word 0xFFFF8FFF
+_02235670: .word 0xFFFFF3FF
+
+ thumb_func_start MOD11_02235674
+MOD11_02235674: ; 0x02235674
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r1, _02235844 ; =0x0000213C
+ mov r0, #1
+ ldr r2, [r4, r1]
+ lsl r0, r0, #0xa
+ orr r0, r2
+ str r0, [r4, r1]
+ ldr r1, [r4, #0x64]
+ ldr r2, [r4, #0x6c]
+ add r0, r4, #0
+ mov r3, #5
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _022356AA
+ ldr r1, _02235848 ; =0x0000216C
+ mov r0, #2
+ ldr r2, [r4, r1]
+ lsl r0, r0, #0x12
+ orr r0, r2
+ str r0, [r4, r1]
+ b _0223583E
+_022356AA:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r1, [r1, r0]
+ mov r0, #0x18
+ tst r0, r1
+ bne _02235730
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x63
+ beq _02235730
+ ldr r1, [r4, #0x6c]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x63
+ beq _02235730
+ ldr r0, _0223584C ; =0x00003044
+ mov r2, #0xc0
+ ldr r0, [r4, r0]
+ ldr r5, [r4, #0x6c]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _02235850 ; =0x000003E3
+ ldrb r1, [r1, r0]
+ ldr r0, [r4, #0x64]
+ add r3, r0, #0
+ mul r3, r2
+ add r0, r4, r3
+ ldr r3, _02235854 ; =0x00002D74
+ mul r2, r5
+ add r2, r4, r2
+ ldrb r0, [r0, r3]
+ ldrb r2, [r2, r3]
+ sub r0, r0, r2
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ bl LCRandom
+ mov r1, #0x64
+ bl _s32_div_f
+ cmp r1, r5
+ bge _0223572C
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, _02235854 ; =0x00002D74
+ add r2, r4, r2
+ ldrb r3, [r2, r1]
+ ldr r2, [r4, #0x6c]
+ mul r0, r2
+ add r0, r4, r0
+ ldrb r0, [r0, r1]
+ cmp r3, r0
+ blo _0223572C
+ mov r3, #1
+ b _022357E8
+_0223572C:
+ mov r3, #0
+ b _022357E8
+_02235730:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r3, r4, r0
+ ldr r0, _02235858 ; =0x00002DCC
+ ldr r1, [r4, #0x64]
+ ldr r2, [r3, r0]
+ lsl r2, r2, #0x1e
+ lsr r2, r2, #0x1e
+ cmp r1, r2
+ bne _02235750
+ sub r0, #0xc
+ ldr r2, [r3, r0]
+ mov r0, #0x18
+ tst r0, r2
+ bne _02235766
+_02235750:
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x63
+ beq _02235766
+ ldr r1, [r4, #0x6c]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x63
+ bne _02235784
+_02235766:
+ ldr r0, [r4, #0x64]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r3, [r4, #0x6c]
+ add r0, r4, r2
+ ldr r2, _02235854 ; =0x00002D74
+ mul r1, r3
+ add r1, r4, r1
+ ldrb r0, [r0, r2]
+ ldrb r1, [r1, r2]
+ cmp r0, r1
+ blo _02235784
+ mov r3, #1
+ b _022357DC
+_02235784:
+ ldr r0, _0223584C ; =0x00003044
+ mov r2, #0xc0
+ ldr r0, [r4, r0]
+ ldr r5, [r4, #0x6c]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _02235850 ; =0x000003E3
+ ldrb r1, [r1, r0]
+ ldr r0, [r4, #0x64]
+ add r3, r0, #0
+ mul r3, r2
+ add r0, r4, r3
+ ldr r3, _02235854 ; =0x00002D74
+ mul r2, r5
+ add r2, r4, r2
+ ldrb r0, [r0, r3]
+ ldrb r2, [r2, r3]
+ sub r0, r0, r2
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ bl LCRandom
+ mov r1, #0x64
+ bl _s32_div_f
+ cmp r1, r5
+ bge _022357DA
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, _02235854 ; =0x00002D74
+ add r2, r4, r2
+ ldrb r3, [r2, r1]
+ ldr r2, [r4, #0x6c]
+ mul r0, r2
+ add r0, r4, r0
+ ldrb r0, [r0, r1]
+ cmp r3, r0
+ blo _022357DA
+ mov r3, #1
+ b _022357DC
+_022357DA:
+ mov r3, #0
+_022357DC:
+ ldr r1, _02235848 ; =0x0000216C
+ mov r0, #1
+ ldr r2, [r4, r1]
+ lsl r0, r0, #0xa
+ orr r0, r2
+ str r0, [r4, r1]
+_022357E8:
+ cmp r3, #0
+ beq _0223580E
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0223585C ; =0x00002D8C
+ ldr r0, [r1, r0]
+ ldr r1, _02235860 ; =0x00002144
+ neg r0, r0
+ str r0, [r4, r1]
+ add r0, r1, #0
+ add r0, #0x28
+ ldr r2, [r4, r0]
+ mov r0, #0x20
+ orr r0, r2
+ add r1, #0x28
+ str r0, [r4, r1]
+ b _0223583E
+_0223580E:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, _02235854 ; =0x00002D74
+ add r2, r4, r2
+ ldrb r3, [r2, r1]
+ ldr r2, [r4, #0x6c]
+ mul r0, r2
+ add r0, r4, r0
+ ldrb r0, [r0, r1]
+ cmp r3, r0
+ ldr r1, _02235848 ; =0x0000216C
+ blo _02235834
+ ldr r2, [r4, r1]
+ mov r0, #1
+ orr r0, r2
+ str r0, [r4, r1]
+ b _0223583E
+_02235834:
+ mov r0, #1
+ ldr r2, [r4, r1]
+ lsl r0, r0, #0xc
+ orr r0, r2
+ str r0, [r4, r1]
+_0223583E:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02235844: .word 0x0000213C
+_02235848: .word 0x0000216C
+_0223584C: .word 0x00003044
+_02235850: .word 0x000003E3
+_02235854: .word 0x00002D74
+_02235858: .word 0x00002DCC
+_0223585C: .word 0x00002D8C
+_02235860: .word 0x00002144
+
+ thumb_func_start MOD11_02235864
+MOD11_02235864: ; 0x02235864
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223A444
+ add r4, r0, #0
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD11_022476C0
+ str r0, [r4]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0223589C
+MOD11_0223589C: ; 0x0223589C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_0223A444
+ add r4, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r7, #0
+ bl MOD11_0223A444
+ add r1, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ bge _022358DE
+ mov r5, #0
+ mvn r5, r5
+ b _022358E0
+_022358DE:
+ mov r5, #1
+_022358E0:
+ ldr r0, [r4]
+ ldr r1, [r1]
+ bl _s32_div_f
+ str r0, [r4]
+ cmp r0, #0
+ bne _022358F0
+ str r5, [r4]
+_022358F0:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_022358F4
+MOD11_022358F4: ; 0x022358F4
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ ldr r0, [r6, #0x6c]
+ lsl r0, r0, #1
+ add r1, r6, r0
+ ldr r0, _02235A18 ; =0x0000307C
+ ldrh r0, [r1, r0]
+ bl MOD11_0224C044
+ cmp r0, #0
+ beq _0223594E
+ ldr r0, [r6, #0x64]
+ mov r2, #2
+ mov r3, #0xc0
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r6, r1
+ ldr r1, _02235A1C ; =0x00002DB0
+ mov ip, r0
+ ldr r0, [r0, r1]
+ lsl r2, r2, #0x14
+ tst r0, r2
+ bne _0223594E
+ ldr r0, [r6, #0x6c]
+ add r4, r0, #0
+ mul r4, r3
+ add r4, r6, r4
+ ldr r4, [r4, r1]
+ lsl r1, r2, #3
+ tst r1, r4
+ bne _0223594E
+ lsl r0, r0, #1
+ add r1, r6, r0
+ ldr r0, _02235A18 ; =0x0000307C
+ ldrh r7, [r1, r0]
+ cmp r7, #0
+ bne _02235958
+_0223594E:
+ ldr r1, [sp]
+ add r0, r6, #0
+ bl MOD11_0223A424
+ b _02235A14
+_02235958:
+ mov r2, #0
+ sub r3, #0xc1
+ mov r4, ip
+ add r5, r2, #0
+_02235960:
+ ldr r0, _02235A20 ; =0x00002D4C
+ ldrh r0, [r4, r0]
+ cmp r7, r0
+ beq _02235988
+ mov r0, ip
+ add r1, r0, r5
+ ldr r0, _02235A20 ; =0x00002D4C
+ ldrh r0, [r1, r0]
+ cmp r0, #0x66
+ bne _0223597E
+ mov r0, #0
+ mvn r0, r0
+ cmp r3, r0
+ bne _0223597E
+ add r3, r2, #0
+_0223597E:
+ add r2, r2, #1
+ add r4, r4, #2
+ add r5, r5, #2
+ cmp r2, #4
+ blt _02235960
+_02235988:
+ cmp r2, #4
+ bne _02235A0C
+ mov r4, #0x49
+ lsl r4, r4, #2
+ str r7, [r6, r4]
+ ldr r2, [r6, #0x64]
+ mov r1, #0xc0
+ add r5, r2, #0
+ mul r5, r1
+ add r5, r6, r5
+ lsl r2, r3, #1
+ add r5, r5, r2
+ ldr r0, [r6, r4]
+ ldr r2, _02235A20 ; =0x00002D4C
+ strh r0, [r5, r2]
+ ldr r0, [r6, r4]
+ lsl r0, r0, #4
+ add r4, r6, r0
+ mov r0, #0xf9
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ cmp r0, #5
+ bhs _022359B8
+ b _022359BA
+_022359B8:
+ mov r0, #5
+_022359BA:
+ ldr r4, [r6, #0x64]
+ add r2, #0x20
+ mul r1, r4
+ add r1, r6, r1
+ add r1, r1, r3
+ strb r0, [r1, r2]
+ add r0, r3, #0
+ bl MaskOfFlagNo
+ ldr r1, _02235A24 ; =0x00002DCC
+ mov r4, #0xc0
+ add r3, r6, r1
+ ldr r1, [r6, #0x64]
+ mov r5, #0x3c
+ add r2, r1, #0
+ mul r2, r4
+ ldr r7, [r3, r2]
+ add r1, r7, #0
+ bic r1, r5
+ lsl r5, r7, #0x1a
+ lsr r5, r5, #0x1c
+ orr r0, r5
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1a
+ orr r0, r1
+ str r0, [r3, r2]
+ add r0, r4, #0
+ add r0, #0x64
+ ldr r1, [r6, r0]
+ add r0, r4, #0
+ add r0, #0xc3
+ cmp r1, r0
+ bne _02235A14
+ ldr r0, [r6, #0x64]
+ add r2, r0, #0
+ mul r2, r4
+ ldr r1, [r3, r2]
+ ldr r0, _02235A28 ; =0xFFFFE3FF
+ and r0, r1
+ str r0, [r3, r2]
+ b _02235A14
+_02235A0C:
+ ldr r1, [sp]
+ add r0, r6, #0
+ bl MOD11_0223A424
+_02235A14:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02235A18: .word 0x0000307C
+_02235A1C: .word 0x00002DB0
+_02235A20: .word 0x00002D4C
+_02235A24: .word 0x00002DCC
+_02235A28: .word 0xFFFFE3FF
+
+ thumb_func_start MOD11_02235A2C
+MOD11_02235A2C: ; 0x02235A2C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r4, _02235A7C ; =0x00002D4C
+ mov r7, #0xc0
+_02235A3C:
+ bl LCRandom
+ ldr r1, _02235A80 ; =0x000001D3
+ bl _s32_div_f
+ add r0, r1, #1
+ ldr r1, [r6, #0x64]
+ lsl r0, r0, #0x10
+ add r2, r1, #0
+ mul r2, r7
+ lsr r5, r0, #0x10
+ mov r0, #0
+ add r2, r6, r2
+_02235A56:
+ ldrh r1, [r2, r4]
+ cmp r5, r1
+ beq _02235A64
+ add r0, r0, #1
+ add r2, r2, #2
+ cmp r0, #4
+ blt _02235A56
+_02235A64:
+ cmp r0, #4
+ bne _02235A3C
+ add r0, r5, #0
+ bl MOD11_0224C07C
+ cmp r0, #0
+ beq _02235A3C
+ mov r0, #0x49
+ lsl r0, r0, #2
+ str r5, [r6, r0]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02235A7C: .word 0x00002D4C
+_02235A80: .word 0x000001D3
+
+ thumb_func_start MOD11_02235A84
+MOD11_02235A84: ; 0x02235A84
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ add r2, r5, r0
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ lsl r1, r1, #1
+ add r0, r2, r0
+ add r2, r5, r1
+ ldr r1, _02235B34 ; =0x0000307C
+ ldrh r1, [r2, r1]
+ bl MOD11_022461AC
+ ldr r3, [r5, #0x6c]
+ add r6, r0, #0
+ mov r7, #0xc0
+ add r0, r3, #0
+ mul r0, r7
+ add r2, r5, r0
+ ldr r0, _02235B38 ; =0x00002DE8
+ ldrh r1, [r2, r0]
+ cmp r1, #0
+ bne _02235B26
+ cmp r6, #4
+ beq _02235B26
+ add r1, r0, #0
+ add r2, r2, r6
+ sub r1, #0x7c
+ ldrb r1, [r2, r1]
+ cmp r1, #0
+ beq _02235B26
+ lsl r1, r3, #1
+ add r2, r5, r1
+ ldr r1, _02235B34 ; =0x0000307C
+ ldrh r2, [r2, r1]
+ cmp r2, #0
+ beq _02235B26
+ add r1, r7, #0
+ add r1, #0x64
+ str r2, [r5, r1]
+ add r1, r7, #0
+ add r1, #0x64
+ ldr r3, [r5, r1]
+ ldr r1, [r5, #0x6c]
+ add r2, r1, #0
+ mul r2, r7
+ add r1, r5, r2
+ strh r3, [r1, r0]
+ bl LCRandom
+ ldr r1, _02235B3C ; =0x00002DC8
+ ldr r4, [r5, #0x6c]
+ add r3, r5, r1
+ add r2, r4, #0
+ add r1, r7, #0
+ mul r2, r1
+ ldr r1, [r3, r2]
+ mov r4, #7
+ bic r1, r4
+ lsr r5, r0, #0x1f
+ lsl r4, r0, #0x1e
+ sub r4, r4, r5
+ mov r0, #0x1e
+ ror r4, r0
+ add r0, r5, r4
+ add r4, r0, #3
+ mov r0, #7
+ and r0, r4
+ orr r0, r1
+ str r0, [r3, r2]
+ b _02235B2E
+_02235B26:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223A424
+_02235B2E:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02235B34: .word 0x0000307C
+_02235B38: .word 0x00002DE8
+_02235B3C: .word 0x00002DC8
+
+ thumb_func_start MOD11_02235B40
+MOD11_02235B40: ; 0x02235B40
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r1, [r5, #0x64]
+ lsl r0, r1, #6
+ add r2, r5, r0
+ mov r0, #0x7a
+ lsl r0, r0, #2
+ ldr r4, [r2, r0]
+ ldr r0, [sp]
+ bl MOD11_02230270
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_02230270
+ ldr r6, [r5, #0x64]
+ add r3, r0, #0
+ lsl r0, r6, #6
+ add r1, r5, r0
+ lsl r0, r4, #2
+ add r0, r1, r0
+ mov r1, #0x76
+ lsl r1, r1, #2
+ ldr r7, [r0, r1]
+ cmp r7, #0
+ beq _02235C06
+ ldr r0, [sp, #4]
+ cmp r0, r3
+ beq _02235C06
+ mov r0, #0xc0
+ mul r0, r4
+ add r2, r5, r0
+ ldr r0, _02235C30 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _02235C06
+ ldr r0, _02235C34 ; =0x00002144
+ lsl r2, r7, #1
+ sub r1, #0x14
+ str r2, [r5, r0]
+ add r1, r5, r1
+ lsl r0, r3, #3
+ ldr r0, [r1, r0]
+ lsl r1, r0, #0xb
+ lsr r1, r1, #0x1f
+ beq _02235BC0
+ lsl r0, r0, #9
+ lsr r0, r0, #0x1e
+ mov r1, #0xc0
+ mul r1, r0
+ add r2, r5, r1
+ ldr r1, _02235C30 ; =0x00002D8C
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ beq _02235BC0
+ str r0, [r5, #0x6c]
+ b _02235BC2
+_02235BC0:
+ str r4, [r5, #0x6c]
+_02235BC2:
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02235C30 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02235BFA
+ ldr r0, [sp]
+ ldr r2, [r5, #0x64]
+ add r1, r5, #0
+ bl MOD11_022482A4
+ mov r1, #0xc0
+ mul r1, r0
+ str r0, [r5, #0x6c]
+ ldr r0, _02235C30 ; =0x00002D8C
+ add r1, r5, r1
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02235BFA
+ mov r2, #0x26
+ str r2, [r5, #0xc]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, #0xf3
+ bl MOD11_0223A434
+_02235BFA:
+ ldr r1, [r5, #0x64]
+ ldr r2, [r5, #0x6c]
+ add r0, r5, #0
+ bl MOD11_0224C438
+ b _02235C28
+_02235C06:
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ mov r1, #0x1c
+ add r3, r6, #0
+ mul r3, r1
+ add r0, r5, r0
+ ldr r2, [r0, r3]
+ mov r1, #1
+ bic r2, r1
+ mov r1, #1
+ orr r1, r2
+ str r1, [r0, r3]
+ ldr r1, _02235C38 ; =0x0000216C
+ mov r0, #0x40
+ ldr r2, [r5, r1]
+ orr r0, r2
+ str r0, [r5, r1]
+_02235C28:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02235C30: .word 0x00002D8C
+_02235C34: .word 0x00002144
+_02235C38: .word 0x0000216C
+
+ thumb_func_start MOD11_02235C3C
+MOD11_02235C3C: ; 0x02235C3C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r1, [r5, #0x64]
+ lsl r0, r1, #6
+ add r2, r5, r0
+ mov r0, #2
+ lsl r0, r0, #8
+ ldr r4, [r2, r0]
+ ldr r0, [sp]
+ bl MOD11_02230270
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_02230270
+ ldr r6, [r5, #0x64]
+ add r3, r0, #0
+ lsl r0, r6, #6
+ add r1, r5, r0
+ lsl r0, r4, #2
+ add r0, r1, r0
+ mov r1, #0x1f
+ lsl r1, r1, #4
+ ldr r7, [r0, r1]
+ cmp r7, #0
+ beq _02235D02
+ ldr r0, [sp, #4]
+ cmp r0, r3
+ beq _02235D02
+ mov r0, #0xc0
+ mul r0, r4
+ add r2, r5, r0
+ ldr r0, _02235D2C ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _02235D02
+ ldr r0, _02235D30 ; =0x00002144
+ lsl r2, r7, #1
+ sub r1, #0x2c
+ str r2, [r5, r0]
+ add r1, r5, r1
+ lsl r0, r3, #3
+ ldr r0, [r1, r0]
+ lsl r1, r0, #0xb
+ lsr r1, r1, #0x1f
+ beq _02235CBC
+ lsl r0, r0, #9
+ lsr r0, r0, #0x1e
+ mov r1, #0xc0
+ mul r1, r0
+ add r2, r5, r1
+ ldr r1, _02235D2C ; =0x00002D8C
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ beq _02235CBC
+ str r0, [r5, #0x6c]
+ b _02235CBE
+_02235CBC:
+ str r4, [r5, #0x6c]
+_02235CBE:
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02235D2C ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02235CF6
+ ldr r0, [sp]
+ ldr r2, [r5, #0x64]
+ add r1, r5, #0
+ bl MOD11_022482A4
+ mov r1, #0xc0
+ mul r1, r0
+ str r0, [r5, #0x6c]
+ ldr r0, _02235D2C ; =0x00002D8C
+ add r1, r5, r1
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02235CF6
+ mov r2, #0x26
+ str r2, [r5, #0xc]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, #0xf3
+ bl MOD11_0223A434
+_02235CF6:
+ ldr r1, [r5, #0x64]
+ ldr r2, [r5, #0x6c]
+ add r0, r5, #0
+ bl MOD11_0224C438
+ b _02235D24
+_02235D02:
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ mov r1, #0x1c
+ add r3, r6, #0
+ mul r3, r1
+ add r0, r5, r0
+ ldr r2, [r0, r3]
+ mov r1, #1
+ bic r2, r1
+ mov r1, #1
+ orr r1, r2
+ str r1, [r0, r3]
+ ldr r1, _02235D34 ; =0x0000216C
+ mov r0, #0x40
+ ldr r2, [r5, r1]
+ orr r0, r2
+ str r0, [r5, r1]
+_02235D24:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02235D2C: .word 0x00002D8C
+_02235D30: .word 0x00002144
+_02235D34: .word 0x0000216C
+
+ thumb_func_start MOD11_02235D38
+MOD11_02235D38: ; 0x02235D38
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ add r2, r5, r0
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ lsl r1, r1, #1
+ add r0, r2, r0
+ add r2, r5, r1
+ ldr r1, _02235E0C ; =0x0000307C
+ ldrh r1, [r2, r1]
+ bl MOD11_022461AC
+ ldr r1, [r5, #0x6c]
+ add r4, r0, #0
+ lsl r1, r1, #1
+ add r2, r5, r1
+ ldr r1, _02235E0C ; =0x0000307C
+ add r0, r5, #0
+ ldrh r1, [r2, r1]
+ bl MOD11_0224C0B4
+ cmp r0, #0
+ bne _02235D7E
+ mov r4, #4
+_02235D7E:
+ ldr r0, [r5, #0x6c]
+ mov r2, #0xc0
+ add r1, r0, #0
+ mul r1, r2
+ ldr r3, _02235E10 ; =0x00002DEC
+ add r6, r5, r1
+ ldrh r1, [r6, r3]
+ cmp r1, #0
+ bne _02235DF6
+ cmp r4, #4
+ beq _02235DF6
+ add r1, r3, #0
+ add r6, r6, r4
+ sub r1, #0x80
+ ldrb r1, [r6, r1]
+ cmp r1, #0
+ beq _02235DF6
+ lsl r0, r0, #1
+ add r1, r5, r0
+ ldr r0, _02235E0C ; =0x0000307C
+ ldrh r1, [r1, r0]
+ cmp r1, #0
+ beq _02235DF6
+ add r0, r2, #0
+ add r0, #0x64
+ str r1, [r5, r0]
+ ldr r1, [r5, #0x6c]
+ add r0, r2, #0
+ add r0, #0x64
+ add r6, r1, #0
+ mul r6, r2
+ ldr r0, [r5, r0]
+ add r1, r5, r6
+ strh r0, [r1, r3]
+ ldr r0, [r5, #0x6c]
+ add r1, r0, #0
+ mul r1, r2
+ add r1, r5, r1
+ add r0, r3, #2
+ strh r4, [r1, r0]
+ bl LCRandom
+ ldr r1, _02235E14 ; =0x00002DC8
+ ldr r2, [r5, #0x6c]
+ add r4, r5, r1
+ mov r1, #0xc0
+ add r5, r2, #0
+ mul r5, r1
+ mov r1, #5
+ bl _s32_div_f
+ ldr r2, [r4, r5]
+ mov r0, #0x38
+ bic r2, r0
+ add r0, r1, #3
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1a
+ orr r0, r2
+ str r0, [r4, r5]
+ b _02235E08
+_02235DF6:
+ ldr r1, _02235E18 ; =0x0000216C
+ mov r0, #0x40
+ ldr r2, [r5, r1]
+ orr r0, r2
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+_02235E08:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02235E0C: .word 0x0000307C
+_02235E10: .word 0x00002DEC
+_02235E14: .word 0x00002DC8
+_02235E18: .word 0x0000216C
+
+ thumb_func_start MOD11_02235E1C
+MOD11_02235E1C: ; 0x02235E1C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x79
+ bne _02235E4C
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A424
+ add sp, #8
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02235E4C:
+ ldr r0, [r4, #0x64]
+ lsl r0, r0, #1
+ add r2, r4, r0
+ ldr r0, _02235FB4 ; =0x000030C4
+ ldrh r1, [r2, r0]
+ cmp r1, #0
+ beq _02235E62
+ add r0, #8
+ ldrh r0, [r2, r0]
+ cmp r0, #0xff
+ bne _02235E64
+_02235E62:
+ b _02235FA6
+_02235E64:
+ add r0, r4, #0
+ bl MOD11_02246AF8
+ cmp r0, #0
+ beq _02235E98
+ ldr r0, [r4, #0x64]
+ lsl r0, r0, #1
+ add r1, r4, r0
+ ldr r0, _02235FB8 ; =0x000030CC
+ ldrh r1, [r1, r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _02235FBC ; =0x00002DB0
+ ldr r1, [r1, r0]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _02235E98
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A424
+ add sp, #8
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02235E98:
+ ldr r0, [r4, #0x64]
+ mov r7, #0
+ lsl r0, r0, #1
+ add r1, r4, r0
+ ldr r0, _02235FC0 ; =0x000030D4
+ ldrh r6, [r1, r0]
+_02235EA4:
+ add r1, sp, #4
+ add r2, sp, #4
+ ldr r0, _02235FC4 ; =0x0000FFFF
+ add r1, #2
+ add r2, #1
+ add r3, sp, #4
+ bl MOD11_02246B58
+ add r0, sp, #4
+ ldrb r0, [r0, #2]
+ cmp r0, r6
+ bne _02235F12
+ add r0, sp, #4
+ ldrb r0, [r0]
+ cmp r0, #5
+ bhi _02235F12
+ add r0, sp, #4
+ ldrb r5, [r0, #1]
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r5, r0
+ beq _02235F12
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r5, r0
+ beq _02235F12
+ ldr r0, [r4, #0x64]
+ add r3, sp, #4
+ mov r2, #0xc0
+ add r1, r0, #0
+ mul r1, r2
+ add r0, r4, r1
+ ldr r1, _02235FC8 ; =0x00002D64
+ add sp, #8
+ strb r5, [r0, r1]
+ ldr r5, [r4, #0x64]
+ ldrb r0, [r3, #1]
+ add r6, r5, #0
+ mul r6, r2
+ add r5, r4, r6
+ add r1, r1, #1
+ strb r0, [r5, r1]
+ ldrb r0, [r3, #1]
+ add r2, #0x70
+ str r0, [r4, r2]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02235F12:
+ mov r0, #0xfa
+ add r7, r7, #1
+ lsl r0, r0, #2
+ cmp r7, r0
+ blt _02235EA4
+ mov r7, #0
+ add r1, sp, #4
+ add r2, sp, #4
+ add r0, r7, #0
+ add r1, #2
+ add r2, #1
+ add r3, sp, #4
+ bl MOD11_02246B58
+ cmp r0, #1
+ bne _02235FA6
+_02235F32:
+ add r0, sp, #4
+ ldrb r0, [r0, #2]
+ cmp r0, r6
+ bne _02235F90
+ add r0, sp, #4
+ ldrb r0, [r0]
+ cmp r0, #5
+ bhi _02235F90
+ add r0, sp, #4
+ ldrb r5, [r0, #1]
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r5, r0
+ beq _02235F90
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r5, r0
+ beq _02235F90
+ ldr r0, [r4, #0x64]
+ add r3, sp, #4
+ mov r2, #0xc0
+ add r1, r0, #0
+ mul r1, r2
+ add r0, r4, r1
+ ldr r1, _02235FC8 ; =0x00002D64
+ add sp, #8
+ strb r5, [r0, r1]
+ ldr r5, [r4, #0x64]
+ ldrb r0, [r3, #1]
+ add r6, r5, #0
+ mul r6, r2
+ add r5, r4, r6
+ add r1, r1, #1
+ strb r0, [r5, r1]
+ ldrb r0, [r3, #1]
+ add r2, #0x70
+ str r0, [r4, r2]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02235F90:
+ add r7, r7, #1
+ add r1, sp, #4
+ add r2, sp, #4
+ add r0, r7, #0
+ add r1, #2
+ add r2, #1
+ add r3, sp, #4
+ bl MOD11_02246B58
+ cmp r0, #1
+ beq _02235F32
+_02235FA6:
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A424
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02235FB4: .word 0x000030C4
+_02235FB8: .word 0x000030CC
+_02235FBC: .word 0x00002DB0
+_02235FC0: .word 0x000030D4
+_02235FC4: .word 0x0000FFFF
+_02235FC8: .word 0x00002D64
+
+ thumb_func_start MOD11_02235FCC
+MOD11_02235FCC: ; 0x02235FCC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r0, [sp]
+ mov r0, #0
+ add r6, r1, #0
+ mvn r0, r0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ mov ip, r0
+ ldr r1, [r6, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ str r0, [sp, #4]
+ add r3, r6, r0
+ ldr r0, _022360DC ; =0x00002DB0
+ ldr r1, [r3, r0]
+ mov r0, #2
+ lsl r0, r0, #0x14
+ tst r0, r1
+ bne _0223601E
+ ldr r0, [r6, #0x6c]
+ lsl r0, r0, #1
+ add r1, r6, r0
+ ldr r0, _022360E0 ; =0x000030AC
+ ldrh r7, [r1, r0]
+ cmp r7, #0xa5
+ beq _0223601E
+ cmp r7, #0xa6
+ beq _0223601E
+ mov r0, #7
+ lsl r0, r0, #6
+ cmp r7, r0
+ beq _0223601E
+ cmp r7, #0
+ bne _02236028
+_0223601E:
+ add r0, r6, #0
+ mov r1, ip
+ bl MOD11_0223A424
+ b _022360D6
+_02236028:
+ mov r0, #0
+ add r1, r3, #0
+ add r2, r0, #0
+_0223602E:
+ ldr r4, _022360E4 ; =0x00002D4C
+ ldrh r4, [r1, r4]
+ cmp r4, #0xa6
+ beq _02236040
+ ldr r4, _022360E4 ; =0x00002D4C
+ add r5, r3, r2
+ ldrh r4, [r5, r4]
+ cmp r7, r4
+ beq _02236060
+_02236040:
+ ldr r4, _022360E4 ; =0x00002D4C
+ add r5, r3, r2
+ ldrh r4, [r5, r4]
+ cmp r4, #0xa6
+ bne _02236056
+ mov r5, #0
+ ldr r4, [sp, #8]
+ mvn r5, r5
+ cmp r4, r5
+ bne _02236056
+ str r0, [sp, #8]
+_02236056:
+ add r0, r0, #1
+ add r1, r1, #2
+ add r2, r2, #2
+ cmp r0, #4
+ blt _0223602E
+_02236060:
+ cmp r0, #4
+ bne _022360CE
+ ldr r0, [sp, #4]
+ add r1, r6, r0
+ ldr r0, [sp, #8]
+ lsl r0, r0, #1
+ add r1, r1, r0
+ ldr r0, _022360E4 ; =0x00002D4C
+ strh r7, [r1, r0]
+ ldr r1, [r6, #0x6c]
+ ldr r3, [r6, #0x64]
+ lsl r1, r1, #1
+ add r2, r6, r1
+ ldr r1, _022360E0 ; =0x000030AC
+ add r0, #0x20
+ ldrh r1, [r2, r1]
+ lsl r1, r1, #4
+ add r2, r6, r1
+ mov r1, #0xf9
+ lsl r1, r1, #2
+ ldrb r1, [r2, r1]
+ mov r2, #0xc0
+ mul r2, r3
+ add r3, r6, r2
+ ldr r2, [sp, #8]
+ add r2, r3, r2
+ strb r1, [r2, r0]
+ ldr r0, [sp]
+ ldr r2, [r6, #0x64]
+ add r1, r6, #0
+ bl MOD11_02256150
+ ldr r0, [r6, #0x6c]
+ lsl r0, r0, #1
+ add r1, r6, r0
+ ldr r0, _022360E0 ; =0x000030AC
+ ldrh r1, [r1, r0]
+ mov r0, #0x49
+ lsl r0, r0, #2
+ str r1, [r6, r0]
+ ldr r1, [r6, r0]
+ add r0, #0x5f
+ cmp r1, r0
+ bne _022360D6
+ ldr r0, _022360E8 ; =0x00002DCC
+ ldr r1, [r6, #0x64]
+ add r3, r6, r0
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, [r3, r2]
+ ldr r0, _022360EC ; =0xFFFFE3FF
+ and r0, r1
+ str r0, [r3, r2]
+ b _022360D6
+_022360CE:
+ add r0, r6, #0
+ mov r1, ip
+ bl MOD11_0223A424
+_022360D6:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022360DC: .word 0x00002DB0
+_022360E0: .word 0x000030AC
+_022360E4: .word 0x00002D4C
+_022360E8: .word 0x00002DCC
+_022360EC: .word 0xFFFFE3FF
+
+ thumb_func_start MOD11_022360F0
+MOD11_022360F0: ; 0x022360F0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ mov r7, #0
+ str r0, [sp, #8]
+ add r6, r7, #0
+ add r4, r7, #0
+_0223610E:
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r0, r5, r0
+ add r1, r4, r0
+ ldr r0, _022361B8 ; =0x00002D4C
+ ldrh r0, [r1, r0]
+ bl MOD11_02246BE8
+ cmp r0, #0
+ bne _0223614E
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r0, r5, r0
+ add r1, r4, r0
+ ldr r0, _022361B8 ; =0x00002D4C
+ ldrh r1, [r1, r0]
+ mov r0, #0x42
+ lsl r0, r0, #2
+ cmp r1, r0
+ beq _0223614E
+ cmp r1, #0xfd
+ beq _0223614E
+ add r0, #0xb8
+ cmp r1, r0
+ beq _0223614E
+ add r0, r5, #0
+ bl MOD11_02246AF8
+ cmp r0, #0
+ beq _02236156
+_0223614E:
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ orr r7, r0
+_02236156:
+ add r6, r6, #1
+ add r4, r4, #2
+ cmp r6, #4
+ blt _0223610E
+ mov r0, #2
+ mvn r0, r0
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r2, [r5, #0x64]
+ add r1, r5, #0
+ add r3, r7, #0
+ bl MOD11_02245D38
+ add r4, r0, #0
+ cmp r4, #0xf
+ bne _02236180
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ b _022361B0
+_02236180:
+ mov r7, #0x1e
+_02236182:
+ bl LCRandom
+ lsr r1, r0, #0x1f
+ lsl r0, r0, #0x1e
+ sub r0, r0, r1
+ ror r0, r7
+ add r6, r1, r0
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ tst r0, r4
+ bne _02236182
+ ldr r0, [r5, #0x64]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ add r2, r5, r2
+ lsl r0, r6, #1
+ add r2, r2, r0
+ ldr r0, _022361B8 ; =0x00002D4C
+ add r1, #0x64
+ ldrh r0, [r2, r0]
+ str r0, [r5, r1]
+_022361B0:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022361B8: .word 0x00002D4C
+
+ thumb_func_start MOD11_022361BC
+MOD11_022361BC: ; 0x022361BC
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _02236200 ; =0x00002D8C
+ add r2, r4, r0
+ ldr r0, [r2, r1]
+ add r1, r1, #4
+ ldr r1, [r2, r1]
+ mov r2, #0x40
+ bl FUN_02079A0C
+ ldr r3, _02236204 ; =0x0225DC3C
+ mov r2, #0
+_022361E2:
+ ldrb r1, [r3]
+ cmp r0, r1
+ ble _022361F0
+ add r2, r2, #1
+ add r3, r3, #2
+ cmp r2, #6
+ blo _022361E2
+_022361F0:
+ ldr r0, _02236208 ; =0x0225DC3D
+ lsl r1, r2, #1
+ ldrb r1, [r0, r1]
+ ldr r0, _0223620C ; =0x00002154
+ str r1, [r4, r0]
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_02236200: .word 0x00002D8C
+_02236204: .word 0x0225DC3C
+_02236208: .word 0x0225DC3D
+_0223620C: .word 0x00002154
+
+ thumb_func_start MOD11_02236210
+MOD11_02236210: ; 0x02236210
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ ldr r2, [r5, #0x6c]
+ add r4, r0, #0
+ lsl r0, r2, #1
+ add r1, r5, r0
+ ldr r0, _022362AC ; =0x0000307C
+ ldrh r1, [r1, r0]
+ cmp r1, #0
+ beq _0223629E
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ mov r3, #0xc0
+ add r0, r5, r0
+ mul r3, r2
+ add r0, r0, r3
+ bl MOD11_022461AC
+ add r2, r0, #0
+ cmp r2, #4
+ beq _0223625C
+ ldr r0, [r5, #0x6c]
+ mov r1, #0xc0
+ mul r1, r0
+ add r1, r5, r1
+ add r3, r1, r2
+ ldr r1, _022362B0 ; =0x00002D6C
+ ldrb r3, [r3, r1]
+ cmp r3, #0
+ bne _02236266
+_0223625C:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223A424
+ b _022362A6
+_02236266:
+ mov r1, #4
+ cmp r3, #4
+ bge _0223626E
+ add r1, r3, #0
+_0223626E:
+ lsl r0, r0, #1
+ add r3, r5, r0
+ ldr r0, _022362AC ; =0x0000307C
+ ldrh r3, [r3, r0]
+ mov r0, #0x49
+ lsl r0, r0, #2
+ str r3, [r5, r0]
+ add r0, #0xc
+ str r1, [r5, r0]
+ ldr r0, _022362B0 ; =0x00002D6C
+ ldr r4, [r5, #0x6c]
+ mov r3, #0xc0
+ add r0, r5, r0
+ mul r3, r4
+ add r3, r0, r3
+ ldrb r0, [r3, r2]
+ sub r0, r0, r1
+ strb r0, [r3, r2]
+ ldr r2, [r5, #0x6c]
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_02245190
+ b _022362A6
+_0223629E:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223A424
+_022362A6:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_022362AC: .word 0x0000307C
+_022362B0: .word 0x00002D6C
+
+ thumb_func_start MOD11_022362B4
+MOD11_022362B4: ; 0x022362B4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ bl MOD11_0222FF74
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ mov r1, #0x4d
+ mov r0, #0
+ lsl r1, r1, #2
+ ldr r2, _022363F4 ; =0x00003044
+ str r0, [r5, r1]
+ ldr r2, [r5, r2]
+ cmp r2, #0xd7
+ bne _02236382
+ sub r1, #0x10
+ str r2, [r5, r1]
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x2b
+ beq _0223630A
+ ldr r2, [r5, #0x64]
+ mov r0, #0xc0
+ add r3, r2, #0
+ mul r3, r0
+ ldr r2, _022363F8 ; =0x00002DAC
+ mov r1, #0
+ add r3, r5, r3
+ str r1, [r3, r2]
+ add r1, r2, #4
+ ldr r2, [r5, #0x64]
+ add r1, r5, r1
+ mul r0, r2
+ ldr r3, [r1, r0]
+ ldr r2, _022363FC ; =0xF7FFFFFF
+ and r2, r3
+ str r2, [r1, r0]
+ b _02236316
+_0223630A:
+ mov r1, #0x4d
+ lsl r1, r1, #2
+ ldr r2, [r5, r1]
+ mov r0, #5
+ orr r0, r2
+ str r0, [r5, r1]
+_02236316:
+ mov r0, #2
+ tst r0, r4
+ beq _02236374
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #0x10
+ bl MOD11_0223C230
+ add r4, r0, #0
+ bl MaskOfFlagNo
+ ldr r1, _02236400 ; =0x00003108
+ ldrb r1, [r5, r1]
+ tst r0, r1
+ bne _022363E2
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ add r2, r4, #0
+ mov r3, #0x2b
+ bl MOD11_02246D84
+ cmp r0, #0
+ bne _0223635E
+ mov r0, #0xc0
+ mul r0, r4
+ ldr r1, _022363F8 ; =0x00002DAC
+ mov r3, #0
+ add r2, r5, r0
+ str r3, [r2, r1]
+ add r1, r1, #4
+ add r3, r5, r1
+ ldr r2, [r3, r0]
+ ldr r1, _022363FC ; =0xF7FFFFFF
+ and r1, r2
+ str r1, [r3, r0]
+ b _022363E2
+_0223635E:
+ mov r1, #0x46
+ lsl r1, r1, #2
+ add r0, r1, #0
+ str r4, [r5, r1]
+ add r0, #0x1c
+ ldr r2, [r5, r0]
+ mov r0, #0xa
+ orr r0, r2
+ add r1, #0x1c
+ str r0, [r5, r1]
+ b _022363E2
+_02236374:
+ mov r1, #0x4d
+ lsl r1, r1, #2
+ ldr r2, [r5, r1]
+ mov r0, #8
+ orr r0, r2
+ str r0, [r5, r1]
+ b _022363E2
+_02236382:
+ ldr r3, [r5, #0x64]
+ mov r2, #0xc0
+ mul r2, r3
+ add r3, r5, r2
+ ldr r2, _022363F8 ; =0x00002DAC
+ str r0, [r3, r2]
+ add r0, r2, #4
+ add r6, r5, r0
+ ldr r0, [r5, #0x64]
+ mov r2, #0xc0
+ add r3, r0, #0
+ mul r3, r2
+ ldr r2, [r6, r3]
+ ldr r0, _022363FC ; =0xF7FFFFFF
+ and r0, r2
+ str r0, [r6, r3]
+ mov r0, #2
+ tst r0, r4
+ beq _022363DA
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #0x10
+ bl MOD11_0223C230
+ add r4, r0, #0
+ bl MaskOfFlagNo
+ ldr r1, _02236400 ; =0x00003108
+ ldrb r1, [r5, r1]
+ tst r0, r1
+ bne _022363E2
+ mov r0, #0xc0
+ mul r0, r4
+ ldr r1, _022363F8 ; =0x00002DAC
+ mov r3, #0
+ add r2, r5, r0
+ str r3, [r2, r1]
+ add r1, r1, #4
+ add r3, r5, r1
+ ldr r2, [r3, r0]
+ ldr r1, _022363FC ; =0xF7FFFFFF
+ and r1, r2
+ str r1, [r3, r0]
+ b _022363E2
+_022363DA:
+ ldr r2, [r5, r1]
+ mov r0, #8
+ orr r0, r2
+ str r0, [r5, r1]
+_022363E2:
+ ldr r3, _022363F4 ; =0x00003044
+ ldr r2, [r5, #0x64]
+ ldr r3, [r5, r3]
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_02256284
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022363F4: .word 0x00003044
+_022363F8: .word 0x00002DAC
+_022363FC: .word 0xF7FFFFFF
+_02236400: .word 0x00003108
+
+ thumb_func_start MOD11_02236404
+MOD11_02236404: ; 0x02236404
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ add r0, r5, #0
+ bl MOD11_0222FF74
+ str r0, [sp, #4]
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02230270
+ add r7, r0, #0
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02236454
+ ldr r0, [sp, #4]
+ mov r1, #0x84
+ tst r0, r1
+ bne _02236454
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ b _022364EC
+_02236454:
+ ldr r0, [r4, #0x64]
+ add r1, r4, r0
+ ldr r0, _022364F4 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ bl MaskOfFlagNo
+ lsl r1, r7, #3
+ add r2, r4, r1
+ mov r1, #0x71
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ lsl r1, r1, #3
+ lsr r1, r1, #0x1a
+ tst r0, r1
+ beq _0223647C
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ b _022364EC
+_0223647C:
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x79
+ beq _02236494
+ ldr r1, [r4, #0x6c]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x79
+ bne _0223649E
+_02236494:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ b _022364EC
+_0223649E:
+ ldr r2, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _022364F8 ; =0x00002DB8
+ ldrh r0, [r1, r0]
+ cmp r0, #0
+ beq _022364C6
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r3, #0x3c
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _022364C6
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A424
+ b _022364EC
+_022364C6:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _022364F8 ; =0x00002DB8
+ ldrh r0, [r1, r0]
+ cmp r0, #0
+ bne _022364E4
+ ldr r2, [r4, #0x6c]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246C50
+ cmp r0, #0
+ bne _022364EC
+_022364E4:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_022364EC:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022364F4: .word 0x0000219C
+_022364F8: .word 0x00002DB8
+
+ thumb_func_start MOD11_022364FC
+MOD11_022364FC: ; 0x022364FC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r6, r1, #0
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ ldr r1, [r6, #0x64]
+ str r0, [sp, #8]
+ lsl r0, r1, #1
+ add r2, r6, r0
+ ldr r0, _02236640 ; =0x0000305C
+ ldrh r0, [r2, r0]
+ cmp r0, #0xb6
+ beq _0223653C
+ cmp r0, #0xc5
+ beq _0223653C
+ cmp r0, #0xcb
+ beq _0223653C
+ ldr r0, _02236644 ; =0x00002DC8
+ add r3, r1, #0
+ mov r2, #0xc0
+ add r0, r6, r0
+ mul r3, r2
+ ldr r2, [r0, r3]
+ ldr r1, _02236648 ; =0xFFFFE7FF
+ and r1, r2
+ str r1, [r0, r3]
+_0223653C:
+ ldr r0, [sp]
+ mov r7, #0
+ add r4, r7, #0
+ bl MOD11_0222FF84
+ cmp r0, #0
+ ble _02236564
+ add r5, r6, #0
+_0223654C:
+ ldr r0, _0223664C ; =0x000021A8
+ ldr r0, [r5, r0]
+ cmp r0, #0x27
+ beq _02236556
+ add r7, r7, #1
+_02236556:
+ ldr r0, [sp]
+ add r5, #0x10
+ add r4, r4, #1
+ bl MOD11_0222FF84
+ cmp r4, r0
+ blt _0223654C
+_02236564:
+ cmp r7, #1
+ beq _0223656E
+ mov r0, #1
+ str r0, [sp, #4]
+ b _02236572
+_0223656E:
+ mov r0, #0
+ str r0, [sp, #4]
+_02236572:
+ ldr r7, [r6, #0x64]
+ ldr r0, _02236644 ; =0x00002DC8
+ add r5, r7, #0
+ add r4, r6, r0
+ mov r0, #0xc0
+ mul r5, r0
+ bl LCRandom
+ ldr r1, [r4, r5]
+ lsl r1, r1, #0x13
+ lsr r1, r1, #0x1e
+ lsl r2, r1, #1
+ ldr r1, _02236650 ; =0x0225DC34
+ ldrh r1, [r1, r2]
+ cmp r1, r0
+ blo _02236628
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ beq _02236628
+ ldr r0, _02236654 ; =0x00003044
+ ldr r0, [r6, r0]
+ lsl r0, r0, #4
+ add r1, r6, r0
+ ldr r0, _02236658 ; =0x000003DE
+ ldrh r0, [r1, r0]
+ cmp r0, #0x6f
+ bne _022365C0
+ mov r2, #0x75
+ lsl r2, r2, #2
+ add r0, r6, r2
+ lsl r4, r7, #6
+ ldr r3, [r0, r4]
+ mov r1, #4
+ orr r1, r3
+ str r1, [r0, r4]
+ add r0, r6, #0
+ sub r2, #0xba
+ add r0, #0xf6
+ strh r2, [r0]
+_022365C0:
+ ldr r0, _02236654 ; =0x00003044
+ ldr r0, [r6, r0]
+ lsl r0, r0, #4
+ add r1, r6, r0
+ ldr r0, _02236658 ; =0x000003DE
+ ldrh r0, [r1, r0]
+ cmp r0, #0x74
+ bne _022365EC
+ mov r2, #0x75
+ ldr r1, [r6, #0x64]
+ lsl r2, r2, #2
+ lsl r4, r1, #6
+ add r0, r6, r2
+ add r1, r2, #0
+ ldr r3, [r0, r4]
+ add r1, #0x2c
+ orr r1, r3
+ str r1, [r0, r4]
+ add r0, r6, #0
+ sub r2, #0x1a
+ add r0, #0xf6
+ strh r2, [r0]
+_022365EC:
+ add r0, r6, #0
+ mov r1, #2
+ add r0, #0xf5
+ strb r1, [r0]
+ ldr r1, [r6, #0x64]
+ add r0, r6, #0
+ bl MOD11_0224682C
+ add r1, r6, #0
+ add r1, #0xf8
+ str r0, [r1]
+ ldr r2, [r6, #0x64]
+ mov r0, #0xc0
+ add r1, r2, #0
+ mul r1, r0
+ ldr r0, _02236644 ; =0x00002DC8
+ add r0, r6, r0
+ ldr r3, [r0, r1]
+ lsl r2, r3, #0x13
+ lsr r4, r2, #0x1e
+ cmp r4, #3
+ bhs _02236638
+ ldr r2, _02236648 ; =0xFFFFE7FF
+ and r3, r2
+ add r2, r4, #1
+ lsl r2, r2, #0x1e
+ lsr r2, r2, #0x13
+ orr r2, r3
+ str r2, [r0, r1]
+ b _02236638
+_02236628:
+ ldr r1, [r4, r5]
+ ldr r0, _02236648 ; =0xFFFFE7FF
+ and r0, r1
+ str r0, [r4, r5]
+ ldr r1, [sp, #8]
+ add r0, r6, #0
+ bl MOD11_0223A424
+_02236638:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02236640: .word 0x0000305C
+_02236644: .word 0x00002DC8
+_02236648: .word 0xFFFFE7FF
+_0223664C: .word 0x000021A8
+_02236650: .word 0x0225DC34
+_02236654: .word 0x00003044
+_02236658: .word 0x000003DE
+
+ thumb_func_start MOD11_0223665C
+MOD11_0223665C: ; 0x0223665C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _022366C8 ; =0x00002D90
+ ldr r0, [r1, r0]
+ mov r1, #4
+ bl MOD11_022476C0
+ ldr r1, [r5, #0x64]
+ mov r2, #0xc0
+ add r3, r1, #0
+ mul r3, r2
+ add r1, r5, r3
+ ldr r3, _022366CC ; =0x00002D8C
+ ldr r1, [r1, r3]
+ cmp r1, r0
+ bgt _0223669E
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223A424
+ b _022366C2
+_0223669E:
+ ldr r1, _022366D0 ; =0x0000215C
+ neg r4, r0
+ str r4, [r5, r1]
+ ldr r1, [r5, #0x64]
+ add r4, r1, #0
+ add r1, r3, #0
+ mul r4, r2
+ add r3, #0x24
+ add r4, r5, r4
+ add r1, #0x54
+ str r0, [r4, r1]
+ ldr r0, [r5, #0x64]
+ add r3, r5, r3
+ mul r2, r0
+ ldr r1, [r3, r2]
+ ldr r0, _022366D4 ; =0xFFFF1FFF
+ and r0, r1
+ str r0, [r3, r2]
+_022366C2:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_022366C8: .word 0x00002D90
+_022366CC: .word 0x00002D8C
+_022366D0: .word 0x0000215C
+_022366D4: .word 0xFFFF1FFF
+
+ thumb_func_start MOD11_022366D8
+MOD11_022366D8: ; 0x022366D8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ str r1, [sp]
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, [sp]
+ bl MOD11_0223A404
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ bl MOD11_0222FF74
+ add r4, r0, #0
+ mov r0, #1
+ tst r0, r4
+ bne _02236700
+ b _0223684E
+_02236700:
+ ldr r1, [sp]
+ add r0, r5, #0
+ ldr r1, [r1, #0x6c]
+ mov r7, #0
+ bl MOD11_0222FF88
+ ldr r1, [sp]
+ str r0, [sp, #0x14]
+ ldr r1, [r1, #0x6c]
+ add r0, r5, #0
+ bl MOD11_0222FFC8
+ add r6, r0, #0
+ mov r0, #8
+ tst r0, r4
+ bne _02236734
+ mov r0, #0x10
+ tst r0, r4
+ beq _0223674C
+ ldr r1, [sp]
+ add r0, r5, #0
+ ldr r1, [r1, #0x6c]
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _0223674C
+_02236734:
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, [sp]
+ ldr r1, [r0, #0x6c]
+ add r1, r0, r1
+ ldr r0, _02236868 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ str r0, [sp, #8]
+ str r0, [sp, #4]
+ b _0223678C
+_0223674C:
+ mov r0, #2
+ str r0, [sp, #0x10]
+ tst r0, r4
+ beq _02236776
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp]
+ ldr r1, [r0, #0x6c]
+ add r2, r0, r1
+ ldr r0, _02236868 ; =0x0000219C
+ ldrb r0, [r2, r0]
+ str r0, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_022302BC
+ ldr r1, [sp]
+ add r1, r1, r0
+ ldr r0, _02236868 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ str r0, [sp, #4]
+ b _0223678C
+_02236776:
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, [sp]
+ ldr r1, [r0, #0x6c]
+ add r1, r0, r1
+ ldr r0, _02236868 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ str r0, [sp, #8]
+ str r0, [sp, #4]
+_0223678C:
+ ldr r5, [sp, #0xc]
+ add r0, r5, #0
+ cmp r0, r6
+ bge _022367CE
+_02236794:
+ ldr r0, [sp, #0x14]
+ add r1, r5, #0
+ bl GetPartyMonByIndex
+ mov r1, #5
+ mov r2, #0
+ add r4, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _022367C8
+ add r0, r4, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _022367C8
+ add r0, r4, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _022367C8
+ add r7, r7, #1
+_022367C8:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02236794
+_022367CE:
+ ldr r0, [sp, #0x10]
+ cmp r7, r0
+ bgt _022367DE
+ ldr r0, [sp]
+ ldr r1, [sp, #0x18]
+ bl MOD11_0223A424
+ b _02236860
+_022367DE:
+ ldr r0, [sp]
+ bl MOD11_02246CCC
+ cmp r0, #0
+ beq _02236844
+ mov r7, #5
+_022367EA:
+ bl LCRandom
+ add r1, r6, #0
+ bl _s32_div_f
+ ldr r0, [sp, #0xc]
+ add r5, r1, #0
+ add r5, r5, r0
+ ldr r0, [sp, #8]
+ cmp r5, r0
+ beq _022367EA
+ ldr r0, [sp, #4]
+ cmp r5, r0
+ beq _022367EA
+ ldr r0, [sp, #0x14]
+ add r1, r5, #0
+ bl GetPartyMonByIndex
+ add r1, r7, #0
+ mov r2, #0
+ add r4, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _022367EA
+ add r0, r4, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #1
+ beq _022367EA
+ add r0, r4, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _022367EA
+ ldr r0, [sp]
+ ldr r1, [r0, #0x6c]
+ add r1, r0, r1
+ ldr r0, _0223686C ; =0x000021A0
+ strb r5, [r1, r0]
+ b _02236860
+_02236844:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x18]
+ bl MOD11_0223A424
+ b _02236860
+_0223684E:
+ ldr r0, [sp]
+ bl MOD11_02246CCC
+ cmp r0, #0
+ bne _02236860
+ ldr r0, [sp]
+ ldr r1, [sp, #0x18]
+ bl MOD11_0223A424
+_02236860:
+ mov r0, #0
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02236868: .word 0x0000219C
+_0223686C: .word 0x000021A0
+
+ thumb_func_start MOD11_02236870
+MOD11_02236870: ; 0x02236870
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r5, [r4, #0x64]
+ ldr r1, _02236A40 ; =0x00002DB0
+ add r0, r5, #0
+ mov r2, #0xc0
+ mov r5, #2
+ add r3, r4, r1
+ mul r0, r2
+ ldr r6, [r3, r0]
+ lsl r5, r5, #0x14
+ orr r5, r6
+ str r5, [r3, r0]
+ ldr r3, [r4, #0x64]
+ mov r0, #0
+ add r5, r3, #0
+ mul r5, r2
+ add r3, r1, #0
+ add r5, r4, r5
+ add r3, #0x38
+ strh r0, [r5, r3]
+ add r3, r1, #0
+ add r3, #0x18
+ ldr r6, [r4, #0x64]
+ add r5, r4, r3
+ add r3, r6, #0
+ mul r3, r2
+ ldr r7, [r5, r3]
+ mov r6, #7
+ bic r7, r6
+ str r7, [r5, r3]
+ ldr r3, [r4, #0x6c]
+ add r5, r3, #0
+ mul r5, r2
+ add r3, r1, #0
+ add r5, r4, r5
+ sub r3, #8
+ ldr r3, [r5, r3]
+ ldr r5, [r4, #0x64]
+ add r6, r5, #0
+ mul r6, r2
+ add r5, r1, #0
+ add r6, r4, r6
+ add r5, #0x34
+ str r3, [r6, r5]
+ ldr r3, [r4, #0x6c]
+ add r5, r3, #0
+ mul r5, r2
+ add r3, r1, #0
+ add r5, r4, r5
+ add r3, #0xe
+ ldrb r3, [r5, r3]
+ ldr r5, [r4, #0x64]
+ add r6, r5, #0
+ lsl r3, r3, #0x1c
+ mul r6, r2
+ add r5, r1, #0
+ lsr r3, r3, #0x1c
+ add r6, r4, r6
+ add r5, #0x4a
+ strh r3, [r6, r5]
+ add r3, r1, #0
+ add r3, #0x1c
+ ldr r6, [r4, #0x64]
+ add r5, r4, r3
+ add r3, r6, #0
+ mul r3, r2
+ ldr r7, [r5, r3]
+ mov r6, #0x3c
+ bic r7, r6
+ str r7, [r5, r3]
+ ldr r6, [r4, #0x64]
+ sub r1, #0x70
+ add r3, r6, #0
+ mul r3, r2
+ ldr r7, [r5, r3]
+ ldr r6, _02236A44 ; =0xFFFFE3FF
+ and r6, r7
+ str r6, [r5, r3]
+ add r5, r4, r1
+ ldr r1, [r4, #0x64]
+ add r3, r1, #0
+ mul r3, r2
+ ldr r1, [r4, #0x6c]
+ add r3, r5, r3
+ mul r2, r1
+ add r2, r5, r2
+_02236926:
+ ldrb r1, [r2, r0]
+ strb r1, [r3, r0]
+ add r0, r0, #1
+ cmp r0, #0x28
+ blo _02236926
+ ldr r3, [r4, #0x64]
+ ldr r1, _02236A48 ; =0x00002D68
+ add r6, r3, #0
+ mov r2, #0xc0
+ add r0, r4, r1
+ mul r6, r2
+ ldr r5, [r0, r6]
+ mov r3, #1
+ bic r5, r3
+ str r5, [r0, r6]
+ ldr r3, [r4, #0x64]
+ add r6, r3, #0
+ mul r6, r2
+ ldr r5, [r0, r6]
+ mov r3, #2
+ bic r5, r3
+ str r5, [r0, r6]
+ ldr r3, [r4, #0x64]
+ add r6, r3, #0
+ mul r6, r2
+ ldr r5, [r0, r6]
+ mov r3, #4
+ bic r5, r3
+ str r5, [r0, r6]
+ ldr r3, [r4, #0x64]
+ add r6, r3, #0
+ mul r6, r2
+ ldr r5, [r0, r6]
+ mov r3, #8
+ bic r5, r3
+ str r5, [r0, r6]
+ ldr r3, [r4, #0x64]
+ add r6, r3, #0
+ mul r6, r2
+ ldr r5, [r0, r6]
+ mov r3, #0x10
+ bic r5, r3
+ str r5, [r0, r6]
+ ldr r3, [r4, #0x64]
+ add r6, r3, #0
+ mul r6, r2
+ ldr r5, [r0, r6]
+ mov r3, #0x20
+ bic r5, r3
+ str r5, [r0, r6]
+ ldr r5, [r4, #0x64]
+ add r3, r5, #0
+ mul r3, r2
+ ldr r6, [r0, r3]
+ ldr r5, _02236A4C ; =0xFFFFFEFF
+ and r5, r6
+ str r5, [r0, r3]
+ ldr r5, [r4, #0x64]
+ add r3, r5, #0
+ mul r3, r2
+ ldr r6, [r0, r3]
+ ldr r5, _02236A50 ; =0xFFFFFDFF
+ and r5, r6
+ str r5, [r0, r3]
+ ldr r5, [r4, #0x64]
+ add r3, r5, #0
+ mul r3, r2
+ ldr r6, [r0, r3]
+ ldr r5, _02236A54 ; =0xFFFFFBFF
+ and r5, r6
+ str r5, [r0, r3]
+ add r3, r1, #0
+ add r3, #0x60
+ add r6, r4, r3
+ ldr r3, [r4, #0x64]
+ add r1, #0x70
+ add r5, r3, #0
+ mul r5, r2
+ ldr r7, [r6, r5]
+ ldr r3, _02236A58 ; =0xBFFFFFFF
+ and r3, r7
+ add r7, r2, #0
+ add r7, #0x90
+ ldr r7, [r4, r7]
+ lsl r7, r7, #0x1f
+ lsr r7, r7, #1
+ orr r3, r7
+ str r3, [r6, r5]
+ add r3, r2, #0
+ add r3, #0x90
+ ldr r3, [r4, r3]
+ add r6, r3, #1
+ ldr r3, [r4, #0x64]
+ add r5, r3, #0
+ mul r5, r2
+ add r3, r4, r5
+ str r6, [r3, r1]
+ ldr r1, [r4, #0x64]
+ add r5, r1, #0
+ mul r5, r2
+ ldr r3, [r0, r5]
+ mov r1, #0x40
+ bic r3, r1
+ str r3, [r0, r5]
+ ldr r1, [r4, #0x64]
+ mov r6, #0
+ add r3, r1, #0
+ mul r3, r2
+ ldr r2, [r0, r3]
+ mov r1, #0x80
+ bic r2, r1
+ str r2, [r0, r3]
+ mov r0, #0xf9
+ add r5, r6, #0
+ mov r1, #5
+ lsl r0, r0, #2
+_02236A0E:
+ ldr r3, [r4, #0x64]
+ mov r2, #0xc0
+ mul r2, r3
+ add r3, r4, r2
+ ldr r2, _02236A5C ; =0x00002D4C
+ add r7, r3, r5
+ ldrh r2, [r7, r2]
+ lsl r2, r2, #4
+ add r2, r4, r2
+ ldrb r2, [r2, r0]
+ cmp r2, #5
+ bhs _02236A2E
+ add r7, r3, r6
+ ldr r3, _02236A60 ; =0x00002D6C
+ strb r2, [r7, r3]
+ b _02236A34
+_02236A2E:
+ ldr r2, _02236A60 ; =0x00002D6C
+ add r3, r3, r6
+ strb r1, [r3, r2]
+_02236A34:
+ add r6, r6, #1
+ add r5, r5, #2
+ cmp r6, #4
+ blt _02236A0E
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02236A40: .word 0x00002DB0
+_02236A44: .word 0xFFFFE3FF
+_02236A48: .word 0x00002D68
+_02236A4C: .word 0xFFFFFEFF
+_02236A50: .word 0xFFFFFDFF
+_02236A54: .word 0xFFFFFBFF
+_02236A58: .word 0xBFFFFFFF
+_02236A5C: .word 0x00002D4C
+_02236A60: .word 0x00002D6C
+
+ thumb_func_start MOD11_02236A64
+MOD11_02236A64: ; 0x02236A64
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02230270
+ mov r2, #0x72
+ mov r1, #1
+ add r3, r0, #0
+ eor r3, r1
+ lsl r0, r3, #3
+ add r5, r4, r0
+ lsl r2, r2, #2
+ ldr r5, [r5, r2]
+ lsl r5, r5, #0x1e
+ lsr r5, r5, #0x1e
+ cmp r5, #3
+ bne _02236ABA
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r2, r4, r0
+ ldr r3, [r4, #0x64]
+ mov r0, #0x1c
+ mul r0, r3
+ ldr r5, [r2, r0]
+ mov r3, #1
+ bic r5, r3
+ orr r1, r5
+ str r1, [r2, r0]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ b _02236AE2
+_02236ABA:
+ add r1, r2, #0
+ sub r1, #0xc
+ lsl r6, r3, #2
+ add r1, r4, r1
+ ldr r5, [r1, r6]
+ mov r3, #4
+ orr r3, r5
+ str r3, [r1, r6]
+ add r2, r4, r2
+ ldr r4, [r2, r0]
+ mov r3, #3
+ add r1, r4, #0
+ bic r1, r3
+ lsl r3, r4, #0x1e
+ lsr r3, r3, #0x1e
+ add r4, r3, #1
+ mov r3, #3
+ and r3, r4
+ orr r1, r3
+ str r1, [r2, r0]
+_02236AE2:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02236AE8
+MOD11_02236AE8: ; 0x02236AE8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_0223C230
+ add r4, r0, #0
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_02230270
+ lsl r0, r0, #3
+ add r1, r5, r0
+ mov r0, #0x72
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1e
+ lsr r1, r0, #0x1e
+ beq _02236B56
+ mov r0, #0xc0
+ mul r0, r4
+ ldr r4, _02236B64 ; =0x00002D8C
+ add r0, r5, r0
+ ldr r2, [r0, r4]
+ cmp r2, #0
+ beq _02236B56
+ mov r2, #5
+ sub r1, r2, r1
+ ldr r3, _02236B68 ; =0x0000215C
+ lsl r1, r1, #1
+ str r1, [r5, r3]
+ add r1, r4, #4
+ ldr r1, [r0, r1]
+ sub r0, r2, #6
+ mul r0, r1
+ ldr r1, [r5, r3]
+ bl MOD11_022476C0
+ ldr r1, _02236B68 ; =0x0000215C
+ str r0, [r5, r1]
+ b _02236B5E
+_02236B56:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+_02236B5E:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02236B64: .word 0x00002D8C
+_02236B68: .word 0x0000215C
+
+ thumb_func_start MOD11_02236B6C
+MOD11_02236B6C: ; 0x02236B6C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ str r1, [sp]
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, [sp]
+ bl MOD11_0223A404
+ str r0, [sp, #8]
+ add r0, r4, #0
+ bl MOD11_0222FF84
+ mov r2, #0x4d
+ mov r7, #0
+ str r0, [sp, #4]
+ add r1, r0, #0
+ ldr r0, [sp]
+ lsl r2, r2, #2
+ str r1, [r0, r2]
+ ldr r0, [sp, #4]
+ add r6, r7, #0
+ cmp r0, #0
+ ble _02236BFC
+ ldr r4, [sp]
+ ldr r1, _02236C10 ; =0x00002DC8
+ add r0, r4, #0
+ add r5, r0, r1
+_02236BA8:
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0x20
+ tst r0, r1
+ bne _02236BCE
+ ldr r0, _02236C14 ; =0x00002D8C
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02236BCE
+ ldr r0, [sp]
+ add r2, r6, #0
+ add r1, r0, #0
+ ldr r1, [r1, #0x64]
+ mov r3, #0x2b
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02236BD2
+_02236BCE:
+ add r7, r7, #1
+ b _02236BF0
+_02236BD2:
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0x20
+ orr r1, r0
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ str r1, [r4, r0]
+ ldr r1, [r5]
+ ldr r0, _02236C18 ; =0xFFFF9FFF
+ and r1, r0
+ mov r0, #6
+ lsl r0, r0, #0xc
+ orr r0, r1
+ str r0, [r5]
+_02236BF0:
+ ldr r0, [sp, #4]
+ add r6, r6, #1
+ add r4, #0xc0
+ add r5, #0xc0
+ cmp r6, r0
+ blt _02236BA8
+_02236BFC:
+ ldr r0, [sp, #4]
+ cmp r7, r0
+ bne _02236C0A
+ ldr r0, [sp]
+ ldr r1, [sp, #8]
+ bl MOD11_0223A424
+_02236C0A:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02236C10: .word 0x00002DC8
+_02236C14: .word 0x00002D8C
+_02236C18: .word 0xFFFF9FFF
+
+ thumb_func_start MOD11_02236C1C
+MOD11_02236C1C: ; 0x02236C1C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223A444
+ ldr r1, _02236C4C ; =0x00003104
+ ldr r1, [r4, r1]
+ add r2, r4, r1
+ ldr r1, _02236C50 ; =0x000021EC
+ ldrb r1, [r2, r1]
+ str r1, [r0]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02236C4C: .word 0x00003104
+_02236C50: .word 0x000021EC
+
+ thumb_func_start MOD11_02236C54
+MOD11_02236C54: ; 0x02236C54
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223A444
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD11_0222FF84
+ ldr r1, [r6]
+ cmp r1, r0
+ bhs _02236C92
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+_02236C92:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02236C98
+MOD11_02236C98: ; 0x02236C98
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0223C230
+ add r4, r0, #0
+ mov r0, #0x4e
+ mov r3, #0
+ lsl r0, r0, #2
+ str r3, [r5, r0]
+ ldr r0, _02236F40 ; =0x0000215C
+ add r1, r4, #0
+ str r3, [r5, r0]
+ add r0, r5, #0
+ mov r2, #0x1b
+ bl MOD11_02243420
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ add r7, r0, #0
+ mov r0, #0xd
+ str r0, [sp]
+ add r0, r6, #0
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _02236D08
+ mov r0, #0x4c
+ str r0, [sp]
+ add r0, r6, #0
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _02236D0A
+_02236D08:
+ b _02236F38
+_02236D0A:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #0xc
+ tst r0, r1
+ beq _02236D74
+ ldr r0, [sp, #4]
+ cmp r0, #5
+ beq _02236D74
+ cmp r7, #5
+ beq _02236D74
+ cmp r0, #8
+ beq _02236D74
+ cmp r7, #8
+ beq _02236D74
+ cmp r0, #4
+ beq _02236D74
+ cmp r7, #4
+ beq _02236D74
+ mov r0, #0xc0
+ add r6, r4, #0
+ mul r6, r0
+ ldr r0, _02236F44 ; =0x00002D8C
+ add r1, r5, r6
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02236D74
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #8
+ beq _02236D74
+ mov r3, #0xb7
+ add r1, r5, r6
+ lsl r3, r3, #6
+ ldr r2, [r1, r3]
+ ldr r0, _02236F48 ; =0x00040080
+ tst r0, r2
+ bne _02236D74
+ mov r0, #0xc9
+ add r2, r0, #0
+ add r2, #0x5b
+ str r0, [r5, r2]
+ sub r3, #0x30
+ ldr r1, [r1, r3]
+ sub r0, #0xca
+ mul r0, r1
+ mov r1, #0x10
+ bl MOD11_022476C0
+ ldr r1, _02236F40 ; =0x0000215C
+ str r0, [r5, r1]
+_02236D74:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #0x30
+ tst r0, r1
+ beq _02236DDC
+ mov r0, #0xc0
+ add r6, r4, #0
+ mul r6, r0
+ ldr r0, _02236F44 ; =0x00002D8C
+ add r2, r5, r6
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ beq _02236DDC
+ add r0, #0x34
+ ldr r1, [r2, r0]
+ ldr r0, _02236F48 ; =0x00040080
+ tst r0, r1
+ bne _02236DDC
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x57
+ beq _02236DB2
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x5e
+ bne _02236DC8
+_02236DB2:
+ ldr r0, _02236F4C ; =0x00002D90
+ add r1, r5, r6
+ ldr r1, [r1, r0]
+ mov r0, #0
+ mvn r0, r0
+ mul r0, r1
+ mov r1, #8
+ bl MOD11_022476C0
+ ldr r1, _02236F40 ; =0x0000215C
+ str r0, [r5, r1]
+_02236DC8:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x5e
+ bne _02236DDC
+ mov r0, #0x4e
+ mov r1, #2
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+_02236DDC:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #0xc0
+ tst r1, r0
+ beq _02236E5E
+ ldr r1, _02236F44 ; =0x00002D8C
+ add r6, r4, #0
+ mul r6, r0
+ add r0, r5, r1
+ str r0, [sp, #8]
+ ldr r0, [r0, r6]
+ cmp r0, #0
+ beq _02236E5E
+ add r0, r5, r6
+ add r1, #0x34
+ ldr r1, [r0, r1]
+ ldr r0, _02236F48 ; =0x00040080
+ tst r0, r1
+ bne _02236E5E
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x73
+ bne _02236E2A
+ ldr r0, _02236F4C ; =0x00002D90
+ add r1, r5, r6
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #8]
+ ldr r1, [r1, r6]
+ cmp r1, r0
+ bhs _02236E5E
+ mov r1, #0x10
+ bl MOD11_022476C0
+ ldr r1, _02236F40 ; =0x0000215C
+ str r0, [r5, r1]
+ b _02236E5E
+_02236E2A:
+ ldr r0, [sp, #4]
+ cmp r0, #0xf
+ beq _02236E5E
+ cmp r7, #0xf
+ beq _02236E5E
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x51
+ beq _02236E5E
+ ldr r1, _02236F50 ; =0x00000102
+ add r0, r1, #0
+ add r0, #0x22
+ str r1, [r5, r0]
+ ldr r0, _02236F4C ; =0x00002D90
+ add r1, r5, r6
+ ldr r1, [r1, r0]
+ mov r0, #0
+ mvn r0, r0
+ mul r0, r1
+ mov r1, #0x10
+ bl MOD11_022476C0
+ ldr r1, _02236F40 ; =0x0000215C
+ str r0, [r5, r1]
+_02236E5E:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #3
+ tst r0, r1
+ beq _02236F38
+ ldr r1, _02236F44 ; =0x00002D8C
+ mov r0, #0xc0
+ add r6, r4, #0
+ mul r6, r0
+ add r7, r5, r1
+ ldr r0, [r7, r6]
+ cmp r0, #0
+ beq _02236EA0
+ add r1, r1, #4
+ add r1, r5, r1
+ str r1, [sp, #0xc]
+ ldr r1, [r1, r6]
+ cmp r0, r1
+ bhs _02236EA0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x2c
+ bne _02236EA0
+ ldr r0, [sp, #0xc]
+ mov r1, #0x10
+ ldr r0, [r0, r6]
+ bl MOD11_022476C0
+ ldr r1, _02236F40 ; =0x0000215C
+ str r0, [r5, r1]
+_02236EA0:
+ ldr r0, [r7, r6]
+ cmp r0, #0
+ beq _02236ECC
+ ldr r1, _02236F4C ; =0x00002D90
+ add r1, r5, r1
+ str r1, [sp, #0x10]
+ ldr r1, [r1, r6]
+ cmp r0, r1
+ bhs _02236ECC
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x57
+ bne _02236ECC
+ ldr r0, [sp, #0x10]
+ mov r1, #8
+ ldr r0, [r0, r6]
+ bl MOD11_022476C0
+ ldr r1, _02236F40 ; =0x0000215C
+ str r0, [r5, r1]
+_02236ECC:
+ ldr r0, [r7, r6]
+ cmp r0, #0
+ beq _02236F38
+ ldr r0, _02236F54 ; =0x00002DAC
+ add r7, r5, r0
+ ldr r0, [r7, r6]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ beq _02236F38
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x5d
+ bne _02236F38
+ ldr r0, [r7, r6]
+ mov r1, #7
+ tst r1, r0
+ beq _02236EFC
+ mov r0, #0x13
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02236F30
+_02236EFC:
+ ldr r1, _02236F58 ; =0x00000F88
+ tst r1, r0
+ beq _02236F0C
+ mov r0, #0x13
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02236F30
+_02236F0C:
+ mov r1, #0x10
+ tst r1, r0
+ beq _02236F1C
+ mov r0, #0x13
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02236F30
+_02236F1C:
+ mov r1, #0x40
+ tst r0, r1
+ beq _02236F2A
+ mov r0, #3
+ add r1, #0xf0
+ str r0, [r5, r1]
+ b _02236F30
+_02236F2A:
+ mov r0, #4
+ add r1, #0xf0
+ str r0, [r5, r1]
+_02236F30:
+ mov r0, #0x4e
+ mov r1, #1
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+_02236F38:
+ mov r0, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02236F40: .word 0x0000215C
+_02236F44: .word 0x00002D8C
+_02236F48: .word 0x00040080
+_02236F4C: .word 0x00002D90
+_02236F50: .word 0x00000102
+_02236F54: .word 0x00002DAC
+_02236F58: .word 0x00000F88
+
+ thumb_func_start MOD11_02236F5C
+MOD11_02236F5C: ; 0x02236F5C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r6, [r4, #0x64]
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r2, r4, r0
+ mov r0, #0x1c
+ add r1, r6, #0
+ mul r1, r0
+ ldr r3, [r2, r1]
+ ldr r0, _0223705C ; =0xFFFFFE3F
+ mov r7, #0xc0
+ and r0, r3
+ add r3, r6, #0
+ mul r3, r7
+ add r6, r4, r3
+ ldr r3, _02237060 ; =0x00002DC8
+ ldr r6, [r6, r3]
+ sub r3, #0x18
+ lsl r6, r6, #0xe
+ lsr r6, r6, #0x1d
+ lsl r6, r6, #0x1d
+ lsr r6, r6, #0x17
+ orr r0, r6
+ str r0, [r2, r1]
+ ldr r2, [r4, #0x64]
+ add r0, r2, #0
+ mul r0, r7
+ add r0, r4, r0
+ ldr r1, [r0, r3]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ tst r0, r1
+ bne _02236FCA
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022451C0
+ ldr r0, _02237060 ; =0x00002DC8
+ ldr r2, [r4, #0x64]
+ add r1, r4, r0
+ add r0, r7, #0
+ mul r0, r2
+ ldr r3, [r1, r0]
+ ldr r2, _02237064 ; =0xFFFC7FFF
+ and r3, r2
+ mov r2, #0xa
+ lsl r2, r2, #0xe
+ orr r2, r3
+ str r2, [r1, r0]
+_02236FCA:
+ ldr r1, [r4, #0x64]
+ ldr r0, _02237060 ; =0x00002DC8
+ mov r7, #0xc0
+ add r3, r1, #0
+ add r6, r4, r0
+ mul r3, r7
+ ldr r1, [r6, r3]
+ ldr r2, _02237064 ; =0xFFFC7FFF
+ and r2, r1
+ lsl r1, r1, #0xe
+ lsr r1, r1, #0x1d
+ sub r1, r1, #1
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0xe
+ orr r1, r2
+ str r1, [r6, r3]
+ ldr r2, [r4, #0x64]
+ add r1, r2, #0
+ mul r1, r7
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0xe
+ lsr r0, r0, #0x1d
+ bne _02237002
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022451F0
+_02237002:
+ ldr r0, _02237068 ; =0x00003044
+ mov r2, #1
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _0223706C ; =0x000003E1
+ ldrb r1, [r1, r0]
+ ldr r0, _02237070 ; =0x00002154
+ str r1, [r4, r0]
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _02237060 ; =0x00002DC8
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0xe
+ lsr r1, r0, #0x1d
+ mov r0, #5
+ sub r3, r0, r1
+ cmp r3, #1
+ ble _0223703A
+ ldr r0, _02237070 ; =0x00002154
+_0223702E:
+ ldr r1, [r4, r0]
+ add r2, r2, #1
+ lsl r1, r1, #1
+ str r1, [r4, r0]
+ cmp r2, r3
+ blt _0223702E
+_0223703A:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _02237074 ; =0x00002DB0
+ ldr r1, [r1, r0]
+ mov r0, #1
+ lsl r0, r0, #0x1e
+ tst r0, r1
+ beq _02237056
+ ldr r0, _02237070 ; =0x00002154
+ ldr r1, [r4, r0]
+ lsl r1, r1, #1
+ str r1, [r4, r0]
+_02237056:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223705C: .word 0xFFFFFE3F
+_02237060: .word 0x00002DC8
+_02237064: .word 0xFFFC7FFF
+_02237068: .word 0x00003044
+_0223706C: .word 0x000003E1
+_02237070: .word 0x00002154
+_02237074: .word 0x00002DB0
+
+ thumb_func_start MOD11_02237078
+MOD11_02237078: ; 0x02237078
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ add r1, r2, #0
+ mul r1, r0
+ ldr r0, _022370F4 ; =0x00002DC8
+ add r0, r4, r0
+ ldr r3, [r0, r1]
+ lsl r2, r3, #0xb
+ lsr r5, r2, #0x1d
+ cmp r5, #5
+ bhs _022370A8
+ ldr r2, _022370F8 ; =0xFFE3FFFF
+ and r3, r2
+ add r2, r5, #1
+ lsl r2, r2, #0x1d
+ lsr r2, r2, #0xb
+ orr r2, r3
+ str r2, [r0, r1]
+_022370A8:
+ ldr r0, _022370FC ; =0x00003044
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _02237100 ; =0x000003E1
+ ldrb r1, [r1, r0]
+ ldr r0, _02237104 ; =0x00002154
+ str r1, [r4, r0]
+ ldr r2, [r4, #0x64]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _022370F4 ; =0x00002DC8
+ mov r0, #1
+ ldr r1, [r2, r1]
+ lsl r1, r1, #0xb
+ lsr r1, r1, #0x1d
+ cmp r1, #1
+ bls _022370EE
+ ldr r3, _02237104 ; =0x00002154
+ ldr r2, _022370F4 ; =0x00002DC8
+ mov r1, #0xc0
+_022370D4:
+ ldr r5, [r4, r3]
+ add r0, r0, #1
+ lsl r5, r5, #1
+ str r5, [r4, r3]
+ ldr r5, [r4, #0x64]
+ add r6, r5, #0
+ mul r6, r1
+ add r5, r4, r6
+ ldr r5, [r5, r2]
+ lsl r5, r5, #0xb
+ lsr r5, r5, #0x1d
+ cmp r0, r5
+ blo _022370D4
+_022370EE:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_022370F4: .word 0x00002DC8
+_022370F8: .word 0xFFE3FFFF
+_022370FC: .word 0x00003044
+_02237100: .word 0x000003E1
+_02237104: .word 0x00002154
+
+ thumb_func_start MOD11_02237108
+MOD11_02237108: ; 0x02237108
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r3, r0, #0
+ add r0, r4, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ mov r5, #0xc0
+ add r1, r0, #0
+ mul r1, r5
+ ldr r6, _02237184 ; =0x00002DBE
+ add r1, r4, r1
+ ldrb r0, [r1, r6]
+ lsl r0, r0, #0x1c
+ lsr r2, r0, #0x1c
+ add r0, r5, #0
+ add r0, #0x58
+ ldr r0, [r4, r0]
+ mul r5, r0
+ add r5, r4, r5
+ ldrb r5, [r5, r6]
+ lsl r5, r5, #0x1c
+ lsr r5, r5, #0x1c
+ cmp r5, r2
+ beq _0223715A
+ sub r6, #0xe
+ ldr r6, [r1, r6]
+ mov r1, #0xf
+ lsl r1, r1, #0x10
+ tst r1, r6
+ bne _0223715A
+ cmp r5, #2
+ beq _0223715A
+ cmp r2, #2
+ bne _02237164
+_0223715A:
+ add r0, r4, #0
+ add r1, r3, #0
+ bl MOD11_0223A424
+ b _0223717E
+_02237164:
+ bl MaskOfFlagNo
+ ldr r1, _02237188 ; =0x00002DB0
+ mov r2, #0xc0
+ add r1, r4, r1
+ add r4, #0x94
+ ldr r3, [r4]
+ lsl r0, r0, #0x10
+ add r4, r3, #0
+ mul r4, r2
+ ldr r2, [r1, r4]
+ orr r0, r2
+ str r0, [r1, r4]
+_0223717E:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02237184: .word 0x00002DBE
+_02237188: .word 0x00002DB0
+
+ thumb_func_start MOD11_0223718C
+MOD11_0223718C: ; 0x0223718C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02230270
+ mov r5, #0x6f
+ add r2, r0, #0
+ lsl r5, r5, #2
+ add r1, r4, r5
+ lsl r0, r2, #2
+ ldr r6, [r1, r0]
+ mov r3, #8
+ tst r3, r6
+ beq _022371D0
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+ ldr r1, _02237214 ; =0x0000216C
+ mov r0, #0x40
+ ldr r2, [r4, r1]
+ orr r0, r2
+ str r0, [r4, r1]
+ b _02237210
+_022371D0:
+ mov r3, #8
+ orr r3, r6
+ str r3, [r1, r0]
+ add r5, #8
+ lsl r0, r2, #3
+ add r1, r4, r5
+ ldr r3, [r1, r0]
+ ldr r2, _02237218 ; =0xFFF1FFFF
+ and r3, r2
+ mov r2, #0xa
+ lsl r2, r2, #0x10
+ orr r2, r3
+ str r2, [r1, r0]
+ ldr r3, [r1, r0]
+ ldr r2, _0223721C ; =0xFFFE7FFF
+ and r3, r2
+ ldr r2, [r4, #0x64]
+ lsl r2, r2, #0x1e
+ lsr r2, r2, #0xf
+ orr r2, r3
+ str r2, [r1, r0]
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0xf5
+ strb r1, [r0]
+ add r0, r4, #0
+ ldr r1, [r4, #0x64]
+ add r0, #0xf8
+ str r1, [r0]
+ mov r0, #0xc6
+ add r4, #0xf6
+ strh r0, [r4]
+_02237210:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02237214: .word 0x0000216C
+_02237218: .word 0xFFF1FFFF
+_0223721C: .word 0xFFFE7FFF
+
+ thumb_func_start MOD11_02237220
+MOD11_02237220: ; 0x02237220
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ bl LCRandom
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0x66
+ bge _02237248
+ ldr r0, _02237284 ; =0x00002154
+ mov r1, #0x28
+ str r1, [r5, r0]
+ b _0223727E
+_02237248:
+ cmp r0, #0xb2
+ bge _02237254
+ ldr r0, _02237284 ; =0x00002154
+ mov r1, #0x50
+ str r1, [r5, r0]
+ b _0223727E
+_02237254:
+ cmp r0, #0xcc
+ bge _02237260
+ ldr r0, _02237284 ; =0x00002154
+ mov r1, #0x78
+ str r1, [r5, r0]
+ b _0223727E
+_02237260:
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02237288 ; =0x00002D90
+ ldr r0, [r1, r0]
+ mov r1, #4
+ bl MOD11_022476C0
+ ldr r1, _0223728C ; =0x0000215C
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223A424
+_0223727E:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02237284: .word 0x00002154
+_02237288: .word 0x00002D90
+_0223728C: .word 0x0000215C
+
+ thumb_func_start MOD11_02237290
+MOD11_02237290: ; 0x02237290
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, _0223732C ; =0x00003120
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _0223731C
+ bl LCRandom
+ mov r1, #0x64
+ bl _s32_div_f
+ ldr r0, _0223732C ; =0x00003120
+ strb r1, [r4, r0]
+ ldrb r1, [r4, r0]
+ cmp r1, #5
+ bhs _022372C4
+ ldr r1, _02237330 ; =0x00002154
+ mov r2, #0xa
+ str r2, [r4, r1]
+ mov r1, #4
+ strb r1, [r4, r0]
+ b _0223731C
+_022372C4:
+ cmp r1, #0xf
+ bhs _022372D4
+ ldr r1, _02237330 ; =0x00002154
+ mov r2, #0x1e
+ str r2, [r4, r1]
+ mov r1, #5
+ strb r1, [r4, r0]
+ b _0223731C
+_022372D4:
+ cmp r1, #0x23
+ bhs _022372E4
+ ldr r1, _02237330 ; =0x00002154
+ mov r2, #0x32
+ str r2, [r4, r1]
+ mov r1, #6
+ strb r1, [r4, r0]
+ b _0223731C
+_022372E4:
+ cmp r1, #0x41
+ bhs _022372F4
+ ldr r1, _02237330 ; =0x00002154
+ mov r2, #0x46
+ str r2, [r4, r1]
+ mov r1, #7
+ strb r1, [r4, r0]
+ b _0223731C
+_022372F4:
+ cmp r1, #0x55
+ bhs _02237304
+ ldr r1, _02237330 ; =0x00002154
+ mov r2, #0x5a
+ str r2, [r4, r1]
+ mov r1, #8
+ strb r1, [r4, r0]
+ b _0223731C
+_02237304:
+ cmp r1, #0x5f
+ ldr r1, _02237330 ; =0x00002154
+ bhs _02237314
+ mov r2, #0x6e
+ str r2, [r4, r1]
+ mov r1, #9
+ strb r1, [r4, r0]
+ b _0223731C
+_02237314:
+ mov r2, #0x96
+ str r2, [r4, r1]
+ mov r1, #0xa
+ strb r1, [r4, r0]
+_0223731C:
+ ldr r0, _0223732C ; =0x00003120
+ ldrb r1, [r4, r0]
+ mov r0, #0x13
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_0223732C: .word 0x00003120
+_02237330: .word 0x00002154
+
+ thumb_func_start MOD11_02237334
+MOD11_02237334: ; 0x02237334
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_0223C230
+ add r4, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_02246DE0
+ cmp r0, #0
+ bne _0223737E
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ b _02237392
+_0223737E:
+ cmp r7, #1
+ bne _02237392
+ mov r0, #0x4f
+ lsl r0, r0, #2
+ add r3, r5, r0
+ lsl r2, r4, #2
+ ldr r1, [r3, r2]
+ mov r0, #1
+ orr r0, r1
+ str r0, [r3, r2]
+_02237392:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02237398
+MOD11_02237398: ; 0x02237398
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0x64]
+ bl MOD11_02230270
+ ldr r1, [r4, #0x64]
+ mov r6, #0xe
+ ldr r5, _022374D4 ; =0x00002DB0
+ add r2, r1, #0
+ mov r3, #0xc0
+ mul r2, r3
+ add r1, r4, r5
+ ldr r7, [r1, r2]
+ lsl r6, r6, #0xc
+ tst r6, r7
+ beq _022373F4
+ ldr r0, _022374D8 ; =0xFFFF1FFF
+ and r0, r7
+ str r0, [r1, r2]
+ ldr r0, [r4, #0x64]
+ mov r2, #0x74
+ add r1, r0, #0
+ add r0, r5, #0
+ mul r1, r3
+ add r1, r4, r1
+ add r0, #0x1c
+ ldr r0, [r1, r0]
+ add r5, #0x3a
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x1e
+ add r0, r3, #0
+ add r0, #0x58
+ str r1, [r4, r0]
+ ldr r0, [r4, #0x64]
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r4, r1
+ ldrh r0, [r0, r5]
+ add r3, #0x64
+ mov r1, #1
+ str r0, [r4, r3]
+ add r0, r4, #0
+ bl MOD11_0223A43C
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022373F4:
+ add r5, #0x10
+ add r5, r4, r5
+ ldr r1, [r5, r2]
+ mov r6, #4
+ tst r6, r1
+ beq _0223742A
+ mov r0, #4
+ bic r1, r0
+ str r1, [r5, r2]
+ ldr r0, [r4, #0x64]
+ add r2, r0, #0
+ mul r2, r3
+ ldr r1, [r5, r2]
+ mov r0, #3
+ bic r1, r0
+ str r1, [r5, r2]
+ mov r1, #0x49
+ add r0, r1, #0
+ add r0, #0xdb
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x75
+ bl MOD11_0223A43C
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223742A:
+ mov r1, #0x72
+ lsl r1, r1, #2
+ add r6, r4, r1
+ lsl r5, r0, #3
+ ldr r2, [r6, r5]
+ lsl r3, r2, #0x1e
+ lsr r3, r3, #0x1e
+ beq _02237466
+ sub r1, #0xc
+ lsl r3, r0, #2
+ add r1, r4, r1
+ ldr r2, [r1, r3]
+ mov r0, #4
+ bic r2, r0
+ str r2, [r1, r3]
+ ldr r1, [r6, r5]
+ mov r0, #3
+ bic r1, r0
+ str r1, [r6, r5]
+ mov r1, #0xbf
+ add r0, r1, #0
+ add r0, #0x65
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x75
+ bl MOD11_0223A43C
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02237466:
+ lsl r2, r2, #0x1c
+ lsr r2, r2, #0x1e
+ beq _0223749A
+ add r2, r1, #0
+ sub r2, #0xc
+ lsl r7, r0, #2
+ add r3, r4, r2
+ ldr r2, [r3, r7]
+ ldr r0, _022374DC ; =0xFFFFFBFF
+ and r0, r2
+ str r0, [r3, r7]
+ ldr r2, [r6, r5]
+ mov r0, #0xc
+ bic r2, r0
+ add r0, r1, #0
+ str r2, [r6, r5]
+ sub r0, #0x42
+ sub r1, #0xa4
+ str r0, [r4, r1]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x75
+ bl MOD11_0223A43C
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223749A:
+ add r2, r1, #0
+ sub r2, #0xc
+ add r2, r4, r2
+ lsl r0, r0, #2
+ ldr r6, [r2, r0]
+ mov r5, #0x80
+ add r3, r6, #0
+ tst r3, r5
+ beq _022374C6
+ mov r3, #0x80
+ bic r6, r3
+ str r6, [r2, r0]
+ sub r1, #0xa
+ add r5, #0xa4
+ str r1, [r4, r5]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x75
+ bl MOD11_0223A43C
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022374C6:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022374D4: .word 0x00002DB0
+_022374D8: .word 0xFFFF1FFF
+_022374DC: .word 0xFFFFFBFF
+
+ thumb_func_start MOD11_022374E0
+MOD11_022374E0: ; 0x022374E0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ ldr r0, _02237578 ; =0x000080FF
+ tst r0, r1
+ beq _02237522
+ mov r0, #0xd
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _02237522
+ mov r0, #0x4c
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _02237536
+_02237522:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0223757C ; =0x00002D90
+ ldr r0, [r1, r0]
+ lsr r1, r0, #1
+ ldr r0, _02237580 ; =0x0000215C
+ str r1, [r4, r0]
+ b _02237572
+_02237536:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0x30
+ tst r0, r1
+ ldr r1, [r4, #0x64]
+ beq _0223755E
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0223757C ; =0x00002D90
+ ldr r1, [r1, r0]
+ mov r0, #0x14
+ mul r0, r1
+ mov r1, #0x1e
+ bl MOD11_022476C0
+ ldr r1, _02237580 ; =0x0000215C
+ str r0, [r4, r1]
+ b _02237572
+_0223755E:
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0223757C ; =0x00002D90
+ ldr r0, [r1, r0]
+ mov r1, #4
+ bl MOD11_022476C0
+ ldr r1, _02237580 ; =0x0000215C
+ str r0, [r4, r1]
+_02237572:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02237578: .word 0x000080FF
+_0223757C: .word 0x00002D90
+_02237580: .word 0x0000215C
+
+ thumb_func_start MOD11_02237584
+MOD11_02237584: ; 0x02237584
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, _02237664 ; =0x00002D54
+ ldr r1, [r4, #0x64]
+ add r3, r4, r0
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, [r3, r0]
+ mov r5, #2
+ lsl r0, r1, #2
+ lsr r0, r0, #0x1b
+ and r0, r5
+ lsl r2, r0, #4
+ lsl r0, r1, #7
+ lsr r0, r0, #0x1b
+ and r0, r5
+ lsl r7, r0, #3
+ lsl r0, r1, #0xc
+ lsr r0, r0, #0x1b
+ and r0, r5
+ lsl r0, r0, #2
+ mov ip, r0
+ lsl r0, r1, #0x11
+ lsr r0, r0, #0x1b
+ and r0, r5
+ lsl r6, r0, #1
+ lsl r0, r1, #0x1b
+ lsr r0, r0, #0x1b
+ lsl r1, r1, #0x16
+ and r0, r5
+ lsr r1, r1, #0x1b
+ lsr r0, r0, #1
+ and r1, r5
+ orr r0, r1
+ add r1, r6, #0
+ orr r1, r0
+ mov r0, ip
+ orr r0, r1
+ orr r0, r7
+ add r1, r2, #0
+ orr r1, r0
+ ldr r0, _02237668 ; =0x00002154
+ str r1, [r4, r0]
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r5, [r3, r0]
+ lsl r0, r5, #2
+ lsr r0, r0, #0x1b
+ lsl r0, r0, #0x1f
+ lsr r6, r0, #0x1a
+ lsl r0, r5, #7
+ lsr r0, r0, #0x1b
+ lsl r0, r0, #0x1f
+ lsr r3, r0, #0x1b
+ lsl r0, r5, #0xc
+ lsr r0, r0, #0x1b
+ lsl r0, r0, #0x1f
+ lsr r2, r0, #0x1c
+ lsl r0, r5, #0x11
+ lsr r0, r0, #0x1b
+ lsl r0, r0, #0x1f
+ lsr r7, r0, #0x1d
+ lsl r0, r5, #0x1b
+ lsr r1, r0, #0x1b
+ mov r0, #1
+ and r0, r1
+ lsl r1, r5, #0x16
+ lsr r1, r1, #0x1b
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1e
+ orr r0, r1
+ orr r0, r7
+ orr r0, r2
+ orr r0, r3
+ add r1, r6, #0
+ orr r1, r0
+ ldr r0, _02237668 ; =0x00002154
+ add r0, #0xc
+ str r1, [r4, r0]
+ ldr r0, _02237668 ; =0x00002154
+ ldr r1, [r4, r0]
+ mov r0, #0x28
+ mul r0, r1
+ mov r1, #0x3f
+ bl _s32_div_f
+ ldr r1, _02237668 ; =0x00002154
+ add r0, #0x1e
+ str r0, [r4, r1]
+ add r1, #0xc
+ ldr r1, [r4, r1]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0x3f
+ bl _s32_div_f
+ add r1, r0, #1
+ ldr r0, _0223766C ; =0x00002160
+ str r1, [r4, r0]
+ ldr r1, [r4, r0]
+ cmp r1, #9
+ blt _0223765E
+ add r1, r1, #1
+ str r1, [r4, r0]
+_0223765E:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02237664: .word 0x00002D54
+_02237668: .word 0x00002154
+_0223766C: .word 0x00002160
+
+ thumb_func_start MOD11_02237670
+MOD11_02237670: ; 0x02237670
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r2, _022376C8 ; =0x00002D58
+ mov r1, #0
+ mov r3, #0xc0
+ add r5, r2, #0
+_02237684:
+ ldr r6, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r6
+ ldr r6, [r4, #0x64]
+ add r0, r4, r0
+ add r0, r1, r0
+ add r7, r6, #0
+ mul r7, r3
+ add r6, r4, r7
+ add r6, r1, r6
+ ldrsb r0, [r0, r2]
+ add r1, r1, #1
+ cmp r1, #8
+ strb r0, [r6, r5]
+ blt _02237684
+ ldr r0, [r4, #0x64]
+ ldr r6, [r4, #0x6c]
+ mov r3, #0xc0
+ add r1, r0, #0
+ ldr r5, _022376CC ; =0x00002DB0
+ mul r1, r3
+ mul r3, r6
+ add r2, r4, r5
+ add r3, r4, r3
+ ldr r4, [r3, r5]
+ mov r3, #1
+ lsl r3, r3, #0x14
+ ldr r0, [r2, r1]
+ and r3, r4
+ orr r0, r3
+ str r0, [r2, r1]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022376C8: .word 0x00002D58
+_022376CC: .word 0x00002DB0
+
+ thumb_func_start MOD11_022376D0
+MOD11_022376D0: ; 0x022376D0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ ldr r1, [r4, #0x6c]
+ add r2, r0, #0
+ mov r0, #0x62
+ add r3, r4, r1
+ lsl r0, r0, #2
+ ldrb r0, [r3, r0]
+ cmp r0, #0
+ bne _022377A4
+ add r0, r5, #0
+ bl MOD11_02230270
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ lsl r3, r0, #2
+ add r6, r4, r1
+ add r7, r1, #0
+ ldr r2, [r6, r3]
+ mov r0, #0x10
+ orr r0, r2
+ str r0, [r6, r3]
+ ldr r0, [r4, #0x6c]
+ sub r7, #0x34
+ add r2, r4, r0
+ mov r0, #3
+ strb r0, [r2, r7]
+ add r7, r1, #0
+ ldr r0, _022377B4 ; =0x00003044
+ sub r7, #0x2c
+ ldr r2, [r4, r0]
+ ldr r0, [r4, #0x6c]
+ sub r1, #0x24
+ lsl r0, r0, #1
+ add r0, r4, r0
+ strh r2, [r0, r7]
+ ldr r2, [r4, #0x6c]
+ ldr r0, [r4, #0x64]
+ lsl r2, r2, #2
+ add r2, r4, r2
+ str r0, [r2, r1]
+ mov r0, #3
+ lsl r0, r0, #7
+ ldr r0, [r4, r0]
+ ldr r2, _022377B4 ; =0x00003044
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x64]
+ add r1, r4, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x6c]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ ldr r2, [r4, r2]
+ ldr r3, [r6, r3]
+ add r0, r5, #0
+ bl MOD11_0224B310
+ mov r1, #0
+ mvn r1, r1
+ mul r1, r0
+ add r0, r4, #0
+ bl MOD11_0224BF10
+ ldr r1, [r4, #0x6c]
+ lsl r1, r1, #2
+ add r2, r4, r1
+ mov r1, #0x6a
+ lsl r1, r1, #2
+ str r0, [r2, r1]
+ ldr r0, [r4, #0x64]
+ lsl r0, r0, #6
+ add r2, r4, r0
+ add r0, r1, #0
+ add r0, #0x2c
+ ldr r0, [r2, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ beq _022377AC
+ ldr r0, [r4, #0x6c]
+ add r5, r4, r1
+ lsl r4, r0, #2
+ ldr r1, [r5, r4]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ bl _s32_div_f
+ str r0, [r5, r4]
+ b _022377AC
+_022377A4:
+ add r0, r4, #0
+ add r1, r2, #0
+ bl MOD11_0223A424
+_022377AC:
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022377B4: .word 0x00003044
+
+ thumb_func_start MOD11_022377B8
+MOD11_022377B8: ; 0x022377B8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD11_0223C230
+ add r6, r0, #0
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_0223CC8C
+ str r0, [sp]
+ ldr r2, [sp, #0xc]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, r6, #0
+ bl MOD11_0223D29C
+ ldr r0, _02237830 ; =0x0000216C
+ ldr r1, [r4, r0]
+ ldr r0, _02237834 ; =0x001FD849
+ tst r0, r1
+ beq _02237828
+ ldr r1, [sp, #8]
+ add r0, r4, #0
+ bl MOD11_0223A424
+_02237828:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02237830: .word 0x0000216C
+_02237834: .word 0x001FD849
+
+ thumb_func_start MOD11_02237838
+MOD11_02237838: ; 0x02237838
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r2, [r4, #0x64]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r3, #0
+ bl MOD11_02246ED0
+ cmp r0, #0
+ beq _02237866
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_02237866:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223786C
+MOD11_0223786C: ; 0x0223786C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r1, [r5, #0x64]
+ add r0, r7, #0
+ bl MOD11_0222FFC8
+ ldr r1, _02237AA0 ; =0x0000217D
+ str r0, [sp]
+ ldrb r0, [r5, r1]
+ cmp r0, #0
+ bne _02237900
+ mov r0, #2
+ strb r0, [r5, r1]
+ add r0, r1, #0
+ mov r2, #0xfd
+ add r0, #0xb
+ str r2, [r5, r0]
+ mov r2, #0
+ add r0, r1, #2
+ strb r2, [r5, r0]
+ add r6, r1, #2
+_022378A2:
+ ldr r2, _02237AA4 ; =0x0000217F
+ ldr r1, [r5, #0x64]
+ ldrb r2, [r5, r2]
+ add r0, r7, #0
+ bl MOD11_02230014
+ ldr r1, _02237AA4 ; =0x0000217F
+ add r4, r0, #0
+ ldrb r3, [r5, r1]
+ ldr r1, [r5, #0x64]
+ add r2, r5, r1
+ ldr r1, _02237AA8 ; =0x0000219C
+ ldrb r1, [r2, r1]
+ cmp r3, r1
+ beq _02237900
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _022378F8
+ add r0, r4, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _022378F8
+ add r0, r4, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02237AAC ; =0x000001EE
+ cmp r0, r1
+ beq _022378F8
+ add r0, r4, #0
+ mov r1, #0x9f
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02237900
+_022378F8:
+ ldrb r0, [r5, r6]
+ add r0, r0, #1
+ strb r0, [r5, r6]
+ b _022378A2
+_02237900:
+ ldr r2, _02237AA4 ; =0x0000217F
+ ldr r1, [r5, #0x64]
+ ldrb r2, [r5, r2]
+ add r0, r7, #0
+ bl MOD11_02230014
+ add r4, r0, #0
+ mov r1, #5
+ mov r2, #0
+ bl GetMonData
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r1, #0x70
+ mov r2, #0
+ bl GetMonData
+ add r6, r0, #0
+ add r0, r4, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl GetMonData
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ add r1, r6, #0
+ mov r2, #1
+ bl GetMonBaseStat_HandleFormeConversion
+ ldr r1, _02237AB0 ; =0x00002144
+ ldr r2, _02237AB4 ; =0x00003044
+ str r0, [r5, r1]
+ ldr r2, [r5, r2]
+ ldr r0, [r5, r1]
+ lsl r2, r2, #4
+ add r3, r5, r2
+ ldr r2, _02237AB8 ; =0x000003E1
+ ldrb r2, [r3, r2]
+ mul r2, r0
+ str r2, [r5, r1]
+ lsl r0, r4, #1
+ mov r1, #5
+ bl _s32_div_f
+ ldr r1, _02237AB0 ; =0x00002144
+ add r0, r0, #2
+ ldr r2, [r5, r1]
+ mul r0, r2
+ str r0, [r5, r1]
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ mov r1, #0xb5
+ add r2, r5, r0
+ lsl r1, r1, #6
+ ldrh r0, [r2, r1]
+ add r1, #0x26
+ ldrb r1, [r2, r1]
+ mov r2, #2
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x1b
+ bl GetMonBaseStat_HandleFormeConversion
+ add r1, r0, #0
+ ldr r0, _02237AB0 ; =0x00002144
+ ldr r0, [r5, r0]
+ bl _u32_div_f
+ ldr r1, _02237AB0 ; =0x00002144
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ mov r1, #0x32
+ bl _s32_div_f
+ ldr r1, _02237AB0 ; =0x00002144
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ add r0, r0, #2
+ str r0, [r5, r1]
+ add r0, r1, #0
+ add r0, #0xc
+ ldr r2, [r5, r1]
+ ldr r0, [r5, r0]
+ mul r0, r2
+ str r0, [r5, r1]
+ ldr r0, [r5, #0x64]
+ lsl r0, r0, #6
+ add r2, r5, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r2, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ beq _022379CC
+ ldr r1, [r5, r1]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ bl _s32_div_f
+ ldr r1, _02237AB0 ; =0x00002144
+ str r0, [r5, r1]
+_022379CC:
+ ldr r1, _02237AB0 ; =0x00002144
+ add r0, r5, #0
+ ldr r1, [r5, r1]
+ bl MOD11_0224BF10
+ ldr r1, _02237AB0 ; =0x00002144
+ str r0, [r5, r1]
+ mov r0, #0
+ ldr r2, [r5, r1]
+ mvn r0, r0
+ mul r0, r2
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r3, r1, #0
+ ldr r2, _02237ABC ; =0x000001E1
+ add r0, #0xf6
+ strh r2, [r0]
+ add r0, r5, #0
+ mov r2, #2
+ add r0, #0xf5
+ strb r2, [r0]
+ add r3, #0x3b
+ ldrb r3, [r5, r3]
+ ldr r0, [r5, #0x64]
+ add r6, r1, #0
+ lsl r3, r3, #8
+ orr r3, r0
+ add r0, r5, #0
+ add r0, #0xf8
+ str r3, [r0]
+ add r0, r1, #0
+ add r0, #0x3b
+ ldrb r0, [r5, r0]
+ add r6, #0x3b
+ add r3, r0, #1
+ add r0, r1, #0
+ add r0, #0x3b
+ strb r3, [r5, r0]
+ add r0, r1, #0
+ add r0, #0x38
+ strb r2, [r5, r0]
+ add r0, r1, #0
+ add r0, #0x3b
+ ldrb r2, [r5, r0]
+ ldr r0, [sp]
+ cmp r2, r0
+ bge _02237A94
+_02237A2A:
+ ldr r1, [r5, #0x64]
+ add r0, r7, #0
+ bl MOD11_02230014
+ ldr r1, _02237AA4 ; =0x0000217F
+ add r4, r0, #0
+ ldrb r3, [r5, r1]
+ ldr r1, [r5, #0x64]
+ add r2, r5, r1
+ ldr r1, _02237AA8 ; =0x0000219C
+ ldrb r1, [r2, r1]
+ cmp r3, r1
+ beq _02237A9A
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02237A7C
+ add r0, r4, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02237A7C
+ add r0, r4, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02237AAC ; =0x000001EE
+ cmp r0, r1
+ beq _02237A7C
+ add r0, r4, #0
+ mov r1, #0x9f
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02237A9A
+_02237A7C:
+ ldrb r0, [r5, r6]
+ add r0, r0, #1
+ strb r0, [r5, r6]
+ ldr r0, _02237AA4 ; =0x0000217F
+ ldrb r2, [r5, r0]
+ ldr r0, [sp]
+ cmp r2, r0
+ blt _02237A2A
+ ldr r0, _02237AC0 ; =0x0000217C
+ mov r1, #1
+ strb r1, [r5, r0]
+ b _02237A9A
+_02237A94:
+ mov r0, #1
+ add r1, #0x38
+ strb r0, [r5, r1]
+_02237A9A:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02237AA0: .word 0x0000217D
+_02237AA4: .word 0x0000217F
+_02237AA8: .word 0x0000219C
+_02237AAC: .word 0x000001EE
+_02237AB0: .word 0x00002144
+_02237AB4: .word 0x00003044
+_02237AB8: .word 0x000003E1
+_02237ABC: .word 0x000001E1
+_02237AC0: .word 0x0000217C
+
+ thumb_func_start MOD11_02237AC4
+MOD11_02237AC4: ; 0x02237AC4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02230270
+ mov r1, #0x71
+ lsl r1, r1, #2
+ mov r2, #1
+ add r1, r4, r1
+ lsl r0, r0, #3
+ ldr r3, [r1, r0]
+ lsl r2, r2, #0x14
+ orr r2, r3
+ str r2, [r1, r0]
+ ldr r3, [r1, r0]
+ ldr r2, _02237B00 ; =0xFF9FFFFF
+ and r3, r2
+ ldr r2, [r4, #0x64]
+ lsl r2, r2, #0x1e
+ lsr r2, r2, #9
+ orr r2, r3
+ str r2, [r1, r0]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02237B00: .word 0xFF9FFFFF
+
+ thumb_func_start MOD11_02237B04
+MOD11_02237B04: ; 0x02237B04
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _02237B82
+ add r0, r4, #0
+ add r1, r5, #0
+ mov r2, #0x10
+ bl MOD11_0223C230
+ add r4, r0, #0
+ bl MaskOfFlagNo
+ ldr r1, _02237B90 ; =0x00003108
+ ldrb r1, [r5, r1]
+ tst r0, r1
+ bne _02237B78
+ mov r0, #0xc0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _02237B94 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02237B78
+ ldr r0, [r5, #0x64]
+ mov r2, #0x75
+ lsl r0, r0, #6
+ add r0, r5, r0
+ lsl r2, r2, #2
+ ldr r0, [r0, r2]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ bne _02237B78
+ add r1, r5, r2
+ lsl r0, r4, #6
+ ldr r3, [r1, r0]
+ lsl r3, r3, #0x1c
+ lsr r3, r3, #0x1f
+ bne _02237B78
+ sub r2, #0xbc
+ str r4, [r5, r2]
+ ldr r3, [r1, r0]
+ mov r2, #8
+ orr r2, r3
+ str r2, [r1, r0]
+ b _02237B8A
+_02237B78:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ b _02237B8A
+_02237B82:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_02237B8A:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02237B90: .word 0x00003108
+_02237B94: .word 0x00002D8C
+
+ thumb_func_start MOD11_02237B98
+MOD11_02237B98: ; 0x02237B98
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ add r0, r5, #0
+ bl MOD11_0222FF74
+ str r0, [sp, #8]
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02230270
+ str r0, [sp]
+ ldr r1, [r4, #0x6c]
+ add r0, r5, #0
+ bl MOD11_02230270
+ add r7, r0, #0
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02237BF2
+ ldr r0, [sp, #8]
+ mov r1, #0x84
+ tst r0, r1
+ bne _02237BF2
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ b _02237C90
+_02237BF2:
+ ldr r0, [r4, #0x64]
+ add r1, r4, r0
+ ldr r0, _02237C98 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ bl MaskOfFlagNo
+ ldr r1, [sp]
+ lsl r1, r1, #3
+ add r2, r4, r1
+ mov r1, #0x71
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ lsl r1, r1, #3
+ lsr r1, r1, #0x1a
+ tst r0, r1
+ bne _02237C30
+ ldr r0, [r4, #0x6c]
+ add r1, r4, r0
+ ldr r0, _02237C98 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ bl MaskOfFlagNo
+ lsl r1, r7, #3
+ add r2, r4, r1
+ mov r1, #0x71
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ lsl r1, r1, #3
+ lsr r1, r1, #0x1a
+ tst r0, r1
+ beq _02237C3A
+_02237C30:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ b _02237C90
+_02237C3A:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ add r3, r4, r2
+ ldr r2, _02237C9C ; =0x00002DB8
+ ldrh r3, [r3, r2]
+ cmp r3, #0
+ bne _02237C58
+ ldr r3, [r4, #0x6c]
+ mul r0, r3
+ add r0, r4, r0
+ ldrh r0, [r0, r2]
+ cmp r0, #0
+ beq _02237C6E
+_02237C58:
+ add r0, r4, #0
+ bl MOD11_02246CAC
+ cmp r0, #0
+ beq _02237C6E
+ ldr r1, [r4, #0x6c]
+ add r0, r4, #0
+ bl MOD11_02246CAC
+ cmp r0, #0
+ bne _02237C78
+_02237C6E:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ b _02237C90
+_02237C78:
+ ldr r1, [r4, #0x64]
+ ldr r2, [r4, #0x6c]
+ add r0, r4, #0
+ mov r3, #0x3c
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02237C90
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_0223A424
+_02237C90:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02237C98: .word 0x0000219C
+_02237C9C: .word 0x00002DB8
+
+ thumb_func_start MOD11_02237CA0
+MOD11_02237CA0: ; 0x02237CA0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ mov r2, #0x63
+ lsl r2, r2, #2
+ ldr r3, [r4, #0x64]
+ add r5, r4, r2
+ add r1, r0, #0
+ ldrb r0, [r5, r3]
+ cmp r0, #0
+ beq _02237CCA
+ add r0, r4, #0
+ bl MOD11_0223A424
+ b _02237CDA
+_02237CCA:
+ mov r0, #2
+ strb r0, [r5, r3]
+ ldr r0, [r4, #0x64]
+ add r2, #0x2c
+ add r1, r4, r0
+ ldr r0, _02237CE0 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ strb r0, [r1, r2]
+_02237CDA:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02237CE0: .word 0x0000219C
+
+ thumb_func_start MOD11_02237CE4
+MOD11_02237CE4: ; 0x02237CE4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x48
+ str r0, [sp]
+ str r1, [sp, #4]
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, [sp, #4]
+ bl MOD11_0223A404
+ ldr r1, [sp, #4]
+ str r0, [sp, #0x14]
+ ldr r0, [sp]
+ ldr r1, [r1, #0x64]
+ mov r7, #0
+ bl MOD11_0222FFC8
+ str r0, [sp, #0xc]
+ add r0, r7, #0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ ble _02237D8A
+ add r5, sp, #0x18
+_02237D16:
+ ldr r0, [sp, #4]
+ ldr r1, [r0, #0x64]
+ add r2, r0, r1
+ ldr r0, _02237DB8 ; =0x0000219C
+ ldrb r2, [r2, r0]
+ ldr r0, [sp, #0x10]
+ cmp r0, r2
+ beq _02237D7E
+ ldr r0, [sp]
+ ldr r2, [sp, #0x10]
+ bl MOD11_02230014
+ mov r1, #0xad
+ mov r2, #0
+ str r0, [sp, #8]
+ bl GetMonData
+ cmp r0, #0
+ beq _02237D7E
+ ldr r0, [sp, #8]
+ mov r1, #0xad
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02237DBC ; =0x000001EE
+ cmp r0, r1
+ beq _02237D7E
+ mov r4, #0
+_02237D4E:
+ add r1, r4, #0
+ ldr r0, [sp, #8]
+ add r1, #0x36
+ mov r2, #0
+ bl GetMonData
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ add r0, r6, #0
+ bl MOD11_02246BE8
+ cmp r0, #0
+ bne _02237D78
+ add r0, r6, #0
+ bl MOD11_0224C07C
+ cmp r0, #1
+ bne _02237D78
+ strh r6, [r5]
+ add r5, r5, #2
+ add r7, r7, #1
+_02237D78:
+ add r4, r4, #1
+ cmp r4, #4
+ blt _02237D4E
+_02237D7E:
+ ldr r0, [sp, #0x10]
+ add r1, r0, #1
+ ldr r0, [sp, #0xc]
+ str r1, [sp, #0x10]
+ cmp r1, r0
+ blt _02237D16
+_02237D8A:
+ cmp r7, #0
+ beq _02237DA8
+ bl LCRandom
+ add r1, r7, #0
+ bl _s32_div_f
+ lsl r1, r1, #1
+ add r0, sp, #0x18
+ ldrh r2, [r0, r1]
+ mov r1, #0x49
+ ldr r0, [sp, #4]
+ lsl r1, r1, #2
+ str r2, [r0, r1]
+ b _02237DB0
+_02237DA8:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0x14]
+ bl MOD11_0223A424
+_02237DB0:
+ mov r0, #0
+ add sp, #0x48
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02237DB8: .word 0x0000219C
+_02237DBC: .word 0x000001EE
+
+ thumb_func_start MOD11_02237DC0
+MOD11_02237DC0: ; 0x02237DC0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r0, #0
+ str r1, [sp]
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, [sp]
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ mov r6, #0
+ add r0, r7, #0
+ add r4, r6, #0
+ bl MOD11_0222FF84
+ cmp r0, #0
+ ble _02237E00
+ ldr r5, [sp]
+_02237DE8:
+ ldr r0, _02237E30 ; =0x00002D8C
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _02237DF2
+ add r6, r6, #1
+_02237DF2:
+ add r0, r7, #0
+ add r5, #0xc0
+ add r4, r4, #1
+ bl MOD11_0222FF84
+ cmp r4, r0
+ blt _02237DE8
+_02237E00:
+ ldr r0, [sp]
+ add r0, #0xec
+ ldr r1, [r0]
+ sub r0, r6, #1
+ cmp r1, r0
+ bne _02237E16
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ bl MOD11_0223A424
+ b _02237E2A
+_02237E16:
+ mov r1, #0x75
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ add r3, r0, r1
+ ldr r0, [r0, #0x64]
+ lsl r2, r0, #6
+ ldr r1, [r3, r2]
+ mov r0, #0x10
+ orr r0, r1
+ str r0, [r3, r2]
+_02237E2A:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02237E30: .word 0x00002D8C
+
+ thumb_func_start MOD11_02237E34
+MOD11_02237E34: ; 0x02237E34
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r1, [r5, #0x64]
+ add r0, r6, #0
+ bl MOD11_02230270
+ add r1, r5, #0
+ ldr r4, [r5, #0x64]
+ add r1, #0x84
+ str r4, [r1]
+ ldr r1, [r5, #0x6c]
+ lsl r0, r0, #3
+ str r1, [r5, #0x64]
+ mov r1, #0x71
+ lsl r1, r1, #2
+ add r1, r5, r1
+ ldr r0, [r1, r0]
+ lsl r1, r0, #0xb
+ lsr r1, r1, #0x1f
+ beq _02237E7E
+ lsl r0, r0, #9
+ lsr r0, r0, #0x1e
+ mov r1, #0xc0
+ mul r1, r0
+ add r2, r5, r1
+ ldr r1, _02237EDC ; =0x00002D8C
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ beq _02237E7E
+ str r0, [r5, #0x6c]
+ b _02237ECA
+_02237E7E:
+ ldr r0, _02237EE0 ; =0x00003044
+ ldr r3, [r5, r0]
+ lsl r0, r3, #4
+ add r1, r5, r0
+ ldr r0, _02237EE4 ; =0x000003E6
+ ldrh r0, [r1, r0]
+ cmp r0, #4
+ beq _02237E92
+ cmp r0, #8
+ bne _02237E96
+_02237E92:
+ str r4, [r5, #0x6c]
+ b _02237ECA
+_02237E96:
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ lsl r3, r3, #0x10
+ ldr r2, [r5, #0x64]
+ add r0, r6, #0
+ add r1, r5, #0
+ lsr r3, r3, #0x10
+ bl MOD11_02244C28
+ mov r1, #0xb5
+ lsl r1, r1, #2
+ add r2, r5, r1
+ mov r1, #0x1c
+ mul r1, r0
+ ldr r1, [r2, r1]
+ lsl r2, r1, #0x1e
+ lsr r2, r2, #0x1f
+ bne _02237EC4
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0x1f
+ beq _02237EC8
+_02237EC4:
+ str r0, [r5, #0x6c]
+ b _02237ECA
+_02237EC8:
+ str r4, [r5, #0x6c]
+_02237ECA:
+ mov r1, #0x85
+ lsl r1, r1, #6
+ ldr r2, [r5, r1]
+ mov r0, #8
+ orr r0, r2
+ str r0, [r5, r1]
+ mov r0, #0
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02237EDC: .word 0x00002D8C
+_02237EE0: .word 0x00003044
+_02237EE4: .word 0x000003E6
+
+ thumb_func_start MOD11_02237EE8
+MOD11_02237EE8: ; 0x02237EE8
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r1, [r5, #0x64]
+ ldr r0, [r5, #0x6c]
+ lsl r4, r1, #6
+ add r2, r5, r4
+ lsl r1, r0, #2
+ add r2, r2, r1
+ mov r1, #0x76
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ beq _02237F1A
+ bl MaskOfFlagNo
+ mov r1, #0x7b
+ add r2, r5, r4
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ tst r0, r1
+ bne _02237F40
+_02237F1A:
+ ldr r0, [r5, #0x6c]
+ add r2, r5, r4
+ lsl r1, r0, #2
+ add r2, r2, r1
+ mov r1, #0x1f
+ lsl r1, r1, #4
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ beq _02237F48
+ bl MaskOfFlagNo
+ ldr r1, [r5, #0x64]
+ lsl r1, r1, #6
+ add r2, r5, r1
+ mov r1, #0x81
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ tst r0, r1
+ beq _02237F48
+_02237F40:
+ ldr r0, _02237F54 ; =0x00002158
+ mov r1, #0x14
+ str r1, [r5, r0]
+ b _02237F4E
+_02237F48:
+ ldr r0, _02237F54 ; =0x00002158
+ mov r1, #0xa
+ str r1, [r5, r0]
+_02237F4E:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02237F54: .word 0x00002158
+
+ thumb_func_start MOD11_02237F58
+MOD11_02237F58: ; 0x02237F58
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r1, [r4, #0x6c]
+ add r0, r5, #0
+ bl MOD11_02230270
+ lsl r1, r0, #2
+ add r2, r4, r1
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ ldr r2, [r2, r1]
+ mov r1, #1
+ tst r1, r2
+ bne _02237F8C
+ mov r1, #2
+ tst r1, r2
+ beq _02237FBC
+_02237F8C:
+ mov r5, #0x6f
+ lsl r5, r5, #2
+ add r2, r4, r5
+ lsl r1, r0, #2
+ ldr r6, [r2, r1]
+ mov r3, #1
+ bic r6, r3
+ str r6, [r2, r1]
+ ldr r6, [r2, r1]
+ mov r3, #2
+ bic r6, r3
+ add r5, #8
+ str r6, [r2, r1]
+ lsl r2, r0, #3
+ add r3, r4, r5
+ ldr r1, [r3, r2]
+ mov r0, #0x1c
+ bic r1, r0
+ str r1, [r3, r2]
+ ldr r1, [r3, r2]
+ ldr r0, _02237FC8 ; =0xFFFFFC7F
+ and r0, r1
+ str r0, [r3, r2]
+ b _02237FC4
+_02237FBC:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_02237FC4:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02237FC8: .word 0xFFFFFC7F
+
+ thumb_func_start MOD11_02237FCC
+MOD11_02237FCC: ; 0x02237FCC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r1, r0, #0
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ add r3, r4, r0
+ ldr r0, [r4, #0x6c]
+ mov r5, #0xc0
+ add r2, r0, #0
+ mul r2, r5
+ ldr r0, [r3, r2]
+ lsl r5, r5, #5
+ tst r5, r0
+ beq _02237FFE
+ add r0, r4, #0
+ bl MOD11_0223A424
+ b _02238006
+_02237FFE:
+ mov r1, #1
+ lsl r1, r1, #0xc
+ orr r0, r1
+ str r0, [r3, r2]
+_02238006:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223800C
+MOD11_0223800C: ; 0x0223800C
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r1, [r5, #0x6c]
+ add r0, r4, #0
+ bl MOD11_02230270
+ add r4, r0, #0
+ ldr r2, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r5, r0
+ ldr r0, _02238118 ; =0x00002DB8
+ ldrh r0, [r1, r0]
+ cmp r0, #0
+ beq _02238086
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ mov r3, #0x3c
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02238086
+ add r0, r5, #0
+ ldr r1, _0223811C ; =0x000002CA
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0x25
+ add r0, #0xf5
+ strb r1, [r0]
+ ldr r1, [r5, #0x6c]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ ldr r0, [r5, #0x6c]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, _02238120 ; =0x00002D67
+ add r2, r5, r2
+ ldrb r2, [r2, r0]
+ add r0, r5, #0
+ add r0, #0xfc
+ str r2, [r0]
+ ldr r0, _02238124 ; =0x00003044
+ add r1, #0x40
+ ldr r0, [r5, r0]
+ str r0, [r5, r1]
+ b _02238114
+_02238086:
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02238118 ; =0x00002DB8
+ ldrh r0, [r1, r0]
+ cmp r0, #0
+ beq _0223810C
+ mov r1, #0x8a
+ add r0, r5, #0
+ lsl r1, r1, #2
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0x21
+ add r0, #0xf5
+ strb r1, [r0]
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xf8
+ str r0, [r1]
+ ldr r1, [r5, #0x6c]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ add r1, r5, #0
+ add r1, #0xfc
+ str r0, [r1]
+ ldr r0, [r5, #0x6c]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ add r0, r5, r2
+ ldr r2, _02238118 ; =0x00002DB8
+ ldrh r3, [r0, r2]
+ add r0, r1, #0
+ add r0, #0x40
+ str r3, [r5, r0]
+ ldr r3, [r5, #0x6c]
+ mov r0, #0
+ mul r1, r3
+ add r1, r5, r1
+ strh r0, [r1, r2]
+ ldr r0, [r5, #0x6c]
+ add r1, r5, r0
+ ldr r0, _02238128 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ bl MaskOfFlagNo
+ mov r1, #0x71
+ lsl r1, r1, #2
+ add r3, r5, r1
+ lsl r2, r4, #3
+ ldr r4, [r3, r2]
+ ldr r1, _0223812C ; =0xE07FFFFF
+ and r1, r4
+ lsl r4, r4, #3
+ lsr r4, r4, #0x1a
+ orr r0, r4
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #3
+ orr r0, r1
+ str r0, [r3, r2]
+ b _02238114
+_0223810C:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_02238114:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02238118: .word 0x00002DB8
+_0223811C: .word 0x000002CA
+_02238120: .word 0x00002D67
+_02238124: .word 0x00003044
+_02238128: .word 0x0000219C
+_0223812C: .word 0xE07FFFFF
+
+ thumb_func_start MOD11_02238130
+MOD11_02238130: ; 0x02238130
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, _02238178 ; =0x00002154
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _02238174
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _0223817C ; =0x00003044
+ ldr r1, [r4, r1]
+ lsl r1, r1, #4
+ add r2, r4, r1
+ ldr r1, _02238180 ; =0x000003E1
+ ldrb r3, [r2, r1]
+ ldr r1, _02238184 ; =0x00002D8C
+ add r2, r4, r0
+ ldr r0, [r2, r1]
+ add r1, r1, #4
+ ldr r1, [r2, r1]
+ mul r0, r3
+ bl _u32_div_f
+ ldr r1, _02238178 ; =0x00002154
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ cmp r0, #0
+ bne _02238174
+ mov r0, #1
+ str r0, [r4, r1]
+_02238174:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_02238178: .word 0x00002154
+_0223817C: .word 0x00003044
+_02238180: .word 0x000003E1
+_02238184: .word 0x00002D8C
+
+ thumb_func_start MOD11_02238188
+MOD11_02238188: ; 0x02238188
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r7, r1, #0
+ str r0, [sp]
+ add r0, r7, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r7, #0
+ bl MOD11_0223A404
+ str r0, [sp, #0x14]
+ ldr r0, [sp]
+ ldr r1, [r7, #0x64]
+ mov r2, #0
+ bl MOD11_02230308
+ add r4, r0, #0
+ ldr r0, [sp]
+ ldr r1, [r7, #0x64]
+ mov r2, #2
+ bl MOD11_02230308
+ mov r6, #0xb7
+ add r3, r0, #0
+ lsl r6, r6, #6
+ add r1, r4, #0
+ mov r0, #0xc0
+ mov r4, #1
+ add r2, r7, r6
+ mul r1, r0
+ ldr r5, [r2, r1]
+ lsl r4, r4, #0x1e
+ orr r5, r4
+ str r5, [r2, r1]
+ add r1, r3, #0
+ mul r1, r0
+ ldr r3, [r2, r1]
+ orr r3, r4
+ str r3, [r2, r1]
+ ldr r1, [r7, #0x64]
+ mul r0, r1
+ add r0, r7, r0
+ ldr r2, [r0, r6]
+ lsr r0, r4, #0x11
+ tst r0, r2
+ beq _022381F0
+ ldr r1, [sp, #0x14]
+ add r0, r7, #0
+ bl MOD11_0223A424
+ b _02238294
+_022381F0:
+ ldr r0, [sp]
+ bl MOD11_02230270
+ str r0, [sp, #0x10]
+ ldr r0, [sp]
+ bl MOD11_0222FF84
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ ble _0223826A
+ str r7, [sp, #4]
+_0223820C:
+ ldr r0, [sp]
+ ldr r1, [sp, #0xc]
+ bl MOD11_02230270
+ ldr r1, [sp, #0x10]
+ cmp r1, r0
+ beq _02238258
+ mov r2, #0
+ ldr r0, _0223829C ; =0x00002D4C
+ add r4, r2, #0
+_02238220:
+ ldr r1, [r7, #0x64]
+ mov r6, #0xc0
+ mul r6, r1
+ add r1, r7, r6
+ add r6, r1, r4
+ ldr r1, _0223829C ; =0x00002D4C
+ ldr r5, [sp, #4]
+ ldrh r6, [r6, r1]
+ mov r3, #0
+_02238232:
+ ldrh r1, [r5, r0]
+ cmp r6, r1
+ bne _02238240
+ cmp r6, #0
+ beq _02238240
+ cmp r1, #0
+ bne _02238248
+_02238240:
+ add r3, r3, #1
+ add r5, r5, #2
+ cmp r3, #4
+ blt _02238232
+_02238248:
+ cmp r3, #4
+ bne _02238254
+ add r2, r2, #1
+ add r4, r4, #2
+ cmp r2, #4
+ blt _02238220
+_02238254:
+ cmp r3, #4
+ bne _0223826A
+_02238258:
+ ldr r0, [sp, #4]
+ add r0, #0xc0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0xc]
+ add r1, r0, #1
+ ldr r0, [sp, #8]
+ str r1, [sp, #0xc]
+ cmp r1, r0
+ blt _0223820C
+_0223826A:
+ ldr r1, [sp, #0xc]
+ ldr r0, [sp, #8]
+ cmp r1, r0
+ bne _0223827C
+ ldr r1, [sp, #0x14]
+ add r0, r7, #0
+ bl MOD11_0223A424
+ b _02238294
+_0223827C:
+ mov r0, #0xb7
+ ldr r1, [r7, #0x64]
+ lsl r0, r0, #6
+ add r3, r7, r0
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ mov r0, #2
+ ldr r1, [r3, r2]
+ lsl r0, r0, #0xc
+ orr r0, r1
+ str r0, [r3, r2]
+_02238294:
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223829C: .word 0x00002D4C
+
+ thumb_func_start MOD11_022382A0
+MOD11_022382A0: ; 0x022382A0
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ ldr r1, [r4, #0x6c]
+ add r0, r5, #0
+ bl MOD11_02230270
+ ldr r6, [r4, #0x74]
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r4, r0
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r1, [r1, r0]
+ mov r0, #1
+ lsl r0, r0, #0xe
+ tst r0, r1
+ beq _0223833C
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02230270
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02230270
+ cmp r7, r0
+ beq _0223833C
+ ldr r0, [r4, #0x64]
+ mov r2, #0xc0
+ add r1, r0, #0
+ mul r1, r2
+ ldr r3, _02238348 ; =0x00002D8C
+ add r0, r4, r1
+ ldr r0, [r0, r3]
+ cmp r0, #0
+ beq _0223833C
+ mov r1, #0xc1
+ lsl r1, r1, #6
+ ldr r6, [r4, r1]
+ cmp r6, #0xa5
+ beq _0223833C
+ add r0, r2, #0
+ add r0, #0x64
+ str r6, [r4, r0]
+ ldr r0, [r4, #0x64]
+ ldr r1, [r4, r1]
+ sub r3, #0x4c
+ lsl r1, r1, #0x10
+ add r3, r4, r3
+ mul r2, r0
+ add r0, r3, r2
+ lsr r1, r1, #0x10
+ bl MOD11_022461AC
+ ldr r3, [r4, #0x64]
+ mov r2, #0xc0
+ mul r2, r3
+ add r2, r4, r2
+ add r2, r2, r0
+ ldr r0, _0223834C ; =0x00002D6C
+ mov r1, #0
+ strb r1, [r2, r0]
+ ldr r2, [r4, #0x64]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02245190
+ b _02238344
+_0223833C:
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A424
+_02238344:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02238348: .word 0x00002D8C
+_0223834C: .word 0x00002D6C
+
+ thumb_func_start MOD11_02238350
+MOD11_02238350: ; 0x02238350
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r0, #0
+ str r1, [sp]
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, [sp]
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ mov r6, #0
+ add r0, r7, #0
+ add r4, r6, #0
+ bl MOD11_0222FF84
+ cmp r0, #0
+ ble _02238390
+ ldr r5, [sp]
+_02238378:
+ ldr r0, _022383C0 ; =0x00002D8C
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _02238382
+ add r6, r6, #1
+_02238382:
+ add r0, r7, #0
+ add r5, #0xc0
+ add r4, r4, #1
+ bl MOD11_0222FF84
+ cmp r4, r0
+ blt _02238378
+_02238390:
+ ldr r0, [sp]
+ add r0, #0xec
+ ldr r1, [r0]
+ sub r0, r6, #1
+ cmp r1, r0
+ bne _022383A6
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ bl MOD11_0223A424
+ b _022383BA
+_022383A6:
+ mov r1, #0x75
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ add r3, r0, r1
+ ldr r0, [r0, #0x64]
+ lsl r2, r0, #6
+ ldr r1, [r3, r2]
+ mov r0, #0x20
+ orr r0, r1
+ str r0, [r3, r2]
+_022383BA:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022383C0: .word 0x00002D8C
+
+ thumb_func_start MOD11_022383C4
+MOD11_022383C4: ; 0x022383C4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _02238410 ; =0x00002D60
+ ldr r5, _02238414 ; =0x0225DCA8
+ ldr r3, [r2, r1]
+ ldr r1, _02238418 ; =0x0000FFFF
+ mov r0, #0
+_022383E2:
+ ldrh r2, [r5]
+ cmp r2, r3
+ bge _022383F2
+ add r5, r5, #4
+ ldrh r2, [r5]
+ add r0, r0, #1
+ cmp r2, r1
+ bne _022383E2
+_022383F2:
+ lsl r2, r0, #2
+ ldr r0, _02238414 ; =0x0225DCA8
+ ldrh r1, [r0, r2]
+ ldr r0, _02238418 ; =0x0000FFFF
+ cmp r1, r0
+ beq _02238404
+ ldr r0, _0223841C ; =0x0225DCAA
+ ldrh r1, [r0, r2]
+ b _02238406
+_02238404:
+ mov r1, #0x78
+_02238406:
+ ldr r0, _02238420 ; =0x00002154
+ str r1, [r4, r0]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02238410: .word 0x00002D60
+_02238414: .word 0x0225DCA8
+_02238418: .word 0x0000FFFF
+_0223841C: .word 0x0225DCAA
+_02238420: .word 0x00002154
+
+ thumb_func_start MOD11_02238424
+MOD11_02238424: ; 0x02238424
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ mov r0, #0xd
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _022384CC
+ mov r0, #0x4c
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _022384CC
+ mov r1, #6
+ lsl r1, r1, #6
+ ldr r2, [r4, r1]
+ ldr r0, _022384D0 ; =0x000080FF
+ tst r0, r2
+ ldr r0, _022384D4 ; =0x00003044
+ beq _022384BE
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r2, r4, r0
+ ldr r0, _022384D8 ; =0x000003E1
+ ldrb r0, [r2, r0]
+ lsl r2, r0, #1
+ ldr r0, _022384DC ; =0x00002154
+ str r2, [r4, r0]
+ ldr r2, [r4, r1]
+ mov r1, #3
+ tst r1, r2
+ beq _02238486
+ mov r1, #0xb
+ add r0, #0xc
+ str r1, [r4, r0]
+_02238486:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0xc
+ tst r0, r1
+ beq _02238498
+ ldr r0, _022384E0 ; =0x00002160
+ mov r1, #5
+ str r1, [r4, r0]
+_02238498:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0x30
+ tst r0, r1
+ beq _022384AA
+ ldr r0, _022384E0 ; =0x00002160
+ mov r1, #0xa
+ str r1, [r4, r0]
+_022384AA:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0xc0
+ tst r0, r1
+ beq _022384CC
+ ldr r0, _022384E0 ; =0x00002160
+ mov r1, #0xf
+ str r1, [r4, r0]
+ b _022384CC
+_022384BE:
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _022384D8 ; =0x000003E1
+ ldrb r1, [r1, r0]
+ ldr r0, _022384DC ; =0x00002154
+ str r1, [r4, r0]
+_022384CC:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022384D0: .word 0x000080FF
+_022384D4: .word 0x00003044
+_022384D8: .word 0x000003E1
+_022384DC: .word 0x00002154
+_022384E0: .word 0x00002160
+
+ thumb_func_start MOD11_022384E4
+MOD11_022384E4: ; 0x022384E4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r6, r1, #0
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ str r0, [sp, #0x10]
+ ldr r0, [sp]
+ bl MOD11_0222FF84
+ mov r7, #0
+ str r0, [sp, #0xc]
+ cmp r0, #0
+ bgt _0223850C
+ b _02238612
+_0223850C:
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ add r0, r6, r0
+ str r6, [sp, #8]
+ add r5, r6, #0
+ str r0, [sp, #4]
+_02238518:
+ ldr r1, [sp, #8]
+ ldr r0, _02238654 ; =0x000021A8
+ ldr r0, [r1, r0]
+ cmp r0, #0x27
+ beq _022385FC
+ ldr r0, _02238658 ; =0x00002D8C
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _022385FC
+ ldr r0, _0223865C ; =0x00002DAC
+ ldr r1, [r5, r0]
+ mov r0, #0x27
+ tst r0, r1
+ bne _022385FC
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD11_02247190
+ cmp r0, #0
+ bne _022385FC
+ ldr r0, [sp]
+ add r1, r7, #0
+ bl MOD11_02230270
+ str r0, [sp, #0x14]
+ ldr r0, [sp]
+ ldr r1, [r6, #0x78]
+ bl MOD11_02230270
+ ldr r1, [sp, #0x14]
+ cmp r1, r0
+ beq _022385FC
+ ldr r0, _02238660 ; =0x00002DEC
+ ldrh r4, [r5, r0]
+ cmp r4, #0
+ beq _02238570
+ add r0, r0, #2
+ ldrh r0, [r5, r0]
+ lsl r0, r0, #1
+ add r1, r5, r0
+ ldr r0, _02238664 ; =0x00002D4C
+ ldrh r0, [r1, r0]
+ cmp r4, r0
+ beq _0223857A
+_02238570:
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD11_0224683C
+ add r4, r0, #0
+_0223857A:
+ cmp r4, #0
+ beq _022385FC
+ lsl r1, r4, #0x10
+ ldr r0, [sp, #4]
+ lsr r1, r1, #0x10
+ bl MOD11_022461AC
+ str r0, [sp, #0x18]
+ lsl r0, r4, #4
+ add r1, r6, r0
+ ldr r0, _02238668 ; =0x000003DE
+ ldrh r0, [r1, r0]
+ cmp r0, #0x80
+ bne _022385FC
+ ldr r0, [sp, #0x18]
+ add r1, r5, r0
+ ldr r0, _0223866C ; =0x00002D6C
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ beq _022385FC
+ ldr r0, _0223866C ; =0x00002D6C
+ add r1, r6, r0
+ mov r0, #0xc0
+ mul r0, r7
+ add r5, r1, r0
+ ldr r0, [sp, #0x18]
+ ldrb r0, [r5, r0]
+ sub r1, r0, #1
+ ldr r0, [sp, #0x18]
+ strb r1, [r5, r0]
+ ldr r1, [r6, #0x78]
+ add r0, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x2e
+ bne _022385D0
+ ldr r0, [sp, #0x18]
+ ldrb r0, [r5, r0]
+ cmp r0, #0
+ beq _022385D0
+ sub r1, r0, #1
+ ldr r0, [sp, #0x18]
+ strb r1, [r5, r0]
+_022385D0:
+ ldr r0, [sp]
+ add r1, r6, #0
+ bl MOD11_02247264
+ str r7, [r6, #0x64]
+ ldr r0, [r6, #0x78]
+ lsl r2, r7, #1
+ str r0, [r6, #0x6c]
+ ldr r1, _02238670 ; =0x00002158
+ mov r0, #0x14
+ str r0, [r6, r1]
+ ldr r0, _02238674 ; =0x00003044
+ add r2, r6, r2
+ str r4, [r6, r0]
+ add r0, #0x38
+ strh r4, [r2, r0]
+ lsl r0, r7, #4
+ mov r2, #0x27
+ add r0, r6, r0
+ add r1, #0x50
+ str r2, [r0, r1]
+ b _02238612
+_022385FC:
+ ldr r0, [sp, #8]
+ add r7, r7, #1
+ add r0, #0x10
+ str r0, [sp, #8]
+ ldr r0, [sp, #4]
+ add r5, #0xc0
+ add r0, #0xc0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0xc]
+ cmp r7, r0
+ blt _02238518
+_02238612:
+ ldr r0, [sp, #0xc]
+ cmp r7, r0
+ bne _02238622
+ ldr r1, [sp, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223A424
+ b _0223864E
+_02238622:
+ ldr r1, [r6, #0x64]
+ add r0, r6, #0
+ bl MOD11_02249D90
+ add r5, r0, #0
+ ldr r1, [r6, #0x64]
+ add r0, r6, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ cmp r5, #0x36
+ beq _02238642
+ cmp r5, #0x72
+ beq _02238642
+ cmp r5, #0x7c
+ bne _0223864E
+_02238642:
+ ldr r1, [r6, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r6, r0
+ ldr r0, _02238678 ; =0x00002DF8
+ strh r4, [r1, r0]
+_0223864E:
+ mov r0, #0
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02238654: .word 0x000021A8
+_02238658: .word 0x00002D8C
+_0223865C: .word 0x00002DAC
+_02238660: .word 0x00002DEC
+_02238664: .word 0x00002D4C
+_02238668: .word 0x000003DE
+_0223866C: .word 0x00002D6C
+_02238670: .word 0x00002158
+_02238674: .word 0x00003044
+_02238678: .word 0x00002DF8
+
+ thumb_func_start MOD11_0223867C
+MOD11_0223867C: ; 0x0223867C
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, [r4, #0x64]
+ ldr r3, _022386BC ; =0x00002144
+ str r0, [sp]
+ ldr r0, [r4, #0x6c]
+ ldr r2, _022386C0 ; =0x00003044
+ str r0, [sp, #4]
+ ldr r0, [r4, r3]
+ add r1, r4, #0
+ str r0, [sp, #8]
+ add r0, r3, #0
+ add r0, #0x28
+ add r0, r4, r0
+ str r0, [sp, #0xc]
+ add r3, #0x1c
+ ldr r2, [r4, r2]
+ ldr r3, [r4, r3]
+ add r0, r5, #0
+ bl MOD11_02246274
+ ldr r1, _022386BC ; =0x00002144
+ str r0, [r4, r1]
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022386BC: .word 0x00002144
+_022386C0: .word 0x00003044
+
+ thumb_func_start MOD11_022386C4
+MOD11_022386C4: ; 0x022386C4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #1
+ mov r6, #0
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp, #8]
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ ldr r2, [sp, #8]
+ add r1, r4, #0
+ bl MOD11_0223C230
+ cmp r7, #6
+ bhi _022387B6
+ add r1, r7, r7
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02238710: ; jump table
+ .short _0223871E - _02238710 - 2 ; case 0
+ .short _02238734 - _02238710 - 2 ; case 1
+ .short _0223874A - _02238710 - 2 ; case 2
+ .short _02238760 - _02238710 - 2 ; case 3
+ .short _02238776 - _02238710 - 2 ; case 4
+ .short _0223878C - _02238710 - 2 ; case 5
+ .short _022387A2 - _02238710 - 2 ; case 6
+_0223871E:
+ lsl r0, r0, #6
+ add r1, r4, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ cmp r5, r0
+ bne _022387B6
+ mov r6, #1
+ b _022387B6
+_02238734:
+ lsl r0, r0, #6
+ add r1, r4, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ cmp r5, r0
+ bne _022387B6
+ mov r6, #1
+ b _022387B6
+_0223874A:
+ lsl r0, r0, #6
+ add r1, r4, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ cmp r5, r0
+ bne _022387B6
+ mov r6, #1
+ b _022387B6
+_02238760:
+ lsl r0, r0, #6
+ add r1, r4, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ cmp r5, r0
+ bne _022387B6
+ mov r6, #1
+ b _022387B6
+_02238776:
+ lsl r0, r0, #6
+ add r1, r4, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1f
+ cmp r5, r0
+ bne _022387B6
+ mov r6, #1
+ b _022387B6
+_0223878C:
+ lsl r0, r0, #6
+ add r1, r4, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1f
+ cmp r5, r0
+ bne _022387B6
+ mov r6, #1
+ b _022387B6
+_022387A2:
+ lsl r0, r0, #6
+ add r1, r4, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x1f
+ cmp r5, r0
+ bne _022387B6
+ mov r6, #1
+_022387B6:
+ cmp r6, #0
+ beq _022387C2
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_0223A424
+_022387C2:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_022387C8
+MOD11_022387C8: ; 0x022387C8
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r7, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r5, r0, #0
+ ldr r2, [sp]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ cmp r6, #6
+ bhi _022388BC
+ add r1, r6, r6
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02238808: ; jump table
+ .short _02238816 - _02238808 - 2 ; case 0
+ .short _0223882E - _02238808 - 2 ; case 1
+ .short _02238846 - _02238808 - 2 ; case 2
+ .short _0223885E - _02238808 - 2 ; case 3
+ .short _02238876 - _02238808 - 2 ; case 4
+ .short _0223888E - _02238808 - 2 ; case 5
+ .short _022388A6 - _02238808 - 2 ; case 6
+_02238816:
+ mov r1, #0x75
+ lsl r1, r1, #2
+ lsl r3, r0, #6
+ add r1, r4, r1
+ ldr r2, [r1, r3]
+ mov r0, #1
+ bic r2, r0
+ mov r0, #1
+ and r0, r5
+ orr r0, r2
+ str r0, [r1, r3]
+ b _022388BC
+_0223882E:
+ mov r1, #0x75
+ lsl r1, r1, #2
+ lsl r3, r0, #6
+ add r1, r4, r1
+ ldr r2, [r1, r3]
+ mov r0, #2
+ bic r2, r0
+ lsl r0, r5, #0x1f
+ lsr r0, r0, #0x1e
+ orr r0, r2
+ str r0, [r1, r3]
+ b _022388BC
+_02238846:
+ mov r1, #0x75
+ lsl r1, r1, #2
+ lsl r3, r0, #6
+ add r1, r4, r1
+ ldr r2, [r1, r3]
+ mov r0, #4
+ bic r2, r0
+ lsl r0, r5, #0x1f
+ lsr r0, r0, #0x1d
+ orr r0, r2
+ str r0, [r1, r3]
+ b _022388BC
+_0223885E:
+ mov r1, #0x75
+ lsl r1, r1, #2
+ lsl r3, r0, #6
+ add r1, r4, r1
+ ldr r2, [r1, r3]
+ mov r0, #8
+ bic r2, r0
+ lsl r0, r5, #0x1f
+ lsr r0, r0, #0x1c
+ orr r0, r2
+ str r0, [r1, r3]
+ b _022388BC
+_02238876:
+ mov r1, #0x75
+ lsl r1, r1, #2
+ lsl r3, r0, #6
+ add r1, r4, r1
+ ldr r2, [r1, r3]
+ mov r0, #0x10
+ bic r2, r0
+ lsl r0, r5, #0x1f
+ lsr r0, r0, #0x1b
+ orr r0, r2
+ str r0, [r1, r3]
+ b _022388BC
+_0223888E:
+ mov r1, #0x75
+ lsl r1, r1, #2
+ lsl r3, r0, #6
+ add r1, r4, r1
+ ldr r2, [r1, r3]
+ mov r0, #0x20
+ bic r2, r0
+ lsl r0, r5, #0x1f
+ lsr r0, r0, #0x1a
+ orr r0, r2
+ str r0, [r1, r3]
+ b _022388BC
+_022388A6:
+ mov r1, #0x75
+ lsl r1, r1, #2
+ lsl r3, r0, #6
+ add r1, r4, r1
+ ldr r2, [r1, r3]
+ mov r0, #0x40
+ bic r2, r0
+ lsl r0, r5, #0x1f
+ lsr r0, r0, #0x19
+ orr r0, r2
+ str r0, [r1, r3]
+_022388BC:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_022388C0
+MOD11_022388C0: ; 0x022388C0
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, [r4, #0x6c]
+ ldr r1, _022388FC ; =0x000021F0
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r2, [r0, r1]
+ mov r0, #0x19
+ mul r0, r2
+ ldr r2, [r4, #0x64]
+ lsl r2, r2, #2
+ add r2, r4, r2
+ ldr r1, [r2, r1]
+ bl _u32_div_f
+ add r1, r0, #1
+ ldr r0, _02238900 ; =0x00002154
+ str r1, [r4, r0]
+ ldr r1, [r4, r0]
+ cmp r1, #0x96
+ ble _022388F6
+ mov r1, #0x96
+ str r1, [r4, r0]
+_022388F6:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_022388FC: .word 0x000021F0
+_02238900: .word 0x00002154
+
+ thumb_func_start MOD11_02238904
+MOD11_02238904: ; 0x02238904
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ ldr r1, [r5, #0x64]
+ add r0, r6, #0
+ bl MOD11_02230270
+ ldr r1, [r5, #0x64]
+ add r7, r0, #0
+ lsl r1, r1, #6
+ add r2, r5, r1
+ mov r1, #0x83
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ add r0, r6, #0
+ bl MOD11_02230270
+ add r4, r0, #0
+ ldr r0, [r5, #0x64]
+ mov r2, #0x82
+ lsl r0, r0, #6
+ add r0, r5, r0
+ lsl r2, r2, #2
+ ldr r1, [r0, r2]
+ cmp r1, #0
+ beq _022389E4
+ cmp r7, r4
+ beq _022389E4
+ add r2, r2, #4
+ ldr r2, [r0, r2]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r5, r0
+ ldr r0, _022389F0 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _022389E4
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ bl _s32_div_f
+ ldr r1, _022389F4 ; =0x00002144
+ str r0, [r5, r1]
+ mov r0, #0x71
+ lsl r0, r0, #2
+ add r1, r5, r0
+ lsl r0, r4, #3
+ ldr r0, [r1, r0]
+ lsl r1, r0, #0xb
+ lsr r1, r1, #0x1f
+ beq _02238992
+ lsl r0, r0, #9
+ lsr r0, r0, #0x1e
+ mov r1, #0xc0
+ mul r1, r0
+ add r2, r5, r1
+ ldr r1, _022389F0 ; =0x00002D8C
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ beq _02238992
+ str r0, [r5, #0x6c]
+ b _022389A0
+_02238992:
+ ldr r0, [r5, #0x64]
+ lsl r0, r0, #6
+ add r1, r5, r0
+ mov r0, #0x83
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ str r0, [r5, #0x6c]
+_022389A0:
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _022389F0 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _022389D8
+ ldr r2, [r5, #0x64]
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_022482A4
+ mov r1, #0xc0
+ mul r1, r0
+ str r0, [r5, #0x6c]
+ ldr r0, _022389F0 ; =0x00002D8C
+ add r1, r5, r1
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _022389D8
+ mov r2, #0x26
+ str r2, [r5, #0xc]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, #0xf3
+ bl MOD11_0223A434
+_022389D8:
+ ldr r1, [r5, #0x64]
+ ldr r2, [r5, #0x6c]
+ add r0, r5, #0
+ bl MOD11_0224C438
+ b _022389EC
+_022389E4:
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD11_0223A424
+_022389EC:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022389F0: .word 0x00002D8C
+_022389F4: .word 0x00002144
+
+ thumb_func_start MOD11_022389F8
+MOD11_022389F8: ; 0x022389F8
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r0, [r4, #0x6c]
+ ldr r1, _02238A34 ; =0x000021A8
+ lsl r0, r0, #4
+ add r0, r4, r0
+ ldr r0, [r0, r1]
+ cmp r0, #0x27
+ ldr r0, _02238A38 ; =0x00003044
+ bne _02238A22
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r2, r4, r0
+ ldr r0, _02238A3C ; =0x000003E1
+ ldrb r0, [r2, r0]
+ lsl r0, r0, #1
+ b _02238A2C
+_02238A22:
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r2, r4, r0
+ ldr r0, _02238A3C ; =0x000003E1
+ ldrb r0, [r2, r0]
+_02238A2C:
+ sub r1, #0x54
+ str r0, [r4, r1]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_02238A34: .word 0x000021A8
+_02238A38: .word 0x00003044
+_02238A3C: .word 0x000003E1
+
+ thumb_func_start MOD11_02238A40
+MOD11_02238A40: ; 0x02238A40
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ lsl r0, r1, #1
+ add r1, r4, r0
+ ldr r0, _02238A74 ; =0x000030BC
+ ldrh r0, [r1, r0]
+ add r1, r2, r0
+ ldr r0, _02238A78 ; =0x00002D6C
+ ldrb r1, [r1, r0]
+ cmp r1, #4
+ bls _02238A68
+ mov r1, #4
+_02238A68:
+ ldr r0, _02238A7C ; =0x0225DC2C
+ ldrb r1, [r0, r1]
+ ldr r0, _02238A80 ; =0x00002154
+ str r1, [r4, r0]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_02238A74: .word 0x000030BC
+_02238A78: .word 0x00002D6C
+_02238A7C: .word 0x0225DC2C
+_02238A80: .word 0x00002154
+
+ thumb_func_start MOD11_02238A84
+MOD11_02238A84: ; 0x02238A84
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r3, r4, r0
+ ldr r1, _02238AB4 ; =0x00002D8C
+ mov r0, #0x78
+ ldr r2, [r3, r1]
+ add r1, r1, #4
+ ldr r1, [r3, r1]
+ mul r0, r2
+ bl _u32_div_f
+ add r1, r0, #1
+ ldr r0, _02238AB8 ; =0x00002154
+ str r1, [r4, r0]
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_02238AB4: .word 0x00002D8C
+_02238AB8: .word 0x00002154
+
+ thumb_func_start MOD11_02238ABC
+MOD11_02238ABC: ; 0x02238ABC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r3, _02238B68 ; =0x00002DEC
+ add r0, r5, r0
+ ldrh r4, [r0, r3]
+ cmp r4, #0
+ beq _02238AF0
+ add r2, r3, #2
+ ldrh r2, [r0, r2]
+ sub r3, #0xa0
+ lsl r2, r2, #1
+ add r0, r0, r2
+ ldrh r0, [r0, r3]
+ cmp r4, r0
+ beq _02238AF8
+_02238AF0:
+ add r0, r5, #0
+ bl MOD11_0224683C
+ add r4, r0, #0
+_02238AF8:
+ ldr r0, [r5, #0x6c]
+ lsl r1, r0, #4
+ add r2, r5, r1
+ ldr r1, _02238B6C ; =0x000021A8
+ ldr r1, [r2, r1]
+ cmp r1, #0x27
+ beq _02238B5C
+ lsl r0, r0, #6
+ add r1, r5, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ bne _02238B5C
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224C0F0
+ cmp r0, #1
+ bne _02238B5C
+ lsl r0, r4, #4
+ add r1, r5, r0
+ ldr r0, _02238B70 ; =0x000003E1
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ beq _02238B5C
+ ldr r2, [r5, #0x64]
+ ldr r3, _02238B74 ; =0x00002DCC
+ add r0, r2, #0
+ mov r6, #0xc0
+ add r1, r5, r3
+ mul r0, r6
+ mov r2, #1
+ ldr r7, [r1, r0]
+ lsl r2, r2, #0x1e
+ orr r2, r7
+ str r2, [r1, r0]
+ add r0, r6, #0
+ add r0, #0xb4
+ ldr r2, [r5, r0]
+ ldr r0, [r5, #0x64]
+ add r3, #0x10
+ add r1, r0, #0
+ mul r1, r6
+ add r0, r5, r1
+ str r2, [r0, r3]
+ add r6, #0x64
+ str r4, [r5, r6]
+ b _02238B64
+_02238B5C:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_02238B64:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02238B68: .word 0x00002DEC
+_02238B6C: .word 0x000021A8
+_02238B70: .word 0x000003E1
+_02238B74: .word 0x00002DCC
+
+ thumb_func_start MOD11_02238B78
+MOD11_02238B78: ; 0x02238B78
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ ldr r0, _02238BC8 ; =0x00003048
+ ldr r0, [r5, r0]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl MOD11_02246BE8
+ cmp r0, #0
+ bne _02238BBC
+ ldr r0, _02238BC8 ; =0x00003048
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _02238BBC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl MOD11_0224C07C
+ cmp r0, #1
+ bne _02238BBC
+ ldr r0, _02238BC8 ; =0x00003048
+ ldr r1, [r5, r0]
+ mov r0, #0x49
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ b _02238BC4
+_02238BBC:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223A424
+_02238BC4:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02238BC8: .word 0x00003048
+
+ thumb_func_start MOD11_02238BCC
+MOD11_02238BCC: ; 0x02238BCC
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ ldr r5, _02238C1C ; =0x00002D58
+ mov r1, #0
+ ldr r3, [r4, #0x6c]
+ mov r2, #0xc0
+ mul r2, r3
+ add r3, r4, r2
+ add r0, r1, #0
+ add r2, r3, #0
+ add r6, r5, #0
+_02238BEA:
+ ldrsb r7, [r2, r6]
+ cmp r7, #6
+ ble _02238BF8
+ add r7, r3, r0
+ ldrsb r7, [r7, r5]
+ sub r7, r7, #6
+ add r1, r1, r7
+_02238BF8:
+ add r0, r0, #1
+ add r2, r2, #1
+ cmp r0, #8
+ blt _02238BEA
+ mov r0, #0x14
+ add r2, r1, #0
+ mul r2, r0
+ ldr r0, _02238C20 ; =0x00002154
+ add r2, #0x3c
+ str r2, [r4, r0]
+ ldr r1, [r4, r0]
+ cmp r1, #0xc8
+ ble _02238C16
+ mov r1, #0xc8
+ str r1, [r4, r0]
+_02238C16:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02238C1C: .word 0x00002D58
+_02238C20: .word 0x00002154
+
+ thumb_func_start MOD11_02238C24
+MOD11_02238C24: ; 0x02238C24
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r6, _02238C94 ; =0x00002DEC
+ add r2, r5, r0
+ ldrh r0, [r2, r6]
+ cmp r0, #0
+ beq _02238C58
+ add r3, r6, #2
+ ldrh r3, [r2, r3]
+ sub r6, #0xa0
+ lsl r3, r3, #1
+ add r2, r2, r3
+ ldrh r2, [r2, r6]
+ cmp r0, r2
+ beq _02238C5E
+_02238C58:
+ add r0, r5, #0
+ bl MOD11_0224683C
+_02238C5E:
+ ldr r1, [r5, #0x6c]
+ lsl r2, r1, #4
+ add r3, r5, r2
+ ldr r2, _02238C98 ; =0x000021A8
+ ldr r2, [r3, r2]
+ cmp r2, #0x27
+ beq _02238C88
+ lsl r0, r0, #4
+ add r2, r5, r0
+ ldr r0, _02238C9C ; =0x000003E1
+ ldrb r0, [r2, r0]
+ cmp r0, #0
+ bne _02238C90
+ lsl r0, r1, #6
+ add r1, r5, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ bne _02238C90
+_02238C88:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223A424
+_02238C90:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02238C94: .word 0x00002DEC
+_02238C98: .word 0x000021A8
+_02238C9C: .word 0x000003E1
+
+ thumb_func_start MOD11_02238CA0
+MOD11_02238CA0: ; 0x02238CA0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r7, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp, #8]
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ ldr r2, [sp, #8]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r7, #0
+ bl MOD11_02230270
+ ldr r1, [sp, #4]
+ cmp r1, #0
+ beq _02238CF2
+ cmp r1, #1
+ beq _02238CF2
+ cmp r1, #2
+ beq _02238D70
+ b _02238E4A
+_02238CF2:
+ cmp r6, #5
+ bls _02238CF8
+ b _02238E4A
+_02238CF8:
+ add r1, r6, r6
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02238D04: ; jump table
+ .short _02238D10 - _02238D04 - 2 ; case 0
+ .short _02238D20 - _02238D04 - 2 ; case 1
+ .short _02238D30 - _02238D04 - 2 ; case 2
+ .short _02238D40 - _02238D04 - 2 ; case 3
+ .short _02238D50 - _02238D04 - 2 ; case 4
+ .short _02238D60 - _02238D04 - 2 ; case 5
+_02238D10:
+ lsl r0, r0, #3
+ add r1, r4, r0
+ mov r0, #0x71
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1b
+ lsr r5, r0, #0x1d
+ b _02238E4A
+_02238D20:
+ lsl r0, r0, #3
+ add r1, r4, r0
+ mov r0, #0x71
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x16
+ lsr r5, r0, #0x1d
+ b _02238E4A
+_02238D30:
+ lsl r0, r0, #3
+ add r1, r4, r0
+ mov r0, #0x71
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x11
+ lsr r5, r0, #0x1d
+ b _02238E4A
+_02238D40:
+ lsl r0, r0, #3
+ add r1, r4, r0
+ mov r0, #0x71
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0xc
+ lsr r5, r0, #0x1d
+ b _02238E4A
+_02238D50:
+ lsl r0, r0, #3
+ add r1, r4, r0
+ mov r0, #0x72
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1e
+ lsr r5, r0, #0x1e
+ b _02238E4A
+_02238D60:
+ lsl r0, r0, #3
+ add r1, r4, r0
+ mov r0, #0x72
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1c
+ lsr r5, r0, #0x1e
+ b _02238E4A
+_02238D70:
+ cmp r6, #5
+ bhi _02238E4A
+ add r1, r6, r6
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02238D80: ; jump table
+ .short _02238D8C - _02238D80 - 2 ; case 0
+ .short _02238DAC - _02238D80 - 2 ; case 1
+ .short _02238DCC - _02238D80 - 2 ; case 2
+ .short _02238DEC - _02238D80 - 2 ; case 3
+ .short _02238E0C - _02238D80 - 2 ; case 4
+ .short _02238E2C - _02238D80 - 2 ; case 5
+_02238D8C:
+ mov r2, #0x71
+ lsl r2, r2, #2
+ add r6, r4, r2
+ lsl r3, r0, #3
+ ldr r7, [r6, r3]
+ mov r1, #0x1c
+ bic r7, r1
+ sub r2, #8
+ str r7, [r6, r3]
+ add r3, r4, r2
+ lsl r2, r0, #2
+ ldr r1, [r3, r2]
+ mov r0, #1
+ bic r1, r0
+ str r1, [r3, r2]
+ b _02238E4A
+_02238DAC:
+ mov r2, #0x71
+ lsl r2, r2, #2
+ add r6, r4, r2
+ lsl r7, r0, #3
+ ldr r3, [r6, r7]
+ ldr r1, _02238E74 ; =0xFFFFFC7F
+ sub r2, #8
+ and r1, r3
+ add r3, r4, r2
+ lsl r2, r0, #2
+ str r1, [r6, r7]
+ ldr r1, [r3, r2]
+ mov r0, #2
+ bic r1, r0
+ str r1, [r3, r2]
+ b _02238E4A
+_02238DCC:
+ mov r2, #0x71
+ lsl r2, r2, #2
+ add r6, r4, r2
+ lsl r7, r0, #3
+ ldr r3, [r6, r7]
+ ldr r1, _02238E78 ; =0xFFFF8FFF
+ sub r2, #8
+ and r1, r3
+ add r3, r4, r2
+ lsl r2, r0, #2
+ str r1, [r6, r7]
+ ldr r1, [r3, r2]
+ mov r0, #0x40
+ bic r1, r0
+ str r1, [r3, r2]
+ b _02238E4A
+_02238DEC:
+ mov r2, #0x71
+ lsl r2, r2, #2
+ add r6, r4, r2
+ lsl r7, r0, #3
+ ldr r3, [r6, r7]
+ ldr r1, _02238E7C ; =0xFFF1FFFF
+ sub r2, #8
+ and r1, r3
+ add r3, r4, r2
+ lsl r2, r0, #2
+ str r1, [r6, r7]
+ ldr r1, [r3, r2]
+ mov r0, #8
+ bic r1, r0
+ str r1, [r3, r2]
+ b _02238E4A
+_02238E0C:
+ mov r2, #0x72
+ lsl r2, r2, #2
+ add r6, r4, r2
+ lsl r3, r0, #3
+ ldr r7, [r6, r3]
+ mov r1, #3
+ bic r7, r1
+ sub r2, #0xc
+ str r7, [r6, r3]
+ add r3, r4, r2
+ lsl r2, r0, #2
+ ldr r1, [r3, r2]
+ mov r0, #4
+ bic r1, r0
+ str r1, [r3, r2]
+ b _02238E4A
+_02238E2C:
+ mov r2, #0x72
+ lsl r2, r2, #2
+ add r6, r4, r2
+ lsl r3, r0, #3
+ ldr r7, [r6, r3]
+ mov r1, #0xc
+ bic r7, r1
+ sub r2, #0xc
+ str r7, [r6, r3]
+ lsl r3, r0, #2
+ add r1, r4, r2
+ ldr r2, [r1, r3]
+ ldr r0, _02238E80 ; =0xFFFFFBFF
+ and r0, r2
+ str r0, [r1, r3]
+_02238E4A:
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ bne _02238E5C
+ cmp r5, #0
+ bne _02238E5C
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A424
+_02238E5C:
+ ldr r0, [sp, #4]
+ cmp r0, #1
+ bne _02238E6E
+ cmp r5, #0
+ beq _02238E6E
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A424
+_02238E6E:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02238E74: .word 0xFFFFFC7F
+_02238E78: .word 0xFFFF8FFF
+_02238E7C: .word 0xFFF1FFFF
+_02238E80: .word 0xFFFFFBFF
+
+ thumb_func_start MOD11_02238E84
+MOD11_02238E84: ; 0x02238E84
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r1, r0, #0
+ ldr r0, [r4, #0x6c]
+ lsl r0, r0, #6
+ add r2, r4, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r2, r0]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ bne _02238EB0
+ add r0, r4, #0
+ bl MOD11_0223A424
+_02238EB0:
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02238EB4
+MOD11_02238EB4: ; 0x02238EB4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r1, r0, #0
+ ldr r0, [r4, #0x6c]
+ mov r2, #0xc0
+ add r3, r0, #0
+ mul r3, r2
+ add r5, r4, r3
+ ldr r3, _02238EFC ; =0x00002DAC
+ ldr r0, [r5, r3]
+ cmp r0, #0
+ bne _02238EF2
+ add r0, r3, #4
+ ldr r5, [r5, r0]
+ mov r0, #1
+ lsl r0, r0, #0x18
+ tst r0, r5
+ bne _02238EF2
+ ldr r0, [r4, #0x64]
+ mul r2, r0
+ add r0, r4, r2
+ ldr r0, [r0, r3]
+ cmp r0, #0
+ bne _02238EF8
+_02238EF2:
+ add r0, r4, #0
+ bl MOD11_0223A424
+_02238EF8:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02238EFC: .word 0x00002DAC
+
+ thumb_func_start MOD11_02238F00
+MOD11_02238F00: ; 0x02238F00
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r2, [r4, #0x64]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022473F8
+ ldr r2, [r4, #0x64]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _02238F48 ; =0x00002DCC
+ ldr r1, [r2, r1]
+ lsl r1, r1, #0x13
+ lsr r2, r1, #0x1d
+ sub r1, r0, #1
+ cmp r2, r1
+ blo _02238F3A
+ cmp r0, #2
+ bge _02238F42
+_02238F3A:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_02238F42:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02238F48: .word 0x00002DCC
+
+ thumb_func_start MOD11_02238F4C
+MOD11_02238F4C: ; 0x02238F4C
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02230270
+ mov r2, #0x72
+ mov r1, #1
+ add r3, r0, #0
+ eor r3, r1
+ lsl r0, r3, #3
+ add r5, r4, r0
+ lsl r2, r2, #2
+ ldr r5, [r5, r2]
+ lsl r5, r5, #0x1c
+ lsr r5, r5, #0x1e
+ cmp r5, #2
+ bne _02238FA2
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r2, r4, r0
+ ldr r3, [r4, #0x64]
+ mov r0, #0x1c
+ mul r0, r3
+ ldr r5, [r2, r0]
+ mov r3, #1
+ bic r5, r3
+ orr r1, r5
+ str r1, [r2, r0]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ b _02238FCA
+_02238FA2:
+ add r5, r2, #0
+ sub r5, #0xc
+ add r5, r4, r5
+ lsl r3, r3, #2
+ ldr r6, [r5, r3]
+ lsl r1, r1, #0xa
+ orr r1, r6
+ str r1, [r5, r3]
+ add r2, r4, r2
+ ldr r4, [r2, r0]
+ mov r3, #0xc
+ add r1, r4, #0
+ bic r1, r3
+ lsl r3, r4, #0x1c
+ lsr r3, r3, #0x1e
+ add r3, r3, #1
+ lsl r3, r3, #0x1e
+ lsr r3, r3, #0x1c
+ orr r1, r3
+ str r1, [r2, r0]
+_02238FCA:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02238FD0
+MOD11_02238FD0: ; 0x02238FD0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r1, r5, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_02230270
+ mov r1, #0x72
+ lsl r1, r1, #2
+ add r4, r5, r1
+ lsl r6, r0, #3
+ str r0, [sp]
+ ldr r0, [r4, r6]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1e
+ beq _0223906A
+ sub r1, #0x94
+ str r0, [r5, r1]
+ add r0, r5, #0
+ mov r1, #6
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0x94
+ str r7, [r0]
+ ldr r1, [r5, #0x78]
+ add r0, r5, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #3
+ beq _02239048
+ ldr r1, [r5, #0x78]
+ add r0, r5, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #3
+ bne _02239072
+_02239048:
+ mov r0, #0x6f
+ ldr r1, [sp]
+ lsl r0, r0, #2
+ add r2, r5, r0
+ lsl r1, r1, #2
+ ldr r7, [r2, r1]
+ ldr r3, _02239078 ; =0xFFFFFBFF
+ sub r0, #0x88
+ and r3, r7
+ str r3, [r2, r1]
+ ldr r2, [r4, r6]
+ mov r1, #0xc
+ bic r2, r1
+ str r2, [r4, r6]
+ mov r1, #0
+ str r1, [r5, r0]
+ b _02239072
+_0223906A:
+ ldr r1, [sp, #4]
+ add r0, r5, #0
+ bl MOD11_0223A424
+_02239072:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02239078: .word 0xFFFFFBFF
+
+ thumb_func_start MOD11_0223907C
+MOD11_0223907C: ; 0x0223907C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ cmp r4, #0
+ bne _0223912C
+ add r0, r6, #0
+ bl MOD11_0222FF84
+ mov r6, #0
+ str r0, [sp]
+ cmp r0, #0
+ ble _02239194
+_022390BE:
+ ldr r0, _0223919C ; =0x000021EC
+ add r1, r5, r6
+ ldrb r4, [r1, r0]
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ bne _022390F6
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ add r2, r4, #0
+ add r3, r7, #0
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02239122
+ mov r0, #0xc0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _022391A0 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02239122
+ ldr r1, [sp, #4]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add r5, #0x80
+ str r4, [r5]
+ b _02239194
+_022390F6:
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ add r2, r4, #0
+ add r3, r7, #0
+ bl MOD11_02246D84
+ cmp r0, #0
+ beq _02239114
+ mov r0, #0xc0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _022391A0 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02239122
+_02239114:
+ ldr r1, [sp, #4]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add r5, #0x80
+ str r4, [r5]
+ b _02239194
+_02239122:
+ ldr r0, [sp]
+ add r6, r6, #1
+ cmp r6, r0
+ blt _022390BE
+ b _02239194
+_0223912C:
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_0223C230
+ add r4, r0, #0
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ bne _0223916A
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ add r2, r4, #0
+ add r3, r7, #0
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02239194
+ mov r0, #0xc0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _022391A0 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02239194
+ ldr r1, [sp, #4]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add r5, #0x80
+ str r4, [r5]
+ b _02239194
+_0223916A:
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ add r2, r4, #0
+ add r3, r7, #0
+ bl MOD11_02246D84
+ cmp r0, #0
+ beq _02239188
+ mov r0, #0xc0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _022391A0 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02239194
+_02239188:
+ ldr r1, [sp, #4]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ add r5, #0x80
+ str r4, [r5]
+_02239194:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0223919C: .word 0x000021EC
+_022391A0: .word 0x00002D8C
+
+ thumb_func_start MOD11_022391A4
+MOD11_022391A4: ; 0x022391A4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD11_0223C230
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02230270
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_02230270
+ cmp r6, r0
+ bne _02239200
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD11_0223A424
+_02239200:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02239204
+MOD11_02239204: ; 0x02239204
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ str r0, [sp]
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ mov r7, #0
+ ldr r0, [sp]
+ add r1, r7, #0
+ bl MOD11_0222FFC8
+ cmp r0, #0
+ bgt _02239222
+ b _02239360
+_02239222:
+ ldr r0, [sp]
+ mov r1, #0
+ add r2, r7, #0
+ bl MOD11_02230014
+ mov r1, #0xad
+ mov r2, #0
+ add r4, r0, #0
+ bl GetMonData
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ add r0, r4, #0
+ mov r1, #6
+ mov r2, #0
+ bl GetMonData
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0xa
+ mov r2, #0
+ bl GetMonData
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ cmp r0, #0x35
+ bne _022392EC
+ cmp r6, #0
+ beq _022392EC
+ ldr r0, _02239368 ; =0x000001EE
+ cmp r6, r0
+ beq _022392EC
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ bne _022392EC
+ bl LCRandom
+ mov r1, #0xa
+ bl _s32_div_f
+ cmp r1, #0
+ bne _022392EC
+ bl LCRandom
+ mov r1, #0x64
+ bl _s32_div_f
+ add r5, r1, #0
+ add r0, r4, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl GetMonData
+ sub r0, r0, #1
+ mov r1, #0xa
+ bl _u32_div_f
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ cmp r2, #0xa
+ blo _022392A4
+ mov r2, #9
+_022392A4:
+ mov r1, #0
+ ldr r3, _0223936C ; =0x0225E150
+ str r1, [sp, #0xc]
+_022392AA:
+ ldrb r0, [r3]
+ cmp r0, r5
+ ble _022392C4
+ ldr r3, [sp, #0xc]
+ ldr r5, _02239370 ; =0x0225DD24
+ add r2, r2, r3
+ lsl r2, r2, #1
+ add r0, r4, #0
+ mov r1, #6
+ add r2, r5, r2
+ bl SetMonData
+ b _022392EC
+_022392C4:
+ cmp r5, #0x62
+ blt _022392E2
+ cmp r5, #0x63
+ bgt _022392E2
+ mov r3, #0x63
+ sub r3, r3, r5
+ add r2, r2, r3
+ lsl r3, r2, #1
+ ldr r2, _02239374 ; =0x0225DC48
+ add r0, r4, #0
+ mov r1, #6
+ add r2, r2, r3
+ bl SetMonData
+ b _022392EC
+_022392E2:
+ add r1, r1, #1
+ add r3, r3, #1
+ str r1, [sp, #0xc]
+ cmp r1, #9
+ blt _022392AA
+_022392EC:
+ ldr r0, [sp, #4]
+ cmp r0, #0x76
+ bne _02239350
+ cmp r6, #0
+ beq _02239350
+ ldr r0, _02239368 ; =0x000001EE
+ cmp r6, r0
+ beq _02239350
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ bne _02239350
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #0xa0
+ str r2, [sp, #0xc]
+ mov r5, #0xa
+ bl GetMonData
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ cmp r1, #0xa
+ ble _02239324
+ ldr r0, [sp, #0xc]
+_0223931A:
+ add r5, #0xa
+ add r0, r0, #1
+ cmp r5, r1
+ blt _0223931A
+ str r0, [sp, #0xc]
+_02239324:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0xa
+ blt _0223932E
+ bl ErrorHandling
+_0223932E:
+ bl LCRandom
+ mov r1, #0x64
+ bl _s32_div_f
+ ldr r2, [sp, #0xc]
+ ldr r0, _02239378 ; =0x0225E15C
+ ldrb r0, [r0, r2]
+ cmp r1, r0
+ bge _02239350
+ mov r0, #0x5e
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ mov r1, #6
+ add r2, sp, #0xc
+ bl SetMonData
+_02239350:
+ ldr r0, [sp]
+ mov r1, #0
+ add r7, r7, #1
+ bl MOD11_0222FFC8
+ cmp r7, r0
+ bge _02239360
+ b _02239222
+_02239360:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02239368: .word 0x000001EE
+_0223936C: .word 0x0225E150
+_02239370: .word 0x0225DD24
+_02239374: .word 0x0225DC48
+_02239378: .word 0x0225E15C
+
+ thumb_func_start MOD11_0223937C
+MOD11_0223937C: ; 0x0223937C
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ mov r0, #0xb5
+ ldr r1, [r4, #0x64]
+ lsl r0, r0, #2
+ add r3, r4, r0
+ mov r0, #0x1c
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, [r3, r2]
+ mov r0, #0x10
+ orr r0, r1
+ str r0, [r3, r2]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022393A4
+MOD11_022393A4: ; 0x022393A4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_02249B7C
+ cmp r0, #1
+ bne _022393E0
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+_022393E0:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_022393E4
+MOD11_022393E4: ; 0x022393E4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp, #4]
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ ldr r0, [sp]
+ ldr r2, [sp, #4]
+ add r1, r5, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ cmp r6, #0
+ bne _02239438
+ add r0, r5, #0
+ bl MOD11_02249D90
+ cmp r4, r0
+ bne _0223944A
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+ b _0223944A
+_02239438:
+ add r0, r5, #0
+ bl MOD11_02249D90
+ cmp r4, r0
+ beq _0223944A
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+_0223944A:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02239450
+MOD11_02239450: ; 0x02239450
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223A444
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_02249B4C
+ add r1, r0, #0
+ add r0, r4, #0
+ mov r2, #1
+ bl MOD11_0224C12C
+ str r0, [r6]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223949C
+MOD11_0223949C: ; 0x0223949C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223A444
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_02249B4C
+ add r1, r0, #0
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C12C
+ str r0, [r6]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022394E8
+MOD11_022394E8: ; 0x022394E8
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x79
+ bne _02239516
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_02239516:
+ add r0, r4, #0
+ bl MOD11_02230294
+ ldr r1, _02239570 ; =0x0225E168
+ mov r2, #0x1b
+ ldrb r4, [r1, r0]
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r4, r0
+ beq _02239564
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r4, r0
+ beq _02239564
+ ldr r1, [r5, #0x64]
+ lsl r0, r4, #0x18
+ add r3, r1, #0
+ mov r2, #0xc0
+ mul r3, r2
+ ldr r1, _02239574 ; =0x00002D64
+ lsr r0, r0, #0x18
+ add r3, r5, r3
+ strb r0, [r3, r1]
+ ldr r3, [r5, #0x64]
+ add r1, r1, #1
+ add r6, r3, #0
+ mul r6, r2
+ add r3, r5, r6
+ strb r0, [r3, r1]
+ add r2, #0x70
+ str r4, [r5, r2]
+ b _0223956C
+_02239564:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_0223956C:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02239570: .word 0x0225E168
+_02239574: .word 0x00002D64
+
+ thumb_func_start MOD11_02239578
+MOD11_02239578: ; 0x02239578
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_02230294
+ lsl r1, r0, #1
+ ldr r0, _0223959C ; =0x0225DD0A
+ ldrh r1, [r0, r1]
+ mov r0, #0x49
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223959C: .word 0x0225DD0A
+
+ thumb_func_start MOD11_022395A0
+MOD11_022395A0: ; 0x022395A0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_02230294
+ lsl r1, r0, #2
+ ldr r0, _022395C4 ; =0x0225DD48
+ ldr r1, [r0, r1]
+ ldr r0, _022395C8 ; =0x00002174
+ str r1, [r4, r0]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_022395C4: .word 0x0225DD48
+_022395C8: .word 0x00002174
+
+ thumb_func_start MOD11_022395CC
+MOD11_022395CC: ; 0x022395CC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r5, r0, #0
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02249DF0
+ cmp r0, #0
+ beq _022395FE
+ ldr r1, _0223960C ; =0x00002154
+ str r0, [r4, r1]
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02249E04
+ ldr r1, _02239610 ; =0x00002160
+ str r0, [r4, r1]
+ b _02239606
+_022395FE:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0223A424
+_02239606:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_0223960C: .word 0x00002154
+_02239610: .word 0x00002160
+
+ thumb_func_start MOD11_02239614
+MOD11_02239614: ; 0x02239614
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r2, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _02239674 ; =0x00002DB8
+ ldrh r0, [r1, r0]
+ cmp r0, #0
+ beq _0223965A
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ mov r3, #0x3c
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _0223965A
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+ b _02239670
+_0223965A:
+ ldr r2, [r4, #0x6c]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02249F8C
+ cmp r0, #1
+ beq _02239670
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_02239670:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02239674: .word 0x00002DB8
+
+ thumb_func_start MOD11_02239678
+MOD11_02239678: ; 0x02239678
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r2, [r4, #0x64]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224A4E0
+ cmp r0, #1
+ beq _022396A4
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_022396A4:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_022396A8
+MOD11_022396A8: ; 0x022396A8
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ mov r2, #0
+ str r2, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, r2, #0
+ str r2, [sp, #8]
+ bl MOD11_02255980
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022396D8
+MOD11_022396D8: ; 0x022396D8
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD11_0224AD90
+ add r4, r0, #0
+ beq _02239714
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r1, r0, #0
+ cmp r4, #0xff
+ bne _0223970C
+ add r0, r5, #0
+ bl MOD11_0223A424
+ b _02239714
+_0223970C:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_02239714:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02239718
+MOD11_02239718: ; 0x02239718
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ bl MOD11_0222FF84
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, r2, #0
+ bl MOD11_022558E0
+ mov r0, #0
+ str r0, [r4, #0x78]
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02239748
+MOD11_02239748: ; 0x02239748
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD11_0224AD90
+ add r5, r0, #0
+ beq _0223977A
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r1, r0, #0
+ cmp r5, #0xff
+ bne _02239774
+ add r0, r4, #0
+ bl MOD11_0223A424
+ b _0223977A
+_02239774:
+ ldr r0, _02239780 ; =0x000021A0
+ sub r1, r5, #1
+ strb r1, [r4, r0]
+_0223977A:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02239780: .word 0x000021A0
+
+ thumb_func_start MOD11_02239784
+MOD11_02239784: ; 0x02239784
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0222FF74
+ mov r1, #4
+ tst r0, r1
+ beq _022397A2
+ add r0, r4, #0
+ bl MOD11_02256774
+_022397A2:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022397A8
+MOD11_022397A8: ; 0x022397A8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_0223C230
+ add r4, r0, #0
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_02230270
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ add r2, r0, #0
+ lsl r0, r6, #2
+ add r1, r5, r0
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ ldr r1, [r1, r0]
+ mov r0, #0x80
+ tst r0, r1
+ beq _0223989C
+ mov r0, #0xc0
+ add r6, r4, #0
+ mul r6, r0
+ ldr r0, _022398A8 ; =0x00002D8C
+ add r1, r5, r6
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0223989C
+ lsl r1, r7, #0x18
+ lsl r2, r2, #0x18
+ mov r0, #5
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ bl MOD11_02246B9C
+ cmp r0, #0x14
+ bgt _0223983A
+ bge _02239862
+ cmp r0, #0
+ bgt _02239834
+ beq _02239872
+ b _0223987E
+_02239834:
+ cmp r0, #0xa
+ beq _0223986A
+ b _0223987E
+_0223983A:
+ cmp r0, #0x50
+ bgt _02239846
+ bge _02239852
+ cmp r0, #0x28
+ beq _0223985A
+ b _0223987E
+_02239846:
+ cmp r0, #0xa0
+ bne _0223987E
+ ldr r0, _022398AC ; =0x0000215C
+ mov r1, #2
+ str r1, [r5, r0]
+ b _02239882
+_02239852:
+ ldr r0, _022398AC ; =0x0000215C
+ mov r1, #4
+ str r1, [r5, r0]
+ b _02239882
+_0223985A:
+ ldr r0, _022398AC ; =0x0000215C
+ mov r1, #8
+ str r1, [r5, r0]
+ b _02239882
+_02239862:
+ ldr r0, _022398AC ; =0x0000215C
+ mov r1, #0x10
+ str r1, [r5, r0]
+ b _02239882
+_0223986A:
+ ldr r0, _022398AC ; =0x0000215C
+ mov r1, #0x20
+ str r1, [r5, r0]
+ b _02239882
+_02239872:
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD11_0223A424
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223987E:
+ bl ErrorHandling
+_02239882:
+ ldr r0, _022398B0 ; =0x00002D90
+ add r1, r5, r6
+ ldr r1, [r1, r0]
+ mov r0, #0
+ mvn r0, r0
+ mul r0, r1
+ ldr r1, _022398AC ; =0x0000215C
+ ldr r1, [r5, r1]
+ bl MOD11_022476C0
+ ldr r1, _022398AC ; =0x0000215C
+ str r0, [r5, r1]
+ b _022398A4
+_0223989C:
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD11_0223A424
+_022398A4:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022398A8: .word 0x00002D8C
+_022398AC: .word 0x0000215C
+_022398B0: .word 0x00002D90
+
+ thumb_func_start MOD11_022398B4
+MOD11_022398B4: ; 0x022398B4
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x20
+ ldr r0, _0223992C ; =0x00003044
+ bne _022398E6
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02239930 ; =0x000003E5
+ ldrb r0, [r1, r0]
+ lsl r0, r0, #0x11
+ lsr r4, r0, #0x10
+ b _022398F0
+_022398E6:
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02239930 ; =0x000003E5
+ ldrb r4, [r1, r0]
+_022398F0:
+ cmp r4, #0
+ bne _022398F8
+ bl ErrorHandling
+_022398F8:
+ bl LCRandom
+ mov r1, #0x64
+ bl _s32_div_f
+ cmp r1, r4
+ bge _0223991E
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02239934 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0223991E
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_0223991E:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_0223992C: .word 0x00003044
+_02239930: .word 0x000003E5
+_02239934: .word 0x00002D8C
+
+ thumb_func_start MOD11_02239938
+MOD11_02239938: ; 0x02239938
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ mov r3, #0xb5
+ mov r2, #0xc0
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r0, r5, r0
+ lsl r3, r3, #6
+ ldrh r4, [r0, r3]
+ add r2, #0xf9
+ cmp r4, r2
+ bne _022399BA
+ ldr r4, [r5, #0x6c]
+ mov r2, #0xc0
+ mul r2, r4
+ add r4, r5, r2
+ add r2, r3, #0
+ add r2, #0x4c
+ ldr r2, [r4, r2]
+ cmp r2, #0
+ beq _022399BA
+ add r3, #0x70
+ ldr r2, [r0, r3]
+ mov r0, #2
+ lsl r0, r0, #0x14
+ tst r0, r2
+ bne _022399BA
+ add r0, r7, #0
+ bl MOD11_02230E88
+ bl FUN_02005EE0
+ cmp r0, #0
+ beq _02239998
+ cmp r0, #1
+ beq _0223999C
+ cmp r0, #2
+ beq _022399A0
+_02239998:
+ mov r4, #0
+ b _022399A2
+_0223999C:
+ mov r4, #0xa
+ b _022399A2
+_022399A0:
+ mov r4, #0x1e
+_022399A2:
+ bl LCRandom
+ mov r1, #0x64
+ bl _s32_div_f
+ cmp r1, r4
+ ble _022399C2
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+ b _022399C2
+_022399BA:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_022399C2:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022399C8
+MOD11_022399C8: ; 0x022399C8
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r1, r0, #0
+ ldr r0, _022399F8 ; =0x000003DE
+ add r2, r4, r0
+ ldr r0, _022399FC ; =0x00003044
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r0, r2, r0
+ bl GetAttrFromWazaTbl
+ mov r1, #0x4d
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_022399F8: .word 0x000003DE
+_022399FC: .word 0x00003044
+
+ thumb_func_start MOD11_02239A00
+MOD11_02239A00: ; 0x02239A00
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ ldr r3, [sp]
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD11_022562E4
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02239A40
+MOD11_02239A40: ; 0x02239A40
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD11_02256308
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02239A6C
+MOD11_02239A6C: ; 0x02239A6C
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD11_02256398
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02239A84
+MOD11_02239A84: ; 0x02239A84
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ ldr r2, _02239AC0 ; =0x0000219C
+ str r0, [sp]
+ add r3, r4, r1
+ ldrb r2, [r3, r2]
+ add r0, r5, #0
+ mov r3, #0
+ bl MOD11_02230370
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02239AC0: .word 0x0000219C
+
+ thumb_func_start MOD11_02239AC4
+MOD11_02239AC4: ; 0x02239AC4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022470B8
+ cmp r0, #0
+ beq _02239B02
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+_02239B02:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02239B08
+MOD11_02239B08: ; 0x02239B08
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD11_022563D0
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02239B34
+MOD11_02239B34: ; 0x02239B34
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD11_022563F8
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02239B60
+MOD11_02239B60: ; 0x02239B60
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD11_02256420
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02239B8C
+MOD11_02239B8C: ; 0x02239B8C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD11_02256448
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02239BB8
+MOD11_02239BB8: ; 0x02239BB8
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_02256470
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02239BD0
+MOD11_02239BD0: ; 0x02239BD0
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0225648C
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02239BE8
+MOD11_02239BE8: ; 0x02239BE8
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ ldr r3, [sp]
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD11_022564A8
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02239C28
+MOD11_02239C28: ; 0x02239C28
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022564F4
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02239C54
+MOD11_02239C54: ; 0x02239C54
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ mov r2, #0x4e
+ lsl r2, r2, #2
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r4, r2
+ bl MOD11_02248308
+ cmp r0, #0
+ bne _02239C84
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_02239C84:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02239C88
+MOD11_02239C88: ; 0x02239C88
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ cmp r2, #3
+ beq _02239CAE
+ cmp r2, #4
+ beq _02239CD6
+ b _02239CFE
+_02239CAE:
+ mov r5, #0
+ cmp r6, #0
+ ble _02239D0E
+ mov r7, #1
+_02239CB6:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02239D14 ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ bne _02239CCE
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022565A0
+_02239CCE:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02239CB6
+ b _02239D0E
+_02239CD6:
+ mov r5, #0
+ cmp r6, #0
+ ble _02239D0E
+ mov r7, #1
+_02239CDE:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02239D14 ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ beq _02239CF6
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022565A0
+_02239CF6:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02239CDE
+ b _02239D0E
+_02239CFE:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_022565A0
+_02239D0E:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02239D14: .word 0x00000195
+
+ thumb_func_start MOD11_02239D18
+MOD11_02239D18: ; 0x02239D18
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ cmp r2, #3
+ beq _02239D3E
+ cmp r2, #4
+ beq _02239D66
+ b _02239D8E
+_02239D3E:
+ mov r5, #0
+ cmp r6, #0
+ ble _02239D9E
+ mov r7, #1
+_02239D46:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02239DA4 ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ bne _02239D5E
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022565BC
+_02239D5E:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02239D46
+ b _02239D9E
+_02239D66:
+ mov r5, #0
+ cmp r6, #0
+ ble _02239D9E
+ mov r7, #1
+_02239D6E:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _02239DA4 ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ beq _02239D86
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022565BC
+_02239D86:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _02239D6E
+ b _02239D9E
+_02239D8E:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD11_022565BC
+_02239D9E:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02239DA4: .word 0x00000195
+
+ thumb_func_start MOD11_02239DA8
+MOD11_02239DA8: ; 0x02239DA8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r0, [sp]
+ str r1, [sp, #4]
+ add r0, r1, #0
+ mov r1, #1
+ mov r5, #0
+ bl MOD11_0223A424
+ ldr r0, [sp, #4]
+ bl MOD11_0223A404
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ bl MOD11_0223A404
+ str r0, [sp, #0x14]
+ ldr r0, [sp]
+ bl MOD11_0222FF74
+ str r0, [sp, #0xc]
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ add r2, r4, #0
+ bl MOD11_0223C230
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0xc]
+ mov r1, #8
+ tst r0, r1
+ bne _02239DFA
+ ldr r0, [sp, #0xc]
+ mov r1, #0x10
+ tst r0, r1
+ beq _02239EDA
+ ldr r0, [sp]
+ ldr r1, [sp, #0x10]
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02239EDA
+_02239DFA:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x10]
+ bl MOD11_0222FF88
+ add r7, r0, #0
+ ldr r0, [sp]
+ ldr r1, [sp, #0x10]
+ bl MOD11_022302BC
+ add r1, r0, #0
+ ldr r0, [sp]
+ bl MOD11_0222FF88
+ str r0, [sp, #8]
+ ldr r0, [sp]
+ ldr r1, [sp, #0x10]
+ bl MOD11_0222FF7C
+ add r0, r7, #0
+ mov r4, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _02239E68
+_02239E2A:
+ add r0, r7, #0
+ add r1, r4, #0
+ bl GetPartyMonByIndex
+ mov r1, #0xad
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02239E5C
+ add r0, r6, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02239F48 ; =0x000001EE
+ cmp r0, r1
+ beq _02239E5C
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ add r5, r5, r0
+_02239E5C:
+ add r0, r7, #0
+ add r4, r4, #1
+ bl GetPartyCount
+ cmp r4, r0
+ blt _02239E2A
+_02239E68:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x4b
+ beq _02239E76
+ cmp r0, #0xcb
+ beq _02239E76
+ cmp r0, #0x4a
+ bne _02239E82
+_02239E76:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x10]
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02239ECC
+_02239E82:
+ ldr r0, [sp, #8]
+ mov r4, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _02239ECC
+ ldr r7, _02239F48 ; =0x000001EE
+_02239E90:
+ ldr r0, [sp, #8]
+ add r1, r4, #0
+ bl GetPartyMonByIndex
+ mov r1, #0xad
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02239EC0
+ add r0, r6, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl GetMonData
+ cmp r0, r7
+ beq _02239EC0
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ add r5, r5, r0
+_02239EC0:
+ ldr r0, [sp, #8]
+ add r4, r4, #1
+ bl GetPartyCount
+ cmp r4, r0
+ blt _02239E90
+_02239ECC:
+ cmp r5, #0
+ bne _02239F42
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0x14]
+ bl MOD11_0223A424
+ b _02239F42
+_02239EDA:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x10]
+ bl MOD11_0222FF88
+ add r7, r0, #0
+ ldr r0, [sp]
+ ldr r1, [sp, #0x10]
+ bl MOD11_0222FF7C
+ add r0, r7, #0
+ mov r4, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _02239F36
+_02239EF8:
+ add r0, r7, #0
+ add r1, r4, #0
+ bl GetPartyMonByIndex
+ mov r1, #0xad
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02239F2A
+ add r0, r6, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02239F48 ; =0x000001EE
+ cmp r0, r1
+ beq _02239F2A
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ add r5, r5, r0
+_02239F2A:
+ add r0, r7, #0
+ add r4, r4, #1
+ bl GetPartyCount
+ cmp r4, r0
+ blt _02239EF8
+_02239F36:
+ cmp r5, #0
+ bne _02239F42
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0x14]
+ bl MOD11_0223A424
+_02239F42:
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02239F48: .word 0x000001EE
+
+ thumb_func_start MOD11_02239F4C
+MOD11_02239F4C: ; 0x02239F4C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r6, r1, #0
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r6, #0
+ bl MOD11_0223A404
+ mov ip, r0
+ ldr r1, [r6, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r0, r6, r0
+ add r5, r0, #1
+ ldr r7, _02239FC0 ; =0x00002D58
+ mov r4, #0
+ mov r3, #1
+ add r0, sp, #0
+_02239F74:
+ ldrsb r1, [r5, r7]
+ cmp r1, #0xc
+ bge _02239F82
+ lsl r1, r4, #2
+ sub r2, r3, #1
+ add r4, r4, #1
+ str r2, [r0, r1]
+_02239F82:
+ add r3, r3, #1
+ add r5, r5, #1
+ cmp r3, #8
+ blt _02239F74
+ cmp r4, #0
+ beq _02239FB0
+ bl LCRandom
+ add r1, r4, #0
+ bl _s32_div_f
+ lsl r1, r1, #2
+ add r0, sp, #0
+ ldr r0, [r0, r1]
+ ldr r1, _02239FC4 ; =0x00002170
+ add r0, #0x27
+ str r0, [r6, r1]
+ mov r0, #2
+ ldr r2, [r6, r1]
+ lsl r0, r0, #0x1e
+ orr r0, r2
+ str r0, [r6, r1]
+ b _02239FB8
+_02239FB0:
+ add r0, r6, #0
+ mov r1, ip
+ bl MOD11_0223A424
+_02239FB8:
+ mov r0, #0
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02239FC0: .word 0x00002D58
+_02239FC4: .word 0x00002170
+
+ thumb_func_start MOD11_02239FC8
+MOD11_02239FC8: ; 0x02239FC8
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r7, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ ldr r0, _0223A00C ; =0x00002DB8
+ add r5, r2, #0
+ add r6, r4, r0
+ mov r0, #0xc0
+ mul r5, r0
+ lsl r0, r2, #1
+ add r1, r4, r0
+ ldrh r3, [r6, r5]
+ ldr r0, _0223A010 ; =0x00003124
+ strh r3, [r1, r0]
+ mov r0, #0
+ strh r0, [r6, r5]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_02245190
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223A00C: .word 0x00002DB8
+_0223A010: .word 0x00003124
+
+ thumb_func_start MOD11_0223A014
+MOD11_0223A014: ; 0x0223A014
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r1, r0, #0
+ ldr r0, [r4, #0x64]
+ ldr r2, _0223A054 ; =0x00003124
+ lsl r0, r0, #1
+ add r0, r4, r0
+ ldrh r3, [r0, r2]
+ cmp r3, #0
+ beq _0223A048
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ str r3, [r4, r0]
+ ldr r0, [r4, #0x64]
+ mov r1, #0
+ lsl r0, r0, #1
+ add r0, r4, r0
+ strh r1, [r0, r2]
+ b _0223A04E
+_0223A048:
+ add r0, r4, #0
+ bl MOD11_0223A424
+_0223A04E:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_0223A054: .word 0x00003124
+
+ thumb_func_start MOD11_0223A058
+MOD11_0223A058: ; 0x0223A058
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ mov r2, #0x4e
+ lsl r2, r2, #2
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r4, r2
+ bl MOD11_02249B94
+ cmp r0, #0
+ bne _0223A088
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_0223A088:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0223A08C
+MOD11_0223A08C: ; 0x0223A08C
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_022565D8
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223A0A4
+MOD11_0223A0A4: ; 0x0223A0A4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022565F4
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223A0C0
+MOD11_0223A0C0: ; 0x0223A0C0
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0225664C
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223A0D8
+MOD11_0223A0D8: ; 0x0223A0D8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ mov r4, #0
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0223C230
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_02249D90
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ bl MOD11_02249DA4
+ str r0, [sp]
+ cmp r6, #0x40
+ bne _0223A126
+ bl LCRandom
+ mov r1, #0x64
+ bl _s32_div_f
+ ldr r0, [sp]
+ cmp r1, r0
+ bge _0223A126
+ mov r4, #1
+_0223A126:
+ cmp r6, #0x66
+ bne _0223A13E
+ mov r0, #0xc0
+ mul r0, r7
+ add r2, r5, r0
+ ldr r0, _0223A170 ; =0x00002D8C
+ ldr r1, [r2, r0]
+ add r0, r0, #4
+ ldr r0, [r2, r0]
+ cmp r1, r0
+ bne _0223A13E
+ mov r4, #1
+_0223A13E:
+ cmp r4, #0
+ beq _0223A16C
+ mov r1, #0xc0
+ add r0, r7, #0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _0223A170 ; =0x00002D8C
+ ldr r3, [r2, r0]
+ ldr r2, _0223A174 ; =0x0000215C
+ ldr r0, [r5, r2]
+ add r0, r0, r3
+ cmp r0, #0
+ bgt _0223A16C
+ sub r0, r3, #1
+ neg r0, r0
+ str r0, [r5, r2]
+ add r0, r2, #0
+ add r0, #0x10
+ ldr r0, [r5, r0]
+ add r1, #0x40
+ orr r0, r1
+ add r2, #0x10
+ str r0, [r5, r2]
+_0223A16C:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223A170: .word 0x00002D8C
+_0223A174: .word 0x0000215C
+
+ thumb_func_start MOD11_0223A178
+MOD11_0223A178: ; 0x0223A178
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ mov r0, #0xc0
+ add r4, r1, #0
+ mul r4, r0
+ ldr r0, _0223A208 ; =0x00002D8C
+ add r2, r5, r4
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _0223A1FA
+ ldr r0, _0223A20C ; =0x0000219C
+ add r2, r5, r1
+ ldrb r2, [r2, r0]
+ cmp r2, #6
+ beq _0223A1FA
+ add r0, r6, #0
+ bl MOD11_02230014
+ add r6, r0, #0
+ mov r1, #0xa
+ mov r2, #0
+ bl GetMonData
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #0x9f
+ mov r2, #0
+ bl GetMonData
+ add r2, r0, #0
+ ldr r0, _0223A210 ; =0x00002D67
+ add r1, r5, r4
+ ldrb r0, [r1, r0]
+ cmp r0, #0x1e
+ beq _0223A202
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD11_02248A14
+ cmp r0, #0
+ bne _0223A202
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+ b _0223A202
+_0223A1FA:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_0223A424
+_0223A202:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223A208: .word 0x00002D8C
+_0223A20C: .word 0x0000219C
+_0223A210: .word 0x00002D67
+
+ thumb_func_start MOD11_0223A214
+MOD11_0223A214: ; 0x0223A214
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD11_0223C230
+ mov r1, #0xc0
+ mul r1, r0
+ add r2, r4, r1
+ ldr r1, _0223A26C ; =0x00002DB0
+ ldr r2, [r2, r1]
+ mov r1, #1
+ lsl r1, r1, #0x18
+ tst r1, r2
+ bne _0223A260
+ mov r1, #0x1c
+ mul r1, r0
+ mov r0, #0xba
+ add r1, r4, r1
+ lsl r0, r0, #2
+ ldr r1, [r1, r0]
+ mov r0, #8
+ tst r0, r1
+ beq _0223A268
+_0223A260:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_0223A268:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223A26C: .word 0x00002DB0
+
+ thumb_func_start MOD11_0223A270
+MOD11_0223A270: ; 0x0223A270
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ mov r0, #0xd
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0223A2B0
+ mov r0, #0x4c
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _0223A2B8
+_0223A2B0:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_0223A2B8:
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223A2C0
+MOD11_0223A2C0: ; 0x0223A2C0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022482A4
+ str r0, [r4, #0x6c]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223A2F0
+MOD11_0223A2F0: ; 0x0223A2F0
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ mov r2, #0x4e
+ lsl r2, r2, #2
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r4, r2
+ bl MOD11_0224C258
+ cmp r0, #0
+ bne _0223A320
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_0223A320:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0223A324
+MOD11_0223A324: ; 0x0223A324
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02256668
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0223A350
+MOD11_0223A350: ; 0x0223A350
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223C230
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02256714
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0223A37C
+MOD11_0223A37C: ; 0x0223A37C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223C230
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD11_02256754
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223A3B4
+MOD11_0223A3B4: ; 0x0223A3B4
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_0223A424
+ add r0, r4, #0
+ bl MOD11_0223A404
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD11_0222FFC8
+ cmp r0, #6
+ bne _0223A3E0
+ ldr r0, [r5, #0x64]
+ bl FUN_0206B334
+ cmp r0, #0x12
+ beq _0223A3F0
+_0223A3E0:
+ ldr r0, _0223A3F4 ; =0x00002410
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _0223A3F0
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0223A424
+_0223A3F0:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0223A3F4: .word 0x00002410
+
+ thumb_func_start MOD11_0223A3F8
+MOD11_0223A3F8: ; 0x0223A3F8
+ ldr r3, _0223A400 ; =MOD11_022432B4
+ add r0, r1, #0
+ bx r3
+ nop
+_0223A400: .word MOD11_022432B4
+
+ thumb_func_start MOD11_0223A404
+MOD11_0223A404: ; 0x0223A404
+ add r1, r0, #0
+ add r1, #0xb4
+ ldr r1, [r1]
+ lsl r1, r1, #2
+ add r2, r0, r1
+ mov r1, #0x27
+ lsl r1, r1, #8
+ ldr r2, [r2, r1]
+ add r1, r0, #0
+ add r1, #0xb4
+ ldr r1, [r1]
+ add r0, #0xb4
+ add r1, r1, #1
+ str r1, [r0]
+ add r0, r2, #0
+ bx lr
+
+ thumb_func_start MOD11_0223A424
+MOD11_0223A424: ; 0x0223A424
+ add r2, r0, #0
+ add r2, #0xb4
+ ldr r2, [r2]
+ add r0, #0xb4
+ add r1, r2, r1
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0223A434
+MOD11_0223A434: ; 0x0223A434
+ ldr r3, _0223A438 ; =MOD11_022431DC
+ bx r3
+ .align 2, 0
+_0223A438: .word MOD11_022431DC
+
+ thumb_func_start MOD11_0223A43C
+MOD11_0223A43C: ; 0x0223A43C
+ ldr r3, _0223A440 ; =MOD11_0224321C
+ bx r3
+ .align 2, 0
+_0223A440: .word MOD11_0224321C
+
+ thumb_func_start MOD11_0223A444
+MOD11_0223A444: ; 0x0223A444
+ push {r4, lr}
+ add r4, r1, #0
+ cmp r2, #0x44
+ bls _0223A44E
+ b _0223A738
+_0223A44E:
+ add r1, r2, r2
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223A45A: ; jump table
+ .short _0223A4E4 - _0223A45A - 2 ; case 0
+ .short _0223A4E8 - _0223A45A - 2 ; case 1
+ .short _0223A4EE - _0223A45A - 2 ; case 2
+ .short _0223A4F4 - _0223A45A - 2 ; case 3
+ .short _0223A4FA - _0223A45A - 2 ; case 4
+ .short _0223A500 - _0223A45A - 2 ; case 5
+ .short _0223A506 - _0223A45A - 2 ; case 6
+ .short _0223A50C - _0223A45A - 2 ; case 7
+ .short _0223A514 - _0223A45A - 2 ; case 8
+ .short _0223A51A - _0223A45A - 2 ; case 9
+ .short _0223A522 - _0223A45A - 2 ; case 10
+ .short _0223A528 - _0223A45A - 2 ; case 11
+ .short _0223A53A - _0223A45A - 2 ; case 12
+ .short _0223A54C - _0223A45A - 2 ; case 13
+ .short _0223A562 - _0223A45A - 2 ; case 14
+ .short _0223A568 - _0223A45A - 2 ; case 15
+ .short _0223A56E - _0223A45A - 2 ; case 16
+ .short _0223A574 - _0223A45A - 2 ; case 17
+ .short _0223A57A - _0223A45A - 2 ; case 18
+ .short _0223A580 - _0223A45A - 2 ; case 19
+ .short _0223A586 - _0223A45A - 2 ; case 20
+ .short _0223A58E - _0223A45A - 2 ; case 21
+ .short _0223A59A - _0223A45A - 2 ; case 22
+ .short _0223A5A2 - _0223A45A - 2 ; case 23
+ .short _0223A5AA - _0223A45A - 2 ; case 24
+ .short _0223A5B0 - _0223A45A - 2 ; case 25
+ .short _0223A5B8 - _0223A45A - 2 ; case 26
+ .short _0223A5C0 - _0223A45A - 2 ; case 27
+ .short _0223A5C8 - _0223A45A - 2 ; case 28
+ .short _0223A5D0 - _0223A45A - 2 ; case 29
+ .short _0223A5D6 - _0223A45A - 2 ; case 30
+ .short _0223A5DC - _0223A45A - 2 ; case 31
+ .short _0223A5E2 - _0223A45A - 2 ; case 32
+ .short _0223A5E8 - _0223A45A - 2 ; case 33
+ .short _0223A5EE - _0223A45A - 2 ; case 34
+ .short _0223A5F4 - _0223A45A - 2 ; case 35
+ .short _0223A5FC - _0223A45A - 2 ; case 36
+ .short _0223A604 - _0223A45A - 2 ; case 37
+ .short _0223A60C - _0223A45A - 2 ; case 38
+ .short _0223A614 - _0223A45A - 2 ; case 39
+ .short _0223A61A - _0223A45A - 2 ; case 40
+ .short _0223A622 - _0223A45A - 2 ; case 41
+ .short _0223A630 - _0223A45A - 2 ; case 42
+ .short _0223A63E - _0223A45A - 2 ; case 43
+ .short _0223A646 - _0223A45A - 2 ; case 44
+ .short _0223A64C - _0223A45A - 2 ; case 45
+ .short _0223A65A - _0223A45A - 2 ; case 46
+ .short _0223A668 - _0223A45A - 2 ; case 47
+ .short _0223A678 - _0223A45A - 2 ; case 48
+ .short _0223A688 - _0223A45A - 2 ; case 49
+ .short _0223A69A - _0223A45A - 2 ; case 50
+ .short _0223A6A0 - _0223A45A - 2 ; case 51
+ .short _0223A6A6 - _0223A45A - 2 ; case 52
+ .short _0223A6AC - _0223A45A - 2 ; case 53
+ .short _0223A6B8 - _0223A45A - 2 ; case 54
+ .short _0223A6BE - _0223A45A - 2 ; case 55
+ .short _0223A6C4 - _0223A45A - 2 ; case 56
+ .short _0223A6CA - _0223A45A - 2 ; case 57
+ .short _0223A6D0 - _0223A45A - 2 ; case 58
+ .short _0223A6D6 - _0223A45A - 2 ; case 59
+ .short _0223A6DC - _0223A45A - 2 ; case 60
+ .short _0223A6E4 - _0223A45A - 2 ; case 61
+ .short _0223A6EA - _0223A45A - 2 ; case 62
+ .short _0223A6EE - _0223A45A - 2 ; case 63
+ .short _0223A6F4 - _0223A45A - 2 ; case 64
+ .short _0223A6FA - _0223A45A - 2 ; case 65
+ .short _0223A70A - _0223A45A - 2 ; case 66
+ .short _0223A71A - _0223A45A - 2 ; case 67
+ .short _0223A728 - _0223A45A - 2 ; case 68
+_0223A4E4:
+ add r0, #0x2c
+ pop {r4, pc}
+_0223A4E8:
+ ldr r0, _0223A73C ; =0x0000214C
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A4EE:
+ ldr r0, _0223A740 ; =0x00002170
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A4F4:
+ ldr r0, _0223A744 ; =0x00002174
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A4FA:
+ ldr r0, _0223A748 ; =0x00002178
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A500:
+ add r4, #0x88
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A506:
+ ldr r0, _0223A74C ; =0x0000213C
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A50C:
+ mov r0, #6
+ lsl r0, r0, #6
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A514:
+ ldr r0, _0223A750 ; =0x00002158
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A51A:
+ mov r0, #0x4d
+ lsl r0, r0, #2
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A522:
+ ldr r0, _0223A754 ; =0x0000216C
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A528:
+ ldr r1, [r4, #0x64]
+ bl MOD11_02230270
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ add r1, r4, r1
+ lsl r0, r0, #2
+ add r0, r1, r0
+ pop {r4, pc}
+_0223A53A:
+ ldr r1, [r4, #0x6c]
+ bl MOD11_02230270
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ add r1, r4, r1
+ lsl r0, r0, #2
+ add r0, r1, r0
+ pop {r4, pc}
+_0223A54C:
+ add r1, r4, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ bl MOD11_02230270
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ add r1, r4, r1
+ lsl r0, r0, #2
+ add r0, r1, r0
+ pop {r4, pc}
+_0223A562:
+ ldr r0, _0223A758 ; =0x00002144
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A568:
+ add r4, #0x64
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A56E:
+ add r4, #0x6c
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A574:
+ add r4, #0x94
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A57A:
+ add r4, #0x74
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A580:
+ add r4, #0x78
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A586:
+ mov r0, #0x46
+ lsl r0, r0, #2
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A58E:
+ ldr r0, _0223A75C ; =0x000030E4
+ add r1, r4, r0
+ ldr r0, [r4, #0x64]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ pop {r4, pc}
+_0223A59A:
+ mov r0, #0x13
+ lsl r0, r0, #4
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A5A2:
+ mov r0, #0x53
+ lsl r0, r0, #2
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A5AA:
+ ldr r0, _0223A760 ; =0x00003044
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A5B0:
+ mov r0, #0x15
+ lsl r0, r0, #4
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A5B8:
+ mov r0, #0x47
+ lsl r0, r0, #2
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A5C0:
+ mov r0, #0x12
+ lsl r0, r0, #4
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A5C8:
+ mov r0, #0xc1
+ lsl r0, r0, #6
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A5D0:
+ add r4, #0x98
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A5D6:
+ ldr r0, _0223A764 ; =0x00002154
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A5DC:
+ add r4, #0x38
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A5E2:
+ ldr r0, _0223A768 ; =0x0000215C
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A5E8:
+ ldr r1, _0223A76C ; =0x0000241C
+ add r0, r0, r1
+ pop {r4, pc}
+_0223A5EE:
+ add r4, #0x8c
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A5F4:
+ mov r0, #0x49
+ lsl r0, r0, #2
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A5FC:
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A604:
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A60C:
+ mov r0, #0x61
+ lsl r0, r0, #2
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A614:
+ ldr r0, _0223A770 ; =0x00003104
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A61A:
+ mov r0, #0x86
+ lsl r0, r0, #6
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A622:
+ mov r0, #0x7b
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r0, [r4, #0x64]
+ lsl r0, r0, #6
+ add r0, r1, r0
+ pop {r4, pc}
+_0223A630:
+ mov r0, #0x81
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r0, [r4, #0x64]
+ lsl r0, r0, #6
+ add r0, r1, r0
+ pop {r4, pc}
+_0223A63E:
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A646:
+ ldr r0, _0223A774 ; =0x00002150
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A64C:
+ mov r0, #0x82
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r0, [r4, #0x64]
+ lsl r0, r0, #6
+ add r0, r1, r0
+ pop {r4, pc}
+_0223A65A:
+ mov r0, #0x82
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r0, [r4, #0x6c]
+ lsl r0, r0, #6
+ add r0, r1, r0
+ pop {r4, pc}
+_0223A668:
+ mov r0, #0xba
+ lsl r0, r0, #2
+ add r2, r4, r0
+ ldr r1, [r4, #0x64]
+ mov r0, #0x1c
+ mul r0, r1
+ add r0, r2, r0
+ pop {r4, pc}
+_0223A678:
+ mov r0, #0xba
+ lsl r0, r0, #2
+ add r2, r4, r0
+ ldr r1, [r4, #0x6c]
+ mov r0, #0x1c
+ mul r0, r1
+ add r0, r2, r0
+ pop {r4, pc}
+_0223A688:
+ mov r0, #0xba
+ lsl r0, r0, #2
+ add r2, r4, r0
+ add r4, #0x94
+ ldr r1, [r4]
+ mov r0, #0x1c
+ mul r0, r1
+ add r0, r2, r0
+ pop {r4, pc}
+_0223A69A:
+ ldr r0, _0223A778 ; =0x00003114
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A6A0:
+ ldr r0, _0223A77C ; =0x00003118
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A6A6:
+ ldr r1, _0223A780 ; =0x00002408
+ add r0, r0, r1
+ pop {r4, pc}
+_0223A6AC:
+ ldr r0, _0223A784 ; =0x0000304C
+ add r1, r4, r0
+ ldr r0, [r4, #0x64]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ pop {r4, pc}
+_0223A6B8:
+ ldr r0, _0223A788 ; =0x00002148
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A6BE:
+ ldr r1, _0223A78C ; =0x00002410
+ add r0, r0, r1
+ pop {r4, pc}
+_0223A6C4:
+ add r4, #0x7c
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A6CA:
+ ldr r0, _0223A790 ; =0x00002160
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A6D0:
+ ldr r0, _0223A794 ; =0x00002164
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A6D6:
+ ldr r1, _0223A798 ; =0x00002418
+ add r0, r0, r1
+ pop {r4, pc}
+_0223A6DC:
+ mov r0, #0x85
+ lsl r0, r0, #6
+ add r0, r4, r0
+ pop {r4, pc}
+_0223A6E4:
+ add r4, #0xec
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A6EA:
+ add r0, #0x44
+ pop {r4, pc}
+_0223A6EE:
+ add r4, #0x68
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A6F4:
+ add r4, #0x70
+ add r0, r4, #0
+ pop {r4, pc}
+_0223A6FA:
+ mov r0, #0xb6
+ lsl r0, r0, #2
+ add r2, r4, r0
+ ldr r1, [r4, #0x6c]
+ mov r0, #0x1c
+ mul r0, r1
+ add r0, r2, r0
+ pop {r4, pc}
+_0223A70A:
+ mov r0, #0x21
+ lsl r0, r0, #4
+ add r1, r4, r0
+ sub r0, #0xf8
+ ldr r0, [r4, r0]
+ lsl r0, r0, #6
+ add r0, r1, r0
+ pop {r4, pc}
+_0223A71A:
+ mov r0, #0x21
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, [r4, #0x6c]
+ lsl r0, r0, #6
+ add r0, r1, r0
+ pop {r4, pc}
+_0223A728:
+ mov r0, #0xbb
+ lsl r0, r0, #2
+ add r2, r4, r0
+ ldr r1, [r4, #0x64]
+ mov r0, #0x1c
+ mul r0, r1
+ add r0, r2, r0
+ pop {r4, pc}
+_0223A738:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_0223A73C: .word 0x0000214C
+_0223A740: .word 0x00002170
+_0223A744: .word 0x00002174
+_0223A748: .word 0x00002178
+_0223A74C: .word 0x0000213C
+_0223A750: .word 0x00002158
+_0223A754: .word 0x0000216C
+_0223A758: .word 0x00002144
+_0223A75C: .word 0x000030E4
+_0223A760: .word 0x00003044
+_0223A764: .word 0x00002154
+_0223A768: .word 0x0000215C
+_0223A76C: .word 0x0000241C
+_0223A770: .word 0x00003104
+_0223A774: .word 0x00002150
+_0223A778: .word 0x00003114
+_0223A77C: .word 0x00003118
+_0223A780: .word 0x00002408
+_0223A784: .word 0x0000304C
+_0223A788: .word 0x00002148
+_0223A78C: .word 0x00002410
+_0223A790: .word 0x00002160
+_0223A794: .word 0x00002164
+_0223A798: .word 0x00002418
+
+ thumb_func_start MOD11_0223A79C
+MOD11_0223A79C: ; 0x0223A79C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xd4
+ add r4, r1, #0
+ str r0, [sp, #0x14]
+ ldr r0, [r4]
+ bl MOD11_022300C4
+ str r0, [sp, #0x3c]
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ str r0, [sp, #0x38]
+ ldr r0, [r4, #4]
+ mov r7, #0
+ ldr r0, [r0, #0x74]
+ ldr r5, [r4, #0x48]
+ asr r1, r0, #1
+ mov r0, #1
+ and r0, r1
+ str r0, [sp, #0x40]
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD11_0222FFC8
+ cmp r5, r0
+ bge _0223A81E
+ ldr r0, [sp, #0x40]
+ lsl r0, r0, #2
+ str r0, [sp, #0x24]
+_0223A7D6:
+ ldr r0, [r4]
+ mov r1, #0
+ add r2, r5, #0
+ bl MOD11_02230014
+ mov r1, #6
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #1
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0x32
+ beq _0223A81E
+ add r0, r5, #0
+ bl MaskOfFlagNo
+ add r2, r0, #0
+ ldr r1, [r4, #4]
+ ldr r0, [sp, #0x24]
+ add r0, r0, r1
+ add r0, #0xa4
+ ldr r0, [r0]
+ tst r0, r2
+ bne _0223A81E
+ ldr r0, [r4]
+ mov r1, #0
+ add r5, r5, #1
+ bl MOD11_0222FFC8
+ cmp r5, r0
+ blt _0223A7D6
+_0223A81E:
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD11_0222FFC8
+ cmp r5, r0
+ bne _0223A830
+ mov r0, #0x26
+ str r0, [r4, #0x28]
+ b _0223A84C
+_0223A830:
+ ldr r0, [sp, #0x38]
+ mov r2, #2
+ tst r0, r2
+ beq _0223A84C
+ ldr r0, [sp, #0x38]
+ mov r1, #0x40
+ tst r0, r1
+ bne _0223A84C
+ ldr r1, [r4, #4]
+ ldr r0, _0223AB98 ; =0x0000219E
+ ldrb r0, [r1, r0]
+ cmp r0, r5
+ bne _0223A84C
+ add r7, r2, #0
+_0223A84C:
+ ldr r0, [r4, #0x28]
+ cmp r0, #0x26
+ bls _0223A856
+ bl _0223B2AE
+_0223A856:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223A862: ; jump table
+ .short _0223A8B0 - _0223A862 - 2 ; case 0
+ .short _0223AA74 - _0223A862 - 2 ; case 1
+ .short _0223AA8C - _0223A862 - 2 ; case 2
+ .short _0223AA9E - _0223A862 - 2 ; case 3
+ .short _0223AACA - _0223A862 - 2 ; case 4
+ .short _0223AADE - _0223A862 - 2 ; case 5
+ .short _0223AB16 - _0223A862 - 2 ; case 6
+ .short _0223AC16 - _0223A862 - 2 ; case 7
+ .short _0223AC32 - _0223A862 - 2 ; case 8
+ .short _0223AC50 - _0223A862 - 2 ; case 9
+ .short _0223ACF8 - _0223A862 - 2 ; case 10
+ .short _0223AE3C - _0223A862 - 2 ; case 11
+ .short _0223ADBA - _0223A862 - 2 ; case 12
+ .short _0223AE3C - _0223A862 - 2 ; case 13
+ .short _0223AE5E - _0223A862 - 2 ; case 14
+ .short _0223AEC0 - _0223A862 - 2 ; case 15
+ .short _0223AF42 - _0223A862 - 2 ; case 16
+ .short _0223AFDA - _0223A862 - 2 ; case 17
+ .short _0223AFAC - _0223A862 - 2 ; case 18
+ .short _0223AFDA - _0223A862 - 2 ; case 19
+ .short _0223AFF2 - _0223A862 - 2 ; case 20
+ .short _0223B012 - _0223A862 - 2 ; case 21
+ .short _0223B05A - _0223A862 - 2 ; case 22
+ .short _0223B07E - _0223A862 - 2 ; case 23
+ .short _0223B16A - _0223A862 - 2 ; case 24
+ .short _0223AFDA - _0223A862 - 2 ; case 25
+ .short _0223B192 - _0223A862 - 2 ; case 26
+ .short _0223AFDA - _0223A862 - 2 ; case 27
+ .short _0223B1CE - _0223A862 - 2 ; case 28
+ .short _0223AFDA - _0223A862 - 2 ; case 29
+ .short _0223B1F6 - _0223A862 - 2 ; case 30
+ .short _0223B0B6 - _0223A862 - 2 ; case 31
+ .short _0223AFDA - _0223A862 - 2 ; case 32
+ .short _0223B0E0 - _0223A862 - 2 ; case 33
+ .short _0223B102 - _0223A862 - 2 ; case 34
+ .short _0223B152 - _0223A862 - 2 ; case 35
+ .short _0223B25C - _0223A862 - 2 ; case 36
+ .short _0223B272 - _0223A862 - 2 ; case 37
+ .short _0223B298 - _0223A862 - 2 ; case 38
+_0223A8B0:
+ add r0, r6, #0
+ mov r1, #6
+ mov r2, #0
+ bl GetMonData
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #1
+ mov r2, #5
+ bl FUN_0206E7B8
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x38]
+ mov r1, #1
+ and r0, r1
+ str r0, [sp, #0x1c]
+ bne _0223A90E
+ ldr r1, [r4, #4]
+ ldr r0, _0223AB9C ; =0x00002E4C
+ ldr r2, _0223ABA0 ; =0x00002FCC
+ ldr r0, [r1, r0]
+ ldr r1, [r1, r2]
+ add r0, r0, r1
+ bne _0223A90E
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0223A90E
+ ldr r1, [r4, #4]
+ ldr r0, _0223ABA4 ; =0x00003144
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _0223A90E
+ ldr r0, _0223ABA8 ; =0x00000467
+ bl FUN_0200521C
+ ldr r1, [r4, #4]
+ ldr r0, _0223ABA4 ; =0x00003144
+ mov r2, #1
+ str r2, [r1, r0]
+ ldr r0, [r4]
+ mov r1, #2
+ bl MOD11_02231484
+_0223A90E:
+ mov r0, #0
+ str r0, [sp, #0x34]
+ mov r1, #1
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ ldr r2, [sp, #0x34]
+ add r0, r6, #0
+ mov r1, #0xa2
+ bl GetMonData
+ cmp r0, #0
+ bne _0223A928
+ b _0223AA34
+_0223A928:
+ add r0, r6, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0x64
+ beq _0223AA34
+ ldr r0, [r4, #4]
+ str r0, [sp, #0x20]
+ add r0, r5, #0
+ bl MaskOfFlagNo
+ ldr r1, [sp, #0x40]
+ lsl r2, r1, #2
+ ldr r1, [sp, #0x20]
+ add r1, r1, r2
+ add r1, #0xa4
+ ldr r1, [r1]
+ tst r0, r1
+ beq _0223A958
+ ldr r0, [sp, #0x20]
+ add r0, #0x9c
+ ldr r0, [r0]
+ str r0, [sp, #0x34]
+_0223A958:
+ ldr r0, [sp, #0x18]
+ cmp r0, #0x32
+ bne _0223A96C
+ ldr r0, [sp, #0x20]
+ add r0, #0xa0
+ str r0, [sp, #0x20]
+ ldr r1, [r0]
+ ldr r0, [sp, #0x34]
+ add r0, r0, r1
+ str r0, [sp, #0x34]
+_0223A96C:
+ ldr r0, [sp, #0x18]
+ cmp r0, #0x41
+ bne _0223A980
+ ldr r1, [sp, #0x34]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ bl _u32_div_f
+ str r0, [sp, #0x34]
+_0223A980:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ beq _0223A994
+ ldr r1, [sp, #0x34]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ bl _u32_div_f
+ str r0, [sp, #0x34]
+_0223A994:
+ ldr r0, [r4]
+ add r1, r6, #0
+ bl MOD11_0224AE14
+ cmp r0, #0
+ bne _0223A9D6
+ add r0, r6, #0
+ mov r1, #0xc
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _0223ABAC ; =0x020ECAC4
+ ldrb r1, [r1]
+ cmp r1, r0
+ beq _0223A9C2
+ ldr r1, [sp, #0x34]
+ mov r0, #0xaa
+ mul r0, r1
+ mov r1, #0x64
+ bl _u32_div_f
+ str r0, [sp, #0x34]
+ b _0223A9D0
+_0223A9C2:
+ ldr r1, [sp, #0x34]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ bl _u32_div_f
+ str r0, [sp, #0x34]
+_0223A9D0:
+ mov r1, #2
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+_0223A9D6:
+ add r0, r6, #0
+ mov r1, #8
+ mov r2, #0
+ bl GetMonData
+ str r0, [sp, #0x48]
+ add r0, r6, #0
+ bl GetMonBaseExperienceAtCurrentLevel
+ ldr r1, [sp, #0x48]
+ sub r0, r1, r0
+ str r0, [r4, #0x3c]
+ ldr r1, [sp, #0x48]
+ ldr r0, [sp, #0x34]
+ add r2, r1, r0
+ str r2, [sp, #0x48]
+ ldr r3, [r4, #4]
+ ldr r0, _0223ABB0 ; =0x0000219C
+ add r1, r3, r7
+ ldrb r0, [r1, r0]
+ cmp r5, r0
+ bne _0223AA0C
+ mov r0, #0xc0
+ mul r0, r7
+ add r1, r3, r0
+ ldr r0, _0223ABB4 ; =0x00002DA4
+ str r2, [r1, r0]
+_0223AA0C:
+ add r0, r6, #0
+ mov r1, #8
+ add r2, sp, #0x48
+ bl SetMonData
+ ldr r6, [r4, #4]
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD11_0222FF88
+ ldr r3, [r6, #0x74]
+ mov r2, #0xc0
+ mul r2, r3
+ add r3, r6, r2
+ mov r2, #0xb5
+ lsl r2, r2, #6
+ ldrh r2, [r3, r2]
+ add r1, r5, #0
+ bl MOD11_0223B2DC
+_0223AA34:
+ ldr r0, [sp, #0x34]
+ cmp r0, #0
+ beq _0223AA6C
+ mov r1, #0x11
+ add r0, sp, #0xb0
+ strb r1, [r0, #1]
+ lsl r0, r5, #8
+ orr r0, r7
+ str r0, [sp, #0xb4]
+ ldr r0, [sp, #0x34]
+ str r0, [sp, #0xb8]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #0x14
+ str r0, [r4, #0x34]
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AA6C:
+ mov r0, #0x25
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AA74:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0223AB20
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AA8C:
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ bne _0223AB20
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AA9E:
+ ldr r1, [r4, #4]
+ ldr r0, _0223ABB0 ; =0x0000219C
+ add r2, r1, r7
+ ldrb r0, [r2, r0]
+ cmp r5, r0
+ bne _0223AAC2
+ ldr r0, [r4]
+ ldr r3, [r4, #0x3c]
+ add r2, r7, #0
+ bl MOD11_02255B68
+ mov r0, #0
+ str r0, [r4, #0x3c]
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AAC2:
+ mov r0, #5
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AACA:
+ ldr r0, [r4, #4]
+ bl MOD11_02243388
+ cmp r0, #0
+ beq _0223AB20
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AADE:
+ add r0, r6, #0
+ bl FUN_020690E8
+ cmp r0, #0
+ beq _0223AB0E
+ ldr r1, [r4, #4]
+ ldr r0, _0223ABB0 ; =0x0000219C
+ add r2, r1, r7
+ ldrb r0, [r2, r0]
+ cmp r5, r0
+ bne _0223AB06
+ ldr r0, [r4]
+ add r2, r7, #0
+ mov r3, #8
+ bl MOD11_02255E4C
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD11_02255FA0
+_0223AB06:
+ mov r0, #6
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AB0E:
+ mov r0, #0x25
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AB16:
+ ldr r0, [r4, #4]
+ bl MOD11_02243388
+ cmp r0, #0
+ bne _0223AB22
+_0223AB20:
+ b _0223B2AE
+_0223AB22:
+ ldr r3, _0223ABB8 ; =0x0225DCC0
+ add r2, sp, #0x98
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ add r0, r6, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl GetMonData
+ str r0, [sp, #0x30]
+ mov r0, #5
+ mov r1, #0x18
+ bl AllocFromHeap
+ mov r1, #0x5f
+ ldr r2, [r4, #4]
+ lsl r1, r1, #2
+ str r0, [r2, r1]
+ ldr r0, [r4, #4]
+ ldr r0, [r0, r1]
+ mov r1, #0
+ str r0, [sp, #0x2c]
+ str r1, [sp, #0x4c]
+_0223AB58:
+ lsl r2, r1, #2
+ add r1, sp, #0x98
+ ldr r1, [r1, r2]
+ add r0, r6, #0
+ mov r2, #0
+ bl GetMonData
+ ldr r1, [sp, #0x4c]
+ lsl r2, r1, #2
+ ldr r1, [sp, #0x2c]
+ str r0, [r1, r2]
+ ldr r0, [sp, #0x4c]
+ add r1, r0, #1
+ str r1, [sp, #0x4c]
+ cmp r1, #6
+ blt _0223AB58
+ ldr r0, [r4]
+ bl MOD11_022302B0
+ add r2, r0, #0
+ lsl r2, r2, #0x10
+ add r0, r6, #0
+ mov r1, #0
+ lsr r2, r2, #0x10
+ bl MonApplyFriendshipMod
+ add r0, r6, #0
+ bl CalcMonStats
+ ldr r1, [r4, #4]
+ ldr r0, _0223ABB0 ; =0x0000219C
+ b _0223ABBC
+ .align 2, 0
+_0223AB98: .word 0x0000219E
+_0223AB9C: .word 0x00002E4C
+_0223ABA0: .word 0x00002FCC
+_0223ABA4: .word 0x00003144
+_0223ABA8: .word 0x00000467
+_0223ABAC: .word 0x020ECAC4
+_0223ABB0: .word 0x0000219C
+_0223ABB4: .word 0x00002DA4
+_0223ABB8: .word 0x0225DCC0
+_0223ABBC:
+ add r2, r1, r7
+ ldrb r3, [r2, r0]
+ cmp r5, r3
+ bne _0223ABCC
+ ldr r0, [r4]
+ add r2, r7, #0
+ bl MOD11_02243054
+_0223ABCC:
+ add r0, r5, #0
+ bl MaskOfFlagNo
+ ldr r1, [r4, #4]
+ ldr r2, _0223AF48 ; =0x00003109
+ ldrb r3, [r1, r2]
+ orr r0, r3
+ strb r0, [r1, r2]
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r7, #0
+ bl MOD11_02256020
+ mov r1, #3
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #0x11
+ strb r1, [r0, #1]
+ lsl r0, r5, #8
+ orr r0, r7
+ str r0, [sp, #0xb4]
+ ldr r0, [sp, #0x30]
+ str r0, [sp, #0xb8]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #7
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AC16:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _0223AC26
+ b _0223B2AE
+_0223AC26:
+ mov r0, #8
+ str r0, [r4, #0x28]
+ mov r0, #0
+ add sp, #0xd4
+ str r0, [r4, #0x38]
+ pop {r4, r5, r6, r7, pc}
+_0223AC32:
+ ldr r0, [r4, #4]
+ add r1, r0, r7
+ ldr r0, _0223AF4C ; =0x0000219C
+ ldrb r0, [r1, r0]
+ cmp r5, r0
+ beq _0223AC48
+ ldr r0, [r4]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0223CDC4
+_0223AC48:
+ mov r0, #9
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AC50:
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ add r6, r0, #0
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD11_0222FF6C
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ add r7, r0, #0
+ ldr r0, _0223AF50 ; =0x04000008
+ mov r2, #3
+ ldrh r1, [r0]
+ bic r1, r2
+ mov r2, #2
+ orr r1, r2
+ strh r1, [r0]
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_020178BC
+ mov r0, #2
+ mov r1, #0
+ bl FUN_020178BC
+ ldr r0, [r4]
+ mov r1, #2
+ bl MOD11_02231564
+ mov r0, #5
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #2
+ mov r2, #1
+ mov r3, #0
+ bl FUN_0200CABC
+ bl FUN_0200CAFC
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x80
+ str r0, [sp, #8]
+ add r0, r7, #0
+ mov r1, #0x26
+ mov r3, #5
+ bl FUN_020030E8
+ mov r0, #7
+ str r0, [sp]
+ mov r0, #0xe
+ str r0, [sp, #4]
+ mov r0, #0xc
+ str r0, [sp, #8]
+ mov r0, #0xb
+ str r0, [sp, #0xc]
+ mov r0, #0xa
+ str r0, [sp, #0x10]
+ add r0, r6, #0
+ add r1, r5, #0
+ mov r2, #2
+ mov r3, #0x11
+ bl FUN_02019064
+ add r0, r5, #0
+ mov r1, #0xff
+ bl FUN_02019620
+ add r0, r5, #0
+ mov r1, #0
+ mov r2, #1
+ mov r3, #8
+ bl FUN_0200CCA4
+ mov r0, #0xa
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223ACF8:
+ ldr r3, _0223AF54 ; =0x0225DCD8
+ add r2, sp, #0x80
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r3, _0223AF58 ; =0x0225DC60
+ add r2, sp, #0x68
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD11_0222FF6C
+ add r7, r0, #0
+ mov r0, #0x5f
+ ldr r1, [r4, #4]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ str r0, [sp, #0x28]
+ mov r0, #0
+ str r0, [sp, #0x4c]
+_0223AD30:
+ ldr r2, _0223AF5C ; =0x000003B3
+ add r1, sp, #0xb0
+ strh r2, [r1, #2]
+ mov r2, #4
+ strb r2, [r1, #1]
+ lsl r2, r0, #2
+ add r1, sp, #0x80
+ ldr r1, [r1, r2]
+ lsl r0, r0, #4
+ str r1, [sp, #0xb4]
+ mov r1, #0
+ str r1, [sp]
+ str r0, [sp, #4]
+ add r0, r1, #0
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ ldr r2, [sp, #0x3c]
+ add r1, r7, #0
+ add r3, sp, #0xb0
+ bl MOD11_022317E0
+ mov r1, #0xed
+ ldr r5, [sp, #0x4c]
+ lsl r1, r1, #2
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #7
+ strb r1, [r0, #1]
+ lsl r2, r5, #2
+ add r1, sp, #0x68
+ ldr r1, [r1, r2]
+ add r0, r6, #0
+ mov r2, #0
+ bl GetMonData
+ ldr r1, [sp, #0x28]
+ lsl r2, r5, #2
+ ldr r1, [r1, r2]
+ ldr r2, [sp, #0x3c]
+ sub r0, r0, r1
+ str r0, [sp, #0xb4]
+ mov r0, #2
+ str r0, [sp, #0xcc]
+ mov r0, #0x50
+ str r0, [sp]
+ lsl r0, r5, #4
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0x1c
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r1, r7, #0
+ add r3, sp, #0xb0
+ bl MOD11_022317E0
+ ldr r0, [sp, #0x4c]
+ add r0, r0, #1
+ str r0, [sp, #0x4c]
+ cmp r0, #6
+ blt _0223AD30
+ mov r0, #0xb
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223ADBA:
+ ldr r3, _0223AF60 ; =0x0225DC90
+ add r2, sp, #0x50
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD11_0222FF6C
+ mov r1, #0x24
+ str r1, [sp]
+ mov r1, #0x60
+ str r1, [sp, #4]
+ mov r1, #0xf
+ mov r2, #0x50
+ mov r3, #0
+ add r7, r0, #0
+ bl FUN_020196F4
+ mov r1, #0
+ str r1, [sp, #0x4c]
+ add r5, sp, #0xb0
+_0223ADEC:
+ ldr r0, _0223AF64 ; =0x000003B5
+ lsl r2, r1, #2
+ add r1, sp, #0x50
+ strh r0, [r5, #2]
+ mov r0, #7
+ ldr r1, [r1, r2]
+ strb r0, [r5, #1]
+ add r0, r6, #0
+ mov r2, #0
+ bl GetMonData
+ str r0, [sp, #0xb4]
+ mov r0, #3
+ str r0, [sp, #0xcc]
+ mov r0, #0x48
+ str r0, [sp]
+ ldr r0, [sp, #0x4c]
+ ldr r2, [sp, #0x3c]
+ lsl r0, r0, #4
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0x24
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r1, r7, #0
+ add r3, r5, #0
+ bl MOD11_022317E0
+ ldr r0, [sp, #0x4c]
+ add r1, r0, #1
+ str r1, [sp, #0x4c]
+ cmp r1, #6
+ blt _0223ADEC
+ mov r0, #0xd
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AE3C:
+ ldr r0, _0223AF68 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ ldr r0, _0223AF6C ; =0x00000C03
+ tst r0, r1
+ bne _0223AE4E
+ bl FUN_02020AA4
+ cmp r0, #0
+ beq _0223AEDC
+_0223AE4E:
+ ldr r0, _0223AF70 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AE5E:
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD11_0222FF6C
+ add r6, r0, #0
+ mov r1, #0
+ bl FUN_0200CCF8
+ add r0, r6, #0
+ bl FUN_02019178
+ ldr r1, _0223AF50 ; =0x04000008
+ mov r0, #3
+ ldrh r2, [r1]
+ bic r2, r0
+ mov r0, #1
+ orr r2, r0
+ strh r2, [r1]
+ mov r1, #0
+ bl FUN_020178BC
+ mov r0, #2
+ mov r1, #1
+ bl FUN_020178BC
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD11_02231564
+ ldr r0, [r4, #4]
+ add r1, r0, r7
+ ldr r0, _0223AF4C ; =0x0000219C
+ ldrb r0, [r1, r0]
+ cmp r5, r0
+ beq _0223AEAC
+ ldr r0, [r4]
+ add r1, r4, #0
+ bl MOD11_0223D068
+_0223AEAC:
+ mov r0, #0x5f
+ ldr r1, [r4, #4]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FreeToHeap
+ mov r0, #0xf
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AEC0:
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x38
+ add r2, sp, #0x44
+ bl FUN_02069818
+ cmp r0, #0
+ beq _0223AEE6
+ ldr r1, _0223AF74 ; =0x0000FFFE
+ cmp r0, r1
+ bne _0223AEDE
+_0223AEDC:
+ b _0223B2AE
+_0223AEDE:
+ add r1, r1, #1
+ cmp r0, r1
+ beq _0223AEEE
+ b _0223AEFC
+_0223AEE6:
+ mov r0, #3
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AEEE:
+ add r0, sp, #0x44
+ ldrh r0, [r0]
+ add sp, #0xd4
+ str r0, [r4, #0x40]
+ mov r0, #0x10
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AEFC:
+ ldr r1, [r4, #4]
+ ldr r0, _0223AF4C ; =0x0000219C
+ add r2, r1, r7
+ ldrb r3, [r2, r0]
+ cmp r5, r3
+ bne _0223AF10
+ ldr r0, [r4]
+ add r2, r7, #0
+ bl MOD11_02243054
+_0223AF10:
+ mov r1, #4
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #0xa
+ strb r1, [r0, #1]
+ lsl r0, r5, #8
+ orr r0, r7
+ str r0, [sp, #0xb4]
+ add r0, sp, #0x44
+ ldrh r0, [r0]
+ str r0, [sp, #0xb8]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #0x24
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AF42:
+ ldr r1, _0223AF78 ; =0x0000049A
+ b _0223AF7C
+ nop
+_0223AF48: .word 0x00003109
+_0223AF4C: .word 0x0000219C
+_0223AF50: .word 0x04000008
+_0223AF54: .word 0x0225DCD8
+_0223AF58: .word 0x0225DC60
+_0223AF5C: .word 0x000003B3
+_0223AF60: .word 0x0225DC90
+_0223AF64: .word 0x000003B5
+_0223AF68: .word 0x021C48B8
+_0223AF6C: .word 0x00000C03
+_0223AF70: .word 0x000005DC
+_0223AF74: .word 0x0000FFFE
+_0223AF78: .word 0x0000049A
+_0223AF7C:
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #0xa
+ strb r1, [r0, #1]
+ lsl r0, r5, #8
+ orr r0, r7
+ str r0, [sp, #0xb4]
+ ldr r0, [r4, #0x40]
+ str r0, [sp, #0xb8]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AFAC:
+ ldr r1, _0223B2B4 ; =0x0000049B
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #2
+ strb r1, [r0, #1]
+ lsl r0, r5, #8
+ orr r0, r7
+ str r0, [sp, #0xb4]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AFDA:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0223B01E
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223AFF2:
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ ldr r3, _0223B2B8 ; =0x0000049C
+ add r2, r7, #0
+ bl MOD11_02255980
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B012:
+ ldr r0, [r4, #4]
+ add r1, r7, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ bne _0223B020
+_0223B01E:
+ b _0223B2AE
+_0223B020:
+ ldr r0, [r4, #4]
+ add r1, r7, #0
+ bl MOD11_0224AD90
+ cmp r0, #0xff
+ bne _0223B034
+ mov r0, #0x1f
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B034:
+ ldr r1, _0223B2BC ; =0x0000049F
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #0
+ strb r1, [r0, #1]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #0x16
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B05A:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0223B160
+ ldr r0, [r4]
+ ldr r2, [r4, #0x40]
+ add r1, r7, #0
+ add r3, r5, #0
+ bl MOD11_022562B0
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B07E:
+ ldr r0, [r4, #4]
+ add r1, r7, #0
+ bl MOD11_0224AD90
+ cmp r0, #0xff
+ bne _0223B092
+ mov r0, #0x1f
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B092:
+ ldr r0, [r4, #4]
+ add r1, r7, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ beq _0223B160
+ ldr r1, [r4, #4]
+ lsl r0, r7, #8
+ add r1, r1, r0
+ mov r0, #0x23
+ lsl r0, r0, #8
+ ldrb r0, [r1, r0]
+ add sp, #0xd4
+ sub r0, r0, #1
+ str r0, [r4, #0x44]
+ mov r0, #0x18
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B0B6:
+ mov r1, #0x4a
+ lsl r1, r1, #4
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #0
+ strb r1, [r0, #1]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B0E0:
+ mov r0, #2
+ str r0, [sp]
+ ldr r0, [r4, #0x40]
+ ldr r3, _0223B2C0 ; =0x000004A1
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r7, #0
+ bl MOD11_02255980
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B102:
+ ldr r0, [r4, #4]
+ add r1, r7, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ beq _0223B160
+ ldr r0, [r4, #4]
+ add r1, r7, #0
+ bl MOD11_0224AD90
+ cmp r0, #0xff
+ bne _0223B122
+ mov r0, #0x10
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B122:
+ ldr r1, _0223B2C4 ; =0x000004A4
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #0xa
+ strb r1, [r0, #1]
+ lsl r0, r5, #8
+ orr r0, r7
+ str r0, [sp, #0xb4]
+ ldr r0, [r4, #0x40]
+ str r0, [sp, #0xb8]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #0x23
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B152:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _0223B162
+_0223B160:
+ b _0223B2AE
+_0223B162:
+ mov r0, #0xf
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B16A:
+ ldr r1, _0223B2C8 ; =0x000004A5
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #0
+ strb r1, [r0, #1]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B192:
+ ldr r1, _0223B2CC ; =0x000004A6
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #0xa
+ strb r1, [r0, #1]
+ lsl r0, r5, #8
+ orr r0, r7
+ str r0, [sp, #0xb4]
+ ldr r1, [r4, #0x44]
+ add r0, r6, #0
+ add r1, #0x36
+ mov r2, #0
+ bl GetMonData
+ str r0, [sp, #0xb8]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B1CE:
+ ldr r1, _0223B2D0 ; =0x000004A7
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #0
+ strb r1, [r0, #1]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #0x28]
+ add sp, #0xd4
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B1F6:
+ ldr r1, _0223B2D4 ; =0x000004A8
+ add r0, sp, #0xb0
+ strh r1, [r0, #2]
+ mov r1, #0xa
+ strb r1, [r0, #1]
+ lsl r0, r5, #8
+ orr r0, r7
+ str r0, [sp, #0xb4]
+ ldr r0, [r4, #0x40]
+ str r0, [sp, #0xb8]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x3c]
+ add r2, sp, #0xb0
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #0
+ str r0, [sp, #0x4c]
+ ldr r1, [r4, #0x44]
+ add r0, r6, #0
+ add r1, #0x3e
+ add r2, sp, #0x4c
+ bl SetMonData
+ ldr r1, [r4, #0x40]
+ ldr r2, [r4, #0x44]
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x18
+ add r0, r6, #0
+ lsr r1, r1, #0x10
+ lsr r2, r2, #0x18
+ bl FUN_020697CC
+ ldr r1, [r4, #4]
+ ldr r0, _0223B2D8 ; =0x0000219C
+ add r2, r1, r7
+ ldrb r3, [r2, r0]
+ cmp r5, r3
+ bne _0223B254
+ ldr r0, [r4]
+ add r2, r7, #0
+ bl MOD11_02243054
+_0223B254:
+ mov r0, #0x24
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B25C:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0223B2AE
+ mov r0, #0xf
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B272:
+ add r0, r5, #0
+ bl MaskOfFlagNo
+ ldr r1, [sp, #0x40]
+ ldr r2, [r4, #4]
+ mov r3, #0
+ mvn r3, r3
+ add r2, #0xa4
+ lsl r1, r1, #2
+ ldr r6, [r2, r1]
+ eor r0, r3
+ and r0, r6
+ str r0, [r2, r1]
+ add r0, r5, #1
+ str r0, [r4, #0x48]
+ mov r0, #0
+ add sp, #0xd4
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, r7, pc}
+_0223B298:
+ mov r0, #0x5e
+ ldr r1, [r4, #4]
+ mov r2, #0
+ lsl r0, r0, #2
+ str r2, [r1, r0]
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [sp, #0x14]
+ bl FUN_0200CAB4
+_0223B2AE:
+ add sp, #0xd4
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0223B2B4: .word 0x0000049B
+_0223B2B8: .word 0x0000049C
+_0223B2BC: .word 0x0000049F
+_0223B2C0: .word 0x000004A1
+_0223B2C4: .word 0x000004A4
+_0223B2C8: .word 0x000004A5
+_0223B2CC: .word 0x000004A6
+_0223B2D0: .word 0x000004A7
+_0223B2D4: .word 0x000004A8
+_0223B2D8: .word 0x0000219C
+
+ thumb_func_start MOD11_0223B2DC
+MOD11_0223B2DC: ; 0x0223B2DC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ str r0, [sp]
+ str r1, [sp, #4]
+ add r0, r2, #0
+ mov r1, #5
+ mov r4, #0
+ bl AllocAndLoadMonPersonal
+ add r7, r0, #0
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ bl GetPartyMonByIndex
+ mov r1, #6
+ add r2, r4, #0
+ str r0, [sp, #0x14]
+ bl GetMonData
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ add r0, r6, #0
+ mov r1, #1
+ mov r2, #5
+ bl FUN_0206E7B8
+ add r5, r0, #0
+ add r0, r6, #0
+ mov r1, #2
+ mov r2, #5
+ bl FUN_0206E7B8
+ add r6, r0, #0
+ add r0, r4, #0
+ str r0, [sp, #0x18]
+ str r0, [sp, #0x1c]
+ add r0, sp, #0x20
+ str r0, [sp, #0xc]
+_0223B328:
+ ldr r1, [sp, #0x1c]
+ ldr r0, [sp, #0x14]
+ add r1, #0xd
+ mov r2, #0
+ bl GetMonData
+ ldr r1, [sp, #0xc]
+ strb r0, [r1]
+ add r0, r1, #0
+ ldrb r1, [r0]
+ ldr r0, [sp, #0x18]
+ add r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0xc]
+ add r0, r0, #1
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x1c]
+ add r0, r0, #1
+ str r0, [sp, #0x1c]
+ cmp r0, #6
+ blt _0223B328
+ mov r0, #0
+ str r0, [sp, #8]
+ add r0, sp, #0x20
+ str r0, [sp, #0x10]
+_0223B35E:
+ ldr r1, [sp, #0x18]
+ ldr r0, _0223B498 ; =0x000001FE
+ cmp r1, r0
+ blo _0223B368
+ b _0223B48C
+_0223B368:
+ ldr r0, [sp, #8]
+ cmp r0, #5
+ bhi _0223B414
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223B37A: ; jump table
+ .short _0223B386 - _0223B37A - 2 ; case 0
+ .short _0223B39E - _0223B37A - 2 ; case 1
+ .short _0223B3B6 - _0223B37A - 2 ; case 2
+ .short _0223B3CE - _0223B37A - 2 ; case 3
+ .short _0223B3E6 - _0223B37A - 2 ; case 4
+ .short _0223B3FE - _0223B37A - 2 ; case 5
+_0223B386:
+ add r0, r7, #0
+ mov r1, #0xa
+ bl GetPersonalAttr
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ cmp r5, #0x79
+ bne _0223B414
+ add r0, r4, r6
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ b _0223B414
+_0223B39E:
+ add r0, r7, #0
+ mov r1, #0xb
+ bl GetPersonalAttr
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ cmp r5, #0x74
+ bne _0223B414
+ add r0, r4, r6
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ b _0223B414
+_0223B3B6:
+ add r0, r7, #0
+ mov r1, #0xc
+ bl GetPersonalAttr
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ cmp r5, #0x75
+ bne _0223B414
+ add r0, r4, r6
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ b _0223B414
+_0223B3CE:
+ add r0, r7, #0
+ mov r1, #0xd
+ bl GetPersonalAttr
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ cmp r5, #0x78
+ bne _0223B414
+ add r0, r4, r6
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ b _0223B414
+_0223B3E6:
+ add r0, r7, #0
+ mov r1, #0xe
+ bl GetPersonalAttr
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ cmp r5, #0x76
+ bne _0223B414
+ add r0, r4, r6
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ b _0223B414
+_0223B3FE:
+ add r0, r7, #0
+ mov r1, #0xf
+ bl GetPersonalAttr
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+ cmp r5, #0x77
+ bne _0223B414
+ add r0, r4, r6
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+_0223B414:
+ ldr r0, [sp, #4]
+ bl MaskOfFlagNo
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ ldr r0, [sp]
+ lsr r1, r1, #0x18
+ bl FUN_02069CF4
+ cmp r0, #0
+ beq _0223B42E
+ lsl r0, r4, #0x11
+ asr r4, r0, #0x10
+_0223B42E:
+ cmp r5, #0x31
+ bne _0223B436
+ lsl r0, r4, #0x11
+ asr r4, r0, #0x10
+_0223B436:
+ ldr r0, [sp, #0x18]
+ ldr r1, _0223B498 ; =0x000001FE
+ add r0, r0, r4
+ cmp r0, r1
+ ble _0223B448
+ sub r0, r0, r1
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+_0223B448:
+ ldr r0, [sp, #0x10]
+ ldrb r0, [r0]
+ add r0, r0, r4
+ cmp r0, #0xff
+ ble _0223B45A
+ sub r0, #0xff
+ sub r0, r4, r0
+ lsl r0, r0, #0x10
+ asr r4, r0, #0x10
+_0223B45A:
+ ldr r0, [sp, #0x10]
+ ldr r2, [sp, #0x10]
+ ldrb r0, [r0]
+ add r1, r0, r4
+ ldr r0, [sp, #0x10]
+ strb r1, [r0]
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #8]
+ add r0, r0, r4
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ add r1, #0xd
+ bl SetMonData
+ ldr r0, [sp, #0x10]
+ add r0, r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+ cmp r0, #6
+ bge _0223B48C
+ b _0223B35E
+_0223B48C:
+ add r0, r7, #0
+ bl FreeMonPersonal
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223B498: .word 0x000001FE
+
+ thumb_func_start MOD11_0223B49C
+MOD11_0223B49C: ; 0x0223B49C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x158
+ add r4, r1, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ bl MOD11_022300C4
+ str r0, [sp, #0x20]
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230068
+ mov r7, #1
+ str r0, [sp, #0x24]
+ add r0, r7, #0
+ ldr r6, [r4, #4]
+ bl MaskOfFlagNo
+ ldr r1, _0223B7F0 ; =0x00003108
+ ldrb r1, [r6, r1]
+ tst r0, r1
+ beq _0223B4D0
+ mov r7, #3
+_0223B4D0:
+ ldr r0, [r4, #0x28]
+ cmp r0, #0x20
+ bls _0223B4DA
+ bl _0223BFD0
+_0223B4DA:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223B4E6: ; jump table
+ .short _0223B528 - _0223B4E6 - 2 ; case 0
+ .short _0223B5E8 - _0223B4E6 - 2 ; case 1
+ .short _0223B634 - _0223B4E6 - 2 ; case 2
+ .short _0223B662 - _0223B4E6 - 2 ; case 3
+ .short _0223B68C - _0223B4E6 - 2 ; case 4
+ .short _0223B6A0 - _0223B4E6 - 2 ; case 5
+ .short _0223B6D4 - _0223B4E6 - 2 ; case 6
+ .short _0223B6F6 - _0223B4E6 - 2 ; case 7
+ .short _0223B716 - _0223B4E6 - 2 ; case 8
+ .short _0223B75C - _0223B4E6 - 2 ; case 9
+ .short _0223B77A - _0223B4E6 - 2 ; case 10
+ .short _0223B8BC - _0223B4E6 - 2 ; case 11
+ .short _0223B90A - _0223B4E6 - 2 ; case 12
+ .short _0223B990 - _0223B4E6 - 2 ; case 13
+ .short _0223B9E4 - _0223B4E6 - 2 ; case 14
+ .short _0223BA12 - _0223B4E6 - 2 ; case 15
+ .short _0223BA42 - _0223B4E6 - 2 ; case 16
+ .short _0223BAC4 - _0223B4E6 - 2 ; case 17
+ .short _0223BAEA - _0223B4E6 - 2 ; case 18
+ .short _0223BB12 - _0223B4E6 - 2 ; case 19
+ .short _0223BB6A - _0223B4E6 - 2 ; case 20
+ .short _0223BC38 - _0223B4E6 - 2 ; case 21
+ .short _0223BC7E - _0223B4E6 - 2 ; case 22
+ .short _0223BC7E - _0223B4E6 - 2 ; case 23
+ .short _0223BDD8 - _0223B4E6 - 2 ; case 24
+ .short _0223BE26 - _0223B4E6 - 2 ; case 25
+ .short _0223BE62 - _0223B4E6 - 2 ; case 26
+ .short _0223BEA6 - _0223B4E6 - 2 ; case 27
+ .short _0223BED8 - _0223B4E6 - 2 ; case 28
+ .short _0223BEF0 - _0223B4E6 - 2 ; case 29
+ .short _0223BF06 - _0223B4E6 - 2 ; case 30
+ .short _0223BF5E - _0223B4E6 - 2 ; case 31
+ .short _0223BF8E - _0223B4E6 - 2 ; case 32
+_0223B528:
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ bne _0223B5A4
+ mov r0, #3
+ str r0, [sp, #0x138]
+ mov r0, #5
+ str r0, [sp, #0x134]
+ ldr r0, _0223B7F4 ; =0x00004E20
+ add r0, r7, r0
+ str r0, [sp, #0x13c]
+ ldr r0, [r4, #0x2c]
+ str r0, [sp, #0x140]
+ ldr r0, [r4]
+ bl MOD11_02230078
+ str r0, [sp, #0x14c]
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ str r0, [sp, #0x150]
+ mov r0, #1
+ str r0, [sp, #0x144]
+ mov r0, #0
+ str r0, [sp, #0x148]
+ ldr r0, [r4]
+ str r0, [sp, #0x154]
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _0223B578
+ cmp r7, #1
+ bne _0223B572
+ mov r0, #0x10
+ str r0, [sp, #0x130]
+ b _0223B57C
+_0223B572:
+ mov r0, #0x11
+ str r0, [sp, #0x130]
+ b _0223B57C
+_0223B578:
+ mov r0, #0xf
+ str r0, [sp, #0x130]
+_0223B57C:
+ add r0, sp, #0x130
+ bl MOD08_02229918
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [r4, #0x28]
+ ldr r0, _0223B7F8 ; =0x0000070A
+ bl FUN_020054C8
+ ldr r2, [r4]
+ ldr r0, _0223B7FC ; =0x0000241E
+ ldrh r1, [r2, r0]
+ add r1, r1, #1
+ strh r1, [r2, r0]
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD08_02228AB8
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B5A4:
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD11_0222FF7C
+ add r5, r0, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229A80
+ cmp r0, #4
+ beq _0223B678
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ add r5, #0x88
+ str r0, [r4, #8]
+ mov r0, #0
+ str r0, [r5]
+ mov r0, #1
+ str r0, [r4, #0x28]
+ ldr r0, _0223B7F8 ; =0x0000070A
+ bl FUN_020054C8
+ ldr r2, [r4]
+ ldr r0, _0223B7FC ; =0x0000241E
+ ldrh r1, [r2, r0]
+ add r1, r1, #1
+ strh r1, [r2, r0]
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD08_02228AB8
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B5E8:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD08_02228AC0
+ cmp r0, #0
+ bne _0223B678
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #1
+ tst r0, r1
+ beq _0223B618
+ ldr r0, _0223B800 ; =0x000005E6
+ mov r1, #0x75
+ bl FUN_020054A8
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD08_02228AB8
+ mov r0, #0x19
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B618:
+ ldr r0, _0223B804 ; =0x00000708
+ mov r1, #0x75
+ bl FUN_020054A8
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl MOD08_02228AB8
+ mov r0, #2
+ str r0, [r4, #0x28]
+ mov r0, #0x17
+ add sp, #0x158
+ str r0, [r4, #0x34]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B634:
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ bne _0223B678
+ ldr r0, [r4]
+ ldr r2, [r4, #0x2c]
+ add r1, r7, #0
+ bl MOD11_02254EA8
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ bl MOD11_0223BFD8
+ str r0, [r4, #0x38]
+ cmp r0, #4
+ bge _0223B656
+ b _0223B658
+_0223B656:
+ mov r0, #3
+_0223B658:
+ str r0, [r4, #0x3c]
+ mov r0, #3
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B662:
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl MOD08_02228AC0
+ cmp r0, #0
+ bne _0223B678
+ ldr r0, [r4, #4]
+ bl MOD11_02243388
+ cmp r0, #0
+ bne _0223B67C
+_0223B678:
+ bl _0223BFD0
+_0223B67C:
+ ldr r0, [r4, #8]
+ mov r1, #3
+ bl MOD08_02228AB8
+ mov r0, #4
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B68C:
+ ldr r0, [r4, #8]
+ mov r1, #3
+ bl MOD08_02228AC0
+ cmp r0, #0
+ bne _0223B78E
+ mov r0, #5
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B6A0:
+ ldr r0, [r4, #0x3c]
+ cmp r0, #0
+ bne _0223B6C0
+ ldr r0, [r4, #0x38]
+ cmp r0, #4
+ bne _0223B6B8
+ mov r0, #7
+ str r0, [r4, #0x28]
+ mov r0, #0xc
+ add sp, #0x158
+ str r0, [r4, #0x34]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B6B8:
+ mov r0, #0x1c
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B6C0:
+ ldr r0, [r4, #8]
+ mov r1, #4
+ bl MOD08_02228AB8
+ mov r0, #6
+ str r0, [r4, #0x28]
+ mov r0, #0xc
+ add sp, #0x158
+ str r0, [r4, #0x34]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B6D4:
+ ldr r0, [r4, #8]
+ mov r1, #4
+ bl MOD08_02228AC0
+ cmp r0, #0
+ bne _0223B78E
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ bne _0223B78E
+ ldr r0, [r4, #0x3c]
+ add sp, #0x158
+ sub r0, r0, #1
+ str r0, [r4, #0x3c]
+ mov r0, #5
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B6F6:
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ bne _0223B78E
+ ldr r0, [r4, #8]
+ mov r1, #6
+ bl MOD08_02228AB8
+ ldr r0, _0223B808 ; =0x00000709
+ mov r1, #0x75
+ bl FUN_020054A8
+ mov r0, #8
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B716:
+ ldr r0, [r4, #8]
+ mov r1, #6
+ bl MOD08_02228AC0
+ cmp r0, #0
+ bne _0223B78E
+ ldr r1, _0223B80C ; =0x00000363
+ add r0, sp, #0x10c
+ strh r1, [r0, #2]
+ mov r1, #0x82
+ strb r1, [r0, #1]
+ str r7, [sp, #0x110]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x20]
+ add r2, sp, #0x10c
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #0x14
+ str r0, [r4, #0x34]
+ mov r0, #9
+ str r0, [r4, #0x28]
+ ldr r0, _0223B810 ; =0x00000467
+ bl FUN_0200521C
+ ldr r0, [r4]
+ mov r1, #2
+ bl MOD11_02231484
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B75C:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0223B78E
+ mov r0, #0xa
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #8]
+ mov r1, #7
+ bl MOD08_02228AB8
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B77A:
+ ldr r0, [r4, #8]
+ mov r1, #7
+ bl MOD08_02228AC0
+ cmp r0, #0
+ bne _0223B78E
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ beq _0223B792
+_0223B78E:
+ bl _0223BFD0
+_0223B792:
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD11_022314D4
+ ldr r2, [r4, #4]
+ ldr r0, [r4]
+ add r3, r2, r7
+ ldr r2, _0223B814 ; =0x0000219C
+ add r1, r7, #0
+ ldrb r2, [r3, r2]
+ bl MOD11_02230014
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #6
+ lsl r1, r1, #8
+ tst r0, r1
+ beq _0223B83C
+ ldr r2, [r4, #4]
+ ldr r0, [r4]
+ add r3, r2, r7
+ ldr r2, _0223B814 ; =0x0000219C
+ add r1, r7, #0
+ ldrb r2, [r3, r2]
+ bl MOD11_02230014
+ add r2, r0, #0
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ bl MOD11_0224AD38
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #1
+ bl FUN_020143A8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r2, _0223B818 ; =0x0000FFFF
+ b _0223B81C
+ nop
+_0223B7F0: .word 0x00003108
+_0223B7F4: .word 0x00004E20
+_0223B7F8: .word 0x0000070A
+_0223B7FC: .word 0x0000241E
+_0223B800: .word 0x000005E6
+_0223B804: .word 0x00000708
+_0223B808: .word 0x00000709
+_0223B80C: .word 0x00000363
+_0223B810: .word 0x00000467
+_0223B814: .word 0x0000219C
+_0223B818: .word 0x0000FFFF
+_0223B81C:
+ add r0, r5, #0
+ mov r1, #0xf
+ mov r3, #1
+ bl FUN_02003210
+ mov r1, #0
+ ldr r0, [sp, #0x24]
+ mov r2, #0x10
+ add r3, r1, #0
+ str r1, [sp]
+ bl FUN_02007E98
+ mov r0, #0x20
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B83C:
+ add r0, r6, #0
+ mov r1, #5
+ mov r2, #0
+ bl GetMonData
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02231668
+ cmp r0, #0
+ beq _0223B88A
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #1
+ bl FUN_020143A8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r2, _0223BBD4 ; =0x0000FFFF
+ add r0, r5, #0
+ mov r1, #5
+ mov r3, #1
+ bl FUN_02003210
+ mov r1, #0
+ ldr r0, [sp, #0x24]
+ mov r2, #0x10
+ add r3, r1, #0
+ str r1, [sp]
+ bl FUN_02007E98
+ mov r0, #0x10
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B88A:
+ ldr r1, _0223BBD8 ; =0x00000367
+ add r0, sp, #0xe8
+ strh r1, [r0, #2]
+ mov r1, #0x82
+ strb r1, [r0, #1]
+ str r7, [sp, #0xec]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x20]
+ add r2, sp, #0xe8
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #0x14
+ str r0, [r4, #0x34]
+ mov r0, #0xb
+ str r0, [r4, #0x28]
+ ldr r0, [r4]
+ bl MOD11_0223129C
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B8BC:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0223B914
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ bne _0223B914
+ mov r0, #0xc
+ str r0, [r4, #0x28]
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r2, _0223BBD4 ; =0x0000FFFF
+ add r0, r5, #0
+ mov r1, #5
+ mov r3, #1
+ bl FUN_02003210
+ mov r1, #0
+ ldr r0, [sp, #0x24]
+ str r1, [sp]
+ mov r2, #0x10
+ add r3, r1, #0
+ bl FUN_02007E98
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #1
+ bl FUN_020143A8
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B90A:
+ add r0, r5, #0
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _0223B916
+_0223B914:
+ b _0223BFD0
+_0223B916:
+ ldr r0, [r4, #8]
+ bl MOD08_02229A2C
+ ldr r0, [sp, #0x24]
+ bl FUN_02007540
+ ldr r0, [r4]
+ bl MOD11_0222D944
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD11_02230088
+ mov r1, #0
+ bl MOD11_022583C8
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD11_02230088
+ mov r1, #0
+ bl MOD11_022583C8
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ str r0, [sp, #0xd0]
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ str r0, [sp, #0xd4]
+ ldr r0, [sp, #0x24]
+ add r1, r7, #0
+ str r0, [sp, #0xd8]
+ mov r0, #5
+ str r0, [sp, #0xdc]
+ ldr r2, [r4, #4]
+ ldr r0, [r4]
+ add r3, r2, r7
+ ldr r2, _0223BBDC ; =0x0000219C
+ ldrb r2, [r3, r2]
+ bl MOD11_02230014
+ str r0, [sp, #0xe0]
+ ldr r0, [r4]
+ bl MOD11_022300D0
+ bl FUN_0206BB34
+ str r0, [sp, #0xe4]
+ bl FUN_0201D658
+ str r0, [r4, #0x54]
+ add r0, sp, #0xd0
+ bl MOD16_021EEF0C
+ str r0, [r4, #0x50]
+ mov r0, #0xd
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B990:
+ ldr r0, [r4, #0x50]
+ bl MOD16_021EEF84
+ cmp r0, #0
+ beq _0223BA4C
+ ldr r0, _0223BBE0 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _0223B9AA
+ mov r0, #0xe
+ str r0, [r4, #0x28]
+ b _0223B9BC
+_0223B9AA:
+ bl FUN_02020AA4
+ cmp r0, #0
+ beq _0223B9BC
+ ldr r0, _0223BBE4 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0xe
+ str r0, [r4, #0x28]
+_0223B9BC:
+ ldr r0, [r4, #0x28]
+ cmp r0, #0xe
+ bne _0223BA4C
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r2, _0223BBD4 ; =0x0000FFFF
+ add r0, r5, #0
+ mov r1, #5
+ mov r3, #1
+ bl FUN_02003210
+ ldr r0, [r4, #0x50]
+ mov r1, #0
+ bl MOD05_021EEF9C
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+_0223B9E4:
+ ldr r0, [r4, #0x50]
+ bl MOD16_021EEF98
+ add r5, r0, #0
+ mov r1, #0
+ mov r2, #4
+ bl FUN_020079E0
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_0200782C
+ cmp r0, #0x80
+ blt _0223BA4C
+ add r0, r5, #0
+ mov r1, #0
+ mov r2, #0x80
+ bl FUN_02007558
+ mov r0, #0xf
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BA12:
+ ldr r0, [r4, #0x50]
+ bl MOD05_021EEF68
+ ldr r0, [r4, #0x54]
+ bl FUN_0201D674
+ ldr r0, [r4]
+ bl MOD11_0222D980
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r2, _0223BBD4 ; =0x0000FFFF
+ add r0, r5, #0
+ mov r1, #5
+ mov r3, #1
+ bl FUN_02003210
+ mov r0, #0x11
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BA42:
+ add r0, r5, #0
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _0223BA4E
+_0223BA4C:
+ b _0223BFD0
+_0223BA4E:
+ ldr r2, [r4, #4]
+ ldr r0, [r4]
+ add r3, r2, r7
+ ldr r2, _0223BBDC ; =0x0000219C
+ add r1, r7, #0
+ ldrb r2, [r3, r2]
+ bl MOD11_02230014
+ add r6, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD08_02229A2C
+ ldr r0, [sp, #0x24]
+ bl FUN_02007540
+ ldr r0, [r4]
+ bl MOD11_0222D944
+ ldr r0, [r4]
+ bl MOD11_0222D980
+ add r0, sp, #0xc0
+ add r1, r6, #0
+ mov r2, #2
+ bl FUN_02068B68
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x24]
+ add r1, sp, #0xc0
+ mov r2, #0x80
+ mov r3, #0x48
+ bl FUN_020073A0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r2, _0223BBD4 ; =0x0000FFFF
+ add r0, r5, #0
+ mov r1, #5
+ mov r3, #1
+ bl FUN_02003210
+ mov r2, #0
+ ldr r0, [sp, #0x24]
+ mov r1, #0x10
+ add r3, r2, #0
+ str r2, [sp]
+ bl FUN_02007E98
+ mov r0, #0x11
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BAC4:
+ add r0, r5, #0
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0223BB74
+ mov r0, #0x12
+ str r0, [r4, #0x28]
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #0
+ bl FUN_020143A8
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_020038F0
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BAEA:
+ ldr r1, [r4, #4]
+ mov r0, #5
+ str r0, [sp]
+ mov r2, #0
+ ldr r0, _0223BBDC ; =0x0000219C
+ str r2, [sp, #4]
+ add r3, r1, r7
+ ldrb r0, [r3, r0]
+ mov r3, #0xd9
+ lsl r3, r3, #2
+ orr r0, r7
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ bl MOD11_02255980
+ ldr r0, [r4, #0x28]
+ add sp, #0x158
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BB12:
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ beq _0223BB74
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl MOD11_0224AD90
+ cmp r0, #0xff
+ bne _0223BB32
+ mov r0, #0x16
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BB32:
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #1
+ bl FUN_020143A8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r2, _0223BBD4 ; =0x0000FFFF
+ add r0, r5, #0
+ mov r1, #0xf
+ mov r3, #1
+ bl FUN_02003210
+ mov r1, #0
+ ldr r0, [sp, #0x24]
+ mov r2, #0x10
+ add r3, r1, #0
+ str r1, [sp]
+ bl FUN_02007E98
+ mov r0, #0x14
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BB6A:
+ add r0, r5, #0
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _0223BB76
+_0223BB74:
+ b _0223BFD0
+_0223BB76:
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ ldr r2, [r4, #4]
+ ldr r0, [r4]
+ add r3, r2, r7
+ ldr r2, _0223BBDC ; =0x0000219C
+ add r1, r7, #0
+ ldrb r2, [r3, r2]
+ bl MOD11_02230014
+ mov r1, #5
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230E18
+ str r0, [sp]
+ mov r0, #5
+ mov r1, #1
+ add r2, r5, #0
+ mov r3, #0xa
+ bl FUN_02077A84
+ add r5, r0, #0
+ str r5, [r4, #0x54]
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD11_0222FFC8
+ cmp r0, #6
+ bge _0223BBCA
+ mov r0, #0
+ b _0223BBEE
+_0223BBCA:
+ ldr r0, [r4]
+ bl MOD11_02231280
+ ldr r1, _0223BBE8 ; =0x00000496
+ b _0223BBEC
+ .align 2, 0
+_0223BBD4: .word 0x0000FFFF
+_0223BBD8: .word 0x00000367
+_0223BBDC: .word 0x0000219C
+_0223BBE0: .word 0x021C48B8
+_0223BBE4: .word 0x000005DC
+_0223BBE8: .word 0x00000496
+_0223BBEC:
+ add r0, r0, r1
+_0223BBEE:
+ str r0, [r5, #0x44]
+ add r0, r6, #0
+ mov r1, #0x70
+ mov r2, #0
+ bl GetMonData
+ str r0, [r5, #8]
+ ldr r0, [r4]
+ bl MOD11_02230290
+ str r0, [r5, #0x48]
+ add r0, r6, #0
+ mov r1, #0x6f
+ mov r2, #0
+ bl GetMonData
+ str r0, [r5, #0x10]
+ ldr r0, _0223BF18 ; =0x020FA5FC
+ add r1, r5, #0
+ mov r2, #5
+ bl FUN_02006234
+ str r0, [r4, #0x50]
+ mov r0, #0x15
+ str r0, [r4, #0x28]
+ ldr r0, [r4]
+ bl MOD11_02231438
+ ldr r0, [r4]
+ bl MOD11_0222D840
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD11_02231338
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BC38:
+ ldr r0, [r4, #0x50]
+ bl FUN_02006290
+ cmp r0, #0
+ beq _0223BC88
+ ldr r2, [r4, #4]
+ ldr r5, [r4, #0x54]
+ add r3, r2, r7
+ ldr r2, _0223BF1C ; =0x0000219C
+ ldr r0, [r4]
+ ldrb r2, [r3, r2]
+ add r1, r7, #0
+ bl MOD11_02230014
+ ldr r1, [r5, #0x14]
+ cmp r1, #0
+ bne _0223BC62
+ ldr r2, [r5, #0x18]
+ mov r1, #0x77
+ bl SetMonData
+_0223BC62:
+ add r0, r5, #0
+ bl FUN_02077AC4
+ ldr r0, [r4, #0x50]
+ bl FUN_02006260
+ ldr r0, [r4]
+ mov r1, #2
+ bl MOD11_02231338
+ mov r0, #0x17
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BC7E:
+ add r0, r5, #0
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _0223BC8A
+_0223BC88:
+ b _0223BFD0
+_0223BC8A:
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD11_0222FF88
+ ldr r2, [r4, #4]
+ str r0, [sp, #0x28]
+ add r3, r2, r7
+ ldr r2, _0223BF1C ; =0x0000219C
+ ldr r0, [r4]
+ ldrb r2, [r3, r2]
+ add r1, r7, #0
+ bl MOD11_02230014
+ add r6, r0, #0
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD11_02231628
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r6, #0
+ bl MOD11_0224AD38
+ ldr r0, [r4]
+ add r1, r6, #0
+ bl MOD11_02230F88
+ ldr r0, [r4]
+ add r1, r6, #0
+ bl MOD11_02230FA8
+ mov r1, #0
+ ldr r0, [r4]
+ add r2, r1, #0
+ mov r3, #9
+ bl MOD11_022564A8
+ ldr r0, [sp, #0x28]
+ add r1, r6, #0
+ bl FUN_0206B900
+ cmp r0, #1
+ bne _0223BD1E
+ ldr r0, [r4, #0x28]
+ cmp r0, #0x16
+ bne _0223BD16
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #1
+ bl FUN_020143A8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r2, _0223BF20 ; =0x0000FFFF
+ add r0, r5, #0
+ mov r1, #0xf
+ mov r3, #1
+ bl FUN_02003210
+ mov r1, #0
+ ldr r0, [sp, #0x24]
+ mov r2, #0x10
+ add r3, r1, #0
+ str r1, [sp]
+ bl FUN_02007E98
+_0223BD16:
+ mov r0, #0x20
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BD1E:
+ ldr r0, [r4]
+ bl MOD11_02230290
+ str r0, [sp, #0x1c]
+ bl FUN_0206B330
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x1c]
+ bl FUN_0206B334
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x14]
+ bl FUN_0206B428
+ mov r5, #0
+_0223BD3E:
+ add r1, r5, #0
+ add r0, r6, #0
+ add r1, #0x42
+ mov r2, #0
+ bl GetMonData
+ add r1, r5, #0
+ str r0, [sp, #0x2c]
+ add r0, r6, #0
+ add r1, #0x3a
+ add r2, sp, #0x2c
+ bl SetMonData
+ add r5, r5, #1
+ cmp r5, #4
+ blt _0223BD3E
+ add r0, r6, #0
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x14]
+ bl FUN_0206B244
+ ldr r0, [r4, #0x28]
+ cmp r0, #0x16
+ bne _0223BDD0
+ ldr r1, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ cmp r1, r0
+ ldr r0, [r4]
+ bne _0223BD96
+ bl MOD11_02231280
+ ldr r1, _0223BF24 ; =0x00000496
+ add r1, r0, r1
+ add r0, sp, #0x9c
+ strh r1, [r0, #2]
+ mov r1, #0x93
+ strb r1, [r0, #1]
+ ldr r0, [sp, #0x18]
+ str r7, [sp, #0xa0]
+ str r0, [sp, #0xa4]
+ b _0223BDB0
+_0223BD96:
+ bl MOD11_02231280
+ ldr r1, _0223BF28 ; =0x00000498
+ add r1, r0, r1
+ add r0, sp, #0x9c
+ strh r1, [r0, #2]
+ mov r1, #0xaf
+ strb r1, [r0, #1]
+ ldr r0, [sp, #0x18]
+ str r7, [sp, #0xa0]
+ str r0, [sp, #0xa4]
+ ldr r0, [sp, #0x14]
+ str r0, [sp, #0xa8]
+_0223BDB0:
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x20]
+ add r2, sp, #0x9c
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #0x14
+ str r0, [r4, #0x34]
+ mov r0, #0x18
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BDD0:
+ mov r0, #0x20
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BDD8:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0223BEBC
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ bne _0223BEBC
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #1
+ bl FUN_020143A8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r2, _0223BF20 ; =0x0000FFFF
+ add r0, r5, #0
+ mov r1, #0xf
+ mov r3, #1
+ bl FUN_02003210
+ mov r1, #0
+ ldr r0, [sp, #0x24]
+ mov r2, #0x10
+ add r3, r1, #0
+ str r1, [sp]
+ bl FUN_02007E98
+ mov r0, #0x20
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BE26:
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD08_02228AC0
+ cmp r0, #0
+ bne _0223BEBC
+ ldr r0, [r4, #8]
+ bl MOD08_02229A2C
+ ldr r1, _0223BF2C ; =0x0000035B
+ add r0, sp, #0x78
+ strh r1, [r0, #2]
+ mov r1, #0
+ strb r1, [r0, #1]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x20]
+ add r2, sp, #0x78
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #0x14
+ str r0, [r4, #0x34]
+ mov r0, #0x1a
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BE62:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0223BEBC
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ bne _0223BEBC
+ mov r1, #0xd7
+ lsl r1, r1, #2
+ add r0, sp, #0x2c
+ strh r1, [r0, #0x2a]
+ mov r1, #0
+ add r0, sp, #0x54
+ strb r1, [r0, #1]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x20]
+ add r2, sp, #0x54
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #0x14
+ str r0, [r4, #0x34]
+ mov r0, #0x1b
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BEA6:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0223BEBC
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ beq _0223BEBE
+_0223BEBC:
+ b _0223BFD0
+_0223BEBE:
+ mov r0, #0x5e
+ ldr r1, [r4, #4]
+ mov r2, #0
+ lsl r0, r0, #2
+ str r2, [r1, r0]
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [sp, #0x10]
+ bl FUN_0200CAB4
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BED8:
+ ldr r0, [r4]
+ ldr r2, [r4, #0x2c]
+ add r1, r7, #0
+ mov r3, #1
+ bl MOD11_02254B40
+ mov r0, #0x1d
+ str r0, [r4, #0x28]
+ mov r0, #2
+ add sp, #0x158
+ str r0, [r4, #0x34]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BEF0:
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ bne _0223BFD0
+ ldr r0, [r4, #8]
+ bl MOD08_02229A2C
+ mov r0, #0x1e
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BF06:
+ add r0, r6, #0
+ bl MOD11_02243388
+ cmp r0, #0
+ beq _0223BFD0
+ ldr r1, [r4, #0x38]
+ ldr r0, _0223BF30 ; =0x0000035F
+ b _0223BF34
+ nop
+_0223BF18: .word 0x020FA5FC
+_0223BF1C: .word 0x0000219C
+_0223BF20: .word 0x0000FFFF
+_0223BF24: .word 0x00000496
+_0223BF28: .word 0x00000498
+_0223BF2C: .word 0x0000035B
+_0223BF30: .word 0x0000035F
+_0223BF34:
+ add r1, r1, r0
+ add r0, sp, #0x2c
+ strh r1, [r0, #6]
+ mov r1, #0
+ strb r1, [r0, #5]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ ldr r1, [sp, #0x20]
+ add r2, sp, #0x30
+ bl MOD11_0223178C
+ str r0, [r4, #0x30]
+ mov r0, #0x14
+ str r0, [r4, #0x34]
+ mov r0, #0x1f
+ add sp, #0x158
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BF5E:
+ ldr r0, [r4, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0223BFD0
+ ldr r0, [r4, #0x34]
+ sub r0, r0, #1
+ str r0, [r4, #0x34]
+ bne _0223BFD0
+ mov r0, #0x5e
+ ldr r1, [r4, #4]
+ mov r2, #0
+ lsl r0, r0, #2
+ str r2, [r1, r0]
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [sp, #0x10]
+ bl FUN_0200CAB4
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BF8E:
+ add r0, r5, #0
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0223BFD0
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #6
+ lsl r1, r1, #8
+ tst r0, r1
+ beq _0223BFB2
+ ldr r0, [r4, #8]
+ bl MOD08_02229A2C
+ ldr r0, [sp, #0x24]
+ bl FUN_02007540
+_0223BFB2:
+ ldr r1, [r4]
+ ldr r0, _0223BFD4 ; =0x0000241C
+ mov r2, #4
+ strb r2, [r1, r0]
+ mov r0, #0x5e
+ ldr r1, [r4, #4]
+ mov r2, #0
+ lsl r0, r0, #2
+ str r2, [r1, r0]
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [sp, #0x10]
+ bl FUN_0200CAB4
+_0223BFD0:
+ add sp, #0x158
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223BFD4: .word 0x0000241C
+
+ thumb_func_start MOD11_0223BFD8
+MOD11_0223BFD8: ; 0x0223BFD8
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r4, r1, #0
+ bl MOD11_0222FF74
+ mov r1, #6
+ lsl r1, r1, #8
+ tst r0, r1
+ beq _0223BFEE
+ mov r0, #4
+ pop {r3, r4, r5, r6, r7, pc}
+_0223BFEE:
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ ldr r1, [r4, #0x6c]
+ cmp r0, #5
+ bne _0223C026
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldrh r0, [r1, r0]
+ mov r1, #8
+ bl GetMonBaseStat
+ ldr r1, _0223C200 ; =0x0000311C
+ ldr r2, _0223C204 ; =0x0225DCF0
+ ldrb r1, [r4, r1]
+ lsl r1, r1, #1
+ ldrb r2, [r2, r1]
+ mul r2, r0
+ add r0, r2, #0
+ ldr r2, _0223C208 ; =0x0225DCF1
+ ldrb r1, [r2, r1]
+ bl _u32_div_f
+ str r0, [sp]
+ b _0223C03A
+_0223C026:
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldrh r0, [r1, r0]
+ mov r1, #8
+ bl GetMonBaseStat
+ str r0, [sp]
+_0223C03A:
+ ldr r1, [r4, #0x6c]
+ add r0, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ mov r5, #0xa
+ bl MOD11_02243420
+ add r7, r0, #0
+ ldr r1, [r4, #0x6c]
+ add r0, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ add r1, r0, #0
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ ldr r2, [r4, r0]
+ cmp r2, #5
+ ble _0223C128
+ cmp r2, #0xf
+ bhi _0223C12E
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0223C072: ; jump table
+ .short _0223C12E - _0223C072 - 2 ; case 0
+ .short _0223C12E - _0223C072 - 2 ; case 1
+ .short _0223C12E - _0223C072 - 2 ; case 2
+ .short _0223C12E - _0223C072 - 2 ; case 3
+ .short _0223C12E - _0223C072 - 2 ; case 4
+ .short _0223C12E - _0223C072 - 2 ; case 5
+ .short _0223C092 - _0223C072 - 2 ; case 6
+ .short _0223C0A6 - _0223C072 - 2 ; case 7
+ .short _0223C0B4 - _0223C072 - 2 ; case 8
+ .short _0223C0D0 - _0223C072 - 2 ; case 9
+ .short _0223C0EC - _0223C072 - 2 ; case 10
+ .short _0223C12E - _0223C072 - 2 ; case 11
+ .short _0223C12E - _0223C072 - 2 ; case 12
+ .short _0223C0FA - _0223C072 - 2 ; case 13
+ .short _0223C12E - _0223C072 - 2 ; case 14
+ .short _0223C11C - _0223C072 - 2 ; case 15
+_0223C092:
+ cmp r7, #0xb
+ beq _0223C0A2
+ cmp r1, #0xb
+ beq _0223C0A2
+ cmp r7, #6
+ beq _0223C0A2
+ cmp r1, #6
+ bne _0223C12E
+_0223C0A2:
+ mov r5, #0x1e
+ b _0223C12E
+_0223C0A6:
+ add r0, r6, #0
+ bl MOD11_02230294
+ cmp r0, #7
+ bne _0223C12E
+ mov r5, #0x23
+ b _0223C12E
+_0223C0B4:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0223C20C ; =0x00002D74
+ ldrb r1, [r1, r0]
+ cmp r1, #0x28
+ bhs _0223C12E
+ mov r0, #0x28
+ sub r5, r0, r1
+ cmp r5, #0xa
+ bhs _0223C12E
+ mov r5, #0xa
+ b _0223C12E
+_0223C0D0:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ mov r1, #0xb5
+ lsl r1, r1, #6
+ ldrh r1, [r2, r1]
+ add r0, r6, #0
+ bl MOD11_02231668
+ cmp r0, #1
+ bne _0223C12E
+ mov r5, #0x1e
+ b _0223C12E
+_0223C0EC:
+ add r0, #0x28
+ ldr r5, [r4, r0]
+ add r5, #0xa
+ cmp r5, #0x28
+ bls _0223C12E
+ mov r5, #0x28
+ b _0223C12E
+_0223C0FA:
+ add r0, r6, #0
+ bl MOD11_02230C5C
+ cmp r0, #3
+ beq _0223C118
+ add r0, r6, #0
+ bl MOD11_02230C5C
+ cmp r0, #4
+ beq _0223C118
+ add r0, r6, #0
+ bl MOD11_02230294
+ cmp r0, #5
+ bne _0223C12E
+_0223C118:
+ mov r5, #0x23
+ b _0223C12E
+_0223C11C:
+ add r0, #0x28
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bge _0223C12E
+ mov r5, #0x28
+ b _0223C12E
+_0223C128:
+ ldr r0, _0223C210 ; =0x0225DC28
+ sub r1, r2, #2
+ ldrb r5, [r0, r1]
+_0223C12E:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ add r6, r1, #0
+ mul r6, r0
+ ldr r0, _0223C214 ; =0x00002D90
+ add r1, r4, r6
+ ldr r1, [r1, r0]
+ lsl r0, r1, #1
+ add r7, r1, r0
+ ldr r1, [sp]
+ add r0, r1, #0
+ mul r0, r5
+ mov r1, #0xa
+ bl _u32_div_f
+ ldr r1, _0223C218 ; =0x00002D8C
+ add r2, r4, r6
+ ldr r1, [r2, r1]
+ lsl r1, r1, #1
+ sub r1, r7, r1
+ mul r1, r0
+ add r0, r1, #0
+ add r1, r7, #0
+ bl _u32_div_f
+ add r1, r0, #0
+ ldr r0, _0223C21C ; =0x00002DAC
+ add r2, r4, r6
+ ldr r2, [r2, r0]
+ mov r0, #0x27
+ tst r0, r2
+ beq _0223C170
+ lsl r1, r1, #1
+_0223C170:
+ mov r0, #0xd8
+ tst r0, r2
+ beq _0223C182
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ bl _u32_div_f
+ add r1, r0, #0
+_0223C182:
+ cmp r1, #0xff
+ blo _0223C18A
+ mov r5, #4
+ b _0223C1FA
+_0223C18A:
+ ldr r0, _0223C220 ; =0x040002B0
+ mov r2, #0
+ strh r2, [r0]
+ mov r0, #0xff
+ lsl r0, r0, #0x10
+ bl _u32_div_f
+ ldr r1, _0223C224 ; =0x040002B8
+ add r2, r1, #0
+ str r0, [r1]
+ sub r2, #8
+ lsr r0, r1, #0xb
+_0223C1A2:
+ ldrh r1, [r2]
+ tst r1, r0
+ bne _0223C1A2
+ ldr r3, _0223C220 ; =0x040002B0
+ lsr r0, r3, #0xb
+_0223C1AC:
+ ldrh r1, [r3]
+ tst r1, r0
+ bne _0223C1AC
+ ldr r2, _0223C228 ; =0x040002B4
+ mov r0, #0
+ ldr r1, [r2]
+ strh r0, [r3]
+ mov r0, #2
+ str r1, [r2, #4]
+ sub r2, r2, #4
+ lsl r0, r0, #0xe
+_0223C1C2:
+ ldrh r1, [r2]
+ tst r1, r0
+ bne _0223C1C2
+ ldr r2, _0223C220 ; =0x040002B0
+ lsr r0, r2, #0xb
+_0223C1CC:
+ ldrh r1, [r2]
+ tst r1, r0
+ bne _0223C1CC
+ ldr r1, _0223C228 ; =0x040002B4
+ ldr r0, _0223C22C ; =0x000FFFF0
+ ldr r1, [r1]
+ bl _u32_div_f
+ add r6, r0, #0
+ mov r5, #0
+_0223C1E0:
+ bl LCRandom
+ cmp r0, r6
+ bhs _0223C1EE
+ add r5, r5, #1
+ cmp r5, #4
+ blt _0223C1E0
+_0223C1EE:
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _0223C1FA
+ mov r5, #4
+_0223C1FA:
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223C200: .word 0x0000311C
+_0223C204: .word 0x0225DCF0
+_0223C208: .word 0x0225DCF1
+_0223C20C: .word 0x00002D74
+_0223C210: .word 0x0225DC28
+_0223C214: .word 0x00002D90
+_0223C218: .word 0x00002D8C
+_0223C21C: .word 0x00002DAC
+_0223C220: .word 0x040002B0
+_0223C224: .word 0x040002B8
+_0223C228: .word 0x040002B4
+_0223C22C: .word 0x000FFFF0
+
+ thumb_func_start MOD11_0223C230
+MOD11_0223C230: ; 0x0223C230
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ add r6, r1, #0
+ cmp r2, #0x16
+ bgt _0223C27A
+ cmp r2, #0
+ blt _0223C280
+ add r1, r2, r2
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223C24C: ; jump table
+ .short _0223C280 - _0223C24C - 2 ; case 0
+ .short _0223C280 - _0223C24C - 2 ; case 1
+ .short _0223C284 - _0223C24C - 2 ; case 2
+ .short _0223C320 - _0223C24C - 2 ; case 3
+ .short _0223C29C - _0223C24C - 2 ; case 4
+ .short _0223C288 - _0223C24C - 2 ; case 5
+ .short _0223C28C - _0223C24C - 2 ; case 6
+ .short _0223C290 - _0223C24C - 2 ; case 7
+ .short _0223C296 - _0223C24C - 2 ; case 8
+ .short _0223C346 - _0223C24C - 2 ; case 9
+ .short _0223C2C2 - _0223C24C - 2 ; case 10
+ .short _0223C36E - _0223C24C - 2 ; case 11
+ .short _0223C2EA - _0223C24C - 2 ; case 12
+ .short _0223C280 - _0223C24C - 2 ; case 13
+ .short _0223C3A4 - _0223C24C - 2 ; case 14
+ .short _0223C3AC - _0223C24C - 2 ; case 15
+ .short _0223C3B4 - _0223C24C - 2 ; case 16
+ .short _0223C3F0 - _0223C24C - 2 ; case 17
+ .short _0223C280 - _0223C24C - 2 ; case 18
+ .short _0223C42C - _0223C24C - 2 ; case 19
+ .short _0223C456 - _0223C24C - 2 ; case 20
+ .short _0223C480 - _0223C24C - 2 ; case 21
+ .short _0223C28C - _0223C24C - 2 ; case 22
+_0223C27A:
+ cmp r2, #0xff
+ bne _0223C280
+ b _0223C480
+_0223C280:
+ ldr r5, [r6, #0x64]
+ b _0223C486
+_0223C284:
+ ldr r5, [r6, #0x6c]
+ b _0223C486
+_0223C288:
+ ldr r5, [r6, #0x74]
+ b _0223C486
+_0223C28C:
+ ldr r5, [r6, #0x78]
+ b _0223C486
+_0223C290:
+ add r6, #0x94
+ ldr r5, [r6]
+ b _0223C486
+_0223C296:
+ add r6, #0x80
+ ldr r5, [r6]
+ b _0223C486
+_0223C29C:
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ mov r5, #0
+ cmp r6, #0
+ ble _0223C2C0
+ mov r7, #1
+_0223C2AA:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _0223C48C ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ bne _0223C2C0
+ add r5, r5, #1
+ cmp r5, r6
+ blt _0223C2AA
+_0223C2C0:
+ b _0223C486
+_0223C2C2:
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ mov r5, #0
+ cmp r6, #0
+ ble _0223C2E8
+ ldr r7, _0223C48C ; =0x00000195
+_0223C2D0:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldrb r0, [r0, r7]
+ cmp r0, #3
+ beq _0223C2E8
+ cmp r0, #1
+ beq _0223C2E8
+ add r5, r5, #1
+ cmp r5, r6
+ blt _0223C2D0
+_0223C2E8:
+ b _0223C486
+_0223C2EA:
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _0223C2F8
+ mov r6, #5
+ b _0223C2FA
+_0223C2F8:
+ mov r6, #1
+_0223C2FA:
+ add r0, r4, #0
+ bl MOD11_0222FF84
+ add r7, r0, #0
+ mov r5, #0
+ cmp r7, #0
+ ble _0223C31E
+_0223C308:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _0223C48C ; =0x00000195
+ ldrb r0, [r0, r1]
+ cmp r0, r6
+ beq _0223C31E
+ add r5, r5, #1
+ cmp r5, r7
+ blt _0223C308
+_0223C31E:
+ b _0223C486
+_0223C320:
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ mov r5, #0
+ cmp r6, #0
+ ble _0223C344
+ mov r7, #1
+_0223C32E:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _0223C48C ; =0x00000195
+ ldrb r0, [r0, r1]
+ tst r0, r7
+ beq _0223C344
+ add r5, r5, #1
+ cmp r5, r6
+ blt _0223C32E
+_0223C344:
+ b _0223C486
+_0223C346:
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ mov r5, #0
+ cmp r6, #0
+ ble _0223C36C
+ ldr r7, _0223C48C ; =0x00000195
+_0223C354:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldrb r0, [r0, r7]
+ cmp r0, #2
+ beq _0223C36C
+ cmp r0, #0
+ beq _0223C36C
+ add r5, r5, #1
+ cmp r5, r6
+ blt _0223C354
+_0223C36C:
+ b _0223C486
+_0223C36E:
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _0223C37C
+ mov r6, #4
+ b _0223C37E
+_0223C37C:
+ mov r6, #0
+_0223C37E:
+ add r0, r4, #0
+ bl MOD11_0222FF84
+ add r7, r0, #0
+ mov r5, #0
+ cmp r7, #0
+ ble _0223C486
+_0223C38C:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ ldr r1, _0223C48C ; =0x00000195
+ ldrb r0, [r0, r1]
+ cmp r0, r6
+ beq _0223C486
+ add r5, r5, #1
+ cmp r5, r7
+ blt _0223C38C
+ b _0223C486
+_0223C3A4:
+ mov r0, #0x47
+ lsl r0, r0, #2
+ ldr r5, [r6, r0]
+ b _0223C486
+_0223C3AC:
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r5, [r6, r0]
+ b _0223C486
+_0223C3B4:
+ bl MOD11_0222FF84
+ mov r5, #0
+ str r0, [sp, #4]
+ cmp r0, #0
+ ble _0223C3E6
+_0223C3C0:
+ ldr r7, [r6, #0x64]
+ cmp r5, r7
+ beq _0223C3DE
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02230270
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_02230270
+ ldr r1, [sp, #8]
+ cmp r1, r0
+ beq _0223C3E6
+_0223C3DE:
+ ldr r0, [sp, #4]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _0223C3C0
+_0223C3E6:
+ ldr r0, [sp, #4]
+ cmp r5, r0
+ bne _0223C486
+ mov r5, #0
+ b _0223C486
+_0223C3F0:
+ bl MOD11_0222FF84
+ mov r5, #0
+ str r0, [sp]
+ cmp r0, #0
+ ble _0223C422
+_0223C3FC:
+ ldr r7, [r6, #0x6c]
+ cmp r5, r7
+ beq _0223C41A
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02230270
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_02230270
+ ldr r1, [sp, #0xc]
+ cmp r1, r0
+ beq _0223C422
+_0223C41A:
+ ldr r0, [sp]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _0223C3FC
+_0223C422:
+ ldr r0, [sp]
+ cmp r5, r0
+ bne _0223C486
+ mov r5, #0
+ b _0223C486
+_0223C42C:
+ bl MOD11_0222FF84
+ add r7, r0, #0
+ ldr r1, [r6, #0x64]
+ add r0, r4, #0
+ bl MOD11_02230270
+ add r6, r0, #0
+ mov r5, #0
+ cmp r7, #0
+ ble _0223C486
+_0223C442:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02230270
+ cmp r6, r0
+ bne _0223C486
+ add r5, r5, #1
+ cmp r5, r7
+ blt _0223C442
+ b _0223C486
+_0223C456:
+ bl MOD11_0222FF84
+ add r7, r0, #0
+ ldr r1, [r6, #0x6c]
+ add r0, r4, #0
+ bl MOD11_02230270
+ add r6, r0, #0
+ mov r5, #0
+ cmp r7, #0
+ ble _0223C486
+_0223C46C:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02230270
+ cmp r6, r0
+ bne _0223C486
+ add r5, r5, #1
+ cmp r5, r7
+ blt _0223C46C
+ b _0223C486
+_0223C480:
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r5, [r6, r0]
+_0223C486:
+ add r0, r5, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223C48C: .word 0x00000195
+
+ thumb_func_start MOD11_0223C490
+MOD11_0223C490: ; 0x0223C490
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r4, r1, #0
+ mov r6, #0
+ bl MOD11_0223A404
+ str r0, [r4]
+ add r0, r7, #0
+ bl MOD11_0223A404
+ str r0, [r4, #4]
+ cmp r0, #0x3c
+ bhi _0223C544
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223C4B6: ; jump table
+ .short _0223C530 - _0223C4B6 - 2 ; case 0
+ .short _0223C532 - _0223C4B6 - 2 ; case 1
+ .short _0223C532 - _0223C4B6 - 2 ; case 2
+ .short _0223C532 - _0223C4B6 - 2 ; case 3
+ .short _0223C532 - _0223C4B6 - 2 ; case 4
+ .short _0223C532 - _0223C4B6 - 2 ; case 5
+ .short _0223C532 - _0223C4B6 - 2 ; case 6
+ .short _0223C532 - _0223C4B6 - 2 ; case 7
+ .short _0223C532 - _0223C4B6 - 2 ; case 8
+ .short _0223C536 - _0223C4B6 - 2 ; case 9
+ .short _0223C536 - _0223C4B6 - 2 ; case 10
+ .short _0223C536 - _0223C4B6 - 2 ; case 11
+ .short _0223C536 - _0223C4B6 - 2 ; case 12
+ .short _0223C536 - _0223C4B6 - 2 ; case 13
+ .short _0223C536 - _0223C4B6 - 2 ; case 14
+ .short _0223C536 - _0223C4B6 - 2 ; case 15
+ .short _0223C536 - _0223C4B6 - 2 ; case 16
+ .short _0223C536 - _0223C4B6 - 2 ; case 17
+ .short _0223C536 - _0223C4B6 - 2 ; case 18
+ .short _0223C536 - _0223C4B6 - 2 ; case 19
+ .short _0223C536 - _0223C4B6 - 2 ; case 20
+ .short _0223C536 - _0223C4B6 - 2 ; case 21
+ .short _0223C536 - _0223C4B6 - 2 ; case 22
+ .short _0223C536 - _0223C4B6 - 2 ; case 23
+ .short _0223C536 - _0223C4B6 - 2 ; case 24
+ .short _0223C536 - _0223C4B6 - 2 ; case 25
+ .short _0223C536 - _0223C4B6 - 2 ; case 26
+ .short _0223C536 - _0223C4B6 - 2 ; case 27
+ .short _0223C536 - _0223C4B6 - 2 ; case 28
+ .short _0223C536 - _0223C4B6 - 2 ; case 29
+ .short _0223C536 - _0223C4B6 - 2 ; case 30
+ .short _0223C53A - _0223C4B6 - 2 ; case 31
+ .short _0223C53A - _0223C4B6 - 2 ; case 32
+ .short _0223C53A - _0223C4B6 - 2 ; case 33
+ .short _0223C53A - _0223C4B6 - 2 ; case 34
+ .short _0223C53A - _0223C4B6 - 2 ; case 35
+ .short _0223C53A - _0223C4B6 - 2 ; case 36
+ .short _0223C53A - _0223C4B6 - 2 ; case 37
+ .short _0223C53A - _0223C4B6 - 2 ; case 38
+ .short _0223C53A - _0223C4B6 - 2 ; case 39
+ .short _0223C53A - _0223C4B6 - 2 ; case 40
+ .short _0223C53A - _0223C4B6 - 2 ; case 41
+ .short _0223C53A - _0223C4B6 - 2 ; case 42
+ .short _0223C53A - _0223C4B6 - 2 ; case 43
+ .short _0223C53A - _0223C4B6 - 2 ; case 44
+ .short _0223C53A - _0223C4B6 - 2 ; case 45
+ .short _0223C53A - _0223C4B6 - 2 ; case 46
+ .short _0223C53A - _0223C4B6 - 2 ; case 47
+ .short _0223C53A - _0223C4B6 - 2 ; case 48
+ .short _0223C53A - _0223C4B6 - 2 ; case 49
+ .short _0223C53A - _0223C4B6 - 2 ; case 50
+ .short _0223C53A - _0223C4B6 - 2 ; case 51
+ .short _0223C53E - _0223C4B6 - 2 ; case 52
+ .short _0223C53E - _0223C4B6 - 2 ; case 53
+ .short _0223C53E - _0223C4B6 - 2 ; case 54
+ .short _0223C53E - _0223C4B6 - 2 ; case 55
+ .short _0223C53E - _0223C4B6 - 2 ; case 56
+ .short _0223C53E - _0223C4B6 - 2 ; case 57
+ .short _0223C53E - _0223C4B6 - 2 ; case 58
+ .short _0223C53E - _0223C4B6 - 2 ; case 59
+ .short _0223C542 - _0223C4B6 - 2 ; case 60
+_0223C530:
+ b _0223C544
+_0223C532:
+ mov r6, #1
+ b _0223C544
+_0223C536:
+ mov r6, #2
+ b _0223C544
+_0223C53A:
+ mov r6, #3
+ b _0223C544
+_0223C53E:
+ mov r6, #4
+ b _0223C544
+_0223C542:
+ mov r6, #6
+_0223C544:
+ mov r5, #0
+ cmp r6, #0
+ ble _0223C55A
+_0223C54A:
+ add r0, r7, #0
+ bl MOD11_0223A404
+ str r0, [r4, #8]
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, r6
+ blt _0223C54A
+_0223C55A:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0223C55C
+MOD11_0223C55C: ; 0x0223C55C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r2, #0
+ ldr r2, [r4]
+ add r5, r3, #0
+ strh r2, [r5, #2]
+ ldr r2, [r4, #4]
+ add r7, r0, #0
+ strb r2, [r5, #1]
+ ldrb r2, [r5, #1]
+ add r6, r1, #0
+ cmp r2, #0x3c
+ bls _0223C576
+ b _0223CC58
+_0223C576:
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0223C582: ; jump table
+ .short _0223CC58 - _0223C582 - 2 ; case 0
+ .short _0223C5FC - _0223C582 - 2 ; case 1
+ .short _0223C606 - _0223C582 - 2 ; case 2
+ .short _0223C610 - _0223C582 - 2 ; case 3
+ .short _0223C61C - _0223C582 - 2 ; case 4
+ .short _0223C628 - _0223C582 - 2 ; case 5
+ .short _0223C634 - _0223C582 - 2 ; case 6
+ .short _0223C634 - _0223C582 - 2 ; case 7
+ .short _0223C640 - _0223C582 - 2 ; case 8
+ .short _0223C64A - _0223C582 - 2 ; case 9
+ .short _0223C660 - _0223C582 - 2 ; case 10
+ .short _0223C674 - _0223C582 - 2 ; case 11
+ .short _0223C68A - _0223C582 - 2 ; case 12
+ .short _0223C69E - _0223C582 - 2 ; case 13
+ .short _0223C6B2 - _0223C582 - 2 ; case 14
+ .short _0223C6C8 - _0223C582 - 2 ; case 15
+ .short _0223C6DC - _0223C582 - 2 ; case 16
+ .short _0223C6F0 - _0223C582 - 2 ; case 17
+ .short _0223C704 - _0223C582 - 2 ; case 18
+ .short _0223C71A - _0223C582 - 2 ; case 19
+ .short _0223C728 - _0223C582 - 2 ; case 20
+ .short _0223C740 - _0223C582 - 2 ; case 21
+ .short _0223C758 - _0223C582 - 2 ; case 22
+ .short _0223C76E - _0223C582 - 2 ; case 23
+ .short _0223C784 - _0223C582 - 2 ; case 24
+ .short _0223C79A - _0223C582 - 2 ; case 25
+ .short _0223C7B0 - _0223C582 - 2 ; case 26
+ .short _0223C7C6 - _0223C582 - 2 ; case 27
+ .short _0223C7DC - _0223C582 - 2 ; case 28
+ .short _0223C7F0 - _0223C582 - 2 ; case 29
+ .short _0223C804 - _0223C582 - 2 ; case 30
+ .short _0223C81A - _0223C582 - 2 ; case 31
+ .short _0223C83A - _0223C582 - 2 ; case 32
+ .short _0223C85C - _0223C582 - 2 ; case 33
+ .short _0223C87C - _0223C582 - 2 ; case 34
+ .short _0223C89A - _0223C582 - 2 ; case 35
+ .short _0223C8B8 - _0223C582 - 2 ; case 36
+ .short _0223C8DA - _0223C582 - 2 ; case 37
+ .short _0223C8FA - _0223C582 - 2 ; case 38
+ .short _0223C91A - _0223C582 - 2 ; case 39
+ .short _0223C93A - _0223C582 - 2 ; case 40
+ .short _0223C95A - _0223C582 - 2 ; case 41
+ .short _0223C97A - _0223C582 - 2 ; case 42
+ .short _0223C99A - _0223C582 - 2 ; case 43
+ .short _0223C9BA - _0223C582 - 2 ; case 44
+ .short _0223C9D8 - _0223C582 - 2 ; case 45
+ .short _0223C9F6 - _0223C582 - 2 ; case 46
+ .short _0223CA14 - _0223C582 - 2 ; case 47
+ .short _0223CA26 - _0223C582 - 2 ; case 48
+ .short _0223CA48 - _0223C582 - 2 ; case 49
+ .short _0223CA6A - _0223C582 - 2 ; case 50
+ .short _0223CA8C - _0223C582 - 2 ; case 51
+ .short _0223CAAC - _0223C582 - 2 ; case 52
+ .short _0223CAD8 - _0223C582 - 2 ; case 53
+ .short _0223CB06 - _0223C582 - 2 ; case 54
+ .short _0223CB32 - _0223C582 - 2 ; case 55
+ .short _0223CB5C - _0223C582 - 2 ; case 56
+ .short _0223CB8A - _0223C582 - 2 ; case 57
+ .short _0223CBB8 - _0223C582 - 2 ; case 58
+ .short _0223CBE6 - _0223C582 - 2 ; case 59
+ .short _0223CC14 - _0223C582 - 2 ; case 60
+_0223C5FC:
+ ldr r2, [r4, #8]
+ bl MOD11_0223C230
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C606:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C610:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C61C:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ bl MOD11_0223CD6C
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C628:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C634:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ bl MOD11_0223CD20
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C640:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDBC
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C64A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C660:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C674:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C68A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CD6C
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C69E:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CD2C
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C6B2:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD84
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C6C8:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C6DC:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CD9C
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C6F0:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CD20
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C704:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C71A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r0, [r4, #0xc]
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C728:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223C230
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C740:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C758:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C76E:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CD38
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C784:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C79A:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ bl MOD11_0223CD20
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CD20
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C7B0:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDBC
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C7C6:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDBC
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C7DC:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDBC
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C7F0:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDBC
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CD20
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C804:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDB4
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C81A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C83A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C85C:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C87C:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C89A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CD20
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C8B8:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C8DA:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C8FA:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C91A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CD6C
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C93A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CD2C
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C95A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CD78
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C97A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CD20
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C99A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C9BA:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C9D8:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CD6C
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C9F6:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CD78
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CA14:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r0, [r4, #0xc]
+ str r0, [r5, #8]
+ ldr r0, [r4, #0x10]
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CA26:
+ ldr r1, [r4, #8]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CDA8
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CA48:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDBC
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CA6A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDB4
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CA8C:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDB4
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #8]
+ ldr r1, [r4, #0x10]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CAAC:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0xc]
+ ldr r1, [r4, #0x14]
+ add r0, r6, #0
+ bl MOD11_0223CC8C
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CAD8:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0xc]
+ ldr r2, [r4, #0x14]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CB06:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CD38
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0xc]
+ ldr r1, [r4, #0x14]
+ add r0, r6, #0
+ bl MOD11_0223CD6C
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CB32:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CC5C
+ str r0, [r5, #4]
+ ldr r1, [r4, #0xc]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0xc]
+ ldr r1, [r4, #0x14]
+ add r0, r6, #0
+ bl MOD11_0223CCA8
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CB5C:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDBC
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #0xc]
+ ldr r2, [r4, #0x14]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CB8A:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDB4
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0xc]
+ ldr r2, [r4, #0x14]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CBB8:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDB4
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0xc]
+ ldr r2, [r4, #0x14]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CBE6:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDB4
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDB4
+ str r0, [r5, #0xc]
+ ldr r2, [r4, #0x14]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CC14:
+ ldr r2, [r4, #8]
+ bl MOD11_0223CDB4
+ str r0, [r5, #4]
+ ldr r2, [r4, #0xc]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #8]
+ ldr r2, [r4, #0x10]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0xc]
+ ldr r2, [r4, #0x14]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDB4
+ str r0, [r5, #0x10]
+ ldr r2, [r4, #0x18]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CDBC
+ str r0, [r5, #0x14]
+ ldr r2, [r4, #0x1c]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_0223CC5C
+ str r0, [r5, #0x18]
+_0223CC58:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223CC5C
+MOD11_0223CC5C: ; 0x0223CC5C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r2, #0
+ bl MOD11_0223C230
+ cmp r4, #0x16
+ bne _0223CC76
+ ldr r1, _0223CC84 ; =0x000021A0
+ add r2, r5, r0
+ ldrb r1, [r2, r1]
+ lsl r1, r1, #8
+ orr r0, r1
+ pop {r3, r4, r5, pc}
+_0223CC76:
+ ldr r1, _0223CC88 ; =0x0000219C
+ add r2, r5, r0
+ ldrb r1, [r2, r1]
+ lsl r1, r1, #8
+ orr r0, r1
+ pop {r3, r4, r5, pc}
+ nop
+_0223CC84: .word 0x000021A0
+_0223CC88: .word 0x0000219C
+
+ thumb_func_start MOD11_0223CC8C
+MOD11_0223CC8C: ; 0x0223CC8C
+ cmp r1, #1
+ beq _0223CC96
+ cmp r1, #0xff
+ beq _0223CC9C
+ bx lr
+_0223CC96:
+ ldr r1, _0223CCA4 ; =0x00003044
+ ldr r0, [r0, r1]
+ bx lr
+_0223CC9C:
+ mov r1, #0x49
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_0223CCA4: .word 0x00003044
+
+ thumb_func_start MOD11_0223CCA8
+MOD11_0223CCA8: ; 0x0223CCA8
+ push {r4, lr}
+ cmp r1, #0x15
+ bgt _0223CCC0
+ bge _0223CCF6
+ cmp r1, #2
+ bgt _0223CD18
+ cmp r1, #1
+ blt _0223CD18
+ beq _0223CCC6
+ cmp r1, #2
+ beq _0223CCDE
+ b _0223CD18
+_0223CCC0:
+ cmp r1, #0xff
+ beq _0223CD12
+ b _0223CD18
+_0223CCC6:
+ ldr r3, [r0, #0x64]
+ mov r1, #0xc0
+ mul r1, r3
+ add r2, r0, r1
+ ldr r1, _0223CD1C ; =0x00002DB8
+ ldrh r4, [r2, r1]
+ lsl r1, r3, #0x18
+ lsr r1, r1, #0x18
+ add r2, r4, #0
+ bl MOD11_0223D1D0
+ b _0223CD18
+_0223CCDE:
+ ldr r3, [r0, #0x6c]
+ mov r1, #0xc0
+ mul r1, r3
+ add r2, r0, r1
+ ldr r1, _0223CD1C ; =0x00002DB8
+ ldrh r4, [r2, r1]
+ lsl r1, r3, #0x18
+ lsr r1, r1, #0x18
+ add r2, r4, #0
+ bl MOD11_0223D1D0
+ b _0223CD18
+_0223CCF6:
+ mov r1, #0x46
+ lsl r1, r1, #2
+ ldr r3, [r0, r1]
+ mov r1, #0xc0
+ mul r1, r3
+ add r2, r0, r1
+ ldr r1, _0223CD1C ; =0x00002DB8
+ ldrh r4, [r2, r1]
+ lsl r1, r3, #0x18
+ lsr r1, r1, #0x18
+ add r2, r4, #0
+ bl MOD11_0223D1D0
+ b _0223CD18
+_0223CD12:
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ ldr r4, [r0, r1]
+_0223CD18:
+ add r0, r4, #0
+ pop {r4, pc}
+ .align 2, 0
+_0223CD1C: .word 0x00002DB8
+
+ thumb_func_start MOD11_0223CD20
+MOD11_0223CD20: ; 0x0223CD20
+ cmp r1, #0xff
+ bne _0223CD2A
+ mov r1, #0x13
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+_0223CD2A:
+ bx lr
+
+ thumb_func_start MOD11_0223CD2C
+MOD11_0223CD2C: ; 0x0223CD2C
+ cmp r1, #0xff
+ bne _0223CD36
+ mov r1, #0x13
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+_0223CD36:
+ bx lr
+
+ thumb_func_start MOD11_0223CD38
+MOD11_0223CD38: ; 0x0223CD38
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ cmp r2, #0xff
+ bne _0223CD48
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ ldr r4, [r5, r0]
+ b _0223CD64
+_0223CD48:
+ bl MOD11_0223C230
+ add r1, r0, #0
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _0223CD68 ; =0x00002D67
+ lsl r1, r1, #0x18
+ ldrb r4, [r2, r0]
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ add r2, r4, #0
+ bl MOD11_0223D1C4
+_0223CD64:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223CD68: .word 0x00002D67
+
+ thumb_func_start MOD11_0223CD6C
+MOD11_0223CD6C: ; 0x0223CD6C
+ cmp r1, #0xff
+ bne _0223CD76
+ mov r1, #0x13
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+_0223CD76:
+ bx lr
+
+ thumb_func_start MOD11_0223CD78
+MOD11_0223CD78: ; 0x0223CD78
+ cmp r1, #0xff
+ bne _0223CD82
+ mov r1, #0x13
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+_0223CD82:
+ bx lr
+
+ thumb_func_start MOD11_0223CD84
+MOD11_0223CD84: ; 0x0223CD84
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_0223C230
+ ldr r1, _0223CD98 ; =0x0000219C
+ add r2, r4, r0
+ ldrb r1, [r2, r1]
+ lsl r1, r1, #8
+ orr r0, r1
+ pop {r4, pc}
+ .align 2, 0
+_0223CD98: .word 0x0000219C
+
+ thumb_func_start MOD11_0223CD9C
+MOD11_0223CD9C: ; 0x0223CD9C
+ cmp r1, #0xff
+ bne _0223CDA6
+ mov r1, #0x13
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+_0223CDA6:
+ bx lr
+
+ thumb_func_start MOD11_0223CDA8
+MOD11_0223CDA8: ; 0x0223CDA8
+ cmp r1, #0xff
+ bne _0223CDB2
+ mov r1, #0x13
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+_0223CDB2:
+ bx lr
+
+ thumb_func_start MOD11_0223CDB4
+MOD11_0223CDB4: ; 0x0223CDB4
+ ldr r3, _0223CDB8 ; =MOD11_0223C230
+ bx r3
+ .align 2, 0
+_0223CDB8: .word MOD11_0223C230
+
+ thumb_func_start MOD11_0223CDBC
+MOD11_0223CDBC: ; 0x0223CDBC
+ ldr r3, _0223CDC0 ; =MOD11_0223C230
+ bx r3
+ .align 2, 0
+_0223CDC0: .word MOD11_0223C230
+
+ thumb_func_start MOD11_0223CDC4
+MOD11_0223CDC4: ; 0x0223CDC4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x78
+ add r7, r0, #0
+ add r5, r1, #0
+ str r2, [sp, #0x18]
+ bl MOD11_022300C4
+ str r0, [sp, #0x28]
+ add r0, r7, #0
+ bl MOD11_0223013C
+ str r0, [sp, #0x20]
+ add r0, r7, #0
+ bl MOD11_02230138
+ str r0, [sp, #0x24]
+ add r0, r7, #0
+ bl MOD11_0222FF68
+ str r0, [sp, #0x1c]
+ add r0, r7, #0
+ bl MOD11_02230078
+ add r6, r0, #0
+ add r0, r7, #0
+ bl MOD11_02230080
+ add r4, r0, #0
+ add r0, r7, #0
+ bl MOD11_022300CC
+ add r7, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0223D03C ; =0x00004E31
+ add r1, r4, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ mov r2, #0x1b
+ mov r3, #0xc0
+ bl FUN_0200C00C
+ mov r0, #0x1b
+ str r0, [sp]
+ mov r0, #0x2e
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r1, #2
+ str r1, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, _0223D040 ; =0x00004E2C
+ add r2, r6, #0
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ add r3, r4, #0
+ bl FUN_0200C0DC
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0223D044 ; =0x00004E29
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r6, #0
+ mov r2, #0x1b
+ mov r3, #0xc1
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0223D044 ; =0x00004E29
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r6, #0
+ mov r2, #0x1b
+ mov r3, #0xc2
+ bl FUN_0200C13C
+ ldr r2, _0223D048 ; =0x0225DD7C
+ add r0, r6, #0
+ add r1, r4, #0
+ bl FUN_0200C154
+ str r0, [r5, #0xc]
+ bl FUN_0200C5A8
+ ldr r0, [sp, #0x18]
+ bl FUN_0206B6C8
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _0223D04C ; =0x00004E32
+ add r1, r4, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ mov r2, #0x13
+ bl FUN_0200C978
+ bl FUN_0206B888
+ mov r1, #0x13
+ str r1, [sp]
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #3
+ str r0, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, _0223D050 ; =0x00004E2D
+ mov r1, #2
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ add r2, r6, #0
+ add r3, r4, #0
+ bl FUN_0200C0DC
+ bl FUN_0206B894
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _0223D054 ; =0x00004E2A
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r6, #0
+ mov r2, #0x13
+ bl FUN_0200C124
+ bl FUN_0206B8A0
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _0223D054 ; =0x00004E2A
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r6, #0
+ mov r2, #0x13
+ bl FUN_0200C13C
+ ldr r2, _0223D058 ; =0x0225DDB0
+ add r0, r6, #0
+ add r1, r4, #0
+ bl FUN_0200C154
+ str r0, [r5, #0x10]
+ ldr r0, [sp, #0x18]
+ bl FUN_0206B87C
+ add r1, r0, #0
+ ldr r0, [r5, #0x10]
+ ldr r0, [r0]
+ bl FUN_020202DC
+ ldr r0, [r5, #0x10]
+ bl FUN_0200C5A8
+ mov r0, #1
+ mov r1, #5
+ bl FUN_02011744
+ str r0, [r5, #0x50]
+ ldr r0, [sp, #0x18]
+ mov r1, #0xaf
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0223CF26
+ mov r0, #2
+ b _0223CF30
+_0223CF26:
+ ldr r0, [sp, #0x18]
+ mov r1, #0x6f
+ mov r2, #0
+ bl GetMonData
+_0223CF30:
+ cmp r0, #0
+ bne _0223CF42
+ mov r1, #0x3b
+ ldr r0, [sp, #0x28]
+ lsl r1, r1, #4
+ bl FUN_0200A914
+ add r6, r0, #0
+ b _0223CF5C
+_0223CF42:
+ cmp r0, #1
+ bne _0223CF52
+ ldr r0, [sp, #0x28]
+ ldr r1, _0223D05C ; =0x000003B1
+ bl FUN_0200A914
+ add r6, r0, #0
+ b _0223CF5C
+_0223CF52:
+ ldr r0, [sp, #0x28]
+ ldr r1, _0223D060 ; =0x000003B2
+ bl FUN_0200A914
+ add r6, r0, #0
+_0223CF5C:
+ ldr r0, [sp, #0x18]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [sp, #0x24]
+ mov r1, #0
+ bl FUN_0200ACF8
+ ldr r0, [sp, #0x18]
+ mov r1, #0xa0
+ mov r2, #0
+ bl GetMonData
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #1
+ ldr r0, [sp, #0x24]
+ mov r3, #3
+ str r1, [sp, #4]
+ bl FUN_0200AD38
+ ldr r0, [sp, #0x24]
+ ldr r1, [sp, #0x20]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, sp, #0x68
+ bl FUN_0201901C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x1c]
+ add r1, sp, #0x68
+ mov r2, #0xc
+ mov r3, #4
+ bl FUN_020190EC
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _0223D064 ; =0x00010200
+ ldr r2, [sp, #0x20]
+ str r0, [sp, #8]
+ add r0, sp, #0x68
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, sp, #0x68
+ mov r1, #1
+ mov r2, #5
+ bl FUN_02011898
+ mov r1, #1
+ add r2, r1, #0
+ add r3, sp, #0x5c
+ bl FUN_0201D568
+ ldr r0, [r5, #0x50]
+ str r0, [sp, #0x2c]
+ add r0, sp, #0x68
+ str r0, [sp, #0x30]
+ add r0, r4, #0
+ bl FUN_0200CA40
+ str r0, [sp, #0x34]
+ ldr r1, _0223D040 ; =0x00004E2C
+ add r0, r4, #0
+ bl FUN_0200C334
+ mov r1, #0
+ str r0, [sp, #0x38]
+ ldr r0, [sp, #0x60]
+ str r1, [sp, #0x3c]
+ str r0, [sp, #0x40]
+ mov r0, #0xb0
+ str r0, [sp, #0x44]
+ mov r0, #8
+ str r0, [sp, #0x48]
+ mov r0, #0x64
+ str r0, [sp, #0x50]
+ mov r0, #1
+ str r0, [sp, #0x54]
+ mov r0, #5
+ str r0, [sp, #0x58]
+ add r0, sp, #0x2c
+ str r1, [sp, #0x4c]
+ bl FUN_020117E8
+ add r2, r5, #0
+ add r3, sp, #0x5c
+ str r0, [r5, #0x14]
+ ldmia r3!, {r0, r1}
+ add r2, #0x18
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ mov r1, #1
+ str r0, [r2]
+ ldr r0, [r5, #0x14]
+ bl FUN_02011AC0
+ add r0, sp, #0x68
+ bl FUN_02019178
+ add sp, #0x78
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223D03C: .word 0x00004E31
+_0223D040: .word 0x00004E2C
+_0223D044: .word 0x00004E29
+_0223D048: .word 0x0225DD7C
+_0223D04C: .word 0x00004E32
+_0223D050: .word 0x00004E2D
+_0223D054: .word 0x00004E2A
+_0223D058: .word 0x0225DDB0
+_0223D05C: .word 0x000003B1
+_0223D060: .word 0x000003B2
+_0223D064: .word 0x00010200
+
+ thumb_func_start MOD11_0223D068
+MOD11_0223D068: ; 0x0223D068
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ bl MOD11_02230080
+ add r4, r0, #0
+ ldr r0, [r5, #0xc]
+ bl FUN_0200C3DC
+ ldr r0, [r5, #0x10]
+ bl FUN_0200C3DC
+ ldr r0, [r5, #0x14]
+ bl FUN_02011870
+ add r0, r5, #0
+ add r0, #0x18
+ bl FUN_0201D5E8
+ ldr r1, _0223D0D4 ; =0x00004E31
+ add r0, r4, #0
+ bl FUN_0200C358
+ ldr r1, _0223D0D8 ; =0x00004E2C
+ add r0, r4, #0
+ bl FUN_0200C368
+ ldr r1, _0223D0DC ; =0x00004E29
+ add r0, r4, #0
+ bl FUN_0200C378
+ ldr r1, _0223D0DC ; =0x00004E29
+ add r0, r4, #0
+ bl FUN_0200C388
+ ldr r1, _0223D0E0 ; =0x00004E32
+ add r0, r4, #0
+ bl FUN_0200C358
+ ldr r1, _0223D0E4 ; =0x00004E2D
+ add r0, r4, #0
+ bl FUN_0200C368
+ ldr r1, _0223D0E8 ; =0x00004E2A
+ add r0, r4, #0
+ bl FUN_0200C378
+ ldr r1, _0223D0E8 ; =0x00004E2A
+ add r0, r4, #0
+ bl FUN_0200C388
+ ldr r0, [r5, #0x50]
+ bl FUN_020117BC
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223D0D4: .word 0x00004E31
+_0223D0D8: .word 0x00004E2C
+_0223D0DC: .word 0x00004E29
+_0223D0E0: .word 0x00004E32
+_0223D0E4: .word 0x00004E2D
+_0223D0E8: .word 0x00004E2A
+
+ thumb_func_start MOD11_0223D0EC
+MOD11_0223D0EC: ; 0x0223D0EC
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r1, r2, #0
+ add r5, r0, #0
+ str r2, [sp]
+ bl MOD11_02230270
+ cmp r0, #0
+ bne _0223D1B8
+ add r0, r5, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _0223D13C
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_0223022C
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD11_0223022C
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ mov r2, #0xc0
+ add r0, r1, #0
+ mul r0, r2
+ mul r2, r6
+ ldr r3, _0223D1BC ; =0x00002D74
+ add r0, r4, r0
+ add r2, r4, r2
+ ldrb r0, [r0, r3]
+ ldrb r2, [r2, r3]
+ cmp r0, r2
+ bls _0223D148
+ add r6, r1, #0
+ b _0223D148
+_0223D13C:
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223022C
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+_0223D148:
+ ldr r1, [sp]
+ add r0, r5, #0
+ add r2, r1, #0
+ add r3, r4, r2
+ ldr r2, _0223D1C0 ; =0x0000219C
+ ldrb r2, [r3, r2]
+ bl MOD11_02230014
+ add r7, r0, #0
+ ldr r0, [sp]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ add r0, r4, r2
+ ldr r2, _0223D1BC ; =0x00002D74
+ mul r1, r6
+ add r1, r4, r1
+ ldrb r0, [r0, r2]
+ ldrb r1, [r1, r2]
+ cmp r1, r0
+ bls _0223D1A4
+ sub r0, r1, r0
+ cmp r0, #0x1e
+ blt _0223D18E
+ add r0, r5, #0
+ bl MOD11_022302B0
+ add r2, r0, #0
+ lsl r2, r2, #0x10
+ add r0, r7, #0
+ mov r1, #8
+ lsr r2, r2, #0x10
+ bl MonApplyFriendshipMod
+ pop {r3, r4, r5, r6, r7, pc}
+_0223D18E:
+ add r0, r5, #0
+ bl MOD11_022302B0
+ add r2, r0, #0
+ lsl r2, r2, #0x10
+ add r0, r7, #0
+ mov r1, #6
+ lsr r2, r2, #0x10
+ bl MonApplyFriendshipMod
+ pop {r3, r4, r5, r6, r7, pc}
+_0223D1A4:
+ add r0, r5, #0
+ bl MOD11_022302B0
+ add r2, r0, #0
+ lsl r2, r2, #0x10
+ add r0, r7, #0
+ mov r1, #6
+ lsr r2, r2, #0x10
+ bl MonApplyFriendshipMod
+_0223D1B8:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223D1BC: .word 0x00002D74
+_0223D1C0: .word 0x0000219C
+
+ thumb_func_start MOD11_0223D1C4
+MOD11_0223D1C4: ; 0x0223D1C4
+ add r1, r0, r1
+ mov r0, #0x39
+ lsl r0, r0, #4
+ strb r2, [r1, r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0223D1D0
+MOD11_0223D1D0: ; 0x0223D1D0
+ lsl r1, r1, #1
+ add r1, r0, r1
+ mov r0, #0xe5
+ lsl r0, r0, #2
+ strh r2, [r1, r0]
+ bx lr
+
+ thumb_func_start MOD11_0223D1DC
+MOD11_0223D1DC: ; 0x0223D1DC
+ push {r3, r4, r5, lr}
+ ldr r1, _0223D22C ; =0x0000314C
+ add r5, r0, #0
+ mov r0, #5
+ bl AllocFromHeap
+ add r4, r0, #0
+ ldr r2, _0223D22C ; =0x0000314C
+ mov r0, #0
+ add r1, r4, #0
+ bl MIi_CpuClearFast
+ add r0, r4, #0
+ bl MOD11_02245494
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02245588
+ bl FUN_02033590
+ cmp r0, #0
+ bne _0223D216
+ mov r2, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, r2, #0
+ bl MOD16_021EFBF4
+_0223D216:
+ ldr r0, _0223D230 ; =0x000003DE
+ add r0, r4, r0
+ bl LoadAllWazaTbl
+ mov r0, #5
+ bl FUN_0206EB50
+ ldr r1, _0223D234 ; =0x00002120
+ str r0, [r4, r1]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223D22C: .word 0x0000314C
+_0223D230: .word 0x000003DE
+_0223D234: .word 0x00002120
+
+ thumb_func_start MOD11_0223D238
+MOD11_0223D238: ; 0x0223D238
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, _0223D27C ; =0x0000311F
+ add r5, r0, #0
+ ldrb r1, [r4, r1]
+ cmp r1, #0
+ bne _0223D25E
+ bl MOD11_0223145C
+ cmp r0, #0
+ beq _0223D25E
+ add r0, r5, #0
+ bl MOD11_0223145C
+ mov r1, #0x40
+ tst r0, r1
+ bne _0223D25E
+ mov r0, #0x29
+ str r0, [r4, #8]
+_0223D25E:
+ ldr r2, [r4, #8]
+ add r0, r5, #0
+ lsl r3, r2, #2
+ ldr r2, _0223D280 ; =0x0225E194
+ add r1, r4, #0
+ ldr r2, [r2, r3]
+ blx r2
+ ldr r0, [r4, #8]
+ cmp r0, #0x2b
+ bne _0223D276
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0223D276:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_0223D27C: .word 0x0000311F
+_0223D280: .word 0x0225E194
+
+ thumb_func_start MOD11_0223D284
+MOD11_0223D284: ; 0x0223D284
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0223D298 ; =0x00002120
+ ldr r0, [r4, r0]
+ bl FreeToHeap
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+ .align 2, 0
+_0223D298: .word 0x00002120
+
+ thumb_func_start MOD11_0223D29C
+MOD11_0223D29C: ; 0x0223D29C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ ldr r6, [sp, #0x20]
+ add r5, r0, #0
+ add r4, r1, #0
+ add r7, r2, #0
+ str r3, [sp, #4]
+ str r6, [sp]
+ bl MOD11_0224053C
+ ldr r0, [sp, #0x20]
+ ldr r3, [sp, #4]
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD11_02240890
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0223D2C4
+MOD11_0223D2C4: ; 0x0223D2C4
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ add r5, r1, #0
+ bl MOD11_0222FF84
+ add r7, r0, #0
+ mov r4, #0
+ cmp r7, #0
+ ble _0223D2EC
+_0223D2D6:
+ ldr r3, _0223D2FC ; =0x0000219C
+ add r6, r5, r4
+ ldrb r3, [r6, r3]
+ ldr r0, [sp]
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_02242B78
+ add r4, r4, #1
+ cmp r4, r7
+ blt _0223D2D6
+_0223D2EC:
+ ldr r0, _0223D300 ; =0x00002E4C
+ ldr r1, [r5, r0]
+ ldr r0, _0223D304 ; =0x00003122
+ strh r1, [r5, r0]
+ mov r0, #1
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223D2FC: .word 0x0000219C
+_0223D300: .word 0x00002E4C
+_0223D304: .word 0x00003122
+
+ thumb_func_start MOD11_0223D308
+MOD11_0223D308: ; 0x0223D308
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #2
+ str r0, [r4, #0xc]
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0223D320
+MOD11_0223D320: ; 0x0223D320
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_0224529C
+ cmp r0, #0
+ beq _0223D342
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x29
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #3
+ str r0, [r4, #0xc]
+ b _0223D346
+_0223D342:
+ mov r0, #3
+ str r0, [r4, #8]
+_0223D346:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224728C
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0223D350
+MOD11_0223D350: ; 0x0223D350
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_022476DC
+ add r2, r0, #0
+ beq _0223D370
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_0223D370:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224728C
+ mov r0, #4
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223D380
+MOD11_0223D380: ; 0x0223D380
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ add r4, r1, #0
+ bl MOD11_0222FF84
+ add r5, r0, #0
+ mov r3, #0
+ cmp r5, #0
+ ble _0223D3AA
+ mov r7, #0xb7
+ lsl r7, r7, #6
+ add r6, r4, #0
+ add r2, r3, #0
+ add r0, r7, #4
+_0223D39C:
+ strb r2, [r4, r3]
+ ldr r1, [r6, r7]
+ add r3, r3, #1
+ str r1, [r6, r0]
+ add r6, #0xc0
+ cmp r3, r5
+ blt _0223D39C
+_0223D3AA:
+ ldr r0, [sp]
+ mov r1, #0
+ bl MOD11_022312AC
+ mov r0, #5
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0223D3B8
+MOD11_0223D3B8: ; 0x0223D3B8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0xb8
+ add r7, r0, #0
+ add r6, r1, #0
+ bl MOD11_0222FF84
+ str r0, [sp, #0x64]
+ add r0, r7, #0
+ bl MOD11_0222FF74
+ str r0, [sp, #0x24]
+ mov r4, #0
+ ldr r0, [sp, #0x64]
+ str r4, [sp, #0x60]
+ cmp r0, #0
+ bgt _0223D3DA
+ b _0223DB58
+_0223D3DA:
+ mov r0, #0x75
+ lsl r0, r0, #2
+ add r0, r6, r0
+ str r0, [sp, #0x50]
+ ldr r0, _0223D710 ; =0x000021AC
+ mov r1, #2
+ add r0, r6, r0
+ str r0, [sp, #0x40]
+ mov r0, #0x23
+ lsl r0, r0, #8
+ add r0, r6, r0
+ str r0, [sp, #0x3c]
+ ldr r0, [sp, #0x24]
+ str r6, [sp, #0x54]
+ and r0, r1
+ str r0, [sp, #0x38]
+ ldr r0, [sp, #0x24]
+ mov r1, #8
+ and r0, r1
+ str r0, [sp, #0x34]
+ ldr r0, [sp, #0x24]
+ lsl r1, r1, #6
+ and r0, r1
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0x24]
+ mov r1, #0x20
+ and r0, r1
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x24]
+ mov r1, #4
+ and r0, r1
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x24]
+ mov r1, #0x80
+ and r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x24]
+ mov r1, #1
+ and r0, r1
+ str r6, [sp, #0x4c]
+ str r6, [sp, #0x48]
+ str r6, [sp, #0x44]
+ str r0, [sp, #0x1c]
+_0223D430:
+ ldrb r0, [r6, r4]
+ add r5, r6, r4
+ cmp r0, #0x10
+ bhi _0223D50A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223D444: ; jump table
+ .short _0223D466 - _0223D444 - 2 ; case 0
+ .short _0223D4DA - _0223D444 - 2 ; case 1
+ .short _0223D6EE - _0223D444 - 2 ; case 2
+ .short _0223D6FC - _0223D444 - 2 ; case 3
+ .short _0223D7DA - _0223D444 - 2 ; case 4
+ .short _0223D814 - _0223D444 - 2 ; case 5
+ .short _0223D848 - _0223D444 - 2 ; case 6
+ .short _0223D856 - _0223D444 - 2 ; case 7
+ .short _0223D884 - _0223D444 - 2 ; case 8
+ .short _0223D8FC - _0223D444 - 2 ; case 9
+ .short _0223D93C - _0223D444 - 2 ; case 10
+ .short _0223D9F8 - _0223D444 - 2 ; case 11
+ .short _0223DA46 - _0223D444 - 2 ; case 12
+ .short _0223DA94 - _0223D444 - 2 ; case 13
+ .short _0223DA9C - _0223D444 - 2 ; case 14
+ .short _0223DAB6 - _0223D444 - 2 ; case 15
+ .short _0223DB14 - _0223D444 - 2 ; case 16
+_0223D466:
+ ldr r0, [sp, #0x38]
+ cmp r0, #0
+ beq _0223D486
+ ldr r0, [sp, #0x34]
+ cmp r0, #0
+ bne _0223D486
+ cmp r4, #2
+ bne _0223D47C
+ ldrb r0, [r6]
+ cmp r0, #0xd
+ bne _0223D50A
+_0223D47C:
+ cmp r4, #3
+ bne _0223D486
+ ldrb r0, [r6, #1]
+ cmp r0, #0xd
+ bne _0223D50A
+_0223D486:
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ ldr r1, _0223D714 ; =0x00003108
+ ldrb r1, [r6, r1]
+ tst r0, r1
+ beq _0223D4A2
+ mov r0, #0xc
+ strb r0, [r5]
+ ldr r1, _0223D718 ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ mov r2, #0x27
+ str r2, [r0, r1]
+ b _0223DB20
+_0223D4A2:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD04
+ cmp r0, #0
+ bne _0223D4C8
+ ldr r0, [sp, #0x50]
+ mov r2, #0xd
+ ldr r1, [r0]
+ mov r0, #2
+ orr r1, r0
+ ldr r0, [sp, #0x50]
+ str r1, [r0]
+ mov r0, #0xc
+ strb r0, [r5]
+ ldr r1, _0223D718 ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ str r2, [r0, r1]
+ b _0223DB20
+_0223D4C8:
+ ldr r3, _0223D71C ; =0x0000219C
+ add r0, r7, #0
+ ldrb r3, [r5, r3]
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_02255188
+ mov r0, #1
+ strb r0, [r5]
+_0223D4DA:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ beq _0223D50A
+ mov r1, #0x23
+ ldr r0, [sp, #0x4c]
+ lsl r1, r1, #8
+ ldrb r2, [r0, r1]
+ ldr r1, _0223D720 ; =0x000021B4
+ ldr r0, [sp, #0x54]
+ str r2, [r0, r1]
+ ldr r0, [sp, #0x30]
+ cmp r0, #0
+ beq _0223D52E
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #1
+ beq _0223D50C
+ cmp r0, #4
+ beq _0223D51E
+_0223D50A:
+ b _0223DB20
+_0223D50C:
+ mov r0, #0x10
+ strb r0, [r5]
+ mov r0, #0xc
+ strb r0, [r5, #4]
+ ldr r1, _0223D718 ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ mov r2, #0x11
+ str r2, [r0, r1]
+ b _0223DB20
+_0223D51E:
+ mov r0, #0x10
+ strb r0, [r5]
+ mov r1, #0xc
+ strb r1, [r5, #4]
+ ldr r2, _0223D718 ; =0x000021A8
+ ldr r1, [sp, #0x54]
+ str r0, [r1, r2]
+ b _0223DB20
+_0223D52E:
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0
+ beq _0223D5B0
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #5
+ bhi _0223D5DA
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223D54C: ; jump table
+ .short _0223DB20 - _0223D54C - 2 ; case 0
+ .short _0223D558 - _0223D54C - 2 ; case 1
+ .short _0223D56A - _0223D54C - 2 ; case 2
+ .short _0223D57C - _0223D54C - 2 ; case 3
+ .short _0223D58E - _0223D54C - 2 ; case 4
+ .short _0223D59E - _0223D54C - 2 ; case 5
+_0223D558:
+ mov r0, #0x10
+ strb r0, [r5]
+ mov r0, #0xc
+ strb r0, [r5, #4]
+ ldr r1, _0223D718 ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ mov r2, #0x11
+ str r2, [r0, r1]
+ b _0223DB20
+_0223D56A:
+ mov r0, #0x10
+ strb r0, [r5]
+ mov r0, #0xc
+ strb r0, [r5, #4]
+ ldr r1, _0223D718 ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ mov r2, #0x12
+ str r2, [r0, r1]
+ b _0223DB20
+_0223D57C:
+ mov r0, #0x10
+ strb r0, [r5]
+ mov r0, #0xc
+ strb r0, [r5, #4]
+ ldr r1, _0223D718 ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ mov r2, #0x13
+ str r2, [r0, r1]
+ b _0223DB20
+_0223D58E:
+ mov r0, #0x10
+ strb r0, [r5]
+ mov r1, #0xc
+ strb r1, [r5, #4]
+ ldr r2, _0223D718 ; =0x000021A8
+ ldr r1, [sp, #0x54]
+ str r0, [r1, r2]
+ b _0223DB20
+_0223D59E:
+ mov r0, #0x10
+ strb r0, [r5]
+ mov r0, #0xc
+ strb r0, [r5]
+ ldr r1, _0223D718 ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ mov r2, #0x14
+ str r2, [r0, r1]
+ b _0223DB20
+_0223D5B0:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #4
+ bgt _0223D5D6
+ cmp r0, #0
+ blt _0223D5DA
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223D5CC: ; jump table
+ .short _0223DB20 - _0223D5CC - 2 ; case 0
+ .short _0223D5DC - _0223D5CC - 2 ; case 1
+ .short _0223D63C - _0223D5CC - 2 ; case 2
+ .short _0223D698 - _0223D5CC - 2 ; case 3
+ .short _0223D6A6 - _0223D5CC - 2 ; case 4
+_0223D5D6:
+ cmp r0, #0xff
+ beq _0223D6B4
+_0223D5DA:
+ b _0223DB20
+_0223D5DC:
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ mov r3, #0
+ bl MOD11_02245D38
+ cmp r0, #0xf
+ bne _0223D5FC
+ mov r0, #0x10
+ strb r0, [r5]
+ mov r0, #0xf
+ strb r0, [r5, #4]
+ b _0223D632
+_0223D5FC:
+ ldr r3, _0223D724 ; =0x00002DEC
+ ldr r0, [sp, #0x48]
+ ldrh r0, [r0, r3]
+ cmp r0, #0
+ beq _0223D62E
+ ldr r0, [sp, #0x48]
+ add r1, r3, #2
+ ldrh r1, [r0, r1]
+ ldr r2, _0223D728 ; =0x000030BC
+ ldr r0, [sp, #0x44]
+ strh r1, [r0, r2]
+ ldr r0, [sp, #0x48]
+ sub r2, #8
+ ldrh r1, [r0, r3]
+ ldr r0, [sp, #0x44]
+ strh r1, [r0, r2]
+ ldr r1, _0223D72C ; =0x000021B0
+ ldr r0, [sp, #0x54]
+ mov r2, #0
+ str r2, [r0, r1]
+ mov r0, #0x10
+ strb r0, [r5]
+ mov r0, #0xc
+ strb r0, [r5, #4]
+ b _0223D632
+_0223D62E:
+ mov r0, #2
+ strb r0, [r5]
+_0223D632:
+ ldr r1, _0223D718 ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ mov r2, #0xd
+ str r2, [r0, r1]
+ b _0223DB20
+_0223D63C:
+ add r0, r7, #0
+ bl MOD11_0222FF74
+ mov r1, #0x84
+ tst r0, r1
+ beq _0223D68A
+ ldr r1, _0223D730 ; =0x00000251
+ add r0, sp, #0x90
+ strh r1, [r0, #6]
+ mov r1, #0
+ strb r1, [r0, #5]
+ mov r0, sp
+ str r0, [sp, #0x68]
+ sub r0, #8
+ str r0, [sp, #0x68]
+ add r3, r0, #0
+ mov r0, #4
+ add r2, sp, #0x94
+ str r0, [sp, #0x6c]
+_0223D662:
+ ldmia r2!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [sp, #0x6c]
+ sub r0, r0, #1
+ str r0, [sp, #0x6c]
+ bne _0223D662
+ ldr r0, [r2]
+ add r1, r4, #0
+ str r0, [r3]
+ ldr r0, [sp, #0x68]
+ ldmia r0!, {r2, r3}
+ str r0, [sp, #0x68]
+ add r0, r7, #0
+ bl MOD11_02255FBC
+ mov r0, #0xe
+ strb r0, [r5]
+ mov r0, #0
+ strb r0, [r5, #4]
+ b _0223DB20
+_0223D68A:
+ ldr r1, _0223D718 ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ mov r2, #0xe
+ str r2, [r0, r1]
+ mov r0, #6
+ strb r0, [r5]
+ b _0223DB20
+_0223D698:
+ ldr r1, _0223D718 ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ mov r2, #0xf
+ str r2, [r0, r1]
+ mov r0, #8
+ strb r0, [r5]
+ b _0223DB20
+_0223D6A6:
+ ldr r1, _0223D718 ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ mov r2, #0x10
+ str r2, [r0, r1]
+ mov r0, #0xa
+ strb r0, [r5]
+ b _0223DB20
+_0223D6B4:
+ ldr r0, [sp, #0x28]
+ cmp r0, #0
+ beq _0223D6D4
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_02256268
+ mov r0, #0
+ strb r0, [r5]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_022302BC
+ mov r1, #0
+ strb r1, [r6, r0]
+ b _0223DB20
+_0223D6D4:
+ ldr r0, [sp, #0x38]
+ cmp r0, #0
+ beq _0223D740
+ cmp r4, #2
+ bne _0223D740
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_02256268
+ mov r0, #0
+ strb r0, [r6]
+ strb r0, [r6, #2]
+ b _0223DB20
+_0223D6EE:
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_02255544
+ mov r0, #3
+ strb r0, [r5]
+_0223D6FC:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0xff
+ bne _0223D734
+ mov r0, #0
+ strb r0, [r5]
+ b _0223DB20
+ nop
+_0223D710: .word 0x000021AC
+_0223D714: .word 0x00003108
+_0223D718: .word 0x000021A8
+_0223D71C: .word 0x0000219C
+_0223D720: .word 0x000021B4
+_0223D724: .word 0x00002DEC
+_0223D728: .word 0x000030BC
+_0223D72C: .word 0x000021B0
+_0223D730: .word 0x00000251
+_0223D734:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ bne _0223D742
+_0223D740:
+ b _0223DB20
+_0223D742:
+ mov r1, #0x23
+ ldr r0, [sp, #0x4c]
+ lsl r1, r1, #8
+ ldrb r0, [r0, r1]
+ sub r3, r0, #1
+ cmp r3, #4
+ bne _0223D75E
+ ldr r1, _0223DA6C ; =0x000021A8
+ ldr r0, [sp, #0x54]
+ mov r2, #0x10
+ str r2, [r0, r1]
+ mov r0, #0xa
+ strb r0, [r5]
+ b _0223DB20
+_0223D75E:
+ add r0, sp, #0x94
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_02245F74
+ cmp r0, #0
+ bne _0223D7A8
+ mov r0, sp
+ str r0, [sp, #0x70]
+ sub r0, #8
+ str r0, [sp, #0x70]
+ add r3, r0, #0
+ mov r0, #4
+ add r2, sp, #0x94
+ str r0, [sp, #0x74]
+_0223D780:
+ ldmia r2!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [sp, #0x74]
+ sub r0, r0, #1
+ str r0, [sp, #0x74]
+ bne _0223D780
+ ldr r0, [r2]
+ add r1, r4, #0
+ str r0, [r3]
+ ldr r0, [sp, #0x70]
+ ldmia r0!, {r2, r3}
+ str r0, [sp, #0x70]
+ add r0, r7, #0
+ bl MOD11_02255FBC
+ mov r0, #0xe
+ strb r0, [r5]
+ mov r0, #2
+ strb r0, [r5, #4]
+ b _0223DB20
+_0223D7A8:
+ mov r3, #0x23
+ ldr r0, [sp, #0x4c]
+ lsl r3, r3, #8
+ ldrb r2, [r0, r3]
+ ldr r1, _0223DA70 ; =0x000021B0
+ ldr r0, [sp, #0x54]
+ str r2, [r0, r1]
+ ldr r0, [sp, #0x4c]
+ ldr r2, _0223DA74 ; =0x000030BC
+ ldrb r0, [r0, r3]
+ sub r1, r0, #1
+ ldr r0, [sp, #0x44]
+ strh r1, [r0, r2]
+ ldrh r0, [r0, r2]
+ sub r2, #8
+ lsl r1, r0, #1
+ ldr r0, [sp, #0x48]
+ add r1, r0, r1
+ ldr r0, _0223DA78 ; =0x00002D4C
+ ldrh r1, [r1, r0]
+ ldr r0, [sp, #0x44]
+ strh r1, [r0, r2]
+ mov r0, #4
+ strb r0, [r5]
+ b _0223DB20
+_0223D7DA:
+ add r0, sp, #0x90
+ str r0, [sp]
+ ldr r1, _0223DA74 ; =0x000030BC
+ ldr r0, [sp, #0x44]
+ lsl r2, r4, #0x18
+ ldrh r0, [r0, r1]
+ ldr r3, [sp, #0x24]
+ add r1, r6, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x40]
+ lsr r2, r2, #0x18
+ str r0, [sp, #8]
+ add r0, r7, #0
+ bl MOD11_0224235C
+ cmp r0, #0
+ beq _0223D80E
+ ldr r2, [sp, #0x90]
+ add r0, r7, #0
+ add r1, r6, #0
+ add r3, r4, #0
+ bl MOD11_02255600
+ mov r0, #5
+ strb r0, [r5]
+ b _0223DB20
+_0223D80E:
+ mov r0, #0xc
+ strb r0, [r5]
+ b _0223DB20
+_0223D814:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0xff
+ bne _0223D826
+ mov r0, #2
+ strb r0, [r5]
+ b _0223DB20
+_0223D826:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ beq _0223D91A
+ mov r1, #0x23
+ ldr r0, [sp, #0x4c]
+ lsl r1, r1, #8
+ ldrb r0, [r0, r1]
+ ldr r1, _0223DA7C ; =0x000021AC
+ sub r2, r0, #1
+ ldr r0, [sp, #0x54]
+ str r2, [r0, r1]
+ mov r0, #0xc
+ strb r0, [r5]
+ b _0223DB20
+_0223D848:
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_0225573C
+ mov r0, #7
+ strb r0, [r5]
+_0223D856:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0xff
+ bne _0223D868
+ mov r0, #0
+ strb r0, [r5]
+ b _0223DB20
+_0223D868:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ beq _0223D91A
+ ldr r0, [sp, #0x3c]
+ ldr r1, _0223DA70 ; =0x000021B0
+ ldr r2, [r0]
+ ldr r0, [sp, #0x54]
+ str r2, [r0, r1]
+ mov r0, #0xc
+ strb r0, [r5]
+ b _0223DB20
+_0223D884:
+ mov r0, #6
+ str r0, [sp, #0x58]
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_02249E80
+ str r0, [sp, #0x5c]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_02230260
+ cmp r0, #4
+ beq _0223D8AC
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_02230260
+ cmp r0, #5
+ bne _0223D8E4
+_0223D8AC:
+ ldr r0, [sp, #0x24]
+ cmp r0, #3
+ beq _0223D8CA
+ cmp r0, #7
+ beq _0223D8CA
+ cmp r0, #0x83
+ beq _0223D8CA
+ cmp r0, #0x13
+ bne _0223D8E4
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_02230260
+ cmp r0, #4
+ bne _0223D8E4
+_0223D8CA:
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_022302BC
+ lsl r0, r0, #4
+ add r2, r6, r0
+ ldr r0, _0223DA6C ; =0x000021A8
+ ldr r1, [r2, r0]
+ cmp r1, #0xf
+ bne _0223D8E4
+ add r0, #8
+ ldr r0, [r2, r0]
+ str r0, [sp, #0x58]
+_0223D8E4:
+ ldr r0, [sp, #0x5c]
+ add r1, r6, #0
+ str r0, [sp]
+ ldr r0, [sp, #0x58]
+ add r2, r4, #0
+ str r0, [sp, #4]
+ add r0, r7, #0
+ mov r3, #0
+ bl MOD11_022558E0
+ mov r0, #9
+ strb r0, [r5]
+_0223D8FC:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0xff
+ bne _0223D90E
+ mov r0, #0
+ strb r0, [r5]
+ b _0223DB20
+_0223D90E:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ bne _0223D91C
+_0223D91A:
+ b _0223DB20
+_0223D91C:
+ mov r3, #0x23
+ ldr r0, [sp, #0x4c]
+ lsl r3, r3, #8
+ ldrb r0, [r0, r3]
+ ldr r2, _0223DA70 ; =0x000021B0
+ sub r1, r0, #1
+ ldr r0, [sp, #0x54]
+ str r1, [r0, r2]
+ ldr r0, [sp, #0x4c]
+ sub r2, #0x10
+ ldrb r0, [r0, r3]
+ sub r0, r0, #1
+ strb r0, [r5, r2]
+ mov r0, #0xc
+ strb r0, [r5]
+ b _0223DB20
+_0223D93C:
+ ldr r0, [sp, #0x20]
+ cmp r0, #0
+ beq _0223D95C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r3, _0223DA80 ; =0x000003BB
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD11_02255980
+ mov r0, #0xb
+ strb r0, [r5]
+ b _0223DB20
+_0223D95C:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ beq _0223D9AA
+ ldr r0, [sp, #0x28]
+ cmp r0, #0
+ bne _0223D9AA
+ mov r1, #0
+ add r0, sp, #0x90
+ strb r1, [r0, #5]
+ ldr r1, _0223DA84 ; =0x00000319
+ add r2, sp, #0x94
+ strh r1, [r0, #6]
+ mov r0, sp
+ str r0, [sp, #0x78]
+ sub r0, #8
+ str r0, [sp, #0x78]
+ add r3, r0, #0
+ mov r0, #4
+ str r0, [sp, #0x7c]
+_0223D982:
+ ldmia r2!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [sp, #0x7c]
+ sub r0, r0, #1
+ str r0, [sp, #0x7c]
+ bne _0223D982
+ ldr r0, [r2]
+ add r1, r4, #0
+ str r0, [r3]
+ ldr r0, [sp, #0x78]
+ ldmia r0!, {r2, r3}
+ str r0, [sp, #0x78]
+ add r0, r7, #0
+ bl MOD11_02255FBC
+ mov r0, #0xe
+ strb r0, [r5]
+ mov r0, #0
+ strb r0, [r5, #4]
+ b _0223DB20
+_0223D9AA:
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ add r3, sp, #0x94
+ bl MOD11_02246ED0
+ cmp r0, #0
+ beq _0223D9F2
+ mov r0, sp
+ str r0, [sp, #0x80]
+ sub r0, #8
+ str r0, [sp, #0x80]
+ add r3, r0, #0
+ mov r0, #4
+ add r2, sp, #0x94
+ str r0, [sp, #0x84]
+_0223D9CA:
+ ldmia r2!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [sp, #0x84]
+ sub r0, r0, #1
+ str r0, [sp, #0x84]
+ bne _0223D9CA
+ ldr r0, [r2]
+ add r1, r4, #0
+ str r0, [r3]
+ ldr r0, [sp, #0x80]
+ ldmia r0!, {r2, r3}
+ str r0, [sp, #0x80]
+ add r0, r7, #0
+ bl MOD11_02255FBC
+ mov r0, #0xe
+ strb r0, [r5]
+ mov r0, #0
+ strb r0, [r5, #4]
+ b _0223DB20
+_0223D9F2:
+ mov r0, #0xb
+ strb r0, [r5]
+ b _0223DB20
+_0223D9F8:
+ ldr r0, [sp, #0x20]
+ cmp r0, #0
+ beq _0223DA22
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ beq _0223DA26
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0xff
+ bne _0223DA1C
+ mov r0, #0
+ strb r0, [r5]
+ b _0223DA26
+_0223DA1C:
+ mov r0, #0xc
+ strb r0, [r5]
+ b _0223DA26
+_0223DA22:
+ mov r0, #0xc
+ strb r0, [r5]
+_0223DA26:
+ ldr r0, [sp, #0x38]
+ cmp r0, #0
+ beq _0223DB20
+ ldr r0, [sp, #0x34]
+ cmp r0, #0
+ bne _0223DB20
+ ldrb r0, [r5]
+ cmp r0, #0xc
+ bne _0223DB20
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_022302BC
+ mov r1, #0xc
+ strb r1, [r6, r0]
+ b _0223DB20
+_0223DA46:
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_02256268
+ ldr r0, [sp, #0x24]
+ cmp r0, #7
+ bne _0223DA88
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_022302BC
+ ldrb r0, [r6, r0]
+ cmp r0, #0xd
+ bne _0223DA90
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_022564CC
+ b _0223DA90
+ .align 2, 0
+_0223DA6C: .word 0x000021A8
+_0223DA70: .word 0x000021B0
+_0223DA74: .word 0x000030BC
+_0223DA78: .word 0x00002D4C
+_0223DA7C: .word 0x000021AC
+_0223DA80: .word 0x000003BB
+_0223DA84: .word 0x00000319
+_0223DA88:
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_022564CC
+_0223DA90:
+ mov r0, #0xd
+ strb r0, [r5]
+_0223DA94:
+ ldr r0, [sp, #0x60]
+ add r0, r0, #1
+ str r0, [sp, #0x60]
+ b _0223DB20
+_0223DA9C:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224AD90
+ cmp r0, #0
+ beq _0223DB20
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_02243400
+ ldrb r0, [r5, #4]
+ strb r0, [r5]
+ b _0223DB20
+_0223DAB6:
+ mov r1, #2
+ add r0, sp, #0x90
+ strb r1, [r0, #5]
+ mov r1, #0x26
+ lsl r1, r1, #4
+ strh r1, [r0, #6]
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0224682C
+ str r0, [sp, #0x98]
+ mov r0, sp
+ str r0, [sp, #0x88]
+ sub r0, #8
+ str r0, [sp, #0x88]
+ add r3, r0, #0
+ mov r0, #4
+ add r2, sp, #0x94
+ mov ip, r0
+_0223DADC:
+ ldmia r2!, {r0, r1}
+ stmia r3!, {r0, r1}
+ mov r0, ip
+ sub r0, r0, #1
+ mov ip, r0
+ bne _0223DADC
+ ldr r0, [r2]
+ add r1, r4, #0
+ str r0, [r3]
+ ldr r0, [sp, #0x88]
+ ldmia r0!, {r2, r3}
+ str r0, [sp, #0x88]
+ add r0, r7, #0
+ bl MOD11_02255FBC
+ ldr r0, [sp, #0x50]
+ mov r1, #1
+ ldr r0, [r0]
+ bic r0, r1
+ mov r1, #1
+ orr r1, r0
+ ldr r0, [sp, #0x50]
+ str r1, [r0]
+ mov r0, #0xe
+ strb r0, [r5]
+ mov r0, #0xc
+ strb r0, [r5, #4]
+ b _0223DB20
+_0223DB14:
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_022563B4
+ ldrb r0, [r5, #4]
+ strb r0, [r5]
+_0223DB20:
+ ldr r0, [sp, #0x54]
+ ldr r1, [sp, #0x4c]
+ add r0, #0x10
+ str r0, [sp, #0x54]
+ ldr r0, [sp, #0x50]
+ add r4, r4, #1
+ add r0, #0x40
+ str r0, [sp, #0x50]
+ mov r0, #1
+ lsl r0, r0, #8
+ add r1, r1, r0
+ str r1, [sp, #0x4c]
+ ldr r1, [sp, #0x48]
+ add r1, #0xc0
+ str r1, [sp, #0x48]
+ ldr r1, [sp, #0x44]
+ add r1, r1, #2
+ str r1, [sp, #0x44]
+ ldr r1, [sp, #0x40]
+ add r1, #0x10
+ str r1, [sp, #0x40]
+ ldr r1, [sp, #0x3c]
+ add r0, r1, r0
+ str r0, [sp, #0x3c]
+ ldr r0, [sp, #0x64]
+ cmp r4, r0
+ bge _0223DB58
+ b _0223D430
+_0223DB58:
+ ldr r1, [sp, #0x60]
+ ldr r0, [sp, #0x64]
+ cmp r1, r0
+ bne _0223DB96
+ mov r0, #6
+ str r0, [r6, #8]
+ ldr r0, [sp, #0x64]
+ mov r5, #0
+ cmp r0, #0
+ ble _0223DB96
+ str r6, [sp, #0x8c]
+_0223DB6E:
+ ldr r1, _0223DB9C ; =0x000021A8
+ ldr r0, [sp, #0x8c]
+ ldr r0, [r0, r1]
+ cmp r0, #0xf
+ bne _0223DB88
+ ldr r3, _0223DBA0 ; =0x000021A0
+ add r4, r6, r5
+ ldrb r3, [r4, r3]
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, r5, #0
+ bl MOD11_0224B290
+_0223DB88:
+ ldr r0, [sp, #0x8c]
+ add r5, r5, #1
+ add r0, #0x10
+ str r0, [sp, #0x8c]
+ ldr r0, [sp, #0x64]
+ cmp r5, r0
+ blt _0223DB6E
+_0223DB96:
+ add sp, #0xb8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223DB9C: .word 0x000021A8
+_0223DBA0: .word 0x000021A0
+
+ thumb_func_start MOD11_0223DBA4
+MOD11_0223DBA4: ; 0x0223DBA4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ str r0, [sp, #4]
+ add r5, r1, #0
+ bl MOD11_0222FF84
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #4]
+ bl MOD11_0222FF74
+ mov r2, #0x22
+ lsl r2, r2, #4
+ mov r1, #0
+ tst r2, r0
+ beq _0223DBDA
+ ldr r0, [sp, #0x14]
+ add r4, r1, #0
+ cmp r0, #0
+ ble _0223DBD8
+ ldr r1, _0223DD14 ; =0x000021E8
+_0223DBCC:
+ add r0, r5, r4
+ strb r4, [r0, r1]
+ ldr r0, [sp, #0x14]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _0223DBCC
+_0223DBD8:
+ b _0223DD0C
+_0223DBDA:
+ mov r2, #4
+ tst r0, r2
+ beq _0223DC02
+ ldr r0, [sp, #0x14]
+ add r4, r1, #0
+ cmp r0, #0
+ ble _0223DC1A
+ ldr r2, _0223DD18 ; =0x000021B4
+ add r3, r5, #0
+_0223DBEC:
+ ldr r0, [r3, r2]
+ cmp r0, #4
+ bne _0223DBF6
+ mov r1, #5
+ b _0223DC1A
+_0223DBF6:
+ ldr r0, [sp, #0x14]
+ add r4, r4, #1
+ add r3, #0x10
+ cmp r4, r0
+ blt _0223DBEC
+ b _0223DC1A
+_0223DC02:
+ ldr r0, _0223DD18 ; =0x000021B4
+ ldr r0, [r5, r0]
+ cmp r0, #4
+ bne _0223DC0E
+ add r4, r1, #0
+ mov r1, #5
+_0223DC0E:
+ ldr r0, _0223DD1C ; =0x000021D4
+ ldr r0, [r5, r0]
+ cmp r0, #4
+ bne _0223DC1A
+ mov r4, #2
+ mov r1, #5
+_0223DC1A:
+ cmp r1, #5
+ bne _0223DC42
+ ldr r0, _0223DD14 ; =0x000021E8
+ ldr r2, [sp, #0x14]
+ strb r4, [r5, r0]
+ mov r1, #1
+ mov r0, #0
+ cmp r2, #0
+ ble _0223DD0C
+ ldr r3, _0223DD14 ; =0x000021E8
+_0223DC2E:
+ cmp r0, r4
+ beq _0223DC38
+ add r2, r5, r1
+ strb r0, [r2, r3]
+ add r1, r1, #1
+_0223DC38:
+ ldr r2, [sp, #0x14]
+ add r0, r0, #1
+ cmp r0, r2
+ blt _0223DC2E
+ b _0223DD0C
+_0223DC42:
+ ldr r0, [sp, #0x14]
+ mov r2, #0
+ cmp r0, #0
+ ble _0223DC6A
+ ldr r4, _0223DD14 ; =0x000021E8
+ add r0, r5, #0
+ add r6, r4, #0
+ sub r6, #0x34
+_0223DC52:
+ ldr r3, [r0, r6]
+ sub r3, r3, #2
+ cmp r3, #1
+ bhi _0223DC60
+ add r3, r5, r1
+ strb r2, [r3, r4]
+ add r1, r1, #1
+_0223DC60:
+ ldr r3, [sp, #0x14]
+ add r2, r2, #1
+ add r0, #0x10
+ cmp r2, r3
+ blt _0223DC52
+_0223DC6A:
+ ldr r0, [sp, #0x14]
+ mov r2, #0
+ cmp r0, #0
+ ble _0223DC94
+ ldr r4, _0223DD14 ; =0x000021E8
+ add r0, r5, #0
+ add r6, r4, #0
+ sub r6, #0x34
+_0223DC7A:
+ ldr r3, [r0, r6]
+ cmp r3, #2
+ beq _0223DC8A
+ cmp r3, #3
+ beq _0223DC8A
+ add r3, r5, r1
+ strb r2, [r3, r4]
+ add r1, r1, #1
+_0223DC8A:
+ ldr r3, [sp, #0x14]
+ add r2, r2, #1
+ add r0, #0x10
+ cmp r2, r3
+ blt _0223DC7A
+_0223DC94:
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x14]
+ sub r0, r0, #1
+ str r0, [sp, #0x18]
+ cmp r0, #0
+ ble _0223DD0C
+_0223DCA2:
+ ldr r0, [sp, #8]
+ add r7, r0, #1
+ ldr r0, [sp, #0x14]
+ cmp r7, r0
+ bge _0223DD00
+ ldr r0, [sp, #8]
+ add r0, r5, r0
+ str r0, [sp, #0x10]
+_0223DCB2:
+ ldr r1, [sp, #0x10]
+ ldr r0, _0223DD14 ; =0x000021E8
+ ldrb r6, [r1, r0]
+ add r1, r5, r7
+ ldrb r4, [r1, r0]
+ lsl r0, r6, #4
+ str r1, [sp, #0xc]
+ add r1, r5, r0
+ ldr r0, _0223DD18 ; =0x000021B4
+ ldr r0, [r1, r0]
+ lsl r1, r4, #4
+ add r2, r5, r1
+ ldr r1, _0223DD18 ; =0x000021B4
+ ldr r1, [r2, r1]
+ cmp r0, r1
+ bne _0223DCF8
+ cmp r0, #1
+ beq _0223DCDA
+ mov r0, #1
+ b _0223DCDC
+_0223DCDA:
+ mov r0, #0
+_0223DCDC:
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ add r2, r6, #0
+ add r3, r4, #0
+ bl MOD11_02244248
+ cmp r0, #0
+ beq _0223DCF8
+ ldr r1, [sp, #0x10]
+ ldr r0, _0223DD14 ; =0x000021E8
+ strb r4, [r1, r0]
+ ldr r1, [sp, #0xc]
+ strb r6, [r1, r0]
+_0223DCF8:
+ ldr r0, [sp, #0x14]
+ add r7, r7, #1
+ cmp r7, r0
+ blt _0223DCB2
+_0223DD00:
+ ldr r0, [sp, #8]
+ add r1, r0, #1
+ ldr r0, [sp, #0x18]
+ str r1, [sp, #8]
+ cmp r1, r0
+ blt _0223DCA2
+_0223DD0C:
+ mov r0, #7
+ str r0, [r5, #8]
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223DD14: .word 0x000021E8
+_0223DD18: .word 0x000021B4
+_0223DD1C: .word 0x000021D4
+
+ thumb_func_start MOD11_0223DD20
+MOD11_0223DD20: ; 0x0223DD20
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ mov r1, #0
+ str r0, [sp]
+ str r1, [sp, #4]
+ bl MOD11_0222FF84
+ add r7, r0, #0
+_0223DD32:
+ ldr r0, [r4, #0x28]
+ cmp r0, #3
+ bls _0223DD3A
+ b _0223DE4A
+_0223DD3A:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223DD46: ; jump table
+ .short _0223DD4E - _0223DD46 - 2 ; case 0
+ .short _0223DDE8 - _0223DD46 - 2 ; case 1
+ .short _0223DE26 - _0223DD46 - 2 ; case 2
+ .short _0223DE42 - _0223DD46 - 2 ; case 3
+_0223DD4E:
+ ldr r0, [r4, #0x2c]
+ cmp r0, r7
+ bge _0223DDDC
+ add r6, r4, #0
+ add r6, #0x2c
+_0223DD58:
+ add r1, r4, r0
+ ldr r0, _0223DE60 ; =0x000021E8
+ ldrb r5, [r1, r0]
+ add r0, r5, #0
+ bl MaskOfFlagNo
+ ldr r1, _0223DE64 ; =0x00003108
+ ldrb r1, [r4, r1]
+ tst r0, r1
+ ldr r0, [r6]
+ beq _0223DD74
+ add r0, r0, #1
+ str r0, [r6]
+ b _0223DDD6
+_0223DD74:
+ add r0, r0, #1
+ str r0, [r6]
+ mov r0, #0xc0
+ mul r0, r5
+ add r1, r4, r0
+ ldr r0, _0223DE68 ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ bne _0223DDD6
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0224683C
+ mov r1, #0x42
+ lsl r1, r1, #2
+ cmp r0, r1
+ bne _0223DDD6
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02247190
+ cmp r0, #0
+ bne _0223DDD6
+ lsl r0, r5, #6
+ add r1, r4, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ bne _0223DDD6
+ ldr r0, [sp]
+ bl MOD11_0225679C
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r5, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xe8
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add sp, #8
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223DDD6:
+ ldr r0, [r4, #0x2c]
+ cmp r0, r7
+ blt _0223DD58
+_0223DDDC:
+ mov r0, #0
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x28]
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ b _0223DE4A
+_0223DDE8:
+ mov r6, #0
+ cmp r7, #0
+ ble _0223DE1E
+ add r5, r4, #0
+_0223DDF0:
+ ldr r0, _0223DE6C ; =0x00002DB0
+ ldr r1, [r5, r0]
+ mov r0, #2
+ lsl r0, r0, #0x16
+ tst r0, r1
+ beq _0223DE16
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0224683C
+ cmp r0, #0x63
+ beq _0223DE16
+ ldr r0, _0223DE6C ; =0x00002DB0
+ ldr r1, [r5, r0]
+ mov r0, #2
+ lsl r0, r0, #0x16
+ and r1, r0
+ ldr r0, _0223DE6C ; =0x00002DB0
+ str r1, [r5, r0]
+_0223DE16:
+ add r6, r6, #1
+ add r5, #0xc0
+ cmp r6, r7
+ blt _0223DDF0
+_0223DE1E:
+ ldr r0, [r4, #0x28]
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ b _0223DE4A
+_0223DE26:
+ mov r6, #0
+ add r5, r4, #0
+_0223DE2A:
+ bl LCRandom
+ ldr r1, _0223DE70 ; =0x0000310C
+ add r6, r6, #1
+ strh r0, [r5, r1]
+ add r5, r5, #2
+ cmp r6, #4
+ blt _0223DE2A
+ ldr r0, [r4, #0x28]
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ b _0223DE4A
+_0223DE42:
+ mov r0, #0
+ str r0, [r4, #0x28]
+ mov r0, #2
+ str r0, [sp, #4]
+_0223DE4A:
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ bne _0223DE52
+ b _0223DD32
+_0223DE52:
+ cmp r0, #2
+ bne _0223DE5A
+ mov r0, #8
+ str r0, [r4, #8]
+_0223DE5A:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223DE60: .word 0x000021E8
+_0223DE64: .word 0x00003108
+_0223DE68: .word 0x00002DAC
+_0223DE6C: .word 0x00002DB0
+_0223DE70: .word 0x0000310C
+
+ thumb_func_start MOD11_0223DE74
+MOD11_0223DE74: ; 0x0223DE74
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ bl MOD11_0222FF84
+ add r4, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0224728C
+ add r0, r5, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ cmp r0, r4
+ bne _0223DEA0
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0xec
+ str r1, [r0]
+ mov r0, #9
+ str r0, [r5, #8]
+ pop {r4, r5, r6, pc}
+_0223DEA0:
+ add r1, r5, r0
+ ldr r0, _0223DEB4 ; =0x000021E8
+ ldrb r1, [r1, r0]
+ sub r0, #0x40
+ lsl r1, r1, #4
+ add r1, r5, r1
+ ldr r0, [r1, r0]
+ str r0, [r5, #8]
+ pop {r4, r5, r6, pc}
+ nop
+_0223DEB4: .word 0x000021E8
+
+ thumb_func_start MOD11_0223DEB8
+MOD11_0223DEB8: ; 0x0223DEB8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ str r0, [sp]
+ add r4, r1, #0
+ mov r5, #0
+ bl MOD11_0222FF84
+ str r0, [sp, #4]
+_0223DEC8:
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r1, #0
+ mov r3, #1
+ bl MOD11_0224246C
+ cmp r0, #1
+ beq _0223DEF2
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD11_02242510
+ cmp r0, #1
+ beq _0223DEF2
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_02241FD8
+ cmp r0, #1
+ bne _0223DEF4
+_0223DEF2:
+ b _0223E684
+_0223DEF4:
+ ldr r0, [r4, #0x10]
+ cmp r0, #0xd
+ bhi _0223DFCE
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223DF06: ; jump table
+ .short _0223DF22 - _0223DF06 - 2 ; case 0
+ .short _0223DFDC - _0223DF06 - 2 ; case 1
+ .short _0223E086 - _0223DF06 - 2 ; case 2
+ .short _0223E132 - _0223DF06 - 2 ; case 3
+ .short _0223E1E0 - _0223DF06 - 2 ; case 4
+ .short _0223E25C - _0223DF06 - 2 ; case 5
+ .short _0223E2D8 - _0223DF06 - 2 ; case 6
+ .short _0223E3A0 - _0223DF06 - 2 ; case 7
+ .short _0223E430 - _0223DF06 - 2 ; case 8
+ .short _0223E4C0 - _0223DF06 - 2 ; case 9
+ .short _0223E554 - _0223DF06 - 2 ; case 10
+ .short _0223E5EA - _0223DF06 - 2 ; case 11
+ .short _0223E62C - _0223DF06 - 2 ; case 12
+ .short _0223E666 - _0223DF06 - 2 ; case 13
+_0223DF22:
+ ldr r6, [r4, #0x14]
+ cmp r6, #2
+ bge _0223DFCA
+ mov r0, #0x71
+ lsl r0, r0, #2
+ add r0, r4, r0
+ str r0, [sp, #0x38]
+ add r0, r4, #0
+ str r0, [sp, #8]
+ add r0, #0x14
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0x1c]
+ mov r0, #0x1c
+ str r0, [sp, #0x18]
+_0223DF40:
+ lsl r0, r6, #2
+ mov r1, #0x6f
+ add r0, r4, r0
+ lsl r1, r1, #2
+ ldr r2, [r0, r1]
+ mov r1, #1
+ tst r1, r2
+ beq _0223DFB6
+ ldr r1, [sp, #0x38]
+ lsl r3, r6, #3
+ ldr r7, [r1, r3]
+ ldr r2, [sp, #0x18]
+ add r1, r7, #0
+ str r7, [sp, #0x2c]
+ bic r1, r2
+ str r1, [sp, #0x2c]
+ lsl r1, r7, #0x1b
+ lsr r1, r1, #0x1d
+ sub r1, r1, #1
+ lsl r1, r1, #0x1d
+ lsr r2, r1, #0x1b
+ ldr r1, [sp, #0x2c]
+ orr r2, r1
+ ldr r1, [sp, #0x38]
+ str r2, [r1, r3]
+ ldr r1, [r1, r3]
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x1d
+ bne _0223DFB6
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ ldr r2, [r0, r1]
+ ldr r1, [sp, #0x1c]
+ bic r2, r1
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ str r2, [r0, r1]
+ mov r1, #0x73
+ add r0, r1, #0
+ add r0, #0xb1
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x32
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add r1, r4, #0
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ ldr r0, [sp]
+ add r2, r6, #0
+ bl MOD11_0224C150
+ mov r1, #0x46
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r5, #1
+_0223DFB6:
+ ldr r0, [sp, #8]
+ ldr r0, [r0]
+ add r1, r0, #1
+ ldr r0, [sp, #8]
+ cmp r5, #0
+ str r1, [r0]
+ bne _0223DFCA
+ ldr r6, [r4, #0x14]
+ cmp r6, #2
+ blt _0223DF40
+_0223DFCA:
+ cmp r5, #0
+ beq _0223DFD0
+_0223DFCE:
+ b _0223E668
+_0223DFD0:
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ mov r0, #0
+ str r0, [r4, #0x14]
+ b _0223E668
+_0223DFDC:
+ ldr r6, [r4, #0x14]
+ cmp r6, #2
+ bge _0223E076
+ mov r0, #0x71
+ lsl r0, r0, #2
+ add r7, r4, r0
+ add r0, r4, #0
+ str r0, [sp, #0xc]
+ add r0, #0x14
+ str r0, [sp, #0xc]
+ mov r0, #2
+ str r0, [sp, #0x20]
+_0223DFF4:
+ lsl r0, r6, #2
+ add r3, r4, r0
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ ldr r1, [r3, r0]
+ mov r0, #2
+ tst r0, r1
+ beq _0223E062
+ lsl r2, r6, #3
+ ldr r1, [r7, r2]
+ ldr r0, _0223E340 ; =0xFFFFFC7F
+ and r0, r1
+ str r0, [sp, #0x30]
+ lsl r0, r1, #0x16
+ lsr r0, r0, #0x1d
+ sub r0, r0, #1
+ lsl r0, r0, #0x1d
+ lsr r1, r0, #0x16
+ ldr r0, [sp, #0x30]
+ orr r0, r1
+ str r0, [r7, r2]
+ ldr r0, [r7, r2]
+ lsl r0, r0, #0x16
+ lsr r0, r0, #0x1d
+ bne _0223E062
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ ldr r0, [r3, r0]
+ ldr r1, [sp, #0x20]
+ mov r2, #0x32
+ bic r0, r1
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ str r0, [r3, r1]
+ mov r1, #0x71
+ add r0, r1, #0
+ add r0, #0xb3
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add r1, r4, #0
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ ldr r0, [sp]
+ add r2, r6, #0
+ bl MOD11_0224C150
+ mov r1, #0x46
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r5, #1
+_0223E062:
+ ldr r0, [sp, #0xc]
+ ldr r0, [r0]
+ add r1, r0, #1
+ ldr r0, [sp, #0xc]
+ cmp r5, #0
+ str r1, [r0]
+ bne _0223E076
+ ldr r6, [r4, #0x14]
+ cmp r6, #2
+ blt _0223DFF4
+_0223E076:
+ cmp r5, #0
+ bne _0223E124
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ mov r0, #0
+ str r0, [r4, #0x14]
+ b _0223E668
+_0223E086:
+ ldr r6, [r4, #0x14]
+ cmp r6, #2
+ bge _0223E120
+ mov r0, #0x71
+ lsl r0, r0, #2
+ add r7, r4, r0
+ add r0, r4, #0
+ str r0, [sp, #0x10]
+ add r0, #0x14
+ str r0, [sp, #0x10]
+ mov r0, #0x40
+ str r0, [sp, #0x24]
+_0223E09E:
+ lsl r0, r6, #2
+ add r3, r4, r0
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ ldr r1, [r3, r0]
+ mov r0, #0x40
+ tst r0, r1
+ beq _0223E10C
+ lsl r2, r6, #3
+ ldr r1, [r7, r2]
+ ldr r0, _0223E344 ; =0xFFFF8FFF
+ and r0, r1
+ str r0, [sp, #0x34]
+ lsl r0, r1, #0x11
+ lsr r0, r0, #0x1d
+ sub r0, r0, #1
+ lsl r0, r0, #0x1d
+ lsr r1, r0, #0x11
+ ldr r0, [sp, #0x34]
+ orr r0, r1
+ str r0, [r7, r2]
+ ldr r0, [r7, r2]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x1d
+ bne _0223E10C
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ ldr r0, [r3, r0]
+ ldr r1, [sp, #0x24]
+ mov r2, #0x32
+ bic r0, r1
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ str r0, [r3, r1]
+ mov r1, #0x36
+ add r0, r1, #0
+ add r0, #0xee
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add r1, r4, #0
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ ldr r0, [sp]
+ add r2, r6, #0
+ bl MOD11_0224C150
+ mov r1, #0x46
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r5, #1
+_0223E10C:
+ ldr r0, [sp, #0x10]
+ ldr r0, [r0]
+ add r1, r0, #1
+ ldr r0, [sp, #0x10]
+ cmp r5, #0
+ str r1, [r0]
+ bne _0223E120
+ ldr r6, [r4, #0x14]
+ cmp r6, #2
+ blt _0223E09E
+_0223E120:
+ cmp r5, #0
+ beq _0223E126
+_0223E124:
+ b _0223E668
+_0223E126:
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ mov r0, #0
+ str r0, [r4, #0x14]
+ b _0223E668
+_0223E132:
+ ldr r7, [r4, #0x14]
+ cmp r7, #2
+ bge _0223E1D0
+ mov r0, #0x71
+ lsl r0, r0, #2
+ add r6, r4, r0
+ add r0, r4, #0
+ str r0, [sp, #0x14]
+ add r0, #0x14
+ str r0, [sp, #0x14]
+ mov r0, #8
+ str r0, [sp, #0x28]
+_0223E14A:
+ lsl r0, r7, #2
+ add r3, r4, r0
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ ldr r1, [r3, r0]
+ mov r0, #8
+ tst r0, r1
+ beq _0223E1BC
+ lsl r0, r7, #3
+ ldr r2, [r6, r0]
+ ldr r1, _0223E348 ; =0xFFF1FFFF
+ and r1, r2
+ mov ip, r1
+ lsl r1, r2, #0xc
+ lsr r1, r1, #0x1d
+ sub r1, r1, #1
+ lsl r1, r1, #0x1d
+ lsr r2, r1, #0xc
+ mov r1, ip
+ orr r1, r2
+ str r1, [r6, r0]
+ ldr r1, [r6, r0]
+ lsl r1, r1, #0xc
+ lsr r1, r1, #0x1d
+ bne _0223E1BC
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ ldr r1, [r3, r1]
+ ldr r2, [sp, #0x28]
+ bic r1, r2
+ mov r2, #0x6f
+ lsl r2, r2, #2
+ str r1, [r3, r2]
+ ldr r0, [r6, r0]
+ lsl r0, r0, #0xf
+ lsr r1, r0, #0x1e
+ add r0, r2, #0
+ sub r0, #0xa4
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x6e
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add r1, r4, #0
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ ldr r0, [sp]
+ add r2, r7, #0
+ bl MOD11_0224C150
+ mov r1, #0x46
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r5, #1
+_0223E1BC:
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0]
+ add r1, r0, #1
+ ldr r0, [sp, #0x14]
+ cmp r5, #0
+ str r1, [r0]
+ bne _0223E1D0
+ ldr r7, [r4, #0x14]
+ cmp r7, #2
+ blt _0223E14A
+_0223E1D0:
+ cmp r5, #0
+ bne _0223E24E
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ mov r0, #0
+ str r0, [r4, #0x14]
+ b _0223E668
+_0223E1E0:
+ ldr r6, [r4, #0x14]
+ cmp r6, #2
+ bge _0223E24A
+ add r7, r4, #0
+ add r7, #0x14
+_0223E1EA:
+ lsl r0, r6, #2
+ mov r1, #0x6f
+ add r0, r4, r0
+ lsl r1, r1, #2
+ ldr r2, [r0, r1]
+ mov r1, #3
+ lsl r1, r1, #8
+ tst r1, r2
+ beq _0223E23A
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ ldr r2, [r0, r1]
+ sub r1, #0xbc
+ sub r2, r2, r1
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ str r2, [r0, r1]
+ ldr r1, [r0, r1]
+ mov r0, #3
+ lsl r0, r0, #8
+ tst r0, r1
+ bne _0223E23A
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xe9
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add r1, r4, #0
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ ldr r0, [sp]
+ add r2, r6, #0
+ bl MOD11_0224C150
+ mov r1, #0x46
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r5, #1
+_0223E23A:
+ ldr r0, [r7]
+ add r0, r0, #1
+ str r0, [r7]
+ cmp r5, #0
+ bne _0223E24A
+ ldr r6, [r4, #0x14]
+ cmp r6, #2
+ blt _0223E1EA
+_0223E24A:
+ cmp r5, #0
+ beq _0223E250
+_0223E24E:
+ b _0223E668
+_0223E250:
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ mov r0, #0
+ str r0, [r4, #0x14]
+ b _0223E668
+_0223E25C:
+ ldr r6, [r4, #0x14]
+ cmp r6, #2
+ bge _0223E2C8
+ add r7, r4, #0
+ add r7, #0x14
+_0223E266:
+ lsl r0, r6, #2
+ mov r1, #0x6f
+ add r0, r4, r0
+ lsl r1, r1, #2
+ ldr r2, [r0, r1]
+ mov r1, #7
+ lsl r1, r1, #0xc
+ tst r1, r2
+ beq _0223E2B8
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ ldr r2, [r0, r1]
+ mov r1, #1
+ lsl r1, r1, #0xc
+ sub r2, r2, r1
+ mov r1, #0x6f
+ lsl r1, r1, #2
+ str r2, [r0, r1]
+ ldr r1, [r0, r1]
+ mov r0, #7
+ lsl r0, r0, #0xc
+ tst r0, r1
+ bne _0223E2B8
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xfa
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add r1, r4, #0
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ ldr r0, [sp]
+ add r2, r6, #0
+ bl MOD11_0224C150
+ mov r1, #0x46
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r5, #1
+_0223E2B8:
+ ldr r0, [r7]
+ add r0, r0, #1
+ str r0, [r7]
+ cmp r5, #0
+ bne _0223E2C8
+ ldr r6, [r4, #0x14]
+ cmp r6, #2
+ blt _0223E266
+_0223E2C8:
+ cmp r5, #0
+ bne _0223E392
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ mov r0, #0
+ str r0, [r4, #0x14]
+ b _0223E668
+_0223E2D8:
+ ldr r0, [r4, #0x14]
+ ldr r1, [sp, #4]
+ cmp r0, r1
+ bge _0223E38E
+ add r6, r4, #0
+ mov r7, #2
+ add r6, #0x14
+_0223E2E6:
+ add r1, r4, r0
+ ldr r0, _0223E34C ; =0x000021EC
+ ldrb r2, [r1, r0]
+ mov r0, #0x63
+ lsl r0, r0, #2
+ add r1, r4, r2
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ beq _0223E37C
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldrb r0, [r1, r0]
+ sub r3, r0, #1
+ mov r0, #0x63
+ lsl r0, r0, #2
+ strb r3, [r1, r0]
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ bne _0223E37C
+ mov r0, #0xc0
+ mul r0, r2
+ ldr r3, _0223E350 ; =0x00002D8C
+ add r0, r4, r0
+ ldr r3, [r0, r3]
+ cmp r3, #0
+ beq _0223E37C
+ mov r3, #0x46
+ lsl r3, r3, #2
+ str r2, [r4, r3]
+ add r3, r4, #0
+ add r3, #0xf5
+ strb r7, [r3]
+ add r5, r4, #0
+ ldr r3, _0223E354 ; =0x00000215
+ add r5, #0xf6
+ strh r3, [r5]
+ sub r3, #0x5d
+ ldrb r1, [r1, r3]
+ lsl r1, r1, #8
+ orr r2, r1
+ add r1, r4, #0
+ add r1, #0xf8
+ str r2, [r1]
+ ldr r1, _0223E358 ; =0x00002D90
+ b _0223E35C
+ .align 2, 0
+_0223E340: .word 0xFFFFFC7F
+_0223E344: .word 0xFFFF8FFF
+_0223E348: .word 0xFFF1FFFF
+_0223E34C: .word 0x000021EC
+_0223E350: .word 0x00002D8C
+_0223E354: .word 0x00000215
+_0223E358: .word 0x00002D90
+_0223E35C:
+ ldr r0, [r0, r1]
+ add r1, r7, #0
+ bl MOD11_022476C0
+ ldr r1, _0223E688 ; =0x0000215C
+ mov r2, #0x88
+ str r0, [r4, r1]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r5, #1
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_0223E37C:
+ ldr r0, [r6]
+ add r0, r0, #1
+ str r0, [r6]
+ cmp r5, #0
+ bne _0223E38E
+ ldr r0, [r4, #0x14]
+ ldr r1, [sp, #4]
+ cmp r0, r1
+ blt _0223E2E6
+_0223E38E:
+ cmp r5, #0
+ beq _0223E394
+_0223E392:
+ b _0223E668
+_0223E394:
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ mov r0, #0
+ str r0, [r4, #0x14]
+ b _0223E668
+_0223E3A0:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r2, #3
+ tst r2, r1
+ beq _0223E428
+ mov r2, #2
+ tst r1, r2
+ beq _0223E3D6
+ add r0, r4, #0
+ ldr r1, _0223E68C ; =0x00000321
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xf5
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x68
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0223E41E
+_0223E3D6:
+ add r1, r0, #4
+ ldr r1, [r4, r1]
+ sub r2, r1, #1
+ add r1, r0, #4
+ str r2, [r4, r1]
+ add r0, r0, #4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0223E3FC
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xea
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0223E41E
+_0223E3FC:
+ add r0, r4, #0
+ ldr r1, _0223E68C ; =0x00000321
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xf5
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x68
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_0223E41E:
+ mov r0, #0x4e
+ mov r1, #0x13
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r5, #1
+_0223E428:
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ b _0223E668
+_0223E430:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r2, #0xc
+ tst r2, r1
+ beq _0223E4B8
+ mov r2, #8
+ tst r1, r2
+ beq _0223E466
+ add r0, r4, #0
+ ldr r1, _0223E690 ; =0x00000325
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xf5
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x68
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0223E4AE
+_0223E466:
+ add r1, r0, #4
+ ldr r1, [r4, r1]
+ sub r2, r1, #1
+ add r1, r0, #4
+ str r2, [r4, r1]
+ add r0, r0, #4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0223E48C
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xeb
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0223E4AE
+_0223E48C:
+ add r0, r4, #0
+ ldr r1, _0223E690 ; =0x00000325
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xf5
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x68
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_0223E4AE:
+ mov r0, #0x4e
+ mov r1, #0x15
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r5, #1
+_0223E4B8:
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ b _0223E668
+_0223E4C0:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r2, #0x30
+ tst r2, r1
+ beq _0223E54C
+ mov r2, #0x20
+ tst r1, r2
+ beq _0223E4F8
+ mov r1, #0xca
+ add r0, r4, #0
+ lsl r1, r1, #2
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xf5
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x68
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0223E542
+_0223E4F8:
+ add r1, r0, #4
+ ldr r1, [r4, r1]
+ sub r2, r1, #1
+ add r1, r0, #4
+ str r2, [r4, r1]
+ add r0, r0, #4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0223E51E
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xec
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0223E542
+_0223E51E:
+ mov r1, #0xca
+ add r0, r4, #0
+ lsl r1, r1, #2
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xf5
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x68
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_0223E542:
+ mov r0, #0x4e
+ mov r1, #0x16
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r5, #1
+_0223E54C:
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ b _0223E668
+_0223E554:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r2, [r4, r0]
+ mov r1, #0xc0
+ add r0, r2, #0
+ tst r0, r1
+ beq _0223E5E2
+ mov r0, #0x80
+ tst r0, r2
+ beq _0223E58C
+ add r0, r4, #0
+ ldr r1, _0223E694 ; =0x0000032B
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xf5
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x68
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0223E5D8
+_0223E58C:
+ add r0, r1, #0
+ add r0, #0xc4
+ ldr r0, [r4, r0]
+ sub r2, r0, #1
+ add r0, r1, #0
+ add r0, #0xc4
+ add r1, #0xc4
+ str r2, [r4, r0]
+ ldr r0, [r4, r1]
+ cmp r0, #0
+ bne _0223E5B6
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xed
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0223E5D8
+_0223E5B6:
+ add r0, r4, #0
+ ldr r1, _0223E694 ; =0x0000032B
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xf5
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x68
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_0223E5D8:
+ mov r0, #0x4e
+ mov r1, #0x14
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r5, #1
+_0223E5E2:
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ b _0223E668
+_0223E5EA:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #2
+ lsl r0, r0, #0xe
+ tst r0, r1
+ beq _0223E624
+ add r0, r4, #0
+ ldr r1, _0223E698 ; =0x0000032D
+ add r0, #0xf6
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xf5
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x68
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r1, #0x12
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r5, #1
+_0223E624:
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ b _0223E668
+_0223E62C:
+ mov r1, #6
+ lsl r1, r1, #6
+ ldr r3, [r4, r1]
+ mov r2, #7
+ lsl r2, r2, #0xc
+ add r0, r3, #0
+ tst r0, r2
+ beq _0223E65E
+ mov r0, #1
+ lsl r0, r0, #0xc
+ sub r0, r3, r0
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ tst r0, r2
+ bne _0223E65E
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xee
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r5, #1
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_0223E65E:
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ b _0223E668
+_0223E666:
+ mov r5, #2
+_0223E668:
+ cmp r5, #0
+ bne _0223E66E
+ b _0223DEC8
+_0223E66E:
+ cmp r5, #1
+ bne _0223E678
+ ldr r0, [sp]
+ bl MOD11_0225679C
+_0223E678:
+ cmp r5, #2
+ bne _0223E684
+ mov r0, #0
+ str r0, [r4, #0x10]
+ mov r0, #0xa
+ str r0, [r4, #8]
+_0223E684:
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223E688: .word 0x0000215C
+_0223E68C: .word 0x00000321
+_0223E690: .word 0x00000325
+_0223E694: .word 0x0000032B
+_0223E698: .word 0x0000032D
+
+ thumb_func_start MOD11_0223E69C
+MOD11_0223E69C: ; 0x0223E69C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r4, r1, #0
+ mov r1, #0
+ str r1, [sp, #0x10]
+ str r0, [sp, #4]
+ bl MOD11_0222FF84
+ ldr r1, [r4, #8]
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r2, r1, #0
+ mov r3, #1
+ bl MOD11_0224246C
+ cmp r0, #1
+ beq _0223E6D8
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD11_02242510
+ cmp r0, #1
+ beq _0223E6D8
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ bl MOD11_02241FD8
+ cmp r0, #1
+ bne _0223E6DC
+_0223E6D8:
+ bl _0223F0B2
+_0223E6DC:
+ ldr r1, [r4, #0x1c]
+ ldr r0, [sp, #0xc]
+ cmp r1, r0
+ blt _0223E6E8
+ bl _0223F0A8
+_0223E6E8:
+ ldr r0, _0223EA14 ; =0x000021EC
+ add r1, r4, r1
+ ldrb r5, [r1, r0]
+ add r0, r5, #0
+ bl MaskOfFlagNo
+ ldr r1, _0223EA18 ; =0x00003108
+ ldrb r1, [r4, r1]
+ tst r0, r1
+ beq _0223E706
+ ldr r0, [r4, #0x1c]
+ add r0, r0, #1
+ str r0, [r4, #0x1c]
+ bl _0223F09C
+_0223E706:
+ ldr r0, [r4, #0x18]
+ cmp r0, #0x1a
+ bls _0223E710
+ bl _0223F08C
+_0223E710:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223E71C: ; jump table
+ .short _0223E752 - _0223E71C - 2 ; case 0
+ .short _0223E7BA - _0223E71C - 2 ; case 1
+ .short _0223E83C - _0223E71C - 2 ; case 2
+ .short _0223E856 - _0223E71C - 2 ; case 3
+ .short _0223E872 - _0223E71C - 2 ; case 4
+ .short _0223E88C - _0223E71C - 2 ; case 5
+ .short _0223E8F6 - _0223E71C - 2 ; case 6
+ .short _0223E948 - _0223E71C - 2 ; case 7
+ .short _0223E9C8 - _0223E71C - 2 ; case 8
+ .short _0223EA04 - _0223E71C - 2 ; case 9
+ .short _0223EA72 - _0223E71C - 2 ; case 10
+ .short _0223EAB0 - _0223E71C - 2 ; case 11
+ .short _0223EB2A - _0223E71C - 2 ; case 12
+ .short _0223EBAE - _0223E71C - 2 ; case 13
+ .short _0223ECA6 - _0223E71C - 2 ; case 14
+ .short _0223ED0E - _0223E71C - 2 ; case 15
+ .short _0223ED90 - _0223E71C - 2 ; case 16
+ .short _0223EE56 - _0223E71C - 2 ; case 17
+ .short _0223EE74 - _0223E71C - 2 ; case 18
+ .short _0223EEBA - _0223E71C - 2 ; case 19
+ .short _0223EF06 - _0223E71C - 2 ; case 20
+ .short _0223EF50 - _0223E71C - 2 ; case 21
+ .short _0223EF9A - _0223E71C - 2 ; case 22
+ .short _0223EFE4 - _0223E71C - 2 ; case 23
+ .short _0223F034 - _0223E71C - 2 ; case 24
+ .short _0223F068 - _0223E71C - 2 ; case 25
+ .short _0223F082 - _0223E71C - 2 ; case 26
+_0223E752:
+ mov r6, #0xc0
+ add r0, r5, #0
+ mul r0, r6
+ add r3, r4, r0
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ mov r1, #1
+ ldr r2, [r3, r0]
+ lsl r1, r1, #0xa
+ tst r1, r2
+ beq _0223E7B0
+ add r1, r0, #0
+ sub r1, #0x34
+ ldr r2, [r3, r1]
+ add r1, r0, #0
+ sub r1, #0x30
+ ldr r1, [r3, r1]
+ cmp r2, r1
+ beq _0223E7B0
+ cmp r2, #0
+ beq _0223E7B0
+ add r0, #0xc
+ ldr r0, [r3, r0]
+ lsl r0, r0, #0xd
+ lsr r0, r0, #0x1d
+ beq _0223E796
+ add r6, #0x58
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xef
+ str r5, [r4, r6]
+ bl MOD11_022431DC
+ b _0223E7A4
+_0223E796:
+ add r6, #0x58
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x89
+ str r5, [r4, r6]
+ bl MOD11_022431DC
+_0223E7A4:
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223E7B0:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ bl _0223F08C
+_0223E7BA:
+ mov r0, #0xc0
+ add r1, r5, #0
+ mul r1, r0
+ add r6, r4, r1
+ mov r1, #0xb7
+ lsl r1, r1, #6
+ mov r2, #1
+ ldr r3, [r6, r1]
+ lsl r2, r2, #0x18
+ tst r2, r3
+ beq _0223E832
+ add r2, r1, #0
+ sub r2, #0x34
+ ldr r3, [r6, r2]
+ add r2, r1, #0
+ sub r2, #0x30
+ ldr r2, [r6, r2]
+ cmp r3, r2
+ beq _0223E832
+ cmp r3, #0
+ beq _0223E832
+ add r2, r1, #0
+ add r2, #0xc
+ ldr r2, [r6, r2]
+ lsl r2, r2, #0xd
+ lsr r2, r2, #0x1d
+ beq _0223E800
+ add r0, #0x58
+ str r5, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xef
+ bl MOD11_022431DC
+ b _0223E826
+_0223E800:
+ add r2, r0, #0
+ add r2, #0x58
+ str r5, [r4, r2]
+ add r2, r0, #0
+ add r2, #0xc8
+ add r0, #0x64
+ sub r1, #0x30
+ str r2, [r4, r0]
+ ldr r0, [r6, r1]
+ mov r1, #0x10
+ bl MOD11_022476C0
+ ldr r1, _0223EA1C ; =0x0000215C
+ mov r2, #0xa9
+ str r0, [r4, r1]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+_0223E826:
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223E832:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ bl _0223F08C
+_0223E83C:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_022475B8
+ cmp r0, #1
+ bne _0223E84C
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223E84C:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ bl _0223F08C
+_0223E856:
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD11_02248C0C
+ cmp r0, #1
+ bne _0223E868
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223E868:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ bl _0223F08C
+_0223E872:
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD11_022492A4
+ cmp r0, #1
+ bne _0223E884
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223E884:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223E88C:
+ mov r3, #0xc0
+ add r0, r5, #0
+ mul r0, r3
+ mov r2, #0xb7
+ add r6, r4, r0
+ lsl r2, r2, #6
+ ldr r0, [r6, r2]
+ mov r1, #4
+ tst r1, r0
+ beq _0223E8EE
+ mov r1, #3
+ and r0, r1
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r4, r1
+ sub r2, #0x34
+ ldr r0, [r0, r2]
+ cmp r0, #0
+ beq _0223E8EE
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _0223E8EE
+ ldr r0, _0223EA20 ; =0x00002D8C
+ ldr r1, [r6, r0]
+ cmp r1, #0
+ beq _0223E8EE
+ add r0, #0x34
+ ldr r1, [r6, r0]
+ mov r0, #3
+ and r1, r0
+ mov r0, #0x47
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, r0, #4
+ str r5, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x45
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223E8EE:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223E8F6:
+ mov r2, #0xc0
+ add r0, r5, #0
+ mul r0, r2
+ ldr r3, _0223EA24 ; =0x00002DAC
+ add r0, r4, r0
+ ldr r1, [r0, r3]
+ mov r6, #8
+ tst r1, r6
+ beq _0223E940
+ add r1, r3, #0
+ sub r1, #0x20
+ ldr r1, [r0, r1]
+ cmp r1, #0
+ beq _0223E940
+ add r2, #0x58
+ str r5, [r4, r2]
+ sub r3, #0x1c
+ ldr r1, [r0, r3]
+ add r0, r6, #0
+ sub r0, #9
+ mul r0, r1
+ add r1, r6, #0
+ bl MOD11_022476C0
+ ldr r1, _0223EA1C ; =0x0000215C
+ mov r2, #0x17
+ str r0, [r4, r1]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223E940:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223E948:
+ mov r0, #0xc0
+ mul r0, r5
+ ldr r1, _0223EA24 ; =0x00002DAC
+ add r6, r4, r0
+ ldr r0, [r6, r1]
+ mov r2, #0x80
+ tst r0, r2
+ beq _0223E9C0
+ add r0, r1, #0
+ sub r0, #0x20
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ beq _0223E9C0
+ add r2, #0x98
+ str r5, [r4, r2]
+ sub r1, #0x1c
+ ldr r0, [r6, r1]
+ mov r1, #0x10
+ bl MOD11_022476C0
+ ldr r1, _0223EA1C ; =0x0000215C
+ str r0, [r4, r1]
+ ldr r1, _0223EA24 ; =0x00002DAC
+ mov r0, #0xf
+ ldr r2, [r6, r1]
+ lsl r0, r0, #8
+ add r3, r2, #0
+ and r3, r0
+ cmp r3, r0
+ beq _0223E98C
+ mov r0, #1
+ lsl r0, r0, #8
+ add r0, r2, r0
+ str r0, [r6, r1]
+_0223E98C:
+ ldr r2, _0223EA24 ; =0x00002DAC
+ ldr r0, _0223EA1C ; =0x0000215C
+ ldr r3, [r6, r2]
+ mov r2, #0xf
+ lsl r2, r2, #8
+ and r2, r3
+ ldr r1, [r4, r0]
+ lsr r2, r2, #8
+ mul r2, r1
+ str r2, [r4, r0]
+ mov r1, #0
+ ldr r2, [r4, r0]
+ mvn r1, r1
+ mul r1, r2
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x17
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223E9C0:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223E9C8:
+ mov r0, #0xc0
+ add r1, r5, #0
+ mul r1, r0
+ add r6, r4, r1
+ ldr r1, _0223EA24 ; =0x00002DAC
+ mov r2, #0x10
+ ldr r3, [r6, r1]
+ tst r2, r3
+ beq _0223E9FC
+ sub r1, #0x20
+ ldr r1, [r6, r1]
+ cmp r1, #0
+ beq _0223E9FC
+ add r0, #0x58
+ str r5, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x1a
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223E9FC:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EA04:
+ mov r6, #0xc0
+ add r0, r5, #0
+ mul r0, r6
+ add r3, r4, r0
+ ldr r7, _0223EA28 ; =0x00002DB0
+ ldr r0, _0223EA18 ; =0x00003108
+ b _0223EA2C
+ nop
+_0223EA14: .word 0x000021EC
+_0223EA18: .word 0x00003108
+_0223EA1C: .word 0x0000215C
+_0223EA20: .word 0x00002D8C
+_0223EA24: .word 0x00002DAC
+_0223EA28: .word 0x00002DB0
+_0223EA2C:
+ ldr r2, [r3, r7]
+ lsl r0, r0, #0x18
+ tst r0, r2
+ beq _0223EA6A
+ add r0, r7, #0
+ sub r0, #0x24
+ ldr r0, [r3, r0]
+ cmp r0, #0
+ beq _0223EA6A
+ sub r0, r7, #4
+ ldr r1, [r3, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0223EA64
+ add r6, #0x58
+ str r5, [r4, r6]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x5e
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ b _0223EA6A
+_0223EA64:
+ ldr r0, _0223ED9C ; =0xF7FFFFFF
+ and r0, r2
+ str r0, [r3, r7]
+_0223EA6A:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EA72:
+ mov r0, #0xc0
+ add r1, r5, #0
+ mul r1, r0
+ add r6, r4, r1
+ ldr r1, _0223EDA0 ; =0x00002DB0
+ mov r2, #1
+ ldr r3, [r6, r1]
+ lsl r2, r2, #0x1c
+ tst r2, r3
+ beq _0223EAA8
+ sub r1, #0x24
+ ldr r1, [r6, r1]
+ cmp r1, #0
+ beq _0223EAA8
+ add r0, #0x58
+ str r5, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x62
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223EAA8:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EAB0:
+ mov r1, #0xc0
+ add r0, r5, #0
+ mul r0, r1
+ ldr r2, _0223EDA0 ; =0x00002DB0
+ add r6, r4, r0
+ ldr r3, [r6, r2]
+ mov r7, #0xe
+ lsl r7, r7, #0xc
+ add r0, r3, #0
+ tst r0, r7
+ beq _0223EB22
+ add r0, r2, #0
+ sub r0, #0x24
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ beq _0223EB22
+ mov r0, #2
+ lsl r0, r0, #0xc
+ sub r0, r3, r0
+ str r0, [r6, r2]
+ ldr r0, [r6, r2]
+ tst r0, r7
+ beq _0223EAFE
+ sub r2, #0x20
+ ldr r2, [r6, r2]
+ sub r1, #0xc1
+ add r0, r2, #0
+ mul r0, r1
+ mov r1, #0x10
+ bl MOD11_022476C0
+ ldr r1, _0223EDA4 ; =0x0000215C
+ mov r2, #0x3b
+ str r0, [r4, r1]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ b _0223EB08
+_0223EAFE:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x3c
+ bl MOD11_022431DC
+_0223EB08:
+ ldr r0, _0223EDA8 ; =0x00002DEA
+ ldrh r1, [r6, r0]
+ mov r0, #0x49
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ sub r0, #0xc
+ str r5, [r4, r0]
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223EB22:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EB2A:
+ mov r0, #0x7b
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ mov r2, #4
+ add r3, r5, #0
+ bl MOD11_02246870
+ mov r1, #0x4e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0xc0
+ mul r0, r5
+ add r6, r4, r0
+ ldr r0, _0223EDAC ; =0x00002DAC
+ ldr r1, [r6, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0223EBA6
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _0223EBA6
+ ldr r1, _0223EDB0 ; =0x00002D8C
+ ldr r0, [r6, r1]
+ cmp r0, #0
+ beq _0223EBA6
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0223EBA6
+ add r0, r1, #4
+ ldr r1, [r6, r0]
+ mov r0, #0
+ mvn r0, r0
+ mul r0, r1
+ mov r1, #8
+ bl MOD11_022476C0
+ ldr r1, _0223EDA4 ; =0x0000215C
+ ldr r2, _0223EDB4 ; =0x00000107
+ str r0, [r4, r1]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, _0223EDB8 ; =0x0000213C
+ mov r1, #0x40
+ ldr r2, [r4, r0]
+ orr r2, r1
+ str r2, [r4, r0]
+ add r1, #0xd8
+ str r5, [r4, r1]
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223EBA6:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EBAE:
+ mov r0, #0xc0
+ mul r0, r5
+ add r7, r4, r0
+ ldr r0, _0223EDA0 ; =0x00002DB0
+ ldr r1, [r7, r0]
+ mov r0, #0x70
+ tst r0, r1
+ beq _0223EC96
+ ldr r0, [sp, #0xc]
+ mov r6, #0
+ cmp r0, #0
+ ble _0223EC08
+_0223EBC6:
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r4, r0
+ ldr r0, _0223EDAC ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0223EBFC
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x2b
+ beq _0223EBFC
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r6, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x13
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0223EC08
+_0223EBFC:
+ add r0, r6, #1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ ldr r0, [sp, #0xc]
+ cmp r6, r0
+ blt _0223EBC6
+_0223EC08:
+ ldr r0, [sp, #0xc]
+ cmp r6, r0
+ beq _0223EC14
+ mov r0, #2
+ str r0, [sp, #0x10]
+ b _0223F08C
+_0223EC14:
+ ldr r0, _0223EDA0 ; =0x00002DB0
+ ldr r1, [r7, r0]
+ sub r1, #0x10
+ str r1, [r7, r0]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02246764
+ cmp r0, #0
+ ldr r2, _0223EDA0 ; =0x00002DB0
+ beq _0223EC4E
+ ldr r1, [r7, r2]
+ mov r0, #0x70
+ bic r1, r0
+ mov r6, #0xf1
+ add r0, r5, #0
+ str r1, [r7, r2]
+ bl MaskOfFlagNo
+ add r3, r6, #0
+ add r3, #0x8f
+ lsl r2, r0, #8
+ add r0, r6, #0
+ sub r0, #0xf2
+ ldr r1, [r4, r3]
+ eor r0, r2
+ and r0, r1
+ str r0, [r4, r3]
+ b _0223EC7A
+_0223EC4E:
+ ldr r1, [r7, r2]
+ mov r0, #0x70
+ tst r0, r1
+ beq _0223EC5A
+ mov r6, #0xf0
+ b _0223EC7A
+_0223EC5A:
+ mov r0, #0x70
+ bic r1, r0
+ mov r6, #0xf1
+ add r0, r5, #0
+ str r1, [r7, r2]
+ bl MaskOfFlagNo
+ add r3, r6, #0
+ add r3, #0x8f
+ lsl r2, r0, #8
+ add r0, r6, #0
+ sub r0, #0xf2
+ ldr r1, [r4, r3]
+ eor r0, r2
+ and r0, r1
+ str r0, [r4, r3]
+_0223EC7A:
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r5, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ add r2, r6, #0
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223EC96:
+ ldr r0, [sp, #0x10]
+ cmp r0, #2
+ bne _0223EC9E
+ b _0223F08C
+_0223EC9E:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223ECA6:
+ mov r2, #0xc0
+ add r0, r5, #0
+ mul r0, r2
+ add r6, r4, r0
+ ldr r0, _0223EDA0 ; =0x00002DB0
+ lsl r2, r2, #4
+ ldr r1, [r6, r0]
+ tst r2, r1
+ beq _0223ED06
+ mov r2, #1
+ lsl r2, r2, #0xa
+ sub r1, r1, r2
+ str r1, [r6, r0]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02246764
+ cmp r0, #0
+ beq _0223ECD8
+ ldr r1, _0223EDA0 ; =0x00002DB0
+ ldr r0, _0223EDBC ; =0xFFFFF3FF
+ ldr r2, [r6, r1]
+ and r0, r2
+ str r0, [r6, r1]
+ b _0223ED06
+_0223ECD8:
+ ldr r0, _0223EDA0 ; =0x00002DB0
+ ldr r1, [r6, r0]
+ mov r0, #3
+ lsl r0, r0, #0xa
+ tst r0, r1
+ bne _0223ED06
+ mov r0, #7
+ tst r0, r1
+ bne _0223ED06
+ add r0, r4, #0
+ add r0, #0x94
+ str r5, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x33
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223ED06:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223ED0E:
+ mov r0, #0xc0
+ add r6, r5, #0
+ mul r6, r0
+ add r0, r4, r6
+ ldr r1, _0223EDC0 ; =0x00002DE8
+ mov ip, r0
+ ldrh r3, [r0, r1]
+ cmp r3, #0
+ beq _0223ED88
+ ldr r7, _0223EDC4 ; =0x00002D4C
+ mov r2, #0
+ mov r1, ip
+_0223ED26:
+ ldrh r0, [r1, r7]
+ cmp r3, r0
+ beq _0223ED34
+ add r2, r2, #1
+ add r1, r1, #2
+ cmp r2, #4
+ blt _0223ED26
+_0223ED34:
+ cmp r2, #4
+ bne _0223ED44
+ ldr r0, _0223EDC8 ; =0x00002DC8
+ add r1, r4, r0
+ ldr r2, [r1, r6]
+ mov r0, #7
+ bic r2, r0
+ str r2, [r1, r6]
+_0223ED44:
+ ldr r1, _0223EDC8 ; =0x00002DC8
+ add r0, r4, r6
+ ldr r0, [r0, r1]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1d
+ beq _0223ED64
+ add r2, r4, r1
+ ldr r1, [r2, r6]
+ mov r3, #7
+ bic r1, r3
+ sub r3, r0, #1
+ mov r0, #7
+ and r0, r3
+ orr r0, r1
+ str r0, [r2, r6]
+ b _0223ED88
+_0223ED64:
+ mov r2, #0
+ add r1, #0x20
+ mov r0, ip
+ strh r2, [r0, r1]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r5, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x48
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223ED88:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223ED90:
+ mov r0, #0xc0
+ add r6, r5, #0
+ mul r6, r0
+ add r0, r4, r6
+ ldr r1, _0223EDCC ; =0x00002DEC
+ b _0223EDD0
+ .align 2, 0
+_0223ED9C: .word 0xF7FFFFFF
+_0223EDA0: .word 0x00002DB0
+_0223EDA4: .word 0x0000215C
+_0223EDA8: .word 0x00002DEA
+_0223EDAC: .word 0x00002DAC
+_0223EDB0: .word 0x00002D8C
+_0223EDB4: .word 0x00000107
+_0223EDB8: .word 0x0000213C
+_0223EDBC: .word 0xFFFFF3FF
+_0223EDC0: .word 0x00002DE8
+_0223EDC4: .word 0x00002D4C
+_0223EDC8: .word 0x00002DC8
+_0223EDCC: .word 0x00002DEC
+_0223EDD0:
+ str r0, [sp, #8]
+ ldrh r2, [r0, r1]
+ cmp r2, #0
+ beq _0223EE4E
+ ldr r7, _0223F0B8 ; =0x00002D4C
+ mov r3, #0
+ add r1, r0, #0
+_0223EDDE:
+ ldrh r0, [r1, r7]
+ cmp r2, r0
+ beq _0223EDEC
+ add r3, r3, #1
+ add r1, r1, #2
+ cmp r3, #4
+ blt _0223EDDE
+_0223EDEC:
+ cmp r3, #4
+ beq _0223EDFE
+ beq _0223EE0A
+ ldr r0, [sp, #8]
+ add r1, r0, r3
+ ldr r0, _0223F0BC ; =0x00002D6C
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ bne _0223EE0A
+_0223EDFE:
+ ldr r0, _0223F0C0 ; =0x00002DC8
+ add r2, r4, r0
+ ldr r1, [r2, r6]
+ mov r0, #0x38
+ bic r1, r0
+ str r1, [r2, r6]
+_0223EE0A:
+ ldr r1, _0223F0C0 ; =0x00002DC8
+ add r0, r4, r6
+ ldr r0, [r0, r1]
+ lsl r0, r0, #0x1a
+ lsr r2, r0, #0x1d
+ beq _0223EE2A
+ add r1, r4, r1
+ sub r2, r2, #1
+ lsl r2, r2, #0x1d
+ ldr r0, [r1, r6]
+ mov r3, #0x38
+ bic r0, r3
+ lsr r2, r2, #0x1a
+ orr r0, r2
+ str r0, [r1, r6]
+ b _0223EE4E
+_0223EE2A:
+ ldr r0, [sp, #8]
+ mov r2, #0
+ add r1, #0x24
+ strh r2, [r0, r1]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r5, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x4a
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223EE4E:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EE56:
+ mov r0, #0xc0
+ mul r0, r5
+ add r3, r4, r0
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r2, [r3, r0]
+ mov r1, #0x18
+ tst r1, r2
+ beq _0223EE6C
+ sub r2, #8
+ str r2, [r3, r0]
+_0223EE6C:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EE74:
+ mov r0, #0xc0
+ mul r0, r5
+ ldr r2, _0223F0C0 ; =0x00002DC8
+ add r5, r4, r0
+ ldr r1, [r5, r2]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x1e
+ beq _0223EEB2
+ add r3, r4, r2
+ ldr r6, [r3, r0]
+ mov r1, #0xc0
+ add r7, r6, #0
+ bic r7, r1
+ lsl r1, r6, #0x18
+ lsr r1, r1, #0x1e
+ sub r1, r1, #1
+ lsl r1, r1, #0x1e
+ lsr r1, r1, #0x18
+ orr r1, r7
+ str r1, [r3, r0]
+ ldr r0, [r3, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1e
+ bne _0223EEB2
+ add r0, r2, #0
+ sub r0, #8
+ ldr r1, [r5, r0]
+ ldr r0, _0223F0C4 ; =0xFFFFFDFF
+ sub r2, #8
+ and r0, r1
+ str r0, [r5, r2]
+_0223EEB2:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EEBA:
+ ldr r0, _0223F0C0 ; =0x00002DC8
+ mov r2, #0xc0
+ add r3, r5, #0
+ mul r3, r2
+ add r1, r4, r0
+ ldr r7, [r1, r3]
+ lsl r0, r7, #0x15
+ lsr r6, r0, #0x1d
+ beq _0223EEFE
+ ldr r0, _0223F0C8 ; =0xFFFFF8FF
+ and r7, r0
+ sub r0, r6, #1
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x15
+ orr r0, r7
+ str r0, [r1, r3]
+ ldr r0, [r1, r3]
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x1d
+ bne _0223EEFE
+ add r0, r2, #0
+ add r0, #0x58
+ str r5, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ add r2, #0x60
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223EEFE:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EF06:
+ ldr r0, _0223F0CC ; =0x00002DCC
+ mov r1, #0xc0
+ add r3, r5, #0
+ mul r3, r1
+ add r2, r4, r0
+ ldr r7, [r2, r3]
+ lsl r0, r7, #0x10
+ lsr r6, r0, #0x1d
+ beq _0223EF48
+ ldr r0, _0223F0D0 ; =0xFFFF1FFF
+ and r7, r0
+ sub r0, r6, #1
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x10
+ orr r0, r7
+ str r0, [r2, r3]
+ ldr r0, [r2, r3]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x1d
+ bne _0223EF48
+ add r1, #0x58
+ str r5, [r4, r1]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xf2
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223EF48:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EF50:
+ ldr r0, _0223F0CC ; =0x00002DCC
+ mov r1, #0xc0
+ add r3, r5, #0
+ mul r3, r1
+ add r2, r4, r0
+ ldr r7, [r2, r3]
+ lsl r0, r7, #0xd
+ lsr r6, r0, #0x1d
+ beq _0223EF92
+ ldr r0, _0223F0D4 ; =0xFFF8FFFF
+ and r7, r0
+ sub r0, r6, #1
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0xd
+ orr r0, r7
+ str r0, [r2, r3]
+ ldr r0, [r2, r3]
+ lsl r0, r0, #0xd
+ lsr r0, r0, #0x1d
+ bne _0223EF92
+ add r1, #0x58
+ str r5, [r4, r1]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xf3
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223EF92:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EF9A:
+ ldr r0, _0223F0CC ; =0x00002DCC
+ mov r1, #0xc0
+ add r3, r5, #0
+ mul r3, r1
+ add r2, r4, r0
+ ldr r7, [r2, r3]
+ lsl r0, r7, #0xa
+ lsr r6, r0, #0x1d
+ beq _0223EFDC
+ ldr r0, _0223F0D8 ; =0xFFC7FFFF
+ and r7, r0
+ sub r0, r6, #1
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0xa
+ orr r0, r7
+ str r0, [r2, r3]
+ ldr r0, [r2, r3]
+ lsl r0, r0, #0xa
+ lsr r0, r0, #0x1d
+ bne _0223EFDC
+ add r1, #0x58
+ str r5, [r4, r1]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xf4
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223EFDC:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223EFE4:
+ mov r6, #0xc0
+ add r0, r5, #0
+ mul r0, r6
+ mov r3, #0xb7
+ add r1, r4, r0
+ lsl r3, r3, #6
+ ldr r0, [r1, r3]
+ lsl r2, r6, #5
+ tst r2, r0
+ beq _0223F02C
+ mov r2, #2
+ lsl r2, r2, #0xa
+ sub r0, r0, r2
+ str r0, [r1, r3]
+ ldr r1, [r1, r3]
+ lsl r0, r6, #5
+ tst r0, r1
+ bne _0223F02C
+ add r0, r4, #0
+ add r0, #0x94
+ str r5, [r0]
+ add r0, r4, #0
+ mov r1, #4
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x12
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223F02C:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223F034:
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ add r2, r5, #0
+ add r3, sp, #0x14
+ bl MOD11_022493A0
+ cmp r0, #1
+ bne _0223F060
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r5, [r4, r0]
+ ldr r2, [sp, #0x14]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223F060:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223F068:
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD11_02249A7C
+ cmp r0, #1
+ bne _0223F07A
+ mov r0, #1
+ str r0, [sp, #0x10]
+_0223F07A:
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ b _0223F08C
+_0223F082:
+ mov r0, #0
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x1c]
+ add r0, r0, #1
+ str r0, [r4, #0x1c]
+_0223F08C:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ beq _0223F09C
+ ldr r0, [sp, #4]
+ bl MOD11_0225679C
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F09C:
+ ldr r1, [r4, #0x1c]
+ ldr r0, [sp, #0xc]
+ cmp r1, r0
+ bge _0223F0A8
+ bl _0223E6E8
+_0223F0A8:
+ mov r0, #0
+ str r0, [r4, #0x18]
+ str r0, [r4, #0x1c]
+ mov r0, #0xb
+ str r0, [r4, #8]
+_0223F0B2:
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223F0B8: .word 0x00002D4C
+_0223F0BC: .word 0x00002D6C
+_0223F0C0: .word 0x00002DC8
+_0223F0C4: .word 0xFFFFFDFF
+_0223F0C8: .word 0xFFFFF8FF
+_0223F0CC: .word 0x00002DCC
+_0223F0D0: .word 0xFFFF1FFF
+_0223F0D4: .word 0xFFF8FFFF
+_0223F0D8: .word 0xFFC7FFFF
+
+ thumb_func_start MOD11_0223F0DC
+MOD11_0223F0DC: ; 0x0223F0DC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ str r0, [sp]
+ bl MOD11_0222FF84
+ ldr r1, [r4, #8]
+ add r7, r0, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ mov r3, #1
+ bl MOD11_0224246C
+ cmp r0, #1
+ bne _0223F0FC
+ b _0223F30C
+_0223F0FC:
+ ldr r0, [sp]
+ bl MOD11_0225679C
+ ldr r0, [r4, #0x20]
+ cmp r0, #0
+ beq _0223F114
+ cmp r0, #1
+ beq _0223F1FE
+ cmp r0, #2
+ bne _0223F112
+ b _0223F2C4
+_0223F112:
+ b _0223F302
+_0223F114:
+ ldr r0, [r4, #0x24]
+ cmp r0, r7
+ bge _0223F1F4
+ add r5, r4, #0
+ add r5, #0x24
+_0223F11E:
+ add r1, r4, r0
+ ldr r0, _0223F310 ; =0x000021EC
+ ldrb r6, [r1, r0]
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ ldr r1, _0223F314 ; =0x00003108
+ ldrb r1, [r4, r1]
+ tst r0, r1
+ ldr r0, [r5]
+ beq _0223F13A
+ add r0, r0, #1
+ str r0, [r5]
+ b _0223F1EE
+_0223F13A:
+ add r0, r0, #1
+ mov r1, #0x62
+ str r0, [r5]
+ add r0, r4, r6
+ lsl r1, r1, #2
+ ldrb r1, [r0, r1]
+ cmp r1, #0
+ beq _0223F1EE
+ mov r1, #0x62
+ lsl r1, r1, #2
+ ldrb r1, [r0, r1]
+ sub r2, r1, #1
+ mov r1, #0x62
+ lsl r1, r1, #2
+ strb r2, [r0, r1]
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ bne _0223F1EE
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r4, r0
+ ldr r0, _0223F318 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0223F1EE
+ ldr r0, [sp]
+ add r1, r6, #0
+ bl MOD11_02230270
+ mov r2, #0x6f
+ lsl r2, r2, #2
+ add r1, r4, r2
+ lsl r5, r0, #2
+ ldr r3, [r1, r5]
+ mov r0, #0x10
+ bic r3, r0
+ add r0, r4, #0
+ str r3, [r1, r5]
+ add r2, #0x1f
+ add r0, #0xf6
+ strh r2, [r0]
+ add r0, r4, #0
+ mov r1, #0xa
+ add r0, #0xf5
+ strb r1, [r0]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_0224682C
+ add r1, r4, #0
+ add r1, #0xf8
+ str r0, [r1]
+ mov r0, #0x19
+ lsl r0, r0, #4
+ add r1, r4, #0
+ add r3, r4, r0
+ lsl r2, r6, #1
+ ldrh r5, [r3, r2]
+ add r1, #0xfc
+ str r5, [r1]
+ add r1, r0, #0
+ sub r1, #0x78
+ str r6, [r4, r1]
+ lsl r1, r6, #2
+ add r5, r0, #0
+ add r1, r4, r1
+ add r5, #8
+ ldr r6, [r1, r5]
+ add r5, r0, #0
+ sub r5, #0x74
+ str r6, [r4, r5]
+ ldrh r3, [r3, r2]
+ add r2, r0, #0
+ sub r2, #0x6c
+ str r3, [r4, r2]
+ add r0, #0x18
+ ldr r1, [r1, r0]
+ ldr r0, _0223F31C ; =0x0000215C
+ mov r2, #0x79
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add sp, #8
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F1EE:
+ ldr r0, [r4, #0x24]
+ cmp r0, r7
+ blt _0223F11E
+_0223F1F4:
+ ldr r0, [r4, #0x20]
+ add r0, r0, #1
+ str r0, [r4, #0x20]
+ mov r0, #0
+ str r0, [r4, #0x24]
+_0223F1FE:
+ ldr r0, [r4, #0x24]
+ cmp r0, r7
+ bge _0223F2BA
+ add r5, r4, #0
+ add r5, #0x24
+_0223F208:
+ add r1, r4, r0
+ ldr r0, _0223F310 ; =0x000021EC
+ ldrb r6, [r1, r0]
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ ldr r1, _0223F314 ; =0x00003108
+ ldrb r1, [r4, r1]
+ tst r0, r1
+ ldr r0, [r5]
+ beq _0223F224
+ add r0, r0, #1
+ str r0, [r5]
+ b _0223F2B4
+_0223F224:
+ add r0, r0, #1
+ str r0, [r5]
+ mov r0, #0xc0
+ mul r0, r6
+ mov r1, #0xb7
+ add r3, r4, r0
+ lsl r1, r1, #6
+ ldr r2, [r3, r1]
+ mov r1, #0x20
+ tst r1, r2
+ beq _0223F2B4
+ ldr r7, _0223F320 ; =0x00002DC8
+ add r2, r4, r7
+ ldr r1, [r2, r0]
+ lsl r1, r1, #0x11
+ lsr r1, r1, #0x1e
+ bne _0223F27E
+ add r1, r7, #0
+ sub r1, #8
+ add r1, r4, r1
+ str r1, [sp, #4]
+ ldr r1, [r1, r0]
+ mov r5, #0x20
+ bic r1, r5
+ ldr r5, [sp, #4]
+ sub r7, #0x3c
+ str r1, [r5, r0]
+ ldr r0, [r2, r0]
+ lsl r0, r0, #0x11
+ lsr r1, r0, #0x1e
+ mov r0, #0x13
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, [r3, r7]
+ ldr r1, _0223F31C ; =0x0000215C
+ neg r0, r0
+ str r0, [r4, r1]
+ add r0, r1, #0
+ sub r0, #0x20
+ ldr r2, [r4, r0]
+ mov r0, #0x40
+ orr r0, r2
+ sub r1, #0x20
+ str r0, [r4, r1]
+ b _0223F298
+_0223F27E:
+ mov r3, #0x13
+ lsl r3, r3, #4
+ str r1, [r4, r3]
+ ldr r3, [r2, r0]
+ ldr r1, _0223F324 ; =0xFFFF9FFF
+ and r1, r3
+ lsl r3, r3, #0x11
+ lsr r3, r3, #0x1e
+ sub r3, r3, #1
+ lsl r3, r3, #0x1e
+ lsr r3, r3, #0x11
+ orr r1, r3
+ str r1, [r2, r0]
+_0223F298:
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r6, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x66
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add sp, #8
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F2B4:
+ ldr r0, [r4, #0x24]
+ cmp r0, r7
+ blt _0223F208
+_0223F2BA:
+ ldr r0, [r4, #0x20]
+ add r0, r0, #1
+ str r0, [r4, #0x20]
+ mov r0, #0
+ str r0, [r4, #0x24]
+_0223F2C4:
+ mov r1, #6
+ lsl r1, r1, #6
+ ldr r3, [r4, r1]
+ mov r2, #7
+ lsl r2, r2, #0x10
+ add r0, r3, #0
+ tst r0, r2
+ beq _0223F2F8
+ mov r0, #1
+ lsl r0, r0, #0x10
+ sub r0, r3, r0
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ tst r0, r2
+ bne _0223F2F8
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xfb
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add sp, #8
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F2F8:
+ ldr r0, [r4, #0x20]
+ add r0, r0, #1
+ str r0, [r4, #0x20]
+ mov r0, #0
+ str r0, [r4, #0x24]
+_0223F302:
+ mov r0, #0
+ str r0, [r4, #0x20]
+ str r0, [r4, #0x24]
+ mov r0, #0xc
+ str r0, [r4, #8]
+_0223F30C:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223F310: .word 0x000021EC
+_0223F314: .word 0x00003108
+_0223F318: .word 0x00002D8C
+_0223F31C: .word 0x0000215C
+_0223F320: .word 0x00002DC8
+_0223F324: .word 0xFFFF9FFF
+
+ thumb_func_start MOD11_0223F328
+MOD11_0223F328: ; 0x0223F328
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #8]
+ add r5, r0, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD11_02242510
+ cmp r0, #1
+ beq _0223F37C
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02241FD8
+ cmp r0, #1
+ beq _0223F37C
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02241D2C
+ cmp r0, #1
+ beq _0223F37C
+ mov r1, #0x15
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ add r0, r0, #1
+ str r0, [r4, r1]
+ add r0, r1, #0
+ add r0, #0x24
+ ldr r0, [r4, r0]
+ add r1, #0x24
+ add r0, r0, #1
+ str r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD11_02245494
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02245C5C
+ mov r0, #2
+ str r0, [r4, #8]
+_0223F37C:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0223F380
+MOD11_0223F380: ; 0x0223F380
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ mov r4, #0
+ add r1, r5, r0
+ ldr r0, _0223F4A8 ; =0x000021E8
+ ldrb r2, [r1, r0]
+ lsl r0, r2, #6
+ add r1, r5, r0
+ mov r0, #0x75
+ str r2, [r5, #0x64]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ beq _0223F3B4
+ mov r0, #0xc1
+ mov r1, #0xa5
+ lsl r0, r0, #6
+ str r1, [r5, r0]
+ mov r4, #1
+ b _0223F478
+_0223F3B4:
+ mov r0, #0xc0
+ mul r0, r2
+ ldr r6, _0223F4AC ; =0x00002DEC
+ add r0, r5, r0
+ ldrh r1, [r0, r6]
+ cmp r1, #0
+ beq _0223F3DC
+ add r3, r6, #2
+ ldrh r3, [r0, r3]
+ sub r6, #0xa0
+ lsl r3, r3, #1
+ add r0, r0, r3
+ ldrh r0, [r0, r6]
+ cmp r1, r0
+ bne _0223F3DC
+ mov r0, #0xc1
+ lsl r0, r0, #6
+ str r1, [r5, r0]
+ mov r4, #1
+ b _0223F478
+_0223F3DC:
+ cmp r1, #0
+ beq _0223F42E
+ mov r7, #0xc0
+ add r0, r2, #0
+ mul r0, r7
+ ldr r3, _0223F4B0 ; =0x00002DEE
+ add r0, r5, r0
+ ldrh r6, [r0, r3]
+ lsl r6, r6, #1
+ add r0, r0, r6
+ add r6, r3, #0
+ sub r6, #0xa2
+ ldrh r0, [r0, r6]
+ cmp r1, r0
+ beq _0223F42E
+ mov r1, #0xc1
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ ldr r1, [r5, #0x64]
+ mov r0, #0
+ add r2, r1, #0
+ mul r2, r7
+ add r2, r5, r2
+ sub r1, r3, #2
+ strh r0, [r2, r1]
+ ldr r1, [r5, #0x64]
+ mov r4, #1
+ add r2, r1, #0
+ mul r2, r7
+ add r1, r5, r2
+ strh r0, [r1, r3]
+ ldr r0, [r5, #0x64]
+ sub r3, #0x26
+ add r2, r0, #0
+ add r3, r5, r3
+ mul r2, r7
+ ldr r1, [r3, r2]
+ mov r0, #0x38
+ bic r1, r0
+ str r1, [r3, r2]
+ b _0223F478
+_0223F42E:
+ add r0, r5, #0
+ add r1, r2, #0
+ bl MOD11_0224AD04
+ cmp r0, #0
+ bne _0223F44A
+ ldr r0, [r5, #0x64]
+ lsl r0, r0, #2
+ add r1, r5, r0
+ ldr r0, _0223F4B4 ; =0x0000304C
+ ldr r1, [r1, r0]
+ sub r0, #0xc
+ str r1, [r5, r0]
+ b _0223F478
+_0223F44A:
+ ldr r2, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ lsl r1, r2, #1
+ add r3, r5, r0
+ add r0, r5, r1
+ ldr r1, _0223F4B8 ; =0x000030BC
+ ldrh r2, [r0, r1]
+ lsl r2, r2, #1
+ add r3, r3, r2
+ ldr r2, _0223F4BC ; =0x00002D4C
+ ldrh r3, [r3, r2]
+ add r2, r1, #0
+ sub r2, #8
+ ldrh r0, [r0, r2]
+ cmp r0, r3
+ beq _0223F474
+ sub r1, #0x7c
+ str r3, [r5, r1]
+ mov r4, #1
+ b _0223F478
+_0223F474:
+ sub r1, #0x7c
+ str r3, [r5, r1]
+_0223F478:
+ mov r3, #0xc1
+ lsl r3, r3, #6
+ ldr r1, [r5, r3]
+ add r0, r3, #4
+ str r1, [r5, r0]
+ mov r0, #0x16
+ str r0, [r5, #8]
+ str r4, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r3, [r5, r3]
+ ldr r0, [sp, #8]
+ lsl r3, r3, #0x10
+ ldr r2, [r5, #0x64]
+ add r1, r5, #0
+ lsr r3, r3, #0x10
+ bl MOD11_02244C28
+ str r0, [r5, #0x6c]
+ ldr r0, [sp, #8]
+ bl MOD11_0225679C
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223F4A8: .word 0x000021E8
+_0223F4AC: .word 0x00002DEC
+_0223F4B0: .word 0x00002DEE
+_0223F4B4: .word 0x0000304C
+_0223F4B8: .word 0x000030BC
+_0223F4BC: .word 0x00002D4C
+
+ thumb_func_start MOD11_0223F4C0
+MOD11_0223F4C0: ; 0x0223F4C0
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0xec
+ ldr r2, [r2]
+ add r7, r0, #0
+ add r3, r4, r2
+ ldr r2, _0223F5FC ; =0x000021E8
+ ldrb r2, [r3, r2]
+ str r2, [r4, #0x64]
+ bl MOD11_022482A4
+ str r0, [r4, #0x6c]
+ ldr r0, _0223F600 ; =0x000021B0
+ ldr r1, [r4, #0x64]
+ add r2, r4, r0
+ lsl r0, r1, #4
+ add r6, r2, r0
+ add r0, r7, #0
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _0223F568
+ ldr r0, [r4, #0x64]
+ asr r0, r0, #1
+ add r1, r4, r0
+ ldr r0, _0223F604 ; =0x000003D1
+ ldrb r2, [r1, r0]
+ cmp r2, #4
+ bhi _0223F554
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0223F508: ; jump table
+ .short _0223F512 - _0223F508 - 2 ; case 0
+ .short _0223F516 - _0223F508 - 2 ; case 1
+ .short _0223F51A - _0223F508 - 2 ; case 2
+ .short _0223F544 - _0223F508 - 2 ; case 3
+ .short _0223F552 - _0223F508 - 2 ; case 4
+_0223F512:
+ ldr r5, _0223F608 ; =0x00000121
+ b _0223F554
+_0223F516:
+ ldr r5, _0223F60C ; =0x0000010B
+ b _0223F554
+_0223F51A:
+ add r0, r0, #2
+ ldrb r0, [r1, r0]
+ mov r1, #1
+ tst r1, r0
+ beq _0223F534
+ mov r1, #0x3e
+ add r2, r0, #0
+ tst r2, r1
+ beq _0223F534
+ mov r0, #6
+ add r1, #0xf2
+ str r0, [r4, r1]
+ b _0223F53E
+_0223F534:
+ bl LowestFlagNo
+ mov r1, #0x13
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+_0223F53E:
+ mov r5, #0x43
+ lsl r5, r5, #2
+ b _0223F554
+_0223F544:
+ add r0, r0, #2
+ ldrb r0, [r1, r0]
+ mov r5, #0x13
+ lsl r5, r5, #4
+ str r0, [r4, r5]
+ sub r5, #0x23
+ b _0223F554
+_0223F552:
+ ldr r5, _0223F610 ; =0x0000010E
+_0223F554:
+ ldr r1, [r4, #0x64]
+ mov r0, #1
+ bic r1, r0
+ ldr r0, _0223F614 ; =0x000003D6
+ add r1, r4, r1
+ ldrh r1, [r1, r0]
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ b _0223F5DA
+_0223F568:
+ ldrb r0, [r6, #2]
+ cmp r0, #3
+ bhi _0223F5D2
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223F57A: ; jump table
+ .short _0223F582 - _0223F57A - 2 ; case 0
+ .short _0223F582 - _0223F57A - 2 ; case 1
+ .short _0223F598 - _0223F57A - 2 ; case 2
+ .short _0223F582 - _0223F57A - 2 ; case 3
+_0223F582:
+ ldrh r1, [r6]
+ ldr r0, _0223F618 ; =0x0000FFC1
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #1
+ bhi _0223F594
+ mov r5, #0xde
+ b _0223F5D2
+_0223F594:
+ mov r5, #0xdf
+ b _0223F5D2
+_0223F598:
+ add r0, r7, #0
+ mov r5, #0xb
+ bl MOD11_0222FF74
+ mov r1, #1
+ tst r0, r1
+ bne _0223F5D2
+ add r0, r7, #0
+ bl MOD11_0222FF74
+ mov r1, #1
+ lsl r1, r1, #0xa
+ tst r0, r1
+ bne _0223F5D2
+ add r0, r7, #0
+ bl MOD11_02230214
+ ldrh r1, [r6]
+ mov r2, #1
+ mov r3, #5
+ bl FUN_0206EDD4
+ add r0, r7, #0
+ bl MOD11_02230218
+ ldrh r1, [r6]
+ ldrb r2, [r6, #2]
+ bl FUN_0206F1E4
+_0223F5D2:
+ ldrh r1, [r6]
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+_0223F5DA:
+ add r0, r4, #0
+ mov r1, #1
+ add r2, r5, #0
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x27
+ str r0, [r4, #0xc]
+ ldr r1, _0223F61C ; =0x0000216C
+ mov r0, #2
+ ldr r2, [r4, r1]
+ lsl r0, r0, #0x1e
+ orr r0, r2
+ str r0, [r4, r1]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223F5FC: .word 0x000021E8
+_0223F600: .word 0x000021B0
+_0223F604: .word 0x000003D1
+_0223F608: .word 0x00000121
+_0223F60C: .word 0x0000010B
+_0223F610: .word 0x0000010E
+_0223F614: .word 0x000003D6
+_0223F618: .word 0x0000FFC1
+_0223F61C: .word 0x0000216C
+
+ thumb_func_start MOD11_0223F620
+MOD11_0223F620: ; 0x0223F620
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #9
+ bl MOD11_022431DC
+ add r0, r4, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ ldr r1, _0223F660 ; =0x000021E8
+ add r0, r4, r0
+ ldrb r0, [r0, r1]
+ mov r2, #0
+ str r0, [r4, #0x64]
+ str r0, [r4, #0x78]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x28
+ str r0, [r4, #0xc]
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ str r2, [r4, r0]
+ add r0, r1, #0
+ sub r0, #0x7c
+ ldr r2, [r4, r0]
+ mov r0, #2
+ lsl r0, r0, #0x1e
+ orr r0, r2
+ sub r1, #0x7c
+ str r0, [r4, r1]
+ pop {r4, pc}
+ .align 2, 0
+_0223F660: .word 0x000021E8
+
+ thumb_func_start MOD11_0223F664
+MOD11_0223F664: ; 0x0223F664
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r1, #0xec
+ ldr r1, [r1]
+ add r5, r0, #0
+ add r2, r4, r1
+ ldr r1, _0223F71C ; =0x000021E8
+ ldrb r1, [r2, r1]
+ str r1, [r4, #0x64]
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _0223F6D6
+ add r0, r5, #0
+ bl MOD11_0222FF74
+ mov r1, #4
+ tst r0, r1
+ bne _0223F6D6
+ ldr r0, [r4, #0x64]
+ mov r2, #0xc0
+ add r1, r0, #0
+ mul r1, r2
+ ldr r0, _0223F720 ; =0x00002DB0
+ add r1, r4, r1
+ ldr r1, [r1, r0]
+ ldr r0, _0223F724 ; =0x0400E000
+ tst r0, r1
+ beq _0223F6BA
+ add r0, r4, #0
+ mov r1, #1
+ add r2, #0x5e
+ bl MOD11_022431DC
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xb4
+ str r1, [r0]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x27
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_0223F6BA:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xe6
+ bl MOD11_022431DC
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xb4
+ str r1, [r0]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x2a
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_0223F6D6:
+ ldr r2, [r4, #0x64]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022470B8
+ cmp r0, #0
+ beq _0223F700
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #3
+ bl MOD11_022431DC
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xb4
+ str r1, [r0]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x2a
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+_0223F700:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #8
+ bl MOD11_022431DC
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xb4
+ str r1, [r0]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x27
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223F71C: .word 0x000021E8
+_0223F720: .word 0x00002DB0
+_0223F724: .word 0x0400E000
+
+ thumb_func_start MOD11_0223F728
+MOD11_0223F728: ; 0x0223F728
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r2, _0223F76C ; =0x00000113
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ mov r0, #0
+ str r0, [r4, #0x64]
+ mov r0, #1
+ str r0, [r4, #0x6c]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x27
+ str r0, [r4, #0xc]
+ mov r0, #0x4a
+ mov r1, #5
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, r5, #0
+ bl MOD11_02230E00
+ sub r1, r0, #1
+ add r0, r5, #0
+ bl MOD11_02230E0C
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD11_02256020
+ pop {r3, r4, r5, pc}
+ nop
+_0223F76C: .word 0x00000113
+
+ thumb_func_start MOD11_0223F770
+MOD11_0223F770: ; 0x0223F770
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xe3
+ bl MOD11_022431DC
+ mov r0, #0
+ str r0, [r4, #0x64]
+ mov r0, #1
+ str r0, [r4, #0x6c]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x27
+ str r0, [r4, #0xc]
+ bl LCRandom
+ mov r1, #0xa
+ bl _s32_div_f
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r0, _0223F7C4 ; =0x0000311C
+ ldrb r1, [r4, r0]
+ cmp r1, #0xc
+ bhs _0223F7AA
+ add r1, r1, #1
+ strb r1, [r4, r0]
+_0223F7AA:
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0223F7C0
+ ldr r0, _0223F7C8 ; =0x0000311D
+ ldrb r1, [r4, r0]
+ cmp r1, #0xc
+ bhs _0223F7C0
+ add r1, r1, #1
+ strb r1, [r4, r0]
+_0223F7C0:
+ pop {r4, pc}
+ nop
+_0223F7C4: .word 0x0000311C
+_0223F7C8: .word 0x0000311D
+
+ thumb_func_start MOD11_0223F7CC
+MOD11_0223F7CC: ; 0x0223F7CC
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xe4
+ bl MOD11_022431DC
+ mov r0, #0
+ str r0, [r4, #0x64]
+ mov r0, #1
+ str r0, [r4, #0x6c]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x27
+ str r0, [r4, #0xc]
+ bl LCRandom
+ mov r1, #0xa
+ bl _s32_div_f
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r0, _0223F824 ; =0x0000311D
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _0223F806
+ sub r1, r1, #1
+ strb r1, [r4, r0]
+_0223F806:
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ beq _0223F822
+ mov r1, #1
+ sub r0, #8
+ str r1, [r4, r0]
+ ldr r0, _0223F828 ; =0x0000311C
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _0223F822
+ sub r1, r1, #1
+ strb r1, [r4, r0]
+_0223F822:
+ pop {r4, pc}
+ .align 2, 0
+_0223F824: .word 0x0000311D
+_0223F828: .word 0x0000311C
+
+ thumb_func_start MOD11_0223F82C
+MOD11_0223F82C: ; 0x0223F82C
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xe5
+ bl MOD11_022431DC
+ mov r0, #0
+ str r0, [r4, #0x64]
+ mov r0, #1
+ str r0, [r4, #0x6c]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x27
+ str r0, [r4, #0xc]
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0223F84C
+MOD11_0223F84C: ; 0x0223F84C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ str r0, [sp, #0x18]
+ add r4, r1, #0
+ add r6, r2, #0
+ bl MOD11_0222FF74
+ add r5, r0, #0
+ ldr r0, [sp, #0x18]
+ mov r1, #0
+ bl MOD11_022301D4
+ add r7, r0, #0
+ mov r0, #0x84
+ tst r0, r5
+ beq _0223F872
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F872:
+ ldr r0, [sp, #0x18]
+ ldr r1, [r4, #0x64]
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _0223F884
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F884:
+ mov r0, #0x40
+ tst r0, r5
+ beq _0223F89C
+ ldr r0, [sp, #0x18]
+ ldr r1, [r4, #0x64]
+ bl MOD11_02230260
+ cmp r0, #4
+ bne _0223F89C
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F89C:
+ ldr r0, [sp, #0x18]
+ add r1, r4, #0
+ bl MOD11_0224ADB8
+ cmp r0, #1
+ bne _0223F8AE
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F8AE:
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_0224AD04
+ cmp r0, #0
+ bne _0223F8C0
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F8C0:
+ add r0, r7, #0
+ bl FUN_020239F4
+ cmp r0, #8
+ blt _0223F8D0
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F8D0:
+ add r0, r7, #0
+ mov r5, #0xa
+ bl FUN_020239F4
+ cmp r0, #2
+ blt _0223F8DE
+ mov r5, #0x1e
+_0223F8DE:
+ add r0, r7, #0
+ bl FUN_020239F4
+ cmp r0, #4
+ blt _0223F8EA
+ mov r5, #0x32
+_0223F8EA:
+ add r0, r7, #0
+ bl FUN_020239F4
+ cmp r0, #6
+ blt _0223F8F6
+ mov r5, #0x46
+_0223F8F6:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r7, r1, #0
+ mul r7, r0
+ ldr r0, _0223FAEC ; =0x00002D74
+ add r1, r4, r7
+ ldrb r0, [r1, r0]
+ cmp r0, r5
+ bhi _0223F90E
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F90E:
+ bl LCRandom
+ lsl r0, r0, #0x18
+ ldr r1, _0223FAEC ; =0x00002D74
+ add r2, r4, r7
+ ldrb r2, [r2, r1]
+ lsr r0, r0, #0x18
+ add r2, r5, r2
+ mul r0, r2
+ asr r0, r0, #8
+ cmp r0, r5
+ bge _0223F92C
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F92C:
+ ldr r0, _0223FAF0 ; =0x00003044
+ ldr r0, [r4, r0]
+ cmp r0, #0x63
+ bne _0223F940
+ add r1, #0x3c
+ add r0, r4, r1
+ ldr r2, [r0, r7]
+ ldr r1, _0223FAF4 ; =0xFF7FFFFF
+ and r1, r2
+ str r1, [r0, r7]
+_0223F940:
+ ldr r7, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r7
+ add r1, r4, r0
+ ldr r0, _0223FAF8 ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0223F968
+ ldr r0, _0223FAF0 ; =0x00003044
+ ldr r0, [r4, r0]
+ cmp r0, #0xad
+ beq _0223F95E
+ cmp r0, #0xd6
+ bne _0223F968
+_0223F95E:
+ mov r0, #0xfe
+ str r0, [r6]
+ add sp, #0x20
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F968:
+ mov r0, #0xc0
+ mul r0, r7
+ add r1, r4, r0
+ ldr r0, _0223FAEC ; =0x00002D74
+ ldrb r0, [r1, r0]
+ str r0, [sp, #0x1c]
+ bl LCRandom
+ ldr r1, [sp, #0x1c]
+ lsl r0, r0, #0x18
+ add r1, r5, r1
+ lsr r0, r0, #0x18
+ mul r0, r1
+ asr r0, r0, #8
+ cmp r0, r5
+ bge _0223FA2E
+ lsl r0, r7, #1
+ add r1, r4, r0
+ ldr r0, _0223FAFC ; =0x000030BC
+ ldrh r0, [r1, r0]
+ bl MaskOfFlagNo
+ add r3, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp]
+ ldr r0, [sp, #0x18]
+ ldr r2, [r4, #0x64]
+ add r1, r4, #0
+ bl MOD11_02245D38
+ add r5, r0, #0
+ cmp r5, #0xf
+ bne _0223F9B6
+ mov r0, #0xff
+ str r0, [r6]
+ add sp, #0x20
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0223F9B6:
+ bl LCRandom
+ mov r1, #3
+ add r7, r0, #0
+ and r7, r1
+ add r0, r7, #0
+ bl MaskOfFlagNo
+ tst r0, r5
+ bne _0223F9B6
+ ldr r0, [r4, #0x64]
+ ldr r3, _0223FAFC ; =0x000030BC
+ lsl r0, r0, #1
+ add r0, r4, r0
+ strh r7, [r0, r3]
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ lsl r1, r1, #1
+ add r1, r4, r1
+ ldrh r1, [r1, r3]
+ add r0, r4, r0
+ lsl r1, r1, #1
+ add r1, r0, r1
+ ldr r0, _0223FB00 ; =0x00002D4C
+ ldrh r1, [r1, r0]
+ add r0, r3, #0
+ sub r0, #0x7c
+ str r1, [r4, r0]
+ add r0, r3, #0
+ sub r0, #0x7c
+ ldr r1, [r4, r0]
+ add r0, r3, #0
+ sub r0, #0x78
+ str r1, [r4, r0]
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ sub r3, #0x7c
+ ldr r3, [r4, r3]
+ ldr r0, [sp, #0x18]
+ lsl r3, r3, #0x10
+ ldr r2, [r4, #0x64]
+ add r1, r4, #0
+ lsr r3, r3, #0x10
+ bl MOD11_02244C28
+ str r0, [r4, #0x6c]
+ mov r0, #1
+ lsl r0, r0, #8
+ str r0, [r6]
+ ldr r1, _0223FB04 ; =0x00002184
+ mov r0, #1
+ ldr r2, [r4, r1]
+ add sp, #0x20
+ orr r0, r2
+ str r0, [r4, r1]
+ mov r0, #2
+ pop {r3, r4, r5, r6, r7, pc}
+_0223FA2E:
+ ldr r0, [sp, #0x1c]
+ sub r0, r0, r5
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ bl LCRandom
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ cmp r7, r5
+ bge _0223FA8E
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _0223FAF8 ; =0x00002DAC
+ ldr r0, [r2, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bne _0223FA8E
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x48
+ beq _0223FA8E
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0xf
+ beq _0223FA8E
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x66
+ beq _0223FA8E
+ mov r1, #6
+ lsl r1, r1, #6
+ mov r0, #0xf
+ ldr r2, [r4, r1]
+ lsl r0, r0, #8
+ tst r0, r2
+ bne _0223FA8E
+ sub r1, #0x7f
+ add sp, #0x20
+ str r1, [r6]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0223FA8E:
+ sub r0, r7, r5
+ cmp r0, r5
+ bge _0223FAE2
+ ldr r1, [r4, #0x64]
+ mov r0, #0x46
+ str r1, [r4, #0x6c]
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r1, [r4, #0x64]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x28
+ str r0, [sp, #4]
+ lsl r0, r1, #0x18
+ str r3, [sp, #8]
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r2, #1
+ ldr r0, [sp, #0x18]
+ add r1, r4, #0
+ str r2, [sp, #0x14]
+ bl MOD11_0224B310
+ ldr r1, _0223FB08 ; =0x0000215C
+ str r0, [r4, r1]
+ ldr r1, [r4, r1]
+ add r0, r4, #0
+ bl MOD11_0224BF10
+ ldr r1, _0223FB08 ; =0x0000215C
+ add sp, #0x20
+ str r0, [r4, r1]
+ mov r0, #0
+ ldr r2, [r4, r1]
+ mvn r0, r0
+ mul r0, r2
+ str r0, [r4, r1]
+ ldr r0, _0223FB0C ; =0x00000102
+ str r0, [r6]
+ mov r0, #3
+ pop {r3, r4, r5, r6, r7, pc}
+_0223FAE2:
+ mov r0, #0xff
+ str r0, [r6]
+ mov r0, #1
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223FAEC: .word 0x00002D74
+_0223FAF0: .word 0x00003044
+_0223FAF4: .word 0xFF7FFFFF
+_0223FAF8: .word 0x00002DAC
+_0223FAFC: .word 0x000030BC
+_0223FB00: .word 0x00002D4C
+_0223FB04: .word 0x00002184
+_0223FB08: .word 0x0000215C
+_0223FB0C: .word 0x00000102
+
+ thumb_func_start MOD11_0223FB10
+MOD11_0223FB10: ; 0x0223FB10
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ ldr r3, [r5, #0x64]
+ mov r2, #0x1c
+ mul r2, r3
+ add r6, r5, r2
+ mov r2, #0xb5
+ lsl r2, r2, #2
+ ldr r2, [r6, r2]
+ str r0, [sp, #4]
+ lsl r2, r2, #0x1f
+ mov r4, #1
+ lsr r2, r2, #0x1f
+ bne _0223FBCA
+ ldr r6, [r5, #0x6c]
+ cmp r6, #0xff
+ beq _0223FBCA
+ mov r2, #0xc1
+ lsl r2, r2, #6
+ ldr r7, [r5, r2]
+ ldr r2, _0223FC98 ; =0x0000011E
+ cmp r7, r2
+ bne _0223FB4E
+ mov r2, #0x2e
+ str r2, [sp]
+ mov r2, #3
+ bl MOD11_02246870
+ add r4, r4, r0
+ b _0223FBCA
+_0223FB4E:
+ lsl r0, r7, #4
+ add r1, r5, r0
+ ldr r0, _0223FC9C ; =0x000003E6
+ ldrh r1, [r1, r0]
+ cmp r1, #0x40
+ bgt _0223FB78
+ bge _0223FB94
+ cmp r1, #0x10
+ bgt _0223FB72
+ bge _0223FBCA
+ cmp r1, #8
+ bgt _0223FBB8
+ cmp r1, #4
+ blt _0223FBB8
+ beq _0223FBA6
+ cmp r1, #8
+ beq _0223FB94
+ b _0223FBB8
+_0223FB72:
+ cmp r1, #0x20
+ beq _0223FBCA
+ b _0223FBB8
+_0223FB78:
+ add r0, r2, #0
+ sub r0, #0x1e
+ cmp r1, r0
+ bgt _0223FB8C
+ sub r2, #0x1e
+ cmp r1, r2
+ bge _0223FBCA
+ cmp r1, #0x80
+ beq _0223FBA6
+ b _0223FBB8
+_0223FB8C:
+ add r2, #0xe2
+ cmp r1, r2
+ beq _0223FBCA
+ b _0223FBB8
+_0223FB94:
+ mov r0, #0x2e
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #9
+ bl MOD11_02246870
+ add r4, r4, r0
+ b _0223FBCA
+_0223FBA6:
+ mov r0, #0x2e
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #3
+ bl MOD11_02246870
+ add r4, r4, r0
+ b _0223FBCA
+_0223FBB8:
+ cmp r3, r6
+ beq _0223FBCA
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x2e
+ bne _0223FBCA
+ add r4, r4, #1
+_0223FBCA:
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ add r2, r5, r0
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ mov r1, #0xc1
+ lsl r1, r1, #6
+ ldr r1, [r5, r1]
+ add r0, r2, r0
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl MOD11_022461AC
+ add r6, r0, #0
+ ldr r1, [r5, #0x64]
+ mov r0, #0x75
+ lsl r0, r0, #2
+ add r0, r5, r0
+ lsl r7, r1, #6
+ ldr r3, [r0, r7]
+ lsl r2, r3, #0x1e
+ lsr r2, r2, #0x1f
+ bne _0223FC42
+ lsl r2, r3, #0x1f
+ lsr r2, r2, #0x1f
+ bne _0223FC42
+ mov r1, #2
+ orr r1, r3
+ str r1, [r0, r7]
+ ldr r0, _0223FCA0 ; =0x00002D6C
+ ldr r1, [r5, #0x64]
+ add r2, r5, r0
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r2, r0
+ ldrb r0, [r1, r6]
+ cmp r0, #0
+ beq _0223FC34
+ cmp r6, #4
+ bge _0223FC34
+ cmp r0, r4
+ ble _0223FC24
+ sub r0, r0, r4
+ b _0223FC26
+_0223FC24:
+ mov r0, #0
+_0223FC26:
+ strb r0, [r1, r6]
+ ldr r0, [sp, #4]
+ ldr r2, [r5, #0x64]
+ add r1, r5, #0
+ bl MOD11_02245190
+ b _0223FC90
+_0223FC34:
+ ldr r1, _0223FCA4 ; =0x0000216C
+ mov r0, #2
+ ldr r2, [r5, r1]
+ lsl r0, r0, #8
+ orr r0, r2
+ str r0, [r5, r1]
+ b _0223FC90
+_0223FC42:
+ mov r2, #0xc0
+ add r0, r1, #0
+ mul r0, r2
+ add r0, r5, r0
+ ldr r3, _0223FCA0 ; =0x00002D6C
+ add r4, r0, r6
+ ldrb r4, [r4, r3]
+ cmp r4, #0
+ bne _0223FC90
+ ldr r4, _0223FCA8 ; =0x0000213C
+ mov r7, #2
+ ldr r4, [r5, r4]
+ lsl r7, r7, #8
+ tst r4, r7
+ bne _0223FC90
+ add r3, #0x44
+ ldr r0, [r0, r3]
+ lsl r3, r7, #3
+ tst r3, r0
+ bne _0223FC90
+ lsl r2, r2, #4
+ tst r0, r2
+ bne _0223FC90
+ add r0, r1, #0
+ bl MaskOfFlagNo
+ add r1, r7, #0
+ sub r1, #0x80
+ ldr r2, [r5, r1]
+ lsl r0, r0, #8
+ tst r0, r2
+ bne _0223FC90
+ cmp r6, #4
+ bge _0223FC90
+ ldr r0, _0223FCA4 ; =0x0000216C
+ add r1, #0x80
+ ldr r2, [r5, r0]
+ orr r1, r2
+ str r1, [r5, r0]
+_0223FC90:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223FC98: .word 0x0000011E
+_0223FC9C: .word 0x000003E6
+_0223FCA0: .word 0x00002D6C
+_0223FCA4: .word 0x0000216C
+_0223FCA8: .word 0x0000213C
+
+ thumb_func_start MOD11_0223FCAC
+MOD11_0223FCAC: ; 0x0223FCAC
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r0, [r5, #0x6c]
+ mov r4, #0
+ cmp r0, #0xff
+ bne _0223FCC6
+ ldr r1, _0223FD10 ; =0x00003044
+ add r0, r5, #0
+ ldr r1, [r5, r1]
+ bl MOD11_02246AF8
+ cmp r0, #0
+ beq _0223FCF8
+_0223FCC6:
+ ldr r0, [r5, #0x6c]
+ cmp r0, #0xff
+ bne _0223FD0C
+ ldr r1, _0223FD10 ; =0x00003044
+ add r0, r5, #0
+ ldr r1, [r5, r1]
+ bl MOD11_02246AF8
+ cmp r0, #1
+ bne _0223FD0C
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _0223FD14 ; =0x00002DB0
+ ldr r0, [r1, r0]
+ mov r1, #1
+ lsl r1, r1, #0xc
+ tst r0, r1
+ bne _0223FCF8
+ ldr r0, _0223FD18 ; =0x0000213C
+ ldr r2, [r5, r0]
+ lsr r0, r1, #3
+ tst r0, r2
+ beq _0223FD0C
+_0223FCF8:
+ ldr r2, _0223FD1C ; =0x00000119
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ mov r0, #0x26
+ str r0, [r5, #0xc]
+ mov r0, #0x15
+ str r0, [r5, #8]
+ mov r4, #1
+_0223FD0C:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223FD10: .word 0x00003044
+_0223FD14: .word 0x00002DB0
+_0223FD18: .word 0x0000213C
+_0223FD1C: .word 0x00000119
+
+ thumb_func_start MOD11_0223FD20
+MOD11_0223FD20: ; 0x0223FD20
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ ldr r1, _0223FDA0 ; =0x00003044
+ ldr r2, [r4, r1]
+ lsl r1, r2, #4
+ add r5, r4, r1
+ ldr r1, _0223FDA4 ; =0x000003E6
+ ldrh r3, [r5, r1]
+ cmp r3, #0x10
+ beq _0223FD54
+ cmp r3, #0x20
+ beq _0223FD54
+ sub r1, r1, #5
+ ldrb r1, [r5, r1]
+ cmp r1, #0
+ beq _0223FD54
+ ldr r1, _0223FDA8 ; =0x0000213C
+ ldr r3, [r4, r1]
+ mov r1, #2
+ lsl r1, r1, #0xe
+ tst r1, r3
+ bne _0223FD54
+ mov r1, #0x20
+ tst r1, r3
+ beq _0223FD58
+_0223FD54:
+ cmp r2, #0x56
+ bne _0223FD98
+_0223FD58:
+ ldr r1, [r4, #0x64]
+ ldr r3, _0223FDAC ; =0x00002144
+ str r1, [sp]
+ ldr r1, [r4, #0x6c]
+ str r1, [sp, #4]
+ ldr r1, [r4, r3]
+ str r1, [sp, #8]
+ add r1, r3, #0
+ add r1, #0x28
+ add r1, r4, r1
+ str r1, [sp, #0xc]
+ add r3, #0x1c
+ ldr r3, [r4, r3]
+ add r1, r4, #0
+ bl MOD11_02246274
+ ldr r1, _0223FDAC ; =0x00002144
+ str r0, [r4, r1]
+ add r1, #0x28
+ ldr r1, [r4, r1]
+ mov r0, #8
+ tst r0, r1
+ beq _0223FD98
+ mov r0, #0xd1
+ lsl r0, r0, #2
+ add r3, r4, r0
+ ldr r0, [r4, #0x64]
+ lsl r2, r0, #2
+ ldr r1, [r3, r2]
+ mov r0, #2
+ orr r0, r1
+ str r0, [r3, r2]
+_0223FD98:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_0223FDA0: .word 0x00003044
+_0223FDA4: .word 0x000003E6
+_0223FDA8: .word 0x0000213C
+_0223FDAC: .word 0x00002144
+
+ thumb_func_start MOD11_0223FDB0
+MOD11_0223FDB0: ; 0x0223FDB0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ str r0, [sp, #0x18]
+ add r4, r1, #0
+ ldr r0, _022400D8 ; =0x00003044
+ add r5, r4, #0
+ ldr r0, [r4, r0]
+ mov r7, #0
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _022400DC ; =0x000003DE
+ add r5, #0x50
+ ldrh r0, [r1, r0]
+ str r0, [sp, #0x1c]
+ mov r0, #0xd1
+ lsl r0, r0, #2
+ add r6, r4, r0
+ mov r0, #7
+ str r0, [sp, #0x20]
+ mov r0, #8
+ str r0, [sp, #0x24]
+ mov r0, #1
+ str r0, [sp, #0x28]
+_0223FDDE:
+ ldr r0, [r4, #0x50]
+ cmp r0, #0x10
+ bls _0223FDE6
+ b _0224043C
+_0223FDE6:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223FDF2: ; jump table
+ .short _0223FE14 - _0223FDF2 - 2 ; case 0
+ .short _0223FE48 - _0223FDF2 - 2 ; case 1
+ .short _0223FF42 - _0223FDF2 - 2 ; case 2
+ .short _0223FFA6 - _0223FDF2 - 2 ; case 3
+ .short _0223FFCE - _0223FDF2 - 2 ; case 4
+ .short _0224000A - _0223FDF2 - 2 ; case 5
+ .short _02240050 - _0223FDF2 - 2 ; case 6
+ .short _0224008C - _0223FDF2 - 2 ; case 7
+ .short _022400D4 - _0223FDF2 - 2 ; case 8
+ .short _02240138 - _0223FDF2 - 2 ; case 9
+ .short _02240174 - _0223FDF2 - 2 ; case 10
+ .short _022401B0 - _0223FDF2 - 2 ; case 11
+ .short _0224028C - _0223FDF2 - 2 ; case 12
+ .short _022402E8 - _0223FDF2 - 2 ; case 13
+ .short _0224034E - _0223FDF2 - 2 ; case 14
+ .short _022403FE - _0223FDF2 - 2 ; case 15
+ .short _02240436 - _0223FDF2 - 2 ; case 16
+_0223FE14:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _022400E0 ; =0x00002DB0
+ ldr r1, [r2, r0]
+ ldr r0, _022400E4 ; =0xFDFFFFFF
+ and r1, r0
+ ldr r0, _022400E0 ; =0x00002DB0
+ str r1, [r2, r0]
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r1, [r2, r0]
+ ldr r0, _022400E8 ; =0xFFFFBFFF
+ and r1, r0
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ str r1, [r2, r0]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_0223FE48:
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _022400EC ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0223FF3A
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0xf
+ lsl r0, r0, #8
+ tst r0, r1
+ beq _0223FE92
+ add r0, r4, #0
+ add r1, r2, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x2b
+ beq _0223FE92
+ mov r0, #0x46
+ ldr r1, [r4, #0x64]
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x13
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r7, #2
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0223FF3A
+_0223FE92:
+ ldr r0, _022400D8 ; =0x00003044
+ ldr r0, [r4, r0]
+ cmp r0, #0xd6
+ beq _0223FEA8
+ mov r0, #0xc1
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ cmp r0, #0xd6
+ bne _0223FEA8
+ mov r0, #1
+ b _0223FEAA
+_0223FEA8:
+ mov r0, #0
+_0223FEAA:
+ cmp r0, #0
+ bne _0223FF3A
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x30
+ bne _0223FEBE
+ mov r3, #2
+ b _0223FEC0
+_0223FEBE:
+ mov r3, #1
+_0223FEC0:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _022400EC ; =0x00002DAC
+ ldr r1, [r2, r0]
+ mov r0, #7
+ and r0, r1
+ cmp r0, r3
+ ldr r0, _022400EC ; =0x00002DAC
+ bhs _0223FEDE
+ ldr r1, [r2, r0]
+ ldr r0, [sp, #0x20]
+ bic r1, r0
+ b _0223FEE2
+_0223FEDE:
+ ldr r0, [r2, r0]
+ sub r1, r0, r3
+_0223FEE2:
+ ldr r0, _022400EC ; =0x00002DAC
+ str r1, [r2, r0]
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _022400EC ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0223FF20
+ ldr r0, _022400D8 ; =0x00003044
+ ldr r0, [r4, r0]
+ cmp r0, #0xad
+ beq _0223FF3A
+ mov r0, #0xc1
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ cmp r0, #0xd6
+ beq _0223FF3A
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x14
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #2
+ b _0223FF3A
+_0223FF20:
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r2, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x13
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r7, #2
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_0223FF3A:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_0223FF42:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _022400EC ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #0x20
+ tst r0, r1
+ beq _0223FF9E
+ bl LCRandom
+ mov r1, #5
+ bl _s32_div_f
+ cmp r1, #0
+ beq _0223FF82
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0x7d
+ beq _0223FF9E
+ cmp r0, #0xfd
+ beq _0223FF9E
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x1c
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #1
+ b _0223FF9E
+_0223FF82:
+ mov r0, #0x46
+ ldr r1, [r4, #0x64]
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x1d
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r7, #2
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_0223FF9E:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_0223FFA6:
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02247190
+ cmp r0, #1
+ bne _0223FFC6
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xbf
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #1
+_0223FFC6:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_0223FFCE:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _022400E0 ; =0x00002DB0
+ ldr r1, [r2, r0]
+ mov r0, #1
+ lsl r0, r0, #0x16
+ tst r0, r1
+ beq _02240002
+ ldr r0, _022400E0 ; =0x00002DB0
+ ldr r1, [r2, r0]
+ ldr r0, _022400F0 ; =0xFFBFFFFF
+ and r1, r0
+ ldr r0, _022400E0 ; =0x00002DB0
+ str r1, [r2, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x41
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #1
+_02240002:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_0224000A:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _022400E0 ; =0x00002DB0
+ ldr r1, [r2, r0]
+ mov r0, #8
+ tst r0, r1
+ beq _02240048
+ ldr r0, _022400E0 ; =0x00002DB0
+ ldr r1, [sp, #0x24]
+ ldr r0, [r2, r0]
+ bic r0, r1
+ ldr r1, _022400E0 ; =0x00002DB0
+ str r0, [r2, r1]
+ ldr r0, [r4, #0x64]
+ mov r1, #0x40
+ lsl r0, r0, #2
+ ldr r2, [r6, r0]
+ orr r1, r2
+ str r1, [r6, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xf
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #1
+_02240048:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_02240050:
+ mov r0, #0xc1
+ lsl r0, r0, #6
+ ldr r3, [r4, r0]
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _022400F4 ; =0x00002DE8
+ ldrh r0, [r1, r0]
+ cmp r3, r0
+ bne _02240084
+ lsl r0, r2, #2
+ ldr r2, [r6, r0]
+ mov r1, #0x10
+ orr r1, r2
+ str r1, [r6, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x47
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #1
+_02240084:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_0224008C:
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _022400F8 ; =0x00002DC8
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x1d
+ beq _022400CC
+ ldr r0, _022400D8 ; =0x00003044
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _022400FC ; =0x000003E1
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ bne _022400CC
+ lsl r0, r2, #2
+ ldr r2, [r6, r0]
+ mov r1, #0x20
+ orr r1, r2
+ str r1, [r6, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x85
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #1
+_022400CC:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_022400D4:
+ ldr r3, _022400D8 ; =0x00003044
+ b _02240100
+ .align 2, 0
+_022400D8: .word 0x00003044
+_022400DC: .word 0x000003DE
+_022400E0: .word 0x00002DB0
+_022400E4: .word 0xFDFFFFFF
+_022400E8: .word 0xFFFFBFFF
+_022400EC: .word 0x00002DAC
+_022400F0: .word 0xFFBFFFFF
+_022400F4: .word 0x00002DE8
+_022400F8: .word 0x00002DC8
+_022400FC: .word 0x000003E1
+_02240100:
+ ldr r0, [sp, #0x18]
+ ldr r2, [r4, #0x64]
+ ldr r3, [r4, r3]
+ add r1, r4, #0
+ bl MOD11_022471C4
+ cmp r0, #0
+ beq _02240130
+ ldr r0, [r4, #0x64]
+ mov r1, #4
+ lsl r0, r0, #2
+ ldr r2, [r6, r0]
+ orr r1, r2
+ str r1, [r6, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x90
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #1
+_02240130:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_02240138:
+ ldr r3, _0224047C ; =0x00003044
+ ldr r0, [sp, #0x18]
+ ldr r2, [r4, #0x64]
+ ldr r3, [r4, r3]
+ add r1, r4, #0
+ bl MOD11_02247314
+ cmp r0, #0
+ beq _0224016C
+ ldr r0, [r4, #0x64]
+ mov r1, #1
+ lsl r0, r0, #2
+ ldr r2, [r6, r0]
+ lsl r1, r1, #8
+ orr r1, r2
+ str r1, [r6, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x9d
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #1
+_0224016C:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_02240174:
+ ldr r3, _0224047C ; =0x00003044
+ ldr r0, [sp, #0x18]
+ ldr r2, [r4, #0x64]
+ ldr r3, [r4, r3]
+ add r1, r4, #0
+ bl MOD11_02247348
+ cmp r0, #0
+ beq _022401A8
+ ldr r0, [r4, #0x64]
+ mov r1, #2
+ lsl r0, r0, #2
+ ldr r2, [r6, r0]
+ lsl r1, r1, #8
+ orr r1, r2
+ str r1, [r6, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xae
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #1
+_022401A8:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_022401B0:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _02240480 ; =0x00002DB0
+ ldr r1, [r2, r0]
+ mov r0, #7
+ tst r0, r1
+ bne _022401CA
+ b _0224043C
+_022401CA:
+ ldr r0, _02240480 ; =0x00002DB0
+ ldr r0, [r2, r0]
+ sub r1, r0, #1
+ ldr r0, _02240480 ; =0x00002DB0
+ str r1, [r2, r0]
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _02240480 ; =0x00002DB0
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _02240276
+ bl LCRandom
+ mov r1, #1
+ tst r0, r1
+ beq _02240204
+ add r0, r4, #0
+ mov r2, #0x26
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r7, #2
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0224043C
+_02240204:
+ ldr r0, [r4, #0x64]
+ mov r1, #0x80
+ lsl r0, r0, #2
+ ldr r2, [r6, r0]
+ mov r3, #0
+ orr r1, r2
+ str r1, [r6, r0]
+ ldr r1, [r4, #0x64]
+ mov r0, #0x46
+ str r1, [r4, #0x6c]
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r0, [r4, #0x64]
+ mov r1, #0
+ str r1, [sp]
+ mov r1, #0x28
+ str r1, [sp, #4]
+ mov r1, #0
+ lsl r0, r0, #0x18
+ str r1, [sp, #8]
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x18]
+ add r1, r4, #0
+ mov r2, #0xa5
+ bl MOD11_0224B310
+ ldr r1, _02240484 ; =0x0000215C
+ str r0, [r4, r1]
+ ldr r1, [r4, r1]
+ add r0, r4, #0
+ bl MOD11_0224BF10
+ ldr r1, _02240484 ; =0x0000215C
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r1, [r4, r0]
+ mov r0, #0
+ add r2, r1, #0
+ mvn r0, r0
+ mul r2, r0
+ ldr r0, _02240484 ; =0x0000215C
+ mov r1, #1
+ str r2, [r4, r0]
+ add r0, r4, #0
+ mov r2, #0x27
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x21
+ str r0, [r4, #0xc]
+ mov r7, #1
+ b _0224043C
+_02240276:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x28
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r7, #2
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0224043C
+_0224028C:
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _02240488 ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #0x40
+ tst r0, r1
+ beq _022402E0
+ add r0, r4, #0
+ add r1, r2, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _022402E0
+ bl LCRandom
+ lsr r1, r0, #0x1f
+ lsl r2, r0, #0x1e
+ sub r2, r2, r1
+ mov r0, #0x1e
+ ror r2, r0
+ add r0, r1, r2
+ bne _022402E0
+ ldr r0, [r4, #0x64]
+ ldr r2, [sp, #0x28]
+ lsl r1, r0, #2
+ ldr r0, [r6, r1]
+ bic r0, r2
+ mov r2, #1
+ orr r0, r2
+ str r0, [r6, r1]
+ add r1, r2, #0
+ add r0, r4, #0
+ mov r2, #0x20
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #1
+_022402E0:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_022402E8:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _02240480 ; =0x00002DB0
+ ldr r1, [r1, r0]
+ mov r0, #0xf
+ lsl r0, r0, #0x10
+ and r0, r1
+ beq _02240346
+ lsr r0, r0, #0x10
+ bl LowestFlagNo
+ mov r1, #0x46
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ bl LCRandom
+ mov r1, #1
+ tst r0, r1
+ beq _02240326
+ add r0, r4, #0
+ mov r2, #0x6b
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r7, #2
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _02240346
+_02240326:
+ ldr r0, [r4, #0x64]
+ mov r1, #8
+ lsl r0, r0, #2
+ ldr r2, [r6, r0]
+ orr r1, r2
+ str r1, [r6, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x6c
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r7, #1
+_02240346:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_0224034E:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _02240480 ; =0x00002DB0
+ ldr r1, [r2, r0]
+ mov r0, #3
+ lsl r0, r0, #8
+ tst r0, r1
+ beq _0224043C
+ ldr r0, _02240480 ; =0x00002DB0
+ ldr r1, [r2, r0]
+ mov r0, #1
+ lsl r0, r0, #8
+ sub r1, r1, r0
+ ldr r0, _02240480 ; =0x00002DB0
+ str r1, [r2, r0]
+ ldr r0, [r4, #0x64]
+ mov r1, #0xc0
+ mul r1, r0
+ add r2, r4, r1
+ ldr r1, _02240480 ; =0x00002DB0
+ ldr r2, [r2, r1]
+ mov r1, #3
+ lsl r1, r1, #8
+ tst r1, r2
+ bne _022403E8
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r0, _0224048C ; =0x000030E4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _022403E8
+ lsl r1, r0, #1
+ ldr r0, _02240490 ; =0x00002144
+ str r1, [r4, r0]
+ ldr r3, [r4, #0x64]
+ lsl r0, r3, #2
+ add r1, r4, r0
+ ldr r0, _02240494 ; =0x000030F4
+ ldr r2, [r1, r0]
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _02240498 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _022403B8
+ str r2, [r4, #0x6c]
+ b _022403E8
+_022403B8:
+ ldr r0, [sp, #0x18]
+ add r1, r4, #0
+ add r2, r3, #0
+ bl MOD11_022482A4
+ mov r1, #0xc0
+ mul r1, r0
+ str r0, [r4, #0x6c]
+ ldr r0, _02240498 ; =0x00002D8C
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _022403E8
+ ldr r2, _0224049C ; =0x0000011A
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r7, #2
+ b _0224043C
+_022403E8:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x24
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r7, #2
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ b _0224043C
+_022403FE:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _02240488 ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #0x20
+ tst r0, r1
+ beq _0224042E
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0x7d
+ beq _0224041A
+ cmp r0, #0xfd
+ bne _0224042E
+_0224041A:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x1e
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r7, #2
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_0224042E:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0224043C
+_02240436:
+ mov r0, #0
+ str r0, [r4, #0x50]
+ mov r7, #3
+_0224043C:
+ cmp r7, #0
+ bne _02240442
+ b _0223FDDE
+_02240442:
+ ldr r0, [sp, #0x18]
+ ldr r2, [r4, #0x64]
+ add r1, r4, #0
+ bl MOD11_02245190
+ cmp r7, #1
+ bne _0224046A
+ ldr r1, _022404A0 ; =0x0000213C
+ mov r0, #2
+ ldr r2, [r4, r1]
+ orr r0, r2
+ str r0, [r4, r1]
+ add r0, r1, #0
+ add r0, #0x30
+ ldr r2, [r4, r0]
+ mov r0, #2
+ lsl r0, r0, #0x1e
+ orr r0, r2
+ add r1, #0x30
+ str r0, [r4, r1]
+_0224046A:
+ cmp r7, #3
+ beq _02240474
+ add sp, #0x2c
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02240474:
+ mov r0, #0
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0224047C: .word 0x00003044
+_02240480: .word 0x00002DB0
+_02240484: .word 0x0000215C
+_02240488: .word 0x00002DAC
+_0224048C: .word 0x000030E4
+_02240490: .word 0x00002144
+_02240494: .word 0x000030F4
+_02240498: .word 0x00002D8C
+_0224049C: .word 0x0000011A
+_022404A0: .word 0x0000213C
+
+ thumb_func_start MOD11_022404A4
+MOD11_022404A4: ; 0x022404A4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r5, #0
+ ldr r7, _02240514 ; =0x0000216C
+ mov r4, #0
+ add r6, #0x54
+_022404B0:
+ ldr r0, [r5, #0x54]
+ cmp r0, #0
+ beq _022404BC
+ cmp r0, #1
+ beq _022404FC
+ b _02240502
+_022404BC:
+ ldr r1, [r5, #0x64]
+ ldr r2, [r5, #0x6c]
+ add r0, r5, #0
+ bl MOD11_02247418
+ add r2, r0, #0
+ beq _022404D4
+ ldr r0, _02240514 ; =0x0000216C
+ ldr r1, [r5, r0]
+ ldr r0, _02240518 ; =0x001FD849
+ tst r0, r1
+ beq _022404D8
+_022404D4:
+ cmp r2, #0xb5
+ bne _022404F4
+_022404D8:
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r5, #8]
+ mov r4, #1
+ str r0, [r5, #0xc]
+ mov r0, #0x15
+ str r0, [r5, #8]
+ mov r0, #2
+ ldr r1, [r5, r7]
+ lsl r0, r0, #0x1e
+ orr r0, r1
+ str r0, [r5, r7]
+_022404F4:
+ ldr r0, [r6]
+ add r0, r0, #1
+ str r0, [r6]
+ b _02240502
+_022404FC:
+ mov r0, #0
+ str r0, [r5, #0x54]
+ mov r4, #2
+_02240502:
+ cmp r4, #0
+ beq _022404B0
+ cmp r4, #2
+ beq _0224050E
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0224050E:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02240514: .word 0x0000216C
+_02240518: .word 0x001FD849
+
+ thumb_func_start MOD11_0224051C
+MOD11_0224051C: ; 0x0224051C
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r2, _02240538 ; =0x00000116
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ pop {r4, pc}
+ nop
+_02240538: .word 0x00000116
+
+ thumb_func_start MOD11_0224053C
+MOD11_0224053C: ; 0x0224053C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ str r0, [sp, #4]
+ add r5, r1, #0
+ add r6, r2, #0
+ str r3, [sp, #8]
+ bl MOD11_0222FF74
+ mov r1, #1
+ lsl r1, r1, #0xa
+ tst r0, r1
+ beq _0224055A
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0224055A:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ ldr r0, [sp, #0x38]
+ ldr r2, _02240868 ; =0x00002D5E
+ lsl r0, r0, #4
+ str r0, [sp, #0x10]
+ add r1, r5, r0
+ mov r0, #0x3e
+ lsl r0, r0, #4
+ ldrb r0, [r1, r0]
+ add r1, r6, #0
+ str r0, [sp, #0x18]
+ mov r0, #0xc0
+ mul r1, r0
+ str r1, [sp, #0xc]
+ add r1, r5, r1
+ ldrsb r1, [r1, r2]
+ sub r1, r1, #6
+ lsl r1, r1, #0x18
+ asr r7, r1, #0x18
+ ldr r1, [sp, #8]
+ mul r0, r1
+ str r0, [sp, #0x14]
+ add r1, r5, r0
+ add r0, r2, #1
+ ldrsb r1, [r1, r0]
+ mov r0, #6
+ sub r0, r0, r1
+ lsl r0, r0, #0x18
+ asr r4, r0, #0x18
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x56
+ bne _022405AA
+ lsl r0, r7, #0x19
+ asr r7, r0, #0x18
+_022405AA:
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r3, #0x56
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _022405BE
+ lsl r0, r4, #0x19
+ asr r4, r0, #0x18
+_022405BE:
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r3, #0x6d
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _022405D0
+ mov r7, #0
+_022405D0:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x6d
+ bne _022405DE
+ mov r4, #0
+_022405DE:
+ ldr r0, _0224086C ; =0x00002DB0
+ ldr r1, [sp, #0x14]
+ add r2, r5, r0
+ str r2, [sp, #0x1c]
+ ldr r1, [r2, r1]
+ mov r2, #2
+ lsl r2, r2, #0x1c
+ tst r1, r2
+ bne _022405FE
+ ldr r1, [sp, #0x14]
+ add r0, #0x10
+ add r1, r5, r1
+ ldr r1, [r1, r0]
+ lsr r0, r2, #7
+ tst r0, r1
+ beq _02240604
+_022405FE:
+ cmp r4, #0
+ bge _02240604
+ mov r4, #0
+_02240604:
+ add r0, r4, #6
+ add r0, r0, r7
+ lsl r0, r0, #0x18
+ asr r7, r0, #0x18
+ bpl _02240610
+ mov r7, #0
+_02240610:
+ cmp r7, #0xc
+ ble _02240616
+ mov r7, #0xc
+_02240616:
+ ldr r0, _02240870 ; =0x000003E3
+ add r1, r5, r0
+ ldr r0, [sp, #0x10]
+ ldrb r4, [r1, r0]
+ cmp r4, #0
+ bne _02240628
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02240628:
+ ldr r0, _02240874 ; =0x0000213C
+ mov r1, #0x20
+ ldr r0, [r5, r0]
+ add r2, r0, #0
+ tst r2, r1
+ beq _0224063A
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0224063A:
+ lsl r1, r1, #5
+ tst r0, r1
+ beq _02240646
+ add sp, #0x20
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02240646:
+ mov r0, #0xd
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _02240688
+ mov r0, #0x4c
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _02240688
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #0x30
+ tst r0, r1
+ beq _02240688
+ ldr r0, [sp, #0x10]
+ add r1, r5, r0
+ ldr r0, _02240878 ; =0x000003DE
+ ldrh r0, [r1, r0]
+ cmp r0, #0x98
+ bne _02240688
+ mov r4, #0x32
+_02240688:
+ ldr r0, _0224087C ; =0x0225E178
+ lsl r1, r7, #1
+ ldrb r0, [r0, r1]
+ ldr r2, _02240880 ; =0x0225E179
+ ldrb r1, [r2, r1]
+ mul r0, r4
+ bl _u32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0xe
+ bne _022406B6
+ mov r0, #0x82
+ mul r0, r4
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_022406B6:
+ mov r0, #0xd
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224074E
+ mov r0, #0x4c
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224074E
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #0xc
+ tst r0, r1
+ beq _02240708
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r3, #8
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02240708
+ mov r0, #0x50
+ mul r0, r4
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_02240708:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #0xc0
+ tst r0, r1
+ beq _02240732
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r3, #0x51
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02240732
+ mov r0, #0x50
+ mul r0, r4
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_02240732:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #2
+ lsl r0, r0, #0xe
+ tst r0, r1
+ beq _0224074E
+ mov r0, #6
+ mul r0, r4
+ mov r1, #0xa
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224074E:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x37
+ bne _0224076E
+ ldr r0, [sp, #0x18]
+ cmp r0, #0
+ bne _0224076E
+ mov r0, #0x50
+ mul r0, r4
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224076E:
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r3, #0x4d
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02240798
+ ldr r1, [sp, #0x1c]
+ ldr r0, [sp, #0x14]
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _02240798
+ mov r0, #0x32
+ mul r0, r4
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_02240798:
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_02249D90
+ add r7, r0, #0
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ cmp r7, #0x2f
+ bne _022407BE
+ mov r1, #0x64
+ sub r0, r1, r0
+ mul r0, r4
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_022407BE:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02249D90
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ add r6, r0, #0
+ cmp r7, #0x5c
+ bne _022407E6
+ add r0, #0x64
+ mul r0, r4
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_022407E6:
+ cmp r7, #0x67
+ bne _02240806
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_02249B7C
+ cmp r0, #1
+ bne _02240806
+ add r6, #0x64
+ add r0, r4, #0
+ mul r0, r6
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_02240806:
+ ldr r0, _02240884 ; =0x00002DCC
+ ldr r1, [sp, #0xc]
+ add r0, r5, r0
+ ldr r2, [r0, r1]
+ lsl r1, r2, #4
+ lsr r1, r1, #0x1f
+ beq _0224082A
+ ldr r1, _02240888 ; =0xF7FFFFFF
+ and r2, r1
+ ldr r1, [sp, #0xc]
+ str r2, [r0, r1]
+ mov r0, #0x78
+ mul r0, r4
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224082A:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #7
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _02240846
+ mov r0, #0xa
+ mul r0, r4
+ mov r1, #6
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_02240846:
+ bl LCRandom
+ mov r1, #0x64
+ bl _s32_div_f
+ add r0, r1, #1
+ cmp r0, r4
+ ble _02240860
+ ldr r1, _0224088C ; =0x0000216C
+ mov r0, #1
+ ldr r2, [r5, r1]
+ orr r0, r2
+ str r0, [r5, r1]
+_02240860:
+ mov r0, #0
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02240868: .word 0x00002D5E
+_0224086C: .word 0x00002DB0
+_02240870: .word 0x000003E3
+_02240874: .word 0x0000213C
+_02240878: .word 0x000003DE
+_0224087C: .word 0x0225E178
+_02240880: .word 0x0225E179
+_02240884: .word 0x00002DCC
+_02240888: .word 0xF7FFFFFF
+_0224088C: .word 0x0000216C
+
+ thumb_func_start MOD11_02240890
+MOD11_02240890: ; 0x02240890
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r0, [sp, #4]
+ add r5, r1, #0
+ ldr r0, _02240A54 ; =0x0000213C
+ add r6, r3, #0
+ ldr r3, [r5, r0]
+ mov r1, #0x20
+ add r7, r2, #0
+ ldr r4, [sp, #0x20]
+ tst r1, r3
+ beq _022408AE
+ add sp, #8
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022408AE:
+ lsl r1, r6, #6
+ add r3, r5, r1
+ mov r1, #0x75
+ lsl r1, r1, #2
+ ldr r1, [r3, r1]
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0x1f
+ beq _0224091C
+ lsl r1, r4, #4
+ add r3, r5, r1
+ ldr r1, _02240A58 ; =0x000003E9
+ ldrb r3, [r3, r1]
+ mov r1, #2
+ tst r1, r3
+ beq _0224091C
+ add r0, #0x30
+ ldr r1, [r5, r0]
+ ldr r0, _02240A5C ; =0x801FDA49
+ tst r0, r1
+ bne _0224091C
+ cmp r4, #0xae
+ bne _022408E8
+ lsl r1, r4, #0x10
+ add r0, r5, #0
+ lsr r1, r1, #0x10
+ bl MOD11_02246C20
+ cmp r0, #1
+ bne _0224091C
+_022408E8:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246AF8
+ cmp r0, #0
+ beq _02240900
+ ldr r0, _02240A54 ; =0x0000213C
+ ldr r1, [r5, r0]
+ mov r0, #2
+ lsl r0, r0, #8
+ tst r0, r1
+ beq _0224091C
+_02240900:
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ add r2, r7, #0
+ bl MOD11_022451F0
+ ldr r1, _02240A60 ; =0x0000216C
+ mov r0, #2
+ ldr r2, [r5, r1]
+ lsl r0, r0, #0xe
+ orr r0, r2
+ str r0, [r5, r1]
+ add sp, #8
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0224091C:
+ ldr r0, _02240A54 ; =0x0000213C
+ ldr r1, [r5, r0]
+ mov r0, #1
+ lsl r0, r0, #0xa
+ tst r0, r1
+ bne _0224096E
+ mov r0, #0xc0
+ mul r0, r6
+ add r3, r5, r0
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r2, [r3, r0]
+ mov r1, #0x18
+ tst r1, r2
+ beq _02240946
+ add r0, #0xc
+ ldr r0, [r3, r0]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1e
+ cmp r7, r0
+ beq _0224095E
+_02240946:
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x63
+ beq _0224095E
+ ldr r1, [r5, #0x6c]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x63
+ bne _0224096E
+_0224095E:
+ ldr r1, _02240A60 ; =0x0000216C
+ mov r0, #1
+ ldr r2, [r5, r1]
+ add sp, #8
+ bic r2, r0
+ str r2, [r5, r1]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0224096E:
+ mov r0, #0xd
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _022409DC
+ mov r0, #0x4c
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _022409DC
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #3
+ tst r0, r1
+ beq _022409B8
+ lsl r0, r4, #4
+ add r1, r5, r0
+ ldr r0, _02240A64 ; =0x000003DE
+ ldrh r0, [r1, r0]
+ cmp r0, #0x98
+ bne _022409B8
+ ldr r1, _02240A60 ; =0x0000216C
+ mov r0, #1
+ ldr r2, [r5, r1]
+ bic r2, r0
+ str r2, [r5, r1]
+_022409B8:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r5, r0]
+ mov r1, #0xc0
+ tst r0, r1
+ beq _022409DC
+ lsl r0, r4, #4
+ add r2, r5, r0
+ ldr r0, _02240A64 ; =0x000003DE
+ add r1, #0x44
+ ldrh r0, [r2, r0]
+ cmp r0, r1
+ bne _022409DC
+ ldr r1, _02240A60 ; =0x0000216C
+ mov r0, #1
+ ldr r2, [r5, r1]
+ bic r2, r0
+ str r2, [r5, r1]
+_022409DC:
+ ldr r1, _02240A60 ; =0x0000216C
+ mov r2, #1
+ ldr r0, [r5, r1]
+ lsl r2, r2, #0xa
+ tst r0, r2
+ bne _02240A4C
+ ldr r0, _02240A68 ; =0x00003044
+ sub r2, #0x1a
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r0, r5, r0
+ ldrh r0, [r0, r2]
+ cmp r0, #0x80
+ beq _02240A4C
+ sub r1, #0x30
+ ldr r0, [r5, r1]
+ mov r1, #4
+ tst r1, r0
+ bne _02240A14
+ mov r1, #0xc0
+ mul r1, r6
+ add r2, r5, r1
+ mov r1, #0xb7
+ lsl r1, r1, #6
+ ldr r2, [r2, r1]
+ mov r1, #0x40
+ tst r1, r2
+ bne _02240A40
+_02240A14:
+ mov r1, #0xc0
+ mul r1, r6
+ add r2, r5, r1
+ mov r1, #0xb7
+ lsl r1, r1, #6
+ ldr r1, [r2, r1]
+ mov r2, #2
+ lsl r2, r2, #0x1c
+ tst r2, r1
+ bne _02240A40
+ mov r2, #8
+ tst r2, r0
+ bne _02240A34
+ mov r2, #0x80
+ tst r2, r1
+ bne _02240A40
+_02240A34:
+ mov r2, #0x10
+ tst r0, r2
+ bne _02240A4C
+ lsl r0, r2, #0xe
+ tst r0, r1
+ beq _02240A4C
+_02240A40:
+ ldr r1, _02240A60 ; =0x0000216C
+ mov r0, #1
+ ldr r2, [r5, r1]
+ lsl r0, r0, #0x10
+ orr r0, r2
+ str r0, [r5, r1]
+_02240A4C:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02240A54: .word 0x0000213C
+_02240A58: .word 0x000003E9
+_02240A5C: .word 0x801FDA49
+_02240A60: .word 0x0000216C
+_02240A64: .word 0x000003DE
+_02240A68: .word 0x00003044
+
+ thumb_func_start MOD11_02240A6C
+MOD11_02240A6C: ; 0x02240A6C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ bl MOD11_0222FF84
+ add r2, r0, #0
+ ldr r0, [r4, #0x6c]
+ cmp r0, #0xff
+ bne _02240A80
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02240A80:
+ ldr r6, _02240BBC ; =0x0000216C
+ ldr r1, _02240BC0 ; =0x801FDA49
+ ldr r3, [r4, r6]
+ add r7, r3, #0
+ and r7, r1
+ bne _02240B12
+ mov r1, #0x75
+ lsl r1, r1, #2
+ lsl r0, r0, #6
+ add r5, r4, r1
+ ldr r3, [r5, r0]
+ mov ip, r0
+ lsl r0, r3, #0x1b
+ lsr r0, r0, #0x1f
+ beq _02240B12
+ ldr r0, _02240BC4 ; =0x00003044
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _02240BC8 ; =0x000003E9
+ ldrb r0, [r1, r0]
+ mov r1, #4
+ tst r0, r1
+ beq _02240B12
+ mov r0, #0x10
+ bic r3, r0
+ mov r0, ip
+ str r3, [r5, r0]
+ ldr r2, [r4, #0x64]
+ mov r0, #0
+ lsl r2, r2, #1
+ add r3, r4, r2
+ ldr r2, _02240BC4 ; =0x00003044
+ add r2, #0x18
+ strh r0, [r3, r2]
+ ldr r2, [r4, #0x64]
+ ldr r0, _02240BC4 ; =0x00003044
+ lsl r2, r2, #1
+ sub r0, r0, #4
+ add r3, r4, r2
+ ldr r2, _02240BC4 ; =0x00003044
+ ldr r0, [r4, r0]
+ add r2, #0x38
+ strh r0, [r3, r2]
+ ldr r0, _02240BC4 ; =0x00003044
+ sub r0, r0, #4
+ ldr r2, [r4, r0]
+ ldr r0, _02240BC4 ; =0x00003044
+ add r0, r0, #4
+ str r2, [r4, r0]
+ add r0, r6, #0
+ sub r0, #0x30
+ ldr r2, [r4, r0]
+ lsl r0, r1, #0x12
+ orr r0, r2
+ sub r6, #0x30
+ str r0, [r4, r6]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x8b
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ ldr r1, [r4, #0x6c]
+ ldr r2, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_0224C438
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02240B12:
+ mov r1, #0
+ cmp r2, #0
+ ble _02240BB8
+ mov r0, #0x75
+ lsl r0, r0, #2
+ add r0, r4, r0
+_02240B1E:
+ ldr r3, _02240BCC ; =0x000021EC
+ add r5, r4, r1
+ ldrb r5, [r5, r3]
+ cmp r7, #0
+ bne _02240BB2
+ lsl r3, r5, #6
+ str r3, [sp]
+ ldr r3, [r0, r3]
+ lsl r3, r3, #0x1a
+ lsr r3, r3, #0x1f
+ beq _02240BB2
+ ldr r3, _02240BC4 ; =0x00003044
+ ldr r3, [r4, r3]
+ lsl r3, r3, #4
+ add r6, r4, r3
+ ldr r3, _02240BC8 ; =0x000003E9
+ ldrb r6, [r6, r3]
+ mov r3, #8
+ tst r3, r6
+ beq _02240BB2
+ mov r1, #0x46
+ lsl r1, r1, #2
+ str r5, [r4, r1]
+ ldr r1, [sp]
+ mov r7, #1
+ ldr r2, [r0, r1]
+ mov r1, #0x20
+ bic r2, r1
+ ldr r1, [sp]
+ lsl r7, r7, #0x14
+ str r2, [r0, r1]
+ ldr r2, _02240BD0 ; =0x0000213C
+ ldr r0, [r4, r2]
+ tst r0, r7
+ bne _02240B92
+ ldr r1, [r4, #0x64]
+ mov r0, #0
+ lsl r1, r1, #1
+ add r3, r4, r1
+ ldr r1, _02240BD4 ; =0x0000305C
+ strh r0, [r3, r1]
+ add r0, r1, #0
+ sub r0, #0x1c
+ ldr r6, [r4, r0]
+ ldr r0, [r4, #0x64]
+ lsl r0, r0, #1
+ add r3, r4, r0
+ add r0, r1, #0
+ add r0, #0x20
+ strh r6, [r3, r0]
+ add r0, r1, #0
+ sub r0, #0x1c
+ ldr r0, [r4, r0]
+ sub r1, #0x14
+ str r0, [r4, r1]
+ ldr r0, [r4, r2]
+ orr r0, r7
+ str r0, [r4, r2]
+_02240B92:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x92
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add r1, r5, #0
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ ldr r2, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_0224C438
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02240BB2:
+ add r1, r1, #1
+ cmp r1, r2
+ blt _02240B1E
+_02240BB8:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02240BBC: .word 0x0000216C
+_02240BC0: .word 0x801FDA49
+_02240BC4: .word 0x00003044
+_02240BC8: .word 0x000003E9
+_02240BCC: .word 0x000021EC
+_02240BD0: .word 0x0000213C
+_02240BD4: .word 0x0000305C
+
+ thumb_func_start MOD11_02240BD8
+MOD11_02240BD8: ; 0x02240BD8
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_02232264
+ cmp r0, #1
+ bne _02240BF0
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xb4
+ str r1, [r0]
+ ldr r0, [r4, #0xc]
+ str r0, [r4, #8]
+_02240BF0:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02240BF4
+MOD11_02240BF4: ; 0x02240BF4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r2, [r4, #0x48]
+ add r5, r0, #0
+ cmp r2, #6
+ bhi _02240CEA
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02240C0C: ; jump table
+ .short _02240C1A - _02240C0C - 2 ; case 0
+ .short _02240C26 - _02240C0C - 2 ; case 1
+ .short _02240C3E - _02240C0C - 2 ; case 2
+ .short _02240C8A - _02240C0C - 2 ; case 3
+ .short _02240CA6 - _02240C0C - 2 ; case 4
+ .short _02240CB8 - _02240C0C - 2 ; case 5
+ .short _02240CD4 - _02240C0C - 2 ; case 6
+_02240C1A:
+ bl MOD11_0224051C
+ ldr r0, [r4, #0x48]
+ add r0, r0, #1
+ str r0, [r4, #0x48]
+ pop {r3, r4, r5, pc}
+_02240C26:
+ ldr r2, _02240D30 ; =0x00002184
+ ldr r3, [r4, r2]
+ mov r2, #4
+ tst r2, r3
+ bne _02240C38
+ bl MOD11_0223FDB0
+ cmp r0, #1
+ beq _02240D2C
+_02240C38:
+ ldr r0, [r4, #0x48]
+ add r0, r0, #1
+ str r0, [r4, #0x48]
+_02240C3E:
+ ldr r0, _02240D30 ; =0x00002184
+ ldr r1, [r4, r0]
+ mov r0, #1
+ tst r0, r1
+ bne _02240C84
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #0
+ bl MOD11_0223F84C
+ cmp r0, #0
+ beq _02240C84
+ cmp r0, #1
+ beq _02240C64
+ cmp r0, #2
+ beq _02240C6A
+ cmp r0, #3
+ beq _02240C70
+ b _02240C74
+_02240C64:
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ b _02240C74
+_02240C6A:
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ b _02240C74
+_02240C70:
+ mov r0, #0x21
+ str r0, [r4, #0xc]
+_02240C74:
+ mov r0, #0x15
+ str r0, [r4, #8]
+ ldr r2, [sp]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ pop {r3, r4, r5, pc}
+_02240C84:
+ ldr r0, [r4, #0x48]
+ add r0, r0, #1
+ str r0, [r4, #0x48]
+_02240C8A:
+ ldr r0, _02240D30 ; =0x00002184
+ ldr r1, [r4, r0]
+ mov r0, #8
+ tst r0, r1
+ bne _02240CA0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223FB10
+ cmp r0, #1
+ beq _02240D2C
+_02240CA0:
+ ldr r0, [r4, #0x48]
+ add r0, r0, #1
+ str r0, [r4, #0x48]
+_02240CA6:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223FCAC
+ cmp r0, #1
+ beq _02240D2C
+ ldr r0, [r4, #0x48]
+ add r0, r0, #1
+ str r0, [r4, #0x48]
+_02240CB8:
+ ldr r0, _02240D30 ; =0x00002184
+ ldr r1, [r4, r0]
+ mov r0, #0x80
+ tst r0, r1
+ bne _02240CCE
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02240A6C
+ cmp r0, #1
+ beq _02240D2C
+_02240CCE:
+ ldr r0, [r4, #0x48]
+ add r0, r0, #1
+ str r0, [r4, #0x48]
+_02240CD4:
+ ldr r3, _02240D34 ; =0x00003044
+ ldr r2, [r4, #0x64]
+ ldr r3, [r4, r3]
+ add r0, r5, #0
+ lsl r3, r3, #0x10
+ add r1, r4, #0
+ lsr r3, r3, #0x10
+ bl MOD11_02244F68
+ mov r0, #0
+ str r0, [r4, #0x48]
+_02240CEA:
+ ldr r1, _02240D38 ; =0x0000216C
+ ldr r0, _02240D3C ; =0x801FDA49
+ ldr r2, [r4, r1]
+ tst r0, r2
+ beq _02240CFA
+ mov r0, #0x19
+ str r0, [r4, #8]
+ b _02240D24
+_02240CFA:
+ add r0, r1, #0
+ sub r0, #0x2c
+ ldr r2, [r4, r0]
+ mov r0, #0x40
+ orr r0, r2
+ sub r1, #0x2c
+ str r0, [r4, r1]
+ ldr r2, _02240D34 ; =0x00003044
+ add r0, r4, #0
+ ldr r2, [r4, r2]
+ mov r1, #0
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x17
+ str r0, [r4, #0xc]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02247380
+_02240D24:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224AB44
+_02240D2C:
+ pop {r3, r4, r5, pc}
+ nop
+_02240D30: .word 0x00002184
+_02240D34: .word 0x00003044
+_02240D38: .word 0x0000216C
+_02240D3C: .word 0x801FDA49
+
+ thumb_func_start MOD11_02240D40
+MOD11_02240D40: ; 0x02240D40
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r2, [r4, #0x4c]
+ add r5, r0, #0
+ cmp r2, #6
+ bhi _02240E20
+ add r3, r2, r2
+ add r3, pc
+ ldrh r3, [r3, #6]
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ add pc, r3
+_02240D58: ; jump table
+ .short _02240D66 - _02240D58 - 2 ; case 0
+ .short _02240D72 - _02240D58 - 2 ; case 1
+ .short _02240D84 - _02240D58 - 2 ; case 2
+ .short _02240DAE - _02240D58 - 2 ; case 3
+ .short _02240DD8 - _02240D58 - 2 ; case 4
+ .short _02240DFA - _02240D58 - 2 ; case 5
+ .short _02240E1C - _02240D58 - 2 ; case 6
+_02240D66:
+ add r2, r2, #1
+ str r2, [r4, #0x4c]
+ bl MOD11_0223FCAC
+ cmp r0, #1
+ beq _02240E24
+_02240D72:
+ ldr r0, [r4, #0x4c]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ add r0, r5, #0
+ bl MOD11_0224510C
+ cmp r0, #1
+ beq _02240E24
+_02240D84:
+ ldr r0, _02240E28 ; =0x00002184
+ ldr r1, [r4, r0]
+ mov r0, #0x20
+ tst r0, r1
+ bne _02240DA8
+ ldr r3, [r4, #0x6c]
+ cmp r3, #0xff
+ beq _02240DA8
+ ldr r0, _02240E2C ; =0x00003044
+ add r1, r4, #0
+ ldr r0, [r4, r0]
+ str r0, [sp]
+ ldr r2, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_0224053C
+ cmp r0, #1
+ beq _02240E24
+_02240DA8:
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+_02240DAE:
+ ldr r0, _02240E28 ; =0x00002184
+ ldr r1, [r4, r0]
+ mov r0, #0x40
+ tst r0, r1
+ bne _02240DD2
+ ldr r3, [r4, #0x6c]
+ cmp r3, #0xff
+ beq _02240DD2
+ ldr r0, _02240E2C ; =0x00003044
+ add r1, r4, #0
+ ldr r0, [r4, r0]
+ str r0, [sp]
+ ldr r2, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02240890
+ cmp r0, #1
+ beq _02240E24
+_02240DD2:
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+_02240DD8:
+ ldr r0, _02240E28 ; =0x00002184
+ ldr r1, [r4, r0]
+ mov r0, #2
+ tst r0, r1
+ bne _02240DF4
+ ldr r0, [r4, #0x6c]
+ cmp r0, #0xff
+ beq _02240DF4
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0223FD20
+ cmp r0, #1
+ beq _02240E24
+_02240DF4:
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+_02240DFA:
+ ldr r0, _02240E28 ; =0x00002184
+ ldr r1, [r4, r0]
+ mov r0, #0x10
+ tst r0, r1
+ bne _02240E16
+ ldr r0, [r4, #0x6c]
+ cmp r0, #0xff
+ beq _02240E16
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022404A4
+ cmp r0, #1
+ beq _02240E24
+_02240E16:
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+_02240E1C:
+ mov r0, #0
+ str r0, [r4, #0x4c]
+_02240E20:
+ mov r0, #0x18
+ str r0, [r4, #8]
+_02240E24:
+ pop {r3, r4, r5, pc}
+ nop
+_02240E28: .word 0x00002184
+_02240E2C: .word 0x00003044
+
+ thumb_func_start MOD11_02240E30
+MOD11_02240E30: ; 0x02240E30
+ push {r3, r4, lr}
+ sub sp, #4
+ add r2, sp, #0
+ add r4, r1, #0
+ bl MOD11_02244948
+ cmp r0, #1
+ bne _02240E56
+ ldr r2, [sp]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x19
+ add sp, #4
+ str r0, [r4, #0xc]
+ pop {r3, r4, pc}
+_02240E56:
+ mov r0, #0x19
+ str r0, [r4, #8]
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02240E60
+MOD11_02240E60: ; 0x02240E60
+ push {r4, lr}
+ ldr r0, _02240ED8 ; =0x0000216C
+ add r4, r1, #0
+ ldr r1, [r4, r0]
+ mov r2, #2
+ lsl r2, r2, #0x1e
+ add r3, r1, #0
+ tst r3, r2
+ beq _02240E78
+ mov r0, #0x22
+ str r0, [r4, #8]
+ pop {r4, pc}
+_02240E78:
+ lsr r2, r2, #0x16
+ tst r2, r1
+ beq _02240E92
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x2a
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ pop {r4, pc}
+_02240E92:
+ add r2, r0, #0
+ add r2, #0x14
+ ldr r2, [r4, r2]
+ cmp r2, #0
+ beq _02240EB8
+ mov r3, #1
+ add r2, r1, #0
+ tst r2, r3
+ beq _02240EB8
+ mov r2, #1
+ bic r1, r2
+ str r1, [r4, r0]
+ ldr r2, [r4, r0]
+ lsl r1, r3, #0xe
+ orr r1, r2
+ str r1, [r4, r0]
+ mov r0, #0x1c
+ str r0, [r4, #8]
+ pop {r4, pc}
+_02240EB8:
+ ldr r0, _02240EDC ; =0x001FD849
+ tst r0, r1
+ beq _02240ED2
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #7
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x21
+ str r0, [r4, #0xc]
+ pop {r4, pc}
+_02240ED2:
+ mov r0, #0x1a
+ str r0, [r4, #8]
+ pop {r4, pc}
+ .align 2, 0
+_02240ED8: .word 0x0000216C
+_02240EDC: .word 0x001FD849
+
+ thumb_func_start MOD11_02240EE0
+MOD11_02240EE0: ; 0x02240EE0
+ push {r4, lr}
+ add r4, r1, #0
+ mov r1, #1
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x1b
+ str r0, [r4, #0xc]
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02240EF8
+MOD11_02240EF8: ; 0x02240EF8
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r2, _02241260 ; =0x0000216C
+ add r4, r1, #0
+ ldr r1, [r4, r2]
+ add r5, r0, #0
+ mov r0, #0x20
+ tst r0, r1
+ beq _02240F1E
+ ldr r0, [r4, #0x6c]
+ mov r1, #0xc0
+ add r3, r0, #0
+ mul r3, r1
+ ldr r0, _02241264 ; =0x00002D90
+ add r3, r4, r3
+ ldr r0, [r3, r0]
+ sub r1, #0xc1
+ mul r1, r0
+ sub r2, #0x28
+ str r1, [r4, r2]
+_02240F1E:
+ ldr r0, _02241268 ; =0x00002144
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _02240F28
+ b _022412E8
+_02240F28:
+ ldr r1, [r4, #0x6c]
+ add r0, r4, #0
+ bl MOD11_02249D90
+ add r7, r0, #0
+ ldr r1, [r4, #0x6c]
+ add r0, r4, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ str r0, [sp]
+ ldr r0, _02241268 ; =0x00002144
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ blt _02240F4A
+ bl ErrorHandling
+_02240F4A:
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_02230270
+ add r6, r0, #0
+ ldr r1, [r4, #0x6c]
+ add r0, r5, #0
+ bl MOD11_02230270
+ cmp r6, r0
+ bne _02240F6C
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ mov r2, #0
+ mov r3, #0x46
+ bl MOD11_022564A8
+_02240F6C:
+ ldr r0, [r4, #0x6c]
+ ldr r2, [r4, #0x64]
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r0, _0224126C ; =0x000030F4
+ str r2, [r1, r0]
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ add r6, r1, #0
+ mul r6, r0
+ mov r2, #1
+ ldr r1, _02241270 ; =0x00002DB0
+ add r5, r4, r6
+ ldr r3, [r5, r1]
+ lsl r2, r2, #0x18
+ tst r2, r3
+ beq _02241044
+ ldr r2, _02241268 ; =0x00002144
+ ldr r2, [r4, r2]
+ cmp r2, #0
+ bge _02241044
+ add r3, r1, #0
+ add r3, #0x30
+ ldr r3, [r5, r3]
+ add r5, r2, r3
+ cmp r5, #0
+ bgt _02240FE8
+ mov r2, #0xbb
+ lsl r2, r2, #2
+ add r6, r4, r2
+ ldr r2, [r4, #0x64]
+ mov r5, #0x1c
+ mul r5, r2
+ ldr r2, [r6, r5]
+ sub r2, r2, r3
+ str r2, [r6, r5]
+ ldr r5, [r4, #0x6c]
+ add r3, r4, r1
+ add r2, r5, #0
+ mul r2, r0
+ ldr r6, [r3, r2]
+ ldr r5, _02241274 ; =0xFEFFFFFF
+ and r5, r6
+ str r5, [r3, r2]
+ ldr r2, [r4, #0x6c]
+ add r3, r2, #0
+ add r2, r1, #0
+ mul r3, r0
+ add r3, r4, r3
+ add r2, #0x30
+ ldr r2, [r3, r2]
+ add r1, #0x30
+ neg r3, r2
+ ldr r2, _02241268 ; =0x00002144
+ add r2, r2, #4
+ str r3, [r4, r2]
+ ldr r2, [r4, #0x6c]
+ mov r3, #0
+ mul r0, r2
+ add r0, r4, r0
+ str r3, [r0, r1]
+ b _02241014
+_02240FE8:
+ mov r3, #0xbb
+ lsl r3, r3, #2
+ add r6, r4, r3
+ ldr r3, [r4, #0x64]
+ mov r5, #0x1c
+ mul r5, r3
+ ldr r3, [r6, r5]
+ add r1, #0x30
+ add r2, r3, r2
+ str r2, [r6, r5]
+ ldr r2, [r4, #0x6c]
+ add r1, r4, r1
+ mul r0, r2
+ ldr r2, _02241268 ; =0x00002144
+ ldr r3, [r1, r0]
+ ldr r2, [r4, r2]
+ add r2, r3, r2
+ str r2, [r1, r0]
+ ldr r0, _02241268 ; =0x00002144
+ ldr r1, [r4, r0]
+ add r0, r0, #4
+ str r1, [r4, r0]
+_02241014:
+ mov r0, #0xba
+ lsl r0, r0, #2
+ ldr r2, [r4, #0x6c]
+ add r1, r4, r0
+ add r0, r2, #0
+ mov r3, #0x1c
+ mul r0, r3
+ ldr r5, [r1, r0]
+ mov r2, #8
+ orr r2, r5
+ str r2, [r1, r0]
+ ldr r0, [r4, #0x6c]
+ add r3, #0xfc
+ str r0, [r4, r3]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x5a
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x1c
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02241044:
+ ldr r0, _02241278 ; =0x00003044
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _0224127C ; =0x000003DE
+ ldrh r0, [r1, r0]
+ cmp r0, #0x65
+ bne _0224106A
+ ldr r0, _02241280 ; =0x00002D8C
+ add r1, r4, r6
+ ldr r2, [r1, r0]
+ ldr r0, _02241268 ; =0x00002144
+ ldr r1, [r4, r0]
+ add r1, r1, r2
+ cmp r1, #0
+ bgt _0224106A
+ sub r1, r2, #1
+ neg r1, r1
+ str r1, [r4, r0]
+_0224106A:
+ ldr r0, [r4, #0x6c]
+ lsl r0, r0, #6
+ add r1, r4, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x16
+ lsr r0, r0, #0x1f
+ bne _022410D0
+ cmp r7, #0x40
+ bne _022410A4
+ bl LCRandom
+ mov r1, #0x64
+ bl _s32_div_f
+ ldr r0, [sp]
+ cmp r1, r0
+ bge _022410A4
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r2, [r4, #0x6c]
+ mov r0, #0x1c
+ mul r0, r2
+ ldr r3, [r1, r0]
+ mov r2, #0x20
+ orr r2, r3
+ str r2, [r1, r0]
+_022410A4:
+ cmp r7, #0x66
+ bne _022410D0
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r3, r4, r0
+ ldr r0, _02241280 ; =0x00002D8C
+ ldr r2, [r3, r0]
+ add r0, r0, #4
+ ldr r0, [r3, r0]
+ cmp r2, r0
+ bne _022410D0
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r3, r1, #0
+ mov r2, #0x1c
+ add r0, r4, r0
+ mul r3, r2
+ ldr r2, [r0, r3]
+ mov r1, #0x20
+ orr r1, r2
+ str r1, [r0, r3]
+_022410D0:
+ ldr r0, [r4, #0x6c]
+ lsl r1, r0, #6
+ add r2, r4, r1
+ mov r1, #0x75
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ lsl r1, r1, #0x16
+ lsr r1, r1, #0x1f
+ bne _022410F4
+ mov r1, #0x1c
+ mul r1, r0
+ add r2, r4, r1
+ mov r1, #0xb5
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ lsl r1, r1, #0x1a
+ lsr r1, r1, #0x1f
+ beq _0224113E
+_022410F4:
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _02241280 ; =0x00002D8C
+ add r1, r4, r1
+ ldr r2, _02241268 ; =0x00002144
+ ldr r1, [r1, r0]
+ ldr r0, [r4, r2]
+ add r0, r0, r1
+ cmp r0, #0
+ bgt _0224113E
+ sub r0, r1, #1
+ neg r0, r0
+ str r0, [r4, r2]
+ ldr r0, [r4, #0x6c]
+ mov r1, #0x75
+ lsl r0, r0, #6
+ add r0, r4, r0
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ lsl r0, r0, #0x16
+ lsr r0, r0, #0x1f
+ beq _02241130
+ add r0, r2, #0
+ add r0, #0x28
+ ldr r1, [r4, r0]
+ mov r0, #0x80
+ orr r0, r1
+ add r2, #0x28
+ str r0, [r4, r2]
+ b _0224113E
+_02241130:
+ add r0, r2, #0
+ add r0, #0x28
+ ldr r0, [r4, r0]
+ sub r1, #0xd4
+ orr r0, r1
+ add r2, #0x28
+ str r0, [r4, r2]
+_0224113E:
+ ldr r1, [r4, #0x6c]
+ ldr r0, _02241284 ; =0x000030E4
+ lsl r3, r1, #2
+ ldr r1, _02241268 ; =0x00002144
+ add r0, r4, r0
+ ldr r2, [r0, r3]
+ ldr r1, [r4, r1]
+ add r1, r2, r1
+ str r1, [r0, r3]
+ ldr r0, _02241288 ; =0x00002DBC
+ ldr r1, [r4, #0x6c]
+ add r3, r4, r0
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldrb r0, [r3, r2]
+ cmp r0, #0xff
+ bhs _02241166
+ add r0, r0, #1
+ strb r0, [r3, r2]
+_02241166:
+ ldr r0, _02241278 ; =0x00003044
+ mov r1, #0x3e
+ ldr r0, [r4, r0]
+ lsl r1, r1, #4
+ lsl r0, r0, #4
+ add r0, r4, r0
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ bne _022411D4
+ ldr r1, [r4, #0x6c]
+ ldr r0, _02241268 ; =0x00002144
+ lsl r1, r1, #6
+ add r2, r4, r1
+ ldr r1, [r4, #0x64]
+ ldr r0, [r4, r0]
+ lsl r1, r1, #2
+ add r2, r2, r1
+ mov r1, #0x76
+ lsl r1, r1, #2
+ str r0, [r2, r1]
+ ldr r0, [r4, #0x6c]
+ ldr r2, [r4, #0x64]
+ lsl r0, r0, #6
+ add r0, r4, r0
+ add r1, #0x10
+ str r2, [r0, r1]
+ ldr r0, [r4, #0x64]
+ bl MaskOfFlagNo
+ mov r1, #0x7b
+ ldr r3, [r4, #0x6c]
+ lsl r1, r1, #2
+ add r2, r4, r1
+ lsl r5, r3, #6
+ ldr r3, [r2, r5]
+ orr r0, r3
+ str r0, [r2, r5]
+ ldr r2, [r4, #0x6c]
+ ldr r0, _02241268 ; =0x00002144
+ add r5, r2, #0
+ add r2, r1, #0
+ mov r3, #0x1c
+ mul r5, r3
+ ldr r0, [r4, r0]
+ add r5, r4, r5
+ add r2, #0xec
+ str r0, [r5, r2]
+ ldr r0, [r4, #0x6c]
+ ldr r5, [r4, #0x64]
+ add r2, r0, #0
+ mul r2, r3
+ add r0, r4, r2
+ add r1, #0xf0
+ str r5, [r0, r1]
+ b _02241232
+_022411D4:
+ cmp r0, #1
+ bne _02241232
+ ldr r2, [r4, #0x6c]
+ ldr r0, _02241268 ; =0x00002144
+ lsl r2, r2, #6
+ add r3, r4, r2
+ ldr r2, [r4, #0x64]
+ ldr r0, [r4, r0]
+ lsl r2, r2, #2
+ add r2, r3, r2
+ lsr r1, r1, #1
+ str r0, [r2, r1]
+ ldr r0, [r4, #0x6c]
+ ldr r2, [r4, #0x64]
+ lsl r0, r0, #6
+ add r1, r4, r0
+ mov r0, #2
+ lsl r0, r0, #8
+ str r2, [r1, r0]
+ ldr r0, [r4, #0x64]
+ bl MaskOfFlagNo
+ mov r1, #0x81
+ ldr r3, [r4, #0x6c]
+ lsl r1, r1, #2
+ add r2, r4, r1
+ lsl r5, r3, #6
+ ldr r3, [r2, r5]
+ orr r0, r3
+ str r0, [r2, r5]
+ ldr r2, [r4, #0x6c]
+ ldr r0, _02241268 ; =0x00002144
+ add r5, r2, #0
+ add r2, r1, #0
+ mov r3, #0x1c
+ mul r5, r3
+ ldr r0, [r4, r0]
+ add r5, r4, r5
+ add r2, #0xdc
+ str r0, [r5, r2]
+ ldr r0, [r4, #0x6c]
+ ldr r5, [r4, #0x64]
+ add r2, r0, #0
+ mul r2, r3
+ add r0, r4, r2
+ add r1, #0xe0
+ str r5, [r0, r1]
+_02241232:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _02241280 ; =0x00002D8C
+ ldr r2, [r1, r0]
+ ldr r0, _02241268 ; =0x00002144
+ ldr r1, [r4, r0]
+ add r0, r1, r2
+ cmp r0, #0
+ bgt _0224128C
+ mov r0, #0xbb
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r3, [r4, #0x64]
+ mov r0, #0x1c
+ mul r0, r3
+ ldr r3, [r1, r0]
+ neg r2, r2
+ add r2, r3, r2
+ str r2, [r1, r0]
+ b _022412A0
+ nop
+_02241260: .word 0x0000216C
+_02241264: .word 0x00002D90
+_02241268: .word 0x00002144
+_0224126C: .word 0x000030F4
+_02241270: .word 0x00002DB0
+_02241274: .word 0xFEFFFFFF
+_02241278: .word 0x00003044
+_0224127C: .word 0x000003DE
+_02241280: .word 0x00002D8C
+_02241284: .word 0x000030E4
+_02241288: .word 0x00002DBC
+_0224128C:
+ ldr r3, [r4, #0x64]
+ mov r0, #0xbb
+ lsl r0, r0, #2
+ mov r2, #0x1c
+ add r5, r3, #0
+ add r0, r4, r0
+ mul r5, r2
+ ldr r2, [r0, r5]
+ add r1, r2, r1
+ str r1, [r0, r5]
+_022412A0:
+ ldr r3, _022412F0 ; =0x00002144
+ ldr r0, [r4, #0x6c]
+ mov r2, #0x82
+ lsl r0, r0, #6
+ ldr r1, [r4, r3]
+ add r0, r4, r0
+ lsl r2, r2, #2
+ str r1, [r0, r2]
+ ldr r1, [r4, #0x6c]
+ ldr r0, [r4, #0x64]
+ lsl r1, r1, #6
+ add r5, r4, r1
+ add r1, r2, #4
+ str r0, [r5, r1]
+ ldr r0, [r4, #0x6c]
+ sub r2, #0xf0
+ str r0, [r4, r2]
+ ldr r0, [r4, r3]
+ add r3, #0x18
+ str r0, [r4, r3]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #2
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x1c
+ str r0, [r4, #0xc]
+ ldr r1, _022412F4 ; =0x0000213C
+ mov r0, #2
+ ldr r2, [r4, r1]
+ lsl r0, r0, #0xc
+ orr r0, r2
+ str r0, [r4, r1]
+ pop {r3, r4, r5, r6, r7, pc}
+_022412E8:
+ mov r0, #0x1c
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022412F0: .word 0x00002144
+_022412F4: .word 0x0000213C
+
+ thumb_func_start MOD11_022412F8
+MOD11_022412F8: ; 0x022412F8
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ ldr r2, [r4, #0x38]
+ add r5, r0, #0
+ cmp r2, #0
+ beq _0224130C
+ cmp r2, #1
+ beq _022413D2
+ b _02241490
+_0224130C:
+ ldr r2, [r4, #0x3c]
+ cmp r2, #5
+ bls _02241314
+ b _02241490
+_02241314:
+ add r3, r2, r2
+ add r3, pc
+ ldrh r3, [r3, #6]
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ add pc, r3
+_02241320: ; jump table
+ .short _0224132C - _02241320 - 2 ; case 0
+ .short _02241338 - _02241320 - 2 ; case 1
+ .short _0224134A - _02241320 - 2 ; case 2
+ .short _0224137E - _02241320 - 2 ; case 3
+ .short _02241392 - _02241320 - 2 ; case 4
+ .short _022413BC - _02241320 - 2 ; case 5
+_0224132C:
+ add r2, r2, #1
+ str r2, [r4, #0x3c]
+ bl MOD11_02242774
+ cmp r0, #1
+ beq _02241390
+_02241338:
+ ldr r0, [r4, #0x3c]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ bl MOD11_02242790
+ cmp r0, #1
+ beq _02241390
+_0224134A:
+ ldr r0, [r4, #0x3c]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ add r2, sp, #0xc
+ bl MOD11_022449EC
+ cmp r0, #1
+ bne _0224137E
+ ldr r0, _0224149C ; =0x0000216C
+ ldr r1, [r4, r0]
+ ldr r0, _022414A0 ; =0x001FD849
+ tst r0, r1
+ bne _0224137E
+ ldr r2, [sp, #0xc]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add sp, #0x10
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_0224137E:
+ ldr r0, [r4, #0x3c]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ bl MOD11_022427E4
+ cmp r0, #1
+ bne _02241392
+_02241390:
+ b _02241498
+_02241392:
+ ldr r0, [r4, #0x3c]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ add r2, sp, #8
+ bl MOD11_02248308
+ cmp r0, #1
+ bne _022413BC
+ ldr r2, [sp, #8]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add sp, #0x10
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_022413BC:
+ ldr r0, [r4, #0x3c]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ bl MOD11_02242870
+ cmp r0, #1
+ bne _02241490
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+_022413D2:
+ ldr r2, [r4, #0x3c]
+ cmp r2, #5
+ bhi _02241490
+ add r3, r2, r2
+ add r3, pc
+ ldrh r3, [r3, #6]
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ add pc, r3
+_022413E4: ; jump table
+ .short _022413F0 - _022413E4 - 2 ; case 0
+ .short _022413FC - _022413E4 - 2 ; case 1
+ .short _02241430 - _022413E4 - 2 ; case 2
+ .short _02241442 - _022413E4 - 2 ; case 3
+ .short _0224146C - _022413E4 - 2 ; case 4
+ .short _0224147E - _022413E4 - 2 ; case 5
+_022413F0:
+ add r2, r2, #1
+ str r2, [r4, #0x3c]
+ bl MOD11_02242774
+ cmp r0, #1
+ beq _02241498
+_022413FC:
+ ldr r0, [r4, #0x3c]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ add r2, sp, #4
+ bl MOD11_022449EC
+ cmp r0, #1
+ bne _02241430
+ ldr r0, _0224149C ; =0x0000216C
+ ldr r1, [r4, r0]
+ ldr r0, _022414A0 ; =0x001FD849
+ tst r0, r1
+ bne _02241430
+ ldr r2, [sp, #4]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add sp, #0x10
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_02241430:
+ ldr r0, [r4, #0x3c]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ bl MOD11_022427E4
+ cmp r0, #1
+ beq _02241498
+_02241442:
+ ldr r0, [r4, #0x3c]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ add r2, sp, #0
+ bl MOD11_02248308
+ cmp r0, #1
+ bne _0224146C
+ ldr r2, [sp]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add sp, #0x10
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_0224146C:
+ ldr r0, [r4, #0x3c]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ bl MOD11_02242790
+ cmp r0, #1
+ beq _02241498
+_0224147E:
+ ldr r0, [r4, #0x3c]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ bl MOD11_02242870
+ cmp r0, #1
+ beq _02241498
+_02241490:
+ mov r0, #0
+ str r0, [r4, #0x3c]
+ mov r0, #0x1e
+ str r0, [r4, #8]
+_02241498:
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0224149C: .word 0x0000216C
+_022414A0: .word 0x001FD849
+
+ thumb_func_start MOD11_022414A4
+MOD11_022414A4: ; 0x022414A4
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_022414A8
+MOD11_022414A8: ; 0x022414A8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ ldr r1, [r4, #0x40]
+ add r7, r0, #0
+ cmp r1, #7
+ bls _022414B8
+ b _022416F2
+_022414B8:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022414C4: ; jump table
+ .short _022414D4 - _022414C4 - 2 ; case 0
+ .short _0224154E - _022414C4 - 2 ; case 1
+ .short _02241562 - _022414C4 - 2 ; case 2
+ .short _02241588 - _022414C4 - 2 ; case 3
+ .short _0224159C - _022414C4 - 2 ; case 4
+ .short _022415B6 - _022414C4 - 2 ; case 5
+ .short _022415E0 - _022414C4 - 2 ; case 6
+ .short _02241674 - _022414C4 - 2 ; case 7
+_022414D4:
+ mov r1, #0
+ ldr r5, [r4, #0x44]
+ str r1, [sp, #4]
+ bl MOD11_0222FF84
+ cmp r5, r0
+ bge _02241544
+ add r6, r4, #0
+ add r6, #0x44
+_022414E6:
+ mov r0, #0xc0
+ mul r0, r5
+ mov r1, #0xb7
+ add r0, r4, r0
+ lsl r1, r1, #6
+ ldr r2, [r0, r1]
+ ldr r1, _02241700 ; =0x200400C0
+ tst r1, r2
+ bne _0224152C
+ ldr r1, _02241704 ; =0x00002DC4
+ ldr r2, [r0, r1]
+ ldr r1, _02241700 ; =0x200400C0
+ tst r1, r2
+ beq _0224152C
+ ldr r1, _02241704 ; =0x00002DC4
+ ldr r2, [r0, r1]
+ ldr r1, _02241708 ; =0xDFFBFF3F
+ and r2, r1
+ ldr r1, _02241704 ; =0x00002DC4
+ str r2, [r0, r1]
+ ldr r2, _0224170C ; =0x0000011F
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ mov r0, #0x46
+ ldr r1, [r4, #0x44]
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp, #4]
+_0224152C:
+ ldr r0, [r6]
+ add r0, r0, #1
+ str r0, [r6]
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ bne _022415B4
+ ldr r5, [r4, #0x44]
+ add r0, r7, #0
+ bl MOD11_0222FF84
+ cmp r5, r0
+ blt _022414E6
+_02241544:
+ ldr r0, [r4, #0x40]
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ mov r0, #0
+ str r0, [r4, #0x44]
+_0224154E:
+ ldr r0, [r4, #0x40]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ ldr r2, [r4, #8]
+ add r0, r7, #0
+ bl MOD11_02248A78
+ cmp r0, #1
+ beq _022415B4
+_02241562:
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_022476DC
+ add r2, r0, #0
+ beq _02241582
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add sp, #0x10
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_02241582:
+ ldr r0, [r4, #0x40]
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+_02241588:
+ ldr r0, [r4, #0x40]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ ldr r2, [r4, #0x64]
+ add r0, r7, #0
+ bl MOD11_02248C0C
+ cmp r0, #1
+ beq _022415B4
+_0224159C:
+ ldr r0, [r4, #0x40]
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ ldr r2, [r4, #0x6c]
+ cmp r2, #0xff
+ beq _022415B6
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_02248C0C
+ cmp r0, #1
+ bne _022415B6
+_022415B4:
+ b _022416FC
+_022415B6:
+ ldr r0, [r4, #0x40]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ add r0, r7, #0
+ add r2, sp, #0xc
+ bl MOD11_02249B94
+ cmp r0, #1
+ bne _022415E0
+ ldr r2, [sp, #0xc]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add sp, #0x10
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_022415E0:
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x60
+ bne _022415F0
+ mov r2, #0
+ b _02241604
+_022415F0:
+ ldr r0, _02241710 ; =0x00002160
+ ldr r2, [r4, r0]
+ cmp r2, #0
+ bne _02241604
+ ldr r0, _02241714 ; =0x00003044
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _02241718 ; =0x000003E2
+ ldrb r2, [r1, r0]
+_02241604:
+ ldr r0, [r4, #0x40]
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ ldr r3, [r4, #0x6c]
+ cmp r3, #0xff
+ beq _02241674
+ mov r0, #0xc0
+ add r5, r3, #0
+ mul r5, r0
+ ldr r0, _0224171C ; =0x00002DAC
+ add r1, r4, r5
+ ldr r1, [r1, r0]
+ mov r0, #0x20
+ tst r1, r0
+ beq _02241674
+ ldr r1, _02241720 ; =0x0000216C
+ lsl r0, r0, #9
+ ldr r1, [r4, r1]
+ tst r0, r1
+ bne _02241674
+ ldr r0, [r4, #0x64]
+ cmp r3, r0
+ beq _02241674
+ mov r0, #0x1c
+ mul r0, r3
+ add r6, r4, r0
+ mov r0, #0xb6
+ lsl r0, r0, #2
+ ldr r1, [r6, r0]
+ cmp r1, #0
+ bne _0224164A
+ add r0, #8
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ beq _02241674
+_0224164A:
+ ldr r0, _02241724 ; =0x00002D8C
+ add r1, r4, r5
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02241674
+ cmp r2, #0xa
+ bne _02241674
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r3, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x1d
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ add sp, #0x10
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_02241674:
+ mov r0, #0
+ str r0, [sp]
+ ldr r6, [r4, #0x44]
+ add r0, r7, #0
+ bl MOD11_0222FF84
+ cmp r6, r0
+ bge _022416E2
+ add r5, r4, #0
+ add r5, #0x44
+_02241688:
+ ldr r0, _02241728 ; =0x000021EC
+ add r1, r4, r6
+ ldrb r6, [r1, r0]
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ ldr r1, _0224172C ; =0x00003108
+ ldrb r1, [r4, r1]
+ tst r0, r1
+ ldr r0, [r5]
+ beq _022416A4
+ add r0, r0, #1
+ str r0, [r5]
+ b _022416D6
+_022416A4:
+ add r0, r0, #1
+ str r0, [r5]
+ add r0, r7, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ add r3, sp, #8
+ bl MOD11_022493A0
+ cmp r0, #1
+ bne _022416D6
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r6, [r4, r0]
+ ldr r2, [sp, #8]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [sp]
+ b _022416E2
+_022416D6:
+ ldr r6, [r4, #0x44]
+ add r0, r7, #0
+ bl MOD11_0222FF84
+ cmp r6, r0
+ blt _02241688
+_022416E2:
+ ldr r0, [sp]
+ cmp r0, #0
+ bne _022416F2
+ ldr r0, [r4, #0x40]
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ mov r0, #0
+ str r0, [r4, #0x44]
+_022416F2:
+ mov r0, #0
+ str r0, [r4, #0x40]
+ str r0, [r4, #0x44]
+ mov r0, #0x1f
+ str r0, [r4, #8]
+_022416FC:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02241700: .word 0x200400C0
+_02241704: .word 0x00002DC4
+_02241708: .word 0xDFFBFF3F
+_0224170C: .word 0x0000011F
+_02241710: .word 0x00002160
+_02241714: .word 0x00003044
+_02241718: .word 0x000003E2
+_0224171C: .word 0x00002DAC
+_02241720: .word 0x0000216C
+_02241724: .word 0x00002D8C
+_02241728: .word 0x000021EC
+_0224172C: .word 0x00003108
+
+ thumb_func_start MOD11_02241730
+MOD11_02241730: ; 0x02241730
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_02241734
+MOD11_02241734: ; 0x02241734
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r6, _02241820 ; =0x0000217D
+ add r4, r1, #0
+ ldrb r2, [r4, r6]
+ str r0, [sp]
+ cmp r2, #0
+ beq _0224181A
+ ldr r3, [r4, #0x74]
+ mov ip, r3
+ cmp r3, #0xff
+ bne _022417CC
+ ldr r3, [r4, #0x64]
+ mov r7, #0xc0
+ add r5, r3, #0
+ mul r5, r7
+ ldr r3, _02241824 ; =0x00002DAC
+ add r5, r4, r5
+ ldr r5, [r5, r3]
+ mov r3, #7
+ tst r3, r5
+ bne _022417CC
+ add r3, r6, #0
+ sub r3, #0x11
+ ldr r5, [r4, r3]
+ mov r3, #1
+ lsl r3, r3, #0xe
+ tst r3, r5
+ bne _022417CC
+ sub r2, r6, #1
+ ldrb r2, [r4, r2]
+ sub r3, r2, #1
+ sub r2, r6, #1
+ strb r3, [r4, r2]
+ ldrb r2, [r4, r2]
+ cmp r2, #0
+ beq _022417B2
+ mov r3, #1
+ add r2, r6, #3
+ str r3, [r4, r2]
+ bl MOD11_02247264
+ add r1, r6, #0
+ sub r1, #0x41
+ ldr r2, [r4, r1]
+ ldr r0, _02241828 ; =0xFFFFBFFF
+ and r0, r2
+ str r0, [r4, r1]
+ add r0, r1, #0
+ add r0, #0x4c
+ ldr r0, [r4, r0]
+ add r1, #0x48
+ str r0, [r4, r1]
+ ldr r2, _0224182C ; =0x00003044
+ add r0, r4, #0
+ ldr r2, [r4, r2]
+ mov r1, #0
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x17
+ str r0, [r4, #0xc]
+ b _02241812
+_022417B2:
+ ldrb r0, [r4, r6]
+ add r7, #0x70
+ mov r1, #1
+ str r0, [r4, r7]
+ add r0, r4, #0
+ mov r2, #0x11
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x21
+ str r0, [r4, #0xc]
+ b _02241812
+_022417CC:
+ mov r0, ip
+ cmp r0, #0xff
+ bne _022417E6
+ ldr r0, [r4, #0x64]
+ mov r1, #0xc0
+ add r3, r0, #0
+ mul r3, r1
+ ldr r0, _02241824 ; =0x00002DAC
+ add r3, r4, r3
+ ldr r3, [r3, r0]
+ mov r0, #7
+ tst r0, r3
+ beq _022417F6
+_022417E6:
+ ldr r0, _02241830 ; =0x0000217C
+ ldrb r0, [r4, r0]
+ sub r0, r2, r0
+ add r1, r0, #1
+ mov r0, #0x13
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _02241800
+_022417F6:
+ ldr r0, _02241830 ; =0x0000217C
+ add r1, #0x70
+ ldrb r0, [r4, r0]
+ sub r0, r2, r0
+ str r0, [r4, r1]
+_02241800:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x11
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x21
+ str r0, [r4, #0xc]
+_02241812:
+ ldr r0, [sp]
+ bl MOD11_0225679C
+ pop {r3, r4, r5, r6, r7, pc}
+_0224181A:
+ mov r0, #0x21
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02241820: .word 0x0000217D
+_02241824: .word 0x00002DAC
+_02241828: .word 0xFFFFBFFF
+_0224182C: .word 0x00003044
+_02241830: .word 0x0000217C
+
+ thumb_func_start MOD11_02241834
+MOD11_02241834: ; 0x02241834
+ push {r3, lr}
+ ldr r0, _02241858 ; =0x0000213C
+ ldr r2, [r1, r0]
+ mov r0, #0xf
+ lsl r0, r0, #0x18
+ tst r0, r2
+ beq _02241850
+ add r0, r1, #0
+ mov r1, #0x21
+ add r2, r1, #0
+ mov r3, #0
+ bl MOD11_0224246C
+ pop {r3, pc}
+_02241850:
+ mov r0, #0x22
+ str r0, [r1, #8]
+ pop {r3, pc}
+ nop
+_02241858: .word 0x0000213C
+
+ thumb_func_start MOD11_0224185C
+MOD11_0224185C: ; 0x0224185C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ mov r1, #0x85
+ lsl r1, r1, #6
+ add r5, r0, #0
+ ldr r2, [r4, r1]
+ mov r0, #8
+ tst r0, r2
+ beq _02241880
+ mov r0, #8
+ bic r2, r0
+ str r2, [r4, r1]
+ ldr r0, [r4, #0x64]
+ str r0, [r4, #0x6c]
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ str r0, [r4, #0x64]
+_02241880:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224256C
+ ldr r0, _022419E0 ; =0x00003044
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _022419E4 ; =0x000003E6
+ ldrh r0, [r1, r0]
+ cmp r0, #4
+ bne _0224194C
+ ldr r0, _022419E8 ; =0x0000213C
+ ldr r1, [r4, r0]
+ mov r0, #2
+ tst r0, r1
+ bne _0224194C
+ add r0, r5, #0
+ bl MOD11_0222FF84
+ ldr r1, _022419EC ; =0x0000217E
+ ldrb r2, [r4, r1]
+ cmp r2, r0
+ bge _0224194C
+ mov r2, #0xd
+ add r0, r1, #6
+ str r2, [r4, r0]
+ add r0, r5, #0
+ bl MOD11_0222FF84
+ ldr r1, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD11_0222FF7C
+ bl MOD11_02253A4C
+ mov r1, #1
+ add r7, r0, #0
+ and r7, r1
+_022418CE:
+ ldr r1, _022419EC ; =0x0000217E
+ ldr r0, _022419EC ; =0x0000217E
+ ldrb r1, [r4, r1]
+ ldrb r0, [r4, r0]
+ add r2, r1, #1
+ ldr r1, _022419EC ; =0x0000217E
+ strb r2, [r4, r1]
+ add r1, r4, r0
+ ldr r0, _022419F0 ; =0x000021EC
+ ldrb r6, [r1, r0]
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ ldr r1, _022419F4 ; =0x00003108
+ ldrb r1, [r4, r1]
+ tst r0, r1
+ bne _02241936
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r4, r0
+ ldr r0, _022419F8 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02241936
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ str r0, [sp]
+ cmp r7, #0
+ beq _02241916
+ bl MOD11_02253A4C
+ mov r1, #1
+ tst r0, r1
+ beq _02241926
+_02241916:
+ cmp r7, #0
+ bne _02241936
+ ldr r0, [sp]
+ bl MOD11_02253A4C
+ mov r1, #1
+ tst r0, r1
+ beq _02241936
+_02241926:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02247264
+ str r6, [r4, #0x6c]
+ mov r0, #0x16
+ str r0, [r4, #8]
+ b _02241944
+_02241936:
+ add r0, r5, #0
+ bl MOD11_0222FF84
+ ldr r1, _022419EC ; =0x0000217E
+ ldrb r1, [r4, r1]
+ cmp r1, r0
+ blt _022418CE
+_02241944:
+ add r0, r5, #0
+ bl MOD11_0225679C
+ pop {r3, r4, r5, r6, r7, pc}
+_0224194C:
+ ldr r0, _022419E0 ; =0x00003044
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _022419E4 ; =0x000003E6
+ ldrh r0, [r1, r0]
+ cmp r0, #8
+ bne _022419DA
+ ldr r0, _022419E8 ; =0x0000213C
+ ldr r1, [r4, r0]
+ mov r0, #2
+ tst r0, r1
+ bne _022419DA
+ add r0, r5, #0
+ bl MOD11_0222FF84
+ ldr r1, _022419EC ; =0x0000217E
+ ldrb r2, [r4, r1]
+ cmp r2, r0
+ bge _022419DA
+ mov r2, #0xd
+ add r0, r1, #6
+ str r2, [r4, r0]
+ add r0, r5, #0
+ bl MOD11_0222FF84
+ ldr r7, _022419EC ; =0x0000217E
+_02241982:
+ ldr r0, _022419EC ; =0x0000217E
+ ldrb r1, [r4, r0]
+ ldrb r0, [r4, r7]
+ add r1, r4, r1
+ add r0, r0, #1
+ strb r0, [r4, r7]
+ ldr r0, _022419F0 ; =0x000021EC
+ ldrb r6, [r1, r0]
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ ldr r1, _022419F4 ; =0x00003108
+ ldrb r1, [r4, r1]
+ tst r0, r1
+ bne _022419C4
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r4, r0
+ ldr r0, _022419F8 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _022419C4
+ ldr r0, [r4, #0x64]
+ cmp r6, r0
+ beq _022419C4
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02247264
+ str r6, [r4, #0x6c]
+ mov r0, #0x16
+ str r0, [r4, #8]
+ b _022419D2
+_022419C4:
+ add r0, r5, #0
+ bl MOD11_0222FF84
+ ldr r1, _022419EC ; =0x0000217E
+ ldrb r1, [r4, r1]
+ cmp r1, r0
+ blt _02241982
+_022419D2:
+ add r0, r5, #0
+ bl MOD11_0225679C
+ pop {r3, r4, r5, r6, r7, pc}
+_022419DA:
+ mov r0, #0x23
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022419E0: .word 0x00003044
+_022419E4: .word 0x000003E6
+_022419E8: .word 0x0000213C
+_022419EC: .word 0x0000217E
+_022419F0: .word 0x000021EC
+_022419F4: .word 0x00003108
+_022419F8: .word 0x00002D8C
+
+ thumb_func_start MOD11_022419FC
+MOD11_022419FC: ; 0x022419FC
+ push {r4, lr}
+ ldr r0, _02241A38 ; =0x0000213C
+ add r4, r1, #0
+ ldr r1, [r4, r0]
+ mov r0, #0xf
+ lsl r0, r0, #0x1c
+ and r0, r1
+ beq _02241A32
+ lsr r0, r0, #0x1c
+ bl LowestFlagNo
+ str r0, [r4, #0x74]
+ ldr r1, _02241A38 ; =0x0000213C
+ ldr r0, _02241A3C ; =0x0FFFFFFF
+ ldr r2, [r4, r1]
+ and r0, r2
+ str r0, [r4, r1]
+ ldr r2, _02241A40 ; =0x00000115
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x24
+ str r0, [r4, #0xc]
+ pop {r4, pc}
+_02241A32:
+ mov r0, #0x24
+ str r0, [r4, #8]
+ pop {r4, pc}
+ .align 2, 0
+_02241A38: .word 0x0000213C
+_02241A3C: .word 0x0FFFFFFF
+_02241A40: .word 0x00000115
+
+ thumb_func_start MOD11_02241A44
+MOD11_02241A44: ; 0x02241A44
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_022429B0
+ cmp r0, #1
+ beq _02241A54
+ mov r0, #0x26
+ str r0, [r4, #8]
+_02241A54:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02241A58
+MOD11_02241A58: ; 0x02241A58
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_02241A5C
+MOD11_02241A5C: ; 0x02241A5C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0x64]
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD11_02249D90
+ ldr r1, _02241B60 ; =0x0000213C
+ lsl r0, r0, #0x18
+ ldr r3, [r4, r1]
+ mov r2, #0x20
+ lsr r0, r0, #0x18
+ tst r2, r3
+ bne _02241A82
+ add r1, r1, #4
+ ldr r2, [r4, r1]
+ mov r1, #4
+ tst r1, r2
+ beq _02241AC4
+_02241A82:
+ cmp r0, #0x36
+ beq _02241A8E
+ cmp r0, #0x72
+ beq _02241A8E
+ cmp r0, #0x7c
+ bne _02241AB6
+_02241A8E:
+ mov r0, #0xc1
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ cmp r0, #0xa5
+ beq _02241AC4
+ cmp r0, #0xe2
+ bne _02241AA8
+ mov r1, #0x85
+ lsl r1, r1, #6
+ ldr r2, [r4, r1]
+ mov r1, #0x40
+ tst r1, r2
+ bne _02241AC4
+_02241AA8:
+ ldr r2, [r4, #0x64]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _02241B64 ; =0x00002DF8
+ strh r0, [r2, r1]
+ b _02241AC4
+_02241AB6:
+ ldr r2, [r4, #0x64]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _02241B64 ; =0x00002DF8
+ mov r0, #0
+ strh r0, [r2, r1]
+_02241AC4:
+ ldr r0, _02241B60 ; =0x0000213C
+ mov r1, #1
+ ldr r2, [r4, r0]
+ lsl r1, r1, #0x14
+ tst r1, r2
+ bne _02241B2C
+ add r0, r0, #4
+ ldr r1, [r4, r0]
+ mov r0, #4
+ tst r0, r1
+ beq _02241AF2
+ ldr r2, [r4, #0x64]
+ ldr r1, _02241B68 ; =0x00003044
+ lsl r2, r2, #1
+ add r3, r4, r2
+ add r2, r1, #0
+ ldr r0, [r4, r1]
+ add r2, #0x18
+ strh r0, [r3, r2]
+ sub r0, r1, #4
+ ldr r2, [r4, r0]
+ add r0, r1, #4
+ b _02241B00
+_02241AF2:
+ ldr r0, [r4, #0x64]
+ mov r2, #0
+ lsl r0, r0, #1
+ add r1, r4, r0
+ ldr r0, _02241B6C ; =0x0000305C
+ strh r2, [r1, r0]
+ sub r0, #0x14
+_02241B00:
+ str r2, [r4, r0]
+ mov r0, #0x85
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0x40
+ tst r0, r1
+ beq _02241B20
+ mov r0, #0xc1
+ ldr r1, [r4, #0x64]
+ lsl r0, r0, #6
+ ldr r2, [r4, r0]
+ lsl r1, r1, #1
+ add r1, r4, r1
+ add r0, #0x3c
+ strh r2, [r1, r0]
+ b _02241B2C
+_02241B20:
+ ldr r0, [r4, #0x64]
+ mov r2, #0
+ lsl r0, r0, #1
+ add r1, r4, r0
+ ldr r0, _02241B70 ; =0x0000307C
+ strh r2, [r1, r0]
+_02241B2C:
+ mov r0, #0x85
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #4
+ tst r0, r1
+ beq _02241B48
+ mov r0, #0xc1
+ ldr r1, [r4, #0x64]
+ lsl r0, r0, #6
+ ldr r2, [r4, r0]
+ lsl r1, r1, #1
+ add r1, r4, r1
+ add r0, #0x6c
+ strh r2, [r1, r0]
+_02241B48:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224256C
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224ABF8
+ mov r0, #0x27
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+ nop
+_02241B60: .word 0x0000213C
+_02241B64: .word 0x00002DF8
+_02241B68: .word 0x00003044
+_02241B6C: .word 0x0000305C
+_02241B70: .word 0x0000307C
+
+ thumb_func_start MOD11_02241B74
+MOD11_02241B74: ; 0x02241B74
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_0222FF74
+ mov r1, #0x22
+ lsl r1, r1, #4
+ tst r0, r1
+ bne _02241BF6
+ ldr r2, [r4, #0x64]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r3, #0
+ bl MOD11_02248898
+ cmp r0, #1
+ beq _02241C4C
+ ldr r2, [r4, #0x6c]
+ cmp r2, #0xff
+ beq _02241BAA
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r3, #0
+ bl MOD11_02248898
+ cmp r0, #1
+ beq _02241C4C
+_02241BAA:
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD11_02242510
+ cmp r0, #1
+ beq _02241C4C
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02241FD8
+ cmp r0, #1
+ beq _02241C4C
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022476DC
+ add r2, r0, #0
+ beq _02241BE2
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_02241BE2:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02242924
+ cmp r0, #1
+ beq _02241C4C
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02242404
+_02241BF6:
+ add r1, r4, #0
+ add r1, #0xec
+ ldr r1, [r1]
+ mov r0, #0x27
+ add r2, r4, r1
+ ldr r1, _02241C50 ; =0x000021E8
+ ldrb r2, [r2, r1]
+ sub r1, #0x40
+ lsl r2, r2, #4
+ add r2, r4, r2
+ str r0, [r2, r1]
+ ldr r1, [r4, #0x64]
+ mov r0, #0x1c
+ mul r0, r1
+ add r1, r4, r0
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1f
+ beq _02241C34
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224C178
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224728C
+ mov r1, #0
+ b _02241C3C
+_02241C34:
+ add r0, r4, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ add r1, r0, #1
+_02241C3C:
+ add r0, r4, #0
+ add r0, #0xec
+ str r1, [r0]
+ add r0, r4, #0
+ bl MOD11_02245494
+ mov r0, #8
+ str r0, [r4, #8]
+_02241C4C:
+ pop {r3, r4, r5, pc}
+ nop
+_02241C50: .word 0x000021E8
+
+ thumb_func_start MOD11_02241C54
+MOD11_02241C54: ; 0x02241C54
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #8]
+ add r0, r4, #0
+ add r2, r1, #0
+ mov r3, #1
+ bl MOD11_0224246C
+ cmp r0, #1
+ beq _02241C6C
+ mov r0, #0x27
+ str r0, [r4, #8]
+_02241C6C:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02241C70
+MOD11_02241C70: ; 0x02241C70
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_0223145C
+ mov r1, #0x80
+ tst r0, r1
+ beq _02241C86
+ mov r0, #0x2a
+ str r0, [r4, #8]
+ b _02241CE4
+_02241C86:
+ add r0, r5, #0
+ bl MOD11_0223145C
+ cmp r0, #2
+ beq _02241C9A
+ add r0, r5, #0
+ bl MOD11_0223145C
+ cmp r0, #3
+ bne _02241CAE
+_02241C9A:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #5
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x2a
+ str r0, [r4, #0xc]
+ b _02241CE4
+_02241CAE:
+ add r0, r5, #0
+ bl MOD11_0223145C
+ cmp r0, #1
+ bne _02241CCC
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #4
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #0x2a
+ str r0, [r4, #0xc]
+ b _02241CE4
+_02241CCC:
+ add r0, r5, #0
+ bl MOD11_0223145C
+ cmp r0, #4
+ beq _02241CE0
+ add r0, r5, #0
+ bl MOD11_0223145C
+ cmp r0, #5
+ bne _02241CE4
+_02241CE0:
+ mov r0, #0x2a
+ str r0, [r4, #8]
+_02241CE4:
+ ldr r0, _02241CEC ; =0x0000311F
+ mov r1, #1
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02241CEC: .word 0x0000311F
+
+ thumb_func_start MOD11_02241CF0
+MOD11_02241CF0: ; 0x02241CF0
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ bl MOD11_0222FF74
+ mov r1, #4
+ add r4, r0, #0
+ and r4, r1
+ bne _02241D16
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD11_0222FF88
+ add r6, r0, #0
+ bl FUN_02069C4C
+ add r0, r6, #0
+ bl FUN_02069DC8
+_02241D16:
+ cmp r4, #0
+ beq _02241D20
+ mov r0, #0x16
+ bl FUN_020311DC
+_02241D20:
+ mov r0, #0x2b
+ str r0, [r5, #8]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02241D28
+MOD11_02241D28: ; 0x02241D28
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_02241D2C
+MOD11_02241D2C: ; 0x02241D2C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ str r1, [sp, #4]
+ mov r1, #0
+ str r0, [sp]
+ str r1, [sp, #0x30]
+ bl MOD11_0222FF84
+ str r0, [sp, #0x28]
+ ldr r0, [sp]
+ bl MOD11_0222FF74
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #8]
+ str r0, [sp, #0x20]
+ mov r0, #0
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x28]
+ cmp r0, #0
+ bgt _02241D58
+ b _02241F4A
+_02241D58:
+ ldr r0, [sp, #4]
+ mov r1, #2
+ str r0, [sp, #0x1c]
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x24]
+ and r0, r1
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x24]
+ mov r1, #0x18
+ and r0, r1
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x24]
+ mov r1, #0x10
+ and r0, r1
+ str r0, [sp, #0xc]
+_02241D76:
+ mov r1, #0x4f
+ ldr r0, [sp, #0x1c]
+ lsl r1, r1, #2
+ ldr r2, [r0, r1]
+ mov r0, #1
+ bic r2, r0
+ ldr r0, [sp, #0x1c]
+ str r2, [r0, r1]
+ ldr r0, [sp, #0x14]
+ cmp r0, #0
+ beq _02241D92
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ beq _02241DA4
+_02241D92:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ beq _02241E8A
+ ldr r0, [sp]
+ ldr r1, [sp, #0x2c]
+ bl MOD11_02230270
+ cmp r0, #0
+ bne _02241E8A
+_02241DA4:
+ ldr r3, _02241FC8 ; =0x00002D8C
+ ldr r0, [sp, #0x18]
+ ldr r0, [r0, r3]
+ cmp r0, #0
+ bne _02241DCC
+ ldr r1, [sp, #0x2c]
+ mov r2, #2
+ add r4, r1, #0
+ eor r4, r2
+ mov r1, #0xc0
+ add r5, r4, #0
+ mul r5, r1
+ ldr r1, [sp, #4]
+ add r1, r1, r5
+ ldr r1, [r1, r3]
+ cmp r1, #0
+ bne _02241DCC
+ ldr r1, [sp, #0x2c]
+ tst r1, r2
+ bne _02241DD0
+_02241DCC:
+ cmp r0, #0
+ beq _02241DD2
+_02241DD0:
+ b _02241F30
+_02241DD2:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x2c]
+ mov r7, #0
+ bl MOD11_0222FF88
+ add r6, r0, #0
+ ldr r0, [sp]
+ ldr r1, [sp, #0x2c]
+ bl MOD11_0222FF7C
+ add r0, r6, #0
+ add r5, r7, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _02241E4A
+ ldr r0, [sp, #0x2c]
+ mov r1, #2
+ eor r1, r0
+ ldr r0, [sp, #4]
+ add r0, r0, r1
+ str r0, [sp, #8]
+_02241DFE:
+ add r0, r6, #0
+ add r1, r5, #0
+ bl GetPartyMonByIndex
+ mov r1, #0xad
+ mov r2, #0
+ add r4, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02241E3E
+ add r0, r4, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02241FCC ; =0x000001EE
+ cmp r0, r1
+ beq _02241E3E
+ add r0, r4, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02241E3E
+ ldr r2, [sp, #8]
+ ldr r1, _02241FD0 ; =0x0000219C
+ ldrb r1, [r2, r1]
+ cmp r5, r1
+ beq _02241E3E
+ add r7, r7, r0
+_02241E3E:
+ add r0, r6, #0
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _02241DFE
+_02241E4A:
+ cmp r7, #0
+ bne _02241E6E
+ ldr r0, [sp, #0x2c]
+ bl MaskOfFlagNo
+ ldr r2, _02241FD4 ; =0x00003108
+ ldr r1, [sp, #4]
+ ldrb r1, [r1, r2]
+ orr r1, r0
+ ldr r0, [sp, #4]
+ strb r1, [r0, r2]
+ add r1, r0, #0
+ ldr r0, [sp, #0x2c]
+ mov r2, #6
+ add r1, r1, r0
+ ldr r0, _02241FD0 ; =0x0000219C
+ strb r2, [r1, r0]
+ b _02241F30
+_02241E6E:
+ ldr r1, [sp, #0x20]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0xc]
+ mov r1, #0x15
+ str r1, [r0, #8]
+ mov r1, #0x4f
+ ldr r0, [sp, #0x1c]
+ lsl r1, r1, #2
+ ldr r2, [r0, r1]
+ mov r0, #1
+ orr r2, r0
+ ldr r0, [sp, #0x1c]
+ str r2, [r0, r1]
+ b _02241F30
+_02241E8A:
+ ldr r1, _02241FC8 ; =0x00002D8C
+ ldr r0, [sp, #0x18]
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ bne _02241F30
+ ldr r0, [sp]
+ ldr r1, [sp, #0x2c]
+ mov r7, #0
+ bl MOD11_0222FF88
+ add r6, r0, #0
+ ldr r0, [sp]
+ ldr r1, [sp, #0x2c]
+ bl MOD11_0222FF7C
+ add r0, r6, #0
+ add r5, r7, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _02241EF2
+_02241EB4:
+ add r0, r6, #0
+ add r1, r5, #0
+ bl GetPartyMonByIndex
+ mov r1, #0xad
+ mov r2, #0
+ add r4, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02241EE6
+ add r0, r4, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02241FCC ; =0x000001EE
+ cmp r0, r1
+ beq _02241EE6
+ add r0, r4, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ add r7, r7, r0
+_02241EE6:
+ add r0, r6, #0
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _02241EB4
+_02241EF2:
+ cmp r7, #0
+ bne _02241F16
+ ldr r0, [sp, #0x2c]
+ bl MaskOfFlagNo
+ ldr r2, _02241FD4 ; =0x00003108
+ ldr r1, [sp, #4]
+ ldrb r1, [r1, r2]
+ orr r1, r0
+ ldr r0, [sp, #4]
+ strb r1, [r0, r2]
+ add r1, r0, #0
+ ldr r0, [sp, #0x2c]
+ mov r2, #6
+ add r1, r1, r0
+ ldr r0, _02241FD0 ; =0x0000219C
+ strb r2, [r1, r0]
+ b _02241F30
+_02241F16:
+ ldr r1, [sp, #0x20]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0xc]
+ mov r1, #0x15
+ str r1, [r0, #8]
+ mov r1, #0x4f
+ ldr r0, [sp, #0x1c]
+ lsl r1, r1, #2
+ ldr r2, [r0, r1]
+ mov r0, #1
+ orr r2, r0
+ ldr r0, [sp, #0x1c]
+ str r2, [r0, r1]
+_02241F30:
+ ldr r0, [sp, #0x1c]
+ add r0, r0, #4
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x18]
+ add r0, #0xc0
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x2c]
+ add r1, r0, #1
+ ldr r0, [sp, #0x28]
+ str r1, [sp, #0x2c]
+ cmp r1, r0
+ bge _02241F4A
+ b _02241D76
+_02241F4A:
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #8]
+ cmp r0, #0x15
+ bne _02241FC0
+ ldr r0, [sp, #0x24]
+ mov r1, #0x86
+ tst r0, r1
+ bne _02241FB2
+ ldr r0, [sp]
+ bl MOD11_02230E70
+ cmp r0, #0
+ bne _02241FB2
+ mov r1, #0x4f
+ ldr r0, [sp, #4]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ mov r2, #1
+ tst r0, r2
+ beq _02241F7C
+ ldr r0, [sp, #4]
+ add r1, r1, #4
+ ldr r0, [r0, r1]
+ tst r0, r2
+ bne _02241FB2
+_02241F7C:
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ mov r2, #0
+ bl MOD11_02246DE0
+ cmp r0, #0
+ beq _02241FB2
+ mov r1, #0x4f
+ ldr r0, [sp, #4]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ mov r2, #1
+ tst r0, r2
+ beq _02241FA0
+ mov r2, #0
+ sub r1, r1, #4
+ ldr r0, [sp, #4]
+ b _02241FA4
+_02241FA0:
+ ldr r0, [sp, #4]
+ sub r1, r1, #4
+_02241FA4:
+ str r2, [r0, r1]
+ ldr r0, [sp, #4]
+ mov r1, #1
+ mov r2, #0xe7
+ bl MOD11_022431DC
+ b _02241FBC
+_02241FB2:
+ ldr r0, [sp, #4]
+ mov r1, #1
+ mov r2, #0xa
+ bl MOD11_022431DC
+_02241FBC:
+ mov r0, #1
+ str r0, [sp, #0x30]
+_02241FC0:
+ ldr r0, [sp, #0x30]
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02241FC8: .word 0x00002D8C
+_02241FCC: .word 0x000001EE
+_02241FD0: .word 0x0000219C
+_02241FD4: .word 0x00003108
+
+ thumb_func_start MOD11_02241FD8
+MOD11_02241FD8: ; 0x02241FD8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ str r0, [sp]
+ str r1, [sp, #4]
+ bl MOD11_0222FF84
+ str r0, [sp, #0x24]
+ ldr r0, [sp]
+ bl MOD11_0222FF74
+ str r0, [sp, #0x20]
+ mov r0, #0
+ str r0, [sp, #0x1c]
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x24]
+ cmp r0, #0
+ bgt _02241FFC
+ b _02242256
+_02241FFC:
+ ldr r0, [sp, #0x20]
+ mov r1, #8
+ and r0, r1
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x20]
+ mov r1, #0x10
+ and r0, r1
+ str r0, [sp, #8]
+_0224200C:
+ ldr r0, [sp, #0x20]
+ sub r0, #0x4a
+ cmp r0, #1
+ bhi _022420A6
+ ldr r0, [sp]
+ ldr r1, [sp, #0x28]
+ bl MOD11_02230270
+ cmp r0, #0
+ bne _022420A6
+ ldr r0, [sp]
+ ldr r1, [sp, #0x28]
+ bl MOD11_02230260
+ cmp r0, #2
+ bne _022420C8
+ ldr r1, _0224233C ; =0x00002D8C
+ ldr r0, [sp, #4]
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ bne _022420C8
+ ldr r0, [sp]
+ ldr r1, [sp, #0x28]
+ mov r7, #0
+ bl MOD11_0222FF88
+ add r6, r0, #0
+ ldr r0, [sp]
+ ldr r1, [sp, #0x28]
+ bl MOD11_0222FF7C
+ add r0, r6, #0
+ add r4, r7, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _02242094
+_02242056:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl GetPartyMonByIndex
+ mov r1, #0xad
+ mov r2, #0
+ add r5, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02242088
+ add r0, r5, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02242340 ; =0x000001EE
+ cmp r0, r1
+ beq _02242088
+ add r0, r5, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ add r7, r7, r0
+_02242088:
+ add r0, r6, #0
+ add r4, r4, #1
+ bl GetPartyCount
+ cmp r4, r0
+ blt _02242056
+_02242094:
+ cmp r7, #0
+ bne _022420C8
+ ldr r0, [sp, #0x1c]
+ mov r1, #2
+ orr r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x1c]
+ b _02242242
+_022420A6:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ bne _022420BE
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ beq _022421B0
+ ldr r0, [sp]
+ ldr r1, [sp, #0x28]
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _022421B0
+_022420BE:
+ ldr r1, _0224233C ; =0x00002D8C
+ ldr r0, [sp, #4]
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ beq _022420CA
+_022420C8:
+ b _02242242
+_022420CA:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x28]
+ mov r5, #0
+ bl MOD11_0222FF88
+ add r7, r0, #0
+ ldr r0, [sp]
+ ldr r1, [sp, #0x28]
+ bl MOD11_022302BC
+ add r1, r0, #0
+ ldr r0, [sp]
+ bl MOD11_0222FF88
+ str r0, [sp, #0x18]
+ ldr r0, [sp]
+ ldr r1, [sp, #0x28]
+ bl MOD11_0222FF7C
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ add r4, r5, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0224213C
+_022420FE:
+ add r0, r7, #0
+ add r1, r4, #0
+ bl GetPartyMonByIndex
+ mov r1, #0xad
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02242130
+ add r0, r6, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02242340 ; =0x000001EE
+ cmp r0, r1
+ beq _02242130
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ add r5, r5, r0
+_02242130:
+ add r0, r7, #0
+ add r4, r4, #1
+ bl GetPartyCount
+ cmp r4, r0
+ blt _022420FE
+_0224213C:
+ ldr r0, [sp, #0x18]
+ mov r4, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _02242186
+ ldr r7, _02242340 ; =0x000001EE
+_0224214A:
+ ldr r0, [sp, #0x18]
+ add r1, r4, #0
+ bl GetPartyMonByIndex
+ mov r1, #0xad
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0224217A
+ add r0, r6, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl GetMonData
+ cmp r0, r7
+ beq _0224217A
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ add r5, r5, r0
+_0224217A:
+ ldr r0, [sp, #0x18]
+ add r4, r4, #1
+ bl GetPartyCount
+ cmp r4, r0
+ blt _0224214A
+_02242186:
+ cmp r5, #0
+ bne _02242242
+ ldr r0, [sp, #0x14]
+ bl MOD11_02253A4C
+ mov r1, #1
+ tst r0, r1
+ beq _022421A2
+ ldr r0, [sp, #0x1c]
+ orr r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x1c]
+ b _02242242
+_022421A2:
+ ldr r0, [sp, #0x1c]
+ mov r1, #2
+ orr r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x1c]
+ b _02242242
+_022421B0:
+ ldr r1, _0224233C ; =0x00002D8C
+ ldr r0, [sp, #4]
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ bne _02242242
+ ldr r0, [sp]
+ ldr r1, [sp, #0x28]
+ mov r7, #0
+ bl MOD11_0222FF88
+ add r6, r0, #0
+ ldr r0, [sp]
+ ldr r1, [sp, #0x28]
+ bl MOD11_0222FF7C
+ str r0, [sp, #0x10]
+ add r0, r6, #0
+ add r4, r7, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0224221A
+_022421DC:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl GetPartyMonByIndex
+ mov r1, #0xad
+ mov r2, #0
+ add r5, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0224220E
+ add r0, r5, #0
+ mov r1, #0xad
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02242340 ; =0x000001EE
+ cmp r0, r1
+ beq _0224220E
+ add r0, r5, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ add r7, r7, r0
+_0224220E:
+ add r0, r6, #0
+ add r4, r4, #1
+ bl GetPartyCount
+ cmp r4, r0
+ blt _022421DC
+_0224221A:
+ cmp r7, #0
+ bne _02242242
+ ldr r0, [sp, #0x10]
+ bl MOD11_02253A4C
+ mov r1, #1
+ tst r0, r1
+ beq _02242236
+ ldr r0, [sp, #0x1c]
+ orr r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x1c]
+ b _02242242
+_02242236:
+ ldr r0, [sp, #0x1c]
+ mov r1, #2
+ orr r0, r1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x1c]
+_02242242:
+ ldr r0, [sp, #4]
+ add r0, #0xc0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x28]
+ add r1, r0, #1
+ ldr r0, [sp, #0x24]
+ str r1, [sp, #0x28]
+ cmp r1, r0
+ bge _02242256
+ b _0224200C
+_02242256:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #1
+ bne _0224226C
+ ldr r0, [sp, #0x20]
+ mov r1, #1
+ tst r0, r1
+ beq _0224226C
+ ldr r0, [sp, #0x20]
+ mov r1, #4
+ tst r0, r1
+ beq _02242282
+_0224226C:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #1
+ bne _0224231C
+ ldr r0, [sp, #0x20]
+ mov r1, #0x80
+ tst r0, r1
+ beq _0224231C
+ ldr r0, [sp, #0x20]
+ mov r1, #4
+ tst r0, r1
+ bne _0224231C
+_02242282:
+ ldr r0, [sp]
+ mov r1, #1
+ bl MOD11_02230188
+ ldrb r0, [r0, #1]
+ sub r0, #0x3e
+ cmp r0, #0x23
+ bhi _0224230E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0224229E: ; jump table
+ .short _022422E6 - _0224229E - 2 ; case 0
+ .short _0224230E - _0224229E - 2 ; case 1
+ .short _022422E6 - _0224229E - 2 ; case 2
+ .short _02242306 - _0224229E - 2 ; case 3
+ .short _02242306 - _0224229E - 2 ; case 4
+ .short _02242306 - _0224229E - 2 ; case 5
+ .short _02242306 - _0224229E - 2 ; case 6
+ .short _022422EE - _0224229E - 2 ; case 7
+ .short _0224230E - _0224229E - 2 ; case 8
+ .short _0224230E - _0224229E - 2 ; case 9
+ .short _022422F6 - _0224229E - 2 ; case 10
+ .short _022422F6 - _0224229E - 2 ; case 11
+ .short _022422E6 - _0224229E - 2 ; case 12
+ .short _022422E6 - _0224229E - 2 ; case 13
+ .short _022422E6 - _0224229E - 2 ; case 14
+ .short _022422E6 - _0224229E - 2 ; case 15
+ .short _022422E6 - _0224229E - 2 ; case 16
+ .short _022422E6 - _0224229E - 2 ; case 17
+ .short _0224230E - _0224229E - 2 ; case 18
+ .short _0224230E - _0224229E - 2 ; case 19
+ .short _0224230E - _0224229E - 2 ; case 20
+ .short _0224230E - _0224229E - 2 ; case 21
+ .short _0224230E - _0224229E - 2 ; case 22
+ .short _0224230E - _0224229E - 2 ; case 23
+ .short _022422FE - _0224229E - 2 ; case 24
+ .short _022422F6 - _0224229E - 2 ; case 25
+ .short _022422F6 - _0224229E - 2 ; case 26
+ .short _022422F6 - _0224229E - 2 ; case 27
+ .short _0224230E - _0224229E - 2 ; case 28
+ .short _0224230E - _0224229E - 2 ; case 29
+ .short _0224230E - _0224229E - 2 ; case 30
+ .short _0224230E - _0224229E - 2 ; case 31
+ .short _0224230E - _0224229E - 2 ; case 32
+ .short _0224230E - _0224229E - 2 ; case 33
+ .short _0224230E - _0224229E - 2 ; case 34
+ .short _022422E6 - _0224229E - 2 ; case 35
+_022422E6:
+ ldr r0, _02242344 ; =0x00000469
+ bl FUN_0200521C
+ b _02242314
+_022422EE:
+ ldr r0, _02242348 ; =0x0000046A
+ bl FUN_0200521C
+ b _02242314
+_022422F6:
+ ldr r0, _0224234C ; =0x0000046B
+ bl FUN_0200521C
+ b _02242314
+_022422FE:
+ ldr r0, _02242350 ; =0x0000046C
+ bl FUN_0200521C
+ b _02242314
+_02242306:
+ ldr r0, _02242354 ; =0x0000046D
+ bl FUN_0200521C
+ b _02242314
+_0224230E:
+ ldr r0, _02242358 ; =0x00000468
+ bl FUN_0200521C
+_02242314:
+ ldr r0, [sp]
+ mov r1, #2
+ bl MOD11_02231484
+_0224231C:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ beq _0224232A
+ ldr r0, [sp]
+ ldr r1, [sp, #0x1c]
+ bl MOD11_02231468
+_0224232A:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ beq _02242336
+ add sp, #0x2c
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02242336:
+ mov r0, #0
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224233C: .word 0x00002D8C
+_02242340: .word 0x000001EE
+_02242344: .word 0x00000469
+_02242348: .word 0x0000046A
+_0224234C: .word 0x0000046B
+_02242350: .word 0x0000046C
+_02242354: .word 0x0000046D
+_02242358: .word 0x00000468
+
+ thumb_func_start MOD11_0224235C
+MOD11_0224235C: ; 0x0224235C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ str r0, [sp]
+ add r5, r1, #0
+ ldr r0, _022423F4 ; =0x00002D4C
+ add r6, r2, #0
+ mov r1, #0xc0
+ add r0, r5, r0
+ mul r1, r6
+ add r0, r0, r1
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x2c]
+ ldr r1, [sp, #8]
+ lsl r0, r0, #1
+ ldrh r1, [r1, r0]
+ str r3, [sp, #4]
+ ldr r4, [sp, #0x28]
+ ldr r7, [sp, #0x30]
+ str r0, [sp, #0xc]
+ cmp r1, #0xae
+ bne _02242396
+ add r0, r5, #0
+ bl MOD11_02246C20
+ cmp r0, #0
+ bne _02242396
+ mov r0, #0x10
+ str r0, [r4]
+ b _022423A6
+_02242396:
+ ldr r1, [sp, #8]
+ ldr r0, [sp, #0xc]
+ ldrh r0, [r1, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _022423F8 ; =0x000003E6
+ ldrh r0, [r1, r0]
+ str r0, [r4]
+_022423A6:
+ ldr r0, [sp, #4]
+ mov r1, #2
+ tst r0, r1
+ beq _022423DC
+ ldr r0, [r4]
+ add r1, #0xfe
+ cmp r0, r1
+ bne _022423D6
+ ldr r0, [sp]
+ add r1, r6, #0
+ bl MOD11_022302BC
+ bl MaskOfFlagNo
+ ldr r1, _022423FC ; =0x00003108
+ ldrb r1, [r5, r1]
+ tst r0, r1
+ bne _022423D0
+ add sp, #0x10
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_022423D0:
+ add sp, #0x10
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022423D6:
+ add sp, #0x10
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_022423DC:
+ ldr r1, [r4]
+ ldr r0, _02242400 ; =0x00000251
+ tst r0, r1
+ beq _022423E8
+ str r6, [r7]
+ b _022423EE
+_022423E8:
+ mov r0, #1
+ eor r0, r6
+ str r0, [r7]
+_022423EE:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022423F4: .word 0x00002D4C
+_022423F8: .word 0x000003E6
+_022423FC: .word 0x00003108
+_02242400: .word 0x00000251
+
+ thumb_func_start MOD11_02242404
+MOD11_02242404: ; 0x02242404
+ push {r3, r4, r5, r6, r7, lr}
+ str r1, [sp]
+ bl MOD11_0222FF84
+ add r4, r0, #0
+ mov r3, #0
+ cmp r4, #0
+ ble _0224243E
+ ldr r5, [sp]
+ add r7, r3, #0
+ add r6, r5, #0
+_0224241A:
+ ldr r0, _02242460 ; =0x00002DB0
+ add r3, r3, #1
+ ldr r2, [r6, r0]
+ ldr r0, _02242464 ; =0x0000218C
+ ldr r1, [r5, r0]
+ mov r0, #0
+ mvn r0, r0
+ eor r0, r1
+ add r1, r2, #0
+ and r1, r0
+ ldr r0, _02242460 ; =0x00002DB0
+ str r1, [r6, r0]
+ ldr r0, _02242464 ; =0x0000218C
+ add r6, #0xc0
+ str r7, [r5, r0]
+ add r5, r5, #4
+ cmp r3, r4
+ blt _0224241A
+_0224243E:
+ ldr r1, [sp]
+ mov r0, #0
+ ldr r1, [r1, #0x64]
+ lsl r2, r1, #1
+ ldr r1, [sp]
+ add r1, r1, r2
+ ldr r2, _02242468 ; =0x00003064
+ strh r0, [r1, r2]
+ ldr r1, [sp]
+ add r2, #0x60
+ ldr r1, [r1, #0x64]
+ lsl r3, r1, #1
+ ldr r1, [sp]
+ add r1, r1, r3
+ strh r0, [r1, r2]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02242460: .word 0x00002DB0
+_02242464: .word 0x0000218C
+_02242468: .word 0x00003064
+
+ thumb_func_start MOD11_0224246C
+MOD11_0224246C: ; 0x0224246C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, _02242504 ; =0x000021EC
+ str r1, [sp]
+ ldrb r0, [r5, r0]
+ add r6, r2, #0
+ str r3, [sp, #4]
+ mov r4, #0
+ bl MaskOfFlagNo
+ ldr r1, _02242508 ; =0x0000213C
+ lsl r0, r0, #0x18
+ ldr r2, [r5, r1]
+ mov r1, #0xf
+ lsl r1, r1, #0x18
+ tst r1, r2
+ beq _022424FA
+ add r1, r2, #0
+ tst r1, r0
+ bne _022424AE
+ ldr r7, _02242504 ; =0x000021EC
+ add r6, r7, #0
+ sub r6, #0xb0
+_0224249C:
+ add r4, r4, #1
+ add r0, r5, r4
+ ldrb r0, [r0, r7]
+ bl MaskOfFlagNo
+ ldr r1, [r5, r6]
+ lsl r0, r0, #0x18
+ tst r1, r0
+ beq _0224249C
+_022424AE:
+ ldr r2, _02242508 ; =0x0000213C
+ mov r1, #0
+ mvn r1, r1
+ eor r1, r0
+ ldr r3, [r5, r2]
+ asr r0, r0, #0x18
+ and r1, r3
+ str r1, [r5, r2]
+ bl LowestFlagNo
+ str r0, [r5, #0x74]
+ ldr r0, [sp, #4]
+ cmp r0, #1
+ bne _022424D6
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #6
+ bl MOD11_022431DC
+ b _022424E0
+_022424D6:
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #0x53
+ bl MOD11_022431DC
+_022424E0:
+ mov r0, #0x15
+ str r0, [r5, #8]
+ ldr r0, [sp]
+ mov r2, #0x27
+ str r0, [r5, #0xc]
+ ldr r0, [r5, #0x74]
+ add sp, #8
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _0224250C ; =0x000021A8
+ str r2, [r1, r0]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_022424FA:
+ str r6, [r5, #8]
+ add r0, r4, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02242504: .word 0x000021EC
+_02242508: .word 0x0000213C
+_0224250C: .word 0x000021A8
+
+ thumb_func_start MOD11_02242510
+MOD11_02242510: ; 0x02242510
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x85
+ lsl r0, r0, #6
+ add r4, r1, #0
+ ldr r1, [r5, r0]
+ mov r0, #0xf
+ lsl r0, r0, #0x1c
+ tst r0, r1
+ beq _02242564
+ mov r0, #1
+ lsl r0, r0, #0x1c
+ add r2, r1, #0
+ tst r2, r0
+ bne _02242536
+_0224252E:
+ lsl r0, r0, #1
+ add r2, r1, #0
+ tst r2, r0
+ beq _0224252E
+_02242536:
+ mov r2, #0x85
+ lsl r2, r2, #6
+ mov r1, #0
+ mvn r1, r1
+ eor r1, r0
+ ldr r3, [r5, r2]
+ asr r0, r0, #0x1c
+ and r1, r3
+ str r1, [r5, r2]
+ bl LowestFlagNo
+ mov r2, #0x45
+ str r0, [r5, #0x74]
+ add r0, r5, #0
+ mov r1, #1
+ lsl r2, r2, #2
+ bl MOD11_022431DC
+ mov r0, #0x15
+ str r0, [r5, #8]
+ str r4, [r5, #0xc]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02242564:
+ str r2, [r5, #8]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224256C
+MOD11_0224256C: ; 0x0224256C
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x60
+ bne _02242580
+ mov r4, #0
+ b _02242594
+_02242580:
+ ldr r0, _0224274C ; =0x00002160
+ ldr r4, [r5, r0]
+ cmp r4, #0
+ bne _02242594
+ ldr r0, _02242750 ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02242754 ; =0x000003E2
+ ldrb r4, [r1, r0]
+_02242594:
+ mov r0, #0xc1
+ lsl r0, r0, #6
+ ldr r2, [r5, r0]
+ mov r6, #0x10
+ lsl r1, r2, #4
+ add r3, r5, r1
+ ldr r1, _02242758 ; =0x000003E9
+ ldrb r1, [r3, r1]
+ tst r1, r6
+ beq _022425DE
+ ldr r3, _0224275C ; =0x0000213C
+ lsl r6, r6, #0x10
+ ldr r1, [r5, r3]
+ tst r1, r6
+ bne _022425DE
+ ldr r1, [r5, #0x6c]
+ cmp r1, #0xff
+ beq _022425DE
+ add r3, r3, #4
+ ldr r6, [r5, r3]
+ mov r3, #4
+ tst r3, r6
+ beq _022425DE
+ lsl r1, r1, #1
+ add r3, r5, r1
+ add r1, r0, #0
+ add r1, #0x44
+ strh r2, [r3, r1]
+ ldr r2, [r5, #0x6c]
+ ldr r1, [r5, r0]
+ lsl r2, r2, #3
+ add r3, r5, r2
+ ldr r2, [r5, #0x64]
+ add r0, #0x4c
+ lsl r2, r2, #1
+ add r2, r3, r2
+ strh r1, [r2, r0]
+_022425DE:
+ ldr r1, [r5, #0x6c]
+ cmp r1, #0xff
+ beq _02242628
+ add r0, r5, #0
+ bl MOD11_02249D90
+ ldr r1, _0224275C ; =0x0000213C
+ lsl r0, r0, #0x18
+ ldr r3, [r5, r1]
+ mov r2, #0x20
+ lsr r0, r0, #0x18
+ tst r2, r3
+ bne _02242602
+ add r1, r1, #4
+ ldr r2, [r5, r1]
+ mov r1, #4
+ tst r1, r2
+ beq _0224261C
+_02242602:
+ cmp r0, #0x36
+ beq _0224261C
+ cmp r0, #0x72
+ beq _0224261C
+ cmp r0, #0x7c
+ beq _0224261C
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02242760 ; =0x00002DF8
+ mov r2, #0
+ strh r2, [r1, r0]
+_0224261C:
+ ldr r0, _0224275C ; =0x0000213C
+ mov r1, #1
+ ldr r2, [r5, r0]
+ lsl r1, r1, #0x14
+ tst r1, r2
+ beq _0224262A
+_02242628:
+ b _0224274A
+_0224262A:
+ add r0, r0, #4
+ ldr r1, [r5, r0]
+ mov r0, #4
+ tst r0, r1
+ beq _02242668
+ ldr r1, [r5, #0x6c]
+ ldr r0, _02242750 ; =0x00003044
+ lsl r1, r1, #1
+ add r2, r5, r1
+ add r1, r0, #0
+ ldr r3, [r5, r0]
+ add r1, #0x20
+ strh r3, [r2, r1]
+ ldr r1, [r5, #0x6c]
+ ldr r3, [r5, #0x64]
+ lsl r1, r1, #1
+ add r2, r5, r1
+ add r1, r0, #0
+ add r1, #0x28
+ strh r3, [r2, r1]
+ ldr r1, [r5, #0x6c]
+ lsl r1, r1, #1
+ add r2, r5, r1
+ add r1, r0, #0
+ add r1, #0x30
+ strh r4, [r2, r1]
+ sub r1, r0, #4
+ ldr r1, [r5, r1]
+ add r0, r0, #4
+ str r1, [r5, r0]
+ b _02242692
+_02242668:
+ ldr r0, [r5, #0x6c]
+ ldr r3, _02242764 ; =0x00003064
+ lsl r0, r0, #1
+ mov r1, #0
+ add r0, r5, r0
+ strh r1, [r0, r3]
+ ldr r2, [r5, #0x6c]
+ mov r0, #0xff
+ lsl r2, r2, #1
+ add r6, r5, r2
+ add r2, r3, #0
+ add r2, #8
+ strh r0, [r6, r2]
+ ldr r0, [r5, #0x6c]
+ lsl r0, r0, #1
+ add r2, r5, r0
+ add r0, r3, #0
+ add r0, #0x10
+ strh r1, [r2, r0]
+ sub r3, #0x1c
+ str r1, [r5, r3]
+_02242692:
+ mov r0, #0x85
+ lsl r0, r0, #6
+ ldr r2, [r5, r0]
+ mov r1, #0x40
+ tst r1, r2
+ beq _02242726
+ add r0, #0x2c
+ ldr r0, [r5, r0]
+ ldr r2, _02242768 ; =0x801FDA49
+ tst r0, r2
+ bne _02242726
+ ldr r0, _02242750 ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r1, r0, #4
+ add r3, r5, r1
+ ldr r1, _0224276C ; =0x000003E6
+ ldrh r3, [r3, r1]
+ cmp r3, #0x40
+ bgt _022426C8
+ bge _022426DC
+ cmp r3, #0x10
+ bgt _022426C2
+ beq _022426DC
+ b _02242702
+_022426C2:
+ cmp r3, #0x20
+ beq _022426DC
+ b _02242702
+_022426C8:
+ lsr r1, r2, #0x17
+ cmp r3, r1
+ bgt _022426D6
+ bge _022426DC
+ cmp r3, #0x80
+ beq _022426DC
+ b _02242702
+_022426D6:
+ lsr r1, r2, #0x16
+ cmp r3, r1
+ bne _02242702
+_022426DC:
+ ldr r1, [r5, #0x6c]
+ ldr r2, _02242770 ; =0x000030C4
+ lsl r1, r1, #1
+ mov r0, #0
+ add r1, r5, r1
+ strh r0, [r1, r2]
+ ldr r1, [r5, #0x6c]
+ mov r4, #0xff
+ lsl r1, r1, #1
+ add r3, r5, r1
+ add r1, r2, #0
+ add r1, #8
+ strh r4, [r3, r1]
+ ldr r1, [r5, #0x6c]
+ add r2, #0x10
+ lsl r1, r1, #1
+ add r1, r5, r1
+ strh r0, [r1, r2]
+ pop {r4, r5, r6, pc}
+_02242702:
+ ldr r1, [r5, #0x6c]
+ lsl r1, r1, #1
+ add r2, r5, r1
+ ldr r1, _02242770 ; =0x000030C4
+ strh r0, [r2, r1]
+ ldr r0, [r5, #0x6c]
+ ldr r3, [r5, #0x64]
+ lsl r0, r0, #1
+ add r2, r5, r0
+ add r0, r1, #0
+ add r0, #8
+ strh r3, [r2, r0]
+ ldr r0, [r5, #0x6c]
+ add r1, #0x10
+ lsl r0, r0, #1
+ add r0, r5, r0
+ strh r4, [r0, r1]
+ pop {r4, r5, r6, pc}
+_02242726:
+ ldr r1, [r5, #0x6c]
+ ldr r2, _02242770 ; =0x000030C4
+ lsl r1, r1, #1
+ mov r0, #0
+ add r1, r5, r1
+ strh r0, [r1, r2]
+ ldr r1, [r5, #0x6c]
+ mov r4, #0xff
+ lsl r1, r1, #1
+ add r3, r5, r1
+ add r1, r2, #0
+ add r1, #8
+ strh r4, [r3, r1]
+ ldr r1, [r5, #0x6c]
+ add r2, #0x10
+ lsl r1, r1, #1
+ add r1, r5, r1
+ strh r0, [r1, r2]
+_0224274A:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0224274C: .word 0x00002160
+_02242750: .word 0x00003044
+_02242754: .word 0x000003E2
+_02242758: .word 0x000003E9
+_0224275C: .word 0x0000213C
+_02242760: .word 0x00002DF8
+_02242764: .word 0x00003064
+_02242768: .word 0x801FDA49
+_0224276C: .word 0x000003E6
+_02242770: .word 0x000030C4
+
+ thumb_func_start MOD11_02242774
+MOD11_02242774: ; 0x02242774
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x10
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02242790
+MOD11_02242790: ; 0x02242790
+ push {r3, r4, r5, lr}
+ ldr r2, _022427E0 ; =0x0000216C
+ add r5, r1, #0
+ ldr r0, [r5, r2]
+ mov r4, #0
+ cmp r0, #0
+ beq _022427C4
+ add r1, r2, #0
+ add r1, #0x11
+ ldrb r1, [r5, r1]
+ cmp r1, #0
+ beq _022427C2
+ ldr r1, [r5, #0x74]
+ cmp r1, #0xff
+ bne _022427BE
+ add r2, #0x10
+ ldrb r1, [r5, r2]
+ cmp r1, #1
+ beq _022427BE
+ mov r1, #1
+ lsl r1, r1, #0xe
+ tst r0, r1
+ beq _022427C4
+_022427BE:
+ mov r4, #1
+ b _022427C4
+_022427C2:
+ mov r4, #1
+_022427C4:
+ cmp r4, #1
+ bne _022427DA
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #0x15
+ bl MOD11_022431DC
+ ldr r0, [r5, #8]
+ str r0, [r5, #0xc]
+ mov r0, #0x15
+ str r0, [r5, #8]
+_022427DA:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_022427E0: .word 0x0000216C
+
+ thumb_func_start MOD11_022427E4
+MOD11_022427E4: ; 0x022427E4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ ldr r2, [r4, #0x6c]
+ mov r3, #0
+ cmp r2, #0xff
+ bne _022427F4
+ add r0, r3, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022427F4:
+ mov r0, #0xc0
+ add r5, r2, #0
+ mul r5, r0
+ mov r1, #2
+ ldr r0, _02242864 ; =0x00002DB0
+ add r7, r4, r5
+ ldr r6, [r7, r0]
+ lsl r1, r1, #0x16
+ tst r1, r6
+ beq _0224285E
+ ldr r1, _02242868 ; =0x0000216C
+ mov r6, #2
+ lsl r6, r6, #0x16
+ ldr r1, [r4, r1]
+ lsr r6, r6, #9
+ tst r1, r6
+ bne _0224285E
+ ldr r1, [r4, #0x64]
+ cmp r2, r1
+ beq _0224285E
+ sub r0, #0x24
+ ldr r0, [r7, r0]
+ cmp r0, #0
+ beq _0224285E
+ mov r0, #0x1c
+ mul r0, r2
+ add r2, r4, r0
+ mov r0, #0xb6
+ lsl r0, r0, #2
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ bne _0224283C
+ add r0, #8
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _0224285E
+_0224283C:
+ ldr r0, _0224286C ; =0x00002D59
+ add r1, r4, r0
+ ldrsb r0, [r1, r5]
+ cmp r0, #0xc
+ bge _0224285E
+ add r0, r0, #1
+ strb r0, [r1, r5]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xf5
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r3, #1
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_0224285E:
+ add r0, r3, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02242864: .word 0x00002DB0
+_02242868: .word 0x0000216C
+_0224286C: .word 0x00002D59
+
+ thumb_func_start MOD11_02242870
+MOD11_02242870: ; 0x02242870
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ mov r4, #0
+ bl MOD11_02249D90
+ add r7, r0, #0
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ add r2, r4, #0
+ bl MOD11_02249DA4
+ add r6, r0, #0
+ ldr r0, [r5, #0x6c]
+ cmp r0, #0xff
+ beq _0224290A
+ cmp r7, #0x37
+ bne _0224290A
+ ldr r1, _02242910 ; =0x0000216C
+ ldr r2, [r5, r1]
+ ldr r1, _02242914 ; =0x801FDA49
+ tst r1, r2
+ bne _0224290A
+ mov r1, #0x1c
+ mul r1, r0
+ mov r0, #0xb6
+ add r2, r5, r1
+ lsl r0, r0, #2
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ bne _022428B8
+ add r0, #8
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _0224290A
+_022428B8:
+ bl LCRandom
+ mov r1, #0x64
+ bl _s32_div_f
+ cmp r1, r6
+ bge _0224290A
+ ldr r0, _02242918 ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _0224291C ; =0x000003E9
+ ldrb r1, [r1, r0]
+ mov r0, #0x20
+ tst r0, r1
+ beq _0224290A
+ ldr r0, [r5, #0x6c]
+ mov r1, #0xc0
+ mul r1, r0
+ add r2, r5, r1
+ ldr r1, _02242920 ; =0x00002D8C
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ beq _0224290A
+ add r1, r5, #0
+ add r1, #0x94
+ str r0, [r1]
+ add r0, r5, #0
+ mov r1, #2
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #0xe
+ bl MOD11_022431DC
+ ldr r0, [r5, #8]
+ mov r4, #1
+ str r0, [r5, #0xc]
+ mov r0, #0x15
+ str r0, [r5, #8]
+_0224290A:
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02242910: .word 0x0000216C
+_02242914: .word 0x801FDA49
+_02242918: .word 0x00003044
+_0224291C: .word 0x000003E9
+_02242920: .word 0x00002D8C
+
+ thumb_func_start MOD11_02242924
+MOD11_02242924: ; 0x02242924
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ ldr r4, [r5, #0x5c]
+ str r0, [sp]
+ mov r7, #0
+ bl MOD11_0222FF84
+ cmp r4, r0
+ bge _02242994
+ add r6, r5, #0
+ add r6, #0x5c
+_0224293A:
+ mov r0, #0xc0
+ mul r0, r4
+ mov r1, #0xb7
+ add r0, r5, r0
+ lsl r1, r1, #6
+ ldr r2, [r0, r1]
+ ldr r1, _022429A0 ; =0x200400C0
+ tst r1, r2
+ bne _0224297E
+ ldr r1, _022429A4 ; =0x00002DC4
+ ldr r2, [r0, r1]
+ ldr r1, _022429A0 ; =0x200400C0
+ tst r1, r2
+ beq _0224297E
+ ldr r1, _022429A4 ; =0x00002DC4
+ ldr r2, [r0, r1]
+ ldr r1, _022429A8 ; =0xDFFBFF3F
+ and r2, r1
+ ldr r1, _022429A4 ; =0x00002DC4
+ str r2, [r0, r1]
+ ldr r2, _022429AC ; =0x0000011F
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ mov r0, #0x46
+ ldr r1, [r5, #0x5c]
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ ldr r0, [r5, #8]
+ mov r7, #1
+ str r0, [r5, #0xc]
+ mov r0, #0x15
+ str r0, [r5, #8]
+_0224297E:
+ ldr r0, [r6]
+ add r0, r0, #1
+ str r0, [r6]
+ cmp r7, #1
+ beq _02242994
+ ldr r0, [sp]
+ ldr r4, [r5, #0x5c]
+ bl MOD11_0222FF84
+ cmp r4, r0
+ blt _0224293A
+_02242994:
+ cmp r7, #0
+ bne _0224299C
+ mov r0, #0
+ str r0, [r5, #0x5c]
+_0224299C:
+ add r0, r7, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022429A0: .word 0x200400C0
+_022429A4: .word 0x00002DC4
+_022429A8: .word 0xDFFBFF3F
+_022429AC: .word 0x0000011F
+
+ thumb_func_start MOD11_022429B0
+MOD11_022429B0: ; 0x022429B0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ mov r6, #0
+ bl MOD11_0222FF84
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02249D90
+ str r0, [sp, #4]
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ add r2, r6, #0
+ bl MOD11_02249DA4
+ ldr r1, [r4, #8]
+ str r0, [sp]
+ add r0, r4, #0
+ add r2, r1, #0
+ mov r3, #1
+ bl MOD11_0224246C
+ cmp r0, #1
+ bne _022429E8
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_022429E8:
+ add r5, r4, #0
+ add r5, #0x30
+_022429EC:
+ ldr r0, [r4, #0x30]
+ cmp r0, #3
+ bls _022429F4
+ b _02242B44
+_022429F4:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02242A00: ; jump table
+ .short _02242A08 - _02242A00 - 2 ; case 0
+ .short _02242A38 - _02242A00 - 2 ; case 1
+ .short _02242AB8 - _02242A00 - 2 ; case 2
+ .short _02242B3C - _02242A00 - 2 ; case 3
+_02242A08:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _02242B5C ; =0x00002DB0
+ add r0, r4, r0
+ ldr r2, [r0, r1]
+ mov r1, #2
+ lsl r1, r1, #0x16
+ tst r1, r2
+ beq _02242A30
+ ldr r1, _02242B60 ; =0x00003044
+ ldr r1, [r4, r1]
+ cmp r1, #0x63
+ beq _02242A30
+ ldr r1, _02242B5C ; =0x00002DB0
+ ldr r2, [r0, r1]
+ ldr r1, _02242B64 ; =0xFF7FFFFF
+ and r2, r1
+ ldr r1, _02242B5C ; =0x00002DB0
+ str r2, [r0, r1]
+_02242A30:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _02242B44
+_02242A38:
+ ldr r3, [r4, #0x6c]
+ cmp r3, #0xff
+ beq _02242AB0
+ ldr r0, [sp, #4]
+ cmp r0, #0x57
+ bne _02242AB0
+ mov r0, #0x85
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0x10
+ tst r0, r1
+ bne _02242AB0
+ ldr r0, _02242B68 ; =0x0000213C
+ ldr r1, [r4, r0]
+ mov r0, #2
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _02242AB0
+ ldr r2, [r4, #0x64]
+ mov r0, #0x1c
+ mul r0, r2
+ add r1, r4, r0
+ mov r0, #0xbb
+ lsl r0, r0, #2
+ ldr r7, [r1, r0]
+ cmp r7, #0
+ beq _02242AB0
+ cmp r2, r3
+ beq _02242AB0
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _02242B6C ; =0x00002D8C
+ ldr r1, [r2, r0]
+ add r0, r0, #4
+ ldr r0, [r2, r0]
+ cmp r1, r0
+ bhs _02242AB0
+ cmp r1, #0
+ beq _02242AB0
+ ldr r1, [sp]
+ neg r0, r7
+ bl MOD11_022476C0
+ ldr r1, _02242B70 ; =0x0000215C
+ mov r2, #0xd5
+ str r0, [r4, r1]
+ mov r0, #0x46
+ ldr r1, [r4, #0x64]
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r6, #1
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_02242AB0:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _02242B44
+_02242AB8:
+ ldr r0, [sp, #4]
+ cmp r0, #0x61
+ bne _02242B34
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _02242B34
+ mov r0, #0x85
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0x10
+ tst r0, r1
+ bne _02242B34
+ ldr r0, _02242B68 ; =0x0000213C
+ ldr r1, [r4, r0]
+ mov r0, #2
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _02242B34
+ ldr r0, _02242B60 ; =0x00003044
+ ldr r0, [r4, r0]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ mov r0, #0x3e
+ lsl r0, r0, #4
+ ldrb r0, [r1, r0]
+ cmp r0, #2
+ beq _02242B34
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _02242B6C ; =0x00002D8C
+ add r0, r4, r0
+ ldr r1, [r0, r1]
+ cmp r1, #0
+ beq _02242B34
+ ldr r1, _02242B74 ; =0x00002D90
+ ldr r1, [r0, r1]
+ mov r0, #0
+ mvn r0, r0
+ mul r0, r1
+ mov r1, #0xa
+ bl MOD11_022476C0
+ ldr r1, _02242B70 ; =0x0000215C
+ mov r2, #0xd6
+ str r0, [r4, r1]
+ mov r0, #0x46
+ ldr r1, [r4, #0x64]
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r6, #1
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_02242B34:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _02242B44
+_02242B3C:
+ mov r0, #0
+ str r0, [r4, #0x30]
+ str r0, [r4, #0x34]
+ mov r6, #2
+_02242B44:
+ cmp r6, #0
+ bne _02242B4A
+ b _022429EC
+_02242B4A:
+ cmp r6, #1
+ bne _02242B54
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02242B54:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02242B5C: .word 0x00002DB0
+_02242B60: .word 0x00003044
+_02242B64: .word 0xFF7FFFFF
+_02242B68: .word 0x0000213C
+_02242B6C: .word 0x00002D8C
+_02242B70: .word 0x0000215C
+_02242B74: .word 0x00002D90
+
+ thumb_func_start MOD11_02242B78
+MOD11_02242B78: ; 0x02242B78
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r7, r1, #0
+ str r2, [sp, #4]
+ add r1, r2, #0
+ add r2, r3, #0
+ str r0, [sp]
+ bl MOD11_02230014
+ ldr r1, [sp, #4]
+ mov r2, #0xc0
+ add r5, r1, #0
+ mov r1, #0xb5
+ lsl r1, r1, #6
+ add r1, r7, r1
+ mul r5, r2
+ str r1, [sp, #0x18]
+ mov r1, #5
+ mov r2, #0
+ add r4, r0, #0
+ bl GetMonData
+ ldr r1, [sp, #0x18]
+ mov r2, #0
+ strh r0, [r1, r5]
+ add r0, r4, #0
+ mov r1, #0xa4
+ bl GetMonData
+ ldr r1, _02242F4C ; =0x00002D42
+ add r2, r7, r5
+ strh r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #0xa5
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02242F50 ; =0x00002D44
+ add r2, r7, r5
+ strh r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #0xa6
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02242F54 ; =0x00002D46
+ add r2, r7, r5
+ strh r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #0xa7
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02242F58 ; =0x00002D48
+ add r2, r7, r5
+ strh r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #0xa8
+ mov r2, #0
+ bl GetMonData
+ add r1, r7, r5
+ ldr r2, _02242F5C ; =0x00002D4A
+ str r1, [sp, #0xc]
+ strh r0, [r1, r2]
+ add r0, r1, #0
+ mov r6, #0
+ str r0, [sp, #0x14]
+ str r0, [sp, #0x10]
+_02242C02:
+ add r1, r6, #0
+ add r0, r4, #0
+ add r1, #0x36
+ mov r2, #0
+ bl GetMonData
+ ldr r2, [sp, #0x14]
+ ldr r1, _02242F60 ; =0x00002D4C
+ strh r0, [r2, r1]
+ add r1, r6, #0
+ add r0, r4, #0
+ add r1, #0x3a
+ mov r2, #0
+ bl GetMonData
+ ldr r2, [sp, #0x10]
+ ldr r1, _02242F64 ; =0x00002D6C
+ strb r0, [r2, r1]
+ add r1, r6, #0
+ add r0, r4, #0
+ add r1, #0x3e
+ mov r2, #0
+ bl GetMonData
+ ldr r2, [sp, #0x10]
+ ldr r1, _02242F68 ; =0x00002D70
+ add r6, r6, #1
+ strb r0, [r2, r1]
+ ldr r0, [sp, #0x14]
+ add r0, r0, #2
+ str r0, [sp, #0x14]
+ add r0, r2, #0
+ add r0, r0, #1
+ str r0, [sp, #0x10]
+ cmp r6, #4
+ blt _02242C02
+ add r0, r1, #0
+ sub r0, #0x1c
+ add r6, r7, r0
+ add r0, r4, #0
+ mov r1, #0x46
+ mov r2, #0
+ bl GetMonData
+ ldr r1, [r6, r5]
+ mov r2, #0x1f
+ bic r1, r2
+ mov r2, #0x1f
+ and r0, r2
+ orr r0, r1
+ str r0, [r6, r5]
+ add r0, r4, #0
+ mov r1, #0x47
+ mov r2, #0
+ bl GetMonData
+ lsl r0, r0, #0x1b
+ ldr r2, [r6, r5]
+ ldr r1, _02242F6C ; =0xFFFFFC1F
+ lsr r0, r0, #0x16
+ and r1, r2
+ orr r0, r1
+ str r0, [r6, r5]
+ add r0, r4, #0
+ mov r1, #0x48
+ mov r2, #0
+ bl GetMonData
+ lsl r0, r0, #0x1b
+ ldr r2, [r6, r5]
+ ldr r1, _02242F70 ; =0xFFFF83FF
+ lsr r0, r0, #0x11
+ and r1, r2
+ orr r0, r1
+ str r0, [r6, r5]
+ add r0, r4, #0
+ mov r1, #0x49
+ mov r2, #0
+ bl GetMonData
+ lsl r0, r0, #0x1b
+ ldr r2, [r6, r5]
+ ldr r1, _02242F74 ; =0xFFF07FFF
+ lsr r0, r0, #0xc
+ and r1, r2
+ orr r0, r1
+ str r0, [r6, r5]
+ add r0, r4, #0
+ mov r1, #0x4a
+ mov r2, #0
+ bl GetMonData
+ lsl r0, r0, #0x1b
+ ldr r2, [r6, r5]
+ ldr r1, _02242F78 ; =0xFE0FFFFF
+ lsr r0, r0, #7
+ and r1, r2
+ orr r0, r1
+ str r0, [r6, r5]
+ add r0, r4, #0
+ mov r1, #0x4b
+ mov r2, #0
+ bl GetMonData
+ lsl r0, r0, #0x1b
+ ldr r2, [r6, r5]
+ ldr r1, _02242F7C ; =0xC1FFFFFF
+ lsr r0, r0, #2
+ and r1, r2
+ orr r0, r1
+ str r0, [r6, r5]
+ add r0, r4, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ ldr r2, [r6, r5]
+ ldr r1, _02242F80 ; =0xBFFFFFFF
+ lsl r0, r0, #0x1f
+ and r1, r2
+ lsr r0, r0, #1
+ orr r0, r1
+ str r0, [r6, r5]
+ add r0, r4, #0
+ mov r1, #0x4d
+ mov r2, #0
+ bl GetMonData
+ ldr r2, [r6, r5]
+ ldr r1, _02242F84 ; =0x7FFFFFFF
+ lsl r0, r0, #0x1f
+ and r1, r2
+ orr r0, r1
+ str r0, [r6, r5]
+ ldr r0, _02242F88 ; =0x0000213C
+ ldr r1, [r7, r0]
+ mov r0, #1
+ lsl r0, r0, #8
+ tst r0, r1
+ bne _02242D2E
+ ldr r0, _02242F8C ; =0x00002D58
+ mov r2, #0
+ mov r1, #6
+_02242D20:
+ ldr r3, [sp, #0xc]
+ add r2, r2, #1
+ strb r1, [r3, r0]
+ add r3, r3, #1
+ str r3, [sp, #0xc]
+ cmp r2, #8
+ blt _02242D20
+_02242D2E:
+ ldr r0, _02242F90 ; =0x00002D68
+ mov r1, #1
+ add r0, r7, r0
+ ldr r2, [r0, r5]
+ bic r2, r1
+ str r2, [r0, r5]
+ ldr r2, [r0, r5]
+ mov r1, #2
+ bic r2, r1
+ str r2, [r0, r5]
+ ldr r2, [r0, r5]
+ mov r1, #4
+ bic r2, r1
+ str r2, [r0, r5]
+ ldr r2, [r0, r5]
+ mov r1, #8
+ bic r2, r1
+ str r2, [r0, r5]
+ ldr r2, [r0, r5]
+ mov r1, #0x10
+ bic r2, r1
+ str r2, [r0, r5]
+ ldr r2, [r0, r5]
+ mov r1, #0x20
+ bic r2, r1
+ str r2, [r0, r5]
+ ldr r2, [r0, r5]
+ mov r1, #0x40
+ bic r2, r1
+ str r2, [r0, r5]
+ ldr r2, [r0, r5]
+ mov r1, #0x80
+ bic r2, r1
+ str r2, [r0, r5]
+ ldr r2, [r0, r5]
+ ldr r1, _02242F94 ; =0xFFFFFEFF
+ and r1, r2
+ str r1, [r0, r5]
+ ldr r2, [r0, r5]
+ ldr r1, _02242F98 ; =0xFFFFFDFF
+ and r1, r2
+ str r1, [r0, r5]
+ ldr r2, [r0, r5]
+ ldr r1, _02242F9C ; =0xFFFFFBFF
+ and r1, r2
+ str r1, [r0, r5]
+ add r0, r4, #0
+ mov r1, #0xb0
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02242FA0 ; =0x00002D64
+ add r2, r7, r5
+ strb r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #0xb1
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02242FA4 ; =0x00002D65
+ add r2, r7, r5
+ strb r0, [r2, r1]
+ add r1, #0x59
+ add r0, r7, r1
+ str r0, [sp, #0x1c]
+ add r0, r4, #0
+ bl GetMonGender
+ ldr r1, [sp, #0x1c]
+ mov r2, #0xf
+ ldrb r1, [r1, r5]
+ bic r1, r2
+ mov r2, #0xf
+ and r0, r2
+ orr r1, r0
+ ldr r0, [sp, #0x1c]
+ strb r1, [r0, r5]
+ ldr r0, _02242FA8 ; =0x00002D66
+ add r6, r7, r0
+ add r0, r4, #0
+ bl MonIsShiny
+ ldrb r1, [r6, r5]
+ mov r2, #0x20
+ lsl r0, r0, #0x1f
+ bic r1, r2
+ lsr r0, r0, #0x1a
+ orr r0, r1
+ strb r0, [r6, r5]
+ add r0, r4, #0
+ mov r1, #0x70
+ mov r2, #0
+ bl GetMonData
+ ldrb r1, [r6, r5]
+ mov r2, #0x1f
+ lsl r0, r0, #0x18
+ bic r1, r2
+ lsr r2, r0, #0x18
+ mov r0, #0x1f
+ and r0, r2
+ orr r0, r1
+ strb r0, [r6, r5]
+ ldr r0, [sp]
+ bl MOD11_0222FF74
+ mov r1, #0x22
+ lsl r1, r1, #4
+ tst r0, r1
+ beq _02242E24
+ ldr r2, _02242FAC ; =0x00002D67
+ mov r0, #0
+ add r3, r7, r5
+ add r1, r2, #0
+ strb r0, [r3, r2]
+ add r2, #0x51
+ add r1, #0x45
+ add r2, r7, r2
+ str r0, [r3, r1]
+ add r1, r2, r5
+ str r1, [sp, #8]
+ strh r0, [r2, r5]
+ b _02242E58
+_02242E24:
+ add r0, r4, #0
+ mov r1, #0xa
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02242FAC ; =0x00002D67
+ add r2, r7, r5
+ strb r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #0x9f
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02242FB0 ; =0x00002DAC
+ add r2, r7, r5
+ str r0, [r2, r1]
+ add r1, #0xc
+ add r6, r7, r1
+ add r0, r6, r5
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #6
+ mov r2, #0
+ bl GetMonData
+ strh r0, [r6, r5]
+_02242E58:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ add r6, r0, #0
+ mul r6, r1
+ add r0, r4, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02242FB4 ; =0x00002D74
+ add r2, r7, r6
+ strb r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #9
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02242FB8 ; =0x00002D75
+ add r2, r7, r6
+ strb r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02242FBC ; =0x00002D8C
+ add r2, r7, r6
+ str r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #0xa3
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02242FC0 ; =0x00002D90
+ add r2, r7, r6
+ str r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #8
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02242FC4 ; =0x00002DA4
+ add r2, r7, r6
+ str r0, [r2, r1]
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl GetMonData
+ ldr r1, _02242FC8 ; =0x00002DA8
+ add r2, r7, r6
+ str r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #7
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _02242FCC ; =0x00002DB4
+ add r2, r7, r6
+ str r0, [r2, r1]
+ add r0, r4, #0
+ mov r1, #0x9c
+ mov r2, #0
+ bl GetMonData
+ ldr r1, [sp, #0x1c]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x1c
+ ldrb r1, [r1, r5]
+ mov r2, #0xf0
+ lsr r0, r0, #0x18
+ bic r1, r2
+ orr r1, r0
+ ldr r0, [sp, #0x1c]
+ mov r2, #0
+ strb r1, [r0, r5]
+ add r0, r4, #0
+ mov r1, #0x9a
+ bl GetMonData
+ ldr r1, _02242FD0 ; =0x00002DBF
+ add r2, r7, r6
+ strb r0, [r2, r1]
+ mov r0, #5
+ bl FUN_02087A6C
+ mov r1, #0
+ mov r2, #5
+ str r0, [sp, #0x20]
+ bl FUN_02087A98
+ ldr r1, [sp, #0x18]
+ ldr r0, [sp, #0x20]
+ ldrh r1, [r1, r5]
+ bl FUN_02087B78
+ ldr r1, _02242FD4 ; =0x00002D60
+ add r2, r7, r6
+ str r0, [r2, r1]
+ ldr r0, [sp, #0x20]
+ bl FUN_02087B0C
+ ldr r0, [sp, #0x20]
+ bl FUN_02087A84
+ ldr r2, _02242FD8 ; =0x00002D76
+ add r0, r4, #0
+ add r2, r7, r2
+ mov r1, #0x74
+ add r2, r2, r6
+ bl GetMonData
+ ldr r2, _02242FDC ; =0x00002D94
+ add r0, r4, #0
+ add r2, r7, r2
+ mov r1, #0x8f
+ add r2, r2, r6
+ bl GetMonData
+ ldr r0, _02242FE0 ; =0x00002DBC
+ b _02242FE4
+ .align 2, 0
+_02242F4C: .word 0x00002D42
+_02242F50: .word 0x00002D44
+_02242F54: .word 0x00002D46
+_02242F58: .word 0x00002D48
+_02242F5C: .word 0x00002D4A
+_02242F60: .word 0x00002D4C
+_02242F64: .word 0x00002D6C
+_02242F68: .word 0x00002D70
+_02242F6C: .word 0xFFFFFC1F
+_02242F70: .word 0xFFFF83FF
+_02242F74: .word 0xFFF07FFF
+_02242F78: .word 0xFE0FFFFF
+_02242F7C: .word 0xC1FFFFFF
+_02242F80: .word 0xBFFFFFFF
+_02242F84: .word 0x7FFFFFFF
+_02242F88: .word 0x0000213C
+_02242F8C: .word 0x00002D58
+_02242F90: .word 0x00002D68
+_02242F94: .word 0xFFFFFEFF
+_02242F98: .word 0xFFFFFDFF
+_02242F9C: .word 0xFFFFFBFF
+_02242FA0: .word 0x00002D64
+_02242FA4: .word 0x00002D65
+_02242FA8: .word 0x00002D66
+_02242FAC: .word 0x00002D67
+_02242FB0: .word 0x00002DAC
+_02242FB4: .word 0x00002D74
+_02242FB8: .word 0x00002D75
+_02242FBC: .word 0x00002D8C
+_02242FC0: .word 0x00002D90
+_02242FC4: .word 0x00002DA4
+_02242FC8: .word 0x00002DA8
+_02242FCC: .word 0x00002DB4
+_02242FD0: .word 0x00002DBF
+_02242FD4: .word 0x00002D60
+_02242FD8: .word 0x00002D76
+_02242FDC: .word 0x00002D94
+_02242FE0: .word 0x00002DBC
+_02242FE4:
+ mov r2, #0
+ add r1, r7, r6
+ strb r2, [r1, r0]
+ add r0, r0, #1
+ strb r2, [r1, r0]
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ bl MOD11_02230270
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ add r1, r7, r0
+ ldr r0, _02243048 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ bl MaskOfFlagNo
+ lsl r1, r4, #3
+ add r2, r7, r1
+ mov r1, #0x71
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ lsl r1, r1, #3
+ lsr r1, r1, #0x1a
+ tst r0, r1
+ beq _0224302C
+ ldr r0, [sp, #8]
+ mov r1, #0
+ strh r1, [r0]
+ ldr r0, _0224304C ; =0x00002DCC
+ add sp, #0x24
+ add r2, r7, r0
+ ldr r1, [r2, r5]
+ ldr r0, _02243050 ; =0xFFBFFFFF
+ and r0, r1
+ str r0, [r2, r5]
+ pop {r4, r5, r6, r7, pc}
+_0224302C:
+ ldr r0, [sp, #8]
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _02243042
+ ldr r0, _0224304C ; =0x00002DCC
+ add r2, r7, r0
+ mov r0, #1
+ ldr r1, [r2, r5]
+ lsl r0, r0, #0x16
+ orr r0, r1
+ str r0, [r2, r5]
+_02243042:
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02243048: .word 0x0000219C
+_0224304C: .word 0x00002DCC
+_02243050: .word 0xFFBFFFFF
+
+ thumb_func_start MOD11_02243054
+MOD11_02243054: ; 0x02243054
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r2, #0
+ str r1, [sp]
+ add r1, r5, #0
+ add r2, r3, #0
+ bl MOD11_02230014
+ mov r1, #0xc0
+ mul r1, r5
+ str r1, [sp, #4]
+ mov r1, #0xa4
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ add r2, r2, r1
+ ldr r1, _022431A8 ; =0x00002D42
+ strh r0, [r2, r1]
+ add r0, r6, #0
+ mov r1, #0xa5
+ mov r2, #0
+ bl GetMonData
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ add r2, r2, r1
+ ldr r1, _022431AC ; =0x00002D44
+ strh r0, [r2, r1]
+ add r0, r6, #0
+ mov r1, #0xa6
+ mov r2, #0
+ bl GetMonData
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ add r2, r2, r1
+ ldr r1, _022431B0 ; =0x00002D46
+ strh r0, [r2, r1]
+ add r0, r6, #0
+ mov r1, #0xa7
+ mov r2, #0
+ bl GetMonData
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ add r2, r2, r1
+ ldr r1, _022431B4 ; =0x00002D48
+ strh r0, [r2, r1]
+ add r0, r6, #0
+ mov r1, #0xa8
+ mov r2, #0
+ bl GetMonData
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ add r2, r2, r1
+ ldr r1, _022431B8 ; =0x00002D4A
+ strh r0, [r2, r1]
+ add r0, r6, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl GetMonData
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ add r2, r2, r1
+ ldr r1, _022431BC ; =0x00002D74
+ strb r0, [r2, r1]
+ add r0, r6, #0
+ mov r1, #9
+ mov r2, #0
+ bl GetMonData
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ add r2, r2, r1
+ ldr r1, _022431C0 ; =0x00002D75
+ strb r0, [r2, r1]
+ add r0, r6, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ add r2, r2, r1
+ ldr r1, _022431C4 ; =0x00002D8C
+ str r0, [r2, r1]
+ add r0, r6, #0
+ mov r1, #0xa3
+ mov r2, #0
+ bl GetMonData
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ add r2, r2, r1
+ ldr r1, _022431C8 ; =0x00002D90
+ str r0, [r2, r1]
+ add r0, r1, #0
+ add r0, #0x20
+ ldr r2, [r2, r0]
+ mov r0, #2
+ lsl r0, r0, #0x14
+ tst r0, r2
+ bne _022431A4
+ mov r0, #0xc0
+ mul r0, r5
+ ldr r2, [sp]
+ str r0, [sp, #8]
+ add r7, r2, r0
+ add r1, #0x3c
+ add r0, r2, #0
+ add r0, r0, r1
+ mov r4, #0
+ add r5, r7, #0
+ str r0, [sp, #0xc]
+_02243142:
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ ldr r2, [sp, #0xc]
+ ldr r1, [sp, #8]
+ ldr r1, [r2, r1]
+ lsl r1, r1, #0x1a
+ lsr r1, r1, #0x1c
+ tst r0, r1
+ bne _02243186
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x36
+ mov r2, #0
+ bl GetMonData
+ ldr r1, _022431CC ; =0x00002D4C
+ mov r2, #0
+ strh r0, [r7, r1]
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x3a
+ bl GetMonData
+ ldr r1, _022431D0 ; =0x00002D6C
+ mov r2, #0
+ strb r0, [r5, r1]
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x3e
+ bl GetMonData
+ ldr r1, _022431D4 ; =0x00002D70
+ strb r0, [r5, r1]
+_02243186:
+ add r4, r4, #1
+ add r7, r7, #2
+ add r5, r5, #1
+ cmp r4, #4
+ blt _02243142
+ add r0, r6, #0
+ mov r1, #8
+ mov r2, #0
+ bl GetMonData
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ add r2, r2, r1
+ ldr r1, _022431D8 ; =0x00002DA4
+ str r0, [r2, r1]
+_022431A4:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022431A8: .word 0x00002D42
+_022431AC: .word 0x00002D44
+_022431B0: .word 0x00002D46
+_022431B4: .word 0x00002D48
+_022431B8: .word 0x00002D4A
+_022431BC: .word 0x00002D74
+_022431C0: .word 0x00002D75
+_022431C4: .word 0x00002D8C
+_022431C8: .word 0x00002D90
+_022431CC: .word 0x00002D4C
+_022431D0: .word 0x00002D6C
+_022431D4: .word 0x00002D70
+_022431D8: .word 0x00002DA4
+
+ thumb_func_start MOD11_022431DC
+MOD11_022431DC: ; 0x022431DC
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r2, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r1, r6, #0
+ bl GetNarcMemberSizeByIdPair
+ mov r1, #0x19
+ lsl r1, r1, #6
+ cmp r0, r1
+ blo _022431F8
+ bl ErrorHandling
+_022431F8:
+ add r0, r5, #0
+ add r0, #0xac
+ str r4, [r0]
+ add r0, r5, #0
+ add r0, #0xb0
+ str r6, [r0]
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0xb4
+ str r1, [r0]
+ mov r0, #0x27
+ lsl r0, r0, #8
+ add r0, r5, r0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl ReadWholeNarcMemberByIdPair
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0224321C
+MOD11_0224321C: ; 0x0224321C
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r2, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r1, r6, #0
+ bl GetNarcMemberSizeByIdPair
+ mov r1, #0x19
+ lsl r1, r1, #6
+ cmp r0, r1
+ blo _02243238
+ bl ErrorHandling
+_02243238:
+ add r0, r5, #0
+ add r0, #0xb8
+ ldr r0, [r0]
+ cmp r0, #4
+ blt _02243246
+ bl ErrorHandling
+_02243246:
+ add r1, r5, #0
+ add r1, #0xb8
+ ldr r1, [r1]
+ add r0, r5, #0
+ add r0, #0xac
+ lsl r1, r1, #2
+ add r1, r5, r1
+ ldr r0, [r0]
+ add r1, #0xbc
+ str r0, [r1]
+ add r1, r5, #0
+ add r1, #0xb8
+ ldr r1, [r1]
+ add r0, r5, #0
+ add r0, #0xb0
+ lsl r1, r1, #2
+ add r1, r5, r1
+ ldr r0, [r0]
+ add r1, #0xcc
+ str r0, [r1]
+ add r1, r5, #0
+ add r1, #0xb8
+ ldr r1, [r1]
+ add r0, r5, #0
+ add r0, #0xb4
+ lsl r1, r1, #2
+ add r1, r5, r1
+ ldr r0, [r0]
+ add r1, #0xdc
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0xb8
+ ldr r0, [r0]
+ add r2, r6, #0
+ add r1, r0, #1
+ add r0, r5, #0
+ add r0, #0xb8
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0xac
+ str r4, [r0]
+ add r0, r5, #0
+ add r0, #0xb0
+ str r6, [r0]
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0xb4
+ str r1, [r0]
+ mov r0, #0x27
+ lsl r0, r0, #8
+ add r0, r5, r0
+ add r1, r4, #0
+ bl ReadWholeNarcMemberByIdPair
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_022432B4
+MOD11_022432B4: ; 0x022432B4
+ push {r4, lr}
+ add r4, r0, #0
+ add r1, r4, #0
+ add r1, #0xb8
+ ldr r1, [r1]
+ cmp r1, #0
+ beq _022432FE
+ add r1, r4, #0
+ add r1, #0xb8
+ ldr r1, [r1]
+ sub r2, r1, #1
+ add r1, r4, #0
+ add r1, #0xb8
+ str r2, [r1]
+ add r1, r4, #0
+ add r1, #0xb8
+ ldr r1, [r1]
+ lsl r2, r1, #2
+ add r1, r4, r2
+ add r2, r4, r2
+ add r1, #0xbc
+ add r2, #0xcc
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl MOD11_022431DC
+ add r0, r4, #0
+ add r0, #0xb8
+ ldr r0, [r0]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ add r0, #0xdc
+ ldr r0, [r0]
+ add r4, #0xb4
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+_022432FE:
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02243304
+MOD11_02243304: ; 0x02243304
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ lsl r0, r1, #6
+ lsl r6, r2, #4
+ add r1, r4, r0
+ add r5, r1, r6
+ mov r1, #0x22
+ add r7, r3, #0
+ mov r3, #0
+ lsl r1, r1, #8
+_02243318:
+ ldrb r2, [r5, r1]
+ cmp r2, #0
+ bne _0224332C
+ add r0, r4, r0
+ add r0, r0, r6
+ add r1, r0, r3
+ mov r0, #0x22
+ lsl r0, r0, #8
+ strb r7, [r1, r0]
+ b _02243334
+_0224332C:
+ add r3, r3, #1
+ add r5, r5, #1
+ cmp r3, #0x10
+ blt _02243318
+_02243334:
+ cmp r3, #0x10
+ blt _0224333C
+ bl ErrorHandling
+_0224333C:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02243340
+MOD11_02243340: ; 0x02243340
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r1, #0
+ str r2, [sp]
+ add r4, r3, #0
+ bne _02243350
+ bl ErrorHandling
+_02243350:
+ ldr r0, [sp]
+ lsl r6, r5, #6
+ lsl r5, r0, #4
+ add r0, r7, r6
+ add r3, r0, r5
+ mov r0, #0x22
+ mov r2, #0
+ lsl r0, r0, #8
+_02243360:
+ ldrb r1, [r3, r0]
+ cmp r4, r1
+ bne _02243376
+ add r1, r7, r6
+ add r1, r1, r5
+ add r3, r1, r2
+ mov r1, #0x22
+ mov r0, #0
+ lsl r1, r1, #8
+ strb r0, [r3, r1]
+ b _0224337E
+_02243376:
+ add r2, r2, #1
+ add r3, r3, #1
+ cmp r2, #0x10
+ blt _02243360
+_0224337E:
+ cmp r2, #0x10
+ blt _02243386
+ bl ErrorHandling
+_02243386:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02243388
+MOD11_02243388: ; 0x02243388
+ push {r3, r4, r5, r6, r7, lr}
+ mov r2, #0
+ mov r4, #0x22
+ mov lr, r0
+ mov ip, r2
+ add r7, r0, #0
+ add r6, r2, #0
+ lsl r4, r4, #8
+_02243398:
+ mov r0, #0
+ add r3, r7, #0
+_0224339C:
+ add r1, r6, #0
+_0224339E:
+ add r5, r3, r1
+ ldrb r5, [r5, r4]
+ add r1, r1, #1
+ add r2, r2, r5
+ cmp r1, #0x10
+ blt _0224339E
+ add r0, r0, #1
+ add r3, #0x10
+ cmp r0, #4
+ blt _0224339C
+ mov r0, ip
+ add r0, r0, #1
+ add r7, #0x40
+ mov ip, r0
+ cmp r0, #4
+ blt _02243398
+ cmp r2, #0
+ bne _022433CA
+ ldr r1, _022433D8 ; =0x00003148
+ mov r3, #0
+ mov r0, lr
+ str r3, [r0, r1]
+_022433CA:
+ cmp r2, #0
+ bne _022433D2
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_022433D2:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022433D8: .word 0x00003148
+
+ thumb_func_start MOD11_022433DC
+MOD11_022433DC: ; 0x022433DC
+ push {r3, lr}
+ ldr r1, _022433F8 ; =0x00003148
+ ldr r2, [r0, r1]
+ add r2, r2, #1
+ str r2, [r0, r1]
+ ldr r1, [r0, r1]
+ ldr r0, _022433FC ; =0x00000708
+ cmp r1, r0
+ ble _022433F4
+ mov r0, #1
+ bl FUN_020336A0
+_022433F4:
+ pop {r3, pc}
+ nop
+_022433F8: .word 0x00003148
+_022433FC: .word 0x00000708
+
+ thumb_func_start MOD11_02243400
+MOD11_02243400: ; 0x02243400
+ push {r3, r4}
+ lsl r1, r1, #8
+ add r4, r0, r1
+ mov r3, #0
+ mov r0, #0x23
+ mov r1, #1
+ add r2, r3, #0
+ lsl r0, r0, #8
+ lsl r1, r1, #8
+_02243412:
+ add r3, r3, #1
+ strb r2, [r4, r0]
+ add r4, r4, #1
+ cmp r3, r1
+ blt _02243412
+ pop {r3, r4}
+ bx lr
+
+ thumb_func_start MOD11_02243420
+MOD11_02243420: ; 0x02243420
+ push {r4, r5, r6, lr}
+ mov r4, #0xb5
+ lsl r4, r4, #6
+ add r5, r0, r4
+ mov r6, #0xc0
+ add r4, r1, #0
+ mul r4, r6
+ add r4, r5, r4
+ cmp r2, #0x64
+ bls _02243436
+ b _02243794
+_02243436:
+ add r5, r2, r2
+ add r5, pc
+ ldrh r5, [r5, #6]
+ lsl r5, r5, #0x10
+ asr r5, r5, #0x10
+ add pc, r5
+_02243442: ; jump table
+ .short _0224350C - _02243442 - 2 ; case 0
+ .short _02243510 - _02243442 - 2 ; case 1
+ .short _02243514 - _02243442 - 2 ; case 2
+ .short _02243518 - _02243442 - 2 ; case 3
+ .short _0224351C - _02243442 - 2 ; case 4
+ .short _02243520 - _02243442 - 2 ; case 5
+ .short _02243524 - _02243442 - 2 ; case 6
+ .short _02243524 - _02243442 - 2 ; case 7
+ .short _02243524 - _02243442 - 2 ; case 8
+ .short _02243524 - _02243442 - 2 ; case 9
+ .short _0224352E - _02243442 - 2 ; case 10
+ .short _02243536 - _02243442 - 2 ; case 11
+ .short _0224353E - _02243442 - 2 ; case 12
+ .short _02243546 - _02243442 - 2 ; case 13
+ .short _0224354E - _02243442 - 2 ; case 14
+ .short _02243556 - _02243442 - 2 ; case 15
+ .short _0224355E - _02243442 - 2 ; case 16
+ .short _02243566 - _02243442 - 2 ; case 17
+ .short _0224356C - _02243442 - 2 ; case 18
+ .short _0224356C - _02243442 - 2 ; case 19
+ .short _0224356C - _02243442 - 2 ; case 20
+ .short _0224356C - _02243442 - 2 ; case 21
+ .short _0224356C - _02243442 - 2 ; case 22
+ .short _0224356C - _02243442 - 2 ; case 23
+ .short _0224356C - _02243442 - 2 ; case 24
+ .short _0224356C - _02243442 - 2 ; case 25
+ .short _02243576 - _02243442 - 2 ; case 26
+ .short _0224357C - _02243442 - 2 ; case 27
+ .short _0224357C - _02243442 - 2 ; case 28
+ .short _02243582 - _02243442 - 2 ; case 29
+ .short _0224358C - _02243442 - 2 ; case 30
+ .short _02243596 - _02243442 - 2 ; case 31
+ .short _02243596 - _02243442 - 2 ; case 32
+ .short _02243596 - _02243442 - 2 ; case 33
+ .short _02243596 - _02243442 - 2 ; case 34
+ .short _022435A0 - _02243442 - 2 ; case 35
+ .short _022435A0 - _02243442 - 2 ; case 36
+ .short _022435A0 - _02243442 - 2 ; case 37
+ .short _022435A0 - _02243442 - 2 ; case 38
+ .short _022435AA - _02243442 - 2 ; case 39
+ .short _022435AA - _02243442 - 2 ; case 40
+ .short _022435AA - _02243442 - 2 ; case 41
+ .short _022435AA - _02243442 - 2 ; case 42
+ .short _022435BE - _02243442 - 2 ; case 43
+ .short _022435C4 - _02243442 - 2 ; case 44
+ .short _022435CA - _02243442 - 2 ; case 45
+ .short _022435DC - _02243442 - 2 ; case 46
+ .short _022435E8 - _02243442 - 2 ; case 47
+ .short _022435EC - _02243442 - 2 ; case 48
+ .short _022435F0 - _02243442 - 2 ; case 49
+ .short _02243606 - _02243442 - 2 ; case 50
+ .short _0224360A - _02243442 - 2 ; case 51
+ .short _0224360E - _02243442 - 2 ; case 52
+ .short _02243612 - _02243442 - 2 ; case 53
+ .short _02243616 - _02243442 - 2 ; case 54
+ .short _0224361A - _02243442 - 2 ; case 55
+ .short _02243620 - _02243442 - 2 ; case 56
+ .short _02243626 - _02243442 - 2 ; case 57
+ .short _0224362C - _02243442 - 2 ; case 58
+ .short _02243636 - _02243442 - 2 ; case 59
+ .short _0224363C - _02243442 - 2 ; case 60
+ .short _02243642 - _02243442 - 2 ; case 61
+ .short _0224364C - _02243442 - 2 ; case 62
+ .short _02243656 - _02243442 - 2 ; case 63
+ .short _02243660 - _02243442 - 2 ; case 64
+ .short _0224366A - _02243442 - 2 ; case 65
+ .short _02243674 - _02243442 - 2 ; case 66
+ .short _0224367E - _02243442 - 2 ; case 67
+ .short _02243688 - _02243442 - 2 ; case 68
+ .short _02243692 - _02243442 - 2 ; case 69
+ .short _0224369C - _02243442 - 2 ; case 70
+ .short _022436A6 - _02243442 - 2 ; case 71
+ .short _022436B0 - _02243442 - 2 ; case 72
+ .short _022436BA - _02243442 - 2 ; case 73
+ .short _022436C2 - _02243442 - 2 ; case 74
+ .short _022436CC - _02243442 - 2 ; case 75
+ .short _022436D6 - _02243442 - 2 ; case 76
+ .short _022436E0 - _02243442 - 2 ; case 77
+ .short _022436EA - _02243442 - 2 ; case 78
+ .short _022436F4 - _02243442 - 2 ; case 79
+ .short _022436FE - _02243442 - 2 ; case 80
+ .short _02243708 - _02243442 - 2 ; case 81
+ .short _02243712 - _02243442 - 2 ; case 82
+ .short _0224371C - _02243442 - 2 ; case 83
+ .short _02243726 - _02243442 - 2 ; case 84
+ .short _02243730 - _02243442 - 2 ; case 85
+ .short _0224373A - _02243442 - 2 ; case 86
+ .short _02243744 - _02243442 - 2 ; case 87
+ .short _0224374A - _02243442 - 2 ; case 88
+ .short _02243750 - _02243442 - 2 ; case 89
+ .short _02243756 - _02243442 - 2 ; case 90
+ .short _0224375C - _02243442 - 2 ; case 91
+ .short _02243762 - _02243442 - 2 ; case 92
+ .short _02243768 - _02243442 - 2 ; case 93
+ .short _0224376E - _02243442 - 2 ; case 94
+ .short _02243774 - _02243442 - 2 ; case 95
+ .short _0224377A - _02243442 - 2 ; case 96
+ .short _02243782 - _02243442 - 2 ; case 97
+ .short _02243794 - _02243442 - 2 ; case 98
+ .short _02243794 - _02243442 - 2 ; case 99
+ .short _0224378A - _02243442 - 2 ; case 100
+_0224350C:
+ ldrh r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243510:
+ ldrh r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_02243514:
+ ldrh r0, [r4, #4]
+ pop {r4, r5, r6, pc}
+_02243518:
+ ldrh r0, [r4, #6]
+ pop {r4, r5, r6, pc}
+_0224351C:
+ ldrh r0, [r4, #8]
+ pop {r4, r5, r6, pc}
+_02243520:
+ ldrh r0, [r4, #0xa]
+ pop {r4, r5, r6, pc}
+_02243524:
+ sub r0, r2, #6
+ lsl r0, r0, #1
+ add r0, r4, r0
+ ldrh r0, [r0, #0xc]
+ pop {r4, r5, r6, pc}
+_0224352E:
+ ldr r0, [r4, #0x14]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1b
+ pop {r4, r5, r6, pc}
+_02243536:
+ ldr r0, [r4, #0x14]
+ lsl r0, r0, #0x16
+ lsr r0, r0, #0x1b
+ pop {r4, r5, r6, pc}
+_0224353E:
+ ldr r0, [r4, #0x14]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x1b
+ pop {r4, r5, r6, pc}
+_02243546:
+ ldr r0, [r4, #0x14]
+ lsl r0, r0, #0xc
+ lsr r0, r0, #0x1b
+ pop {r4, r5, r6, pc}
+_0224354E:
+ ldr r0, [r4, #0x14]
+ lsl r0, r0, #7
+ lsr r0, r0, #0x1b
+ pop {r4, r5, r6, pc}
+_02243556:
+ ldr r0, [r4, #0x14]
+ lsl r0, r0, #2
+ lsr r0, r0, #0x1b
+ pop {r4, r5, r6, pc}
+_0224355E:
+ ldr r0, [r4, #0x14]
+ lsl r0, r0, #1
+ lsr r0, r0, #0x1f
+ pop {r4, r5, r6, pc}
+_02243566:
+ ldr r0, [r4, #0x14]
+ lsr r0, r0, #0x1f
+ pop {r4, r5, r6, pc}
+_0224356C:
+ sub r2, #0x12
+ add r1, r4, r2
+ mov r0, #0x18
+ ldrsb r0, [r1, r0]
+ pop {r4, r5, r6, pc}
+_02243576:
+ add r4, #0x27
+ ldrb r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224357C:
+ bl MOD11_0224C740
+ pop {r4, r5, r6, pc}
+_02243582:
+ add r4, #0x7e
+ ldrb r0, [r4]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ pop {r4, r5, r6, pc}
+_0224358C:
+ add r4, #0x26
+ ldrb r0, [r4]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1f
+ pop {r4, r5, r6, pc}
+_02243596:
+ sub r2, #0x1f
+ add r0, r4, r2
+ add r0, #0x2c
+ ldrb r0, [r0]
+ pop {r4, r5, r6, pc}
+_022435A0:
+ sub r2, #0x23
+ add r0, r4, r2
+ add r0, #0x30
+ ldrb r0, [r0]
+ pop {r4, r5, r6, pc}
+_022435AA:
+ sub r2, #0x27
+ lsl r0, r2, #1
+ add r1, r4, r2
+ add r0, r4, r0
+ add r1, #0x30
+ ldrh r0, [r0, #0xc]
+ ldrb r1, [r1]
+ bl WazaGetMaxPp
+ pop {r4, r5, r6, pc}
+_022435BE:
+ add r4, #0x34
+ ldrb r0, [r4]
+ pop {r4, r5, r6, pc}
+_022435C4:
+ add r4, #0x35
+ ldrb r0, [r4]
+ pop {r4, r5, r6, pc}
+_022435CA:
+ mov r1, #0
+_022435CC:
+ ldrh r0, [r4, #0x36]
+ add r1, r1, #1
+ add r4, r4, #2
+ strh r0, [r3]
+ add r3, r3, #2
+ cmp r1, #0xb
+ blt _022435CC
+ b _02243798
+_022435DC:
+ add r4, #0x36
+ add r0, r3, #0
+ add r1, r4, #0
+ bl FUN_02021E28
+ b _02243798
+_022435E8:
+ ldr r0, [r4, #0x4c]
+ pop {r4, r5, r6, pc}
+_022435EC:
+ ldr r0, [r4, #0x50]
+ pop {r4, r5, r6, pc}
+_022435F0:
+ mov r1, #0
+_022435F2:
+ add r0, r4, #0
+ add r0, #0x54
+ ldrh r0, [r0]
+ add r1, r1, #1
+ add r4, r4, #2
+ strh r0, [r3]
+ add r3, r3, #2
+ cmp r1, #0xb
+ blt _022435F2
+ b _02243798
+_02243606:
+ ldr r0, [r4, #0x64]
+ pop {r4, r5, r6, pc}
+_0224360A:
+ ldr r0, [r4, #0x68]
+ pop {r4, r5, r6, pc}
+_0224360E:
+ ldr r0, [r4, #0x6c]
+ pop {r4, r5, r6, pc}
+_02243612:
+ ldr r0, [r4, #0x70]
+ pop {r4, r5, r6, pc}
+_02243616:
+ ldr r0, [r4, #0x74]
+ pop {r4, r5, r6, pc}
+_0224361A:
+ add r4, #0x78
+ ldrh r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243620:
+ add r4, #0x7c
+ ldrb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243626:
+ add r4, #0x7d
+ ldrb r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224362C:
+ add r4, #0x7e
+ ldrb r0, [r4]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1c
+ pop {r4, r5, r6, pc}
+_02243636:
+ add r4, #0x80
+ ldr r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224363C:
+ add r4, #0x84
+ ldr r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243642:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_0224364C:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_02243656:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1e
+ pop {r4, r5, r6, pc}
+_02243660:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_0224366A:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #0x13
+ lsr r0, r0, #0x1e
+ pop {r4, r5, r6, pc}
+_02243674:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x1e
+ pop {r4, r5, r6, pc}
+_0224367E:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #0xe
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_02243688:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #0xb
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_02243692:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #8
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_0224369C:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #5
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_022436A6:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #2
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_022436B0:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsl r0, r0, #1
+ lsr r0, r0, #0x1f
+ pop {r4, r5, r6, pc}
+_022436BA:
+ add r4, #0x88
+ ldr r0, [r4]
+ lsr r0, r0, #0x1f
+ pop {r4, r5, r6, pc}
+_022436C2:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1e
+ pop {r4, r5, r6, pc}
+_022436CC:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1c
+ pop {r4, r5, r6, pc}
+_022436D6:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1e
+ pop {r4, r5, r6, pc}
+_022436E0:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #0x16
+ lsr r0, r0, #0x1e
+ pop {r4, r5, r6, pc}
+_022436EA:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #0x13
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_022436F4:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_022436FE:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #0xd
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_02243708:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #0xa
+ lsr r0, r0, #0x1d
+ pop {r4, r5, r6, pc}
+_02243712:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #9
+ lsr r0, r0, #0x1f
+ pop {r4, r5, r6, pc}
+_0224371C:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #5
+ lsr r0, r0, #0x1c
+ pop {r4, r5, r6, pc}
+_02243726:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #4
+ lsr r0, r0, #0x1f
+ pop {r4, r5, r6, pc}
+_02243730:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #3
+ lsr r0, r0, #0x1f
+ pop {r4, r5, r6, pc}
+_0224373A:
+ add r4, #0x8c
+ ldr r0, [r4]
+ lsl r0, r0, #2
+ lsr r0, r0, #0x1f
+ pop {r4, r5, r6, pc}
+_02243744:
+ add r4, #0x90
+ ldr r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224374A:
+ add r4, #0x94
+ ldr r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243750:
+ add r4, #0x98
+ ldr r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243756:
+ add r4, #0xa0
+ ldr r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224375C:
+ add r4, #0xa4
+ ldr r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243762:
+ add r4, #0xa8
+ ldrh r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243768:
+ add r4, #0xac
+ ldrh r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224376E:
+ add r4, #0xaa
+ ldrh r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243774:
+ add r4, #0xbc
+ ldr r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224377A:
+ ldr r0, [r4, #0x28]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x1f
+ pop {r4, r5, r6, pc}
+_02243782:
+ ldr r0, [r4, #0x28]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ pop {r4, r5, r6, pc}
+_0224378A:
+ add r6, #0x78
+ ldr r2, [r0, r6]
+ bl MOD11_02243420
+ pop {r4, r5, r6, pc}
+_02243794:
+ bl ErrorHandling
+_02243798:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0224379C
+MOD11_0224379C: ; 0x0224379C
+ push {r4, r5, r6, lr}
+ add r5, r2, #0
+ mov r2, #0xb5
+ lsl r2, r2, #6
+ add r4, r0, r2
+ mov r6, #0xc0
+ add r2, r1, #0
+ mul r2, r6
+ add r2, r4, r2
+ cmp r5, #0x64
+ bls _022437B4
+ b _02243D9E
+_022437B4:
+ add r4, r5, r5
+ add r4, pc
+ ldrh r4, [r4, #6]
+ lsl r4, r4, #0x10
+ asr r4, r4, #0x10
+ add pc, r4
+_022437C0: ; jump table
+ .short _0224388A - _022437C0 - 2 ; case 0
+ .short _02243890 - _022437C0 - 2 ; case 1
+ .short _02243896 - _022437C0 - 2 ; case 2
+ .short _0224389C - _022437C0 - 2 ; case 3
+ .short _022438A2 - _022437C0 - 2 ; case 4
+ .short _022438A8 - _022437C0 - 2 ; case 5
+ .short _022438AE - _022437C0 - 2 ; case 6
+ .short _022438AE - _022437C0 - 2 ; case 7
+ .short _022438AE - _022437C0 - 2 ; case 8
+ .short _022438AE - _022437C0 - 2 ; case 9
+ .short _022438BA - _022437C0 - 2 ; case 10
+ .short _022438CC - _022437C0 - 2 ; case 11
+ .short _022438DE - _022437C0 - 2 ; case 12
+ .short _022438F0 - _022437C0 - 2 ; case 13
+ .short _02243902 - _022437C0 - 2 ; case 14
+ .short _02243914 - _022437C0 - 2 ; case 15
+ .short _02243926 - _022437C0 - 2 ; case 16
+ .short _02243938 - _022437C0 - 2 ; case 17
+ .short _02243948 - _022437C0 - 2 ; case 18
+ .short _02243948 - _022437C0 - 2 ; case 19
+ .short _02243948 - _022437C0 - 2 ; case 20
+ .short _02243948 - _022437C0 - 2 ; case 21
+ .short _02243948 - _022437C0 - 2 ; case 22
+ .short _02243948 - _022437C0 - 2 ; case 23
+ .short _02243948 - _022437C0 - 2 ; case 24
+ .short _02243948 - _022437C0 - 2 ; case 25
+ .short _02243954 - _022437C0 - 2 ; case 26
+ .short _0224395C - _022437C0 - 2 ; case 27
+ .short _02243964 - _022437C0 - 2 ; case 28
+ .short _0224396C - _022437C0 - 2 ; case 29
+ .short _02243984 - _022437C0 - 2 ; case 30
+ .short _0224399C - _022437C0 - 2 ; case 31
+ .short _0224399C - _022437C0 - 2 ; case 32
+ .short _0224399C - _022437C0 - 2 ; case 33
+ .short _0224399C - _022437C0 - 2 ; case 34
+ .short _022439A8 - _022437C0 - 2 ; case 35
+ .short _022439A8 - _022437C0 - 2 ; case 36
+ .short _022439A8 - _022437C0 - 2 ; case 37
+ .short _022439A8 - _022437C0 - 2 ; case 38
+ .short _022439B4 - _022437C0 - 2 ; case 39
+ .short _022439B4 - _022437C0 - 2 ; case 40
+ .short _022439B4 - _022437C0 - 2 ; case 41
+ .short _022439B4 - _022437C0 - 2 ; case 42
+ .short _022439BA - _022437C0 - 2 ; case 43
+ .short _022439C2 - _022437C0 - 2 ; case 44
+ .short _022439CA - _022437C0 - 2 ; case 45
+ .short _02243D9E - _022437C0 - 2 ; case 46
+ .short _022439DC - _022437C0 - 2 ; case 47
+ .short _022439E4 - _022437C0 - 2 ; case 48
+ .short _022439EA - _022437C0 - 2 ; case 49
+ .short _02243A00 - _022437C0 - 2 ; case 50
+ .short _02243A06 - _022437C0 - 2 ; case 51
+ .short _02243A0C - _022437C0 - 2 ; case 52
+ .short _02243A12 - _022437C0 - 2 ; case 53
+ .short _02243A18 - _022437C0 - 2 ; case 54
+ .short _02243A1E - _022437C0 - 2 ; case 55
+ .short _02243A26 - _022437C0 - 2 ; case 56
+ .short _02243A2E - _022437C0 - 2 ; case 57
+ .short _02243A36 - _022437C0 - 2 ; case 58
+ .short _02243A4E - _022437C0 - 2 ; case 59
+ .short _02243A56 - _022437C0 - 2 ; case 60
+ .short _02243A5E - _022437C0 - 2 ; case 61
+ .short _02243A76 - _022437C0 - 2 ; case 62
+ .short _02243A8E - _022437C0 - 2 ; case 63
+ .short _02243AA6 - _022437C0 - 2 ; case 64
+ .short _02243ABE - _022437C0 - 2 ; case 65
+ .short _02243AD6 - _022437C0 - 2 ; case 66
+ .short _02243AEE - _022437C0 - 2 ; case 67
+ .short _02243B06 - _022437C0 - 2 ; case 68
+ .short _02243B1E - _022437C0 - 2 ; case 69
+ .short _02243B36 - _022437C0 - 2 ; case 70
+ .short _02243B4E - _022437C0 - 2 ; case 71
+ .short _02243B66 - _022437C0 - 2 ; case 72
+ .short _02243B7E - _022437C0 - 2 ; case 73
+ .short _02243B94 - _022437C0 - 2 ; case 74
+ .short _02243BAC - _022437C0 - 2 ; case 75
+ .short _02243BC4 - _022437C0 - 2 ; case 76
+ .short _02243BDC - _022437C0 - 2 ; case 77
+ .short _02243BF4 - _022437C0 - 2 ; case 78
+ .short _02243C0C - _022437C0 - 2 ; case 79
+ .short _02243C24 - _022437C0 - 2 ; case 80
+ .short _02243C3C - _022437C0 - 2 ; case 81
+ .short _02243C54 - _022437C0 - 2 ; case 82
+ .short _02243C6C - _022437C0 - 2 ; case 83
+ .short _02243CE0 - _022437C0 - 2 ; case 84
+ .short _02243CF8 - _022437C0 - 2 ; case 85
+ .short _02243D10 - _022437C0 - 2 ; case 86
+ .short _02243D28 - _022437C0 - 2 ; case 87
+ .short _02243D30 - _022437C0 - 2 ; case 88
+ .short _02243D38 - _022437C0 - 2 ; case 89
+ .short _02243D40 - _022437C0 - 2 ; case 90
+ .short _02243D48 - _022437C0 - 2 ; case 91
+ .short _02243D50 - _022437C0 - 2 ; case 92
+ .short _02243D58 - _022437C0 - 2 ; case 93
+ .short _02243D60 - _022437C0 - 2 ; case 94
+ .short _02243D68 - _022437C0 - 2 ; case 95
+ .short _02243D70 - _022437C0 - 2 ; case 96
+ .short _02243D82 - _022437C0 - 2 ; case 97
+ .short _02243D9E - _022437C0 - 2 ; case 98
+ .short _02243D9E - _022437C0 - 2 ; case 99
+ .short _02243D94 - _022437C0 - 2 ; case 100
+_0224388A:
+ ldrh r0, [r3]
+ strh r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243890:
+ ldrh r0, [r3]
+ strh r0, [r2, #2]
+ pop {r4, r5, r6, pc}
+_02243896:
+ ldrh r0, [r3]
+ strh r0, [r2, #4]
+ pop {r4, r5, r6, pc}
+_0224389C:
+ ldrh r0, [r3]
+ strh r0, [r2, #6]
+ pop {r4, r5, r6, pc}
+_022438A2:
+ ldrh r0, [r3]
+ strh r0, [r2, #8]
+ pop {r4, r5, r6, pc}
+_022438A8:
+ ldrh r0, [r3]
+ strh r0, [r2, #0xa]
+ pop {r4, r5, r6, pc}
+_022438AE:
+ sub r0, r5, #6
+ lsl r0, r0, #1
+ ldrh r1, [r3]
+ add r0, r2, r0
+ strh r1, [r0, #0xc]
+ pop {r4, r5, r6, pc}
+_022438BA:
+ ldr r4, [r2, #0x14]
+ mov r0, #0x1f
+ bic r4, r0
+ ldrb r1, [r3]
+ mov r0, #0x1f
+ and r0, r1
+ orr r0, r4
+ str r0, [r2, #0x14]
+ pop {r4, r5, r6, pc}
+_022438CC:
+ ldr r1, [r2, #0x14]
+ ldr r0, _02243C78 ; =0xFFFFFC1F
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x16
+ orr r0, r1
+ str r0, [r2, #0x14]
+ pop {r4, r5, r6, pc}
+_022438DE:
+ ldr r1, [r2, #0x14]
+ ldr r0, _02243C7C ; =0xFFFF83FF
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x11
+ orr r0, r1
+ str r0, [r2, #0x14]
+ pop {r4, r5, r6, pc}
+_022438F0:
+ ldr r1, [r2, #0x14]
+ ldr r0, _02243C80 ; =0xFFF07FFF
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0xc
+ orr r0, r1
+ str r0, [r2, #0x14]
+ pop {r4, r5, r6, pc}
+_02243902:
+ ldr r1, [r2, #0x14]
+ ldr r0, _02243C84 ; =0xFE0FFFFF
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #7
+ orr r0, r1
+ str r0, [r2, #0x14]
+ pop {r4, r5, r6, pc}
+_02243914:
+ ldr r1, [r2, #0x14]
+ ldr r0, _02243C88 ; =0xC1FFFFFF
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #2
+ orr r0, r1
+ str r0, [r2, #0x14]
+ pop {r4, r5, r6, pc}
+_02243926:
+ ldr r1, [r2, #0x14]
+ ldr r0, _02243C8C ; =0xBFFFFFFF
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #1
+ orr r0, r1
+ str r0, [r2, #0x14]
+ pop {r4, r5, r6, pc}
+_02243938:
+ ldr r1, [r2, #0x14]
+ ldr r0, _02243C90 ; =0x7FFFFFFF
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1f
+ orr r0, r1
+ str r0, [r2, #0x14]
+ pop {r4, r5, r6, pc}
+_02243948:
+ mov r0, #0
+ ldrsb r1, [r3, r0]
+ sub r5, #0x12
+ add r0, r2, r5
+ strb r1, [r0, #0x18]
+ pop {r4, r5, r6, pc}
+_02243954:
+ ldrb r0, [r3]
+ add r2, #0x27
+ strb r0, [r2]
+ pop {r4, r5, r6, pc}
+_0224395C:
+ ldrb r0, [r3]
+ add r2, #0x24
+ strb r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243964:
+ ldrb r0, [r3]
+ add r2, #0x25
+ strb r0, [r2]
+ pop {r4, r5, r6, pc}
+_0224396C:
+ add r0, r2, #0
+ add r0, #0x7e
+ ldrb r4, [r0]
+ ldrb r1, [r3]
+ mov r0, #0xf
+ bic r4, r0
+ mov r0, #0xf
+ and r0, r1
+ orr r0, r4
+ add r2, #0x7e
+ strb r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243984:
+ add r0, r2, #0
+ add r0, #0x26
+ ldrb r1, [r0]
+ mov r0, #0x20
+ add r2, #0x26
+ bic r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1a
+ orr r0, r1
+ strb r0, [r2]
+ pop {r4, r5, r6, pc}
+_0224399C:
+ sub r5, #0x1f
+ add r0, r2, r5
+ ldrb r1, [r3]
+ add r0, #0x2c
+ strb r1, [r0]
+ pop {r4, r5, r6, pc}
+_022439A8:
+ sub r5, #0x23
+ add r0, r2, r5
+ ldrb r1, [r3]
+ add r0, #0x30
+ strb r1, [r0]
+ pop {r4, r5, r6, pc}
+_022439B4:
+ bl ErrorHandling
+ pop {r4, r5, r6, pc}
+_022439BA:
+ ldrb r0, [r3]
+ add r2, #0x34
+ strb r0, [r2]
+ pop {r4, r5, r6, pc}
+_022439C2:
+ ldrb r0, [r3]
+ add r2, #0x35
+ strb r0, [r2]
+ pop {r4, r5, r6, pc}
+_022439CA:
+ mov r1, #0
+_022439CC:
+ ldrh r0, [r3]
+ add r1, r1, #1
+ add r3, r3, #2
+ strh r0, [r2, #0x36]
+ add r2, r2, #2
+ cmp r1, #0xb
+ blt _022439CC
+ pop {r4, r5, r6, pc}
+_022439DC:
+ mov r0, #0
+ ldrsh r0, [r3, r0]
+ str r0, [r2, #0x4c]
+ pop {r4, r5, r6, pc}
+_022439E4:
+ ldrh r0, [r3]
+ str r0, [r2, #0x50]
+ pop {r4, r5, r6, pc}
+_022439EA:
+ mov r4, #0
+_022439EC:
+ ldrh r1, [r3]
+ add r0, r2, #0
+ add r0, #0x54
+ add r4, r4, #1
+ strh r1, [r0]
+ add r3, r3, #2
+ add r2, r2, #2
+ cmp r4, #0xb
+ blt _022439EC
+ pop {r4, r5, r6, pc}
+_02243A00:
+ ldr r0, [r3]
+ str r0, [r2, #0x64]
+ pop {r4, r5, r6, pc}
+_02243A06:
+ ldr r0, [r3]
+ str r0, [r2, #0x68]
+ pop {r4, r5, r6, pc}
+_02243A0C:
+ ldr r0, [r3]
+ str r0, [r2, #0x6c]
+ pop {r4, r5, r6, pc}
+_02243A12:
+ ldr r0, [r3]
+ str r0, [r2, #0x70]
+ pop {r4, r5, r6, pc}
+_02243A18:
+ ldr r0, [r3]
+ str r0, [r2, #0x74]
+ pop {r4, r5, r6, pc}
+_02243A1E:
+ ldrh r0, [r3]
+ add r2, #0x78
+ strh r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243A26:
+ ldrb r0, [r3]
+ add r2, #0x7c
+ strb r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243A2E:
+ ldrb r0, [r3]
+ add r2, #0x7d
+ strb r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243A36:
+ add r0, r2, #0
+ add r0, #0x7e
+ ldrb r1, [r0]
+ mov r0, #0xf0
+ add r2, #0x7e
+ bic r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x18
+ orr r0, r1
+ strb r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243A4E:
+ ldr r0, [r3]
+ add r2, #0x80
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243A56:
+ ldr r0, [r3]
+ add r2, #0x84
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243A5E:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r4, [r0]
+ mov r0, #7
+ bic r4, r0
+ ldrb r1, [r3]
+ mov r0, #7
+ add r2, #0x88
+ and r0, r1
+ orr r0, r4
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243A76:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ mov r0, #0x38
+ bic r1, r0
+ ldrb r0, [r3]
+ add r2, #0x88
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1a
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243A8E:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ mov r0, #0xc0
+ bic r1, r0
+ ldrb r0, [r3]
+ add r2, #0x88
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x18
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243AA6:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02243C94 ; =0xFFFFF8FF
+ add r2, #0x88
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x15
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243ABE:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02243C98 ; =0xFFFFE7FF
+ add r2, #0x88
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x13
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243AD6:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02243C9C ; =0xFFFF9FFF
+ add r2, #0x88
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x11
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243AEE:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02243CA0 ; =0xFFFC7FFF
+ add r2, #0x88
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0xe
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243B06:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02243CA4 ; =0xFFE3FFFF
+ add r2, #0x88
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0xb
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243B1E:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02243CA8 ; =0xFF1FFFFF
+ add r2, #0x88
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #8
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243B36:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02243CAC ; =0xF8FFFFFF
+ add r2, #0x88
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #5
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243B4E:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02243CB0 ; =0xC7FFFFFF
+ add r2, #0x88
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #2
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243B66:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02243C8C ; =0xBFFFFFFF
+ add r2, #0x88
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #1
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243B7E:
+ add r0, r2, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02243C90 ; =0x7FFFFFFF
+ add r2, #0x88
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1f
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243B94:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r4, [r0]
+ mov r0, #3
+ bic r4, r0
+ ldrb r1, [r3]
+ mov r0, #3
+ add r2, #0x8c
+ and r0, r1
+ orr r0, r4
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243BAC:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ mov r0, #0x3c
+ bic r1, r0
+ ldrb r0, [r3]
+ add r2, #0x8c
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1a
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243BC4:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ mov r0, #0xc0
+ bic r1, r0
+ ldrb r0, [r3]
+ add r2, #0x8c
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x18
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243BDC:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02243CB4 ; =0xFFFFFCFF
+ add r2, #0x8c
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x16
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243BF4:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02243CB8 ; =0xFFFFE3FF
+ add r2, #0x8c
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x13
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243C0C:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02243CBC ; =0xFFFF1FFF
+ add r2, #0x8c
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x10
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243C24:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02243CC0 ; =0xFFF8FFFF
+ add r2, #0x8c
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0xd
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243C3C:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02243CC4 ; =0xFFC7FFFF
+ add r2, #0x8c
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0xa
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243C54:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02243CC8 ; =0xFFBFFFFF
+ add r2, #0x8c
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #9
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243C6C:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02243CCC ; =0xF87FFFFF
+ b _02243CD0
+ nop
+_02243C78: .word 0xFFFFFC1F
+_02243C7C: .word 0xFFFF83FF
+_02243C80: .word 0xFFF07FFF
+_02243C84: .word 0xFE0FFFFF
+_02243C88: .word 0xC1FFFFFF
+_02243C8C: .word 0xBFFFFFFF
+_02243C90: .word 0x7FFFFFFF
+_02243C94: .word 0xFFFFF8FF
+_02243C98: .word 0xFFFFE7FF
+_02243C9C: .word 0xFFFF9FFF
+_02243CA0: .word 0xFFFC7FFF
+_02243CA4: .word 0xFFE3FFFF
+_02243CA8: .word 0xFF1FFFFF
+_02243CAC: .word 0xF8FFFFFF
+_02243CB0: .word 0xC7FFFFFF
+_02243CB4: .word 0xFFFFFCFF
+_02243CB8: .word 0xFFFFE3FF
+_02243CBC: .word 0xFFFF1FFF
+_02243CC0: .word 0xFFF8FFFF
+_02243CC4: .word 0xFFC7FFFF
+_02243CC8: .word 0xFFBFFFFF
+_02243CCC: .word 0xF87FFFFF
+_02243CD0:
+ add r2, #0x8c
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #5
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243CE0:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02243DA4 ; =0xF7FFFFFF
+ add r2, #0x8c
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #4
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243CF8:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02243DA8 ; =0xEFFFFFFF
+ add r2, #0x8c
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #3
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243D10:
+ add r0, r2, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02243DAC ; =0xDFFFFFFF
+ add r2, #0x8c
+ and r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #2
+ orr r0, r1
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243D28:
+ ldr r0, [r3]
+ add r2, #0x90
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243D30:
+ ldr r0, [r3]
+ add r2, #0x94
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243D38:
+ ldr r0, [r3]
+ add r2, #0x98
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243D40:
+ ldr r0, [r3]
+ add r2, #0xa0
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243D48:
+ ldr r0, [r3]
+ add r2, #0xa4
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243D50:
+ ldrh r0, [r3]
+ add r2, #0xa8
+ strh r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243D58:
+ ldrh r0, [r3]
+ add r2, #0xac
+ strh r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243D60:
+ ldrh r0, [r3]
+ add r2, #0xaa
+ strh r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243D68:
+ ldr r0, [r3]
+ add r2, #0xbc
+ str r0, [r2]
+ pop {r4, r5, r6, pc}
+_02243D70:
+ ldr r1, [r2, #0x28]
+ mov r0, #0x40
+ bic r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x19
+ orr r0, r1
+ str r0, [r2, #0x28]
+ pop {r4, r5, r6, pc}
+_02243D82:
+ ldr r1, [r2, #0x28]
+ mov r0, #0x80
+ bic r1, r0
+ ldrb r0, [r3]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x18
+ orr r0, r1
+ str r0, [r2, #0x28]
+ pop {r4, r5, r6, pc}
+_02243D94:
+ add r6, #0x78
+ ldr r2, [r0, r6]
+ bl MOD11_0224379C
+ pop {r4, r5, r6, pc}
+_02243D9E:
+ bl ErrorHandling
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02243DA4: .word 0xF7FFFFFF
+_02243DA8: .word 0xEFFFFFFF
+_02243DAC: .word 0xDFFFFFFF
+
+ thumb_func_start MOD11_02243DB0
+MOD11_02243DB0: ; 0x02243DB0
+ push {r4, lr}
+ mov r4, #0xb5
+ lsl r4, r4, #6
+ add r4, r0, r4
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r2, #0
+ add r0, r4, r0
+ add r2, r3, #0
+ bl MOD11_02243DC8
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02243DC8
+MOD11_02243DC8: ; 0x02243DC8
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ add r5, r2, #0
+ cmp r1, #0x61
+ bls _02243DD4
+ b _02244200
+_02243DD4:
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02243DE0: ; jump table
+ .short _02244200 - _02243DE0 - 2 ; case 0
+ .short _02243EA4 - _02243DE0 - 2 ; case 1
+ .short _02243EAC - _02243DE0 - 2 ; case 2
+ .short _02243EB4 - _02243DE0 - 2 ; case 3
+ .short _02243EBC - _02243DE0 - 2 ; case 4
+ .short _02243EC4 - _02243DE0 - 2 ; case 5
+ .short _02244200 - _02243DE0 - 2 ; case 6
+ .short _02244200 - _02243DE0 - 2 ; case 7
+ .short _02244200 - _02243DE0 - 2 ; case 8
+ .short _02244200 - _02243DE0 - 2 ; case 9
+ .short _02243ECC - _02243DE0 - 2 ; case 10
+ .short _02243EE4 - _02243DE0 - 2 ; case 11
+ .short _02243EFA - _02243DE0 - 2 ; case 12
+ .short _02243F10 - _02243DE0 - 2 ; case 13
+ .short _02243F26 - _02243DE0 - 2 ; case 14
+ .short _02243F3C - _02243DE0 - 2 ; case 15
+ .short _02244200 - _02243DE0 - 2 ; case 16
+ .short _02244200 - _02243DE0 - 2 ; case 17
+ .short _02243F52 - _02243DE0 - 2 ; case 18
+ .short _02243F52 - _02243DE0 - 2 ; case 19
+ .short _02243F52 - _02243DE0 - 2 ; case 20
+ .short _02243F52 - _02243DE0 - 2 ; case 21
+ .short _02243F52 - _02243DE0 - 2 ; case 22
+ .short _02243F52 - _02243DE0 - 2 ; case 23
+ .short _02243F52 - _02243DE0 - 2 ; case 24
+ .short _02243F52 - _02243DE0 - 2 ; case 25
+ .short _02244200 - _02243DE0 - 2 ; case 26
+ .short _02244200 - _02243DE0 - 2 ; case 27
+ .short _02244200 - _02243DE0 - 2 ; case 28
+ .short _02244200 - _02243DE0 - 2 ; case 29
+ .short _02244200 - _02243DE0 - 2 ; case 30
+ .short _02243F70 - _02243DE0 - 2 ; case 31
+ .short _02243F70 - _02243DE0 - 2 ; case 32
+ .short _02243F70 - _02243DE0 - 2 ; case 33
+ .short _02243F70 - _02243DE0 - 2 ; case 34
+ .short _02243F96 - _02243DE0 - 2 ; case 35
+ .short _02243F96 - _02243DE0 - 2 ; case 36
+ .short _02243F96 - _02243DE0 - 2 ; case 37
+ .short _02243F96 - _02243DE0 - 2 ; case 38
+ .short _02244200 - _02243DE0 - 2 ; case 39
+ .short _02244200 - _02243DE0 - 2 ; case 40
+ .short _02244200 - _02243DE0 - 2 ; case 41
+ .short _02244200 - _02243DE0 - 2 ; case 42
+ .short _02243FA2 - _02243DE0 - 2 ; case 43
+ .short _02243FB0 - _02243DE0 - 2 ; case 44
+ .short _02244200 - _02243DE0 - 2 ; case 45
+ .short _02244200 - _02243DE0 - 2 ; case 46
+ .short _02243FD2 - _02243DE0 - 2 ; case 47
+ .short _02243FE4 - _02243DE0 - 2 ; case 48
+ .short _02244200 - _02243DE0 - 2 ; case 49
+ .short _02243FEC - _02243DE0 - 2 ; case 50
+ .short _02243FF4 - _02243DE0 - 2 ; case 51
+ .short _02244200 - _02243DE0 - 2 ; case 52
+ .short _02244200 - _02243DE0 - 2 ; case 53
+ .short _02244200 - _02243DE0 - 2 ; case 54
+ .short _02244200 - _02243DE0 - 2 ; case 55
+ .short _02244200 - _02243DE0 - 2 ; case 56
+ .short _02244200 - _02243DE0 - 2 ; case 57
+ .short _02244200 - _02243DE0 - 2 ; case 58
+ .short _02244200 - _02243DE0 - 2 ; case 59
+ .short _02244200 - _02243DE0 - 2 ; case 60
+ .short _02243FFC - _02243DE0 - 2 ; case 61
+ .short _0224401A - _02243DE0 - 2 ; case 62
+ .short _02244038 - _02243DE0 - 2 ; case 63
+ .short _02244056 - _02243DE0 - 2 ; case 64
+ .short _02244072 - _02243DE0 - 2 ; case 65
+ .short _0224408E - _02243DE0 - 2 ; case 66
+ .short _022440AA - _02243DE0 - 2 ; case 67
+ .short _022440C6 - _02243DE0 - 2 ; case 68
+ .short _022440E2 - _02243DE0 - 2 ; case 69
+ .short _022440FE - _02243DE0 - 2 ; case 70
+ .short _0224411A - _02243DE0 - 2 ; case 71
+ .short _02244200 - _02243DE0 - 2 ; case 72
+ .short _02244200 - _02243DE0 - 2 ; case 73
+ .short _02244200 - _02243DE0 - 2 ; case 74
+ .short _02244200 - _02243DE0 - 2 ; case 75
+ .short _02244200 - _02243DE0 - 2 ; case 76
+ .short _02244200 - _02243DE0 - 2 ; case 77
+ .short _02244136 - _02243DE0 - 2 ; case 78
+ .short _02244152 - _02243DE0 - 2 ; case 79
+ .short _0224416E - _02243DE0 - 2 ; case 80
+ .short _02244200 - _02243DE0 - 2 ; case 81
+ .short _02244200 - _02243DE0 - 2 ; case 82
+ .short _02244200 - _02243DE0 - 2 ; case 83
+ .short _02244200 - _02243DE0 - 2 ; case 84
+ .short _02244200 - _02243DE0 - 2 ; case 85
+ .short _02244200 - _02243DE0 - 2 ; case 86
+ .short _0224418A - _02243DE0 - 2 ; case 87
+ .short _02244198 - _02243DE0 - 2 ; case 88
+ .short _022441A6 - _02243DE0 - 2 ; case 89
+ .short _022441B4 - _02243DE0 - 2 ; case 90
+ .short _02244200 - _02243DE0 - 2 ; case 91
+ .short _02244200 - _02243DE0 - 2 ; case 92
+ .short _02244200 - _02243DE0 - 2 ; case 93
+ .short _02244200 - _02243DE0 - 2 ; case 94
+ .short _022441C2 - _02243DE0 - 2 ; case 95
+ .short _022441D0 - _02243DE0 - 2 ; case 96
+ .short _022441E8 - _02243DE0 - 2 ; case 97
+_02243EA4:
+ ldrh r0, [r4, #2]
+ add r0, r0, r5
+ strh r0, [r4, #2]
+ pop {r4, r5, r6, pc}
+_02243EAC:
+ ldrh r0, [r4, #4]
+ add r0, r0, r5
+ strh r0, [r4, #4]
+ pop {r4, r5, r6, pc}
+_02243EB4:
+ ldrh r0, [r4, #6]
+ add r0, r0, r5
+ strh r0, [r4, #6]
+ pop {r4, r5, r6, pc}
+_02243EBC:
+ ldrh r0, [r4, #8]
+ add r0, r0, r5
+ strh r0, [r4, #8]
+ pop {r4, r5, r6, pc}
+_02243EC4:
+ ldrh r0, [r4, #0xa]
+ add r0, r0, r5
+ strh r0, [r4, #0xa]
+ pop {r4, r5, r6, pc}
+_02243ECC:
+ ldr r2, [r4, #0x14]
+ mov r1, #0x1f
+ add r0, r2, #0
+ bic r0, r1
+ lsl r1, r2, #0x1b
+ lsr r1, r1, #0x1b
+ add r2, r1, r5
+ mov r1, #0x1f
+ and r1, r2
+ orr r0, r1
+ str r0, [r4, #0x14]
+ pop {r4, r5, r6, pc}
+_02243EE4:
+ ldr r1, [r4, #0x14]
+ ldr r0, _02244208 ; =0xFFFFFC1F
+ and r0, r1
+ lsl r1, r1, #0x16
+ lsr r1, r1, #0x1b
+ add r1, r1, r5
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x16
+ orr r0, r1
+ str r0, [r4, #0x14]
+ pop {r4, r5, r6, pc}
+_02243EFA:
+ ldr r1, [r4, #0x14]
+ ldr r0, _0224420C ; =0xFFFF83FF
+ and r0, r1
+ lsl r1, r1, #0x11
+ lsr r1, r1, #0x1b
+ add r1, r1, r5
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x11
+ orr r0, r1
+ str r0, [r4, #0x14]
+ pop {r4, r5, r6, pc}
+_02243F10:
+ ldr r1, [r4, #0x14]
+ ldr r0, _02244210 ; =0xFFF07FFF
+ and r0, r1
+ lsl r1, r1, #0xc
+ lsr r1, r1, #0x1b
+ add r1, r1, r5
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0xc
+ orr r0, r1
+ str r0, [r4, #0x14]
+ pop {r4, r5, r6, pc}
+_02243F26:
+ ldr r1, [r4, #0x14]
+ ldr r0, _02244214 ; =0xFE0FFFFF
+ and r0, r1
+ lsl r1, r1, #7
+ lsr r1, r1, #0x1b
+ add r1, r1, r5
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #7
+ orr r0, r1
+ str r0, [r4, #0x14]
+ pop {r4, r5, r6, pc}
+_02243F3C:
+ ldr r1, [r4, #0x14]
+ ldr r0, _02244218 ; =0xC1FFFFFF
+ and r0, r1
+ lsl r1, r1, #2
+ lsr r1, r1, #0x1b
+ add r1, r1, r5
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #2
+ orr r0, r1
+ str r0, [r4, #0x14]
+ pop {r4, r5, r6, pc}
+_02243F52:
+ add r4, #0x18
+ sub r1, #0x12
+ ldrsb r0, [r4, r1]
+ add r0, r5, r0
+ bpl _02243F62
+ mov r0, #0
+ strb r0, [r4, r1]
+ pop {r4, r5, r6, pc}
+_02243F62:
+ cmp r0, #0xc
+ ble _02243F6C
+ mov r0, #0xc
+ strb r0, [r4, r1]
+ pop {r4, r5, r6, pc}
+_02243F6C:
+ strb r0, [r4, r1]
+ pop {r4, r5, r6, pc}
+_02243F70:
+ add r6, r1, #0
+ sub r6, #0x1f
+ lsl r0, r6, #1
+ add r1, r4, r6
+ add r0, r4, r0
+ add r1, #0x30
+ ldrh r0, [r0, #0xc]
+ ldrb r1, [r1]
+ bl WazaGetMaxPp
+ add r4, #0x2c
+ ldrb r1, [r4, r6]
+ add r1, r5, r1
+ cmp r1, r0
+ ble _02243F92
+ strb r0, [r4, r6]
+ pop {r4, r5, r6, pc}
+_02243F92:
+ strb r1, [r4, r6]
+ pop {r4, r5, r6, pc}
+_02243F96:
+ add r4, #0x30
+ sub r1, #0x23
+ ldrb r0, [r4, r1]
+ add r0, r0, r5
+ strb r0, [r4, r1]
+ pop {r4, r5, r6, pc}
+_02243FA2:
+ add r0, r4, #0
+ add r0, #0x34
+ ldrb r0, [r0]
+ add r4, #0x34
+ add r0, r0, r5
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243FB0:
+ add r0, r4, #0
+ add r0, #0x35
+ ldrb r0, [r0]
+ add r0, r0, r5
+ cmp r0, #0xff
+ ble _02243FC4
+ mov r0, #0xff
+ add r4, #0x35
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243FC4:
+ add r0, r4, #0
+ add r0, #0x35
+ ldrb r0, [r0]
+ add r4, #0x35
+ add r0, r0, r5
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02243FD2:
+ ldr r0, [r4, #0x4c]
+ ldr r1, [r4, #0x50]
+ add r0, r0, r5
+ cmp r0, r1
+ bls _02243FE0
+ str r1, [r4, #0x4c]
+ pop {r4, r5, r6, pc}
+_02243FE0:
+ str r0, [r4, #0x4c]
+ pop {r4, r5, r6, pc}
+_02243FE4:
+ ldr r0, [r4, #0x50]
+ add r0, r0, r5
+ str r0, [r4, #0x50]
+ pop {r4, r5, r6, pc}
+_02243FEC:
+ ldr r0, [r4, #0x64]
+ add r0, r0, r5
+ str r0, [r4, #0x64]
+ pop {r4, r5, r6, pc}
+_02243FF4:
+ ldr r0, [r4, #0x68]
+ add r0, r0, r5
+ str r0, [r4, #0x68]
+ pop {r4, r5, r6, pc}
+_02243FFC:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r2, [r0]
+ mov r1, #7
+ add r0, r2, #0
+ bic r0, r1
+ lsl r1, r2, #0x1d
+ lsr r1, r1, #0x1d
+ add r2, r1, r5
+ mov r1, #7
+ and r1, r2
+ orr r0, r1
+ add r4, #0x88
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224401A:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r2, [r0]
+ mov r1, #0x38
+ add r0, r2, #0
+ bic r0, r1
+ lsl r1, r2, #0x1a
+ lsr r1, r1, #0x1d
+ add r1, r1, r5
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0x1a
+ orr r0, r1
+ add r4, #0x88
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_02244038:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r2, [r0]
+ mov r1, #0xc0
+ add r0, r2, #0
+ bic r0, r1
+ lsl r1, r2, #0x18
+ lsr r1, r1, #0x1e
+ add r1, r1, r5
+ lsl r1, r1, #0x1e
+ lsr r1, r1, #0x18
+ orr r0, r1
+ add r4, #0x88
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_02244056:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _0224421C ; =0xFFFFF8FF
+ add r4, #0x88
+ and r0, r1
+ lsl r1, r1, #0x15
+ lsr r1, r1, #0x1d
+ add r1, r1, r5
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0x15
+ orr r0, r1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_02244072:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02244220 ; =0xFFFFE7FF
+ add r4, #0x88
+ and r0, r1
+ lsl r1, r1, #0x13
+ lsr r1, r1, #0x1e
+ add r1, r1, r5
+ lsl r1, r1, #0x1e
+ lsr r1, r1, #0x13
+ orr r0, r1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224408E:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02244224 ; =0xFFFF9FFF
+ add r4, #0x88
+ and r0, r1
+ lsl r1, r1, #0x11
+ lsr r1, r1, #0x1e
+ add r1, r1, r5
+ lsl r1, r1, #0x1e
+ lsr r1, r1, #0x11
+ orr r0, r1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_022440AA:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02244228 ; =0xFFFC7FFF
+ add r4, #0x88
+ and r0, r1
+ lsl r1, r1, #0xe
+ lsr r1, r1, #0x1d
+ add r1, r1, r5
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0xe
+ orr r0, r1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_022440C6:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _0224422C ; =0xFFE3FFFF
+ add r4, #0x88
+ and r0, r1
+ lsl r1, r1, #0xb
+ lsr r1, r1, #0x1d
+ add r1, r1, r5
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0xb
+ orr r0, r1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_022440E2:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02244230 ; =0xFF1FFFFF
+ add r4, #0x88
+ and r0, r1
+ lsl r1, r1, #8
+ lsr r1, r1, #0x1d
+ add r1, r1, r5
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #8
+ orr r0, r1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_022440FE:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02244234 ; =0xF8FFFFFF
+ add r4, #0x88
+ and r0, r1
+ lsl r1, r1, #5
+ lsr r1, r1, #0x1d
+ add r1, r1, r5
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #5
+ orr r0, r1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224411A:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ ldr r0, _02244238 ; =0xC7FFFFFF
+ add r4, #0x88
+ and r0, r1
+ lsl r1, r1, #2
+ lsr r1, r1, #0x1d
+ add r1, r1, r5
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #2
+ orr r0, r1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_02244136:
+ add r0, r4, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _0224423C ; =0xFFFFE3FF
+ add r4, #0x8c
+ and r0, r1
+ lsl r1, r1, #0x13
+ lsr r1, r1, #0x1d
+ add r1, r1, r5
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0x13
+ orr r0, r1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_02244152:
+ add r0, r4, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02244240 ; =0xFFFF1FFF
+ add r4, #0x8c
+ and r0, r1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x1d
+ add r1, r1, r5
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0x10
+ orr r0, r1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224416E:
+ add r0, r4, #0
+ add r0, #0x8c
+ ldr r1, [r0]
+ ldr r0, _02244244 ; =0xFFF8FFFF
+ add r4, #0x8c
+ and r0, r1
+ lsl r1, r1, #0xd
+ lsr r1, r1, #0x1d
+ add r1, r1, r5
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0xd
+ orr r0, r1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224418A:
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ add r4, #0x90
+ add r0, r0, r5
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_02244198:
+ add r0, r4, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ add r4, #0x94
+ add r0, r0, r5
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_022441A6:
+ add r0, r4, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ add r4, #0x98
+ add r0, r0, r5
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_022441B4:
+ add r0, r4, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ add r4, #0xa0
+ add r0, r0, r5
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_022441C2:
+ add r0, r4, #0
+ add r0, #0xbc
+ ldr r0, [r0]
+ add r4, #0xbc
+ add r0, r0, r5
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_022441D0:
+ ldr r2, [r4, #0x28]
+ mov r1, #0x40
+ add r0, r2, #0
+ bic r0, r1
+ lsl r1, r2, #0x19
+ lsr r1, r1, #0x1f
+ add r1, r1, r5
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x19
+ orr r0, r1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, pc}
+_022441E8:
+ ldr r2, [r4, #0x28]
+ mov r1, #0x80
+ add r0, r2, #0
+ bic r0, r1
+ lsl r1, r2, #0x18
+ lsr r1, r1, #0x1f
+ add r1, r1, r5
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x18
+ orr r0, r1
+ str r0, [r4, #0x28]
+ pop {r4, r5, r6, pc}
+_02244200:
+ bl ErrorHandling
+ pop {r4, r5, r6, pc}
+ nop
+_02244208: .word 0xFFFFFC1F
+_0224420C: .word 0xFFFF83FF
+_02244210: .word 0xFFF07FFF
+_02244214: .word 0xFE0FFFFF
+_02244218: .word 0xC1FFFFFF
+_0224421C: .word 0xFFFFF8FF
+_02244220: .word 0xFFFFE7FF
+_02244224: .word 0xFFFF9FFF
+_02244228: .word 0xFFFC7FFF
+_0224422C: .word 0xFFE3FFFF
+_02244230: .word 0xFF1FFFFF
+_02244234: .word 0xF8FFFFFF
+_02244238: .word 0xC7FFFFFF
+_0224423C: .word 0xFFFFE3FF
+_02244240: .word 0xFFFF1FFF
+_02244244: .word 0xFFF8FFFF
+
+ thumb_func_start MOD11_02244248
+MOD11_02244248: ; 0x02244248
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x68
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #0x64]
+ str r0, [sp, #0x60]
+ ldr r0, [sp, #0x64]
+ str r2, [sp, #8]
+ str r0, [sp, #0x5c]
+ ldr r0, [sp, #0x64]
+ str r3, [sp, #0xc]
+ str r0, [sp, #0x48]
+ ldr r0, [sp, #0x64]
+ add r5, r1, #0
+ str r0, [sp, #0x44]
+ ldr r0, [sp, #0x64]
+ mov r2, #0xc0
+ str r0, [sp, #0x40]
+ ldr r0, [sp, #0x64]
+ ldr r3, _0224455C ; =0x00002D8C
+ str r0, [sp, #0x3c]
+ ldr r0, [sp, #0x64]
+ str r0, [sp, #0x38]
+ ldr r0, [sp, #0x64]
+ str r0, [sp, #0x34]
+ ldr r0, [sp, #8]
+ add r1, r0, #0
+ mul r1, r2
+ add r0, r5, r1
+ ldr r0, [r0, r3]
+ str r1, [sp, #0x18]
+ cmp r0, #0
+ bne _0224429C
+ ldr r1, [sp, #0xc]
+ mul r2, r1
+ add r1, r5, r2
+ ldr r1, [r1, r3]
+ cmp r1, #0
+ beq _0224429C
+ add sp, #0x68
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0224429C:
+ cmp r0, #0
+ beq _022442B6
+ ldr r0, [sp, #0xc]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _0224455C ; =0x00002D8C
+ add r1, r5, r1
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _022442B6
+ add sp, #0x68
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022442B6:
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ str r0, [sp, #0x2c]
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ str r0, [sp, #0x28]
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_02249D90
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x58]
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x54]
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0
+ bl MOD11_02249D90
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x50]
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x4c]
+ ldr r0, [sp, #0x18]
+ ldr r2, _02244560 ; =0x00002D5B
+ add r0, r5, r0
+ ldrsb r4, [r0, r2]
+ ldr r0, [sp, #0xc]
+ mov r1, #0xc0
+ mul r1, r0
+ add r0, r5, r1
+ str r1, [sp, #0x14]
+ ldrsb r7, [r0, r2]
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x56
+ bne _02244338
+ sub r0, r4, #6
+ lsl r0, r0, #1
+ add r4, r0, #6
+ cmp r4, #0xc
+ ble _02244332
+ mov r4, #0xc
+_02244332:
+ cmp r4, #0
+ bge _02244338
+ mov r4, #0
+_02244338:
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x56
+ bne _02244356
+ sub r0, r7, #6
+ lsl r0, r0, #1
+ add r7, r0, #6
+ cmp r7, #0xc
+ ble _02244350
+ mov r7, #0xc
+_02244350:
+ cmp r7, #0
+ bge _02244356
+ mov r7, #0
+_02244356:
+ ldr r0, [sp, #0x18]
+ lsl r1, r4, #1
+ add r2, r5, r0
+ ldr r0, _02244564 ; =0x00002D46
+ ldrh r2, [r2, r0]
+ ldr r0, _02244568 ; =0x0225E284
+ ldrb r0, [r0, r1]
+ mul r0, r2
+ ldr r2, _0224456C ; =0x0225E285
+ ldrb r1, [r2, r1]
+ bl _s32_div_f
+ add r6, r0, #0
+ ldr r0, [sp, #0x14]
+ lsl r1, r7, #1
+ add r2, r5, r0
+ ldr r0, _02244564 ; =0x00002D46
+ ldrh r2, [r2, r0]
+ ldr r0, _02244568 ; =0x0225E284
+ ldrb r0, [r0, r1]
+ mul r0, r2
+ ldr r2, _0224456C ; =0x0225E285
+ ldrb r1, [r2, r1]
+ bl _s32_div_f
+ add r4, r0, #0
+ mov r0, #0xd
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _022443FE
+ mov r0, #0x4c
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _022443FE
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0x21
+ bne _022443C4
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #3
+ tst r0, r1
+ bne _022443D6
+_022443C4:
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0x22
+ bne _022443D8
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #0x30
+ tst r0, r1
+ beq _022443D8
+_022443D6:
+ lsl r6, r6, #1
+_022443D8:
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x21
+ bne _022443EA
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #3
+ tst r0, r1
+ bne _022443FC
+_022443EA:
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x22
+ bne _022443FE
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #0x30
+ tst r0, r1
+ beq _022443FE
+_022443FC:
+ lsl r4, r4, #1
+_022443FE:
+ mov r0, #0
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x18]
+ ldr r7, _02244570 ; =0x0225E24C
+ add r0, r5, r0
+ str r0, [sp, #0x1c]
+_0224440A:
+ ldr r2, [sp, #0x1c]
+ ldr r1, _02244574 ; =0x00002DB8
+ add r0, r5, #0
+ ldrh r1, [r2, r1]
+ mov r2, #1
+ bl MOD11_0224C12C
+ ldrb r1, [r7]
+ cmp r1, r0
+ bne _02244422
+ lsr r6, r6, #1
+ b _0224442E
+_02244422:
+ ldr r0, [sp, #0x24]
+ add r7, r7, #1
+ add r0, r0, #1
+ str r0, [sp, #0x24]
+ cmp r0, #8
+ blo _0224440A
+_0224442E:
+ ldr r0, [sp, #0x58]
+ cmp r0, #0x72
+ bne _02244440
+ mov r0, #0xf
+ mul r0, r6
+ mov r1, #0xa
+ bl _u32_div_f
+ add r6, r0, #0
+_02244440:
+ ldr r0, [sp, #0x58]
+ cmp r0, #0x65
+ bne _02244456
+ ldr r0, [sp, #0x18]
+ add r1, r5, r0
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldrh r0, [r1, r0]
+ cmp r0, #0x84
+ bne _02244456
+ lsl r6, r6, #1
+_02244456:
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0x5f
+ bne _02244478
+ ldr r0, [sp, #0x18]
+ add r1, r5, r0
+ ldr r0, _02244578 ; =0x00002DAC
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ beq _02244478
+ mov r0, #0xf
+ mul r0, r6
+ mov r1, #0xa
+ bl _u32_div_f
+ add r6, r0, #0
+ b _02244488
+_02244478:
+ ldr r0, [sp, #0x18]
+ add r1, r5, r0
+ ldr r0, _02244578 ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #0x40
+ tst r0, r1
+ beq _02244488
+ lsr r6, r6, #2
+_02244488:
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0x70
+ bne _022444A4
+ ldr r1, [sp, #0x18]
+ mov r0, #0x15
+ add r2, r5, r1
+ ldr r1, _0224457C ; =0x00002DD8
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ ldr r1, [r2, r1]
+ sub r0, r0, r1
+ cmp r0, #5
+ bge _022444A4
+ lsr r6, r6, #1
+_022444A4:
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0x54
+ bne _022444C2
+ ldr r0, [sp, #0x18]
+ add r2, r5, r0
+ ldr r0, _02244580 ; =0x00002DCC
+ ldr r1, [r2, r0]
+ lsl r1, r1, #9
+ lsr r1, r1, #0x1f
+ beq _022444C2
+ sub r0, #0x14
+ ldrh r0, [r2, r0]
+ cmp r0, #0
+ bne _022444C2
+ lsl r6, r6, #1
+_022444C2:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #8]
+ bl MOD11_02230270
+ lsl r0, r0, #2
+ add r1, r5, r0
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ ldr r1, [r1, r0]
+ mov r0, #3
+ lsl r0, r0, #8
+ tst r0, r1
+ beq _022444DE
+ lsl r6, r6, #1
+_022444DE:
+ ldr r0, [sp, #0x58]
+ cmp r0, #0x33
+ bne _0224451C
+ ldr r1, [sp, #0x54]
+ mov r0, #0x64
+ bl _s32_div_f
+ add r1, r0, #0
+ ldr r0, [sp, #8]
+ lsl r0, r0, #1
+ add r2, r5, r0
+ ldr r0, _02244584 ; =0x0000310C
+ ldrh r0, [r2, r0]
+ bl _s32_div_f
+ cmp r1, #0
+ bne _0224451C
+ mov r0, #1
+ str r0, [sp, #0x40]
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ bne _0224451C
+ ldr r0, _02244580 ; =0x00002DCC
+ ldr r1, [sp, #0x18]
+ add r0, r5, r0
+ ldr r2, [r0, r1]
+ mov r1, #2
+ lsl r1, r1, #0x1c
+ orr r2, r1
+ ldr r1, [sp, #0x18]
+ str r2, [r0, r1]
+_0224451C:
+ ldr r0, [sp, #0x18]
+ add r1, r5, r0
+ ldr r0, _02244580 ; =0x00002DCC
+ ldr r0, [r1, r0]
+ lsl r0, r0, #3
+ lsr r0, r0, #0x1f
+ beq _0224452E
+ mov r0, #1
+ str r0, [sp, #0x40]
+_0224452E:
+ ldr r0, [sp, #0x58]
+ cmp r0, #0x6a
+ bne _02244538
+ mov r0, #1
+ str r0, [sp, #0x38]
+_02244538:
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ ldr r7, _02244570 ; =0x0225E24C
+ add r0, r5, r0
+ str r0, [sp, #0x20]
+_02244544:
+ ldr r2, [sp, #0x20]
+ ldr r1, _02244574 ; =0x00002DB8
+ add r0, r5, #0
+ ldrh r1, [r2, r1]
+ mov r2, #1
+ bl MOD11_0224C12C
+ ldrb r1, [r7]
+ cmp r1, r0
+ bne _02244588
+ lsr r4, r4, #1
+ b _02244594
+ .align 2, 0
+_0224455C: .word 0x00002D8C
+_02244560: .word 0x00002D5B
+_02244564: .word 0x00002D46
+_02244568: .word 0x0225E284
+_0224456C: .word 0x0225E285
+_02244570: .word 0x0225E24C
+_02244574: .word 0x00002DB8
+_02244578: .word 0x00002DAC
+_0224457C: .word 0x00002DD8
+_02244580: .word 0x00002DCC
+_02244584: .word 0x0000310C
+_02244588:
+ ldr r0, [sp, #0x10]
+ add r7, r7, #1
+ add r0, r0, #1
+ str r0, [sp, #0x10]
+ cmp r0, #8
+ blo _02244544
+_02244594:
+ ldr r0, [sp, #0x50]
+ cmp r0, #0x72
+ bne _022445A6
+ mov r0, #0xf
+ mul r0, r4
+ mov r1, #0xa
+ bl _u32_div_f
+ add r4, r0, #0
+_022445A6:
+ ldr r0, [sp, #0x50]
+ cmp r0, #0x65
+ bne _022445BC
+ ldr r0, [sp, #0x14]
+ add r1, r5, r0
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldrh r0, [r1, r0]
+ cmp r0, #0x84
+ bne _022445BC
+ lsl r4, r4, #1
+_022445BC:
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x5f
+ bne _022445DE
+ ldr r0, [sp, #0x14]
+ add r1, r5, r0
+ ldr r0, _02244894 ; =0x00002DAC
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ beq _022445DE
+ mov r0, #0xf
+ mul r0, r4
+ mov r1, #0xa
+ bl _u32_div_f
+ add r4, r0, #0
+ b _022445EE
+_022445DE:
+ ldr r0, [sp, #0x14]
+ add r1, r5, r0
+ ldr r0, _02244894 ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #0x40
+ tst r0, r1
+ beq _022445EE
+ lsr r4, r4, #2
+_022445EE:
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x70
+ bne _0224460A
+ ldr r1, [sp, #0x14]
+ mov r0, #0x15
+ add r2, r5, r1
+ ldr r1, _02244898 ; =0x00002DD8
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ ldr r1, [r2, r1]
+ sub r0, r0, r1
+ cmp r0, #5
+ bge _0224460A
+ lsr r4, r4, #1
+_0224460A:
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x54
+ bne _02244628
+ ldr r0, [sp, #0x14]
+ add r2, r5, r0
+ ldr r0, _0224489C ; =0x00002DCC
+ ldr r1, [r2, r0]
+ lsl r1, r1, #9
+ lsr r1, r1, #0x1f
+ beq _02244628
+ sub r0, #0x14
+ ldrh r0, [r2, r0]
+ cmp r0, #0
+ bne _02244628
+ lsl r4, r4, #1
+_02244628:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0xc]
+ bl MOD11_02230270
+ lsl r0, r0, #2
+ add r1, r5, r0
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ ldr r1, [r1, r0]
+ mov r0, #3
+ lsl r0, r0, #8
+ tst r0, r1
+ beq _02244644
+ lsl r4, r4, #1
+_02244644:
+ ldr r0, [sp, #0x50]
+ cmp r0, #0x33
+ bne _02244682
+ ldr r1, [sp, #0x4c]
+ mov r0, #0x64
+ bl _s32_div_f
+ add r1, r0, #0
+ ldr r0, [sp, #0xc]
+ lsl r0, r0, #1
+ add r2, r5, r0
+ ldr r0, _022448A0 ; =0x0000310C
+ ldrh r0, [r2, r0]
+ bl _s32_div_f
+ cmp r1, #0
+ bne _02244682
+ mov r0, #1
+ str r0, [sp, #0x3c]
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ bne _02244682
+ ldr r0, _0224489C ; =0x00002DCC
+ ldr r1, [sp, #0x14]
+ add r0, r5, r0
+ ldr r2, [r0, r1]
+ mov r1, #2
+ lsl r1, r1, #0x1c
+ orr r2, r1
+ ldr r1, [sp, #0x14]
+ str r2, [r0, r1]
+_02244682:
+ ldr r0, [sp, #0x14]
+ add r1, r5, r0
+ ldr r0, _0224489C ; =0x00002DCC
+ ldr r0, [r1, r0]
+ lsl r0, r0, #3
+ lsr r0, r0, #0x1f
+ beq _02244694
+ mov r0, #1
+ str r0, [sp, #0x3c]
+_02244694:
+ ldr r0, [sp, #0x50]
+ cmp r0, #0x6a
+ bne _0224469E
+ mov r0, #1
+ str r0, [sp, #0x34]
+_0224469E:
+ ldr r0, [sp, #8]
+ lsl r0, r0, #2
+ add r1, r5, r0
+ ldr r0, _022448A4 ; =0x000021F0
+ str r6, [r1, r0]
+ ldr r1, [sp, #0xc]
+ lsl r1, r1, #2
+ add r1, r5, r1
+ str r4, [r1, r0]
+ ldr r1, [sp, #0x80]
+ cmp r1, #0
+ bne _02244756
+ ldr r1, [sp, #0xc]
+ ldr r3, _022448A8 ; =0x000030BC
+ lsl r1, r1, #4
+ add r2, r5, r1
+ add r1, r0, #0
+ sub r1, #0x3c
+ ldr r1, [r2, r1]
+ sub r0, #0x3c
+ str r1, [sp, #0x30]
+ ldr r1, [sp, #8]
+ lsl r1, r1, #1
+ add r1, r5, r1
+ ldrh r2, [r1, r3]
+ ldr r1, [sp, #0xc]
+ lsl r1, r1, #1
+ add r1, r5, r1
+ ldrh r7, [r1, r3]
+ ldr r1, [sp, #8]
+ lsl r1, r1, #4
+ add r1, r5, r1
+ ldr r0, [r1, r0]
+ cmp r0, #1
+ bne _0224470E
+ ldr r0, [sp, #8]
+ lsl r0, r0, #6
+ add r1, r5, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ beq _022446FC
+ mov r0, #0xa5
+ str r0, [sp, #0x60]
+ b _0224470E
+_022446FC:
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ add r2, r2, #6
+ mov r3, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x60]
+_0224470E:
+ ldr r0, [sp, #0x30]
+ cmp r0, #1
+ bne _0224473E
+ ldr r0, [sp, #0xc]
+ lsl r0, r0, #6
+ add r1, r5, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ beq _0224472C
+ mov r0, #0xa5
+ str r0, [sp, #0x5c]
+ b _0224473E
+_0224472C:
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0
+ add r2, r7, #6
+ mov r3, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x5c]
+_0224473E:
+ ldr r0, [sp, #0x60]
+ mov r1, #0xfa
+ lsl r0, r0, #4
+ add r0, r5, r0
+ lsl r1, r1, #2
+ ldrsb r0, [r0, r1]
+ str r0, [sp, #0x48]
+ ldr r0, [sp, #0x5c]
+ lsl r0, r0, #4
+ add r0, r5, r0
+ ldrsb r0, [r0, r1]
+ str r0, [sp, #0x44]
+_02244756:
+ ldr r1, [sp, #0x48]
+ ldr r0, [sp, #0x44]
+ cmp r1, r0
+ beq _02244760
+ b _022448AC
+_02244760:
+ ldr r0, [sp, #0x40]
+ cmp r0, #0
+ beq _0224478C
+ ldr r0, [sp, #0x3c]
+ cmp r0, #0
+ beq _0224478C
+ cmp r6, r4
+ bhs _02244776
+ mov r0, #1
+ str r0, [sp, #0x64]
+ b _022448B4
+_02244776:
+ cmp r6, r4
+ bne _02244784
+ bl LCRandom
+ mov r1, #1
+ tst r0, r1
+ bne _02244786
+_02244784:
+ b _022448B4
+_02244786:
+ mov r0, #2
+ str r0, [sp, #0x64]
+ b _022448B4
+_0224478C:
+ ldr r0, [sp, #0x40]
+ cmp r0, #0
+ bne _0224479E
+ ldr r0, [sp, #0x3c]
+ cmp r0, #0
+ beq _0224479E
+ mov r0, #1
+ str r0, [sp, #0x64]
+ b _022448B4
+_0224479E:
+ ldr r0, [sp, #0x40]
+ cmp r0, #0
+ beq _022447B0
+ ldr r0, [sp, #0x3c]
+ cmp r0, #0
+ bne _022447B0
+ mov r0, #0
+ str r0, [sp, #0x64]
+ b _022448B4
+_022447B0:
+ ldr r0, [sp, #0x38]
+ cmp r0, #0
+ beq _022447DA
+ ldr r0, [sp, #0x34]
+ cmp r0, #0
+ beq _022447DA
+ cmp r6, r4
+ bls _022447C6
+ mov r0, #1
+ str r0, [sp, #0x64]
+ b _022448B4
+_022447C6:
+ cmp r6, r4
+ bne _022448B4
+ bl LCRandom
+ mov r1, #1
+ tst r0, r1
+ beq _022448B4
+ mov r0, #2
+ str r0, [sp, #0x64]
+ b _022448B4
+_022447DA:
+ ldr r0, [sp, #0x38]
+ cmp r0, #0
+ beq _022447EC
+ ldr r0, [sp, #0x34]
+ cmp r0, #0
+ bne _022447EC
+ mov r0, #1
+ str r0, [sp, #0x64]
+ b _022448B4
+_022447EC:
+ ldr r0, [sp, #0x38]
+ cmp r0, #0
+ bne _022447FE
+ ldr r0, [sp, #0x34]
+ cmp r0, #0
+ beq _022447FE
+ mov r0, #0
+ str r0, [sp, #0x64]
+ b _022448B4
+_022447FE:
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0x64
+ bne _02244828
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x64
+ bne _02244828
+ cmp r6, r4
+ bls _02244814
+ mov r0, #1
+ str r0, [sp, #0x64]
+ b _022448B4
+_02244814:
+ cmp r6, r4
+ bne _022448B4
+ bl LCRandom
+ mov r1, #1
+ tst r0, r1
+ beq _022448B4
+ mov r0, #2
+ str r0, [sp, #0x64]
+ b _022448B4
+_02244828:
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0x64
+ bne _0224483A
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x64
+ beq _0224483A
+ mov r0, #1
+ str r0, [sp, #0x64]
+ b _022448B4
+_0224483A:
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0x64
+ beq _0224484C
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x64
+ bne _0224484C
+ mov r0, #0
+ str r0, [sp, #0x64]
+ b _022448B4
+_0224484C:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #7
+ lsl r0, r0, #0x10
+ tst r0, r1
+ beq _02244876
+ cmp r6, r4
+ bls _02244862
+ mov r0, #1
+ str r0, [sp, #0x64]
+_02244862:
+ cmp r6, r4
+ bne _022448B4
+ bl LCRandom
+ mov r1, #1
+ tst r0, r1
+ beq _022448B4
+ mov r0, #2
+ str r0, [sp, #0x64]
+ b _022448B4
+_02244876:
+ cmp r6, r4
+ bhs _0224487E
+ mov r0, #1
+ str r0, [sp, #0x64]
+_0224487E:
+ cmp r6, r4
+ bne _022448B4
+ bl LCRandom
+ mov r1, #1
+ tst r0, r1
+ beq _022448B4
+ mov r0, #2
+ str r0, [sp, #0x64]
+ b _022448B4
+ nop
+_02244894: .word 0x00002DAC
+_02244898: .word 0x00002DD8
+_0224489C: .word 0x00002DCC
+_022448A0: .word 0x0000310C
+_022448A4: .word 0x000021F0
+_022448A8: .word 0x000030BC
+_022448AC:
+ cmp r1, r0
+ bge _022448B4
+ mov r0, #1
+ str r0, [sp, #0x64]
+_022448B4:
+ ldr r0, [sp, #0x64]
+ add sp, #0x68
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022448BC
+MOD11_022448BC: ; 0x022448BC
+ asr r1, r1, #1
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1d
+ add r0, r0, r1
+ mov r2, #0
+ add r0, #0xa4
+ str r2, [r0]
+ bx lr
+
+ thumb_func_start MOD11_022448CC
+MOD11_022448CC: ; 0x022448CC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r2, [sp]
+ add r5, r1, #0
+ mov r4, #0
+ bl MOD11_0222FF74
+ add r7, r0, #0
+ ldr r0, [sp]
+ mov r1, #0xc0
+ mul r1, r0
+ add r0, r5, r1
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ asr r0, r0, #1
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1d
+ add r6, r5, r0
+ add r6, #0xa4
+_022448F2:
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ ldr r1, _0224493C ; =0x00003108
+ ldrb r1, [r5, r1]
+ tst r0, r1
+ bne _02244928
+ ldr r0, [sp]
+ bl MaskOfFlagNo
+ ldr r1, _0224493C ; =0x00003108
+ ldrb r1, [r5, r1]
+ tst r0, r1
+ bne _02244928
+ ldr r1, [sp, #4]
+ ldr r0, _02244940 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02244928
+ ldr r0, _02244944 ; =0x0000219C
+ add r1, r5, r4
+ ldrb r0, [r1, r0]
+ bl MaskOfFlagNo
+ ldr r1, [r6]
+ orr r0, r1
+ str r0, [r6]
+_02244928:
+ add r4, r4, #2
+ cmp r7, #0x4a
+ beq _02244936
+ cmp r7, #0x4b
+ beq _02244936
+ cmp r4, #2
+ ble _022448F2
+_02244936:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224493C: .word 0x00003108
+_02244940: .word 0x00002D8C
+_02244944: .word 0x0000219C
+
+ thumb_func_start MOD11_02244948
+MOD11_02244948: ; 0x02244948
+ push {r4, r5, r6, lr}
+ ldr r0, _022449D4 ; =0x00002170
+ add r5, r1, #0
+ add r4, r2, #0
+ ldr r2, [r5, r0]
+ mov r0, #2
+ lsl r0, r0, #0x1c
+ mov r6, #0
+ tst r0, r2
+ beq _0224497A
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0224C5DC
+ str r0, [r4]
+ ldr r0, _022449D4 ; =0x00002170
+ add r1, r6, #0
+ str r1, [r5, r0]
+ sub r0, r0, #4
+ ldr r1, [r5, r0]
+ ldr r0, _022449D8 ; =0x801FDA49
+ tst r0, r1
+ bne _022449CE
+ mov r6, #1
+ b _022449CE
+_0224497A:
+ cmp r2, #0
+ beq _022449CE
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0224C5DC
+ str r0, [r4]
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _022449DC ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _022449C8
+ ldr r1, _022449E0 ; =0x0000216C
+ ldr r2, _022449D8 ; =0x801FDA49
+ ldr r0, [r5, r1]
+ tst r2, r0
+ beq _022449C6
+ add r1, r1, #4
+ mov r2, #2
+ ldr r1, [r5, r1]
+ lsl r2, r2, #0x16
+ tst r2, r1
+ beq _022449B8
+ ldr r2, _022449E4 ; =0x00040008
+ tst r2, r0
+ bne _022449C6
+_022449B8:
+ mov r2, #1
+ lsl r2, r2, #0x1c
+ tst r1, r2
+ beq _022449C8
+ ldr r1, _022449E8 ; =0x00010001
+ tst r0, r1
+ beq _022449C8
+_022449C6:
+ mov r6, #1
+_022449C8:
+ ldr r0, _022449D4 ; =0x00002170
+ mov r1, #0
+ str r1, [r5, r0]
+_022449CE:
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ nop
+_022449D4: .word 0x00002170
+_022449D8: .word 0x801FDA49
+_022449DC: .word 0x00002D8C
+_022449E0: .word 0x0000216C
+_022449E4: .word 0x00040008
+_022449E8: .word 0x00010001
+
+ thumb_func_start MOD11_022449EC
+MOD11_022449EC: ; 0x022449EC
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r0, _02244C04 ; =0x00002174
+ add r5, r1, #0
+ add r4, r2, #0
+ ldr r2, [r5, r0]
+ mov r1, #2
+ lsl r1, r1, #0x1c
+ add r3, r2, #0
+ mov r6, #0
+ tst r3, r1
+ beq _02244A20
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_0224C5DC
+ str r0, [r4]
+ ldr r0, _02244C04 ; =0x00002174
+ add r1, r6, #0
+ str r1, [r5, r0]
+ sub r0, #8
+ ldr r1, [r5, r0]
+ ldr r0, _02244C08 ; =0x801FDA49
+ tst r0, r1
+ bne _02244AC0
+ mov r6, #1
+ b _02244C00
+_02244A20:
+ lsr r3, r1, #5
+ tst r3, r2
+ beq _02244A54
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_0224C5DC
+ str r0, [r4]
+ ldr r0, _02244C04 ; =0x00002174
+ add r1, r6, #0
+ str r1, [r5, r0]
+ add r1, r5, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ add r0, r5, #0
+ bl MOD11_0224AD9C
+ cmp r0, #0
+ bne _02244AC0
+ ldr r0, _02244C0C ; =0x0000216C
+ ldr r1, [r5, r0]
+ ldr r0, _02244C08 ; =0x801FDA49
+ tst r0, r1
+ bne _02244AC0
+ mov r6, #1
+ b _02244C00
+_02244A54:
+ lsr r3, r1, #4
+ tst r3, r2
+ beq _02244A96
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_0224C5DC
+ str r0, [r4]
+ ldr r0, _02244C04 ; =0x00002174
+ add r1, r6, #0
+ str r1, [r5, r0]
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02244C10 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _02244AC0
+ add r0, r5, #0
+ bl MOD11_0224AD9C
+ cmp r0, #0
+ bne _02244AC0
+ ldr r0, _02244C0C ; =0x0000216C
+ ldr r1, [r5, r0]
+ ldr r0, _02244C08 ; =0x801FDA49
+ tst r0, r1
+ bne _02244AC0
+ mov r6, #1
+ b _02244C00
+_02244A96:
+ lsr r3, r1, #1
+ tst r3, r2
+ beq _02244AC6
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_0224C5DC
+ str r0, [r4]
+ ldr r0, _02244C04 ; =0x00002174
+ add r1, r6, #0
+ str r1, [r5, r0]
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02244C10 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02244AC2
+_02244AC0:
+ b _02244C00
+_02244AC2:
+ mov r6, #1
+ b _02244C00
+_02244AC6:
+ lsr r1, r1, #3
+ tst r1, r2
+ beq _02244B50
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x20
+ ldr r0, _02244C14 ; =0x00003044
+ bne _02244AEA
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02244C18 ; =0x000003E5
+ ldrb r0, [r1, r0]
+ lsl r0, r0, #0x11
+ lsr r6, r0, #0x10
+ b _02244AF4
+_02244AEA:
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02244C18 ; =0x000003E5
+ ldrb r6, [r1, r0]
+_02244AF4:
+ cmp r6, #0
+ bne _02244AFC
+ bl ErrorHandling
+_02244AFC:
+ bl LCRandom
+ mov r1, #0x64
+ bl _s32_div_f
+ cmp r1, r6
+ bge _02244B16
+ ldr r1, _02244C1C ; =0x0000213C
+ mov r0, #1
+ ldr r2, [r5, r1]
+ lsl r0, r0, #0x16
+ orr r0, r2
+ str r0, [r5, r1]
+_02244B16:
+ ldr r2, _02244C04 ; =0x00002174
+ add r0, r5, #0
+ ldr r2, [r5, r2]
+ mov r1, #2
+ bl MOD11_0224C5DC
+ str r0, [r4]
+ ldr r1, _02244C04 ; =0x00002174
+ mov r0, #0
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r2, [r0]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r5, r0
+ ldr r0, _02244C10 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ bne _02244B4C
+ add r0, r1, #0
+ sub r0, #0x38
+ ldr r2, [r5, r0]
+ ldr r0, _02244C20 ; =0xFFBFFFFF
+ sub r1, #0x38
+ and r0, r2
+ str r0, [r5, r1]
+_02244B4C:
+ mov r6, #1
+ b _02244C00
+_02244B50:
+ cmp r2, #0
+ beq _02244BD2
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x20
+ ldr r0, _02244C14 ; =0x00003044
+ bne _02244B72
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02244C18 ; =0x000003E5
+ ldrb r0, [r1, r0]
+ lsl r0, r0, #0x11
+ lsr r7, r0, #0x10
+ b _02244B7C
+_02244B72:
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02244C18 ; =0x000003E5
+ ldrb r7, [r1, r0]
+_02244B7C:
+ cmp r7, #0
+ bne _02244B84
+ bl ErrorHandling
+_02244B84:
+ bl LCRandom
+ mov r1, #0x64
+ bl _s32_div_f
+ cmp r1, r7
+ bge _02244C00
+ ldr r2, _02244C04 ; =0x00002174
+ add r0, r5, #0
+ ldr r2, [r5, r2]
+ mov r1, #2
+ bl MOD11_0224C5DC
+ str r0, [r4]
+ ldr r0, _02244C04 ; =0x00002174
+ mov r1, #0
+ str r1, [r5, r0]
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02244C10 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _02244C00
+ add r0, r5, #0
+ bl MOD11_0224AD9C
+ cmp r0, #0
+ bne _02244C00
+ ldr r0, _02244C0C ; =0x0000216C
+ ldr r1, [r5, r0]
+ ldr r0, _02244C08 ; =0x801FDA49
+ tst r0, r1
+ bne _02244C00
+ mov r6, #1
+ b _02244C00
+_02244BD2:
+ add r0, r0, #4
+ ldr r2, [r5, r0]
+ cmp r2, #0
+ beq _02244C00
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_0224C5DC
+ str r0, [r4]
+ ldr r0, _02244C24 ; =0x00002178
+ add r1, r6, #0
+ str r1, [r5, r0]
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02244C10 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02244C00
+ mov r6, #1
+_02244C00:
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02244C04: .word 0x00002174
+_02244C08: .word 0x801FDA49
+_02244C0C: .word 0x0000216C
+_02244C10: .word 0x00002D8C
+_02244C14: .word 0x00003044
+_02244C18: .word 0x000003E5
+_02244C1C: .word 0x0000213C
+_02244C20: .word 0xFFBFFFFF
+_02244C24: .word 0x00002178
+
+ thumb_func_start MOD11_02244C28
+MOD11_02244C28: ; 0x02244C28
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r6, r0, #0
+ mov r0, #0xff
+ add r4, r1, #0
+ add r5, r2, #0
+ str r0, [sp, #0xc]
+ cmp r3, #0
+ beq _02244C44
+ lsl r0, r3, #4
+ add r1, r4, r0
+ ldr r0, _02244F24 ; =0x000003E6
+ ldrh r0, [r1, r0]
+ b _02244C46
+_02244C44:
+ ldr r0, [sp, #0x34]
+_02244C46:
+ cmp r0, #4
+ bne _02244CD6
+ add r0, r6, #0
+ bl MOD11_0222FF84
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ bl MOD11_02253A4C
+ ldr r1, _02244F28 ; =0x0000217E
+ mov r2, #0
+ strb r2, [r4, r1]
+ ldrb r1, [r4, r1]
+ ldr r2, [sp, #8]
+ cmp r1, r2
+ bge _02244CC4
+ mov r2, #1
+ add r5, r0, #0
+ and r5, r2
+_02244C72:
+ ldr r0, _02244F2C ; =0x000021EC
+ add r1, r4, r1
+ ldrb r7, [r1, r0]
+ mov r0, #0xc0
+ mul r0, r7
+ add r1, r4, r0
+ ldr r0, _02244F30 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02244CB2
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD11_0222FF7C
+ str r0, [sp]
+ cmp r5, #0
+ beq _02244C9E
+ bl MOD11_02253A4C
+ mov r1, #1
+ tst r0, r1
+ beq _02244CAE
+_02244C9E:
+ cmp r5, #0
+ bne _02244CB2
+ ldr r0, [sp]
+ bl MOD11_02253A4C
+ mov r1, #1
+ tst r0, r1
+ beq _02244CB2
+_02244CAE:
+ str r7, [sp, #0xc]
+ b _02244CC4
+_02244CB2:
+ ldr r0, _02244F28 ; =0x0000217E
+ ldrb r0, [r4, r0]
+ add r1, r0, #1
+ ldr r0, _02244F28 ; =0x0000217E
+ strb r1, [r4, r0]
+ ldrb r1, [r4, r0]
+ ldr r0, [sp, #8]
+ cmp r1, r0
+ blt _02244C72
+_02244CC4:
+ ldr r1, _02244F28 ; =0x0000217E
+ ldr r0, [sp, #8]
+ ldrb r2, [r4, r1]
+ cmp r2, r0
+ bne _02244CD0
+ b _02244F5C
+_02244CD0:
+ add r0, r2, #1
+ strb r0, [r4, r1]
+ b _02244F5C
+_02244CD6:
+ cmp r0, #8
+ bne _02244D26
+ add r0, r6, #0
+ bl MOD11_0222FF84
+ add r2, r0, #0
+ ldr r0, _02244F28 ; =0x0000217E
+ mov r1, #0
+ strb r1, [r4, r0]
+ ldrb r3, [r4, r0]
+ cmp r3, r2
+ bge _02244D18
+ ldr r7, _02244F30 ; =0x00002D8C
+_02244CF0:
+ ldr r1, _02244F2C ; =0x000021EC
+ add r6, r4, r3
+ ldrb r1, [r6, r1]
+ mov r6, #0xc0
+ mul r6, r1
+ add r6, r4, r6
+ ldr r6, [r6, r7]
+ cmp r6, #0
+ beq _02244D0A
+ cmp r1, r5
+ beq _02244D0A
+ str r1, [sp, #0xc]
+ b _02244D18
+_02244D0A:
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ ldr r1, _02244F28 ; =0x0000217E
+ ldrb r3, [r4, r1]
+ cmp r3, r2
+ blt _02244CF0
+_02244D18:
+ cmp r3, r2
+ beq _02244E02
+ ldr r0, _02244F28 ; =0x0000217E
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _02244F5C
+_02244D26:
+ mov r1, #2
+ lsl r1, r1, #8
+ cmp r0, r1
+ bne _02244D72
+ ldr r1, [sp, #0x30]
+ cmp r1, #1
+ bne _02244D72
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _02244D6E
+ bl LCRandom
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1f
+ sub r1, r1, r2
+ mov r0, #0x1f
+ ror r1, r0
+ add r0, r2, r1
+ bne _02244D6E
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_022302BC
+ mov r1, #0xc0
+ mul r1, r0
+ str r0, [sp, #0xc]
+ ldr r0, _02244F30 ; =0x00002D8C
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02244E02
+ str r5, [sp, #0xc]
+ b _02244F5C
+_02244D6E:
+ str r5, [sp, #0xc]
+ b _02244F5C
+_02244D72:
+ mov r1, #1
+ lsl r1, r1, #0xa
+ cmp r0, r1
+ bne _02244D8E
+ ldr r1, [sp, #0x30]
+ cmp r1, #1
+ bne _02244D8E
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD11_022482A4
+ str r0, [sp, #0xc]
+ b _02244F5C
+_02244D8E:
+ cmp r0, #0x80
+ bne _02244DA0
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD11_022482A4
+ str r0, [sp, #0xc]
+ b _02244F5C
+_02244DA0:
+ cmp r0, #0x10
+ beq _02244DB0
+ cmp r0, #0x20
+ beq _02244DB0
+ cmp r0, #1
+ beq _02244DB0
+ cmp r0, #0x40
+ bne _02244DB4
+_02244DB0:
+ str r5, [sp, #0xc]
+ b _02244F5C
+_02244DB4:
+ mov r1, #1
+ lsl r1, r1, #8
+ cmp r0, r1
+ bne _02244DD8
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _02244DD4
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_022302BC
+ str r0, [sp, #0xc]
+ b _02244F5C
+_02244DD4:
+ str r5, [sp, #0xc]
+ b _02244F5C
+_02244DD8:
+ lsl r1, r1, #1
+ cmp r0, r1
+ bne _02244E0C
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _02244E08
+ lsl r0, r5, #4
+ add r1, r4, r0
+ ldr r0, _02244F34 ; =0x000021AC
+ ldr r0, [r1, r0]
+ mov r1, #0xc0
+ mul r1, r0
+ str r0, [sp, #0xc]
+ ldr r0, _02244F30 ; =0x00002D8C
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02244E04
+_02244E02:
+ b _02244F5C
+_02244E04:
+ str r5, [sp, #0xc]
+ b _02244F5C
+_02244E08:
+ str r5, [sp, #0xc]
+ b _02244F5C
+_02244E0C:
+ cmp r0, #2
+ beq _02244E16
+ ldr r0, [sp, #0x30]
+ cmp r0, #1
+ bne _02244ED6
+_02244E16:
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ str r0, [sp, #0x10]
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_02230270
+ add r7, r0, #0
+ mov r1, #1
+ eor r7, r1
+ add r0, r6, #0
+ add r1, r5, #0
+ mov r2, #0
+ bl MOD11_02230308
+ str r0, [sp, #0x14]
+ add r0, r6, #0
+ add r1, r5, #0
+ mov r2, #2
+ bl MOD11_02230308
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x10]
+ mov r1, #2
+ tst r0, r1
+ beq _02244EBE
+ mov r0, #0x71
+ lsl r0, r0, #2
+ add r1, r4, r0
+ lsl r0, r7, #3
+ ldr r0, [r1, r0]
+ lsl r1, r0, #0xb
+ lsr r1, r1, #0x1f
+ beq _02244E72
+ lsl r0, r0, #9
+ lsr r2, r0, #0x1e
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _02244F30 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02244E72
+ str r2, [sp, #0xc]
+ b _02244F5C
+_02244E72:
+ ldr r0, [sp, #0x14]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ add r0, r4, r2
+ ldr r2, _02244F30 ; =0x00002D8C
+ ldr r0, [r0, r2]
+ cmp r0, #0
+ beq _02244EA0
+ ldr r3, [sp, #0x18]
+ mul r1, r3
+ add r1, r4, r1
+ ldr r1, [r1, r2]
+ cmp r1, #0
+ beq _02244EA0
+ bl LCRandom
+ lsl r0, r0, #0x1f
+ lsr r1, r0, #0x1d
+ add r0, sp, #0x14
+ ldr r0, [r0, r1]
+ str r0, [sp, #0xc]
+ b _02244F5C
+_02244EA0:
+ cmp r0, #0
+ beq _02244EAA
+ ldr r0, [sp, #0x14]
+ str r0, [sp, #0xc]
+ b _02244F5C
+_02244EAA:
+ ldr r2, [sp, #0x18]
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _02244F30 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02244F5C
+ str r2, [sp, #0xc]
+ b _02244F5C
+_02244EBE:
+ mov r0, #1
+ add r2, r5, #0
+ eor r2, r0
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _02244F30 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02244F5C
+ str r2, [sp, #0xc]
+ b _02244F5C
+_02244ED6:
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD11_02230270
+ mov r1, #1
+ eor r0, r1
+ str r0, [sp, #4]
+ lsl r0, r5, #4
+ add r1, r4, r0
+ ldr r0, _02244F34 ; =0x000021AC
+ ldr r7, [r1, r0]
+ add r0, r6, #0
+ bl MOD11_0222FF84
+ mov r0, #0x71
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r0, [sp, #4]
+ lsl r0, r0, #3
+ ldr r0, [r1, r0]
+ lsl r1, r0, #0xb
+ lsr r1, r1, #0x1f
+ beq _02244F1A
+ lsl r0, r0, #9
+ lsr r0, r0, #0x1e
+ mov r1, #0xc0
+ mul r1, r0
+ add r2, r4, r1
+ ldr r1, _02244F30 ; =0x00002D8C
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ beq _02244F1A
+ str r0, [sp, #0xc]
+ b _02244F5C
+_02244F1A:
+ mov r0, #0xc0
+ mul r0, r7
+ add r1, r4, r0
+ ldr r0, _02244F30 ; =0x00002D8C
+ b _02244F38
+ .align 2, 0
+_02244F24: .word 0x000003E6
+_02244F28: .word 0x0000217E
+_02244F2C: .word 0x000021EC
+_02244F30: .word 0x00002D8C
+_02244F34: .word 0x000021AC
+_02244F38:
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02244F42
+ str r7, [sp, #0xc]
+ b _02244F5C
+_02244F42:
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD11_022482A4
+ mov r1, #0xc0
+ mul r1, r0
+ add r2, r4, r1
+ ldr r1, _02244F64 ; =0x00002D8C
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ beq _02244F5C
+ str r0, [sp, #0xc]
+_02244F5C:
+ ldr r0, [sp, #0xc]
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02244F64: .word 0x00002D8C
+
+ thumb_func_start MOD11_02244F68
+MOD11_02244F68: ; 0x02244F68
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x6c]
+ add r7, r2, #0
+ add r6, r3, #0
+ cmp r0, #0xff
+ beq _02244FC2
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x60
+ beq _02244FC2
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x68
+ beq _02244FC2
+ ldr r0, [sp, #4]
+ add r1, r7, #0
+ bl MOD11_02230270
+ add r2, r0, #0
+ mov r1, #1
+ mov r0, #0x71
+ eor r2, r1
+ lsl r0, r0, #2
+ add r1, r5, r0
+ lsl r0, r2, #3
+ ldr r0, [r1, r0]
+ lsl r1, r0, #0xb
+ lsr r1, r1, #0x1f
+ beq _02244FC4
+ lsl r0, r0, #9
+ lsr r1, r0, #0x1e
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _022450F8 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02244FC4
+_02244FC2:
+ b _022450F4
+_02244FC4:
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ add r2, r7, #0
+ add r3, r6, #0
+ bl MOD11_0224C8EC
+ str r0, [sp, #0xc]
+ cmp r0, #0
+ bne _02244FE0
+ lsl r0, r6, #4
+ add r1, r5, r0
+ ldr r0, _022450FC ; =0x000003E2
+ ldrb r0, [r1, r0]
+ str r0, [sp, #0xc]
+_02244FE0:
+ ldr r0, [sp, #4]
+ bl MOD11_0222FF84
+ str r0, [sp, #8]
+ ldr r0, [sp, #0xc]
+ cmp r0, #0xd
+ bne _02245070
+ lsl r0, r6, #4
+ add r1, r5, r0
+ ldr r0, _02245100 ; =0x000003E6
+ ldrh r0, [r1, r0]
+ cmp r0, #0
+ beq _02244FFE
+ cmp r0, #2
+ bne _02245070
+_02244FFE:
+ ldr r0, _02245104 ; =0x0000213C
+ ldr r1, [r5, r0]
+ mov r0, #0x20
+ tst r0, r1
+ bne _02245070
+ mov r0, #0x1f
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #9
+ add r3, r7, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _02245070
+ ldr r0, [sp, #8]
+ mov r6, #0
+ cmp r0, #0
+ ble _02245050
+_02245024:
+ ldr r0, _02245108 ; =0x000021EC
+ add r1, r5, r6
+ ldrb r4, [r1, r0]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x1f
+ bne _02245048
+ mov r0, #0xc0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _022450F8 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02245048
+ cmp r7, r4
+ bne _02245050
+_02245048:
+ ldr r0, [sp, #8]
+ add r6, r6, #1
+ cmp r6, r0
+ blt _02245024
+_02245050:
+ ldr r0, [r5, #0x6c]
+ cmp r4, r0
+ beq _022450F4
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r3, r5, r0
+ mov r0, #0x1c
+ add r2, r4, #0
+ mul r2, r0
+ ldr r1, [r3, r2]
+ mov r0, #2
+ orr r0, r1
+ str r0, [r3, r2]
+ add sp, #0x10
+ str r4, [r5, #0x6c]
+ pop {r3, r4, r5, r6, r7, pc}
+_02245070:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0xb
+ bne _022450F4
+ lsl r0, r6, #4
+ add r1, r5, r0
+ ldr r0, _02245100 ; =0x000003E6
+ ldrh r0, [r1, r0]
+ cmp r0, #0
+ beq _02245086
+ cmp r0, #2
+ bne _022450F4
+_02245086:
+ ldr r0, _02245104 ; =0x0000213C
+ ldr r1, [r5, r0]
+ mov r0, #0x20
+ tst r0, r1
+ bne _022450F4
+ mov r0, #0x72
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #9
+ add r3, r7, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _022450F4
+ ldr r0, [sp, #8]
+ mov r6, #0
+ cmp r0, #0
+ ble _022450D8
+_022450AC:
+ ldr r0, _02245108 ; =0x000021EC
+ add r1, r5, r6
+ ldrb r4, [r1, r0]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x72
+ bne _022450D0
+ mov r0, #0xc0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _022450F8 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _022450D0
+ cmp r7, r4
+ bne _022450D8
+_022450D0:
+ ldr r0, [sp, #8]
+ add r6, r6, #1
+ cmp r6, r0
+ blt _022450AC
+_022450D8:
+ ldr r0, [r5, #0x6c]
+ cmp r4, r0
+ beq _022450F4
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r3, r5, r0
+ mov r0, #0x1c
+ add r2, r4, #0
+ mul r2, r0
+ ldr r1, [r3, r2]
+ mov r0, #4
+ orr r0, r1
+ str r0, [r3, r2]
+ str r4, [r5, #0x6c]
+_022450F4:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022450F8: .word 0x00002D8C
+_022450FC: .word 0x000003E2
+_02245100: .word 0x000003E6
+_02245104: .word 0x0000213C
+_02245108: .word 0x000021EC
+
+ thumb_func_start MOD11_0224510C
+MOD11_0224510C: ; 0x0224510C
+ push {r3, r4, r5, lr}
+ ldr r0, _02245188 ; =0x0000216C
+ add r4, r1, #0
+ ldr r1, [r4, r0]
+ ldr r0, _0224518C ; =0x801FDA49
+ mov r2, #0
+ tst r0, r1
+ bne _0224514A
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r3, [r4, #0x6c]
+ mov r0, #0x1c
+ mul r0, r3
+ ldr r3, [r1, r0]
+ lsl r5, r3, #0x1e
+ lsr r5, r5, #0x1f
+ beq _0224514A
+ mov r2, #2
+ bic r3, r2
+ str r3, [r1, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xb4
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r2, #1
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_0224514A:
+ ldr r0, _02245188 ; =0x0000216C
+ ldr r1, [r4, r0]
+ ldr r0, _0224518C ; =0x801FDA49
+ tst r0, r1
+ bne _02245182
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r1, r4, r0
+ ldr r3, [r4, #0x6c]
+ mov r0, #0x1c
+ mul r0, r3
+ ldr r3, [r1, r0]
+ lsl r5, r3, #0x1d
+ lsr r5, r5, #0x1f
+ beq _02245182
+ mov r2, #4
+ bic r3, r2
+ str r3, [r1, r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xb4
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ mov r2, #1
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_02245182:
+ add r0, r2, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02245188: .word 0x0000216C
+_0224518C: .word 0x801FDA49
+
+ thumb_func_start MOD11_02245190
+MOD11_02245190: ; 0x02245190
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r4, r2, #0
+ mov r0, #0xc0
+ add r5, r1, #0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _022451BC ; =0x00002DB8
+ ldrh r0, [r1, r0]
+ cmp r0, #0
+ bne _022451B0
+ lsl r1, r4, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ bl MOD11_0224C83C
+_022451B0:
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD11_02256150
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_022451BC: .word 0x00002DB8
+
+ thumb_func_start MOD11_022451C0
+MOD11_022451C0: ; 0x022451C0
+ push {r4, r5}
+ ldr r0, _022451E8 ; =0x00002DB0
+ add r4, r2, #0
+ add r5, r1, r0
+ mov r0, #0xc0
+ mul r4, r0
+ mov r0, #1
+ ldr r3, [r5, r4]
+ lsl r0, r0, #0xc
+ orr r0, r3
+ str r0, [r5, r4]
+ ldr r0, _022451EC ; =0x00003044
+ lsl r2, r2, #2
+ ldr r3, [r1, r0]
+ add r1, r1, r2
+ add r0, #8
+ str r3, [r1, r0]
+ pop {r4, r5}
+ bx lr
+ nop
+_022451E8: .word 0x00002DB0
+_022451EC: .word 0x00003044
+
+ thumb_func_start MOD11_022451F0
+MOD11_022451F0: ; 0x022451F0
+ push {r4, r5}
+ ldr r4, _02245234 ; =0x00002DB0
+ add r3, r2, #0
+ mov r0, #0xc0
+ mul r3, r0
+ add r0, r1, r4
+ ldr r5, [r0, r3]
+ ldr r2, _02245238 ; =0xFFFFEFFF
+ and r2, r5
+ str r2, [r0, r3]
+ ldr r5, [r0, r3]
+ ldr r2, _0224523C ; =0xFFFFFCFF
+ and r2, r5
+ str r2, [r0, r3]
+ add r0, r4, #0
+ add r0, #0x10
+ add r5, r1, r0
+ ldr r2, [r5, r3]
+ ldr r0, _02245240 ; =0xDFFBFF3F
+ add r4, #0x18
+ and r0, r2
+ str r0, [r5, r3]
+ add r2, r1, r4
+ ldr r1, [r2, r3]
+ ldr r0, _02245244 ; =0xFFFC7FFF
+ and r0, r1
+ str r0, [r2, r3]
+ ldr r1, [r2, r3]
+ ldr r0, _02245248 ; =0xFFE3FFFF
+ and r0, r1
+ str r0, [r2, r3]
+ pop {r4, r5}
+ bx lr
+ nop
+_02245234: .word 0x00002DB0
+_02245238: .word 0xFFFFEFFF
+_0224523C: .word 0xFFFFFCFF
+_02245240: .word 0xDFFBFF3F
+_02245244: .word 0xFFFC7FFF
+_02245248: .word 0xFFE3FFFF
+
+ thumb_func_start MOD11_0224524C
+MOD11_0224524C: ; 0x0224524C
+ mov r2, #0xc0
+ mul r2, r1
+ add r1, r0, r2
+ ldr r0, _02245298 ; =0x00002DAC
+ ldr r0, [r1, r0]
+ mov r1, #7
+ tst r1, r0
+ beq _02245260
+ mov r0, #1
+ bx lr
+_02245260:
+ mov r1, #8
+ tst r1, r0
+ beq _0224526A
+ mov r0, #2
+ bx lr
+_0224526A:
+ mov r1, #0x10
+ tst r1, r0
+ beq _02245274
+ mov r0, #3
+ bx lr
+_02245274:
+ mov r1, #0x20
+ tst r1, r0
+ beq _0224527E
+ mov r0, #4
+ bx lr
+_0224527E:
+ mov r1, #0x40
+ tst r1, r0
+ beq _02245288
+ mov r0, #5
+ bx lr
+_02245288:
+ mov r1, #0x80
+ tst r0, r1
+ beq _02245292
+ mov r0, #2
+ bx lr
+_02245292:
+ mov r0, #0
+ bx lr
+ nop
+_02245298: .word 0x00002DAC
+
+ thumb_func_start MOD11_0224529C
+MOD11_0224529C: ; 0x0224529C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r0, [sp]
+ add r7, r1, #0
+ bl MOD11_0222FF74
+ mov r1, #0x84
+ tst r1, r0
+ beq _022452B4
+ add sp, #0xc
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_022452B4:
+ mov r1, #1
+ add r2, r0, #0
+ tst r2, r1
+ bne _022452C2
+ add sp, #0xc
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_022452C2:
+ mov r2, #2
+ tst r0, r2
+ beq _022452CE
+ add sp, #0xc
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_022452CE:
+ ldr r0, [sp]
+ bl MOD11_02230140
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #4]
+_022452DA:
+ ldr r0, [sp, #4]
+ cmp r0, #4
+ bls _022452E2
+ b _02245478
+_022452E2:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022452EE: ; jump table
+ .short _022452F8 - _022452EE - 2 ; case 0
+ .short _0224533C - _022452EE - 2 ; case 1
+ .short _02245384 - _022452EE - 2 ; case 2
+ .short _022453F8 - _022452EE - 2 ; case 3
+ .short _02245478 - _022452EE - 2 ; case 4
+_022452F8:
+ ldr r0, _02245488 ; =0x00002E7C
+ ldrb r0, [r7, r0]
+ cmp r0, #1
+ bne _02245334
+ mov r0, #0x85
+ lsl r0, r0, #6
+ ldr r1, [r7, r0]
+ mov r0, #0x20
+ tst r0, r1
+ bne _02245334
+ ldr r0, [sp, #8]
+ mov r1, #0xd
+ mov r2, #5
+ bl FUN_0206ACD4
+ cmp r0, #0
+ beq _02245334
+ mov r1, #0x85
+ lsl r1, r1, #6
+ ldr r2, [r7, r1]
+ mov r0, #0x20
+ orr r0, r2
+ str r0, [r7, r1]
+ mov r0, #0x13
+ mov r1, #0xd
+ lsl r0, r0, #4
+ str r1, [r7, r0]
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02245334:
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+ b _02245478
+_0224533C:
+ ldr r1, _0224548C ; =0x00002E7D
+ mov r0, #2
+ ldrb r2, [r7, r1]
+ tst r0, r2
+ bne _0224537C
+ add r0, r1, #0
+ sub r0, #0x31
+ sub r1, #0x2d
+ ldr r2, [r7, r0]
+ ldr r0, [r7, r1]
+ lsr r0, r0, #1
+ cmp r2, r0
+ bhi _0224537C
+ ldr r0, [sp, #8]
+ mov r1, #0xe
+ mov r2, #5
+ bl FUN_0206ACD4
+ cmp r0, #0
+ beq _0224537C
+ ldr r1, _0224548C ; =0x00002E7D
+ mov r0, #2
+ ldrb r2, [r7, r1]
+ add sp, #0xc
+ orr r0, r2
+ strb r0, [r7, r1]
+ mov r0, #0x13
+ mov r1, #0xe
+ lsl r0, r0, #4
+ str r1, [r7, r0]
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_0224537C:
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+ b _02245478
+_02245384:
+ ldr r0, _0224548C ; =0x00002E7D
+ ldrb r1, [r7, r0]
+ mov r0, #3
+ tst r0, r1
+ bne _022453F0
+ ldr r0, [sp]
+ mov r1, #1
+ bl MOD11_0222FF88
+ mov r6, #0
+ add r5, r0, #0
+ add r4, r6, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _022453C6
+_022453A4:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl GetPartyMonByIndex
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _022453BA
+ add r6, r6, #1
+_022453BA:
+ add r0, r5, #0
+ add r4, r4, #1
+ bl GetPartyCount
+ cmp r4, r0
+ blt _022453A4
+_022453C6:
+ cmp r6, #1
+ bne _022453F0
+ ldr r0, [sp, #8]
+ mov r1, #0xf
+ mov r2, #5
+ bl FUN_0206ACD4
+ cmp r0, #0
+ beq _022453F0
+ ldr r1, _0224548C ; =0x00002E7D
+ mov r0, #3
+ ldrb r2, [r7, r1]
+ add sp, #0xc
+ orr r0, r2
+ strb r0, [r7, r1]
+ mov r0, #0x13
+ mov r1, #0xf
+ lsl r0, r0, #4
+ str r1, [r7, r0]
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_022453F0:
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+ b _02245478
+_022453F8:
+ ldr r0, _0224548C ; =0x00002E7D
+ ldrb r1, [r7, r0]
+ mov r0, #4
+ tst r0, r1
+ bne _02245472
+ ldr r0, [sp]
+ mov r1, #1
+ bl MOD11_0222FF88
+ mov r6, #0
+ add r5, r0, #0
+ add r4, r6, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0224543A
+_02245418:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl GetPartyMonByIndex
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0224542E
+ add r6, r6, #1
+_0224542E:
+ add r0, r5, #0
+ add r4, r4, #1
+ bl GetPartyCount
+ cmp r4, r0
+ blt _02245418
+_0224543A:
+ cmp r6, #1
+ bne _02245472
+ ldr r0, _02245490 ; =0x00002E4C
+ ldr r1, [r7, r0]
+ add r0, r0, #4
+ ldr r0, [r7, r0]
+ lsr r0, r0, #1
+ cmp r1, r0
+ bhi _02245472
+ ldr r0, [sp, #8]
+ mov r1, #0x10
+ mov r2, #5
+ bl FUN_0206ACD4
+ cmp r0, #0
+ beq _02245472
+ ldr r1, _0224548C ; =0x00002E7D
+ mov r0, #4
+ ldrb r2, [r7, r1]
+ add sp, #0xc
+ orr r0, r2
+ strb r0, [r7, r1]
+ mov r0, #0x13
+ mov r1, #0x10
+ lsl r0, r0, #4
+ str r1, [r7, r0]
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02245472:
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+_02245478:
+ ldr r0, [sp, #4]
+ cmp r0, #4
+ beq _02245480
+ b _022452DA
+_02245480:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02245488: .word 0x00002E7C
+_0224548C: .word 0x00002E7D
+_02245490: .word 0x00002E4C
+
+ thumb_func_start MOD11_02245494
+MOD11_02245494: ; 0x02245494
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r1, _02245574 ; =0x00002144
+ add r5, r0, #0
+ mov r4, #0
+ add r0, r1, #0
+ str r4, [r5, r1]
+ mov r2, #1
+ add r0, #0xc
+ str r2, [r5, r0]
+ add r0, r1, #0
+ add r0, #8
+ str r4, [r5, r0]
+ add r0, r1, #0
+ add r0, #0x10
+ str r4, [r5, r0]
+ add r0, r1, #0
+ mov r2, #0xa
+ add r0, #0x14
+ str r2, [r5, r0]
+ add r0, r1, #0
+ add r0, #0x1c
+ str r4, [r5, r0]
+ add r0, r1, #0
+ add r0, #0x20
+ str r4, [r5, r0]
+ add r0, r1, #0
+ add r0, #0x28
+ str r4, [r5, r0]
+ mov r0, #0xff
+ add r2, r1, #0
+ str r0, [r5, #0x74]
+ add r2, #0x2c
+ str r4, [r5, r2]
+ add r2, r1, #0
+ add r2, #0x30
+ str r4, [r5, r2]
+ add r2, r1, #0
+ add r2, #0x34
+ str r4, [r5, r2]
+ add r2, r5, #0
+ add r2, #0x88
+ str r4, [r2]
+ add r2, r5, #0
+ add r2, #0x8c
+ str r4, [r2]
+ add r2, r5, #0
+ add r2, #0x94
+ str r0, [r2]
+ add r0, r1, #0
+ add r0, #0x38
+ strb r4, [r5, r0]
+ add r0, r1, #0
+ add r0, #0x39
+ strb r4, [r5, r0]
+ add r0, r1, #0
+ add r0, #0x3a
+ strb r4, [r5, r0]
+ add r0, r1, #0
+ add r0, #0x3c
+ str r4, [r5, r0]
+ add r0, r1, #0
+ str r4, [r5, #0x38]
+ add r0, #0x40
+ str r4, [r5, r0]
+ add r0, r1, #0
+ add r0, #0x44
+ str r4, [r5, r0]
+ str r4, [r5, #0x10]
+ str r4, [r5, #0x18]
+ str r4, [r5, #0x20]
+ str r4, [r5, #0x28]
+ str r4, [r5, #0x30]
+ str r4, [r5, #0x3c]
+ str r4, [r5, #0x40]
+ str r4, [r5, #0x48]
+ str r4, [r5, #0x4c]
+ str r4, [r5, #0x50]
+ add r0, r1, #0
+ str r4, [r5, #0x54]
+ sub r0, #8
+ ldr r2, [r5, r0]
+ ldr r0, _02245578 ; =0xFF880000
+ mov r7, #6
+ and r2, r0
+ add r0, r1, #0
+ sub r0, #8
+ str r2, [r5, r0]
+ sub r0, r1, #4
+ ldr r2, [r5, r0]
+ ldr r0, _0224557C ; =0xFFFFFEA1
+ and r2, r0
+ sub r0, r1, #4
+ str r2, [r5, r0]
+ ldr r0, _02245580 ; =0x00003120
+ strb r4, [r5, r0]
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r6, r5, r0
+_02245558:
+ mov r0, #0
+ add r1, r6, #0
+ mov r2, #0x1c
+ bl MIi_CpuClearFast
+ add r1, r5, r4
+ ldr r0, _02245584 ; =0x000021A4
+ add r4, r4, #1
+ add r6, #0x1c
+ strb r7, [r1, r0]
+ cmp r4, #4
+ blt _02245558
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02245574: .word 0x00002144
+_02245578: .word 0xFF880000
+_0224557C: .word 0xFFFFFEA1
+_02245580: .word 0x00003120
+_02245584: .word 0x000021A4
+
+ thumb_func_start MOD11_02245588
+MOD11_02245588: ; 0x02245588
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ str r0, [sp]
+ mov r4, #0
+ add r5, r6, #0
+ mov r7, #0xff
+_02245594:
+ ldr r0, _022455F0 ; =0x0000306C
+ add r2, r6, r4
+ strh r7, [r5, r0]
+ ldr r0, _022455F4 ; =0x000021A0
+ mov r1, #6
+ strb r1, [r2, r0]
+ bl LCRandom
+ ldr r1, _022455F8 ; =0x0000310C
+ add r4, r4, #1
+ strh r0, [r5, r1]
+ add r5, r5, #2
+ cmp r4, #4
+ blt _02245594
+ ldr r0, _022455FC ; =0x00002168
+ mov r1, #1
+ str r1, [r6, r0]
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ str r1, [r6, r0]
+ ldr r0, [sp]
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _022455E4
+ add r0, r1, #0
+ bl MaskOfFlagNo
+ ldr r1, _02245600 ; =0x00003108
+ ldrb r2, [r6, r1]
+ orr r0, r2
+ strb r0, [r6, r1]
+ mov r0, #3
+ bl MaskOfFlagNo
+ ldr r1, _02245600 ; =0x00003108
+ ldrb r2, [r6, r1]
+ orr r0, r2
+ strb r0, [r6, r1]
+_022455E4:
+ ldr r0, _02245604 ; =0x0000311C
+ mov r1, #6
+ strb r1, [r6, r0]
+ add r0, r0, #1
+ strb r1, [r6, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022455F0: .word 0x0000306C
+_022455F4: .word 0x000021A0
+_022455F8: .word 0x0000310C
+_022455FC: .word 0x00002168
+_02245600: .word 0x00003108
+_02245604: .word 0x0000311C
+
+ thumb_func_start MOD11_02245608
+MOD11_02245608: ; 0x02245608
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x58
+ str r1, [sp, #4]
+ str r0, [sp]
+ ldr r1, _0224594C ; =0x00002DC8
+ ldr r0, [sp, #4]
+ add r4, r2, #0
+ add r1, r0, r1
+ mov r0, #0xc0
+ mul r0, r4
+ add r5, r1, r0
+ str r5, [sp, #0x14]
+ add r3, sp, #0x20
+ mov r2, #7
+_02245624:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02245624
+ ldr r0, [sp]
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ ldr r0, [sp]
+ bl MOD11_0222FF74
+ ldr r1, [sp, #4]
+ lsl r2, r4, #4
+ add r1, r1, r2
+ ldr r2, _02245950 ; =0x000021A8
+ mov r0, #0x27
+ str r0, [r1, r2]
+ ldr r1, [sp, #4]
+ sub r2, #0x6c
+ ldr r1, [r1, r2]
+ add r0, #0xd9
+ tst r0, r1
+ bne _022456E2
+ mov r5, #0
+ cmp r6, #0
+ ble _022456BE
+ ldr r1, [sp, #4]
+ ldr r2, _02245954 ; =0x00002DCC
+ add r0, r1, #0
+ add r2, r0, r2
+ mov r0, #0x18
+ mov ip, r0
+ mov r7, #3
+_02245666:
+ ldr r0, _02245958 ; =0x00002DB0
+ ldr r3, [r1, r0]
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ tst r0, r3
+ beq _02245688
+ ldr r0, [r2]
+ lsl r0, r0, #0x16
+ lsr r0, r0, #0x1e
+ cmp r4, r0
+ bne _02245688
+ ldr r0, _02245958 ; =0x00002DB0
+ ldr r3, [r1, r0]
+ ldr r0, _0224595C ; =0xFBFFFFFF
+ and r3, r0
+ ldr r0, _02245958 ; =0x00002DB0
+ str r3, [r1, r0]
+_02245688:
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r3, [r1, r0]
+ mov r0, #0x18
+ tst r0, r3
+ beq _022456B4
+ ldr r0, [r2]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1e
+ cmp r4, r0
+ bne _022456B4
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r0, [r1, r0]
+ mov r3, ip
+ bic r0, r3
+ mov r3, #0xb7
+ lsl r3, r3, #6
+ str r0, [r1, r3]
+ ldr r0, [r2]
+ bic r0, r7
+ str r0, [r2]
+_022456B4:
+ add r5, r5, #1
+ add r1, #0xc0
+ add r2, #0xc0
+ cmp r5, r6
+ blt _02245666
+_022456BE:
+ mov r0, #0xc0
+ mul r0, r4
+ str r0, [sp, #0xc]
+ ldr r2, [sp, #4]
+ ldr r1, [sp, #0xc]
+ mov r0, #0
+ add r1, r2, r1
+ ldr r2, _02245958 ; =0x00002DB0
+ str r0, [r1, r2]
+ ldr r1, [sp, #4]
+ add r2, #0x10
+ add r2, r1, r2
+ ldr r1, [sp, #0xc]
+ add r1, r2, r1
+ str r1, [sp, #0x10]
+ ldr r1, [sp, #0xc]
+ str r0, [r2, r1]
+ b _0224575A
+_022456E2:
+ mov r0, #0xc0
+ mul r0, r4
+ str r0, [sp, #0xc]
+ ldr r1, _02245958 ; =0x00002DB0
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #0xc]
+ add r0, r0, r1
+ ldr r3, [r0, r2]
+ ldr r2, _02245960 ; =0x15100007
+ and r3, r2
+ ldr r2, [sp, #0xc]
+ str r3, [r0, r2]
+ add r2, r1, #0
+ ldr r0, [sp, #4]
+ add r2, #0x10
+ add r0, r0, r2
+ ldr r2, [sp, #0xc]
+ add r2, r0, r2
+ str r2, [sp, #0x10]
+ ldr r2, [sp, #0xc]
+ ldr r3, [r0, r2]
+ ldr r2, _02245964 ; =0x0FA3843F
+ and r3, r2
+ ldr r2, [sp, #0xc]
+ str r3, [r0, r2]
+ mov r2, #0
+ cmp r6, #0
+ ble _0224575A
+ ldr r0, [sp, #4]
+ add r1, #0x1c
+ add r3, r0, #0
+ add r1, r3, r1
+ mov r7, #0x18
+_02245724:
+ mov r3, #0xb7
+ lsl r3, r3, #6
+ ldr r5, [r0, r3]
+ mov r3, #0x18
+ tst r3, r5
+ beq _02245750
+ ldr r3, [r1]
+ lsl r3, r3, #0x1e
+ lsr r3, r3, #0x1e
+ cmp r4, r3
+ bne _02245750
+ mov r3, #0xb7
+ lsl r3, r3, #6
+ ldr r5, [r0, r3]
+ bic r5, r7
+ str r5, [r0, r3]
+ ldr r5, [r0, r3]
+ mov r3, #0x10
+ orr r5, r3
+ mov r3, #0xb7
+ lsl r3, r3, #6
+ str r5, [r0, r3]
+_02245750:
+ add r2, r2, #1
+ add r0, #0xc0
+ add r1, #0xc0
+ cmp r2, r6
+ blt _02245724
+_0224575A:
+ mov r0, #0
+ str r0, [sp, #8]
+ cmp r6, #0
+ ble _022457C2
+ ldr r5, [sp, #4]
+ ldr r1, _02245954 ; =0x00002DCC
+ add r0, r5, #0
+ add r7, r0, r1
+_0224576A:
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ ldr r1, _02245958 ; =0x00002DB0
+ lsl r0, r0, #0x10
+ ldr r1, [r5, r1]
+ tst r0, r1
+ beq _02245792
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ ldr r1, _02245958 ; =0x00002DB0
+ lsl r2, r0, #0x10
+ mov r0, #0
+ mvn r0, r0
+ ldr r1, [r5, r1]
+ eor r0, r2
+ and r1, r0
+ ldr r0, _02245958 ; =0x00002DB0
+ str r1, [r5, r0]
+_02245792:
+ ldr r0, _02245958 ; =0x00002DB0
+ ldr r1, [r5, r0]
+ mov r0, #0xe
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _022457B4
+ ldr r0, [r7]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1e
+ cmp r4, r0
+ bne _022457B4
+ ldr r0, _02245958 ; =0x00002DB0
+ ldr r1, [r5, r0]
+ ldr r0, _02245968 ; =0xFFFF1FFF
+ and r1, r0
+ ldr r0, _02245958 ; =0x00002DB0
+ str r1, [r5, r0]
+_022457B4:
+ ldr r0, [sp, #8]
+ add r5, #0xc0
+ add r0, r0, #1
+ add r7, #0xc0
+ str r0, [sp, #8]
+ cmp r0, r6
+ blt _0224576A
+_022457C2:
+ mov r2, #0
+ add r1, r2, #0
+_022457C6:
+ ldr r0, [sp, #0x14]
+ strb r1, [r0, r2]
+ add r2, r2, #1
+ cmp r2, #0x38
+ blo _022457C6
+ ldr r1, _0224596C ; =0x0000213C
+ ldr r0, [sp, #4]
+ ldr r1, [r0, r1]
+ mov r0, #1
+ lsl r0, r0, #8
+ tst r0, r1
+ beq _0224587A
+ ldr r1, [sp, #4]
+ ldr r0, [sp, #0xc]
+ ldr r2, [sp, #0x38]
+ add r0, r1, r0
+ ldr r1, _02245970 ; =0x00002DE0
+ str r2, [r0, r1]
+ ldr r0, [sp, #4]
+ sub r1, #0x14
+ add r0, r0, r1
+ ldr r1, [sp, #0xc]
+ mov r2, #3
+ ldr r1, [r0, r1]
+ bic r1, r2
+ ldr r2, [sp, #0x24]
+ lsl r2, r2, #0x1e
+ lsr r3, r2, #0x1e
+ mov r2, #3
+ and r2, r3
+ orr r2, r1
+ ldr r1, [sp, #0xc]
+ str r2, [r0, r1]
+ ldr r3, [sp, #0x20]
+ ldr r1, [sp, #0x14]
+ lsl r3, r3, #0x11
+ lsr r3, r3, #0x1e
+ lsl r3, r3, #0x1e
+ ldr r1, [r1]
+ ldr r2, _02245974 ; =0xFFFF9FFF
+ lsr r3, r3, #0x11
+ and r1, r2
+ orr r3, r1
+ ldr r1, [sp, #0x14]
+ str r3, [r1]
+ ldr r1, [sp, #0xc]
+ ldr r3, [r0, r1]
+ asr r1, r2, #5
+ ldr r2, [sp, #0x24]
+ and r1, r3
+ lsl r2, r2, #0x16
+ lsr r2, r2, #0x1e
+ lsl r2, r2, #0x1e
+ lsr r2, r2, #0x16
+ orr r2, r1
+ ldr r1, [sp, #0xc]
+ str r2, [r0, r1]
+ ldr r2, [r0, r1]
+ ldr r1, _02245968 ; =0xFFFF1FFF
+ and r1, r2
+ ldr r2, [sp, #0x24]
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x1d
+ lsl r2, r2, #0x1d
+ lsr r2, r2, #0x10
+ orr r2, r1
+ ldr r1, [sp, #0xc]
+ str r2, [r0, r1]
+ ldr r3, [sp, #0x24]
+ ldr r1, [r0, r1]
+ lsl r3, r3, #0xa
+ ldr r2, _02245978 ; =0xFFC7FFFF
+ lsr r3, r3, #0x1d
+ lsl r3, r3, #0x1d
+ and r1, r2
+ lsr r3, r3, #0xa
+ orr r3, r1
+ ldr r1, [sp, #0xc]
+ str r3, [r0, r1]
+ ldr r3, [r0, r1]
+ asr r1, r2, #3
+ ldr r2, [sp, #0x24]
+ and r1, r3
+ lsl r2, r2, #0xd
+ lsr r2, r2, #0x1d
+ lsl r2, r2, #0x1d
+ lsr r2, r2, #0xd
+ orr r2, r1
+ ldr r1, [sp, #0xc]
+ str r2, [r0, r1]
+_0224587A:
+ mov r0, #0xc0
+ add r3, r0, #0
+ ldr r2, [sp, #4]
+ add r3, #0x90
+ ldr r2, [r2, r3]
+ add r1, r4, #0
+ ldr r3, [sp, #4]
+ mul r1, r0
+ add r5, r0, #0
+ add r1, r3, r1
+ ldr r3, _0224597C ; =0x00002DD4
+ add r2, r2, #1
+ str r2, [r1, r3]
+ ldr r2, [sp, #4]
+ add r5, #0x90
+ ldr r2, [r2, r5]
+ add r0, #0x90
+ add r5, r2, #1
+ add r2, r3, #4
+ str r5, [r1, r2]
+ ldr r1, [sp, #0x14]
+ lsl r7, r4, #1
+ ldr r2, [r1]
+ ldr r1, _02245980 ; =0xBFFFFFFF
+ mov r5, #0
+ and r1, r2
+ ldr r2, [sp, #4]
+ ldr r0, [r2, r0]
+ add r0, r0, #1
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #1
+ orr r1, r0
+ ldr r0, [sp, #0x14]
+ str r1, [r0]
+ add r0, r2, #0
+ ldr r1, _02245984 ; =0x0000305C
+ add r3, r0, r7
+ add r0, r1, #0
+ strh r5, [r3, r1]
+ add r0, #8
+ strh r5, [r3, r0]
+ add r0, r1, #0
+ mov r2, #0xff
+ add r0, #0x10
+ strh r2, [r3, r0]
+ add r0, r1, #0
+ add r0, #0x18
+ strh r5, [r3, r0]
+ add r0, r1, #0
+ add r0, #0x20
+ strh r5, [r3, r0]
+ add r0, r1, #0
+ add r0, #0x28
+ strh r5, [r3, r0]
+ ldr r0, [sp, #4]
+ lsl r2, r4, #3
+ add r0, r0, r2
+ add r2, r1, #0
+ add r2, #0x30
+ strh r5, [r0, r2]
+ add r2, r1, #0
+ add r2, #0x32
+ strh r5, [r0, r2]
+ add r2, r1, #0
+ add r2, #0x34
+ strh r5, [r0, r2]
+ add r2, r1, #0
+ add r2, #0x36
+ strh r5, [r0, r2]
+ add r0, r1, #0
+ add r0, #0x50
+ strh r5, [r3, r0]
+ add r0, r1, #0
+ add r0, #0x68
+ strh r5, [r3, r0]
+ add r0, r1, #0
+ add r0, #0x70
+ strh r5, [r3, r0]
+ add r0, r1, #0
+ add r0, #0x78
+ strh r5, [r3, r0]
+ add r1, #0x80
+ add r0, r4, #0
+ strh r5, [r3, r1]
+ bl MaskOfFlagNo
+ mov r1, #6
+ lsl r3, r0, #8
+ sub r0, r5, #1
+ ldr r2, [sp, #4]
+ lsl r1, r1, #6
+ ldr r2, [r2, r1]
+ eor r0, r3
+ and r2, r0
+ ldr r0, [sp, #4]
+ str r2, [r0, r1]
+ ldr r0, [sp, #0x10]
+ ldr r1, [r0]
+ mov r0, #2
+ lsl r0, r0, #0x16
+ tst r0, r1
+ beq _022459A2
+ ldr r0, _02245988 ; =0x00002D42
+ b _0224598C
+ nop
+_0224594C: .word 0x00002DC8
+_02245950: .word 0x000021A8
+_02245954: .word 0x00002DCC
+_02245958: .word 0x00002DB0
+_0224595C: .word 0xFBFFFFFF
+_02245960: .word 0x15100007
+_02245964: .word 0x0FA3843F
+_02245968: .word 0xFFFF1FFF
+_0224596C: .word 0x0000213C
+_02245970: .word 0x00002DE0
+_02245974: .word 0xFFFF9FFF
+_02245978: .word 0xFFC7FFFF
+_0224597C: .word 0x00002DD4
+_02245980: .word 0xBFFFFFFF
+_02245984: .word 0x0000305C
+_02245988: .word 0x00002D42
+_0224598C:
+ ldr r1, [sp, #4]
+ add r5, r1, r0
+ ldr r1, [sp, #0xc]
+ ldrh r3, [r5, r1]
+ add r1, r0, #2
+ ldr r0, [sp, #4]
+ add r2, r0, r1
+ ldr r0, [sp, #0xc]
+ ldrh r1, [r2, r0]
+ strh r1, [r5, r0]
+ strh r3, [r2, r0]
+_022459A2:
+ mov r5, #0
+ cmp r6, #0
+ ble _022459E6
+ ldr r0, [sp, #4]
+ str r0, [sp, #0x18]
+ add r7, r0, r7
+_022459AE:
+ cmp r5, r4
+ beq _022459D2
+ ldr r0, [sp]
+ add r1, r5, #0
+ bl MOD11_02230270
+ str r0, [sp, #0x1c]
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_02230270
+ ldr r1, [sp, #0x1c]
+ cmp r1, r0
+ beq _022459D2
+ ldr r1, [sp, #0x18]
+ ldr r0, _02245A08 ; =0x00003084
+ mov r2, #0
+ strh r2, [r1, r0]
+_022459D2:
+ ldr r0, _02245A0C ; =0x0000308C
+ mov r1, #0
+ strh r1, [r7, r0]
+ ldr r0, [sp, #0x18]
+ add r5, r5, #1
+ add r0, r0, #2
+ str r0, [sp, #0x18]
+ add r7, #8
+ cmp r5, r6
+ blt _022459AE
+_022459E6:
+ lsl r1, r4, #0x18
+ ldr r0, [sp, #4]
+ lsr r1, r1, #0x18
+ bl MOD11_0224C818
+ lsl r1, r4, #0x18
+ ldr r0, [sp, #4]
+ lsr r1, r1, #0x18
+ bl MOD11_0224C830
+ lsl r1, r4, #0x18
+ ldr r0, [sp, #4]
+ lsr r1, r1, #0x18
+ bl MOD11_0224C83C
+ add sp, #0x58
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02245A08: .word 0x00003084
+_02245A0C: .word 0x0000308C
+
+ thumb_func_start MOD11_02245A10
+MOD11_02245A10: ; 0x02245A10
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ str r1, [sp, #4]
+ str r0, [sp]
+ add r5, r2, #0
+ bl MOD11_0222FF84
+ str r0, [sp, #0xc]
+ mov r0, #0xc0
+ mul r0, r5
+ ldr r1, [sp, #4]
+ str r0, [sp, #8]
+ add r3, r1, r0
+ ldr r0, _02245C34 ; =0x00002D58
+ mov r2, #0
+ mov r1, #6
+_02245A30:
+ add r2, r2, #1
+ strb r1, [r3, r0]
+ add r3, r3, #1
+ cmp r2, #8
+ blt _02245A30
+ mov r0, #0xc0
+ add r1, r5, #0
+ mul r1, r0
+ ldr r0, [sp, #4]
+ mov r7, #0
+ add r2, r0, r1
+ ldr r1, _02245C38 ; =0x00002DB0
+ add r0, r1, #0
+ str r7, [r2, r1]
+ add r0, #0x10
+ str r7, [r2, r0]
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ ble _02245AD6
+ ldr r4, [sp, #4]
+ add r1, #0x1c
+ add r0, r4, #0
+ add r6, r0, r1
+_02245A5E:
+ ldr r0, _02245C38 ; =0x00002DB0
+ ldr r1, [r4, r0]
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ tst r0, r1
+ beq _02245A80
+ ldr r0, [r6]
+ lsl r0, r0, #0x16
+ lsr r0, r0, #0x1e
+ cmp r5, r0
+ bne _02245A80
+ ldr r0, _02245C38 ; =0x00002DB0
+ ldr r1, [r4, r0]
+ ldr r0, _02245C3C ; =0xFBFFFFFF
+ and r1, r0
+ ldr r0, _02245C38 ; =0x00002DB0
+ str r1, [r4, r0]
+_02245A80:
+ add r0, r5, #0
+ bl MaskOfFlagNo
+ ldr r1, _02245C38 ; =0x00002DB0
+ lsl r0, r0, #0x10
+ ldr r1, [r4, r1]
+ tst r0, r1
+ beq _02245AA8
+ add r0, r5, #0
+ bl MaskOfFlagNo
+ ldr r1, _02245C38 ; =0x00002DB0
+ lsl r2, r0, #0x10
+ mov r0, #0
+ mvn r0, r0
+ ldr r1, [r4, r1]
+ eor r0, r2
+ and r1, r0
+ ldr r0, _02245C38 ; =0x00002DB0
+ str r1, [r4, r0]
+_02245AA8:
+ ldr r0, _02245C38 ; =0x00002DB0
+ ldr r1, [r4, r0]
+ mov r0, #0xe
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _02245ACA
+ ldr r0, [r6]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1e
+ cmp r5, r0
+ bne _02245ACA
+ ldr r0, _02245C38 ; =0x00002DB0
+ ldr r1, [r4, r0]
+ ldr r0, _02245C40 ; =0xFFFF1FFF
+ and r1, r0
+ ldr r0, _02245C38 ; =0x00002DB0
+ str r1, [r4, r0]
+_02245ACA:
+ ldr r0, [sp, #0xc]
+ add r7, r7, #1
+ add r4, #0xc0
+ add r6, #0xc0
+ cmp r7, r0
+ blt _02245A5E
+_02245AD6:
+ ldr r1, _02245C44 ; =0x00002DC8
+ ldr r0, [sp, #4]
+ add r1, r0, r1
+ ldr r0, [sp, #8]
+ add r6, r1, r0
+ mov r1, #0
+ add r0, r1, #0
+_02245AE4:
+ strb r0, [r6, r1]
+ add r1, r1, #1
+ cmp r1, #0x38
+ blo _02245AE4
+ mov r2, #0x75
+ ldr r1, [sp, #4]
+ lsl r2, r2, #2
+ add r2, r1, r2
+ lsl r1, r5, #6
+ add r1, r2, r1
+ mov r4, #0
+_02245AFA:
+ strb r4, [r1, r0]
+ add r0, r0, #1
+ cmp r0, #0x40
+ blo _02245AFA
+ mov r2, #0xc0
+ add r3, r2, #0
+ ldr r0, [sp, #4]
+ add r3, #0x90
+ ldr r0, [r0, r3]
+ add r1, r5, #0
+ ldr r3, [sp, #4]
+ mul r1, r2
+ add r3, r3, r1
+ add r1, r2, #0
+ ldr r7, _02245C48 ; =0x00002DD4
+ add r0, r0, #1
+ str r0, [r3, r7]
+ ldr r0, [sp, #4]
+ add r1, #0x90
+ ldr r0, [r0, r1]
+ add r1, r7, #4
+ add r0, r0, #1
+ str r0, [r3, r1]
+ ldr r1, [r6]
+ ldr r0, _02245C4C ; =0xBFFFFFFF
+ add r2, #0x90
+ and r0, r1
+ ldr r1, [sp, #4]
+ mov r3, #0xff
+ ldr r1, [r1, r2]
+ add r1, r1, #1
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #1
+ orr r0, r1
+ str r0, [r6]
+ ldr r0, [sp, #4]
+ lsl r6, r5, #1
+ add r2, r0, r6
+ ldr r0, _02245C50 ; =0x0000305C
+ add r1, r0, #0
+ strh r4, [r2, r0]
+ add r1, #8
+ strh r4, [r2, r1]
+ add r1, r0, #0
+ add r1, #0x10
+ strh r3, [r2, r1]
+ add r1, r0, #0
+ add r1, #0x18
+ strh r4, [r2, r1]
+ add r1, r0, #0
+ add r1, #0x20
+ strh r4, [r2, r1]
+ add r1, r0, #0
+ add r1, #0x28
+ strh r4, [r2, r1]
+ ldr r1, [sp, #4]
+ lsl r3, r5, #3
+ add r1, r1, r3
+ add r3, r0, #0
+ add r3, #0x30
+ strh r4, [r1, r3]
+ add r3, r0, #0
+ add r3, #0x32
+ strh r4, [r1, r3]
+ add r3, r0, #0
+ add r3, #0x34
+ strh r4, [r1, r3]
+ add r3, r0, #0
+ add r3, #0x36
+ strh r4, [r1, r3]
+ add r1, r0, #0
+ add r1, #0x50
+ strh r4, [r2, r1]
+ add r1, r0, #0
+ add r1, #0x68
+ strh r4, [r2, r1]
+ add r1, r0, #0
+ add r1, #0x70
+ strh r4, [r2, r1]
+ add r1, r0, #0
+ add r1, #0x78
+ strh r4, [r2, r1]
+ add r0, #0x80
+ strh r4, [r2, r0]
+ add r0, r5, #0
+ bl MaskOfFlagNo
+ mov r1, #6
+ lsl r3, r0, #8
+ mov r0, #0
+ mvn r0, r0
+ ldr r2, [sp, #4]
+ lsl r1, r1, #6
+ ldr r2, [r2, r1]
+ eor r0, r3
+ and r2, r0
+ ldr r0, [sp, #4]
+ mov r4, #0
+ str r2, [r0, r1]
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ ble _02245C00
+ ldr r7, [sp, #4]
+ add r0, r7, #0
+ add r6, r0, r6
+_02245BCC:
+ cmp r4, r5
+ beq _02245BEE
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_02230270
+ str r0, [sp, #0x10]
+ ldr r0, [sp]
+ add r1, r5, #0
+ bl MOD11_02230270
+ ldr r1, [sp, #0x10]
+ cmp r1, r0
+ beq _02245BEE
+ ldr r0, _02245C54 ; =0x00003084
+ mov r1, #0
+ strh r1, [r7, r0]
+_02245BEE:
+ ldr r0, _02245C58 ; =0x0000308C
+ mov r1, #0
+ strh r1, [r6, r0]
+ ldr r0, [sp, #0xc]
+ add r4, r4, #1
+ add r7, r7, #2
+ add r6, #8
+ cmp r4, r0
+ blt _02245BCC
+_02245C00:
+ mov r1, #0x4f
+ ldr r0, [sp, #4]
+ lsl r1, r1, #2
+ add r3, r0, r1
+ lsl r2, r5, #2
+ ldr r1, [r3, r2]
+ mov r0, #1
+ bic r1, r0
+ str r1, [r3, r2]
+ lsl r1, r5, #0x18
+ ldr r0, [sp, #4]
+ lsr r1, r1, #0x18
+ bl MOD11_0224C818
+ lsl r1, r5, #0x18
+ ldr r0, [sp, #4]
+ lsr r1, r1, #0x18
+ bl MOD11_0224C830
+ lsl r1, r5, #0x18
+ ldr r0, [sp, #4]
+ lsr r1, r1, #0x18
+ bl MOD11_0224C83C
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02245C34: .word 0x00002D58
+_02245C38: .word 0x00002DB0
+_02245C3C: .word 0xFBFFFFFF
+_02245C40: .word 0xFFFF1FFF
+_02245C44: .word 0x00002DC8
+_02245C48: .word 0x00002DD4
+_02245C4C: .word 0xBFFFFFFF
+_02245C50: .word 0x0000305C
+_02245C54: .word 0x00003084
+_02245C58: .word 0x0000308C
+
+ thumb_func_start MOD11_02245C5C
+MOD11_02245C5C: ; 0x02245C5C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ mov r0, #0x75
+ add r5, r1, #0
+ lsl r0, r0, #2
+ add r7, r5, r0
+ mov r0, #0xd1
+ lsl r0, r0, #2
+ add r6, r5, r0
+ mov r0, #8
+ add r4, r5, #0
+ str r0, [sp, #8]
+_02245C7A:
+ mov r0, #0
+ add r1, r7, #0
+ mov r2, #0x40
+ bl MIi_CpuClearFast
+ mov r0, #0
+ add r1, r6, #0
+ mov r2, #4
+ bl MIi_CpuClearFast
+ ldr r0, _02245D24 ; =0x00002DB0
+ ldr r1, [r4, r0]
+ ldr r0, [sp, #8]
+ bic r1, r0
+ ldr r0, _02245D24 ; =0x00002DB0
+ str r1, [r4, r0]
+ add r0, #0x20
+ ldr r0, [r4, r0]
+ add r1, r0, #1
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ cmp r1, r0
+ bge _02245CB6
+ ldr r0, _02245D24 ; =0x00002DB0
+ ldr r1, [r4, r0]
+ ldr r0, _02245D28 ; =0xFFBFFFFF
+ and r1, r0
+ ldr r0, _02245D24 ; =0x00002DB0
+ str r1, [r4, r0]
+_02245CB6:
+ ldr r0, _02245D2C ; =0x00002DAC
+ ldr r1, [r4, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _02245CD6
+ ldr r0, _02245D24 ; =0x00002DB0
+ ldr r1, [r4, r0]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _02245CD6
+ ldr r0, [sp]
+ ldr r2, [sp, #4]
+ add r1, r5, #0
+ bl MOD11_022451F0
+_02245CD6:
+ ldr r0, _02245D2C ; =0x00002DAC
+ ldr r1, [r4, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _02245CF8
+ ldr r0, _02245D24 ; =0x00002DB0
+ ldr r1, [r4, r0]
+ mov r0, #3
+ lsl r0, r0, #0xa
+ tst r0, r1
+ beq _02245CF8
+ ldr r0, _02245D24 ; =0x00002DB0
+ ldr r1, [r4, r0]
+ ldr r0, _02245D30 ; =0xFFFFF3FF
+ and r1, r0
+ ldr r0, _02245D24 ; =0x00002DB0
+ str r1, [r4, r0]
+_02245CF8:
+ ldr r0, [sp, #4]
+ add r7, #0x40
+ add r0, r0, #1
+ add r6, r6, #4
+ add r4, #0xc0
+ str r0, [sp, #4]
+ cmp r0, #4
+ blt _02245C7A
+ mov r2, #0x71
+ lsl r2, r2, #2
+ ldr r0, [r5, r2]
+ ldr r1, _02245D34 ; =0xFFEFFFFF
+ and r0, r1
+ str r0, [r5, r2]
+ add r0, r2, #0
+ add r0, #8
+ ldr r0, [r5, r0]
+ add r2, #8
+ and r0, r1
+ str r0, [r5, r2]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02245D24: .word 0x00002DB0
+_02245D28: .word 0xFFBFFFFF
+_02245D2C: .word 0x00002DAC
+_02245D30: .word 0xFFFFF3FF
+_02245D34: .word 0xFFEFFFFF
+
+ thumb_func_start MOD11_02245D38
+MOD11_02245D38: ; 0x02245D38
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x5c
+ str r0, [sp]
+ ldr r0, [sp, #0x70]
+ add r7, r1, #0
+ str r0, [sp, #0x70]
+ str r2, [sp, #4]
+ add r0, r7, #0
+ add r1, r2, #0
+ add r5, r3, #0
+ bl MOD11_02249D90
+ str r0, [sp, #0x34]
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ add r4, r7, r1
+ str r1, [sp, #0x38]
+ ldr r0, [sp, #0x70]
+ mov r1, #1
+ and r0, r1
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x70]
+ mov r1, #2
+ and r0, r1
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x70]
+ mov r1, #4
+ and r0, r1
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #4]
+ mov r1, #8
+ lsl r0, r0, #1
+ add r0, r7, r0
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x70]
+ mov r2, #0x10
+ and r0, r1
+ ldr r1, _02245F50 ; =0x00002DC8
+ str r0, [sp, #0x1c]
+ add r0, r7, r1
+ str r0, [sp, #0x3c]
+ ldr r0, [sp, #0x70]
+ sub r1, #0x88
+ and r0, r2
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x70]
+ mov r2, #0x20
+ and r0, r2
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x70]
+ mov r2, #0x40
+ and r0, r2
+ str r0, [sp, #0x10]
+ ldr r2, [sp, #0x70]
+ mov r0, #0x80
+ and r2, r0
+ str r2, [sp, #0xc]
+ lsl r2, r0, #2
+ ldr r0, [sp, #0x70]
+ mov r6, #0
+ and r0, r2
+ str r0, [sp, #8]
+ add r0, r7, r1
+ str r0, [sp, #0x40]
+ ldr r0, _02245F54 ; =0x00002DE8
+ str r4, [sp, #0x30]
+ add r0, r4, r0
+ str r0, [sp, #0x44]
+ ldr r0, _02245F58 ; =0x00002DB0
+ add r0, r4, r0
+ str r0, [sp, #0x48]
+ ldr r0, _02245F5C ; =0x00002DEC
+ add r0, r4, r0
+ str r0, [sp, #0x4c]
+ ldr r0, _02245F60 ; =0x00002DF8
+ add r0, r4, r0
+ str r0, [sp, #0x50]
+ ldr r0, _02245F60 ; =0x00002DF8
+ add r0, r4, r0
+ str r0, [sp, #0x58]
+ ldr r0, _02245F60 ; =0x00002DF8
+ add r0, r4, r0
+ str r0, [sp, #0x54]
+_02245DE0:
+ ldr r0, _02245F64 ; =0x00002D4C
+ ldrh r0, [r4, r0]
+ cmp r0, #0
+ bne _02245DF6
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0
+ beq _02245DF6
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ orr r5, r0
+_02245DF6:
+ ldr r1, [sp, #0x30]
+ ldr r0, _02245F68 ; =0x00002D6C
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ bne _02245E0E
+ ldr r0, [sp, #0x28]
+ cmp r0, #0
+ beq _02245E0E
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ orr r5, r0
+_02245E0E:
+ ldr r0, [sp, #0x44]
+ ldrh r1, [r0]
+ ldr r0, _02245F64 ; =0x00002D4C
+ ldrh r0, [r4, r0]
+ cmp r1, r0
+ bne _02245E28
+ ldr r0, [sp, #0x24]
+ cmp r0, #0
+ beq _02245E28
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ orr r5, r0
+_02245E28:
+ ldr r1, [sp, #0x20]
+ ldr r0, _02245F6C ; =0x0000307C
+ ldrh r1, [r1, r0]
+ ldr r0, _02245F64 ; =0x00002D4C
+ ldrh r0, [r4, r0]
+ cmp r1, r0
+ bne _02245E50
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ beq _02245E50
+ ldr r0, [sp, #0x48]
+ ldr r1, [r0]
+ mov r0, #2
+ lsl r0, r0, #0x1e
+ tst r0, r1
+ beq _02245E50
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ orr r5, r0
+_02245E50:
+ ldr r1, [sp, #0x3c]
+ ldr r0, [sp, #0x38]
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x1d
+ beq _02245E7A
+ ldr r0, [sp, #0x18]
+ cmp r0, #0
+ beq _02245E7A
+ ldr r0, _02245F64 ; =0x00002D4C
+ ldrh r0, [r4, r0]
+ lsl r0, r0, #4
+ add r1, r7, r0
+ ldr r0, _02245F70 ; =0x000003E1
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ bne _02245E7A
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ orr r5, r0
+_02245E7A:
+ ldr r3, _02245F64 ; =0x00002D4C
+ ldr r0, [sp]
+ ldrh r3, [r4, r3]
+ ldr r2, [sp, #4]
+ add r1, r7, #0
+ bl MOD11_022471C4
+ cmp r0, #0
+ beq _02245E9A
+ ldr r0, [sp, #0x14]
+ cmp r0, #0
+ beq _02245E9A
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ orr r5, r0
+_02245E9A:
+ ldr r3, _02245F64 ; =0x00002D4C
+ ldr r0, [sp]
+ ldrh r3, [r4, r3]
+ ldr r2, [sp, #4]
+ add r1, r7, #0
+ bl MOD11_02247314
+ cmp r0, #0
+ beq _02245EBA
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ beq _02245EBA
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ orr r5, r0
+_02245EBA:
+ ldr r3, _02245F64 ; =0x00002D4C
+ ldr r0, [sp]
+ ldrh r3, [r4, r3]
+ ldr r2, [sp, #4]
+ add r1, r7, #0
+ bl MOD11_02247348
+ cmp r0, #0
+ beq _02245EDA
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ beq _02245EDA
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ orr r5, r0
+_02245EDA:
+ ldr r0, [sp, #0x4c]
+ ldrh r1, [r0]
+ cmp r1, #0
+ beq _02245EF2
+ ldr r0, _02245F64 ; =0x00002D4C
+ ldrh r0, [r4, r0]
+ cmp r1, r0
+ beq _02245EF2
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ orr r5, r0
+_02245EF2:
+ ldr r0, [sp, #0x34]
+ cmp r0, #0x36
+ beq _02245F00
+ cmp r0, #0x72
+ beq _02245F00
+ cmp r0, #0x7c
+ bne _02245F38
+_02245F00:
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ beq _02245F38
+ ldr r1, [sp, #0x40]
+ ldr r0, [sp, #0x38]
+ add r0, r1, r0
+ ldr r1, [sp, #0x50]
+ ldrh r1, [r1]
+ bl MOD11_022461AC
+ cmp r0, #4
+ bne _02245F20
+ ldr r0, [sp, #0x54]
+ mov r1, #0
+ strh r1, [r0]
+ b _02245F38
+_02245F20:
+ ldr r0, [sp, #0x58]
+ ldrh r1, [r0]
+ cmp r1, #0
+ beq _02245F38
+ ldr r0, _02245F64 ; =0x00002D4C
+ ldrh r0, [r4, r0]
+ cmp r1, r0
+ beq _02245F38
+ add r0, r6, #0
+ bl MaskOfFlagNo
+ orr r5, r0
+_02245F38:
+ ldr r0, [sp, #0x30]
+ add r6, r6, #1
+ add r0, r0, #1
+ add r4, r4, #2
+ str r0, [sp, #0x30]
+ cmp r6, #4
+ bge _02245F48
+ b _02245DE0
+_02245F48:
+ add r0, r5, #0
+ add sp, #0x5c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02245F50: .word 0x00002DC8
+_02245F54: .word 0x00002DE8
+_02245F58: .word 0x00002DB0
+_02245F5C: .word 0x00002DEC
+_02245F60: .word 0x00002DF8
+_02245F64: .word 0x00002D4C
+_02245F68: .word 0x00002D6C
+_02245F6C: .word 0x0000307C
+_02245F70: .word 0x000003E1
+
+ thumb_func_start MOD11_02245F74
+MOD11_02245F74: ; 0x02245F74
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r7, r3, #0
+ mov r3, #1
+ str r3, [sp, #8]
+ mov r3, #4
+ str r3, [sp]
+ mov r3, #0
+ str r0, [sp, #4]
+ add r5, r1, #0
+ add r6, r2, #0
+ ldr r4, [sp, #0x40]
+ bl MOD11_02245D38
+ str r0, [sp, #0xc]
+ add r0, r7, #0
+ bl MaskOfFlagNo
+ ldr r1, [sp, #0xc]
+ tst r0, r1
+ beq _02245FC6
+ mov r0, #0xa
+ strb r0, [r4, #1]
+ ldr r0, _02246188 ; =0x00000261
+ add r1, r6, #0
+ strh r0, [r4, #2]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ str r0, [r4, #4]
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r5, r0
+ lsl r0, r7, #1
+ add r1, r1, r0
+ ldr r0, _0224618C ; =0x00002D4C
+ ldrh r0, [r1, r0]
+ str r0, [r4, #8]
+ mov r0, #0
+ str r0, [sp, #8]
+ b _02246182
+_02245FC6:
+ mov r0, #8
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ add r2, r6, #0
+ mov r3, #0
+ bl MOD11_02245D38
+ str r0, [sp, #0x10]
+ add r0, r7, #0
+ bl MaskOfFlagNo
+ ldr r1, [sp, #0x10]
+ tst r0, r1
+ beq _02245FFE
+ mov r0, #2
+ strb r0, [r4, #1]
+ mov r0, #0x99
+ lsl r0, r0, #2
+ strh r0, [r4, #2]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0224682C
+ str r0, [r4, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ b _02246182
+_02245FFE:
+ mov r0, #0x10
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ add r2, r6, #0
+ mov r3, #0
+ bl MOD11_02245D38
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ bl MaskOfFlagNo
+ ldr r1, [sp, #0x14]
+ tst r0, r1
+ beq _02246044
+ mov r0, #0xa
+ strb r0, [r4, #1]
+ ldr r0, _02246190 ; =0x00000265
+ add r1, r6, #0
+ strh r0, [r4, #2]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ str r0, [r4, #4]
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r5, r0
+ lsl r0, r7, #1
+ add r1, r1, r0
+ ldr r0, _0224618C ; =0x00002D4C
+ ldrh r0, [r1, r0]
+ str r0, [r4, #8]
+ mov r0, #0
+ str r0, [sp, #8]
+ b _02246182
+_02246044:
+ mov r0, #0x20
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ add r2, r6, #0
+ mov r3, #0
+ bl MOD11_02245D38
+ str r0, [sp, #0x18]
+ add r0, r7, #0
+ bl MaskOfFlagNo
+ ldr r1, [sp, #0x18]
+ tst r0, r1
+ beq _0224608C
+ mov r0, #0xa
+ strb r0, [r4, #1]
+ mov r0, #0x9a
+ lsl r0, r0, #2
+ strh r0, [r4, #2]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0224682C
+ str r0, [r4, #4]
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r5, r0
+ lsl r0, r7, #1
+ add r1, r1, r0
+ ldr r0, _0224618C ; =0x00002D4C
+ ldrh r0, [r1, r0]
+ str r0, [r4, #8]
+ mov r0, #0
+ str r0, [sp, #8]
+ b _02246182
+_0224608C:
+ mov r0, #0x40
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ add r2, r6, #0
+ mov r3, #0
+ bl MOD11_02245D38
+ str r0, [sp, #0x1c]
+ add r0, r7, #0
+ bl MaskOfFlagNo
+ ldr r1, [sp, #0x1c]
+ tst r0, r1
+ beq _022460D2
+ mov r0, #0xa
+ strb r0, [r4, #1]
+ ldr r0, _02246194 ; =0x000003E9
+ add r1, r6, #0
+ strh r0, [r4, #2]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ str r0, [r4, #4]
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r5, r0
+ lsl r0, r7, #1
+ add r1, r1, r0
+ ldr r0, _0224618C ; =0x00002D4C
+ ldrh r0, [r1, r0]
+ str r0, [r4, #8]
+ mov r0, #0
+ str r0, [sp, #8]
+ b _02246182
+_022460D2:
+ mov r0, #0x80
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ add r2, r6, #0
+ mov r3, #0
+ bl MOD11_02245D38
+ str r0, [sp, #0x20]
+ add r0, r7, #0
+ bl MaskOfFlagNo
+ ldr r1, [sp, #0x20]
+ tst r0, r1
+ beq _0224611C
+ mov r0, #0x22
+ strb r0, [r4, #1]
+ ldr r0, _02246198 ; =0x00000421
+ add r1, r6, #0
+ strh r0, [r4, #2]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ str r0, [r4, #4]
+ ldr r0, _0224619C ; =0x00000179
+ str r0, [r4, #8]
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r5, r0
+ lsl r0, r7, #1
+ add r1, r1, r0
+ ldr r0, _0224618C ; =0x00002D4C
+ ldrh r0, [r1, r0]
+ str r0, [r4, #0xc]
+ mov r0, #0
+ str r0, [sp, #8]
+ b _02246182
+_0224611C:
+ mov r0, #2
+ lsl r0, r0, #8
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ add r2, r6, #0
+ mov r3, #0
+ bl MOD11_02245D38
+ str r0, [sp, #0x24]
+ add r0, r7, #0
+ bl MaskOfFlagNo
+ ldr r1, [sp, #0x24]
+ tst r0, r1
+ beq _0224615C
+ mov r0, #0x18
+ strb r0, [r4, #1]
+ ldr r0, _022461A0 ; =0x0000038F
+ strh r0, [r4, #2]
+ mov r0, #0xc0
+ mul r0, r6
+ add r2, r5, r0
+ ldr r0, _022461A4 ; =0x00002DB8
+ ldrh r1, [r2, r0]
+ add r0, #0x40
+ str r1, [r4, #4]
+ ldrh r0, [r2, r0]
+ str r0, [r4, #8]
+ mov r0, #0
+ str r0, [sp, #8]
+ b _02246182
+_0224615C:
+ mov r0, #2
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ add r2, r6, #0
+ mov r3, #0
+ bl MOD11_02245D38
+ add r5, r0, #0
+ add r0, r7, #0
+ bl MaskOfFlagNo
+ tst r0, r5
+ beq _02246182
+ mov r0, #0
+ str r0, [sp, #8]
+ strb r0, [r4, #1]
+ ldr r0, _022461A8 ; =0x00000337
+ strh r0, [r4, #2]
+_02246182:
+ ldr r0, [sp, #8]
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02246188: .word 0x00000261
+_0224618C: .word 0x00002D4C
+_02246190: .word 0x00000265
+_02246194: .word 0x000003E9
+_02246198: .word 0x00000421
+_0224619C: .word 0x00000179
+_022461A0: .word 0x0000038F
+_022461A4: .word 0x00002DB8
+_022461A8: .word 0x00000337
+
+ thumb_func_start MOD11_022461AC
+MOD11_022461AC: ; 0x022461AC
+ mov r3, #0
+_022461AE:
+ ldrh r2, [r0, #0xc]
+ cmp r1, r2
+ beq _022461BC
+ add r3, r3, #1
+ add r0, r0, #2
+ cmp r3, #4
+ blt _022461AE
+_022461BC:
+ add r0, r3, #0
+ bx lr
+
+ thumb_func_start MOD11_022461C0
+MOD11_022461C0: ; 0x022461C0
+ push {r4, r5, r6, lr}
+ add r6, r2, #0
+ add r1, r6, #0
+ add r5, r0, #0
+ add r4, r3, #0
+ bl MOD11_02249D90
+ mov r1, #1
+ cmp r0, #0x69
+ beq _022461E6
+ mov r0, #0xc0
+ mul r0, r6
+ add r2, r5, r0
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r2, [r2, r0]
+ lsl r0, r1, #0xa
+ tst r0, r2
+ beq _022461FC
+_022461E6:
+ lsl r0, r4, #1
+ add r2, r4, r0
+ ldr r0, _0224626C ; =0x0225E379
+ ldrb r0, [r0, r2]
+ cmp r0, #2
+ bne _022461FC
+ ldr r0, _02246270 ; =0x0225E37A
+ ldrb r0, [r0, r2]
+ cmp r0, #0
+ bne _022461FC
+ mov r1, #0
+_022461FC:
+ lsl r0, r6, #6
+ add r2, r5, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r2, r0]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x1f
+ beq _0224621A
+ lsl r0, r4, #1
+ add r2, r4, r0
+ ldr r0, _0224626C ; =0x0225E379
+ ldrb r0, [r0, r2]
+ cmp r0, #2
+ bne _0224621A
+ mov r1, #0
+_0224621A:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r2, [r5, r0]
+ mov r0, #7
+ lsl r0, r0, #0xc
+ tst r0, r2
+ beq _0224623E
+ lsl r0, r4, #1
+ add r2, r4, r0
+ ldr r0, _0224626C ; =0x0225E379
+ ldrb r0, [r0, r2]
+ cmp r0, #2
+ bne _0224623E
+ ldr r0, _02246270 ; =0x0225E37A
+ ldrb r0, [r0, r2]
+ cmp r0, #0
+ bne _0224623E
+ mov r1, #0
+_0224623E:
+ mov r0, #0xc0
+ mul r0, r6
+ add r2, r5, r0
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r2, [r2, r0]
+ mov r0, #1
+ lsl r0, r0, #0x16
+ tst r0, r2
+ beq _02246268
+ lsl r0, r4, #1
+ add r2, r4, r0
+ ldr r0, _0224626C ; =0x0225E379
+ ldrb r0, [r0, r2]
+ cmp r0, #0x11
+ bne _02246268
+ ldr r0, _02246270 ; =0x0225E37A
+ ldrb r0, [r0, r2]
+ cmp r0, #0
+ bne _02246268
+ mov r1, #0
+_02246268:
+ add r0, r1, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0224626C: .word 0x0225E379
+_02246270: .word 0x0225E37A
+
+ thumb_func_start MOD11_02246274
+MOD11_02246274: ; 0x02246274
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ ldr r0, [sp, #0x50]
+ add r5, r1, #0
+ str r0, [sp, #0x50]
+ ldr r0, [sp, #0x54]
+ str r2, [sp, #8]
+ str r0, [sp, #0x54]
+ add r0, r2, #0
+ add r4, r3, #0
+ ldr r7, [sp, #0x48]
+ ldr r6, [sp, #0x4c]
+ cmp r0, #0xa5
+ bne _02246296
+ ldr r0, [sp, #0x50]
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+_02246296:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_02249D90
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x24]
+ add r0, r5, #0
+ add r1, r7, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02249D90
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x20]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x60
+ bne _022462DE
+ mov r0, #0
+ str r0, [sp, #0x28]
+ b _022462F6
+_022462DE:
+ cmp r4, #0
+ beq _022462EA
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x28]
+ b _022462F6
+_022462EA:
+ ldr r0, [sp, #8]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02246588 ; =0x000003E2
+ ldrb r0, [r1, r0]
+ str r0, [sp, #0x28]
+_022462F6:
+ ldr r0, [sp, #8]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _0224658C ; =0x000003E1
+ ldrb r0, [r1, r0]
+ str r0, [sp, #0x14]
+ ldr r0, _02246590 ; =0x0000213C
+ ldr r1, [r5, r0]
+ mov r0, #2
+ lsl r0, r0, #0xa
+ tst r0, r1
+ bne _02246354
+ add r0, r5, #0
+ add r1, r7, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ ldr r1, [sp, #0x28]
+ cmp r1, r0
+ beq _02246332
+ add r0, r5, #0
+ add r1, r7, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ ldr r1, [sp, #0x28]
+ cmp r1, r0
+ bne _02246354
+_02246332:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x5b
+ bne _02246346
+ ldr r0, [sp, #0x50]
+ lsl r0, r0, #1
+ str r0, [sp, #0x50]
+ b _02246354
+_02246346:
+ ldr r1, [sp, #0x50]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ bl _s32_div_f
+ str r0, [sp, #0x50]
+_02246354:
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r6, #0
+ mov r3, #0x1a
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02246380
+ ldr r0, [sp, #0x28]
+ cmp r0, #4
+ bne _02246380
+ ldr r0, [sp, #0x20]
+ cmp r0, #0x69
+ beq _02246380
+ ldr r0, [sp, #0x54]
+ ldr r1, [r0]
+ mov r0, #2
+ lsl r0, r0, #0xa
+ orr r1, r0
+ ldr r0, [sp, #0x54]
+ str r1, [r0]
+ b _0224649C
+_02246380:
+ mov r0, #0xc0
+ add r1, r6, #0
+ mul r1, r0
+ ldr r0, _02246594 ; =0x00002DCC
+ add r3, r5, r1
+ ldr r2, [r3, r0]
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x1d
+ beq _022463B8
+ sub r0, #0xc
+ ldr r2, [r3, r0]
+ mov r0, #1
+ lsl r0, r0, #0xa
+ tst r2, r0
+ bne _022463B8
+ ldr r2, [sp, #0x28]
+ cmp r2, #4
+ bne _022463B8
+ ldr r2, [sp, #0x20]
+ cmp r2, #0x69
+ beq _022463B8
+ ldr r1, [sp, #0x54]
+ lsl r0, r0, #0xa
+ ldr r1, [r1]
+ orr r1, r0
+ ldr r0, [sp, #0x54]
+ str r1, [r0]
+ b _0224649C
+_022463B8:
+ add r0, r5, r1
+ mov r4, #0
+ str r0, [sp, #0x18]
+_022463BE:
+ lsl r0, r4, #1
+ ldr r1, _02246598 ; =0x0225E378
+ add r0, r4, r0
+ add r1, r1, r0
+ str r1, [sp, #0xc]
+ ldr r1, _02246598 ; =0x0225E378
+ ldrb r1, [r1, r0]
+ cmp r1, #0xfe
+ bne _022463EE
+ ldr r1, [sp, #0x18]
+ ldr r0, _0224659C ; =0x00002DB0
+ ldr r1, [r1, r0]
+ mov r0, #2
+ lsl r0, r0, #0x1c
+ tst r0, r1
+ bne _0224649C
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x71
+ beq _0224649C
+ add r4, r4, #1
+ b _02246490
+_022463EE:
+ ldr r0, [sp, #0x28]
+ cmp r0, r1
+ bne _0224648E
+ ldr r0, [sp, #0xc]
+ add r1, r6, #0
+ ldrb r0, [r0, #1]
+ mov r2, #0x1b
+ mov r3, #0
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ bl MOD11_02243420
+ ldr r1, [sp, #0x10]
+ cmp r1, r0
+ bne _02246434
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r6, #0
+ add r3, r4, #0
+ bl MOD11_022461C0
+ cmp r0, #1
+ bne _02246434
+ ldr r0, [sp, #0x14]
+ ldr r2, [sp, #0xc]
+ str r0, [sp]
+ ldr r0, [sp, #0x54]
+ ldr r3, [sp, #0x50]
+ str r0, [sp, #4]
+ ldrb r2, [r2, #2]
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_0224C648
+ str r0, [sp, #0x50]
+_02246434:
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ ldr r1, [sp, #0x10]
+ cmp r1, r0
+ bne _0224648E
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ str r0, [sp, #0x2c]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ ldr r1, [sp, #0x2c]
+ cmp r1, r0
+ beq _0224648E
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r6, #0
+ add r3, r4, #0
+ bl MOD11_022461C0
+ cmp r0, #1
+ bne _0224648E
+ ldr r0, [sp, #0x14]
+ ldr r2, [sp, #0xc]
+ str r0, [sp]
+ ldr r0, [sp, #0x54]
+ ldr r3, [sp, #0x50]
+ str r0, [sp, #4]
+ ldrb r2, [r2, #2]
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_0224C648
+ str r0, [sp, #0x50]
+_0224648E:
+ add r4, r4, #1
+_02246490:
+ lsl r0, r4, #1
+ add r1, r4, r0
+ ldr r0, _02246598 ; =0x0225E378
+ ldrb r0, [r0, r1]
+ cmp r0, #0xff
+ bne _022463BE
+_0224649C:
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r6, #0
+ mov r3, #0x19
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _022464E0
+ ldr r1, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_0224C6D4
+ cmp r0, #0
+ beq _022464E0
+ ldr r0, [sp, #0x54]
+ ldr r1, [r0]
+ mov r0, #2
+ tst r0, r1
+ beq _022464CA
+ mov r0, #6
+ and r0, r1
+ cmp r0, #6
+ bne _022464E0
+_022464CA:
+ ldr r0, [sp, #0x14]
+ cmp r0, #0
+ beq _022464E0
+ ldr r0, [sp, #0x54]
+ ldr r1, [r0]
+ mov r0, #1
+ lsl r0, r0, #0x12
+ orr r1, r0
+ ldr r0, [sp, #0x54]
+ str r1, [r0]
+ b _02246582
+_022464E0:
+ ldr r0, _02246590 ; =0x0000213C
+ ldr r2, [r5, r0]
+ mov r0, #2
+ lsl r0, r0, #0xa
+ add r1, r2, #0
+ tst r1, r0
+ bne _0224656E
+ lsl r0, r0, #4
+ tst r0, r2
+ bne _0224656E
+ ldr r0, [sp, #0x54]
+ ldr r1, [r0]
+ mov r0, #2
+ tst r0, r1
+ beq _0224654A
+ ldr r0, [sp, #0x14]
+ cmp r0, #0
+ beq _0224654A
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r6, #0
+ mov r3, #0x6f
+ bl MOD11_02246D84
+ cmp r0, #1
+ beq _02246524
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r6, #0
+ mov r3, #0x74
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02246532
+_02246524:
+ ldr r0, [sp, #0x50]
+ lsl r1, r0, #1
+ add r0, r0, r1
+ mov r1, #4
+ bl MOD11_022476C0
+ str r0, [sp, #0x50]
+_02246532:
+ ldr r0, [sp, #0x24]
+ cmp r0, #0x5f
+ bne _0224654A
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x50]
+ add r0, #0x64
+ str r0, [sp, #0x1c]
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ str r0, [sp, #0x50]
+_0224654A:
+ ldr r0, [sp, #0x54]
+ ldr r1, [r0]
+ mov r0, #4
+ tst r0, r1
+ beq _02246582
+ ldr r0, [sp, #0x14]
+ cmp r0, #0
+ beq _02246582
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x6e
+ bne _02246582
+ ldr r0, [sp, #0x50]
+ lsl r0, r0, #1
+ str r0, [sp, #0x50]
+ b _02246582
+_0224656E:
+ ldr r0, [sp, #0x54]
+ ldr r1, [r0]
+ mov r0, #2
+ bic r1, r0
+ ldr r0, [sp, #0x54]
+ str r1, [r0]
+ mov r0, #4
+ bic r1, r0
+ ldr r0, [sp, #0x54]
+ str r1, [r0]
+_02246582:
+ ldr r0, [sp, #0x50]
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02246588: .word 0x000003E2
+_0224658C: .word 0x000003E1
+_02246590: .word 0x0000213C
+_02246594: .word 0x00002DCC
+_02246598: .word 0x0225E378
+_0224659C: .word 0x00002DB0
+
+ thumb_func_start MOD11_022465A0
+MOD11_022465A0: ; 0x022465A0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r7, r0, #0
+ ldr r0, [sp, #0x2c]
+ str r1, [sp]
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x30]
+ str r3, [sp, #4]
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0x34]
+ ldr r6, [sp, #0x38]
+ str r0, [sp, #0x34]
+ add r0, r1, #0
+ cmp r0, #0xa5
+ beq _022466B6
+ add r0, r3, #0
+ cmp r0, #0x60
+ bne _022465CA
+ mov r0, #0
+ str r0, [sp, #0xc]
+ b _022465E2
+_022465CA:
+ cmp r2, #0
+ beq _022465D6
+ lsl r0, r2, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xc]
+ b _022465E2
+_022465D6:
+ add r0, r1, #0
+ lsl r0, r0, #4
+ add r1, r7, r0
+ ldr r0, _022466BC ; =0x000003E2
+ ldrb r0, [r1, r0]
+ str r0, [sp, #0xc]
+_022465E2:
+ ldr r0, [sp, #4]
+ cmp r0, #0x68
+ beq _02246612
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x1a
+ bne _02246612
+ ldr r0, [sp, #0xc]
+ cmp r0, #4
+ bne _02246612
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r7, r0]
+ mov r0, #7
+ lsl r0, r0, #0xc
+ tst r0, r1
+ bne _02246612
+ ldr r0, [sp, #0x2c]
+ cmp r0, #0x69
+ beq _02246612
+ ldr r1, [r6]
+ mov r0, #8
+ orr r0, r1
+ str r0, [r6]
+ b _02246686
+_02246612:
+ mov r4, #0
+_02246614:
+ lsl r0, r4, #1
+ add r1, r4, r0
+ ldr r0, _022466C0 ; =0x0225E378
+ add r5, r0, r1
+ ldrb r1, [r0, r1]
+ cmp r1, #0xfe
+ bne _0224662C
+ ldr r0, [sp, #4]
+ cmp r0, #0x71
+ beq _02246686
+ add r4, r4, #1
+ b _0224667A
+_0224662C:
+ ldr r0, [sp, #0xc]
+ cmp r0, r1
+ bne _02246678
+ ldrb r0, [r5, #1]
+ ldr r1, [sp, #0x30]
+ str r0, [sp, #8]
+ cmp r1, r0
+ bne _02246652
+ ldr r1, [sp, #0x2c]
+ add r0, r7, #0
+ add r2, r4, #0
+ bl MOD11_022466C4
+ cmp r0, #1
+ bne _02246652
+ ldrb r0, [r5, #2]
+ add r1, r6, #0
+ bl MOD11_02246714
+_02246652:
+ ldr r1, [sp, #0x34]
+ ldr r0, [sp, #8]
+ cmp r1, r0
+ bne _02246678
+ ldr r1, [sp, #0x30]
+ ldr r0, [sp, #0x34]
+ cmp r1, r0
+ beq _02246678
+ ldr r1, [sp, #0x2c]
+ add r0, r7, #0
+ add r2, r4, #0
+ bl MOD11_022466C4
+ cmp r0, #1
+ bne _02246678
+ ldrb r0, [r5, #2]
+ add r1, r6, #0
+ bl MOD11_02246714
+_02246678:
+ add r4, r4, #1
+_0224667A:
+ lsl r0, r4, #1
+ add r1, r4, r0
+ ldr r0, _022466C0 ; =0x0225E378
+ ldrb r0, [r0, r1]
+ cmp r0, #0xff
+ bne _02246614
+_02246686:
+ ldr r0, [sp, #4]
+ cmp r0, #0x68
+ beq _022466B6
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x19
+ bne _022466B6
+ ldr r1, [sp]
+ add r0, r7, #0
+ bl MOD11_0224C6D4
+ cmp r0, #0
+ beq _022466B6
+ ldr r1, [r6]
+ mov r0, #2
+ tst r0, r1
+ beq _022466AE
+ mov r0, #6
+ and r0, r1
+ cmp r0, #6
+ bne _022466B6
+_022466AE:
+ ldr r1, [r6]
+ mov r0, #8
+ orr r0, r1
+ str r0, [r6]
+_022466B6:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022466BC: .word 0x000003E2
+_022466C0: .word 0x0225E378
+
+ thumb_func_start MOD11_022466C4
+MOD11_022466C4: ; 0x022466C4
+ push {r3, r4}
+ mov r3, #1
+ cmp r1, #0x69
+ bne _022466E2
+ lsl r1, r2, #1
+ add r4, r2, r1
+ ldr r1, _0224670C ; =0x0225E379
+ ldrb r1, [r1, r4]
+ cmp r1, #2
+ bne _022466E2
+ ldr r1, _02246710 ; =0x0225E37A
+ ldrb r1, [r1, r4]
+ cmp r1, #0
+ bne _022466E2
+ mov r3, #0
+_022466E2:
+ mov r1, #6
+ lsl r1, r1, #6
+ ldr r1, [r0, r1]
+ mov r0, #7
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _02246706
+ lsl r0, r2, #1
+ add r1, r2, r0
+ ldr r0, _0224670C ; =0x0225E379
+ ldrb r0, [r0, r1]
+ cmp r0, #2
+ bne _02246706
+ ldr r0, _02246710 ; =0x0225E37A
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ bne _02246706
+ mov r3, #0
+_02246706:
+ add r0, r3, #0
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+_0224670C: .word 0x0225E379
+_02246710: .word 0x0225E37A
+
+ thumb_func_start MOD11_02246714
+MOD11_02246714: ; 0x02246714
+ cmp r0, #0
+ beq _02246722
+ cmp r0, #5
+ beq _02246734
+ cmp r0, #0x14
+ beq _0224674C
+ bx lr
+_02246722:
+ ldr r2, [r1]
+ mov r0, #8
+ orr r2, r0
+ mov r0, #4
+ bic r2, r0
+ mov r0, #2
+ bic r2, r0
+ str r2, [r1]
+ bx lr
+_02246734:
+ ldr r2, [r1]
+ mov r0, #2
+ tst r0, r2
+ beq _02246744
+ mov r0, #2
+ bic r2, r0
+ str r2, [r1]
+ bx lr
+_02246744:
+ mov r0, #4
+ orr r0, r2
+ str r0, [r1]
+ bx lr
+_0224674C:
+ ldr r2, [r1]
+ mov r0, #4
+ tst r0, r2
+ beq _0224675C
+ mov r0, #4
+ bic r2, r0
+ str r2, [r1]
+ bx lr
+_0224675C:
+ mov r0, #2
+ orr r0, r2
+ str r0, [r1]
+ bx lr
+
+ thumb_func_start MOD11_02246764
+MOD11_02246764: ; 0x02246764
+ mov r2, #0xd1
+ lsl r2, r2, #2
+ add r2, r0, r2
+ lsl r0, r1, #2
+ ldr r0, [r2, r0]
+ lsl r1, r0, #0x1f
+ lsr r1, r1, #0x1f
+ bne _022467A4
+ lsl r1, r0, #0x1e
+ lsr r1, r1, #0x1f
+ bne _022467A4
+ lsl r1, r0, #0x1d
+ lsr r1, r1, #0x1f
+ bne _022467A4
+ lsl r1, r0, #0x1c
+ lsr r1, r1, #0x1f
+ bne _022467A4
+ lsl r1, r0, #0x1b
+ lsr r1, r1, #0x1f
+ bne _022467A4
+ lsl r1, r0, #0x1a
+ lsr r1, r1, #0x1f
+ bne _022467A4
+ lsl r1, r0, #0x19
+ lsr r1, r1, #0x1f
+ bne _022467A4
+ lsl r1, r0, #0x17
+ lsr r1, r1, #0x1f
+ bne _022467A4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ beq _022467A8
+_022467A4:
+ mov r0, #1
+ bx lr
+_022467A8:
+ mov r0, #0
+ bx lr
+
+ thumb_func_start MOD11_022467AC
+MOD11_022467AC: ; 0x022467AC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r0, [sp]
+ add r5, r1, #0
+ add r6, r2, #0
+ str r3, [sp, #4]
+ mov r4, #0
+ bl MOD11_0222FF84
+ add r7, r0, #0
+ cmp r6, #0
+ beq _022467CA
+ cmp r6, #1
+ beq _022467EE
+ b _02246822
+_022467CA:
+ add r0, r4, #0
+ cmp r7, #0
+ ble _02246822
+ ldr r2, _02246828 ; =0x00002D8C
+_022467D2:
+ ldr r1, [sp, #4]
+ cmp r0, r1
+ beq _022467E4
+ ldr r1, [r5, r2]
+ cmp r1, #0
+ beq _022467E4
+ add r1, r4, #1
+ lsl r1, r1, #0x18
+ lsr r4, r1, #0x18
+_022467E4:
+ add r0, r0, #1
+ add r5, #0xc0
+ cmp r0, r7
+ blt _022467D2
+ b _02246822
+_022467EE:
+ add r6, r4, #0
+ cmp r7, #0
+ ble _02246822
+_022467F4:
+ ldr r0, [sp]
+ add r1, r6, #0
+ bl MOD11_02230270
+ str r0, [sp, #8]
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ bl MOD11_02230270
+ ldr r1, [sp, #8]
+ cmp r1, r0
+ bne _0224681A
+ ldr r0, _02246828 ; =0x00002D8C
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _0224681A
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+_0224681A:
+ add r6, r6, #1
+ add r5, #0xc0
+ cmp r6, r7
+ blt _022467F4
+_02246822:
+ add r0, r4, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02246828: .word 0x00002D8C
+
+ thumb_func_start MOD11_0224682C
+MOD11_0224682C: ; 0x0224682C
+ add r2, r0, r1
+ ldr r0, _02246838 ; =0x0000219C
+ ldrb r0, [r2, r0]
+ lsl r0, r0, #8
+ orr r0, r1
+ bx lr
+ .align 2, 0
+_02246838: .word 0x0000219C
+
+ thumb_func_start MOD11_0224683C
+MOD11_0224683C: ; 0x0224683C
+ push {r4, r5}
+ lsl r3, r1, #4
+ add r5, r0, r3
+ ldr r3, _02246868 ; =0x000021B4
+ mov r2, #0
+ ldr r4, [r5, r3]
+ cmp r4, #1
+ bne _02246862
+ sub r3, r3, #4
+ ldr r3, [r5, r3]
+ cmp r3, #0
+ beq _02246862
+ mov r2, #0xc0
+ mul r2, r1
+ add r1, r0, r2
+ lsl r0, r3, #1
+ add r1, r1, r0
+ ldr r0, _0224686C ; =0x00002D4A
+ ldrh r2, [r1, r0]
+_02246862:
+ add r0, r2, #0
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+_02246868: .word 0x000021B4
+_0224686C: .word 0x00002D4A
+
+ thumb_func_start MOD11_02246870
+MOD11_02246870: ; 0x02246870
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x5c
+ str r2, [sp, #4]
+ str r0, [sp]
+ add r7, r1, #0
+ str r3, [sp, #8]
+ ldr r6, [sp, #0x70]
+ mov r4, #0
+ bl MOD11_0222FF84
+ add r5, r0, #0
+ ldr r0, [sp, #4]
+ cmp r0, #9
+ bhi _022468E4
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02246898: ; jump table
+ .short _022468AC - _02246898 - 2 ; case 0
+ .short _022468E6 - _02246898 - 2 ; case 1
+ .short _02246932 - _02246898 - 2 ; case 2
+ .short _0224696C - _02246898 - 2 ; case 3
+ .short _022469B8 - _02246898 - 2 ; case 4
+ .short _02246A0A - _02246898 - 2 ; case 5
+ .short _02246A2C - _02246898 - 2 ; case 6
+ .short _02246A54 - _02246898 - 2 ; case 7
+ .short _02246A80 - _02246898 - 2 ; case 8
+ .short _02246AB4 - _02246898 - 2 ; case 9
+_022468AC:
+ add r0, r4, #0
+ str r0, [sp, #0x44]
+ cmp r5, #0
+ ble _022468E4
+_022468B4:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x44]
+ bl MOD11_02230270
+ str r0, [sp, #0x48]
+ ldr r0, [sp]
+ ldr r1, [sp, #8]
+ bl MOD11_02230270
+ ldr r1, [sp, #0x48]
+ cmp r1, r0
+ bne _022468DA
+ ldr r1, [sp, #0x44]
+ add r0, r7, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _022468DA
+ add r4, r4, #1
+_022468DA:
+ ldr r0, [sp, #0x44]
+ add r0, r0, #1
+ str r0, [sp, #0x44]
+ cmp r0, r5
+ blt _022468B4
+_022468E4:
+ b _02246AEC
+_022468E6:
+ add r0, r4, #0
+ str r0, [sp, #0xc]
+ cmp r5, #0
+ ble _02246930
+ str r7, [sp, #0x30]
+_022468F0:
+ ldr r0, [sp]
+ ldr r1, [sp, #0xc]
+ bl MOD11_02230270
+ str r0, [sp, #0x4c]
+ ldr r0, [sp]
+ ldr r1, [sp, #8]
+ bl MOD11_02230270
+ ldr r1, [sp, #0x4c]
+ cmp r1, r0
+ bne _02246920
+ ldr r1, [sp, #0x30]
+ ldr r0, _02246AF4 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02246920
+ ldr r1, [sp, #0xc]
+ add r0, r7, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _02246920
+ add r4, r4, #1
+_02246920:
+ ldr r0, [sp, #0x30]
+ add r0, #0xc0
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0xc]
+ add r0, r0, #1
+ str r0, [sp, #0xc]
+ cmp r0, r5
+ blt _022468F0
+_02246930:
+ b _02246AEC
+_02246932:
+ add r0, r4, #0
+ str r0, [sp, #0x10]
+ cmp r5, #0
+ ble _0224696A
+_0224693A:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x10]
+ bl MOD11_02230270
+ str r0, [sp, #0x50]
+ ldr r0, [sp]
+ ldr r1, [sp, #8]
+ bl MOD11_02230270
+ ldr r1, [sp, #0x50]
+ cmp r1, r0
+ beq _02246960
+ ldr r1, [sp, #0x10]
+ add r0, r7, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _02246960
+ add r4, r4, #1
+_02246960:
+ ldr r0, [sp, #0x10]
+ add r0, r0, #1
+ str r0, [sp, #0x10]
+ cmp r0, r5
+ blt _0224693A
+_0224696A:
+ b _02246AEC
+_0224696C:
+ add r0, r4, #0
+ str r0, [sp, #0x14]
+ cmp r5, #0
+ ble _022469B6
+ str r7, [sp, #0x34]
+_02246976:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x14]
+ bl MOD11_02230270
+ str r0, [sp, #0x54]
+ ldr r0, [sp]
+ ldr r1, [sp, #8]
+ bl MOD11_02230270
+ ldr r1, [sp, #0x54]
+ cmp r1, r0
+ beq _022469A6
+ ldr r1, [sp, #0x34]
+ ldr r0, _02246AF4 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _022469A6
+ ldr r1, [sp, #0x14]
+ add r0, r7, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _022469A6
+ add r4, r4, #1
+_022469A6:
+ ldr r0, [sp, #0x34]
+ add r0, #0xc0
+ str r0, [sp, #0x34]
+ ldr r0, [sp, #0x14]
+ add r0, r0, #1
+ str r0, [sp, #0x14]
+ cmp r0, r5
+ blt _02246976
+_022469B6:
+ b _02246AEC
+_022469B8:
+ add r0, r4, #0
+ str r0, [sp, #0x18]
+ cmp r5, #0
+ ble _02246A08
+ str r7, [sp, #0x38]
+_022469C2:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x18]
+ bl MOD11_02230270
+ str r0, [sp, #0x58]
+ ldr r0, [sp]
+ ldr r1, [sp, #8]
+ bl MOD11_02230270
+ ldr r1, [sp, #0x58]
+ cmp r1, r0
+ beq _022469F8
+ ldr r1, [sp, #0x38]
+ ldr r0, _02246AF4 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _022469F8
+ ldr r1, [sp, #0x18]
+ add r0, r7, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _022469F8
+ ldr r0, [sp, #0x18]
+ bl MaskOfFlagNo
+ orr r4, r0
+_022469F8:
+ ldr r0, [sp, #0x38]
+ add r0, #0xc0
+ str r0, [sp, #0x38]
+ ldr r0, [sp, #0x18]
+ add r0, r0, #1
+ str r0, [sp, #0x18]
+ cmp r0, r5
+ blt _022469C2
+_02246A08:
+ b _02246AEC
+_02246A0A:
+ add r0, r4, #0
+ str r0, [sp, #0x1c]
+ cmp r5, #0
+ ble _02246AEC
+_02246A12:
+ ldr r1, [sp, #0x1c]
+ add r0, r7, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _02246A20
+ add r4, r4, #1
+_02246A20:
+ ldr r0, [sp, #0x1c]
+ add r0, r0, #1
+ str r0, [sp, #0x1c]
+ cmp r0, r5
+ blt _02246A12
+ b _02246AEC
+_02246A2C:
+ add r0, r4, #0
+ str r0, [sp, #0x20]
+ cmp r5, #0
+ ble _02246AEC
+_02246A34:
+ ldr r1, [sp, #0x20]
+ ldr r0, [sp, #8]
+ cmp r1, r0
+ beq _02246A48
+ add r0, r7, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _02246A48
+ add r4, r4, #1
+_02246A48:
+ ldr r0, [sp, #0x20]
+ add r0, r0, #1
+ str r0, [sp, #0x20]
+ cmp r0, r5
+ blt _02246A34
+ b _02246AEC
+_02246A54:
+ add r0, r4, #0
+ str r0, [sp, #0x24]
+ cmp r5, #0
+ ble _02246AEC
+_02246A5C:
+ ldr r1, [sp, #0x24]
+ ldr r0, [sp, #8]
+ cmp r1, r0
+ beq _02246A74
+ add r0, r7, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _02246A74
+ ldr r0, [sp, #0x24]
+ add r4, r0, #1
+ b _02246AEC
+_02246A74:
+ ldr r0, [sp, #0x24]
+ add r0, r0, #1
+ str r0, [sp, #0x24]
+ cmp r0, r5
+ blt _02246A5C
+ b _02246AEC
+_02246A80:
+ add r0, r4, #0
+ str r0, [sp, #0x28]
+ cmp r5, #0
+ ble _02246AEC
+ str r7, [sp, #0x3c]
+_02246A8A:
+ ldr r1, [sp, #0x28]
+ add r0, r7, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _02246AA2
+ ldr r1, [sp, #0x3c]
+ ldr r0, _02246AF4 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02246AA2
+ add r4, r4, #1
+_02246AA2:
+ ldr r0, [sp, #0x3c]
+ add r0, #0xc0
+ str r0, [sp, #0x3c]
+ ldr r0, [sp, #0x28]
+ add r0, r0, #1
+ str r0, [sp, #0x28]
+ cmp r0, r5
+ blt _02246A8A
+ b _02246AEC
+_02246AB4:
+ add r0, r4, #0
+ str r0, [sp, #0x2c]
+ cmp r5, #0
+ ble _02246AEC
+ str r7, [sp, #0x40]
+_02246ABE:
+ ldr r1, [sp, #0x2c]
+ ldr r0, [sp, #8]
+ cmp r1, r0
+ beq _02246ADC
+ add r0, r7, #0
+ bl MOD11_02246D1C
+ cmp r6, r0
+ bne _02246ADC
+ ldr r1, [sp, #0x40]
+ ldr r0, _02246AF4 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02246ADC
+ add r4, r4, #1
+_02246ADC:
+ ldr r0, [sp, #0x40]
+ add r0, #0xc0
+ str r0, [sp, #0x40]
+ ldr r0, [sp, #0x2c]
+ add r0, r0, #1
+ str r0, [sp, #0x2c]
+ cmp r0, r5
+ blt _02246ABE
+_02246AEC:
+ add r0, r4, #0
+ add sp, #0x5c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02246AF4: .word 0x00002D8C
+
+ thumb_func_start MOD11_02246AF8
+MOD11_02246AF8: ; 0x02246AF8
+ lsl r1, r1, #4
+ add r1, r0, r1
+ ldr r0, _02246B54 ; =0x000003DE
+ ldrh r2, [r1, r0]
+ cmp r2, #0x9b
+ bgt _02246B2A
+ cmp r2, #0x97
+ blt _02246B10
+ beq _02246B4A
+ cmp r2, #0x9b
+ beq _02246B4A
+ b _02246B4E
+_02246B10:
+ cmp r2, #0x27
+ bgt _02246B1C
+ bge _02246B4A
+ cmp r2, #0x1a
+ beq _02246B4A
+ b _02246B4E
+_02246B1C:
+ cmp r2, #0x4b
+ bgt _02246B24
+ beq _02246B4A
+ b _02246B4E
+_02246B24:
+ cmp r2, #0x91
+ beq _02246B4A
+ b _02246B4E
+_02246B2A:
+ mov r1, #1
+ lsl r1, r1, #8
+ cmp r2, r1
+ bgt _02246B3A
+ bge _02246B4A
+ cmp r2, #0xff
+ beq _02246B4A
+ b _02246B4E
+_02246B3A:
+ add r0, r1, #7
+ cmp r2, r0
+ bgt _02246B44
+ beq _02246B4A
+ b _02246B4E
+_02246B44:
+ add r1, #0x10
+ cmp r2, r1
+ bne _02246B4E
+_02246B4A:
+ mov r0, #1
+ bx lr
+_02246B4E:
+ mov r0, #0
+ bx lr
+ nop
+_02246B54: .word 0x000003DE
+
+ thumb_func_start MOD11_02246B58
+MOD11_02246B58: ; 0x02246B58
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ add r4, r2, #0
+ add r7, r3, #0
+ mov r0, #1
+ cmp r6, #0x70
+ blo _02246B76
+ bl LCRandom
+ mov r1, #0x70
+ bl _u32_div_f
+ add r6, r1, #0
+ mov r0, #0
+_02246B76:
+ lsl r1, r6, #1
+ ldr r2, _02246B90 ; =0x0225E378
+ add r1, r6, r1
+ ldrb r2, [r2, r1]
+ strb r2, [r5]
+ ldr r2, _02246B94 ; =0x0225E379
+ ldrb r2, [r2, r1]
+ strb r2, [r4]
+ ldr r2, _02246B98 ; =0x0225E37A
+ ldrb r1, [r2, r1]
+ strb r1, [r7]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02246B90: .word 0x0225E378
+_02246B94: .word 0x0225E379
+_02246B98: .word 0x0225E37A
+
+ thumb_func_start MOD11_02246B9C
+MOD11_02246B9C: ; 0x02246B9C
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r4, _02246BE4 ; =0x0225E378
+ add r5, r1, #0
+ str r0, [sp]
+ add r6, r2, #0
+ mov r1, #0x28
+_02246BA8:
+ ldrb r2, [r4]
+ ldr r0, [sp]
+ cmp r0, r2
+ bne _02246BD6
+ ldrb r7, [r4, #1]
+ cmp r5, r7
+ bne _02246BC2
+ ldrb r0, [r4, #2]
+ mul r0, r1
+ mov r1, #0xa
+ bl _s32_div_f
+ add r1, r0, #0
+_02246BC2:
+ cmp r6, r7
+ bne _02246BD6
+ cmp r5, r6
+ beq _02246BD6
+ ldrb r0, [r4, #2]
+ mul r0, r1
+ mov r1, #0xa
+ bl _s32_div_f
+ add r1, r0, #0
+_02246BD6:
+ add r4, r4, #3
+ ldrb r0, [r4]
+ cmp r0, #0xff
+ bne _02246BA8
+ add r0, r1, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02246BE4: .word 0x0225E378
+
+ thumb_func_start MOD11_02246BE8
+MOD11_02246BE8: ; 0x02246BE8
+ cmp r0, #0
+ beq _02246C10
+ cmp r0, #0xd6
+ beq _02246C10
+ ldr r2, _02246C18 ; =0x0000017F
+ cmp r0, r2
+ beq _02246C10
+ add r1, r2, #0
+ sub r1, #0x6d
+ cmp r0, r1
+ beq _02246C10
+ sub r1, r2, #1
+ cmp r0, r1
+ beq _02246C10
+ ldr r1, _02246C1C ; =0x0000FF8A
+ add r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #1
+ bhi _02246C14
+_02246C10:
+ mov r0, #1
+ bx lr
+_02246C14:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_02246C18: .word 0x0000017F
+_02246C1C: .word 0x0000FF8A
+
+ thumb_func_start MOD11_02246C20
+MOD11_02246C20: ; 0x02246C20
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r2, #0
+ cmp r1, #0xae
+ bne _02246C4C
+ add r1, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #7
+ beq _02246C48
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #7
+ bne _02246C4C
+_02246C48:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02246C4C:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02246C50
+MOD11_02246C50: ; 0x02246C50
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r2, #0
+ add r5, r1, #0
+ add r1, r6, #0
+ mov r7, #0
+ bl MOD11_02230270
+ str r0, [sp]
+ ldr r0, _02246CA4 ; =0x00002DB8
+ add r4, r5, r0
+ mov r0, #0xc0
+ mul r0, r6
+ str r0, [sp, #4]
+ ldrh r0, [r4, r0]
+ cmp r0, #0
+ beq _02246C9E
+ ldr r0, _02246CA8 ; =0x0000219C
+ add r1, r5, r6
+ ldrb r0, [r1, r0]
+ bl MaskOfFlagNo
+ ldr r1, [sp]
+ lsl r1, r1, #3
+ add r2, r5, r1
+ mov r1, #0x71
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ lsl r1, r1, #3
+ lsr r1, r1, #0x1a
+ tst r0, r1
+ bne _02246C9E
+ ldr r0, [sp, #4]
+ ldrh r0, [r4, r0]
+ bl FUN_0206EA98
+ cmp r0, #0
+ bne _02246C9E
+ mov r7, #1
+_02246C9E:
+ add r0, r7, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02246CA4: .word 0x00002DB8
+_02246CA8: .word 0x0000219C
+
+ thumb_func_start MOD11_02246CAC
+MOD11_02246CAC: ; 0x02246CAC
+ push {r3, lr}
+ mov r2, #0xc0
+ mul r2, r1
+ add r1, r0, r2
+ ldr r0, _02246CC8 ; =0x00002DB8
+ ldrh r0, [r1, r0]
+ bl FUN_0206EA98
+ cmp r0, #0
+ bne _02246CC4
+ mov r0, #1
+ pop {r3, pc}
+_02246CC4:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+_02246CC8: .word 0x00002DB8
+
+ thumb_func_start MOD11_02246CCC
+MOD11_02246CCC: ; 0x02246CCC
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ add r3, r1, #0
+ ldr r1, _02246D18 ; =0x00002D74
+ mul r3, r0
+ add r2, r5, r1
+ ldrb r4, [r2, r3]
+ ldr r2, [r5, #0x64]
+ mov r6, #0
+ mul r0, r2
+ add r0, r5, r0
+ ldrb r0, [r0, r1]
+ cmp r0, r4
+ blo _02246CF0
+ mov r6, #1
+ b _02246D14
+_02246CF0:
+ bl LCRandom
+ ldr r2, [r5, #0x64]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r5, r1
+ ldr r1, _02246D18 ; =0x00002D74
+ lsl r0, r0, #0x18
+ ldrb r1, [r2, r1]
+ lsr r0, r0, #0x18
+ add r1, r1, r4
+ mul r0, r1
+ asr r0, r0, #8
+ add r1, r0, #1
+ lsr r0, r4, #2
+ cmp r1, r0
+ ble _02246D14
+ mov r6, #1
+_02246D14:
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02246D18: .word 0x00002D74
+
+ thumb_func_start MOD11_02246D1C
+MOD11_02246D1C: ; 0x02246D1C
+ push {r4, r5}
+ mov r2, #0xc0
+ mul r2, r1
+ mov r3, #0xb7
+ mov r4, #2
+ add r5, r0, r2
+ lsl r3, r3, #6
+ ldr r1, [r5, r3]
+ lsl r4, r4, #0x14
+ tst r4, r1
+ beq _02246D40
+ sub r3, #0x59
+ ldrb r3, [r5, r3]
+ cmp r3, #0x79
+ beq _02246D40
+ mov r0, #0
+ pop {r4, r5}
+ bx lr
+_02246D40:
+ mov r3, #6
+ lsl r3, r3, #6
+ ldr r4, [r0, r3]
+ mov r3, #7
+ lsl r3, r3, #0xc
+ tst r3, r4
+ beq _02246D5E
+ ldr r3, _02246D80 ; =0x00002D67
+ add r4, r0, r2
+ ldrb r3, [r4, r3]
+ cmp r3, #0x1a
+ bne _02246D5E
+ mov r0, #0
+ pop {r4, r5}
+ bx lr
+_02246D5E:
+ mov r3, #1
+ lsl r3, r3, #0xa
+ tst r1, r3
+ beq _02246D76
+ ldr r1, _02246D80 ; =0x00002D67
+ add r3, r0, r2
+ ldrb r1, [r3, r1]
+ cmp r1, #0x1a
+ bne _02246D76
+ mov r0, #0
+ pop {r4, r5}
+ bx lr
+_02246D76:
+ add r1, r0, r2
+ ldr r0, _02246D80 ; =0x00002D67
+ ldrb r0, [r1, r0]
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+_02246D80: .word 0x00002D67
+
+ thumb_func_start MOD11_02246D84
+MOD11_02246D84: ; 0x02246D84
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r7, r1, #0
+ str r2, [sp]
+ add r4, r3, #0
+ mov r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x68
+ beq _02246DA8
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r4, r0
+ bne _02246DD6
+ mov r6, #1
+ b _02246DD6
+_02246DA8:
+ ldr r1, [sp]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r4, r0
+ bne _02246DD6
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r1, r5, r0
+ mov r0, #0x1c
+ mul r0, r7
+ ldr r3, [r1, r0]
+ lsl r2, r3, #0x1c
+ lsr r2, r2, #0x1f
+ bne _02246DD6
+ mov r2, #8
+ orr r3, r2
+ str r3, [r1, r0]
+ ldr r1, _02246DDC ; =0x0000213C
+ lsl r0, r2, #0x14
+ ldr r3, [r5, r1]
+ orr r0, r3
+ str r0, [r5, r1]
+_02246DD6:
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02246DDC: .word 0x0000213C
+
+ thumb_func_start MOD11_02246DE0
+MOD11_02246DE0: ; 0x02246DE0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ mov r6, #0
+ str r0, [sp]
+ str r1, [sp, #4]
+ add r4, r2, #0
+ str r6, [sp, #0x18]
+ bl MOD11_0222FF74
+ add r5, r0, #0
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_0222FF88
+ str r0, [sp, #0x14]
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_0222FFC8
+ add r7, r0, #0
+ mov r0, #8
+ tst r0, r5
+ bne _02246E22
+ mov r0, #0x10
+ tst r0, r5
+ beq _02246E36
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_02230260
+ mov r1, #1
+ tst r0, r1
+ beq _02246E36
+_02246E22:
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #4]
+ mov r5, #0
+ add r1, r0, r4
+ ldr r0, _02246ECC ; =0x0000219C
+ ldrb r0, [r1, r0]
+ str r0, [sp, #0xc]
+ str r0, [sp, #8]
+ b _02246E72
+_02246E36:
+ mov r0, #2
+ tst r0, r5
+ beq _02246E60
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #4]
+ mov r5, #0
+ add r1, r0, r4
+ ldr r0, _02246ECC ; =0x0000219C
+ ldrb r0, [r1, r0]
+ add r1, r4, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp]
+ bl MOD11_022302BC
+ ldr r1, [sp, #4]
+ add r1, r1, r0
+ ldr r0, _02246ECC ; =0x0000219C
+ ldrb r0, [r1, r0]
+ str r0, [sp, #8]
+ b _02246E72
+_02246E60:
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #4]
+ mov r5, #0
+ add r1, r0, r4
+ ldr r0, _02246ECC ; =0x0000219C
+ ldrb r0, [r1, r0]
+ str r0, [sp, #0xc]
+ str r0, [sp, #8]
+_02246E72:
+ cmp r5, r7
+ bge _02246EBC
+_02246E76:
+ ldr r0, [sp, #0x14]
+ add r1, r5, #0
+ bl GetPartyMonByIndex
+ mov r1, #5
+ mov r2, #0
+ add r4, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02246EB6
+ add r0, r4, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _02246EB6
+ add r0, r4, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02246EB6
+ ldr r0, [sp, #0xc]
+ cmp r0, r5
+ beq _02246EB6
+ ldr r0, [sp, #8]
+ cmp r0, r5
+ beq _02246EB6
+ add r6, r6, #1
+_02246EB6:
+ add r5, r5, #1
+ cmp r5, r7
+ blt _02246E76
+_02246EBC:
+ ldr r0, [sp, #0x10]
+ cmp r6, r0
+ blt _02246EC6
+ mov r0, #1
+ str r0, [sp, #0x18]
+_02246EC6:
+ ldr r0, [sp, #0x18]
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02246ECC: .word 0x0000219C
+
+ thumb_func_start MOD11_02246ED0
+MOD11_02246ED0: ; 0x02246ED0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r1, #0
+ add r6, r2, #0
+ add r7, r0, #0
+ add r4, r3, #0
+ bl MOD11_0222FF74
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02249D90
+ str r0, [sp, #8]
+ cmp r0, #0x3e
+ beq _02246F06
+ mov r1, #0xa9
+ ldr r0, [sp, #0xc]
+ lsl r1, r1, #2
+ tst r0, r1
+ bne _02246F06
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x32
+ bne _02246F0C
+_02246F06:
+ add sp, #0x14
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_02246F0C:
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD11_02230270
+ add r0, r7, #0
+ bl MOD11_0222FF84
+ mov r0, #0x17
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #9
+ add r3, r6, #0
+ bl MOD11_02246870
+ str r0, [sp, #0x10]
+ cmp r0, #0
+ beq _02246F62
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x17
+ beq _02246F62
+ cmp r4, #0
+ bne _02246F46
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02246F46:
+ mov r0, #0xb
+ strb r0, [r4, #1]
+ mov r0, #0x27
+ strh r0, [r4, #2]
+ ldr r1, [sp, #0x10]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ str r0, [r4, #4]
+ mov r0, #0x17
+ str r0, [r4, #8]
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02246F62:
+ mov r0, #0x47
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #3
+ add r3, r6, #0
+ bl MOD11_02246870
+ str r0, [sp, #4]
+ cmp r0, #0
+ beq _02247014
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #7
+ lsl r0, r0, #0xc
+ tst r0, r1
+ bne _02246FEE
+ ldr r0, [sp, #8]
+ cmp r0, #0x69
+ beq _02246FEE
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x1a
+ beq _02247014
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r5, r0
+ ldr r0, _022470A8 ; =0x00002DCC
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x1d
+ bne _02247014
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #2
+ beq _02247014
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #2
+ beq _02247014
+ cmp r4, #0
+ bne _02246FD2
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02246FD2:
+ mov r0, #0xb
+ strb r0, [r4, #1]
+ mov r0, #0x27
+ strh r0, [r4, #2]
+ ldr r1, [sp, #4]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ str r0, [r4, #4]
+ mov r0, #0x47
+ str r0, [r4, #8]
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02246FEE:
+ cmp r4, #0
+ bne _02246FF8
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02246FF8:
+ mov r0, #0xb
+ strb r0, [r4, #1]
+ mov r0, #0x27
+ strh r0, [r4, #2]
+ ldr r1, [sp, #4]
+ add r0, r5, #0
+ bl MOD11_0224682C
+ str r0, [r4, #4]
+ mov r0, #0x47
+ str r0, [r4, #8]
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02247014:
+ mov r0, #0x2a
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #3
+ add r3, r6, #0
+ bl MOD11_02246870
+ add r7, r0, #0
+ beq _0224706E
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #8
+ beq _02247048
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #8
+ bne _0224706E
+_02247048:
+ cmp r4, #0
+ bne _02247052
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02247052:
+ mov r0, #0xb
+ strb r0, [r4, #1]
+ mov r0, #0x27
+ strh r0, [r4, #2]
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD11_0224682C
+ str r0, [r4, #4]
+ mov r0, #0x2a
+ str r0, [r4, #8]
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_0224706E:
+ mov r0, #0xc0
+ mul r0, r6
+ add r3, r5, r0
+ ldr r0, _022470AC ; =0x00002DB0
+ ldr r1, _022470B0 ; =0x0400E000
+ ldr r2, [r3, r0]
+ tst r2, r1
+ bne _02247088
+ add r0, #0x10
+ ldr r2, [r3, r0]
+ lsr r0, r1, #0x10
+ tst r0, r2
+ beq _022470A0
+_02247088:
+ cmp r4, #0
+ bne _02247092
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02247092:
+ mov r0, #0
+ strb r0, [r4, #1]
+ ldr r0, _022470B4 ; =0x0000031A
+ add sp, #0x14
+ strh r0, [r4, #2]
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_022470A0:
+ mov r0, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022470A8: .word 0x00002DCC
+_022470AC: .word 0x00002DB0
+_022470B0: .word 0x0400E000
+_022470B4: .word 0x0000031A
+
+ thumb_func_start MOD11_022470B8
+MOD11_022470B8: ; 0x022470B8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r4, r2, #0
+ str r0, [sp]
+ bl MOD11_0222FF74
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02249D90
+ mov r6, #0
+ cmp r0, #0x3e
+ bne _022470EC
+ mov r0, #0x75
+ lsl r0, r0, #2
+ add r3, r5, r0
+ lsl r2, r4, #6
+ ldr r1, [r3, r2]
+ ldr r0, _02247184 ; =0xFFFFFE7F
+ mov r6, #1
+ and r1, r0
+ mov r0, #0x80
+ orr r0, r1
+ str r0, [r3, r2]
+ b _0224717E
+_022470EC:
+ mov r0, #0xa9
+ lsl r0, r0, #2
+ tst r0, r7
+ beq _022470F8
+ mov r6, #1
+ b _0224717E
+_022470F8:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x32
+ bne _0224711C
+ mov r1, #0x75
+ lsl r1, r1, #2
+ add r5, r5, r1
+ lsl r3, r4, #6
+ ldr r2, [r5, r3]
+ ldr r0, _02247184 ; =0xFFFFFE7F
+ sub r1, #0xd4
+ and r0, r2
+ orr r0, r1
+ str r0, [r5, r3]
+ mov r6, #1
+ b _0224717E
+_0224711C:
+ mov r0, #1
+ add r1, r4, #0
+ eor r1, r0
+ mov r2, #0xc0
+ add r3, r1, #0
+ mul r3, r2
+ add r1, r5, r3
+ ldr r3, _02247188 ; =0x00002D46
+ mul r2, r4
+ add r2, r5, r2
+ ldrh r1, [r1, r3]
+ ldrh r2, [r2, r3]
+ cmp r2, r1
+ bhs _02247164
+ lsl r0, r2, #7
+ bl _s32_div_f
+ ldr r1, _0224718C ; =0x0000311E
+ ldrb r2, [r5, r1]
+ mov r1, #0x1e
+ mul r1, r2
+ add r0, r1, r0
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ bl LCRandom
+ lsr r1, r0, #0x1f
+ lsl r2, r0, #0x18
+ sub r2, r2, r1
+ mov r0, #0x18
+ ror r2, r0
+ add r0, r1, r2
+ cmp r7, r0
+ ble _02247166
+ mov r6, #1
+ b _02247166
+_02247164:
+ add r6, r0, #0
+_02247166:
+ cmp r6, #0
+ bne _02247176
+ ldr r0, [sp]
+ add r1, r4, #0
+ mov r2, #0
+ mov r3, #0x47
+ bl MOD11_022564A8
+_02247176:
+ ldr r0, _0224718C ; =0x0000311E
+ ldrb r1, [r5, r0]
+ add r1, r1, #1
+ strb r1, [r5, r0]
+_0224717E:
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02247184: .word 0xFFFFFE7F
+_02247188: .word 0x00002D46
+_0224718C: .word 0x0000311E
+
+ thumb_func_start MOD11_02247190
+MOD11_02247190: ; 0x02247190
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x36
+ bne _022471BA
+ mov r2, #0xc0
+ mul r2, r4
+ add r3, r5, r2
+ ldr r2, _022471C0 ; =0x00002DC8
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldr r2, [r3, r2]
+ ldr r1, [r5, r0]
+ mov r0, #1
+ lsl r2, r2, #1
+ and r1, r0
+ lsr r2, r2, #0x1f
+ cmp r1, r2
+ bne _022471BC
+_022471BA:
+ mov r0, #0
+_022471BC:
+ pop {r3, r4, r5, pc}
+ nop
+_022471C0: .word 0x00002DC8
+
+ thumb_func_start MOD11_022471C4
+MOD11_022471C4: ; 0x022471C4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r6, r1, #0
+ mov r1, #0
+ str r0, [sp]
+ add r4, r2, #0
+ add r5, r3, #0
+ str r1, [sp, #4]
+ bl MOD11_0222FF84
+ str r0, [sp, #0xc]
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_02230270
+ str r0, [sp, #8]
+ ldr r0, [sp, #0xc]
+ mov r7, #0
+ cmp r0, #0
+ ble _0224722E
+ ldr r4, _02247234 ; =0x00002D4C
+_022471EE:
+ ldr r0, [sp]
+ add r1, r7, #0
+ bl MOD11_02230270
+ ldr r1, [sp, #8]
+ cmp r1, r0
+ beq _02247224
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r1, [r6, r0]
+ mov r0, #2
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _02247224
+ mov r1, #0
+ add r2, r6, #0
+_0224720E:
+ ldrh r0, [r2, r4]
+ cmp r5, r0
+ beq _0224721C
+ add r1, r1, #1
+ add r2, r2, #2
+ cmp r1, #4
+ blt _0224720E
+_0224721C:
+ cmp r1, #4
+ beq _02247224
+ mov r0, #1
+ str r0, [sp, #4]
+_02247224:
+ ldr r0, [sp, #0xc]
+ add r7, r7, #1
+ add r6, #0xc0
+ cmp r7, r0
+ blt _022471EE
+_0224722E:
+ ldr r0, [sp, #4]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02247234: .word 0x00002D4C
+
+ thumb_func_start MOD11_02247238
+MOD11_02247238: ; 0x02247238
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r2, #0
+ mov r6, #0
+ bl MOD11_0222FF84
+ add r3, r6, #0
+ cmp r0, #0
+ ble _02247260
+ mov r1, #0xb7
+ lsl r1, r1, #6
+_0224724E:
+ ldr r2, [r5, r1]
+ tst r2, r4
+ beq _02247258
+ mov r6, #1
+ b _02247260
+_02247258:
+ add r3, r3, #1
+ add r5, #0xc0
+ cmp r3, r0
+ blt _0224724E
+_02247260:
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02247264
+MOD11_02247264: ; 0x02247264
+ ldr r2, _02247284 ; =0x0000216C
+ mov r0, #0
+ str r0, [r1, r2]
+ add r0, r2, #0
+ mov r3, #1
+ sub r0, #0x1c
+ str r3, [r1, r0]
+ add r0, r2, #0
+ sub r0, #0x30
+ ldr r3, [r1, r0]
+ ldr r0, _02247288 ; =0xFFEFFFFF
+ sub r2, #0x30
+ and r0, r3
+ str r0, [r1, r2]
+ bx lr
+ nop
+_02247284: .word 0x0000216C
+_02247288: .word 0xFFEFFFFF
+
+ thumb_func_start MOD11_0224728C
+MOD11_0224728C: ; 0x0224728C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ bl MOD11_0222FF84
+ mov r2, #0
+ str r0, [sp, #0x14]
+ cmp r0, #0
+ ble _022472B0
+ ldr r1, _02247310 ; =0x000021EC
+_022472A2:
+ ldr r0, [sp, #8]
+ add r0, r0, r2
+ strb r2, [r0, r1]
+ ldr r0, [sp, #0x14]
+ add r2, r2, #1
+ cmp r2, r0
+ blt _022472A2
+_022472B0:
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ sub r0, r0, #1
+ str r0, [sp, #0x18]
+ cmp r0, #0
+ ble _0224730C
+_022472BE:
+ ldr r0, [sp, #0x10]
+ add r4, r0, #1
+ ldr r0, [sp, #0x14]
+ cmp r4, r0
+ bge _02247300
+ ldr r1, [sp, #8]
+ ldr r0, [sp, #0x10]
+ add r6, r1, r0
+_022472CE:
+ ldr r0, _02247310 ; =0x000021EC
+ ldr r1, [sp, #8]
+ ldrb r0, [r6, r0]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #8]
+ ldr r2, [sp, #0xc]
+ add r7, r0, r4
+ ldr r0, _02247310 ; =0x000021EC
+ ldrb r5, [r7, r0]
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r3, r5, #0
+ bl MOD11_02244248
+ cmp r0, #0
+ beq _022472F8
+ ldr r0, _02247310 ; =0x000021EC
+ ldr r1, [sp, #0xc]
+ strb r5, [r6, r0]
+ strb r1, [r7, r0]
+_022472F8:
+ ldr r0, [sp, #0x14]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _022472CE
+_02247300:
+ ldr r0, [sp, #0x10]
+ add r1, r0, #1
+ ldr r0, [sp, #0x18]
+ str r1, [sp, #0x10]
+ cmp r1, r0
+ blt _022472BE
+_0224730C:
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02247310: .word 0x000021EC
+
+ thumb_func_start MOD11_02247314
+MOD11_02247314: ; 0x02247314
+ push {r3, r4}
+ mov r2, #6
+ lsl r2, r2, #6
+ ldr r2, [r1, r2]
+ mov r1, #7
+ lsl r1, r1, #0xc
+ mov r0, #0
+ tst r1, r2
+ beq _0224733E
+ ldr r4, _02247344 ; =0x0225E278
+ add r2, r0, #0
+_0224732A:
+ ldrh r1, [r4]
+ cmp r3, r1
+ bne _02247336
+ mov r0, #1
+ pop {r3, r4}
+ bx lr
+_02247336:
+ add r2, r2, #1
+ add r4, r4, #2
+ cmp r2, #6
+ blo _0224732A
+_0224733E:
+ pop {r3, r4}
+ bx lr
+ nop
+_02247344: .word 0x0225E278
+
+ thumb_func_start MOD11_02247348
+MOD11_02247348: ; 0x02247348
+ push {r3, r4}
+ mov r4, #0xc0
+ mul r4, r2
+ add r2, r1, r4
+ ldr r1, _02247378 ; =0x00002DCC
+ mov r0, #0
+ ldr r1, [r2, r1]
+ lsl r1, r1, #0xd
+ lsr r1, r1, #0x1d
+ beq _02247374
+ ldr r4, _0224737C ; =0x0225E29E
+ add r2, r0, #0
+_02247360:
+ ldrh r1, [r4]
+ cmp r3, r1
+ bne _0224736C
+ mov r0, #1
+ pop {r3, r4}
+ bx lr
+_0224736C:
+ add r2, r2, #1
+ add r4, r4, #2
+ cmp r2, #0xe
+ blo _02247360
+_02247374:
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+_02247378: .word 0x00002DCC
+_0224737C: .word 0x0225E29E
+
+ thumb_func_start MOD11_02247380
+MOD11_02247380: ; 0x02247380
+ push {r4, r5, r6, r7}
+ mov r0, #0xc1
+ lsl r0, r0, #6
+ ldr r3, [r1, r0]
+ ldr r0, _022473E8 ; =0x00000183
+ cmp r3, r0
+ beq _022473E4
+ ldr r4, [r1, #0x64]
+ mov r0, #0xc0
+ add r2, r4, #0
+ mul r2, r0
+ ldr r4, _022473EC ; =0x00002DCC
+ add r0, r1, r2
+ ldr r4, [r0, r4]
+ lsl r4, r4, #0x13
+ lsr r7, r4, #0x1d
+ cmp r7, #4
+ beq _022473E4
+ mov r6, #0
+ cmp r7, #0
+ bls _022473BA
+ ldr r4, _022473F0 ; =0x00002DF0
+_022473AC:
+ ldrh r5, [r0, r4]
+ cmp r3, r5
+ beq _022473E4
+ add r6, r6, #1
+ add r0, r0, #2
+ cmp r6, r7
+ blo _022473AC
+_022473BA:
+ add r2, r1, r2
+ lsl r0, r6, #1
+ add r2, r2, r0
+ ldr r0, _022473F0 ; =0x00002DF0
+ strh r3, [r2, r0]
+ sub r0, #0x24
+ add r2, r1, r0
+ ldr r3, [r1, #0x64]
+ mov r0, #0xc0
+ add r1, r3, #0
+ mul r1, r0
+ ldr r3, [r2, r1]
+ ldr r0, _022473F4 ; =0xFFFFE3FF
+ and r0, r3
+ lsl r3, r3, #0x13
+ lsr r3, r3, #0x1d
+ add r3, r3, #1
+ lsl r3, r3, #0x1d
+ lsr r3, r3, #0x13
+ orr r0, r3
+ str r0, [r2, r1]
+_022473E4:
+ pop {r4, r5, r6, r7}
+ bx lr
+ .align 2, 0
+_022473E8: .word 0x00000183
+_022473EC: .word 0x00002DCC
+_022473F0: .word 0x00002DF0
+_022473F4: .word 0xFFFFE3FF
+
+ thumb_func_start MOD11_022473F8
+MOD11_022473F8: ; 0x022473F8
+ mov r3, #0xc0
+ mul r3, r2
+ add r3, r1, r3
+ ldr r1, _02247414 ; =0x00002D4C
+ mov r0, #0
+_02247402:
+ ldrh r2, [r3, r1]
+ cmp r2, #0
+ beq _02247410
+ add r0, r0, #1
+ add r3, r3, #2
+ cmp r0, #4
+ blt _02247402
+_02247410:
+ bx lr
+ nop
+_02247414: .word 0x00002D4C
+
+ thumb_func_start MOD11_02247418
+MOD11_02247418: ; 0x02247418
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r2, #0
+ mov r2, #0
+ add r5, r0, #0
+ add r7, r1, #0
+ str r2, [sp]
+ bl MOD11_02246D1C
+ cmp r0, #0x60
+ bne _02247430
+ mov r6, #0
+ b _02247444
+_02247430:
+ ldr r0, _02247594 ; =0x00002160
+ ldr r6, [r5, r0]
+ cmp r6, #0
+ bne _02247444
+ ldr r0, _02247598 ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _0224759C ; =0x000003E2
+ ldrb r6, [r1, r0]
+_02247444:
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ mov r3, #0xa
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02247474
+ cmp r6, #0xd
+ bne _02247474
+ cmp r7, r4
+ beq _02247474
+ mov r0, #0xc0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _022475A0 ; =0x00002D90
+ ldr r0, [r1, r0]
+ mov r1, #4
+ bl MOD11_022476C0
+ ldr r1, _022475A4 ; =0x0000215C
+ str r0, [r5, r1]
+ mov r0, #0xb2
+ str r0, [sp]
+_02247474:
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ mov r3, #0xb
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _022474BA
+ cmp r6, #0xb
+ bne _022474BA
+ ldr r0, _022475A8 ; =0x0000213C
+ ldr r1, [r5, r0]
+ mov r0, #0x20
+ tst r0, r1
+ bne _022474BA
+ ldr r0, _02247598 ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _022475AC ; =0x000003E1
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ beq _022474BA
+ mov r0, #0xc0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _022475A0 ; =0x00002D90
+ ldr r0, [r1, r0]
+ mov r1, #4
+ bl MOD11_022476C0
+ ldr r1, _022475A4 ; =0x0000215C
+ str r0, [r5, r1]
+ mov r0, #0xb2
+ str r0, [sp]
+_022474BA:
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ mov r3, #0x12
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02247500
+ cmp r6, #0xa
+ bne _02247500
+ mov r0, #0xc0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _022475B0 ; =0x00002DAC
+ ldr r0, [r1, r0]
+ mov r1, #0x20
+ tst r0, r1
+ bne _02247500
+ ldr r0, _022475A8 ; =0x0000213C
+ ldr r0, [r5, r0]
+ tst r0, r1
+ bne _02247500
+ ldr r0, _02247598 ; =0x00003044
+ ldr r3, [r5, r0]
+ lsl r0, r3, #4
+ add r2, r5, r0
+ ldr r0, _022475AC ; =0x000003E1
+ ldrb r0, [r2, r0]
+ cmp r0, #0
+ bne _022474FC
+ add r1, #0xe5
+ cmp r3, r1
+ bne _02247500
+_022474FC:
+ mov r0, #0xb3
+ str r0, [sp]
+_02247500:
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ mov r3, #0x2b
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _0224752C
+ ldr r0, _02247598 ; =0x00003044
+ ldr r2, _022475B4 ; =0x0225FF84
+ ldr r3, [r5, r0]
+ mov r1, #0
+_02247518:
+ ldrh r0, [r2]
+ cmp r3, r0
+ bne _02247524
+ mov r0, #0xb5
+ str r0, [sp]
+ b _0224752C
+_02247524:
+ add r1, r1, #1
+ add r2, r2, #2
+ cmp r1, #0xc
+ blo _02247518
+_0224752C:
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ mov r3, #0x4e
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _02247548
+ cmp r6, #0xd
+ bne _02247548
+ cmp r7, r4
+ beq _02247548
+ mov r0, #0xb6
+ str r0, [sp]
+_02247548:
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ mov r3, #0x57
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _0224758E
+ cmp r6, #0xb
+ bne _0224758E
+ ldr r0, _022475A8 ; =0x0000213C
+ ldr r1, [r5, r0]
+ mov r0, #0x20
+ tst r0, r1
+ bne _0224758E
+ ldr r0, _02247598 ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _022475AC ; =0x000003E1
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ beq _0224758E
+ mov r0, #0xc0
+ mul r0, r4
+ add r1, r5, r0
+ ldr r0, _022475A0 ; =0x00002D90
+ ldr r0, [r1, r0]
+ mov r1, #4
+ bl MOD11_022476C0
+ ldr r1, _022475A4 ; =0x0000215C
+ str r0, [r5, r1]
+ mov r0, #0xb2
+ str r0, [sp]
+_0224758E:
+ ldr r0, [sp]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02247594: .word 0x00002160
+_02247598: .word 0x00003044
+_0224759C: .word 0x000003E2
+_022475A0: .word 0x00002D90
+_022475A4: .word 0x0000215C
+_022475A8: .word 0x0000213C
+_022475AC: .word 0x000003E1
+_022475B0: .word 0x00002DAC
+_022475B4: .word 0x0225FF84
+
+ thumb_func_start MOD11_022475B8
+MOD11_022475B8: ; 0x022475B8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #3
+ beq _022475D0
+ cmp r0, #0x3d
+ beq _02247616
+ b _02247696
+_022475D0:
+ mov r2, #0xc0
+ add r0, r4, #0
+ mul r0, r2
+ ldr r3, _022476B4 ; =0x00002D8C
+ add r0, r5, r0
+ ldr r1, [r0, r3]
+ cmp r1, #0
+ beq _02247696
+ add r1, r3, #0
+ sub r1, #0x31
+ ldrsb r1, [r0, r1]
+ cmp r1, #0xc
+ bge _02247696
+ add r2, #0x90
+ ldr r1, [r5, r2]
+ add r3, #0x48
+ ldr r0, [r0, r3]
+ add r1, r1, #1
+ cmp r1, r0
+ beq _02247696
+ add r0, r5, #0
+ mov r1, #0x11
+ add r0, #0x8c
+ str r1, [r0]
+ add r0, r5, #0
+ mov r1, #3
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0x94
+ str r4, [r0]
+ mov r0, #0xc
+ str r0, [sp]
+ mov r6, #1
+ b _02247696
+_02247616:
+ ldr r1, _022476B8 ; =0x00002DAC
+ mov r0, #0xc0
+ add r7, r4, #0
+ mul r7, r0
+ add r0, r5, r1
+ str r0, [sp, #4]
+ ldr r0, [r0, r7]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ beq _02247696
+ add r0, r5, r7
+ sub r1, #0x20
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ beq _02247696
+ bl LCRandom
+ mov r1, #0xa
+ bl _s32_div_f
+ cmp r1, #3
+ bge _02247696
+ ldr r0, [sp, #4]
+ mov r1, #7
+ ldr r0, [r0, r7]
+ tst r1, r0
+ beq _02247656
+ mov r0, #0x13
+ add r1, r6, #0
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0224768A
+_02247656:
+ ldr r1, _022476BC ; =0x00000F88
+ tst r1, r0
+ beq _02247666
+ mov r0, #0x13
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0224768A
+_02247666:
+ mov r1, #0x10
+ tst r1, r0
+ beq _02247676
+ mov r0, #0x13
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0224768A
+_02247676:
+ mov r1, #0x40
+ tst r0, r1
+ beq _02247684
+ mov r0, #3
+ add r1, #0xf0
+ str r0, [r5, r1]
+ b _0224768A
+_02247684:
+ mov r0, #4
+ add r1, #0xf0
+ str r0, [r5, r1]
+_0224768A:
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r4, [r5, r0]
+ mov r0, #0xbe
+ str r0, [sp]
+ mov r6, #1
+_02247696:
+ cmp r6, #1
+ bne _022476AC
+ ldr r2, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r5, #8]
+ str r0, [r5, #0xc]
+ mov r0, #0x15
+ str r0, [r5, #8]
+_022476AC:
+ add r0, r6, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022476B4: .word 0x00002D8C
+_022476B8: .word 0x00002DAC
+_022476BC: .word 0x00000F88
+
+ thumb_func_start MOD11_022476C0
+MOD11_022476C0: ; 0x022476C0
+ push {r4, lr}
+ cmp r0, #0
+ bge _022476CC
+ mov r4, #0
+ mvn r4, r4
+ b _022476CE
+_022476CC:
+ mov r4, #1
+_022476CE:
+ bl _s32_div_f
+ cmp r0, #0
+ bne _022476D8
+ add r0, r4, #0
+_022476D8:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022476DC
+MOD11_022476DC: ; 0x022476DC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0xd0
+ add r7, r0, #0
+ add r4, r1, #0
+ bl MOD11_0222FF84
+ str r0, [sp, #0x80]
+ mov r0, #0
+ str r0, [sp, #0x84]
+ str r0, [sp, #0xcc]
+
+ thumb_func_start MOD11_022476F0
+MOD11_022476F0: ; 0x022476F0
+ ldr r0, [r4, #0x58]
+ cmp r0, #0xf
+ bls _022476FA
+ bl _02248282
+_022476FA:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02247706: ; jump table
+ .short _02247726 - _02247706 - 2 ; case 0
+ .short _022477A2 - _02247706 - 2 ; case 1
+ .short _0224785A - _02247706 - 2 ; case 2
+ .short _0224796A - _02247706 - 2 ; case 3
+ .short _022479E0 - _02247706 - 2 ; case 4
+ .short _02247B34 - _02247706 - 2 ; case 5
+ .short _02247C74 - _02247706 - 2 ; case 6
+ .short _02247E76 - _02247706 - 2 ; case 7
+ .short _02247FCC - _02247706 - 2 ; case 8
+ .short _022480A4 - _02247706 - 2 ; case 9
+ .short _02248118 - _02247706 - 2 ; case 10
+ .short _022481A6 - _02247706 - 2 ; case 11
+ .short _022481C4 - _02247706 - 2 ; case 12
+ .short _022481FE - _02247706 - 2 ; case 13
+ .short _0224823A - _02247706 - 2 ; case 14
+ .short _0224827A - _02247706 - 2 ; case 15
+_02247726:
+ ldr r0, _02247A18 ; =0x00003121
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _02247798
+ add r0, r7, #0
+ bl MOD11_0223125C
+ cmp r0, #0xf
+ bhi _0224778C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02247744: ; jump table
+ .short _0224778C - _02247744 - 2 ; case 0
+ .short _0224778C - _02247744 - 2 ; case 1
+ .short _02247764 - _02247744 - 2 ; case 2
+ .short _02247764 - _02247744 - 2 ; case 3
+ .short _02247764 - _02247744 - 2 ; case 4
+ .short _0224776E - _02247744 - 2 ; case 5
+ .short _0224776E - _02247744 - 2 ; case 6
+ .short _0224776E - _02247744 - 2 ; case 7
+ .short _0224778C - _02247744 - 2 ; case 8
+ .short _0224778C - _02247744 - 2 ; case 9
+ .short _0224777A - _02247744 - 2 ; case 10
+ .short _0224778C - _02247744 - 2 ; case 11
+ .short _0224778C - _02247744 - 2 ; case 12
+ .short _0224778C - _02247744 - 2 ; case 13
+ .short _02247784 - _02247744 - 2 ; case 14
+ .short _02247784 - _02247744 - 2 ; case 15
+_02247764:
+ ldr r0, _02247A1C ; =0x0000010F
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _0224778C
+_0224776E:
+ mov r0, #0x11
+ lsl r0, r0, #4
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _0224778C
+_0224777A:
+ ldr r0, _02247A20 ; =0x00000111
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _0224778C
+_02247784:
+ ldr r0, _02247A24 ; =0x00000112
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+_0224778C:
+ ldr r0, [sp, #0x84]
+ cmp r0, #1
+ bne _02247798
+ ldr r0, _02247A18 ; =0x00003121
+ mov r1, #1
+ strb r1, [r4, r0]
+_02247798:
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ bl _02248282
+_022477A2:
+ ldr r0, [sp, #0x80]
+ mov r6, #0
+ cmp r0, #0
+ ble _02247846
+ ldr r0, _02247A28 ; =0x00002D68
+ add r0, r4, r0
+ str r0, [sp, #0x90]
+_022477B0:
+ ldr r0, _02247A2C ; =0x000021EC
+ add r1, r4, r6
+ ldrb r5, [r1, r0]
+ add r0, r7, #0
+ mov r2, #0
+ add r1, r5, #0
+ bl MOD11_02230308
+ str r0, [sp, #0x88]
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #2
+ bl MOD11_02230308
+ add r2, r0, #0
+ ldr r1, [sp, #0x88]
+ add r0, r4, #0
+ bl MOD11_0224C84C
+ mov r1, #0x12
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ mov r0, #0xc0
+ mul r0, r5
+ ldr r1, [sp, #0x90]
+ str r0, [sp, #0x8c]
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ bne _0224783E
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r2, [r4, r0]
+ cmp r2, #0xff
+ beq _0224783E
+ ldr r0, [sp, #0x8c]
+ add r1, r4, r0
+ ldr r0, _02247A30 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0224783E
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r4, r0
+ ldr r0, _02247A30 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0224783E
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x24
+ bne _0224783E
+ ldr r1, [sp, #0x90]
+ ldr r0, [sp, #0x8c]
+ ldr r1, [r1, r0]
+ mov r0, #4
+ add r2, r1, #0
+ orr r2, r0
+ ldr r1, [sp, #0x90]
+ ldr r0, [sp, #0x8c]
+ str r2, [r1, r0]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r5, [r4, r0]
+ mov r0, #0xbb
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02247846
+_0224783E:
+ ldr r0, [sp, #0x80]
+ add r6, r6, #1
+ cmp r6, r0
+ blt _022477B0
+_02247846:
+ ldr r0, [sp, #0x80]
+ cmp r6, r0
+ beq _02247850
+ bl _02248282
+_02247850:
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ bl _02248282
+_0224785A:
+ mov r0, #0
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ ble _02247958
+ ldr r0, _02247A28 ; =0x00002D68
+ add r6, r4, r0
+ mov r0, #1
+ str r0, [sp, #0xbc]
+ str r0, [sp, #0xb8]
+ str r0, [sp, #0xb4]
+ str r0, [sp, #0xb0]
+_02247872:
+ ldr r0, [sp, #0x2c]
+ add r1, r4, r0
+ ldr r0, _02247A2C ; =0x000021EC
+ ldrb r1, [r1, r0]
+ mov r0, #0xc0
+ add r5, r1, #0
+ mul r5, r0
+ ldr r0, [r6, r5]
+ str r1, [sp, #0x10]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ bne _0224793C
+ ldr r0, _02247A30 ; =0x00002D8C
+ add r1, r4, r5
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0224793C
+ ldr r1, [sp, #0x10]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x2d
+ bgt _022478A8
+ bge _022478D8
+ cmp r0, #2
+ beq _022478B6
+ b _0224793C
+_022478A8:
+ cmp r0, #0x46
+ bgt _022478B0
+ beq _022478FA
+ b _0224793C
+_022478B0:
+ cmp r0, #0x75
+ beq _0224791C
+ b _0224793C
+_022478B6:
+ ldr r0, [r6, r5]
+ ldr r1, [sp, #0xb0]
+ bic r0, r1
+ mov r1, #1
+ orr r0, r1
+ str r0, [r6, r5]
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #2
+ tst r0, r1
+ bne _0224793C
+ mov r0, #0xb7
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _0224793C
+_022478D8:
+ ldr r0, [r6, r5]
+ ldr r1, [sp, #0xb4]
+ bic r0, r1
+ mov r1, #1
+ orr r0, r1
+ str r0, [r6, r5]
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #8
+ tst r0, r1
+ bne _0224793C
+ mov r0, #0xb8
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _0224793C
+_022478FA:
+ ldr r0, [r6, r5]
+ ldr r1, [sp, #0xb8]
+ bic r0, r1
+ mov r1, #1
+ orr r0, r1
+ str r0, [r6, r5]
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0x20
+ tst r0, r1
+ bne _0224793C
+ mov r0, #0xb9
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _0224793C
+_0224791C:
+ ldr r0, [r6, r5]
+ ldr r1, [sp, #0xbc]
+ bic r0, r1
+ mov r1, #1
+ orr r0, r1
+ str r0, [r6, r5]
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ mov r0, #0x80
+ tst r0, r1
+ bne _0224793C
+ mov r0, #0xfc
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+_0224793C:
+ ldr r0, [sp, #0x84]
+ cmp r0, #1
+ bne _0224794C
+ mov r1, #0x46
+ ldr r0, [sp, #0x10]
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ b _02247958
+_0224794C:
+ ldr r0, [sp, #0x2c]
+ add r1, r0, #1
+ ldr r0, [sp, #0x80]
+ str r1, [sp, #0x2c]
+ cmp r1, r0
+ blt _02247872
+_02247958:
+ ldr r1, [sp, #0x2c]
+ ldr r0, [sp, #0x80]
+ cmp r1, r0
+ bne _022479D2
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ bl _02248282
+_0224796A:
+ ldr r0, [sp, #0x80]
+ mov r5, #0
+ cmp r0, #0
+ ble _022479CC
+ ldr r0, _02247A28 ; =0x00002D68
+ add r0, r4, r0
+ str r0, [sp, #0x94]
+_02247978:
+ ldr r0, _02247A2C ; =0x000021EC
+ add r1, r4, r5
+ ldrb r1, [r1, r0]
+ mov r0, #0xc0
+ add r6, r1, #0
+ mul r6, r0
+ ldr r0, [sp, #0x94]
+ str r1, [sp, #0x14]
+ ldr r0, [r0, r6]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ bne _022479C4
+ ldr r0, _02247A30 ; =0x00002D8C
+ add r1, r4, r6
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _022479C4
+ ldr r1, [sp, #0x14]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x16
+ bne _022479C4
+ ldr r0, [sp, #0x94]
+ ldr r1, [r0, r6]
+ mov r0, #2
+ orr r1, r0
+ ldr r0, [sp, #0x94]
+ str r1, [r0, r6]
+ mov r1, #0x46
+ ldr r0, [sp, #0x14]
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0xba
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _022479CC
+_022479C4:
+ ldr r0, [sp, #0x80]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _02247978
+_022479CC:
+ ldr r0, [sp, #0x80]
+ cmp r5, r0
+ beq _022479D6
+_022479D2:
+ bl _02248282
+_022479D6:
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ bl _02248282
+_022479E0:
+ mov r0, #0
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ bgt _022479EC
+ b _02247B22
+_022479EC:
+ ldr r0, _02247A28 ; =0x00002D68
+ add r0, r4, r0
+ str r0, [sp, #0x9c]
+_022479F2:
+ ldr r0, [sp, #0x30]
+ add r1, r4, r0
+ ldr r0, _02247A2C ; =0x000021EC
+ ldrb r1, [r1, r0]
+ mov r0, #0xc0
+ mul r0, r1
+ str r1, [sp, #0x18]
+ ldr r1, [sp, #0x9c]
+ str r0, [sp, #0x98]
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ beq _02247A0E
+ b _02247B14
+_02247A0E:
+ ldr r0, [sp, #0x98]
+ add r1, r4, r0
+ ldr r0, _02247A30 ; =0x00002D8C
+ b _02247A34
+ nop
+_02247A18: .word 0x00003121
+_02247A1C: .word 0x0000010F
+_02247A20: .word 0x00000111
+_02247A24: .word 0x00000112
+_02247A28: .word 0x00002D68
+_02247A2C: .word 0x000021EC
+_02247A30: .word 0x00002D8C
+_02247A34:
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02247B14
+ ldr r1, [sp, #0x18]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x58
+ bne _02247B14
+ mov r0, #0
+ str r0, [sp, #0x78]
+ str r0, [sp, #0x74]
+ str r0, [sp, #0x7c]
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ ble _02247ACE
+ add r5, r4, #0
+_02247A56:
+ ldr r1, [sp, #0x18]
+ add r0, r7, #0
+ bl MOD11_02230270
+ add r6, r0, #0
+ ldr r1, [sp, #0x7c]
+ add r0, r7, #0
+ bl MOD11_02230270
+ cmp r6, r0
+ beq _02247AC0
+ ldr r0, _02247D60 ; =0x00002DB0
+ ldr r1, [r5, r0]
+ mov r0, #1
+ lsl r0, r0, #0x18
+ tst r0, r1
+ bne _02247AC0
+ ldr r0, _02247D64 ; =0x00002D8C
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _02247AC0
+ ldr r0, _02247D68 ; =0x00002D5A
+ ldrsb r0, [r5, r0]
+ lsl r2, r0, #1
+ ldr r0, _02247D6C ; =0x0225E284
+ add r1, r0, r2
+ ldr r0, _02247D70 ; =0x00002D44
+ ldrb r1, [r1, #1]
+ ldrh r3, [r5, r0]
+ ldr r0, _02247D6C ; =0x0225E284
+ ldrb r0, [r0, r2]
+ mul r0, r3
+ bl _s32_div_f
+ ldr r1, [sp, #0x78]
+ add r0, r1, r0
+ str r0, [sp, #0x78]
+ ldr r0, _02247D74 ; =0x00002D5D
+ ldrsb r0, [r5, r0]
+ lsl r2, r0, #1
+ ldr r0, _02247D6C ; =0x0225E284
+ add r1, r0, r2
+ ldr r0, _02247D78 ; =0x00002D4A
+ ldrb r1, [r1, #1]
+ ldrh r3, [r5, r0]
+ ldr r0, _02247D6C ; =0x0225E284
+ ldrb r0, [r0, r2]
+ mul r0, r3
+ bl _s32_div_f
+ ldr r1, [sp, #0x74]
+ add r0, r1, r0
+ str r0, [sp, #0x74]
+_02247AC0:
+ ldr r0, [sp, #0x7c]
+ add r5, #0xc0
+ add r1, r0, #1
+ ldr r0, [sp, #0x80]
+ str r1, [sp, #0x7c]
+ cmp r1, r0
+ blt _02247A56
+_02247ACE:
+ ldr r1, [sp, #0x9c]
+ ldr r0, [sp, #0x98]
+ ldr r1, [r1, r0]
+ mov r0, #8
+ add r2, r1, #0
+ orr r2, r0
+ ldr r1, [sp, #0x9c]
+ ldr r0, [sp, #0x98]
+ str r2, [r1, r0]
+ ldr r1, [sp, #0x78]
+ ldr r0, [sp, #0x74]
+ add r0, r1, r0
+ beq _02247B14
+ ldr r0, [sp, #0x74]
+ cmp r1, r0
+ blt _02247AF2
+ mov r1, #0x12
+ b _02247AF4
+_02247AF2:
+ mov r1, #0xf
+_02247AF4:
+ add r0, r4, #0
+ add r0, #0x8c
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #3
+ add r0, #0x88
+ str r1, [r0]
+ add r1, r4, #0
+ ldr r0, [sp, #0x18]
+ add r1, #0x94
+ str r0, [r1]
+ mov r0, #0xc
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02247B22
+_02247B14:
+ ldr r0, [sp, #0x30]
+ add r1, r0, #1
+ ldr r0, [sp, #0x80]
+ str r1, [sp, #0x30]
+ cmp r1, r0
+ bge _02247B22
+ b _022479F2
+_02247B22:
+ ldr r1, [sp, #0x30]
+ ldr r0, [sp, #0x80]
+ cmp r1, r0
+ beq _02247B2C
+ b _02248282
+_02247B2C:
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ b _02248282
+_02247B34:
+ mov r0, #0
+ str r0, [sp, #0x34]
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ bgt _02247B40
+ b _02247C62
+_02247B40:
+ ldr r0, _02247D7C ; =0x00002D68
+ add r6, r4, r0
+_02247B44:
+ ldr r0, [sp, #0x34]
+ add r1, r4, r0
+ ldr r0, _02247D80 ; =0x000021EC
+ ldrb r1, [r1, r0]
+ mov r0, #0xc0
+ add r5, r1, #0
+ mul r5, r0
+ ldr r0, [r6, r5]
+ str r1, [sp, #0x1c]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1f
+ bne _02247C54
+ ldr r0, _02247D64 ; =0x00002D8C
+ add r1, r4, r5
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02247C54
+ ldr r1, [sp, #0x1c]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x6b
+ bne _02247C54
+ ldr r1, [r6, r5]
+ mov r0, #0x10
+ orr r0, r1
+ str r0, [r6, r5]
+ mov r0, #0
+ str r0, [sp, #0x70]
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ ble _02247C40
+ add r0, r4, r5
+ str r4, [sp, #0x50]
+ str r0, [sp, #0x4c]
+_02247B8A:
+ ldr r1, [sp, #0x1c]
+ add r0, r7, #0
+ bl MOD11_02230270
+ add r5, r0, #0
+ ldr r1, [sp, #0x70]
+ add r0, r7, #0
+ bl MOD11_02230270
+ cmp r5, r0
+ beq _02247C2E
+ ldr r1, [sp, #0x50]
+ ldr r0, _02247D64 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02247C2E
+ mov r0, #0
+ str r0, [sp, #0x6c]
+ add r6, r1, #0
+_02247BB0:
+ ldr r0, _02247D84 ; =0x00002D4C
+ ldrh r5, [r6, r0]
+ cmp r5, #0
+ beq _02247C1C
+ mov r0, #0
+ str r0, [sp, #0xc8]
+ ldr r0, [sp, #0x70]
+ add r1, r4, #0
+ str r0, [sp]
+ ldr r0, [sp, #0x1c]
+ add r2, r5, #0
+ str r0, [sp, #4]
+ ldr r0, _02247D88 ; =0x00002144
+ mov r3, #0
+ ldr r0, [r4, r0]
+ str r0, [sp, #8]
+ add r0, sp, #0xc8
+ str r0, [sp, #0xc]
+ add r0, r7, #0
+ bl MOD11_02246274
+ ldr r1, _02247D88 ; =0x00002144
+ str r0, [r4, r1]
+ ldr r1, [sp, #0xc8]
+ mov r0, #8
+ tst r0, r1
+ bne _02247C1C
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0224C8C0
+ cmp r0, #0
+ bne _02247C1C
+ ldr r1, [sp, #0xc8]
+ mov r0, #2
+ tst r0, r1
+ bne _02247C16
+ lsl r0, r5, #4
+ add r1, r4, r0
+ ldr r0, _02247D8C ; =0x000003DE
+ ldrh r0, [r1, r0]
+ cmp r0, #0x26
+ bne _02247C1C
+ ldr r1, [sp, #0x4c]
+ ldr r0, _02247D90 ; =0x00002D74
+ ldr r2, [sp, #0x50]
+ ldrb r0, [r1, r0]
+ ldr r1, _02247D90 ; =0x00002D74
+ ldrb r1, [r2, r1]
+ cmp r0, r1
+ bhi _02247C1C
+_02247C16:
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02247C28
+_02247C1C:
+ ldr r0, [sp, #0x6c]
+ add r6, r6, #2
+ add r0, r0, #1
+ str r0, [sp, #0x6c]
+ cmp r0, #4
+ blt _02247BB0
+_02247C28:
+ ldr r0, [sp, #0x84]
+ cmp r0, #1
+ beq _02247C40
+_02247C2E:
+ ldr r0, [sp, #0x50]
+ add r0, #0xc0
+ str r0, [sp, #0x50]
+ ldr r0, [sp, #0x70]
+ add r1, r0, #1
+ ldr r0, [sp, #0x80]
+ str r1, [sp, #0x70]
+ cmp r1, r0
+ blt _02247B8A
+_02247C40:
+ ldr r0, [sp, #0x84]
+ cmp r0, #1
+ bne _02247C62
+ mov r1, #0x46
+ ldr r0, [sp, #0x1c]
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0xc2
+ str r0, [sp, #0xcc]
+ b _02247C62
+_02247C54:
+ ldr r0, [sp, #0x34]
+ add r1, r0, #1
+ ldr r0, [sp, #0x80]
+ str r1, [sp, #0x34]
+ cmp r1, r0
+ bge _02247C62
+ b _02247B44
+_02247C62:
+ ldr r1, [sp, #0x34]
+ ldr r0, [sp, #0x80]
+ cmp r1, r0
+ beq _02247C6C
+ b _02248282
+_02247C6C:
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ b _02248282
+_02247C74:
+ mov r0, #0
+ str r0, [sp, #0x38]
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ bgt _02247C80
+ b _02247E64
+_02247C80:
+ ldr r0, _02247D7C ; =0x00002D68
+ add r6, r4, r0
+_02247C84:
+ ldr r0, [sp, #0x38]
+ add r1, r4, r0
+ ldr r0, _02247D80 ; =0x000021EC
+ ldrb r1, [r1, r0]
+ mov r0, #0xc0
+ add r5, r1, #0
+ mul r5, r0
+ ldr r0, [r6, r5]
+ str r1, [sp, #0x20]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1f
+ bne _02247CB2
+ ldr r0, _02247D64 ; =0x00002D8C
+ add r1, r4, r5
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02247CB2
+ ldr r1, [sp, #0x20]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x6c
+ beq _02247CB4
+_02247CB2:
+ b _02247E56
+_02247CB4:
+ ldr r1, [r6, r5]
+ mov r0, #0x20
+ orr r0, r1
+ str r0, [r6, r5]
+ mov r5, #0
+ ldr r0, [sp, #0x80]
+ str r5, [sp, #0x5c]
+ str r5, [sp, #0x68]
+ cmp r0, #0
+ bgt _02247CCA
+ b _02247DF2
+_02247CCA:
+ str r4, [sp, #0x58]
+_02247CCC:
+ ldr r1, [sp, #0x20]
+ add r0, r7, #0
+ bl MOD11_02230270
+ add r6, r0, #0
+ ldr r1, [sp, #0x68]
+ add r0, r7, #0
+ bl MOD11_02230270
+ cmp r6, r0
+ beq _02247DDE
+ ldr r1, [sp, #0x58]
+ ldr r0, _02247D64 ; =0x00002D8C
+ ldr r1, [r1, r0]
+ cmp r1, #0
+ beq _02247DDE
+ ldr r0, [sp, #0x5c]
+ add r0, r0, r1
+ str r0, [sp, #0x5c]
+ mov r0, #0
+ str r0, [sp, #0x64]
+ ldr r0, [sp, #0x58]
+ str r0, [sp, #0x54]
+_02247CFA:
+ ldr r1, [sp, #0x54]
+ ldr r0, _02247D84 ; =0x00002D4C
+ ldrh r6, [r1, r0]
+ ldr r1, _02247D94 ; =0x000003E1
+ lsl r0, r6, #4
+ add r0, r4, r0
+ ldrb r1, [r0, r1]
+ str r1, [sp, #0x60]
+ cmp r1, #1
+ bne _02247DB2
+ ldr r1, _02247D8C ; =0x000003DE
+ ldrh r0, [r0, r1]
+ cmp r0, #0x59
+ bgt _02247D1E
+ bge _02247D46
+ cmp r0, #0x26
+ beq _02247D2C
+ b _02247D98
+_02247D1E:
+ cmp r0, #0x90
+ bgt _02247D26
+ beq _02247D46
+ b _02247D98
+_02247D26:
+ cmp r0, #0xe3
+ beq _02247D46
+ b _02247D98
+_02247D2C:
+ cmp r5, #0x96
+ blo _02247D3C
+ bne _02247DCE
+ bl LCRandom
+ mov r1, #1
+ tst r0, r1
+ beq _02247DCE
+_02247D3C:
+ mov r5, #0x96
+ add r0, r5, #0
+ add r0, #0x8e
+ str r6, [r4, r0]
+ b _02247DCE
+_02247D46:
+ cmp r5, #0x78
+ blo _02247D56
+ bne _02247DCE
+ bl LCRandom
+ mov r1, #1
+ tst r0, r1
+ beq _02247DCE
+_02247D56:
+ mov r5, #0x78
+ add r0, r5, #0
+ add r0, #0xac
+ str r6, [r4, r0]
+ b _02247DCE
+ .align 2, 0
+_02247D60: .word 0x00002DB0
+_02247D64: .word 0x00002D8C
+_02247D68: .word 0x00002D5A
+_02247D6C: .word 0x0225E284
+_02247D70: .word 0x00002D44
+_02247D74: .word 0x00002D5D
+_02247D78: .word 0x00002D4A
+_02247D7C: .word 0x00002D68
+_02247D80: .word 0x000021EC
+_02247D84: .word 0x00002D4C
+_02247D88: .word 0x00002144
+_02247D8C: .word 0x000003DE
+_02247D90: .word 0x00002D74
+_02247D94: .word 0x000003E1
+_02247D98:
+ cmp r5, #0x50
+ blo _02247DA8
+ bne _02247DCE
+ bl LCRandom
+ mov r1, #1
+ tst r0, r1
+ beq _02247DCE
+_02247DA8:
+ mov r5, #0x50
+ add r0, r5, #0
+ add r0, #0xd4
+ str r6, [r4, r0]
+ b _02247DCE
+_02247DB2:
+ add r0, r1, #0
+ cmp r5, r0
+ blo _02247DC6
+ cmp r5, r0
+ bne _02247DCE
+ bl LCRandom
+ mov r1, #1
+ tst r0, r1
+ beq _02247DCE
+_02247DC6:
+ mov r0, #0x49
+ lsl r0, r0, #2
+ ldr r5, [sp, #0x60]
+ str r6, [r4, r0]
+_02247DCE:
+ ldr r0, [sp, #0x54]
+ add r0, r0, #2
+ str r0, [sp, #0x54]
+ ldr r0, [sp, #0x64]
+ add r0, r0, #1
+ str r0, [sp, #0x64]
+ cmp r0, #4
+ blt _02247CFA
+_02247DDE:
+ ldr r0, [sp, #0x58]
+ add r0, #0xc0
+ str r0, [sp, #0x58]
+ ldr r0, [sp, #0x68]
+ add r1, r0, #1
+ ldr r0, [sp, #0x80]
+ str r1, [sp, #0x68]
+ cmp r1, r0
+ bge _02247DF2
+ b _02247CCC
+_02247DF2:
+ cmp r5, #0
+ beq _02247E08
+ mov r1, #0x46
+ ldr r0, [sp, #0x20]
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0xc3
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02247E64
+_02247E08:
+ ldr r0, [sp, #0x5c]
+ cmp r0, #0
+ beq _02247E64
+ ldr r2, [sp, #0x20]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_022482A4
+ add r5, r0, #0
+ add r0, r7, #0
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD11_022473F8
+ add r6, r0, #0
+ bl LCRandom
+ add r1, r6, #0
+ bl _s32_div_f
+ mov r0, #0xc0
+ add r2, r5, #0
+ mul r2, r0
+ lsl r3, r1, #1
+ add r1, r4, r2
+ add r2, r3, r1
+ ldr r1, _02248144 ; =0x00002D4C
+ ldrh r2, [r2, r1]
+ add r1, r0, #0
+ add r1, #0x64
+ str r2, [r4, r1]
+ ldr r1, [sp, #0x20]
+ add r0, #0x58
+ str r1, [r4, r0]
+ mov r0, #0xc3
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02247E64
+_02247E56:
+ ldr r0, [sp, #0x38]
+ add r1, r0, #1
+ ldr r0, [sp, #0x80]
+ str r1, [sp, #0x38]
+ cmp r1, r0
+ bge _02247E64
+ b _02247C84
+_02247E64:
+ ldr r1, [sp, #0x38]
+ ldr r0, [sp, #0x80]
+ cmp r1, r0
+ beq _02247E6E
+ b _02248282
+_02247E6E:
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ b _02248282
+_02247E76:
+ mov r0, #0
+ str r0, [sp, #0x3c]
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ bgt _02247E82
+ b _02247FBA
+_02247E82:
+ ldr r0, _02248148 ; =0x00002D68
+ add r0, r4, r0
+ str r0, [sp, #0xa0]
+_02247E88:
+ ldr r0, [sp, #0x3c]
+ add r1, r4, r0
+ ldr r0, _0224814C ; =0x000021EC
+ ldrb r5, [r1, r0]
+ mov r0, #0xc0
+ add r6, r5, #0
+ mul r6, r0
+ ldr r0, [sp, #0xa0]
+ ldr r0, [r0, r6]
+ lsl r0, r0, #0x17
+ lsr r0, r0, #0x1f
+ bne _02247F9A
+ ldr r0, _02248150 ; =0x00002D8C
+ add r1, r4, r6
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02247F9A
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x77
+ bne _02247F9A
+ ldr r0, [sp, #0xa0]
+ ldr r1, [r0, r6]
+ mov r0, #1
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, [sp, #0xa0]
+ str r1, [r0, r6]
+ add r0, r7, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _02247F74
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #0
+ bl MOD11_02230308
+ str r0, [sp, #0xc0]
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #2
+ bl MOD11_02230308
+ ldr r2, [sp, #0xc0]
+ mov r1, #0xc0
+ mul r1, r2
+ ldr r2, _02248150 ; =0x00002D8C
+ add r1, r4, r1
+ ldr r3, [r1, r2]
+ str r0, [sp, #0xc4]
+ cmp r3, #0
+ beq _02247F38
+ add r2, #0x2c
+ ldrh r2, [r1, r2]
+ cmp r2, #0
+ beq _02247F38
+ mov r2, #0xc0
+ mul r2, r0
+ add r0, r4, r2
+ ldr r2, _02248150 ; =0x00002D8C
+ ldr r2, [r0, r2]
+ cmp r2, #0
+ beq _02247F38
+ ldr r2, _02248154 ; =0x00002DB8
+ ldrh r0, [r0, r2]
+ cmp r0, #0
+ beq _02247F38
+ bl LCRandom
+ lsl r0, r0, #0x1f
+ lsr r1, r0, #0x1d
+ add r0, sp, #0xc0
+ ldr r1, [r0, r1]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _02248154 ; =0x00002DB8
+ ldrh r1, [r1, r0]
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02247F9A
+_02247F38:
+ cmp r3, #0
+ beq _02247F50
+ ldr r0, _02248154 ; =0x00002DB8
+ ldrh r1, [r1, r0]
+ cmp r1, #0
+ beq _02247F50
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02247F9A
+_02247F50:
+ ldr r1, [sp, #0xc4]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _02248150 ; =0x00002D8C
+ add r0, r4, r0
+ ldr r1, [r0, r1]
+ cmp r1, #0
+ beq _02247F9A
+ ldr r1, _02248154 ; =0x00002DB8
+ ldrh r1, [r0, r1]
+ cmp r1, #0
+ beq _02247F9A
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02247F9A
+_02247F74:
+ mov r0, #1
+ add r1, r5, #0
+ eor r1, r0
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _02248150 ; =0x00002D8C
+ add r0, r4, r0
+ ldr r1, [r0, r1]
+ cmp r1, #0
+ beq _02247F9A
+ ldr r1, _02248154 ; =0x00002DB8
+ ldrh r1, [r0, r1]
+ cmp r1, #0
+ beq _02247F9A
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #1
+ str r0, [sp, #0x84]
+_02247F9A:
+ ldr r0, [sp, #0x84]
+ cmp r0, #1
+ bne _02247FAC
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r5, [r4, r0]
+ mov r0, #0xfd
+ str r0, [sp, #0xcc]
+ b _02247FBA
+_02247FAC:
+ ldr r0, [sp, #0x3c]
+ add r1, r0, #1
+ ldr r0, [sp, #0x80]
+ str r1, [sp, #0x3c]
+ cmp r1, r0
+ bge _02247FBA
+ b _02247E88
+_02247FBA:
+ ldr r1, [sp, #0x3c]
+ ldr r0, [sp, #0x80]
+ cmp r1, r0
+ beq _02247FC4
+ b _02248282
+_02247FC4:
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ b _02248282
+_02247FCC:
+ mov r0, #0
+ str r0, [sp, #0x40]
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ ble _02248094
+ ldr r0, _02248148 ; =0x00002D68
+ add r0, r4, r0
+ str r0, [sp, #0xa4]
+_02247FDC:
+ ldr r0, [sp, #0x40]
+ add r1, r4, r0
+ ldr r0, _0224814C ; =0x000021EC
+ ldrb r6, [r1, r0]
+ mov r0, #0xc0
+ add r5, r6, #0
+ mul r5, r0
+ ldr r0, [sp, #0xa4]
+ ldr r0, [r0, r5]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x1f
+ bne _02248038
+ ldr r0, _02248150 ; =0x00002D8C
+ add r1, r4, r5
+ ldr r0, [r1, r0]
+ str r1, [sp, #0x48]
+ cmp r0, #0
+ beq _02248038
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x70
+ bne _02248038
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldr r2, [r4, r0]
+ ldr r1, [sp, #0x48]
+ ldr r0, _02248158 ; =0x00002DD8
+ ldr r0, [r1, r0]
+ cmp r2, r0
+ bgt _02248038
+ ldr r0, [sp, #0xa4]
+ mov r2, #0x40
+ ldr r0, [r0, r5]
+ add r1, r0, #0
+ orr r1, r2
+ ldr r0, [sp, #0xa4]
+ add r2, #0xd8
+ str r1, [r0, r5]
+ str r6, [r4, r2]
+ mov r0, #0xc4
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02248094
+_02248038:
+ ldr r0, [sp, #0xa4]
+ ldr r0, [r0, r5]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ bne _02248088
+ ldr r0, _02248150 ; =0x00002D8C
+ add r1, r4, r5
+ ldr r0, [r1, r0]
+ str r1, [sp, #0x44]
+ cmp r0, #0
+ beq _02248088
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x70
+ bne _02248088
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldr r2, [r4, r0]
+ ldr r1, [sp, #0x44]
+ ldr r0, _02248158 ; =0x00002DD8
+ ldr r0, [r1, r0]
+ sub r0, r2, r0
+ cmp r0, #5
+ bne _02248088
+ ldr r0, [sp, #0xa4]
+ mov r2, #0x80
+ ldr r0, [r0, r5]
+ add r1, r0, #0
+ orr r1, r2
+ ldr r0, [sp, #0xa4]
+ add r2, #0x98
+ str r1, [r0, r5]
+ str r6, [r4, r2]
+ mov r0, #0xc5
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02248094
+_02248088:
+ ldr r0, [sp, #0x40]
+ add r1, r0, #1
+ ldr r0, [sp, #0x80]
+ str r1, [sp, #0x40]
+ cmp r1, r0
+ blt _02247FDC
+_02248094:
+ ldr r1, [sp, #0x40]
+ ldr r0, [sp, #0x80]
+ cmp r1, r0
+ bne _0224810E
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ b _02248282
+_022480A4:
+ ldr r0, [sp, #0x80]
+ mov r5, #0
+ cmp r0, #0
+ ble _02248108
+ ldr r0, _02248148 ; =0x00002D68
+ add r0, r4, r0
+ str r0, [sp, #0xa8]
+_022480B2:
+ ldr r0, _0224814C ; =0x000021EC
+ add r1, r4, r5
+ ldrb r1, [r1, r0]
+ mov r0, #0xc0
+ add r6, r1, #0
+ mul r6, r0
+ ldr r0, [sp, #0xa8]
+ str r1, [sp, #0x24]
+ ldr r0, [r0, r6]
+ lsl r0, r0, #0x16
+ lsr r0, r0, #0x1f
+ bne _02248100
+ ldr r0, _02248150 ; =0x00002D8C
+ add r1, r4, r6
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02248100
+ ldr r1, [sp, #0x24]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x68
+ bne _02248100
+ ldr r0, [sp, #0xa8]
+ mov r2, #2
+ ldr r0, [r0, r6]
+ lsl r2, r2, #8
+ add r1, r0, #0
+ orr r1, r2
+ ldr r0, [sp, #0xa8]
+ sub r2, #0xe8
+ str r1, [r0, r6]
+ ldr r0, [sp, #0x24]
+ str r0, [r4, r2]
+ mov r0, #0xb1
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02248108
+_02248100:
+ ldr r0, [sp, #0x80]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _022480B2
+_02248108:
+ ldr r0, [sp, #0x80]
+ cmp r5, r0
+ beq _02248110
+_0224810E:
+ b _02248282
+_02248110:
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ b _02248282
+_02248118:
+ ldr r0, [sp, #0x80]
+ mov r5, #0
+ cmp r0, #0
+ ble _02248198
+ ldr r0, _02248148 ; =0x00002D68
+ add r0, r4, r0
+ str r0, [sp, #0xac]
+_02248126:
+ ldr r0, _0224814C ; =0x000021EC
+ add r1, r4, r5
+ ldrb r1, [r1, r0]
+ mov r0, #0xc0
+ add r6, r1, #0
+ mul r6, r0
+ ldr r0, [sp, #0xac]
+ str r1, [sp, #0x28]
+ ldr r0, [r0, r6]
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x1f
+ bne _02248190
+ ldr r0, _02248150 ; =0x00002D8C
+ b _0224815C
+ nop
+_02248144: .word 0x00002D4C
+_02248148: .word 0x00002D68
+_0224814C: .word 0x000021EC
+_02248150: .word 0x00002D8C
+_02248154: .word 0x00002DB8
+_02248158: .word 0x00002DD8
+_0224815C:
+ add r1, r4, r6
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02248190
+ ldr r1, [sp, #0x28]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x2e
+ bne _02248190
+ ldr r0, [sp, #0xac]
+ ldr r1, [r0, r6]
+ mov r0, #1
+ lsl r0, r0, #0xa
+ orr r1, r0
+ ldr r0, [sp, #0xac]
+ str r1, [r0, r6]
+ mov r1, #0x46
+ ldr r0, [sp, #0x28]
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r1, #5
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02248198
+_02248190:
+ ldr r0, [sp, #0x80]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _02248126
+_02248198:
+ ldr r0, [sp, #0x80]
+ cmp r5, r0
+ bne _02248282
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ b _02248282
+_022481A6:
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_0224AE78
+ cmp r0, #1
+ bne _022481BC
+ ldr r0, _02248294 ; =0x00000106
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _02248282
+_022481BC:
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ b _02248282
+_022481C4:
+ ldr r0, [sp, #0x80]
+ mov r5, #0
+ cmp r0, #0
+ ble _022481F6
+ mov r6, #2
+_022481CE:
+ ldr r1, _02248298 ; =0x000021EC
+ add r2, r4, r5
+ ldrb r2, [r2, r1]
+ mov r1, #0xc0
+ add r0, r4, #0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _0224829C ; =0x00002DB8
+ ldrh r1, [r2, r1]
+ mov r2, #1
+ bl MOD11_0224C12C
+ cmp r0, #0x39
+ bne _022481EE
+ ldr r0, _022482A0 ; =0x00002168
+ str r6, [r4, r0]
+_022481EE:
+ ldr r0, [sp, #0x80]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _022481CE
+_022481F6:
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ b _02248282
+_022481FE:
+ ldr r0, [sp, #0x80]
+ mov r5, #0
+ cmp r0, #0
+ ble _0224822C
+ ldr r6, _02248298 ; =0x000021EC
+_02248208:
+ add r2, r4, r5
+ ldrb r2, [r2, r6]
+ add r0, r7, #0
+ add r1, r4, #0
+ mov r3, #1
+ bl MOD11_02248898
+ cmp r0, #1
+ bne _02248224
+ mov r0, #0xdd
+ str r0, [sp, #0xcc]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _0224822C
+_02248224:
+ ldr r0, [sp, #0x80]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _02248208
+_0224822C:
+ ldr r0, [sp, #0x80]
+ cmp r5, r0
+ bne _02248282
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ b _02248282
+_0224823A:
+ ldr r0, [sp, #0x80]
+ mov r5, #0
+ cmp r0, #0
+ ble _0224826C
+_02248242:
+ ldr r0, _02248298 ; =0x000021EC
+ add r1, r4, r5
+ ldrb r6, [r1, r0]
+ add r0, r7, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ add r3, sp, #0xcc
+ bl MOD11_022493A0
+ cmp r0, #1
+ bne _02248264
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r6, [r4, r0]
+ mov r0, #1
+ str r0, [sp, #0x84]
+ b _0224826C
+_02248264:
+ ldr r0, [sp, #0x80]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _02248242
+_0224826C:
+ ldr r0, [sp, #0x80]
+ cmp r5, r0
+ bne _02248282
+ ldr r0, [r4, #0x58]
+ add r0, r0, #1
+ str r0, [r4, #0x58]
+ b _02248282
+_0224827A:
+ mov r0, #0
+ str r0, [r4, #0x58]
+ mov r0, #2
+ str r0, [sp, #0x84]
+_02248282:
+ ldr r0, [sp, #0x84]
+ cmp r0, #0
+ bne _0224828C
+ bl MOD11_022476F0
+_0224828C:
+ ldr r0, [sp, #0xcc]
+ add sp, #0xd0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02248294: .word 0x00000106
+_02248298: .word 0x000021EC
+_0224829C: .word 0x00002DB8
+_022482A0: .word 0x00002168
+
+ thumb_func_start MOD11_022482A4
+MOD11_022482A4: ; 0x022482A4
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r6, r1, #0
+ add r4, r2, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _022482FA
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD11_02230308
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #2
+ bl MOD11_02230308
+ str r0, [sp, #4]
+ bl LCRandom
+ mov r3, #1
+ add r2, r0, #0
+ and r2, r3
+ lsl r0, r2, #2
+ add r1, sp, #0
+ ldr r0, [r1, r0]
+ mov r4, #0xc0
+ mul r4, r0
+ add r5, r6, r4
+ ldr r4, _02248304 ; =0x00002D8C
+ ldr r4, [r5, r4]
+ cmp r4, #0
+ bne _022482FE
+ add r0, r2, #0
+ eor r0, r3
+ lsl r0, r0, #2
+ add sp, #8
+ ldr r0, [r1, r0]
+ pop {r4, r5, r6, pc}
+_022482FA:
+ mov r0, #1
+ eor r0, r4
+_022482FE:
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ nop
+_02248304: .word 0x00002D8C
+
+ thumb_func_start MOD11_02248308
+MOD11_02248308: ; 0x02248308
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ ldr r1, [r5, #0x6c]
+ add r7, r0, #0
+ add r4, r2, #0
+ mov r6, #0
+ cmp r1, #0xff
+ bne _0224831C
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0224831C:
+ add r0, r5, #0
+ bl MOD11_0224AD9C
+ cmp r0, #1
+ bne _0224832A
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0224832A:
+ ldr r1, [r5, #0x6c]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x26
+ bgt _0224835A
+ blt _0224833A
+ b _022485FC
+_0224833A:
+ cmp r0, #0x10
+ bgt _02248346
+ bge _02248408
+ cmp r0, #9
+ beq _02248372
+ b _0224887A
+_02248346:
+ cmp r0, #0x1b
+ bgt _02248358
+ cmp r0, #0x18
+ blt _02248358
+ bne _02248352
+ b _022484B0
+_02248352:
+ cmp r0, #0x1b
+ bne _02248358
+ b _02248546
+_02248358:
+ b _0224887A
+_0224835A:
+ cmp r0, #0x38
+ bgt _0224836A
+ blt _02248362
+ b _02248752
+_02248362:
+ cmp r0, #0x31
+ bne _02248368
+ b _022486BE
+_02248368:
+ b _0224887A
+_0224836A:
+ cmp r0, #0x6a
+ bne _02248370
+ b _022487FA
+_02248370:
+ b _0224887A
+_02248372:
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02248660 ; =0x00002D8C
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ beq _022483E6
+ add r1, r0, #0
+ add r1, #0x20
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ bne _022483E6
+ ldr r2, _02248664 ; =0x0000216C
+ ldr r1, _02248668 ; =0x801FDA49
+ ldr r3, [r5, r2]
+ tst r1, r3
+ bne _022483E6
+ add r1, r2, #0
+ sub r1, #0x30
+ ldr r3, [r5, r1]
+ mov r1, #0x20
+ tst r1, r3
+ bne _022483E6
+ sub r2, #0x2c
+ ldr r2, [r5, r2]
+ mov r1, #0x10
+ tst r1, r2
+ bne _022483E6
+ ldr r2, [r5, #0x6c]
+ mov r1, #0x1c
+ mul r1, r2
+ add r1, r5, r1
+ lsr r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _022483C6
+ mov r0, #0x2e
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _022483E6
+_022483C6:
+ ldr r0, _0224866C ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02248670 ; =0x000003E9
+ ldrb r1, [r1, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _022483E6
+ bl LCRandom
+ mov r1, #0xa
+ bl _s32_div_f
+ cmp r1, #3
+ blt _022483E8
+_022483E6:
+ b _0224887A
+_022483E8:
+ add r0, r5, #0
+ mov r1, #3
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r5, #0
+ ldr r1, [r5, #0x64]
+ add r0, #0x94
+ str r1, [r0]
+ mov r0, #0x46
+ ldr r1, [r5, #0x6c]
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r0, #0x1f
+ str r0, [r4]
+ mov r6, #1
+ b _0224887A
+_02248408:
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x60
+ bne _02248418
+ add r7, r6, #0
+ b _02248432
+_02248418:
+ ldr r0, _02248674 ; =0x00002160
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _02248426
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ b _02248432
+_02248426:
+ ldr r0, _0224866C ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02248678 ; =0x000003E2
+ ldrb r7, [r1, r0]
+_02248432:
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02248660 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _02248516
+ ldr r0, _02248664 ; =0x0000216C
+ ldr r2, [r5, r0]
+ ldr r0, _02248668 ; =0x801FDA49
+ tst r0, r2
+ bne _02248516
+ ldr r0, _0224866C ; =0x00003044
+ ldr r3, [r5, r0]
+ cmp r3, #0xa5
+ beq _02248516
+ mov r0, #0x1c
+ ldr r2, _02248660 ; =0x00002D8C
+ mul r0, r1
+ add r0, r5, r0
+ lsr r2, r2, #4
+ ldr r2, [r0, r2]
+ cmp r2, #0
+ bne _0224846E
+ mov r2, #0x2e
+ lsl r2, r2, #4
+ ldr r0, [r0, r2]
+ cmp r0, #0
+ beq _02248516
+_0224846E:
+ mov r0, #0x85
+ lsl r0, r0, #6
+ ldr r2, [r5, r0]
+ mov r0, #0x10
+ tst r0, r2
+ bne _02248516
+ lsl r0, r3, #4
+ add r2, r5, r0
+ ldr r0, _0224867C ; =0x000003E1
+ ldrb r0, [r2, r0]
+ cmp r0, #0
+ beq _02248516
+ add r0, r5, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r7, r0
+ beq _02248516
+ ldr r1, [r5, #0x6c]
+ add r0, r5, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r7, r0
+ beq _02248516
+ mov r0, #0xbc
+ str r0, [r4]
+ add r0, #0x74
+ str r7, [r5, r0]
+ mov r6, #1
+ b _0224887A
+_022484B0:
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02248660 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _02248516
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _02248516
+ ldr r1, _02248664 ; =0x0000216C
+ ldr r0, _02248668 ; =0x801FDA49
+ ldr r2, [r5, r1]
+ tst r0, r2
+ bne _02248516
+ add r0, r1, #0
+ sub r0, #0x30
+ ldr r2, [r5, r0]
+ mov r0, #0x20
+ tst r0, r2
+ bne _02248516
+ sub r1, #0x2c
+ ldr r1, [r5, r1]
+ mov r0, #0x10
+ tst r0, r1
+ bne _02248516
+ ldr r1, [r5, #0x6c]
+ mov r0, #0x1c
+ mul r0, r1
+ add r2, r5, r0
+ mov r0, #0xb6
+ lsl r0, r0, #2
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ bne _02248504
+ add r0, #8
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _02248516
+_02248504:
+ ldr r0, _0224866C ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02248670 ; =0x000003E9
+ ldrb r1, [r1, r0]
+ mov r0, #1
+ tst r0, r1
+ bne _02248518
+_02248516:
+ b _0224887A
+_02248518:
+ ldr r0, [r5, #0x64]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, _02248680 ; =0x00002D90
+ add r2, r5, r2
+ ldr r2, [r2, r0]
+ sub r1, #0xc1
+ add r0, r2, #0
+ mul r0, r1
+ mov r1, #8
+ bl MOD11_022476C0
+ ldr r1, _02248684 ; =0x0000215C
+ mov r6, #1
+ str r0, [r5, r1]
+ mov r0, #0x46
+ ldr r1, [r5, #0x64]
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r0, #0xbd
+ str r0, [r4]
+ b _0224887A
+_02248546:
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02248660 ; =0x00002D8C
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ beq _02248650
+ add r1, r0, #0
+ add r1, #0x20
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ bne _02248650
+ ldr r2, _02248664 ; =0x0000216C
+ ldr r1, _02248668 ; =0x801FDA49
+ ldr r3, [r5, r2]
+ tst r1, r3
+ bne _02248650
+ add r1, r2, #0
+ sub r1, #0x30
+ ldr r3, [r5, r1]
+ mov r1, #0x20
+ tst r1, r3
+ bne _02248650
+ sub r2, #0x2c
+ ldr r2, [r5, r2]
+ mov r1, #0x10
+ tst r1, r2
+ bne _02248650
+ ldr r2, [r5, #0x6c]
+ mov r1, #0x1c
+ mul r1, r2
+ add r1, r5, r1
+ lsr r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _0224859A
+ mov r0, #0x2e
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02248650
+_0224859A:
+ ldr r0, _0224866C ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02248670 ; =0x000003E9
+ ldrb r1, [r1, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _02248650
+ bl LCRandom
+ mov r1, #0xa
+ bl _s32_div_f
+ cmp r1, #3
+ bge _02248650
+ bl LCRandom
+ mov r1, #3
+ bl _s32_div_f
+ cmp r1, #0
+ beq _022485D0
+ cmp r1, #1
+ beq _022485D6
+ cmp r1, #2
+ beq _022485DC
+_022485D0:
+ mov r0, #0x16
+ str r0, [r4]
+ b _022485E0
+_022485D6:
+ mov r0, #0x1f
+ str r0, [r4]
+ b _022485E0
+_022485DC:
+ mov r0, #0x12
+ str r0, [r4]
+_022485E0:
+ add r0, r5, #0
+ mov r1, #3
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r5, #0
+ ldr r1, [r5, #0x64]
+ add r0, #0x94
+ str r1, [r0]
+ mov r0, #0x46
+ ldr r1, [r5, #0x6c]
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r6, #1
+ b _0224887A
+_022485FC:
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02248660 ; =0x00002D8C
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ beq _02248650
+ add r1, r0, #0
+ add r1, #0x20
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ bne _02248650
+ ldr r2, _02248664 ; =0x0000216C
+ ldr r1, _02248668 ; =0x801FDA49
+ ldr r3, [r5, r2]
+ tst r1, r3
+ bne _02248650
+ add r1, r2, #0
+ sub r1, #0x30
+ ldr r3, [r5, r1]
+ mov r1, #0x20
+ tst r1, r3
+ bne _02248650
+ sub r2, #0x2c
+ ldr r2, [r5, r2]
+ mov r1, #0x10
+ tst r1, r2
+ bne _02248650
+ ldr r2, [r5, #0x6c]
+ mov r1, #0x1c
+ mul r1, r2
+ add r1, r5, r1
+ lsr r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02248652
+ mov r0, #0x2e
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02248652
+_02248650:
+ b _0224887A
+_02248652:
+ ldr r0, _0224866C ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02248670 ; =0x000003E9
+ b _02248688
+ nop
+_02248660: .word 0x00002D8C
+_02248664: .word 0x0000216C
+_02248668: .word 0x801FDA49
+_0224866C: .word 0x00003044
+_02248670: .word 0x000003E9
+_02248674: .word 0x00002160
+_02248678: .word 0x000003E2
+_0224867C: .word 0x000003E1
+_02248680: .word 0x00002D90
+_02248684: .word 0x0000215C
+_02248688:
+ ldrb r1, [r1, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _02248770
+ bl LCRandom
+ mov r1, #0xa
+ bl _s32_div_f
+ cmp r1, #3
+ bge _02248770
+ add r0, r5, #0
+ mov r1, #3
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r5, #0
+ ldr r1, [r5, #0x64]
+ add r0, #0x94
+ str r1, [r0]
+ mov r0, #0x46
+ ldr r1, [r5, #0x6c]
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r0, #0x16
+ str r0, [r4]
+ mov r6, #1
+ b _0224887A
+_022486BE:
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02248880 ; =0x00002D8C
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ beq _02248770
+ add r1, r0, #0
+ add r1, #0x20
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ bne _02248770
+ ldr r2, _02248884 ; =0x0000216C
+ ldr r1, _02248888 ; =0x801FDA49
+ ldr r3, [r5, r2]
+ tst r1, r3
+ bne _02248770
+ add r1, r2, #0
+ sub r1, #0x30
+ ldr r3, [r5, r1]
+ mov r1, #0x20
+ tst r1, r3
+ bne _02248770
+ sub r2, #0x2c
+ ldr r2, [r5, r2]
+ mov r1, #0x10
+ tst r1, r2
+ bne _02248770
+ ldr r2, [r5, #0x6c]
+ mov r1, #0x1c
+ mul r1, r2
+ add r1, r5, r1
+ lsr r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02248712
+ mov r0, #0x2e
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02248770
+_02248712:
+ ldr r0, _0224888C ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02248890 ; =0x000003E9
+ ldrb r1, [r1, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _02248770
+ bl LCRandom
+ mov r1, #0xa
+ bl _s32_div_f
+ cmp r1, #3
+ bge _02248770
+ add r0, r5, #0
+ mov r1, #3
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r5, #0
+ ldr r1, [r5, #0x64]
+ add r0, #0x94
+ str r1, [r0]
+ mov r0, #0x46
+ ldr r1, [r5, #0x6c]
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r0, #0x19
+ str r0, [r4]
+ mov r6, #1
+ b _0224887A
+_02248752:
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02248880 ; =0x00002D8C
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ beq _02248770
+ add r1, r0, #0
+ add r1, #0x24
+ ldr r2, [r2, r1]
+ mov r1, #0xf
+ lsl r1, r1, #0x10
+ tst r1, r2
+ beq _02248772
+_02248770:
+ b _0224887A
+_02248772:
+ ldr r2, _02248884 ; =0x0000216C
+ ldr r1, _02248888 ; =0x801FDA49
+ ldr r3, [r5, r2]
+ tst r1, r3
+ bne _0224887A
+ add r1, r2, #0
+ sub r1, #0x30
+ ldr r3, [r5, r1]
+ mov r1, #0x20
+ tst r1, r3
+ bne _0224887A
+ sub r2, #0x2c
+ ldr r2, [r5, r2]
+ mov r1, #0x10
+ tst r1, r2
+ bne _0224887A
+ ldr r2, [r5, #0x6c]
+ mov r1, #0x1c
+ mul r1, r2
+ add r1, r5, r1
+ lsr r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _022487AC
+ mov r0, #0x2e
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0224887A
+_022487AC:
+ ldr r0, _0224888C ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02248890 ; =0x000003E9
+ ldrb r1, [r1, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _0224887A
+ mov r0, #0xc0
+ mul r0, r2
+ add r1, r5, r0
+ ldr r0, _02248880 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0224887A
+ bl LCRandom
+ mov r1, #0xa
+ bl _s32_div_f
+ cmp r1, #3
+ bge _0224887A
+ add r0, r5, #0
+ mov r1, #3
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r5, #0
+ ldr r1, [r5, #0x64]
+ add r0, #0x94
+ str r1, [r0]
+ mov r0, #0x46
+ ldr r1, [r5, #0x6c]
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r0, #0x6a
+ str r0, [r4]
+ mov r6, #1
+ b _0224887A
+_022487FA:
+ ldr r1, [r5, #0x6c]
+ ldr r0, [r5, #0x74]
+ cmp r1, r0
+ bne _0224887A
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _0224887A
+ mov r0, #6
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #8
+ add r3, r6, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224887A
+ mov r2, #0x85
+ lsl r2, r2, #6
+ ldr r1, [r5, r2]
+ mov r0, #0x10
+ tst r0, r1
+ bne _0224887A
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r5, r0
+ ldr r0, _02248880 ; =0x00002D8C
+ ldr r3, [r1, r0]
+ cmp r3, #0
+ beq _0224887A
+ add r2, #0x2c
+ ldr r3, [r5, r2]
+ ldr r2, _02248888 ; =0x801FDA49
+ tst r2, r3
+ bne _0224887A
+ ldr r2, _0224888C ; =0x00003044
+ ldr r2, [r5, r2]
+ lsl r2, r2, #4
+ add r3, r5, r2
+ ldr r2, _02248890 ; =0x000003E9
+ ldrb r3, [r3, r2]
+ mov r2, #1
+ tst r3, r2
+ beq _0224887A
+ add r0, r0, #4
+ ldr r1, [r1, r0]
+ sub r0, r2, #2
+ mul r0, r1
+ mov r1, #4
+ bl MOD11_022476C0
+ ldr r1, _02248894 ; =0x0000215C
+ mov r6, #1
+ str r0, [r5, r1]
+ mov r0, #0x46
+ ldr r1, [r5, #0x64]
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r0, #0xc1
+ str r0, [r4]
+_0224887A:
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02248880: .word 0x00002D8C
+_02248884: .word 0x0000216C
+_02248888: .word 0x801FDA49
+_0224888C: .word 0x00003044
+_02248890: .word 0x000003E9
+_02248894: .word 0x0000215C
+
+ thumb_func_start MOD11_02248898
+MOD11_02248898: ; 0x02248898
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r2, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ add r7, r3, #0
+ mov r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x28
+ bgt _022488DE
+ bge _02248978
+ cmp r0, #7
+ bgt _022488B8
+ beq _02248926
+ b _022489D0
+_022488B8:
+ add r1, r0, #0
+ sub r1, #0xc
+ cmp r1, #8
+ bhi _022488E8
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022488CC: ; jump table
+ .short _02248994 - _022488CC - 2 ; case 0
+ .short _022489D0 - _022488CC - 2 ; case 1
+ .short _022489D0 - _022488CC - 2 ; case 2
+ .short _02248940 - _022488CC - 2 ; case 3
+ .short _022489D0 - _022488CC - 2 ; case 4
+ .short _022488F0 - _022488CC - 2 ; case 5
+ .short _022489D0 - _022488CC - 2 ; case 6
+ .short _022489D0 - _022488CC - 2 ; case 7
+ .short _0224890A - _022488CC - 2 ; case 8
+_022488DE:
+ cmp r0, #0x48
+ bgt _022488EA
+ bge _02248940
+ cmp r0, #0x29
+ beq _0224895C
+_022488E8:
+ b _022489D0
+_022488EA:
+ cmp r0, #0x54
+ beq _022489B2
+ b _022489D0
+_022488F0:
+ mov r0, #0xc0
+ add r1, r5, #0
+ mul r1, r0
+ add r2, r4, r1
+ ldr r1, _02248A04 ; =0x00002DAC
+ ldr r2, [r2, r1]
+ ldr r1, _02248A08 ; =0x00000F88
+ tst r1, r2
+ beq _022489D0
+ mov r6, #1
+ add r0, #0x70
+ str r6, [r4, r0]
+ b _022489D0
+_0224890A:
+ mov r0, #0xc0
+ add r1, r5, #0
+ mul r1, r0
+ add r2, r4, r1
+ ldr r1, _02248A0C ; =0x00002DB0
+ ldr r2, [r2, r1]
+ mov r1, #7
+ tst r1, r2
+ beq _022489D0
+ mov r1, #5
+ add r0, #0x70
+ str r1, [r4, r0]
+ mov r6, #1
+ b _022489D0
+_02248926:
+ mov r0, #0xc0
+ mul r0, r5
+ add r1, r4, r0
+ ldr r0, _02248A04 ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #0x40
+ tst r1, r0
+ beq _022489D0
+ mov r1, #3
+ add r0, #0xf0
+ str r1, [r4, r0]
+ mov r6, #1
+ b _022489D0
+_02248940:
+ mov r0, #0xc0
+ add r1, r5, #0
+ mul r1, r0
+ add r2, r4, r1
+ ldr r1, _02248A04 ; =0x00002DAC
+ ldr r2, [r2, r1]
+ mov r1, #7
+ tst r1, r2
+ beq _022489D0
+ mov r1, #0
+ add r0, #0x70
+ str r1, [r4, r0]
+ mov r6, #1
+ b _022489D0
+_0224895C:
+ mov r0, #0xc0
+ add r1, r5, #0
+ mul r1, r0
+ add r2, r4, r1
+ ldr r1, _02248A04 ; =0x00002DAC
+ ldr r2, [r2, r1]
+ mov r1, #0x10
+ tst r1, r2
+ beq _022489D0
+ mov r1, #2
+ add r0, #0x70
+ str r1, [r4, r0]
+ mov r6, #1
+ b _022489D0
+_02248978:
+ mov r0, #0xc0
+ add r1, r5, #0
+ mul r1, r0
+ add r2, r4, r1
+ ldr r1, _02248A04 ; =0x00002DAC
+ ldr r2, [r2, r1]
+ mov r1, #0x20
+ tst r1, r2
+ beq _022489D0
+ mov r1, #4
+ add r0, #0x70
+ str r1, [r4, r0]
+ mov r6, #1
+ b _022489D0
+_02248994:
+ mov r0, #0xc0
+ add r1, r5, #0
+ mul r1, r0
+ add r2, r4, r1
+ ldr r1, _02248A0C ; =0x00002DB0
+ ldr r2, [r2, r1]
+ mov r1, #0xf
+ lsl r1, r1, #0x10
+ tst r1, r2
+ beq _022489D0
+ mov r1, #6
+ add r0, #0x70
+ str r1, [r4, r0]
+ mov r6, #1
+ b _022489D0
+_022489B2:
+ mov r0, #0xc0
+ add r3, r5, #0
+ mul r3, r0
+ ldr r0, _02248A10 ; =0x00002DB8
+ add r1, r4, r3
+ ldrh r1, [r1, r0]
+ cmp r1, #0
+ beq _022489D0
+ add r0, #0x14
+ add r2, r4, r0
+ mov r0, #1
+ ldr r1, [r2, r3]
+ lsl r0, r0, #0x16
+ orr r0, r1
+ str r0, [r2, r3]
+_022489D0:
+ cmp r6, #1
+ bne _022489FE
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r5, [r4, r0]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_02246D1C
+ mov r1, #0x4b
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ cmp r7, #0
+ bne _022489FE
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xdd
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_022489FE:
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02248A04: .word 0x00002DAC
+_02248A08: .word 0x00000F88
+_02248A0C: .word 0x00002DB0
+_02248A10: .word 0x00002DB8
+
+ thumb_func_start MOD11_02248A14
+MOD11_02248A14: ; 0x02248A14
+ mov r0, #0
+ cmp r1, #0x28
+ bgt _02248A34
+ bge _02248A6A
+ cmp r1, #7
+ bgt _02248A24
+ beq _02248A4C
+ bx lr
+_02248A24:
+ cmp r1, #0x11
+ bgt _02248A72
+ cmp r1, #0xf
+ blt _02248A72
+ beq _02248A56
+ cmp r1, #0x11
+ beq _02248A42
+ bx lr
+_02248A34:
+ cmp r1, #0x29
+ bgt _02248A3C
+ beq _02248A60
+ bx lr
+_02248A3C:
+ cmp r1, #0x48
+ beq _02248A56
+ bx lr
+_02248A42:
+ ldr r1, _02248A74 ; =0x00000F88
+ tst r1, r2
+ beq _02248A72
+ mov r0, #1
+ bx lr
+_02248A4C:
+ mov r1, #0x40
+ tst r1, r2
+ beq _02248A72
+ mov r0, #1
+ bx lr
+_02248A56:
+ mov r1, #7
+ tst r1, r2
+ beq _02248A72
+ mov r0, #1
+ bx lr
+_02248A60:
+ mov r1, #0x10
+ tst r1, r2
+ beq _02248A72
+ mov r0, #1
+ bx lr
+_02248A6A:
+ mov r1, #0x20
+ tst r1, r2
+ beq _02248A72
+ mov r0, #1
+_02248A72:
+ bx lr
+ .align 2, 0
+_02248A74: .word 0x00000F88
+
+ thumb_func_start MOD11_02248A78
+MOD11_02248A78: ; 0x02248A78
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0x6c]
+ str r0, [sp]
+ mov r7, #0
+ add r0, r4, #0
+ add r6, r2, #0
+ add r5, r7, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x1c
+ bne _02248ABA
+ ldr r0, [r4, #0x6c]
+ cmp r0, #0xff
+ beq _02248ABA
+ add r1, r4, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ cmp r0, r1
+ bne _02248ABA
+ ldr r1, _02248BFC ; =0x0000213C
+ ldr r2, [r4, r1]
+ mov r1, #0x80
+ tst r2, r1
+ beq _02248ABA
+ add r1, #0x98
+ str r0, [r4, r1]
+ add r0, r4, #0
+ ldr r1, [r4, #0x64]
+ add r0, #0x94
+ str r1, [r0]
+ mov r7, #1
+ b _02248AEA
+_02248ABA:
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x1c
+ bne _02248AEA
+ add r1, r4, #0
+ add r1, #0x94
+ ldr r0, [r4, #0x64]
+ ldr r1, [r1]
+ cmp r0, r1
+ bne _02248AEA
+ ldr r1, _02248BFC ; =0x0000213C
+ ldr r2, [r4, r1]
+ mov r1, #0x80
+ tst r2, r1
+ beq _02248AEA
+ add r1, #0x98
+ str r0, [r4, r1]
+ add r0, r4, #0
+ ldr r1, [r4, #0x6c]
+ add r0, #0x94
+ str r1, [r0]
+ mov r7, #1
+_02248AEA:
+ cmp r7, #1
+ bne _02248B3A
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _02248C00 ; =0x00002DAC
+ ldr r0, [r1, r0]
+ ldr r1, _02248C04 ; =0x00000F88
+ tst r1, r0
+ beq _02248B08
+ mov r5, #0x16
+ b _02248B1A
+_02248B08:
+ mov r1, #0x10
+ tst r1, r0
+ beq _02248B12
+ mov r5, #0x19
+ b _02248B1A
+_02248B12:
+ mov r1, #0x40
+ tst r0, r1
+ beq _02248B1A
+ mov r5, #0x1f
+_02248B1A:
+ cmp r5, #0
+ beq _02248B3A
+ add r0, r4, #0
+ mov r1, #3
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ add r2, r5, #0
+ bl MOD11_022431DC
+ str r6, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ add r0, r7, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02248B3A:
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_0224AE78
+ add r5, r0, #0
+ cmp r5, #1
+ bne _02248B5C
+ ldr r2, _02248C08 ; =0x00000106
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ str r6, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02248B5C:
+ ldr r1, [r4, #0x6c]
+ add r0, r4, #0
+ bl MOD11_02249D90
+ cmp r0, #0x6b
+ bne _02248B9C
+ ldr r0, [r4, #0x6c]
+ cmp r0, #0xff
+ beq _02248B9C
+ add r1, r4, #0
+ add r1, #0x94
+ ldr r1, [r1]
+ cmp r0, r1
+ bne _02248B9C
+ mov r1, #0x1c
+ add r2, r0, #0
+ mul r2, r1
+ add r3, r4, r2
+ mov r2, #0xba
+ lsl r2, r2, #2
+ ldr r3, [r3, r2]
+ mov r2, #4
+ tst r2, r3
+ beq _02248B9C
+ add r1, #0xfc
+ str r0, [r4, r1]
+ add r0, r4, #0
+ ldr r1, [r4, #0x64]
+ add r0, #0x94
+ str r1, [r0]
+ mov r5, #1
+ b _02248BD6
+_02248B9C:
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02249D90
+ cmp r0, #0x6b
+ bne _02248BD6
+ add r1, r4, #0
+ add r1, #0x94
+ ldr r0, [r4, #0x64]
+ ldr r1, [r1]
+ cmp r0, r1
+ bne _02248BD6
+ mov r1, #0x1c
+ add r2, r0, #0
+ mul r2, r1
+ add r3, r4, r2
+ mov r2, #0xba
+ lsl r2, r2, #2
+ ldr r3, [r3, r2]
+ mov r2, #4
+ tst r2, r3
+ beq _02248BD6
+ add r1, #0xfc
+ str r0, [r4, r1]
+ add r0, r4, #0
+ ldr r1, [r4, #0x6c]
+ add r0, #0x94
+ str r1, [r0]
+ mov r5, #1
+_02248BD6:
+ cmp r5, #1
+ bne _02248BF6
+ add r0, r4, #0
+ mov r1, #5
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x6a
+ bl MOD11_022431DC
+ str r6, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02248BF6:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02248BFC: .word 0x0000213C
+_02248C00: .word 0x00002DAC
+_02248C04: .word 0x00000F88
+_02248C08: .word 0x00000106
+
+ thumb_func_start MOD11_02248C0C
+MOD11_02248C0C: ; 0x02248C0C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r0, [sp]
+ add r4, r1, #0
+ mov r0, #0
+ str r0, [sp, #0xc]
+ str r2, [sp, #4]
+ add r0, r4, #0
+ add r1, r2, #0
+ bl MOD11_02249D90
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ add r6, r0, #0
+ ldr r0, [sp, #4]
+ mov r3, #0xc0
+ add r5, r0, #0
+ ldr r0, _02248F50 ; =0x00002D8C
+ mul r5, r3
+ add r1, r4, r0
+ ldr r2, [r1, r5]
+ str r1, [sp, #0x14]
+ cmp r2, #0
+ bne _02248C46
+ b _02249274
+_02248C46:
+ ldr r1, [sp, #0x10]
+ cmp r1, #0x35
+ bhi _02248CE8
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02248C58: ; jump table
+ .short _02249246 - _02248C58 - 2 ; case 0
+ .short _02248CC4 - _02248C58 - 2 ; case 1
+ .short _02249246 - _02248C58 - 2 ; case 2
+ .short _02249246 - _02248C58 - 2 ; case 3
+ .short _02248D00 - _02248C58 - 2 ; case 4
+ .short _02248D14 - _02248C58 - 2 ; case 5
+ .short _02248D28 - _02248C58 - 2 ; case 6
+ .short _02248D3C - _02248C58 - 2 ; case 7
+ .short _02248D50 - _02248C58 - 2 ; case 8
+ .short _02248D64 - _02248C58 - 2 ; case 9
+ .short _02248DC6 - _02248C58 - 2 ; case 10
+ .short _02248DDA - _02248C58 - 2 ; case 11
+ .short _02248CDC - _02248C58 - 2 ; case 12
+ .short _02248E3A - _02248C58 - 2 ; case 13
+ .short _02248E76 - _02248C58 - 2 ; case 14
+ .short _02248EB2 - _02248C58 - 2 ; case 15
+ .short _02248EEE - _02248C58 - 2 ; case 16
+ .short _02248F2C - _02248C58 - 2 ; case 17
+ .short _02249246 - _02248C58 - 2 ; case 18
+ .short _02249246 - _02248C58 - 2 ; case 19
+ .short _02249246 - _02248C58 - 2 ; case 20
+ .short _02249246 - _02248C58 - 2 ; case 21
+ .short _02249246 - _02248C58 - 2 ; case 22
+ .short _02249246 - _02248C58 - 2 ; case 23
+ .short _02249246 - _02248C58 - 2 ; case 24
+ .short _02249246 - _02248C58 - 2 ; case 25
+ .short _02249246 - _02248C58 - 2 ; case 26
+ .short _02249246 - _02248C58 - 2 ; case 27
+ .short _02249246 - _02248C58 - 2 ; case 28
+ .short _02249246 - _02248C58 - 2 ; case 29
+ .short _02249246 - _02248C58 - 2 ; case 30
+ .short _02249246 - _02248C58 - 2 ; case 31
+ .short _02249246 - _02248C58 - 2 ; case 32
+ .short _02249246 - _02248C58 - 2 ; case 33
+ .short _02249246 - _02248C58 - 2 ; case 34
+ .short _02248F86 - _02248C58 - 2 ; case 35
+ .short _02248FCA - _02248C58 - 2 ; case 36
+ .short _02249012 - _02248C58 - 2 ; case 37
+ .short _02249058 - _02248C58 - 2 ; case 38
+ .short _0224909E - _02248C58 - 2 ; case 39
+ .short _022490E4 - _02248C58 - 2 ; case 40
+ .short _02249128 - _02248C58 - 2 ; case 41
+ .short _02249246 - _02248C58 - 2 ; case 42
+ .short _022491D8 - _02248C58 - 2 ; case 43
+ .short _0224920C - _02248C58 - 2 ; case 44
+ .short _02249246 - _02248C58 - 2 ; case 45
+ .short _02249246 - _02248C58 - 2 ; case 46
+ .short _02249246 - _02248C58 - 2 ; case 47
+ .short _02249194 - _02248C58 - 2 ; case 48
+ .short _02249246 - _02248C58 - 2 ; case 49
+ .short _02249246 - _02248C58 - 2 ; case 50
+ .short _02249246 - _02248C58 - 2 ; case 51
+ .short _02249246 - _02248C58 - 2 ; case 52
+ .short _022491BC - _02248C58 - 2 ; case 53
+_02248CC4:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r0, r0, #1
+ cmp r2, r0
+ bhi _02248CE8
+ ldr r0, _02248F54 ; =0x0000215C
+ mov r7, #0xc6
+ str r6, [r4, r0]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249246
+_02248CDC:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r1, [r1, r0]
+ lsr r0, r1, #1
+ cmp r2, r0
+ bls _02248CEA
+_02248CE8:
+ b _02249246
+_02248CEA:
+ add r0, r6, #0
+ mul r0, r1
+ mov r1, #0x64
+ bl MOD11_022476C0
+ ldr r1, _02248F54 ; =0x0000215C
+ mov r7, #0xc6
+ str r0, [r4, r1]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249246
+_02248D00:
+ add r1, r4, r5
+ add r0, #0x20
+ ldr r1, [r1, r0]
+ mov r0, #0x40
+ tst r0, r1
+ beq _02248DF2
+ mov r0, #1
+ mov r7, #0xc7
+ str r0, [sp, #0xc]
+ b _02249246
+_02248D14:
+ add r1, r4, r5
+ add r0, #0x20
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _02248DF2
+ mov r0, #1
+ mov r7, #0xc8
+ str r0, [sp, #0xc]
+ b _02249246
+_02248D28:
+ add r1, r4, r5
+ add r0, #0x20
+ ldr r1, [r1, r0]
+ ldr r0, _02248F58 ; =0x00000F88
+ tst r0, r1
+ beq _02248DF2
+ mov r0, #1
+ mov r7, #0xc9
+ str r0, [sp, #0xc]
+ b _02249246
+_02248D3C:
+ add r1, r4, r5
+ add r0, #0x20
+ ldr r1, [r1, r0]
+ mov r0, #0x10
+ tst r0, r1
+ beq _02248DF2
+ mov r0, #1
+ mov r7, #0xca
+ str r0, [sp, #0xc]
+ b _02249246
+_02248D50:
+ add r1, r4, r5
+ add r0, #0x20
+ ldr r1, [r1, r0]
+ mov r0, #0x20
+ tst r0, r1
+ beq _02248DF2
+ mov r0, #1
+ mov r7, #0xcb
+ str r0, [sp, #0xc]
+ b _02249246
+_02248D64:
+ mov r0, #0
+ str r0, [sp, #8]
+ add r0, r4, r5
+ ldr r3, _02248F5C ; =0x00002D4C
+ add r1, r0, #0
+_02248D6E:
+ ldrh r2, [r0, r3]
+ cmp r2, #0
+ beq _02248D7C
+ ldr r2, _02248F60 ; =0x00002D6C
+ ldrb r2, [r1, r2]
+ cmp r2, #0
+ beq _02248D8A
+_02248D7C:
+ ldr r2, [sp, #8]
+ add r0, r0, #2
+ add r2, r2, #1
+ add r1, r1, #1
+ str r2, [sp, #8]
+ cmp r2, #4
+ blt _02248D6E
+_02248D8A:
+ ldr r0, [sp, #8]
+ cmp r0, #4
+ beq _02248DF2
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldr r1, [sp, #8]
+ add r0, r4, r0
+ add r0, r0, r5
+ add r1, #0x1f
+ add r2, r6, #0
+ bl MOD11_02243DC8
+ ldr r0, [sp]
+ ldr r2, [sp, #4]
+ add r1, r4, #0
+ bl MOD11_02245190
+ ldr r0, [sp, #8]
+ add r1, r4, r5
+ lsl r0, r0, #1
+ add r1, r1, r0
+ ldr r0, _02248F5C ; =0x00002D4C
+ mov r7, #0xcc
+ ldrh r1, [r1, r0]
+ mov r0, #0x49
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249246
+_02248DC6:
+ add r1, r4, r5
+ add r0, #0x24
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _02248DF2
+ mov r0, #1
+ mov r7, #0xcd
+ str r0, [sp, #0xc]
+ b _02249246
+_02248DDA:
+ add r2, r0, #0
+ add r1, r4, r5
+ add r2, #0x20
+ ldr r2, [r1, r2]
+ lsl r3, r2, #0x18
+ lsr r3, r3, #0x18
+ bne _02248DF4
+ add r0, #0x24
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ bne _02248DF4
+_02248DF2:
+ b _02249246
+_02248DF4:
+ mov r0, #0x40
+ tst r0, r2
+ beq _02248DFC
+ mov r7, #0xc7
+_02248DFC:
+ mov r0, #7
+ tst r0, r2
+ beq _02248E04
+ mov r7, #0xc8
+_02248E04:
+ ldr r0, _02248F58 ; =0x00000F88
+ tst r0, r2
+ beq _02248E0C
+ mov r7, #0xc9
+_02248E0C:
+ mov r0, #0x10
+ tst r0, r2
+ beq _02248E14
+ mov r7, #0xca
+_02248E14:
+ mov r0, #0x20
+ tst r0, r2
+ beq _02248E1C
+ mov r7, #0xcb
+_02248E1C:
+ ldr r0, _02248F64 ; =0x00002DB0
+ add r1, r4, r5
+ ldr r1, [r1, r0]
+ mov r0, #7
+ and r0, r1
+ beq _02248E2A
+ mov r7, #0xcd
+_02248E2A:
+ cmp r3, #0
+ beq _02248E34
+ cmp r0, #0
+ beq _02248E34
+ mov r7, #0xce
+_02248E34:
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249246
+_02248E3A:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r1, r0, #1
+ cmp r2, r1
+ bhi _02248EFA
+ add r1, r6, #0
+ bl MOD11_022476C0
+ ldr r1, _02248F54 ; =0x0000215C
+ add r2, r4, r5
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _02248F68 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02248E6E
+ mov r7, #0xcf
+ b _02248E70
+_02248E6E:
+ mov r7, #0xc6
+_02248E70:
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249246
+_02248E76:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r1, r0, #1
+ cmp r2, r1
+ bhi _02248EFA
+ add r1, r6, #0
+ bl MOD11_022476C0
+ ldr r1, _02248F54 ; =0x0000215C
+ add r2, r4, r5
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _02248F68 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02248EAA
+ mov r7, #0xcf
+ b _02248EAC
+_02248EAA:
+ mov r7, #0xc6
+_02248EAC:
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249246
+_02248EB2:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r1, r0, #1
+ cmp r2, r1
+ bhi _02248EFA
+ add r1, r6, #0
+ bl MOD11_022476C0
+ ldr r1, _02248F54 ; =0x0000215C
+ add r2, r4, r5
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _02248F68 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02248EE6
+ mov r7, #0xcf
+ b _02248EE8
+_02248EE6:
+ mov r7, #0xc6
+_02248EE8:
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249246
+_02248EEE:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r1, r0, #1
+ cmp r2, r1
+ bls _02248EFC
+_02248EFA:
+ b _02249246
+_02248EFC:
+ add r1, r6, #0
+ bl MOD11_022476C0
+ ldr r1, _02248F54 ; =0x0000215C
+ add r2, r4, r5
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _02248F68 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02248F24
+ mov r7, #0xcf
+ b _02248F26
+_02248F24:
+ mov r7, #0xc6
+_02248F26:
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249246
+_02248F2C:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r1, r0, #1
+ cmp r2, r1
+ bhi _02249000
+ add r1, r6, #0
+ bl MOD11_022476C0
+ ldr r1, _02248F54 ; =0x0000215C
+ add r2, r4, r5
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #4
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _02248F68 ; =0x00002DA8
+ b _02248F6C
+ .align 2, 0
+_02248F50: .word 0x00002D8C
+_02248F54: .word 0x0000215C
+_02248F58: .word 0x00000F88
+_02248F5C: .word 0x00002D4C
+_02248F60: .word 0x00002D6C
+_02248F64: .word 0x00002DB0
+_02248F68: .word 0x00002DA8
+_02248F6C:
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02248F7E
+ mov r7, #0xcf
+ b _02248F80
+_02248F7E:
+ mov r7, #0xc6
+_02248F80:
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249246
+_02248F86:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _02248F98
+ lsr r0, r6, #0x1f
+ add r0, r6, r0
+ asr r6, r0, #1
+_02248F98:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _0224927C ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r6, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249000
+ ldr r0, _02249280 ; =0x00002D59
+ add r1, r4, r5
+ ldrsb r0, [r1, r0]
+ cmp r0, #0xc
+ bge _02249000
+ mov r1, #0x13
+ mov r0, #1
+ lsl r1, r1, #4
+ str r0, [sp, #0xc]
+ str r0, [r4, r1]
+ mov r7, #0xd0
+ b _02249246
+_02248FCA:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _02248FDC
+ lsr r0, r6, #0x1f
+ add r0, r6, r0
+ asr r6, r0, #1
+_02248FDC:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _0224927C ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r6, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249000
+ ldr r0, _02249284 ; =0x00002D5A
+ add r1, r4, r5
+ ldrsb r0, [r1, r0]
+ cmp r0, #0xc
+ blt _02249002
+_02249000:
+ b _02249246
+_02249002:
+ mov r0, #0x13
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #1
+ mov r7, #0xd0
+ str r0, [sp, #0xc]
+ b _02249246
+_02249012:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _02249024
+ lsr r0, r6, #0x1f
+ add r0, r6, r0
+ asr r6, r0, #1
+_02249024:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _0224927C ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r6, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _0224911E
+ ldr r0, _02249288 ; =0x00002D5B
+ add r1, r4, r5
+ ldrsb r0, [r1, r0]
+ cmp r0, #0xc
+ bge _0224911E
+ mov r0, #0x13
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #1
+ mov r7, #0xd0
+ str r0, [sp, #0xc]
+ b _02249246
+_02249058:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _0224906A
+ lsr r0, r6, #0x1f
+ add r0, r6, r0
+ asr r6, r0, #1
+_0224906A:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _0224927C ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r6, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _0224911E
+ ldr r0, _0224928C ; =0x00002D5C
+ add r1, r4, r5
+ ldrsb r0, [r1, r0]
+ cmp r0, #0xc
+ bge _0224911E
+ mov r0, #0x13
+ mov r1, #4
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #1
+ mov r7, #0xd0
+ str r0, [sp, #0xc]
+ b _02249246
+_0224909E:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _022490B0
+ lsr r0, r6, #0x1f
+ add r0, r6, r0
+ asr r6, r0, #1
+_022490B0:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _0224927C ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r6, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _0224911E
+ ldr r0, _02249290 ; =0x00002D5D
+ add r1, r4, r5
+ ldrsb r0, [r1, r0]
+ cmp r0, #0xc
+ bge _0224911E
+ mov r0, #0x13
+ mov r1, #5
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #1
+ mov r7, #0xd0
+ str r0, [sp, #0xc]
+ b _02249246
+_022490E4:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _022490F6
+ lsr r0, r6, #0x1f
+ add r0, r6, r0
+ asr r6, r0, #1
+_022490F6:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _0224927C ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r6, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _0224911E
+ ldr r0, _02249294 ; =0x00002DB0
+ add r1, r4, r5
+ ldr r1, [r1, r0]
+ mov r0, #1
+ lsl r0, r0, #0x14
+ tst r0, r1
+ beq _02249120
+_0224911E:
+ b _02249246
+_02249120:
+ mov r0, #1
+ mov r7, #0xd1
+ str r0, [sp, #0xc]
+ b _02249246
+_02249128:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _0224913A
+ lsr r0, r6, #0x1f
+ add r0, r6, r0
+ asr r6, r0, #1
+_0224913A:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _0224927C ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r6, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249246
+ ldr r0, _02249280 ; =0x00002D59
+ mov r2, #0
+ add r3, r4, r5
+_0224915A:
+ ldrsb r1, [r3, r0]
+ cmp r1, #0xc
+ blt _02249168
+ add r2, r2, #1
+ add r3, r3, #1
+ cmp r2, #5
+ blt _0224915A
+_02249168:
+ cmp r2, #5
+ beq _02249246
+ ldr r6, _02249280 ; =0x00002D59
+ add r5, r4, r5
+ mov r7, #5
+_02249172:
+ bl LCRandom
+ add r1, r7, #0
+ bl _s32_div_f
+ add r0, r5, r1
+ ldrsb r0, [r0, r6]
+ cmp r0, #0xc
+ beq _02249172
+ mov r0, #0x13
+ add r1, r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #1
+ mov r7, #0xd2
+ str r0, [sp, #0xc]
+ b _02249246
+_02249194:
+ ldr r6, _02249298 ; =0x00002D58
+ add r1, r4, r5
+ mov r0, #0
+ mov r5, #6
+ add r3, r6, #0
+_0224919E:
+ ldrsb r2, [r1, r3]
+ cmp r2, #6
+ bge _022491AA
+ mov r2, #1
+ strb r5, [r1, r6]
+ str r2, [sp, #0xc]
+_022491AA:
+ add r0, r0, #1
+ add r1, r1, #1
+ cmp r0, #8
+ blt _0224919E
+ ldr r0, [sp, #0xc]
+ cmp r0, #1
+ bne _02249246
+ mov r7, #0xd3
+ b _02249246
+_022491BC:
+ add r1, r4, r5
+ add r0, #0x24
+ ldr r1, [r1, r0]
+ mov r0, #0xf
+ lsl r0, r0, #0x10
+ tst r0, r1
+ beq _02249246
+ mov r0, #6
+ add r3, #0x70
+ str r0, [r4, r3]
+ mov r0, #1
+ mov r7, #0xd4
+ str r0, [sp, #0xc]
+ b _02249246
+_022491D8:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _022491EA
+ lsr r0, r6, #0x1f
+ add r0, r6, r0
+ asr r6, r0, #1
+_022491EA:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _0224927C ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r6, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249246
+ mov r0, #1
+ ldr r7, _0224929C ; =0x00000109
+ str r0, [sp, #0xc]
+ b _02249246
+_0224920C:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _0224921E
+ lsr r0, r6, #0x1f
+ add r0, r6, r0
+ asr r6, r0, #1
+_0224921E:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _0224927C ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r6, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249246
+ ldr r0, _022492A0 ; =0x00002DCC
+ add r2, r4, r0
+ mov r0, #1
+ ldr r1, [r2, r5]
+ lsl r0, r0, #0x1c
+ orr r0, r1
+ str r0, [r2, r5]
+_02249246:
+ ldr r0, [sp, #0xc]
+ cmp r0, #1
+ bne _02249274
+ mov r1, #0x46
+ ldr r0, [sp, #4]
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02249B4C
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r4, #0
+ mov r1, #1
+ add r2, r7, #0
+ bl MOD11_022431DC
+ ldr r0, [r4, #8]
+ str r0, [r4, #0xc]
+ mov r0, #0x15
+ str r0, [r4, #8]
+_02249274:
+ ldr r0, [sp, #0xc]
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224927C: .word 0x00002D90
+_02249280: .word 0x00002D59
+_02249284: .word 0x00002D5A
+_02249288: .word 0x00002D5B
+_0224928C: .word 0x00002D5C
+_02249290: .word 0x00002D5D
+_02249294: .word 0x00002DB0
+_02249298: .word 0x00002D58
+_0224929C: .word 0x00000109
+_022492A0: .word 0x00002DCC
+
+ thumb_func_start MOD11_022492A4
+MOD11_022492A4: ; 0x022492A4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r6, r2, #0
+ mov r7, #0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02249D90
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD11_02249DA4
+ mov r0, #0xc0
+ add r4, r6, #0
+ mul r4, r0
+ ldr r0, _02249394 ; =0x00002D8C
+ add r1, r5, r0
+ str r1, [sp, #8]
+ ldr r1, [r1, r4]
+ cmp r1, #0
+ beq _0224938E
+ ldr r2, [sp, #4]
+ cmp r2, #0x44
+ beq _022492E2
+ add r0, r2, #0
+ cmp r0, #0x6c
+ beq _022492FE
+ b _02249364
+_022492E2:
+ add r2, r5, r4
+ add r0, r0, #4
+ ldr r0, [r2, r0]
+ cmp r1, r0
+ bhs _02249364
+ mov r1, #0x10
+ bl MOD11_022476C0
+ ldr r1, _02249398 ; =0x0000215C
+ mov r7, #1
+ str r0, [r5, r1]
+ mov r0, #0xd5
+ str r0, [sp]
+ b _02249364
+_022492FE:
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1b
+ add r3, r7, #0
+ bl MOD11_02243420
+ cmp r0, #3
+ beq _0224931E
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1c
+ add r3, r7, #0
+ bl MOD11_02243420
+ cmp r0, #3
+ bne _0224933E
+_0224931E:
+ ldr r0, _0224939C ; =0x00002D90
+ add r1, r5, r4
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #8]
+ ldr r1, [r1, r4]
+ cmp r1, r0
+ bhs _02249364
+ mov r1, #0x10
+ bl MOD11_022476C0
+ ldr r1, _02249398 ; =0x0000215C
+ mov r7, #1
+ str r0, [r5, r1]
+ mov r0, #0xd5
+ str r0, [sp]
+ b _02249364
+_0224933E:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _02249364
+ ldr r0, _0224939C ; =0x00002D90
+ add r1, r5, r4
+ ldr r1, [r1, r0]
+ sub r0, r7, #1
+ mul r0, r1
+ mov r1, #8
+ bl MOD11_022476C0
+ ldr r1, _02249398 ; =0x0000215C
+ mov r7, #1
+ str r0, [r5, r1]
+ mov r0, #0xd7
+ str r0, [sp]
+_02249364:
+ cmp r7, #1
+ bne _0224938E
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r6, [r5, r0]
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_02249B4C
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ ldr r2, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r5, #8]
+ str r0, [r5, #0xc]
+ mov r0, #0x15
+ str r0, [r5, #8]
+_0224938E:
+ add r0, r7, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02249394: .word 0x00002D8C
+_02249398: .word 0x0000215C
+_0224939C: .word 0x00002D90
+
+ thumb_func_start MOD11_022493A0
+MOD11_022493A0: ; 0x022493A0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r0, [sp]
+ add r4, r1, #0
+ mov r0, #0
+ str r0, [sp, #0xc]
+ str r2, [sp, #4]
+ add r0, r4, #0
+ add r1, r2, #0
+ add r6, r3, #0
+ bl MOD11_02249D90
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0
+ bl MOD11_02249DA4
+ add r7, r0, #0
+ ldr r0, [sp, #4]
+ mov r3, #0xc0
+ add r5, r0, #0
+ ldr r0, _022496E4 ; =0x00002D8C
+ mul r5, r3
+ add r1, r4, r0
+ ldr r2, [r1, r5]
+ str r1, [sp, #0x14]
+ cmp r2, #0
+ bne _022493DC
+ b _02249A50
+_022493DC:
+ ldr r1, [sp, #0x10]
+ cmp r1, #0x35
+ bhi _02249480
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022493EE: ; jump table
+ .short _02249A3C - _022493EE - 2 ; case 0
+ .short _0224945A - _022493EE - 2 ; case 1
+ .short _02249A3C - _022493EE - 2 ; case 2
+ .short _02249A3C - _022493EE - 2 ; case 3
+ .short _0224949A - _022493EE - 2 ; case 4
+ .short _022494B0 - _022493EE - 2 ; case 5
+ .short _022494C6 - _022493EE - 2 ; case 6
+ .short _022494DC - _022493EE - 2 ; case 7
+ .short _022494F2 - _022493EE - 2 ; case 8
+ .short _02249508 - _022493EE - 2 ; case 9
+ .short _0224956C - _022493EE - 2 ; case 10
+ .short _02249582 - _022493EE - 2 ; case 11
+ .short _02249474 - _022493EE - 2 ; case 12
+ .short _022496BC - _022493EE - 2 ; case 13
+ .short _0224972C - _022493EE - 2 ; case 14
+ .short _0224976A - _022493EE - 2 ; case 15
+ .short _022497A8 - _022493EE - 2 ; case 16
+ .short _022497E6 - _022493EE - 2 ; case 17
+ .short _02249A3C - _022493EE - 2 ; case 18
+ .short _02249A3C - _022493EE - 2 ; case 19
+ .short _02249A3C - _022493EE - 2 ; case 20
+ .short _02249A3C - _022493EE - 2 ; case 21
+ .short _02249A3C - _022493EE - 2 ; case 22
+ .short _02249A3C - _022493EE - 2 ; case 23
+ .short _02249A3C - _022493EE - 2 ; case 24
+ .short _02249A3C - _022493EE - 2 ; case 25
+ .short _02249A3C - _022493EE - 2 ; case 26
+ .short _02249A3C - _022493EE - 2 ; case 27
+ .short _02249A3C - _022493EE - 2 ; case 28
+ .short _02249A3C - _022493EE - 2 ; case 29
+ .short _02249A3C - _022493EE - 2 ; case 30
+ .short _02249A3C - _022493EE - 2 ; case 31
+ .short _02249A3C - _022493EE - 2 ; case 32
+ .short _02249A3C - _022493EE - 2 ; case 33
+ .short _02249A3C - _022493EE - 2 ; case 34
+ .short _02249826 - _022493EE - 2 ; case 35
+ .short _0224986C - _022493EE - 2 ; case 36
+ .short _022498B4 - _022493EE - 2 ; case 37
+ .short _022498FC - _022493EE - 2 ; case 38
+ .short _02249946 - _022493EE - 2 ; case 39
+ .short _0224998E - _022493EE - 2 ; case 40
+ .short _022499D2 - _022493EE - 2 ; case 41
+ .short _02249A3C - _022493EE - 2 ; case 42
+ .short _0224964A - _022493EE - 2 ; case 43
+ .short _02249680 - _022493EE - 2 ; case 44
+ .short _02249A3C - _022493EE - 2 ; case 45
+ .short _02249A3C - _022493EE - 2 ; case 46
+ .short _02249A3C - _022493EE - 2 ; case 47
+ .short _02249602 - _022493EE - 2 ; case 48
+ .short _02249A3C - _022493EE - 2 ; case 49
+ .short _02249A3C - _022493EE - 2 ; case 50
+ .short _02249A3C - _022493EE - 2 ; case 51
+ .short _02249A3C - _022493EE - 2 ; case 52
+ .short _0224962C - _022493EE - 2 ; case 53
+_0224945A:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r0, r0, #1
+ cmp r2, r0
+ bhi _02249480
+ ldr r0, _022496E8 ; =0x0000215C
+ str r7, [r4, r0]
+ mov r0, #0xc6
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_02249474:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r1, [r1, r0]
+ lsr r0, r1, #1
+ cmp r2, r0
+ bls _02249482
+_02249480:
+ b _02249A3C
+_02249482:
+ add r0, r7, #0
+ mul r0, r1
+ mov r1, #0x64
+ bl MOD11_022476C0
+ ldr r1, _022496E8 ; =0x0000215C
+ str r0, [r4, r1]
+ mov r0, #0xc6
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_0224949A:
+ add r1, r4, r5
+ add r0, #0x20
+ ldr r1, [r1, r0]
+ mov r0, #0x40
+ tst r0, r1
+ beq _0224959C
+ mov r0, #0xc7
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_022494B0:
+ add r1, r4, r5
+ add r0, #0x20
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0224959C
+ mov r0, #0xc8
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_022494C6:
+ add r1, r4, r5
+ add r0, #0x20
+ ldr r1, [r1, r0]
+ ldr r0, _022496EC ; =0x00000F88
+ tst r0, r1
+ beq _0224959C
+ mov r0, #0xc9
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_022494DC:
+ add r1, r4, r5
+ add r0, #0x20
+ ldr r1, [r1, r0]
+ mov r0, #0x10
+ tst r0, r1
+ beq _0224959C
+ mov r0, #0xca
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_022494F2:
+ add r1, r4, r5
+ add r0, #0x20
+ ldr r1, [r1, r0]
+ mov r0, #0x20
+ tst r0, r1
+ beq _0224959C
+ mov r0, #0xcb
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_02249508:
+ mov r0, #0
+ str r0, [sp, #8]
+ add r0, r4, r5
+ ldr r3, _022496F0 ; =0x00002D4C
+ add r1, r0, #0
+_02249512:
+ ldrh r2, [r0, r3]
+ cmp r2, #0
+ beq _02249520
+ ldr r2, _022496F4 ; =0x00002D6C
+ ldrb r2, [r1, r2]
+ cmp r2, #0
+ beq _0224952E
+_02249520:
+ ldr r2, [sp, #8]
+ add r0, r0, #2
+ add r2, r2, #1
+ add r1, r1, #1
+ str r2, [sp, #8]
+ cmp r2, #4
+ blt _02249512
+_0224952E:
+ ldr r0, [sp, #8]
+ cmp r0, #4
+ beq _0224959C
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldr r1, [sp, #8]
+ add r0, r4, r0
+ add r0, r0, r5
+ add r1, #0x1f
+ add r2, r7, #0
+ bl MOD11_02243DC8
+ ldr r0, [sp]
+ ldr r2, [sp, #4]
+ add r1, r4, #0
+ bl MOD11_02245190
+ ldr r0, [sp, #8]
+ add r1, r4, r5
+ lsl r0, r0, #1
+ add r1, r1, r0
+ ldr r0, _022496F0 ; =0x00002D4C
+ ldrh r1, [r1, r0]
+ mov r0, #0x49
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #0xcc
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_0224956C:
+ add r1, r4, r5
+ add r0, #0x24
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0224959C
+ mov r0, #0xcd
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_02249582:
+ add r1, r0, #0
+ add r1, #0x20
+ add r1, r4, r1
+ ldr r2, [r1, r5]
+ lsl r3, r2, #0x18
+ lsr r3, r3, #0x18
+ bne _0224959E
+ add r3, r4, r5
+ add r0, #0x24
+ ldr r3, [r3, r0]
+ mov r0, #7
+ tst r0, r3
+ bne _0224959E
+_0224959C:
+ b _02249A3C
+_0224959E:
+ mov r0, #0x40
+ tst r0, r2
+ beq _022495A8
+ mov r0, #0xc7
+ str r0, [r6]
+_022495A8:
+ ldr r2, [r1, r5]
+ mov r0, #7
+ tst r0, r2
+ beq _022495B4
+ mov r0, #0xc8
+ str r0, [r6]
+_022495B4:
+ ldr r2, [r1, r5]
+ ldr r0, _022496EC ; =0x00000F88
+ tst r0, r2
+ beq _022495C0
+ mov r0, #0xc9
+ str r0, [r6]
+_022495C0:
+ ldr r2, [r1, r5]
+ mov r0, #0x10
+ tst r0, r2
+ beq _022495CC
+ mov r0, #0xca
+ str r0, [r6]
+_022495CC:
+ ldr r2, [r1, r5]
+ mov r0, #0x20
+ tst r0, r2
+ beq _022495D8
+ mov r0, #0xcb
+ str r0, [r6]
+_022495D8:
+ ldr r0, _022496F8 ; =0x00002DB0
+ mov r2, #7
+ add r0, r4, r0
+ ldr r3, [r0, r5]
+ tst r2, r3
+ beq _022495E8
+ mov r2, #0xcd
+ str r2, [r6]
+_022495E8:
+ ldr r1, [r1, r5]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ beq _022495FC
+ ldr r1, [r0, r5]
+ mov r0, #7
+ tst r0, r1
+ beq _022495FC
+ mov r0, #0xce
+ str r0, [r6]
+_022495FC:
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_02249602:
+ ldr r7, _022496FC ; =0x00002D58
+ add r1, r4, r5
+ mov r0, #0
+ mov r5, #6
+ add r3, r7, #0
+_0224960C:
+ ldrsb r2, [r1, r3]
+ cmp r2, #6
+ bge _02249618
+ mov r2, #1
+ strb r5, [r1, r7]
+ str r2, [sp, #0xc]
+_02249618:
+ add r0, r0, #1
+ add r1, r1, #1
+ cmp r0, #8
+ blt _0224960C
+ ldr r0, [sp, #0xc]
+ cmp r0, #1
+ bne _022496C8
+ mov r0, #0xd3
+ str r0, [r6]
+ b _02249A3C
+_0224962C:
+ add r1, r4, r5
+ add r0, #0x24
+ ldr r1, [r1, r0]
+ mov r0, #0xf
+ lsl r0, r0, #0x10
+ tst r0, r1
+ beq _022496C8
+ mov r0, #6
+ add r3, #0x70
+ str r0, [r4, r3]
+ mov r0, #0xd4
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_0224964A:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _0224965C
+ lsr r0, r7, #0x1f
+ add r0, r7, r0
+ asr r7, r0, #1
+_0224965C:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _02249700 ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r7, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _022496C8
+ ldr r0, _02249704 ; =0x00000109
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_02249680:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _02249692
+ lsr r0, r7, #0x1f
+ add r0, r7, r0
+ asr r7, r0, #1
+_02249692:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _02249700 ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r7, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _022496C8
+ ldr r0, _02249708 ; =0x00002DCC
+ add r2, r4, r0
+ mov r0, #1
+ ldr r1, [r2, r5]
+ lsl r0, r0, #0x1c
+ orr r0, r1
+ str r0, [r2, r5]
+ b _02249A3C
+_022496BC:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r1, r0, #1
+ cmp r2, r1
+ bls _022496CA
+_022496C8:
+ b _02249A3C
+_022496CA:
+ add r1, r7, #0
+ bl MOD11_022476C0
+ ldr r1, _022496E8 ; =0x0000215C
+ add r2, r4, r5
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _0224970C ; =0x00002DA8
+ b _02249710
+ nop
+_022496E4: .word 0x00002D8C
+_022496E8: .word 0x0000215C
+_022496EC: .word 0x00000F88
+_022496F0: .word 0x00002D4C
+_022496F4: .word 0x00002D6C
+_022496F8: .word 0x00002DB0
+_022496FC: .word 0x00002D58
+_02249700: .word 0x00002D90
+_02249704: .word 0x00000109
+_02249708: .word 0x00002DCC
+_0224970C: .word 0x00002DA8
+_02249710:
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02249722
+ mov r0, #0xcf
+ b _02249724
+_02249722:
+ mov r0, #0xc6
+_02249724:
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_0224972C:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r1, r0, #1
+ cmp r2, r1
+ bhi _022497F2
+ add r1, r7, #0
+ bl MOD11_022476C0
+ ldr r1, _02249A58 ; =0x0000215C
+ add r2, r4, r5
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _02249A5C ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02249760
+ mov r0, #0xcf
+ b _02249762
+_02249760:
+ mov r0, #0xc6
+_02249762:
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_0224976A:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r1, r0, #1
+ cmp r2, r1
+ bhi _022497F2
+ add r1, r7, #0
+ bl MOD11_022476C0
+ ldr r1, _02249A58 ; =0x0000215C
+ add r2, r4, r5
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _02249A5C ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _0224979E
+ mov r0, #0xcf
+ b _022497A0
+_0224979E:
+ mov r0, #0xc6
+_022497A0:
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_022497A8:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r1, r0, #1
+ cmp r2, r1
+ bhi _022497F2
+ add r1, r7, #0
+ bl MOD11_022476C0
+ ldr r1, _02249A58 ; =0x0000215C
+ add r2, r4, r5
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _02249A5C ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _022497DC
+ mov r0, #0xcf
+ b _022497DE
+_022497DC:
+ mov r0, #0xc6
+_022497DE:
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_022497E6:
+ add r1, r4, r5
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ lsr r1, r0, #1
+ cmp r2, r1
+ bls _022497F4
+_022497F2:
+ b _02249A3C
+_022497F4:
+ add r1, r7, #0
+ bl MOD11_022476C0
+ ldr r1, _02249A58 ; =0x0000215C
+ add r2, r4, r5
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #4
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _02249A5C ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _0224981C
+ mov r0, #0xcf
+ b _0224981E
+_0224981C:
+ mov r0, #0xc6
+_0224981E:
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_02249826:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _02249838
+ lsr r0, r7, #0x1f
+ add r0, r7, r0
+ asr r7, r0, #1
+_02249838:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _02249A60 ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r7, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249932
+ ldr r0, _02249A64 ; =0x00002D59
+ add r1, r4, r5
+ ldrsb r0, [r1, r0]
+ cmp r0, #0xc
+ bge _02249932
+ mov r1, #0x13
+ mov r0, #1
+ lsl r1, r1, #4
+ str r0, [sp, #0xc]
+ str r0, [r4, r1]
+ mov r0, #0xd0
+ str r0, [r6]
+ b _02249A3C
+_0224986C:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _0224987E
+ lsr r0, r7, #0x1f
+ add r0, r7, r0
+ asr r7, r0, #1
+_0224987E:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _02249A60 ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r7, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249932
+ ldr r0, _02249A68 ; =0x00002D5A
+ add r1, r4, r5
+ ldrsb r0, [r1, r0]
+ cmp r0, #0xc
+ bge _02249932
+ mov r0, #0x13
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #0xd0
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_022498B4:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _022498C6
+ lsr r0, r7, #0x1f
+ add r0, r7, r0
+ asr r7, r0, #1
+_022498C6:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _02249A60 ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r7, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249932
+ ldr r0, _02249A6C ; =0x00002D5B
+ add r1, r4, r5
+ ldrsb r0, [r1, r0]
+ cmp r0, #0xc
+ bge _02249932
+ mov r0, #0x13
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #0xd0
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_022498FC:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _0224990E
+ lsr r0, r7, #0x1f
+ add r0, r7, r0
+ asr r7, r0, #1
+_0224990E:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _02249A60 ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r7, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249932
+ ldr r0, _02249A70 ; =0x00002D5C
+ add r1, r4, r5
+ ldrsb r0, [r1, r0]
+ cmp r0, #0xc
+ blt _02249934
+_02249932:
+ b _02249A3C
+_02249934:
+ mov r0, #0x13
+ mov r1, #4
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #0xd0
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_02249946:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _02249958
+ lsr r0, r7, #0x1f
+ add r0, r7, r0
+ asr r7, r0, #1
+_02249958:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _02249A60 ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r7, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249A3C
+ ldr r0, _02249A74 ; =0x00002D5D
+ add r1, r4, r5
+ ldrsb r0, [r1, r0]
+ cmp r0, #0xc
+ bge _02249A3C
+ mov r0, #0x13
+ mov r1, #5
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #0xd0
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_0224998E:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _022499A0
+ lsr r0, r7, #0x1f
+ add r0, r7, r0
+ asr r7, r0, #1
+_022499A0:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _02249A60 ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r7, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249A3C
+ ldr r0, _02249A78 ; =0x00002DB0
+ add r1, r4, r5
+ ldr r1, [r1, r0]
+ mov r0, #1
+ lsl r0, r0, #0x14
+ tst r0, r1
+ bne _02249A3C
+ mov r0, #0xd1
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _02249A3C
+_022499D2:
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x52
+ bne _022499E4
+ lsr r0, r7, #0x1f
+ add r0, r7, r0
+ asr r7, r0, #1
+_022499E4:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _02249A60 ; =0x00002D90
+ add r1, r4, r1
+ ldr r0, [r1, r0]
+ add r1, r7, #0
+ bl _u32_div_f
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r5]
+ cmp r1, r0
+ bhi _02249A3C
+ ldr r0, _02249A64 ; =0x00002D59
+ mov r2, #0
+ add r3, r4, r5
+_02249A04:
+ ldrsb r1, [r3, r0]
+ cmp r1, #0xc
+ blt _02249A12
+ add r2, r2, #1
+ add r3, r3, #1
+ cmp r2, #5
+ blt _02249A04
+_02249A12:
+ cmp r2, #5
+ beq _02249A3C
+ ldr r7, _02249A64 ; =0x00002D59
+ add r5, r4, r5
+_02249A1A:
+ bl LCRandom
+ mov r1, #5
+ bl _s32_div_f
+ add r0, r5, r1
+ ldrsb r0, [r0, r7]
+ cmp r0, #0xc
+ beq _02249A1A
+ mov r0, #0x13
+ add r1, r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #0xd2
+ str r0, [r6]
+ mov r0, #1
+ str r0, [sp, #0xc]
+_02249A3C:
+ ldr r0, [sp, #0xc]
+ cmp r0, #1
+ bne _02249A50
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02249B4C
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+_02249A50:
+ ldr r0, [sp, #0xc]
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02249A58: .word 0x0000215C
+_02249A5C: .word 0x00002DA8
+_02249A60: .word 0x00002D90
+_02249A64: .word 0x00002D59
+_02249A68: .word 0x00002D5A
+_02249A6C: .word 0x00002D5B
+_02249A70: .word 0x00002D5C
+_02249A74: .word 0x00002D5D
+_02249A78: .word 0x00002DB0
+
+ thumb_func_start MOD11_02249A7C
+MOD11_02249A7C: ; 0x02249A7C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r4, r2, #0
+ mov r6, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02249D90
+ add r7, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_02249DA4
+ str r0, [sp, #8]
+ mov r0, #0xc0
+ mul r0, r4
+ str r0, [sp]
+ add r1, r5, r0
+ ldr r0, _02249B40 ; =0x00002D8C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02249B38
+ cmp r7, #0x63
+ beq _02249ABA
+ cmp r7, #0x64
+ beq _02249AD0
+ cmp r7, #0x73
+ beq _02249AE6
+ b _02249B0E
+_02249ABA:
+ add r0, r5, #0
+ add r0, #0x94
+ str r4, [r0]
+ add r0, r5, #0
+ mov r1, #5
+ add r0, #0x88
+ str r1, [r0]
+ mov r0, #0x2f
+ str r0, [sp, #4]
+ mov r6, #1
+ b _02249B0E
+_02249AD0:
+ add r0, r5, #0
+ add r0, #0x94
+ str r4, [r0]
+ add r0, r5, #0
+ mov r1, #5
+ add r0, #0x88
+ str r1, [r0]
+ mov r0, #0x19
+ str r0, [sp, #4]
+ mov r6, #1
+ b _02249B0E
+_02249AE6:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _02249B0E
+ ldr r0, [sp]
+ add r1, r5, r0
+ ldr r0, _02249B44 ; =0x00002D90
+ ldr r1, [r1, r0]
+ sub r0, r6, #1
+ mul r0, r1
+ ldr r1, [sp, #8]
+ bl MOD11_022476C0
+ ldr r1, _02249B48 ; =0x0000215C
+ mov r6, #1
+ str r0, [r5, r1]
+ mov r0, #0xd7
+ str r0, [sp, #4]
+_02249B0E:
+ cmp r6, #1
+ bne _02249B38
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r4, [r5, r0]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02249B4C
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ ldr r2, [sp, #4]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_022431DC
+ ldr r0, [r5, #8]
+ str r0, [r5, #0xc]
+ mov r0, #0x15
+ str r0, [r5, #8]
+_02249B38:
+ add r0, r6, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02249B40: .word 0x00002D8C
+_02249B44: .word 0x00002D90
+_02249B48: .word 0x0000215C
+
+ thumb_func_start MOD11_02249B4C
+MOD11_02249B4C: ; 0x02249B4C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x67
+ bne _02249B5E
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02249B5E:
+ mov r0, #0xc0
+ mul r0, r4
+ add r2, r5, r0
+ ldr r0, _02249B78 ; =0x00002DCC
+ ldr r1, [r2, r0]
+ lsl r1, r1, #0xa
+ lsr r1, r1, #0x1d
+ beq _02249B72
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02249B72:
+ sub r0, #0x14
+ ldrh r0, [r2, r0]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02249B78: .word 0x00002DCC
+
+ thumb_func_start MOD11_02249B7C
+MOD11_02249B7C: ; 0x02249B7C
+ lsl r1, r1, #4
+ add r1, r0, r1
+ ldr r0, _02249B90 ; =0x000021A8
+ ldr r0, [r1, r0]
+ cmp r0, #0x27
+ bne _02249B8C
+ mov r0, #1
+ bx lr
+_02249B8C:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_02249B90: .word 0x000021A8
+
+ thumb_func_start MOD11_02249B94
+MOD11_02249B94: ; 0x02249B94
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldr r1, [r5, #0x6c]
+ str r0, [sp]
+ add r6, r2, #0
+ mov r7, #0
+ cmp r1, #0xff
+ bne _02249BAC
+ add sp, #0xc
+ add r0, r7, #0
+ pop {r4, r5, r6, r7, pc}
+_02249BAC:
+ add r0, r5, #0
+ bl MOD11_0224AD9C
+ cmp r0, #1
+ bne _02249BBC
+ add sp, #0xc
+ add r0, r7, #0
+ pop {r4, r5, r6, r7, pc}
+_02249BBC:
+ ldr r1, [r5, #0x6c]
+ add r0, r5, #0
+ bl MOD11_02249D90
+ add r4, r0, #0
+ ldr r1, [r5, #0x6c]
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD11_02249DA4
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ ldr r1, [r5, #0x64]
+ bl MOD11_02230270
+ str r0, [sp, #8]
+ cmp r4, #0x2e
+ bgt _02249BF2
+ cmp r4, #0x2a
+ blt _02249BF0
+ bne _02249BE8
+ b _02249D24
+_02249BE8:
+ cmp r4, #0x2d
+ beq _02249C74
+ cmp r4, #0x2e
+ beq _02249CD2
+_02249BF0:
+ b _02249D6A
+_02249BF2:
+ cmp r4, #0x73
+ bne _02249C5C
+ ldr r0, [r5, #0x64]
+ mov r1, #0xc0
+ mul r1, r0
+ add r3, r5, r1
+ ldr r1, _02249D70 ; =0x00002D8C
+ ldr r2, [r3, r1]
+ cmp r2, #0
+ beq _02249C5C
+ add r1, #0x2c
+ ldrh r1, [r3, r1]
+ cmp r1, #0
+ bne _02249C5C
+ add r1, r5, r0
+ ldr r0, _02249D74 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ bl MaskOfFlagNo
+ ldr r1, [sp, #8]
+ lsl r1, r1, #3
+ add r2, r5, r1
+ mov r1, #0x71
+ lsl r1, r1, #2
+ ldr r2, [r2, r1]
+ lsl r2, r2, #3
+ lsr r2, r2, #0x1a
+ tst r0, r2
+ bne _02249C5C
+ ldr r0, _02249D78 ; =0x00003044
+ sub r1, #0xaa
+ ldr r0, [r5, r0]
+ cmp r0, r1
+ beq _02249C5C
+ ldr r2, [r5, #0x6c]
+ mov r1, #0x1c
+ mul r1, r2
+ add r3, r5, r1
+ mov r1, #0xb6
+ lsl r1, r1, #2
+ ldr r2, [r3, r1]
+ cmp r2, #0
+ bne _02249C50
+ add r1, #8
+ ldr r1, [r3, r1]
+ cmp r1, #0
+ beq _02249C5C
+_02249C50:
+ mov r1, #0x85
+ lsl r1, r1, #6
+ ldr r2, [r5, r1]
+ mov r1, #0x10
+ tst r1, r2
+ beq _02249C5E
+_02249C5C:
+ b _02249D6A
+_02249C5E:
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _02249D7C ; =0x000003E9
+ ldrb r1, [r1, r0]
+ mov r0, #1
+ tst r1, r0
+ beq _02249D6A
+ mov r1, #0xd8
+ str r1, [r6]
+ add r7, r0, #0
+ b _02249D6A
+_02249C74:
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02249D70 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _02249D6A
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _02249D6A
+ mov r0, #0x85
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #0x10
+ tst r0, r1
+ bne _02249D6A
+ ldr r1, [r5, #0x6c]
+ mov r0, #0x1c
+ mul r0, r1
+ add r1, r5, r0
+ mov r0, #0xb6
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02249D6A
+ ldr r0, [r5, #0x64]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, _02249D80 ; =0x00002D90
+ add r2, r5, r2
+ ldr r2, [r2, r0]
+ sub r1, #0xc1
+ add r0, r2, #0
+ mul r0, r1
+ ldr r1, [sp, #4]
+ bl MOD11_022476C0
+ ldr r1, _02249D84 ; =0x0000215C
+ mov r7, #1
+ str r0, [r5, r1]
+ lsr r0, r1, #5
+ str r0, [r6]
+ b _02249D6A
+_02249CD2:
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _02249D70 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _02249D6A
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _02249D6A
+ ldr r1, [r5, #0x6c]
+ mov r0, #0x1c
+ mul r0, r1
+ add r1, r5, r0
+ mov r0, #0x2e
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02249D6A
+ ldr r0, [r5, #0x64]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, _02249D80 ; =0x00002D90
+ add r2, r5, r2
+ ldr r2, [r2, r0]
+ sub r1, #0xc1
+ add r0, r2, #0
+ mul r0, r1
+ ldr r1, [sp, #4]
+ bl MOD11_022476C0
+ ldr r1, _02249D84 ; =0x0000215C
+ mov r7, #1
+ str r0, [r5, r1]
+ lsr r0, r1, #5
+ str r0, [r6]
+ b _02249D6A
+_02249D24:
+ ldr r1, [r5, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r2, _02249D70 ; =0x00002D8C
+ add r0, r5, r0
+ ldr r1, [r0, r2]
+ cmp r1, #0
+ beq _02249D6A
+ ldr r1, _02249D88 ; =0x0000216C
+ ldr r3, [r5, r1]
+ mov r1, #2
+ tst r1, r3
+ beq _02249D6A
+ add r1, r2, #4
+ ldr r0, [r0, r1]
+ ldr r1, [sp, #4]
+ bl MOD11_022476C0
+ ldr r1, _02249D84 ; =0x0000215C
+ mov r7, #1
+ str r0, [r5, r1]
+ mov r1, #0xc6
+ str r1, [r6]
+ ldr r0, [r5, #0x6c]
+ add r1, #0x52
+ str r0, [r5, r1]
+ ldr r0, [r5, #0x6c]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, _02249D8C ; =0x00002DB8
+ add r2, r5, r2
+ ldrh r0, [r2, r0]
+ add r1, #0x68
+ str r0, [r5, r1]
+_02249D6A:
+ add r0, r7, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02249D70: .word 0x00002D8C
+_02249D74: .word 0x0000219C
+_02249D78: .word 0x00003044
+_02249D7C: .word 0x000003E9
+_02249D80: .word 0x00002D90
+_02249D84: .word 0x0000215C
+_02249D88: .word 0x0000216C
+_02249D8C: .word 0x00002DB8
+
+ thumb_func_start MOD11_02249D90
+MOD11_02249D90: ; 0x02249D90
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD11_02249B4C
+ add r1, r0, #0
+ add r0, r4, #0
+ mov r2, #1
+ bl MOD11_0224C12C
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02249DA4
+MOD11_02249DA4: ; 0x02249DA4
+ push {r4, lr}
+ add r4, r0, #0
+ cmp r2, #0
+ beq _02249DB6
+ cmp r2, #1
+ beq _02249DD2
+ cmp r2, #2
+ beq _02249DBE
+ b _02249DDC
+_02249DB6:
+ bl MOD11_02249B4C
+ add r1, r0, #0
+ b _02249DDC
+_02249DBE:
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _02249DE8 ; =0x00002DCC
+ ldr r0, [r2, r0]
+ lsl r0, r0, #0xa
+ lsr r0, r0, #0x1d
+ beq _02249DD2
+ mov r0, #0
+ pop {r4, pc}
+_02249DD2:
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _02249DEC ; =0x00002DB8
+ ldrh r1, [r1, r0]
+_02249DDC:
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_0224C12C
+ pop {r4, pc}
+ nop
+_02249DE8: .word 0x00002DCC
+_02249DEC: .word 0x00002DB8
+
+ thumb_func_start MOD11_02249DF0
+MOD11_02249DF0: ; 0x02249DF0
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD11_02249B4C
+ add r1, r0, #0
+ add r0, r4, #0
+ mov r2, #0xb
+ bl MOD11_0224C12C
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02249E04
+MOD11_02249E04: ; 0x02249E04
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD11_02249B4C
+ add r1, r0, #0
+ add r0, r4, #0
+ mov r2, #0xc
+ bl MOD11_0224C12C
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02249E18
+MOD11_02249E18: ; 0x02249E18
+ mov r2, #0xc0
+ mul r2, r1
+ ldr r1, _02249E28 ; =0x00002DB8
+ add r2, r0, r2
+ ldrh r1, [r2, r1]
+ ldr r3, _02249E2C ; =MOD11_0224C12C
+ mov r2, #8
+ bx r3
+ .align 2, 0
+_02249E28: .word 0x00002DB8
+_02249E2C: .word MOD11_0224C12C
+
+ thumb_func_start MOD11_02249E30
+MOD11_02249E30: ; 0x02249E30
+ push {r3, lr}
+ mov r2, #0xc0
+ mul r2, r1
+ ldr r1, _02249E54 ; =0x00002DCC
+ add r3, r0, r2
+ ldr r2, [r3, r1]
+ lsl r2, r2, #0xa
+ lsr r2, r2, #0x1d
+ beq _02249E46
+ mov r0, #0
+ pop {r3, pc}
+_02249E46:
+ sub r1, #0x14
+ ldrh r1, [r3, r1]
+ mov r2, #9
+ bl MOD11_0224C12C
+ pop {r3, pc}
+ nop
+_02249E54: .word 0x00002DCC
+
+ thumb_func_start MOD11_02249E58
+MOD11_02249E58: ; 0x02249E58
+ push {r3, lr}
+ mov r2, #0xc0
+ mul r2, r1
+ ldr r1, _02249E7C ; =0x00002DCC
+ add r3, r0, r2
+ ldr r2, [r3, r1]
+ lsl r2, r2, #0xa
+ lsr r2, r2, #0x1d
+ beq _02249E6E
+ mov r0, #0
+ pop {r3, pc}
+_02249E6E:
+ sub r1, #0x14
+ ldrh r1, [r3, r1]
+ mov r2, #0xa
+ bl MOD11_0224C12C
+ pop {r3, pc}
+ nop
+_02249E7C: .word 0x00002DCC
+
+ thumb_func_start MOD11_02249E80
+MOD11_02249E80: ; 0x02249E80
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ add r4, r2, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r6, #0
+ bl MOD11_02249D90
+ cmp r0, #0x7a
+ bne _02249E9E
+ add sp, #8
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02249E9E:
+ mov r0, #0xc0
+ add r7, r4, #0
+ mul r7, r0
+ ldr r0, _02249F80 ; =0x00002DB0
+ add r2, r5, r7
+ ldr r1, [r2, r0]
+ ldr r3, _02249F84 ; =0x0400E000
+ tst r1, r3
+ bne _02249EBA
+ add r0, #0x10
+ ldr r1, [r2, r0]
+ lsr r0, r3, #0x10
+ tst r0, r1
+ beq _02249EBC
+_02249EBA:
+ mov r6, #1
+_02249EBC:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x17
+ beq _02249EDC
+ mov r0, #0x17
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #3
+ add r3, r4, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _02249F10
+_02249EDC:
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #8
+ beq _02249EFC
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #8
+ bne _02249F12
+_02249EFC:
+ mov r0, #0x2a
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #3
+ add r3, r4, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _02249F12
+_02249F10:
+ mov r6, #1
+_02249F12:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x1a
+ beq _02249F4A
+ ldr r0, _02249F88 ; =0x00002DCC
+ add r1, r5, r7
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x1d
+ bne _02249F4A
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #2
+ beq _02249F4A
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #2
+ bne _02249F64
+_02249F4A:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02249D90
+ cmp r0, #0x69
+ beq _02249F64
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ mov r0, #7
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _02249F7A
+_02249F64:
+ mov r0, #0x47
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #3
+ add r3, r4, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _02249F7A
+ mov r6, #1
+_02249F7A:
+ add r0, r6, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02249F80: .word 0x00002DB0
+_02249F84: .word 0x0400E000
+_02249F88: .word 0x00002DCC
+
+ thumb_func_start MOD11_02249F8C
+MOD11_02249F8C: ; 0x02249F8C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ str r0, [sp]
+ mov r6, #0
+ str r2, [sp, #4]
+ add r0, r4, #0
+ add r1, r2, #0
+ add r5, r6, #0
+ bl MOD11_02249E18
+ add r7, r0, #0
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ mov r2, #1
+ bl MOD11_02249DA4
+ str r0, [sp, #0x10]
+ ldr r1, [r4, #0x6c]
+ add r0, r4, #0
+ bl MOD11_0224AD9C
+ cmp r0, #1
+ bne _02249FC2
+ add sp, #0x14
+ add r0, r6, #0
+ pop {r4, r5, r6, r7, pc}
+_02249FC2:
+ cmp r7, #0x17
+ bls _02249FC8
+ b _0224A444
+_02249FC8:
+ add r0, r7, r7
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02249FD4: ; jump table
+ .short _0224A444 - _02249FD4 - 2 ; case 0
+ .short _0224A04E - _02249FD4 - 2 ; case 1
+ .short _0224A066 - _02249FD4 - 2 ; case 2
+ .short _0224A07E - _02249FD4 - 2 ; case 3
+ .short _0224A096 - _02249FD4 - 2 ; case 4
+ .short _0224A0AE - _02249FD4 - 2 ; case 5
+ .short _0224A0C6 - _02249FD4 - 2 ; case 6
+ .short _0224A004 - _02249FD4 - 2 ; case 7
+ .short _0224A13C - _02249FD4 - 2 ; case 8
+ .short _0224A154 - _02249FD4 - 2 ; case 9
+ .short _0224A024 - _02249FD4 - 2 ; case 10
+ .short _0224A1B6 - _02249FD4 - 2 ; case 11
+ .short _0224A1FC - _02249FD4 - 2 ; case 12
+ .short _0224A242 - _02249FD4 - 2 ; case 13
+ .short _0224A288 - _02249FD4 - 2 ; case 14
+ .short _0224A2CE - _02249FD4 - 2 ; case 15
+ .short _0224A314 - _02249FD4 - 2 ; case 16
+ .short _0224A360 - _02249FD4 - 2 ; case 17
+ .short _0224A37E - _02249FD4 - 2 ; case 18
+ .short _0224A39C - _02249FD4 - 2 ; case 19
+ .short _0224A3BA - _02249FD4 - 2 ; case 20
+ .short _0224A424 - _02249FD4 - 2 ; case 21
+ .short _0224A3D8 - _02249FD4 - 2 ; case 22
+ .short _0224A43E - _02249FD4 - 2 ; case 23
+_0224A004:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _0224A320 ; =0x00002D8C
+ ldr r1, [r2, r0]
+ add r0, r0, #4
+ ldr r0, [r2, r0]
+ cmp r1, r0
+ beq _0224A020
+ ldr r1, _0224A324 ; =0x0000215C
+ ldr r0, [sp, #0x10]
+ mov r5, #0xc6
+ str r0, [r4, r1]
+_0224A020:
+ mov r6, #1
+ b _0224A45A
+_0224A024:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A328 ; =0x00002D90
+ ldr r2, [r1, r0]
+ sub r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, r2
+ beq _0224A04A
+ ldr r1, [sp, #0x10]
+ add r0, r1, #0
+ mul r0, r2
+ mov r1, #0x64
+ bl MOD11_022476C0
+ ldr r1, _0224A324 ; =0x0000215C
+ mov r5, #0xc6
+ str r0, [r4, r1]
+_0224A04A:
+ mov r6, #1
+ b _0224A45A
+_0224A04E:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A32C ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #0x40
+ tst r0, r1
+ beq _0224A062
+ mov r5, #0xc7
+_0224A062:
+ mov r6, #1
+ b _0224A45A
+_0224A066:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A32C ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0224A07A
+ mov r5, #0xc8
+_0224A07A:
+ mov r6, #1
+ b _0224A45A
+_0224A07E:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A32C ; =0x00002DAC
+ ldr r1, [r1, r0]
+ ldr r0, _0224A330 ; =0x00000F88
+ tst r0, r1
+ beq _0224A092
+ mov r5, #0xc9
+_0224A092:
+ mov r6, #1
+ b _0224A45A
+_0224A096:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A32C ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #0x10
+ tst r0, r1
+ beq _0224A0AA
+ mov r5, #0xca
+_0224A0AA:
+ mov r6, #1
+ b _0224A45A
+_0224A0AE:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A32C ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #0x20
+ tst r0, r1
+ beq _0224A0C2
+ mov r5, #0xcb
+_0224A0C2:
+ mov r6, #1
+ b _0224A45A
+_0224A0C6:
+ str r5, [sp, #0xc]
+_0224A0C8:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r7, r1, #0
+ mul r7, r0
+ add r1, r4, r7
+ ldr r0, _0224A334 ; =0x00002D4C
+ add r2, r6, r1
+ ldrh r0, [r2, r0]
+ cmp r0, #0
+ beq _0224A0FA
+ add r2, r5, r1
+ ldr r1, _0224A338 ; =0x00002D70
+ ldrb r1, [r2, r1]
+ bl WazaGetMaxPp
+ add r1, r4, r7
+ add r2, r5, r1
+ ldr r1, _0224A33C ; =0x00002D6C
+ ldrb r1, [r2, r1]
+ sub r1, r0, r1
+ ldr r0, [sp, #0xc]
+ cmp r1, r0
+ ble _0224A0FA
+ str r1, [sp, #0xc]
+ str r5, [sp, #8]
+_0224A0FA:
+ add r5, r5, #1
+ add r6, r6, #2
+ cmp r5, #4
+ blt _0224A0C8
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldr r1, [sp, #8]
+ add r0, r4, r0
+ ldr r2, [sp, #0x10]
+ add r0, r0, r7
+ add r1, #0x1f
+ bl MOD11_02243DC8
+ ldr r0, [sp]
+ ldr r2, [r4, #0x64]
+ add r1, r4, #0
+ bl MOD11_02245190
+ ldr r0, [r4, #0x64]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, [sp, #8]
+ add r2, r4, r2
+ lsl r0, r0, #1
+ add r2, r2, r0
+ ldr r0, _0224A334 ; =0x00002D4C
+ add r1, #0x64
+ ldrh r0, [r2, r0]
+ mov r5, #0xcc
+ mov r6, #1
+ str r0, [r4, r1]
+ b _0224A45A
+_0224A13C:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A340 ; =0x00002DB0
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0224A150
+ mov r5, #0xcd
+_0224A150:
+ mov r6, #1
+ b _0224A45A
+_0224A154:
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ add r1, r2, #0
+ mul r1, r0
+ ldr r6, _0224A32C ; =0x00002DAC
+ add r0, r4, r1
+ ldr r2, [r0, r6]
+ lsl r3, r2, #0x18
+ lsr r3, r3, #0x18
+ bne _0224A172
+ add r6, r6, #4
+ ldr r6, [r0, r6]
+ mov r0, #7
+ tst r0, r6
+ beq _0224A1B2
+_0224A172:
+ mov r0, #0x40
+ tst r0, r2
+ beq _0224A17A
+ mov r5, #0xc7
+_0224A17A:
+ mov r0, #7
+ tst r0, r2
+ beq _0224A182
+ mov r5, #0xc8
+_0224A182:
+ ldr r0, _0224A330 ; =0x00000F88
+ tst r0, r2
+ beq _0224A18A
+ mov r5, #0xc9
+_0224A18A:
+ mov r0, #0x10
+ tst r0, r2
+ beq _0224A192
+ mov r5, #0xca
+_0224A192:
+ mov r0, #0x20
+ tst r0, r2
+ beq _0224A19A
+ mov r5, #0xcb
+_0224A19A:
+ ldr r0, _0224A340 ; =0x00002DB0
+ add r1, r4, r1
+ ldr r1, [r1, r0]
+ mov r0, #7
+ and r0, r1
+ beq _0224A1A8
+ mov r5, #0xcd
+_0224A1A8:
+ cmp r3, #0
+ beq _0224A1B2
+ cmp r0, #0
+ beq _0224A1B2
+ mov r5, #0xce
+_0224A1B2:
+ mov r6, #1
+ b _0224A45A
+_0224A1B6:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _0224A328 ; =0x00002D90
+ add r2, r4, r0
+ ldr r0, [r2, r1]
+ sub r1, r1, #4
+ ldr r1, [r2, r1]
+ cmp r1, r0
+ beq _0224A1F8
+ ldr r1, [sp, #0x10]
+ bl MOD11_022476C0
+ ldr r1, _0224A324 ; =0x0000215C
+ str r0, [r4, r1]
+ mov r0, #0x13
+ add r1, r6, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _0224A344 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ sub r1, r6, #1
+ cmp r0, r1
+ bne _0224A1F6
+ mov r5, #0xcf
+ b _0224A1F8
+_0224A1F6:
+ mov r5, #0xc6
+_0224A1F8:
+ mov r6, #1
+ b _0224A45A
+_0224A1FC:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _0224A328 ; =0x00002D90
+ add r2, r4, r0
+ ldr r0, [r2, r1]
+ sub r1, r1, #4
+ ldr r1, [r2, r1]
+ cmp r1, r0
+ beq _0224A23E
+ ldr r1, [sp, #0x10]
+ bl MOD11_022476C0
+ ldr r1, _0224A324 ; =0x0000215C
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _0224A344 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ sub r1, r6, #1
+ cmp r0, r1
+ bne _0224A23C
+ mov r5, #0xcf
+ b _0224A23E
+_0224A23C:
+ mov r5, #0xc6
+_0224A23E:
+ mov r6, #1
+ b _0224A45A
+_0224A242:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _0224A328 ; =0x00002D90
+ add r2, r4, r0
+ ldr r0, [r2, r1]
+ sub r1, r1, #4
+ ldr r1, [r2, r1]
+ cmp r1, r0
+ beq _0224A284
+ ldr r1, [sp, #0x10]
+ bl MOD11_022476C0
+ ldr r1, _0224A324 ; =0x0000215C
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _0224A344 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ sub r1, r6, #1
+ cmp r0, r1
+ bne _0224A282
+ mov r5, #0xcf
+ b _0224A284
+_0224A282:
+ mov r5, #0xc6
+_0224A284:
+ mov r6, #1
+ b _0224A45A
+_0224A288:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _0224A328 ; =0x00002D90
+ add r2, r4, r0
+ ldr r0, [r2, r1]
+ sub r1, r1, #4
+ ldr r1, [r2, r1]
+ cmp r1, r0
+ beq _0224A2CA
+ ldr r1, [sp, #0x10]
+ bl MOD11_022476C0
+ ldr r1, _0224A324 ; =0x0000215C
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _0224A344 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ sub r1, r6, #1
+ cmp r0, r1
+ bne _0224A2C8
+ mov r5, #0xcf
+ b _0224A2CA
+_0224A2C8:
+ mov r5, #0xc6
+_0224A2CA:
+ mov r6, #1
+ b _0224A45A
+_0224A2CE:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _0224A328 ; =0x00002D90
+ add r2, r4, r0
+ ldr r0, [r2, r1]
+ sub r1, r1, #4
+ ldr r1, [r2, r1]
+ cmp r1, r0
+ beq _0224A310
+ ldr r1, [sp, #0x10]
+ bl MOD11_022476C0
+ ldr r1, _0224A324 ; =0x0000215C
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #4
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _0224A344 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ sub r1, r6, #1
+ cmp r0, r1
+ bne _0224A30E
+ mov r5, #0xcf
+ b _0224A310
+_0224A30E:
+ mov r5, #0xc6
+_0224A310:
+ mov r6, #1
+ b _0224A45A
+_0224A314:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, _0224A348 ; =0x00002D59
+ b _0224A34C
+ .align 2, 0
+_0224A320: .word 0x00002D8C
+_0224A324: .word 0x0000215C
+_0224A328: .word 0x00002D90
+_0224A32C: .word 0x00002DAC
+_0224A330: .word 0x00000F88
+_0224A334: .word 0x00002D4C
+_0224A338: .word 0x00002D70
+_0224A33C: .word 0x00002D6C
+_0224A340: .word 0x00002DB0
+_0224A344: .word 0x00002DA8
+_0224A348: .word 0x00002D59
+_0224A34C:
+ add r2, r4, r2
+ ldrsb r1, [r2, r1]
+ cmp r1, #0xc
+ bge _0224A35C
+ mov r1, #1
+ add r0, #0x70
+ str r1, [r4, r0]
+ mov r5, #0xd0
+_0224A35C:
+ mov r6, #1
+ b _0224A45A
+_0224A360:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, _0224A4C0 ; =0x00002D5A
+ add r2, r4, r2
+ ldrsb r1, [r2, r1]
+ cmp r1, #0xc
+ bge _0224A37A
+ mov r1, #2
+ add r0, #0x70
+ str r1, [r4, r0]
+ mov r5, #0xd0
+_0224A37A:
+ mov r6, #1
+ b _0224A45A
+_0224A37E:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, _0224A4C4 ; =0x00002D5B
+ add r2, r4, r2
+ ldrsb r1, [r2, r1]
+ cmp r1, #0xc
+ bge _0224A398
+ mov r1, #3
+ add r0, #0x70
+ str r1, [r4, r0]
+ mov r5, #0xd0
+_0224A398:
+ mov r6, #1
+ b _0224A45A
+_0224A39C:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, _0224A4C8 ; =0x00002D5C
+ add r2, r4, r2
+ ldrsb r1, [r2, r1]
+ cmp r1, #0xc
+ bge _0224A3B6
+ mov r1, #4
+ add r0, #0x70
+ str r1, [r4, r0]
+ mov r5, #0xd0
+_0224A3B6:
+ mov r6, #1
+ b _0224A45A
+_0224A3BA:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, _0224A4CC ; =0x00002D5D
+ add r2, r4, r2
+ ldrsb r1, [r2, r1]
+ cmp r1, #0xc
+ bge _0224A3D4
+ mov r1, #5
+ add r0, #0x70
+ str r1, [r4, r0]
+ mov r5, #0xd0
+_0224A3D4:
+ mov r6, #1
+ b _0224A45A
+_0224A3D8:
+ ldr r2, [r4, #0x64]
+ mov r1, #0xc0
+ mul r1, r2
+ add r3, r4, r1
+ ldr r1, _0224A4D0 ; =0x00002D59
+ add r0, r6, #0
+_0224A3E4:
+ ldrsb r2, [r3, r1]
+ cmp r2, #0xc
+ blt _0224A3F2
+ add r0, r0, #1
+ add r3, r3, #1
+ cmp r0, #5
+ blt _0224A3E4
+_0224A3F2:
+ cmp r0, #5
+ beq _0224A420
+ ldr r5, _0224A4D0 ; =0x00002D59
+ mov r7, #5
+ mov r6, #0xc0
+_0224A3FC:
+ bl LCRandom
+ add r1, r7, #0
+ bl _s32_div_f
+ ldr r0, [r4, #0x64]
+ add r2, r0, #0
+ mul r2, r6
+ add r0, r4, r2
+ add r0, r1, r0
+ ldrsb r0, [r0, r5]
+ cmp r0, #0xc
+ beq _0224A3FC
+ mov r0, #0x13
+ add r1, r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r5, #0xd2
+_0224A420:
+ mov r6, #1
+ b _0224A45A
+_0224A424:
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A4D4 ; =0x00002DB0
+ ldr r1, [r1, r0]
+ mov r0, #1
+ lsl r0, r0, #0x14
+ tst r0, r1
+ bne _0224A43A
+ mov r5, #0xd1
+_0224A43A:
+ mov r6, #1
+ b _0224A45A
+_0224A43E:
+ ldr r5, _0224A4D8 ; =0x00000109
+ mov r6, #1
+ b _0224A45A
+_0224A444:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, _0224A4DC ; =0x00002DB8
+ add r1, r4, r1
+ ldrh r0, [r1, r0]
+ bl FUN_0206EAEC
+ cmp r0, #1
+ bne _0224A45A
+ mov r6, #1
+_0224A45A:
+ cmp r6, #1
+ bne _0224A4B8
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x67
+ beq _0224A482
+ ldr r1, [r4, #0x64]
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ mov r1, #0xb7
+ add r2, r4, r2
+ lsl r1, r1, #6
+ ldr r2, [r2, r1]
+ mov r1, #1
+ lsl r1, r1, #0x1a
+ tst r1, r2
+ beq _0224A48C
+_0224A482:
+ mov r0, #0x4e
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ b _0224A490
+_0224A48C:
+ add r0, #0x78
+ str r5, [r4, r0]
+_0224A490:
+ ldr r0, [sp, #4]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, _0224A4DC ; =0x00002DB8
+ add r2, r4, r2
+ ldrh r0, [r2, r0]
+ add r1, #0x68
+ str r0, [r4, r1]
+ ldr r2, [r4, #0x64]
+ mov r0, #0xba
+ lsl r0, r0, #2
+ mov r1, #0x1c
+ add r3, r2, #0
+ mul r3, r1
+ add r0, r4, r0
+ ldr r2, [r0, r3]
+ mov r1, #2
+ orr r1, r2
+ str r1, [r0, r3]
+_0224A4B8:
+ add r0, r6, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0224A4C0: .word 0x00002D5A
+_0224A4C4: .word 0x00002D5B
+_0224A4C8: .word 0x00002D5C
+_0224A4CC: .word 0x00002D5D
+_0224A4D0: .word 0x00002D59
+_0224A4D4: .word 0x00002DB0
+_0224A4D8: .word 0x00000109
+_0224A4DC: .word 0x00002DB8
+
+ thumb_func_start MOD11_0224A4E0
+MOD11_0224A4E0: ; 0x0224A4E0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ str r0, [sp]
+ str r2, [sp, #4]
+ add r0, r4, #0
+ add r1, r2, #0
+ bl MOD11_02249E30
+ add r6, r0, #0
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD11_02249DA4
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ bl MOD11_02249E58
+ ldr r1, _0224A84C ; =0x00002154
+ add r2, r4, #0
+ str r0, [r4, r1]
+ ldr r0, _0224A850 ; =0x00003118
+ mov r5, #0
+ str r5, [r4, r0]
+ add r2, #0x88
+ str r5, [r2]
+ ldr r1, [r4, r1]
+ cmp r1, #0
+ bne _0224A524
+ add sp, #0x14
+ add r0, r5, #0
+ pop {r4, r5, r6, r7, pc}
+_0224A524:
+ cmp r6, #0x1e
+ bls _0224A52A
+ b _0224AAAC
+_0224A52A:
+ add r1, r6, r6
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0224A536: ; jump table
+ .short _0224AAAC - _0224A536 - 2 ; case 0
+ .short _0224A5A2 - _0224A536 - 2 ; case 1
+ .short _0224A5BA - _0224A536 - 2 ; case 2
+ .short _0224A5D2 - _0224A536 - 2 ; case 3
+ .short _0224A5EA - _0224A536 - 2 ; case 4
+ .short _0224A602 - _0224A536 - 2 ; case 5
+ .short _0224A61A - _0224A536 - 2 ; case 6
+ .short _0224A574 - _0224A536 - 2 ; case 7
+ .short _0224A69C - _0224A536 - 2 ; case 8
+ .short _0224A6B4 - _0224A536 - 2 ; case 9
+ .short _0224A580 - _0224A536 - 2 ; case 10
+ .short _0224A77A - _0224A536 - 2 ; case 11
+ .short _0224A7BC - _0224A536 - 2 ; case 12
+ .short _0224A7FE - _0224A536 - 2 ; case 13
+ .short _0224A840 - _0224A536 - 2 ; case 14
+ .short _0224A8B0 - _0224A536 - 2 ; case 15
+ .short _0224A9AC - _0224A536 - 2 ; case 16
+ .short _0224A9CA - _0224A536 - 2 ; case 17
+ .short _0224A9E8 - _0224A536 - 2 ; case 18
+ .short _0224AA06 - _0224A536 - 2 ; case 19
+ .short _0224AA24 - _0224A536 - 2 ; case 20
+ .short _0224AA8E - _0224A536 - 2 ; case 21
+ .short _0224AA42 - _0224A536 - 2 ; case 22
+ .short _0224AAA8 - _0224A536 - 2 ; case 23
+ .short _0224A8F2 - _0224A536 - 2 ; case 24
+ .short _0224A91A - _0224A536 - 2 ; case 25
+ .short _0224A93E - _0224A536 - 2 ; case 26
+ .short _0224A954 - _0224A536 - 2 ; case 27
+ .short _0224A96A - _0224A536 - 2 ; case 28
+ .short _0224A980 - _0224A536 - 2 ; case 29
+ .short _0224A996 - _0224A536 - 2 ; case 30
+_0224A574:
+ ldr r1, [sp, #0x10]
+ sub r2, r0, #4
+ str r1, [r4, r2]
+ mov r1, #0xc6
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A580:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A854 ; =0x00002D90
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0x10]
+ mul r0, r1
+ mov r1, #0x64
+ bl MOD11_022476C0
+ ldr r1, _0224A858 ; =0x00003114
+ mov r2, #0xc6
+ str r0, [r4, r1]
+ add r0, r1, #4
+ str r2, [r4, r0]
+ b _0224AAAC
+_0224A5A2:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _0224A85C ; =0x00002DAC
+ ldr r2, [r2, r1]
+ mov r1, #0x40
+ tst r1, r2
+ beq _0224A65C
+ mov r1, #0xc7
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A5BA:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _0224A85C ; =0x00002DAC
+ ldr r2, [r2, r1]
+ mov r1, #7
+ tst r1, r2
+ beq _0224A65C
+ mov r1, #0xc8
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A5D2:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _0224A85C ; =0x00002DAC
+ ldr r2, [r2, r1]
+ ldr r1, _0224A860 ; =0x00000F88
+ tst r1, r2
+ beq _0224A65C
+ mov r1, #0xc9
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A5EA:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _0224A85C ; =0x00002DAC
+ ldr r2, [r2, r1]
+ mov r1, #0x10
+ tst r1, r2
+ beq _0224A65C
+ mov r1, #0xca
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A602:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _0224A85C ; =0x00002DAC
+ ldr r2, [r2, r1]
+ mov r1, #0x20
+ tst r1, r2
+ beq _0224A65C
+ mov r1, #0xcb
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A61A:
+ add r6, r5, #0
+ add r7, r5, #0
+_0224A61E:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ str r0, [sp, #8]
+ ldr r0, _0224A864 ; =0x00002D4C
+ add r2, r7, r1
+ ldrh r0, [r2, r0]
+ cmp r0, #0
+ beq _0224A650
+ add r2, r6, r1
+ ldr r1, _0224A868 ; =0x00002D70
+ ldrb r1, [r2, r1]
+ bl WazaGetMaxPp
+ ldr r1, [sp, #8]
+ add r1, r4, r1
+ add r2, r6, r1
+ ldr r1, _0224A86C ; =0x00002D6C
+ ldrb r1, [r2, r1]
+ sub r0, r0, r1
+ cmp r0, r5
+ ble _0224A650
+ add r5, r0, #0
+ str r6, [sp, #0xc]
+_0224A650:
+ add r6, r6, #1
+ add r7, r7, #2
+ cmp r6, #4
+ blt _0224A61E
+ cmp r5, #0
+ bne _0224A65E
+_0224A65C:
+ b _0224AAAC
+_0224A65E:
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ add r1, r4, r0
+ ldr r0, [sp, #8]
+ ldr r2, [sp, #0x10]
+ add r0, r1, r0
+ ldr r1, [sp, #0xc]
+ add r1, #0x1f
+ bl MOD11_02243DC8
+ ldr r0, [sp]
+ ldr r2, [r4, #0x6c]
+ add r1, r4, #0
+ bl MOD11_02245190
+ ldr r0, [r4, #0x6c]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, [sp, #0xc]
+ add r2, r4, r2
+ lsl r0, r0, #1
+ add r2, r2, r0
+ ldr r0, _0224A864 ; =0x00002D4C
+ add r1, #0x64
+ ldrh r0, [r2, r0]
+ str r0, [r4, r1]
+ ldr r0, _0224A850 ; =0x00003118
+ mov r1, #0xcc
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A69C:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _0224A870 ; =0x00002DB0
+ ldr r2, [r2, r1]
+ mov r1, #7
+ tst r1, r2
+ beq _0224A770
+ mov r1, #0xcd
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A6B4:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _0224A85C ; =0x00002DAC
+ add r3, r4, r0
+ ldr r0, [r3, r1]
+ lsl r2, r0, #0x18
+ lsr r2, r2, #0x18
+ bne _0224A6D0
+ add r1, r1, #4
+ ldr r2, [r3, r1]
+ mov r1, #7
+ tst r1, r2
+ beq _0224A770
+_0224A6D0:
+ mov r1, #0x40
+ tst r0, r1
+ beq _0224A6DC
+ ldr r0, _0224A850 ; =0x00003118
+ mov r1, #0xc7
+ str r1, [r4, r0]
+_0224A6DC:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A85C ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0224A6F4
+ ldr r0, _0224A850 ; =0x00003118
+ mov r1, #0xc8
+ str r1, [r4, r0]
+_0224A6F4:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A85C ; =0x00002DAC
+ ldr r1, [r1, r0]
+ ldr r0, _0224A860 ; =0x00000F88
+ tst r0, r1
+ beq _0224A70C
+ ldr r0, _0224A850 ; =0x00003118
+ mov r1, #0xc9
+ str r1, [r4, r0]
+_0224A70C:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A85C ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #0x10
+ tst r0, r1
+ beq _0224A724
+ ldr r0, _0224A850 ; =0x00003118
+ mov r1, #0xca
+ str r1, [r4, r0]
+_0224A724:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A85C ; =0x00002DAC
+ ldr r1, [r1, r0]
+ mov r0, #0x20
+ tst r0, r1
+ beq _0224A73C
+ ldr r0, _0224A850 ; =0x00003118
+ mov r1, #0xcb
+ str r1, [r4, r0]
+_0224A73C:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A870 ; =0x00002DB0
+ ldr r1, [r1, r0]
+ mov r0, #7
+ tst r0, r1
+ beq _0224A754
+ ldr r0, _0224A850 ; =0x00003118
+ mov r1, #0xcd
+ str r1, [r4, r0]
+_0224A754:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _0224A85C ; =0x00002DAC
+ ldr r1, [r2, r0]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ beq _0224A770
+ add r0, r0, #4
+ ldr r1, [r2, r0]
+ mov r0, #7
+ tst r0, r1
+ bne _0224A772
+_0224A770:
+ b _0224AAAC
+_0224A772:
+ ldr r0, _0224A850 ; =0x00003118
+ mov r1, #0xce
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A77A:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A854 ; =0x00002D90
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0x10]
+ bl MOD11_022476C0
+ ldr r1, _0224A858 ; =0x00003114
+ str r0, [r4, r1]
+ mov r0, #0x13
+ add r1, r5, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r2, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _0224A874 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ sub r1, r5, #1
+ cmp r0, r1
+ ldr r0, _0224A850 ; =0x00003118
+ bne _0224A7B6
+ mov r1, #0xcf
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A7B6:
+ mov r1, #0xc6
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A7BC:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A854 ; =0x00002D90
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0x10]
+ bl MOD11_022476C0
+ ldr r1, _0224A858 ; =0x00003114
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r2, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _0224A874 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ sub r1, r5, #1
+ cmp r0, r1
+ ldr r0, _0224A850 ; =0x00003118
+ bne _0224A7F8
+ mov r1, #0xcf
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A7F8:
+ mov r1, #0xc6
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A7FE:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A854 ; =0x00002D90
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0x10]
+ bl MOD11_022476C0
+ ldr r1, _0224A858 ; =0x00003114
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r2, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _0224A874 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ sub r1, r5, #1
+ cmp r0, r1
+ ldr r0, _0224A850 ; =0x00003118
+ bne _0224A83A
+ mov r1, #0xcf
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A83A:
+ mov r1, #0xc6
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A840:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224A854 ; =0x00002D90
+ b _0224A878
+ .align 2, 0
+_0224A84C: .word 0x00002154
+_0224A850: .word 0x00003118
+_0224A854: .word 0x00002D90
+_0224A858: .word 0x00003114
+_0224A85C: .word 0x00002DAC
+_0224A860: .word 0x00000F88
+_0224A864: .word 0x00002D4C
+_0224A868: .word 0x00002D70
+_0224A86C: .word 0x00002D6C
+_0224A870: .word 0x00002DB0
+_0224A874: .word 0x00002DA8
+_0224A878:
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0x10]
+ bl MOD11_022476C0
+ ldr r1, _0224AB14 ; =0x00003114
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r2, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _0224AB18 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ sub r1, r5, #1
+ cmp r0, r1
+ ldr r0, _0224AB1C ; =0x00003118
+ bne _0224A8AA
+ mov r1, #0xcf
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A8AA:
+ mov r1, #0xc6
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A8B0:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0224AB20 ; =0x00002D90
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0x10]
+ bl MOD11_022476C0
+ ldr r1, _0224AB14 ; =0x00003114
+ str r0, [r4, r1]
+ mov r0, #0x13
+ mov r1, #4
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r2, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r2
+ add r2, r4, r0
+ ldr r0, _0224AB18 ; =0x00002DA8
+ ldr r0, [r2, r0]
+ bl FUN_02069BE4
+ sub r1, r5, #1
+ cmp r0, r1
+ ldr r0, _0224AB1C ; =0x00003118
+ bne _0224A8EC
+ mov r1, #0xcf
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A8EC:
+ mov r1, #0xc6
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A8F2:
+ ldr r2, _0224AB24 ; =0x00002D58
+ mov r6, #6
+ mov r3, #0xd3
+ mov r7, #0xc0
+_0224A8FA:
+ ldr r0, [r4, #0x6c]
+ add r1, r0, #0
+ mul r1, r7
+ add r0, r4, r1
+ add r0, r0, r5
+ ldrsb r1, [r0, r2]
+ cmp r1, #6
+ bge _0224A912
+ ldr r1, _0224AB24 ; =0x00002D58
+ strb r6, [r0, r1]
+ ldr r0, _0224AB1C ; =0x00003118
+ str r3, [r4, r0]
+_0224A912:
+ add r5, r5, #1
+ cmp r5, #8
+ blt _0224A8FA
+ b _0224AAAC
+_0224A91A:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ add r3, r2, #0
+ mul r3, r1
+ ldr r2, _0224AB28 ; =0x00002DB0
+ add r3, r4, r3
+ ldr r3, [r3, r2]
+ mov r2, #0xf
+ lsl r2, r2, #0x10
+ tst r2, r3
+ bne _0224A932
+ b _0224AAAC
+_0224A932:
+ mov r2, #6
+ add r1, #0x70
+ str r2, [r4, r1]
+ mov r1, #0xd4
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A93E:
+ add r2, r4, #0
+ ldr r1, [sp, #4]
+ add r2, #0x94
+ str r1, [r2]
+ add r1, r4, #0
+ mov r2, #2
+ add r1, #0x88
+ str r2, [r1]
+ mov r1, #0xe
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A954:
+ add r2, r4, #0
+ ldr r1, [sp, #4]
+ add r2, #0x94
+ str r1, [r2]
+ add r1, r4, #0
+ mov r2, #2
+ add r1, #0x88
+ str r2, [r1]
+ mov r1, #0x1f
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A96A:
+ add r2, r4, #0
+ ldr r1, [sp, #4]
+ add r2, #0x94
+ str r1, [r2]
+ add r1, r4, #0
+ mov r2, #2
+ add r1, #0x88
+ str r2, [r1]
+ mov r1, #0x16
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A980:
+ add r2, r4, #0
+ ldr r1, [sp, #4]
+ add r2, #0x94
+ str r1, [r2]
+ add r1, r4, #0
+ mov r2, #2
+ add r1, #0x88
+ str r2, [r1]
+ mov r1, #0x2f
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A996:
+ add r2, r4, #0
+ ldr r1, [sp, #4]
+ add r2, #0x94
+ str r1, [r2]
+ add r1, r4, #0
+ mov r2, #2
+ add r1, #0x88
+ str r2, [r1]
+ mov r1, #0x19
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A9AC:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ add r3, r2, #0
+ mul r3, r1
+ ldr r2, _0224AB2C ; =0x00002D59
+ add r3, r4, r3
+ ldrsb r2, [r3, r2]
+ cmp r2, #0xc
+ bge _0224AAAC
+ mov r2, #1
+ add r1, #0x70
+ str r2, [r4, r1]
+ mov r1, #0xd0
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A9CA:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ add r3, r2, #0
+ mul r3, r1
+ ldr r2, _0224AB30 ; =0x00002D5A
+ add r3, r4, r3
+ ldrsb r2, [r3, r2]
+ cmp r2, #0xc
+ bge _0224AAAC
+ mov r2, #2
+ add r1, #0x70
+ str r2, [r4, r1]
+ mov r1, #0xd0
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224A9E8:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ add r3, r2, #0
+ mul r3, r1
+ ldr r2, _0224AB34 ; =0x00002D5B
+ add r3, r4, r3
+ ldrsb r2, [r3, r2]
+ cmp r2, #0xc
+ bge _0224AAAC
+ mov r2, #3
+ add r1, #0x70
+ str r2, [r4, r1]
+ mov r1, #0xd0
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224AA06:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ add r3, r2, #0
+ mul r3, r1
+ ldr r2, _0224AB38 ; =0x00002D5C
+ add r3, r4, r3
+ ldrsb r2, [r3, r2]
+ cmp r2, #0xc
+ bge _0224AAAC
+ mov r2, #4
+ add r1, #0x70
+ str r2, [r4, r1]
+ mov r1, #0xd0
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224AA24:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ add r3, r2, #0
+ mul r3, r1
+ ldr r2, _0224AB3C ; =0x00002D5D
+ add r3, r4, r3
+ ldrsb r2, [r3, r2]
+ cmp r2, #0xc
+ bge _0224AAAC
+ mov r2, #5
+ add r1, #0x70
+ str r2, [r4, r1]
+ mov r1, #0xd0
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224AA42:
+ ldr r1, [r4, #0x6c]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r4, r0
+ ldr r0, _0224AB2C ; =0x00002D59
+_0224AA4C:
+ ldrsb r1, [r2, r0]
+ cmp r1, #0xc
+ blt _0224AA5A
+ add r5, r5, #1
+ add r2, r2, #1
+ cmp r5, #5
+ blt _0224AA4C
+_0224AA5A:
+ cmp r5, #5
+ beq _0224AAAC
+ ldr r5, _0224AB2C ; =0x00002D59
+ mov r7, #5
+ mov r6, #0xc0
+_0224AA64:
+ bl LCRandom
+ add r1, r7, #0
+ bl _s32_div_f
+ ldr r0, [r4, #0x6c]
+ add r2, r0, #0
+ mul r2, r6
+ add r0, r4, r2
+ add r0, r1, r0
+ ldrsb r0, [r0, r5]
+ cmp r0, #0xc
+ beq _0224AA64
+ mov r0, #0x13
+ add r1, r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _0224AB1C ; =0x00003118
+ mov r1, #0xd2
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224AA8E:
+ ldr r2, [r4, #0x6c]
+ mov r1, #0xc0
+ mul r1, r2
+ add r2, r4, r1
+ ldr r1, _0224AB28 ; =0x00002DB0
+ ldr r2, [r2, r1]
+ mov r1, #1
+ lsl r1, r1, #0x14
+ tst r1, r2
+ bne _0224AAAC
+ mov r1, #0xd1
+ str r1, [r4, r0]
+ b _0224AAAC
+_0224AAA8:
+ ldr r1, _0224AB40 ; =0x00000109
+ str r1, [r4, r0]
+_0224AAAC:
+ ldr r0, [r4, #0x6c]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ add r0, r4, r2
+ mov r2, #0xb7
+ lsl r2, r2, #6
+ ldr r3, [r0, r2]
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ tst r0, r3
+ beq _0224AACC
+ ldr r0, _0224AB1C ; =0x00003118
+ mov r1, #0
+ str r1, [r4, r0]
+ b _0224AB0C
+_0224AACC:
+ ldr r0, [sp, #4]
+ sub r2, #8
+ add r3, r0, #0
+ mul r3, r1
+ add r0, r4, r3
+ ldrh r0, [r0, r2]
+ add r1, #0x68
+ str r0, [r4, r1]
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _0224AB04
+ ldr r0, _0224AB1C ; =0x00003118
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0224AB04
+ mov r0, #0xba
+ ldr r1, [r4, #0x64]
+ lsl r0, r0, #2
+ add r3, r4, r0
+ mov r0, #0x1c
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, [r3, r2]
+ mov r0, #2
+ orr r0, r1
+ str r0, [r3, r2]
+_0224AB04:
+ mov r0, #0x46
+ ldr r1, [r4, #0x6c]
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+_0224AB0C:
+ mov r0, #1
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0224AB14: .word 0x00003114
+_0224AB18: .word 0x00002DA8
+_0224AB1C: .word 0x00003118
+_0224AB20: .word 0x00002D90
+_0224AB24: .word 0x00002D58
+_0224AB28: .word 0x00002DB0
+_0224AB2C: .word 0x00002D59
+_0224AB30: .word 0x00002D5A
+_0224AB34: .word 0x00002D5B
+_0224AB38: .word 0x00002D5C
+_0224AB3C: .word 0x00002D5D
+_0224AB40: .word 0x00000109
+
+ thumb_func_start MOD11_0224AB44
+MOD11_0224AB44: ; 0x0224AB44
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02249D90
+ cmp r0, #0x68
+ bne _0224ABD2
+ ldr r5, [r4, #0x64]
+ mov r6, #0xc0
+ add r3, r5, #0
+ mul r3, r6
+ ldr r0, _0224ABE8 ; =0x00002DB0
+ add r2, r4, r3
+ ldr r1, [r2, r0]
+ lsl r6, r6, #4
+ tst r6, r1
+ bne _0224ABE6
+ mov r6, #0x70
+ tst r6, r1
+ bne _0224ABE6
+ ldr r6, _0224ABEC ; =0x0000213C
+ ldr r7, [r4, r6]
+ mov r6, #2
+ lsl r6, r6, #8
+ tst r7, r6
+ bne _0224ABE6
+ lsl r6, r6, #3
+ tst r1, r6
+ bne _0224ABE6
+ mov r6, #0xc1
+ lsl r6, r6, #6
+ lsl r5, r5, #1
+ add r7, r4, r5
+ add r5, r6, #0
+ add r5, #0x9c
+ ldrh r5, [r7, r5]
+ ldr r1, [r4, r6]
+ cmp r1, r5
+ bne _0224ABB8
+ add r1, r0, #0
+ add r1, #0x1c
+ ldr r1, [r2, r1]
+ lsl r1, r1, #5
+ lsr r5, r1, #0x1c
+ cmp r5, #0xa
+ bhs _0224ABE6
+ add r0, #0x1c
+ add r0, r4, r0
+ ldr r2, [r0, r3]
+ ldr r1, _0224ABF0 ; =0xF87FFFFF
+ and r2, r1
+ add r1, r5, #1
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #5
+ orr r1, r2
+ str r1, [r0, r3]
+ pop {r3, r4, r5, r6, r7, pc}
+_0224ABB8:
+ add r0, #0x1c
+ add r2, r4, r0
+ ldr r1, [r2, r3]
+ ldr r0, _0224ABF0 ; =0xF87FFFFF
+ and r0, r1
+ str r0, [r2, r3]
+ ldr r0, [r4, #0x64]
+ ldr r1, [r4, r6]
+ lsl r0, r0, #1
+ add r0, r4, r0
+ add r6, #0x9c
+ strh r1, [r0, r6]
+ pop {r3, r4, r5, r6, r7, pc}
+_0224ABD2:
+ ldr r0, _0224ABF4 ; =0x00002DCC
+ ldr r1, [r4, #0x64]
+ add r3, r4, r0
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, [r3, r2]
+ ldr r0, _0224ABF0 ; =0xF87FFFFF
+ and r0, r1
+ str r0, [r3, r2]
+_0224ABE6:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224ABE8: .word 0x00002DB0
+_0224ABEC: .word 0x0000213C
+_0224ABF0: .word 0xF87FFFFF
+_0224ABF4: .word 0x00002DCC
+
+ thumb_func_start MOD11_0224ABF8
+MOD11_0224ABF8: ; 0x0224ABF8
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD11_02249D90
+ cmp r0, #0x68
+ bne _0224AC84
+ ldr r5, _0224AC9C ; =0x0000216C
+ ldr r0, _0224ACA0 ; =0x801FDA49
+ ldr r1, [r4, r5]
+ tst r0, r1
+ beq _0224AC98
+ ldr r2, [r4, #0x64]
+ mov r0, #0xc1
+ lsl r0, r0, #6
+ lsl r1, r2, #1
+ ldr r3, [r4, r0]
+ add r1, r4, r1
+ add r0, #0x9c
+ ldrh r0, [r1, r0]
+ cmp r3, r0
+ bne _0224AC98
+ mov r0, #0xc0
+ add r1, r2, #0
+ mul r1, r0
+ ldr r3, _0224ACA4 ; =0x00002DCC
+ add r6, r4, r1
+ ldr r0, [r6, r3]
+ lsl r0, r0, #5
+ lsr r0, r0, #0x1c
+ beq _0224AC98
+ mov r7, #0x1c
+ mul r7, r2
+ mov r2, #0xb5
+ add r7, r4, r7
+ lsl r2, r2, #2
+ ldr r7, [r7, r2]
+ lsl r7, r7, #0x17
+ lsr r7, r7, #0x1d
+ bne _0224AC98
+ add r7, r3, #0
+ sub r7, #0x1c
+ ldr r6, [r6, r7]
+ mov r7, #0xc0
+ lsl r7, r7, #4
+ tst r7, r6
+ bne _0224AC98
+ mov r7, #0x70
+ tst r7, r6
+ bne _0224AC98
+ sub r5, #0x30
+ ldr r5, [r4, r5]
+ sub r2, #0xd4
+ tst r2, r5
+ bne _0224AC98
+ mov r2, #1
+ lsl r2, r2, #0xc
+ tst r2, r6
+ bne _0224AC98
+ add r2, r4, r3
+ sub r0, r0, #1
+ lsl r0, r0, #0x1c
+ ldr r4, [r2, r1]
+ ldr r3, _0224ACA8 ; =0xF87FFFFF
+ lsr r0, r0, #5
+ and r3, r4
+ orr r0, r3
+ str r0, [r2, r1]
+ pop {r3, r4, r5, r6, r7, pc}
+_0224AC84:
+ ldr r0, _0224ACA4 ; =0x00002DCC
+ ldr r1, [r4, #0x64]
+ add r3, r4, r0
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r1, [r3, r2]
+ ldr r0, _0224ACA8 ; =0xF87FFFFF
+ and r0, r1
+ str r0, [r3, r2]
+_0224AC98:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224AC9C: .word 0x0000216C
+_0224ACA0: .word 0x801FDA49
+_0224ACA4: .word 0x00002DCC
+_0224ACA8: .word 0xF87FFFFF
+
+ thumb_func_start MOD11_0224ACAC
+MOD11_0224ACAC: ; 0x0224ACAC
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ cmp r3, #1
+ bne _0224ACBE
+ sub r0, r2, #2
+ cmp r0, #1
+ bhi _0224ACBE
+ mov r0, #1
+ b _0224ACC0
+_0224ACBE:
+ mov r0, #0
+_0224ACC0:
+ cmp r0, #1
+ mov r0, #0xc0
+ add r4, r1, #0
+ mul r4, r0
+ ldr r2, _0224ACFC ; =0x00002D8C
+ add r1, r5, r4
+ ldr r0, [r1, r2]
+ add r2, r2, #4
+ ldr r1, [r1, r2]
+ lsl r0, r0, #0x10
+ lsl r1, r1, #0x10
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x10
+ mov r2, #0x30
+ mov r6, #0
+ bl FUN_02079A54
+ ldr r1, _0224AD00 ; =0x00002DAC
+ add r2, r5, r4
+ ldr r1, [r2, r1]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bne _0224ACF6
+ cmp r0, #4
+ beq _0224ACF8
+ cmp r0, #3
+ beq _0224ACF8
+_0224ACF6:
+ mov r6, #0xb
+_0224ACF8:
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0224ACFC: .word 0x00002D8C
+_0224AD00: .word 0x00002DAC
+
+ thumb_func_start MOD11_0224AD04
+MOD11_0224AD04: ; 0x0224AD04
+ push {r3, r4}
+ mov r3, #0xc0
+ add r4, r1, #0
+ mul r4, r3
+ add r1, r0, r4
+ ldr r0, _0224AD34 ; =0x00002DB0
+ mov r2, #1
+ ldr r0, [r1, r0]
+ lsl r1, r2, #0x16
+ tst r1, r0
+ bne _0224AD2C
+ lsl r1, r3, #4
+ tst r1, r0
+ bne _0224AD2C
+ mov r1, #0x70
+ tst r1, r0
+ bne _0224AD2C
+ lsl r1, r2, #0xc
+ tst r0, r1
+ beq _0224AD2E
+_0224AD2C:
+ mov r2, #0
+_0224AD2E:
+ add r0, r2, #0
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+_0224AD34: .word 0x00002DB0
+
+ thumb_func_start MOD11_0224AD38
+MOD11_0224AD38: ; 0x0224AD38
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r5, r0, #0
+ mov r1, #0
+ add r6, r2, #0
+ bl MOD11_022301D4
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ bl MOD11_022302B0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ bl MOD11_02230294
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ lsl r1, r1, #8
+ tst r0, r1
+ beq _0224AD76
+ add r0, r6, #0
+ mov r1, #0x9a
+ mov r2, #0
+ bl GetMonData
+ add r2, r0, #0
+ b _0224AD7A
+_0224AD76:
+ sub r1, #0xd8
+ ldr r2, [r4, r1]
+_0224AD7A:
+ str r7, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ ldr r1, [sp, #0xc]
+ ldr r3, [sp, #8]
+ add r0, r6, #0
+ bl FUN_0206A014
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224AD90
+MOD11_0224AD90: ; 0x0224AD90
+ lsl r1, r1, #8
+ add r1, r0, r1
+ mov r0, #0x23
+ lsl r0, r0, #8
+ ldrb r0, [r1, r0]
+ bx lr
+
+ thumb_func_start MOD11_0224AD9C
+MOD11_0224AD9C: ; 0x0224AD9C
+ mov r3, #0x1c
+ mul r3, r1
+ add r1, r0, r3
+ mov r0, #0xba
+ lsl r0, r0, #2
+ ldr r1, [r1, r0]
+ mov r0, #8
+ mov r2, #0
+ tst r0, r1
+ beq _0224ADB2
+ mov r2, #1
+_0224ADB2:
+ add r0, r2, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0224ADB8
+MOD11_0224ADB8: ; 0x0224ADB8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ mov r1, #0
+ bl MOD11_022301D4
+ add r4, r0, #0
+ bl FUN_020239BC
+ add r6, r0, #0
+ add r0, r4, #0
+ bl FUN_020239CC
+ add r7, r0, #0
+ add r0, r4, #0
+ bl FUN_0202398C
+ ldr r2, [r5, #0x64]
+ mov r1, #0xc0
+ add r4, r2, #0
+ mul r4, r1
+ ldr r1, _0224AE10 ; =0x00002DB4
+ add r3, r5, r4
+ ldr r2, [r3, r1]
+ cmp r6, r2
+ bne _0224AE0C
+ add r2, r1, #0
+ add r2, #0xa
+ ldrb r2, [r3, r2]
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x1c
+ cmp r7, r2
+ bne _0224AE0C
+ sub r1, #0x20
+ add r1, r5, r1
+ add r1, r1, r4
+ mov r2, #7
+ bl StringNotEqualN
+ cmp r0, #0
+ bne _0224AE0C
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0224AE0C:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224AE10: .word 0x00002DB4
+
+ thumb_func_start MOD11_0224AE14
+MOD11_0224AE14: ; 0x0224AE14
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ mov r1, #0
+ bl MOD11_022301D4
+ add r4, r0, #0
+ bl FUN_020239BC
+ add r6, r0, #0
+ add r0, r4, #0
+ bl FUN_020239CC
+ add r7, r0, #0
+ add r0, r4, #0
+ bl FUN_0202398C
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #0x8f
+ add r2, sp, #0
+ bl GetMonData
+ add r0, r5, #0
+ mov r1, #7
+ mov r2, #0
+ bl GetMonData
+ cmp r6, r0
+ bne _0224AE72
+ add r0, r5, #0
+ mov r1, #0x9c
+ mov r2, #0
+ bl GetMonData
+ cmp r7, r0
+ bne _0224AE72
+ add r0, r4, #0
+ add r1, sp, #0
+ mov r2, #7
+ bl StringNotEqualN
+ cmp r0, #0
+ bne _0224AE72
+ add sp, #0x10
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0224AE72:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0224AE78
+MOD11_0224AE78: ; 0x0224AE78
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ mov r4, #0
+ add r7, r0, #0
+ add r5, r1, #0
+ str r4, [sp, #4]
+ bl MOD11_0222FF84
+ cmp r0, #0
+ bgt _0224AE8E
+ b _0224B232
+_0224AE8E:
+ ldr r0, _0224B1B8 ; =0x00002D66
+ add r6, r5, r0
+_0224AE92:
+ ldr r0, _0224B1BC ; =0x000021EC
+ add r1, r5, r4
+ ldrb r1, [r1, r0]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ ldr r3, [r5, r0]
+ mov r0, #0xc0
+ mul r0, r3
+ add r2, r5, r0
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldrh r1, [r2, r0]
+ ldr r0, _0224B1C0 ; =0x0000015F
+ cmp r1, r0
+ bne _0224AEC6
+ ldr r0, _0224B1C4 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _0224AEC6
+ add r0, r5, #0
+ add r1, r3, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x3b
+ beq _0224AEC8
+_0224AEC6:
+ b _0224B096
+_0224AEC8:
+ mov r0, #0xd
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224AEF0
+ mov r0, #0x4c
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _0224AEF2
+_0224AEF0:
+ b _0224B04A
+_0224AEF2:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r5, r0]
+ mov r1, #0xf3
+ tst r1, r0
+ bne _0224AF4A
+ mov r1, #0x46
+ lsl r1, r1, #2
+ ldr r2, [r5, r1]
+ mov r1, #0xc0
+ mul r1, r2
+ ldr r2, _0224B1C8 ; =0x00002D64
+ add r1, r5, r1
+ ldrb r2, [r1, r2]
+ cmp r2, #0
+ beq _0224AF4A
+ ldr r2, _0224B1CC ; =0x00002D65
+ ldrb r2, [r1, r2]
+ cmp r2, #0
+ beq _0224AF4A
+ ldr r3, _0224B1C8 ; =0x00002D64
+ mov r2, #0
+ mov r0, #0x46
+ strb r2, [r1, r3]
+ lsl r0, r0, #2
+ ldr r4, [r5, r0]
+ mov r1, #0xc0
+ add r6, r4, #0
+ mul r6, r1
+ add r6, r5, r6
+ add r4, r3, #1
+ strb r2, [r6, r4]
+ add r2, r3, #2
+ ldr r0, [r5, r0]
+ add r2, r5, r2
+ add r3, r0, #0
+ mul r3, r1
+ ldrb r1, [r2, r3]
+ mov r0, #0x1f
+ bic r1, r0
+ mov r0, #1
+ strb r1, [r2, r3]
+ str r0, [sp, #4]
+ b _0224B232
+_0224AF4A:
+ mov r1, #0x30
+ tst r1, r0
+ beq _0224AF9E
+ mov r1, #0x46
+ lsl r1, r1, #2
+ ldr r2, [r5, r1]
+ mov r1, #0xc0
+ mul r1, r2
+ ldr r2, _0224B1C8 ; =0x00002D64
+ add r1, r5, r1
+ ldrb r2, [r1, r2]
+ cmp r2, #0xa
+ beq _0224AF9E
+ ldr r2, _0224B1CC ; =0x00002D65
+ ldrb r2, [r1, r2]
+ cmp r2, #0xa
+ beq _0224AF9E
+ ldr r3, _0224B1C8 ; =0x00002D64
+ mov r2, #0xa
+ mov r0, #0x46
+ strb r2, [r1, r3]
+ lsl r0, r0, #2
+ ldr r4, [r5, r0]
+ mov r1, #0xc0
+ add r6, r4, #0
+ mul r6, r1
+ add r6, r5, r6
+ add r4, r3, #1
+ strb r2, [r6, r4]
+ add r2, r3, #2
+ ldr r0, [r5, r0]
+ add r2, r5, r2
+ add r3, r0, #0
+ mul r3, r1
+ ldrb r1, [r2, r3]
+ mov r0, #0x1f
+ bic r1, r0
+ mov r0, #1
+ str r0, [sp, #4]
+ orr r0, r1
+ strb r0, [r2, r3]
+ b _0224B232
+_0224AF9E:
+ mov r1, #3
+ tst r1, r0
+ beq _0224AFF4
+ mov r1, #0x46
+ lsl r1, r1, #2
+ ldr r2, [r5, r1]
+ mov r1, #0xc0
+ mul r1, r2
+ ldr r2, _0224B1C8 ; =0x00002D64
+ add r1, r5, r1
+ ldrb r2, [r1, r2]
+ cmp r2, #0xb
+ beq _0224AFF4
+ ldr r2, _0224B1CC ; =0x00002D65
+ ldrb r2, [r1, r2]
+ cmp r2, #0xb
+ beq _0224AFF4
+ ldr r3, _0224B1C8 ; =0x00002D64
+ mov r2, #0xb
+ mov r0, #0x46
+ strb r2, [r1, r3]
+ lsl r0, r0, #2
+ ldr r4, [r5, r0]
+ mov r1, #0xc0
+ add r6, r4, #0
+ mul r6, r1
+ add r6, r5, r6
+ add r4, r3, #1
+ strb r2, [r6, r4]
+ add r2, r3, #2
+ ldr r0, [r5, r0]
+ add r2, r5, r2
+ add r3, r0, #0
+ mul r3, r1
+ ldrb r1, [r2, r3]
+ mov r0, #0x1f
+ bic r1, r0
+ mov r0, #2
+ orr r0, r1
+ strb r0, [r2, r3]
+ mov r0, #1
+ str r0, [sp, #4]
+ b _0224B232
+_0224AFF4:
+ mov r1, #0xc0
+ tst r0, r1
+ beq _0224B096
+ add r0, r1, #0
+ add r0, #0x58
+ ldr r1, [r5, r0]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _0224B1C8 ; =0x00002D64
+ add r0, r5, r0
+ ldrb r1, [r0, r1]
+ cmp r1, #0xf
+ beq _0224B096
+ ldr r1, _0224B1CC ; =0x00002D65
+ ldrb r1, [r0, r1]
+ cmp r1, #0xf
+ beq _0224B096
+ ldr r3, _0224B1C8 ; =0x00002D64
+ mov r2, #0xf
+ strb r2, [r0, r3]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r4, [r5, r0]
+ mov r1, #0xc0
+ add r6, r4, #0
+ mul r6, r1
+ add r6, r5, r6
+ add r4, r3, #1
+ strb r2, [r6, r4]
+ add r2, r3, #2
+ ldr r0, [r5, r0]
+ add r2, r5, r2
+ add r3, r0, #0
+ mul r3, r1
+ ldrb r1, [r2, r3]
+ mov r0, #0x1f
+ bic r1, r0
+ mov r0, #3
+ orr r0, r1
+ strb r0, [r2, r3]
+ mov r0, #1
+ str r0, [sp, #4]
+ b _0224B232
+_0224B04A:
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ mov r0, #0xc0
+ mul r0, r1
+ ldr r1, _0224B1C8 ; =0x00002D64
+ add r0, r5, r0
+ ldrb r1, [r0, r1]
+ cmp r1, #0
+ beq _0224B096
+ ldr r1, _0224B1CC ; =0x00002D65
+ ldrb r1, [r0, r1]
+ cmp r1, #0
+ beq _0224B096
+ ldr r3, _0224B1C8 ; =0x00002D64
+ mov r2, #0
+ strb r2, [r0, r3]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r4, [r5, r0]
+ mov r1, #0xc0
+ add r6, r4, #0
+ mul r6, r1
+ add r6, r5, r6
+ add r4, r3, #1
+ strb r2, [r6, r4]
+ add r2, r3, #2
+ ldr r0, [r5, r0]
+ add r2, r5, r2
+ add r3, r0, #0
+ mul r3, r1
+ ldrb r1, [r2, r3]
+ mov r0, #0x1f
+ bic r1, r0
+ mov r0, #1
+ strb r1, [r2, r3]
+ str r0, [sp, #4]
+ b _0224B232
+_0224B096:
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ mov r0, #0xc0
+ mul r0, r1
+ mov r1, #0xb5
+ add r0, r5, r0
+ lsl r1, r1, #6
+ ldrh r2, [r0, r1]
+ ldr r1, _0224B1D0 ; =0x000001A5
+ cmp r2, r1
+ bne _0224B1A2
+ ldr r1, _0224B1C4 ; =0x00002D8C
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ beq _0224B1A2
+ mov r0, #0xd
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224B182
+ mov r0, #0x4c
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224B182
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r2, [r5, r0]
+ mov r0, #0xf3
+ tst r0, r2
+ bne _0224B10C
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0xc0
+ add r3, r0, #0
+ mul r3, r1
+ ldrb r0, [r6, r3]
+ lsl r1, r0, #0x1b
+ lsr r1, r1, #0x1b
+ cmp r1, #1
+ bne _0224B10C
+ mov r1, #0x1f
+ bic r0, r1
+ strb r0, [r6, r3]
+ mov r0, #1
+ str r0, [sp, #4]
+ b _0224B232
+_0224B10C:
+ mov r0, #0x30
+ tst r0, r2
+ beq _0224B134
+ mov r0, #0x46
+ lsl r0, r0, #2
+_0224B116:
+ ldr r0, [r5, r0]
+ mov r1, #0xc0
+ add r3, r0, #0
+ mul r3, r1
+ ldrb r0, [r6, r3]
+ lsl r1, r0, #0x1b
+ lsr r1, r1, #0x1b
+ bne _0224B134
+ mov r1, #0x1f
+ bic r0, r1
+ mov r1, #1
+ orr r0, r1
+ str r1, [sp, #4]
+ strb r0, [r6, r3]
+ b _0224B232
+_0224B134:
+ mov r0, #3
+ tst r0, r2
+ beq _0224B15C
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0xc0
+ add r3, r0, #0
+ mul r3, r1
+ ldrb r0, [r6, r3]
+ lsl r1, r0, #0x1b
+ lsr r1, r1, #0x1b
+ cmp r1, #1
+ bne _0224B15C
+ mov r1, #0x1f
+ bic r0, r1
+ strb r0, [r6, r3]
+ mov r0, #1
+ str r0, [sp, #4]
+ b _0224B232
+_0224B15C:
+ mov r0, #0xc0
+ tst r0, r2
+ beq _0224B1A2
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ mov r0, #0xc0
+ mul r0, r1
+ ldrb r2, [r6, r0]
+ lsl r1, r2, #0x1b
+ lsr r1, r1, #0x1b
+ cmp r1, #1
+ bne _0224B1A2
+ mov r1, #0x1f
+ bic r2, r1
+ strb r2, [r6, r0]
+ mov r0, #1
+ str r0, [sp, #4]
+ b _0224B232
+_0224B182:
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ mov r0, #0xc0
+ mul r0, r1
+ ldrb r2, [r6, r0]
+ lsl r1, r2, #0x1b
+ lsr r1, r1, #0x1b
+ cmp r1, #1
+ bne _0224B1A2
+ mov r1, #0x1f
+ bic r2, r1
+ strb r2, [r6, r0]
+ mov r0, #1
+ str r0, [sp, #4]
+ b _0224B232
+_0224B1A2:
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ mov r0, #0xc0
+ mul r0, r1
+ mov r1, #0xb5
+ add r0, r5, r0
+ lsl r1, r1, #6
+ ldrh r2, [r0, r1]
+ ldr r1, _0224B1D4 ; =0x000001ED
+ b _0224B1D8
+ .align 2, 0
+_0224B1B8: .word 0x00002D66
+_0224B1BC: .word 0x000021EC
+_0224B1C0: .word 0x0000015F
+_0224B1C4: .word 0x00002D8C
+_0224B1C8: .word 0x00002D64
+_0224B1CC: .word 0x00002D65
+_0224B1D0: .word 0x000001A5
+_0224B1D4: .word 0x000001ED
+_0224B1D8:
+ cmp r2, r1
+ bne _0224B224
+ ldr r1, _0224B238 ; =0x00002D8C
+ ldr r1, [r0, r1]
+ cmp r1, #0
+ beq _0224B224
+ ldr r1, _0224B23C ; =0x00002DB8
+ mov r2, #5
+ ldrh r0, [r0, r1]
+ mov r1, #1
+ bl FUN_0206E7B8
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl GetArceusTypeByHeldItemEffect
+ mov r1, #0x46
+ lsl r1, r1, #2
+ ldr r1, [r5, r1]
+ mov r2, #0xc0
+ add r3, r1, #0
+ mul r3, r2
+ ldrb r1, [r6, r3]
+ lsl r2, r1, #0x1b
+ lsr r2, r2, #0x1b
+ cmp r0, r2
+ beq _0224B224
+ mov r2, #0x1f
+ lsl r0, r0, #0x18
+ bic r1, r2
+ lsr r2, r0, #0x18
+ mov r0, #0x1f
+ and r0, r2
+ orr r0, r1
+ strb r0, [r6, r3]
+ mov r0, #1
+ str r0, [sp, #4]
+ b _0224B232
+_0224B224:
+ add r0, r7, #0
+ add r4, r4, #1
+ bl MOD11_0222FF84
+ cmp r4, r0
+ bge _0224B232
+ b _0224AE92
+_0224B232:
+ ldr r0, [sp, #4]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224B238: .word 0x00002D8C
+_0224B23C: .word 0x00002DB8
+
+ thumb_func_start MOD11_0224B240
+MOD11_0224B240: ; 0x0224B240
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r0, [sp, #4]
+ str r1, [sp]
+ mov r7, #0
+ bl MOD11_0222FF84
+ cmp r0, #0
+ ble _0224B282
+ ldr r5, [sp]
+ ldr r4, _0224B288 ; =0x0000312C
+_0224B256:
+ mov r1, #0
+_0224B258:
+ add r0, r5, r1
+ strb r1, [r0, r4]
+ add r1, r1, #1
+ cmp r1, #6
+ blt _0224B258
+ ldr r1, [sp]
+ ldr r0, [sp, #4]
+ add r3, r1, #0
+ add r6, r3, r7
+ ldr r3, _0224B28C ; =0x0000219C
+ add r2, r7, #0
+ ldrb r3, [r6, r3]
+ bl MOD11_0224B290
+ ldr r0, [sp, #4]
+ add r5, r5, #6
+ add r7, r7, #1
+ bl MOD11_0222FF84
+ cmp r7, r0
+ blt _0224B256
+_0224B282:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224B288: .word 0x0000312C
+_0224B28C: .word 0x0000219C
+
+ thumb_func_start MOD11_0224B290
+MOD11_0224B290: ; 0x0224B290
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r6, r1, #0
+ add r5, r2, #0
+ add r4, r3, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r1, r0
+ beq _0224B2AA
+ mov r1, #0x18
+ tst r1, r0
+ beq _0224B2BE
+_0224B2AA:
+ mov r1, #0x10
+ tst r0, r1
+ beq _0224B2E2
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_02230260
+ mov r1, #1
+ tst r0, r1
+ bne _0224B2E2
+_0224B2BE:
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_02230260
+ cmp r0, #4
+ beq _0224B2D6
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_02230260
+ cmp r0, #5
+ bne _0224B2DA
+_0224B2D6:
+ mov r1, #1
+ b _0224B2DC
+_0224B2DA:
+ mov r1, #0
+_0224B2DC:
+ mov r0, #1
+ and r5, r0
+ b _0224B2E4
+_0224B2E2:
+ mov r1, #0
+_0224B2E4:
+ mov r2, #6
+ mul r2, r5
+ ldr r3, _0224B30C ; =0x0000312C
+ mov r0, #0
+ add r7, r6, r2
+_0224B2EE:
+ ldrb r5, [r7, r3]
+ cmp r4, r5
+ beq _0224B2FC
+ add r0, r0, #1
+ add r7, r7, #1
+ cmp r0, #6
+ blt _0224B2EE
+_0224B2FC:
+ ldr r3, _0224B30C ; =0x0000312C
+ add r3, r6, r3
+ add r4, r3, r2
+ ldrb r3, [r4, r1]
+ ldrb r2, [r4, r0]
+ strb r2, [r4, r1]
+ strb r3, [r4, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224B30C: .word 0x0000312C
+
+ thumb_func_start MOD11_0224B310
+MOD11_0224B310: ; 0x0224B310
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x8c
+ str r0, [sp, #4]
+ ldr r0, [sp, #0xa0]
+ add r5, r1, #0
+ str r0, [sp, #0xa0]
+ ldr r0, [sp, #0xb4]
+ str r2, [sp, #8]
+ str r0, [sp, #0xb4]
+ mov r0, #0
+ str r0, [sp, #0x84]
+ ldr r0, [sp, #0xb4]
+ str r3, [sp, #0xc]
+ cmp r0, #1
+ beq _0224B334
+ bhi _0224B334
+ bl ErrorHandling
+_0224B334:
+ add r0, sp, #0x90
+ ldrb r0, [r0, #0x1c]
+ mov r2, #1
+ mov r3, #0
+ str r0, [sp, #0x24]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x7c]
+ add r0, sp, #0xb0
+ ldrb r0, [r0]
+ mov r2, #2
+ mov r3, #0
+ str r0, [sp, #0x20]
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x78]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #4
+ mov r3, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x74]
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ mov r2, #5
+ mov r3, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #0x13
+ mov r3, #0
+ bl MOD11_02243420
+ sub r0, r0, #6
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [sp, #0x70]
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ mov r2, #0x14
+ mov r3, #0
+ bl MOD11_02243420
+ sub r0, r0, #6
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [sp, #0x6c]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #0x16
+ mov r3, #0
+ bl MOD11_02243420
+ sub r0, r0, #6
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [sp, #0x68]
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ mov r2, #0x17
+ mov r3, #0
+ bl MOD11_02243420
+ sub r0, r0, #6
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [sp, #0x64]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #0x2b
+ mov r3, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r2, #0
+ str r0, [sp, #0x60]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ add r3, r2, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r2, #0
+ str r0, [sp, #0x58]
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ add r3, r2, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x54]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #0x2f
+ mov r3, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #0x50]
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ mov r2, #0x2f
+ mov r3, #0
+ bl MOD11_02243420
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #0x30
+ mov r3, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x4c]
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ mov r2, #0x30
+ mov r3, #0
+ bl MOD11_02243420
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #0x34
+ mov r3, #0
+ bl MOD11_02243420
+ str r0, [sp, #0x48]
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ mov r2, #0x34
+ mov r3, #0
+ bl MOD11_02243420
+ str r0, [sp, #0x44]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ add r7, r0, #0
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #0x1d
+ mov r3, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x40]
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ mov r2, #0x1d
+ mov r3, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x3c]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ mov r2, #0x1b
+ mov r3, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x38]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ mov r2, #0x1c
+ mov r3, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x34]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ bl MOD11_02249B4C
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #1
+ bl MOD11_0224C12C
+ str r0, [sp, #0x30]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #2
+ bl MOD11_0224C12C
+ str r0, [sp, #0x2c]
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ bl MOD11_02249B4C
+ add r4, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #1
+ bl MOD11_0224C12C
+ str r0, [sp, #0x28]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #2
+ bl MOD11_0224C12C
+ ldr r0, [sp, #4]
+ bl MOD11_0222FF74
+ str r0, [sp, #0x5c]
+ add r0, sp, #0x90
+ ldrh r4, [r0, #0x14]
+ cmp r4, #0
+ bne _0224B534
+ ldr r0, [sp, #8]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _0224B754 ; =0x000003E1
+ ldrb r4, [r1, r0]
+_0224B534:
+ cmp r7, #0x60
+ bne _0224B53C
+ mov r6, #0
+ b _0224B558
+_0224B53C:
+ add r0, sp, #0x90
+ ldrb r1, [r0, #0x18]
+ cmp r1, #0
+ bne _0224B550
+ ldr r0, [sp, #8]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _0224B758 ; =0x000003E2
+ ldrb r6, [r1, r0]
+ b _0224B558
+_0224B550:
+ mov r0, #0x3f
+ and r0, r1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+_0224B558:
+ ldr r0, _0224B75C ; =0x00002158
+ ldr r0, [r5, r0]
+ cmp r0, #0xa
+ bge _0224B564
+ bl ErrorHandling
+_0224B564:
+ ldr r0, _0224B75C ; =0x00002158
+ mov r1, #0xa
+ ldr r0, [r5, r0]
+ mul r0, r4
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ add r0, sp, #0x90
+ ldrb r0, [r0, #0x1c]
+ mov r1, #0xc0
+ mul r1, r0
+ add r2, r5, r1
+ mov r1, #0xb7
+ lsl r1, r1, #6
+ ldr r2, [r2, r1]
+ mov r1, #2
+ lsl r1, r1, #8
+ tst r1, r2
+ beq _0224B594
+ cmp r6, #0xd
+ bne _0224B594
+ lsl r1, r4, #0x11
+ lsr r4, r1, #0x10
+_0224B594:
+ lsl r0, r0, #6
+ add r1, r5, r0
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ beq _0224B5B2
+ mov r0, #0xf
+ mul r0, r4
+ mov r1, #0xa
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224B5B2:
+ cmp r7, #0x65
+ bne _0224B5CE
+ ldr r0, [sp, #8]
+ cmp r0, #0xa5
+ beq _0224B5CE
+ cmp r4, #0x3c
+ bhi _0224B5CE
+ mov r0, #0xf
+ mul r0, r4
+ mov r1, #0xa
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224B5CE:
+ ldr r0, [sp, #8]
+ lsl r0, r0, #4
+ str r0, [sp, #0x18]
+ add r1, r5, r0
+ mov r0, #0x3e
+ lsl r0, r0, #4
+ ldrb r0, [r1, r0]
+ cmp r7, #0x25
+ str r0, [sp, #0x80]
+ beq _0224B5E6
+ cmp r7, #0x4a
+ bne _0224B5EE
+_0224B5E6:
+ ldr r0, [sp, #0x7c]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x7c]
+_0224B5EE:
+ cmp r7, #0x70
+ bne _0224B61C
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #3
+ mov r3, #0
+ bl MOD11_0224C474
+ str r0, [sp, #0x88]
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #0x59
+ mov r3, #0
+ bl MOD11_02243420
+ ldr r1, [sp, #0x88]
+ sub r0, r1, r0
+ cmp r0, #5
+ bge _0224B61C
+ ldr r0, [sp, #0x7c]
+ lsl r0, r0, #0xf
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x7c]
+_0224B61C:
+ ldr r3, _0224B760 ; =0x0225E336
+ mov r2, #0
+_0224B620:
+ ldrb r1, [r3]
+ ldr r0, [sp, #0x30]
+ cmp r0, r1
+ bne _0224B640
+ ldrb r0, [r3, #1]
+ cmp r6, r0
+ bne _0224B640
+ ldr r0, [sp, #0x2c]
+ mov r1, #0x64
+ add r0, #0x64
+ mul r0, r4
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0224B648
+_0224B640:
+ add r2, r2, #1
+ add r3, r3, #2
+ cmp r2, #0x21
+ blo _0224B620
+_0224B648:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x36
+ bne _0224B660
+ ldr r1, [sp, #0x7c]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x7c]
+_0224B660:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x7c
+ bne _0224B678
+ ldr r1, [sp, #0x74]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x74]
+_0224B678:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x3b
+ bne _0224B6A6
+ ldr r0, [sp, #0x5c]
+ mov r1, #0x80
+ tst r0, r1
+ bne _0224B6A6
+ ldr r1, _0224B764 ; =0x0000FE84
+ ldr r0, [sp, #0x58]
+ add r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #1
+ bhi _0224B6A6
+ ldr r1, [sp, #0x74]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x74]
+_0224B6A6:
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x3b
+ bne _0224B6D4
+ ldr r0, [sp, #0x5c]
+ mov r1, #0x80
+ tst r0, r1
+ bne _0224B6D4
+ ldr r1, _0224B764 ; =0x0000FE84
+ ldr r0, [sp, #0x54]
+ add r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #1
+ bhi _0224B6D4
+ ldr r1, [sp, #0x10]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+_0224B6D4:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x3c
+ bne _0224B6EA
+ ldr r1, _0224B768 ; =0x0000016E
+ ldr r0, [sp, #0x58]
+ cmp r0, r1
+ bne _0224B6EA
+ ldr r0, [sp, #0x74]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x74]
+_0224B6EA:
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x3d
+ bne _0224B700
+ ldr r1, _0224B768 ; =0x0000016E
+ ldr r0, [sp, #0x54]
+ cmp r0, r1
+ bne _0224B700
+ ldr r0, [sp, #0x10]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+_0224B700:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x46
+ bne _0224B710
+ ldr r0, [sp, #0x58]
+ cmp r0, #0x19
+ bne _0224B710
+ lsl r0, r4, #0x11
+ lsr r4, r0, #0x10
+_0224B710:
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x59
+ bne _0224B724
+ ldr r0, [sp, #0x54]
+ cmp r0, #0x84
+ bne _0224B724
+ ldr r0, [sp, #0x78]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x78]
+_0224B724:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x5a
+ bne _0224B740
+ ldr r1, _0224B76C ; =0x0000FF98
+ ldr r0, [sp, #0x58]
+ add r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #1
+ bhi _0224B740
+ ldr r0, [sp, #0x7c]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x7c]
+_0224B740:
+ ldr r0, [sp, #0x30]
+ cmp r0, #2
+ bne _0224B78A
+ cmp r6, #0x10
+ beq _0224B74E
+ cmp r6, #8
+ bne _0224B78A
+_0224B74E:
+ ldr r1, _0224B770 ; =0x000001E3
+ b _0224B774
+ nop
+_0224B754: .word 0x000003E1
+_0224B758: .word 0x000003E2
+_0224B75C: .word 0x00002158
+_0224B760: .word 0x0225E336
+_0224B764: .word 0x0000FE84
+_0224B768: .word 0x0000016E
+_0224B76C: .word 0x0000FF98
+_0224B770: .word 0x000001E3
+_0224B774:
+ ldr r0, [sp, #0x58]
+ cmp r0, r1
+ bne _0224B78A
+ ldr r0, [sp, #0x2c]
+ mov r1, #0x64
+ add r0, #0x64
+ mul r0, r4
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224B78A:
+ ldr r0, [sp, #0x30]
+ cmp r0, #3
+ bne _0224B7B2
+ cmp r6, #0x10
+ beq _0224B798
+ cmp r6, #0xb
+ bne _0224B7B2
+_0224B798:
+ mov r1, #0x79
+ ldr r0, [sp, #0x58]
+ lsl r1, r1, #2
+ cmp r0, r1
+ bne _0224B7B2
+ ldr r0, [sp, #0x2c]
+ mov r1, #0x64
+ add r0, #0x64
+ mul r0, r4
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224B7B2:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x5d
+ bne _0224B7CE
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ bne _0224B7CE
+ ldr r0, [sp, #0x2c]
+ mov r1, #0x64
+ add r0, #0x64
+ mul r0, r4
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224B7CE:
+ ldr r0, [sp, #0x30]
+ cmp r0, #0x5e
+ bne _0224B7EC
+ ldr r0, [sp, #0x80]
+ cmp r0, #1
+ bne _0224B7EC
+ ldr r0, [sp, #0x2c]
+ mov r1, #0x64
+ add r0, #0x64
+ str r0, [sp, #0x2c]
+ mul r0, r4
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224B7EC:
+ ldr r1, [sp, #0x24]
+ ldr r2, [sp, #0x20]
+ add r0, r5, #0
+ mov r3, #0x2f
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _0224B808
+ cmp r6, #0xa
+ beq _0224B804
+ cmp r6, #0xf
+ bne _0224B808
+_0224B804:
+ lsl r0, r4, #0xf
+ lsr r4, r0, #0x10
+_0224B808:
+ cmp r7, #0x37
+ bne _0224B81E
+ ldr r1, [sp, #0x7c]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x7c]
+_0224B81E:
+ cmp r7, #0x3e
+ bne _0224B83A
+ ldr r0, [sp, #0x48]
+ cmp r0, #0
+ beq _0224B83A
+ ldr r1, [sp, #0x7c]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x7c]
+_0224B83A:
+ ldr r1, [sp, #0x24]
+ ldr r2, [sp, #0x20]
+ add r0, r5, #0
+ mov r3, #0x3f
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _0224B862
+ ldr r0, [sp, #0x44]
+ cmp r0, #0
+ beq _0224B862
+ ldr r1, [sp, #0x78]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x78]
+_0224B862:
+ cmp r7, #0x39
+ bne _0224B88C
+ mov r0, #0x3a
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r3, [sp, #0x24]
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _0224B88C
+ ldr r1, [sp, #0x74]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x74]
+_0224B88C:
+ cmp r7, #0x3a
+ bne _0224B8B6
+ mov r0, #0x39
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r3, [sp, #0x24]
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _0224B8B6
+ ldr r1, [sp, #0x74]
+ mov r0, #0x96
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x74]
+_0224B8B6:
+ cmp r6, #0xd
+ bne _0224B8CE
+ mov r2, #1
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ lsl r2, r2, #0x10
+ bl MOD11_02247238
+ cmp r0, #0
+ beq _0224B8CE
+ lsl r0, r4, #0xf
+ lsr r4, r0, #0x10
+_0224B8CE:
+ cmp r6, #0xa
+ bne _0224B8E6
+ mov r2, #2
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ lsl r2, r2, #0x10
+ bl MOD11_02247238
+ cmp r0, #0
+ beq _0224B8E6
+ lsl r0, r4, #0xf
+ lsr r4, r0, #0x10
+_0224B8E6:
+ cmp r6, #0xc
+ bne _0224B90A
+ cmp r7, #0x41
+ bne _0224B90A
+ ldr r0, [sp, #0x4c]
+ mov r1, #3
+ bl _s32_div_f
+ ldr r1, [sp, #0x50]
+ cmp r1, r0
+ bgt _0224B90A
+ mov r0, #0x96
+ mul r0, r4
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224B90A:
+ cmp r6, #0xa
+ bne _0224B92E
+ cmp r7, #0x42
+ bne _0224B92E
+ ldr r0, [sp, #0x4c]
+ mov r1, #3
+ bl _s32_div_f
+ ldr r1, [sp, #0x50]
+ cmp r1, r0
+ bgt _0224B92E
+ mov r0, #0x96
+ mul r0, r4
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224B92E:
+ cmp r6, #0xb
+ bne _0224B952
+ cmp r7, #0x43
+ bne _0224B952
+ ldr r0, [sp, #0x4c]
+ mov r1, #3
+ bl _s32_div_f
+ ldr r1, [sp, #0x50]
+ cmp r1, r0
+ bgt _0224B952
+ mov r0, #0x96
+ mul r0, r4
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224B952:
+ cmp r6, #6
+ bne _0224B976
+ cmp r7, #0x44
+ bne _0224B976
+ ldr r0, [sp, #0x4c]
+ mov r1, #3
+ bl _s32_div_f
+ ldr r1, [sp, #0x50]
+ cmp r1, r0
+ bgt _0224B976
+ mov r0, #0x96
+ mul r0, r4
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224B976:
+ cmp r6, #0xa
+ bne _0224B98E
+ ldr r1, [sp, #0x24]
+ ldr r2, [sp, #0x20]
+ add r0, r5, #0
+ mov r3, #0x55
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _0224B98E
+ lsl r0, r4, #0xf
+ lsr r4, r0, #0x10
+_0224B98E:
+ cmp r6, #0xa
+ bne _0224B9B0
+ ldr r1, [sp, #0x24]
+ ldr r2, [sp, #0x20]
+ add r0, r5, #0
+ mov r3, #0x57
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _0224B9B0
+ mov r0, #0x7d
+ mul r0, r4
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224B9B0:
+ cmp r7, #0x56
+ bne _0224B9F0
+ ldr r0, [sp, #0x70]
+ mov r1, #5
+ lsl r0, r0, #0x19
+ asr r0, r0, #0x18
+ str r0, [sp, #0x70]
+ ldr r0, [sp, #0x70]
+ mvn r1, r1
+ cmp r0, r1
+ bge _0224B9C8
+ str r1, [sp, #0x70]
+_0224B9C8:
+ ldr r0, [sp, #0x70]
+ cmp r0, #6
+ ble _0224B9D2
+ mov r0, #6
+ str r0, [sp, #0x70]
+_0224B9D2:
+ ldr r0, [sp, #0x68]
+ mov r1, #5
+ lsl r0, r0, #0x19
+ asr r0, r0, #0x18
+ str r0, [sp, #0x68]
+ ldr r0, [sp, #0x68]
+ mvn r1, r1
+ cmp r0, r1
+ bge _0224B9E6
+ str r1, [sp, #0x68]
+_0224B9E6:
+ ldr r0, [sp, #0x68]
+ cmp r0, #6
+ ble _0224B9F0
+ mov r0, #6
+ str r0, [sp, #0x68]
+_0224B9F0:
+ ldr r1, [sp, #0x24]
+ ldr r2, [sp, #0x20]
+ add r0, r5, #0
+ mov r3, #0x56
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _0224BA3C
+ ldr r0, [sp, #0x6c]
+ mov r1, #5
+ lsl r0, r0, #0x19
+ asr r0, r0, #0x18
+ str r0, [sp, #0x6c]
+ ldr r0, [sp, #0x6c]
+ mvn r1, r1
+ cmp r0, r1
+ bge _0224BA14
+ str r1, [sp, #0x6c]
+_0224BA14:
+ ldr r0, [sp, #0x6c]
+ cmp r0, #6
+ ble _0224BA1E
+ mov r0, #6
+ str r0, [sp, #0x6c]
+_0224BA1E:
+ ldr r0, [sp, #0x64]
+ mov r1, #5
+ lsl r0, r0, #0x19
+ asr r0, r0, #0x18
+ str r0, [sp, #0x64]
+ ldr r0, [sp, #0x64]
+ mvn r1, r1
+ cmp r0, r1
+ bge _0224BA32
+ str r1, [sp, #0x64]
+_0224BA32:
+ ldr r0, [sp, #0x64]
+ cmp r0, #6
+ ble _0224BA3C
+ mov r0, #6
+ str r0, [sp, #0x64]
+_0224BA3C:
+ ldr r1, [sp, #0x24]
+ ldr r2, [sp, #0x20]
+ add r0, r5, #0
+ mov r3, #0x6d
+ bl MOD11_02246D84
+ cmp r0, #1
+ bne _0224BA52
+ mov r0, #0
+ str r0, [sp, #0x70]
+ str r0, [sp, #0x68]
+_0224BA52:
+ cmp r7, #0x6d
+ bne _0224BA5C
+ mov r0, #0
+ str r0, [sp, #0x6c]
+ str r0, [sp, #0x64]
+_0224BA5C:
+ ldr r0, [sp, #0x70]
+ add r0, r0, #6
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [sp, #0x70]
+ ldr r0, [sp, #0x6c]
+ add r0, r0, #6
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [sp, #0x6c]
+ ldr r0, [sp, #0x68]
+ add r0, r0, #6
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [sp, #0x68]
+ ldr r0, [sp, #0x64]
+ add r0, r0, #6
+ lsl r0, r0, #0x18
+ asr r0, r0, #0x18
+ str r0, [sp, #0x64]
+ cmp r7, #0x4f
+ bne _0224BAAA
+ ldr r1, [sp, #0x40]
+ ldr r0, [sp, #0x3c]
+ cmp r1, r0
+ bne _0224BAAA
+ add r0, r1, #0
+ cmp r0, #2
+ beq _0224BAAA
+ ldr r0, [sp, #0x3c]
+ cmp r0, #2
+ beq _0224BAAA
+ mov r0, #0x7d
+ mul r0, r4
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224BAAA:
+ cmp r7, #0x4f
+ bne _0224BAD0
+ ldr r1, [sp, #0x40]
+ ldr r0, [sp, #0x3c]
+ cmp r1, r0
+ beq _0224BAD0
+ add r0, r1, #0
+ cmp r0, #2
+ beq _0224BAD0
+ ldr r0, [sp, #0x3c]
+ cmp r0, #2
+ beq _0224BAD0
+ mov r0, #0x4b
+ mul r0, r4
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+_0224BAD0:
+ ldr r2, _0224BDDC ; =0x0225E2BA
+ mov r3, #0
+_0224BAD4:
+ ldrh r1, [r2]
+ ldr r0, [sp, #8]
+ cmp r0, r1
+ bne _0224BAF0
+ cmp r7, #0x59
+ bne _0224BAF0
+ mov r0, #0xc
+ mul r0, r4
+ mov r1, #0xa
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ b _0224BAF8
+_0224BAF0:
+ add r3, r3, #1
+ add r2, r2, #2
+ cmp r3, #0xf
+ blo _0224BAD4
+_0224BAF8:
+ mov r0, #0xd
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224BBCA
+ mov r0, #0x4c
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224BBCA
+ ldr r0, [sp, #0xa0]
+ mov r1, #0x30
+ and r0, r1
+ str r0, [sp, #0x1c]
+ beq _0224BB40
+ cmp r7, #0x5e
+ bne _0224BB40
+ ldr r1, [sp, #0x74]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x74]
+_0224BB40:
+ ldr r0, [sp, #0xa0]
+ mov r1, #0xc
+ tst r0, r1
+ beq _0224BB66
+ ldr r0, [sp, #0x38]
+ cmp r0, #5
+ beq _0224BB54
+ ldr r0, [sp, #0x34]
+ cmp r0, #5
+ bne _0224BB66
+_0224BB54:
+ ldr r1, [sp, #0x10]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+_0224BB66:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ beq _0224BB92
+ mov r0, #0x7a
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r3, [sp, #0x24]
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _0224BB92
+ ldr r1, [sp, #0x7c]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x7c]
+_0224BB92:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ beq _0224BBCA
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x68
+ beq _0224BBCA
+ mov r0, #0x7a
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r3, [sp, #0x20]
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD11_02246870
+ cmp r0, #0
+ beq _0224BBCA
+ ldr r1, [sp, #0x10]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+_0224BBCA:
+ ldr r0, [sp, #0x18]
+ add r1, r5, r0
+ ldr r0, _0224BDE0 ; =0x000003DE
+ ldrh r0, [r1, r0]
+ str r0, [sp, #0x14]
+ cmp r0, #7
+ bne _0224BBE0
+ ldr r0, [sp, #0x78]
+ lsl r0, r0, #0xf
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x78]
+_0224BBE0:
+ ldr r0, [sp, #0x80]
+ cmp r0, #0
+ bne _0224BCE2
+ ldr r0, [sp, #0xb4]
+ cmp r0, #1
+ bls _0224BC0E
+ ldr r0, [sp, #0x70]
+ cmp r0, #6
+ ble _0224BC08
+ lsl r1, r0, #1
+ ldr r0, _0224BDE4 ; =0x0225E284
+ ldr r2, [sp, #0x7c]
+ ldrb r0, [r0, r1]
+ mul r0, r2
+ ldr r2, _0224BDE8 ; =0x0225E285
+ ldrb r1, [r2, r1]
+ bl _s32_div_f
+ str r0, [sp, #0x84]
+ b _0224BC24
+_0224BC08:
+ ldr r0, [sp, #0x7c]
+ str r0, [sp, #0x84]
+ b _0224BC24
+_0224BC0E:
+ ldr r0, [sp, #0x70]
+ ldr r2, [sp, #0x7c]
+ lsl r1, r0, #1
+ ldr r0, _0224BDE4 ; =0x0225E284
+ ldrb r0, [r0, r1]
+ mul r0, r2
+ ldr r2, _0224BDE8 ; =0x0225E285
+ ldrb r1, [r2, r1]
+ bl _s32_div_f
+ str r0, [sp, #0x84]
+_0224BC24:
+ ldr r0, [sp, #0x84]
+ add r1, r0, #0
+ ldr r0, [sp, #0x60]
+ mul r1, r4
+ str r1, [sp, #0x84]
+ lsl r0, r0, #1
+ mov r1, #5
+ bl _s32_div_f
+ add r1, r0, #2
+ ldr r0, [sp, #0x84]
+ mul r1, r0
+ ldr r0, [sp, #0xb4]
+ str r1, [sp, #0x84]
+ cmp r0, #1
+ bls _0224BC60
+ ldr r0, [sp, #0x6c]
+ cmp r0, #6
+ bge _0224BC76
+ lsl r1, r0, #1
+ ldr r0, _0224BDE4 ; =0x0225E284
+ ldr r2, [sp, #0x78]
+ ldrb r0, [r0, r1]
+ mul r0, r2
+ ldr r2, _0224BDE8 ; =0x0225E285
+ ldrb r1, [r2, r1]
+ bl _s32_div_f
+ str r0, [sp, #0x78]
+ b _0224BC76
+_0224BC60:
+ ldr r0, [sp, #0x6c]
+ ldr r2, [sp, #0x78]
+ lsl r1, r0, #1
+ ldr r0, _0224BDE4 ; =0x0225E284
+ ldrb r0, [r0, r1]
+ mul r0, r2
+ ldr r2, _0224BDE8 ; =0x0225E285
+ ldrb r1, [r2, r1]
+ bl _s32_div_f
+ str r0, [sp, #0x78]
+_0224BC76:
+ ldr r0, [sp, #0x84]
+ ldr r1, [sp, #0x78]
+ bl _s32_div_f
+ mov r1, #0x32
+ bl _s32_div_f
+ str r0, [sp, #0x84]
+ ldr r0, [sp, #0x48]
+ mov r1, #0x10
+ tst r0, r1
+ beq _0224BC9C
+ cmp r7, #0x3e
+ beq _0224BC9C
+ ldr r0, [sp, #0x84]
+ lsr r1, r0, #0x1f
+ add r1, r0, r1
+ asr r0, r1, #1
+ str r0, [sp, #0x84]
+_0224BC9C:
+ ldr r0, [sp, #0xc]
+ mov r2, #1
+ tst r0, r2
+ beq _0224BCB0
+ ldr r0, [sp, #0xb4]
+ cmp r0, #1
+ bne _0224BCB0
+ ldr r0, [sp, #0x14]
+ cmp r0, #0xba
+ bne _0224BCB2
+_0224BCB0:
+ b _0224BDC8
+_0224BCB2:
+ ldr r0, [sp, #0x5c]
+ mov r1, #2
+ tst r0, r1
+ beq _0224BCD6
+ ldr r0, [sp, #4]
+ ldr r3, [sp, #0x20]
+ add r1, r5, #0
+ bl MOD11_022467AC
+ cmp r0, #2
+ bne _0224BCD6
+ ldr r0, [sp, #0x84]
+ mov r1, #3
+ lsl r0, r0, #1
+ bl _s32_div_f
+ str r0, [sp, #0x84]
+ b _0224BDC8
+_0224BCD6:
+ ldr r0, [sp, #0x84]
+ lsr r1, r0, #0x1f
+ add r1, r0, r1
+ asr r0, r1, #1
+ str r0, [sp, #0x84]
+ b _0224BDC8
+_0224BCE2:
+ cmp r0, #1
+ bne _0224BDC8
+ ldr r0, [sp, #0xb4]
+ cmp r0, #1
+ bls _0224BD0E
+ ldr r0, [sp, #0x68]
+ cmp r0, #6
+ ble _0224BD08
+ lsl r1, r0, #1
+ ldr r0, _0224BDE4 ; =0x0225E284
+ ldr r2, [sp, #0x74]
+ ldrb r0, [r0, r1]
+ mul r0, r2
+ ldr r2, _0224BDE8 ; =0x0225E285
+ ldrb r1, [r2, r1]
+ bl _s32_div_f
+ str r0, [sp, #0x84]
+ b _0224BD24
+_0224BD08:
+ ldr r0, [sp, #0x74]
+ str r0, [sp, #0x84]
+ b _0224BD24
+_0224BD0E:
+ ldr r0, [sp, #0x68]
+ ldr r2, [sp, #0x74]
+ lsl r1, r0, #1
+ ldr r0, _0224BDE4 ; =0x0225E284
+ ldrb r0, [r0, r1]
+ mul r0, r2
+ ldr r2, _0224BDE8 ; =0x0225E285
+ ldrb r1, [r2, r1]
+ bl _s32_div_f
+ str r0, [sp, #0x84]
+_0224BD24:
+ ldr r0, [sp, #0x84]
+ add r1, r0, #0
+ ldr r0, [sp, #0x60]
+ mul r1, r4
+ str r1, [sp, #0x84]
+ lsl r0, r0, #1
+ mov r1, #5
+ bl _s32_div_f
+ add r1, r0, #2
+ ldr r0, [sp, #0x84]
+ mul r1, r0
+ ldr r0, [sp, #0xb4]
+ str r1, [sp, #0x84]
+ cmp r0, #1
+ bls _0224BD60
+ ldr r0, [sp, #0x64]
+ cmp r0, #6
+ bge _0224BD76
+ lsl r1, r0, #1
+ ldr r0, _0224BDE4 ; =0x0225E284
+ ldr r2, [sp, #0x10]
+ ldrb r0, [r0, r1]
+ mul r0, r2
+ ldr r2, _0224BDE8 ; =0x0225E285
+ ldrb r1, [r2, r1]
+ bl _s32_div_f
+ str r0, [sp, #0x10]
+ b _0224BD76
+_0224BD60:
+ ldr r0, [sp, #0x64]
+ ldr r2, [sp, #0x10]
+ lsl r1, r0, #1
+ ldr r0, _0224BDE4 ; =0x0225E284
+ ldrb r0, [r0, r1]
+ mul r0, r2
+ ldr r2, _0224BDE8 ; =0x0225E285
+ ldrb r1, [r2, r1]
+ bl _s32_div_f
+ str r0, [sp, #0x10]
+_0224BD76:
+ ldr r0, [sp, #0x84]
+ ldr r1, [sp, #0x10]
+ bl _s32_div_f
+ mov r1, #0x32
+ bl _s32_div_f
+ str r0, [sp, #0x84]
+ ldr r0, [sp, #0xc]
+ mov r1, #2
+ tst r0, r1
+ beq _0224BDC8
+ ldr r0, [sp, #0xb4]
+ cmp r0, #1
+ bne _0224BDC8
+ ldr r0, [sp, #0x14]
+ cmp r0, #0xba
+ beq _0224BDC8
+ ldr r0, [sp, #0x5c]
+ tst r0, r1
+ beq _0224BDBE
+ ldr r0, [sp, #4]
+ ldr r3, [sp, #0x20]
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD11_022467AC
+ cmp r0, #2
+ bne _0224BDBE
+ ldr r0, [sp, #0x84]
+ mov r1, #3
+ lsl r0, r0, #1
+ bl _s32_div_f
+ str r0, [sp, #0x84]
+ b _0224BDC8
+_0224BDBE:
+ ldr r0, [sp, #0x84]
+ lsr r1, r0, #0x1f
+ add r1, r0, r1
+ asr r0, r1, #1
+ str r0, [sp, #0x84]
+_0224BDC8:
+ ldr r0, [sp, #0x5c]
+ mov r1, #2
+ add r4, r0, #0
+ and r4, r1
+ beq _0224BE16
+ ldr r0, [sp, #0x18]
+ add r1, r5, r0
+ ldr r0, _0224BDEC ; =0x000003E6
+ b _0224BDF0
+ nop
+_0224BDDC: .word 0x0225E2BA
+_0224BDE0: .word 0x000003DE
+_0224BDE4: .word 0x0225E284
+_0224BDE8: .word 0x0225E285
+_0224BDEC: .word 0x000003E6
+_0224BDF0:
+ ldrh r0, [r1, r0]
+ cmp r0, #4
+ bne _0224BE16
+ ldr r0, [sp, #4]
+ ldr r3, [sp, #0x20]
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD11_022467AC
+ cmp r0, #2
+ bne _0224BE16
+ ldr r0, [sp, #0x84]
+ lsl r1, r0, #1
+ add r1, r0, r1
+ asr r0, r1, #1
+ lsr r0, r0, #0x1e
+ add r0, r1, r0
+ asr r0, r0, #2
+ str r0, [sp, #0x84]
+_0224BE16:
+ cmp r4, #0
+ beq _0224BE46
+ ldr r0, [sp, #0x18]
+ add r1, r5, r0
+ ldr r0, _0224BF08 ; =0x000003E6
+ ldrh r0, [r1, r0]
+ cmp r0, #8
+ bne _0224BE46
+ ldr r0, [sp, #4]
+ ldr r3, [sp, #0x20]
+ add r1, r5, #0
+ mov r2, #0
+ bl MOD11_022467AC
+ cmp r0, #2
+ blo _0224BE46
+ ldr r0, [sp, #0x84]
+ lsl r1, r0, #1
+ add r1, r0, r1
+ asr r0, r1, #1
+ lsr r0, r0, #0x1e
+ add r0, r1, r0
+ asr r0, r0, #2
+ str r0, [sp, #0x84]
+_0224BE46:
+ mov r0, #0xd
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224BEDE
+ mov r0, #0x4c
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224BEDE
+ ldr r0, [sp, #0xa0]
+ mov r1, #3
+ tst r0, r1
+ beq _0224BE9A
+ cmp r6, #0xa
+ beq _0224BE80
+ cmp r6, #0xb
+ beq _0224BE8C
+ b _0224BE9A
+_0224BE80:
+ ldr r0, [sp, #0x84]
+ lsr r1, r0, #0x1f
+ add r1, r0, r1
+ asr r0, r1, #1
+ str r0, [sp, #0x84]
+ b _0224BE9A
+_0224BE8C:
+ ldr r1, [sp, #0x84]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ bl _s32_div_f
+ str r0, [sp, #0x84]
+_0224BE9A:
+ ldr r1, _0224BF0C ; =0x000080CF
+ ldr r0, [sp, #0xa0]
+ tst r0, r1
+ beq _0224BEB2
+ ldr r0, [sp, #8]
+ cmp r0, #0x4c
+ bne _0224BEB2
+ ldr r0, [sp, #0x84]
+ lsr r1, r0, #0x1f
+ add r1, r0, r1
+ asr r0, r1, #1
+ str r0, [sp, #0x84]
+_0224BEB2:
+ ldr r0, [sp, #0xa0]
+ mov r1, #0x30
+ tst r0, r1
+ beq _0224BEDE
+ cmp r6, #0xa
+ beq _0224BEC4
+ cmp r6, #0xb
+ beq _0224BED4
+ b _0224BEDE
+_0224BEC4:
+ ldr r1, [sp, #0x84]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ bl _s32_div_f
+ str r0, [sp, #0x84]
+ b _0224BEDE
+_0224BED4:
+ ldr r0, [sp, #0x84]
+ lsr r1, r0, #0x1f
+ add r1, r0, r1
+ asr r0, r1, #1
+ str r0, [sp, #0x84]
+_0224BEDE:
+ ldr r1, [sp, #0x24]
+ add r0, r5, #0
+ mov r2, #0x49
+ mov r3, #0
+ bl MOD11_02243420
+ cmp r0, #0
+ beq _0224BF00
+ cmp r6, #0xa
+ bne _0224BF00
+ ldr r1, [sp, #0x84]
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0xa
+ bl _s32_div_f
+ str r0, [sp, #0x84]
+_0224BF00:
+ ldr r0, [sp, #0x84]
+ add r0, r0, #2
+ add sp, #0x8c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224BF08: .word 0x000003E6
+_0224BF0C: .word 0x000080CF
+
+ thumb_func_start MOD11_0224BF10
+MOD11_0224BF10: ; 0x0224BF10
+ push {r4, lr}
+ add r4, r1, #0
+ beq _0224BF36
+ bl LCRandom
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1c
+ sub r1, r1, r2
+ mov r0, #0x1c
+ ror r1, r0
+ add r0, r2, r1
+ mov r1, #0x64
+ sub r0, r1, r0
+ mul r0, r4
+ bl _s32_div_f
+ add r4, r0, #0
+ bne _0224BF36
+ mov r4, #1
+_0224BF36:
+ add r0, r4, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224BF3C
+MOD11_0224BF3C: ; 0x0224BF3C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ mov r7, #1
+ str r1, [sp]
+ str r2, [sp, #4]
+ str r3, [sp, #8]
+ bl MOD11_02249B4C
+ add r1, r0, #0
+ add r0, r4, #0
+ add r2, r7, #0
+ bl MOD11_0224C12C
+ add r3, r0, #0
+ ldr r1, [sp]
+ mov r0, #0xc0
+ mul r0, r1
+ mov r1, #0xb5
+ lsl r1, r1, #6
+ add r2, r4, r0
+ add r0, r1, #0
+ add r0, #0x70
+ ldr r0, [r2, r0]
+ ldr r6, [sp, #4]
+ str r0, [sp, #0x10]
+ mov r0, #0xc0
+ mul r0, r6
+ add r6, r4, r0
+ add r0, r1, #0
+ add r0, #0x80
+ ldr r0, [r6, r0]
+ ldrh r5, [r2, r1]
+ add r1, #0x27
+ str r0, [sp, #0xc]
+ ldrb r0, [r2, r1]
+ cmp r0, #0x69
+ bne _0224BF8C
+ add r2, r7, #0
+ b _0224BF8E
+_0224BF8C:
+ mov r2, #0
+_0224BF8E:
+ cmp r3, #0x42
+ bne _0224BF96
+ mov r6, #1
+ b _0224BF98
+_0224BF96:
+ mov r6, #0
+_0224BF98:
+ mov r1, #1
+ ldr r0, [sp, #0x10]
+ lsl r1, r1, #0x14
+ tst r0, r1
+ beq _0224BFA6
+ mov r0, #1
+ b _0224BFA8
+_0224BFA6:
+ mov r0, #0
+_0224BFA8:
+ cmp r3, #0x58
+ bne _0224BFB4
+ cmp r5, #0x71
+ bne _0224BFB4
+ mov r1, #1
+ b _0224BFB6
+_0224BFB4:
+ mov r1, #0
+_0224BFB6:
+ cmp r3, #0x5b
+ bne _0224BFC2
+ cmp r5, #0x53
+ bne _0224BFC2
+ mov r3, #1
+ b _0224BFC4
+_0224BFC2:
+ mov r3, #0
+_0224BFC4:
+ lsl r0, r0, #1
+ add r5, r6, r0
+ ldr r0, [sp, #8]
+ add r0, r0, r5
+ add r2, r2, r0
+ lsl r0, r1, #1
+ add r1, r2, r0
+ lsl r0, r3, #1
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, #4
+ bls _0224BFE0
+ mov r5, #4
+_0224BFE0:
+ bl LCRandom
+ ldr r1, _0224C040 ; =0x0225E244
+ ldrb r1, [r1, r5]
+ bl _s32_div_f
+ cmp r1, #0
+ bne _0224C026
+ ldr r1, [sp]
+ ldr r2, [sp, #4]
+ add r0, r4, #0
+ mov r3, #4
+ bl MOD11_02246D84
+ cmp r0, #0
+ bne _0224C026
+ ldr r1, [sp]
+ ldr r2, [sp, #4]
+ add r0, r4, #0
+ mov r3, #0x4b
+ bl MOD11_02246D84
+ cmp r0, #0
+ bne _0224C026
+ mov r0, #7
+ ldr r1, [sp, #0x28]
+ lsl r0, r0, #0xc
+ tst r0, r1
+ bne _0224C026
+ mov r1, #2
+ ldr r0, [sp, #0xc]
+ lsl r1, r1, #0xe
+ tst r0, r1
+ bne _0224C026
+ mov r7, #2
+_0224C026:
+ cmp r7, #2
+ bne _0224C038
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x61
+ bne _0224C038
+ mov r7, #3
+_0224C038:
+ add r0, r7, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0224C040: .word 0x0225E244
+
+ thumb_func_start MOD11_0224C044
+MOD11_0224C044: ; 0x0224C044
+ push {r3, r4}
+ ldr r4, _0224C074 ; =0x0225E300
+ ldr r1, _0224C078 ; =0x0000FFFE
+ mov r3, #0
+_0224C04C:
+ ldrh r2, [r4]
+ cmp r0, r2
+ beq _0224C05C
+ add r4, r4, #2
+ ldrh r2, [r4]
+ add r3, r3, #1
+ cmp r2, r1
+ bne _0224C04C
+_0224C05C:
+ ldr r0, _0224C074 ; =0x0225E300
+ lsl r1, r3, #1
+ ldrh r1, [r0, r1]
+ ldr r0, _0224C078 ; =0x0000FFFE
+ cmp r1, r0
+ bne _0224C06E
+ mov r0, #1
+ pop {r3, r4}
+ bx lr
+_0224C06E:
+ mov r0, #0
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+_0224C074: .word 0x0225E300
+_0224C078: .word 0x0000FFFE
+
+ thumb_func_start MOD11_0224C07C
+MOD11_0224C07C: ; 0x0224C07C
+ push {r3, r4}
+ ldr r4, _0224C0AC ; =0x0225E300
+ ldr r1, _0224C0B0 ; =0x0000FFFF
+ mov r3, #0
+_0224C084:
+ ldrh r2, [r4]
+ cmp r0, r2
+ beq _0224C094
+ add r4, r4, #2
+ ldrh r2, [r4]
+ add r3, r3, #1
+ cmp r2, r1
+ bne _0224C084
+_0224C094:
+ ldr r0, _0224C0AC ; =0x0225E300
+ lsl r1, r3, #1
+ ldrh r1, [r0, r1]
+ ldr r0, _0224C0B0 ; =0x0000FFFF
+ cmp r1, r0
+ bne _0224C0A6
+ mov r0, #1
+ pop {r3, r4}
+ bx lr
+_0224C0A6:
+ mov r0, #0
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+_0224C0AC: .word 0x0225E300
+_0224C0B0: .word 0x0000FFFF
+
+ thumb_func_start MOD11_0224C0B4
+MOD11_0224C0B4: ; 0x0224C0B4
+ push {r4, r5}
+ lsl r1, r1, #4
+ add r4, r0, r1
+ ldr r1, _0224C0E8 ; =0x000003DE
+ ldr r3, _0224C0EC ; =0x0225E254
+ ldrh r1, [r4, r1]
+ ldr r4, _0224C0E8 ; =0x000003DE
+ mov r2, #0
+_0224C0C4:
+ ldrh r5, [r3]
+ lsl r5, r5, #4
+ add r5, r0, r5
+ ldrh r5, [r5, r4]
+ cmp r1, r5
+ beq _0224C0D8
+ add r2, r2, #1
+ add r3, r3, #2
+ cmp r2, #6
+ blo _0224C0C4
+_0224C0D8:
+ cmp r2, #6
+ bne _0224C0E2
+ mov r0, #1
+ pop {r4, r5}
+ bx lr
+_0224C0E2:
+ mov r0, #0
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+_0224C0E8: .word 0x000003DE
+_0224C0EC: .word 0x0225E254
+
+ thumb_func_start MOD11_0224C0F0
+MOD11_0224C0F0: ; 0x0224C0F0
+ push {r4, r5}
+ lsl r1, r1, #4
+ add r4, r0, r1
+ ldr r1, _0224C124 ; =0x000003DE
+ ldr r3, _0224C128 ; =0x0225E26C
+ ldrh r1, [r4, r1]
+ ldr r4, _0224C124 ; =0x000003DE
+ mov r2, #0
+_0224C100:
+ ldrh r5, [r3]
+ lsl r5, r5, #4
+ add r5, r0, r5
+ ldrh r5, [r5, r4]
+ cmp r1, r5
+ beq _0224C114
+ add r2, r2, #1
+ add r3, r3, #2
+ cmp r2, #6
+ blo _0224C100
+_0224C114:
+ cmp r2, #6
+ bne _0224C11E
+ mov r0, #1
+ pop {r4, r5}
+ bx lr
+_0224C11E:
+ mov r0, #0
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+_0224C124: .word 0x000003DE
+_0224C128: .word 0x0225E26C
+
+ thumb_func_start MOD11_0224C12C
+MOD11_0224C12C: ; 0x0224C12C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ mov r1, #0
+ add r4, r2, #0
+ bl FUN_0206E640
+ add r1, r0, #0
+ ldr r0, _0224C14C ; =0x00002120
+ ldr r0, [r5, r0]
+ bl FUN_0206EB78
+ add r1, r4, #0
+ bl FUN_0206E7DC
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0224C14C: .word 0x00002120
+
+ thumb_func_start MOD11_0224C150
+MOD11_0224C150: ; 0x0224C150
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r2, #0
+ bl MOD11_0222FF84
+ add r6, r0, #0
+ mov r4, #0
+ cmp r6, #0
+ ble _0224C174
+_0224C162:
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_02230270
+ cmp r5, r0
+ beq _0224C174
+ add r4, r4, #1
+ cmp r4, r6
+ blt _0224C162
+_0224C174:
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0224C178
+MOD11_0224C178: ; 0x0224C178
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ str r0, [sp, #4]
+ add r5, r1, #0
+ bl MOD11_0222FF84
+ str r0, [sp, #0x10]
+ mov r0, #0
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x10]
+ sub r0, r0, #1
+ str r0, [sp, #0x18]
+ cmp r0, #0
+ ble _0224C1FE
+_0224C194:
+ ldr r0, [sp, #0x14]
+ add r7, r0, #1
+ ldr r0, [sp, #0x10]
+ cmp r7, r0
+ bge _0224C1F2
+ ldr r0, [sp, #0x14]
+ add r0, r5, r0
+ str r0, [sp, #0xc]
+_0224C1A4:
+ ldr r1, [sp, #0xc]
+ ldr r0, _0224C204 ; =0x000021E8
+ ldrb r6, [r1, r0]
+ add r1, r5, r7
+ ldrb r4, [r1, r0]
+ lsl r0, r6, #4
+ str r1, [sp, #8]
+ add r1, r5, r0
+ ldr r0, _0224C208 ; =0x000021B4
+ ldr r0, [r1, r0]
+ lsl r1, r4, #4
+ add r2, r5, r1
+ ldr r1, _0224C208 ; =0x000021B4
+ ldr r1, [r2, r1]
+ cmp r0, r1
+ bne _0224C1EA
+ cmp r0, #1
+ beq _0224C1CC
+ mov r0, #1
+ b _0224C1CE
+_0224C1CC:
+ mov r0, #0
+_0224C1CE:
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ add r2, r6, #0
+ add r3, r4, #0
+ bl MOD11_02244248
+ cmp r0, #0
+ beq _0224C1EA
+ ldr r1, [sp, #0xc]
+ ldr r0, _0224C204 ; =0x000021E8
+ strb r4, [r1, r0]
+ ldr r1, [sp, #8]
+ strb r6, [r1, r0]
+_0224C1EA:
+ ldr r0, [sp, #0x10]
+ add r7, r7, #1
+ cmp r7, r0
+ blt _0224C1A4
+_0224C1F2:
+ ldr r0, [sp, #0x14]
+ add r1, r0, #1
+ ldr r0, [sp, #0x18]
+ str r1, [sp, #0x14]
+ cmp r1, r0
+ blt _0224C194
+_0224C1FE:
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0224C204: .word 0x000021E8
+_0224C208: .word 0x000021B4
+
+ thumb_func_start MOD11_0224C20C
+MOD11_0224C20C: ; 0x0224C20C
+ push {r4, r5}
+ mov r4, #0xc0
+ mul r4, r1
+ add r5, r0, r4
+ ldr r0, _0224C24C ; =0x00002DB0
+ mov r1, #1
+ ldr r4, [r5, r0]
+ lsl r1, r1, #0x18
+ mov r3, #0
+ tst r1, r4
+ bne _0224C22C
+ add r0, #0x10
+ ldr r1, [r5, r0]
+ ldr r0, _0224C250 ; =0x200400C0
+ tst r0, r1
+ beq _0224C244
+_0224C22C:
+ ldr r4, _0224C254 ; =0x0225E2D8
+ mov r1, #0
+_0224C230:
+ ldr r0, [r4]
+ cmp r2, r0
+ bne _0224C23A
+ mov r3, #1
+ b _0224C246
+_0224C23A:
+ add r1, r1, #1
+ add r4, r4, #4
+ cmp r1, #0xa
+ blo _0224C230
+ b _0224C246
+_0224C244:
+ mov r3, #1
+_0224C246:
+ add r0, r3, #0
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+_0224C24C: .word 0x00002DB0
+_0224C250: .word 0x200400C0
+_0224C254: .word 0x0225E2D8
+
+ thumb_func_start MOD11_0224C258
+MOD11_0224C258: ; 0x0224C258
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r1, #0
+ ldr r1, [r5, #0x64]
+ str r0, [sp]
+ add r0, r5, #0
+ add r4, r2, #0
+ mov r6, #0
+ bl MOD11_02249D90
+ str r0, [sp, #0xc]
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ add r2, r6, #0
+ bl MOD11_02249DA4
+ str r0, [sp, #0x10]
+ ldr r1, [r5, #0x6c]
+ add r0, r5, #0
+ bl MOD11_02249D90
+ add r7, r0, #0
+ ldr r1, [r5, #0x6c]
+ add r0, r5, #0
+ add r2, r6, #0
+ bl MOD11_02249DA4
+ str r0, [sp, #8]
+ ldr r0, [sp]
+ ldr r1, [r5, #0x64]
+ bl MOD11_02230270
+ str r0, [sp, #4]
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x57
+ bne _0224C2F4
+ ldr r0, _0224C41C ; =0x0000213C
+ ldr r1, [r5, r0]
+ mov r0, #2
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _0224C2F4
+ ldr r0, [r5, #0x64]
+ mov r1, #0x1c
+ mul r1, r0
+ add r2, r5, r1
+ mov r1, #0xbb
+ lsl r1, r1, #2
+ ldr r2, [r2, r1]
+ cmp r2, #0
+ beq _0224C2F4
+ ldr r1, [r5, #0x6c]
+ cmp r0, r1
+ beq _0224C2F4
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r3, _0224C420 ; =0x00002D8C
+ add r1, r5, r1
+ ldr r0, [r1, r3]
+ add r3, r3, #4
+ ldr r1, [r1, r3]
+ cmp r0, r1
+ bhs _0224C2F4
+ cmp r0, #0
+ beq _0224C2F4
+ ldr r1, [sp, #0x10]
+ neg r0, r2
+ bl MOD11_022476C0
+ ldr r1, _0224C424 ; =0x0000215C
+ mov r6, #1
+ str r0, [r5, r1]
+ mov r0, #0x46
+ ldr r1, [r5, #0x64]
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r0, #0xd5
+ str r0, [r4]
+_0224C2F4:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0x61
+ bne _0224C356
+ ldr r1, [r5, #0x64]
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _0224C356
+ ldr r0, _0224C41C ; =0x0000213C
+ ldr r1, [r5, r0]
+ mov r0, #2
+ lsl r0, r0, #0xc
+ tst r0, r1
+ beq _0224C356
+ ldr r0, _0224C428 ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ mov r0, #0x3e
+ lsl r0, r0, #4
+ ldrb r0, [r1, r0]
+ cmp r0, #2
+ beq _0224C356
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ add r2, r1, #0
+ mul r2, r0
+ ldr r3, _0224C420 ; =0x00002D8C
+ add r2, r5, r2
+ ldr r1, [r2, r3]
+ cmp r1, #0
+ beq _0224C356
+ add r1, r3, #4
+ ldr r1, [r2, r1]
+ sub r0, #0xc1
+ mul r0, r1
+ mov r1, #0xa
+ bl MOD11_022476C0
+ ldr r1, _0224C424 ; =0x0000215C
+ mov r6, #1
+ str r0, [r5, r1]
+ mov r0, #0x46
+ ldr r1, [r5, #0x64]
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r0, #0xd6
+ str r0, [r4]
+_0224C356:
+ cmp r7, #0x2d
+ bne _0224C3AA
+ ldr r1, [r5, #0x64]
+ mov r0, #0xc0
+ mul r0, r1
+ add r2, r5, r0
+ ldr r0, _0224C420 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _0224C3AA
+ add r0, r5, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x62
+ beq _0224C3AA
+ ldr r1, [r5, #0x6c]
+ mov r0, #0x1c
+ mul r0, r1
+ add r1, r5, r0
+ mov r0, #0xb6
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0224C3AA
+ ldr r0, [r5, #0x64]
+ mov r1, #0xc0
+ add r2, r0, #0
+ mul r2, r1
+ ldr r0, _0224C42C ; =0x00002D90
+ add r2, r5, r2
+ ldr r2, [r2, r0]
+ sub r1, #0xc1
+ add r0, r2, #0
+ mul r0, r1
+ ldr r1, [sp, #8]
+ bl MOD11_022476C0
+ ldr r1, _0224C424 ; =0x0000215C
+ mov r6, #1
+ str r0, [r5, r1]
+ lsr r0, r1, #5
+ str r0, [r4]
+_0224C3AA:
+ cmp r7, #0x73
+ bne _0224C416
+ ldr r0, [r5, #0x64]
+ mov r1, #0xc0
+ mul r1, r0
+ add r3, r5, r1
+ ldr r1, _0224C420 ; =0x00002D8C
+ ldr r2, [r3, r1]
+ cmp r2, #0
+ beq _0224C416
+ add r1, #0x2c
+ ldrh r1, [r3, r1]
+ cmp r1, #0
+ bne _0224C416
+ add r1, r5, r0
+ ldr r0, _0224C430 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ bl MaskOfFlagNo
+ ldr r1, [sp, #4]
+ lsl r1, r1, #3
+ add r2, r5, r1
+ mov r1, #0x71
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ lsl r1, r1, #3
+ lsr r1, r1, #0x1a
+ tst r0, r1
+ bne _0224C416
+ ldr r1, [r5, #0x6c]
+ mov r0, #0x1c
+ mul r0, r1
+ add r2, r5, r0
+ mov r0, #0xb6
+ lsl r0, r0, #2
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ bne _0224C3FE
+ add r0, #8
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _0224C416
+_0224C3FE:
+ ldr r0, _0224C428 ; =0x00003044
+ ldr r0, [r5, r0]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ ldr r0, _0224C434 ; =0x000003E9
+ ldrb r1, [r1, r0]
+ mov r0, #1
+ tst r1, r0
+ beq _0224C416
+ mov r1, #0xd8
+ str r1, [r4]
+ add r6, r0, #0
+_0224C416:
+ add r0, r6, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224C41C: .word 0x0000213C
+_0224C420: .word 0x00002D8C
+_0224C424: .word 0x0000215C
+_0224C428: .word 0x00003044
+_0224C42C: .word 0x00002D90
+_0224C430: .word 0x0000219C
+_0224C434: .word 0x000003E9
+
+ thumb_func_start MOD11_0224C438
+MOD11_0224C438: ; 0x0224C438
+ push {r4, r5, r6, lr}
+ add r6, r2, #0
+ add r4, r1, #0
+ add r1, r6, #0
+ add r5, r0, #0
+ bl MOD11_02246D1C
+ cmp r0, #0x2e
+ bne _0224C46A
+ cmp r6, #0xff
+ beq _0224C46A
+ ldr r0, _0224C46C ; =0x00002D6C
+ add r1, r5, r0
+ mov r0, #0xc0
+ mul r0, r4
+ add r0, r1, r0
+ lsl r1, r4, #1
+ add r2, r5, r1
+ ldr r1, _0224C470 ; =0x000030BC
+ ldrh r2, [r2, r1]
+ ldrb r1, [r0, r2]
+ cmp r1, #0
+ beq _0224C46A
+ sub r1, r1, #1
+ strb r1, [r0, r2]
+_0224C46A:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0224C46C: .word 0x00002D6C
+_0224C470: .word 0x000030BC
+
+ thumb_func_start MOD11_0224C474
+MOD11_0224C474: ; 0x0224C474
+ push {r4, lr}
+ add r4, r1, #0
+ cmp r2, #0xc
+ bhi _0224C528
+ add r1, r2, r2
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0224C488: ; jump table
+ .short _0224C4A2 - _0224C488 - 2 ; case 0
+ .short _0224C4B4 - _0224C488 - 2 ; case 1
+ .short _0224C4CA - _0224C488 - 2 ; case 2
+ .short _0224C4D2 - _0224C488 - 2 ; case 3
+ .short _0224C4DA - _0224C488 - 2 ; case 4
+ .short _0224C4E0 - _0224C488 - 2 ; case 5
+ .short _0224C4E6 - _0224C488 - 2 ; case 6
+ .short _0224C4F2 - _0224C488 - 2 ; case 7
+ .short _0224C4FE - _0224C488 - 2 ; case 8
+ .short _0224C508 - _0224C488 - 2 ; case 9
+ .short _0224C510 - _0224C488 - 2 ; case 10
+ .short _0224C516 - _0224C488 - 2 ; case 11
+ .short _0224C51E - _0224C488 - 2 ; case 12
+_0224C4A2:
+ add r1, r3, #0
+ bl MOD11_02230270
+ lsl r0, r0, #2
+ add r1, r4, r0
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ pop {r4, pc}
+_0224C4B4:
+ add r1, r3, #0
+ bl MOD11_02230270
+ lsl r0, r0, #3
+ add r1, r4, r0
+ mov r0, #0x71
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x1d
+ pop {r4, pc}
+_0224C4CA:
+ ldr r0, _0224C530 ; =0x0000219C
+ add r1, r4, r3
+ ldrb r0, [r1, r0]
+ pop {r4, pc}
+_0224C4D2:
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ pop {r4, pc}
+_0224C4DA:
+ ldr r0, _0224C534 ; =0x00003109
+ ldrb r0, [r4, r0]
+ pop {r4, pc}
+_0224C4E0:
+ ldr r0, _0224C538 ; =0x0000311D
+ ldrb r0, [r4, r0]
+ pop {r4, pc}
+_0224C4E6:
+ lsl r0, r3, #2
+ add r1, r4, r0
+ mov r0, #0x55
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ pop {r4, pc}
+_0224C4F2:
+ lsl r0, r3, #2
+ add r1, r4, r0
+ mov r0, #0x59
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ pop {r4, pc}
+_0224C4FE:
+ lsl r0, r3, #4
+ add r1, r4, r0
+ ldr r0, _0224C53C ; =0x000021A8
+ ldr r0, [r1, r0]
+ pop {r4, pc}
+_0224C508:
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldrb r0, [r4, r0]
+ pop {r4, pc}
+_0224C510:
+ ldr r0, _0224C540 ; =0x00003108
+ ldrb r0, [r4, r0]
+ pop {r4, pc}
+_0224C516:
+ ldr r0, _0224C544 ; =0x000003DA
+ add r1, r4, r3
+ ldrb r0, [r1, r0]
+ pop {r4, pc}
+_0224C51E:
+ lsl r0, r3, #4
+ add r1, r4, r0
+ ldr r0, _0224C548 ; =0x000021B0
+ ldr r0, [r1, r0]
+ pop {r4, pc}
+_0224C528:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_0224C530: .word 0x0000219C
+_0224C534: .word 0x00003109
+_0224C538: .word 0x0000311D
+_0224C53C: .word 0x000021A8
+_0224C540: .word 0x00003108
+_0224C544: .word 0x000003DA
+_0224C548: .word 0x000021B0
+
+ thumb_func_start MOD11_0224C54C
+MOD11_0224C54C: ; 0x0224C54C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r4, [sp, #0x10]
+ cmp r2, #0xb
+ bhi _0224C5CA
+ add r1, r2, r2
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0224C562: ; jump table
+ .short _0224C57A - _0224C562 - 2 ; case 0
+ .short _0224C58C - _0224C562 - 2 ; case 1
+ .short _0224C5AA - _0224C562 - 2 ; case 2
+ .short _0224C5B2 - _0224C562 - 2 ; case 3
+ .short _0224C5CA - _0224C562 - 2 ; case 4
+ .short _0224C5CA - _0224C562 - 2 ; case 5
+ .short _0224C5CA - _0224C562 - 2 ; case 6
+ .short _0224C5CA - _0224C562 - 2 ; case 7
+ .short _0224C5CA - _0224C562 - 2 ; case 8
+ .short _0224C5BA - _0224C562 - 2 ; case 9
+ .short _0224C5CA - _0224C562 - 2 ; case 10
+ .short _0224C5C2 - _0224C562 - 2 ; case 11
+_0224C57A:
+ add r1, r3, #0
+ bl MOD11_02230270
+ lsl r0, r0, #2
+ add r1, r5, r0
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ str r4, [r1, r0]
+ pop {r3, r4, r5, pc}
+_0224C58C:
+ add r1, r3, #0
+ bl MOD11_02230270
+ mov r1, #0x71
+ lsl r1, r1, #2
+ add r1, r5, r1
+ lsl r0, r0, #3
+ ldr r3, [r1, r0]
+ ldr r2, _0224C5D0 ; =0xFFFF8FFF
+ and r3, r2
+ lsl r2, r4, #0x1d
+ lsr r2, r2, #0x11
+ orr r2, r3
+ str r2, [r1, r0]
+ pop {r3, r4, r5, pc}
+_0224C5AA:
+ ldr r0, _0224C5D4 ; =0x0000219C
+ add r1, r5, r3
+ strb r4, [r1, r0]
+ pop {r3, r4, r5, pc}
+_0224C5B2:
+ mov r0, #0x15
+ lsl r0, r0, #4
+ str r4, [r5, r0]
+ pop {r3, r4, r5, pc}
+_0224C5BA:
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ strb r4, [r5, r0]
+ pop {r3, r4, r5, pc}
+_0224C5C2:
+ ldr r0, _0224C5D8 ; =0x000003DA
+ add r1, r5, r3
+ strb r4, [r1, r0]
+ pop {r3, r4, r5, pc}
+_0224C5CA:
+ bl ErrorHandling
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0224C5D0: .word 0xFFFF8FFF
+_0224C5D4: .word 0x0000219C
+_0224C5D8: .word 0x000003DA
+
+ thumb_func_start MOD11_0224C5DC
+MOD11_0224C5DC: ; 0x0224C5DC
+ push {r4, lr}
+ add r3, r0, #0
+ add r3, #0x88
+ str r1, [r3]
+ add r3, r0, #0
+ ldr r1, _0224C640 ; =0x007FFFFF
+ add r4, r2, #0
+ and r4, r1
+ add r3, #0x8c
+ str r4, [r3]
+ lsl r1, r1, #0x17
+ add r3, r2, #0
+ and r3, r1
+ add r1, r0, #0
+ add r1, #0x90
+ str r3, [r1]
+ mov r3, #1
+ lsl r3, r3, #0x1e
+ add r1, r2, #0
+ tst r1, r3
+ beq _0224C60E
+ ldr r1, [r0, #0x64]
+ add r0, #0x94
+ str r1, [r0]
+ b _0224C62E
+_0224C60E:
+ lsl r1, r3, #1
+ tst r1, r2
+ beq _0224C61C
+ ldr r1, [r0, #0x6c]
+ add r0, #0x94
+ str r1, [r0]
+ b _0224C62E
+_0224C61C:
+ lsr r1, r3, #1
+ tst r1, r2
+ bne _0224C628
+ lsr r1, r3, #2
+ tst r1, r2
+ beq _0224C62E
+_0224C628:
+ mov r1, #0
+ add r0, #0x94
+ str r1, [r0]
+_0224C62E:
+ cmp r4, #0x91
+ blo _0224C636
+ bl ErrorHandling
+_0224C636:
+ ldr r0, _0224C644 ; =0x0225E4C8
+ lsl r1, r4, #2
+ ldr r0, [r0, r1]
+ pop {r4, pc}
+ nop
+_0224C640: .word 0x007FFFFF
+_0224C644: .word 0x0225E4C8
+
+ thumb_func_start MOD11_0224C648
+MOD11_0224C648: ; 0x0224C648
+ push {r3, r4, r5, lr}
+ ldr r1, _0224C6D0 ; =0x0000213C
+ add r5, r2, #0
+ ldr r2, [r0, r1]
+ mov r0, #2
+ lsl r0, r0, #0xa
+ add r1, r2, #0
+ ldr r4, [sp, #0x14]
+ tst r1, r0
+ bne _0224C672
+ lsl r0, r0, #4
+ tst r0, r2
+ bne _0224C672
+ cmp r3, #0
+ beq _0224C672
+ add r0, r3, #0
+ mul r0, r5
+ mov r1, #0xa
+ bl MOD11_022476C0
+ add r3, r0, #0
+_0224C672:
+ cmp r5, #0
+ beq _0224C680
+ cmp r5, #5
+ beq _0224C692
+ cmp r5, #0x14
+ beq _0224C6B0
+ b _0224C6CC
+_0224C680:
+ ldr r1, [r4]
+ mov r0, #8
+ orr r1, r0
+ mov r0, #4
+ bic r1, r0
+ mov r0, #2
+ bic r1, r0
+ str r1, [r4]
+ b _0224C6CC
+_0224C692:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ beq _0224C6CC
+ ldr r1, [r4]
+ mov r0, #2
+ tst r0, r1
+ beq _0224C6A8
+ mov r0, #2
+ bic r1, r0
+ str r1, [r4]
+ b _0224C6CC
+_0224C6A8:
+ mov r0, #4
+ orr r0, r1
+ str r0, [r4]
+ b _0224C6CC
+_0224C6B0:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ beq _0224C6CC
+ ldr r1, [r4]
+ mov r0, #4
+ tst r0, r1
+ beq _0224C6C6
+ mov r0, #4
+ bic r1, r0
+ str r1, [r4]
+ b _0224C6CC
+_0224C6C6:
+ mov r0, #2
+ orr r0, r1
+ str r0, [r4]
+_0224C6CC:
+ add r0, r3, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0224C6D0: .word 0x0000213C
+
+ thumb_func_start MOD11_0224C6D4
+MOD11_0224C6D4: ; 0x0224C6D4
+ lsl r1, r1, #4
+ add r2, r0, r1
+ ldr r1, _0224C738 ; =0x000003DE
+ ldrh r3, [r2, r1]
+ cmp r3, #0x9b
+ bgt _0224C706
+ cmp r3, #0x97
+ blt _0224C6EC
+ beq _0224C726
+ cmp r3, #0x9b
+ beq _0224C726
+ b _0224C732
+_0224C6EC:
+ cmp r3, #0x27
+ bgt _0224C6F8
+ bge _0224C726
+ cmp r3, #0x1a
+ beq _0224C726
+ b _0224C732
+_0224C6F8:
+ cmp r3, #0x4b
+ bgt _0224C700
+ beq _0224C726
+ b _0224C732
+_0224C700:
+ cmp r3, #0x91
+ beq _0224C726
+ b _0224C732
+_0224C706:
+ mov r2, #1
+ lsl r2, r2, #8
+ cmp r3, r2
+ bgt _0224C716
+ bge _0224C726
+ cmp r3, #0xff
+ beq _0224C726
+ b _0224C732
+_0224C716:
+ add r1, r2, #7
+ cmp r3, r1
+ bgt _0224C720
+ beq _0224C726
+ b _0224C732
+_0224C720:
+ add r2, #0x11
+ cmp r3, r2
+ bne _0224C732
+_0224C726:
+ ldr r1, _0224C73C ; =0x0000213C
+ ldr r1, [r0, r1]
+ mov r0, #2
+ lsl r0, r0, #8
+ and r0, r1
+ bx lr
+_0224C732:
+ mov r0, #1
+ bx lr
+ nop
+_0224C738: .word 0x000003DE
+_0224C73C: .word 0x0000213C
+
+ thumb_func_start MOD11_0224C740
+MOD11_0224C740: ; 0x0224C740
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ cmp r2, #0x1b
+ bne _0224C756
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r5, r0
+ ldr r0, _0224C80C ; =0x00002D64
+ ldrb r4, [r1, r0]
+ b _0224C76A
+_0224C756:
+ cmp r2, #0x1c
+ bne _0224C766
+ mov r0, #0xc0
+ mul r0, r6
+ add r1, r5, r0
+ ldr r0, _0224C810 ; =0x00002D65
+ ldrb r4, [r1, r0]
+ b _0224C76A
+_0224C766:
+ bl ErrorHandling
+_0224C76A:
+ mov r0, #0xc0
+ mul r0, r6
+ mov r2, #0xb5
+ add r1, r5, r0
+ lsl r2, r2, #6
+ ldrh r3, [r1, r2]
+ ldr r0, _0224C814 ; =0x000001ED
+ cmp r3, r0
+ bne _0224C806
+ add r0, r2, #0
+ add r0, #0x27
+ ldrb r0, [r1, r0]
+ cmp r0, #0x79
+ bne _0224C806
+ add r2, #0x78
+ ldrh r1, [r1, r2]
+ add r0, r5, #0
+ mov r2, #1
+ bl MOD11_0224C12C
+ sub r0, #0x7d
+ cmp r0, #0xf
+ bhi _0224C804
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0224C7A4: ; jump table
+ .short _0224C7C4 - _0224C7A4 - 2 ; case 0
+ .short _0224C7C8 - _0224C7A4 - 2 ; case 1
+ .short _0224C7CC - _0224C7A4 - 2 ; case 2
+ .short _0224C7D0 - _0224C7A4 - 2 ; case 3
+ .short _0224C7D4 - _0224C7A4 - 2 ; case 4
+ .short _0224C7D8 - _0224C7A4 - 2 ; case 5
+ .short _0224C7DC - _0224C7A4 - 2 ; case 6
+ .short _0224C7E0 - _0224C7A4 - 2 ; case 7
+ .short _0224C7E4 - _0224C7A4 - 2 ; case 8
+ .short _0224C7E8 - _0224C7A4 - 2 ; case 9
+ .short _0224C7EC - _0224C7A4 - 2 ; case 10
+ .short _0224C7F0 - _0224C7A4 - 2 ; case 11
+ .short _0224C7F4 - _0224C7A4 - 2 ; case 12
+ .short _0224C7F8 - _0224C7A4 - 2 ; case 13
+ .short _0224C7FC - _0224C7A4 - 2 ; case 14
+ .short _0224C800 - _0224C7A4 - 2 ; case 15
+_0224C7C4:
+ mov r4, #0xa
+ b _0224C806
+_0224C7C8:
+ mov r4, #0xb
+ b _0224C806
+_0224C7CC:
+ mov r4, #0xd
+ b _0224C806
+_0224C7D0:
+ mov r4, #0xc
+ b _0224C806
+_0224C7D4:
+ mov r4, #0xf
+ b _0224C806
+_0224C7D8:
+ mov r4, #1
+ b _0224C806
+_0224C7DC:
+ mov r4, #3
+ b _0224C806
+_0224C7E0:
+ mov r4, #4
+ b _0224C806
+_0224C7E4:
+ mov r4, #2
+ b _0224C806
+_0224C7E8:
+ mov r4, #0xe
+ b _0224C806
+_0224C7EC:
+ mov r4, #6
+ b _0224C806
+_0224C7F0:
+ mov r4, #5
+ b _0224C806
+_0224C7F4:
+ mov r4, #7
+ b _0224C806
+_0224C7F8:
+ mov r4, #0x10
+ b _0224C806
+_0224C7FC:
+ mov r4, #0x11
+ b _0224C806
+_0224C800:
+ mov r4, #8
+ b _0224C806
+_0224C804:
+ mov r4, #0
+_0224C806:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ nop
+_0224C80C: .word 0x00002D64
+_0224C810: .word 0x00002D65
+_0224C814: .word 0x000001ED
+
+ thumb_func_start MOD11_0224C818
+MOD11_0224C818: ; 0x0224C818
+ lsl r1, r1, #3
+ add r3, r0, r1
+ mov r2, #0
+ mov r0, #0x37
+ add r1, r2, #0
+ lsl r0, r0, #4
+_0224C824:
+ add r2, r2, #1
+ strh r1, [r3, r0]
+ add r3, r3, #2
+ cmp r2, #4
+ blt _0224C824
+ bx lr
+
+ thumb_func_start MOD11_0224C830
+MOD11_0224C830: ; 0x0224C830
+ add r1, r0, r1
+ mov r0, #0x39
+ mov r2, #0
+ lsl r0, r0, #4
+ strb r2, [r1, r0]
+ bx lr
+
+ thumb_func_start MOD11_0224C83C
+MOD11_0224C83C: ; 0x0224C83C
+ lsl r1, r1, #1
+ add r1, r0, r1
+ mov r0, #0xe5
+ mov r2, #0
+ lsl r0, r0, #2
+ strh r2, [r1, r0]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0224C84C
+MOD11_0224C84C: ; 0x0224C84C
+ push {r4, r5, r6, lr}
+ add r4, r2, #0
+ add r3, r0, #0
+ mov r2, #0xc0
+ add r5, r1, #0
+ mul r1, r2
+ ldr r6, _0224C8BC ; =0x00002D67
+ add r1, r3, r1
+ ldrb r1, [r1, r6]
+ mov r0, #0xff
+ cmp r1, #0x3b
+ beq _0224C890
+ cmp r1, #0x24
+ beq _0224C890
+ cmp r1, #0x79
+ beq _0224C890
+ mul r2, r4
+ add r2, r3, r2
+ ldrb r2, [r2, r6]
+ cmp r2, #0x3b
+ beq _0224C890
+ cmp r2, #0x24
+ beq _0224C890
+ cmp r2, #0x79
+ beq _0224C890
+ bl LCRandom
+ mov r1, #1
+ tst r0, r1
+ beq _0224C88C
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_0224C88C:
+ add r0, r5, #0
+ pop {r4, r5, r6, pc}
+_0224C890:
+ cmp r1, #0x3b
+ beq _0224C8A0
+ cmp r1, #0x24
+ beq _0224C8A0
+ cmp r1, #0x79
+ beq _0224C8A0
+ add r0, r5, #0
+ pop {r4, r5, r6, pc}
+_0224C8A0:
+ mov r1, #0xc0
+ mul r1, r4
+ add r2, r3, r1
+ ldr r1, _0224C8BC ; =0x00002D67
+ ldrb r1, [r2, r1]
+ cmp r1, #0x3b
+ beq _0224C8B8
+ cmp r1, #0x24
+ beq _0224C8B8
+ cmp r1, #0x79
+ beq _0224C8B8
+ add r0, r4, #0
+_0224C8B8:
+ pop {r4, r5, r6, pc}
+ nop
+_0224C8BC: .word 0x00002D67
+
+ thumb_func_start MOD11_0224C8C0
+MOD11_0224C8C0: ; 0x0224C8C0
+ lsl r1, r1, #4
+ add r1, r0, r1
+ ldr r0, _0224C8E4 ; =0x000003DE
+ ldr r3, _0224C8E8 ; =0x0225E260
+ ldrh r1, [r1, r0]
+ mov r2, #0
+_0224C8CC:
+ ldrh r0, [r3]
+ cmp r0, r1
+ bne _0224C8D6
+ mov r0, #1
+ bx lr
+_0224C8D6:
+ add r2, r2, #1
+ add r3, r3, #2
+ cmp r2, #6
+ blo _0224C8CC
+ mov r0, #0
+ bx lr
+ nop
+_0224C8E4: .word 0x000003DE
+_0224C8E8: .word 0x0225E260
+
+ thumb_func_start MOD11_0224C8EC
+MOD11_0224C8EC: ; 0x0224C8EC
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r2, #0
+ ldr r2, _0224CA58 ; =0x00000137
+ add r7, r0, #0
+ add r4, r1, #0
+ cmp r3, r2
+ bgt _0224C904
+ blt _0224C8FE
+ b _0224CA00
+_0224C8FE:
+ cmp r3, #0xed
+ beq _0224C9A6
+ b _0224CA52
+_0224C904:
+ add r0, r2, #0
+ add r0, #0x34
+ cmp r3, r0
+ bgt _0224C914
+ add r2, #0x34
+ cmp r3, r2
+ beq _0224C91C
+ b _0224CA52
+_0224C914:
+ add r2, #0x8a
+ cmp r3, r2
+ beq _0224C928
+ b _0224CA52
+_0224C91C:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02249E04
+ add r5, r0, #0
+ b _0224CA54
+_0224C928:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD11_02249D90
+ sub r0, #0x7d
+ cmp r0, #0xf
+ bhi _0224C9A2
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0224C942: ; jump table
+ .short _0224C982 - _0224C942 - 2 ; case 0
+ .short _0224C986 - _0224C942 - 2 ; case 1
+ .short _0224C98E - _0224C942 - 2 ; case 2
+ .short _0224C98A - _0224C942 - 2 ; case 3
+ .short _0224C996 - _0224C942 - 2 ; case 4
+ .short _0224C962 - _0224C942 - 2 ; case 5
+ .short _0224C96A - _0224C942 - 2 ; case 6
+ .short _0224C96E - _0224C942 - 2 ; case 7
+ .short _0224C966 - _0224C942 - 2 ; case 8
+ .short _0224C992 - _0224C942 - 2 ; case 9
+ .short _0224C976 - _0224C942 - 2 ; case 10
+ .short _0224C972 - _0224C942 - 2 ; case 11
+ .short _0224C97A - _0224C942 - 2 ; case 12
+ .short _0224C99A - _0224C942 - 2 ; case 13
+ .short _0224C99E - _0224C942 - 2 ; case 14
+ .short _0224C97E - _0224C942 - 2 ; case 15
+_0224C962:
+ mov r5, #1
+ b _0224CA54
+_0224C966:
+ mov r5, #2
+ b _0224CA54
+_0224C96A:
+ mov r5, #3
+ b _0224CA54
+_0224C96E:
+ mov r5, #4
+ b _0224CA54
+_0224C972:
+ mov r5, #5
+ b _0224CA54
+_0224C976:
+ mov r5, #6
+ b _0224CA54
+_0224C97A:
+ mov r5, #7
+ b _0224CA54
+_0224C97E:
+ mov r5, #8
+ b _0224CA54
+_0224C982:
+ mov r5, #0xa
+ b _0224CA54
+_0224C986:
+ mov r5, #0xb
+ b _0224CA54
+_0224C98A:
+ mov r5, #0xc
+ b _0224CA54
+_0224C98E:
+ mov r5, #0xd
+ b _0224CA54
+_0224C992:
+ mov r5, #0xe
+ b _0224CA54
+_0224C996:
+ mov r5, #0xf
+ b _0224CA54
+_0224C99A:
+ mov r5, #0x10
+ b _0224CA54
+_0224C99E:
+ mov r5, #0x11
+ b _0224CA54
+_0224C9A2:
+ mov r5, #0
+ b _0224CA54
+_0224C9A6:
+ ldr r0, _0224CA5C ; =0x00002D54
+ add r1, r4, r0
+ mov r0, #0xc0
+ mul r0, r6
+ ldr r4, [r1, r0]
+ lsl r0, r4, #2
+ lsr r0, r0, #0x1b
+ lsl r0, r0, #0x1f
+ lsr r5, r0, #0x1a
+ lsl r0, r4, #7
+ lsr r0, r0, #0x1b
+ lsl r0, r0, #0x1f
+ lsr r3, r0, #0x1b
+ lsl r0, r4, #0xc
+ lsr r0, r0, #0x1b
+ lsl r0, r0, #0x1f
+ lsr r2, r0, #0x1c
+ lsl r0, r4, #0x11
+ lsr r0, r0, #0x1b
+ lsl r0, r0, #0x1f
+ lsr r1, r0, #0x1d
+ lsl r0, r4, #0x1b
+ lsl r4, r4, #0x16
+ lsr r4, r4, #0x1b
+ lsr r6, r0, #0x1b
+ mov r0, #1
+ lsl r4, r4, #0x1f
+ and r0, r6
+ lsr r4, r4, #0x1e
+ orr r0, r4
+ orr r0, r1
+ orr r0, r2
+ orr r0, r3
+ add r1, r5, #0
+ orr r1, r0
+ mov r0, #0xf
+ mul r0, r1
+ mov r1, #0x3f
+ bl _s32_div_f
+ add r5, r0, #1
+ cmp r5, #9
+ blt _0224CA54
+ add r5, r5, #1
+ b _0224CA54
+_0224CA00:
+ mov r2, #0xd
+ str r2, [sp]
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224CA54
+ mov r0, #0x4c
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r4, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _0224CA54
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ ldr r1, _0224CA60 ; =0x000080FF
+ tst r1, r0
+ beq _0224CA54
+ mov r1, #3
+ tst r1, r0
+ beq _0224CA38
+ mov r5, #0xb
+_0224CA38:
+ mov r1, #0xc
+ tst r1, r0
+ beq _0224CA40
+ mov r5, #5
+_0224CA40:
+ mov r1, #0x30
+ tst r1, r0
+ beq _0224CA48
+ mov r5, #0xa
+_0224CA48:
+ mov r1, #0xc0
+ tst r0, r1
+ beq _0224CA54
+ mov r5, #0xf
+ b _0224CA54
+_0224CA52:
+ mov r5, #0
+_0224CA54:
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224CA58: .word 0x00000137
+_0224CA5C: .word 0x00002D54
+_0224CA60: .word 0x000080FF
+
+ thumb_func_start MOD11_0224CA64
+MOD11_0224CA64: ; 0x0224CA64
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ mov r1, #0x69
+ mov r0, #5
+ lsl r1, r1, #2
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r2, #0x69
+ mov r0, #0
+ add r1, r4, #0
+ lsl r2, r2, #2
+ bl MIi_CpuClearFast
+ mov r0, #0x65
+ ldrb r1, [r5]
+ lsl r0, r0, #2
+ strb r1, [r4, r0]
+ ldrb r1, [r5, #1]
+ add r0, r0, #1
+ strb r1, [r4, r0]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224CA94
+MOD11_0224CA94: ; 0x0224CA94
+ push {r4, r5, r6, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ bl MOD11_0222FF74
+ mov r1, #0x22
+ lsl r1, r1, #4
+ tst r0, r1
+ bne _0224CB2C
+ sub r1, #0x8b
+ ldrb r1, [r4, r1]
+ mov r0, #1
+ tst r0, r1
+ beq _0224CAC0
+ add r0, r5, #0
+ bl MOD11_0222FF74
+ mov r1, #1
+ tst r0, r1
+ beq _0224CB2C
+_0224CAC0:
+ ldr r0, _0224CB30 ; =0x00000195
+ ldr r1, _0224CB34 ; =0x0225E818
+ ldrb r2, [r4, r0]
+ sub r0, r0, #1
+ ldrb r1, [r1, r2]
+ str r1, [sp]
+ mov r1, #5
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp, #8]
+ ldrb r0, [r4, r0]
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ str r6, [sp, #0x10]
+ bl MOD11_02230078
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ bl MOD11_022300CC
+ str r0, [sp, #0x20]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ add r0, sp, #0
+ bl MOD08_02229918
+ add r1, r4, #0
+ add r1, #0x88
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #0x64
+ bl MOD08_0222A00C
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #2
+ bl MOD08_0222A018
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #0
+ bl MOD08_02229FE4
+ add r4, #0x88
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD08_0222A008
+_0224CB2C:
+ add sp, #0x28
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0224CB30: .word 0x00000195
+_0224CB34: .word 0x0225E818
+
+ thumb_func_start MOD11_0224CB38
+MOD11_0224CB38: ; 0x0224CB38
+ push {r3, lr}
+ add r2, r1, #0
+ add r2, #0x94
+ ldrb r2, [r2]
+ cmp r2, #0
+ beq _0224CB4C
+ lsl r3, r2, #2
+ ldr r2, _0224CB50 ; =0x0225E70C
+ ldr r2, [r2, r3]
+ blx r2
+_0224CB4C:
+ pop {r3, pc}
+ nop
+_0224CB50: .word 0x0225E70C
+
+ thumb_func_start MOD11_0224CB54
+MOD11_0224CB54: ; 0x0224CB54
+ push {r4, lr}
+ add r4, r1, #0
+ cmp r2, #2
+ beq _0224CB64
+ add r0, r4, #0
+ add r0, #0x28
+ bl MOD11_02257030
+_0224CB64:
+ add r0, r4, #0
+ bl MOD11_0225468C
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224CB74
+MOD11_0224CB74: ; 0x0224CB74
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0224CB78
+MOD11_0224CB78: ; 0x0224CB78
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_0224D550
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #1
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0224CB98
+MOD11_0224CB98: ; 0x0224CB98
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224D574
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CBAC
+MOD11_0224CBAC: ; 0x0224CBAC
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224D738
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CBC0
+MOD11_0224CBC0: ; 0x0224CBC0
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224D87C
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CBD4
+MOD11_0224CBD4: ; 0x0224CBD4
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224DA2C
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CBE8
+MOD11_0224CBE8: ; 0x0224CBE8
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224DAE8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CBFC
+MOD11_0224CBFC: ; 0x0224CBFC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x20]
+ bl FUN_02007534
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #7
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224CC20
+MOD11_0224CC20: ; 0x0224CC20
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224DB4C
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CC34
+MOD11_0224CC34: ; 0x0224CC34
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224DCE4
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CC48
+MOD11_0224CC48: ; 0x0224CC48
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_0224DD44
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CC58
+MOD11_0224CC58: ; 0x0224CC58
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224DD8C
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CC6C
+MOD11_0224CC6C: ; 0x0224CC6C
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224DE50
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CC80
+MOD11_0224CC80: ; 0x0224CC80
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_0224DF18
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CC90
+MOD11_0224CC90: ; 0x0224CC90
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r4, #0
+ add r6, #0x94
+ add r1, r6, #0
+ add r1, #0x29
+ ldrb r1, [r1]
+ add r5, r0, #0
+ bl MOD11_022312B8
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0224DF60
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224CCB8
+MOD11_0224CCB8: ; 0x0224CCB8
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E034
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CCCC
+MOD11_0224CCCC: ; 0x0224CCCC
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E0A4
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CCE0
+MOD11_0224CCE0: ; 0x0224CCE0
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E130
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CCF4
+MOD11_0224CCF4: ; 0x0224CCF4
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E1DC
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CD08
+MOD11_0224CD08: ; 0x0224CD08
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E248
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CD1C
+MOD11_0224CD1C: ; 0x0224CD1C
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E28C
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CD30
+MOD11_0224CD30: ; 0x0224CD30
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E2F4
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CD44
+MOD11_0224CD44: ; 0x0224CD44
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E344
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CD58
+MOD11_0224CD58: ; 0x0224CD58
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x20]
+ mov r1, #6
+ bl FUN_0200782C
+ cmp r0, #1
+ bne _0224CD7A
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #0x17
+ bl MOD11_022567B8
+ b _0224CD82
+_0224CD7A:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0224E3E0
+_0224CD82:
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224CD8C
+MOD11_0224CD8C: ; 0x0224CD8C
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E410
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CDA0
+MOD11_0224CDA0: ; 0x0224CDA0
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E49C
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CDB4
+MOD11_0224CDB4: ; 0x0224CDB4
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E510
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CDC8
+MOD11_0224CDC8: ; 0x0224CDC8
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E5F8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CDDC
+MOD11_0224CDDC: ; 0x0224CDDC
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_0224E628
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CDEC
+MOD11_0224CDEC: ; 0x0224CDEC
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E65C
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CE00
+MOD11_0224CE00: ; 0x0224CE00
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E6FC
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CE14
+MOD11_0224CE14: ; 0x0224CE14
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E734
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CE28
+MOD11_0224CE28: ; 0x0224CE28
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E790
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CE3C
+MOD11_0224CE3C: ; 0x0224CE3C
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E7E8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CE50
+MOD11_0224CE50: ; 0x0224CE50
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_0224E840
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CE60
+MOD11_0224CE60: ; 0x0224CE60
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E894
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CE74
+MOD11_0224CE74: ; 0x0224CE74
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_0224E8EC
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CE84
+MOD11_0224CE84: ; 0x0224CE84
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E924
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CE98
+MOD11_0224CE98: ; 0x0224CE98
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224E9C0
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224CEAC
+MOD11_0224CEAC: ; 0x0224CEAC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r6, r1, #0
+ mov r2, #0x65
+ add r6, #0x94
+ lsl r2, r2, #2
+ str r1, [sp, #4]
+ ldrb r1, [r1, r2]
+ ldrb r2, [r6, #1]
+ str r0, [sp]
+ lsl r2, r2, #0x1c
+ lsr r2, r2, #0x1c
+ bl MOD11_02230014
+ add r7, r0, #0
+ mov r0, #2
+ ldr r1, [r6, #0x1c]
+ lsl r0, r0, #0x14
+ tst r0, r1
+ bne _0224CF14
+ add r0, r6, #0
+ add r5, r6, #0
+ str r0, [sp, #8]
+ add r0, #0x16
+ mov r4, #0
+ add r5, #0xe
+ str r0, [sp, #8]
+_0224CEE2:
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ ldrb r1, [r6, #1]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x1c
+ tst r0, r1
+ bne _0224CF0C
+ add r1, r4, #0
+ add r0, r7, #0
+ add r1, #0x36
+ add r2, r5, #0
+ bl SetMonData
+ ldr r2, [sp, #8]
+ add r1, r4, #0
+ add r0, r7, #0
+ add r1, #0x3a
+ add r2, r2, r4
+ bl SetMonData
+_0224CF0C:
+ add r4, r4, #1
+ add r5, r5, #2
+ cmp r4, #4
+ blt _0224CEE2
+_0224CF14:
+ ldrb r0, [r6, #1]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ bl MaskOfFlagNo
+ ldr r1, [r6, #8]
+ tst r0, r1
+ bne _0224CF30
+ add r2, r6, #0
+ add r0, r7, #0
+ mov r1, #6
+ add r2, #0xc
+ bl SetMonData
+_0224CF30:
+ add r0, r7, #0
+ mov r1, #0xa2
+ add r2, r6, #2
+ bl SetMonData
+ add r0, r7, #0
+ mov r1, #0x9f
+ add r2, r6, #4
+ bl SetMonData
+ mov r2, #0x65
+ ldr r1, [sp, #4]
+ lsl r2, r2, #2
+ ldrb r1, [r1, r2]
+ ldrb r2, [r6]
+ ldr r0, [sp]
+ bl MOD11_022567B8
+ ldr r0, [sp, #4]
+ bl MOD11_0224D548
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224CF60
+MOD11_0224CF60: ; 0x0224CF60
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_0222FF74
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD11_02230094
+ ldr r2, _0224CFB0 ; =0x00000196
+ ldrb r1, [r4, r2]
+ cmp r1, #0
+ bne _0224CF94
+ mov r1, #8
+ and r1, r6
+ bne _0224CF8C
+ cmp r1, #0
+ bne _0224CF94
+ sub r1, r2, #1
+ ldrb r1, [r4, r1]
+ cmp r1, #4
+ beq _0224CF94
+_0224CF8C:
+ ldr r1, _0224CFB4 ; =0xFFFFF300
+ mov r2, #0
+ bl MOD11_02259098
+_0224CF94:
+ mov r1, #0x65
+ add r2, r4, #0
+ lsl r1, r1, #2
+ add r2, #0x94
+ ldrb r1, [r4, r1]
+ ldrb r2, [r2]
+ add r0, r5, #0
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, r5, r6, pc}
+ nop
+_0224CFB0: .word 0x00000196
+_0224CFB4: .word 0xFFFFF300
+
+ thumb_func_start MOD11_0224CFB8
+MOD11_0224CFB8: ; 0x0224CFB8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x28
+ bl MOD11_02257238
+ add r0, r4, #0
+ bl MOD11_0225468C
+ mov r1, #0x65
+ add r2, r4, #0
+ lsl r1, r1, #2
+ add r2, #0x94
+ ldrb r1, [r4, r1]
+ ldrb r2, [r2]
+ add r0, r5, #0
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224CFE8
+MOD11_0224CFE8: ; 0x0224CFE8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r1, #0
+ mov r1, #0
+ str r1, [sp, #8]
+ mov r1, #0x65
+ lsl r1, r1, #2
+ add r4, r7, #0
+ ldrb r1, [r7, r1]
+ str r0, [sp]
+ add r4, #0x94
+ bl MOD11_0222FFC8
+ mov r5, #0
+ str r0, [sp, #4]
+ cmp r0, #0
+ ble _0224D04A
+_0224D00A:
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r7, r1]
+ ldr r0, [sp]
+ add r2, r5, #0
+ bl MOD11_02230014
+ ldrb r1, [r4, #1]
+ add r6, r0, #0
+ cmp r1, #0x68
+ bne _0224D024
+ mov r0, #0
+ b _0224D02C
+_0224D024:
+ mov r1, #0xa
+ mov r2, #0
+ bl GetMonData
+_0224D02C:
+ ldrh r1, [r4, #2]
+ cmp r1, #0xd7
+ bne _0224D038
+ bne _0224D042
+ cmp r0, #0x2b
+ beq _0224D042
+_0224D038:
+ add r0, r6, #0
+ mov r1, #0x9f
+ add r2, sp, #8
+ bl SetMonData
+_0224D042:
+ ldr r0, [sp, #4]
+ add r5, r5, #1
+ cmp r5, r0
+ blt _0224D00A
+_0224D04A:
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r7, r1]
+ ldrb r2, [r4]
+ ldr r0, [sp]
+ bl MOD11_022567B8
+ add r0, r7, #0
+ bl MOD11_0224D548
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224D064
+MOD11_0224D064: ; 0x0224D064
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224EA74
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D078
+MOD11_0224D078: ; 0x0224D078
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224EAAC
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D08C
+MOD11_0224D08C: ; 0x0224D08C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ str r0, [sp, #0x10]
+ add r5, r1, #0
+ ldr r0, _0224D180 ; =0x00000195
+ add r4, r5, #0
+ ldrb r1, [r5, r0]
+ mov r0, #1
+ add r4, #0x94
+ tst r0, r1
+ beq _0224D0A6
+ mov r6, #2
+ b _0224D0A8
+_0224D0A6:
+ mov r6, #0
+_0224D0A8:
+ ldrb r0, [r4, #5]
+ lsl r3, r6, #0x18
+ lsr r3, r3, #0x18
+ str r0, [sp]
+ ldrb r0, [r4, #1]
+ str r0, [sp, #4]
+ ldr r0, [r4, #8]
+ str r0, [sp, #8]
+ ldrh r1, [r4, #2]
+ ldrb r2, [r4, #4]
+ add r0, sp, #0x14
+ bl FUN_02068C00
+ ldr r0, [r5, #0x20]
+ bl FUN_020081C0
+ add r7, r0, #0
+ add r3, sp, #0x14
+ add r2, r7, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r5, #0x20]
+ bl FUN_020080D0
+ ldr r0, [sp, #0x10]
+ bl MOD11_02230130
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ bl MOD11_022312DC
+ add r3, r0, #0
+ ldr r0, [r4, #8]
+ mov r2, #5
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r6, [sp, #8]
+ ldrh r0, [r7, #6]
+ str r0, [sp, #0xc]
+ ldrh r0, [r7]
+ ldrh r1, [r7, #2]
+ bl FUN_02012560
+ ldr r0, [sp, #0x10]
+ bl MOD11_02230130
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ ldrh r2, [r7]
+ bl MOD11_022312F0
+ ldr r0, [sp, #0x10]
+ bl MOD11_02230130
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ ldrh r2, [r7, #4]
+ bl MOD11_02231308
+ ldr r0, [r4, #8]
+ lsl r2, r6, #0x18
+ str r0, [sp]
+ ldrh r0, [r4, #2]
+ ldrb r1, [r4, #4]
+ ldrb r3, [r4, #1]
+ lsr r2, r2, #0x18
+ bl FUN_02068E88
+ add r6, r0, #0
+ ldr r0, [sp, #0x10]
+ bl MOD11_02230130
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ add r2, r6, #0
+ bl MOD11_02231320
+ ldr r0, _0224D180 ; =0x00000195
+ mov r1, #1
+ ldrb r0, [r5, r0]
+ bl MOD08_0222A6A4
+ add r2, r0, #0
+ ldr r0, [r5, #0x20]
+ mov r1, #1
+ add r2, r6, r2
+ bl FUN_02007558
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ ldrb r2, [r4]
+ ldr r0, [sp, #0x10]
+ bl MOD11_022567B8
+ add r0, r5, #0
+ bl MOD11_0224D548
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0224D180: .word 0x00000195
+
+ thumb_func_start MOD11_0224D184
+MOD11_0224D184: ; 0x0224D184
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_02230FCC
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #0x2e
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0224D1A4
+MOD11_0224D1A4: ; 0x0224D1A4
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ ldr r1, _0224D218 ; =0x00000196
+ add r5, r0, #0
+ ldrb r1, [r4, r1]
+ cmp r1, #0
+ bne _0224D200
+ bl MOD11_02230094
+ mov r1, #0
+ add r6, r0, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD11_02258820
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD11_0225B77C
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ bl MOD11_022302BC
+ add r1, r0, #0
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ cmp r1, r0
+ beq _0224D1EC
+ add r0, r5, #0
+ bl MOD11_02231380
+ bl MOD11_02258184
+_0224D1EC:
+ add r0, r4, #0
+ add r0, #0x28
+ bl MOD11_02257238
+ add r0, r6, #0
+ bl MOD11_02258E30
+ add r0, r4, #0
+ bl MOD11_0225468C
+_0224D200:
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #0x2f
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, r5, r6, pc}
+ nop
+_0224D218: .word 0x00000196
+
+ thumb_func_start MOD11_0224D21C
+MOD11_0224D21C: ; 0x0224D21C
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224EAEC
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D230
+MOD11_0224D230: ; 0x0224D230
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224EB34
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D244
+MOD11_0224D244: ; 0x0224D244
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r6, r4, #0
+ add r5, r0, #0
+ add r6, #0x94
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _0224D268
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0224EB6C
+ b _0224D276
+_0224D268:
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #0x32
+ bl MOD11_022567B8
+_0224D276:
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224D280
+MOD11_0224D280: ; 0x0224D280
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r6, r4, #0
+ add r5, r0, #0
+ add r6, #0x94
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _0224D2A4
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD11_0224EBB8
+ b _0224D2B2
+_0224D2A4:
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #0x33
+ bl MOD11_022567B8
+_0224D2B2:
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224D2BC
+MOD11_0224D2BC: ; 0x0224D2BC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_02230078
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD11_02230080
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD11_022300CC
+ add r2, r0, #0
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD11_0225C91C
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #0x34
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224D2F8
+MOD11_0224D2F8: ; 0x0224D2F8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_02230080
+ bl MOD11_0225C9A0
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #0x35
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0224D31C
+MOD11_0224D31C: ; 0x0224D31C
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r5, #0
+ add r4, #0x94
+ ldrb r1, [r4, #1]
+ add r6, r0, #0
+ cmp r1, #0
+ ldr r1, _0224D360 ; =0x00000196
+ bne _0224D33C
+ ldrb r1, [r5, r1]
+ cmp r1, #0
+ bne _0224D348
+ ldrh r1, [r4, #2]
+ bl MOD11_0223128C
+ b _0224D348
+_0224D33C:
+ ldrb r1, [r5, r1]
+ cmp r1, #0
+ beq _0224D348
+ ldrh r1, [r4, #2]
+ bl MOD11_0223128C
+_0224D348:
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ ldrb r2, [r4]
+ add r0, r6, #0
+ bl MOD11_022567B8
+ add r0, r5, #0
+ bl MOD11_0224D548
+ pop {r4, r5, r6, pc}
+ nop
+_0224D360: .word 0x00000196
+
+ thumb_func_start MOD11_0224D364
+MOD11_0224D364: ; 0x0224D364
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_0224EBF4
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D374
+MOD11_0224D374: ; 0x0224D374
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224EC4C
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D388
+MOD11_0224D388: ; 0x0224D388
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_0224EC80
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D398
+MOD11_0224D398: ; 0x0224D398
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_0224ECB8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D3A8
+MOD11_0224D3A8: ; 0x0224D3A8
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_0224ECF0
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D3B8
+MOD11_0224D3B8: ; 0x0224D3B8
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224ED44
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D3CC
+MOD11_0224D3CC: ; 0x0224D3CC
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD11_0224ED98
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D3DC
+MOD11_0224D3DC: ; 0x0224D3DC
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224EDEC
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D3F0
+MOD11_0224D3F0: ; 0x0224D3F0
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224EE20
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D404
+MOD11_0224D404: ; 0x0224D404
+ push {r4, lr}
+ add r4, r1, #0
+ add r2, r4, #0
+ add r2, #0x94
+ bl MOD11_0224EE80
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0224D418
+MOD11_0224D418: ; 0x0224D418
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ mov r7, #0
+ str r1, [sp, #4]
+ str r1, [sp, #0x10]
+ add r1, #0x94
+ str r0, [sp]
+ str r1, [sp, #0x10]
+ str r7, [sp, #8]
+ bl MOD11_0222FF74
+ mov r1, #0x80
+ tst r0, r1
+ beq _0224D444
+ ldr r1, [sp, #0x10]
+ ldr r0, [sp]
+ ldr r1, [r1, #4]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD11_02231468
+ b _0224D4FC
+_0224D444:
+ add r0, r7, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp]
+ bl MOD11_0222FF84
+ cmp r0, #0
+ ble _0224D4D2
+_0224D452:
+ ldr r0, [sp]
+ ldr r1, [sp, #0xc]
+ bl MOD11_0222FF88
+ add r6, r0, #0
+ mov r5, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0224D4C0
+_0224D466:
+ add r0, r6, #0
+ add r1, r5, #0
+ bl GetPartyMonByIndex
+ mov r1, #5
+ mov r2, #0
+ add r4, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0224D4B4
+ add r0, r4, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _0224D4B4
+ ldr r0, [sp]
+ ldr r1, [sp, #0xc]
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _0224D4A8
+ add r0, r4, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ ldr r1, [sp, #8]
+ add r0, r1, r0
+ str r0, [sp, #8]
+ b _0224D4B4
+_0224D4A8:
+ add r0, r4, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ add r7, r7, r0
+_0224D4B4:
+ add r0, r6, #0
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _0224D466
+_0224D4C0:
+ ldr r0, [sp, #0xc]
+ add r0, r0, #1
+ str r0, [sp, #0xc]
+ ldr r0, [sp]
+ bl MOD11_0222FF84
+ ldr r1, [sp, #0xc]
+ cmp r1, r0
+ blt _0224D452
+_0224D4D2:
+ cmp r7, #0
+ bne _0224D4E6
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ bne _0224D4E6
+ ldr r0, [sp]
+ mov r1, #3
+ bl MOD11_02231468
+ b _0224D4FC
+_0224D4E6:
+ cmp r7, #0
+ bne _0224D4F4
+ ldr r0, [sp]
+ mov r1, #2
+ bl MOD11_02231468
+ b _0224D4FC
+_0224D4F4:
+ ldr r0, [sp]
+ mov r1, #1
+ bl MOD11_02231468
+_0224D4FC:
+ mov r2, #0x65
+ ldr r1, [sp, #4]
+ lsl r2, r2, #2
+ ldrb r1, [r1, r2]
+ ldr r2, [sp, #0x10]
+ ldr r0, [sp]
+ ldrb r2, [r2]
+ bl MOD11_022567B8
+ ldr r0, [sp, #4]
+ bl MOD11_0224D548
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0224D518
+MOD11_0224D518: ; 0x0224D518
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ mov r1, #0
+ add r5, r0, #0
+ bl MOD11_0222FF6C
+ add r6, r0, #0
+ mov r1, #0xff
+ bl FUN_02019620
+ add r0, r6, #0
+ bl FUN_02019548
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #0x42
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl MOD11_0224D548
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0224D548
+MOD11_0224D548: ; 0x0224D548
+ mov r1, #0
+ add r0, #0x94
+ strb r1, [r0]
+ bx lr
+
+ thumb_func_start MOD11_0224D550
+MOD11_0224D550: ; 0x0224D550
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #5
+ mov r1, #0x18
+ bl AllocFromHeap
+ add r1, r0, #0
+ str r4, [r1]
+ mov r2, #0
+ strb r2, [r1, #0x14]
+ ldr r0, _0224D570 ; =MOD11_022530A0
+ strb r2, [r1, #0x15]
+ bl FUN_0200CA44
+ pop {r4, pc}
+ nop
+_0224D570: .word MOD11_022530A0
+
+ thumb_func_start MOD11_0224D574
+MOD11_0224D574: ; 0x0224D574
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x58
+ str r0, [sp, #0x24]
+ add r6, r1, #0
+ add r5, r2, #0
+ bl MOD11_02230068
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x24]
+ bl MOD11_0222FF74
+ mov r0, #5
+ mov r1, #0x2c
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r2, #0
+ ldr r0, _0224D720 ; =0x00000195
+ strb r2, [r4, #0x12]
+ ldrb r0, [r6, r0]
+ mov r1, #1
+ tst r0, r1
+ beq _0224D5CA
+ mov r0, #2
+ strb r0, [r4, #0x13]
+ ldr r0, [sp, #0x24]
+ bl MOD11_02230088
+ str r0, [r4, #0xc]
+ ldr r1, _0224D720 ; =0x00000195
+ ldr r0, [r0]
+ ldrb r2, [r6, r1]
+ mov r1, #1
+ and r2, r1
+ add r3, r2, #0
+ mov r1, #6
+ mul r3, r1
+ ldr r1, _0224D724 ; =0x0222D550
+ mov r2, #0x58
+ ldrsh r1, [r1, r3]
+ bl FUN_0200C714
+ b _0224D5F0
+_0224D5CA:
+ ldr r0, [sp, #0x24]
+ add r1, r2, #0
+ strb r2, [r4, #0x13]
+ bl MOD11_02230088
+ str r0, [r4, #0xc]
+ ldr r1, _0224D720 ; =0x00000195
+ ldr r0, [r0]
+ ldrb r2, [r6, r1]
+ mov r1, #1
+ and r2, r1
+ add r3, r2, #0
+ mov r1, #6
+ mul r3, r1
+ ldr r1, _0224D724 ; =0x0222D550
+ mov r2, #0x88
+ ldrsh r1, [r1, r3]
+ bl FUN_0200C714
+_0224D5F0:
+ ldrb r0, [r5, #1]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ beq _0224D5FC
+ mov r0, #1
+ b _0224D5FE
+_0224D5FC:
+ mov r0, #0
+_0224D5FE:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldrb r0, [r5, #1]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1b
+ str r0, [sp, #4]
+ ldr r0, [r5, #4]
+ str r0, [sp, #8]
+ ldrb r2, [r5, #1]
+ ldrh r1, [r5, #2]
+ ldrb r3, [r4, #0x13]
+ lsl r2, r2, #0x1e
+ add r0, sp, #0x48
+ lsr r2, r2, #0x1e
+ bl FUN_02068C00
+ ldr r0, [r5, #4]
+ str r0, [sp]
+ ldrb r3, [r5, #1]
+ ldrh r0, [r5, #2]
+ ldrb r2, [r4, #0x13]
+ lsl r1, r3, #0x1e
+ lsl r3, r3, #0x18
+ lsr r1, r1, #0x1e
+ lsr r3, r3, #0x1b
+ bl FUN_02068E88
+ str r0, [sp, #0x2c]
+ mov r0, #1
+ str r0, [sp]
+ add r0, sp, #0x30
+ ldrh r3, [r5, #2]
+ add r0, #2
+ mov r1, #0x8a
+ mov r2, #0
+ bl ReadFromNarcMemberByIdPair
+ mov r0, #1
+ str r0, [sp]
+ add r0, sp, #0x30
+ ldrh r3, [r5, #2]
+ add r0, #1
+ mov r1, #0x90
+ mov r2, #0
+ bl ReadFromNarcMemberByIdPair
+ mov r0, #1
+ str r0, [sp]
+ ldrh r3, [r5, #2]
+ add r0, sp, #0x30
+ mov r1, #0x8e
+ mov r2, #0
+ bl ReadFromNarcMemberByIdPair
+ add r0, sp, #0x30
+ ldrh r1, [r5, #2]
+ add r0, #3
+ bl FUN_02069010
+ ldr r1, _0224D720 ; =0x00000195
+ mov r0, #6
+ ldrb r2, [r6, r1]
+ ldr r3, _0224D724 ; =0x0222D550
+ add r7, r2, #0
+ mul r7, r0
+ ldr r0, _0224D728 ; =0x0222D552
+ mov r2, #2
+ ldrsh r0, [r0, r7]
+ ldrsh r3, [r3, r7]
+ str r0, [sp]
+ ldr r0, _0224D72C ; =0x0222D554
+ ldrsh r0, [r0, r7]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x2c]
+ str r0, [sp, #8]
+ add r0, sp, #0x30
+ ldrsb r2, [r0, r2]
+ str r2, [sp, #0xc]
+ mov r2, #1
+ ldrsb r2, [r0, r2]
+ str r2, [sp, #0x10]
+ ldrb r0, [r0]
+ add r2, sp, #0x48
+ str r0, [sp, #0x14]
+ sub r0, r1, #1
+ ldrb r0, [r6, r0]
+ ldr r1, [sp, #0x28]
+ str r0, [sp, #0x18]
+ add r0, sp, #0x30
+ add r0, #3
+ str r0, [sp, #0x1c]
+ mov r0, #0
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x24]
+ bl MOD11_02253A88
+ str r0, [r6, #0x20]
+ str r0, [r4, #8]
+ ldrb r0, [r4, #0x13]
+ cmp r0, #2
+ bne _0224D6D8
+ mov r3, #0
+ str r3, [sp]
+ mov r1, #8
+ ldr r0, [r4, #8]
+ add r2, r1, #0
+ bl FUN_02007E68
+_0224D6D8:
+ ldr r1, _0224D720 ; =0x00000195
+ ldrb r0, [r6, r1]
+ lsl r2, r0, #2
+ ldr r0, _0224D730 ; =0x0222D538
+ ldrsh r0, [r0, r2]
+ strh r0, [r4, #0x14]
+ ldr r0, [sp, #0x24]
+ str r0, [r4]
+ str r6, [r4, #4]
+ ldrb r0, [r5]
+ strb r0, [r4, #0x10]
+ sub r0, r1, #1
+ ldrb r0, [r6, r0]
+ strb r0, [r4, #0x11]
+ ldrh r0, [r5, #2]
+ strh r0, [r4, #0x16]
+ ldr r0, [r5, #8]
+ str r0, [r4, #0x18]
+ ldrb r0, [r6, r1]
+ str r0, [r4, #0x1c]
+ ldr r0, [r5, #4]
+ bl GetNatureFromPersonality
+ str r0, [r4, #0x24]
+ ldrb r0, [r5, #1]
+ add r1, r4, #0
+ mov r2, #0
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ str r0, [r4, #0x28]
+ ldr r0, _0224D734 ; =MOD11_0224EEA0
+ bl FUN_0200CA44
+ add sp, #0x58
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224D720: .word 0x00000195
+_0224D724: .word 0x0222D550
+_0224D728: .word 0x0222D552
+_0224D72C: .word 0x0222D554
+_0224D730: .word 0x0222D538
+_0224D734: .word MOD11_0224EEA0
+
+ thumb_func_start MOD11_0224D738
+MOD11_0224D738: ; 0x0224D738
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r0, #0
+ add r6, r1, #0
+ add r5, r2, #0
+ bl MOD11_0222FF74
+ mov r0, #5
+ mov r1, #0x9c
+ bl AllocFromHeap
+ add r4, r0, #0
+ ldr r0, _0224D874 ; =0x00000195
+ ldrb r1, [r6, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _0224D75E
+ mov r1, #2
+ b _0224D760
+_0224D75E:
+ mov r1, #0
+_0224D760:
+ add r0, r4, #0
+ add r0, #0x84
+ strb r1, [r0]
+ ldrb r0, [r5, #1]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ beq _0224D772
+ mov r0, #1
+ b _0224D774
+_0224D772:
+ mov r0, #0
+_0224D774:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldrb r0, [r5, #1]
+ add r3, r4, #0
+ add r3, #0x84
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1b
+ str r0, [sp, #4]
+ ldr r0, [r5, #4]
+ str r0, [sp, #8]
+ ldrb r2, [r5, #1]
+ add r0, r4, #0
+ ldrh r1, [r5, #2]
+ lsl r2, r2, #0x1e
+ ldrb r3, [r3]
+ add r0, #0x14
+ lsr r2, r2, #0x1e
+ bl FUN_02068C00
+ ldr r0, [r5, #4]
+ add r2, r4, #0
+ str r0, [sp]
+ ldrb r3, [r5, #1]
+ add r2, #0x84
+ ldrh r0, [r5, #2]
+ lsl r1, r3, #0x1e
+ lsl r3, r3, #0x18
+ ldrb r2, [r2]
+ lsr r1, r1, #0x1e
+ lsr r3, r3, #0x1b
+ bl FUN_02068E88
+ add r1, r4, #0
+ add r1, #0x85
+ strb r0, [r1]
+ mov r0, #1
+ str r0, [sp]
+ add r0, r4, #0
+ ldrh r3, [r5, #2]
+ add r0, #0x90
+ mov r1, #0x8a
+ mov r2, #0
+ bl ReadFromNarcMemberByIdPair
+ mov r0, #1
+ str r0, [sp]
+ add r0, r4, #0
+ ldrh r3, [r5, #2]
+ add r0, #0x91
+ mov r1, #0x90
+ mov r2, #0
+ bl ReadFromNarcMemberByIdPair
+ mov r0, #1
+ str r0, [sp]
+ add r0, r4, #0
+ ldrh r3, [r5, #2]
+ add r0, #0x93
+ mov r1, #0x8e
+ mov r2, #0
+ bl ReadFromNarcMemberByIdPair
+ add r0, r6, #0
+ bl MOD11_02253A78
+ str r7, [r4]
+ add r0, r4, #0
+ str r6, [r4, #4]
+ mov r1, #0
+ add r0, #0x83
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x96
+ strb r1, [r0]
+ add r0, r4, #0
+ ldrb r1, [r5]
+ add r0, #0x80
+ strb r1, [r0]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r2, [r6, r0]
+ add r1, r4, #0
+ add r1, #0x81
+ strb r2, [r1]
+ add r1, r4, #0
+ ldrh r2, [r5, #2]
+ add r1, #0x86
+ add r0, r0, #1
+ strh r2, [r1]
+ ldrb r1, [r6, r0]
+ add r0, r4, #0
+ add r0, #0x82
+ strb r1, [r0]
+ add r0, r4, #0
+ ldr r1, [r5, #8]
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r4, #0
+ ldr r1, [r5, #0xc]
+ add r0, #0x8c
+ strb r1, [r0]
+ ldr r0, [r5, #4]
+ bl GetNatureFromPersonality
+ add r1, r4, #0
+ add r1, #0x8d
+ strb r0, [r1]
+ add r0, r4, #0
+ ldr r1, [r5, #0x10]
+ add r0, #0x8e
+ strh r1, [r0]
+ ldrb r0, [r5, #1]
+ lsl r0, r0, #0x1d
+ lsr r1, r0, #0x1f
+ add r0, r4, #0
+ add r0, #0x92
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0x94
+ strh r2, [r0]
+ ldr r0, _0224D878 ; =MOD11_0224F2DC
+ add r1, r4, #0
+ bl FUN_0200CA44
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224D874: .word 0x00000195
+_0224D878: .word MOD11_0224F2DC
+
+ thumb_func_start MOD11_0224D87C
+MOD11_0224D87C: ; 0x0224D87C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r7, r0, #0
+ add r6, r1, #0
+ add r4, r2, #0
+ bl MOD11_0222FF74
+ mov r0, #5
+ mov r1, #0x9c
+ bl AllocFromHeap
+ add r5, r0, #0
+ add r1, r5, #0
+ mov r0, #0
+ add r1, #0x83
+ strb r0, [r1]
+ ldr r1, _0224DA24 ; =0x00000195
+ ldrb r2, [r6, r1]
+ mov r1, #1
+ tst r1, r2
+ beq _0224D8B0
+ add r0, r5, #0
+ mov r1, #2
+ add r0, #0x84
+ strb r1, [r0]
+ b _0224D8B6
+_0224D8B0:
+ add r1, r5, #0
+ add r1, #0x84
+ strb r0, [r1]
+_0224D8B6:
+ ldrb r0, [r4, #1]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ beq _0224D8C2
+ mov r0, #1
+ b _0224D8C4
+_0224D8C2:
+ mov r0, #0
+_0224D8C4:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldrb r0, [r4, #1]
+ add r3, r5, #0
+ add r3, #0x84
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1b
+ str r0, [sp, #4]
+ ldr r0, [r4, #4]
+ str r0, [sp, #8]
+ ldrb r2, [r4, #1]
+ add r0, r5, #0
+ ldrh r1, [r4, #2]
+ lsl r2, r2, #0x1e
+ ldrb r3, [r3]
+ add r0, #0x14
+ lsr r2, r2, #0x1e
+ bl FUN_02068C00
+ ldr r0, [r4, #4]
+ add r2, r5, #0
+ str r0, [sp]
+ ldrb r3, [r4, #1]
+ add r2, #0x84
+ ldrh r0, [r4, #2]
+ lsl r1, r3, #0x1e
+ lsl r3, r3, #0x18
+ ldrb r2, [r2]
+ lsr r1, r1, #0x1e
+ lsr r3, r3, #0x1b
+ bl FUN_02068E88
+ add r1, r5, #0
+ add r1, #0x85
+ strb r0, [r1]
+ mov r0, #1
+ str r0, [sp]
+ add r0, r5, #0
+ ldrh r3, [r4, #2]
+ add r0, #0x90
+ mov r1, #0x8a
+ mov r2, #0
+ bl ReadFromNarcMemberByIdPair
+ mov r0, #1
+ str r0, [sp]
+ add r0, r5, #0
+ ldrh r3, [r4, #2]
+ add r0, #0x91
+ mov r1, #0x90
+ mov r2, #0
+ bl ReadFromNarcMemberByIdPair
+ mov r0, #1
+ str r0, [sp]
+ add r0, r5, #0
+ ldrh r3, [r4, #2]
+ add r0, #0x93
+ mov r1, #0x8e
+ mov r2, #0
+ bl ReadFromNarcMemberByIdPair
+ add r0, r6, #0
+ bl MOD11_02253A78
+ str r7, [r5]
+ str r6, [r5, #4]
+ add r0, r5, #0
+ ldrb r1, [r4]
+ add r0, #0x80
+ strb r1, [r0]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r2, [r6, r0]
+ add r1, r5, #0
+ add r1, #0x81
+ strb r2, [r1]
+ add r1, r5, #0
+ ldrh r2, [r4, #2]
+ add r1, #0x86
+ add r0, r0, #1
+ strh r2, [r1]
+ ldrb r1, [r6, r0]
+ add r0, r5, #0
+ add r0, #0x82
+ strb r1, [r0]
+ add r0, r5, #0
+ ldr r1, [r4, #8]
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r5, #0
+ ldr r1, [r4, #0xc]
+ add r0, #0x8c
+ strb r1, [r0]
+ ldr r0, [r4, #4]
+ bl GetNatureFromPersonality
+ add r1, r5, #0
+ add r1, #0x8d
+ strb r0, [r1]
+ add r0, r5, #0
+ ldr r1, [r4, #0x10]
+ add r0, #0x8e
+ strh r1, [r0]
+ ldrb r0, [r4, #1]
+ lsl r0, r0, #0x1d
+ lsr r1, r0, #0x1f
+ add r0, r5, #0
+ add r0, #0x92
+ strb r1, [r0]
+ add r0, r5, #0
+ ldr r1, [r4, #0x14]
+ add r0, #0x94
+ strh r1, [r0]
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0x96
+ strb r1, [r0]
+ add r0, r5, #0
+ ldr r2, [r4, #0x4c]
+ add r0, #0x98
+ str r2, [r0]
+ str r4, [sp, #0x18]
+ add r7, r5, #0
+ add r2, r4, #0
+ add r3, r5, #0
+_0224D9C2:
+ ldr r0, [sp, #0x18]
+ add r0, #0x50
+ ldrh r6, [r0]
+ add r0, r7, #0
+ add r0, #0x40
+ strh r6, [r0]
+ add r0, r4, r1
+ add r0, #0x58
+ ldrb r6, [r0]
+ add r0, r5, r1
+ str r0, [sp, #0x14]
+ add r0, #0x48
+ str r0, [sp, #0x14]
+ strb r6, [r0]
+ add r0, r4, r1
+ add r0, #0x5c
+ ldrb r6, [r0]
+ add r0, r5, r1
+ str r0, [sp, #0x10]
+ add r0, #0x4c
+ str r0, [sp, #0x10]
+ strb r6, [r0]
+ add r0, r4, r1
+ add r0, #0x60
+ ldrb r6, [r0]
+ add r0, r5, r1
+ str r0, [sp, #0xc]
+ add r0, #0x50
+ str r0, [sp, #0xc]
+ strb r6, [r0]
+ ldr r0, [r2, #0x64]
+ add r1, r1, #1
+ str r0, [r3, #0x54]
+ ldr r0, [sp, #0x18]
+ add r7, r7, #2
+ add r0, r0, #2
+ str r0, [sp, #0x18]
+ add r2, r2, #4
+ add r3, r3, #4
+ cmp r1, #4
+ blt _0224D9C2
+ ldr r0, _0224DA28 ; =MOD11_0224F7C4
+ add r1, r5, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0224DA24: .word 0x00000195
+_0224DA28: .word MOD11_0224F7C4
+
+ thumb_func_start MOD11_0224DA2C
+MOD11_0224DA2C: ; 0x0224DA2C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #5
+ mov r1, #0x74
+ str r2, [sp]
+ bl AllocFromHeap
+ add r2, r0, #0
+ str r5, [r2]
+ str r4, [r2, #4]
+ ldr r0, [r4, #0x20]
+ add r7, r2, #0
+ str r0, [r2, #8]
+ ldr r0, [sp]
+ add r5, r2, #0
+ ldrb r1, [r0]
+ add r0, r2, #0
+ add r0, #0x68
+ strb r1, [r0]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r3, [r4, r0]
+ add r1, r2, #0
+ add r1, #0x69
+ add r0, r0, #1
+ strb r3, [r1]
+ ldrb r1, [r4, r0]
+ add r0, r2, #0
+ add r0, #0x6a
+ strb r1, [r0]
+ add r0, r2, #0
+ mov r1, #0
+ add r0, #0x6b
+ strb r1, [r0]
+ ldr r0, [sp]
+ ldrb r3, [r0, #1]
+ add r0, r2, #0
+ add r0, #0x6c
+ strb r3, [r0]
+ ldr r0, [sp]
+ ldrh r3, [r0, #2]
+ add r0, r2, #0
+ add r0, #0x6e
+ strh r3, [r0]
+ ldr r0, [sp]
+ ldr r3, [sp]
+ ldr r0, [r0, #4]
+ add r4, r3, #0
+ str r0, [r2, #0x70]
+_0224DA92:
+ ldrh r0, [r3, #8]
+ add r3, r3, #2
+ strh r0, [r7, #0x28]
+ ldr r0, [sp]
+ add r7, r7, #2
+ add r0, r0, r1
+ str r0, [sp, #0x10]
+ ldrb r0, [r0, #0x10]
+ str r0, [sp, #8]
+ add r0, r2, r1
+ ldr r6, [sp, #8]
+ add r0, #0x30
+ strb r6, [r0]
+ ldr r0, [sp, #0x10]
+ add r6, r2, r1
+ ldrb r0, [r0, #0x14]
+ str r6, [sp, #4]
+ add r6, #0x34
+ str r0, [sp, #0xc]
+ strb r0, [r6]
+ ldr r0, [sp, #0x10]
+ str r6, [sp, #4]
+ add r6, r2, r1
+ ldrb r0, [r0, #0x18]
+ add r6, #0x38
+ add r1, r1, #1
+ strb r0, [r6]
+ ldr r0, [r4, #0x1c]
+ add r4, r4, #4
+ str r0, [r5, #0x3c]
+ add r5, r5, #4
+ cmp r1, #4
+ blt _0224DA92
+ ldr r0, _0224DAE4 ; =MOD11_0224FD90
+ add r1, r2, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0224DAE4: .word MOD11_0224FD90
+
+ thumb_func_start MOD11_0224DAE8
+MOD11_0224DAE8: ; 0x0224DAE8
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r1, #0
+ mov r0, #5
+ mov r1, #0x10
+ add r6, r2, #0
+ bl AllocFromHeap
+ add r4, r0, #0
+ str r7, [r4]
+ ldr r0, [r5, #0x20]
+ str r0, [r4, #4]
+ ldrb r0, [r6]
+ strb r0, [r4, #8]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r5, r0]
+ add r0, r0, #1
+ strb r1, [r4, #9]
+ ldrb r0, [r5, r0]
+ mov r1, #0
+ add r3, r1, #0
+ strb r0, [r4, #0xa]
+ strb r1, [r4, #0xb]
+ ldrb r0, [r6, #1]
+ strb r0, [r4, #0xc]
+ ldrh r0, [r6, #2]
+ lsl r2, r0, #1
+ ldr r0, _0224DB44 ; =0x0225E84A
+ ldrh r0, [r0, r2]
+ mov r2, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ bl FUN_02007E68
+ ldr r0, [r4, #4]
+ mov r1, #0x2d
+ mov r2, #1
+ bl FUN_02007558
+ ldr r0, _0224DB48 ; =MOD11_0224FFF0
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224DB44: .word 0x0225E84A
+_0224DB48: .word MOD11_0224FFF0
+
+ thumb_func_start MOD11_0224DB4C
+MOD11_0224DB4C: ; 0x0224DB4C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ add r6, r0, #0
+ add r5, r1, #0
+ str r2, [sp, #0x24]
+ bl MOD11_02230068
+ str r0, [sp, #0x2c]
+ mov r0, #5
+ mov r1, #0x24
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r2, #0
+ ldr r0, _0224DCCC ; =0x00000195
+ strb r2, [r4, #0x12]
+ ldrb r0, [r5, r0]
+ mov r1, #1
+ tst r0, r1
+ beq _0224DB9C
+ mov r0, #2
+ strb r0, [r4, #0x13]
+ add r0, r6, #0
+ bl MOD11_02230088
+ str r0, [r4, #8]
+ ldr r1, _0224DCCC ; =0x00000195
+ ldr r0, [r0]
+ ldrb r2, [r5, r1]
+ mov r1, #1
+ and r2, r1
+ add r3, r2, #0
+ mov r1, #6
+ mul r3, r1
+ ldr r1, _0224DCD0 ; =0x0222D550
+ mov r2, #0x58
+ ldrsh r1, [r1, r3]
+ bl FUN_0200C714
+ b _0224DBC2
+_0224DB9C:
+ add r0, r6, #0
+ add r1, r2, #0
+ strb r2, [r4, #0x13]
+ bl MOD11_02230088
+ str r0, [r4, #8]
+ ldr r1, _0224DCCC ; =0x00000195
+ ldr r0, [r0]
+ ldrb r2, [r5, r1]
+ mov r1, #1
+ and r2, r1
+ add r3, r2, #0
+ mov r1, #6
+ mul r3, r1
+ ldr r1, _0224DCD0 ; =0x0222D550
+ mov r2, #0x88
+ ldrsh r1, [r1, r3]
+ bl FUN_0200C714
+_0224DBC2:
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ bne _0224DBE4
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ mov r1, #0x10
+ tst r0, r1
+ beq _0224DBEC
+ ldr r0, _0224DCCC ; =0x00000195
+ ldrb r1, [r5, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _0224DBEC
+_0224DBE4:
+ ldr r0, _0224DCCC ; =0x00000195
+ ldrb r0, [r5, r0]
+ str r0, [sp, #0x28]
+ b _0224DBF6
+_0224DBEC:
+ ldr r0, _0224DCCC ; =0x00000195
+ ldrb r1, [r5, r0]
+ mov r0, #1
+ and r0, r1
+ str r0, [sp, #0x28]
+_0224DBF6:
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ add r0, r6, #0
+ bl MOD11_0223021C
+ add r3, r0, #0
+ ldr r1, [sp, #0x24]
+ lsl r3, r3, #0x18
+ ldrh r1, [r1, #2]
+ ldrb r2, [r4, #0x13]
+ add r0, sp, #0x30
+ lsr r3, r3, #0x18
+ bl FUN_02068FE0
+ ldr r0, [sp, #0x28]
+ mov r1, #6
+ add r7, r0, #0
+ mul r7, r1
+ ldr r0, _0224DCD4 ; =0x0222D552
+ mov r1, #0
+ ldrsh r0, [r0, r7]
+ ldr r3, _0224DCD0 ; =0x0222D550
+ add r2, sp, #0x30
+ str r0, [sp]
+ ldr r0, _0224DCD8 ; =0x0222D554
+ ldrsh r3, [r3, r7]
+ ldrsh r0, [r0, r7]
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x10]
+ mov r0, #0x65
+ str r1, [sp, #0x14]
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ str r0, [sp, #0x18]
+ str r1, [sp, #0x1c]
+ str r1, [sp, #0x20]
+ ldr r1, [sp, #0x2c]
+ add r0, r6, #0
+ bl MOD11_02253A88
+ str r0, [r5, #0x1c]
+ str r0, [r4, #4]
+ ldrb r0, [r4, #0x13]
+ cmp r0, #0
+ bne _0224DC80
+ add r0, r6, #0
+ bl MOD11_0222FF74
+ mov r1, #0x22
+ lsl r1, r1, #4
+ tst r0, r1
+ bne _0224DC80
+ ldr r0, [sp, #0x24]
+ ldrh r0, [r0, #2]
+ bl FUN_0206AA30
+ ldr r3, _0224DCCC ; =0x00000195
+ add r2, r0, #0
+ ldrb r3, [r5, r3]
+ ldr r1, [sp, #0x28]
+ add r0, r6, #0
+ asr r3, r3, #1
+ bl MOD11_02254308
+ str r0, [r5, #0x18]
+ str r0, [r4, #0xc]
+_0224DC80:
+ ldr r0, [sp, #0x28]
+ lsl r1, r0, #2
+ ldr r0, _0224DCDC ; =0x0222D538
+ ldrsh r0, [r0, r1]
+ strh r0, [r4, #0x14]
+ ldr r0, [sp, #0x24]
+ str r6, [r4]
+ ldrb r0, [r0]
+ strb r0, [r4, #0x10]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r5, r0]
+ add r0, r0, #1
+ strb r1, [r4, #0x11]
+ ldrb r0, [r5, r0]
+ str r0, [r4, #0x18]
+ mov r0, #0
+ str r0, [r4, #0x20]
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ beq _0224DCAE
+ cmp r0, #2
+ bne _0224DCBE
+_0224DCAE:
+ add r0, r6, #0
+ bl MOD11_0222FF68
+ mov r1, #3
+ mov r2, #2
+ mov r3, #0x84
+ bl FUN_020179E0
+_0224DCBE:
+ ldr r0, _0224DCE0 ; =MOD11_02250060
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224DCCC: .word 0x00000195
+_0224DCD0: .word 0x0222D550
+_0224DCD4: .word 0x0222D552
+_0224DCD8: .word 0x0222D554
+_0224DCDC: .word 0x0222D538
+_0224DCE0: .word MOD11_02250060
+
+ thumb_func_start MOD11_0224DCE4
+MOD11_0224DCE4: ; 0x0224DCE4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r1, #0
+ mov r0, #5
+ mov r1, #0x1c
+ add r6, r2, #0
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4, #0xa]
+ str r7, [r4]
+ ldrb r1, [r6]
+ strb r1, [r4, #8]
+ ldrb r1, [r6, #1]
+ str r1, [r4, #0x10]
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r2, [r5, r1]
+ strb r2, [r4, #9]
+ str r5, [r4, #4]
+ add r2, r1, #1
+ ldrb r3, [r5, r2]
+ mov r2, #1
+ tst r2, r3
+ beq _0224DD1E
+ mov r1, #2
+ strb r1, [r4, #0xb]
+ b _0224DD30
+_0224DD1E:
+ ldrb r1, [r5, r1]
+ add r0, r7, #0
+ bl MOD11_02230188
+ mov r1, #0
+ strb r1, [r4, #0xb]
+ ldrb r0, [r0, #1]
+ bl FUN_0206AA30
+_0224DD30:
+ str r0, [r4, #0xc]
+ ldr r0, _0224DD40 ; =MOD11_02250338
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224DD40: .word MOD11_02250338
+
+ thumb_func_start MOD11_0224DD44
+MOD11_0224DD44: ; 0x0224DD44
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #5
+ mov r1, #0x10
+ bl AllocFromHeap
+ add r1, r0, #0
+ mov r0, #0
+ strb r0, [r1, #0xa]
+ add r2, r4, #0
+ str r5, [r1]
+ add r2, #0x94
+ ldrb r2, [r2]
+ strb r2, [r1, #8]
+ mov r2, #0x65
+ lsl r2, r2, #2
+ ldrb r3, [r4, r2]
+ add r2, r2, #1
+ strb r3, [r1, #9]
+ str r4, [r1, #4]
+ ldrb r3, [r4, r2]
+ mov r2, #1
+ tst r2, r3
+ beq _0224DD7A
+ mov r0, #2
+ b _0224DD7A
+_0224DD7A:
+ strb r0, [r1, #0xb]
+ ldr r0, _0224DD88 ; =MOD11_022508A4
+ mov r2, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+ nop
+_0224DD88: .word MOD11_022508A4
+
+ thumb_func_start MOD11_0224DD8C
+MOD11_0224DD8C: ; 0x0224DD8C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ str r0, [sp, #0x10]
+ add r5, r1, #0
+ add r7, r2, #0
+ bl MOD11_02230068
+ str r0, [sp, #0x14]
+ mov r0, #5
+ mov r1, #0x10
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r0, #0
+ ldr r1, _0224DE38 ; =0x00000195
+ strb r0, [r4, #0xa]
+ ldrb r2, [r5, r1]
+ mov r1, #1
+ tst r1, r2
+ beq _0224DDB8
+ mov r0, #2
+ b _0224DDB8
+_0224DDB8:
+ mov r1, #0x65
+ strb r0, [r4, #0xb]
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ ldr r0, [sp, #0x10]
+ bl MOD11_0223021C
+ add r3, r0, #0
+ lsl r3, r3, #0x18
+ ldrh r1, [r7, #2]
+ ldrb r2, [r4, #0xb]
+ add r0, sp, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02068FE0
+ ldr r0, _0224DE38 ; =0x00000195
+ mov r1, #6
+ ldrb r2, [r5, r0]
+ sub r0, r0, #1
+ ldr r3, _0224DE3C ; =0x0222D576
+ add r6, r2, #0
+ mul r6, r1
+ ldr r1, _0224DE40 ; =0x0222D578
+ ldr r2, _0224DE44 ; =0x0222D574
+ ldrsh r1, [r1, r6]
+ ldrsh r2, [r2, r6]
+ ldrsh r3, [r3, r6]
+ str r1, [sp]
+ ldrb r0, [r5, r0]
+ add r1, sp, #0x18
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x14]
+ bl FUN_020073A0
+ str r0, [r5, #0x1c]
+ str r0, [r4, #4]
+ ldr r0, _0224DE38 ; =0x00000195
+ ldr r2, _0224DE48 ; =0x0222D538
+ ldrb r1, [r5, r0]
+ sub r0, r0, #1
+ lsl r1, r1, #0x1f
+ lsr r3, r1, #0x1d
+ ldr r1, [r7, #4]
+ add r2, r2, r3
+ lsl r1, r1, #1
+ ldrsh r1, [r1, r2]
+ mov r2, #0
+ strh r1, [r4, #0xc]
+ ldr r1, [sp, #0x10]
+ str r1, [r4]
+ ldrb r1, [r7]
+ strb r1, [r4, #8]
+ ldrb r0, [r5, r0]
+ add r1, r4, #0
+ strb r0, [r4, #9]
+ ldr r0, _0224DE4C ; =MOD11_0225092C
+ bl FUN_0200CA44
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224DE38: .word 0x00000195
+_0224DE3C: .word 0x0222D576
+_0224DE40: .word 0x0222D578
+_0224DE44: .word 0x0222D574
+_0224DE48: .word 0x0222D538
+_0224DE4C: .word MOD11_0225092C
+
+ thumb_func_start MOD11_0224DE50
+MOD11_0224DE50: ; 0x0224DE50
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r4, r6, #0
+ add r4, #0x28
+ add r7, r0, #0
+ add r5, r2, #0
+ mov r0, #0
+ add r1, r4, #0
+ mov r2, #1
+ bl MIi_CpuClearFast
+ mov r0, #0x65
+ str r7, [r4, #0xc]
+ lsl r0, r0, #2
+ ldrb r1, [r6, r0]
+ add r0, r4, #0
+ add r0, #0x24
+ strb r1, [r0]
+ add r0, r7, #0
+ bl MOD11_0222FF74
+ add r1, r0, #0
+ ldr r0, _0224DF10 ; =0x00000195
+ ldrb r0, [r6, r0]
+ bl MOD11_02257F6C
+ add r1, r4, #0
+ add r1, #0x25
+ strb r0, [r1]
+ add r0, r4, #0
+ ldrb r1, [r5]
+ add r0, #0x4c
+ strb r1, [r0]
+ mov r0, #2
+ ldrsh r0, [r5, r0]
+ str r0, [r4, #0x28]
+ ldrh r0, [r5, #4]
+ str r0, [r4, #0x2c]
+ add r0, r4, #0
+ ldrb r1, [r5, #1]
+ add r0, #0x48
+ strb r1, [r0]
+ ldrb r0, [r5, #7]
+ lsl r0, r0, #0x19
+ lsr r1, r0, #0x1e
+ add r0, r4, #0
+ add r0, #0x49
+ strb r1, [r0]
+ mov r1, #0
+ str r1, [r4, #0x30]
+ ldr r0, [r5, #8]
+ str r0, [r4, #0x38]
+ ldr r0, [r5, #0xc]
+ str r0, [r4, #0x3c]
+ add r0, r4, #0
+ ldrb r2, [r5, #6]
+ add r0, #0x26
+ strb r2, [r0]
+ ldrb r0, [r5, #7]
+ lsl r0, r0, #0x1b
+ lsr r2, r0, #0x1b
+ add r0, r4, #0
+ add r0, #0x4a
+ strb r2, [r0]
+ ldrb r0, [r5, #7]
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x1f
+ add r0, r4, #0
+ add r0, #0x4b
+ strb r2, [r0]
+ add r0, r4, #0
+ ldrb r2, [r5, #0x14]
+ add r0, #0x4d
+ strb r2, [r0]
+ add r0, r4, #0
+ ldr r2, [r5, #0x10]
+ add r0, #0x27
+ strb r2, [r0]
+ add r0, r4, #0
+ bl MOD11_022572AC
+ mov r2, #0
+ ldr r1, [r4, #0x28]
+ add r0, r4, #0
+ mvn r2, r2
+ bl MOD11_02256D70
+ mov r2, #0xfa
+ ldr r0, _0224DF14 ; =MOD11_022509B4
+ add r1, r4, #0
+ lsl r2, r2, #2
+ bl FUN_0200CA44
+ str r0, [r4, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224DF10: .word 0x00000195
+_0224DF14: .word MOD11_022509B4
+
+ thumb_func_start MOD11_0224DF18
+MOD11_0224DF18: ; 0x0224DF18
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r5, #0
+ add r4, #0x28
+ add r6, r0, #0
+ mov r0, #0
+ add r1, r4, #0
+ mov r2, #1
+ bl MIi_CpuClearFast
+ mov r0, #0x65
+ str r6, [r4, #0xc]
+ lsl r0, r0, #2
+ ldrb r1, [r5, r0]
+ add r0, r4, #0
+ add r0, #0x24
+ strb r1, [r0]
+ add r5, #0x94
+ add r0, r4, #0
+ ldrb r1, [r5]
+ add r0, #0x4c
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_02257334
+ mov r2, #0xfa
+ ldr r0, _0224DF5C ; =MOD11_02250A28
+ add r1, r4, #0
+ lsl r2, r2, #2
+ bl FUN_0200CA44
+ str r0, [r4, #0x10]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0224DF5C: .word MOD11_02250A28
+
+ thumb_func_start MOD11_0224DF60
+MOD11_0224DF60: ; 0x0224DF60
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ str r1, [sp]
+ mov r0, #5
+ mov r1, #0x3c
+ add r5, r2, #0
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r0, #0
+ add r1, r4, #0
+ mov r2, #0x3c
+ bl MIi_CpuClearFast
+ mov r7, #0
+ strb r7, [r4, #0xa]
+ strb r7, [r4, #0xb]
+ str r6, [r4]
+ ldrb r0, [r5]
+ mov r1, #0x65
+ lsl r1, r1, #2
+ strb r0, [r4, #8]
+ ldr r0, [sp]
+ add r3, r5, #0
+ ldrb r0, [r0, r1]
+ add r1, r1, #1
+ add r6, r4, #0
+ strb r0, [r4, #9]
+ ldr r0, [sp]
+ ldrb r1, [r0, r1]
+ add r0, r4, #0
+ add r0, #0x34
+ strb r1, [r0]
+ ldr r0, [sp]
+ add r0, #0x28
+ str r0, [r4, #4]
+ add r0, r4, #0
+ ldrb r1, [r5, #1]
+ add r0, #0x23
+ strb r1, [r0]
+ mov r0, #0x24
+ ldrsh r0, [r5, r0]
+ strh r0, [r4, #0x36]
+ ldrh r0, [r5, #0x26]
+ strh r0, [r4, #0x38]
+ add r0, r5, #0
+ add r0, #0x28
+ ldrb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x3a
+ strb r1, [r0]
+_0224DFC6:
+ mov r2, #0
+_0224DFC8:
+ add r0, r3, r2
+ ldrb r1, [r0, #8]
+ add r0, r6, r2
+ add r2, r2, #1
+ strb r1, [r0, #0x10]
+ cmp r2, #6
+ blt _0224DFC8
+ add r7, r7, #1
+ add r3, r3, #6
+ add r6, r6, #6
+ cmp r7, #2
+ blt _0224DFC6
+ mov r0, #0
+ add r3, r0, #0
+_0224DFE4:
+ add r2, r5, r0
+ ldrb r1, [r2, #8]
+ cmp r1, #2
+ bne _0224DFF2
+ add r1, r4, r0
+ strb r3, [r1, #0x1c]
+ b _0224DFF8
+_0224DFF2:
+ ldrb r2, [r2, #2]
+ add r1, r4, r0
+ strb r2, [r1, #0x1c]
+_0224DFF8:
+ add r0, r0, #1
+ cmp r0, #6
+ blt _0224DFE4
+ mov r2, #0
+ add r3, r5, #0
+ add r6, r4, #0
+_0224E004:
+ ldrh r0, [r3, #0x14]
+ add r7, r4, r2
+ add r1, r5, r2
+ strh r0, [r6, #0x24]
+ ldrb r0, [r1, #0x1c]
+ add r7, #0x2c
+ add r1, #0x20
+ strb r0, [r7]
+ add r0, r4, r2
+ ldrb r1, [r1]
+ add r0, #0x30
+ add r2, r2, #1
+ strb r1, [r0]
+ add r3, r3, #2
+ add r6, r6, #2
+ cmp r2, #4
+ blt _0224E004
+ ldr r0, [sp]
+ add r1, r4, #0
+ ldr r0, [r0]
+ mov r2, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0224E034
+MOD11_0224E034: ; 0x0224E034
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ str r1, [sp]
+ mov r0, #5
+ mov r1, #0x24
+ add r7, r2, #0
+ bl AllocFromHeap
+ add r3, r0, #0
+ mov r1, #0x65
+ mov r4, #0
+ add r0, #0x20
+ strb r4, [r0]
+ ldr r0, [sp]
+ str r5, [r3]
+ add r0, #0x94
+ ldrb r0, [r0]
+ lsl r1, r1, #2
+ add r5, r7, #0
+ strb r0, [r3, #0x1c]
+ ldr r0, [sp]
+ add r6, r3, #0
+ ldrb r0, [r0, r1]
+ add r1, r1, #1
+ strb r0, [r3, #0x1d]
+ ldr r0, [sp]
+ ldrb r0, [r0, r1]
+ strb r0, [r3, #0x1e]
+ ldr r0, [sp]
+ add r0, #0x28
+ str r0, [r3, #4]
+ ldrb r0, [r7, #1]
+ strb r0, [r3, #0x1f]
+_0224E076:
+ ldrh r0, [r5, #4]
+ add r2, r7, r4
+ add r1, r3, r4
+ strh r0, [r6, #0xc]
+ ldrb r0, [r2, #0xc]
+ add r4, r4, #1
+ add r5, r5, #2
+ strb r0, [r1, #0x14]
+ ldrb r0, [r2, #0x10]
+ add r6, r6, #2
+ cmp r4, #4
+ strb r0, [r1, #0x18]
+ blt _0224E076
+ ldrh r0, [r7, #2]
+ add r1, r3, #0
+ mov r2, #0
+ strh r0, [r3, #0x22]
+ ldr r0, [sp]
+ ldr r0, [r0, #4]
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224E0A4
+MOD11_0224E0A4: ; 0x0224E0A4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r0, [sp]
+ add r7, r1, #0
+ mov r0, #5
+ mov r1, #0x34
+ add r5, r2, #0
+ bl AllocFromHeap
+ add r6, r0, #0
+ mov r0, #0
+ strb r0, [r6, #0xf]
+ ldr r0, [sp]
+ str r0, [r6]
+ add r0, r7, #0
+ add r0, #0x94
+ ldrb r0, [r0]
+ strb r0, [r6, #0xc]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r7, r0]
+ add r0, r0, #1
+ strb r1, [r6, #0xd]
+ ldrb r0, [r7, r0]
+ strb r0, [r6, #0xe]
+ ldrh r0, [r5, #2]
+ strh r0, [r6, #0x30]
+ add r0, r7, #0
+ add r0, #0x28
+ str r0, [r6, #4]
+ add r0, r6, #0
+ ldrb r1, [r5, #1]
+ add r0, #0x32
+ strb r1, [r0]
+ ldr r0, [sp]
+ add r1, sp, #4
+ bl MOD11_02231504
+ ldr r0, [sp]
+ bl MOD11_0222FF84
+ add r4, r0, #0
+ ldr r0, [sp]
+ bl MOD11_0222FF74
+ mov r0, #0
+ cmp r4, #0
+ ble _0224E120
+ add r1, r6, #0
+_0224E106:
+ ldrh r2, [r5, #4]
+ add r0, r0, #1
+ strh r2, [r1, #0x10]
+ ldrh r2, [r5, #6]
+ strh r2, [r1, #0x12]
+ ldrh r2, [r5, #8]
+ strh r2, [r1, #0x14]
+ ldrh r2, [r5, #0xa]
+ add r5, #8
+ strh r2, [r1, #0x16]
+ add r1, #8
+ cmp r0, r4
+ blt _0224E106
+_0224E120:
+ ldr r0, [r7, #8]
+ add r1, r6, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224E130
+MOD11_0224E130: ; 0x0224E130
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ str r1, [sp]
+ mov r0, #5
+ mov r1, #0x34
+ str r2, [sp, #4]
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r0, #5
+ mov r1, #0x34
+ bl AllocFromHeap
+ str r0, [r4, #8]
+ mov r0, #5
+ mov r1, #0x38
+ bl AllocFromHeap
+ ldr r1, [r4, #8]
+ str r0, [r1, #4]
+ mov r0, #5
+ bl FUN_0206B8AC
+ ldr r1, [r4, #8]
+ mov r6, #0
+ ldr r1, [r1, #4]
+ ldr r3, [sp, #4]
+ str r0, [r1]
+ strb r6, [r4, #0xe]
+ str r5, [r4]
+ ldr r0, [sp, #4]
+ mov r1, #0x65
+ ldrb r0, [r0]
+ lsl r1, r1, #2
+ add r5, r4, #0
+ strb r0, [r4, #0xc]
+ ldr r0, [sp]
+ ldrb r0, [r0, r1]
+ add r1, r1, #1
+ strb r0, [r4, #0xd]
+ ldr r0, [sp]
+ ldrb r0, [r0, r1]
+ strb r0, [r4, #0xf]
+ ldr r0, [sp, #4]
+ ldrb r0, [r0, #1]
+ strb r0, [r4, #0x14]
+ ldr r0, [sp, #4]
+ ldrb r0, [r0, #2]
+ strb r0, [r4, #0x15]
+ ldr r0, [sp, #4]
+ ldrb r0, [r0, #3]
+ strb r0, [r4, #0x16]
+_0224E19A:
+ ldr r0, [sp, #4]
+ ldr r1, [r4, #8]
+ add r7, r0, r6
+ ldrb r0, [r7, #4]
+ add r1, r1, r6
+ mov r2, #0
+ strb r0, [r1, #0xc]
+_0224E1A8:
+ add r0, r3, r2
+ ldrb r1, [r0, #8]
+ add r0, r5, r2
+ add r2, r2, #1
+ strb r1, [r0, #0x18]
+ cmp r2, #6
+ blt _0224E1A8
+ add r7, #0x20
+ ldrb r1, [r7]
+ add r0, r4, r6
+ add r0, #0x30
+ add r6, r6, #1
+ strb r1, [r0]
+ add r3, r3, #6
+ add r5, r5, #6
+ cmp r6, #4
+ blt _0224E19A
+ ldr r0, [sp]
+ add r1, r4, #0
+ ldr r0, [r0, #0xc]
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224E1DC
+MOD11_0224E1DC: ; 0x0224E1DC
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #5
+ mov r1, #0x34
+ add r7, r2, #0
+ bl AllocFromHeap
+ add r2, r0, #0
+ mov r3, #0
+ strb r3, [r2, #0xa]
+ str r4, [r2]
+ ldrb r0, [r7]
+ add r5, r7, #0
+ add r6, r2, #0
+ strb r0, [r2, #8]
+ ldrb r0, [r7, #1]
+ strb r0, [r2, #9]
+ ldrb r0, [r7, #2]
+ strb r0, [r2, #0xb]
+ ldr r0, [r7, #0x20]
+ str r0, [r2, #0x10]
+ ldrb r0, [r7, #3]
+ strb r0, [r2, #0x16]
+ add r0, r7, #0
+ strh r3, [r2, #0x14]
+ add r0, #0x24
+ ldrb r0, [r0]
+ strb r0, [r2, #0x18]
+_0224E216:
+ add r0, r7, r3
+ ldrb r1, [r0, #4]
+ add r0, r2, r3
+ mov r4, #0
+ strb r1, [r0, #0xc]
+_0224E220:
+ add r0, r5, r4
+ ldrb r1, [r0, #8]
+ add r0, r6, r4
+ add r4, r4, #1
+ strb r1, [r0, #0x1c]
+ cmp r4, #6
+ blt _0224E220
+ add r3, r3, #1
+ add r5, r5, #6
+ add r6, r6, #6
+ cmp r3, #4
+ blt _0224E216
+ ldr r0, [sp]
+ add r1, r2, #0
+ ldr r0, [r0, #0x10]
+ mov r2, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224E248
+MOD11_0224E248: ; 0x0224E248
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #5
+ mov r1, #0x1c
+ add r4, r2, #0
+ bl AllocFromHeap
+ add r1, r0, #0
+ mov r2, #0
+ strb r2, [r1, #0xe]
+ str r6, [r1]
+ ldrb r0, [r4]
+ strb r0, [r1, #0xc]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ strb r0, [r1, #0xd]
+ add r0, r5, #0
+ add r0, #0x28
+ str r0, [r1, #4]
+ ldrh r0, [r4, #2]
+ str r0, [r1, #0x10]
+ ldrb r0, [r4, #1]
+ strb r0, [r1, #0xf]
+ ldr r0, [r4, #4]
+ strh r0, [r1, #0x18]
+ ldr r0, [r4, #8]
+ str r0, [r1, #0x14]
+ ldr r0, [r5, #0x14]
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224E28C
+MOD11_0224E28C: ; 0x0224E28C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r6, r0, #0
+ add r7, r1, #0
+ add r5, r2, #0
+ bl MOD11_022300C8
+ str r0, [sp]
+ mov r0, #5
+ mov r1, #8
+ bl AllocFromHeap
+ add r4, r0, #0
+ str r6, [r4]
+ ldrb r0, [r5]
+ mov r1, #0x65
+ lsl r1, r1, #2
+ strb r0, [r4, #4]
+ ldrb r0, [r7, r1]
+ strb r0, [r4, #5]
+ ldrh r2, [r5, #2]
+ lsl r0, r2, #1
+ add r2, r2, r0
+ add r0, sp, #4
+ strh r2, [r0, #2]
+ mov r2, #2
+ strb r2, [r0, #1]
+ ldrb r0, [r5, #1]
+ ldrb r1, [r7, r1]
+ lsl r0, r0, #8
+ orr r0, r1
+ str r0, [sp, #8]
+ add r0, r6, #0
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r1, [sp]
+ add r0, r6, #0
+ add r2, sp, #4
+ bl MOD11_0223178C
+ strb r0, [r4, #6]
+ ldr r0, _0224E2F0 ; =MOD11_02253008
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224E2F0: .word MOD11_02253008
+
+ thumb_func_start MOD11_0224E2F4
+MOD11_0224E2F4: ; 0x0224E2F4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ bl MOD11_022300C4
+ str r0, [sp]
+ mov r0, #5
+ mov r1, #8
+ bl AllocFromHeap
+ add r4, r0, #0
+ add r0, r6, #0
+ str r5, [r4]
+ add r0, #0x94
+ ldrb r0, [r0]
+ strb r0, [r4, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r6, r0]
+ strb r0, [r4, #5]
+ add r0, r5, #0
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r1, [sp]
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD11_0223178C
+ strb r0, [r4, #6]
+ ldr r0, _0224E340 ; =MOD11_02253008
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224E340: .word MOD11_02253008
+
+ thumb_func_start MOD11_0224E344
+MOD11_0224E344: ; 0x0224E344
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r6, r1, #0
+ mov r0, #5
+ mov r1, #0x70
+ add r5, r2, #0
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r1, #0
+ add r0, #0x6a
+ strb r1, [r0]
+ str r7, [r4]
+ add r0, r6, #0
+ str r6, [r4, #4]
+ add r0, #0x94
+ ldrb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x68
+ strb r1, [r0]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r6, r0]
+ add r0, r4, #0
+ add r0, #0x69
+ strb r1, [r0]
+ add r0, r7, #0
+ bl MOD11_02230070
+ add r3, r4, #0
+ str r0, [r4, #0xc]
+ add r7, r5, #0
+ add r3, #0x10
+ mov r2, #0xb
+_0224E388:
+ ldmia r7!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0224E388
+ ldr r0, [r6, #0x20]
+ str r0, [r4, #8]
+ ldr r0, [r5, #0x4c]
+ cmp r0, #1
+ bne _0224E3A8
+ ldr r0, [r5, #0x50]
+ cmp r0, #0x19
+ bne _0224E3A8
+ mov r0, #0x1a
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r6, r0]
+_0224E3A8:
+ ldr r0, [r5, #0x4c]
+ cmp r0, #1
+ bne _0224E3BC
+ ldr r0, [r5, #0x50]
+ cmp r0, #0x1a
+ bne _0224E3BC
+ mov r0, #0x1a
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r6, r0]
+_0224E3BC:
+ ldrh r0, [r5, #2]
+ add r1, r4, #0
+ add r1, #0x6c
+ str r0, [sp]
+ add r0, r4, #0
+ ldr r2, [r5, #0x4c]
+ ldr r3, [r5, #0x50]
+ add r0, #0x6b
+ bl MOD11_022545B4
+ ldr r0, _0224E3DC ; =MOD11_02252754
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224E3DC: .word MOD11_02252754
+
+ thumb_func_start MOD11_0224E3E0
+MOD11_0224E3E0: ; 0x0224E3E0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #5
+ mov r1, #0xc
+ bl AllocFromHeap
+ add r1, r0, #0
+ mov r2, #0
+ strb r2, [r1, #9]
+ str r5, [r1]
+ ldr r0, [r4, #0x20]
+ str r0, [r1, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ strb r0, [r1, #8]
+ ldr r0, _0224E40C ; =MOD11_022529C0
+ strb r2, [r1, #0xa]
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0224E40C: .word MOD11_022529C0
+
+ thumb_func_start MOD11_0224E410
+MOD11_0224E410: ; 0x0224E410
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r7, r0, #0
+ ldr r0, [r6, #0x2c]
+ add r5, r2, #0
+ cmp r0, #0
+ bne _0224E422
+ bl ErrorHandling
+_0224E422:
+ add r4, r6, #0
+ add r4, #0x28
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ bl MI_CpuFill8
+ str r7, [r4, #0xc]
+ add r0, r4, #0
+ ldrb r1, [r5]
+ add r0, #0x4c
+ strb r1, [r0]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r6, r0]
+ add r0, r4, #0
+ add r0, #0x24
+ strb r1, [r0]
+ add r0, r7, #0
+ bl MOD11_0222FF74
+ add r1, r0, #0
+ ldr r0, _0224E490 ; =0x00000195
+ ldrb r0, [r6, r0]
+ bl MOD11_02257F6C
+ add r1, r4, #0
+ add r1, #0x25
+ strb r0, [r1]
+ mov r0, #2
+ ldrsh r0, [r5, r0]
+ str r0, [r4, #0x28]
+ ldrh r0, [r5, #4]
+ str r0, [r4, #0x2c]
+ ldr r0, [r5, #8]
+ str r0, [r4, #0x30]
+ add r0, r4, #0
+ ldrb r1, [r5, #1]
+ add r0, #0x48
+ strb r1, [r0]
+ ldr r1, [r5, #8]
+ ldr r0, _0224E494 ; =0x00007FFF
+ cmp r1, r0
+ bne _0224E480
+ mov r0, #0
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x30]
+_0224E480:
+ mov r2, #0xfa
+ ldr r0, _0224E498 ; =MOD11_02252A1C
+ add r1, r4, #0
+ lsl r2, r2, #2
+ bl FUN_0200CA44
+ str r0, [r4, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224E490: .word 0x00000195
+_0224E494: .word 0x00007FFF
+_0224E498: .word MOD11_02252A1C
+
+ thumb_func_start MOD11_0224E49C
+MOD11_0224E49C: ; 0x0224E49C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r7, r0, #0
+ ldr r0, [r6, #0x2c]
+ add r5, r2, #0
+ cmp r0, #0
+ bne _0224E4AE
+ bl ErrorHandling
+_0224E4AE:
+ add r4, r6, #0
+ add r4, #0x28
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ bl MI_CpuFill8
+ str r7, [r4, #0xc]
+ add r0, r4, #0
+ ldrb r1, [r5]
+ add r0, #0x4c
+ strb r1, [r0]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r2, [r6, r0]
+ add r1, r4, #0
+ add r1, #0x24
+ strb r2, [r1]
+ ldr r1, [r5, #4]
+ add r0, r0, #1
+ str r1, [r4, #0x38]
+ ldr r1, [r5, #0xc]
+ str r1, [r4, #0x3c]
+ ldr r2, [r5, #8]
+ ldr r1, [r4, #0x38]
+ sub r1, r2, r1
+ str r1, [r4, #0x40]
+ ldrb r0, [r6, r0]
+ cmp r0, #0
+ bne _0224E4FA
+ mov r2, #0xfa
+ ldr r0, _0224E50C ; =MOD11_02252A70
+ add r1, r4, #0
+ lsl r2, r2, #2
+ bl FUN_0200CA44
+ str r0, [r4, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_0224E4FA:
+ add r1, r4, #0
+ ldr r0, [r4, #0xc]
+ add r1, #0x24
+ add r4, #0x4c
+ ldrb r1, [r1]
+ ldrb r2, [r4]
+ bl MOD11_022567B8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224E50C: .word MOD11_02252A70
+
+ thumb_func_start MOD11_0224E510
+MOD11_0224E510: ; 0x0224E510
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #5
+ mov r1, #0x74
+ str r2, [sp]
+ bl AllocFromHeap
+ add r1, r0, #0
+ ldr r0, _0224E5F0 ; =0x00000195
+ ldrb r2, [r4, r0]
+ mov r0, #1
+ tst r0, r2
+ beq _0224E532
+ mov r2, #2
+ b _0224E534
+_0224E532:
+ mov r2, #0
+_0224E534:
+ add r0, r1, #0
+ add r0, #0x67
+ strb r2, [r0]
+ add r0, r1, #0
+ mov r2, #0
+ add r0, #0x66
+ strb r2, [r0]
+ str r5, [r1]
+ ldr r0, [sp]
+ str r4, [r1, #4]
+ ldrb r3, [r0]
+ add r0, r1, #0
+ add r0, #0x64
+ strb r3, [r0]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r3, [r4, r0]
+ add r0, r1, #0
+ add r0, #0x65
+ strb r3, [r0]
+ ldr r0, [r4, #0x20]
+ add r7, r1, #0
+ str r0, [r1, #8]
+ ldr r0, [sp]
+ add r5, r1, #0
+ ldrh r3, [r0, #2]
+ add r0, r1, #0
+ add r0, #0x68
+ strh r3, [r0]
+ ldr r0, [sp]
+ ldrb r3, [r0, #1]
+ add r0, r1, #0
+ add r0, #0x6a
+ strb r3, [r0]
+ ldr r0, [sp]
+ ldrb r3, [r0, #8]
+ add r0, r1, #0
+ add r0, #0x6b
+ strb r3, [r0]
+ ldr r0, [sp]
+ ldr r0, [r0, #4]
+ str r0, [r1, #0x6c]
+ ldr r0, [sp]
+ ldrb r3, [r0, #9]
+ add r0, r1, #0
+ add r0, #0x70
+ strh r3, [r0]
+ ldr r0, [sp]
+ ldrb r3, [r0, #0xa]
+ add r0, r1, #0
+ add r0, #0x72
+ strh r3, [r0]
+ ldr r3, [sp]
+ add r4, r3, #0
+_0224E5A0:
+ ldrh r0, [r3, #0xc]
+ add r3, r3, #2
+ strh r0, [r7, #0x24]
+ ldr r0, [sp]
+ add r7, r7, #2
+ add r0, r0, r2
+ str r0, [sp, #0x10]
+ ldrb r0, [r0, #0x14]
+ str r0, [sp, #8]
+ add r0, r1, r2
+ ldr r6, [sp, #8]
+ add r0, #0x2c
+ strb r6, [r0]
+ ldr r0, [sp, #0x10]
+ add r6, r1, r2
+ ldrb r0, [r0, #0x18]
+ str r6, [sp, #4]
+ add r6, #0x30
+ str r0, [sp, #0xc]
+ strb r0, [r6]
+ ldr r0, [sp, #0x10]
+ str r6, [sp, #4]
+ add r6, r1, r2
+ ldrb r0, [r0, #0x1c]
+ add r6, #0x34
+ add r2, r2, #1
+ strb r0, [r6]
+ ldr r0, [r4, #0x20]
+ add r4, r4, #4
+ str r0, [r5, #0x38]
+ add r5, r5, #4
+ cmp r2, #4
+ blt _0224E5A0
+ ldr r0, _0224E5F4 ; =MOD11_02252B30
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0224E5F0: .word 0x00000195
+_0224E5F4: .word MOD11_02252B30
+
+ thumb_func_start MOD11_0224E5F8
+MOD11_0224E5F8: ; 0x0224E5F8
+ push {r3, r4, r5, lr}
+ add r5, r2, #0
+ ldr r2, _0224E624 ; =0x00000195
+ mov r4, #1
+ ldrb r2, [r1, r2]
+ tst r2, r4
+ beq _0224E60A
+ mov r4, #0x75
+ b _0224E60C
+_0224E60A:
+ sub r4, #0x76
+_0224E60C:
+ mov r2, #0x65
+ lsl r2, r2, #2
+ ldrb r1, [r1, r2]
+ ldrb r2, [r5]
+ bl MOD11_022567B8
+ ldrh r0, [r5, #2]
+ add r1, r4, #0
+ bl FUN_020054A8
+ pop {r3, r4, r5, pc}
+ nop
+_0224E624: .word 0x00000195
+
+ thumb_func_start MOD11_0224E628
+MOD11_0224E628: ; 0x0224E628
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #5
+ mov r1, #8
+ bl AllocFromHeap
+ add r1, r0, #0
+ mov r2, #0
+ strb r2, [r1, #6]
+ add r0, r4, #0
+ str r5, [r1]
+ add r0, #0x94
+ ldrb r0, [r0]
+ strb r0, [r1, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ strb r0, [r1, #5]
+ ldr r0, _0224E658 ; =MOD11_02252DB4
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+ nop
+_0224E658: .word MOD11_02252DB4
+
+ thumb_func_start MOD11_0224E65C
+MOD11_0224E65C: ; 0x0224E65C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #5
+ mov r1, #0x68
+ str r2, [sp]
+ bl AllocFromHeap
+ add r1, r0, #0
+ str r5, [r1]
+ ldr r0, [sp]
+ str r4, [r1, #4]
+ ldrb r2, [r0]
+ add r0, r1, #0
+ add r0, #0x60
+ strb r2, [r0]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r2, [r4, r0]
+ add r0, r1, #0
+ add r0, #0x61
+ strb r2, [r0]
+ add r0, r1, #0
+ mov r2, #0
+ add r0, #0x62
+ strb r2, [r0]
+ ldr r0, [sp]
+ add r7, r1, #0
+ ldrb r3, [r0, #1]
+ add r0, r1, #0
+ add r0, #0x63
+ strb r3, [r0]
+ ldr r0, [sp]
+ ldr r3, [sp]
+ ldrb r0, [r0, #2]
+ add r4, r3, #0
+ add r5, r1, #0
+ str r0, [r1, #0x64]
+_0224E6AA:
+ ldrh r0, [r3, #4]
+ add r3, r3, #2
+ strh r0, [r7, #0x20]
+ ldr r0, [sp]
+ add r7, r7, #2
+ add r0, r0, r2
+ str r0, [sp, #0x10]
+ ldrb r0, [r0, #0xc]
+ str r0, [sp, #8]
+ add r0, r1, r2
+ ldr r6, [sp, #8]
+ add r0, #0x28
+ strb r6, [r0]
+ ldr r0, [sp, #0x10]
+ add r6, r1, r2
+ ldrb r0, [r0, #0x10]
+ str r6, [sp, #4]
+ add r6, #0x2c
+ str r0, [sp, #0xc]
+ strb r0, [r6]
+ ldr r0, [sp, #0x10]
+ str r6, [sp, #4]
+ add r6, r1, r2
+ ldrb r0, [r0, #0x14]
+ add r6, #0x30
+ add r2, r2, #1
+ strb r0, [r6]
+ ldr r0, [r4, #0x18]
+ add r4, r4, #4
+ str r0, [r5, #0x34]
+ add r5, r5, #4
+ cmp r2, #4
+ blt _0224E6AA
+ ldr r0, _0224E6F8 ; =MOD11_02252E50
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224E6F8: .word MOD11_02252E50
+
+ thumb_func_start MOD11_0224E6FC
+MOD11_0224E6FC: ; 0x0224E6FC
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ ldr r0, [r5, #0x2c]
+ add r4, r2, #0
+ cmp r0, #0
+ bne _0224E70E
+ bl ErrorHandling
+_0224E70E:
+ ldrb r1, [r4, #1]
+ add r0, r5, #0
+ add r0, #0x72
+ strb r1, [r0]
+ add r0, r5, #0
+ mov r2, #1
+ ldr r1, [r5, #0x50]
+ add r0, #0x28
+ lsl r2, r2, #8
+ bl MOD11_02256D70
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ ldrb r2, [r4]
+ add r0, r6, #0
+ bl MOD11_022567B8
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0224E734
+MOD11_0224E734: ; 0x0224E734
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ add r6, r0, #0
+ add r7, r2, #0
+ bl MOD11_02230140
+ str r0, [sp, #4]
+ mov r0, #5
+ mov r1, #8
+ bl AllocFromHeap
+ add r4, r0, #0
+ str r6, [r4]
+ ldrb r0, [r7]
+ strb r0, [r4, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ strb r0, [r4, #5]
+ add r0, r6, #0
+ bl MOD11_02230E54
+ str r0, [sp]
+ mov r2, #0x65
+ lsl r2, r2, #2
+ ldrb r2, [r5, r2]
+ ldrb r3, [r7, #1]
+ ldr r1, [sp, #4]
+ add r0, r6, #0
+ bl MOD11_02231684
+ strb r0, [r4, #6]
+ ldr r0, _0224E78C ; =MOD11_02253008
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224E78C: .word MOD11_02253008
+
+ thumb_func_start MOD11_0224E790
+MOD11_0224E790: ; 0x0224E790
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ add r3, sp, #4
+ add r6, r1, #0
+ add r7, r2, #0
+ bl MOD11_02253B74
+ add r0, r5, #0
+ bl MOD11_022300C4
+ str r0, [sp]
+ mov r0, #5
+ mov r1, #8
+ bl AllocFromHeap
+ add r4, r0, #0
+ str r5, [r4]
+ ldrb r0, [r7]
+ strb r0, [r4, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r6, r0]
+ strb r0, [r4, #5]
+ add r0, r5, #0
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r1, [sp]
+ add r0, r5, #0
+ add r2, sp, #4
+ bl MOD11_0223178C
+ strb r0, [r4, #6]
+ ldr r0, _0224E7E4 ; =MOD11_02253008
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224E7E4: .word MOD11_02253008
+
+ thumb_func_start MOD11_0224E7E8
+MOD11_0224E7E8: ; 0x0224E7E8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ add r3, sp, #4
+ add r6, r1, #0
+ add r7, r2, #0
+ bl MOD11_02253C48
+ add r0, r5, #0
+ bl MOD11_022300C4
+ str r0, [sp]
+ mov r0, #5
+ mov r1, #8
+ bl AllocFromHeap
+ add r4, r0, #0
+ str r5, [r4]
+ ldrb r0, [r7]
+ strb r0, [r4, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r6, r0]
+ strb r0, [r4, #5]
+ add r0, r5, #0
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r1, [sp]
+ add r0, r5, #0
+ add r2, sp, #4
+ bl MOD11_0223178C
+ strb r0, [r4, #6]
+ ldr r0, _0224E83C ; =MOD11_02253008
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224E83C: .word MOD11_02253008
+
+ thumb_func_start MOD11_0224E840
+MOD11_0224E840: ; 0x0224E840
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ add r2, sp, #0
+ add r6, r1, #0
+ bl MOD11_02253D28
+ add r0, r5, #0
+ bl MOD11_022300C4
+ add r7, r0, #0
+ mov r0, #5
+ mov r1, #8
+ bl AllocFromHeap
+ add r4, r0, #0
+ str r5, [r4]
+ mov r0, #0x22
+ strb r0, [r4, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r6, r0]
+ strb r0, [r4, #5]
+ add r0, r5, #0
+ bl MOD11_02230E54
+ add r3, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, sp, #0
+ bl MOD11_0223178C
+ strb r0, [r4, #6]
+ ldr r0, _0224E890 ; =MOD11_02253008
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224E890: .word MOD11_02253008
+
+ thumb_func_start MOD11_0224E894
+MOD11_0224E894: ; 0x0224E894
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ add r3, sp, #4
+ add r6, r1, #0
+ add r7, r2, #0
+ bl MOD11_02253DD4
+ add r0, r5, #0
+ bl MOD11_022300C4
+ str r0, [sp]
+ mov r0, #5
+ mov r1, #8
+ bl AllocFromHeap
+ add r4, r0, #0
+ str r5, [r4]
+ ldrb r0, [r7]
+ strb r0, [r4, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r6, r0]
+ strb r0, [r4, #5]
+ add r0, r5, #0
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r1, [sp]
+ add r0, r5, #0
+ add r2, sp, #4
+ bl MOD11_0223178C
+ strb r0, [r4, #6]
+ ldr r0, _0224E8E8 ; =MOD11_02253008
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0224E8E8: .word MOD11_02253008
+
+ thumb_func_start MOD11_0224E8EC
+MOD11_0224E8EC: ; 0x0224E8EC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #5
+ mov r1, #0xc
+ bl AllocFromHeap
+ add r1, r0, #0
+ add r0, r4, #0
+ str r5, [r1]
+ add r0, #0x94
+ ldrb r0, [r0]
+ mov r2, #0
+ strb r0, [r1, #8]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ add r4, #0x28
+ strb r0, [r1, #9]
+ strb r2, [r1, #0xa]
+ ldr r0, _0224E920 ; =MOD11_02252FBC
+ str r4, [r1, #4]
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+ nop
+_0224E920: .word MOD11_02252FBC
+
+ thumb_func_start MOD11_0224E924
+MOD11_0224E924: ; 0x0224E924
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ ldr r1, _0224E9B8 ; =0x00000196
+ add r4, r2, #0
+ ldrb r2, [r5, r1]
+ add r6, r0, #0
+ cmp r2, #0
+ bne _0224E976
+ bl MOD11_022300C4
+ str r0, [sp]
+ mov r0, #5
+ mov r1, #0xc
+ bl AllocFromHeap
+ add r7, r0, #0
+ str r6, [r7]
+ ldrb r0, [r4]
+ strb r0, [r7, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ strb r0, [r7, #5]
+ mov r0, #0
+ strb r0, [r7, #7]
+ add r0, r6, #0
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r1, [sp]
+ add r0, r6, #0
+ add r2, r4, #4
+ bl MOD11_0223178C
+ strb r0, [r7, #6]
+ ldr r0, _0224E9BC ; =MOD11_0225304C
+ add r1, r7, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, r6, r7, pc}
+_0224E976:
+ cmp r2, #1
+ bne _0224E992
+ sub r1, r1, #2
+ ldrb r1, [r5, r1]
+ bl MOD11_02256004
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ ldrb r2, [r4]
+ add r0, r6, #0
+ bl MOD11_022567B8
+ pop {r3, r4, r5, r6, r7, pc}
+_0224E992:
+ bl MOD11_0222FF74
+ mov r1, #4
+ tst r0, r1
+ bne _0224E9A8
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ add r0, r6, #0
+ bl MOD11_02256004
+_0224E9A8:
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ ldrb r2, [r4]
+ add r0, r6, #0
+ bl MOD11_022567B8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224E9B8: .word 0x00000196
+_0224E9BC: .word MOD11_0225304C
+
+ thumb_func_start MOD11_0224E9C0
+MOD11_0224E9C0: ; 0x0224E9C0
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r4, r6, #0
+ add r4, #0x28
+ add r7, r0, #0
+ add r5, r2, #0
+ mov r0, #0
+ add r1, r4, #0
+ mov r2, #1
+ bl MIi_CpuClearFast
+ mov r0, #0x65
+ str r7, [r4, #0xc]
+ lsl r0, r0, #2
+ ldrb r1, [r6, r0]
+ add r0, r4, #0
+ add r0, #0x24
+ strb r1, [r0]
+ add r0, r7, #0
+ bl MOD11_0222FF74
+ add r1, r0, #0
+ ldr r0, _0224EA70 ; =0x00000195
+ ldrb r0, [r6, r0]
+ bl MOD11_02257F6C
+ add r1, r4, #0
+ add r1, #0x25
+ strb r0, [r1]
+ add r0, r4, #0
+ ldrb r1, [r5]
+ add r0, #0x4c
+ mov r2, #0
+ strb r1, [r0]
+ mov r0, #2
+ ldrsh r0, [r5, r0]
+ str r0, [r4, #0x28]
+ ldrh r0, [r5, #4]
+ str r0, [r4, #0x2c]
+ add r0, r4, #0
+ ldrb r1, [r5, #1]
+ add r0, #0x48
+ strb r1, [r0]
+ ldrb r0, [r5, #7]
+ lsl r0, r0, #0x19
+ lsr r1, r0, #0x1e
+ add r0, r4, #0
+ add r0, #0x49
+ strb r1, [r0]
+ str r2, [r4, #0x30]
+ ldr r0, [r5, #8]
+ sub r2, #0x21
+ str r0, [r4, #0x38]
+ ldr r0, [r5, #0xc]
+ str r0, [r4, #0x3c]
+ add r0, r4, #0
+ ldrb r1, [r5, #6]
+ add r0, #0x26
+ strb r1, [r0]
+ ldrb r0, [r5, #7]
+ lsl r0, r0, #0x1b
+ lsr r1, r0, #0x1b
+ add r0, r4, #0
+ add r0, #0x4a
+ strb r1, [r0]
+ ldrb r0, [r5, #7]
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x1f
+ add r0, r4, #0
+ add r0, #0x4b
+ strb r1, [r0]
+ add r0, r4, #0
+ ldr r1, [r5, #0x10]
+ add r0, #0x27
+ strb r1, [r0]
+ ldr r1, [r4, #0x28]
+ add r0, r4, #0
+ bl MOD11_02256D70
+ add r1, r4, #0
+ ldr r0, [r4, #0xc]
+ add r1, #0x24
+ add r4, #0x4c
+ ldrb r1, [r1]
+ ldrb r2, [r4]
+ bl MOD11_022567B8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224EA70: .word 0x00000195
+
+ thumb_func_start MOD11_0224EA74
+MOD11_0224EA74: ; 0x0224EA74
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #5
+ mov r1, #0x10
+ add r4, r2, #0
+ bl AllocFromHeap
+ add r1, r0, #0
+ mov r2, #0
+ strb r2, [r1, #0xa]
+ str r5, [r1]
+ ldrb r0, [r4]
+ strb r0, [r1, #8]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r6, r0]
+ strb r0, [r1, #9]
+ ldrh r0, [r4, #2]
+ strh r0, [r1, #0xc]
+ ldrb r0, [r4, #1]
+ strb r0, [r1, #0xe]
+ ldr r0, _0224EAA8 ; =MOD11_022533F4
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0224EAA8: .word MOD11_022533F4
+
+ thumb_func_start MOD11_0224EAAC
+MOD11_0224EAAC: ; 0x0224EAAC
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #5
+ mov r1, #0x10
+ add r4, r2, #0
+ bl AllocFromHeap
+ add r1, r0, #0
+ mov r2, #0
+ strb r2, [r1, #0xa]
+ str r6, [r1]
+ ldr r0, [r5, #0x20]
+ str r0, [r1, #4]
+ ldrb r0, [r4]
+ strb r0, [r1, #8]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ strb r0, [r1, #9]
+ ldrb r0, [r4, #1]
+ strb r0, [r1, #0xb]
+ strb r2, [r1, #0xc]
+ ldrb r0, [r4, #2]
+ strb r0, [r1, #0xd]
+ ldr r0, _0224EAE8 ; =MOD11_0225352C
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+ nop
+_0224EAE8: .word MOD11_0225352C
+
+ thumb_func_start MOD11_0224EAEC
+MOD11_0224EAEC: ; 0x0224EAEC
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #5
+ mov r1, #0x10
+ add r4, r2, #0
+ bl AllocFromHeap
+ add r1, r0, #0
+ mov r0, #0
+ strb r0, [r1, #7]
+ str r6, [r1]
+ ldrb r2, [r4]
+ strb r2, [r1, #4]
+ mov r2, #0x65
+ lsl r2, r2, #2
+ ldrb r3, [r5, r2]
+ add r2, r2, #1
+ strb r3, [r1, #5]
+ ldrb r2, [r5, r2]
+ strb r2, [r1, #6]
+_0224EB16:
+ add r2, r4, r0
+ ldrb r3, [r2, #2]
+ add r2, r1, r0
+ add r0, r0, #1
+ strb r3, [r2, #8]
+ cmp r0, #6
+ blt _0224EB16
+ ldr r0, _0224EB30 ; =MOD11_0225359C
+ mov r2, #0
+ strb r2, [r1, #0xe]
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0224EB30: .word MOD11_0225359C
+
+ thumb_func_start MOD11_0224EB34
+MOD11_0224EB34: ; 0x0224EB34
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #5
+ mov r1, #0x10
+ add r6, r2, #0
+ bl AllocFromHeap
+ add r1, r0, #0
+ mov r2, #0
+ strb r2, [r1, #7]
+ str r5, [r1]
+ ldrb r0, [r6]
+ strb r0, [r1, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r3, [r4, r0]
+ add r0, r0, #1
+ strb r3, [r1, #5]
+ ldrb r0, [r4, r0]
+ strb r0, [r1, #6]
+ ldr r0, _0224EB68 ; =MOD11_02253650
+ strb r2, [r1, #0xe]
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0224EB68: .word MOD11_02253650
+
+ thumb_func_start MOD11_0224EB6C
+MOD11_0224EB6C: ; 0x0224EB6C
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #5
+ mov r1, #0x10
+ add r4, r2, #0
+ bl AllocFromHeap
+ add r1, r0, #0
+ mov r0, #0
+ strb r0, [r1, #7]
+ str r6, [r1]
+ ldrb r2, [r4]
+ strb r2, [r1, #4]
+ mov r2, #0x65
+ lsl r2, r2, #2
+ ldrb r3, [r5, r2]
+ add r2, r2, #1
+ strb r3, [r1, #5]
+ ldrb r2, [r5, r2]
+ strb r2, [r1, #6]
+_0224EB96:
+ add r2, r4, r0
+ ldrb r3, [r2, #2]
+ add r2, r1, r0
+ add r0, r0, #1
+ strb r3, [r2, #8]
+ cmp r0, #6
+ blt _0224EB96
+ mov r0, #1
+ strb r0, [r1, #0xe]
+ ldr r0, _0224EBB4 ; =MOD11_0225359C
+ mov r2, #0
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+ nop
+_0224EBB4: .word MOD11_0225359C
+
+ thumb_func_start MOD11_0224EBB8
+MOD11_0224EBB8: ; 0x0224EBB8
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #5
+ mov r1, #0x10
+ add r6, r2, #0
+ bl AllocFromHeap
+ add r1, r0, #0
+ mov r2, #0
+ strb r2, [r1, #7]
+ str r5, [r1]
+ ldrb r0, [r6]
+ strb r0, [r1, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r3, [r4, r0]
+ add r0, r0, #1
+ strb r3, [r1, #5]
+ ldrb r0, [r4, r0]
+ strb r0, [r1, #6]
+ mov r0, #1
+ strb r0, [r1, #0xe]
+ ldr r0, _0224EBF0 ; =MOD11_02253650
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+ nop
+_0224EBF0: .word MOD11_02253650
+
+ thumb_func_start MOD11_0224EBF4
+MOD11_0224EBF4: ; 0x0224EBF4
+ push {r4, r5, lr}
+ sub sp, #0x24
+ add r4, r1, #0
+ ldr r1, _0224EC44 ; =0x00000196
+ add r5, r0, #0
+ ldrb r1, [r4, r1]
+ cmp r1, #0
+ bne _0224EC32
+ bl MOD11_022300C4
+ add r1, r0, #0
+ ldr r2, _0224EC48 ; =0x0000039B
+ add r0, sp, #0
+ strh r2, [r0, #2]
+ mov r3, #0
+ strb r3, [r0, #1]
+ add r0, r5, #0
+ add r2, sp, #0
+ bl MOD11_0223178C
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD11_0222FF6C
+ mov r1, #1
+ bl FUN_0200D858
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD11_022312C8
+_0224EC32:
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ mov r2, #0x37
+ bl MOD11_022567B8
+ add sp, #0x24
+ pop {r4, r5, pc}
+ .align 2, 0
+_0224EC44: .word 0x00000196
+_0224EC48: .word 0x0000039B
+
+ thumb_func_start MOD11_0224EC4C
+MOD11_0224EC4C: ; 0x0224EC4C
+ push {r4, r5, r6, lr}
+ sub sp, #0x50
+ mov r3, #0x65
+ add r4, r1, #0
+ lsl r3, r3, #2
+ add r6, r2, #0
+ ldrb r3, [r4, r3]
+ add r1, r6, #0
+ add r2, sp, #0
+ add r5, r0, #0
+ bl MOD11_0225452C
+ add r0, sp, #0
+ mov r1, #5
+ bl MOD08_0222A494
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ ldrb r2, [r6]
+ add r0, r5, #0
+ bl MOD11_022567B8
+ add sp, #0x50
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224EC80
+MOD11_0224EC80: ; 0x0224EC80
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #5
+ mov r1, #0x10
+ bl AllocFromHeap
+ add r1, r0, #0
+ mov r2, #0
+ strb r2, [r1, #0xe]
+ str r5, [r1]
+ add r0, r4, #0
+ str r4, [r1, #4]
+ add r0, #0x94
+ ldrb r0, [r0]
+ strb r0, [r1, #0xc]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ strb r0, [r1, #0xd]
+ ldr r0, [r4, #0x20]
+ str r0, [r1, #8]
+ ldr r0, _0224ECB4 ; =MOD11_022536D4
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0224ECB4: .word MOD11_022536D4
+
+ thumb_func_start MOD11_0224ECB8
+MOD11_0224ECB8: ; 0x0224ECB8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #5
+ mov r1, #0x10
+ bl AllocFromHeap
+ add r1, r0, #0
+ mov r2, #0
+ strb r2, [r1, #0xe]
+ str r5, [r1]
+ add r0, r4, #0
+ str r4, [r1, #4]
+ add r0, #0x94
+ ldrb r0, [r0]
+ strb r0, [r1, #0xc]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ strb r0, [r1, #0xd]
+ ldr r0, [r4, #0x20]
+ str r0, [r1, #8]
+ ldr r0, _0224ECEC ; =MOD11_02253720
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0224ECEC: .word MOD11_02253720
+
+ thumb_func_start MOD11_0224ECF0
+MOD11_0224ECF0: ; 0x0224ECF0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ add r2, sp, #0
+ add r6, r1, #0
+ bl MOD11_02254108
+ add r0, r5, #0
+ bl MOD11_022300C4
+ add r7, r0, #0
+ mov r0, #5
+ mov r1, #8
+ bl AllocFromHeap
+ add r4, r0, #0
+ str r5, [r4]
+ mov r0, #0x3b
+ strb r0, [r4, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r6, r0]
+ strb r0, [r4, #5]
+ add r0, r5, #0
+ bl MOD11_02230E54
+ add r3, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, sp, #0
+ bl MOD11_0223178C
+ strb r0, [r4, #6]
+ ldr r0, _0224ED40 ; =MOD11_02253008
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224ED40: .word MOD11_02253008
+
+ thumb_func_start MOD11_0224ED44
+MOD11_0224ED44: ; 0x0224ED44
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ add r3, sp, #0
+ add r6, r1, #0
+ bl MOD11_022541C4
+ add r0, r5, #0
+ bl MOD11_022300C4
+ add r7, r0, #0
+ mov r0, #5
+ mov r1, #8
+ bl AllocFromHeap
+ add r4, r0, #0
+ str r5, [r4]
+ mov r0, #0x3c
+ strb r0, [r4, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r6, r0]
+ strb r0, [r4, #5]
+ add r0, r5, #0
+ bl MOD11_02230E54
+ add r3, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, sp, #0
+ bl MOD11_0223178C
+ strb r0, [r4, #6]
+ ldr r0, _0224ED94 ; =MOD11_02253008
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224ED94: .word MOD11_02253008
+
+ thumb_func_start MOD11_0224ED98
+MOD11_0224ED98: ; 0x0224ED98
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ add r2, sp, #0
+ add r6, r1, #0
+ bl MOD11_022542B4
+ add r0, r5, #0
+ bl MOD11_022300C4
+ add r7, r0, #0
+ mov r0, #5
+ mov r1, #8
+ bl AllocFromHeap
+ add r4, r0, #0
+ str r5, [r4]
+ mov r0, #0x3d
+ strb r0, [r4, #4]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r6, r0]
+ strb r0, [r4, #5]
+ add r0, r5, #0
+ bl MOD11_02230E54
+ add r3, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, sp, #0
+ bl MOD11_0223178C
+ strb r0, [r4, #6]
+ ldr r0, _0224EDE8 ; =MOD11_02253008
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0224EDE8: .word MOD11_02253008
+
+ thumb_func_start MOD11_0224EDEC
+MOD11_0224EDEC: ; 0x0224EDEC
+ push {r4, r5, r6, lr}
+ sub sp, #0x50
+ mov r3, #0x65
+ add r4, r1, #0
+ lsl r3, r3, #2
+ add r6, r2, #0
+ ldrb r3, [r4, r3]
+ add r1, r6, #0
+ add r2, sp, #0
+ add r5, r0, #0
+ bl MOD11_0225452C
+ add r0, sp, #0
+ mov r1, #5
+ bl MOD08_0222A568
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r4, r1]
+ ldrb r2, [r6]
+ add r0, r5, #0
+ bl MOD11_022567B8
+ add sp, #0x50
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224EE20
+MOD11_0224EE20: ; 0x0224EE20
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ ldr r0, _0224EE70 ; =0x00000195
+ mov r1, #1
+ ldrb r0, [r5, r0]
+ add r4, r2, #0
+ tst r0, r1
+ beq _0224EE36
+ mov r1, #0x75
+ b _0224EE38
+_0224EE36:
+ sub r1, #0x76
+_0224EE38:
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _0224EE48
+ cmp r0, #1
+ beq _0224EE58
+ cmp r0, #2
+ beq _0224EE50
+ b _0224EE5E
+_0224EE48:
+ ldr r0, _0224EE74 ; =0x000006FE
+ bl FUN_020054A8
+ b _0224EE5E
+_0224EE50:
+ ldr r0, _0224EE78 ; =0x000006FC
+ bl FUN_020054A8
+ b _0224EE5E
+_0224EE58:
+ ldr r0, _0224EE7C ; =0x000006FD
+ bl FUN_020054A8
+_0224EE5E:
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ ldrb r2, [r4]
+ add r0, r6, #0
+ bl MOD11_022567B8
+ pop {r4, r5, r6, pc}
+ nop
+_0224EE70: .word 0x00000195
+_0224EE74: .word 0x000006FE
+_0224EE78: .word 0x000006FC
+_0224EE7C: .word 0x000006FD
+
+ thumb_func_start MOD11_0224EE80
+MOD11_0224EE80: ; 0x0224EE80
+ push {r4, r5, r6, lr}
+ add r4, r2, #0
+ add r6, r0, #0
+ ldrh r0, [r4, #2]
+ add r5, r1, #0
+ bl FUN_0200521C
+ mov r1, #0x65
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ ldrb r2, [r4]
+ add r0, r6, #0
+ bl MOD11_022567B8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0224EEA0
+MOD11_0224EEA0: ; 0x0224EEA0
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x6c
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230070
+ ldrb r1, [r4, #0x12]
+ add r5, r0, #0
+ cmp r1, #5
+ bls _0224EEB8
+ b _0224F2C2
+_0224EEB8:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0224EEC4: ; jump table
+ .short _0224EED0 - _0224EEC4 - 2 ; case 0
+ .short _0224EEDA - _0224EEC4 - 2 ; case 1
+ .short _0224EEE8 - _0224EEC4 - 2 ; case 2
+ .short _0224F15E - _0224EEC4 - 2 ; case 3
+ .short _0224F1B2 - _0224EEC4 - 2 ; case 4
+ .short _0224F1D0 - _0224EEC4 - 2 ; case 5
+_0224EED0:
+ mov r0, #0x1c
+ str r0, [r4, #0x20]
+ ldrb r0, [r4, #0x12]
+ add r0, r0, #1
+ strb r0, [r4, #0x12]
+_0224EEDA:
+ ldr r0, [r4, #0x20]
+ sub r0, r0, #1
+ str r0, [r4, #0x20]
+ bne _0224EFAE
+ ldrb r0, [r4, #0x12]
+ add r0, r0, #1
+ strb r0, [r4, #0x12]
+_0224EEE8:
+ ldrb r0, [r4, #0x13]
+ add r1, sp, #0x10
+ cmp r0, #2
+ ldr r0, [r4, #0xc]
+ beq _0224EEF4
+ b _0224F040
+_0224EEF4:
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0x10
+ bl FUN_0200C7A0
+ ldr r0, [r4, #0x1c]
+ cmp r0, #1
+ beq _0224EF08
+ cmp r0, #3
+ bne _0224EF2A
+_0224EF08:
+ add r1, sp, #0x10
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ cmp r0, #0xc0
+ ldr r0, [r4, #0xc]
+ bge _0224EF20
+ ldr r0, [r0]
+ mov r1, #8
+ mov r2, #0
+ bl FUN_0200C82C
+ b _0224EF2A
+_0224EF20:
+ ldr r0, [r0]
+ mov r1, #0xc0
+ mov r2, #0x58
+ bl FUN_0200C714
+_0224EF2A:
+ ldr r0, [r4, #0xc]
+ add r1, sp, #0x10
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0x10
+ bl FUN_0200C7A0
+ ldr r0, [r4, #0x1c]
+ cmp r0, #1
+ bne _0224EF4E
+ add r3, sp, #0x10
+ mov r2, #2
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_02007558
+ b _0224EF9E
+_0224EF4E:
+ cmp r0, #3
+ bne _0224EF78
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ add r3, sp, #0x10
+ mov r2, #2
+ ldrsh r1, [r3, r2]
+ sub r0, r0, r1
+ strh r0, [r3, #2]
+ ldrsh r0, [r3, r2]
+ mov r1, #0
+ sub r0, #0x18
+ strh r0, [r3, #2]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #8]
+ neg r2, r2
+ bl FUN_020079E0
+ b _0224EF9E
+_0224EF78:
+ cmp r0, #5
+ bne _0224EF9E
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ add r3, sp, #0x10
+ mov r2, #2
+ ldrsh r1, [r3, r2]
+ sub r0, r1, r0
+ strh r0, [r3, #2]
+ ldrsh r0, [r3, r2]
+ mov r1, #0
+ sub r0, #0x10
+ strh r0, [r3, #2]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #8]
+ bl FUN_020079E0
+_0224EF9E:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ mov r1, #0x14
+ ldrsh r1, [r4, r1]
+ cmp r0, r1
+ bge _0224EFB0
+_0224EFAE:
+ b _0224F2D8
+_0224EFB0:
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_02007314
+ ldr r0, [r4, #8]
+ mov r1, #0x2c
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #8]
+ mov r1, #0x2d
+ mov r2, #0
+ bl FUN_02007558
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_02007558
+ ldr r0, [r4]
+ bl MOD11_02230E80
+ ldr r1, [r4, #0x24]
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ ldrb r1, [r4, #0x11]
+ str r1, [sp, #8]
+ ldrh r2, [r4, #0x16]
+ ldrb r3, [r4, #0x13]
+ ldr r1, [r4, #8]
+ bl FUN_02069038
+ ldrb r1, [r4, #0x11]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r1, #5
+ str r1, [sp, #8]
+ ldrh r2, [r4, #0x16]
+ ldr r1, [r4, #0x18]
+ mov r3, #0x75
+ bl FUN_02069FB0
+ ldr r0, [r4, #0x1c]
+ cmp r0, #1
+ beq _0224F01C
+ cmp r0, #3
+ bne _0224F028
+_0224F01C:
+ ldr r0, [r4, #0xc]
+ mov r1, #0xc0
+ ldr r0, [r0]
+ mov r2, #0x58
+ bl FUN_0200C714
+_0224F028:
+ mov r2, #0
+ str r2, [sp]
+ ldr r0, [r4, #8]
+ mov r1, #8
+ add r3, r2, #0
+ bl FUN_02007E68
+ ldrb r0, [r4, #0x12]
+ add sp, #0x6c
+ add r0, r0, #1
+ strb r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, pc}
+_0224F040:
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0x10
+ bl FUN_0200C7A0
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _0224F054
+ cmp r0, #2
+ bne _0224F076
+_0224F054:
+ add r0, sp, #0x10
+ mov r1, #2
+ ldrsh r0, [r0, r1]
+ cmp r0, #0x40
+ ldr r0, [r4, #0xc]
+ ble _0224F06C
+ ldr r0, [r0]
+ sub r1, #0xa
+ mov r2, #0
+ bl FUN_0200C82C
+ b _0224F076
+_0224F06C:
+ ldr r0, [r0]
+ mov r1, #0x40
+ mov r2, #0x88
+ bl FUN_0200C714
+_0224F076:
+ ldr r0, [r4, #0xc]
+ add r1, sp, #0x10
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0x10
+ bl FUN_0200C7A0
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ bne _0224F09A
+ add r3, sp, #0x10
+ mov r2, #2
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_02007558
+ b _0224F0EA
+_0224F09A:
+ cmp r0, #2
+ bne _0224F0C2
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ add r3, sp, #0x10
+ mov r2, #2
+ ldrsh r1, [r3, r2]
+ sub r0, r1, r0
+ strh r0, [r3, #2]
+ ldrsh r0, [r3, r2]
+ mov r1, #0
+ sub r0, #0x18
+ strh r0, [r3, #2]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #8]
+ bl FUN_020079E0
+ b _0224F0EA
+_0224F0C2:
+ cmp r0, #4
+ bne _0224F0EA
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ add r3, sp, #0x10
+ mov r2, #2
+ ldrsh r1, [r3, r2]
+ sub r0, r0, r1
+ strh r0, [r3, #2]
+ ldrsh r0, [r3, r2]
+ mov r1, #0
+ sub r0, #0x10
+ strh r0, [r3, #2]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #8]
+ neg r2, r2
+ bl FUN_020079E0
+_0224F0EA:
+ mov r0, #0x14
+ ldrsh r5, [r4, r0]
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_0200782C
+ cmp r0, r5
+ bgt _0224F1C0
+ ldr r0, [r4, #8]
+ mov r1, #0
+ add r2, r5, #0
+ bl FUN_02007558
+ ldr r0, [r4]
+ bl MOD11_02230E80
+ ldr r1, [r4, #0x24]
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ ldrb r1, [r4, #0x11]
+ str r1, [sp, #8]
+ ldrh r2, [r4, #0x16]
+ ldrb r3, [r4, #0x13]
+ ldr r1, [r4, #8]
+ bl FUN_02069038
+ ldrb r1, [r4, #0x11]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r3, #5
+ str r3, [sp, #8]
+ ldrh r2, [r4, #0x16]
+ ldr r1, [r4, #0x18]
+ sub r3, #0x7a
+ bl FUN_02069FB0
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _0224F148
+ cmp r0, #2
+ bne _0224F154
+_0224F148:
+ ldr r0, [r4, #0xc]
+ mov r1, #0x40
+ ldr r0, [r0]
+ mov r2, #0x88
+ bl FUN_0200C714
+_0224F154:
+ ldrb r0, [r4, #0x12]
+ add sp, #0x6c
+ add r0, r0, #1
+ strb r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, pc}
+_0224F15E:
+ ldr r0, [r4]
+ bl MOD11_02230E80
+ ldrb r1, [r4, #0x11]
+ bl FUN_02014D7C
+ cmp r0, #1
+ bne _0224F1C0
+ ldr r0, [r4, #8]
+ bl FUN_02007390
+ cmp r0, #0
+ bne _0224F1C0
+ ldr r0, [r4, #0x28]
+ cmp r0, #0
+ beq _0224F1AA
+ ldrb r1, [r4, #0x11]
+ mov r0, #0xb
+ add r2, sp, #0x14
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r5, #0
+ add r3, sp, #0x14
+ bl MOD11_02254404
+ mov r0, #4
+ add sp, #0x6c
+ strb r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, pc}
+_0224F1AA:
+ mov r0, #0xff
+ add sp, #0x6c
+ strb r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, pc}
+_0224F1B2:
+ bl MOD08_02212384
+ add r0, r5, #0
+ bl MOD08_022123A0
+ cmp r0, #0
+ beq _0224F1C2
+_0224F1C0:
+ b _0224F2D8
+_0224F1C2:
+ add r0, r5, #0
+ bl MOD08_022123B0
+ mov r0, #0xff
+ add sp, #0x6c
+ strb r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, pc}
+_0224F1D0:
+ ldrb r5, [r4, #0x13]
+ cmp r5, #2
+ bne _0224F25E
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_02007314
+ ldr r0, [r4, #8]
+ mov r1, #0x2c
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #8]
+ mov r1, #0x2d
+ mov r2, #0
+ bl FUN_02007558
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_02007558
+ ldr r0, [r4]
+ bl MOD11_02230E80
+ ldr r1, [r4, #0x24]
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ ldrb r1, [r4, #0x11]
+ str r1, [sp, #8]
+ ldrh r2, [r4, #0x16]
+ ldrb r3, [r4, #0x13]
+ ldr r1, [r4, #8]
+ bl FUN_02069038
+ ldrb r1, [r4, #0x11]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r1, #5
+ str r1, [sp, #8]
+ ldrh r2, [r4, #0x16]
+ ldr r1, [r4, #0x18]
+ mov r3, #0x75
+ bl FUN_02069FB0
+ ldr r0, [r4, #0x1c]
+ cmp r0, #1
+ beq _0224F242
+ cmp r0, #3
+ bne _0224F24E
+_0224F242:
+ ldr r0, [r4, #0xc]
+ mov r1, #0xc0
+ ldr r0, [r0]
+ mov r2, #0x58
+ bl FUN_0200C714
+_0224F24E:
+ mov r2, #0
+ str r2, [sp]
+ ldr r0, [r4, #8]
+ mov r1, #8
+ add r3, r2, #0
+ bl FUN_02007E68
+ b _0224F2BA
+_0224F25E:
+ ldr r0, [r4]
+ bl MOD11_02230E80
+ ldr r1, [r4, #0x24]
+ add r3, r5, #0
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ ldrb r1, [r4, #0x11]
+ str r1, [sp, #8]
+ ldrh r2, [r4, #0x16]
+ ldr r1, [r4, #8]
+ bl FUN_02069038
+ ldrb r1, [r4, #0x11]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r3, #5
+ str r3, [sp, #8]
+ ldrh r2, [r4, #0x16]
+ ldr r1, [r4, #0x18]
+ sub r3, #0x7a
+ bl FUN_02069FB0
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_02007558
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _0224F2AE
+ cmp r0, #2
+ bne _0224F2BA
+_0224F2AE:
+ ldr r0, [r4, #0xc]
+ mov r1, #0x40
+ ldr r0, [r0]
+ mov r2, #0x88
+ bl FUN_0200C714
+_0224F2BA:
+ mov r0, #3
+ add sp, #0x6c
+ strb r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, pc}
+_0224F2C2:
+ ldrb r1, [r4, #0x11]
+ ldrb r2, [r4, #0x10]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_0224F2D8:
+ add sp, #0x6c
+ pop {r3, r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0224F2DC
+MOD11_0224F2DC: ; 0x0224F2DC
+ push {r4, r5, lr}
+ sub sp, #0x9c
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ cmp r0, #7
+ bls _0224F2F0
+ b _0224F7A2
+_0224F2F0:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0224F2FC: ; jump table
+ .short _0224F30C - _0224F2FC - 2 ; case 0
+ .short _0224F322 - _0224F2FC - 2 ; case 1
+ .short _0224F366 - _0224F2FC - 2 ; case 2
+ .short _0224F4B0 - _0224F2FC - 2 ; case 3
+ .short _0224F4CC - _0224F2FC - 2 ; case 4
+ .short _0224F6E2 - _0224F2FC - 2 ; case 5
+ .short _0224F6F6 - _0224F2FC - 2 ; case 6
+ .short _0224F77C - _0224F2FC - 2 ; case 7
+_0224F30C:
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x96
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x83
+ strb r1, [r0]
+_0224F322:
+ add r1, sp, #0x38
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ add r0, r4, #0
+ add r0, #0x82
+ ldrb r0, [r0]
+ add r1, r4, #0
+ add r2, r4, #0
+ str r0, [sp, #0x38]
+ add r1, #0x81
+ add r2, #0x8c
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4]
+ bl MOD11_02230014
+ str r0, [sp, #0x40]
+ mov r0, #5
+ add r1, sp, #0x38
+ bl MOD08_02228218
+ str r0, [r4, #8]
+ bl MOD08_02228524
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ add r4, #0x83
+ add sp, #0x9c
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0224F366:
+ ldr r0, [r4, #4]
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229A80
+ cmp r0, #0
+ bne _0224F3AE
+ ldr r0, [r4, #8]
+ bl MOD08_02228570
+ cmp r0, #1
+ bne _0224F3AE
+ ldr r0, [r4, #4]
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229A00
+ cmp r0, #1
+ bne _0224F3AE
+ add r0, r4, #0
+ add r0, #0x82
+ ldrb r0, [r0]
+ cmp r0, #4
+ bne _0224F3B8
+ add r0, r4, #0
+ add r0, #0x96
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x96
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x96
+ ldrb r0, [r0]
+ cmp r0, #0xc
+ bhs _0224F3B0
+_0224F3AE:
+ b _0224F7C0
+_0224F3B0:
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x96
+ strb r1, [r0]
+_0224F3B8:
+ ldr r0, [r4]
+ bl MOD11_02230068
+ add r1, r4, #0
+ add r1, #0x86
+ add r5, r0, #0
+ ldrh r1, [r1]
+ add r0, sp, #0x24
+ bl FUN_02069010
+ add r0, r4, #0
+ add r0, #0x82
+ ldrb r3, [r0]
+ mov r0, #6
+ add r2, r4, #0
+ add r1, r3, #0
+ mul r1, r0
+ ldr r0, _0224F690 ; =0x0222D552
+ add r2, #0x14
+ ldrsh r0, [r0, r1]
+ str r0, [sp]
+ ldr r0, _0224F694 ; =0x0222D554
+ ldrsh r0, [r0, r1]
+ add r1, r5, #0
+ lsl r5, r3, #2
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x85
+ ldrb r0, [r0]
+ ldr r3, _0224F698 ; =0x0222D538
+ str r0, [sp, #8]
+ mov r0, #0x90
+ ldrsb r0, [r4, r0]
+ ldrsh r3, [r3, r5]
+ str r0, [sp, #0xc]
+ mov r0, #0x91
+ ldrsb r0, [r4, r0]
+ str r0, [sp, #0x10]
+ add r0, r4, #0
+ add r0, #0x93
+ ldrb r0, [r0]
+ str r0, [sp, #0x14]
+ add r0, r4, #0
+ add r0, #0x81
+ ldrb r0, [r0]
+ str r0, [sp, #0x18]
+ add r0, sp, #0x24
+ str r0, [sp, #0x1c]
+ mov r0, #0
+ str r0, [sp, #0x20]
+ ldr r0, [r4]
+ bl MOD11_02253A88
+ ldr r1, [r4, #4]
+ mov r2, #0
+ str r0, [r1, #0x20]
+ ldr r0, [r4, #4]
+ mov r1, #0xc
+ ldr r0, [r0, #0x20]
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ mov r1, #0xd
+ ldr r0, [r0, #0x20]
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ mov r1, #0x2c
+ ldr r0, [r0, #0x20]
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ mov r1, #6
+ ldr r0, [r0, #0x20]
+ mov r2, #1
+ bl FUN_02007558
+ add r0, r4, #0
+ add r0, #0x8e
+ ldrh r0, [r0]
+ mov r3, #0
+ lsl r1, r0, #1
+ ldr r0, _0224F69C ; =0x0225E84A
+ ldrh r0, [r0, r1]
+ mov r1, #0x10
+ add r2, r1, #0
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x20]
+ bl FUN_02007E68
+ ldr r0, [r4, #4]
+ mov r1, #6
+ ldr r0, [r0, #0x20]
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #8]
+ bl MOD08_022285A4
+ add r0, r4, #0
+ add r0, #0x84
+ ldrb r0, [r0]
+ cmp r0, #2
+ ldr r0, _0224F6A0 ; =0x00000706
+ bne _0224F498
+ mov r1, #0x75
+ bl FUN_020054A8
+ b _0224F4A0
+_0224F498:
+ mov r1, #0x74
+ mvn r1, r1
+ bl FUN_020054A8
+_0224F4A0:
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ add r4, #0x83
+ add sp, #0x9c
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0224F4B0:
+ ldr r0, [r4, #4]
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_022299E8
+ cmp r0, #1
+ beq _0224F4CC
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x83
+ strb r1, [r0]
+_0224F4CC:
+ ldr r0, [r4, #4]
+ mov r1, #0xc
+ ldr r0, [r0, #0x20]
+ bl FUN_0200782C
+ mov r1, #1
+ lsl r1, r1, #8
+ cmp r0, r1
+ bne _0224F5B2
+ ldr r0, [r4, #8]
+ bl MOD08_022285B4
+ cmp r0, #0
+ bne _0224F5B2
+ add r0, r4, #0
+ add r0, #0x84
+ ldrb r0, [r0]
+ cmp r0, #2
+ bne _0224F534
+ ldr r0, [r4, #4]
+ mov r1, #1
+ ldr r0, [r0, #0x20]
+ bl FUN_02007314
+ ldr r0, [r4, #4]
+ mov r1, #0x2d
+ ldr r0, [r0, #0x20]
+ mov r2, #0
+ bl FUN_02007558
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r1, #5
+ add r2, r4, #0
+ str r1, [sp, #8]
+ add r1, r4, #0
+ add r2, #0x86
+ add r1, #0x88
+ ldrh r2, [r2]
+ ldr r1, [r1]
+ mov r3, #0x75
+ bl FUN_02069FB0
+ b _0224F55E
+_0224F534:
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r3, #5
+ add r2, r4, #0
+ str r3, [sp, #8]
+ add r1, r4, #0
+ add r2, #0x86
+ add r1, #0x88
+ ldrh r2, [r2]
+ ldr r1, [r1]
+ sub r3, #0x7a
+ bl FUN_02069FB0
+_0224F55E:
+ ldr r0, [r4]
+ bl MOD11_02230E80
+ add r1, r4, #0
+ add r1, #0x8d
+ ldrb r1, [r1]
+ add r2, r4, #0
+ add r3, r4, #0
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ add r2, #0x86
+ add r3, #0x84
+ str r1, [sp, #8]
+ ldr r1, [r4, #4]
+ ldrh r2, [r2]
+ ldrb r3, [r3]
+ ldr r1, [r1, #0x20]
+ bl FUN_02069038
+ add r0, r4, #0
+ add r0, #0x8e
+ ldrh r0, [r0]
+ mov r2, #0
+ add r3, r2, #0
+ lsl r1, r0, #1
+ ldr r0, _0224F69C ; =0x0225E84A
+ ldrh r0, [r0, r1]
+ mov r1, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x20]
+ bl FUN_02007E68
+ mov r0, #5
+ add r4, #0x83
+ add sp, #0x9c
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0224F5B2:
+ ldr r0, [r4, #4]
+ mov r1, #0xc
+ ldr r0, [r0, #0x20]
+ bl FUN_0200782C
+ mov r2, #1
+ lsl r2, r2, #8
+ cmp r0, r2
+ ldr r0, [r4, #4]
+ blt _0224F6BC
+ ldr r0, [r0, #0x20]
+ mov r1, #0xc
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r0, #0x20]
+ add r2, #0xf3
+ bl FUN_02007558
+ add r0, r4, #0
+ add r0, #0x84
+ ldrb r0, [r0]
+ cmp r0, #2
+ bne _0224F628
+ ldr r0, [r4, #4]
+ mov r1, #1
+ ldr r0, [r0, #0x20]
+ bl FUN_02007314
+ ldr r0, [r4, #4]
+ mov r1, #0x2d
+ ldr r0, [r0, #0x20]
+ mov r2, #0
+ bl FUN_02007558
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r1, #5
+ add r2, r4, #0
+ str r1, [sp, #8]
+ add r1, r4, #0
+ add r2, #0x86
+ add r1, #0x88
+ ldrh r2, [r2]
+ ldr r1, [r1]
+ mov r3, #0x75
+ bl FUN_02069FB0
+ b _0224F652
+_0224F628:
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r3, #5
+ add r2, r4, #0
+ str r3, [sp, #8]
+ add r1, r4, #0
+ add r2, #0x86
+ add r1, #0x88
+ ldrh r2, [r2]
+ ldr r1, [r1]
+ sub r3, #0x7a
+ bl FUN_02069FB0
+_0224F652:
+ ldr r0, [r4]
+ bl MOD11_02230E80
+ add r1, r4, #0
+ add r1, #0x8d
+ ldrb r1, [r1]
+ add r2, r4, #0
+ add r3, r4, #0
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ add r2, #0x86
+ add r3, #0x84
+ str r1, [sp, #8]
+ ldr r1, [r4, #4]
+ ldrh r2, [r2]
+ ldrb r3, [r3]
+ ldr r1, [r1, #0x20]
+ bl FUN_02069038
+ add r0, r4, #0
+ add r0, #0x8e
+ ldrh r0, [r0]
+ mov r2, #0
+ mov r3, #1
+ lsl r1, r0, #1
+ ldr r0, _0224F69C ; =0x0225E84A
+ b _0224F6A4
+ .align 2, 0
+_0224F690: .word 0x0222D552
+_0224F694: .word 0x0222D554
+_0224F698: .word 0x0222D538
+_0224F69C: .word 0x0225E84A
+_0224F6A0: .word 0x00000706
+_0224F6A4:
+ ldrh r0, [r0, r1]
+ mov r1, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x20]
+ bl FUN_02007E68
+ mov r0, #5
+ add r4, #0x83
+ add sp, #0x9c
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0224F6BC:
+ ldr r0, [r0, #0x20]
+ mov r1, #0xc
+ mov r2, #0x20
+ bl FUN_020079E0
+ ldr r0, [r4, #4]
+ mov r1, #0xd
+ ldr r0, [r0, #0x20]
+ mov r2, #0x20
+ bl FUN_020079E0
+ ldr r0, [r4, #4]
+ mov r1, #0x90
+ ldrsb r1, [r4, r1]
+ ldr r0, [r0, #0x20]
+ bl FUN_02007F34
+ add sp, #0x9c
+ pop {r4, r5, pc}
+_0224F6E2:
+ ldr r0, [r4, #8]
+ bl MOD08_022285B4
+ cmp r0, #0
+ bne _0224F7C0
+ mov r0, #6
+ add r4, #0x83
+ add sp, #0x9c
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0224F6F6:
+ ldr r0, [r4]
+ bl MOD11_02230E80
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ bl FUN_02014D7C
+ cmp r0, #1
+ bne _0224F7C0
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x20]
+ bl FUN_02007390
+ cmp r0, #0
+ bne _0224F7C0
+ ldr r0, [r4, #4]
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229A2C
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r0, #0x88
+ str r1, [r0]
+ ldr r0, [r4, #8]
+ bl MOD08_02228618
+ add r0, r4, #0
+ add r0, #0x92
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0224F772
+ mov r0, #5
+ bl MOD08_02211F5C
+ str r0, [r4, #0x24]
+ add r0, r4, #0
+ add r0, #0x81
+ ldrb r1, [r0]
+ mov r0, #0xb
+ add r2, sp, #0x44
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0x24]
+ add r3, sp, #0x44
+ bl MOD11_02254404
+ mov r0, #7
+ add r4, #0x83
+ add sp, #0x9c
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0224F772:
+ mov r0, #0xff
+ add r4, #0x83
+ add sp, #0x9c
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0224F77C:
+ ldr r0, [r4, #0x24]
+ bl MOD08_02212384
+ ldr r0, [r4, #0x24]
+ bl MOD08_022123A0
+ cmp r0, #0
+ bne _0224F7C0
+ ldr r0, [r4, #0x24]
+ bl MOD08_022123B0
+ ldr r0, [r4, #0x24]
+ bl MOD08_02212024
+ mov r0, #0xff
+ add r4, #0x83
+ add sp, #0x9c
+ strb r0, [r4]
+ pop {r4, r5, pc}
+_0224F7A2:
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0x81
+ add r2, #0x80
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0224F7C0:
+ add sp, #0x9c
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD11_0224F7C4
+MOD11_0224F7C4: ; 0x0224F7C4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x1c4
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230070
+ add r1, r4, #0
+ add r1, #0x83
+ ldrb r1, [r1]
+ add r5, r0, #0
+ cmp r1, #0xb
+ bls _0224F7E0
+ b _0224FD68
+_0224F7E0:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0224F7EC: ; jump table
+ .short _0224F804 - _0224F7EC - 2 ; case 0
+ .short _0224F90C - _0224F7EC - 2 ; case 1
+ .short _0224F958 - _0224F7EC - 2 ; case 2
+ .short _0224F9E2 - _0224F7EC - 2 ; case 3
+ .short _0224F9FA - _0224F7EC - 2 ; case 4
+ .short _0224FC14 - _0224F7EC - 2 ; case 5
+ .short _0224FC28 - _0224F7EC - 2 ; case 6
+ .short _0224FC9C - _0224F7EC - 2 ; case 7
+ .short _0224FCC0 - _0224F7EC - 2 ; case 8
+ .short _0224FC9C - _0224F7EC - 2 ; case 9
+ .short _0224FD0C - _0224F7EC - 2 ; case 10
+ .short _0224FC9C - _0224F7EC - 2 ; case 11
+_0224F804:
+ add r0, r4, #0
+ add r0, #0x82
+ ldrb r1, [r0]
+ ldr r0, _0224FB58 ; =0x0225E818
+ ldrb r0, [r0, r1]
+ str r0, [sp, #0x44]
+ mov r0, #5
+ str r0, [sp, #0x48]
+ add r0, r4, #0
+ add r0, #0x81
+ ldrb r0, [r0]
+ str r0, [sp, #0x50]
+ add r0, r4, #0
+ add r0, #0x8e
+ ldrh r0, [r0]
+ str r0, [sp, #0x54]
+ ldr r0, [r4]
+ bl MOD11_02230078
+ str r0, [sp, #0x60]
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ str r0, [sp, #0x64]
+ mov r2, #1
+ mov r1, #0
+ add r0, r4, #0
+ str r2, [sp, #0x58]
+ str r1, [sp, #0x5c]
+ add r0, #0x94
+ ldrh r0, [r0]
+ cmp r0, #1
+ bne _0224F84A
+ str r2, [sp, #0x4c]
+ b _0224F84C
+_0224F84A:
+ str r1, [sp, #0x4c]
+_0224F84C:
+ add r0, sp, #0x44
+ bl MOD08_02229918
+ str r0, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD11_02230068
+ add r1, r4, #0
+ add r1, #0x86
+ add r5, r0, #0
+ ldrh r1, [r1]
+ add r0, sp, #0x30
+ bl FUN_02069010
+ add r0, r4, #0
+ add r0, #0x82
+ ldrb r3, [r0]
+ mov r0, #6
+ add r2, r4, #0
+ add r1, r3, #0
+ mul r1, r0
+ ldr r0, _0224FB5C ; =0x0222D552
+ add r2, #0x14
+ ldrsh r0, [r0, r1]
+ str r0, [sp]
+ ldr r0, _0224FB60 ; =0x0222D554
+ ldrsh r0, [r0, r1]
+ add r1, r5, #0
+ lsl r5, r3, #2
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x85
+ ldrb r0, [r0]
+ ldr r3, _0224FB64 ; =0x0222D538
+ str r0, [sp, #8]
+ mov r0, #0x90
+ ldrsb r0, [r4, r0]
+ ldrsh r3, [r3, r5]
+ str r0, [sp, #0xc]
+ mov r0, #0x91
+ ldrsb r0, [r4, r0]
+ str r0, [sp, #0x10]
+ add r0, r4, #0
+ add r0, #0x93
+ ldrb r0, [r0]
+ str r0, [sp, #0x14]
+ add r0, r4, #0
+ add r0, #0x81
+ ldrb r0, [r0]
+ str r0, [sp, #0x18]
+ add r0, sp, #0x30
+ str r0, [sp, #0x1c]
+ mov r0, #0
+ str r0, [sp, #0x20]
+ ldr r0, [r4]
+ bl MOD11_02253A88
+ ldr r1, [r4, #4]
+ mov r2, #0
+ str r0, [r1, #0x20]
+ ldr r0, [r4, #4]
+ mov r1, #0xc
+ ldr r0, [r0, #0x20]
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ mov r1, #0xd
+ ldr r0, [r0, #0x20]
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ mov r1, #0x2c
+ ldr r0, [r0, #0x20]
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ mov r1, #6
+ ldr r0, [r0, #0x20]
+ mov r2, #1
+ bl FUN_02007558
+ ldr r0, [r4]
+ mov r1, #5
+ bl MOD08_0221590C
+ str r0, [r4, #0x10]
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ add r4, #0x83
+ add sp, #0x1c4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224F90C:
+ add r1, sp, #0x24
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ add r0, r4, #0
+ add r0, #0x82
+ ldrb r0, [r0]
+ add r1, r4, #0
+ add r2, r4, #0
+ str r0, [sp, #0x24]
+ add r1, #0x81
+ add r2, #0x8c
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4]
+ bl MOD11_02230014
+ str r0, [sp, #0x2c]
+ add r0, r4, #0
+ add r0, #0x8e
+ ldrh r0, [r0]
+ add r1, sp, #0x24
+ str r0, [sp, #0x28]
+ mov r0, #5
+ bl MOD08_02228218
+ str r0, [r4, #8]
+ bl MOD08_02228524
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ add r4, #0x83
+ add sp, #0x1c4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224F958:
+ ldr r0, [r4, #0xc]
+ bl MOD08_02229A80
+ cmp r0, #0
+ beq _0224F96C
+ add r0, r4, #0
+ add r0, #0x94
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _0224F980
+_0224F96C:
+ ldr r0, [r4, #8]
+ bl MOD08_02228570
+ cmp r0, #1
+ bne _0224F980
+ ldr r0, [r4, #0xc]
+ bl MOD08_02229A00
+ cmp r0, #1
+ beq _0224F982
+_0224F980:
+ b _0224FD86
+_0224F982:
+ ldr r0, [r4, #0x10]
+ bl MOD08_02215918
+ add r0, r4, #0
+ add r0, #0x8e
+ ldrh r0, [r0]
+ mov r3, #0
+ lsl r1, r0, #1
+ ldr r0, _0224FB68 ; =0x0225E84A
+ ldrh r0, [r0, r1]
+ mov r1, #0x10
+ add r2, r1, #0
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x20]
+ bl FUN_02007E68
+ ldr r0, [r4, #4]
+ mov r1, #6
+ ldr r0, [r0, #0x20]
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #8]
+ bl MOD08_022285A4
+ add r0, r4, #0
+ add r0, #0x84
+ ldrb r0, [r0]
+ cmp r0, #2
+ ldr r0, _0224FB6C ; =0x00000706
+ bne _0224F9CA
+ mov r1, #0x75
+ bl FUN_020054A8
+ b _0224F9D2
+_0224F9CA:
+ mov r1, #0x74
+ mvn r1, r1
+ bl FUN_020054A8
+_0224F9D2:
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ add r4, #0x83
+ add sp, #0x1c4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224F9E2:
+ ldr r0, [r4, #0xc]
+ bl MOD08_022299E8
+ cmp r0, #1
+ beq _0224F9FA
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x83
+ strb r1, [r0]
+_0224F9FA:
+ ldr r0, [r4, #4]
+ mov r1, #0xc
+ ldr r0, [r0, #0x20]
+ bl FUN_0200782C
+ mov r1, #1
+ lsl r1, r1, #8
+ cmp r0, r1
+ bne _0224FAE0
+ ldr r0, [r4, #8]
+ bl MOD08_022285B4
+ cmp r0, #0
+ bne _0224FAE0
+ add r0, r4, #0
+ add r0, #0x84
+ ldrb r0, [r0]
+ cmp r0, #2
+ bne _0224FA62
+ ldr r0, [r4, #4]
+ mov r1, #1
+ ldr r0, [r0, #0x20]
+ bl FUN_02007314
+ ldr r0, [r4, #4]
+ mov r1, #0x2d
+ ldr r0, [r0, #0x20]
+ mov r2, #0
+ bl FUN_02007558
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r1, #5
+ add r2, r4, #0
+ str r1, [sp, #8]
+ add r1, r4, #0
+ add r2, #0x86
+ add r1, #0x88
+ ldrh r2, [r2]
+ ldr r1, [r1]
+ mov r3, #0x75
+ bl FUN_02069FB0
+ b _0224FA8C
+_0224FA62:
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r3, #5
+ add r2, r4, #0
+ str r3, [sp, #8]
+ add r1, r4, #0
+ add r2, #0x86
+ add r1, #0x88
+ ldrh r2, [r2]
+ ldr r1, [r1]
+ sub r3, #0x7a
+ bl FUN_02069FB0
+_0224FA8C:
+ ldr r0, [r4]
+ bl MOD11_02230E80
+ add r1, r4, #0
+ add r1, #0x8d
+ ldrb r1, [r1]
+ add r2, r4, #0
+ add r3, r4, #0
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ add r2, #0x86
+ add r3, #0x84
+ str r1, [sp, #8]
+ ldr r1, [r4, #4]
+ ldrh r2, [r2]
+ ldrb r3, [r3]
+ ldr r1, [r1, #0x20]
+ bl FUN_02069038
+ add r0, r4, #0
+ add r0, #0x8e
+ ldrh r0, [r0]
+ mov r2, #0
+ add r3, r2, #0
+ lsl r1, r0, #1
+ ldr r0, _0224FB68 ; =0x0225E84A
+ ldrh r0, [r0, r1]
+ mov r1, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x20]
+ bl FUN_02007E68
+ mov r0, #5
+ add r4, #0x83
+ add sp, #0x1c4
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224FAE0:
+ ldr r0, [r4, #4]
+ mov r1, #0xc
+ ldr r0, [r0, #0x20]
+ bl FUN_0200782C
+ mov r2, #1
+ lsl r2, r2, #8
+ cmp r0, r2
+ ldr r0, [r4, #4]
+ blt _0224FBEE
+ ldr r0, [r0, #0x20]
+ mov r1, #0xc
+ bl FUN_02007558
+ ldr r0, [r4, #4]
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r0, #0x20]
+ add r2, #0xf3
+ bl FUN_02007558
+ add r0, r4, #0
+ add r0, #0x84
+ ldrb r0, [r0]
+ cmp r0, #2
+ bne _0224FB70
+ ldr r0, [r4, #4]
+ mov r1, #1
+ ldr r0, [r0, #0x20]
+ bl FUN_02007314
+ ldr r0, [r4, #4]
+ mov r1, #0x2d
+ ldr r0, [r0, #0x20]
+ mov r2, #0
+ bl FUN_02007558
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r1, #5
+ add r2, r4, #0
+ str r1, [sp, #8]
+ add r1, r4, #0
+ add r2, #0x86
+ add r1, #0x88
+ ldrh r2, [r2]
+ ldr r1, [r1]
+ mov r3, #0x75
+ bl FUN_02069FB0
+ b _0224FB9A
+ nop
+_0224FB58: .word 0x0225E818
+_0224FB5C: .word 0x0222D552
+_0224FB60: .word 0x0222D554
+_0224FB64: .word 0x0222D538
+_0224FB68: .word 0x0225E84A
+_0224FB6C: .word 0x00000706
+_0224FB70:
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r3, #5
+ add r2, r4, #0
+ str r3, [sp, #8]
+ add r1, r4, #0
+ add r2, #0x86
+ add r1, #0x88
+ ldrh r2, [r2]
+ ldr r1, [r1]
+ sub r3, #0x7a
+ bl FUN_02069FB0
+_0224FB9A:
+ ldr r0, [r4]
+ bl MOD11_02230E80
+ add r1, r4, #0
+ add r1, #0x8d
+ ldrb r1, [r1]
+ add r2, r4, #0
+ add r3, r4, #0
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ add r2, #0x86
+ add r3, #0x84
+ str r1, [sp, #8]
+ ldr r1, [r4, #4]
+ ldrh r2, [r2]
+ ldrb r3, [r3]
+ ldr r1, [r1, #0x20]
+ bl FUN_02069038
+ add r0, r4, #0
+ add r0, #0x8e
+ ldrh r0, [r0]
+ mov r2, #0
+ mov r3, #1
+ lsl r1, r0, #1
+ ldr r0, _0224FD8C ; =0x0225E84A
+ ldrh r0, [r0, r1]
+ mov r1, #0x10
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x20]
+ bl FUN_02007E68
+ mov r0, #5
+ add r4, #0x83
+ add sp, #0x1c4
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224FBEE:
+ ldr r0, [r0, #0x20]
+ mov r1, #0xc
+ mov r2, #0x20
+ bl FUN_020079E0
+ ldr r0, [r4, #4]
+ mov r1, #0xd
+ ldr r0, [r0, #0x20]
+ mov r2, #0x20
+ bl FUN_020079E0
+ ldr r0, [r4, #4]
+ mov r1, #0x90
+ ldrsb r1, [r4, r1]
+ ldr r0, [r0, #0x20]
+ bl FUN_02007F34
+ add sp, #0x1c4
+ pop {r3, r4, r5, r6, pc}
+_0224FC14:
+ ldr r0, [r4, #8]
+ bl MOD08_022285B4
+ cmp r0, #0
+ bne _0224FC48
+ mov r0, #6
+ add r4, #0x83
+ add sp, #0x1c4
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224FC28:
+ ldr r0, [r4]
+ bl MOD11_02230E80
+ add r1, r4, #0
+ add r1, #0x81
+ ldrb r1, [r1]
+ bl FUN_02014D7C
+ cmp r0, #1
+ bne _0224FC48
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x20]
+ bl FUN_02007390
+ cmp r0, #0
+ beq _0224FC4A
+_0224FC48:
+ b _0224FD86
+_0224FC4A:
+ ldr r0, [r4, #0xc]
+ bl MOD08_02229A2C
+ ldr r0, [r4, #8]
+ bl MOD08_02228618
+ add r0, r4, #0
+ add r0, #0x92
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0224FC92
+ add r0, r4, #0
+ add r0, #0x81
+ ldrb r1, [r0]
+ mov r0, #0xb
+ add r2, sp, #0x16c
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r5, #0
+ add r3, sp, #0x16c
+ bl MOD11_02254404
+ mov r0, #7
+ add r4, #0x83
+ add sp, #0x1c4
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224FC92:
+ mov r0, #8
+ add r4, #0x83
+ add sp, #0x1c4
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224FC9C:
+ bl MOD08_02212384
+ add r0, r5, #0
+ bl MOD08_022123A0
+ cmp r0, #0
+ bne _0224FD86
+ add r0, r5, #0
+ bl MOD08_022123B0
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ add r4, #0x83
+ add sp, #0x1c4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224FCC0:
+ add r0, r4, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0224FD02
+ add r0, r4, #0
+ add r0, #0x81
+ ldrb r1, [r0]
+ mov r0, #0xf
+ add r2, sp, #0x114
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r5, #0
+ add r3, sp, #0x114
+ bl MOD11_02254404
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ add r4, #0x83
+ add sp, #0x1c4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224FD02:
+ mov r0, #0xff
+ add r4, #0x83
+ add sp, #0x1c4
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224FD0C:
+ add r3, r4, #0
+ add r3, #0x81
+ ldrb r3, [r3]
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r1, #0x28
+ add r2, sp, #0xc4
+ bl MOD11_0225452C
+ add r0, sp, #0xc4
+ mov r1, #5
+ bl MOD08_0222A568
+ add r0, r4, #0
+ add r0, #0x81
+ ldrb r1, [r0]
+ mov r0, #0x10
+ add r2, sp, #0x6c
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r5, #0
+ add r3, sp, #0x6c
+ bl MOD11_02254404
+ mov r0, #0x1a
+ ldr r1, [r4, #4]
+ mov r2, #1
+ lsl r0, r0, #4
+ str r2, [r1, r0]
+ add r0, r4, #0
+ add r0, #0x83
+ ldrb r0, [r0]
+ add r4, #0x83
+ add sp, #0x1c4
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_0224FD68:
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0x81
+ add r2, #0x80
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_0224FD86:
+ add sp, #0x1c4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_0224FD8C: .word 0x0225E84A
+
+ thumb_func_start MOD11_0224FD90
+MOD11_0224FD90: ; 0x0224FD90
+ push {r4, r5, r6, lr}
+ sub sp, #0x138
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230070
+ add r1, r4, #0
+ add r1, #0x6b
+ ldrb r1, [r1]
+ add r5, r0, #0
+ cmp r1, #8
+ bhi _0224FE7A
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0224FDB6: ; jump table
+ .short _0224FDC8 - _0224FDB6 - 2 ; case 0
+ .short _0224FE6C - _0224FDB6 - 2 ; case 1
+ .short _0224FE10 - _0224FDB6 - 2 ; case 2
+ .short _0224FE6C - _0224FDB6 - 2 ; case 3
+ .short _0224FE92 - _0224FDB6 - 2 ; case 4
+ .short _0224FF36 - _0224FDB6 - 2 ; case 5
+ .short _0224FF50 - _0224FDB6 - 2 ; case 6
+ .short _0224FFA6 - _0224FDB6 - 2 ; case 7
+ .short _0224FFC0 - _0224FDB6 - 2 ; case 8
+_0224FDC8:
+ ldr r0, [r4, #0x70]
+ cmp r0, #0
+ beq _0224FE06
+ add r0, r4, #0
+ add r0, #0x69
+ ldrb r1, [r0]
+ mov r0, #0xf
+ add r2, sp, #0xe0
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r5, #0
+ add r3, sp, #0xe0
+ bl MOD11_02254404
+ add r0, r4, #0
+ add r0, #0x6b
+ ldrb r0, [r0]
+ add r4, #0x6b
+ add sp, #0x138
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224FE06:
+ mov r0, #4
+ add r4, #0x6b
+ add sp, #0x138
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224FE10:
+ add r3, r4, #0
+ add r3, #0x69
+ ldrb r3, [r3]
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r1, #0x10
+ add r2, sp, #0x90
+ bl MOD11_0225452C
+ add r0, sp, #0x90
+ mov r1, #5
+ bl MOD08_0222A494
+ add r0, r4, #0
+ add r0, #0x69
+ ldrb r1, [r0]
+ mov r0, #0x10
+ add r2, sp, #0x38
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r5, #0
+ add r3, sp, #0x38
+ bl MOD11_02254404
+ mov r0, #0x1a
+ ldr r1, [r4, #4]
+ mov r2, #0
+ lsl r0, r0, #4
+ str r2, [r1, r0]
+ add r0, r4, #0
+ add r0, #0x6b
+ ldrb r0, [r0]
+ add r4, #0x6b
+ add sp, #0x138
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224FE6C:
+ bl MOD08_02212384
+ add r0, r5, #0
+ bl MOD08_022123A0
+ cmp r0, #0
+ beq _0224FE7C
+_0224FE7A:
+ b _0224FFDE
+_0224FE7C:
+ add r0, r5, #0
+ bl MOD08_022123B0
+ add r0, r4, #0
+ add r0, #0x6b
+ ldrb r0, [r0]
+ add r4, #0x6b
+ add sp, #0x138
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224FE92:
+ add r0, r4, #0
+ add r0, #0x6a
+ ldrb r1, [r0]
+ mov r0, #1
+ tst r0, r1
+ beq _0224FEDA
+ ldr r0, _0224FFE4 ; =0x0225E818
+ ldrb r0, [r0, r1]
+ str r0, [sp, #0x10]
+ mov r0, #5
+ str r0, [sp, #0x14]
+ str r0, [sp, #0x18]
+ add r0, r4, #0
+ add r0, #0x69
+ ldrb r0, [r0]
+ str r0, [sp, #0x1c]
+ add r0, r4, #0
+ add r0, #0x6e
+ ldrh r0, [r0]
+ str r0, [sp, #0x20]
+ ldr r0, [r4]
+ bl MOD11_02230078
+ str r0, [sp, #0x2c]
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ str r0, [sp, #0x30]
+ mov r0, #1
+ str r0, [sp, #0x24]
+ mov r0, #0
+ str r0, [sp, #0x28]
+ add r0, sp, #0x10
+ bl MOD08_02229918
+ str r0, [r4, #0xc]
+_0224FEDA:
+ add r0, r4, #0
+ mov r1, #5
+ add r0, #0x6b
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x6e
+ ldrh r0, [r0]
+ mov r2, #0x10
+ lsl r1, r0, #1
+ ldr r0, _0224FFE8 ; =0x0225E84A
+ ldrh r0, [r0, r1]
+ mov r1, #0
+ add r3, r1, #0
+ str r0, [sp]
+ ldr r0, [r4, #8]
+ bl FUN_02007E68
+ add r4, #0x6a
+ ldrb r0, [r4]
+ cmp r0, #5
+ bhi _0224FFDE
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0224FF10: ; jump table
+ .short _0224FF1C - _0224FF10 - 2 ; case 0
+ .short _0224FF2A - _0224FF10 - 2 ; case 1
+ .short _0224FF1C - _0224FF10 - 2 ; case 2
+ .short _0224FF2A - _0224FF10 - 2 ; case 3
+ .short _0224FF1C - _0224FF10 - 2 ; case 4
+ .short _0224FF2A - _0224FF10 - 2 ; case 5
+_0224FF1C:
+ mov r1, #0x74
+ ldr r0, _0224FFEC ; =0x00000706
+ mvn r1, r1
+ bl FUN_020054A8
+ add sp, #0x138
+ pop {r4, r5, r6, pc}
+_0224FF2A:
+ ldr r0, _0224FFEC ; =0x00000706
+ mov r1, #0x75
+ bl FUN_020054A8
+ add sp, #0x138
+ pop {r4, r5, r6, pc}
+_0224FF36:
+ ldr r0, [r4, #8]
+ bl FUN_02007F20
+ cmp r0, #0
+ bne _0224FFDE
+ add r0, r4, #0
+ add r0, #0x6b
+ ldrb r0, [r0]
+ add r4, #0x6b
+ add sp, #0x138
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224FF50:
+ mov r1, #0xc
+ add r2, r1, #0
+ ldr r0, [r4, #8]
+ sub r2, #0x2c
+ bl FUN_020079E0
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #8]
+ sub r2, #0x2d
+ bl FUN_020079E0
+ add r1, r4, #0
+ add r1, #0x6c
+ ldrb r1, [r1]
+ ldr r0, [r4, #8]
+ bl FUN_02007F34
+ ldr r0, [r4, #8]
+ mov r1, #0xc
+ bl FUN_0200782C
+ cmp r0, #0
+ bgt _0224FFDE
+ ldr r0, [r4, #8]
+ bl FUN_02007534
+ add r0, r4, #0
+ add r0, #0x6a
+ ldrb r1, [r0]
+ mov r0, #1
+ tst r0, r1
+ beq _0224FF9C
+ mov r0, #7
+ add r4, #0x6b
+ add sp, #0x138
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224FF9C:
+ mov r0, #8
+ add r4, #0x6b
+ add sp, #0x138
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224FFA6:
+ ldr r0, [r4, #0xc]
+ bl MOD08_022299E8
+ cmp r0, #0
+ bne _0224FFDE
+ ldr r0, [r4, #0xc]
+ bl MOD08_02229A2C
+ mov r0, #8
+ add r4, #0x6b
+ add sp, #0x138
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_0224FFC0:
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0x69
+ add r2, #0x68
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_0224FFDE:
+ add sp, #0x138
+ pop {r4, r5, r6, pc}
+ nop
+_0224FFE4: .word 0x0225E818
+_0224FFE8: .word 0x0225E84A
+_0224FFEC: .word 0x00000706
+
+ thumb_func_start MOD11_0224FFF0
+MOD11_0224FFF0: ; 0x0224FFF0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0xb]
+ cmp r0, #0
+ beq _02250002
+ cmp r0, #1
+ beq _02250048
+ pop {r3, r4, r5, pc}
+_02250002:
+ mov r1, #0xc
+ add r2, r1, #0
+ ldr r0, [r4, #4]
+ sub r2, #0x2c
+ bl FUN_020079E0
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #4]
+ sub r2, #0x2d
+ bl FUN_020079E0
+ ldrb r0, [r4, #0xc]
+ cmp r0, #0
+ beq _0225002E
+ sub r0, r0, #1
+ strb r0, [r4, #0xc]
+ mov r1, #1
+ ldr r0, [r4, #4]
+ sub r2, r1, #2
+ bl FUN_020079E0
+_0225002E:
+ ldr r0, [r4, #4]
+ mov r1, #0xc
+ bl FUN_0200782C
+ cmp r0, #0
+ bgt _0225005E
+ ldr r0, [r4, #4]
+ bl FUN_02007534
+ ldrb r0, [r4, #0xb]
+ add r0, r0, #1
+ strb r0, [r4, #0xb]
+ pop {r3, r4, r5, pc}
+_02250048:
+ ldrb r1, [r4, #9]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0225005E:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02250060
+MOD11_02250060: ; 0x02250060
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ add r5, r0, #0
+ ldr r0, [r4, #0x20]
+ cmp r0, #0x21
+ bge _0225009C
+ ldrb r0, [r4, #0x12]
+ cmp r0, #2
+ blo _0225009C
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ beq _02250086
+ cmp r0, #2
+ bne _0225009C
+_02250086:
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ mov r1, #3
+ mov r2, #1
+ mov r3, #4
+ bl FUN_020179E0
+ ldr r0, [r4, #0x20]
+ add r0, r0, #1
+ str r0, [r4, #0x20]
+_0225009C:
+ ldrb r0, [r4, #0x12]
+ cmp r0, #4
+ bls _022500A4
+ b _02250332
+_022500A4:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022500B0: ; jump table
+ .short _022500BA - _022500B0 - 2 ; case 0
+ .short _022500C4 - _022500B0 - 2 ; case 1
+ .short _022500D2 - _022500B0 - 2 ; case 2
+ .short _022502CA - _022500B0 - 2 ; case 3
+ .short _022502E4 - _022500B0 - 2 ; case 4
+_022500BA:
+ mov r0, #0x1c
+ str r0, [r4, #0x1c]
+ ldrb r0, [r4, #0x12]
+ add r0, r0, #1
+ strb r0, [r4, #0x12]
+_022500C4:
+ ldr r0, [r4, #0x1c]
+ sub r0, r0, #1
+ str r0, [r4, #0x1c]
+ bne _022501A6
+ ldrb r0, [r4, #0x12]
+ add r0, r0, #1
+ strb r0, [r4, #0x12]
+_022500D2:
+ ldrb r0, [r4, #0x13]
+ add r1, sp, #0
+ cmp r0, #2
+ ldr r0, [r4, #8]
+ bne _022501D2
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ ldr r0, [r4, #0x18]
+ cmp r0, #1
+ beq _022500F0
+ cmp r0, #3
+ bne _02250112
+_022500F0:
+ add r1, sp, #0
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ cmp r0, #0xc0
+ ldr r0, [r4, #8]
+ bge _02250108
+ ldr r0, [r0]
+ mov r1, #8
+ mov r2, #0
+ bl FUN_0200C82C
+ b _02250112
+_02250108:
+ ldr r0, [r0]
+ mov r1, #0xc0
+ mov r2, #0x58
+ bl FUN_0200C714
+_02250112:
+ ldr r0, [r4, #8]
+ add r1, sp, #0
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ ldr r0, [r4, #0x18]
+ cmp r0, #1
+ beq _02250136
+ cmp r0, #3
+ bne _02250146
+ cmp r5, #3
+ beq _02250136
+ cmp r5, #0x83
+ beq _02250136
+ cmp r5, #7
+ bne _02250146
+_02250136:
+ add r3, sp, #0
+ mov r2, #2
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_02007558
+ b _02250196
+_02250146:
+ cmp r0, #3
+ bne _02250170
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_0200782C
+ add r3, sp, #0
+ mov r2, #2
+ ldrsh r1, [r3, r2]
+ sub r0, r0, r1
+ strh r0, [r3, #2]
+ ldrsh r0, [r3, r2]
+ mov r1, #0
+ sub r0, #0x18
+ strh r0, [r3, #2]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #4]
+ neg r2, r2
+ bl FUN_020079E0
+ b _02250196
+_02250170:
+ cmp r0, #5
+ bne _02250196
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_0200782C
+ add r3, sp, #0
+ mov r2, #2
+ ldrsh r1, [r3, r2]
+ sub r0, r1, r0
+ strh r0, [r3, #2]
+ ldrsh r0, [r3, r2]
+ mov r1, #0
+ sub r0, #0x10
+ strh r0, [r3, #2]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #4]
+ bl FUN_020079E0
+_02250196:
+ mov r0, #0x14
+ ldrsh r5, [r4, r0]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_0200782C
+ cmp r0, r5
+ bge _022501A8
+_022501A6:
+ b _02250332
+_022501A8:
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r2, r5, #0
+ bl FUN_02007558
+ ldr r0, [r4, #0x18]
+ cmp r0, #1
+ beq _022501BC
+ cmp r0, #3
+ bne _022501C8
+_022501BC:
+ ldr r0, [r4, #8]
+ mov r1, #0xc0
+ ldr r0, [r0]
+ mov r2, #0x58
+ bl FUN_0200C714
+_022501C8:
+ ldrb r0, [r4, #0x12]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, pc}
+_022501D2:
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ beq _022501E6
+ cmp r0, #2
+ bne _02250208
+_022501E6:
+ add r0, sp, #0
+ mov r1, #2
+ ldrsh r0, [r0, r1]
+ cmp r0, #0x40
+ ldr r0, [r4, #8]
+ ble _022501FE
+ ldr r0, [r0]
+ sub r1, #0xa
+ mov r2, #0
+ bl FUN_0200C82C
+ b _02250208
+_022501FE:
+ ldr r0, [r0]
+ mov r1, #0x40
+ mov r2, #0x88
+ bl FUN_0200C714
+_02250208:
+ ldr r0, [r4, #8]
+ add r1, sp, #0
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ beq _02250230
+ cmp r0, #2
+ bne _02250240
+ cmp r5, #3
+ beq _02250230
+ cmp r5, #0x83
+ beq _02250230
+ cmp r5, #0x13
+ beq _02250230
+ cmp r5, #7
+ bne _02250240
+_02250230:
+ add r3, sp, #0
+ mov r2, #2
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_02007558
+ b _02250290
+_02250240:
+ cmp r0, #2
+ bne _02250268
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_0200782C
+ add r3, sp, #0
+ mov r2, #2
+ ldrsh r1, [r3, r2]
+ sub r0, r1, r0
+ strh r0, [r3, #2]
+ ldrsh r0, [r3, r2]
+ mov r1, #0
+ sub r0, #0x18
+ strh r0, [r3, #2]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #4]
+ bl FUN_020079E0
+ b _02250290
+_02250268:
+ cmp r0, #4
+ bne _02250290
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_0200782C
+ add r3, sp, #0
+ mov r2, #2
+ ldrsh r1, [r3, r2]
+ sub r0, r0, r1
+ strh r0, [r3, #2]
+ ldrsh r0, [r3, r2]
+ mov r1, #0
+ sub r0, #0x10
+ strh r0, [r3, #2]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r4, #4]
+ neg r2, r2
+ bl FUN_020079E0
+_02250290:
+ mov r0, #0x14
+ ldrsh r5, [r4, r0]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_0200782C
+ cmp r0, r5
+ bgt _02250332
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r2, r5, #0
+ bl FUN_02007558
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ beq _022502B4
+ cmp r0, #2
+ bne _022502C0
+_022502B4:
+ ldr r0, [r4, #8]
+ mov r1, #0x40
+ ldr r0, [r0]
+ mov r2, #0x88
+ bl FUN_0200C714
+_022502C0:
+ ldrb r0, [r4, #0x12]
+ add sp, #4
+ add r0, r0, #1
+ strb r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, pc}
+_022502CA:
+ ldrb r1, [r4, #0x11]
+ ldrb r2, [r4, #0x10]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r6, #0
+ bl FUN_0200CAB4
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_022502E4:
+ ldrb r0, [r4, #0x13]
+ cmp r0, #2
+ ldr r0, [r4, #4]
+ bne _0225030E
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ mov r1, #0
+ bl FUN_02007558
+ ldr r0, [r4, #0x18]
+ cmp r0, #1
+ beq _02250300
+ cmp r0, #3
+ bne _0225032E
+_02250300:
+ ldr r0, [r4, #8]
+ mov r1, #0xc0
+ ldr r0, [r0]
+ mov r2, #0x58
+ bl FUN_0200C714
+ b _0225032E
+_0225030E:
+ mov r2, #0x14
+ ldrsh r2, [r4, r2]
+ mov r1, #0
+ bl FUN_02007558
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ beq _02250322
+ cmp r0, #2
+ bne _0225032E
+_02250322:
+ ldr r0, [r4, #8]
+ mov r1, #0x40
+ ldr r0, [r0]
+ mov r2, #0x88
+ bl FUN_0200C714
+_0225032E:
+ mov r0, #3
+ strb r0, [r4, #0x12]
+_02250332:
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02250338
+MOD11_02250338: ; 0x02250338
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0xd0
+ ldr r3, _022505EC ; =0x0225E8D0
+ add r4, r1, #0
+ add r5, r0, #0
+ add r2, sp, #0x30
+ mov r1, #0x50
+_02250346:
+ ldrh r0, [r3]
+ add r3, r3, #2
+ strh r0, [r2]
+ add r2, r2, #2
+ sub r1, r1, #1
+ bne _02250346
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ add r6, r0, #0
+ ldrb r0, [r4, #0xa]
+ cmp r0, #6
+ bls _02250362
+ b _0225088A
+_02250362:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225036E: ; jump table
+ .short _0225037C - _0225036E - 2 ; case 0
+ .short _02250494 - _0225036E - 2 ; case 1
+ .short _0225059E - _0225036E - 2 ; case 2
+ .short _0225073C - _0225036E - 2 ; case 3
+ .short _022507F2 - _0225036E - 2 ; case 4
+ .short _0225084C - _0225036E - 2 ; case 5
+ .short _02250874 - _0225036E - 2 ; case 6
+_0225037C:
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ bne _0225038A
+ mov r0, #1
+ add sp, #0xd0
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225038A:
+ cmp r0, #4
+ bhi _022503A4
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225039A: ; jump table
+ .short _022503A4 - _0225039A - 2 ; case 0
+ .short _022503A4 - _0225039A - 2 ; case 1
+ .short _022503B2 - _0225039A - 2 ; case 2
+ .short _022503C0 - _0225039A - 2 ; case 3
+ .short _022503CE - _0225039A - 2 ; case 4
+_022503A4:
+ mov r0, #0xf
+ str r0, [sp, #8]
+ mov r0, #3
+ str r0, [r4, #0x18]
+ mov r0, #5
+ str r0, [sp, #0x18]
+ b _022503DC
+_022503B2:
+ mov r0, #0xc
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [r4, #0x18]
+ ldr r0, _022505F0 ; =0x00000111
+ str r0, [sp, #0x18]
+ b _022503DC
+_022503C0:
+ mov r0, #0xd
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [r4, #0x18]
+ ldr r0, _022505F4 ; =0x00000112
+ str r0, [sp, #0x18]
+ b _022503DC
+_022503CE:
+ mov r0, #0xf
+ str r0, [sp, #8]
+ mov r0, #3
+ str r0, [r4, #0x18]
+ mov r0, #0x11
+ lsl r0, r0, #4
+ str r0, [sp, #0x18]
+_022503DC:
+ mov r0, #5
+ str r0, [sp, #0xc]
+ mov r0, #4
+ str r0, [sp, #0x10]
+ ldrb r0, [r4, #9]
+ str r0, [sp, #0x14]
+ ldr r0, [r4]
+ bl MOD11_02230078
+ str r0, [sp, #0x24]
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ str r0, [sp, #0x28]
+ mov r0, #0
+ str r0, [sp, #0x20]
+ ldr r0, [r4]
+ str r0, [sp, #0x2c]
+ add r0, sp, #8
+ bl MOD08_02229918
+ ldr r1, [r4, #4]
+ add r1, #0x88
+ str r0, [r1]
+ ldr r0, [r4, #4]
+ mov r1, #0x64
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_0222A00C
+ ldr r0, [r4, #4]
+ mov r1, #2
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_0222A018
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_0222A008
+ mov r1, #0
+ ldr r0, [r4]
+ ldr r2, [r4, #0xc]
+ add r3, r1, #0
+ bl MOD11_02254308
+ ldr r1, [r4, #4]
+ str r0, [r1, #0x18]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ ldr r0, [r0, #0x1c]
+ bl FUN_0200782C
+ add r1, sp, #4
+ strh r0, [r1, #2]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ ldr r0, [r0, #0x1c]
+ bl FUN_0200782C
+ add r3, sp, #4
+ strh r0, [r3]
+ ldr r0, [r4, #4]
+ mov r1, #2
+ mov r2, #0
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r0, #0x18]
+ bl FUN_0200C714
+ ldr r0, [r4, #4]
+ mov r1, #0
+ ldr r0, [r0, #0x18]
+ bl FUN_0200C61C
+ ldr r0, [r4, #4]
+ mov r1, #0
+ ldr r0, [r0, #0x18]
+ bl FUN_0200C5C0
+ ldr r0, [r4, #4]
+ mov r1, #6
+ ldr r0, [r0, #0x1c]
+ mov r2, #1
+ bl FUN_02007558
+ mov r0, #3
+ add sp, #0xd0
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, r6, r7, pc}
+_02250494:
+ ldrb r0, [r4, #0xb]
+ cmp r0, #2
+ ldr r0, [r4, #4]
+ bne _0225054A
+ ldr r0, [r0, #0x1c]
+ mov r1, #0
+ mov r2, #5
+ bl FUN_020079E0
+ ldr r0, [r4, #4]
+ mov r1, #0
+ ldr r0, [r0, #0x1c]
+ bl FUN_0200782C
+ mov r1, #0x45
+ lsl r1, r1, #2
+ cmp r0, r1
+ blt _02250520
+ ldr r0, [r4, #4]
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229A80
+ cmp r0, #0
+ beq _02250520
+ ldr r0, [r4, #4]
+ mov r1, #1
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229FE4
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229A5C
+ mov r0, #2
+ tst r0, r6
+ beq _02250532
+ mov r0, #8
+ tst r0, r6
+ bne _02250532
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD11_0222FF7C
+ add r4, r0, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #1
+ bl MOD08_02229FE4
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #0
+ bl MOD08_02229A5C
+ add r4, #0x88
+ ldr r0, [r4]
+ mov r1, #0xc
+ bl MOD08_0222A024
+ add sp, #0xd0
+ pop {r3, r4, r5, r6, r7, pc}
+_02250520:
+ ldr r0, [r4, #4]
+ mov r1, #0
+ ldr r0, [r0, #0x1c]
+ bl FUN_0200782C
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ cmp r0, r1
+ bge _02250534
+_02250532:
+ b _0225088A
+_02250534:
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x1c]
+ bl FUN_02007534
+ ldr r0, [r4, #4]
+ mov r1, #0
+ str r1, [r0, #0x1c]
+ mov r0, #6
+ add sp, #0xd0
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225054A:
+ ldr r0, [r0, #0x1c]
+ mov r1, #0
+ bl FUN_0200782C
+ add r1, sp, #4
+ strh r0, [r1, #2]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ ldr r0, [r0, #0x1c]
+ bl FUN_0200782C
+ add r3, sp, #4
+ strh r0, [r3]
+ ldr r0, [r4, #4]
+ mov r1, #2
+ mov r2, #0
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r0, #0x18]
+ bl FUN_0200C714
+ ldr r0, [r4, #4]
+ mov r1, #0
+ ldr r0, [r0, #0x18]
+ bl FUN_0200C61C
+ ldr r0, [r4, #4]
+ mov r1, #0
+ ldr r0, [r0, #0x18]
+ bl FUN_0200C5C0
+ mov r0, #2
+ strb r0, [r4, #0xa]
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x1c]
+ bl FUN_02007534
+ ldr r0, [r4, #4]
+ mov r1, #0
+ str r1, [r0, #0x1c]
+ add sp, #0xd0
+ pop {r3, r4, r5, r6, r7, pc}
+_0225059E:
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x18]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #4]
+ mov r1, #4
+ ldr r0, [r0, #0x18]
+ mvn r1, r1
+ mov r2, #0
+ bl FUN_0200C82C
+ ldr r0, [r4, #4]
+ add r1, sp, #4
+ ldr r0, [r0, #0x18]
+ add r1, #2
+ add r2, sp, #4
+ bl FUN_0200C7A0
+ ldr r1, [r4, #4]
+ add r0, r1, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _022505D0
+ b _022506E4
+_022505D0:
+ ldr r0, [r1, #0x18]
+ bl FUN_0200C630
+ ldr r1, [r4, #0xc]
+ str r0, [sp]
+ lsl r5, r0, #2
+ mov r0, #0x14
+ add r2, r1, #0
+ mul r2, r0
+ add r0, sp, #0x30
+ add r0, r0, r2
+ ldrsh r1, [r5, r0]
+ ldr r0, _022505F8 ; =0x00007FFF
+ b _022505FC
+ .align 2, 0
+_022505EC: .word 0x0225E8D0
+_022505F0: .word 0x00000111
+_022505F4: .word 0x00000112
+_022505F8: .word 0x00007FFF
+_022505FC:
+ cmp r1, r0
+ beq _022506E4
+ ldr r0, [r4, #4]
+ mov r1, #1
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229FE4
+ ldr r1, [r4, #0xc]
+ mov r0, #0x14
+ add r3, r1, #0
+ mul r3, r0
+ add r2, sp, #0x30
+ add r2, r2, r3
+ add r7, sp, #4
+ mov r1, #2
+ ldrsh r1, [r7, r1]
+ ldrsh r2, [r5, r2]
+ ldr r0, [r4, #4]
+ add r1, r1, r2
+ mov r2, #0
+ ldrsh r7, [r7, r2]
+ add r2, sp, #0x30
+ add r2, #2
+ add r2, r2, r3
+ ldrsh r2, [r5, r2]
+ add r0, #0x88
+ lsl r1, r1, #0x10
+ add r2, r7, r2
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02229FF0
+ ldr r0, [sp]
+ cmp r0, #3
+ bne _022506E4
+ ldr r0, [r4, #4]
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229A80
+ cmp r0, #0
+ beq _022506E4
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229A5C
+ ldr r0, [r4, #4]
+ mov r1, #1
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_0222A008
+ mov r0, #2
+ tst r0, r6
+ beq _022506E4
+ mov r0, #8
+ tst r0, r6
+ bne _022506E4
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD11_0222FF7C
+ ldr r1, [r4, #0xc]
+ add r6, r0, #0
+ add r3, r1, #0
+ mov r0, #0x14
+ mul r3, r0
+ add r2, sp, #0x30
+ add r2, r2, r3
+ add r0, r6, #0
+ add r0, #0x88
+ add r7, sp, #4
+ mov r1, #2
+ ldrsh r1, [r7, r1]
+ ldrsh r2, [r5, r2]
+ ldr r0, [r0]
+ add r1, r1, r2
+ mov r2, #0
+ ldrsh r7, [r7, r2]
+ add r2, sp, #0x30
+ add r2, #2
+ add r2, r2, r3
+ ldrsh r2, [r5, r2]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add r2, r7, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02229FF0
+ add r0, r6, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #1
+ bl MOD08_02229FE4
+ add r0, r6, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #0
+ bl MOD08_02229A5C
+ add r6, #0x88
+ ldr r0, [r6]
+ mov r1, #1
+ bl MOD08_0222A008
+_022506E4:
+ add r1, sp, #4
+ mov r0, #2
+ ldrsh r1, [r1, r0]
+ sub r0, #0x2a
+ cmp r1, r0
+ ble _022506F2
+ b _0225088A
+_022506F2:
+ ldr r0, [r4]
+ bl MOD11_02230080
+ add r6, r0, #0
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_02230260
+ asr r5, r0, #1
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x18]
+ bl FUN_0200C3DC
+ ldr r1, _02250890 ; =0x00004E2F
+ add r0, r6, #0
+ add r1, r5, r1
+ bl FUN_0200C358
+ ldr r1, _02250894 ; =0x00004E2A
+ add r0, r6, #0
+ add r1, r5, r1
+ bl FUN_0200C368
+ ldr r1, _02250898 ; =0x00004E27
+ add r0, r6, #0
+ add r1, r5, r1
+ bl FUN_0200C378
+ ldr r1, _02250898 ; =0x00004E27
+ add r0, r6, #0
+ add r1, r5, r1
+ bl FUN_0200C388
+ mov r0, #6
+ add sp, #0xd0
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225073C:
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x18]
+ bl FUN_0200C5A8
+ ldr r0, [r4, #4]
+ add r1, sp, #4
+ ldr r0, [r0, #0x18]
+ add r1, #2
+ add r2, sp, #4
+ bl FUN_0200C7A0
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x18]
+ bl FUN_0200C630
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _022507E2
+ ldr r2, [r4, #0xc]
+ mov r1, #0x14
+ add r3, r2, #0
+ mul r3, r1
+ add r1, sp, #0x30
+ lsl r6, r5, #2
+ add r1, r1, r3
+ ldrsh r1, [r6, r1]
+ ldr r2, _0225089C ; =0x00007FFF
+ cmp r1, r2
+ beq _022507E2
+ add r7, sp, #4
+ mov r2, #2
+ ldrsh r2, [r7, r2]
+ add r1, r2, r1
+ mov r2, #0
+ ldrsh r7, [r7, r2]
+ add r2, sp, #0x30
+ add r2, #2
+ add r2, r2, r3
+ ldrsh r2, [r6, r2]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add r2, r7, r2
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl MOD08_02229FF0
+ cmp r5, #3
+ bne _022507E2
+ ldr r0, [r4, #4]
+ ldr r6, [r4, #0x18]
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229A80
+ cmp r6, r0
+ beq _022507E2
+ ldr r0, [r4, #4]
+ add r1, r6, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229A5C
+ ldr r0, [r4, #4]
+ mov r1, #1
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_0222A018
+ ldr r0, [r4, #4]
+ mov r1, #1
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_0222A008
+ ldr r0, [r4, #0x18]
+ cmp r0, #3
+ beq _022507E2
+ ldr r0, _022508A0 ; =0x0000070A
+ bl FUN_020054C8
+_022507E2:
+ cmp r5, #4
+ bne _0225088A
+ mov r0, #8
+ str r0, [r4, #0x14]
+ mov r0, #4
+ add sp, #0xd0
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, r6, r7, pc}
+_022507F2:
+ ldr r0, [r4, #0x14]
+ sub r0, r0, #1
+ str r0, [r4, #0x14]
+ bne _0225088A
+ ldr r0, [r4]
+ bl MOD11_02230080
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x18]
+ bl FUN_0200C3DC
+ ldr r1, _02250890 ; =0x00004E2F
+ add r0, r5, #0
+ bl FUN_0200C358
+ ldr r1, _02250894 ; =0x00004E2A
+ add r0, r5, #0
+ bl FUN_0200C368
+ ldr r1, _02250898 ; =0x00004E27
+ add r0, r5, #0
+ bl FUN_0200C378
+ ldr r1, _02250898 ; =0x00004E27
+ add r0, r5, #0
+ bl FUN_0200C388
+ ldr r0, [r4, #4]
+ mov r1, #6
+ ldr r0, [r0, #0x1c]
+ mov r2, #0
+ bl FUN_02007558
+ ldr r0, [r4, #0x18]
+ cmp r0, #3
+ bne _02250844
+ mov r0, #6
+ add sp, #0xd0
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, r6, r7, pc}
+_02250844:
+ mov r0, #5
+ add sp, #0xd0
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225084C:
+ ldr r0, [r4, #4]
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_022299E8
+ cmp r0, #1
+ beq _0225088A
+ ldr r0, [r4, #4]
+ add r0, #0x88
+ ldr r0, [r0]
+ bl MOD08_02229A2C
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r0, #0x88
+ str r1, [r0]
+ mov r0, #6
+ add sp, #0xd0
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, r6, r7, pc}
+_02250874:
+ ldrb r1, [r4, #9]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0225088A:
+ add sp, #0xd0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02250890: .word 0x00004E2F
+_02250894: .word 0x00004E2A
+_02250898: .word 0x00004E27
+_0225089C: .word 0x00007FFF
+_022508A0: .word 0x0000070A
+
+ thumb_func_start MOD11_022508A4
+MOD11_022508A4: ; 0x022508A4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0xa]
+ cmp r0, #0
+ beq _022508B6
+ cmp r0, #1
+ beq _02250906
+ pop {r3, r4, r5, pc}
+_022508B6:
+ ldrb r0, [r4, #0xb]
+ cmp r0, #2
+ ldr r0, [r4, #4]
+ bne _022508E2
+ ldr r0, [r0, #0x1c]
+ mov r1, #0
+ mov r2, #5
+ bl FUN_020079E0
+ ldr r0, [r4, #4]
+ mov r1, #0
+ ldr r0, [r0, #0x1c]
+ bl FUN_0200782C
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ cmp r0, r1
+ blt _0225092A
+ ldrb r0, [r4, #0xa]
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, pc}
+_022508E2:
+ mov r1, #0
+ ldr r0, [r0, #0x1c]
+ sub r2, r1, #5
+ bl FUN_020079E0
+ ldr r0, [r4, #4]
+ mov r1, #0
+ ldr r0, [r0, #0x1c]
+ bl FUN_0200782C
+ mov r1, #0x27
+ mvn r1, r1
+ cmp r0, r1
+ bgt _0225092A
+ ldrb r0, [r4, #0xa]
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, pc}
+_02250906:
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x1c]
+ bl FUN_02007534
+ ldr r0, [r4, #4]
+ mov r1, #0
+ str r1, [r0, #0x1c]
+ ldrb r1, [r4, #9]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0225092A:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0225092C
+MOD11_0225092C: ; 0x0225092C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0xa]
+ cmp r0, #0
+ beq _0225093E
+ cmp r0, #1
+ beq _0225099A
+ pop {r3, r4, r5, pc}
+_0225093E:
+ ldrb r0, [r4, #0xb]
+ cmp r0, #0
+ ldr r0, [r4, #4]
+ bne _02250970
+ mov r1, #0
+ mov r2, #5
+ bl FUN_020079E0
+ mov r0, #0xc
+ ldrsh r5, [r4, r0]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_0200782C
+ cmp r0, r5
+ blt _022509B0
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r2, r5, #0
+ bl FUN_02007558
+ ldrb r0, [r4, #0xa]
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, pc}
+_02250970:
+ mov r1, #0
+ sub r2, r1, #5
+ bl FUN_020079E0
+ mov r0, #0xc
+ ldrsh r5, [r4, r0]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_0200782C
+ cmp r0, r5
+ bgt _022509B0
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r2, r5, #0
+ bl FUN_02007558
+ ldrb r0, [r4, #0xa]
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, pc}
+_0225099A:
+ ldrb r1, [r4, #9]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_022509B0:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022509B4
+MOD11_022509B4: ; 0x022509B4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4]
+ add r5, r0, #0
+ cmp r1, #0
+ beq _022509C6
+ cmp r1, #1
+ beq _022509F6
+ b _02250A0A
+_022509C6:
+ add r0, r4, #0
+ add r0, #0x4d
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _022509DE
+ add r0, r4, #0
+ add r0, #0x4d
+ ldrb r0, [r0]
+ add r4, #0x4d
+ sub r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_022509DE:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD11_02257334
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_022572AC
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_022509F6:
+ add r0, r4, #0
+ add r0, #0x4f
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _02250A26
+ add r0, r1, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02250A0A:
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0x24
+ add r2, #0x4c
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4, #0xc]
+ bl MOD11_022567B8
+ mov r0, #0
+ str r0, [r4, #0x10]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02250A26:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02250A28
+MOD11_02250A28: ; 0x02250A28
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4]
+ add r5, r0, #0
+ cmp r1, #0
+ bne _02250A48
+ add r0, r4, #0
+ add r0, #0x4f
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _02250A6C
+ add r0, r1, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02250A48:
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0x24
+ add r2, #0x4c
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4, #0xc]
+ bl MOD11_022567B8
+ mov r0, #0
+ str r0, [r4, #0x10]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD11_022572AC
+_02250A6C:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02250A70
+MOD11_02250A70: ; 0x02250A70
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x4c
+ add r4, r1, #0
+ str r0, [sp]
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ ldr r0, [r4]
+ bl MOD11_02230094
+ add r6, r0, #0
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_0222FF7C
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ add r7, r0, #0
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+ add r1, r0, #0
+ ldrb r0, [r4, #9]
+ cmp r1, r0
+ beq _02250AB2
+ ldr r0, [r4]
+ bl MOD11_02231380
+ add r5, r0, #0
+ b _02250AB4
+_02250AB2:
+ mov r5, #0
+_02250AB4:
+ ldrb r0, [r4, #0xa]
+ cmp r0, #8
+ bls _02250ABC
+ b _02250F3E
+_02250ABC:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02250AC8: ; jump table
+ .short _02250ADA - _02250AC8 - 2 ; case 0
+ .short _02250B16 - _02250AC8 - 2 ; case 1
+ .short _02250C04 - _02250AC8 - 2 ; case 2
+ .short _02250C1A - _02250AC8 - 2 ; case 3
+ .short _02250C2C - _02250AC8 - 2 ; case 4
+ .short _02250DA0 - _02250AC8 - 2 ; case 5
+ .short _02250DF2 - _02250AC8 - 2 ; case 6
+ .short _02250ED6 - _02250AC8 - 2 ; case 7
+ .short _02250F14 - _02250AC8 - 2 ; case 8
+_02250ADA:
+ mov r0, #0
+ add r1, r4, #0
+ add r2, sp, #0x34
+_02250AE0:
+ ldrh r3, [r1, #0x24]
+ add r1, r1, #2
+ strh r3, [r2]
+ add r3, r4, r0
+ add r3, #0x2c
+ ldrb r3, [r3]
+ strh r3, [r2, #8]
+ add r3, r4, r0
+ add r3, #0x30
+ ldrb r3, [r3]
+ add r0, r0, #1
+ strh r3, [r2, #0x10]
+ add r2, r2, #2
+ cmp r0, #4
+ blt _02250AE0
+ ldr r0, [r4]
+ bl MOD11_02230094
+ add r1, r4, #0
+ add r1, #0x34
+ ldrb r1, [r1]
+ add r2, sp, #0x34
+ bl MOD11_0225A760
+ ldrb r0, [r4, #0xa]
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+_02250B16:
+ ldr r0, [r4]
+ bl MOD11_022300C4
+ add r5, r0, #0
+ mov r0, #1
+ lsl r0, r0, #0xa
+ add r1, r7, #0
+ tst r1, r0
+ beq _02250B9A
+ ldr r0, [r4]
+ bl MOD11_02231268
+ cmp r0, #0
+ beq _02250B3A
+ cmp r0, #1
+ beq _02250B66
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+_02250B3A:
+ mov r0, #2
+ add r1, sp, #8
+ strb r0, [r1, #9]
+ add r0, r4, #0
+ add r0, #0x23
+ ldrb r0, [r0]
+ ldrb r2, [r4, #9]
+ mov r3, #0
+ lsl r0, r0, #8
+ orr r0, r2
+ str r0, [sp, #0x14]
+ ldr r0, _02250E84 ; =0x00000399
+ add r2, sp, #0x10
+ strh r0, [r1, #0xa]
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD11_0223178C
+ mov r0, #3
+ add sp, #0x4c
+ strb r0, [r4, #0xa]
+ pop {r4, r5, r6, r7, pc}
+_02250B66:
+ mov r1, #0
+ add r0, sp, #8
+ strb r1, [r0, #9]
+ ldr r0, [r4]
+ bl MOD11_0223021C
+ ldr r1, _02250E88 ; =0x000004CA
+ add r1, r0, r1
+ add r0, sp, #8
+ strh r1, [r0, #0xa]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r2, sp, #0x10
+ bl MOD11_0223178C
+ add r1, r4, #0
+ add r1, #0x35
+ strb r0, [r1]
+ mov r0, #2
+ add sp, #0x4c
+ strb r0, [r4, #0xa]
+ pop {r4, r5, r6, r7, pc}
+_02250B9A:
+ mov r1, #0x20
+ add r2, r7, #0
+ tst r2, r1
+ beq _02250BBA
+ mov r1, #8
+ add r0, sp, #8
+ strb r1, [r0, #9]
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_02230140
+ str r0, [sp, #0x14]
+ ldr r1, _02250E8C ; =0x0000039A
+ add r0, sp, #8
+ strh r1, [r0, #0xa]
+ b _02250BF0
+_02250BBA:
+ lsl r1, r1, #4
+ tst r1, r7
+ beq _02250BD8
+ mov r1, #8
+ add r0, sp, #8
+ strb r1, [r0, #9]
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_02230140
+ str r0, [sp, #0x14]
+ ldr r1, _02250E90 ; =0x000004C6
+ add r0, sp, #8
+ strh r1, [r0, #0xa]
+ b _02250BF0
+_02250BD8:
+ add r2, r4, #0
+ mov r1, #2
+ add r3, sp, #8
+ strb r1, [r3, #9]
+ add r2, #0x23
+ ldrb r2, [r2]
+ ldrb r1, [r4, #9]
+ sub r0, #0x67
+ lsl r2, r2, #8
+ orr r1, r2
+ str r1, [sp, #0x14]
+ strh r0, [r3, #0xa]
+_02250BF0:
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r2, sp, #0x10
+ mov r3, #0
+ bl MOD11_0223178C
+ mov r0, #3
+ add sp, #0x4c
+ strb r0, [r4, #0xa]
+ pop {r4, r5, r6, r7, pc}
+_02250C04:
+ add r0, r4, #0
+ add r0, #0x35
+ ldrb r0, [r0]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02250C36
+ mov r0, #3
+ add sp, #0x4c
+ strb r0, [r4, #0xa]
+ pop {r4, r5, r6, r7, pc}
+_02250C1A:
+ ldr r0, [r4, #4]
+ bl MOD11_02257208
+ ldr r0, [sp, #4]
+ ldr r1, [r4]
+ bl MOD11_0225464C
+ mov r0, #4
+ strb r0, [r4, #0xa]
+_02250C2C:
+ add r0, r6, #0
+ bl MOD11_02258F5C
+ cmp r0, #0
+ bne _02250C38
+_02250C36:
+ b _02250F3E
+_02250C38:
+ ldrb r1, [r4, #9]
+ add r0, sp, #8
+ strb r1, [r0, #1]
+ add r1, r4, #0
+ add r1, #0x34
+ ldrb r1, [r1]
+ strb r1, [r0]
+ add r1, r4, #0
+ add r1, #0x23
+ ldrb r1, [r1]
+ strb r1, [r0, #2]
+ mov r1, #0x36
+ ldrsh r1, [r4, r1]
+ strh r1, [r0, #4]
+ ldrh r1, [r4, #0x38]
+ strh r1, [r0, #6]
+ add r1, r4, #0
+ add r1, #0x3a
+ ldrb r1, [r1]
+ strb r1, [r0, #3]
+ ldr r1, _02250E94 ; =0x00000197
+ ldr r0, [sp, #4]
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ beq _02250CFA
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD11_0225B77C
+ ldr r0, [r4]
+ bl MOD11_02230C50
+ mov r1, #1
+ tst r0, r1
+ beq _02250C8C
+ add r0, r6, #0
+ mov r1, #6
+ mov r2, #0
+ add r3, sp, #8
+ bl MOD11_02258820
+ b _02250CF0
+_02250C8C:
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #2
+ lsl r1, r1, #8
+ tst r0, r1
+ beq _02250CA8
+ add r0, r6, #0
+ mov r1, #0xa
+ mov r2, #0
+ add r3, sp, #8
+ bl MOD11_02258820
+ b _02250CF0
+_02250CA8:
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #0x20
+ tst r0, r1
+ beq _02250CC2
+ add r0, r6, #0
+ mov r1, #8
+ mov r2, #0
+ add r3, sp, #8
+ bl MOD11_02258820
+ b _02250CF0
+_02250CC2:
+ add r0, sp, #8
+ ldrb r0, [r0]
+ cmp r0, #4
+ bne _02250CE4
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ bne _02250CE4
+ add r0, r6, #0
+ mov r1, #4
+ mov r2, #0
+ add r3, sp, #8
+ bl MOD11_02258820
+ b _02250CF0
+_02250CE4:
+ add r0, r6, #0
+ mov r1, #3
+ mov r2, #0
+ add r3, sp, #8
+ bl MOD11_02258820
+_02250CF0:
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD11_022312AC
+ b _02250D70
+_02250CFA:
+ ldr r0, [r4]
+ bl MOD11_02230C50
+ mov r1, #1
+ tst r0, r1
+ beq _02250D14
+ add r0, r6, #0
+ mov r1, #5
+ mov r2, #0
+ add r3, sp, #8
+ bl MOD11_02258820
+ b _02250D68
+_02250D14:
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #2
+ lsl r1, r1, #8
+ tst r0, r1
+ beq _02250D30
+ add r0, r6, #0
+ mov r1, #9
+ mov r2, #0
+ add r3, sp, #8
+ bl MOD11_02258820
+ b _02250D68
+_02250D30:
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #0x20
+ tst r0, r1
+ add r3, sp, #8
+ beq _02250D4A
+ add r0, r6, #0
+ mov r1, #7
+ mov r2, #0
+ bl MOD11_02258820
+ b _02250D68
+_02250D4A:
+ add r0, sp, #8
+ ldrb r0, [r0]
+ cmp r0, #4
+ beq _02250D5E
+ add r0, r6, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD11_02258820
+ b _02250D68
+_02250D5E:
+ add r0, r6, #0
+ mov r1, #2
+ mov r2, #0
+ bl MOD11_02258820
+_02250D68:
+ ldr r1, _02250E94 ; =0x00000197
+ ldr r0, [sp, #4]
+ mov r2, #1
+ strb r2, [r0, r1]
+_02250D70:
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x1c
+ bl MOD11_02258D60
+ add r1, r4, #0
+ add r2, r4, #0
+ add r0, r6, #0
+ add r1, #0x10
+ add r2, #0x16
+ bl MOD11_02258D7C
+ add r0, r6, #0
+ bl MOD11_02258DD0
+ cmp r5, #0
+ beq _02250D98
+ add r0, r5, #0
+ bl MOD11_02258180
+_02250D98:
+ mov r0, #5
+ add sp, #0x4c
+ strb r0, [r4, #0xa]
+ pop {r4, r5, r6, r7, pc}
+_02250DA0:
+ ldr r0, _02250E98 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #8
+ tst r0, r1
+ beq _02250DD0
+ ldr r0, [r4]
+ mov r5, #0
+ bl MOD11_0222FF84
+ cmp r0, #0
+ ble _02250DD0
+_02250DB6:
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ add r0, #0x28
+ bl MOD11_0225704C
+ ldr r0, [r4]
+ add r5, r5, #1
+ bl MOD11_0222FF84
+ cmp r5, r0
+ blt _02250DB6
+_02250DD0:
+ add r0, r6, #0
+ bl MOD11_02258E74
+ mov r1, #0
+ mvn r1, r1
+ str r0, [r4, #0xc]
+ cmp r0, r1
+ beq _02250E02
+ mov r0, #0xa
+ strb r0, [r4, #0xb]
+ ldr r0, _02250E9C ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #6
+ add sp, #0x4c
+ strb r0, [r4, #0xa]
+ pop {r4, r5, r6, r7, pc}
+_02250DF2:
+ add r0, r6, #0
+ bl MOD11_02258F5C
+ cmp r0, #1
+ beq _02250E04
+ ldr r0, [r4, #0xc]
+ cmp r0, #1
+ beq _02250E04
+_02250E02:
+ b _02250F3E
+_02250E04:
+ ldr r0, [r4, #0xc]
+ cmp r0, #4
+ bhi _02250EC4
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02250E16: ; jump table
+ .short _02250EC4 - _02250E16 - 2 ; case 0
+ .short _02250E20 - _02250E16 - 2 ; case 1
+ .short _02250E34 - _02250E16 - 2 ; case 2
+ .short _02250E5C - _02250E16 - 2 ; case 3
+ .short _02250EA0 - _02250E16 - 2 ; case 4
+_02250E20:
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #0x22
+ lsl r1, r1, #4
+ tst r0, r1
+ beq _02250EC8
+ mov r0, #7
+ strb r0, [r4, #0xa]
+ b _02250EC8
+_02250E34:
+ mov r1, #0
+ add r0, r6, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD11_02258820
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD11_0225B77C
+ add r0, r5, #0
+ bl MOD11_02258184
+ ldr r0, [r4, #4]
+ bl MOD11_02257238
+ ldr r0, [sp, #4]
+ bl MOD11_0225468C
+ b _02250EC8
+_02250E5C:
+ mov r1, #0
+ add r0, r6, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD11_02258820
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD11_0225B77C
+ add r0, r5, #0
+ bl MOD11_02258184
+ ldr r0, [r4, #4]
+ bl MOD11_02257238
+ ldr r0, [sp, #4]
+ bl MOD11_0225468C
+ b _02250EC8
+ .align 2, 0
+_02250E84: .word 0x00000399
+_02250E88: .word 0x000004CA
+_02250E8C: .word 0x0000039A
+_02250E90: .word 0x000004C6
+_02250E94: .word 0x00000197
+_02250E98: .word 0x021C48B8
+_02250E9C: .word 0x000005DD
+_02250EA0:
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_02230CB8
+ cmp r0, #1
+ bne _02250EB6
+ add r0, r5, #0
+ bl MOD11_02258184
+ mov r0, #0xff
+ str r0, [r4, #0xc]
+_02250EB6:
+ mov r1, #0
+ add r0, r6, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD11_02258820
+ b _02250EC8
+_02250EC4:
+ bl ErrorHandling
+_02250EC8:
+ add r0, r6, #0
+ bl MOD11_02258E30
+ mov r0, #8
+ add sp, #0x4c
+ strb r0, [r4, #0xa]
+ pop {r4, r5, r6, r7, pc}
+_02250ED6:
+ add r0, r6, #0
+ bl MOD11_02258F5C
+ cmp r0, #1
+ bne _02250F3E
+ mov r1, #0
+ add r0, r6, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD11_02258820
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD11_0225B77C
+ add r0, r5, #0
+ bl MOD11_02258184
+ ldr r0, [r4, #4]
+ bl MOD11_02257238
+ ldr r0, [sp, #4]
+ bl MOD11_0225468C
+ add r0, r6, #0
+ bl MOD11_02258E30
+ mov r0, #8
+ add sp, #0x4c
+ strb r0, [r4, #0xa]
+ pop {r4, r5, r6, r7, pc}
+_02250F14:
+ add r0, r6, #0
+ bl MOD11_0225B780
+ cmp r0, #1
+ bne _02250F3E
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ ldr r2, [r4, #0xc]
+ bl MOD11_02255528
+ ldrb r1, [r4, #9]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [sp]
+ bl FUN_0200CAB4
+_02250F3E:
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02250F44
+MOD11_02250F44: ; 0x02250F44
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #9]
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD16_021F45A4
+ add r2, r0, #0
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_02255528
+ ldrb r1, [r4, #9]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02250F74
+MOD11_02250F74: ; 0x02250F74
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #9]
+ add r5, r0, #0
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02250F94
+MOD11_02250F94: ; 0x02250F94
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230DE0
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_0222FF78
+ mov r2, #0
+ ldrb r1, [r4, #9]
+ add r3, r2, #0
+ bl MOD11_02243420
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #0x1a
+ bl GetMonBaseStat
+ ldr r2, _0225100C ; =0x0225E830
+ lsl r1, r5, #1
+ ldrb r2, [r2, r1]
+ mul r2, r0
+ add r0, r2, #0
+ ldr r2, _02251010 ; =0x0225E831
+ ldrb r1, [r2, r1]
+ bl _s32_div_f
+ add r5, r0, #0
+ bl LCRandom
+ mov r1, #0xff
+ bl _s32_div_f
+ cmp r1, r5
+ ldr r0, [r4]
+ bgt _02250FEA
+ ldrb r1, [r4, #9]
+ mov r2, #4
+ bl MOD11_02255528
+ b _02250FF2
+_02250FEA:
+ ldrb r1, [r4, #9]
+ mov r2, #5
+ bl MOD11_02255528
+_02250FF2:
+ ldrb r1, [r4, #9]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r6, #0
+ bl FUN_0200CAB4
+ pop {r4, r5, r6, pc}
+ nop
+_0225100C: .word 0x0225E830
+_02251010: .word 0x0225E831
+
+ thumb_func_start MOD11_02251014
+MOD11_02251014: ; 0x02251014
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #9]
+ add r5, r0, #0
+ ldr r0, [r4]
+ mov r2, #4
+ bl MOD11_02255528
+ ldrb r1, [r4, #9]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0225103C
+MOD11_0225103C: ; 0x0225103C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ ldr r0, [r4]
+ bl MOD11_02230094
+ add r7, r0, #0
+ ldrb r1, [r4, #0x1d]
+ ldr r0, [r4]
+ bl MOD11_0222FF7C
+ str r0, [sp]
+ ldrb r1, [r4, #0x1d]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+ add r1, r0, #0
+ ldrb r0, [r4, #0x1d]
+ cmp r1, r0
+ beq _02251076
+ ldr r0, [r4]
+ bl MOD11_02231380
+ add r5, r0, #0
+ b _02251078
+_02251076:
+ mov r5, #0
+_02251078:
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #3
+ bls _02251084
+ b _0225118E
+_02251084:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02251090: ; jump table
+ .short _02251098 - _02251090 - 2 ; case 0
+ .short _02251114 - _02251090 - 2 ; case 1
+ .short _0225113A - _02251090 - 2 ; case 2
+ .short _02251180 - _02251090 - 2 ; case 3
+_02251098:
+ add r0, r7, #0
+ bl MOD11_02258F5C
+ cmp r0, #0
+ bne _022510A4
+ b _022511B6
+_022510A4:
+ ldr r0, [r4]
+ bl MOD11_022300C4
+ add r1, r0, #0
+ mov r2, #2
+ add r0, sp, #4
+ strb r2, [r0, #0x15]
+ ldrb r2, [r4, #0x1f]
+ ldrb r3, [r4, #0x1d]
+ lsl r2, r2, #8
+ orr r2, r3
+ str r2, [sp, #0x1c]
+ ldr r2, _022511BC ; =0x00000399
+ mov r3, #0
+ strh r2, [r0, #0x16]
+ ldr r0, [r4]
+ add r2, sp, #0x18
+ bl MOD11_0223178C
+ add r0, r7, #0
+ bl MOD11_02258E30
+ add r5, sp, #4
+ mov r2, #0
+ add r3, r4, #0
+ add r6, r5, #0
+_022510D8:
+ ldrh r0, [r3, #0xc]
+ add r1, r4, r2
+ add r2, r2, #1
+ strh r0, [r5]
+ ldrb r0, [r1, #0x14]
+ add r3, r3, #2
+ add r5, r5, #2
+ strb r0, [r6, #8]
+ ldrb r0, [r1, #0x18]
+ strb r0, [r6, #0xc]
+ add r6, r6, #1
+ cmp r2, #4
+ blt _022510D8
+ ldrb r1, [r4, #0x1e]
+ add r0, sp, #4
+ mov r2, #0
+ strb r1, [r0, #0x10]
+ add r0, r7, #0
+ mov r1, #0xb
+ add r3, sp, #4
+ bl MOD11_02258820
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r4, #0x20
+ add sp, #0x3c
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, r7, pc}
+_02251114:
+ add r0, r7, #0
+ bl MOD11_02258E74
+ mov r1, #0
+ mvn r1, r1
+ str r0, [r4, #8]
+ cmp r0, r1
+ beq _022511B6
+ ldr r0, _022511C0 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r4, #0x20
+ add sp, #0x3c
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, r7, pc}
+_0225113A:
+ ldr r0, [r4, #8]
+ cmp r0, #0xff
+ beq _02251166
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _02251166
+ add r0, r7, #0
+ mov r1, #0
+ bl MOD11_0225B77C
+ add r0, r5, #0
+ bl MOD11_02258184
+ ldr r0, [r4, #4]
+ bl MOD11_02257238
+ ldr r0, [sp]
+ bl MOD11_0225468C
+_02251166:
+ ldrb r1, [r4, #0x1d]
+ ldr r0, [r4]
+ ldr r2, [r4, #8]
+ bl MOD11_022555E4
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r4, #0x20
+ add sp, #0x3c
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, r7, pc}
+_02251180:
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x20
+ strb r1, [r0]
+_0225118E:
+ add r0, r7, #0
+ bl MOD11_0225B780
+ cmp r0, #1
+ bne _022511B6
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD11_02231274
+ ldrb r1, [r4, #0x1d]
+ ldrb r2, [r4, #0x1c]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_022511B6:
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022511BC: .word 0x00000399
+_022511C0: .word 0x000005DD
+
+ thumb_func_start MOD11_022511C4
+MOD11_022511C4: ; 0x022511C4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r6, r1, #0
+ str r0, [sp, #8]
+ ldr r0, [r6]
+ bl MOD11_0222FF74
+ add r4, r0, #0
+ ldr r0, [r6]
+ bl MOD11_0222FF78
+ str r0, [sp, #0xc]
+ ldr r0, _02251290 ; =0x00000101
+ tst r0, r4
+ bne _022511FA
+ ldr r0, [r6]
+ bl MOD11_02230C50
+ mov r1, #1
+ tst r0, r1
+ bne _022511FA
+ ldrb r1, [r6, #0x1d]
+ ldr r0, [r6]
+ bl MOD11_02230270
+ cmp r0, #0
+ bne _02251216
+_022511FA:
+ bl FUN_02033590
+ cmp r0, #0
+ beq _02251206
+ bl ErrorHandling
+_02251206:
+ ldrb r1, [r6, #0x1d]
+ ldr r0, [r6]
+ bl MOD16_021EFD8C
+ cmp r0, #0xff
+ beq _0225128C
+ add r4, r0, #1
+ b _0225126C
+_02251216:
+ mov r7, #0
+ add r4, r7, #0
+ add r5, sp, #0x10
+_0225121C:
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ ldrh r1, [r6, #0x22]
+ tst r0, r1
+ bne _0225122E
+ add r0, r4, #1
+ stmia r5!, {r0}
+ add r7, r7, #1
+_0225122E:
+ add r4, r4, #1
+ cmp r4, #4
+ blt _0225121C
+ bl LCRandom
+ add r1, r7, #0
+ bl _s32_div_f
+ lsl r1, r1, #2
+ add r0, sp, #0x10
+ ldr r4, [r0, r1]
+ mov r0, #1
+ sub r3, r4, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ lsl r3, r3, #1
+ add r3, r6, r3
+ ldrb r2, [r6, #0x1d]
+ ldrh r3, [r3, #0xc]
+ ldr r0, [r6]
+ ldr r1, [sp, #0xc]
+ bl MOD11_02244C28
+ str r0, [sp]
+ ldrb r3, [r6, #0x1d]
+ ldr r0, [r6]
+ ldr r1, [sp, #0xc]
+ mov r2, #0xb
+ bl MOD11_0224C54C
+_0225126C:
+ ldrb r1, [r6, #0x1d]
+ ldr r0, [r6]
+ add r2, r4, #0
+ bl MOD11_022555E4
+ ldrb r1, [r6, #0x1d]
+ ldrb r2, [r6, #0x1c]
+ ldr r0, [r6]
+ bl MOD11_022567B8
+ add r0, r6, #0
+ bl FreeToHeap
+ ldr r0, [sp, #8]
+ bl FUN_0200CAB4
+_0225128C:
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02251290: .word 0x00000101
+
+ thumb_func_start MOD11_02251294
+MOD11_02251294: ; 0x02251294
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #0x1d]
+ add r5, r0, #0
+ ldrb r2, [r4, #0x1c]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022512B4
+MOD11_022512B4: ; 0x022512B4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ add r4, r1, #0
+ str r0, [sp]
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_0222FF7C
+ add r7, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230094
+ add r5, r0, #0
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+ add r1, r0, #0
+ ldrb r0, [r4, #0xd]
+ cmp r1, r0
+ beq _022512EE
+ ldr r0, [r4]
+ bl MOD11_02231380
+ add r6, r0, #0
+ b _022512F0
+_022512EE:
+ mov r6, #0
+_022512F0:
+ ldrb r0, [r4, #0xf]
+ cmp r0, #3
+ bhi _022513BE
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02251302: ; jump table
+ .short _0225130A - _02251302 - 2 ; case 0
+ .short _02251366 - _02251302 - 2 ; case 1
+ .short _02251386 - _02251302 - 2 ; case 2
+ .short _022513BA - _02251302 - 2 ; case 3
+_0225130A:
+ add r0, r5, #0
+ bl MOD11_02258F5C
+ cmp r0, #0
+ bne _02251316
+ b _02251418
+_02251316:
+ add r2, sp, #8
+ mov r0, #0
+ add r1, r4, #0
+ add r2, #2
+_0225131E:
+ ldrh r3, [r1, #0x10]
+ add r0, r0, #1
+ strh r3, [r2]
+ ldrh r3, [r1, #0x12]
+ strh r3, [r2, #2]
+ ldrh r3, [r1, #0x14]
+ strh r3, [r2, #4]
+ ldrh r3, [r1, #0x16]
+ add r1, #8
+ strh r3, [r2, #6]
+ add r2, #8
+ cmp r0, #4
+ blt _0225131E
+ ldrb r1, [r4, #0xe]
+ add r0, sp, #0x28
+ add r0, #2
+ strb r1, [r0]
+ ldrh r0, [r4, #0x30]
+ ldrb r1, [r4, #0xe]
+ bl MOD11_02258F88
+ add r1, sp, #0x28
+ add r1, #2
+ strb r0, [r1, #1]
+ add r3, sp, #8
+ add r0, r5, #0
+ mov r1, #0xc
+ mov r2, #0
+ add r3, #2
+ bl MOD11_02258820
+ ldrb r0, [r4, #0xf]
+ add sp, #0x2c
+ add r0, r0, #1
+ strb r0, [r4, #0xf]
+ pop {r4, r5, r6, r7, pc}
+_02251366:
+ add r0, r5, #0
+ bl MOD11_02258E74
+ mov r1, #0
+ mvn r1, r1
+ str r0, [r4, #8]
+ cmp r0, r1
+ beq _02251418
+ ldr r0, _0225141C ; =0x000005DD
+ bl FUN_020054C8
+ ldrb r0, [r4, #0xf]
+ add sp, #0x2c
+ add r0, r0, #1
+ strb r0, [r4, #0xf]
+ pop {r4, r5, r6, r7, pc}
+_02251386:
+ ldr r0, [r4, #8]
+ cmp r0, #0xff
+ beq _022513B0
+ ldr r0, [r4, #4]
+ bl MOD11_02257238
+ add r0, r7, #0
+ bl MOD11_0225468C
+ add r0, r6, #0
+ bl MOD11_02258184
+ add r0, r4, #0
+ add r0, #0x32
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _022513B0
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD11_0225B77C
+_022513B0:
+ ldrb r0, [r4, #0xf]
+ add sp, #0x2c
+ add r0, r0, #1
+ strb r0, [r4, #0xf]
+ pop {r4, r5, r6, r7, pc}
+_022513BA:
+ add r0, r0, #1
+ strb r0, [r4, #0xf]
+_022513BE:
+ add r0, r5, #0
+ bl MOD11_0225B780
+ cmp r0, #1
+ bne _02251418
+ ldr r0, [r4]
+ ldr r5, [r4, #8]
+ bl MOD11_0222FF74
+ add r6, r0, #0
+ cmp r5, #0xff
+ beq _022513F8
+ ldr r0, [r4]
+ add r1, sp, #4
+ bl MOD11_022314E0
+ mov r0, #2
+ tst r0, r6
+ ldr r0, [r4, #8]
+ beq _022513F0
+ add r1, r0, #1
+ add r0, sp, #4
+ ldrb r0, [r0, r1]
+ add r5, r0, #1
+ b _022513F8
+_022513F0:
+ sub r1, r0, #1
+ add r0, sp, #4
+ ldrb r0, [r0, r1]
+ add r5, r0, #1
+_022513F8:
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ add r2, r5, #0
+ bl MOD11_02255720
+ ldrb r1, [r4, #0xd]
+ ldrb r2, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [sp]
+ bl FUN_0200CAB4
+_02251418:
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225141C: .word 0x000005DD
+
+ thumb_func_start MOD11_02251420
+MOD11_02251420: ; 0x02251420
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ ldr r0, [r5]
+ bl MOD11_0222FF78
+ add r1, r0, #0
+ ldrb r3, [r5, #0xd]
+ ldr r0, [r5]
+ mov r2, #0xb
+ bl MOD11_0224C474
+ add r4, r0, #1
+ cmp r4, #5
+ blt _02251442
+ bl ErrorHandling
+_02251442:
+ ldrb r1, [r5, #0xd]
+ ldr r0, [r5]
+ add r2, r4, #0
+ bl MOD11_02255720
+ ldrb r1, [r5, #0xd]
+ ldrb r2, [r5, #0xc]
+ ldr r0, [r5]
+ bl MOD11_022567B8
+ add r0, r5, #0
+ bl FreeToHeap
+ add r0, r6, #0
+ bl FUN_0200CAB4
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02251464
+MOD11_02251464: ; 0x02251464
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #0xd]
+ add r5, r0, #0
+ ldrb r2, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02251484
+MOD11_02251484: ; 0x02251484
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x1fc
+ sub sp, #0x14
+ add r4, r1, #0
+ add r7, r0, #0
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ ldrb r1, [r4, #0xe]
+ add r5, r0, #0
+ cmp r1, #0x1e
+ bls _022514A0
+ bl _02251FEA
+_022514A0:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022514AC: ; jump table
+ .short _022514EA - _022514AC - 2 ; case 0
+ .short _02251540 - _022514AC - 2 ; case 1
+ .short _022515C2 - _022514AC - 2 ; case 2
+ .short _022515D6 - _022514AC - 2 ; case 3
+ .short _02251634 - _022514AC - 2 ; case 4
+ .short _0225177C - _022514AC - 2 ; case 5
+ .short _022517B8 - _022514AC - 2 ; case 6
+ .short _02251808 - _022514AC - 2 ; case 7
+ .short _022519DC - _022514AC - 2 ; case 8
+ .short _02251A5A - _022514AC - 2 ; case 9
+ .short _02251A96 - _022514AC - 2 ; case 10
+ .short _02251AB8 - _022514AC - 2 ; case 11
+ .short _02251FA2 - _022514AC - 2 ; case 12
+ .short _02251B3E - _022514AC - 2 ; case 13
+ .short _02251FA2 - _022514AC - 2 ; case 14
+ .short _02251BF2 - _022514AC - 2 ; case 15
+ .short _02251FD0 - _022514AC - 2 ; case 16
+ .short _02251AF8 - _022514AC - 2 ; case 17
+ .short _02251FA2 - _022514AC - 2 ; case 18
+ .short _02251CA6 - _022514AC - 2 ; case 19
+ .short _02251FA2 - _022514AC - 2 ; case 20
+ .short _02251CEC - _022514AC - 2 ; case 21
+ .short _02251D86 - _022514AC - 2 ; case 22
+ .short _02251DBC - _022514AC - 2 ; case 23
+ .short _02251FD0 - _022514AC - 2 ; case 24
+ .short _02251AF8 - _022514AC - 2 ; case 25
+ .short _02251FA2 - _022514AC - 2 ; case 26
+ .short _02251CA6 - _022514AC - 2 ; case 27
+ .short _02251FA2 - _022514AC - 2 ; case 28
+ .short _02251E2E - _022514AC - 2 ; case 29
+ .short _02251FD0 - _022514AC - 2 ; case 30
+_022514EA:
+ ldr r0, [r4]
+ bl MOD11_02230094
+ bl MOD11_0225C76C
+ strb r0, [r4, #0x10]
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #1
+ bl FUN_020143A8
+ mov r1, #0
+ mov r2, #3
+ str r1, [sp]
+ mov r0, #7
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #5
+ add r3, r1, #0
+ add r0, r5, #0
+ lsl r2, r2, #0xa
+ sub r3, #0xd
+ bl FUN_02003210
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0xa
+ add r3, r1, #0
+ ldr r2, _02251850 ; =0x0000FFFF
+ add r0, r5, #0
+ sub r3, #0x12
+ bl FUN_02003210
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251540:
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _022515FE
+ ldr r0, [r4]
+ bl MOD11_0222D7F8
+ mov r0, #5
+ mov r1, #0x34
+ bl AllocFromHeap
+ str r0, [r4, #4]
+ ldr r1, [r4]
+ str r1, [r0]
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_022301D4
+ ldr r1, [r4, #4]
+ str r0, [r1, #4]
+ ldr r0, [r4, #4]
+ mov r1, #5
+ str r1, [r0, #0xc]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r0, #0x26
+ strb r1, [r0]
+ ldr r0, [r4]
+ bl MOD11_02230214
+ ldr r1, [r4, #4]
+ str r0, [r1, #8]
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4, #4]
+ str r1, [r0, #0x10]
+ ldr r0, [r4, #4]
+ ldrb r1, [r4, #0x10]
+ add r0, #0x25
+ strb r1, [r0]
+ ldr r0, [r4, #4]
+ ldrb r1, [r4, #0x14]
+ add r0, #0x22
+ strb r1, [r0]
+ ldr r0, [r4, #4]
+ ldrb r1, [r4, #0x15]
+ add r0, #0x23
+ strb r1, [r0]
+ ldr r0, [r4, #4]
+ ldrb r1, [r4, #0x16]
+ add r0, #0x24
+ strb r1, [r0]
+ ldrb r0, [r4, #0xd]
+ add r0, r4, r0
+ add r0, #0x30
+ ldrb r1, [r0]
+ ldr r0, [r4, #4]
+ str r1, [r0, #0x18]
+ ldr r0, [r4, #4]
+ bl MOD09_022186F0
+ add sp, #0x1fc
+ mov r0, #3
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_022515C2:
+ ldr r0, [r4, #4]
+ ldrb r1, [r4, #0x10]
+ add r0, #0x25
+ strb r1, [r0]
+ ldr r0, [r4, #4]
+ bl MOD09_022186F0
+ ldrb r0, [r4, #0xe]
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+_022515D6:
+ ldr r1, [r4, #4]
+ add r0, r1, #0
+ add r0, #0x26
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _022515FE
+ mov r0, #0
+ add r1, #0x26
+ strb r0, [r1]
+ ldr r0, [r4, #4]
+ add r0, #0x25
+ ldrb r0, [r0]
+ strb r0, [r4, #0x10]
+ ldr r1, [r4, #4]
+ ldrh r0, [r1, #0x1c]
+ cmp r0, #0
+ beq _0225162A
+ ldrb r0, [r1, #0x1e]
+ cmp r0, #3
+ bls _02251602
+_022515FE:
+ bl _02251FEA
+_02251602:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225160E: ; jump table
+ .short _02251616 - _0225160E - 2 ; case 0
+ .short _02251616 - _0225160E - 2 ; case 1
+ .short _02251620 - _0225160E - 2 ; case 2
+ .short _02251620 - _0225160E - 2 ; case 3
+_02251616:
+ add sp, #0x1fc
+ mov r0, #4
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251620:
+ add sp, #0x1fc
+ mov r0, #6
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225162A:
+ add sp, #0x1fc
+ mov r0, #6
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251634:
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_0222FF88
+ str r0, [sp, #0x14]
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _02251660
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ bne _02251660
+ ldrb r1, [r4, #0xd]
+ mov r0, #1
+ add r7, r1, #0
+ and r7, r0
+ b _02251662
+_02251660:
+ ldrb r7, [r4, #0xd]
+_02251662:
+ ldr r0, [r4, #8]
+ mov r1, #6
+ ldr r0, [r0, #4]
+ ldr r0, [r0]
+ bl FUN_0206B8CC
+ ldr r0, [sp, #0x14]
+ mov r6, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _022516B0
+ mov r0, #6
+ mul r0, r7
+ add r5, r4, r0
+_02251680:
+ ldrb r2, [r5, #0x18]
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD11_02230014
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ ldr r0, [r0]
+ bl FUN_0206B900
+ ldr r1, [r4, #8]
+ ldrb r0, [r5, #0x18]
+ ldr r1, [r1, #4]
+ add r5, r5, #1
+ add r1, r1, r6
+ add r1, #0x2c
+ strb r0, [r1]
+ ldr r0, [sp, #0x14]
+ add r6, r6, #1
+ bl GetPartyCount
+ cmp r6, r0
+ blt _02251680
+_022516B0:
+ ldr r0, [r4, #8]
+ ldr r1, [r4]
+ ldr r0, [r0, #4]
+ str r1, [r0, #8]
+ ldr r0, [r4, #8]
+ mov r1, #5
+ ldr r0, [r0, #4]
+ str r1, [r0, #0xc]
+ ldr r1, [r4, #8]
+ mov r0, #0
+ ldr r1, [r1, #4]
+ strb r0, [r1, #0x11]
+ ldr r1, [r4, #8]
+ ldr r1, [r1, #4]
+ add r1, #0x36
+ strb r0, [r1]
+ ldr r1, [r4, #8]
+ ldr r1, [r1, #4]
+ strh r0, [r1, #0x24]
+ ldr r0, [r4, #8]
+ mov r1, #2
+ ldr r0, [r0, #4]
+ add r0, #0x35
+ strb r1, [r0]
+ ldr r0, [r4, #4]
+ ldrh r1, [r0, #0x1c]
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ strh r1, [r0, #0x22]
+ ldr r0, [r4, #4]
+ ldrb r1, [r0, #0x1e]
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ add r0, #0x33
+ strb r1, [r0]
+ ldr r0, [r4, #4]
+ ldr r1, [r0, #0x10]
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ str r1, [r0, #0x28]
+ ldr r0, [r4, #8]
+ ldrb r1, [r4, #0x10]
+ ldr r0, [r0, #4]
+ add r0, #0x32
+ strb r1, [r0]
+ ldrb r0, [r4, #0xd]
+ ldr r2, [r4, #8]
+ add r0, r2, r0
+ ldrb r1, [r0, #0xc]
+ ldr r0, [r2, #4]
+ strb r1, [r0, #0x14]
+ ldrb r1, [r4, #0xd]
+ ldr r5, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+ add r0, r5, r0
+ ldrb r1, [r0, #0xc]
+ ldr r0, [r5, #4]
+ strb r1, [r0, #0x15]
+ ldrb r0, [r4, #0xf]
+ cmp r0, #4
+ bne _02251746
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+ add r0, r4, r0
+ add r0, #0x30
+ ldrb r1, [r0]
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ str r1, [r0, #0x18]
+ ldrb r0, [r4, #0xd]
+ b _0225175C
+_02251746:
+ ldrb r0, [r4, #0xd]
+ add r0, r4, r0
+ add r0, #0x30
+ ldrb r1, [r0]
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ str r1, [r0, #0x18]
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+_0225175C:
+ add r0, r4, r0
+ add r0, #0x30
+ ldrb r1, [r0]
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ str r1, [r0, #0x1c]
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ bl MOD07_02211E60
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225177C:
+ ldr r0, [r4, #8]
+ ldr r1, [r0, #4]
+ add r0, r1, #0
+ add r0, #0x36
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02251832
+ add r1, #0x32
+ ldrb r0, [r1]
+ mov r1, #0
+ strb r0, [r4, #0x10]
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ add r0, #0x36
+ strb r1, [r0]
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ ldrb r0, [r0, #0x11]
+ cmp r0, #6
+ bne _022517AE
+ add sp, #0x1fc
+ mov r0, #2
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_022517AE:
+ add sp, #0x1fc
+ mov r0, #6
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_022517B8:
+ ldr r0, [r4]
+ bl MOD11_0222D88C
+ ldr r0, [r4]
+ bl MOD11_02230094
+ ldrb r1, [r4, #0x10]
+ bl MOD11_0225C778
+ mov r0, #7
+ str r0, [sp]
+ mov r0, #0
+ mov r1, #5
+ str r0, [sp, #4]
+ mov r2, #3
+ add r3, r1, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ lsl r2, r2, #0xa
+ sub r3, #0xd
+ bl FUN_02003210
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0
+ mov r1, #0xa
+ str r0, [sp, #4]
+ add r3, r1, #0
+ str r0, [sp, #8]
+ ldr r2, _02251850 ; =0x0000FFFF
+ add r0, r5, #0
+ sub r3, #0x12
+ bl FUN_02003210
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251808:
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02251832
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #0
+ bl FUN_020143A8
+ ldr r0, [r4, #4]
+ ldrh r0, [r0, #0x1c]
+ cmp r0, #0
+ bne _02251826
+ b _022519D2
+_02251826:
+ mov r0, #9
+ strb r0, [r4, #0xe]
+ ldr r0, [r4, #4]
+ ldrb r1, [r0, #0x1e]
+ cmp r1, #3
+ bls _02251834
+_02251832:
+ b _02251FEA
+_02251834:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02251840: ; jump table
+ .short _022518F4 - _02251840 - 2 ; case 0
+ .short _02251848 - _02251840 - 2 ; case 1
+ .short _022519C8 - _02251840 - 2 ; case 2
+ .short _0225195E - _02251840 - 2 ; case 3
+_02251848:
+ ldrh r1, [r0, #0x1c]
+ ldr r0, _02251854 ; =0x0000FFE4
+ b _02251858
+ nop
+_02251850: .word 0x0000FFFF
+_02251854: .word 0x0000FFE4
+_02251858:
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #1
+ bhi _0225186C
+ add sp, #0x1fc
+ mov r0, #8
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225186C:
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ ldrb r0, [r0, #0x11]
+ cmp r0, #2
+ bhs _0225188A
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ cmp r0, #3
+ beq _02251894
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ cmp r0, #0x13
+ beq _02251894
+_0225188A:
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ ldrb r0, [r0, #0x11]
+ cmp r0, #1
+ bhs _022518EA
+_02251894:
+ ldr r0, [r4, #4]
+ ldrh r0, [r0, #0x1c]
+ cmp r0, #0x17
+ ldr r0, [r4]
+ bne _022518C4
+ bl MOD11_02230E20
+ cmp r0, #1
+ bne _022518B0
+ add sp, #0x1fc
+ mov r0, #0x11
+ add sp, #0x14
+ strh r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+_022518B0:
+ mov r1, #0x74
+ ldr r0, _02251BF8 ; =0x000005EC
+ mvn r1, r1
+ bl FUN_020054A8
+ add sp, #0x1fc
+ mov r0, #0x15
+ add sp, #0x14
+ strh r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+_022518C4:
+ bl MOD11_02230E20
+ cmp r0, #1
+ bne _022518D6
+ add sp, #0x1fc
+ mov r0, #0x19
+ add sp, #0x14
+ strh r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+_022518D6:
+ mov r1, #0x74
+ ldr r0, _02251BF8 ; =0x000005EC
+ mvn r1, r1
+ bl FUN_020054A8
+ add sp, #0x1fc
+ mov r0, #0x1d
+ add sp, #0x14
+ strh r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+_022518EA:
+ add sp, #0x1fc
+ mov r0, #8
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_022518F4:
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ ldrb r0, [r0, #0x11]
+ cmp r0, #2
+ bhs _02251912
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ cmp r0, #3
+ beq _0225191C
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ cmp r0, #0x13
+ beq _0225191C
+_02251912:
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ ldrb r0, [r0, #0x11]
+ cmp r0, #1
+ bhs _02251954
+_0225191C:
+ ldr r0, [r4, #4]
+ mov r1, #0x26
+ ldrh r0, [r0, #0x1c]
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02251954
+ ldr r0, [r4]
+ bl MOD11_02230E20
+ cmp r0, #1
+ bne _02251940
+ add sp, #0x1fc
+ mov r0, #0x11
+ add sp, #0x14
+ strh r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251940:
+ mov r1, #0x74
+ ldr r0, _02251BF8 ; =0x000005EC
+ mvn r1, r1
+ bl FUN_020054A8
+ add sp, #0x1fc
+ mov r0, #0x15
+ add sp, #0x14
+ strh r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251954:
+ add sp, #0x1fc
+ mov r0, #8
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225195E:
+ ldrh r1, [r0, #0x1c]
+ ldr r0, _02251BFC ; =0x0000FFC1
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #1
+ bhi _02251976
+ add sp, #0x1fc
+ mov r0, #8
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251976:
+ cmp r1, #0x37
+ ldr r0, [r4]
+ bne _022519A2
+ bl MOD11_02230E20
+ cmp r0, #1
+ bne _0225198E
+ add sp, #0x1fc
+ mov r0, #0xd
+ add sp, #0x14
+ strh r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225198E:
+ mov r1, #0x74
+ ldr r0, _02251BF8 ; =0x000005EC
+ mvn r1, r1
+ bl FUN_020054A8
+ add sp, #0x1fc
+ mov r0, #0xf
+ add sp, #0x14
+ strh r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+_022519A2:
+ bl MOD11_02230E20
+ cmp r0, #1
+ bne _022519B4
+ add sp, #0x1fc
+ mov r0, #0xb
+ add sp, #0x14
+ strh r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+_022519B4:
+ mov r1, #0x74
+ ldr r0, _02251BF8 ; =0x000005EC
+ mvn r1, r1
+ bl FUN_020054A8
+ add sp, #0x1fc
+ mov r0, #0xf
+ add sp, #0x14
+ strh r0, [r4, #0x12]
+ pop {r3, r4, r5, r6, r7, pc}
+_022519C8:
+ add sp, #0x1fc
+ mov r0, #8
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_022519D2:
+ add sp, #0x1fc
+ mov r0, #8
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_022519DC:
+ ldr r2, [r4, #4]
+ ldrh r0, [r2, #0x1c]
+ cmp r0, #0
+ bne _022519EC
+ mov r1, #0xff
+ add r0, sp, #0x1c
+ strh r1, [r0]
+ b _02251A08
+_022519EC:
+ add r1, sp, #0x1c
+ strh r0, [r1]
+ ldrb r0, [r2, #0x1e]
+ strb r0, [r1, #2]
+ cmp r0, #1
+ bhi _02251A08
+ ldr r0, [r4, #8]
+ ldr r2, [r0, #4]
+ ldrb r0, [r2, #0x11]
+ add r0, r2, r0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r0, r0, #1
+ strb r0, [r1, #3]
+_02251A08:
+ add r3, sp, #0x1c
+ ldrb r1, [r4, #0xd]
+ mov r2, sp
+ ldrh r5, [r3]
+ ldr r0, [r4]
+ sub r2, r2, #4
+ strh r5, [r2]
+ ldrh r3, [r3, #2]
+ strh r3, [r2, #2]
+ ldr r2, [r2]
+ bl MOD11_022558C4
+ ldrb r1, [r4, #0xd]
+ ldrb r2, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ ldr r0, [r0]
+ bl FreeToHeap
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ bl FreeToHeap
+ ldr r0, [r4, #8]
+ bl FreeToHeap
+ ldr r0, [r4, #4]
+ bl FreeToHeap
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r7, #0
+ bl FUN_0200CAB4
+ add sp, #0x1fc
+ add sp, #0x14
+ pop {r3, r4, r5, r6, r7, pc}
+_02251A5A:
+ ldr r1, _02251C00 ; =0x000004B6
+ add r0, sp, #0x8c
+ strh r1, [r0, #2]
+ mov r1, #5
+ strb r1, [r0, #1]
+ ldr r0, [r4, #4]
+ ldrh r0, [r0, #0x1c]
+ str r0, [sp, #0x90]
+ ldr r0, [r4]
+ bl MOD11_022300C4
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r2, sp, #0x8c
+ bl MOD11_0223178C
+ strb r0, [r4, #0x11]
+ mov r0, #0x14
+ strb r0, [r4, #0x17]
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251A96:
+ ldrb r0, [r4, #0x11]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02251AAC
+ ldrb r0, [r4, #0x17]
+ sub r0, r0, #1
+ strb r0, [r4, #0x17]
+ ldrb r0, [r4, #0x17]
+ cmp r0, #0
+ beq _02251AAE
+_02251AAC:
+ b _02251FEA
+_02251AAE:
+ ldrh r0, [r4, #0x12]
+ add sp, #0x1fc
+ add sp, #0x14
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251AB8:
+ ldrb r1, [r4, #0xd]
+ mov r0, #9
+ add r2, sp, #0x1b8
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_0222FF7C
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230070
+ add r2, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r3, sp, #0x1b8
+ bl MOD11_02254404
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251AF8:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ ldr r0, [r0, #4]
+ add r2, sp, #0x160
+ ldrb r0, [r0, #0x11]
+ mov r3, #1
+ lsl r5, r0, #1
+ mov r0, #9
+ str r0, [sp]
+ str r5, [sp, #4]
+ str r5, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ bl MOD11_02256854
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230070
+ add r2, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r3, sp, #0x160
+ bl MOD11_02254404
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251B3E:
+ ldr r0, [r4, #4]
+ add r2, sp, #0x108
+ ldrh r0, [r0, #0x1c]
+ cmp r0, #0x37
+ bne _02251B7C
+ ldrb r0, [r4, #0xd]
+ mov r1, #0
+ add r3, r1, #0
+ str r1, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x36
+ str r0, [sp, #0xc]
+ ldr r0, [r4]
+ bl MOD11_02256854
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_0222FF7C
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230070
+ add r2, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r3, sp, #0x108
+ bl MOD11_02254404
+ b _02251BE6
+_02251B7C:
+ cmp r0, #0x38
+ bne _02251BB4
+ ldrb r0, [r4, #0xd]
+ mov r1, #0
+ add r3, r1, #0
+ str r1, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x74
+ str r0, [sp, #0xc]
+ ldr r0, [r4]
+ bl MOD11_02256854
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_0222FF7C
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230070
+ add r2, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r3, sp, #0x108
+ bl MOD11_02254404
+ b _02251BE6
+_02251BB4:
+ ldrb r1, [r4, #0xd]
+ mov r0, #0xc
+ mov r3, #1
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ bl MOD11_02256854
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_0222FF7C
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230070
+ add r2, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r3, sp, #0x108
+ bl MOD11_02254404
+_02251BE6:
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251BF2:
+ ldr r2, _02251C04 ; =0x000004B3
+ b _02251C08
+ nop
+_02251BF8: .word 0x000005EC
+_02251BFC: .word 0x0000FFC1
+_02251C00: .word 0x000004B6
+_02251C04: .word 0x000004B3
+_02251C08:
+ add r0, sp, #0x68
+ strh r2, [r0, #2]
+ mov r1, #0xc
+ strb r1, [r0, #1]
+ ldrb r1, [r4, #0xd]
+ ldr r3, [r4, #8]
+ add r3, r3, r1
+ ldrb r3, [r3, #0xc]
+ lsl r3, r3, #8
+ orr r1, r3
+ str r1, [sp, #0x6c]
+ ldr r1, [r4, #4]
+ ldrh r1, [r1, #0x1c]
+ sub r1, #0x37
+ cmp r1, #7
+ bhi _02251C7A
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02251C34: ; jump table
+ .short _02251C68 - _02251C34 - 2 ; case 0
+ .short _02251C72 - _02251C34 - 2 ; case 1
+ .short _02251C44 - _02251C34 - 2 ; case 2
+ .short _02251C4A - _02251C34 - 2 ; case 3
+ .short _02251C50 - _02251C34 - 2 ; case 4
+ .short _02251C56 - _02251C34 - 2 ; case 5
+ .short _02251C5C - _02251C34 - 2 ; case 6
+ .short _02251C62 - _02251C34 - 2 ; case 7
+_02251C44:
+ mov r0, #1
+ str r0, [sp, #0x70]
+ b _02251C7A
+_02251C4A:
+ mov r0, #2
+ str r0, [sp, #0x70]
+ b _02251C7A
+_02251C50:
+ mov r0, #3
+ str r0, [sp, #0x70]
+ b _02251C7A
+_02251C56:
+ mov r0, #6
+ str r0, [sp, #0x70]
+ b _02251C7A
+_02251C5C:
+ mov r0, #4
+ str r0, [sp, #0x70]
+ b _02251C7A
+_02251C62:
+ mov r0, #5
+ str r0, [sp, #0x70]
+ b _02251C7A
+_02251C68:
+ add r1, r2, #1
+ strh r1, [r0, #2]
+ mov r1, #0
+ strb r1, [r0, #1]
+ b _02251C7A
+_02251C72:
+ add r1, r2, #2
+ strh r1, [r0, #2]
+ mov r1, #2
+ strb r1, [r0, #1]
+_02251C7A:
+ ldr r0, [r4]
+ bl MOD11_022300C4
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r2, sp, #0x68
+ bl MOD11_0223178C
+ strb r0, [r4, #0x11]
+ mov r0, #0x14
+ strb r0, [r4, #0x17]
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251CA6:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ ldr r0, [r0, #4]
+ add r2, sp, #0xb0
+ ldrb r0, [r0, #0x11]
+ mov r3, #1
+ lsl r5, r0, #1
+ mov r0, #0xe
+ str r0, [sp]
+ str r5, [sp, #4]
+ str r5, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ bl MOD11_02256854
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl MOD11_0222FF7C
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230070
+ add r2, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r3, sp, #0xb0
+ bl MOD11_02254404
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251CEC:
+ ldr r0, [r4, #8]
+ ldr r1, [r0, #4]
+ ldrb r0, [r1, #0x11]
+ lsl r6, r0, #1
+ add r0, r1, r0
+ add r0, #0x2c
+ ldrb r7, [r0]
+ ldr r0, [r4]
+ add r1, r6, #0
+ bl MOD11_02231380
+ mov r1, #0
+ mov r2, #1
+ add r5, r0, #0
+ bl MI_CpuFill8
+ ldr r0, [r4]
+ add r1, r6, #0
+ bl MOD11_02230260
+ str r0, [sp, #0x18]
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ add r1, r0, #0
+ ldr r0, [sp, #0x18]
+ bl MOD11_02257F6C
+ add r1, r5, #0
+ add r1, #0x25
+ strb r0, [r1]
+ ldr r0, [r4]
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD11_02230014
+ mov r1, #0xa2
+ mov r2, #0
+ add r6, r0, #0
+ bl GetMonData
+ ldr r1, [r4, #8]
+ mov r2, #0
+ ldr r1, [r1, #4]
+ ldrh r1, [r1, #0x20]
+ sub r0, r0, r1
+ str r0, [r5, #0x28]
+ add r0, r6, #0
+ mov r1, #0xa3
+ bl GetMonData
+ str r0, [r5, #0x2c]
+ ldr r0, [r4, #8]
+ mov r1, #0x9f
+ ldr r0, [r0, #4]
+ mov r2, #0
+ ldrh r0, [r0, #0x20]
+ str r0, [r5, #0x30]
+ add r0, r6, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _02251D72
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0x4a
+ strb r1, [r0]
+_02251D72:
+ ldr r1, [r5, #0x30]
+ add r0, r5, #0
+ bl MOD11_02257150
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251D86:
+ ldr r1, [r4, #8]
+ ldr r0, [r4]
+ ldr r1, [r1, #4]
+ ldrb r1, [r1, #0x11]
+ lsl r1, r1, #1
+ bl MOD11_02231380
+ add r5, r0, #0
+ bl MOD11_02257184
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _02251DA4
+ b _02251FEA
+_02251DA4:
+ mov r2, #1
+ add r0, r5, #0
+ mov r1, #0
+ lsl r2, r2, #8
+ bl MOD11_02256D70
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251DBC:
+ ldr r0, [r4]
+ bl MOD11_022300C4
+ add r5, r0, #0
+ ldr r0, [r4, #8]
+ ldr r1, [r0, #4]
+ ldrb r0, [r1, #0x11]
+ ldrh r1, [r1, #0x20]
+ lsl r0, r0, #1
+ cmp r1, #0
+ add r1, sp, #0x1c
+ beq _02251DF4
+ ldr r2, _02251FF0 ; =0x000004BE
+ strh r2, [r1, #0x2a]
+ mov r2, #0x11
+ add r1, sp, #0x44
+ strb r2, [r1, #1]
+ ldr r1, [r4, #8]
+ add r1, r1, r0
+ ldrb r1, [r1, #0xc]
+ lsl r1, r1, #8
+ orr r0, r1
+ str r0, [sp, #0x48]
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ ldrh r0, [r0, #0x20]
+ str r0, [sp, #0x4c]
+ b _02251E0A
+_02251DF4:
+ ldr r2, _02251FF4 ; =0x000004E2
+ strh r2, [r1, #0x2a]
+ mov r2, #2
+ add r1, sp, #0x44
+ strb r2, [r1, #1]
+ ldr r1, [r4, #8]
+ add r1, r1, r0
+ ldrb r1, [r1, #0xc]
+ lsl r1, r1, #8
+ orr r0, r1
+ str r0, [sp, #0x48]
+_02251E0A:
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r2, sp, #0x44
+ bl MOD11_0223178C
+ strb r0, [r4, #0x11]
+ mov r0, #0x14
+ strb r0, [r4, #0x17]
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251E2E:
+ ldr r0, [r4, #8]
+ mov r5, #0
+ ldr r0, [r0, #4]
+ ldrb r0, [r0, #0x11]
+ lsl r7, r0, #1
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD11_02231380
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #8]
+ add r1, r7, #0
+ ldr r3, [r0, #4]
+ ldr r0, [r4]
+ ldrb r2, [r3, #0x11]
+ add r2, r3, r2
+ add r2, #0x2c
+ ldrb r2, [r2]
+ bl MOD11_02230014
+ mov r1, #0x9f
+ add r2, r5, #0
+ bl GetMonData
+ cmp r0, #0
+ bne _02251E6A
+ ldr r0, [sp, #0x10]
+ add r1, r5, #0
+ add r0, #0x4a
+ strb r1, [r0]
+_02251E6A:
+ ldr r0, [sp, #0x10]
+ mov r2, #1
+ add r1, r0, #0
+ ldr r1, [r1, #0x28]
+ lsl r2, r2, #8
+ bl MOD11_02256D70
+ mov r1, #2
+ add r0, sp, #0x1c
+ strb r1, [r0, #5]
+ ldr r0, [r4, #8]
+ mov r1, #0xf
+ add r0, r0, r7
+ ldrb r0, [r0, #0xc]
+ mov r2, #5
+ lsl r0, r0, #8
+ orr r0, r7
+ str r0, [sp, #0x24]
+ ldr r0, [r4, #4]
+ ldrh r0, [r0, #0x1c]
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02251E9E
+ mov r6, #0
+ add r5, r5, #1
+_02251E9E:
+ ldr r0, [r4, #4]
+ mov r1, #0x10
+ ldrh r0, [r0, #0x1c]
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02251EB2
+ mov r6, #1
+ add r5, r5, #1
+_02251EB2:
+ ldr r0, [r4, #4]
+ mov r1, #0x11
+ ldrh r0, [r0, #0x1c]
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02251EC6
+ mov r6, #2
+ add r5, r5, #1
+_02251EC6:
+ ldr r0, [r4, #4]
+ mov r1, #0x12
+ ldrh r0, [r0, #0x1c]
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02251EDA
+ mov r6, #3
+ add r5, r5, #1
+_02251EDA:
+ ldr r0, [r4, #4]
+ mov r1, #0x13
+ ldrh r0, [r0, #0x1c]
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02251EEE
+ mov r6, #4
+ add r5, r5, #1
+_02251EEE:
+ ldr r0, [r4, #4]
+ mov r1, #0x14
+ ldrh r0, [r0, #0x1c]
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02251F02
+ mov r6, #5
+ add r5, r5, #1
+_02251F02:
+ ldr r0, [r4, #4]
+ mov r1, #0x15
+ ldrh r0, [r0, #0x1c]
+ mov r2, #5
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _02251F16
+ mov r6, #6
+ add r5, r5, #1
+_02251F16:
+ cmp r5, #1
+ beq _02251F22
+ ldr r1, _02251FF8 ; =0x000004CD
+ add r0, sp, #0x1c
+ strh r1, [r0, #6]
+ b _02251F76
+_02251F22:
+ cmp r6, #6
+ bhi _02251F76
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02251F32: ; jump table
+ .short _02251F40 - _02251F32 - 2 ; case 0
+ .short _02251F48 - _02251F32 - 2 ; case 1
+ .short _02251F50 - _02251F32 - 2 ; case 2
+ .short _02251F58 - _02251F32 - 2 ; case 3
+ .short _02251F60 - _02251F32 - 2 ; case 4
+ .short _02251F68 - _02251F32 - 2 ; case 5
+ .short _02251F70 - _02251F32 - 2 ; case 6
+_02251F40:
+ ldr r1, _02251FFC ; =0x000004BA
+ add r0, sp, #0x1c
+ strh r1, [r0, #6]
+ b _02251F76
+_02251F48:
+ ldr r1, _02252000 ; =0x000004B7
+ add r0, sp, #0x1c
+ strh r1, [r0, #6]
+ b _02251F76
+_02251F50:
+ ldr r1, _02252004 ; =0x000004B9
+ add r0, sp, #0x1c
+ strh r1, [r0, #6]
+ b _02251F76
+_02251F58:
+ ldr r1, _02252008 ; =0x000004BB
+ add r0, sp, #0x1c
+ strh r1, [r0, #6]
+ b _02251F76
+_02251F60:
+ ldr r1, _0225200C ; =0x000004B8
+ add r0, sp, #0x1c
+ strh r1, [r0, #6]
+ b _02251F76
+_02251F68:
+ ldr r1, _02252010 ; =0x000004BC
+ add r0, sp, #0x1c
+ strh r1, [r0, #6]
+ b _02251F76
+_02251F70:
+ ldr r1, _02252014 ; =0x000004BD
+ add r0, sp, #0x1c
+ strh r1, [r0, #6]
+_02251F76:
+ ldr r0, [r4]
+ bl MOD11_022300C4
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r2, sp, #0x20
+ bl MOD11_0223178C
+ strb r0, [r4, #0x11]
+ mov r0, #0x14
+ strb r0, [r4, #0x17]
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251FA2:
+ ldr r0, [r4]
+ bl MOD11_02230070
+ bl MOD08_02212384
+ ldr r0, [r4]
+ bl MOD11_02230070
+ bl MOD08_022123A0
+ cmp r0, #0
+ bne _02251FEA
+ ldr r0, [r4]
+ bl MOD11_02230070
+ bl MOD08_022123B0
+ ldrb r0, [r4, #0xe]
+ add sp, #0x1fc
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, r6, r7, pc}
+_02251FD0:
+ ldrb r0, [r4, #0x11]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02251FEA
+ ldrb r0, [r4, #0x17]
+ sub r0, r0, #1
+ strb r0, [r4, #0x17]
+ ldrb r0, [r4, #0x17]
+ cmp r0, #0
+ bne _02251FEA
+ mov r0, #8
+ strb r0, [r4, #0xe]
+_02251FEA:
+ add sp, #0x1fc
+ add sp, #0x14
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02251FF0: .word 0x000004BE
+_02251FF4: .word 0x000004E2
+_02251FF8: .word 0x000004CD
+_02251FFC: .word 0x000004BA
+_02252000: .word 0x000004B7
+_02252004: .word 0x000004B9
+_02252008: .word 0x000004BB
+_0225200C: .word 0x000004B8
+_02252010: .word 0x000004BC
+_02252014: .word 0x000004BD
+
+ thumb_func_start MOD11_02252018
+MOD11_02252018: ; 0x02252018
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ mov r0, #1
+ add r3, sp, #0
+ strh r0, [r3]
+ add r4, r1, #0
+ mov r2, sp
+ ldrb r1, [r4, #0xd]
+ ldrh r6, [r3]
+ ldr r0, [r4]
+ sub r2, r2, #4
+ strh r6, [r2]
+ ldrh r3, [r3, #2]
+ strh r3, [r2, #2]
+ ldr r2, [r2]
+ bl MOD11_022558C4
+ ldrb r1, [r4, #0xd]
+ ldrb r2, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ ldr r0, [r0]
+ bl FreeToHeap
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ bl FreeToHeap
+ ldr r0, [r4, #8]
+ bl FreeToHeap
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02252070
+MOD11_02252070: ; 0x02252070
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #0xd]
+ add r5, r0, #0
+ ldrb r2, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ ldr r0, [r0]
+ bl FreeToHeap
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #4]
+ bl FreeToHeap
+ ldr r0, [r4, #8]
+ bl FreeToHeap
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022520A8
+MOD11_022520A8: ; 0x022520A8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ ldrb r1, [r4, #0xa]
+ add r5, r0, #0
+ cmp r1, #3
+ bhi _02252144
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022520CA: ; jump table
+ .short _022520D2 - _022520CA - 2 ; case 0
+ .short _0225213C - _022520CA - 2 ; case 1
+ .short _022523B2 - _022520CA - 2 ; case 2
+ .short _0225240E - _022520CA - 2 ; case 3
+_022520D2:
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD11_0222FF6C
+ add r6, r0, #0
+ mov r1, #0xff
+ bl FUN_02019620
+ add r0, r6, #0
+ bl FUN_02019548
+ ldr r0, [r4]
+ bl MOD11_02230094
+ bl MOD11_0225C76C
+ strb r0, [r4, #0x17]
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #1
+ bl FUN_020143A8
+ mov r1, #0
+ mov r2, #3
+ str r1, [sp]
+ mov r0, #7
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #5
+ add r3, r1, #0
+ add r0, r5, #0
+ lsl r2, r2, #0xa
+ sub r3, #0xd
+ bl FUN_02003210
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0xa
+ add r3, r1, #0
+ ldr r2, _0225246C ; =0x0000FFFF
+ add r0, r5, #0
+ sub r3, #0x12
+ bl FUN_02003210
+ ldrb r0, [r4, #0xa]
+ add sp, #0x24
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r4, r5, r6, r7, pc}
+_0225213C:
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _02252146
+_02252144:
+ b _02252468
+_02252146:
+ ldr r0, [r4]
+ bl MOD11_0222D7F8
+ mov r0, #5
+ mov r1, #0x38
+ bl AllocFromHeap
+ str r0, [r4, #4]
+ mov r0, #5
+ bl FUN_0206B8AC
+ ldr r1, [r4, #4]
+ str r0, [r1]
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #0xc
+ and r0, r1
+ cmp r0, #0xc
+ beq _0225217A
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ cmp r0, #0xcb
+ beq _0225217A
+ b _0225228E
+_0225217A:
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_02230260
+ cmp r0, #2
+ bne _02252196
+ ldrb r0, [r4, #9]
+ str r0, [sp, #0x18]
+ ldr r0, [r4]
+ ldr r1, [sp, #0x18]
+ bl MOD11_022302BC
+ str r0, [sp, #0x14]
+ b _022521A4
+_02252196:
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+ str r0, [sp, #0x18]
+ ldrb r0, [r4, #9]
+ str r0, [sp, #0x14]
+_022521A4:
+ mov r0, #5
+ bl AllocMonZeroed
+ add r6, r0, #0
+ mov r5, #0
+_022521AE:
+ ldr r0, [r4, #4]
+ add r1, r6, #0
+ ldr r0, [r0]
+ bl FUN_0206B900
+ add r5, r5, #1
+ cmp r5, #6
+ blt _022521AE
+ add r0, r6, #0
+ bl FreeToHeap
+ ldr r0, [r4]
+ ldr r1, [sp, #0x18]
+ mov r7, #0
+ bl MOD11_0222FFC8
+ cmp r0, #0
+ ble _02252216
+ ldr r0, [sp, #0x18]
+ mov r1, #6
+ mul r1, r0
+ add r5, r4, r1
+ add r6, r7, #0
+_022521DC:
+ ldrb r2, [r5, #0x1c]
+ ldr r0, [r4]
+ ldr r1, [sp, #0x18]
+ bl MOD11_02230014
+ str r0, [sp, #0x1c]
+ ldr r0, [r4, #4]
+ add r1, r6, #0
+ ldr r0, [r0]
+ bl GetPartyMonByIndex
+ add r1, r0, #0
+ ldr r0, [sp, #0x1c]
+ bl FUN_02069B88
+ ldr r0, [r4, #4]
+ ldrb r1, [r5, #0x1c]
+ add r0, r0, r6
+ add r0, #0x2c
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldr r1, [sp, #0x18]
+ add r5, r5, #1
+ add r6, r6, #2
+ add r7, r7, #1
+ bl MOD11_0222FFC8
+ cmp r7, r0
+ blt _022521DC
+_02252216:
+ ldr r0, [r4]
+ ldr r1, [sp, #0x14]
+ mov r6, #0
+ bl MOD11_0222FFC8
+ cmp r0, #0
+ ble _02252272
+ ldr r0, [sp, #0x14]
+ mov r1, #6
+ mul r1, r0
+ mov r0, #1
+ add r5, r4, r1
+ str r0, [sp, #0xc]
+ add r7, r6, #0
+_02252232:
+ ldrb r2, [r5, #0x1c]
+ ldr r0, [r4]
+ ldr r1, [sp, #0x14]
+ bl MOD11_02230014
+ str r0, [sp, #0x20]
+ ldr r0, [r4, #4]
+ ldr r1, [sp, #0xc]
+ ldr r0, [r0]
+ bl GetPartyMonByIndex
+ add r1, r0, #0
+ ldr r0, [sp, #0x20]
+ bl FUN_02069B88
+ ldr r0, [r4, #4]
+ ldrb r1, [r5, #0x1c]
+ add r0, r0, r7
+ add r0, #0x2d
+ strb r1, [r0]
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0x14]
+ add r0, r0, #2
+ str r0, [sp, #0xc]
+ ldr r0, [r4]
+ add r5, r5, #1
+ add r7, r7, #2
+ add r6, r6, #1
+ bl MOD11_0222FFC8
+ cmp r6, r0
+ blt _02252232
+_02252272:
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_02230260
+ cmp r0, #4
+ bne _02252286
+ ldr r0, [r4, #4]
+ mov r1, #1
+ strb r1, [r0, #0x11]
+ b _0225230E
+_02252286:
+ ldr r0, [r4, #4]
+ mov r1, #0
+ strb r1, [r0, #0x11]
+ b _0225230E
+_0225228E:
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _022522B0
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ bne _022522B0
+ ldrb r1, [r4, #9]
+ mov r0, #1
+ add r7, r1, #0
+ and r7, r0
+ b _022522B4
+_022522B0:
+ ldrb r1, [r4, #9]
+ add r7, r1, #0
+_022522B4:
+ ldr r0, [r4]
+ bl MOD11_02230260
+ cmp r0, #4
+ bne _022522C2
+ mov r1, #1
+ b _022522C4
+_022522C2:
+ mov r1, #0
+_022522C4:
+ ldr r0, [r4, #4]
+ strb r1, [r0, #0x11]
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_0222FF88
+ str r0, [sp, #0x10]
+ mov r5, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0225230E
+ mov r0, #6
+ mul r0, r7
+ add r6, r4, r0
+_022522E2:
+ ldrb r2, [r6, #0x1c]
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD11_02230014
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ ldr r0, [r0]
+ bl FUN_0206B900
+ ldr r0, [r4, #4]
+ ldrb r1, [r6, #0x1c]
+ add r0, r0, r5
+ add r0, #0x2c
+ strb r1, [r0]
+ ldr r0, [sp, #0x10]
+ add r6, r6, #1
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _022522E2
+_0225230E:
+ ldr r1, [r4]
+ ldr r0, [r4, #4]
+ str r1, [r0, #8]
+ ldr r0, [r4, #4]
+ mov r1, #5
+ str r1, [r0, #0xc]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r0, #0x36
+ strb r1, [r0]
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #4]
+ strh r1, [r0, #0x24]
+ ldrb r1, [r4, #0x16]
+ ldr r0, [r4, #4]
+ strb r1, [r0, #0x12]
+ ldr r0, [r4, #4]
+ ldrb r1, [r4, #0xb]
+ add r0, #0x35
+ strb r1, [r0]
+ ldrh r1, [r4, #0x14]
+ ldr r0, [r4, #4]
+ strh r1, [r0, #0x22]
+ ldrb r1, [r4, #9]
+ ldr r0, [r4, #4]
+ str r1, [r0, #0x28]
+ ldr r0, [r4, #4]
+ ldrb r1, [r4, #0x17]
+ add r0, #0x32
+ strb r1, [r0]
+ ldrb r0, [r4, #9]
+ bl MaskOfFlagNo
+ ldrb r1, [r4, #0x18]
+ tst r0, r1
+ bne _0225235E
+ ldrb r0, [r4, #9]
+ add r0, r4, r0
+ ldrb r1, [r0, #0xc]
+ b _02252360
+_0225235E:
+ mov r1, #6
+_02252360:
+ ldr r0, [r4, #4]
+ strb r1, [r0, #0x14]
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ beq _02252378
+ ldr r0, [r4, #4]
+ mov r1, #6
+ strb r1, [r0, #0x15]
+ b _022523A2
+_02252378:
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+ bl MaskOfFlagNo
+ ldrb r1, [r4, #0x18]
+ tst r0, r1
+ bne _0225239C
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+ add r0, r4, r0
+ ldrb r1, [r0, #0xc]
+ ldr r0, [r4, #4]
+ strb r1, [r0, #0x15]
+ b _022523A2
+_0225239C:
+ ldr r0, [r4, #4]
+ mov r1, #6
+ strb r1, [r0, #0x15]
+_022523A2:
+ ldr r0, [r4, #4]
+ bl MOD07_02211E60
+ ldrb r0, [r4, #0xa]
+ add sp, #0x24
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r4, r5, r6, r7, pc}
+_022523B2:
+ ldr r0, [r4, #4]
+ add r0, #0x36
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02252468
+ ldr r0, [r4]
+ bl MOD11_0222D88C
+ ldr r0, [r4]
+ bl MOD11_02230094
+ ldr r1, [r4, #4]
+ add r1, #0x32
+ ldrb r1, [r1]
+ bl MOD11_0225C778
+ mov r0, #7
+ str r0, [sp]
+ mov r0, #0
+ mov r1, #5
+ str r0, [sp, #4]
+ mov r2, #3
+ add r3, r1, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ lsl r2, r2, #0xa
+ sub r3, #0xd
+ bl FUN_02003210
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0
+ mov r1, #0xa
+ str r0, [sp, #4]
+ add r3, r1, #0
+ str r0, [sp, #8]
+ ldr r2, _0225246C ; =0x0000FFFF
+ add r0, r5, #0
+ sub r3, #0x12
+ bl FUN_02003210
+ ldrb r0, [r4, #0xa]
+ add sp, #0x24
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r4, r5, r6, r7, pc}
+_0225240E:
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02252468
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #0
+ bl FUN_020143A8
+ ldr r3, [r4, #4]
+ ldr r0, [r4]
+ ldrb r2, [r3, #0x11]
+ cmp r2, #6
+ bne _02252436
+ ldrb r1, [r4, #9]
+ mov r2, #0xff
+ bl MOD11_02255964
+ b _02252444
+_02252436:
+ add r2, r3, r2
+ add r2, #0x2c
+ ldrb r2, [r2]
+ ldrb r1, [r4, #9]
+ add r2, r2, #1
+ bl MOD11_02255964
+_02252444:
+ ldrb r1, [r4, #9]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ ldr r0, [r4, #4]
+ ldr r0, [r0]
+ bl FreeToHeap
+ ldr r0, [r4, #4]
+ bl FreeToHeap
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_02252468:
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225246C: .word 0x0000FFFF
+
+ thumb_func_start MOD11_02252470
+MOD11_02252470: ; 0x02252470
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ str r0, [sp]
+ ldr r0, [r5]
+ bl MOD11_0222FF74
+ mov r1, #0x10
+ ldrb r6, [r5, #9]
+ tst r1, r0
+ bne _0225248C
+ mov r1, #8
+ tst r0, r1
+ beq _02252490
+_0225248C:
+ str r6, [sp, #4]
+ b _0225249A
+_02252490:
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl MOD11_022302BC
+ str r0, [sp, #4]
+_0225249A:
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl MOD16_021F4A30
+ add r4, r0, #0
+ cmp r4, #6
+ bne _022524FE
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl MOD16_021F4698
+ add r4, r0, #0
+ cmp r4, #6
+ bne _022524FE
+ ldrb r1, [r5, #9]
+ ldr r0, [r5]
+ bl MOD11_0222FF88
+ str r0, [sp, #8]
+ mov r4, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _022524FE
+ ldr r0, [sp, #4]
+ add r7, r5, r6
+ add r6, r5, r0
+_022524D0:
+ ldrb r1, [r5, #9]
+ ldr r0, [r5]
+ add r2, r4, #0
+ bl MOD11_02230014
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _022524F2
+ ldrb r0, [r7, #0xc]
+ cmp r4, r0
+ beq _022524F2
+ ldrb r0, [r6, #0xc]
+ cmp r4, r0
+ bne _022524FE
+_022524F2:
+ ldr r0, [sp, #8]
+ add r4, r4, #1
+ bl GetPartyCount
+ cmp r4, r0
+ blt _022524D0
+_022524FE:
+ ldrb r1, [r5, #9]
+ ldr r0, [r5]
+ add r2, r4, #1
+ bl MOD11_02255964
+ ldrb r1, [r5, #9]
+ ldrb r2, [r5, #8]
+ ldr r0, [r5]
+ bl MOD11_022567B8
+ add r0, r5, #0
+ bl FreeToHeap
+ ldr r0, [sp]
+ bl FUN_0200CAB4
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02252524
+MOD11_02252524: ; 0x02252524
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #9]
+ add r5, r0, #0
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02252544
+MOD11_02252544: ; 0x02252544
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ add r4, r1, #0
+ add r7, r0, #0
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ ldr r0, [r4]
+ bl MOD11_02230094
+ add r5, r0, #0
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_0222FF7C
+ str r0, [sp]
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ bl MOD11_022302BC
+ add r1, r0, #0
+ ldrb r0, [r4, #0xd]
+ cmp r1, r0
+ beq _0225257E
+ ldr r0, [r4]
+ bl MOD11_02231380
+ add r6, r0, #0
+ b _02252580
+_0225257E:
+ mov r6, #0
+_02252580:
+ ldrb r0, [r4, #0xe]
+ cmp r0, #4
+ bhi _02252600
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02252592: ; jump table
+ .short _0225259C - _02252592 - 2 ; case 0
+ .short _022525EC - _02252592 - 2 ; case 1
+ .short _0225267E - _02252592 - 2 ; case 2
+ .short _0225269C - _02252592 - 2 ; case 3
+ .short _022526E0 - _02252592 - 2 ; case 4
+_0225259C:
+ add r0, r5, #0
+ bl MOD11_02258F5C
+ cmp r0, #0
+ beq _02252600
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ beq _022525E4
+ ldr r0, [r4]
+ bl MOD11_022300C4
+ add r5, r0, #0
+ ldrb r0, [r4, #0xf]
+ cmp r0, #5
+ add r0, sp, #4
+ bne _022525C6
+ mov r1, #0x82
+ strb r1, [r0, #5]
+ ldr r0, [r4, #0x14]
+ str r0, [sp, #0xc]
+ b _022525CA
+_022525C6:
+ mov r1, #0
+ strb r1, [r0, #5]
+_022525CA:
+ ldr r1, [r4, #0x10]
+ add r0, sp, #4
+ strh r1, [r0, #6]
+ ldr r0, [r4]
+ bl MOD11_02230E54
+ add r3, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ add r2, sp, #8
+ bl MOD11_0223178C
+ strh r0, [r4, #0x1a]
+_022525E4:
+ mov r0, #1
+ add sp, #0x2c
+ strb r0, [r4, #0xe]
+ pop {r4, r5, r6, r7, pc}
+_022525EC:
+ ldrh r0, [r4, #0x1a]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _02252602
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ beq _02252602
+_02252600:
+ b _0225270A
+_02252602:
+ add r0, r5, #0
+ bl MOD11_02258E30
+ ldrh r1, [r4, #0x18]
+ add r0, sp, #4
+ strh r1, [r0]
+ ldrb r0, [r4, #0xf]
+ cmp r0, #5
+ bhi _02252672
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02252620: ; jump table
+ .short _0225262C - _02252620 - 2 ; case 0
+ .short _0225263A - _02252620 - 2 ; case 1
+ .short _02252648 - _02252620 - 2 ; case 2
+ .short _02252656 - _02252620 - 2 ; case 3
+ .short _02252664 - _02252620 - 2 ; case 4
+ .short _0225262C - _02252620 - 2 ; case 5
+_0225262C:
+ add r0, r5, #0
+ mov r1, #0xd
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02258820
+ b _02252676
+_0225263A:
+ add r0, r5, #0
+ mov r1, #0xe
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02258820
+ b _02252676
+_02252648:
+ add r0, r5, #0
+ mov r1, #0xf
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02258820
+ b _02252676
+_02252656:
+ add r0, r5, #0
+ mov r1, #0x10
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02258820
+ b _02252676
+_02252664:
+ add r0, r5, #0
+ mov r1, #0x11
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02258820
+ b _02252676
+_02252672:
+ bl ErrorHandling
+_02252676:
+ mov r0, #2
+ add sp, #0x2c
+ strb r0, [r4, #0xe]
+ pop {r4, r5, r6, r7, pc}
+_0225267E:
+ add r0, r5, #0
+ bl MOD11_02258E74
+ mov r1, #0
+ mvn r1, r1
+ str r0, [r4, #8]
+ cmp r0, r1
+ beq _0225270A
+ ldr r0, _02252710 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #3
+ add sp, #0x2c
+ strb r0, [r4, #0xe]
+ pop {r4, r5, r6, r7, pc}
+_0225269C:
+ add r0, r5, #0
+ bl MOD11_02258F5C
+ cmp r0, #1
+ bne _0225270A
+ ldr r0, [r4, #4]
+ bl MOD11_02257238
+ ldr r0, [sp]
+ bl MOD11_0225468C
+ add r0, r6, #0
+ bl MOD11_02258184
+ add r0, r5, #0
+ bl MOD11_02258E30
+ mov r1, #0
+ add r0, r5, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD11_02258820
+ ldr r0, [r4, #8]
+ cmp r0, #1
+ bne _022526D8
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD11_0225B77C
+_022526D8:
+ mov r0, #4
+ add sp, #0x2c
+ strb r0, [r4, #0xe]
+ pop {r4, r5, r6, r7, pc}
+_022526E0:
+ add r0, r5, #0
+ bl MOD11_0225B780
+ cmp r0, #1
+ bne _0225270A
+ ldrb r1, [r4, #0xd]
+ ldr r0, [r4]
+ ldr r2, [r4, #8]
+ bl MOD11_02255528
+ ldrb r1, [r4, #0xd]
+ ldrb r2, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r7, #0
+ bl FUN_0200CAB4
+_0225270A:
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02252710: .word 0x000005DD
+
+ thumb_func_start MOD11_02252714
+MOD11_02252714: ; 0x02252714
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #0xd]
+ add r5, r0, #0
+ ldrb r2, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02252734
+MOD11_02252734: ; 0x02252734
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #0xd]
+ add r5, r0, #0
+ ldrb r2, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02252754
+MOD11_02252754: ; 0x02252754
+ push {r3, r4, r5, lr}
+ sub sp, #0x1fc
+ sub sp, #0x14
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x6a
+ ldrb r0, [r0]
+ cmp r0, #0xa
+ bls _0225276A
+ b _022529B8
+_0225276A:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02252776: ; jump table
+ .short _0225278C - _02252776 - 2 ; case 0
+ .short _02252996 - _02252776 - 2 ; case 1
+ .short _022527E6 - _02252776 - 2 ; case 2
+ .short _02252996 - _02252776 - 2 ; case 3
+ .short _02252842 - _02252776 - 2 ; case 4
+ .short _02252996 - _02252776 - 2 ; case 5
+ .short _02252890 - _02252776 - 2 ; case 6
+ .short _02252996 - _02252776 - 2 ; case 7
+ .short _02252918 - _02252776 - 2 ; case 8
+ .short _02252996 - _02252776 - 2 ; case 9
+ .short _02252974 - _02252776 - 2 ; case 10
+_0225278C:
+ ldrh r0, [r4, #0x1e]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ beq _022527DA
+ ldr r0, [r4, #0x5c]
+ cmp r0, #0
+ bne _022527DA
+ ldr r0, [r4, #8]
+ mov r1, #6
+ bl FUN_0200782C
+ cmp r0, #0
+ bne _022527DA
+ add r0, r4, #0
+ add r0, #0x69
+ ldrb r1, [r0]
+ mov r0, #0xf
+ add r2, sp, #0x1b8
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0xc]
+ add r3, sp, #0x1b8
+ bl MOD11_02254404
+ add sp, #0x1fc
+ mov r0, #1
+ add r4, #0x6a
+ add sp, #0x14
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_022527DA:
+ add sp, #0x1fc
+ mov r0, #4
+ add r4, #0x6a
+ add sp, #0x14
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_022527E6:
+ add r3, r4, #0
+ add r3, #0x69
+ ldrb r3, [r3]
+ ldr r0, [r4]
+ add r1, #0x10
+ add r2, sp, #0x168
+ bl MOD11_0225452C
+ add r0, sp, #0x168
+ mov r1, #5
+ bl MOD08_0222A494
+ add r0, r4, #0
+ add r0, #0x69
+ ldrb r1, [r0]
+ mov r0, #0x10
+ add r2, sp, #0x110
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0xc]
+ add r3, sp, #0x110
+ bl MOD11_02254404
+ mov r0, #0x1a
+ add sp, #0x1fc
+ ldr r1, [r4, #4]
+ mov r2, #0
+ lsl r0, r0, #4
+ str r2, [r1, r0]
+ add r0, r4, #0
+ add r0, #0x6a
+ ldrb r0, [r0]
+ add r4, #0x6a
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02252842:
+ ldr r0, [r4]
+ mov r1, #2
+ bl MOD11_02231484
+ add r0, r4, #0
+ add r0, #0x6b
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0225285A
+ ldr r0, [r4]
+ bl MOD11_02231410
+_0225285A:
+ add r0, r4, #0
+ add r0, #0x6c
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02252870
+ ldr r0, [r4]
+ bl MOD11_02230068
+ mov r1, #1
+ bl FUN_02008284
+_02252870:
+ add r3, r4, #0
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0xc]
+ add r3, #0x10
+ bl MOD11_02254404
+ add r0, r4, #0
+ add r0, #0x6a
+ ldrb r0, [r0]
+ add sp, #0x1fc
+ add r4, #0x6a
+ add r0, r0, #1
+ add sp, #0x14
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02252890:
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD11_02231484
+ add r0, r4, #0
+ add r0, #0x6b
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _022528A8
+ ldr r0, [r4]
+ bl MOD11_022313E0
+_022528A8:
+ add r0, r4, #0
+ add r0, #0x6c
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _022528BE
+ ldr r0, [r4]
+ bl MOD11_02230068
+ mov r1, #1
+ bl FUN_02008290
+_022528BE:
+ ldrh r0, [r4, #0x1e]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ beq _0225290C
+ ldr r0, [r4, #0x5c]
+ cmp r0, #0
+ bne _0225290C
+ ldr r0, [r4, #8]
+ mov r1, #6
+ bl FUN_0200782C
+ cmp r0, #0
+ bne _0225290C
+ add r0, r4, #0
+ add r0, #0x69
+ ldrb r1, [r0]
+ mov r0, #0xf
+ add r2, sp, #0xb8
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0xc]
+ add r3, sp, #0xb8
+ bl MOD11_02254404
+ add sp, #0x1fc
+ mov r0, #7
+ add r4, #0x6a
+ add sp, #0x14
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_0225290C:
+ add sp, #0x1fc
+ mov r0, #0xa
+ add r4, #0x6a
+ add sp, #0x14
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02252918:
+ add r3, r4, #0
+ add r3, #0x69
+ ldrb r3, [r3]
+ ldr r0, [r4]
+ add r1, #0x10
+ add r2, sp, #0x68
+ bl MOD11_0225452C
+ add r0, sp, #0x68
+ mov r1, #5
+ bl MOD08_0222A568
+ add r0, r4, #0
+ add r0, #0x69
+ ldrb r1, [r0]
+ mov r0, #0x10
+ add r2, sp, #0x10
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0xc]
+ add r3, sp, #0x10
+ bl MOD11_02254404
+ mov r0, #0x1a
+ add sp, #0x1fc
+ ldr r1, [r4, #4]
+ mov r2, #1
+ lsl r0, r0, #4
+ str r2, [r1, r0]
+ add r0, r4, #0
+ add r0, #0x6a
+ ldrb r0, [r0]
+ add r4, #0x6a
+ add sp, #0x14
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02252974:
+ add r2, r4, #0
+ add r1, #0x69
+ add r2, #0x68
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ add sp, #0x1fc
+ add sp, #0x14
+ pop {r3, r4, r5, pc}
+_02252996:
+ ldr r0, [r4, #0xc]
+ bl MOD08_02212384
+ ldr r0, [r4, #0xc]
+ bl MOD08_022123A0
+ cmp r0, #0
+ bne _022529B8
+ ldr r0, [r4, #0xc]
+ bl MOD08_022123B0
+ add r0, r4, #0
+ add r0, #0x6a
+ ldrb r0, [r0]
+ add r4, #0x6a
+ add r0, r0, #1
+ strb r0, [r4]
+_022529B8:
+ add sp, #0x1fc
+ add sp, #0x14
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022529C0
+MOD11_022529C0: ; 0x022529C0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #9]
+ cmp r0, #6
+ bhs _022529FA
+ ldrb r0, [r4, #0xa]
+ cmp r0, #0
+ bne _022529F4
+ mov r0, #2
+ strb r0, [r4, #0xa]
+ ldrb r0, [r4, #9]
+ mov r1, #6
+ add r0, r0, #1
+ strb r0, [r4, #9]
+ ldr r0, [r4, #4]
+ bl FUN_0200782C
+ add r3, r0, #0
+ mov r2, #1
+ ldr r0, [r4, #4]
+ mov r1, #6
+ eor r2, r3
+ bl FUN_02007558
+ pop {r3, r4, r5, pc}
+_022529F4:
+ sub r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, pc}
+_022529FA:
+ ldr r0, [r4, #4]
+ mov r1, #6
+ mov r2, #0
+ bl FUN_02007558
+ ldrb r1, [r4, #8]
+ ldr r0, [r4]
+ mov r2, #0x17
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02252A1C
+MOD11_02252A1C: ; 0x02252A1C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _02252A2E
+ cmp r0, #1
+ beq _02252A3C
+ b _02252A52
+_02252A2E:
+ ldr r1, [r4, #0x30]
+ add r0, r4, #0
+ bl MOD11_02257150
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_02252A3C:
+ add r0, r4, #0
+ bl MOD11_02257184
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02252A6C
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02252A52:
+ add r2, r4, #0
+ add r1, #0x24
+ add r2, #0x4c
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4, #0xc]
+ bl MOD11_022567B8
+ mov r0, #0
+ str r0, [r4, #0x10]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02252A6C:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02252A70
+MOD11_02252A70: ; 0x02252A70
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _02252A86
+ cmp r0, #1
+ beq _02252AA2
+ cmp r0, #2
+ beq _02252AE8
+ b _02252B0E
+_02252A86:
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x4e
+ strb r1, [r0]
+ ldr r0, _02252B2C ; =0x0000070B
+ bl FUN_020054C8
+ ldr r1, [r4, #0x40]
+ add r0, r4, #0
+ bl MOD11_022571B8
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_02252AA2:
+ add r0, r4, #0
+ add r0, #0x4e
+ ldrb r0, [r0]
+ cmp r0, #8
+ bhs _02252ABA
+ add r0, r4, #0
+ add r0, #0x4e
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x4e
+ strb r1, [r0]
+_02252ABA:
+ add r0, r4, #0
+ bl MOD11_022571EC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02252B28
+ add r0, r4, #0
+ add r0, #0x4e
+ ldrb r0, [r0]
+ cmp r0, #8
+ blo _02252AE0
+ ldr r0, _02252B2C ; =0x0000070B
+ mov r1, #0
+ bl FUN_020054F0
+ mov r0, #0x64
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02252AE0:
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02252AE8:
+ add r0, r4, #0
+ add r0, #0x4e
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x4e
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x4e
+ ldrb r0, [r0]
+ cmp r0, #8
+ blo _02252B28
+ ldr r0, _02252B2C ; =0x0000070B
+ mov r1, #0
+ bl FUN_020054F0
+ mov r0, #0x64
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_02252B0E:
+ add r2, r4, #0
+ add r1, #0x24
+ add r2, #0x4c
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4, #0xc]
+ bl MOD11_022567B8
+ mov r0, #0
+ str r0, [r4, #0x10]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02252B28:
+ pop {r3, r4, r5, pc}
+ nop
+_02252B2C: .word 0x0000070B
+
+ thumb_func_start MOD11_02252B30
+MOD11_02252B30: ; 0x02252B30
+ push {r4, r5, r6, lr}
+ sub sp, #0x110
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230070
+ add r1, r4, #0
+ add r1, #0x66
+ ldrb r1, [r1]
+ add r5, r0, #0
+ cmp r1, #0xa
+ bls _02252B4C
+ b _02252DAA
+_02252B4C:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02252B58: ; jump table
+ .short _02252B6E - _02252B58 - 2 ; case 0
+ .short _02252C16 - _02252B58 - 2 ; case 1
+ .short _02252BBA - _02252B58 - 2 ; case 2
+ .short _02252C16 - _02252B58 - 2 ; case 3
+ .short _02252C3A - _02252B58 - 2 ; case 4
+ .short _02252C82 - _02252B58 - 2 ; case 5
+ .short _02252C9C - _02252B58 - 2 ; case 6
+ .short _02252CD8 - _02252B58 - 2 ; case 7
+ .short _02252D04 - _02252B58 - 2 ; case 8
+ .short _02252D44 - _02252B58 - 2 ; case 9
+ .short _02252D8C - _02252B58 - 2 ; case 10
+_02252B6E:
+ add r0, r4, #0
+ add r0, #0x70
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _02252BB0
+ add r0, r4, #0
+ add r0, #0x65
+ ldrb r1, [r0]
+ mov r0, #0xf
+ add r2, sp, #0xb8
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r5, #0
+ add r3, sp, #0xb8
+ bl MOD11_02254404
+ add r0, r4, #0
+ add r0, #0x66
+ ldrb r0, [r0]
+ add r4, #0x66
+ add sp, #0x110
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252BB0:
+ mov r0, #4
+ add r4, #0x66
+ add sp, #0x110
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252BBA:
+ add r3, r4, #0
+ add r3, #0x65
+ ldrb r3, [r3]
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r1, #0xc
+ add r2, sp, #0x68
+ bl MOD11_0225452C
+ add r0, sp, #0x68
+ mov r1, #5
+ bl MOD08_0222A494
+ add r0, r4, #0
+ add r0, #0x65
+ ldrb r1, [r0]
+ mov r0, #0x10
+ add r2, sp, #0x10
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r5, #0
+ add r3, sp, #0x10
+ bl MOD11_02254404
+ mov r0, #0x1a
+ ldr r1, [r4, #4]
+ mov r2, #0
+ lsl r0, r0, #4
+ str r2, [r1, r0]
+ add r0, r4, #0
+ add r0, #0x66
+ ldrb r0, [r0]
+ add r4, #0x66
+ add sp, #0x110
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252C16:
+ bl MOD08_02212384
+ add r0, r5, #0
+ bl MOD08_022123A0
+ cmp r0, #0
+ bne _02252C8A
+ add r0, r5, #0
+ bl MOD08_022123B0
+ add r0, r4, #0
+ add r0, #0x66
+ ldrb r0, [r0]
+ add r4, #0x66
+ add sp, #0x110
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252C3A:
+ add r0, r4, #0
+ add r0, #0x67
+ ldrb r0, [r0]
+ cmp r0, #2
+ bne _02252C48
+ mov r5, #0x75
+ b _02252C4C
+_02252C48:
+ mov r5, #0x74
+ mvn r5, r5
+_02252C4C:
+ add r1, r4, #0
+ add r1, #0x65
+ ldrb r1, [r1]
+ ldr r0, [r4]
+ bl MOD11_02230E88
+ mov r1, #0x7f
+ str r1, [sp]
+ add r1, r4, #0
+ add r1, #0x72
+ ldrh r1, [r1]
+ add r2, r4, #0
+ add r2, #0x68
+ str r1, [sp, #4]
+ mov r1, #5
+ str r1, [sp, #8]
+ ldrh r2, [r2]
+ add r3, r5, #0
+ bl FUN_02069FB0
+ add r0, r4, #0
+ add r0, #0x66
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x66
+ strb r1, [r0]
+_02252C82:
+ bl FUN_02005670
+ cmp r0, #0
+ beq _02252C8C
+_02252C8A:
+ b _02252DAA
+_02252C8C:
+ add r0, r4, #0
+ add r0, #0x66
+ ldrb r0, [r0]
+ add r4, #0x66
+ add sp, #0x110
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252C9C:
+ add r0, r4, #0
+ add r0, #0x67
+ ldrb r0, [r0]
+ cmp r0, #2
+ ldr r0, _02252DB0 ; =0x00000703
+ bne _02252CB0
+ mov r1, #0x75
+ bl FUN_020054A8
+ b _02252CB8
+_02252CB0:
+ mov r1, #0x74
+ mvn r1, r1
+ bl FUN_020054A8
+_02252CB8:
+ ldr r0, [r4, #8]
+ mov r1, #0x29
+ bl FUN_0200782C
+ cmp r0, #0
+ ble _02252CCE
+ mov r0, #7
+ add r4, #0x66
+ add sp, #0x110
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252CCE:
+ mov r0, #8
+ add r4, #0x66
+ add sp, #0x110
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252CD8:
+ ldr r0, [r4, #8]
+ mov r1, #0x29
+ bl FUN_0200782C
+ add r5, r0, #0
+ sub r5, #8
+ bpl _02252CE8
+ mov r5, #0
+_02252CE8:
+ ldr r0, [r4, #8]
+ mov r1, #0x29
+ add r2, r5, #0
+ bl FUN_02007558
+ cmp r5, #0
+ bne _02252DAA
+ add r0, r4, #0
+ add r0, #0x66
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x66
+ strb r1, [r0]
+_02252D04:
+ ldr r0, [r4, #0x6c]
+ add r1, r4, #0
+ str r0, [sp]
+ add r0, r4, #0
+ add r2, r4, #0
+ add r3, r4, #0
+ add r0, #0x68
+ add r1, #0x6a
+ add r2, #0x67
+ add r3, #0x6b
+ ldrh r0, [r0]
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldrb r3, [r3]
+ bl FUN_02068E88
+ mov r3, #0x50
+ sub r0, r3, r0
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, [r4, #8]
+ add r2, r1, #0
+ bl FUN_02007E40
+ add r0, r4, #0
+ add r0, #0x66
+ ldrb r0, [r0]
+ add r4, #0x66
+ add sp, #0x110
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252D44:
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_0200782C
+ add r2, r0, #0
+ ldr r0, [r4, #8]
+ mov r1, #1
+ add r2, #8
+ bl FUN_02007558
+ ldr r0, [r4, #8]
+ mov r1, #0x12
+ bl FUN_0200782C
+ add r5, r0, #0
+ sub r5, #8
+ bpl _02252D68
+ mov r5, #0
+_02252D68:
+ ldr r0, [r4, #8]
+ mov r1, #0x12
+ add r2, r5, #0
+ bl FUN_02007558
+ cmp r5, #0
+ bne _02252DAA
+ ldr r0, [r4, #8]
+ bl FUN_02007534
+ add r0, r4, #0
+ add r0, #0x66
+ ldrb r0, [r0]
+ add r4, #0x66
+ add sp, #0x110
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252D8C:
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0x65
+ add r2, #0x64
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_02252DAA:
+ add sp, #0x110
+ pop {r4, r5, r6, pc}
+ nop
+_02252DB0: .word 0x00000703
+
+ thumb_func_start MOD11_02252DB4
+MOD11_02252DB4: ; 0x02252DB4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r6, r0, #0
+ ldr r0, [r5]
+ bl MOD11_022300CC
+ add r4, r0, #0
+ ldr r0, [r5]
+ bl MOD11_02230068
+ add r7, r0, #0
+ ldrb r0, [r5, #6]
+ cmp r0, #0
+ beq _02252DDE
+ cmp r0, #1
+ beq _02252E1C
+ cmp r0, #2
+ beq _02252E30
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_02252DDE:
+ ldr r0, [r5]
+ bl MOD11_02230288
+ mov r1, #1
+ bl FUN_020143A8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r2, _02252E4C ; =0x0000FFFF
+ add r0, r4, #0
+ mov r1, #0xf
+ mov r3, #1
+ bl FUN_02003210
+ mov r1, #0
+ add r0, r7, #0
+ mov r2, #0x10
+ add r3, r1, #0
+ str r1, [sp]
+ bl FUN_02007E98
+ mov r0, #0
+ mov r1, #0x10
+ bl FUN_020053CC
+ ldrb r0, [r5, #6]
+ add r0, r0, #1
+ strb r0, [r5, #6]
+_02252E1C:
+ add r0, r4, #0
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02252E46
+ ldrb r0, [r5, #6]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r5, #6]
+ pop {r4, r5, r6, r7, pc}
+_02252E30:
+ ldrb r1, [r5, #5]
+ ldrb r2, [r5, #4]
+ ldr r0, [r5]
+ bl MOD11_022567B8
+ add r0, r5, #0
+ bl FreeToHeap
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_02252E46:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02252E4C: .word 0x0000FFFF
+
+ thumb_func_start MOD11_02252E50
+MOD11_02252E50: ; 0x02252E50
+ push {r4, r5, r6, lr}
+ sub sp, #0x110
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230070
+ add r1, r4, #0
+ add r1, #0x62
+ ldrb r1, [r1]
+ add r5, r0, #0
+ cmp r1, #4
+ bls _02252E6C
+ b _02252F98
+_02252E6C:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02252E78: ; jump table
+ .short _02252E82 - _02252E78 - 2 ; case 0
+ .short _02252EC4 - _02252E78 - 2 ; case 1
+ .short _02252F74 - _02252E78 - 2 ; case 2
+ .short _02252F18 - _02252E78 - 2 ; case 3
+ .short _02252F74 - _02252E78 - 2 ; case 4
+_02252E82:
+ ldr r0, [r4, #4]
+ ldr r0, [r0, #0x20]
+ cmp r0, #0
+ beq _02252EBA
+ add r2, r4, #0
+ add r2, #0x63
+ ldrb r2, [r2]
+ mov r1, #6
+ bl FUN_02007558
+ add r0, r4, #0
+ add r0, #0x63
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _02252EAA
+ mov r0, #0xff
+ add r4, #0x62
+ add sp, #0x110
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252EAA:
+ add r0, r4, #0
+ add r0, #0x62
+ ldrb r0, [r0]
+ add r4, #0x62
+ add sp, #0x110
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252EBA:
+ mov r0, #0xff
+ add r4, #0x62
+ add sp, #0x110
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252EC4:
+ ldr r0, [r4, #0x64]
+ cmp r0, #0
+ beq _02252F0E
+ mov r0, #0x1a
+ ldr r1, [r4, #4]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02252F0E
+ add r0, r4, #0
+ add r0, #0x61
+ ldrb r1, [r0]
+ mov r0, #0xf
+ add r2, sp, #0xb8
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r5, #0
+ add r3, sp, #0xb8
+ bl MOD11_02254404
+ add r0, r4, #0
+ add r0, #0x62
+ ldrb r0, [r0]
+ add r4, #0x62
+ add sp, #0x110
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252F0E:
+ mov r0, #0xff
+ add r4, #0x62
+ add sp, #0x110
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252F18:
+ add r3, r4, #0
+ add r3, #0x61
+ ldrb r3, [r3]
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r1, #8
+ add r2, sp, #0x68
+ bl MOD11_0225452C
+ add r0, sp, #0x68
+ mov r1, #5
+ bl MOD08_0222A568
+ add r0, r4, #0
+ add r0, #0x61
+ ldrb r1, [r0]
+ mov r0, #0x10
+ add r2, sp, #0x10
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r0, [r4]
+ mov r3, #1
+ bl MOD11_02256854
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, r5, #0
+ add r3, sp, #0x10
+ bl MOD11_02254404
+ mov r0, #0x1a
+ ldr r1, [r4, #4]
+ mov r2, #1
+ lsl r0, r0, #4
+ str r2, [r1, r0]
+ add r0, r4, #0
+ add r0, #0x62
+ ldrb r0, [r0]
+ add r4, #0x62
+ add sp, #0x110
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252F74:
+ bl MOD08_02212384
+ add r0, r5, #0
+ bl MOD08_022123A0
+ cmp r0, #0
+ bne _02252FB6
+ add r0, r5, #0
+ bl MOD08_022123B0
+ add r0, r4, #0
+ add r0, #0x62
+ ldrb r0, [r0]
+ add r4, #0x62
+ add sp, #0x110
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r4, r5, r6, pc}
+_02252F98:
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0x61
+ add r2, #0x60
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_02252FB6:
+ add sp, #0x110
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02252FBC
+MOD11_02252FBC: ; 0x02252FBC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0xa]
+ cmp r0, #0
+ beq _02252FCE
+ cmp r0, #1
+ beq _02252FE4
+ pop {r3, r4, r5, pc}
+_02252FCE:
+ ldr r0, [r4, #4]
+ add r1, #0xb
+ bl MOD11_0225805C
+ ldr r0, _02253004 ; =0x0000070C
+ bl FUN_020054C8
+ ldrb r0, [r4, #0xa]
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, pc}
+_02252FE4:
+ ldrb r0, [r4, #0xb]
+ cmp r0, #1
+ bne _02253000
+ ldrb r1, [r4, #9]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02253000:
+ pop {r3, r4, r5, pc}
+ nop
+_02253004: .word 0x0000070C
+
+ thumb_func_start MOD11_02253008
+MOD11_02253008: ; 0x02253008
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_022312C0
+ cmp r0, #0
+ beq _0225302A
+ ldr r0, [r4]
+ bl MOD11_022312C0
+ bl FUN_0200DBFC
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD11_022312C8
+_0225302A:
+ ldrb r0, [r4, #6]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0225304A
+ ldrb r1, [r4, #5]
+ ldrb r2, [r4, #4]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0225304A:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0225304C
+MOD11_0225304C: ; 0x0225304C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #7]
+ cmp r0, #0
+ beq _0225305E
+ cmp r0, #1
+ beq _02253074
+ pop {r3, r4, r5, pc}
+_0225305E:
+ ldrb r0, [r4, #6]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0225309E
+ ldrb r0, [r4, #7]
+ add r0, r0, #1
+ strb r0, [r4, #7]
+ mov r0, #0
+ strb r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_02253074:
+ ldrb r0, [r4, #8]
+ add r0, r0, #1
+ strb r0, [r4, #8]
+ ldrb r0, [r4, #8]
+ cmp r0, #0x28
+ bne _0225309E
+ ldrb r1, [r4, #5]
+ ldr r0, [r4]
+ bl MOD11_02256004
+ ldrb r1, [r4, #5]
+ ldrb r2, [r4, #4]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0225309E:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022530A0
+MOD11_022530A0: ; 0x022530A0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r4, r1, #0
+ str r0, [sp, #0xc]
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230294
+ add r7, r0, #0
+ ldr r0, [r4]
+ bl MOD11_022302A8
+ lsl r1, r0, #2
+ ldr r0, _022533D8 ; =0x0225E86C
+ ldr r6, [r0, r1]
+ ldrb r0, [r4, #0x15]
+ add r0, r0, #1
+ strb r0, [r4, #0x15]
+ ldrb r0, [r4, #0x14]
+ cmp r0, #6
+ bhi _02253102
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022530E2: ; jump table
+ .short _022530F0 - _022530E2 - 2 ; case 0
+ .short _022530F8 - _022530E2 - 2 ; case 1
+ .short _0225314A - _022530E2 - 2 ; case 2
+ .short _022532AC - _022530E2 - 2 ; case 3
+ .short _022532C8 - _022530E2 - 2 ; case 4
+ .short _022532E4 - _022530E2 - 2 ; case 5
+ .short _022532F6 - _022530E2 - 2 ; case 6
+_022530F0:
+ add r0, r0, #1
+ add sp, #0x18
+ strb r0, [r4, #0x14]
+ pop {r3, r4, r5, r6, r7, pc}
+_022530F8:
+ add r0, r5, #0
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _02253104
+_02253102:
+ b _022533D4
+_02253104:
+ mov r0, #5
+ mov r1, #0
+ bl MOD08_0222A0D4
+ str r0, [r4, #4]
+ ldr r0, _022533DC ; =0x0225E820
+ add r1, sp, #0x10
+ ldrb r5, [r0, r7]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ str r5, [sp, #0x10]
+ ldr r0, [r4, #4]
+ bl MOD08_0222A110
+ str r0, [r4, #8]
+ add r0, r5, #1
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ ldr r0, [r4, #4]
+ add r1, sp, #0x10
+ bl MOD08_0222A110
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ bl MOD08_0222A1DC
+ ldr r0, _022533E0 ; =0x0000084F
+ bl FUN_020054C8
+ ldrb r0, [r4, #0x14]
+ add sp, #0x18
+ add r0, r0, #1
+ strb r0, [r4, #0x14]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225314A:
+ ldrb r0, [r4, #0x15]
+ cmp r0, #0xa
+ bne _02253180
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ lsl r0, r6, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r2, _022533E4 ; =0x0000F3FF
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_02003210
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ lsl r0, r6, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r2, _022533E8 ; =0x00003FFF
+ add r0, r5, #0
+ mov r1, #4
+ bl FUN_02003210
+_02253180:
+ ldrb r0, [r4, #0x15]
+ cmp r0, #0x14
+ bne _0225318C
+ ldr r0, [r4, #0xc]
+ bl MOD08_0222A1DC
+_0225318C:
+ ldrb r0, [r4, #0x15]
+ cmp r0, #0x17
+ bne _0225319A
+ mov r0, #0x85
+ lsl r0, r0, #4
+ bl FUN_020054C8
+_0225319A:
+ ldrb r0, [r4, #0x15]
+ cmp r0, #0x1c
+ bne _02253286
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_020031FC
+ add r7, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02231244
+ add r1, r7, #0
+ mov r2, #0xe0
+ bl MIi_CpuCopy16
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ cmp r0, #0x4a
+ bne _022531DC
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_020031FC
+ add r7, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02231250
+ add r1, r7, #0
+ mov r2, #0xa0
+ bl MIi_CpuCopy16
+ b _0225323E
+_022531DC:
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _02253200
+ add r0, r5, #0
+ bl FUN_020031FC
+ add r7, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02231250
+ add r1, r7, #0
+ mov r2, #0xe0
+ bl MIi_CpuCopy16
+ b _0225323E
+_02253200:
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #1
+ tst r0, r1
+ beq _02253226
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_020031FC
+ add r7, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02231250
+ add r1, r7, #0
+ mov r2, #0xa0
+ bl MIi_CpuCopy16
+ b _0225323E
+_02253226:
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_020031FC
+ add r7, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02231250
+ add r1, r7, #0
+ mov r2, #0x80
+ bl MIi_CpuCopy16
+_0225323E:
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ lsl r0, r6, #0x10
+ str r3, [sp, #4]
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r2, _022533E4 ; =0x0000F3FF
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_02003210
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ lsl r0, r6, #0x10
+ str r3, [sp, #4]
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r2, _022533E8 ; =0x00003FFF
+ add r0, r5, #0
+ mov r1, #4
+ bl FUN_02003210
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ lsl r0, r6, #0x10
+ str r3, [sp, #4]
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ ldr r2, _022533EC ; =0x0000FFFF
+ add r0, r5, #0
+ mov r1, #0xa
+ bl FUN_02003210
+_02253286:
+ ldrb r0, [r4, #0x15]
+ cmp r0, #0x32
+ bne _022532B6
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ str r3, [sp, #4]
+ mov r2, #3
+ str r3, [sp, #8]
+ add r0, r5, #0
+ mov r1, #1
+ lsl r2, r2, #0xa
+ bl FUN_02003210
+ ldrb r0, [r4, #0x14]
+ add sp, #0x18
+ add r0, r0, #1
+ strb r0, [r4, #0x14]
+ pop {r3, r4, r5, r6, r7, pc}
+_022532AC:
+ ldr r0, [r4, #0xc]
+ bl MOD08_0222A204
+ cmp r0, #0
+ beq _022532B8
+_022532B6:
+ b _022533D4
+_022532B8:
+ ldr r0, [r4, #4]
+ bl MOD08_0222A14C
+ ldrb r0, [r4, #0x14]
+ add sp, #0x18
+ add r0, r0, #1
+ strb r0, [r4, #0x14]
+ pop {r3, r4, r5, r6, r7, pc}
+_022532C8:
+ ldr r0, [r4]
+ bl MOD11_02230288
+ mov r1, #0
+ bl FUN_020143A8
+ add r0, r4, #0
+ bl FreeToHeap
+ ldr r0, [sp, #0xc]
+ bl FUN_0200CAB4
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_022532E4:
+ ldr r0, [r4, #4]
+ bl MOD08_0222A170
+ ldr r0, [r4, #4]
+ bl MOD08_0222A14C
+ ldrb r0, [r4, #0x14]
+ add r0, r0, #1
+ strb r0, [r4, #0x14]
+_022532F6:
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_020031FC
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02231244
+ add r1, r6, #0
+ mov r2, #0xe0
+ bl MIi_CpuCopy16
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ cmp r0, #0x4a
+ bne _02253332
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_020031FC
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02231250
+ add r1, r6, #0
+ mov r2, #0xa0
+ bl MIi_CpuCopy16
+ b _02253394
+_02253332:
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ beq _02253356
+ add r0, r5, #0
+ bl FUN_020031FC
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02231250
+ add r1, r6, #0
+ mov r2, #0xe0
+ bl MIi_CpuCopy16
+ b _02253394
+_02253356:
+ ldr r0, [r4]
+ bl MOD11_0222FF74
+ mov r1, #1
+ tst r0, r1
+ beq _0225337C
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_020031FC
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02231250
+ add r1, r6, #0
+ mov r2, #0xa0
+ bl MIi_CpuCopy16
+ b _02253394
+_0225337C:
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_020031FC
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02231250
+ add r1, r6, #0
+ mov r2, #0x80
+ bl MIi_CpuCopy16
+_02253394:
+ mov r3, #0
+ str r3, [sp]
+ ldr r0, _022533F0 ; =0x00007FFF
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ ldr r2, _022533EC ; =0x0000FFFF
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_02003210
+ mov r3, #0
+ str r3, [sp]
+ ldr r2, _022533EC ; =0x0000FFFF
+ str r3, [sp, #4]
+ str r2, [sp, #8]
+ add r0, r5, #0
+ mov r1, #4
+ lsr r2, r2, #2
+ bl FUN_02003210
+ mov r3, #0
+ str r3, [sp]
+ ldr r0, _022533F0 ; =0x00007FFF
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ ldr r2, _022533EC ; =0x0000FFFF
+ add r0, r5, #0
+ mov r1, #0xa
+ bl FUN_02003210
+ mov r0, #4
+ strb r0, [r4, #0x14]
+_022533D4:
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022533D8: .word 0x0225E86C
+_022533DC: .word 0x0225E820
+_022533E0: .word 0x0000084F
+_022533E4: .word 0x0000F3FF
+_022533E8: .word 0x00003FFF
+_022533EC: .word 0x0000FFFF
+_022533F0: .word 0x00007FFF
+
+ thumb_func_start MOD11_022533F4
+MOD11_022533F4: ; 0x022533F4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ ldrb r1, [r4, #0xa]
+ add r6, r0, #0
+ cmp r1, #3
+ bls _0225340C
+ b _02253524
+_0225340C:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02253418: ; jump table
+ .short _02253420 - _02253418 - 2 ; case 0
+ .short _02253440 - _02253418 - 2 ; case 1
+ .short _022534B0 - _02253418 - 2 ; case 2
+ .short _022534E2 - _02253418 - 2 ; case 3
+_02253420:
+ mov r2, #0
+ str r2, [sp]
+ mov r1, #0x10
+ str r1, [sp, #4]
+ mov r1, #0xa
+ str r2, [sp, #8]
+ add r3, r1, #0
+ ldr r2, _02253528 ; =0x0000FFFF
+ sub r3, #0x12
+ bl FUN_02003210
+ ldrb r0, [r4, #0xa]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, r6, pc}
+_02253440:
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02253524
+ ldr r0, [r4]
+ bl MOD11_0222D7F8
+ mov r0, #5
+ mov r1, #0x38
+ bl AllocFromHeap
+ str r0, [r4, #4]
+ ldrb r1, [r4, #9]
+ ldr r0, [r4]
+ bl MOD11_0222FF88
+ ldr r1, [r4, #4]
+ mov r2, #3
+ str r0, [r1]
+ ldr r1, [r4]
+ ldr r0, [r4, #4]
+ str r1, [r0, #8]
+ ldr r0, [r4, #4]
+ mov r1, #5
+ str r1, [r0, #0xc]
+ ldrb r1, [r4, #0xe]
+ ldr r0, [r4, #4]
+ strb r1, [r0, #0x11]
+ ldrh r1, [r4, #0xc]
+ ldr r0, [r4, #4]
+ strh r1, [r0, #0x24]
+ ldr r1, [r4, #4]
+ mov r0, #0
+ add r1, #0x36
+ strb r0, [r1]
+ ldr r1, [r4, #4]
+ strb r0, [r1, #0x12]
+ ldr r1, [r4, #4]
+ add r1, #0x35
+ strb r2, [r1]
+ ldr r1, [r4, #4]
+ strh r0, [r1, #0x22]
+ ldrb r2, [r4, #9]
+ ldr r1, [r4, #4]
+ str r2, [r1, #0x28]
+ ldr r1, [r4, #4]
+ add r1, #0x32
+ strb r0, [r1]
+ ldr r0, [r4, #4]
+ bl MOD07_02211E60
+ ldrb r0, [r4, #0xa]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, r6, pc}
+_022534B0:
+ ldr r0, [r4, #4]
+ add r0, #0x36
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02253524
+ ldr r0, [r4]
+ bl MOD11_0222D88C
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0
+ mov r1, #0xa
+ str r0, [sp, #4]
+ add r3, r1, #0
+ str r0, [sp, #8]
+ ldr r2, _02253528 ; =0x0000FFFF
+ add r0, r6, #0
+ sub r3, #0x12
+ bl FUN_02003210
+ ldrb r0, [r4, #0xa]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r4, #0xa]
+ pop {r3, r4, r5, r6, pc}
+_022534E2:
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02253524
+ ldr r0, [r4, #4]
+ add r0, #0x34
+ ldrb r2, [r0]
+ ldr r0, [r4]
+ cmp r2, #4
+ bne _02253500
+ ldrb r1, [r4, #9]
+ mov r2, #0xff
+ bl MOD11_02255964
+ b _02253508
+_02253500:
+ ldrb r1, [r4, #9]
+ add r2, r2, #1
+ bl MOD11_02255964
+_02253508:
+ ldrb r1, [r4, #9]
+ ldrb r2, [r4, #8]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ ldr r0, [r4, #4]
+ bl FreeToHeap
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02253524:
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_02253528: .word 0x0000FFFF
+
+ thumb_func_start MOD11_0225352C
+MOD11_0225352C: ; 0x0225352C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ ldrb r0, [r5, #0xa]
+ cmp r0, #0
+ beq _0225353E
+ cmp r0, #1
+ beq _02253582
+ pop {r3, r4, r5, pc}
+_0225353E:
+ ldrb r1, [r5, #0xc]
+ ldrb r0, [r5, #0xd]
+ cmp r1, r0
+ bne _0225357C
+ mov r0, #0
+ strb r0, [r5, #0xc]
+ ldr r0, [r5, #4]
+ mov r1, #0x28
+ bl FUN_0200782C
+ add r4, r0, #0
+ ldrb r0, [r5, #0xb]
+ cmp r4, r0
+ ble _0225355E
+ sub r4, r4, #1
+ b _02253564
+_0225355E:
+ cmp r4, r0
+ bge _02253564
+ add r4, r4, #1
+_02253564:
+ ldr r0, [r5, #4]
+ mov r1, #0x28
+ add r2, r4, #0
+ bl FUN_02007558
+ ldrb r0, [r5, #0xb]
+ cmp r4, r0
+ bne _02253598
+ ldrb r0, [r5, #0xa]
+ add r0, r0, #1
+ strb r0, [r5, #0xa]
+ pop {r3, r4, r5, pc}
+_0225357C:
+ add r0, r1, #1
+ strb r0, [r5, #0xc]
+ pop {r3, r4, r5, pc}
+_02253582:
+ ldrb r1, [r5, #9]
+ ldrb r2, [r5, #8]
+ ldr r0, [r5]
+ bl MOD11_022567B8
+ add r0, r5, #0
+ bl FreeToHeap
+ add r0, r4, #0
+ bl FUN_0200CAB4
+_02253598:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225359C
+MOD11_0225359C: ; 0x0225359C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldrb r1, [r5, #5]
+ add r6, r0, #0
+ ldr r0, [r5]
+ bl MOD11_02230270
+ cmp r0, #0
+ bne _022535B4
+ mov r4, #0
+ b _022535B6
+_022535B4:
+ mov r4, #1
+_022535B6:
+ ldrb r0, [r5, #7]
+ cmp r0, #0
+ beq _022535C2
+ cmp r0, #1
+ beq _0225361C
+ b _02253636
+_022535C2:
+ ldrb r0, [r5, #0xe]
+ cmp r0, #0
+ bne _022535CE
+ mov r7, #0
+ mov r6, #1
+ b _022535E6
+_022535CE:
+ ldrb r0, [r5, #6]
+ mov r7, #1
+ cmp r0, #3
+ beq _022535DC
+ cmp r0, #5
+ beq _022535E0
+ b _022535E4
+_022535DC:
+ mov r6, #0
+ b _022535E6
+_022535E0:
+ mov r6, #2
+ b _022535E6
+_022535E4:
+ add r6, r7, #0
+_022535E6:
+ ldr r0, [r5]
+ bl MOD11_02230078
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ bl MOD11_02230080
+ ldr r1, [sp, #8]
+ add r2, r7, #0
+ str r1, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #8
+ add r1, r4, #0
+ add r3, r6, #0
+ bl MOD11_0225CA08
+ add r2, r0, #0
+ ldr r0, [r5]
+ add r1, r4, #0
+ bl MOD11_022300A8
+ ldrb r0, [r5, #7]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r5, #7]
+ pop {r4, r5, r6, r7, pc}
+_0225361C:
+ ldr r0, [r5]
+ add r1, r4, #0
+ bl MOD11_0223009C
+ bl MOD11_0225CA6C
+ cmp r0, #1
+ bne _0225364C
+ ldrb r0, [r5, #7]
+ add sp, #0xc
+ add r0, r0, #1
+ strb r0, [r5, #7]
+ pop {r4, r5, r6, r7, pc}
+_02253636:
+ ldrb r1, [r5, #5]
+ ldrb r2, [r5, #4]
+ ldr r0, [r5]
+ bl MOD11_022567B8
+ add r0, r5, #0
+ bl FreeToHeap
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_0225364C:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02253650
+MOD11_02253650: ; 0x02253650
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ ldrb r1, [r5, #5]
+ add r7, r0, #0
+ ldr r0, [r5]
+ bl MOD11_02230270
+ cmp r0, #0
+ bne _02253666
+ mov r4, #0
+ b _02253668
+_02253666:
+ mov r4, #1
+_02253668:
+ ldr r0, [r5]
+ add r1, r4, #0
+ bl MOD11_0223009C
+ ldrb r1, [r5, #7]
+ add r6, r0, #0
+ cmp r1, #0
+ beq _0225367E
+ cmp r1, #1
+ beq _0225369A
+ b _022536BA
+_0225367E:
+ ldrb r0, [r5, #0xe]
+ cmp r0, #0
+ bne _02253688
+ mov r1, #0
+ b _0225368A
+_02253688:
+ mov r1, #1
+_0225368A:
+ add r0, r6, #0
+ add r2, r1, #0
+ bl MOD11_0225CA90
+ ldrb r0, [r5, #7]
+ add r0, r0, #1
+ strb r0, [r5, #7]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225369A:
+ bl MOD11_0225CAC8
+ cmp r0, #1
+ bne _022536D0
+ add r0, r6, #0
+ bl MOD11_0225CAEC
+ ldr r0, [r5]
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD11_022300A8
+ ldrb r0, [r5, #7]
+ add r0, r0, #1
+ strb r0, [r5, #7]
+ pop {r3, r4, r5, r6, r7, pc}
+_022536BA:
+ ldrb r1, [r5, #5]
+ ldrb r2, [r5, #4]
+ ldr r0, [r5]
+ bl MOD11_022567B8
+ add r0, r5, #0
+ bl FreeToHeap
+ add r0, r7, #0
+ bl FUN_0200CAB4
+_022536D0:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022536D4
+MOD11_022536D4: ; 0x022536D4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0xe]
+ cmp r0, #0
+ bne _02253706
+ ldr r0, [r4, #4]
+ add r0, #0x8c
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _022536EE
+ bl ErrorHandling
+_022536EE:
+ ldrb r2, [r4, #0xd]
+ ldr r0, [r4]
+ mov r1, #5
+ bl MOD08_022156C0
+ ldr r1, [r4, #4]
+ add r1, #0x8c
+ str r0, [r1]
+ ldrb r0, [r4, #0xe]
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, pc}
+_02253706:
+ ldrb r1, [r4, #0xd]
+ ldrb r2, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02253720
+MOD11_02253720: ; 0x02253720
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ add r0, #0x8c
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02253734
+ bl ErrorHandling
+_02253734:
+ ldr r0, [r4, #4]
+ add r0, #0x8c
+ ldr r0, [r0]
+ bl MOD08_02215988
+ cmp r0, #3
+ bne _0225374E
+ ldrb r0, [r4, #0xe]
+ cmp r0, #5
+ bhs _0225374E
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ pop {r3, r4, r5, pc}
+_0225374E:
+ ldr r0, [r4, #4]
+ ldrb r1, [r4, #0xd]
+ add r0, #0x8c
+ ldr r0, [r0]
+ bl MOD08_0221594C
+ ldr r0, [r4, #4]
+ mov r1, #0
+ add r0, #0x8c
+ str r1, [r0]
+ ldrb r1, [r4, #0xd]
+ ldrb r2, [r4, #0xc]
+ ldr r0, [r4]
+ bl MOD11_022567B8
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225377C
+MOD11_0225377C: ; 0x0225377C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD11_0222FF74
+ mov r1, #0x40
+ tst r1, r0
+ beq _022537D6
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _022537B6
+ ldr r1, _022539F4 ; =MOD11_02250F44
+ add r0, r0, #2
+ str r1, [r4]
+ ldr r1, _022539F8 ; =MOD11_022511C4
+ str r1, [r4, #4]
+ ldr r1, _022539FC ; =MOD11_02251420
+ str r1, [r4, #8]
+ ldr r1, _02253A00 ; =MOD11_02252018
+ str r1, [r4, #0xc]
+ ldr r1, _02253A04 ; =MOD11_02252470
+ str r1, [r4, #0x10]
+ ldr r1, _02253A08 ; =MOD11_02252714
+ str r1, [r4, #0x14]
+ mov r1, #1
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_022537B6:
+ ldr r1, _02253A0C ; =MOD11_02250A70
+ add r0, r0, #2
+ str r1, [r4]
+ ldr r1, _02253A10 ; =MOD11_0225103C
+ str r1, [r4, #4]
+ ldr r1, _02253A14 ; =MOD11_022512B4
+ str r1, [r4, #8]
+ ldr r1, _02253A18 ; =MOD11_02251484
+ str r1, [r4, #0xc]
+ ldr r1, _02253A1C ; =MOD11_022520A8
+ str r1, [r4, #0x10]
+ ldr r1, _02253A20 ; =MOD11_02252544
+ str r1, [r4, #0x14]
+ mov r1, #0
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_022537D6:
+ mov r1, #0x88
+ and r1, r0
+ cmp r1, #0x88
+ bne _02253888
+ ldr r0, _02253A24 ; =0x00000195
+ ldrb r1, [r4, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _02253832
+ add r0, r5, #0
+ bl MOD11_02230DD4
+ cmp r0, #0
+ beq _02253812
+ ldr r0, _022539F4 ; =MOD11_02250F44
+ mov r1, #1
+ str r0, [r4]
+ ldr r0, _022539F8 ; =MOD11_022511C4
+ str r0, [r4, #4]
+ ldr r0, _022539FC ; =MOD11_02251420
+ str r0, [r4, #8]
+ ldr r0, _02253A00 ; =MOD11_02252018
+ str r0, [r4, #0xc]
+ ldr r0, _02253A04 ; =MOD11_02252470
+ str r0, [r4, #0x10]
+ ldr r0, _02253A08 ; =MOD11_02252714
+ str r0, [r4, #0x14]
+ ldr r0, _02253A28 ; =0x00000196
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_02253812:
+ ldr r0, _02253A2C ; =MOD11_02250F74
+ mov r1, #2
+ str r0, [r4]
+ ldr r0, _02253A30 ; =MOD11_02251294
+ str r0, [r4, #4]
+ ldr r0, _02253A34 ; =MOD11_02251464
+ str r0, [r4, #8]
+ ldr r0, _02253A38 ; =MOD11_02252070
+ str r0, [r4, #0xc]
+ ldr r0, _02253A3C ; =MOD11_02252524
+ str r0, [r4, #0x10]
+ ldr r0, _02253A40 ; =MOD11_02252734
+ str r0, [r4, #0x14]
+ ldr r0, _02253A28 ; =0x00000196
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_02253832:
+ bl FUN_02031190
+ add r1, r0, #0
+ add r0, r5, #0
+ lsl r1, r1, #1
+ bl MOD11_02230260
+ ldr r1, _02253A24 ; =0x00000195
+ ldrb r2, [r4, r1]
+ cmp r2, r0
+ beq _02253868
+ ldr r0, _02253A2C ; =MOD11_02250F74
+ mov r2, #2
+ str r0, [r4]
+ ldr r0, _02253A30 ; =MOD11_02251294
+ str r0, [r4, #4]
+ ldr r0, _02253A34 ; =MOD11_02251464
+ str r0, [r4, #8]
+ ldr r0, _02253A38 ; =MOD11_02252070
+ str r0, [r4, #0xc]
+ ldr r0, _02253A3C ; =MOD11_02252524
+ str r0, [r4, #0x10]
+ ldr r0, _02253A40 ; =MOD11_02252734
+ str r0, [r4, #0x14]
+ add r0, r1, #1
+ strb r2, [r4, r0]
+ pop {r3, r4, r5, pc}
+_02253868:
+ ldr r0, _02253A0C ; =MOD11_02250A70
+ mov r2, #0
+ str r0, [r4]
+ ldr r0, _02253A10 ; =MOD11_0225103C
+ str r0, [r4, #4]
+ ldr r0, _02253A14 ; =MOD11_022512B4
+ str r0, [r4, #8]
+ ldr r0, _02253A18 ; =MOD11_02251484
+ str r0, [r4, #0xc]
+ ldr r0, _02253A1C ; =MOD11_022520A8
+ str r0, [r4, #0x10]
+ ldr r0, _02253A20 ; =MOD11_02252544
+ str r0, [r4, #0x14]
+ add r0, r1, #1
+ strb r2, [r4, r0]
+ pop {r3, r4, r5, pc}
+_02253888:
+ mov r1, #8
+ tst r1, r0
+ beq _022538E2
+ bl FUN_02031190
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD11_02230260
+ ldr r1, _02253A24 ; =0x00000195
+ ldrb r2, [r4, r1]
+ cmp r2, r0
+ beq _022538C2
+ ldr r0, _02253A2C ; =MOD11_02250F74
+ mov r2, #2
+ str r0, [r4]
+ ldr r0, _02253A30 ; =MOD11_02251294
+ str r0, [r4, #4]
+ ldr r0, _02253A34 ; =MOD11_02251464
+ str r0, [r4, #8]
+ ldr r0, _02253A38 ; =MOD11_02252070
+ str r0, [r4, #0xc]
+ ldr r0, _02253A3C ; =MOD11_02252524
+ str r0, [r4, #0x10]
+ ldr r0, _02253A40 ; =MOD11_02252734
+ str r0, [r4, #0x14]
+ add r0, r1, #1
+ strb r2, [r4, r0]
+ pop {r3, r4, r5, pc}
+_022538C2:
+ ldr r0, _02253A0C ; =MOD11_02250A70
+ mov r2, #0
+ str r0, [r4]
+ ldr r0, _02253A10 ; =MOD11_0225103C
+ str r0, [r4, #4]
+ ldr r0, _02253A14 ; =MOD11_022512B4
+ str r0, [r4, #8]
+ ldr r0, _02253A18 ; =MOD11_02251484
+ str r0, [r4, #0xc]
+ ldr r0, _02253A1C ; =MOD11_022520A8
+ str r0, [r4, #0x10]
+ ldr r0, _02253A20 ; =MOD11_02252544
+ str r0, [r4, #0x14]
+ add r0, r1, #1
+ strb r2, [r4, r0]
+ pop {r3, r4, r5, pc}
+_022538E2:
+ mov r1, #4
+ add r2, r0, #0
+ tst r2, r1
+ beq _02253934
+ ldr r0, _02253A24 ; =0x00000195
+ mov r1, #1
+ ldrb r2, [r4, r0]
+ tst r1, r2
+ beq _02253914
+ ldr r1, _02253A2C ; =MOD11_02250F74
+ add r0, r0, #1
+ str r1, [r4]
+ ldr r1, _02253A30 ; =MOD11_02251294
+ str r1, [r4, #4]
+ ldr r1, _02253A34 ; =MOD11_02251464
+ str r1, [r4, #8]
+ ldr r1, _02253A38 ; =MOD11_02252070
+ str r1, [r4, #0xc]
+ ldr r1, _02253A3C ; =MOD11_02252524
+ str r1, [r4, #0x10]
+ ldr r1, _02253A40 ; =MOD11_02252734
+ str r1, [r4, #0x14]
+ mov r1, #2
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_02253914:
+ ldr r1, _02253A0C ; =MOD11_02250A70
+ add r0, r0, #1
+ str r1, [r4]
+ ldr r1, _02253A10 ; =MOD11_0225103C
+ str r1, [r4, #4]
+ ldr r1, _02253A14 ; =MOD11_022512B4
+ str r1, [r4, #8]
+ ldr r1, _02253A18 ; =MOD11_02251484
+ str r1, [r4, #0xc]
+ ldr r1, _02253A1C ; =MOD11_022520A8
+ str r1, [r4, #0x10]
+ ldr r1, _02253A20 ; =MOD11_02252544
+ str r1, [r4, #0x14]
+ mov r1, #0
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_02253934:
+ lsl r1, r1, #7
+ tst r1, r0
+ beq _02253970
+ ldr r0, _02253A24 ; =0x00000195
+ mov r1, #1
+ ldrb r2, [r4, r0]
+ tst r2, r1
+ beq _0225395A
+ ldr r2, _02253A44 ; =MOD11_02251014
+ add r0, r0, #1
+ str r2, [r4]
+ mov r2, #0
+ str r2, [r4, #4]
+ str r2, [r4, #8]
+ str r2, [r4, #0xc]
+ str r2, [r4, #0x10]
+ str r2, [r4, #0x14]
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_0225395A:
+ ldr r1, _02253A0C ; =MOD11_02250A70
+ add r0, r0, #1
+ str r1, [r4]
+ mov r1, #0
+ str r1, [r4, #4]
+ str r1, [r4, #8]
+ str r1, [r4, #0xc]
+ str r1, [r4, #0x10]
+ str r1, [r4, #0x14]
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_02253970:
+ mov r1, #0x20
+ tst r0, r1
+ ldr r0, _02253A24 ; =0x00000195
+ beq _022539AE
+ ldrb r2, [r4, r0]
+ mov r1, #1
+ tst r2, r1
+ beq _02253996
+ ldr r2, _02253A48 ; =MOD11_02250F94
+ add r0, r0, #1
+ str r2, [r4]
+ mov r2, #0
+ str r2, [r4, #4]
+ str r2, [r4, #8]
+ str r2, [r4, #0xc]
+ str r2, [r4, #0x10]
+ str r2, [r4, #0x14]
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_02253996:
+ ldr r1, _02253A0C ; =MOD11_02250A70
+ mov r2, #0
+ str r1, [r4]
+ str r2, [r4, #4]
+ str r2, [r4, #8]
+ str r2, [r4, #0xc]
+ ldr r1, _02253A20 ; =MOD11_02252544
+ str r2, [r4, #0x10]
+ str r1, [r4, #0x14]
+ add r0, r0, #1
+ strb r2, [r4, r0]
+ pop {r3, r4, r5, pc}
+_022539AE:
+ ldrb r2, [r4, r0]
+ mov r1, #1
+ tst r2, r1
+ beq _022539D4
+ ldr r2, _022539F4 ; =MOD11_02250F44
+ add r0, r0, #1
+ str r2, [r4]
+ ldr r2, _022539F8 ; =MOD11_022511C4
+ str r2, [r4, #4]
+ ldr r2, _022539FC ; =MOD11_02251420
+ str r2, [r4, #8]
+ ldr r2, _02253A00 ; =MOD11_02252018
+ str r2, [r4, #0xc]
+ ldr r2, _02253A04 ; =MOD11_02252470
+ str r2, [r4, #0x10]
+ ldr r2, _02253A08 ; =MOD11_02252714
+ str r2, [r4, #0x14]
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_022539D4:
+ ldr r1, _02253A0C ; =MOD11_02250A70
+ add r0, r0, #1
+ str r1, [r4]
+ ldr r1, _02253A10 ; =MOD11_0225103C
+ str r1, [r4, #4]
+ ldr r1, _02253A14 ; =MOD11_022512B4
+ str r1, [r4, #8]
+ ldr r1, _02253A18 ; =MOD11_02251484
+ str r1, [r4, #0xc]
+ ldr r1, _02253A1C ; =MOD11_022520A8
+ str r1, [r4, #0x10]
+ ldr r1, _02253A20 ; =MOD11_02252544
+ str r1, [r4, #0x14]
+ mov r1, #0
+ strb r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022539F4: .word MOD11_02250F44
+_022539F8: .word MOD11_022511C4
+_022539FC: .word MOD11_02251420
+_02253A00: .word MOD11_02252018
+_02253A04: .word MOD11_02252470
+_02253A08: .word MOD11_02252714
+_02253A0C: .word MOD11_02250A70
+_02253A10: .word MOD11_0225103C
+_02253A14: .word MOD11_022512B4
+_02253A18: .word MOD11_02251484
+_02253A1C: .word MOD11_022520A8
+_02253A20: .word MOD11_02252544
+_02253A24: .word 0x00000195
+_02253A28: .word 0x00000196
+_02253A2C: .word MOD11_02250F74
+_02253A30: .word MOD11_02251294
+_02253A34: .word MOD11_02251464
+_02253A38: .word MOD11_02252070
+_02253A3C: .word MOD11_02252524
+_02253A40: .word MOD11_02252734
+_02253A44: .word MOD11_02251014
+_02253A48: .word MOD11_02250F94
+
+ thumb_func_start MOD11_02253A4C
+MOD11_02253A4C: ; 0x02253A4C
+ ldr r1, _02253A54 ; =0x00000195
+ ldrb r0, [r0, r1]
+ bx lr
+ nop
+_02253A54: .word 0x00000195
+
+ thumb_func_start MOD11_02253A58
+MOD11_02253A58: ; 0x02253A58
+ ldr r1, _02253A60 ; =0x00000196
+ ldrb r0, [r0, r1]
+ bx lr
+ nop
+_02253A60: .word 0x00000196
+
+ thumb_func_start MOD11_02253A64
+MOD11_02253A64: ; 0x02253A64
+ ldr r1, [r0, #0x20]
+ cmp r1, #0
+ bne _02253A6C
+ ldr r1, [r0, #0x1c]
+_02253A6C:
+ add r0, r1, #0
+ bx lr
+
+ thumb_func_start MOD11_02253A70
+MOD11_02253A70: ; 0x02253A70
+ add r0, #0x28
+ bx lr
+
+ thumb_func_start MOD11_02253A74
+MOD11_02253A74: ; 0x02253A74
+ add r0, #0x80
+ bx lr
+
+ thumb_func_start MOD11_02253A78
+MOD11_02253A78: ; 0x02253A78
+ ldr r3, _02253A84 ; =0x020CE34C
+ add r0, #0x80
+ mov r1, #0
+ mov r2, #8
+ bx r3
+ nop
+_02253A84: .word 0x020CE34C
+
+ thumb_func_start MOD11_02253A88
+MOD11_02253A88: ; 0x02253A88
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ ldr r4, [sp, #0x50]
+ add r7, r0, #0
+ str r1, [sp, #0x14]
+ add r5, r2, #0
+ str r3, [sp, #0x18]
+ bl MOD11_02230130
+ add r1, r4, #0
+ bl MOD11_022312DC
+ str r0, [sp, #0x20]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD11_02230260
+ add r6, r0, #0
+ mov r0, #1
+ and r0, r6
+ str r0, [sp, #0x1c]
+ beq _02253AB8
+ mov r1, #2
+ b _02253ABA
+_02253AB8:
+ mov r1, #0
+_02253ABA:
+ ldr r0, [r5, #0xc]
+ ldr r3, [sp, #0x20]
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldrh r0, [r5, #6]
+ mov r2, #5
+ str r0, [sp, #0xc]
+ ldrh r0, [r5]
+ ldrh r1, [r5, #2]
+ bl FUN_02012560
+ add r0, r7, #0
+ bl MOD11_02230130
+ ldrh r2, [r5]
+ add r1, r4, #0
+ bl MOD11_022312F0
+ add r0, r7, #0
+ bl MOD11_02230130
+ ldrh r2, [r5, #4]
+ add r1, r4, #0
+ bl MOD11_02231308
+ add r0, r7, #0
+ bl MOD11_02230130
+ ldr r2, [sp, #0x40]
+ add r1, r4, #0
+ bl MOD11_02231320
+ ldr r0, [sp, #0x3c]
+ ldr r3, [sp, #0x40]
+ str r0, [sp]
+ str r4, [sp, #4]
+ str r4, [sp, #8]
+ ldr r0, [sp, #0x54]
+ ldr r4, [sp, #0x38]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x58]
+ ldr r2, [sp, #0x18]
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ add r1, r5, #0
+ add r3, r4, r3
+ bl FUN_020073E8
+ add r4, r0, #0
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ beq _02253B6E
+ cmp r6, #1
+ ble _02253B2C
+ asr r6, r6, #1
+_02253B2C:
+ add r0, r4, #0
+ mov r1, #0x2a
+ add r2, r6, #0
+ bl FUN_02007558
+ ldr r2, [sp, #0x4c]
+ add r0, r4, #0
+ mov r1, #0x2e
+ bl FUN_02007558
+ ldr r2, [sp, #0x38]
+ add r0, r4, #0
+ mov r1, #0x14
+ add r2, #0x24
+ bl FUN_02007558
+ ldr r2, [sp, #0x48]
+ add r0, r4, #0
+ mov r1, #0x15
+ bl FUN_02007558
+ ldr r3, [sp, #0x40]
+ mov r2, #0x24
+ add r0, r4, #0
+ mov r1, #0x16
+ sub r2, r2, r3
+ bl FUN_02007558
+ ldr r2, [sp, #0x44]
+ add r0, r4, #0
+ mov r1, #0x29
+ bl FUN_02007558
+_02253B6E:
+ add r0, r4, #0
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02253B74
+MOD11_02253B74: ; 0x02253B74
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ ldr r1, _02253C30 ; =0x00000195
+ add r6, r2, #0
+ ldrb r2, [r5, r1]
+ mov r1, #1
+ add r7, r0, #0
+ add r4, r3, #0
+ tst r1, r2
+ beq _02253BCE
+ bl MOD11_0222FF74
+ mov r1, #4
+ tst r0, r1
+ beq _02253BAE
+ ldr r0, _02253C34 ; =0x000003DE
+ strh r0, [r4, #2]
+ mov r0, #0x1b
+ strb r0, [r4, #1]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r5, r0]
+ str r1, [r4, #4]
+ ldrb r1, [r5, r0]
+ ldrb r0, [r6, #1]
+ lsl r0, r0, #8
+ orr r0, r1
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253BAE:
+ ldr r0, _02253C38 ; =0x000003DD
+ strh r0, [r4, #2]
+ mov r0, #0x32
+ strb r0, [r4, #1]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r5, r0]
+ str r1, [r4, #4]
+ ldrb r1, [r5, r0]
+ str r1, [r4, #8]
+ ldrb r1, [r5, r0]
+ ldrb r0, [r6, #1]
+ lsl r0, r0, #8
+ orr r0, r1
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253BCE:
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _02253C18
+ add r0, r7, #0
+ bl MOD11_0222FF74
+ mov r1, #4
+ tst r0, r1
+ bne _02253C18
+ ldrh r0, [r6, #2]
+ cmp r0, #0
+ bne _02253BF2
+ mov r0, #0xf6
+ lsl r0, r0, #2
+ strh r0, [r4, #2]
+ b _02253C1C
+_02253BF2:
+ cmp r0, #0x19
+ bhs _02253BFC
+ ldr r0, _02253C3C ; =0x000003D9
+ strh r0, [r4, #2]
+ b _02253C1C
+_02253BFC:
+ cmp r0, #0x32
+ bhs _02253C08
+ mov r0, #0xf7
+ lsl r0, r0, #2
+ strh r0, [r4, #2]
+ b _02253C1C
+_02253C08:
+ cmp r0, #0x4b
+ bhs _02253C12
+ ldr r0, _02253C40 ; =0x000003DA
+ strh r0, [r4, #2]
+ b _02253C1C
+_02253C12:
+ ldr r0, _02253C44 ; =0x000003DB
+ strh r0, [r4, #2]
+ b _02253C1C
+_02253C18:
+ ldr r0, _02253C3C ; =0x000003D9
+ strh r0, [r4, #2]
+_02253C1C:
+ mov r0, #2
+ strb r0, [r4, #1]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r5, r0]
+ ldrb r0, [r6, #1]
+ lsl r0, r0, #8
+ orr r0, r1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02253C30: .word 0x00000195
+_02253C34: .word 0x000003DE
+_02253C38: .word 0x000003DD
+_02253C3C: .word 0x000003D9
+_02253C40: .word 0x000003DA
+_02253C44: .word 0x000003DB
+
+ thumb_func_start MOD11_02253C48
+MOD11_02253C48: ; 0x02253C48
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ ldr r1, _02253D08 ; =0x00000195
+ add r6, r2, #0
+ ldrb r2, [r5, r1]
+ mov r1, #1
+ add r7, r0, #0
+ add r4, r3, #0
+ tst r1, r2
+ beq _02253CA4
+ bl MOD11_0222FF74
+ mov r1, #4
+ tst r0, r1
+ bne _02253C88
+ mov r0, #0xf3
+ lsl r0, r0, #2
+ strh r0, [r4, #2]
+ mov r0, #0x32
+ strb r0, [r4, #1]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r5, r0]
+ str r1, [r4, #4]
+ ldrb r1, [r5, r0]
+ str r1, [r4, #8]
+ ldrb r1, [r5, r0]
+ ldrb r0, [r6, #1]
+ lsl r0, r0, #8
+ orr r0, r1
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253C88:
+ ldr r0, _02253D0C ; =0x000003CE
+ strh r0, [r4, #2]
+ mov r0, #0x1b
+ strb r0, [r4, #1]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r5, r0]
+ str r1, [r4, #4]
+ ldrb r1, [r5, r0]
+ ldrb r0, [r6, #1]
+ lsl r0, r0, #8
+ orr r0, r1
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253CA4:
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ bne _02253CF0
+ add r0, r7, #0
+ bl MOD11_0222FF74
+ mov r1, #4
+ tst r0, r1
+ bne _02253CF0
+ ldrh r1, [r6, #2]
+ cmp r1, #0x64
+ bhs _02253CC6
+ ldr r0, _02253D10 ; =0x000003D6
+ strh r0, [r4, #2]
+ b _02253CF4
+_02253CC6:
+ ldr r0, _02253D14 ; =0x00000145
+ cmp r1, r0
+ bhs _02253CD2
+ ldr r0, _02253D18 ; =0x000003D7
+ strh r0, [r4, #2]
+ b _02253CF4
+_02253CD2:
+ add r0, #0xe1
+ cmp r1, r0
+ bhs _02253CDE
+ ldr r0, _02253D1C ; =0x000003D5
+ strh r0, [r4, #2]
+ b _02253CF4
+_02253CDE:
+ ldr r0, _02253D20 ; =0x00000307
+ cmp r1, r0
+ bhs _02253CEA
+ add r0, #0xcd
+ strh r0, [r4, #2]
+ b _02253CF4
+_02253CEA:
+ add r0, #0xcc
+ strh r0, [r4, #2]
+ b _02253CF4
+_02253CF0:
+ ldr r0, _02253D24 ; =0x000003D3
+ strh r0, [r4, #2]
+_02253CF4:
+ mov r0, #2
+ strb r0, [r4, #1]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r1, [r5, r0]
+ ldrb r0, [r6, #1]
+ lsl r0, r0, #8
+ orr r0, r1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02253D08: .word 0x00000195
+_02253D0C: .word 0x000003CE
+_02253D10: .word 0x000003D6
+_02253D14: .word 0x00000145
+_02253D18: .word 0x000003D7
+_02253D1C: .word 0x000003D5
+_02253D20: .word 0x00000307
+_02253D24: .word 0x000003D3
+
+ thumb_func_start MOD11_02253D28
+MOD11_02253D28: ; 0x02253D28
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r2, #0
+ bl MOD11_0222FF74
+ add r4, r0, #0
+ mov r0, #2
+ tst r0, r4
+ beq _02253D4E
+ add r0, r7, #0
+ mov r1, #3
+ bl MOD11_0223022C
+ add r6, r0, #0
+ add r0, r7, #0
+ mov r1, #5
+ bl MOD11_0223022C
+ b _02253D58
+_02253D4E:
+ add r0, r7, #0
+ mov r1, #1
+ bl MOD11_0223022C
+ add r6, r0, #0
+_02253D58:
+ mov r1, #4
+ tst r1, r4
+ beq _02253D98
+ mov r1, #0x80
+ tst r1, r4
+ beq _02253D78
+ mov r1, #0x3e
+ lsl r1, r1, #4
+ strh r1, [r5, #2]
+ mov r1, #0x3b
+ strb r1, [r5, #1]
+ str r6, [r5, #4]
+ str r6, [r5, #8]
+ str r0, [r5, #0xc]
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253D78:
+ mov r1, #8
+ add r2, r4, #0
+ tst r2, r1
+ beq _02253D8E
+ ldr r1, _02253DC8 ; =0x000003CB
+ strh r1, [r5, #2]
+ mov r1, #0x1a
+ strb r1, [r5, #1]
+ str r6, [r5, #4]
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253D8E:
+ ldr r0, _02253DCC ; =0x000003CA
+ strh r0, [r5, #2]
+ strb r1, [r5, #1]
+ str r6, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253D98:
+ mov r1, #0x10
+ tst r1, r4
+ bne _02253DA4
+ mov r1, #8
+ tst r1, r4
+ beq _02253DB8
+_02253DA4:
+ mov r1, #0x3e
+ lsl r1, r1, #4
+ strh r1, [r5, #2]
+ mov r1, #0x3b
+ strb r1, [r5, #1]
+ str r6, [r5, #4]
+ str r6, [r5, #8]
+ str r0, [r5, #0xc]
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253DB8:
+ ldr r0, _02253DD0 ; =0x000003C9
+ strh r0, [r5, #2]
+ mov r0, #0x1e
+ strb r0, [r5, #1]
+ str r6, [r5, #4]
+ str r6, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02253DC8: .word 0x000003CB
+_02253DCC: .word 0x000003CA
+_02253DD0: .word 0x000003C9
+
+ thumb_func_start MOD11_02253DD4
+MOD11_02253DD4: ; 0x02253DD4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r1, [sp, #4]
+ str r0, [sp]
+ add r6, r2, #0
+ add r4, r3, #0
+ bl MOD11_0222FF74
+ str r0, [sp, #0x14]
+ ldr r2, _022540E4 ; =0x00000195
+ ldr r0, [sp, #4]
+ ldrb r1, [r0, r2]
+ mov r0, #1
+ tst r0, r1
+ bne _02253DF4
+ b _02253F3C
+_02253DF4:
+ ldr r0, [sp, #0x14]
+ mov r1, #2
+ and r0, r1
+ str r0, [sp, #0x10]
+ beq _02253E10
+ ldr r0, [sp, #4]
+ sub r1, r2, #1
+ ldrb r5, [r0, r1]
+ ldr r0, [sp]
+ add r1, r5, #0
+ bl MOD11_022302BC
+ add r7, r0, #0
+ b _02253E18
+_02253E10:
+ ldr r0, [sp, #4]
+ sub r1, r2, #1
+ ldrb r5, [r0, r1]
+ add r7, r5, #0
+_02253E18:
+ ldr r0, [sp, #0x14]
+ mov r1, #4
+ tst r0, r1
+ beq _02253EBE
+ ldr r0, [sp, #0x14]
+ mov r1, #0x80
+ tst r0, r1
+ beq _02253E50
+ ldr r0, _022540E8 ; =0x000003DF
+ add sp, #0x18
+ strh r0, [r4, #2]
+ mov r0, #0x3c
+ strb r0, [r4, #1]
+ str r5, [r4, #4]
+ str r5, [r4, #8]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #0xc]
+ str r7, [r4, #0x10]
+ str r7, [r4, #0x14]
+ add r0, r6, r7
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r7
+ str r0, [r4, #0x18]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253E50:
+ ldr r0, [sp, #0x14]
+ mov r1, #8
+ tst r0, r1
+ beq _02253E7E
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ strh r0, [r4, #2]
+ mov r0, #0x38
+ strb r0, [r4, #1]
+ str r5, [r4, #4]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ add sp, #0x18
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #8]
+ str r7, [r4, #0xc]
+ add r0, r6, r7
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r7
+ str r0, [r4, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253E7E:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ beq _02253EA6
+ ldr r0, _022540EC ; =0x000003CF
+ add sp, #0x18
+ strh r0, [r4, #2]
+ mov r0, #0x31
+ strb r0, [r4, #1]
+ str r5, [r4, #4]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #8]
+ add r0, r6, r7
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r7
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253EA6:
+ ldr r0, _022540F0 ; =0x000003CE
+ add sp, #0x18
+ strh r0, [r4, #2]
+ mov r0, #0x1b
+ strb r0, [r4, #1]
+ str r5, [r4, #4]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253EBE:
+ ldr r0, [sp, #0x14]
+ mov r1, #0x10
+ tst r0, r1
+ bne _02253ECE
+ ldr r0, [sp, #0x14]
+ mov r1, #8
+ tst r0, r1
+ beq _02253EF6
+_02253ECE:
+ ldr r0, _022540E8 ; =0x000003DF
+ add sp, #0x18
+ strh r0, [r4, #2]
+ mov r0, #0x3c
+ strb r0, [r4, #1]
+ str r5, [r4, #4]
+ str r5, [r4, #8]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #0xc]
+ str r7, [r4, #0x10]
+ str r7, [r4, #0x14]
+ add r0, r6, r7
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r7
+ str r0, [r4, #0x18]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253EF6:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ beq _02253F20
+ ldr r0, _022540F4 ; =0x000003CD
+ add sp, #0x18
+ strh r0, [r4, #2]
+ mov r0, #0x39
+ strb r0, [r4, #1]
+ str r5, [r4, #4]
+ str r5, [r4, #8]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #0xc]
+ add r0, r6, r7
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r7
+ str r0, [r4, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253F20:
+ mov r0, #0xf3
+ lsl r0, r0, #2
+ strh r0, [r4, #2]
+ mov r0, #0x32
+ strb r0, [r4, #1]
+ str r5, [r4, #4]
+ str r5, [r4, #8]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ add sp, #0x18
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02253F3C:
+ ldr r0, [sp, #0x14]
+ mov r1, #4
+ and r0, r1
+ str r0, [sp, #0xc]
+ beq _02253FCC
+ bl FUN_02031190
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ ldr r0, [sp, #0x14]
+ mov r1, #8
+ and r0, r1
+ str r0, [sp, #8]
+ beq _02253FA2
+ add r0, r2, #0
+ bl FUN_020313CC
+ cmp r0, #3
+ bhi _02254012
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02253F6E: ; jump table
+ .short _02253F76 - _02253F6E - 2 ; case 0
+ .short _02253F8C - _02253F6E - 2 ; case 1
+ .short _02253F8C - _02253F6E - 2 ; case 2
+ .short _02253F76 - _02253F6E - 2 ; case 3
+_02253F76:
+ ldr r0, [sp]
+ mov r1, #4
+ bl MOD11_0223022C
+ add r5, r0, #0
+ ldr r0, [sp]
+ mov r1, #2
+ bl MOD11_0223022C
+ add r7, r0, #0
+ b _02254012
+_02253F8C:
+ ldr r0, [sp]
+ mov r1, #2
+ bl MOD11_0223022C
+ add r5, r0, #0
+ ldr r0, [sp]
+ mov r1, #4
+ bl MOD11_0223022C
+ add r7, r0, #0
+ b _02254012
+_02253FA2:
+ ldr r0, [sp, #0x14]
+ mov r1, #2
+ tst r0, r1
+ beq _02253FBE
+ ldr r0, [sp]
+ bl MOD11_0223022C
+ add r5, r0, #0
+ ldr r0, [sp]
+ mov r1, #4
+ bl MOD11_0223022C
+ add r7, r0, #0
+ b _02254012
+_02253FBE:
+ ldr r0, [sp]
+ mov r1, #0
+ bl MOD11_0223022C
+ add r5, r0, #0
+ add r7, r5, #0
+ b _02254012
+_02253FCC:
+ ldr r0, [sp, #0x14]
+ mov r1, #8
+ and r0, r1
+ str r0, [sp, #8]
+ beq _02253FEE
+ ldr r1, [sp, #4]
+ sub r2, r2, #1
+ ldrb r1, [r1, r2]
+ ldr r0, [sp]
+ bl MOD11_022302BC
+ add r5, r0, #0
+ mov r1, #0x65
+ ldr r0, [sp, #4]
+ lsl r1, r1, #2
+ ldrb r7, [r0, r1]
+ b _02254012
+_02253FEE:
+ ldr r0, [sp, #0x14]
+ mov r1, #2
+ tst r0, r1
+ beq _0225400A
+ ldr r0, [sp]
+ bl MOD11_0223022C
+ add r5, r0, #0
+ ldr r0, [sp]
+ mov r1, #4
+ bl MOD11_0223022C
+ add r7, r0, #0
+ b _02254012
+_0225400A:
+ ldr r0, [sp, #4]
+ sub r1, r2, #1
+ ldrb r5, [r0, r1]
+ add r7, r5, #0
+_02254012:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ beq _0225407C
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ beq _02254040
+ ldr r0, _022540F8 ; =0x000003D1
+ add sp, #0x18
+ strh r0, [r4, #2]
+ mov r0, #0x31
+ strb r0, [r4, #1]
+ str r5, [r4, #4]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #8]
+ add r0, r6, r7
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r7
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+_02254040:
+ ldr r0, [sp, #0x14]
+ mov r1, #2
+ tst r0, r1
+ beq _02254068
+ ldr r0, _022540FC ; =0x000003D2
+ add sp, #0x18
+ strh r0, [r4, #2]
+ mov r0, #9
+ strb r0, [r4, #1]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #4]
+ add r0, r6, r7
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r7
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_02254068:
+ ldr r0, _02254100 ; =0x000003D3
+ add sp, #0x18
+ strh r0, [r4, #2]
+ strb r1, [r4, #1]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225407C:
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ beq _022540A6
+ ldr r0, _02254104 ; =0x000003E1
+ add sp, #0x18
+ strh r0, [r4, #2]
+ mov r0, #0x39
+ strb r0, [r4, #1]
+ str r5, [r4, #4]
+ str r5, [r4, #8]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #0xc]
+ add r0, r6, r7
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r7
+ str r0, [r4, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+_022540A6:
+ ldr r0, [sp, #0x14]
+ mov r1, #2
+ tst r0, r1
+ beq _022540CE
+ ldr r0, _022540FC ; =0x000003D2
+ add sp, #0x18
+ strh r0, [r4, #2]
+ mov r0, #9
+ strb r0, [r4, #1]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #4]
+ add r0, r6, r7
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r7
+ str r0, [r4, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_022540CE:
+ ldr r0, _02254100 ; =0x000003D3
+ strh r0, [r4, #2]
+ strb r1, [r4, #1]
+ add r0, r6, r5
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #8
+ orr r0, r5
+ str r0, [r4, #4]
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022540E4: .word 0x00000195
+_022540E8: .word 0x000003DF
+_022540EC: .word 0x000003CF
+_022540F0: .word 0x000003CE
+_022540F4: .word 0x000003CD
+_022540F8: .word 0x000003D1
+_022540FC: .word 0x000003D2
+_02254100: .word 0x000003D3
+_02254104: .word 0x000003E1
+
+ thumb_func_start MOD11_02254108
+MOD11_02254108: ; 0x02254108
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ add r5, r2, #0
+ bl MOD11_0222FF74
+ add r6, r0, #0
+ ldr r0, [sp]
+ bl MOD11_0223145C
+ add r7, r0, #0
+ mov r0, #2
+ tst r0, r6
+ beq _02254136
+ ldr r0, [sp]
+ mov r1, #3
+ bl MOD11_0223022C
+ add r4, r0, #0
+ ldr r0, [sp]
+ mov r1, #5
+ bl MOD11_0223022C
+ b _02254140
+_02254136:
+ ldr r0, [sp]
+ mov r1, #1
+ bl MOD11_0223022C
+ add r4, r0, #0
+_02254140:
+ cmp r7, #1
+ beq _0225414E
+ cmp r7, #2
+ beq _0225416E
+ cmp r7, #3
+ beq _02254190
+ pop {r3, r4, r5, r6, r7, pc}
+_0225414E:
+ mov r1, #8
+ add r2, r6, #0
+ tst r2, r1
+ beq _02254164
+ ldr r1, _022541B0 ; =0x00000312
+ strh r1, [r5, #2]
+ mov r1, #0x1a
+ strb r1, [r5, #1]
+ str r4, [r5, #4]
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_02254164:
+ ldr r0, _022541B4 ; =0x00000311
+ strh r0, [r5, #2]
+ strb r1, [r5, #1]
+ str r4, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225416E:
+ mov r1, #8
+ add r2, r6, #0
+ tst r2, r1
+ beq _02254186
+ mov r1, #0xc5
+ lsl r1, r1, #2
+ strh r1, [r5, #2]
+ mov r1, #0x1a
+ strb r1, [r5, #1]
+ str r4, [r5, #4]
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_02254186:
+ ldr r0, _022541B8 ; =0x00000313
+ strh r0, [r5, #2]
+ strb r1, [r5, #1]
+ str r4, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_02254190:
+ mov r1, #8
+ add r2, r6, #0
+ tst r2, r1
+ beq _022541A6
+ ldr r1, _022541BC ; =0x00000316
+ strh r1, [r5, #2]
+ mov r1, #0x1a
+ strb r1, [r5, #1]
+ str r4, [r5, #4]
+ str r0, [r5, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_022541A6:
+ ldr r0, _022541C0 ; =0x00000315
+ strh r0, [r5, #2]
+ strb r1, [r5, #1]
+ str r4, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022541B0: .word 0x00000312
+_022541B4: .word 0x00000311
+_022541B8: .word 0x00000313
+_022541BC: .word 0x00000316
+_022541C0: .word 0x00000315
+
+ thumb_func_start MOD11_022541C4
+MOD11_022541C4: ; 0x022541C4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ mov r6, #0
+ add r5, r0, #0
+ str r2, [sp]
+ add r7, r3, #0
+ str r6, [sp, #4]
+ add r4, r6, #0
+ bl MOD11_0222FF84
+ cmp r0, #0
+ ble _0225420C
+_022541DC:
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ ldr r1, [sp]
+ ldrb r1, [r1, #1]
+ tst r0, r1
+ beq _02254200
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _022541FE
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+ b _02254200
+_022541FE:
+ add r6, r6, #1
+_02254200:
+ add r0, r5, #0
+ add r4, r4, #1
+ bl MOD11_0222FF84
+ cmp r4, r0
+ blt _022541DC
+_0225420C:
+ cmp r6, #0
+ beq _0225422A
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ beq _0225422A
+ ldr r0, _022542AC ; =0x0000030D
+ mov r1, #0xc3
+ strh r0, [r7, #2]
+ mov r0, #0
+ strb r0, [r7, #1]
+ add r0, r5, #0
+ bl MOD11_02231468
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_0225422A:
+ cmp r6, #0
+ beq _02254242
+ ldr r0, _022542AC ; =0x0000030D
+ mov r1, #0xc2
+ strh r0, [r7, #2]
+ mov r0, #0
+ strb r0, [r7, #1]
+ add r0, r5, #0
+ bl MOD11_02231468
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02254242:
+ add r0, r5, #0
+ bl MOD11_0222FF74
+ mov r1, #8
+ tst r0, r1
+ beq _0225426E
+ mov r0, #0xc6
+ lsl r0, r0, #2
+ strh r0, [r7, #2]
+ mov r0, #0x1a
+ strb r0, [r7, #1]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_0223022C
+ str r0, [r7, #4]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD11_0223022C
+ str r0, [r7, #8]
+ b _0225429E
+_0225426E:
+ add r0, r5, #0
+ bl MOD11_0222FF74
+ mov r1, #2
+ tst r0, r1
+ ldr r0, _022542B0 ; =0x00000317
+ beq _0225428E
+ strh r0, [r7, #2]
+ mov r0, #8
+ strb r0, [r7, #1]
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD11_0223022C
+ str r0, [r7, #4]
+ b _0225429E
+_0225428E:
+ strh r0, [r7, #2]
+ mov r0, #8
+ strb r0, [r7, #1]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_0223022C
+ str r0, [r7, #4]
+_0225429E:
+ add r0, r5, #0
+ mov r1, #0xc1
+ bl MOD11_02231468
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022542AC: .word 0x0000030D
+_022542B0: .word 0x00000317
+
+ thumb_func_start MOD11_022542B4
+MOD11_022542B4: ; 0x022542B4
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ mov r1, #0xef
+ add r4, r2, #0
+ lsl r1, r1, #2
+ strh r1, [r4, #2]
+ mov r1, #8
+ add r5, r0, #0
+ strb r1, [r4, #1]
+ bl MOD11_0222FF74
+ mov r1, #4
+ tst r0, r1
+ beq _022542F4
+ bl FUN_02031190
+ bl FUN_020313CC
+ cmp r0, #0
+ beq _022542E8
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD11_0223022C
+ str r0, [r4, #4]
+ b _022542FC
+_022542E8:
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD11_0223022C
+ str r0, [r4, #4]
+ b _022542FC
+_022542F4:
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldrb r0, [r6, r0]
+ str r0, [r4, #4]
+_022542FC:
+ add r0, r5, #0
+ mov r1, #0xc2
+ bl MOD11_02231468
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02254308
+MOD11_02254308: ; 0x02254308
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x58
+ str r0, [sp, #0x18]
+ str r1, [sp, #0x1c]
+ add r5, r2, #0
+ add r4, r3, #0
+ bl MOD11_02230078
+ add r7, r0, #0
+ ldr r0, [sp, #0x18]
+ bl MOD11_02230080
+ add r6, r0, #0
+ ldr r0, [sp, #0x18]
+ bl MOD11_022300CC
+ str r0, [sp, #0x20]
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _022543EC ; =0x00004E2F
+ add r3, r5, #0
+ add r0, r4, r0
+ str r0, [sp, #8]
+ add r0, r7, #0
+ add r1, r6, #0
+ mov r2, #0x1b
+ add r3, #0xc3
+ bl FUN_0200C00C
+ mov r0, #0x1b
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x2f
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, _022543F0 ; =0x00004E2A
+ mov r1, #2
+ add r0, r4, r0
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x20]
+ add r2, r7, #0
+ add r3, r6, #0
+ bl FUN_0200C0DC
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _022543F4 ; =0x00004E27
+ add r3, r5, #0
+ add r0, r4, r0
+ str r0, [sp, #4]
+ add r0, r7, #0
+ add r1, r6, #0
+ mov r2, #0x1b
+ add r3, #0xcb
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _022543F4 ; =0x00004E27
+ add r5, #0xd3
+ add r0, r4, r0
+ str r0, [sp, #4]
+ add r0, r7, #0
+ add r1, r6, #0
+ mov r2, #0x1b
+ add r3, r5, #0
+ bl FUN_0200C13C
+ ldr r5, _022543F8 ; =0x0225E89C
+ add r3, sp, #0x24
+ mov r2, #6
+_022543A0:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _022543A0
+ ldr r0, [r5]
+ ldr r1, _022543EC ; =0x00004E2F
+ str r0, [r3]
+ add r0, r4, r1
+ str r0, [sp, #0x38]
+ sub r0, r1, #5
+ add r0, r4, r0
+ sub r1, #8
+ str r0, [sp, #0x3c]
+ add r0, r4, r1
+ str r0, [sp, #0x40]
+ str r0, [sp, #0x44]
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, sp, #0x24
+ bl FUN_0200C154
+ ldr r1, [sp, #0x1c]
+ mov r2, #6
+ add r3, r1, #0
+ mul r3, r2
+ ldr r1, _022543FC ; =0x0222D550
+ ldr r2, _02254400 ; =0x0222D552
+ ldrsh r1, [r1, r3]
+ ldrsh r2, [r2, r3]
+ add r4, r0, #0
+ bl FUN_0200C714
+ add r0, r4, #0
+ bl FUN_0200C5A8
+ add r0, r4, #0
+ add sp, #0x58
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022543EC: .word 0x00004E2F
+_022543F0: .word 0x00004E2A
+_022543F4: .word 0x00004E27
+_022543F8: .word 0x0225E89C
+_022543FC: .word 0x0222D550
+_02254400: .word 0x0222D552
+
+ thumb_func_start MOD11_02254404
+MOD11_02254404: ; 0x02254404
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xac
+ str r0, [sp]
+ ldr r0, [r3, #0x4c]
+ str r1, [sp, #4]
+ str r2, [sp, #8]
+ str r3, [sp, #0xc]
+ cmp r0, #0
+ bne _02254422
+ mov r0, #8
+ str r0, [sp, #0x84]
+ add r0, r3, #0
+ ldrh r0, [r0, #2]
+ str r0, [sp, #0x18]
+ b _0225442C
+_02254422:
+ mov r0, #0x3f
+ str r0, [sp, #0x84]
+ add r0, r3, #0
+ ldr r0, [r0, #0x50]
+ str r0, [sp, #0x18]
+_0225442C:
+ ldr r0, [sp]
+ bl MOD11_0222FF68
+ str r0, [sp, #0x20]
+ ldr r0, [sp]
+ bl MOD11_022300CC
+ str r0, [sp, #0x24]
+ ldr r0, [sp]
+ bl MOD11_02230078
+ add r5, sp, #0x1c
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0xc]
+ mov r4, #0
+ str r0, [sp, #0x14]
+ str r5, [sp, #0x10]
+ add r6, r5, #0
+ add r7, r0, #0
+_02254452:
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_022312D0
+ str r0, [r5, #0xc]
+ ldr r0, [sp, #0x14]
+ ldrh r1, [r0, #0x18]
+ ldr r0, [sp, #0x10]
+ strh r1, [r0, #0x34]
+ ldr r0, [sp, #0xc]
+ add r0, r0, r4
+ add r0, #0x20
+ ldrb r1, [r0]
+ add r0, r6, #0
+ add r0, #0x3c
+ strb r1, [r0]
+ ldr r0, [sp, #0xc]
+ add r0, r0, r4
+ add r0, #0x24
+ ldrb r1, [r0]
+ add r0, r6, #0
+ add r0, #0x40
+ strb r1, [r0]
+ ldr r0, [sp, #0xc]
+ add r0, r0, r4
+ add r0, #0x28
+ ldrb r1, [r0]
+ add r0, r6, #0
+ add r0, #0x44
+ strb r1, [r0]
+ ldr r0, [r7, #0x2c]
+ add r4, r4, #1
+ str r0, [r5, #0x48]
+ ldr r0, [r7, #0x3c]
+ add r6, r6, #1
+ str r0, [r5, #0x58]
+ ldr r0, [sp, #0x14]
+ add r5, r5, #4
+ add r0, r0, #2
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x10]
+ add r7, r7, #4
+ add r0, r0, #2
+ str r0, [sp, #0x10]
+ cmp r4, #4
+ blt _02254452
+ ldr r0, [sp]
+ add r1, sp, #0x38
+ bl MOD11_02231504
+ ldr r0, [sp]
+ add r1, sp, #0x3c
+ bl MOD11_02231534
+ ldr r0, [sp]
+ bl MOD11_0222FF74
+ mov r2, #0x65
+ str r0, [sp, #0x4c]
+ ldr r1, [sp, #4]
+ lsl r2, r2, #2
+ ldrb r1, [r1, r2]
+ ldr r0, [sp]
+ bl MOD11_02230E88
+ str r0, [sp, #0xa0]
+ ldr r0, [sp]
+ bl MOD11_02231228
+ str r0, [sp, #0xa4]
+ ldr r0, [sp]
+ bl MOD11_02231230
+ str r0, [sp, #0xa8]
+ mov r0, #7
+ str r0, [sp, #0x88]
+ ldr r0, [sp]
+ bl MOD11_022302A8
+ add r0, r0, #3
+ str r0, [sp, #0x8c]
+ ldr r0, [sp]
+ bl MOD11_02230C68
+ add r4, r0, #0
+ ldr r0, [sp]
+ bl MOD11_022302A8
+ lsl r1, r0, #1
+ add r0, r0, r1
+ add r0, #0x9e
+ add r0, r4, r0
+ str r0, [sp, #0x90]
+ mov r0, #2
+ str r0, [sp, #0x94]
+ mov r0, #0
+ ldr r2, [sp, #0x18]
+ str r0, [sp, #0x98]
+ mov r0, #8
+ str r0, [sp, #0x9c]
+ lsl r2, r2, #0x10
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ lsr r2, r2, #0x10
+ add r3, sp, #0x1c
+ bl MOD08_02212048
+ add sp, #0xac
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0225452C
+MOD11_0225452C: ; 0x0225452C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r6, r2, #0
+ add r7, r1, #0
+ str r3, [r6]
+ str r0, [sp]
+ str r3, [r6, #4]
+ mov r4, #0
+ add r5, r6, #0
+ str r7, [sp, #0xc]
+ str r6, [sp, #8]
+ str r7, [sp, #4]
+_02254544:
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD11_022312D0
+ str r0, [r5, #8]
+ ldr r0, [sp, #0xc]
+ ldrh r1, [r0, #0x18]
+ ldr r0, [sp, #8]
+ strh r1, [r0, #0x28]
+ add r0, r7, r4
+ add r0, #0x20
+ ldrb r1, [r0]
+ add r0, r6, r4
+ add r0, #0x30
+ strb r1, [r0]
+ add r0, r7, r4
+ add r0, #0x24
+ ldrb r1, [r0]
+ add r0, r6, r4
+ add r0, #0x34
+ strb r1, [r0]
+ add r0, r7, r4
+ add r0, #0x28
+ ldrb r1, [r0]
+ add r0, r6, r4
+ add r0, #0x38
+ strb r1, [r0]
+ ldr r0, [sp, #4]
+ add r4, r4, #1
+ ldr r0, [r0, #0x2c]
+ str r0, [r5, #0x3c]
+ ldr r0, [sp, #0xc]
+ add r5, r5, #4
+ add r0, r0, #2
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #8]
+ add r0, r0, #2
+ str r0, [sp, #8]
+ ldr r0, [sp, #4]
+ add r0, r0, #4
+ str r0, [sp, #4]
+ cmp r4, #4
+ blt _02254544
+ add r1, r6, #0
+ ldr r0, [sp]
+ add r1, #0x4c
+ bl MOD11_02231504
+ add r6, #0x18
+ ldr r0, [sp]
+ add r1, r6, #0
+ bl MOD11_02231534
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022545B4
+MOD11_022545B4: ; 0x022545B4
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ cmp r2, #0
+ bne _022545F2
+ add r0, sp, #0
+ ldrh r6, [r0, #0x10]
+ mov r1, #9
+ add r0, r6, #0
+ bl GetWazaAttr
+ mov r1, #0x40
+ tst r0, r1
+ bne _022545D4
+ mov r0, #1
+ b _022545D6
+_022545D4:
+ mov r0, #0
+_022545D6:
+ strb r0, [r4]
+ add r0, r6, #0
+ mov r1, #9
+ bl GetWazaAttr
+ mov r1, #0x80
+ tst r0, r1
+ beq _022545EC
+ mov r0, #1
+ strb r0, [r5]
+ pop {r4, r5, r6, pc}
+_022545EC:
+ mov r0, #0
+ strb r0, [r5]
+ pop {r4, r5, r6, pc}
+_022545F2:
+ sub r3, #0x12
+ cmp r3, #0x15
+ bhi _02254642
+ add r0, r3, r3
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02254604: ; jump table
+ .short _02254630 - _02254604 - 2 ; case 0
+ .short _02254630 - _02254604 - 2 ; case 1
+ .short _02254630 - _02254604 - 2 ; case 2
+ .short _02254630 - _02254604 - 2 ; case 3
+ .short _02254630 - _02254604 - 2 ; case 4
+ .short _02254642 - _02254604 - 2 ; case 5
+ .short _02254642 - _02254604 - 2 ; case 6
+ .short _02254642 - _02254604 - 2 ; case 7
+ .short _02254642 - _02254604 - 2 ; case 8
+ .short _02254642 - _02254604 - 2 ; case 9
+ .short _02254642 - _02254604 - 2 ; case 10
+ .short _02254642 - _02254604 - 2 ; case 11
+ .short _02254642 - _02254604 - 2 ; case 12
+ .short _02254630 - _02254604 - 2 ; case 13
+ .short _02254630 - _02254604 - 2 ; case 14
+ .short _02254642 - _02254604 - 2 ; case 15
+ .short _02254630 - _02254604 - 2 ; case 16
+ .short _02254630 - _02254604 - 2 ; case 17
+ .short _0225463A - _02254604 - 2 ; case 18
+ .short _02254630 - _02254604 - 2 ; case 19
+ .short _0225463A - _02254604 - 2 ; case 20
+ .short _02254630 - _02254604 - 2 ; case 21
+_02254630:
+ mov r0, #1
+ strb r0, [r4]
+ mov r0, #0
+ strb r0, [r5]
+ pop {r4, r5, r6, pc}
+_0225463A:
+ mov r0, #1
+ strb r0, [r4]
+ strb r0, [r5]
+ pop {r4, r5, r6, pc}
+_02254642:
+ mov r0, #0
+ strb r0, [r4]
+ strb r0, [r5]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225464C
+MOD11_0225464C: ; 0x0225464C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x66
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _02254680
+ add r0, r1, #0
+ bl MOD11_0222FF74
+ mov r1, #0x22
+ lsl r1, r1, #4
+ tst r0, r1
+ bne _02254680
+ mov r1, #0xb4
+ add r0, r1, #0
+ add r0, #0xe8
+ strh r1, [r4, r0]
+ ldr r0, _02254684 ; =MOD11_022546B4
+ ldr r2, _02254688 ; =0x000003F2
+ add r1, r4, #0
+ bl FUN_0200CA44
+ mov r1, #0x66
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+_02254680:
+ pop {r4, pc}
+ nop
+_02254684: .word MOD11_022546B4
+_02254688: .word 0x000003F2
+
+ thumb_func_start MOD11_0225468C
+MOD11_0225468C: ; 0x0225468C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x66
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _022546B2
+ bl FUN_0200CAB4
+ mov r0, #0x66
+ mov r2, #0
+ lsl r0, r0, #2
+ str r2, [r4, r0]
+ add r0, r0, #4
+ strh r2, [r4, r0]
+ ldr r0, [r4, #0x20]
+ mov r1, #4
+ bl FUN_02007558
+_022546B2:
+ pop {r4, pc}
+
+ thumb_func_start MOD11_022546B4
+MOD11_022546B4: ; 0x022546B4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r1, #0x67
+ lsl r1, r1, #2
+ ldrh r0, [r4, r1]
+ add r0, #0x14
+ strh r0, [r4, r1]
+ add r0, r1, #0
+ ldrh r2, [r4, r1]
+ sub r0, #0x34
+ cmp r2, r0
+ blo _022546D4
+ add r0, r1, #0
+ sub r0, #0x34
+ sub r0, r2, r0
+ strh r0, [r4, r1]
+_022546D4:
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldrh r0, [r4, r0]
+ bl Sin
+ mov r2, #6
+ asr r1, r0, #0x1f
+ lsl r2, r2, #0xa
+ mov r3, #0
+ bl _ll_mul
+ add r2, r1, #0
+ mov r1, #4
+ add r5, r0, #0
+ ldr r0, [r4, #0x20]
+ mov r4, #0
+ lsl r3, r1, #9
+ add r3, r5, r3
+ adc r2, r4
+ lsl r2, r2, #0x14
+ lsr r3, r3, #0xc
+ orr r3, r2
+ asr r2, r3, #0xb
+ lsr r2, r2, #0x14
+ add r2, r3, r2
+ asr r2, r2, #0xc
+ bl FUN_02007558
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02254710
+MOD11_02254710: ; 0x02254710
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r0, #0
+ str r1, [sp]
+ str r2, [sp, #4]
+ add r6, r3, #0
+ bl MOD11_022300DC
+ add r4, r0, #0
+ add r0, r7, #0
+ bl MOD11_02230118
+ add r5, r0, #0
+ add r0, r7, #0
+ bl MOD11_02230124
+ add r7, r0, #0
+ add r0, sp, #0x10
+ ldrh r2, [r5]
+ ldrb r3, [r0, #0x10]
+ add r0, r2, #5
+ add r1, r0, r3
+ mov r0, #1
+ lsl r0, r0, #0xc
+ cmp r1, r0
+ bls _0225474A
+ strh r2, [r7]
+ mov r0, #0
+ strh r0, [r5]
+_0225474A:
+ ldr r1, [sp]
+ add r0, sp, #8
+ strb r1, [r0]
+ ldr r1, [sp, #4]
+ strb r1, [r0, #1]
+ add r1, sp, #0x10
+ ldrb r1, [r1, #0x10]
+ strh r1, [r0, #2]
+ add r1, sp, #8
+ mov r0, #0
+_0225475E:
+ ldrb r7, [r1, r0]
+ ldrh r2, [r5]
+ add r0, r0, #1
+ strb r7, [r4, r2]
+ ldrh r2, [r5]
+ add r2, r2, #1
+ strh r2, [r5]
+ cmp r0, #4
+ blo _0225475E
+ mov r0, #0
+ cmp r3, #0
+ ble _02254788
+_02254776:
+ ldrb r2, [r6, r0]
+ ldrh r1, [r5]
+ add r0, r0, #1
+ strb r2, [r4, r1]
+ ldrh r1, [r5]
+ add r1, r1, #1
+ strh r1, [r5]
+ cmp r0, r3
+ blt _02254776
+_02254788:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0225478C
+MOD11_0225478C: ; 0x0225478C
+ push {r3, r4, r5, r6, r7, lr}
+ add r3, r1, #0
+ ldrb r6, [r3, #3]
+ ldrb r1, [r3]
+ ldrb r7, [r3, #2]
+ lsl r6, r6, #8
+ add r5, r0, #0
+ mov r2, #0
+ orr r6, r7
+ ldrb r4, [r3, #1]
+ cmp r1, #0
+ bne _022547D2
+ ldr r0, [r5, #0x30]
+ lsl r1, r4, #8
+ add r4, r0, r1
+ mov r0, #0x23
+ lsl r0, r0, #8
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _0225481C
+ cmp r6, #0
+ ble _022547CE
+ mov r4, #0x23
+ lsl r4, r4, #8
+_022547BC:
+ add r0, r3, r2
+ ldr r7, [r5, #0x30]
+ ldrb r0, [r0, #4]
+ add r7, r1, r7
+ add r7, r2, r7
+ add r2, r2, #1
+ strb r0, [r7, r4]
+ cmp r2, r6
+ blt _022547BC
+_022547CE:
+ mov r2, #1
+ b _0225481C
+_022547D2:
+ cmp r1, #1
+ bne _022547FE
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r1, [r0, #0x34]
+ add r1, #0x94
+ ldrb r1, [r1]
+ cmp r1, #0
+ bne _0225481C
+ cmp r6, #0
+ ble _022547FA
+_022547E8:
+ add r1, r3, r2
+ ldrb r4, [r1, #4]
+ ldr r1, [r0, #0x34]
+ add r1, r1, r2
+ add r1, #0x94
+ add r2, r2, #1
+ strb r4, [r1]
+ cmp r2, r6
+ blt _022547E8
+_022547FA:
+ mov r2, #1
+ b _0225481C
+_022547FE:
+ cmp r1, #2
+ bne _0225481C
+ ldrb r7, [r3, #4]
+ ldrb r6, [r3, #5]
+ bl MOD11_02230DD4
+ cmp r0, #0
+ beq _0225481A
+ ldr r0, [r5, #0x30]
+ add r1, r6, #0
+ add r2, r4, #0
+ add r3, r7, #0
+ bl MOD11_02243340
+_0225481A:
+ mov r2, #1
+_0225481C:
+ add r0, r2, #0
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02254820
+MOD11_02254820: ; 0x02254820
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ bl MOD11_022300DC
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD11_0223010C
+ add r5, r0, #0
+ add r0, r6, #0
+ bl MOD11_02230118
+ add r7, r0, #0
+ add r0, r6, #0
+ bl MOD11_02230124
+ ldrh r1, [r5]
+ ldrh r2, [r7]
+ cmp r1, r2
+ beq _02254876
+ ldrh r2, [r0]
+ cmp r1, r2
+ bne _02254854
+ mov r1, #0
+ strh r1, [r5]
+ strh r1, [r0]
+_02254854:
+ ldrh r1, [r5]
+ add r0, r6, #0
+ add r1, r4, r1
+ bl MOD11_0225478C
+ cmp r0, #1
+ bne _02254876
+ ldrh r0, [r5]
+ add r1, r0, #2
+ ldrb r2, [r4, r1]
+ add r1, r0, #3
+ ldrb r1, [r4, r1]
+ lsl r1, r1, #8
+ orr r1, r2
+ add r1, r1, #4
+ add r0, r0, r1
+ strh r0, [r5]
+_02254876:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02254878
+MOD11_02254878: ; 0x02254878
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ str r1, [sp, #4]
+ ldr r1, [r5, #0x2c]
+ mov r0, #4
+ add r7, r2, #0
+ add r6, r3, #0
+ tst r0, r1
+ beq _022548C8
+ ldr r0, [sp, #4]
+ cmp r0, #1
+ bne _022548B2
+ mov r4, #0
+ bl FUN_02030F20
+ cmp r0, #0
+ ble _022548B2
+_0225489C:
+ ldrb r3, [r6]
+ ldr r0, [r5, #0x30]
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD11_02243304
+ add r4, r4, #1
+ bl FUN_02030F20
+ cmp r4, r0
+ blt _0225489C
+_022548B2:
+ add r0, sp, #0x10
+ ldrb r0, [r0, #0x10]
+ ldr r1, [sp, #4]
+ add r2, r7, #0
+ str r0, [sp]
+ add r0, r5, #0
+ add r3, r6, #0
+ bl FUN_0206C0C8
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_022548C8:
+ ldr r0, [sp, #4]
+ cmp r0, #1
+ bne _022548D8
+ ldrb r3, [r6]
+ ldr r0, [r5, #0x30]
+ mov r1, #0
+ bl MOD11_02243304
+_022548D8:
+ add r0, sp, #0x10
+ ldrb r0, [r0, #0x10]
+ ldr r1, [sp, #4]
+ add r2, r7, #0
+ str r0, [sp]
+ add r0, r5, #0
+ add r3, r6, #0
+ bl MOD11_02254710
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022548F0
+MOD11_022548F0: ; 0x022548F0
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r3, #4
+ str r3, [sp]
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+
+ thumb_func_start MOD11_02254908
+MOD11_02254908: ; 0x02254908
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x48
+ add r7, r1, #0
+ mov r3, #2
+ add r2, sp, #0xc
+ strb r3, [r2]
+ mov r2, #0xc0
+ add r4, r7, #0
+ mul r4, r2
+ add r2, sp, #0xc
+ ldrb r2, [r2, #1]
+ mov r3, #3
+ add r6, r0, #0
+ str r2, [sp, #4]
+ bic r2, r3
+ str r2, [sp, #4]
+ ldr r2, [r6, #0x30]
+ add r3, r2, r4
+ ldr r2, _02254A04 ; =0x00002DBE
+ str r2, [sp, #8]
+ ldrb r2, [r3, r2]
+ lsl r2, r2, #0x1c
+ lsr r3, r2, #0x1c
+ mov r2, #3
+ and r3, r2
+ ldr r2, [sp, #4]
+ orr r3, r2
+ add r2, sp, #0xc
+ strb r3, [r2, #1]
+ ldrb r3, [r2, #1]
+ mov r2, #4
+ bic r3, r2
+ ldr r2, [r6, #0x30]
+ add r5, r2, r4
+ ldr r2, [sp, #8]
+ sub r2, #0x58
+ ldrb r2, [r5, r2]
+ lsl r2, r2, #0x1a
+ lsr r2, r2, #0x1f
+ lsl r2, r2, #0x1f
+ lsr r2, r2, #0x1d
+ orr r3, r2
+ add r2, sp, #0xc
+ strb r3, [r2, #1]
+ ldr r2, [r6, #0x30]
+ add r3, r2, r4
+ ldr r2, [sp, #8]
+ sub r2, #0x7e
+ ldrh r3, [r3, r2]
+ add r2, sp, #0xc
+ strh r3, [r2, #2]
+ ldr r2, [r6, #0x30]
+ add r3, r2, r4
+ ldr r2, [sp, #8]
+ sub r2, #0x16
+ str r2, [sp, #8]
+ ldr r2, [r3, r2]
+ str r2, [sp, #0x10]
+ bl MOD11_02230260
+ add r2, r0, #0
+ ldr r0, [r6, #0x30]
+ add r1, r7, #0
+ mov r3, #1
+ bl MOD11_0224ACAC
+ add r2, sp, #0xc
+ str r0, [sp, #0x14]
+ ldrb r0, [r2, #1]
+ mov r1, #0xf8
+ add r5, sp, #0xc
+ bic r0, r1
+ ldr r1, [r6, #0x30]
+ add r3, r1, r4
+ ldr r1, _02254A08 ; =0x00002D66
+ mov r4, #0
+ ldrb r1, [r3, r1]
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x1b
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x18
+ orr r0, r1
+ strb r0, [r2, #1]
+_022549AE:
+ ldr r0, [r6, #0x30]
+ add r1, r7, #0
+ add r2, r4, #6
+ mov r3, #0
+ bl MOD11_02243420
+ strh r0, [r5, #0xc]
+ add r2, r4, #0
+ ldr r0, [r6, #0x30]
+ add r1, r7, #0
+ add r2, #0x1f
+ mov r3, #0
+ bl MOD11_02243420
+ strh r0, [r5, #0x14]
+ add r2, r4, #0
+ ldr r0, [r6, #0x30]
+ add r1, r7, #0
+ add r2, #0x27
+ mov r3, #0
+ bl MOD11_02243420
+ strh r0, [r5, #0x1c]
+ add r4, r4, #1
+ add r5, r5, #2
+ cmp r4, #4
+ blt _022549AE
+ ldr r0, [r6, #0x30]
+ add r1, r7, #0
+ mov r2, #0x2d
+ add r3, sp, #0x30
+ bl MOD11_02243420
+ mov r0, #0x3c
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #1
+ add r2, r7, #0
+ add r3, sp, #0xc
+ bl MOD11_02254878
+ add sp, #0x48
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254A04: .word 0x00002DBE
+_02254A08: .word 0x00002D66
+
+ thumb_func_start MOD11_02254A0C
+MOD11_02254A0C: ; 0x02254A0C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x7c
+ add r7, r1, #0
+ mov r3, #3
+ add r2, sp, #8
+ strb r3, [r2]
+ mov r2, #0xc0
+ add r4, r7, #0
+ mul r4, r2
+ add r2, sp, #8
+ ldrb r5, [r2, #1]
+ mov r2, #3
+ add r6, r0, #0
+ bic r5, r2
+ ldr r2, [r6, #0x30]
+ add r3, r2, r4
+ ldr r2, _02254B34 ; =0x00002DBE
+ str r2, [sp, #4]
+ ldrb r2, [r3, r2]
+ lsl r2, r2, #0x1c
+ lsr r3, r2, #0x1c
+ mov r2, #3
+ and r2, r3
+ add r3, r5, #0
+ orr r3, r2
+ add r2, sp, #8
+ strb r3, [r2, #1]
+ ldrb r3, [r2, #1]
+ mov r2, #4
+ bic r3, r2
+ ldr r2, [r6, #0x30]
+ add r5, r2, r4
+ ldr r2, [sp, #4]
+ sub r2, #0x58
+ ldrb r2, [r5, r2]
+ lsl r2, r2, #0x1a
+ lsr r2, r2, #0x1f
+ lsl r2, r2, #0x1f
+ lsr r2, r2, #0x1d
+ orr r3, r2
+ add r2, sp, #8
+ strb r3, [r2, #1]
+ ldr r2, [r6, #0x30]
+ add r3, r2, r4
+ ldr r2, [sp, #4]
+ sub r2, #0x7e
+ ldrh r3, [r3, r2]
+ add r2, sp, #8
+ strh r3, [r2, #2]
+ ldr r2, [r6, #0x30]
+ add r3, r2, r4
+ ldr r2, [sp, #4]
+ sub r2, #0x16
+ str r2, [sp, #4]
+ ldr r2, [r3, r2]
+ str r2, [sp, #0xc]
+ bl MOD11_02230260
+ add r2, r0, #0
+ ldr r0, [r6, #0x30]
+ add r1, r7, #0
+ mov r3, #1
+ bl MOD11_0224ACAC
+ str r0, [sp, #0x10]
+ ldr r0, [r6, #0x30]
+ add r2, sp, #8
+ add r1, r0, r7
+ ldr r0, _02254B38 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ mov r1, #0xf8
+ str r0, [sp, #0x14]
+ ldrb r0, [r2, #1]
+ bic r0, r1
+ ldr r1, [r6, #0x30]
+ add r3, r1, r4
+ ldr r1, _02254B3C ; =0x00002D66
+ ldrb r3, [r3, r1]
+ add r1, #0x59
+ lsl r3, r3, #0x1b
+ lsr r3, r3, #0x1b
+ lsl r3, r3, #0x1b
+ lsr r3, r3, #0x18
+ orr r0, r3
+ strb r0, [r2, #1]
+ ldr r0, [r6, #0x30]
+ add r0, r0, r4
+ ldrb r0, [r0, r1]
+ add r1, r7, #0
+ str r0, [sp, #0x18]
+ add r0, r6, #0
+ bl MOD11_022302BC
+ ldr r1, [r6, #0x30]
+ ldr r2, [sp, #0x14]
+ add r1, r1, r0
+ ldr r0, _02254B38 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ add r1, r7, #0
+ str r0, [sp, #0x50]
+ add r0, r6, #0
+ bl MOD11_02230F6C
+ mov r4, #0
+ add r5, sp, #8
+_02254ADE:
+ ldr r0, [r6, #0x30]
+ add r1, r7, #0
+ add r2, r4, #6
+ mov r3, #0
+ bl MOD11_02243420
+ strh r0, [r5, #0x18]
+ add r2, r4, #0
+ ldr r0, [r6, #0x30]
+ add r1, r7, #0
+ add r2, #0x1f
+ mov r3, #0
+ bl MOD11_02243420
+ strh r0, [r5, #0x20]
+ add r2, r4, #0
+ ldr r0, [r6, #0x30]
+ add r1, r7, #0
+ add r2, #0x27
+ mov r3, #0
+ bl MOD11_02243420
+ strh r0, [r5, #0x28]
+ add r4, r4, #1
+ add r5, r5, #2
+ cmp r4, #4
+ blt _02254ADE
+ ldr r0, [r6, #0x30]
+ add r1, r7, #0
+ mov r2, #0x2d
+ add r3, sp, #0x38
+ bl MOD11_02243420
+ mov r0, #0x74
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #1
+ add r2, r7, #0
+ add r3, sp, #8
+ bl MOD11_02254878
+ add sp, #0x7c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254B34: .word 0x00002DBE
+_02254B38: .word 0x0000219C
+_02254B3C: .word 0x00002D66
+
+ thumb_func_start MOD11_02254B40
+MOD11_02254B40: ; 0x02254B40
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x84
+ add r7, r1, #0
+ add r4, r0, #0
+ mov r1, #4
+ add r6, sp, #0x10
+ strb r1, [r6]
+ mov r0, #0xc0
+ add r5, r7, #0
+ mul r5, r0
+ ldr r0, [r4, #0x30]
+ str r2, [sp, #4]
+ add r2, r0, r5
+ ldr r0, _02254D34 ; =0x00002DB0
+ str r3, [sp, #8]
+ ldr r3, [r2, r0]
+ lsl r1, r1, #0x13
+ tst r1, r3
+ ldrb r1, [r6, #1]
+ beq _02254B8A
+ mov r3, #3
+ bic r1, r3
+ add r3, r0, #0
+ add r3, #0x4a
+ ldrh r2, [r2, r3]
+ add r0, #0x34
+ lsl r2, r2, #0x18
+ lsr r3, r2, #0x18
+ mov r2, #3
+ and r2, r3
+ orr r1, r2
+ strb r1, [r6, #1]
+ ldr r1, [r4, #0x30]
+ add r1, r1, r5
+ ldr r0, [r1, r0]
+ str r0, [sp, #0x14]
+ b _02254BAA
+_02254B8A:
+ mov r3, #3
+ bic r1, r3
+ add r3, r0, #0
+ add r3, #0xe
+ ldrb r2, [r2, r3]
+ sub r0, #8
+ lsl r2, r2, #0x1c
+ lsr r3, r2, #0x1c
+ mov r2, #3
+ and r2, r3
+ orr r1, r2
+ strb r1, [r6, #1]
+ ldr r1, [r4, #0x30]
+ add r1, r1, r5
+ ldr r0, [r1, r0]
+ str r0, [sp, #0x14]
+_02254BAA:
+ mov r0, #0xc0
+ add r6, r7, #0
+ add r3, sp, #0x10
+ mul r6, r0
+ ldrb r0, [r3, #1]
+ mov r1, #4
+ bic r0, r1
+ ldr r1, [r4, #0x30]
+ add r2, r1, r6
+ ldr r1, _02254D38 ; =0x00002D66
+ ldrb r2, [r2, r1]
+ sub r1, #0x26
+ lsl r2, r2, #0x1a
+ lsr r2, r2, #0x1f
+ lsl r2, r2, #0x1f
+ lsr r2, r2, #0x1d
+ orr r0, r2
+ strb r0, [r3, #1]
+ ldr r0, [r4, #0x30]
+ add r0, r0, r6
+ ldrh r0, [r0, r1]
+ add r1, r7, #0
+ strh r0, [r3, #2]
+ add r0, r4, #0
+ bl MOD11_02230260
+ add r2, r0, #0
+ ldr r0, [r4, #0x30]
+ add r1, r7, #0
+ mov r3, #0
+ bl MOD11_0224ACAC
+ str r0, [sp, #0x18]
+ ldr r0, [r4, #0x30]
+ mov r2, #0xf8
+ add r1, r0, r7
+ ldr r0, _02254D3C ; =0x0000219C
+ ldrb r0, [r1, r0]
+ str r0, [sp, #0x1c]
+ add r0, sp, #0x10
+ ldrb r1, [r0, #1]
+ bic r1, r2
+ ldr r2, [r4, #0x30]
+ add r3, r2, r6
+ ldr r2, _02254D38 ; =0x00002D66
+ ldrb r3, [r3, r2]
+ lsl r3, r3, #0x1b
+ lsr r3, r3, #0x1b
+ lsl r3, r3, #0x1b
+ lsr r3, r3, #0x18
+ orr r1, r3
+ strb r1, [r0, #1]
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ beq _02254C1C
+ str r0, [sp, #0x20]
+ b _02254C26
+_02254C1C:
+ ldr r0, [r4, #0x30]
+ add r2, #0x59
+ add r0, r0, r5
+ ldrb r0, [r0, r2]
+ str r0, [sp, #0x20]
+_02254C26:
+ ldr r0, [sp, #8]
+ str r0, [sp, #0x24]
+ ldr r0, [r4, #0x30]
+ add r1, r0, r5
+ ldr r0, _02254D34 ; =0x00002DB0
+ ldr r1, [r1, r0]
+ mov r0, #1
+ lsl r0, r0, #0x18
+ tst r0, r1
+ beq _02254C3E
+ mov r0, #1
+ b _02254C40
+_02254C3E:
+ mov r0, #0
+_02254C40:
+ ldr r2, [sp, #0x1c]
+ str r0, [sp, #0x5c]
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD11_02230F6C
+ mov r6, #0
+ add r5, sp, #0x10
+_02254C50:
+ ldr r0, [r4, #0x30]
+ add r1, r7, #0
+ add r2, r6, #6
+ mov r3, #0
+ bl MOD11_02243420
+ strh r0, [r5, #0x18]
+ add r2, r6, #0
+ ldr r0, [r4, #0x30]
+ add r1, r7, #0
+ add r2, #0x1f
+ mov r3, #0
+ bl MOD11_02243420
+ strh r0, [r5, #0x20]
+ add r2, r6, #0
+ ldr r0, [r4, #0x30]
+ add r1, r7, #0
+ add r2, #0x27
+ mov r3, #0
+ bl MOD11_02243420
+ strh r0, [r5, #0x28]
+ add r6, r6, #1
+ add r5, r5, #2
+ cmp r6, #4
+ blt _02254C50
+ ldr r0, [r4, #0x30]
+ add r1, r7, #0
+ mov r2, #0x2d
+ add r3, sp, #0x40
+ bl MOD11_02243420
+ add r3, sp, #0x10
+ mov r2, #0
+ mov ip, r2
+ str r3, [sp, #0xc]
+ add r5, r3, #0
+_02254C9C:
+ ldr r0, [r4, #0x30]
+ add r1, r0, r2
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldrh r1, [r1, r0]
+ ldr r0, [sp, #0xc]
+ add r0, #0x50
+ strh r1, [r0]
+ ldr r0, [r4, #0x30]
+ add r1, r0, r2
+ ldr r0, _02254D38 ; =0x00002D66
+ ldrb r0, [r1, r0]
+ lsl r0, r0, #0x1a
+ lsr r1, r0, #0x1f
+ add r0, r3, #0
+ add r0, #0x5c
+ strb r1, [r0]
+ ldr r0, [r4, #0x30]
+ add r1, r0, r2
+ ldr r0, _02254D38 ; =0x00002D66
+ ldrb r0, [r1, r0]
+ lsl r0, r0, #0x1b
+ lsr r1, r0, #0x1b
+ add r0, r3, #0
+ add r0, #0x60
+ strb r1, [r0]
+ ldr r0, [r4, #0x30]
+ add r6, r0, r2
+ ldr r0, _02254D34 ; =0x00002DB0
+ ldr r1, [r6, r0]
+ mov r0, #2
+ lsl r0, r0, #0x14
+ tst r0, r1
+ beq _02254CF2
+ ldr r0, _02254D40 ; =0x00002DFA
+ ldrh r1, [r6, r0]
+ add r0, r3, #0
+ add r0, #0x58
+ strb r1, [r0]
+ ldr r0, [r4, #0x30]
+ add r1, r0, r2
+ ldr r0, _02254D44 ; =0x00002DE4
+ b _02254D06
+_02254CF2:
+ ldr r0, _02254D48 ; =0x00002DBE
+ ldrb r0, [r6, r0]
+ lsl r0, r0, #0x1c
+ lsr r1, r0, #0x1c
+ add r0, r3, #0
+ add r0, #0x58
+ strb r1, [r0]
+ ldr r0, [r4, #0x30]
+ add r1, r0, r2
+ ldr r0, _02254D4C ; =0x00002DA8
+_02254D06:
+ ldr r0, [r1, r0]
+ add r2, #0xc0
+ str r0, [r5, #0x64]
+ ldr r0, [sp, #0xc]
+ add r3, r3, #1
+ add r0, r0, #2
+ str r0, [sp, #0xc]
+ mov r0, ip
+ add r0, r0, #1
+ add r5, r5, #4
+ mov ip, r0
+ cmp r0, #4
+ blt _02254C9C
+ mov r0, #0x74
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #1
+ add r2, r7, #0
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ add sp, #0x84
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254D34: .word 0x00002DB0
+_02254D38: .word 0x00002D66
+_02254D3C: .word 0x0000219C
+_02254D40: .word 0x00002DFA
+_02254D44: .word 0x00002DE4
+_02254D48: .word 0x00002DBE
+_02254D4C: .word 0x00002DA8
+
+ thumb_func_start MOD11_02254D50
+MOD11_02254D50: ; 0x02254D50
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r4, r1, #0
+ lsl r1, r2, #2
+ str r0, [sp, #4]
+ add r0, r0, r1
+ ldr r1, [r0, #0x34]
+ ldr r0, _02254E8C ; =0x00000195
+ str r2, [sp, #8]
+ ldrb r1, [r1, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _02254D6E
+ mov r2, #2
+ b _02254D70
+_02254D6E:
+ mov r2, #0
+_02254D70:
+ ldr r0, [sp, #8]
+ mov r1, #0xc0
+ add r5, r0, #0
+ ldr r0, [sp, #4]
+ mul r5, r1
+ ldr r0, [r0, #0x30]
+ ldr r3, _02254E90 ; =0x00002D66
+ add r0, r0, r5
+ ldrb r0, [r0, r3]
+ mov r1, #5
+ lsl r0, r0, #0x1b
+ lsr r7, r0, #0x1b
+ add r0, sp, #0xc
+ strb r1, [r0]
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x30]
+ add r1, r0, r5
+ add r0, r3, #0
+ add r0, #0x4a
+ ldr r6, [r1, r0]
+ mov r0, #2
+ lsl r0, r0, #0x14
+ tst r0, r6
+ beq _02254DC4
+ add r0, r3, #0
+ add r0, #0x7e
+ ldr r0, [r1, r0]
+ lsl r2, r2, #0x18
+ str r0, [sp]
+ add r0, r3, #0
+ sub r0, #0x26
+ add r3, #0x94
+ ldrh r0, [r1, r0]
+ ldrh r1, [r1, r3]
+ lsl r3, r7, #0x18
+ lsr r2, r2, #0x18
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02068E88
+ b _02254DE6
+_02254DC4:
+ add r0, r3, #0
+ add r0, #0x42
+ ldr r0, [r1, r0]
+ lsl r2, r2, #0x18
+ str r0, [sp]
+ add r0, r3, #0
+ sub r0, #0x26
+ add r3, #0x58
+ ldrh r0, [r1, r0]
+ ldrb r1, [r1, r3]
+ lsl r3, r7, #0x18
+ lsr r2, r2, #0x18
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ lsr r3, r3, #0x18
+ bl FUN_02068E88
+_02254DE6:
+ add r1, sp, #0xc
+ strb r0, [r1, #1]
+ ldr r0, [sp, #4]
+ ldr r1, _02254E94 ; =0x00002DBF
+ ldr r0, [r0, #0x30]
+ add r0, r0, r5
+ ldrb r2, [r0, r1]
+ add r0, sp, #0xc
+ sub r1, #0xf
+ strh r2, [r0, #2]
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0x30]
+ add r0, r0, r5
+ ldr r1, [r0, r1]
+ mov r0, #1
+ lsl r0, r0, #0x18
+ tst r0, r1
+ beq _02254E0E
+ mov r0, #1
+ b _02254E10
+_02254E0E:
+ mov r0, #0
+_02254E10:
+ str r0, [sp, #0x10]
+ mov r0, #0
+ mov ip, r0
+ add r7, sp, #0xc
+ ldr r0, _02254E90 ; =0x00002D66
+ add r3, r7, #0
+ add r2, r4, r0
+ add r0, #0x58
+ add r5, r7, #0
+ add r6, r4, r0
+_02254E24:
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldrh r0, [r4, r0]
+ strh r0, [r7, #8]
+ ldrb r0, [r2]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1f
+ strb r0, [r3, #0x14]
+ ldrb r0, [r2]
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1b
+ strb r0, [r3, #0x18]
+ ldr r0, _02254E98 ; =0x00002DB0
+ ldr r1, [r4, r0]
+ mov r0, #2
+ lsl r0, r0, #0x14
+ tst r0, r1
+ beq _02254E52
+ ldr r0, _02254E9C ; =0x00002DFA
+ ldrh r0, [r4, r0]
+ strb r0, [r3, #0x10]
+ ldr r0, _02254EA0 ; =0x00002DE4
+ b _02254E5C
+_02254E52:
+ ldrb r0, [r6]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ strb r0, [r3, #0x10]
+ ldr r0, _02254EA4 ; =0x00002DA8
+_02254E5C:
+ ldr r0, [r4, r0]
+ add r4, #0xc0
+ str r0, [r5, #0x1c]
+ mov r0, ip
+ add r0, r0, #1
+ add r7, r7, #2
+ add r2, #0xc0
+ add r3, r3, #1
+ add r5, r5, #4
+ add r6, #0xc0
+ mov ip, r0
+ cmp r0, #4
+ blt _02254E24
+ mov r0, #0x2c
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #8]
+ mov r1, #1
+ add r3, sp, #0xc
+ bl MOD11_02254878
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02254E8C: .word 0x00000195
+_02254E90: .word 0x00002D66
+_02254E94: .word 0x00002DBF
+_02254E98: .word 0x00002DB0
+_02254E9C: .word 0x00002DFA
+_02254EA0: .word 0x00002DE4
+_02254EA4: .word 0x00002DA8
+
+ thumb_func_start MOD11_02254EA8
+MOD11_02254EA8: ; 0x02254EA8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r1, #0
+ add r4, r0, #0
+ lsl r0, r7, #2
+ add r0, r4, r0
+ ldr r1, [r0, #0x34]
+ ldr r0, _02254F58 ; =0x00000195
+ str r2, [sp, #4]
+ ldrb r1, [r1, r0]
+ mov r0, #1
+ tst r0, r1
+ beq _02254EC6
+ mov r2, #2
+ b _02254EC8
+_02254EC6:
+ mov r2, #0
+_02254EC8:
+ mov r0, #0xc0
+ add r6, r7, #0
+ mul r6, r0
+ ldr r0, [r4, #0x30]
+ ldr r5, _02254F5C ; =0x00002D66
+ add r0, r0, r6
+ ldrb r0, [r0, r5]
+ mov r1, #6
+ lsl r0, r0, #0x1b
+ lsr r3, r0, #0x1b
+ add r0, sp, #8
+ strb r1, [r0]
+ ldr r0, [r4, #0x30]
+ add r1, r0, r6
+ add r0, r5, #0
+ add r0, #0x4a
+ ldr r6, [r1, r0]
+ mov r0, #2
+ lsl r0, r0, #0x14
+ tst r0, r6
+ beq _02254F16
+ add r0, r5, #0
+ add r0, #0x7e
+ ldr r0, [r1, r0]
+ lsl r2, r2, #0x18
+ str r0, [sp]
+ add r0, r5, #0
+ sub r0, #0x26
+ add r5, #0x94
+ ldrh r0, [r1, r0]
+ ldrh r1, [r1, r5]
+ lsl r3, r3, #0x18
+ lsr r2, r2, #0x18
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02068E88
+ b _02254F38
+_02254F16:
+ add r0, r5, #0
+ add r0, #0x42
+ ldr r0, [r1, r0]
+ lsl r2, r2, #0x18
+ str r0, [sp]
+ add r0, r5, #0
+ sub r0, #0x26
+ add r5, #0x58
+ ldrh r0, [r1, r0]
+ ldrb r1, [r1, r5]
+ lsl r3, r3, #0x18
+ lsr r2, r2, #0x18
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ lsr r3, r3, #0x18
+ bl FUN_02068E88
+_02254F38:
+ add r1, sp, #8
+ strb r0, [r1, #1]
+ ldr r0, [sp, #4]
+ add r1, sp, #8
+ strh r0, [r1, #2]
+ mov r0, #4
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #1
+ add r2, r7, #0
+ add r3, sp, #8
+ bl MOD11_02254878
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02254F58: .word 0x00000195
+_02254F5C: .word 0x00002D66
+
+ thumb_func_start MOD11_02254F60
+MOD11_02254F60: ; 0x02254F60
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #7
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02254F7C
+MOD11_02254F7C: ; 0x02254F7C
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #8
+ add r3, sp, #4
+ strb r1, [r3]
+ mov r1, #0x34
+ mul r1, r2
+ add r1, r0, r1
+ add r1, #0xad
+ ldrb r1, [r1]
+ strh r1, [r3, #2]
+ add r1, r0, r2
+ add r1, #0xa8
+ ldrb r1, [r1]
+ strb r1, [r3, #1]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+
+ thumb_func_start MOD11_02254FAC
+MOD11_02254FAC: ; 0x02254FAC
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ mov r6, #9
+ add r3, sp, #4
+ strb r6, [r3]
+ add r5, r0, #0
+ strb r2, [r3, #1]
+ add r4, r1, #0
+ bl MOD11_022302BC
+ ldr r1, [r5, #0x30]
+ add r2, r4, #0
+ add r1, r1, r0
+ ldr r0, _02254FE0 ; =0x0000219C
+ add r3, sp, #4
+ ldrb r1, [r1, r0]
+ add r0, sp, #4
+ strh r1, [r0, #2]
+ mov r0, #4
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02254878
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02254FE0: .word 0x0000219C
+
+ thumb_func_start MOD11_02254FE4
+MOD11_02254FE4: ; 0x02254FE4
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #0xa
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02255000
+MOD11_02255000: ; 0x02255000
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r3, r1, #0
+ mov r1, #0xb
+ add r4, sp, #4
+ strb r1, [r4]
+ mov r1, #0x34
+ mul r1, r3
+ add r1, r0, r1
+ add r1, #0xad
+ ldrb r1, [r1]
+ strh r1, [r4, #2]
+ add r1, r0, r3
+ add r1, #0xa8
+ ldrb r1, [r1]
+ strb r1, [r4, #1]
+ str r2, [sp, #8]
+ mov r1, #8
+ str r1, [sp]
+ add r2, r3, #0
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #0xc
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD11_02255034
+MOD11_02255034: ; 0x02255034
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ add r5, r1, #0
+ ldr r1, _02255158 ; =0x0000219C
+ add r4, r2, #0
+ add r7, r5, r1
+ ldrb r2, [r7, r4]
+ add r1, r4, #0
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ bl MOD11_02230014
+ add r6, r0, #0
+ mov r1, #5
+ mov r2, #0
+ bl GetMonData
+ str r0, [sp, #0x10]
+ add r0, r6, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl GetMonData
+ str r0, [sp, #0xc]
+ mov r0, #0xc
+ add r2, sp, #0x14
+ strb r0, [r2]
+ mov r0, #0xc0
+ add r6, r4, #0
+ mul r6, r0
+ ldr r1, _0225515C ; =0x00002D74
+ add r0, r5, r6
+ ldrb r3, [r0, r1]
+ strb r3, [r2, #1]
+ add r3, r1, #0
+ add r3, #0x18
+ ldr r3, [r0, r3]
+ add r1, #0x1c
+ strh r3, [r2, #2]
+ ldr r0, [r0, r1]
+ add r1, r4, #0
+ strh r0, [r2, #4]
+ ldrb r0, [r7, r4]
+ strb r0, [r2, #6]
+ add r0, r5, #0
+ bl MOD11_0224524C
+ add r1, sp, #0x14
+ ldrb r2, [r1, #7]
+ mov r3, #0x1f
+ lsl r0, r0, #0x18
+ bic r2, r3
+ lsr r3, r0, #0x18
+ mov r0, #0x1f
+ and r0, r3
+ orr r0, r2
+ strb r0, [r1, #7]
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ add r7, r5, r0
+ ldrh r0, [r7, r6]
+ cmp r0, #0x1d
+ beq _022550B6
+ cmp r0, #0x20
+ bne _022550D0
+_022550B6:
+ ldr r0, _02255160 ; =0x00002D54
+ add r1, r5, r6
+ ldr r0, [r1, r0]
+ lsr r0, r0, #0x1f
+ bne _022550D0
+ add r0, sp, #0x14
+ ldrb r1, [r0, #7]
+ mov r2, #0x60
+ bic r1, r2
+ mov r2, #0x40
+ orr r1, r2
+ strb r1, [r0, #7]
+ b _022550EA
+_022550D0:
+ add r3, sp, #0x14
+ ldrb r2, [r3, #7]
+ mov r0, #0x60
+ add r1, r5, r6
+ bic r2, r0
+ ldr r0, _02255164 ; =0x00002DBE
+ ldrb r0, [r1, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x19
+ orr r0, r2
+ strb r0, [r3, #7]
+_022550EA:
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0xc]
+ bl GetMonExpBySpeciesAndLevel
+ mov r1, #0xc0
+ mul r1, r4
+ add r2, r5, r1
+ ldr r1, _02255168 ; =0x00002DA4
+ ldr r1, [r2, r1]
+ sub r0, r1, r0
+ ldr r1, [sp, #0xc]
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x10]
+ add r1, r1, #1
+ bl GetMonExpBySpeciesAndLevel
+ add r5, r0, #0
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0xc]
+ bl GetMonExpBySpeciesAndLevel
+ sub r0, r5, r0
+ str r0, [sp, #0x20]
+ ldrh r1, [r7, r6]
+ ldr r0, [sp, #4]
+ bl MOD11_02231668
+ add r3, sp, #0x14
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x1f
+ ldrb r1, [r3, #7]
+ mov r2, #0x80
+ lsr r0, r0, #0x18
+ bic r1, r2
+ orr r0, r1
+ strb r0, [r3, #7]
+ ldr r0, [sp, #4]
+ bl MOD11_02230E00
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #8]
+ add r1, sp, #0x14
+ strb r0, [r1, #0x14]
+ mov r0, #0x18
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #0x14
+ bl MOD11_02254878
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02255158: .word 0x0000219C
+_0225515C: .word 0x00002D74
+_02255160: .word 0x00002D54
+_02255164: .word 0x00002DBE
+_02255168: .word 0x00002DA4
+
+ thumb_func_start MOD11_0225516C
+MOD11_0225516C: ; 0x0225516C
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #0xd
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02255188
+MOD11_02255188: ; 0x02255188
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x54
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ str r2, [sp, #0xc]
+ mov r0, #0
+ add r1, sp, #0x28
+ mov r2, #0x2c
+ add r6, r3, #0
+ bl MIi_CpuClearFast
+ ldr r0, [sp, #4]
+ bl MOD11_0222FF78
+ ldr r1, [sp, #0xc]
+ bl MOD11_02243400
+ mov r5, #0
+ ldr r0, [sp, #4]
+ add r4, r5, #0
+ bl MOD11_0222FF84
+ cmp r0, #0
+ ble _022551D8
+_022551B8:
+ ldr r0, [sp, #8]
+ add r1, r4, #0
+ bl MOD11_0224AD04
+ cmp r0, #0
+ bne _022551CC
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ orr r5, r0
+_022551CC:
+ ldr r0, [sp, #4]
+ add r4, r4, #1
+ bl MOD11_0222FF84
+ cmp r4, r0
+ blt _022551B8
+_022551D8:
+ mov r1, #0xe
+ add r0, sp, #0x28
+ strb r1, [r0]
+ strb r6, [r0, #1]
+ ldr r1, _022554F8 ; =0x00003108
+ ldr r0, [sp, #8]
+ ldrb r0, [r0, r1]
+ add r1, r0, #0
+ orr r1, r5
+ add r0, sp, #0x48
+ strb r1, [r0, #9]
+ ldr r0, [sp, #4]
+ bl MOD11_0222FF74
+ mov r1, #2
+ str r0, [sp, #0x20]
+ tst r0, r1
+ beq _0225520E
+ ldr r0, [sp, #0x20]
+ mov r1, #8
+ tst r0, r1
+ bne _0225520E
+ ldr r0, [sp, #0xc]
+ mov r1, #1
+ add r4, r0, #0
+ and r4, r1
+ b _02255210
+_0225520E:
+ ldr r4, [sp, #0xc]
+_02255210:
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ bl MOD11_0222FF88
+ str r0, [sp, #0x24]
+ mov r6, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _022552A6
+ mov r0, #6
+ add r1, r4, #0
+ mul r1, r0
+ ldr r0, [sp, #8]
+ add r5, sp, #0x28
+ add r7, r0, r1
+ mov r1, #0xa9
+ ldr r0, [sp, #0x20]
+ lsl r1, r1, #2
+ and r0, r1
+ str r0, [sp, #0x1c]
+_0225523A:
+ ldr r1, _022554FC ; =0x0000312C
+ ldr r0, [sp, #0x24]
+ ldrb r1, [r7, r1]
+ bl GetPartyMonByIndex
+ mov r1, #0xad
+ mov r2, #0
+ add r4, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02255298
+ ldr r1, _02255500 ; =0x000001EE
+ cmp r0, r1
+ beq _02255298
+ add r0, r4, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02255280
+ add r0, r4, #0
+ mov r1, #0x9f
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0225527A
+ mov r0, #3
+ strb r0, [r5, #8]
+ b _02255284
+_0225527A:
+ mov r0, #1
+ strb r0, [r5, #8]
+ b _02255284
+_02255280:
+ mov r0, #2
+ strb r0, [r5, #8]
+_02255284:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ beq _0225528E
+ mov r0, #0
+ b _02255294
+_0225528E:
+ add r0, r4, #0
+ bl GetPercentProgressTowardsNextLevel
+_02255294:
+ strb r0, [r5, #2]
+ add r5, r5, #1
+_02255298:
+ ldr r0, [sp, #0x24]
+ add r7, r7, #1
+ add r6, r6, #1
+ bl GetPartyCount
+ cmp r6, r0
+ blt _0225523A
+_022552A6:
+ ldr r0, [sp, #0x20]
+ mov r1, #0xc
+ and r0, r1
+ cmp r0, #0xc
+ beq _022552C4
+ ldr r0, [sp, #0x20]
+ mov r1, #0x10
+ tst r0, r1
+ bne _022552C4
+ ldr r0, [sp, #0x20]
+ cmp r0, #0x4b
+ beq _022552C4
+ cmp r0, #0xcb
+ beq _022552C4
+ b _022553FC
+_022552C4:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0xc]
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _022552DA
+ ldr r0, [sp, #4]
+ mov r1, #2
+ bl MOD11_0223022C
+ b _022552E2
+_022552DA:
+ ldr r0, [sp, #4]
+ mov r1, #3
+ bl MOD11_0223022C
+_022552E2:
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ bl MOD11_0222FF88
+ str r0, [sp, #0x10]
+ mov r5, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _0225535E
+ add r1, r4, #0
+ mov r0, #6
+ mul r1, r0
+ ldr r0, [sp, #8]
+ add r4, sp, #0x28
+ add r6, r0, r1
+_02255304:
+ ldr r1, _022554FC ; =0x0000312C
+ ldr r0, [sp, #0x10]
+ ldrb r1, [r6, r1]
+ bl GetPartyMonByIndex
+ mov r1, #0xad
+ mov r2, #0
+ add r7, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02255350
+ ldr r1, _02255500 ; =0x000001EE
+ cmp r0, r1
+ beq _02255350
+ add r0, r7, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0225534A
+ add r0, r7, #0
+ mov r1, #0x9f
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02255344
+ mov r0, #3
+ strb r0, [r4, #0xe]
+ b _0225534E
+_02255344:
+ mov r0, #1
+ strb r0, [r4, #0xe]
+ b _0225534E
+_0225534A:
+ mov r0, #2
+ strb r0, [r4, #0xe]
+_0225534E:
+ add r4, r4, #1
+_02255350:
+ ldr r0, [sp, #0x10]
+ add r6, r6, #1
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _02255304
+_0225535E:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0xc]
+ bl MOD11_02230270
+ cmp r0, #0
+ beq _02255374
+ ldr r0, [sp, #4]
+ mov r1, #4
+ bl MOD11_0223022C
+ b _0225537C
+_02255374:
+ ldr r0, [sp, #4]
+ mov r1, #5
+ bl MOD11_0223022C
+_0225537C:
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ bl MOD11_0222FF88
+ str r0, [sp, #0x14]
+ mov r5, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _02255482
+ add r1, r4, #0
+ mov r0, #6
+ mul r1, r0
+ ldr r0, [sp, #8]
+ add r4, sp, #0x28
+ add r6, r0, r1
+ add r4, #3
+_022553A0:
+ ldr r1, _022554FC ; =0x0000312C
+ ldr r0, [sp, #0x14]
+ ldrb r1, [r6, r1]
+ bl GetPartyMonByIndex
+ mov r1, #0xad
+ mov r2, #0
+ add r7, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _022553EC
+ ldr r1, _02255500 ; =0x000001EE
+ cmp r0, r1
+ beq _022553EC
+ add r0, r7, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _022553E6
+ add r0, r7, #0
+ mov r1, #0x9f
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _022553E0
+ mov r0, #3
+ strb r0, [r4, #0xe]
+ b _022553EA
+_022553E0:
+ mov r0, #1
+ strb r0, [r4, #0xe]
+ b _022553EA
+_022553E6:
+ mov r0, #2
+ strb r0, [r4, #0xe]
+_022553EA:
+ add r4, r4, #1
+_022553EC:
+ ldr r0, [sp, #0x14]
+ add r6, r6, #1
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _022553A0
+ b _02255482
+_022553FC:
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #0xc]
+ mov r2, #2
+ bl MOD11_02230308
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ bl MOD11_0222FF88
+ str r0, [sp, #0x18]
+ mov r5, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _02255482
+ add r1, r4, #0
+ mov r0, #6
+ mul r1, r0
+ ldr r0, [sp, #8]
+ add r4, sp, #0x28
+ add r6, r0, r1
+_02255428:
+ ldr r1, _022554FC ; =0x0000312C
+ ldr r0, [sp, #0x18]
+ ldrb r1, [r6, r1]
+ bl GetPartyMonByIndex
+ mov r1, #0xad
+ mov r2, #0
+ add r7, r0, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02255474
+ ldr r1, _02255500 ; =0x000001EE
+ cmp r0, r1
+ beq _02255474
+ add r0, r7, #0
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _0225546E
+ add r0, r7, #0
+ mov r1, #0x9f
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02255468
+ mov r0, #3
+ strb r0, [r4, #0xe]
+ b _02255472
+_02255468:
+ mov r0, #1
+ strb r0, [r4, #0xe]
+ b _02255472
+_0225546E:
+ mov r0, #2
+ strb r0, [r4, #0xe]
+_02255472:
+ add r4, r4, #1
+_02255474:
+ ldr r0, [sp, #0x18]
+ add r6, r6, #1
+ add r5, r5, #1
+ bl GetPartyCount
+ cmp r5, r0
+ blt _02255428
+_02255482:
+ mov r5, #0
+ add r6, sp, #0x28
+ add r4, r6, #0
+ add r7, r5, #0
+_0225548A:
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ add r2, r5, #6
+ add r3, r7, #0
+ bl MOD11_02243420
+ strh r0, [r6, #0x14]
+ add r2, r5, #0
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ add r2, #0x1f
+ mov r3, #0
+ bl MOD11_02243420
+ strb r0, [r4, #0x1c]
+ add r2, r5, #0
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ add r2, #0x27
+ mov r3, #0
+ bl MOD11_02243420
+ add r1, r4, #0
+ add r1, #0x20
+ add r5, r5, #1
+ strb r0, [r1]
+ add r6, r6, #2
+ add r4, r4, #1
+ cmp r5, #4
+ blt _0225548A
+ ldr r0, [sp, #0xc]
+ mov r1, #0xc0
+ mul r1, r0
+ ldr r0, [sp, #8]
+ add r3, sp, #0x28
+ add r0, r0, r1
+ ldr r1, _02255504 ; =0x00002D8C
+ ldr r2, [r0, r1]
+ strh r2, [r3, #0x24]
+ add r2, r1, #4
+ ldr r2, [r0, r2]
+ strh r2, [r3, #0x26]
+ mov r2, #0x24
+ ldrsh r2, [r3, r2]
+ cmp r2, #0
+ beq _0225550E
+ add r1, #0x20
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ add r0, sp, #0x48
+ beq _02255508
+ mov r1, #3
+ strb r1, [r0, #8]
+ b _02255514
+ nop
+_022554F8: .word 0x00003108
+_022554FC: .word 0x0000312C
+_02255500: .word 0x000001EE
+_02255504: .word 0x00002D8C
+_02255508:
+ mov r1, #1
+ strb r1, [r0, #8]
+ b _02255514
+_0225550E:
+ mov r1, #2
+ add r0, sp, #0x48
+ strb r1, [r0, #8]
+_02255514:
+ mov r0, #0x2c
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #0xc]
+ mov r1, #1
+ add r3, sp, #0x28
+ bl MOD11_02254878
+ add sp, #0x54
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02255528
+MOD11_02255528: ; 0x02255528
+ push {r0, r1, r2, r3}
+ push {r3, lr}
+ add r2, r1, #0
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #0
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ pop {r3}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD11_02255544
+MOD11_02255544: ; 0x02255544
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ str r2, [sp, #0xc]
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ bl MOD11_0222FF78
+ ldr r1, [sp, #0xc]
+ bl MOD11_02243400
+ mov r0, #0xf
+ add r2, sp, #0x14
+ strb r0, [r2]
+ add r7, sp, #0x14
+ ldr r1, [sp, #8]
+ ldr r0, [sp, #0xc]
+ add r5, r7, #0
+ add r1, r1, r0
+ ldr r0, _022555D4 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ mov r1, #0xc0
+ strb r0, [r2, #1]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0xc]
+ mul r1, r0
+ ldr r0, [sp, #8]
+ add r6, r0, r1
+ add r4, r6, #0
+_0225557E:
+ ldr r0, _022555D8 ; =0x00002D4C
+ ldr r1, _022555DC ; =0x00002D70
+ ldrh r0, [r6, r0]
+ strh r0, [r7, #4]
+ ldr r0, _022555E0 ; =0x00002D6C
+ ldrb r0, [r4, r0]
+ strb r0, [r5, #0xc]
+ ldr r0, _022555D8 ; =0x00002D4C
+ ldrb r1, [r4, r1]
+ ldrh r0, [r6, r0]
+ bl WazaGetMaxPp
+ strb r0, [r5, #0x10]
+ ldr r0, [sp, #0x10]
+ add r6, r6, #2
+ add r0, r0, #1
+ add r7, r7, #2
+ add r4, r4, #1
+ add r5, r5, #1
+ str r0, [sp, #0x10]
+ cmp r0, #4
+ blt _0225557E
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #0xc]
+ mov r3, #0
+ bl MOD11_02245D38
+ add r1, sp, #0x14
+ strh r0, [r1, #2]
+ mov r0, #0x14
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #0xc]
+ mov r1, #1
+ add r3, sp, #0x14
+ bl MOD11_02254878
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022555D4: .word 0x0000219C
+_022555D8: .word 0x00002D4C
+_022555DC: .word 0x00002D70
+_022555E0: .word 0x00002D6C
+
+ thumb_func_start MOD11_022555E4
+MOD11_022555E4: ; 0x022555E4
+ push {r0, r1, r2, r3}
+ push {r3, lr}
+ add r2, r1, #0
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #0
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ pop {r3}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD11_02255600
+MOD11_02255600: ; 0x02255600
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ add r0, r1, #0
+ add r1, r3, #0
+ add r4, r2, #0
+ str r3, [sp, #0xc]
+ bl MOD11_02243400
+ ldr r0, [sp, #4]
+ bl MOD11_0222FF74
+ mov r2, #0x10
+ add r1, sp, #0x1c
+ strb r2, [r1]
+ strh r4, [r1, #2]
+ mov r1, #2
+ add r2, r0, #0
+ and r2, r1
+ beq _0225563A
+ mov r1, #8
+ tst r0, r1
+ bne _0225563A
+ cmp r2, #0
+ beq _02255642
+ ldr r0, [sp, #0xc]
+ cmp r0, #2
+ blt _02255642
+_0225563A:
+ mov r1, #1
+ add r0, sp, #0x1c
+ strb r1, [r0, #1]
+ b _02255648
+_02255642:
+ mov r1, #0
+ add r0, sp, #0x1c
+ strb r1, [r0, #1]
+_02255648:
+ ldr r2, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ ldr r1, _0225570C ; =0x00002D54
+ add r0, r2, #0
+ add r7, r0, r1
+ add r1, #0x6a
+ add r5, r0, r1
+ mov r0, #3
+ add r4, sp, #0x20
+ str r0, [sp, #0x14]
+ str r0, [sp, #0x10]
+ mov r0, #4
+ add r3, sp, #0x1c
+ add r4, #1
+ mov ip, r0
+_02255668:
+ ldr r0, _02255710 ; =0x00002D8C
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _022556D6
+ strh r0, [r3, #8]
+ ldr r0, _02255714 ; =0x00002D90
+ ldr r0, [r2, r0]
+ strh r0, [r3, #0xa]
+ ldrb r1, [r4]
+ mov r0, #4
+ orr r0, r1
+ strb r0, [r4]
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldrh r0, [r2, r0]
+ cmp r0, #0x1d
+ beq _0225568E
+ cmp r0, #0x20
+ bne _022556A2
+_0225568E:
+ ldr r0, [r7]
+ lsr r0, r0, #0x1f
+ bne _022556A2
+ ldrb r0, [r4]
+ ldr r1, [sp, #0x10]
+ bic r0, r1
+ mov r1, #2
+ orr r0, r1
+ strb r0, [r4]
+ b _022556B6
+_022556A2:
+ ldrb r6, [r4]
+ ldr r0, [sp, #0x14]
+ bic r6, r0
+ ldrb r0, [r5]
+ lsl r0, r0, #0x1c
+ lsr r1, r0, #0x1c
+ mov r0, #3
+ and r0, r1
+ orr r0, r6
+ strb r0, [r4]
+_022556B6:
+ ldr r1, [sp, #8]
+ ldr r0, [sp, #0x18]
+ add r1, r1, r0
+ ldr r0, _02255718 ; =0x0000219C
+ ldrb r0, [r1, r0]
+ strb r0, [r3, #4]
+ ldr r0, _0225571C ; =0x00002DAC
+ ldr r0, [r2, r0]
+ cmp r0, #0
+ beq _022556D0
+ mov r0, #3
+ strb r0, [r3, #6]
+ b _022556E2
+_022556D0:
+ mov r0, #1
+ strb r0, [r3, #6]
+ b _022556E2
+_022556D6:
+ ldrb r1, [r4]
+ mov r0, ip
+ bic r1, r0
+ strb r1, [r4]
+ mov r0, #2
+ strb r0, [r3, #6]
+_022556E2:
+ ldr r0, [sp, #0x18]
+ add r2, #0xc0
+ add r0, r0, #1
+ add r3, #8
+ add r4, #8
+ add r7, #0xc0
+ add r5, #0xc0
+ str r0, [sp, #0x18]
+ cmp r0, #4
+ blt _02255668
+ mov r0, #0x24
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #0xc]
+ mov r1, #1
+ add r3, sp, #0x1c
+ bl MOD11_02254878
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225570C: .word 0x00002D54
+_02255710: .word 0x00002D8C
+_02255714: .word 0x00002D90
+_02255718: .word 0x0000219C
+_0225571C: .word 0x00002DAC
+
+ thumb_func_start MOD11_02255720
+MOD11_02255720: ; 0x02255720
+ push {r0, r1, r2, r3}
+ push {r3, lr}
+ add r2, r1, #0
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #0
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ pop {r3}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD11_0225573C
+MOD11_0225573C: ; 0x0225573C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ add r0, r1, #0
+ add r1, r2, #0
+ str r2, [sp, #0xc]
+ bl MOD11_02243400
+ add r6, sp, #0x10
+ mov r1, #0x11
+ add r0, sp, #0x10
+ strb r1, [r0]
+ mov r0, #0
+ ldr r4, [sp, #8]
+ mov ip, r0
+ ldr r1, _022558B0 ; =0x00002DCC
+ add r0, r4, #0
+ add r7, r0, r1
+ ldr r0, _022558B4 ; =0x0000312C
+ add r5, r6, #0
+_02255766:
+ ldr r2, [sp, #8]
+ mov r1, ip
+ add r2, r2, r1
+ ldr r1, _022558B8 ; =0x0000219C
+ mov r3, #0
+ ldrb r1, [r2, r1]
+ strb r1, [r6, #4]
+_02255774:
+ add r1, r4, r3
+ ldrb r2, [r1, r0]
+ add r1, r5, r3
+ add r3, r3, #1
+ strb r2, [r1, #8]
+ cmp r3, #6
+ blt _02255774
+ ldr r1, [r7]
+ add r2, r6, #0
+ lsl r1, r1, #0xa
+ lsr r1, r1, #0x1d
+ add r2, #0x20
+ strb r1, [r2]
+ mov r1, ip
+ add r1, r1, #1
+ add r6, r6, #1
+ add r4, r4, #6
+ add r5, r5, #6
+ add r7, #0xc0
+ mov ip, r1
+ cmp r1, #4
+ blt _02255766
+ ldr r0, [sp, #4]
+ bl MOD11_0222FF74
+ cmp r0, #0x4a
+ bne _02255852
+ mov r0, #1
+ bl MaskOfFlagNo
+ ldr r2, _022558BC ; =0x00003108
+ ldr r1, [sp, #8]
+ ldrb r1, [r1, r2]
+ tst r0, r1
+ bne _022557D8
+ mov r0, #3
+ bl MaskOfFlagNo
+ ldr r2, _022558BC ; =0x00003108
+ ldr r1, [sp, #8]
+ ldrb r1, [r1, r2]
+ tst r0, r1
+ bne _022557D8
+ mov r1, #1
+ add r0, sp, #0x10
+ strb r1, [r0, #1]
+ mov r1, #0
+ strb r1, [r0, #2]
+ strb r1, [r0, #3]
+ b _0225589C
+_022557D8:
+ mov r0, #1
+ bl MaskOfFlagNo
+ ldr r2, _022558BC ; =0x00003108
+ ldr r1, [sp, #8]
+ add r3, sp, #0x10
+ ldrb r1, [r1, r2]
+ tst r0, r1
+ bne _0225581E
+ mov r0, #0
+ mov r2, #0xba
+ ldr r1, [sp, #8]
+ strb r0, [r3, #1]
+ lsl r2, r2, #6
+ ldr r4, [r1, r2]
+ ldr r1, _022558C0 ; =0x200400C0
+ tst r1, r4
+ beq _02255804
+ mov r1, #1
+ strb r1, [r3, #2]
+ strb r0, [r3, #3]
+ b _0225589C
+_02255804:
+ ldr r1, [sp, #8]
+ sub r2, #0x10
+ ldr r2, [r1, r2]
+ mov r1, #1
+ lsl r1, r1, #0x18
+ tst r1, r2
+ strb r0, [r3, #2]
+ beq _0225581A
+ mov r0, #1
+ strb r0, [r3, #3]
+ b _0225589C
+_0225581A:
+ strb r0, [r3, #3]
+ b _0225589C
+_0225581E:
+ mov r0, #0
+ mov r2, #3
+ ldr r1, [sp, #8]
+ strb r0, [r3, #1]
+ lsl r2, r2, #0xc
+ ldr r4, [r1, r2]
+ ldr r1, _022558C0 ; =0x200400C0
+ tst r1, r4
+ beq _02255838
+ mov r1, #1
+ strb r1, [r3, #2]
+ strb r0, [r3, #3]
+ b _0225589C
+_02255838:
+ ldr r1, [sp, #8]
+ sub r2, #0x10
+ ldr r2, [r1, r2]
+ mov r1, #1
+ lsl r1, r1, #0x18
+ tst r1, r2
+ strb r0, [r3, #2]
+ beq _0225584E
+ mov r0, #1
+ strb r0, [r3, #3]
+ b _0225589C
+_0225584E:
+ strb r0, [r3, #3]
+ b _0225589C
+_02255852:
+ ldr r0, [sp, #4]
+ bl MOD11_0222FF74
+ cmp r0, #0
+ bne _02255892
+ mov r2, #0xba
+ mov r0, #0
+ add r3, sp, #0x10
+ ldr r1, [sp, #8]
+ strb r0, [r3, #1]
+ lsl r2, r2, #6
+ ldr r4, [r1, r2]
+ ldr r1, _022558C0 ; =0x200400C0
+ tst r1, r4
+ beq _02255878
+ mov r1, #1
+ strb r1, [r3, #2]
+ strb r0, [r3, #3]
+ b _0225589C
+_02255878:
+ ldr r1, [sp, #8]
+ sub r2, #0x10
+ ldr r2, [r1, r2]
+ mov r1, #1
+ lsl r1, r1, #0x18
+ tst r1, r2
+ strb r0, [r3, #2]
+ beq _0225588E
+ mov r0, #1
+ strb r0, [r3, #3]
+ b _0225589C
+_0225588E:
+ strb r0, [r3, #3]
+ b _0225589C
+_02255892:
+ mov r1, #0
+ add r0, sp, #0x10
+ strb r1, [r0, #1]
+ strb r1, [r0, #2]
+ strb r1, [r0, #3]
+_0225589C:
+ mov r0, #0x24
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #0xc]
+ mov r1, #1
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022558B0: .word 0x00002DCC
+_022558B4: .word 0x0000312C
+_022558B8: .word 0x0000219C
+_022558BC: .word 0x00003108
+_022558C0: .word 0x200400C0
+
+ thumb_func_start MOD11_022558C4
+MOD11_022558C4: ; 0x022558C4
+ push {r0, r1, r2, r3}
+ push {r3, lr}
+ add r2, r1, #0
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #0
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ pop {r3}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD11_022558E0
+MOD11_022558E0: ; 0x022558E0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ add r0, r1, #0
+ add r1, r2, #0
+ str r2, [sp, #0xc]
+ add r4, r3, #0
+ bl MOD11_02243400
+ mov r0, #0x12
+ add r1, sp, #0x10
+ strb r0, [r1]
+ ldr r0, [sp, #0xc]
+ add r7, sp, #0x10
+ strb r0, [r1, #1]
+ ldr r0, [sp, #0x50]
+ strb r4, [r1, #2]
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0x54]
+ ldr r5, [sp, #8]
+ strb r0, [r1, #3]
+ ldr r1, _02255958 ; =0x00003108
+ ldr r0, [sp, #8]
+ mov r3, #0
+ ldrb r1, [r0, r1]
+ add r0, sp, #0x30
+ add r6, r7, #0
+ strb r1, [r0, #4]
+ ldr r0, _0225595C ; =0x0000312C
+_0225591C:
+ ldr r1, [sp, #8]
+ mov r4, #0
+ add r2, r1, r3
+ ldr r1, _02255960 ; =0x0000219C
+ ldrb r1, [r2, r1]
+ strb r1, [r7, #4]
+_02255928:
+ add r1, r5, r4
+ ldrb r2, [r1, r0]
+ add r1, r6, r4
+ add r4, r4, #1
+ strb r2, [r1, #8]
+ cmp r4, #6
+ blt _02255928
+ add r3, r3, #1
+ add r7, r7, #1
+ add r5, r5, #6
+ add r6, r6, #6
+ cmp r3, #4
+ blt _0225591C
+ mov r0, #0x28
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #0xc]
+ mov r1, #1
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02255958: .word 0x00003108
+_0225595C: .word 0x0000312C
+_02255960: .word 0x0000219C
+
+ thumb_func_start MOD11_02255964
+MOD11_02255964: ; 0x02255964
+ push {r0, r1, r2, r3}
+ push {r3, lr}
+ add r2, r1, #0
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #0
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ pop {r3}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD11_02255980
+MOD11_02255980: ; 0x02255980
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r2, #0
+ add r6, r0, #0
+ add r0, r1, #0
+ add r1, r5, #0
+ add r4, r3, #0
+ bl MOD11_02243400
+ mov r1, #0x13
+ add r0, sp, #4
+ strb r1, [r0]
+ ldr r1, [sp, #0x20]
+ strh r4, [r0, #2]
+ strb r1, [r0, #1]
+ ldr r0, [sp, #0x24]
+ mov r1, #1
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x28]
+ add r2, r5, #0
+ str r0, [sp, #0xc]
+ mov r0, #0xc
+ str r0, [sp]
+ add r0, r6, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022559BC
+MOD11_022559BC: ; 0x022559BC
+ push {r4, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #0x14
+ add r3, sp, #4
+ strb r1, [r3]
+ ldr r1, [r2, #0x64]
+ add r4, r2, r1
+ ldr r1, _022559EC ; =0x0000219C
+ ldrb r1, [r4, r1]
+ strb r1, [r3, #1]
+ ldr r1, _022559F0 ; =0x00003044
+ ldr r1, [r2, r1]
+ strh r1, [r3, #2]
+ mov r1, #4
+ str r1, [sp]
+ ldr r2, [r2, #0x64]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r4, pc}
+ nop
+_022559EC: .word 0x0000219C
+_022559F0: .word 0x00003044
+
+ thumb_func_start MOD11_022559F4
+MOD11_022559F4: ; 0x022559F4
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r3, r2, #0
+ mov r1, #0x15
+ strb r1, [r3]
+ mov r1, #0x24
+ str r1, [sp]
+ ldr r2, [r4, #0x64]
+ mov r1, #1
+ bl MOD11_02254878
+ add sp, #4
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD11_02255A10
+MOD11_02255A10: ; 0x02255A10
+ push {r4, r5, r6, lr}
+ sub sp, #0x68
+ mov r3, #0
+ add r4, r1, #0
+ str r3, [sp]
+ ldr r6, [r4, #0x64]
+ add r5, r0, #0
+ str r6, [sp, #4]
+ ldr r6, [r4, #0x6c]
+ str r6, [sp, #8]
+ str r2, [sp, #0xc]
+ add r2, sp, #0x10
+ bl MOD11_02256854
+ mov r0, #0x58
+ str r0, [sp]
+ ldr r2, [r4, #0x64]
+ add r0, r5, #0
+ mov r1, #1
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ add sp, #0x68
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02255A40
+MOD11_02255A40: ; 0x02255A40
+ push {r4, r5, r6, lr}
+ sub sp, #0x68
+ add r4, r3, #0
+ mov r3, #0
+ str r3, [sp]
+ ldr r6, [sp, #0x78]
+ str r4, [sp, #4]
+ str r6, [sp, #8]
+ str r2, [sp, #0xc]
+ add r2, sp, #0x10
+ add r5, r0, #0
+ bl MOD11_02256854
+ mov r0, #0x58
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ add sp, #0x68
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02255A70
+MOD11_02255A70: ; 0x02255A70
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #0x17
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02255A8C
+MOD11_02255A8C: ; 0x02255A8C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r5, r1, #0
+ str r2, [sp, #8]
+ add r1, r2, #0
+ add r3, r5, r2
+ ldr r2, _02255B50 ; =0x0000219C
+ str r0, [sp, #4]
+ ldrb r2, [r3, r2]
+ bl MOD11_02230014
+ add r4, r0, #0
+ mov r1, #5
+ mov r2, #0
+ bl GetMonData
+ add r7, r0, #0
+ add r0, r4, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl GetMonData
+ add r6, r0, #0
+ mov r0, #0x18
+ add r2, sp, #0xc
+ strb r0, [r2]
+ ldr r0, [sp, #8]
+ mov r1, #0xc0
+ add r4, r0, #0
+ mul r4, r1
+ ldr r1, _02255B54 ; =0x00002D74
+ add r0, r5, r4
+ ldrb r3, [r0, r1]
+ strb r3, [r2, #1]
+ add r3, r1, #0
+ add r3, #0x18
+ ldr r3, [r0, r3]
+ strh r3, [r2, #2]
+ add r3, r1, #0
+ add r3, #0x1c
+ ldr r3, [r0, r3]
+ sub r1, #0x34
+ strh r3, [r2, #4]
+ ldr r2, _02255B58 ; =0x0000215C
+ ldr r2, [r5, r2]
+ str r2, [sp, #0x14]
+ ldrh r0, [r0, r1]
+ cmp r0, #0x1d
+ beq _02255AF2
+ cmp r0, #0x20
+ bne _02255B04
+_02255AF2:
+ ldr r0, _02255B5C ; =0x00002D54
+ add r1, r5, r4
+ ldr r0, [r1, r0]
+ lsr r0, r0, #0x1f
+ bne _02255B04
+ mov r1, #2
+ add r0, sp, #0xc
+ strb r1, [r0, #7]
+ b _02255B12
+_02255B04:
+ ldr r0, _02255B60 ; =0x00002DBE
+ add r1, r5, r4
+ ldrb r0, [r1, r0]
+ lsl r0, r0, #0x1c
+ lsr r1, r0, #0x1c
+ add r0, sp, #0xc
+ strb r1, [r0, #7]
+_02255B12:
+ add r0, r7, #0
+ add r1, r6, #0
+ bl GetMonExpBySpeciesAndLevel
+ ldr r1, _02255B64 ; =0x00002DA4
+ add r2, r5, r4
+ ldr r1, [r2, r1]
+ sub r0, r1, r0
+ str r0, [sp, #0x18]
+ add r0, r7, #0
+ add r1, r6, #1
+ bl GetMonExpBySpeciesAndLevel
+ add r4, r0, #0
+ add r0, r7, #0
+ add r1, r6, #0
+ bl GetMonExpBySpeciesAndLevel
+ sub r0, r4, r0
+ str r0, [sp, #0x1c]
+ mov r0, #0x14
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #8]
+ mov r1, #1
+ add r3, sp, #0xc
+ bl MOD11_02254878
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02255B50: .word 0x0000219C
+_02255B54: .word 0x00002D74
+_02255B58: .word 0x0000215C
+_02255B5C: .word 0x00002D54
+_02255B60: .word 0x00002DBE
+_02255B64: .word 0x00002DA4
+
+ thumb_func_start MOD11_02255B68
+MOD11_02255B68: ; 0x02255B68
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r4, r2, #0
+ add r5, r1, #0
+ str r3, [sp, #8]
+ ldr r2, _02255BE4 ; =0x0000219C
+ add r3, r5, r4
+ ldrb r2, [r3, r2]
+ add r1, r4, #0
+ str r0, [sp, #4]
+ bl MOD11_02230014
+ add r6, r0, #0
+ mov r1, #5
+ mov r2, #0
+ bl GetMonData
+ add r7, r0, #0
+ add r0, r6, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl GetMonData
+ add r6, r0, #0
+ mov r1, #0x19
+ add r0, sp, #0xc
+ strb r1, [r0]
+ ldr r0, [sp, #8]
+ add r1, r6, #0
+ str r0, [sp, #0x10]
+ add r0, r7, #0
+ bl GetMonExpBySpeciesAndLevel
+ mov r1, #0xc0
+ mul r1, r4
+ add r2, r5, r1
+ ldr r1, _02255BE8 ; =0x00002DA4
+ ldr r1, [r2, r1]
+ sub r0, r1, r0
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ add r1, r6, #1
+ bl GetMonExpBySpeciesAndLevel
+ add r5, r0, #0
+ add r0, r7, #0
+ add r1, r6, #0
+ bl GetMonExpBySpeciesAndLevel
+ sub r0, r5, r0
+ str r0, [sp, #0x18]
+ mov r0, #0x10
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #0xc
+ bl MOD11_02254878
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02255BE4: .word 0x0000219C
+_02255BE8: .word 0x00002DA4
+
+ thumb_func_start MOD11_02255BEC
+MOD11_02255BEC: ; 0x02255BEC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ str r0, [sp, #4]
+ add r0, r1, #0
+ mov ip, r2
+ mov r5, #0xb5
+ mov r2, #0x1a
+ add r1, sp, #0xc
+ strb r2, [r1]
+ mov r3, #0xc0
+ mov r2, ip
+ mul r3, r2
+ add r2, r0, r3
+ lsl r5, r5, #6
+ ldrh r4, [r2, r5]
+ strh r4, [r1, #2]
+ add r4, r5, #0
+ add r4, #0x26
+ ldrb r2, [r2, r4]
+ add r5, #0x70
+ lsl r2, r2, #0x1b
+ lsr r2, r2, #0x1b
+ strb r2, [r1, #8]
+ add r2, r0, r5
+ mov r1, #1
+ ldr r4, [r2, r3]
+ lsl r1, r1, #0x18
+ tst r1, r4
+ beq _02255C2A
+ mov r4, #1
+ b _02255C2C
+_02255C2A:
+ mov r4, #0
+_02255C2C:
+ add r1, sp, #0xc
+ strb r4, [r1, #9]
+ mov r1, #2
+ ldr r4, [r2, r3]
+ lsl r1, r1, #0x14
+ tst r1, r4
+ beq _02255C3E
+ mov r4, #1
+ b _02255C40
+_02255C3E:
+ mov r4, #0
+_02255C40:
+ add r1, sp, #0xc
+ strb r4, [r1, #0xa]
+ ldr r4, [r2, r3]
+ mov r2, #2
+ lsl r2, r2, #0x14
+ tst r2, r4
+ beq _02255C5E
+ ldr r2, _02255CE8 ; =0x00002DFA
+ add r4, r0, r3
+ ldrh r3, [r4, r2]
+ sub r2, #0x16
+ strb r3, [r1, #1]
+ ldr r1, [r4, r2]
+ str r1, [sp, #0x10]
+ b _02255C70
+_02255C5E:
+ ldr r2, _02255CEC ; =0x00002DBE
+ add r4, r0, r3
+ ldrb r3, [r4, r2]
+ sub r2, #0x16
+ lsl r3, r3, #0x1c
+ lsr r3, r3, #0x1c
+ strb r3, [r1, #1]
+ ldr r1, [r4, r2]
+ str r1, [sp, #0x10]
+_02255C70:
+ mov r1, #0
+ str r1, [sp, #8]
+ ldr r1, _02255CF0 ; =0x00002D66
+ add r7, sp, #0xc
+ add r3, r0, r1
+ add r1, #0x58
+ add r4, r7, #0
+ add r5, r7, #0
+ add r6, r0, r1
+_02255C82:
+ mov r1, #0xb5
+ lsl r1, r1, #6
+ ldrh r1, [r0, r1]
+ strh r1, [r7, #0xc]
+ ldrb r1, [r3]
+ lsl r1, r1, #0x1a
+ lsr r1, r1, #0x1f
+ strb r1, [r4, #0x18]
+ ldrb r1, [r3]
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x1b
+ strb r1, [r4, #0x1c]
+ ldr r1, _02255CF4 ; =0x00002DB0
+ ldr r2, [r0, r1]
+ mov r1, #2
+ lsl r1, r1, #0x14
+ tst r1, r2
+ beq _02255CB0
+ ldr r1, _02255CE8 ; =0x00002DFA
+ ldrh r1, [r0, r1]
+ strb r1, [r4, #0x14]
+ ldr r1, _02255CF8 ; =0x00002DE4
+ b _02255CBA
+_02255CB0:
+ ldrb r1, [r6]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ strb r1, [r4, #0x14]
+ ldr r1, _02255CFC ; =0x00002DA8
+_02255CBA:
+ ldr r1, [r0, r1]
+ add r0, #0xc0
+ str r1, [r5, #0x20]
+ ldr r1, [sp, #8]
+ add r7, r7, #2
+ add r1, r1, #1
+ add r3, #0xc0
+ add r4, r4, #1
+ add r5, r5, #4
+ add r6, #0xc0
+ str r1, [sp, #8]
+ cmp r1, #4
+ blt _02255C82
+ mov r0, #0x30
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ mov r1, #1
+ mov r2, ip
+ add r3, sp, #0xc
+ bl MOD11_02254878
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02255CE8: .word 0x00002DFA
+_02255CEC: .word 0x00002DBE
+_02255CF0: .word 0x00002D66
+_02255CF4: .word 0x00002DB0
+_02255CF8: .word 0x00002DE4
+_02255CFC: .word 0x00002DA8
+
+ thumb_func_start MOD11_02255D00
+MOD11_02255D00: ; 0x02255D00
+ push {r4, lr}
+ sub sp, #8
+ mov r4, #0x1b
+ add r1, sp, #4
+ strb r4, [r1]
+ strh r2, [r1, #2]
+ mov r1, #4
+ str r1, [sp]
+ add r2, r3, #0
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02255D20
+MOD11_02255D20: ; 0x02255D20
+ push {r3, lr}
+ sub sp, #8
+ mov r1, #0x1c
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02255D3C
+MOD11_02255D3C: ; 0x02255D3C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ mov ip, r1
+ mov r3, #0x1d
+ add r1, sp, #8
+ strb r3, [r1]
+ strb r2, [r1, #1]
+ ldr r3, [r0, #0x30]
+ mov r2, #0xc0
+ mov r1, ip
+ mul r2, r1
+ ldr r1, _02255DF4 ; =0x00002DB0
+ add r2, r3, r2
+ ldr r2, [r2, r1]
+ mov r1, #1
+ lsl r1, r1, #0x18
+ tst r1, r2
+ beq _02255D64
+ mov r2, #1
+ b _02255D66
+_02255D64:
+ mov r2, #0
+_02255D66:
+ add r7, sp, #8
+ add r1, sp, #8
+ mov r3, #0
+ strb r2, [r1, #2]
+ str r3, [sp, #4]
+ add r4, r7, #0
+ add r5, r7, #0
+_02255D74:
+ ldr r1, [r0, #0x30]
+ add r2, r1, r3
+ mov r1, #0xb5
+ lsl r1, r1, #6
+ ldrh r1, [r2, r1]
+ strh r1, [r7, #4]
+ ldr r1, [r0, #0x30]
+ add r2, r1, r3
+ ldr r1, _02255DF8 ; =0x00002D66
+ ldrb r1, [r2, r1]
+ lsl r1, r1, #0x1a
+ lsr r1, r1, #0x1f
+ strb r1, [r4, #0x10]
+ ldr r1, [r0, #0x30]
+ add r2, r1, r3
+ ldr r1, _02255DF8 ; =0x00002D66
+ ldrb r1, [r2, r1]
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x1b
+ strb r1, [r4, #0x14]
+ ldr r1, [r0, #0x30]
+ add r6, r1, r3
+ ldr r1, _02255DF4 ; =0x00002DB0
+ ldr r2, [r6, r1]
+ mov r1, #2
+ lsl r1, r1, #0x14
+ tst r1, r2
+ beq _02255DBA
+ ldr r1, _02255DFC ; =0x00002DFA
+ ldrh r1, [r6, r1]
+ strb r1, [r4, #0xc]
+ ldr r1, [r0, #0x30]
+ add r2, r1, r3
+ ldr r1, _02255E00 ; =0x00002DE4
+ b _02255DCA
+_02255DBA:
+ ldr r1, _02255E04 ; =0x00002DBE
+ ldrb r1, [r6, r1]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ strb r1, [r4, #0xc]
+ ldr r1, [r0, #0x30]
+ add r2, r1, r3
+ ldr r1, _02255E08 ; =0x00002DA8
+_02255DCA:
+ ldr r1, [r2, r1]
+ add r3, #0xc0
+ str r1, [r5, #0x18]
+ ldr r1, [sp, #4]
+ add r7, r7, #2
+ add r1, r1, #1
+ add r4, r4, #1
+ add r5, r5, #4
+ str r1, [sp, #4]
+ cmp r1, #4
+ blt _02255D74
+ mov r1, #0x28
+ str r1, [sp]
+ mov r1, #1
+ mov r2, ip
+ add r3, sp, #8
+ bl MOD11_02254878
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02255DF4: .word 0x00002DB0
+_02255DF8: .word 0x00002D66
+_02255DFC: .word 0x00002DFA
+_02255E00: .word 0x00002DE4
+_02255E04: .word 0x00002DBE
+_02255E08: .word 0x00002DA8
+
+ thumb_func_start MOD11_02255E0C
+MOD11_02255E0C: ; 0x02255E0C
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ mov r3, #0x1e
+ add r1, sp, #4
+ strb r3, [r1]
+ strb r2, [r1, #1]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02255E2C
+MOD11_02255E2C: ; 0x02255E2C
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ mov r3, #0x1f
+ add r1, sp, #4
+ strb r3, [r1]
+ strb r2, [r1, #1]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02255E4C
+MOD11_02255E4C: ; 0x02255E4C
+ push {r3, r4, r5, lr}
+ sub sp, #0x68
+ add r4, r2, #0
+ str r3, [sp]
+ str r4, [sp, #4]
+ str r4, [sp, #8]
+ mov r2, #0
+ str r2, [sp, #0xc]
+ add r2, sp, #0x10
+ mov r3, #1
+ add r5, r0, #0
+ bl MOD11_02256854
+ mov r0, #0x58
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ add sp, #0x68
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02255E7C
+MOD11_02255E7C: ; 0x02255E7C
+ push {r3, r4, r5, lr}
+ sub sp, #0x68
+ add r4, r2, #0
+ ldr r2, [sp, #0x78]
+ add r5, r0, #0
+ str r2, [sp]
+ str r4, [sp, #4]
+ str r3, [sp, #8]
+ mov r2, #0
+ str r2, [sp, #0xc]
+ add r2, sp, #0x10
+ mov r3, #1
+ bl MOD11_02256854
+ mov r0, #0x58
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ add sp, #0x68
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02255EAC
+MOD11_02255EAC: ; 0x02255EAC
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r4, r2, #0
+ mov r2, #0x20
+ add r0, sp, #4
+ strb r2, [r0]
+ strb r3, [r0, #1]
+ ldr r0, _02255EE8 ; =0x00003122
+ ldrsh r2, [r1, r0]
+ ldr r0, _02255EEC ; =0x00002E4C
+ ldr r0, [r1, r0]
+ sub r1, r2, r0
+ mov r0, #0x64
+ mul r0, r1
+ add r1, r2, #0
+ bl _s32_div_f
+ add r1, sp, #4
+ strh r0, [r1, #2]
+ mov r0, #4
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02255EE8: .word 0x00003122
+_02255EEC: .word 0x00002E4C
+
+ thumb_func_start MOD11_02255EF0
+MOD11_02255EF0: ; 0x02255EF0
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r6, r1, #0
+ add r4, r2, #0
+ mov r1, #0x21
+ add r0, sp, #4
+ strb r1, [r0]
+ ldr r2, _02255F38 ; =0x00002E4C
+ strb r3, [r0, #1]
+ ldr r1, [r6, r2]
+ cmp r1, #0
+ bne _02255F12
+ mov r1, #0xfa
+ lsl r1, r1, #2
+ strh r1, [r0, #2]
+ b _02255F24
+_02255F12:
+ mov r0, #0xfa
+ lsl r0, r0, #2
+ mul r0, r1
+ add r1, r2, #4
+ ldr r1, [r6, r1]
+ bl _u32_div_f
+ add r1, sp, #4
+ strh r0, [r1, #2]
+_02255F24:
+ mov r0, #4
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02255F38: .word 0x00002E4C
+
+ thumb_func_start MOD11_02255F3C
+MOD11_02255F3C: ; 0x02255F3C
+ push {r3, lr}
+ sub sp, #8
+ mov r1, #0x22
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+
+ thumb_func_start MOD11_02255F54
+MOD11_02255F54: ; 0x02255F54
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r7, r1, #0
+ str r2, [sp, #4]
+ mov r2, #0x23
+ add r1, sp, #8
+ add r6, r0, #0
+ strb r2, [r1]
+ mov r4, #0
+ bl MOD11_0222FF84
+ cmp r0, #0
+ ble _02255F86
+ add r5, sp, #8
+_02255F70:
+ ldr r0, _02255F9C ; =0x0000219C
+ add r1, r7, r4
+ ldrb r0, [r1, r0]
+ add r4, r4, #1
+ strb r0, [r5, #4]
+ add r0, r6, #0
+ add r5, r5, #1
+ bl MOD11_0222FF84
+ cmp r4, r0
+ blt _02255F70
+_02255F86:
+ mov r0, #8
+ str r0, [sp]
+ ldr r2, [sp, #4]
+ add r0, r6, #0
+ mov r1, #1
+ add r3, sp, #8
+ bl MOD11_02254878
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02255F9C: .word 0x0000219C
+
+ thumb_func_start MOD11_02255FA0
+MOD11_02255FA0: ; 0x02255FA0
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #0x24
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02255FBC
+MOD11_02255FBC: ; 0x02255FBC
+ push {r0, r1, r2, r3}
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x2c
+ add r4, r1, #0
+ add r5, r0, #0
+ bl MOD11_0222FF78
+ add r1, r4, #0
+ bl MOD11_02243400
+ mov r1, #0x25
+ add r0, sp, #4
+ strb r1, [r0]
+ add r6, sp, #0x48
+ add r3, sp, #8
+ mov r2, #4
+_02255FDC:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02255FDC
+ ldr r0, [r6]
+ mov r1, #1
+ str r0, [r3]
+ mov r0, #0x28
+ str r0, [sp]
+ add r0, r5, #0
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #0x2c
+ pop {r3, r4, r5, r6}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ .align 2, 0
+
+ thumb_func_start MOD11_02256004
+MOD11_02256004: ; 0x02256004
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02256020
+MOD11_02256020: ; 0x02256020
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r1, #0
+ ldr r1, _0225613C ; =0x0000219C
+ add r4, r2, #0
+ add r7, r5, r1
+ ldrb r2, [r7, r4]
+ add r1, r4, #0
+ str r0, [sp, #4]
+ bl MOD11_02230014
+ add r6, r0, #0
+ mov r1, #5
+ mov r2, #0
+ bl GetMonData
+ str r0, [sp, #0xc]
+ add r0, r6, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl GetMonData
+ str r0, [sp, #8]
+ mov r0, #0x26
+ add r2, sp, #0x10
+ strb r0, [r2]
+ mov r0, #0xc0
+ add r6, r4, #0
+ mul r6, r0
+ ldr r1, _02256140 ; =0x00002D74
+ add r0, r5, r6
+ ldrb r3, [r0, r1]
+ strb r3, [r2, #1]
+ add r3, r1, #0
+ add r3, #0x18
+ ldr r3, [r0, r3]
+ add r1, #0x1c
+ strh r3, [r2, #2]
+ ldr r0, [r0, r1]
+ add r1, r4, #0
+ strh r0, [r2, #4]
+ ldrb r0, [r7, r4]
+ strb r0, [r2, #6]
+ add r0, r5, #0
+ bl MOD11_0224524C
+ add r1, sp, #0x10
+ ldrb r2, [r1, #7]
+ mov r3, #0x1f
+ lsl r0, r0, #0x18
+ bic r2, r3
+ lsr r3, r0, #0x18
+ mov r0, #0x1f
+ and r0, r3
+ orr r0, r2
+ strb r0, [r1, #7]
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ add r7, r5, r0
+ ldrh r0, [r7, r6]
+ cmp r0, #0x1d
+ beq _022560A0
+ cmp r0, #0x20
+ bne _022560BA
+_022560A0:
+ ldr r0, _02256144 ; =0x00002D54
+ add r1, r5, r6
+ ldr r0, [r1, r0]
+ lsr r0, r0, #0x1f
+ bne _022560BA
+ add r0, sp, #0x10
+ ldrb r1, [r0, #7]
+ mov r2, #0x60
+ bic r1, r2
+ mov r2, #0x40
+ orr r1, r2
+ strb r1, [r0, #7]
+ b _022560D4
+_022560BA:
+ add r3, sp, #0x10
+ ldrb r2, [r3, #7]
+ mov r0, #0x60
+ add r1, r5, r6
+ bic r2, r0
+ ldr r0, _02256148 ; =0x00002DBE
+ ldrb r0, [r1, r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x19
+ orr r0, r2
+ strb r0, [r3, #7]
+_022560D4:
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #8]
+ bl GetMonExpBySpeciesAndLevel
+ mov r1, #0xc0
+ mul r1, r4
+ add r2, r5, r1
+ ldr r1, _0225614C ; =0x00002DA4
+ ldr r1, [r2, r1]
+ sub r0, r1, r0
+ ldr r1, [sp, #8]
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0xc]
+ add r1, r1, #1
+ bl GetMonExpBySpeciesAndLevel
+ add r5, r0, #0
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #8]
+ bl GetMonExpBySpeciesAndLevel
+ sub r0, r5, r0
+ str r0, [sp, #0x1c]
+ ldrh r1, [r7, r6]
+ ldr r0, [sp, #4]
+ bl MOD11_02231668
+ add r3, sp, #0x10
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x1f
+ ldrb r1, [r3, #7]
+ mov r2, #0x80
+ lsr r0, r0, #0x18
+ bic r1, r2
+ orr r0, r1
+ strb r0, [r3, #7]
+ ldr r0, [sp, #4]
+ bl MOD11_02230E00
+ str r0, [sp, #0x20]
+ mov r0, #0x14
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0225613C: .word 0x0000219C
+_02256140: .word 0x00002D74
+_02256144: .word 0x00002D54
+_02256148: .word 0x00002DBE
+_0225614C: .word 0x00002DA4
+
+ thumb_func_start MOD11_02256150
+MOD11_02256150: ; 0x02256150
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ add r6, r1, #0
+ str r2, [sp, #8]
+ mov r1, #0x27
+ add r2, sp, #0x10
+ strb r1, [r2]
+ ldrb r1, [r2, #1]
+ mov r3, #0xf
+ str r0, [sp, #4]
+ bic r1, r3
+ ldr r3, [sp, #8]
+ add r4, r6, r3
+ ldr r3, _02256230 ; =0x0000219C
+ ldrb r4, [r4, r3]
+ mov r3, #0xf
+ and r3, r4
+ orr r1, r3
+ strb r1, [r2, #1]
+ ldr r1, [sp, #8]
+ mov r3, #0xc0
+ mul r3, r1
+ ldrb r4, [r2, #1]
+ mov r1, #0xf0
+ str r3, [sp, #0xc]
+ bic r4, r1
+ add r1, r3, #0
+ add r3, r6, r1
+ ldr r1, _02256234 ; =0x00002DCC
+ ldr r5, [r3, r1]
+ lsl r5, r5, #0x1a
+ lsr r5, r5, #0x1c
+ lsl r5, r5, #0x18
+ lsr r5, r5, #0x18
+ lsl r5, r5, #0x1c
+ lsr r5, r5, #0x18
+ orr r4, r5
+ strb r4, [r2, #1]
+ add r4, r1, #0
+ sub r4, #0x40
+ ldr r4, [r3, r4]
+ sub r1, #0x14
+ strh r4, [r2, #2]
+ ldrh r1, [r3, r1]
+ strh r1, [r2, #0xc]
+ ldr r1, [sp, #8]
+ bl MOD11_02230270
+ lsl r0, r0, #3
+ add r1, r6, r0
+ mov r0, #0x71
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #8]
+ mov r2, #0xc0
+ mul r2, r1
+ lsl r0, r0, #3
+ lsr r0, r0, #0x1a
+ add r1, r6, r2
+ mov ip, r2
+ add r2, sp, #0x10
+ str r0, [sp, #0x18]
+ ldr r7, _02256238 ; =0x00002D6C
+ mov r0, #0
+ add r3, r1, #0
+ add r4, r2, #0
+_022561D4:
+ ldr r5, _0225623C ; =0x00002D4C
+ add r0, r0, #1
+ ldrh r5, [r1, r5]
+ add r1, r1, #2
+ strh r5, [r2, #0xe]
+ ldrb r5, [r3, r7]
+ add r2, r2, #2
+ add r3, r3, #1
+ strb r5, [r4, #0x16]
+ add r4, r4, #1
+ cmp r0, #4
+ blt _022561D4
+ add r1, sp, #0x10
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ cmp r0, #0
+ beq _0225620C
+ mov r0, ip
+ add r3, r6, r0
+ ldr r0, _02256240 ; =0x00002DAC
+ ldr r1, _02256244 ; =0xFFFFF0FF
+ ldr r2, [r3, r0]
+ add r0, r0, #4
+ and r1, r2
+ str r1, [sp, #0x14]
+ ldr r0, [r3, r0]
+ str r0, [sp, #0x2c]
+ b _0225621A
+_0225620C:
+ mov r0, #0
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0xc]
+ add r1, r6, r0
+ ldr r0, _02256248 ; =0x00002DB0
+ ldr r0, [r1, r0]
+ str r0, [sp, #0x2c]
+_0225621A:
+ mov r0, #0x20
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #8]
+ mov r1, #1
+ add r3, sp, #0x10
+ bl MOD11_02254878
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02256230: .word 0x0000219C
+_02256234: .word 0x00002DCC
+_02256238: .word 0x00002D6C
+_0225623C: .word 0x00002D4C
+_02256240: .word 0x00002DAC
+_02256244: .word 0xFFFFF0FF
+_02256248: .word 0x00002DB0
+
+ thumb_func_start MOD11_0225624C
+MOD11_0225624C: ; 0x0225624C
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #0x28
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02256268
+MOD11_02256268: ; 0x02256268
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #0x29
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02256284
+MOD11_02256284: ; 0x02256284
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ mov r5, #0x2a
+ add r4, sp, #4
+ strb r5, [r4]
+ strh r3, [r4, #2]
+ mov r3, #0xc0
+ mul r3, r2
+ add r3, r1, r3
+ ldr r1, _022562AC ; =0x00002D67
+ ldrb r1, [r3, r1]
+ add r3, sp, #4
+ strb r1, [r4, #1]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022562AC: .word 0x00002D67
+
+ thumb_func_start MOD11_022562B0
+MOD11_022562B0: ; 0x022562B0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ add r7, r0, #0
+ add r4, r2, #0
+ add r6, r3, #0
+ bl MOD11_0222FF78
+ add r1, r5, #0
+ bl MOD11_02243400
+ mov r1, #0x2b
+ add r0, sp, #4
+ strb r1, [r0]
+ strh r4, [r0, #2]
+ strb r6, [r0, #1]
+ mov r0, #4
+ str r0, [sp]
+ add r0, r7, #0
+ mov r1, #1
+ add r2, r5, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_022562E4
+MOD11_022562E4: ; 0x022562E4
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ mov r5, #0x2c
+ add r1, sp, #4
+ strb r5, [r1]
+ strb r2, [r1, #1]
+ strb r3, [r1, #2]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02256308
+MOD11_02256308: ; 0x02256308
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r7, r1, #0
+ mov r1, #0x2d
+ add r3, sp, #4
+ strb r1, [r3]
+ mov r1, #0xc0
+ add r6, r7, #0
+ mul r6, r1
+ ldr r1, [r0, #0x30]
+ add r2, r1, r6
+ mov r1, #0xb5
+ lsl r1, r1, #6
+ ldrh r2, [r2, r1]
+ strh r2, [r3, #2]
+ ldr r2, [r0, #0x30]
+ add r4, r2, r6
+ add r2, r1, #0
+ add r2, #0x26
+ ldrb r2, [r4, r2]
+ lsl r2, r2, #0x1a
+ lsr r2, r2, #0x1f
+ strb r2, [r3, #5]
+ ldr r2, [r0, #0x30]
+ add r5, r2, r6
+ add r2, r1, #0
+ add r2, #0x70
+ ldr r4, [r5, r2]
+ mov r2, #2
+ lsl r2, r2, #0x14
+ tst r2, r4
+ beq _0225635C
+ add r2, r1, #0
+ add r2, #0xba
+ ldrh r2, [r5, r2]
+ add r1, #0xa4
+ strb r2, [r3, #4]
+ ldr r2, [r0, #0x30]
+ add r2, r2, r6
+ ldr r1, [r2, r1]
+ str r1, [sp, #0xc]
+ b _02256372
+_0225635C:
+ add r2, r1, #0
+ add r2, #0x7e
+ ldrb r2, [r5, r2]
+ add r1, #0x68
+ lsl r2, r2, #0x1c
+ lsr r2, r2, #0x1c
+ strb r2, [r3, #4]
+ ldr r2, [r0, #0x30]
+ add r2, r2, r6
+ ldr r1, [r2, r1]
+ str r1, [sp, #0xc]
+_02256372:
+ ldr r1, [r0, #0x30]
+ add r3, sp, #4
+ add r2, r1, r6
+ ldr r1, _02256394 ; =0x00002D66
+ ldrb r1, [r2, r1]
+ lsl r1, r1, #0x1b
+ lsr r2, r1, #0x1b
+ add r1, sp, #4
+ strb r2, [r1, #1]
+ mov r1, #0xc
+ str r1, [sp]
+ mov r1, #1
+ add r2, r7, #0
+ bl MOD11_02254878
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02256394: .word 0x00002D66
+
+ thumb_func_start MOD11_02256398
+MOD11_02256398: ; 0x02256398
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #0x2e
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022563B4
+MOD11_022563B4: ; 0x022563B4
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #0x2f
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022563D0
+MOD11_022563D0: ; 0x022563D0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ str r4, [sp]
+ ldr r1, [r5, #0x30]
+ add r2, sp, #4
+ mov r3, #0x30
+ bl MOD11_022569DC
+ mov r0, #8
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD11_022563F8
+MOD11_022563F8: ; 0x022563F8
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ str r4, [sp]
+ ldr r1, [r5, #0x30]
+ add r2, sp, #4
+ mov r3, #0x31
+ bl MOD11_022569DC
+ mov r0, #8
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD11_02256420
+MOD11_02256420: ; 0x02256420
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ str r4, [sp]
+ ldr r1, [r5, #0x30]
+ add r2, sp, #4
+ mov r3, #0x32
+ bl MOD11_022569DC
+ mov r0, #8
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD11_02256448
+MOD11_02256448: ; 0x02256448
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ str r4, [sp]
+ ldr r1, [r5, #0x30]
+ add r2, sp, #4
+ mov r3, #0x33
+ bl MOD11_022569DC
+ mov r0, #8
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #0xc
+ pop {r4, r5, pc}
+
+ thumb_func_start MOD11_02256470
+MOD11_02256470: ; 0x02256470
+ push {r3, lr}
+ sub sp, #8
+ mov r1, #0x34
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225648C
+MOD11_0225648C: ; 0x0225648C
+ push {r3, lr}
+ sub sp, #8
+ mov r1, #0x35
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022564A8
+MOD11_022564A8: ; 0x022564A8
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ mov r5, #0x36
+ add r1, sp, #4
+ strb r5, [r1]
+ strb r2, [r1, #1]
+ strh r3, [r1, #2]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022564CC
+MOD11_022564CC: ; 0x022564CC
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ mov r1, #0x37
+ add r5, r0, #0
+ str r1, [sp, #4]
+ bl MOD11_0222FF74
+ mov r1, #4
+ tst r0, r1
+ beq _022564F0
+ str r1, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+_022564F0:
+ add sp, #8
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022564F4
+MOD11_022564F4: ; 0x022564F4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x64
+ str r0, [sp, #4]
+ add r0, r1, #0
+ str r2, [sp, #8]
+ mov r2, #0x38
+ add r7, sp, #0xc
+ add r1, sp, #0xc
+ strb r2, [r1]
+ mov r1, #0
+ mov ip, r1
+ ldr r1, _0225658C ; =0x00002D66
+ add r4, r7, #0
+ add r3, r0, r1
+ add r1, #0x58
+ add r5, r7, #0
+ add r6, r0, r1
+_02256516:
+ mov r1, #0xb5
+ lsl r1, r1, #6
+ ldrh r1, [r0, r1]
+ add r2, r4, #0
+ add r2, #0x24
+ strh r1, [r7, #0x18]
+ ldrb r1, [r3]
+ lsl r1, r1, #0x1a
+ lsr r1, r1, #0x1f
+ strb r1, [r2]
+ ldrb r1, [r3]
+ add r2, r4, #0
+ add r2, #0x28
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x1b
+ strb r1, [r2]
+ ldr r1, _02256590 ; =0x00002DB0
+ ldr r2, [r0, r1]
+ mov r1, #2
+ lsl r1, r1, #0x14
+ tst r1, r2
+ beq _02256550
+ ldr r1, _02256594 ; =0x00002DFA
+ add r2, r4, #0
+ ldrh r1, [r0, r1]
+ add r2, #0x20
+ strb r1, [r2]
+ ldr r1, _02256598 ; =0x00002DE4
+ b _0225655E
+_02256550:
+ ldrb r1, [r6]
+ add r2, r4, #0
+ add r2, #0x20
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ strb r1, [r2]
+ ldr r1, _0225659C ; =0x00002DA8
+_0225655E:
+ ldr r1, [r0, r1]
+ add r0, #0xc0
+ str r1, [r5, #0x2c]
+ mov r1, ip
+ add r1, r1, #1
+ add r7, r7, #2
+ add r3, #0xc0
+ add r4, r4, #1
+ add r5, r5, #4
+ add r6, #0xc0
+ mov ip, r1
+ cmp r1, #4
+ blt _02256516
+ mov r0, #0x58
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #8]
+ mov r1, #1
+ add r3, sp, #0xc
+ bl MOD11_02254878
+ add sp, #0x64
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225658C: .word 0x00002D66
+_02256590: .word 0x00002DB0
+_02256594: .word 0x00002DFA
+_02256598: .word 0x00002DE4
+_0225659C: .word 0x00002DA8
+
+ thumb_func_start MOD11_022565A0
+MOD11_022565A0: ; 0x022565A0
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #0x39
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022565BC
+MOD11_022565BC: ; 0x022565BC
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ mov r1, #0x3a
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022565D8
+MOD11_022565D8: ; 0x022565D8
+ push {r3, lr}
+ sub sp, #8
+ mov r1, #0x3b
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022565F4
+MOD11_022565F4: ; 0x022565F4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ mov r2, #0x3c
+ add r1, sp, #4
+ strb r2, [r1]
+ mov r4, #0
+ add r6, r0, #0
+ strb r4, [r1, #1]
+ bl MOD11_0222FF84
+ cmp r0, #0
+ ble _02256632
+ add r7, sp, #4
+_02256610:
+ ldr r0, _02256648 ; =0x000021A8
+ ldr r0, [r5, r0]
+ cmp r0, #0x10
+ bne _02256624
+ add r0, r4, #0
+ bl MaskOfFlagNo
+ ldrb r1, [r7, #1]
+ orr r0, r1
+ strb r0, [r7, #1]
+_02256624:
+ add r0, r6, #0
+ add r5, #0x10
+ add r4, r4, #1
+ bl MOD11_0222FF84
+ cmp r4, r0
+ blt _02256610
+_02256632:
+ mov r0, #4
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #1
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02256648: .word 0x000021A8
+
+ thumb_func_start MOD11_0225664C
+MOD11_0225664C: ; 0x0225664C
+ push {r3, lr}
+ sub sp, #8
+ mov r1, #0x3d
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02256668
+MOD11_02256668: ; 0x02256668
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x64
+ str r0, [sp, #4]
+ add r0, r1, #0
+ str r2, [sp, #8]
+ mov r2, #0x3e
+ add r7, sp, #0xc
+ add r1, sp, #0xc
+ strb r2, [r1]
+ mov r1, #0
+ mov ip, r1
+ ldr r1, _02256700 ; =0x00002D66
+ add r4, r7, #0
+ add r3, r0, r1
+ add r1, #0x58
+ add r5, r7, #0
+ add r6, r0, r1
+_0225668A:
+ mov r1, #0xb5
+ lsl r1, r1, #6
+ ldrh r1, [r0, r1]
+ add r2, r4, #0
+ add r2, #0x24
+ strh r1, [r7, #0x18]
+ ldrb r1, [r3]
+ lsl r1, r1, #0x1a
+ lsr r1, r1, #0x1f
+ strb r1, [r2]
+ ldrb r1, [r3]
+ add r2, r4, #0
+ add r2, #0x28
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x1b
+ strb r1, [r2]
+ ldr r1, _02256704 ; =0x00002DB0
+ ldr r2, [r0, r1]
+ mov r1, #2
+ lsl r1, r1, #0x14
+ tst r1, r2
+ beq _022566C4
+ ldr r1, _02256708 ; =0x00002DFA
+ add r2, r4, #0
+ ldrh r1, [r0, r1]
+ add r2, #0x20
+ strb r1, [r2]
+ ldr r1, _0225670C ; =0x00002DE4
+ b _022566D2
+_022566C4:
+ ldrb r1, [r6]
+ add r2, r4, #0
+ add r2, #0x20
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ strb r1, [r2]
+ ldr r1, _02256710 ; =0x00002DA8
+_022566D2:
+ ldr r1, [r0, r1]
+ add r0, #0xc0
+ str r1, [r5, #0x2c]
+ mov r1, ip
+ add r1, r1, #1
+ add r7, r7, #2
+ add r3, #0xc0
+ add r4, r4, #1
+ add r5, r5, #4
+ add r6, #0xc0
+ mov ip, r1
+ cmp r1, #4
+ blt _0225668A
+ mov r0, #0x58
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #8]
+ mov r1, #1
+ add r3, sp, #0xc
+ bl MOD11_02254878
+ add sp, #0x64
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02256700: .word 0x00002D66
+_02256704: .word 0x00002DB0
+_02256708: .word 0x00002DFA
+_0225670C: .word 0x00002DE4
+_02256710: .word 0x00002DA8
+
+ thumb_func_start MOD11_02256714
+MOD11_02256714: ; 0x02256714
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ mov r3, #0x3f
+ add r4, sp, #4
+ strb r3, [r4]
+ ldr r3, _02256750 ; =0x0000216C
+ ldr r5, [r1, r3]
+ mov r1, #2
+ add r3, r5, #0
+ tst r3, r1
+ beq _0225672E
+ strb r1, [r4, #1]
+ b _0225673E
+_0225672E:
+ mov r1, #4
+ tst r1, r5
+ beq _0225673A
+ mov r1, #1
+ strb r1, [r4, #1]
+ b _0225673E
+_0225673A:
+ mov r1, #0
+ strb r1, [r4, #1]
+_0225673E:
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_02256750: .word 0x0000216C
+
+ thumb_func_start MOD11_02256754
+MOD11_02256754: ; 0x02256754
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ mov r3, #0x40
+ add r1, sp, #4
+ strb r3, [r1]
+ strh r2, [r1, #2]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02256774
+MOD11_02256774: ; 0x02256774
+ push {r3, r4, lr}
+ sub sp, #0xc
+ mov r2, #0x41
+ add r1, sp, #4
+ strb r2, [r1]
+ add r4, r0, #0
+ bl MOD11_0223145C
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225679C
+MOD11_0225679C: ; 0x0225679C
+ push {r3, lr}
+ sub sp, #8
+ mov r1, #0x42
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #1
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022567B8
+MOD11_022567B8: ; 0x022567B8
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r0, sp, #4
+ add r4, r1, #0
+ strb r2, [r0]
+ bl FUN_02031190
+ add r1, sp, #4
+ strb r0, [r1, #1]
+ mov r0, #4
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #2
+ add r2, r4, #0
+ add r3, sp, #4
+ bl MOD11_02254878
+ add sp, #8
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022567E0
+MOD11_022567E0: ; 0x022567E0
+ push {r3, r4, r5, r6, r7, lr}
+ ldrb r6, [r1, #3]
+ ldrb r3, [r1]
+ ldrb r2, [r1, #2]
+ lsl r6, r6, #8
+ add r5, r0, #0
+ orr r2, r6
+ ldrb r4, [r1, #1]
+ cmp r3, #0
+ bne _02256814
+ mov r3, #0
+ cmp r2, #0
+ ble _02256852
+ mov r6, #0x23
+ lsl r4, r4, #8
+ lsl r6, r6, #8
+_02256800:
+ add r0, r1, r3
+ ldr r7, [r5, #0x30]
+ ldrb r0, [r0, #4]
+ add r7, r4, r7
+ add r7, r3, r7
+ add r3, r3, #1
+ strb r0, [r7, r6]
+ cmp r3, r2
+ blt _02256800
+ pop {r3, r4, r5, r6, r7, pc}
+_02256814:
+ cmp r3, #1
+ bne _02256836
+ mov r0, #0
+ cmp r2, #0
+ ble _02256852
+ lsl r3, r4, #2
+ add r5, r5, r3
+_02256822:
+ add r3, r1, r0
+ ldrb r4, [r3, #4]
+ ldr r3, [r5, #0x34]
+ add r3, r3, r0
+ add r3, #0x94
+ add r0, r0, #1
+ strb r4, [r3]
+ cmp r0, r2
+ blt _02256822
+ pop {r3, r4, r5, r6, r7, pc}
+_02256836:
+ cmp r3, #2
+ bne _02256852
+ ldrb r7, [r1, #4]
+ ldrb r6, [r1, #5]
+ bl MOD11_02230DD4
+ cmp r0, #0
+ beq _02256852
+ ldr r0, [r5, #0x30]
+ add r1, r6, #0
+ add r2, r4, #0
+ add r3, r7, #0
+ bl MOD11_02243340
+_02256852:
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_02256854
+MOD11_02256854: ; 0x02256854
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ add r5, r2, #0
+ mov r1, #0x16
+ strb r1, [r5]
+ add r1, sp, #0x18
+ ldrh r1, [r1, #0x1c]
+ add r7, r0, #0
+ strh r1, [r5, #2]
+ ldr r1, [sp, #0x2c]
+ strh r1, [r5, #0x14]
+ ldr r1, [sp, #0x30]
+ strh r1, [r5, #0x16]
+ ldr r1, [sp, #0x28]
+ str r3, [r5, #0x4c]
+ str r1, [r5, #0x50]
+ bl MOD11_02230294
+ str r0, [r5, #0x54]
+ cmp r4, #0
+ bne _02256882
+ b _022569B2
+_02256882:
+ ldr r0, _022569B8 ; =0x00002144
+ ldr r1, [r4, r0]
+ add r0, #0x10
+ str r1, [r5, #4]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02256892
+ b _0225689E
+_02256892:
+ add r0, sp, #0x18
+ ldrh r0, [r0, #0x1c]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _022569BC ; =0x000003E1
+ ldrb r0, [r1, r0]
+_0225689E:
+ ldr r1, [sp, #0x2c]
+ strh r0, [r5, #8]
+ mov r0, #0xc0
+ add r6, r1, #0
+ mul r6, r0
+ ldr r0, _022569C0 ; =0x00002D75
+ add r1, r4, r6
+ ldrb r0, [r1, r0]
+ add r1, r4, #0
+ mov r2, #8
+ strh r0, [r5, #0xc]
+ mov r0, #0xd
+ str r0, [sp]
+ add r0, r7, #0
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _022568E2
+ mov r0, #0x4c
+ str r0, [sp]
+ add r0, r7, #0
+ add r1, r4, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD11_02246870
+ cmp r0, #0
+ bne _022568E2
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ str r0, [r5, #0x10]
+ b _022568E6
+_022568E2:
+ mov r0, #0
+ str r0, [r5, #0x10]
+_022568E6:
+ ldr r0, _022569C4 ; =0x00002164
+ ldr r0, [r4, r0]
+ strh r0, [r5, #0xa]
+ ldr r0, _022569C8 ; =0x00002DB0
+ add r1, r4, r0
+ mov r0, #1
+ ldr r2, [r1, r6]
+ lsl r0, r0, #0x18
+ tst r0, r2
+ beq _022568FE
+ mov r3, #1
+ b _02256900
+_022568FE:
+ mov r3, #0
+_02256900:
+ ldrh r0, [r5, #0xe]
+ mov r2, #1
+ bic r0, r2
+ lsl r2, r3, #0x10
+ lsr r3, r2, #0x10
+ mov r2, #1
+ and r3, r2
+ orr r0, r3
+ strh r0, [r5, #0xe]
+ ldr r1, [r1, r6]
+ lsl r0, r2, #0x15
+ tst r0, r1
+ bne _0225691C
+ mov r2, #0
+_0225691C:
+ ldrh r0, [r5, #0xe]
+ mov r1, #2
+ str r5, [sp, #0x10]
+ bic r0, r1
+ lsl r1, r2, #0x10
+ lsr r1, r1, #0x10
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1e
+ orr r0, r1
+ strh r0, [r5, #0xe]
+ ldr r0, _022569CC ; =0x00002D66
+ mov r1, #0
+ add r2, r4, r0
+ add r0, #0x58
+ add r3, r5, #0
+ add r7, r4, r0
+_0225693C:
+ mov r0, #0xb5
+ lsl r0, r0, #6
+ ldrh r6, [r4, r0]
+ ldr r0, [sp, #0x10]
+ strh r6, [r0, #0x18]
+ ldrb r0, [r2]
+ lsl r0, r0, #0x1a
+ lsr r6, r0, #0x1f
+ add r0, r5, r1
+ str r0, [sp, #8]
+ add r0, #0x24
+ str r0, [sp, #8]
+ strb r6, [r0]
+ ldrb r0, [r2]
+ lsl r0, r0, #0x1b
+ lsr r6, r0, #0x1b
+ add r0, r5, r1
+ str r0, [sp, #4]
+ add r0, #0x28
+ str r0, [sp, #4]
+ strb r6, [r0]
+ mov r0, #0xb7
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ str r0, [r3, #0x3c]
+ ldr r0, _022569C8 ; =0x00002DB0
+ ldr r6, [r4, r0]
+ mov r0, #2
+ lsl r0, r0, #0x14
+ tst r0, r6
+ beq _0225698C
+ ldr r0, _022569D0 ; =0x00002DFA
+ ldrh r6, [r4, r0]
+ add r0, r5, r1
+ str r0, [sp, #0xc]
+ add r0, #0x20
+ str r0, [sp, #0xc]
+ strb r6, [r0]
+ ldr r0, _022569D4 ; =0x00002DE4
+ b _0225699A
+_0225698C:
+ ldrb r0, [r7]
+ lsl r0, r0, #0x1c
+ lsr r6, r0, #0x1c
+ add r0, r5, r1
+ add r0, #0x20
+ strb r6, [r0]
+ ldr r0, _022569D8 ; =0x00002DA8
+_0225699A:
+ ldr r0, [r4, r0]
+ add r1, r1, #1
+ str r0, [r3, #0x2c]
+ ldr r0, [sp, #0x10]
+ add r4, #0xc0
+ add r0, r0, #2
+ str r0, [sp, #0x10]
+ add r2, #0xc0
+ add r3, r3, #4
+ add r7, #0xc0
+ cmp r1, #4
+ blt _0225693C
+_022569B2:
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022569B8: .word 0x00002144
+_022569BC: .word 0x000003E1
+_022569C0: .word 0x00002D75
+_022569C4: .word 0x00002164
+_022569C8: .word 0x00002DB0
+_022569CC: .word 0x00002D66
+_022569D0: .word 0x00002DFA
+_022569D4: .word 0x00002DE4
+_022569D8: .word 0x00002DA8
+
+ thumb_func_start MOD11_022569DC
+MOD11_022569DC: ; 0x022569DC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ str r0, [sp]
+ ldr r0, [sp, #0x38]
+ add r5, r2, #0
+ str r1, [sp, #4]
+ str r0, [sp, #0x38]
+ mov r0, #0
+ add r1, r5, #0
+ mov r2, #8
+ add r6, r3, #0
+ bl MIi_CpuClearFast
+ ldr r0, [sp]
+ bl MOD11_0222FF74
+ add r4, r0, #0
+ mov r0, #0xc
+ and r0, r4
+ strb r6, [r5]
+ cmp r0, #0xc
+ beq _02256A30
+ mov r0, #0x10
+ tst r0, r4
+ beq _02256A1A
+ ldr r0, [sp]
+ ldr r1, [sp, #0x38]
+ bl MOD11_02230270
+ cmp r0, #0
+ bne _02256A30
+_02256A1A:
+ cmp r4, #0x4b
+ bne _02256A2A
+ ldr r0, [sp]
+ ldr r1, [sp, #0x38]
+ bl MOD11_02230270
+ cmp r0, #0
+ bne _02256A30
+_02256A2A:
+ cmp r4, #0xcb
+ beq _02256A30
+ b _02256B66
+_02256A30:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x38]
+ bl MOD11_02230260
+ cmp r0, #2
+ beq _02256A48
+ ldr r0, [sp]
+ ldr r1, [sp, #0x38]
+ bl MOD11_02230260
+ cmp r0, #3
+ bne _02256A56
+_02256A48:
+ ldr r6, [sp, #0x38]
+ ldr r0, [sp]
+ add r1, r6, #0
+ bl MOD11_022302BC
+ str r0, [sp, #0x38]
+ b _02256A60
+_02256A56:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x38]
+ bl MOD11_022302BC
+ add r6, r0, #0
+_02256A60:
+ ldr r0, [sp]
+ add r1, r6, #0
+ bl MOD11_0222FF88
+ mov r4, #0
+ str r0, [sp, #0x10]
+ add r7, r4, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _02256AE0
+ mov r0, #6
+ add r1, r6, #0
+ mul r1, r0
+ ldr r0, [sp, #4]
+ add r6, r0, r1
+_02256A80:
+ ldr r1, _02256C00 ; =0x0000312C
+ ldr r0, [sp, #0x10]
+ ldrb r1, [r6, r1]
+ bl GetPartyMonByIndex
+ mov r1, #0xad
+ mov r2, #0
+ str r0, [sp, #0x14]
+ bl GetMonData
+ cmp r0, #0
+ beq _02256AD2
+ ldr r1, _02256C04 ; =0x000001EE
+ cmp r0, r1
+ beq _02256AD2
+ ldr r0, [sp, #0x14]
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02256ACA
+ ldr r0, [sp, #0x14]
+ mov r1, #0x9f
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02256AC2
+ add r1, r5, r4
+ mov r0, #3
+ strb r0, [r1, #2]
+ b _02256AD0
+_02256AC2:
+ add r1, r5, r4
+ mov r0, #1
+ strb r0, [r1, #2]
+ b _02256AD0
+_02256ACA:
+ add r1, r5, r4
+ mov r0, #2
+ strb r0, [r1, #2]
+_02256AD0:
+ add r4, r4, #1
+_02256AD2:
+ ldr r0, [sp, #0x10]
+ add r6, r6, #1
+ add r7, r7, #1
+ bl GetPartyCount
+ cmp r7, r0
+ blt _02256A80
+_02256AE0:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x38]
+ bl MOD11_0222FF88
+ str r0, [sp, #8]
+ mov r4, #3
+ mov r6, #0
+ bl GetPartyCount
+ cmp r0, #0
+ bgt _02256AF8
+ b _02256BFA
+_02256AF8:
+ ldr r0, [sp, #0x38]
+ mov r1, #6
+ mul r1, r0
+ ldr r0, [sp, #4]
+ add r7, r0, r1
+_02256B02:
+ ldr r1, _02256C00 ; =0x0000312C
+ ldr r0, [sp, #8]
+ ldrb r1, [r7, r1]
+ bl GetPartyMonByIndex
+ mov r1, #0xad
+ mov r2, #0
+ str r0, [sp, #0x18]
+ bl GetMonData
+ cmp r0, #0
+ beq _02256B54
+ ldr r1, _02256C04 ; =0x000001EE
+ cmp r0, r1
+ beq _02256B54
+ ldr r0, [sp, #0x18]
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02256B4C
+ ldr r0, [sp, #0x18]
+ mov r1, #0x9f
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02256B44
+ add r1, r5, r4
+ mov r0, #3
+ strb r0, [r1, #2]
+ b _02256B52
+_02256B44:
+ add r1, r5, r4
+ mov r0, #1
+ strb r0, [r1, #2]
+ b _02256B52
+_02256B4C:
+ add r1, r5, r4
+ mov r0, #2
+ strb r0, [r1, #2]
+_02256B52:
+ add r4, r4, #1
+_02256B54:
+ ldr r0, [sp, #8]
+ add r7, r7, #1
+ add r6, r6, #1
+ bl GetPartyCount
+ cmp r6, r0
+ blt _02256B02
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+_02256B66:
+ mov r0, #2
+ tst r0, r4
+ beq _02256B7A
+ mov r0, #8
+ tst r0, r4
+ bne _02256B7A
+ ldr r0, [sp, #0x38]
+ mov r1, #1
+ and r0, r1
+ str r0, [sp, #0x38]
+_02256B7A:
+ ldr r0, [sp]
+ ldr r1, [sp, #0x38]
+ bl MOD11_0222FF88
+ mov r4, #0
+ str r0, [sp, #0xc]
+ add r7, r4, #0
+ bl GetPartyCount
+ cmp r0, #0
+ ble _02256BFA
+ ldr r0, [sp, #0x38]
+ mov r1, #6
+ mul r1, r0
+ ldr r0, [sp, #4]
+ add r6, r0, r1
+_02256B9A:
+ ldr r1, _02256C00 ; =0x0000312C
+ ldr r0, [sp, #0xc]
+ ldrb r1, [r6, r1]
+ bl GetPartyMonByIndex
+ mov r1, #0xad
+ mov r2, #0
+ str r0, [sp, #0x1c]
+ bl GetMonData
+ cmp r0, #0
+ beq _02256BEC
+ ldr r1, _02256C04 ; =0x000001EE
+ cmp r0, r1
+ beq _02256BEC
+ ldr r0, [sp, #0x1c]
+ mov r1, #0xa2
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02256BE4
+ ldr r0, [sp, #0x1c]
+ mov r1, #0x9f
+ mov r2, #0
+ bl GetMonData
+ cmp r0, #0
+ beq _02256BDC
+ add r1, r5, r4
+ mov r0, #3
+ strb r0, [r1, #2]
+ b _02256BEA
+_02256BDC:
+ add r1, r5, r4
+ mov r0, #1
+ strb r0, [r1, #2]
+ b _02256BEA
+_02256BE4:
+ add r1, r5, r4
+ mov r0, #2
+ strb r0, [r1, #2]
+_02256BEA:
+ add r4, r4, #1
+_02256BEC:
+ ldr r0, [sp, #0xc]
+ add r6, r6, #1
+ add r7, r7, #1
+ bl GetPartyCount
+ cmp r7, r0
+ blt _02256B9A
+_02256BFA:
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02256C00: .word 0x0000312C
+_02256C04: .word 0x000001EE
+
+ thumb_func_start MOD11_02256C08
+MOD11_02256C08: ; 0x02256C08
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ lsl r0, r3, #0x18
+ lsr r0, r0, #0x18
+ add r4, r1, #0
+ add r7, r2, #0
+ str r3, [sp, #0x18]
+ bl MOD11_02257FC0
+ add r6, r0, #0
+ ldr r3, [r6, #0x14]
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1b
+ str r3, [sp, #8]
+ bl FUN_0200C00C
+ mov r0, #0x1b
+ str r0, [sp]
+ mov r0, #0x23
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, _02256CC8 ; =0x00004E26
+ mov r1, #2
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ add r2, r5, #0
+ add r3, r4, #0
+ bl FUN_0200C0DC
+ ldr r3, [r6, #0x1c]
+ mov r0, #1
+ str r0, [sp]
+ str r3, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1b
+ bl FUN_0200C124
+ ldr r3, [r6, #0x20]
+ mov r0, #1
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1b
+ str r3, [sp, #4]
+ bl FUN_0200C13C
+ mov r0, #0x1b
+ str r0, [sp]
+ mov r0, #0x23
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, _02256CCC ; =0x00004E27
+ mov r1, #2
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ add r2, r5, #0
+ add r3, r4, #0
+ bl FUN_0200C0DC
+ ldr r0, [sp, #0x18]
+ sub r0, r0, #6
+ cmp r0, #1
+ bhi _02256CC4
+ mov r0, #0x1b
+ str r0, [sp]
+ mov r0, #0x2d
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, _02256CD0 ; =0x00004E28
+ mov r1, #2
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ add r2, r5, #0
+ add r3, r4, #0
+ bl FUN_0200C0DC
+_02256CC4:
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02256CC8: .word 0x00004E26
+_02256CCC: .word 0x00004E27
+_02256CD0: .word 0x00004E28
+
+ thumb_func_start MOD11_02256CD4
+MOD11_02256CD4: ; 0x02256CD4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ lsl r0, r3, #0x18
+ lsr r0, r0, #0x18
+ add r6, r1, #0
+ add r7, r2, #0
+ bl MOD11_02258024
+ add r4, r0, #0
+ beq _02256D44
+ ldr r3, [r4, #0x14]
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1b
+ str r3, [sp, #8]
+ bl FUN_0200C00C
+ mov r0, #0x1b
+ str r0, [sp]
+ mov r0, #0x23
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, _02256D48 ; =0x00004E26
+ mov r1, #2
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ add r2, r5, #0
+ add r3, r6, #0
+ bl FUN_0200C0DC
+ ldr r3, [r4, #0x1c]
+ mov r0, #1
+ str r0, [sp]
+ str r3, [sp, #4]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1b
+ bl FUN_0200C124
+ ldr r3, [r4, #0x20]
+ mov r0, #1
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0x1b
+ str r3, [sp, #4]
+ bl FUN_0200C13C
+_02256D44:
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02256D48: .word 0x00004E26
+
+ thumb_func_start MOD11_02256D4C
+MOD11_02256D4C: ; 0x02256D4C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ lsl r0, r2, #0x18
+ add r4, r1, #0
+ lsr r0, r0, #0x18
+ bl MOD11_02257FC0
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0200C154
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl FUN_0200C59C
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02256D70
+MOD11_02256D70: ; 0x02256D70
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ add r6, r1, #0
+ add r4, r2, #0
+ cmp r0, #0
+ bne _02256D82
+ bl ErrorHandling
+_02256D82:
+ add r0, r5, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ cmp r0, #6
+ bne _02256D94
+ mov r1, #3
+ lsl r1, r1, #0xa
+ and r4, r1
+ b _02256DA4
+_02256D94:
+ cmp r0, #7
+ bne _02256DA0
+ mov r1, #3
+ lsl r1, r1, #0xc
+ and r4, r1
+ b _02256DA4
+_02256DA0:
+ ldr r1, _02256F00 ; =0xFFFFC3FF
+ and r4, r1
+_02256DA4:
+ cmp r0, #7
+ bhi _02256DEA
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02256DB4: ; jump table
+ .short _02256DE6 - _02256DB4 - 2 ; case 0
+ .short _02256DC4 - _02256DB4 - 2 ; case 1
+ .short _02256DCA - _02256DB4 - 2 ; case 2
+ .short _02256DC4 - _02256DB4 - 2 ; case 3
+ .short _02256DCA - _02256DB4 - 2 ; case 4
+ .short _02256DC4 - _02256DB4 - 2 ; case 5
+ .short _02256DEA - _02256DB4 - 2 ; case 6
+ .short _02256DEA - _02256DB4 - 2 ; case 7
+_02256DC4:
+ mov r0, #0x26
+ bic r4, r0
+ b _02256DEA
+_02256DCA:
+ ldr r0, _02256F04 ; =0xFFFFFDDF
+ and r4, r0
+ add r0, r5, #0
+ add r0, #0x4f
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ bne _02256DE0
+ mov r0, #6
+ bic r4, r0
+ b _02256DEA
+_02256DE0:
+ mov r0, #1
+ bic r4, r0
+ b _02256DEA
+_02256DE6:
+ ldr r0, _02256F08 ; =0xFFFFFDFF
+ and r4, r0
+_02256DEA:
+ ldr r0, [r5, #0xc]
+ bl MOD11_0222FF74
+ mov r1, #1
+ tst r0, r1
+ beq _02256DFA
+ ldr r0, _02256F08 ; =0xFFFFFDFF
+ and r4, r0
+_02256DFA:
+ mov r0, #1
+ tst r0, r4
+ beq _02256E10
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD11_02257150
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD11_02257BEC
+_02256E10:
+ mov r0, #2
+ tst r0, r4
+ beq _02256E1E
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD11_0225787C
+_02256E1E:
+ mov r0, #4
+ tst r0, r4
+ beq _02256E2A
+ add r0, r5, #0
+ bl MOD11_02257908
+_02256E2A:
+ mov r0, #0x80
+ tst r0, r4
+ bne _02256E36
+ mov r0, #0x40
+ tst r0, r4
+ beq _02256E3C
+_02256E36:
+ add r0, r5, #0
+ bl MOD11_02257654
+_02256E3C:
+ mov r0, #8
+ tst r0, r4
+ beq _02256E48
+ add r0, r5, #0
+ bl MOD11_0225775C
+_02256E48:
+ mov r0, #0x10
+ tst r0, r4
+ beq _02256E54
+ add r0, r5, #0
+ bl MOD11_022574F0
+_02256E54:
+ mov r0, #0x20
+ tst r0, r4
+ beq _02256E6A
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD11_022571B8
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD11_02257BEC
+_02256E6A:
+ mov r0, #2
+ lsl r0, r0, #8
+ tst r0, r4
+ beq _02256E78
+ add r0, r5, #0
+ bl MOD11_02257968
+_02256E78:
+ mov r0, #1
+ lsl r0, r0, #8
+ tst r0, r4
+ beq _02256EDC
+ add r0, r5, #0
+ add r0, #0x4a
+ ldrb r0, [r0]
+ cmp r0, #5
+ bhi _02256EA2
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02256E96: ; jump table
+ .short _02256EA2 - _02256E96 - 2 ; case 0
+ .short _02256EAC - _02256E96 - 2 ; case 1
+ .short _02256EB6 - _02256E96 - 2 ; case 2
+ .short _02256EC0 - _02256E96 - 2 ; case 3
+ .short _02256ECA - _02256E96 - 2 ; case 4
+ .short _02256ED4 - _02256E96 - 2 ; case 5
+_02256EA2:
+ add r0, r5, #0
+ mov r1, #0x38
+ bl MOD11_022579B8
+ b _02256EDC
+_02256EAC:
+ add r0, r5, #0
+ mov r1, #0x2f
+ bl MOD11_022579B8
+ b _02256EDC
+_02256EB6:
+ add r0, r5, #0
+ mov r1, #0x32
+ bl MOD11_022579B8
+ b _02256EDC
+_02256EC0:
+ add r0, r5, #0
+ mov r1, #0x35
+ bl MOD11_022579B8
+ b _02256EDC
+_02256ECA:
+ add r0, r5, #0
+ mov r1, #0x2c
+ bl MOD11_022579B8
+ b _02256EDC
+_02256ED4:
+ add r0, r5, #0
+ mov r1, #0x29
+ bl MOD11_022579B8
+_02256EDC:
+ mov r0, #5
+ lsl r0, r0, #0xa
+ tst r0, r4
+ beq _02256EEC
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_022579F8
+_02256EEC:
+ mov r0, #0xa
+ lsl r0, r0, #0xa
+ tst r0, r4
+ beq _02256EFC
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02257AD4
+_02256EFC:
+ pop {r4, r5, r6, pc}
+ nop
+_02256F00: .word 0xFFFFC3FF
+_02256F04: .word 0xFFFFFDDF
+_02256F08: .word 0xFFFFFDFF
+
+ thumb_func_start MOD11_02256F0C
+MOD11_02256F0C: ; 0x02256F0C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x50]
+ cmp r0, #0
+ beq _02256F1E
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #0x50]
+_02256F1E:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _02256F2C
+ bl FUN_0200C3DC
+ mov r0, #0
+ str r0, [r4, #4]
+_02256F2C:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02256F30
+MOD11_02256F30: ; 0x02256F30
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _02256F42
+ bl FUN_0200C3DC
+ mov r0, #0
+ str r0, [r4, #8]
+_02256F42:
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02256F44
+MOD11_02256F44: ; 0x02256F44
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ bl MOD11_02257FC0
+ add r4, r0, #0
+ ldr r0, [r5, #0xc]
+ bl MOD11_02230078
+ ldr r0, [r5, #0xc]
+ bl MOD11_02230080
+ ldr r1, [r4, #0x14]
+ add r5, r0, #0
+ bl FUN_0200C358
+ ldr r1, [r4, #0x1c]
+ add r0, r5, #0
+ bl FUN_0200C378
+ ldr r1, [r4, #0x20]
+ add r0, r5, #0
+ bl FUN_0200C388
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02256F78
+MOD11_02256F78: ; 0x02256F78
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ bl MOD11_02258024
+ add r4, r0, #0
+ beq _02256FAC
+ ldr r0, [r5, #0xc]
+ bl MOD11_02230078
+ ldr r0, [r5, #0xc]
+ bl MOD11_02230080
+ ldr r1, [r4, #0x14]
+ add r5, r0, #0
+ bl FUN_0200C358
+ ldr r1, [r4, #0x1c]
+ add r0, r5, #0
+ bl FUN_0200C378
+ ldr r1, [r4, #0x20]
+ add r0, r5, #0
+ bl FUN_0200C388
+_02256FAC:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02256FB0
+MOD11_02256FB0: ; 0x02256FB0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0xc]
+ bl MOD11_02230078
+ add r6, r0, #0
+ ldr r0, [r5, #0xc]
+ bl MOD11_02230080
+ add r7, r0, #0
+ ldr r0, [r5, #0xc]
+ bl MOD11_022300CC
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ bl MOD11_02257FC0
+ add r3, r5, #0
+ add r3, #0x25
+ add r4, r0, #0
+ ldrb r3, [r3]
+ ldr r2, [sp]
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD11_02256C08
+ add r2, r5, #0
+ add r2, #0x25
+ ldrb r2, [r2]
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD11_02256D4C
+ add r3, r5, #0
+ str r0, [r5, #4]
+ add r3, #0x25
+ ldrb r3, [r3]
+ ldr r2, [sp]
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD11_02256CD4
+ ldr r0, [r5, #8]
+ cmp r0, #0
+ beq _0225702A
+ add r5, #0x25
+ mov r1, #0
+ ldrsh r3, [r4, r1]
+ ldrb r2, [r5]
+ ldr r1, _0225702C ; =0x0225E970
+ ldr r0, [r0]
+ ldrsb r1, [r1, r2]
+ mov r2, #2
+ ldrsh r2, [r4, r2]
+ sub r1, r3, r1
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ bl FUN_0200C6E4
+_0225702A:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225702C: .word 0x0225E970
+
+ thumb_func_start MOD11_02257030
+MOD11_02257030: ; 0x02257030
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD11_02256F0C
+ add r0, r4, #0
+ bl MOD11_02256F44
+ add r0, r4, #0
+ bl MOD11_02256F30
+ add r0, r4, #0
+ bl MOD11_02256F78
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0225704C
+MOD11_0225704C: ; 0x0225704C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ cmp r0, #2
+ beq _0225705C
+ cmp r0, #4
+ bne _02257136
+_0225705C:
+ add r0, r5, #0
+ add r0, #0x4f
+ ldrb r2, [r0]
+ mov r1, #8
+ add r0, r2, #0
+ bic r0, r1
+ lsl r1, r2, #0x1c
+ lsr r2, r1, #0x1f
+ mov r1, #1
+ eor r1, r2
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1c
+ orr r1, r0
+ add r0, r5, #0
+ add r0, #0x4f
+ strb r1, [r0]
+ ldr r0, [r5, #4]
+ ldr r0, [r0]
+ bl FUN_02020350
+ add r4, r0, #0
+ add r0, r5, #0
+ add r0, #0x4f
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _022570E8
+ mov r0, #0x38
+ bl MOD11_02257F60
+ add r1, r5, #0
+ add r1, #0x25
+ ldrb r1, [r1]
+ mov r6, #0x19
+ ldr r3, _02257138 ; =0x0225E9B0
+ lsl r2, r1, #2
+ ldrh r3, [r3, r2]
+ lsl r6, r6, #0x16
+ ldr r1, [r4, #4]
+ add r3, r6, r3
+ add r1, r1, r3
+ ldr r3, _0225713C ; =0x0225E9B2
+ ldrh r2, [r3, r2]
+ bl MIi_CpuCopy16
+ mov r0, #0x45
+ bl MOD11_02257F60
+ add r1, r5, #0
+ add r1, #0x25
+ ldrb r1, [r1]
+ ldr r3, _02257140 ; =0x0225EA10
+ lsl r2, r1, #2
+ ldrh r3, [r3, r2]
+ ldr r1, [r4, #4]
+ add r3, r6, r3
+ add r1, r1, r3
+ ldr r3, _02257144 ; =0x0225EA12
+ ldrh r2, [r3, r2]
+ bl MIi_CpuCopy16
+ ldr r1, [r5, #0x28]
+ add r0, r5, #0
+ mov r2, #6
+ bl MOD11_02256D70
+ pop {r4, r5, r6, pc}
+_022570E8:
+ mov r0, #0x42
+ bl MOD11_02257F60
+ add r1, r5, #0
+ add r1, #0x25
+ ldrb r1, [r1]
+ mov r6, #0x19
+ ldr r3, _02257138 ; =0x0225E9B0
+ lsl r2, r1, #2
+ ldrh r3, [r3, r2]
+ lsl r6, r6, #0x16
+ ldr r1, [r4, #4]
+ add r3, r6, r3
+ add r1, r1, r3
+ ldr r3, _0225713C ; =0x0225E9B2
+ ldrh r2, [r3, r2]
+ bl MIi_CpuCopy16
+ mov r0, #0x44
+ bl MOD11_02257F60
+ add r1, r5, #0
+ add r1, #0x25
+ ldrb r1, [r1]
+ ldr r3, _02257148 ; =0x0225E9E0
+ lsl r2, r1, #2
+ ldrh r3, [r3, r2]
+ ldr r1, [r4, #4]
+ add r3, r6, r3
+ add r1, r1, r3
+ ldr r3, _0225714C ; =0x0225E9E2
+ ldrh r2, [r3, r2]
+ bl MIi_CpuCopy16
+ ldr r1, [r5, #0x28]
+ add r0, r5, #0
+ mov r2, #1
+ bl MOD11_02256D70
+_02257136:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02257138: .word 0x0225E9B0
+_0225713C: .word 0x0225E9B2
+_02257140: .word 0x0225EA10
+_02257144: .word 0x0225EA12
+_02257148: .word 0x0225E9E0
+_0225714C: .word 0x0225E9E2
+
+ thumb_func_start MOD11_02257150
+MOD11_02257150: ; 0x02257150
+ mov r2, #2
+ lsl r2, r2, #0x1e
+ str r2, [r0, #0x34]
+ ldr r3, [r0, #0x28]
+ add r2, r3, r1
+ bpl _0225715E
+ sub r1, r1, r2
+_0225715E:
+ ldr r2, [r0, #0x2c]
+ add r3, r3, r1
+ cmp r3, r2
+ ble _0225716A
+ sub r2, r3, r2
+ sub r1, r1, r2
+_0225716A:
+ neg r1, r1
+ str r1, [r0, #0x30]
+ ldr r1, [r0, #0x28]
+ cmp r1, #0
+ bge _02257178
+ mov r1, #0
+ str r1, [r0, #0x28]
+_02257178:
+ ldr r2, [r0, #0x2c]
+ ldr r1, [r0, #0x28]
+ cmp r1, r2
+ ble _02257182
+ str r2, [r0, #0x28]
+_02257182:
+ bx lr
+
+ thumb_func_start MOD11_02257184
+MOD11_02257184: ; 0x02257184
+ push {r3, r4, r5, lr}
+ mov r1, #0
+ add r5, r0, #0
+ bl MOD11_02257BEC
+ add r4, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _022571AA
+ ldr r1, [r5, #0x28]
+ ldr r0, [r5, #0x30]
+ mov r2, #2
+ sub r1, r1, r0
+ add r0, r5, #0
+ str r1, [r5, #0x28]
+ bl MOD11_02256D70
+ b _022571B4
+_022571AA:
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #2
+ bl MOD11_02256D70
+_022571B4:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022571B8
+MOD11_022571B8: ; 0x022571B8
+ mov r2, #2
+ lsl r2, r2, #0x1e
+ str r2, [r0, #0x44]
+ ldr r3, [r0, #0x38]
+ add r2, r3, r1
+ bpl _022571C6
+ sub r1, r1, r2
+_022571C6:
+ ldr r2, [r0, #0x3c]
+ add r3, r3, r1
+ cmp r3, r2
+ ble _022571D2
+ sub r2, r3, r2
+ sub r1, r1, r2
+_022571D2:
+ neg r1, r1
+ str r1, [r0, #0x40]
+ ldr r1, [r0, #0x38]
+ cmp r1, #0
+ bge _022571E0
+ mov r1, #0
+ str r1, [r0, #0x38]
+_022571E0:
+ ldr r2, [r0, #0x3c]
+ ldr r1, [r0, #0x38]
+ cmp r1, r2
+ ble _022571EA
+ str r2, [r0, #0x38]
+_022571EA:
+ bx lr
+
+ thumb_func_start MOD11_022571EC
+MOD11_022571EC: ; 0x022571EC
+ push {r4, lr}
+ mov r1, #1
+ add r4, r0, #0
+ bl MOD11_02257BEC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02257206
+ ldr r2, [r4, #0x38]
+ ldr r1, [r4, #0x40]
+ sub r1, r2, r1
+ str r1, [r4, #0x38]
+_02257206:
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02257208
+MOD11_02257208: ; 0x02257208
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _02257222
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_020200BC
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD11_02257284
+_02257222:
+ ldr r0, [r4, #0xc]
+ bl MOD11_0222FF74
+ mov r1, #0x22
+ lsl r1, r1, #4
+ tst r0, r1
+ bne _02257236
+ add r0, r4, #0
+ bl MOD11_02258188
+_02257236:
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02257238
+MOD11_02257238: ; 0x02257238
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _0225725C
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_020200BC
+ ldr r0, [r4, #8]
+ mov r1, #0
+ ldr r0, [r0]
+ bl FUN_02020208
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD11_02257284
+_0225725C:
+ add r0, r4, #0
+ bl MOD11_022581B0
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02257264
+MOD11_02257264: ; 0x02257264
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ add r4, r1, #0
+ cmp r0, #0
+ beq _02257280
+ bl FUN_0200C6B0
+ ldr r0, [r5, #8]
+ cmp r0, #0
+ beq _02257280
+ add r1, r4, #0
+ bl FUN_0200C6B0
+_02257280:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02257284
+MOD11_02257284: ; 0x02257284
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ add r4, r1, #0
+ cmp r0, #0
+ beq _022572AA
+ ldr r0, [r5, #0xc]
+ bl MOD11_0222FF74
+ mov r1, #0x22
+ lsl r1, r1, #4
+ tst r0, r1
+ beq _022572A2
+ cmp r4, #1
+ beq _022572AA
+_022572A2:
+ ldr r0, [r5, #8]
+ add r1, r4, #0
+ bl FUN_0200C644
+_022572AA:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022572AC
+MOD11_022572AC: ; 0x022572AC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ add r4, r1, #0
+ cmp r0, #0
+ beq _022572C4
+ bl FUN_0200C644
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_02257284
+_022572C4:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022572C8
+MOD11_022572C8: ; 0x022572C8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ add r6, r1, #0
+ add r7, r2, #0
+ cmp r0, #0
+ bne _022572DA
+ bl ErrorHandling
+_022572DA:
+ add r0, r5, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ bl MOD11_02257FC0
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #2
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [r5, #4]
+ add r1, r1, r6
+ add r2, r2, r7
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C6E4
+ ldr r0, [r5, #8]
+ cmp r0, #0
+ beq _0225732C
+ add r5, #0x25
+ ldrb r3, [r5]
+ mov r1, #0
+ ldr r2, _02257330 ; =0x0225E970
+ ldrsh r1, [r4, r1]
+ ldrsb r2, [r2, r3]
+ ldr r0, [r0]
+ add r1, r1, r6
+ sub r1, r1, r2
+ mov r2, #2
+ ldrsh r2, [r4, r2]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add r2, r2, r7
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C6E4
+_0225732C:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02257330: .word 0x0225E970
+
+ thumb_func_start MOD11_02257334
+MOD11_02257334: ; 0x02257334
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ cmp r4, #0
+ bne _02257342
+ bl ErrorHandling
+_02257342:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ bne _0225734C
+ bl ErrorHandling
+_0225734C:
+ add r0, r4, #0
+ add r0, #0x4f
+ ldrb r1, [r0]
+ mov r0, #2
+ bic r1, r0
+ add r0, r4, #0
+ add r0, #0x4f
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x4f
+ ldrb r0, [r0]
+ mov r1, #1
+ bic r0, r1
+ lsl r1, r5, #0x18
+ lsr r2, r1, #0x18
+ mov r1, #1
+ and r1, r2
+ orr r1, r0
+ add r0, r4, #0
+ add r0, #0x4f
+ strb r1, [r0]
+ cmp r5, #0
+ bne _022573BA
+ add r0, r4, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ cmp r0, #7
+ bhi _022573AC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02257390: ; jump table
+ .short _022573A0 - _02257390 - 2 ; case 0
+ .short _022573AC - _02257390 - 2 ; case 1
+ .short _022573A0 - _02257390 - 2 ; case 2
+ .short _022573AC - _02257390 - 2 ; case 3
+ .short _022573A0 - _02257390 - 2 ; case 4
+ .short _022573AC - _02257390 - 2 ; case 5
+ .short _022573A0 - _02257390 - 2 ; case 6
+ .short _022573A0 - _02257390 - 2 ; case 7
+_022573A0:
+ add r0, r4, #0
+ mov r1, #0xa0
+ mov r2, #0
+ bl MOD11_022572C8
+ b _022573C4
+_022573AC:
+ mov r1, #0x9f
+ add r0, r4, #0
+ mvn r1, r1
+ mov r2, #0
+ bl MOD11_022572C8
+ b _022573C4
+_022573BA:
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD11_022572C8
+_022573C4:
+ ldr r0, _022573D0 ; =MOD11_022573D8
+ ldr r2, _022573D4 ; =0x000003DE
+ add r1, r4, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022573D0: .word MOD11_022573D8
+_022573D4: .word 0x000003DE
+
+ thumb_func_start MOD11_022573D8
+MOD11_022573D8: ; 0x022573D8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ mov r4, #0
+ bl MOD11_02257FC0
+ add r6, r0, #0
+ add r1, sp, #0
+ ldr r0, [r5, #4]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r0, r5, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ cmp r0, #7
+ bhi _0225745E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225740E: ; jump table
+ .short _0225741E - _0225740E - 2 ; case 0
+ .short _0225745E - _0225740E - 2 ; case 1
+ .short _0225741E - _0225740E - 2 ; case 2
+ .short _0225745E - _0225740E - 2 ; case 3
+ .short _0225741E - _0225740E - 2 ; case 4
+ .short _0225745E - _0225740E - 2 ; case 5
+ .short _0225741E - _0225740E - 2 ; case 6
+ .short _0225741E - _0225740E - 2 ; case 7
+_0225741E:
+ add r0, r5, #0
+ add r0, #0x4f
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ add r0, sp, #0
+ bne _02257444
+ mov r1, #2
+ ldrsh r2, [r0, r1]
+ sub r2, #0x18
+ strh r2, [r0, #2]
+ add r2, r4, #0
+ ldrsh r1, [r0, r1]
+ ldrsh r2, [r6, r2]
+ cmp r1, r2
+ bge _0225749C
+ strh r2, [r0, #2]
+ add r4, r4, #1
+ b _0225749C
+_02257444:
+ mov r1, #2
+ ldrsh r2, [r0, r1]
+ add r2, #0x18
+ strh r2, [r0, #2]
+ add r2, r4, #0
+ ldrsh r2, [r6, r2]
+ ldrsh r1, [r0, r1]
+ add r2, #0xa0
+ cmp r1, r2
+ ble _0225749C
+ strh r2, [r0, #2]
+ add r4, r4, #1
+ b _0225749C
+_0225745E:
+ add r0, r5, #0
+ add r0, #0x4f
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ add r0, sp, #0
+ bne _02257484
+ mov r1, #2
+ ldrsh r2, [r0, r1]
+ add r2, #0x18
+ strh r2, [r0, #2]
+ mov r2, #0
+ ldrsh r1, [r0, r1]
+ ldrsh r2, [r6, r2]
+ cmp r1, r2
+ ble _0225749C
+ strh r2, [r0, #2]
+ add r4, r4, #1
+ b _0225749C
+_02257484:
+ mov r1, #2
+ ldrsh r2, [r0, r1]
+ sub r2, #0x18
+ strh r2, [r0, #2]
+ mov r2, #0
+ ldrsh r2, [r6, r2]
+ ldrsh r1, [r0, r1]
+ sub r2, #0x18
+ cmp r1, r2
+ bge _0225749C
+ strh r2, [r0, #2]
+ add r4, r4, #1
+_0225749C:
+ add r2, sp, #0
+ mov r1, #2
+ mov r3, #0
+ ldrsh r1, [r2, r1]
+ ldrsh r2, [r2, r3]
+ ldr r0, [r5, #4]
+ bl FUN_0200C714
+ ldr r0, [r5, #8]
+ cmp r0, #0
+ beq _022574D0
+ add r6, sp, #0
+ mov r1, #2
+ ldrsh r3, [r6, r1]
+ add r1, r5, #0
+ add r1, #0x25
+ ldrb r2, [r1]
+ ldr r1, _022574EC ; =0x0225E970
+ ldrsb r1, [r1, r2]
+ mov r2, #0
+ ldrsh r2, [r6, r2]
+ sub r1, r3, r1
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+_022574D0:
+ cmp r4, #0
+ ble _022574E8
+ add r0, r5, #0
+ add r0, #0x4f
+ ldrb r1, [r0]
+ mov r0, #2
+ add r5, #0x4f
+ orr r0, r1
+ strb r0, [r5]
+ add r0, r7, #0
+ bl FUN_0200CAB4
+_022574E8:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022574EC: .word 0x0225E970
+
+ thumb_func_start MOD11_022574F0
+MOD11_022574F0: ; 0x022574F0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r5, r0, #0
+ ldr r0, [r5, #0xc]
+ bl MOD11_0222FF68
+ add r6, r0, #0
+ ldr r0, [r5, #0xc]
+ bl MOD11_022300C4
+ add r7, r0, #0
+ ldr r0, [r5, #0xc]
+ bl MOD11_02230138
+ add r4, r0, #0
+ mov r0, #0x16
+ mov r1, #5
+ bl FUN_020219F4
+ mov r1, #0xf1
+ str r0, [sp, #0x18]
+ add r0, r7, #0
+ lsl r1, r1, #2
+ bl FUN_0200A914
+ add r1, r5, #0
+ add r2, r5, #0
+ add r1, #0x24
+ add r2, #0x26
+ str r0, [sp, #0x1c]
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ ldr r0, [r5, #0xc]
+ bl MOD11_02230014
+ bl FUN_020690E4
+ add r2, r0, #0
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_0200ACF8
+ ldr r1, [sp, #0x18]
+ ldr r2, [sp, #0x1c]
+ add r0, r4, #0
+ bl FUN_0200B7B8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xf
+ str r0, [sp, #4]
+ add r0, r6, #0
+ add r1, sp, #0x24
+ mov r2, #8
+ mov r3, #2
+ bl FUN_020190EC
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02257630 ; =0x000E020F
+ ldr r2, [sp, #0x18]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x10]
+ str r1, [sp, #0x14]
+ add r0, sp, #0x24
+ add r3, r1, #0
+ bl FUN_0201BE3C
+ ldr r0, [r5, #4]
+ ldr r6, [sp, #0x30]
+ ldr r0, [r0]
+ bl FUN_02020350
+ add r4, r0, #0
+ mov r0, #1
+ lsl r0, r0, #8
+ add r0, r6, r0
+ str r0, [sp, #0x20]
+ add r0, r5, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ ldr r1, _02257634 ; =0x0225EC88
+ ldr r3, [r4, #4]
+ lsl r7, r0, #4
+ ldrh r2, [r1, r7]
+ mov r1, #0x19
+ lsl r1, r1, #0x16
+ add r1, r1, r2
+ ldr r2, _02257638 ; =0x0225EC8A
+ add r0, r6, #0
+ ldrh r2, [r2, r7]
+ add r1, r3, r1
+ bl MIi_CpuCopy16
+ add r0, r5, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ ldr r1, _0225763C ; =0x0225EC8C
+ ldr r3, [r4, #4]
+ lsl r7, r0, #4
+ ldrh r2, [r1, r7]
+ mov r1, #0x19
+ lsl r1, r1, #0x16
+ add r1, r1, r2
+ ldr r2, _02257640 ; =0x0225EC8E
+ ldr r0, [sp, #0x20]
+ ldrh r2, [r2, r7]
+ add r1, r3, r1
+ bl MIi_CpuCopy16
+ add r0, r5, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ ldr r3, _02257644 ; =0x0225EC90
+ ldr r1, [r4, #4]
+ lsl r2, r0, #4
+ ldr r0, _02257638 ; =0x0225EC8A
+ ldrh r0, [r0, r2]
+ add r0, r6, r0
+ ldrh r6, [r3, r2]
+ mov r3, #0x19
+ lsl r3, r3, #0x16
+ add r3, r3, r6
+ add r1, r1, r3
+ ldr r3, _02257648 ; =0x0225EC92
+ ldrh r2, [r3, r2]
+ bl MIi_CpuCopy16
+ add r5, #0x25
+ ldrb r0, [r5]
+ ldr r4, [r4, #4]
+ lsl r2, r0, #4
+ ldr r0, _02257640 ; =0x0225EC8E
+ ldrh r1, [r0, r2]
+ ldr r0, [sp, #0x20]
+ add r0, r0, r1
+ ldr r1, _0225764C ; =0x0225EC94
+ ldrh r3, [r1, r2]
+ mov r1, #0x19
+ lsl r1, r1, #0x16
+ add r1, r1, r3
+ ldr r3, _02257650 ; =0x0225EC96
+ add r1, r4, r1
+ ldrh r2, [r3, r2]
+ bl MIi_CpuCopy16
+ add r0, sp, #0x24
+ bl FUN_02019178
+ ldr r0, [sp, #0x18]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x1c]
+ bl FUN_02021A20
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02257630: .word 0x000E020F
+_02257634: .word 0x0225EC88
+_02257638: .word 0x0225EC8A
+_0225763C: .word 0x0225EC8C
+_02257640: .word 0x0225EC8E
+_02257644: .word 0x0225EC90
+_02257648: .word 0x0225EC92
+_0225764C: .word 0x0225EC94
+_02257650: .word 0x0225EC96
+
+ thumb_func_start MOD11_02257654
+MOD11_02257654: ; 0x02257654
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r0, [sp]
+ add r0, #0x49
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02257666
+ mov r0, #0x3e
+ b _02257670
+_02257666:
+ cmp r0, #1
+ bne _0225766E
+ mov r0, #0x3c
+ b _02257670
+_0225766E:
+ mov r0, #0x40
+_02257670:
+ bl MOD11_02257F60
+ add r4, r0, #0
+ mov r0, #5
+ mov r1, #0x80
+ bl AllocFromHeap
+ add r7, r0, #0
+ ldr r0, [sp]
+ ldr r0, [r0, #4]
+ ldr r0, [r0]
+ bl FUN_02020350
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ ldr r1, _0225774C ; =0x0225EAB8
+ add r0, #0x25
+ ldrb r0, [r0]
+ lsl r2, r0, #3
+ ldrh r3, [r1, r2]
+ mov r1, #0x19
+ lsl r1, r1, #0x16
+ ldr r0, [sp, #4]
+ add r1, r1, r3
+ ldr r3, _02257750 ; =0x0225EABA
+ ldr r0, [r0, #4]
+ ldrh r2, [r3, r2]
+ add r0, r0, r1
+ add r1, r7, #0
+ bl MIi_CpuCopy16
+ ldr r0, [sp]
+ ldr r1, _02257754 ; =0x0225EABC
+ add r0, #0x25
+ ldrb r0, [r0]
+ lsl r2, r0, #3
+ ldrh r3, [r1, r2]
+ mov r1, #0x19
+ ldr r0, [sp, #4]
+ lsl r1, r1, #0x16
+ add r1, r1, r3
+ ldr r3, _02257758 ; =0x0225EABE
+ ldr r0, [r0, #4]
+ ldrh r2, [r3, r2]
+ add r0, r0, r1
+ add r1, r7, #0
+ add r1, #0x40
+ bl MIi_CpuCopy16
+ mov r2, #0
+ add r1, r2, #0
+_022576D6:
+ mov r0, #0
+ add r3, r7, r1
+_022576DA:
+ ldrb r5, [r4, r2]
+ add r6, r4, r2
+ add r0, r0, #1
+ strb r5, [r3, #0x10]
+ ldrb r6, [r6, #0x10]
+ add r5, r3, #0
+ add r5, #0x40
+ strb r6, [r5]
+ add r2, r2, #1
+ add r3, r3, #1
+ cmp r0, #0x10
+ blt _022576DA
+ add r1, #0x20
+ add r2, #0x10
+ cmp r1, #0x40
+ blt _022576D6
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ add r0, #0x25
+ ldrb r0, [r0]
+ ldr r3, _0225774C ; =0x0225EAB8
+ ldr r1, [r1, #4]
+ lsl r2, r0, #3
+ ldrh r4, [r3, r2]
+ mov r3, #0x19
+ lsl r3, r3, #0x16
+ add r3, r3, r4
+ add r1, r1, r3
+ ldr r3, _02257750 ; =0x0225EABA
+ add r0, r7, #0
+ ldrh r2, [r3, r2]
+ bl MIi_CpuCopy16
+ ldr r0, [sp]
+ ldr r3, _02257754 ; =0x0225EABC
+ add r0, #0x25
+ str r0, [sp]
+ ldrb r0, [r0]
+ ldr r1, [sp, #4]
+ lsl r2, r0, #3
+ ldrh r4, [r3, r2]
+ mov r3, #0x19
+ lsl r3, r3, #0x16
+ add r0, r7, #0
+ ldr r1, [r1, #4]
+ add r3, r3, r4
+ add r1, r1, r3
+ ldr r3, _02257758 ; =0x0225EABE
+ add r0, #0x40
+ ldrh r2, [r3, r2]
+ bl MIi_CpuCopy16
+ add r0, r7, #0
+ bl FreeToHeap
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225774C: .word 0x0225EAB8
+_02257750: .word 0x0225EABA
+_02257754: .word 0x0225EABC
+_02257758: .word 0x0225EABE
+
+ thumb_func_start MOD11_0225775C
+MOD11_0225775C: ; 0x0225775C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r0, [sp, #4]
+ mov r0, #5
+ mov r1, #0x60
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r0, #5
+ mov r1, #0xc0
+ bl AllocFromHeap
+ add r7, r0, #0
+ add r0, r4, #0
+ mov r1, #0xff
+ mov r2, #0x60
+ bl MI_CpuFill8
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #0xc]
+ bl MOD11_022300BC
+ ldr r1, [sp, #4]
+ str r4, [sp]
+ add r1, #0x48
+ ldrb r1, [r1]
+ mov r2, #3
+ mov r3, #0
+ bl FUN_0200BAAC
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #4]
+ ldr r0, [r0]
+ bl FUN_02020350
+ str r0, [sp, #8]
+ ldr r0, [sp, #4]
+ ldr r1, _0225786C ; =0x0225EA28
+ add r0, #0x25
+ ldrb r0, [r0]
+ lsl r2, r0, #3
+ ldrh r3, [r1, r2]
+ mov r1, #0x19
+ lsl r1, r1, #0x16
+ ldr r0, [sp, #8]
+ add r1, r1, r3
+ ldr r3, _02257870 ; =0x0225EA2A
+ ldr r0, [r0, #4]
+ ldrh r2, [r3, r2]
+ add r0, r0, r1
+ add r1, r7, #0
+ bl MIi_CpuCopy16
+ ldr r0, [sp, #4]
+ ldr r1, _02257874 ; =0x0225EA2C
+ add r0, #0x25
+ ldrb r0, [r0]
+ lsl r2, r0, #3
+ ldrh r3, [r1, r2]
+ mov r1, #0x19
+ ldr r0, [sp, #8]
+ lsl r1, r1, #0x16
+ add r1, r1, r3
+ ldr r3, _02257878 ; =0x0225EA2E
+ ldr r0, [r0, #4]
+ ldrh r2, [r3, r2]
+ add r0, r0, r1
+ add r1, r7, #0
+ add r1, #0x60
+ bl MIi_CpuCopy16
+ mov r2, #0
+ add r1, r2, #0
+_022577EE:
+ mov r0, #0
+ add r3, r7, r1
+_022577F2:
+ ldrb r5, [r4, r2]
+ add r6, r4, r2
+ add r0, r0, #1
+ strb r5, [r3, #0x10]
+ ldrb r6, [r6, #0x10]
+ add r5, r3, #0
+ add r5, #0x60
+ strb r6, [r5]
+ add r2, r2, #1
+ add r3, r3, #1
+ cmp r0, #0x10
+ blt _022577F2
+ add r1, #0x20
+ add r2, #0x10
+ cmp r1, #0x60
+ blt _022577EE
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #8]
+ add r0, #0x25
+ ldrb r0, [r0]
+ ldr r3, _0225786C ; =0x0225EA28
+ ldr r1, [r1, #4]
+ lsl r2, r0, #3
+ ldrh r5, [r3, r2]
+ mov r3, #0x19
+ lsl r3, r3, #0x16
+ add r3, r3, r5
+ add r1, r1, r3
+ ldr r3, _02257870 ; =0x0225EA2A
+ add r0, r7, #0
+ ldrh r2, [r3, r2]
+ bl MIi_CpuCopy16
+ ldr r0, [sp, #4]
+ ldr r3, _02257874 ; =0x0225EA2C
+ add r0, #0x25
+ str r0, [sp, #4]
+ ldrb r0, [r0]
+ ldr r1, [sp, #8]
+ lsl r2, r0, #3
+ ldrh r5, [r3, r2]
+ mov r3, #0x19
+ lsl r3, r3, #0x16
+ add r0, r7, #0
+ ldr r1, [r1, #4]
+ add r3, r3, r5
+ add r1, r1, r3
+ ldr r3, _02257878 ; =0x0225EA2E
+ add r0, #0x60
+ ldrh r2, [r3, r2]
+ bl MIi_CpuCopy16
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r7, #0
+ bl FreeToHeap
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0225786C: .word 0x0225EA28
+_02257870: .word 0x0225EA2A
+_02257874: .word 0x0225EA2C
+_02257878: .word 0x0225EA2E
+
+ thumb_func_start MOD11_0225787C
+MOD11_0225787C: ; 0x0225787C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #5
+ mov r1, #0x60
+ bl AllocFromHeap
+ mov r1, #0xff
+ mov r2, #0x60
+ add r4, r0, #0
+ bl MI_CpuFill8
+ ldr r0, [r5, #0xc]
+ bl MOD11_022300B4
+ str r4, [sp]
+ add r1, r6, #0
+ mov r2, #3
+ mov r3, #1
+ bl FUN_0200BAAC
+ ldr r0, [r5, #4]
+ ldr r0, [r0]
+ bl FUN_02020350
+ add r6, r0, #0
+ add r0, r5, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ mov r7, #0x19
+ ldr r3, _022578F8 ; =0x0225EA58
+ lsl r2, r0, #3
+ ldrh r3, [r3, r2]
+ lsl r7, r7, #0x16
+ ldr r1, [r6, #4]
+ add r3, r7, r3
+ add r1, r1, r3
+ ldr r3, _022578FC ; =0x0225EA5A
+ add r0, r4, #0
+ ldrh r2, [r3, r2]
+ bl MIi_CpuCopy16
+ add r5, #0x25
+ ldrb r0, [r5]
+ ldr r3, _02257900 ; =0x0225EA5C
+ ldr r1, [r6, #4]
+ lsl r2, r0, #3
+ ldrh r3, [r3, r2]
+ ldr r0, _022578FC ; =0x0225EA5A
+ add r3, r7, r3
+ add r1, r1, r3
+ ldrh r0, [r0, r2]
+ ldr r3, _02257904 ; =0x0225EA5E
+ ldrh r2, [r3, r2]
+ add r0, r4, r0
+ bl MIi_CpuCopy16
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022578F8: .word 0x0225EA58
+_022578FC: .word 0x0225EA5A
+_02257900: .word 0x0225EA5C
+_02257904: .word 0x0225EA5E
+
+ thumb_func_start MOD11_02257908
+MOD11_02257908: ; 0x02257908
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #5
+ mov r1, #0x60
+ bl AllocFromHeap
+ mov r1, #0xff
+ mov r2, #0x60
+ add r4, r0, #0
+ bl MI_CpuFill8
+ ldr r0, [r5, #0xc]
+ bl MOD11_022300B4
+ str r4, [sp]
+ ldr r1, [r5, #0x2c]
+ mov r2, #3
+ mov r3, #0
+ bl FUN_0200BAAC
+ ldr r0, [r5, #4]
+ ldr r0, [r0]
+ bl FUN_02020350
+ add r1, r0, #0
+ add r5, #0x25
+ ldrb r0, [r5]
+ ldr r3, _02257960 ; =0x0225E9F8
+ ldr r1, [r1, #4]
+ lsl r2, r0, #2
+ ldrh r5, [r3, r2]
+ mov r3, #0x19
+ lsl r3, r3, #0x16
+ add r3, r5, r3
+ add r1, r1, r3
+ ldr r3, _02257964 ; =0x0225E9FA
+ add r0, r4, #0
+ ldrh r2, [r3, r2]
+ bl MIi_CpuCopy16
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02257960: .word 0x0225E9F8
+_02257964: .word 0x0225E9FA
+
+ thumb_func_start MOD11_02257968
+MOD11_02257968: ; 0x02257968
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0x4b
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _0225797C
+ mov r0, #0x3b
+ bl MOD11_02257F60
+ b _02257982
+_0225797C:
+ mov r0, #0x38
+ bl MOD11_02257F60
+_02257982:
+ add r4, r0, #0
+ ldr r0, [r5, #4]
+ ldr r0, [r0]
+ bl FUN_02020350
+ add r5, #0x25
+ add r1, r0, #0
+ ldrb r0, [r5]
+ lsl r2, r0, #2
+ add r0, r4, #0
+ ldr r4, [r1, #4]
+ ldr r1, _022579B0 ; =0x0225E9C8
+ ldrh r3, [r1, r2]
+ mov r1, #0x19
+ lsl r1, r1, #0x16
+ add r1, r3, r1
+ ldr r3, _022579B4 ; =0x0225E9CA
+ add r1, r4, r1
+ ldrh r2, [r3, r2]
+ bl MIi_CpuCopy16
+ pop {r3, r4, r5, pc}
+ nop
+_022579B0: .word 0x0225E9C8
+_022579B4: .word 0x0225E9CA
+
+ thumb_func_start MOD11_022579B8
+MOD11_022579B8: ; 0x022579B8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ bl MOD11_02257F60
+ add r4, r0, #0
+ ldr r0, [r5, #4]
+ ldr r0, [r0]
+ bl FUN_02020350
+ add r5, #0x25
+ add r1, r0, #0
+ ldrb r0, [r5]
+ lsl r2, r0, #2
+ add r0, r4, #0
+ ldr r4, [r1, #4]
+ ldr r1, _022579F0 ; =0x0225E998
+ ldrh r3, [r1, r2]
+ mov r1, #0x19
+ lsl r1, r1, #0x16
+ add r1, r3, r1
+ ldr r3, _022579F4 ; =0x0225E99A
+ add r1, r4, r1
+ ldrh r2, [r3, r2]
+ bl MIi_CpuCopy16
+ pop {r3, r4, r5, pc}
+ nop
+_022579F0: .word 0x0225E998
+_022579F4: .word 0x0225E99A
+
+ thumb_func_start MOD11_022579F8
+MOD11_022579F8: ; 0x022579F8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ add r5, r1, #0
+ bl MOD11_0222FF68
+ add r6, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD11_022300C4
+ mov r1, #1
+ lsl r1, r1, #0xa
+ add r2, r5, #0
+ tst r2, r1
+ beq _02257A20
+ sub r1, #0x4a
+ bl FUN_0200A914
+ b _02257A26
+_02257A20:
+ add r1, #0xc4
+ bl FUN_0200A914
+_02257A26:
+ add r7, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xf
+ str r0, [sp, #4]
+ add r0, r6, #0
+ add r1, sp, #0x18
+ mov r2, #0xd
+ mov r3, #2
+ bl FUN_020190EC
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02257AD0 ; =0x000E020F
+ add r2, r7, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x10]
+ str r1, [sp, #0x14]
+ add r0, sp, #0x18
+ add r3, r1, #0
+ bl FUN_0201BE3C
+ ldr r0, [r4, #4]
+ ldr r5, [sp, #0x24]
+ ldr r0, [r0]
+ bl FUN_02020350
+ add r4, r0, #0
+ mov r2, #0x1a
+ mov r6, #0x19
+ lsl r2, r2, #4
+ lsl r6, r6, #0x16
+ add r2, #0xa0
+ ldr r1, [r4, #4]
+ add r2, r6, r2
+ add r1, r1, r2
+ add r0, r5, #0
+ mov r2, #0xc0
+ bl MIi_CpuCopy16
+ mov r2, #0xd
+ mov r0, #0x1a
+ lsl r2, r2, #6
+ lsl r0, r0, #4
+ ldr r1, [r4, #4]
+ add r2, r6, r2
+ add r1, r1, r2
+ add r0, r5, r0
+ mov r2, #0xc0
+ bl MIi_CpuCopy16
+ mov r2, #0xa
+ lsl r2, r2, #8
+ add r0, r5, #0
+ ldr r1, [r4, #4]
+ add r2, r6, r2
+ add r1, r1, r2
+ add r0, #0xc0
+ mov r2, #0xe0
+ bl MIi_CpuCopy16
+ mov r0, #0x1a
+ mov r1, #0xb
+ lsl r0, r0, #4
+ lsl r1, r1, #8
+ add r0, r5, r0
+ ldr r2, [r4, #4]
+ add r1, r6, r1
+ add r1, r2, r1
+ add r0, #0xc0
+ mov r2, #0xe0
+ bl MIi_CpuCopy16
+ add r0, sp, #0x18
+ bl FUN_02019178
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02257AD0: .word 0x000E020F
+
+ thumb_func_start MOD11_02257AD4
+MOD11_02257AD4: ; 0x02257AD4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ add r5, r1, #0
+ bl MOD11_0222FF68
+ str r0, [sp, #0x1c]
+ ldr r0, [r4, #0xc]
+ bl MOD11_022300C4
+ str r0, [sp, #0x20]
+ ldr r0, [r4, #0xc]
+ bl MOD11_02230138
+ add r7, r0, #0
+ mov r0, #0x1e
+ mov r1, #5
+ bl FUN_020219F4
+ mov r1, #1
+ add r6, r0, #0
+ lsl r1, r1, #0xa
+ add r0, r5, #0
+ tst r0, r1
+ beq _02257B14
+ ldr r0, [sp, #0x20]
+ sub r1, #0x49
+ bl FUN_0200A914
+ str r0, [sp, #0x18]
+ b _02257B1E
+_02257B14:
+ ldr r0, [sp, #0x20]
+ add r1, #0xc5
+ bl FUN_0200A914
+ str r0, [sp, #0x18]
+_02257B1E:
+ mov r0, #1
+ str r0, [sp]
+ add r2, r4, #0
+ str r0, [sp, #4]
+ add r2, #0x27
+ ldrb r2, [r2]
+ add r0, r7, #0
+ mov r1, #0
+ mov r3, #2
+ bl FUN_0200AD38
+ ldr r2, [sp, #0x18]
+ add r0, r7, #0
+ add r1, r6, #0
+ bl FUN_0200B7B8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xf
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x1c]
+ add r1, sp, #0x24
+ mov r2, #0xd
+ mov r3, #2
+ bl FUN_020190EC
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02257BE8 ; =0x000E020F
+ add r2, r6, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x10]
+ str r1, [sp, #0x14]
+ add r0, sp, #0x24
+ add r3, r1, #0
+ bl FUN_0201BE3C
+ ldr r0, [r4, #4]
+ ldr r5, [sp, #0x30]
+ ldr r0, [r0]
+ bl FUN_02020350
+ add r4, r0, #0
+ mov r7, #0x19
+ mov r2, #0x11
+ lsl r7, r7, #0x16
+ lsl r2, r2, #6
+ ldr r1, [r4, #4]
+ add r2, r7, r2
+ add r1, r1, r2
+ add r0, r5, #0
+ mov r2, #0xc0
+ bl MIi_CpuCopy16
+ mov r2, #0x15
+ mov r0, #0x1a
+ lsl r2, r2, #6
+ lsl r0, r0, #4
+ ldr r1, [r4, #4]
+ add r2, r7, r2
+ add r1, r1, r2
+ add r0, r5, r0
+ mov r2, #0xc0
+ bl MIi_CpuCopy16
+ mov r2, #3
+ lsl r2, r2, #0xa
+ add r0, r5, #0
+ ldr r1, [r4, #4]
+ add r2, r7, r2
+ add r1, r1, r2
+ add r0, #0xc0
+ mov r2, #0xe0
+ bl MIi_CpuCopy16
+ mov r0, #0x1a
+ mov r1, #0xd
+ lsl r0, r0, #4
+ lsl r1, r1, #8
+ add r0, r5, r0
+ ldr r2, [r4, #4]
+ add r1, r7, r1
+ add r1, r2, r1
+ add r0, #0xc0
+ mov r2, #0xe0
+ bl MIi_CpuCopy16
+ add r0, sp, #0x24
+ bl FUN_02019178
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, [sp, #0x18]
+ bl FUN_02021A20
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02257BE8: .word 0x000E020F
+
+ thumb_func_start MOD11_02257BEC
+MOD11_02257BEC: ; 0x02257BEC
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r4, r1, #0
+ bne _02257C10
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r3, r5, #0
+ ldr r0, [r5, #0x2c]
+ ldr r1, [r5, #0x28]
+ ldr r2, [r5, #0x30]
+ add r3, #0x34
+ bl MOD11_02257DE8
+ add r6, r0, #0
+ b _02257C48
+_02257C10:
+ ldr r0, [r5, #0x38]
+ ldr r1, [r5, #0x40]
+ ldr r2, [r5, #0x3c]
+ mov r3, #0xb
+ bl MOD11_02257F20
+ add r1, r0, #0
+ bne _02257C22
+ mov r1, #1
+_02257C22:
+ ldr r6, [r5, #0x40]
+ add r0, r6, #0
+ bl _s32_div_f
+ bl abs
+ mov r1, #0xb
+ lsl r0, r0, #0x10
+ add r3, r5, #0
+ str r1, [sp]
+ lsr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x3c]
+ ldr r1, [r5, #0x38]
+ add r2, r6, #0
+ add r3, #0x44
+ bl MOD11_02257DE8
+ add r6, r0, #0
+_02257C48:
+ cmp r4, #0
+ bne _02257C5A
+ add r0, r5, #0
+ add r0, #0x4f
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ beq _02257C64
+_02257C5A:
+ lsl r1, r4, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ bl MOD11_02257C80
+_02257C64:
+ mov r0, #0
+ mvn r0, r0
+ cmp r6, r0
+ bne _02257C7A
+ cmp r4, #0
+ bne _02257C76
+ mov r0, #0
+ str r0, [r5, #0x34]
+ b _02257C7A
+_02257C76:
+ mov r0, #0
+ str r0, [r5, #0x44]
+_02257C7A:
+ add r0, r6, #0
+ add sp, #8
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02257C80
+MOD11_02257C80: ; 0x02257C80
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r6, r0, #0
+ ldr r0, [r6, #4]
+ add r4, r1, #0
+ ldr r0, [r0]
+ bl FUN_02020350
+ add r5, r0, #0
+ cmp r4, #0
+ beq _02257C9E
+ cmp r4, #1
+ beq _02257D50
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+_02257C9E:
+ add r0, sp, #0x10
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ add r3, r6, #0
+ ldr r0, [r6, #0x2c]
+ ldr r1, [r6, #0x28]
+ ldr r2, [r6, #0x30]
+ add r3, #0x34
+ bl MOD11_02257EA4
+ mov r1, #0x30
+ bl FUN_02079A24
+ cmp r0, #1
+ beq _02257CCE
+ cmp r0, #2
+ beq _02257CCA
+ cmp r0, #3
+ bne _02257CCE
+ mov r0, #2
+ b _02257CD0
+_02257CCA:
+ mov r0, #0xb
+ b _02257CD0
+_02257CCE:
+ mov r0, #0x14
+_02257CD0:
+ bl MOD11_02257F60
+ str r0, [sp, #0xc]
+ add r0, r6, #0
+ add r0, #0x25
+ ldrb r0, [r0]
+ mov r4, #0
+ lsl r1, r0, #3
+ ldr r0, _02257DE0 ; =0x0225EA8A
+ ldrh r0, [r0, r1]
+ lsr r7, r0, #5
+_02257CE6:
+ cmp r4, r7
+ add r0, sp, #0x10
+ bge _02257D16
+ add r2, r6, #0
+ add r2, #0x25
+ ldrb r2, [r2]
+ ldrb r0, [r0, r4]
+ lsl r3, r2, #3
+ ldr r2, _02257DE4 ; =0x0225EA88
+ lsl r1, r0, #5
+ ldrh r3, [r2, r3]
+ ldr r0, [sp, #0xc]
+ mov r2, #0x19
+ lsl r2, r2, #0x16
+ add r0, r0, r1
+ add r3, r2, r3
+ lsl r2, r4, #5
+ ldr r1, [r5, #4]
+ add r2, r3, r2
+ add r1, r1, r2
+ mov r2, #0x20
+ bl MIi_CpuCopy16
+ b _02257D42
+_02257D16:
+ ldrb r0, [r0, r4]
+ ldr r2, [r5, #4]
+ lsl r1, r0, #5
+ ldr r0, [sp, #0xc]
+ add r0, r0, r1
+ add r1, r6, #0
+ add r1, #0x25
+ ldrb r1, [r1]
+ lsl r3, r1, #3
+ ldr r1, _02257DE4 ; =0x0225EA88
+ add r1, r1, r3
+ ldrh r3, [r1, #4]
+ mov r1, #0x19
+ lsl r1, r1, #0x16
+ add r1, r1, r3
+ sub r3, r4, r7
+ lsl r3, r3, #5
+ add r1, r1, r3
+ add r1, r2, r1
+ mov r2, #0x20
+ bl MIi_CpuCopy16
+_02257D42:
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #6
+ blo _02257CE6
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+_02257D50:
+ add r0, sp, #0x10
+ str r0, [sp]
+ mov r0, #0xb
+ str r0, [sp, #4]
+ add r3, r6, #0
+ ldr r0, [r6, #0x3c]
+ ldr r1, [r6, #0x38]
+ ldr r2, [r6, #0x40]
+ add r3, #0x44
+ bl MOD11_02257EA4
+ add r6, #0x48
+ ldrb r0, [r6]
+ cmp r0, #0x64
+ bne _02257D80
+ mov r0, #0
+ add r2, r0, #0
+ add r1, sp, #0x10
+_02257D74:
+ strb r2, [r1, r0]
+ add r0, r0, #1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0xb
+ blo _02257D74
+_02257D80:
+ mov r0, #0x1d
+ bl MOD11_02257F60
+ add r6, r0, #0
+ mov r1, #0x19
+ mov r0, #0x1a
+ lsl r1, r1, #0x16
+ lsl r0, r0, #6
+ add r0, r1, r0
+ str r0, [sp, #8]
+ mov r0, #0xe
+ lsl r0, r0, #8
+ mov r4, #0
+ add r7, r1, r0
+_02257D9C:
+ cmp r4, #4
+ add r0, sp, #0x10
+ bhs _02257DBA
+ ldrb r0, [r0, r4]
+ ldr r1, [sp, #8]
+ lsl r2, r4, #5
+ lsl r0, r0, #5
+ add r1, r1, r2
+ ldr r3, [r5, #4]
+ add r0, r6, r0
+ add r1, r3, r1
+ mov r2, #0x20
+ bl MIi_CpuCopy16
+ b _02257DD0
+_02257DBA:
+ ldrb r0, [r0, r4]
+ sub r2, r4, #4
+ lsl r2, r2, #5
+ lsl r0, r0, #5
+ ldr r1, [r5, #4]
+ add r2, r7, r2
+ add r1, r1, r2
+ add r0, r6, r0
+ mov r2, #0x20
+ bl MIi_CpuCopy16
+_02257DD0:
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0xb
+ blo _02257D9C
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02257DE0: .word 0x0225EA8A
+_02257DE4: .word 0x0225EA88
+
+ thumb_func_start MOD11_02257DE8
+MOD11_02257DE8: ; 0x02257DE8
+ push {r4, r5, r6, lr}
+ add r6, r2, #0
+ add r2, sp, #0
+ add r5, r3, #0
+ ldrb r2, [r2, #0x10]
+ mov r3, #2
+ ldr r4, [r5]
+ lsl r2, r2, #0x1b
+ lsl r3, r3, #0x1e
+ lsr r2, r2, #0x18
+ cmp r4, r3
+ bne _02257E0C
+ cmp r0, r2
+ bge _02257E0A
+ lsl r3, r1, #8
+ str r3, [r5]
+ b _02257E0C
+_02257E0A:
+ str r1, [r5]
+_02257E0C:
+ sub r4, r1, r6
+ bpl _02257E14
+ mov r4, #0
+ b _02257E1A
+_02257E14:
+ cmp r4, r0
+ ble _02257E1A
+ add r4, r0, #0
+_02257E1A:
+ cmp r0, r2
+ bge _02257E32
+ ldr r3, [r5]
+ asr r1, r3, #8
+ cmp r4, r1
+ bne _02257E3E
+ lsl r1, r3, #0x18
+ lsr r1, r1, #0x18
+ bne _02257E3E
+ mov r0, #0
+ mvn r0, r0
+ pop {r4, r5, r6, pc}
+_02257E32:
+ ldr r1, [r5]
+ cmp r4, r1
+ bne _02257E3E
+ mov r0, #0
+ mvn r0, r0
+ pop {r4, r5, r6, pc}
+_02257E3E:
+ cmp r0, r2
+ bge _02257E7E
+ lsl r0, r0, #8
+ add r1, r2, #0
+ bl _s32_div_f
+ cmp r6, #0
+ ldr r1, [r5]
+ bge _02257E62
+ add r0, r1, r0
+ str r0, [r5]
+ asr r0, r0, #8
+ cmp r0, r4
+ blt _02257EA2
+ lsl r0, r4, #8
+ str r0, [r5]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02257E62:
+ sub r1, r1, r0
+ str r1, [r5]
+ asr r0, r1, #8
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ cmp r1, #0
+ ble _02257E72
+ add r0, r0, #1
+_02257E72:
+ cmp r0, r4
+ bgt _02257EA2
+ lsl r0, r4, #8
+ str r0, [r5]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02257E7E:
+ cmp r6, #0
+ ldr r1, [r5]
+ add r0, sp, #0
+ bge _02257E94
+ ldrh r0, [r0, #0x14]
+ add r0, r1, r0
+ str r0, [r5]
+ cmp r0, r4
+ ble _02257EA0
+ str r4, [r5]
+ b _02257EA0
+_02257E94:
+ ldrh r0, [r0, #0x14]
+ sub r0, r1, r0
+ str r0, [r5]
+ cmp r0, r4
+ bge _02257EA0
+ str r4, [r5]
+_02257EA0:
+ ldr r0, [r5]
+_02257EA2:
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_02257EA4
+MOD11_02257EA4: ; 0x02257EA4
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r5, [sp, #0x18]
+ sub r7, r1, r2
+ bpl _02257EB2
+ mov r7, #0
+ b _02257EB8
+_02257EB2:
+ cmp r7, r6
+ ble _02257EB8
+ add r7, r6, #0
+_02257EB8:
+ add r0, sp, #8
+ ldrb r4, [r0, #0x14]
+ mov r1, #0
+ lsl r2, r4, #3
+ cmp r4, #0
+ ble _02257ECE
+ add r0, r1, #0
+_02257EC6:
+ strb r0, [r5, r1]
+ add r1, r1, #1
+ cmp r1, r4
+ blt _02257EC6
+_02257ECE:
+ cmp r6, r2
+ ldr r1, [r3]
+ bhs _02257EE2
+ add r0, r1, #0
+ mul r0, r2
+ add r1, r6, #0
+ bl _u32_div_f
+ lsr r0, r0, #8
+ b _02257EEC
+_02257EE2:
+ add r0, r1, #0
+ mul r0, r2
+ add r1, r6, #0
+ bl _u32_div_f
+_02257EEC:
+ add r2, r0, #0
+ cmp r0, #0
+ bne _02257EFC
+ cmp r7, #0
+ ble _02257EFC
+ mov r2, #1
+ strb r2, [r5]
+ b _02257F18
+_02257EFC:
+ mov r3, #0
+ cmp r4, #0
+ ble _02257F18
+ mov r1, #8
+_02257F04:
+ cmp r0, #8
+ blo _02257F0E
+ strb r1, [r5, r3]
+ sub r0, #8
+ b _02257F12
+_02257F0E:
+ strb r0, [r5, r3]
+ b _02257F18
+_02257F12:
+ add r3, r3, #1
+ cmp r3, r4
+ blt _02257F04
+_02257F18:
+ lsl r0, r2, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02257F20
+MOD11_02257F20: ; 0x02257F20
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ lsl r0, r3, #0x1b
+ add r5, r2, #0
+ lsr r6, r0, #0x18
+ sub r4, r7, r1
+ bpl _02257F32
+ mov r4, #0
+ b _02257F38
+_02257F32:
+ cmp r4, r5
+ ble _02257F38
+ add r4, r5, #0
+_02257F38:
+ add r0, r7, #0
+ mul r0, r6
+ add r1, r5, #0
+ bl _s32_div_f
+ add r7, r0, #0
+ add r0, r4, #0
+ mul r0, r6
+ add r1, r5, #0
+ bl _s32_div_f
+ lsl r1, r7, #0x18
+ lsl r0, r0, #0x18
+ asr r1, r1, #0x18
+ asr r0, r0, #0x18
+ sub r0, r1, r0
+ bl abs
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02257F60
+MOD11_02257F60: ; 0x02257F60
+ ldr r1, _02257F68 ; =0x0225ECE8
+ lsl r0, r0, #5
+ add r0, r1, r0
+ bx lr
+ .align 2, 0
+_02257F68: .word 0x0225ECE8
+
+ thumb_func_start MOD11_02257F6C
+MOD11_02257F6C: ; 0x02257F6C
+ push {r3, lr}
+ cmp r0, #5
+ bhi _02257FB8
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02257F7E: ; jump table
+ .short _02257F8A - _02257F7E - 2 ; case 0
+ .short _02257FA4 - _02257F7E - 2 ; case 1
+ .short _02257FA8 - _02257F7E - 2 ; case 2
+ .short _02257FAC - _02257F7E - 2 ; case 3
+ .short _02257FB0 - _02257F7E - 2 ; case 4
+ .short _02257FB4 - _02257F7E - 2 ; case 5
+_02257F8A:
+ mov r0, #2
+ lsl r0, r0, #8
+ tst r0, r1
+ beq _02257F96
+ mov r0, #7
+ pop {r3, pc}
+_02257F96:
+ mov r0, #0x20
+ tst r0, r1
+ beq _02257FA0
+ mov r0, #6
+ pop {r3, pc}
+_02257FA0:
+ mov r0, #0
+ pop {r3, pc}
+_02257FA4:
+ mov r0, #1
+ pop {r3, pc}
+_02257FA8:
+ mov r0, #2
+ pop {r3, pc}
+_02257FAC:
+ mov r0, #3
+ pop {r3, pc}
+_02257FB0:
+ mov r0, #4
+ pop {r3, pc}
+_02257FB4:
+ mov r0, #5
+ pop {r3, pc}
+_02257FB8:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD11_02257FC0
+MOD11_02257FC0: ; 0x02257FC0
+ push {r3, lr}
+ cmp r0, #7
+ bhi _02257FFE
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02257FD2: ; jump table
+ .short _02257FE2 - _02257FD2 - 2 ; case 0
+ .short _02257FE6 - _02257FD2 - 2 ; case 1
+ .short _02257FEA - _02257FD2 - 2 ; case 2
+ .short _02257FEE - _02257FD2 - 2 ; case 3
+ .short _02257FF2 - _02257FD2 - 2 ; case 4
+ .short _02257FF6 - _02257FD2 - 2 ; case 5
+ .short _02257FFA - _02257FD2 - 2 ; case 6
+ .short _02257FFA - _02257FD2 - 2 ; case 7
+_02257FE2:
+ ldr r0, _02258008 ; =0x0225EBEC
+ pop {r3, pc}
+_02257FE6:
+ ldr r0, _0225800C ; =0x0225EC20
+ pop {r3, pc}
+_02257FEA:
+ ldr r0, _02258010 ; =0x0225EAE8
+ pop {r3, pc}
+_02257FEE:
+ ldr r0, _02258014 ; =0x0225EB1C
+ pop {r3, pc}
+_02257FF2:
+ ldr r0, _02258018 ; =0x0225EB84
+ pop {r3, pc}
+_02257FF6:
+ ldr r0, _0225801C ; =0x0225EC54
+ pop {r3, pc}
+_02257FFA:
+ ldr r0, _02258020 ; =0x0225EBB8
+ pop {r3, pc}
+_02257FFE:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, pc}
+ nop
+_02258008: .word 0x0225EBEC
+_0225800C: .word 0x0225EC20
+_02258010: .word 0x0225EAE8
+_02258014: .word 0x0225EB1C
+_02258018: .word 0x0225EB84
+_0225801C: .word 0x0225EC54
+_02258020: .word 0x0225EBB8
+
+ thumb_func_start MOD11_02258024
+MOD11_02258024: ; 0x02258024
+ push {r3, lr}
+ cmp r0, #7
+ bhi _0225804E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02258036: ; jump table
+ .short _02258046 - _02258036 - 2 ; case 0
+ .short _0225804A - _02258036 - 2 ; case 1
+ .short _02258046 - _02258036 - 2 ; case 2
+ .short _0225804A - _02258036 - 2 ; case 3
+ .short _02258046 - _02258036 - 2 ; case 4
+ .short _0225804A - _02258036 - 2 ; case 5
+ .short _02258046 - _02258036 - 2 ; case 6
+ .short _02258046 - _02258036 - 2 ; case 7
+_02258046:
+ ldr r0, _02258058 ; =0x0225EB50
+ pop {r3, pc}
+_0225804A:
+ mov r0, #0
+ pop {r3, pc}
+_0225804E:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, pc}
+ nop
+_02258058: .word 0x0225EB50
+
+ thumb_func_start MOD11_0225805C
+MOD11_0225805C: ; 0x0225805C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #0
+ strb r0, [r6]
+ mov r0, #5
+ mov r1, #0xc
+ bl AllocFromHeap
+ mov r1, #0
+ mov r2, #0xc
+ add r4, r0, #0
+ bl MI_CpuFill8
+ mov r2, #0xfa
+ str r5, [r4]
+ ldr r0, _0225808C ; =MOD11_02258090
+ add r1, r4, #0
+ lsl r2, r2, #2
+ str r6, [r4, #4]
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+ nop
+_0225808C: .word MOD11_02258090
+
+ thumb_func_start MOD11_02258090
+MOD11_02258090: ; 0x02258090
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r7, r0, #0
+ ldr r0, [r4]
+ ldr r0, [r0, #0xc]
+ bl MOD11_02230080
+ add r5, r0, #0
+ ldr r0, [r4]
+ ldr r0, [r0, #0xc]
+ bl MOD11_022300CC
+ add r6, r0, #0
+ ldrb r0, [r4, #8]
+ cmp r0, #0
+ beq _022580BC
+ cmp r0, #1
+ beq _022580DA
+ cmp r0, #2
+ beq _02258112
+ b _0225814A
+_022580BC:
+ ldr r1, _02258174 ; =0x00004E27
+ add r0, r5, #0
+ mov r2, #1
+ bl FUN_0200C344
+ add r5, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ ldr r0, [r0, #4]
+ bl FUN_0200C66C
+ strb r5, [r4, #9]
+ ldrb r0, [r4, #8]
+ add r0, r0, #1
+ strb r0, [r4, #8]
+_022580DA:
+ mov r0, #0xa
+ ldrsb r1, [r4, r0]
+ add r1, r1, #4
+ strb r1, [r4, #0xa]
+ ldrsb r0, [r4, r0]
+ cmp r0, #0x10
+ blt _022580F2
+ mov r0, #0x10
+ strb r0, [r4, #0xa]
+ ldrb r0, [r4, #8]
+ add r0, r0, #1
+ strb r0, [r4, #8]
+_022580F2:
+ ldrb r0, [r4, #0xa]
+ mov r1, #2
+ mov r3, #1
+ str r0, [sp]
+ ldr r0, _02258178 ; =0x000073A5
+ str r0, [sp, #4]
+ ldrb r2, [r4, #9]
+ add r0, r6, #0
+ lsl r2, r2, #4
+ add r2, #0xf
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ bl FUN_020039E8
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_02258112:
+ mov r0, #0xa
+ ldrsb r1, [r4, r0]
+ sub r1, r1, #4
+ strb r1, [r4, #0xa]
+ ldrsb r0, [r4, r0]
+ cmp r0, #0
+ bgt _0225812A
+ mov r0, #0
+ strb r0, [r4, #0xa]
+ ldrb r0, [r4, #8]
+ add r0, r0, #1
+ strb r0, [r4, #8]
+_0225812A:
+ ldrb r0, [r4, #0xa]
+ mov r1, #2
+ mov r3, #1
+ str r0, [sp]
+ ldr r0, _02258178 ; =0x000073A5
+ str r0, [sp, #4]
+ ldrb r2, [r4, #9]
+ add r0, r6, #0
+ lsl r2, r2, #4
+ add r2, #0xf
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ bl FUN_020039E8
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_0225814A:
+ ldr r1, _0225817C ; =0x00004E26
+ add r0, r5, #0
+ mov r2, #1
+ bl FUN_0200C344
+ add r1, r0, #0
+ ldr r0, [r4]
+ ldr r0, [r0, #4]
+ bl FUN_0200C66C
+ ldr r0, [r4, #4]
+ mov r1, #1
+ strb r1, [r0]
+ add r0, r4, #0
+ bl FreeToHeap
+ add r0, r7, #0
+ bl FUN_0200CAB4
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02258174: .word 0x00004E27
+_02258178: .word 0x000073A5
+_0225817C: .word 0x00004E26
+
+ thumb_func_start MOD11_02258180
+MOD11_02258180: ; 0x02258180
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_02258184
+MOD11_02258184: ; 0x02258184
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_02258188
+MOD11_02258188: ; 0x02258188
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x50]
+ cmp r0, #0
+ bne _022581A6
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x54
+ strh r1, [r0]
+ ldr r0, _022581A8 ; =MOD11_022581D4
+ ldr r2, _022581AC ; =0x000003F2
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #0x50]
+_022581A6:
+ pop {r4, pc}
+ .align 2, 0
+_022581A8: .word MOD11_022581D4
+_022581AC: .word 0x000003F2
+
+ thumb_func_start MOD11_022581B0
+MOD11_022581B0: ; 0x022581B0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x50]
+ cmp r0, #0
+ beq _022581C2
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #0x50]
+_022581C2:
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x54
+ strh r1, [r0]
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD11_022572C8
+ pop {r4, pc}
+
+ thumb_func_start MOD11_022581D4
+MOD11_022581D4: ; 0x022581D4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r1, #0x54
+ ldrh r2, [r1]
+ add r1, r4, #0
+ add r1, #0x54
+ add r2, #0x14
+ strh r2, [r1]
+ add r1, r4, #0
+ add r1, #0x54
+ ldrh r2, [r1]
+ mov r1, #0x5a
+ add r0, r4, #0
+ lsl r1, r1, #2
+ add r0, #0x54
+ cmp r2, r1
+ blo _022581FC
+ ldrh r2, [r0]
+ sub r1, r2, r1
+ strh r1, [r0]
+_022581FC:
+ add r0, r4, #0
+ add r0, #0x54
+ ldrh r0, [r0]
+ bl Sin
+ mov r2, #6
+ asr r1, r0, #0x1f
+ lsl r2, r2, #0xa
+ mov r3, #0
+ bl _ll_mul
+ mov r2, #2
+ add r3, r0, #0
+ add r5, r1, #0
+ mov r1, #0
+ lsl r2, r2, #0xa
+ add r0, r4, #0
+ add r3, r3, r2
+ adc r5, r1
+ lsl r2, r5, #0x14
+ lsr r3, r3, #0xc
+ orr r3, r2
+ asr r2, r3, #0xb
+ lsr r2, r2, #0x14
+ add r2, r3, r2
+ asr r2, r2, #0xc
+ bl MOD11_022572C8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02258238
+MOD11_02258238: ; 0x02258238
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ bl MOD11_02230078
+ str r0, [sp, #0x20]
+ ldr r0, [r5, #4]
+ bl MOD11_02230080
+ add r7, r0, #0
+ ldr r0, [r5, #4]
+ bl MOD11_02230C68
+ add r6, r0, #0
+ ldrb r0, [r5, #8]
+ cmp r0, #0
+ ldrb r0, [r5, #9]
+ bne _02258274
+ lsl r1, r0, #1
+ ldr r0, _02258320 ; =0x0225F5C0
+ ldrh r3, [r0, r1]
+ ldr r0, _02258324 ; =0x00004E2D
+ mov r1, #0x58
+ str r1, [sp, #0x1c]
+ add r4, r0, #0
+ mov r1, #0x59
+ sub r4, #8
+ str r1, [sp, #0x18]
+ b _02258288
+_02258274:
+ lsl r1, r0, #1
+ ldr r0, _02258328 ; =0x0225F5A8
+ ldrh r3, [r0, r1]
+ ldr r0, _0225832C ; =0x00004E2E
+ mov r1, #0x5b
+ str r1, [sp, #0x1c]
+ add r4, r0, #0
+ mov r1, #0x5c
+ sub r4, #8
+ str r1, [sp, #0x18]
+_02258288:
+ mov r1, #1
+ str r1, [sp]
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x20]
+ add r1, r7, #0
+ mov r2, #0x1b
+ bl FUN_0200C00C
+ ldr r0, [r5, #4]
+ bl MOD11_022300CC
+ mov r1, #0x1b
+ str r1, [sp]
+ ldrb r1, [r5, #9]
+ mov r2, #6
+ add r3, r1, #0
+ mul r3, r2
+ ldr r2, _02258330 ; =0x0225F5D8
+ lsl r1, r6, #1
+ add r2, r2, r3
+ ldrh r1, [r1, r2]
+ ldr r2, [sp, #0x20]
+ add r3, r7, #0
+ str r1, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ mov r1, #1
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x10]
+ ldr r1, _02258334 ; =0x00004E29
+ str r1, [sp, #0x14]
+ mov r1, #2
+ bl FUN_0200C0DC
+ ldr r0, [r5, #4]
+ bl MOD11_022300CC
+ mov r1, #0
+ str r1, [sp]
+ mov r1, #0x20
+ str r1, [sp, #4]
+ mov r1, #0x70
+ str r1, [sp, #8]
+ ldrb r2, [r5, #9]
+ mov r3, #6
+ lsl r5, r6, #1
+ mul r3, r2
+ ldr r2, _02258330 ; =0x0225F5D8
+ mov r1, #0x1b
+ add r2, r2, r3
+ ldrh r2, [r5, r2]
+ mov r3, #5
+ bl FUN_020030E8
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, [sp, #0x20]
+ ldr r3, [sp, #0x1c]
+ add r1, r7, #0
+ mov r2, #0x1b
+ str r4, [sp, #4]
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, [sp, #0x20]
+ ldr r3, [sp, #0x18]
+ add r1, r7, #0
+ mov r2, #0x1b
+ str r4, [sp, #4]
+ bl FUN_0200C13C
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02258320: .word 0x0225F5C0
+_02258324: .word 0x00004E2D
+_02258328: .word 0x0225F5A8
+_0225832C: .word 0x00004E2E
+_02258330: .word 0x0225F5D8
+_02258334: .word 0x00004E29
+
+ thumb_func_start MOD11_02258338
+MOD11_02258338: ; 0x02258338
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD11_02230078
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ bl MOD11_02230080
+ add r1, r0, #0
+ add r0, r5, #0
+ ldrb r3, [r4, #8]
+ mov r2, #0x34
+ ldr r5, _02258368 ; =0x0225F61C
+ mul r2, r3
+ add r2, r5, r2
+ bl FUN_0200C154
+ str r0, [r4]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ pop {r3, r4, r5, pc}
+ nop
+_02258368: .word 0x0225F61C
+
+ thumb_func_start MOD11_0225836C
+MOD11_0225836C: ; 0x0225836C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _0225837E
+ bl FUN_0200C3DC
+ mov r0, #0
+ str r0, [r4]
+_0225837E:
+ pop {r4, pc}
+
+ thumb_func_start MOD11_02258380
+MOD11_02258380: ; 0x02258380
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ bl MOD11_02230080
+ add r4, r0, #0
+ ldrb r0, [r5, #8]
+ cmp r0, #0
+ bne _02258396
+ ldr r1, _022583BC ; =0x00004E2D
+ b _02258398
+_02258396:
+ ldr r1, _022583C0 ; =0x00004E2E
+_02258398:
+ add r5, r1, #0
+ add r0, r4, #0
+ sub r5, #8
+ bl FUN_0200C358
+ ldr r1, _022583C4 ; =0x00004E29
+ add r0, r4, #0
+ bl FUN_0200C368
+ add r0, r4, #0
+ add r1, r5, #0
+ bl FUN_0200C378
+ add r0, r4, #0
+ add r1, r5, #0
+ bl FUN_0200C388
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022583BC: .word 0x00004E2D
+_022583C0: .word 0x00004E2E
+_022583C4: .word 0x00004E29
+
+ thumb_func_start MOD11_022583C8
+MOD11_022583C8: ; 0x022583C8
+ push {r3, lr}
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _022583D4
+ bl FUN_0200C644
+_022583D4:
+ pop {r3, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_022583D8
+MOD11_022583D8: ; 0x022583D8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ mov r0, #0
+ add r1, r5, #0
+ mov r2, #0x10
+ add r7, r3, #0
+ bl MIi_CpuClearFast
+ str r4, [r5, #4]
+ strb r6, [r5, #8]
+ strb r7, [r5, #9]
+ cmp r7, #0xc
+ blt _022583FE
+ bl ErrorHandling
+ mov r0, #0
+ strb r0, [r5, #9]
+_022583FE:
+ add r0, r5, #0
+ bl MOD11_02258238
+ add r0, r5, #0
+ bl MOD11_02258338
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0225840C
+MOD11_0225840C: ; 0x0225840C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD11_0225836C
+ add r0, r4, #0
+ bl MOD11_02258380
+ mov r0, #0
+ add r1, r4, #0
+ mov r2, #0x10
+ bl MIi_CpuClearFast
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_02258428
+MOD11_02258428: ; 0x02258428
+ push {r4, lr}
+ mov r1, #7
+ mov r0, #5
+ lsl r1, r1, #8
+ bl AllocFromHeap
+ mov r2, #7
+ mov r1, #0
+ lsl r2, r2, #8
+ add r4, r0, #0
+ bl MI_CpuFill8
+ mov r1, #0
+ ldr r0, _0225844C ; =0x0000069F
+ mvn r1, r1
+ strb r1, [r4, r0]
+ add r0, r4, #0
+ pop {r4, pc}
+ .align 2, 0
+_0225844C: .word 0x0000069F
+
+ thumb_func_start MOD11_02258450
+MOD11_02258450: ; 0x02258450
+ push {r3, r4, r5, r6, r7, lr}
+ mov r4, #0
+ ldr r6, _022584A4 ; =0x0225F97C
+ add r5, r0, #0
+ add r7, r4, #0
+_0225845A:
+ add r1, r4, #4
+ lsl r1, r1, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ add r2, r6, #0
+ add r3, r7, #0
+ bl FUN_02016C18
+ add r1, r4, #4
+ lsl r1, r1, #0x18
+ ldr r2, _022584A8 ; =0x000002FF
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ bl FUN_02018768
+ add r1, r4, #4
+ lsl r1, r1, #0x18
+ mov r2, #0
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ add r3, r2, #0
+ bl FUN_020179E0
+ add r1, r4, #4
+ lsl r1, r1, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ add r4, r4, #1
+ add r6, #0x1c
+ cmp r4, #4
+ blo _0225845A
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022584A4: .word 0x0225F97C
+_022584A8: .word 0x000002FF
+
+ thumb_func_start MOD11_022584AC
+MOD11_022584AC: ; 0x022584AC
+ push {r4, r5, r6, lr}
+ mov r4, #0
+ add r5, r0, #0
+ add r6, r4, #0
+_022584B4:
+ add r0, r4, #4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ add r1, r6, #0
+ bl FUN_0201797C
+ add r1, r4, #4
+ lsl r1, r1, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ bl FUN_020178A0
+ add r4, r4, #1
+ cmp r4, #4
+ blo _022584B4
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_022584D4
+MOD11_022584D4: ; 0x022584D4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ add r5, r1, #0
+ bl MOD11_02258428
+ add r6, r0, #0
+ ldr r0, _0225863C ; =0x000006A1
+ str r4, [r6]
+ strb r5, [r6, r0]
+ add r0, r4, #0
+ bl MOD11_022300CC
+ str r0, [sp, #0x10]
+ mov r0, #0xd
+ mov r1, #5
+ bl FUN_02011744
+ ldr r2, _02258640 ; =0x000004C8
+ add r1, r6, #0
+ str r0, [r6, r2]
+ ldr r0, _02258644 ; =MOD11_0225B794
+ add r2, #0x56
+ bl FUN_0200CA44
+ ldr r1, _02258648 ; =0x000006AC
+ mov r7, #2
+ str r0, [r6, r1]
+ mov r4, #0
+ lsl r7, r7, #0xa
+ b _0225854E
+_02258512:
+ mov r0, #5
+ add r1, r7, #0
+ bl AllocFromHeap
+ lsl r1, r4, #2
+ add r1, r6, r1
+ str r0, [r1, #0x3c]
+ mov r0, #5
+ str r0, [sp]
+ ldr r1, _0225864C ; =0x0225F6FC
+ lsl r2, r4, #1
+ ldrh r1, [r1, r2]
+ mov r0, #7
+ mov r2, #1
+ add r3, sp, #0x18
+ bl FUN_02006BDC
+ add r5, r0, #0
+ lsl r0, r4, #2
+ add r0, r6, r0
+ ldr r1, [r0, #0x3c]
+ ldr r0, [sp, #0x18]
+ add r2, r7, #0
+ add r0, #0xc
+ bl MIi_CpuCopy32
+ add r0, r5, #0
+ bl FreeToHeap
+ add r4, r4, #1
+_0225854E:
+ cmp r4, #7
+ blt _02258512
+ mov r1, #2
+ mov r0, #5
+ lsl r1, r1, #8
+ bl AllocFromHeap
+ str r0, [r6, #0x58]
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x10]
+ mov r1, #7
+ mov r2, #0xc3
+ mov r3, #5
+ bl FUN_020030E8
+ ldr r0, [sp, #0x10]
+ mov r1, #1
+ bl FUN_020031FC
+ mov r2, #2
+ ldr r1, [r6, #0x58]
+ lsl r2, r2, #8
+ bl MIi_CpuCopy16
+ add r5, r6, #0
+ mov r7, #0x46
+ mov r4, #0
+ add r5, #0x68
+ lsl r7, r7, #2
+ b _022585A2
+_02258592:
+ add r0, r4, #0
+ mul r0, r7
+ add r0, r5, r0
+ mov r1, #0xff
+ mov r2, #0x18
+ bl MI_CpuFill8
+ add r4, r4, #1
+_022585A2:
+ cmp r4, #4
+ blt _02258592
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r7, #6
+ b _022585DE
+_022585AE:
+ mov r0, #0x46
+ ldr r1, [sp, #0xc]
+ lsl r0, r0, #2
+ mul r0, r1
+ mov r5, #0
+ add r4, r6, r0
+ b _022585D4
+_022585BC:
+ add r0, r7, #0
+ bl FUN_020799E8
+ add r1, r0, #0
+ mov r0, #5
+ bl AllocFromHeap
+ lsl r1, r5, #2
+ add r1, r4, r1
+ add r1, #0x80
+ str r0, [r1]
+ add r5, r5, #1
+_022585D4:
+ cmp r5, #4
+ blt _022585BC
+ ldr r0, [sp, #0xc]
+ add r0, r0, #1
+ str r0, [sp, #0xc]
+_022585DE:
+ ldr r0, [sp, #0xc]
+ cmp r0, #4
+ blt _022585AE
+ mov r0, #5
+ mov r1, #0x20
+ bl AllocFromHeap
+ str r0, [r6, #0x5c]
+ mov r0, #5
+ mov r1, #0x20
+ bl AllocFromHeap
+ str r0, [r6, #0x60]
+ ldr r1, [r6, #0x5c]
+ ldr r0, [r6, #0x58]
+ mov r2, #0x20
+ bl MIi_CpuCopy16
+ mov r0, #7
+ mov r1, #0xca
+ add r2, sp, #0x14
+ mov r3, #5
+ bl FUN_02006C08
+ add r4, r0, #0
+ ldr r0, [sp, #0x14]
+ ldr r1, [r6, #0x60]
+ ldr r0, [r0, #0xc]
+ mov r2, #0x20
+ bl MIi_CpuCopy16
+ add r0, r4, #0
+ bl FreeToHeap
+ bl FUN_02002BE4
+ bl FUN_02002C04
+ ldr r0, _02258650 ; =MOD11_0225B824
+ ldr r2, _02258654 ; =0x0000D6D8
+ add r1, r6, #0
+ bl FUN_0200CA44
+ str r0, [r6, #0x64]
+ add r0, r6, #0
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225863C: .word 0x000006A1
+_02258640: .word 0x000004C8
+_02258644: .word MOD11_0225B794
+_02258648: .word 0x000006AC
+_0225864C: .word 0x0225F6FC
+_02258650: .word MOD11_0225B824
+_02258654: .word 0x0000D6D8
+
+ thumb_func_start MOD11_02258658
+MOD11_02258658: ; 0x02258658
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ bl MOD11_0225ACB0
+ add r0, r6, #0
+ bl MOD11_02258B10
+ add r0, r6, #0
+ bl MOD11_022587A8
+ ldr r0, _022586B4 ; =0x000004C8
+ ldr r0, [r6, r0]
+ bl FUN_020117BC
+ ldr r0, _022586B8 ; =0x000006AC
+ ldr r0, [r6, r0]
+ bl FUN_0200CAB4
+ mov r4, #0
+ add r5, r6, #0
+_02258680:
+ ldr r0, [r5, #0x3c]
+ bl FreeToHeap
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #7
+ blt _02258680
+ ldr r0, [r6, #0x58]
+ bl FreeToHeap
+ add r0, r6, #0
+ bl MOD11_0225A6B0
+ ldr r0, [r6, #0x5c]
+ bl FreeToHeap
+ ldr r0, [r6, #0x60]
+ bl FreeToHeap
+ ldr r0, [r6, #0x64]
+ bl FUN_0200CAB4
+ add r0, r6, #0
+ bl FreeToHeap
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_022586B4: .word 0x000004C8
+_022586B8: .word 0x000006AC
+
+ thumb_func_start MOD11_022586BC
+MOD11_022586BC: ; 0x022586BC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r7, r0, #0
+ ldr r0, [r7]
+ bl MOD11_02230078
+ add r6, r0, #0
+ ldr r0, [r7]
+ bl MOD11_02230080
+ add r4, r0, #0
+ ldr r0, [r7]
+ bl MOD11_0222FF68
+ add r5, r0, #0
+ ldr r0, [r7]
+ bl MOD11_022300CC
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #5
+ str r0, [sp, #0xc]
+ mov r0, #7
+ mov r1, #0x11
+ add r2, r5, #0
+ mov r3, #4
+ bl FUN_0200687C
+ ldr r2, _02258790 ; =0x00004E2D
+ add r0, r6, #0
+ add r1, r4, #0
+ add r3, r2, #0
+ bl FUN_0206E1D4
+ ldr r0, [r7]
+ bl MOD11_022300CC
+ mov r1, #2
+ str r1, [sp]
+ ldr r1, _02258794 ; =0x00004E30
+ add r2, r6, #0
+ str r1, [sp, #4]
+ mov r1, #3
+ add r3, r4, #0
+ bl FUN_0206E198
+ mov r5, #0
+_02258726:
+ ldr r0, _02258798 ; =0x00004E35
+ add r1, r4, #0
+ add r0, r5, r0
+ str r0, [sp]
+ add r0, r6, #0
+ mov r2, #2
+ mov r3, #0
+ bl FUN_0206E130
+ add r5, r5, #1
+ cmp r5, #4
+ blt _02258726
+ ldr r0, [r7]
+ bl MOD11_0222FF74
+ mov r1, #1
+ lsl r1, r1, #0xa
+ tst r0, r1
+ beq _0225878C
+ ldr r0, _0225879C ; =0x00004E40
+ ldr r3, _022587A0 ; =0x00004FB2
+ str r0, [sp]
+ add r0, r3, #0
+ str r3, [sp, #4]
+ sub r0, #0xb
+ str r0, [sp, #8]
+ ldr r2, [sp, #0x14]
+ add r0, r6, #0
+ add r1, r4, #0
+ add r3, r3, #6
+ bl MOD11_0225D6A4
+ ldr r0, _0225879C ; =0x00004E40
+ ldr r3, _022587A0 ; =0x00004FB2
+ str r0, [sp]
+ add r0, r3, #0
+ str r3, [sp, #4]
+ sub r0, #0xb
+ str r0, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ add r0, r6, #0
+ add r1, r4, #0
+ mov r2, #5
+ add r3, r3, #6
+ bl MOD11_0225D73C
+ ldr r1, _022587A4 ; =0x000006F8
+ str r0, [r7, r1]
+_0225878C:
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02258790: .word 0x00004E2D
+_02258794: .word 0x00004E30
+_02258798: .word 0x00004E35
+_0225879C: .word 0x00004E40
+_022587A0: .word 0x00004FB2
+_022587A4: .word 0x000006F8
+
+ thumb_func_start MOD11_022587A8
+MOD11_022587A8: ; 0x022587A8
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ ldr r0, [r7]
+ bl MOD11_02230078
+ ldr r0, [r7]
+ bl MOD11_02230080
+ ldr r6, _02258808 ; =0x00004E35
+ add r5, r0, #0
+ mov r4, #0
+_022587BE:
+ add r0, r5, #0
+ add r1, r4, r6
+ bl FUN_0206E21C
+ add r4, r4, #1
+ cmp r4, #4
+ blt _022587BE
+ ldr r1, _0225880C ; =0x00004E30
+ add r0, r5, #0
+ bl FUN_0206E224
+ ldr r1, _02258810 ; =0x00004E2D
+ add r0, r5, #0
+ add r2, r1, #0
+ bl FUN_0206E22C
+ ldr r0, [r7]
+ bl MOD11_0222FF74
+ mov r1, #1
+ lsl r1, r1, #0xa
+ tst r0, r1
+ beq _02258806
+ ldr r0, _02258814 ; =0x000006F8
+ ldr r0, [r7, r0]
+ bl MOD11_0225D7B8
+ ldr r3, _02258818 ; =0x00004FA7
+ ldr r2, _0225881C ; =0x00004E40
+ add r1, r3, #0
+ str r3, [sp]
+ add r0, r5, #0
+ add r1, #0x11
+ add r3, #0xb
+ bl MOD11_0225D714
+_02258806:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02258808: .word 0x00004E35
+_0225880C: .word 0x00004E30
+_02258810: .word 0x00004E2D
+_02258814: .word 0x000006F8
+_02258818: .word 0x00004FA7
+_0225881C: .word 0x00004E40
+
+ thumb_func_start MOD11_02258820
+MOD11_02258820: ; 0x02258820
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ add r7, r0, #0
+ str r1, [sp, #0x18]
+ str r2, [sp, #0x1c]
+ cmp r3, #0
+ beq _0225883A
+ add r1, r7, #0
+ add r0, r3, #0
+ add r1, #0x18
+ mov r2, #0x22
+ bl MI_CpuCopy8
+_0225883A:
+ ldr r0, _0225893C ; =0x000006A2
+ mov r1, #0
+ strb r1, [r7, r0]
+ ldr r0, [r7]
+ bl MOD11_0222FF68
+ str r0, [sp, #0x28]
+ ldr r0, [r7]
+ bl MOD11_02230078
+ str r0, [sp, #0x24]
+ ldr r0, [r7]
+ bl MOD11_02230080
+ str r0, [sp, #0x20]
+ ldr r0, _02258940 ; =0x0000069F
+ ldrsb r2, [r7, r0]
+ mov r0, #0
+ mvn r0, r0
+ cmp r2, r0
+ bne _0225886C
+ mov r0, #1
+ str r0, [sp, #0x1c]
+ mov r5, #0
+ b _02258874
+_0225886C:
+ mov r0, #0x30
+ ldr r1, _02258944 ; =0x0225FAAC
+ mul r0, r2
+ add r5, r1, r0
+_02258874:
+ ldr r0, [sp, #0x18]
+ mov r1, #0x30
+ ldr r2, _02258944 ; =0x0225FAAC
+ mul r1, r0
+ add r0, r2, r1
+ str r0, [sp, #0x2c]
+ ldr r0, [r7]
+ bl MOD11_022300CC
+ mov r1, #2
+ lsl r1, r1, #8
+ str r1, [sp]
+ ldr r1, [r7, #0x58]
+ mov r2, #1
+ mov r3, #0
+ bl FUN_02003054
+ ldr r6, [sp, #0x2c]
+ mov r4, #0
+_0225889A:
+ ldrh r2, [r6, #4]
+ ldr r0, _02258948 ; =0x0000FFFF
+ cmp r2, r0
+ beq _022588D0
+ ldr r0, [sp, #0x1c]
+ cmp r0, #1
+ beq _022588AE
+ ldrh r0, [r5, #4]
+ cmp r2, r0
+ beq _022588D0
+_022588AE:
+ lsl r2, r2, #2
+ add r1, r4, #4
+ add r2, r7, r2
+ lsl r1, r1, #0x18
+ mov r3, #2
+ ldr r0, [sp, #0x28]
+ ldr r2, [r2, #0x3c]
+ lsr r1, r1, #0x18
+ lsl r3, r3, #0xa
+ bl FUN_02017DFC
+ add r1, r4, #4
+ lsl r1, r1, #0x18
+ ldr r0, [sp, #0x28]
+ lsr r1, r1, #0x18
+ bl FUN_0201AC68
+_022588D0:
+ add r4, r4, #1
+ add r6, r6, #2
+ add r5, r5, #2
+ cmp r4, #4
+ blt _0225889A
+ ldr r0, [r7]
+ bl MOD11_022300CC
+ mov r1, #0x1b
+ str r1, [sp]
+ mov r1, #0x24
+ str r1, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ mov r1, #7
+ str r1, [sp, #0xc]
+ mov r1, #2
+ str r1, [sp, #0x10]
+ ldr r1, _0225894C ; =0x00004E33
+ ldr r2, [sp, #0x24]
+ str r1, [sp, #0x14]
+ ldr r3, [sp, #0x20]
+ mov r1, #3
+ bl FUN_0200C0DC
+ ldr r1, _02258940 ; =0x0000069F
+ ldr r0, [sp, #0x18]
+ mov r2, #0xf
+ strb r0, [r7, r1]
+ mov r0, #4
+ str r0, [sp]
+ ldr r0, _02258950 ; =0x04001050
+ mov r1, #2
+ mov r3, #0x1b
+ bl G2x_SetBlendAlpha_
+ add r0, r7, #0
+ bl MOD11_0225ACB0
+ ldr r0, [sp, #0x2c]
+ ldr r3, [r0, #0x28]
+ cmp r3, #0
+ beq _0225892E
+ ldr r1, [sp, #0x18]
+ ldr r2, [sp, #0x1c]
+ add r0, r7, #0
+ blx r3
+_0225892E:
+ ldr r0, _02258954 ; =MOD11_0225B700
+ add r1, r7, #0
+ mov r2, #0xa
+ bl FUN_0200CA98
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225893C: .word 0x000006A2
+_02258940: .word 0x0000069F
+_02258944: .word 0x0225FAAC
+_02258948: .word 0x0000FFFF
+_0225894C: .word 0x00004E33
+_02258950: .word 0x04001050
+_02258954: .word MOD11_0225B700
+
+ thumb_func_start MOD11_02258958
+MOD11_02258958: ; 0x02258958
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ ldr r1, _02258ADC ; =0x000005D4
+ str r0, [sp, #0x14]
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ bne _02258970
+ ldr r0, [sp, #0x14]
+ add r1, #0x18
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ beq _02258974
+_02258970:
+ bl ErrorHandling
+_02258974:
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0]
+ bl MOD11_02230078
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0]
+ bl MOD11_02230080
+ add r7, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _02258AE0 ; =0x00004E33
+ add r1, r7, #0
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x18]
+ mov r2, #0x1b
+ mov r3, #0x90
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02258AE4 ; =0x00004E2B
+ add r1, r7, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ mov r2, #0x1b
+ mov r3, #0x8f
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02258AE4 ; =0x00004E2B
+ add r1, r7, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ mov r2, #0x1b
+ mov r3, #0x91
+ bl FUN_0200C13C
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _02258AE8 ; =0x00004E34
+ add r1, r7, #0
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x18]
+ mov r2, #0x1b
+ mov r3, #0x8d
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02258AEC ; =0x00004E2C
+ add r1, r7, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ mov r2, #0x1b
+ mov r3, #0x8c
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02258AEC ; =0x00004E2C
+ add r1, r7, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ mov r2, #0x1b
+ mov r3, #0x8e
+ bl FUN_0200C13C
+ mov r0, #0
+ ldr r4, [sp, #0x14]
+ str r0, [sp, #0x1c]
+ mov r6, #0xc
+ mov r5, #0xf6
+_02258A12:
+ ldr r0, [sp, #0x18]
+ ldr r2, _02258AF0 ; =0x0225F8AC
+ add r1, r7, #0
+ bl FUN_0200C154
+ ldr r1, _02258ADC ; =0x000005D4
+ mov r3, #0x11
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r0, [r4, r0]
+ lsl r1, r6, #0x10
+ ldr r0, [r0]
+ asr r1, r1, #0x10
+ mov r2, #0xd
+ lsl r3, r3, #0x10
+ bl FUN_0200C720
+ ldr r0, _02258ADC ; =0x000005D4
+ mov r1, #1
+ ldr r0, [r4, r0]
+ bl FUN_0200C840
+ ldr r0, [sp, #0x18]
+ ldr r2, _02258AF4 ; =0x0225F8E0
+ add r1, r7, #0
+ bl FUN_0200C154
+ ldr r1, _02258AF8 ; =0x000005EC
+ mov r3, #0x11
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r0, [r4, r0]
+ lsl r1, r5, #0x10
+ ldr r0, [r0]
+ asr r1, r1, #0x10
+ mov r2, #9
+ lsl r3, r3, #0x10
+ bl FUN_0200C720
+ ldr r0, [sp, #0x1c]
+ add r4, r4, #4
+ add r0, r0, #1
+ add r6, #0x13
+ sub r5, #0xc
+ str r0, [sp, #0x1c]
+ cmp r0, #6
+ blt _02258A12
+ ldr r0, [sp, #0x14]
+ bl MOD11_02258E30
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0, #4]
+ cmp r0, #0
+ beq _02258A82
+ bl ErrorHandling
+_02258A82:
+ ldr r0, _02258AFC ; =MOD11_02258BE0
+ ldr r1, [sp, #0x14]
+ ldr r2, _02258B00 ; =0x00000514
+ bl FUN_0200CA44
+ ldr r1, [sp, #0x14]
+ str r0, [r1, #4]
+ add r0, r1, #0
+ ldr r0, [r0]
+ bl MOD11_022300CC
+ add r2, r0, #0
+ ldr r0, _02258B04 ; =0x00004E3F
+ ldr r3, _02258B08 ; =0x00004FB1
+ str r0, [sp]
+ add r0, r3, #0
+ str r3, [sp, #4]
+ sub r0, #0xb
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x18]
+ add r1, r7, #0
+ add r3, r3, #6
+ bl MOD11_0225D3EC
+ ldr r0, _02258B04 ; =0x00004E3F
+ ldr r3, _02258B08 ; =0x00004FB1
+ str r0, [sp]
+ add r0, r3, #0
+ str r3, [sp, #4]
+ sub r0, #0xb
+ str r0, [sp, #8]
+ mov r2, #5
+ str r2, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x18]
+ add r1, r7, #0
+ add r3, r3, #6
+ bl MOD11_0225D484
+ ldr r2, _02258B0C ; =0x000006EC
+ ldr r1, [sp, #0x14]
+ str r0, [r1, r2]
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02258ADC: .word 0x000005D4
+_02258AE0: .word 0x00004E33
+_02258AE4: .word 0x00004E2B
+_02258AE8: .word 0x00004E34
+_02258AEC: .word 0x00004E2C
+_02258AF0: .word 0x0225F8AC
+_02258AF4: .word 0x0225F8E0
+_02258AF8: .word 0x000005EC
+_02258AFC: .word MOD11_02258BE0
+_02258B00: .word 0x00000514
+_02258B04: .word 0x00004E3F
+_02258B08: .word 0x00004FB1
+_02258B0C: .word 0x000006EC
+
+ thumb_func_start MOD11_02258B10
+MOD11_02258B10: ; 0x02258B10
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, _02258BBC ; =0x000005D4
+ ldr r1, [r6, r0]
+ cmp r1, #0
+ beq _02258B24
+ add r0, #0x18
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ bne _02258B28
+_02258B24:
+ bl ErrorHandling
+_02258B28:
+ ldr r0, [r6]
+ bl MOD11_02230078
+ ldr r0, [r6]
+ bl MOD11_02230080
+ ldr r1, _02258BC0 ; =0x00004E33
+ add r7, r0, #0
+ bl FUN_0200C358
+ ldr r1, _02258BC4 ; =0x00004E2B
+ add r0, r7, #0
+ bl FUN_0200C378
+ ldr r1, _02258BC4 ; =0x00004E2B
+ add r0, r7, #0
+ bl FUN_0200C388
+ ldr r1, _02258BC8 ; =0x00004E34
+ add r0, r7, #0
+ bl FUN_0200C358
+ ldr r1, _02258BCC ; =0x00004E2C
+ add r0, r7, #0
+ bl FUN_0200C378
+ ldr r1, _02258BCC ; =0x00004E2C
+ add r0, r7, #0
+ bl FUN_0200C388
+ ldr r1, _02258BC0 ; =0x00004E33
+ add r0, r7, #0
+ bl FUN_0200C368
+ mov r4, #0
+ add r5, r6, #0
+_02258B70:
+ ldr r0, _02258BBC ; =0x000005D4
+ ldr r0, [r5, r0]
+ bl FUN_0200C3DC
+ ldr r0, _02258BBC ; =0x000005D4
+ mov r1, #0
+ str r1, [r5, r0]
+ add r0, #0x18
+ ldr r0, [r5, r0]
+ bl FUN_0200C3DC
+ ldr r0, _02258BD0 ; =0x000005EC
+ mov r1, #0
+ str r1, [r5, r0]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _02258B70
+ ldr r0, [r6, #4]
+ bl FUN_0200CAB4
+ ldr r3, _02258BD4 ; =0x00004FA6
+ mov r0, #0
+ str r0, [r6, #4]
+ add r1, r3, #0
+ str r3, [sp]
+ ldr r2, _02258BD8 ; =0x00004E3F
+ add r0, r7, #0
+ add r1, #0x11
+ add r3, #0xb
+ bl MOD11_0225D45C
+ ldr r0, _02258BDC ; =0x000006EC
+ ldr r0, [r6, r0]
+ bl MOD11_0225D508
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02258BBC: .word 0x000005D4
+_02258BC0: .word 0x00004E33
+_02258BC4: .word 0x00004E2B
+_02258BC8: .word 0x00004E34
+_02258BCC: .word 0x00004E2C
+_02258BD0: .word 0x000005EC
+_02258BD4: .word 0x00004FA6
+_02258BD8: .word 0x00004E3F
+_02258BDC: .word 0x000006EC
+
+ thumb_func_start MOD11_02258BE0
+MOD11_02258BE0: ; 0x02258BE0
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r0, _02258D54 ; =0x00000644
+ add r5, r1, #0
+ mov r7, #0
+ add r4, r5, r0
+ mov r6, #0xc
+_02258BEC:
+ ldrb r0, [r4, #3]
+ cmp r0, #4
+ bhi _02258C08
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02258BFE: ; jump table
+ .short _02258C08 - _02258BFE - 2 ; case 0
+ .short _02258C48 - _02258BFE - 2 ; case 1
+ .short _02258C5A - _02258BFE - 2 ; case 2
+ .short _02258CF2 - _02258BFE - 2 ; case 3
+ .short _02258C5A - _02258BFE - 2 ; case 4
+_02258C08:
+ ldr r0, _02258D58 ; =0x000005D4
+ ldr r0, [r5, r0]
+ ldr r0, [r0]
+ bl FUN_0200C650
+ cmp r0, #0
+ beq _02258C1C
+ ldrb r0, [r4, #2]
+ cmp r0, #0x57
+ bhs _02258C1E
+_02258C1C:
+ b _02258D42
+_02258C1E:
+ mov r0, #0
+ strb r0, [r4, #4]
+ mov r0, #0xa
+ strb r0, [r4, #5]
+ bl LCRandom
+ lsr r1, r0, #0x1f
+ lsl r3, r0, #0x1d
+ ldrb r2, [r4, #5]
+ sub r3, r3, r1
+ mov r0, #0x1d
+ ror r3, r0
+ add r0, r1, r3
+ add r0, r2, r0
+ strb r0, [r4, #5]
+ mov r0, #2
+ strb r0, [r4, #7]
+ ldrb r0, [r4, #3]
+ add r0, r0, #1
+ strb r0, [r4, #3]
+ b _02258D42
+_02258C48:
+ ldrb r1, [r4, #5]
+ cmp r1, #0
+ beq _02258C54
+ sub r0, r1, #1
+ strb r0, [r4, #5]
+ b _02258D42
+_02258C54:
+ add r0, r0, #1
+ strb r0, [r4, #3]
+ b _02258D42
+_02258C5A:
+ ldr r0, _02258D58 ; =0x000005D4
+ mov r1, #2
+ ldr r0, [r5, r0]
+ lsl r1, r1, #0xa
+ bl FUN_0200C8BC
+ mov r0, #0
+ ldrsh r1, [r4, r0]
+ mov r0, #6
+ lsl r0, r0, #6
+ add r0, r1, r0
+ strh r0, [r4]
+ mov r1, #0
+ ldrsh r1, [r4, r1]
+ ldr r0, _02258D58 ; =0x000005D4
+ mov r3, #0x11
+ asr r2, r1, #7
+ lsr r2, r2, #0x18
+ add r2, r1, r2
+ asr r1, r2, #8
+ add r1, r1, r6
+ lsl r1, r1, #0x10
+ ldr r0, [r5, r0]
+ asr r1, r1, #0x10
+ mov r2, #0xd
+ lsl r3, r3, #0x10
+ bl FUN_0200C750
+ ldrb r0, [r4, #6]
+ add r0, r0, #1
+ strb r0, [r4, #6]
+ ldrb r1, [r4, #6]
+ ldrb r0, [r4, #7]
+ cmp r1, r0
+ blo _02258D42
+ mov r0, #0
+ strb r0, [r4, #6]
+ ldrb r0, [r4, #3]
+ cmp r0, #2
+ bne _02258CB0
+ add r0, r0, #1
+ strb r0, [r4, #3]
+ b _02258D42
+_02258CB0:
+ ldr r0, _02258D58 ; =0x000005D4
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_0200C898
+ ldr r0, _02258D58 ; =0x000005D4
+ lsl r1, r6, #0x10
+ mov r3, #0x11
+ ldr r0, [r5, r0]
+ asr r1, r1, #0x10
+ mov r2, #0xd
+ lsl r3, r3, #0x10
+ bl FUN_0200C750
+ mov r0, #0
+ strh r0, [r4]
+ ldrb r0, [r4, #8]
+ cmp r0, #1
+ bhs _02258CEA
+ add r0, r0, #1
+ strb r0, [r4, #8]
+ ldrb r0, [r4, #7]
+ cmp r0, #1
+ bls _02258CE4
+ sub r0, r0, #1
+ strb r0, [r4, #7]
+_02258CE4:
+ mov r0, #2
+ strb r0, [r4, #3]
+ b _02258D42
+_02258CEA:
+ mov r0, #0
+ strb r0, [r4, #8]
+ strb r0, [r4, #3]
+ b _02258D42
+_02258CF2:
+ ldr r0, _02258D58 ; =0x000005D4
+ ldr r1, _02258D5C ; =0xFFFFF800
+ ldr r0, [r5, r0]
+ bl FUN_0200C8BC
+ mov r0, #0
+ ldrsh r1, [r4, r0]
+ mov r0, #6
+ lsl r0, r0, #6
+ sub r0, r1, r0
+ strh r0, [r4]
+ mov r1, #0
+ ldrsh r1, [r4, r1]
+ ldr r0, _02258D58 ; =0x000005D4
+ mov r3, #0x11
+ asr r2, r1, #7
+ lsr r2, r2, #0x18
+ add r2, r1, r2
+ asr r1, r2, #8
+ add r1, r1, r6
+ lsl r1, r1, #0x10
+ ldr r0, [r5, r0]
+ asr r1, r1, #0x10
+ mov r2, #0xd
+ lsl r3, r3, #0x10
+ bl FUN_0200C750
+ ldrb r0, [r4, #6]
+ add r0, r0, #1
+ strb r0, [r4, #6]
+ ldrb r1, [r4, #7]
+ ldrb r0, [r4, #6]
+ lsl r1, r1, #1
+ cmp r0, r1
+ blt _02258D42
+ mov r0, #0
+ strb r0, [r4, #6]
+ ldrb r0, [r4, #3]
+ add r0, r0, #1
+ strb r0, [r4, #3]
+_02258D42:
+ add r7, r7, #1
+ add r4, #0xa
+ add r5, r5, #4
+ add r6, #0x13
+ cmp r7, #6
+ bge _02258D50
+ b _02258BEC
+_02258D50:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02258D54: .word 0x00000644
+_02258D58: .word 0x000005D4
+_02258D5C: .word 0xFFFFF800
+
+ thumb_func_start MOD11_02258D60
+MOD11_02258D60: ; 0x02258D60
+ push {r3, r4}
+ ldr r2, _02258D78 ; =0x00000646
+ mov r4, #0
+_02258D66:
+ ldrb r3, [r1, r4]
+ add r4, r4, #1
+ strb r3, [r0, r2]
+ add r0, #0xa
+ cmp r4, #6
+ blt _02258D66
+ pop {r3, r4}
+ bx lr
+ nop
+_02258D78: .word 0x00000646
+
+ thumb_func_start MOD11_02258D7C
+MOD11_02258D7C: ; 0x02258D7C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ mov r4, #0
+_02258D86:
+ ldrb r0, [r6, r4]
+ bl MOD11_0225A400
+ add r1, r0, #0
+ ldr r0, _02258DC8 ; =0x000005D4
+ ldr r0, [r5, r0]
+ ldr r0, [r0]
+ bl FUN_02020130
+ ldr r0, _02258DC8 ; =0x000005D4
+ ldr r0, [r5, r0]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ ldrb r0, [r7, r4]
+ bl MOD11_0225A400
+ add r1, r0, #0
+ ldr r0, _02258DCC ; =0x000005EC
+ ldr r0, [r5, r0]
+ ldr r0, [r0]
+ bl FUN_02020130
+ ldr r0, _02258DCC ; =0x000005EC
+ ldr r0, [r5, r0]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _02258D86
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02258DC8: .word 0x000005D4
+_02258DCC: .word 0x000005EC
+
+ thumb_func_start MOD11_02258DD0
+MOD11_02258DD0: ; 0x02258DD0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, _02258E28 ; =0x000005D4
+ ldr r1, [r5, r0]
+ cmp r1, #0
+ beq _02258DE4
+ add r0, #0x18
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ bne _02258DE8
+_02258DE4:
+ bl ErrorHandling
+_02258DE8:
+ ldr r7, _02258E28 ; =0x000005D4
+ mov r6, #0
+ add r4, r5, #0
+_02258DEE:
+ ldr r0, [r4, r7]
+ mov r1, #1
+ ldr r0, [r0]
+ bl FUN_0200C63C
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #6
+ blt _02258DEE
+ ldr r0, [r5]
+ bl MOD11_0222FF74
+ mov r1, #1
+ tst r0, r1
+ beq _02258E24
+ ldr r6, _02258E2C ; =0x000005EC
+ mov r4, #0
+ add r7, r1, #0
+_02258E12:
+ ldr r0, [r5, r6]
+ add r1, r7, #0
+ ldr r0, [r0]
+ bl FUN_0200C63C
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _02258E12
+_02258E24:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02258E28: .word 0x000005D4
+_02258E2C: .word 0x000005EC
+
+ thumb_func_start MOD11_02258E30
+MOD11_02258E30: ; 0x02258E30
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, _02258E70 ; =0x000005D4
+ ldr r1, [r5, r0]
+ cmp r1, #0
+ beq _02258E44
+ add r0, #0x18
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ bne _02258E48
+_02258E44:
+ bl ErrorHandling
+_02258E48:
+ ldr r7, _02258E70 ; =0x000005D4
+ mov r4, #0
+ add r6, r7, #0
+ add r6, #0x18
+_02258E50:
+ ldr r0, [r5, r7]
+ mov r1, #0
+ ldr r0, [r0]
+ bl FUN_0200C63C
+ ldr r0, [r5, r6]
+ mov r1, #0
+ ldr r0, [r0]
+ bl FUN_0200C63C
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _02258E50
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02258E70: .word 0x000005D4
+
+ thumb_func_start MOD11_02258E74
+MOD11_02258E74: ; 0x02258E74
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, _02258F4C ; =0x0000069F
+ mov r6, #0
+ ldrsb r1, [r5, r0]
+ sub r0, r6, #1
+ cmp r1, r0
+ bne _02258E88
+ bl ErrorHandling
+_02258E88:
+ ldr r0, _02258F4C ; =0x0000069F
+ ldr r3, _02258F50 ; =0x0225FAAC
+ ldrsb r2, [r5, r0]
+ mov r1, #0x30
+ mul r1, r2
+ add r4, r3, r1
+ ldr r1, [r4, #0x14]
+ cmp r1, #0
+ beq _02258EA2
+ add r0, r0, #3
+ ldrb r0, [r5, r0]
+ cmp r0, #1
+ bne _02258EA8
+_02258EA2:
+ mov r0, #0
+ mvn r0, r0
+ pop {r3, r4, r5, r6, r7, pc}
+_02258EA8:
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ bne _02258EB2
+ bl ErrorHandling
+_02258EB2:
+ ldr r0, [r5]
+ bl MOD11_0222FF74
+ mov r1, #1
+ lsl r1, r1, #0xa
+ tst r0, r1
+ beq _02258ECA
+ add r0, r5, #0
+ bl MOD11_0225C784
+ add r7, r0, #0
+ b _02258EE4
+_02258ECA:
+ ldr r0, [r4, #0x14]
+ bl FUN_02020988
+ add r7, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r7, r0
+ bne _02258EE4
+ add r0, r5, #0
+ bl MOD11_0225B8B0
+ add r7, r0, #0
+ add r6, r6, #1
+_02258EE4:
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp]
+ cmp r7, r0
+ bne _02258EF2
+ mov r2, #0xff
+ b _02258EFE
+_02258EF2:
+ ldr r1, [r4, #0x18]
+ lsl r0, r7, #2
+ ldr r0, [r1, r0]
+ str r0, [sp]
+ ldr r0, [r4, #0x1c]
+ ldrb r2, [r0, r7]
+_02258EFE:
+ ldr r3, [r4, #0x2c]
+ cmp r3, #0
+ beq _02258F46
+ ldr r1, [sp]
+ add r0, r5, #0
+ blx r3
+ mov r1, #0
+ mvn r1, r1
+ str r0, [sp]
+ cmp r0, r1
+ beq _02258F46
+ ldr r2, [r4, #0x24]
+ cmp r2, #0
+ beq _02258F20
+ add r0, r5, #0
+ add r1, r7, #0
+ blx r2
+_02258F20:
+ mov r0, #0x6f
+ lsl r0, r0, #4
+ add r0, r5, r0
+ mov r1, #0
+ mov r2, #4
+ bl MI_CpuFill8
+ ldr r0, _02258F54 ; =0x000006EC
+ ldr r0, [r5, r0]
+ bl MOD11_0225D648
+ cmp r6, #0
+ ldr r0, _02258F58 ; =0x000006F4
+ ble _02258F42
+ mov r1, #1
+ strb r1, [r5, r0]
+ b _02258F46
+_02258F42:
+ mov r1, #0
+ strb r1, [r5, r0]
+_02258F46:
+ ldr r0, [sp]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02258F4C: .word 0x0000069F
+_02258F50: .word 0x0225FAAC
+_02258F54: .word 0x000006EC
+_02258F58: .word 0x000006F4
+
+ thumb_func_start MOD11_02258F5C
+MOD11_02258F5C: ; 0x02258F5C
+ push {r3, lr}
+ ldr r1, [r0, #8]
+ cmp r1, #0
+ bne _02258F7E
+ ldr r1, [r0, #0xc]
+ cmp r1, #0
+ bne _02258F7E
+ ldr r1, _02258F84 ; =0x00000684
+ ldr r1, [r0, r1]
+ cmp r1, #0
+ bne _02258F7E
+ bl MOD11_0225B780
+ cmp r0, #1
+ bne _02258F7E
+ mov r0, #1
+ pop {r3, pc}
+_02258F7E:
+ mov r0, #0
+ pop {r3, pc}
+ nop
+_02258F84: .word 0x00000684
+
+ thumb_func_start MOD11_02258F88
+MOD11_02258F88: ; 0x02258F88
+ push {r3, lr}
+ cmp r0, #0x40
+ bgt _02258FBE
+ bge _02259014
+ cmp r0, #0x10
+ bgt _02258FB8
+ bge _02258FEC
+ cmp r0, #8
+ bhi _02259024
+ add r2, r0, r0
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02258FA6: ; jump table
+ .short _02258FE0 - _02258FA6 - 2 ; case 0
+ .short _02258FEC - _02258FA6 - 2 ; case 1
+ .short _02258FEC - _02258FA6 - 2 ; case 2
+ .short _02259024 - _02258FA6 - 2 ; case 3
+ .short _02258FF8 - _02258FA6 - 2 ; case 4
+ .short _02259024 - _02258FA6 - 2 ; case 5
+ .short _02259024 - _02258FA6 - 2 ; case 6
+ .short _02259024 - _02258FA6 - 2 ; case 7
+ .short _02258FFC - _02258FA6 - 2 ; case 8
+_02258FB8:
+ cmp r0, #0x20
+ beq _0225901C
+ b _02259024
+_02258FBE:
+ mov r2, #1
+ lsl r2, r2, #8
+ cmp r0, r2
+ bgt _02258FCE
+ bge _02259008
+ cmp r0, #0x80
+ beq _02258FF8
+ b _02259024
+_02258FCE:
+ lsl r1, r2, #1
+ cmp r0, r1
+ bgt _02258FD8
+ beq _02259018
+ b _02259024
+_02258FD8:
+ lsl r1, r2, #2
+ cmp r0, r1
+ beq _02259020
+ b _02259024
+_02258FE0:
+ cmp r1, #4
+ bne _02258FE8
+ mov r0, #9
+ pop {r3, pc}
+_02258FE8:
+ mov r0, #8
+ pop {r3, pc}
+_02258FEC:
+ cmp r1, #4
+ bne _02258FF4
+ mov r0, #6
+ pop {r3, pc}
+_02258FF4:
+ mov r0, #4
+ pop {r3, pc}
+_02258FF8:
+ mov r0, #1
+ pop {r3, pc}
+_02258FFC:
+ cmp r1, #4
+ bne _02259004
+ mov r0, #7
+ pop {r3, pc}
+_02259004:
+ mov r0, #2
+ pop {r3, pc}
+_02259008:
+ cmp r1, #4
+ bne _02259010
+ mov r0, #4
+ pop {r3, pc}
+_02259010:
+ mov r0, #6
+ pop {r3, pc}
+_02259014:
+ mov r0, #3
+ pop {r3, pc}
+_02259018:
+ mov r0, #0xa
+ pop {r3, pc}
+_0225901C:
+ mov r0, #5
+ pop {r3, pc}
+_02259020:
+ mov r0, #0xb
+ pop {r3, pc}
+_02259024:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, pc}
+
+ thumb_func_start MOD11_0225902C
+MOD11_0225902C: ; 0x0225902C
+ push {r4, r5}
+ ldr r1, _0225908C ; =0x04001000
+ ldr r2, _02259090 ; =0xFFFF1FFF
+ ldr r3, [r1]
+ add r5, r1, #0
+ and r3, r2
+ lsr r2, r1, #0xd
+ orr r2, r3
+ str r2, [r1]
+ add r5, #0x4a
+ ldrh r4, [r5]
+ mov r3, #0x3f
+ mov r2, #0x1f
+ bic r4, r3
+ orr r2, r4
+ mov r4, #0x20
+ orr r2, r4
+ strh r2, [r5]
+ add r1, #0x48
+ ldrh r5, [r1]
+ mov r2, #0x1b
+ bic r5, r3
+ orr r2, r5
+ orr r2, r4
+ strh r2, [r1]
+ mov r1, #0x6e
+ lsl r1, r1, #4
+ ldr r1, [r0, r1]
+ asr r0, r1, #7
+ lsr r0, r0, #0x18
+ add r0, r1, r0
+ asr r1, r0, #8
+ mov r0, #0xff
+ sub r0, r0, r1
+ bpl _02259074
+ mov r0, #0
+_02259074:
+ lsl r1, r0, #8
+ mov r0, #0xff
+ lsl r0, r0, #8
+ and r1, r0
+ mov r0, #0xff
+ orr r0, r1
+ ldr r1, _02259094 ; =0x04001040
+ strh r0, [r1]
+ mov r0, #0xc0
+ strh r0, [r1, #4]
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+_0225908C: .word 0x04001000
+_02259090: .word 0xFFFF1FFF
+_02259094: .word 0x04001040
+
+ thumb_func_start MOD11_02259098
+MOD11_02259098: ; 0x02259098
+ push {r4, lr}
+ lsl r4, r2, #8
+ mov r2, #0x6e
+ add r3, r0, #0
+ lsl r2, r2, #4
+ ldr r0, [r3, r2]
+ cmp r0, r4
+ beq _022590BC
+ add r0, r2, #4
+ str r1, [r3, r0]
+ add r2, #8
+ str r4, [r3, r2]
+ mov r2, #0x4b
+ ldr r0, _022590C0 ; =MOD11_022590C4
+ add r1, r3, #0
+ lsl r2, r2, #4
+ bl FUN_0200CA44
+_022590BC:
+ pop {r4, pc}
+ nop
+_022590C0: .word MOD11_022590C4
+
+ thumb_func_start MOD11_022590C4
+MOD11_022590C4: ; 0x022590C4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ str r0, [sp]
+ ldr r0, [r5]
+ mov r4, #0
+ bl MOD11_0222FF68
+ add r7, r0, #0
+ mov r0, #0x6e
+ lsl r0, r0, #4
+ add r1, r0, #4
+ ldr r2, [r5, r0]
+ ldr r1, [r5, r1]
+ add r1, r2, r1
+ str r1, [r5, r0]
+ add r1, r0, #4
+ ldr r1, [r5, r1]
+ cmp r1, #0
+ bgt _022590F6
+ add r2, r0, #0
+ add r2, #8
+ ldr r2, [r5, r2]
+ ldr r0, [r5, r0]
+ cmp r0, r2
+ ble _02259106
+_022590F6:
+ cmp r1, #0
+ ble _0225910E
+ ldr r0, _0225915C ; =0x000006E8
+ ldr r2, [r5, r0]
+ sub r0, #8
+ ldr r0, [r5, r0]
+ cmp r0, r2
+ blt _0225910E
+_02259106:
+ mov r0, #0x6e
+ lsl r0, r0, #4
+ str r2, [r5, r0]
+ mov r4, #1
+_0225910E:
+ mov r3, #0x6e
+ lsl r3, r3, #4
+ ldr r3, [r5, r3]
+ add r0, r7, #0
+ asr r6, r3, #7
+ lsr r6, r6, #0x18
+ add r6, r3, r6
+ mov r1, #6
+ mov r2, #0
+ asr r3, r6, #8
+ bl FUN_020179E0
+ add r0, r5, #0
+ bl MOD11_0225902C
+ cmp r4, #1
+ bne _0225915A
+ ldr r2, _02259160 ; =0x000002FF
+ add r0, r7, #0
+ mov r1, #7
+ bl FUN_02018768
+ mov r0, #7
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #7
+ mov r1, #0
+ bl FUN_020178BC
+ ldr r2, _02259164 ; =0x04001000
+ ldr r0, _02259168 ; =0xFFFF1FFF
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ ldr r0, [sp]
+ bl FUN_0200CAB4
+_0225915A:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225915C: .word 0x000006E8
+_02259160: .word 0x000002FF
+_02259164: .word 0x04001000
+_02259168: .word 0xFFFF1FFF
+
+ thumb_func_start MOD11_0225916C
+MOD11_0225916C: ; 0x0225916C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ ldr r0, _02259240 ; =0x000006A2
+ mov r1, #1
+ strb r1, [r5, r0]
+ ldr r1, _02259244 ; =0x0400104A
+ mov r4, #0x3f
+ ldrh r2, [r1]
+ mov r0, #0xf
+ mov r7, #0xc
+ bic r2, r4
+ orr r0, r2
+ mov r2, #0x20
+ orr r0, r2
+ strh r0, [r1]
+ sub r0, r1, #2
+ ldrh r3, [r0]
+ bic r3, r4
+ orr r3, r7
+ orr r3, r2
+ strh r3, [r0]
+ ldrh r4, [r0]
+ ldr r3, _02259248 ; =0xFFFFC0FF
+ lsl r2, r2, #8
+ and r4, r3
+ lsl r3, r7, #8
+ orr r3, r4
+ orr r2, r3
+ strh r2, [r0]
+ add r2, r1, #0
+ mov r0, #0xff
+ sub r2, #0xa
+ strh r0, [r2]
+ mov r3, #0x90
+ sub r2, r1, #6
+ strh r3, [r2]
+ add r2, r1, #0
+ sub r2, #8
+ strh r0, [r2]
+ sub r0, r1, #4
+ ldr r2, _0225924C ; =0x000090C0
+ sub r1, #0x4a
+ strh r2, [r0]
+ ldr r2, [r1]
+ ldr r0, _02259250 ; =0xFFFF1FFF
+ and r2, r0
+ lsl r0, r7, #0xb
+ orr r0, r2
+ str r0, [r1]
+ mov r0, #5
+ mov r1, #0x14
+ bl AllocFromHeap
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x14
+ bl MI_CpuFill8
+ str r5, [r4]
+ ldr r0, _02259254 ; =0xFFFF9C64
+ strb r6, [r4, #0x12]
+ strh r0, [r4, #8]
+ mov r0, #0xfa
+ lsl r0, r0, #4
+ strh r0, [r4, #0xa]
+ mov r0, #8
+ ldrsh r1, [r4, r0]
+ ldr r0, _02259258 ; =0x0000639C
+ sub r0, r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ strh r0, [r4, #0xc]
+ mov r0, #0xa
+ ldrsh r1, [r4, r0]
+ mov r0, #0xfa
+ lsl r0, r0, #4
+ sub r0, r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ strh r0, [r4, #0xe]
+ ldr r0, _0225925C ; =0x0000070E
+ bl FUN_020054C8
+ ldr r0, _02259260 ; =MOD11_0225B438
+ ldr r2, _02259264 ; =0x000004BA
+ add r1, r4, #0
+ bl FUN_0200CA44
+ ldr r0, _02259268 ; =MOD11_0225B644
+ add r1, r4, #0
+ bl FUN_02015F34
+ cmp r0, #1
+ beq _02259232
+ bl ErrorHandling
+_02259232:
+ ldr r0, _0225926C ; =MOD11_0225B538
+ add r1, r4, #0
+ mov r2, #0xa
+ bl FUN_0200CA60
+ str r0, [r4, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02259240: .word 0x000006A2
+_02259244: .word 0x0400104A
+_02259248: .word 0xFFFFC0FF
+_0225924C: .word 0x000090C0
+_02259250: .word 0xFFFF1FFF
+_02259254: .word 0xFFFF9C64
+_02259258: .word 0x0000639C
+_0225925C: .word 0x0000070E
+_02259260: .word MOD11_0225B438
+_02259264: .word 0x000004BA
+_02259268: .word MOD11_0225B644
+_0225926C: .word MOD11_0225B538
+
+ thumb_func_start MOD11_02259270
+MOD11_02259270: ; 0x02259270
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldrb r4, [r5, #0x18]
+ bl MOD11_02259284
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0225916C
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02259284
+MOD11_02259284: ; 0x02259284
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r6, r5, #0
+ ldrb r7, [r5, #0x18]
+ add r6, #0x18
+ bl MOD11_022300C4
+ add r4, r0, #0
+ ldr r0, _02259484 ; =0x0000069E
+ strb r7, [r5, r0]
+ ldr r0, [r5]
+ bl MOD11_0222FF74
+ mov r1, #0x20
+ tst r0, r1
+ beq _022592CA
+ ldr r1, _02259488 ; =0x000003A3
+ add r0, r4, #0
+ bl FUN_0200A914
+ mov r1, #0xe9
+ str r0, [sp, #0x24]
+ add r0, r4, #0
+ lsl r1, r1, #2
+ bl FUN_0200A914
+ str r0, [sp, #0x20]
+ ldr r1, _0225948C ; =0x000003A5
+ add r0, r4, #0
+ bl FUN_0200A914
+ str r0, [sp, #0x1c]
+ b _0225931A
+_022592CA:
+ ldr r0, [r5]
+ bl MOD11_0222FF74
+ mov r1, #2
+ lsl r1, r1, #8
+ tst r0, r1
+ beq _022592FA
+ ldr r1, _02259490 ; =0x000004C7
+ add r0, r4, #0
+ bl FUN_0200A914
+ mov r1, #0xe9
+ str r0, [sp, #0x24]
+ add r0, r4, #0
+ lsl r1, r1, #2
+ bl FUN_0200A914
+ str r0, [sp, #0x20]
+ ldr r1, _0225948C ; =0x000003A5
+ add r0, r4, #0
+ bl FUN_0200A914
+ str r0, [sp, #0x1c]
+ b _0225931A
+_022592FA:
+ mov r1, #0xe7
+ add r0, r4, #0
+ lsl r1, r1, #2
+ bl FUN_0200A914
+ str r0, [sp, #0x24]
+ ldr r1, _02259494 ; =0x0000039D
+ add r0, r4, #0
+ bl FUN_0200A914
+ str r0, [sp, #0x20]
+ ldr r1, _02259498 ; =0x0000039E
+ add r0, r4, #0
+ bl FUN_0200A914
+ str r0, [sp, #0x1c]
+_0225931A:
+ ldr r0, [r5]
+ add r1, r7, #0
+ bl MOD11_0223022C
+ add r1, r0, #0
+ ldr r0, [r5]
+ bl MOD11_02230CB8
+ cmp r0, #1
+ bne _0225933E
+ mov r1, #0x3a
+ add r0, r4, #0
+ lsl r1, r1, #4
+ bl FUN_0200A914
+ add r4, r0, #0
+ mov r1, #1
+ b _0225934A
+_0225933E:
+ ldr r1, _0225949C ; =0x0000039F
+ add r0, r4, #0
+ bl FUN_0200A914
+ add r4, r0, #0
+ mov r1, #0
+_0225934A:
+ ldr r0, _022594A0 ; =0x000006A3
+ mov r3, #2
+ strb r1, [r5, r0]
+ ldr r0, _022594A4 ; =0x00010203
+ ldr r1, _022594A8 ; =0x000004CC
+ str r0, [sp]
+ ldr r0, _022594AC ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x54
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ ldr r2, [sp, #0x24]
+ add r0, r5, #0
+ add r1, r5, r1
+ bl MOD11_0225A458
+ ldr r0, _022594B0 ; =0x00040506
+ mov r1, #0x4e
+ str r0, [sp]
+ mov r3, #2
+ lsl r1, r1, #4
+ ldr r0, _022594AC ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x28
+ str r0, [sp, #0xc]
+ mov r0, #0xaa
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ ldr r2, [sp, #0x20]
+ add r0, r5, #0
+ add r1, r5, r1
+ bl MOD11_0225A458
+ ldr r0, _022594B4 ; =0x00070809
+ ldr r1, _022594B8 ; =0x000004F4
+ str r0, [sp]
+ mov r3, #2
+ ldr r0, _022594AC ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0xd8
+ str r0, [sp, #0xc]
+ mov r0, #0xaa
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ ldr r2, [sp, #0x1c]
+ add r0, r5, #0
+ add r1, r5, r1
+ bl MOD11_0225A458
+ ldr r0, _022594BC ; =0x000A0B0C
+ ldr r1, _022594C0 ; =0x00000508
+ str r0, [sp]
+ mov r3, #2
+ ldr r0, _022594AC ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0xb2
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r4, #0
+ bl MOD11_0225A458
+ ldr r0, [sp, #0x24]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x20]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x1c]
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl FUN_02021A20
+ ldr r0, [r5]
+ bl MOD11_0222FF74
+ mov r1, #0x22
+ lsl r1, r1, #4
+ tst r0, r1
+ bne _0225947E
+ ldrb r1, [r6, #1]
+ ldrb r2, [r6, #2]
+ ldr r0, [r5]
+ bl MOD11_02230014
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD11_0225A164
+ ldrh r0, [r6, #6]
+ mov r3, #4
+ add r1, r4, #0
+ str r0, [sp]
+ ldrb r0, [r6, #3]
+ add r2, r7, #0
+ str r0, [sp, #4]
+ ldrsh r3, [r6, r3]
+ add r0, r5, #0
+ bl MOD11_0225A270
+ add r4, r0, #0
+ ldr r0, _022594A8 ; =0x000004CC
+ add r1, sp, #0x2c
+ ldr r0, [r5, r0]
+ add r2, sp, #0x28
+ bl FUN_020119A4
+ cmp r7, #4
+ bne _0225945E
+ ldr r0, _022594C4 ; =0x000004DC
+ ldr r1, [sp, #0x2c]
+ ldrh r0, [r5, r0]
+ add r0, #0x10
+ add r0, r1, r0
+ str r0, [sp, #0x2c]
+ b _02259464
+_0225945E:
+ ldr r0, [sp, #0x2c]
+ sub r0, #0x10
+ str r0, [sp, #0x2c]
+_02259464:
+ mov r3, #0x11
+ ldr r1, [sp, #0x2c]
+ ldr r2, [sp, #0x28]
+ lsl r3, r3, #4
+ sub r2, r2, r3
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ add r0, r4, #0
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ lsl r3, r3, #0xc
+ bl FUN_0200C750
+_0225947E:
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02259484: .word 0x0000069E
+_02259488: .word 0x000003A3
+_0225948C: .word 0x000003A5
+_02259490: .word 0x000004C7
+_02259494: .word 0x0000039D
+_02259498: .word 0x0000039E
+_0225949C: .word 0x0000039F
+_022594A0: .word 0x000006A3
+_022594A4: .word 0x00010203
+_022594A8: .word 0x000004CC
+_022594AC: .word 0x00004E33
+_022594B0: .word 0x00040506
+_022594B4: .word 0x00070809
+_022594B8: .word 0x000004F4
+_022594BC: .word 0x000A0B0C
+_022594C0: .word 0x00000508
+_022594C4: .word 0x000004DC
+
+ thumb_func_start MOD11_022594C8
+MOD11_022594C8: ; 0x022594C8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldrb r4, [r5, #0x18]
+ bl MOD11_022594DC
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0225916C
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_022594DC
+MOD11_022594DC: ; 0x022594DC
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ bl MOD11_02259284
+ ldr r0, [r5]
+ bl MOD11_0222FF68
+ mov r1, #0x10
+ str r1, [sp]
+ mov r1, #0x20
+ str r1, [sp, #4]
+ mov r1, #8
+ str r1, [sp, #8]
+ mov r1, #0x11
+ str r1, [sp, #0xc]
+ ldr r2, _02259534 ; =0x000002FF
+ add r4, r0, #0
+ mov r1, #4
+ mov r3, #0
+ bl FUN_02018540
+ add r0, r4, #0
+ mov r1, #5
+ bl FUN_0201AC68
+ mov r0, #0x4e
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020119D0
+ ldr r0, _02259538 ; =0x000004F4
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+ ldr r0, _0225953C ; =0x00000508
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02259534: .word 0x000002FF
+_02259538: .word 0x000004F4
+_0225953C: .word 0x00000508
+
+ thumb_func_start MOD11_02259540
+MOD11_02259540: ; 0x02259540
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldrb r4, [r5, #0x18]
+ bl MOD11_02259554
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0225916C
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_02259554
+MOD11_02259554: ; 0x02259554
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ bl MOD11_02259284
+ ldr r0, [r5]
+ bl MOD11_0222FF68
+ mov r1, #0x10
+ str r1, [sp]
+ mov r1, #0xa
+ str r1, [sp, #4]
+ mov r1, #8
+ str r1, [sp, #8]
+ mov r1, #0x11
+ str r1, [sp, #0xc]
+ ldr r2, _022595C0 ; =0x000002FF
+ mov r1, #4
+ mov r3, #0
+ add r4, r0, #0
+ bl FUN_02018540
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ ldr r2, _022595C0 ; =0x000002FF
+ add r0, r4, #0
+ mov r1, #4
+ mov r3, #0x16
+ bl FUN_02018540
+ add r0, r4, #0
+ mov r1, #5
+ bl FUN_0201AC68
+ mov r0, #0x4e
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020119D0
+ ldr r0, _022595C4 ; =0x000004F4
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_022595C0: .word 0x000002FF
+_022595C4: .word 0x000004F4
+
+ thumb_func_start MOD11_022595C8
+MOD11_022595C8: ; 0x022595C8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ add r5, r0, #0
+ add r6, r5, #0
+ add r6, #0x18
+ bne _022595D8
+ bl ErrorHandling
+_022595D8:
+ ldrb r1, [r6, #0x10]
+ ldr r0, _02259854 ; =0x0000069E
+ strb r1, [r5, r0]
+ ldr r0, [r5]
+ bl MOD11_022300C4
+ str r0, [sp, #0x1c]
+ ldrb r1, [r6, #0x10]
+ add r0, r5, #0
+ bl MOD11_0225A69C
+ str r0, [sp, #0x20]
+ add r0, r5, #0
+ bl MOD11_0225A9D4
+ ldr r0, _02259858 ; =0x00070809
+ ldr r1, _0225985C ; =0x000004CC
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ ldr r0, _02259860 ; =0x00004E33
+ add r1, r5, r1
+ str r0, [sp, #8]
+ mov r0, #0x40
+ str r0, [sp, #0xc]
+ mov r0, #0x2e
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x20]
+ mov r2, #0
+ add r0, #0x28
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ mov r3, #2
+ bl MOD11_0225A458
+ ldr r0, _02259858 ; =0x00070809
+ mov r1, #0x4e
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ ldr r0, _02259860 ; =0x00004E33
+ lsl r1, r1, #4
+ str r0, [sp, #8]
+ mov r0, #0xc0
+ str r0, [sp, #0xc]
+ mov r0, #0x2e
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x20]
+ add r1, r5, r1
+ add r0, #0x3c
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ mov r2, #0
+ mov r3, #2
+ bl MOD11_0225A458
+ ldr r0, _02259858 ; =0x00070809
+ ldr r1, _02259864 ; =0x000004F4
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ ldr r0, _02259860 ; =0x00004E33
+ add r1, r5, r1
+ str r0, [sp, #8]
+ mov r0, #0x40
+ str r0, [sp, #0xc]
+ mov r0, #0x6e
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x20]
+ mov r2, #0
+ add r0, #0x50
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ mov r3, #2
+ bl MOD11_0225A458
+ ldr r0, _02259858 ; =0x00070809
+ ldr r1, _02259868 ; =0x00000508
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ ldr r0, _02259860 ; =0x00004E33
+ add r1, r5, r1
+ str r0, [sp, #8]
+ mov r0, #0xc0
+ str r0, [sp, #0xc]
+ mov r0, #0x6e
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x20]
+ mov r2, #0
+ add r0, #0x64
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ mov r3, #2
+ bl MOD11_0225A458
+ ldr r0, [sp, #0x20]
+ mov r4, #0
+ str r0, [sp, #0x28]
+ add r0, #0x78
+ str r0, [sp, #0x28]
+ ldr r0, _0225985C ; =0x000004CC
+ add r7, r5, r0
+ ldr r0, [sp, #0x20]
+ add r0, #0xc8
+ str r0, [sp, #0x20]
+ b _02259748
+_022596BE:
+ add r1, r6, r4
+ ldrb r0, [r1, #8]
+ ldrb r1, [r1, #0xc]
+ bl MOD11_0225B3D4
+ str r0, [sp, #0x24]
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ ldr r0, _02259860 ; =0x00004E33
+ ldr r1, _0225986C ; =0x0225F73C
+ str r0, [sp, #8]
+ lsl r0, r4, #2
+ ldrh r1, [r1, r0]
+ add r2, r4, #0
+ add r2, #9
+ str r1, [sp, #0xc]
+ ldr r1, _0225986C ; =0x0225F73C
+ add r0, r1, r0
+ ldrh r0, [r0, #2]
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+ mov r0, #0
+ str r0, [sp, #0x14]
+ mov r0, #0x14
+ mul r1, r0
+ ldr r0, [sp, #0x28]
+ add r0, r0, r1
+ mov r1, #0x14
+ mul r1, r2
+ mov r2, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r7, r1
+ add r3, r2, #0
+ bl MOD11_0225A458
+ ldr r0, [sp, #0x24]
+ ldr r1, _02259870 ; =0x0225F78C
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ ldr r0, _02259860 ; =0x00004E33
+ add r2, r4, #5
+ str r0, [sp, #8]
+ lsl r0, r4, #2
+ ldrh r1, [r1, r0]
+ str r1, [sp, #0xc]
+ ldr r1, _02259870 ; =0x0225F78C
+ add r0, r1, r0
+ ldrh r0, [r0, #2]
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+ mov r0, #0
+ str r0, [sp, #0x14]
+ mov r0, #0x14
+ mul r1, r0
+ ldr r0, [sp, #0x20]
+ add r0, r0, r1
+ mov r1, #0x14
+ mul r1, r2
+ mov r2, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r7, r1
+ add r3, r2, #0
+ bl MOD11_0225A458
+ add r4, r4, #1
+_02259748:
+ cmp r4, #4
+ blt _022596BE
+ ldr r0, [sp, #0x1c]
+ ldr r1, _02259874 ; =0x000003A1
+ bl FUN_0200A914
+ add r4, r0, #0
+ ldr r0, _02259878 ; =0x000A0B0C
+ ldr r1, _0225987C ; =0x0000051C
+ str r0, [sp]
+ mov r3, #2
+ ldr r0, _02259860 ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0xb2
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r4, #0
+ bl MOD11_0225A458
+ add r0, r4, #0
+ bl FUN_02021A20
+ mov r4, #0
+ mov r7, #3
+ b _022597B0
+_0225978A:
+ lsl r0, r4, #1
+ ldrh r0, [r6, r0]
+ cmp r0, #0
+ beq _022597A4
+ add r1, r7, #0
+ bl GetWazaAttr
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, r4, #0
+ bl MOD11_0225AB34
+ b _022597AE
+_022597A4:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0225AB50
+ b _022597B4
+_022597AE:
+ add r4, r4, #1
+_022597B0:
+ cmp r4, #4
+ blt _0225978A
+_022597B4:
+ ldr r0, [r5]
+ bl MOD11_0222FF68
+ ldrh r0, [r6]
+ cmp r0, #0
+ bne _022597E2
+ ldr r0, _0225985C ; =0x000004CC
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+ mov r0, #0x53
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020119D0
+ mov r0, #0x16
+ lsl r0, r0, #6
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020119D0
+_022597E2:
+ ldrh r0, [r6, #2]
+ cmp r0, #0
+ bne _02259808
+ mov r0, #0x4e
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020119D0
+ ldr r0, _02259880 ; =0x00000544
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+ ldr r0, _02259884 ; =0x00000594
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+_02259808:
+ ldrh r0, [r6, #4]
+ cmp r0, #0
+ bne _0225982C
+ ldr r0, _02259864 ; =0x000004F4
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+ ldr r0, _02259888 ; =0x00000558
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+ ldr r0, _0225988C ; =0x000005A8
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+_0225982C:
+ ldrh r0, [r6, #6]
+ cmp r0, #0
+ bne _02259850
+ ldr r0, _02259868 ; =0x00000508
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+ ldr r0, _02259890 ; =0x0000056C
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+ ldr r0, _02259894 ; =0x000005BC
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020119D0
+_02259850:
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02259854: .word 0x0000069E
+_02259858: .word 0x00070809
+_0225985C: .word 0x000004CC
+_02259860: .word 0x00004E33
+_02259864: .word 0x000004F4
+_02259868: .word 0x00000508
+_0225986C: .word 0x0225F73C
+_02259870: .word 0x0225F78C
+_02259874: .word 0x000003A1
+_02259878: .word 0x000A0B0C
+_0225987C: .word 0x0000051C
+_02259880: .word 0x00000544
+_02259884: .word 0x00000594
+_02259888: .word 0x00000558
+_0225988C: .word 0x000005A8
+_02259890: .word 0x0000056C
+_02259894: .word 0x000005BC
+
+ thumb_func_start MOD11_02259898
+MOD11_02259898: ; 0x02259898
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl MOD11_022300C4
+ mov r1, #0xeb
+ lsl r1, r1, #2
+ add r6, r0, #0
+ bl FUN_0200A914
+ add r4, r0, #0
+ ldr r1, _0225991C ; =0x000003AD
+ add r0, r6, #0
+ bl FUN_0200A914
+ add r6, r0, #0
+ ldr r0, _02259920 ; =0x00010203
+ ldr r1, _02259924 ; =0x000004CC
+ str r0, [sp]
+ mov r3, #2
+ ldr r0, _02259928 ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x44
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r4, #0
+ bl MOD11_0225A458
+ ldr r0, _0225992C ; =0x000A0B0C
+ mov r1, #0x4e
+ str r0, [sp]
+ mov r3, #2
+ lsl r1, r1, #4
+ ldr r0, _02259928 ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x8c
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r6, #0
+ bl MOD11_0225A458
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0x1c
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0225991C: .word 0x000003AD
+_02259920: .word 0x00010203
+_02259924: .word 0x000004CC
+_02259928: .word 0x00004E33
+_0225992C: .word 0x000A0B0C
+
+ thumb_func_start MOD11_02259930
+MOD11_02259930: ; 0x02259930
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl MOD11_022300C4
+ ldr r1, _022599B4 ; =0x0000049D
+ add r6, r0, #0
+ bl FUN_0200A914
+ add r4, r0, #0
+ ldr r1, _022599B8 ; =0x0000049E
+ add r0, r6, #0
+ bl FUN_0200A914
+ add r6, r0, #0
+ ldr r0, _022599BC ; =0x00010203
+ ldr r1, _022599C0 ; =0x000004CC
+ str r0, [sp]
+ mov r3, #2
+ ldr r0, _022599C4 ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x44
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r4, #0
+ bl MOD11_0225A458
+ ldr r0, _022599C8 ; =0x000A0B0C
+ mov r1, #0x4e
+ str r0, [sp]
+ mov r3, #2
+ lsl r1, r1, #4
+ ldr r0, _022599C4 ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x8c
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r6, #0
+ bl MOD11_0225A458
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0x1c
+ pop {r3, r4, r5, r6, pc}
+ nop
+_022599B4: .word 0x0000049D
+_022599B8: .word 0x0000049E
+_022599BC: .word 0x00010203
+_022599C0: .word 0x000004CC
+_022599C4: .word 0x00004E33
+_022599C8: .word 0x000A0B0C
+
+ thumb_func_start MOD11_022599CC
+MOD11_022599CC: ; 0x022599CC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl MOD11_022300C4
+ add r6, r0, #0
+ ldr r0, [r5]
+ bl MOD11_02230138
+ add r4, r0, #0
+ ldr r1, _02259A98 ; =0x000004A2
+ add r0, r6, #0
+ bl FUN_0200A914
+ str r0, [sp, #0x1c]
+ ldr r1, _02259A9C ; =0x000004A3
+ add r0, r6, #0
+ bl FUN_0200A914
+ str r0, [sp, #0x20]
+ mov r0, #0x64
+ mov r1, #5
+ bl FUN_020219F4
+ add r6, r0, #0
+ mov r0, #0x64
+ mov r1, #5
+ bl FUN_020219F4
+ add r7, r0, #0
+ ldrh r2, [r5, #0x18]
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_0200AD5C
+ ldr r2, [sp, #0x1c]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl FUN_0200B7B8
+ ldr r2, [sp, #0x20]
+ add r0, r4, #0
+ add r1, r7, #0
+ bl FUN_0200B7B8
+ ldr r0, _02259AA0 ; =0x00010203
+ ldr r1, _02259AA4 ; =0x000004CC
+ str r0, [sp]
+ mov r3, #2
+ ldr r0, _02259AA8 ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x44
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r6, #0
+ bl MOD11_0225A458
+ ldr r0, _02259AAC ; =0x000A0B0C
+ mov r1, #0x4e
+ str r0, [sp]
+ mov r3, #2
+ lsl r1, r1, #4
+ ldr r0, _02259AA8 ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x8c
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r7, #0
+ bl MOD11_0225A458
+ ldr r0, [sp, #0x1c]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x20]
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02259A98: .word 0x000004A2
+_02259A9C: .word 0x000004A3
+_02259AA0: .word 0x00010203
+_02259AA4: .word 0x000004CC
+_02259AA8: .word 0x00004E33
+_02259AAC: .word 0x000A0B0C
+
+ thumb_func_start MOD11_02259AB0
+MOD11_02259AB0: ; 0x02259AB0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl MOD11_022300C4
+ add r6, r0, #0
+ ldr r0, [r5]
+ bl MOD11_02230138
+ add r4, r0, #0
+ ldr r1, _02259B7C ; =0x000004C1
+ add r0, r6, #0
+ bl FUN_0200A914
+ str r0, [sp, #0x1c]
+ ldr r1, _02259B80 ; =0x000004C2
+ add r0, r6, #0
+ bl FUN_0200A914
+ str r0, [sp, #0x20]
+ mov r0, #0x64
+ mov r1, #5
+ bl FUN_020219F4
+ add r6, r0, #0
+ mov r0, #0x64
+ mov r1, #5
+ bl FUN_020219F4
+ add r7, r0, #0
+ ldrh r2, [r5, #0x18]
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_0200AD5C
+ ldr r2, [sp, #0x1c]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl FUN_0200B7B8
+ ldr r2, [sp, #0x20]
+ add r0, r4, #0
+ add r1, r7, #0
+ bl FUN_0200B7B8
+ ldr r0, _02259B84 ; =0x00010203
+ ldr r1, _02259B88 ; =0x000004CC
+ str r0, [sp]
+ mov r3, #2
+ ldr r0, _02259B8C ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x44
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r6, #0
+ bl MOD11_0225A458
+ ldr r0, _02259B90 ; =0x000A0B0C
+ mov r1, #0x4e
+ str r0, [sp]
+ mov r3, #2
+ lsl r1, r1, #4
+ ldr r0, _02259B8C ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x8c
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r7, #0
+ bl MOD11_0225A458
+ ldr r0, [sp, #0x1c]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x20]
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02259B7C: .word 0x000004C1
+_02259B80: .word 0x000004C2
+_02259B84: .word 0x00010203
+_02259B88: .word 0x000004CC
+_02259B8C: .word 0x00004E33
+_02259B90: .word 0x000A0B0C
+
+ thumb_func_start MOD11_02259B94
+MOD11_02259B94: ; 0x02259B94
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl MOD11_022300C4
+ add r6, r0, #0
+ ldr r0, [r5]
+ bl MOD11_02230138
+ add r4, r0, #0
+ ldr r1, _02259C60 ; =0x000004BF
+ add r0, r6, #0
+ bl FUN_0200A914
+ mov r1, #0x13
+ str r0, [sp, #0x1c]
+ add r0, r6, #0
+ lsl r1, r1, #6
+ bl FUN_0200A914
+ str r0, [sp, #0x20]
+ mov r0, #0x64
+ mov r1, #5
+ bl FUN_020219F4
+ add r6, r0, #0
+ mov r0, #0x64
+ mov r1, #5
+ bl FUN_020219F4
+ add r7, r0, #0
+ ldrh r2, [r5, #0x18]
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_0200AD5C
+ ldr r2, [sp, #0x1c]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl FUN_0200B7B8
+ ldr r2, [sp, #0x20]
+ add r0, r4, #0
+ add r1, r7, #0
+ bl FUN_0200B7B8
+ ldr r0, _02259C64 ; =0x00010203
+ ldr r1, _02259C68 ; =0x000004CC
+ str r0, [sp]
+ mov r3, #2
+ ldr r0, _02259C6C ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x44
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r6, #0
+ bl MOD11_0225A458
+ ldr r0, _02259C70 ; =0x000A0B0C
+ mov r1, #0x4e
+ str r0, [sp]
+ mov r3, #2
+ lsl r1, r1, #4
+ ldr r0, _02259C6C ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ str r0, [sp, #0xc]
+ mov r0, #0x8c
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ add r2, r7, #0
+ bl MOD11_0225A458
+ ldr r0, [sp, #0x1c]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x20]
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02259C60: .word 0x000004BF
+_02259C64: .word 0x00010203
+_02259C68: .word 0x000004CC
+_02259C6C: .word 0x00004E33
+_02259C70: .word 0x000A0B0C
+
+ thumb_func_start MOD11_02259C74
+MOD11_02259C74: ; 0x02259C74
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x44
+ add r5, r0, #0
+ add r7, r5, #0
+ add r7, #0x18
+ add r0, r7, #0
+ add r0, #0x21
+ ldrb r1, [r0]
+ mov r0, #0x6a
+ lsl r0, r0, #4
+ strb r1, [r5, r0]
+ add r1, r7, #0
+ add r1, #0x20
+ ldrb r1, [r1]
+ sub r0, r0, #2
+ strb r1, [r5, r0]
+ ldr r0, [r5]
+ bl MOD11_022300C4
+ str r0, [sp, #0x2c]
+ ldr r0, [r5]
+ bl MOD11_02230138
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ add r1, sp, #0x40
+ mov r2, #0
+ bl MOD11_0225ACD4
+ add r0, r5, #0
+ bl MOD11_0225A164
+ add r0, r5, #0
+ bl MOD11_0225A5C0
+ add r1, sp, #0x38
+ ldr r0, [r5]
+ add r1, #2
+ bl MOD11_02231504
+ ldr r0, [r5]
+ add r1, sp, #0x34
+ bl MOD11_022314E0
+ mov r0, #0x18
+ mov r1, #5
+ bl FUN_020219F4
+ str r0, [sp, #0x28]
+ ldr r0, _02259E38 ; =0x000004CC
+ mov r4, #0
+ add r0, r5, r0
+ str r0, [sp, #0x30]
+ b _02259DEC
+_02259CE0:
+ add r1, r4, #2
+ add r0, sp, #0x34
+ ldrb r6, [r0, r1]
+ lsl r0, r6, #3
+ add r0, r7, r0
+ ldrb r1, [r0, #1]
+ lsl r0, r1, #0x1d
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _02259DDA
+ add r0, sp, #0x40
+ ldrb r0, [r0, r4]
+ cmp r0, #1
+ bne _02259DDA
+ lsl r0, r1, #0x1e
+ lsr r0, r0, #0x1e
+ bne _02259D0E
+ ldr r0, [sp, #0x2c]
+ ldr r1, _02259E3C ; =0x000003C2
+ bl FUN_0200A914
+ str r0, [sp, #0x24]
+ b _02259D2A
+_02259D0E:
+ cmp r0, #1
+ bne _02259D1E
+ ldr r0, [sp, #0x2c]
+ ldr r1, _02259E40 ; =0x000003C3
+ bl FUN_0200A914
+ str r0, [sp, #0x24]
+ b _02259D2A
+_02259D1E:
+ mov r1, #0xf1
+ ldr r0, [sp, #0x2c]
+ lsl r1, r1, #2
+ bl FUN_0200A914
+ str r0, [sp, #0x24]
+_02259D2A:
+ lsl r2, r6, #3
+ ldrb r2, [r7, r2]
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl MOD11_02230014
+ str r0, [sp, #0x20]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [sp, #0x1c]
+ mov r1, #0
+ bl FUN_0200ACF8
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x28]
+ ldr r2, [sp, #0x24]
+ bl FUN_0200B7B8
+ mov r0, #1
+ tst r0, r4
+ beq _02259D5A
+ ldr r0, _02259E44 ; =0x00010203
+ b _02259D5C
+_02259D5A:
+ ldr r0, _02259E48 ; =0x00040506
+_02259D5C:
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ ldr r0, _02259E4C ; =0x00004E33
+ ldr r1, _02259E50 ; =0x0225F7D4
+ str r0, [sp, #8]
+ lsl r0, r4, #2
+ ldrh r1, [r1, r0]
+ add r2, r4, #0
+ mov r3, #2
+ str r1, [sp, #0xc]
+ ldr r1, _02259E50 ; =0x0225F7D4
+ add r0, r1, r0
+ ldrh r0, [r0, #2]
+ mov r1, #0x14
+ mul r2, r1
+ ldr r1, [sp, #0x30]
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ add r1, r1, r2
+ str r0, [sp, #0x18]
+ ldr r2, [sp, #0x28]
+ add r0, r5, #0
+ bl MOD11_0225A458
+ ldr r0, [sp, #0x24]
+ bl FUN_02021A20
+ cmp r4, #1
+ beq _02259DA2
+ cmp r4, #3
+ beq _02259DBE
+ b _02259DEA
+_02259DA2:
+ lsl r0, r6, #3
+ add r6, r7, r0
+ ldrh r0, [r6, #6]
+ mov r3, #4
+ ldr r1, [sp, #0x20]
+ str r0, [sp]
+ ldrb r0, [r6, #2]
+ mov r2, #3
+ str r0, [sp, #4]
+ ldrsh r3, [r6, r3]
+ add r0, r5, #0
+ bl MOD11_0225A270
+ b _02259DEA
+_02259DBE:
+ lsl r0, r6, #3
+ add r6, r7, r0
+ ldrh r0, [r6, #6]
+ mov r3, #4
+ ldr r1, [sp, #0x20]
+ str r0, [sp]
+ ldrb r0, [r6, #2]
+ mov r2, #5
+ str r0, [sp, #4]
+ ldrsh r3, [r6, r3]
+ add r0, r5, #0
+ bl MOD11_0225A270
+ b _02259DEA
+_02259DDA:
+ add r0, sp, #0x40
+ ldrb r0, [r0, r4]
+ cmp r0, #0
+ bne _02259DEA
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD11_0225ABA4
+_02259DEA:
+ add r4, r4, #1
+_02259DEC:
+ cmp r4, #4
+ bge _02259DF2
+ b _02259CE0
+_02259DF2:
+ ldr r0, [sp, #0x28]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x2c]
+ ldr r1, _02259E54 ; =0x000003A2
+ bl FUN_0200A914
+ add r4, r0, #0
+ ldr r0, _02259E58 ; =0x000A0B0C
+ mov r3, #2
+ str r0, [sp]
+ ldr r0, _02259E4C ; =0x00004E33
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, _02259E5C ; =0x0225F7C4
+ add r2, r4, #0
+ ldrh r1, [r0, #0x20]
+ str r1, [sp, #0xc]
+ ldrh r0, [r0, #0x22]
+ ldr r1, _02259E60 ; =0x0000051C
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r5, r1
+ bl MOD11_0225A458
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x44
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02259E38: .word 0x000004CC
+_02259E3C: .word 0x000003C2
+_02259E40: .word 0x000003C3
+_02259E44: .word 0x00010203
+_02259E48: .word 0x00040506
+_02259E4C: .word 0x00004E33
+_02259E50: .word 0x0225F7D4
+_02259E54: .word 0x000003A2
+_02259E58: .word 0x000A0B0C
+_02259E5C: .word 0x0225F7C4
+_02259E60: .word 0x0000051C
+
+ thumb_func_start MOD11_02259E64
+MOD11_02259E64: ; 0x02259E64
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ mov r0, #0xff
+ add r5, r1, #0
+ str r0, [sp]
+ add r0, r5, #1
+ cmp r0, #5
+ bhi _02259E8C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02259E80: ; jump table
+ .short _02259E8C - _02259E80 - 2 ; case 0
+ .short _02259E8C - _02259E80 - 2 ; case 1
+ .short _02259E90 - _02259E80 - 2 ; case 2
+ .short _02259EB4 - _02259E80 - 2 ; case 3
+ .short _02259EBA - _02259E80 - 2 ; case 4
+ .short _02259EC0 - _02259E80 - 2 ; case 5
+_02259E8C:
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02259E90:
+ ldr r0, _02259F24 ; =0x0000069E
+ mov r7, #0
+ ldrb r0, [r4, r0]
+ add r6, r7, #0
+ cmp r0, #0
+ beq _02259EA6
+ cmp r0, #2
+ beq _02259EAA
+ cmp r0, #4
+ beq _02259EAA
+ b _02259EC4
+_02259EA6:
+ str r0, [sp]
+ b _02259EC4
+_02259EAA:
+ ldr r0, _02259F24 ; =0x0000069E
+ ldrb r0, [r4, r0]
+ sub r0, r0, #2
+ str r0, [sp]
+ b _02259EC4
+_02259EB4:
+ mov r7, #1
+ add r6, r7, #0
+ b _02259EC4
+_02259EBA:
+ mov r7, #2
+ mov r6, #1
+ b _02259EC4
+_02259EC0:
+ mov r7, #3
+ mov r6, #1
+_02259EC4:
+ add r0, r4, #0
+ add r1, r2, #0
+ bl MOD11_0225ADD4
+ ldr r0, _02259F28 ; =MOD11_0225AE4C
+ add r1, r4, #0
+ bl MOD11_0225AD80
+ ldr r0, _02259F2C ; =0x0225F854
+ sub r2, r5, #1
+ mov r1, #6
+ mul r1, r2
+ add r0, r0, r1
+ ldr r1, _02259F30 ; =0x000006B4
+ lsl r2, r2, #2
+ str r0, [r4, r1]
+ ldr r0, _02259F34 ; =0x0225F70C
+ add r3, r0, r2
+ add r0, r1, #4
+ str r3, [r4, r0]
+ add r0, r1, #0
+ mov r3, #1
+ add r0, #0xc
+ strb r3, [r4, r0]
+ add r0, r1, #0
+ add r0, #8
+ str r5, [r4, r0]
+ add r0, r1, #0
+ add r0, #0xd
+ strb r7, [r4, r0]
+ add r3, r1, #0
+ ldr r0, [sp]
+ add r3, #0xe
+ strb r0, [r4, r3]
+ add r0, r1, #0
+ add r0, #0xf
+ strb r6, [r4, r0]
+ ldr r0, _02259F38 ; =0x0225F79C
+ add r3, r0, r2
+ ldrh r2, [r0, r2]
+ add r0, r1, #0
+ add r0, #0x10
+ strh r2, [r4, r0]
+ ldrh r0, [r3, #2]
+ add r1, #0x12
+ strh r0, [r4, r1]
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02259F24: .word 0x0000069E
+_02259F28: .word MOD11_0225AE4C
+_02259F2C: .word 0x0225F854
+_02259F30: .word 0x000006B4
+_02259F34: .word 0x0225F70C
+_02259F38: .word 0x0225F79C
+
+ thumb_func_start MOD11_02259F3C
+MOD11_02259F3C: ; 0x02259F3C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ mov r0, #0
+ add r4, r1, #0
+ mvn r0, r0
+ add r1, r2, #0
+ cmp r4, r0
+ bne _02259F50
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02259F50:
+ add r2, r5, #0
+ add r2, #0x18
+ cmp r4, #1
+ blt _02259F66
+ cmp r4, #4
+ bgt _02259F66
+ sub r3, r4, #1
+ lsl r3, r3, #1
+ ldrh r2, [r2, r3]
+ cmp r2, #0
+ beq _02259FCA
+_02259F66:
+ sub r0, r4, #1
+ cmp r4, #4
+ bgt _02259F88
+ add r2, r4, #1
+ bmi _02259F8C
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_02259F7C: ; jump table
+ .short _02259F8C - _02259F7C - 2 ; case 0
+ .short _02259F8C - _02259F7C - 2 ; case 1
+ .short _02259F92 - _02259F7C - 2 ; case 2
+ .short _02259F92 - _02259F7C - 2 ; case 3
+ .short _02259F92 - _02259F7C - 2 ; case 4
+ .short _02259F92 - _02259F7C - 2 ; case 5
+_02259F88:
+ cmp r4, #0xff
+ beq _02259FA2
+_02259F8C:
+ mov r0, #0
+ mvn r0, r0
+ pop {r3, r4, r5, r6, r7, pc}
+_02259F92:
+ mov r2, #6
+ mul r2, r0
+ ldr r3, _02259FCC ; =0x0225F86C
+ lsl r0, r0, #2
+ add r7, r3, r2
+ ldr r2, _02259FD0 ; =0x0225F7AC
+ add r6, r2, r0
+ b _02259FA6
+_02259FA2:
+ ldr r7, _02259FD4 ; =0x0225F884
+ ldr r6, _02259FD8 ; =0x0225F7BC
+_02259FA6:
+ add r0, r5, #0
+ bl MOD11_0225ADD4
+ ldr r0, _02259FDC ; =MOD11_0225AF9C
+ add r1, r5, #0
+ bl MOD11_0225AD80
+ ldr r1, _02259FE0 ; =0x000006B4
+ mov r2, #3
+ str r7, [r5, r1]
+ add r0, r1, #4
+ str r6, [r5, r0]
+ add r0, r1, #0
+ add r0, #0xc
+ strb r2, [r5, r0]
+ add r1, #8
+ str r4, [r5, r1]
+ add r0, r4, #0
+_02259FCA:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02259FCC: .word 0x0225F86C
+_02259FD0: .word 0x0225F7AC
+_02259FD4: .word 0x0225F884
+_02259FD8: .word 0x0225F7BC
+_02259FDC: .word MOD11_0225AF9C
+_02259FE0: .word 0x000006B4
+
+ thumb_func_start MOD11_02259FE4
+MOD11_02259FE4: ; 0x02259FE4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0
+ add r4, r1, #0
+ mvn r0, r0
+ cmp r4, r0
+ beq _02259FFA
+ cmp r4, #1
+ beq _02259FFE
+ cmp r4, #0xff
+ beq _0225A002
+_02259FFA:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02259FFE:
+ mov r6, #0
+ b _0225A004
+_0225A002:
+ mov r6, #1
+_0225A004:
+ add r0, r5, #0
+ add r1, r2, #0
+ bl MOD11_0225ADD4
+ ldr r0, _0225A048 ; =MOD11_0225AE4C
+ add r1, r5, #0
+ bl MOD11_0225AD80
+ cmp r4, #1
+ ldr r0, _0225A04C ; =0x000006B4
+ bne _0225A022
+ ldr r1, _0225A050 ; =0x0225F6F6
+ str r1, [r5, r0]
+ ldr r1, _0225A054 ; =0x0225F6CC
+ b _0225A028
+_0225A022:
+ ldr r1, _0225A058 ; =0x0225F6F0
+ str r1, [r5, r0]
+ ldr r1, _0225A05C ; =0x0225F6C8
+_0225A028:
+ add r0, r0, #4
+ str r1, [r5, r0]
+ mov r0, #0x1b
+ mov r1, #6
+ lsl r0, r0, #6
+ strb r1, [r5, r0]
+ sub r1, r0, #4
+ str r4, [r5, r1]
+ add r1, r0, #1
+ strb r6, [r5, r1]
+ mov r1, #3
+ add r0, r0, #3
+ strb r1, [r5, r0]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ nop
+_0225A048: .word MOD11_0225AE4C
+_0225A04C: .word 0x000006B4
+_0225A050: .word 0x0225F6F6
+_0225A054: .word 0x0225F6CC
+_0225A058: .word 0x0225F6F0
+_0225A05C: .word 0x0225F6C8
+
+ thumb_func_start MOD11_0225A060
+MOD11_0225A060: ; 0x0225A060
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r1, #0
+ add r1, sp, #0
+ mov r2, #1
+ add r4, r0, #0
+ bl MOD11_0225ACD4
+ cmp r5, #4
+ bgt _0225A090
+ add r0, r5, #1
+ bmi _0225A094
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225A084: ; jump table
+ .short _0225A094 - _0225A084 - 2 ; case 0
+ .short _0225A094 - _0225A084 - 2 ; case 1
+ .short _0225A09A - _0225A084 - 2 ; case 2
+ .short _0225A0AA - _0225A084 - 2 ; case 3
+ .short _0225A0BA - _0225A084 - 2 ; case 4
+ .short _0225A0CA - _0225A084 - 2 ; case 5
+_0225A090:
+ cmp r5, #0xff
+ beq _0225A0DA
+_0225A094:
+ add sp, #4
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, pc}
+_0225A09A:
+ add r0, sp, #0
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _0225A116
+ mov r0, #0
+ add sp, #4
+ mvn r0, r0
+ pop {r3, r4, r5, r6, pc}
+_0225A0AA:
+ add r0, sp, #0
+ ldrb r0, [r0, #1]
+ cmp r0, #0
+ bne _0225A116
+ mov r0, #0
+ add sp, #4
+ mvn r0, r0
+ pop {r3, r4, r5, r6, pc}
+_0225A0BA:
+ add r0, sp, #0
+ ldrb r0, [r0, #2]
+ cmp r0, #0
+ bne _0225A116
+ mov r0, #0
+ add sp, #4
+ mvn r0, r0
+ pop {r3, r4, r5, r6, pc}
+_0225A0CA:
+ add r0, sp, #0
+ ldrb r0, [r0, #3]
+ cmp r0, #0
+ bne _0225A116
+ mov r0, #0
+ add sp, #4
+ mvn r0, r0
+ pop {r3, r4, r5, r6, pc}
+_0225A0DA:
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD11_0225ADD4
+ ldr r0, _0225A14C ; =MOD11_0225AE4C
+ add r1, r4, #0
+ bl MOD11_0225AD80
+ ldr r0, _0225A150 ; =0x0225F8A4
+ ldr r1, _0225A154 ; =0x000006B4
+ ldr r2, _0225A158 ; =0x0225F80C
+ str r0, [r4, r1]
+ add r0, r1, #4
+ str r2, [r4, r0]
+ add r0, r1, #0
+ mov r2, #4
+ add r0, #0xc
+ strb r2, [r4, r0]
+ add r0, r1, #0
+ add r0, #8
+ str r5, [r4, r0]
+ add r0, r1, #0
+ add r0, #0xd
+ strb r2, [r4, r0]
+ mov r0, #3
+ add r1, #0xf
+ strb r0, [r4, r1]
+ add sp, #4
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, pc}
+_0225A116:
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ ldr r2, _0225A15C ; =0x000002FF
+ add r6, r0, #0
+ mov r1, #5
+ bl FUN_02018768
+ add r0, r6, #0
+ mov r1, #5
+ bl FUN_0201AC68
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD11_0225ADD0
+ ldr r0, _0225A160 ; =MOD11_0225B234
+ add r1, r4, #0
+ bl MOD11_0225AD80
+ mov r0, #0x6d
+ lsl r0, r0, #4
+ str r5, [r4, r0]
+ add r0, r5, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_0225A14C: .word MOD11_0225AE4C
+_0225A150: .word 0x0225F8A4
+_0225A154: .word 0x000006B4
+_0225A158: .word 0x0225F80C
+_0225A15C: .word 0x000002FF
+_0225A160: .word MOD11_0225B234
+
+ thumb_func_start MOD11_0225A164
+MOD11_0225A164: ; 0x0225A164
+ push {r4, r5, r6, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl MOD11_02230078
+ add r4, r0, #0
+ ldr r0, [r5]
+ bl MOD11_02230080
+ add r6, r0, #0
+ ldr r0, [r5]
+ bl MOD11_022300CC
+ add r5, r0, #0
+ bl FUN_0206B888
+ mov r1, #0x13
+ str r1, [sp]
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r1, #3
+ str r1, [sp, #0xc]
+ mov r0, #2
+ str r0, [sp, #0x10]
+ ldr r0, _0225A1DC ; =0x00004E32
+ add r2, r4, #0
+ str r0, [sp, #0x14]
+ add r0, r5, #0
+ add r3, r6, #0
+ bl FUN_0200C0DC
+ bl FUN_0206B890
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _0225A1E0 ; =0x00004E31
+ add r1, r6, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x13
+ bl FUN_0200C124
+ bl FUN_0206B89C
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _0225A1E0 ; =0x00004E31
+ add r1, r6, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x13
+ bl FUN_0200C13C
+ add sp, #0x18
+ pop {r4, r5, r6, pc}
+ nop
+_0225A1DC: .word 0x00004E32
+_0225A1E0: .word 0x00004E31
+
+ thumb_func_start MOD11_0225A1E4
+MOD11_0225A1E4: ; 0x0225A1E4
+ push {r4, lr}
+ ldr r0, [r0]
+ bl MOD11_02230080
+ ldr r1, _0225A220 ; =0x00004E40
+ add r4, r0, #0
+ bl FUN_0200C358
+ ldr r1, _0225A224 ; =0x00004E41
+ add r0, r4, #0
+ bl FUN_0200C358
+ ldr r1, _0225A228 ; =0x00004E42
+ add r0, r4, #0
+ bl FUN_0200C358
+ ldr r1, _0225A22C ; =0x00004E31
+ add r0, r4, #0
+ bl FUN_0200C378
+ ldr r1, _0225A22C ; =0x00004E31
+ add r0, r4, #0
+ bl FUN_0200C388
+ ldr r1, _0225A230 ; =0x00004E32
+ add r0, r4, #0
+ bl FUN_0200C368
+ pop {r4, pc}
+ nop
+_0225A220: .word 0x00004E40
+_0225A224: .word 0x00004E41
+_0225A228: .word 0x00004E42
+_0225A22C: .word 0x00004E31
+_0225A230: .word 0x00004E32
+
+ thumb_func_start MOD11_0225A234
+MOD11_0225A234: ; 0x0225A234
+ push {r3, r4, r5, r6, r7, lr}
+ mov r4, #0
+ add r5, r0, #0
+ add r6, r4, #0
+ add r7, r4, #0
+_0225A23E:
+ ldr r0, _0225A268 ; =0x00000624
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _0225A24E
+ bl FUN_0200C3DC
+ ldr r0, _0225A268 ; =0x00000624
+ str r6, [r5, r0]
+_0225A24E:
+ ldr r0, _0225A26C ; =0x00000634
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _0225A25E
+ bl FUN_0200CAB4
+ ldr r0, _0225A26C ; =0x00000634
+ str r7, [r5, r0]
+_0225A25E:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0225A23E
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225A268: .word 0x00000624
+_0225A26C: .word 0x00000634
+
+ thumb_func_start MOD11_0225A270
+MOD11_0225A270: ; 0x0225A270
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x50
+ add r6, r2, #0
+ add r4, r0, #0
+ str r1, [sp, #0xc]
+ str r3, [sp, #0x10]
+ cmp r6, #2
+ blt _0225A284
+ sub r5, r6, #2
+ b _0225A286
+_0225A284:
+ add r5, r6, #0
+_0225A286:
+ lsl r0, r5, #2
+ add r1, r4, r0
+ ldr r0, _0225A3D0 ; =0x00000624
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0225A296
+ bl ErrorHandling
+_0225A296:
+ lsl r0, r5, #2
+ add r1, r4, r0
+ ldr r0, _0225A3D4 ; =0x00000634
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0225A2A6
+ bl ErrorHandling
+_0225A2A6:
+ cmp r6, #5
+ bhi _0225A2CE
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225A2B6: ; jump table
+ .short _0225A2C2 - _0225A2B6 - 2 ; case 0
+ .short _0225A2CE - _0225A2B6 - 2 ; case 1
+ .short _0225A2C2 - _0225A2B6 - 2 ; case 2
+ .short _0225A2C6 - _0225A2B6 - 2 ; case 3
+ .short _0225A2C2 - _0225A2B6 - 2 ; case 4
+ .short _0225A2CA - _0225A2B6 - 2 ; case 5
+_0225A2C2:
+ ldr r6, _0225A3D8 ; =0x00004E40
+ b _0225A2D8
+_0225A2C6:
+ ldr r6, _0225A3DC ; =0x00004E41
+ b _0225A2D8
+_0225A2CA:
+ ldr r6, _0225A3E0 ; =0x00004E42
+ b _0225A2D8
+_0225A2CE:
+ bl ErrorHandling
+ add sp, #0x50
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0225A2D8:
+ ldr r0, [r4]
+ bl MOD11_02230078
+ str r0, [sp, #0x18]
+ ldr r0, [r4]
+ bl MOD11_02230080
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0xc]
+ bl FUN_0206B6C8
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x14]
+ mov r2, #0x13
+ str r6, [sp, #8]
+ bl FUN_0200C00C
+ ldr r3, _0225A3E4 ; =0x0225F948
+ add r2, sp, #0x1c
+ mov r7, #6
+_0225A30A:
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ sub r7, r7, #1
+ bne _0225A30A
+ ldr r0, [r3]
+ lsl r3, r5, #2
+ str r0, [r2]
+ ldr r2, _0225A3E8 ; =0x0225F76C
+ str r6, [sp, #0x30]
+ ldrh r1, [r2, r3]
+ add r0, sp, #0x1c
+ strh r1, [r0]
+ add r1, r2, r3
+ ldrh r1, [r1, #2]
+ add r2, sp, #0x1c
+ strh r1, [r0, #2]
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x14]
+ bl FUN_0200C154
+ add r3, sp, #0x1c
+ mov r1, #0
+ mov r2, #2
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ mov r3, #0x11
+ lsl r3, r3, #0x10
+ add r6, r0, #0
+ bl FUN_0200C750
+ ldr r0, [sp, #0xc]
+ bl FUN_0206B87C
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl FUN_020202DC
+ ldr r0, [sp, #0x10]
+ mov r7, #0
+ cmp r0, #0
+ beq _0225A3A8
+ ldr r0, [sp, #0x6c]
+ cmp r0, #2
+ beq _0225A3A8
+ cmp r0, #3
+ beq _0225A3A8
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x68]
+ lsl r0, r0, #0x10
+ lsl r1, r1, #0x10
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x10
+ mov r2, #0x30
+ bl FUN_02079A54
+ cmp r0, #4
+ bhi _0225A3A0
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225A388: ; jump table
+ .short _0225A3A0 - _0225A388 - 2 ; case 0
+ .short _0225A39E - _0225A388 - 2 ; case 1
+ .short _0225A39A - _0225A388 - 2 ; case 2
+ .short _0225A396 - _0225A388 - 2 ; case 3
+ .short _0225A392 - _0225A388 - 2 ; case 4
+_0225A392:
+ mov r7, #1
+ b _0225A3A0
+_0225A396:
+ mov r7, #2
+ b _0225A3A0
+_0225A39A:
+ mov r7, #3
+ b _0225A3A0
+_0225A39E:
+ mov r7, #4
+_0225A3A0:
+ add r0, r6, #0
+ add r1, r7, #0
+ bl FUN_0200C5C0
+_0225A3A8:
+ add r0, r6, #0
+ bl FUN_0200C5A8
+ lsl r0, r5, #2
+ add r1, r4, r0
+ ldr r0, _0225A3D0 ; =0x00000624
+ ldr r2, _0225A3EC ; =0x00000514
+ str r6, [r1, r0]
+ ldr r0, _0225A3F0 ; =MOD11_0225A3F4
+ add r1, r6, #0
+ bl FUN_0200CA44
+ lsl r1, r5, #2
+ add r2, r4, r1
+ ldr r1, _0225A3D4 ; =0x00000634
+ str r0, [r2, r1]
+ add r0, r6, #0
+ add sp, #0x50
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225A3D0: .word 0x00000624
+_0225A3D4: .word 0x00000634
+_0225A3D8: .word 0x00004E40
+_0225A3DC: .word 0x00004E41
+_0225A3E0: .word 0x00004E42
+_0225A3E4: .word 0x0225F948
+_0225A3E8: .word 0x0225F76C
+_0225A3EC: .word 0x00000514
+_0225A3F0: .word MOD11_0225A3F4
+
+ thumb_func_start MOD11_0225A3F4
+MOD11_0225A3F4: ; 0x0225A3F4
+ ldr r3, _0225A3FC ; =FUN_0200C5A8
+ add r0, r1, #0
+ bx r3
+ nop
+_0225A3FC: .word FUN_0200C5A8
+
+ thumb_func_start MOD11_0225A400
+MOD11_0225A400: ; 0x0225A400
+ cmp r0, #3
+ bhi _0225A418
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225A410: ; jump table
+ .short _0225A418 - _0225A410 - 2 ; case 0
+ .short _0225A41C - _0225A410 - 2 ; case 1
+ .short _0225A420 - _0225A410 - 2 ; case 2
+ .short _0225A424 - _0225A410 - 2 ; case 3
+_0225A418:
+ mov r0, #0
+ bx lr
+_0225A41C:
+ mov r0, #1
+ bx lr
+_0225A420:
+ mov r0, #3
+ bx lr
+_0225A424:
+ mov r0, #2
+ bx lr
+
+ thumb_func_start MOD11_0225A428
+MOD11_0225A428: ; 0x0225A428
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r6, r2, #0
+ add r0, r1, #0
+ add r1, r4, #0
+ mov r2, #0
+ add r7, r3, #0
+ bl FUN_02002E14
+ add r4, r0, #0
+ asr r1, r4, #2
+ lsr r1, r1, #0x1d
+ add r1, r4, r1
+ asr r5, r1, #3
+ mov r1, #8
+ bl FX_ModS32
+ cmp r0, #0
+ beq _0225A450
+ add r5, r5, #1
+_0225A450:
+ str r4, [r6]
+ str r5, [r7]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225A458
+MOD11_0225A458: ; 0x0225A458
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x7c
+ add r5, r1, #0
+ add r7, r0, #0
+ ldr r0, [r5]
+ str r2, [sp, #0x18]
+ str r3, [sp, #0x1c]
+ ldr r6, [sp, #0x9c]
+ ldr r4, [sp, #0xa8]
+ cmp r0, #0
+ beq _0225A472
+ bl ErrorHandling
+_0225A472:
+ ldr r0, [r7]
+ bl MOD11_02230080
+ str r0, [sp, #0x20]
+ ldr r0, [r7]
+ bl MOD11_0222FF68
+ str r0, [sp, #0x24]
+ cmp r4, #0
+ bne _0225A494
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x1c]
+ add r2, sp, #0x2c
+ add r3, sp, #0x28
+ bl MOD11_0225A428
+ b _0225A49C
+_0225A494:
+ ldrh r0, [r4, #0x12]
+ str r0, [sp, #0x2c]
+ ldrh r0, [r4, #0x10]
+ str r0, [sp, #0x28]
+_0225A49C:
+ cmp r4, #0
+ bne _0225A4DA
+ add r0, sp, #0x3c
+ bl FUN_0201901C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r2, [sp, #0x28]
+ ldr r0, [sp, #0x24]
+ lsl r2, r2, #0x18
+ add r1, sp, #0x3c
+ lsr r2, r2, #0x18
+ mov r3, #2
+ bl FUN_020190EC
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x90]
+ ldr r1, [sp, #0x1c]
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ str r3, [sp, #0x10]
+ ldr r2, [sp, #0x18]
+ add r0, sp, #0x3c
+ str r3, [sp, #0x14]
+ bl FUN_0201BE3C
+ b _0225A4E6
+_0225A4DA:
+ add r3, r4, #0
+ add r2, sp, #0x3c
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+_0225A4E6:
+ add r0, sp, #0x3c
+ mov r1, #2
+ mov r2, #5
+ bl FUN_02011898
+ mov r1, #1
+ mov r2, #2
+ add r3, sp, #0x30
+ bl FUN_0201D568
+ ldr r0, [sp, #0xa4]
+ cmp r0, #1
+ bne _0225A50A
+ ldr r1, [sp, #0x2c]
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ sub r6, r6, r0
+_0225A50A:
+ ldr r0, _0225A588 ; =0x000004C8
+ ldr r0, [r7, r0]
+ str r0, [sp, #0x4c]
+ add r0, sp, #0x3c
+ str r0, [sp, #0x50]
+ ldr r0, [sp, #0x20]
+ bl FUN_0200CA40
+ str r0, [sp, #0x54]
+ ldr r0, [sp, #0x20]
+ ldr r1, [sp, #0x98]
+ bl FUN_0200C334
+ str r0, [sp, #0x58]
+ mov r0, #0
+ ldr r1, [sp, #0x34]
+ str r0, [sp, #0x5c]
+ str r0, [sp, #0x6c]
+ mov r0, #0x64
+ str r1, [sp, #0x60]
+ mov r1, #0x42
+ str r0, [sp, #0x70]
+ mov r0, #2
+ str r0, [sp, #0x74]
+ mov r0, #5
+ str r0, [sp, #0x78]
+ ldr r2, [sp, #0xa0]
+ lsl r1, r1, #2
+ add r1, r2, r1
+ add r0, sp, #0x4c
+ str r6, [sp, #0x64]
+ str r1, [sp, #0x68]
+ bl FUN_020117E8
+ ldr r1, [sp, #0x94]
+ add r7, r0, #0
+ bl FUN_02011AC0
+ mov r2, #0x42
+ ldr r3, [sp, #0xa0]
+ lsl r2, r2, #2
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, r3, r2
+ bl FUN_020118C4
+ cmp r4, #0
+ bne _0225A570
+ add r0, sp, #0x3c
+ bl FUN_02019178
+_0225A570:
+ str r7, [r5]
+ add r3, sp, #0x30
+ ldmia r3!, {r0, r1}
+ add r2, r5, #4
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ ldr r0, [sp, #0x2c]
+ strh r0, [r5, #0x10]
+ add sp, #0x7c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0225A588: .word 0x000004C8
+
+ thumb_func_start MOD11_0225A58C
+MOD11_0225A58C: ; 0x0225A58C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ mov r0, #0x4d
+ mov r6, #0
+ lsl r0, r0, #4
+ add r4, r5, r0
+ add r7, r6, #0
+_0225A59A:
+ ldr r0, _0225A5BC ; =0x000004CC
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _0225A5B0
+ bl FUN_02011870
+ add r0, r4, #0
+ bl FUN_0201D5E8
+ ldr r0, _0225A5BC ; =0x000004CC
+ str r7, [r5, r0]
+_0225A5B0:
+ add r6, r6, #1
+ add r5, #0x14
+ add r4, #0x14
+ cmp r6, #0xd
+ blt _0225A59A
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225A5BC: .word 0x000004CC
+
+ thumb_func_start MOD11_0225A5C0
+MOD11_0225A5C0: ; 0x0225A5C0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r0, #0
+ ldr r0, [r7]
+ bl MOD11_0222FF68
+ mov r1, #5
+ bl FUN_0201886C
+ add r4, r0, #0
+ add r0, r7, #0
+ add r1, sp, #4
+ mov r2, #0
+ bl MOD11_0225ACD4
+ add r0, sp, #0
+ ldrb r0, [r0, #4]
+ cmp r0, #1
+ bne _0225A63A
+ add r0, r7, #0
+ mov r1, #1
+ add r2, sp, #0
+ mov r3, #0
+ bl MOD11_0225AD2C
+ add r0, sp, #0
+ ldrb r0, [r0, #2]
+ cmp r0, #1
+ bne _0225A61E
+ mov r5, #0xc
+ mov r0, #0xa9
+ lsl r6, r5, #5
+ lsl r0, r0, #2
+ mov r2, #0xf
+_0225A604:
+ lsl r1, r6, #1
+ add r1, r4, r1
+ add r3, r2, #0
+ add r1, #0x1e
+_0225A60C:
+ add r3, r3, #1
+ strh r0, [r1]
+ add r1, r1, #2
+ cmp r3, #0x10
+ ble _0225A60C
+ add r5, r5, #1
+ add r6, #0x20
+ cmp r5, #0x10
+ ble _0225A604
+_0225A61E:
+ add r0, sp, #0
+ ldrb r0, [r0, #3]
+ cmp r0, #1
+ bne _0225A63A
+ mov r0, #0xa1
+ lsl r0, r0, #2
+ add r1, r4, r0
+ mov r2, #2
+ add r0, #0x20
+_0225A630:
+ add r2, r2, #1
+ strh r0, [r1]
+ add r1, r1, #2
+ cmp r2, #0xc
+ ble _0225A630
+_0225A63A:
+ add r0, sp, #0
+ ldrb r0, [r0, #5]
+ cmp r0, #1
+ bne _0225A694
+ add r0, r7, #0
+ mov r1, #2
+ add r2, sp, #0
+ mov r3, #0
+ bl MOD11_0225AD2C
+ add r0, sp, #0
+ ldrb r0, [r0, #2]
+ cmp r0, #1
+ bne _0225A668
+ ldr r0, _0225A698 ; =0x000002A6
+ mov r2, #0x13
+ add r1, r4, r0
+ sub r0, r0, #2
+_0225A65E:
+ add r2, r2, #1
+ strh r0, [r1]
+ add r1, r1, #2
+ cmp r2, #0x1d
+ ble _0225A65E
+_0225A668:
+ add r0, sp, #0
+ ldrb r0, [r0, #3]
+ cmp r0, #1
+ bne _0225A694
+ mov r0, #0xa9
+ mov r5, #3
+ mov r3, #0x60
+ lsl r0, r0, #2
+ mov r2, #0xf
+_0225A67A:
+ lsl r1, r3, #1
+ add r1, r4, r1
+ add r6, r2, #0
+ add r1, #0x1e
+_0225A682:
+ add r6, r6, #1
+ strh r0, [r1]
+ add r1, r1, #2
+ cmp r6, #0x10
+ ble _0225A682
+ add r5, r5, #1
+ add r3, #0x20
+ cmp r5, #7
+ ble _0225A67A
+_0225A694:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225A698: .word 0x000002A6
+
+ thumb_func_start MOD11_0225A69C
+MOD11_0225A69C: ; 0x0225A69C
+ cmp r1, #2
+ blt _0225A6A2
+ sub r1, r1, #2
+_0225A6A2:
+ mov r2, #0x46
+ lsl r2, r2, #2
+ add r0, #0x68
+ mul r2, r1
+ add r0, r0, r2
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0225A6B0
+MOD11_0225A6B0: ; 0x0225A6B0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #0x14]
+ ldr r0, [sp]
+ mov r1, #0x13
+ str r0, [sp, #0x10]
+ add r0, #0x90
+ str r0, [sp, #0x10]
+ ldr r0, [sp]
+ lsl r1, r1, #4
+ str r0, [sp, #0xc]
+ add r0, #0xe0
+ str r0, [sp, #0xc]
+ ldr r0, [sp]
+ add r0, r0, r1
+ str r0, [sp, #8]
+_0225A6D4:
+ mov r0, #0
+ str r0, [sp, #0x18]
+ ldr r0, [sp]
+ ldr r7, [sp, #0x10]
+ ldr r6, [sp, #0xc]
+ ldr r5, [sp, #8]
+ str r0, [sp, #4]
+ add r4, r0, #0
+_0225A6E4:
+ ldr r0, [sp, #4]
+ add r0, #0x80
+ ldr r0, [r0]
+ bl FreeToHeap
+ add r0, r4, #0
+ add r0, #0x9c
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0225A6FE
+ add r0, r7, #0
+ bl FUN_02019178
+_0225A6FE:
+ add r0, r4, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0225A70E
+ add r0, r6, #0
+ bl FUN_02019178
+_0225A70E:
+ mov r0, #0x4f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0225A71E
+ add r0, r5, #0
+ bl FUN_02019178
+_0225A71E:
+ ldr r0, [sp, #4]
+ add r4, #0x14
+ add r0, r0, #4
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ add r7, #0x14
+ add r0, r0, #1
+ add r6, #0x14
+ add r5, #0x14
+ str r0, [sp, #0x18]
+ cmp r0, #4
+ blt _0225A6E4
+ mov r0, #0x46
+ ldr r1, [sp]
+ lsl r0, r0, #2
+ add r1, r1, r0
+ str r1, [sp]
+ ldr r1, [sp, #0x10]
+ add r1, r1, r0
+ str r1, [sp, #0x10]
+ ldr r1, [sp, #0xc]
+ add r1, r1, r0
+ str r1, [sp, #0xc]
+ ldr r1, [sp, #8]
+ add r0, r1, r0
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x14]
+ add r0, r0, #1
+ str r0, [sp, #0x14]
+ cmp r0, #4
+ blt _0225A6D4
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0225A760
+MOD11_0225A760: ; 0x0225A760
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x50
+ add r7, r0, #0
+ ldr r0, [r7]
+ add r5, r1, #0
+ str r2, [sp, #8]
+ bl MOD11_022300C4
+ add r4, r0, #0
+ add r0, r7, #0
+ add r1, r5, #0
+ bl MOD11_0225A69C
+ str r0, [sp, #0x38]
+ mov r0, #6
+ bl FUN_020799E8
+ str r0, [sp, #0xc]
+ ldr r1, _0225A95C ; =0x000003AA
+ add r0, r4, #0
+ bl FUN_0200A914
+ str r0, [sp, #0x28]
+ ldr r0, [r7]
+ bl MOD11_02230138
+ str r0, [sp, #0x24]
+ mov r0, #0x10
+ mov r1, #5
+ bl FUN_020219F4
+ str r0, [sp, #0x30]
+ ldr r1, _0225A960 ; =0x000003A9
+ add r0, r4, #0
+ bl FUN_0200A914
+ ldr r4, [sp, #0x38]
+ str r0, [sp, #0x2c]
+ mov r0, #0
+ str r0, [sp, #0x34]
+ add r0, r4, #0
+ str r0, [sp, #0x1c]
+ str r0, [sp, #0x18]
+ add r0, #0x28
+ str r0, [sp, #0x18]
+ add r0, r4, #0
+ str r0, [sp, #0x14]
+ add r0, #0x78
+ str r0, [sp, #0x14]
+ add r0, r4, #0
+ str r0, [sp, #0x10]
+ add r0, #0xc8
+ ldr r5, [sp, #8]
+ add r6, r4, #0
+ str r0, [sp, #0x10]
+_0225A7CE:
+ ldrh r0, [r5]
+ ldrh r1, [r4]
+ cmp r0, r1
+ beq _0225A814
+ cmp r0, #0
+ beq _0225A814
+ mov r1, #3
+ bl GetWazaAttr
+ str r0, [sp, #0x3c]
+ bl FUN_0206E12C
+ str r0, [sp, #0x40]
+ ldr r0, [sp, #0x3c]
+ bl FUN_0206E0F0
+ add r1, r0, #0
+ mov r0, #5
+ str r0, [sp]
+ ldr r0, [sp, #0x40]
+ mov r2, #1
+ add r3, sp, #0x4c
+ bl FUN_02006BB0
+ str r0, [sp, #0x44]
+ ldr r0, [sp, #0x4c]
+ ldr r1, [sp, #0x1c]
+ ldr r0, [r0, #0x14]
+ ldr r1, [r1, #0x18]
+ ldr r2, [sp, #0xc]
+ bl MIi_CpuCopy32
+ ldr r0, [sp, #0x44]
+ bl FreeToHeap
+_0225A814:
+ ldr r0, [r6, #0x34]
+ cmp r0, #0
+ beq _0225A826
+ ldrh r1, [r5]
+ ldrh r0, [r4]
+ cmp r1, r0
+ beq _0225A846
+ cmp r1, #0
+ beq _0225A846
+_0225A826:
+ ldrh r0, [r5]
+ mov r1, #5
+ bl FUN_0200AA14
+ str r0, [sp, #0x48]
+ ldr r0, _0225A964 ; =0x00070809
+ ldr r1, [sp, #0x48]
+ str r0, [sp]
+ ldr r3, [sp, #0x18]
+ add r0, r7, #0
+ mov r2, #2
+ bl MOD11_0225A968
+ ldr r0, [sp, #0x48]
+ bl FUN_02021A20
+_0225A846:
+ add r0, r6, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0225A876
+ add r0, r6, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0225A876
+ ldrh r1, [r5]
+ cmp r1, #0
+ bne _0225A876
+ ldrh r0, [r4]
+ cmp r1, r0
+ bne _0225A876
+ ldrh r1, [r5, #8]
+ ldrh r0, [r4, #8]
+ cmp r1, r0
+ bne _0225A876
+ ldrh r1, [r5, #0x10]
+ ldrh r0, [r4, #0x10]
+ cmp r1, r0
+ beq _0225A906
+_0225A876:
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldrh r2, [r5, #8]
+ ldr r0, [sp, #0x24]
+ mov r1, #0
+ mov r3, #2
+ bl FUN_0200AD38
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldrh r2, [r5, #0x10]
+ ldr r0, [sp, #0x24]
+ mov r1, #1
+ mov r3, #2
+ bl FUN_0200AD38
+ ldr r0, [sp, #0x24]
+ ldr r1, [sp, #0x30]
+ ldr r2, [sp, #0x2c]
+ bl FUN_0200B7B8
+ ldrh r0, [r5, #8]
+ ldrh r1, [r5, #0x10]
+ bl MOD11_0225B3D4
+ str r0, [sp, #0x20]
+ add r0, r6, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0225A8CC
+ ldrh r1, [r5]
+ ldrh r0, [r4]
+ cmp r1, r0
+ bne _0225A8CC
+ ldrh r1, [r5, #8]
+ ldrh r0, [r4, #8]
+ cmp r1, r0
+ beq _0225A8DC
+_0225A8CC:
+ ldr r0, [sp, #0x20]
+ ldr r1, [sp, #0x30]
+ str r0, [sp]
+ ldr r3, [sp, #0x14]
+ add r0, r7, #0
+ mov r2, #0
+ bl MOD11_0225A968
+_0225A8DC:
+ add r0, r6, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0225A8F6
+ ldrh r1, [r5]
+ ldrh r0, [r4]
+ cmp r1, r0
+ bne _0225A8F6
+ ldrh r1, [r5, #8]
+ ldrh r0, [r4, #8]
+ cmp r1, r0
+ beq _0225A906
+_0225A8F6:
+ ldr r0, [sp, #0x20]
+ ldr r1, [sp, #0x28]
+ str r0, [sp]
+ ldr r3, [sp, #0x10]
+ add r0, r7, #0
+ mov r2, #0
+ bl MOD11_0225A968
+_0225A906:
+ ldr r0, [sp, #0x1c]
+ add r4, r4, #2
+ add r0, r0, #4
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x18]
+ add r5, r5, #2
+ add r0, #0x14
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ add r6, #0x14
+ add r0, #0x14
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x10]
+ add r0, #0x14
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x34]
+ add r0, r0, #1
+ str r0, [sp, #0x34]
+ cmp r0, #4
+ bge _0225A930
+ b _0225A7CE
+_0225A930:
+ ldr r0, [sp, #0x28]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x2c]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x30]
+ bl FUN_02021A20
+ mov r0, #0xc
+_0225A944:
+ ldr r1, [sp, #8]
+ ldrh r2, [r1]
+ add r1, r1, #2
+ str r1, [sp, #8]
+ ldr r1, [sp, #0x38]
+ strh r2, [r1]
+ add r1, r1, #2
+ str r1, [sp, #0x38]
+ sub r0, r0, #1
+ bne _0225A944
+ add sp, #0x50
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225A95C: .word 0x000003AA
+_0225A960: .word 0x000003A9
+_0225A964: .word 0x00070809
+
+ thumb_func_start MOD11_0225A968
+MOD11_0225A968: ; 0x0225A968
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r7, r2, #0
+ add r6, r1, #0
+ add r5, r0, #0
+ add r4, r3, #0
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, sp, #0x1c
+ add r3, sp, #0x18
+ bl MOD11_0225A428
+ ldr r0, [sp, #0x1c]
+ strh r0, [r4, #0x12]
+ ldr r0, [sp, #0x18]
+ strh r0, [r4, #0x10]
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _0225A994
+ add r0, r4, #0
+ bl FUN_02019178
+_0225A994:
+ add r0, r4, #0
+ bl FUN_0201901C
+ ldr r0, [r5]
+ bl MOD11_0222FF68
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ ldr r2, [sp, #0x18]
+ add r1, r4, #0
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ mov r3, #2
+ bl FUN_020190EC
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x38]
+ add r1, r7, #0
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ str r3, [sp, #0x10]
+ add r0, r4, #0
+ add r2, r6, #0
+ str r3, [sp, #0x14]
+ bl FUN_0201BE3C
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0225A9D4
+MOD11_0225A9D4: ; 0x0225A9D4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x44
+ add r5, r0, #0
+ str r0, [sp, #4]
+ add r0, #0x18
+ str r0, [sp, #4]
+ ldr r0, [r5]
+ bl MOD11_02230078
+ str r0, [sp, #0xc]
+ ldr r0, [r5]
+ bl MOD11_02230080
+ ldr r1, _0225AAA8 ; =0x0000069E
+ str r0, [sp, #8]
+ ldrb r1, [r5, r1]
+ add r0, r5, #0
+ bl MOD11_0225A69C
+ ldr r4, _0225AAAC ; =0x0225F914
+ str r0, [sp]
+ add r3, sp, #0x10
+ mov r2, #6
+_0225AA02:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0225AA02
+ ldr r0, [r4]
+ mov r4, #0
+ str r0, [r3]
+ add r6, sp, #0x10
+ b _0225AAA0
+_0225AA14:
+ lsl r0, r4, #2
+ add r1, r5, r0
+ ldr r0, _0225AAB0 ; =0x00000604
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0225AA24
+ bl ErrorHandling
+_0225AA24:
+ ldr r0, [sp, #4]
+ lsl r1, r4, #1
+ ldrh r0, [r0, r1]
+ cmp r0, #0
+ beq _0225AA9E
+ mov r1, #3
+ bl GetWazaAttr
+ add r2, r0, #0
+ ldr r0, _0225AAB4 ; =0x00004E35
+ ldr r1, _0225AAB8 ; =0x0225F72C
+ add r0, r4, r0
+ str r0, [sp, #0x24]
+ lsl r0, r4, #2
+ ldrh r1, [r1, r0]
+ add r3, sp, #0x10
+ strh r1, [r6]
+ ldr r1, _0225AAB8 ; =0x0225F72C
+ add r0, r1, r0
+ ldrh r0, [r0, #2]
+ ldr r1, [sp, #8]
+ strh r0, [r6, #2]
+ ldr r0, [sp, #0xc]
+ bl FUN_0206E240
+ lsl r1, r4, #2
+ add r2, r5, r1
+ ldr r1, _0225AAB0 ; =0x00000604
+ mov r3, #0x11
+ str r0, [r2, r1]
+ add r0, r1, #0
+ ldr r0, [r2, r0]
+ mov r1, #0
+ mov r2, #2
+ ldrsh r1, [r6, r1]
+ ldrsh r2, [r6, r2]
+ lsl r3, r3, #0x10
+ bl FUN_0200C750
+ lsl r0, r4, #2
+ add r1, r5, r0
+ ldr r0, _0225AAB0 ; =0x00000604
+ ldr r0, [r1, r0]
+ ldr r0, [r0]
+ bl FUN_02020350
+ add r7, r0, #0
+ mov r0, #6
+ bl FUN_020799E8
+ add r2, r0, #0
+ ldr r0, [sp]
+ lsl r3, r4, #2
+ add r0, r0, r3
+ mov r3, #0x66
+ ldr r1, [r7, #8]
+ lsl r3, r3, #0x14
+ ldr r0, [r0, #0x18]
+ add r1, r3, r1
+ bl MIi_CpuCopy16
+_0225AA9E:
+ add r4, r4, #1
+_0225AAA0:
+ cmp r4, #4
+ blt _0225AA14
+ add sp, #0x44
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225AAA8: .word 0x0000069E
+_0225AAAC: .word 0x0225F914
+_0225AAB0: .word 0x00000604
+_0225AAB4: .word 0x00004E35
+_0225AAB8: .word 0x0225F72C
+
+ thumb_func_start MOD11_0225AABC
+MOD11_0225AABC: ; 0x0225AABC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl MOD11_02230078
+ ldr r0, [r5]
+ bl MOD11_02230080
+ mov r4, #0
+ ldr r7, _0225AAEC ; =0x00000604
+ add r6, r4, #0
+_0225AAD2:
+ ldr r0, [r5, r7]
+ cmp r0, #0
+ beq _0225AAE0
+ bl FUN_0206E270
+ ldr r0, _0225AAEC ; =0x00000604
+ str r6, [r5, r0]
+_0225AAE0:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0225AAD2
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225AAEC: .word 0x00000604
+
+ thumb_func_start MOD11_0225AAF0
+MOD11_0225AAF0: ; 0x0225AAF0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl MOD11_02230078
+ ldr r0, [r5]
+ bl MOD11_02230080
+ mov r4, #0
+ add r6, r0, #0
+ add r7, r4, #0
+_0225AB06:
+ ldr r0, _0225AB2C ; =0x00000614
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _0225AB20
+ bl FUN_0206E2E8
+ ldr r1, _0225AB30 ; =0x00004E39
+ add r0, r6, #0
+ add r1, r4, r1
+ bl FUN_0206E2E0
+ ldr r0, _0225AB2C ; =0x00000614
+ str r7, [r5, r0]
+_0225AB20:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0225AB06
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225AB2C: .word 0x00000614
+_0225AB30: .word 0x00004E39
+
+ thumb_func_start MOD11_0225AB34
+MOD11_0225AB34: ; 0x0225AB34
+ push {r3, r4, r5, lr}
+ ldr r0, [r0]
+ add r5, r1, #0
+ add r4, r2, #0
+ bl MOD11_022300CC
+ add r4, #8
+ add r1, r5, #0
+ mov r2, #5
+ mov r3, #1
+ str r4, [sp]
+ bl MOD08_02211E7C
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0225AB50
+MOD11_0225AB50: ; 0x0225AB50
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ bl MOD11_022300CC
+ add r6, r0, #0
+ mov r7, #0
+ b _0225AB96
+_0225AB62:
+ ldr r1, _0225AB9C ; =0x0225F6A8
+ lsl r2, r4, #1
+ add r1, r1, r2
+ ldr r2, _0225ABA0 ; =0x0225F74C
+ lsl r3, r4, #2
+ add r2, r2, r3
+ add r0, r5, #0
+ mov r3, #3
+ str r7, [sp]
+ bl MOD11_0225ADD8
+ mov r0, #0x20
+ str r0, [sp]
+ add r3, r4, #0
+ mov r1, #7
+ add r3, #8
+ lsl r3, r3, #0x14
+ ldr r2, [r5, #0x58]
+ lsl r1, r1, #6
+ add r1, r2, r1
+ add r0, r6, #0
+ mov r2, #1
+ lsr r3, r3, #0x10
+ bl FUN_02003054
+ add r4, r4, #1
+_0225AB96:
+ cmp r4, #4
+ blt _0225AB62
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225AB9C: .word 0x0225F6A8
+_0225ABA0: .word 0x0225F74C
+
+ thumb_func_start MOD11_0225ABA4
+MOD11_0225ABA4: ; 0x0225ABA4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ ldr r1, _0225AC50 ; =0x0225F684
+ add r5, r0, #0
+ ldrb r2, [r1, #6]
+ add r0, sp, #0x10
+ strb r2, [r0]
+ ldrb r2, [r1, #7]
+ strb r2, [r0, #1]
+ ldrb r2, [r1, #8]
+ ldrb r1, [r1, #9]
+ strb r2, [r0, #2]
+ strb r1, [r0, #3]
+ ldr r0, [r5]
+ bl MOD11_0222FF68
+ add r6, r0, #0
+ ldr r0, [r5]
+ bl MOD11_022300CC
+ add r7, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r2, _0225AC54 ; =0x0225F6C0
+ lsl r1, r4, #1
+ add r1, r2, r1
+ ldr r3, _0225AC58 ; =0x0225F71C
+ lsl r2, r4, #2
+ add r2, r3, r2
+ add r0, r5, #0
+ mov r3, #4
+ bl MOD11_0225ADD8
+ mov r0, #0x20
+ str r0, [sp]
+ add r3, sp, #0x10
+ ldrb r3, [r3, r4]
+ mov r1, #7
+ ldr r2, [r5, #0x58]
+ lsl r1, r1, #6
+ lsl r3, r3, #0x14
+ add r1, r2, r1
+ add r0, r7, #0
+ mov r2, #1
+ lsr r3, r3, #0x10
+ bl FUN_02003054
+ add r0, r6, #0
+ mov r1, #4
+ bl FUN_0201AC68
+ ldr r0, _0225AC58 ; =0x0225F71C
+ lsl r1, r4, #2
+ ldrb r2, [r0, r1]
+ add r3, r0, r1
+ str r2, [sp]
+ ldrb r4, [r3, #3]
+ ldrb r2, [r3, #2]
+ sub r2, r4, r2
+ add r2, r2, #1
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ str r2, [sp, #4]
+ ldrb r0, [r0, r1]
+ ldrb r2, [r3, #1]
+ mov r1, #5
+ sub r0, r2, r0
+ add r0, r0, #1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ ldrb r3, [r3, #2]
+ ldr r2, _0225AC5C ; =0x000002FF
+ add r0, r6, #0
+ bl FUN_02018540
+ add r0, r6, #0
+ mov r1, #5
+ bl FUN_0201AC68
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0225AC50: .word 0x0225F684
+_0225AC54: .word 0x0225F6C0
+_0225AC58: .word 0x0225F71C
+_0225AC5C: .word 0x000002FF
+
+ thumb_func_start MOD11_0225AC60
+MOD11_0225AC60: ; 0x0225AC60
+ push {r4, r5, r6, lr}
+ mov r5, #0
+ mov r6, #1
+ add r4, r5, #0
+_0225AC68:
+ add r0, r5, #4
+ cmp r0, #6
+ beq _0225AC7A
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ add r1, r4, #0
+ bl FUN_0201797C
+ b _0225AC84
+_0225AC7A:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ add r1, r6, #0
+ bl FUN_0201797C
+_0225AC84:
+ add r5, r5, #1
+ cmp r5, #4
+ blt _0225AC68
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0225AC8C
+MOD11_0225AC8C: ; 0x0225AC8C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r2, #0
+ cmp r1, #1
+ bne _0225AC9A
+ bl MOD11_0225ACB0
+_0225AC9A:
+ cmp r4, #1
+ bne _0225ACA8
+ ldr r0, _0225ACAC ; =MOD11_0225B76C
+ add r1, r5, #0
+ mov r2, #0xa
+ bl FUN_0200CA98
+_0225ACA8:
+ pop {r3, r4, r5, pc}
+ nop
+_0225ACAC: .word MOD11_0225B76C
+
+ thumb_func_start MOD11_0225ACB0
+MOD11_0225ACB0: ; 0x0225ACB0
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD11_0225AABC
+ add r0, r4, #0
+ bl MOD11_0225AAF0
+ add r0, r4, #0
+ bl MOD11_0225A58C
+ add r0, r4, #0
+ bl MOD11_0225A1E4
+ add r0, r4, #0
+ bl MOD11_0225A234
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225ACD4
+MOD11_0225ACD4: ; 0x0225ACD4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ add r6, r5, #0
+ add r1, sp, #0
+ add r7, r2, #0
+ add r6, #0x18
+ bl MOD11_022314E0
+ mov r0, #0
+ b _0225AD1E
+_0225ACEE:
+ add r2, r0, #2
+ add r1, sp, #0
+ ldrb r1, [r1, r2]
+ cmp r7, #1
+ bne _0225AD0A
+ lsl r1, r1, #3
+ add r1, r6, r1
+ ldrb r1, [r1, #1]
+ lsl r1, r1, #0x1d
+ lsr r1, r1, #0x1f
+ bne _0225AD0A
+ mov r1, #0
+ strb r1, [r4, r0]
+ b _0225AD1C
+_0225AD0A:
+ mov r1, #0x6a
+ lsl r1, r1, #4
+ ldrb r1, [r5, r1]
+ lsl r2, r0, #2
+ lsl r3, r1, #4
+ ldr r1, _0225AD28 ; =0x0225F9EC
+ add r1, r1, r3
+ ldr r1, [r2, r1]
+ strb r1, [r4, r0]
+_0225AD1C:
+ add r0, r0, #1
+_0225AD1E:
+ cmp r0, #4
+ blt _0225ACEE
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225AD28: .word 0x0225F9EC
+
+ thumb_func_start MOD11_0225AD2C
+MOD11_0225AD2C: ; 0x0225AD2C
+ push {r4, lr}
+ mov r4, #0x6a
+ lsl r4, r4, #4
+ ldrb r4, [r0, r4]
+ cmp r4, #0xb
+ bhi _0225AD76
+ add r4, r4, r4
+ add r4, pc
+ ldrh r4, [r4, #6]
+ lsl r4, r4, #0x10
+ asr r4, r4, #0x10
+ add pc, r4
+_0225AD44: ; jump table
+ .short _0225AD5C - _0225AD44 - 2 ; case 0
+ .short _0225AD76 - _0225AD44 - 2 ; case 1
+ .short _0225AD76 - _0225AD44 - 2 ; case 2
+ .short _0225AD76 - _0225AD44 - 2 ; case 3
+ .short _0225AD76 - _0225AD44 - 2 ; case 4
+ .short _0225AD76 - _0225AD44 - 2 ; case 5
+ .short _0225AD76 - _0225AD44 - 2 ; case 6
+ .short _0225AD76 - _0225AD44 - 2 ; case 7
+ .short _0225AD5C - _0225AD44 - 2 ; case 8
+ .short _0225AD5C - _0225AD44 - 2 ; case 9
+ .short _0225AD5C - _0225AD44 - 2 ; case 10
+ .short _0225AD5C - _0225AD44 - 2 ; case 11
+_0225AD5C:
+ mov r4, #0
+ add r0, r4, #0
+ mov r3, #1
+ sub r1, r1, #1
+_0225AD64:
+ cmp r4, r1
+ bne _0225AD6C
+ strb r3, [r2, r4]
+ b _0225AD6E
+_0225AD6C:
+ strb r0, [r2, r4]
+_0225AD6E:
+ add r4, r4, #1
+ cmp r4, #4
+ blt _0225AD64
+ pop {r4, pc}
+_0225AD76:
+ add r1, r2, #0
+ add r2, r3, #0
+ bl MOD11_0225ACD4
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0225AD80
+MOD11_0225AD80: ; 0x0225AD80
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _0225AD90
+ bl ErrorHandling
+_0225AD90:
+ mov r0, #0x6b
+ lsl r0, r0, #4
+ add r0, r4, r0
+ mov r1, #0
+ mov r2, #0x24
+ bl MI_CpuFill8
+ ldr r2, _0225ADAC ; =0x00000514
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0225ADAC: .word 0x00000514
+
+ thumb_func_start MOD11_0225ADB0
+MOD11_0225ADB0: ; 0x0225ADB0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _0225ADCE
+ bl FUN_0200CAB4
+ mov r0, #0x6b
+ lsl r0, r0, #4
+ mov r1, #0
+ add r0, r4, r0
+ mov r2, #0x24
+ str r1, [r4, #8]
+ bl MI_CpuFill8
+_0225ADCE:
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0225ADD0
+MOD11_0225ADD0: ; 0x0225ADD0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0225ADD4
+MOD11_0225ADD4: ; 0x0225ADD4
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0225ADD8
+MOD11_0225ADD8: ; 0x0225ADD8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r6, r1, #0
+ add r4, r2, #0
+ add r7, r3, #0
+ bl MOD11_0222FF68
+ mov r1, #4
+ str r0, [sp, #4]
+ bl FUN_0201886C
+ mov ip, r0
+ lsl r0, r7, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x3c]
+ ldrb r7, [r4]
+ str r0, [sp]
+ ldr r0, [sp, #0x20]
+ lsl r0, r0, #1
+ ldrsh r1, [r6, r0]
+ ldrb r0, [r4, #1]
+ cmp r7, r0
+ bgt _0225AE40
+ lsl r6, r7, #5
+_0225AE0C:
+ lsl r2, r6, #1
+ mov r0, ip
+ add r5, r0, r2
+ ldr r0, [sp]
+ ldrb r3, [r4, #3]
+ add r2, r0, r2
+ ldrb r0, [r4, #2]
+ cmp r0, r3
+ bgt _0225AE36
+ lsl r3, r0, #1
+ add r2, r2, r3
+ add r3, r5, r3
+_0225AE24:
+ ldrh r5, [r2]
+ add r0, r0, #1
+ add r2, r2, #2
+ add r5, r1, r5
+ strh r5, [r3]
+ ldrb r5, [r4, #3]
+ add r3, r3, #2
+ cmp r0, r5
+ ble _0225AE24
+_0225AE36:
+ ldrb r0, [r4, #1]
+ add r7, r7, #1
+ add r6, #0x20
+ cmp r7, r0
+ ble _0225AE0C
+_0225AE40:
+ ldr r0, [sp, #4]
+ mov r1, #4
+ bl FUN_0201AC68
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+
+ thumb_func_start MOD11_0225AE4C
+MOD11_0225AE4C: ; 0x0225AE4C
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ mov r3, #0x6b
+ lsl r3, r3, #4
+ ldrsh r0, [r4, r3]
+ cmp r0, #0
+ beq _0225AE6C
+ cmp r0, #1
+ beq _0225AEDC
+ cmp r0, #2
+ beq _0225AEF8
+ b _0225AF66
+_0225AE6C:
+ mov r0, #2
+ str r0, [sp]
+ add r1, r3, #4
+ add r2, r3, #0
+ add r3, #0x10
+ add r2, #8
+ ldrb r3, [r4, r3]
+ ldr r1, [r4, r1]
+ ldr r2, [r4, r2]
+ add r0, r4, #0
+ bl MOD11_0225ADD8
+ ldr r0, _0225AF8C ; =0x000006C1
+ add r2, sp, #4
+ ldrb r1, [r4, r0]
+ mov r0, #0x14
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0225AF90 ; =0x000004CC
+ ldr r0, [r1, r0]
+ add r1, sp, #8
+ bl FUN_020119A4
+ ldr r0, _0225AF8C ; =0x000006C1
+ ldr r2, [sp, #4]
+ ldrb r1, [r4, r0]
+ mov r0, #0x14
+ sub r2, r2, #2
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0225AF90 ; =0x000004CC
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #8]
+ bl FUN_020118C4
+ ldr r0, _0225AF94 ; =0x000006C2
+ ldrb r1, [r4, r0]
+ cmp r1, #0xff
+ beq _0225AECE
+ lsl r1, r1, #2
+ add r1, r4, r1
+ sub r0, #0x9e
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0225AECE
+ mov r1, #0
+ sub r2, r1, #2
+ bl FUN_0200C82C
+_0225AECE:
+ mov r0, #0x6b
+ lsl r0, r0, #4
+ ldrsh r1, [r4, r0]
+ add sp, #0xc
+ add r1, r1, #1
+ strh r1, [r4, r0]
+ pop {r3, r4, pc}
+_0225AEDC:
+ add r0, r3, #2
+ ldrsh r0, [r4, r0]
+ add r1, r0, #1
+ add r0, r3, #2
+ strh r1, [r4, r0]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ ble _0225AF86
+ mov r1, #0
+ add r0, r3, #2
+ strh r1, [r4, r0]
+ ldrsh r0, [r4, r3]
+ add r0, r0, #1
+ strh r0, [r4, r3]
+_0225AEF8:
+ mov r0, #1
+ ldr r3, _0225AF98 ; =0x000006B4
+ str r0, [sp]
+ add r2, r3, #4
+ ldr r1, [r4, r3]
+ add r3, #0xc
+ ldrb r3, [r4, r3]
+ ldr r2, [r4, r2]
+ add r0, r4, #0
+ bl MOD11_0225ADD8
+ ldr r0, _0225AF8C ; =0x000006C1
+ add r2, sp, #4
+ ldrb r1, [r4, r0]
+ mov r0, #0x14
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0225AF90 ; =0x000004CC
+ ldr r0, [r1, r0]
+ add r1, sp, #8
+ bl FUN_020119A4
+ ldr r0, _0225AF8C ; =0x000006C1
+ ldr r2, [sp, #4]
+ ldrb r1, [r4, r0]
+ mov r0, #0x14
+ add r2, r2, #1
+ mul r0, r1
+ add r1, r4, r0
+ ldr r0, _0225AF90 ; =0x000004CC
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #8]
+ bl FUN_020118C4
+ ldr r0, _0225AF94 ; =0x000006C2
+ ldrb r1, [r4, r0]
+ cmp r1, #0xff
+ beq _0225AF58
+ lsl r1, r1, #2
+ add r1, r4, r1
+ sub r0, #0x9e
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0225AF58
+ mov r1, #0
+ mov r2, #1
+ bl FUN_0200C82C
+_0225AF58:
+ mov r0, #0x6b
+ lsl r0, r0, #4
+ ldrsh r1, [r4, r0]
+ add sp, #0xc
+ add r1, r1, #1
+ strh r1, [r4, r0]
+ pop {r3, r4, pc}
+_0225AF66:
+ add r0, r3, #2
+ ldrsh r0, [r4, r0]
+ add r1, r0, #1
+ add r0, r3, #2
+ strh r1, [r4, r0]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ ble _0225AF86
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD11_0225AC8C
+ add r0, r4, #0
+ bl MOD11_0225ADB0
+_0225AF86:
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_0225AF8C: .word 0x000006C1
+_0225AF90: .word 0x000004CC
+_0225AF94: .word 0x000006C2
+_0225AF98: .word 0x000006B4
+
+ thumb_func_start MOD11_0225AF9C
+MOD11_0225AF9C: ; 0x0225AF9C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r4, r1, #0
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ ldr r0, _0225B21C ; =0x000006BC
+ add r1, r4, #0
+ ldr r0, [r4, r0]
+ add r1, #0x18
+ cmp r0, #4
+ bgt _0225AFCE
+ cmp r0, #0
+ blt _0225B00A
+ add r2, r0, r0
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0225AFC4: ; jump table
+ .short _0225B00A - _0225AFC4 - 2 ; case 0
+ .short _0225AFD2 - _0225AFC4 - 2 ; case 1
+ .short _0225AFE0 - _0225AFC4 - 2 ; case 2
+ .short _0225AFEE - _0225AFC4 - 2 ; case 3
+ .short _0225AFFC - _0225AFC4 - 2 ; case 4
+_0225AFCE:
+ cmp r0, #0xff
+ b _0225B00A
+_0225AFD2:
+ mov r0, #5
+ str r0, [sp, #8]
+ ldrh r0, [r1]
+ mov r5, #0
+ mov r6, #9
+ str r0, [sp, #4]
+ b _0225B012
+_0225AFE0:
+ mov r0, #6
+ str r0, [sp, #8]
+ ldrh r0, [r1, #2]
+ mov r5, #1
+ mov r6, #0xa
+ str r0, [sp, #4]
+ b _0225B012
+_0225AFEE:
+ mov r0, #7
+ str r0, [sp, #8]
+ ldrh r0, [r1, #4]
+ mov r5, #2
+ mov r6, #0xb
+ str r0, [sp, #4]
+ b _0225B012
+_0225AFFC:
+ mov r0, #8
+ str r0, [sp, #8]
+ ldrh r0, [r1, #6]
+ mov r5, #3
+ mov r6, #0xc
+ str r0, [sp, #4]
+ b _0225B012
+_0225B00A:
+ mov r5, #0
+ add r6, r5, #0
+ str r5, [sp, #8]
+ str r5, [sp, #4]
+_0225B012:
+ mov r3, #0x6b
+ lsl r3, r3, #4
+ ldrsh r0, [r4, r3]
+ cmp r0, #0
+ beq _0225B026
+ cmp r0, #1
+ beq _0225B100
+ cmp r0, #2
+ beq _0225B11E
+ b _0225B1F6
+_0225B026:
+ mov r0, #2
+ str r0, [sp]
+ add r1, r3, #4
+ add r2, r3, #0
+ add r3, #0x10
+ add r2, #8
+ ldrb r3, [r4, r3]
+ ldr r1, [r4, r1]
+ ldr r2, [r4, r2]
+ add r0, r4, #0
+ bl MOD11_0225ADD8
+ ldr r0, _0225B21C ; =0x000006BC
+ add r1, sp, #0x20
+ ldr r0, [r4, r0]
+ cmp r0, #0xff
+ beq _0225B0DA
+ ldr r0, _0225B220 ; =0x000004CC
+ add r2, sp, #0x1c
+ add r7, r4, r0
+ mov r0, #0x14
+ mul r0, r5
+ str r0, [sp, #0xc]
+ ldr r0, [r7, r0]
+ bl FUN_020119A4
+ ldr r0, [sp, #0xc]
+ ldr r2, [sp, #0x1c]
+ ldr r0, [r7, r0]
+ ldr r1, [sp, #0x20]
+ sub r2, r2, #2
+ bl FUN_020118C4
+ ldr r0, _0225B220 ; =0x000004CC
+ add r1, sp, #0x20
+ add r7, r4, r0
+ mov r0, #0x14
+ mul r0, r6
+ str r0, [sp, #0x10]
+ ldr r0, [r7, r0]
+ add r2, sp, #0x1c
+ bl FUN_020119A4
+ ldr r0, [sp, #0x10]
+ ldr r2, [sp, #0x1c]
+ ldr r0, [r7, r0]
+ ldr r1, [sp, #0x20]
+ sub r2, r2, #2
+ bl FUN_020118C4
+ ldr r0, _0225B220 ; =0x000004CC
+ mov r1, #0x14
+ add r6, r4, r0
+ ldr r0, [sp, #8]
+ add r2, sp, #0x1c
+ add r7, r0, #0
+ mul r7, r1
+ ldr r0, [r6, r7]
+ add r1, sp, #0x20
+ bl FUN_020119A4
+ ldr r2, [sp, #0x1c]
+ ldr r0, [r6, r7]
+ ldr r1, [sp, #0x20]
+ sub r2, r2, #2
+ bl FUN_020118C4
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ beq _0225B0F2
+ lsl r5, r5, #2
+ ldr r0, _0225B224 ; =0x00000604
+ add r1, r4, r5
+ ldr r0, [r1, r0]
+ mov r1, #0
+ ldr r0, [r0]
+ sub r2, r1, #2
+ bl FUN_0200C7FC
+ ldr r0, _0225B228 ; =0x00000614
+ add r1, r4, r5
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0225B0F2
+ mov r1, #0
+ ldr r0, [r0]
+ sub r2, r1, #2
+ bl FUN_0200C7FC
+ b _0225B0F2
+_0225B0DA:
+ ldr r0, _0225B22C ; =0x0000051C
+ add r2, sp, #0x1c
+ ldr r0, [r4, r0]
+ bl FUN_020119A4
+ ldr r0, _0225B22C ; =0x0000051C
+ ldr r2, [sp, #0x1c]
+ ldr r0, [r4, r0]
+ ldr r1, [sp, #0x20]
+ sub r2, r2, #2
+ bl FUN_020118C4
+_0225B0F2:
+ mov r0, #0x6b
+ lsl r0, r0, #4
+ ldrsh r1, [r4, r0]
+ add sp, #0x24
+ add r1, r1, #1
+ strh r1, [r4, r0]
+ pop {r4, r5, r6, r7, pc}
+_0225B100:
+ add r0, r3, #2
+ ldrsh r0, [r4, r0]
+ add r1, r0, #1
+ add r0, r3, #2
+ strh r1, [r4, r0]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bgt _0225B112
+ b _0225B216
+_0225B112:
+ mov r1, #0
+ add r0, r3, #2
+ strh r1, [r4, r0]
+ ldrsh r0, [r4, r3]
+ add r0, r0, #1
+ strh r0, [r4, r3]
+_0225B11E:
+ mov r0, #1
+ ldr r3, _0225B230 ; =0x000006B4
+ str r0, [sp]
+ add r2, r3, #4
+ ldr r1, [r4, r3]
+ add r3, #0xc
+ ldrb r3, [r4, r3]
+ ldr r2, [r4, r2]
+ add r0, r4, #0
+ bl MOD11_0225ADD8
+ ldr r0, _0225B21C ; =0x000006BC
+ add r1, sp, #0x20
+ ldr r0, [r4, r0]
+ cmp r0, #0xff
+ beq _0225B1D0
+ ldr r0, _0225B220 ; =0x000004CC
+ add r2, sp, #0x1c
+ add r7, r4, r0
+ mov r0, #0x14
+ mul r0, r5
+ str r0, [sp, #0x14]
+ ldr r0, [r7, r0]
+ bl FUN_020119A4
+ ldr r0, [sp, #0x14]
+ ldr r2, [sp, #0x1c]
+ ldr r0, [r7, r0]
+ ldr r1, [sp, #0x20]
+ add r2, r2, #1
+ bl FUN_020118C4
+ ldr r0, _0225B220 ; =0x000004CC
+ add r1, sp, #0x20
+ add r7, r4, r0
+ mov r0, #0x14
+ mul r0, r6
+ str r0, [sp, #0x18]
+ ldr r0, [r7, r0]
+ add r2, sp, #0x1c
+ bl FUN_020119A4
+ ldr r0, [sp, #0x18]
+ ldr r2, [sp, #0x1c]
+ ldr r0, [r7, r0]
+ ldr r1, [sp, #0x20]
+ add r2, r2, #1
+ bl FUN_020118C4
+ ldr r0, _0225B220 ; =0x000004CC
+ mov r1, #0x14
+ add r6, r4, r0
+ ldr r0, [sp, #8]
+ add r2, sp, #0x1c
+ add r7, r0, #0
+ mul r7, r1
+ ldr r0, [r6, r7]
+ add r1, sp, #0x20
+ bl FUN_020119A4
+ ldr r2, [sp, #0x1c]
+ ldr r0, [r6, r7]
+ ldr r1, [sp, #0x20]
+ add r2, r2, #1
+ bl FUN_020118C4
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ beq _0225B1E8
+ lsl r5, r5, #2
+ ldr r0, _0225B224 ; =0x00000604
+ add r1, r4, r5
+ ldr r0, [r1, r0]
+ mov r1, #0
+ ldr r0, [r0]
+ mov r2, #1
+ bl FUN_0200C7FC
+ ldr r0, _0225B228 ; =0x00000614
+ add r1, r4, r5
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0225B1E8
+ ldr r0, [r0]
+ mov r1, #0
+ mov r2, #1
+ bl FUN_0200C7FC
+ b _0225B1E8
+_0225B1D0:
+ ldr r0, _0225B22C ; =0x0000051C
+ add r2, sp, #0x1c
+ ldr r0, [r4, r0]
+ bl FUN_020119A4
+ ldr r0, _0225B22C ; =0x0000051C
+ ldr r2, [sp, #0x1c]
+ ldr r0, [r4, r0]
+ ldr r1, [sp, #0x20]
+ add r2, r2, #1
+ bl FUN_020118C4
+_0225B1E8:
+ mov r0, #0x6b
+ lsl r0, r0, #4
+ ldrsh r1, [r4, r0]
+ add sp, #0x24
+ add r1, r1, #1
+ strh r1, [r4, r0]
+ pop {r4, r5, r6, r7, pc}
+_0225B1F6:
+ add r0, r3, #2
+ ldrsh r0, [r4, r0]
+ add r1, r0, #1
+ add r0, r3, #2
+ strh r1, [r4, r0]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ ble _0225B216
+ mov r1, #1
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD11_0225AC8C
+ add r0, r4, #0
+ bl MOD11_0225ADB0
+_0225B216:
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0225B21C: .word 0x000006BC
+_0225B220: .word 0x000004CC
+_0225B224: .word 0x00000604
+_0225B228: .word 0x00000614
+_0225B22C: .word 0x0000051C
+_0225B230: .word 0x000006B4
+
+ thumb_func_start MOD11_0225B234
+MOD11_0225B234: ; 0x0225B234
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ ldr r0, [r4]
+ bl MOD11_0222FF68
+ mov r1, #0x6b
+ lsl r1, r1, #4
+ ldrsh r0, [r4, r1]
+ cmp r0, #3
+ bls _0225B24C
+ b _0225B3AE
+_0225B24C:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225B258: ; jump table
+ .short _0225B260 - _0225B258 - 2 ; case 0
+ .short _0225B2E8 - _0225B258 - 2 ; case 1
+ .short _0225B304 - _0225B258 - 2 ; case 2
+ .short _0225B38E - _0225B258 - 2 ; case 3
+_0225B260:
+ add r1, #0x20
+ ldr r1, [r4, r1]
+ add r0, r4, #0
+ add r2, sp, #4
+ mov r3, #1
+ bl MOD11_0225AD2C
+ mov r5, #0
+ mov r7, #2
+ add r6, sp, #4
+ b _0225B2D6
+_0225B276:
+ ldrb r0, [r6, r5]
+ cmp r0, #1
+ bne _0225B2D4
+ mov r1, #6
+ add r2, r5, #0
+ mul r2, r1
+ ldr r1, _0225B3C4 ; =0x0225F88C
+ lsl r3, r5, #2
+ add r1, r1, r2
+ ldr r2, _0225B3C8 ; =0x0225F7FC
+ add r0, r4, #0
+ add r2, r2, r3
+ mov r3, #4
+ str r7, [sp]
+ bl MOD11_0225ADD8
+ mov r0, #0x14
+ mul r0, r5
+ add r1, r4, r0
+ ldr r0, _0225B3CC ; =0x000004CC
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0225B2C0
+ add r1, sp, #0xc
+ add r2, sp, #8
+ bl FUN_020119A4
+ mov r0, #0x14
+ mul r0, r5
+ add r1, r4, r0
+ ldr r0, _0225B3CC ; =0x000004CC
+ ldr r2, [sp, #8]
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0xc]
+ sub r2, r2, #2
+ bl FUN_020118C4
+_0225B2C0:
+ lsl r0, r5, #2
+ add r1, r4, r0
+ ldr r0, _0225B3D0 ; =0x00000624
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0225B2D4
+ mov r1, #0
+ sub r2, r1, #2
+ bl FUN_0200C82C
+_0225B2D4:
+ add r5, r5, #1
+_0225B2D6:
+ cmp r5, #4
+ blt _0225B276
+ mov r0, #0x6b
+ lsl r0, r0, #4
+ ldrsh r1, [r4, r0]
+ add sp, #0x10
+ add r1, r1, #1
+ strh r1, [r4, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225B2E8:
+ add r0, r1, #2
+ ldrsh r0, [r4, r0]
+ add r2, r0, #1
+ add r0, r1, #2
+ strh r2, [r4, r0]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ ble _0225B3BE
+ mov r2, #0
+ add r0, r1, #2
+ strh r2, [r4, r0]
+ ldrsh r0, [r4, r1]
+ add r0, r0, #1
+ strh r0, [r4, r1]
+_0225B304:
+ mov r1, #0x6d
+ lsl r1, r1, #4
+ ldr r1, [r4, r1]
+ add r0, r4, #0
+ add r2, sp, #4
+ mov r3, #1
+ bl MOD11_0225AD2C
+ mov r5, #0
+ mov r7, #1
+ add r6, sp, #4
+ b _0225B37C
+_0225B31C:
+ ldrb r0, [r6, r5]
+ cmp r0, #1
+ bne _0225B37A
+ mov r1, #6
+ add r2, r5, #0
+ mul r2, r1
+ ldr r1, _0225B3C4 ; =0x0225F88C
+ lsl r3, r5, #2
+ add r1, r1, r2
+ ldr r2, _0225B3C8 ; =0x0225F7FC
+ add r0, r4, #0
+ add r2, r2, r3
+ mov r3, #4
+ str r7, [sp]
+ bl MOD11_0225ADD8
+ mov r0, #0x14
+ mul r0, r5
+ add r1, r4, r0
+ ldr r0, _0225B3CC ; =0x000004CC
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0225B366
+ add r1, sp, #0xc
+ add r2, sp, #8
+ bl FUN_020119A4
+ mov r0, #0x14
+ mul r0, r5
+ add r1, r4, r0
+ ldr r0, _0225B3CC ; =0x000004CC
+ ldr r2, [sp, #8]
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0xc]
+ add r2, r2, #1
+ bl FUN_020118C4
+_0225B366:
+ lsl r0, r5, #2
+ add r1, r4, r0
+ ldr r0, _0225B3D0 ; =0x00000624
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0225B37A
+ mov r1, #0
+ mov r2, #1
+ bl FUN_0200C82C
+_0225B37A:
+ add r5, r5, #1
+_0225B37C:
+ cmp r5, #4
+ blt _0225B31C
+ mov r0, #0x6b
+ lsl r0, r0, #4
+ ldrsh r1, [r4, r0]
+ add sp, #0x10
+ add r1, r1, #1
+ strh r1, [r4, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225B38E:
+ add r0, r1, #2
+ ldrsh r0, [r4, r0]
+ add r2, r0, #1
+ add r0, r1, #2
+ strh r2, [r4, r0]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ ble _0225B3BE
+ mov r2, #0
+ add r0, r1, #2
+ strh r2, [r4, r0]
+ ldrsh r0, [r4, r1]
+ add sp, #0x10
+ add r0, r0, #1
+ strh r0, [r4, r1]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225B3AE:
+ mov r1, #1
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD11_0225AC8C
+ add r0, r4, #0
+ bl MOD11_0225ADB0
+_0225B3BE:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225B3C4: .word 0x0225F88C
+_0225B3C8: .word 0x0225F7FC
+_0225B3CC: .word 0x000004CC
+_0225B3D0: .word 0x00000624
+
+ thumb_func_start MOD11_0225B3D4
+MOD11_0225B3D4: ; 0x0225B3D4
+ cmp r0, #0
+ bne _0225B3DC
+ ldr r0, _0225B42C ; =0x00070800
+ bx lr
+_0225B3DC:
+ cmp r1, r0
+ bne _0225B3E4
+ ldr r0, _0225B430 ; =0x00010200
+ bx lr
+_0225B3E4:
+ cmp r1, #2
+ bgt _0225B3F0
+ cmp r0, #1
+ bne _0225B428
+ ldr r0, _0225B434 ; =0x00050600
+ bx lr
+_0225B3F0:
+ cmp r1, #7
+ bgt _0225B408
+ cmp r0, #1
+ beq _0225B3FE
+ cmp r0, #2
+ beq _0225B402
+ b _0225B428
+_0225B3FE:
+ ldr r0, _0225B434 ; =0x00050600
+ bx lr
+_0225B402:
+ mov r0, #0xc1
+ lsl r0, r0, #0xa
+ bx lr
+_0225B408:
+ asr r2, r1, #1
+ lsr r2, r2, #0x1e
+ add r2, r1, r2
+ asr r2, r2, #2
+ cmp r0, r2
+ bgt _0225B418
+ ldr r0, _0225B434 ; =0x00050600
+ bx lr
+_0225B418:
+ lsr r2, r1, #0x1f
+ add r2, r1, r2
+ asr r1, r2, #1
+ cmp r0, r1
+ bgt _0225B428
+ mov r0, #0xc1
+ lsl r0, r0, #0xa
+ bx lr
+_0225B428:
+ ldr r0, _0225B430 ; =0x00010200
+ bx lr
+ .align 2, 0
+_0225B42C: .word 0x00070800
+_0225B430: .word 0x00010200
+_0225B434: .word 0x00050600
+
+ thumb_func_start MOD11_0225B438
+MOD11_0225B438: ; 0x0225B438
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ ldr r0, [r5]
+ ldr r0, [r0]
+ bl MOD11_0222FF68
+ add r4, r0, #0
+ ldrb r0, [r5, #0x13]
+ cmp r0, #0
+ beq _0225B454
+ cmp r0, #1
+ beq _0225B4AA
+ b _0225B4D6
+_0225B454:
+ mov r2, #8
+ ldrsh r1, [r5, r2]
+ ldr r0, _0225B528 ; =0x000018E7
+ add r1, r1, r0
+ strh r1, [r5, #8]
+ mov r1, #0xa
+ ldrsh r3, [r5, r1]
+ mov r1, #0xfa
+ lsl r1, r1, #2
+ sub r1, r3, r1
+ strh r1, [r5, #0xa]
+ ldrsh r1, [r5, r2]
+ lsl r0, r0, #2
+ sub r0, r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ strh r0, [r5, #0xc]
+ mov r0, #0xa
+ ldrsh r0, [r5, r0]
+ mov r1, #0x64
+ neg r0, r0
+ bl _s32_div_f
+ strh r0, [r5, #0xe]
+ mov r0, #8
+ ldrsh r0, [r5, r0]
+ cmp r0, #0
+ bge _0225B496
+ mov r0, #0xa
+ ldrsh r0, [r5, r0]
+ cmp r0, #0
+ bgt _0225B526
+_0225B496:
+ mov r1, #0
+ strh r1, [r5, #8]
+ mov r0, #0x90
+ strh r0, [r5, #0xa]
+ strh r1, [r5, #0xc]
+ strh r1, [r5, #0xe]
+ ldrb r0, [r5, #0x13]
+ add r0, r0, #1
+ strb r0, [r5, #0x13]
+ pop {r4, r5, r6, pc}
+_0225B4AA:
+ ldr r1, [r5]
+ ldr r0, _0225B52C ; =0x000006A2
+ mov r2, #0
+ strb r2, [r1, r0]
+ ldr r0, [r5, #4]
+ bl FUN_0200CAB4
+ bl FUN_02015F1C
+ ldr r2, _0225B530 ; =0x04001000
+ ldr r0, _0225B534 ; =0xFFFF1FFF
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ ldr r0, [r5]
+ mov r1, #1
+ bl MOD11_0225B77C
+ ldrb r0, [r5, #0x13]
+ add r0, r0, #1
+ strb r0, [r5, #0x13]
+ pop {r4, r5, r6, pc}
+_0225B4D6:
+ ldr r0, [r5]
+ bl MOD11_0225B780
+ cmp r0, #0
+ beq _0225B526
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #4
+ add r3, r2, #0
+ bl FUN_020179E0
+ add r0, r4, #0
+ mov r1, #4
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #5
+ add r3, r2, #0
+ bl FUN_020179E0
+ add r0, r4, #0
+ mov r1, #5
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ ldr r0, [r5]
+ mov r1, #1
+ ldr r0, [r0]
+ bl MOD11_022312AC
+ add r0, r5, #0
+ bl FreeToHeap
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_0225B526:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0225B528: .word 0x000018E7
+_0225B52C: .word 0x000006A2
+_0225B530: .word 0x04001000
+_0225B534: .word 0xFFFF1FFF
+
+ thumb_func_start MOD11_0225B538
+MOD11_0225B538: ; 0x0225B538
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ ldr r0, [r5]
+ ldr r0, [r0]
+ bl MOD11_0222FF68
+ add r6, r0, #0
+ ldrb r0, [r5, #0x12]
+ cmp r0, #4
+ bne _0225B586
+ mov r0, #0xc
+ ldrsh r1, [r5, r0]
+ mov r0, #0xff
+ sub r3, r0, r1
+ cmp r3, #0
+ ble _0225B55A
+ mov r3, #0
+_0225B55A:
+ add r0, r6, #0
+ mov r1, #4
+ mov r2, #0
+ bl FUN_020179E0
+ mov r3, #0xc
+ ldrsh r4, [r5, r3]
+ mov r3, #0xff
+ add r0, r6, #0
+ mov r1, #5
+ mov r2, #0
+ sub r3, r3, r4
+ bl FUN_020179E0
+ mov r0, #8
+ ldrsh r0, [r5, r0]
+ mov r1, #0x64
+ neg r0, r0
+ bl _s32_div_f
+ add r4, r0, #0
+ b _0225B5B6
+_0225B586:
+ mov r0, #0xc
+ ldrsh r3, [r5, r0]
+ cmp r3, #0
+ bge _0225B590
+ mov r3, #0
+_0225B590:
+ add r0, r6, #0
+ mov r1, #4
+ mov r2, #0
+ bl FUN_020179E0
+ mov r3, #0xc
+ ldrsh r3, [r5, r3]
+ add r0, r6, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020179E0
+ mov r0, #8
+ ldrsh r0, [r5, r0]
+ mov r1, #0x64
+ bl _s32_div_f
+ add r4, r0, #0
+ add r4, #0xff
+_0225B5B6:
+ add r0, r6, #0
+ mov r1, #4
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ add r0, r6, #0
+ mov r1, #5
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ mov r0, #0xa
+ ldrsh r0, [r5, r0]
+ mov r1, #0x64
+ bl _s32_div_f
+ add r0, #0x90
+ cmp r4, #0
+ bge _0225B5E2
+ mov r4, #0
+ b _0225B5E8
+_0225B5E2:
+ cmp r4, #0xff
+ ble _0225B5E8
+ mov r4, #0xff
+_0225B5E8:
+ cmp r0, #0xc0
+ ble _0225B5F0
+ mov r0, #0xc0
+ b _0225B5F6
+_0225B5F0:
+ cmp r0, #0
+ bge _0225B5F6
+ mov r0, #0
+_0225B5F6:
+ ldrb r1, [r5, #0x12]
+ cmp r1, #4
+ bne _0225B60A
+ lsl r1, r4, #0x18
+ ldr r2, _0225B63C ; =0x04001040
+ lsr r1, r1, #0x18
+ strh r1, [r2]
+ mov r1, #0x90
+ strh r1, [r2, #4]
+ b _0225B620
+_0225B60A:
+ cmp r4, #0
+ bne _0225B610
+ mov r4, #1
+_0225B610:
+ mov r1, #0xff
+ lsl r2, r4, #8
+ lsl r1, r1, #8
+ and r1, r2
+ ldr r2, _0225B63C ; =0x04001040
+ strh r1, [r2]
+ mov r1, #0x90
+ strh r1, [r2, #4]
+_0225B620:
+ ldr r2, _0225B640 ; =0x04001042
+ mov r1, #0xff
+ lsl r0, r0, #0x18
+ strh r1, [r2]
+ lsr r1, r0, #0x18
+ mov r0, #9
+ lsl r0, r0, #0xc
+ orr r0, r1
+ strh r0, [r2, #4]
+ mov r0, #0xe
+ ldrsh r0, [r5, r0]
+ strh r0, [r5, #0x10]
+ pop {r4, r5, r6, pc}
+ nop
+_0225B63C: .word 0x04001040
+_0225B640: .word 0x04001042
+
+ thumb_func_start MOD11_0225B644
+MOD11_0225B644: ; 0x0225B644
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ ldr r0, _0225B6FC ; =0x04000006
+ ldrh r0, [r0]
+ cmp r0, #0x90
+ bne _0225B68E
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl MOD11_0222FF68
+ mov r2, #0
+ mov r1, #4
+ add r3, r2, #0
+ add r5, r0, #0
+ bl FUN_020179E0
+ mov r3, #0x10
+ ldrsh r3, [r4, r3]
+ add r0, r5, #0
+ mov r1, #4
+ mov r2, #3
+ bl FUN_020179E0
+ mov r2, #0
+ add r0, r5, #0
+ mov r1, #5
+ add r3, r2, #0
+ bl FUN_020179E0
+ mov r3, #0x10
+ ldrsh r3, [r4, r3]
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #3
+ bl FUN_020179E0
+ pop {r4, r5, r6, pc}
+_0225B68E:
+ cmp r0, #0xc0
+ ble _0225B6F8
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl MOD11_0222FF68
+ ldrb r1, [r4, #0x12]
+ add r5, r0, #0
+ cmp r1, #4
+ bne _0225B6C6
+ mov r3, #0xc
+ ldrsh r6, [r4, r3]
+ mov r3, #0xff
+ mov r1, #4
+ mov r2, #0
+ sub r3, r3, r6
+ bl FUN_020179E0
+ mov r3, #0xc
+ ldrsh r4, [r4, r3]
+ mov r3, #0xff
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #0
+ sub r3, r3, r4
+ bl FUN_020179E0
+ b _0225B6E0
+_0225B6C6:
+ mov r3, #0xc
+ ldrsh r3, [r4, r3]
+ mov r1, #4
+ mov r2, #0
+ bl FUN_020179E0
+ mov r3, #0xc
+ ldrsh r3, [r4, r3]
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020179E0
+_0225B6E0:
+ add r0, r5, #0
+ mov r1, #4
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+_0225B6F8:
+ pop {r4, r5, r6, pc}
+ nop
+_0225B6FC: .word 0x04000006
+
+ thumb_func_start MOD11_0225B700
+MOD11_0225B700: ; 0x0225B700
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ ldr r0, _0225B760 ; =0x0000069F
+ ldr r2, _0225B764 ; =0x0225FAAC
+ ldrsb r1, [r1, r0]
+ mov r0, #0x30
+ ldr r7, _0225B768 ; =0x0000FFFF
+ mul r0, r1
+ add r6, r2, r0
+ mov r4, #0
+ add r5, r6, #0
+_0225B716:
+ ldrh r0, [r5, #4]
+ cmp r0, r7
+ bne _0225B72A
+ add r0, r4, #4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r1, #0
+ bl FUN_0201797C
+ b _0225B736
+_0225B72A:
+ add r0, r4, #4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r1, #1
+ bl FUN_0201797C
+_0225B736:
+ add r4, r4, #1
+ add r5, r5, #2
+ cmp r4, #4
+ blt _0225B716
+ mov r4, #0
+_0225B740:
+ ldrh r1, [r6, #0xc]
+ add r0, r4, #4
+ lsl r0, r0, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_020178BC
+ add r4, r4, #1
+ add r6, r6, #2
+ cmp r4, #4
+ blt _0225B740
+ ldr r0, [sp]
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225B760: .word 0x0000069F
+_0225B764: .word 0x0225FAAC
+_0225B768: .word 0x0000FFFF
+
+ thumb_func_start MOD11_0225B76C
+MOD11_0225B76C: ; 0x0225B76C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD11_0225AC60
+ add r0, r4, #0
+ bl FUN_0200CAB4
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0225B77C
+MOD11_0225B77C: ; 0x0225B77C
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0225B780
+MOD11_0225B780: ; 0x0225B780
+ ldr r1, _0225B790 ; =0x00000698
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ bne _0225B78C
+ mov r0, #1
+ bx lr
+_0225B78C:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_0225B790: .word 0x00000698
+
+ thumb_func_start MOD11_0225B794
+MOD11_0225B794: ; 0x0225B794
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r1, #0
+ ldr r0, [r5]
+ bl MOD11_022300CC
+ add r4, r0, #0
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0225B814
+ ldr r0, _0225B818 ; =0x000006AA
+ mov r1, #1
+ ldrsh r0, [r5, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ asr r0, r0, #8
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldr r0, _0225B81C ; =0x00007FFF
+ str r0, [sp, #4]
+ add r0, r4, #0
+ bl FUN_020039E8
+ ldr r1, _0225B820 ; =0x000006A8
+_0225B7C8:
+ ldrb r0, [r5, r1]
+ cmp r0, #0
+ bne _0225B7DA
+ add r0, r1, #2
+ ldrsh r2, [r5, r0]
+ mov r0, #2
+ lsl r0, r0, #8
+ add r2, r2, r0
+ b _0225B7E4
+_0225B7DA:
+ add r0, r1, #2
+ ldrsh r2, [r5, r0]
+ mov r0, #2
+ lsl r0, r0, #8
+ sub r2, r2, r0
+_0225B7E4:
+ add r0, r1, #2
+ strh r2, [r5, r0]
+ ldr r0, _0225B818 ; =0x000006AA
+ mov r1, #0x11
+ ldrsh r2, [r5, r0]
+ lsl r1, r1, #8
+ cmp r2, r1
+ blt _0225B804
+ mov r1, #0xf
+ lsl r1, r1, #8
+ strh r1, [r5, r0]
+ mov r1, #1
+ sub r0, r0, #2
+ add sp, #8
+ strb r1, [r5, r0]
+ pop {r3, r4, r5, pc}
+_0225B804:
+ cmp r2, #0
+ bgt _0225B814
+ mov r1, #1
+ lsl r1, r1, #8
+ strh r1, [r5, r0]
+ mov r1, #0
+ sub r0, r0, #2
+ strb r1, [r5, r0]
+_0225B814:
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0225B818: .word 0x000006AA
+_0225B81C: .word 0x00007FFF
+_0225B820: .word 0x000006A8
+
+ thumb_func_start MOD11_0225B824
+MOD11_0225B824: ; 0x0225B824
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ bl FUN_02002BD4
+ add r6, r0, #0
+ bl FUN_02002BF4
+ add r7, r0, #0
+ bl FUN_02002BE4
+ bl FUN_02002C04
+ ldr r0, [r5]
+ bl MOD11_022300CC
+ add r4, r0, #0
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _0225B8A8
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02003204
+ add r4, r0, #0
+ ldr r0, _0225B8AC ; =0x021C48F8
+ ldrh r0, [r0, #0x22]
+ cmp r0, #0
+ beq _0225B888
+ cmp r6, #1
+ beq _0225B866
+ cmp r7, #1
+ bne _0225B888
+_0225B866:
+ ldr r1, [r5, #0x5c]
+ add r0, r4, #0
+ add r0, #0x16
+ add r1, #0x16
+ mov r2, #0xa
+ bl memcmp
+ cmp r0, #0
+ bne _0225B8A8
+ ldr r0, [r5, #0x60]
+ add r4, #0x16
+ add r0, #0x16
+ add r1, r4, #0
+ mov r2, #0xa
+ bl MIi_CpuCopy16
+ pop {r3, r4, r5, r6, r7, pc}
+_0225B888:
+ ldr r1, [r5, #0x60]
+ add r0, r4, #0
+ add r0, #0x16
+ add r1, #0x16
+ mov r2, #0xa
+ bl memcmp
+ cmp r0, #0
+ bne _0225B8A8
+ ldr r0, [r5, #0x5c]
+ add r4, #0x16
+ add r0, #0x16
+ add r1, r4, #0
+ mov r2, #0xa
+ bl MIi_CpuCopy16
+_0225B8A8:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225B8AC: .word 0x021C48F8
+
+ thumb_func_start MOD11_0225B8B0
+MOD11_0225B8B0: ; 0x0225B8B0
+ push {r4, r5, r6, lr}
+ mov r6, #0x6f
+ lsl r6, r6, #4
+ add r2, r6, #0
+ add r5, r0, #0
+ sub r2, #0x51
+ ldrsb r2, [r5, r2]
+ ldr r1, _0225B914 ; =0x0225FAAC
+ mov r3, #0x30
+ add r4, r2, #0
+ mul r4, r3
+ add r4, r1, r4
+ ldr r2, [r4, #0x20]
+ cmp r2, #0
+ bne _0225B8D4
+ sub r3, #0x31
+ add r0, r3, #0
+ pop {r4, r5, r6, pc}
+_0225B8D4:
+ ldrb r1, [r5, r6]
+ cmp r1, #0
+ bne _0225B90C
+ add r0, r6, #4
+ ldrb r0, [r5, r0]
+ cmp r0, #1
+ beq _0225B8EC
+ ldr r1, _0225B918 ; =0x021C48B8
+ ldr r2, [r1, #0x48]
+ ldr r1, _0225B91C ; =0x00000CF3
+ tst r1, r2
+ beq _0225B906
+_0225B8EC:
+ cmp r0, #0
+ bne _0225B8F6
+ ldr r0, _0225B920 ; =0x000005DC
+ bl FUN_020054C8
+_0225B8F6:
+ mov r1, #1
+ ldr r0, _0225B924 ; =0x000006F4
+ strb r1, [r5, r6]
+ mov r2, #0
+ strb r2, [r5, r0]
+ ldr r2, [r4, #0x20]
+ add r0, r5, #0
+ blx r2
+_0225B906:
+ mov r0, #0
+ mvn r0, r0
+ pop {r4, r5, r6, pc}
+_0225B90C:
+ mov r1, #0
+ blx r2
+ pop {r4, r5, r6, pc}
+ nop
+_0225B914: .word 0x0225FAAC
+_0225B918: .word 0x021C48B8
+_0225B91C: .word 0x00000CF3
+_0225B920: .word 0x000005DC
+_0225B924: .word 0x000006F4
+
+ thumb_func_start MOD11_0225B928
+MOD11_0225B928: ; 0x0225B928
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ str r1, [sp, #8]
+ mov r1, #0x6f
+ lsl r1, r1, #4
+ add r6, r0, #0
+ add r2, r1, #0
+ sub r2, #0x51
+ ldrsb r3, [r6, r2]
+ add r4, r6, r1
+ mov r2, #0x30
+ sub r1, #0x52
+ ldr r0, _0225BAE8 ; =0x0225FAAC
+ mul r2, r3
+ add r7, r0, r2
+ ldrb r1, [r6, r1]
+ ldr r0, [r6]
+ bl MOD11_0223022C
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD11_0222FF7C
+ bl MOD11_02253A74
+ ldr r1, [sp, #8]
+ cmp r1, #1
+ bne _0225B9AE
+ mov r1, #0
+ ldrsb r1, [r0, r1]
+ ldr r2, _0225BAEC ; =0x0225F698
+ strb r1, [r4, #2]
+ mov r1, #1
+ ldrsb r0, [r0, r1]
+ strb r0, [r4, #1]
+ ldrsb r1, [r4, r1]
+ lsl r0, r1, #1
+ add r3, r1, r0
+ mov r0, #2
+ ldrsb r1, [r4, r0]
+ add r0, r2, r3
+ ldrb r1, [r1, r0]
+ ldr r0, [r7, #0x14]
+ lsl r3, r1, #2
+ add r0, r0, r3
+ ldrb r0, [r0, #1]
+ sub r0, #8
+ str r0, [sp]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r4, [r7, #0x14]
+ ldr r0, _0225BAF0 ; =0x000006EC
+ add r2, r4, r3
+ ldrb r1, [r2, #2]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r4, r3]
+ ldr r0, [r6, r0]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD11_0225D5FC
+ mov r0, #0
+ add sp, #0x10
+ mvn r0, r0
+ pop {r3, r4, r5, r6, r7, pc}
+_0225B9AE:
+ ldr r0, _0225BAF4 ; =0x0000069F
+ ldrsb r0, [r6, r0]
+ cmp r0, #5
+ beq _0225B9BA
+ cmp r0, #6
+ bne _0225B9CA
+_0225B9BA:
+ mov r1, #1
+ ldr r3, _0225BAEC ; =0x0225F698
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD11_0225C574
+ add r5, r0, #0
+ b _0225BA34
+_0225B9CA:
+ mov r0, #1
+ ldrsb r1, [r4, r0]
+ lsl r0, r1, #1
+ add r2, r1, r0
+ mov r0, #2
+ ldr r1, _0225BAEC ; =0x0225F698
+ ldrsb r0, [r4, r0]
+ add r1, r1, r2
+ ldrb r0, [r0, r1]
+ str r0, [sp, #0xc]
+ cmp r0, #3
+ bne _0225B9EC
+ ldr r0, _0225BAF8 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x40
+ tst r0, r1
+ bne _0225BA34
+_0225B9EC:
+ ldr r3, _0225BAEC ; =0x0225F698
+ add r0, r4, #0
+ mov r1, #3
+ mov r2, #2
+ bl MOD11_0225C574
+ add r5, r0, #0
+ bne _0225BA34
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ bne _0225BA34
+ ldr r0, _0225BAF8 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x20
+ tst r0, r1
+ beq _0225BA1E
+ mov r0, #0
+ strb r0, [r4, #2]
+ mov r0, #1
+ strb r0, [r4, #1]
+ ldr r0, _0225BAFC ; =0x000005DC
+ bl FUN_020054C8
+ mov r5, #0x20
+ b _0225BA34
+_0225BA1E:
+ mov r0, #0x10
+ tst r0, r1
+ beq _0225BA34
+ mov r0, #2
+ strb r0, [r4, #2]
+ mov r0, #1
+ strb r0, [r4, #1]
+ ldr r0, _0225BAFC ; =0x000005DC
+ bl FUN_020054C8
+ mov r5, #0x10
+_0225BA34:
+ cmp r5, #0x20
+ bhi _0225BA50
+ bhs _0225BA5C
+ cmp r5, #2
+ bhi _0225BA4A
+ cmp r5, #1
+ blo _0225BAE0
+ beq _0225BA9A
+ cmp r5, #2
+ beq _0225BAB0
+ b _0225BAE0
+_0225BA4A:
+ cmp r5, #0x10
+ beq _0225BA5C
+ b _0225BAE0
+_0225BA50:
+ cmp r5, #0x40
+ bhi _0225BA58
+ beq _0225BA5C
+ b _0225BAE0
+_0225BA58:
+ cmp r5, #0x80
+ bne _0225BAE0
+_0225BA5C:
+ mov r0, #1
+ ldrsb r1, [r4, r0]
+ ldr r2, _0225BAEC ; =0x0225F698
+ lsl r0, r1, #1
+ add r3, r1, r0
+ mov r0, #2
+ ldrsb r1, [r4, r0]
+ add r0, r2, r3
+ ldrb r1, [r1, r0]
+ ldr r0, [r7, #0x14]
+ lsl r3, r1, #2
+ add r0, r0, r3
+ ldrb r0, [r0, #1]
+ sub r0, #8
+ str r0, [sp]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r4, [r7, #0x14]
+ ldr r0, _0225BAF0 ; =0x000006EC
+ add r2, r4, r3
+ ldrb r1, [r2, #2]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r4, r3]
+ ldr r0, [r6, r0]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD11_0225D5FC
+ b _0225BAE0
+_0225BA9A:
+ mov r0, #1
+ ldrsb r1, [r4, r0]
+ ldr r2, _0225BAEC ; =0x0225F698
+ add sp, #0x10
+ lsl r0, r1, #1
+ add r3, r1, r0
+ mov r0, #2
+ ldrsb r1, [r4, r0]
+ add r0, r2, r3
+ ldrb r0, [r1, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225BAB0:
+ ldr r0, _0225BB00 ; =0x000006A3
+ ldrb r0, [r6, r0]
+ cmp r0, #1
+ bne _0225BAE0
+ mov r0, #0
+ add r2, r0, #0
+ mov r3, #1
+ ldr r1, [r7, #0x18]
+ ldr r5, [r7, #0x14]
+ b _0225BACE
+_0225BAC4:
+ lsl r4, r0, #2
+ ldr r4, [r1, r4]
+ cmp r4, #4
+ beq _0225BAE4
+ add r0, r0, #1
+_0225BACE:
+ lsl r4, r0, #2
+ ldrb r4, [r5, r4]
+ cmp r0, r4
+ bge _0225BADA
+ add r4, r3, #0
+ b _0225BADC
+_0225BADA:
+ add r4, r2, #0
+_0225BADC:
+ cmp r4, #0xff
+ bne _0225BAC4
+_0225BAE0:
+ mov r0, #0
+ mvn r0, r0
+_0225BAE4:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225BAE8: .word 0x0225FAAC
+_0225BAEC: .word 0x0225F698
+_0225BAF0: .word 0x000006EC
+_0225BAF4: .word 0x0000069F
+_0225BAF8: .word 0x021C48B8
+_0225BAFC: .word 0x000005DC
+_0225BB00: .word 0x000006A3
+
+ thumb_func_start MOD11_0225BB04
+MOD11_0225BB04: ; 0x0225BB04
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r1, _0225BB60 ; =0x0000069E
+ ldr r0, [r5]
+ ldrb r1, [r5, r1]
+ bl MOD11_0223022C
+ add r6, r0, #0
+ cmp r4, #3
+ bne _0225BB26
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl MOD11_02230CB8
+ cmp r0, #0
+ bne _0225BB5C
+_0225BB26:
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl MOD11_0222FF7C
+ bl MOD11_02253A74
+ mov r5, #0
+ ldr r1, _0225BB64 ; =0x0225F698
+ add r2, r5, #0
+ b _0225BB58
+_0225BB3A:
+ lsl r6, r5, #1
+ add r6, r5, r6
+ add r3, r2, #0
+ add r7, r1, r6
+ b _0225BB52
+_0225BB44:
+ ldrb r6, [r3, r7]
+ cmp r4, r6
+ bne _0225BB50
+ strb r3, [r0]
+ strb r5, [r0, #1]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225BB50:
+ add r3, r3, #1
+_0225BB52:
+ cmp r3, #3
+ blt _0225BB44
+ add r5, r5, #1
+_0225BB58:
+ cmp r5, #2
+ blt _0225BB3A
+_0225BB5C:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225BB60: .word 0x0000069E
+_0225BB64: .word 0x0225F698
+
+ thumb_func_start MOD11_0225BB68
+MOD11_0225BB68: ; 0x0225BB68
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r6, r0, #0
+ mov r0, #0x6f
+ lsl r0, r0, #4
+ add r3, r0, #0
+ sub r3, #0x51
+ ldrsb r5, [r6, r3]
+ mov r3, #0x30
+ ldr r2, _0225BC54 ; =0x0225FAAC
+ mul r3, r5
+ add r4, r6, r0
+ add r5, r2, r3
+ cmp r1, #1
+ bne _0225BBCC
+ mov r1, #0
+ strb r1, [r4, #2]
+ strb r1, [r4, #1]
+ mov r1, #1
+ ldrsb r2, [r4, r1]
+ mov r3, #2
+ ldr r1, _0225BC58 ; =0x0225F688
+ ldrsb r3, [r4, r3]
+ add r1, r1, r2
+ sub r0, r0, #4
+ ldrb r2, [r3, r1]
+ ldr r1, [r5, #0x14]
+ lsl r3, r2, #2
+ add r1, r1, r3
+ ldrb r1, [r1, #1]
+ sub r1, #8
+ str r1, [sp]
+ mov r1, #0x11
+ lsl r1, r1, #0x10
+ str r1, [sp, #4]
+ ldr r4, [r5, #0x14]
+ ldr r0, [r6, r0]
+ add r2, r4, r3
+ ldrb r1, [r2, #2]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r4, r3]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD11_0225D5FC
+ mov r0, #0
+ add sp, #8
+ mvn r0, r0
+ pop {r4, r5, r6, pc}
+_0225BBCC:
+ ldr r3, _0225BC58 ; =0x0225F688
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #2
+ bl MOD11_0225C574
+ cmp r0, #0x20
+ bhi _0225BBF2
+ bhs _0225BBFE
+ cmp r0, #2
+ bhi _0225BBEC
+ cmp r0, #1
+ blo _0225BC4A
+ beq _0225BC38
+ cmp r0, #2
+ b _0225BC4A
+_0225BBEC:
+ cmp r0, #0x10
+ beq _0225BBFE
+ b _0225BC4A
+_0225BBF2:
+ cmp r0, #0x40
+ bhi _0225BBFA
+ beq _0225BBFE
+ b _0225BC4A
+_0225BBFA:
+ cmp r0, #0x80
+ bne _0225BC4A
+_0225BBFE:
+ mov r0, #1
+ ldrsb r3, [r4, r0]
+ mov r0, #2
+ ldr r2, _0225BC58 ; =0x0225F688
+ ldrsb r1, [r4, r0]
+ add r0, r2, r3
+ ldrb r1, [r1, r0]
+ ldr r0, [r5, #0x14]
+ lsl r3, r1, #2
+ add r0, r0, r3
+ ldrb r0, [r0, #1]
+ sub r0, #8
+ str r0, [sp]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r4, [r5, #0x14]
+ ldr r0, _0225BC5C ; =0x000006EC
+ add r2, r4, r3
+ ldrb r1, [r2, #2]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r4, r3]
+ ldr r0, [r6, r0]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD11_0225D5FC
+ b _0225BC4A
+_0225BC38:
+ mov r0, #1
+ ldrsb r3, [r4, r0]
+ mov r0, #2
+ ldr r2, _0225BC58 ; =0x0225F688
+ ldrsb r1, [r4, r0]
+ add r0, r2, r3
+ add sp, #8
+ ldrb r0, [r1, r0]
+ pop {r4, r5, r6, pc}
+_0225BC4A:
+ mov r0, #0
+ mvn r0, r0
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ nop
+_0225BC54: .word 0x0225FAAC
+_0225BC58: .word 0x0225F688
+_0225BC5C: .word 0x000006EC
+
+ thumb_func_start MOD11_0225BC60
+MOD11_0225BC60: ; 0x0225BC60
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r7, r1, #0
+ add r5, r0, #0
+ ldr r1, _0225BDD0 ; =0x0000069E
+ ldr r0, [r5]
+ ldrb r1, [r5, r1]
+ bl MOD11_0223022C
+ add r1, r0, #0
+ ldr r0, [r5]
+ bl MOD11_0222FF7C
+ bl MOD11_02253A74
+ mov r1, #0x6f
+ lsl r1, r1, #4
+ add r4, r5, r1
+ sub r1, #0x51
+ ldrsb r2, [r5, r1]
+ add r3, r0, #0
+ mov r1, #0x30
+ mul r1, r2
+ ldr r0, _0225BDD4 ; =0x0225FAAC
+ add r2, r5, #0
+ add r6, r0, r1
+ add r2, #0x18
+ cmp r7, #1
+ bne _0225BD10
+ mov r0, #2
+ ldrsb r0, [r3, r0]
+ strb r0, [r4, #2]
+ mov r0, #3
+ ldrsb r0, [r3, r0]
+ strb r0, [r4, #1]
+ mov r0, #1
+ ldrsb r0, [r4, r0]
+ lsl r1, r0, #1
+ mov r0, #2
+ ldrsb r7, [r4, r0]
+ ldr r0, _0225BDD8 ; =0x0225F6A0
+ add r0, r0, r1
+ ldrb r0, [r7, r0]
+ cmp r0, #0
+ beq _0225BCDE
+ sub r1, r0, #1
+ lsl r1, r1, #1
+ ldrh r1, [r2, r1]
+ cmp r1, #0
+ bne _0225BCDE
+ mov r0, #0
+ strb r0, [r3, #2]
+ strb r0, [r3, #3]
+ strb r0, [r4, #2]
+ strb r0, [r4, #1]
+ mov r0, #1
+ ldrsb r0, [r4, r0]
+ lsl r2, r0, #1
+ mov r0, #2
+ ldrsb r1, [r4, r0]
+ ldr r0, _0225BDD8 ; =0x0225F6A0
+ add r0, r0, r2
+ ldrb r0, [r1, r0]
+_0225BCDE:
+ ldr r1, [r6, #0x14]
+ lsl r3, r0, #2
+ add r0, r1, r3
+ ldrb r0, [r0, #1]
+ sub r0, #8
+ str r0, [sp]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r4, [r6, #0x14]
+ ldr r0, _0225BDDC ; =0x000006EC
+ add r2, r4, r3
+ ldrb r1, [r2, #2]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r4, r3]
+ ldr r0, [r5, r0]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD11_0225D5FC
+ mov r0, #0
+ add sp, #0x10
+ mvn r0, r0
+ pop {r3, r4, r5, r6, r7, pc}
+_0225BD10:
+ ldr r0, _0225BDD8 ; =0x0225F6A0
+ add r1, sp, #8
+ mov r2, #6
+ bl MI_CpuCopy8
+ add r0, r4, #0
+ mov r1, #2
+ mov r2, #3
+ add r3, sp, #8
+ bl MOD11_0225C574
+ cmp r0, #0x20
+ bhi _0225BD42
+ bhs _0225BD4E
+ cmp r0, #2
+ bhi _0225BD3C
+ cmp r0, #1
+ blo _0225BDC6
+ beq _0225BD8A
+ cmp r0, #2
+ beq _0225BD9E
+ b _0225BDC6
+_0225BD3C:
+ cmp r0, #0x10
+ beq _0225BD4E
+ b _0225BDC6
+_0225BD42:
+ cmp r0, #0x40
+ bhi _0225BD4A
+ beq _0225BD4E
+ b _0225BDC6
+_0225BD4A:
+ cmp r0, #0x80
+ bne _0225BDC6
+_0225BD4E:
+ mov r0, #1
+ ldrsb r0, [r4, r0]
+ ldr r2, _0225BDD8 ; =0x0225F6A0
+ lsl r3, r0, #1
+ mov r0, #2
+ ldrsb r1, [r4, r0]
+ add r0, r2, r3
+ ldrb r1, [r1, r0]
+ ldr r0, [r6, #0x14]
+ lsl r3, r1, #2
+ add r0, r0, r3
+ ldrb r0, [r0, #1]
+ sub r0, #8
+ str r0, [sp]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r4, [r6, #0x14]
+ ldr r0, _0225BDDC ; =0x000006EC
+ add r2, r4, r3
+ ldrb r1, [r2, #2]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r4, r3]
+ ldr r0, [r5, r0]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD11_0225D5FC
+ b _0225BDC6
+_0225BD8A:
+ mov r0, #1
+ ldrsb r0, [r4, r0]
+ ldr r2, _0225BDD8 ; =0x0225F6A0
+ add sp, #0x10
+ lsl r3, r0, #1
+ mov r0, #2
+ ldrsb r1, [r4, r0]
+ add r0, r2, r3
+ ldrb r0, [r1, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225BD9E:
+ mov r0, #0
+ add r2, r0, #0
+ mov r3, #1
+ ldr r1, [r6, #0x18]
+ ldr r5, [r6, #0x14]
+ b _0225BDB4
+_0225BDAA:
+ lsl r4, r0, #2
+ ldr r4, [r1, r4]
+ cmp r4, #0xff
+ beq _0225BDCA
+ add r0, r0, #1
+_0225BDB4:
+ lsl r4, r0, #2
+ ldrb r4, [r5, r4]
+ cmp r0, r4
+ bge _0225BDC0
+ add r4, r3, #0
+ b _0225BDC2
+_0225BDC0:
+ add r4, r2, #0
+_0225BDC2:
+ cmp r4, #0xff
+ bne _0225BDAA
+_0225BDC6:
+ mov r0, #0
+ mvn r0, r0
+_0225BDCA:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225BDD0: .word 0x0000069E
+_0225BDD4: .word 0x0225FAAC
+_0225BDD8: .word 0x0225F6A0
+_0225BDDC: .word 0x000006EC
+
+ thumb_func_start MOD11_0225BDE0
+MOD11_0225BDE0: ; 0x0225BDE0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ beq _0225BE26
+ ldr r1, _0225BE28 ; =0x0000069E
+ ldr r0, [r5]
+ ldrb r1, [r5, r1]
+ bl MOD11_0223022C
+ add r1, r0, #0
+ ldr r0, [r5]
+ bl MOD11_0222FF7C
+ bl MOD11_02253A74
+ mov r3, #0
+ ldr r7, _0225BE2C ; =0x0225F6A0
+ add r1, r3, #0
+ b _0225BE22
+_0225BE06:
+ lsl r5, r3, #1
+ add r2, r1, #0
+ add r6, r7, r5
+ b _0225BE1C
+_0225BE0E:
+ ldrb r5, [r2, r6]
+ cmp r4, r5
+ bne _0225BE1A
+ strb r2, [r0, #2]
+ strb r3, [r0, #3]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225BE1A:
+ add r2, r2, #1
+_0225BE1C:
+ cmp r2, #2
+ blt _0225BE0E
+ add r3, r3, #1
+_0225BE22:
+ cmp r3, #3
+ blt _0225BE06
+_0225BE26:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225BE28: .word 0x0000069E
+_0225BE2C: .word 0x0225F6A0
+
+ thumb_func_start MOD11_0225BE30
+MOD11_0225BE30: ; 0x0225BE30
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x60
+ str r1, [sp, #0x18]
+ add r6, r0, #0
+ ldr r1, _0225C134 ; =0x0000069E
+ mov r0, #0
+ str r0, [sp, #0x44]
+ ldrb r1, [r6, r1]
+ ldr r0, [r6]
+ bl MOD11_0223022C
+ add r1, r0, #0
+ ldr r0, [r6]
+ bl MOD11_0222FF7C
+ bl MOD11_02253A74
+ mov r1, #0x6f
+ lsl r1, r1, #4
+ add r7, r6, r1
+ sub r1, #0x51
+ ldrsb r2, [r6, r1]
+ str r0, [sp, #0x1c]
+ mov r1, #0x30
+ mul r1, r2
+ ldr r0, _0225C138 ; =0x0225FAAC
+ mov r2, #6
+ add r0, r0, r1
+ str r0, [sp, #0x48]
+ ldr r0, _0225C13C ; =0x0225F690
+ add r1, sp, #0x50
+ bl MI_CpuCopy8
+ add r1, sp, #0x58
+ add r0, r6, #0
+ add r1, #2
+ mov r2, #1
+ bl MOD11_0225ACD4
+ add r1, sp, #0x54
+ add r0, r6, #0
+ add r1, #2
+ mov r2, #0
+ bl MOD11_0225ACD4
+ add r0, sp, #0x54
+ mov r2, #0
+ mov r4, #0xff
+ add r0, #2
+ b _0225BEB0
+_0225BE94:
+ lsl r5, r2, #1
+ add r1, sp, #0x50
+ mov r3, #0
+ add r1, r1, r5
+ b _0225BEAA
+_0225BE9E:
+ ldrb r5, [r3, r1]
+ ldrb r5, [r0, r5]
+ cmp r5, #0
+ bne _0225BEA8
+ strb r4, [r3, r1]
+_0225BEA8:
+ add r3, r3, #1
+_0225BEAA:
+ cmp r3, #2
+ blt _0225BE9E
+ add r2, r2, #1
+_0225BEB0:
+ cmp r2, #2
+ blt _0225BE94
+ mov r0, #0x6a
+ lsl r0, r0, #4
+ ldrb r0, [r6, r0]
+ cmp r0, #0xb
+ bhi _0225BEE2
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225BECA: ; jump table
+ .short _0225BEE2 - _0225BECA - 2 ; case 0
+ .short _0225BEEC - _0225BECA - 2 ; case 1
+ .short _0225BEEC - _0225BECA - 2 ; case 2
+ .short _0225BEEC - _0225BECA - 2 ; case 3
+ .short _0225BEE2 - _0225BECA - 2 ; case 4
+ .short _0225BEEC - _0225BECA - 2 ; case 5
+ .short _0225BEE2 - _0225BECA - 2 ; case 6
+ .short _0225BEEC - _0225BECA - 2 ; case 7
+ .short _0225BEE2 - _0225BECA - 2 ; case 8
+ .short _0225BEE2 - _0225BECA - 2 ; case 9
+ .short _0225BEE2 - _0225BECA - 2 ; case 10
+ .short _0225BEE2 - _0225BECA - 2 ; case 11
+_0225BEE2:
+ mov r0, #2
+ mov ip, r0
+ mov r0, #3
+ str r0, [sp, #0x4c]
+ b _0225C0C6
+_0225BEEC:
+ mov r0, #1
+ str r0, [sp, #0x44]
+ mov ip, r0
+ mov r0, #2
+ str r0, [sp, #0x4c]
+ add r0, sp, #0x50
+ ldrb r1, [r0, #9]
+ cmp r1, #1
+ bne _0225BF26
+ ldrb r0, [r0, #7]
+ cmp r0, #1
+ bne _0225BF26
+ ldr r0, [sp, #0x48]
+ ldr r1, [r0, #0x14]
+ ldrb r0, [r1, #0xe]
+ ldrb r2, [r1, #0xd]
+ str r0, [sp, #0x34]
+ add r0, #8
+ str r0, [sp, #0x34]
+ ldrb r0, [r1, #7]
+ sub r2, #8
+ str r0, [sp, #0x30]
+ sub r0, #8
+ str r0, [sp, #0x30]
+ ldrb r0, [r1, #0xc]
+ str r0, [sp, #0x38]
+ add r0, #8
+ str r0, [sp, #0x38]
+ b _0225BF92
+_0225BF26:
+ add r0, sp, #0x50
+ ldrb r1, [r0, #9]
+ cmp r1, #1
+ bne _0225BF56
+ ldrb r0, [r0, #7]
+ cmp r0, #0
+ bne _0225BF56
+ ldr r0, [sp, #0x48]
+ ldr r1, [r0, #0x14]
+ ldrb r0, [r1, #0xe]
+ ldrb r2, [r1, #0xd]
+ str r0, [sp, #0x34]
+ add r0, #8
+ str r0, [sp, #0x34]
+ ldrb r0, [r1, #0xf]
+ sub r2, #8
+ str r0, [sp, #0x30]
+ sub r0, #8
+ str r0, [sp, #0x30]
+ ldrb r0, [r1, #0xc]
+ str r0, [sp, #0x38]
+ add r0, #8
+ str r0, [sp, #0x38]
+ b _0225BF92
+_0225BF56:
+ add r0, sp, #0x50
+ ldrb r1, [r0, #9]
+ cmp r1, #0
+ bne _0225BF86
+ ldrb r0, [r0, #7]
+ cmp r0, #1
+ bne _0225BF86
+ ldr r0, [sp, #0x48]
+ ldr r1, [r0, #0x14]
+ ldrb r0, [r1, #6]
+ ldrb r2, [r1, #5]
+ str r0, [sp, #0x34]
+ add r0, #8
+ str r0, [sp, #0x34]
+ ldrb r0, [r1, #7]
+ sub r2, #8
+ str r0, [sp, #0x30]
+ sub r0, #8
+ str r0, [sp, #0x30]
+ ldrb r0, [r1, #4]
+ str r0, [sp, #0x38]
+ add r0, #8
+ str r0, [sp, #0x38]
+ b _0225BF92
+_0225BF86:
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #0x34]
+ str r0, [sp, #0x30]
+ str r0, [sp, #0x38]
+ add r2, r0, #0
+_0225BF92:
+ add r0, sp, #0x50
+ ldrb r1, [r0, #6]
+ cmp r1, #1
+ bne _0225BFBA
+ ldrb r0, [r0, #8]
+ cmp r0, #1
+ bne _0225BFBA
+ ldr r0, [sp, #0x48]
+ ldr r0, [r0, #0x14]
+ ldrb r3, [r0, #2]
+ ldrb r4, [r0, #0xb]
+ ldrb r5, [r0]
+ ldrb r0, [r0, #1]
+ add r3, #8
+ sub r4, #8
+ str r0, [sp, #0x2c]
+ sub r0, #8
+ add r5, #8
+ str r0, [sp, #0x2c]
+ b _0225C014
+_0225BFBA:
+ add r0, sp, #0x50
+ ldrb r1, [r0, #6]
+ cmp r1, #1
+ bne _0225BFE2
+ ldrb r0, [r0, #8]
+ cmp r0, #0
+ bne _0225BFE2
+ ldr r0, [sp, #0x48]
+ ldr r0, [r0, #0x14]
+ ldrb r3, [r0, #2]
+ ldrb r4, [r0, #3]
+ ldrb r5, [r0]
+ ldrb r0, [r0, #1]
+ add r3, #8
+ sub r4, #8
+ str r0, [sp, #0x2c]
+ sub r0, #8
+ add r5, #8
+ str r0, [sp, #0x2c]
+ b _0225C014
+_0225BFE2:
+ add r0, sp, #0x50
+ ldrb r1, [r0, #6]
+ cmp r1, #0
+ bne _0225C00A
+ ldrb r0, [r0, #8]
+ cmp r0, #1
+ bne _0225C00A
+ ldr r0, [sp, #0x48]
+ ldr r0, [r0, #0x14]
+ ldrb r3, [r0, #0xa]
+ ldrb r4, [r0, #0xb]
+ ldrb r5, [r0, #8]
+ ldrb r0, [r0, #9]
+ add r3, #8
+ sub r4, #8
+ str r0, [sp, #0x2c]
+ sub r0, #8
+ add r5, #8
+ str r0, [sp, #0x2c]
+ b _0225C014
+_0225C00A:
+ mov r3, #0
+ mvn r3, r3
+ add r4, r3, #0
+ add r5, r3, #0
+ str r3, [sp, #0x2c]
+_0225C014:
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #0x40]
+ str r0, [sp, #0x3c]
+ str r0, [sp, #0x28]
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x34]
+ cmp r0, r3
+ beq _0225C04A
+ add r1, r0, #0
+ ldr r0, [sp, #0x40]
+ cmp r1, r0
+ beq _0225C032
+ cmp r3, r0
+ beq _0225C04A
+_0225C032:
+ mov r1, #0
+ ldr r0, [sp, #0x34]
+ mvn r1, r1
+ cmp r0, r1
+ bne _0225C044
+ cmp r3, r1
+ beq _0225C044
+ str r3, [sp, #0x34]
+ b _0225C04A
+_0225C044:
+ mov r0, #2
+ str r3, [sp, #0x40]
+ str r0, [sp, #0x20]
+_0225C04A:
+ ldr r0, [sp, #0x30]
+ cmp r0, r4
+ beq _0225C074
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _0225C05C
+ cmp r4, r1
+ beq _0225C074
+_0225C05C:
+ mov r1, #0
+ ldr r0, [sp, #0x30]
+ mvn r1, r1
+ cmp r0, r1
+ bne _0225C06E
+ cmp r4, r1
+ beq _0225C06E
+ str r4, [sp, #0x30]
+ b _0225C074
+_0225C06E:
+ mov r0, #3
+ str r4, [sp, #0x40]
+ str r0, [sp, #0x20]
+_0225C074:
+ mov r1, #0
+ ldr r0, [sp, #0x38]
+ mvn r1, r1
+ cmp r0, r1
+ beq _0225C082
+ cmp r5, r1
+ beq _0225C096
+_0225C082:
+ mov r1, #0
+ ldr r0, [sp, #0x38]
+ mvn r1, r1
+ cmp r0, r1
+ bne _0225C094
+ cmp r5, r1
+ beq _0225C094
+ str r5, [sp, #0x38]
+ b _0225C096
+_0225C094:
+ str r2, [sp, #0x3c]
+_0225C096:
+ mov r1, #0
+ mvn r1, r1
+ cmp r2, r1
+ beq _0225C0A8
+ ldr r0, [sp, #0x2c]
+ cmp r0, r1
+ bne _0225C0A8
+ str r2, [sp, #0x2c]
+ b _0225C0C6
+_0225C0A8:
+ mov r1, #0
+ mvn r1, r1
+ cmp r2, r1
+ bne _0225C0B6
+ ldr r0, [sp, #0x2c]
+ cmp r0, r1
+ bne _0225C0C6
+_0225C0B6:
+ ldr r0, [sp, #0x2c]
+ str r0, [sp, #0x3c]
+ ldr r0, [sp, #0x20]
+ cmp r0, #2
+ bne _0225C0C4
+ str r2, [sp, #0x24]
+ b _0225C0C6
+_0225C0C4:
+ str r2, [sp, #0x28]
+_0225C0C6:
+ ldr r0, [sp, #0x18]
+ cmp r0, #1
+ beq _0225C0CE
+ b _0225C236
+_0225C0CE:
+ ldr r0, [sp, #0x44]
+ cmp r0, #0
+ bne _0225C17A
+ ldr r0, [sp, #0x1c]
+ mov r1, #6
+ ldrsb r1, [r0, r1]
+ mov r0, #0x6a
+ lsl r0, r0, #4
+ ldrb r0, [r6, r0]
+ cmp r1, r0
+ bne _0225C0F6
+ ldr r0, [sp, #0x1c]
+ mov r1, #4
+ ldrsb r0, [r0, r1]
+ mov r1, #5
+ strb r0, [r7, #2]
+ ldr r0, [sp, #0x1c]
+ ldrsb r0, [r0, r1]
+ strb r0, [r7, #1]
+ b _0225C12C
+_0225C0F6:
+ add r0, sp, #0x50
+ ldrb r1, [r0, #0xd]
+ cmp r1, #1
+ bne _0225C106
+ mov r0, #0
+ strb r0, [r7, #2]
+ strb r0, [r7, #1]
+ b _0225C12C
+_0225C106:
+ ldrb r1, [r0, #0xb]
+ cmp r1, #1
+ bne _0225C116
+ mov r0, #1
+ strb r0, [r7, #2]
+ mov r0, #0
+ strb r0, [r7, #1]
+ b _0225C12C
+_0225C116:
+ ldrb r0, [r0, #0xa]
+ cmp r0, #1
+ bne _0225C126
+ mov r0, #0
+ strb r0, [r7, #2]
+ mov r0, #1
+ strb r0, [r7, #1]
+ b _0225C12C
+_0225C126:
+ mov r0, #1
+ strb r0, [r7, #2]
+ strb r0, [r7, #1]
+_0225C12C:
+ mov r0, #1
+ ldrsb r0, [r7, r0]
+ ldr r2, _0225C13C ; =0x0225F690
+ b _0225C140
+ .align 2, 0
+_0225C134: .word 0x0000069E
+_0225C138: .word 0x0225FAAC
+_0225C13C: .word 0x0225F690
+_0225C140:
+ lsl r3, r0, #1
+ mov r0, #2
+ ldrsb r1, [r7, r0]
+ add r0, r2, r3
+ ldrb r1, [r1, r0]
+ ldr r0, [sp, #0x48]
+ lsl r3, r1, #2
+ ldr r0, [r0, #0x14]
+ ldr r1, [sp, #0x48]
+ add r0, r0, r3
+ ldrb r0, [r0, #1]
+ sub r0, #8
+ str r0, [sp]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r4, [r1, #0x14]
+ ldr r0, _0225C418 ; =0x000006EC
+ add r2, r4, r3
+ ldrb r1, [r2, #2]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r4, r3]
+ ldr r0, [r6, r0]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD11_0225D5FC
+ b _0225C22E
+_0225C17A:
+ mov r2, #0
+ strb r2, [r7, #2]
+ ldr r0, [sp, #0x24]
+ sub r1, r2, #1
+ strb r2, [r7, #1]
+ cmp r0, r1
+ bne _0225C18E
+ ldr r0, [sp, #0x28]
+ cmp r0, r1
+ beq _0225C198
+_0225C18E:
+ mov r1, #0
+ ldr r0, [sp, #0x40]
+ mvn r1, r1
+ cmp r0, r1
+ bne _0225C1B2
+_0225C198:
+ ldr r0, [sp, #0x2c]
+ ldr r1, [sp, #0x34]
+ str r0, [sp]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, _0225C418 ; =0x000006EC
+ ldr r2, [sp, #0x30]
+ ldr r0, [r6, r0]
+ ldr r3, [sp, #0x38]
+ bl MOD11_0225D5FC
+ b _0225C210
+_0225C1B2:
+ ldr r0, [sp, #0x24]
+ cmp r0, r1
+ beq _0225C1E8
+ ldr r0, [sp, #0x28]
+ cmp r0, r1
+ bne _0225C1E8
+ ldr r0, [sp, #0x38]
+ ldr r1, [sp, #0x34]
+ str r0, [sp]
+ ldr r0, [sp, #0x34]
+ ldr r2, [sp, #0x38]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x24]
+ ldr r3, [sp, #0x30]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x30]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x2c]
+ str r0, [sp, #0x10]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x14]
+ ldr r0, _0225C418 ; =0x000006EC
+ ldr r0, [r6, r0]
+ bl MOD11_0225D52C
+ b _0225C210
+_0225C1E8:
+ ldr r0, [sp, #0x38]
+ ldr r1, [sp, #0x34]
+ str r0, [sp]
+ ldr r0, [sp, #0x34]
+ ldr r2, [sp, #0x38]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x2c]
+ ldr r3, [sp, #0x30]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x30]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x28]
+ str r0, [sp, #0x10]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x14]
+ ldr r0, _0225C418 ; =0x000006EC
+ ldr r0, [r6, r0]
+ bl MOD11_0225D52C
+_0225C210:
+ mov r1, #0
+ ldr r0, [sp, #0x40]
+ mvn r1, r1
+ cmp r0, r1
+ beq _0225C22E
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, _0225C418 ; =0x000006EC
+ ldr r1, [sp, #0x40]
+ ldr r0, [r6, r0]
+ ldr r2, [sp, #0x3c]
+ ldr r3, [sp, #0x20]
+ bl MOD11_0225D620
+_0225C22E:
+ mov r0, #0
+ add sp, #0x60
+ mvn r0, r0
+ pop {r3, r4, r5, r6, r7, pc}
+_0225C236:
+ ldr r0, [sp, #0x44]
+ cmp r0, #0
+ bne _0225C24A
+ ldr r2, [sp, #0x4c]
+ add r0, r7, #0
+ mov r1, ip
+ add r3, sp, #0x50
+ bl MOD11_0225C574
+ b _0225C256
+_0225C24A:
+ ldr r2, [sp, #0x4c]
+ add r0, r7, #0
+ mov r1, ip
+ mov r3, #0
+ bl MOD11_0225C574
+_0225C256:
+ cmp r0, #0x20
+ bhi _0225C276
+ bhs _0225C284
+ cmp r0, #2
+ bhi _0225C270
+ cmp r0, #1
+ blo _0225C26E
+ bne _0225C268
+ b _0225C3BE
+_0225C268:
+ cmp r0, #2
+ bne _0225C26E
+ b _0225C40A
+_0225C26E:
+ b _0225C410
+_0225C270:
+ cmp r0, #0x10
+ beq _0225C284
+ b _0225C410
+_0225C276:
+ cmp r0, #0x40
+ bhi _0225C27E
+ beq _0225C284
+ b _0225C410
+_0225C27E:
+ cmp r0, #0x80
+ beq _0225C284
+ b _0225C410
+_0225C284:
+ ldr r0, [sp, #0x44]
+ cmp r0, #0
+ bne _0225C2CA
+ mov r0, #1
+ ldrsb r0, [r7, r0]
+ ldr r2, _0225C41C ; =0x0225F690
+ lsl r3, r0, #1
+ mov r0, #2
+ ldrsb r1, [r7, r0]
+ add r0, r2, r3
+ ldrb r1, [r1, r0]
+ ldr r0, [sp, #0x48]
+ lsl r3, r1, #2
+ ldr r0, [r0, #0x14]
+ ldr r1, [sp, #0x48]
+ add r0, r0, r3
+ ldrb r0, [r0, #1]
+ sub r0, #8
+ str r0, [sp]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r4, [r1, #0x14]
+ ldr r0, _0225C418 ; =0x000006EC
+ add r2, r4, r3
+ ldrb r1, [r2, #2]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r4, r3]
+ ldr r0, [r6, r0]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD11_0225D5FC
+ b _0225C410
+_0225C2CA:
+ mov r2, #1
+ ldrsb r0, [r7, r2]
+ cmp r0, #0
+ bne _0225C38C
+ ldr r0, [sp, #0x28]
+ sub r1, r2, #2
+ cmp r0, r1
+ bne _0225C2E0
+ ldr r0, [sp, #0x24]
+ cmp r0, r1
+ beq _0225C2EA
+_0225C2E0:
+ mov r1, #0
+ ldr r0, [sp, #0x40]
+ mvn r1, r1
+ cmp r0, r1
+ bne _0225C304
+_0225C2EA:
+ ldr r0, [sp, #0x2c]
+ ldr r1, [sp, #0x34]
+ str r0, [sp]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, _0225C418 ; =0x000006EC
+ ldr r2, [sp, #0x30]
+ ldr r0, [r6, r0]
+ ldr r3, [sp, #0x38]
+ bl MOD11_0225D5FC
+ b _0225C362
+_0225C304:
+ ldr r0, [sp, #0x24]
+ cmp r0, r1
+ beq _0225C33A
+ ldr r0, [sp, #0x28]
+ cmp r0, r1
+ bne _0225C33A
+ ldr r0, [sp, #0x38]
+ ldr r1, [sp, #0x34]
+ str r0, [sp]
+ ldr r0, [sp, #0x34]
+ ldr r2, [sp, #0x38]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x24]
+ ldr r3, [sp, #0x30]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x30]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x2c]
+ str r0, [sp, #0x10]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x14]
+ ldr r0, _0225C418 ; =0x000006EC
+ ldr r0, [r6, r0]
+ bl MOD11_0225D52C
+ b _0225C362
+_0225C33A:
+ ldr r0, [sp, #0x38]
+ ldr r1, [sp, #0x34]
+ str r0, [sp]
+ ldr r0, [sp, #0x34]
+ ldr r2, [sp, #0x38]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x2c]
+ ldr r3, [sp, #0x30]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x30]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x28]
+ str r0, [sp, #0x10]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x14]
+ ldr r0, _0225C418 ; =0x000006EC
+ ldr r0, [r6, r0]
+ bl MOD11_0225D52C
+_0225C362:
+ mov r1, #0
+ ldr r0, [sp, #0x40]
+ mvn r1, r1
+ cmp r0, r1
+ beq _0225C382
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, _0225C418 ; =0x000006EC
+ ldr r1, [sp, #0x40]
+ ldr r0, [r6, r0]
+ ldr r2, [sp, #0x3c]
+ ldr r3, [sp, #0x20]
+ bl MOD11_0225D620
+ b _0225C410
+_0225C382:
+ ldr r0, _0225C418 ; =0x000006EC
+ ldr r0, [r6, r0]
+ bl MOD11_0225D664
+ b _0225C410
+_0225C38C:
+ ldr r0, [sp, #0x48]
+ ldr r1, [sp, #0x48]
+ ldr r0, [r0, #0x14]
+ ldrb r0, [r0, #0x11]
+ sub r0, #8
+ str r0, [sp]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r3, [r1, #0x14]
+ ldr r0, _0225C418 ; =0x000006EC
+ ldrb r1, [r3, #0x12]
+ ldrb r2, [r3, #0x13]
+ ldrb r3, [r3, #0x10]
+ ldr r0, [r6, r0]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD11_0225D5FC
+ ldr r0, _0225C418 ; =0x000006EC
+ ldr r0, [r6, r0]
+ bl MOD11_0225D664
+ b _0225C410
+_0225C3BE:
+ ldr r0, [sp, #0x44]
+ cmp r0, #1
+ bne _0225C3E8
+ mov r0, #1
+ ldrsb r0, [r7, r0]
+ cmp r0, #0
+ ble _0225C3D2
+ add sp, #0x60
+ mov r0, #4
+ pop {r3, r4, r5, r6, r7, pc}
+_0225C3D2:
+ add r2, sp, #0x58
+ mov r0, #0
+ add r2, #2
+ b _0225C3E2
+_0225C3DA:
+ ldrb r1, [r2, r0]
+ cmp r1, #1
+ beq _0225C414
+ add r0, r0, #1
+_0225C3E2:
+ cmp r0, #4
+ blt _0225C3DA
+ b _0225C410
+_0225C3E8:
+ mov r0, #1
+ ldrsb r0, [r7, r0]
+ ldr r2, _0225C41C ; =0x0225F690
+ lsl r3, r0, #1
+ mov r0, #2
+ ldrsb r1, [r7, r0]
+ add r0, r2, r3
+ ldrb r0, [r1, r0]
+ cmp r0, #4
+ beq _0225C414
+ add r1, sp, #0x58
+ add r1, #2
+ ldrb r1, [r1, r0]
+ cmp r1, #1
+ bne _0225C410
+ add sp, #0x60
+ pop {r3, r4, r5, r6, r7, pc}
+_0225C40A:
+ add sp, #0x60
+ mov r0, #4
+ pop {r3, r4, r5, r6, r7, pc}
+_0225C410:
+ mov r0, #0
+ mvn r0, r0
+_0225C414:
+ add sp, #0x60
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225C418: .word 0x000006EC
+_0225C41C: .word 0x0225F690
+
+ thumb_func_start MOD11_0225C420
+MOD11_0225C420: ; 0x0225C420
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ cmp r4, #4
+ beq _0225C470
+ ldr r1, _0225C474 ; =0x0000069E
+ ldr r0, [r5]
+ ldrb r1, [r5, r1]
+ bl MOD11_0223022C
+ add r1, r0, #0
+ ldr r0, [r5]
+ bl MOD11_0222FF7C
+ bl MOD11_02253A74
+ mov r1, #0x6a
+ lsl r1, r1, #4
+ ldrb r1, [r5, r1]
+ mov r3, #0
+ ldr r7, _0225C478 ; =0x0225F690
+ strb r1, [r0, #6]
+ add r1, r3, #0
+ b _0225C46C
+_0225C450:
+ lsl r5, r3, #1
+ add r2, r1, #0
+ add r6, r7, r5
+ b _0225C466
+_0225C458:
+ ldrb r5, [r2, r6]
+ cmp r4, r5
+ bne _0225C464
+ strb r2, [r0, #4]
+ strb r3, [r0, #5]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225C464:
+ add r2, r2, #1
+_0225C466:
+ cmp r2, #2
+ blt _0225C458
+ add r3, r3, #1
+_0225C46C:
+ cmp r3, #3
+ blt _0225C450
+_0225C470:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225C474: .word 0x0000069E
+_0225C478: .word 0x0225F690
+
+ thumb_func_start MOD11_0225C47C
+MOD11_0225C47C: ; 0x0225C47C
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r6, r0, #0
+ mov r0, #0x6f
+ lsl r0, r0, #4
+ add r3, r0, #0
+ sub r3, #0x51
+ ldrsb r5, [r6, r3]
+ mov r3, #0x30
+ ldr r2, _0225C568 ; =0x0225FAAC
+ mul r3, r5
+ add r4, r6, r0
+ add r5, r2, r3
+ cmp r1, #1
+ bne _0225C4DA
+ mov r1, #1
+ ldrsb r2, [r4, r1]
+ mov r3, #2
+ ldr r1, _0225C56C ; =0x0225F684
+ ldrsb r3, [r4, r3]
+ add r1, r1, r2
+ sub r0, r0, #4
+ ldrb r2, [r3, r1]
+ ldr r1, [r5, #0x14]
+ lsl r3, r2, #2
+ add r1, r1, r3
+ ldrb r1, [r1, #1]
+ sub r1, #8
+ str r1, [sp]
+ mov r1, #0x11
+ lsl r1, r1, #0x10
+ str r1, [sp, #4]
+ ldr r4, [r5, #0x14]
+ ldr r0, [r6, r0]
+ add r2, r4, r3
+ ldrb r1, [r2, #2]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r4, r3]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD11_0225D5FC
+ mov r0, #0
+ add sp, #8
+ mvn r0, r0
+ pop {r4, r5, r6, pc}
+_0225C4DA:
+ ldr r3, _0225C56C ; =0x0225F684
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #2
+ bl MOD11_0225C574
+ cmp r0, #0x20
+ bhi _0225C502
+ bhs _0225C50E
+ cmp r0, #2
+ bhi _0225C4FC
+ cmp r0, #1
+ blo _0225C560
+ beq _0225C548
+ cmp r0, #2
+ beq _0225C55A
+ b _0225C560
+_0225C4FC:
+ cmp r0, #0x10
+ beq _0225C50E
+ b _0225C560
+_0225C502:
+ cmp r0, #0x40
+ bhi _0225C50A
+ beq _0225C50E
+ b _0225C560
+_0225C50A:
+ cmp r0, #0x80
+ bne _0225C560
+_0225C50E:
+ mov r0, #1
+ ldrsb r3, [r4, r0]
+ mov r0, #2
+ ldr r2, _0225C56C ; =0x0225F684
+ ldrsb r1, [r4, r0]
+ add r0, r2, r3
+ ldrb r1, [r1, r0]
+ ldr r0, [r5, #0x14]
+ lsl r3, r1, #2
+ add r0, r0, r3
+ ldrb r0, [r0, #1]
+ sub r0, #8
+ str r0, [sp]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r4, [r5, #0x14]
+ ldr r0, _0225C570 ; =0x000006EC
+ add r2, r4, r3
+ ldrb r1, [r2, #2]
+ ldrb r2, [r2, #3]
+ ldrb r3, [r4, r3]
+ ldr r0, [r6, r0]
+ add r1, #8
+ sub r2, #8
+ add r3, #8
+ bl MOD11_0225D5FC
+ b _0225C560
+_0225C548:
+ mov r0, #1
+ ldrsb r3, [r4, r0]
+ mov r0, #2
+ ldr r2, _0225C56C ; =0x0225F684
+ ldrsb r1, [r4, r0]
+ add r0, r2, r3
+ add sp, #8
+ ldrb r0, [r1, r0]
+ pop {r4, r5, r6, pc}
+_0225C55A:
+ add sp, #8
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_0225C560:
+ mov r0, #0
+ mvn r0, r0
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0225C568: .word 0x0225FAAC
+_0225C56C: .word 0x0225F684
+_0225C570: .word 0x000006EC
+
+ thumb_func_start MOD11_0225C574
+MOD11_0225C574: ; 0x0225C574
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ mov r1, #2
+ ldrsb r1, [r0, r1]
+ add r6, r2, #0
+ add r2, r3, #0
+ cmp r1, r4
+ blt _0225C588
+ sub r1, r4, #1
+ strb r1, [r0, #2]
+_0225C588:
+ mov r1, #1
+ ldrsb r1, [r0, r1]
+ cmp r1, r6
+ blt _0225C594
+ sub r1, r6, #1
+ strb r1, [r0, #1]
+_0225C594:
+ mov r7, #2
+ ldrsb r1, [r0, r7]
+ mov r5, #1
+ mov r3, #0x40
+ str r1, [sp]
+ ldrsb r1, [r0, r5]
+ mov ip, r1
+ ldr r1, _0225C764 ; =0x021C48B8
+ ldr r1, [r1, #0x48]
+ tst r3, r1
+ beq _0225C5FA
+ mov r1, ip
+ sub r1, r1, #1
+ strb r1, [r0, #1]
+ ldrsb r1, [r0, r5]
+ cmp r1, #0
+ bge _0225C5BA
+ mov r1, #0
+ strb r1, [r0, #1]
+_0225C5BA:
+ cmp r2, #0
+ beq _0225C5F6
+ mov r3, #1
+ mov r1, #2
+ ldrsb r3, [r0, r3]
+ ldrsb r1, [r0, r1]
+ mul r3, r4
+ add r1, r1, r3
+ ldrb r1, [r2, r1]
+ cmp r1, #0xff
+ bne _0225C5F6
+ add r1, r0, #1
+ mov r7, #0
+ mov r6, #1
+_0225C5D6:
+ ldrsb r3, [r1, r7]
+ sub r3, r3, #1
+ strb r3, [r1]
+ ldrsb r3, [r0, r6]
+ cmp r3, #0
+ bge _0225C5E8
+ mov r1, ip
+ strb r1, [r0, #1]
+ b _0225C5F6
+_0225C5E8:
+ mov r5, #2
+ ldrsb r5, [r0, r5]
+ mul r3, r4
+ add r5, r2, r5
+ ldrb r3, [r3, r5]
+ cmp r3, #0xff
+ beq _0225C5D6
+_0225C5F6:
+ mov r5, #0x40
+ b _0225C70E
+_0225C5FA:
+ mov r3, #0x80
+ tst r3, r1
+ beq _0225C650
+ mov r1, ip
+ add r1, r1, #1
+ strb r1, [r0, #1]
+ ldrsb r1, [r0, r5]
+ cmp r1, r6
+ blt _0225C610
+ sub r1, r6, #1
+ strb r1, [r0, #1]
+_0225C610:
+ cmp r2, #0
+ beq _0225C64C
+ mov r3, #1
+ mov r1, #2
+ ldrsb r3, [r0, r3]
+ ldrsb r1, [r0, r1]
+ mul r3, r4
+ add r1, r1, r3
+ ldrb r1, [r2, r1]
+ cmp r1, #0xff
+ bne _0225C64C
+ add r1, r0, #1
+ mov r7, #1
+_0225C62A:
+ mov r3, #0
+ ldrsb r3, [r1, r3]
+ add r3, r3, #1
+ strb r3, [r1]
+ ldrsb r3, [r0, r7]
+ cmp r3, r6
+ blt _0225C63E
+ mov r1, ip
+ strb r1, [r0, #1]
+ b _0225C64C
+_0225C63E:
+ mov r5, #2
+ ldrsb r5, [r0, r5]
+ mul r3, r4
+ add r5, r2, r5
+ ldrb r3, [r3, r5]
+ cmp r3, #0xff
+ beq _0225C62A
+_0225C64C:
+ mov r5, #0x80
+ b _0225C70E
+_0225C650:
+ mov r3, #0x20
+ tst r3, r1
+ beq _0225C6A6
+ ldr r1, [sp]
+ sub r1, r1, #1
+ strb r1, [r0, #2]
+ ldrsb r1, [r0, r7]
+ cmp r1, #0
+ bge _0225C666
+ mov r1, #0
+ strb r1, [r0, #2]
+_0225C666:
+ cmp r2, #0
+ beq _0225C6A2
+ mov r3, #1
+ mov r1, #2
+ ldrsb r3, [r0, r3]
+ ldrsb r1, [r0, r1]
+ mul r3, r4
+ add r1, r1, r3
+ ldrb r1, [r2, r1]
+ cmp r1, #0xff
+ bne _0225C6A2
+ add r5, r0, #2
+ mov r7, #0
+ mov r6, #2
+_0225C682:
+ ldrsb r1, [r5, r7]
+ sub r1, r1, #1
+ strb r1, [r5]
+ ldrsb r3, [r0, r6]
+ cmp r3, #0
+ bge _0225C694
+ ldr r1, [sp]
+ strb r1, [r0, #2]
+ b _0225C6A2
+_0225C694:
+ mov r1, #1
+ ldrsb r1, [r0, r1]
+ add r3, r2, r3
+ mul r1, r4
+ ldrb r1, [r1, r3]
+ cmp r1, #0xff
+ beq _0225C682
+_0225C6A2:
+ mov r5, #0x20
+ b _0225C70E
+_0225C6A6:
+ mov r3, #0x10
+ tst r3, r1
+ beq _0225C6FC
+ ldr r1, [sp]
+ add r1, r1, #1
+ strb r1, [r0, #2]
+ ldrsb r1, [r0, r7]
+ cmp r1, r4
+ blt _0225C6BC
+ sub r1, r4, #1
+ strb r1, [r0, #2]
+_0225C6BC:
+ cmp r2, #0
+ beq _0225C6F8
+ mov r3, #1
+ mov r1, #2
+ ldrsb r3, [r0, r3]
+ ldrsb r1, [r0, r1]
+ mul r3, r4
+ add r1, r1, r3
+ ldrb r1, [r2, r1]
+ cmp r1, #0xff
+ bne _0225C6F8
+ add r5, r0, #2
+ mov r7, #0
+ mov r6, #2
+_0225C6D8:
+ ldrsb r1, [r5, r7]
+ add r1, r1, #1
+ strb r1, [r5]
+ ldrsb r3, [r0, r6]
+ cmp r3, r4
+ blt _0225C6EA
+ ldr r1, [sp]
+ strb r1, [r0, #2]
+ b _0225C6F8
+_0225C6EA:
+ mov r1, #1
+ ldrsb r1, [r0, r1]
+ add r3, r2, r3
+ mul r1, r4
+ ldrb r1, [r1, r3]
+ cmp r1, #0xff
+ beq _0225C6D8
+_0225C6F8:
+ mov r5, #0x10
+ b _0225C70E
+_0225C6FC:
+ add r3, r1, #0
+ tst r3, r5
+ bne _0225C70E
+ tst r1, r7
+ beq _0225C70A
+ add r5, r7, #0
+ b _0225C70E
+_0225C70A:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0225C70E:
+ cmp r2, #0
+ beq _0225C738
+ mov r1, ip
+ add r3, r4, #0
+ mul r3, r1
+ ldr r1, [sp]
+ add r1, r1, r3
+ mov r3, #2
+ ldrsb r6, [r0, r3]
+ mov r3, #1
+ ldrsb r3, [r0, r3]
+ ldrb r1, [r2, r1]
+ mul r3, r4
+ add r3, r6, r3
+ ldrb r2, [r2, r3]
+ cmp r1, r2
+ bne _0225C738
+ ldr r1, [sp]
+ strb r1, [r0, #2]
+ mov r1, ip
+ strb r1, [r0, #1]
+_0225C738:
+ mov r1, #2
+ ldrsb r2, [r0, r1]
+ ldr r1, [sp]
+ cmp r2, r1
+ bne _0225C74C
+ mov r1, #1
+ ldrsb r1, [r0, r1]
+ mov r0, ip
+ cmp r1, r0
+ beq _0225C754
+_0225C74C:
+ ldr r0, _0225C768 ; =0x000005DC
+ bl FUN_020054C8
+ b _0225C75E
+_0225C754:
+ mov r0, #0xf0
+ tst r0, r5
+ beq _0225C75E
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0225C75E:
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225C764: .word 0x021C48B8
+_0225C768: .word 0x000005DC
+
+ thumb_func_start MOD11_0225C76C
+MOD11_0225C76C: ; 0x0225C76C
+ ldr r1, _0225C774 ; =0x000006F4
+ ldrb r0, [r0, r1]
+ bx lr
+ nop
+_0225C774: .word 0x000006F4
+
+ thumb_func_start MOD11_0225C778
+MOD11_0225C778: ; 0x0225C778
+ ldr r2, _0225C780 ; =0x000006F4
+ strb r1, [r0, r2]
+ bx lr
+ nop
+_0225C780: .word 0x000006F4
+
+ thumb_func_start MOD11_0225C784
+MOD11_0225C784: ; 0x0225C784
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl MOD11_02230078
+ ldr r0, [r4]
+ bl MOD11_02230080
+ ldr r0, [r4]
+ bl MOD11_022300CC
+ ldr r0, [r4]
+ bl MOD11_02231268
+ cmp r0, #0
+ bne _0225C7C0
+ ldr r0, _0225C7E4 ; =0x000006FC
+ ldrb r0, [r4, r0]
+ cmp r0, #2
+ blo _0225C7B0
+ bl ErrorHandling
+_0225C7B0:
+ ldr r1, _0225C7E4 ; =0x000006FC
+ add r0, r4, #0
+ ldrb r1, [r4, r1]
+ lsl r2, r1, #2
+ ldr r1, _0225C7E8 ; =0x0225F6B8
+ ldr r1, [r1, r2]
+ blx r1
+ b _0225C7C6
+_0225C7C0:
+ add r0, r4, #0
+ bl MOD11_0225C8A0
+_0225C7C6:
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _0225C7E2
+ ldr r1, _0225C7EC ; =0x000006FD
+ mov r3, #0
+ strb r3, [r4, r1]
+ add r2, r1, #1
+ strb r3, [r4, r2]
+ sub r2, r1, #1
+ ldrb r2, [r4, r2]
+ sub r1, r1, #1
+ add r2, r2, #1
+ strb r2, [r4, r1]
+_0225C7E2:
+ pop {r4, pc}
+ .align 2, 0
+_0225C7E4: .word 0x000006FC
+_0225C7E8: .word 0x0225F6B8
+_0225C7EC: .word 0x000006FD
+
+ thumb_func_start MOD11_0225C7F0
+MOD11_0225C7F0: ; 0x0225C7F0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0225C840 ; =0x000006FD
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ bne _0225C820
+ sub r0, r0, #5
+ mov r3, #0x11
+ ldr r0, [r4, r0]
+ mov r1, #0x80
+ mov r2, #0x3c
+ lsl r3, r3, #0x10
+ bl MOD11_0225D7D0
+ ldr r0, _0225C844 ; =0x000006F8
+ mov r1, #0x3c
+ ldr r0, [r4, r0]
+ bl MOD11_0225D820
+ ldr r0, _0225C840 ; =0x000006FD
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0225C838
+_0225C820:
+ sub r0, r0, #5
+ ldr r0, [r4, r0]
+ bl MOD11_0225D824
+ cmp r0, #1
+ bne _0225C838
+ ldr r0, _0225C840 ; =0x000006FD
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ mov r0, #0
+ pop {r4, pc}
+_0225C838:
+ mov r0, #0
+ mvn r0, r0
+ pop {r4, pc}
+ nop
+_0225C840: .word 0x000006FD
+_0225C844: .word 0x000006F8
+
+ thumb_func_start MOD11_0225C848
+MOD11_0225C848: ; 0x0225C848
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0225C898 ; =0x000006FD
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ bne _0225C878
+ sub r0, r0, #5
+ mov r3, #0x11
+ ldr r0, [r4, r0]
+ mov r1, #0x40
+ mov r2, #0x16
+ lsl r3, r3, #0x10
+ bl MOD11_0225D7D0
+ ldr r0, _0225C89C ; =0x000006F8
+ mov r1, #0x3c
+ ldr r0, [r4, r0]
+ bl MOD11_0225D820
+ ldr r0, _0225C898 ; =0x000006FD
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0225C890
+_0225C878:
+ sub r0, r0, #5
+ ldr r0, [r4, r0]
+ bl MOD11_0225D824
+ cmp r0, #1
+ bne _0225C890
+ ldr r0, _0225C898 ; =0x000006FD
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ mov r0, #1
+ pop {r4, pc}
+_0225C890:
+ mov r0, #0
+ mvn r0, r0
+ pop {r4, pc}
+ nop
+_0225C898: .word 0x000006FD
+_0225C89C: .word 0x000006F8
+
+ thumb_func_start MOD11_0225C8A0
+MOD11_0225C8A0: ; 0x0225C8A0
+ push {r4, lr}
+ ldr r1, _0225C914 ; =0x000006FD
+ add r4, r0, #0
+ ldrb r0, [r4, r1]
+ cmp r0, #0
+ beq _0225C8B2
+ cmp r0, #1
+ beq _0225C8D0
+ b _0225C8F4
+_0225C8B2:
+ add r0, r1, #1
+ ldrb r0, [r4, r0]
+ add r2, r0, #1
+ add r0, r1, #1
+ strb r2, [r4, r0]
+ ldrb r0, [r4, r0]
+ cmp r0, #0x3c
+ bls _0225C90C
+ mov r2, #0
+ add r0, r1, #1
+ strb r2, [r4, r0]
+ ldrb r0, [r4, r1]
+ add r0, r0, #1
+ strb r0, [r4, r1]
+ b _0225C90C
+_0225C8D0:
+ sub r0, r1, #5
+ mov r3, #0x11
+ ldr r0, [r4, r0]
+ mov r1, #0x28
+ mov r2, #0x92
+ lsl r3, r3, #0x10
+ bl MOD11_0225D7D0
+ ldr r0, _0225C918 ; =0x000006F8
+ mov r1, #0x3c
+ ldr r0, [r4, r0]
+ bl MOD11_0225D820
+ ldr r0, _0225C914 ; =0x000006FD
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _0225C90C
+_0225C8F4:
+ sub r0, r1, #5
+ ldr r0, [r4, r0]
+ bl MOD11_0225D824
+ cmp r0, #1
+ bne _0225C90C
+ ldr r0, _0225C914 ; =0x000006FD
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ mov r0, #1
+ pop {r4, pc}
+_0225C90C:
+ mov r0, #0
+ mvn r0, r0
+ pop {r4, pc}
+ nop
+_0225C914: .word 0x000006FD
+_0225C918: .word 0x000006F8
+
+ thumb_func_start MOD11_0225C91C
+MOD11_0225C91C: ; 0x0225C91C
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ mov r0, #0x1b
+ str r0, [sp]
+ mov r0, #0x4a
+ str r0, [sp, #4]
+ mov r0, #0
+ add r4, r1, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, _0225C990 ; =0x00004E41
+ mov r1, #2
+ str r0, [sp, #0x14]
+ add r0, r2, #0
+ add r2, r5, #0
+ add r3, r4, #0
+ bl FUN_0200C0DC
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0225C994 ; =0x00004FB9
+ mov r2, #0x1b
+ add r3, r2, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, #0xf9
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0225C998 ; =0x00004FB3
+ mov r2, #0x1b
+ add r3, r2, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, #0xfa
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0225C99C ; =0x00004FA8
+ mov r2, #0x1b
+ add r3, r2, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, #0xfb
+ bl FUN_0200C13C
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ nop
+_0225C990: .word 0x00004E41
+_0225C994: .word 0x00004FB9
+_0225C998: .word 0x00004FB3
+_0225C99C: .word 0x00004FA8
+
+ thumb_func_start MOD11_0225C9A0
+MOD11_0225C9A0: ; 0x0225C9A0
+ push {r4, lr}
+ ldr r1, _0225C9C4 ; =0x00004FB9
+ add r4, r0, #0
+ bl FUN_0200C358
+ ldr r1, _0225C9C8 ; =0x00004E41
+ add r0, r4, #0
+ bl FUN_0200C368
+ ldr r1, _0225C9CC ; =0x00004FB3
+ add r0, r4, #0
+ bl FUN_0200C378
+ ldr r1, _0225C9D0 ; =0x00004FA8
+ add r0, r4, #0
+ bl FUN_0200C388
+ pop {r4, pc}
+ .align 2, 0
+_0225C9C4: .word 0x00004FB9
+_0225C9C8: .word 0x00004E41
+_0225C9CC: .word 0x00004FB3
+_0225C9D0: .word 0x00004FA8
+
+ thumb_func_start MOD11_0225C9D4
+MOD11_0225C9D4: ; 0x0225C9D4
+ push {r4, lr}
+ mov r0, #5
+ lsl r1, r0, #6
+ bl AllocFromHeap
+ mov r2, #5
+ mov r1, #0
+ lsl r2, r2, #6
+ add r4, r0, #0
+ bl MI_CpuFill8
+ add r0, r4, #0
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225C9F0
+MOD11_0225C9F0: ; 0x0225C9F0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _0225C9FE
+ bl ErrorHandling
+_0225C9FE:
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225CA08
+MOD11_0225CA08: ; 0x0225CA08
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x38]
+ str r3, [sp, #0x1c]
+ str r0, [sp, #0x38]
+ add r6, r1, #0
+ str r2, [sp, #0x18]
+ ldr r7, [sp, #0x3c]
+ bl MOD11_0225C9D4
+ ldr r2, [sp, #0x1c]
+ ldr r3, [sp, #0x38]
+ add r1, r6, #0
+ str r0, [sp, #0x20]
+ str r7, [sp]
+ bl MOD11_0225CB10
+ ldr r5, [sp, #0x20]
+ mov r4, #0
+ add r5, #0x1c
+_0225CA32:
+ ldr r0, [sp, #0x14]
+ add r1, r6, #0
+ ldrb r0, [r0, r4]
+ bl MOD11_0225D374
+ ldr r1, [sp, #0x1c]
+ ldr r2, [sp, #0x20]
+ str r1, [sp]
+ str r4, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x38]
+ mov r1, #0x4f
+ str r0, [sp, #0xc]
+ lsl r1, r1, #2
+ add r1, r2, r1
+ ldr r3, [sp, #0x18]
+ add r0, r5, #0
+ add r2, r6, #0
+ str r7, [sp, #0x10]
+ bl MOD11_0225CDB0
+ add r4, r4, #1
+ add r5, #0x30
+ cmp r4, #6
+ blt _0225CA32
+ ldr r0, [sp, #0x20]
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225CA6C
+MOD11_0225CA6C: ; 0x0225CA6C
+ ldr r1, [r0, #4]
+ cmp r1, #0
+ bne _0225CA8A
+ mov r2, #0
+_0225CA74:
+ ldr r1, [r0, #0x20]
+ cmp r1, #0
+ bne _0225CA82
+ add r2, r2, #1
+ add r0, #0x30
+ cmp r2, #6
+ blt _0225CA74
+_0225CA82:
+ cmp r2, #6
+ bne _0225CA8A
+ mov r0, #1
+ bx lr
+_0225CA8A:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0225CA90
+MOD11_0225CA90: ; 0x0225CA90
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r4, r1, #0
+ add r7, r2, #0
+ cmp r6, #0
+ bne _0225CAA0
+ bl ErrorHandling
+_0225CAA0:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD11_0225CC68
+ add r5, r6, #0
+ mov r4, #0
+ add r5, #0x1c
+ add r6, #0x18
+_0225CAB0:
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ add r3, r6, #0
+ bl MOD11_0225D1A8
+ add r4, r4, #1
+ add r5, #0x30
+ cmp r4, #6
+ blt _0225CAB0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225CAC8
+MOD11_0225CAC8: ; 0x0225CAC8
+ ldr r1, [r0, #4]
+ cmp r1, #0
+ bne _0225CAE6
+ mov r2, #0
+_0225CAD0:
+ ldr r1, [r0, #0x20]
+ cmp r1, #0
+ bne _0225CADE
+ add r2, r2, #1
+ add r0, #0x30
+ cmp r2, #6
+ blt _0225CAD0
+_0225CADE:
+ cmp r2, #6
+ bne _0225CAE6
+ mov r0, #1
+ bx lr
+_0225CAE6:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD11_0225CAEC
+MOD11_0225CAEC: ; 0x0225CAEC
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r0, [r6]
+ bl FUN_0200C3DC
+ mov r4, #0
+ add r5, r6, #0
+_0225CAFA:
+ ldr r0, [r5, #0x1c]
+ bl FUN_0200C3DC
+ add r4, r4, #1
+ add r5, #0x30
+ cmp r4, #6
+ blt _0225CAFA
+ add r0, r6, #0
+ bl MOD11_0225C9F0
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0225CB10
+MOD11_0225CB10: ; 0x0225CB10
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r6, r1, #0
+ add r4, r2, #0
+ add r7, r3, #0
+ mov r1, #0
+ cmp r0, #0
+ bne _0225CB2A
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ bne _0225CB2A
+ mov r1, #1
+_0225CB2A:
+ cmp r1, #0
+ bne _0225CB32
+ bl ErrorHandling
+_0225CB32:
+ add r0, r5, #0
+ mov r1, #0
+ mov r2, #0x1c
+ bl MI_CpuFill8
+ ldr r1, [sp, #0x18]
+ ldr r2, _0225CBA8 ; =0x0225FE48
+ add r0, r7, #0
+ bl FUN_0200C154
+ str r0, [r5]
+ cmp r6, #0
+ ldr r0, [r5]
+ bne _0225CB68
+ ldr r2, _0225CBAC ; =0x0225FE38
+ lsl r3, r4, #1
+ ldrsh r2, [r2, r3]
+ mov r1, #0x16
+ lsl r1, r1, #4
+ bl FUN_0200C714
+ ldr r0, [r5]
+ mov r1, #8
+ ldr r0, [r0]
+ bl FUN_02020130
+ b _0225CB80
+_0225CB68:
+ ldr r2, _0225CBB0 ; =0x0225FE30
+ lsl r3, r4, #1
+ ldrsh r2, [r2, r3]
+ mov r1, #0x5f
+ mvn r1, r1
+ bl FUN_0200C714
+ ldr r0, [r5]
+ mov r1, #7
+ ldr r0, [r0]
+ bl FUN_02020130
+_0225CB80:
+ ldr r0, [r5]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ str r6, [r5, #0xc]
+ mov r2, #0x7d
+ str r4, [r5, #0x10]
+ mov r0, #0
+ strb r0, [r5, #0x1a]
+ ldr r0, _0225CBB4 ; =MOD11_0225CBBC
+ add r1, r5, #0
+ lsl r2, r2, #2
+ bl FUN_0200CA44
+ str r0, [r5, #4]
+ ldr r0, _0225CBB8 ; =0x00000711
+ bl FUN_020054C8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225CBA8: .word 0x0225FE48
+_0225CBAC: .word 0x0225FE38
+_0225CBB0: .word 0x0225FE30
+_0225CBB4: .word MOD11_0225CBBC
+_0225CBB8: .word 0x00000711
+
+ thumb_func_start MOD11_0225CBBC
+MOD11_0225CBBC: ; 0x0225CBBC
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ ldrb r1, [r4, #0x1a]
+ cmp r1, #0
+ beq _0225CBCE
+ cmp r1, #1
+ beq _0225CBEA
+ b _0225CC52
+_0225CBCE:
+ add r1, sp, #0
+ ldr r0, [r4]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r1, sp, #0
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ lsl r0, r0, #8
+ str r0, [r4, #0x14]
+ ldrb r0, [r4, #0x1a]
+ add r0, r0, #1
+ strb r0, [r4, #0x1a]
+_0225CBEA:
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x14]
+ cmp r0, #0
+ bne _0225CC22
+ mov r0, #0xe
+ lsl r0, r0, #8
+ sub r2, r1, r0
+ lsl r1, r0, #4
+ str r2, [r4, #0x14]
+ cmp r2, r1
+ bgt _0225CC0A
+ lsl r0, r0, #4
+ str r0, [r4, #0x14]
+ ldrb r0, [r4, #0x1a]
+ add r0, r0, #1
+ strb r0, [r4, #0x1a]
+_0225CC0A:
+ ldr r2, [r4, #0x10]
+ ldr r1, [r4, #0x14]
+ lsl r3, r2, #1
+ ldr r2, _0225CC60 ; =0x0225FE38
+ lsl r1, r1, #8
+ ldrsh r2, [r2, r3]
+ ldr r0, [r4]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+ add sp, #4
+ pop {r3, r4, pc}
+_0225CC22:
+ mov r0, #0xe
+ lsl r0, r0, #8
+ add r1, r1, r0
+ mov r0, #2
+ lsl r0, r0, #0xc
+ str r1, [r4, #0x14]
+ cmp r1, r0
+ blt _0225CC3A
+ str r0, [r4, #0x14]
+ ldrb r0, [r4, #0x1a]
+ add r0, r0, #1
+ strb r0, [r4, #0x1a]
+_0225CC3A:
+ ldr r2, [r4, #0x10]
+ ldr r1, [r4, #0x14]
+ lsl r3, r2, #1
+ ldr r2, _0225CC64 ; =0x0225FE30
+ lsl r1, r1, #8
+ ldrsh r2, [r2, r3]
+ ldr r0, [r4]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+ add sp, #4
+ pop {r3, r4, pc}
+_0225CC52:
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #4]
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_0225CC60: .word 0x0225FE38
+_0225CC64: .word 0x0225FE30
+
+ thumb_func_start MOD11_0225CC68
+MOD11_0225CC68: ; 0x0225CC68
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ cmp r0, #0
+ beq _0225CC7A
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ beq _0225CC7E
+_0225CC7A:
+ bl ErrorHandling
+_0225CC7E:
+ mov r0, #0
+ strb r0, [r5, #0x1a]
+ str r4, [r5, #8]
+ cmp r4, #0
+ bne _0225CC8C
+ mov r0, #4
+ b _0225CC8C
+_0225CC8C:
+ strb r0, [r5, #0x1b]
+ mov r2, #0x7d
+ ldr r0, _0225CCA0 ; =MOD11_0225CCA4
+ add r1, r5, #0
+ lsl r2, r2, #2
+ bl FUN_0200CA44
+ str r0, [r5, #4]
+ pop {r3, r4, r5, pc}
+ nop
+_0225CCA0: .word MOD11_0225CCA4
+
+ thumb_func_start MOD11_0225CCA4
+MOD11_0225CCA4: ; 0x0225CCA4
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #0x1a]
+ cmp r0, #0
+ beq _0225CCBC
+ cmp r0, #1
+ beq _0225CCFC
+ cmp r0, #2
+ beq _0225CD10
+ b _0225CD8E
+_0225CCBC:
+ add r1, sp, #4
+ ldr r0, [r4]
+ add r1, #2
+ add r2, sp, #4
+ bl FUN_0200C7A0
+ add r1, sp, #4
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ mov r1, #1
+ lsl r0, r0, #8
+ str r0, [r4, #0x14]
+ ldr r0, [r4]
+ bl FUN_0200C90C
+ mov r0, #1
+ lsl r0, r0, #0xc
+ strh r0, [r4, #0x18]
+ mov r0, #0x18
+ ldrsh r0, [r4, r0]
+ mov r1, #0
+ mov r2, #0x3f
+ asr r3, r0, #8
+ mov r0, #0x10
+ sub r0, r0, r3
+ str r0, [sp]
+ ldr r0, _0225CDA0 ; =0x04000050
+ bl G2x_SetBlendAlpha_
+ ldrb r0, [r4, #0x1a]
+ add r0, r0, #1
+ strb r0, [r4, #0x1a]
+_0225CCFC:
+ ldrb r0, [r4, #0x1b]
+ cmp r0, #0
+ beq _0225CD0A
+ sub r0, r0, #1
+ add sp, #8
+ strb r0, [r4, #0x1b]
+ pop {r3, r4, r5, pc}
+_0225CD0A:
+ ldrb r0, [r4, #0x1a]
+ add r0, r0, #1
+ strb r0, [r4, #0x1a]
+_0225CD10:
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ bne _0225CD54
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x14]
+ cmp r0, #0
+ bne _0225CD3A
+ mov r0, #1
+ lsl r0, r0, #0xa
+ sub r1, r1, r0
+ str r1, [r4, #0x14]
+ ldr r2, [r4, #0x10]
+ lsl r1, r1, #8
+ lsl r3, r2, #1
+ ldr r2, _0225CDA4 ; =0x0225FE38
+ ldr r0, [r4]
+ ldrsh r2, [r2, r3]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+ b _0225CD54
+_0225CD3A:
+ mov r0, #1
+ lsl r0, r0, #0xa
+ add r1, r1, r0
+ str r1, [r4, #0x14]
+ ldr r2, [r4, #0x10]
+ lsl r1, r1, #8
+ lsl r3, r2, #1
+ ldr r2, _0225CDA8 ; =0x0225FE30
+ ldr r0, [r4]
+ ldrsh r2, [r2, r3]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+_0225CD54:
+ mov r1, #0x18
+ ldrsh r2, [r4, r1]
+ add r0, r1, #0
+ add r0, #0xe8
+ sub r0, r2, r0
+ strh r0, [r4, #0x18]
+ ldrsh r0, [r4, r1]
+ cmp r0, #0
+ bgt _0225CD78
+ mov r1, #0
+ strh r1, [r4, #0x18]
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_0200C63C
+ ldrb r0, [r4, #0x1a]
+ add r0, r0, #1
+ strb r0, [r4, #0x1a]
+_0225CD78:
+ mov r0, #0x18
+ ldrsh r0, [r4, r0]
+ add sp, #8
+ asr r1, r0, #8
+ mov r0, #0x10
+ sub r0, r0, r1
+ lsl r0, r0, #8
+ orr r1, r0
+ ldr r0, _0225CDAC ; =0x04000052
+ strh r1, [r0]
+ pop {r3, r4, r5, pc}
+_0225CD8E:
+ bl MOD11_02231678
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #4]
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0225CDA0: .word 0x04000050
+_0225CDA4: .word 0x0225FE38
+_0225CDA8: .word 0x0225FE30
+_0225CDAC: .word 0x04000052
+
+ thumb_func_start MOD11_0225CDB0
+MOD11_0225CDB0: ; 0x0225CDB0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r7, r1, #0
+ add r6, r2, #0
+ mov r1, #0
+ str r3, [sp]
+ ldr r4, [sp, #0x1c]
+ cmp r0, #0
+ bne _0225CDCC
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ bne _0225CDCC
+ mov r1, #1
+_0225CDCC:
+ cmp r1, #0
+ bne _0225CDD4
+ bl ErrorHandling
+_0225CDD4:
+ add r0, r5, #0
+ mov r1, #0
+ mov r2, #0x30
+ bl MI_CpuFill8
+ ldr r0, [sp, #0x24]
+ ldr r1, [sp, #0x28]
+ ldr r2, _0225CEA4 ; =0x0225FE7C
+ bl FUN_0200C154
+ str r0, [r5]
+ cmp r6, #0
+ ldr r0, [r5]
+ bne _0225CE02
+ ldr r2, [sp, #0x18]
+ mov r1, #0x45
+ lsl r3, r2, #1
+ ldr r2, _0225CEA8 ; =0x0225FE40
+ lsl r1, r1, #2
+ ldrsh r2, [r2, r3]
+ bl FUN_0200C714
+ b _0225CE12
+_0225CE02:
+ ldr r2, [sp, #0x18]
+ mov r1, #0x13
+ lsl r3, r2, #1
+ ldr r2, _0225CEAC ; =0x0225FE28
+ mvn r1, r1
+ ldrsh r2, [r2, r3]
+ bl FUN_0200C714
+_0225CE12:
+ ldr r0, [r5]
+ ldr r1, [sp, #0x20]
+ ldr r0, [r0]
+ bl FUN_02020130
+ ldr r0, [r5]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ add r0, r5, #0
+ str r6, [r5, #8]
+ add r0, #0x2d
+ strb r4, [r0]
+ ldr r0, [sp, #0x18]
+ str r0, [r5, #0xc]
+ ldr r0, [sp, #0x20]
+ bl MOD11_0225D3B4
+ add r1, r5, #0
+ add r1, #0x2e
+ strb r0, [r1]
+ ldr r0, [sp, #0x20]
+ str r7, [r5, #0x14]
+ cmp r0, #6
+ bne _0225CE48
+ ldr r0, _0225CEB0 ; =0x00000713
+ b _0225CE4A
+_0225CE48:
+ ldr r0, _0225CEB4 ; =0x00000712
+_0225CE4A:
+ strh r0, [r5, #0x2a]
+ cmp r6, #0
+ bne _0225CE5E
+ lsl r0, r4, #4
+ add r0, #0xa2
+ str r0, [r5, #0x20]
+ mov r0, #0xf
+ mul r0, r4
+ add r0, #0x9c
+ b _0225CE70
+_0225CE5E:
+ lsl r1, r4, #4
+ mov r0, #0x5e
+ sub r0, r0, r1
+ str r0, [r5, #0x20]
+ mov r0, #0xf
+ add r1, r4, #0
+ mul r1, r0
+ mov r0, #0x64
+ sub r0, r0, r1
+_0225CE70:
+ str r0, [r5, #0x24]
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0x2c
+ strb r1, [r0]
+ ldr r0, [sp]
+ ldr r2, _0225CEB8 ; =0x000001F5
+ cmp r0, #0
+ bne _0225CE96
+ lsl r0, r4, #1
+ add r0, r4, r0
+ add r0, r0, #5
+ strh r0, [r5, #0x28]
+ ldr r0, _0225CEBC ; =MOD11_0225CEC4
+ add r1, r5, #0
+ bl FUN_0200CA44
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225CE96:
+ ldr r0, _0225CEC0 ; =MOD11_0225D0C4
+ strh r1, [r5, #0x28]
+ add r1, r5, #0
+ bl FUN_0200CA44
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225CEA4: .word 0x0225FE7C
+_0225CEA8: .word 0x0225FE40
+_0225CEAC: .word 0x0225FE28
+_0225CEB0: .word 0x00000713
+_0225CEB4: .word 0x00000712
+_0225CEB8: .word 0x000001F5
+_0225CEBC: .word MOD11_0225CEC4
+_0225CEC0: .word MOD11_0225D0C4
+
+ thumb_func_start MOD11_0225CEC4
+MOD11_0225CEC4: ; 0x0225CEC4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ cmp r0, #6
+ bls _0225CED6
+ b _0225D0A6
+_0225CED6:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225CEE2: ; jump table
+ .short _0225CEF0 - _0225CEE2 - 2 ; case 0
+ .short _0225CF14 - _0225CEE2 - 2 ; case 1
+ .short _0225CF22 - _0225CEE2 - 2 ; case 2
+ .short _0225CFA4 - _0225CEE2 - 2 ; case 3
+ .short _0225CFBC - _0225CEE2 - 2 ; case 4
+ .short _0225CFFC - _0225CEE2 - 2 ; case 5
+ .short _0225D02A - _0225CEE2 - 2 ; case 6
+_0225CEF0:
+ add r1, sp, #0
+ ldr r0, [r4]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r1, sp, #0
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ lsl r0, r0, #8
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225CF14:
+ mov r0, #0x28
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ ble _0225CF22
+ sub r0, r0, #1
+ strh r0, [r4, #0x28]
+ pop {r3, r4, r5, pc}
+_0225CF22:
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0x1c]
+ cmp r0, #0
+ bne _0225CF66
+ mov r0, #0xe
+ lsl r0, r0, #8
+ sub r1, r1, r0
+ str r1, [r4, #0x1c]
+ ldr r0, [r4, #0x24]
+ lsl r0, r0, #8
+ cmp r1, r0
+ bgt _0225CF50
+ str r0, [r4, #0x1c]
+ ldrh r0, [r4, #0x2a]
+ bl FUN_020054C8
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225CF50:
+ ldr r2, [r4, #0xc]
+ ldr r1, [r4, #0x1c]
+ lsl r3, r2, #1
+ ldr r2, _0225D0BC ; =0x0225FE40
+ lsl r1, r1, #8
+ ldrsh r2, [r2, r3]
+ ldr r0, [r4]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+ b _0225CF9A
+_0225CF66:
+ mov r0, #0xe
+ lsl r0, r0, #8
+ add r1, r1, r0
+ str r1, [r4, #0x1c]
+ ldr r0, [r4, #0x24]
+ lsl r0, r0, #8
+ cmp r1, r0
+ blt _0225CF86
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225CF86:
+ ldr r2, [r4, #0xc]
+ ldr r1, [r4, #0x1c]
+ lsl r3, r2, #1
+ ldr r2, _0225D0C0 ; =0x0225FE28
+ lsl r1, r1, #8
+ ldrsh r2, [r2, r3]
+ ldr r0, [r4]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+_0225CF9A:
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ pop {r3, r4, r5, pc}
+_0225CFA4:
+ ldr r1, [r4, #0x14]
+ mov r0, #0
+ ldrsb r0, [r1, r0]
+ add r0, r0, #1
+ strb r0, [r1]
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225CFBC:
+ ldr r1, [r4, #0x14]
+ mov r0, #0
+ ldrsb r0, [r1, r0]
+ cmp r0, #6
+ beq _0225CFD0
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ pop {r3, r4, r5, pc}
+_0225CFD0:
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ ldr r0, [r4]
+ bne _0225CFE2
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_02020208
+ b _0225CFEA
+_0225CFE2:
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_02020208
+_0225CFEA:
+ mov r0, #0
+ strh r0, [r4, #0x28]
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225CFFC:
+ mov r0, #0x28
+ ldrsh r1, [r4, r0]
+ add r1, r1, #1
+ strh r1, [r4, #0x28]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ blt _0225D0BA
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r1, #0x2e
+ ldrb r1, [r1]
+ ldr r0, [r0]
+ bl FUN_02020130
+ mov r0, #0
+ strh r0, [r4, #0x28]
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225D02A:
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0x1c]
+ cmp r0, #0
+ bne _0225D068
+ mov r0, #6
+ lsl r0, r0, #8
+ add r1, r1, r0
+ str r1, [r4, #0x1c]
+ ldr r0, [r4, #0x20]
+ lsl r0, r0, #8
+ cmp r1, r0
+ blt _0225D052
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225D052:
+ ldr r2, [r4, #0xc]
+ ldr r1, [r4, #0x1c]
+ lsl r3, r2, #1
+ ldr r2, _0225D0BC ; =0x0225FE40
+ lsl r1, r1, #8
+ ldrsh r2, [r2, r3]
+ ldr r0, [r4]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+ b _0225D09C
+_0225D068:
+ mov r0, #6
+ lsl r0, r0, #8
+ sub r1, r1, r0
+ str r1, [r4, #0x1c]
+ ldr r0, [r4, #0x20]
+ lsl r0, r0, #8
+ cmp r1, r0
+ bgt _0225D088
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225D088:
+ ldr r2, [r4, #0xc]
+ ldr r1, [r4, #0x1c]
+ lsl r3, r2, #1
+ ldr r2, _0225D0C0 ; =0x0225FE28
+ lsl r1, r1, #8
+ ldrsh r2, [r2, r3]
+ ldr r0, [r4]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+_0225D09C:
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ pop {r3, r4, r5, pc}
+_0225D0A6:
+ ldr r0, [r4]
+ mov r1, #0
+ ldr r0, [r0]
+ bl FUN_02020208
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #4]
+_0225D0BA:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0225D0BC: .word 0x0225FE40
+_0225D0C0: .word 0x0225FE28
+
+ thumb_func_start MOD11_0225D0C4
+MOD11_0225D0C4: ; 0x0225D0C4
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r1, #0x2c
+ ldrb r1, [r1]
+ cmp r1, #0
+ beq _0225D0DC
+ cmp r1, #1
+ beq _0225D10A
+ cmp r1, #2
+ beq _0225D11A
+ b _0225D192
+_0225D0DC:
+ add r1, sp, #0
+ ldr r0, [r4]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r1, sp, #0
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ mov r1, #0
+ lsl r0, r0, #8
+ str r0, [r4, #0x1c]
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_02020208
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225D10A:
+ mov r0, #0x28
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ ble _0225D11A
+ sub r0, r0, #1
+ add sp, #4
+ strh r0, [r4, #0x28]
+ pop {r3, r4, pc}
+_0225D11A:
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0x1c]
+ cmp r0, #0
+ bne _0225D15A
+ mov r0, #0xe
+ lsl r0, r0, #8
+ sub r1, r1, r0
+ str r1, [r4, #0x1c]
+ ldr r0, [r4, #0x20]
+ lsl r0, r0, #8
+ cmp r1, r0
+ bgt _0225D142
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225D142:
+ ldr r2, [r4, #0xc]
+ ldr r1, [r4, #0x1c]
+ lsl r3, r2, #1
+ ldr r2, _0225D1A0 ; =0x0225FE40
+ lsl r1, r1, #8
+ ldrsh r2, [r2, r3]
+ ldr r0, [r4]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+ add sp, #4
+ pop {r3, r4, pc}
+_0225D15A:
+ mov r0, #0xe
+ lsl r0, r0, #8
+ add r1, r1, r0
+ str r1, [r4, #0x1c]
+ ldr r0, [r4, #0x20]
+ lsl r0, r0, #8
+ cmp r1, r0
+ blt _0225D17A
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225D17A:
+ ldr r2, [r4, #0xc]
+ ldr r1, [r4, #0x1c]
+ lsl r3, r2, #1
+ ldr r2, _0225D1A4 ; =0x0225FE28
+ lsl r1, r1, #8
+ ldrsh r2, [r2, r3]
+ ldr r0, [r4]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+ add sp, #4
+ pop {r3, r4, pc}
+_0225D192:
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #4]
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_0225D1A0: .word 0x0225FE40
+_0225D1A4: .word 0x0225FE28
+
+ thumb_func_start MOD11_0225D1A8
+MOD11_0225D1A8: ; 0x0225D1A8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r6, r1, #0
+ add r7, r2, #0
+ add r4, r3, #0
+ cmp r0, #0
+ beq _0225D1BE
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ beq _0225D1C2
+_0225D1BE:
+ bl ErrorHandling
+_0225D1C2:
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0x2c
+ strb r1, [r0]
+ cmp r7, #0
+ str r4, [r5, #0x18]
+ ldr r2, _0225D200 ; =0x000001F5
+ bne _0225D1EC
+ lsl r0, r6, #1
+ add r0, r6, r0
+ strh r0, [r5, #0x28]
+ add r0, r5, #0
+ mov r1, #4
+ add r0, #0x2f
+ strb r1, [r0]
+ ldr r0, _0225D204 ; =MOD11_0225D20C
+ add r1, r5, #0
+ bl FUN_0200CA44
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_0225D1EC:
+ add r0, r5, #0
+ strh r1, [r5, #0x28]
+ add r0, #0x2f
+ strb r1, [r0]
+ ldr r0, _0225D208 ; =MOD11_0225D31C
+ add r1, r5, #0
+ bl FUN_0200CA44
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225D200: .word 0x000001F5
+_0225D204: .word MOD11_0225D20C
+_0225D208: .word MOD11_0225D31C
+
+ thumb_func_start MOD11_0225D20C
+MOD11_0225D20C: ; 0x0225D20C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0x18]
+ add r5, r0, #0
+ mov r0, #0
+ ldrsh r0, [r1, r0]
+ cmp r0, #0
+ bne _0225D224
+ add r0, r4, #0
+ mov r1, #0x64
+ add r0, #0x2c
+ strb r1, [r0]
+_0225D224:
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ cmp r0, #2
+ bgt _0225D23E
+ cmp r0, #0
+ blt _0225D2FA
+ beq _0225D242
+ cmp r0, #1
+ beq _0225D26E
+ cmp r0, #2
+ beq _0225D294
+ b _0225D2FA
+_0225D23E:
+ cmp r0, #0x64
+ b _0225D2FA
+_0225D242:
+ add r1, sp, #0
+ ldr r0, [r4]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r1, sp, #0
+ mov r0, #2
+ ldrsh r0, [r1, r0]
+ mov r1, #1
+ lsl r0, r0, #8
+ str r0, [r4, #0x1c]
+ ldr r0, [r4]
+ bl FUN_0200C90C
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225D26E:
+ add r0, r4, #0
+ add r0, #0x2f
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0225D286
+ add r0, r4, #0
+ add r0, #0x2f
+ ldrb r0, [r0]
+ add r4, #0x2f
+ sub r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_0225D286:
+ mov r0, #0x28
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ ble _0225D294
+ sub r0, r0, #1
+ strh r0, [r4, #0x28]
+ pop {r3, r4, r5, pc}
+_0225D294:
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0x1c]
+ cmp r0, #0
+ bne _0225D2B8
+ mov r0, #3
+ lsl r0, r0, #0xa
+ sub r1, r1, r0
+ str r1, [r4, #0x1c]
+ ldr r2, [r4, #0xc]
+ lsl r1, r1, #8
+ lsl r3, r2, #1
+ ldr r2, _0225D310 ; =0x0225FE40
+ ldr r0, [r4]
+ ldrsh r2, [r2, r3]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+ b _0225D2D2
+_0225D2B8:
+ mov r0, #3
+ lsl r0, r0, #0xa
+ add r1, r1, r0
+ str r1, [r4, #0x1c]
+ ldr r2, [r4, #0xc]
+ lsl r1, r1, #8
+ lsl r3, r2, #1
+ ldr r2, _0225D314 ; =0x0225FE28
+ ldr r0, [r4]
+ ldrsh r2, [r2, r3]
+ asr r1, r1, #0x10
+ bl FUN_0200C714
+_0225D2D2:
+ ldr r1, [r4, #0x1c]
+ ldr r0, _0225D318 ; =0xFFFFF000
+ cmp r1, r0
+ blt _0225D2E2
+ mov r0, #0x11
+ lsl r0, r0, #0xc
+ cmp r1, r0
+ ble _0225D2F0
+_0225D2E2:
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x2c
+ strb r1, [r0]
+_0225D2F0:
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_0200C59C
+ pop {r3, r4, r5, pc}
+_0225D2FA:
+ ldr r0, [r4]
+ mov r1, #0
+ ldr r0, [r0]
+ bl FUN_0200C63C
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0225D310: .word 0x0225FE40
+_0225D314: .word 0x0225FE28
+_0225D318: .word 0xFFFFF000
+
+ thumb_func_start MOD11_0225D31C
+MOD11_0225D31C: ; 0x0225D31C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0x18]
+ add r5, r0, #0
+ mov r0, #0
+ ldrsh r0, [r1, r0]
+ cmp r0, #0
+ bne _0225D334
+ add r0, r4, #0
+ mov r1, #0x64
+ add r0, #0x2c
+ strb r1, [r0]
+_0225D334:
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _0225D346
+ cmp r0, #1
+ beq _0225D370
+ cmp r0, #0x64
+ b _0225D35C
+_0225D346:
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_0200C90C
+ add r0, r4, #0
+ add r0, #0x2c
+ ldrb r0, [r0]
+ add r4, #0x2c
+ add r0, r0, #1
+ strb r0, [r4]
+ pop {r3, r4, r5, pc}
+_0225D35C:
+ ldr r0, [r4]
+ mov r1, #0
+ ldr r0, [r0]
+ bl FUN_0200C63C
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #4]
+_0225D370:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225D374
+MOD11_0225D374: ; 0x0225D374
+ cmp r0, #3
+ bhi _0225D38C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225D384: ; jump table
+ .short _0225D38C - _0225D384 - 2 ; case 0
+ .short _0225D390 - _0225D384 - 2 ; case 1
+ .short _0225D39C - _0225D384 - 2 ; case 2
+ .short _0225D3A8 - _0225D384 - 2 ; case 3
+_0225D38C:
+ mov r0, #6
+ bx lr
+_0225D390:
+ cmp r1, #0
+ bne _0225D398
+ mov r0, #3
+ bx lr
+_0225D398:
+ mov r0, #0
+ bx lr
+_0225D39C:
+ cmp r1, #0
+ bne _0225D3A4
+ mov r0, #5
+ bx lr
+_0225D3A4:
+ mov r0, #2
+ bx lr
+_0225D3A8:
+ cmp r1, #0
+ bne _0225D3B0
+ mov r0, #4
+ bx lr
+_0225D3B0:
+ mov r0, #1
+ bx lr
+
+ thumb_func_start MOD11_0225D3B4
+MOD11_0225D3B4: ; 0x0225D3B4
+ cmp r0, #6
+ bhi _0225D3EA
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0225D3C4: ; jump table
+ .short _0225D3D8 - _0225D3C4 - 2 ; case 0
+ .short _0225D3E8 - _0225D3C4 - 2 ; case 1
+ .short _0225D3E0 - _0225D3C4 - 2 ; case 2
+ .short _0225D3D4 - _0225D3C4 - 2 ; case 3
+ .short _0225D3E4 - _0225D3C4 - 2 ; case 4
+ .short _0225D3DC - _0225D3C4 - 2 ; case 5
+ .short _0225D3D2 - _0225D3C4 - 2 ; case 6
+_0225D3D2:
+ bx lr
+_0225D3D4:
+ mov r0, #0
+ bx lr
+_0225D3D8:
+ mov r0, #3
+ bx lr
+_0225D3DC:
+ mov r0, #2
+ bx lr
+_0225D3E0:
+ mov r0, #5
+ bx lr
+_0225D3E4:
+ mov r0, #1
+ bx lr
+_0225D3E8:
+ mov r0, #4
+_0225D3EA:
+ bx lr
+
+ thumb_func_start MOD11_0225D3EC
+MOD11_0225D3EC: ; 0x0225D3EC
+ push {r4, r5, r6, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ mov r0, #0x1b
+ str r0, [sp]
+ mov r0, #0x2c
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ mov r0, #2
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x28]
+ add r4, r1, #0
+ add r6, r3, #0
+ str r0, [sp, #0x14]
+ add r0, r2, #0
+ mov r1, #3
+ add r2, r5, #0
+ add r3, r4, #0
+ bl FUN_0200C0DC
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x1b
+ mov r3, #0xba
+ str r6, [sp, #8]
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, [sp, #0x2c]
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x1b
+ mov r3, #0xbb
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, [sp, #0x30]
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x1b
+ mov r3, #0xbc
+ bl FUN_0200C13C
+ add sp, #0x18
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0225D45C
+MOD11_0225D45C: ; 0x0225D45C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r2, #0
+ add r6, r3, #0
+ bl FUN_0200C358
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0200C368
+ add r0, r5, #0
+ add r1, r6, #0
+ bl FUN_0200C378
+ ldr r1, [sp, #0x10]
+ add r0, r5, #0
+ bl FUN_0200C388
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225D484
+MOD11_0225D484: ; 0x0225D484
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r5, r3, #0
+ mov ip, r2
+ ldr r3, _0225D4FC ; =0x0225FEB0
+ add r6, r0, #0
+ add r7, r1, #0
+ add r2, sp, #4
+ mov r4, #6
+_0225D496:
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ sub r4, r4, #1
+ bne _0225D496
+ ldr r0, [r3]
+ mov r1, #0x18
+ str r0, [r2]
+ ldr r0, [sp, #0x50]
+ str r5, [sp, #0x18]
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x54]
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x58]
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x5c]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x60]
+ str r0, [sp, #0x30]
+ mov r0, ip
+ bl AllocFromHeap
+ mov r1, #0
+ mov r2, #0x18
+ str r0, [sp]
+ bl MI_CpuFill8
+ ldr r5, [sp]
+ mov r4, #0
+_0225D4CE:
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, sp, #4
+ bl FUN_0200C154
+ mov r1, #0
+ stmia r5!, {r0}
+ bl FUN_0200C644
+ add r4, r4, #1
+ cmp r4, #5
+ blt _0225D4CE
+ ldr r0, _0225D500 ; =MOD11_0225D670
+ ldr r1, [sp]
+ ldr r2, _0225D504 ; =0x00009C40
+ bl FUN_0200CA44
+ ldr r1, [sp]
+ str r0, [r1, #0x14]
+ add r0, r1, #0
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225D4FC: .word 0x0225FEB0
+_0225D500: .word MOD11_0225D670
+_0225D504: .word 0x00009C40
+
+ thumb_func_start MOD11_0225D508
+MOD11_0225D508: ; 0x0225D508
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+_0225D510:
+ ldr r0, [r5]
+ bl FUN_0200C3DC
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #5
+ blt _0225D510
+ ldr r0, [r6, #0x14]
+ bl FUN_0200CAB4
+ add r0, r6, #0
+ bl FreeToHeap
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0225D52C
+MOD11_0225D52C: ; 0x0225D52C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r4, [sp, #0x24]
+ add r6, r3, #0
+ ldr r0, [r5]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ add r3, r4, #0
+ bl FUN_0200C750
+ ldr r2, [sp, #0x10]
+ lsl r1, r6, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r5, #4]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ add r3, r4, #0
+ bl FUN_0200C750
+ ldr r1, [sp, #0x14]
+ ldr r2, [sp, #0x18]
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r5, #8]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ add r3, r4, #0
+ bl FUN_0200C750
+ ldr r1, [sp, #0x1c]
+ ldr r2, [sp, #0x20]
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r5, #0xc]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ add r3, r4, #0
+ bl FUN_0200C750
+ ldr r0, [r5]
+ mov r1, #0
+ bl FUN_0200C5C0
+ ldr r0, [r5, #4]
+ mov r1, #1
+ bl FUN_0200C5C0
+ ldr r0, [r5, #8]
+ mov r1, #2
+ bl FUN_0200C5C0
+ ldr r0, [r5, #0xc]
+ mov r1, #3
+ bl FUN_0200C5C0
+ mov r4, #0
+ mov r6, #1
+_0225D5A2:
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl FUN_0200C644
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0225D5A2
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0225D5B4
+MOD11_0225D5B4: ; 0x0225D5B4
+ push {r4, lr}
+ sub sp, #0x18
+ ldr r4, [sp, #0x20]
+ str r4, [sp]
+ ldr r4, [sp, #0x24]
+ str r4, [sp, #4]
+ ldr r4, [sp, #0x28]
+ str r4, [sp, #8]
+ ldr r4, [sp, #0x2c]
+ str r4, [sp, #0xc]
+ ldr r4, [sp, #0x30]
+ str r4, [sp, #0x10]
+ mov r4, #3
+ lsl r4, r4, #0x12
+ str r4, [sp, #0x14]
+ bl MOD11_0225D52C
+ add sp, #0x18
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225D5DC
+MOD11_0225D5DC: ; 0x0225D5DC
+ push {r3, r4, lr}
+ sub sp, #0x14
+ add r4, r2, #0
+ str r3, [sp]
+ ldr r2, [sp, #0x20]
+ str r1, [sp, #4]
+ str r2, [sp, #8]
+ str r4, [sp, #0xc]
+ str r2, [sp, #0x10]
+ add r2, r3, #0
+ add r3, r4, #0
+ bl MOD11_0225D5B4
+ add sp, #0x14
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225D5FC
+MOD11_0225D5FC: ; 0x0225D5FC
+ push {r4, lr}
+ sub sp, #0x18
+ add r4, r2, #0
+ str r3, [sp]
+ ldr r2, [sp, #0x20]
+ str r1, [sp, #4]
+ str r2, [sp, #8]
+ str r4, [sp, #0xc]
+ str r2, [sp, #0x10]
+ ldr r2, [sp, #0x24]
+ str r2, [sp, #0x14]
+ add r2, r3, #0
+ add r3, r4, #0
+ bl MOD11_0225D52C
+ add sp, #0x18
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225D620
+MOD11_0225D620: ; 0x0225D620
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r3, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r5, #0x10]
+ ldr r3, [sp, #0x10]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C750
+ ldr r0, [r5, #0x10]
+ add r1, r4, #0
+ bl FUN_0200C5C0
+ ldr r0, [r5, #0x10]
+ mov r1, #1
+ bl FUN_0200C644
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD11_0225D648
+MOD11_0225D648: ; 0x0225D648
+ push {r4, r5, r6, lr}
+ mov r4, #0
+ add r5, r0, #0
+ add r6, r4, #0
+_0225D650:
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl FUN_0200C644
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #5
+ blt _0225D650
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225D664
+MOD11_0225D664: ; 0x0225D664
+ ldr r3, _0225D66C ; =FUN_0200C644
+ ldr r0, [r0, #0x10]
+ mov r1, #0
+ bx r3
+ .align 2, 0
+_0225D66C: .word FUN_0200C644
+
+ thumb_func_start MOD11_0225D670
+MOD11_0225D670: ; 0x0225D670
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ ldr r0, [r6]
+ bl FUN_0200C658
+ cmp r0, #0
+ beq _0225D6A0
+ mov r4, #0
+ add r5, r6, #0
+_0225D682:
+ ldr r0, [r5]
+ bl FUN_0200C5A8
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0225D682
+ ldr r0, [r6, #0x10]
+ bl FUN_0200C658
+ cmp r0, #1
+ bne _0225D6A0
+ ldr r0, [r6, #0x10]
+ bl FUN_0200C5A8
+_0225D6A0:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225D6A4
+MOD11_0225D6A4: ; 0x0225D6A4
+ push {r4, r5, r6, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ mov r0, #0x52
+ str r0, [sp]
+ mov r0, #0xb
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ mov r0, #2
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x28]
+ add r4, r1, #0
+ add r6, r3, #0
+ str r0, [sp, #0x14]
+ add r0, r2, #0
+ mov r1, #3
+ add r2, r5, #0
+ add r3, r4, #0
+ bl FUN_0200C0DC
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x52
+ mov r3, #0xa
+ str r6, [sp, #8]
+ bl FUN_0200C00C
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [sp, #0x2c]
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x52
+ mov r3, #0xc
+ bl FUN_0200C124
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [sp, #0x30]
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r2, #0x52
+ mov r3, #0xd
+ bl FUN_0200C13C
+ add sp, #0x18
+ pop {r4, r5, r6, pc}
+
+ thumb_func_start MOD11_0225D714
+MOD11_0225D714: ; 0x0225D714
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r2, #0
+ add r6, r3, #0
+ bl FUN_0200C358
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0200C368
+ add r0, r5, #0
+ add r1, r6, #0
+ bl FUN_0200C378
+ ldr r1, [sp, #0x10]
+ add r0, r5, #0
+ bl FUN_0200C388
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225D73C
+MOD11_0225D73C: ; 0x0225D73C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ ldr r5, _0225D7AC ; =0x0225FEE4
+ add r6, r3, #0
+ add r7, r0, #0
+ str r1, [sp]
+ add r4, sp, #4
+ mov r3, #6
+_0225D74C:
+ ldmia r5!, {r0, r1}
+ stmia r4!, {r0, r1}
+ sub r3, r3, #1
+ bne _0225D74C
+ ldr r0, [r5]
+ mov r1, #0x20
+ str r0, [r4]
+ ldr r0, [sp, #0x50]
+ str r6, [sp, #0x18]
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x54]
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x58]
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x5c]
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x60]
+ str r0, [sp, #0x30]
+ add r0, r2, #0
+ bl AllocFromHeap
+ mov r1, #0
+ mov r2, #0x20
+ add r4, r0, #0
+ bl MI_CpuFill8
+ ldr r1, [sp]
+ add r0, r7, #0
+ add r2, sp, #4
+ bl FUN_0200C154
+ mov r1, #0
+ str r0, [r4]
+ bl FUN_0200C644
+ mov r0, #3
+ lsl r0, r0, #0x12
+ str r0, [r4, #0x14]
+ ldr r0, _0225D7B0 ; =MOD11_0225D828
+ ldr r2, _0225D7B4 ; =0x000003E7
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #4]
+ add r0, r4, #0
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225D7AC: .word 0x0225FEE4
+_0225D7B0: .word MOD11_0225D828
+_0225D7B4: .word 0x000003E7
+
+ thumb_func_start MOD11_0225D7B8
+MOD11_0225D7B8: ; 0x0225D7B8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl FUN_0200C3DC
+ ldr r0, [r4, #4]
+ bl FUN_0200CAB4
+ add r0, r4, #0
+ bl FreeToHeap
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0225D7D0
+MOD11_0225D7D0: ; 0x0225D7D0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r7, r1, #0
+ add r4, r2, #0
+ add r6, r3, #0
+ bl MOD11_0225D98C
+ str r7, [r5, #8]
+ str r4, [r5, #0xc]
+ str r6, [r5, #0x14]
+ lsl r1, r7, #0x10
+ lsl r2, r4, #0x10
+ ldr r0, [r5]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ add r3, r6, #0
+ bl FUN_0200C750
+ ldr r0, [r5]
+ mov r1, #1
+ bl FUN_0200C644
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD11_0225D800
+MOD11_0225D800: ; 0x0225D800
+ push {r3, lr}
+ mov r3, #3
+ lsl r3, r3, #0x12
+ bl MOD11_0225D7D0
+ pop {r3, pc}
+
+ thumb_func_start MOD11_0225D80C
+MOD11_0225D80C: ; 0x0225D80C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ mov r1, #0
+ bl FUN_0200C644
+ add r0, r4, #0
+ bl MOD11_0225D98C
+ pop {r4, pc}
+
+ thumb_func_start MOD11_0225D820
+MOD11_0225D820: ; 0x0225D820
+ strh r1, [r0, #0x18]
+ bx lr
+
+ thumb_func_start MOD11_0225D824
+MOD11_0225D824: ; 0x0225D824
+ ldrb r0, [r0, #0x1b]
+ bx lr
+
+ thumb_func_start MOD11_0225D828
+MOD11_0225D828: ; 0x0225D828
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ ldrb r0, [r4, #0x1b]
+ cmp r0, #1
+ bne _0225D836
+ mov r0, #0
+ strb r0, [r4, #0x1b]
+_0225D836:
+ mov r0, #0x18
+ ldrsh r1, [r4, r0]
+ cmp r1, #0
+ ble _0225D84C
+ sub r1, r1, #1
+ strh r1, [r4, #0x18]
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ bne _0225D84C
+ mov r0, #1
+ strb r0, [r4, #0x1a]
+_0225D84C:
+ ldr r0, [r4]
+ bl FUN_0200C658
+ cmp r0, #0
+ bne _0225D858
+ b _0225D984
+_0225D858:
+ ldrb r0, [r4, #0x1c]
+ cmp r0, #0
+ bne _0225D8DA
+ mov r1, #0xfa
+ ldr r2, [r4, #0x10]
+ lsl r1, r1, #2
+ add r2, r2, r1
+ add r0, r4, #0
+ ldr r1, _0225D988 ; =0x00004650
+ add r0, #0x10
+ str r2, [r4, #0x10]
+ cmp r2, r1
+ blt _0225D886
+ ldr r2, [r0]
+ sub r1, r2, r1
+ str r1, [r0]
+ ldrb r0, [r4, #0x1a]
+ cmp r0, #1
+ bne _0225D886
+ mov r0, #1
+ strb r0, [r4, #0x1c]
+ mov r0, #0
+ strb r0, [r4, #0x1a]
+_0225D886:
+ ldrb r0, [r4, #0x1c]
+ cmp r0, #0
+ bne _0225D8DA
+ ldr r0, [r4, #0x10]
+ mov r1, #0x64
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl Sin
+ mov r2, #0xe
+ asr r1, r0, #0x1f
+ lsl r2, r2, #0xc
+ mov r3, #0
+ bl _ll_mul
+ add r5, r1, #0
+ ldr r1, [r4, #8]
+ mov r2, #2
+ add r6, r0, #0
+ lsl r1, r1, #0x10
+ mov r7, #0
+ lsl r2, r2, #0xa
+ asr r1, r1, #0x10
+ add r2, r6, r2
+ adc r5, r7
+ lsl r5, r5, #0x14
+ lsr r2, r2, #0xc
+ orr r2, r5
+ asr r5, r2, #0xb
+ lsr r5, r5, #0x14
+ add r5, r2, r5
+ ldr r3, [r4, #0xc]
+ asr r2, r5, #0xc
+ sub r2, r3, r2
+ lsl r2, r2, #0x10
+ ldr r0, [r4]
+ ldr r3, [r4, #0x14]
+ asr r2, r2, #0x10
+ bl FUN_0200C750
+_0225D8DA:
+ ldrb r0, [r4, #0x1c]
+ cmp r0, #1
+ bne _0225D97E
+ ldrb r0, [r4, #0x1d]
+ cmp r0, #3
+ bhi _0225D97E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0225D8F2: ; jump table
+ .short _0225D8FA - _0225D8F2 - 2 ; case 0
+ .short _0225D912 - _0225D8F2 - 2 ; case 1
+ .short _0225D934 - _0225D8F2 - 2 ; case 2
+ .short _0225D962 - _0225D8F2 - 2 ; case 3
+_0225D8FA:
+ ldrb r0, [r4, #0x1e]
+ add r0, r0, #1
+ strb r0, [r4, #0x1e]
+ ldrb r0, [r4, #0x1e]
+ cmp r0, #3
+ bls _0225D97E
+ mov r0, #0
+ strb r0, [r4, #0x1e]
+ ldrb r0, [r4, #0x1d]
+ add r0, r0, #1
+ strb r0, [r4, #0x1d]
+ b _0225D97E
+_0225D912:
+ ldr r2, [r4, #0xc]
+ ldr r1, [r4, #8]
+ add r2, #8
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r4]
+ ldr r3, [r4, #0x14]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C750
+ mov r0, #1
+ strb r0, [r4, #0x1b]
+ ldrb r0, [r4, #0x1d]
+ add r0, r0, #1
+ strb r0, [r4, #0x1d]
+ b _0225D97E
+_0225D934:
+ ldrb r0, [r4, #0x1e]
+ add r0, r0, #1
+ strb r0, [r4, #0x1e]
+ ldrb r0, [r4, #0x1e]
+ cmp r0, #2
+ bls _0225D97E
+ ldr r2, [r4, #0xc]
+ ldr r1, [r4, #8]
+ add r2, r2, #2
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r4]
+ ldr r3, [r4, #0x14]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C750
+ mov r0, #0
+ strb r0, [r4, #0x1e]
+ ldrb r0, [r4, #0x1d]
+ add r0, r0, #1
+ strb r0, [r4, #0x1d]
+ b _0225D97E
+_0225D962:
+ ldrb r0, [r4, #0x1e]
+ add r0, r0, #1
+ strb r0, [r4, #0x1e]
+ ldrb r0, [r4, #0x1e]
+ cmp r0, #2
+ bls _0225D97E
+ add r0, r4, #0
+ bl MOD11_0225D80C
+ mov r0, #0
+ strb r0, [r4, #0x1e]
+ ldrb r0, [r4, #0x1d]
+ add r0, r0, #1
+ strb r0, [r4, #0x1d]
+_0225D97E:
+ ldr r0, [r4]
+ bl FUN_0200C5A8
+_0225D984:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0225D988: .word 0x00004650
+
+ thumb_func_start MOD11_0225D98C
+MOD11_0225D98C: ; 0x0225D98C
+ mov r1, #0
+ str r1, [r0, #0x10]
+ strb r1, [r0, #0x1c]
+ strb r1, [r0, #0x1d]
+ strb r1, [r0, #0x1e]
+ bx lr
+
+ .section .rodata
+ ; 0x0225D998
.byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x02, 0x03, 0x04, 0x05, 0x03, 0x02, 0x05, 0x04
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
@@ -99234,19 +99234,19 @@ MOD11_0225D98C: ; 0x0225D98C
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- ; Stupid hack to override alignment
- ; .section .sinit
- ; 0x0225FF18
- .global SDK_OVERLAY.MODULE_11.SINIT_START
- .global SDK_OVERLAY.MODULE_11.SINIT_END
-SDK_OVERLAY.MODULE_11.SINIT_START:
- .word MOD11_0222F284
- .word 0
-SDK_OVERLAY.MODULE_11.SINIT_END:
-
- .section .data
- ; 0x0225FF20
+
+ ; Stupid hack to override alignment
+ ; .section .sinit
+ ; 0x0225FF18
+ .global SDK_OVERLAY.MODULE_11.SINIT_START
+ .global SDK_OVERLAY.MODULE_11.SINIT_END
+SDK_OVERLAY.MODULE_11.SINIT_START:
+ .word MOD11_0222F284
+ .word 0
+SDK_OVERLAY.MODULE_11.SINIT_END:
+
+ .section .data
+ ; 0x0225FF20
.byte 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x04, 0x08, 0x04, 0x08, 0x08, 0x08, 0x06, 0x0C
.byte 0x0C, 0x0C, 0x04, 0x08, 0x10, 0x10, 0x02, 0x10, 0x0F, 0x0F, 0x08, 0x14, 0x02, 0x08, 0x08, 0x1E
.byte 0x28, 0x28, 0x32, 0x32, 0x0E, 0x10, 0x0A, 0x0F, 0x0F, 0x0C, 0x04, 0x04, 0x01, 0x01, 0x08, 0x05
diff --git a/arm9/modules/12/asm/module_12.s b/arm9/modules/12/asm/module_12.s
index acf2d363..d7aca4f9 100644
--- a/arm9/modules/12/asm/module_12.s
+++ b/arm9/modules/12/asm/module_12.s
@@ -217,7 +217,7 @@ _0222D7BC:
ldr r0, [r1, r0]
add r1, r6, #0
add r1, #0x36
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5]
add r6, r6, #1
add r5, r5, #2
@@ -975,11 +975,11 @@ _0222DE9E:
ldr r0, [r1, r0]
add r1, r4, #0
add r1, #0x36
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0222DEBE
mov r1, #0xb
- bl FUN_0206AB18
+ bl GetWazaAttr
add r3, r0, #0
b _0222DEC0
_0222DEBE:
@@ -5972,7 +5972,7 @@ _0223072E:
mov r1, #5
ldr r0, [r0, r6]
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
bl MOD12_0223EE70
add r1, r5, r4
add r4, r4, #1
@@ -7750,7 +7750,7 @@ _0223151C:
ldr r0, [r4]
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r6, #0x64
add r5, r0, #0
add r0, r6, #0
@@ -7777,17 +7777,17 @@ _0223154E:
ldr r0, [r4]
mov r1, #0x13
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0xc]
ldr r0, [r4]
mov r1, #0x17
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #8]
ldr r0, [r4]
mov r1, #0x14
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
add r0, r6, #0
add r0, #0xa0
@@ -7812,17 +7812,17 @@ _02231594:
ldr r0, [r4]
mov r1, #0x14
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0xc]
ldr r0, [r4]
mov r1, #0x13
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #8]
ldr r0, [r4]
mov r1, #0x15
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
add r0, r6, #0
add r0, #0xa0
@@ -7847,17 +7847,17 @@ _022315DA:
ldr r0, [r4]
mov r1, #0x15
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0xc]
ldr r0, [r4]
mov r1, #0x14
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #8]
ldr r0, [r4]
mov r1, #0x16
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
add r0, r6, #0
add r0, #0xa1
@@ -7882,17 +7882,17 @@ _02231620:
ldr r0, [r4]
mov r1, #0x16
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0xc]
ldr r0, [r4]
mov r1, #0x15
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #8]
ldr r0, [r4]
mov r1, #0x17
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
add r0, r6, #0
add r0, #0xa2
@@ -7917,17 +7917,17 @@ _02231666:
ldr r0, [r4]
mov r1, #0x17
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0xc]
ldr r0, [r4]
mov r1, #0x16
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #8]
ldr r0, [r4]
mov r1, #0x13
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
add r0, r6, #0
add r0, #0xa0
@@ -7954,7 +7954,7 @@ _022316B2:
ldr r0, [r4]
mov r1, #0x18
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #8]
add r1, r1, r7
add r1, r0, r1
@@ -8951,7 +8951,7 @@ _02231E5E:
ldr r0, [r0, r1]
add r1, r4, #0
add r1, #0x36
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r1, r4, #1
add r2, sp, #0x3c
strh r0, [r2, r1]
@@ -9369,7 +9369,7 @@ _022321A6:
ldr r0, [r1, r0]
add r1, r5, #0
add r1, #0x36
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022321C8
ldr r0, _0223220C ; =0x000002E1
@@ -10201,7 +10201,7 @@ _022327EC:
ldr r0, [r0, r1]
add r1, r6, #0
add r1, #0x36
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5]
add r6, r6, #1
add r5, r5, #2
@@ -10758,13 +10758,13 @@ _02232C2C:
ldr r1, [sp, #0x20]
add r4, r6, r1
mov r1, #0xa
- bl FUN_0206AB18
+ bl GetWazaAttr
mov r1, #0x4b
lsl r1, r1, #2
strb r0, [r4, r1]
ldrh r0, [r7]
mov r1, #0xb
- bl FUN_0206AB18
+ bl GetWazaAttr
mov r1, #0x13
lsl r1, r1, #4
strb r0, [r4, r1]
@@ -11076,7 +11076,7 @@ _02232EB2:
ldr r0, [r0, r1]
add r1, r4, #0
add r1, #0x36
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r2, r4, #1
add r1, sp, #0x10
strh r0, [r1, r2]
@@ -12221,7 +12221,7 @@ _022336D4:
mov r1, #5
ldr r0, [r0, r4]
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
bl MOD08_0222A6C8
cmp r0, #1
bne _02233750
@@ -12296,7 +12296,7 @@ _0223377C:
ldr r0, [r0]
mov r2, #0
ldr r0, [r0, r4]
- bl GetMonDataEncrypted
+ bl GetMonData
bl MOD08_0222A6C8
cmp r0, #1
bne _022337E6
@@ -15395,7 +15395,7 @@ MOD12_02235038: ; 0x02235038
ldr r0, [r1, r0]
ldr r2, [sp, #0x30]
mov r1, #0x76
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [r5]
ldr r0, _022350E8 ; =0x00000123
ldrb r0, [r1, r0]
@@ -16250,7 +16250,7 @@ _022356DA:
bl _s32_div_f
lsl r0, r0, #0x10
lsr r0, r0, #0x10
- bl FUN_0201B954
+ bl Cos
str r0, [sp]
lsl r6, r4, #0xc
ldrh r0, [r5, #0x1e]
@@ -16259,7 +16259,7 @@ _022356DA:
bl _s32_div_f
lsl r0, r0, #0x10
lsr r0, r0, #0x10
- bl FUN_0201B93C
+ bl Sin
str r0, [sp, #4]
ldr r0, [sp]
add r2, r6, #0
@@ -16534,14 +16534,14 @@ _0223591A:
bl _s32_div_f
lsl r0, r0, #0x10
lsr r0, r0, #0x10
- bl FUN_0201B93C
+ bl Sin
add r4, r0, #0
ldrh r0, [r5, #0xc]
mov r1, #0x64
bl _s32_div_f
lsl r0, r0, #0x10
lsr r0, r0, #0x10
- bl FUN_0201B954
+ bl Cos
add r6, r0, #0
ldr r0, [r5, #0x20]
mov r2, #3
@@ -16862,12 +16862,12 @@ _02235B9C:
ldr r0, [r6, r5]
mov r1, #0xb0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
ldr r0, [r6, r5]
mov r1, #0xb1
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r7, #7
beq _02235BBC
cmp r0, #7
@@ -16965,7 +16965,7 @@ MOD12_02235C44: ; 0x02235C44
add r4, r0, #0
add r0, r1, #0
mov r1, #0xb
- bl FUN_0206AB18
+ bl GetWazaAttr
lsl r1, r4, #2
add r2, r4, r1
ldr r1, _02235C5C ; =0x022454E4
@@ -18438,7 +18438,7 @@ _02236736:
lsl r0, r0, #2
ldr r0, [r1, r0]
mov r1, #5
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0
ldr r0, [r4]
mov r2, #0
@@ -18447,14 +18447,14 @@ _02236736:
lsl r0, r0, #2
ldr r0, [r1, r0]
mov r1, #0x6f
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
ldr r0, [r4]
ldr r1, [r0, #0xc]
ldrb r0, [r4, #0xd]
lsl r0, r0, #2
ldr r0, [r1, r0]
- bl FUN_02068A80
+ bl MonIsShiny
str r0, [sp, #0x20]
ldr r0, [r4]
mov r2, #0
@@ -18463,7 +18463,7 @@ _02236736:
lsl r0, r0, #2
ldr r0, [r1, r0]
mov r1, #0x70
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x1c]
ldr r0, [r4]
ldr r1, [r0, #0xc]
@@ -18472,7 +18472,7 @@ _02236736:
ldr r0, [r1, r0]
mov r1, #0
add r2, r1, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #8]
ldr r0, [r4]
lsl r5, r5, #2
@@ -18480,33 +18480,33 @@ _02236736:
mov r1, #5
ldr r0, [r0, r5]
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x18]
ldr r0, [r4]
mov r1, #0x6f
ldr r0, [r0, #0xc]
mov r2, #0
ldr r0, [r0, r5]
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x14]
ldr r0, [r4]
ldr r0, [r0, #0xc]
ldr r0, [r0, r5]
- bl FUN_02068A80
+ bl MonIsShiny
str r0, [sp, #0x10]
ldr r0, [r4]
mov r1, #0x70
ldr r0, [r0, #0xc]
mov r2, #0
ldr r0, [r0, r5]
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0xc]
ldr r0, [r4]
mov r1, #0
ldr r0, [r0, #0xc]
add r2, r1, #0
ldr r0, [r0, r5]
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #4]
mov r2, #0x47
mov r0, #0
@@ -19010,7 +19010,7 @@ _02236BD0:
lsl r0, r0, #2
ldr r0, [r2, r0]
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x10]
ldr r0, _02236CF0 ; =0x000005DD
bl FUN_020054C8
@@ -21837,7 +21837,7 @@ _022380B8:
ldr r0, _022380F8 ; =0x00000236
ldrh r0, [r7, r0]
strh r0, [r5]
- bl FUN_0206AB18
+ bl GetWazaAttr
strb r0, [r5, #2]
mov r0, #0x23
lsl r0, r0, #4
@@ -22518,7 +22518,7 @@ _022385D2:
ldr r0, [sp, #0xc]
mov r1, #0xb
ldrh r0, [r0]
- bl FUN_0206AB18
+ bl GetWazaAttr
bl MOD12_02235AC4
strb r0, [r7, #0xc]
ldr r0, [sp, #8]
@@ -22554,7 +22554,7 @@ _0223862C:
ldr r0, [sp, #0xc]
mov r1, #0xb
ldrh r0, [r0]
- bl FUN_0206AB18
+ bl GetWazaAttr
bl MOD12_02235AF0
strb r0, [r7, #0xc]
_0223863E:
@@ -23971,7 +23971,7 @@ _02239080:
ldr r0, [r0, r1]
add r1, r4, #0
add r1, #0x36
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5]
mov r0, #0x23
lsl r0, r0, #4
@@ -23983,11 +23983,11 @@ _02239080:
bne _022390BA
ldrh r0, [r5]
mov r1, #0xa
- bl FUN_0206AB18
+ bl GetWazaAttr
strb r0, [r5, #0xa]
ldrh r0, [r5]
mov r1, #0xb
- bl FUN_0206AB18
+ bl GetWazaAttr
strb r0, [r5, #0xb]
b _022390BE
_022390BA:
@@ -25318,7 +25318,7 @@ MOD12_02239980: ; 0x02239980
cmp r0, #0
bne _022399EE
ldr r0, [r4, #0x10]
- bl FUN_0201B9B8
+ bl Sin32
lsl r1, r0, #3
asr r0, r1, #0xb
lsr r0, r0, #0x14
@@ -27801,7 +27801,7 @@ _0223AC68:
lsl r0, r0, #2
ldr r0, [r1, r0]
mov r1, #5
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0
mov r0, #0x7f
str r0, [sp]
@@ -34508,7 +34508,7 @@ _0223E01C:
mov r5, #3
lsl r0, r0, #8
lsr r0, r0, #0x10
- bl FUN_0201B954
+ bl Cos
add r1, r5, #0
mul r1, r0
ldrb r2, [r4, #0x19]
@@ -34988,7 +34988,7 @@ MOD12_0223E3DC: ; 0x0223E3DC
bl _u32_div_f
lsl r0, r0, #0x10
lsr r0, r0, #0x10
- bl FUN_0201B93C
+ bl Sin
mov r1, #0xa
mul r1, r0
asr r0, r1, #0xb
@@ -35344,7 +35344,7 @@ _0223E6B6:
strb r0, [r4, #0x10]
_0223E6C6:
ldr r0, [r4, #0x20]
- bl FUN_0201B9B8
+ bl Sin32
lsl r1, r0, #2
asr r0, r1, #0xb
lsr r0, r0, #0x14
@@ -43888,7 +43888,7 @@ _022428E6:
str r0, [sp, #0x10]
ldr r0, [r1, r0]
mov r1, #0x76
- bl GetMonDataEncrypted
+ bl GetMonData
add r0, r5, #1
lsl r0, r0, #4
str r0, [sp, #0x14]
@@ -44552,7 +44552,7 @@ _02242E62:
add r0, r1, r0
lsl r0, r0, #8
lsr r0, r0, #0x10
- bl FUN_0201B93C
+ bl Sin
asr r1, r0, #0x1f
asr r3, r5, #0x1f
add r2, r5, #0
@@ -47346,7 +47346,7 @@ _022443A4:
lsl r0, r0, #2
ldr r0, [r1, r0]
mov r1, #5
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0
mov r0, #0x7f
str r0, [sp]
diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s
index 00b933b8..17079687 100644
--- a/arm9/modules/14/asm/module_14.s
+++ b/arm9/modules/14/asm/module_14.s
@@ -116,7 +116,7 @@ MOD14_021D75B8: ; 0x021D75B8
lsl r1, r1, #2
ldr r0, [r4, r1]
add r1, #0x95
- bl FUN_0206BAE4
+ bl PartyHasMon
cmp r0, #0
bne _021D75DE
mov r0, #0x47
@@ -1905,7 +1905,7 @@ _021D8476:
add r0, #0x19
strb r2, [r4, r0]
ldr r0, [r4, r1]
- bl FUN_0206B9AC
+ bl GetPartyCount
ldr r1, _021D8504 ; =0x0000013F
strb r0, [r4, r1]
add r0, r4, #0
@@ -3868,7 +3868,7 @@ _021D9488:
bl FUN_0206B5E4
mov r1, #0xab
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
beq _021D94AE
mov r0, #0
@@ -4031,7 +4031,7 @@ _021D95CA:
mov r0, #0x49
lsl r0, r0, #2
ldr r0, [r5, r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
sub r0, r0, #1
cmp r6, r0
beq _021D9610
@@ -4238,7 +4238,7 @@ _021D979C:
mov r0, #0x49
lsl r0, r0, #2
ldr r0, [r4, r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #6
beq _021D97F2
mov r0, #0x45
@@ -4699,7 +4699,7 @@ MOD14_021D9B84: ; 0x021D9B84
lsl r1, r1, #2
str r0, [sp]
ldr r0, [r0, r1]
- bl FUN_0206B9AC
+ bl GetPartyCount
mov r6, #0
add r5, r6, #0
str r0, [sp, #4]
@@ -4711,27 +4711,27 @@ _021D9B9E:
lsl r0, r0, #2
ldr r0, [r1, r0]
add r1, r6, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r4, r0, #0
- bl TryDecryptMon
+ bl AcquireMonLock
add r7, r0, #0
add r0, r4, #0
mov r1, #0xac
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _021D9BD2
add r0, r4, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021D9BD2
add r5, r5, #1
_021D9BD2:
add r0, r4, #0
add r1, r7, #0
- bl TryEncryptMon
+ bl ReleaseMonLock
cmp r5, #2
blt _021D9BE4
add sp, #8
@@ -5301,7 +5301,7 @@ _021DA042:
mov r1, #0xab
mov r2, #0
add r7, r0, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
beq _021DA080
ldr r4, _021DA164 ; =0x021E6224
@@ -5351,7 +5351,7 @@ _021DA0A4:
_021DA0AE:
add r0, r1, #0
ldr r0, [r0, #0x18]
- bl FUN_0206B9AC
+ bl GetPartyCount
str r0, [sp, #0x10]
mov r0, #0
str r0, [sp, #8]
@@ -5362,7 +5362,7 @@ _021DA0C2:
ldr r0, [sp, #4]
ldr r1, [sp, #8]
ldr r0, [r0, #0x18]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r4, _021DA164 ; =0x021E6224
ldr r5, [sp, #4]
add r7, r0, #0
@@ -5455,12 +5455,12 @@ MOD14_021DA168: ; 0x021DA168
mov r1, #0
add r5, r0, #0
str r1, [sp, #4]
- bl TryDecryptBoxMon
+ bl AcquireBoxMonLock
str r0, [sp]
add r0, r5, #0
mov r1, #0xac
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
bne _021DA1A8
mov r4, #0
@@ -5470,7 +5470,7 @@ _021DA18C:
add r0, r5, #0
add r1, #0x36
add r2, r7, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r6, r0
bne _021DA1A2
mov r0, #1
@@ -5483,7 +5483,7 @@ _021DA1A2:
_021DA1A8:
ldr r1, [sp]
add r0, r5, #0
- bl TryEncryptBoxMon
+ bl ReleaseBoxMonLock
ldr r0, [sp, #4]
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
@@ -8416,7 +8416,7 @@ MOD14_021DB8D0: ; 0x021DB8D0
mov r0, #0x49
lsl r0, r0, #2
ldr r0, [r5, r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
strb r0, [r4, #8]
mov r0, #8
ldrsb r0, [r4, r0]
@@ -8495,14 +8495,14 @@ _021DB96C:
mov r0, #0x49
lsl r0, r0, #2
ldr r0, [r5, r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r6, r0
bge _021DB98E
mov r0, #0x49
lsl r0, r0, #2
ldr r0, [r5, r0]
add r1, r6, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [r4]
b _021DB998
_021DB98E:
@@ -8518,7 +8518,7 @@ _021DB998:
beq _021DB9C4
mov r1, #0xab
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
beq _021DB9C4
mov r0, #1
@@ -8739,7 +8739,7 @@ _021DBB36:
mov r1, #0xab
mov r2, #0
str r0, [sp, #0x20]
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
beq _021DBB86
ldr r0, [sp, #0x20]
@@ -8896,13 +8896,13 @@ _021DBC70:
mov r0, #0x49
lsl r0, r0, #2
ldr r0, [r5, r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
add r1, r0, #0
mov r0, #0x49
lsl r0, r0, #2
ldr r0, [r5, r0]
sub r1, r1, #1
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0
_021DBC8A:
add r0, r7, #0
@@ -9122,7 +9122,7 @@ MOD14_021DBE34: ; 0x021DBE34
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x14]
- bl WipeBoxMonDataAndEncrypt
+ bl ZeroBoxMonData
mov r0, #1
strb r0, [r4, #0x13]
add r0, r4, #0
@@ -9189,18 +9189,18 @@ MOD14_021DBEAC: ; 0x021DBEAC
add r0, r5, #0
add r6, r2, #0
add r4, #0x4c
- bl TryDecryptBoxMon
+ bl AcquireBoxMonLock
str r0, [sp]
str r5, [r7, #0x4c]
add r0, r5, #0
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strh r0, [r4, #4]
add r0, r5, #0
mov r1, #6
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strh r0, [r4, #6]
mov r0, #0x47
lsl r0, r0, #2
@@ -9212,7 +9212,7 @@ MOD14_021DBEAC: ; 0x021DBEAC
add r0, r5, #0
mov r1, #0xac
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strb r0, [r4, #0xf]
ldrh r0, [r4, #4]
mov r1, #9
@@ -9221,7 +9221,7 @@ MOD14_021DBEAC: ; 0x021DBEAC
add r0, r5, #0
mov r1, #8
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r2, r0, #0
ldrh r1, [r4, #4]
add r0, r7, #0
@@ -9230,17 +9230,17 @@ MOD14_021DBEAC: ; 0x021DBEAC
add r0, r5, #0
mov r1, #0xb
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strb r0, [r4, #0xb]
add r0, r5, #0
mov r1, #0xb0
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strb r0, [r4, #0xc]
add r0, r5, #0
mov r1, #0xb1
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strb r0, [r4, #0xd]
ldrb r0, [r4, #0xf]
cmp r0, #0
@@ -9248,13 +9248,13 @@ MOD14_021DBEAC: ; 0x021DBEAC
add r0, r5, #0
mov r1, #0xaf
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
beq _021DBF68
mov r1, #0
add r0, r5, #0
add r2, r1, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r2, r0, #0
ldrh r1, [r4, #4]
add r0, r7, #0
@@ -9268,7 +9268,7 @@ _021DBF6C:
ldr r2, [r4, #0x14]
add r0, r5, #0
mov r1, #0x76
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
ldrb r0, [r4, #0xf]
cmp r0, #0
bne _021DBF8C
@@ -9302,7 +9302,7 @@ _021DBFAA:
bl FUN_0200A8E0
_021DBFB8:
add r0, r5, #0
- bl GetBoxMonNatureEncrypted
+ bl GetBoxMonNature
add r1, r0, #0
mov r0, #0x65
lsl r0, r0, #2
@@ -9312,7 +9312,7 @@ _021DBFB8:
add r0, r5, #0
mov r1, #0xa
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r1, r0, #0
mov r0, #0x66
lsl r0, r0, #2
@@ -9323,7 +9323,7 @@ _021DBFB8:
bl FreeMonPersonal
ldr r1, [sp]
add r0, r5, #0
- bl TryEncryptBoxMon
+ bl ReleaseBoxMonLock
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD14_021DBFF4
@@ -9371,125 +9371,125 @@ _021DC034:
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
- bl TryDecryptMon
+ bl AcquireMonLock
add r6, r0, #0
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0xa3
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0xa]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0xa4
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0xc]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0xa5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0xe]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0xa7
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x10]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0xa8
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x12]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0xa6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x14]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x13
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x16]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x14
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x18]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x15
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x1a]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x16
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x1c]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x17
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x1e]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x36
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x20]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x37
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x22]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x38
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x24]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x39
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x26]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
mov r1, #0x70
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r4, #7]
mov r0, #0x1a
lsl r0, r0, #4
ldr r0, [r5, r0]
add r1, r6, #0
- bl TryEncryptMon
+ bl ReleaseMonLock
add r0, r7, #0
add r0, #0xa4
ldrb r0, [r0]
@@ -9557,7 +9557,7 @@ MOD14_021DC1AC: ; 0x021DC1AC
ldr r0, [r4, #0x4c]
mov r1, #0xb
add r2, sp, #0
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0
bl MOD14_021DC3CC
cmp r0, #0
@@ -9623,12 +9623,12 @@ _021DC24A:
ldr r0, [r4]
mov r1, #6
add r2, sp, #0x1c
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
_021DC254:
ldr r0, [r4]
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
ldr r1, _021DC274 ; =0x000001ED
cmp r0, r1
bne _021DC26A
@@ -10215,7 +10215,7 @@ MOD14_021DC58C: ; 0x021DC58C
ldr r0, [r5, #0x4c]
add r1, r4, #0
add r2, r6, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
pop {r4, r5, r6, pc}
_021DC5B2:
ldrb r0, [r5, #0x1f]
@@ -10224,13 +10224,13 @@ _021DC5B2:
ldr r0, [r5, #0x4c]
add r1, r4, #0
add r2, r6, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
pop {r4, r5, r6, pc}
_021DC5C4:
ldr r0, [r5, #0x4c]
add r1, r4, #0
add r2, r6, #0
- bl GetMonDataEncrypted
+ bl GetMonData
pop {r4, r5, r6, pc}
thumb_func_start MOD14_021DC5D0
@@ -10245,13 +10245,13 @@ MOD14_021DC5D0: ; 0x021DC5D0
ldr r0, [r5, #0x4c]
add r1, r4, #0
add r2, r6, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
pop {r4, r5, r6, pc}
_021DC5EC:
ldr r0, [r5, #8]
add r1, r4, #0
add r2, r6, #0
- bl GetMonDataEncrypted
+ bl GetMonData
pop {r4, r5, r6, pc}
thumb_func_start MOD14_021DC5F8
@@ -14333,7 +14333,7 @@ _021DE5FE:
mov r1, #0xab
mov r2, #0
str r0, [sp, #0x34]
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
beq _021DE64E
add r0, r4, #0
@@ -14434,7 +14434,7 @@ _021DE6D0:
mov r1, #5
mov r2, #0
add r7, r0, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
beq _021DE70A
ldr r1, _021DE724 ; =0x00005814
@@ -14908,7 +14908,7 @@ _021DEA70:
mov r1, #0xab
mov r2, #0
str r0, [sp, #0x20]
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
beq _021DEB02
ldrb r1, [r5, #2]
@@ -15025,7 +15025,7 @@ _021DEB5C:
mov r1, #5
mov r2, #0
str r0, [sp, #0x2c]
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
beq _021DEBA0
add r0, r4, #0
@@ -17075,7 +17075,7 @@ _021DFB5E:
str r0, [r4, #0x18]
lsl r0, r0, #4
lsr r0, r0, #0x10
- bl FUN_0201B93C
+ bl Sin
ldr r1, [r4, #0x24]
add r2, r1, #0
mul r2, r0
@@ -18859,7 +18859,7 @@ MOD14_021E0940: ; 0x021E0940
str r2, [sp, #8]
str r3, [sp, #0xc]
ldr r4, [sp, #0x64]
- bl TryDecryptBoxMon
+ bl AcquireBoxMonLock
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x10]
@@ -18877,21 +18877,21 @@ MOD14_021E0940: ; 0x021E0940
add r0, r6, #0
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x18]
add r0, r6, #0
mov r1, #0x4c
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x14]
add r0, r6, #0
mov r1, #0x70
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x18
lsr r7, r0, #0x18
add r0, r6, #0
@@ -18905,12 +18905,12 @@ MOD14_021E0940: ; 0x021E0940
add r0, r6, #0
mov r1, #6
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strh r0, [r4, #0x30]
add r0, r6, #0
mov r1, #0xb
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strh r0, [r4, #0x2e]
add r0, r4, #4
bl FUN_020B1A24
@@ -18971,7 +18971,7 @@ _021E0A36:
bl MOD14_021E0B54
ldr r1, [sp, #0x10]
add r0, r6, #0
- bl TryEncryptBoxMon
+ bl ReleaseBoxMonLock
add sp, #0x44
pop {r4, r5, r6, r7, pc}
.align 2, 0
@@ -18987,19 +18987,19 @@ MOD14_021E0A60: ; 0x021E0A60
str r2, [sp, #8]
add r7, r3, #0
ldr r4, [sp, #0x70]
- bl TryDecryptBoxMon
+ bl AcquireBoxMonLock
str r0, [sp, #0x14]
add r0, r6, #0
mov r1, #0x4c
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x10]
add r0, r6, #0
mov r1, #0x70
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0xc]
@@ -19023,12 +19023,12 @@ MOD14_021E0A60: ; 0x021E0A60
add r0, r6, #0
mov r1, #6
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strh r0, [r4, #0x30]
add r0, r6, #0
mov r1, #0xb
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strh r0, [r4, #0x2e]
add r0, r4, #4
bl FUN_020B1A24
@@ -19079,7 +19079,7 @@ _021E0B28:
bl MOD14_021E0B54
ldr r1, [sp, #0x14]
add r0, r6, #0
- bl TryEncryptBoxMon
+ bl ReleaseBoxMonLock
add sp, #0x40
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -21819,26 +21819,26 @@ _021E204A:
bl FUN_0206B5E4
add r4, r4, #1
add r5, r0, #0
- bl TryDecryptBoxMon
+ bl AcquireBoxMonLock
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x1c]
add r0, r5, #0
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r7, r0, #0
beq _021E20C8
add r0, r5, #0
mov r1, #0x4c
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
bne _021E209A
add r0, r5, #0
mov r1, #0x70
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x10
lsr r1, r0, #0x10
add r0, r7, #0
@@ -21876,7 +21876,7 @@ _021E20AA:
_021E20C8:
ldr r1, [sp, #0x1c]
add r0, r5, #0
- bl TryEncryptBoxMon
+ bl ReleaseBoxMonLock
ldr r0, [sp, #0x24]
add r6, r6, #2
add r0, r0, #1
@@ -23402,7 +23402,7 @@ MOD14_021E2C7C: ; 0x021E2C7C
add r6, r0, #0
ldr r0, [r6, #0xc]
ldr r0, [r0, #4]
- bl FUN_0206B9AC
+ bl GetPartyCount
add r1, r6, #0
add r1, #0x28
ldrb r4, [r1]
@@ -23570,7 +23570,7 @@ MOD14_021E2DB4: ; 0x021E2DB4
add r5, r0, #0
ldr r0, [r5, #0xc]
ldr r0, [r0, #4]
- bl FUN_0206B9AC
+ bl GetPartyCount
sub r4, r0, #1
add r0, r5, #0
add r0, #0x28
@@ -23975,7 +23975,7 @@ MOD14_021E30C0: ; 0x021E30C0
str r1, [sp]
ldr r0, [r0, #4]
str r2, [sp, #4]
- bl FUN_0206B9AC
+ bl GetPartyCount
sub r6, r0, #1
add r4, r5, #0
mov r0, #0x34
@@ -24281,7 +24281,7 @@ _021E330E:
ldr r0, [sp, #0x24]
ldr r0, [r0, #0xc]
ldr r0, [r0, #4]
- bl FUN_0206B9AC
+ bl GetPartyCount
mov r4, #0
str r0, [sp, #0x20]
cmp r0, #0
@@ -24299,7 +24299,7 @@ _021E3330:
add r1, r4, #0
ldr r0, [r0, #0xc]
ldr r0, [r0, #4]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0
mov r0, #1
str r0, [sp]
@@ -24347,7 +24347,7 @@ MOD14_021E3390: ; 0x021E3390
add r7, r0, #0
ldr r0, [r7, #0xc]
ldr r0, [r0, #4]
- bl FUN_0206B9AC
+ bl GetPartyCount
mov r6, #0
str r0, [sp]
cmp r0, #0
diff --git a/arm9/modules/16/asm/module_16.s b/arm9/modules/16/asm/module_16.s
index 3191e90c..8fa63c8c 100644
--- a/arm9/modules/16/asm/module_16.s
+++ b/arm9/modules/16/asm/module_16.s
@@ -14346,7 +14346,7 @@ MOD16_021DDECC: ; 0x021DDECC
mov r0, #0x83
ldr r1, [r6, #0xc]
lsl r0, r0, #2
- bl FUN_0201BC84
+ bl MathUtil_0201BC84
add r2, r0, #0
ldr r3, [r6, #0x1c]
add r0, r4, #0
@@ -15542,7 +15542,7 @@ MOD16_021DE8A0: ; 0x021DE8A0
sub r1, #0x68
sub r2, #0xf8
sub r3, #0x68
- bl FUN_0201BBD0
+ bl CircularDistance
mov r1, #0xa
mul r1, r0
str r1, [r4, #0xc]
@@ -44165,7 +44165,7 @@ MOD16_021EBC30: ; 0x021EBC30
sub r1, #0x9d
sub r2, #0x33
sub r3, #0x9d
- bl FUN_0201BBD0
+ bl CircularDistance
add r6, r0, #0
bpl _021EBC56
neg r0, r6
@@ -44306,7 +44306,7 @@ MOD16_021EBD3C: ; 0x021EBD3C
ldr r1, [r1, #0x5c]
add r4, r0, #0
mov r0, #0xe
- bl FUN_0201BC84
+ bl MathUtil_0201BC84
add r1, r0, #0
lsl r1, r1, #0x10
ldr r0, [r4]
@@ -51043,7 +51043,7 @@ MOD16_021EEFA4: ; 0x021EEFA4
ldr r0, [r4, #0x10]
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x6f
lsl r1, r1, #2
str r0, [r5, r1]
@@ -52755,7 +52755,7 @@ _021EFCEA:
lsl r0, r0, #2
strb r7, [r1, r0]
_021EFCFC:
- bl rand_LC
+ bl LCRandom
lsr r1, r0, #0x1f
lsl r2, r0, #0x1c
sub r2, r2, r1
@@ -52984,7 +52984,7 @@ _021EFE9C:
add r3, r3, #2
cmp r2, #4
blt _021EFE6A
- bl rand_LC
+ bl LCRandom
add r1, r4, #0
bl _s32_div_f
add r0, sp, #0
@@ -53160,7 +53160,7 @@ _021EFFE6:
add r2, r2, #2
cmp r1, #4
blt _021EFFBA
- bl rand_LC
+ bl LCRandom
add r1, r4, #0
bl _s32_div_f
add r0, sp, #0x10
@@ -53232,7 +53232,7 @@ _021F0070:
add r2, r2, #2
cmp r4, #4
blt _021F0056
- bl rand_LC
+ bl LCRandom
add r1, r6, #0
bl _s32_div_f
add r0, sp, #0x1c
@@ -53441,7 +53441,7 @@ MOD16_021F01FC: ; 0x021F01FC
add r0, r5, #0
bl MOD16_021F2D54
add r6, r0, #0
- bl rand_LC
+ bl LCRandom
lsr r2, r0, #0x1f
lsl r1, r0, #0x18
sub r1, r1, r2
@@ -53471,7 +53471,7 @@ MOD16_021F0238: ; 0x021F0238
add r0, r5, #0
bl MOD16_021F2D54
add r6, r0, #0
- bl rand_LC
+ bl LCRandom
lsr r2, r0, #0x1f
lsl r1, r0, #0x18
sub r1, r1, r2
@@ -53501,7 +53501,7 @@ MOD16_021F0274: ; 0x021F0274
add r0, r5, #0
bl MOD16_021F2D54
add r6, r0, #0
- bl rand_LC
+ bl LCRandom
lsr r2, r0, #0x1f
lsl r1, r0, #0x18
sub r1, r1, r2
@@ -53531,7 +53531,7 @@ MOD16_021F02B0: ; 0x021F02B0
add r0, r5, #0
bl MOD16_021F2D54
add r6, r0, #0
- bl rand_LC
+ bl LCRandom
lsr r2, r0, #0x1f
lsl r1, r0, #0x18
sub r1, r1, r2
@@ -55018,7 +55018,7 @@ _021F0E5A:
_021F0E68:
ldr r0, [sp, #0xc]
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r1, [sp, #8]
add r6, r0, #0
cmp r4, r1
@@ -55028,19 +55028,19 @@ _021F0E68:
beq _021F0EB6
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F0EB6
add r0, r6, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F0EB6
add r0, r6, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _021F0ECC ; =0x000001EE
cmp r0, r1
beq _021F0EB6
@@ -55180,7 +55180,7 @@ _021F0F88:
beq _021F0FC2
cmp r6, #0
beq _021F0FC2
- bl rand_LC
+ bl LCRandom
mov r1, #1
tst r0, r1
beq _021F0FBA
@@ -55568,7 +55568,7 @@ _021F1276:
_021F128E:
ldr r0, [sp, #0x14]
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r1, [sp, #8]
add r4, r0, #0
cmp r5, r1
@@ -55578,26 +55578,26 @@ _021F128E:
beq _021F12EA
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F12EA
add r0, r4, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F12EA
add r0, r4, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _021F1300 ; =0x000001EE
cmp r0, r1
beq _021F12EA
add r0, r4, #0
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0x10]
tst r0, r1
beq _021F12EA
@@ -55683,7 +55683,7 @@ _021F136A:
_021F1382:
ldr r0, [sp, #0x14]
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
ldr r1, [sp, #8]
add r4, r0, #0
cmp r5, r1
@@ -55693,26 +55693,26 @@ _021F1382:
beq _021F13DE
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F13DE
add r0, r4, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F13DE
add r0, r4, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _021F13F4 ; =0x000001EE
cmp r0, r1
beq _021F13DE
add r0, r4, #0
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0x10]
tst r0, r1
bne _021F13DE
@@ -57075,12 +57075,12 @@ _021F1E2C:
beq _021F1E66
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
ldr r0, [sp, #0xc]
mov r1, #0xa3
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r7, r0
beq _021F1E66
ldr r0, [sp]
@@ -57149,13 +57149,13 @@ _021F1ED6:
add r0, r5, #0
add r1, #0x3a
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r4, #0
add r6, r0, #0
add r0, r5, #0
add r1, #0x42
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r6, r0
beq _021F1EFE
ldr r0, [sp, #4]
@@ -57555,19 +57555,19 @@ _021F21D8:
mov r1, #0xa2
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F22A0
add r0, r6, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F22A0
add r0, r6, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _021F22C0 ; =0x000001EE
cmp r0, r1
beq _021F22A0
@@ -57579,7 +57579,7 @@ _021F221E:
add r0, r6, #0
add r1, #0x36
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5]
add r4, r4, #1
add r5, r5, #2
@@ -57592,7 +57592,7 @@ _021F2238:
add r0, r6, #0
add r1, #0x46
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r4]
add r5, r5, #1
add r4, r4, #1
@@ -57601,12 +57601,12 @@ _021F2238:
add r0, r6, #0
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0
add r0, r6, #0
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, sp, #0x44
str r1, [sp]
lsl r1, r4, #0x10
@@ -59600,7 +59600,7 @@ _021F3122:
str r0, [sp, #0x20]
b _021F3214
_021F3132:
- bl rand_LC
+ bl LCRandom
mov r1, #0xb
bl _s32_div_f
ldr r0, [sp, #0x64]
@@ -59644,7 +59644,7 @@ _021F3170:
add r4, r0, #0
b _021F3214
_021F318E:
- bl rand_LC
+ bl LCRandom
mov r1, #0x64
bl _s32_div_f
cmp r1, #5
@@ -60065,7 +60065,7 @@ _021F3486:
add r0, r4, #0
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r0, #0
lsl r1, r1, #0x10
add r0, r6, #0
@@ -60078,7 +60078,7 @@ _021F34A2:
add r0, r4, #0
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r0, #0
lsl r1, r1, #0x10
add r0, r6, #0
@@ -60166,32 +60166,32 @@ _021F3530:
add r0, r4, #0
mov r1, #0x4b
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, r0, #0
add r0, r4, #0
mov r1, #0x4a
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0
add r0, r4, #0
mov r1, #0x49
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
add r0, r4, #0
mov r1, #0x48
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #4]
add r0, r4, #0
mov r1, #0x46
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #8]
add r0, r4, #0
mov r1, #0x47
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r0, #0
lsl r2, r6, #0x1f
lsl r0, r5, #0x1f
@@ -60398,19 +60398,19 @@ _021F36EC:
mov r1, #0xa2
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F37DE
add r0, r6, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F37DE
add r0, r6, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _021F3804 ; =0x000001EE
cmp r0, r1
beq _021F37DE
@@ -60426,7 +60426,7 @@ _021F3730:
add r0, r6, #0
add r1, #0x36
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x1c]
@@ -60444,7 +60444,7 @@ _021F3730:
add r0, r6, #0
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x30]
add r0, r5, #0
add r1, r4, #0
@@ -60483,7 +60483,7 @@ _021F3730:
mov r0, #2
tst r0, r1
beq _021F37D8
- bl rand_LC
+ bl LCRandom
mov r1, #3
bl _s32_div_f
cmp r1, #2
@@ -60700,19 +60700,19 @@ _021F3956:
mov r1, #0xa2
mov r2, #0
str r0, [sp, #0x50]
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F39BC
ldr r0, [sp, #0x50]
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F39BC
ldr r0, [sp, #0x50]
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _021F3B84 ; =0x000001EE
cmp r0, r1
beq _021F39BC
@@ -60750,7 +60750,7 @@ _021F39C2:
ldr r0, [sp, #0x50]
add r1, #0x36
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r7, r0, #0x10
ldr r0, [sp, #0x14]
@@ -60780,7 +60780,7 @@ _021F39F2:
ldr r0, [sp, #0x50]
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x70]
add r0, r5, #0
add r1, r6, #0
@@ -60820,7 +60820,7 @@ _021F3A58:
mov r0, #2
tst r0, r1
beq _021F3A7E
- bl rand_LC
+ bl LCRandom
mov r1, #3
bl _s32_div_f
cmp r1, #2
@@ -60844,7 +60844,7 @@ _021F3A7E:
ldr r0, [sp, #0x50]
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x80]
add r0, r5, #0
add r1, r4, #0
@@ -60884,7 +60884,7 @@ _021F3AE4:
mov r0, #2
tst r0, r1
beq _021F3B0A
- bl rand_LC
+ bl LCRandom
mov r1, #3
bl _s32_div_f
cmp r1, #2
@@ -60934,19 +60934,19 @@ _021F3B3C:
mov r1, #0xa2
mov r2, #0
str r0, [sp, #0x20]
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F3BBE
ldr r0, [sp, #0x20]
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F3BBE
ldr r0, [sp, #0x20]
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _021F3B84 ; =0x000001EE
cmp r0, r1
beq _021F3BBE
@@ -60993,7 +60993,7 @@ _021F3BC4:
ldr r0, [sp, #0x20]
add r1, #0x36
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r7, r0, #0x10
ldr r0, [sp, #0x14]
@@ -61023,7 +61023,7 @@ _021F3BF4:
ldr r0, [sp, #0x20]
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x90]
add r0, r5, #0
add r1, r6, #0
@@ -61062,7 +61062,7 @@ _021F3C5A:
ldr r0, [sp, #0xb0]
cmp r0, #0
bne _021F3C82
- bl rand_LC
+ bl LCRandom
lsr r1, r0, #0x1f
lsl r2, r0, #0x1f
sub r2, r2, r1
@@ -61089,7 +61089,7 @@ _021F3C82:
ldr r0, [sp, #0x20]
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0xa0]
add r0, r5, #0
add r1, r4, #0
@@ -61128,7 +61128,7 @@ _021F3CE8:
ldr r0, [sp, #0xb0]
cmp r0, #0
bne _021F3D10
- bl rand_LC
+ bl LCRandom
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
@@ -61235,7 +61235,7 @@ _021F3D78:
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021F3DC2:
- bl rand_LC
+ bl LCRandom
mov r1, #0xa
bl _s32_div_f
cmp r1, #0
@@ -61313,7 +61313,7 @@ _021F3E18:
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021F3E62:
- bl rand_LC
+ bl LCRandom
mov r1, #0xa
bl _s32_div_f
cmp r1, #0
@@ -61348,7 +61348,7 @@ MOD16_021F3E90: ; 0x021F3E90
bl MOD16_021F3D3C
cmp r0, #0
beq _021F3EB8
- bl rand_LC
+ bl LCRandom
mov r1, #3
bl _s32_div_f
cmp r1, #0
@@ -61455,19 +61455,19 @@ _021F3F62:
mov r1, #0xa2
mov r2, #0
add r4, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F3FE6
add r0, r4, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F3FE6
add r0, r4, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _021F3FFC ; =0x000001EE
cmp r0, r1
beq _021F3FE6
@@ -61490,13 +61490,13 @@ _021F3F62:
add r0, r4, #0
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r1, r0, #0x18
ldr r0, [sp, #0x10]
cmp r0, r1
bne _021F3FE6
- bl rand_LC
+ bl LCRandom
mov r1, #1
tst r0, r1
beq _021F3FE6
@@ -61608,19 +61608,19 @@ _021F4094:
mov r1, #0xa2
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F40FA
add r0, r6, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F40FA
add r0, r6, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _021F4254 ; =0x000001EE
cmp r0, r1
beq _021F40FA
@@ -61669,12 +61669,12 @@ _021F40FC:
add r0, r6, #0
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x40]
add r0, r6, #0
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r0, #0
lsl r1, r1, #0x10
add r0, r5, #0
@@ -61685,12 +61685,12 @@ _021F40FC:
add r0, r6, #0
mov r1, #0xb0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
add r0, r6, #0
mov r1, #0xb1
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [sp, #0x40]
ldr r2, [sp, #0x38]
str r1, [sp]
@@ -61715,7 +61715,7 @@ _021F4182:
add r0, r6, #0
add r1, #0x36
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x20]
@@ -61733,7 +61733,7 @@ _021F4182:
add r0, r6, #0
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _021F425C ; =0x0000306C
str r0, [sp, #0x4c]
ldrh r1, [r4, r1]
@@ -61776,7 +61776,7 @@ _021F4182:
mov r0, #2
tst r0, r1
beq _021F4232
- bl rand_LC
+ bl LCRandom
ldr r1, [sp, #0x24]
bl _s32_div_f
cmp r1, #0
@@ -61855,7 +61855,7 @@ _021F42A4:
ldrh r0, [r6, r7]
cmp r0, #0
bne _021F42C8
- bl rand_LC
+ bl LCRandom
mov r1, #1
tst r0, r1
beq _021F42C8
@@ -61874,7 +61874,7 @@ _021F42C8:
ldrb r0, [r1, r0]
cmp r0, #0
bne _021F42EE
- bl rand_LC
+ bl LCRandom
mov r1, #1
tst r0, r1
beq _021F42EE
@@ -61912,7 +61912,7 @@ _021F4308:
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
_021F4322:
- bl rand_LC
+ bl LCRandom
mov r1, #1
tst r0, r1
beq _021F433A
@@ -62080,19 +62080,19 @@ _021F445C:
mov r1, #0xa2
mov r2, #0
add r4, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F44BA
add r0, r4, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F44BA
add r0, r4, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _021F4598 ; =0x000001EE
cmp r0, r1
beq _021F44BA
@@ -62308,7 +62308,7 @@ _021F462E:
bl MOD11_02230014
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F4664
ldr r0, _021F4694 ; =0x0000219C
@@ -62420,7 +62420,7 @@ _021F4704:
mov r1, #0xad
mov r2, #0
str r0, [sp, #0x68]
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r1, r0, #0x10
beq _021F47E0
@@ -62430,7 +62430,7 @@ _021F4704:
ldr r0, [sp, #0x68]
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F47E0
add r0, r4, #0
@@ -62477,14 +62477,14 @@ _021F4704:
ldr r0, [sp, #0x68]
mov r1, #0xb0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x58]
ldr r0, [sp, #0x68]
mov r1, #0xb1
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x54]
@@ -62542,7 +62542,7 @@ _021F480E:
add r0, r4, #0
add r1, #0x36
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x3c]
@@ -62560,7 +62560,7 @@ _021F480E:
add r0, r4, #0
mov r1, #0xa
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x70]
add r0, r5, #0
add r1, r6, #0
@@ -62648,7 +62648,7 @@ _021F48E0:
mov r1, #0xad
mov r2, #0
str r0, [sp, #0x1c]
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r1, r0, #0x10
beq _021F4900
@@ -62661,7 +62661,7 @@ _021F4902:
ldr r0, [sp, #0x1c]
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F4A06
ldr r0, _021F4A20 ; =0x0000219C
@@ -62703,7 +62703,7 @@ _021F4954:
ldr r0, [sp, #0x1c]
add r1, #0x36
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x8c]
@@ -62866,29 +62866,29 @@ _021F4A94:
bl MOD11_0222FF88
add r7, r0, #0
mov r5, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _021F4AF2
_021F4AA8:
add r0, r7, #0
add r1, r5, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xa2
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F4AE6
add r0, r6, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021F4AE6
add r0, r6, #0
mov r1, #0xad
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _021F4D70 ; =0x000001EE
cmp r0, r1
beq _021F4AE6
@@ -62900,7 +62900,7 @@ _021F4AA8:
_021F4AE6:
add r0, r7, #0
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _021F4AA8
_021F4AF2:
diff --git a/arm9/modules/17/asm/module_17.s b/arm9/modules/17/asm/module_17.s
index 4f74dada..a45d8d7f 100644
--- a/arm9/modules/17/asm/module_17.s
+++ b/arm9/modules/17/asm/module_17.s
@@ -6601,7 +6601,7 @@ _021DA6B8:
str r0, [r5]
mov r0, #0x12
str r0, [r4]
- bl rand_MT
+ bl MTRandom
ldr r2, [sp, #0x10]
mov r1, #0x6c
sub r1, r1, r2
@@ -6609,7 +6609,7 @@ _021DA6B8:
ldr r0, [r5]
add r0, r0, r1
str r0, [r5]
- bl rand_MT
+ bl MTRandom
ldr r2, [sp, #0x14]
mov r1, #0x7d
sub r1, r1, r2
@@ -8316,14 +8316,14 @@ _021DB2C2:
add r1, sp, #0x14
add r2, sp, #0x10
bl MOD17_021DBC08
- bl rand_MT
+ bl MTRandom
ldr r2, [sp, #0x14]
mov r1, #0x6c
sub r1, r1, r2
bl _u32_div_f
add r1, #0xa
str r1, [sp, #0xc]
- bl rand_MT
+ bl MTRandom
ldr r2, [sp, #0x10]
mov r1, #0x7d
sub r1, r1, r2
@@ -8856,7 +8856,7 @@ MOD17_021DB700: ; 0x021DB700
add r0, r4, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r0, r6, #0
add r1, r4, #0
mov r2, #2
diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s
index 36ef4cf5..d233da89 100644
--- a/arm9/modules/18/asm/module_18.s
+++ b/arm9/modules/18/asm/module_18.s
@@ -1079,7 +1079,7 @@ _02239E96:
mvn r0, r0
pop {r3, r4, r5, r6, r7, pc}
_02239EA8:
- bl rand_LC
+ bl LCRandom
add r1, r5, #0
bl _s32_div_f
ldr r0, _02239EF4 ; =0x02251380
@@ -14722,7 +14722,7 @@ _0224072E:
ldrh r1, [r1, #0x16]
strh r2, [r0, #8]
strh r1, [r0, #0xa]
- bl rand_LC
+ bl LCRandom
lsr r2, r0, #0x1f
lsl r1, r0, #0x1e
sub r1, r1, r2
@@ -19641,7 +19641,7 @@ _02242DD2:
ldrb r1, [r4, r0]
add r1, r1, #1
strb r1, [r4, r0]
- bl rand_LC
+ bl LCRandom
mov r1, #0xa
bl _s32_div_f
add r1, #0x7b
@@ -22737,13 +22737,13 @@ _022445F6:
str r0, [r5]
str r0, [r5, #4]
str r0, [r5, #8]
- bl rand_LC
+ bl LCRandom
mov r1, #0x7d
lsl r1, r1, #2
bl _s32_div_f
add r1, #0x32
str r1, [r4]
- bl rand_LC
+ bl LCRandom
mov r1, #0x7d
lsl r1, r1, #2
bl _s32_div_f
@@ -29675,7 +29675,7 @@ MOD18_02247BB8: ; 0x02247BB8
mov r4, #0
add r7, sp, #0x14
_02247C0A:
- bl rand_MT
+ bl MTRandom
mov r1, #0xc
bl _u32_div_f
add r2, r1, #0
diff --git a/arm9/modules/27/asm/module_27.s b/arm9/modules/27/asm/module_27.s
index 8b3921cf..7bd6fc00 100644
--- a/arm9/modules/27/asm/module_27.s
+++ b/arm9/modules/27/asm/module_27.s
@@ -293,7 +293,7 @@ MOD27_02254A48: ; 0x02254A48
str r0, [sp]
add r0, r1, #0
str r1, [sp, #4]
- bl FUN_0206B9AC
+ bl GetPartyCount
ldr r1, [sp]
mov r6, #0
str r0, [r1]
@@ -303,9 +303,9 @@ MOD27_02254A48: ; 0x02254A48
_02254A62:
ldr r0, [sp, #4]
add r1, r6, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r4, r0, #0
- bl TryDecryptMon
+ bl AcquireMonLock
add r7, r0, #0
add r0, r4, #0
bl FUN_0206B688
@@ -313,27 +313,27 @@ _02254A62:
add r0, r4, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #8]
add r0, r4, #0
mov r1, #0xa2
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0xa]
add r0, r4, #0
mov r1, #0xa3
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0xc]
add r0, r4, #0
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0xe]
add r0, r4, #0
mov r1, #0x9f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02254ABC
mov r0, #1
@@ -345,16 +345,16 @@ _02254ABE:
add r0, r4, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r5, #0x12]
add r0, r4, #0
mov r1, #0x70
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r5, #0x13]
add r0, r4, #0
add r1, r7, #0
- bl TryEncryptMon
+ bl ReleaseMonLock
ldr r0, [sp]
add r6, r6, #1
ldr r0, [r0]
diff --git a/arm9/modules/28/asm/module_28.s b/arm9/modules/28/asm/module_28.s
index 89222d17..faaa636a 100644
--- a/arm9/modules/28/asm/module_28.s
+++ b/arm9/modules/28/asm/module_28.s
@@ -73,7 +73,7 @@ MOD28_0225489C: ; 0x0225489C
mov r1, #0
str r0, [sp, #4]
str r1, [sp]
- bl FUN_0206B9AC
+ bl GetPartyCount
mov r6, #0
str r0, [r7, #4]
cmp r0, #0
@@ -82,22 +82,22 @@ MOD28_0225489C: ; 0x0225489C
_022548D6:
ldr r0, [sp, #4]
add r1, r6, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0
add r5, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _02254962
add r0, r5, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0xc]
add r0, r5, #0
mov r1, #0x70
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x10]
add r0, r5, #0
bl FUN_0206B688
@@ -105,7 +105,7 @@ _022548D6:
add r0, r5, #0
mov r1, #9
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
bl MOD28_0225498C
cmp r0, #6
bhi _02254944
@@ -820,12 +820,12 @@ _02254E50: .word 0x00000165
MOD28_02254E54: ; 0x02254E54
push {r3, r4, r5, lr}
add r5, r0, #0
- bl rand_MT
+ bl MTRandom
mov r1, #0x3f
and r0, r1
sub r0, #0x20
lsl r4, r0, #0xc
- bl rand_MT
+ bl MTRandom
mov r1, #0x3f
and r0, r1
sub r0, #0x20
@@ -2216,7 +2216,7 @@ _022558A6:
add r0, r4, #0
add r0, #0x35
ldrb r0, [r0]
- bl FUN_0201B93C
+ bl Sin
mov r1, #0x13
mvn r1, r1
mul r1, r0
diff --git a/arm9/modules/35/asm/module_35.s b/arm9/modules/35/asm/module_35.s
index d24971d9..a07a6426 100644
--- a/arm9/modules/35/asm/module_35.s
+++ b/arm9/modules/35/asm/module_35.s
@@ -330,7 +330,7 @@ _02254A7A:
str r0, [sp, #8]
bl FUN_02023C7C
add r4, r0, #0
- bl TryDecryptBoxMon
+ bl AcquireBoxMonLock
str r0, [sp, #0xc]
add r0, r4, #0
bl FUN_0206B688
@@ -338,22 +338,22 @@ _02254A7A:
add r0, r4, #0
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strh r0, [r6, #0x1c]
add r0, r4, #0
mov r1, #0x70
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strh r0, [r6, #0x20]
ldr r0, [sp, #8]
bl MOD05_021EC7B4
str r0, [r5, #0xc]
add r0, r4, #0
- bl GetBoxMonGenderEncrypted
+ bl GetBoxMonGender
str r0, [r5, #0x14]
ldr r1, [sp, #0xc]
add r0, r4, #0
- bl TryEncryptBoxMon
+ bl ReleaseBoxMonLock
ldr r0, [sp]
add r7, r7, #1
ldrb r0, [r0]
diff --git a/arm9/modules/36/asm/module_36.s b/arm9/modules/36/asm/module_36.s
index 93e6816a..4c84dc7b 100644
--- a/arm9/modules/36/asm/module_36.s
+++ b/arm9/modules/36/asm/module_36.s
@@ -1439,7 +1439,7 @@ _022552D8:
ldr r0, [r4, #0x60]
cmp r0, #0
beq _0225539A
- bl rand_MT
+ bl MTRandom
mov r1, #7
and r0, r1
str r0, [r4, #0x6c]
diff --git a/arm9/modules/37/asm/module_37.s b/arm9/modules/37/asm/module_37.s
index 7433805c..886ec479 100644
--- a/arm9/modules/37/asm/module_37.s
+++ b/arm9/modules/37/asm/module_37.s
@@ -213,7 +213,7 @@ _022549AC:
bl MOD37_02254A18
cmp r0, #0
beq _022549DE
- bl rand_MT
+ bl MTRandom
mov r1, #1
and r0, r1
str r0, [r4, #8]
diff --git a/arm9/modules/39/asm/module_39.s b/arm9/modules/39/asm/module_39.s
index 0f1fecfb..f7c09bfc 100644
--- a/arm9/modules/39/asm/module_39.s
+++ b/arm9/modules/39/asm/module_39.s
@@ -63,7 +63,7 @@ MOD39_0225489C: ; 0x0225489C
bl MOD20_02252C40
bl FUN_0206BB1C
str r0, [sp, #0x10]
- bl FUN_0206B9AC
+ bl GetPartyCount
ldr r1, [sp, #4]
mov r6, #0
add r1, #0x34
@@ -78,19 +78,19 @@ MOD39_0225489C: ; 0x0225489C
_022548CC:
ldr r0, [sp, #0x10]
add r1, r6, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r7, r0, #0
bl FUN_0206B688
str r0, [r4, #4]
add r0, r7, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x1c]
add r0, r7, #0
mov r1, #0x70
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r5, #0x28]
ldr r0, [sp, #4]
str r7, [r4, #0x48]
diff --git a/arm9/modules/52/asm/module_52.s b/arm9/modules/52/asm/module_52.s
index 456ae1e6..7adce220 100644
--- a/arm9/modules/52/asm/module_52.s
+++ b/arm9/modules/52/asm/module_52.s
@@ -170,7 +170,7 @@ MOD52_021D7604: ; 0x021D7604
add r0, r5, #0
bl FUN_0202881C
add r4, r0, #0
- bl rand_MT
+ bl MTRandom
add r2, r0, #0
add r0, r4, #0
mov r1, #1
@@ -180,7 +180,7 @@ MOD52_021D7604: ; 0x021D7604
add r0, r5, #0
bl FUN_020238F4
add r4, r0, #0
- bl rand_MT
+ bl MTRandom
add r7, r0, #0
cmp r6, #0
beq _021D7656
diff --git a/arm9/modules/53/asm/module_53.s b/arm9/modules/53/asm/module_53.s
index 03a8eda6..883995c8 100644
--- a/arm9/modules/53/asm/module_53.s
+++ b/arm9/modules/53/asm/module_53.s
@@ -3336,7 +3336,7 @@ MOD53_021D8FB8: ; 0x021D8FB8
strh r1, [r0]
_021D8FCE:
ldrh r0, [r0]
- bl FUN_0201B970
+ bl Sin_Wrap
mov r1, #0xa
mul r1, r0
asr r0, r1, #0xb
diff --git a/arm9/modules/54/asm/module_54.s b/arm9/modules/54/asm/module_54.s
index 48b488bf..144c730b 100644
--- a/arm9/modules/54/asm/module_54.s
+++ b/arm9/modules/54/asm/module_54.s
@@ -2724,7 +2724,7 @@ MOD54_021D8A90: ; 0x021D8A90
strh r1, [r0]
_021D8AA6:
ldrh r0, [r0]
- bl FUN_0201B970
+ bl Sin_Wrap
mov r1, #0xa
add r2, r0, #0
mul r2, r1
diff --git a/arm9/modules/56/asm/module_56.s b/arm9/modules/56/asm/module_56.s
index 3abecf47..ee020bca 100644
--- a/arm9/modules/56/asm/module_56.s
+++ b/arm9/modules/56/asm/module_56.s
@@ -212,7 +212,7 @@ MOD56_02211F88: ; 0x02211F88
ldr r0, [r0]
bl FUN_0206BB1C
str r0, [sp]
- bl FUN_0206B9AC
+ bl GetPartyCount
mov r5, #0
add r7, r0, #0
add r4, r5, #0
@@ -221,17 +221,17 @@ MOD56_02211F88: ; 0x02211F88
_02211FA2:
ldr r0, [sp]
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xa2
mov r2, #0
add r6, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _02211FC8
add r0, r6, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _02211FC8
add r5, r5, #1
@@ -1992,7 +1992,7 @@ MOD56_02212E0C: ; 0x02212E0C
bl FUN_02029AFC
str r0, [sp, #8]
ldr r0, [sp, #0xc]
- bl FUN_0206B9AC
+ bl GetPartyCount
mov r6, #0
str r0, [sp, #4]
cmp r0, #0
@@ -2001,17 +2001,17 @@ MOD56_02212E0C: ; 0x02212E0C
_02212E52:
ldr r0, [sp, #0xc]
add r1, r6, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #5
mov r2, #0
add r7, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [r5, #4]
mov r2, #0
strh r0, [r1, r4]
add r0, r7, #0
mov r1, #6
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, [r5, #4]
add r6, r6, #1
add r1, r1, r4
diff --git a/arm9/modules/58/asm/module_58.s b/arm9/modules/58/asm/module_58.s
index 17e5c6d8..4c10cb07 100644
--- a/arm9/modules/58/asm/module_58.s
+++ b/arm9/modules/58/asm/module_58.s
@@ -2148,7 +2148,7 @@ MOD58_021DAB34: ; 0x021DAB34
strh r1, [r0]
_021DAB4A:
ldrh r0, [r0]
- bl FUN_0201B970
+ bl Sin_Wrap
mov r1, #0xa
mul r1, r0
asr r0, r1, #0xb
diff --git a/arm9/modules/62/asm/module_62.s b/arm9/modules/62/asm/module_62.s
index 6fff3ef5..b187276b 100644
--- a/arm9/modules/62/asm/module_62.s
+++ b/arm9/modules/62/asm/module_62.s
@@ -2218,17 +2218,17 @@ _0222E5EC:
add r0, r7, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x10]
add r0, r7, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x14]
add r0, r7, #0
mov r1, #0x70
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r0, #0
ldr r0, [sp, #0x10]
ldr r2, [sp, #0x14]
@@ -3004,7 +3004,7 @@ MOD62_0222EC54: ; 0x0222EC54
ldr r0, [r0, #4]
mov r1, #0xa1
add r2, sp, #0xc
- bl SetMonDataEncrypted
+ bl SetMonData
_0222EC80:
cmp r7, #0xff
beq _0222EC9A
@@ -3017,7 +3017,7 @@ _0222EC80:
add r0, r1, r0
ldr r0, [r0, #4]
mov r1, #0xa1
- bl SetMonDataEncrypted
+ bl SetMonData
_0222EC9A:
add r2, r5, #4
ldr r1, [r2, r6]
@@ -4492,7 +4492,7 @@ _0222F83E:
mov r1, #0x4c
add r0, r7, #0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222F85C
ldr r1, _0222F86C ; =0x00000428
@@ -5701,7 +5701,7 @@ MOD62_022301AC: ; 0x022301AC
mov r1, #5
ldr r0, [r5, r0]
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0
ldr r0, _02230214 ; =0x00000428
mov r1, #2
@@ -5749,11 +5749,11 @@ MOD62_0223021C: ; 0x0223021C
mov r1, #5
ldr r0, [r5, r0]
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r4, r0, #0
ldr r0, _02230268 ; =0x00000428
ldr r0, [r5, r0]
- bl GetMonNatureEncrypted
+ bl GetMonNature
add r6, r0, #0
mov r0, #0x6a
lsl r0, r0, #2
@@ -6199,7 +6199,7 @@ _0223059A:
str r0, [sp, #0x9c]
ldr r0, _02230724 ; =0x00000428
ldr r0, [r4, r0]
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x8c]
add r0, sp, #0x7c
bl MOD08_02229918
@@ -6235,12 +6235,12 @@ _022305E2:
mov r1, #0xa1
ldr r0, [r4, r0]
add r2, sp, #0x18
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, _02230724 ; =0x00000428
mov r1, #0xaa
ldr r0, [r4, r0]
add r2, sp, #0x64
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0x35
add r1, sp, #0x58
bl MOD08_02228218
@@ -6396,7 +6396,7 @@ _0223072C:
str r0, [sp, #0x50]
ldr r0, [r4, r1]
mov r1, #0x9a
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [sp, #0x40]
add r0, sp, #0x30
bl MOD08_02229918
@@ -6531,7 +6531,7 @@ _02230860:
add r2, r0, #0
add r0, r5, #0
mov r1, #0xaa
- bl SetMonDataEncrypted
+ bl SetMonData
_022308A8:
mov r0, #0xf5
mov r1, #8
@@ -7091,7 +7091,7 @@ MOD62_02230D38: ; 0x02230D38
ldr r0, [r0, #4]
mov r1, #0xa1
add r2, sp, #0
- bl SetMonDataEncrypted
+ bl SetMonData
_02230D5C:
mov r0, #0xff
str r0, [r4, r6]
diff --git a/arm9/modules/63/asm/module_63.s b/arm9/modules/63/asm/module_63.s
index a6498412..70c6dc91 100644
--- a/arm9/modules/63/asm/module_63.s
+++ b/arm9/modules/63/asm/module_63.s
@@ -3077,10 +3077,10 @@ MOD63_021D8D10: ; 0x021D8D10
ldr r0, _021D8D94 ; =0x021C4918
strb r1, [r0, #5]
bl FUN_0201E7A0
- bl getseed_LC
+ bl GetLCRNGSeed
str r0, [r4, #0x14]
mov r0, #0
- bl seedr_LC
+ bl SetLCRNGSeed
mov r0, #1
pop {r4, pc}
.align 2, 0
@@ -3205,7 +3205,7 @@ MOD63_021D8E68: ; 0x021D8E68
add r4, r0, #0
bl FUN_0200E31C
ldr r0, [r4, #0x14]
- bl seedr_LC
+ bl SetLCRNGSeed
add r0, r5, #0
bl FUN_0200627C
mov r0, #0x4c
@@ -7639,7 +7639,7 @@ _021DB248:
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
- bl rand_LC
+ bl LCRandom
lsr r1, r0, #0x1f
lsl r2, r0, #0x19
sub r2, r2, r1
@@ -7649,7 +7649,7 @@ _021DB248:
add r0, #0x40
lsl r0, r0, #0xc
str r0, [sp, #4]
- bl rand_LC
+ bl LCRandom
lsr r1, r0, #0x1f
lsl r2, r0, #0x1a
sub r2, r2, r1
@@ -7823,13 +7823,13 @@ _021DB3A8:
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
- bl rand_LC
+ bl LCRandom
mov r1, #0xe0
bl _s32_div_f
add r1, #0xa
lsl r0, r1, #0xc
str r0, [sp, #4]
- bl rand_LC
+ bl LCRandom
mov r1, #0x38
bl _s32_div_f
ldr r0, _021DB41C ; =0x0000013A
diff --git a/arm9/modules/65/asm/module_65.s b/arm9/modules/65/asm/module_65.s
index 20b90cb6..10af9dcd 100644
--- a/arm9/modules/65/asm/module_65.s
+++ b/arm9/modules/65/asm/module_65.s
@@ -3372,17 +3372,17 @@ MOD65_021D8F34: ; 0x021D8F34
str r0, [r4, #0x30]
ldr r0, [r4, #0x10]
ldr r0, [r0]
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #0x34]
ldr r0, [r4, #0x10]
ldr r0, [r0]
- bl GetMonGenderEncrypted
+ bl GetMonGender
add r1, r4, #0
add r1, #0x37
strb r0, [r1]
ldr r0, [r4, #0x10]
ldr r0, [r0]
- bl GetMonNatureEncrypted
+ bl GetMonNature
add r1, r4, #0
add r1, #0x36
strb r0, [r1]
@@ -3402,7 +3402,7 @@ MOD65_021D8F34: ; 0x021D8F34
ldr r2, [r4, #0x3c]
ldr r0, [r0]
mov r1, #0x76
- bl GetMonDataEncrypted
+ bl GetMonData
add r1, r4, #0
ldr r0, [r4, #0x10]
add r1, #0x36
@@ -4239,7 +4239,7 @@ MOD65_021D95A4: ; 0x021D95A4
orr r1, r0
lsl r0, r1, #4
lsr r0, r0, #0x10
- bl FUN_0201B970
+ bl Sin_Wrap
ldr r2, _021D9678 ; =0xFFFC0000
asr r1, r0, #0x1f
asr r3, r2, #0x12
@@ -5018,7 +5018,7 @@ MOD65_021D9BD8: ; 0x021D9BD8
orr r1, r0
lsl r0, r1, #4
lsr r0, r0, #0x10
- bl FUN_0201B970
+ bl Sin_Wrap
ldr r2, _021D9CD8 ; =0xFFFFA000
asr r1, r0, #0x1f
asr r3, r2, #0xf
@@ -5240,7 +5240,7 @@ MOD65_021D9E20: ; 0x021D9E20
add r0, r4, #0
add r0, #0x50
ldrh r0, [r0]
- bl FUN_0201B970
+ bl Sin_Wrap
asr r1, r0, #0x1f
lsr r2, r0, #0x13
lsl r1, r1, #0xd
diff --git a/arm9/modules/67/asm/module_67.s b/arm9/modules/67/asm/module_67.s
index 7d7666f9..03dbe420 100644
--- a/arm9/modules/67/asm/module_67.s
+++ b/arm9/modules/67/asm/module_67.s
@@ -3307,7 +3307,7 @@ MOD67_021D8F00: ; 0x021D8F00
add r1, r7, #0
mov r2, #1
mov r3, #0x20
- bl CreateMonWithNatureGenderLetter
+ bl CreateMonWithGenderNatureLetter
add r0, r6, #0
bl FUN_020690E4
add r2, r0, #0
diff --git a/arm9/modules/68/asm/module_68.s b/arm9/modules/68/asm/module_68.s
index 08507c53..fb926299 100644
--- a/arm9/modules/68/asm/module_68.s
+++ b/arm9/modules/68/asm/module_68.s
@@ -56,7 +56,7 @@ MOD68_021D74E0: ; 0x021D74E0
ldr r0, [r5, r0]
mov r1, #0x24
ldrb r0, [r0, #8]
- bl FUN_02085274
+ bl LoadNutDataSingle
mov r1, #0x7f
lsl r1, r1, #2
str r0, [r5, r1]
@@ -720,7 +720,7 @@ MOD68_021D7A18: ; 0x021D7A18
ldr r0, [r5, r0]
mov r1, #0x24
ldrb r0, [r0, #8]
- bl FUN_020852E8
+ bl GetNutName
add r5, r0, #0
mov r1, #0
str r1, [sp]
@@ -758,7 +758,7 @@ MOD68_021D7AE4: ; 0x021D7AE4
ldr r0, [r4, r0]
mov r1, #0x24
ldrb r0, [r0, #8]
- bl FUN_02085310
+ bl GetNutDesc
mov r1, #0
add r4, r0, #0
str r1, [sp]
@@ -831,7 +831,7 @@ MOD68_021D7B80: ; 0x021D7B80
lsl r0, r0, #2
ldr r0, [r4, r0]
mov r1, #1
- bl FUN_02085290
+ bl GetNutAttr
add r1, r0, #0
beq _021D7BA4
sub r1, r1, #1
@@ -912,7 +912,7 @@ MOD68_021D7C28: ; 0x021D7C28
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #0
- bl FUN_02085290
+ bl GetNutAttr
mov r1, #0xfa
lsl r1, r1, #2
mul r1, r0
@@ -1381,7 +1381,7 @@ MOD68_021D7F98: ; 0x021D7F98
ldr r0, [r4, r0]
mov r1, #0x24
ldrb r0, [r0, #8]
- bl FUN_02085274
+ bl LoadNutDataSingle
mov r1, #0x7f
lsl r1, r1, #2
str r0, [r4, r1]
@@ -2159,7 +2159,7 @@ MOD68_021D85F4: ; 0x021D85F4
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #5
- bl FUN_02085290
+ bl GetNutAttr
add r2, r0, #0
mov r1, #0x65
lsl r1, r1, #2
@@ -2172,7 +2172,7 @@ MOD68_021D85F4: ; 0x021D85F4
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #6
- bl FUN_02085290
+ bl GetNutAttr
add r2, r0, #0
ldr r1, _021D8860 ; =0x0000019A
lsl r2, r2, #0x18
@@ -2184,7 +2184,7 @@ MOD68_021D85F4: ; 0x021D85F4
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #7
- bl FUN_02085290
+ bl GetNutAttr
add r2, r0, #0
ldr r1, _021D8868 ; =0x000001A6
lsl r2, r2, #0x18
@@ -2202,7 +2202,7 @@ MOD68_021D85F4: ; 0x021D85F4
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #9
- bl FUN_02085290
+ bl GetNutAttr
add r2, r0, #0
mov r1, #0x6b
lsl r1, r1, #2
@@ -2215,7 +2215,7 @@ MOD68_021D85F4: ; 0x021D85F4
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #5
- bl FUN_02085290
+ bl GetNutAttr
add r2, r0, #0
ldr r1, _021D8878 ; =0x000001B2
lsl r2, r2, #0x18
@@ -2232,7 +2232,7 @@ MOD68_021D85F4: ; 0x021D85F4
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #8
- bl FUN_02085290
+ bl GetNutAttr
add r2, r0, #0
mov r1, #0x6e
lsl r1, r1, #2
@@ -2245,7 +2245,7 @@ MOD68_021D85F4: ; 0x021D85F4
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #9
- bl FUN_02085290
+ bl GetNutAttr
add r2, r0, #0
mov r1, #0x71
lsl r1, r1, #2
@@ -2263,7 +2263,7 @@ MOD68_021D85F4: ; 0x021D85F4
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #7
- bl FUN_02085290
+ bl GetNutAttr
add r2, r0, #0
ldr r1, _021D8898 ; =0x000001D6
lsl r2, r2, #0x18
@@ -2275,7 +2275,7 @@ MOD68_021D85F4: ; 0x021D85F4
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #8
- bl FUN_02085290
+ bl GetNutAttr
add r2, r0, #0
mov r1, #0x1d
lsl r1, r1, #4
@@ -2294,7 +2294,7 @@ MOD68_021D85F4: ; 0x021D85F4
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #6
- bl FUN_02085290
+ bl GetNutAttr
add r2, r0, #0
ldr r1, _021D88A8 ; =0x000001E2
lsl r2, r2, #0x18
@@ -2306,7 +2306,7 @@ MOD68_021D85F4: ; 0x021D85F4
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #7
- bl FUN_02085290
+ bl GetNutAttr
add r2, r0, #0
ldr r1, _021D88B0 ; =0x000001EE
lsl r2, r2, #0x18
@@ -2318,7 +2318,7 @@ MOD68_021D85F4: ; 0x021D85F4
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #8
- bl FUN_02085290
+ bl GetNutAttr
add r2, r0, #0
mov r1, #0x7a
lsl r1, r1, #2
diff --git a/arm9/modules/69/asm/module_69.s b/arm9/modules/69/asm/module_69.s
index c0a49cfe..a5103ad4 100644
--- a/arm9/modules/69/asm/module_69.s
+++ b/arm9/modules/69/asm/module_69.s
@@ -50,7 +50,7 @@ MOD69_0222D5C0: ; 0x0222D5C0
str r0, [r4, #4]
ldr r0, [r4, #0xc]
ldr r0, [r0, #4]
- bl FUN_0206B9AC
+ bl GetPartyCount
add r6, r0, #0
mov r5, #0
cmp r6, #0
@@ -61,10 +61,10 @@ _0222D63A:
ldr r0, [r4, #0xc]
add r1, r5, #0
ldr r0, [r0, #4]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222D65E
ldr r0, [r4, #4]
@@ -1224,7 +1224,7 @@ _0222DF98:
lsl r1, r1, #2
ldr r0, [r0, #4]
ldr r1, [r5, r1]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [sp, #0x2c]
ldr r1, [sp, #0x2c]
add r0, sp, #0xc4
@@ -1233,14 +1233,14 @@ _0222DF98:
ldr r0, [sp, #0x2c]
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x81
lsl r1, r1, #2
str r0, [r5, r1]
mov r1, #0
ldr r0, [sp, #0x2c]
add r2, r1, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r4, [sp]
str r0, [sp, #4]
mov r0, #1
@@ -1268,7 +1268,7 @@ _0222DF98:
mov r1, #0
ldr r0, [sp, #0x2c]
add r2, r1, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r4, [sp]
str r0, [sp, #4]
mov r0, #1
@@ -2281,7 +2281,7 @@ _0222E860:
lsl r1, r1, #2
ldr r0, [r0, #4]
ldr r1, [r2, r1]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [r4, #0x24]
ldr r0, [r5, #0xc]
mov r2, #0
@@ -2360,7 +2360,7 @@ MOD69_0222E8FC: ; 0x0222E8FC
mov r1, #0
bl FUN_0200AC60
ldr r0, [r4, #0x24]
- bl CalcMonLevelEncrypted
+ bl CalcMonLevel
add r2, r0, #0
mov r0, #0
str r0, [sp]
@@ -2370,7 +2370,7 @@ MOD69_0222E8FC: ; 0x0222E8FC
mov r3, #3
bl FUN_0200AD38
ldr r0, [r4, #0x24]
- bl GetMonGenderEncrypted
+ bl GetMonGender
cmp r0, #0
beq _0222E93C
cmp r0, #1
@@ -2418,7 +2418,7 @@ _0222E982:
ldr r0, [r5, #0x24]
mov r1, #0x98
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0
ldr r0, [r5, #0x14]
mov r1, #0
@@ -2480,7 +2480,7 @@ _0222E9FC:
ldr r0, [r4, #0x24]
ldr r2, [r4, #0x1c]
mov r1, #0x76
- bl GetMonDataEncrypted
+ bl GetMonData
add r0, r4, #0
mov r1, #0x48
bl MOD69_0222E89C
@@ -3422,10 +3422,10 @@ MOD69_0222F1B0: ; 0x0222F1B0
mov r0, #0x3f
bl AllocFromHeap
str r0, [sp, #0x28]
- bl rand_LC
+ bl LCRandom
str r0, [sp, #0x20]
ldr r0, _0222F348 ; =0x00003594
- bl seedr_LC
+ bl SetLCRNGSeed
mov r0, #0
ldr r4, [sp, #0x28]
str r0, [sp, #0x24]
@@ -3458,7 +3458,7 @@ _0222F1EE:
mov r0, #0
str r0, [sp, #0x1c]
_0222F206:
- bl rand_LC
+ bl LCRandom
lsr r2, r0, #0x1f
lsl r1, r0, #0x13
sub r1, r1, r2
@@ -3471,7 +3471,7 @@ _0222F206:
lsl r0, r0, #0x10
asr r0, r0, #0x10
str r0, [sp, #8]
- bl rand_LC
+ bl LCRandom
lsr r2, r0, #0x1f
lsl r1, r0, #0x13
sub r1, r1, r2
@@ -3484,7 +3484,7 @@ _0222F206:
lsl r0, r0, #0x10
asr r0, r0, #0x10
str r0, [sp, #4]
- bl rand_LC
+ bl LCRandom
mov r1, #0x29
lsl r1, r1, #4
bl _s32_div_f
@@ -3517,7 +3517,7 @@ _0222F25C:
strh r0, [r4, #0x28]
strh r0, [r4, #0x2a]
strh r0, [r4, #0x2c]
- bl rand_LC
+ bl LCRandom
lsr r1, r0, #0x1f
lsl r2, r0, #0x17
sub r2, r2, r1
@@ -3528,7 +3528,7 @@ _0222F25C:
lsl r0, r0, #8
add r0, r1, r0
strh r0, [r4, #0x2e]
- bl rand_LC
+ bl LCRandom
lsr r1, r0, #0x1f
lsl r2, r0, #0x17
sub r2, r2, r1
@@ -3539,7 +3539,7 @@ _0222F25C:
lsl r0, r0, #8
add r0, r1, r0
strh r0, [r4, #0x30]
- bl rand_LC
+ bl LCRandom
lsr r1, r0, #0x1f
lsl r2, r0, #0x17
sub r2, r2, r1
@@ -3557,7 +3557,7 @@ _0222F25C:
add r6, r6, #6
cmp r7, #4
blt _0222F25C
- bl rand_LC
+ bl LCRandom
mov r1, #7
and r0, r1
sub r5, r0, #1
@@ -3594,7 +3594,7 @@ _0222F2FA:
b _0222F1EE
_0222F320:
ldr r0, [sp, #0x20]
- bl seedr_LC
+ bl SetLCRNGSeed
ldr r0, [sp, #0x28]
mov r2, #0
str r2, [r0]
@@ -4037,12 +4037,12 @@ MOD69_0222F6C4: ; 0x0222F6C4
add r5, r0, #0
add r0, r4, #0
add r6, r2, #0
- bl TryDecryptMon
+ bl AcquireMonLock
str r0, [sp]
add r0, r4, #0
mov r1, #0x79
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
sub r1, r0, #1
cmp r1, #2
bhi _0222F6E8
@@ -4063,7 +4063,7 @@ _0222F6FA:
add r0, r4, #0
mov r1, #0x6e
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _0222F70C
mov r5, #6
@@ -4075,7 +4075,7 @@ _0222F70C:
add r0, r4, #0
mov r1, #7
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r7, r0
beq _0222F726
mov r5, #2
@@ -4089,7 +4089,7 @@ _0222F726:
add r0, r4, #0
ldr r2, [r5, r2]
mov r1, #0x90
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r1, _0222F788 ; =0x00001B54
ldr r0, [r5, r1]
add r1, r1, #4
@@ -4103,7 +4103,7 @@ _0222F750:
add r0, r4, #0
mov r1, #0x98
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r1, #0x7d
lsl r1, r1, #4
cmp r0, r1
@@ -4114,7 +4114,7 @@ _0222F766:
add r0, r4, #0
mov r1, #0x92
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222F778
mov r5, #0
@@ -4124,7 +4124,7 @@ _0222F778:
_0222F77A:
ldr r1, [sp]
add r0, r4, #0
- bl TryEncryptMon
+ bl ReleaseMonLock
add r0, r5, #0
pop {r3, r4, r5, r6, r7, pc}
nop
diff --git a/arm9/modules/70/asm/module_70.s b/arm9/modules/70/asm/module_70.s
index ec5af814..6ab711fd 100644
--- a/arm9/modules/70/asm/module_70.s
+++ b/arm9/modules/70/asm/module_70.s
@@ -1562,7 +1562,7 @@ _021D80F4:
ldr r0, [r7, r0]
ldr r2, [sp, #0x1c]
mov r1, #0x70
- bl SetMonDataEncrypted
+ bl SetMonData
mov r1, #0x66
lsl r1, r1, #2
ldr r1, [r7, r1]
diff --git a/arm9/modules/71/asm/module_71.s b/arm9/modules/71/asm/module_71.s
index a6e576b3..425cfc0b 100644
--- a/arm9/modules/71/asm/module_71.s
+++ b/arm9/modules/71/asm/module_71.s
@@ -138,7 +138,7 @@ MOD71_0222D5C0: ; 0x0222D5C0
mov r0, #0x1a
bl FUN_020335F0
bl FUN_02033E74
- bl FUN_0201277C
+ bl IsNighttime
cmp r0, #0
bne _0222D71A
ldr r1, _0222D748 ; =0x0000043D
@@ -420,11 +420,11 @@ MOD71_0222D93C: ; 0x0222D93C
bl MOD71_0222DB94
ldr r0, _0222D9B8 ; =0x00002218
ldr r0, [r5, r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
add r4, r0, #0
ldr r0, _0222D9BC ; =0x0000221C
ldr r0, [r5, r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
add r2, r0, #0
mov r0, #0x5d
lsl r0, r0, #2
@@ -644,13 +644,13 @@ MOD71_0222DB5C: ; 0x0222DB5C
add r0, r5, #0
add r6, r2, #0
mov r4, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0222DB92
_0222DB70:
add r0, r5, #0
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
bl FUN_020690E4
add r2, r0, #0
add r0, r7, #0
@@ -658,7 +658,7 @@ _0222DB70:
bl FUN_0200ACF8
add r0, r5, #0
add r4, r4, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _0222DB70
_0222DB92:
@@ -676,7 +676,7 @@ MOD71_0222DB94: ; 0x0222DB94
str r3, [sp, #0x10]
ldr r6, [sp, #0x28]
mov r4, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0222DBE6
add r7, r6, #1
@@ -701,7 +701,7 @@ _0222DBB0:
ldr r0, [sp, #0x10]
add r5, #0x10
add r4, r4, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _0222DBB0
_0222DBE6:
@@ -718,7 +718,7 @@ MOD71_0222DBEC: ; 0x0222DBEC
str r1, [sp, #0xc]
str r2, [sp, #0x20]
mov r7, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
bgt _0222DC02
b _0222DD10
@@ -847,7 +847,7 @@ _0222DCE2:
_0222DD02:
ldr r0, [sp, #8]
add r7, r7, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r7, r0
bge _0222DD10
b _0222DC0C
@@ -957,7 +957,7 @@ _0222DDD8:
bl FUN_02031190
cmp r0, #0
bne _0222DE04
- bl rand_LC
+ bl LCRandom
ldr r1, _0222E0F0 ; =0x00000445
bl _s32_div_f
lsl r0, r0, #0x10
@@ -1086,7 +1086,7 @@ _0222DED6:
blt _0222DED6
ldr r0, _0222E0F8 ; =0x00002218
ldr r0, [r4, r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0222DF12
mov r0, #0x69
@@ -1097,20 +1097,20 @@ _0222DEF4:
ldr r0, _0222E0F8 ; =0x00002218
add r1, r5, #0
ldr r0, [r4, r0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r6, #0
bl MOD71_0222E118
ldr r0, [r4, r7]
add r6, #0x10
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _0222DEF4
_0222DF12:
ldr r0, _0222E0FC ; =0x0000221C
mov r5, #0
ldr r0, [r4, r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0222DF48
mov r0, #0x69
@@ -1121,14 +1121,14 @@ _0222DF28:
ldr r0, _0222E0FC ; =0x0000221C
add r1, r5, #0
ldr r0, [r4, r0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r5, #6
lsl r1, r1, #4
add r1, r6, r1
bl MOD71_0222E118
ldr r0, [r4, r7]
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _0222DF28
_0222DF48:
@@ -1233,7 +1233,7 @@ _0222E010:
ldr r0, _0222E0F8 ; =0x00002218
mov r1, #0
ldr r0, [r4, r0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r2, #0x7f
ldr r3, _0222E104 ; =0x000020F0
lsl r2, r2, #4
@@ -1343,46 +1343,46 @@ MOD71_0222E118: ; 0x0222E118
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r4, r1, #0
- bl TryDecryptMon
+ bl AcquireMonLock
add r7, r0, #0
add r0, r5, #0
mov r1, #0x9a
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r4, #4]
add r0, r5, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4]
add r0, r5, #0
mov r1, #0x70
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r4, #6]
add r0, r5, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strb r0, [r4, #5]
add r0, r5, #0
mov r1, #0x6f
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
strh r0, [r4, #8]
add r0, r5, #0
mov r1, #0xa1
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
str r0, [r4, #0xc]
add r0, r5, #0
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0
add r0, r5, #0
add r1, r7, #0
- bl TryEncryptMon
+ bl ReleaseMonLock
ldrh r0, [r4]
cmp r0, #0
beq _0222E18E
@@ -1412,7 +1412,7 @@ MOD71_0222E1A0: ; 0x0222E1A0
ldr r0, _0222E20C ; =0x0000221C
add r7, r1, #0
ldr r0, [r5, r0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r6, r0, #0
add r0, r4, #0
mov r1, #6
@@ -1473,7 +1473,7 @@ MOD71_0222E224: ; 0x0222E224
bge _0222E29E
ldr r0, _0222E2BC ; =0x00002218
ldr r0, [r5, r0]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r4, r0, #0
add r0, r5, #0
add r0, #0x88
@@ -1675,7 +1675,7 @@ MOD71_0222E3D4: ; 0x0222E3D4
ldr r0, _0222E42C ; =0x00002218
mov r4, #0
ldr r0, [r6, r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0222E402
ldr r7, _0222E42C ; =0x00002218
@@ -1688,14 +1688,14 @@ _0222E3EA:
ldr r0, [r6, r7]
add r5, r5, #4
add r4, r4, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r4, r0
blt _0222E3EA
_0222E402:
ldr r0, _0222E430 ; =0x0000221C
mov r5, #0
ldr r0, [r6, r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #0
ble _0222E42A
ldr r7, _0222E430 ; =0x0000221C
@@ -1707,7 +1707,7 @@ _0222E414:
ldr r0, [r6, r7]
add r4, r4, #4
add r5, r5, #1
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r5, r0
blt _0222E414
_0222E42A:
@@ -2647,12 +2647,12 @@ MOD71_0222EBFC: ; 0x0222EBFC
mov r1, #0
add r0, r6, #0
add r2, r1, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r7, r0, #0
add r0, r6, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r3, #0
str r3, [sp]
mov r1, #0xa
@@ -2694,10 +2694,10 @@ MOD71_0222EC5C: ; 0x0222EC5C
add r4, r0, #0
add r0, r6, #0
add r1, r7, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x76
add r2, r4, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r0, r5, #0
mov r1, #0
bl FUN_02019620
@@ -2728,10 +2728,10 @@ MOD71_0222ECA8: ; 0x0222ECA8
_0222ECB6:
add r0, r1, #0
add r1, r2, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0x4d
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _0222ECCE
mov r0, #2
@@ -2753,7 +2753,7 @@ MOD71_0222ECD4: ; 0x0222ECD4
str r2, [sp, #8]
str r3, [sp, #0xc]
ldr r4, [sp, #0x50]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #2
bl FUN_02068E14
str r0, [sp, #0x10]
@@ -2929,10 +2929,10 @@ _0222EE14:
bl MOD71_02230EFC
ldr r0, [sp, #8]
ldr r1, [sp, #0xc]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xa0
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r1, r0, #0x10
mov r0, #1
@@ -2975,10 +2975,10 @@ _0222EEA6:
bl MOD71_02230EFC
ldr r0, [sp, #8]
ldr r1, [sp, #0xc]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, #0x20
lsl r0, r0, #0x10
lsl r4, r5, #4
@@ -3488,7 +3488,7 @@ MOD71_0222F2D8: ; 0x0222F2D8
strh r1, [r0]
_0222F2EE:
ldrh r0, [r0]
- bl FUN_0201B970
+ bl Sin_Wrap
mov r1, #0xa
mul r1, r0
asr r0, r1, #0xb
@@ -3864,7 +3864,7 @@ MOD71_0222F59C: ; 0x0222F59C
str r0, [r5, #0xc]
ldr r0, [r5, #8]
ldr r0, [r0, #8]
- bl FUN_0206B9AC
+ bl GetPartyCount
strb r0, [r5, #0x1f]
mov r0, #0
str r0, [r5, #0x34]
@@ -3880,7 +3880,7 @@ _0222F5CC:
ldr r1, [r5, r0]
str r1, [r5, #0xc]
ldr r0, [r5, r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
strb r0, [r5, #0x1f]
bl FUN_02031190
mov r2, #1
@@ -4875,7 +4875,7 @@ MOD71_0222FDD8: ; 0x0222FDD8
add r1, #0x88
ldr r0, [r4, r0]
ldr r1, [r1]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
bl FUN_020690E4
add r2, r0, #0
mov r0, #0x5f
@@ -5694,7 +5694,7 @@ MOD71_022304AC: ; 0x022304AC
add r1, #0x88
ldr r0, [r4, r0]
ldr r1, [r1]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
bl FUN_020690E4
add r2, r0, #0
mov r0, #0x5f
@@ -5708,7 +5708,7 @@ MOD71_022304AC: ; 0x022304AC
ldr r1, [r1]
ldr r0, [r4, r0]
sub r1, r1, #6
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
bl FUN_020690E4
add r2, r0, #0
mov r0, #0x5f
@@ -6121,7 +6121,7 @@ MOD71_02230810: ; 0x02230810
ldr r1, [r1]
ldr r0, [r4, r0]
sub r1, r1, #6
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
bl FUN_020690E4
add r2, r0, #0
mov r0, #0x5f
@@ -6327,18 +6327,18 @@ MOD71_022309E8: ; 0x022309E8
add r4, r0, #0
ldr r0, [sp, #4]
add r1, r6, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r7, #0
bl FUN_02069B88
ldr r0, [sp, #8]
ldr r1, [sp, #0xc]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r4, #0
bl FUN_02069B88
add r0, r4, #0
mov r1, #0x4c
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
bne _02230A40
mov r1, #0x46
@@ -6347,7 +6347,7 @@ MOD71_022309E8: ; 0x022309E8
add r0, r4, #0
mov r1, #9
add r2, sp, #0x10
- bl SetMonDataEncrypted
+ bl SetMonData
_02230A40:
bl FUN_02031190
bl FUN_0202DFA4
@@ -6375,7 +6375,7 @@ _02230A40:
ldr r0, [sp, #4]
ldr r1, _02230AE0 ; =0x000001B9
str r6, [r5, #0x2c]
- bl FUN_0206BAE4
+ bl PartyHasMon
cmp r0, #0
bne _02230A98
ldr r0, [r5, #0x10]
@@ -6387,13 +6387,13 @@ _02230A98:
bl FUN_0202C144
ldr r0, [sp, #4]
add r1, r6, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0
add r0, r4, #0
bl FUN_02069B88
ldr r0, [sp, #8]
ldr r1, [sp, #0xc]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0
add r0, r7, #0
bl FUN_02069B88
@@ -6427,7 +6427,7 @@ MOD71_02230AE4: ; 0x02230AE4
add r0, r4, #0
mov r1, #0x74
add r2, sp, #4
- bl GetMonDataEncrypted
+ bl GetMonData
add r0, r5, #0
bl FUN_0202398C
add r7, r0, #0
@@ -6435,7 +6435,7 @@ MOD71_02230AE4: ; 0x02230AE4
bl FUN_020239CC
add r5, r0, #0
add r0, r4, #0
- bl GetMonGenderEncrypted
+ bl GetMonGender
add r3, r0, #0
mov r0, #0x1a
lsl r1, r5, #0x18
@@ -6538,7 +6538,7 @@ MOD71_02230BC4: ; 0x02230BC4
ldr r0, _02230C00 ; =0x00002218
mov r4, #0
ldr r0, [r5, r0]
- bl FUN_0206B9AC
+ bl GetPartyCount
add r3, r4, #0
cmp r0, #0
ble _02230BF0
diff --git a/arm9/modules/73/asm/module_73.s b/arm9/modules/73/asm/module_73.s
index 97f57105..030457b3 100644
--- a/arm9/modules/73/asm/module_73.s
+++ b/arm9/modules/73/asm/module_73.s
@@ -6714,17 +6714,17 @@ _021DA900:
ldr r0, [sp, #0x60]
bl MOD73_021DAB30
_021DA906:
- bl rand_MT
+ bl MTRandom
lsl r0, r0, #0x10
lsr r6, r0, #0x10
- bl rand_MT
+ bl MTRandom
add r1, sp, #0x9c
ldrb r1, [r1, #0x11]
bl _u32_div_f
add r0, sp, #0x9c
ldrb r0, [r0, #0x10]
add r4, r0, r1
- bl rand_MT
+ bl MTRandom
add r1, sp, #0x9c
ldrb r1, [r1, #0x13]
bl _u32_div_f
@@ -6752,7 +6752,7 @@ _021DA906:
str r3, [sp, #0x68]
ldrsh r4, [r1, r2]
str r0, [sp, #0x78]
- bl rand_MT
+ bl MTRandom
ldr r1, [sp, #0xa0]
bl _u32_div_f
ldr r0, [sp, #0x9c]
@@ -8078,7 +8078,7 @@ MOD73_021DB2D0: ; 0x021DB2D0
sub r2, r5, r6
sub r0, r0, r6
add r3, r4, #0
- bl FUN_0201BBD0
+ bl CircularDistance
mov r1, #0xa0
mul r1, r0
add r0, r1, #0
@@ -8365,7 +8365,7 @@ _021DB4E4:
bl _s32_div_f
add r1, r0, #0
mov r0, #0x44
- bl FUN_0201BC84
+ bl MathUtil_0201BC84
ldr r1, [r5, #8]
add r0, r1, r0
str r0, [r5, #8]
@@ -8639,7 +8639,7 @@ MOD73_021DB698: ; 0x021DB698
ldr r0, [r5, #4]
cmp r0, #0
bge _021DB70A
- bl rand_MT
+ bl MTRandom
mov r1, #5
add r6, r0, #0
bl _u32_div_f
@@ -9161,7 +9161,7 @@ _021DBA56:
lsl r4, r0, #2
ldr r0, [sp, #0x24]
ldr r0, [r0, r4]
- bl FUN_02085284
+ bl LoadNutDataSingleByItemId
mov r3, #0
add r7, r0, #0
add r2, r3, #0
@@ -9196,7 +9196,7 @@ _021DBAA0:
_021DBAA4:
add r0, r7, #0
add r1, r5, #5
- bl FUN_02085290
+ bl GetNutAttr
ldr r1, [r4]
add r5, r5, #1
add r0, r1, r0
@@ -9205,7 +9205,7 @@ _021DBAA4:
blt _021DBAA4
add r0, r7, #0
mov r1, #0xa
- bl FUN_02085290
+ bl GetNutAttr
ldr r1, [sp, #0x20]
add r0, r1, r0
str r0, [sp, #0x20]
diff --git a/arm9/modules/75/asm/module_75.s b/arm9/modules/75/asm/module_75.s
index e4c70c65..1aa36886 100644
--- a/arm9/modules/75/asm/module_75.s
+++ b/arm9/modules/75/asm/module_75.s
@@ -6823,11 +6823,11 @@ _021EA18A:
sub r0, r7, r0
sub r2, r7, r2
sub r3, r3, r4
- bl FUN_0201BBD0
+ bl CircularDistance
add r4, r0, #0
mov r0, #0x50
lsl r1, r4, #1
- bl FUN_0201BC84
+ bl MathUtil_0201BC84
lsl r0, r0, #8
mov r1, #0xb6
bl _s32_div_f
@@ -8193,7 +8193,7 @@ MOD75_021EAB44: ; 0x021EAB44
bl FUN_02021A20
ldr r0, [sp, #0x10]
mov r1, #0
- bl FUN_0206AB30
+ bl WazaGetMaxPp
add r7, r0, #0
mov r0, #0x45
lsl r0, r0, #2
@@ -8237,7 +8237,7 @@ MOD75_021EAB44: ; 0x021EAB44
bl FUN_0201BDE0
ldr r0, [sp, #0x10]
mov r1, #2
- bl FUN_0206AB18
+ bl GetWazaAttr
lsl r0, r0, #0x10
lsr r7, r0, #0x10
cmp r7, #1
@@ -8292,7 +8292,7 @@ _021EACC6:
bl FUN_0201BDE0
ldr r0, [sp, #0x10]
mov r1, #4
- bl FUN_0206AB18
+ bl GetWazaAttr
lsl r0, r0, #0x10
lsr r7, r0, #0x10
bne _021EAD30
@@ -10986,12 +10986,12 @@ MOD75_021EC2B8: ; 0x021EC2B8
bl FUN_0206EA30
mov r1, #3
add r4, r0, #0
- bl FUN_0206AB18
+ bl GetWazaAttr
lsl r0, r0, #0x10
lsr r6, r0, #0x10
add r0, r4, #0
mov r1, #1
- bl FUN_0206AB18
+ bl GetWazaAttr
lsl r0, r0, #0x10
lsr r4, r0, #0x10
bl FUN_0206E12C
diff --git a/arm9/modules/76/asm/module_76.s b/arm9/modules/76/asm/module_76.s
index 6f7aff75..7ebae410 100644
--- a/arm9/modules/76/asm/module_76.s
+++ b/arm9/modules/76/asm/module_76.s
@@ -801,7 +801,7 @@ MOD76_021D7B2C: ; 0x021D7B2C
ldr r0, [r1]
ldrb r1, [r1, #0x17]
add r1, #0x36
- bl SetMonDataEncrypted
+ bl SetMonData
mov r0, #0
str r0, [sp]
ldr r1, [r4]
@@ -809,18 +809,18 @@ MOD76_021D7B2C: ; 0x021D7B2C
ldr r0, [r1]
ldrb r1, [r1, #0x17]
add r1, #0x3e
- bl SetMonDataEncrypted
+ bl SetMonData
add r0, r4, #0
bl MOD76_021D8514
mov r1, #0
- bl FUN_0206AB30
+ bl WazaGetMaxPp
str r0, [sp]
ldr r1, [r4]
add r2, sp, #0
ldr r0, [r1]
ldrb r1, [r1, #0x17]
add r1, #0x3a
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [r4]
mov r1, #0
strb r1, [r0, #0x16]
@@ -1444,7 +1444,7 @@ MOD76_021D800C: ; 0x021D800C
_021D8050:
add r0, r4, #0
mov r1, #2
- bl FUN_0206AB18
+ bl GetWazaAttr
add r2, r0, #0
cmp r2, #1
bhi _021D8072
@@ -1474,7 +1474,7 @@ _021D8080:
bl MOD76_021D7CC8
add r0, r4, #0
mov r1, #4
- bl FUN_0206AB18
+ bl GetWazaAttr
add r2, r0, #0
bne _021D80B0
mov r1, #0x21
@@ -1504,7 +1504,7 @@ _021D80BE:
lsl r0, r4, #0x10
lsr r0, r0, #0x10
mov r1, #0
- bl FUN_0206AB30
+ bl WazaGetMaxPp
add r2, r0, #0
mov r0, #0
str r0, [sp]
@@ -1608,7 +1608,7 @@ MOD76_021D81AC: ; 0x021D81AC
beq _021D8222
add r0, r4, #0
mov r1, #0xa
- bl FUN_0206AB18
+ bl GetWazaAttr
bl FUN_0208315C
add r6, r0, #0
mov r0, #0
@@ -1770,7 +1770,7 @@ MOD76_021D8300: ; 0x021D8300
beq _021D8344
add r0, r4, #0
mov r1, #0xa
- bl FUN_0206AB18
+ bl GetWazaAttr
bl FUN_02083114
mov r1, #0xa
bl _s32_div_f
@@ -2028,7 +2028,7 @@ MOD76_021D8524: ; 0x021D8524
ldr r0, [r1]
ldrb r1, [r1, #0x17]
add r1, #0x36
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
pop {r3, pc}
@@ -2131,7 +2131,7 @@ _021D85EC:
ldr r0, [r0]
add r1, #0x36
add r2, r6, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _021D8608
add r0, r4, #1
@@ -2656,13 +2656,13 @@ MOD76_021D89E4: ; 0x021D89E4
bne _021D8A00
add r0, r1, #0
mov r1, #3
- bl FUN_0206AB18
+ bl GetWazaAttr
add r6, r0, #0
b _021D8A0C
_021D8A00:
add r0, r1, #0
mov r1, #0xb
- bl FUN_0206AB18
+ bl GetWazaAttr
add r6, r0, #0
add r6, #0x12
_021D8A0C:
@@ -2925,7 +2925,7 @@ MOD76_021D8BF8: ; 0x021D8BF8
add r5, r0, #0
add r0, r1, #0
mov r1, #1
- bl FUN_0206AB18
+ bl GetWazaAttr
add r4, r0, #0
bl FUN_0206E2A8
add r6, r0, #0
diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s
index ca042f7e..1af82a16 100644
--- a/arm9/modules/80/asm/module_80.s
+++ b/arm9/modules/80/asm/module_80.s
@@ -4660,7 +4660,7 @@ _0222FA26:
beq _0222FA80
ldr r0, [r5]
ldr r0, [r0, #8]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #6
bne _0222FA80
ldr r0, _0222FAE4 ; =0x00000F0F
@@ -4855,7 +4855,7 @@ MOD80_0222FBC0: ; 0x0222FBC0
ldr r0, [sp, #0x48]
ldr r2, [sp, #0x1c]
mov r1, #0x76
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
mov r2, #0
ldrsh r0, [r4, r2]
mov r1, #6
@@ -4866,7 +4866,7 @@ MOD80_0222FBC0: ; 0x0222FBC0
mov r0, #3
ldrsb r4, [r4, r0]
ldr r0, [sp, #0x48]
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
str r0, [sp, #0x30]
add r0, r5, #0
mov r1, #0x46
@@ -5058,12 +5058,12 @@ MOD80_0222FD88: ; 0x0222FD88
mov r1, #0
add r0, r5, #0
add r2, r1, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0
add r0, r5, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r3, #0
str r3, [sp]
mov r1, #0xa
@@ -9976,10 +9976,10 @@ _022325CE:
add r1, #0xba
ldrh r1, [r1]
ldr r0, [r0, #8]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xa1
add r2, r4, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022325FE
mov r0, #0xe
@@ -10216,10 +10216,10 @@ _022327CE:
add r1, #0xba
ldrh r1, [r1]
ldr r0, [r0, #8]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
mov r1, #0xa1
add r2, r4, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
beq _022327FE
mov r0, #0xb
@@ -10458,7 +10458,7 @@ MOD80_02232990: ; 0x02232990
beq _022329E6
ldr r0, [r4]
ldr r0, [r0, #8]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #6
bne _022329E6
ldr r0, _02232A2C ; =0x00000F0F
@@ -10777,7 +10777,7 @@ MOD80_02232BD4: ; 0x02232BD4
MOD80_02232C2C: ; 0x02232C2C
push {r4, lr}
add r4, r1, #0
- bl CalcBoxMonLevelEncrypted
+ bl CalcBoxMonLevel
strb r0, [r4, #3]
pop {r4, pc}
thumb_func_end MOD80_02232C2C
@@ -10832,38 +10832,38 @@ MOD80_02232C88: ; 0x02232C88
add r7, r2, #0
add r6, r3, #0
ldr r4, [sp, #0x40]
- bl TryDecryptBoxMon
+ bl AcquireBoxMonLock
add r0, r5, #0
mov r1, #0xab
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
str r0, [sp, #0x1c]
add r0, r5, #0
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strh r0, [r6]
add r0, r5, #0
mov r1, #0x70
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
str r0, [sp, #0x10]
add r0, r5, #0
mov r1, #0x4c
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
str r0, [sp, #0x14]
add r0, r5, #0
mov r1, #6
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
str r0, [sp, #0x18]
ldrh r0, [r6]
mov r1, #0x6f
mov r2, #0
strh r0, [r4]
add r0, r5, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r0, r0, #1
strb r0, [r4, #2]
ldr r0, [sp, #0x14]
@@ -10874,7 +10874,7 @@ MOD80_02232C88: ; 0x02232C88
_02232CF2:
add r0, r5, #0
mov r1, #1
- bl TryEncryptBoxMon
+ bl ReleaseBoxMonLock
ldr r0, [sp, #0x1c]
cmp r0, #0
beq _02232D60
@@ -11031,7 +11031,7 @@ _02232E22:
_02232E3A:
ldr r0, [r5]
ldr r0, [r0, #8]
- bl FUN_0206B9AC
+ bl GetPartyCount
mov r4, #0
str r0, [sp, #0x14]
cmp r0, #0
@@ -11040,7 +11040,7 @@ _02232E4A:
ldr r0, [r5]
add r1, r4, #0
ldr r0, [r0, #8]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
str r0, [sp, #0x24]
bl FUN_020690E4
ldr r1, _02232F84 ; =0x00001004
@@ -11076,7 +11076,7 @@ _02232E4A:
ldr r0, [sp, #0x24]
mov r1, #0xa1
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r0, #0
ldr r0, _02232F90 ; =0x00000E54
beq _02232EB4
@@ -11221,7 +11221,7 @@ MOD80_02232FB8: ; 0x02232FB8
cmp r0, #0
beq _02232FEA
add r0, r5, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
sub r0, r0, #1
cmp r4, r0
ble _02232FDC
@@ -11230,7 +11230,7 @@ MOD80_02232FB8: ; 0x02232FB8
_02232FDC:
add r0, r5, #0
add r1, r4, #0
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
bl FUN_020690E4
pop {r3, r4, r5, r6, r7, pc}
_02232FEA:
@@ -11251,7 +11251,7 @@ MOD80_02232FF8: ; 0x02232FF8
cmp r0, #0
beq _02233014
add r0, r4, #0
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #2
bge _02233014
mov r0, #0
@@ -11266,7 +11266,7 @@ MOD80_02233018: ; 0x02233018
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
mov r4, #0
- bl TryDecryptBoxMon
+ bl AcquireBoxMonLock
ldr r5, _02233050 ; =0x02237220
str r0, [sp]
add r6, r4, #0
@@ -11274,7 +11274,7 @@ _02233028:
ldrh r1, [r5]
add r0, r7, #0
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r6, r6, #1
add r4, r4, r0
add r5, r5, #2
@@ -11282,7 +11282,7 @@ _02233028:
blt _02233028
ldr r1, [sp]
add r0, r7, #0
- bl TryEncryptBoxMon
+ bl ReleaseBoxMonLock
cmp r4, #0
beq _0223304C
mov r0, #1
@@ -11305,7 +11305,7 @@ MOD80_02233054: ; 0x02233054
_02233062:
mov r1, #0xab
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
bne _02233072
mov r0, #0
@@ -11314,7 +11314,7 @@ _02233072:
add r0, r4, #0
mov r1, #0xac
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
beq _02233084
mov r0, #2
@@ -11386,18 +11386,18 @@ MOD80_022330E4: ; 0x022330E4
mov r1, #5
mov r2, #0
add r5, r0, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r1, sp, #0
strh r0, [r1]
add r0, r5, #0
mov r1, #0x6f
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r1, r0, #1
add r0, sp, #0
strb r1, [r0, #2]
add r0, r5, #0
- bl CalcBoxMonLevelEncrypted
+ bl CalcBoxMonLevel
add r1, sp, #0
strb r0, [r1, #3]
add r0, sp, #0
@@ -11418,7 +11418,7 @@ MOD80_0223311C: ; 0x0223311C
ldr r0, [r0]
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r1, sp, #0
strh r0, [r1, #6]
add r0, r5, #0
@@ -11426,14 +11426,14 @@ MOD80_0223311C: ; 0x0223311C
ldr r0, [r0]
mov r1, #0x6f
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r1, r0, #1
add r0, sp, #0
strb r1, [r0, #8]
add r0, r5, #0
add r0, #0xbc
ldr r0, [r0]
- bl CalcBoxMonLevelEncrypted
+ bl CalcBoxMonLevel
add r1, sp, #0
strb r0, [r1, #9]
add r0, r4, #0
@@ -11459,13 +11459,13 @@ MOD80_0223311C: ; 0x0223311C
mov r1, #5
mov r2, #0
add r5, r0, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r1, sp, #0
strh r0, [r1]
add r0, r5, #0
mov r1, #0x6f
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r0, r0, #1
add r1, sp, #0
strb r0, [r1, #2]
@@ -11524,7 +11524,7 @@ MOD80_022331F8: ; 0x022331F8
push {r3, lr}
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
lsl r0, r0, #0x10
lsr r0, r0, #0x10
bl FUN_0206EA98
@@ -13374,14 +13374,14 @@ MOD80_022340DC: ; 0x022340DC
ldr r0, [sp, #0xc]
ldr r2, [sp, #0x18]
mov r1, #0x76
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
ldr r0, [sp, #0xc]
mov r1, #0x6f
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r6, r0, #1
ldr r0, [sp, #0xc]
- bl CalcBoxMonLevelEncrypted
+ bl CalcBoxMonLevel
str r0, [sp, #0x10]
add r0, r4, #0
mov r1, #0x64
@@ -13467,7 +13467,7 @@ _022341CA:
ldr r0, [sp, #0xc]
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
strh r0, [r7]
ldr r0, [sp, #0x10]
strb r6, [r7, #2]
@@ -15859,7 +15859,7 @@ MOD80_022353B4: ; 0x022353B4
bl FUN_02022840
mov r0, #0x1f
str r0, [r4, #0x2c]
- bl rand_LC
+ bl LCRandom
ldr r1, _022353EC ; =0x00000445
bl _s32_div_f
lsl r0, r0, #0x10
@@ -16102,7 +16102,7 @@ _02235590:
add r1, #0xba
ldrh r1, [r1]
ldr r0, [r0, #8]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r4, r0, #0
bl FUN_0206AA84
add r2, r5, #0
@@ -16121,7 +16121,7 @@ _02235590:
ldr r0, [r5]
ldr r1, _022355EC ; =0x000001B9
ldr r0, [r0, #8]
- bl FUN_0206BAE4
+ bl PartyHasMon
cmp r0, #0
bne _022355DC
ldr r0, [r5]
@@ -16152,7 +16152,7 @@ MOD80_022355F0: ; 0x022355F0
mov r1, #6
mov r2, #0
add r6, r3, #0
- bl GetMonDataEncrypted
+ bl GetMonData
ldr r0, [r5]
add r1, r4, #0
ldr r0, [r0, #0x20]
@@ -16161,7 +16161,7 @@ MOD80_022355F0: ; 0x022355F0
str r0, [sp, #0x20]
ldr r0, [r5]
ldr r0, [r0, #8]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #6
bne _02235624
mov r0, #0
@@ -16175,7 +16175,7 @@ _02235624:
add r0, r4, #0
mov r1, #9
add r2, sp, #0
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [r5]
ldr r0, [r0]
bl MOD80_02235754
@@ -16189,7 +16189,7 @@ _02235640:
bl FUN_0206B900
ldr r0, [r5]
ldr r0, [r0, #8]
- bl FUN_0206B9AC
+ bl GetPartyCount
add r1, r5, #0
mov r2, #0x12
add r1, #0xcc
@@ -16246,7 +16246,7 @@ MOD80_022356AC: ; 0x022356AC
str r0, [sp, #0x20]
ldr r0, [r5]
ldr r0, [r0, #8]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #6
bne _022356D2
mov r0, #0
@@ -16258,7 +16258,7 @@ _022356D2:
add r0, r4, #0
mov r1, #9
add r2, sp, #0
- bl SetMonDataEncrypted
+ bl SetMonData
ldr r0, [sp, #0x20]
cmp r0, #0x12
bne _02235706
@@ -16268,7 +16268,7 @@ _022356D2:
bl FUN_0206B900
ldr r0, [r5]
ldr r0, [r0, #8]
- bl FUN_0206B9AC
+ bl GetPartyCount
add r1, r5, #0
mov r2, #0x12
add r1, #0xcc
@@ -16364,9 +16364,9 @@ MOD80_022357A0: ; 0x022357A0
add r0, r4, #0
mov r1, #0x74
add r2, sp, #4
- bl GetMonDataEncrypted
+ bl GetMonData
add r0, r4, #0
- bl GetMonGenderEncrypted
+ bl GetMonGender
add r3, r0, #0
mov r0, #0x3e
str r0, [sp]
@@ -16395,7 +16395,7 @@ MOD80_022357DC: ; 0x022357DC
beq _022357FA
ldr r0, [r4]
ldr r0, [r0, #8]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #6
bne _022357FA
mov r0, #2
@@ -16409,7 +16409,7 @@ _022357FA:
bne _02235816
ldr r0, [r4]
ldr r0, [r0, #8]
- bl FUN_0206B9AC
+ bl GetPartyCount
cmp r0, #6
bne _02235816
mov r0, #1
@@ -17434,7 +17434,7 @@ _02235FDE:
mov r1, #6
mov r2, #0
add r7, r0, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r3, r0, #0
add r0, sp, #0x30
lsl r3, r3, #0x10
@@ -17443,7 +17443,7 @@ _02235FDE:
add r1, r7, #0
mov r2, #1
lsr r3, r3, #0x10
- bl FUN_02069168
+ bl GetMonEvolution
str r0, [sp, #0x24]
cmp r0, #0
beq _02236052
@@ -17502,30 +17502,30 @@ _02236068:
add r0, r7, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, r0, #0
ldr r0, [sp, #0x20]
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r5, r0
bne _022360B6
mov r1, #0
add r0, r7, #0
add r2, r1, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r5, r0, #0
mov r1, #0
ldr r0, [sp, #0x20]
add r2, r1, #0
- bl GetMonDataEncrypted
+ bl GetMonData
cmp r5, r0
beq _02236126
_022360B6:
add r0, r7, #0
mov r1, #6
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r3, r0, #0
add r0, sp, #0x2c
lsl r3, r3, #0x10
@@ -17534,7 +17534,7 @@ _022360B6:
add r1, r7, #0
mov r2, #1
lsr r3, r3, #0x10
- bl FUN_02069168
+ bl GetMonEvolution
str r0, [sp, #0x28]
cmp r0, #0
beq _02236118
@@ -17717,7 +17717,7 @@ MOD80_02236218: ; 0x02236218
add r5, #0xd0
ldr r0, [r0, #8]
ldr r1, [r5]
- bl FUN_0206B9B0
+ bl GetPartyMonByIndex
add r1, r0, #0
add r0, r4, #0
bl FUN_02069B88
diff --git a/arm9/modules/81/asm/module_81.s b/arm9/modules/81/asm/module_81.s
index 87239548..e6f22ba3 100644
--- a/arm9/modules/81/asm/module_81.s
+++ b/arm9/modules/81/asm/module_81.s
@@ -136,7 +136,7 @@ _02237F22:
mov r1, #5
ldr r0, [r0]
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
mov r1, #0x53
lsl r1, r1, #2
strh r0, [r4, r1]
@@ -144,7 +144,7 @@ _02237F22:
mov r1, #5
ldr r0, [r0, #4]
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
ldr r1, _02237FD8 ; =0x0000014E
strh r0, [r4, r1]
mov r0, #0
@@ -197,7 +197,7 @@ MOD81_02237FE8: ; 0x02237FE8
push {r3, lr}
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
mov r1, #0x1c
bl GetMonBaseStat
cmp r0, #0
@@ -999,7 +999,7 @@ _0223860E:
ldr r4, [r0, #4]
_02238610:
add r0, r4, #0
- bl TryDecryptBoxMon
+ bl AcquireBoxMonLock
str r0, [sp, #0x20]
add r0, sp, #0x34
add r1, r4, #0
@@ -1008,12 +1008,12 @@ _02238610:
mov r1, #0
add r0, r4, #0
add r2, r1, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
str r0, [sp, #0x1c]
add r0, r4, #0
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x10
ldr r1, [sp, #0x58]
lsr r0, r0, #0x10
@@ -1051,7 +1051,7 @@ _02238648:
bl FUN_02017E14
ldr r1, [sp, #0x20]
add r0, r4, #0
- bl TryEncryptBoxMon
+ bl ReleaseBoxMonLock
add r0, r7, #0
bl FreeToHeap
_02238690:
@@ -2514,7 +2514,7 @@ _02239138:
bl MOD81_02238818
mov r1, #0x4c
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
bne _0223918A
ldr r0, [r4, #0x10]
@@ -3248,7 +3248,7 @@ MOD81_022396E8: ; 0x022396E8
str r1, [r4, r0]
add r0, r0, #4
str r1, [r4, r0]
- bl rand_MT
+ bl MTRandom
add r1, r4, #0
add r1, #0xbc
str r0, [r1]
@@ -3300,7 +3300,7 @@ _02239790:
add r0, r5, #0
add r0, #0xbc
ldr r0, [r0]
- bl seedr_MT
+ bl SetMTRNGSeed
add r0, r5, #0
bl FreeToHeap
_022397A0:
@@ -4154,17 +4154,17 @@ MOD81_02239E00: ; 0x02239E00
add r3, sp, #0x60
bl MOD81_022387A8
ldr r0, _02239F18 ; =0x035947D1
- bl seedr_MT
+ bl SetMTRNGSeed
mov r0, #0
str r0, [sp, #0x14]
add r4, r7, #0
_02239E9A:
- bl rand_MT
+ bl MTRandom
mov r1, #0xe8
bl _u32_div_f
add r6, r1, #0
add r6, #0xc
- bl rand_MT
+ bl MTRandom
mov r1, #0x71
lsl r1, r1, #2
bl _u32_div_f
@@ -9501,7 +9501,7 @@ _0223C8D6:
bl MOD81_02238820
mov r1, #0x4c
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0
bne _0223C902
ldr r0, [r4]
diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s
index 0ce9b5c7..2aa02a59 100644
--- a/arm9/modules/83/asm/module_83.s
+++ b/arm9/modules/83/asm/module_83.s
@@ -21809,7 +21809,7 @@ MOD83_02237F04: ; 0x02237F04
add r0, r1, #0
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
lsl r0, r0, #0x10
lsr r5, r0, #0x10
add r0, r4, #0
@@ -21864,9 +21864,9 @@ MOD83_02237F6C: ; 0x02237F6C
add r4, r1, #0
add r6, r0, #0
add r0, r4, #0
- bl WipeBoxMonDataAndEncrypt
+ bl ZeroBoxMonData
add r0, r4, #0
- bl TryDecryptBoxMon
+ bl AcquireBoxMonLock
mov r1, #0
str r0, [sp]
add r0, r6, #0
@@ -21876,7 +21876,7 @@ MOD83_02237F6C: ; 0x02237F6C
add r0, r4, #0
mov r1, #0
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0xb
mov r2, #0
@@ -21887,7 +21887,7 @@ MOD83_02237F6C: ; 0x02237F6C
add r0, r4, #0
mov r1, #5
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0xc
mov r2, #0
@@ -21903,7 +21903,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #6
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #1
mov r2, #0
@@ -21912,7 +21912,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #7
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x19
mov r2, #0
@@ -21921,13 +21921,13 @@ _02237FCE:
add r0, r4, #0
mov r1, #8
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
mov r0, #0x46
str r0, [sp, #8]
add r0, r4, #0
mov r1, #9
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
add r1, r4, #0
bl MOD83_02237F04
@@ -21935,7 +21935,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0xa
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #8
mov r2, #0
@@ -21944,7 +21944,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0xb
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #3
mov r2, #0
@@ -21953,7 +21953,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0xc
add r2, sp, #4
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x1a
mov r2, #0
@@ -21962,7 +21962,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0xd
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x1b
mov r2, #0
@@ -21971,7 +21971,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0xe
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x1c
mov r2, #0
@@ -21980,7 +21980,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0xf
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x1d
mov r2, #0
@@ -21989,7 +21989,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0x10
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x1e
mov r2, #0
@@ -21998,7 +21998,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0x11
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x1f
mov r2, #0
@@ -22007,7 +22007,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0x12
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x16
mov r2, #0
@@ -22016,7 +22016,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0x13
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x17
mov r2, #0
@@ -22025,7 +22025,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0x14
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x18
mov r2, #0
@@ -22034,7 +22034,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0x15
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x21
mov r2, #0
@@ -22043,7 +22043,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0x16
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x2f
mov r2, #0
@@ -22052,7 +22052,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0x17
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x30
mov r2, #0
@@ -22061,7 +22061,7 @@ _02237FCE:
add r0, r4, #0
mov r1, #0x18
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
mov r5, #0
add r7, r5, #0
_0223815E:
@@ -22075,7 +22075,7 @@ _0223815E:
add r0, r4, #0
add r1, #0x36
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x15
mov r2, #0
@@ -22090,18 +22090,18 @@ _0223815E:
add r0, r4, #0
add r1, #0x3e
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r1, r5, #0
add r0, r4, #0
add r1, #0x42
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
add r1, r5, #0
str r0, [sp, #8]
add r0, r4, #0
add r1, #0x3a
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r5, r5, #1
add r7, r7, #2
cmp r5, #4
@@ -22114,7 +22114,7 @@ _0223815E:
add r0, r4, #0
mov r1, #0x46
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x28
mov r2, #0
@@ -22123,7 +22123,7 @@ _0223815E:
add r0, r4, #0
mov r1, #0x47
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x29
mov r2, #0
@@ -22132,7 +22132,7 @@ _0223815E:
add r0, r4, #0
mov r1, #0x48
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x2a
mov r2, #0
@@ -22141,7 +22141,7 @@ _0223815E:
add r0, r4, #0
mov r1, #0x49
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x2b
mov r2, #0
@@ -22150,7 +22150,7 @@ _0223815E:
add r0, r4, #0
mov r1, #0x4a
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x2c
mov r2, #0
@@ -22159,7 +22159,7 @@ _0223815E:
add r0, r4, #0
mov r1, #0x4b
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x2d
mov r2, #0
@@ -22168,7 +22168,7 @@ _0223815E:
add r0, r4, #0
mov r1, #0x4c
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x32
mov r2, #0
@@ -22186,7 +22186,7 @@ _0223826C:
add r0, r4, #0
add r1, #0x4e
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r5, r5, #1
cmp r5, r7
blt _0223826C
@@ -22208,7 +22208,7 @@ _02238298:
add r0, r4, #0
add r1, #0x52
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r5, r5, #1
cmp r5, r7
blt _02238298
@@ -22230,7 +22230,7 @@ _022382C4:
add r0, r4, #0
add r1, #0x56
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r5, r5, #1
cmp r5, r7
blt _022382C4
@@ -22252,7 +22252,7 @@ _022382F0:
add r0, r4, #0
add r1, #0x5a
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r5, r5, #1
cmp r5, r7
blt _022382F0
@@ -22274,7 +22274,7 @@ _0223831C:
add r0, r4, #0
add r1, #0x5e
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r5, r5, #1
cmp r5, r7
blt _0223831C
@@ -22287,7 +22287,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x62
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x44
mov r2, #0
@@ -22296,7 +22296,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x63
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x45
mov r2, #0
@@ -22305,7 +22305,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x64
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x46
mov r2, #0
@@ -22314,7 +22314,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x65
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x47
mov r2, #0
@@ -22323,7 +22323,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x66
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x48
mov r2, #0
@@ -22332,7 +22332,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x67
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x49
mov r2, #0
@@ -22341,7 +22341,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x68
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x4a
mov r2, #0
@@ -22350,7 +22350,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x69
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x4b
mov r2, #0
@@ -22359,7 +22359,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x6a
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x4c
mov r2, #0
@@ -22368,7 +22368,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x6b
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x4d
mov r2, #0
@@ -22377,7 +22377,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x6c
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x4e
mov r2, #0
@@ -22386,7 +22386,7 @@ _02238332:
add r0, r4, #0
mov r1, #0x6d
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x50
mov r2, #0
@@ -22395,18 +22395,18 @@ _02238332:
add r0, r4, #0
mov r1, #0x6e
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0
- bl GetBoxMonGenderEncrypted
+ bl GetBoxMonGender
str r0, [sp, #8]
add r0, r4, #0
mov r1, #0x6f
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r4, #0
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
cmp r0, #0xc9
bne _022384AE
mov r1, #0
@@ -22436,12 +22436,12 @@ _02238332:
add r0, r4, #0
mov r1, #0x70
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
_022384AE:
add r0, r4, #0
mov r1, #5
mov r2, #0
- bl GetBoxMonDataEncrypted
+ bl GetBoxMonData
ldr r1, _022385F0 ; =0x00000182
cmp r0, r1
bne _022384FE
@@ -22481,7 +22481,7 @@ _022384F4:
add r0, r4, #0
mov r1, #0x70
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
_022384FE:
add r0, r6, #0
mov r1, #2
@@ -22495,7 +22495,7 @@ _022384FE:
add r0, r4, #0
mov r1, #0x75
add r2, sp, #0xc
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #3
mov r2, #0
@@ -22509,7 +22509,7 @@ _022384FE:
add r0, r4, #0
mov r1, #0x4d
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
_0223853E:
add r0, r6, #0
mov r1, #0x25
@@ -22519,7 +22519,7 @@ _0223853E:
add r0, r4, #0
mov r1, #0x79
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #7
add r2, sp, #0x24
@@ -22532,7 +22532,7 @@ _0223853E:
add r0, r4, #0
mov r1, #0x8f
add r2, sp, #0xc
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x23
mov r2, #0
@@ -22541,7 +22541,7 @@ _0223853E:
add r0, r4, #0
mov r1, #0x98
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x22
mov r2, #0
@@ -22550,7 +22550,7 @@ _0223853E:
add r0, r4, #0
mov r1, #0x99
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x26
mov r2, #0
@@ -22559,7 +22559,7 @@ _0223853E:
add r0, r4, #0
mov r1, #0x9a
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x24
mov r2, #0
@@ -22568,7 +22568,7 @@ _0223853E:
add r0, r4, #0
mov r1, #0x9b
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
add r0, r6, #0
mov r1, #0x31
mov r2, #0
@@ -22577,10 +22577,10 @@ _0223853E:
add r0, r4, #0
mov r1, #0x9c
add r2, sp, #8
- bl SetBoxMonDataEncrypted
+ bl SetBoxMonData
ldr r1, [sp]
add r0, r4, #0
- bl TryEncryptBoxMon
+ bl ReleaseBoxMonLock
add sp, #0x30
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -23885,10 +23885,10 @@ MOD83_02238F94: ; 0x02238F94
add r7, r2, #0
add r6, r3, #0
ldr r4, [sp, #0x40]
- bl GetMonGenderEncrypted
+ bl GetMonGender
str r0, [sp, #0x24]
ldr r0, [sp, #0x20]
- bl FUN_02068A80
+ bl MonIsShiny
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp]
@@ -23908,7 +23908,7 @@ MOD83_02238F94: ; 0x02238F94
mov r1, #0
ldr r0, [sp, #0x20]
add r2, r1, #0
- bl GetMonDataEncrypted
+ bl GetMonData
mov r3, #0
str r3, [sp]
mov r1, #0xa
@@ -24027,12 +24027,12 @@ _022390C2:
add r0, r4, #0
mov r1, #5
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r6, r0, #0
add r0, r4, #0
mov r1, #0x70
mov r2, #0
- bl GetMonDataEncrypted
+ bl GetMonData
add r2, r0, #0
mov r0, #0xe9
lsl r0, r0, #4
diff --git a/arm9/modules/84/asm/module_84.s b/arm9/modules/84/asm/module_84.s
index fc7ebf31..8fd1ddbe 100644
--- a/arm9/modules/84/asm/module_84.s
+++ b/arm9/modules/84/asm/module_84.s
@@ -1670,7 +1670,7 @@ _021D82CC:
add r2, r4, r1
ldr r1, _021D8434 ; =0x000002BA
strb r0, [r2, r1]
- bl rand_LC
+ bl LCRandom
ldr r1, _021D8428 ; =0x00001220
ldr r1, [r4, r1]
lsl r1, r1, #3
@@ -1705,7 +1705,7 @@ _021D8340:
add r5, r4, #0
add r5, #0x18
_021D8358:
- bl rand_LC
+ bl LCRandom
ldr r1, _021D8428 ; =0x00001220
ldr r1, [r4, r1]
sub r1, r1, r7
@@ -1748,7 +1748,7 @@ _021D8358:
cmp r7, r0
blt _021D8358
_021D83B0:
- bl rand_LC
+ bl LCRandom
mov r1, #3
bl _s32_div_f
add r5, r1, #0
@@ -1787,7 +1787,7 @@ _021D83E8:
bl FUN_02024674
ldr r1, _021D8434 ; =0x000002BA
strb r0, [r4, r1]
- bl rand_LC
+ bl LCRandom
mov r1, #0xaf
lsl r1, r1, #2
str r0, [r4, r1]
@@ -2922,7 +2922,7 @@ MOD84_021D8C54: ; 0x021D8C54
str r2, [r4, r0]
add r1, #0xa
strh r2, [r4, r1]
- bl rand_LC
+ bl LCRandom
ldr r1, _021D8CD0 ; =0x00000DFC
strh r0, [r4, r1]
add r0, r5, #0
@@ -2986,7 +2986,7 @@ MOD84_021D8CEC: ; 0x021D8CEC
add r4, r0, #0
ldr r0, _021D8D08 ; =0x00000DFC
ldrh r0, [r4, r0]
- bl seedr_LC
+ bl SetLCRNGSeed
add r0, r4, #0
bl MOD84_021D9044
add r0, r4, #0
@@ -3393,7 +3393,7 @@ _021D8FE4:
b _021D9034
_021D9028:
ldr r0, _021D9040 ; =0x00003485
- bl seedr_LC
+ bl SetLCRNGSeed
add sp, #0x6c
mov r0, #1
pop {r4, r5, r6, r7, pc}
@@ -3551,7 +3551,7 @@ _021D90F6:
mov r0, #0x4e
lsl r0, r0, #0xe
str r0, [r4, #0x18]
- bl rand_LC
+ bl LCRandom
lsr r2, r0, #0x1f
lsl r1, r0, #0x19
sub r1, r1, r2
@@ -3563,7 +3563,7 @@ _021D90F6:
str r0, [r4, #0x1c]
mov r0, #0
str r0, [r4, #0x20]
- bl rand_LC
+ bl LCRandom
ldr r1, _021D9200 ; =0x00000667
bl _s32_div_f
ldr r0, _021D9204 ; =0x00000666
@@ -3573,7 +3573,7 @@ _021D90F6:
str r0, [r4, #0x30]
mov r0, #0
str r0, [r4, #0x28]
- bl rand_LC
+ bl LCRandom
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
@@ -3583,7 +3583,7 @@ _021D90F6:
add r0, r0, #2
lsl r0, r0, #0xc
str r0, [r4, #0x2c]
- bl rand_LC
+ bl LCRandom
mov r1, #0xc
bl _s32_div_f
add r0, r1, #4
@@ -3759,7 +3759,7 @@ _021D92AE:
mov r0, #0x4e
lsl r0, r0, #0xe
str r0, [r4, #0x18]
- bl rand_LC
+ bl LCRandom
lsr r2, r0, #0x1f
lsl r1, r0, #0x19
sub r1, r1, r2
@@ -3771,7 +3771,7 @@ _021D92AE:
str r0, [r4, #0x1c]
mov r0, #0
str r0, [r4, #0x20]
- bl rand_LC
+ bl LCRandom
ldr r1, _021D938C ; =0x00000667
bl _s32_div_f
ldr r0, _021D9390 ; =0x00000666
@@ -3781,7 +3781,7 @@ _021D92AE:
str r0, [r4, #0x30]
mov r0, #0
str r0, [r4, #0x28]
- bl rand_LC
+ bl LCRandom
lsr r2, r0, #0x1f
lsl r1, r0, #0x1f
sub r1, r1, r2
@@ -3791,7 +3791,7 @@ _021D92AE:
add r0, r0, #2
lsl r0, r0, #0xc
str r0, [r4, #0x2c]
- bl rand_LC
+ bl LCRandom
mov r1, #0xc
bl _s32_div_f
add r0, r1, #4
diff --git a/arm9/modules/85/asm/module_85.s b/arm9/modules/85/asm/module_85.s
index f89be7c2..aeaa3704 100644
--- a/arm9/modules/85/asm/module_85.s
+++ b/arm9/modules/85/asm/module_85.s
@@ -1587,7 +1587,7 @@ MOD85_021D81C8: ; 0x021D81C8
mov r4, #0
lsl r6, r7, #0x11
_021D81D2:
- bl rand_LC
+ bl LCRandom
add r1, r7, #0
bl _s32_div_f
add r0, r5, #0
@@ -6759,7 +6759,7 @@ _021DA7B4:
thumb_func_start MOD85_021DA7B8
MOD85_021DA7B8: ; 0x021DA7B8
push {r3, lr}
- bl rand_LC
+ bl LCRandom
mov r1, #0x64
bl _u32_div_f
add r0, r1, #0
@@ -7481,7 +7481,7 @@ _021DAD08: .word 0x021E0240
MOD85_021DAD0C: ; 0x021DAD0C
push {r4, lr}
add r4, r0, #0
- bl rand_LC
+ bl LCRandom
mov r1, #6
bl _s32_div_f
str r1, [r4, #0x34]
@@ -11751,7 +11751,7 @@ MOD85_021DCB6C: ; 0x021DCB6C
add r1, sp, #0x1c
bl FUN_02020064
mov r0, #0
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
ldr r0, [r4, #4]
bl FUN_02020088
@@ -12308,7 +12308,7 @@ MOD85_021DCF88: ; 0x021DCF88
add r1, sp, #0x1c
bl FUN_02020054
mov r0, #0
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
ldr r0, [r4, #0x28]
bl FUN_02020088
@@ -13715,7 +13715,7 @@ MOD85_021DDA60: ; 0x021DDA60
add r1, sp, #0x1c
bl FUN_02020064
mov r0, #0
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
ldr r0, [r4, #0xc]
bl FUN_02020088
@@ -13933,7 +13933,7 @@ MOD85_021DDBFC: ; 0x021DDBFC
add r1, sp, #0x1c
bl FUN_02020064
mov r0, #0
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
ldr r0, [r4, #0xc]
bl FUN_02020088
@@ -14473,7 +14473,7 @@ _021DE036:
add r1, sp, #0x20
bl FUN_02020064
mov r0, #0
- bl FUN_0201B9A0
+ bl MathUtil_0201B9A0
add r1, r0, #0
ldr r0, [r4, #0x1c]
bl FUN_02020088
diff --git a/arm9/src/main.c b/arm9/src/main.c
index 82b8b734..fea5a53b 100644
--- a/arm9/src/main.c
+++ b/arm9/src/main.c
@@ -267,8 +267,8 @@ THUMB_FUNC void FUN_02000F4C(u32 arg0, u32 arg1)
}
extern void FUN_0201265C(struct Unk21C4818 *, struct Unk21C4828 *);
-extern void seedr_MT(u32);
-extern void seedr_LC(u32);
+extern void SetMTRNGSeed(u32);
+extern void SetLCRNGSeed(u32);
THUMB_FUNC void InitializeMainRNG(void)
{
@@ -278,8 +278,8 @@ THUMB_FUNC void InitializeMainRNG(void)
{
u32 r4 = gUnknown21C48B8.unk2C;
u32 r5 = ((sp0.unk4 + sp0.unk8) << 24) + (spC.unk0 + ((256 * spC.unk4 * spC.unk8) << 16) + (sp0.unk0 << 16));
- seedr_MT(r4 + r5);
- seedr_LC(r4 + r5);
+ SetMTRNGSeed(r4 + r5);
+ SetLCRNGSeed(r4 + r5);
}
}
diff --git a/arm9/src/math_util.c b/arm9/src/math_util.c
new file mode 100644
index 00000000..5aeb4f8e
--- /dev/null
+++ b/arm9/src/math_util.c
@@ -0,0 +1,411 @@
+#include "global.h"
+#include "math_util.h"
+
+extern const s16 UNK_020FFA38[]; // temporary until further notice
+
+/*
+ * Constant tables
+ */
+const s32 gSineTable[] =
+{
+ 0x00000000, 0x00000047, 0x0000008F, 0x000000D6,
+ 0x0000011E, 0x00000165, 0x000001AC, 0x000001F3,
+ 0x0000023A, 0x00000281, 0x000002C7, 0x0000030E,
+ 0x00000354, 0x00000399, 0x000003DF, 0x00000424,
+ 0x00000469, 0x000004AE, 0x000004F2, 0x00000536,
+ 0x00000579, 0x000005BC, 0x000005FE, 0x00000640,
+ 0x00000682, 0x000006C3, 0x00000704, 0x00000744,
+ 0x00000783, 0x000007C2, 0x00000800, 0x0000083E,
+ 0x0000087B, 0x000008B7, 0x000008F2, 0x0000092D,
+ 0x00000968, 0x000009A1, 0x000009DA, 0x00000A12,
+ 0x00000A49, 0x00000A7F, 0x00000AB5, 0x00000AE9,
+ 0x00000B1D, 0x00000B50, 0x00000B82, 0x00000BB4,
+ 0x00000BE4, 0x00000C13, 0x00000C42, 0x00000C6F,
+ 0x00000C9C, 0x00000CC7, 0x00000CF2, 0x00000D1B,
+ 0x00000D44, 0x00000D6B, 0x00000D92, 0x00000DB7,
+ 0x00000DDB, 0x00000DFE, 0x00000E21, 0x00000E42,
+ 0x00000E61, 0x00000E80, 0x00000E9E, 0x00000EBA,
+ 0x00000ED6, 0x00000EF0, 0x00000F09, 0x00000F21,
+ 0x00000F38, 0x00000F4D, 0x00000F61, 0x00000F74,
+ 0x00000F86, 0x00000F97, 0x00000FA6, 0x00000FB5,
+ 0x00000FC2, 0x00000FCE, 0x00000FD8, 0x00000FE1,
+ 0x00000FEA, 0x00000FF0, 0x00000FF6, 0x00000FFA,
+ 0x00000FFE, 0x00000FFF, 0x00001000, 0x00000FFF,
+ 0x00000FFE, 0x00000FFA, 0x00000FF6, 0x00000FF0,
+ 0x00000FEA, 0x00000FE1, 0x00000FD8, 0x00000FCE,
+ 0x00000FC2, 0x00000FB5, 0x00000FA6, 0x00000F97,
+ 0x00000F86, 0x00000F74, 0x00000F61, 0x00000F4D,
+ 0x00000F38, 0x00000F21, 0x00000F09, 0x00000EF0,
+ 0x00000ED6, 0x00000EBA, 0x00000E9E, 0x00000E80,
+ 0x00000E61, 0x00000E42, 0x00000E21, 0x00000DFE,
+ 0x00000DDB, 0x00000DB7, 0x00000D92, 0x00000D6B,
+ 0x00000D44, 0x00000D1B, 0x00000CF2, 0x00000CC7,
+ 0x00000C9C, 0x00000C6F, 0x00000C42, 0x00000C13,
+ 0x00000BE4, 0x00000BB4, 0x00000B82, 0x00000B50,
+ 0x00000B1D, 0x00000AE9, 0x00000AB5, 0x00000A7F,
+ 0x00000A49, 0x00000A12, 0x000009DA, 0x000009A1,
+ 0x00000968, 0x0000092D, 0x000008F2, 0x000008B7,
+ 0x0000087B, 0x0000083E, 0x00000800, 0x000007C2,
+ 0x00000783, 0x00000744, 0x00000704, 0x000006C3,
+ 0x00000682, 0x00000640, 0x000005FE, 0x000005BC,
+ 0x00000579, 0x00000536, 0x000004F2, 0x000004AE,
+ 0x00000469, 0x00000424, 0x000003DF, 0x00000399,
+ 0x00000354, 0x0000030E, 0x000002C7, 0x00000281,
+ 0x0000023A, 0x000001F3, 0x000001AC, 0x00000165,
+ 0x0000011E, 0x000000D6, 0x0000008F, 0x00000047,
+ 0x00000000, 0xFFFFFFB9, 0xFFFFFF71, 0xFFFFFF2A,
+ 0xFFFFFEE2, 0xFFFFFE9B, 0xFFFFFE54, 0xFFFFFE0D,
+ 0xFFFFFDC6, 0xFFFFFD7F, 0xFFFFFD39, 0xFFFFFCF2,
+ 0xFFFFFCAC, 0xFFFFFC67, 0xFFFFFC21, 0xFFFFFBDC,
+ 0xFFFFFB97, 0xFFFFFB52, 0xFFFFFB0E, 0xFFFFFACA,
+ 0xFFFFFA87, 0xFFFFFA44, 0xFFFFFA02, 0xFFFFF9C0,
+ 0xFFFFF97E, 0xFFFFF93D, 0xFFFFF8FC, 0xFFFFF8BC,
+ 0xFFFFF87D, 0xFFFFF83E, 0xFFFFF800, 0xFFFFF7C2,
+ 0xFFFFF785, 0xFFFFF749, 0xFFFFF70E, 0xFFFFF6D3,
+ 0xFFFFF698, 0xFFFFF65F, 0xFFFFF626, 0xFFFFF5EE,
+ 0xFFFFF5B7, 0xFFFFF581, 0xFFFFF54B, 0xFFFFF517,
+ 0xFFFFF4E3, 0xFFFFF4B0, 0xFFFFF47E, 0xFFFFF44C,
+ 0xFFFFF41C, 0xFFFFF3ED, 0xFFFFF3BE, 0xFFFFF391,
+ 0xFFFFF364, 0xFFFFF339, 0xFFFFF30E, 0xFFFFF2E5,
+ 0xFFFFF2BC, 0xFFFFF295, 0xFFFFF26E, 0xFFFFF249,
+ 0xFFFFF225, 0xFFFFF202, 0xFFFFF1DF, 0xFFFFF1BE,
+ 0xFFFFF19F, 0xFFFFF180, 0xFFFFF162, 0xFFFFF146,
+ 0xFFFFF12A, 0xFFFFF110, 0xFFFFF0F7, 0xFFFFF0DF,
+ 0xFFFFF0C8, 0xFFFFF0B3, 0xFFFFF09F, 0xFFFFF08C,
+ 0xFFFFF07A, 0xFFFFF069, 0xFFFFF05A, 0xFFFFF04B,
+ 0xFFFFF03E, 0xFFFFF032, 0xFFFFF028, 0xFFFFF01F,
+ 0xFFFFF016, 0xFFFFF010, 0xFFFFF00A, 0xFFFFF006,
+ 0xFFFFF002, 0xFFFFF001, 0xFFFFF000, 0xFFFFF001,
+ 0xFFFFF002, 0xFFFFF006, 0xFFFFF00A, 0xFFFFF010,
+ 0xFFFFF016, 0xFFFFF01F, 0xFFFFF028, 0xFFFFF032,
+ 0xFFFFF03E, 0xFFFFF04B, 0xFFFFF05A, 0xFFFFF069,
+ 0xFFFFF07A, 0xFFFFF08C, 0xFFFFF09F, 0xFFFFF0B3,
+ 0xFFFFF0C8, 0xFFFFF0DF, 0xFFFFF0F7, 0xFFFFF110,
+ 0xFFFFF12A, 0xFFFFF146, 0xFFFFF162, 0xFFFFF180,
+ 0xFFFFF19F, 0xFFFFF1BE, 0xFFFFF1DF, 0xFFFFF202,
+ 0xFFFFF225, 0xFFFFF249, 0xFFFFF26E, 0xFFFFF295,
+ 0xFFFFF2BC, 0xFFFFF2E5, 0xFFFFF30E, 0xFFFFF339,
+ 0xFFFFF364, 0xFFFFF391, 0xFFFFF3BE, 0xFFFFF3ED,
+ 0xFFFFF41C, 0xFFFFF44C, 0xFFFFF47E, 0xFFFFF4B0,
+ 0xFFFFF4E3, 0xFFFFF517, 0xFFFFF54B, 0xFFFFF581,
+ 0xFFFFF5B7, 0xFFFFF5EE, 0xFFFFF626, 0xFFFFF65F,
+ 0xFFFFF698, 0xFFFFF6D3, 0xFFFFF70E, 0xFFFFF749,
+ 0xFFFFF785, 0xFFFFF7C2, 0xFFFFF800, 0xFFFFF83E,
+ 0xFFFFF87D, 0xFFFFF8BC, 0xFFFFF8FC, 0xFFFFF93D,
+ 0xFFFFF97E, 0xFFFFF9C0, 0xFFFFFA02, 0xFFFFFA44,
+ 0xFFFFFA87, 0xFFFFFACA, 0xFFFFFB0E, 0xFFFFFB52,
+ 0xFFFFFB97, 0xFFFFFBDC, 0xFFFFFC21, 0xFFFFFC67,
+ 0xFFFFFCAC, 0xFFFFFCF2, 0xFFFFFD39, 0xFFFFFD7F,
+ 0xFFFFFDC6, 0xFFFFFE0D, 0xFFFFFE54, 0xFFFFFE9B,
+ 0xFFFFFEE2, 0xFFFFFF2A, 0xFFFFFF71, 0xFFFFFFB9,
+ 0x00000000, 0x00000047, 0x0000008F, 0x000000D6,
+ 0x0000011E, 0x00000165, 0x000001AC, 0x000001F3,
+ 0x0000023A, 0x00000281, 0x000002C7, 0x0000030E,
+ 0x00000354, 0x00000399, 0x000003DF, 0x00000424,
+ 0x00000469, 0x000004AE, 0x000004F2, 0x00000536,
+ 0x00000579, 0x000005BC, 0x000005FE, 0x00000640,
+ 0x00000682, 0x000006C3, 0x00000704, 0x00000744,
+ 0x00000783, 0x000007C2, 0x00000800, 0x0000083E,
+ 0x0000087B, 0x000008B7, 0x000008F2, 0x0000092D,
+ 0x00000968, 0x000009A1, 0x000009DA, 0x00000A12,
+ 0x00000A49, 0x00000A7F, 0x00000AB5, 0x00000AE9,
+ 0x00000B1D, 0x00000B50, 0x00000B82, 0x00000BB4,
+ 0x00000BE4, 0x00000C13, 0x00000C42, 0x00000C6F,
+ 0x00000C9C, 0x00000CC7, 0x00000CF2, 0x00000D1B,
+ 0x00000D44, 0x00000D6B, 0x00000D92, 0x00000DB7,
+ 0x00000DDB, 0x00000DFE, 0x00000E21, 0x00000E42,
+ 0x00000E61, 0x00000E80, 0x00000E9E, 0x00000EBA,
+ 0x00000ED6, 0x00000EF0, 0x00000F09, 0x00000F21,
+ 0x00000F38, 0x00000F4D, 0x00000F61, 0x00000F74,
+ 0x00000F86, 0x00000F97, 0x00000FA6, 0x00000FB5,
+ 0x00000FC2, 0x00000FCE, 0x00000FD8, 0x00000FE1,
+ 0x00000FEA, 0x00000FF0, 0x00000FF6, 0x00000FFA,
+ 0x00000FFE, 0x00000FFF
+};
+
+const u16 UNK_020EDC7E[] = // rotations?
+{
+ 0x0000, 0x00B7, 0x016D, 0x0223, 0x02D9, 0x038F, 0x0445, 0x04FB, 0x05B1, 0x0667,
+ 0x071D, 0x07D3, 0x0889, 0x093F, 0x09F5, 0x0AAB, 0x0B61, 0x0C17, 0x0CCD, 0x0D83,
+ 0x0E39, 0x0EEF, 0x0FA5, 0x105C, 0x1112, 0x11C8, 0x127E, 0x1334, 0x13EA, 0x14A0,
+ 0x1556, 0x160C, 0x16C2, 0x1778, 0x182E, 0x18E4, 0x199A, 0x1A50, 0x1B06, 0x1BBC,
+ 0x1C72, 0x1D28, 0x1DDE, 0x1E94, 0x1F4A, 0x2000, 0x20B7, 0x216D, 0x2223, 0x22D9,
+ 0x238F, 0x2445, 0x24FB, 0x25B1, 0x2667, 0x271D, 0x27D3, 0x2889, 0x293F, 0x29F5,
+ 0x2AAB, 0x2B61, 0x2C17, 0x2CCD, 0x2D83, 0x2E39, 0x2EEF, 0x2FA5, 0x305C, 0x3112,
+ 0x31C8, 0x327E, 0x3334, 0x33EA, 0x34A0, 0x3556, 0x360C, 0x36C2, 0x3778, 0x382E,
+ 0x38E4, 0x399A, 0x3A50, 0x3B06, 0x3BBC, 0x3C72, 0x3D28, 0x3DDE, 0x3E94, 0x3F4A,
+ 0x4000, 0x40B7, 0x416D, 0x4223, 0x42D9, 0x438F, 0x4445, 0x44FB, 0x45B1, 0x4667,
+ 0x471D, 0x47D3, 0x4889, 0x493F, 0x49F5, 0x4AAB, 0x4B61, 0x4C17, 0x4CCD, 0x4D83,
+ 0x4E39, 0x4EEF, 0x4FA5, 0x505C, 0x5112, 0x51C8, 0x527E, 0x5334, 0x53EA, 0x54A0,
+ 0x5556, 0x560C, 0x56C2, 0x5778, 0x582E, 0x58E4, 0x599A, 0x5A50, 0x5B06, 0x5BBC,
+ 0x5C72, 0x5D28, 0x5DDE, 0x5E94, 0x5F4A, 0x6000, 0x60B7, 0x616D, 0x6223, 0x62D9,
+ 0x638F, 0x6445, 0x64FB, 0x65B1, 0x6667, 0x671D, 0x67D3, 0x6889, 0x693F, 0x69F5,
+ 0x6AAB, 0x6B61, 0x6C17, 0x6CCD, 0x6D83, 0x6E39, 0x6EEF, 0x6FA5, 0x705C, 0x7112,
+ 0x71C8, 0x727E, 0x7334, 0x73EA, 0x74A0, 0x7556, 0x760C, 0x76C2, 0x7778, 0x782E,
+ 0x78E4, 0x799A, 0x7A50, 0x7B06, 0x7BBC, 0x7C72, 0x7D28, 0x7DDE, 0x7E94, 0x7F4A,
+ 0x8000, 0x80B7, 0x816D, 0x8223, 0x82D9, 0x838F, 0x8445, 0x84FB, 0x85B1, 0x8667,
+ 0x871D, 0x87D3, 0x8889, 0x893F, 0x89F5, 0x8AAB, 0x8B61, 0x8C17, 0x8CCD, 0x8D83,
+ 0x8E39, 0x8EEF, 0x8FA5, 0x905C, 0x9112, 0x91C8, 0x927E, 0x9334, 0x93EA, 0x94A0,
+ 0x9556, 0x960C, 0x96C2, 0x9778, 0x982E, 0x98E4, 0x999A, 0x9A50, 0x9B06, 0x9BBC,
+ 0x9C72, 0x9D28, 0x9DDE, 0x9E94, 0x9F4A, 0xA000, 0xA0B7, 0xA16D, 0xA223, 0xA2D9,
+ 0xA38F, 0xA445, 0xA4FB, 0xA5B1, 0xA667, 0xA71D, 0xA7D3, 0xA889, 0xA93F, 0xA9F5,
+ 0xAAAB, 0xAB61, 0xAC17, 0xACCD, 0xAD83, 0xAE39, 0xAEEF, 0xAFA5, 0xB05C, 0xB112,
+ 0xB1C8, 0xB27E, 0xB334, 0xB3EA, 0xB4A0, 0xB556, 0xB60C, 0xB6C2, 0xB778, 0xB82E,
+ 0xB8E4, 0xB99A, 0xBA50, 0xBB06, 0xBBBC, 0xBC72, 0xBD28, 0xBDDE, 0xBE94, 0xBF4A,
+ 0xC000, 0xC0B7, 0xC16D, 0xC223, 0xC2D9, 0xC38F, 0xC445, 0xC4FB, 0xC5B1, 0xC667,
+ 0xC71D, 0xC7D3, 0xC889, 0xC93F, 0xC9F5, 0xCAAB, 0xCB61, 0xCC17, 0xCCCD, 0xCD83,
+ 0xCE39, 0xCEEF, 0xCFA5, 0xD05C, 0xD112, 0xD1C8, 0xD27E, 0xD334, 0xD3EA, 0xD4A0,
+ 0xD556, 0xD60C, 0xD6C2, 0xD778, 0xD82E, 0xD8E4, 0xD99A, 0xDA50, 0xDB06, 0xDBBC,
+ 0xDC72, 0xDD28, 0xDDDE, 0xDE94, 0xDF4A, 0xE000, 0xE0B7, 0xE16D, 0xE223, 0xE2D9,
+ 0xE38F, 0xE445, 0xE4FB, 0xE5B1, 0xE667, 0xE71D, 0xE7D3, 0xE889, 0xE93F, 0xE9F5,
+ 0xEAAB, 0xEB61, 0xEC17, 0xECCD, 0xED83, 0xEE39, 0xEEEF, 0xEFA5, 0xF05C, 0xF112,
+ 0xF1C8, 0xF27E, 0xF334, 0xF3EA, 0xF4A0, 0xF556, 0xF60C, 0xF6C2, 0xF778, 0xF82E,
+ 0xF8E4, 0xF99A, 0xFA50, 0xFB06, 0xFBBC, 0xFC72, 0xFD28, 0xFDDE, 0xFE94, 0xFF4A
+};
+
+const u16 UNK_020EDB80[] =
+{
+ 0x169F, 0x0F14, 0x0B4F, 0x090C, 0x078A, 0x0676, 0x05A7, 0x0506,
+ 0x0486, 0x041C, 0x03C5, 0x037A, 0x033B, 0x0304, 0x02D3, 0x02A9,
+ 0x0283, 0x0261, 0x0243, 0x0227, 0x020E, 0x01F7, 0x01E2, 0x01CF,
+ 0x01BD, 0x01AC, 0x019D, 0x018F, 0x0182, 0x0175, 0x0169, 0x015E,
+ 0x0154, 0x014A, 0x0141, 0x0139, 0x0130, 0x0128, 0x0121, 0x011A,
+ 0x0113, 0x010D, 0x0107, 0x0101, 0x00FB, 0x00F6, 0x00F1, 0x00EC,
+ 0x00E7, 0x00E3, 0x00DE, 0x00DA, 0x00D6, 0x00D2, 0x00CE, 0x00CB,
+ 0x00C7, 0x00C4, 0x00C1, 0x00BD, 0x00BA, 0x00B7, 0x00B4, 0x00B2,
+ 0x00AF, 0x00AC, 0x00AA, 0x00A7, 0x00A5, 0x00A3, 0x00A0, 0x009E,
+ 0x009C, 0x009A, 0x0098, 0x0096, 0x0094, 0x0092, 0x0090, 0x008E,
+ 0x008D, 0x008B, 0x0089, 0x0088, 0x0086, 0x0085, 0x0083, 0x0082,
+ 0x0080, 0x007F, 0x007D, 0x007C, 0x007B, 0x0079, 0x0078, 0x0077,
+ 0x0076, 0x0074, 0x0073, 0x0072, 0x0071, 0x0070, 0x006F, 0x006E,
+ 0x006D, 0x006C, 0x006B, 0x006A, 0x0069, 0x0068, 0x0067, 0x0066,
+ 0x0065, 0x0064, 0x0063, 0x0062, 0x0062, 0x0061, 0x0060, 0x005F,
+ 0x005E, 0x005E, 0x005D, 0x005C, 0x005B, 0x005B, 0x005A
+};
+
+/*
+ * Temporary prototypes; keep until all files using math_util are decompiled.
+ */
+THUMB_FUNC s32 Sin(u16 degrees);
+THUMB_FUNC s32 Cos(u16 degrees);
+THUMB_FUNC s32 Sin_Wrap(u16 degrees);
+THUMB_FUNC s32 Cos_Wrap(u16 degrees);
+THUMB_FUNC u16 MathUtil_0201B9A0(u16 x);
+THUMB_FUNC s32 Sin32(s32 degrees);
+
+THUMB_FUNC u32 GetLCRNGSeed();
+THUMB_FUNC void SetLCRNGSeed(u32 seed);
+THUMB_FUNC u16 LCRandom(void);
+
+THUMB_FUNC u32 PRandom(u32 seed);
+
+THUMB_FUNC void SetMTRNGSeed(u32 seed);
+THUMB_FUNC u32 MTRandom(void);
+
+THUMB_FUNC void MTX22_2DAffine(struct Mtx22 * mtx, u16 radians, fx32 x, fx32 y, u8 type);
+
+THUMB_FUNC s32 CircularDistance(s32 x1, s32 y1, s32 x2, s32 y2);
+THUMB_FUNC s32 MathUtil_0201BC84(u16 arg0, s32 arg1);
+
+/*
+ * Trigonometric functions
+ */
+// Returns the sine of a 16-bit unsigned degree value.
+THUMB_FUNC s32 Sin(u16 degrees)
+{
+ if (degrees >= 360)
+ return 0;
+ else
+ return gSineTable[degrees];
+}
+// Returns the cosine of a 16-bit unsigned degree value.
+THUMB_FUNC s32 Cos(u16 degrees)
+{
+ if (degrees >= 360)
+ return 0;
+ else
+ return gSineTable[degrees + 90];
+}
+
+// Returns the wrapped sine of a 16-bit unsigned degree value.
+THUMB_FUNC s32 Sin_Wrap(u16 degrees)
+{
+ return gSineTable[degrees % 360];
+}
+
+// Returns the wrapped cosine of a 16-bit unsigned degree value.
+THUMB_FUNC s32 Cos_Wrap(u16 degrees)
+{
+ return gSineTable[(degrees % 360) + 90];
+}
+
+// Purpose unknown.
+THUMB_FUNC u16 MathUtil_0201B9A0(u16 x)
+{
+ return UNK_020EDC7E[x % 360];
+}
+
+// Returns the sine of a 32-bit signed degree value.
+THUMB_FUNC s32 Sin32(s32 degrees)
+{
+ return gSineTable[(u16)(degrees >> 12) % 360];
+}
+
+/*
+ * Random number generators
+ */
+static u32 sMTRNG_State[624]; // Mersenne Twister seed storage/buffer
+static union
+{
+ u32 LC_State; // Linear-congruential seed storage/buffer
+ u32 MTRNG_State[]; // Don't bother asking why Game Freak did this. Just don't.
+} sRNGHack;
+
+// Returns the Linear-congruential buffer in full.
+THUMB_FUNC u32 GetLCRNGSeed()
+{
+ return sRNGHack.LC_State;
+}
+
+// Initializes the Linear-congruential buffer with a 32-bit seed.
+THUMB_FUNC void SetLCRNGSeed(u32 seed)
+{
+ sRNGHack.LC_State = seed;
+}
+
+// Calculates an unsigned 16-bit random integer using the Linear-congruential algorithm.
+THUMB_FUNC u16 LCRandom(void)
+{
+ // cycle the RNG
+ sRNGHack.LC_State *= 0x41C64E6D;
+ sRNGHack.LC_State += 0x6073;
+ return (u16)(sRNGHack.LC_State / 65536); // shut up the compiler
+}
+
+// Returns a cheap, psuedo-random unsigned 32-bit random integer from a seed.
+THUMB_FUNC u32 PRandom(u32 seed)
+{
+ return seed * 1812433253 + 1; // seed from Mersenne Twister algorithm
+}
+
+static s32 sMTRNG_Cycles = 625; // Mersenne Twister cycle counter, 625 default value
+static u32 sMTRNG_XOR[2] = {0, 0x9908b0df}; // Mersenne Twister XOR mask table
+
+// Initializes the Mersenne Twister buffer with a 32-bit seed.
+THUMB_FUNC void SetMTRNGSeed(u32 seed)
+{
+ sRNGHack.MTRNG_State[0+1] = seed;
+
+ for (sMTRNG_Cycles = 1; sMTRNG_Cycles < 624; sMTRNG_Cycles++)
+ sMTRNG_State[sMTRNG_Cycles] = 1812433253 * (sMTRNG_State[sMTRNG_Cycles - 1] ^ (sMTRNG_State[sMTRNG_Cycles - 1] >> 30)) + sMTRNG_Cycles;
+}
+
+// Calculates an unsigned 32-bit random integer using the Mersenne Twister algorithm.
+THUMB_FUNC u32 MTRandom(void)
+{
+ u32 val;
+ s32 i;
+
+ if (sMTRNG_Cycles >= 624)
+ {
+ if (sMTRNG_Cycles == 625)
+ SetMTRNGSeed(5489);
+
+ for (i = 0; i < 227; i++)
+ {
+ val = (sMTRNG_State[i] & 0x80000000) | (sMTRNG_State[i + 1] & 0x7fffffff);
+ sMTRNG_State[i] = sMTRNG_State[i + 397] ^ (val >> 1) ^ sMTRNG_XOR[val & 0x1];
+ }
+ for (; i < 623; i++)
+ {
+ val = (sMTRNG_State[i] & 0x80000000) | (sMTRNG_State[i + 1] & 0x7fffffff);
+ sMTRNG_State[i] = sMTRNG_State[i + -227] ^ (val >> 1) ^ sMTRNG_XOR[val & 0x1];
+ }
+
+ val = (sRNGHack.MTRNG_State[623+1] & 0x80000000) | (sRNGHack.MTRNG_State[0+1] & 0x7fffffff);
+ sRNGHack.MTRNG_State[623+1] = sRNGHack.MTRNG_State[396+1] ^ (val >> 1) ^ sMTRNG_XOR[val & 0x1];
+
+ sMTRNG_Cycles = 0;
+ }
+
+ val = sMTRNG_State[sMTRNG_Cycles++]; // has to be this way in order to match
+
+ val ^= val >> 11;
+ val ^= (val << 7) & 0x9d2c5680;
+ val ^= (val << 15) & 0xefc60000;
+ val ^= val >> 18;
+
+ return val;
+}
+
+/*
+ * Nitro FX specific functions
+ */
+// Rotates and scales a 2D plane by a number of degrees.
+THUMB_FUNC void MTX22_2DAffine(struct Mtx22 * mtx, u16 radians, fx32 x, fx32 y, u8 type)
+{
+ if (type == 1)
+ radians = (u16)((u32)(radians * 65535) >> 8); // shut up the compiler
+ else if (type == 2)
+ radians = (u16)((u32)(radians * 65535) / 360); // shut up the compiler
+
+ MTX_Rot22_(mtx,
+ UNK_020FFA38[((radians >> 4) * 2)], // TODO: macros
+ UNK_020FFA38[((radians >> 4) * 2) + 1]); // TODO: macros
+ MTX_ScaleApply22(mtx, mtx, x, y);
+}
+
+/*
+ * Vector functions
+ */
+// Calculates the circular distance between two vector coordinates.
+THUMB_FUNC s32 CircularDistance(s32 x1, s32 y1, s32 x2, s32 y2)
+{
+ struct Vecx32 v1, v2, v3, v4;
+ fx32 f1, f2;
+ s32 ret;
+
+ // TODO: Code looks like it could have been macroized.
+ v1.x = x1 << FX32_INT_SHIFT;
+ v1.y = y1 << FX32_INT_SHIFT;
+ v1.z = 0;
+
+ v2.x = x2 << FX32_INT_SHIFT;
+ v2.y = y2 << FX32_INT_SHIFT;
+ v2.z = 0;
+
+ v4.x = 0;
+ v4.y = 0;
+ v4.z = FX32_MUL(v1.x, v2.y) - FX32_MUL(v2.x, v1.y);
+
+ f1 = v4.x + v4.y + v4.z;
+
+ v1.x = y1 << FX32_INT_SHIFT;
+ v1.y = x1 << FX32_INT_SHIFT;
+ v1.z = 0;
+
+ VEC_Normalize(&v1, &v3);
+
+ v1.x = x1 << FX32_INT_SHIFT;
+ v1.y = y1 << FX32_INT_SHIFT;
+ v1.z = 0;
+
+ v2.x = x2 << FX32_INT_SHIFT;
+ v2.y = y2 << FX32_INT_SHIFT;
+ v2.z = 0;
+
+ VEC_Subtract(&v2, &v1, &v4);
+ f2 = VEC_DotProduct(&v3, &v4);
+ ret = f2 >> FX32_INT_SHIFT;
+ ret = (ret < 0) ? -ret : ret;
+
+ if (f1 <= 0)
+ ret *= -1;
+ return ret;
+}
+
+THUMB_FUNC s32 MathUtil_0201BC84(u16 arg0, s32 arg1)
+{
+ return (arg1 * 65535) /
+ (FX32_MUL((arg0 * 2) << FX32_INT_SHIFT, FX32_CONST(3.140f)) >> FX32_INT_SHIFT);
+}
diff --git a/arm9/src/nutdata.c b/arm9/src/nutdata.c
new file mode 100644
index 00000000..09542052
--- /dev/null
+++ b/arm9/src/nutdata.c
@@ -0,0 +1,78 @@
+#include "global.h"
+#include "filesystem.h"
+#include "itemtool.h"
+#include "msg_data.h"
+
+#pragma thumb on
+
+NARC * OpenNutsDataNarc(u32 heap_id)
+{
+ return NARC_ctor(NARC_ITEMTOOL_ITEMDATA_NUTS_DATA, heap_id);
+}
+
+struct NutData * ReadNutDataFromNarc(NARC * narc, u32 berry_idx, u32 heap_id)
+{
+ return NARC_AllocAndReadWholeMember(narc, berry_idx, heap_id);
+}
+
+void CloseNutsDataNarc(NARC * narc)
+{
+ NARC_dtor(narc);
+}
+
+struct NutData * LoadNutDataSingle(u32 berry_idx, u32 heap_id)
+{
+ return AllocAndReadWholeNarcMemberByIdPair(NARC_ITEMTOOL_ITEMDATA_NUTS_DATA, berry_idx, heap_id);
+}
+
+struct NutData * LoadNutDataSingleByItemId(u32 item_id, u32 heap_id)
+{
+ return LoadNutDataSingle(item_id - FIRST_BERRY_IDX, heap_id);
+}
+
+u32 GetNutAttr(struct NutData * nut, u32 attr)
+{
+ switch (attr)
+ {
+ case 0:
+ return nut->unk0;
+ case 1:
+ return nut->unk2;
+ case 2:
+ return nut->unk3;
+ case 3:
+ return nut->unk4;
+ case 4:
+ return nut->unk5;
+ case 5:
+ return nut->unk6;
+ case 6:
+ return nut->unk7;
+ case 7:
+ return nut->unk8;
+ case 8:
+ return nut->unk9;
+ case 9:
+ return nut->unkA;
+ case 10:
+ return nut->unkB;
+ default:
+ return 0;
+ }
+}
+
+u16 * GetNutName(u32 berry_idx, u32 heap_id)
+{
+ struct MsgData * msgData = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, 373, heap_id);
+ u16 * ret = FUN_0200A914(msgData, berry_idx);
+ DestroyMsgData(msgData);
+ return ret;
+}
+
+u16 * GetNutDesc(u32 berry_idx, u32 heap_id)
+{
+ struct MsgData * msgData = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, 372, heap_id);
+ u16 * ret = FUN_0200A914(msgData, berry_idx);
+ DestroyMsgData(msgData);
+ return ret;
+}
diff --git a/arm9/src/party.c b/arm9/src/party.c
new file mode 100644
index 00000000..d7799fe2
--- /dev/null
+++ b/arm9/src/party.c
@@ -0,0 +1,127 @@
+#include "global.h"
+#include "party.h"
+#include "heap.h"
+#include "proto.h"
+
+#pragma thumb on
+
+void FUN_0206B8C0(struct PlayerParty * party);
+void FUN_0206B8CC(struct PlayerParty * party, int count);
+
+u32 FUN_0206B8A4(void)
+{
+ return sizeof(struct PlayerParty);
+}
+
+struct PlayerParty * FUN_0206B8AC(u32 heap_id)
+{
+ struct PlayerParty * ret = (struct PlayerParty *)AllocFromHeap(heap_id, sizeof(struct PlayerParty));
+ FUN_0206B8C0(ret);
+ return ret;
+}
+
+void FUN_0206B8C0(struct PlayerParty * party)
+{
+ FUN_0206B8CC(party, PARTY_SIZE);
+}
+
+void FUN_0206B8CC(struct PlayerParty * party, int count)
+{
+ int i;
+ GF_ASSERT(count <= PARTY_SIZE);
+ memset(party, 0, sizeof(struct PlayerParty));
+ party->curCount = 0;
+ party->maxCount = count;
+ for (i = 0; i < 6; i++)
+ ZeroMonData(&party->mons[i]);
+}
+
+BOOL FUN_0206B900(struct PlayerParty * party, struct Pokemon * pokemon)
+{
+ if (party->curCount >= party->maxCount)
+ return FALSE;
+ party->mons[party->curCount] = *pokemon;
+ party->curCount++;
+ return TRUE;
+}
+
+BOOL FUN_0206B938(struct PlayerParty * party, int pos)
+{
+ int i;
+
+ GF_ASSERT(pos >= 0);
+ GF_ASSERT(pos < party->curCount);
+ GF_ASSERT(pos < party->maxCount);
+ GF_ASSERT(party->curCount > 0);
+
+ for (i = pos; i < party->curCount - 1; i++)
+ {
+ party->mons[i] = party->mons[i + 1];
+ }
+
+ ZeroMonData(&party->mons[i]);
+ party->curCount--;
+ return TRUE;
+}
+
+int GetPartyCount(struct PlayerParty * party)
+{
+ return party->curCount;
+}
+
+struct Pokemon * GetPartyMonByIndex(struct PlayerParty * party, int pos)
+{
+ GF_ASSERT(pos >= 0);
+ GF_ASSERT(pos < party->curCount);
+ GF_ASSERT(pos < party->maxCount);
+ return &party->mons[pos];
+}
+
+void FUN_0206B9DC(struct PlayerParty * party, int pos, struct Pokemon * pokemon)
+{
+ int r2;
+ GF_ASSERT(pos >= 0);
+ GF_ASSERT(pos < party->curCount);
+ GF_ASSERT(pos < party->maxCount);
+ r2 = (int)(GetMonData(&party->mons[pos], MON_DATA_SPECIES_EXISTS, NULL) - GetMonData(pokemon, MON_DATA_SPECIES_EXISTS, NULL));
+ party->mons[pos] = *pokemon;
+ party->curCount += r2;
+}
+
+BOOL FUN_0206BA38(struct PlayerParty * party, int pos1, int pos2)
+{
+ struct Pokemon * buffer;
+ GF_ASSERT(pos1 >= 0);
+ GF_ASSERT(pos1 < party->curCount);
+ GF_ASSERT(pos1 < party->maxCount);
+ GF_ASSERT(pos2 >= 0);
+ GF_ASSERT(pos2 < party->curCount);
+ GF_ASSERT(pos2 < party->maxCount);
+ buffer = AllocFromHeap(0, sizeof(struct Pokemon));
+ *buffer = party->mons[pos1];
+ party->mons[pos1] = party->mons[pos2];
+ party->mons[pos2] = *buffer;
+ FreeToHeap(buffer);
+ return FALSE;
+}
+
+void FUN_0206BAD0(struct PlayerParty * src, struct PlayerParty * dest)
+{
+ *dest = *src;
+}
+
+BOOL PartyHasMon(struct PlayerParty * party, u16 species)
+{
+ int i;
+ for (i = 0; i < party->curCount; i++)
+ {
+ if (species == GetMonData(&party->mons[i], MON_DATA_SPECIES, NULL))
+ break;
+ }
+ return i != party->curCount;
+}
+
+struct PlayerParty * FUN_0206BB1C(void * ptr)
+{
+ return (struct PlayerParty *)FUN_02022610(ptr, 2);
+}
diff --git a/arm9/src/pokemon.c b/arm9/src/pokemon.c
new file mode 100644
index 00000000..8df597a6
--- /dev/null
+++ b/arm9/src/pokemon.c
@@ -0,0 +1,3741 @@
+#include "global.h"
+#define IN_POKEMON_C
+#include "proto.h"
+#include "party.h"
+#include "pokemon.h"
+#include "filesystem.h"
+#include "heap.h"
+#include "MI_memory.h"
+#include "math_util.h"
+#include "move_data.h"
+#include "string_util.h"
+#include "text.h"
+#include "constants/abilities.h"
+#include "constants/items.h"
+#include "constants/moves.h"
+#include "constants/sinnoh_dex.h"
+
+#pragma thumb on
+
+u32 GetMonDataInternal(struct Pokemon * pokemon, int attr, void * ptr);
+u32 GetBoxMonDataInternal(struct BoxPokemon * pokemon, int attr, void * ptr);
+void SetMonDataInternal(struct Pokemon * pokemon, int attr, void * ptr);
+void SetBoxMonDataInternal(struct BoxPokemon * pokemon, int attr, void * ptr);
+void AddMonDataInternal(struct Pokemon * pokemon, int attr, int amount);
+void AddBoxMonData(struct BoxPokemon * pokemon, int attr, int amount);
+u32 CalcBoxMonExpToNextLevel(struct BoxPokemon * boxmon);
+u16 ModifyStatByNature(u8 nature, u16 statval, u8 statno);
+u8 GetGenderBySpeciesAndPersonality_PreloadedPersonal(struct BaseStats * personal, u16 species, u32 pid);
+u8 BoxMonIsShiny(struct BoxPokemon * boxmon);
+u8 CalcShininessByOtIdAndPersonality(u32 otid, u32 pid);
+void InitBoxMonMoveset(struct BoxPokemon * boxmon);
+u32 FUN_020696A8(struct BoxPokemon * boxmon, u16 move);
+void FUN_02069718(struct BoxPokemon * boxmon, u16 move);
+void FUN_020697D4(struct BoxPokemon * boxmon, u16 move, u8 slot);
+void FUN_020698E8(struct BoxPokemon * boxmon, int slot1, int slot2);
+s8 FUN_02069BD0(struct BoxPokemon * boxmon, int flavor);
+s8 FUN_02069BE4(u32 personality, int flavor);
+u8 FUN_02069CF4(struct PlayerParty * party_p, u8 mask);
+BOOL FUN_02069E7C(struct BoxPokemon * boxmon);
+BOOL FUN_02069E9C(struct BoxPokemon * boxmon);
+void FUN_02069ECC(struct BoxPokemon * boxmon);
+void LoadWotbl_HandleAlternateForme(int species, int forme, u16 * wotbl);
+void FUN_0206A054(struct BoxPokemon * boxmon, u32 a1, u32 pokeball, u32 a3, u32 encounterType, u32 a5);
+BOOL MonHasMove(struct Pokemon * pokemon, u16 move);
+BOOL FUN_0206A144(struct BoxPokemon * boxmon, u32 a1);
+BOOL FUN_0206A16C(u16 species, int forme, u32 a2);
+void FUN_0206A1CC(struct BoxPokemon * boxmon);
+u32 MaskOfFlagNo(int flagno);
+void LoadMonPersonal(int species, struct BaseStats * personal);
+void LoadMonEvolutionTable(u16 species, struct Evolution * dest);
+
+int ResolveMonForme(int species, int forme);
+void MonEncryptSegment(u16 * datap, u32 size, u32 key);
+void MonDecryptSegment(u16 * datap, u32 size, u32 key);
+u16 MonEncryptionLCRNG(u32 * seed);
+u16 CalcMonChecksum(u16 * datap, u32 size);
+PokemonDataBlock * GetSubstruct(struct BoxPokemon * boxmon, u32 personality, u8 which_struct);
+void LoadMonBaseStats_HandleAlternateForme(int species, int forme, struct BaseStats * baseStats);
+u8 FUN_020690D4(struct BoxPokemon * boxmon);
+
+#define ENCRY_ARGS_PTY(mon) (u16 *)&(mon)->party, sizeof((mon)->party), (mon)->box.pid
+#define ENCRY_ARGS_BOX(boxmon) (u16 *)&(boxmon)->substructs, sizeof((boxmon)->substructs), (boxmon)->checksum
+#define ENCRYPT_PTY(mon) MonEncryptSegment(ENCRY_ARGS_PTY(mon))
+#define ENCRYPT_BOX(boxmon) MonEncryptSegment(ENCRY_ARGS_BOX(boxmon))
+#define DECRYPT_PTY(mon) MonDecryptSegment(ENCRY_ARGS_PTY(mon))
+#define DECRYPT_BOX(boxmon) MonDecryptSegment(ENCRY_ARGS_BOX(boxmon))
+#define CHECKSUM(boxmon) CalcMonChecksum((u16 *)(boxmon)->substructs, sizeof((boxmon)->substructs))
+#define SHINY_CHECK(otid, pid) (( \
+ ((((otid) & 0xFFFF0000u) >> 16u)) ^ \
+ (((otid) & 0xFFFFu)) ^ \
+ ((((pid) & 0xFFFF0000u) >> 16u))^ \
+ (((pid) & 0xFFFFu))) \
+ < 8u)
+#define CALC_UNOWN_LETTER(pid) ((u32)((((pid) & 0x3000000) >> 18) | (((pid) & 0x30000) >> 12) | (((pid) & 0x300) >> 6) | (((pid) & 0x3) >> 0)) % 28u)
+
+const u16 sItemOdds[2][2] = {
+ { 45, 95 },
+ { 20, 80 },
+};
+
+const s8 sFriendshipModTable[][3] = {
+ { 5, 3, 2 },
+ { 5, 3, 2 },
+ { 1, 1, 0 },
+ { 3, 2, 1 },
+ { 1, 1, 0 },
+ { 1, 1, 1 },
+ { -1, -1, -1 },
+ { -5, -5, -10 },
+ { -5, -5, -10 },
+ { 3, 2, 1 },
+};
+
+const u16 sLegendaryMonsList[] = {
+ SPECIES_MEWTWO,
+ SPECIES_MEW,
+ SPECIES_HO_OH,
+ SPECIES_LUGIA,
+ SPECIES_CELEBI,
+ SPECIES_KYOGRE,
+ SPECIES_GROUDON,
+ SPECIES_RAYQUAZA,
+ SPECIES_JIRACHI,
+ SPECIES_DEOXYS,
+ SPECIES_DIALGA,
+ SPECIES_PALKIA,
+ SPECIES_GIRATINA,
+ SPECIES_PHIONE,
+ SPECIES_MANAPHY,
+ SPECIES_DARKRAI,
+ SPECIES_SHAYMIN,
+ SPECIES_ARCEUS,
+};
+
+const s8 UNK_020F7F16[][5] = {
+ // Atk, Def, Spd, SpA, SpD
+ { 0, 0, 0, 0, 0},
+ { 1, 0, 0, 0, -1},
+ { 1, 0, -1, 0, 0},
+ { 1, -1, 0, 0, 0},
+ { 1, 0, 0, -1, 0},
+ { -1, 0, 0, 0, 1},
+ { 0, 0, 0, 0, 0},
+ { 0, 0, -1, 0, 1},
+ { 0, -1, 0, 0, 1},
+ { 0, 0, 0, -1, 1},
+ { -1, 0, 1, 0, 0},
+ { 0, 0, 1, 0, -1},
+ { 0, 0, 0, 0, 0},
+ { 0, -1, 1, 0, 0},
+ { 0, 0, 1, -1, 0},
+ { -1, 1, 0, 0, 0},
+ { 0, 1, 0, 0, -1},
+ { 0, 1, -1, 0, 0},
+ { 0, 0, 0, 0, 0},
+ { 0, 1, 0, -1, 0},
+ { -1, 0, 0, 1, 0},
+ { 0, 0, 0, 1, -1},
+ { 0, 0, -1, 1, 0},
+ { 0, -1, 0, 1, 0},
+ { 0, 0, 0, 0, 0},
+};
+
+const s8 sNatureStatMods[][5] = {
+ { 0, 0, 0, 0, 0 },
+ { 1, -1, 0, 0, 0 },
+ { 1, 0, -1, 0, 0 },
+ { 1, 0, 0, -1, 0 },
+ { 1, 0, 0, 0, -1 },
+ { -1, 1, 0, 0, 0 },
+ { 0, 0, 0, 0, 0 },
+ { 0, 1, -1, 0, 0 },
+ { 0, 1, 0, -1, 0 },
+ { 0, 1, 0, 0, -1 },
+ { -1, 0, 1, 0, 0 },
+ { 0, -1, 1, 0, 0 },
+ { 0, 0, 0, 0, 0 },
+ { 0, 0, 1, -1, 0 },
+ { 0, 0, 1, 0, -1 },
+ { -1, 0, 0, 1, 0 },
+ { 0, -1, 0, 1, 0 },
+ { 0, 0, -1, 1, 0 },
+ { 0, 0, 0, 0, 0 },
+ { 0, 0, 0, 1, -1 },
+ { -1, 0, 0, 0, 1 },
+ { 0, -1, 0, 0, 1 },
+ { 0, 0, -1, 0, 1 },
+ { 0, 0, 0, -1, 1 },
+ { 0, 0, 0, 0, 0 },
+};
+
+void ZeroMonData(struct Pokemon * pokemon)
+{
+ MIi_CpuClearFast(0, pokemon, sizeof(struct Pokemon));
+ ENCRYPT_BOX(&pokemon->box);
+ ENCRYPT_PTY(pokemon);
+}
+
+void ZeroBoxMonData(struct BoxPokemon * boxmon)
+{
+ MIi_CpuClearFast(0, boxmon, sizeof(struct BoxPokemon));
+ ENCRYPT_BOX(boxmon);
+}
+
+u32 SizeOfStructPokemon(void)
+{
+ return sizeof(struct Pokemon);
+}
+
+struct Pokemon * AllocMonZeroed(u32 heap_id)
+{
+ struct Pokemon * pokemon = (struct Pokemon *)AllocFromHeap(heap_id, sizeof(struct Pokemon));
+ ZeroMonData(pokemon);
+ return pokemon;
+}
+
+BOOL AcquireMonLock(struct Pokemon * mon)
+{
+ BOOL ret = FALSE;
+
+ if (!mon->box.party_lock)
+ {
+ ret = TRUE;
+ GF_ASSERT(!mon->box.box_lock);
+ mon->box.party_lock = TRUE;
+ mon->box.box_lock = TRUE;
+ DECRYPT_PTY(mon);
+ DECRYPT_BOX(&mon->box);
+ }
+ return ret;
+}
+
+BOOL ReleaseMonLock(struct Pokemon * mon, BOOL decrypt_result)
+{
+ BOOL ret = FALSE;
+ if (mon->box.party_lock == TRUE && decrypt_result == TRUE)
+ {
+ ret = TRUE;
+ mon->box.party_lock = FALSE;
+ mon->box.box_lock = FALSE;
+ ENCRYPT_PTY(mon);
+ mon->box.checksum = CHECKSUM(&mon->box);
+ ENCRYPT_BOX(&mon->box);
+ }
+ return ret;
+}
+
+BOOL AcquireBoxMonLock(struct BoxPokemon * mon)
+{
+ BOOL ret = FALSE;
+
+ if (!mon->box_lock)
+ {
+ ret = TRUE;
+ mon->box_lock = TRUE;
+ DECRYPT_BOX(mon);
+ }
+ return ret;
+}
+
+BOOL ReleaseBoxMonLock(struct BoxPokemon * mon, BOOL decrypt_result)
+{
+ BOOL ret = FALSE;
+ if (mon->box_lock == TRUE && decrypt_result == TRUE)
+ {
+ ret = TRUE;
+ mon->box_lock = FALSE;
+ mon->checksum = CHECKSUM(mon);
+ ENCRYPT_BOX(mon);
+ }
+ return ret;
+}
+
+void CreateMon(struct Pokemon * pokemon, int species, int level, int fixedIV, int hasFixedPersonality, int fixedPersonality, int otIdType, int fixedOtId)
+{
+ struct SealStruct * seal;
+ u32 capsule;
+ u8 seal_coords[0x18];
+ ZeroMonData(pokemon);
+ CreateBoxMon(&pokemon->box, species, level, fixedIV, hasFixedPersonality, fixedPersonality, otIdType, fixedOtId);
+ // Not your average encryption call
+ MonEncryptSegment((u16 *)&pokemon->party, sizeof(pokemon->party), 0);
+ ENCRYPT_PTY(pokemon);
+ SetMonData(pokemon, MON_DATA_LEVEL, &level);
+ seal = CreateNewSealsObject(0);
+ SetMonData(pokemon, MON_DATA_SEAL_STRUCT, seal);
+ FreeToHeap(seal);
+ capsule = 0;
+ SetMonData(pokemon, MON_DATA_CAPSULE, &capsule);
+ MIi_CpuClearFast(0, seal_coords, sizeof(seal_coords));
+ SetMonData(pokemon, MON_DATA_SEAL_COORDS, seal_coords);
+ CalcMonLevelAndStats(pokemon);
+}
+
+void CreateBoxMon(struct BoxPokemon * boxPokemon, int species, int level, int fixedIV, int hasFixedPersonality, int fixedPersonality, int otIdType, int fixedOtId)
+{
+ BOOL decry;
+ u32 exp;
+ u32 iv;
+ ZeroBoxMonData(boxPokemon);
+ decry = AcquireBoxMonLock(boxPokemon);
+ if (hasFixedPersonality == 0)
+ {
+ fixedPersonality = (LCRandom() | (LCRandom() << 16));
+ }
+ SetBoxMonData(boxPokemon, MON_DATA_PERSONALITY, &fixedPersonality);
+ if (otIdType == 2)
+ {
+ do
+ {
+ fixedOtId = (LCRandom() | (LCRandom() << 16));
+ } while (SHINY_CHECK(fixedOtId, fixedPersonality));
+ }
+ else if (otIdType != 1)
+ fixedOtId = 0;
+ SetBoxMonData(boxPokemon, MON_DATA_OTID, &fixedOtId);
+ SetBoxMonData(boxPokemon, MON_DATA_GAME_LANGUAGE, (void *)&gGameLanguage);
+ SetBoxMonData(boxPokemon, MON_DATA_SPECIES, &species);
+ SetBoxMonData(boxPokemon, MON_DATA_SPECIES_NAME, NULL);
+ exp = GetMonExpBySpeciesAndLevel(species, level);
+ SetBoxMonData(boxPokemon, MON_DATA_EXPERIENCE, &exp);
+ exp = (u32)GetMonBaseStat(species, BASE_FRIENDSHIP);
+ SetBoxMonData(boxPokemon, MON_DATA_FRIENDSHIP, &exp);
+ SetBoxMonData(boxPokemon, MON_DATA_MET_LEVEL, &level);
+ SetBoxMonData(boxPokemon, MON_DATA_GAME_VERSION, (void *)&gGameVersion);
+ exp = ITEM_POKE_BALL;
+ SetBoxMonData(boxPokemon, MON_DATA_POKEBALL, &exp);
+ if (fixedIV < 0x20)
+ {
+ SetBoxMonData(boxPokemon, MON_DATA_HP_IV, &fixedIV);
+ SetBoxMonData(boxPokemon, MON_DATA_ATK_IV, &fixedIV);
+ SetBoxMonData(boxPokemon, MON_DATA_DEF_IV, &fixedIV);
+ SetBoxMonData(boxPokemon, MON_DATA_SPEED_IV, &fixedIV);
+ SetBoxMonData(boxPokemon, MON_DATA_SPATK_IV, &fixedIV);
+ SetBoxMonData(boxPokemon, MON_DATA_SPDEF_IV, &fixedIV);
+ }
+ else
+ {
+ exp = LCRandom();
+ iv = exp & 0x1F;
+ SetBoxMonData(boxPokemon, MON_DATA_HP_IV, &iv);
+ iv = (exp & 0x3E0) >> 5;
+ SetBoxMonData(boxPokemon, MON_DATA_ATK_IV, &iv);
+ iv = (exp & 0x7C00) >> 10;
+ SetBoxMonData(boxPokemon, MON_DATA_DEF_IV, &iv);
+ exp = LCRandom();
+ iv = exp & 0x1F;
+ SetBoxMonData(boxPokemon, MON_DATA_SPEED_IV, &iv);
+ iv = (exp & 0x3E0) >> 5;
+ SetBoxMonData(boxPokemon, MON_DATA_SPATK_IV, &iv);
+ iv = (exp & 0x7C00) >> 10;
+ SetBoxMonData(boxPokemon, MON_DATA_SPDEF_IV, &iv);
+ }
+ exp = (u32)GetMonBaseStat(species, BASE_ABILITY_1);
+ iv = (u32)GetMonBaseStat(species, BASE_ABILITY_2);
+ if (iv != 0)
+ {
+ if (fixedPersonality & 1)
+ SetBoxMonData(boxPokemon, MON_DATA_ABILITY, &iv);
+ else
+ SetBoxMonData(boxPokemon, MON_DATA_ABILITY, &exp);
+ }
+ else
+ SetBoxMonData(boxPokemon, MON_DATA_ABILITY, &exp);
+ exp = GetBoxMonGender(boxPokemon);
+ SetBoxMonData(boxPokemon, MON_DATA_GENDER, &exp);
+ InitBoxMonMoveset(boxPokemon);
+ ReleaseBoxMonLock(boxPokemon, decry);
+}
+
+void CreateMonWithNature(struct Pokemon * pokemon, u16 species, u8 level, u8 fixedIv, u8 nature)
+{
+ u32 personality;
+ do
+ {
+ personality = (u32)(LCRandom() | (LCRandom() << 16));
+ } while (nature != GetNatureFromPersonality(personality));
+ CreateMon(pokemon, (int)species, (int)level, (int)fixedIv, 1, (int)personality, (int)0, (int)0);
+}
+
+// FIXME: stack storage of pokemon, fixedIv swapped
+void CreateMonWithGenderNatureLetter(struct Pokemon * pokemon, u16 species, u8 level, u8 fixedIv, u8 gender, u8 nature, u8 letter)
+{
+ u32 pid = 0;
+ u16 test = 0;
+ if (letter != 0 && letter < 29)
+ {
+ do {
+ pid = (u32)(LCRandom() | (LCRandom() << 16));
+ test = (u16)CALC_UNOWN_LETTER(pid);
+ } while (nature != GetNatureFromPersonality(pid) || gender != GetGenderBySpeciesAndPersonality(species, pid) || test != letter - 1);
+ }
+ else
+ {
+ pid = GenPersonalityByGenderAndNature(species, gender, nature);
+ }
+ CreateMon(pokemon, (int)species, (int)level, (int)fixedIv, 1, (int)pid, 0, 0);
+}
+
+u32 GenPersonalityByGenderAndNature(u16 species, u8 gender, u8 nature)
+{
+ int pid = nature;
+ u8 ratio = (u8)GetMonBaseStat(species, BASE_GENDER_RATIO);
+ switch (ratio)
+ {
+ case MON_RATIO_MALE:
+ case MON_RATIO_FEMALE:
+ case MON_RATIO_UNKNOWN:
+ break;
+ default:
+ if (gender == MON_MALE)
+ {
+ // Smallest increment that forces the low byte to exceed the
+ // gender ratio, thus making the mon male
+ pid = 25 * ((ratio / 25) + 1);
+ pid += nature;
+ }
+ break;
+ }
+ return (u32)pid;
+}
+
+void CreateMonWithFixedIVs(struct Pokemon * pokemon, int species, int level, int ivs, int personality)
+{
+ CreateMon(pokemon, species, level, 0, 1, personality, 0, 0);
+ SetMonData(pokemon, MON_DATA_IVS_WORD, &ivs);
+ CalcMonLevelAndStats(pokemon);
+}
+
+void CalcMonLevelAndStats(struct Pokemon * pokemon)
+{
+ BOOL decry = AcquireMonLock(pokemon);
+ u32 level = (u32)CalcMonLevel(pokemon);
+ SetMonData(pokemon, MON_DATA_LEVEL, &level);
+ CalcMonStats(pokemon);
+ ReleaseMonLock(pokemon, decry);
+}
+
+void CalcMonStats(struct Pokemon * pokemon)
+{
+ struct BaseStats * baseStats;
+ int level;
+ int maxHp;
+ int hpIv;
+ int hpEv;
+ int atkIv;
+ int defIv;
+ int speedIv;
+ int spatkIv;
+ int spdefIv;
+ int atkEv;
+ int defEv;
+ int speedEv;
+ int spatkEv;
+ int spdefEv;
+ int forme;
+ int hp;
+ int species;
+ int newMaxHp;
+ int newAtk;
+ int newDef;
+ int newSpeed;
+ int newSpatk;
+ int newSpdef;
+ BOOL decry = AcquireMonLock(pokemon);
+ level = (int)GetMonData(pokemon, MON_DATA_LEVEL, NULL);
+ maxHp = (int)GetMonData(pokemon, MON_DATA_MAXHP, NULL);
+ hp = (int)GetMonData(pokemon, MON_DATA_HP, NULL);
+ hpIv = (int)GetMonData(pokemon, MON_DATA_HP_IV, NULL);
+ hpEv = (int)GetMonData(pokemon, MON_DATA_HP_EV, NULL);
+ atkIv = (int)GetMonData(pokemon, MON_DATA_ATK_IV, NULL);
+ atkEv = (int)GetMonData(pokemon, MON_DATA_ATK_EV, NULL);
+ defIv = (int)GetMonData(pokemon, MON_DATA_DEF_IV, NULL);
+ defEv = (int)GetMonData(pokemon, MON_DATA_DEF_EV, NULL);
+ speedIv = (int)GetMonData(pokemon, MON_DATA_SPEED_IV, NULL);
+ speedEv = (int)GetMonData(pokemon, MON_DATA_SPEED_EV, NULL);
+ spatkIv = (int)GetMonData(pokemon, MON_DATA_SPATK_IV, NULL);
+ spatkEv = (int)GetMonData(pokemon, MON_DATA_SPATK_EV, NULL);
+ spdefIv = (int)GetMonData(pokemon, MON_DATA_SPDEF_IV, NULL);
+ spdefEv = (int)GetMonData(pokemon, MON_DATA_SPDEF_EV, NULL);
+ forme = (int)GetMonData(pokemon, MON_DATA_FORME, NULL);
+ species = (int)GetMonData(pokemon, MON_DATA_SPECIES, NULL);
+
+ baseStats = (struct BaseStats *)AllocFromHeap(0, sizeof(struct BaseStats));
+ LoadMonBaseStats_HandleAlternateForme(species, forme, baseStats);
+
+ if (species == SPECIES_SHEDINJA)
+ newMaxHp = 1;
+ else
+ {
+ newMaxHp = (baseStats->hp * 2 + hpIv + hpEv / 4) * level / 100 + level + 10;
+ }
+ SetMonData(pokemon, MON_DATA_MAXHP, &newMaxHp);
+
+ newAtk = (baseStats->atk * 2 + atkIv + atkEv / 4) * level / 100 + 5;
+ newAtk = ModifyStatByNature(GetMonNature(pokemon), (u16)newAtk, 1);
+ SetMonData(pokemon, MON_DATA_ATK, &newAtk);
+
+ newDef = (baseStats->def * 2 + defIv + defEv / 4) * level / 100 + 5;
+ newDef = ModifyStatByNature(GetMonNature(pokemon), (u16)newDef, 2);
+ SetMonData(pokemon, MON_DATA_DEF, &newDef);
+
+ newSpeed = (baseStats->speed * 2 + speedIv + speedEv / 4) * level / 100 + 5;
+ newSpeed = ModifyStatByNature(GetMonNature(pokemon), (u16)newSpeed, 3);
+ SetMonData(pokemon, MON_DATA_SPEED, &newSpeed);
+
+ newSpatk = (baseStats->spatk * 2 + spatkIv + spatkEv / 4) * level / 100 + 5;
+ newSpatk = ModifyStatByNature(GetMonNature(pokemon), (u16)newSpatk, 4);
+ SetMonData(pokemon, MON_DATA_SPATK, &newSpatk);
+
+ newSpdef = (baseStats->spdef * 2 + spdefIv + spdefEv / 4) * level / 100 + 5;
+ newSpdef = ModifyStatByNature(GetMonNature(pokemon), (u16)newSpdef, 5);
+ SetMonData(pokemon, MON_DATA_SPDEF, &newSpdef);
+
+ FreeToHeap(baseStats);
+
+ if (hp != 0 || maxHp == 0)
+ {
+ if (species == SPECIES_SHEDINJA)
+ hp = 1;
+ else if (hp == 0)
+ hp = newMaxHp;
+ else
+ hp += newMaxHp - maxHp;
+ }
+ if (hp != 0)
+ SetMonData(pokemon, MON_DATA_HP, &hp);
+ ReleaseMonLock(pokemon, decry);
+}
+
+u32 GetMonData(struct Pokemon * pokemon, int attr, void * dest)
+{
+ u32 ret;
+ u32 checksum;
+ if (!pokemon->box.party_lock)
+ {
+ DECRYPT_PTY(pokemon);
+ DECRYPT_BOX(&pokemon->box);
+ checksum = CHECKSUM(&pokemon->box);
+ if (checksum != pokemon->box.checksum)
+ {
+ GF_ASSERT(checksum == pokemon->box.checksum);
+ pokemon->box.checksum_fail = TRUE;
+ }
+ }
+ ret = GetMonDataInternal(pokemon, attr, dest);
+ if (!pokemon->box.party_lock)
+ {
+ ENCRYPT_PTY(pokemon);
+ ENCRYPT_BOX(&pokemon->box);
+ }
+ return ret;
+}
+
+u32 GetMonDataInternal(struct Pokemon * pokemon, int attr, void * dest)
+{
+ switch (attr)
+ {
+ case MON_DATA_STATUS:
+ return pokemon->party.status;
+ case MON_DATA_LEVEL:
+ return pokemon->party.level;
+ case MON_DATA_CAPSULE:
+ return pokemon->party.capsule;
+ case MON_DATA_HP:
+ return pokemon->party.hp;
+ case MON_DATA_MAXHP:
+ return pokemon->party.maxHp;
+ case MON_DATA_ATK:
+ return pokemon->party.atk;
+ case MON_DATA_DEF:
+ return pokemon->party.def;
+ case MON_DATA_SPEED:
+ return pokemon->party.speed;
+ case MON_DATA_SPATK:
+ return pokemon->party.spatk;
+ case MON_DATA_SPDEF:
+ return pokemon->party.spdef;
+ case MON_DATA_SEAL_STRUCT:
+ CopySealsObject(&pokemon->party.seal_something, dest);
+ return 1;
+ case MON_DATA_SEAL_COORDS:
+ FUN_02029C74(pokemon->party.sealCoords, dest);
+ return 1;
+ default:
+ return GetBoxMonDataInternal(&pokemon->box, attr, dest);
+ }
+}
+
+u32 GetBoxMonData(struct BoxPokemon * boxmon, int attr, void * dest)
+{
+ u32 ret;
+ u32 checksum;
+ if (!boxmon->box_lock)
+ {
+ DECRYPT_BOX(boxmon);
+ checksum = CHECKSUM(boxmon);
+ if (checksum != boxmon->checksum)
+ {
+ GF_ASSERT(checksum == boxmon->checksum);
+ boxmon->checksum_fail = TRUE;
+ }
+ }
+ ret = GetBoxMonDataInternal(boxmon, attr, dest);
+ if (!boxmon->box_lock)
+ {
+ ENCRYPT_BOX(boxmon);
+ }
+ return ret;
+}
+
+u32 GetBoxMonDataInternal(struct BoxPokemon * boxmon, int attr, void * dest)
+{
+ u32 ret = 0;
+ PokemonDataBlockA * blockA = &GetSubstruct(boxmon, boxmon->pid, 0)->blockA;
+ PokemonDataBlockB * blockB = &GetSubstruct(boxmon, boxmon->pid, 1)->blockB;
+ PokemonDataBlockC * blockC = &GetSubstruct(boxmon, boxmon->pid, 2)->blockC;
+ PokemonDataBlockD * blockD = &GetSubstruct(boxmon, boxmon->pid, 3)->blockD;
+
+ switch (attr)
+ {
+ default:
+ ret = 0;
+ break;
+ case MON_DATA_PERSONALITY:
+ ret = boxmon->pid;
+ break;
+ case MON_DATA_PARTY_LOCK:
+ ret = boxmon->party_lock;
+ break;
+ case MON_DATA_BOX_LOCK:
+ ret = boxmon->box_lock;
+ break;
+ case MON_DATA_CHECKSUM_FAILED:
+ ret = boxmon->checksum_fail;
+ break;
+ case MON_DATA_CHECKSUM:
+ ret = boxmon->checksum;
+ break;
+ case MON_DATA_SPECIES_EXISTS:
+ if (blockA->species != SPECIES_NONE)
+ ret = TRUE;
+ else
+ ret = FALSE;
+ break;
+ case MON_DATA_SANITY_IS_EGG:
+ ret = boxmon->checksum_fail;
+ if (!ret)
+ ret = blockB->isEgg;
+ break;
+ case MON_DATA_SPECIES2:
+ ret = blockA->species;
+ if (ret != SPECIES_NONE && (blockB->isEgg || boxmon->checksum_fail))
+ ret = SPECIES_EGG;
+ break;
+ case MON_DATA_LEVEL:
+ ret = (u32)CalcLevelBySpeciesAndExp(blockA->species, blockA->exp);
+ break;
+ case MON_DATA_SPECIES:
+ if (boxmon->checksum_fail)
+ ret = SPECIES_EGG;
+ else
+ ret = blockA->species;
+ break;
+ case MON_DATA_HELD_ITEM:
+ ret = blockA->heldItem;
+ break;
+ case MON_DATA_OTID:
+ ret = blockA->otID;
+ break;
+ case MON_DATA_EXPERIENCE:
+ ret = blockA->exp;
+ break;
+ case MON_DATA_FRIENDSHIP:
+ ret = blockA->friendship;
+ break;
+ case MON_DATA_ABILITY:
+ ret = blockA->ability;
+ break;
+ case MON_DATA_MARKINGS:
+ ret = blockA->markings;
+ break;
+ case MON_DATA_GAME_LANGUAGE:
+ ret = blockA->originLanguage;
+ break;
+ case MON_DATA_HP_EV:
+ ret = blockA->hpEV;
+ break;
+ case MON_DATA_ATK_EV:
+ ret = blockA->atkEV;
+ break;
+ case MON_DATA_DEF_EV:
+ ret = blockA->defEV;
+ break;
+ case MON_DATA_SPEED_EV:
+ ret = blockA->spdEV;
+ break;
+ case MON_DATA_SPATK_EV:
+ ret = blockA->spatkEV;
+ break;
+ case MON_DATA_SPDEF_EV:
+ ret = blockA->spdefEV;
+ break;
+ case MON_DATA_COOL:
+ ret = blockA->coolStat;
+ break;
+ case MON_DATA_BEAUTY:
+ ret = blockA->beautyStat;
+ break;
+ case MON_DATA_CUTE:
+ ret = blockA->cuteStat;
+ break;
+ case MON_DATA_SMART:
+ ret = blockA->smartStat;
+ break;
+ case MON_DATA_TOUGH:
+ ret = blockA->toughStat;
+ break;
+ case MON_DATA_SHEEN:
+ ret = blockA->sheen;
+ break;
+ case MON_DATA_SINNOH_CHAMP_RIBBON:
+ case MON_DATA_SINNOH_RIBBON_26:
+ case MON_DATA_SINNOH_RIBBON_27:
+ case MON_DATA_SINNOH_RIBBON_28:
+ case MON_DATA_SINNOH_RIBBON_29:
+ case MON_DATA_SINNOH_RIBBON_30:
+ case MON_DATA_SINNOH_RIBBON_31:
+ case MON_DATA_SINNOH_RIBBON_32:
+ case MON_DATA_SINNOH_RIBBON_33:
+ case MON_DATA_SINNOH_RIBBON_34:
+ case MON_DATA_SINNOH_RIBBON_35:
+ case MON_DATA_SINNOH_RIBBON_36:
+ case MON_DATA_SINNOH_RIBBON_37:
+ case MON_DATA_SINNOH_RIBBON_38:
+ case MON_DATA_SINNOH_RIBBON_39:
+ case MON_DATA_SINNOH_RIBBON_40:
+ case MON_DATA_SINNOH_RIBBON_41:
+ case MON_DATA_SINNOH_RIBBON_42:
+ case MON_DATA_SINNOH_RIBBON_43:
+ case MON_DATA_SINNOH_RIBBON_44:
+ case MON_DATA_SINNOH_RIBBON_45:
+ case MON_DATA_SINNOH_RIBBON_46:
+ case MON_DATA_SINNOH_RIBBON_47:
+ case MON_DATA_SINNOH_RIBBON_48:
+ case MON_DATA_SINNOH_RIBBON_49:
+ case MON_DATA_SINNOH_RIBBON_50:
+ case MON_DATA_SINNOH_RIBBON_51:
+ case MON_DATA_SINNOH_RIBBON_52:
+ case MON_DATA_SINNOH_RIBBON_53:
+ {
+ if (blockA->sinnohRibbons & (1ll << (attr - MON_DATA_SINNOH_CHAMP_RIBBON)))
+ {
+ ret = TRUE;
+ }
+ else
+ {
+ ret = FALSE;
+ }
+ }
+ break;
+ case MON_DATA_MOVE1:
+ case MON_DATA_MOVE2:
+ case MON_DATA_MOVE3:
+ case MON_DATA_MOVE4:
+ ret = blockB->moves[attr - MON_DATA_MOVE1];
+ break;
+ case MON_DATA_MOVE1PP:
+ case MON_DATA_MOVE2PP:
+ case MON_DATA_MOVE3PP:
+ case MON_DATA_MOVE4PP:
+ ret = blockB->movePP[attr - MON_DATA_MOVE1PP];
+ break;
+ case MON_DATA_MOVE1PPUP:
+ case MON_DATA_MOVE2PPUP:
+ case MON_DATA_MOVE3PPUP:
+ case MON_DATA_MOVE4PPUP:
+ ret = blockB->movePpUps[attr - MON_DATA_MOVE1PPUP];
+ break;
+ case MON_DATA_MOVE1MAXPP:
+ case MON_DATA_MOVE2MAXPP:
+ case MON_DATA_MOVE3MAXPP:
+ case MON_DATA_MOVE4MAXPP:
+ ret = (u32)WazaGetMaxPp(blockB->moves[attr - MON_DATA_MOVE1MAXPP], blockB->movePpUps[attr - MON_DATA_MOVE1MAXPP]);
+ break;
+ case MON_DATA_HP_IV:
+ ret = blockB->hpIV;
+ break;
+ case MON_DATA_ATK_IV:
+ ret = blockB->atkIV;
+ break;
+ case MON_DATA_DEF_IV:
+ ret = blockB->defIV;
+ break;
+ case MON_DATA_SPEED_IV:
+ ret = blockB->spdIV;
+ break;
+ case MON_DATA_SPATK_IV:
+ ret = blockB->spatkIV;
+ break;
+ case MON_DATA_SPDEF_IV:
+ ret = blockB->spdefIV;
+ break;
+ case MON_DATA_IS_EGG:
+ ret = boxmon->checksum_fail;
+ if (!ret)
+ ret = blockB->isEgg;
+ break;
+ case MON_DATA_HAS_NICKNAME:
+ ret = blockB->isNicknamed;
+ break;
+ case MON_DATA_COOL_RIBBON:
+ case MON_DATA_HOENN_RIBBON_79:
+ case MON_DATA_HOENN_RIBBON_80:
+ case MON_DATA_HOENN_RIBBON_81:
+ case MON_DATA_HOENN_RIBBON_82:
+ case MON_DATA_HOENN_RIBBON_83:
+ case MON_DATA_HOENN_RIBBON_84:
+ case MON_DATA_HOENN_RIBBON_85:
+ case MON_DATA_HOENN_RIBBON_86:
+ case MON_DATA_HOENN_RIBBON_87:
+ case MON_DATA_HOENN_RIBBON_88:
+ case MON_DATA_HOENN_RIBBON_89:
+ case MON_DATA_HOENN_RIBBON_90:
+ case MON_DATA_HOENN_RIBBON_91:
+ case MON_DATA_HOENN_RIBBON_92:
+ case MON_DATA_HOENN_RIBBON_93:
+ case MON_DATA_HOENN_RIBBON_94:
+ case MON_DATA_HOENN_RIBBON_95:
+ case MON_DATA_HOENN_RIBBON_96:
+ case MON_DATA_HOENN_RIBBON_97:
+ case MON_DATA_HOENN_RIBBON_98:
+ case MON_DATA_HOENN_RIBBON_99:
+ case MON_DATA_HOENN_RIBBON_100:
+ case MON_DATA_HOENN_RIBBON_101:
+ case MON_DATA_HOENN_RIBBON_102:
+ case MON_DATA_HOENN_RIBBON_103:
+ case MON_DATA_HOENN_RIBBON_104:
+ case MON_DATA_HOENN_RIBBON_105:
+ case MON_DATA_HOENN_RIBBON_106:
+ case MON_DATA_HOENN_RIBBON_107:
+ case MON_DATA_HOENN_RIBBON_108:
+ case MON_DATA_HOENN_RIBBON_109:
+ if (blockB->ribbonFlags & (1ll << (attr - MON_DATA_COOL_RIBBON)))
+ ret = TRUE;
+ else
+ ret = FALSE;
+ break;
+ case MON_DATA_FATEFUL_ENCOUNTER:
+ ret = blockB->fatefulEncounter;
+ break;
+ case MON_DATA_GENDER:
+ ret = blockB->gender;
+ break;
+ case MON_DATA_FORME:
+ ret = blockB->alternateForm;
+ break;
+ case MON_DATA_RESERVED_113:
+ ret = blockB->HGSS_shinyLeaves;
+ break;
+ case MON_DATA_RESERVED_114:
+ ret = blockB->Unused;
+ break;
+ case MON_DATA_NICKNAME:
+ if (boxmon->checksum_fail)
+ GetSpeciesName(SPECIES_MANAPHY_EGG, 0, dest);
+ else
+ {
+ u16 * dest16 = (u16 *)dest;
+ for (ret = 0; ret < POKEMON_NAME_LENGTH; ret++)
+ {
+ dest16[ret] = blockC->nickname[ret];
+ }
+ dest16[ret] = EOS;
+ }
+ break;
+ case MON_DATA_NICKNAME_4:
+ ret = blockB->isNicknamed;
+ // fallthrough
+ case MON_DATA_NICKNAME_3:
+ if (boxmon->checksum_fail)
+ {
+ u16 * buffer = FUN_0200AA50(SPECIES_MANAPHY_EGG, 0);
+ FUN_02021A74(dest, buffer);
+ FUN_02021A20(buffer);
+ }
+ else
+ {
+ FUN_02021E28(dest, blockC->nickname);
+ }
+ break;
+ case MON_DATA_UNK_120:
+ ret = blockC->Unused;
+ break;
+ case MON_DATA_GAME_VERSION:
+ ret = blockC->originGame;
+ break;
+ case MON_DATA_SINNOH_RIBBON_122:
+ case MON_DATA_SINNOH_RIBBON_123:
+ case MON_DATA_SINNOH_RIBBON_124:
+ case MON_DATA_SINNOH_RIBBON_125:
+ case MON_DATA_SINNOH_RIBBON_126:
+ case MON_DATA_SINNOH_RIBBON_127:
+ case MON_DATA_SINNOH_RIBBON_128:
+ case MON_DATA_SINNOH_RIBBON_129:
+ case MON_DATA_SINNOH_RIBBON_130:
+ case MON_DATA_SINNOH_RIBBON_131:
+ case MON_DATA_SINNOH_RIBBON_132:
+ case MON_DATA_SINNOH_RIBBON_133:
+ case MON_DATA_SINNOH_RIBBON_134:
+ case MON_DATA_SINNOH_RIBBON_135:
+ case MON_DATA_SINNOH_RIBBON_136:
+ case MON_DATA_SINNOH_RIBBON_137:
+ case MON_DATA_SINNOH_RIBBON_138:
+ case MON_DATA_SINNOH_RIBBON_139:
+ case MON_DATA_SINNOH_RIBBON_140:
+ case MON_DATA_SINNOH_RIBBON_141:
+ case MON_DATA_SINNOH_RIBBON_142:
+ if (blockC->sinnohRibbons2 & (1ll << (attr - MON_DATA_SINNOH_RIBBON_122)))
+ ret = TRUE;
+ else
+ ret = FALSE;
+ break;
+ case MON_DATA_OT_NAME:
+ {
+ u16 * dest16 = (u16 *)dest;
+ for (ret = 0; ret < OT_NAME_LENGTH; ret++)
+ dest16[ret] = blockD->otTrainerName[ret];
+ dest16[ret] = EOS;
+ }
+ break;
+ case MON_DATA_OT_NAME_2:
+ FUN_02021E28(dest, blockD->otTrainerName);
+ break;
+ case MON_DATA_EGG_MET_YEAR:
+ ret = blockD->dateEggReceived[0];
+ break;
+ case MON_DATA_EGG_MET_MONTH:
+ ret = blockD->dateEggReceived[1];
+ break;
+ case MON_DATA_EGG_MET_DAY:
+ ret = blockD->dateEggReceived[2];
+ break;
+ case MON_DATA_MET_YEAR:
+ ret = blockD->dateMet[0];
+ break;
+ case MON_DATA_MET_MONTH:
+ ret = blockD->dateMet[1];
+ break;
+ case MON_DATA_MET_DAY:
+ ret = blockD->dateMet[2];
+ break;
+ case MON_DATA_EGG_MET_LOCATION:
+ ret = blockD->DP_EggLocation;
+ break;
+ case MON_DATA_MET_LOCATION:
+ ret = blockD->DP_MetLocation;
+ break;
+ case MON_DATA_POKERUS:
+ ret = blockD->pokerus;
+ break;
+ case MON_DATA_POKEBALL:
+ ret = blockD->pokeball;
+ break;
+ case MON_DATA_MET_LEVEL:
+ ret = blockD->metLevel;
+ break;
+ case MON_DATA_MET_GENDER:
+ ret = blockD->metGender;
+ break;
+ case MON_DATA_ENCOUNTER_TYPE:
+ ret = blockD->encounterType;
+ break;
+ case MON_DATA_RESERVED_158:
+ ret = blockD->HGSS_Pokeball;
+ break;
+ case MON_DATA_IVS_WORD:
+ ret = (blockB->hpIV) | \
+ (blockB->atkIV << 5) | \
+ (blockB->defIV << 10) | \
+ (blockB->spdIV << 15) | \
+ (blockB->spatkIV << 20) | \
+ (blockB->spdefIV << 25);
+ break;
+ case MON_DATA_UNK_175:
+ if ((blockA->species == SPECIES_NIDORAN_F || blockA->species == SPECIES_NIDORAN_M) && !blockB->isNicknamed)
+ ret = FALSE;
+ else
+ ret = TRUE;
+ break;
+ case MON_DATA_TYPE_1:
+ case MON_DATA_TYPE_2:
+ if (blockA->species == SPECIES_ARCEUS && blockA->ability == ABILITY_MULTITYPE)
+ ret = (u32)GetArceusTypeByHeldItemEffect((u16)FUN_0206E7B8(blockA->heldItem, 1, 0));
+ else
+ {
+ ret = (u32)GetMonBaseStat_HandleFormeConversion(blockA->species, blockB->alternateForm, (enum BaseStat)(attr - MON_DATA_TYPE_1 + BASE_TYPE1));
+ }
+ break;
+ case MON_DATA_SPECIES_NAME:
+ GetSpeciesName(blockA->species, 0, dest);
+ break;
+ }
+ return ret;
+}
+
+void SetMonData(struct Pokemon * pokemon, int attr, void * value)
+{
+ u16 checksum;
+ if (!pokemon->box.party_lock)
+ {
+ DECRYPT_PTY(pokemon);
+ DECRYPT_BOX(&pokemon->box);
+ checksum = CHECKSUM(&pokemon->box);
+ if (checksum != pokemon->box.checksum)
+ {
+ GF_ASSERT(checksum == pokemon->box.checksum);
+ pokemon->box.checksum_fail = TRUE;
+ ENCRYPT_BOX(&pokemon->box);
+ return;
+ }
+ }
+ SetMonDataInternal(pokemon, attr, value);
+ if (!pokemon->box.party_lock)
+ {
+ ENCRYPT_PTY(pokemon);
+ pokemon->box.checksum = CHECKSUM(&pokemon->box);
+ ENCRYPT_BOX(&pokemon->box);
+ }
+}
+
+void SetMonDataInternal(struct Pokemon * pokemon, int attr, void * value)
+{
+#define VALUE(type) (*(const type *)value)
+ switch (attr)
+ {
+ case MON_DATA_STATUS:
+ pokemon->party.status = VALUE(u32);
+ break;
+ case MON_DATA_LEVEL:
+ pokemon->party.level = VALUE(u8);
+ break;
+ case MON_DATA_CAPSULE:
+ pokemon->party.capsule = VALUE(u8);
+ break;
+ case MON_DATA_HP:
+ pokemon->party.hp = VALUE(u16);
+ break;
+ case MON_DATA_MAXHP:
+ pokemon->party.maxHp = VALUE(u16);
+ break;
+ case MON_DATA_ATK:
+ pokemon->party.atk = VALUE(u16);
+ break;
+ case MON_DATA_DEF:
+ pokemon->party.def = VALUE(u16);
+ break;
+ case MON_DATA_SPEED:
+ pokemon->party.speed = VALUE(u16);
+ break;
+ case MON_DATA_SPATK:
+ pokemon->party.spatk = VALUE(u16);
+ break;
+ case MON_DATA_SPDEF:
+ pokemon->party.spdef = VALUE(u16);
+ break;
+ case MON_DATA_SEAL_STRUCT:
+ CopySealsObject((const struct SealStruct *)value, &pokemon->party.seal_something);
+ break;
+ case MON_DATA_SEAL_COORDS:
+ FUN_02029C74((const u8 *)value, pokemon->party.sealCoords);
+ break;
+ default:
+ SetBoxMonDataInternal(&pokemon->box, attr, value);
+ break;
+ }
+#undef VALUE
+}
+
+void SetBoxMonData(struct BoxPokemon * boxmon, int attr, void * value)
+{
+ u16 checksum;
+ if (!boxmon->box_lock)
+ {
+ DECRYPT_BOX(boxmon);
+ checksum = CHECKSUM(boxmon);
+ if (checksum != boxmon->checksum)
+ {
+ GF_ASSERT(checksum == boxmon->checksum);
+ boxmon->checksum_fail = TRUE;
+ ENCRYPT_BOX(boxmon);
+ return;
+ }
+ }
+ SetBoxMonDataInternal(boxmon, attr, value);
+ if (!boxmon->box_lock)
+ {
+ boxmon->checksum = CHECKSUM(boxmon);
+ ENCRYPT_BOX(boxmon);
+ }
+}
+
+
+void SetBoxMonDataInternal(struct BoxPokemon * boxmon, int attr, void * value)
+{
+#define VALUE(type) (*(const type *)value)
+ u8 flag;
+ u64 mask;
+ u32 i;
+ u16 namebuf[POKEMON_NAME_LENGTH + 1];
+ u16 namebuf2[POKEMON_NAME_LENGTH + 1];
+ u16 namebuf3[POKEMON_NAME_LENGTH + 1];
+ u16 * speciesName;
+
+ PokemonDataBlockA *blockA = &GetSubstruct(boxmon, boxmon->pid, 0)->blockA;
+ PokemonDataBlockB *blockB = &GetSubstruct(boxmon, boxmon->pid, 1)->blockB;
+ PokemonDataBlockC *blockC = &GetSubstruct(boxmon, boxmon->pid, 2)->blockC;
+ PokemonDataBlockD *blockD = &GetSubstruct(boxmon, boxmon->pid, 3)->blockD;
+
+ switch (attr)
+ {
+ case MON_DATA_PERSONALITY:
+ boxmon->pid = VALUE(u32);
+ break;
+ case MON_DATA_PARTY_LOCK:
+ GF_ASSERT(0);
+ boxmon->party_lock = VALUE(u8);
+ break;
+ case MON_DATA_BOX_LOCK:
+ GF_ASSERT(0);
+ boxmon->box_lock = VALUE(u8);
+ break;
+ case MON_DATA_CHECKSUM_FAILED:
+ boxmon->checksum_fail = VALUE(u8);
+ break;
+ case MON_DATA_CHECKSUM:
+ boxmon->checksum = VALUE(u16);
+ break;
+ case MON_DATA_SPECIES:
+ blockA->species = VALUE(u16);
+ break;
+ case MON_DATA_HELD_ITEM:
+ blockA->heldItem = VALUE(u16);
+ break;
+ case MON_DATA_OTID:
+ blockA->otID = VALUE(u32);
+ break;
+ case MON_DATA_EXPERIENCE:
+ blockA->exp = VALUE(u32);
+ break;
+ case MON_DATA_FRIENDSHIP:
+ blockA->friendship = VALUE(u8);
+ break;
+ case MON_DATA_ABILITY:
+ blockA->ability = VALUE(u8);
+ break;
+ case MON_DATA_MARKINGS:
+ blockA->markings = VALUE(u8);
+ break;
+ case MON_DATA_GAME_LANGUAGE:
+ blockA->originLanguage = VALUE(u8);
+ break;
+ case MON_DATA_HP_EV:
+ blockA->hpEV = VALUE(u8);
+ break;
+ case MON_DATA_ATK_EV:
+ blockA->atkEV = VALUE(u8);
+ break;
+ case MON_DATA_DEF_EV:
+ blockA->defEV = VALUE(u8);
+ break;
+ case MON_DATA_SPEED_EV:
+ blockA->spdEV = VALUE(u8);
+ break;
+ case MON_DATA_SPATK_EV:
+ blockA->spatkEV = VALUE(u8);
+ break;
+ case MON_DATA_SPDEF_EV:
+ blockA->spdefEV = VALUE(u8);
+ break;
+ case MON_DATA_COOL:
+ blockA->coolStat = VALUE(u8);
+ break;
+ case MON_DATA_BEAUTY:
+ blockA->beautyStat = VALUE(u8);
+ break;
+ case MON_DATA_CUTE:
+ blockA->cuteStat = VALUE(u8);
+ break;
+ case MON_DATA_SMART:
+ blockA->smartStat = VALUE(u8);
+ break;
+ case MON_DATA_TOUGH:
+ blockA->toughStat = VALUE(u8);
+ break;
+ case MON_DATA_SHEEN:
+ blockA->sheen = VALUE(u8);
+ break;
+ case MON_DATA_SINNOH_CHAMP_RIBBON:
+ case MON_DATA_SINNOH_RIBBON_26:
+ case MON_DATA_SINNOH_RIBBON_27:
+ case MON_DATA_SINNOH_RIBBON_28:
+ case MON_DATA_SINNOH_RIBBON_29:
+ case MON_DATA_SINNOH_RIBBON_30:
+ case MON_DATA_SINNOH_RIBBON_31:
+ case MON_DATA_SINNOH_RIBBON_32:
+ case MON_DATA_SINNOH_RIBBON_33:
+ case MON_DATA_SINNOH_RIBBON_34:
+ case MON_DATA_SINNOH_RIBBON_35:
+ case MON_DATA_SINNOH_RIBBON_36:
+ case MON_DATA_SINNOH_RIBBON_37:
+ case MON_DATA_SINNOH_RIBBON_38:
+ case MON_DATA_SINNOH_RIBBON_39:
+ case MON_DATA_SINNOH_RIBBON_40:
+ case MON_DATA_SINNOH_RIBBON_41:
+ case MON_DATA_SINNOH_RIBBON_42:
+ case MON_DATA_SINNOH_RIBBON_43:
+ case MON_DATA_SINNOH_RIBBON_44:
+ case MON_DATA_SINNOH_RIBBON_45:
+ case MON_DATA_SINNOH_RIBBON_46:
+ case MON_DATA_SINNOH_RIBBON_47:
+ case MON_DATA_SINNOH_RIBBON_48:
+ case MON_DATA_SINNOH_RIBBON_49:
+ case MON_DATA_SINNOH_RIBBON_50:
+ case MON_DATA_SINNOH_RIBBON_51:
+ case MON_DATA_SINNOH_RIBBON_52:
+ case MON_DATA_SINNOH_RIBBON_53:
+ flag = VALUE(u8);
+ mask = (u64)flag << (attr - MON_DATA_SINNOH_CHAMP_RIBBON);
+ if (flag)
+ blockA->sinnohRibbons |= mask;
+ else
+ blockA->sinnohRibbons &= -1ull ^ mask;
+ break;
+ case MON_DATA_MOVE1:
+ case MON_DATA_MOVE2:
+ case MON_DATA_MOVE3:
+ case MON_DATA_MOVE4:
+ blockB->moves[attr - MON_DATA_MOVE1] = VALUE(u16);
+ break;
+ case MON_DATA_MOVE1PP:
+ case MON_DATA_MOVE2PP:
+ case MON_DATA_MOVE3PP:
+ case MON_DATA_MOVE4PP:
+ blockB->movePP[attr - MON_DATA_MOVE1PP] = VALUE(u8);
+ break;
+ case MON_DATA_MOVE1PPUP:
+ case MON_DATA_MOVE2PPUP:
+ case MON_DATA_MOVE3PPUP:
+ case MON_DATA_MOVE4PPUP:
+ blockB->movePpUps[attr - MON_DATA_MOVE1PPUP] = VALUE(u8);
+ break;
+ case MON_DATA_HP_IV:
+ blockB->hpIV = VALUE(u8);
+ break;
+ case MON_DATA_ATK_IV:
+ blockB->atkIV = VALUE(u8);
+ break;
+ case MON_DATA_DEF_IV:
+ blockB->defIV = VALUE(u8);
+ break;
+ case MON_DATA_SPEED_IV:
+ blockB->spdIV = VALUE(u8);
+ break;
+ case MON_DATA_SPATK_IV:
+ blockB->spatkIV = VALUE(u8);
+ break;
+ case MON_DATA_SPDEF_IV:
+ blockB->spdefIV = VALUE(u8);
+ break;
+ case MON_DATA_IS_EGG:
+ blockB->isEgg = VALUE(u8);
+ break;
+ case MON_DATA_HAS_NICKNAME:
+ blockB->isNicknamed = VALUE(u8);
+ break;
+ case MON_DATA_COOL_RIBBON:
+ case MON_DATA_HOENN_RIBBON_79:
+ case MON_DATA_HOENN_RIBBON_80:
+ case MON_DATA_HOENN_RIBBON_81:
+ case MON_DATA_HOENN_RIBBON_82:
+ case MON_DATA_HOENN_RIBBON_83:
+ case MON_DATA_HOENN_RIBBON_84:
+ case MON_DATA_HOENN_RIBBON_85:
+ case MON_DATA_HOENN_RIBBON_86:
+ case MON_DATA_HOENN_RIBBON_87:
+ case MON_DATA_HOENN_RIBBON_88:
+ case MON_DATA_HOENN_RIBBON_89:
+ case MON_DATA_HOENN_RIBBON_90:
+ case MON_DATA_HOENN_RIBBON_91:
+ case MON_DATA_HOENN_RIBBON_92:
+ case MON_DATA_HOENN_RIBBON_93:
+ case MON_DATA_HOENN_RIBBON_94:
+ case MON_DATA_HOENN_RIBBON_95:
+ case MON_DATA_HOENN_RIBBON_96:
+ case MON_DATA_HOENN_RIBBON_97:
+ case MON_DATA_HOENN_RIBBON_98:
+ case MON_DATA_HOENN_RIBBON_99:
+ case MON_DATA_HOENN_RIBBON_100:
+ case MON_DATA_HOENN_RIBBON_101:
+ case MON_DATA_HOENN_RIBBON_102:
+ case MON_DATA_HOENN_RIBBON_103:
+ case MON_DATA_HOENN_RIBBON_104:
+ case MON_DATA_HOENN_RIBBON_105:
+ case MON_DATA_HOENN_RIBBON_106:
+ case MON_DATA_HOENN_RIBBON_107:
+ case MON_DATA_HOENN_RIBBON_108:
+ case MON_DATA_HOENN_RIBBON_109:
+ flag = VALUE(u8);
+ mask = (u64)flag << (attr - MON_DATA_COOL_RIBBON);
+ if (flag)
+ blockB->ribbonFlags |= mask;
+ else
+ blockB->ribbonFlags &= -1ull ^ mask;
+ break;
+ case MON_DATA_FATEFUL_ENCOUNTER:
+ blockB->fatefulEncounter = VALUE(u8);
+ break;
+ case MON_DATA_GENDER:
+ blockB->gender = VALUE(u8);
+ break;
+ case MON_DATA_FORME:
+ blockB->alternateForm = VALUE(u8);
+ break;
+ case MON_DATA_RESERVED_113:
+ blockB->HGSS_shinyLeaves = VALUE(u8);
+ break;
+ case MON_DATA_RESERVED_114:
+ blockB->Unused = VALUE(u16);
+ break;
+ case MON_DATA_NICKNAME_2:
+ GetSpeciesName(blockA->species, 0, namebuf);
+ blockB->isNicknamed = StringNotEqual(namebuf, value);
+ // fallthrough
+ case MON_DATA_NICKNAME:
+ for (i = 0; i < POKEMON_NAME_LENGTH + 1; i++)
+ {
+ blockC->nickname[i] = VALUE(u16); value = (void *const )((char *)value + 2);
+ }
+ break;
+ case MON_DATA_NICKNAME_4:
+ GetSpeciesName(blockA->species, 0, namebuf2);
+ FUN_02021EF0(value, namebuf3, POKEMON_NAME_LENGTH + 1);
+ blockB->isNicknamed = StringNotEqual(namebuf2, namebuf3);
+ // fallthrough
+ case MON_DATA_NICKNAME_3:
+ FUN_02021EF0(value, blockC->nickname, POKEMON_NAME_LENGTH + 1);
+ break;
+ case MON_DATA_UNK_120:
+ blockC->Unused = VALUE(u8);
+ break;
+ case MON_DATA_GAME_VERSION:
+ blockC->originGame = VALUE(u8);
+ break;
+ case MON_DATA_SINNOH_RIBBON_122:
+ case MON_DATA_SINNOH_RIBBON_123:
+ case MON_DATA_SINNOH_RIBBON_124:
+ case MON_DATA_SINNOH_RIBBON_125:
+ case MON_DATA_SINNOH_RIBBON_126:
+ case MON_DATA_SINNOH_RIBBON_127:
+ case MON_DATA_SINNOH_RIBBON_128:
+ case MON_DATA_SINNOH_RIBBON_129:
+ case MON_DATA_SINNOH_RIBBON_130:
+ case MON_DATA_SINNOH_RIBBON_131:
+ case MON_DATA_SINNOH_RIBBON_132:
+ case MON_DATA_SINNOH_RIBBON_133:
+ case MON_DATA_SINNOH_RIBBON_134:
+ case MON_DATA_SINNOH_RIBBON_135:
+ case MON_DATA_SINNOH_RIBBON_136:
+ case MON_DATA_SINNOH_RIBBON_137:
+ case MON_DATA_SINNOH_RIBBON_138:
+ case MON_DATA_SINNOH_RIBBON_139:
+ case MON_DATA_SINNOH_RIBBON_140:
+ case MON_DATA_SINNOH_RIBBON_141:
+ case MON_DATA_SINNOH_RIBBON_142:
+ flag = VALUE(u8);
+ mask = (u64)flag << (attr - MON_DATA_SINNOH_RIBBON_122);
+ if (flag)
+ blockC->sinnohRibbons2 |= mask;
+ else
+ blockC->sinnohRibbons2 &= -1ull ^ mask;
+ break;
+ case MON_DATA_OT_NAME:
+ for (i = 0; i < OT_NAME_LENGTH + 1; i++)
+ {
+ blockD->otTrainerName[i] = VALUE(u16); value = (void *)((char *)value + 2);
+ }
+ break;
+ case MON_DATA_OT_NAME_2:
+ FUN_02021EF0(value, blockD->otTrainerName, OT_NAME_LENGTH + 1);
+ break;
+ case MON_DATA_EGG_MET_YEAR:
+ blockD->dateEggReceived[0] = VALUE(u8);
+ break;
+ case MON_DATA_EGG_MET_MONTH:
+ blockD->dateEggReceived[1] = VALUE(u8);
+ break;
+ case MON_DATA_EGG_MET_DAY:
+ blockD->dateEggReceived[2] = VALUE(u8);
+ break;
+ case MON_DATA_MET_YEAR:
+ blockD->dateMet[0] = VALUE(u8);
+ break;
+ case MON_DATA_MET_MONTH:
+ blockD->dateMet[1] = VALUE(u8);
+ break;
+ case MON_DATA_MET_DAY:
+ blockD->dateMet[2] = VALUE(u8);
+ break;
+ case MON_DATA_EGG_MET_LOCATION:
+ blockD->DP_EggLocation = VALUE(u16);
+ break;
+ case MON_DATA_MET_LOCATION:
+ blockD->DP_MetLocation = VALUE(u16);
+ break;
+ case MON_DATA_POKERUS:
+ blockD->pokerus = VALUE(u8);
+ break;
+ case MON_DATA_POKEBALL:
+ blockD->pokeball = VALUE(u8);
+ break;
+ case MON_DATA_MET_LEVEL:
+ blockD->metLevel = VALUE(u8);
+ break;
+ case MON_DATA_MET_GENDER:
+ blockD->metGender = VALUE(u8);
+ break;
+ case MON_DATA_ENCOUNTER_TYPE:
+ blockD->encounterType = VALUE(u8);
+ break;
+ case MON_DATA_RESERVED_158:
+ blockD->HGSS_Pokeball = VALUE(u16);
+ break;
+ case MON_DATA_IVS_WORD:
+ blockB->hpIV = (VALUE(u32) >> 0) & 0x1F;
+ blockB->atkIV = (VALUE(u32) >> 5) & 0x1F;
+ blockB->defIV = (VALUE(u32) >> 10) & 0x1F;
+ blockB->spdIV = (VALUE(u32) >> 15) & 0x1F;
+ blockB->spatkIV = (VALUE(u32) >> 20) & 0x1F;
+ blockB->spdefIV = (VALUE(u32) >> 25) & 0x1F;
+ break;
+ case MON_DATA_SPECIES_NAME:
+ speciesName = FUN_0200AA50(blockA->species, 0);
+ FUN_02021EF0(speciesName, blockC->nickname, POKEMON_NAME_LENGTH + 1);
+ FUN_02021A20(speciesName);
+ break;
+ }
+#undef VALUE
+}
+
+void AddMonData(struct Pokemon * pokemon, int attr, int value)
+{
+ u16 checksum;
+ if (!pokemon->box.party_lock)
+ {
+ DECRYPT_PTY(pokemon);
+ DECRYPT_BOX(&pokemon->box);
+ checksum = CHECKSUM(&pokemon->box);
+ if (checksum != pokemon->box.checksum)
+ {
+ GF_ASSERT(checksum == pokemon->box.checksum);
+ ENCRYPT_BOX(&pokemon->box);
+ return;
+ }
+ }
+ AddMonDataInternal(pokemon, attr, value);
+ if (!pokemon->box.party_lock)
+ {
+ ENCRYPT_PTY(pokemon);
+ pokemon->box.checksum = CHECKSUM(&pokemon->box);
+ ENCRYPT_BOX(&pokemon->box);
+ }
+}
+
+void AddMonDataInternal(struct Pokemon * pokemon, int attr, int value)
+{
+ s32 maxHp;
+ switch (attr)
+ {
+ case MON_DATA_HP:
+ maxHp = pokemon->party.maxHp;
+ if ((s32)(pokemon->party.hp + value) > maxHp)
+ pokemon->party.hp = (u16)maxHp;
+ else
+ pokemon->party.hp += value;
+ break;
+ case MON_DATA_STATUS:
+ case MON_DATA_LEVEL:
+ case MON_DATA_CAPSULE:
+ case MON_DATA_MAXHP:
+ case MON_DATA_ATK:
+ case MON_DATA_DEF:
+ case MON_DATA_SPEED:
+ case MON_DATA_SPATK:
+ case MON_DATA_SPDEF:
+ case MON_DATA_SEAL_STRUCT:
+ // case MON_DATA_SEAL_COORDS:
+ GF_ASSERT(0);
+ break;
+ default:
+ AddBoxMonData(&pokemon->box, attr, value);
+ break;
+ }
+}
+
+void AddBoxMonData(struct BoxPokemon * boxmon, int attr, int value)
+{
+ PokemonDataBlockA *blockA = &GetSubstruct(boxmon, boxmon->pid, 0)->blockA;
+ PokemonDataBlockB *blockB = &GetSubstruct(boxmon, boxmon->pid, 1)->blockB;
+ PokemonDataBlockC *blockC = &GetSubstruct(boxmon, boxmon->pid, 2)->blockC;
+ PokemonDataBlockD *blockD = &GetSubstruct(boxmon, boxmon->pid, 3)->blockD;
+
+ switch (attr)
+ {
+ case MON_DATA_EXPERIENCE:
+ if (blockA->exp + value > GetMonExpBySpeciesAndLevel(blockA->species, 100))
+ blockA->exp = GetMonExpBySpeciesAndLevel(blockA->species, 100);
+ else
+ blockA->exp += value;
+ break;
+ case MON_DATA_FRIENDSHIP:
+ if (blockA->friendship + value > 255)
+ blockA->friendship = 255;
+ else
+ blockA->friendship += value;
+ break;
+ case MON_DATA_HP_EV:
+ blockA->hpEV += value;
+ break;
+ case MON_DATA_ATK_EV:
+ blockA->atkEV += value;
+ break;
+ case MON_DATA_DEF_EV:
+ blockA->defEV += value;
+ break;
+ case MON_DATA_SPEED_EV:
+ blockA->spdEV += value;
+ break;
+ case MON_DATA_SPATK_EV:
+ blockA->spatkEV += value;
+ break;
+ case MON_DATA_SPDEF_EV:
+ blockA->spdefEV += value;
+ break;
+ case MON_DATA_COOL:
+ if (blockA->coolStat + value > 255)
+ blockA->coolStat = 255;
+ else
+ blockA->coolStat += value;
+ break;
+ case MON_DATA_BEAUTY:
+ if (blockA->beautyStat + value > 255)
+ blockA->beautyStat = 255;
+ else
+ blockA->beautyStat += value;
+ break;
+ case MON_DATA_CUTE:
+ if (blockA->cuteStat + value > 255)
+ blockA->cuteStat = 255;
+ else
+ blockA->cuteStat += value;
+ break;
+ case MON_DATA_SMART:
+ if (blockA->smartStat + value > 255)
+ blockA->smartStat = 255;
+ else
+ blockA->smartStat += value;
+ break;
+ case MON_DATA_TOUGH:
+ if (blockA->toughStat + value > 255)
+ blockA->toughStat = 255;
+ else
+ blockA->toughStat += value;
+ break;
+ case MON_DATA_SHEEN:
+ if (blockA->sheen + value > 255)
+ blockA->sheen = 255;
+ else
+ blockA->sheen += value;
+ break;
+ case MON_DATA_MOVE1PP:
+ case MON_DATA_MOVE2PP:
+ case MON_DATA_MOVE3PP:
+ case MON_DATA_MOVE4PP:
+ if (blockB->movePP[attr - MON_DATA_MOVE1PP] + value > WazaGetMaxPp(blockB->moves[attr - MON_DATA_MOVE1PP], blockB->movePpUps[attr - MON_DATA_MOVE1PP]))
+ blockB->movePP[attr - MON_DATA_MOVE1PP] = (u8)WazaGetMaxPp(blockB->moves[attr - MON_DATA_MOVE1PP], blockB->movePpUps[attr - MON_DATA_MOVE1PP]);
+ else
+ blockB->movePP[attr - MON_DATA_MOVE1PP] += value;
+ break;
+ case MON_DATA_MOVE1PPUP:
+ case MON_DATA_MOVE2PPUP:
+ case MON_DATA_MOVE3PPUP:
+ case MON_DATA_MOVE4PPUP:
+ if (blockB->movePpUps[attr - MON_DATA_MOVE1PPUP] + value > 3)
+ blockB->movePpUps[attr - MON_DATA_MOVE1PPUP] = 3;
+ else
+ blockB->movePpUps[attr - MON_DATA_MOVE1PPUP] += value;
+ break;
+ case MON_DATA_MOVE1MAXPP:
+ case MON_DATA_MOVE2MAXPP:
+ case MON_DATA_MOVE3MAXPP:
+ case MON_DATA_MOVE4MAXPP:
+ break;
+ case MON_DATA_HP_IV:
+ if (blockB->hpIV + value > 31)
+ blockB->hpIV = 31;
+ else
+ blockB->hpIV += value;
+ break;
+ case MON_DATA_ATK_IV:
+ if (blockB->atkIV + value > 31)
+ blockB->atkIV = 31;
+ else
+ blockB->atkIV += value;
+ break;
+ case MON_DATA_DEF_IV:
+ if (blockB->defIV + value > 31)
+ blockB->defIV = 31;
+ else
+ blockB->defIV += value;
+ break;
+ case MON_DATA_SPEED_IV:
+ if (blockB->spdIV + value > 31)
+ blockB->spdIV = 31;
+ else
+ blockB->spdIV += value;
+ break;
+ case MON_DATA_SPATK_IV:
+ if (blockB->spatkIV + value > 31)
+ blockB->spatkIV = 31;
+ else
+ blockB->spatkIV += value;
+ break;
+ case MON_DATA_SPDEF_IV:
+ if (blockB->spdefIV + value > 31)
+ blockB->spdefIV = 31;
+ else
+ blockB->spdefIV += value;
+ break;
+ case MON_DATA_PERSONALITY:
+ case MON_DATA_PARTY_LOCK:
+ case MON_DATA_BOX_LOCK:
+ case MON_DATA_CHECKSUM_FAILED:
+ case MON_DATA_CHECKSUM:
+ case MON_DATA_SPECIES:
+ case MON_DATA_HELD_ITEM:
+ case MON_DATA_OTID:
+ case MON_DATA_ABILITY:
+ case MON_DATA_MARKINGS:
+ case MON_DATA_GAME_LANGUAGE:
+ case MON_DATA_SINNOH_CHAMP_RIBBON:
+ case MON_DATA_SINNOH_RIBBON_26:
+ case MON_DATA_SINNOH_RIBBON_27:
+ case MON_DATA_SINNOH_RIBBON_28:
+ case MON_DATA_SINNOH_RIBBON_29:
+ case MON_DATA_SINNOH_RIBBON_30:
+ case MON_DATA_SINNOH_RIBBON_31:
+ case MON_DATA_SINNOH_RIBBON_32:
+ case MON_DATA_SINNOH_RIBBON_33:
+ case MON_DATA_SINNOH_RIBBON_34:
+ case MON_DATA_SINNOH_RIBBON_35:
+ case MON_DATA_SINNOH_RIBBON_36:
+ case MON_DATA_SINNOH_RIBBON_37:
+ case MON_DATA_SINNOH_RIBBON_38:
+ case MON_DATA_SINNOH_RIBBON_39:
+ case MON_DATA_SINNOH_RIBBON_40:
+ case MON_DATA_SINNOH_RIBBON_41:
+ case MON_DATA_SINNOH_RIBBON_42:
+ case MON_DATA_SINNOH_RIBBON_43:
+ case MON_DATA_SINNOH_RIBBON_44:
+ case MON_DATA_SINNOH_RIBBON_45:
+ case MON_DATA_SINNOH_RIBBON_46:
+ case MON_DATA_SINNOH_RIBBON_47:
+ case MON_DATA_SINNOH_RIBBON_48:
+ case MON_DATA_SINNOH_RIBBON_49:
+ case MON_DATA_SINNOH_RIBBON_50:
+ case MON_DATA_SINNOH_RIBBON_51:
+ case MON_DATA_SINNOH_RIBBON_52:
+ case MON_DATA_SINNOH_RIBBON_53:
+ case MON_DATA_MOVE1:
+ case MON_DATA_MOVE2:
+ case MON_DATA_MOVE3:
+ case MON_DATA_MOVE4:
+ case MON_DATA_IS_EGG:
+ case MON_DATA_HAS_NICKNAME:
+ case MON_DATA_COOL_RIBBON:
+ case MON_DATA_HOENN_RIBBON_79:
+ case MON_DATA_HOENN_RIBBON_80:
+ case MON_DATA_HOENN_RIBBON_81:
+ case MON_DATA_HOENN_RIBBON_82:
+ case MON_DATA_HOENN_RIBBON_83:
+ case MON_DATA_HOENN_RIBBON_84:
+ case MON_DATA_HOENN_RIBBON_85:
+ case MON_DATA_HOENN_RIBBON_86:
+ case MON_DATA_HOENN_RIBBON_87:
+ case MON_DATA_HOENN_RIBBON_88:
+ case MON_DATA_HOENN_RIBBON_89:
+ case MON_DATA_HOENN_RIBBON_90:
+ case MON_DATA_HOENN_RIBBON_91:
+ case MON_DATA_HOENN_RIBBON_92:
+ case MON_DATA_HOENN_RIBBON_93:
+ case MON_DATA_HOENN_RIBBON_94:
+ case MON_DATA_HOENN_RIBBON_95:
+ case MON_DATA_HOENN_RIBBON_96:
+ case MON_DATA_HOENN_RIBBON_97:
+ case MON_DATA_HOENN_RIBBON_98:
+ case MON_DATA_HOENN_RIBBON_99:
+ case MON_DATA_HOENN_RIBBON_100:
+ case MON_DATA_HOENN_RIBBON_101:
+ case MON_DATA_HOENN_RIBBON_102:
+ case MON_DATA_HOENN_RIBBON_103:
+ case MON_DATA_HOENN_RIBBON_104:
+ case MON_DATA_HOENN_RIBBON_105:
+ case MON_DATA_HOENN_RIBBON_106:
+ case MON_DATA_HOENN_RIBBON_107:
+ case MON_DATA_HOENN_RIBBON_108:
+ case MON_DATA_HOENN_RIBBON_109:
+ case MON_DATA_FATEFUL_ENCOUNTER:
+ case MON_DATA_GENDER:
+ case MON_DATA_FORME:
+ case MON_DATA_RESERVED_113:
+ case MON_DATA_RESERVED_114:
+ case MON_DATA_UNUSED_115:
+ case MON_DATA_NICKNAME:
+ case MON_DATA_NICKNAME_2:
+ case MON_DATA_NICKNAME_3:
+ case MON_DATA_NICKNAME_4:
+ case MON_DATA_UNK_120:
+ case MON_DATA_GAME_VERSION:
+ case MON_DATA_SINNOH_RIBBON_122:
+ case MON_DATA_SINNOH_RIBBON_123:
+ case MON_DATA_SINNOH_RIBBON_124:
+ case MON_DATA_SINNOH_RIBBON_125:
+ case MON_DATA_SINNOH_RIBBON_126:
+ case MON_DATA_SINNOH_RIBBON_127:
+ case MON_DATA_SINNOH_RIBBON_128:
+ case MON_DATA_SINNOH_RIBBON_129:
+ case MON_DATA_SINNOH_RIBBON_130:
+ case MON_DATA_SINNOH_RIBBON_131:
+ case MON_DATA_SINNOH_RIBBON_132:
+ case MON_DATA_SINNOH_RIBBON_133:
+ case MON_DATA_SINNOH_RIBBON_134:
+ case MON_DATA_SINNOH_RIBBON_135:
+ case MON_DATA_SINNOH_RIBBON_136:
+ case MON_DATA_SINNOH_RIBBON_137:
+ case MON_DATA_SINNOH_RIBBON_138:
+ case MON_DATA_SINNOH_RIBBON_139:
+ case MON_DATA_SINNOH_RIBBON_140:
+ case MON_DATA_SINNOH_RIBBON_141:
+ case MON_DATA_SINNOH_RIBBON_142:
+ case MON_DATA_OT_NAME:
+ case MON_DATA_OT_NAME_2:
+ case MON_DATA_EGG_MET_YEAR:
+ case MON_DATA_EGG_MET_MONTH:
+ case MON_DATA_EGG_MET_DAY:
+ case MON_DATA_MET_YEAR:
+ case MON_DATA_MET_MONTH:
+ case MON_DATA_MET_DAY:
+ case MON_DATA_EGG_MET_LOCATION:
+ case MON_DATA_MET_LOCATION:
+ case MON_DATA_POKERUS:
+ case MON_DATA_POKEBALL:
+ case MON_DATA_MET_LEVEL:
+ case MON_DATA_MET_GENDER:
+ case MON_DATA_ENCOUNTER_TYPE:
+ case MON_DATA_RESERVED_158:
+ case MON_DATA_STATUS:
+ case MON_DATA_LEVEL:
+ case MON_DATA_CAPSULE:
+ case MON_DATA_HP:
+ case MON_DATA_MAXHP:
+ case MON_DATA_ATK:
+ case MON_DATA_DEF:
+ case MON_DATA_SPEED:
+ case MON_DATA_SPATK:
+ case MON_DATA_SPDEF:
+ case MON_DATA_SEAL_STRUCT:
+ case MON_DATA_SEAL_COORDS:
+ case MON_DATA_SPECIES_EXISTS:
+ case MON_DATA_SANITY_IS_EGG:
+ case MON_DATA_SPECIES2:
+ case MON_DATA_IVS_WORD:
+ case MON_DATA_UNK_175:
+ case MON_DATA_TYPE_1:
+ case MON_DATA_TYPE_2:
+ case MON_DATA_SPECIES_NAME:
+ default:
+ GF_ASSERT(0);
+ }
+}
+
+struct BaseStats * AllocAndLoadMonPersonal(int species, u32 heap_id)
+{
+ struct BaseStats * baseStats = (struct BaseStats *)AllocFromHeap(heap_id, sizeof(struct BaseStats));
+ LoadMonPersonal(species, baseStats);
+ return baseStats;
+}
+
+int GetPersonalAttr(struct BaseStats * baseStats, enum BaseStat attr)
+{
+ int ret;
+ GF_ASSERT(baseStats != NULL);
+ switch (attr)
+ {
+ case BASE_HP:
+ ret = baseStats->hp;
+ break;
+ case BASE_ATK:
+ ret = baseStats->atk;
+ break;
+ case BASE_DEF:
+ ret = baseStats->def;
+ break;
+ case BASE_SPEED:
+ ret = baseStats->speed;
+ break;
+ case BASE_SPATK:
+ ret = baseStats->spatk;
+ break;
+ case BASE_SPDEF:
+ ret = baseStats->spdef;
+ break;
+ case BASE_TYPE1:
+ ret = baseStats->types[0];
+ break;
+ case BASE_TYPE2:
+ ret = baseStats->types[1];
+ break;
+ case BASE_CATCH_RATE:
+ ret = baseStats->catchRate;
+ break;
+ case BASE_EXP_YIELD:
+ ret = baseStats->expYield;
+ break;
+ case BASE_HP_YIELD:
+ ret = baseStats->hp_yield;
+ break;
+ case BASE_ATK_YIELD:
+ ret = baseStats->atk_yield;
+ break;
+ case BASE_DEF_YIELD:
+ ret = baseStats->def_yield;
+ break;
+ case BASE_SPEED_YIELD:
+ ret = baseStats->speed_yield;
+ break;
+ case BASE_SPATK_YIELD:
+ ret = baseStats->spatk_yield;
+ break;
+ case BASE_SPDEF_YIELD:
+ ret = baseStats->spdef_yield;
+ break;
+ case BASE_ITEM_1:
+ ret = baseStats->item1;
+ break;
+ case BASE_ITEM_2:
+ ret = baseStats->item2;
+ break;
+ case BASE_GENDER_RATIO:
+ ret = baseStats->genderRatio;
+ break;
+ case BASE_EGG_CYCLES:
+ ret = baseStats->eggCycles;
+ break;
+ case BASE_FRIENDSHIP:
+ ret = baseStats->friendship;
+ break;
+ case BASE_GROWTH_RATE:
+ ret = baseStats->growthRate;
+ break;
+ case BASE_EGG_GROUP_1:
+ ret = baseStats->eggGroups[0];
+ break;
+ case GASE_EGG_GROUP_2:
+ ret = baseStats->eggGroups[1];
+ break;
+ case BASE_ABILITY_1:
+ ret = baseStats->abilities[0];
+ break;
+ case BASE_ABILITY_2:
+ ret = baseStats->abilities[1];
+ break;
+ case BASE_GREAT_MARSH_RATE:
+ ret = baseStats->greatMarshRate;
+ break;
+ case BASE_COLOR:
+ ret = baseStats->color;
+ break;
+ case BASE_FLIP:
+ ret = baseStats->flip;
+ break;
+ case BASE_UNKNOWN_29:
+ ret = (int)baseStats->unk1C;
+ break;
+ case BASE_UNKNOWN_30:
+ ret = (int)baseStats->unk20;
+ break;
+ case BASE_UNKNOWN_31:
+ ret = (int)baseStats->unk24;
+ break;
+ case BASE_UNKNOWN_32:
+ ret = (int)baseStats->unk28;
+ break;
+ }
+ return ret;
+}
+
+void FreeMonPersonal(struct BaseStats * personal)
+{
+ GF_ASSERT(personal != NULL);
+ FreeToHeap(personal);
+}
+
+int GetMonBaseStat_HandleFormeConversion(int species, int forme, enum BaseStat attr)
+{
+ int ret;
+ struct BaseStats * personal = AllocAndLoadMonPersonal(ResolveMonForme(species, forme), 0);
+ ret = GetPersonalAttr(personal, attr);
+ FreeMonPersonal(personal);
+ return ret;
+}
+
+int GetMonBaseStat(int species, enum BaseStat attr)
+{
+ int ret;
+ struct BaseStats * personal = AllocAndLoadMonPersonal(species, 0);
+ ret = GetPersonalAttr(personal, attr);
+ FreeMonPersonal(personal);
+ return ret;
+}
+
+u8 GetPercentProgressTowardsNextLevel(struct Pokemon * pokemon)
+{
+ BOOL decry = AcquireMonLock(pokemon);
+ u16 species = (u16)GetMonData(pokemon, MON_DATA_SPECIES, NULL);
+ u8 level = (u8)GetMonData(pokemon, MON_DATA_LEVEL, NULL);
+ u32 lo = GetMonExpBySpeciesAndLevel(species, level);
+ u32 hi = GetMonExpBySpeciesAndLevel(species, level + 1);
+ u32 cur = GetMonData(pokemon, MON_DATA_EXPERIENCE, NULL);
+ ReleaseMonLock(pokemon, decry);
+ return (u8)(100 * (cur - lo) / (hi - lo));
+}
+
+u32 CalcMonExpToNextLevel(struct Pokemon * pokemon)
+{
+ return CalcBoxMonExpToNextLevel(&pokemon->box);
+}
+
+u32 CalcBoxMonExpToNextLevel(struct BoxPokemon * boxmon)
+{
+ u16 species = (u16)GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL);
+ u16 level = (u16)(CalcBoxMonLevel(boxmon) + 1);
+ u32 cur = GetBoxMonData(boxmon, MON_DATA_EXPERIENCE, NULL);
+ u32 hi = GetMonExpBySpeciesAndLevel(species, level);
+ return hi - cur;
+}
+
+u32 GetMonBaseExperienceAtCurrentLevel(struct Pokemon * pokemon)
+{
+ int species = (int)GetMonData(pokemon, MON_DATA_SPECIES, NULL);
+ int level = (int)GetMonData(pokemon, MON_DATA_LEVEL, NULL);
+ return GetMonExpBySpeciesAndLevel(species, level);
+}
+
+u32 GetMonExpBySpeciesAndLevel(int species, int level)
+{
+ return GetExpByGrowthRateAndLevel(GetMonBaseStat(species, BASE_GROWTH_RATE), level);
+}
+
+void LoadGrowthTable(int growthRate, u32 * dest)
+{
+ GF_ASSERT(growthRate < 8);
+ ReadWholeNarcMemberByIdPair(dest, NARC_POKETOOL_PERSONAL_GROWTBL, growthRate);
+}
+
+u32 GetExpByGrowthRateAndLevel(int growthRate, int level)
+{
+ u32 * table;
+ u32 ret;
+ GF_ASSERT(growthRate < 8);
+ GF_ASSERT(level <= 101);
+ table = (u32 *)AllocFromHeap(0, 101 * sizeof(u32));
+ LoadGrowthTable(growthRate, table);
+ ret = table[level];
+ FreeToHeap(table);
+ return ret;
+}
+
+int CalcMonLevel(struct Pokemon * pokemon)
+{
+ return CalcBoxMonLevel(&pokemon->box);
+}
+
+int CalcBoxMonLevel(struct BoxPokemon * boxmon)
+{
+ BOOL decry = AcquireBoxMonLock(boxmon);
+ int species = (int)GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL);
+ int exp = (int)GetBoxMonData(boxmon, MON_DATA_EXPERIENCE, NULL);
+ ReleaseBoxMonLock(boxmon, decry);
+ return CalcLevelBySpeciesAndExp((u16)species, (u32)exp);
+}
+
+int CalcLevelBySpeciesAndExp(u16 species, u32 exp)
+{
+ int level;
+ struct BaseStats * personal = AllocAndLoadMonPersonal(species, 0);
+ level = CalcLevelBySpeciesAndExp_PreloadedPersonal(personal, species, exp);
+ FreeMonPersonal(personal);
+ return level;
+}
+
+int CalcLevelBySpeciesAndExp_PreloadedPersonal(struct BaseStats * personal, u16 species, u32 exp)
+{
+#pragma unused(species)
+ static u32 table[101];
+ int i;
+ LoadGrowthTable(GetPersonalAttr(personal, BASE_GROWTH_RATE), table);
+ for (i = 1; i < 101; i++)
+ {
+ if (table[i] > exp)
+ break;
+ }
+ return i - 1;
+}
+
+u8 GetMonNature(struct Pokemon * pokemon)
+{
+ return GetBoxMonNature(&pokemon->box);
+}
+
+u8 GetBoxMonNature(struct BoxPokemon * boxmon)
+{
+ BOOL decry = AcquireBoxMonLock(boxmon);
+ u32 personality = GetBoxMonData(boxmon, MON_DATA_PERSONALITY, NULL);
+ ReleaseBoxMonLock(boxmon, decry);
+ return GetNatureFromPersonality(personality);
+}
+
+u8 GetNatureFromPersonality(u32 pid)
+{
+ return (u8)(pid % 25);
+}
+
+u16 ModifyStatByNature(u8 nature, u16 n, u8 statIndex)
+{
+ u16 retVal;
+
+ // Dont modify HP, Accuracy, or Evasion by nature
+ if (statIndex < 1 || statIndex > 5)
+ return n;
+
+ switch (sNatureStatMods[nature][statIndex - 1])
+ {
+ case 1:
+ retVal = (u16)((u16)(n * 110) / 100); // NOTE: will overflow for n > 595 because the intermediate value is cast to u16 before the division. Fix by removing (u16) cast
+ break;
+ case -1:
+ retVal = (u16)((u16)(n * 90) / 100); // NOTE: will overflow for n > 728, see above
+ break;
+ default:
+ retVal = n;
+ break;
+ }
+ return retVal;
+}
+
+void MonApplyFriendshipMod(struct Pokemon * pokemon, u32 kind, u32 location)
+{
+ u16 species;
+ u8 effect;
+ u8 r4;
+ s16 friendship;
+ s8 mod;
+
+ if (kind == 5 && (LCRandom() & 1))
+ return;
+
+ species = (u16)GetMonData(pokemon, MON_DATA_SPECIES2, NULL);
+ if (species == SPECIES_NONE || species == SPECIES_EGG)
+ return;
+
+ effect = (u8)FUN_0206E7B8((u16)GetMonData(pokemon, MON_DATA_HELD_ITEM, NULL), 1, 0);
+ r4 = 0;
+ friendship = (s16)GetMonData(pokemon, MON_DATA_FRIENDSHIP, NULL);
+ if (friendship >= 100)
+ r4++;
+ if (friendship >= 200)
+ r4++;
+ mod = sFriendshipModTable[kind][r4];
+ if (mod > 0 && GetMonData(pokemon, MON_DATA_POKEBALL, NULL) == ITEM_LUXURY_BALL)
+ mod++;
+ if (mod > 0 && GetMonData(pokemon, MON_DATA_EGG_MET_LOCATION, NULL) == location)
+ mod++;
+ if (mod > 0 && effect == 52) // Soothe Bell effect?
+ mod = (s8)(mod * 150 / 100);
+ friendship += mod;
+ if (friendship < 0)
+ friendship = 0;
+ if (friendship > 255)
+ friendship = 255;
+ SetMonData(pokemon, MON_DATA_FRIENDSHIP, &friendship);
+}
+
+u8 GetMonGender(struct Pokemon * pokemon)
+{
+ return GetBoxMonGender(&pokemon->box);
+}
+
+u8 GetBoxMonGender(struct BoxPokemon * boxmon)
+{
+ BOOL decry = AcquireBoxMonLock(boxmon);
+ u16 species = (u16)GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL);
+ u32 personality = GetBoxMonData(boxmon, MON_DATA_PERSONALITY, NULL);
+ ReleaseBoxMonLock(boxmon, decry);
+ return GetGenderBySpeciesAndPersonality(species, personality);
+}
+
+u8 GetGenderBySpeciesAndPersonality(u16 species, u32 pid)
+{
+ struct BaseStats * personal = AllocAndLoadMonPersonal(species, 0);
+ u8 gender = GetGenderBySpeciesAndPersonality_PreloadedPersonal(personal, species, pid);
+ FreeMonPersonal(personal);
+ return gender;
+}
+
+u8 GetGenderBySpeciesAndPersonality_PreloadedPersonal(struct BaseStats * personal, u16 species, u32 pid)
+{
+#pragma unused(species)
+ u8 ratio = (u8)GetPersonalAttr(personal, BASE_GENDER_RATIO);
+ switch (ratio)
+ {
+ case MON_RATIO_MALE:
+ return MON_MALE;
+ case MON_RATIO_FEMALE:
+ return MON_FEMALE;
+ case MON_RATIO_UNKNOWN:
+ return MON_GENDERLESS;
+ default:
+ if (ratio > (u8)pid)
+ return MON_FEMALE;
+ else
+ return MON_MALE;
+ }
+}
+
+u8 MonIsShiny(struct Pokemon * pokemon)
+{
+ return BoxMonIsShiny(&pokemon->box);
+}
+
+u8 BoxMonIsShiny(struct BoxPokemon * boxmon)
+{
+ u32 otid = GetBoxMonData(boxmon, MON_DATA_OTID, NULL);
+ u32 pid = GetBoxMonData(boxmon, MON_DATA_PERSONALITY, NULL);
+ return CalcShininessByOtIdAndPersonality(otid, pid);
+}
+
+u8 CalcShininessByOtIdAndPersonality(u32 otid, u32 pid)
+{
+ return SHINY_CHECK(otid, pid);
+}
+
+u32 GenerateShinyPersonality(u32 otid)
+{
+ int r4;
+ u16 r6;
+ u16 r5;
+ otid = (u32)((((otid & 0xFFFF0000) >> 16) ^ (otid & 0xFFFF)) >> 3u);
+ r6 = (u16)(LCRandom() & 7);
+ r5 = (u16)(LCRandom() & 7);
+ for (r4 = 0; r4 < 13; r4++)
+ {
+ if (MaskOfFlagNo(r4) & otid)
+ {
+ if (LCRandom() & 1)
+ r6 |= MaskOfFlagNo(r4 + 3);
+ else
+ r5 |= MaskOfFlagNo(r4 + 3);
+ }
+ else if (LCRandom() & 1)
+ {
+ r6 |= MaskOfFlagNo(r4 + 3);
+ r5 |= MaskOfFlagNo(r4 + 3);
+ }
+ }
+ return (u32)((r5 << 16) | r6);
+}
+
+void FUN_02068B68(struct SomeDrawPokemonStruct * spC, struct Pokemon * pokemon, u8 sp10)
+{
+ FUN_02068B70(spC, &pokemon->box, sp10);
+}
+
+void FUN_02068B70(struct SomeDrawPokemonStruct * spC, struct BoxPokemon * boxmon, u8 sp10)
+{
+ BOOL decry = AcquireBoxMonLock(boxmon);
+ u16 species = (u16)GetBoxMonData(boxmon, MON_DATA_SPECIES2, NULL);
+ u8 gender = GetBoxMonGender(boxmon);
+ u8 shiny = BoxMonIsShiny(boxmon);
+ u32 personality = GetBoxMonData(boxmon, MON_DATA_PERSONALITY, NULL);
+ u8 forme;
+ if (species == SPECIES_EGG)
+ {
+ if (GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL) == SPECIES_MANAPHY)
+ forme = 1;
+ else
+ forme = 0;
+ }
+ else
+ forme = (u8)GetBoxMonData(boxmon, MON_DATA_FORME, NULL);
+ FUN_02068C00(spC, species, gender, sp10, shiny, forme, personality);
+ ReleaseBoxMonLock(boxmon, decry);
+}
+
+void FUN_02068C00(struct SomeDrawPokemonStruct * spC, int species, u8 gender, u8 sp10, u8 shiny, u8 forme, u32 personality)
+{
+ spC->unk6 = 0;
+ spC->unk8 = 0;
+ spC->unkC = 0;
+ switch (species)
+ {
+ case SPECIES_BURMY:
+ if (forme > 2)
+ forme = 0;
+ spC->unk0 = 0x75;
+ spC->unk2 = (u16)(sp10 / 2 + 0x48 + forme * 2);
+ spC->unk4 = (u16)(shiny + 0x92 + forme * 2);
+ break;
+ case SPECIES_WORMADAM:
+ if (forme > 2)
+ forme = 0;
+ spC->unk0 = 0x75;
+ spC->unk2 = (u16)(sp10 / 2 + 0x4E + forme * 2);
+ spC->unk4 = (u16)(shiny + 0x98 + forme * 2);
+ break;
+ case SPECIES_SHELLOS:
+ if (forme > 1)
+ forme = 0;
+ spC->unk0 = 0x75;
+ spC->unk2 = (u16)(sp10 + 0x54 + forme);
+ spC->unk4 = (u16)(shiny + 0x9E + forme * 2);
+ break;
+ case SPECIES_GASTRODON:
+ if (forme > 1)
+ forme = 0;
+ spC->unk0 = 0x75;
+ spC->unk2 = (u16)(sp10 + 0x58 + forme);
+ spC->unk4 = (u16)(shiny + 0xA2 + forme * 2);
+ break;
+ case SPECIES_CHERRIM:
+ if (forme > 1)
+ forme = 0;
+ spC->unk0 = 0x75;
+ spC->unk2 = (u16)(sp10 + 0x5C + forme);
+ spC->unk4 = (u16)(shiny * 2 + 0xA6 + forme);
+ break;
+ case SPECIES_ARCEUS:
+ if (forme > 17)
+ forme = 0;
+ spC->unk0 = 0x75;
+ spC->unk2 = (u16)(sp10 / 2 + 0x60 + forme * 2);
+ spC->unk4 = (u16)(shiny + 0xAA + forme * 2);
+ break;
+ case SPECIES_CASTFORM:
+ if (forme > 3)
+ forme = 0;
+ spC->unk0 = 0x75;
+ spC->unk2 = (u16)(sp10 * 2 + 0x40 + forme);
+ spC->unk4 = (u16)(shiny * 4 + 0x8A + forme);
+ break;
+ case SPECIES_DEOXYS:
+ if (forme > 3)
+ forme = 0;
+ spC->unk0 = 0x75;
+ spC->unk2 = (u16)(sp10 / 2 + forme * 2);
+ spC->unk4 = (u16)(shiny + 0x86);
+ break;
+ case SPECIES_UNOWN:
+ if (forme >= 28)
+ forme = 0;
+ spC->unk0 = 0x75;
+ spC->unk2 = (u16)(sp10 / 2 + 0x8 + forme * 2);
+ spC->unk4 = (u16)(shiny + 0x88);
+ break;
+ case SPECIES_EGG:
+ if (forme > 1)
+ forme = 0;
+ spC->unk0 = 0x75;
+ spC->unk2 = (u16)(0x84 + forme);
+ spC->unk4 = (u16)(0xCE + forme);
+ break;
+ case SPECIES_MANAPHY_EGG:
+ spC->unk0 = 0x75;
+ spC->unk2 = 0x84;
+ spC->unk4 = 0xCE;
+ break;
+ default:
+ spC->unk0 = 0x4;
+ spC->unk2 = (u16)(species * 6 + sp10 + (gender == MON_FEMALE ? 0 : 1));
+ spC->unk4 = (u16)(shiny + (species * 6 + 4));
+ if (species == SPECIES_SPINDA && sp10 == 2)
+ {
+ spC->unk6 = SPECIES_SPINDA;
+ spC->unk8 = 0;
+ spC->unkC = personality;
+ }
+ break;
+ }
+}
+
+u8 FUN_02068E14(struct Pokemon * pokemon, u32 a1)
+{
+ return FUN_02068E1C(&pokemon->box, a1);
+}
+
+u8 FUN_02068E1C(struct BoxPokemon * boxmon, u32 a1)
+{
+ u16 species = (u16)GetBoxMonData(boxmon, MON_DATA_SPECIES2, NULL);
+ u8 gender = GetBoxMonGender(boxmon);
+ u32 pid = GetBoxMonData(boxmon, MON_DATA_PERSONALITY, NULL);
+ u8 forme;
+ if (species == SPECIES_EGG)
+ {
+ if (GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL) == SPECIES_MANAPHY)
+ forme = 1;
+ else
+ forme = 0;
+ }
+ else
+ forme = (u8)GetBoxMonData(boxmon, MON_DATA_FORME, NULL);
+ return FUN_02068E88(species, gender, a1, forme, pid);
+}
+
+u8 FUN_02068E88(int species, u8 gender, u32 a1, u8 forme, u32 pid)
+{
+#pragma unused(pid)
+ u8 ret;
+ s32 fileId;
+ enum NarcId narc;
+ switch (species)
+ {
+ case SPECIES_BURMY:
+ if (forme > 2)
+ forme = 0;
+ narc = NARC_POKETOOL_POKEGRA_HEIGHT_O;
+ fileId = (s32)(a1 / 2 + 0x48 + forme * 2);
+ break;
+ case SPECIES_WORMADAM:
+ if (forme > 2)
+ forme = 0;
+ narc = NARC_POKETOOL_POKEGRA_HEIGHT_O;
+ fileId = (s32)(a1 / 2 + 0x4E + forme * 2);
+ break;
+ case SPECIES_SHELLOS:
+ if (forme > 1)
+ forme = 0;
+ narc = NARC_POKETOOL_POKEGRA_HEIGHT_O;
+ fileId = (s32)(a1 + 0x54 + forme);
+ break;
+ case SPECIES_GASTRODON:
+ if (forme > 1)
+ forme = 0;
+ narc = NARC_POKETOOL_POKEGRA_HEIGHT_O;
+ fileId = (s32)(a1 + 0x58 + forme);
+ break;
+ case SPECIES_CHERRIM:
+ if (forme > 1)
+ forme = 0;
+ narc = NARC_POKETOOL_POKEGRA_HEIGHT_O;
+ fileId = (s32)(a1 + 0x5C + forme);
+ break;
+ case SPECIES_ARCEUS:
+ if (forme > 17)
+ forme = 0;
+ narc = NARC_POKETOOL_POKEGRA_HEIGHT_O;
+ fileId = (s32)(a1 / 2 + 0x60 + 2 * forme);
+ break;
+ case SPECIES_CASTFORM:
+ if (forme > 3)
+ forme = 0;
+ narc = NARC_POKETOOL_POKEGRA_HEIGHT_O;
+ fileId = (s32)(a1 * 2 + 0x40 + forme);
+ break;
+ case SPECIES_DEOXYS:
+ if (forme > 3)
+ forme = 0;
+ narc = NARC_POKETOOL_POKEGRA_HEIGHT_O;
+ fileId = (s32)(a1 / 2 + forme * 2);
+ break;
+ case SPECIES_UNOWN:
+ if (forme >= 28)
+ forme = 0;
+ narc = NARC_POKETOOL_POKEGRA_HEIGHT_O;
+ fileId = (s32)(a1 / 2 + 0x8 + forme * 2);
+ break;
+ case SPECIES_EGG:
+ if (forme > 1)
+ forme = 0;
+ narc = NARC_POKETOOL_POKEGRA_HEIGHT_O;
+ fileId = (s32)(0x84 + forme);
+ break;
+ case SPECIES_MANAPHY_EGG:
+ narc = NARC_POKETOOL_POKEGRA_HEIGHT_O;
+ fileId = 0x84;
+ break;
+ default:
+ narc = NARC_POKETOOL_POKEGRA_HEIGHT;
+ fileId = (s32)(4 * species + a1 + (gender != MON_FEMALE ? 1 : 0));
+ break;
+ }
+ ReadWholeNarcMemberByIdPair(&ret, narc, fileId);
+ return ret;
+}
+
+void FUN_02068FE0(struct SomeDrawPokemonStruct * a0, u16 a1, int a2)
+{
+ if (a2 == 2)
+ a0->unk0 = 60;
+ else
+ {
+ a0->unk0 = 6;
+ a1 = (u16)FUN_0206AA30(a1);
+ }
+ a0->unk2 = (u16)(a1 * 2);
+ a0->unk4 = (u16)(a1 * 2 + 1);
+ a0->unk6 = 0;
+ a0->unk8 = 0;
+ a0->unkC = 0;
+}
+
+void FUN_02069010(void * dest, int a1)
+{
+ struct Pokeanm buffer;
+ ReadFromNarcMemberByIdPair(&buffer, NARC_POKETOOL_POKEANM_POKEANM, 0, (u32)(28 * a1), 28);
+ MI_CpuCopy8(buffer.unk8, dest, 20);
+}
+
+void FUN_02069038(u32 a0, u32 a1, u32 a2, s32 a3, u32 a4, u32 a5, u32 a6)
+{
+ struct UnkStruct_02069038 sp4;
+ ReadFromNarcMemberByIdPair(&sp4.anim, NARC_POKETOOL_POKEANM_POKEANM, 0, (u32)(a2 * 28), 28);
+ if (a3 == 2)
+ {
+ sp4.unk0 = sp4.anim.unk0[0].unk0;
+ sp4.unk2 = sp4.anim.unk0[0].unk1;
+ sp4.unk4 = (u8)a5;
+ }
+ else
+ {
+ a3 = FUN_02014C3C((u8)a4);
+ GF_ASSERT(a3 < 3);
+ sp4.unk0 = sp4.anim.unk0[a3 + 1].unk0;
+ sp4.unk2 = sp4.anim.unk0[a3 + 1].unk1;
+ sp4.unk4 = (u8)a5;
+ }
+ FUN_02014C54((int)a0, (int)a1, &sp4, (u8)a6);
+}
+
+void FUN_020690AC(struct SomeDrawPokemonStruct * a0, u32 a1)
+{
+ a0->unk0 = 60;
+ a0->unk2 = (u16)(a1 * 2);
+ a0->unk4 = (u16)(a1 * 2 + 1);
+ a0->unk6 = 0;
+ a0->unk8 = 0;
+ a0->unkC = 0;
+}
+
+u32 FUN_020690C4(void)
+{
+ return sizeof(struct Pokemon);
+}
+
+u32 FUN_020690C8(void)
+{
+ return sizeof(struct BoxPokemon);
+}
+
+u8 FUN_020690CC(struct Pokemon * pokemon)
+{
+ return FUN_020690D4(&pokemon->box);
+}
+
+u8 FUN_020690D4(struct BoxPokemon * boxmon)
+{
+ return (u8)GetBoxMonData(boxmon, MON_DATA_FORME, NULL);
+}
+
+struct BoxPokemon * FUN_020690E4(struct Pokemon * pokemon)
+{
+ return &pokemon->box;
+}
+
+BOOL FUN_020690E8(struct Pokemon * pokemon)
+{
+ u16 species = (u16)GetMonData(pokemon, MON_DATA_SPECIES, NULL);
+ u8 level = (u8)(GetMonData(pokemon, MON_DATA_LEVEL, NULL) + 1);
+ u32 exp = GetMonData(pokemon, MON_DATA_EXPERIENCE, NULL);
+ u32 growthrate = (u32)GetMonBaseStat(species, BASE_GROWTH_RATE);
+ u32 maxexp = GetExpByGrowthRateAndLevel((int)growthrate, 100);
+ if (exp > maxexp)
+ {
+ exp = maxexp;
+ SetMonData(pokemon, MON_DATA_EXPERIENCE, &exp);
+ }
+ if (level > 100)
+ return FALSE;
+ if (exp >= GetExpByGrowthRateAndLevel((int)growthrate, level))
+ {
+ SetMonData(pokemon, MON_DATA_LEVEL, &level);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+u16 GetMonEvolution(struct PlayerParty * party, struct Pokemon * pokemon, u32 context, u32 usedItem, u32 * method_ret)
+{
+ u16 target = SPECIES_NONE;
+ u32 sp40;
+ u16 species;
+ u16 heldItem;
+ u32 personality;
+ int i;
+ u8 beauty;
+ u8 level;
+ u16 friendship;
+ u16 pid_hi;
+ struct Evolution * evoTable;
+ u8 r1;
+
+ species = (u16)GetMonData(pokemon, MON_DATA_SPECIES, NULL);
+ heldItem = (u16)GetMonData(pokemon, MON_DATA_HELD_ITEM, NULL);
+ personality = GetMonData(pokemon, MON_DATA_PERSONALITY, NULL);
+ beauty = (u8)GetMonData(pokemon, MON_DATA_BEAUTY, NULL);
+ pid_hi = (u16)((personality & 0xFFFF0000) >> 16);
+ r1 = (u8)FUN_0206E7B8(heldItem, 1, 0);
+ if (species != SPECIES_KADABRA && r1 == 0x3F && context != 3)
+ return SPECIES_NONE;
+ if (method_ret == NULL)
+ method_ret = &sp40;
+ evoTable = AllocFromHeap(0, 7 * sizeof(struct Evolution));
+ LoadMonEvolutionTable(species, evoTable);
+ switch (context)
+ {
+ case 0:
+ level = (u8)GetMonData(pokemon, MON_DATA_LEVEL, NULL);
+ friendship = (u16)GetMonData(pokemon, MON_DATA_FRIENDSHIP, NULL);
+ for (i = 0; i < 7; i++)
+ {
+ switch (evoTable[i].method)
+ {
+ case EVO_NONE:
+ break;
+ case EVO_FRIENDSHIP:
+ if (friendship >= 220)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_FRIENDSHIP;
+ }
+ break;
+ case EVO_FRIENDSHIP_DAY:
+ if (IsNighttime() == 0 && friendship >= 220)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_FRIENDSHIP_DAY;
+ }
+ break;
+ case EVO_FRIENDSHIP_NIGHT:
+ if (IsNighttime() == 1 && friendship >= 220)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_FRIENDSHIP_NIGHT;
+ }
+ break;
+ case EVO_LEVEL:
+ if (evoTable[i].param <= level)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_LEVEL;
+ }
+ break;
+ case EVO_TRADE:
+ break;
+ case EVO_TRADE_ITEM:
+ break;
+ case EVO_STONE:
+ break;
+ case EVO_LEVEL_ATK_GT_DEF:
+ if (evoTable[i].param <= level && GetMonData(pokemon, MON_DATA_ATK, NULL) > GetMonData(pokemon, MON_DATA_DEF, NULL))
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_LEVEL_ATK_GT_DEF;
+ }
+ break;
+ case EVO_LEVEL_ATK_EQ_DEF:
+ if (evoTable[i].param <= level && GetMonData(pokemon, MON_DATA_ATK, NULL) == GetMonData(pokemon, MON_DATA_DEF, NULL))
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_LEVEL_ATK_EQ_DEF;
+ }
+ break;
+ case EVO_LEVEL_ATK_LT_DEF:
+ if (evoTable[i].param <= level && GetMonData(pokemon, MON_DATA_ATK, NULL) < GetMonData(pokemon, MON_DATA_DEF, NULL))
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_LEVEL_ATK_LT_DEF;
+ }
+ break;
+ case EVO_LEVEL_PID_LO:
+ if (evoTable[i].param <= level && pid_hi % 10 < 5)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_LEVEL_PID_LO;
+ }
+ break;
+ case EVO_LEVEL_PID_HI:
+ if (evoTable[i].param <= level && pid_hi % 10 >= 5)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_LEVEL_PID_HI;
+ }
+ break;
+ case EVO_LEVEL_NINJASK:
+ if (evoTable[i].param <= level)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_LEVEL_NINJASK;
+ }
+ break;
+ case EVO_LEVEL_SHEDINJA:
+ *method_ret = EVO_LEVEL_SHEDINJA;
+ break;
+ case EVO_BEAUTY:
+ if (evoTable[i].param <= beauty)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_BEAUTY;
+ }
+ break;
+ case EVO_STONE_MALE:
+ break;
+ case EVO_STONE_FEMALE:
+ break;
+ case EVO_ITEM_DAY:
+ if (IsNighttime() == 0 && evoTable[i].param == heldItem)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_ITEM_DAY;
+ }
+ break;
+ case EVO_ITEM_NIGHT:
+ if (IsNighttime() == 1 && evoTable[i].param == heldItem)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_ITEM_NIGHT;
+ }
+ break;
+ case EVO_HAS_MOVE:
+ if (MonHasMove(pokemon, evoTable[i].param) == TRUE)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_HAS_MOVE;
+ }
+ break;
+ case EVO_OTHER_PARTY_MON:
+ if (party != NULL && PartyHasMon(party, evoTable[i].param) == 1)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_OTHER_PARTY_MON;
+ }
+ break;
+ case EVO_LEVEL_MALE:
+ if (GetMonData(pokemon, MON_DATA_GENDER, NULL) == MON_MALE && evoTable[i].param <= level)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_LEVEL_MALE;
+ }
+ break;
+ case EVO_LEVEL_FEMALE:
+ if (GetMonData(pokemon, MON_DATA_GENDER, NULL) == MON_FEMALE && evoTable[i].param <= level)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_LEVEL_FEMALE;
+ }
+ break;
+ case EVO_CORONET:
+ if (usedItem == evoTable[i].method)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_CORONET;
+ }
+ break;
+ case EVO_ETERNA:
+ if (usedItem == evoTable[i].method)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_ETERNA;
+ }
+ break;
+ case EVO_ROUTE217:
+ if (usedItem == evoTable[i].method)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_ROUTE217;
+ }
+ break;
+ }
+ if (target != SPECIES_NONE)
+ break;
+ }
+ break;
+ case 1:
+ for (i = 0; i < 7; i++)
+ {
+ switch (evoTable[i].method)
+ {
+ case EVO_TRADE:
+ target = evoTable[i].target;
+ *method_ret = EVO_TRADE;
+ break;
+ case EVO_TRADE_ITEM:
+ if (heldItem == evoTable[i].param)
+ {
+ target = evoTable[i].target;
+ *method_ret = EVO_TRADE_ITEM;
+ }
+ break;
+ }
+ if (target != SPECIES_NONE)
+ break;
+ }
+ break;
+ case 2:
+ case 3:
+ for (i = 0; i < 7; i++)
+ {
+ if (evoTable[i].method == EVO_STONE && usedItem == evoTable[i].param)
+ {
+ target = evoTable[i].target;
+ *method_ret = 0;
+ break;
+ }
+ if (evoTable[i].method == EVO_STONE_MALE && GetMonData(pokemon, MON_DATA_GENDER, NULL) == MON_MALE && usedItem == evoTable[i].param)
+ {
+ target = evoTable[i].target;
+ *method_ret = 0;
+ break;
+ }
+ if (evoTable[i].method == EVO_STONE_FEMALE && GetMonData(pokemon, MON_DATA_GENDER, NULL) == MON_FEMALE && usedItem == evoTable[i].param)
+ {
+ target = evoTable[i].target;
+ *method_ret = 0;
+ break;
+ }
+ }
+ break;
+ }
+ FreeToHeap(evoTable);
+ return target;
+}
+
+u16 ReadFromPersonalPmsNarc(u16 species)
+{
+ u16 ret = SPECIES_NONE;
+ GF_ASSERT(species < SPECIES_EGG);
+ {
+ FSFile file;
+ FS_InitFile(&file);
+ FS_OpenFile(&file, "poketool/personal/pms.narc");
+ FS_SeekFile(&file, (s32)(species * sizeof(u16)), FS_SEEK_SET);
+ FS_ReadFile(&file, &ret, sizeof(u16));
+ FS_CloseFile(&file);
+ }
+ return ret;
+}
+
+u16 GetEggSpecies(u16 species)
+{
+ switch (species)
+ {
+ case SPECIES_SUDOWOODO:
+ case SPECIES_MARILL:
+ case SPECIES_MR_MIME:
+ case SPECIES_CHANSEY:
+ case SPECIES_SNORLAX:
+ case SPECIES_MANTINE:
+ case SPECIES_WOBBUFFET:
+ case SPECIES_ROSELIA:
+ case SPECIES_CHIMECHO:
+ return species;
+ default:
+ return ReadFromPersonalPmsNarc(species);
+ }
+}
+
+#define WOTBL_END 0xFFFF
+#define WOTBL_MOVE_MASK 0x01FF
+#define WOTBL_MOVE_SHIFT 0
+#define WOTBL_LVL_MASK 0xFE00
+#define WOTBL_LVL_SHIFT 9
+#define WOTBL_MOVE(x) ((u16)(((x) & WOTBL_MOVE_MASK) >> WOTBL_MOVE_SHIFT))
+#define WOTBL_LVL(x) ((u8)(((x) & WOTBL_LVL_MASK) >> WOTBL_LVL_SHIFT))
+
+void InitBoxMonMoveset(struct BoxPokemon * boxmon)
+{
+ BOOL decry;
+ u16 * wotbl;
+ int i;
+ u16 species;
+ u32 forme;
+ u8 level;
+ u16 move;
+ wotbl = AllocFromHeap(0, 22 * sizeof(u16));
+ decry = AcquireBoxMonLock(boxmon);
+ species = (u16)GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL);
+ forme = GetBoxMonData(boxmon, MON_DATA_FORME, NULL);
+ level = (u8)CalcBoxMonLevel(boxmon);
+ LoadWotbl_HandleAlternateForme(species, (int)forme, wotbl);
+ for (i = 0; wotbl[i] != WOTBL_END; i++)
+ {
+ if ((wotbl[i] & WOTBL_LVL_MASK) > (level << WOTBL_LVL_SHIFT))
+ break;
+ move = WOTBL_MOVE(wotbl[i]);
+ if (FUN_020696A8(boxmon, move) == 0xFFFF)
+ FUN_02069718(boxmon, move);
+ }
+ FreeToHeap(wotbl);
+ ReleaseBoxMonLock(boxmon, decry);
+}
+
+u32 FUN_02069698(struct Pokemon * pokemon, u16 move)
+{
+ return FUN_020696A8(FUN_020690E4(pokemon), move);
+}
+
+u32 FUN_020696A8(struct BoxPokemon * boxmon, u16 move)
+{
+ u32 ret = 0xFFFF;
+ int i;
+ BOOL decry = AcquireBoxMonLock(boxmon);
+ u16 cur_move;
+ for (i = 0; i < 4; i++)
+ {
+ cur_move = (u16)GetBoxMonData(boxmon, MON_DATA_MOVE1 + i, NULL);
+ if (cur_move == MOVE_NONE)
+ {
+ FUN_020697D4(boxmon, move, (u8)i);
+ ret = move;
+ break;
+ }
+ if (cur_move == move)
+ {
+ ret = 0xFFFE;
+ break;
+ }
+ }
+ ReleaseBoxMonLock(boxmon, decry);
+ return ret;
+}
+
+void FUN_02069708(struct Pokemon * pokemon, u16 move)
+{
+ FUN_02069718(FUN_020690E4(pokemon), move);
+}
+
+void FUN_02069718(struct BoxPokemon * boxmon, u16 move)
+{
+ BOOL decry = AcquireBoxMonLock(boxmon);
+ int i;
+ u16 moves[4];
+ u8 pp[4];
+ u8 ppUp[4];
+
+ for (i = 0; i < 3; i++)
+ {
+ moves[i] = (u16)GetBoxMonData(boxmon, MON_DATA_MOVE1 + i + 1, NULL);
+ pp[i] = (u8)GetBoxMonData(boxmon, MON_DATA_MOVE1PP + i + 1, NULL);
+ ppUp[i] = (u8)GetBoxMonData(boxmon, MON_DATA_MOVE1PPUP + i + 1, NULL);
+ }
+
+ moves[3] = move;
+ pp[3] = (u8)GetWazaAttr(move, MOVEATTR_PP);
+ ppUp[3] = 0;
+
+ for (i = 0; i < 4; i++)
+ {
+ SetBoxMonData(boxmon, MON_DATA_MOVE1 + i, &moves[i]);
+ SetBoxMonData(boxmon, MON_DATA_MOVE1PP + i, &pp[i]);
+ SetBoxMonData(boxmon, MON_DATA_MOVE1PPUP + i, &ppUp[i]);
+ }
+
+ ReleaseBoxMonLock(boxmon, decry);
+}
+
+void FUN_020697CC(struct Pokemon * pokemon, u16 move, u8 slot)
+{
+ FUN_020697D4(&pokemon->box, move, slot);
+}
+
+void FUN_020697D4(struct BoxPokemon * boxmon, u16 move, u8 slot)
+{
+ u8 ppUp;
+ u8 pp;
+
+ SetBoxMonData(boxmon, MON_DATA_MOVE1 + slot, &move);
+ ppUp = (u8)GetBoxMonData(boxmon, MON_DATA_MOVE1PPUP + slot, NULL);
+ pp = (u8)WazaGetMaxPp(move, ppUp);
+ SetBoxMonData(boxmon, MON_DATA_MOVE1PP + slot, &pp);
+}
+
+u32 FUN_02069818(struct Pokemon * pokemon, u32 * r5, u16 * sp0)
+{
+ u32 ret = 0;
+ u16 * wotbl = AllocFromHeap(0, 22 * sizeof(u16));
+ u16 species = (u16)GetMonData(pokemon, MON_DATA_SPECIES, NULL);
+ u32 forme = GetMonData(pokemon, MON_DATA_FORME, NULL);
+ u8 level = (u8)GetMonData(pokemon, MON_DATA_LEVEL, NULL);
+ LoadWotbl_HandleAlternateForme(species, (int)forme, wotbl);
+
+
+ if (wotbl[*r5] == 0xFFFF)
+ {
+ FreeToHeap(wotbl);
+ return 0;
+ }
+ while ((wotbl[*r5] & WOTBL_LVL_MASK) != (level << WOTBL_LVL_SHIFT))
+ {
+ (*r5)++;
+ if (wotbl[*r5] == 0xFFFF)
+ {
+ FreeToHeap(wotbl);
+ return 0;
+ }
+ }
+ if ((wotbl[*r5] & WOTBL_LVL_MASK) == (level << WOTBL_LVL_SHIFT))
+ {
+ *sp0 = WOTBL_MOVE(wotbl[*r5]);
+ (*r5)++;
+ ret = FUN_02069698(pokemon, *sp0);
+ }
+ FreeToHeap(wotbl);
+ return ret;
+}
+
+void FUN_020698E0(struct Pokemon * pokemon, int slot1, int slot2)
+{
+ FUN_020698E8(&pokemon->box, slot1, slot2);
+}
+
+void FUN_020698E8(struct BoxPokemon * boxmon, int slot1, int slot2)
+{
+ u16 moves[2];
+ u8 pp[2];
+ u8 ppUp[2];
+
+ moves[0] = (u16)GetBoxMonData(boxmon, MON_DATA_MOVE1 + slot1, NULL);
+ pp[0] = (u8)GetBoxMonData(boxmon, MON_DATA_MOVE1PP + slot1, NULL);
+ ppUp[0] = (u8)GetBoxMonData(boxmon, MON_DATA_MOVE1PPUP + slot1, NULL);
+ moves[1] = (u16)GetBoxMonData(boxmon, MON_DATA_MOVE1 + slot2, NULL);
+ pp[1] = (u8)GetBoxMonData(boxmon, MON_DATA_MOVE1PP + slot2, NULL);
+ ppUp[1] = (u8)GetBoxMonData(boxmon, MON_DATA_MOVE1PPUP + slot2, NULL);
+
+ SetBoxMonData(boxmon, MON_DATA_MOVE1 + slot1, &moves[1]);
+ SetBoxMonData(boxmon, MON_DATA_MOVE1PP + slot1, &pp[1]);
+ SetBoxMonData(boxmon, MON_DATA_MOVE1PPUP + slot1, &ppUp[1]);
+ SetBoxMonData(boxmon, MON_DATA_MOVE1 + slot2, &moves[0]);
+ SetBoxMonData(boxmon, MON_DATA_MOVE1PP + slot2, &pp[0]);
+ SetBoxMonData(boxmon, MON_DATA_MOVE1PPUP + slot2, &ppUp[0]);
+}
+
+void FUN_020699A4(struct Pokemon * pokemon, u32 slot)
+{
+ u16 move;
+ u8 pp;
+ u8 ppUp;
+ for (; slot < 3; slot++)
+ {
+ move = (u16)GetMonData(pokemon, (int)(MON_DATA_MOVE1 + slot + 1), NULL);
+ pp = (u8)GetMonData(pokemon, (int)(MON_DATA_MOVE1PP + slot + 1), NULL);
+ ppUp = (u8)GetMonData(pokemon, (int)(MON_DATA_MOVE1PPUP + slot + 1), NULL);
+ SetMonData(pokemon, (int)(MON_DATA_MOVE1 + slot), &move);
+ SetMonData(pokemon, (int)(MON_DATA_MOVE1PP + slot), &pp);
+ SetMonData(pokemon, (int)(MON_DATA_MOVE1PPUP + slot), &ppUp);
+ }
+ move = MOVE_NONE;
+ pp = 0;
+ ppUp = 0;
+ SetMonData(pokemon, MON_DATA_MOVE1 + 3, &move);
+ SetMonData(pokemon, MON_DATA_MOVE1PP + 3, &pp);
+ SetMonData(pokemon, MON_DATA_MOVE1PPUP + 3, &ppUp);
+}
+
+BOOL MonHasMove(struct Pokemon * pokemon, u16 move)
+{
+ int i;
+ for (i = 0; i < 4; i++)
+ {
+ if (GetMonData(pokemon, MON_DATA_MOVE1 + i, NULL) == move)
+ break;
+ }
+ if (i != 4)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+void FUN_02069A64(struct BoxPokemon * src, struct Pokemon * dest)
+{
+ u32 sp0 = 0;
+ u8 sp4[12][2];
+ struct SealStruct * seals;
+ dest->box = *src;
+ if (dest->box.box_lock)
+ dest->box.party_lock = TRUE;
+ SetMonData(dest, MON_DATA_STATUS, &sp0);
+ SetMonData(dest, MON_DATA_HP, &sp0);
+ SetMonData(dest, MON_DATA_MAXHP, &sp0);
+ seals = CreateNewSealsObject(0);
+ SetMonData(dest, MON_DATA_SEAL_STRUCT, seals);
+ FreeToHeap(seals);
+ SetMonData(dest, MON_DATA_CAPSULE, &sp0);
+ MIi_CpuClearFast(0, sp4, sizeof(sp4));
+ SetMonData(dest, MON_DATA_SEAL_COORDS, sp4);
+ CalcMonLevelAndStats(dest);
+}
+
+u8 FUN_02069AEC(struct PlayerParty * party)
+{
+ int i;
+ int r7 = GetPartyCount(party);
+ u8 ret = 1;
+ u8 level;
+ for (i = 0; i < r7; i++)
+ {
+ struct Pokemon * pokemon = GetPartyMonByIndex(party, i);
+ if (GetMonData(pokemon, MON_DATA_SPECIES, NULL) != SPECIES_NONE
+ && !GetMonData(pokemon, MON_DATA_IS_EGG, NULL))
+ {
+ level = (u8)GetMonData(pokemon, MON_DATA_LEVEL, NULL);
+ if (level > ret)
+ ret = level;
+ }
+ }
+ return ret;
+}
+
+u16 FUN_02069B40(u16 species)
+{
+ u16 ret;
+ ReadFromNarcMemberByIdPair(&ret, NARC_POKETOOL_POKEZUKAN, 0, species * sizeof(u16), sizeof(u16));
+ return ret;
+}
+
+u16 FUN_02069B60(u16 sinnoh_dex)
+{
+ u16 ret = SPECIES_NONE;
+ if (sinnoh_dex <= SINNOH_DEX_COUNT)
+ ReadFromNarcMemberByIdPair(&ret, NARC_POKETOOL_SHINZUKAN, 0, sinnoh_dex * sizeof(u16), sizeof(u16));
+ return ret;
+}
+
+void FUN_02069B88(struct Pokemon * src, struct Pokemon * dest)
+{
+ *dest = *src;
+}
+
+void FUN_02069BA0(struct Pokemon * src, struct BoxPokemon * dest)
+{
+ *dest = src->box;
+}
+
+void FUN_02069BB4(struct BoxPokemon * src, struct BoxPokemon * dest)
+{
+ *dest = *src;
+}
+
+s8 FUN_02069BC8(struct Pokemon * pokemon, int flavor)
+{
+ return FUN_02069BD0(&pokemon->box, flavor);
+}
+
+s8 FUN_02069BD0(struct BoxPokemon * boxmon, int flavor)
+{
+ u32 personality = GetBoxMonData(boxmon, MON_DATA_PERSONALITY, NULL);
+ return FUN_02069BE4(personality, flavor);
+}
+
+s8 FUN_02069BE4(u32 personality, int flavor)
+{
+ return UNK_020F7F16[GetNatureFromPersonality(personality)][flavor];
+}
+
+int FUN_02069BFC(u16 species, u32 forme, u16 * dest)
+{
+ int i;
+ u16 * wotbl = AllocFromHeap(0, 22 * sizeof(u16));
+ LoadWotbl_HandleAlternateForme(species, (int)forme, wotbl);
+ for (i = 0; wotbl[i] != WOTBL_END; i++)
+ {
+ dest[i] = WOTBL_MOVE(wotbl[i]);
+ }
+ FreeToHeap(wotbl);
+ return i;
+}
+
+void FUN_02069C4C(struct PlayerParty * party)
+{
+ int count = GetPartyCount(party);
+ int idx;
+ struct Pokemon * pokemon;
+ u8 sp0;
+ switch (LCRandom())
+ {
+ case 0x4000:
+ case 0x8000:
+ case 0xC000:
+ do
+ {
+ idx = LCRandom() % count;
+ pokemon = GetPartyMonByIndex(party, idx);
+ } while (GetMonData(pokemon, MON_DATA_SPECIES, NULL) == SPECIES_NONE || GetMonData(pokemon, MON_DATA_IS_EGG, NULL));
+ if (!FUN_02069CF4(party, (u8)MaskOfFlagNo(idx)))
+ {
+ do
+ {
+ sp0 = (u8)LCRandom();
+ } while (!(sp0 & 7));
+ if (sp0 & 0xF0)
+ sp0 &= 7;
+ sp0 |= sp0 << 4;
+ sp0 &= 0xF3;
+ sp0++;
+ SetMonData(pokemon, MON_DATA_POKERUS, &sp0);
+ }
+ }
+}
+
+u8 FUN_02069CF4(struct PlayerParty * party, u8 mask)
+{
+ int i = 0;
+ u32 flag = 1;
+ u8 ret = 0;
+ struct Pokemon * pokemon;
+ if (mask != 0)
+ {
+ do
+ {
+ if (mask & 1)
+ {
+ pokemon = GetPartyMonByIndex(party, i);
+ if (GetMonData(pokemon, MON_DATA_POKERUS, NULL))
+ ret |= flag;
+ }
+ i++;
+ flag <<= 1;
+ mask >>= 1;
+ }
+ while (mask != 0);
+ }
+ else
+ {
+ pokemon = GetPartyMonByIndex(party, 0);
+ if (GetMonData(pokemon, MON_DATA_POKERUS, NULL))
+ ret++;
+ }
+ return ret;
+}
+
+void FUN_02069D50(struct PlayerParty * party, int r5)
+{
+ int i;
+ u8 pokerus;
+ struct Pokemon * pokemon;
+ int count = GetPartyCount(party);
+ for (i = 0; i < count; i++)
+ {
+ pokemon = GetPartyMonByIndex(party, i);
+ if (GetMonData(pokemon, MON_DATA_SPECIES, NULL) != SPECIES_NONE)
+ {
+ pokerus = (u8)GetMonData(pokemon, MON_DATA_POKERUS, NULL);
+ if (pokerus & 0xF)
+ {
+ if ((pokerus & 0xF) < r5 || r5 > 4)
+ pokerus &= 0xF0;
+ else
+ pokerus -= r5;
+ if (pokerus == 0)
+ pokerus = 0x10; // immune
+ SetMonData(pokemon, MON_DATA_POKERUS, &pokerus);
+ }
+ }
+ }
+}
+
+void FUN_02069DC8(struct PlayerParty * party)
+{
+ int count = GetPartyCount(party);
+ int i;
+ struct Pokemon * pokemon;
+ u8 pokerus;
+ if ((LCRandom() % 3) == 0)
+ {
+ for (i = 0; i < count; i++)
+ {
+ pokemon = GetPartyMonByIndex(party, i);
+ if (GetMonData(pokemon, MON_DATA_SPECIES, NULL) != SPECIES_NONE)
+ {
+ pokerus = (u8)GetMonData(pokemon, MON_DATA_POKERUS, NULL);
+ if (pokerus & 0xF)
+ {
+ if (i != 0)
+ {
+ pokemon = GetPartyMonByIndex(party, i - 1);
+ if (!(GetMonData(pokemon, MON_DATA_POKERUS, NULL) & 0xF0))
+ SetMonData(pokemon, MON_DATA_POKERUS, &pokerus);
+ }
+ if (i < count - 1)
+ {
+ pokemon = GetPartyMonByIndex(party, i + 1);
+ if (!(GetMonData(pokemon, MON_DATA_POKERUS, NULL) & 0xF0))
+ {
+ SetMonData(pokemon, MON_DATA_POKERUS, &pokerus);
+ i++; // don't infect the rest of the party
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+BOOL FUN_02069E74(struct Pokemon * pokemon)
+{
+ return FUN_02069E7C(&pokemon->box);
+}
+
+BOOL FUN_02069E7C(struct BoxPokemon * boxmon)
+{
+ return !!(GetBoxMonData(boxmon, MON_DATA_POKERUS, NULL) & 0xF);
+}
+
+BOOL FUN_02069E94(struct Pokemon * pokemon)
+{
+ return FUN_02069E9C(&pokemon->box);
+}
+
+BOOL FUN_02069E9C(struct BoxPokemon * boxmon)
+{
+ u8 pokerus = (u8)GetBoxMonData(boxmon, MON_DATA_POKERUS, NULL);
+ if (pokerus & 0xF)
+ return FALSE;
+ if (pokerus & 0xF0)
+ return TRUE;
+ return FALSE;
+}
+
+void FUN_02069EC4(struct Pokemon * pokemon)
+{
+ FUN_02069ECC(&pokemon->box);
+}
+
+void FUN_02069ECC(struct BoxPokemon * boxmon)
+{
+ u32 species = GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL);
+ u32 ability = GetBoxMonData(boxmon, MON_DATA_ABILITY, NULL);
+ u32 heldItem = GetBoxMonData(boxmon, MON_DATA_HELD_ITEM, NULL);
+ u32 forme;
+ if (species == SPECIES_ARCEUS && ability == ABILITY_MULTITYPE)
+ {
+ forme = GetArceusTypeByHeldItemEffect((u16)FUN_0206E7B8((u16)heldItem, 1, 0));
+ SetBoxMonData(boxmon, MON_DATA_FORME, &forme);
+ }
+}
+
+u32 GetArceusTypeByHeldItemEffect(u16 heldEffect)
+{
+ switch (heldEffect)
+ {
+ case 0x7D:
+ return TYPE_FIRE;
+ case 0x7E:
+ return TYPE_WATER;
+ case 0x7F:
+ return TYPE_ELECTRIC;
+ case 0x80:
+ return TYPE_GRASS;
+ case 0x81:
+ return TYPE_ICE;
+ case 0x82:
+ return TYPE_FIGHTING;
+ case 0x83:
+ return TYPE_POISON;
+ case 0x84:
+ return TYPE_GROUND;
+ case 0x85:
+ return TYPE_FLYING;
+ case 0x86:
+ return TYPE_PSYCHIC;
+ case 0x87:
+ return TYPE_BUG;
+ case 0x88:
+ return TYPE_ROCK;
+ case 0x89:
+ return TYPE_GHOST;
+ case 0x8A:
+ return TYPE_DRAGON;
+ case 0x8B:
+ return TYPE_DARK;
+ case 0x8C:
+ return TYPE_STEEL;
+ default:
+ return TYPE_NORMAL;
+ }
+}
+
+void LoadWotbl_HandleAlternateForme(int species, int forme, u16 * wotbl)
+{
+ ReadWholeNarcMemberByIdPair(wotbl, NARC_POKETOOL_PERSONAL_WOTBL, ResolveMonForme(species, forme));
+}
+
+void FUN_02069FB0(u32 r7, u32 r5, u32 r4, u32 r6, u32 sp18, u32 sp1C, u32 sp20)
+{
+ if (r4 == SPECIES_CHATOT)
+ {
+ if (!FUN_02005F14((int)r5))
+ {
+ FUN_02005E80(1);
+ FUN_020056AC((int)r5, (int)r4, (int)r6, (int)sp18, (int)sp20);
+ }
+ else
+ {
+ if (sp1C)
+ FUN_02005E80(1);
+ FUN_02005E90((int)r7, 0, (int)sp18, (int)r6);
+ }
+ }
+ else
+ {
+ FUN_020056AC((int)r5, (int)r4, (int)r6, (int)sp18, (int)sp20);
+ }
+}
+
+void FUN_0206A014(struct Pokemon * pokemon, u32 a1, u32 pokeball, u32 a3, u32 encounterType, u32 a5)
+{
+ u32 hp;
+ FUN_0206A054(&pokemon->box, a1, pokeball, a3, encounterType, a5);
+ if (pokeball == ITEM_HEAL_BALL)
+ {
+ hp = GetMonData(pokemon, MON_DATA_MAXHP, NULL);
+ SetMonData(pokemon, MON_DATA_HP, &hp);
+ hp = 0;
+ SetMonData(pokemon, MON_DATA_STATUS, &hp);
+ }
+}
+
+void FUN_0206A054(struct BoxPokemon * boxmon, u32 a1, u32 pokeball, u32 a3, u32 encounterType, u32 a5)
+{
+ FUN_020808AC(boxmon, (int)a1, 0, (int)a3, (int)a5);
+ SetBoxMonData(boxmon, MON_DATA_GAME_VERSION, (void *)&gGameVersion);
+ SetBoxMonData(boxmon, MON_DATA_POKEBALL, &pokeball);
+ SetBoxMonData(boxmon, MON_DATA_ENCOUNTER_TYPE, &encounterType);
+}
+
+void FUN_0206A094(struct Pokemon * pokemon, u32 a1, u32 a2)
+{
+ u32 chance;
+ u16 species;
+ u16 forme;
+ u16 item1;
+ u16 item2;
+ if (!(a1 & 0x81)) {
+ chance = (u32)(LCRandom() % 100);
+ species = (u16)GetMonData(pokemon, MON_DATA_SPECIES, 0);
+ forme = (u16)GetMonData(pokemon, MON_DATA_FORME, 0);
+ item1 = (u16)GetMonBaseStat_HandleFormeConversion(species, forme, BASE_ITEM_1);
+ item2 = (u16)GetMonBaseStat_HandleFormeConversion(species, forme, BASE_ITEM_2);
+ if (item1 == item2 && item1 != ITEM_NONE)
+ {
+ SetMonData(pokemon, MON_DATA_HELD_ITEM, &item1);
+ }
+ else
+ {
+ if (chance >= sItemOdds[a2][0])
+ {
+ if (chance < sItemOdds[a2][1])
+ {
+ SetMonData(pokemon, MON_DATA_HELD_ITEM, &item1);
+ }
+ else
+ {
+ SetMonData(pokemon, MON_DATA_HELD_ITEM, &item2);
+ }
+ }
+ }
+ }
+}
+
+BOOL FUN_0206A13C(struct Pokemon * pokemon, u32 a1)
+{
+ return FUN_0206A144(&pokemon->box, a1);
+}
+
+BOOL FUN_0206A144(struct BoxPokemon * boxmon, u32 a1)
+{
+ u16 species = (u16)GetBoxMonData(boxmon, MON_DATA_SPECIES2, NULL);
+ int forme = (int)GetBoxMonData(boxmon, MON_DATA_FORME, NULL);
+ return FUN_0206A16C(species, forme, a1);
+}
+
+BOOL FUN_0206A16C(u16 species, int forme, u32 a2)
+{
+ u32 r4;
+ enum BaseStat r2;
+ if (species == SPECIES_EGG)
+ return FALSE;
+ if (a2 < 32)
+ {
+ r4 = 1ul << a2;
+ r2 = BASE_UNKNOWN_29;
+ }
+ else if (a2 < 64)
+ {
+ r4 = 1ul << (a2 - 32);
+ r2 = BASE_UNKNOWN_30;
+ }
+ else if (a2 < 96)
+ {
+ r4 = 1ul << (a2 - 64);
+ r2 = BASE_UNKNOWN_31;
+ }
+ else
+ {
+ r4 = 1ul << (a2 - 96);
+ r2 = BASE_UNKNOWN_32;
+ }
+ return !!(GetMonBaseStat_HandleFormeConversion(species, forme, r2) & r4);
+}
+
+void FUN_0206A1C4(struct Pokemon * pokemon)
+{
+ FUN_0206A1CC(&pokemon->box);
+}
+
+void FUN_0206A1CC(struct BoxPokemon * boxmon)
+{
+ BOOL decry = AcquireBoxMonLock(boxmon);
+ int species = (int)GetBoxMonData(boxmon, MON_DATA_SPECIES, NULL);
+ int pid = (int)GetBoxMonData(boxmon, MON_DATA_PERSONALITY, NULL);
+ int ability1 = (int)GetMonBaseStat(species, BASE_ABILITY_1);
+ int ability2 = (int)GetMonBaseStat(species, BASE_ABILITY_2);
+
+ if (ability2 != ABILITY_NONE)
+ {
+ if (pid & 1)
+ SetBoxMonData(boxmon, MON_DATA_ABILITY, &ability2);
+ else
+ SetBoxMonData(boxmon, MON_DATA_ABILITY, &ability1);
+ }
+ else
+ SetBoxMonData(boxmon, MON_DATA_ABILITY, &ability1);
+ ReleaseBoxMonLock(boxmon, decry);
+}
+
+void FUN_0206A23C(struct Pokemon * r5, u32 personality)
+{
+ PokemonDataBlockA * r4;
+ PokemonDataBlockB * r6;
+ PokemonDataBlockC * r7;
+ PokemonDataBlockD * sp8;
+ PokemonDataBlockA * spC;
+ PokemonDataBlockB * sp10;
+ PokemonDataBlockC * sp14;
+ PokemonDataBlockD * sp18;
+ struct Pokemon * sp4;
+
+ sp4 = AllocMonZeroed(0);
+ FUN_02069B88(r5, sp4);
+ r4 = &GetSubstruct(&sp4->box, r5->box.pid, 0)->blockA;
+ r6 = &GetSubstruct(&sp4->box, r5->box.pid, 1)->blockB;
+ r7 = &GetSubstruct(&sp4->box, r5->box.pid, 2)->blockC;
+ sp8 = &GetSubstruct(&sp4->box, r5->box.pid, 3)->blockD;
+ spC = &GetSubstruct(&r5->box, personality, 0)->blockA;
+ sp10 = &GetSubstruct(&r5->box, personality, 1)->blockB;
+ sp14 = &GetSubstruct(&r5->box, personality, 2)->blockC;
+ sp18 = &GetSubstruct(&r5->box, personality, 3)->blockD;
+
+ DECRYPT_BOX(&sp4->box);
+ DECRYPT_PTY(r5);
+ DECRYPT_BOX(&r5->box);
+ r5->box.pid = personality;
+ *spC = *r4;
+ *sp10 = *r6;
+ *sp14 = *r7;
+ *sp18 = *sp8;
+ r5->box.checksum = CHECKSUM(&r5->box);
+ ENCRYPT_BOX(&r5->box);
+ ENCRYPT_PTY(r5);
+ FreeToHeap(sp4);
+}
+
+void LoadMonPersonal(int species, struct BaseStats * personal)
+{
+ ReadWholeNarcMemberByIdPair(personal, NARC_POKETOOL_PERSONAL_PERSONAL, species);
+}
+
+void LoadMonBaseStats_HandleAlternateForme(int species, int forme, struct BaseStats * personal)
+{
+ ReadWholeNarcMemberByIdPair(personal, NARC_POKETOOL_PERSONAL_PERSONAL, ResolveMonForme(species, forme));
+}
+
+void LoadMonEvolutionTable(u16 species, struct Evolution * evo)
+{
+ ReadWholeNarcMemberByIdPair(evo, NARC_POKETOOL_PERSONAL_EVO, species);
+}
+
+
+void MonEncryptSegment(u16 * data, u32 size, u32 seed) {
+ int i;
+ for (i = 0; i < size / 2; i++)
+ {
+ data[i] ^= MonEncryptionLCRNG(&seed);
+ }
+}
+
+void MonDecryptSegment(u16 * data, u32 size, u32 seed) {
+ MonEncryptSegment(data, size, seed);
+}
+
+u16 MonEncryptionLCRNG(u32 * seed)
+{
+ *seed = *seed * 1103515245 + 24691;
+ return (u16)(*seed >> 16);
+}
+
+u16 CalcMonChecksum(u16 * data, u32 size)
+{
+ int i;
+ u16 ret = 0;
+ for (i = 0; i < size / 2; i++)
+ {
+ ret += data[i];
+ }
+ return ret;
+}
+
+#define SUBSTRUCT_CASE(v1, v2, v3, v4) \
+{ \
+ PokemonDataBlock *substructs = boxMon->substructs; \
+ switch (substructType) \
+ { \
+ case 0: \
+ result = &substructs[v1]; \
+ break; \
+ case 1: \
+ result = &substructs[v2]; \
+ break; \
+ case 2: \
+ result = &substructs[v3]; \
+ break; \
+ case 3: \
+ result = &substructs[v4]; \
+ break; \
+ } \
+ \
+ break; \
+}
+
+PokemonDataBlock *GetSubstruct(struct BoxPokemon *boxMon, u32 personality, u8 substructType)
+{
+ PokemonDataBlock *result;
+
+ switch ((personality & 0x3E000) >> 13)
+ {
+ case 0:
+ case 24:
+ SUBSTRUCT_CASE(0,1,2,3)
+ case 1:
+ case 25:
+ SUBSTRUCT_CASE(0,1,3,2)
+ case 2:
+ case 26:
+ SUBSTRUCT_CASE(0,2,1,3)
+ case 3:
+ case 27:
+ SUBSTRUCT_CASE(0,3,1,2)
+ case 4:
+ case 28:
+ SUBSTRUCT_CASE(0,2,3,1)
+ case 5:
+ case 29:
+ SUBSTRUCT_CASE(0,3,2,1)
+ case 6:
+ case 30:
+ SUBSTRUCT_CASE(1,0,2,3)
+ case 7:
+ case 31:
+ SUBSTRUCT_CASE(1,0,3,2)
+ case 8:
+ SUBSTRUCT_CASE(2,0,1,3)
+ case 9:
+ SUBSTRUCT_CASE(3,0,1,2)
+ case 10:
+ SUBSTRUCT_CASE(2,0,3,1)
+ case 11:
+ SUBSTRUCT_CASE(3,0,2,1)
+ case 12:
+ SUBSTRUCT_CASE(1,2,0,3)
+ case 13:
+ SUBSTRUCT_CASE(1,3,0,2)
+ case 14:
+ SUBSTRUCT_CASE(2,1,0,3)
+ case 15:
+ SUBSTRUCT_CASE(3,1,0,2)
+ case 16:
+ SUBSTRUCT_CASE(2,3,0,1)
+ case 17:
+ SUBSTRUCT_CASE(3,2,0,1)
+ case 18:
+ SUBSTRUCT_CASE(1,2,3,0)
+ case 19:
+ SUBSTRUCT_CASE(1,3,2,0)
+ case 20:
+ SUBSTRUCT_CASE(2,1,3,0)
+ case 21:
+ SUBSTRUCT_CASE(3,1,2,0)
+ case 22:
+ SUBSTRUCT_CASE(2,3,1,0)
+ case 23:
+ SUBSTRUCT_CASE(3,2,1,0)
+ }
+ return result;
+}
+
+int ResolveMonForme(int species, int forme)
+{
+ switch (species)
+ {
+ case SPECIES_DEOXYS:
+ if (forme != 0 && forme <= 3)
+ return SPECIES_DEOXYS_ATK + forme - 1;
+ break;
+ case SPECIES_WORMADAM:
+ if (forme != 0 && forme <= 2)
+ return SPECIES_WORMADAM_SANDY + forme - 1;
+ break;
+ }
+ return species;
+}
+
+u32 MaskOfFlagNo(int flagno)
+{
+ // This is completely inane.
+ int i;
+ u32 ret = 1;
+ GF_ASSERT(flagno < 32);
+ for (i = 0; i < flagno; i++)
+ ret <<= 1;
+ return ret;
+}
+
+int LowestFlagNo(u32 mask)
+{
+ int i;
+ u32 bit = 1;
+ for (i = 0; i < 32; i++)
+ {
+ if (mask & bit)
+ break;
+ bit <<= 1;
+ }
+ return i;
+}
+
+BOOL IsPokemonLegendaryOrMythical(u16 species)
+{
+ int i;
+ for (i = 0; i < NELEMS(sLegendaryMonsList); i++)
+ {
+ if (species == sLegendaryMonsList[i])
+ return TRUE;
+ }
+ return FALSE;
+}
+
+u16 GetLegendaryMon(u32 idx)
+{
+ if (idx >= NELEMS(sLegendaryMonsList))
+ idx = 0;
+ return sLegendaryMonsList[idx];
+}
+
+BOOL FUN_0206A998(struct Pokemon * pokemon)
+{
+ u16 species = (u16)GetMonData(pokemon, MON_DATA_SPECIES, NULL);
+ return IsPokemonLegendaryOrMythical(species);
+}
+
+BOOL FUN_0206A9AC(struct BoxPokemon * boxmon, struct SaveBlock2 * sb2, u32 heap_id)
+{
+ u32 myId = FUN_020239BC(sb2);
+ u32 otId = GetBoxMonData(boxmon, MON_DATA_OTID, NULL);
+ u32 myGender = FUN_020239CC(sb2);
+ u32 otGender = GetBoxMonData(boxmon, MON_DATA_MET_GENDER, NULL);
+ struct String * r7 = FUN_020239A0(sb2, heap_id);
+ struct String * r6 = FUN_020219F4(OT_NAME_LENGTH + 1, heap_id);
+ BOOL ret = FALSE;
+ GetBoxMonData(boxmon, MON_DATA_OT_NAME_2, r6);
+ if (myId == otId && myGender == otGender && FUN_02021CE0(r7, r6) == 0)
+ ret = TRUE;
+ FUN_02021A20(r6);
+ FUN_02021A20(r7);
+ return ret;
+}
+
+int FUN_0206AA30(int x)
+{
+ switch (x)
+ {
+ case 63:
+ return 2;
+ case 90:
+ case 91:
+ case 92:
+ case 93:
+ case 94:
+ return x - 87;
+ default:
+ if (FUN_0206AE00(x) == 1)
+ return 1;
+ else
+ return 0;
+ case 0:
+ case 1:
+ return x;
+ }
+}
+
+void FUN_0206AA84(struct Pokemon * pokemon)
+{
+ u8 sp0 = 0;
+ u8 sp1[12][2];
+ MIi_CpuClearFast(0, sp1, sizeof(sp1));
+ SetMonData(pokemon, MON_DATA_CAPSULE, &sp0);
+ SetMonData(pokemon, MON_DATA_SEAL_COORDS, sp1);
+}
+
+void FUN_0206AAB4(struct BoxPokemon * boxmon)
+{
+ int i;
+ u8 pp;
+ BOOL decry = AcquireBoxMonLock(boxmon);
+ for (i = 0; i < 4; i++)
+ {
+ if (GetBoxMonData(boxmon, MON_DATA_MOVE1 + i, NULL) != MOVE_NONE)
+ {
+ pp = (u8)GetBoxMonData(boxmon, MON_DATA_MOVE1MAXPP + i, NULL);
+ SetBoxMonData(boxmon, MON_DATA_MOVE1PP + i, &pp);
+ }
+ }
+ ReleaseBoxMonLock(boxmon, decry);
+}
diff --git a/arm9/src/string_util.c b/arm9/src/string_util.c
index e36f1a30..54ad61fc 100644
--- a/arm9/src/string_util.c
+++ b/arm9/src/string_util.c
@@ -1,8 +1,5 @@
#include "string_util.h"
-#define EOS 0xFFFF
-#define NON_DIGIT 0xE2
-
const u16 gDigitTable[] = {
0xA2,
0xA3,
diff --git a/arm9/src/waza.c b/arm9/src/waza.c
new file mode 100644
index 00000000..f394fedd
--- /dev/null
+++ b/arm9/src/waza.c
@@ -0,0 +1,70 @@
+#include "global.h"
+#include "move_data.h"
+#include "filesystem.h"
+#include "constants/moves.h"
+
+#pragma thumb on
+
+void LoadWazaEntry(u16 waza, struct WazaTbl * dest);
+
+// Effectively reads the entirety of the waza_tbl.narc file image.
+// Even though each "file" is only 16 bytes, they are arranged
+// contiguously and in the correct order.
+void LoadAllWazaTbl(struct WazaTbl * dest)
+{
+ ReadFromNarcMemberByIdPair(dest, NARC_POKETOOL_WAZA_WAZA_TBL, 0, 0, (NUM_MOVES + 1) * sizeof(struct WazaTbl));
+}
+
+u32 GetWazaAttr(u16 waza, MoveAttr attr)
+{
+ struct WazaTbl wazaTbl;
+ LoadWazaEntry(waza, &wazaTbl);
+ return GetAttrFromWazaTbl(&wazaTbl, attr);
+}
+
+u8 WazaGetMaxPp(u16 waza, u8 ppUp)
+{
+ u8 pp;
+ if (ppUp > 3)
+ ppUp = 3;
+ pp = (u8)GetWazaAttr(waza, MOVEATTR_PP);
+ return (u8)(pp + (pp * 20 * ppUp) / 100);
+}
+
+u32 GetAttrFromWazaTbl(struct WazaTbl * wazaTbl, MoveAttr attr)
+{
+ switch (attr)
+ {
+ case MOVEATTR_EFFECT:
+ return wazaTbl->effect;
+ case MOVEATTR_UNK1:
+ return wazaTbl->unk2;
+ case MOVEATTR_POWER:
+ return wazaTbl->power;
+ case MOVEATTR_TYPE:
+ return wazaTbl->type;
+ case MOVEATTR_ACCURACY:
+ return wazaTbl->accuracy;
+ case MOVEATTR_PP:
+ return wazaTbl->pp;
+ case MOVEATTR_EFFECT_CHANCE:
+ return wazaTbl->effectChance;
+ case MOVEATTR_UNK7:
+ return wazaTbl->unk8;
+ case MOVEATTR_PRIORTY:
+ return wazaTbl->priority;
+ case MOVEATTR_UNK9:
+ return wazaTbl->unkB;
+ case MOVEATTR_UNK10:
+ return wazaTbl->unkC;
+ case MOVEATTR_CONTEST_TYPE:
+ return wazaTbl->contestType;
+ default:
+ return (u32)wazaTbl;
+ }
+}
+
+void LoadWazaEntry(u16 waza, struct WazaTbl * wazaTbl)
+{
+ ReadWholeNarcMemberByIdPair(wazaTbl, NARC_POKETOOL_WAZA_WAZA_TBL, waza);
+}
diff --git a/files/poketool/personal/evo.json b/files/poketool/personal/evo.json
new file mode 100644
index 00000000..a42181ab
--- /dev/null
+++ b/files/poketool/personal/evo.json
@@ -0,0 +1,3445 @@
+{
+ "evos": [
+ {
+ "species": "NONE",
+ "evos": []
+ },
+ {
+ "species": "BULBASAUR",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "IVYSAUR",
+ "param": 16
+ }
+ ]
+ },
+ {
+ "species": "IVYSAUR",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "VENUSAUR",
+ "param": 32
+ }
+ ]
+ },
+ {
+ "species": "VENUSAUR",
+ "evos": []
+ },
+ {
+ "species": "CHARMANDER",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "CHARMELEON",
+ "param": 16
+ }
+ ]
+ },
+ {
+ "species": "CHARMELEON",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "CHARIZARD",
+ "param": 36
+ }
+ ]
+ },
+ {
+ "species": "CHARIZARD",
+ "evos": []
+ },
+ {
+ "species": "SQUIRTLE",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "WARTORTLE",
+ "param": 16
+ }
+ ]
+ },
+ {
+ "species": "WARTORTLE",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "BLASTOISE",
+ "param": 36
+ }
+ ]
+ },
+ {
+ "species": "BLASTOISE",
+ "evos": []
+ },
+ {
+ "species": "CATERPIE",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "METAPOD",
+ "param": 7
+ }
+ ]
+ },
+ {
+ "species": "METAPOD",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "BUTTERFREE",
+ "param": 10
+ }
+ ]
+ },
+ {
+ "species": "BUTTERFREE",
+ "evos": []
+ },
+ {
+ "species": "WEEDLE",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "KAKUNA",
+ "param": 7
+ }
+ ]
+ },
+ {
+ "species": "KAKUNA",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "BEEDRILL",
+ "param": 10
+ }
+ ]
+ },
+ {
+ "species": "BEEDRILL",
+ "evos": []
+ },
+ {
+ "species": "PIDGEY",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "PIDGEOTTO",
+ "param": 18
+ }
+ ]
+ },
+ {
+ "species": "PIDGEOTTO",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "PIDGEOT",
+ "param": 36
+ }
+ ]
+ },
+ {
+ "species": "PIDGEOT",
+ "evos": []
+ },
+ {
+ "species": "RATTATA",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "RATICATE",
+ "param": 20
+ }
+ ]
+ },
+ {
+ "species": "RATICATE",
+ "evos": []
+ },
+ {
+ "species": "SPEAROW",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "FEAROW",
+ "param": 20
+ }
+ ]
+ },
+ {
+ "species": "FEAROW",
+ "evos": []
+ },
+ {
+ "species": "EKANS",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "ARBOK",
+ "param": 22
+ }
+ ]
+ },
+ {
+ "species": "ARBOK",
+ "evos": []
+ },
+ {
+ "species": "PIKACHU",
+ "evos": [
+ {
+ "method": "EVO_STONE",
+ "target": "RAICHU",
+ "param": "ITEM_THUNDERSTONE"
+ }
+ ]
+ },
+ {
+ "species": "RAICHU",
+ "evos": []
+ },
+ {
+ "species": "SANDSHREW",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "SANDSLASH",
+ "param": 22
+ }
+ ]
+ },
+ {
+ "species": "SANDSLASH",
+ "evos": []
+ },
+ {
+ "species": "NIDORAN_F",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "NIDORINA",
+ "param": 16
+ }
+ ]
+ },
+ {
+ "species": "NIDORINA",
+ "evos": [
+ {
+ "method": "EVO_STONE",
+ "target": "NIDOQUEEN",
+ "param": "ITEM_MOON_STONE"
+ }
+ ]
+ },
+ {
+ "species": "NIDOQUEEN",
+ "evos": []
+ },
+ {
+ "species": "NIDORAN_M",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "NIDORINO",
+ "param": 16
+ }
+ ]
+ },
+ {
+ "species": "NIDORINO",
+ "evos": [
+ {
+ "method": "EVO_STONE",
+ "target": "NIDOKING",
+ "param": "ITEM_MOON_STONE"
+ }
+ ]
+ },
+ {
+ "species": "NIDOKING",
+ "evos": []
+ },
+ {
+ "species": "CLEFAIRY",
+ "evos": [
+ {
+ "method": "EVO_STONE",
+ "target": "CLEFABLE",
+ "param": "ITEM_MOON_STONE"
+ }
+ ]
+ },
+ {
+ "species": "CLEFABLE",
+ "evos": []
+ },
+ {
+ "species": "VULPIX",
+ "evos": [
+ {
+ "method": "EVO_STONE",
+ "target": "NINETALES",
+ "param": "ITEM_FIRE_STONE"
+ }
+ ]
+ },
+ {
+ "species": "NINETALES",
+ "evos": []
+ },
+ {
+ "species": "JIGGLYPUFF",
+ "evos": [
+ {
+ "method": "EVO_STONE",
+ "target": "WIGGLYTUFF",
+ "param": "ITEM_MOON_STONE"
+ }
+ ]
+ },
+ {
+ "species": "WIGGLYTUFF",
+ "evos": []
+ },
+ {
+ "species": "ZUBAT",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "GOLBAT",
+ "param": 22
+ }
+ ]
+ },
+ {
+ "species": "GOLBAT",
+ "evos": [
+ {
+ "method": "EVO_FRIENDSHIP",
+ "target": "CROBAT"
+ }
+ ]
+ },
+ {
+ "species": "ODDISH",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "GLOOM",
+ "param": 21
+ }
+ ]
+ },
+ {
+ "species": "GLOOM",
+ "evos": [
+ {
+ "method": "EVO_STONE",
+ "target": "VILEPLUME",
+ "param": "ITEM_LEAF_STONE"
+ },
+ {
+ "method": "EVO_STONE",
+ "target": "BELLOSSOM",
+ "param": "ITEM_SUN_STONE"
+ }
+ ]
+ },
+ {
+ "species": "VILEPLUME",
+ "evos": []
+ },
+ {
+ "species": "PARAS",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "PARASECT",
+ "param": 24
+ }
+ ]
+ },
+ {
+ "species": "PARASECT",
+ "evos": []
+ },
+ {
+ "species": "VENONAT",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "VENOMOTH",
+ "param": 31
+ }
+ ]
+ },
+ {
+ "species": "VENOMOTH",
+ "evos": []
+ },
+ {
+ "species": "DIGLETT",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "DUGTRIO",
+ "param": 26
+ }
+ ]
+ },
+ {
+ "species": "DUGTRIO",
+ "evos": []
+ },
+ {
+ "species": "MEOWTH",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "PERSIAN",
+ "param": 28
+ }
+ ]
+ },
+ {
+ "species": "PERSIAN",
+ "evos": []
+ },
+ {
+ "species": "PSYDUCK",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "GOLDUCK",
+ "param": 33
+ }
+ ]
+ },
+ {
+ "species": "GOLDUCK",
+ "evos": []
+ },
+ {
+ "species": "MANKEY",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "PRIMEAPE",
+ "param": 28
+ }
+ ]
+ },
+ {
+ "species": "PRIMEAPE",
+ "evos": []
+ },
+ {
+ "species": "GROWLITHE",
+ "evos": [
+ {
+ "method": "EVO_STONE",
+ "target": "ARCANINE",
+ "param": "ITEM_FIRE_STONE"
+ }
+ ]
+ },
+ {
+ "species": "ARCANINE",
+ "evos": []
+ },
+ {
+ "species": "POLIWAG",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "POLIWHIRL",
+ "param": 25
+ }
+ ]
+ },
+ {
+ "species": "POLIWHIRL",
+ "evos": [
+ {
+ "method": "EVO_STONE",
+ "target": "POLIWRATH",
+ "param": "ITEM_WATER_STONE"
+ },
+ {
+ "method": "EVO_TRADE_ITEM",
+ "target": "POLITOED",
+ "param": "ITEM_KINGS_ROCK"
+ }
+ ]
+ },
+ {
+ "species": "POLIWRATH",
+ "evos": []
+ },
+ {
+ "species": "ABRA",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "KADABRA",
+ "param": 16
+ }
+ ]
+ },
+ {
+ "species": "KADABRA",
+ "evos": [
+ {
+ "method": "EVO_TRADE",
+ "target": "ALAKAZAM"
+ }
+ ]
+ },
+ {
+ "species": "ALAKAZAM",
+ "evos": []
+ },
+ {
+ "species": "MACHOP",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "MACHOKE",
+ "param": 28
+ }
+ ]
+ },
+ {
+ "species": "MACHOKE",
+ "evos": [
+ {
+ "method": "EVO_TRADE",
+ "target": "MACHAMP"
+ }
+ ]
+ },
+ {
+ "species": "MACHAMP",
+ "evos": []
+ },
+ {
+ "species": "BELLSPROUT",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "WEEPINBELL",
+ "param": 21
+ }
+ ]
+ },
+ {
+ "species": "WEEPINBELL",
+ "evos": [
+ {
+ "method": "EVO_STONE",
+ "target": "VICTREEBEL",
+ "param": "ITEM_LEAF_STONE"
+ }
+ ]
+ },
+ {
+ "species": "VICTREEBEL",
+ "evos": []
+ },
+ {
+ "species": "TENTACOOL",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "TENTACRUEL",
+ "param": 30
+ }
+ ]
+ },
+ {
+ "species": "TENTACRUEL",
+ "evos": []
+ },
+ {
+ "species": "GEODUDE",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "GRAVELER",
+ "param": 25
+ }
+ ]
+ },
+ {
+ "species": "GRAVELER",
+ "evos": [
+ {
+ "method": "EVO_TRADE",
+ "target": "GOLEM"
+ }
+ ]
+ },
+ {
+ "species": "GOLEM",
+ "evos": []
+ },
+ {
+ "species": "PONYTA",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "RAPIDASH",
+ "param": 40
+ }
+ ]
+ },
+ {
+ "species": "RAPIDASH",
+ "evos": []
+ },
+ {
+ "species": "SLOWPOKE",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "SLOWBRO",
+ "param": 37
+ },
+ {
+ "method": "EVO_TRADE_ITEM",
+ "target": "SLOWKING",
+ "param": "ITEM_KINGS_ROCK"
+ }
+ ]
+ },
+ {
+ "species": "SLOWBRO",
+ "evos": []
+ },
+ {
+ "species": "MAGNEMITE",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "MAGNETON",
+ "param": 30
+ }
+ ]
+ },
+ {
+ "species": "MAGNETON",
+ "evos": [
+ {
+ "method": "EVO_CORONET",
+ "target": "MAGNEZONE"
+ }
+ ]
+ },
+ {
+ "species": "FARFETCHD",
+ "evos": []
+ },
+ {
+ "species": "DODUO",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "DODRIO",
+ "param": 31
+ }
+ ]
+ },
+ {
+ "species": "DODRIO",
+ "evos": []
+ },
+ {
+ "species": "SEEL",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "DEWGONG",
+ "param": 34
+ }
+ ]
+ },
+ {
+ "species": "DEWGONG",
+ "evos": []
+ },
+ {
+ "species": "GRIMER",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "MUK",
+ "param": 38
+ }
+ ]
+ },
+ {
+ "species": "MUK",
+ "evos": []
+ },
+ {
+ "species": "SHELLDER",
+ "evos": [
+ {
+ "method": "EVO_STONE",
+ "target": "CLOYSTER",
+ "param": "ITEM_WATER_STONE"
+ }
+ ]
+ },
+ {
+ "species": "CLOYSTER",
+ "evos": []
+ },
+ {
+ "species": "GASTLY",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "HAUNTER",
+ "param": 25
+ }
+ ]
+ },
+ {
+ "species": "HAUNTER",
+ "evos": [
+ {
+ "method": "EVO_TRADE",
+ "target": "GENGAR"
+ }
+ ]
+ },
+ {
+ "species": "GENGAR",
+ "evos": []
+ },
+ {
+ "species": "ONIX",
+ "evos": [
+ {
+ "method": "EVO_TRADE_ITEM",
+ "target": "STEELIX",
+ "param": "ITEM_METAL_COAT"
+ }
+ ]
+ },
+ {
+ "species": "DROWZEE",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "HYPNO",
+ "param": 26
+ }
+ ]
+ },
+ {
+ "species": "HYPNO",
+ "evos": []
+ },
+ {
+ "species": "KRABBY",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "KINGLER",
+ "param": 28
+ }
+ ]
+ },
+ {
+ "species": "KINGLER",
+ "evos": []
+ },
+ {
+ "species": "VOLTORB",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "ELECTRODE",
+ "param": 30
+ }
+ ]
+ },
+ {
+ "species": "ELECTRODE",
+ "evos": []
+ },
+ {
+ "species": "EXEGGCUTE",
+ "evos": [
+ {
+ "method": "EVO_STONE",
+ "target": "EXEGGUTOR",
+ "param": "ITEM_LEAF_STONE"
+ }
+ ]
+ },
+ {
+ "species": "EXEGGUTOR",
+ "evos": []
+ },
+ {
+ "species": "CUBONE",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "MAROWAK",
+ "param": 28
+ }
+ ]
+ },
+ {
+ "species": "MAROWAK",
+ "evos": []
+ },
+ {
+ "species": "HITMONLEE",
+ "evos": []
+ },
+ {
+ "species": "HITMONCHAN",
+ "evos": []
+ },
+ {
+ "species": "LICKITUNG",
+ "evos": [
+ {
+ "method": "EVO_HAS_MOVE",
+ "target": "LICKILICKY",
+ "param": "MOVE_ROLLOUT"
+ }
+ ]
+ },
+ {
+ "species": "KOFFING",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "WEEZING",
+ "param": 35
+ }
+ ]
+ },
+ {
+ "species": "WEEZING",
+ "evos": []
+ },
+ {
+ "species": "RHYHORN",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "RHYDON",
+ "param": 42
+ }
+ ]
+ },
+ {
+ "species": "RHYDON",
+ "evos": [
+ {
+ "method": "EVO_TRADE_ITEM",
+ "target": "RHYPERIOR",
+ "param": "ITEM_PROTECTOR"
+ }
+ ]
+ },
+ {
+ "species": "CHANSEY",
+ "evos": [
+ {
+ "method": "EVO_FRIENDSHIP",
+ "target": "BLISSEY"
+ }
+ ]
+ },
+ {
+ "species": "TANGELA",
+ "evos": [
+ {
+ "method": "EVO_HAS_MOVE",
+ "target": "TANGROWTH",
+ "param": "MOVE_ANCIENT_POWER"
+ }
+ ]
+ },
+ {
+ "species": "KANGASKHAN",
+ "evos": []
+ },
+ {
+ "species": "HORSEA",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "SEADRA",
+ "param": 32
+ }
+ ]
+ },
+ {
+ "species": "SEADRA",
+ "evos": [
+ {
+ "method": "EVO_TRADE_ITEM",
+ "target": "KINGDRA",
+ "param": "ITEM_DRAGON_SCALE"
+ }
+ ]
+ },
+ {
+ "species": "GOLDEEN",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "SEAKING",
+ "param": 33
+ }
+ ]
+ },
+ {
+ "species": "SEAKING",
+ "evos": []
+ },
+ {
+ "species": "STARYU",
+ "evos": [
+ {
+ "method": "EVO_STONE",
+ "target": "STARMIE",
+ "param": "ITEM_WATER_STONE"
+ }
+ ]
+ },
+ {
+ "species": "STARMIE",
+ "evos": []
+ },
+ {
+ "species": "MR_MIME",
+ "evos": []
+ },
+ {
+ "species": "SCYTHER",
+ "evos": [
+ {
+ "method": "EVO_TRADE_ITEM",
+ "target": "SCIZOR",
+ "param": "ITEM_METAL_COAT"
+ }
+ ]
+ },
+ {
+ "species": "JYNX",
+ "evos": []
+ },
+ {
+ "species": "ELECTABUZZ",
+ "evos": [
+ {
+ "method": "EVO_TRADE_ITEM",
+ "target": "ELECTIVIRE",
+ "param": "ITEM_ELECTIRIZER"
+ }
+ ]
+ },
+ {
+ "species": "MAGMAR",
+ "evos": [
+ {
+ "method": "EVO_TRADE_ITEM",
+ "target": "MAGMORTAR",
+ "param": "ITEM_MAGMARIZER"
+ }
+ ]
+ },
+ {
+ "species": "PINSIR",
+ "evos": []
+ },
+ {
+ "species": "TAUROS",
+ "evos": []
+ },
+ {
+ "species": "MAGIKARP",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "GYARADOS",
+ "param": 20
+ }
+ ]
+ },
+ {
+ "species": "GYARADOS",
+ "evos": []
+ },
+ {
+ "species": "LAPRAS",
+ "evos": []
+ },
+ {
+ "species": "DITTO",
+ "evos": []
+ },
+ {
+ "species": "EEVEE",
+ "evos": [
+ {
+ "method": "EVO_ETERNA",
+ "target": "LEAFEON"
+ },
+ {
+ "method": "EVO_ROUTE217",
+ "target": "GLACEON"
+ },
+ {
+ "method": "EVO_STONE",
+ "target": "JOLTEON",
+ "param": "ITEM_THUNDERSTONE"
+ },
+ {
+ "method": "EVO_STONE",
+ "target": "VAPOREON",
+ "param": "ITEM_WATER_STONE"
+ },
+ {
+ "method": "EVO_STONE",
+ "target": "FLAREON",
+ "param": "ITEM_FIRE_STONE"
+ },
+ {
+ "method": "EVO_FRIENDSHIP_DAY",
+ "target": "ESPEON"
+ },
+ {
+ "method": "EVO_FRIENDSHIP_NIGHT",
+ "target": "UMBREON"
+ }
+ ]
+ },
+ {
+ "species": "VAPOREON",
+ "evos": []
+ },
+ {
+ "species": "JOLTEON",
+ "evos": []
+ },
+ {
+ "species": "FLAREON",
+ "evos": []
+ },
+ {
+ "species": "PORYGON",
+ "evos": [
+ {
+ "method": "EVO_TRADE_ITEM",
+ "target": "PORYGON2",
+ "param": "ITEM_UPGRADE"
+ }
+ ]
+ },
+ {
+ "species": "OMANYTE",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "OMASTAR",
+ "param": 40
+ }
+ ]
+ },
+ {
+ "species": "OMASTAR",
+ "evos": []
+ },
+ {
+ "species": "KABUTO",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "KABUTOPS",
+ "param": 40
+ }
+ ]
+ },
+ {
+ "species": "KABUTOPS",
+ "evos": []
+ },
+ {
+ "species": "AERODACTYL",
+ "evos": []
+ },
+ {
+ "species": "SNORLAX",
+ "evos": []
+ },
+ {
+ "species": "ARTICUNO",
+ "evos": []
+ },
+ {
+ "species": "ZAPDOS",
+ "evos": []
+ },
+ {
+ "species": "MOLTRES",
+ "evos": []
+ },
+ {
+ "species": "DRATINI",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "DRAGONAIR",
+ "param": 30
+ }
+ ]
+ },
+ {
+ "species": "DRAGONAIR",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "DRAGONITE",
+ "param": 55
+ }
+ ]
+ },
+ {
+ "species": "DRAGONITE",
+ "evos": []
+ },
+ {
+ "species": "MEWTWO",
+ "evos": []
+ },
+ {
+ "species": "MEW",
+ "evos": []
+ },
+ {
+ "species": "CHIKORITA",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "BAYLEEF",
+ "param": 16
+ }
+ ]
+ },
+ {
+ "species": "BAYLEEF",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "MEGANIUM",
+ "param": 32
+ }
+ ]
+ },
+ {
+ "species": "MEGANIUM",
+ "evos": []
+ },
+ {
+ "species": "CYNDAQUIL",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "QUILAVA",
+ "param": 14
+ }
+ ]
+ },
+ {
+ "species": "QUILAVA",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "TYPHLOSION",
+ "param": 36
+ }
+ ]
+ },
+ {
+ "species": "TYPHLOSION",
+ "evos": []
+ },
+ {
+ "species": "TOTODILE",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "CROCONAW",
+ "param": 18
+ }
+ ]
+ },
+ {
+ "species": "CROCONAW",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "FERALIGATR",
+ "param": 30
+ }
+ ]
+ },
+ {
+ "species": "FERALIGATR",
+ "evos": []
+ },
+ {
+ "species": "SENTRET",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "FURRET",
+ "param": 15
+ }
+ ]
+ },
+ {
+ "species": "FURRET",
+ "evos": []
+ },
+ {
+ "species": "HOOTHOOT",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "NOCTOWL",
+ "param": 20
+ }
+ ]
+ },
+ {
+ "species": "NOCTOWL",
+ "evos": []
+ },
+ {
+ "species": "LEDYBA",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "LEDIAN",
+ "param": 18
+ }
+ ]
+ },
+ {
+ "species": "LEDIAN",
+ "evos": []
+ },
+ {
+ "species": "SPINARAK",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "ARIADOS",
+ "param": 22
+ }
+ ]
+ },
+ {
+ "species": "ARIADOS",
+ "evos": []
+ },
+ {
+ "species": "CROBAT",
+ "evos": []
+ },
+ {
+ "species": "CHINCHOU",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "LANTURN",
+ "param": 27
+ }
+ ]
+ },
+ {
+ "species": "LANTURN",
+ "evos": []
+ },
+ {
+ "species": "PICHU",
+ "evos": [
+ {
+ "method": "EVO_FRIENDSHIP",
+ "target": "PIKACHU"
+ }
+ ]
+ },
+ {
+ "species": "CLEFFA",
+ "evos": [
+ {
+ "method": "EVO_FRIENDSHIP",
+ "target": "CLEFAIRY"
+ }
+ ]
+ },
+ {
+ "species": "IGGLYBUFF",
+ "evos": [
+ {
+ "method": "EVO_FRIENDSHIP",
+ "target": "JIGGLYPUFF"
+ }
+ ]
+ },
+ {
+ "species": "TOGEPI",
+ "evos": [
+ {
+ "method": "EVO_FRIENDSHIP",
+ "target": "TOGETIC"
+ }
+ ]
+ },
+ {
+ "species": "TOGETIC",
+ "evos": [
+ {
+ "method": "EVO_STONE",
+ "target": "TOGEKISS",
+ "param": "ITEM_SHINY_STONE"
+ }
+ ]
+ },
+ {
+ "species": "NATU",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "XATU",
+ "param": 25
+ }
+ ]
+ },
+ {
+ "species": "XATU",
+ "evos": []
+ },
+ {
+ "species": "MAREEP",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "FLAAFFY",
+ "param": 15
+ }
+ ]
+ },
+ {
+ "species": "FLAAFFY",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "AMPHAROS",
+ "param": 30
+ }
+ ]
+ },
+ {
+ "species": "AMPHAROS",
+ "evos": []
+ },
+ {
+ "species": "BELLOSSOM",
+ "evos": []
+ },
+ {
+ "species": "MARILL",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "AZUMARILL",
+ "param": 18
+ }
+ ]
+ },
+ {
+ "species": "AZUMARILL",
+ "evos": []
+ },
+ {
+ "species": "SUDOWOODO",
+ "evos": []
+ },
+ {
+ "species": "POLITOED",
+ "evos": []
+ },
+ {
+ "species": "HOPPIP",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "SKIPLOOM",
+ "param": 18
+ }
+ ]
+ },
+ {
+ "species": "SKIPLOOM",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "JUMPLUFF",
+ "param": 27
+ }
+ ]
+ },
+ {
+ "species": "JUMPLUFF",
+ "evos": []
+ },
+ {
+ "species": "AIPOM",
+ "evos": [
+ {
+ "method": "EVO_HAS_MOVE",
+ "target": "AMBIPOM",
+ "param": "MOVE_DOUBLE_HIT"
+ }
+ ]
+ },
+ {
+ "species": "SUNKERN",
+ "evos": [
+ {
+ "method": "EVO_STONE",
+ "target": "SUNFLORA",
+ "param": "ITEM_SUN_STONE"
+ }
+ ]
+ },
+ {
+ "species": "SUNFLORA",
+ "evos": []
+ },
+ {
+ "species": "YANMA",
+ "evos": [
+ {
+ "method": "EVO_HAS_MOVE",
+ "target": "YANMEGA",
+ "param": "MOVE_ANCIENT_POWER"
+ }
+ ]
+ },
+ {
+ "species": "WOOPER",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "QUAGSIRE",
+ "param": 20
+ }
+ ]
+ },
+ {
+ "species": "QUAGSIRE",
+ "evos": []
+ },
+ {
+ "species": "ESPEON",
+ "evos": []
+ },
+ {
+ "species": "UMBREON",
+ "evos": []
+ },
+ {
+ "species": "MURKROW",
+ "evos": [
+ {
+ "method": "EVO_STONE",
+ "target": "HONCHKROW",
+ "param": "ITEM_DUSK_STONE"
+ }
+ ]
+ },
+ {
+ "species": "SLOWKING",
+ "evos": []
+ },
+ {
+ "species": "MISDREAVUS",
+ "evos": [
+ {
+ "method": "EVO_STONE",
+ "target": "MISMAGIUS",
+ "param": "ITEM_DUSK_STONE"
+ }
+ ]
+ },
+ {
+ "species": "UNOWN",
+ "evos": []
+ },
+ {
+ "species": "WOBBUFFET",
+ "evos": []
+ },
+ {
+ "species": "GIRAFARIG",
+ "evos": []
+ },
+ {
+ "species": "PINECO",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "FORRETRESS",
+ "param": 31
+ }
+ ]
+ },
+ {
+ "species": "FORRETRESS",
+ "evos": []
+ },
+ {
+ "species": "DUNSPARCE",
+ "evos": []
+ },
+ {
+ "species": "GLIGAR",
+ "evos": [
+ {
+ "method": "EVO_ITEM_NIGHT",
+ "target": "GLISCOR",
+ "param": "ITEM_RAZOR_FANG"
+ }
+ ]
+ },
+ {
+ "species": "STEELIX",
+ "evos": []
+ },
+ {
+ "species": "SNUBBULL",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "GRANBULL",
+ "param": 23
+ }
+ ]
+ },
+ {
+ "species": "GRANBULL",
+ "evos": []
+ },
+ {
+ "species": "QWILFISH",
+ "evos": []
+ },
+ {
+ "species": "SCIZOR",
+ "evos": []
+ },
+ {
+ "species": "SHUCKLE",
+ "evos": []
+ },
+ {
+ "species": "HERACROSS",
+ "evos": []
+ },
+ {
+ "species": "SNEASEL",
+ "evos": [
+ {
+ "method": "EVO_ITEM_NIGHT",
+ "target": "WEAVILE",
+ "param": "ITEM_RAZOR_CLAW"
+ }
+ ]
+ },
+ {
+ "species": "TEDDIURSA",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "URSARING",
+ "param": 30
+ }
+ ]
+ },
+ {
+ "species": "URSARING",
+ "evos": []
+ },
+ {
+ "species": "SLUGMA",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "MAGCARGO",
+ "param": 38
+ }
+ ]
+ },
+ {
+ "species": "MAGCARGO",
+ "evos": []
+ },
+ {
+ "species": "SWINUB",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "PILOSWINE",
+ "param": 33
+ }
+ ]
+ },
+ {
+ "species": "PILOSWINE",
+ "evos": [
+ {
+ "method": "EVO_HAS_MOVE",
+ "target": "MAMOSWINE",
+ "param": "MOVE_ANCIENT_POWER"
+ }
+ ]
+ },
+ {
+ "species": "CORSOLA",
+ "evos": []
+ },
+ {
+ "species": "REMORAID",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "OCTILLERY",
+ "param": 25
+ }
+ ]
+ },
+ {
+ "species": "OCTILLERY",
+ "evos": []
+ },
+ {
+ "species": "DELIBIRD",
+ "evos": []
+ },
+ {
+ "species": "MANTINE",
+ "evos": []
+ },
+ {
+ "species": "SKARMORY",
+ "evos": []
+ },
+ {
+ "species": "HOUNDOUR",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "HOUNDOOM",
+ "param": 24
+ }
+ ]
+ },
+ {
+ "species": "HOUNDOOM",
+ "evos": []
+ },
+ {
+ "species": "KINGDRA",
+ "evos": []
+ },
+ {
+ "species": "PHANPY",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "DONPHAN",
+ "param": 25
+ }
+ ]
+ },
+ {
+ "species": "DONPHAN",
+ "evos": []
+ },
+ {
+ "species": "PORYGON2",
+ "evos": [
+ {
+ "method": "EVO_TRADE_ITEM",
+ "target": "PORYGON_Z",
+ "param": "ITEM_DUBIOUS_DISC"
+ }
+ ]
+ },
+ {
+ "species": "STANTLER",
+ "evos": []
+ },
+ {
+ "species": "SMEARGLE",
+ "evos": []
+ },
+ {
+ "species": "TYROGUE",
+ "evos": [
+ {
+ "method": "EVO_LEVEL_ATK_LT_DEF",
+ "target": "HITMONCHAN",
+ "param": 20
+ },
+ {
+ "method": "EVO_LEVEL_ATK_GT_DEF",
+ "target": "HITMONLEE",
+ "param": 20
+ },
+ {
+ "method": "EVO_LEVEL_ATK_EQ_DEF",
+ "target": "HITMONTOP",
+ "param": 20
+ }
+ ]
+ },
+ {
+ "species": "HITMONTOP",
+ "evos": []
+ },
+ {
+ "species": "SMOOCHUM",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "JYNX",
+ "param": 30
+ }
+ ]
+ },
+ {
+ "species": "ELEKID",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "ELECTABUZZ",
+ "param": 30
+ }
+ ]
+ },
+ {
+ "species": "MAGBY",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "MAGMAR",
+ "param": 30
+ }
+ ]
+ },
+ {
+ "species": "MILTANK",
+ "evos": []
+ },
+ {
+ "species": "BLISSEY",
+ "evos": []
+ },
+ {
+ "species": "RAIKOU",
+ "evos": []
+ },
+ {
+ "species": "ENTEI",
+ "evos": []
+ },
+ {
+ "species": "SUICUNE",
+ "evos": []
+ },
+ {
+ "species": "LARVITAR",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "PUPITAR",
+ "param": 30
+ }
+ ]
+ },
+ {
+ "species": "PUPITAR",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "TYRANITAR",
+ "param": 55
+ }
+ ]
+ },
+ {
+ "species": "TYRANITAR",
+ "evos": []
+ },
+ {
+ "species": "LUGIA",
+ "evos": []
+ },
+ {
+ "species": "HO_OH",
+ "evos": []
+ },
+ {
+ "species": "CELEBI",
+ "evos": []
+ },
+ {
+ "species": "TREECKO",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "GROVYLE",
+ "param": 16
+ }
+ ]
+ },
+ {
+ "species": "GROVYLE",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "SCEPTILE",
+ "param": 36
+ }
+ ]
+ },
+ {
+ "species": "SCEPTILE",
+ "evos": []
+ },
+ {
+ "species": "TORCHIC",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "COMBUSKEN",
+ "param": 16
+ }
+ ]
+ },
+ {
+ "species": "COMBUSKEN",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "BLAZIKEN",
+ "param": 36
+ }
+ ]
+ },
+ {
+ "species": "BLAZIKEN",
+ "evos": []
+ },
+ {
+ "species": "MUDKIP",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "MARSHTOMP",
+ "param": 16
+ }
+ ]
+ },
+ {
+ "species": "MARSHTOMP",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "SWAMPERT",
+ "param": 36
+ }
+ ]
+ },
+ {
+ "species": "SWAMPERT",
+ "evos": []
+ },
+ {
+ "species": "POOCHYENA",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "MIGHTYENA",
+ "param": 18
+ }
+ ]
+ },
+ {
+ "species": "MIGHTYENA",
+ "evos": []
+ },
+ {
+ "species": "ZIGZAGOON",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "LINOONE",
+ "param": 20
+ }
+ ]
+ },
+ {
+ "species": "LINOONE",
+ "evos": []
+ },
+ {
+ "species": "WURMPLE",
+ "evos": [
+ {
+ "method": "EVO_LEVEL_PID_LO",
+ "target": "SILCOON",
+ "param": 7
+ },
+ {
+ "method": "EVO_LEVEL_PID_HI",
+ "target": "CASCOON",
+ "param": 7
+ }
+ ]
+ },
+ {
+ "species": "SILCOON",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "BEAUTIFLY",
+ "param": 10
+ }
+ ]
+ },
+ {
+ "species": "BEAUTIFLY",
+ "evos": []
+ },
+ {
+ "species": "CASCOON",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "DUSTOX",
+ "param": 10
+ }
+ ]
+ },
+ {
+ "species": "DUSTOX",
+ "evos": []
+ },
+ {
+ "species": "LOTAD",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "LOMBRE",
+ "param": 14
+ }
+ ]
+ },
+ {
+ "species": "LOMBRE",
+ "evos": [
+ {
+ "method": "EVO_STONE",
+ "target": "LUDICOLO",
+ "param": "ITEM_WATER_STONE"
+ }
+ ]
+ },
+ {
+ "species": "LUDICOLO",
+ "evos": []
+ },
+ {
+ "species": "SEEDOT",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "NUZLEAF",
+ "param": 14
+ }
+ ]
+ },
+ {
+ "species": "NUZLEAF",
+ "evos": [
+ {
+ "method": "EVO_STONE",
+ "target": "SHIFTRY",
+ "param": "ITEM_LEAF_STONE"
+ }
+ ]
+ },
+ {
+ "species": "SHIFTRY",
+ "evos": []
+ },
+ {
+ "species": "TAILLOW",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "SWELLOW",
+ "param": 22
+ }
+ ]
+ },
+ {
+ "species": "SWELLOW",
+ "evos": []
+ },
+ {
+ "species": "WINGULL",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "PELIPPER",
+ "param": 25
+ }
+ ]
+ },
+ {
+ "species": "PELIPPER",
+ "evos": []
+ },
+ {
+ "species": "RALTS",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "KIRLIA",
+ "param": 20
+ }
+ ]
+ },
+ {
+ "species": "KIRLIA",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "GARDEVOIR",
+ "param": 30
+ },
+ {
+ "method": "EVO_STONE_MALE",
+ "target": "GALLADE",
+ "param": "ITEM_DAWN_STONE"
+ }
+ ]
+ },
+ {
+ "species": "GARDEVOIR",
+ "evos": []
+ },
+ {
+ "species": "SURSKIT",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "MASQUERAIN",
+ "param": 22
+ }
+ ]
+ },
+ {
+ "species": "MASQUERAIN",
+ "evos": []
+ },
+ {
+ "species": "SHROOMISH",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "BRELOOM",
+ "param": 23
+ }
+ ]
+ },
+ {
+ "species": "BRELOOM",
+ "evos": []
+ },
+ {
+ "species": "SLAKOTH",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "VIGOROTH",
+ "param": 18
+ }
+ ]
+ },
+ {
+ "species": "VIGOROTH",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "SLAKING",
+ "param": 36
+ }
+ ]
+ },
+ {
+ "species": "SLAKING",
+ "evos": []
+ },
+ {
+ "species": "NINCADA",
+ "evos": [
+ {
+ "method": "EVO_LEVEL_NINJASK",
+ "target": "NINJASK",
+ "param": 20
+ },
+ {
+ "method": "EVO_LEVEL_SHEDINJA",
+ "target": "SHEDINJA",
+ "param": 20
+ }
+ ]
+ },
+ {
+ "species": "NINJASK",
+ "evos": []
+ },
+ {
+ "species": "SHEDINJA",
+ "evos": []
+ },
+ {
+ "species": "WHISMUR",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "LOUDRED",
+ "param": 20
+ }
+ ]
+ },
+ {
+ "species": "LOUDRED",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "EXPLOUD",
+ "param": 40
+ }
+ ]
+ },
+ {
+ "species": "EXPLOUD",
+ "evos": []
+ },
+ {
+ "species": "MAKUHITA",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "HARIYAMA",
+ "param": 24
+ }
+ ]
+ },
+ {
+ "species": "HARIYAMA",
+ "evos": []
+ },
+ {
+ "species": "AZURILL",
+ "evos": [
+ {
+ "method": "EVO_FRIENDSHIP",
+ "target": "MARILL"
+ }
+ ]
+ },
+ {
+ "species": "NOSEPASS",
+ "evos": [
+ {
+ "method": "EVO_CORONET",
+ "target": "PROBOPASS"
+ }
+ ]
+ },
+ {
+ "species": "SKITTY",
+ "evos": [
+ {
+ "method": "EVO_STONE",
+ "target": "DELCATTY",
+ "param": "ITEM_MOON_STONE"
+ }
+ ]
+ },
+ {
+ "species": "DELCATTY",
+ "evos": []
+ },
+ {
+ "species": "SABLEYE",
+ "evos": []
+ },
+ {
+ "species": "MAWILE",
+ "evos": []
+ },
+ {
+ "species": "ARON",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "LAIRON",
+ "param": 32
+ }
+ ]
+ },
+ {
+ "species": "LAIRON",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "AGGRON",
+ "param": 42
+ }
+ ]
+ },
+ {
+ "species": "AGGRON",
+ "evos": []
+ },
+ {
+ "species": "MEDITITE",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "MEDICHAM",
+ "param": 37
+ }
+ ]
+ },
+ {
+ "species": "MEDICHAM",
+ "evos": []
+ },
+ {
+ "species": "ELECTRIKE",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "MANECTRIC",
+ "param": 26
+ }
+ ]
+ },
+ {
+ "species": "MANECTRIC",
+ "evos": []
+ },
+ {
+ "species": "PLUSLE",
+ "evos": []
+ },
+ {
+ "species": "MINUN",
+ "evos": []
+ },
+ {
+ "species": "VOLBEAT",
+ "evos": []
+ },
+ {
+ "species": "ILLUMISE",
+ "evos": []
+ },
+ {
+ "species": "ROSELIA",
+ "evos": [
+ {
+ "method": "EVO_STONE",
+ "target": "ROSERADE",
+ "param": "ITEM_SHINY_STONE"
+ }
+ ]
+ },
+ {
+ "species": "GULPIN",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "SWALOT",
+ "param": 26
+ }
+ ]
+ },
+ {
+ "species": "SWALOT",
+ "evos": []
+ },
+ {
+ "species": "CARVANHA",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "SHARPEDO",
+ "param": 30
+ }
+ ]
+ },
+ {
+ "species": "SHARPEDO",
+ "evos": []
+ },
+ {
+ "species": "WAILMER",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "WAILORD",
+ "param": 40
+ }
+ ]
+ },
+ {
+ "species": "WAILORD",
+ "evos": []
+ },
+ {
+ "species": "NUMEL",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "CAMERUPT",
+ "param": 33
+ }
+ ]
+ },
+ {
+ "species": "CAMERUPT",
+ "evos": []
+ },
+ {
+ "species": "TORKOAL",
+ "evos": []
+ },
+ {
+ "species": "SPOINK",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "GRUMPIG",
+ "param": 32
+ }
+ ]
+ },
+ {
+ "species": "GRUMPIG",
+ "evos": []
+ },
+ {
+ "species": "SPINDA",
+ "evos": []
+ },
+ {
+ "species": "TRAPINCH",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "VIBRAVA",
+ "param": 35
+ }
+ ]
+ },
+ {
+ "species": "VIBRAVA",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "FLYGON",
+ "param": 45
+ }
+ ]
+ },
+ {
+ "species": "FLYGON",
+ "evos": []
+ },
+ {
+ "species": "CACNEA",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "CACTURNE",
+ "param": 32
+ }
+ ]
+ },
+ {
+ "species": "CACTURNE",
+ "evos": []
+ },
+ {
+ "species": "SWABLU",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "ALTARIA",
+ "param": 35
+ }
+ ]
+ },
+ {
+ "species": "ALTARIA",
+ "evos": []
+ },
+ {
+ "species": "ZANGOOSE",
+ "evos": []
+ },
+ {
+ "species": "SEVIPER",
+ "evos": []
+ },
+ {
+ "species": "LUNATONE",
+ "evos": []
+ },
+ {
+ "species": "SOLROCK",
+ "evos": []
+ },
+ {
+ "species": "BARBOACH",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "WHISCASH",
+ "param": 30
+ }
+ ]
+ },
+ {
+ "species": "WHISCASH",
+ "evos": []
+ },
+ {
+ "species": "CORPHISH",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "CRAWDAUNT",
+ "param": 30
+ }
+ ]
+ },
+ {
+ "species": "CRAWDAUNT",
+ "evos": []
+ },
+ {
+ "species": "BALTOY",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "CLAYDOL",
+ "param": 36
+ }
+ ]
+ },
+ {
+ "species": "CLAYDOL",
+ "evos": []
+ },
+ {
+ "species": "LILEEP",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "CRADILY",
+ "param": 40
+ }
+ ]
+ },
+ {
+ "species": "CRADILY",
+ "evos": []
+ },
+ {
+ "species": "ANORITH",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "ARMALDO",
+ "param": 40
+ }
+ ]
+ },
+ {
+ "species": "ARMALDO",
+ "evos": []
+ },
+ {
+ "species": "FEEBAS",
+ "evos": [
+ {
+ "method": "EVO_BEAUTY",
+ "target": "MILOTIC",
+ "param": 170
+ }
+ ]
+ },
+ {
+ "species": "MILOTIC",
+ "evos": []
+ },
+ {
+ "species": "CASTFORM",
+ "evos": []
+ },
+ {
+ "species": "KECLEON",
+ "evos": []
+ },
+ {
+ "species": "SHUPPET",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "BANETTE",
+ "param": 37
+ }
+ ]
+ },
+ {
+ "species": "BANETTE",
+ "evos": []
+ },
+ {
+ "species": "DUSKULL",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "DUSCLOPS",
+ "param": 37
+ }
+ ]
+ },
+ {
+ "species": "DUSCLOPS",
+ "evos": [
+ {
+ "method": "EVO_TRADE_ITEM",
+ "target": "DUSKNOIR",
+ "param": "ITEM_REAPER_CLOTH"
+ }
+ ]
+ },
+ {
+ "species": "TROPIUS",
+ "evos": []
+ },
+ {
+ "species": "CHIMECHO",
+ "evos": []
+ },
+ {
+ "species": "ABSOL",
+ "evos": []
+ },
+ {
+ "species": "WYNAUT",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "WOBBUFFET",
+ "param": 15
+ }
+ ]
+ },
+ {
+ "species": "SNORUNT",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "GLALIE",
+ "param": 42
+ },
+ {
+ "method": "EVO_STONE_FEMALE",
+ "target": "FROSLASS",
+ "param": "ITEM_DAWN_STONE"
+ }
+ ]
+ },
+ {
+ "species": "GLALIE",
+ "evos": []
+ },
+ {
+ "species": "SPHEAL",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "SEALEO",
+ "param": 32
+ }
+ ]
+ },
+ {
+ "species": "SEALEO",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "WALREIN",
+ "param": 44
+ }
+ ]
+ },
+ {
+ "species": "WALREIN",
+ "evos": []
+ },
+ {
+ "species": "CLAMPERL",
+ "evos": [
+ {
+ "method": "EVO_TRADE_ITEM",
+ "target": "HUNTAIL",
+ "param": "ITEM_DEEPSEATOOTH"
+ },
+ {
+ "method": "EVO_TRADE_ITEM",
+ "target": "GOREBYSS",
+ "param": "ITEM_DEEPSEASCALE"
+ }
+ ]
+ },
+ {
+ "species": "HUNTAIL",
+ "evos": []
+ },
+ {
+ "species": "GOREBYSS",
+ "evos": []
+ },
+ {
+ "species": "RELICANTH",
+ "evos": []
+ },
+ {
+ "species": "LUVDISC",
+ "evos": []
+ },
+ {
+ "species": "BAGON",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "SHELGON",
+ "param": 30
+ }
+ ]
+ },
+ {
+ "species": "SHELGON",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "SALAMENCE",
+ "param": 50
+ }
+ ]
+ },
+ {
+ "species": "SALAMENCE",
+ "evos": []
+ },
+ {
+ "species": "BELDUM",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "METANG",
+ "param": 20
+ }
+ ]
+ },
+ {
+ "species": "METANG",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "METAGROSS",
+ "param": 45
+ }
+ ]
+ },
+ {
+ "species": "METAGROSS",
+ "evos": []
+ },
+ {
+ "species": "REGIROCK",
+ "evos": []
+ },
+ {
+ "species": "REGICE",
+ "evos": []
+ },
+ {
+ "species": "REGISTEEL",
+ "evos": []
+ },
+ {
+ "species": "LATIAS",
+ "evos": []
+ },
+ {
+ "species": "LATIOS",
+ "evos": []
+ },
+ {
+ "species": "KYOGRE",
+ "evos": []
+ },
+ {
+ "species": "GROUDON",
+ "evos": []
+ },
+ {
+ "species": "RAYQUAZA",
+ "evos": []
+ },
+ {
+ "species": "JIRACHI",
+ "evos": []
+ },
+ {
+ "species": "DEOXYS",
+ "evos": []
+ },
+ {
+ "species": "TURTWIG",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "GROTLE",
+ "param": 18
+ }
+ ]
+ },
+ {
+ "species": "GROTLE",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "TORTERRA",
+ "param": 32
+ }
+ ]
+ },
+ {
+ "species": "TORTERRA",
+ "evos": []
+ },
+ {
+ "species": "CHIMCHAR",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "MONFERNO",
+ "param": 14
+ }
+ ]
+ },
+ {
+ "species": "MONFERNO",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "INFERNAPE",
+ "param": 36
+ }
+ ]
+ },
+ {
+ "species": "INFERNAPE",
+ "evos": []
+ },
+ {
+ "species": "PIPLUP",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "PRINPLUP",
+ "param": 16
+ }
+ ]
+ },
+ {
+ "species": "PRINPLUP",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "EMPOLEON",
+ "param": 36
+ }
+ ]
+ },
+ {
+ "species": "EMPOLEON",
+ "evos": []
+ },
+ {
+ "species": "STARLY",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "STARAVIA",
+ "param": 14
+ }
+ ]
+ },
+ {
+ "species": "STARAVIA",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "STARAPTOR",
+ "param": 34
+ }
+ ]
+ },
+ {
+ "species": "STARAPTOR",
+ "evos": []
+ },
+ {
+ "species": "BIDOOF",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "BIBAREL",
+ "param": 15
+ }
+ ]
+ },
+ {
+ "species": "BIBAREL",
+ "evos": []
+ },
+ {
+ "species": "KRICKETOT",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "KRICKETUNE",
+ "param": 10
+ }
+ ]
+ },
+ {
+ "species": "KRICKETUNE",
+ "evos": []
+ },
+ {
+ "species": "SHINX",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "LUXIO",
+ "param": 15
+ }
+ ]
+ },
+ {
+ "species": "LUXIO",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "LUXRAY",
+ "param": 30
+ }
+ ]
+ },
+ {
+ "species": "LUXRAY",
+ "evos": []
+ },
+ {
+ "species": "BUDEW",
+ "evos": [
+ {
+ "method": "EVO_FRIENDSHIP_DAY",
+ "target": "ROSELIA"
+ }
+ ]
+ },
+ {
+ "species": "ROSERADE",
+ "evos": []
+ },
+ {
+ "species": "CRANIDOS",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "RAMPARDOS",
+ "param": 30
+ }
+ ]
+ },
+ {
+ "species": "RAMPARDOS",
+ "evos": []
+ },
+ {
+ "species": "SHIELDON",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "BASTIODON",
+ "param": 30
+ }
+ ]
+ },
+ {
+ "species": "BASTIODON",
+ "evos": []
+ },
+ {
+ "species": "BURMY",
+ "evos": [
+ {
+ "method": "EVO_LEVEL_FEMALE",
+ "target": "WORMADAM",
+ "param": 20
+ },
+ {
+ "method": "EVO_LEVEL_MALE",
+ "target": "MOTHIM",
+ "param": 20
+ }
+ ]
+ },
+ {
+ "species": "WORMADAM",
+ "evos": []
+ },
+ {
+ "species": "MOTHIM",
+ "evos": []
+ },
+ {
+ "species": "COMBEE",
+ "evos": [
+ {
+ "method": "EVO_LEVEL_FEMALE",
+ "target": "VESPIQUEN",
+ "param": 21
+ }
+ ]
+ },
+ {
+ "species": "VESPIQUEN",
+ "evos": []
+ },
+ {
+ "species": "PACHIRISU",
+ "evos": []
+ },
+ {
+ "species": "BUIZEL",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "FLOATZEL",
+ "param": 26
+ }
+ ]
+ },
+ {
+ "species": "FLOATZEL",
+ "evos": []
+ },
+ {
+ "species": "CHERUBI",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "CHERRIM",
+ "param": 25
+ }
+ ]
+ },
+ {
+ "species": "CHERRIM",
+ "evos": []
+ },
+ {
+ "species": "SHELLOS",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "GASTRODON",
+ "param": 30
+ }
+ ]
+ },
+ {
+ "species": "GASTRODON",
+ "evos": []
+ },
+ {
+ "species": "AMBIPOM",
+ "evos": []
+ },
+ {
+ "species": "DRIFLOON",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "DRIFBLIM",
+ "param": 28
+ }
+ ]
+ },
+ {
+ "species": "DRIFBLIM",
+ "evos": []
+ },
+ {
+ "species": "BUNEARY",
+ "evos": [
+ {
+ "method": "EVO_FRIENDSHIP",
+ "target": "LOPUNNY"
+ }
+ ]
+ },
+ {
+ "species": "LOPUNNY",
+ "evos": []
+ },
+ {
+ "species": "MISMAGIUS",
+ "evos": []
+ },
+ {
+ "species": "HONCHKROW",
+ "evos": []
+ },
+ {
+ "species": "GLAMEOW",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "PURUGLY",
+ "param": 38
+ }
+ ]
+ },
+ {
+ "species": "PURUGLY",
+ "evos": []
+ },
+ {
+ "species": "CHINGLING",
+ "evos": [
+ {
+ "method": "EVO_FRIENDSHIP_NIGHT",
+ "target": "CHIMECHO"
+ }
+ ]
+ },
+ {
+ "species": "STUNKY",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "SKUNTANK",
+ "param": 34
+ }
+ ]
+ },
+ {
+ "species": "SKUNTANK",
+ "evos": []
+ },
+ {
+ "species": "BRONZOR",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "BRONZONG",
+ "param": 33
+ }
+ ]
+ },
+ {
+ "species": "BRONZONG",
+ "evos": []
+ },
+ {
+ "species": "BONSLY",
+ "evos": [
+ {
+ "method": "EVO_HAS_MOVE",
+ "target": "SUDOWOODO",
+ "param": "MOVE_MIMIC"
+ }
+ ]
+ },
+ {
+ "species": "MIME_JR",
+ "evos": [
+ {
+ "method": "EVO_HAS_MOVE",
+ "target": "MR_MIME",
+ "param": "MOVE_MIMIC"
+ }
+ ]
+ },
+ {
+ "species": "HAPPINY",
+ "evos": [
+ {
+ "method": "EVO_ITEM_DAY",
+ "target": "CHANSEY",
+ "param": "ITEM_OVAL_STONE"
+ }
+ ]
+ },
+ {
+ "species": "CHATOT",
+ "evos": []
+ },
+ {
+ "species": "SPIRITOMB",
+ "evos": []
+ },
+ {
+ "species": "GIBLE",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "GABITE",
+ "param": 24
+ }
+ ]
+ },
+ {
+ "species": "GABITE",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "GARCHOMP",
+ "param": 48
+ }
+ ]
+ },
+ {
+ "species": "GARCHOMP",
+ "evos": []
+ },
+ {
+ "species": "MUNCHLAX",
+ "evos": [
+ {
+ "method": "EVO_FRIENDSHIP",
+ "target": "SNORLAX"
+ }
+ ]
+ },
+ {
+ "species": "RIOLU",
+ "evos": [
+ {
+ "method": "EVO_FRIENDSHIP_DAY",
+ "target": "LUCARIO"
+ }
+ ]
+ },
+ {
+ "species": "LUCARIO",
+ "evos": []
+ },
+ {
+ "species": "HIPPOPOTAS",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "HIPPOWDON",
+ "param": 34
+ }
+ ]
+ },
+ {
+ "species": "HIPPOWDON",
+ "evos": []
+ },
+ {
+ "species": "SKORUPI",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "DRAPION",
+ "param": 40
+ }
+ ]
+ },
+ {
+ "species": "DRAPION",
+ "evos": []
+ },
+ {
+ "species": "CROAGUNK",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "TOXICROAK",
+ "param": 37
+ }
+ ]
+ },
+ {
+ "species": "TOXICROAK",
+ "evos": []
+ },
+ {
+ "species": "CARNIVINE",
+ "evos": []
+ },
+ {
+ "species": "FINNEON",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "LUMINEON",
+ "param": 31
+ }
+ ]
+ },
+ {
+ "species": "LUMINEON",
+ "evos": []
+ },
+ {
+ "species": "MANTYKE",
+ "evos": [
+ {
+ "method": "EVO_OTHER_PARTY_MON",
+ "target": "MANTINE",
+ "param": "SPECIES_REMORAID"
+ }
+ ]
+ },
+ {
+ "species": "SNOVER",
+ "evos": [
+ {
+ "method": "EVO_LEVEL",
+ "target": "ABOMASNOW",
+ "param": 40
+ }
+ ]
+ },
+ {
+ "species": "ABOMASNOW",
+ "evos": []
+ },
+ {
+ "species": "WEAVILE",
+ "evos": []
+ },
+ {
+ "species": "MAGNEZONE",
+ "evos": []
+ },
+ {
+ "species": "LICKILICKY",
+ "evos": []
+ },
+ {
+ "species": "RHYPERIOR",
+ "evos": []
+ },
+ {
+ "species": "TANGROWTH",
+ "evos": []
+ },
+ {
+ "species": "ELECTIVIRE",
+ "evos": []
+ },
+ {
+ "species": "MAGMORTAR",
+ "evos": []
+ },
+ {
+ "species": "TOGEKISS",
+ "evos": []
+ },
+ {
+ "species": "YANMEGA",
+ "evos": []
+ },
+ {
+ "species": "LEAFEON",
+ "evos": []
+ },
+ {
+ "species": "GLACEON",
+ "evos": []
+ },
+ {
+ "species": "GLISCOR",
+ "evos": []
+ },
+ {
+ "species": "MAMOSWINE",
+ "evos": []
+ },
+ {
+ "species": "PORYGON_Z",
+ "evos": []
+ },
+ {
+ "species": "GALLADE",
+ "evos": []
+ },
+ {
+ "species": "PROBOPASS",
+ "evos": []
+ },
+ {
+ "species": "DUSKNOIR",
+ "evos": []
+ },
+ {
+ "species": "FROSLASS",
+ "evos": []
+ },
+ {
+ "species": "ROTOM",
+ "evos": []
+ },
+ {
+ "species": "UXIE",
+ "evos": []
+ },
+ {
+ "species": "MESPRIT",
+ "evos": []
+ },
+ {
+ "species": "AZELF",
+ "evos": []
+ },
+ {
+ "species": "DIALGA",
+ "evos": []
+ },
+ {
+ "species": "PALKIA",
+ "evos": []
+ },
+ {
+ "species": "HEATRAN",
+ "evos": []
+ },
+ {
+ "species": "REGIGIGAS",
+ "evos": []
+ },
+ {
+ "species": "GIRATINA",
+ "evos": []
+ },
+ {
+ "species": "CRESSELIA",
+ "evos": []
+ },
+ {
+ "species": "PHIONE",
+ "evos": []
+ },
+ {
+ "species": "MANAPHY",
+ "evos": []
+ },
+ {
+ "species": "DARKRAI",
+ "evos": []
+ },
+ {
+ "species": "SHAYMIN",
+ "evos": []
+ },
+ {
+ "species": "ARCEUS",
+ "evos": []
+ },
+ {
+ "species": "EGG",
+ "evos": []
+ },
+ {
+ "species": "MANAPHY_EGG",
+ "evos": []
+ },
+ {
+ "species": "DEOXYS_ATK",
+ "evos": []
+ },
+ {
+ "species": "DEOXYS_DEF",
+ "evos": []
+ },
+ {
+ "species": "DEOXYS_SPD",
+ "evos": []
+ },
+ {
+ "species": "WORMADAM_SANDY",
+ "evos": []
+ },
+ {
+ "species": "WORMADAM_TRASH",
+ "evos": []
+ }
+ ]
+}
diff --git a/files/poketool/personal/evo.json.txt b/files/poketool/personal/evo.json.txt
new file mode 100644
index 00000000..bd0af8e4
--- /dev/null
+++ b/files/poketool/personal/evo.json.txt
@@ -0,0 +1,22 @@
+{{ doNotModifyHeader }}
+
+#include "global.h"
+#include "pokemon.h"
+#include "constants/pokemon.h"
+#include "constants/species.h"
+#include "constants/moves.h"
+#include "constants/items.h"
+
+u32 __size = 44;
+
+const u16 data[][22] = {
+## for evo in evos
+ // {{ evo.species }}
+ {
+## for method in evo.evos
+ {{ method.method }}, {% if existsIn(method, "param") %}{{ method.param }}{% else %}0{% endif %}, SPECIES_{{ method.target }},
+## endfor
+ EVO_NONE
+ },
+## endfor
+};
diff --git a/files/poketool/personal/evo/narc_0000.bin b/files/poketool/personal/evo/narc_0000.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0000.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0001.bin b/files/poketool/personal/evo/narc_0001.bin
deleted file mode 100644
index cb2fe04c..00000000
--- a/files/poketool/personal/evo/narc_0001.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0002.bin b/files/poketool/personal/evo/narc_0002.bin
deleted file mode 100644
index f05be5b8..00000000
--- a/files/poketool/personal/evo/narc_0002.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0003.bin b/files/poketool/personal/evo/narc_0003.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0003.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0004.bin b/files/poketool/personal/evo/narc_0004.bin
deleted file mode 100644
index 2e118c3e..00000000
--- a/files/poketool/personal/evo/narc_0004.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0005.bin b/files/poketool/personal/evo/narc_0005.bin
deleted file mode 100644
index 075c75aa..00000000
--- a/files/poketool/personal/evo/narc_0005.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0006.bin b/files/poketool/personal/evo/narc_0006.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0006.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0007.bin b/files/poketool/personal/evo/narc_0007.bin
deleted file mode 100644
index 031c870d..00000000
--- a/files/poketool/personal/evo/narc_0007.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0008.bin b/files/poketool/personal/evo/narc_0008.bin
deleted file mode 100644
index 8a866d1f..00000000
--- a/files/poketool/personal/evo/narc_0008.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0009.bin b/files/poketool/personal/evo/narc_0009.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0009.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0010.bin b/files/poketool/personal/evo/narc_0010.bin
deleted file mode 100644
index a8e50192..00000000
--- a/files/poketool/personal/evo/narc_0010.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0011.bin b/files/poketool/personal/evo/narc_0011.bin
deleted file mode 100644
index ed552ae5..00000000
--- a/files/poketool/personal/evo/narc_0011.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0012.bin b/files/poketool/personal/evo/narc_0012.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0012.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0013.bin b/files/poketool/personal/evo/narc_0013.bin
deleted file mode 100644
index c7fbf696..00000000
--- a/files/poketool/personal/evo/narc_0013.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0014.bin b/files/poketool/personal/evo/narc_0014.bin
deleted file mode 100644
index bee029d0..00000000
--- a/files/poketool/personal/evo/narc_0014.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0015.bin b/files/poketool/personal/evo/narc_0015.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0015.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0016.bin b/files/poketool/personal/evo/narc_0016.bin
deleted file mode 100644
index 935bfc16..00000000
--- a/files/poketool/personal/evo/narc_0016.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0017.bin b/files/poketool/personal/evo/narc_0017.bin
deleted file mode 100644
index ac9ccf76..00000000
--- a/files/poketool/personal/evo/narc_0017.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0018.bin b/files/poketool/personal/evo/narc_0018.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0018.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0019.bin b/files/poketool/personal/evo/narc_0019.bin
deleted file mode 100644
index 8087b252..00000000
--- a/files/poketool/personal/evo/narc_0019.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0020.bin b/files/poketool/personal/evo/narc_0020.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0020.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0021.bin b/files/poketool/personal/evo/narc_0021.bin
deleted file mode 100644
index 438f3851..00000000
--- a/files/poketool/personal/evo/narc_0021.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0022.bin b/files/poketool/personal/evo/narc_0022.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0022.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0023.bin b/files/poketool/personal/evo/narc_0023.bin
deleted file mode 100644
index 12d8cca7..00000000
--- a/files/poketool/personal/evo/narc_0023.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0024.bin b/files/poketool/personal/evo/narc_0024.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0024.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0025.bin b/files/poketool/personal/evo/narc_0025.bin
deleted file mode 100644
index baa25441..00000000
--- a/files/poketool/personal/evo/narc_0025.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0026.bin b/files/poketool/personal/evo/narc_0026.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0026.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0027.bin b/files/poketool/personal/evo/narc_0027.bin
deleted file mode 100644
index f3e3eb69..00000000
--- a/files/poketool/personal/evo/narc_0027.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0028.bin b/files/poketool/personal/evo/narc_0028.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0028.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0029.bin b/files/poketool/personal/evo/narc_0029.bin
deleted file mode 100644
index 15a28c43..00000000
--- a/files/poketool/personal/evo/narc_0029.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0030.bin b/files/poketool/personal/evo/narc_0030.bin
deleted file mode 100644
index 1af8dc72..00000000
--- a/files/poketool/personal/evo/narc_0030.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0031.bin b/files/poketool/personal/evo/narc_0031.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0031.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0032.bin b/files/poketool/personal/evo/narc_0032.bin
deleted file mode 100644
index 9b65a1d6..00000000
--- a/files/poketool/personal/evo/narc_0032.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0033.bin b/files/poketool/personal/evo/narc_0033.bin
deleted file mode 100644
index 38b98b9b..00000000
--- a/files/poketool/personal/evo/narc_0033.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0034.bin b/files/poketool/personal/evo/narc_0034.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0034.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0035.bin b/files/poketool/personal/evo/narc_0035.bin
deleted file mode 100644
index e49cd740..00000000
--- a/files/poketool/personal/evo/narc_0035.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0036.bin b/files/poketool/personal/evo/narc_0036.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0036.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0037.bin b/files/poketool/personal/evo/narc_0037.bin
deleted file mode 100644
index 360376dc..00000000
--- a/files/poketool/personal/evo/narc_0037.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0038.bin b/files/poketool/personal/evo/narc_0038.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0038.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0039.bin b/files/poketool/personal/evo/narc_0039.bin
deleted file mode 100644
index 022a2020..00000000
--- a/files/poketool/personal/evo/narc_0039.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0040.bin b/files/poketool/personal/evo/narc_0040.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0040.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0041.bin b/files/poketool/personal/evo/narc_0041.bin
deleted file mode 100644
index 11c91548..00000000
--- a/files/poketool/personal/evo/narc_0041.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0042.bin b/files/poketool/personal/evo/narc_0042.bin
deleted file mode 100644
index a41215ad..00000000
--- a/files/poketool/personal/evo/narc_0042.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0043.bin b/files/poketool/personal/evo/narc_0043.bin
deleted file mode 100644
index ccc6c96b..00000000
--- a/files/poketool/personal/evo/narc_0043.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0044.bin b/files/poketool/personal/evo/narc_0044.bin
deleted file mode 100644
index 484de058..00000000
--- a/files/poketool/personal/evo/narc_0044.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0045.bin b/files/poketool/personal/evo/narc_0045.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0045.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0046.bin b/files/poketool/personal/evo/narc_0046.bin
deleted file mode 100644
index 7e1d710e..00000000
--- a/files/poketool/personal/evo/narc_0046.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0047.bin b/files/poketool/personal/evo/narc_0047.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0047.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0048.bin b/files/poketool/personal/evo/narc_0048.bin
deleted file mode 100644
index eb80fb25..00000000
--- a/files/poketool/personal/evo/narc_0048.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0049.bin b/files/poketool/personal/evo/narc_0049.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0049.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0050.bin b/files/poketool/personal/evo/narc_0050.bin
deleted file mode 100644
index 18919cf6..00000000
--- a/files/poketool/personal/evo/narc_0050.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0051.bin b/files/poketool/personal/evo/narc_0051.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0051.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0052.bin b/files/poketool/personal/evo/narc_0052.bin
deleted file mode 100644
index 8109b0a8..00000000
--- a/files/poketool/personal/evo/narc_0052.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0053.bin b/files/poketool/personal/evo/narc_0053.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0053.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0054.bin b/files/poketool/personal/evo/narc_0054.bin
deleted file mode 100644
index e506e244..00000000
--- a/files/poketool/personal/evo/narc_0054.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0055.bin b/files/poketool/personal/evo/narc_0055.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0055.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0056.bin b/files/poketool/personal/evo/narc_0056.bin
deleted file mode 100644
index 3d3b8dd9..00000000
--- a/files/poketool/personal/evo/narc_0056.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0057.bin b/files/poketool/personal/evo/narc_0057.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0057.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0058.bin b/files/poketool/personal/evo/narc_0058.bin
deleted file mode 100644
index a2787b0a..00000000
--- a/files/poketool/personal/evo/narc_0058.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0059.bin b/files/poketool/personal/evo/narc_0059.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0059.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0060.bin b/files/poketool/personal/evo/narc_0060.bin
deleted file mode 100644
index ae254a9c..00000000
--- a/files/poketool/personal/evo/narc_0060.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0061.bin b/files/poketool/personal/evo/narc_0061.bin
deleted file mode 100644
index f045b50d..00000000
--- a/files/poketool/personal/evo/narc_0061.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0062.bin b/files/poketool/personal/evo/narc_0062.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0062.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0063.bin b/files/poketool/personal/evo/narc_0063.bin
deleted file mode 100644
index e6556d70..00000000
--- a/files/poketool/personal/evo/narc_0063.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0064.bin b/files/poketool/personal/evo/narc_0064.bin
deleted file mode 100644
index b63805df..00000000
--- a/files/poketool/personal/evo/narc_0064.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0065.bin b/files/poketool/personal/evo/narc_0065.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0065.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0066.bin b/files/poketool/personal/evo/narc_0066.bin
deleted file mode 100644
index 98fc3117..00000000
--- a/files/poketool/personal/evo/narc_0066.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0067.bin b/files/poketool/personal/evo/narc_0067.bin
deleted file mode 100644
index e1845808..00000000
--- a/files/poketool/personal/evo/narc_0067.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0068.bin b/files/poketool/personal/evo/narc_0068.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0068.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0069.bin b/files/poketool/personal/evo/narc_0069.bin
deleted file mode 100644
index dded4333..00000000
--- a/files/poketool/personal/evo/narc_0069.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0070.bin b/files/poketool/personal/evo/narc_0070.bin
deleted file mode 100644
index 173c3b33..00000000
--- a/files/poketool/personal/evo/narc_0070.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0071.bin b/files/poketool/personal/evo/narc_0071.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0071.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0072.bin b/files/poketool/personal/evo/narc_0072.bin
deleted file mode 100644
index 6ae22374..00000000
--- a/files/poketool/personal/evo/narc_0072.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0073.bin b/files/poketool/personal/evo/narc_0073.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0073.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0074.bin b/files/poketool/personal/evo/narc_0074.bin
deleted file mode 100644
index 9cc5d7c3..00000000
--- a/files/poketool/personal/evo/narc_0074.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0075.bin b/files/poketool/personal/evo/narc_0075.bin
deleted file mode 100644
index 2758c082..00000000
--- a/files/poketool/personal/evo/narc_0075.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0076.bin b/files/poketool/personal/evo/narc_0076.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0076.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0077.bin b/files/poketool/personal/evo/narc_0077.bin
deleted file mode 100644
index 5342563b..00000000
--- a/files/poketool/personal/evo/narc_0077.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0078.bin b/files/poketool/personal/evo/narc_0078.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0078.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0079.bin b/files/poketool/personal/evo/narc_0079.bin
deleted file mode 100644
index d0a62ae7..00000000
--- a/files/poketool/personal/evo/narc_0079.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0080.bin b/files/poketool/personal/evo/narc_0080.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0080.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0081.bin b/files/poketool/personal/evo/narc_0081.bin
deleted file mode 100644
index 503a506a..00000000
--- a/files/poketool/personal/evo/narc_0081.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0082.bin b/files/poketool/personal/evo/narc_0082.bin
deleted file mode 100644
index 13b7f4ad..00000000
--- a/files/poketool/personal/evo/narc_0082.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0083.bin b/files/poketool/personal/evo/narc_0083.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0083.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0084.bin b/files/poketool/personal/evo/narc_0084.bin
deleted file mode 100644
index 878e05ee..00000000
--- a/files/poketool/personal/evo/narc_0084.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0085.bin b/files/poketool/personal/evo/narc_0085.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0085.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0086.bin b/files/poketool/personal/evo/narc_0086.bin
deleted file mode 100644
index 52fc7a6e..00000000
--- a/files/poketool/personal/evo/narc_0086.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0087.bin b/files/poketool/personal/evo/narc_0087.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0087.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0088.bin b/files/poketool/personal/evo/narc_0088.bin
deleted file mode 100644
index 7c54ee35..00000000
--- a/files/poketool/personal/evo/narc_0088.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0089.bin b/files/poketool/personal/evo/narc_0089.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0089.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0090.bin b/files/poketool/personal/evo/narc_0090.bin
deleted file mode 100644
index 4fdf8db7..00000000
--- a/files/poketool/personal/evo/narc_0090.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0091.bin b/files/poketool/personal/evo/narc_0091.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0091.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0092.bin b/files/poketool/personal/evo/narc_0092.bin
deleted file mode 100644
index 06416c3d..00000000
--- a/files/poketool/personal/evo/narc_0092.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0093.bin b/files/poketool/personal/evo/narc_0093.bin
deleted file mode 100644
index fd413be7..00000000
--- a/files/poketool/personal/evo/narc_0093.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0094.bin b/files/poketool/personal/evo/narc_0094.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0094.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0095.bin b/files/poketool/personal/evo/narc_0095.bin
deleted file mode 100644
index 7fe96e6f..00000000
--- a/files/poketool/personal/evo/narc_0095.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0096.bin b/files/poketool/personal/evo/narc_0096.bin
deleted file mode 100644
index 96e1aea6..00000000
--- a/files/poketool/personal/evo/narc_0096.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0097.bin b/files/poketool/personal/evo/narc_0097.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0097.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0098.bin b/files/poketool/personal/evo/narc_0098.bin
deleted file mode 100644
index 7570530a..00000000
--- a/files/poketool/personal/evo/narc_0098.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0099.bin b/files/poketool/personal/evo/narc_0099.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0099.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0100.bin b/files/poketool/personal/evo/narc_0100.bin
deleted file mode 100644
index 7d3732e4..00000000
--- a/files/poketool/personal/evo/narc_0100.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0101.bin b/files/poketool/personal/evo/narc_0101.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0101.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0102.bin b/files/poketool/personal/evo/narc_0102.bin
deleted file mode 100644
index 1eef5de8..00000000
--- a/files/poketool/personal/evo/narc_0102.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0103.bin b/files/poketool/personal/evo/narc_0103.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0103.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0104.bin b/files/poketool/personal/evo/narc_0104.bin
deleted file mode 100644
index c4cd3650..00000000
--- a/files/poketool/personal/evo/narc_0104.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0105.bin b/files/poketool/personal/evo/narc_0105.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0105.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0106.bin b/files/poketool/personal/evo/narc_0106.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0106.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0107.bin b/files/poketool/personal/evo/narc_0107.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0107.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0108.bin b/files/poketool/personal/evo/narc_0108.bin
deleted file mode 100644
index f2645371..00000000
--- a/files/poketool/personal/evo/narc_0108.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0109.bin b/files/poketool/personal/evo/narc_0109.bin
deleted file mode 100644
index 553cf885..00000000
--- a/files/poketool/personal/evo/narc_0109.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0110.bin b/files/poketool/personal/evo/narc_0110.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0110.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0111.bin b/files/poketool/personal/evo/narc_0111.bin
deleted file mode 100644
index 5af06a33..00000000
--- a/files/poketool/personal/evo/narc_0111.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0112.bin b/files/poketool/personal/evo/narc_0112.bin
deleted file mode 100644
index b372530e..00000000
--- a/files/poketool/personal/evo/narc_0112.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0113.bin b/files/poketool/personal/evo/narc_0113.bin
deleted file mode 100644
index 2bfe206c..00000000
--- a/files/poketool/personal/evo/narc_0113.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0114.bin b/files/poketool/personal/evo/narc_0114.bin
deleted file mode 100644
index fc50cdf6..00000000
--- a/files/poketool/personal/evo/narc_0114.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0115.bin b/files/poketool/personal/evo/narc_0115.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0115.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0116.bin b/files/poketool/personal/evo/narc_0116.bin
deleted file mode 100644
index 3be5f533..00000000
--- a/files/poketool/personal/evo/narc_0116.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0117.bin b/files/poketool/personal/evo/narc_0117.bin
deleted file mode 100644
index d7dad925..00000000
--- a/files/poketool/personal/evo/narc_0117.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0118.bin b/files/poketool/personal/evo/narc_0118.bin
deleted file mode 100644
index eb2c8344..00000000
--- a/files/poketool/personal/evo/narc_0118.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0119.bin b/files/poketool/personal/evo/narc_0119.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0119.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0120.bin b/files/poketool/personal/evo/narc_0120.bin
deleted file mode 100644
index 90be3ac1..00000000
--- a/files/poketool/personal/evo/narc_0120.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0121.bin b/files/poketool/personal/evo/narc_0121.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0121.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0122.bin b/files/poketool/personal/evo/narc_0122.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0122.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0123.bin b/files/poketool/personal/evo/narc_0123.bin
deleted file mode 100644
index 812a86e4..00000000
--- a/files/poketool/personal/evo/narc_0123.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0124.bin b/files/poketool/personal/evo/narc_0124.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0124.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0125.bin b/files/poketool/personal/evo/narc_0125.bin
deleted file mode 100644
index 75583561..00000000
--- a/files/poketool/personal/evo/narc_0125.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0126.bin b/files/poketool/personal/evo/narc_0126.bin
deleted file mode 100644
index f7b7ea86..00000000
--- a/files/poketool/personal/evo/narc_0126.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0127.bin b/files/poketool/personal/evo/narc_0127.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0127.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0128.bin b/files/poketool/personal/evo/narc_0128.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0128.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0129.bin b/files/poketool/personal/evo/narc_0129.bin
deleted file mode 100644
index f1d7b21b..00000000
--- a/files/poketool/personal/evo/narc_0129.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0130.bin b/files/poketool/personal/evo/narc_0130.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0130.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0131.bin b/files/poketool/personal/evo/narc_0131.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0131.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0132.bin b/files/poketool/personal/evo/narc_0132.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0132.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0133.bin b/files/poketool/personal/evo/narc_0133.bin
deleted file mode 100644
index 12e2f625..00000000
--- a/files/poketool/personal/evo/narc_0133.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0134.bin b/files/poketool/personal/evo/narc_0134.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0134.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0135.bin b/files/poketool/personal/evo/narc_0135.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0135.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0136.bin b/files/poketool/personal/evo/narc_0136.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0136.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0137.bin b/files/poketool/personal/evo/narc_0137.bin
deleted file mode 100644
index cbe1d6f8..00000000
--- a/files/poketool/personal/evo/narc_0137.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0138.bin b/files/poketool/personal/evo/narc_0138.bin
deleted file mode 100644
index f55335c3..00000000
--- a/files/poketool/personal/evo/narc_0138.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0139.bin b/files/poketool/personal/evo/narc_0139.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0139.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0140.bin b/files/poketool/personal/evo/narc_0140.bin
deleted file mode 100644
index 921c3d17..00000000
--- a/files/poketool/personal/evo/narc_0140.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0141.bin b/files/poketool/personal/evo/narc_0141.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0141.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0142.bin b/files/poketool/personal/evo/narc_0142.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0142.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0143.bin b/files/poketool/personal/evo/narc_0143.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0143.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0144.bin b/files/poketool/personal/evo/narc_0144.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0144.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0145.bin b/files/poketool/personal/evo/narc_0145.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0145.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0146.bin b/files/poketool/personal/evo/narc_0146.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0146.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0147.bin b/files/poketool/personal/evo/narc_0147.bin
deleted file mode 100644
index 9c1924be..00000000
--- a/files/poketool/personal/evo/narc_0147.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0148.bin b/files/poketool/personal/evo/narc_0148.bin
deleted file mode 100644
index a84c93c8..00000000
--- a/files/poketool/personal/evo/narc_0148.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0149.bin b/files/poketool/personal/evo/narc_0149.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0149.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0150.bin b/files/poketool/personal/evo/narc_0150.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0150.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0151.bin b/files/poketool/personal/evo/narc_0151.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0151.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0152.bin b/files/poketool/personal/evo/narc_0152.bin
deleted file mode 100644
index aed96212..00000000
--- a/files/poketool/personal/evo/narc_0152.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0153.bin b/files/poketool/personal/evo/narc_0153.bin
deleted file mode 100644
index d95c1eb5..00000000
--- a/files/poketool/personal/evo/narc_0153.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0154.bin b/files/poketool/personal/evo/narc_0154.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0154.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0155.bin b/files/poketool/personal/evo/narc_0155.bin
deleted file mode 100644
index 32d1271e..00000000
--- a/files/poketool/personal/evo/narc_0155.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0156.bin b/files/poketool/personal/evo/narc_0156.bin
deleted file mode 100644
index 456cb115..00000000
--- a/files/poketool/personal/evo/narc_0156.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0157.bin b/files/poketool/personal/evo/narc_0157.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0157.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0158.bin b/files/poketool/personal/evo/narc_0158.bin
deleted file mode 100644
index 1786cdc8..00000000
--- a/files/poketool/personal/evo/narc_0158.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0159.bin b/files/poketool/personal/evo/narc_0159.bin
deleted file mode 100644
index a609695b..00000000
--- a/files/poketool/personal/evo/narc_0159.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0160.bin b/files/poketool/personal/evo/narc_0160.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0160.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0161.bin b/files/poketool/personal/evo/narc_0161.bin
deleted file mode 100644
index e0d9991d..00000000
--- a/files/poketool/personal/evo/narc_0161.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0162.bin b/files/poketool/personal/evo/narc_0162.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0162.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0163.bin b/files/poketool/personal/evo/narc_0163.bin
deleted file mode 100644
index 37f52760..00000000
--- a/files/poketool/personal/evo/narc_0163.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0164.bin b/files/poketool/personal/evo/narc_0164.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0164.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0165.bin b/files/poketool/personal/evo/narc_0165.bin
deleted file mode 100644
index cbfcc8de..00000000
--- a/files/poketool/personal/evo/narc_0165.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0166.bin b/files/poketool/personal/evo/narc_0166.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0166.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0167.bin b/files/poketool/personal/evo/narc_0167.bin
deleted file mode 100644
index 2f778cd7..00000000
--- a/files/poketool/personal/evo/narc_0167.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0168.bin b/files/poketool/personal/evo/narc_0168.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0168.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0169.bin b/files/poketool/personal/evo/narc_0169.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0169.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0170.bin b/files/poketool/personal/evo/narc_0170.bin
deleted file mode 100644
index 635e628d..00000000
--- a/files/poketool/personal/evo/narc_0170.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0171.bin b/files/poketool/personal/evo/narc_0171.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0171.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0172.bin b/files/poketool/personal/evo/narc_0172.bin
deleted file mode 100644
index 37bf71d5..00000000
--- a/files/poketool/personal/evo/narc_0172.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0173.bin b/files/poketool/personal/evo/narc_0173.bin
deleted file mode 100644
index 23f2c951..00000000
--- a/files/poketool/personal/evo/narc_0173.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0174.bin b/files/poketool/personal/evo/narc_0174.bin
deleted file mode 100644
index 706e5b6c..00000000
--- a/files/poketool/personal/evo/narc_0174.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0175.bin b/files/poketool/personal/evo/narc_0175.bin
deleted file mode 100644
index fb32bd3b..00000000
--- a/files/poketool/personal/evo/narc_0175.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0176.bin b/files/poketool/personal/evo/narc_0176.bin
deleted file mode 100644
index 01797752..00000000
--- a/files/poketool/personal/evo/narc_0176.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0177.bin b/files/poketool/personal/evo/narc_0177.bin
deleted file mode 100644
index 10f91394..00000000
--- a/files/poketool/personal/evo/narc_0177.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0178.bin b/files/poketool/personal/evo/narc_0178.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0178.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0179.bin b/files/poketool/personal/evo/narc_0179.bin
deleted file mode 100644
index db38be82..00000000
--- a/files/poketool/personal/evo/narc_0179.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0180.bin b/files/poketool/personal/evo/narc_0180.bin
deleted file mode 100644
index 8d26fde9..00000000
--- a/files/poketool/personal/evo/narc_0180.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0181.bin b/files/poketool/personal/evo/narc_0181.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0181.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0182.bin b/files/poketool/personal/evo/narc_0182.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0182.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0183.bin b/files/poketool/personal/evo/narc_0183.bin
deleted file mode 100644
index fe9ff6a0..00000000
--- a/files/poketool/personal/evo/narc_0183.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0184.bin b/files/poketool/personal/evo/narc_0184.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0184.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0185.bin b/files/poketool/personal/evo/narc_0185.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0185.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0186.bin b/files/poketool/personal/evo/narc_0186.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0186.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0187.bin b/files/poketool/personal/evo/narc_0187.bin
deleted file mode 100644
index 3fe56eec..00000000
--- a/files/poketool/personal/evo/narc_0187.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0188.bin b/files/poketool/personal/evo/narc_0188.bin
deleted file mode 100644
index 36a3626f..00000000
--- a/files/poketool/personal/evo/narc_0188.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0189.bin b/files/poketool/personal/evo/narc_0189.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0189.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0190.bin b/files/poketool/personal/evo/narc_0190.bin
deleted file mode 100644
index 38888255..00000000
--- a/files/poketool/personal/evo/narc_0190.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0191.bin b/files/poketool/personal/evo/narc_0191.bin
deleted file mode 100644
index 22e7be84..00000000
--- a/files/poketool/personal/evo/narc_0191.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0192.bin b/files/poketool/personal/evo/narc_0192.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0192.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0193.bin b/files/poketool/personal/evo/narc_0193.bin
deleted file mode 100644
index 3fc46611..00000000
--- a/files/poketool/personal/evo/narc_0193.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0194.bin b/files/poketool/personal/evo/narc_0194.bin
deleted file mode 100644
index 0d5782da..00000000
--- a/files/poketool/personal/evo/narc_0194.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0195.bin b/files/poketool/personal/evo/narc_0195.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0195.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0196.bin b/files/poketool/personal/evo/narc_0196.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0196.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0197.bin b/files/poketool/personal/evo/narc_0197.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0197.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0198.bin b/files/poketool/personal/evo/narc_0198.bin
deleted file mode 100644
index f34a1a94..00000000
--- a/files/poketool/personal/evo/narc_0198.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0199.bin b/files/poketool/personal/evo/narc_0199.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0199.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0200.bin b/files/poketool/personal/evo/narc_0200.bin
deleted file mode 100644
index dbd8fbb0..00000000
--- a/files/poketool/personal/evo/narc_0200.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0201.bin b/files/poketool/personal/evo/narc_0201.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0201.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0202.bin b/files/poketool/personal/evo/narc_0202.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0202.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0203.bin b/files/poketool/personal/evo/narc_0203.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0203.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0204.bin b/files/poketool/personal/evo/narc_0204.bin
deleted file mode 100644
index a805ae33..00000000
--- a/files/poketool/personal/evo/narc_0204.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0205.bin b/files/poketool/personal/evo/narc_0205.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0205.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0206.bin b/files/poketool/personal/evo/narc_0206.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0206.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0207.bin b/files/poketool/personal/evo/narc_0207.bin
deleted file mode 100644
index b11d49b5..00000000
--- a/files/poketool/personal/evo/narc_0207.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0208.bin b/files/poketool/personal/evo/narc_0208.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0208.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0209.bin b/files/poketool/personal/evo/narc_0209.bin
deleted file mode 100644
index d2744bac..00000000
--- a/files/poketool/personal/evo/narc_0209.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0210.bin b/files/poketool/personal/evo/narc_0210.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0210.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0211.bin b/files/poketool/personal/evo/narc_0211.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0211.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0212.bin b/files/poketool/personal/evo/narc_0212.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0212.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0213.bin b/files/poketool/personal/evo/narc_0213.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0213.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0214.bin b/files/poketool/personal/evo/narc_0214.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0214.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0215.bin b/files/poketool/personal/evo/narc_0215.bin
deleted file mode 100644
index 451a52e9..00000000
--- a/files/poketool/personal/evo/narc_0215.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0216.bin b/files/poketool/personal/evo/narc_0216.bin
deleted file mode 100644
index f505947d..00000000
--- a/files/poketool/personal/evo/narc_0216.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0217.bin b/files/poketool/personal/evo/narc_0217.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0217.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0218.bin b/files/poketool/personal/evo/narc_0218.bin
deleted file mode 100644
index 7353ab76..00000000
--- a/files/poketool/personal/evo/narc_0218.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0219.bin b/files/poketool/personal/evo/narc_0219.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0219.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0220.bin b/files/poketool/personal/evo/narc_0220.bin
deleted file mode 100644
index 81c081cc..00000000
--- a/files/poketool/personal/evo/narc_0220.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0221.bin b/files/poketool/personal/evo/narc_0221.bin
deleted file mode 100644
index e2005dbe..00000000
--- a/files/poketool/personal/evo/narc_0221.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0222.bin b/files/poketool/personal/evo/narc_0222.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0222.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0223.bin b/files/poketool/personal/evo/narc_0223.bin
deleted file mode 100644
index 70614579..00000000
--- a/files/poketool/personal/evo/narc_0223.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0224.bin b/files/poketool/personal/evo/narc_0224.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0224.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0225.bin b/files/poketool/personal/evo/narc_0225.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0225.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0226.bin b/files/poketool/personal/evo/narc_0226.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0226.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0227.bin b/files/poketool/personal/evo/narc_0227.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0227.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0228.bin b/files/poketool/personal/evo/narc_0228.bin
deleted file mode 100644
index 7f6e27c4..00000000
--- a/files/poketool/personal/evo/narc_0228.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0229.bin b/files/poketool/personal/evo/narc_0229.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0229.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0230.bin b/files/poketool/personal/evo/narc_0230.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0230.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0231.bin b/files/poketool/personal/evo/narc_0231.bin
deleted file mode 100644
index 833ba079..00000000
--- a/files/poketool/personal/evo/narc_0231.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0232.bin b/files/poketool/personal/evo/narc_0232.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0232.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0233.bin b/files/poketool/personal/evo/narc_0233.bin
deleted file mode 100644
index 6f889f5f..00000000
--- a/files/poketool/personal/evo/narc_0233.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0234.bin b/files/poketool/personal/evo/narc_0234.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0234.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0235.bin b/files/poketool/personal/evo/narc_0235.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0235.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0236.bin b/files/poketool/personal/evo/narc_0236.bin
deleted file mode 100644
index 41498b6d..00000000
--- a/files/poketool/personal/evo/narc_0236.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0237.bin b/files/poketool/personal/evo/narc_0237.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0237.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0238.bin b/files/poketool/personal/evo/narc_0238.bin
deleted file mode 100644
index 996fe6b9..00000000
--- a/files/poketool/personal/evo/narc_0238.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0239.bin b/files/poketool/personal/evo/narc_0239.bin
deleted file mode 100644
index 2c78355d..00000000
--- a/files/poketool/personal/evo/narc_0239.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0240.bin b/files/poketool/personal/evo/narc_0240.bin
deleted file mode 100644
index f1bbfed1..00000000
--- a/files/poketool/personal/evo/narc_0240.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0241.bin b/files/poketool/personal/evo/narc_0241.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0241.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0242.bin b/files/poketool/personal/evo/narc_0242.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0242.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0243.bin b/files/poketool/personal/evo/narc_0243.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0243.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0244.bin b/files/poketool/personal/evo/narc_0244.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0244.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0245.bin b/files/poketool/personal/evo/narc_0245.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0245.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0246.bin b/files/poketool/personal/evo/narc_0246.bin
deleted file mode 100644
index cc97fb99..00000000
--- a/files/poketool/personal/evo/narc_0246.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0247.bin b/files/poketool/personal/evo/narc_0247.bin
deleted file mode 100644
index ab5fecc0..00000000
--- a/files/poketool/personal/evo/narc_0247.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0248.bin b/files/poketool/personal/evo/narc_0248.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0248.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0249.bin b/files/poketool/personal/evo/narc_0249.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0249.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0250.bin b/files/poketool/personal/evo/narc_0250.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0250.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0251.bin b/files/poketool/personal/evo/narc_0251.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0251.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0252.bin b/files/poketool/personal/evo/narc_0252.bin
deleted file mode 100644
index 7848894f..00000000
--- a/files/poketool/personal/evo/narc_0252.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0253.bin b/files/poketool/personal/evo/narc_0253.bin
deleted file mode 100644
index b9823559..00000000
--- a/files/poketool/personal/evo/narc_0253.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0254.bin b/files/poketool/personal/evo/narc_0254.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0254.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0255.bin b/files/poketool/personal/evo/narc_0255.bin
deleted file mode 100644
index ba5d3732..00000000
--- a/files/poketool/personal/evo/narc_0255.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0256.bin b/files/poketool/personal/evo/narc_0256.bin
deleted file mode 100644
index b14392e0..00000000
--- a/files/poketool/personal/evo/narc_0256.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0257.bin b/files/poketool/personal/evo/narc_0257.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0257.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0258.bin b/files/poketool/personal/evo/narc_0258.bin
deleted file mode 100644
index d9627a37..00000000
--- a/files/poketool/personal/evo/narc_0258.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0259.bin b/files/poketool/personal/evo/narc_0259.bin
deleted file mode 100644
index 35b52aaa..00000000
--- a/files/poketool/personal/evo/narc_0259.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0260.bin b/files/poketool/personal/evo/narc_0260.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0260.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0261.bin b/files/poketool/personal/evo/narc_0261.bin
deleted file mode 100644
index 2707f1c0..00000000
--- a/files/poketool/personal/evo/narc_0261.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0262.bin b/files/poketool/personal/evo/narc_0262.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0262.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0263.bin b/files/poketool/personal/evo/narc_0263.bin
deleted file mode 100644
index b068887f..00000000
--- a/files/poketool/personal/evo/narc_0263.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0264.bin b/files/poketool/personal/evo/narc_0264.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0264.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0265.bin b/files/poketool/personal/evo/narc_0265.bin
deleted file mode 100644
index 4767e31b..00000000
--- a/files/poketool/personal/evo/narc_0265.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0266.bin b/files/poketool/personal/evo/narc_0266.bin
deleted file mode 100644
index 994786b8..00000000
--- a/files/poketool/personal/evo/narc_0266.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0267.bin b/files/poketool/personal/evo/narc_0267.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0267.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0268.bin b/files/poketool/personal/evo/narc_0268.bin
deleted file mode 100644
index 0bebf44c..00000000
--- a/files/poketool/personal/evo/narc_0268.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0269.bin b/files/poketool/personal/evo/narc_0269.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0269.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0270.bin b/files/poketool/personal/evo/narc_0270.bin
deleted file mode 100644
index 8d57b0a3..00000000
--- a/files/poketool/personal/evo/narc_0270.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0271.bin b/files/poketool/personal/evo/narc_0271.bin
deleted file mode 100644
index f9943f0f..00000000
--- a/files/poketool/personal/evo/narc_0271.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0272.bin b/files/poketool/personal/evo/narc_0272.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0272.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0273.bin b/files/poketool/personal/evo/narc_0273.bin
deleted file mode 100644
index 6681b1ee..00000000
--- a/files/poketool/personal/evo/narc_0273.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0274.bin b/files/poketool/personal/evo/narc_0274.bin
deleted file mode 100644
index fddcb470..00000000
--- a/files/poketool/personal/evo/narc_0274.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0275.bin b/files/poketool/personal/evo/narc_0275.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0275.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0276.bin b/files/poketool/personal/evo/narc_0276.bin
deleted file mode 100644
index c76bb882..00000000
--- a/files/poketool/personal/evo/narc_0276.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0277.bin b/files/poketool/personal/evo/narc_0277.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0277.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0278.bin b/files/poketool/personal/evo/narc_0278.bin
deleted file mode 100644
index 7d02c178..00000000
--- a/files/poketool/personal/evo/narc_0278.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0279.bin b/files/poketool/personal/evo/narc_0279.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0279.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0280.bin b/files/poketool/personal/evo/narc_0280.bin
deleted file mode 100644
index d7e8b31f..00000000
--- a/files/poketool/personal/evo/narc_0280.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0281.bin b/files/poketool/personal/evo/narc_0281.bin
deleted file mode 100644
index 23bd2591..00000000
--- a/files/poketool/personal/evo/narc_0281.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0282.bin b/files/poketool/personal/evo/narc_0282.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0282.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0283.bin b/files/poketool/personal/evo/narc_0283.bin
deleted file mode 100644
index 7cf60c8c..00000000
--- a/files/poketool/personal/evo/narc_0283.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0284.bin b/files/poketool/personal/evo/narc_0284.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0284.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0285.bin b/files/poketool/personal/evo/narc_0285.bin
deleted file mode 100644
index 32ce8577..00000000
--- a/files/poketool/personal/evo/narc_0285.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0286.bin b/files/poketool/personal/evo/narc_0286.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0286.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0287.bin b/files/poketool/personal/evo/narc_0287.bin
deleted file mode 100644
index 16dc6061..00000000
--- a/files/poketool/personal/evo/narc_0287.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0288.bin b/files/poketool/personal/evo/narc_0288.bin
deleted file mode 100644
index 908c203c..00000000
--- a/files/poketool/personal/evo/narc_0288.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0289.bin b/files/poketool/personal/evo/narc_0289.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0289.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0290.bin b/files/poketool/personal/evo/narc_0290.bin
deleted file mode 100644
index 9dbf4a1c..00000000
--- a/files/poketool/personal/evo/narc_0290.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0291.bin b/files/poketool/personal/evo/narc_0291.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0291.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0292.bin b/files/poketool/personal/evo/narc_0292.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0292.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0293.bin b/files/poketool/personal/evo/narc_0293.bin
deleted file mode 100644
index 3c494fd2..00000000
--- a/files/poketool/personal/evo/narc_0293.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0294.bin b/files/poketool/personal/evo/narc_0294.bin
deleted file mode 100644
index d8c8b5ab..00000000
--- a/files/poketool/personal/evo/narc_0294.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0295.bin b/files/poketool/personal/evo/narc_0295.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0295.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0296.bin b/files/poketool/personal/evo/narc_0296.bin
deleted file mode 100644
index a20e1a54..00000000
--- a/files/poketool/personal/evo/narc_0296.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0297.bin b/files/poketool/personal/evo/narc_0297.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0297.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0298.bin b/files/poketool/personal/evo/narc_0298.bin
deleted file mode 100644
index b37f92e2..00000000
--- a/files/poketool/personal/evo/narc_0298.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0299.bin b/files/poketool/personal/evo/narc_0299.bin
deleted file mode 100644
index 50f18681..00000000
--- a/files/poketool/personal/evo/narc_0299.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0300.bin b/files/poketool/personal/evo/narc_0300.bin
deleted file mode 100644
index b96a1970..00000000
--- a/files/poketool/personal/evo/narc_0300.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0301.bin b/files/poketool/personal/evo/narc_0301.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0301.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0302.bin b/files/poketool/personal/evo/narc_0302.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0302.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0303.bin b/files/poketool/personal/evo/narc_0303.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0303.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0304.bin b/files/poketool/personal/evo/narc_0304.bin
deleted file mode 100644
index 86a63ceb..00000000
--- a/files/poketool/personal/evo/narc_0304.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0305.bin b/files/poketool/personal/evo/narc_0305.bin
deleted file mode 100644
index c614fff2..00000000
--- a/files/poketool/personal/evo/narc_0305.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0306.bin b/files/poketool/personal/evo/narc_0306.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0306.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0307.bin b/files/poketool/personal/evo/narc_0307.bin
deleted file mode 100644
index 79611843..00000000
--- a/files/poketool/personal/evo/narc_0307.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0308.bin b/files/poketool/personal/evo/narc_0308.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0308.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0309.bin b/files/poketool/personal/evo/narc_0309.bin
deleted file mode 100644
index d7aca9e4..00000000
--- a/files/poketool/personal/evo/narc_0309.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0310.bin b/files/poketool/personal/evo/narc_0310.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0310.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0311.bin b/files/poketool/personal/evo/narc_0311.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0311.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0312.bin b/files/poketool/personal/evo/narc_0312.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0312.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0313.bin b/files/poketool/personal/evo/narc_0313.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0313.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0314.bin b/files/poketool/personal/evo/narc_0314.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0314.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0315.bin b/files/poketool/personal/evo/narc_0315.bin
deleted file mode 100644
index cc9eed85..00000000
--- a/files/poketool/personal/evo/narc_0315.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0316.bin b/files/poketool/personal/evo/narc_0316.bin
deleted file mode 100644
index 1121a71a..00000000
--- a/files/poketool/personal/evo/narc_0316.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0317.bin b/files/poketool/personal/evo/narc_0317.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0317.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0318.bin b/files/poketool/personal/evo/narc_0318.bin
deleted file mode 100644
index 98c191fb..00000000
--- a/files/poketool/personal/evo/narc_0318.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0319.bin b/files/poketool/personal/evo/narc_0319.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0319.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0320.bin b/files/poketool/personal/evo/narc_0320.bin
deleted file mode 100644
index 122b28fb..00000000
--- a/files/poketool/personal/evo/narc_0320.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0321.bin b/files/poketool/personal/evo/narc_0321.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0321.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0322.bin b/files/poketool/personal/evo/narc_0322.bin
deleted file mode 100644
index 03c968f7..00000000
--- a/files/poketool/personal/evo/narc_0322.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0323.bin b/files/poketool/personal/evo/narc_0323.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0323.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0324.bin b/files/poketool/personal/evo/narc_0324.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0324.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0325.bin b/files/poketool/personal/evo/narc_0325.bin
deleted file mode 100644
index 1c767dde..00000000
--- a/files/poketool/personal/evo/narc_0325.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0326.bin b/files/poketool/personal/evo/narc_0326.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0326.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0327.bin b/files/poketool/personal/evo/narc_0327.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0327.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0328.bin b/files/poketool/personal/evo/narc_0328.bin
deleted file mode 100644
index 9218480b..00000000
--- a/files/poketool/personal/evo/narc_0328.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0329.bin b/files/poketool/personal/evo/narc_0329.bin
deleted file mode 100644
index 0599e3d6..00000000
--- a/files/poketool/personal/evo/narc_0329.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0330.bin b/files/poketool/personal/evo/narc_0330.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0330.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0331.bin b/files/poketool/personal/evo/narc_0331.bin
deleted file mode 100644
index 305bd0df..00000000
--- a/files/poketool/personal/evo/narc_0331.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0332.bin b/files/poketool/personal/evo/narc_0332.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0332.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0333.bin b/files/poketool/personal/evo/narc_0333.bin
deleted file mode 100644
index 86258d89..00000000
--- a/files/poketool/personal/evo/narc_0333.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0334.bin b/files/poketool/personal/evo/narc_0334.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0334.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0335.bin b/files/poketool/personal/evo/narc_0335.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0335.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0336.bin b/files/poketool/personal/evo/narc_0336.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0336.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0337.bin b/files/poketool/personal/evo/narc_0337.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0337.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0338.bin b/files/poketool/personal/evo/narc_0338.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0338.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0339.bin b/files/poketool/personal/evo/narc_0339.bin
deleted file mode 100644
index 9de9a8fe..00000000
--- a/files/poketool/personal/evo/narc_0339.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0340.bin b/files/poketool/personal/evo/narc_0340.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0340.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0341.bin b/files/poketool/personal/evo/narc_0341.bin
deleted file mode 100644
index 346dadb0..00000000
--- a/files/poketool/personal/evo/narc_0341.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0342.bin b/files/poketool/personal/evo/narc_0342.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0342.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0343.bin b/files/poketool/personal/evo/narc_0343.bin
deleted file mode 100644
index 4dfb7328..00000000
--- a/files/poketool/personal/evo/narc_0343.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0344.bin b/files/poketool/personal/evo/narc_0344.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0344.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0345.bin b/files/poketool/personal/evo/narc_0345.bin
deleted file mode 100644
index 3180216b..00000000
--- a/files/poketool/personal/evo/narc_0345.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0346.bin b/files/poketool/personal/evo/narc_0346.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0346.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0347.bin b/files/poketool/personal/evo/narc_0347.bin
deleted file mode 100644
index b486f38c..00000000
--- a/files/poketool/personal/evo/narc_0347.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0348.bin b/files/poketool/personal/evo/narc_0348.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0348.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0349.bin b/files/poketool/personal/evo/narc_0349.bin
deleted file mode 100644
index 9111300f..00000000
--- a/files/poketool/personal/evo/narc_0349.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0350.bin b/files/poketool/personal/evo/narc_0350.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0350.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0351.bin b/files/poketool/personal/evo/narc_0351.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0351.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0352.bin b/files/poketool/personal/evo/narc_0352.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0352.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0353.bin b/files/poketool/personal/evo/narc_0353.bin
deleted file mode 100644
index 0e7a43b6..00000000
--- a/files/poketool/personal/evo/narc_0353.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0354.bin b/files/poketool/personal/evo/narc_0354.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0354.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0355.bin b/files/poketool/personal/evo/narc_0355.bin
deleted file mode 100644
index f87736c6..00000000
--- a/files/poketool/personal/evo/narc_0355.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0356.bin b/files/poketool/personal/evo/narc_0356.bin
deleted file mode 100644
index 14f00d5e..00000000
--- a/files/poketool/personal/evo/narc_0356.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0357.bin b/files/poketool/personal/evo/narc_0357.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0357.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0358.bin b/files/poketool/personal/evo/narc_0358.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0358.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0359.bin b/files/poketool/personal/evo/narc_0359.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0359.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0360.bin b/files/poketool/personal/evo/narc_0360.bin
deleted file mode 100644
index 1d70fac9..00000000
--- a/files/poketool/personal/evo/narc_0360.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0361.bin b/files/poketool/personal/evo/narc_0361.bin
deleted file mode 100644
index d0f1ad81..00000000
--- a/files/poketool/personal/evo/narc_0361.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0362.bin b/files/poketool/personal/evo/narc_0362.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0362.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0363.bin b/files/poketool/personal/evo/narc_0363.bin
deleted file mode 100644
index 54d6d690..00000000
--- a/files/poketool/personal/evo/narc_0363.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0364.bin b/files/poketool/personal/evo/narc_0364.bin
deleted file mode 100644
index 1863be49..00000000
--- a/files/poketool/personal/evo/narc_0364.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0365.bin b/files/poketool/personal/evo/narc_0365.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0365.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0366.bin b/files/poketool/personal/evo/narc_0366.bin
deleted file mode 100644
index 999daea2..00000000
--- a/files/poketool/personal/evo/narc_0366.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0367.bin b/files/poketool/personal/evo/narc_0367.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0367.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0368.bin b/files/poketool/personal/evo/narc_0368.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0368.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0369.bin b/files/poketool/personal/evo/narc_0369.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0369.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0370.bin b/files/poketool/personal/evo/narc_0370.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0370.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0371.bin b/files/poketool/personal/evo/narc_0371.bin
deleted file mode 100644
index dbb3ea19..00000000
--- a/files/poketool/personal/evo/narc_0371.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0372.bin b/files/poketool/personal/evo/narc_0372.bin
deleted file mode 100644
index 5d32b35e..00000000
--- a/files/poketool/personal/evo/narc_0372.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0373.bin b/files/poketool/personal/evo/narc_0373.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0373.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0374.bin b/files/poketool/personal/evo/narc_0374.bin
deleted file mode 100644
index 24220c7a..00000000
--- a/files/poketool/personal/evo/narc_0374.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0375.bin b/files/poketool/personal/evo/narc_0375.bin
deleted file mode 100644
index 096c378a..00000000
--- a/files/poketool/personal/evo/narc_0375.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0376.bin b/files/poketool/personal/evo/narc_0376.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0376.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0377.bin b/files/poketool/personal/evo/narc_0377.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0377.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0378.bin b/files/poketool/personal/evo/narc_0378.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0378.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0379.bin b/files/poketool/personal/evo/narc_0379.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0379.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0380.bin b/files/poketool/personal/evo/narc_0380.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0380.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0381.bin b/files/poketool/personal/evo/narc_0381.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0381.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0382.bin b/files/poketool/personal/evo/narc_0382.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0382.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0383.bin b/files/poketool/personal/evo/narc_0383.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0383.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0384.bin b/files/poketool/personal/evo/narc_0384.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0384.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0385.bin b/files/poketool/personal/evo/narc_0385.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0385.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0386.bin b/files/poketool/personal/evo/narc_0386.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0386.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0387.bin b/files/poketool/personal/evo/narc_0387.bin
deleted file mode 100644
index 6189d058..00000000
--- a/files/poketool/personal/evo/narc_0387.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0388.bin b/files/poketool/personal/evo/narc_0388.bin
deleted file mode 100644
index 7ec66ff9..00000000
--- a/files/poketool/personal/evo/narc_0388.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0389.bin b/files/poketool/personal/evo/narc_0389.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0389.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0390.bin b/files/poketool/personal/evo/narc_0390.bin
deleted file mode 100644
index 23ba6373..00000000
--- a/files/poketool/personal/evo/narc_0390.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0391.bin b/files/poketool/personal/evo/narc_0391.bin
deleted file mode 100644
index a251f2cc..00000000
--- a/files/poketool/personal/evo/narc_0391.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0392.bin b/files/poketool/personal/evo/narc_0392.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0392.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0393.bin b/files/poketool/personal/evo/narc_0393.bin
deleted file mode 100644
index 66eea037..00000000
--- a/files/poketool/personal/evo/narc_0393.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0394.bin b/files/poketool/personal/evo/narc_0394.bin
deleted file mode 100644
index 8be25a48..00000000
--- a/files/poketool/personal/evo/narc_0394.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0395.bin b/files/poketool/personal/evo/narc_0395.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0395.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0396.bin b/files/poketool/personal/evo/narc_0396.bin
deleted file mode 100644
index 3db27bd0..00000000
--- a/files/poketool/personal/evo/narc_0396.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0397.bin b/files/poketool/personal/evo/narc_0397.bin
deleted file mode 100644
index 5a0285fe..00000000
--- a/files/poketool/personal/evo/narc_0397.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0398.bin b/files/poketool/personal/evo/narc_0398.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0398.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0399.bin b/files/poketool/personal/evo/narc_0399.bin
deleted file mode 100644
index 2963932e..00000000
--- a/files/poketool/personal/evo/narc_0399.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0400.bin b/files/poketool/personal/evo/narc_0400.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0400.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0401.bin b/files/poketool/personal/evo/narc_0401.bin
deleted file mode 100644
index c0821d0c..00000000
--- a/files/poketool/personal/evo/narc_0401.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0402.bin b/files/poketool/personal/evo/narc_0402.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0402.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0403.bin b/files/poketool/personal/evo/narc_0403.bin
deleted file mode 100644
index 9b777943..00000000
--- a/files/poketool/personal/evo/narc_0403.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0404.bin b/files/poketool/personal/evo/narc_0404.bin
deleted file mode 100644
index ab831210..00000000
--- a/files/poketool/personal/evo/narc_0404.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0405.bin b/files/poketool/personal/evo/narc_0405.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0405.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0406.bin b/files/poketool/personal/evo/narc_0406.bin
deleted file mode 100644
index b1ef83ac..00000000
--- a/files/poketool/personal/evo/narc_0406.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0407.bin b/files/poketool/personal/evo/narc_0407.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0407.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0408.bin b/files/poketool/personal/evo/narc_0408.bin
deleted file mode 100644
index 40811bc9..00000000
--- a/files/poketool/personal/evo/narc_0408.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0409.bin b/files/poketool/personal/evo/narc_0409.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0409.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0410.bin b/files/poketool/personal/evo/narc_0410.bin
deleted file mode 100644
index 332ba02f..00000000
--- a/files/poketool/personal/evo/narc_0410.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0411.bin b/files/poketool/personal/evo/narc_0411.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0411.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0412.bin b/files/poketool/personal/evo/narc_0412.bin
deleted file mode 100644
index c9a03608..00000000
--- a/files/poketool/personal/evo/narc_0412.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0413.bin b/files/poketool/personal/evo/narc_0413.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0413.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0414.bin b/files/poketool/personal/evo/narc_0414.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0414.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0415.bin b/files/poketool/personal/evo/narc_0415.bin
deleted file mode 100644
index 28117982..00000000
--- a/files/poketool/personal/evo/narc_0415.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0416.bin b/files/poketool/personal/evo/narc_0416.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0416.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0417.bin b/files/poketool/personal/evo/narc_0417.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0417.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0418.bin b/files/poketool/personal/evo/narc_0418.bin
deleted file mode 100644
index 3b0c89fd..00000000
--- a/files/poketool/personal/evo/narc_0418.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0419.bin b/files/poketool/personal/evo/narc_0419.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0419.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0420.bin b/files/poketool/personal/evo/narc_0420.bin
deleted file mode 100644
index 6a28eefe..00000000
--- a/files/poketool/personal/evo/narc_0420.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0421.bin b/files/poketool/personal/evo/narc_0421.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0421.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0422.bin b/files/poketool/personal/evo/narc_0422.bin
deleted file mode 100644
index fb90fa17..00000000
--- a/files/poketool/personal/evo/narc_0422.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0423.bin b/files/poketool/personal/evo/narc_0423.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0423.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0424.bin b/files/poketool/personal/evo/narc_0424.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0424.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0425.bin b/files/poketool/personal/evo/narc_0425.bin
deleted file mode 100644
index a0cbea18..00000000
--- a/files/poketool/personal/evo/narc_0425.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0426.bin b/files/poketool/personal/evo/narc_0426.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0426.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0427.bin b/files/poketool/personal/evo/narc_0427.bin
deleted file mode 100644
index 937a1367..00000000
--- a/files/poketool/personal/evo/narc_0427.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0428.bin b/files/poketool/personal/evo/narc_0428.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0428.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0429.bin b/files/poketool/personal/evo/narc_0429.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0429.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0430.bin b/files/poketool/personal/evo/narc_0430.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0430.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0431.bin b/files/poketool/personal/evo/narc_0431.bin
deleted file mode 100644
index ed1b0bcc..00000000
--- a/files/poketool/personal/evo/narc_0431.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0432.bin b/files/poketool/personal/evo/narc_0432.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0432.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0433.bin b/files/poketool/personal/evo/narc_0433.bin
deleted file mode 100644
index 7474b352..00000000
--- a/files/poketool/personal/evo/narc_0433.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0434.bin b/files/poketool/personal/evo/narc_0434.bin
deleted file mode 100644
index 34863d80..00000000
--- a/files/poketool/personal/evo/narc_0434.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0435.bin b/files/poketool/personal/evo/narc_0435.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0435.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0436.bin b/files/poketool/personal/evo/narc_0436.bin
deleted file mode 100644
index bc1c078c..00000000
--- a/files/poketool/personal/evo/narc_0436.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0437.bin b/files/poketool/personal/evo/narc_0437.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0437.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0438.bin b/files/poketool/personal/evo/narc_0438.bin
deleted file mode 100644
index 0b74f362..00000000
--- a/files/poketool/personal/evo/narc_0438.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0439.bin b/files/poketool/personal/evo/narc_0439.bin
deleted file mode 100644
index fa064a65..00000000
--- a/files/poketool/personal/evo/narc_0439.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0440.bin b/files/poketool/personal/evo/narc_0440.bin
deleted file mode 100644
index bb8bb2fa..00000000
--- a/files/poketool/personal/evo/narc_0440.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0441.bin b/files/poketool/personal/evo/narc_0441.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0441.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0442.bin b/files/poketool/personal/evo/narc_0442.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0442.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0443.bin b/files/poketool/personal/evo/narc_0443.bin
deleted file mode 100644
index d38c2193..00000000
--- a/files/poketool/personal/evo/narc_0443.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0444.bin b/files/poketool/personal/evo/narc_0444.bin
deleted file mode 100644
index d862b757..00000000
--- a/files/poketool/personal/evo/narc_0444.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0445.bin b/files/poketool/personal/evo/narc_0445.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0445.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0446.bin b/files/poketool/personal/evo/narc_0446.bin
deleted file mode 100644
index 3d78e316..00000000
--- a/files/poketool/personal/evo/narc_0446.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0447.bin b/files/poketool/personal/evo/narc_0447.bin
deleted file mode 100644
index eaf3174f..00000000
--- a/files/poketool/personal/evo/narc_0447.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0448.bin b/files/poketool/personal/evo/narc_0448.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0448.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0449.bin b/files/poketool/personal/evo/narc_0449.bin
deleted file mode 100644
index efd4cc09..00000000
--- a/files/poketool/personal/evo/narc_0449.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0450.bin b/files/poketool/personal/evo/narc_0450.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0450.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0451.bin b/files/poketool/personal/evo/narc_0451.bin
deleted file mode 100644
index d9c86fd3..00000000
--- a/files/poketool/personal/evo/narc_0451.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0452.bin b/files/poketool/personal/evo/narc_0452.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0452.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0453.bin b/files/poketool/personal/evo/narc_0453.bin
deleted file mode 100644
index 7139e216..00000000
--- a/files/poketool/personal/evo/narc_0453.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0454.bin b/files/poketool/personal/evo/narc_0454.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0454.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0455.bin b/files/poketool/personal/evo/narc_0455.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0455.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0456.bin b/files/poketool/personal/evo/narc_0456.bin
deleted file mode 100644
index 95159802..00000000
--- a/files/poketool/personal/evo/narc_0456.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0457.bin b/files/poketool/personal/evo/narc_0457.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0457.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0458.bin b/files/poketool/personal/evo/narc_0458.bin
deleted file mode 100644
index 1737a600..00000000
--- a/files/poketool/personal/evo/narc_0458.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0459.bin b/files/poketool/personal/evo/narc_0459.bin
deleted file mode 100644
index 37dc8e1d..00000000
--- a/files/poketool/personal/evo/narc_0459.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0460.bin b/files/poketool/personal/evo/narc_0460.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0460.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0461.bin b/files/poketool/personal/evo/narc_0461.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0461.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0462.bin b/files/poketool/personal/evo/narc_0462.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0462.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0463.bin b/files/poketool/personal/evo/narc_0463.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0463.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0464.bin b/files/poketool/personal/evo/narc_0464.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0464.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0465.bin b/files/poketool/personal/evo/narc_0465.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0465.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0466.bin b/files/poketool/personal/evo/narc_0466.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0466.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0467.bin b/files/poketool/personal/evo/narc_0467.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0467.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0468.bin b/files/poketool/personal/evo/narc_0468.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0468.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0469.bin b/files/poketool/personal/evo/narc_0469.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0469.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0470.bin b/files/poketool/personal/evo/narc_0470.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0470.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0471.bin b/files/poketool/personal/evo/narc_0471.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0471.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0472.bin b/files/poketool/personal/evo/narc_0472.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0472.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0473.bin b/files/poketool/personal/evo/narc_0473.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0473.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0474.bin b/files/poketool/personal/evo/narc_0474.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0474.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0475.bin b/files/poketool/personal/evo/narc_0475.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0475.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0476.bin b/files/poketool/personal/evo/narc_0476.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0476.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0477.bin b/files/poketool/personal/evo/narc_0477.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0477.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0478.bin b/files/poketool/personal/evo/narc_0478.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0478.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0479.bin b/files/poketool/personal/evo/narc_0479.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0479.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0480.bin b/files/poketool/personal/evo/narc_0480.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0480.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0481.bin b/files/poketool/personal/evo/narc_0481.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0481.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0482.bin b/files/poketool/personal/evo/narc_0482.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0482.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0483.bin b/files/poketool/personal/evo/narc_0483.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0483.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0484.bin b/files/poketool/personal/evo/narc_0484.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0484.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0485.bin b/files/poketool/personal/evo/narc_0485.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0485.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0486.bin b/files/poketool/personal/evo/narc_0486.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0486.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0487.bin b/files/poketool/personal/evo/narc_0487.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0487.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0488.bin b/files/poketool/personal/evo/narc_0488.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0488.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0489.bin b/files/poketool/personal/evo/narc_0489.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0489.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0490.bin b/files/poketool/personal/evo/narc_0490.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0490.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0491.bin b/files/poketool/personal/evo/narc_0491.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0491.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0492.bin b/files/poketool/personal/evo/narc_0492.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0492.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0493.bin b/files/poketool/personal/evo/narc_0493.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0493.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0494.bin b/files/poketool/personal/evo/narc_0494.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0494.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0495.bin b/files/poketool/personal/evo/narc_0495.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0495.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0496.bin b/files/poketool/personal/evo/narc_0496.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0496.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0497.bin b/files/poketool/personal/evo/narc_0497.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0497.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0498.bin b/files/poketool/personal/evo/narc_0498.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0498.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0499.bin b/files/poketool/personal/evo/narc_0499.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0499.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/evo/narc_0500.bin b/files/poketool/personal/evo/narc_0500.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/evo/narc_0500.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/growtbl.json b/files/poketool/personal/growtbl.json
new file mode 100644
index 00000000..69ac3a3d
--- /dev/null
+++ b/files/poketool/personal/growtbl.json
@@ -0,0 +1,852 @@
+{
+ "growtbl": [
+ {
+ "name": "MEDIUM_FAST",
+ "table": [
+ 0,
+ 0,
+ 8,
+ 27,
+ 64,
+ 125,
+ 216,
+ 343,
+ 512,
+ 729,
+ 1000,
+ 1331,
+ 1728,
+ 2197,
+ 2744,
+ 3375,
+ 4096,
+ 4913,
+ 5832,
+ 6859,
+ 8000,
+ 9261,
+ 10648,
+ 12167,
+ 13824,
+ 15625,
+ 17576,
+ 19683,
+ 21952,
+ 24389,
+ 27000,
+ 29791,
+ 32768,
+ 35937,
+ 39304,
+ 42875,
+ 46656,
+ 50653,
+ 54872,
+ 59319,
+ 64000,
+ 68921,
+ 74088,
+ 79507,
+ 85184,
+ 91125,
+ 97336,
+ 103823,
+ 110592,
+ 117649,
+ 125000,
+ 132651,
+ 140608,
+ 148877,
+ 157464,
+ 166375,
+ 175616,
+ 185193,
+ 195112,
+ 205379,
+ 216000,
+ 226981,
+ 238328,
+ 250047,
+ 262144,
+ 274625,
+ 287496,
+ 300763,
+ 314432,
+ 328509,
+ 343000,
+ 357911,
+ 373248,
+ 389017,
+ 405224,
+ 421875,
+ 438976,
+ 456533,
+ 474552,
+ 493039,
+ 512000,
+ 531441,
+ 551368,
+ 571787,
+ 592704,
+ 614125,
+ 636056,
+ 658503,
+ 681472,
+ 704969,
+ 729000,
+ 753571,
+ 778688,
+ 804357,
+ 830584,
+ 857375,
+ 884736,
+ 912673,
+ 941192,
+ 970299,
+ 1000000
+ ]
+ },
+ {
+ "name": "ERRATIC",
+ "table": [
+ 0,
+ 0,
+ 15,
+ 52,
+ 122,
+ 237,
+ 406,
+ 637,
+ 942,
+ 1326,
+ 1800,
+ 2369,
+ 3041,
+ 3822,
+ 4719,
+ 5737,
+ 6881,
+ 8155,
+ 9564,
+ 11111,
+ 12800,
+ 14632,
+ 16610,
+ 18737,
+ 21012,
+ 23437,
+ 26012,
+ 28737,
+ 31610,
+ 34632,
+ 37800,
+ 41111,
+ 44564,
+ 48155,
+ 51881,
+ 55737,
+ 59719,
+ 63822,
+ 68041,
+ 72369,
+ 76800,
+ 81326,
+ 85942,
+ 90637,
+ 95406,
+ 100237,
+ 105122,
+ 110052,
+ 115015,
+ 120001,
+ 125000,
+ 131324,
+ 137795,
+ 144410,
+ 151165,
+ 158056,
+ 165079,
+ 172229,
+ 179503,
+ 186894,
+ 194400,
+ 202013,
+ 209728,
+ 217540,
+ 225443,
+ 233431,
+ 241496,
+ 249633,
+ 257834,
+ 267406,
+ 276458,
+ 286328,
+ 296358,
+ 305767,
+ 316074,
+ 326531,
+ 336255,
+ 346965,
+ 357812,
+ 367807,
+ 378880,
+ 390077,
+ 400293,
+ 411686,
+ 423190,
+ 433572,
+ 445239,
+ 457001,
+ 467489,
+ 479378,
+ 491346,
+ 501878,
+ 513934,
+ 526049,
+ 536557,
+ 548720,
+ 560922,
+ 571333,
+ 583539,
+ 591882,
+ 600000
+ ]
+ },
+ {
+ "name": "FLUCTUATING",
+ "table": [
+ 0,
+ 0,
+ 4,
+ 13,
+ 32,
+ 65,
+ 112,
+ 178,
+ 276,
+ 393,
+ 540,
+ 745,
+ 967,
+ 1230,
+ 1591,
+ 1957,
+ 2457,
+ 3046,
+ 3732,
+ 4526,
+ 5440,
+ 6482,
+ 7666,
+ 9003,
+ 10506,
+ 12187,
+ 14060,
+ 16140,
+ 18439,
+ 20974,
+ 23760,
+ 26811,
+ 30146,
+ 33780,
+ 37731,
+ 42017,
+ 46656,
+ 50653,
+ 55969,
+ 60505,
+ 66560,
+ 71677,
+ 78533,
+ 84277,
+ 91998,
+ 98415,
+ 107069,
+ 114205,
+ 123863,
+ 131766,
+ 142500,
+ 151222,
+ 163105,
+ 172697,
+ 185807,
+ 196322,
+ 210739,
+ 222231,
+ 238036,
+ 250562,
+ 267840,
+ 281456,
+ 300293,
+ 315059,
+ 335544,
+ 351520,
+ 373744,
+ 390991,
+ 415050,
+ 433631,
+ 459620,
+ 479600,
+ 507617,
+ 529063,
+ 559209,
+ 582187,
+ 614566,
+ 639146,
+ 673863,
+ 700115,
+ 737280,
+ 765275,
+ 804997,
+ 834809,
+ 877201,
+ 908905,
+ 954084,
+ 987754,
+ 1035837,
+ 1071552,
+ 1122660,
+ 1160499,
+ 1214753,
+ 1254796,
+ 1312322,
+ 1354652,
+ 1415577,
+ 1460276,
+ 1524731,
+ 1571884,
+ 1640000
+ ]
+ },
+ {
+ "name": "MEDIUM_SLOW",
+ "table": [
+ 0,
+ 0,
+ 9,
+ 57,
+ 96,
+ 135,
+ 179,
+ 236,
+ 314,
+ 419,
+ 560,
+ 742,
+ 973,
+ 1261,
+ 1612,
+ 2035,
+ 2535,
+ 3120,
+ 3798,
+ 4575,
+ 5460,
+ 6458,
+ 7577,
+ 8825,
+ 10208,
+ 11735,
+ 13411,
+ 15244,
+ 17242,
+ 19411,
+ 21760,
+ 24294,
+ 27021,
+ 29949,
+ 33084,
+ 36435,
+ 40007,
+ 43808,
+ 47846,
+ 52127,
+ 56660,
+ 61450,
+ 66505,
+ 71833,
+ 77440,
+ 83335,
+ 89523,
+ 96012,
+ 102810,
+ 109923,
+ 117360,
+ 125126,
+ 133229,
+ 141677,
+ 150476,
+ 159635,
+ 169159,
+ 179056,
+ 189334,
+ 199999,
+ 211060,
+ 222522,
+ 234393,
+ 246681,
+ 259392,
+ 272535,
+ 286115,
+ 300140,
+ 314618,
+ 329555,
+ 344960,
+ 360838,
+ 377197,
+ 394045,
+ 411388,
+ 429235,
+ 447591,
+ 466464,
+ 485862,
+ 505791,
+ 526260,
+ 547274,
+ 568841,
+ 590969,
+ 613664,
+ 636935,
+ 660787,
+ 685228,
+ 710266,
+ 735907,
+ 762160,
+ 789030,
+ 816525,
+ 844653,
+ 873420,
+ 902835,
+ 932903,
+ 963632,
+ 995030,
+ 1027103,
+ 1059860
+ ]
+ },
+ {
+ "name": "FAST",
+ "table": [
+ 0,
+ 0,
+ 6 ,
+ 21,
+ 51 ,
+ 100,
+ 172,
+ 274,
+ 409,
+ 583,
+ 800 ,
+ 1064,
+ 1382,
+ 1757,
+ 2195,
+ 2700,
+ 3276,
+ 3930,
+ 4665,
+ 5487,
+ 6400,
+ 7408,
+ 8518,
+ 9733 ,
+ 11059,
+ 12500,
+ 14060,
+ 15746,
+ 17561,
+ 19511,
+ 21600,
+ 23832,
+ 26214,
+ 28749,
+ 31443,
+ 34300,
+ 37324,
+ 40522,
+ 43897,
+ 47455,
+ 51200,
+ 55136,
+ 59270,
+ 63605,
+ 68147,
+ 72900,
+ 77868,
+ 83058,
+ 88473,
+ 94119 ,
+ 100000,
+ 106120,
+ 112486,
+ 119101,
+ 125971,
+ 133100,
+ 140492,
+ 148154,
+ 156089,
+ 164303,
+ 172800,
+ 181584,
+ 190662,
+ 200037,
+ 209715,
+ 219700,
+ 229996,
+ 240610,
+ 251545,
+ 262807,
+ 274400,
+ 286328,
+ 298598,
+ 311213,
+ 324179,
+ 337500,
+ 351180,
+ 365226,
+ 379641,
+ 394431,
+ 409600,
+ 425152,
+ 441094,
+ 457429,
+ 474163,
+ 491300,
+ 508844,
+ 526802,
+ 545177,
+ 563975,
+ 583200,
+ 602856,
+ 622950,
+ 643485,
+ 664467,
+ 685900,
+ 707788,
+ 730138,
+ 752953,
+ 776239,
+ 800000
+ ]
+ },
+ {
+ "name": "SLOW",
+ "table": [
+ 0,
+ 0,
+ 10,
+ 33,
+ 80,
+ 156,
+ 270,
+ 428,
+ 640,
+ 911,
+ 1250,
+ 1663,
+ 2160,
+ 2746,
+ 3430,
+ 4218,
+ 5120,
+ 6141,
+ 7290,
+ 8573,
+ 10000,
+ 11576,
+ 13310,
+ 15208,
+ 17280,
+ 19531,
+ 21970,
+ 24603,
+ 27440,
+ 30486,
+ 33750,
+ 37238,
+ 40960,
+ 44921,
+ 49130,
+ 53593,
+ 58320,
+ 63316,
+ 68590,
+ 74148,
+ 80000,
+ 86151,
+ 92610,
+ 99383,
+ 106480,
+ 113906,
+ 121670,
+ 129778,
+ 138240,
+ 147061,
+ 156250,
+ 165813,
+ 175760,
+ 186096,
+ 196830,
+ 207968,
+ 219520,
+ 231491,
+ 243890,
+ 256723,
+ 270000,
+ 283726,
+ 297910,
+ 312558,
+ 327680,
+ 343281,
+ 359370,
+ 375953,
+ 393040,
+ 410636,
+ 428750,
+ 447388,
+ 466560,
+ 486271,
+ 506530,
+ 527343,
+ 548720,
+ 570666,
+ 593190,
+ 616298,
+ 640000,
+ 664301,
+ 689210,
+ 714733,
+ 740880,
+ 767656,
+ 795070,
+ 823128,
+ 851840,
+ 881211,
+ 911250,
+ 941963,
+ 973360,
+ 1005446,
+ 1038230,
+ 1071718,
+ 1105920,
+ 1140841,
+ 1176490,
+ 1212873,
+ 1250000
+ ]
+ },
+ {
+ "name": "MEDIUM_FAST_2",
+ "table": [
+ 0,
+ 0,
+ 8,
+ 27,
+ 64,
+ 125,
+ 216,
+ 343,
+ 512,
+ 729,
+ 1000,
+ 1331,
+ 1728,
+ 2197,
+ 2744,
+ 3375,
+ 4096,
+ 4913,
+ 5832,
+ 6859,
+ 8000,
+ 9261,
+ 10648,
+ 12167,
+ 13824,
+ 15625,
+ 17576,
+ 19683,
+ 21952,
+ 24389,
+ 27000,
+ 29791,
+ 32768,
+ 35937,
+ 39304,
+ 42875,
+ 46656,
+ 50653,
+ 54872,
+ 59319,
+ 64000,
+ 68921,
+ 74088,
+ 79507,
+ 85184,
+ 91125,
+ 97336,
+ 103823,
+ 110592,
+ 117649,
+ 125000,
+ 132651,
+ 140608,
+ 148877,
+ 157464,
+ 166375,
+ 175616,
+ 185193,
+ 195112,
+ 205379,
+ 216000,
+ 226981,
+ 238328,
+ 250047,
+ 262144,
+ 274625,
+ 287496,
+ 300763,
+ 314432,
+ 328509,
+ 343000,
+ 357911,
+ 373248,
+ 389017,
+ 405224,
+ 421875,
+ 438976,
+ 456533,
+ 474552,
+ 493039,
+ 512000,
+ 531441,
+ 551368,
+ 571787,
+ 592704,
+ 614125,
+ 636056,
+ 658503,
+ 681472,
+ 704969,
+ 729000,
+ 753571,
+ 778688,
+ 804357,
+ 830584,
+ 857375,
+ 884736,
+ 912673,
+ 941192,
+ 970299,
+ 1000000
+ ]
+ },
+ {
+ "name": "MEDIUM_FAST_3",
+ "table": [
+ 0,
+ 0,
+ 8,
+ 27,
+ 64,
+ 125,
+ 216,
+ 343,
+ 512,
+ 729,
+ 1000,
+ 1331,
+ 1728,
+ 2197,
+ 2744,
+ 3375,
+ 4096,
+ 4913,
+ 5832,
+ 6859,
+ 8000,
+ 9261,
+ 10648,
+ 12167,
+ 13824,
+ 15625,
+ 17576,
+ 19683,
+ 21952,
+ 24389,
+ 27000,
+ 29791,
+ 32768,
+ 35937,
+ 39304,
+ 42875,
+ 46656,
+ 50653,
+ 54872,
+ 59319,
+ 64000,
+ 68921,
+ 74088,
+ 79507,
+ 85184,
+ 91125,
+ 97336,
+ 103823,
+ 110592,
+ 117649,
+ 125000,
+ 132651,
+ 140608,
+ 148877,
+ 157464,
+ 166375,
+ 175616,
+ 185193,
+ 195112,
+ 205379,
+ 216000,
+ 226981,
+ 238328,
+ 250047,
+ 262144,
+ 274625,
+ 287496,
+ 300763,
+ 314432,
+ 328509,
+ 343000,
+ 357911,
+ 373248,
+ 389017,
+ 405224,
+ 421875,
+ 438976,
+ 456533,
+ 474552,
+ 493039,
+ 512000,
+ 531441,
+ 551368,
+ 571787,
+ 592704,
+ 614125,
+ 636056,
+ 658503,
+ 681472,
+ 704969,
+ 729000,
+ 753571,
+ 778688,
+ 804357,
+ 830584,
+ 857375,
+ 884736,
+ 912673,
+ 941192,
+ 970299,
+ 1000000
+ ]
+ }
+ ]
+}
diff --git a/files/poketool/personal/growtbl.json.txt b/files/poketool/personal/growtbl.json.txt
new file mode 100644
index 00000000..45b248a5
--- /dev/null
+++ b/files/poketool/personal/growtbl.json.txt
@@ -0,0 +1,12 @@
+{{ doNotModifyHeader }}
+
+#include "global.h"
+
+u32 __size = 101 * sizeof(u32);
+
+const u32 growtbl[][101] = {
+## for tbl in growtbl
+ // {{ tbl.name }}
+ { {% for x in tbl.table %}{{ x }},{% endfor %} },
+## endfor
+};
diff --git a/files/poketool/personal/growtbl/.gitignore b/files/poketool/personal/growtbl/.gitignore
deleted file mode 100644
index 3eb611a0..00000000
--- a/files/poketool/personal/growtbl/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-grow2bin
-narc_*.bin
diff --git a/files/poketool/personal/growtbl/Makefile b/files/poketool/personal/growtbl/Makefile
deleted file mode 100644
index 4bbb579f..00000000
--- a/files/poketool/personal/growtbl/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-CC = gcc
-CFLAGS = -O3
-
-growth_rates_txt = $(wildcard *.txt)
-growth_rates_bin = $(growth_rates_txt:%.txt=%.bin)
-
-.PHONY: all clean
-
-all: grow2bin $(growth_rates_bin)
- @:
-
-clean:
- $(RM) grow2bin $(growth_rates_bin)
-
-grow2bin: grow2bin.c
- $(CC) $(CFLAGS) -o $@ $^
-
-%.bin: %.txt
- ./grow2bin $<
diff --git a/files/poketool/personal/growtbl/narc_0000.txt b/files/poketool/personal/growtbl/narc_0000.txt
deleted file mode 100644
index 24a29a0f..00000000
--- a/files/poketool/personal/growtbl/narc_0000.txt
+++ /dev/null
@@ -1,101 +0,0 @@
-0
-0
-8
-27
-64
-125
-216
-343
-512
-729
-1000
-1331
-1728
-2197
-2744
-3375
-4096
-4913
-5832
-6859
-8000
-9261
-10648
-12167
-13824
-15625
-17576
-19683
-21952
-24389
-27000
-29791
-32768
-35937
-39304
-42875
-46656
-50653
-54872
-59319
-64000
-68921
-74088
-79507
-85184
-91125
-97336
-103823
-110592
-117649
-125000
-132651
-140608
-148877
-157464
-166375
-175616
-185193
-195112
-205379
-216000
-226981
-238328
-250047
-262144
-274625
-287496
-300763
-314432
-328509
-343000
-357911
-373248
-389017
-405224
-421875
-438976
-456533
-474552
-493039
-512000
-531441
-551368
-571787
-592704
-614125
-636056
-658503
-681472
-704969
-729000
-753571
-778688
-804357
-830584
-857375
-884736
-912673
-941192
-970299
-1000000
diff --git a/files/poketool/personal/growtbl/narc_0001.txt b/files/poketool/personal/growtbl/narc_0001.txt
deleted file mode 100644
index b12ec561..00000000
--- a/files/poketool/personal/growtbl/narc_0001.txt
+++ /dev/null
@@ -1,101 +0,0 @@
-0
-0
-15
-52
-122
-237
-406
-637
-942
-1326
-1800
-2369
-3041
-3822
-4719
-5737
-6881
-8155
-9564
-11111
-12800
-14632
-16610
-18737
-21012
-23437
-26012
-28737
-31610
-34632
-37800
-41111
-44564
-48155
-51881
-55737
-59719
-63822
-68041
-72369
-76800
-81326
-85942
-90637
-95406
-100237
-105122
-110052
-115015
-120001
-125000
-131324
-137795
-144410
-151165
-158056
-165079
-172229
-179503
-186894
-194400
-202013
-209728
-217540
-225443
-233431
-241496
-249633
-257834
-267406
-276458
-286328
-296358
-305767
-316074
-326531
-336255
-346965
-357812
-367807
-378880
-390077
-400293
-411686
-423190
-433572
-445239
-457001
-467489
-479378
-491346
-501878
-513934
-526049
-536557
-548720
-560922
-571333
-583539
-591882
-600000
diff --git a/files/poketool/personal/growtbl/narc_0002.txt b/files/poketool/personal/growtbl/narc_0002.txt
deleted file mode 100644
index be1dba64..00000000
--- a/files/poketool/personal/growtbl/narc_0002.txt
+++ /dev/null
@@ -1,101 +0,0 @@
-0
-0
-4
-13
-32
-65
-112
-178
-276
-393
-540
-745
-967
-1230
-1591
-1957
-2457
-3046
-3732
-4526
-5440
-6482
-7666
-9003
-10506
-12187
-14060
-16140
-18439
-20974
-23760
-26811
-30146
-33780
-37731
-42017
-46656
-50653
-55969
-60505
-66560
-71677
-78533
-84277
-91998
-98415
-107069
-114205
-123863
-131766
-142500
-151222
-163105
-172697
-185807
-196322
-210739
-222231
-238036
-250562
-267840
-281456
-300293
-315059
-335544
-351520
-373744
-390991
-415050
-433631
-459620
-479600
-507617
-529063
-559209
-582187
-614566
-639146
-673863
-700115
-737280
-765275
-804997
-834809
-877201
-908905
-954084
-987754
-1035837
-1071552
-1122660
-1160499
-1214753
-1254796
-1312322
-1354652
-1415577
-1460276
-1524731
-1571884
-1640000
diff --git a/files/poketool/personal/growtbl/narc_0003.txt b/files/poketool/personal/growtbl/narc_0003.txt
deleted file mode 100644
index eff71429..00000000
--- a/files/poketool/personal/growtbl/narc_0003.txt
+++ /dev/null
@@ -1,101 +0,0 @@
-0
-0
-9
-57
-96
-135
-179
-236
-314
-419
-560
-742
-973
-1261
-1612
-2035
-2535
-3120
-3798
-4575
-5460
-6458
-7577
-8825
-10208
-11735
-13411
-15244
-17242
-19411
-21760
-24294
-27021
-29949
-33084
-36435
-40007
-43808
-47846
-52127
-56660
-61450
-66505
-71833
-77440
-83335
-89523
-96012
-102810
-109923
-117360
-125126
-133229
-141677
-150476
-159635
-169159
-179056
-189334
-199999
-211060
-222522
-234393
-246681
-259392
-272535
-286115
-300140
-314618
-329555
-344960
-360838
-377197
-394045
-411388
-429235
-447591
-466464
-485862
-505791
-526260
-547274
-568841
-590969
-613664
-636935
-660787
-685228
-710266
-735907
-762160
-789030
-816525
-844653
-873420
-902835
-932903
-963632
-995030
-1027103
-1059860
diff --git a/files/poketool/personal/growtbl/narc_0004.txt b/files/poketool/personal/growtbl/narc_0004.txt
deleted file mode 100644
index 47bb6f6c..00000000
--- a/files/poketool/personal/growtbl/narc_0004.txt
+++ /dev/null
@@ -1,101 +0,0 @@
-0
-0
-6
-21
-51
-100
-172
-274
-409
-583
-800
-1064
-1382
-1757
-2195
-2700
-3276
-3930
-4665
-5487
-6400
-7408
-8518
-9733
-11059
-12500
-14060
-15746
-17561
-19511
-21600
-23832
-26214
-28749
-31443
-34300
-37324
-40522
-43897
-47455
-51200
-55136
-59270
-63605
-68147
-72900
-77868
-83058
-88473
-94119
-100000
-106120
-112486
-119101
-125971
-133100
-140492
-148154
-156089
-164303
-172800
-181584
-190662
-200037
-209715
-219700
-229996
-240610
-251545
-262807
-274400
-286328
-298598
-311213
-324179
-337500
-351180
-365226
-379641
-394431
-409600
-425152
-441094
-457429
-474163
-491300
-508844
-526802
-545177
-563975
-583200
-602856
-622950
-643485
-664467
-685900
-707788
-730138
-752953
-776239
-800000
diff --git a/files/poketool/personal/growtbl/narc_0005.txt b/files/poketool/personal/growtbl/narc_0005.txt
deleted file mode 100644
index 0dc0f8f7..00000000
--- a/files/poketool/personal/growtbl/narc_0005.txt
+++ /dev/null
@@ -1,101 +0,0 @@
-0
-0
-10
-33
-80
-156
-270
-428
-640
-911
-1250
-1663
-2160
-2746
-3430
-4218
-5120
-6141
-7290
-8573
-10000
-11576
-13310
-15208
-17280
-19531
-21970
-24603
-27440
-30486
-33750
-37238
-40960
-44921
-49130
-53593
-58320
-63316
-68590
-74148
-80000
-86151
-92610
-99383
-106480
-113906
-121670
-129778
-138240
-147061
-156250
-165813
-175760
-186096
-196830
-207968
-219520
-231491
-243890
-256723
-270000
-283726
-297910
-312558
-327680
-343281
-359370
-375953
-393040
-410636
-428750
-447388
-466560
-486271
-506530
-527343
-548720
-570666
-593190
-616298
-640000
-664301
-689210
-714733
-740880
-767656
-795070
-823128
-851840
-881211
-911250
-941963
-973360
-1005446
-1038230
-1071718
-1105920
-1140841
-1176490
-1212873
-1250000
diff --git a/files/poketool/personal/growtbl/narc_0006.txt b/files/poketool/personal/growtbl/narc_0006.txt
deleted file mode 100644
index 24a29a0f..00000000
--- a/files/poketool/personal/growtbl/narc_0006.txt
+++ /dev/null
@@ -1,101 +0,0 @@
-0
-0
-8
-27
-64
-125
-216
-343
-512
-729
-1000
-1331
-1728
-2197
-2744
-3375
-4096
-4913
-5832
-6859
-8000
-9261
-10648
-12167
-13824
-15625
-17576
-19683
-21952
-24389
-27000
-29791
-32768
-35937
-39304
-42875
-46656
-50653
-54872
-59319
-64000
-68921
-74088
-79507
-85184
-91125
-97336
-103823
-110592
-117649
-125000
-132651
-140608
-148877
-157464
-166375
-175616
-185193
-195112
-205379
-216000
-226981
-238328
-250047
-262144
-274625
-287496
-300763
-314432
-328509
-343000
-357911
-373248
-389017
-405224
-421875
-438976
-456533
-474552
-493039
-512000
-531441
-551368
-571787
-592704
-614125
-636056
-658503
-681472
-704969
-729000
-753571
-778688
-804357
-830584
-857375
-884736
-912673
-941192
-970299
-1000000
diff --git a/files/poketool/personal/growtbl/narc_0007.txt b/files/poketool/personal/growtbl/narc_0007.txt
deleted file mode 100644
index 24a29a0f..00000000
--- a/files/poketool/personal/growtbl/narc_0007.txt
+++ /dev/null
@@ -1,101 +0,0 @@
-0
-0
-8
-27
-64
-125
-216
-343
-512
-729
-1000
-1331
-1728
-2197
-2744
-3375
-4096
-4913
-5832
-6859
-8000
-9261
-10648
-12167
-13824
-15625
-17576
-19683
-21952
-24389
-27000
-29791
-32768
-35937
-39304
-42875
-46656
-50653
-54872
-59319
-64000
-68921
-74088
-79507
-85184
-91125
-97336
-103823
-110592
-117649
-125000
-132651
-140608
-148877
-157464
-166375
-175616
-185193
-195112
-205379
-216000
-226981
-238328
-250047
-262144
-274625
-287496
-300763
-314432
-328509
-343000
-357911
-373248
-389017
-405224
-421875
-438976
-456533
-474552
-493039
-512000
-531441
-551368
-571787
-592704
-614125
-636056
-658503
-681472
-704969
-729000
-753571
-778688
-804357
-830584
-857375
-884736
-912673
-941192
-970299
-1000000
diff --git a/files/poketool/personal/personal.json b/files/poketool/personal/personal.json
new file mode 100644
index 00000000..47a6fa81
--- /dev/null
+++ b/files/poketool/personal/personal.json
@@ -0,0 +1,39738 @@
+{
+ "baseStats": [
+ {
+ "species": "NONE",
+ "hp": 0,
+ "atk": 0,
+ "def": 0,
+ "speed": 0,
+ "spatk": 0,
+ "spdef": 0,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 0,
+ "expYield": 0,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.0,
+ "eggCycles": 0,
+ "friendship": 0,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_NONE",
+ "EGG_GROUP_NONE"
+ ],
+ "abilities": [
+ "ABILITY_NONE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [],
+ "hms": []
+ },
+ {
+ "species": "BULBASAUR",
+ "hp": 45,
+ "atk": 49,
+ "def": 49,
+ "speed": 45,
+ "spatk": 65,
+ "spdef": 65,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_POISON"
+ ],
+ "catchRate": 45,
+ "expYield": 64,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_OVERGROW",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 32,
+ 36,
+ 42,
+ 43,
+ 44,
+ 45,
+ 53,
+ 58,
+ 70,
+ 75,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "IVYSAUR",
+ "hp": 60,
+ "atk": 62,
+ "def": 63,
+ "speed": 60,
+ "spatk": 80,
+ "spdef": 80,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_POISON"
+ ],
+ "catchRate": 45,
+ "expYield": 141,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_OVERGROW",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 32,
+ 36,
+ 42,
+ 43,
+ 44,
+ 45,
+ 53,
+ 58,
+ 70,
+ 75,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "VENUSAUR",
+ "hp": 80,
+ "atk": 82,
+ "def": 83,
+ "speed": 80,
+ "spatk": 100,
+ "spdef": 100,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_POISON"
+ ],
+ "catchRate": 45,
+ "expYield": 208,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 2,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_OVERGROW",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 9,
+ 10,
+ 11,
+ 15,
+ 17,
+ 19,
+ 21,
+ 22,
+ 26,
+ 27,
+ 32,
+ 36,
+ 42,
+ 43,
+ 44,
+ 45,
+ 53,
+ 58,
+ 68,
+ 70,
+ 75,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "CHARMANDER",
+ "hp": 39,
+ "atk": 52,
+ "def": 43,
+ "speed": 65,
+ "spatk": 60,
+ "spdef": 50,
+ "types": [
+ "TYPE_FIRE",
+ "TYPE_FIRE"
+ ],
+ "catchRate": 45,
+ "expYield": 65,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_DRAGON"
+ ],
+ "abilities": [
+ "ABILITY_BLAZE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 1,
+ 2,
+ 6,
+ 10,
+ 11,
+ 17,
+ 21,
+ 23,
+ 27,
+ 28,
+ 31,
+ 32,
+ 35,
+ 38,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 50,
+ 56,
+ 58,
+ 61,
+ 65,
+ 75,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "CHARMELEON",
+ "hp": 58,
+ "atk": 64,
+ "def": 58,
+ "speed": 80,
+ "spatk": 80,
+ "spdef": 65,
+ "types": [
+ "TYPE_FIRE",
+ "TYPE_FIRE"
+ ],
+ "catchRate": 45,
+ "expYield": 142,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_DRAGON"
+ ],
+ "abilities": [
+ "ABILITY_BLAZE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 1,
+ 2,
+ 6,
+ 10,
+ 11,
+ 17,
+ 21,
+ 23,
+ 27,
+ 28,
+ 31,
+ 32,
+ 35,
+ 38,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 50,
+ 56,
+ 58,
+ 61,
+ 65,
+ 75,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "CHARIZARD",
+ "hp": 78,
+ "atk": 84,
+ "def": 78,
+ "speed": 100,
+ "spatk": 109,
+ "spdef": 85,
+ "types": [
+ "TYPE_FIRE",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 45,
+ "expYield": 209,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 3,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_DRAGON"
+ ],
+ "abilities": [
+ "ABILITY_BLAZE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 1,
+ 2,
+ 5,
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 21,
+ 22,
+ 23,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 35,
+ 38,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 47,
+ 50,
+ 51,
+ 52,
+ 56,
+ 58,
+ 59,
+ 61,
+ 65,
+ 68,
+ 75,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 2,
+ 4,
+ 5,
+ 6
+ ]
+ },
+ {
+ "species": "SQUIRTLE",
+ "hp": 44,
+ "atk": 48,
+ "def": 65,
+ "speed": 43,
+ "spatk": 50,
+ "spdef": 64,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 45,
+ "expYield": 66,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_WATER_1"
+ ],
+ "abilities": [
+ "ABILITY_TORRENT",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 23,
+ 27,
+ 28,
+ 31,
+ 32,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 55,
+ 56,
+ 58,
+ 74,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "WARTORTLE",
+ "hp": 59,
+ "atk": 63,
+ "def": 80,
+ "speed": 58,
+ "spatk": 65,
+ "spdef": 80,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 45,
+ "expYield": 143,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_WATER_1"
+ ],
+ "abilities": [
+ "ABILITY_TORRENT",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 23,
+ 27,
+ 28,
+ 31,
+ 32,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 55,
+ 56,
+ 58,
+ 74,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "BLASTOISE",
+ "hp": 79,
+ "atk": 83,
+ "def": 100,
+ "speed": 78,
+ "spatk": 85,
+ "spdef": 105,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 45,
+ "expYield": 210,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 3,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_WATER_1"
+ ],
+ "abilities": [
+ "ABILITY_TORRENT",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 5,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 52,
+ 55,
+ 56,
+ 58,
+ 68,
+ 72,
+ 74,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90,
+ 91
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 7,
+ 8
+ ]
+ },
+ {
+ "species": "CATERPIE",
+ "hp": 45,
+ "atk": 30,
+ "def": 35,
+ "speed": 45,
+ "spatk": 20,
+ "spdef": 20,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_BUG"
+ ],
+ "catchRate": 255,
+ "expYield": 53,
+ "hp_yield": 1,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_SHIELD_DUST",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [],
+ "hms": []
+ },
+ {
+ "species": "METAPOD",
+ "hp": 50,
+ "atk": 20,
+ "def": 55,
+ "speed": 30,
+ "spatk": 25,
+ "spdef": 25,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_BUG"
+ ],
+ "catchRate": 120,
+ "expYield": 72,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 2,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_SHED_SKIN",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [],
+ "hms": []
+ },
+ {
+ "species": "BUTTERFREE",
+ "hp": 60,
+ "atk": 45,
+ "def": 50,
+ "speed": 70,
+ "spatk": 80,
+ "spdef": 80,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 45,
+ "expYield": 160,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 2,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_SILVERPOWDER"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_COMPOUND_EYES",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 8,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 27,
+ 29,
+ 30,
+ 32,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 51,
+ 53,
+ 58,
+ 62,
+ 68,
+ 70,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 5
+ ]
+ },
+ {
+ "species": "WEEDLE",
+ "hp": 40,
+ "atk": 35,
+ "def": 30,
+ "speed": 50,
+ "spatk": 20,
+ "spdef": 20,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_POISON"
+ ],
+ "catchRate": 255,
+ "expYield": 52,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_SHIELD_DUST",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [],
+ "hms": []
+ },
+ {
+ "species": "KAKUNA",
+ "hp": 45,
+ "atk": 25,
+ "def": 50,
+ "speed": 35,
+ "spatk": 25,
+ "spdef": 25,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_POISON"
+ ],
+ "catchRate": 120,
+ "expYield": 71,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 2,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_SHED_SKIN",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [],
+ "hms": []
+ },
+ {
+ "species": "BEEDRILL",
+ "hp": 65,
+ "atk": 80,
+ "def": 40,
+ "speed": 75,
+ "spatk": 45,
+ "spdef": 80,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_POISON"
+ ],
+ "catchRate": 45,
+ "expYield": 159,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_POISON_BARB"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_SWARM",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 31,
+ 32,
+ 36,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 51,
+ 54,
+ 58,
+ 62,
+ 66,
+ 68,
+ 70,
+ 75,
+ 78,
+ 81,
+ 82,
+ 83,
+ 84,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 1,
+ 5,
+ 6
+ ]
+ },
+ {
+ "species": "PIDGEY",
+ "hp": 40,
+ "atk": 45,
+ "def": 40,
+ "speed": 56,
+ "spatk": 35,
+ "spdef": 35,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 255,
+ "expYield": 55,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FLYING",
+ "EGG_GROUP_FLYING"
+ ],
+ "abilities": [
+ "ABILITY_KEEN_EYE",
+ "ABILITY_TANGLED_FEET"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 17,
+ 18,
+ 21,
+ 27,
+ 32,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 51,
+ 58,
+ 78,
+ 82,
+ 83,
+ 87,
+ 88,
+ 89,
+ 90
+ ],
+ "hms": [
+ 2,
+ 5
+ ]
+ },
+ {
+ "species": "PIDGEOTTO",
+ "hp": 63,
+ "atk": 60,
+ "def": 55,
+ "speed": 71,
+ "spatk": 50,
+ "spdef": 50,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 120,
+ "expYield": 113,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 2,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FLYING",
+ "EGG_GROUP_FLYING"
+ ],
+ "abilities": [
+ "ABILITY_KEEN_EYE",
+ "ABILITY_TANGLED_FEET"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 17,
+ 18,
+ 21,
+ 27,
+ 32,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 51,
+ 58,
+ 78,
+ 82,
+ 83,
+ 87,
+ 88,
+ 89,
+ 90
+ ],
+ "hms": [
+ 2,
+ 5
+ ]
+ },
+ {
+ "species": "PIDGEOT",
+ "hp": 83,
+ "atk": 80,
+ "def": 75,
+ "speed": 91,
+ "spatk": 70,
+ "spdef": 70,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 45,
+ "expYield": 172,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 3,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FLYING",
+ "EGG_GROUP_FLYING"
+ ],
+ "abilities": [
+ "ABILITY_KEEN_EYE",
+ "ABILITY_TANGLED_FEET"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 18,
+ 21,
+ 27,
+ 32,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 51,
+ 58,
+ 68,
+ 78,
+ 82,
+ 83,
+ 87,
+ 88,
+ 89,
+ 90
+ ],
+ "hms": [
+ 2,
+ 5
+ ]
+ },
+ {
+ "species": "RATTATA",
+ "hp": 30,
+ "atk": 56,
+ "def": 35,
+ "speed": 72,
+ "spatk": 25,
+ "spdef": 35,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 255,
+ "expYield": 57,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_CHILAN_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_RUN_AWAY",
+ "ABILITY_GUTS"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 28,
+ 30,
+ 32,
+ 34,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 57,
+ 58,
+ 73,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90
+ ],
+ "hms": [
+ 1,
+ 6
+ ]
+ },
+ {
+ "species": "RATICATE",
+ "hp": 55,
+ "atk": 81,
+ "def": 60,
+ "speed": 97,
+ "spatk": 50,
+ "spdef": 70,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 127,
+ "expYield": 116,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 2,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_CHILAN_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_RUN_AWAY",
+ "ABILITY_GUTS"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 28,
+ 30,
+ 32,
+ 34,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 57,
+ 58,
+ 68,
+ 73,
+ 75,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "SPEAROW",
+ "hp": 40,
+ "atk": 60,
+ "def": 30,
+ "speed": 70,
+ "spatk": 31,
+ "spdef": 31,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 255,
+ "expYield": 58,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FLYING",
+ "EGG_GROUP_FLYING"
+ ],
+ "abilities": [
+ "ABILITY_KEEN_EYE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 17,
+ 18,
+ 21,
+ 27,
+ 32,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 51,
+ 58,
+ 78,
+ 82,
+ 83,
+ 87,
+ 88,
+ 89,
+ 90
+ ],
+ "hms": [
+ 2,
+ 5
+ ]
+ },
+ {
+ "species": "FEAROW",
+ "hp": 65,
+ "atk": 90,
+ "def": 65,
+ "speed": 100,
+ "spatk": 61,
+ "spdef": 61,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 90,
+ "expYield": 162,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 2,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_SHARP_BEAK"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FLYING",
+ "EGG_GROUP_FLYING"
+ ],
+ "abilities": [
+ "ABILITY_KEEN_EYE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 18,
+ 21,
+ 27,
+ 32,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 51,
+ 58,
+ 68,
+ 78,
+ 82,
+ 83,
+ 87,
+ 88,
+ 89,
+ 90
+ ],
+ "hms": [
+ 2,
+ 5
+ ]
+ },
+ {
+ "species": "EKANS",
+ "hp": 35,
+ "atk": 60,
+ "def": 44,
+ "speed": 55,
+ "spatk": 40,
+ "spdef": 54,
+ "types": [
+ "TYPE_POISON",
+ "TYPE_POISON"
+ ],
+ "catchRate": 255,
+ "expYield": 62,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_DRAGON"
+ ],
+ "abilities": [
+ "ABILITY_INTIMIDATE",
+ "ABILITY_SHED_SKIN"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 17,
+ 18,
+ 19,
+ 21,
+ 23,
+ 26,
+ 27,
+ 28,
+ 32,
+ 36,
+ 39,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 49,
+ 58,
+ 66,
+ 78,
+ 79,
+ 80,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4
+ ]
+ },
+ {
+ "species": "ARBOK",
+ "hp": 60,
+ "atk": 85,
+ "def": 69,
+ "speed": 80,
+ "spatk": 65,
+ "spdef": 79,
+ "types": [
+ "TYPE_POISON",
+ "TYPE_POISON"
+ ],
+ "catchRate": 90,
+ "expYield": 147,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_DRAGON"
+ ],
+ "abilities": [
+ "ABILITY_INTIMIDATE",
+ "ABILITY_SHED_SKIN"
+ ],
+ "greatMarshRate": 60,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 18,
+ 19,
+ 21,
+ 23,
+ 26,
+ 27,
+ 28,
+ 32,
+ 36,
+ 39,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 49,
+ 58,
+ 66,
+ 68,
+ 78,
+ 79,
+ 80,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4
+ ]
+ },
+ {
+ "species": "PIKACHU",
+ "hp": 35,
+ "atk": 55,
+ "def": 30,
+ "speed": 90,
+ "spatk": 50,
+ "spdef": 40,
+ "types": [
+ "TYPE_ELECTRIC",
+ "TYPE_ELECTRIC"
+ ],
+ "catchRate": 190,
+ "expYield": 82,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 2,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_ORAN_BERRY",
+ "ITEM_LIGHT_BALL"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 10,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FAIRY"
+ ],
+ "abilities": [
+ "ABILITY_STATIC",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 10,
+ 16,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 28,
+ 31,
+ 32,
+ 34,
+ 42,
+ 43,
+ 44,
+ 45,
+ 56,
+ 57,
+ 58,
+ 70,
+ 73,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "RAICHU",
+ "hp": 60,
+ "atk": 90,
+ "def": 55,
+ "speed": 100,
+ "spatk": 90,
+ "spdef": 80,
+ "types": [
+ "TYPE_ELECTRIC",
+ "TYPE_ELECTRIC"
+ ],
+ "catchRate": 75,
+ "expYield": 122,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 3,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_ORAN_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 10,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FAIRY"
+ ],
+ "abilities": [
+ "ABILITY_STATIC",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 10,
+ 15,
+ 16,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 28,
+ 31,
+ 32,
+ 34,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 52,
+ 56,
+ 57,
+ 58,
+ 68,
+ 70,
+ 73,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "SANDSHREW",
+ "hp": 50,
+ "atk": 75,
+ "def": 85,
+ "speed": 40,
+ "spatk": 20,
+ "spdef": 30,
+ "types": [
+ "TYPE_GROUND",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 255,
+ "expYield": 93,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_QUICK_CLAW"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_SAND_VEIL",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 10,
+ 11,
+ 17,
+ 21,
+ 23,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 37,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 56,
+ 58,
+ 65,
+ 74,
+ 75,
+ 76,
+ 78,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "SANDSLASH",
+ "hp": 75,
+ "atk": 100,
+ "def": 110,
+ "speed": 65,
+ "spatk": 45,
+ "spdef": 55,
+ "types": [
+ "TYPE_GROUND",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 90,
+ "expYield": 163,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 2,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_QUICK_CLAW"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_SAND_VEIL",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 21,
+ 23,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 37,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 52,
+ 56,
+ 58,
+ 65,
+ 68,
+ 71,
+ 74,
+ 75,
+ 76,
+ 78,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "NIDORAN_F",
+ "hp": 55,
+ "atk": 47,
+ "def": 52,
+ "speed": 41,
+ "spatk": 40,
+ "spdef": 40,
+ "types": [
+ "TYPE_POISON",
+ "TYPE_POISON"
+ ],
+ "catchRate": 235,
+ "expYield": 59,
+ "hp_yield": 1,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 1.0,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_POISON_POINT",
+ "ABILITY_RIVALRY"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 28,
+ 32,
+ 34,
+ 36,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 58,
+ 65,
+ 78,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "NIDORINA",
+ "hp": 70,
+ "atk": 62,
+ "def": 67,
+ "speed": 56,
+ "spatk": 55,
+ "spdef": 55,
+ "types": [
+ "TYPE_POISON",
+ "TYPE_POISON"
+ ],
+ "catchRate": 120,
+ "expYield": 117,
+ "hp_yield": 2,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 1.0,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_POISON_POINT",
+ "ABILITY_RIVALRY"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 28,
+ 32,
+ 34,
+ 36,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 58,
+ 65,
+ 78,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "NIDOQUEEN",
+ "hp": 90,
+ "atk": 82,
+ "def": 87,
+ "speed": 76,
+ "spatk": 75,
+ "spdef": 85,
+ "types": [
+ "TYPE_POISON",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 45,
+ "expYield": 194,
+ "hp_yield": 3,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 1.0,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_POISON_POINT",
+ "ABILITY_RIVALRY"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 5,
+ 6,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 30,
+ 31,
+ 32,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 52,
+ 56,
+ 58,
+ 59,
+ 65,
+ 68,
+ 71,
+ 72,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "NIDORAN_M",
+ "hp": 46,
+ "atk": 57,
+ "def": 40,
+ "speed": 50,
+ "spatk": 40,
+ "spdef": 40,
+ "types": [
+ "TYPE_POISON",
+ "TYPE_POISON"
+ ],
+ "catchRate": 235,
+ "expYield": 60,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.0,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_POISON_POINT",
+ "ABILITY_RIVALRY"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 28,
+ 32,
+ 34,
+ 36,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 58,
+ 65,
+ 78,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "NIDORINO",
+ "hp": 61,
+ "atk": 72,
+ "def": 57,
+ "speed": 65,
+ "spatk": 55,
+ "spdef": 55,
+ "types": [
+ "TYPE_POISON",
+ "TYPE_POISON"
+ ],
+ "catchRate": 120,
+ "expYield": 118,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.0,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_POISON_POINT",
+ "ABILITY_RIVALRY"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 28,
+ 32,
+ 34,
+ 36,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 58,
+ 65,
+ 78,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "NIDOKING",
+ "hp": 81,
+ "atk": 92,
+ "def": 77,
+ "speed": 85,
+ "spatk": 85,
+ "spdef": 75,
+ "types": [
+ "TYPE_POISON",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 45,
+ "expYield": 195,
+ "hp_yield": 0,
+ "atk_yield": 3,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.0,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_POISON_POINT",
+ "ABILITY_RIVALRY"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 5,
+ 6,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 30,
+ 31,
+ 32,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 52,
+ 56,
+ 58,
+ 59,
+ 65,
+ 68,
+ 71,
+ 72,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "CLEFAIRY",
+ "hp": 70,
+ "atk": 45,
+ "def": 48,
+ "speed": 35,
+ "spatk": 60,
+ "spdef": 65,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 150,
+ "expYield": 68,
+ "hp_yield": 2,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_LEPPA_BERRY",
+ "ITEM_MOON_STONE"
+ ],
+ "genderRatio": 0.75,
+ "eggCycles": 10,
+ "friendship": 140,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_FAIRY",
+ "EGG_GROUP_FAIRY"
+ ],
+ "abilities": [
+ "ABILITY_CUTE_CHARM",
+ "ABILITY_MAGIC_GUARD"
+ ],
+ "greatMarshRate": 0,
+ "color": 9,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 38,
+ 42,
+ 43,
+ 44,
+ 45,
+ 49,
+ 56,
+ 57,
+ 58,
+ 60,
+ 67,
+ 70,
+ 73,
+ 76,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "CLEFABLE",
+ "hp": 95,
+ "atk": 70,
+ "def": 73,
+ "speed": 60,
+ "spatk": 85,
+ "spdef": 90,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 25,
+ "expYield": 129,
+ "hp_yield": 3,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_LEPPA_BERRY",
+ "ITEM_MOON_STONE"
+ ],
+ "genderRatio": 0.75,
+ "eggCycles": 10,
+ "friendship": 140,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_FAIRY",
+ "EGG_GROUP_FAIRY"
+ ],
+ "abilities": [
+ "ABILITY_CUTE_CHARM",
+ "ABILITY_MAGIC_GUARD"
+ ],
+ "greatMarshRate": 0,
+ "color": 9,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 38,
+ 42,
+ 43,
+ 44,
+ 45,
+ 49,
+ 52,
+ 56,
+ 57,
+ 58,
+ 60,
+ 67,
+ 68,
+ 70,
+ 73,
+ 76,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "VULPIX",
+ "hp": 38,
+ "atk": 41,
+ "def": 40,
+ "speed": 65,
+ "spatk": 50,
+ "spdef": 65,
+ "types": [
+ "TYPE_FIRE",
+ "TYPE_FIRE"
+ ],
+ "catchRate": 190,
+ "expYield": 63,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_RAWST_BERRY",
+ "ITEM_RAWST_BERRY"
+ ],
+ "genderRatio": 0.75,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_FLASH_FIRE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 10,
+ 11,
+ 17,
+ 20,
+ 21,
+ 23,
+ 27,
+ 28,
+ 32,
+ 35,
+ 38,
+ 42,
+ 43,
+ 44,
+ 45,
+ 50,
+ 58,
+ 61,
+ 66,
+ 77,
+ 78,
+ 79,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "NINETALES",
+ "hp": 73,
+ "atk": 76,
+ "def": 75,
+ "speed": 100,
+ "spatk": 81,
+ "spdef": 100,
+ "types": [
+ "TYPE_FIRE",
+ "TYPE_FIRE"
+ ],
+ "catchRate": 75,
+ "expYield": 178,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_RAWST_BERRY",
+ "ITEM_RAWST_BERRY"
+ ],
+ "genderRatio": 0.75,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_FLASH_FIRE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 4,
+ 5,
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 20,
+ 21,
+ 22,
+ 23,
+ 27,
+ 28,
+ 32,
+ 35,
+ 38,
+ 42,
+ 43,
+ 44,
+ 45,
+ 50,
+ 58,
+ 61,
+ 66,
+ 68,
+ 77,
+ 78,
+ 79,
+ 82,
+ 83,
+ 85,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "JIGGLYPUFF",
+ "hp": 115,
+ "atk": 45,
+ "def": 20,
+ "speed": 20,
+ "spatk": 45,
+ "spdef": 25,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 170,
+ "expYield": 76,
+ "hp_yield": 2,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.75,
+ "eggCycles": 10,
+ "friendship": 70,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_FAIRY",
+ "EGG_GROUP_FAIRY"
+ ],
+ "abilities": [
+ "ABILITY_CUTE_CHARM",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 9,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 22,
+ 24,
+ 25,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 38,
+ 42,
+ 43,
+ 44,
+ 45,
+ 49,
+ 56,
+ 57,
+ 58,
+ 60,
+ 67,
+ 70,
+ 73,
+ 74,
+ 76,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4
+ ]
+ },
+ {
+ "species": "WIGGLYTUFF",
+ "hp": 140,
+ "atk": 70,
+ "def": 45,
+ "speed": 45,
+ "spatk": 75,
+ "spdef": 50,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 50,
+ "expYield": 109,
+ "hp_yield": 3,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.75,
+ "eggCycles": 10,
+ "friendship": 70,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_FAIRY",
+ "EGG_GROUP_FAIRY"
+ ],
+ "abilities": [
+ "ABILITY_CUTE_CHARM",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 9,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 22,
+ 24,
+ 25,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 38,
+ 42,
+ 43,
+ 44,
+ 45,
+ 49,
+ 52,
+ 56,
+ 57,
+ 58,
+ 60,
+ 67,
+ 68,
+ 70,
+ 73,
+ 74,
+ 76,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4
+ ]
+ },
+ {
+ "species": "ZUBAT",
+ "hp": 40,
+ "atk": 45,
+ "def": 35,
+ "speed": 55,
+ "spatk": 30,
+ "spdef": 40,
+ "types": [
+ "TYPE_POISON",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 255,
+ "expYield": 54,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FLYING",
+ "EGG_GROUP_FLYING"
+ ],
+ "abilities": [
+ "ABILITY_INNER_FOCUS",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 12,
+ 17,
+ 18,
+ 19,
+ 21,
+ 27,
+ 30,
+ 32,
+ 36,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 49,
+ 51,
+ 58,
+ 66,
+ 78,
+ 82,
+ 83,
+ 87,
+ 88,
+ 89,
+ 90
+ ],
+ "hms": [
+ 2,
+ 5
+ ]
+ },
+ {
+ "species": "GOLBAT",
+ "hp": 75,
+ "atk": 80,
+ "def": 70,
+ "speed": 90,
+ "spatk": 65,
+ "spdef": 75,
+ "types": [
+ "TYPE_POISON",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 90,
+ "expYield": 171,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 2,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FLYING",
+ "EGG_GROUP_FLYING"
+ ],
+ "abilities": [
+ "ABILITY_INNER_FOCUS",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 12,
+ 15,
+ 17,
+ 18,
+ 19,
+ 21,
+ 27,
+ 30,
+ 32,
+ 36,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 49,
+ 51,
+ 58,
+ 66,
+ 68,
+ 78,
+ 82,
+ 83,
+ 87,
+ 88,
+ 89,
+ 90
+ ],
+ "hms": [
+ 2,
+ 5
+ ]
+ },
+ {
+ "species": "ODDISH",
+ "hp": 45,
+ "atk": 50,
+ "def": 55,
+ "speed": 30,
+ "spatk": 75,
+ "spdef": 65,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_POISON"
+ ],
+ "catchRate": 255,
+ "expYield": 78,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_GRASS",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_CHLOROPHYLL",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 32,
+ 36,
+ 42,
+ 43,
+ 44,
+ 45,
+ 53,
+ 58,
+ 70,
+ 75,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1
+ ]
+ },
+ {
+ "species": "GLOOM",
+ "hp": 60,
+ "atk": 65,
+ "def": 70,
+ "speed": 40,
+ "spatk": 85,
+ "spdef": 75,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_POISON"
+ ],
+ "catchRate": 120,
+ "expYield": 132,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 2,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_GRASS",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_CHLOROPHYLL",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 32,
+ 36,
+ 42,
+ 43,
+ 44,
+ 45,
+ 53,
+ 56,
+ 58,
+ 60,
+ 70,
+ 75,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1
+ ]
+ },
+ {
+ "species": "VILEPLUME",
+ "hp": 75,
+ "atk": 80,
+ "def": 85,
+ "speed": 50,
+ "spatk": 100,
+ "spdef": 90,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_POISON"
+ ],
+ "catchRate": 45,
+ "expYield": 184,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 3,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_GRASS",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_CHLOROPHYLL",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 15,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 32,
+ 36,
+ 42,
+ 43,
+ 44,
+ 45,
+ 53,
+ 56,
+ 58,
+ 60,
+ 68,
+ 70,
+ 75,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1
+ ]
+ },
+ {
+ "species": "PARAS",
+ "hp": 35,
+ "atk": 70,
+ "def": 55,
+ "speed": 25,
+ "spatk": 45,
+ "spdef": 55,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_GRASS"
+ ],
+ "catchRate": 190,
+ "expYield": 70,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_TINYMUSHROOM",
+ "ITEM_BIG_MUSHROOM"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_EFFECT_SPORE",
+ "ABILITY_DRY_SKIN"
+ ],
+ "greatMarshRate": 120,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 28,
+ 31,
+ 32,
+ 36,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 53,
+ 54,
+ 58,
+ 70,
+ 75,
+ 78,
+ 81,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 6
+ ]
+ },
+ {
+ "species": "PARASECT",
+ "hp": 60,
+ "atk": 95,
+ "def": 80,
+ "speed": 30,
+ "spatk": 60,
+ "spdef": 80,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_GRASS"
+ ],
+ "catchRate": 75,
+ "expYield": 128,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_TINYMUSHROOM",
+ "ITEM_BIG_MUSHROOM"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_EFFECT_SPORE",
+ "ABILITY_DRY_SKIN"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 15,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 28,
+ 31,
+ 32,
+ 36,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 53,
+ 54,
+ 58,
+ 68,
+ 70,
+ 75,
+ 78,
+ 81,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 6
+ ]
+ },
+ {
+ "species": "VENONAT",
+ "hp": 60,
+ "atk": 55,
+ "def": 50,
+ "speed": 45,
+ "spatk": 40,
+ "spdef": 55,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_POISON"
+ ],
+ "catchRate": 190,
+ "expYield": 75,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_COMPOUND_EYES",
+ "ABILITY_TINTED_LENS"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 29,
+ 32,
+ 36,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 58,
+ 70,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "VENOMOTH",
+ "hp": 70,
+ "atk": 65,
+ "def": 60,
+ "speed": 90,
+ "spatk": 90,
+ "spdef": 75,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_POISON"
+ ],
+ "catchRate": 75,
+ "expYield": 138,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_SHED_SHELL"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_SHIELD_DUST",
+ "ABILITY_TINTED_LENS"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 29,
+ 32,
+ 36,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 51,
+ 53,
+ 58,
+ 62,
+ 68,
+ 70,
+ 78,
+ 82,
+ 83,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 5
+ ]
+ },
+ {
+ "species": "DIGLETT",
+ "hp": 10,
+ "atk": 55,
+ "def": 25,
+ "speed": 95,
+ "spatk": 35,
+ "spdef": 45,
+ "types": [
+ "TYPE_GROUND",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 255,
+ "expYield": 81,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_SOFT_SAND"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_SAND_VEIL",
+ "ABILITY_ARENA_TRAP"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 17,
+ 21,
+ 26,
+ 27,
+ 28,
+ 32,
+ 36,
+ 37,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 58,
+ 65,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 6
+ ]
+ },
+ {
+ "species": "DUGTRIO",
+ "hp": 35,
+ "atk": 80,
+ "def": 50,
+ "speed": 120,
+ "spatk": 50,
+ "spdef": 70,
+ "types": [
+ "TYPE_GROUND",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 50,
+ "expYield": 153,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 2,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_SOFT_SAND"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_SAND_VEIL",
+ "ABILITY_ARENA_TRAP"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 21,
+ 26,
+ 27,
+ 28,
+ 32,
+ 36,
+ 37,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 58,
+ 65,
+ 68,
+ 71,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 6
+ ]
+ },
+ {
+ "species": "MEOWTH",
+ "hp": 40,
+ "atk": 45,
+ "def": 35,
+ "speed": 90,
+ "spatk": 40,
+ "spdef": 40,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 255,
+ "expYield": 69,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_QUICK_CLAW"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_PICKUP",
+ "ABILITY_TECHNICIAN"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 10,
+ 11,
+ 12,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 28,
+ 30,
+ 32,
+ 34,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 49,
+ 58,
+ 65,
+ 66,
+ 70,
+ 77,
+ 78,
+ 79,
+ 82,
+ 83,
+ 85,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 1
+ ]
+ },
+ {
+ "species": "PERSIAN",
+ "hp": 65,
+ "atk": 70,
+ "def": 60,
+ "speed": 115,
+ "spatk": 65,
+ "spdef": 65,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 90,
+ "expYield": 148,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 2,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_QUICK_CLAW"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_LIMBER",
+ "ABILITY_TECHNICIAN"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 3,
+ 5,
+ 6,
+ 10,
+ 11,
+ 12,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 28,
+ 30,
+ 32,
+ 34,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 49,
+ 58,
+ 63,
+ 65,
+ 66,
+ 68,
+ 70,
+ 77,
+ 78,
+ 79,
+ 82,
+ 83,
+ 85,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 1
+ ]
+ },
+ {
+ "species": "PSYDUCK",
+ "hp": 50,
+ "atk": 52,
+ "def": 48,
+ "speed": 55,
+ "spatk": 65,
+ "spdef": 50,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 190,
+ "expYield": 80,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_DAMP",
+ "ABILITY_CLOUD_NINE"
+ ],
+ "greatMarshRate": 90,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 23,
+ 27,
+ 28,
+ 29,
+ 31,
+ 32,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 55,
+ 56,
+ 58,
+ 65,
+ 70,
+ 77,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "GOLDUCK",
+ "hp": 80,
+ "atk": 82,
+ "def": 78,
+ "speed": 85,
+ "spatk": 95,
+ "spdef": 80,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 75,
+ "expYield": 174,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 2,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_DAMP",
+ "ABILITY_CLOUD_NINE"
+ ],
+ "greatMarshRate": 60,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 27,
+ 28,
+ 29,
+ 31,
+ 32,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 52,
+ 55,
+ 56,
+ 58,
+ 65,
+ 68,
+ 70,
+ 77,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 7,
+ 8
+ ]
+ },
+ {
+ "species": "MANKEY",
+ "hp": 40,
+ "atk": 80,
+ "def": 35,
+ "speed": 70,
+ "spatk": 35,
+ "spdef": 45,
+ "types": [
+ "TYPE_FIGHTING",
+ "TYPE_FIGHTING"
+ ],
+ "catchRate": 190,
+ "expYield": 74,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_PAYAPA_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_VITAL_SPIRIT",
+ "ABILITY_ANGER_POINT"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 8,
+ 10,
+ 11,
+ 12,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 50,
+ 52,
+ 56,
+ 58,
+ 66,
+ 78,
+ 80,
+ 82,
+ 83,
+ 84,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "PRIMEAPE",
+ "hp": 65,
+ "atk": 105,
+ "def": 60,
+ "speed": 95,
+ "spatk": 60,
+ "spdef": 70,
+ "types": [
+ "TYPE_FIGHTING",
+ "TYPE_FIGHTING"
+ ],
+ "catchRate": 75,
+ "expYield": 149,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_PAYAPA_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_VITAL_SPIRIT",
+ "ABILITY_ANGER_POINT"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 8,
+ 10,
+ 11,
+ 12,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 50,
+ 52,
+ 56,
+ 58,
+ 66,
+ 68,
+ 71,
+ 78,
+ 80,
+ 82,
+ 83,
+ 84,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "GROWLITHE",
+ "hp": 55,
+ "atk": 70,
+ "def": 45,
+ "speed": 60,
+ "spatk": 70,
+ "spdef": 50,
+ "types": [
+ "TYPE_FIRE",
+ "TYPE_FIRE"
+ ],
+ "catchRate": 190,
+ "expYield": 91,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_RAWST_BERRY",
+ "ITEM_RAWST_BERRY"
+ ],
+ "genderRatio": 0.25,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_INTIMIDATE",
+ "ABILITY_FLASH_FIRE"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 10,
+ 11,
+ 17,
+ 21,
+ 23,
+ 27,
+ 28,
+ 32,
+ 35,
+ 38,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 50,
+ 58,
+ 61,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "ARCANINE",
+ "hp": 90,
+ "atk": 110,
+ "def": 80,
+ "speed": 95,
+ "spatk": 100,
+ "spdef": 80,
+ "types": [
+ "TYPE_FIRE",
+ "TYPE_FIRE"
+ ],
+ "catchRate": 75,
+ "expYield": 213,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_RAWST_BERRY",
+ "ITEM_RAWST_BERRY"
+ ],
+ "genderRatio": 0.25,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_INTIMIDATE",
+ "ABILITY_FLASH_FIRE"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 21,
+ 22,
+ 23,
+ 27,
+ 28,
+ 32,
+ 35,
+ 38,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 50,
+ 58,
+ 59,
+ 61,
+ 68,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "POLIWAG",
+ "hp": 40,
+ "atk": 50,
+ "def": 40,
+ "speed": 90,
+ "spatk": 40,
+ "spdef": 40,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 255,
+ "expYield": 77,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_WATER_1"
+ ],
+ "abilities": [
+ "ABILITY_WATER_ABSORB",
+ "ABILITY_DAMP"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 1,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 27,
+ 28,
+ 29,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 58,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 7
+ ]
+ },
+ {
+ "species": "POLIWHIRL",
+ "hp": 65,
+ "atk": 65,
+ "def": 65,
+ "speed": 90,
+ "spatk": 50,
+ "spdef": 50,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 120,
+ "expYield": 131,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 2,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_KINGS_ROCK"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_WATER_1"
+ ],
+ "abilities": [
+ "ABILITY_WATER_ABSORB",
+ "ABILITY_DAMP"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 1,
+ "tms": [
+ 1,
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 28,
+ 29,
+ 31,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 56,
+ 58,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "POLIWRATH",
+ "hp": 90,
+ "atk": 85,
+ "def": 95,
+ "speed": 70,
+ "spatk": 70,
+ "spdef": 90,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_FIGHTING"
+ ],
+ "catchRate": 45,
+ "expYield": 185,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 3,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_KINGS_ROCK"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_WATER_1"
+ ],
+ "abilities": [
+ "ABILITY_WATER_ABSORB",
+ "ABILITY_DAMP"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 1,
+ "tms": [
+ 1,
+ 3,
+ 6,
+ 7,
+ 8,
+ 10,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 28,
+ 29,
+ 31,
+ 32,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 52,
+ 56,
+ 58,
+ 66,
+ 68,
+ 78,
+ 80,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 7,
+ 8
+ ]
+ },
+ {
+ "species": "ABRA",
+ "hp": 25,
+ "atk": 20,
+ "def": 15,
+ "speed": 90,
+ "spatk": 105,
+ "spdef": 55,
+ "types": [
+ "TYPE_PSYCHIC",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 200,
+ "expYield": 75,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_TWISTEDSPOON"
+ ],
+ "genderRatio": 0.25,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_HUMAN_LIKE",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_SYNCHRONIZE",
+ "ABILITY_INNER_FOCUS"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 1,
+ 4,
+ 6,
+ 10,
+ 11,
+ 12,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 23,
+ 27,
+ 29,
+ 30,
+ 32,
+ 33,
+ 34,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 49,
+ 53,
+ 56,
+ 57,
+ 58,
+ 60,
+ 63,
+ 67,
+ 70,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "KADABRA",
+ "hp": 40,
+ "atk": 35,
+ "def": 30,
+ "speed": 105,
+ "spatk": 120,
+ "spdef": 70,
+ "types": [
+ "TYPE_PSYCHIC",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 100,
+ "expYield": 145,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 2,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_TWISTEDSPOON"
+ ],
+ "genderRatio": 0.25,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_HUMAN_LIKE",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_SYNCHRONIZE",
+ "ABILITY_INNER_FOCUS"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 1,
+ 4,
+ 6,
+ 10,
+ 11,
+ 12,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 23,
+ 27,
+ 29,
+ 30,
+ 32,
+ 33,
+ 34,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 49,
+ 53,
+ 56,
+ 57,
+ 58,
+ 60,
+ 63,
+ 67,
+ 70,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "ALAKAZAM",
+ "hp": 55,
+ "atk": 50,
+ "def": 45,
+ "speed": 120,
+ "spatk": 135,
+ "spdef": 85,
+ "types": [
+ "TYPE_PSYCHIC",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 50,
+ "expYield": 186,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 3,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_TWISTEDSPOON"
+ ],
+ "genderRatio": 0.25,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_HUMAN_LIKE",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_SYNCHRONIZE",
+ "ABILITY_INNER_FOCUS"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 1,
+ 4,
+ 6,
+ 10,
+ 11,
+ 12,
+ 15,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 23,
+ 27,
+ 29,
+ 30,
+ 32,
+ 33,
+ 34,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 49,
+ 52,
+ 53,
+ 56,
+ 57,
+ 58,
+ 60,
+ 63,
+ 67,
+ 68,
+ 70,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "MACHOP",
+ "hp": 70,
+ "atk": 80,
+ "def": 50,
+ "speed": 35,
+ "spatk": 35,
+ "spdef": 35,
+ "types": [
+ "TYPE_FIGHTING",
+ "TYPE_FIGHTING"
+ ],
+ "catchRate": 180,
+ "expYield": 75,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.25,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_HUMAN_LIKE",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_GUTS",
+ "ABILITY_NO_GUARD"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 8,
+ 10,
+ 11,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 35,
+ 38,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 52,
+ 56,
+ 58,
+ 66,
+ 78,
+ 80,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "MACHOKE",
+ "hp": 80,
+ "atk": 100,
+ "def": 70,
+ "speed": 45,
+ "spatk": 50,
+ "spdef": 60,
+ "types": [
+ "TYPE_FIGHTING",
+ "TYPE_FIGHTING"
+ ],
+ "catchRate": 90,
+ "expYield": 146,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.25,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_HUMAN_LIKE",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_GUTS",
+ "ABILITY_NO_GUARD"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 1,
+ "tms": [
+ 1,
+ 6,
+ 8,
+ 10,
+ 11,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 35,
+ 38,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 52,
+ 56,
+ 58,
+ 66,
+ 78,
+ 80,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "MACHAMP",
+ "hp": 90,
+ "atk": 130,
+ "def": 80,
+ "speed": 55,
+ "spatk": 65,
+ "spdef": 85,
+ "types": [
+ "TYPE_FIGHTING",
+ "TYPE_FIGHTING"
+ ],
+ "catchRate": 45,
+ "expYield": 193,
+ "hp_yield": 0,
+ "atk_yield": 3,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.25,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_HUMAN_LIKE",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_GUTS",
+ "ABILITY_NO_GUARD"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 8,
+ 10,
+ 11,
+ 15,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 35,
+ 38,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 52,
+ 56,
+ 58,
+ 66,
+ 68,
+ 71,
+ 78,
+ 80,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "BELLSPROUT",
+ "hp": 50,
+ "atk": 75,
+ "def": 35,
+ "speed": 40,
+ "spatk": 70,
+ "spdef": 30,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_POISON"
+ ],
+ "catchRate": 255,
+ "expYield": 84,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_GRASS",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_CHLOROPHYLL",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 32,
+ 36,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 53,
+ 58,
+ 70,
+ 75,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1
+ ]
+ },
+ {
+ "species": "WEEPINBELL",
+ "hp": 65,
+ "atk": 90,
+ "def": 50,
+ "speed": 55,
+ "spatk": 85,
+ "spdef": 45,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_POISON"
+ ],
+ "catchRate": 120,
+ "expYield": 151,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_GRASS",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_CHLOROPHYLL",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 32,
+ 36,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 53,
+ 58,
+ 70,
+ 75,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1
+ ]
+ },
+ {
+ "species": "VICTREEBEL",
+ "hp": 80,
+ "atk": 105,
+ "def": 65,
+ "speed": 70,
+ "spatk": 100,
+ "spdef": 60,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_POISON"
+ ],
+ "catchRate": 45,
+ "expYield": 191,
+ "hp_yield": 0,
+ "atk_yield": 3,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_GRASS",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_CHLOROPHYLL",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 15,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 32,
+ 36,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 53,
+ 58,
+ 68,
+ 70,
+ 75,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1
+ ]
+ },
+ {
+ "species": "TENTACOOL",
+ "hp": 40,
+ "atk": 40,
+ "def": 35,
+ "speed": 70,
+ "spatk": 50,
+ "spdef": 100,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_POISON"
+ ],
+ "catchRate": 190,
+ "expYield": 105,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_POISON_BARB"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_WATER_3",
+ "EGG_GROUP_WATER_3"
+ ],
+ "abilities": [
+ "ABILITY_CLEAR_BODY",
+ "ABILITY_LIQUID_OOZE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 19,
+ 21,
+ 27,
+ 32,
+ 36,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 55,
+ 58,
+ 66,
+ 75,
+ 78,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 3,
+ 7
+ ]
+ },
+ {
+ "species": "TENTACRUEL",
+ "hp": 80,
+ "atk": 70,
+ "def": 65,
+ "speed": 100,
+ "spatk": 80,
+ "spdef": 120,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_POISON"
+ ],
+ "catchRate": 60,
+ "expYield": 205,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 2,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_POISON_BARB"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_WATER_3",
+ "EGG_GROUP_WATER_3"
+ ],
+ "abilities": [
+ "ABILITY_CLEAR_BODY",
+ "ABILITY_LIQUID_OOZE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 19,
+ 21,
+ 27,
+ 32,
+ 36,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 55,
+ 58,
+ 66,
+ 68,
+ 75,
+ 78,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 3,
+ 7
+ ]
+ },
+ {
+ "species": "GEODUDE",
+ "hp": 40,
+ "atk": 80,
+ "def": 100,
+ "speed": 20,
+ "spatk": 30,
+ "spdef": 30,
+ "types": [
+ "TYPE_ROCK",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 255,
+ "expYield": 73,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_EVERSTONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MINERAL",
+ "EGG_GROUP_MINERAL"
+ ],
+ "abilities": [
+ "ABILITY_ROCK_HEAD",
+ "ABILITY_STURDY"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 10,
+ 11,
+ 17,
+ 21,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 35,
+ 37,
+ 38,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 56,
+ 58,
+ 64,
+ 69,
+ 71,
+ 74,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "GRAVELER",
+ "hp": 55,
+ "atk": 95,
+ "def": 115,
+ "speed": 35,
+ "spatk": 45,
+ "spdef": 45,
+ "types": [
+ "TYPE_ROCK",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 120,
+ "expYield": 134,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 2,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_EVERSTONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MINERAL",
+ "EGG_GROUP_MINERAL"
+ ],
+ "abilities": [
+ "ABILITY_ROCK_HEAD",
+ "ABILITY_STURDY"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 10,
+ 11,
+ 17,
+ 21,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 35,
+ 37,
+ 38,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 56,
+ 58,
+ 64,
+ 69,
+ 71,
+ 74,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "GOLEM",
+ "hp": 80,
+ "atk": 110,
+ "def": 130,
+ "speed": 45,
+ "spatk": 55,
+ "spdef": 65,
+ "types": [
+ "TYPE_ROCK",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 45,
+ "expYield": 177,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 3,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_EVERSTONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MINERAL",
+ "EGG_GROUP_MINERAL"
+ ],
+ "abilities": [
+ "ABILITY_ROCK_HEAD",
+ "ABILITY_STURDY"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 1,
+ 5,
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 21,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 35,
+ 37,
+ 38,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 52,
+ 56,
+ 58,
+ 64,
+ 68,
+ 69,
+ 71,
+ 74,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "PONYTA",
+ "hp": 50,
+ "atk": 85,
+ "def": 55,
+ "speed": 90,
+ "spatk": 65,
+ "spdef": 65,
+ "types": [
+ "TYPE_FIRE",
+ "TYPE_FIRE"
+ ],
+ "catchRate": 190,
+ "expYield": 152,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_SHUCA_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_RUN_AWAY",
+ "ABILITY_FLASH_FIRE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 17,
+ 21,
+ 22,
+ 23,
+ 27,
+ 32,
+ 35,
+ 38,
+ 42,
+ 43,
+ 44,
+ 45,
+ 50,
+ 58,
+ 61,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4
+ ]
+ },
+ {
+ "species": "RAPIDASH",
+ "hp": 65,
+ "atk": 100,
+ "def": 70,
+ "speed": 105,
+ "spatk": 80,
+ "spdef": 80,
+ "types": [
+ "TYPE_FIRE",
+ "TYPE_FIRE"
+ ],
+ "catchRate": 60,
+ "expYield": 192,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 2,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_SHUCA_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_RUN_AWAY",
+ "ABILITY_FLASH_FIRE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 21,
+ 22,
+ 23,
+ 27,
+ 32,
+ 35,
+ 38,
+ 42,
+ 43,
+ 44,
+ 45,
+ 50,
+ 58,
+ 61,
+ 68,
+ 78,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4
+ ]
+ },
+ {
+ "species": "SLOWPOKE",
+ "hp": 90,
+ "atk": 65,
+ "def": 65,
+ "speed": 15,
+ "spatk": 40,
+ "spdef": 40,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 190,
+ "expYield": 99,
+ "hp_yield": 1,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_LAGGING_TAIL"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_WATER_1"
+ ],
+ "abilities": [
+ "ABILITY_OBLIVIOUS",
+ "ABILITY_OWN_TEMPO"
+ ],
+ "greatMarshRate": 0,
+ "color": 9,
+ "flip": 0,
+ "tms": [
+ 3,
+ 4,
+ 6,
+ 7,
+ 10,
+ 11,
+ 13,
+ 14,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 23,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 32,
+ 35,
+ 38,
+ 42,
+ 43,
+ 44,
+ 45,
+ 48,
+ 55,
+ 58,
+ 67,
+ 70,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": [
+ 3,
+ 4
+ ]
+ },
+ {
+ "species": "SLOWBRO",
+ "hp": 95,
+ "atk": 75,
+ "def": 110,
+ "speed": 30,
+ "spatk": 100,
+ "spdef": 80,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 75,
+ "expYield": 164,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 2,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_KINGS_ROCK"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_WATER_1"
+ ],
+ "abilities": [
+ "ABILITY_OBLIVIOUS",
+ "ABILITY_OWN_TEMPO"
+ ],
+ "greatMarshRate": 0,
+ "color": 9,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 7,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 23,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 35,
+ 38,
+ 42,
+ 43,
+ 44,
+ 45,
+ 48,
+ 52,
+ 55,
+ 56,
+ 58,
+ 60,
+ 67,
+ 68,
+ 70,
+ 72,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "MAGNEMITE",
+ "hp": 25,
+ "atk": 35,
+ "def": 70,
+ "speed": 45,
+ "spatk": 95,
+ "spdef": 55,
+ "types": [
+ "TYPE_ELECTRIC",
+ "TYPE_STEEL"
+ ],
+ "catchRate": 190,
+ "expYield": 89,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_METAL_COAT"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_MINERAL",
+ "EGG_GROUP_MINERAL"
+ ],
+ "abilities": [
+ "ABILITY_MAGNET_PULL",
+ "ABILITY_STURDY"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 16,
+ 17,
+ 18,
+ 21,
+ 24,
+ 25,
+ 27,
+ 32,
+ 33,
+ 34,
+ 42,
+ 43,
+ 44,
+ 57,
+ 58,
+ 64,
+ 67,
+ 70,
+ 73,
+ 74,
+ 77,
+ 82,
+ 83,
+ 87,
+ 90,
+ 91
+ ],
+ "hms": []
+ },
+ {
+ "species": "MAGNETON",
+ "hp": 50,
+ "atk": 60,
+ "def": 95,
+ "speed": 70,
+ "spatk": 120,
+ "spdef": 70,
+ "types": [
+ "TYPE_ELECTRIC",
+ "TYPE_STEEL"
+ ],
+ "catchRate": 60,
+ "expYield": 161,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 2,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_METAL_COAT"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_MINERAL",
+ "EGG_GROUP_MINERAL"
+ ],
+ "abilities": [
+ "ABILITY_MAGNET_PULL",
+ "ABILITY_STURDY"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 15,
+ 16,
+ 17,
+ 18,
+ 21,
+ 24,
+ 25,
+ 27,
+ 32,
+ 33,
+ 34,
+ 42,
+ 43,
+ 44,
+ 57,
+ 58,
+ 64,
+ 67,
+ 68,
+ 70,
+ 73,
+ 74,
+ 77,
+ 82,
+ 83,
+ 87,
+ 90,
+ 91
+ ],
+ "hms": []
+ },
+ {
+ "species": "FARFETCHD",
+ "hp": 52,
+ "atk": 65,
+ "def": 55,
+ "speed": 60,
+ "spatk": 58,
+ "spdef": 62,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 45,
+ "expYield": 94,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_STICK"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FLYING",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_KEEN_EYE",
+ "ABILITY_INNER_FOCUS"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 17,
+ 21,
+ 23,
+ 27,
+ 32,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 51,
+ 54,
+ 58,
+ 75,
+ 77,
+ 78,
+ 82,
+ 83,
+ 84,
+ 87,
+ 88,
+ 89,
+ 90
+ ],
+ "hms": [
+ 1,
+ 2,
+ 5
+ ]
+ },
+ {
+ "species": "DODUO",
+ "hp": 35,
+ "atk": 85,
+ "def": 45,
+ "speed": 75,
+ "spatk": 35,
+ "spdef": 35,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 190,
+ "expYield": 96,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_SHARP_BEAK"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FLYING",
+ "EGG_GROUP_FLYING"
+ ],
+ "abilities": [
+ "ABILITY_RUN_AWAY",
+ "ABILITY_EARLY_BIRD"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 17,
+ 21,
+ 27,
+ 32,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 51,
+ 58,
+ 78,
+ 82,
+ 83,
+ 87,
+ 88,
+ 90
+ ],
+ "hms": [
+ 2
+ ]
+ },
+ {
+ "species": "DODRIO",
+ "hp": 60,
+ "atk": 110,
+ "def": 70,
+ "speed": 100,
+ "spatk": 60,
+ "spdef": 60,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 45,
+ "expYield": 158,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_SHARP_BEAK"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FLYING",
+ "EGG_GROUP_FLYING"
+ ],
+ "abilities": [
+ "ABILITY_RUN_AWAY",
+ "ABILITY_EARLY_BIRD"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 12,
+ 15,
+ 17,
+ 21,
+ 27,
+ 32,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 51,
+ 58,
+ 66,
+ 68,
+ 78,
+ 82,
+ 83,
+ 87,
+ 88,
+ 90
+ ],
+ "hms": [
+ 2
+ ]
+ },
+ {
+ "species": "SEEL",
+ "hp": 65,
+ "atk": 45,
+ "def": 55,
+ "speed": 45,
+ "spatk": 45,
+ "spdef": 70,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 190,
+ "expYield": 100,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_THICK_FAT",
+ "ABILITY_HYDRATION"
+ ],
+ "greatMarshRate": 0,
+ "color": 8,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 20,
+ 21,
+ 27,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 55,
+ 56,
+ 58,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 7
+ ]
+ },
+ {
+ "species": "DEWGONG",
+ "hp": 90,
+ "atk": 70,
+ "def": 80,
+ "speed": 70,
+ "spatk": 70,
+ "spdef": 95,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_ICE"
+ ],
+ "catchRate": 75,
+ "expYield": 176,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 2,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_THICK_FAT",
+ "ABILITY_HYDRATION"
+ ],
+ "greatMarshRate": 0,
+ "color": 8,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 20,
+ 21,
+ 27,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 55,
+ 56,
+ 58,
+ 68,
+ 72,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 7
+ ]
+ },
+ {
+ "species": "GRIMER",
+ "hp": 80,
+ "atk": 80,
+ "def": 50,
+ "speed": 25,
+ "spatk": 40,
+ "spdef": 50,
+ "types": [
+ "TYPE_POISON",
+ "TYPE_POISON"
+ ],
+ "catchRate": 190,
+ "expYield": 90,
+ "hp_yield": 1,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NUGGET"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_AMORPHOUS",
+ "EGG_GROUP_AMORPHOUS"
+ ],
+ "abilities": [
+ "ABILITY_STENCH",
+ "ABILITY_STICKY_HOLD"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 12,
+ 17,
+ 18,
+ 19,
+ 21,
+ 24,
+ 25,
+ 27,
+ 28,
+ 30,
+ 32,
+ 34,
+ 35,
+ 36,
+ 38,
+ 39,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 56,
+ 58,
+ 64,
+ 66,
+ 78,
+ 80,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4
+ ]
+ },
+ {
+ "species": "MUK",
+ "hp": 105,
+ "atk": 105,
+ "def": 75,
+ "speed": 50,
+ "spatk": 65,
+ "spdef": 100,
+ "types": [
+ "TYPE_POISON",
+ "TYPE_POISON"
+ ],
+ "catchRate": 75,
+ "expYield": 157,
+ "hp_yield": 1,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NUGGET"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_AMORPHOUS",
+ "EGG_GROUP_AMORPHOUS"
+ ],
+ "abilities": [
+ "ABILITY_STENCH",
+ "ABILITY_STICKY_HOLD"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 10,
+ 11,
+ 12,
+ 15,
+ 17,
+ 18,
+ 19,
+ 21,
+ 24,
+ 25,
+ 27,
+ 28,
+ 30,
+ 31,
+ 32,
+ 34,
+ 35,
+ 36,
+ 38,
+ 39,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 52,
+ 56,
+ 58,
+ 64,
+ 66,
+ 68,
+ 78,
+ 79,
+ 80,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "SHELLDER",
+ "hp": 30,
+ "atk": 65,
+ "def": 100,
+ "speed": 40,
+ "spatk": 45,
+ "spdef": 25,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 190,
+ "expYield": 97,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_PEARL",
+ "ITEM_BIG_PEARL"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_WATER_3",
+ "EGG_GROUP_WATER_3"
+ ],
+ "abilities": [
+ "ABILITY_SHELL_ARMOR",
+ "ABILITY_SKILL_LINK"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 27,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 55,
+ 58,
+ 64,
+ 66,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3
+ ]
+ },
+ {
+ "species": "CLOYSTER",
+ "hp": 50,
+ "atk": 95,
+ "def": 180,
+ "speed": 70,
+ "spatk": 85,
+ "spdef": 45,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_ICE"
+ ],
+ "catchRate": 60,
+ "expYield": 203,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 2,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_PEARL",
+ "ITEM_BIG_PEARL"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_WATER_3",
+ "EGG_GROUP_WATER_3"
+ ],
+ "abilities": [
+ "ABILITY_SHELL_ARMOR",
+ "ABILITY_SKILL_LINK"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 27,
+ 32,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 55,
+ 58,
+ 64,
+ 66,
+ 68,
+ 72,
+ 78,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3
+ ]
+ },
+ {
+ "species": "GASTLY",
+ "hp": 30,
+ "atk": 35,
+ "def": 30,
+ "speed": 80,
+ "spatk": 100,
+ "spdef": 35,
+ "types": [
+ "TYPE_GHOST",
+ "TYPE_POISON"
+ ],
+ "catchRate": 190,
+ "expYield": 95,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_AMORPHOUS",
+ "EGG_GROUP_AMORPHOUS"
+ ],
+ "abilities": [
+ "ABILITY_LEVITATE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 12,
+ 17,
+ 18,
+ 19,
+ 21,
+ 24,
+ 27,
+ 29,
+ 30,
+ 32,
+ 36,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 49,
+ 53,
+ 58,
+ 61,
+ 63,
+ 64,
+ 66,
+ 77,
+ 78,
+ 79,
+ 82,
+ 83,
+ 85,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "HAUNTER",
+ "hp": 45,
+ "atk": 50,
+ "def": 45,
+ "speed": 95,
+ "spatk": 115,
+ "spdef": 55,
+ "types": [
+ "TYPE_GHOST",
+ "TYPE_POISON"
+ ],
+ "catchRate": 90,
+ "expYield": 126,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 2,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_AMORPHOUS",
+ "EGG_GROUP_AMORPHOUS"
+ ],
+ "abilities": [
+ "ABILITY_LEVITATE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 12,
+ 17,
+ 18,
+ 19,
+ 21,
+ 24,
+ 27,
+ 29,
+ 30,
+ 32,
+ 36,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 49,
+ 53,
+ 56,
+ 58,
+ 61,
+ 63,
+ 64,
+ 65,
+ 66,
+ 77,
+ 78,
+ 79,
+ 82,
+ 83,
+ 84,
+ 85,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "GENGAR",
+ "hp": 60,
+ "atk": 65,
+ "def": 60,
+ "speed": 110,
+ "spatk": 130,
+ "spdef": 75,
+ "types": [
+ "TYPE_GHOST",
+ "TYPE_POISON"
+ ],
+ "catchRate": 45,
+ "expYield": 190,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 3,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_AMORPHOUS",
+ "EGG_GROUP_AMORPHOUS"
+ ],
+ "abilities": [
+ "ABILITY_LEVITATE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 10,
+ 11,
+ 12,
+ 15,
+ 17,
+ 18,
+ 19,
+ 21,
+ 24,
+ 25,
+ 27,
+ 29,
+ 30,
+ 31,
+ 32,
+ 36,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 49,
+ 52,
+ 53,
+ 56,
+ 58,
+ 60,
+ 61,
+ 63,
+ 64,
+ 65,
+ 66,
+ 68,
+ 77,
+ 78,
+ 79,
+ 82,
+ 83,
+ 84,
+ 85,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "ONIX",
+ "hp": 35,
+ "atk": 45,
+ "def": 160,
+ "speed": 70,
+ "spatk": 30,
+ "spdef": 45,
+ "types": [
+ "TYPE_ROCK",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 45,
+ "expYield": 108,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 25,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_MINERAL",
+ "EGG_GROUP_MINERAL"
+ ],
+ "abilities": [
+ "ABILITY_ROCK_HEAD",
+ "ABILITY_STURDY"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 10,
+ 11,
+ 12,
+ 17,
+ 21,
+ 23,
+ 26,
+ 27,
+ 28,
+ 32,
+ 37,
+ 39,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 59,
+ 64,
+ 66,
+ 69,
+ 71,
+ 74,
+ 76,
+ 77,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90,
+ 91
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "DROWZEE",
+ "hp": 60,
+ "atk": 48,
+ "def": 45,
+ "speed": 42,
+ "spatk": 43,
+ "spdef": 90,
+ "types": [
+ "TYPE_PSYCHIC",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 190,
+ "expYield": 102,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_HUMAN_LIKE",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_INSOMNIA",
+ "ABILITY_FOREWARN"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 1,
+ 4,
+ 6,
+ 10,
+ 11,
+ 12,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 27,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 49,
+ 56,
+ 58,
+ 60,
+ 67,
+ 70,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "HYPNO",
+ "hp": 85,
+ "atk": 73,
+ "def": 70,
+ "speed": 67,
+ "spatk": 73,
+ "spdef": 115,
+ "types": [
+ "TYPE_PSYCHIC",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 75,
+ "expYield": 165,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 2,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_HUMAN_LIKE",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_INSOMNIA",
+ "ABILITY_FOREWARN"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 1,
+ 4,
+ 6,
+ 10,
+ 11,
+ 12,
+ 15,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 27,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 49,
+ 52,
+ 56,
+ 58,
+ 60,
+ 67,
+ 68,
+ 70,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "KRABBY",
+ "hp": 30,
+ "atk": 105,
+ "def": 90,
+ "speed": 50,
+ "spatk": 25,
+ "spdef": 25,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 225,
+ "expYield": 115,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_3",
+ "EGG_GROUP_WATER_3"
+ ],
+ "abilities": [
+ "ABILITY_HYPER_CUTTER",
+ "ABILITY_SHELL_ARMOR"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 27,
+ 28,
+ 31,
+ 32,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 54,
+ 55,
+ 56,
+ 58,
+ 75,
+ 78,
+ 80,
+ 81,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 3,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "KINGLER",
+ "hp": 55,
+ "atk": 130,
+ "def": 115,
+ "speed": 75,
+ "spatk": 50,
+ "spdef": 50,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 60,
+ "expYield": 206,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_3",
+ "EGG_GROUP_WATER_3"
+ ],
+ "abilities": [
+ "ABILITY_HYPER_CUTTER",
+ "ABILITY_SHELL_ARMOR"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 1,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 27,
+ 28,
+ 31,
+ 32,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 54,
+ 55,
+ 56,
+ 58,
+ 68,
+ 75,
+ 78,
+ 80,
+ 81,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 3,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "VOLTORB",
+ "hp": 40,
+ "atk": 30,
+ "def": 50,
+ "speed": 100,
+ "spatk": 55,
+ "spdef": 55,
+ "types": [
+ "TYPE_ELECTRIC",
+ "TYPE_ELECTRIC"
+ ],
+ "catchRate": 190,
+ "expYield": 103,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_MINERAL",
+ "EGG_GROUP_MINERAL"
+ ],
+ "abilities": [
+ "ABILITY_SOUNDPROOF",
+ "ABILITY_STATIC"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 12,
+ 16,
+ 17,
+ 18,
+ 21,
+ 24,
+ 25,
+ 27,
+ 32,
+ 34,
+ 41,
+ 42,
+ 43,
+ 44,
+ 46,
+ 57,
+ 58,
+ 64,
+ 70,
+ 73,
+ 74,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "ELECTRODE",
+ "hp": 60,
+ "atk": 50,
+ "def": 70,
+ "speed": 140,
+ "spatk": 80,
+ "spdef": 80,
+ "types": [
+ "TYPE_ELECTRIC",
+ "TYPE_ELECTRIC"
+ ],
+ "catchRate": 60,
+ "expYield": 150,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 2,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_MINERAL",
+ "EGG_GROUP_MINERAL"
+ ],
+ "abilities": [
+ "ABILITY_SOUNDPROOF",
+ "ABILITY_STATIC"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 12,
+ 15,
+ 16,
+ 17,
+ 18,
+ 21,
+ 24,
+ 25,
+ 27,
+ 32,
+ 34,
+ 41,
+ 42,
+ 43,
+ 44,
+ 46,
+ 57,
+ 58,
+ 64,
+ 68,
+ 70,
+ 73,
+ 74,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "EXEGGCUTE",
+ "hp": 60,
+ "atk": 40,
+ "def": 80,
+ "speed": 40,
+ "spatk": 60,
+ "spdef": 45,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 90,
+ "expYield": 98,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_GRASS",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_CHLOROPHYLL",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 120,
+ "color": 9,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 16,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 29,
+ 32,
+ 33,
+ 36,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 53,
+ 58,
+ 64,
+ 70,
+ 75,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": [
+ 4
+ ]
+ },
+ {
+ "species": "EXEGGUTOR",
+ "hp": 95,
+ "atk": 95,
+ "def": 85,
+ "speed": 55,
+ "spatk": 125,
+ "spdef": 65,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 45,
+ "expYield": 212,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 2,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_GRASS",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_CHLOROPHYLL",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 15,
+ 16,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 29,
+ 32,
+ 33,
+ 36,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 53,
+ 58,
+ 64,
+ 68,
+ 70,
+ 75,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": [
+ 4
+ ]
+ },
+ {
+ "species": "CUBONE",
+ "hp": 50,
+ "atk": 50,
+ "def": 95,
+ "speed": 35,
+ "spatk": 40,
+ "spdef": 50,
+ "types": [
+ "TYPE_GROUND",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 190,
+ "expYield": 87,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_THICK_CLUB"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_MONSTER"
+ ],
+ "abilities": [
+ "ABILITY_ROCK_HEAD",
+ "ABILITY_LIGHTNING_ROD"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 17,
+ 21,
+ 23,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 35,
+ 37,
+ 38,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 54,
+ 56,
+ 58,
+ 75,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "MAROWAK",
+ "hp": 60,
+ "atk": 80,
+ "def": 110,
+ "speed": 45,
+ "spatk": 50,
+ "spdef": 80,
+ "types": [
+ "TYPE_GROUND",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 75,
+ "expYield": 124,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 2,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_THICK_CLUB"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_MONSTER"
+ ],
+ "abilities": [
+ "ABILITY_ROCK_HEAD",
+ "ABILITY_LIGHTNING_ROD"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 17,
+ 21,
+ 23,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 35,
+ 37,
+ 38,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 52,
+ 54,
+ 56,
+ 58,
+ 68,
+ 71,
+ 75,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "HITMONLEE",
+ "hp": 50,
+ "atk": 120,
+ "def": 53,
+ "speed": 87,
+ "spatk": 35,
+ "spdef": 110,
+ "types": [
+ "TYPE_FIGHTING",
+ "TYPE_FIGHTING"
+ ],
+ "catchRate": 45,
+ "expYield": 139,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.0,
+ "eggCycles": 25,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_HUMAN_LIKE",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_LIMBER",
+ "ABILITY_RECKLESS"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 8,
+ 10,
+ 11,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 31,
+ 32,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 52,
+ 56,
+ 58,
+ 71,
+ 78,
+ 80,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "HITMONCHAN",
+ "hp": 50,
+ "atk": 105,
+ "def": 79,
+ "speed": 76,
+ "spatk": 35,
+ "spdef": 110,
+ "types": [
+ "TYPE_FIGHTING",
+ "TYPE_FIGHTING"
+ ],
+ "catchRate": 45,
+ "expYield": 140,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 2,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.0,
+ "eggCycles": 25,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_HUMAN_LIKE",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_KEEN_EYE",
+ "ABILITY_IRON_FIST"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 8,
+ 10,
+ 11,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 31,
+ 32,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 52,
+ 56,
+ 58,
+ 60,
+ 71,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "LICKITUNG",
+ "hp": 90,
+ "atk": 55,
+ "def": 75,
+ "speed": 30,
+ "spatk": 60,
+ "spdef": 75,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 45,
+ "expYield": 127,
+ "hp_yield": 2,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_LAGGING_TAIL"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_MONSTER"
+ ],
+ "abilities": [
+ "ABILITY_OWN_TEMPO",
+ "ABILITY_OBLIVIOUS"
+ ],
+ "greatMarshRate": 0,
+ "color": 9,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 30,
+ 31,
+ 32,
+ 34,
+ 35,
+ 37,
+ 38,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 56,
+ 58,
+ 68,
+ 75,
+ 77,
+ 78,
+ 80,
+ 82,
+ 83,
+ 85,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "KOFFING",
+ "hp": 40,
+ "atk": 65,
+ "def": 95,
+ "speed": 35,
+ "spatk": 60,
+ "spdef": 45,
+ "types": [
+ "TYPE_POISON",
+ "TYPE_POISON"
+ ],
+ "catchRate": 190,
+ "expYield": 114,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_SMOKE_BALL"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_AMORPHOUS",
+ "EGG_GROUP_AMORPHOUS"
+ ],
+ "abilities": [
+ "ABILITY_LEVITATE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 12,
+ 17,
+ 18,
+ 21,
+ 24,
+ 25,
+ 27,
+ 30,
+ 32,
+ 34,
+ 35,
+ 36,
+ 38,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 58,
+ 61,
+ 64,
+ 66,
+ 70,
+ 74,
+ 78,
+ 79,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "WEEZING",
+ "hp": 65,
+ "atk": 90,
+ "def": 120,
+ "speed": 60,
+ "spatk": 85,
+ "spdef": 70,
+ "types": [
+ "TYPE_POISON",
+ "TYPE_POISON"
+ ],
+ "catchRate": 60,
+ "expYield": 173,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 2,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_SMOKE_BALL"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_AMORPHOUS",
+ "EGG_GROUP_AMORPHOUS"
+ ],
+ "abilities": [
+ "ABILITY_LEVITATE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 12,
+ 15,
+ 17,
+ 18,
+ 21,
+ 24,
+ 25,
+ 27,
+ 30,
+ 32,
+ 34,
+ 35,
+ 36,
+ 38,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 58,
+ 61,
+ 64,
+ 66,
+ 68,
+ 70,
+ 74,
+ 78,
+ 79,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "RHYHORN",
+ "hp": 80,
+ "atk": 85,
+ "def": 95,
+ "speed": 25,
+ "spatk": 30,
+ "spdef": 30,
+ "types": [
+ "TYPE_GROUND",
+ "TYPE_ROCK"
+ ],
+ "catchRate": 120,
+ "expYield": 135,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_LIGHTNING_ROD",
+ "ABILITY_ROCK_HEAD"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 32,
+ 34,
+ 35,
+ 37,
+ 38,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 58,
+ 59,
+ 66,
+ 69,
+ 71,
+ 75,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "RHYDON",
+ "hp": 105,
+ "atk": 130,
+ "def": 120,
+ "speed": 40,
+ "spatk": 45,
+ "spdef": 45,
+ "types": [
+ "TYPE_GROUND",
+ "TYPE_ROCK"
+ ],
+ "catchRate": 60,
+ "expYield": 204,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_LIGHTNING_ROD",
+ "ABILITY_ROCK_HEAD"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 1,
+ 5,
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 34,
+ 35,
+ 37,
+ 38,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 52,
+ 56,
+ 58,
+ 59,
+ 65,
+ 66,
+ 68,
+ 69,
+ 71,
+ 72,
+ 75,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "CHANSEY",
+ "hp": 250,
+ "atk": 5,
+ "def": 5,
+ "speed": 50,
+ "spatk": 35,
+ "spdef": 105,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 30,
+ "expYield": 255,
+ "hp_yield": 2,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_OVAL_STONE",
+ "ITEM_LUCKY_EGG"
+ ],
+ "genderRatio": 1.0,
+ "eggCycles": 40,
+ "friendship": 140,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_FAIRY",
+ "EGG_GROUP_FAIRY"
+ ],
+ "abilities": [
+ "ABILITY_NATURAL_CURE",
+ "ABILITY_SERENE_GRACE"
+ ],
+ "greatMarshRate": 0,
+ "color": 9,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 7,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 29,
+ 30,
+ 31,
+ 32,
+ 34,
+ 35,
+ 37,
+ 38,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 48,
+ 49,
+ 56,
+ 57,
+ 58,
+ 60,
+ 67,
+ 68,
+ 70,
+ 73,
+ 76,
+ 77,
+ 78,
+ 80,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "TANGELA",
+ "hp": 65,
+ "atk": 55,
+ "def": 115,
+ "speed": 60,
+ "spatk": 100,
+ "spdef": 40,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_GRASS"
+ ],
+ "catchRate": 45,
+ "expYield": 166,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_GRASS",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_CHLOROPHYLL",
+ "ABILITY_LEAF_GUARD"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 15,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 32,
+ 33,
+ 34,
+ 36,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 53,
+ 58,
+ 68,
+ 70,
+ 75,
+ 77,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 6
+ ]
+ },
+ {
+ "species": "KANGASKHAN",
+ "hp": 105,
+ "atk": 95,
+ "def": 80,
+ "speed": 90,
+ "spatk": 40,
+ "spdef": 80,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 45,
+ "expYield": 175,
+ "hp_yield": 2,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 1.0,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_MONSTER"
+ ],
+ "abilities": [
+ "ABILITY_EARLY_BIRD",
+ "ABILITY_SCRAPPY"
+ ],
+ "greatMarshRate": 150,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 5,
+ 6,
+ 7,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 30,
+ 31,
+ 32,
+ 34,
+ 35,
+ 37,
+ 38,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 52,
+ 56,
+ 58,
+ 60,
+ 65,
+ 68,
+ 72,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "HORSEA",
+ "hp": 30,
+ "atk": 40,
+ "def": 70,
+ "speed": 60,
+ "spatk": 70,
+ "spdef": 25,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 225,
+ "expYield": 83,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_DRAGON_SCALE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_DRAGON"
+ ],
+ "abilities": [
+ "ABILITY_SWIFT_SWIM",
+ "ABILITY_SNIPER"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 27,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 55,
+ 58,
+ 59,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90,
+ 91
+ ],
+ "hms": [
+ 3,
+ 7
+ ]
+ },
+ {
+ "species": "SEADRA",
+ "hp": 55,
+ "atk": 65,
+ "def": 95,
+ "speed": 85,
+ "spatk": 95,
+ "spdef": 45,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 75,
+ "expYield": 155,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_DRAGON_SCALE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_DRAGON"
+ ],
+ "abilities": [
+ "ABILITY_POISON_POINT",
+ "ABILITY_SNIPER"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 27,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 55,
+ 58,
+ 59,
+ 68,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90,
+ 91
+ ],
+ "hms": [
+ 3,
+ 7
+ ]
+ },
+ {
+ "species": "GOLDEEN",
+ "hp": 45,
+ "atk": 67,
+ "def": 60,
+ "speed": 63,
+ "spatk": 35,
+ "spdef": 50,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 225,
+ "expYield": 111,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_2",
+ "EGG_GROUP_WATER_2"
+ ],
+ "abilities": [
+ "ABILITY_SWIFT_SWIM",
+ "ABILITY_WATER_VEIL"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 27,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 78,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 7
+ ]
+ },
+ {
+ "species": "SEAKING",
+ "hp": 80,
+ "atk": 92,
+ "def": 65,
+ "speed": 68,
+ "spatk": 65,
+ "spdef": 80,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 60,
+ "expYield": 170,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_2",
+ "EGG_GROUP_WATER_2"
+ ],
+ "abilities": [
+ "ABILITY_SWIFT_SWIM",
+ "ABILITY_WATER_VEIL"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 27,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 68,
+ 78,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 7
+ ]
+ },
+ {
+ "species": "STARYU",
+ "hp": 30,
+ "atk": 45,
+ "def": 55,
+ "speed": 85,
+ "spatk": 70,
+ "spdef": 55,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 225,
+ "expYield": 106,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_STARDUST",
+ "ITEM_STAR_PIECE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_WATER_3",
+ "EGG_GROUP_WATER_3"
+ ],
+ "abilities": [
+ "ABILITY_ILLUMINATE",
+ "ABILITY_NATURAL_CURE"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 1,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 16,
+ 17,
+ 18,
+ 21,
+ 24,
+ 25,
+ 27,
+ 29,
+ 32,
+ 33,
+ 42,
+ 43,
+ 44,
+ 55,
+ 58,
+ 67,
+ 70,
+ 73,
+ 74,
+ 77,
+ 82,
+ 83,
+ 87,
+ 90,
+ 91
+ ],
+ "hms": [
+ 3,
+ 7
+ ]
+ },
+ {
+ "species": "STARMIE",
+ "hp": 60,
+ "atk": 75,
+ "def": 85,
+ "speed": 115,
+ "spatk": 100,
+ "spdef": 85,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 60,
+ "expYield": 207,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 2,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_STARDUST",
+ "ITEM_STAR_PIECE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_WATER_3",
+ "EGG_GROUP_WATER_3"
+ ],
+ "abilities": [
+ "ABILITY_ILLUMINATE",
+ "ABILITY_NATURAL_CURE"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 21,
+ 24,
+ 25,
+ 27,
+ 29,
+ 32,
+ 33,
+ 42,
+ 43,
+ 44,
+ 48,
+ 55,
+ 58,
+ 67,
+ 68,
+ 70,
+ 72,
+ 73,
+ 74,
+ 77,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90,
+ 91,
+ 92
+ ],
+ "hms": [
+ 3,
+ 7
+ ]
+ },
+ {
+ "species": "MR_MIME",
+ "hp": 40,
+ "atk": 45,
+ "def": 65,
+ "speed": 90,
+ "spatk": 100,
+ "spdef": 120,
+ "types": [
+ "TYPE_PSYCHIC",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 45,
+ "expYield": 136,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 2,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_LEPPA_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 25,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_HUMAN_LIKE",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_SOUNDPROOF",
+ "ABILITY_FILTER"
+ ],
+ "greatMarshRate": 0,
+ "color": 9,
+ "flip": 0,
+ "tms": [
+ 1,
+ 4,
+ 6,
+ 10,
+ 11,
+ 12,
+ 15,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 22,
+ 24,
+ 25,
+ 27,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 49,
+ 52,
+ 53,
+ 56,
+ 57,
+ 58,
+ 60,
+ 66,
+ 67,
+ 68,
+ 70,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "SCYTHER",
+ "hp": 70,
+ "atk": 110,
+ "def": 80,
+ "speed": 105,
+ "spatk": 55,
+ "spdef": 80,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 45,
+ "expYield": 187,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 25,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_SWARM",
+ "ABILITY_TECHNICIAN"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 18,
+ 21,
+ 27,
+ 31,
+ 32,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 51,
+ 54,
+ 58,
+ 62,
+ 68,
+ 75,
+ 78,
+ 81,
+ 82,
+ 83,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 1,
+ 5,
+ 6
+ ]
+ },
+ {
+ "species": "JYNX",
+ "hp": 65,
+ "atk": 50,
+ "def": 35,
+ "speed": 95,
+ "spatk": 115,
+ "spdef": 95,
+ "types": [
+ "TYPE_ICE",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 45,
+ "expYield": 137,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 2,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_ASPEAR_BERRY",
+ "ITEM_ASPEAR_BERRY"
+ ],
+ "genderRatio": 1.0,
+ "eggCycles": 25,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_HUMAN_LIKE",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_OBLIVIOUS",
+ "ABILITY_FOREWARN"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 7,
+ 10,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 21,
+ 27,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 52,
+ 53,
+ 56,
+ 58,
+ 60,
+ 66,
+ 67,
+ 68,
+ 70,
+ 72,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "ELECTABUZZ",
+ "hp": 65,
+ "atk": 83,
+ "def": 57,
+ "speed": 105,
+ "spatk": 95,
+ "spdef": 85,
+ "types": [
+ "TYPE_ELECTRIC",
+ "TYPE_ELECTRIC"
+ ],
+ "catchRate": 45,
+ "expYield": 156,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 2,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_ELECTIRIZER",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.25,
+ "eggCycles": 25,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_HUMAN_LIKE",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_STATIC",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 1,
+ "tms": [
+ 1,
+ 6,
+ 10,
+ 15,
+ 16,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 29,
+ 31,
+ 32,
+ 34,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 52,
+ 56,
+ 57,
+ 58,
+ 68,
+ 70,
+ 73,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "MAGMAR",
+ "hp": 65,
+ "atk": 95,
+ "def": 57,
+ "speed": 93,
+ "spatk": 100,
+ "spdef": 85,
+ "types": [
+ "TYPE_FIRE",
+ "TYPE_FIRE"
+ ],
+ "catchRate": 45,
+ "expYield": 167,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 2,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_MAGMARIZER"
+ ],
+ "genderRatio": 0.25,
+ "eggCycles": 25,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_HUMAN_LIKE",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_FLAME_BODY",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 21,
+ 23,
+ 27,
+ 29,
+ 31,
+ 32,
+ 35,
+ 38,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 50,
+ 52,
+ 56,
+ 58,
+ 61,
+ 68,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "PINSIR",
+ "hp": 65,
+ "atk": 125,
+ "def": 100,
+ "speed": 85,
+ "spatk": 55,
+ "spdef": 70,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_BUG"
+ ],
+ "catchRate": 45,
+ "expYield": 200,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 25,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_HYPER_CUTTER",
+ "ABILITY_MOLD_BREAKER"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 8,
+ 10,
+ 11,
+ 15,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 52,
+ 54,
+ 56,
+ 58,
+ 68,
+ 71,
+ 75,
+ 76,
+ 78,
+ 80,
+ 81,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "TAUROS",
+ "hp": 75,
+ "atk": 100,
+ "def": 95,
+ "speed": 110,
+ "spatk": 40,
+ "spdef": 70,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 45,
+ "expYield": 211,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.0,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_INTIMIDATE",
+ "ABILITY_ANGER_POINT"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 32,
+ 34,
+ 35,
+ 37,
+ 38,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 66,
+ 68,
+ 71,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "MAGIKARP",
+ "hp": 20,
+ "atk": 10,
+ "def": 55,
+ "speed": 80,
+ "spatk": 15,
+ "spdef": 20,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 255,
+ "expYield": 20,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 5,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_WATER_2",
+ "EGG_GROUP_DRAGON"
+ ],
+ "abilities": [
+ "ABILITY_SWIFT_SWIM",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 90,
+ "color": 0,
+ "flip": 0,
+ "tms": [],
+ "hms": []
+ },
+ {
+ "species": "GYARADOS",
+ "hp": 95,
+ "atk": 125,
+ "def": 79,
+ "speed": 81,
+ "spatk": 60,
+ "spdef": 100,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 45,
+ "expYield": 214,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 5,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_WATER_2",
+ "EGG_GROUP_DRAGON"
+ ],
+ "abilities": [
+ "ABILITY_INTIMIDATE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 60,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 5,
+ 6,
+ 7,
+ 10,
+ 12,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 24,
+ 25,
+ 26,
+ 27,
+ 32,
+ 35,
+ 37,
+ 38,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 55,
+ 58,
+ 59,
+ 66,
+ 68,
+ 71,
+ 72,
+ 73,
+ 78,
+ 79,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "LAPRAS",
+ "hp": 130,
+ "atk": 85,
+ "def": 80,
+ "speed": 60,
+ "spatk": 85,
+ "spdef": 95,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_ICE"
+ ],
+ "catchRate": 45,
+ "expYield": 219,
+ "hp_yield": 2,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 40,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_WATER_1"
+ ],
+ "abilities": [
+ "ABILITY_WATER_ABSORB",
+ "ABILITY_SHELL_ARMOR"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 5,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 20,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 29,
+ 32,
+ 34,
+ 42,
+ 43,
+ 44,
+ 45,
+ 55,
+ 58,
+ 59,
+ 68,
+ 72,
+ 78,
+ 82,
+ 83,
+ 85,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "DITTO",
+ "hp": 48,
+ "atk": 48,
+ "def": 48,
+ "speed": 48,
+ "spatk": 48,
+ "spdef": 48,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 35,
+ "expYield": 61,
+ "hp_yield": 1,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_QUICK_POWDER",
+ "ITEM_METAL_POWDER"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_DITTO",
+ "EGG_GROUP_DITTO"
+ ],
+ "abilities": [
+ "ABILITY_LIMBER",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [],
+ "hms": []
+ },
+ {
+ "species": "EEVEE",
+ "hp": 55,
+ "atk": 55,
+ "def": 50,
+ "speed": 55,
+ "spatk": 45,
+ "spdef": 65,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 45,
+ "expYield": 92,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 35,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_RUN_AWAY",
+ "ABILITY_ADAPTABILITY"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 17,
+ 18,
+ 21,
+ 23,
+ 27,
+ 28,
+ 30,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "VAPOREON",
+ "hp": 130,
+ "atk": 65,
+ "def": 60,
+ "speed": 65,
+ "spatk": 110,
+ "spdef": 95,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 45,
+ "expYield": 196,
+ "hp_yield": 2,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 35,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_WATER_ABSORB",
+ "ABILITY_WATER_ABSORB"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 5,
+ 6,
+ 7,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 27,
+ 28,
+ 30,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 55,
+ 58,
+ 68,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "JOLTEON",
+ "hp": 65,
+ "atk": 65,
+ "def": 60,
+ "speed": 130,
+ "spatk": 110,
+ "spdef": 95,
+ "types": [
+ "TYPE_ELECTRIC",
+ "TYPE_ELECTRIC"
+ ],
+ "catchRate": 45,
+ "expYield": 197,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 2,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 35,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_VOLT_ABSORB",
+ "ABILITY_VOLT_ABSORB"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 10,
+ 11,
+ 15,
+ 16,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 28,
+ 30,
+ 32,
+ 34,
+ 42,
+ 43,
+ 44,
+ 45,
+ 57,
+ 58,
+ 68,
+ 70,
+ 73,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "FLAREON",
+ "hp": 65,
+ "atk": 130,
+ "def": 60,
+ "speed": 65,
+ "spatk": 95,
+ "spdef": 110,
+ "types": [
+ "TYPE_FIRE",
+ "TYPE_FIRE"
+ ],
+ "catchRate": 45,
+ "expYield": 198,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 35,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_FLASH_FIRE",
+ "ABILITY_FLASH_FIRE"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 27,
+ 28,
+ 30,
+ 32,
+ 35,
+ 38,
+ 42,
+ 43,
+ 44,
+ 45,
+ 50,
+ 58,
+ 61,
+ 68,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "PORYGON",
+ "hp": 65,
+ "atk": 60,
+ "def": 70,
+ "speed": 40,
+ "spatk": 85,
+ "spdef": 75,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 45,
+ "expYield": 130,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_MINERAL",
+ "EGG_GROUP_MINERAL"
+ ],
+ "abilities": [
+ "ABILITY_TRACE",
+ "ABILITY_DOWNLOAD"
+ ],
+ "greatMarshRate": 0,
+ "color": 9,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 27,
+ 29,
+ 30,
+ 32,
+ 34,
+ 40,
+ 42,
+ 43,
+ 44,
+ 46,
+ 57,
+ 58,
+ 67,
+ 68,
+ 70,
+ 73,
+ 77,
+ 82,
+ 83,
+ 85,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "OMANYTE",
+ "hp": 35,
+ "atk": 40,
+ "def": 100,
+ "speed": 35,
+ "spatk": 90,
+ "spdef": 55,
+ "types": [
+ "TYPE_ROCK",
+ "TYPE_WATER"
+ ],
+ "catchRate": 45,
+ "expYield": 99,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 30,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_WATER_3"
+ ],
+ "abilities": [
+ "ABILITY_SWIFT_SWIM",
+ "ABILITY_SHELL_ARMOR"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 27,
+ 32,
+ 37,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 55,
+ 58,
+ 69,
+ 74,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "OMASTAR",
+ "hp": 70,
+ "atk": 60,
+ "def": 125,
+ "speed": 55,
+ "spatk": 115,
+ "spdef": 70,
+ "types": [
+ "TYPE_ROCK",
+ "TYPE_WATER"
+ ],
+ "catchRate": 45,
+ "expYield": 199,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 2,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 30,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_WATER_3"
+ ],
+ "abilities": [
+ "ABILITY_SWIFT_SWIM",
+ "ABILITY_SHELL_ARMOR"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 27,
+ 32,
+ 37,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 55,
+ 58,
+ 68,
+ 69,
+ 71,
+ 74,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 6,
+ 7,
+ 8
+ ]
+ },
+ {
+ "species": "KABUTO",
+ "hp": 30,
+ "atk": 80,
+ "def": 90,
+ "speed": 55,
+ "spatk": 55,
+ "spdef": 45,
+ "types": [
+ "TYPE_ROCK",
+ "TYPE_WATER"
+ ],
+ "catchRate": 45,
+ "expYield": 99,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 30,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_WATER_3"
+ ],
+ "abilities": [
+ "ABILITY_SWIFT_SWIM",
+ "ABILITY_BATTLE_ARMOR"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 19,
+ 21,
+ 27,
+ 28,
+ 32,
+ 37,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 55,
+ 58,
+ 69,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "KABUTOPS",
+ "hp": 60,
+ "atk": 115,
+ "def": 105,
+ "speed": 80,
+ "spatk": 65,
+ "spdef": 70,
+ "types": [
+ "TYPE_ROCK",
+ "TYPE_WATER"
+ ],
+ "catchRate": 45,
+ "expYield": 199,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 30,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_WATER_3"
+ ],
+ "abilities": [
+ "ABILITY_SWIFT_SWIM",
+ "ABILITY_BATTLE_ARMOR"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 19,
+ 21,
+ 27,
+ 28,
+ 31,
+ 32,
+ 37,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 55,
+ 58,
+ 68,
+ 69,
+ 71,
+ 75,
+ 76,
+ 78,
+ 80,
+ 81,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 3,
+ 6,
+ 7,
+ 8
+ ]
+ },
+ {
+ "species": "AERODACTYL",
+ "hp": 80,
+ "atk": 105,
+ "def": 65,
+ "speed": 130,
+ "spatk": 60,
+ "spdef": 75,
+ "types": [
+ "TYPE_ROCK",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 45,
+ "expYield": 202,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 2,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 35,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FLYING",
+ "EGG_GROUP_FLYING"
+ ],
+ "abilities": [
+ "ABILITY_ROCK_HEAD",
+ "ABILITY_PRESSURE"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 2,
+ 5,
+ 6,
+ 10,
+ 11,
+ 12,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 26,
+ 27,
+ 32,
+ 35,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 51,
+ 58,
+ 59,
+ 66,
+ 68,
+ 69,
+ 71,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 2,
+ 4,
+ 5,
+ 6
+ ]
+ },
+ {
+ "species": "SNORLAX",
+ "hp": 160,
+ "atk": 110,
+ "def": 65,
+ "speed": 30,
+ "spatk": 65,
+ "spdef": 110,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 25,
+ "expYield": 154,
+ "hp_yield": 2,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_LEFTOVERS",
+ "ITEM_LEFTOVERS"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 40,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_MONSTER"
+ ],
+ "abilities": [
+ "ABILITY_IMMUNITY",
+ "ABILITY_THICK_FAT"
+ ],
+ "greatMarshRate": 0,
+ "color": 4,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 22,
+ 24,
+ 25,
+ 26,
+ 27,
+ 29,
+ 30,
+ 31,
+ 32,
+ 34,
+ 35,
+ 37,
+ 38,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 52,
+ 56,
+ 58,
+ 67,
+ 68,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "ARTICUNO",
+ "hp": 90,
+ "atk": 85,
+ "def": 100,
+ "speed": 85,
+ "spatk": 95,
+ "spdef": 125,
+ "types": [
+ "TYPE_ICE",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 3,
+ "expYield": 215,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 3,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 80,
+ "friendship": 35,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_PRESSURE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 5,
+ 6,
+ 7,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 27,
+ 32,
+ 33,
+ 37,
+ 40,
+ 42,
+ 43,
+ 44,
+ 47,
+ 51,
+ 58,
+ 68,
+ 72,
+ 82,
+ 83,
+ 87,
+ 88,
+ 89,
+ 90
+ ],
+ "hms": [
+ 2,
+ 5,
+ 6
+ ]
+ },
+ {
+ "species": "ZAPDOS",
+ "hp": 90,
+ "atk": 90,
+ "def": 85,
+ "speed": 100,
+ "spatk": 125,
+ "spdef": 90,
+ "types": [
+ "TYPE_ELECTRIC",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 3,
+ "expYield": 216,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 3,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 80,
+ "friendship": 35,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_PRESSURE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 10,
+ 11,
+ 15,
+ 16,
+ 17,
+ 18,
+ 21,
+ 24,
+ 25,
+ 27,
+ 32,
+ 34,
+ 37,
+ 40,
+ 42,
+ 43,
+ 44,
+ 47,
+ 51,
+ 57,
+ 58,
+ 68,
+ 70,
+ 73,
+ 82,
+ 83,
+ 87,
+ 88,
+ 89,
+ 90
+ ],
+ "hms": [
+ 2,
+ 5,
+ 6
+ ]
+ },
+ {
+ "species": "MOLTRES",
+ "hp": 90,
+ "atk": 100,
+ "def": 90,
+ "speed": 90,
+ "spatk": 125,
+ "spdef": 85,
+ "types": [
+ "TYPE_FIRE",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 3,
+ "expYield": 217,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 3,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 80,
+ "friendship": 35,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_PRESSURE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 18,
+ 20,
+ 21,
+ 22,
+ 27,
+ 32,
+ 35,
+ 37,
+ 38,
+ 40,
+ 42,
+ 43,
+ 44,
+ 47,
+ 50,
+ 51,
+ 58,
+ 61,
+ 68,
+ 82,
+ 83,
+ 87,
+ 88,
+ 89,
+ 90
+ ],
+ "hms": [
+ 2,
+ 5,
+ 6
+ ]
+ },
+ {
+ "species": "DRATINI",
+ "hp": 41,
+ "atk": 64,
+ "def": 45,
+ "speed": 50,
+ "spatk": 50,
+ "spdef": 50,
+ "types": [
+ "TYPE_DRAGON",
+ "TYPE_DRAGON"
+ ],
+ "catchRate": 45,
+ "expYield": 67,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_DRAGON_SCALE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 40,
+ "friendship": 35,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_DRAGON"
+ ],
+ "abilities": [
+ "ABILITY_SHED_SKIN",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 20,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 32,
+ 34,
+ 35,
+ 38,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 59,
+ 73,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 7
+ ]
+ },
+ {
+ "species": "DRAGONAIR",
+ "hp": 61,
+ "atk": 84,
+ "def": 65,
+ "speed": 70,
+ "spatk": 70,
+ "spdef": 70,
+ "types": [
+ "TYPE_DRAGON",
+ "TYPE_DRAGON"
+ ],
+ "catchRate": 45,
+ "expYield": 144,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_DRAGON_SCALE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 40,
+ "friendship": 35,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_DRAGON"
+ ],
+ "abilities": [
+ "ABILITY_SHED_SKIN",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 20,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 32,
+ 34,
+ 35,
+ 38,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 59,
+ 73,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 7
+ ]
+ },
+ {
+ "species": "DRAGONITE",
+ "hp": 91,
+ "atk": 134,
+ "def": 95,
+ "speed": 80,
+ "spatk": 100,
+ "spdef": 100,
+ "types": [
+ "TYPE_DRAGON",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 45,
+ "expYield": 218,
+ "hp_yield": 0,
+ "atk_yield": 3,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_DRAGON_SCALE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 40,
+ "friendship": 35,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_DRAGON"
+ ],
+ "abilities": [
+ "ABILITY_INNER_FOCUS",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 1,
+ 2,
+ 3,
+ 5,
+ 6,
+ 7,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 20,
+ 21,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 31,
+ 32,
+ 34,
+ 35,
+ 37,
+ 38,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 47,
+ 51,
+ 52,
+ 56,
+ 58,
+ 59,
+ 68,
+ 71,
+ 73,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "MEWTWO",
+ "hp": 106,
+ "atk": 110,
+ "def": 90,
+ "speed": 130,
+ "spatk": 154,
+ "spdef": 90,
+ "types": [
+ "TYPE_PSYCHIC",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 3,
+ "expYield": 220,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 3,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 120,
+ "friendship": 0,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_PRESSURE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 7,
+ 8,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 48,
+ 49,
+ 52,
+ 53,
+ 56,
+ 57,
+ 58,
+ 60,
+ 61,
+ 63,
+ 67,
+ 68,
+ 70,
+ 71,
+ 72,
+ 73,
+ 77,
+ 80,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "MEW",
+ "hp": 100,
+ "atk": 100,
+ "def": 100,
+ "speed": 100,
+ "spatk": 100,
+ "spdef": 100,
+ "types": [
+ "TYPE_PSYCHIC",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 45,
+ "expYield": 64,
+ "hp_yield": 3,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_LUM_BERRY",
+ "ITEM_LUM_BERRY"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 120,
+ "friendship": 100,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_SYNCHRONIZE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 9,
+ "flip": 0,
+ "tms": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 49,
+ 50,
+ 51,
+ 52,
+ 53,
+ 54,
+ 55,
+ 56,
+ 57,
+ 58,
+ 59,
+ 60,
+ 61,
+ 62,
+ 63,
+ 64,
+ 65,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 91,
+ 92
+ ],
+ "hms": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8
+ ]
+ },
+ {
+ "species": "CHIKORITA",
+ "hp": 45,
+ "atk": 49,
+ "def": 65,
+ "speed": 45,
+ "spatk": 49,
+ "spdef": 65,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_GRASS"
+ ],
+ "catchRate": 45,
+ "expYield": 64,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_OVERGROW",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 16,
+ 17,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 27,
+ 32,
+ 33,
+ 42,
+ 43,
+ 44,
+ 45,
+ 53,
+ 58,
+ 70,
+ 75,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1
+ ]
+ },
+ {
+ "species": "BAYLEEF",
+ "hp": 60,
+ "atk": 62,
+ "def": 80,
+ "speed": 60,
+ "spatk": 63,
+ "spdef": 80,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_GRASS"
+ ],
+ "catchRate": 45,
+ "expYield": 141,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_OVERGROW",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 16,
+ 17,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 27,
+ 32,
+ 33,
+ 42,
+ 43,
+ 44,
+ 45,
+ 53,
+ 58,
+ 70,
+ 75,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "MEGANIUM",
+ "hp": 80,
+ "atk": 82,
+ "def": 100,
+ "speed": 80,
+ "spatk": 83,
+ "spdef": 100,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_GRASS"
+ ],
+ "catchRate": 45,
+ "expYield": 208,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 2,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_OVERGROW",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 15,
+ 16,
+ 17,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 26,
+ 27,
+ 32,
+ 33,
+ 42,
+ 43,
+ 44,
+ 45,
+ 53,
+ 58,
+ 68,
+ 70,
+ 75,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "CYNDAQUIL",
+ "hp": 39,
+ "atk": 52,
+ "def": 43,
+ "speed": 65,
+ "spatk": 60,
+ "spdef": 50,
+ "types": [
+ "TYPE_FIRE",
+ "TYPE_FIRE"
+ ],
+ "catchRate": 45,
+ "expYield": 65,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_BLAZE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 17,
+ 21,
+ 27,
+ 28,
+ 32,
+ 35,
+ 38,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 50,
+ 58,
+ 61,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1
+ ]
+ },
+ {
+ "species": "QUILAVA",
+ "hp": 58,
+ "atk": 64,
+ "def": 58,
+ "speed": 80,
+ "spatk": 80,
+ "spdef": 65,
+ "types": [
+ "TYPE_FIRE",
+ "TYPE_FIRE"
+ ],
+ "catchRate": 45,
+ "expYield": 142,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_BLAZE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 1,
+ 5,
+ 6,
+ 10,
+ 11,
+ 17,
+ 21,
+ 27,
+ 28,
+ 31,
+ 32,
+ 35,
+ 38,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 50,
+ 58,
+ 61,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "TYPHLOSION",
+ "hp": 78,
+ "atk": 84,
+ "def": 78,
+ "speed": 100,
+ "spatk": 109,
+ "spdef": 85,
+ "types": [
+ "TYPE_FIRE",
+ "TYPE_FIRE"
+ ],
+ "catchRate": 45,
+ "expYield": 209,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 3,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_BLAZE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 1,
+ 5,
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 21,
+ 22,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 35,
+ 38,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 50,
+ 52,
+ 56,
+ 58,
+ 61,
+ 65,
+ 68,
+ 74,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "TOTODILE",
+ "hp": 50,
+ "atk": 65,
+ "def": 64,
+ "speed": 43,
+ "spatk": 44,
+ "spdef": 48,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 45,
+ "expYield": 66,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_WATER_1"
+ ],
+ "abilities": [
+ "ABILITY_TORRENT",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 23,
+ 27,
+ 28,
+ 31,
+ 32,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 56,
+ 58,
+ 65,
+ 75,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 3,
+ 7
+ ]
+ },
+ {
+ "species": "CROCONAW",
+ "hp": 65,
+ "atk": 80,
+ "def": 80,
+ "speed": 58,
+ "spatk": 59,
+ "spdef": 63,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 45,
+ "expYield": 143,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_WATER_1"
+ ],
+ "abilities": [
+ "ABILITY_TORRENT",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 1,
+ "tms": [
+ 1,
+ 3,
+ 5,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 23,
+ 27,
+ 28,
+ 31,
+ 32,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 56,
+ 58,
+ 65,
+ 75,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "FERALIGATR",
+ "hp": 85,
+ "atk": 105,
+ "def": 100,
+ "speed": 78,
+ "spatk": 79,
+ "spdef": 83,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 45,
+ "expYield": 210,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_WATER_1"
+ ],
+ "abilities": [
+ "ABILITY_TORRENT",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 1,
+ 2,
+ 3,
+ 5,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 52,
+ 56,
+ 58,
+ 59,
+ 65,
+ 68,
+ 72,
+ 75,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 7,
+ 8
+ ]
+ },
+ {
+ "species": "SENTRET",
+ "hp": 35,
+ "atk": 46,
+ "def": 34,
+ "speed": 20,
+ "spatk": 35,
+ "spdef": 45,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 255,
+ "expYield": 57,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_ORAN_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_RUN_AWAY",
+ "ABILITY_KEEN_EYE"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 6,
+ 10,
+ 11,
+ 13,
+ 17,
+ 18,
+ 21,
+ 22,
+ 23,
+ 24,
+ 27,
+ 28,
+ 30,
+ 31,
+ 32,
+ 34,
+ 35,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 56,
+ 57,
+ 58,
+ 65,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 1,
+ 3
+ ]
+ },
+ {
+ "species": "FURRET",
+ "hp": 85,
+ "atk": 76,
+ "def": 64,
+ "speed": 90,
+ "spatk": 45,
+ "spdef": 55,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 90,
+ "expYield": 116,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 2,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_ORAN_BERRY",
+ "ITEM_SITRUS_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_RUN_AWAY",
+ "ABILITY_KEEN_EYE"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 27,
+ 28,
+ 30,
+ 31,
+ 32,
+ 34,
+ 35,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 52,
+ 56,
+ 57,
+ 58,
+ 65,
+ 68,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 1,
+ 3,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "HOOTHOOT",
+ "hp": 60,
+ "atk": 30,
+ "def": 30,
+ "speed": 50,
+ "spatk": 36,
+ "spdef": 56,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 255,
+ "expYield": 58,
+ "hp_yield": 1,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FLYING",
+ "EGG_GROUP_FLYING"
+ ],
+ "abilities": [
+ "ABILITY_INSOMNIA",
+ "ABILITY_KEEN_EYE"
+ ],
+ "greatMarshRate": 90,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 17,
+ 18,
+ 21,
+ 27,
+ 29,
+ 30,
+ 32,
+ 33,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 51,
+ 58,
+ 62,
+ 67,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 87,
+ 88,
+ 90
+ ],
+ "hms": [
+ 2,
+ 5
+ ]
+ },
+ {
+ "species": "NOCTOWL",
+ "hp": 100,
+ "atk": 50,
+ "def": 50,
+ "speed": 70,
+ "spatk": 76,
+ "spdef": 96,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 90,
+ "expYield": 162,
+ "hp_yield": 2,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FLYING",
+ "EGG_GROUP_FLYING"
+ ],
+ "abilities": [
+ "ABILITY_INSOMNIA",
+ "ABILITY_KEEN_EYE"
+ ],
+ "greatMarshRate": 60,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 18,
+ 21,
+ 27,
+ 29,
+ 30,
+ 32,
+ 33,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 51,
+ 58,
+ 62,
+ 67,
+ 68,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 87,
+ 88,
+ 90
+ ],
+ "hms": [
+ 2,
+ 5
+ ]
+ },
+ {
+ "species": "LEDYBA",
+ "hp": 40,
+ "atk": 20,
+ "def": 30,
+ "speed": 55,
+ "spatk": 40,
+ "spdef": 80,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 255,
+ "expYield": 54,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_SWARM",
+ "ABILITY_EARLY_BIRD"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 10,
+ 11,
+ 16,
+ 17,
+ 19,
+ 20,
+ 21,
+ 22,
+ 27,
+ 28,
+ 31,
+ 32,
+ 33,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 51,
+ 56,
+ 58,
+ 60,
+ 62,
+ 70,
+ 75,
+ 78,
+ 82,
+ 83,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "LEDIAN",
+ "hp": 55,
+ "atk": 35,
+ "def": 50,
+ "speed": 85,
+ "spatk": 55,
+ "spdef": 110,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 90,
+ "expYield": 134,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 2,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_SWARM",
+ "ABILITY_EARLY_BIRD"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 10,
+ 11,
+ 15,
+ 16,
+ 17,
+ 19,
+ 20,
+ 21,
+ 22,
+ 27,
+ 28,
+ 31,
+ 32,
+ 33,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 51,
+ 52,
+ 56,
+ 58,
+ 60,
+ 62,
+ 68,
+ 70,
+ 75,
+ 78,
+ 82,
+ 83,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "SPINARAK",
+ "hp": 40,
+ "atk": 60,
+ "def": 40,
+ "speed": 30,
+ "spatk": 40,
+ "spdef": 40,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_POISON"
+ ],
+ "catchRate": 255,
+ "expYield": 54,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_SWARM",
+ "ABILITY_INSOMNIA"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 28,
+ 29,
+ 32,
+ 36,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 58,
+ 70,
+ 78,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "ARIADOS",
+ "hp": 70,
+ "atk": 90,
+ "def": 70,
+ "speed": 40,
+ "spatk": 60,
+ "spdef": 60,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_POISON"
+ ],
+ "catchRate": 90,
+ "expYield": 134,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_SWARM",
+ "ABILITY_INSOMNIA"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 28,
+ 29,
+ 32,
+ 36,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 58,
+ 68,
+ 70,
+ 78,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "CROBAT",
+ "hp": 85,
+ "atk": 90,
+ "def": 80,
+ "speed": 130,
+ "spatk": 70,
+ "spdef": 80,
+ "types": [
+ "TYPE_POISON",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 90,
+ "expYield": 204,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 3,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FLYING",
+ "EGG_GROUP_FLYING"
+ ],
+ "abilities": [
+ "ABILITY_INNER_FOCUS",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 12,
+ 15,
+ 17,
+ 18,
+ 19,
+ 21,
+ 27,
+ 30,
+ 32,
+ 36,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 49,
+ 51,
+ 58,
+ 66,
+ 68,
+ 78,
+ 79,
+ 81,
+ 82,
+ 83,
+ 87,
+ 88,
+ 89,
+ 90
+ ],
+ "hms": [
+ 2,
+ 5
+ ]
+ },
+ {
+ "species": "CHINCHOU",
+ "hp": 75,
+ "atk": 38,
+ "def": 38,
+ "speed": 67,
+ "spatk": 56,
+ "spdef": 56,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_ELECTRIC"
+ ],
+ "catchRate": 190,
+ "expYield": 90,
+ "hp_yield": 1,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_DEEPSEASCALE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_WATER_2",
+ "EGG_GROUP_WATER_2"
+ ],
+ "abilities": [
+ "ABILITY_VOLT_ABSORB",
+ "ABILITY_ILLUMINATE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 24,
+ 25,
+ 27,
+ 32,
+ 34,
+ 42,
+ 43,
+ 44,
+ 45,
+ 55,
+ 57,
+ 58,
+ 70,
+ 73,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 7
+ ]
+ },
+ {
+ "species": "LANTURN",
+ "hp": 125,
+ "atk": 58,
+ "def": 58,
+ "speed": 67,
+ "spatk": 76,
+ "spdef": 76,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_ELECTRIC"
+ ],
+ "catchRate": 75,
+ "expYield": 156,
+ "hp_yield": 2,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_DEEPSEASCALE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_WATER_2",
+ "EGG_GROUP_WATER_2"
+ ],
+ "abilities": [
+ "ABILITY_VOLT_ABSORB",
+ "ABILITY_ILLUMINATE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 24,
+ 25,
+ 27,
+ 32,
+ 34,
+ 42,
+ 43,
+ 44,
+ 45,
+ 55,
+ 57,
+ 58,
+ 68,
+ 70,
+ 73,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 7
+ ]
+ },
+ {
+ "species": "PICHU",
+ "hp": 20,
+ "atk": 40,
+ "def": 15,
+ "speed": 60,
+ "spatk": 35,
+ "spdef": 35,
+ "types": [
+ "TYPE_ELECTRIC",
+ "TYPE_ELECTRIC"
+ ],
+ "catchRate": 190,
+ "expYield": 42,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_ORAN_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 10,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_STATIC",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 16,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 32,
+ 34,
+ 42,
+ 43,
+ 44,
+ 45,
+ 56,
+ 57,
+ 58,
+ 70,
+ 73,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "CLEFFA",
+ "hp": 50,
+ "atk": 25,
+ "def": 28,
+ "speed": 15,
+ "spatk": 45,
+ "spdef": 55,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 150,
+ "expYield": 37,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_LEPPA_BERRY",
+ "ITEM_MOON_STONE"
+ ],
+ "genderRatio": 0.75,
+ "eggCycles": 10,
+ "friendship": 140,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_CUTE_CHARM",
+ "ABILITY_MAGIC_GUARD"
+ ],
+ "greatMarshRate": 0,
+ "color": 9,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 10,
+ 11,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 22,
+ 23,
+ 27,
+ 28,
+ 29,
+ 30,
+ 32,
+ 33,
+ 34,
+ 35,
+ 38,
+ 42,
+ 43,
+ 44,
+ 45,
+ 56,
+ 58,
+ 67,
+ 70,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "IGGLYBUFF",
+ "hp": 90,
+ "atk": 30,
+ "def": 15,
+ "speed": 15,
+ "spatk": 40,
+ "spdef": 20,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 170,
+ "expYield": 39,
+ "hp_yield": 1,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.75,
+ "eggCycles": 10,
+ "friendship": 70,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_CUTE_CHARM",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 9,
+ "flip": 1,
+ "tms": [
+ 3,
+ 6,
+ 10,
+ 11,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 22,
+ 27,
+ 28,
+ 29,
+ 30,
+ 32,
+ 33,
+ 34,
+ 35,
+ 38,
+ 42,
+ 43,
+ 44,
+ 45,
+ 56,
+ 58,
+ 67,
+ 70,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "TOGEPI",
+ "hp": 35,
+ "atk": 20,
+ "def": 65,
+ "speed": 20,
+ "spatk": 40,
+ "spdef": 65,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 190,
+ "expYield": 74,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 10,
+ "friendship": 70,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_HUSTLE",
+ "ABILITY_SERENE_GRACE"
+ ],
+ "greatMarshRate": 0,
+ "color": 8,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 10,
+ 11,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 22,
+ 27,
+ 29,
+ 30,
+ 32,
+ 33,
+ 34,
+ 35,
+ 38,
+ 42,
+ 43,
+ 44,
+ 45,
+ 56,
+ 58,
+ 70,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 6
+ ]
+ },
+ {
+ "species": "TOGETIC",
+ "hp": 55,
+ "atk": 40,
+ "def": 85,
+ "speed": 40,
+ "spatk": 80,
+ "spdef": 105,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 75,
+ "expYield": 114,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 2,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 10,
+ "friendship": 70,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_FLYING",
+ "EGG_GROUP_FAIRY"
+ ],
+ "abilities": [
+ "ABILITY_HUSTLE",
+ "ABILITY_SERENE_GRACE"
+ ],
+ "greatMarshRate": 0,
+ "color": 8,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 6,
+ 10,
+ 11,
+ 15,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 22,
+ 27,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 38,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 47,
+ 51,
+ 56,
+ 58,
+ 60,
+ 62,
+ 68,
+ 70,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 2,
+ 5,
+ 6
+ ]
+ },
+ {
+ "species": "NATU",
+ "hp": 40,
+ "atk": 50,
+ "def": 45,
+ "speed": 70,
+ "spatk": 70,
+ "spdef": 45,
+ "types": [
+ "TYPE_PSYCHIC",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 190,
+ "expYield": 73,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FLYING",
+ "EGG_GROUP_FLYING"
+ ],
+ "abilities": [
+ "ABILITY_SYNCHRONIZE",
+ "ABILITY_EARLY_BIRD"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 4,
+ 6,
+ 10,
+ 11,
+ 16,
+ 17,
+ 18,
+ 19,
+ 21,
+ 22,
+ 27,
+ 29,
+ 30,
+ 32,
+ 33,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 51,
+ 58,
+ 62,
+ 70,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "XATU",
+ "hp": 65,
+ "atk": 75,
+ "def": 70,
+ "speed": 95,
+ "spatk": 95,
+ "spdef": 70,
+ "types": [
+ "TYPE_PSYCHIC",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 75,
+ "expYield": 171,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FLYING",
+ "EGG_GROUP_FLYING"
+ ],
+ "abilities": [
+ "ABILITY_SYNCHRONIZE",
+ "ABILITY_EARLY_BIRD"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 4,
+ 6,
+ 10,
+ 11,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 21,
+ 22,
+ 27,
+ 29,
+ 30,
+ 32,
+ 33,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 48,
+ 51,
+ 58,
+ 62,
+ 68,
+ 70,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 88,
+ 89,
+ 90,
+ 92
+ ],
+ "hms": [
+ 2,
+ 5
+ ]
+ },
+ {
+ "species": "MAREEP",
+ "hp": 55,
+ "atk": 40,
+ "def": 40,
+ "speed": 35,
+ "spatk": 65,
+ "spdef": 45,
+ "types": [
+ "TYPE_ELECTRIC",
+ "TYPE_ELECTRIC"
+ ],
+ "catchRate": 235,
+ "expYield": 59,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_STATIC",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 8,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 16,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 32,
+ 34,
+ 42,
+ 43,
+ 44,
+ 45,
+ 57,
+ 58,
+ 70,
+ 73,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "FLAAFFY",
+ "hp": 70,
+ "atk": 55,
+ "def": 55,
+ "speed": 45,
+ "spatk": 80,
+ "spdef": 60,
+ "types": [
+ "TYPE_ELECTRIC",
+ "TYPE_ELECTRIC"
+ ],
+ "catchRate": 120,
+ "expYield": 117,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 2,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_STATIC",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 9,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 10,
+ 16,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 31,
+ 32,
+ 34,
+ 42,
+ 43,
+ 44,
+ 45,
+ 56,
+ 57,
+ 58,
+ 70,
+ 73,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "AMPHAROS",
+ "hp": 90,
+ "atk": 75,
+ "def": 75,
+ "speed": 55,
+ "spatk": 115,
+ "spdef": 90,
+ "types": [
+ "TYPE_ELECTRIC",
+ "TYPE_ELECTRIC"
+ ],
+ "catchRate": 45,
+ "expYield": 194,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 3,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_STATIC",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 10,
+ 15,
+ 16,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 31,
+ 32,
+ 34,
+ 42,
+ 43,
+ 44,
+ 45,
+ 52,
+ 56,
+ 57,
+ 58,
+ 68,
+ 70,
+ 73,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "BELLOSSOM",
+ "hp": 75,
+ "atk": 80,
+ "def": 85,
+ "speed": 50,
+ "spatk": 90,
+ "spdef": 100,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_GRASS"
+ ],
+ "catchRate": 45,
+ "expYield": 184,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 3,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_GRASS",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_CHLOROPHYLL",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 15,
+ 17,
+ 19,
+ 20,
+ 21,
+ 22,
+ 27,
+ 32,
+ 36,
+ 42,
+ 43,
+ 44,
+ 45,
+ 53,
+ 56,
+ 58,
+ 60,
+ 68,
+ 70,
+ 75,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1
+ ]
+ },
+ {
+ "species": "MARILL",
+ "hp": 70,
+ "atk": 20,
+ "def": 50,
+ "speed": 40,
+ "spatk": 20,
+ "spdef": 50,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 190,
+ "expYield": 58,
+ "hp_yield": 2,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 10,
+ "friendship": 70,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_FAIRY"
+ ],
+ "abilities": [
+ "ABILITY_THICK_FAT",
+ "ABILITY_HUGE_POWER"
+ ],
+ "greatMarshRate": 60,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 23,
+ 27,
+ 28,
+ 31,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 56,
+ 58,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "AZUMARILL",
+ "hp": 100,
+ "atk": 50,
+ "def": 80,
+ "speed": 50,
+ "spatk": 50,
+ "spdef": 80,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 75,
+ "expYield": 153,
+ "hp_yield": 3,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 10,
+ "friendship": 70,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_FAIRY"
+ ],
+ "abilities": [
+ "ABILITY_THICK_FAT",
+ "ABILITY_HUGE_POWER"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 27,
+ 28,
+ 31,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 52,
+ 56,
+ 58,
+ 68,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "SUDOWOODO",
+ "hp": 70,
+ "atk": 100,
+ "def": 115,
+ "speed": 30,
+ "spatk": 30,
+ "spdef": 65,
+ "types": [
+ "TYPE_ROCK",
+ "TYPE_ROCK"
+ ],
+ "catchRate": 65,
+ "expYield": 135,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 2,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_MINERAL",
+ "EGG_GROUP_MINERAL"
+ ],
+ "abilities": [
+ "ABILITY_STURDY",
+ "ABILITY_ROCK_HEAD"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 1,
+ 4,
+ 6,
+ 10,
+ 11,
+ 12,
+ 17,
+ 21,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 37,
+ 39,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 56,
+ 58,
+ 64,
+ 69,
+ 71,
+ 76,
+ 77,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "POLITOED",
+ "hp": 90,
+ "atk": 75,
+ "def": 75,
+ "speed": 70,
+ "spatk": 90,
+ "spdef": 100,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 45,
+ "expYield": 185,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 3,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_KINGS_ROCK"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_WATER_1"
+ ],
+ "abilities": [
+ "ABILITY_WATER_ABSORB",
+ "ABILITY_DAMP"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 1,
+ "tms": [
+ 1,
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 28,
+ 29,
+ 31,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 52,
+ 56,
+ 58,
+ 66,
+ 68,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "HOPPIP",
+ "hp": 35,
+ "atk": 35,
+ "def": 40,
+ "speed": 50,
+ "spatk": 35,
+ "spdef": 55,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 255,
+ "expYield": 74,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FAIRY",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_CHLOROPHYLL",
+ "ABILITY_LEAF_GUARD"
+ ],
+ "greatMarshRate": 0,
+ "color": 9,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 32,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 53,
+ 58,
+ 62,
+ 70,
+ 75,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "SKIPLOOM",
+ "hp": 55,
+ "atk": 45,
+ "def": 50,
+ "speed": 80,
+ "spatk": 45,
+ "spdef": 65,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 120,
+ "expYield": 136,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 2,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FAIRY",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_CHLOROPHYLL",
+ "ABILITY_LEAF_GUARD"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 32,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 53,
+ 58,
+ 62,
+ 70,
+ 75,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "JUMPLUFF",
+ "hp": 75,
+ "atk": 55,
+ "def": 70,
+ "speed": 110,
+ "spatk": 55,
+ "spdef": 85,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 45,
+ "expYield": 176,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 3,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FAIRY",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_CHLOROPHYLL",
+ "ABILITY_LEAF_GUARD"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 15,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 32,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 53,
+ 58,
+ 62,
+ 68,
+ 70,
+ 75,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "AIPOM",
+ "hp": 55,
+ "atk": 70,
+ "def": 55,
+ "speed": 85,
+ "spatk": 40,
+ "spdef": 55,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 45,
+ "expYield": 94,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_RUN_AWAY",
+ "ABILITY_PICKUP"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 6,
+ 10,
+ 11,
+ 12,
+ 17,
+ 18,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 27,
+ 28,
+ 30,
+ 31,
+ 32,
+ 34,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 49,
+ 56,
+ 58,
+ 65,
+ 66,
+ 73,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "SUNKERN",
+ "hp": 30,
+ "atk": 30,
+ "def": 30,
+ "speed": 30,
+ "spatk": 30,
+ "spdef": 30,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_GRASS"
+ ],
+ "catchRate": 235,
+ "expYield": 52,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_COBA_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_GRASS",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_CHLOROPHYLL",
+ "ABILITY_SOLAR_POWER"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 16,
+ 17,
+ 19,
+ 20,
+ 21,
+ 22,
+ 27,
+ 32,
+ 36,
+ 42,
+ 43,
+ 44,
+ 45,
+ 53,
+ 58,
+ 70,
+ 75,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1
+ ]
+ },
+ {
+ "species": "SUNFLORA",
+ "hp": 75,
+ "atk": 75,
+ "def": 55,
+ "speed": 30,
+ "spatk": 105,
+ "spdef": 85,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_GRASS"
+ ],
+ "catchRate": 120,
+ "expYield": 146,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 2,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_GRASS",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_CHLOROPHYLL",
+ "ABILITY_SOLAR_POWER"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 15,
+ 16,
+ 17,
+ 19,
+ 20,
+ 21,
+ 22,
+ 27,
+ 32,
+ 36,
+ 42,
+ 43,
+ 44,
+ 45,
+ 53,
+ 58,
+ 68,
+ 70,
+ 75,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1
+ ]
+ },
+ {
+ "species": "YANMA",
+ "hp": 65,
+ "atk": 65,
+ "def": 45,
+ "speed": 95,
+ "spatk": 75,
+ "spdef": 45,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 75,
+ "expYield": 147,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_WIDE_LENS"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_SPEED_BOOST",
+ "ABILITY_COMPOUND_EYES"
+ ],
+ "greatMarshRate": 120,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 29,
+ 30,
+ 32,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 51,
+ 58,
+ 62,
+ 70,
+ 78,
+ 82,
+ 83,
+ 85,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 5
+ ]
+ },
+ {
+ "species": "WOOPER",
+ "hp": 55,
+ "atk": 45,
+ "def": 45,
+ "speed": 15,
+ "spatk": 25,
+ "spdef": 25,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 255,
+ "expYield": 52,
+ "hp_yield": 1,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_DAMP",
+ "ABILITY_WATER_ABSORB"
+ ],
+ "greatMarshRate": 120,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 23,
+ 26,
+ 27,
+ 28,
+ 32,
+ 36,
+ 37,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 70,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "QUAGSIRE",
+ "hp": 95,
+ "atk": 85,
+ "def": 85,
+ "speed": 35,
+ "spatk": 65,
+ "spdef": 65,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 90,
+ "expYield": 137,
+ "hp_yield": 2,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_DAMP",
+ "ABILITY_WATER_ABSORB"
+ ],
+ "greatMarshRate": 60,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 36,
+ 37,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 52,
+ 56,
+ 58,
+ 68,
+ 70,
+ 71,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "ESPEON",
+ "hp": 65,
+ "atk": 65,
+ "def": 60,
+ "speed": 110,
+ "spatk": 130,
+ "spdef": 95,
+ "types": [
+ "TYPE_PSYCHIC",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 45,
+ "expYield": 197,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 2,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 35,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_SYNCHRONIZE",
+ "ABILITY_SYNCHRONIZE"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 4,
+ 6,
+ 10,
+ 11,
+ 15,
+ 16,
+ 17,
+ 18,
+ 21,
+ 23,
+ 27,
+ 28,
+ 29,
+ 30,
+ 32,
+ 33,
+ 42,
+ 43,
+ 44,
+ 45,
+ 48,
+ 58,
+ 68,
+ 70,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": [
+ 1
+ ]
+ },
+ {
+ "species": "UMBREON",
+ "hp": 95,
+ "atk": 65,
+ "def": 110,
+ "speed": 65,
+ "spatk": 60,
+ "spdef": 130,
+ "types": [
+ "TYPE_DARK",
+ "TYPE_DARK"
+ ],
+ "catchRate": 45,
+ "expYield": 197,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 2,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 35,
+ "friendship": 35,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_SYNCHRONIZE",
+ "ABILITY_SYNCHRONIZE"
+ ],
+ "greatMarshRate": 0,
+ "color": 4,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 12,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 27,
+ 28,
+ 29,
+ 30,
+ 32,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 49,
+ 58,
+ 66,
+ 68,
+ 70,
+ 77,
+ 78,
+ 79,
+ 82,
+ 83,
+ 85,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1
+ ]
+ },
+ {
+ "species": "MURKROW",
+ "hp": 60,
+ "atk": 85,
+ "def": 42,
+ "speed": 91,
+ "spatk": 85,
+ "spdef": 42,
+ "types": [
+ "TYPE_DARK",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 30,
+ "expYield": 107,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 35,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FLYING",
+ "EGG_GROUP_FLYING"
+ ],
+ "abilities": [
+ "ABILITY_INSOMNIA",
+ "ABILITY_SUPER_LUCK"
+ ],
+ "greatMarshRate": 0,
+ "color": 4,
+ "flip": 0,
+ "tms": [
+ 4,
+ 6,
+ 10,
+ 11,
+ 12,
+ 17,
+ 18,
+ 21,
+ 27,
+ 29,
+ 30,
+ 32,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 49,
+ 51,
+ 58,
+ 63,
+ 66,
+ 73,
+ 77,
+ 78,
+ 79,
+ 82,
+ 83,
+ 85,
+ 87,
+ 88,
+ 90
+ ],
+ "hms": [
+ 2,
+ 5
+ ]
+ },
+ {
+ "species": "SLOWKING",
+ "hp": 95,
+ "atk": 75,
+ "def": 80,
+ "speed": 30,
+ "spatk": 100,
+ "spdef": 110,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 70,
+ "expYield": 164,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 3,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_KINGS_ROCK"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_WATER_1"
+ ],
+ "abilities": [
+ "ABILITY_OBLIVIOUS",
+ "ABILITY_OWN_TEMPO"
+ ],
+ "greatMarshRate": 0,
+ "color": 9,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 7,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 23,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 35,
+ 38,
+ 42,
+ 43,
+ 44,
+ 45,
+ 48,
+ 52,
+ 55,
+ 56,
+ 58,
+ 60,
+ 67,
+ 68,
+ 70,
+ 72,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "MISDREAVUS",
+ "hp": 60,
+ "atk": 60,
+ "def": 60,
+ "speed": 85,
+ "spatk": 85,
+ "spdef": 85,
+ "types": [
+ "TYPE_GHOST",
+ "TYPE_GHOST"
+ ],
+ "catchRate": 45,
+ "expYield": 147,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 25,
+ "friendship": 35,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_AMORPHOUS",
+ "EGG_GROUP_AMORPHOUS"
+ ],
+ "abilities": [
+ "ABILITY_LEVITATE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 4,
+ 6,
+ 10,
+ 11,
+ 12,
+ 17,
+ 18,
+ 21,
+ 24,
+ 25,
+ 27,
+ 29,
+ 30,
+ 32,
+ 34,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 49,
+ 57,
+ 58,
+ 61,
+ 63,
+ 66,
+ 70,
+ 73,
+ 77,
+ 78,
+ 79,
+ 82,
+ 83,
+ 85,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "UNOWN",
+ "hp": 48,
+ "atk": 72,
+ "def": 48,
+ "speed": 48,
+ "spatk": 72,
+ "spdef": 48,
+ "types": [
+ "TYPE_PSYCHIC",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 225,
+ "expYield": 61,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 40,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_LEVITATE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 4,
+ "flip": 1,
+ "tms": [],
+ "hms": []
+ },
+ {
+ "species": "WOBBUFFET",
+ "hp": 190,
+ "atk": 33,
+ "def": 58,
+ "speed": 33,
+ "spatk": 33,
+ "spdef": 58,
+ "types": [
+ "TYPE_PSYCHIC",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 45,
+ "expYield": 177,
+ "hp_yield": 2,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_AMORPHOUS",
+ "EGG_GROUP_AMORPHOUS"
+ ],
+ "abilities": [
+ "ABILITY_SHADOW_TAG",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [],
+ "hms": []
+ },
+ {
+ "species": "GIRAFARIG",
+ "hp": 70,
+ "atk": 80,
+ "def": 65,
+ "speed": 85,
+ "spatk": 90,
+ "spdef": 65,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 60,
+ "expYield": 149,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 2,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_PERSIM_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_INNER_FOCUS",
+ "ABILITY_EARLY_BIRD"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 4,
+ 6,
+ 10,
+ 11,
+ 16,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 29,
+ 30,
+ 32,
+ 33,
+ 34,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 53,
+ 57,
+ 58,
+ 67,
+ 70,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "PINECO",
+ "hp": 50,
+ "atk": 65,
+ "def": 90,
+ "speed": 15,
+ "spatk": 35,
+ "spdef": 35,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_BUG"
+ ],
+ "catchRate": 190,
+ "expYield": 60,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_STURDY",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 16,
+ 17,
+ 19,
+ 21,
+ 22,
+ 26,
+ 27,
+ 28,
+ 32,
+ 33,
+ 37,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 64,
+ 66,
+ 74,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "FORRETRESS",
+ "hp": 75,
+ "atk": 90,
+ "def": 140,
+ "speed": 40,
+ "spatk": 60,
+ "spdef": 60,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_STEEL"
+ ],
+ "catchRate": 75,
+ "expYield": 118,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 2,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_STURDY",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 15,
+ 16,
+ 17,
+ 19,
+ 21,
+ 22,
+ 26,
+ 27,
+ 28,
+ 32,
+ 33,
+ 37,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 64,
+ 66,
+ 68,
+ 69,
+ 74,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90,
+ 91
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "DUNSPARCE",
+ "hp": 100,
+ "atk": 70,
+ "def": 70,
+ "speed": 45,
+ "spatk": 65,
+ "spdef": 65,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 190,
+ "expYield": 125,
+ "hp_yield": 1,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_SERENE_GRACE",
+ "ABILITY_RUN_AWAY"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 3,
+ 4,
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 30,
+ 32,
+ 34,
+ 35,
+ 38,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 51,
+ 57,
+ 58,
+ 73,
+ 74,
+ 76,
+ 77,
+ 78,
+ 80,
+ 82,
+ 83,
+ 84,
+ 85,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "GLIGAR",
+ "hp": 65,
+ "atk": 75,
+ "def": 105,
+ "speed": 85,
+ "spatk": 35,
+ "spdef": 65,
+ "types": [
+ "TYPE_GROUND",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 60,
+ "expYield": 108,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_HYPER_CUTTER",
+ "ABILITY_SAND_VEIL"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 12,
+ 17,
+ 18,
+ 21,
+ 23,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 36,
+ 37,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 51,
+ 54,
+ 56,
+ 58,
+ 66,
+ 69,
+ 71,
+ 75,
+ 76,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 5,
+ 6
+ ]
+ },
+ {
+ "species": "STEELIX",
+ "hp": 75,
+ "atk": 85,
+ "def": 200,
+ "speed": 30,
+ "spatk": 55,
+ "spdef": 65,
+ "types": [
+ "TYPE_STEEL",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 25,
+ "expYield": 196,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 2,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_METAL_COAT"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 25,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_MINERAL",
+ "EGG_GROUP_MINERAL"
+ ],
+ "abilities": [
+ "ABILITY_ROCK_HEAD",
+ "ABILITY_STURDY"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 10,
+ 11,
+ 12,
+ 15,
+ 17,
+ 21,
+ 23,
+ 26,
+ 27,
+ 28,
+ 32,
+ 37,
+ 39,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 59,
+ 64,
+ 66,
+ 68,
+ 69,
+ 71,
+ 74,
+ 76,
+ 77,
+ 78,
+ 79,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90,
+ 91
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "SNUBBULL",
+ "hp": 60,
+ "atk": 80,
+ "def": 50,
+ "speed": 30,
+ "spatk": 40,
+ "spdef": 40,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 190,
+ "expYield": 63,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.75,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FAIRY"
+ ],
+ "abilities": [
+ "ABILITY_INTIMIDATE",
+ "ABILITY_RUN_AWAY"
+ ],
+ "greatMarshRate": 0,
+ "color": 9,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 5,
+ 6,
+ 8,
+ 10,
+ 11,
+ 12,
+ 17,
+ 18,
+ 21,
+ 22,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 30,
+ 31,
+ 32,
+ 34,
+ 35,
+ 36,
+ 38,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 50,
+ 56,
+ 58,
+ 66,
+ 73,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "GRANBULL",
+ "hp": 90,
+ "atk": 120,
+ "def": 75,
+ "speed": 45,
+ "spatk": 60,
+ "spdef": 60,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 75,
+ "expYield": 178,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.75,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FAIRY"
+ ],
+ "abilities": [
+ "ABILITY_INTIMIDATE",
+ "ABILITY_QUICK_FEET"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 5,
+ 6,
+ 8,
+ 10,
+ 11,
+ 12,
+ 15,
+ 17,
+ 18,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 30,
+ 31,
+ 32,
+ 34,
+ 35,
+ 36,
+ 38,
+ 39,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 50,
+ 52,
+ 56,
+ 58,
+ 66,
+ 68,
+ 71,
+ 73,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "QWILFISH",
+ "hp": 65,
+ "atk": 95,
+ "def": 75,
+ "speed": 85,
+ "spatk": 55,
+ "spdef": 55,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_POISON"
+ ],
+ "catchRate": 45,
+ "expYield": 100,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_POISON_BARB"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_2",
+ "EGG_GROUP_WATER_2"
+ ],
+ "abilities": [
+ "ABILITY_POISON_POINT",
+ "ABILITY_SWIFT_SWIM"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 12,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 27,
+ 30,
+ 32,
+ 34,
+ 36,
+ 42,
+ 43,
+ 44,
+ 45,
+ 55,
+ 58,
+ 64,
+ 66,
+ 73,
+ 74,
+ 78,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 7
+ ]
+ },
+ {
+ "species": "SCIZOR",
+ "hp": 70,
+ "atk": 130,
+ "def": 100,
+ "speed": 65,
+ "spatk": 55,
+ "spdef": 80,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_STEEL"
+ ],
+ "catchRate": 25,
+ "expYield": 200,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 25,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_SWARM",
+ "ABILITY_TECHNICIAN"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 18,
+ 21,
+ 27,
+ 31,
+ 32,
+ 37,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 51,
+ 54,
+ 56,
+ 58,
+ 62,
+ 68,
+ 75,
+ 78,
+ 81,
+ 82,
+ 83,
+ 87,
+ 89,
+ 90,
+ 91
+ ],
+ "hms": [
+ 1,
+ 4,
+ 5,
+ 6
+ ]
+ },
+ {
+ "species": "SHUCKLE",
+ "hp": 20,
+ "atk": 10,
+ "def": 230,
+ "speed": 5,
+ "spatk": 10,
+ "spdef": 230,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_ROCK"
+ ],
+ "catchRate": 190,
+ "expYield": 80,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_ORAN_BERRY",
+ "ITEM_ORAN_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_STURDY",
+ "ABILITY_GLUTTONY"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 17,
+ 20,
+ 21,
+ 26,
+ 27,
+ 28,
+ 32,
+ 36,
+ 37,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 69,
+ 70,
+ 71,
+ 74,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "HERACROSS",
+ "hp": 80,
+ "atk": 125,
+ "def": 75,
+ "speed": 85,
+ "spatk": 40,
+ "spdef": 95,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_FIGHTING"
+ ],
+ "catchRate": 45,
+ "expYield": 200,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 25,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_SWARM",
+ "ABILITY_GUTS"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 8,
+ 10,
+ 11,
+ 15,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 52,
+ 56,
+ 58,
+ 65,
+ 68,
+ 71,
+ 75,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "SNEASEL",
+ "hp": 55,
+ "atk": 95,
+ "def": 55,
+ "speed": 115,
+ "spatk": 35,
+ "spdef": 75,
+ "types": [
+ "TYPE_DARK",
+ "TYPE_ICE"
+ ],
+ "catchRate": 60,
+ "expYield": 132,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_GRIP_CLAW",
+ "ITEM_QUICK_CLAW"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 35,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_INNER_FOCUS",
+ "ABILITY_KEEN_EYE"
+ ],
+ "greatMarshRate": 0,
+ "color": 4,
+ "flip": 1,
+ "tms": [
+ 1,
+ 4,
+ 6,
+ 7,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 23,
+ 27,
+ 28,
+ 30,
+ 31,
+ 32,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 49,
+ 54,
+ 56,
+ 58,
+ 63,
+ 65,
+ 66,
+ 72,
+ 75,
+ 77,
+ 78,
+ 79,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 3,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "TEDDIURSA",
+ "hp": 60,
+ "atk": 80,
+ "def": 50,
+ "speed": 40,
+ "spatk": 50,
+ "spdef": 50,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 120,
+ "expYield": 124,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_PICKUP",
+ "ABILITY_QUICK_FEET"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 1,
+ "tms": [
+ 1,
+ 5,
+ 6,
+ 8,
+ 10,
+ 11,
+ 12,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 56,
+ 58,
+ 65,
+ 66,
+ 75,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "URSARING",
+ "hp": 90,
+ "atk": 130,
+ "def": 75,
+ "speed": 55,
+ "spatk": 75,
+ "spdef": 75,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 60,
+ "expYield": 189,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_GUTS",
+ "ABILITY_QUICK_FEET"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 1,
+ 5,
+ 6,
+ 8,
+ 10,
+ 11,
+ 12,
+ 15,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 52,
+ 56,
+ 58,
+ 65,
+ 66,
+ 68,
+ 71,
+ 72,
+ 75,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "SLUGMA",
+ "hp": 40,
+ "atk": 40,
+ "def": 40,
+ "speed": 20,
+ "spatk": 70,
+ "spdef": 40,
+ "types": [
+ "TYPE_FIRE",
+ "TYPE_FIRE"
+ ],
+ "catchRate": 190,
+ "expYield": 78,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_AMORPHOUS",
+ "EGG_GROUP_AMORPHOUS"
+ ],
+ "abilities": [
+ "ABILITY_MAGMA_ARMOR",
+ "ABILITY_FLAME_BODY"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 16,
+ 17,
+ 21,
+ 27,
+ 32,
+ 33,
+ 35,
+ 38,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 50,
+ 58,
+ 61,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 6
+ ]
+ },
+ {
+ "species": "MAGCARGO",
+ "hp": 50,
+ "atk": 50,
+ "def": 120,
+ "speed": 30,
+ "spatk": 80,
+ "spdef": 80,
+ "types": [
+ "TYPE_FIRE",
+ "TYPE_ROCK"
+ ],
+ "catchRate": 75,
+ "expYield": 154,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 2,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_AMORPHOUS",
+ "EGG_GROUP_AMORPHOUS"
+ ],
+ "abilities": [
+ "ABILITY_MAGMA_ARMOR",
+ "ABILITY_FLAME_BODY"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 15,
+ 16,
+ 17,
+ 21,
+ 22,
+ 26,
+ 27,
+ 32,
+ 33,
+ 35,
+ 37,
+ 38,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 50,
+ 58,
+ 61,
+ 64,
+ 68,
+ 69,
+ 71,
+ 74,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "SWINUB",
+ "hp": 50,
+ "atk": 50,
+ "def": 40,
+ "speed": 50,
+ "spatk": 30,
+ "spdef": 30,
+ "types": [
+ "TYPE_ICE",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 225,
+ "expYield": 78,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_OBLIVIOUS",
+ "ABILITY_SNOW_CLOAK"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 16,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 28,
+ 32,
+ 33,
+ 37,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "PILOSWINE",
+ "hp": 100,
+ "atk": 100,
+ "def": 80,
+ "speed": 50,
+ "spatk": 60,
+ "spdef": 60,
+ "types": [
+ "TYPE_ICE",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 75,
+ "expYield": 160,
+ "hp_yield": 1,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_OBLIVIOUS",
+ "ABILITY_SNOW_CLOAK"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 28,
+ 32,
+ 33,
+ 37,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 68,
+ 71,
+ 72,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "CORSOLA",
+ "hp": 55,
+ "atk": 55,
+ "def": 85,
+ "speed": 35,
+ "spatk": 65,
+ "spdef": 85,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_ROCK"
+ ],
+ "catchRate": 60,
+ "expYield": 113,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_HARD_STONE"
+ ],
+ "genderRatio": 0.75,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_WATER_3"
+ ],
+ "abilities": [
+ "ABILITY_HUSTLE",
+ "ABILITY_NATURAL_CURE"
+ ],
+ "greatMarshRate": 0,
+ "color": 9,
+ "flip": 0,
+ "tms": [
+ 3,
+ 4,
+ 6,
+ 7,
+ 10,
+ 11,
+ 13,
+ 14,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 32,
+ 33,
+ 37,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 55,
+ 58,
+ 64,
+ 69,
+ 71,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "REMORAID",
+ "hp": 35,
+ "atk": 65,
+ "def": 35,
+ "speed": 65,
+ "spatk": 65,
+ "spdef": 35,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 190,
+ "expYield": 78,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_WATER_2"
+ ],
+ "abilities": [
+ "ABILITY_HUSTLE",
+ "ABILITY_SNIPER"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 9,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 27,
+ 29,
+ 32,
+ 35,
+ 38,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 55,
+ 57,
+ 58,
+ 73,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 7
+ ]
+ },
+ {
+ "species": "OCTILLERY",
+ "hp": 75,
+ "atk": 105,
+ "def": 75,
+ "speed": 45,
+ "spatk": 105,
+ "spdef": 75,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 75,
+ "expYield": 164,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_WATER_2"
+ ],
+ "abilities": [
+ "ABILITY_SUCTION_CUPS",
+ "ABILITY_SNIPER"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 9,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 27,
+ 29,
+ 32,
+ 35,
+ 36,
+ 38,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 53,
+ 55,
+ 57,
+ 58,
+ 66,
+ 68,
+ 73,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90,
+ 91
+ ],
+ "hms": [
+ 3,
+ 7
+ ]
+ },
+ {
+ "species": "DELIBIRD",
+ "hp": 45,
+ "atk": 55,
+ "def": 45,
+ "speed": 75,
+ "spatk": 65,
+ "spdef": 45,
+ "types": [
+ "TYPE_ICE",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 45,
+ "expYield": 183,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_VITAL_SPIRIT",
+ "ABILITY_HUSTLE"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 27,
+ 31,
+ 32,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 56,
+ 58,
+ 67,
+ 72,
+ 78,
+ 82,
+ 83,
+ 87,
+ 88,
+ 90
+ ],
+ "hms": [
+ 2,
+ 5
+ ]
+ },
+ {
+ "species": "MANTINE",
+ "hp": 65,
+ "atk": 40,
+ "def": 70,
+ "speed": 70,
+ "spatk": 80,
+ "spdef": 140,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 25,
+ "expYield": 168,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 2,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 25,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_WATER_1"
+ ],
+ "abilities": [
+ "ABILITY_SWIFT_SWIM",
+ "ABILITY_WATER_ABSORB"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 9,
+ 10,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 32,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 55,
+ 58,
+ 68,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 5,
+ 7
+ ]
+ },
+ {
+ "species": "SKARMORY",
+ "hp": 65,
+ "atk": 80,
+ "def": 140,
+ "speed": 70,
+ "spatk": 40,
+ "spdef": 70,
+ "types": [
+ "TYPE_STEEL",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 25,
+ "expYield": 168,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 2,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 25,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FLYING",
+ "EGG_GROUP_FLYING"
+ ],
+ "abilities": [
+ "ABILITY_KEEN_EYE",
+ "ABILITY_STURDY"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 10,
+ 11,
+ 12,
+ 17,
+ 21,
+ 27,
+ 32,
+ 37,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 51,
+ 58,
+ 66,
+ 70,
+ 75,
+ 76,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 87,
+ 88,
+ 90,
+ 91
+ ],
+ "hms": [
+ 1,
+ 2,
+ 5,
+ 6
+ ]
+ },
+ {
+ "species": "HOUNDOUR",
+ "hp": 45,
+ "atk": 60,
+ "def": 30,
+ "speed": 65,
+ "spatk": 80,
+ "spdef": 50,
+ "types": [
+ "TYPE_DARK",
+ "TYPE_FIRE"
+ ],
+ "catchRate": 120,
+ "expYield": 114,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 35,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_EARLY_BIRD",
+ "ABILITY_FLASH_FIRE"
+ ],
+ "greatMarshRate": 0,
+ "color": 4,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 10,
+ 11,
+ 12,
+ 17,
+ 21,
+ 22,
+ 23,
+ 27,
+ 30,
+ 32,
+ 35,
+ 36,
+ 38,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 49,
+ 50,
+ 58,
+ 61,
+ 63,
+ 66,
+ 78,
+ 79,
+ 82,
+ 83,
+ 85,
+ 87,
+ 90
+ ],
+ "hms": [
+ 6
+ ]
+ },
+ {
+ "species": "HOUNDOOM",
+ "hp": 75,
+ "atk": 90,
+ "def": 50,
+ "speed": 95,
+ "spatk": 110,
+ "spdef": 80,
+ "types": [
+ "TYPE_DARK",
+ "TYPE_FIRE"
+ ],
+ "catchRate": 45,
+ "expYield": 204,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 2,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 35,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_EARLY_BIRD",
+ "ABILITY_FLASH_FIRE"
+ ],
+ "greatMarshRate": 0,
+ "color": 4,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 10,
+ 11,
+ 12,
+ 15,
+ 17,
+ 21,
+ 22,
+ 23,
+ 27,
+ 30,
+ 32,
+ 35,
+ 36,
+ 38,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 49,
+ 50,
+ 58,
+ 61,
+ 63,
+ 66,
+ 68,
+ 78,
+ 79,
+ 82,
+ 83,
+ 85,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "KINGDRA",
+ "hp": 75,
+ "atk": 95,
+ "def": 95,
+ "speed": 85,
+ "spatk": 95,
+ "spdef": 95,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_DRAGON"
+ ],
+ "catchRate": 45,
+ "expYield": 207,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_DRAGON_SCALE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_DRAGON"
+ ],
+ "abilities": [
+ "ABILITY_SWIFT_SWIM",
+ "ABILITY_SNIPER"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 27,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 55,
+ 58,
+ 59,
+ 68,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90,
+ 91
+ ],
+ "hms": [
+ 3,
+ 7
+ ]
+ },
+ {
+ "species": "PHANPY",
+ "hp": 90,
+ "atk": 60,
+ "def": 60,
+ "speed": 40,
+ "spatk": 40,
+ "spdef": 40,
+ "types": [
+ "TYPE_GROUND",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 120,
+ "expYield": 124,
+ "hp_yield": 1,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_PASSHO_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_PICKUP",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 10,
+ 11,
+ 17,
+ 21,
+ 23,
+ 26,
+ 27,
+ 32,
+ 37,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "DONPHAN",
+ "hp": 90,
+ "atk": 120,
+ "def": 120,
+ "speed": 50,
+ "spatk": 60,
+ "spdef": 60,
+ "types": [
+ "TYPE_GROUND",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 60,
+ "expYield": 189,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_PASSHO_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_STURDY",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 21,
+ 23,
+ 26,
+ 27,
+ 32,
+ 37,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 68,
+ 69,
+ 71,
+ 74,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "PORYGON2",
+ "hp": 85,
+ "atk": 80,
+ "def": 90,
+ "speed": 60,
+ "spatk": 105,
+ "spdef": 95,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 45,
+ "expYield": 180,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 2,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_MINERAL",
+ "EGG_GROUP_MINERAL"
+ ],
+ "abilities": [
+ "ABILITY_TRACE",
+ "ABILITY_DOWNLOAD"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 27,
+ 29,
+ 30,
+ 32,
+ 34,
+ 40,
+ 42,
+ 43,
+ 44,
+ 46,
+ 57,
+ 58,
+ 67,
+ 68,
+ 70,
+ 73,
+ 77,
+ 82,
+ 83,
+ 85,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "STANTLER",
+ "hp": 73,
+ "atk": 95,
+ "def": 62,
+ "speed": 85,
+ "spatk": 85,
+ "spdef": 65,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 45,
+ "expYield": 165,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_INTIMIDATE",
+ "ABILITY_FRISK"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 4,
+ 5,
+ 6,
+ 10,
+ 11,
+ 16,
+ 17,
+ 18,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 29,
+ 30,
+ 32,
+ 33,
+ 34,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 53,
+ 57,
+ 58,
+ 68,
+ 70,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "SMEARGLE",
+ "hp": 55,
+ "atk": 20,
+ "def": 35,
+ "speed": 75,
+ "spatk": 20,
+ "spdef": 45,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 45,
+ "expYield": 106,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_OWN_TEMPO",
+ "ABILITY_TECHNICIAN"
+ ],
+ "greatMarshRate": 0,
+ "color": 8,
+ "flip": 0,
+ "tms": [],
+ "hms": []
+ },
+ {
+ "species": "TYROGUE",
+ "hp": 35,
+ "atk": 35,
+ "def": 35,
+ "speed": 35,
+ "spatk": 35,
+ "spdef": 35,
+ "types": [
+ "TYPE_FIGHTING",
+ "TYPE_FIGHTING"
+ ],
+ "catchRate": 75,
+ "expYield": 91,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.0,
+ "eggCycles": 25,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_GUTS",
+ "ABILITY_STEADFAST"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 6,
+ 8,
+ 10,
+ 11,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 31,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 58,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "HITMONTOP",
+ "hp": 50,
+ "atk": 95,
+ "def": 95,
+ "speed": 70,
+ "spatk": 35,
+ "spdef": 110,
+ "types": [
+ "TYPE_FIGHTING",
+ "TYPE_FIGHTING"
+ ],
+ "catchRate": 45,
+ "expYield": 138,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 2,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.0,
+ "eggCycles": 25,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_HUMAN_LIKE",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_INTIMIDATE",
+ "ABILITY_TECHNICIAN"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 6,
+ 8,
+ 10,
+ 11,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 37,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 58,
+ 71,
+ 74,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "SMOOCHUM",
+ "hp": 45,
+ "atk": 30,
+ "def": 15,
+ "speed": 65,
+ "spatk": 85,
+ "spdef": 65,
+ "types": [
+ "TYPE_ICE",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 45,
+ "expYield": 87,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_ASPEAR_BERRY",
+ "ITEM_ASPEAR_BERRY"
+ ],
+ "genderRatio": 1.0,
+ "eggCycles": 25,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_OBLIVIOUS",
+ "ABILITY_FOREWARN"
+ ],
+ "greatMarshRate": 0,
+ "color": 9,
+ "flip": 0,
+ "tms": [
+ 3,
+ 4,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 16,
+ 17,
+ 18,
+ 21,
+ 27,
+ 29,
+ 30,
+ 32,
+ 33,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 56,
+ 58,
+ 66,
+ 67,
+ 70,
+ 72,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "ELEKID",
+ "hp": 45,
+ "atk": 63,
+ "def": 37,
+ "speed": 95,
+ "spatk": 65,
+ "spdef": 55,
+ "types": [
+ "TYPE_ELECTRIC",
+ "TYPE_ELECTRIC"
+ ],
+ "catchRate": 45,
+ "expYield": 106,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_ELECTIRIZER",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.25,
+ "eggCycles": 25,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_STATIC",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 1,
+ "tms": [
+ 1,
+ 6,
+ 10,
+ 16,
+ 17,
+ 18,
+ 21,
+ 24,
+ 25,
+ 27,
+ 29,
+ 31,
+ 32,
+ 34,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 56,
+ 57,
+ 58,
+ 70,
+ 73,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 6
+ ]
+ },
+ {
+ "species": "MAGBY",
+ "hp": 45,
+ "atk": 75,
+ "def": 37,
+ "speed": 83,
+ "spatk": 70,
+ "spdef": 55,
+ "types": [
+ "TYPE_FIRE",
+ "TYPE_FIRE"
+ ],
+ "catchRate": 45,
+ "expYield": 117,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_MAGMARIZER"
+ ],
+ "genderRatio": 0.25,
+ "eggCycles": 25,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_FLAME_BODY",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 1,
+ "tms": [
+ 1,
+ 6,
+ 10,
+ 11,
+ 17,
+ 21,
+ 23,
+ 27,
+ 29,
+ 31,
+ 32,
+ 35,
+ 38,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 50,
+ 56,
+ 58,
+ 61,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 6
+ ]
+ },
+ {
+ "species": "MILTANK",
+ "hp": 95,
+ "atk": 80,
+ "def": 105,
+ "speed": 100,
+ "spatk": 40,
+ "spdef": 70,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 45,
+ "expYield": 200,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 2,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_MOOMOO_MILK",
+ "ITEM_MOOMOO_MILK"
+ ],
+ "genderRatio": 1.0,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_THICK_FAT",
+ "ABILITY_SCRAPPY"
+ ],
+ "greatMarshRate": 0,
+ "color": 9,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 30,
+ 31,
+ 32,
+ 34,
+ 37,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 52,
+ 56,
+ 58,
+ 68,
+ 73,
+ 74,
+ 76,
+ 77,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "BLISSEY",
+ "hp": 255,
+ "atk": 10,
+ "def": 10,
+ "speed": 55,
+ "spatk": 75,
+ "spdef": 135,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 30,
+ "expYield": 255,
+ "hp_yield": 3,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_OVAL_STONE",
+ "ITEM_LUCKY_EGG"
+ ],
+ "genderRatio": 1.0,
+ "eggCycles": 40,
+ "friendship": 140,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_FAIRY",
+ "EGG_GROUP_FAIRY"
+ ],
+ "abilities": [
+ "ABILITY_NATURAL_CURE",
+ "ABILITY_SERENE_GRACE"
+ ],
+ "greatMarshRate": 0,
+ "color": 9,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 7,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 29,
+ 30,
+ 31,
+ 32,
+ 34,
+ 35,
+ 37,
+ 38,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 48,
+ 49,
+ 52,
+ 56,
+ 57,
+ 58,
+ 60,
+ 67,
+ 68,
+ 70,
+ 72,
+ 73,
+ 76,
+ 77,
+ 78,
+ 80,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "RAIKOU",
+ "hp": 90,
+ "atk": 85,
+ "def": 75,
+ "speed": 115,
+ "spatk": 115,
+ "spdef": 100,
+ "types": [
+ "TYPE_ELECTRIC",
+ "TYPE_ELECTRIC"
+ ],
+ "catchRate": 3,
+ "expYield": 216,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 2,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 80,
+ "friendship": 35,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_PRESSURE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 4,
+ 5,
+ 6,
+ 10,
+ 11,
+ 15,
+ 16,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 28,
+ 30,
+ 32,
+ 33,
+ 34,
+ 37,
+ 42,
+ 43,
+ 44,
+ 57,
+ 58,
+ 68,
+ 70,
+ 73,
+ 77,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "ENTEI",
+ "hp": 115,
+ "atk": 115,
+ "def": 85,
+ "speed": 100,
+ "spatk": 90,
+ "spdef": 75,
+ "types": [
+ "TYPE_FIRE",
+ "TYPE_FIRE"
+ ],
+ "catchRate": 3,
+ "expYield": 217,
+ "hp_yield": 1,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 80,
+ "friendship": 35,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_PRESSURE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 4,
+ 5,
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 18,
+ 21,
+ 22,
+ 23,
+ 27,
+ 28,
+ 30,
+ 32,
+ 33,
+ 35,
+ 37,
+ 38,
+ 42,
+ 43,
+ 44,
+ 50,
+ 58,
+ 61,
+ 68,
+ 70,
+ 71,
+ 77,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "SUICUNE",
+ "hp": 100,
+ "atk": 75,
+ "def": 115,
+ "speed": 85,
+ "spatk": 90,
+ "spdef": 115,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 3,
+ "expYield": 215,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 2,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 80,
+ "friendship": 35,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_PRESSURE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 27,
+ 28,
+ 30,
+ 32,
+ 33,
+ 37,
+ 42,
+ 43,
+ 44,
+ 55,
+ 58,
+ 68,
+ 72,
+ 77,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 3,
+ 6,
+ 7,
+ 8
+ ]
+ },
+ {
+ "species": "LARVITAR",
+ "hp": 50,
+ "atk": 64,
+ "def": 50,
+ "speed": 41,
+ "spatk": 45,
+ "spdef": 50,
+ "types": [
+ "TYPE_ROCK",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 45,
+ "expYield": 67,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 40,
+ "friendship": 35,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_MONSTER"
+ ],
+ "abilities": [
+ "ABILITY_GUTS",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 12,
+ 15,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 37,
+ 39,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 66,
+ 69,
+ 71,
+ 76,
+ 78,
+ 79,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 6
+ ]
+ },
+ {
+ "species": "PUPITAR",
+ "hp": 70,
+ "atk": 84,
+ "def": 70,
+ "speed": 51,
+ "spatk": 65,
+ "spdef": 70,
+ "types": [
+ "TYPE_ROCK",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 45,
+ "expYield": 144,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 40,
+ "friendship": 35,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_MONSTER"
+ ],
+ "abilities": [
+ "ABILITY_SHED_SKIN",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 12,
+ 15,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 37,
+ 39,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 66,
+ 69,
+ 71,
+ 76,
+ 78,
+ 79,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 6
+ ]
+ },
+ {
+ "species": "TYRANITAR",
+ "hp": 100,
+ "atk": 134,
+ "def": 110,
+ "speed": 61,
+ "spatk": 95,
+ "spdef": 100,
+ "types": [
+ "TYPE_ROCK",
+ "TYPE_DARK"
+ ],
+ "catchRate": 45,
+ "expYield": 218,
+ "hp_yield": 0,
+ "atk_yield": 3,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 40,
+ "friendship": 35,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_MONSTER"
+ ],
+ "abilities": [
+ "ABILITY_SAND_STREAM",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 1,
+ 2,
+ 3,
+ 5,
+ 6,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 34,
+ 35,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 52,
+ 56,
+ 58,
+ 59,
+ 65,
+ 66,
+ 68,
+ 69,
+ 71,
+ 72,
+ 73,
+ 76,
+ 78,
+ 79,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "LUGIA",
+ "hp": 106,
+ "atk": 90,
+ "def": 130,
+ "speed": 110,
+ "spatk": 90,
+ "spdef": 154,
+ "types": [
+ "TYPE_PSYCHIC",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 3,
+ "expYield": 220,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 3,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 120,
+ "friendship": 0,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_PRESSURE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 8,
+ "flip": 0,
+ "tms": [
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 29,
+ 30,
+ 32,
+ 33,
+ 34,
+ 37,
+ 40,
+ 42,
+ 43,
+ 44,
+ 47,
+ 48,
+ 51,
+ 55,
+ 57,
+ 58,
+ 59,
+ 68,
+ 70,
+ 72,
+ 73,
+ 77,
+ 82,
+ 83,
+ 85,
+ 87,
+ 90
+ ],
+ "hms": [
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "HO_OH",
+ "hp": 106,
+ "atk": 130,
+ "def": 90,
+ "speed": 90,
+ "spatk": 110,
+ "spdef": 154,
+ "types": [
+ "TYPE_FIRE",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 3,
+ "expYield": 220,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 3,
+ "items": [
+ "ITEM_SACRED_ASH",
+ "ITEM_SACRED_ASH"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 120,
+ "friendship": 0,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_PRESSURE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 4,
+ 5,
+ 6,
+ 10,
+ 11,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 24,
+ 25,
+ 26,
+ 27,
+ 29,
+ 30,
+ 32,
+ 33,
+ 34,
+ 35,
+ 37,
+ 38,
+ 40,
+ 42,
+ 43,
+ 44,
+ 47,
+ 50,
+ 51,
+ 57,
+ 58,
+ 61,
+ 68,
+ 70,
+ 73,
+ 77,
+ 82,
+ 83,
+ 85,
+ 87,
+ 88,
+ 90
+ ],
+ "hms": [
+ 2,
+ 4,
+ 5,
+ 6
+ ]
+ },
+ {
+ "species": "CELEBI",
+ "hp": 100,
+ "atk": 100,
+ "def": 100,
+ "speed": 100,
+ "spatk": 100,
+ "spdef": 100,
+ "types": [
+ "TYPE_PSYCHIC",
+ "TYPE_GRASS"
+ ],
+ "catchRate": 45,
+ "expYield": 64,
+ "hp_yield": 3,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_LUM_BERRY",
+ "ITEM_LUM_BERRY"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 120,
+ "friendship": 100,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_NATURAL_CURE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 3,
+ 4,
+ 6,
+ 10,
+ 11,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 27,
+ 29,
+ 30,
+ 32,
+ 33,
+ 34,
+ 37,
+ 40,
+ 42,
+ 43,
+ 44,
+ 48,
+ 53,
+ 56,
+ 57,
+ 58,
+ 62,
+ 68,
+ 70,
+ 73,
+ 75,
+ 76,
+ 77,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 89,
+ 90,
+ 92
+ ],
+ "hms": [
+ 1
+ ]
+ },
+ {
+ "species": "TREECKO",
+ "hp": 40,
+ "atk": 45,
+ "def": 35,
+ "speed": 70,
+ "spatk": 65,
+ "spdef": 55,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_GRASS"
+ ],
+ "catchRate": 45,
+ "expYield": 65,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_DRAGON"
+ ],
+ "abilities": [
+ "ABILITY_OVERGROW",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 9,
+ 10,
+ 11,
+ 17,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 27,
+ 28,
+ 31,
+ 32,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 53,
+ 56,
+ 58,
+ 60,
+ 70,
+ 75,
+ 78,
+ 80,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "GROVYLE",
+ "hp": 50,
+ "atk": 65,
+ "def": 45,
+ "speed": 95,
+ "spatk": 85,
+ "spdef": 65,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_GRASS"
+ ],
+ "catchRate": 45,
+ "expYield": 141,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 2,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_DRAGON"
+ ],
+ "abilities": [
+ "ABILITY_OVERGROW",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 9,
+ 10,
+ 11,
+ 17,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 27,
+ 28,
+ 31,
+ 32,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 53,
+ 54,
+ 56,
+ 58,
+ 60,
+ 70,
+ 75,
+ 78,
+ 80,
+ 81,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "SCEPTILE",
+ "hp": 70,
+ "atk": 85,
+ "def": 65,
+ "speed": 120,
+ "spatk": 105,
+ "spdef": 85,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_GRASS"
+ ],
+ "catchRate": 45,
+ "expYield": 208,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 3,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_DRAGON"
+ ],
+ "abilities": [
+ "ABILITY_OVERGROW",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 1,
+ 2,
+ 5,
+ 6,
+ 9,
+ 10,
+ 11,
+ 15,
+ 17,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 52,
+ 53,
+ 54,
+ 56,
+ 58,
+ 59,
+ 60,
+ 68,
+ 70,
+ 75,
+ 78,
+ 80,
+ 81,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "TORCHIC",
+ "hp": 45,
+ "atk": 60,
+ "def": 40,
+ "speed": 45,
+ "spatk": 70,
+ "spdef": 50,
+ "types": [
+ "TYPE_FIRE",
+ "TYPE_FIRE"
+ ],
+ "catchRate": 45,
+ "expYield": 65,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_BLAZE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 17,
+ 21,
+ 27,
+ 28,
+ 32,
+ 35,
+ 38,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 50,
+ 58,
+ 61,
+ 65,
+ 75,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "COMBUSKEN",
+ "hp": 60,
+ "atk": 85,
+ "def": 60,
+ "speed": 55,
+ "spatk": 85,
+ "spdef": 60,
+ "types": [
+ "TYPE_FIRE",
+ "TYPE_FIGHTING"
+ ],
+ "catchRate": 45,
+ "expYield": 142,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_BLAZE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 8,
+ 10,
+ 11,
+ 17,
+ 21,
+ 27,
+ 28,
+ 31,
+ 32,
+ 35,
+ 38,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 50,
+ 52,
+ 56,
+ 58,
+ 61,
+ 65,
+ 75,
+ 78,
+ 80,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "BLAZIKEN",
+ "hp": 80,
+ "atk": 120,
+ "def": 70,
+ "speed": 80,
+ "spatk": 110,
+ "spdef": 70,
+ "types": [
+ "TYPE_FIRE",
+ "TYPE_FIGHTING"
+ ],
+ "catchRate": 45,
+ "expYield": 209,
+ "hp_yield": 0,
+ "atk_yield": 3,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_BLAZE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 1,
+ 5,
+ 6,
+ 8,
+ 10,
+ 11,
+ 15,
+ 17,
+ 21,
+ 22,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 35,
+ 38,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 50,
+ 52,
+ 56,
+ 58,
+ 61,
+ 65,
+ 68,
+ 71,
+ 75,
+ 78,
+ 80,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "MUDKIP",
+ "hp": 50,
+ "atk": 70,
+ "def": 50,
+ "speed": 40,
+ "spatk": 50,
+ "spdef": 50,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 45,
+ "expYield": 65,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_WATER_1"
+ ],
+ "abilities": [
+ "ABILITY_TORRENT",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 23,
+ 27,
+ 28,
+ 32,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "MARSHTOMP",
+ "hp": 70,
+ "atk": 85,
+ "def": 70,
+ "speed": 50,
+ "spatk": 60,
+ "spdef": 70,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 45,
+ "expYield": 143,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_WATER_1"
+ ],
+ "abilities": [
+ "ABILITY_TORRENT",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 23,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 56,
+ 58,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "SWAMPERT",
+ "hp": 100,
+ "atk": 110,
+ "def": 90,
+ "speed": 60,
+ "spatk": 85,
+ "spdef": 90,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 45,
+ "expYield": 210,
+ "hp_yield": 0,
+ "atk_yield": 3,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_WATER_1"
+ ],
+ "abilities": [
+ "ABILITY_TORRENT",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 5,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 52,
+ 56,
+ 58,
+ 68,
+ 71,
+ 72,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 7,
+ 8
+ ]
+ },
+ {
+ "species": "POOCHYENA",
+ "hp": 35,
+ "atk": 55,
+ "def": 35,
+ "speed": 35,
+ "spatk": 30,
+ "spdef": 30,
+ "types": [
+ "TYPE_DARK",
+ "TYPE_DARK"
+ ],
+ "catchRate": 255,
+ "expYield": 55,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_PECHA_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_RUN_AWAY",
+ "ABILITY_QUICK_FEET"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 10,
+ 11,
+ 12,
+ 17,
+ 18,
+ 21,
+ 23,
+ 27,
+ 28,
+ 30,
+ 32,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 49,
+ 58,
+ 63,
+ 66,
+ 78,
+ 79,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 6
+ ]
+ },
+ {
+ "species": "MIGHTYENA",
+ "hp": 70,
+ "atk": 90,
+ "def": 70,
+ "speed": 70,
+ "spatk": 60,
+ "spdef": 60,
+ "types": [
+ "TYPE_DARK",
+ "TYPE_DARK"
+ ],
+ "catchRate": 127,
+ "expYield": 128,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_PECHA_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_INTIMIDATE",
+ "ABILITY_QUICK_FEET"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 10,
+ 11,
+ 12,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 27,
+ 28,
+ 30,
+ 32,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 49,
+ 58,
+ 63,
+ 66,
+ 68,
+ 78,
+ 79,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "ZIGZAGOON",
+ "hp": 38,
+ "atk": 30,
+ "def": 41,
+ "speed": 60,
+ "spatk": 30,
+ "spdef": 41,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 255,
+ "expYield": 60,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_ORAN_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_PICKUP",
+ "ABILITY_GLUTTONY"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 28,
+ 30,
+ 32,
+ 34,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 56,
+ 57,
+ 58,
+ 73,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 3,
+ 6
+ ]
+ },
+ {
+ "species": "LINOONE",
+ "hp": 78,
+ "atk": 70,
+ "def": 61,
+ "speed": 100,
+ "spatk": 50,
+ "spdef": 61,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 90,
+ "expYield": 128,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 2,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_ORAN_BERRY",
+ "ITEM_SITRUS_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_PICKUP",
+ "ABILITY_GLUTTONY"
+ ],
+ "greatMarshRate": 0,
+ "color": 8,
+ "flip": 0,
+ "tms": [
+ 3,
+ 5,
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 28,
+ 30,
+ 32,
+ 34,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 56,
+ 57,
+ 58,
+ 65,
+ 68,
+ 73,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 3,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "WURMPLE",
+ "hp": 45,
+ "atk": 45,
+ "def": 35,
+ "speed": 20,
+ "spatk": 20,
+ "spdef": 30,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_BUG"
+ ],
+ "catchRate": 255,
+ "expYield": 54,
+ "hp_yield": 1,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_SHIELD_DUST",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [],
+ "hms": []
+ },
+ {
+ "species": "SILCOON",
+ "hp": 50,
+ "atk": 35,
+ "def": 55,
+ "speed": 15,
+ "spatk": 25,
+ "spdef": 25,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_BUG"
+ ],
+ "catchRate": 120,
+ "expYield": 72,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 2,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_SHED_SKIN",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 8,
+ "flip": 0,
+ "tms": [],
+ "hms": []
+ },
+ {
+ "species": "BEAUTIFLY",
+ "hp": 60,
+ "atk": 70,
+ "def": 50,
+ "speed": 65,
+ "spatk": 90,
+ "spdef": 50,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 45,
+ "expYield": 161,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 3,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_SHED_SHELL"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_SWARM",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 19,
+ 20,
+ 21,
+ 22,
+ 27,
+ 29,
+ 30,
+ 32,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 51,
+ 53,
+ 58,
+ 62,
+ 68,
+ 70,
+ 78,
+ 82,
+ 83,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 5
+ ]
+ },
+ {
+ "species": "CASCOON",
+ "hp": 50,
+ "atk": 35,
+ "def": 55,
+ "speed": 15,
+ "spatk": 25,
+ "spdef": 25,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_BUG"
+ ],
+ "catchRate": 120,
+ "expYield": 72,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 2,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_SHED_SKIN",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [],
+ "hms": []
+ },
+ {
+ "species": "DUSTOX",
+ "hp": 60,
+ "atk": 50,
+ "def": 70,
+ "speed": 65,
+ "spatk": 50,
+ "spdef": 90,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_POISON"
+ ],
+ "catchRate": 45,
+ "expYield": 161,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 3,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_SHED_SHELL"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_SHIELD_DUST",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 15,
+ 16,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 29,
+ 30,
+ 32,
+ 36,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 51,
+ 53,
+ 58,
+ 62,
+ 68,
+ 70,
+ 78,
+ 82,
+ 83,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 5
+ ]
+ },
+ {
+ "species": "LOTAD",
+ "hp": 40,
+ "atk": 30,
+ "def": 30,
+ "speed": 30,
+ "spatk": 40,
+ "spdef": 50,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_GRASS"
+ ],
+ "catchRate": 255,
+ "expYield": 74,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_SWIFT_SWIM",
+ "ABILITY_RAIN_DISH"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 9,
+ 10,
+ 11,
+ 13,
+ 14,
+ 17,
+ 18,
+ 19,
+ 21,
+ 22,
+ 27,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 53,
+ 58,
+ 70,
+ 75,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3
+ ]
+ },
+ {
+ "species": "LOMBRE",
+ "hp": 60,
+ "atk": 50,
+ "def": 50,
+ "speed": 50,
+ "spatk": 60,
+ "spdef": 70,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_GRASS"
+ ],
+ "catchRate": 120,
+ "expYield": 141,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 2,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_SWIFT_SWIM",
+ "ABILITY_RAIN_DISH"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 9,
+ 10,
+ 11,
+ 13,
+ 14,
+ 17,
+ 18,
+ 19,
+ 21,
+ 22,
+ 27,
+ 31,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 53,
+ 56,
+ 58,
+ 60,
+ 70,
+ 75,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "LUDICOLO",
+ "hp": 80,
+ "atk": 70,
+ "def": 70,
+ "speed": 70,
+ "spatk": 90,
+ "spdef": 100,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_GRASS"
+ ],
+ "catchRate": 45,
+ "expYield": 181,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 3,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_SWIFT_SWIM",
+ "ABILITY_RAIN_DISH"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 6,
+ 7,
+ 9,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 19,
+ 21,
+ 22,
+ 27,
+ 31,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 52,
+ 53,
+ 56,
+ 58,
+ 60,
+ 68,
+ 70,
+ 75,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 7,
+ 8
+ ]
+ },
+ {
+ "species": "SEEDOT",
+ "hp": 40,
+ "atk": 40,
+ "def": 50,
+ "speed": 30,
+ "spatk": 30,
+ "spdef": 30,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_GRASS"
+ ],
+ "catchRate": 255,
+ "expYield": 74,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_CHLOROPHYLL",
+ "ABILITY_EARLY_BIRD"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 28,
+ 30,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 53,
+ 58,
+ 64,
+ 70,
+ 75,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 6
+ ]
+ },
+ {
+ "species": "NUZLEAF",
+ "hp": 70,
+ "atk": 70,
+ "def": 40,
+ "speed": 60,
+ "spatk": 60,
+ "spdef": 40,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_DARK"
+ ],
+ "catchRate": 120,
+ "expYield": 141,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_CHLOROPHYLL",
+ "ABILITY_EARLY_BIRD"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 15,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 28,
+ 30,
+ 31,
+ 32,
+ 39,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 53,
+ 56,
+ 58,
+ 63,
+ 64,
+ 66,
+ 70,
+ 75,
+ 77,
+ 78,
+ 79,
+ 80,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "SHIFTRY",
+ "hp": 90,
+ "atk": 100,
+ "def": 60,
+ "speed": 80,
+ "spatk": 90,
+ "spdef": 60,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_DARK"
+ ],
+ "catchRate": 45,
+ "expYield": 181,
+ "hp_yield": 0,
+ "atk_yield": 3,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_CHLOROPHYLL",
+ "ABILITY_EARLY_BIRD"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 15,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 28,
+ 30,
+ 31,
+ 32,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 52,
+ 53,
+ 56,
+ 58,
+ 62,
+ 63,
+ 64,
+ 66,
+ 68,
+ 70,
+ 75,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 5,
+ 6
+ ]
+ },
+ {
+ "species": "TAILLOW",
+ "hp": 40,
+ "atk": 55,
+ "def": 30,
+ "speed": 85,
+ "spatk": 30,
+ "spdef": 30,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 200,
+ "expYield": 59,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_CHARTI_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FLYING",
+ "EGG_GROUP_FLYING"
+ ],
+ "abilities": [
+ "ABILITY_GUTS",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 17,
+ 18,
+ 21,
+ 27,
+ 32,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 51,
+ 58,
+ 78,
+ 82,
+ 83,
+ 87,
+ 88,
+ 89,
+ 90
+ ],
+ "hms": [
+ 2,
+ 5
+ ]
+ },
+ {
+ "species": "SWELLOW",
+ "hp": 60,
+ "atk": 85,
+ "def": 60,
+ "speed": 125,
+ "spatk": 50,
+ "spdef": 50,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 45,
+ "expYield": 162,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 2,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_CHARTI_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FLYING",
+ "EGG_GROUP_FLYING"
+ ],
+ "abilities": [
+ "ABILITY_GUTS",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 18,
+ 21,
+ 27,
+ 32,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 51,
+ 58,
+ 68,
+ 78,
+ 82,
+ 83,
+ 87,
+ 88,
+ 89,
+ 90
+ ],
+ "hms": [
+ 2,
+ 5
+ ]
+ },
+ {
+ "species": "WINGULL",
+ "hp": 40,
+ "atk": 30,
+ "def": 30,
+ "speed": 85,
+ "spatk": 55,
+ "spdef": 30,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 190,
+ "expYield": 64,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_FLYING"
+ ],
+ "abilities": [
+ "ABILITY_KEEN_EYE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 8,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 27,
+ 32,
+ 34,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 51,
+ 55,
+ 58,
+ 78,
+ 82,
+ 83,
+ 87,
+ 88,
+ 89,
+ 90
+ ],
+ "hms": [
+ 2,
+ 5
+ ]
+ },
+ {
+ "species": "PELIPPER",
+ "hp": 60,
+ "atk": 50,
+ "def": 100,
+ "speed": 65,
+ "spatk": 85,
+ "spdef": 70,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 45,
+ "expYield": 164,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 2,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_FLYING"
+ ],
+ "abilities": [
+ "ABILITY_KEEN_EYE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 27,
+ 32,
+ 34,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 51,
+ 55,
+ 56,
+ 58,
+ 66,
+ 68,
+ 78,
+ 82,
+ 83,
+ 87,
+ 88,
+ 89,
+ 90
+ ],
+ "hms": [
+ 2,
+ 3,
+ 5
+ ]
+ },
+ {
+ "species": "RALTS",
+ "hp": 28,
+ "atk": 25,
+ "def": 25,
+ "speed": 40,
+ "spatk": 45,
+ "spdef": 35,
+ "types": [
+ "TYPE_PSYCHIC",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 235,
+ "expYield": 70,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 35,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_AMORPHOUS",
+ "EGG_GROUP_AMORPHOUS"
+ ],
+ "abilities": [
+ "ABILITY_SYNCHRONIZE",
+ "ABILITY_TRACE"
+ ],
+ "greatMarshRate": 0,
+ "color": 8,
+ "flip": 0,
+ "tms": [
+ 4,
+ 6,
+ 10,
+ 11,
+ 12,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 24,
+ 27,
+ 29,
+ 30,
+ 32,
+ 33,
+ 34,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 49,
+ 56,
+ 57,
+ 58,
+ 67,
+ 70,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "KIRLIA",
+ "hp": 38,
+ "atk": 35,
+ "def": 35,
+ "speed": 50,
+ "spatk": 65,
+ "spdef": 55,
+ "types": [
+ "TYPE_PSYCHIC",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 120,
+ "expYield": 140,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 2,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 35,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_AMORPHOUS",
+ "EGG_GROUP_AMORPHOUS"
+ ],
+ "abilities": [
+ "ABILITY_SYNCHRONIZE",
+ "ABILITY_TRACE"
+ ],
+ "greatMarshRate": 0,
+ "color": 8,
+ "flip": 0,
+ "tms": [
+ 4,
+ 6,
+ 10,
+ 11,
+ 12,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 24,
+ 27,
+ 29,
+ 30,
+ 32,
+ 33,
+ 34,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 49,
+ 56,
+ 57,
+ 58,
+ 67,
+ 70,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "GARDEVOIR",
+ "hp": 68,
+ "atk": 65,
+ "def": 65,
+ "speed": 80,
+ "spatk": 125,
+ "spdef": 115,
+ "types": [
+ "TYPE_PSYCHIC",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 45,
+ "expYield": 208,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 3,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 35,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_AMORPHOUS",
+ "EGG_GROUP_AMORPHOUS"
+ ],
+ "abilities": [
+ "ABILITY_SYNCHRONIZE",
+ "ABILITY_TRACE"
+ ],
+ "greatMarshRate": 0,
+ "color": 8,
+ "flip": 0,
+ "tms": [
+ 4,
+ 6,
+ 10,
+ 11,
+ 12,
+ 15,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 24,
+ 27,
+ 29,
+ 30,
+ 32,
+ 33,
+ 34,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 49,
+ 52,
+ 53,
+ 56,
+ 57,
+ 58,
+ 67,
+ 68,
+ 70,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "SURSKIT",
+ "hp": 40,
+ "atk": 30,
+ "def": 32,
+ "speed": 65,
+ "spatk": 50,
+ "spdef": 52,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_WATER"
+ ],
+ "catchRate": 200,
+ "expYield": 63,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_SWIFT_SWIM",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 17,
+ 18,
+ 19,
+ 21,
+ 22,
+ 27,
+ 30,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 58,
+ 70,
+ 77,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "MASQUERAIN",
+ "hp": 70,
+ "atk": 60,
+ "def": 62,
+ "speed": 60,
+ "spatk": 80,
+ "spdef": 82,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 75,
+ "expYield": 128,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_SILVERPOWDER"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_INTIMIDATE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 19,
+ 21,
+ 22,
+ 27,
+ 30,
+ 32,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 51,
+ 53,
+ 58,
+ 62,
+ 68,
+ 70,
+ 77,
+ 78,
+ 82,
+ 83,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 5
+ ]
+ },
+ {
+ "species": "SHROOMISH",
+ "hp": 60,
+ "atk": 40,
+ "def": 60,
+ "speed": 35,
+ "spatk": 40,
+ "spdef": 60,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_GRASS"
+ ],
+ "catchRate": 255,
+ "expYield": 65,
+ "hp_yield": 1,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_KEBIA_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "FLUCTUATING",
+ "eggGroups": [
+ "EGG_GROUP_FAIRY",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_EFFECT_SPORE",
+ "ABILITY_POISON_HEAL"
+ ],
+ "greatMarshRate": 120,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 17,
+ 19,
+ 20,
+ 21,
+ 22,
+ 27,
+ 32,
+ 36,
+ 42,
+ 43,
+ 44,
+ 45,
+ 49,
+ 53,
+ 58,
+ 70,
+ 75,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "BRELOOM",
+ "hp": 60,
+ "atk": 130,
+ "def": 80,
+ "speed": 70,
+ "spatk": 60,
+ "spdef": 60,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_FIGHTING"
+ ],
+ "catchRate": 90,
+ "expYield": 165,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_KEBIA_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "FLUCTUATING",
+ "eggGroups": [
+ "EGG_GROUP_FAIRY",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_EFFECT_SPORE",
+ "ABILITY_POISON_HEAL"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 8,
+ 9,
+ 10,
+ 11,
+ 15,
+ 17,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 27,
+ 31,
+ 32,
+ 36,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 49,
+ 52,
+ 53,
+ 56,
+ 58,
+ 60,
+ 68,
+ 70,
+ 71,
+ 75,
+ 78,
+ 80,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "SLAKOTH",
+ "hp": 60,
+ "atk": 60,
+ "def": 60,
+ "speed": 30,
+ "spatk": 35,
+ "spdef": 35,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 255,
+ "expYield": 83,
+ "hp_yield": 1,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_TRUANT",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 6,
+ 8,
+ 10,
+ 11,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 22,
+ 24,
+ 25,
+ 27,
+ 30,
+ 31,
+ 32,
+ 34,
+ 35,
+ 38,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 56,
+ 58,
+ 65,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "VIGOROTH",
+ "hp": 80,
+ "atk": 80,
+ "def": 80,
+ "speed": 90,
+ "spatk": 55,
+ "spdef": 55,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 120,
+ "expYield": 126,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 2,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_VITAL_SPIRIT",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 8,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 5,
+ 6,
+ 8,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 22,
+ 24,
+ 25,
+ 26,
+ 27,
+ 30,
+ 31,
+ 32,
+ 34,
+ 35,
+ 38,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 52,
+ 56,
+ 58,
+ 65,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "SLAKING",
+ "hp": 150,
+ "atk": 160,
+ "def": 100,
+ "speed": 100,
+ "spatk": 95,
+ "spdef": 65,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 45,
+ "expYield": 210,
+ "hp_yield": 3,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_TRUANT",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 5,
+ 6,
+ 8,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 22,
+ 24,
+ 25,
+ 26,
+ 27,
+ 30,
+ 31,
+ 32,
+ 34,
+ 35,
+ 38,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 52,
+ 56,
+ 58,
+ 65,
+ 68,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "NINCADA",
+ "hp": 31,
+ "atk": 45,
+ "def": 90,
+ "speed": 40,
+ "spatk": 30,
+ "spdef": 30,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 255,
+ "expYield": 65,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "ERRATIC",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_COMPOUND_EYES",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 28,
+ 30,
+ 32,
+ 37,
+ 40,
+ 42,
+ 43,
+ 44,
+ 54,
+ 58,
+ 70,
+ 81,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1
+ ]
+ },
+ {
+ "species": "NINJASK",
+ "hp": 61,
+ "atk": 90,
+ "def": 45,
+ "speed": 160,
+ "spatk": 50,
+ "spdef": 50,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 120,
+ "expYield": 155,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 2,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "ERRATIC",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_SPEED_BOOST",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 28,
+ 30,
+ 32,
+ 37,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 51,
+ 54,
+ 58,
+ 62,
+ 68,
+ 70,
+ 75,
+ 78,
+ 81,
+ 82,
+ 83,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 1,
+ 5
+ ]
+ },
+ {
+ "species": "SHEDINJA",
+ "hp": 1,
+ "atk": 90,
+ "def": 45,
+ "speed": 40,
+ "spatk": 30,
+ "spdef": 30,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_GHOST"
+ ],
+ "catchRate": 45,
+ "expYield": 95,
+ "hp_yield": 2,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "ERRATIC",
+ "eggGroups": [
+ "EGG_GROUP_MINERAL",
+ "EGG_GROUP_MINERAL"
+ ],
+ "abilities": [
+ "ABILITY_WONDER_GUARD",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 28,
+ 30,
+ 32,
+ 37,
+ 40,
+ 42,
+ 43,
+ 44,
+ 46,
+ 54,
+ 58,
+ 61,
+ 65,
+ 68,
+ 70,
+ 81,
+ 82,
+ 83,
+ 85,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1
+ ]
+ },
+ {
+ "species": "WHISMUR",
+ "hp": 64,
+ "atk": 51,
+ "def": 23,
+ "speed": 28,
+ "spatk": 51,
+ "spdef": 23,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 190,
+ "expYield": 68,
+ "hp_yield": 1,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_CHESTO_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_SOUNDPROOF",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 9,
+ "flip": 0,
+ "tms": [
+ 3,
+ 5,
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 22,
+ 27,
+ 30,
+ 32,
+ 34,
+ 35,
+ 38,
+ 42,
+ 43,
+ 44,
+ 45,
+ 56,
+ 58,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "LOUDRED",
+ "hp": 84,
+ "atk": 71,
+ "def": 43,
+ "speed": 48,
+ "spatk": 71,
+ "spdef": 43,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 120,
+ "expYield": 126,
+ "hp_yield": 2,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_CHESTO_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_SOUNDPROOF",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 5,
+ 6,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 22,
+ 26,
+ 27,
+ 30,
+ 31,
+ 32,
+ 34,
+ 35,
+ 38,
+ 39,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 50,
+ 56,
+ 58,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "EXPLOUD",
+ "hp": 104,
+ "atk": 91,
+ "def": 63,
+ "speed": 68,
+ "spatk": 91,
+ "spdef": 63,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 45,
+ "expYield": 184,
+ "hp_yield": 3,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_CHESTO_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_SOUNDPROOF",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 5,
+ 6,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 22,
+ 26,
+ 27,
+ 30,
+ 31,
+ 32,
+ 34,
+ 35,
+ 38,
+ 39,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 50,
+ 52,
+ 56,
+ 58,
+ 68,
+ 72,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "MAKUHITA",
+ "hp": 72,
+ "atk": 60,
+ "def": 30,
+ "speed": 25,
+ "spatk": 20,
+ "spdef": 30,
+ "types": [
+ "TYPE_FIGHTING",
+ "TYPE_FIGHTING"
+ ],
+ "catchRate": 180,
+ "expYield": 87,
+ "hp_yield": 1,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.25,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "FLUCTUATING",
+ "eggGroups": [
+ "EGG_GROUP_HUMAN_LIKE",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_THICK_FAT",
+ "ABILITY_GUTS"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 8,
+ 10,
+ 11,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 52,
+ 56,
+ 58,
+ 78,
+ 80,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "HARIYAMA",
+ "hp": 144,
+ "atk": 120,
+ "def": 60,
+ "speed": 50,
+ "spatk": 40,
+ "spdef": 60,
+ "types": [
+ "TYPE_FIGHTING",
+ "TYPE_FIGHTING"
+ ],
+ "catchRate": 200,
+ "expYield": 184,
+ "hp_yield": 2,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_KINGS_ROCK"
+ ],
+ "genderRatio": 0.25,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "FLUCTUATING",
+ "eggGroups": [
+ "EGG_GROUP_HUMAN_LIKE",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_THICK_FAT",
+ "ABILITY_GUTS"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 8,
+ 10,
+ 11,
+ 15,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 52,
+ 55,
+ 56,
+ 58,
+ 66,
+ 68,
+ 71,
+ 78,
+ 80,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "AZURILL",
+ "hp": 50,
+ "atk": 20,
+ "def": 40,
+ "speed": 20,
+ "spatk": 20,
+ "spdef": 40,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 150,
+ "expYield": 33,
+ "hp_yield": 1,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.75,
+ "eggCycles": 10,
+ "friendship": 70,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_THICK_FAT",
+ "ABILITY_HUGE_POWER"
+ ],
+ "greatMarshRate": 120,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 23,
+ 27,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 7
+ ]
+ },
+ {
+ "species": "NOSEPASS",
+ "hp": 30,
+ "atk": 45,
+ "def": 135,
+ "speed": 30,
+ "spatk": 45,
+ "spdef": 90,
+ "types": [
+ "TYPE_ROCK",
+ "TYPE_ROCK"
+ ],
+ "catchRate": 255,
+ "expYield": 108,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_HARD_STONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_MINERAL",
+ "EGG_GROUP_MINERAL"
+ ],
+ "abilities": [
+ "ABILITY_STURDY",
+ "ABILITY_MAGNET_PULL"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 12,
+ 17,
+ 21,
+ 24,
+ 25,
+ 26,
+ 27,
+ 32,
+ 34,
+ 37,
+ 39,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 64,
+ 69,
+ 71,
+ 73,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "SKITTY",
+ "hp": 50,
+ "atk": 45,
+ "def": 45,
+ "speed": 50,
+ "spatk": 35,
+ "spdef": 35,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 255,
+ "expYield": 65,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_LEPPA_BERRY"
+ ],
+ "genderRatio": 0.75,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FAIRY"
+ ],
+ "abilities": [
+ "ABILITY_CUTE_CHARM",
+ "ABILITY_NORMALIZE"
+ ],
+ "greatMarshRate": 0,
+ "color": 9,
+ "flip": 0,
+ "tms": [
+ 3,
+ 4,
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 17,
+ 18,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 27,
+ 28,
+ 30,
+ 32,
+ 34,
+ 42,
+ 43,
+ 44,
+ 45,
+ 57,
+ 58,
+ 66,
+ 70,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "DELCATTY",
+ "hp": 70,
+ "atk": 65,
+ "def": 65,
+ "speed": 70,
+ "spatk": 55,
+ "spdef": 55,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 60,
+ "expYield": 138,
+ "hp_yield": 1,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_LEPPA_BERRY"
+ ],
+ "genderRatio": 0.75,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FAIRY"
+ ],
+ "abilities": [
+ "ABILITY_CUTE_CHARM",
+ "ABILITY_NORMALIZE"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 3,
+ 4,
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 27,
+ 28,
+ 30,
+ 32,
+ 34,
+ 42,
+ 43,
+ 44,
+ 45,
+ 57,
+ 58,
+ 66,
+ 68,
+ 70,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "SABLEYE",
+ "hp": 50,
+ "atk": 75,
+ "def": 75,
+ "speed": 50,
+ "spatk": 65,
+ "spdef": 65,
+ "types": [
+ "TYPE_DARK",
+ "TYPE_GHOST"
+ ],
+ "catchRate": 45,
+ "expYield": 98,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 25,
+ "friendship": 35,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_HUMAN_LIKE",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_KEEN_EYE",
+ "ABILITY_STALL"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 10,
+ 11,
+ 12,
+ 17,
+ 18,
+ 21,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 34,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 49,
+ 56,
+ 58,
+ 61,
+ 63,
+ 65,
+ 66,
+ 70,
+ 77,
+ 78,
+ 79,
+ 82,
+ 83,
+ 84,
+ 85,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 6
+ ]
+ },
+ {
+ "species": "MAWILE",
+ "hp": 50,
+ "atk": 85,
+ "def": 85,
+ "speed": 50,
+ "spatk": 55,
+ "spdef": 55,
+ "types": [
+ "TYPE_STEEL",
+ "TYPE_STEEL"
+ ],
+ "catchRate": 45,
+ "expYield": 98,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_OCCA_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FAIRY"
+ ],
+ "abilities": [
+ "ABILITY_HYPER_CUTTER",
+ "ABILITY_INTIMIDATE"
+ ],
+ "greatMarshRate": 0,
+ "color": 4,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 10,
+ 11,
+ 12,
+ 13,
+ 15,
+ 17,
+ 18,
+ 21,
+ 22,
+ 27,
+ 30,
+ 31,
+ 32,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 52,
+ 56,
+ 57,
+ 58,
+ 63,
+ 66,
+ 68,
+ 75,
+ 78,
+ 79,
+ 80,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90,
+ 91
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "ARON",
+ "hp": 50,
+ "atk": 70,
+ "def": 100,
+ "speed": 30,
+ "spatk": 40,
+ "spdef": 40,
+ "types": [
+ "TYPE_STEEL",
+ "TYPE_ROCK"
+ ],
+ "catchRate": 180,
+ "expYield": 96,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_HARD_STONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 35,
+ "friendship": 35,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_MONSTER"
+ ],
+ "abilities": [
+ "ABILITY_STURDY",
+ "ABILITY_ROCK_HEAD"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 3,
+ 5,
+ 6,
+ 10,
+ 11,
+ 17,
+ 18,
+ 21,
+ 23,
+ 26,
+ 27,
+ 28,
+ 32,
+ 34,
+ 37,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 65,
+ 69,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "LAIRON",
+ "hp": 60,
+ "atk": 90,
+ "def": 140,
+ "speed": 40,
+ "spatk": 50,
+ "spdef": 50,
+ "types": [
+ "TYPE_STEEL",
+ "TYPE_ROCK"
+ ],
+ "catchRate": 90,
+ "expYield": 152,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 2,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_HARD_STONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 35,
+ "friendship": 35,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_MONSTER"
+ ],
+ "abilities": [
+ "ABILITY_STURDY",
+ "ABILITY_ROCK_HEAD"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 3,
+ 5,
+ 6,
+ 10,
+ 11,
+ 17,
+ 18,
+ 21,
+ 23,
+ 26,
+ 27,
+ 28,
+ 32,
+ 34,
+ 37,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 65,
+ 69,
+ 71,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "AGGRON",
+ "hp": 70,
+ "atk": 110,
+ "def": 180,
+ "speed": 50,
+ "spatk": 60,
+ "spdef": 60,
+ "types": [
+ "TYPE_STEEL",
+ "TYPE_ROCK"
+ ],
+ "catchRate": 45,
+ "expYield": 205,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 3,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_HARD_STONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 35,
+ "friendship": 35,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_MONSTER"
+ ],
+ "abilities": [
+ "ABILITY_STURDY",
+ "ABILITY_ROCK_HEAD"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 1,
+ 2,
+ 3,
+ 5,
+ 6,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 34,
+ 35,
+ 37,
+ 38,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 52,
+ 56,
+ 58,
+ 59,
+ 65,
+ 66,
+ 68,
+ 69,
+ 71,
+ 72,
+ 73,
+ 76,
+ 78,
+ 79,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90,
+ 91
+ ],
+ "hms": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "MEDITITE",
+ "hp": 30,
+ "atk": 40,
+ "def": 55,
+ "speed": 60,
+ "spatk": 40,
+ "spdef": 55,
+ "types": [
+ "TYPE_FIGHTING",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 180,
+ "expYield": 91,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_HUMAN_LIKE",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_PURE_POWER",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 1,
+ 4,
+ 6,
+ 8,
+ 10,
+ 11,
+ 16,
+ 17,
+ 18,
+ 21,
+ 27,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 52,
+ 56,
+ 58,
+ 60,
+ 67,
+ 70,
+ 77,
+ 78,
+ 80,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "MEDICHAM",
+ "hp": 60,
+ "atk": 60,
+ "def": 75,
+ "speed": 80,
+ "spatk": 60,
+ "spdef": 75,
+ "types": [
+ "TYPE_FIGHTING",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 90,
+ "expYield": 153,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 2,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_HUMAN_LIKE",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_PURE_POWER",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 1,
+ 4,
+ 6,
+ 8,
+ 10,
+ 11,
+ 15,
+ 16,
+ 17,
+ 18,
+ 21,
+ 27,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 52,
+ 53,
+ 56,
+ 58,
+ 60,
+ 67,
+ 68,
+ 70,
+ 77,
+ 78,
+ 80,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "ELECTRIKE",
+ "hp": 40,
+ "atk": 45,
+ "def": 40,
+ "speed": 65,
+ "spatk": 65,
+ "spdef": 40,
+ "types": [
+ "TYPE_ELECTRIC",
+ "TYPE_ELECTRIC"
+ ],
+ "catchRate": 120,
+ "expYield": 104,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_STATIC",
+ "ABILITY_LIGHTNING_ROD"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 10,
+ 16,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 32,
+ 34,
+ 35,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 57,
+ 58,
+ 70,
+ 73,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4
+ ]
+ },
+ {
+ "species": "MANECTRIC",
+ "hp": 70,
+ "atk": 75,
+ "def": 60,
+ "speed": 105,
+ "spatk": 105,
+ "spdef": 60,
+ "types": [
+ "TYPE_ELECTRIC",
+ "TYPE_ELECTRIC"
+ ],
+ "catchRate": 45,
+ "expYield": 168,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 2,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_STATIC",
+ "ABILITY_LIGHTNING_ROD"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 10,
+ 15,
+ 16,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 32,
+ 34,
+ 35,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 50,
+ 57,
+ 58,
+ 68,
+ 70,
+ 73,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4
+ ]
+ },
+ {
+ "species": "PLUSLE",
+ "hp": 60,
+ "atk": 50,
+ "def": 40,
+ "speed": 95,
+ "spatk": 85,
+ "spdef": 75,
+ "types": [
+ "TYPE_ELECTRIC",
+ "TYPE_ELECTRIC"
+ ],
+ "catchRate": 200,
+ "expYield": 120,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FAIRY",
+ "EGG_GROUP_FAIRY"
+ ],
+ "abilities": [
+ "ABILITY_PLUS",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 16,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 32,
+ 34,
+ 42,
+ 43,
+ 44,
+ 45,
+ 56,
+ 57,
+ 58,
+ 70,
+ 73,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "MINUN",
+ "hp": 60,
+ "atk": 40,
+ "def": 50,
+ "speed": 95,
+ "spatk": 75,
+ "spdef": 85,
+ "types": [
+ "TYPE_ELECTRIC",
+ "TYPE_ELECTRIC"
+ ],
+ "catchRate": 200,
+ "expYield": 120,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FAIRY",
+ "EGG_GROUP_FAIRY"
+ ],
+ "abilities": [
+ "ABILITY_MINUS",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 16,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 32,
+ 34,
+ 42,
+ 43,
+ 44,
+ 45,
+ 56,
+ 57,
+ 58,
+ 70,
+ 73,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "VOLBEAT",
+ "hp": 65,
+ "atk": 73,
+ "def": 55,
+ "speed": 85,
+ "spatk": 47,
+ "spdef": 75,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_BUG"
+ ],
+ "catchRate": 150,
+ "expYield": 146,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.0,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "ERRATIC",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_ILLUMINATE",
+ "ABILITY_SWARM"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 6,
+ 10,
+ 11,
+ 16,
+ 17,
+ 18,
+ 19,
+ 21,
+ 22,
+ 24,
+ 25,
+ 27,
+ 30,
+ 31,
+ 32,
+ 34,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 51,
+ 56,
+ 57,
+ 58,
+ 62,
+ 70,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "ILLUMISE",
+ "hp": 65,
+ "atk": 47,
+ "def": 55,
+ "speed": 85,
+ "spatk": 73,
+ "spdef": 75,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_BUG"
+ ],
+ "catchRate": 150,
+ "expYield": 146,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 1.0,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "FLUCTUATING",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_OBLIVIOUS",
+ "ABILITY_TINTED_LENS"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 6,
+ 10,
+ 11,
+ 16,
+ 17,
+ 18,
+ 19,
+ 21,
+ 22,
+ 24,
+ 25,
+ 27,
+ 30,
+ 31,
+ 32,
+ 34,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 51,
+ 56,
+ 57,
+ 58,
+ 62,
+ 70,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "ROSELIA",
+ "hp": 50,
+ "atk": 60,
+ "def": 45,
+ "speed": 65,
+ "spatk": 100,
+ "spdef": 80,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_POISON"
+ ],
+ "catchRate": 150,
+ "expYield": 152,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 2,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_POISON_BARB"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FAIRY",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_NATURAL_CURE",
+ "ABILITY_POISON_POINT"
+ ],
+ "greatMarshRate": 60,
+ "color": 3,
+ "flip": 1,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 17,
+ 18,
+ 19,
+ 21,
+ 22,
+ 27,
+ 30,
+ 32,
+ 36,
+ 42,
+ 43,
+ 44,
+ 45,
+ 53,
+ 58,
+ 70,
+ 75,
+ 77,
+ 78,
+ 82,
+ 83,
+ 84,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1
+ ]
+ },
+ {
+ "species": "GULPIN",
+ "hp": 70,
+ "atk": 43,
+ "def": 53,
+ "speed": 40,
+ "spatk": 43,
+ "spdef": 53,
+ "types": [
+ "TYPE_POISON",
+ "TYPE_POISON"
+ ],
+ "catchRate": 225,
+ "expYield": 75,
+ "hp_yield": 1,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_BIG_PEARL"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "FLUCTUATING",
+ "eggGroups": [
+ "EGG_GROUP_AMORPHOUS",
+ "EGG_GROUP_AMORPHOUS"
+ ],
+ "abilities": [
+ "ABILITY_LIQUID_OOZE",
+ "ABILITY_STICKY_HOLD"
+ ],
+ "greatMarshRate": 120,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 9,
+ 10,
+ 11,
+ 13,
+ 17,
+ 18,
+ 19,
+ 21,
+ 22,
+ 27,
+ 30,
+ 32,
+ 34,
+ 36,
+ 42,
+ 43,
+ 44,
+ 45,
+ 49,
+ 58,
+ 64,
+ 78,
+ 82,
+ 83,
+ 85,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "SWALOT",
+ "hp": 100,
+ "atk": 73,
+ "def": 83,
+ "speed": 55,
+ "spatk": 73,
+ "spdef": 83,
+ "types": [
+ "TYPE_POISON",
+ "TYPE_POISON"
+ ],
+ "catchRate": 75,
+ "expYield": 168,
+ "hp_yield": 2,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_BIG_PEARL"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "FLUCTUATING",
+ "eggGroups": [
+ "EGG_GROUP_AMORPHOUS",
+ "EGG_GROUP_AMORPHOUS"
+ ],
+ "abilities": [
+ "ABILITY_LIQUID_OOZE",
+ "ABILITY_STICKY_HOLD"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 9,
+ 10,
+ 11,
+ 13,
+ 15,
+ 17,
+ 18,
+ 19,
+ 21,
+ 22,
+ 26,
+ 27,
+ 30,
+ 32,
+ 34,
+ 36,
+ 42,
+ 43,
+ 44,
+ 45,
+ 49,
+ 58,
+ 64,
+ 68,
+ 78,
+ 82,
+ 83,
+ 85,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "CARVANHA",
+ "hp": 45,
+ "atk": 90,
+ "def": 20,
+ "speed": 65,
+ "spatk": 65,
+ "spdef": 20,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_DARK"
+ ],
+ "catchRate": 225,
+ "expYield": 88,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_DEEPSEATOOTH"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 35,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_WATER_2",
+ "EGG_GROUP_WATER_2"
+ ],
+ "abilities": [
+ "ABILITY_ROUGH_SKIN",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 90,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 12,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 27,
+ 32,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 55,
+ 58,
+ 66,
+ 78,
+ 79,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 7
+ ]
+ },
+ {
+ "species": "SHARPEDO",
+ "hp": 70,
+ "atk": 120,
+ "def": 40,
+ "speed": 95,
+ "spatk": 95,
+ "spdef": 40,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_DARK"
+ ],
+ "catchRate": 60,
+ "expYield": 175,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_DEEPSEATOOTH"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 35,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_WATER_2",
+ "EGG_GROUP_WATER_2"
+ ],
+ "abilities": [
+ "ABILITY_ROUGH_SKIN",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 5,
+ 6,
+ 7,
+ 10,
+ 12,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 32,
+ 39,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 55,
+ 58,
+ 66,
+ 68,
+ 72,
+ 78,
+ 79,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "WAILMER",
+ "hp": 130,
+ "atk": 70,
+ "def": 35,
+ "speed": 60,
+ "spatk": 70,
+ "spdef": 35,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 125,
+ "expYield": 137,
+ "hp_yield": 1,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 40,
+ "friendship": 70,
+ "growthRate": "FLUCTUATING",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_WATER_2"
+ ],
+ "abilities": [
+ "ABILITY_WATER_VEIL",
+ "ABILITY_OBLIVIOUS"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 5,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 32,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 55,
+ 58,
+ 72,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "WAILORD",
+ "hp": 170,
+ "atk": 90,
+ "def": 45,
+ "speed": 60,
+ "spatk": 90,
+ "spdef": 45,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 60,
+ "expYield": 206,
+ "hp_yield": 2,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 40,
+ "friendship": 70,
+ "growthRate": "FLUCTUATING",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_WATER_2"
+ ],
+ "abilities": [
+ "ABILITY_WATER_VEIL",
+ "ABILITY_OBLIVIOUS"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 5,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 32,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 55,
+ 58,
+ 68,
+ 72,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "NUMEL",
+ "hp": 60,
+ "atk": 60,
+ "def": 40,
+ "speed": 35,
+ "spatk": 65,
+ "spdef": 45,
+ "types": [
+ "TYPE_FIRE",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 255,
+ "expYield": 88,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_RAWST_BERRY",
+ "ITEM_RAWST_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_OBLIVIOUS",
+ "ABILITY_SIMPLE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 17,
+ 21,
+ 26,
+ 27,
+ 28,
+ 32,
+ 35,
+ 37,
+ 38,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 50,
+ 58,
+ 61,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "CAMERUPT",
+ "hp": 70,
+ "atk": 100,
+ "def": 70,
+ "speed": 40,
+ "spatk": 105,
+ "spdef": 75,
+ "types": [
+ "TYPE_FIRE",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 150,
+ "expYield": 175,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_RAWST_BERRY",
+ "ITEM_RAWST_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_MAGMA_ARMOR",
+ "ABILITY_SOLID_ROCK"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 21,
+ 22,
+ 26,
+ 27,
+ 28,
+ 32,
+ 35,
+ 37,
+ 38,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 50,
+ 58,
+ 61,
+ 64,
+ 68,
+ 69,
+ 71,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90,
+ 91
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "TORKOAL",
+ "hp": 70,
+ "atk": 85,
+ "def": 140,
+ "speed": 20,
+ "spatk": 85,
+ "spdef": 70,
+ "types": [
+ "TYPE_FIRE",
+ "TYPE_FIRE"
+ ],
+ "catchRate": 90,
+ "expYield": 161,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 2,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_WHITE_SMOKE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 21,
+ 22,
+ 23,
+ 26,
+ 27,
+ 32,
+ 35,
+ 36,
+ 38,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 50,
+ 58,
+ 61,
+ 64,
+ 68,
+ 71,
+ 74,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "SPOINK",
+ "hp": 60,
+ "atk": 25,
+ "def": 35,
+ "speed": 60,
+ "spatk": 70,
+ "spdef": 80,
+ "types": [
+ "TYPE_PSYCHIC",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 255,
+ "expYield": 89,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_TANGA_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_THICK_FAT",
+ "ABILITY_OWN_TEMPO"
+ ],
+ "greatMarshRate": 0,
+ "color": 4,
+ "flip": 0,
+ "tms": [
+ 4,
+ 6,
+ 10,
+ 11,
+ 12,
+ 16,
+ 17,
+ 18,
+ 21,
+ 23,
+ 27,
+ 29,
+ 30,
+ 32,
+ 33,
+ 34,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 49,
+ 57,
+ 58,
+ 66,
+ 67,
+ 70,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "GRUMPIG",
+ "hp": 80,
+ "atk": 45,
+ "def": 65,
+ "speed": 80,
+ "spatk": 90,
+ "spdef": 110,
+ "types": [
+ "TYPE_PSYCHIC",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 60,
+ "expYield": 164,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 2,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_TANGA_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_THICK_FAT",
+ "ABILITY_OWN_TEMPO"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 1,
+ 4,
+ 6,
+ 10,
+ 11,
+ 12,
+ 15,
+ 16,
+ 17,
+ 18,
+ 21,
+ 23,
+ 27,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 49,
+ 52,
+ 53,
+ 56,
+ 57,
+ 58,
+ 60,
+ 66,
+ 67,
+ 68,
+ 70,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "SPINDA",
+ "hp": 60,
+ "atk": 60,
+ "def": 60,
+ "speed": 60,
+ "spatk": 60,
+ "spdef": 60,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 255,
+ "expYield": 85,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_CHESTO_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_OWN_TEMPO",
+ "ABILITY_TANGLED_FEET"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 1,
+ "tms": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 10,
+ 11,
+ 17,
+ 18,
+ 20,
+ 21,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 34,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 49,
+ 56,
+ 58,
+ 60,
+ 67,
+ 70,
+ 77,
+ 78,
+ 80,
+ 82,
+ 83,
+ 85,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "TRAPINCH",
+ "hp": 45,
+ "atk": 100,
+ "def": 45,
+ "speed": 10,
+ "spatk": 45,
+ "spdef": 45,
+ "types": [
+ "TYPE_GROUND",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 255,
+ "expYield": 73,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_SOFT_SAND"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_HYPER_CUTTER",
+ "ABILITY_ARENA_TRAP"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 19,
+ 21,
+ 22,
+ 26,
+ 27,
+ 28,
+ 32,
+ 37,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "VIBRAVA",
+ "hp": 50,
+ "atk": 70,
+ "def": 50,
+ "speed": 70,
+ "spatk": 50,
+ "spdef": 50,
+ "types": [
+ "TYPE_GROUND",
+ "TYPE_DRAGON"
+ ],
+ "catchRate": 120,
+ "expYield": 126,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_LEVITATE",
+ "ABILITY_LEVITATE"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 19,
+ 21,
+ 22,
+ 26,
+ 27,
+ 28,
+ 32,
+ 37,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 47,
+ 51,
+ 58,
+ 59,
+ 62,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 2,
+ 4,
+ 5,
+ 6
+ ]
+ },
+ {
+ "species": "FLYGON",
+ "hp": 80,
+ "atk": 100,
+ "def": 80,
+ "speed": 100,
+ "spatk": 80,
+ "spdef": 80,
+ "types": [
+ "TYPE_GROUND",
+ "TYPE_DRAGON"
+ ],
+ "catchRate": 45,
+ "expYield": 197,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 2,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_LEVITATE",
+ "ABILITY_LEVITATE"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 2,
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 19,
+ 21,
+ 22,
+ 23,
+ 26,
+ 27,
+ 28,
+ 32,
+ 35,
+ 37,
+ 38,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 47,
+ 51,
+ 58,
+ 59,
+ 62,
+ 68,
+ 71,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 2,
+ 4,
+ 5,
+ 6
+ ]
+ },
+ {
+ "species": "CACNEA",
+ "hp": 50,
+ "atk": 85,
+ "def": 40,
+ "speed": 35,
+ "spatk": 85,
+ "spdef": 40,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_GRASS"
+ ],
+ "catchRate": 190,
+ "expYield": 97,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_STICKY_BARB"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 35,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_GRASS",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_SAND_VEIL",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 9,
+ 10,
+ 11,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 31,
+ 32,
+ 37,
+ 42,
+ 43,
+ 44,
+ 45,
+ 53,
+ 56,
+ 58,
+ 60,
+ 66,
+ 70,
+ 75,
+ 78,
+ 79,
+ 82,
+ 83,
+ 84,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1
+ ]
+ },
+ {
+ "species": "CACTURNE",
+ "hp": 70,
+ "atk": 115,
+ "def": 60,
+ "speed": 55,
+ "spatk": 115,
+ "spdef": 60,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_DARK"
+ ],
+ "catchRate": 60,
+ "expYield": 177,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_STICKY_BARB"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 35,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_GRASS",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_SAND_VEIL",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 9,
+ 10,
+ 11,
+ 15,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 31,
+ 32,
+ 37,
+ 42,
+ 43,
+ 44,
+ 45,
+ 52,
+ 53,
+ 56,
+ 58,
+ 60,
+ 63,
+ 66,
+ 68,
+ 70,
+ 75,
+ 78,
+ 79,
+ 82,
+ 83,
+ 84,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4
+ ]
+ },
+ {
+ "species": "SWABLU",
+ "hp": 45,
+ "atk": 40,
+ "def": 60,
+ "speed": 50,
+ "spatk": 40,
+ "spdef": 75,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 255,
+ "expYield": 74,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "ERRATIC",
+ "eggGroups": [
+ "EGG_GROUP_FLYING",
+ "EGG_GROUP_DRAGON"
+ ],
+ "abilities": [
+ "ABILITY_NATURAL_CURE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 13,
+ 17,
+ 18,
+ 20,
+ 21,
+ 22,
+ 27,
+ 32,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 51,
+ 58,
+ 59,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 87,
+ 88,
+ 90
+ ],
+ "hms": [
+ 2
+ ]
+ },
+ {
+ "species": "ALTARIA",
+ "hp": 75,
+ "atk": 70,
+ "def": 90,
+ "speed": 80,
+ "spatk": 70,
+ "spdef": 105,
+ "types": [
+ "TYPE_DRAGON",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 45,
+ "expYield": 188,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 2,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "ERRATIC",
+ "eggGroups": [
+ "EGG_GROUP_FLYING",
+ "EGG_GROUP_DRAGON"
+ ],
+ "abilities": [
+ "ABILITY_NATURAL_CURE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 2,
+ 5,
+ 6,
+ 10,
+ 11,
+ 13,
+ 15,
+ 17,
+ 18,
+ 20,
+ 21,
+ 22,
+ 23,
+ 26,
+ 27,
+ 32,
+ 35,
+ 38,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 51,
+ 58,
+ 59,
+ 68,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 87,
+ 88,
+ 90
+ ],
+ "hms": [
+ 2,
+ 6
+ ]
+ },
+ {
+ "species": "ZANGOOSE",
+ "hp": 73,
+ "atk": 115,
+ "def": 60,
+ "speed": 90,
+ "spatk": 60,
+ "spdef": 60,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 90,
+ "expYield": 165,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_QUICK_CLAW"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "ERRATIC",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_IMMUNITY",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 8,
+ "flip": 1,
+ "tms": [
+ 1,
+ 3,
+ 5,
+ 6,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 17,
+ 18,
+ 19,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 27,
+ 28,
+ 30,
+ 31,
+ 32,
+ 34,
+ 35,
+ 38,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 52,
+ 54,
+ 56,
+ 58,
+ 63,
+ 65,
+ 66,
+ 75,
+ 78,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "SEVIPER",
+ "hp": 73,
+ "atk": 100,
+ "def": 60,
+ "speed": 65,
+ "spatk": 100,
+ "spdef": 60,
+ "types": [
+ "TYPE_POISON",
+ "TYPE_POISON"
+ ],
+ "catchRate": 90,
+ "expYield": 165,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "FLUCTUATING",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_DRAGON"
+ ],
+ "abilities": [
+ "ABILITY_SHED_SKIN",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 4,
+ "flip": 1,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 12,
+ 17,
+ 18,
+ 19,
+ 21,
+ 23,
+ 26,
+ 27,
+ 28,
+ 32,
+ 35,
+ 36,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 49,
+ 58,
+ 66,
+ 78,
+ 79,
+ 81,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "LUNATONE",
+ "hp": 70,
+ "atk": 55,
+ "def": 65,
+ "speed": 70,
+ "spatk": 95,
+ "spdef": 85,
+ "types": [
+ "TYPE_ROCK",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 45,
+ "expYield": 150,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 2,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_MOON_STONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 25,
+ "friendship": 70,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_MINERAL",
+ "EGG_GROUP_MINERAL"
+ ],
+ "abilities": [
+ "ABILITY_LEVITATE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 4,
+ 6,
+ 10,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 26,
+ 27,
+ 29,
+ 30,
+ 32,
+ 33,
+ 37,
+ 39,
+ 42,
+ 43,
+ 44,
+ 48,
+ 57,
+ 58,
+ 63,
+ 64,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 74,
+ 76,
+ 77,
+ 80,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "SOLROCK",
+ "hp": 70,
+ "atk": 95,
+ "def": 85,
+ "speed": 70,
+ "spatk": 55,
+ "spdef": 65,
+ "types": [
+ "TYPE_ROCK",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 45,
+ "expYield": 150,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_SUN_STONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 25,
+ "friendship": 70,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_MINERAL",
+ "EGG_GROUP_MINERAL"
+ ],
+ "abilities": [
+ "ABILITY_LEVITATE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 4,
+ 6,
+ 10,
+ 11,
+ 15,
+ 16,
+ 17,
+ 20,
+ 21,
+ 22,
+ 26,
+ 27,
+ 29,
+ 30,
+ 32,
+ 33,
+ 35,
+ 37,
+ 38,
+ 39,
+ 42,
+ 43,
+ 44,
+ 48,
+ 50,
+ 57,
+ 58,
+ 61,
+ 63,
+ 64,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 74,
+ 76,
+ 77,
+ 80,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "BARBOACH",
+ "hp": 50,
+ "atk": 48,
+ "def": 43,
+ "speed": 60,
+ "spatk": 46,
+ "spdef": 41,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 190,
+ "expYield": 92,
+ "hp_yield": 1,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_2",
+ "EGG_GROUP_WATER_2"
+ ],
+ "abilities": [
+ "ABILITY_OBLIVIOUS",
+ "ABILITY_ANTICIPATION"
+ ],
+ "greatMarshRate": 120,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 32,
+ 37,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 7
+ ]
+ },
+ {
+ "species": "WHISCASH",
+ "hp": 110,
+ "atk": 78,
+ "def": 73,
+ "speed": 60,
+ "spatk": 76,
+ "spdef": 71,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 75,
+ "expYield": 158,
+ "hp_yield": 2,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_2",
+ "EGG_GROUP_WATER_2"
+ ],
+ "abilities": [
+ "ABILITY_OBLIVIOUS",
+ "ABILITY_ANTICIPATION"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 32,
+ 37,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 68,
+ 71,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "CORPHISH",
+ "hp": 43,
+ "atk": 80,
+ "def": 65,
+ "speed": 35,
+ "spatk": 50,
+ "spdef": 35,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 205,
+ "expYield": 111,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "FLUCTUATING",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_WATER_3"
+ ],
+ "abilities": [
+ "ABILITY_HYPER_CUTTER",
+ "ABILITY_SHELL_ARMOR"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 12,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 27,
+ 28,
+ 31,
+ 32,
+ 36,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 54,
+ 56,
+ 58,
+ 66,
+ 75,
+ 78,
+ 80,
+ 81,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "CRAWDAUNT",
+ "hp": 63,
+ "atk": 120,
+ "def": 85,
+ "speed": 55,
+ "spatk": 90,
+ "spdef": 55,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_DARK"
+ ],
+ "catchRate": 155,
+ "expYield": 161,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "FLUCTUATING",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_WATER_3"
+ ],
+ "abilities": [
+ "ABILITY_HYPER_CUTTER",
+ "ABILITY_SHELL_ARMOR"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 12,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 27,
+ 28,
+ 31,
+ 32,
+ 36,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 54,
+ 56,
+ 58,
+ 66,
+ 68,
+ 72,
+ 75,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "BALTOY",
+ "hp": 40,
+ "atk": 40,
+ "def": 55,
+ "speed": 55,
+ "spatk": 40,
+ "spdef": 70,
+ "types": [
+ "TYPE_GROUND",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 255,
+ "expYield": 58,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_MINERAL",
+ "EGG_GROUP_MINERAL"
+ ],
+ "abilities": [
+ "ABILITY_LEVITATE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 4,
+ 6,
+ 10,
+ 11,
+ 13,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 22,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 32,
+ 33,
+ 37,
+ 39,
+ 42,
+ 43,
+ 44,
+ 48,
+ 57,
+ 58,
+ 64,
+ 67,
+ 69,
+ 70,
+ 74,
+ 76,
+ 77,
+ 80,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "CLAYDOL",
+ "hp": 60,
+ "atk": 70,
+ "def": 105,
+ "speed": 75,
+ "spatk": 70,
+ "spdef": 120,
+ "types": [
+ "TYPE_GROUND",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 90,
+ "expYield": 189,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 2,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_MINERAL",
+ "EGG_GROUP_MINERAL"
+ ],
+ "abilities": [
+ "ABILITY_LEVITATE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 4,
+ "flip": 0,
+ "tms": [
+ 4,
+ 6,
+ 10,
+ 11,
+ 13,
+ 15,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 22,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 32,
+ 33,
+ 37,
+ 39,
+ 42,
+ 43,
+ 44,
+ 48,
+ 57,
+ 58,
+ 64,
+ 67,
+ 68,
+ 69,
+ 70,
+ 71,
+ 74,
+ 76,
+ 77,
+ 80,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "LILEEP",
+ "hp": 66,
+ "atk": 41,
+ "def": 77,
+ "speed": 23,
+ "spatk": 61,
+ "spdef": 87,
+ "types": [
+ "TYPE_ROCK",
+ "TYPE_GRASS"
+ ],
+ "catchRate": 45,
+ "expYield": 99,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_BIG_ROOT"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 30,
+ "friendship": 70,
+ "growthRate": "ERRATIC",
+ "eggGroups": [
+ "EGG_GROUP_WATER_3",
+ "EGG_GROUP_WATER_3"
+ ],
+ "abilities": [
+ "ABILITY_SUCTION_CUPS",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 32,
+ 36,
+ 37,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 53,
+ 58,
+ 69,
+ 70,
+ 75,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "CRADILY",
+ "hp": 86,
+ "atk": 81,
+ "def": 97,
+ "speed": 43,
+ "spatk": 81,
+ "spdef": 107,
+ "types": [
+ "TYPE_ROCK",
+ "TYPE_GRASS"
+ ],
+ "catchRate": 45,
+ "expYield": 199,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 2,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_BIG_ROOT"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 30,
+ "friendship": 70,
+ "growthRate": "ERRATIC",
+ "eggGroups": [
+ "EGG_GROUP_WATER_3",
+ "EGG_GROUP_WATER_3"
+ ],
+ "abilities": [
+ "ABILITY_SUCTION_CUPS",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 15,
+ 17,
+ 19,
+ 21,
+ 22,
+ 26,
+ 27,
+ 32,
+ 36,
+ 37,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 53,
+ 58,
+ 68,
+ 69,
+ 70,
+ 71,
+ 75,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "ANORITH",
+ "hp": 45,
+ "atk": 95,
+ "def": 50,
+ "speed": 75,
+ "spatk": 40,
+ "spdef": 50,
+ "types": [
+ "TYPE_ROCK",
+ "TYPE_BUG"
+ ],
+ "catchRate": 45,
+ "expYield": 99,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 30,
+ "friendship": 70,
+ "growthRate": "ERRATIC",
+ "eggGroups": [
+ "EGG_GROUP_WATER_3",
+ "EGG_GROUP_WATER_3"
+ ],
+ "abilities": [
+ "ABILITY_BATTLE_ARMOR",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 10,
+ 11,
+ 17,
+ 21,
+ 27,
+ 28,
+ 31,
+ 32,
+ 37,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 54,
+ 58,
+ 69,
+ 75,
+ 76,
+ 78,
+ 80,
+ 81,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 6
+ ]
+ },
+ {
+ "species": "ARMALDO",
+ "hp": 75,
+ "atk": 125,
+ "def": 100,
+ "speed": 45,
+ "spatk": 70,
+ "spdef": 80,
+ "types": [
+ "TYPE_ROCK",
+ "TYPE_BUG"
+ ],
+ "catchRate": 45,
+ "expYield": 199,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 30,
+ "friendship": 70,
+ "growthRate": "ERRATIC",
+ "eggGroups": [
+ "EGG_GROUP_WATER_3",
+ "EGG_GROUP_WATER_3"
+ ],
+ "abilities": [
+ "ABILITY_BATTLE_ARMOR",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 21,
+ 23,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 37,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 54,
+ 58,
+ 68,
+ 69,
+ 71,
+ 75,
+ 76,
+ 78,
+ 80,
+ 81,
+ 82,
+ 83,
+ 87,
+ 90,
+ 91
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "FEEBAS",
+ "hp": 20,
+ "atk": 15,
+ "def": 20,
+ "speed": 80,
+ "spatk": 10,
+ "spdef": 55,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 255,
+ "expYield": 61,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "ERRATIC",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_DRAGON"
+ ],
+ "abilities": [
+ "ABILITY_SWIFT_SWIM",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 27,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 7
+ ]
+ },
+ {
+ "species": "MILOTIC",
+ "hp": 95,
+ "atk": 60,
+ "def": 79,
+ "speed": 81,
+ "spatk": 100,
+ "spdef": 125,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 60,
+ "expYield": 213,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 2,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "ERRATIC",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_DRAGON"
+ ],
+ "abilities": [
+ "ABILITY_MARVEL_SCALE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 9,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 20,
+ 21,
+ 23,
+ 27,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 59,
+ 68,
+ 72,
+ 77,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 7
+ ]
+ },
+ {
+ "species": "CASTFORM",
+ "hp": 70,
+ "atk": 70,
+ "def": 70,
+ "speed": 70,
+ "spatk": 70,
+ "spdef": 70,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 45,
+ "expYield": 145,
+ "hp_yield": 1,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_MYSTIC_WATER",
+ "ITEM_MYSTIC_WATER"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 25,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FAIRY",
+ "EGG_GROUP_AMORPHOUS"
+ ],
+ "abilities": [
+ "ABILITY_FORECAST",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 8,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 11,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 22,
+ 24,
+ 25,
+ 27,
+ 30,
+ 32,
+ 34,
+ 35,
+ 37,
+ 38,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 53,
+ 58,
+ 70,
+ 72,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "KECLEON",
+ "hp": 60,
+ "atk": 90,
+ "def": 70,
+ "speed": 40,
+ "spatk": 60,
+ "spdef": 120,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 200,
+ "expYield": 132,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_PERSIM_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_COLOR_CHANGE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 27,
+ 28,
+ 30,
+ 31,
+ 32,
+ 34,
+ 35,
+ 38,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 49,
+ 56,
+ 57,
+ 58,
+ 60,
+ 65,
+ 67,
+ 70,
+ 73,
+ 76,
+ 77,
+ 78,
+ 80,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "SHUPPET",
+ "hp": 44,
+ "atk": 75,
+ "def": 35,
+ "speed": 45,
+ "spatk": 63,
+ "spdef": 33,
+ "types": [
+ "TYPE_GHOST",
+ "TYPE_GHOST"
+ ],
+ "catchRate": 225,
+ "expYield": 97,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_SPELL_TAG"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 25,
+ "friendship": 35,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_AMORPHOUS",
+ "EGG_GROUP_AMORPHOUS"
+ ],
+ "abilities": [
+ "ABILITY_INSOMNIA",
+ "ABILITY_FRISK"
+ ],
+ "greatMarshRate": 0,
+ "color": 4,
+ "flip": 0,
+ "tms": [
+ 4,
+ 6,
+ 10,
+ 11,
+ 12,
+ 17,
+ 18,
+ 21,
+ 24,
+ 25,
+ 27,
+ 29,
+ 30,
+ 32,
+ 34,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 49,
+ 57,
+ 58,
+ 61,
+ 63,
+ 66,
+ 70,
+ 73,
+ 77,
+ 78,
+ 79,
+ 82,
+ 83,
+ 85,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "BANETTE",
+ "hp": 64,
+ "atk": 115,
+ "def": 65,
+ "speed": 65,
+ "spatk": 83,
+ "spdef": 63,
+ "types": [
+ "TYPE_GHOST",
+ "TYPE_GHOST"
+ ],
+ "catchRate": 45,
+ "expYield": 179,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_SPELL_TAG"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 25,
+ "friendship": 35,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_AMORPHOUS",
+ "EGG_GROUP_AMORPHOUS"
+ ],
+ "abilities": [
+ "ABILITY_INSOMNIA",
+ "ABILITY_FRISK"
+ ],
+ "greatMarshRate": 0,
+ "color": 4,
+ "flip": 0,
+ "tms": [
+ 4,
+ 6,
+ 10,
+ 11,
+ 12,
+ 15,
+ 17,
+ 18,
+ 21,
+ 24,
+ 25,
+ 27,
+ 29,
+ 30,
+ 32,
+ 34,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 49,
+ 56,
+ 57,
+ 58,
+ 61,
+ 63,
+ 65,
+ 66,
+ 68,
+ 70,
+ 73,
+ 77,
+ 78,
+ 79,
+ 82,
+ 83,
+ 85,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "DUSKULL",
+ "hp": 20,
+ "atk": 40,
+ "def": 90,
+ "speed": 25,
+ "spatk": 30,
+ "spdef": 90,
+ "types": [
+ "TYPE_GHOST",
+ "TYPE_GHOST"
+ ],
+ "catchRate": 190,
+ "expYield": 97,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_KASIB_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 25,
+ "friendship": 35,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_AMORPHOUS",
+ "EGG_GROUP_AMORPHOUS"
+ ],
+ "abilities": [
+ "ABILITY_LEVITATE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 4,
+ "flip": 0,
+ "tms": [
+ 4,
+ 6,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 27,
+ 29,
+ 30,
+ 32,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 49,
+ 56,
+ 57,
+ 58,
+ 61,
+ 63,
+ 66,
+ 70,
+ 77,
+ 78,
+ 79,
+ 82,
+ 83,
+ 85,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "DUSCLOPS",
+ "hp": 40,
+ "atk": 70,
+ "def": 130,
+ "speed": 25,
+ "spatk": 60,
+ "spdef": 130,
+ "types": [
+ "TYPE_GHOST",
+ "TYPE_GHOST"
+ ],
+ "catchRate": 90,
+ "expYield": 179,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_KASIB_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 25,
+ "friendship": 35,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_AMORPHOUS",
+ "EGG_GROUP_AMORPHOUS"
+ ],
+ "abilities": [
+ "ABILITY_PRESSURE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 4,
+ "flip": 0,
+ "tms": [
+ 1,
+ 4,
+ 6,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 29,
+ 30,
+ 31,
+ 32,
+ 39,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 49,
+ 56,
+ 57,
+ 58,
+ 61,
+ 63,
+ 66,
+ 68,
+ 70,
+ 77,
+ 78,
+ 79,
+ 80,
+ 82,
+ 83,
+ 85,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "TROPIUS",
+ "hp": 99,
+ "atk": 68,
+ "def": 83,
+ "speed": 51,
+ "spatk": 72,
+ "spdef": 87,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 200,
+ "expYield": 169,
+ "hp_yield": 2,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 25,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_CHLOROPHYLL",
+ "ABILITY_SOLAR_POWER"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 9,
+ 10,
+ 11,
+ 15,
+ 17,
+ 19,
+ 20,
+ 21,
+ 22,
+ 26,
+ 27,
+ 32,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 47,
+ 51,
+ 53,
+ 58,
+ 62,
+ 68,
+ 70,
+ 75,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 2,
+ 4,
+ 5,
+ 6
+ ]
+ },
+ {
+ "species": "CHIMECHO",
+ "hp": 65,
+ "atk": 50,
+ "def": 70,
+ "speed": 65,
+ "spatk": 95,
+ "spdef": 80,
+ "types": [
+ "TYPE_PSYCHIC",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 45,
+ "expYield": 147,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_COLBUR_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 25,
+ "friendship": 70,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_AMORPHOUS",
+ "EGG_GROUP_AMORPHOUS"
+ ],
+ "abilities": [
+ "ABILITY_LEVITATE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 4,
+ 6,
+ 10,
+ 11,
+ 12,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 27,
+ 29,
+ 30,
+ 32,
+ 33,
+ 34,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 48,
+ 49,
+ 53,
+ 57,
+ 58,
+ 67,
+ 70,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "ABSOL",
+ "hp": 65,
+ "atk": 130,
+ "def": 60,
+ "speed": 75,
+ "spatk": 75,
+ "spdef": 60,
+ "types": [
+ "TYPE_DARK",
+ "TYPE_DARK"
+ ],
+ "catchRate": 30,
+ "expYield": 174,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 25,
+ "friendship": 35,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_PRESSURE",
+ "ABILITY_SUPER_LUCK"
+ ],
+ "greatMarshRate": 0,
+ "color": 8,
+ "flip": 1,
+ "tms": [
+ 3,
+ 4,
+ 6,
+ 7,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 30,
+ 32,
+ 34,
+ 35,
+ 37,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 49,
+ 54,
+ 57,
+ 58,
+ 61,
+ 65,
+ 66,
+ 68,
+ 70,
+ 71,
+ 73,
+ 75,
+ 77,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 85,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "WYNAUT",
+ "hp": 95,
+ "atk": 23,
+ "def": 48,
+ "speed": 23,
+ "spatk": 23,
+ "spdef": 48,
+ "types": [
+ "TYPE_PSYCHIC",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 125,
+ "expYield": 44,
+ "hp_yield": 1,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_SHADOW_TAG",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [],
+ "hms": []
+ },
+ {
+ "species": "SNORUNT",
+ "hp": 50,
+ "atk": 50,
+ "def": 50,
+ "speed": 50,
+ "spatk": 50,
+ "spdef": 50,
+ "types": [
+ "TYPE_ICE",
+ "TYPE_ICE"
+ ],
+ "catchRate": 190,
+ "expYield": 74,
+ "hp_yield": 1,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_BABIRI_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FAIRY",
+ "EGG_GROUP_MINERAL"
+ ],
+ "abilities": [
+ "ABILITY_INNER_FOCUS",
+ "ABILITY_ICE_BODY"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 27,
+ 30,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 70,
+ 72,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "GLALIE",
+ "hp": 80,
+ "atk": 80,
+ "def": 80,
+ "speed": 80,
+ "spatk": 80,
+ "spdef": 80,
+ "types": [
+ "TYPE_ICE",
+ "TYPE_ICE"
+ ],
+ "catchRate": 75,
+ "expYield": 187,
+ "hp_yield": 2,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_BABIRI_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FAIRY",
+ "EGG_GROUP_MINERAL"
+ ],
+ "abilities": [
+ "ABILITY_INNER_FOCUS",
+ "ABILITY_ICE_BODY"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 26,
+ 27,
+ 30,
+ 32,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 64,
+ 66,
+ 68,
+ 70,
+ 72,
+ 74,
+ 78,
+ 79,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "SPHEAL",
+ "hp": 70,
+ "atk": 40,
+ "def": 50,
+ "speed": 25,
+ "spatk": 55,
+ "spdef": 50,
+ "types": [
+ "TYPE_ICE",
+ "TYPE_WATER"
+ ],
+ "catchRate": 255,
+ "expYield": 75,
+ "hp_yield": 1,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_THICK_FAT",
+ "ABILITY_ICE_BODY"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 23,
+ 26,
+ 27,
+ 32,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 55,
+ 58,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "SEALEO",
+ "hp": 90,
+ "atk": 60,
+ "def": 70,
+ "speed": 45,
+ "spatk": 75,
+ "spdef": 70,
+ "types": [
+ "TYPE_ICE",
+ "TYPE_WATER"
+ ],
+ "catchRate": 120,
+ "expYield": 128,
+ "hp_yield": 2,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_THICK_FAT",
+ "ABILITY_ICE_BODY"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 5,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 23,
+ 26,
+ 27,
+ 32,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 55,
+ 58,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "WALREIN",
+ "hp": 110,
+ "atk": 80,
+ "def": 90,
+ "speed": 65,
+ "spatk": 95,
+ "spdef": 90,
+ "types": [
+ "TYPE_ICE",
+ "TYPE_WATER"
+ ],
+ "catchRate": 45,
+ "expYield": 192,
+ "hp_yield": 3,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_THICK_FAT",
+ "ABILITY_ICE_BODY"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 5,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 26,
+ 27,
+ 32,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 55,
+ 58,
+ 68,
+ 72,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "CLAMPERL",
+ "hp": 35,
+ "atk": 64,
+ "def": 85,
+ "speed": 32,
+ "spatk": 74,
+ "spdef": 55,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 255,
+ "expYield": 142,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_BIG_PEARL"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "ERRATIC",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_WATER_1"
+ ],
+ "abilities": [
+ "ABILITY_SHELL_ARMOR",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 27,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 55,
+ 58,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 7
+ ]
+ },
+ {
+ "species": "HUNTAIL",
+ "hp": 55,
+ "atk": 104,
+ "def": 105,
+ "speed": 52,
+ "spatk": 94,
+ "spdef": 75,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 60,
+ "expYield": 178,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_DEEPSEATOOTH"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "ERRATIC",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_WATER_1"
+ ],
+ "abilities": [
+ "ABILITY_SWIFT_SWIM",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 27,
+ 32,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 49,
+ 55,
+ 58,
+ 68,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 7
+ ]
+ },
+ {
+ "species": "GOREBYSS",
+ "hp": 55,
+ "atk": 84,
+ "def": 105,
+ "speed": 52,
+ "spatk": 114,
+ "spdef": 75,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 60,
+ "expYield": 178,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 2,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_DEEPSEASCALE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "ERRATIC",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_WATER_1"
+ ],
+ "abilities": [
+ "ABILITY_SWIFT_SWIM",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 9,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 20,
+ 21,
+ 27,
+ 29,
+ 30,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 55,
+ 58,
+ 68,
+ 77,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 7
+ ]
+ },
+ {
+ "species": "RELICANTH",
+ "hp": 100,
+ "atk": 90,
+ "def": 130,
+ "speed": 55,
+ "spatk": 45,
+ "spdef": 65,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_ROCK"
+ ],
+ "catchRate": 25,
+ "expYield": 198,
+ "hp_yield": 1,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_DEEPSEASCALE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 40,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_WATER_2"
+ ],
+ "abilities": [
+ "ABILITY_SWIFT_SWIM",
+ "ABILITY_ROCK_HEAD"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 3,
+ 4,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 20,
+ 21,
+ 26,
+ 27,
+ 32,
+ 37,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 55,
+ 58,
+ 68,
+ 69,
+ 71,
+ 76,
+ 77,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "LUVDISC",
+ "hp": 43,
+ "atk": 30,
+ "def": 55,
+ "speed": 97,
+ "spatk": 40,
+ "spdef": 65,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 225,
+ "expYield": 110,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_HEART_SCALE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.75,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_2",
+ "EGG_GROUP_WATER_2"
+ ],
+ "abilities": [
+ "ABILITY_SWIFT_SWIM",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 9,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 20,
+ 21,
+ 27,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 55,
+ 58,
+ 77,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 7
+ ]
+ },
+ {
+ "species": "BAGON",
+ "hp": 45,
+ "atk": 75,
+ "def": 60,
+ "speed": 50,
+ "spatk": 40,
+ "spdef": 30,
+ "types": [
+ "TYPE_DRAGON",
+ "TYPE_DRAGON"
+ ],
+ "catchRate": 45,
+ "expYield": 89,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_DRAGON_FANG"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 40,
+ "friendship": 35,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_DRAGON",
+ "EGG_GROUP_DRAGON"
+ ],
+ "abilities": [
+ "ABILITY_ROCK_HEAD",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 2,
+ 5,
+ 6,
+ 10,
+ 11,
+ 17,
+ 18,
+ 21,
+ 27,
+ 31,
+ 32,
+ 35,
+ 38,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 59,
+ 65,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "SHELGON",
+ "hp": 65,
+ "atk": 95,
+ "def": 100,
+ "speed": 50,
+ "spatk": 60,
+ "spdef": 50,
+ "types": [
+ "TYPE_DRAGON",
+ "TYPE_DRAGON"
+ ],
+ "catchRate": 45,
+ "expYield": 144,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 2,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_DRAGON_FANG"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 40,
+ "friendship": 35,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_DRAGON",
+ "EGG_GROUP_DRAGON"
+ ],
+ "abilities": [
+ "ABILITY_ROCK_HEAD",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 8,
+ "flip": 0,
+ "tms": [
+ 2,
+ 5,
+ 6,
+ 10,
+ 11,
+ 17,
+ 18,
+ 21,
+ 27,
+ 31,
+ 32,
+ 35,
+ 38,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 59,
+ 65,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "SALAMENCE",
+ "hp": 95,
+ "atk": 135,
+ "def": 80,
+ "speed": 100,
+ "spatk": 110,
+ "spdef": 80,
+ "types": [
+ "TYPE_DRAGON",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 45,
+ "expYield": 218,
+ "hp_yield": 0,
+ "atk_yield": 3,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_DRAGON_FANG"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 40,
+ "friendship": 35,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_DRAGON",
+ "EGG_GROUP_DRAGON"
+ ],
+ "abilities": [
+ "ABILITY_INTIMIDATE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 2,
+ 5,
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 26,
+ 27,
+ 31,
+ 32,
+ 35,
+ 38,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 47,
+ 51,
+ 58,
+ 59,
+ 65,
+ 68,
+ 71,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 2,
+ 4,
+ 5,
+ 6
+ ]
+ },
+ {
+ "species": "BELDUM",
+ "hp": 40,
+ "atk": 55,
+ "def": 80,
+ "speed": 30,
+ "spatk": 35,
+ "spdef": 60,
+ "types": [
+ "TYPE_STEEL",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 3,
+ "expYield": 103,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_METAL_COAT"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 40,
+ "friendship": 35,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MINERAL",
+ "EGG_GROUP_MINERAL"
+ ],
+ "abilities": [
+ "ABILITY_CLEAR_BODY",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [],
+ "hms": []
+ },
+ {
+ "species": "METANG",
+ "hp": 60,
+ "atk": 75,
+ "def": 100,
+ "speed": 50,
+ "spatk": 55,
+ "spdef": 80,
+ "types": [
+ "TYPE_STEEL",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 3,
+ "expYield": 153,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 2,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_METAL_COAT"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 40,
+ "friendship": 35,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MINERAL",
+ "EGG_GROUP_MINERAL"
+ ],
+ "abilities": [
+ "ABILITY_CLEAR_BODY",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 15,
+ 16,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 36,
+ 37,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 58,
+ 64,
+ 69,
+ 70,
+ 74,
+ 76,
+ 77,
+ 80,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90,
+ 91
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "METAGROSS",
+ "hp": 80,
+ "atk": 135,
+ "def": 130,
+ "speed": 70,
+ "spatk": 95,
+ "spdef": 90,
+ "types": [
+ "TYPE_STEEL",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 3,
+ "expYield": 210,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 3,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_METAL_COAT"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 40,
+ "friendship": 35,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MINERAL",
+ "EGG_GROUP_MINERAL"
+ ],
+ "abilities": [
+ "ABILITY_CLEAR_BODY",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 15,
+ 16,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 36,
+ 37,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 58,
+ 64,
+ 68,
+ 69,
+ 70,
+ 74,
+ 76,
+ 77,
+ 80,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90,
+ 91
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "REGIROCK",
+ "hp": 80,
+ "atk": 100,
+ "def": 200,
+ "speed": 50,
+ "spatk": 50,
+ "spdef": 100,
+ "types": [
+ "TYPE_ROCK",
+ "TYPE_ROCK"
+ ],
+ "catchRate": 3,
+ "expYield": 217,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 3,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 80,
+ "friendship": 35,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_CLEAR_BODY",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 20,
+ 21,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 34,
+ 37,
+ 39,
+ 42,
+ 43,
+ 44,
+ 52,
+ 56,
+ 57,
+ 58,
+ 60,
+ 64,
+ 68,
+ 69,
+ 71,
+ 73,
+ 76,
+ 77,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "REGICE",
+ "hp": 80,
+ "atk": 50,
+ "def": 100,
+ "speed": 50,
+ "spatk": 100,
+ "spdef": 200,
+ "types": [
+ "TYPE_ICE",
+ "TYPE_ICE"
+ ],
+ "catchRate": 3,
+ "expYield": 216,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 3,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 80,
+ "friendship": 35,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_CLEAR_BODY",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 20,
+ 21,
+ 24,
+ 25,
+ 26,
+ 27,
+ 31,
+ 32,
+ 34,
+ 39,
+ 42,
+ 43,
+ 44,
+ 52,
+ 56,
+ 57,
+ 58,
+ 64,
+ 68,
+ 69,
+ 72,
+ 73,
+ 77,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90,
+ 91
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "REGISTEEL",
+ "hp": 80,
+ "atk": 75,
+ "def": 150,
+ "speed": 50,
+ "spatk": 75,
+ "spdef": 150,
+ "types": [
+ "TYPE_STEEL",
+ "TYPE_STEEL"
+ ],
+ "catchRate": 3,
+ "expYield": 215,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 2,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 80,
+ "friendship": 35,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_CLEAR_BODY",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 18,
+ 20,
+ 21,
+ 24,
+ 25,
+ 26,
+ 27,
+ 31,
+ 32,
+ 34,
+ 37,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 52,
+ 56,
+ 57,
+ 58,
+ 64,
+ 65,
+ 68,
+ 69,
+ 73,
+ 76,
+ 77,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90,
+ 91
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "LATIAS",
+ "hp": 80,
+ "atk": 80,
+ "def": 90,
+ "speed": 110,
+ "spatk": 110,
+ "spdef": 130,
+ "types": [
+ "TYPE_DRAGON",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 3,
+ "expYield": 211,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 3,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 1.0,
+ "eggCycles": 120,
+ "friendship": 90,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_LEVITATE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 10,
+ 11,
+ 13,
+ 15,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 22,
+ 24,
+ 25,
+ 26,
+ 27,
+ 29,
+ 30,
+ 32,
+ 33,
+ 34,
+ 37,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 47,
+ 51,
+ 53,
+ 57,
+ 58,
+ 59,
+ 65,
+ 68,
+ 70,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 2,
+ 3,
+ 5,
+ 7
+ ]
+ },
+ {
+ "species": "LATIOS",
+ "hp": 80,
+ "atk": 90,
+ "def": 80,
+ "speed": 110,
+ "spatk": 130,
+ "spdef": 110,
+ "types": [
+ "TYPE_DRAGON",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 3,
+ "expYield": 211,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 3,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.0,
+ "eggCycles": 120,
+ "friendship": 90,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_LEVITATE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 10,
+ 11,
+ 13,
+ 15,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 22,
+ 24,
+ 25,
+ 26,
+ 27,
+ 29,
+ 30,
+ 32,
+ 33,
+ 34,
+ 37,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 47,
+ 51,
+ 53,
+ 57,
+ 58,
+ 59,
+ 65,
+ 68,
+ 70,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 2,
+ 3,
+ 5,
+ 7
+ ]
+ },
+ {
+ "species": "KYOGRE",
+ "hp": 100,
+ "atk": 100,
+ "def": 90,
+ "speed": 90,
+ "spatk": 150,
+ "spdef": 140,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 5,
+ "expYield": 218,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 3,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 120,
+ "friendship": 0,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_DRIZZLE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 20,
+ 21,
+ 24,
+ 25,
+ 26,
+ 27,
+ 31,
+ 32,
+ 34,
+ 39,
+ 42,
+ 43,
+ 44,
+ 55,
+ 58,
+ 68,
+ 72,
+ 73,
+ 77,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "GROUDON",
+ "hp": 100,
+ "atk": 150,
+ "def": 140,
+ "speed": 90,
+ "spatk": 100,
+ "spdef": 90,
+ "types": [
+ "TYPE_GROUND",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 5,
+ "expYield": 218,
+ "hp_yield": 0,
+ "atk_yield": 3,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 120,
+ "friendship": 0,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_DROUGHT",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 2,
+ 5,
+ 6,
+ 8,
+ 10,
+ 11,
+ 15,
+ 17,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 34,
+ 35,
+ 37,
+ 38,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 50,
+ 52,
+ 56,
+ 58,
+ 59,
+ 65,
+ 68,
+ 69,
+ 71,
+ 73,
+ 75,
+ 76,
+ 77,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "RAYQUAZA",
+ "hp": 105,
+ "atk": 150,
+ "def": 90,
+ "speed": 95,
+ "spatk": 150,
+ "spdef": 90,
+ "types": [
+ "TYPE_DRAGON",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 3,
+ "expYield": 220,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 120,
+ "friendship": 0,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_AIR_LOCK",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 2,
+ 3,
+ 5,
+ 6,
+ 8,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 31,
+ 32,
+ 34,
+ 35,
+ 37,
+ 38,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 50,
+ 52,
+ 53,
+ 56,
+ 58,
+ 59,
+ 65,
+ 68,
+ 71,
+ 72,
+ 73,
+ 74,
+ 75,
+ 77,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 2,
+ 3,
+ 4,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "JIRACHI",
+ "hp": 100,
+ "atk": 100,
+ "def": 100,
+ "speed": 100,
+ "spatk": 100,
+ "spdef": 100,
+ "types": [
+ "TYPE_STEEL",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 3,
+ "expYield": 215,
+ "hp_yield": 3,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_STAR_PIECE",
+ "ITEM_STAR_PIECE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 120,
+ "friendship": 100,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_SERENE_GRACE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 3,
+ 4,
+ 6,
+ 10,
+ 11,
+ 15,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 24,
+ 25,
+ 27,
+ 29,
+ 30,
+ 32,
+ 33,
+ 34,
+ 37,
+ 40,
+ 42,
+ 43,
+ 44,
+ 48,
+ 53,
+ 56,
+ 57,
+ 58,
+ 60,
+ 67,
+ 68,
+ 70,
+ 73,
+ 76,
+ 77,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 89,
+ 90,
+ 91,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "DEOXYS",
+ "hp": 50,
+ "atk": 150,
+ "def": 50,
+ "speed": 150,
+ "spatk": 150,
+ "spdef": 50,
+ "types": [
+ "TYPE_PSYCHIC",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 3,
+ "expYield": 215,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 120,
+ "friendship": 0,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_PRESSURE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 10,
+ 11,
+ 12,
+ 13,
+ 15,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 22,
+ 24,
+ 25,
+ 27,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 48,
+ 49,
+ 52,
+ 53,
+ 56,
+ 57,
+ 58,
+ 60,
+ 67,
+ 68,
+ 70,
+ 72,
+ 73,
+ 76,
+ 77,
+ 80,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 90,
+ 91,
+ 92
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "TURTWIG",
+ "hp": 55,
+ "atk": 68,
+ "def": 64,
+ "speed": 31,
+ "spatk": 45,
+ "spdef": 55,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_GRASS"
+ ],
+ "catchRate": 45,
+ "expYield": 64,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_OVERGROW",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 16,
+ 17,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 27,
+ 32,
+ 33,
+ 42,
+ 43,
+ 44,
+ 45,
+ 53,
+ 58,
+ 70,
+ 75,
+ 76,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "GROTLE",
+ "hp": 75,
+ "atk": 89,
+ "def": 85,
+ "speed": 36,
+ "spatk": 55,
+ "spdef": 65,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_GRASS"
+ ],
+ "catchRate": 45,
+ "expYield": 141,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_OVERGROW",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 16,
+ 17,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 27,
+ 32,
+ 33,
+ 42,
+ 43,
+ 44,
+ 45,
+ 53,
+ 58,
+ 70,
+ 75,
+ 76,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "TORTERRA",
+ "hp": 95,
+ "atk": 109,
+ "def": 105,
+ "speed": 56,
+ "spatk": 75,
+ "spdef": 85,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 45,
+ "expYield": 208,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_OVERGROW",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 1,
+ "tms": [
+ 5,
+ 6,
+ 9,
+ 10,
+ 11,
+ 15,
+ 16,
+ 17,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 26,
+ 27,
+ 32,
+ 33,
+ 37,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 53,
+ 58,
+ 68,
+ 69,
+ 70,
+ 71,
+ 75,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "CHIMCHAR",
+ "hp": 44,
+ "atk": 58,
+ "def": 44,
+ "speed": 61,
+ "spatk": 58,
+ "spdef": 44,
+ "types": [
+ "TYPE_FIRE",
+ "TYPE_FIRE"
+ ],
+ "catchRate": 45,
+ "expYield": 65,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_BLAZE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 1,
+ "tms": [
+ 1,
+ 6,
+ 8,
+ 10,
+ 11,
+ 12,
+ 17,
+ 21,
+ 23,
+ 27,
+ 28,
+ 31,
+ 32,
+ 35,
+ 38,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 50,
+ 56,
+ 58,
+ 61,
+ 65,
+ 75,
+ 76,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "MONFERNO",
+ "hp": 64,
+ "atk": 78,
+ "def": 52,
+ "speed": 81,
+ "spatk": 78,
+ "spdef": 52,
+ "types": [
+ "TYPE_FIRE",
+ "TYPE_FIGHTING"
+ ],
+ "catchRate": 45,
+ "expYield": 142,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_BLAZE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 1,
+ "tms": [
+ 1,
+ 6,
+ 8,
+ 10,
+ 11,
+ 12,
+ 17,
+ 21,
+ 23,
+ 27,
+ 28,
+ 31,
+ 32,
+ 35,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 50,
+ 52,
+ 56,
+ 58,
+ 61,
+ 65,
+ 75,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 84,
+ 86,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "INFERNAPE",
+ "hp": 76,
+ "atk": 104,
+ "def": 71,
+ "speed": 108,
+ "spatk": 104,
+ "spdef": 71,
+ "types": [
+ "TYPE_FIRE",
+ "TYPE_FIGHTING"
+ ],
+ "catchRate": 45,
+ "expYield": 209,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_BLAZE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 1,
+ 4,
+ 5,
+ 6,
+ 8,
+ 10,
+ 11,
+ 12,
+ 15,
+ 17,
+ 21,
+ 22,
+ 23,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 35,
+ 38,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 50,
+ 52,
+ 56,
+ 58,
+ 61,
+ 65,
+ 68,
+ 71,
+ 75,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 84,
+ 86,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "PIPLUP",
+ "hp": 53,
+ "atk": 51,
+ "def": 53,
+ "speed": 40,
+ "spatk": 61,
+ "spdef": 56,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 45,
+ "expYield": 66,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_TORRENT",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 27,
+ 28,
+ 31,
+ 32,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 55,
+ 56,
+ 58,
+ 76,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 88,
+ 90
+ ],
+ "hms": [
+ 1,
+ 3,
+ 5,
+ 7
+ ]
+ },
+ {
+ "species": "PRINPLUP",
+ "hp": 64,
+ "atk": 66,
+ "def": 68,
+ "speed": 50,
+ "spatk": 81,
+ "spdef": 76,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 45,
+ "expYield": 143,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 2,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_TORRENT",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 27,
+ 28,
+ 31,
+ 32,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 55,
+ 56,
+ 58,
+ 65,
+ 76,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 88,
+ 90
+ ],
+ "hms": [
+ 1,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "EMPOLEON",
+ "hp": 84,
+ "atk": 86,
+ "def": 88,
+ "speed": 60,
+ "spatk": 111,
+ "spdef": 101,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_STEEL"
+ ],
+ "catchRate": 45,
+ "expYield": 210,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 3,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_TORRENT",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 5,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 47,
+ 55,
+ 56,
+ 58,
+ 65,
+ 68,
+ 72,
+ 75,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 86,
+ 87,
+ 88,
+ 90,
+ 91
+ ],
+ "hms": [
+ 1,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8
+ ]
+ },
+ {
+ "species": "STARLY",
+ "hp": 40,
+ "atk": 55,
+ "def": 30,
+ "speed": 60,
+ "spatk": 30,
+ "spdef": 30,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 255,
+ "expYield": 56,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_YACHE_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FLYING",
+ "EGG_GROUP_FLYING"
+ ],
+ "abilities": [
+ "ABILITY_KEEN_EYE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 90,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 17,
+ 18,
+ 21,
+ 27,
+ 32,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 51,
+ 58,
+ 78,
+ 82,
+ 83,
+ 87,
+ 88,
+ 89,
+ 90
+ ],
+ "hms": [
+ 2,
+ 5
+ ]
+ },
+ {
+ "species": "STARAVIA",
+ "hp": 55,
+ "atk": 75,
+ "def": 50,
+ "speed": 80,
+ "spatk": 40,
+ "spdef": 40,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 120,
+ "expYield": 113,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 2,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_YACHE_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FLYING",
+ "EGG_GROUP_FLYING"
+ ],
+ "abilities": [
+ "ABILITY_INTIMIDATE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 60,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 17,
+ 18,
+ 21,
+ 27,
+ 32,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 51,
+ 58,
+ 78,
+ 82,
+ 83,
+ 87,
+ 88,
+ 89,
+ 90
+ ],
+ "hms": [
+ 2,
+ 5
+ ]
+ },
+ {
+ "species": "STARAPTOR",
+ "hp": 85,
+ "atk": 120,
+ "def": 70,
+ "speed": 100,
+ "spatk": 50,
+ "spdef": 50,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 45,
+ "expYield": 172,
+ "hp_yield": 0,
+ "atk_yield": 3,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_YACHE_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FLYING",
+ "EGG_GROUP_FLYING"
+ ],
+ "abilities": [
+ "ABILITY_INTIMIDATE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 18,
+ 21,
+ 27,
+ 32,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 51,
+ 58,
+ 68,
+ 78,
+ 82,
+ 83,
+ 87,
+ 88,
+ 89,
+ 90
+ ],
+ "hms": [
+ 2,
+ 5
+ ]
+ },
+ {
+ "species": "BIDOOF",
+ "hp": 59,
+ "atk": 45,
+ "def": 40,
+ "speed": 31,
+ "spatk": 35,
+ "spdef": 40,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 255,
+ "expYield": 58,
+ "hp_yield": 1,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_SIMPLE",
+ "ABILITY_UNAWARE"
+ ],
+ "greatMarshRate": 90,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 28,
+ 30,
+ 32,
+ 34,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 57,
+ 58,
+ 73,
+ 76,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 88,
+ 90
+ ],
+ "hms": [
+ 1,
+ 6
+ ]
+ },
+ {
+ "species": "BIBAREL",
+ "hp": 79,
+ "atk": 85,
+ "def": 60,
+ "speed": 71,
+ "spatk": 55,
+ "spdef": 60,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_WATER"
+ ],
+ "catchRate": 127,
+ "expYield": 116,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_ORAN_BERRY",
+ "ITEM_SITRUS_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_SIMPLE",
+ "ABILITY_UNAWARE"
+ ],
+ "greatMarshRate": 60,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 6,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 28,
+ 30,
+ 32,
+ 34,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 56,
+ 57,
+ 58,
+ 68,
+ 73,
+ 76,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 88,
+ 90
+ ],
+ "hms": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 7,
+ 8
+ ]
+ },
+ {
+ "species": "KRICKETOT",
+ "hp": 37,
+ "atk": 25,
+ "def": 41,
+ "speed": 25,
+ "spatk": 25,
+ "spdef": 41,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_BUG"
+ ],
+ "catchRate": 255,
+ "expYield": 54,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_METRONOME"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_SHED_SKIN",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [],
+ "hms": []
+ },
+ {
+ "species": "KRICKETUNE",
+ "hp": 77,
+ "atk": 85,
+ "def": 51,
+ "speed": 65,
+ "spatk": 55,
+ "spdef": 51,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_BUG"
+ ],
+ "catchRate": 45,
+ "expYield": 159,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_METRONOME"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_SWARM",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 18,
+ 21,
+ 27,
+ 31,
+ 32,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 54,
+ 58,
+ 62,
+ 68,
+ 70,
+ 75,
+ 78,
+ 81,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "SHINX",
+ "hp": 45,
+ "atk": 65,
+ "def": 34,
+ "speed": 45,
+ "spatk": 40,
+ "spdef": 34,
+ "types": [
+ "TYPE_ELECTRIC",
+ "TYPE_ELECTRIC"
+ ],
+ "catchRate": 235,
+ "expYield": 60,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_RIVALRY",
+ "ABILITY_INTIMIDATE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 10,
+ 16,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 32,
+ 34,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 57,
+ 58,
+ 70,
+ 73,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4
+ ]
+ },
+ {
+ "species": "LUXIO",
+ "hp": 60,
+ "atk": 85,
+ "def": 49,
+ "speed": 60,
+ "spatk": 60,
+ "spdef": 49,
+ "types": [
+ "TYPE_ELECTRIC",
+ "TYPE_ELECTRIC"
+ ],
+ "catchRate": 120,
+ "expYield": 117,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 100,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_RIVALRY",
+ "ABILITY_INTIMIDATE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 10,
+ 16,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 32,
+ 34,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 57,
+ 58,
+ 70,
+ 73,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4
+ ]
+ },
+ {
+ "species": "LUXRAY",
+ "hp": 80,
+ "atk": 120,
+ "def": 79,
+ "speed": 70,
+ "spatk": 95,
+ "spdef": 79,
+ "types": [
+ "TYPE_ELECTRIC",
+ "TYPE_ELECTRIC"
+ ],
+ "catchRate": 45,
+ "expYield": 194,
+ "hp_yield": 0,
+ "atk_yield": 3,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_RIVALRY",
+ "ABILITY_INTIMIDATE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 10,
+ 15,
+ 16,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 32,
+ 34,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 57,
+ 58,
+ 68,
+ 70,
+ 73,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4
+ ]
+ },
+ {
+ "species": "BUDEW",
+ "hp": 40,
+ "atk": 30,
+ "def": 35,
+ "speed": 55,
+ "spatk": 50,
+ "spdef": 70,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_POISON"
+ ],
+ "catchRate": 255,
+ "expYield": 68,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_POISON_BARB"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_NATURAL_CURE",
+ "ABILITY_POISON_POINT"
+ ],
+ "greatMarshRate": 120,
+ "color": 3,
+ "flip": 1,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 17,
+ 18,
+ 19,
+ 21,
+ 22,
+ 27,
+ 30,
+ 32,
+ 36,
+ 42,
+ 43,
+ 44,
+ 45,
+ 53,
+ 58,
+ 70,
+ 75,
+ 77,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1
+ ]
+ },
+ {
+ "species": "ROSERADE",
+ "hp": 60,
+ "atk": 70,
+ "def": 55,
+ "speed": 90,
+ "spatk": 125,
+ "spdef": 105,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_POISON"
+ ],
+ "catchRate": 75,
+ "expYield": 204,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 3,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_POISON_BARB"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FAIRY",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_NATURAL_CURE",
+ "ABILITY_POISON_POINT"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 1,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 15,
+ 17,
+ 18,
+ 19,
+ 21,
+ 22,
+ 27,
+ 30,
+ 32,
+ 36,
+ 42,
+ 43,
+ 44,
+ 45,
+ 53,
+ 58,
+ 68,
+ 70,
+ 75,
+ 77,
+ 78,
+ 82,
+ 83,
+ 84,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1
+ ]
+ },
+ {
+ "species": "CRANIDOS",
+ "hp": 67,
+ "atk": 125,
+ "def": 40,
+ "speed": 58,
+ "spatk": 30,
+ "spdef": 30,
+ "types": [
+ "TYPE_ROCK",
+ "TYPE_ROCK"
+ ],
+ "catchRate": 45,
+ "expYield": 99,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 30,
+ "friendship": 70,
+ "growthRate": "ERRATIC",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_MONSTER"
+ ],
+ "abilities": [
+ "ABILITY_MOLD_BREAKER",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 32,
+ 34,
+ 35,
+ 37,
+ 38,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 56,
+ 58,
+ 59,
+ 66,
+ 69,
+ 71,
+ 75,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "RAMPARDOS",
+ "hp": 97,
+ "atk": 165,
+ "def": 60,
+ "speed": 58,
+ "spatk": 65,
+ "spdef": 50,
+ "types": [
+ "TYPE_ROCK",
+ "TYPE_ROCK"
+ ],
+ "catchRate": 45,
+ "expYield": 199,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 30,
+ "friendship": 70,
+ "growthRate": "ERRATIC",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_MONSTER"
+ ],
+ "abilities": [
+ "ABILITY_MOLD_BREAKER",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 1,
+ 5,
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 34,
+ 35,
+ 37,
+ 38,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 52,
+ 56,
+ 58,
+ 59,
+ 66,
+ 68,
+ 69,
+ 71,
+ 72,
+ 75,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "SHIELDON",
+ "hp": 30,
+ "atk": 42,
+ "def": 118,
+ "speed": 30,
+ "spatk": 42,
+ "spdef": 88,
+ "types": [
+ "TYPE_ROCK",
+ "TYPE_STEEL"
+ ],
+ "catchRate": 45,
+ "expYield": 99,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 30,
+ "friendship": 70,
+ "growthRate": "ERRATIC",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_MONSTER"
+ ],
+ "abilities": [
+ "ABILITY_STURDY",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 32,
+ 34,
+ 35,
+ 37,
+ 38,
+ 39,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 69,
+ 71,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90,
+ 91
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "BASTIODON",
+ "hp": 60,
+ "atk": 52,
+ "def": 168,
+ "speed": 30,
+ "spatk": 47,
+ "spdef": 138,
+ "types": [
+ "TYPE_ROCK",
+ "TYPE_STEEL"
+ ],
+ "catchRate": 45,
+ "expYield": 199,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 2,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 30,
+ "friendship": 70,
+ "growthRate": "ERRATIC",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_MONSTER"
+ ],
+ "abilities": [
+ "ABILITY_STURDY",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 32,
+ 34,
+ 35,
+ 37,
+ 38,
+ 39,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 68,
+ 69,
+ 71,
+ 72,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90,
+ 91
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "BURMY",
+ "hp": 40,
+ "atk": 29,
+ "def": 45,
+ "speed": 36,
+ "spatk": 29,
+ "spdef": 45,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_BUG"
+ ],
+ "catchRate": 120,
+ "expYield": 61,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_SHED_SKIN",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [],
+ "hms": []
+ },
+ {
+ "species": "WORMADAM",
+ "hp": 60,
+ "atk": 59,
+ "def": 85,
+ "speed": 36,
+ "spatk": 79,
+ "spdef": 105,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_GRASS"
+ ],
+ "catchRate": 45,
+ "expYield": 159,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 2,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_SILVERPOWDER"
+ ],
+ "genderRatio": 1.0,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_ANTICIPATION",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 15,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 27,
+ 29,
+ 30,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 53,
+ 58,
+ 68,
+ 70,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "MOTHIM",
+ "hp": 70,
+ "atk": 94,
+ "def": 50,
+ "speed": 66,
+ "spatk": 94,
+ "spdef": 50,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 45,
+ "expYield": 159,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_SILVERPOWDER"
+ ],
+ "genderRatio": 0.0,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_SWARM",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 27,
+ 29,
+ 30,
+ 32,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 51,
+ 53,
+ 58,
+ 62,
+ 68,
+ 70,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 5
+ ]
+ },
+ {
+ "species": "COMBEE",
+ "hp": 30,
+ "atk": 30,
+ "def": 42,
+ "speed": 70,
+ "spatk": 30,
+ "spdef": 42,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 120,
+ "expYield": 63,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_HONEY",
+ "ITEM_HONEY"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_HONEY_GATHER",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [],
+ "hms": []
+ },
+ {
+ "species": "VESPIQUEN",
+ "hp": 70,
+ "atk": 80,
+ "def": 102,
+ "speed": 40,
+ "spatk": 80,
+ "spdef": 102,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 45,
+ "expYield": 188,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_POISON_BARB"
+ ],
+ "genderRatio": 1.0,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_PRESSURE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 18,
+ 21,
+ 27,
+ 32,
+ 36,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 51,
+ 56,
+ 58,
+ 62,
+ 68,
+ 70,
+ 78,
+ 81,
+ 82,
+ 83,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 1,
+ 5
+ ]
+ },
+ {
+ "species": "PACHIRISU",
+ "hp": 60,
+ "atk": 45,
+ "def": 70,
+ "speed": 95,
+ "spatk": 45,
+ "spdef": 90,
+ "types": [
+ "TYPE_ELECTRIC",
+ "TYPE_ELECTRIC"
+ ],
+ "catchRate": 200,
+ "expYield": 120,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 10,
+ "friendship": 100,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FAIRY"
+ ],
+ "abilities": [
+ "ABILITY_RUN_AWAY",
+ "ABILITY_PICKUP"
+ ],
+ "greatMarshRate": 0,
+ "color": 8,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 16,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 28,
+ 32,
+ 34,
+ 42,
+ 43,
+ 44,
+ 45,
+ 56,
+ 57,
+ 58,
+ 70,
+ 73,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 1
+ ]
+ },
+ {
+ "species": "BUIZEL",
+ "hp": 55,
+ "atk": 65,
+ "def": 35,
+ "speed": 85,
+ "spatk": 60,
+ "spdef": 30,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 190,
+ "expYield": 75,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_WACAN_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_SWIFT_SWIM",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 6,
+ 7,
+ 8,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 23,
+ 27,
+ 28,
+ 31,
+ 32,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 55,
+ 58,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "FLOATZEL",
+ "hp": 85,
+ "atk": 105,
+ "def": 55,
+ "speed": 115,
+ "spatk": 85,
+ "spdef": 50,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 75,
+ "expYield": 178,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 2,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_WACAN_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_SWIFT_SWIM",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 5,
+ 6,
+ 7,
+ 8,
+ 10,
+ 12,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 27,
+ 28,
+ 31,
+ 32,
+ 39,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 52,
+ 55,
+ 58,
+ 66,
+ 68,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "CHERUBI",
+ "hp": 45,
+ "atk": 35,
+ "def": 45,
+ "speed": 35,
+ "spatk": 62,
+ "spdef": 53,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_GRASS"
+ ],
+ "catchRate": 190,
+ "expYield": 68,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_MIRACLE_SEED"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FAIRY",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_CHLOROPHYLL",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 9,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 17,
+ 19,
+ 20,
+ 21,
+ 22,
+ 27,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 53,
+ 58,
+ 70,
+ 75,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "CHERRIM",
+ "hp": 70,
+ "atk": 60,
+ "def": 70,
+ "speed": 85,
+ "spatk": 87,
+ "spdef": 78,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_GRASS"
+ ],
+ "catchRate": 75,
+ "expYield": 133,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 2,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_MIRACLE_SEED"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FAIRY",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_FLOWER_GIFT",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 9,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 15,
+ 17,
+ 19,
+ 20,
+ 21,
+ 22,
+ 27,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 53,
+ 58,
+ 68,
+ 70,
+ 75,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "SHELLOS",
+ "hp": 76,
+ "atk": 48,
+ "def": 48,
+ "speed": 34,
+ "spatk": 57,
+ "spdef": 62,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 190,
+ "expYield": 73,
+ "hp_yield": 1,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_AMORPHOUS"
+ ],
+ "abilities": [
+ "ABILITY_STICKY_HOLD",
+ "ABILITY_STORM_DRAIN"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 27,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 55,
+ 58,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3
+ ]
+ },
+ {
+ "species": "GASTRODON",
+ "hp": 111,
+ "atk": 83,
+ "def": 68,
+ "speed": 39,
+ "spatk": 92,
+ "spdef": 82,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 75,
+ "expYield": 176,
+ "hp_yield": 2,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_AMORPHOUS"
+ ],
+ "abilities": [
+ "ABILITY_STICKY_HOLD",
+ "ABILITY_STORM_DRAIN"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 28,
+ 32,
+ 36,
+ 37,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 55,
+ 58,
+ 68,
+ 70,
+ 71,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 7
+ ]
+ },
+ {
+ "species": "AMBIPOM",
+ "hp": 75,
+ "atk": 100,
+ "def": 66,
+ "speed": 115,
+ "spatk": 60,
+ "spdef": 66,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 45,
+ "expYield": 186,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 2,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 100,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_TECHNICIAN",
+ "ABILITY_PICKUP"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 6,
+ 10,
+ 11,
+ 12,
+ 15,
+ 17,
+ 18,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 27,
+ 28,
+ 30,
+ 31,
+ 32,
+ 34,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 49,
+ 56,
+ 58,
+ 65,
+ 66,
+ 68,
+ 73,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "DRIFLOON",
+ "hp": 90,
+ "atk": 50,
+ "def": 34,
+ "speed": 70,
+ "spatk": 60,
+ "spdef": 44,
+ "types": [
+ "TYPE_GHOST",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 125,
+ "expYield": 127,
+ "hp_yield": 1,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 30,
+ "friendship": 70,
+ "growthRate": "FLUCTUATING",
+ "eggGroups": [
+ "EGG_GROUP_AMORPHOUS",
+ "EGG_GROUP_AMORPHOUS"
+ ],
+ "abilities": [
+ "ABILITY_AFTERMATH",
+ "ABILITY_UNBURDEN"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 4,
+ 6,
+ 10,
+ 11,
+ 17,
+ 18,
+ 21,
+ 24,
+ 25,
+ 27,
+ 29,
+ 30,
+ 32,
+ 34,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 57,
+ 58,
+ 61,
+ 62,
+ 63,
+ 64,
+ 66,
+ 67,
+ 70,
+ 73,
+ 74,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 5
+ ]
+ },
+ {
+ "species": "DRIFBLIM",
+ "hp": 150,
+ "atk": 80,
+ "def": 44,
+ "speed": 80,
+ "spatk": 90,
+ "spdef": 54,
+ "types": [
+ "TYPE_GHOST",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 60,
+ "expYield": 204,
+ "hp_yield": 2,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 30,
+ "friendship": 70,
+ "growthRate": "FLUCTUATING",
+ "eggGroups": [
+ "EGG_GROUP_AMORPHOUS",
+ "EGG_GROUP_AMORPHOUS"
+ ],
+ "abilities": [
+ "ABILITY_AFTERMATH",
+ "ABILITY_UNBURDEN"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 4,
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 18,
+ 21,
+ 24,
+ 25,
+ 27,
+ 29,
+ 30,
+ 32,
+ 34,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 57,
+ 58,
+ 61,
+ 62,
+ 63,
+ 64,
+ 66,
+ 67,
+ 68,
+ 70,
+ 73,
+ 74,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 2,
+ 5
+ ]
+ },
+ {
+ "species": "BUNEARY",
+ "hp": 55,
+ "atk": 66,
+ "def": 44,
+ "speed": 85,
+ "spatk": 44,
+ "spdef": 56,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 190,
+ "expYield": 84,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_CHOPLE_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 0,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_RUN_AWAY",
+ "ABILITY_KLUTZ"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 6,
+ 10,
+ 11,
+ 13,
+ 17,
+ 18,
+ 21,
+ 22,
+ 23,
+ 24,
+ 27,
+ 28,
+ 30,
+ 32,
+ 34,
+ 42,
+ 43,
+ 44,
+ 45,
+ 56,
+ 57,
+ 58,
+ 60,
+ 73,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 6
+ ]
+ },
+ {
+ "species": "LOPUNNY",
+ "hp": 65,
+ "atk": 76,
+ "def": 84,
+ "speed": 105,
+ "spatk": 54,
+ "spdef": 96,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 60,
+ "expYield": 178,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 2,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_CHOPLE_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 140,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_CUTE_CHARM",
+ "ABILITY_KLUTZ"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 27,
+ 28,
+ 30,
+ 32,
+ 34,
+ 42,
+ 43,
+ 44,
+ 45,
+ 52,
+ 56,
+ 57,
+ 58,
+ 60,
+ 68,
+ 73,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "MISMAGIUS",
+ "hp": 60,
+ "atk": 60,
+ "def": 60,
+ "speed": 105,
+ "spatk": 105,
+ "spdef": 105,
+ "types": [
+ "TYPE_GHOST",
+ "TYPE_GHOST"
+ ],
+ "catchRate": 45,
+ "expYield": 187,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 25,
+ "friendship": 35,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_AMORPHOUS",
+ "EGG_GROUP_AMORPHOUS"
+ ],
+ "abilities": [
+ "ABILITY_LEVITATE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 4,
+ 6,
+ 10,
+ 11,
+ 12,
+ 15,
+ 17,
+ 18,
+ 21,
+ 24,
+ 25,
+ 27,
+ 29,
+ 30,
+ 32,
+ 34,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 49,
+ 53,
+ 57,
+ 58,
+ 61,
+ 63,
+ 66,
+ 68,
+ 70,
+ 73,
+ 77,
+ 78,
+ 79,
+ 82,
+ 83,
+ 85,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "HONCHKROW",
+ "hp": 100,
+ "atk": 125,
+ "def": 52,
+ "speed": 71,
+ "spatk": 105,
+ "spdef": 52,
+ "types": [
+ "TYPE_DARK",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 30,
+ "expYield": 187,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 35,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FLYING",
+ "EGG_GROUP_FLYING"
+ ],
+ "abilities": [
+ "ABILITY_INSOMNIA",
+ "ABILITY_SUPER_LUCK"
+ ],
+ "greatMarshRate": 0,
+ "color": 4,
+ "flip": 0,
+ "tms": [
+ 4,
+ 6,
+ 10,
+ 11,
+ 12,
+ 15,
+ 17,
+ 18,
+ 21,
+ 27,
+ 29,
+ 30,
+ 32,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 49,
+ 51,
+ 58,
+ 63,
+ 66,
+ 68,
+ 73,
+ 77,
+ 78,
+ 79,
+ 82,
+ 83,
+ 85,
+ 87,
+ 88,
+ 90
+ ],
+ "hms": [
+ 2,
+ 5
+ ]
+ },
+ {
+ "species": "GLAMEOW",
+ "hp": 49,
+ "atk": 55,
+ "def": 42,
+ "speed": 85,
+ "spatk": 42,
+ "spdef": 37,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 190,
+ "expYield": 71,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_CHERI_BERRY"
+ ],
+ "genderRatio": 0.75,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_LIMBER",
+ "ABILITY_OWN_TEMPO"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 10,
+ 11,
+ 12,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 28,
+ 30,
+ 32,
+ 34,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 49,
+ 58,
+ 65,
+ 66,
+ 70,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 1
+ ]
+ },
+ {
+ "species": "PURUGLY",
+ "hp": 71,
+ "atk": 82,
+ "def": 64,
+ "speed": 112,
+ "spatk": 64,
+ "spdef": 59,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 75,
+ "expYield": 183,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 2,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_CHERI_BERRY"
+ ],
+ "genderRatio": 0.75,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_THICK_FAT",
+ "ABILITY_OWN_TEMPO"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 3,
+ 5,
+ 6,
+ 10,
+ 11,
+ 12,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 28,
+ 30,
+ 32,
+ 34,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 49,
+ 58,
+ 65,
+ 66,
+ 68,
+ 70,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 1
+ ]
+ },
+ {
+ "species": "CHINGLING",
+ "hp": 45,
+ "atk": 30,
+ "def": 50,
+ "speed": 45,
+ "spatk": 65,
+ "spdef": 50,
+ "types": [
+ "TYPE_PSYCHIC",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 120,
+ "expYield": 74,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_COLBUR_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 25,
+ "friendship": 70,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_LEVITATE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 4,
+ 6,
+ 10,
+ 11,
+ 12,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 27,
+ 29,
+ 30,
+ 32,
+ 33,
+ 34,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 48,
+ 49,
+ 57,
+ 58,
+ 67,
+ 70,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "STUNKY",
+ "hp": 63,
+ "atk": 63,
+ "def": 47,
+ "speed": 74,
+ "spatk": 41,
+ "spdef": 41,
+ "types": [
+ "TYPE_POISON",
+ "TYPE_DARK"
+ ],
+ "catchRate": 225,
+ "expYield": 79,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_PECHA_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_STENCH",
+ "ABILITY_AFTERMATH"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 10,
+ 11,
+ 12,
+ 17,
+ 18,
+ 21,
+ 23,
+ 27,
+ 28,
+ 30,
+ 32,
+ 35,
+ 36,
+ 38,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 49,
+ 58,
+ 64,
+ 65,
+ 66,
+ 78,
+ 79,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 5,
+ 6
+ ]
+ },
+ {
+ "species": "SKUNTANK",
+ "hp": 103,
+ "atk": 93,
+ "def": 67,
+ "speed": 84,
+ "spatk": 71,
+ "spdef": 61,
+ "types": [
+ "TYPE_POISON",
+ "TYPE_DARK"
+ ],
+ "catchRate": 60,
+ "expYield": 209,
+ "hp_yield": 2,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_PECHA_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_STENCH",
+ "ABILITY_AFTERMATH"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 10,
+ 11,
+ 12,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 27,
+ 28,
+ 30,
+ 32,
+ 35,
+ 36,
+ 38,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 49,
+ 58,
+ 64,
+ 65,
+ 66,
+ 68,
+ 78,
+ 79,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 5,
+ 6
+ ]
+ },
+ {
+ "species": "BRONZOR",
+ "hp": 57,
+ "atk": 24,
+ "def": 86,
+ "speed": 23,
+ "spatk": 24,
+ "spdef": 86,
+ "types": [
+ "TYPE_STEEL",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 255,
+ "expYield": 72,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_METAL_COAT"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_MINERAL",
+ "EGG_GROUP_MINERAL"
+ ],
+ "abilities": [
+ "ABILITY_LEVITATE",
+ "ABILITY_HEATPROOF"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 4,
+ 6,
+ 10,
+ 11,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 22,
+ 26,
+ 27,
+ 29,
+ 30,
+ 32,
+ 33,
+ 37,
+ 39,
+ 42,
+ 43,
+ 44,
+ 48,
+ 57,
+ 58,
+ 66,
+ 67,
+ 69,
+ 70,
+ 74,
+ 76,
+ 77,
+ 80,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90,
+ 91,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "BRONZONG",
+ "hp": 67,
+ "atk": 89,
+ "def": 116,
+ "speed": 33,
+ "spatk": 79,
+ "spdef": 116,
+ "types": [
+ "TYPE_STEEL",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 90,
+ "expYield": 188,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_METAL_COAT"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_MINERAL",
+ "EGG_GROUP_MINERAL"
+ ],
+ "abilities": [
+ "ABILITY_LEVITATE",
+ "ABILITY_HEATPROOF"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 4,
+ 6,
+ 10,
+ 11,
+ 15,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 22,
+ 26,
+ 27,
+ 29,
+ 30,
+ 32,
+ 33,
+ 37,
+ 39,
+ 42,
+ 43,
+ 44,
+ 48,
+ 57,
+ 58,
+ 64,
+ 66,
+ 67,
+ 68,
+ 69,
+ 70,
+ 74,
+ 76,
+ 77,
+ 80,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90,
+ 91,
+ 92
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "BONSLY",
+ "hp": 50,
+ "atk": 80,
+ "def": 95,
+ "speed": 10,
+ "spatk": 10,
+ "spdef": 45,
+ "types": [
+ "TYPE_ROCK",
+ "TYPE_ROCK"
+ ],
+ "catchRate": 255,
+ "expYield": 68,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_STURDY",
+ "ABILITY_ROCK_HEAD"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 4,
+ 6,
+ 10,
+ 11,
+ 17,
+ 21,
+ 27,
+ 28,
+ 31,
+ 32,
+ 37,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 58,
+ 64,
+ 69,
+ 76,
+ 77,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "MIME_JR",
+ "hp": 20,
+ "atk": 25,
+ "def": 45,
+ "speed": 60,
+ "spatk": 70,
+ "spdef": 90,
+ "types": [
+ "TYPE_PSYCHIC",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 145,
+ "expYield": 78,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_LEPPA_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 25,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_SOUNDPROOF",
+ "ABILITY_FILTER"
+ ],
+ "greatMarshRate": 0,
+ "color": 9,
+ "flip": 0,
+ "tms": [
+ 1,
+ 4,
+ 6,
+ 10,
+ 11,
+ 12,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 22,
+ 24,
+ 25,
+ 27,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 49,
+ 56,
+ 57,
+ 58,
+ 60,
+ 67,
+ 70,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "HAPPINY",
+ "hp": 100,
+ "atk": 5,
+ "def": 5,
+ "speed": 30,
+ "spatk": 15,
+ "spdef": 65,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 130,
+ "expYield": 255,
+ "hp_yield": 1,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_OVAL_STONE",
+ "ITEM_LUCKY_PUNCH"
+ ],
+ "genderRatio": 1.0,
+ "eggCycles": 40,
+ "friendship": 140,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_NATURAL_CURE",
+ "ABILITY_SERENE_GRACE"
+ ],
+ "greatMarshRate": 0,
+ "color": 9,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 11,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 22,
+ 27,
+ 29,
+ 30,
+ 32,
+ 34,
+ 35,
+ 38,
+ 42,
+ 43,
+ 44,
+ 45,
+ 56,
+ 58,
+ 60,
+ 67,
+ 70,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "CHATOT",
+ "hp": 76,
+ "atk": 65,
+ "def": 45,
+ "speed": 91,
+ "spatk": 92,
+ "spdef": 42,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 30,
+ "expYield": 107,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_METRONOME"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 35,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FLYING",
+ "EGG_GROUP_FLYING"
+ ],
+ "abilities": [
+ "ABILITY_KEEN_EYE",
+ "ABILITY_TANGLED_FEET"
+ ],
+ "greatMarshRate": 0,
+ "color": 4,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 12,
+ 17,
+ 18,
+ 21,
+ 27,
+ 32,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 51,
+ 58,
+ 78,
+ 82,
+ 83,
+ 87,
+ 88,
+ 89,
+ 90
+ ],
+ "hms": [
+ 2,
+ 5
+ ]
+ },
+ {
+ "species": "SPIRITOMB",
+ "hp": 50,
+ "atk": 92,
+ "def": 108,
+ "speed": 35,
+ "spatk": 92,
+ "spdef": 108,
+ "types": [
+ "TYPE_GHOST",
+ "TYPE_DARK"
+ ],
+ "catchRate": 100,
+ "expYield": 168,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 30,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_AMORPHOUS",
+ "EGG_GROUP_AMORPHOUS"
+ ],
+ "abilities": [
+ "ABILITY_PRESSURE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 3,
+ 4,
+ 6,
+ 10,
+ 11,
+ 12,
+ 15,
+ 17,
+ 18,
+ 21,
+ 27,
+ 29,
+ 30,
+ 32,
+ 34,
+ 39,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 49,
+ 58,
+ 61,
+ 62,
+ 63,
+ 68,
+ 70,
+ 77,
+ 78,
+ 79,
+ 82,
+ 83,
+ 85,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "GIBLE",
+ "hp": 58,
+ "atk": 70,
+ "def": 45,
+ "speed": 42,
+ "spatk": 40,
+ "spdef": 45,
+ "types": [
+ "TYPE_DRAGON",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 45,
+ "expYield": 67,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_HABAN_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 40,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_DRAGON"
+ ],
+ "abilities": [
+ "ABILITY_SAND_VEIL",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 2,
+ 5,
+ 6,
+ 10,
+ 11,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 28,
+ 32,
+ 35,
+ 37,
+ 38,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 59,
+ 65,
+ 71,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "GABITE",
+ "hp": 68,
+ "atk": 90,
+ "def": 65,
+ "speed": 82,
+ "spatk": 50,
+ "spdef": 55,
+ "types": [
+ "TYPE_DRAGON",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 45,
+ "expYield": 144,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_HABAN_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 40,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_DRAGON"
+ ],
+ "abilities": [
+ "ABILITY_SAND_VEIL",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 2,
+ 5,
+ 6,
+ 10,
+ 11,
+ 17,
+ 18,
+ 21,
+ 23,
+ 26,
+ 27,
+ 28,
+ 32,
+ 35,
+ 37,
+ 38,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 59,
+ 65,
+ 71,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "GARCHOMP",
+ "hp": 108,
+ "atk": 130,
+ "def": 95,
+ "speed": 102,
+ "spatk": 80,
+ "spdef": 85,
+ "types": [
+ "TYPE_DRAGON",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 45,
+ "expYield": 218,
+ "hp_yield": 0,
+ "atk_yield": 3,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_HABAN_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 40,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_DRAGON"
+ ],
+ "abilities": [
+ "ABILITY_SAND_VEIL",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 2,
+ 5,
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 35,
+ 37,
+ 38,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 54,
+ 56,
+ 58,
+ 59,
+ 65,
+ 68,
+ 71,
+ 75,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "MUNCHLAX",
+ "hp": 135,
+ "atk": 85,
+ "def": 40,
+ "speed": 5,
+ "spatk": 40,
+ "spdef": 85,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 50,
+ "expYield": 94,
+ "hp_yield": 1,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_LEFTOVERS",
+ "ITEM_LEFTOVERS"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 40,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_PICKUP",
+ "ABILITY_THICK_FAT"
+ ],
+ "greatMarshRate": 0,
+ "color": 4,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 22,
+ 24,
+ 25,
+ 26,
+ 27,
+ 29,
+ 30,
+ 31,
+ 32,
+ 34,
+ 35,
+ 37,
+ 38,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 56,
+ 58,
+ 67,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "RIOLU",
+ "hp": 40,
+ "atk": 70,
+ "def": 40,
+ "speed": 60,
+ "spatk": 35,
+ "spdef": 40,
+ "types": [
+ "TYPE_FIGHTING",
+ "TYPE_FIGHTING"
+ ],
+ "catchRate": 75,
+ "expYield": 72,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 25,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_STEADFAST",
+ "ABILITY_INNER_FOCUS"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 1,
+ 5,
+ 6,
+ 8,
+ 10,
+ 11,
+ 17,
+ 18,
+ 21,
+ 23,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 52,
+ 56,
+ 58,
+ 60,
+ 65,
+ 66,
+ 75,
+ 78,
+ 80,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "LUCARIO",
+ "hp": 70,
+ "atk": 110,
+ "def": 70,
+ "speed": 90,
+ "spatk": 115,
+ "spdef": 70,
+ "types": [
+ "TYPE_FIGHTING",
+ "TYPE_STEEL"
+ ],
+ "catchRate": 45,
+ "expYield": 204,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 25,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_STEADFAST",
+ "ABILITY_INNER_FOCUS"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 4,
+ 5,
+ 6,
+ 8,
+ 10,
+ 11,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 52,
+ 56,
+ 58,
+ 59,
+ 60,
+ 65,
+ 66,
+ 68,
+ 71,
+ 75,
+ 78,
+ 79,
+ 80,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90,
+ 91
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "HIPPOPOTAS",
+ "hp": 68,
+ "atk": 72,
+ "def": 78,
+ "speed": 32,
+ "spatk": 38,
+ "spdef": 42,
+ "types": [
+ "TYPE_GROUND",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 140,
+ "expYield": 95,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 30,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_SAND_STREAM",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 3,
+ 5,
+ 6,
+ 10,
+ 11,
+ 17,
+ 21,
+ 23,
+ 26,
+ 27,
+ 32,
+ 37,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "HIPPOWDON",
+ "hp": 108,
+ "atk": 112,
+ "def": 118,
+ "speed": 47,
+ "spatk": 68,
+ "spdef": 72,
+ "types": [
+ "TYPE_GROUND",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 60,
+ "expYield": 198,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 2,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 30,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_SAND_STREAM",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 3,
+ 5,
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 21,
+ 23,
+ 26,
+ 27,
+ 32,
+ 37,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 68,
+ 71,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "SKORUPI",
+ "hp": 40,
+ "atk": 50,
+ "def": 90,
+ "speed": 65,
+ "spatk": 30,
+ "spdef": 55,
+ "types": [
+ "TYPE_POISON",
+ "TYPE_BUG"
+ ],
+ "catchRate": 120,
+ "expYield": 114,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_POISON_BARB"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_WATER_3"
+ ],
+ "abilities": [
+ "ABILITY_BATTLE_ARMOR",
+ "ABILITY_SNIPER"
+ ],
+ "greatMarshRate": 120,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 12,
+ 17,
+ 18,
+ 21,
+ 23,
+ 27,
+ 28,
+ 30,
+ 31,
+ 32,
+ 36,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 54,
+ 56,
+ 58,
+ 66,
+ 70,
+ 75,
+ 78,
+ 79,
+ 81,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "DRAPION",
+ "hp": 70,
+ "atk": 90,
+ "def": 110,
+ "speed": 95,
+ "spatk": 60,
+ "spdef": 75,
+ "types": [
+ "TYPE_POISON",
+ "TYPE_DARK"
+ ],
+ "catchRate": 45,
+ "expYield": 204,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 2,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_POISON_BARB"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_WATER_3"
+ ],
+ "abilities": [
+ "ABILITY_BATTLE_ARMOR",
+ "ABILITY_SNIPER"
+ ],
+ "greatMarshRate": 60,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 10,
+ 11,
+ 12,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 26,
+ 27,
+ 28,
+ 30,
+ 31,
+ 32,
+ 36,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 54,
+ 56,
+ 58,
+ 66,
+ 68,
+ 70,
+ 75,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "CROAGUNK",
+ "hp": 48,
+ "atk": 61,
+ "def": 40,
+ "speed": 50,
+ "spatk": 61,
+ "spdef": 40,
+ "types": [
+ "TYPE_POISON",
+ "TYPE_FIGHTING"
+ ],
+ "catchRate": 140,
+ "expYield": 83,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_BLACK_SLUDGE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 10,
+ "friendship": 100,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_HUMAN_LIKE",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_ANTICIPATION",
+ "ABILITY_DRY_SKIN"
+ ],
+ "greatMarshRate": 150,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 8,
+ 10,
+ 11,
+ 12,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 28,
+ 30,
+ 31,
+ 32,
+ 36,
+ 39,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 49,
+ 52,
+ 56,
+ 58,
+ 63,
+ 66,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "TOXICROAK",
+ "hp": 83,
+ "atk": 106,
+ "def": 65,
+ "speed": 85,
+ "spatk": 86,
+ "spdef": 65,
+ "types": [
+ "TYPE_POISON",
+ "TYPE_FIGHTING"
+ ],
+ "catchRate": 75,
+ "expYield": 181,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_BLACK_SLUDGE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_HUMAN_LIKE",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_ANTICIPATION",
+ "ABILITY_DRY_SKIN"
+ ],
+ "greatMarshRate": 120,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 8,
+ 10,
+ 11,
+ 12,
+ 15,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 28,
+ 30,
+ 31,
+ 32,
+ 36,
+ 39,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 49,
+ 52,
+ 56,
+ 58,
+ 63,
+ 66,
+ 68,
+ 71,
+ 75,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "CARNIVINE",
+ "hp": 74,
+ "atk": 100,
+ "def": 72,
+ "speed": 46,
+ "spatk": 90,
+ "spdef": 72,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_GRASS"
+ ],
+ "catchRate": 200,
+ "expYield": 164,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 25,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_GRASS",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_LEVITATE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 60,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 15,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 32,
+ 36,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 53,
+ 56,
+ 58,
+ 66,
+ 68,
+ 70,
+ 75,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1
+ ]
+ },
+ {
+ "species": "FINNEON",
+ "hp": 49,
+ "atk": 49,
+ "def": 56,
+ "speed": 66,
+ "spatk": 49,
+ "spdef": 61,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 190,
+ "expYield": 90,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_RINDO_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "ERRATIC",
+ "eggGroups": [
+ "EGG_GROUP_WATER_2",
+ "EGG_GROUP_WATER_2"
+ ],
+ "abilities": [
+ "ABILITY_SWIFT_SWIM",
+ "ABILITY_STORM_DRAIN"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 20,
+ 21,
+ 27,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 55,
+ 58,
+ 62,
+ 66,
+ 70,
+ 77,
+ 78,
+ 82,
+ 83,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 3,
+ 5,
+ 7
+ ]
+ },
+ {
+ "species": "LUMINEON",
+ "hp": 69,
+ "atk": 69,
+ "def": 76,
+ "speed": 91,
+ "spatk": 69,
+ "spdef": 86,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 75,
+ "expYield": 156,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 2,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_RINDO_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "ERRATIC",
+ "eggGroups": [
+ "EGG_GROUP_WATER_2",
+ "EGG_GROUP_WATER_2"
+ ],
+ "abilities": [
+ "ABILITY_SWIFT_SWIM",
+ "ABILITY_STORM_DRAIN"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 20,
+ 21,
+ 27,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 55,
+ 58,
+ 62,
+ 66,
+ 68,
+ 70,
+ 77,
+ 78,
+ 82,
+ 83,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 3,
+ 5,
+ 7
+ ]
+ },
+ {
+ "species": "MANTYKE",
+ "hp": 45,
+ "atk": 20,
+ "def": 50,
+ "speed": 50,
+ "spatk": 60,
+ "spdef": 120,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 25,
+ "expYield": 108,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 25,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_SWIFT_SWIM",
+ "ABILITY_WATER_ABSORB"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 32,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 3,
+ 7
+ ]
+ },
+ {
+ "species": "SNOVER",
+ "hp": 60,
+ "atk": 62,
+ "def": 50,
+ "speed": 40,
+ "spatk": 62,
+ "spdef": 60,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_ICE"
+ ],
+ "catchRate": 120,
+ "expYield": 131,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NEVERMELTICE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_SNOW_WARNING",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 8,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 9,
+ 10,
+ 13,
+ 14,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 27,
+ 30,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 53,
+ 58,
+ 70,
+ 72,
+ 75,
+ 78,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "ABOMASNOW",
+ "hp": 90,
+ "atk": 92,
+ "def": 75,
+ "speed": 60,
+ "spatk": 92,
+ "spdef": 85,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_ICE"
+ ],
+ "catchRate": 60,
+ "expYield": 214,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NEVERMELTICE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_SNOW_WARNING",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 8,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 6,
+ 7,
+ 9,
+ 10,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 26,
+ 27,
+ 30,
+ 31,
+ 32,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 52,
+ 53,
+ 56,
+ 58,
+ 68,
+ 70,
+ 72,
+ 75,
+ 78,
+ 80,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "WEAVILE",
+ "hp": 70,
+ "atk": 120,
+ "def": 65,
+ "speed": 125,
+ "spatk": 45,
+ "spdef": 85,
+ "types": [
+ "TYPE_DARK",
+ "TYPE_ICE"
+ ],
+ "catchRate": 45,
+ "expYield": 199,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_GRIP_CLAW",
+ "ITEM_QUICK_CLAW"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 35,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_PRESSURE",
+ "ABILITY_PRESSURE"
+ ],
+ "greatMarshRate": 0,
+ "color": 4,
+ "flip": 0,
+ "tms": [
+ 1,
+ 4,
+ 6,
+ 7,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 27,
+ 28,
+ 30,
+ 31,
+ 32,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 49,
+ 52,
+ 54,
+ 56,
+ 58,
+ 63,
+ 65,
+ 66,
+ 68,
+ 72,
+ 75,
+ 77,
+ 78,
+ 79,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 3,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "MAGNEZONE",
+ "hp": 70,
+ "atk": 70,
+ "def": 115,
+ "speed": 60,
+ "spatk": 130,
+ "spdef": 90,
+ "types": [
+ "TYPE_ELECTRIC",
+ "TYPE_STEEL"
+ ],
+ "catchRate": 30,
+ "expYield": 211,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 3,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_METAL_COAT"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_MINERAL",
+ "EGG_GROUP_MINERAL"
+ ],
+ "abilities": [
+ "ABILITY_MAGNET_PULL",
+ "ABILITY_STURDY"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 15,
+ 16,
+ 17,
+ 18,
+ 21,
+ 24,
+ 25,
+ 27,
+ 32,
+ 33,
+ 34,
+ 42,
+ 43,
+ 44,
+ 57,
+ 58,
+ 64,
+ 67,
+ 68,
+ 70,
+ 73,
+ 74,
+ 77,
+ 82,
+ 83,
+ 87,
+ 90,
+ 91
+ ],
+ "hms": []
+ },
+ {
+ "species": "LICKILICKY",
+ "hp": 110,
+ "atk": 85,
+ "def": 95,
+ "speed": 50,
+ "spatk": 80,
+ "spdef": 95,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 30,
+ "expYield": 193,
+ "hp_yield": 3,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_LAGGING_TAIL"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_MONSTER"
+ ],
+ "abilities": [
+ "ABILITY_OWN_TEMPO",
+ "ABILITY_OBLIVIOUS"
+ ],
+ "greatMarshRate": 0,
+ "color": 9,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 30,
+ 31,
+ 32,
+ 34,
+ 35,
+ 37,
+ 38,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 52,
+ 56,
+ 58,
+ 64,
+ 68,
+ 74,
+ 75,
+ 77,
+ 78,
+ 80,
+ 82,
+ 83,
+ 85,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "RHYPERIOR",
+ "hp": 115,
+ "atk": 140,
+ "def": 130,
+ "speed": 40,
+ "spatk": 55,
+ "spdef": 55,
+ "types": [
+ "TYPE_GROUND",
+ "TYPE_ROCK"
+ ],
+ "catchRate": 30,
+ "expYield": 217,
+ "hp_yield": 0,
+ "atk_yield": 3,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_MONSTER",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_LIGHTNING_ROD",
+ "ABILITY_SOLID_ROCK"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 1,
+ 5,
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 34,
+ 35,
+ 37,
+ 38,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 52,
+ 56,
+ 58,
+ 59,
+ 65,
+ 66,
+ 68,
+ 69,
+ 71,
+ 72,
+ 75,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 84,
+ 87,
+ 90,
+ 91
+ ],
+ "hms": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "TANGROWTH",
+ "hp": 100,
+ "atk": 100,
+ "def": 125,
+ "speed": 50,
+ "spatk": 110,
+ "spdef": 50,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_GRASS"
+ ],
+ "catchRate": 30,
+ "expYield": 211,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 2,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_GRASS",
+ "EGG_GROUP_GRASS"
+ ],
+ "abilities": [
+ "ABILITY_CHLOROPHYLL",
+ "ABILITY_LEAF_GUARD"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 15,
+ 17,
+ 19,
+ 21,
+ 22,
+ 26,
+ 27,
+ 31,
+ 32,
+ 33,
+ 34,
+ 36,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 52,
+ 53,
+ 56,
+ 58,
+ 66,
+ 68,
+ 70,
+ 75,
+ 77,
+ 78,
+ 80,
+ 82,
+ 83,
+ 84,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "ELECTIVIRE",
+ "hp": 75,
+ "atk": 123,
+ "def": 67,
+ "speed": 95,
+ "spatk": 95,
+ "spdef": 85,
+ "types": [
+ "TYPE_ELECTRIC",
+ "TYPE_ELECTRIC"
+ ],
+ "catchRate": 30,
+ "expYield": 199,
+ "hp_yield": 0,
+ "atk_yield": 3,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_ELECTIRIZER",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.25,
+ "eggCycles": 25,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_HUMAN_LIKE",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_MOTOR_DRIVE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 10,
+ 12,
+ 15,
+ 16,
+ 17,
+ 18,
+ 21,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 31,
+ 32,
+ 34,
+ 35,
+ 39,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 52,
+ 56,
+ 57,
+ 58,
+ 68,
+ 70,
+ 73,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "MAGMORTAR",
+ "hp": 75,
+ "atk": 95,
+ "def": 67,
+ "speed": 83,
+ "spatk": 125,
+ "spdef": 95,
+ "types": [
+ "TYPE_FIRE",
+ "TYPE_FIRE"
+ ],
+ "catchRate": 30,
+ "expYield": 199,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 3,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_MAGMARIZER"
+ ],
+ "genderRatio": 0.25,
+ "eggCycles": 25,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_HUMAN_LIKE",
+ "EGG_GROUP_HUMAN_LIKE"
+ ],
+ "abilities": [
+ "ABILITY_FLAME_BODY",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 1,
+ "tms": [
+ 1,
+ 6,
+ 10,
+ 11,
+ 12,
+ 15,
+ 17,
+ 21,
+ 22,
+ 23,
+ 24,
+ 26,
+ 27,
+ 29,
+ 31,
+ 32,
+ 35,
+ 38,
+ 39,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 50,
+ 52,
+ 56,
+ 58,
+ 61,
+ 68,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "TOGEKISS",
+ "hp": 85,
+ "atk": 50,
+ "def": 95,
+ "speed": 80,
+ "spatk": 120,
+ "spdef": 115,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 30,
+ "expYield": 220,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 2,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 10,
+ "friendship": 70,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_FLYING",
+ "EGG_GROUP_FAIRY"
+ ],
+ "abilities": [
+ "ABILITY_HUSTLE",
+ "ABILITY_SERENE_GRACE"
+ ],
+ "greatMarshRate": 0,
+ "color": 8,
+ "flip": 1,
+ "tms": [
+ 1,
+ 3,
+ 6,
+ 10,
+ 11,
+ 15,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 22,
+ 27,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 38,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 47,
+ 51,
+ 56,
+ 58,
+ 60,
+ 62,
+ 68,
+ 70,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 88,
+ 90
+ ],
+ "hms": [
+ 2,
+ 5,
+ 6
+ ]
+ },
+ {
+ "species": "YANMEGA",
+ "hp": 86,
+ "atk": 76,
+ "def": 86,
+ "speed": 95,
+ "spatk": 116,
+ "spdef": 56,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 30,
+ "expYield": 198,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_WIDE_LENS"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_SPEED_BOOST",
+ "ABILITY_TINTED_LENS"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 19,
+ 21,
+ 22,
+ 27,
+ 29,
+ 30,
+ 32,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 51,
+ 58,
+ 62,
+ 68,
+ 70,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 5
+ ]
+ },
+ {
+ "species": "LEAFEON",
+ "hp": 65,
+ "atk": 110,
+ "def": 130,
+ "speed": 95,
+ "spatk": 60,
+ "spdef": 65,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_GRASS"
+ ],
+ "catchRate": 45,
+ "expYield": 196,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 2,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 35,
+ "friendship": 35,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_LEAF_GUARD",
+ "ABILITY_LEAF_GUARD"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 9,
+ 10,
+ 11,
+ 15,
+ 17,
+ 18,
+ 19,
+ 21,
+ 22,
+ 23,
+ 27,
+ 28,
+ 30,
+ 32,
+ 40,
+ 42,
+ 43,
+ 44,
+ 45,
+ 53,
+ 58,
+ 68,
+ 70,
+ 75,
+ 78,
+ 81,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "GLACEON",
+ "hp": 65,
+ "atk": 60,
+ "def": 110,
+ "speed": 65,
+ "spatk": 130,
+ "spdef": 95,
+ "types": [
+ "TYPE_ICE",
+ "TYPE_ICE"
+ ],
+ "catchRate": 45,
+ "expYield": 196,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 2,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.125,
+ "eggCycles": 35,
+ "friendship": 35,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_SNOW_CLOAK",
+ "ABILITY_SNOW_CLOAK"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 5,
+ 6,
+ 7,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 27,
+ 28,
+ 30,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 68,
+ 72,
+ 78,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "GLISCOR",
+ "hp": 75,
+ "atk": 95,
+ "def": 125,
+ "speed": 95,
+ "spatk": 45,
+ "spdef": 75,
+ "types": [
+ "TYPE_GROUND",
+ "TYPE_FLYING"
+ ],
+ "catchRate": 30,
+ "expYield": 192,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 2,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_HYPER_CUTTER",
+ "ABILITY_SAND_VEIL"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 12,
+ 15,
+ 17,
+ 18,
+ 21,
+ 23,
+ 26,
+ 27,
+ 28,
+ 31,
+ 32,
+ 36,
+ 37,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 47,
+ 51,
+ 54,
+ 56,
+ 58,
+ 66,
+ 68,
+ 69,
+ 71,
+ 75,
+ 76,
+ 78,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 5,
+ 6
+ ]
+ },
+ {
+ "species": "MAMOSWINE",
+ "hp": 110,
+ "atk": 130,
+ "def": 80,
+ "speed": 80,
+ "spatk": 70,
+ "spdef": 60,
+ "types": [
+ "TYPE_ICE",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 50,
+ "expYield": 207,
+ "hp_yield": 0,
+ "atk_yield": 3,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_FIELD",
+ "EGG_GROUP_FIELD"
+ ],
+ "abilities": [
+ "ABILITY_OBLIVIOUS",
+ "ABILITY_SNOW_CLOAK"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 28,
+ 32,
+ 33,
+ 37,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 68,
+ 71,
+ 72,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "PORYGON_Z",
+ "hp": 85,
+ "atk": 80,
+ "def": 70,
+ "speed": 90,
+ "spatk": 135,
+ "spdef": 75,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 30,
+ "expYield": 185,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 3,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_MINERAL",
+ "EGG_GROUP_MINERAL"
+ ],
+ "abilities": [
+ "ABILITY_ADAPTABILITY",
+ "ABILITY_DOWNLOAD"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 27,
+ 29,
+ 30,
+ 32,
+ 34,
+ 40,
+ 42,
+ 43,
+ 44,
+ 46,
+ 57,
+ 58,
+ 63,
+ 67,
+ 68,
+ 70,
+ 73,
+ 77,
+ 79,
+ 82,
+ 83,
+ 85,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "GALLADE",
+ "hp": 68,
+ "atk": 125,
+ "def": 65,
+ "speed": 80,
+ "spatk": 65,
+ "spdef": 115,
+ "types": [
+ "TYPE_PSYCHIC",
+ "TYPE_FIGHTING"
+ ],
+ "catchRate": 45,
+ "expYield": 208,
+ "hp_yield": 0,
+ "atk_yield": 3,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.0,
+ "eggCycles": 20,
+ "friendship": 35,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_AMORPHOUS",
+ "EGG_GROUP_AMORPHOUS"
+ ],
+ "abilities": [
+ "ABILITY_STEADFAST",
+ "ABILITY_STEADFAST"
+ ],
+ "greatMarshRate": 0,
+ "color": 8,
+ "flip": 0,
+ "tms": [
+ 1,
+ 4,
+ 6,
+ 8,
+ 10,
+ 11,
+ 12,
+ 15,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 24,
+ 26,
+ 27,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 49,
+ 52,
+ 54,
+ 56,
+ 57,
+ 58,
+ 60,
+ 67,
+ 68,
+ 70,
+ 71,
+ 73,
+ 75,
+ 77,
+ 78,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "PROBOPASS",
+ "hp": 60,
+ "atk": 55,
+ "def": 145,
+ "speed": 40,
+ "spatk": 75,
+ "spdef": 150,
+ "types": [
+ "TYPE_ROCK",
+ "TYPE_STEEL"
+ ],
+ "catchRate": 60,
+ "expYield": 198,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 2,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_HARD_STONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_MINERAL",
+ "EGG_GROUP_MINERAL"
+ ],
+ "abilities": [
+ "ABILITY_STURDY",
+ "ABILITY_MAGNET_PULL"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 12,
+ 15,
+ 17,
+ 21,
+ 24,
+ 25,
+ 26,
+ 27,
+ 32,
+ 34,
+ 37,
+ 39,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 58,
+ 64,
+ 68,
+ 69,
+ 71,
+ 73,
+ 76,
+ 78,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90,
+ 91
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "DUSKNOIR",
+ "hp": 45,
+ "atk": 100,
+ "def": 135,
+ "speed": 45,
+ "spatk": 65,
+ "spdef": 135,
+ "types": [
+ "TYPE_GHOST",
+ "TYPE_GHOST"
+ ],
+ "catchRate": 45,
+ "expYield": 210,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 2,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_KASIB_BERRY"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 25,
+ "friendship": 35,
+ "growthRate": "FAST",
+ "eggGroups": [
+ "EGG_GROUP_AMORPHOUS",
+ "EGG_GROUP_AMORPHOUS"
+ ],
+ "abilities": [
+ "ABILITY_PRESSURE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 4,
+ "flip": 0,
+ "tms": [
+ 1,
+ 4,
+ 6,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 26,
+ 27,
+ 29,
+ 30,
+ 31,
+ 32,
+ 39,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 49,
+ 52,
+ 56,
+ 57,
+ 58,
+ 61,
+ 63,
+ 66,
+ 68,
+ 70,
+ 77,
+ 78,
+ 79,
+ 80,
+ 82,
+ 83,
+ 85,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": [
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "FROSLASS",
+ "hp": 70,
+ "atk": 80,
+ "def": 70,
+ "speed": 110,
+ "spatk": 80,
+ "spdef": 70,
+ "types": [
+ "TYPE_ICE",
+ "TYPE_GHOST"
+ ],
+ "catchRate": 75,
+ "expYield": 187,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 2,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_BABIRI_BERRY"
+ ],
+ "genderRatio": 1.0,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_FAIRY",
+ "EGG_GROUP_MINERAL"
+ ],
+ "abilities": [
+ "ABILITY_SNOW_CLOAK",
+ "ABILITY_SNOW_CLOAK"
+ ],
+ "greatMarshRate": 0,
+ "color": 8,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 24,
+ 25,
+ 27,
+ 29,
+ 30,
+ 32,
+ 34,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 49,
+ 56,
+ 58,
+ 63,
+ 66,
+ 68,
+ 70,
+ 72,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "ROTOM",
+ "hp": 50,
+ "atk": 50,
+ "def": 77,
+ "speed": 91,
+ "spatk": 95,
+ "spdef": 77,
+ "types": [
+ "TYPE_ELECTRIC",
+ "TYPE_GHOST"
+ ],
+ "catchRate": 45,
+ "expYield": 132,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 20,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_AMORPHOUS",
+ "EGG_GROUP_AMORPHOUS"
+ ],
+ "abilities": [
+ "ABILITY_LEVITATE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 16,
+ 17,
+ 18,
+ 21,
+ 24,
+ 25,
+ 27,
+ 30,
+ 32,
+ 33,
+ 34,
+ 42,
+ 43,
+ 44,
+ 46,
+ 49,
+ 57,
+ 58,
+ 61,
+ 70,
+ 73,
+ 77,
+ 79,
+ 82,
+ 83,
+ 85,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "UXIE",
+ "hp": 75,
+ "atk": 75,
+ "def": 130,
+ "speed": 95,
+ "spatk": 75,
+ "spdef": 130,
+ "types": [
+ "TYPE_PSYCHIC",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 3,
+ "expYield": 210,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 2,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 80,
+ "friendship": 140,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_LEVITATE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 3,
+ 4,
+ 6,
+ 10,
+ 11,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 27,
+ 29,
+ 30,
+ 32,
+ 33,
+ 34,
+ 37,
+ 42,
+ 43,
+ 44,
+ 48,
+ 53,
+ 56,
+ 57,
+ 58,
+ 67,
+ 68,
+ 70,
+ 73,
+ 76,
+ 77,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 89,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "MESPRIT",
+ "hp": 80,
+ "atk": 105,
+ "def": 105,
+ "speed": 80,
+ "spatk": 105,
+ "spdef": 105,
+ "types": [
+ "TYPE_PSYCHIC",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 3,
+ "expYield": 210,
+ "hp_yield": 0,
+ "atk_yield": 1,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 80,
+ "friendship": 140,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_LEVITATE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 9,
+ "flip": 0,
+ "tms": [
+ 3,
+ 4,
+ 6,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 29,
+ 30,
+ 32,
+ 33,
+ 34,
+ 37,
+ 42,
+ 43,
+ 44,
+ 48,
+ 53,
+ 56,
+ 57,
+ 58,
+ 67,
+ 68,
+ 70,
+ 73,
+ 76,
+ 77,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 89,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "AZELF",
+ "hp": 75,
+ "atk": 125,
+ "def": 70,
+ "speed": 115,
+ "spatk": 125,
+ "spdef": 70,
+ "types": [
+ "TYPE_PSYCHIC",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 3,
+ "expYield": 210,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 80,
+ "friendship": 140,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_LEVITATE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 4,
+ 6,
+ 10,
+ 11,
+ 12,
+ 15,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 23,
+ 24,
+ 25,
+ 27,
+ 29,
+ 30,
+ 32,
+ 33,
+ 34,
+ 35,
+ 37,
+ 38,
+ 41,
+ 42,
+ 43,
+ 44,
+ 48,
+ 53,
+ 56,
+ 57,
+ 58,
+ 64,
+ 66,
+ 67,
+ 68,
+ 70,
+ 73,
+ 76,
+ 77,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 89,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "DIALGA",
+ "hp": 100,
+ "atk": 120,
+ "def": 120,
+ "speed": 90,
+ "spatk": 150,
+ "spdef": 100,
+ "types": [
+ "TYPE_STEEL",
+ "TYPE_DRAGON"
+ ],
+ "catchRate": 30,
+ "expYield": 220,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 3,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 120,
+ "friendship": 0,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_PRESSURE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 8,
+ "flip": 0,
+ "tms": [
+ 2,
+ 5,
+ 6,
+ 8,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 20,
+ 21,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 31,
+ 32,
+ 34,
+ 35,
+ 37,
+ 38,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 50,
+ 58,
+ 59,
+ 65,
+ 68,
+ 70,
+ 71,
+ 73,
+ 76,
+ 77,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90,
+ 91,
+ 92
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "PALKIA",
+ "hp": 90,
+ "atk": 120,
+ "def": 100,
+ "speed": 100,
+ "spatk": 150,
+ "spdef": 120,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_DRAGON"
+ ],
+ "catchRate": 30,
+ "expYield": 220,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 3,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 120,
+ "friendship": 0,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_PRESSURE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 6,
+ "flip": 0,
+ "tms": [
+ 1,
+ 2,
+ 3,
+ 5,
+ 6,
+ 7,
+ 8,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 20,
+ 21,
+ 24,
+ 25,
+ 26,
+ 27,
+ 31,
+ 32,
+ 34,
+ 35,
+ 37,
+ 38,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 52,
+ 55,
+ 56,
+ 58,
+ 59,
+ 65,
+ 68,
+ 71,
+ 72,
+ 73,
+ 77,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": [
+ 1,
+ 3,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "HEATRAN",
+ "hp": 91,
+ "atk": 90,
+ "def": 106,
+ "speed": 77,
+ "spatk": 130,
+ "spdef": 106,
+ "types": [
+ "TYPE_FIRE",
+ "TYPE_STEEL"
+ ],
+ "catchRate": 3,
+ "expYield": 215,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 3,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 0.5,
+ "eggCycles": 10,
+ "friendship": 100,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_FLASH_FIRE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 5,
+ "flip": 0,
+ "tms": [
+ 5,
+ 6,
+ 10,
+ 11,
+ 12,
+ 15,
+ 17,
+ 21,
+ 22,
+ 26,
+ 27,
+ 28,
+ 32,
+ 35,
+ 38,
+ 39,
+ 41,
+ 42,
+ 43,
+ 44,
+ 45,
+ 50,
+ 58,
+ 59,
+ 61,
+ 64,
+ 66,
+ 68,
+ 71,
+ 76,
+ 78,
+ 79,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90,
+ 91
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "REGIGIGAS",
+ "hp": 110,
+ "atk": 160,
+ "def": 110,
+ "speed": 100,
+ "spatk": 80,
+ "spdef": 110,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 3,
+ "expYield": 220,
+ "hp_yield": 0,
+ "atk_yield": 3,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 120,
+ "friendship": 0,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_SLOW_START",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 8,
+ "flip": 0,
+ "tms": [
+ 1,
+ 6,
+ 10,
+ 11,
+ 15,
+ 18,
+ 20,
+ 21,
+ 24,
+ 25,
+ 26,
+ 27,
+ 31,
+ 32,
+ 34,
+ 39,
+ 40,
+ 42,
+ 43,
+ 52,
+ 56,
+ 58,
+ 60,
+ 68,
+ 69,
+ 71,
+ 72,
+ 73,
+ 77,
+ 80,
+ 82,
+ 83,
+ 87,
+ 90
+ ],
+ "hms": [
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "GIRATINA",
+ "hp": 150,
+ "atk": 100,
+ "def": 120,
+ "speed": 90,
+ "spatk": 100,
+ "spdef": 120,
+ "types": [
+ "TYPE_GHOST",
+ "TYPE_DRAGON"
+ ],
+ "catchRate": 3,
+ "expYield": 220,
+ "hp_yield": 3,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 120,
+ "friendship": 0,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_PRESSURE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 4,
+ "flip": 0,
+ "tms": [
+ 2,
+ 4,
+ 5,
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 18,
+ 20,
+ 21,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 29,
+ 30,
+ 32,
+ 34,
+ 40,
+ 42,
+ 43,
+ 44,
+ 47,
+ 53,
+ 57,
+ 58,
+ 59,
+ 61,
+ 62,
+ 65,
+ 66,
+ 68,
+ 71,
+ 73,
+ 77,
+ 79,
+ 82,
+ 83,
+ 85,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 2,
+ 4,
+ 5,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "CRESSELIA",
+ "hp": 120,
+ "atk": 70,
+ "def": 120,
+ "speed": 85,
+ "spatk": 75,
+ "spdef": 130,
+ "types": [
+ "TYPE_PSYCHIC",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 3,
+ "expYield": 210,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 3,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 1.0,
+ "eggCycles": 120,
+ "friendship": 100,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_LEVITATE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 2,
+ "flip": 0,
+ "tms": [
+ 4,
+ 6,
+ 10,
+ 11,
+ 13,
+ 15,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 22,
+ 27,
+ 29,
+ 30,
+ 32,
+ 33,
+ 42,
+ 43,
+ 44,
+ 45,
+ 48,
+ 53,
+ 57,
+ 58,
+ 67,
+ 68,
+ 70,
+ 73,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 86,
+ 87,
+ 90,
+ 92
+ ],
+ "hms": []
+ },
+ {
+ "species": "PHIONE",
+ "hp": 80,
+ "atk": 80,
+ "def": 80,
+ "speed": 80,
+ "spatk": 80,
+ "spdef": 80,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 30,
+ "expYield": 165,
+ "hp_yield": 1,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 40,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_FAIRY"
+ ],
+ "abilities": [
+ "ABILITY_HYDRATION",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 17,
+ 18,
+ 20,
+ 21,
+ 27,
+ 32,
+ 42,
+ 43,
+ 44,
+ 55,
+ 56,
+ 58,
+ 77,
+ 82,
+ 83,
+ 86,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 3,
+ 7
+ ]
+ },
+ {
+ "species": "MANAPHY",
+ "hp": 100,
+ "atk": 100,
+ "def": 100,
+ "speed": 100,
+ "spatk": 100,
+ "spdef": 100,
+ "types": [
+ "TYPE_WATER",
+ "TYPE_WATER"
+ ],
+ "catchRate": 3,
+ "expYield": 215,
+ "hp_yield": 3,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 10,
+ "friendship": 70,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_WATER_1",
+ "EGG_GROUP_FAIRY"
+ ],
+ "abilities": [
+ "ABILITY_HYDRATION",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 1,
+ "flip": 0,
+ "tms": [
+ 3,
+ 4,
+ 6,
+ 7,
+ 10,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 27,
+ 29,
+ 30,
+ 32,
+ 33,
+ 42,
+ 43,
+ 44,
+ 48,
+ 53,
+ 55,
+ 56,
+ 58,
+ 68,
+ 70,
+ 77,
+ 82,
+ 83,
+ 86,
+ 87,
+ 89,
+ 90
+ ],
+ "hms": [
+ 3,
+ 7
+ ]
+ },
+ {
+ "species": "DARKRAI",
+ "hp": 70,
+ "atk": 90,
+ "def": 90,
+ "speed": 125,
+ "spatk": 135,
+ "spdef": 90,
+ "types": [
+ "TYPE_DARK",
+ "TYPE_DARK"
+ ],
+ "catchRate": 3,
+ "expYield": 210,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 1,
+ "spatk_yield": 2,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 120,
+ "friendship": 0,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_BAD_DREAMS",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 4,
+ "flip": 0,
+ "tms": [
+ 1,
+ 4,
+ 6,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 17,
+ 18,
+ 21,
+ 24,
+ 25,
+ 27,
+ 29,
+ 30,
+ 31,
+ 32,
+ 34,
+ 36,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 46,
+ 49,
+ 52,
+ 56,
+ 57,
+ 58,
+ 60,
+ 61,
+ 63,
+ 65,
+ 66,
+ 68,
+ 70,
+ 73,
+ 75,
+ 77,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 87,
+ 90
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6,
+ 8
+ ]
+ },
+ {
+ "species": "SHAYMIN",
+ "hp": 100,
+ "atk": 100,
+ "def": 100,
+ "speed": 100,
+ "spatk": 100,
+ "spdef": 100,
+ "types": [
+ "TYPE_GRASS",
+ "TYPE_GRASS"
+ ],
+ "catchRate": 45,
+ "expYield": 64,
+ "hp_yield": 3,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_LUM_BERRY",
+ "ITEM_LUM_BERRY"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 120,
+ "friendship": 100,
+ "growthRate": "MEDIUM_SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_NATURAL_CURE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 3,
+ "flip": 0,
+ "tms": [
+ 6,
+ 9,
+ 10,
+ 11,
+ 15,
+ 17,
+ 19,
+ 20,
+ 21,
+ 22,
+ 27,
+ 29,
+ 32,
+ 42,
+ 43,
+ 44,
+ 53,
+ 58,
+ 68,
+ 70,
+ 75,
+ 77,
+ 82,
+ 83,
+ 86,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "ARCEUS",
+ "hp": 120,
+ "atk": 120,
+ "def": 120,
+ "speed": 120,
+ "spatk": 120,
+ "spdef": 120,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 3,
+ "expYield": 255,
+ "hp_yield": 3,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 120,
+ "friendship": 0,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_MULTITYPE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 9,
+ 10,
+ 11,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 35,
+ 36,
+ 37,
+ 38,
+ 39,
+ 40,
+ 42,
+ 43,
+ 44,
+ 50,
+ 52,
+ 53,
+ 55,
+ 57,
+ 58,
+ 59,
+ 61,
+ 62,
+ 65,
+ 66,
+ 67,
+ 68,
+ 70,
+ 71,
+ 72,
+ 73,
+ 75,
+ 76,
+ 77,
+ 79,
+ 80,
+ 81,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 90,
+ 91,
+ 92
+ ],
+ "hms": [
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8
+ ]
+ },
+ {
+ "species": "EGG",
+ "hp": 10,
+ "atk": 10,
+ "def": 10,
+ "speed": 10,
+ "spatk": 10,
+ "spdef": 10,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 3,
+ "expYield": 255,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 120,
+ "friendship": 0,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_NONE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 10,
+ "flip": 0,
+ "tms": [],
+ "hms": []
+ },
+ {
+ "species": "MANAPHY_EGG",
+ "hp": 10,
+ "atk": 10,
+ "def": 10,
+ "speed": 10,
+ "spatk": 10,
+ "spdef": 10,
+ "types": [
+ "TYPE_NORMAL",
+ "TYPE_NORMAL"
+ ],
+ "catchRate": 3,
+ "expYield": 255,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 120,
+ "friendship": 0,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_NONE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 10,
+ "flip": 0,
+ "tms": [],
+ "hms": []
+ },
+ {
+ "species": "DEOXYS_ATK",
+ "hp": 50,
+ "atk": 180,
+ "def": 20,
+ "speed": 150,
+ "spatk": 180,
+ "spdef": 20,
+ "types": [
+ "TYPE_PSYCHIC",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 3,
+ "expYield": 215,
+ "hp_yield": 0,
+ "atk_yield": 2,
+ "def_yield": 0,
+ "speed_yield": 0,
+ "spatk_yield": 1,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 120,
+ "friendship": 0,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_PRESSURE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 10,
+ 11,
+ 12,
+ 13,
+ 15,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 22,
+ 24,
+ 25,
+ 27,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 48,
+ 49,
+ 52,
+ 53,
+ 56,
+ 57,
+ 58,
+ 60,
+ 67,
+ 68,
+ 70,
+ 72,
+ 73,
+ 76,
+ 77,
+ 80,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 90,
+ 91,
+ 92
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "DEOXYS_DEF",
+ "hp": 50,
+ "atk": 70,
+ "def": 160,
+ "speed": 90,
+ "spatk": 70,
+ "spdef": 160,
+ "types": [
+ "TYPE_PSYCHIC",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 3,
+ "expYield": 215,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 2,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 120,
+ "friendship": 0,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_PRESSURE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 10,
+ 11,
+ 12,
+ 13,
+ 15,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 22,
+ 24,
+ 25,
+ 27,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 48,
+ 49,
+ 52,
+ 53,
+ 56,
+ 57,
+ 58,
+ 60,
+ 67,
+ 68,
+ 70,
+ 72,
+ 73,
+ 76,
+ 77,
+ 80,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 90,
+ 91,
+ 92
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "DEOXYS_SPD",
+ "hp": 50,
+ "atk": 95,
+ "def": 90,
+ "speed": 180,
+ "spatk": 95,
+ "spdef": 90,
+ "types": [
+ "TYPE_PSYCHIC",
+ "TYPE_PSYCHIC"
+ ],
+ "catchRate": 3,
+ "expYield": 215,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 0,
+ "speed_yield": 3,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_NONE"
+ ],
+ "genderRatio": 2,
+ "eggCycles": 120,
+ "friendship": 0,
+ "growthRate": "SLOW",
+ "eggGroups": [
+ "EGG_GROUP_UNDISCOVERED",
+ "EGG_GROUP_UNDISCOVERED"
+ ],
+ "abilities": [
+ "ABILITY_PRESSURE",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 0,
+ "flip": 0,
+ "tms": [
+ 1,
+ 3,
+ 4,
+ 6,
+ 10,
+ 11,
+ 12,
+ 13,
+ 15,
+ 16,
+ 17,
+ 18,
+ 20,
+ 21,
+ 22,
+ 24,
+ 25,
+ 27,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33,
+ 34,
+ 39,
+ 40,
+ 41,
+ 42,
+ 43,
+ 44,
+ 48,
+ 49,
+ 52,
+ 53,
+ 56,
+ 57,
+ 58,
+ 60,
+ 67,
+ 68,
+ 70,
+ 72,
+ 73,
+ 76,
+ 77,
+ 80,
+ 82,
+ 83,
+ 84,
+ 85,
+ 86,
+ 87,
+ 90,
+ 91,
+ 92
+ ],
+ "hms": [
+ 1,
+ 4,
+ 6
+ ]
+ },
+ {
+ "species": "WORMADAM_SANDY",
+ "hp": 60,
+ "atk": 79,
+ "def": 105,
+ "speed": 36,
+ "spatk": 59,
+ "spdef": 85,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_GROUND"
+ ],
+ "catchRate": 45,
+ "expYield": 159,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 2,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 0,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_SILVERPOWDER"
+ ],
+ "genderRatio": 1.0,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_ANTICIPATION",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 18,
+ 20,
+ 21,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 32,
+ 37,
+ 39,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 58,
+ 68,
+ 70,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 87,
+ 90
+ ],
+ "hms": []
+ },
+ {
+ "species": "WORMADAM_TRASH",
+ "hp": 60,
+ "atk": 69,
+ "def": 95,
+ "speed": 36,
+ "spatk": 69,
+ "spdef": 95,
+ "types": [
+ "TYPE_BUG",
+ "TYPE_STEEL"
+ ],
+ "catchRate": 45,
+ "expYield": 159,
+ "hp_yield": 0,
+ "atk_yield": 0,
+ "def_yield": 1,
+ "speed_yield": 0,
+ "spatk_yield": 0,
+ "spdef_yield": 1,
+ "items": [
+ "ITEM_NONE",
+ "ITEM_SILVERPOWDER"
+ ],
+ "genderRatio": 1.0,
+ "eggCycles": 15,
+ "friendship": 70,
+ "growthRate": "MEDIUM_FAST",
+ "eggGroups": [
+ "EGG_GROUP_BUG",
+ "EGG_GROUP_BUG"
+ ],
+ "abilities": [
+ "ABILITY_ANTICIPATION",
+ "ABILITY_NONE"
+ ],
+ "greatMarshRate": 0,
+ "color": 7,
+ "flip": 0,
+ "tms": [
+ 6,
+ 10,
+ 11,
+ 15,
+ 17,
+ 18,
+ 20,
+ 21,
+ 27,
+ 29,
+ 30,
+ 32,
+ 42,
+ 43,
+ 44,
+ 45,
+ 46,
+ 48,
+ 58,
+ 68,
+ 70,
+ 74,
+ 76,
+ 77,
+ 78,
+ 82,
+ 83,
+ 85,
+ 87,
+ 90,
+ 91
+ ],
+ "hms": []
+ }
+ ]
+} \ No newline at end of file
diff --git a/files/poketool/personal/personal.json.txt b/files/poketool/personal/personal.json.txt
new file mode 100644
index 00000000..8a4d7d07
--- /dev/null
+++ b/files/poketool/personal/personal.json.txt
@@ -0,0 +1,57 @@
+{{ doNotModifyHeader }}
+
+#include "global.h"
+#include "pokemon.h"
+#include "constants/pokemon.h"
+#include "constants/moves.h"
+#include "constants/abilities.h"
+#include "constants/items.h"
+
+u32 __size = sizeof(struct BaseStats);
+
+const struct BaseStats __data[] = {
+## for mon in baseStats
+ // {{ mon.species }}
+ {
+ // Stats
+ {{ mon.hp }},
+ {{ mon.atk }},
+ {{ mon.def }},
+ {{ mon.speed }},
+ {{ mon.spatk }},
+ {{ mon.spdef }},
+ // Types
+ { {{ mon.types.0 }}, {{ mon.types.1 }} },
+ {{ mon.catchRate }}, // Catch rate
+ {{ mon.expYield }}, // Experience yield
+ // EV yield
+ {{ mon.hp_yield }},
+ {{ mon.atk_yield }},
+ {{ mon.def_yield }},
+ {{ mon.speed_yield }},
+ {{ mon.spatk_yield }},
+ {{ mon.spdef_yield }},
+ 0, // bit padding
+ // Items
+ {{ mon.items.0 }},
+ {{ mon.items.1 }},
+ GENDER_RATIO({{ mon.genderRatio }}), // Gender ratio
+ {{ mon.eggCycles }}, // Egg cycles
+ {{ mon.friendship }}, // Friendship
+ GROWTH_{{ mon.growthRate }}, // Growth rate
+ // Egg groups
+ { {{ mon.eggGroups.0 }}, {{ mon.eggGroups.1 }} },
+ // Abilities
+ { {{ mon.abilities.0 }}, {{ mon.abilities.1 }} },
+ {{ mon.greatMarshRate }}, // Great Marsh flee rate?
+ {{ mon.color }}, // Color
+ {{ mon.flip }}, // Flip
+ {0, 0}, // Padding
+ // TM/HM
+ {{ setVarInt("tms", 0) }}{% for i in range(32) %}{% if add(i, 1) in mon.tms %}{{ setBit("tms", i) }}{% endif %}{%endfor %}{{ getVarHex("tms") }},
+ {{ setVarInt("tms", 0) }}{% for i in range(32) %}{% if add(i, 33) in mon.tms %}{{ setBit("tms", i) }}{% endif %}{%endfor %}{{ getVarHex("tms") }},
+ {{ setVarInt("tms", 0) }}{% for i in range(28) %}{% if add(i, 65) in mon.tms %}{{ setBit("tms", i) }}{% endif %}{%endfor %}{% for i in range(4) %}{% if add(i, 1) in mon.hms %}{{ setBit("tms", add(i, 28)) }}{% endif %}{%endfor %}{{ getVarHex("tms") }},
+ {{ setVarInt("tms", 0) }}{% for i in range(4) %}{% if add(i, 5) in mon.hms %}{{ setBit("tms", i) }}{% endif %}{%endfor %}{{ getVarHex("tms") }},
+ },
+## endfor
+};
diff --git a/files/poketool/personal/personal/narc_0000.bin b/files/poketool/personal/personal/narc_0000.bin
deleted file mode 100644
index 8f69e9e9..00000000
--- a/files/poketool/personal/personal/narc_0000.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0001.bin b/files/poketool/personal/personal/narc_0001.bin
deleted file mode 100644
index 94c6c058..00000000
--- a/files/poketool/personal/personal/narc_0001.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0002.bin b/files/poketool/personal/personal/narc_0002.bin
deleted file mode 100644
index c92cfe19..00000000
--- a/files/poketool/personal/personal/narc_0002.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0003.bin b/files/poketool/personal/personal/narc_0003.bin
deleted file mode 100644
index e0a66ccf..00000000
--- a/files/poketool/personal/personal/narc_0003.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0004.bin b/files/poketool/personal/personal/narc_0004.bin
deleted file mode 100644
index 8edaf519..00000000
--- a/files/poketool/personal/personal/narc_0004.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0005.bin b/files/poketool/personal/personal/narc_0005.bin
deleted file mode 100644
index 52409e4b..00000000
--- a/files/poketool/personal/personal/narc_0005.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0006.bin b/files/poketool/personal/personal/narc_0006.bin
deleted file mode 100644
index 673416d5..00000000
--- a/files/poketool/personal/personal/narc_0006.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0007.bin b/files/poketool/personal/personal/narc_0007.bin
deleted file mode 100644
index 2b6a6ba2..00000000
--- a/files/poketool/personal/personal/narc_0007.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0008.bin b/files/poketool/personal/personal/narc_0008.bin
deleted file mode 100644
index 4c5b84c7..00000000
--- a/files/poketool/personal/personal/narc_0008.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0009.bin b/files/poketool/personal/personal/narc_0009.bin
deleted file mode 100644
index 2691e018..00000000
--- a/files/poketool/personal/personal/narc_0009.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0010.bin b/files/poketool/personal/personal/narc_0010.bin
deleted file mode 100644
index 37497a26..00000000
--- a/files/poketool/personal/personal/narc_0010.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0011.bin b/files/poketool/personal/personal/narc_0011.bin
deleted file mode 100644
index a424fd34..00000000
--- a/files/poketool/personal/personal/narc_0011.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0012.bin b/files/poketool/personal/personal/narc_0012.bin
deleted file mode 100644
index cb9bd556..00000000
--- a/files/poketool/personal/personal/narc_0012.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0013.bin b/files/poketool/personal/personal/narc_0013.bin
deleted file mode 100644
index 51030efc..00000000
--- a/files/poketool/personal/personal/narc_0013.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0014.bin b/files/poketool/personal/personal/narc_0014.bin
deleted file mode 100644
index 02402430..00000000
--- a/files/poketool/personal/personal/narc_0014.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0015.bin b/files/poketool/personal/personal/narc_0015.bin
deleted file mode 100644
index 03169a7e..00000000
--- a/files/poketool/personal/personal/narc_0015.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0016.bin b/files/poketool/personal/personal/narc_0016.bin
deleted file mode 100644
index c9a23863..00000000
--- a/files/poketool/personal/personal/narc_0016.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0017.bin b/files/poketool/personal/personal/narc_0017.bin
deleted file mode 100644
index b22aa5e3..00000000
--- a/files/poketool/personal/personal/narc_0017.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0018.bin b/files/poketool/personal/personal/narc_0018.bin
deleted file mode 100644
index 2505e842..00000000
--- a/files/poketool/personal/personal/narc_0018.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0019.bin b/files/poketool/personal/personal/narc_0019.bin
deleted file mode 100644
index 57f15b1d..00000000
--- a/files/poketool/personal/personal/narc_0019.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0020.bin b/files/poketool/personal/personal/narc_0020.bin
deleted file mode 100644
index e93202e7..00000000
--- a/files/poketool/personal/personal/narc_0020.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0021.bin b/files/poketool/personal/personal/narc_0021.bin
deleted file mode 100644
index 28b55a7b..00000000
--- a/files/poketool/personal/personal/narc_0021.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0022.bin b/files/poketool/personal/personal/narc_0022.bin
deleted file mode 100644
index 9b67a9c3..00000000
--- a/files/poketool/personal/personal/narc_0022.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0023.bin b/files/poketool/personal/personal/narc_0023.bin
deleted file mode 100644
index 28f2f18e..00000000
--- a/files/poketool/personal/personal/narc_0023.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0024.bin b/files/poketool/personal/personal/narc_0024.bin
deleted file mode 100644
index 6c23b38c..00000000
--- a/files/poketool/personal/personal/narc_0024.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0025.bin b/files/poketool/personal/personal/narc_0025.bin
deleted file mode 100644
index c00ebea6..00000000
--- a/files/poketool/personal/personal/narc_0025.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0026.bin b/files/poketool/personal/personal/narc_0026.bin
deleted file mode 100644
index ad4a98d0..00000000
--- a/files/poketool/personal/personal/narc_0026.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0027.bin b/files/poketool/personal/personal/narc_0027.bin
deleted file mode 100644
index c38a7cd0..00000000
--- a/files/poketool/personal/personal/narc_0027.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0028.bin b/files/poketool/personal/personal/narc_0028.bin
deleted file mode 100644
index d515fb75..00000000
--- a/files/poketool/personal/personal/narc_0028.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0029.bin b/files/poketool/personal/personal/narc_0029.bin
deleted file mode 100644
index e22ece94..00000000
--- a/files/poketool/personal/personal/narc_0029.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0030.bin b/files/poketool/personal/personal/narc_0030.bin
deleted file mode 100644
index a96fdeb9..00000000
--- a/files/poketool/personal/personal/narc_0030.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0031.bin b/files/poketool/personal/personal/narc_0031.bin
deleted file mode 100644
index a4a48cbe..00000000
--- a/files/poketool/personal/personal/narc_0031.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0032.bin b/files/poketool/personal/personal/narc_0032.bin
deleted file mode 100644
index 43aafa96..00000000
--- a/files/poketool/personal/personal/narc_0032.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0033.bin b/files/poketool/personal/personal/narc_0033.bin
deleted file mode 100644
index 0fb5166c..00000000
--- a/files/poketool/personal/personal/narc_0033.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0034.bin b/files/poketool/personal/personal/narc_0034.bin
deleted file mode 100644
index 5fa783a5..00000000
--- a/files/poketool/personal/personal/narc_0034.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0035.bin b/files/poketool/personal/personal/narc_0035.bin
deleted file mode 100644
index 7152d291..00000000
--- a/files/poketool/personal/personal/narc_0035.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0036.bin b/files/poketool/personal/personal/narc_0036.bin
deleted file mode 100644
index 4e1181ce..00000000
--- a/files/poketool/personal/personal/narc_0036.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0037.bin b/files/poketool/personal/personal/narc_0037.bin
deleted file mode 100644
index 2403e499..00000000
--- a/files/poketool/personal/personal/narc_0037.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0038.bin b/files/poketool/personal/personal/narc_0038.bin
deleted file mode 100644
index 1106e313..00000000
--- a/files/poketool/personal/personal/narc_0038.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0039.bin b/files/poketool/personal/personal/narc_0039.bin
deleted file mode 100644
index 5be09812..00000000
--- a/files/poketool/personal/personal/narc_0039.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0040.bin b/files/poketool/personal/personal/narc_0040.bin
deleted file mode 100644
index 0a90b88a..00000000
--- a/files/poketool/personal/personal/narc_0040.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0041.bin b/files/poketool/personal/personal/narc_0041.bin
deleted file mode 100644
index bbb7c9f4..00000000
--- a/files/poketool/personal/personal/narc_0041.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0042.bin b/files/poketool/personal/personal/narc_0042.bin
deleted file mode 100644
index 47020a33..00000000
--- a/files/poketool/personal/personal/narc_0042.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0043.bin b/files/poketool/personal/personal/narc_0043.bin
deleted file mode 100644
index 985c37bc..00000000
--- a/files/poketool/personal/personal/narc_0043.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0044.bin b/files/poketool/personal/personal/narc_0044.bin
deleted file mode 100644
index 3c37a1c7..00000000
--- a/files/poketool/personal/personal/narc_0044.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0045.bin b/files/poketool/personal/personal/narc_0045.bin
deleted file mode 100644
index 1e64f6f4..00000000
--- a/files/poketool/personal/personal/narc_0045.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0046.bin b/files/poketool/personal/personal/narc_0046.bin
deleted file mode 100644
index fb6b18c7..00000000
--- a/files/poketool/personal/personal/narc_0046.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0047.bin b/files/poketool/personal/personal/narc_0047.bin
deleted file mode 100644
index 7fb3ae64..00000000
--- a/files/poketool/personal/personal/narc_0047.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0048.bin b/files/poketool/personal/personal/narc_0048.bin
deleted file mode 100644
index 1b1d83ca..00000000
--- a/files/poketool/personal/personal/narc_0048.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0049.bin b/files/poketool/personal/personal/narc_0049.bin
deleted file mode 100644
index 3e43a23c..00000000
--- a/files/poketool/personal/personal/narc_0049.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0050.bin b/files/poketool/personal/personal/narc_0050.bin
deleted file mode 100644
index 84fabb0f..00000000
--- a/files/poketool/personal/personal/narc_0050.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0051.bin b/files/poketool/personal/personal/narc_0051.bin
deleted file mode 100644
index c1e6b05b..00000000
--- a/files/poketool/personal/personal/narc_0051.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0052.bin b/files/poketool/personal/personal/narc_0052.bin
deleted file mode 100644
index 355d6bf8..00000000
--- a/files/poketool/personal/personal/narc_0052.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0053.bin b/files/poketool/personal/personal/narc_0053.bin
deleted file mode 100644
index d87003f2..00000000
--- a/files/poketool/personal/personal/narc_0053.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0054.bin b/files/poketool/personal/personal/narc_0054.bin
deleted file mode 100644
index 6895812e..00000000
--- a/files/poketool/personal/personal/narc_0054.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0055.bin b/files/poketool/personal/personal/narc_0055.bin
deleted file mode 100644
index 5fe6acf9..00000000
--- a/files/poketool/personal/personal/narc_0055.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0056.bin b/files/poketool/personal/personal/narc_0056.bin
deleted file mode 100644
index 8a9b8c39..00000000
--- a/files/poketool/personal/personal/narc_0056.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0057.bin b/files/poketool/personal/personal/narc_0057.bin
deleted file mode 100644
index 6733afd1..00000000
--- a/files/poketool/personal/personal/narc_0057.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0058.bin b/files/poketool/personal/personal/narc_0058.bin
deleted file mode 100644
index c0038452..00000000
--- a/files/poketool/personal/personal/narc_0058.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0059.bin b/files/poketool/personal/personal/narc_0059.bin
deleted file mode 100644
index 49786bf0..00000000
--- a/files/poketool/personal/personal/narc_0059.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0060.bin b/files/poketool/personal/personal/narc_0060.bin
deleted file mode 100644
index ad066e78..00000000
--- a/files/poketool/personal/personal/narc_0060.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0061.bin b/files/poketool/personal/personal/narc_0061.bin
deleted file mode 100644
index 0ccc490d..00000000
--- a/files/poketool/personal/personal/narc_0061.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0062.bin b/files/poketool/personal/personal/narc_0062.bin
deleted file mode 100644
index 22dca8fa..00000000
--- a/files/poketool/personal/personal/narc_0062.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0063.bin b/files/poketool/personal/personal/narc_0063.bin
deleted file mode 100644
index 0b979494..00000000
--- a/files/poketool/personal/personal/narc_0063.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0064.bin b/files/poketool/personal/personal/narc_0064.bin
deleted file mode 100644
index c4a99839..00000000
--- a/files/poketool/personal/personal/narc_0064.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0065.bin b/files/poketool/personal/personal/narc_0065.bin
deleted file mode 100644
index dc86d077..00000000
--- a/files/poketool/personal/personal/narc_0065.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0066.bin b/files/poketool/personal/personal/narc_0066.bin
deleted file mode 100644
index f48b3ce3..00000000
--- a/files/poketool/personal/personal/narc_0066.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0067.bin b/files/poketool/personal/personal/narc_0067.bin
deleted file mode 100644
index e360f2a4..00000000
--- a/files/poketool/personal/personal/narc_0067.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0068.bin b/files/poketool/personal/personal/narc_0068.bin
deleted file mode 100644
index 4a193713..00000000
--- a/files/poketool/personal/personal/narc_0068.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0069.bin b/files/poketool/personal/personal/narc_0069.bin
deleted file mode 100644
index 192e244f..00000000
--- a/files/poketool/personal/personal/narc_0069.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0070.bin b/files/poketool/personal/personal/narc_0070.bin
deleted file mode 100644
index e7b28276..00000000
--- a/files/poketool/personal/personal/narc_0070.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0071.bin b/files/poketool/personal/personal/narc_0071.bin
deleted file mode 100644
index 31ea6225..00000000
--- a/files/poketool/personal/personal/narc_0071.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0072.bin b/files/poketool/personal/personal/narc_0072.bin
deleted file mode 100644
index d6e682c7..00000000
--- a/files/poketool/personal/personal/narc_0072.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0073.bin b/files/poketool/personal/personal/narc_0073.bin
deleted file mode 100644
index 493fc101..00000000
--- a/files/poketool/personal/personal/narc_0073.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0074.bin b/files/poketool/personal/personal/narc_0074.bin
deleted file mode 100644
index 6683f32e..00000000
--- a/files/poketool/personal/personal/narc_0074.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0075.bin b/files/poketool/personal/personal/narc_0075.bin
deleted file mode 100644
index 131b844c..00000000
--- a/files/poketool/personal/personal/narc_0075.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0076.bin b/files/poketool/personal/personal/narc_0076.bin
deleted file mode 100644
index 300fb0b3..00000000
--- a/files/poketool/personal/personal/narc_0076.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0077.bin b/files/poketool/personal/personal/narc_0077.bin
deleted file mode 100644
index a42ed312..00000000
--- a/files/poketool/personal/personal/narc_0077.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0078.bin b/files/poketool/personal/personal/narc_0078.bin
deleted file mode 100644
index 17908402..00000000
--- a/files/poketool/personal/personal/narc_0078.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0079.bin b/files/poketool/personal/personal/narc_0079.bin
deleted file mode 100644
index bde76d1a..00000000
--- a/files/poketool/personal/personal/narc_0079.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0080.bin b/files/poketool/personal/personal/narc_0080.bin
deleted file mode 100644
index 831f999c..00000000
--- a/files/poketool/personal/personal/narc_0080.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0081.bin b/files/poketool/personal/personal/narc_0081.bin
deleted file mode 100644
index fdc86323..00000000
--- a/files/poketool/personal/personal/narc_0081.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0082.bin b/files/poketool/personal/personal/narc_0082.bin
deleted file mode 100644
index 9a06fbe2..00000000
--- a/files/poketool/personal/personal/narc_0082.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0083.bin b/files/poketool/personal/personal/narc_0083.bin
deleted file mode 100644
index 456d3b9c..00000000
--- a/files/poketool/personal/personal/narc_0083.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0084.bin b/files/poketool/personal/personal/narc_0084.bin
deleted file mode 100644
index 4408a71c..00000000
--- a/files/poketool/personal/personal/narc_0084.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0085.bin b/files/poketool/personal/personal/narc_0085.bin
deleted file mode 100644
index 8a607781..00000000
--- a/files/poketool/personal/personal/narc_0085.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0086.bin b/files/poketool/personal/personal/narc_0086.bin
deleted file mode 100644
index 849d210f..00000000
--- a/files/poketool/personal/personal/narc_0086.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0087.bin b/files/poketool/personal/personal/narc_0087.bin
deleted file mode 100644
index 0e0d2d73..00000000
--- a/files/poketool/personal/personal/narc_0087.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0088.bin b/files/poketool/personal/personal/narc_0088.bin
deleted file mode 100644
index 086f0f79..00000000
--- a/files/poketool/personal/personal/narc_0088.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0089.bin b/files/poketool/personal/personal/narc_0089.bin
deleted file mode 100644
index 7ab97510..00000000
--- a/files/poketool/personal/personal/narc_0089.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0090.bin b/files/poketool/personal/personal/narc_0090.bin
deleted file mode 100644
index 23ae0ebe..00000000
--- a/files/poketool/personal/personal/narc_0090.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0091.bin b/files/poketool/personal/personal/narc_0091.bin
deleted file mode 100644
index 91126415..00000000
--- a/files/poketool/personal/personal/narc_0091.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0092.bin b/files/poketool/personal/personal/narc_0092.bin
deleted file mode 100644
index f55c14e0..00000000
--- a/files/poketool/personal/personal/narc_0092.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0093.bin b/files/poketool/personal/personal/narc_0093.bin
deleted file mode 100644
index d82a68e0..00000000
--- a/files/poketool/personal/personal/narc_0093.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0094.bin b/files/poketool/personal/personal/narc_0094.bin
deleted file mode 100644
index 79964d2e..00000000
--- a/files/poketool/personal/personal/narc_0094.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0095.bin b/files/poketool/personal/personal/narc_0095.bin
deleted file mode 100644
index 7794e6df..00000000
--- a/files/poketool/personal/personal/narc_0095.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0096.bin b/files/poketool/personal/personal/narc_0096.bin
deleted file mode 100644
index 0b137d01..00000000
--- a/files/poketool/personal/personal/narc_0096.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0097.bin b/files/poketool/personal/personal/narc_0097.bin
deleted file mode 100644
index e8930b7f..00000000
--- a/files/poketool/personal/personal/narc_0097.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0098.bin b/files/poketool/personal/personal/narc_0098.bin
deleted file mode 100644
index cfc555c3..00000000
--- a/files/poketool/personal/personal/narc_0098.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0099.bin b/files/poketool/personal/personal/narc_0099.bin
deleted file mode 100644
index 2d909980..00000000
--- a/files/poketool/personal/personal/narc_0099.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0100.bin b/files/poketool/personal/personal/narc_0100.bin
deleted file mode 100644
index c85f3cab..00000000
--- a/files/poketool/personal/personal/narc_0100.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0101.bin b/files/poketool/personal/personal/narc_0101.bin
deleted file mode 100644
index fb02166c..00000000
--- a/files/poketool/personal/personal/narc_0101.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0102.bin b/files/poketool/personal/personal/narc_0102.bin
deleted file mode 100644
index 564a695a..00000000
--- a/files/poketool/personal/personal/narc_0102.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0103.bin b/files/poketool/personal/personal/narc_0103.bin
deleted file mode 100644
index 6202ada7..00000000
--- a/files/poketool/personal/personal/narc_0103.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0104.bin b/files/poketool/personal/personal/narc_0104.bin
deleted file mode 100644
index c68cd52b..00000000
--- a/files/poketool/personal/personal/narc_0104.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0105.bin b/files/poketool/personal/personal/narc_0105.bin
deleted file mode 100644
index 2da3f7a8..00000000
--- a/files/poketool/personal/personal/narc_0105.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0106.bin b/files/poketool/personal/personal/narc_0106.bin
deleted file mode 100644
index 782c9674..00000000
--- a/files/poketool/personal/personal/narc_0106.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0107.bin b/files/poketool/personal/personal/narc_0107.bin
deleted file mode 100644
index 4a47958e..00000000
--- a/files/poketool/personal/personal/narc_0107.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0108.bin b/files/poketool/personal/personal/narc_0108.bin
deleted file mode 100644
index c3fd63fb..00000000
--- a/files/poketool/personal/personal/narc_0108.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0109.bin b/files/poketool/personal/personal/narc_0109.bin
deleted file mode 100644
index 8679489d..00000000
--- a/files/poketool/personal/personal/narc_0109.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0110.bin b/files/poketool/personal/personal/narc_0110.bin
deleted file mode 100644
index ebea9855..00000000
--- a/files/poketool/personal/personal/narc_0110.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0111.bin b/files/poketool/personal/personal/narc_0111.bin
deleted file mode 100644
index 632bf35f..00000000
--- a/files/poketool/personal/personal/narc_0111.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0112.bin b/files/poketool/personal/personal/narc_0112.bin
deleted file mode 100644
index a9cd4d94..00000000
--- a/files/poketool/personal/personal/narc_0112.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0113.bin b/files/poketool/personal/personal/narc_0113.bin
deleted file mode 100644
index 713b77d7..00000000
--- a/files/poketool/personal/personal/narc_0113.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0114.bin b/files/poketool/personal/personal/narc_0114.bin
deleted file mode 100644
index 9c597231..00000000
--- a/files/poketool/personal/personal/narc_0114.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0115.bin b/files/poketool/personal/personal/narc_0115.bin
deleted file mode 100644
index 87468ff6..00000000
--- a/files/poketool/personal/personal/narc_0115.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0116.bin b/files/poketool/personal/personal/narc_0116.bin
deleted file mode 100644
index f5642cdc..00000000
--- a/files/poketool/personal/personal/narc_0116.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0117.bin b/files/poketool/personal/personal/narc_0117.bin
deleted file mode 100644
index 234effdc..00000000
--- a/files/poketool/personal/personal/narc_0117.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0118.bin b/files/poketool/personal/personal/narc_0118.bin
deleted file mode 100644
index 4e0eb294..00000000
--- a/files/poketool/personal/personal/narc_0118.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0119.bin b/files/poketool/personal/personal/narc_0119.bin
deleted file mode 100644
index 5773752e..00000000
--- a/files/poketool/personal/personal/narc_0119.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0120.bin b/files/poketool/personal/personal/narc_0120.bin
deleted file mode 100644
index e770fac2..00000000
--- a/files/poketool/personal/personal/narc_0120.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0121.bin b/files/poketool/personal/personal/narc_0121.bin
deleted file mode 100644
index 156ec57a..00000000
--- a/files/poketool/personal/personal/narc_0121.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0122.bin b/files/poketool/personal/personal/narc_0122.bin
deleted file mode 100644
index eb764118..00000000
--- a/files/poketool/personal/personal/narc_0122.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0123.bin b/files/poketool/personal/personal/narc_0123.bin
deleted file mode 100644
index e1f4e5f4..00000000
--- a/files/poketool/personal/personal/narc_0123.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0124.bin b/files/poketool/personal/personal/narc_0124.bin
deleted file mode 100644
index 35bf2780..00000000
--- a/files/poketool/personal/personal/narc_0124.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0125.bin b/files/poketool/personal/personal/narc_0125.bin
deleted file mode 100644
index c98eb8c2..00000000
--- a/files/poketool/personal/personal/narc_0125.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0126.bin b/files/poketool/personal/personal/narc_0126.bin
deleted file mode 100644
index 430427e0..00000000
--- a/files/poketool/personal/personal/narc_0126.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0127.bin b/files/poketool/personal/personal/narc_0127.bin
deleted file mode 100644
index 1c6e9274..00000000
--- a/files/poketool/personal/personal/narc_0127.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0128.bin b/files/poketool/personal/personal/narc_0128.bin
deleted file mode 100644
index b2fb7daa..00000000
--- a/files/poketool/personal/personal/narc_0128.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0129.bin b/files/poketool/personal/personal/narc_0129.bin
deleted file mode 100644
index 2f9f0c84..00000000
--- a/files/poketool/personal/personal/narc_0129.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0130.bin b/files/poketool/personal/personal/narc_0130.bin
deleted file mode 100644
index b49e600d..00000000
--- a/files/poketool/personal/personal/narc_0130.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0131.bin b/files/poketool/personal/personal/narc_0131.bin
deleted file mode 100644
index 0a673dd5..00000000
--- a/files/poketool/personal/personal/narc_0131.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0132.bin b/files/poketool/personal/personal/narc_0132.bin
deleted file mode 100644
index 3e209a98..00000000
--- a/files/poketool/personal/personal/narc_0132.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0133.bin b/files/poketool/personal/personal/narc_0133.bin
deleted file mode 100644
index e829110a..00000000
--- a/files/poketool/personal/personal/narc_0133.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0134.bin b/files/poketool/personal/personal/narc_0134.bin
deleted file mode 100644
index 8ad9bd53..00000000
--- a/files/poketool/personal/personal/narc_0134.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0135.bin b/files/poketool/personal/personal/narc_0135.bin
deleted file mode 100644
index 05451a0e..00000000
--- a/files/poketool/personal/personal/narc_0135.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0136.bin b/files/poketool/personal/personal/narc_0136.bin
deleted file mode 100644
index 51d50ef0..00000000
--- a/files/poketool/personal/personal/narc_0136.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0137.bin b/files/poketool/personal/personal/narc_0137.bin
deleted file mode 100644
index 953115c6..00000000
--- a/files/poketool/personal/personal/narc_0137.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0138.bin b/files/poketool/personal/personal/narc_0138.bin
deleted file mode 100644
index ddd7be9b..00000000
--- a/files/poketool/personal/personal/narc_0138.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0139.bin b/files/poketool/personal/personal/narc_0139.bin
deleted file mode 100644
index 0cab220f..00000000
--- a/files/poketool/personal/personal/narc_0139.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0140.bin b/files/poketool/personal/personal/narc_0140.bin
deleted file mode 100644
index b49ae131..00000000
--- a/files/poketool/personal/personal/narc_0140.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0141.bin b/files/poketool/personal/personal/narc_0141.bin
deleted file mode 100644
index bcda0191..00000000
--- a/files/poketool/personal/personal/narc_0141.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0142.bin b/files/poketool/personal/personal/narc_0142.bin
deleted file mode 100644
index 61e114d2..00000000
--- a/files/poketool/personal/personal/narc_0142.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0143.bin b/files/poketool/personal/personal/narc_0143.bin
deleted file mode 100644
index c24dd499..00000000
--- a/files/poketool/personal/personal/narc_0143.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0144.bin b/files/poketool/personal/personal/narc_0144.bin
deleted file mode 100644
index b15009a3..00000000
--- a/files/poketool/personal/personal/narc_0144.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0145.bin b/files/poketool/personal/personal/narc_0145.bin
deleted file mode 100644
index 4e670979..00000000
--- a/files/poketool/personal/personal/narc_0145.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0146.bin b/files/poketool/personal/personal/narc_0146.bin
deleted file mode 100644
index 2a0cd005..00000000
--- a/files/poketool/personal/personal/narc_0146.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0147.bin b/files/poketool/personal/personal/narc_0147.bin
deleted file mode 100644
index f87b5171..00000000
--- a/files/poketool/personal/personal/narc_0147.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0148.bin b/files/poketool/personal/personal/narc_0148.bin
deleted file mode 100644
index 7d100ce6..00000000
--- a/files/poketool/personal/personal/narc_0148.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0149.bin b/files/poketool/personal/personal/narc_0149.bin
deleted file mode 100644
index ad1492a4..00000000
--- a/files/poketool/personal/personal/narc_0149.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0150.bin b/files/poketool/personal/personal/narc_0150.bin
deleted file mode 100644
index 369fc684..00000000
--- a/files/poketool/personal/personal/narc_0150.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0151.bin b/files/poketool/personal/personal/narc_0151.bin
deleted file mode 100644
index 966f957f..00000000
--- a/files/poketool/personal/personal/narc_0151.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0152.bin b/files/poketool/personal/personal/narc_0152.bin
deleted file mode 100644
index c41f2df5..00000000
--- a/files/poketool/personal/personal/narc_0152.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0153.bin b/files/poketool/personal/personal/narc_0153.bin
deleted file mode 100644
index 34bedd7c..00000000
--- a/files/poketool/personal/personal/narc_0153.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0154.bin b/files/poketool/personal/personal/narc_0154.bin
deleted file mode 100644
index 2463337f..00000000
--- a/files/poketool/personal/personal/narc_0154.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0155.bin b/files/poketool/personal/personal/narc_0155.bin
deleted file mode 100644
index 0fa9471a..00000000
--- a/files/poketool/personal/personal/narc_0155.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0156.bin b/files/poketool/personal/personal/narc_0156.bin
deleted file mode 100644
index 506d9883..00000000
--- a/files/poketool/personal/personal/narc_0156.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0157.bin b/files/poketool/personal/personal/narc_0157.bin
deleted file mode 100644
index 72623141..00000000
--- a/files/poketool/personal/personal/narc_0157.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0158.bin b/files/poketool/personal/personal/narc_0158.bin
deleted file mode 100644
index 95fbf575..00000000
--- a/files/poketool/personal/personal/narc_0158.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0159.bin b/files/poketool/personal/personal/narc_0159.bin
deleted file mode 100644
index 109e1a2d..00000000
--- a/files/poketool/personal/personal/narc_0159.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0160.bin b/files/poketool/personal/personal/narc_0160.bin
deleted file mode 100644
index 440027ed..00000000
--- a/files/poketool/personal/personal/narc_0160.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0161.bin b/files/poketool/personal/personal/narc_0161.bin
deleted file mode 100644
index 776150c3..00000000
--- a/files/poketool/personal/personal/narc_0161.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0162.bin b/files/poketool/personal/personal/narc_0162.bin
deleted file mode 100644
index a257544c..00000000
--- a/files/poketool/personal/personal/narc_0162.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0163.bin b/files/poketool/personal/personal/narc_0163.bin
deleted file mode 100644
index de69f019..00000000
--- a/files/poketool/personal/personal/narc_0163.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0164.bin b/files/poketool/personal/personal/narc_0164.bin
deleted file mode 100644
index bfeb5b0c..00000000
--- a/files/poketool/personal/personal/narc_0164.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0165.bin b/files/poketool/personal/personal/narc_0165.bin
deleted file mode 100644
index b87a4ad2..00000000
--- a/files/poketool/personal/personal/narc_0165.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0166.bin b/files/poketool/personal/personal/narc_0166.bin
deleted file mode 100644
index 9094369c..00000000
--- a/files/poketool/personal/personal/narc_0166.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0167.bin b/files/poketool/personal/personal/narc_0167.bin
deleted file mode 100644
index e068fc41..00000000
--- a/files/poketool/personal/personal/narc_0167.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0168.bin b/files/poketool/personal/personal/narc_0168.bin
deleted file mode 100644
index 1f1f315c..00000000
--- a/files/poketool/personal/personal/narc_0168.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0169.bin b/files/poketool/personal/personal/narc_0169.bin
deleted file mode 100644
index 9f08b079..00000000
--- a/files/poketool/personal/personal/narc_0169.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0170.bin b/files/poketool/personal/personal/narc_0170.bin
deleted file mode 100644
index 1be99846..00000000
--- a/files/poketool/personal/personal/narc_0170.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0171.bin b/files/poketool/personal/personal/narc_0171.bin
deleted file mode 100644
index c9953001..00000000
--- a/files/poketool/personal/personal/narc_0171.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0172.bin b/files/poketool/personal/personal/narc_0172.bin
deleted file mode 100644
index 90c3592d..00000000
--- a/files/poketool/personal/personal/narc_0172.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0173.bin b/files/poketool/personal/personal/narc_0173.bin
deleted file mode 100644
index 861c9fd3..00000000
--- a/files/poketool/personal/personal/narc_0173.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0174.bin b/files/poketool/personal/personal/narc_0174.bin
deleted file mode 100644
index ca5eccda..00000000
--- a/files/poketool/personal/personal/narc_0174.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0175.bin b/files/poketool/personal/personal/narc_0175.bin
deleted file mode 100644
index 9f30bf06..00000000
--- a/files/poketool/personal/personal/narc_0175.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0176.bin b/files/poketool/personal/personal/narc_0176.bin
deleted file mode 100644
index cca3e81b..00000000
--- a/files/poketool/personal/personal/narc_0176.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0177.bin b/files/poketool/personal/personal/narc_0177.bin
deleted file mode 100644
index 161f288e..00000000
--- a/files/poketool/personal/personal/narc_0177.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0178.bin b/files/poketool/personal/personal/narc_0178.bin
deleted file mode 100644
index 3087c3dd..00000000
--- a/files/poketool/personal/personal/narc_0178.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0179.bin b/files/poketool/personal/personal/narc_0179.bin
deleted file mode 100644
index 4c2c5cec..00000000
--- a/files/poketool/personal/personal/narc_0179.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0180.bin b/files/poketool/personal/personal/narc_0180.bin
deleted file mode 100644
index dc84d11b..00000000
--- a/files/poketool/personal/personal/narc_0180.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0181.bin b/files/poketool/personal/personal/narc_0181.bin
deleted file mode 100644
index c8b12d66..00000000
--- a/files/poketool/personal/personal/narc_0181.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0182.bin b/files/poketool/personal/personal/narc_0182.bin
deleted file mode 100644
index e0a7454f..00000000
--- a/files/poketool/personal/personal/narc_0182.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0183.bin b/files/poketool/personal/personal/narc_0183.bin
deleted file mode 100644
index c2e1fd40..00000000
--- a/files/poketool/personal/personal/narc_0183.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0184.bin b/files/poketool/personal/personal/narc_0184.bin
deleted file mode 100644
index 9925f1d1..00000000
--- a/files/poketool/personal/personal/narc_0184.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0185.bin b/files/poketool/personal/personal/narc_0185.bin
deleted file mode 100644
index 173a3c6c..00000000
--- a/files/poketool/personal/personal/narc_0185.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0186.bin b/files/poketool/personal/personal/narc_0186.bin
deleted file mode 100644
index 09d4fe24..00000000
--- a/files/poketool/personal/personal/narc_0186.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0187.bin b/files/poketool/personal/personal/narc_0187.bin
deleted file mode 100644
index 77e60a15..00000000
--- a/files/poketool/personal/personal/narc_0187.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0188.bin b/files/poketool/personal/personal/narc_0188.bin
deleted file mode 100644
index ca8f0639..00000000
--- a/files/poketool/personal/personal/narc_0188.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0189.bin b/files/poketool/personal/personal/narc_0189.bin
deleted file mode 100644
index 62df8e9e..00000000
--- a/files/poketool/personal/personal/narc_0189.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0190.bin b/files/poketool/personal/personal/narc_0190.bin
deleted file mode 100644
index 9fd652ab..00000000
--- a/files/poketool/personal/personal/narc_0190.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0191.bin b/files/poketool/personal/personal/narc_0191.bin
deleted file mode 100644
index e42cdcd1..00000000
--- a/files/poketool/personal/personal/narc_0191.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0192.bin b/files/poketool/personal/personal/narc_0192.bin
deleted file mode 100644
index 58189e56..00000000
--- a/files/poketool/personal/personal/narc_0192.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0193.bin b/files/poketool/personal/personal/narc_0193.bin
deleted file mode 100644
index fdd7a398..00000000
--- a/files/poketool/personal/personal/narc_0193.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0194.bin b/files/poketool/personal/personal/narc_0194.bin
deleted file mode 100644
index 9560d8a4..00000000
--- a/files/poketool/personal/personal/narc_0194.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0195.bin b/files/poketool/personal/personal/narc_0195.bin
deleted file mode 100644
index b874255a..00000000
--- a/files/poketool/personal/personal/narc_0195.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0196.bin b/files/poketool/personal/personal/narc_0196.bin
deleted file mode 100644
index f4b1b7e4..00000000
--- a/files/poketool/personal/personal/narc_0196.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0197.bin b/files/poketool/personal/personal/narc_0197.bin
deleted file mode 100644
index d9990de9..00000000
--- a/files/poketool/personal/personal/narc_0197.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0198.bin b/files/poketool/personal/personal/narc_0198.bin
deleted file mode 100644
index 464a9014..00000000
--- a/files/poketool/personal/personal/narc_0198.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0199.bin b/files/poketool/personal/personal/narc_0199.bin
deleted file mode 100644
index c1261cf1..00000000
--- a/files/poketool/personal/personal/narc_0199.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0200.bin b/files/poketool/personal/personal/narc_0200.bin
deleted file mode 100644
index 60e63ab7..00000000
--- a/files/poketool/personal/personal/narc_0200.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0201.bin b/files/poketool/personal/personal/narc_0201.bin
deleted file mode 100644
index 4ea77739..00000000
--- a/files/poketool/personal/personal/narc_0201.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0202.bin b/files/poketool/personal/personal/narc_0202.bin
deleted file mode 100644
index f6e598db..00000000
--- a/files/poketool/personal/personal/narc_0202.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0203.bin b/files/poketool/personal/personal/narc_0203.bin
deleted file mode 100644
index 108b779b..00000000
--- a/files/poketool/personal/personal/narc_0203.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0204.bin b/files/poketool/personal/personal/narc_0204.bin
deleted file mode 100644
index ffd5588b..00000000
--- a/files/poketool/personal/personal/narc_0204.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0205.bin b/files/poketool/personal/personal/narc_0205.bin
deleted file mode 100644
index 46317c84..00000000
--- a/files/poketool/personal/personal/narc_0205.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0206.bin b/files/poketool/personal/personal/narc_0206.bin
deleted file mode 100644
index 1a2196c6..00000000
--- a/files/poketool/personal/personal/narc_0206.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0207.bin b/files/poketool/personal/personal/narc_0207.bin
deleted file mode 100644
index 1e7733b0..00000000
--- a/files/poketool/personal/personal/narc_0207.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0208.bin b/files/poketool/personal/personal/narc_0208.bin
deleted file mode 100644
index 9957823c..00000000
--- a/files/poketool/personal/personal/narc_0208.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0209.bin b/files/poketool/personal/personal/narc_0209.bin
deleted file mode 100644
index 888dc360..00000000
--- a/files/poketool/personal/personal/narc_0209.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0210.bin b/files/poketool/personal/personal/narc_0210.bin
deleted file mode 100644
index 4eb77f01..00000000
--- a/files/poketool/personal/personal/narc_0210.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0211.bin b/files/poketool/personal/personal/narc_0211.bin
deleted file mode 100644
index 486a2123..00000000
--- a/files/poketool/personal/personal/narc_0211.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0212.bin b/files/poketool/personal/personal/narc_0212.bin
deleted file mode 100644
index 6ca58d78..00000000
--- a/files/poketool/personal/personal/narc_0212.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0213.bin b/files/poketool/personal/personal/narc_0213.bin
deleted file mode 100644
index 2feeb821..00000000
--- a/files/poketool/personal/personal/narc_0213.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0214.bin b/files/poketool/personal/personal/narc_0214.bin
deleted file mode 100644
index d5b5e0f8..00000000
--- a/files/poketool/personal/personal/narc_0214.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0215.bin b/files/poketool/personal/personal/narc_0215.bin
deleted file mode 100644
index 1d491cb2..00000000
--- a/files/poketool/personal/personal/narc_0215.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0216.bin b/files/poketool/personal/personal/narc_0216.bin
deleted file mode 100644
index 7526f249..00000000
--- a/files/poketool/personal/personal/narc_0216.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0217.bin b/files/poketool/personal/personal/narc_0217.bin
deleted file mode 100644
index 5e3e3d9c..00000000
--- a/files/poketool/personal/personal/narc_0217.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0218.bin b/files/poketool/personal/personal/narc_0218.bin
deleted file mode 100644
index 96c5cdcc..00000000
--- a/files/poketool/personal/personal/narc_0218.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0219.bin b/files/poketool/personal/personal/narc_0219.bin
deleted file mode 100644
index 1938b3cf..00000000
--- a/files/poketool/personal/personal/narc_0219.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0220.bin b/files/poketool/personal/personal/narc_0220.bin
deleted file mode 100644
index 4dbe19c4..00000000
--- a/files/poketool/personal/personal/narc_0220.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0221.bin b/files/poketool/personal/personal/narc_0221.bin
deleted file mode 100644
index 982c2659..00000000
--- a/files/poketool/personal/personal/narc_0221.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0222.bin b/files/poketool/personal/personal/narc_0222.bin
deleted file mode 100644
index 651ac43c..00000000
--- a/files/poketool/personal/personal/narc_0222.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0223.bin b/files/poketool/personal/personal/narc_0223.bin
deleted file mode 100644
index 9848c7f6..00000000
--- a/files/poketool/personal/personal/narc_0223.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0224.bin b/files/poketool/personal/personal/narc_0224.bin
deleted file mode 100644
index 84415ad5..00000000
--- a/files/poketool/personal/personal/narc_0224.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0225.bin b/files/poketool/personal/personal/narc_0225.bin
deleted file mode 100644
index e7707191..00000000
--- a/files/poketool/personal/personal/narc_0225.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0226.bin b/files/poketool/personal/personal/narc_0226.bin
deleted file mode 100644
index 67c22100..00000000
--- a/files/poketool/personal/personal/narc_0226.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0227.bin b/files/poketool/personal/personal/narc_0227.bin
deleted file mode 100644
index a2bdc91a..00000000
--- a/files/poketool/personal/personal/narc_0227.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0228.bin b/files/poketool/personal/personal/narc_0228.bin
deleted file mode 100644
index 49aa82ff..00000000
--- a/files/poketool/personal/personal/narc_0228.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0229.bin b/files/poketool/personal/personal/narc_0229.bin
deleted file mode 100644
index 7a03737b..00000000
--- a/files/poketool/personal/personal/narc_0229.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0230.bin b/files/poketool/personal/personal/narc_0230.bin
deleted file mode 100644
index 775840b4..00000000
--- a/files/poketool/personal/personal/narc_0230.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0231.bin b/files/poketool/personal/personal/narc_0231.bin
deleted file mode 100644
index 3ff1f938..00000000
--- a/files/poketool/personal/personal/narc_0231.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0232.bin b/files/poketool/personal/personal/narc_0232.bin
deleted file mode 100644
index f041815d..00000000
--- a/files/poketool/personal/personal/narc_0232.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0233.bin b/files/poketool/personal/personal/narc_0233.bin
deleted file mode 100644
index b816c3b7..00000000
--- a/files/poketool/personal/personal/narc_0233.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0234.bin b/files/poketool/personal/personal/narc_0234.bin
deleted file mode 100644
index 900fc8b2..00000000
--- a/files/poketool/personal/personal/narc_0234.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0235.bin b/files/poketool/personal/personal/narc_0235.bin
deleted file mode 100644
index 180fafb6..00000000
--- a/files/poketool/personal/personal/narc_0235.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0236.bin b/files/poketool/personal/personal/narc_0236.bin
deleted file mode 100644
index 929b455f..00000000
--- a/files/poketool/personal/personal/narc_0236.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0237.bin b/files/poketool/personal/personal/narc_0237.bin
deleted file mode 100644
index 1044ddd8..00000000
--- a/files/poketool/personal/personal/narc_0237.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0238.bin b/files/poketool/personal/personal/narc_0238.bin
deleted file mode 100644
index 0d1adad3..00000000
--- a/files/poketool/personal/personal/narc_0238.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0239.bin b/files/poketool/personal/personal/narc_0239.bin
deleted file mode 100644
index 34ffd67a..00000000
--- a/files/poketool/personal/personal/narc_0239.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0240.bin b/files/poketool/personal/personal/narc_0240.bin
deleted file mode 100644
index 75fb33ff..00000000
--- a/files/poketool/personal/personal/narc_0240.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0241.bin b/files/poketool/personal/personal/narc_0241.bin
deleted file mode 100644
index 92a6495f..00000000
--- a/files/poketool/personal/personal/narc_0241.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0242.bin b/files/poketool/personal/personal/narc_0242.bin
deleted file mode 100644
index 8137fee5..00000000
--- a/files/poketool/personal/personal/narc_0242.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0243.bin b/files/poketool/personal/personal/narc_0243.bin
deleted file mode 100644
index 20ef259f..00000000
--- a/files/poketool/personal/personal/narc_0243.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0244.bin b/files/poketool/personal/personal/narc_0244.bin
deleted file mode 100644
index f0b1f95d..00000000
--- a/files/poketool/personal/personal/narc_0244.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0245.bin b/files/poketool/personal/personal/narc_0245.bin
deleted file mode 100644
index 1df4bee4..00000000
--- a/files/poketool/personal/personal/narc_0245.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0246.bin b/files/poketool/personal/personal/narc_0246.bin
deleted file mode 100644
index 360f81d5..00000000
--- a/files/poketool/personal/personal/narc_0246.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0247.bin b/files/poketool/personal/personal/narc_0247.bin
deleted file mode 100644
index 615357e8..00000000
--- a/files/poketool/personal/personal/narc_0247.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0248.bin b/files/poketool/personal/personal/narc_0248.bin
deleted file mode 100644
index 07e76e95..00000000
--- a/files/poketool/personal/personal/narc_0248.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0249.bin b/files/poketool/personal/personal/narc_0249.bin
deleted file mode 100644
index e7a68579..00000000
--- a/files/poketool/personal/personal/narc_0249.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0250.bin b/files/poketool/personal/personal/narc_0250.bin
deleted file mode 100644
index 525b1d84..00000000
--- a/files/poketool/personal/personal/narc_0250.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0251.bin b/files/poketool/personal/personal/narc_0251.bin
deleted file mode 100644
index c17de282..00000000
--- a/files/poketool/personal/personal/narc_0251.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0252.bin b/files/poketool/personal/personal/narc_0252.bin
deleted file mode 100644
index 491cb74e..00000000
--- a/files/poketool/personal/personal/narc_0252.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0253.bin b/files/poketool/personal/personal/narc_0253.bin
deleted file mode 100644
index a51e76a0..00000000
--- a/files/poketool/personal/personal/narc_0253.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0254.bin b/files/poketool/personal/personal/narc_0254.bin
deleted file mode 100644
index 5d1fab0d..00000000
--- a/files/poketool/personal/personal/narc_0254.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0255.bin b/files/poketool/personal/personal/narc_0255.bin
deleted file mode 100644
index bc559a8d..00000000
--- a/files/poketool/personal/personal/narc_0255.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0256.bin b/files/poketool/personal/personal/narc_0256.bin
deleted file mode 100644
index b8092044..00000000
--- a/files/poketool/personal/personal/narc_0256.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0257.bin b/files/poketool/personal/personal/narc_0257.bin
deleted file mode 100644
index f78a8610..00000000
--- a/files/poketool/personal/personal/narc_0257.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0258.bin b/files/poketool/personal/personal/narc_0258.bin
deleted file mode 100644
index 7ae149b1..00000000
--- a/files/poketool/personal/personal/narc_0258.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0259.bin b/files/poketool/personal/personal/narc_0259.bin
deleted file mode 100644
index 70038651..00000000
--- a/files/poketool/personal/personal/narc_0259.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0260.bin b/files/poketool/personal/personal/narc_0260.bin
deleted file mode 100644
index 866556d7..00000000
--- a/files/poketool/personal/personal/narc_0260.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0261.bin b/files/poketool/personal/personal/narc_0261.bin
deleted file mode 100644
index 43cfec09..00000000
--- a/files/poketool/personal/personal/narc_0261.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0262.bin b/files/poketool/personal/personal/narc_0262.bin
deleted file mode 100644
index d32885a6..00000000
--- a/files/poketool/personal/personal/narc_0262.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0263.bin b/files/poketool/personal/personal/narc_0263.bin
deleted file mode 100644
index f9472ca2..00000000
--- a/files/poketool/personal/personal/narc_0263.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0264.bin b/files/poketool/personal/personal/narc_0264.bin
deleted file mode 100644
index 025e4630..00000000
--- a/files/poketool/personal/personal/narc_0264.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0265.bin b/files/poketool/personal/personal/narc_0265.bin
deleted file mode 100644
index 47d2a725..00000000
--- a/files/poketool/personal/personal/narc_0265.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0266.bin b/files/poketool/personal/personal/narc_0266.bin
deleted file mode 100644
index df98f019..00000000
--- a/files/poketool/personal/personal/narc_0266.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0267.bin b/files/poketool/personal/personal/narc_0267.bin
deleted file mode 100644
index 549cf14d..00000000
--- a/files/poketool/personal/personal/narc_0267.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0268.bin b/files/poketool/personal/personal/narc_0268.bin
deleted file mode 100644
index 308d5e2c..00000000
--- a/files/poketool/personal/personal/narc_0268.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0269.bin b/files/poketool/personal/personal/narc_0269.bin
deleted file mode 100644
index 5c196ccd..00000000
--- a/files/poketool/personal/personal/narc_0269.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0270.bin b/files/poketool/personal/personal/narc_0270.bin
deleted file mode 100644
index e46d34c3..00000000
--- a/files/poketool/personal/personal/narc_0270.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0271.bin b/files/poketool/personal/personal/narc_0271.bin
deleted file mode 100644
index ced5dfbc..00000000
--- a/files/poketool/personal/personal/narc_0271.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0272.bin b/files/poketool/personal/personal/narc_0272.bin
deleted file mode 100644
index ecd22f8f..00000000
--- a/files/poketool/personal/personal/narc_0272.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0273.bin b/files/poketool/personal/personal/narc_0273.bin
deleted file mode 100644
index 503c65c8..00000000
--- a/files/poketool/personal/personal/narc_0273.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0274.bin b/files/poketool/personal/personal/narc_0274.bin
deleted file mode 100644
index 7d0786c1..00000000
--- a/files/poketool/personal/personal/narc_0274.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0275.bin b/files/poketool/personal/personal/narc_0275.bin
deleted file mode 100644
index 1dba9671..00000000
--- a/files/poketool/personal/personal/narc_0275.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0276.bin b/files/poketool/personal/personal/narc_0276.bin
deleted file mode 100644
index a2170c15..00000000
--- a/files/poketool/personal/personal/narc_0276.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0277.bin b/files/poketool/personal/personal/narc_0277.bin
deleted file mode 100644
index fafd9899..00000000
--- a/files/poketool/personal/personal/narc_0277.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0278.bin b/files/poketool/personal/personal/narc_0278.bin
deleted file mode 100644
index 2ad5612c..00000000
--- a/files/poketool/personal/personal/narc_0278.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0279.bin b/files/poketool/personal/personal/narc_0279.bin
deleted file mode 100644
index c5e98a76..00000000
--- a/files/poketool/personal/personal/narc_0279.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0280.bin b/files/poketool/personal/personal/narc_0280.bin
deleted file mode 100644
index d463ff7d..00000000
--- a/files/poketool/personal/personal/narc_0280.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0281.bin b/files/poketool/personal/personal/narc_0281.bin
deleted file mode 100644
index bf5caa22..00000000
--- a/files/poketool/personal/personal/narc_0281.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0282.bin b/files/poketool/personal/personal/narc_0282.bin
deleted file mode 100644
index 01c9a07b..00000000
--- a/files/poketool/personal/personal/narc_0282.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0283.bin b/files/poketool/personal/personal/narc_0283.bin
deleted file mode 100644
index 76f0e8a9..00000000
--- a/files/poketool/personal/personal/narc_0283.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0284.bin b/files/poketool/personal/personal/narc_0284.bin
deleted file mode 100644
index fb7fe6eb..00000000
--- a/files/poketool/personal/personal/narc_0284.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0285.bin b/files/poketool/personal/personal/narc_0285.bin
deleted file mode 100644
index 14feccc5..00000000
--- a/files/poketool/personal/personal/narc_0285.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0286.bin b/files/poketool/personal/personal/narc_0286.bin
deleted file mode 100644
index fb30edf0..00000000
--- a/files/poketool/personal/personal/narc_0286.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0287.bin b/files/poketool/personal/personal/narc_0287.bin
deleted file mode 100644
index 6d66d97c..00000000
--- a/files/poketool/personal/personal/narc_0287.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0288.bin b/files/poketool/personal/personal/narc_0288.bin
deleted file mode 100644
index 5c7801eb..00000000
--- a/files/poketool/personal/personal/narc_0288.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0289.bin b/files/poketool/personal/personal/narc_0289.bin
deleted file mode 100644
index c74c6f03..00000000
--- a/files/poketool/personal/personal/narc_0289.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0290.bin b/files/poketool/personal/personal/narc_0290.bin
deleted file mode 100644
index 549b461e..00000000
--- a/files/poketool/personal/personal/narc_0290.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0291.bin b/files/poketool/personal/personal/narc_0291.bin
deleted file mode 100644
index 4a21d1f1..00000000
--- a/files/poketool/personal/personal/narc_0291.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0292.bin b/files/poketool/personal/personal/narc_0292.bin
deleted file mode 100644
index 6ab488e0..00000000
--- a/files/poketool/personal/personal/narc_0292.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0293.bin b/files/poketool/personal/personal/narc_0293.bin
deleted file mode 100644
index 30680a39..00000000
--- a/files/poketool/personal/personal/narc_0293.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0294.bin b/files/poketool/personal/personal/narc_0294.bin
deleted file mode 100644
index 4f20560d..00000000
--- a/files/poketool/personal/personal/narc_0294.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0295.bin b/files/poketool/personal/personal/narc_0295.bin
deleted file mode 100644
index 9cadfa96..00000000
--- a/files/poketool/personal/personal/narc_0295.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0296.bin b/files/poketool/personal/personal/narc_0296.bin
deleted file mode 100644
index 355b7fb1..00000000
--- a/files/poketool/personal/personal/narc_0296.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0297.bin b/files/poketool/personal/personal/narc_0297.bin
deleted file mode 100644
index 8f8dc90f..00000000
--- a/files/poketool/personal/personal/narc_0297.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0298.bin b/files/poketool/personal/personal/narc_0298.bin
deleted file mode 100644
index f3b09812..00000000
--- a/files/poketool/personal/personal/narc_0298.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0299.bin b/files/poketool/personal/personal/narc_0299.bin
deleted file mode 100644
index ad932208..00000000
--- a/files/poketool/personal/personal/narc_0299.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0300.bin b/files/poketool/personal/personal/narc_0300.bin
deleted file mode 100644
index de24cbc3..00000000
--- a/files/poketool/personal/personal/narc_0300.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0301.bin b/files/poketool/personal/personal/narc_0301.bin
deleted file mode 100644
index e8fddad0..00000000
--- a/files/poketool/personal/personal/narc_0301.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0302.bin b/files/poketool/personal/personal/narc_0302.bin
deleted file mode 100644
index 5dc8f03f..00000000
--- a/files/poketool/personal/personal/narc_0302.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0303.bin b/files/poketool/personal/personal/narc_0303.bin
deleted file mode 100644
index 89afd55b..00000000
--- a/files/poketool/personal/personal/narc_0303.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0304.bin b/files/poketool/personal/personal/narc_0304.bin
deleted file mode 100644
index 0fe0952b..00000000
--- a/files/poketool/personal/personal/narc_0304.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0305.bin b/files/poketool/personal/personal/narc_0305.bin
deleted file mode 100644
index fa7b17a6..00000000
--- a/files/poketool/personal/personal/narc_0305.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0306.bin b/files/poketool/personal/personal/narc_0306.bin
deleted file mode 100644
index 8b24be01..00000000
--- a/files/poketool/personal/personal/narc_0306.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0307.bin b/files/poketool/personal/personal/narc_0307.bin
deleted file mode 100644
index 129d76ea..00000000
--- a/files/poketool/personal/personal/narc_0307.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0308.bin b/files/poketool/personal/personal/narc_0308.bin
deleted file mode 100644
index 119be19b..00000000
--- a/files/poketool/personal/personal/narc_0308.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0309.bin b/files/poketool/personal/personal/narc_0309.bin
deleted file mode 100644
index ec6c3f36..00000000
--- a/files/poketool/personal/personal/narc_0309.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0310.bin b/files/poketool/personal/personal/narc_0310.bin
deleted file mode 100644
index cef8fc8b..00000000
--- a/files/poketool/personal/personal/narc_0310.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0311.bin b/files/poketool/personal/personal/narc_0311.bin
deleted file mode 100644
index 0fc0fdb0..00000000
--- a/files/poketool/personal/personal/narc_0311.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0312.bin b/files/poketool/personal/personal/narc_0312.bin
deleted file mode 100644
index 5eb029a9..00000000
--- a/files/poketool/personal/personal/narc_0312.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0313.bin b/files/poketool/personal/personal/narc_0313.bin
deleted file mode 100644
index 8e3f103c..00000000
--- a/files/poketool/personal/personal/narc_0313.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0314.bin b/files/poketool/personal/personal/narc_0314.bin
deleted file mode 100644
index b676fae7..00000000
--- a/files/poketool/personal/personal/narc_0314.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0315.bin b/files/poketool/personal/personal/narc_0315.bin
deleted file mode 100644
index 17b7b0bf..00000000
--- a/files/poketool/personal/personal/narc_0315.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0316.bin b/files/poketool/personal/personal/narc_0316.bin
deleted file mode 100644
index ae329d6a..00000000
--- a/files/poketool/personal/personal/narc_0316.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0317.bin b/files/poketool/personal/personal/narc_0317.bin
deleted file mode 100644
index f481ebe8..00000000
--- a/files/poketool/personal/personal/narc_0317.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0318.bin b/files/poketool/personal/personal/narc_0318.bin
deleted file mode 100644
index 0891f072..00000000
--- a/files/poketool/personal/personal/narc_0318.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0319.bin b/files/poketool/personal/personal/narc_0319.bin
deleted file mode 100644
index dca667d0..00000000
--- a/files/poketool/personal/personal/narc_0319.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0320.bin b/files/poketool/personal/personal/narc_0320.bin
deleted file mode 100644
index 1e0a2ebf..00000000
--- a/files/poketool/personal/personal/narc_0320.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0321.bin b/files/poketool/personal/personal/narc_0321.bin
deleted file mode 100644
index 2310b5cc..00000000
--- a/files/poketool/personal/personal/narc_0321.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0322.bin b/files/poketool/personal/personal/narc_0322.bin
deleted file mode 100644
index 0ecd6c03..00000000
--- a/files/poketool/personal/personal/narc_0322.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0323.bin b/files/poketool/personal/personal/narc_0323.bin
deleted file mode 100644
index 7cba3a04..00000000
--- a/files/poketool/personal/personal/narc_0323.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0324.bin b/files/poketool/personal/personal/narc_0324.bin
deleted file mode 100644
index f821ffc7..00000000
--- a/files/poketool/personal/personal/narc_0324.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0325.bin b/files/poketool/personal/personal/narc_0325.bin
deleted file mode 100644
index f5ad285b..00000000
--- a/files/poketool/personal/personal/narc_0325.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0326.bin b/files/poketool/personal/personal/narc_0326.bin
deleted file mode 100644
index 58df1ba8..00000000
--- a/files/poketool/personal/personal/narc_0326.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0327.bin b/files/poketool/personal/personal/narc_0327.bin
deleted file mode 100644
index 3671b61b..00000000
--- a/files/poketool/personal/personal/narc_0327.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0328.bin b/files/poketool/personal/personal/narc_0328.bin
deleted file mode 100644
index 7323260e..00000000
--- a/files/poketool/personal/personal/narc_0328.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0329.bin b/files/poketool/personal/personal/narc_0329.bin
deleted file mode 100644
index 4bb4d4ea..00000000
--- a/files/poketool/personal/personal/narc_0329.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0330.bin b/files/poketool/personal/personal/narc_0330.bin
deleted file mode 100644
index f1816aa4..00000000
--- a/files/poketool/personal/personal/narc_0330.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0331.bin b/files/poketool/personal/personal/narc_0331.bin
deleted file mode 100644
index 11e2f132..00000000
--- a/files/poketool/personal/personal/narc_0331.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0332.bin b/files/poketool/personal/personal/narc_0332.bin
deleted file mode 100644
index 20ab3a95..00000000
--- a/files/poketool/personal/personal/narc_0332.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0333.bin b/files/poketool/personal/personal/narc_0333.bin
deleted file mode 100644
index 3edccf86..00000000
--- a/files/poketool/personal/personal/narc_0333.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0334.bin b/files/poketool/personal/personal/narc_0334.bin
deleted file mode 100644
index 77b3f34f..00000000
--- a/files/poketool/personal/personal/narc_0334.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0335.bin b/files/poketool/personal/personal/narc_0335.bin
deleted file mode 100644
index eaae117f..00000000
--- a/files/poketool/personal/personal/narc_0335.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0336.bin b/files/poketool/personal/personal/narc_0336.bin
deleted file mode 100644
index 8ee2cf3d..00000000
--- a/files/poketool/personal/personal/narc_0336.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0337.bin b/files/poketool/personal/personal/narc_0337.bin
deleted file mode 100644
index 3c7986ce..00000000
--- a/files/poketool/personal/personal/narc_0337.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0338.bin b/files/poketool/personal/personal/narc_0338.bin
deleted file mode 100644
index 5e9f60b2..00000000
--- a/files/poketool/personal/personal/narc_0338.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0339.bin b/files/poketool/personal/personal/narc_0339.bin
deleted file mode 100644
index 762e8675..00000000
--- a/files/poketool/personal/personal/narc_0339.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0340.bin b/files/poketool/personal/personal/narc_0340.bin
deleted file mode 100644
index ec14ab20..00000000
--- a/files/poketool/personal/personal/narc_0340.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0341.bin b/files/poketool/personal/personal/narc_0341.bin
deleted file mode 100644
index 3b524195..00000000
--- a/files/poketool/personal/personal/narc_0341.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0342.bin b/files/poketool/personal/personal/narc_0342.bin
deleted file mode 100644
index a1dc02df..00000000
--- a/files/poketool/personal/personal/narc_0342.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0343.bin b/files/poketool/personal/personal/narc_0343.bin
deleted file mode 100644
index 077e6f35..00000000
--- a/files/poketool/personal/personal/narc_0343.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0344.bin b/files/poketool/personal/personal/narc_0344.bin
deleted file mode 100644
index 4caf6153..00000000
--- a/files/poketool/personal/personal/narc_0344.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0345.bin b/files/poketool/personal/personal/narc_0345.bin
deleted file mode 100644
index 0e0f98c5..00000000
--- a/files/poketool/personal/personal/narc_0345.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0346.bin b/files/poketool/personal/personal/narc_0346.bin
deleted file mode 100644
index 8572115f..00000000
--- a/files/poketool/personal/personal/narc_0346.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0347.bin b/files/poketool/personal/personal/narc_0347.bin
deleted file mode 100644
index a28c37be..00000000
--- a/files/poketool/personal/personal/narc_0347.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0348.bin b/files/poketool/personal/personal/narc_0348.bin
deleted file mode 100644
index af1943e5..00000000
--- a/files/poketool/personal/personal/narc_0348.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0349.bin b/files/poketool/personal/personal/narc_0349.bin
deleted file mode 100644
index 62600bb5..00000000
--- a/files/poketool/personal/personal/narc_0349.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0350.bin b/files/poketool/personal/personal/narc_0350.bin
deleted file mode 100644
index 42fde59a..00000000
--- a/files/poketool/personal/personal/narc_0350.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0351.bin b/files/poketool/personal/personal/narc_0351.bin
deleted file mode 100644
index a7ee220c..00000000
--- a/files/poketool/personal/personal/narc_0351.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0352.bin b/files/poketool/personal/personal/narc_0352.bin
deleted file mode 100644
index ab06841f..00000000
--- a/files/poketool/personal/personal/narc_0352.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0353.bin b/files/poketool/personal/personal/narc_0353.bin
deleted file mode 100644
index 95c5431b..00000000
--- a/files/poketool/personal/personal/narc_0353.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0354.bin b/files/poketool/personal/personal/narc_0354.bin
deleted file mode 100644
index ced6106f..00000000
--- a/files/poketool/personal/personal/narc_0354.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0355.bin b/files/poketool/personal/personal/narc_0355.bin
deleted file mode 100644
index d012e188..00000000
--- a/files/poketool/personal/personal/narc_0355.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0356.bin b/files/poketool/personal/personal/narc_0356.bin
deleted file mode 100644
index 02859174..00000000
--- a/files/poketool/personal/personal/narc_0356.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0357.bin b/files/poketool/personal/personal/narc_0357.bin
deleted file mode 100644
index 0639cecf..00000000
--- a/files/poketool/personal/personal/narc_0357.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0358.bin b/files/poketool/personal/personal/narc_0358.bin
deleted file mode 100644
index 8b454a3b..00000000
--- a/files/poketool/personal/personal/narc_0358.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0359.bin b/files/poketool/personal/personal/narc_0359.bin
deleted file mode 100644
index e2d6466a..00000000
--- a/files/poketool/personal/personal/narc_0359.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0360.bin b/files/poketool/personal/personal/narc_0360.bin
deleted file mode 100644
index 2883c82e..00000000
--- a/files/poketool/personal/personal/narc_0360.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0361.bin b/files/poketool/personal/personal/narc_0361.bin
deleted file mode 100644
index 78152246..00000000
--- a/files/poketool/personal/personal/narc_0361.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0362.bin b/files/poketool/personal/personal/narc_0362.bin
deleted file mode 100644
index 328df151..00000000
--- a/files/poketool/personal/personal/narc_0362.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0363.bin b/files/poketool/personal/personal/narc_0363.bin
deleted file mode 100644
index bcac12f5..00000000
--- a/files/poketool/personal/personal/narc_0363.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0364.bin b/files/poketool/personal/personal/narc_0364.bin
deleted file mode 100644
index 1704550b..00000000
--- a/files/poketool/personal/personal/narc_0364.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0365.bin b/files/poketool/personal/personal/narc_0365.bin
deleted file mode 100644
index 34b5676a..00000000
--- a/files/poketool/personal/personal/narc_0365.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0366.bin b/files/poketool/personal/personal/narc_0366.bin
deleted file mode 100644
index ab54ee76..00000000
--- a/files/poketool/personal/personal/narc_0366.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0367.bin b/files/poketool/personal/personal/narc_0367.bin
deleted file mode 100644
index 6f1f812c..00000000
--- a/files/poketool/personal/personal/narc_0367.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0368.bin b/files/poketool/personal/personal/narc_0368.bin
deleted file mode 100644
index d2af8df6..00000000
--- a/files/poketool/personal/personal/narc_0368.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0369.bin b/files/poketool/personal/personal/narc_0369.bin
deleted file mode 100644
index a99f1098..00000000
--- a/files/poketool/personal/personal/narc_0369.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0370.bin b/files/poketool/personal/personal/narc_0370.bin
deleted file mode 100644
index c0ef9410..00000000
--- a/files/poketool/personal/personal/narc_0370.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0371.bin b/files/poketool/personal/personal/narc_0371.bin
deleted file mode 100644
index 8ef0519a..00000000
--- a/files/poketool/personal/personal/narc_0371.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0372.bin b/files/poketool/personal/personal/narc_0372.bin
deleted file mode 100644
index d8e29f13..00000000
--- a/files/poketool/personal/personal/narc_0372.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0373.bin b/files/poketool/personal/personal/narc_0373.bin
deleted file mode 100644
index 1479e0bd..00000000
--- a/files/poketool/personal/personal/narc_0373.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0374.bin b/files/poketool/personal/personal/narc_0374.bin
deleted file mode 100644
index 2c74d378..00000000
--- a/files/poketool/personal/personal/narc_0374.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0375.bin b/files/poketool/personal/personal/narc_0375.bin
deleted file mode 100644
index 43ca859a..00000000
--- a/files/poketool/personal/personal/narc_0375.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0376.bin b/files/poketool/personal/personal/narc_0376.bin
deleted file mode 100644
index b207869e..00000000
--- a/files/poketool/personal/personal/narc_0376.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0377.bin b/files/poketool/personal/personal/narc_0377.bin
deleted file mode 100644
index 122bc3f1..00000000
--- a/files/poketool/personal/personal/narc_0377.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0378.bin b/files/poketool/personal/personal/narc_0378.bin
deleted file mode 100644
index 84f7a5a1..00000000
--- a/files/poketool/personal/personal/narc_0378.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0379.bin b/files/poketool/personal/personal/narc_0379.bin
deleted file mode 100644
index 9d08053d..00000000
--- a/files/poketool/personal/personal/narc_0379.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0380.bin b/files/poketool/personal/personal/narc_0380.bin
deleted file mode 100644
index ee0cce7c..00000000
--- a/files/poketool/personal/personal/narc_0380.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0381.bin b/files/poketool/personal/personal/narc_0381.bin
deleted file mode 100644
index 463febf8..00000000
--- a/files/poketool/personal/personal/narc_0381.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0382.bin b/files/poketool/personal/personal/narc_0382.bin
deleted file mode 100644
index a26e2da3..00000000
--- a/files/poketool/personal/personal/narc_0382.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0383.bin b/files/poketool/personal/personal/narc_0383.bin
deleted file mode 100644
index 4327fb24..00000000
--- a/files/poketool/personal/personal/narc_0383.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0384.bin b/files/poketool/personal/personal/narc_0384.bin
deleted file mode 100644
index 5dbedb7c..00000000
--- a/files/poketool/personal/personal/narc_0384.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0385.bin b/files/poketool/personal/personal/narc_0385.bin
deleted file mode 100644
index ee724fe6..00000000
--- a/files/poketool/personal/personal/narc_0385.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0386.bin b/files/poketool/personal/personal/narc_0386.bin
deleted file mode 100644
index dd17f815..00000000
--- a/files/poketool/personal/personal/narc_0386.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0387.bin b/files/poketool/personal/personal/narc_0387.bin
deleted file mode 100644
index 97cb50f4..00000000
--- a/files/poketool/personal/personal/narc_0387.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0388.bin b/files/poketool/personal/personal/narc_0388.bin
deleted file mode 100644
index 2bd70dc8..00000000
--- a/files/poketool/personal/personal/narc_0388.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0389.bin b/files/poketool/personal/personal/narc_0389.bin
deleted file mode 100644
index b206e268..00000000
--- a/files/poketool/personal/personal/narc_0389.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0390.bin b/files/poketool/personal/personal/narc_0390.bin
deleted file mode 100644
index 005d9b11..00000000
--- a/files/poketool/personal/personal/narc_0390.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0391.bin b/files/poketool/personal/personal/narc_0391.bin
deleted file mode 100644
index 7a31829c..00000000
--- a/files/poketool/personal/personal/narc_0391.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0392.bin b/files/poketool/personal/personal/narc_0392.bin
deleted file mode 100644
index a020b144..00000000
--- a/files/poketool/personal/personal/narc_0392.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0393.bin b/files/poketool/personal/personal/narc_0393.bin
deleted file mode 100644
index f9b40c24..00000000
--- a/files/poketool/personal/personal/narc_0393.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0394.bin b/files/poketool/personal/personal/narc_0394.bin
deleted file mode 100644
index 70fe69c5..00000000
--- a/files/poketool/personal/personal/narc_0394.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0395.bin b/files/poketool/personal/personal/narc_0395.bin
deleted file mode 100644
index 26bdba06..00000000
--- a/files/poketool/personal/personal/narc_0395.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0396.bin b/files/poketool/personal/personal/narc_0396.bin
deleted file mode 100644
index 62133578..00000000
--- a/files/poketool/personal/personal/narc_0396.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0397.bin b/files/poketool/personal/personal/narc_0397.bin
deleted file mode 100644
index 0df7d9a2..00000000
--- a/files/poketool/personal/personal/narc_0397.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0398.bin b/files/poketool/personal/personal/narc_0398.bin
deleted file mode 100644
index 1c1b731b..00000000
--- a/files/poketool/personal/personal/narc_0398.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0399.bin b/files/poketool/personal/personal/narc_0399.bin
deleted file mode 100644
index 9df45271..00000000
--- a/files/poketool/personal/personal/narc_0399.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0400.bin b/files/poketool/personal/personal/narc_0400.bin
deleted file mode 100644
index 1d70a73b..00000000
--- a/files/poketool/personal/personal/narc_0400.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0401.bin b/files/poketool/personal/personal/narc_0401.bin
deleted file mode 100644
index 2ae9dc5e..00000000
--- a/files/poketool/personal/personal/narc_0401.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0402.bin b/files/poketool/personal/personal/narc_0402.bin
deleted file mode 100644
index 373621cf..00000000
--- a/files/poketool/personal/personal/narc_0402.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0403.bin b/files/poketool/personal/personal/narc_0403.bin
deleted file mode 100644
index a30624a6..00000000
--- a/files/poketool/personal/personal/narc_0403.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0404.bin b/files/poketool/personal/personal/narc_0404.bin
deleted file mode 100644
index af532005..00000000
--- a/files/poketool/personal/personal/narc_0404.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0405.bin b/files/poketool/personal/personal/narc_0405.bin
deleted file mode 100644
index cc055a0a..00000000
--- a/files/poketool/personal/personal/narc_0405.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0406.bin b/files/poketool/personal/personal/narc_0406.bin
deleted file mode 100644
index 8ea89ada..00000000
--- a/files/poketool/personal/personal/narc_0406.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0407.bin b/files/poketool/personal/personal/narc_0407.bin
deleted file mode 100644
index 3614b590..00000000
--- a/files/poketool/personal/personal/narc_0407.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0408.bin b/files/poketool/personal/personal/narc_0408.bin
deleted file mode 100644
index c80d78c9..00000000
--- a/files/poketool/personal/personal/narc_0408.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0409.bin b/files/poketool/personal/personal/narc_0409.bin
deleted file mode 100644
index 0a744147..00000000
--- a/files/poketool/personal/personal/narc_0409.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0410.bin b/files/poketool/personal/personal/narc_0410.bin
deleted file mode 100644
index 147a8595..00000000
--- a/files/poketool/personal/personal/narc_0410.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0411.bin b/files/poketool/personal/personal/narc_0411.bin
deleted file mode 100644
index f42a47f4..00000000
--- a/files/poketool/personal/personal/narc_0411.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0412.bin b/files/poketool/personal/personal/narc_0412.bin
deleted file mode 100644
index 08a73530..00000000
--- a/files/poketool/personal/personal/narc_0412.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0413.bin b/files/poketool/personal/personal/narc_0413.bin
deleted file mode 100644
index 0e03dd14..00000000
--- a/files/poketool/personal/personal/narc_0413.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0414.bin b/files/poketool/personal/personal/narc_0414.bin
deleted file mode 100644
index 09278b74..00000000
--- a/files/poketool/personal/personal/narc_0414.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0415.bin b/files/poketool/personal/personal/narc_0415.bin
deleted file mode 100644
index 1b0a2562..00000000
--- a/files/poketool/personal/personal/narc_0415.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0416.bin b/files/poketool/personal/personal/narc_0416.bin
deleted file mode 100644
index 06d17184..00000000
--- a/files/poketool/personal/personal/narc_0416.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0417.bin b/files/poketool/personal/personal/narc_0417.bin
deleted file mode 100644
index 810afa0b..00000000
--- a/files/poketool/personal/personal/narc_0417.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0418.bin b/files/poketool/personal/personal/narc_0418.bin
deleted file mode 100644
index cc02626f..00000000
--- a/files/poketool/personal/personal/narc_0418.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0419.bin b/files/poketool/personal/personal/narc_0419.bin
deleted file mode 100644
index d8675e25..00000000
--- a/files/poketool/personal/personal/narc_0419.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0420.bin b/files/poketool/personal/personal/narc_0420.bin
deleted file mode 100644
index 9de836f7..00000000
--- a/files/poketool/personal/personal/narc_0420.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0421.bin b/files/poketool/personal/personal/narc_0421.bin
deleted file mode 100644
index 0376703b..00000000
--- a/files/poketool/personal/personal/narc_0421.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0422.bin b/files/poketool/personal/personal/narc_0422.bin
deleted file mode 100644
index a3e27edd..00000000
--- a/files/poketool/personal/personal/narc_0422.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0423.bin b/files/poketool/personal/personal/narc_0423.bin
deleted file mode 100644
index 6eeccf86..00000000
--- a/files/poketool/personal/personal/narc_0423.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0424.bin b/files/poketool/personal/personal/narc_0424.bin
deleted file mode 100644
index bb856f28..00000000
--- a/files/poketool/personal/personal/narc_0424.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0425.bin b/files/poketool/personal/personal/narc_0425.bin
deleted file mode 100644
index 1d482a0f..00000000
--- a/files/poketool/personal/personal/narc_0425.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0426.bin b/files/poketool/personal/personal/narc_0426.bin
deleted file mode 100644
index 417d134d..00000000
--- a/files/poketool/personal/personal/narc_0426.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0427.bin b/files/poketool/personal/personal/narc_0427.bin
deleted file mode 100644
index 0afb1be3..00000000
--- a/files/poketool/personal/personal/narc_0427.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0428.bin b/files/poketool/personal/personal/narc_0428.bin
deleted file mode 100644
index 3501c3e5..00000000
--- a/files/poketool/personal/personal/narc_0428.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0429.bin b/files/poketool/personal/personal/narc_0429.bin
deleted file mode 100644
index 32dbda05..00000000
--- a/files/poketool/personal/personal/narc_0429.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0430.bin b/files/poketool/personal/personal/narc_0430.bin
deleted file mode 100644
index 4aa8515f..00000000
--- a/files/poketool/personal/personal/narc_0430.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0431.bin b/files/poketool/personal/personal/narc_0431.bin
deleted file mode 100644
index 192fb623..00000000
--- a/files/poketool/personal/personal/narc_0431.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0432.bin b/files/poketool/personal/personal/narc_0432.bin
deleted file mode 100644
index 47600951..00000000
--- a/files/poketool/personal/personal/narc_0432.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0433.bin b/files/poketool/personal/personal/narc_0433.bin
deleted file mode 100644
index 11f6e908..00000000
--- a/files/poketool/personal/personal/narc_0433.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0434.bin b/files/poketool/personal/personal/narc_0434.bin
deleted file mode 100644
index a59d92b5..00000000
--- a/files/poketool/personal/personal/narc_0434.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0435.bin b/files/poketool/personal/personal/narc_0435.bin
deleted file mode 100644
index 2a982eb1..00000000
--- a/files/poketool/personal/personal/narc_0435.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0436.bin b/files/poketool/personal/personal/narc_0436.bin
deleted file mode 100644
index af763155..00000000
--- a/files/poketool/personal/personal/narc_0436.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0437.bin b/files/poketool/personal/personal/narc_0437.bin
deleted file mode 100644
index af068d91..00000000
--- a/files/poketool/personal/personal/narc_0437.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0438.bin b/files/poketool/personal/personal/narc_0438.bin
deleted file mode 100644
index 456ba6ba..00000000
--- a/files/poketool/personal/personal/narc_0438.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0439.bin b/files/poketool/personal/personal/narc_0439.bin
deleted file mode 100644
index 481170cc..00000000
--- a/files/poketool/personal/personal/narc_0439.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0440.bin b/files/poketool/personal/personal/narc_0440.bin
deleted file mode 100644
index 602618f8..00000000
--- a/files/poketool/personal/personal/narc_0440.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0441.bin b/files/poketool/personal/personal/narc_0441.bin
deleted file mode 100644
index a263ae54..00000000
--- a/files/poketool/personal/personal/narc_0441.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0442.bin b/files/poketool/personal/personal/narc_0442.bin
deleted file mode 100644
index 6b670699..00000000
--- a/files/poketool/personal/personal/narc_0442.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0443.bin b/files/poketool/personal/personal/narc_0443.bin
deleted file mode 100644
index a4517fa1..00000000
--- a/files/poketool/personal/personal/narc_0443.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0444.bin b/files/poketool/personal/personal/narc_0444.bin
deleted file mode 100644
index 99f4fc5e..00000000
--- a/files/poketool/personal/personal/narc_0444.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0445.bin b/files/poketool/personal/personal/narc_0445.bin
deleted file mode 100644
index 6e7cf68f..00000000
--- a/files/poketool/personal/personal/narc_0445.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0446.bin b/files/poketool/personal/personal/narc_0446.bin
deleted file mode 100644
index f4c66a43..00000000
--- a/files/poketool/personal/personal/narc_0446.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0447.bin b/files/poketool/personal/personal/narc_0447.bin
deleted file mode 100644
index 5d7d6ff5..00000000
--- a/files/poketool/personal/personal/narc_0447.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0448.bin b/files/poketool/personal/personal/narc_0448.bin
deleted file mode 100644
index 073dfdf0..00000000
--- a/files/poketool/personal/personal/narc_0448.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0449.bin b/files/poketool/personal/personal/narc_0449.bin
deleted file mode 100644
index 199ff2fb..00000000
--- a/files/poketool/personal/personal/narc_0449.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0450.bin b/files/poketool/personal/personal/narc_0450.bin
deleted file mode 100644
index 7f006d66..00000000
--- a/files/poketool/personal/personal/narc_0450.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0451.bin b/files/poketool/personal/personal/narc_0451.bin
deleted file mode 100644
index ca5f466b..00000000
--- a/files/poketool/personal/personal/narc_0451.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0452.bin b/files/poketool/personal/personal/narc_0452.bin
deleted file mode 100644
index e1b2af09..00000000
--- a/files/poketool/personal/personal/narc_0452.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0453.bin b/files/poketool/personal/personal/narc_0453.bin
deleted file mode 100644
index 435e7f88..00000000
--- a/files/poketool/personal/personal/narc_0453.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0454.bin b/files/poketool/personal/personal/narc_0454.bin
deleted file mode 100644
index b0f6a59d..00000000
--- a/files/poketool/personal/personal/narc_0454.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0455.bin b/files/poketool/personal/personal/narc_0455.bin
deleted file mode 100644
index f0c65092..00000000
--- a/files/poketool/personal/personal/narc_0455.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0456.bin b/files/poketool/personal/personal/narc_0456.bin
deleted file mode 100644
index d18ada91..00000000
--- a/files/poketool/personal/personal/narc_0456.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0457.bin b/files/poketool/personal/personal/narc_0457.bin
deleted file mode 100644
index ad9b4b46..00000000
--- a/files/poketool/personal/personal/narc_0457.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0458.bin b/files/poketool/personal/personal/narc_0458.bin
deleted file mode 100644
index 0f574341..00000000
--- a/files/poketool/personal/personal/narc_0458.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0459.bin b/files/poketool/personal/personal/narc_0459.bin
deleted file mode 100644
index 457b150f..00000000
--- a/files/poketool/personal/personal/narc_0459.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0460.bin b/files/poketool/personal/personal/narc_0460.bin
deleted file mode 100644
index 55674bde..00000000
--- a/files/poketool/personal/personal/narc_0460.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0461.bin b/files/poketool/personal/personal/narc_0461.bin
deleted file mode 100644
index ba5d49de..00000000
--- a/files/poketool/personal/personal/narc_0461.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0462.bin b/files/poketool/personal/personal/narc_0462.bin
deleted file mode 100644
index 273afac2..00000000
--- a/files/poketool/personal/personal/narc_0462.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0463.bin b/files/poketool/personal/personal/narc_0463.bin
deleted file mode 100644
index 9c96fe10..00000000
--- a/files/poketool/personal/personal/narc_0463.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0464.bin b/files/poketool/personal/personal/narc_0464.bin
deleted file mode 100644
index c41f7ded..00000000
--- a/files/poketool/personal/personal/narc_0464.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0465.bin b/files/poketool/personal/personal/narc_0465.bin
deleted file mode 100644
index 4d7fdd07..00000000
--- a/files/poketool/personal/personal/narc_0465.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0466.bin b/files/poketool/personal/personal/narc_0466.bin
deleted file mode 100644
index 9c0b680a..00000000
--- a/files/poketool/personal/personal/narc_0466.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0467.bin b/files/poketool/personal/personal/narc_0467.bin
deleted file mode 100644
index cb23f85a..00000000
--- a/files/poketool/personal/personal/narc_0467.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0468.bin b/files/poketool/personal/personal/narc_0468.bin
deleted file mode 100644
index dca0cf37..00000000
--- a/files/poketool/personal/personal/narc_0468.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0469.bin b/files/poketool/personal/personal/narc_0469.bin
deleted file mode 100644
index 6b51a4af..00000000
--- a/files/poketool/personal/personal/narc_0469.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0470.bin b/files/poketool/personal/personal/narc_0470.bin
deleted file mode 100644
index c0bcfef6..00000000
--- a/files/poketool/personal/personal/narc_0470.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0471.bin b/files/poketool/personal/personal/narc_0471.bin
deleted file mode 100644
index 59dc3984..00000000
--- a/files/poketool/personal/personal/narc_0471.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0472.bin b/files/poketool/personal/personal/narc_0472.bin
deleted file mode 100644
index 51df258e..00000000
--- a/files/poketool/personal/personal/narc_0472.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0473.bin b/files/poketool/personal/personal/narc_0473.bin
deleted file mode 100644
index c68e1e48..00000000
--- a/files/poketool/personal/personal/narc_0473.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0474.bin b/files/poketool/personal/personal/narc_0474.bin
deleted file mode 100644
index 483347dc..00000000
--- a/files/poketool/personal/personal/narc_0474.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0475.bin b/files/poketool/personal/personal/narc_0475.bin
deleted file mode 100644
index 79390b9a..00000000
--- a/files/poketool/personal/personal/narc_0475.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0476.bin b/files/poketool/personal/personal/narc_0476.bin
deleted file mode 100644
index 2bdcde49..00000000
--- a/files/poketool/personal/personal/narc_0476.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0477.bin b/files/poketool/personal/personal/narc_0477.bin
deleted file mode 100644
index 713c6c5d..00000000
--- a/files/poketool/personal/personal/narc_0477.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0478.bin b/files/poketool/personal/personal/narc_0478.bin
deleted file mode 100644
index 1730aa54..00000000
--- a/files/poketool/personal/personal/narc_0478.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0479.bin b/files/poketool/personal/personal/narc_0479.bin
deleted file mode 100644
index e880001b..00000000
--- a/files/poketool/personal/personal/narc_0479.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0480.bin b/files/poketool/personal/personal/narc_0480.bin
deleted file mode 100644
index c54cd125..00000000
--- a/files/poketool/personal/personal/narc_0480.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0481.bin b/files/poketool/personal/personal/narc_0481.bin
deleted file mode 100644
index 48cc45cb..00000000
--- a/files/poketool/personal/personal/narc_0481.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0482.bin b/files/poketool/personal/personal/narc_0482.bin
deleted file mode 100644
index 0da4b12d..00000000
--- a/files/poketool/personal/personal/narc_0482.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0483.bin b/files/poketool/personal/personal/narc_0483.bin
deleted file mode 100644
index c85e67ea..00000000
--- a/files/poketool/personal/personal/narc_0483.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0484.bin b/files/poketool/personal/personal/narc_0484.bin
deleted file mode 100644
index caa36111..00000000
--- a/files/poketool/personal/personal/narc_0484.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0485.bin b/files/poketool/personal/personal/narc_0485.bin
deleted file mode 100644
index 4842975e..00000000
--- a/files/poketool/personal/personal/narc_0485.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0486.bin b/files/poketool/personal/personal/narc_0486.bin
deleted file mode 100644
index 519fbfe2..00000000
--- a/files/poketool/personal/personal/narc_0486.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0487.bin b/files/poketool/personal/personal/narc_0487.bin
deleted file mode 100644
index 9a8f0a07..00000000
--- a/files/poketool/personal/personal/narc_0487.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0488.bin b/files/poketool/personal/personal/narc_0488.bin
deleted file mode 100644
index 583d6f5a..00000000
--- a/files/poketool/personal/personal/narc_0488.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0489.bin b/files/poketool/personal/personal/narc_0489.bin
deleted file mode 100644
index ceb887da..00000000
--- a/files/poketool/personal/personal/narc_0489.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0490.bin b/files/poketool/personal/personal/narc_0490.bin
deleted file mode 100644
index b71096d6..00000000
--- a/files/poketool/personal/personal/narc_0490.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0491.bin b/files/poketool/personal/personal/narc_0491.bin
deleted file mode 100644
index ada17971..00000000
--- a/files/poketool/personal/personal/narc_0491.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0492.bin b/files/poketool/personal/personal/narc_0492.bin
deleted file mode 100644
index e2578551..00000000
--- a/files/poketool/personal/personal/narc_0492.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0493.bin b/files/poketool/personal/personal/narc_0493.bin
deleted file mode 100644
index 4855c891..00000000
--- a/files/poketool/personal/personal/narc_0493.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0494.bin b/files/poketool/personal/personal/narc_0494.bin
deleted file mode 100644
index c54a383d..00000000
--- a/files/poketool/personal/personal/narc_0494.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0495.bin b/files/poketool/personal/personal/narc_0495.bin
deleted file mode 100644
index c54a383d..00000000
--- a/files/poketool/personal/personal/narc_0495.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0496.bin b/files/poketool/personal/personal/narc_0496.bin
deleted file mode 100644
index 6feafeb2..00000000
--- a/files/poketool/personal/personal/narc_0496.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0497.bin b/files/poketool/personal/personal/narc_0497.bin
deleted file mode 100644
index ad9d4209..00000000
--- a/files/poketool/personal/personal/narc_0497.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0498.bin b/files/poketool/personal/personal/narc_0498.bin
deleted file mode 100644
index 556ec429..00000000
--- a/files/poketool/personal/personal/narc_0498.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0499.bin b/files/poketool/personal/personal/narc_0499.bin
deleted file mode 100644
index 53f74e55..00000000
--- a/files/poketool/personal/personal/narc_0499.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/personal/narc_0500.bin b/files/poketool/personal/personal/narc_0500.bin
deleted file mode 100644
index 98f26ef1..00000000
--- a/files/poketool/personal/personal/narc_0500.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/pms.json b/files/poketool/personal/pms.json
new file mode 100644
index 00000000..07003ed9
--- /dev/null
+++ b/files/poketool/personal/pms.json
@@ -0,0 +1,505 @@
+{
+ "pms": [
+ "NONE",
+ "BULBASAUR",
+ "BULBASAUR",
+ "BULBASAUR",
+ "CHARMANDER",
+ "CHARMANDER",
+ "CHARMANDER",
+ "SQUIRTLE",
+ "SQUIRTLE",
+ "SQUIRTLE",
+ "CATERPIE",
+ "CATERPIE",
+ "CATERPIE",
+ "WEEDLE",
+ "WEEDLE",
+ "WEEDLE",
+ "PIDGEY",
+ "PIDGEY",
+ "PIDGEY",
+ "RATTATA",
+ "RATTATA",
+ "SPEAROW",
+ "SPEAROW",
+ "EKANS",
+ "EKANS",
+ "PICHU",
+ "PICHU",
+ "SANDSHREW",
+ "SANDSHREW",
+ "NIDORAN_F",
+ "NIDORAN_F",
+ "NIDORAN_F",
+ "NIDORAN_M",
+ "NIDORAN_M",
+ "NIDORAN_M",
+ "CLEFFA",
+ "CLEFFA",
+ "VULPIX",
+ "VULPIX",
+ "IGGLYBUFF",
+ "IGGLYBUFF",
+ "ZUBAT",
+ "ZUBAT",
+ "ODDISH",
+ "ODDISH",
+ "ODDISH",
+ "PARAS",
+ "PARAS",
+ "VENONAT",
+ "VENONAT",
+ "DIGLETT",
+ "DIGLETT",
+ "MEOWTH",
+ "MEOWTH",
+ "PSYDUCK",
+ "PSYDUCK",
+ "MANKEY",
+ "MANKEY",
+ "GROWLITHE",
+ "GROWLITHE",
+ "POLIWAG",
+ "POLIWAG",
+ "POLIWAG",
+ "ABRA",
+ "ABRA",
+ "ABRA",
+ "MACHOP",
+ "MACHOP",
+ "MACHOP",
+ "BELLSPROUT",
+ "BELLSPROUT",
+ "BELLSPROUT",
+ "TENTACOOL",
+ "TENTACOOL",
+ "GEODUDE",
+ "GEODUDE",
+ "GEODUDE",
+ "PONYTA",
+ "PONYTA",
+ "SLOWPOKE",
+ "SLOWPOKE",
+ "MAGNEMITE",
+ "MAGNEMITE",
+ "FARFETCHD",
+ "DODUO",
+ "DODUO",
+ "SEEL",
+ "SEEL",
+ "GRIMER",
+ "GRIMER",
+ "SHELLDER",
+ "SHELLDER",
+ "GASTLY",
+ "GASTLY",
+ "GASTLY",
+ "ONIX",
+ "DROWZEE",
+ "DROWZEE",
+ "KRABBY",
+ "KRABBY",
+ "VOLTORB",
+ "VOLTORB",
+ "EXEGGCUTE",
+ "EXEGGCUTE",
+ "CUBONE",
+ "CUBONE",
+ "TYROGUE",
+ "TYROGUE",
+ "LICKITUNG",
+ "KOFFING",
+ "KOFFING",
+ "RHYHORN",
+ "RHYHORN",
+ "HAPPINY",
+ "TANGELA",
+ "KANGASKHAN",
+ "HORSEA",
+ "HORSEA",
+ "GOLDEEN",
+ "GOLDEEN",
+ "STARYU",
+ "STARYU",
+ "MIME_JR",
+ "SCYTHER",
+ "SMOOCHUM",
+ "ELEKID",
+ "MAGBY",
+ "PINSIR",
+ "TAUROS",
+ "MAGIKARP",
+ "MAGIKARP",
+ "LAPRAS",
+ "DITTO",
+ "EEVEE",
+ "EEVEE",
+ "EEVEE",
+ "EEVEE",
+ "PORYGON",
+ "OMANYTE",
+ "OMANYTE",
+ "KABUTO",
+ "KABUTO",
+ "AERODACTYL",
+ "MUNCHLAX",
+ "ARTICUNO",
+ "ZAPDOS",
+ "MOLTRES",
+ "DRATINI",
+ "DRATINI",
+ "DRATINI",
+ "MEWTWO",
+ "MEW",
+ "CHIKORITA",
+ "CHIKORITA",
+ "CHIKORITA",
+ "CYNDAQUIL",
+ "CYNDAQUIL",
+ "CYNDAQUIL",
+ "TOTODILE",
+ "TOTODILE",
+ "TOTODILE",
+ "SENTRET",
+ "SENTRET",
+ "HOOTHOOT",
+ "HOOTHOOT",
+ "LEDYBA",
+ "LEDYBA",
+ "SPINARAK",
+ "SPINARAK",
+ "ZUBAT",
+ "CHINCHOU",
+ "CHINCHOU",
+ "PICHU",
+ "CLEFFA",
+ "IGGLYBUFF",
+ "TOGEPI",
+ "TOGEPI",
+ "NATU",
+ "NATU",
+ "MAREEP",
+ "MAREEP",
+ "MAREEP",
+ "ODDISH",
+ "AZURILL",
+ "AZURILL",
+ "BONSLY",
+ "POLIWAG",
+ "HOPPIP",
+ "HOPPIP",
+ "HOPPIP",
+ "AIPOM",
+ "SUNKERN",
+ "SUNKERN",
+ "YANMA",
+ "WOOPER",
+ "WOOPER",
+ "EEVEE",
+ "EEVEE",
+ "MURKROW",
+ "SLOWPOKE",
+ "MISDREAVUS",
+ "UNOWN",
+ "WYNAUT",
+ "GIRAFARIG",
+ "PINECO",
+ "PINECO",
+ "DUNSPARCE",
+ "GLIGAR",
+ "ONIX",
+ "SNUBBULL",
+ "SNUBBULL",
+ "QWILFISH",
+ "SCYTHER",
+ "SHUCKLE",
+ "HERACROSS",
+ "SNEASEL",
+ "TEDDIURSA",
+ "TEDDIURSA",
+ "SLUGMA",
+ "SLUGMA",
+ "SWINUB",
+ "SWINUB",
+ "CORSOLA",
+ "REMORAID",
+ "REMORAID",
+ "DELIBIRD",
+ "MANTYKE",
+ "SKARMORY",
+ "HOUNDOUR",
+ "HOUNDOUR",
+ "HORSEA",
+ "PHANPY",
+ "PHANPY",
+ "PORYGON",
+ "STANTLER",
+ "SMEARGLE",
+ "TYROGUE",
+ "TYROGUE",
+ "SMOOCHUM",
+ "ELEKID",
+ "MAGBY",
+ "MILTANK",
+ "HAPPINY",
+ "RAIKOU",
+ "ENTEI",
+ "SUICUNE",
+ "LARVITAR",
+ "LARVITAR",
+ "LARVITAR",
+ "LUGIA",
+ "HO_OH",
+ "CELEBI",
+ "TREECKO",
+ "TREECKO",
+ "TREECKO",
+ "TORCHIC",
+ "TORCHIC",
+ "TORCHIC",
+ "MUDKIP",
+ "MUDKIP",
+ "MUDKIP",
+ "POOCHYENA",
+ "POOCHYENA",
+ "ZIGZAGOON",
+ "ZIGZAGOON",
+ "WURMPLE",
+ "WURMPLE",
+ "WURMPLE",
+ "WURMPLE",
+ "WURMPLE",
+ "LOTAD",
+ "LOTAD",
+ "LOTAD",
+ "SEEDOT",
+ "SEEDOT",
+ "SEEDOT",
+ "TAILLOW",
+ "TAILLOW",
+ "WINGULL",
+ "WINGULL",
+ "RALTS",
+ "RALTS",
+ "RALTS",
+ "SURSKIT",
+ "SURSKIT",
+ "SHROOMISH",
+ "SHROOMISH",
+ "SLAKOTH",
+ "SLAKOTH",
+ "SLAKOTH",
+ "NINCADA",
+ "NINCADA",
+ "NINCADA",
+ "WHISMUR",
+ "WHISMUR",
+ "WHISMUR",
+ "MAKUHITA",
+ "MAKUHITA",
+ "AZURILL",
+ "NOSEPASS",
+ "SKITTY",
+ "SKITTY",
+ "SABLEYE",
+ "MAWILE",
+ "ARON",
+ "ARON",
+ "ARON",
+ "MEDITITE",
+ "MEDITITE",
+ "ELECTRIKE",
+ "ELECTRIKE",
+ "PLUSLE",
+ "MINUN",
+ "VOLBEAT",
+ "ILLUMISE",
+ "BUDEW",
+ "GULPIN",
+ "GULPIN",
+ "CARVANHA",
+ "CARVANHA",
+ "WAILMER",
+ "WAILMER",
+ "NUMEL",
+ "NUMEL",
+ "TORKOAL",
+ "SPOINK",
+ "SPOINK",
+ "SPINDA",
+ "TRAPINCH",
+ "TRAPINCH",
+ "TRAPINCH",
+ "CACNEA",
+ "CACNEA",
+ "SWABLU",
+ "SWABLU",
+ "ZANGOOSE",
+ "SEVIPER",
+ "LUNATONE",
+ "SOLROCK",
+ "BARBOACH",
+ "BARBOACH",
+ "CORPHISH",
+ "CORPHISH",
+ "BALTOY",
+ "BALTOY",
+ "LILEEP",
+ "LILEEP",
+ "ANORITH",
+ "ANORITH",
+ "FEEBAS",
+ "FEEBAS",
+ "CASTFORM",
+ "KECLEON",
+ "SHUPPET",
+ "SHUPPET",
+ "DUSKULL",
+ "DUSKULL",
+ "TROPIUS",
+ "CHINGLING",
+ "ABSOL",
+ "WYNAUT",
+ "SNORUNT",
+ "SNORUNT",
+ "SPHEAL",
+ "SPHEAL",
+ "SPHEAL",
+ "CLAMPERL",
+ "CLAMPERL",
+ "CLAMPERL",
+ "RELICANTH",
+ "LUVDISC",
+ "BAGON",
+ "BAGON",
+ "BAGON",
+ "BELDUM",
+ "BELDUM",
+ "BELDUM",
+ "REGIROCK",
+ "REGICE",
+ "REGISTEEL",
+ "LATIAS",
+ "LATIOS",
+ "KYOGRE",
+ "GROUDON",
+ "RAYQUAZA",
+ "JIRACHI",
+ "DEOXYS",
+ "TURTWIG",
+ "TURTWIG",
+ "TURTWIG",
+ "CHIMCHAR",
+ "CHIMCHAR",
+ "CHIMCHAR",
+ "PIPLUP",
+ "PIPLUP",
+ "PIPLUP",
+ "STARLY",
+ "STARLY",
+ "STARLY",
+ "BIDOOF",
+ "BIDOOF",
+ "KRICKETOT",
+ "KRICKETOT",
+ "SHINX",
+ "SHINX",
+ "SHINX",
+ "BUDEW",
+ "BUDEW",
+ "CRANIDOS",
+ "CRANIDOS",
+ "SHIELDON",
+ "SHIELDON",
+ "BURMY",
+ "BURMY",
+ "BURMY",
+ "COMBEE",
+ "COMBEE",
+ "PACHIRISU",
+ "BUIZEL",
+ "BUIZEL",
+ "CHERUBI",
+ "CHERUBI",
+ "SHELLOS",
+ "SHELLOS",
+ "AIPOM",
+ "DRIFLOON",
+ "DRIFLOON",
+ "BUNEARY",
+ "BUNEARY",
+ "MISDREAVUS",
+ "MURKROW",
+ "GLAMEOW",
+ "GLAMEOW",
+ "CHINGLING",
+ "STUNKY",
+ "STUNKY",
+ "BRONZOR",
+ "BRONZOR",
+ "BONSLY",
+ "MIME_JR",
+ "HAPPINY",
+ "CHATOT",
+ "SPIRITOMB",
+ "GIBLE",
+ "GIBLE",
+ "GIBLE",
+ "MUNCHLAX",
+ "RIOLU",
+ "RIOLU",
+ "HIPPOPOTAS",
+ "HIPPOPOTAS",
+ "SKORUPI",
+ "SKORUPI",
+ "CROAGUNK",
+ "CROAGUNK",
+ "CARNIVINE",
+ "FINNEON",
+ "FINNEON",
+ "MANTYKE",
+ "SNOVER",
+ "SNOVER",
+ "SNEASEL",
+ "MAGNEMITE",
+ "LICKITUNG",
+ "RHYHORN",
+ "TANGELA",
+ "ELEKID",
+ "MAGBY",
+ "TOGEPI",
+ "YANMA",
+ "EEVEE",
+ "EEVEE",
+ "GLIGAR",
+ "SWINUB",
+ "PORYGON",
+ "RALTS",
+ "NOSEPASS",
+ "DUSKULL",
+ "SNORUNT",
+ "ROTOM",
+ "UXIE",
+ "MESPRIT",
+ "AZELF",
+ "DIALGA",
+ "PALKIA",
+ "HEATRAN",
+ "REGIGIGAS",
+ "GIRATINA",
+ "CRESSELIA",
+ "PHIONE",
+ "MANAPHY",
+ "DARKRAI",
+ "SHAYMIN",
+ "ARCEUS",
+ "EGG",
+ "MANAPHY_EGG",
+ "DEOXYS_ATK",
+ "DEOXYS_DEF",
+ "DEOXYS_SPD",
+ "WORMADAM_SANDY",
+ "WORMADAM_TRASH"
+ ]
+}
diff --git a/files/poketool/personal/pms.json.txt b/files/poketool/personal/pms.json.txt
new file mode 100644
index 00000000..f9067903
--- /dev/null
+++ b/files/poketool/personal/pms.json.txt
@@ -0,0 +1,8 @@
+{{ doNotModifyHeader }}
+
+#include "global.h"
+#include "constants/species.h"
+
+const u16 pms[] = {
+ {% for pm in pms %}SPECIES_{{ pm }},{% endfor %}
+};
diff --git a/files/poketool/personal/pms.narc b/files/poketool/personal/pms.narc
deleted file mode 100644
index 97b69ced..00000000
--- a/files/poketool/personal/pms.narc
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl.json b/files/poketool/personal/wotbl.json
new file mode 100644
index 00000000..c14aeb3b
--- /dev/null
+++ b/files/poketool/personal/wotbl.json
@@ -0,0 +1,28896 @@
+{
+ "wotbl": [
+ {
+ "species": "NONE",
+ "moves": []
+ },
+ {
+ "species": "BULBASAUR",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 3
+ },
+ {
+ "move": "LEECH_SEED",
+ "level": 7
+ },
+ {
+ "move": "VINE_WHIP",
+ "level": 9
+ },
+ {
+ "move": "POISON_POWDER",
+ "level": 13
+ },
+ {
+ "move": "SLEEP_POWDER",
+ "level": 13
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 15
+ },
+ {
+ "move": "RAZOR_LEAF",
+ "level": 19
+ },
+ {
+ "move": "SWEET_SCENT",
+ "level": 21
+ },
+ {
+ "move": "GROWTH",
+ "level": 25
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 27
+ },
+ {
+ "move": "WORRY_SEED",
+ "level": 31
+ },
+ {
+ "move": "SYNTHESIS",
+ "level": 33
+ },
+ {
+ "move": "SEED_BOMB",
+ "level": 37
+ }
+ ]
+ },
+ {
+ "species": "IVYSAUR",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "LEECH_SEED",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 3
+ },
+ {
+ "move": "LEECH_SEED",
+ "level": 7
+ },
+ {
+ "move": "VINE_WHIP",
+ "level": 9
+ },
+ {
+ "move": "POISON_POWDER",
+ "level": 13
+ },
+ {
+ "move": "SLEEP_POWDER",
+ "level": 13
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 15
+ },
+ {
+ "move": "RAZOR_LEAF",
+ "level": 20
+ },
+ {
+ "move": "SWEET_SCENT",
+ "level": 23
+ },
+ {
+ "move": "GROWTH",
+ "level": 28
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 31
+ },
+ {
+ "move": "WORRY_SEED",
+ "level": 36
+ },
+ {
+ "move": "SYNTHESIS",
+ "level": 39
+ },
+ {
+ "move": "SOLAR_BEAM",
+ "level": 44
+ }
+ ]
+ },
+ {
+ "species": "VENUSAUR",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "LEECH_SEED",
+ "level": 1
+ },
+ {
+ "move": "VINE_WHIP",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 3
+ },
+ {
+ "move": "LEECH_SEED",
+ "level": 7
+ },
+ {
+ "move": "VINE_WHIP",
+ "level": 9
+ },
+ {
+ "move": "POISON_POWDER",
+ "level": 13
+ },
+ {
+ "move": "SLEEP_POWDER",
+ "level": 13
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 15
+ },
+ {
+ "move": "RAZOR_LEAF",
+ "level": 20
+ },
+ {
+ "move": "SWEET_SCENT",
+ "level": 23
+ },
+ {
+ "move": "GROWTH",
+ "level": 28
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 31
+ },
+ {
+ "move": "PETAL_DANCE",
+ "level": 32
+ },
+ {
+ "move": "WORRY_SEED",
+ "level": 39
+ },
+ {
+ "move": "SYNTHESIS",
+ "level": 45
+ },
+ {
+ "move": "SOLAR_BEAM",
+ "level": 53
+ }
+ ]
+ },
+ {
+ "species": "CHARMANDER",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "EMBER",
+ "level": 7
+ },
+ {
+ "move": "SMOKESCREEN",
+ "level": 10
+ },
+ {
+ "move": "DRAGON_RAGE",
+ "level": 16
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 19
+ },
+ {
+ "move": "FIRE_FANG",
+ "level": 25
+ },
+ {
+ "move": "SLASH",
+ "level": 28
+ },
+ {
+ "move": "FLAMETHROWER",
+ "level": 34
+ },
+ {
+ "move": "FIRE_SPIN",
+ "level": 37
+ }
+ ]
+ },
+ {
+ "species": "CHARMELEON",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "EMBER",
+ "level": 1
+ },
+ {
+ "move": "EMBER",
+ "level": 7
+ },
+ {
+ "move": "SMOKESCREEN",
+ "level": 10
+ },
+ {
+ "move": "DRAGON_RAGE",
+ "level": 17
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 21
+ },
+ {
+ "move": "FIRE_FANG",
+ "level": 28
+ },
+ {
+ "move": "SLASH",
+ "level": 32
+ },
+ {
+ "move": "FLAMETHROWER",
+ "level": 39
+ },
+ {
+ "move": "FIRE_SPIN",
+ "level": 43
+ }
+ ]
+ },
+ {
+ "species": "CHARIZARD",
+ "moves": [
+ {
+ "move": "DRAGON_CLAW",
+ "level": 1
+ },
+ {
+ "move": "SHADOW_CLAW",
+ "level": 1
+ },
+ {
+ "move": "AIR_SLASH",
+ "level": 1
+ },
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "EMBER",
+ "level": 1
+ },
+ {
+ "move": "SMOKESCREEN",
+ "level": 1
+ },
+ {
+ "move": "EMBER",
+ "level": 7
+ },
+ {
+ "move": "SMOKESCREEN",
+ "level": 10
+ },
+ {
+ "move": "DRAGON_RAGE",
+ "level": 17
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 21
+ },
+ {
+ "move": "FIRE_FANG",
+ "level": 28
+ },
+ {
+ "move": "SLASH",
+ "level": 32
+ },
+ {
+ "move": "WING_ATTACK",
+ "level": 36
+ },
+ {
+ "move": "FLAMETHROWER",
+ "level": 42
+ },
+ {
+ "move": "FIRE_SPIN",
+ "level": 49
+ },
+ {
+ "move": "HEAT_WAVE",
+ "level": 59
+ },
+ {
+ "move": "FLARE_BLITZ",
+ "level": 66
+ }
+ ]
+ },
+ {
+ "species": "SQUIRTLE",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 4
+ },
+ {
+ "move": "BUBBLE",
+ "level": 7
+ },
+ {
+ "move": "WITHDRAW",
+ "level": 10
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 13
+ },
+ {
+ "move": "BITE",
+ "level": 16
+ },
+ {
+ "move": "RAPID_SPIN",
+ "level": 19
+ },
+ {
+ "move": "PROTECT",
+ "level": 22
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 25
+ },
+ {
+ "move": "AQUA_TAIL",
+ "level": 28
+ },
+ {
+ "move": "SKULL_BASH",
+ "level": 31
+ },
+ {
+ "move": "RAIN_DANCE",
+ "level": 34
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 37
+ }
+ ]
+ },
+ {
+ "species": "WARTORTLE",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "BUBBLE",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 4
+ },
+ {
+ "move": "BUBBLE",
+ "level": 7
+ },
+ {
+ "move": "WITHDRAW",
+ "level": 10
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 13
+ },
+ {
+ "move": "BITE",
+ "level": 16
+ },
+ {
+ "move": "RAPID_SPIN",
+ "level": 20
+ },
+ {
+ "move": "PROTECT",
+ "level": 24
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 28
+ },
+ {
+ "move": "AQUA_TAIL",
+ "level": 32
+ },
+ {
+ "move": "SKULL_BASH",
+ "level": 36
+ },
+ {
+ "move": "RAIN_DANCE",
+ "level": 40
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 44
+ }
+ ]
+ },
+ {
+ "species": "BLASTOISE",
+ "moves": [
+ {
+ "move": "FLASH_CANNON",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "BUBBLE",
+ "level": 1
+ },
+ {
+ "move": "WITHDRAW",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 4
+ },
+ {
+ "move": "BUBBLE",
+ "level": 7
+ },
+ {
+ "move": "WITHDRAW",
+ "level": 10
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 13
+ },
+ {
+ "move": "BITE",
+ "level": 16
+ },
+ {
+ "move": "RAPID_SPIN",
+ "level": 20
+ },
+ {
+ "move": "PROTECT",
+ "level": 24
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 28
+ },
+ {
+ "move": "AQUA_TAIL",
+ "level": 32
+ },
+ {
+ "move": "SKULL_BASH",
+ "level": 39
+ },
+ {
+ "move": "RAIN_DANCE",
+ "level": 46
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 53
+ }
+ ]
+ },
+ {
+ "species": "CATERPIE",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "STRING_SHOT",
+ "level": 1
+ }
+ ]
+ },
+ {
+ "species": "METAPOD",
+ "moves": [
+ {
+ "move": "HARDEN",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 7
+ }
+ ]
+ },
+ {
+ "species": "BUTTERFREE",
+ "moves": [
+ {
+ "move": "CONFUSION",
+ "level": 1
+ },
+ {
+ "move": "CONFUSION",
+ "level": 10
+ },
+ {
+ "move": "POISON_POWDER",
+ "level": 12
+ },
+ {
+ "move": "STUN_SPORE",
+ "level": 12
+ },
+ {
+ "move": "SLEEP_POWDER",
+ "level": 12
+ },
+ {
+ "move": "GUST",
+ "level": 16
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 18
+ },
+ {
+ "move": "WHIRLWIND",
+ "level": 22
+ },
+ {
+ "move": "PSYBEAM",
+ "level": 24
+ },
+ {
+ "move": "SILVER_WIND",
+ "level": 28
+ },
+ {
+ "move": "TAILWIND",
+ "level": 30
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 34
+ },
+ {
+ "move": "CAPTIVATE",
+ "level": 36
+ },
+ {
+ "move": "BUG_BUZZ",
+ "level": 40
+ }
+ ]
+ },
+ {
+ "species": "WEEDLE",
+ "moves": [
+ {
+ "move": "POISON_STING",
+ "level": 1
+ },
+ {
+ "move": "STRING_SHOT",
+ "level": 1
+ }
+ ]
+ },
+ {
+ "species": "KAKUNA",
+ "moves": [
+ {
+ "move": "HARDEN",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 7
+ }
+ ]
+ },
+ {
+ "species": "BEEDRILL",
+ "moves": [
+ {
+ "move": "FURY_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "FURY_ATTACK",
+ "level": 10
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 13
+ },
+ {
+ "move": "TWINEEDLE",
+ "level": 16
+ },
+ {
+ "move": "RAGE",
+ "level": 19
+ },
+ {
+ "move": "PURSUIT",
+ "level": 22
+ },
+ {
+ "move": "TOXIC_SPIKES",
+ "level": 25
+ },
+ {
+ "move": "PIN_MISSILE",
+ "level": 28
+ },
+ {
+ "move": "AGILITY",
+ "level": 31
+ },
+ {
+ "move": "ASSURANCE",
+ "level": 34
+ },
+ {
+ "move": "POISON_JAB",
+ "level": 37
+ },
+ {
+ "move": "ENDEAVOR",
+ "level": 40
+ }
+ ]
+ },
+ {
+ "species": "PIDGEY",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 5
+ },
+ {
+ "move": "GUST",
+ "level": 9
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 13
+ },
+ {
+ "move": "WHIRLWIND",
+ "level": 17
+ },
+ {
+ "move": "TWISTER",
+ "level": 21
+ },
+ {
+ "move": "FEATHER_DANCE",
+ "level": 25
+ },
+ {
+ "move": "AGILITY",
+ "level": 29
+ },
+ {
+ "move": "WING_ATTACK",
+ "level": 33
+ },
+ {
+ "move": "ROOST",
+ "level": 37
+ },
+ {
+ "move": "TAILWIND",
+ "level": 41
+ },
+ {
+ "move": "MIRROR_MOVE",
+ "level": 45
+ },
+ {
+ "move": "AIR_SLASH",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "PIDGEOTTO",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "GUST",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 5
+ },
+ {
+ "move": "GUST",
+ "level": 9
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 13
+ },
+ {
+ "move": "WHIRLWIND",
+ "level": 17
+ },
+ {
+ "move": "TWISTER",
+ "level": 22
+ },
+ {
+ "move": "FEATHER_DANCE",
+ "level": 27
+ },
+ {
+ "move": "AGILITY",
+ "level": 32
+ },
+ {
+ "move": "WING_ATTACK",
+ "level": 37
+ },
+ {
+ "move": "ROOST",
+ "level": 42
+ },
+ {
+ "move": "TAILWIND",
+ "level": 47
+ },
+ {
+ "move": "MIRROR_MOVE",
+ "level": 52
+ },
+ {
+ "move": "AIR_SLASH",
+ "level": 57
+ }
+ ]
+ },
+ {
+ "species": "PIDGEOT",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "GUST",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 5
+ },
+ {
+ "move": "GUST",
+ "level": 9
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 13
+ },
+ {
+ "move": "WHIRLWIND",
+ "level": 17
+ },
+ {
+ "move": "TWISTER",
+ "level": 22
+ },
+ {
+ "move": "FEATHER_DANCE",
+ "level": 27
+ },
+ {
+ "move": "AGILITY",
+ "level": 32
+ },
+ {
+ "move": "WING_ATTACK",
+ "level": 38
+ },
+ {
+ "move": "ROOST",
+ "level": 44
+ },
+ {
+ "move": "TAILWIND",
+ "level": 50
+ },
+ {
+ "move": "MIRROR_MOVE",
+ "level": 56
+ },
+ {
+ "move": "AIR_SLASH",
+ "level": 62
+ }
+ ]
+ },
+ {
+ "species": "RATTATA",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 4
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 7
+ },
+ {
+ "move": "BITE",
+ "level": 10
+ },
+ {
+ "move": "PURSUIT",
+ "level": 13
+ },
+ {
+ "move": "HYPER_FANG",
+ "level": 16
+ },
+ {
+ "move": "SUCKER_PUNCH",
+ "level": 19
+ },
+ {
+ "move": "CRUNCH",
+ "level": 22
+ },
+ {
+ "move": "ASSURANCE",
+ "level": 25
+ },
+ {
+ "move": "SUPER_FANG",
+ "level": 28
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 31
+ },
+ {
+ "move": "ENDEAVOR",
+ "level": 34
+ }
+ ]
+ },
+ {
+ "species": "RATICATE",
+ "moves": [
+ {
+ "move": "SWORDS_DANCE",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 4
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 7
+ },
+ {
+ "move": "BITE",
+ "level": 10
+ },
+ {
+ "move": "PURSUIT",
+ "level": 13
+ },
+ {
+ "move": "HYPER_FANG",
+ "level": 16
+ },
+ {
+ "move": "SUCKER_PUNCH",
+ "level": 19
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 20
+ },
+ {
+ "move": "CRUNCH",
+ "level": 24
+ },
+ {
+ "move": "ASSURANCE",
+ "level": 29
+ },
+ {
+ "move": "SUPER_FANG",
+ "level": 34
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 39
+ },
+ {
+ "move": "ENDEAVOR",
+ "level": 44
+ }
+ ]
+ },
+ {
+ "species": "SPEAROW",
+ "moves": [
+ {
+ "move": "PECK",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 5
+ },
+ {
+ "move": "FURY_ATTACK",
+ "level": 9
+ },
+ {
+ "move": "PURSUIT",
+ "level": 13
+ },
+ {
+ "move": "AERIAL_ACE",
+ "level": 17
+ },
+ {
+ "move": "MIRROR_MOVE",
+ "level": 21
+ },
+ {
+ "move": "AGILITY",
+ "level": 25
+ },
+ {
+ "move": "ASSURANCE",
+ "level": 29
+ },
+ {
+ "move": "ROOST",
+ "level": 33
+ },
+ {
+ "move": "DRILL_PECK",
+ "level": 37
+ }
+ ]
+ },
+ {
+ "species": "FEAROW",
+ "moves": [
+ {
+ "move": "PLUCK",
+ "level": 1
+ },
+ {
+ "move": "PECK",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "FURY_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 5
+ },
+ {
+ "move": "FURY_ATTACK",
+ "level": 9
+ },
+ {
+ "move": "PURSUIT",
+ "level": 13
+ },
+ {
+ "move": "AERIAL_ACE",
+ "level": 17
+ },
+ {
+ "move": "MIRROR_MOVE",
+ "level": 23
+ },
+ {
+ "move": "AGILITY",
+ "level": 29
+ },
+ {
+ "move": "ASSURANCE",
+ "level": 35
+ },
+ {
+ "move": "ROOST",
+ "level": 41
+ },
+ {
+ "move": "DRILL_PECK",
+ "level": 47
+ }
+ ]
+ },
+ {
+ "species": "EKANS",
+ "moves": [
+ {
+ "move": "WRAP",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "POISON_STING",
+ "level": 4
+ },
+ {
+ "move": "BITE",
+ "level": 9
+ },
+ {
+ "move": "GLARE",
+ "level": 12
+ },
+ {
+ "move": "SCREECH",
+ "level": 17
+ },
+ {
+ "move": "ACID",
+ "level": 20
+ },
+ {
+ "move": "STOCKPILE",
+ "level": 25
+ },
+ {
+ "move": "SWALLOW",
+ "level": 25
+ },
+ {
+ "move": "SPIT_UP",
+ "level": 25
+ },
+ {
+ "move": "MUD_BOMB",
+ "level": 28
+ },
+ {
+ "move": "GASTRO_ACID",
+ "level": 33
+ },
+ {
+ "move": "HAZE",
+ "level": 36
+ },
+ {
+ "move": "GUNK_SHOT",
+ "level": 41
+ }
+ ]
+ },
+ {
+ "species": "ARBOK",
+ "moves": [
+ {
+ "move": "ICE_FANG",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_FANG",
+ "level": 1
+ },
+ {
+ "move": "FIRE_FANG",
+ "level": 1
+ },
+ {
+ "move": "WRAP",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "POISON_STING",
+ "level": 1
+ },
+ {
+ "move": "BITE",
+ "level": 1
+ },
+ {
+ "move": "POISON_STING",
+ "level": 4
+ },
+ {
+ "move": "BITE",
+ "level": 9
+ },
+ {
+ "move": "GLARE",
+ "level": 12
+ },
+ {
+ "move": "SCREECH",
+ "level": 17
+ },
+ {
+ "move": "ACID",
+ "level": 20
+ },
+ {
+ "move": "CRUNCH",
+ "level": 22
+ },
+ {
+ "move": "STOCKPILE",
+ "level": 28
+ },
+ {
+ "move": "SWALLOW",
+ "level": 28
+ },
+ {
+ "move": "SPIT_UP",
+ "level": 28
+ },
+ {
+ "move": "MUD_BOMB",
+ "level": 34
+ },
+ {
+ "move": "GASTRO_ACID",
+ "level": 42
+ },
+ {
+ "move": "HAZE",
+ "level": 48
+ },
+ {
+ "move": "GUNK_SHOT",
+ "level": 56
+ }
+ ]
+ },
+ {
+ "species": "PIKACHU",
+ "moves": [
+ {
+ "move": "THUNDER_SHOCK",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 5
+ },
+ {
+ "move": "THUNDER_WAVE",
+ "level": 10
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 13
+ },
+ {
+ "move": "DOUBLE_TEAM",
+ "level": 18
+ },
+ {
+ "move": "SLAM",
+ "level": 21
+ },
+ {
+ "move": "THUNDERBOLT",
+ "level": 26
+ },
+ {
+ "move": "FEINT",
+ "level": 29
+ },
+ {
+ "move": "AGILITY",
+ "level": 34
+ },
+ {
+ "move": "DISCHARGE",
+ "level": 37
+ },
+ {
+ "move": "LIGHT_SCREEN",
+ "level": 42
+ },
+ {
+ "move": "THUNDER",
+ "level": 45
+ }
+ ]
+ },
+ {
+ "species": "RAICHU",
+ "moves": [
+ {
+ "move": "THUNDER_SHOCK",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "THUNDERBOLT",
+ "level": 1
+ }
+ ]
+ },
+ {
+ "species": "SANDSHREW",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 3
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 7
+ },
+ {
+ "move": "POISON_STING",
+ "level": 9
+ },
+ {
+ "move": "RAPID_SPIN",
+ "level": 13
+ },
+ {
+ "move": "SWIFT",
+ "level": 15
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 19
+ },
+ {
+ "move": "ROLLOUT",
+ "level": 21
+ },
+ {
+ "move": "FURY_CUTTER",
+ "level": 25
+ },
+ {
+ "move": "SAND_TOMB",
+ "level": 27
+ },
+ {
+ "move": "SLASH",
+ "level": 31
+ },
+ {
+ "move": "GYRO_BALL",
+ "level": 33
+ },
+ {
+ "move": "SANDSTORM",
+ "level": 37
+ }
+ ]
+ },
+ {
+ "species": "SANDSLASH",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 3
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 7
+ },
+ {
+ "move": "POISON_STING",
+ "level": 9
+ },
+ {
+ "move": "RAPID_SPIN",
+ "level": 13
+ },
+ {
+ "move": "SWIFT",
+ "level": 15
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 19
+ },
+ {
+ "move": "ROLLOUT",
+ "level": 21
+ },
+ {
+ "move": "CRUSH_CLAW",
+ "level": 22
+ },
+ {
+ "move": "FURY_CUTTER",
+ "level": 28
+ },
+ {
+ "move": "SAND_TOMB",
+ "level": 33
+ },
+ {
+ "move": "SLASH",
+ "level": 40
+ },
+ {
+ "move": "GYRO_BALL",
+ "level": 45
+ },
+ {
+ "move": "SANDSTORM",
+ "level": 52
+ }
+ ]
+ },
+ {
+ "species": "NIDORAN_F",
+ "moves": [
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 7
+ },
+ {
+ "move": "DOUBLE_KICK",
+ "level": 9
+ },
+ {
+ "move": "POISON_STING",
+ "level": 13
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 19
+ },
+ {
+ "move": "BITE",
+ "level": 21
+ },
+ {
+ "move": "HELPING_HAND",
+ "level": 25
+ },
+ {
+ "move": "TOXIC_SPIKES",
+ "level": 31
+ },
+ {
+ "move": "FLATTER",
+ "level": 33
+ },
+ {
+ "move": "CRUNCH",
+ "level": 37
+ },
+ {
+ "move": "CAPTIVATE",
+ "level": 43
+ },
+ {
+ "move": "POISON_FANG",
+ "level": 45
+ }
+ ]
+ },
+ {
+ "species": "NIDORINA",
+ "moves": [
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 7
+ },
+ {
+ "move": "DOUBLE_KICK",
+ "level": 9
+ },
+ {
+ "move": "POISON_STING",
+ "level": 13
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 20
+ },
+ {
+ "move": "BITE",
+ "level": 23
+ },
+ {
+ "move": "HELPING_HAND",
+ "level": 28
+ },
+ {
+ "move": "TOXIC_SPIKES",
+ "level": 35
+ },
+ {
+ "move": "FLATTER",
+ "level": 38
+ },
+ {
+ "move": "CRUNCH",
+ "level": 43
+ },
+ {
+ "move": "CAPTIVATE",
+ "level": 50
+ },
+ {
+ "move": "POISON_FANG",
+ "level": 58
+ }
+ ]
+ },
+ {
+ "species": "NIDOQUEEN",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "DOUBLE_KICK",
+ "level": 1
+ },
+ {
+ "move": "POISON_STING",
+ "level": 1
+ },
+ {
+ "move": "BODY_SLAM",
+ "level": 23
+ },
+ {
+ "move": "EARTH_POWER",
+ "level": 43
+ },
+ {
+ "move": "SUPERPOWER",
+ "level": 58
+ }
+ ]
+ },
+ {
+ "species": "NIDORAN_M",
+ "moves": [
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "PECK",
+ "level": 1
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 7
+ },
+ {
+ "move": "DOUBLE_KICK",
+ "level": 9
+ },
+ {
+ "move": "POISON_STING",
+ "level": 13
+ },
+ {
+ "move": "FURY_ATTACK",
+ "level": 19
+ },
+ {
+ "move": "HORN_ATTACK",
+ "level": 21
+ },
+ {
+ "move": "HELPING_HAND",
+ "level": 25
+ },
+ {
+ "move": "TOXIC_SPIKES",
+ "level": 31
+ },
+ {
+ "move": "FLATTER",
+ "level": 33
+ },
+ {
+ "move": "POISON_JAB",
+ "level": 37
+ },
+ {
+ "move": "CAPTIVATE",
+ "level": 43
+ },
+ {
+ "move": "HORN_DRILL",
+ "level": 45
+ }
+ ]
+ },
+ {
+ "species": "NIDORINO",
+ "moves": [
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "PECK",
+ "level": 1
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 7
+ },
+ {
+ "move": "DOUBLE_KICK",
+ "level": 9
+ },
+ {
+ "move": "POISON_STING",
+ "level": 13
+ },
+ {
+ "move": "FURY_ATTACK",
+ "level": 20
+ },
+ {
+ "move": "HORN_ATTACK",
+ "level": 23
+ },
+ {
+ "move": "HELPING_HAND",
+ "level": 28
+ },
+ {
+ "move": "TOXIC_SPIKES",
+ "level": 35
+ },
+ {
+ "move": "FLATTER",
+ "level": 38
+ },
+ {
+ "move": "POISON_JAB",
+ "level": 43
+ },
+ {
+ "move": "CAPTIVATE",
+ "level": 50
+ },
+ {
+ "move": "HORN_DRILL",
+ "level": 58
+ }
+ ]
+ },
+ {
+ "species": "NIDOKING",
+ "moves": [
+ {
+ "move": "PECK",
+ "level": 1
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 1
+ },
+ {
+ "move": "DOUBLE_KICK",
+ "level": 1
+ },
+ {
+ "move": "POISON_STING",
+ "level": 1
+ },
+ {
+ "move": "THRASH",
+ "level": 23
+ },
+ {
+ "move": "EARTH_POWER",
+ "level": 43
+ },
+ {
+ "move": "MEGAHORN",
+ "level": 58
+ }
+ ]
+ },
+ {
+ "species": "CLEFAIRY",
+ "moves": [
+ {
+ "move": "POUND",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "ENCORE",
+ "level": 4
+ },
+ {
+ "move": "SING",
+ "level": 7
+ },
+ {
+ "move": "DOUBLE_SLAP",
+ "level": 10
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 13
+ },
+ {
+ "move": "FOLLOW_ME",
+ "level": 16
+ },
+ {
+ "move": "MINIMIZE",
+ "level": 19
+ },
+ {
+ "move": "WAKE_UP_SLAP",
+ "level": 22
+ },
+ {
+ "move": "COSMIC_POWER",
+ "level": 25
+ },
+ {
+ "move": "LUCKY_CHANT",
+ "level": 28
+ },
+ {
+ "move": "METRONOME",
+ "level": 31
+ },
+ {
+ "move": "GRAVITY",
+ "level": 34
+ },
+ {
+ "move": "MOONLIGHT",
+ "level": 37
+ },
+ {
+ "move": "LIGHT_SCREEN",
+ "level": 40
+ },
+ {
+ "move": "METEOR_MASH",
+ "level": 43
+ },
+ {
+ "move": "HEALING_WISH",
+ "level": 46
+ }
+ ]
+ },
+ {
+ "species": "CLEFABLE",
+ "moves": [
+ {
+ "move": "SING",
+ "level": 1
+ },
+ {
+ "move": "DOUBLE_SLAP",
+ "level": 1
+ },
+ {
+ "move": "MINIMIZE",
+ "level": 1
+ },
+ {
+ "move": "METRONOME",
+ "level": 1
+ }
+ ]
+ },
+ {
+ "species": "VULPIX",
+ "moves": [
+ {
+ "move": "EMBER",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 4
+ },
+ {
+ "move": "ROAR",
+ "level": 7
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 11
+ },
+ {
+ "move": "WILL_O_WISP",
+ "level": 14
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 17
+ },
+ {
+ "move": "IMPRISON",
+ "level": 21
+ },
+ {
+ "move": "FLAMETHROWER",
+ "level": 24
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 27
+ },
+ {
+ "move": "PAYBACK",
+ "level": 31
+ },
+ {
+ "move": "FIRE_SPIN",
+ "level": 34
+ },
+ {
+ "move": "CAPTIVATE",
+ "level": 37
+ },
+ {
+ "move": "GRUDGE",
+ "level": 41
+ },
+ {
+ "move": "EXTRASENSORY",
+ "level": 44
+ },
+ {
+ "move": "FIRE_BLAST",
+ "level": 47
+ }
+ ]
+ },
+ {
+ "species": "NINETALES",
+ "moves": [
+ {
+ "move": "NASTY_PLOT",
+ "level": 1
+ },
+ {
+ "move": "EMBER",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 1
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 1
+ }
+ ]
+ },
+ {
+ "species": "JIGGLYPUFF",
+ "moves": [
+ {
+ "move": "SING",
+ "level": 1
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 5
+ },
+ {
+ "move": "POUND",
+ "level": 9
+ },
+ {
+ "move": "DISABLE",
+ "level": 13
+ },
+ {
+ "move": "ROLLOUT",
+ "level": 17
+ },
+ {
+ "move": "DOUBLE_SLAP",
+ "level": 21
+ },
+ {
+ "move": "REST",
+ "level": 25
+ },
+ {
+ "move": "BODY_SLAM",
+ "level": 29
+ },
+ {
+ "move": "GYRO_BALL",
+ "level": 33
+ },
+ {
+ "move": "WAKE_UP_SLAP",
+ "level": 37
+ },
+ {
+ "move": "MIMIC",
+ "level": 41
+ },
+ {
+ "move": "HYPER_VOICE",
+ "level": 45
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "WIGGLYTUFF",
+ "moves": [
+ {
+ "move": "SING",
+ "level": 1
+ },
+ {
+ "move": "DISABLE",
+ "level": 1
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 1
+ },
+ {
+ "move": "DOUBLE_SLAP",
+ "level": 1
+ }
+ ]
+ },
+ {
+ "species": "ZUBAT",
+ "moves": [
+ {
+ "move": "LEECH_LIFE",
+ "level": 1
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 5
+ },
+ {
+ "move": "ASTONISH",
+ "level": 9
+ },
+ {
+ "move": "BITE",
+ "level": 13
+ },
+ {
+ "move": "WING_ATTACK",
+ "level": 17
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 21
+ },
+ {
+ "move": "AIR_CUTTER",
+ "level": 25
+ },
+ {
+ "move": "MEAN_LOOK",
+ "level": 29
+ },
+ {
+ "move": "POISON_FANG",
+ "level": 33
+ },
+ {
+ "move": "HAZE",
+ "level": 37
+ },
+ {
+ "move": "AIR_SLASH",
+ "level": 41
+ }
+ ]
+ },
+ {
+ "species": "GOLBAT",
+ "moves": [
+ {
+ "move": "SCREECH",
+ "level": 1
+ },
+ {
+ "move": "LEECH_LIFE",
+ "level": 1
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 1
+ },
+ {
+ "move": "ASTONISH",
+ "level": 1
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 5
+ },
+ {
+ "move": "ASTONISH",
+ "level": 9
+ },
+ {
+ "move": "BITE",
+ "level": 13
+ },
+ {
+ "move": "WING_ATTACK",
+ "level": 17
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 21
+ },
+ {
+ "move": "AIR_CUTTER",
+ "level": 27
+ },
+ {
+ "move": "MEAN_LOOK",
+ "level": 33
+ },
+ {
+ "move": "POISON_FANG",
+ "level": 39
+ },
+ {
+ "move": "HAZE",
+ "level": 45
+ },
+ {
+ "move": "AIR_SLASH",
+ "level": 51
+ }
+ ]
+ },
+ {
+ "species": "ODDISH",
+ "moves": [
+ {
+ "move": "ABSORB",
+ "level": 1
+ },
+ {
+ "move": "SWEET_SCENT",
+ "level": 5
+ },
+ {
+ "move": "ACID",
+ "level": 9
+ },
+ {
+ "move": "POISON_POWDER",
+ "level": 13
+ },
+ {
+ "move": "STUN_SPORE",
+ "level": 15
+ },
+ {
+ "move": "SLEEP_POWDER",
+ "level": 17
+ },
+ {
+ "move": "MEGA_DRAIN",
+ "level": 21
+ },
+ {
+ "move": "LUCKY_CHANT",
+ "level": 25
+ },
+ {
+ "move": "NATURAL_GIFT",
+ "level": 29
+ },
+ {
+ "move": "MOONLIGHT",
+ "level": 33
+ },
+ {
+ "move": "GIGA_DRAIN",
+ "level": 37
+ },
+ {
+ "move": "PETAL_DANCE",
+ "level": 41
+ }
+ ]
+ },
+ {
+ "species": "GLOOM",
+ "moves": [
+ {
+ "move": "ABSORB",
+ "level": 1
+ },
+ {
+ "move": "SWEET_SCENT",
+ "level": 1
+ },
+ {
+ "move": "ACID",
+ "level": 1
+ },
+ {
+ "move": "SWEET_SCENT",
+ "level": 5
+ },
+ {
+ "move": "ACID",
+ "level": 9
+ },
+ {
+ "move": "POISON_POWDER",
+ "level": 13
+ },
+ {
+ "move": "STUN_SPORE",
+ "level": 15
+ },
+ {
+ "move": "SLEEP_POWDER",
+ "level": 17
+ },
+ {
+ "move": "MEGA_DRAIN",
+ "level": 23
+ },
+ {
+ "move": "LUCKY_CHANT",
+ "level": 29
+ },
+ {
+ "move": "NATURAL_GIFT",
+ "level": 35
+ },
+ {
+ "move": "MOONLIGHT",
+ "level": 41
+ },
+ {
+ "move": "GIGA_DRAIN",
+ "level": 47
+ },
+ {
+ "move": "PETAL_DANCE",
+ "level": 53
+ }
+ ]
+ },
+ {
+ "species": "VILEPLUME",
+ "moves": [
+ {
+ "move": "MEGA_DRAIN",
+ "level": 1
+ },
+ {
+ "move": "AROMATHERAPY",
+ "level": 1
+ },
+ {
+ "move": "STUN_SPORE",
+ "level": 1
+ },
+ {
+ "move": "POISON_POWDER",
+ "level": 1
+ },
+ {
+ "move": "PETAL_DANCE",
+ "level": 53
+ },
+ {
+ "move": "SOLAR_BEAM",
+ "level": 65
+ }
+ ]
+ },
+ {
+ "species": "PARAS",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "STUN_SPORE",
+ "level": 6
+ },
+ {
+ "move": "POISON_POWDER",
+ "level": 6
+ },
+ {
+ "move": "LEECH_LIFE",
+ "level": 11
+ },
+ {
+ "move": "SPORE",
+ "level": 17
+ },
+ {
+ "move": "SLASH",
+ "level": 22
+ },
+ {
+ "move": "GROWTH",
+ "level": 27
+ },
+ {
+ "move": "GIGA_DRAIN",
+ "level": 33
+ },
+ {
+ "move": "AROMATHERAPY",
+ "level": 38
+ },
+ {
+ "move": "X_SCISSOR",
+ "level": 43
+ }
+ ]
+ },
+ {
+ "species": "PARASECT",
+ "moves": [
+ {
+ "move": "CROSS_POISON",
+ "level": 1
+ },
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "STUN_SPORE",
+ "level": 1
+ },
+ {
+ "move": "POISON_POWDER",
+ "level": 1
+ },
+ {
+ "move": "LEECH_LIFE",
+ "level": 1
+ },
+ {
+ "move": "STUN_SPORE",
+ "level": 6
+ },
+ {
+ "move": "POISON_POWDER",
+ "level": 6
+ },
+ {
+ "move": "LEECH_LIFE",
+ "level": 11
+ },
+ {
+ "move": "SPORE",
+ "level": 17
+ },
+ {
+ "move": "SLASH",
+ "level": 22
+ },
+ {
+ "move": "GROWTH",
+ "level": 30
+ },
+ {
+ "move": "GIGA_DRAIN",
+ "level": 39
+ },
+ {
+ "move": "AROMATHERAPY",
+ "level": 47
+ },
+ {
+ "move": "X_SCISSOR",
+ "level": 55
+ }
+ ]
+ },
+ {
+ "species": "VENONAT",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "DISABLE",
+ "level": 1
+ },
+ {
+ "move": "FORESIGHT",
+ "level": 1
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 5
+ },
+ {
+ "move": "CONFUSION",
+ "level": 11
+ },
+ {
+ "move": "POISON_POWDER",
+ "level": 13
+ },
+ {
+ "move": "LEECH_LIFE",
+ "level": 17
+ },
+ {
+ "move": "STUN_SPORE",
+ "level": 23
+ },
+ {
+ "move": "PSYBEAM",
+ "level": 25
+ },
+ {
+ "move": "SLEEP_POWDER",
+ "level": 29
+ },
+ {
+ "move": "SIGNAL_BEAM",
+ "level": 35
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 37
+ },
+ {
+ "move": "POISON_FANG",
+ "level": 41
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 47
+ }
+ ]
+ },
+ {
+ "species": "VENOMOTH",
+ "moves": [
+ {
+ "move": "SILVER_WIND",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "DISABLE",
+ "level": 1
+ },
+ {
+ "move": "FORESIGHT",
+ "level": 1
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 1
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 5
+ },
+ {
+ "move": "CONFUSION",
+ "level": 11
+ },
+ {
+ "move": "POISON_POWDER",
+ "level": 13
+ },
+ {
+ "move": "LEECH_LIFE",
+ "level": 17
+ },
+ {
+ "move": "STUN_SPORE",
+ "level": 23
+ },
+ {
+ "move": "PSYBEAM",
+ "level": 25
+ },
+ {
+ "move": "SLEEP_POWDER",
+ "level": 29
+ },
+ {
+ "move": "GUST",
+ "level": 31
+ },
+ {
+ "move": "SIGNAL_BEAM",
+ "level": 37
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 41
+ },
+ {
+ "move": "POISON_FANG",
+ "level": 47
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 55
+ },
+ {
+ "move": "BUG_BUZZ",
+ "level": 59
+ }
+ ]
+ },
+ {
+ "species": "DIGLETT",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 4
+ },
+ {
+ "move": "ASTONISH",
+ "level": 7
+ },
+ {
+ "move": "MAGNITUDE",
+ "level": 12
+ },
+ {
+ "move": "MUD_SLAP",
+ "level": 15
+ },
+ {
+ "move": "DIG",
+ "level": 18
+ },
+ {
+ "move": "SUCKER_PUNCH",
+ "level": 23
+ },
+ {
+ "move": "EARTH_POWER",
+ "level": 26
+ },
+ {
+ "move": "MUD_BOMB",
+ "level": 29
+ },
+ {
+ "move": "SLASH",
+ "level": 34
+ },
+ {
+ "move": "EARTHQUAKE",
+ "level": 37
+ },
+ {
+ "move": "FISSURE",
+ "level": 40
+ }
+ ]
+ },
+ {
+ "species": "DUGTRIO",
+ "moves": [
+ {
+ "move": "NIGHT_SLASH",
+ "level": 1
+ },
+ {
+ "move": "TRI_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 4
+ },
+ {
+ "move": "ASTONISH",
+ "level": 7
+ },
+ {
+ "move": "MAGNITUDE",
+ "level": 12
+ },
+ {
+ "move": "MUD_SLAP",
+ "level": 15
+ },
+ {
+ "move": "DIG",
+ "level": 18
+ },
+ {
+ "move": "SUCKER_PUNCH",
+ "level": 23
+ },
+ {
+ "move": "SAND_TOMB",
+ "level": 26
+ },
+ {
+ "move": "EARTH_POWER",
+ "level": 28
+ },
+ {
+ "move": "MUD_BOMB",
+ "level": 33
+ },
+ {
+ "move": "SLASH",
+ "level": 40
+ },
+ {
+ "move": "EARTHQUAKE",
+ "level": 45
+ },
+ {
+ "move": "FISSURE",
+ "level": 50
+ }
+ ]
+ },
+ {
+ "species": "MEOWTH",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "BITE",
+ "level": 6
+ },
+ {
+ "move": "FAKE_OUT",
+ "level": 9
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 14
+ },
+ {
+ "move": "SCREECH",
+ "level": 17
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 22
+ },
+ {
+ "move": "TAUNT",
+ "level": 25
+ },
+ {
+ "move": "PAY_DAY",
+ "level": 30
+ },
+ {
+ "move": "SLASH",
+ "level": 33
+ },
+ {
+ "move": "NASTY_PLOT",
+ "level": 38
+ },
+ {
+ "move": "ASSURANCE",
+ "level": 41
+ },
+ {
+ "move": "CAPTIVATE",
+ "level": 46
+ },
+ {
+ "move": "NIGHT_SLASH",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "PERSIAN",
+ "moves": [
+ {
+ "move": "SWITCHEROO",
+ "level": 1
+ },
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "BITE",
+ "level": 1
+ },
+ {
+ "move": "FAKE_OUT",
+ "level": 1
+ },
+ {
+ "move": "BITE",
+ "level": 6
+ },
+ {
+ "move": "FAKE_OUT",
+ "level": 9
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 14
+ },
+ {
+ "move": "SCREECH",
+ "level": 17
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 22
+ },
+ {
+ "move": "TAUNT",
+ "level": 25
+ },
+ {
+ "move": "POWER_GEM",
+ "level": 32
+ },
+ {
+ "move": "SLASH",
+ "level": 37
+ },
+ {
+ "move": "NASTY_PLOT",
+ "level": 44
+ },
+ {
+ "move": "ASSURANCE",
+ "level": 49
+ },
+ {
+ "move": "CAPTIVATE",
+ "level": 56
+ },
+ {
+ "move": "NIGHT_SLASH",
+ "level": 61
+ }
+ ]
+ },
+ {
+ "species": "PSYDUCK",
+ "moves": [
+ {
+ "move": "WATER_SPORT",
+ "level": 1
+ },
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 5
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 9
+ },
+ {
+ "move": "DISABLE",
+ "level": 14
+ },
+ {
+ "move": "CONFUSION",
+ "level": 18
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 22
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 27
+ },
+ {
+ "move": "SCREECH",
+ "level": 31
+ },
+ {
+ "move": "PSYCH_UP",
+ "level": 35
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 40
+ },
+ {
+ "move": "AMNESIA",
+ "level": 44
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 48
+ }
+ ]
+ },
+ {
+ "species": "GOLDUCK",
+ "moves": [
+ {
+ "move": "WATER_SPORT",
+ "level": 1
+ },
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 5
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 9
+ },
+ {
+ "move": "DISABLE",
+ "level": 14
+ },
+ {
+ "move": "CONFUSION",
+ "level": 18
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 22
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 27
+ },
+ {
+ "move": "SCREECH",
+ "level": 31
+ },
+ {
+ "move": "PSYCH_UP",
+ "level": 37
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 44
+ },
+ {
+ "move": "AMNESIA",
+ "level": 50
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 56
+ }
+ ]
+ },
+ {
+ "species": "MANKEY",
+ "moves": [
+ {
+ "move": "COVET",
+ "level": 1
+ },
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "LOW_KICK",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 1
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 9
+ },
+ {
+ "move": "KARATE_CHOP",
+ "level": 13
+ },
+ {
+ "move": "SEISMIC_TOSS",
+ "level": 17
+ },
+ {
+ "move": "SCREECH",
+ "level": 21
+ },
+ {
+ "move": "ASSURANCE",
+ "level": 25
+ },
+ {
+ "move": "SWAGGER",
+ "level": 33
+ },
+ {
+ "move": "CROSS_CHOP",
+ "level": 37
+ },
+ {
+ "move": "THRASH",
+ "level": 41
+ },
+ {
+ "move": "PUNISHMENT",
+ "level": 45
+ },
+ {
+ "move": "CLOSE_COMBAT",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "PRIMEAPE",
+ "moves": [
+ {
+ "move": "FLING",
+ "level": 1
+ },
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "LOW_KICK",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 1
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 9
+ },
+ {
+ "move": "KARATE_CHOP",
+ "level": 13
+ },
+ {
+ "move": "SEISMIC_TOSS",
+ "level": 17
+ },
+ {
+ "move": "SCREECH",
+ "level": 21
+ },
+ {
+ "move": "ASSURANCE",
+ "level": 25
+ },
+ {
+ "move": "RAGE",
+ "level": 28
+ },
+ {
+ "move": "SWAGGER",
+ "level": 35
+ },
+ {
+ "move": "CROSS_CHOP",
+ "level": 41
+ },
+ {
+ "move": "THRASH",
+ "level": 47
+ },
+ {
+ "move": "PUNISHMENT",
+ "level": 53
+ },
+ {
+ "move": "CLOSE_COMBAT",
+ "level": 59
+ }
+ ]
+ },
+ {
+ "species": "GROWLITHE",
+ "moves": [
+ {
+ "move": "BITE",
+ "level": 1
+ },
+ {
+ "move": "ROAR",
+ "level": 1
+ },
+ {
+ "move": "EMBER",
+ "level": 6
+ },
+ {
+ "move": "LEER",
+ "level": 9
+ },
+ {
+ "move": "ODOR_SLEUTH",
+ "level": 14
+ },
+ {
+ "move": "HELPING_HAND",
+ "level": 17
+ },
+ {
+ "move": "FLAME_WHEEL",
+ "level": 20
+ },
+ {
+ "move": "REVERSAL",
+ "level": 25
+ },
+ {
+ "move": "FIRE_FANG",
+ "level": 28
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 31
+ },
+ {
+ "move": "FLAMETHROWER",
+ "level": 34
+ },
+ {
+ "move": "AGILITY",
+ "level": 39
+ },
+ {
+ "move": "CRUNCH",
+ "level": 42
+ },
+ {
+ "move": "HEAT_WAVE",
+ "level": 45
+ },
+ {
+ "move": "FLARE_BLITZ",
+ "level": 48
+ }
+ ]
+ },
+ {
+ "species": "ARCANINE",
+ "moves": [
+ {
+ "move": "THUNDER_FANG",
+ "level": 1
+ },
+ {
+ "move": "BITE",
+ "level": 1
+ },
+ {
+ "move": "ROAR",
+ "level": 1
+ },
+ {
+ "move": "FIRE_FANG",
+ "level": 1
+ },
+ {
+ "move": "ODOR_SLEUTH",
+ "level": 1
+ },
+ {
+ "move": "EXTREME_SPEED",
+ "level": 39
+ }
+ ]
+ },
+ {
+ "species": "POLIWAG",
+ "moves": [
+ {
+ "move": "WATER_SPORT",
+ "level": 1
+ },
+ {
+ "move": "BUBBLE",
+ "level": 5
+ },
+ {
+ "move": "HYPNOSIS",
+ "level": 8
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 11
+ },
+ {
+ "move": "DOUBLE_SLAP",
+ "level": 15
+ },
+ {
+ "move": "RAIN_DANCE",
+ "level": 18
+ },
+ {
+ "move": "BODY_SLAM",
+ "level": 21
+ },
+ {
+ "move": "BUBBLE_BEAM",
+ "level": 25
+ },
+ {
+ "move": "MUD_SHOT",
+ "level": 28
+ },
+ {
+ "move": "BELLY_DRUM",
+ "level": 31
+ },
+ {
+ "move": "WAKE_UP_SLAP",
+ "level": 35
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 38
+ },
+ {
+ "move": "MUD_BOMB",
+ "level": 41
+ }
+ ]
+ },
+ {
+ "species": "POLIWHIRL",
+ "moves": [
+ {
+ "move": "WATER_SPORT",
+ "level": 1
+ },
+ {
+ "move": "BUBBLE",
+ "level": 1
+ },
+ {
+ "move": "HYPNOSIS",
+ "level": 1
+ },
+ {
+ "move": "BUBBLE",
+ "level": 5
+ },
+ {
+ "move": "HYPNOSIS",
+ "level": 8
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 11
+ },
+ {
+ "move": "DOUBLE_SLAP",
+ "level": 15
+ },
+ {
+ "move": "RAIN_DANCE",
+ "level": 18
+ },
+ {
+ "move": "BODY_SLAM",
+ "level": 21
+ },
+ {
+ "move": "BUBBLE_BEAM",
+ "level": 27
+ },
+ {
+ "move": "MUD_SHOT",
+ "level": 32
+ },
+ {
+ "move": "BELLY_DRUM",
+ "level": 37
+ },
+ {
+ "move": "WAKE_UP_SLAP",
+ "level": 43
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 48
+ },
+ {
+ "move": "MUD_BOMB",
+ "level": 53
+ }
+ ]
+ },
+ {
+ "species": "POLIWRATH",
+ "moves": [
+ {
+ "move": "BUBBLE_BEAM",
+ "level": 1
+ },
+ {
+ "move": "HYPNOSIS",
+ "level": 1
+ },
+ {
+ "move": "DOUBLE_SLAP",
+ "level": 1
+ },
+ {
+ "move": "SUBMISSION",
+ "level": 1
+ },
+ {
+ "move": "DYNAMIC_PUNCH",
+ "level": 43
+ },
+ {
+ "move": "MIND_READER",
+ "level": 53
+ }
+ ]
+ },
+ {
+ "species": "ABRA",
+ "moves": [
+ {
+ "move": "TELEPORT",
+ "level": 1
+ }
+ ]
+ },
+ {
+ "species": "KADABRA",
+ "moves": [
+ {
+ "move": "TELEPORT",
+ "level": 1
+ },
+ {
+ "move": "KINESIS",
+ "level": 1
+ },
+ {
+ "move": "CONFUSION",
+ "level": 1
+ },
+ {
+ "move": "CONFUSION",
+ "level": 16
+ },
+ {
+ "move": "DISABLE",
+ "level": 18
+ },
+ {
+ "move": "MIRACLE_EYE",
+ "level": 22
+ },
+ {
+ "move": "PSYBEAM",
+ "level": 24
+ },
+ {
+ "move": "REFLECT",
+ "level": 28
+ },
+ {
+ "move": "RECOVER",
+ "level": 30
+ },
+ {
+ "move": "PSYCHO_CUT",
+ "level": 34
+ },
+ {
+ "move": "ROLE_PLAY",
+ "level": 36
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 40
+ },
+ {
+ "move": "FUTURE_SIGHT",
+ "level": 42
+ },
+ {
+ "move": "TRICK",
+ "level": 46
+ }
+ ]
+ },
+ {
+ "species": "ALAKAZAM",
+ "moves": [
+ {
+ "move": "TELEPORT",
+ "level": 1
+ },
+ {
+ "move": "KINESIS",
+ "level": 1
+ },
+ {
+ "move": "CONFUSION",
+ "level": 1
+ },
+ {
+ "move": "CONFUSION",
+ "level": 16
+ },
+ {
+ "move": "DISABLE",
+ "level": 18
+ },
+ {
+ "move": "MIRACLE_EYE",
+ "level": 22
+ },
+ {
+ "move": "PSYBEAM",
+ "level": 24
+ },
+ {
+ "move": "REFLECT",
+ "level": 28
+ },
+ {
+ "move": "RECOVER",
+ "level": 30
+ },
+ {
+ "move": "PSYCHO_CUT",
+ "level": 34
+ },
+ {
+ "move": "CALM_MIND",
+ "level": 36
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 40
+ },
+ {
+ "move": "FUTURE_SIGHT",
+ "level": 42
+ },
+ {
+ "move": "TRICK",
+ "level": 46
+ }
+ ]
+ },
+ {
+ "species": "MACHOP",
+ "moves": [
+ {
+ "move": "LOW_KICK",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 7
+ },
+ {
+ "move": "KARATE_CHOP",
+ "level": 10
+ },
+ {
+ "move": "FORESIGHT",
+ "level": 13
+ },
+ {
+ "move": "SEISMIC_TOSS",
+ "level": 19
+ },
+ {
+ "move": "REVENGE",
+ "level": 22
+ },
+ {
+ "move": "VITAL_THROW",
+ "level": 25
+ },
+ {
+ "move": "SUBMISSION",
+ "level": 31
+ },
+ {
+ "move": "WAKE_UP_SLAP",
+ "level": 34
+ },
+ {
+ "move": "CROSS_CHOP",
+ "level": 37
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 43
+ },
+ {
+ "move": "DYNAMIC_PUNCH",
+ "level": 46
+ }
+ ]
+ },
+ {
+ "species": "MACHOKE",
+ "moves": [
+ {
+ "move": "LOW_KICK",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 1
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 7
+ },
+ {
+ "move": "KARATE_CHOP",
+ "level": 10
+ },
+ {
+ "move": "FORESIGHT",
+ "level": 13
+ },
+ {
+ "move": "SEISMIC_TOSS",
+ "level": 19
+ },
+ {
+ "move": "REVENGE",
+ "level": 22
+ },
+ {
+ "move": "VITAL_THROW",
+ "level": 25
+ },
+ {
+ "move": "SUBMISSION",
+ "level": 32
+ },
+ {
+ "move": "WAKE_UP_SLAP",
+ "level": 36
+ },
+ {
+ "move": "CROSS_CHOP",
+ "level": 40
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 44
+ },
+ {
+ "move": "DYNAMIC_PUNCH",
+ "level": 51
+ }
+ ]
+ },
+ {
+ "species": "MACHAMP",
+ "moves": [
+ {
+ "move": "LOW_KICK",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 1
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 7
+ },
+ {
+ "move": "KARATE_CHOP",
+ "level": 10
+ },
+ {
+ "move": "FORESIGHT",
+ "level": 13
+ },
+ {
+ "move": "SEISMIC_TOSS",
+ "level": 19
+ },
+ {
+ "move": "REVENGE",
+ "level": 22
+ },
+ {
+ "move": "VITAL_THROW",
+ "level": 25
+ },
+ {
+ "move": "SUBMISSION",
+ "level": 32
+ },
+ {
+ "move": "WAKE_UP_SLAP",
+ "level": 36
+ },
+ {
+ "move": "CROSS_CHOP",
+ "level": 40
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 44
+ },
+ {
+ "move": "DYNAMIC_PUNCH",
+ "level": 51
+ }
+ ]
+ },
+ {
+ "species": "BELLSPROUT",
+ "moves": [
+ {
+ "move": "VINE_WHIP",
+ "level": 1
+ },
+ {
+ "move": "GROWTH",
+ "level": 7
+ },
+ {
+ "move": "WRAP",
+ "level": 11
+ },
+ {
+ "move": "SLEEP_POWDER",
+ "level": 13
+ },
+ {
+ "move": "POISON_POWDER",
+ "level": 15
+ },
+ {
+ "move": "STUN_SPORE",
+ "level": 17
+ },
+ {
+ "move": "ACID",
+ "level": 23
+ },
+ {
+ "move": "KNOCK_OFF",
+ "level": 27
+ },
+ {
+ "move": "SWEET_SCENT",
+ "level": 29
+ },
+ {
+ "move": "GASTRO_ACID",
+ "level": 35
+ },
+ {
+ "move": "RAZOR_LEAF",
+ "level": 39
+ },
+ {
+ "move": "SLAM",
+ "level": 41
+ },
+ {
+ "move": "WRING_OUT",
+ "level": 47
+ }
+ ]
+ },
+ {
+ "species": "WEEPINBELL",
+ "moves": [
+ {
+ "move": "VINE_WHIP",
+ "level": 1
+ },
+ {
+ "move": "GROWTH",
+ "level": 1
+ },
+ {
+ "move": "WRAP",
+ "level": 1
+ },
+ {
+ "move": "GROWTH",
+ "level": 7
+ },
+ {
+ "move": "WRAP",
+ "level": 11
+ },
+ {
+ "move": "SLEEP_POWDER",
+ "level": 13
+ },
+ {
+ "move": "POISON_POWDER",
+ "level": 15
+ },
+ {
+ "move": "STUN_SPORE",
+ "level": 17
+ },
+ {
+ "move": "ACID",
+ "level": 23
+ },
+ {
+ "move": "KNOCK_OFF",
+ "level": 27
+ },
+ {
+ "move": "SWEET_SCENT",
+ "level": 29
+ },
+ {
+ "move": "GASTRO_ACID",
+ "level": 35
+ },
+ {
+ "move": "RAZOR_LEAF",
+ "level": 39
+ },
+ {
+ "move": "SLAM",
+ "level": 41
+ },
+ {
+ "move": "WRING_OUT",
+ "level": 47
+ }
+ ]
+ },
+ {
+ "species": "VICTREEBEL",
+ "moves": [
+ {
+ "move": "STOCKPILE",
+ "level": 1
+ },
+ {
+ "move": "SWALLOW",
+ "level": 1
+ },
+ {
+ "move": "SPIT_UP",
+ "level": 1
+ },
+ {
+ "move": "VINE_WHIP",
+ "level": 1
+ },
+ {
+ "move": "SLEEP_POWDER",
+ "level": 1
+ },
+ {
+ "move": "SWEET_SCENT",
+ "level": 1
+ },
+ {
+ "move": "RAZOR_LEAF",
+ "level": 1
+ },
+ {
+ "move": "LEAF_STORM",
+ "level": 47
+ }
+ ]
+ },
+ {
+ "species": "TENTACOOL",
+ "moves": [
+ {
+ "move": "POISON_STING",
+ "level": 1
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 5
+ },
+ {
+ "move": "CONSTRICT",
+ "level": 8
+ },
+ {
+ "move": "ACID",
+ "level": 12
+ },
+ {
+ "move": "TOXIC_SPIKES",
+ "level": 15
+ },
+ {
+ "move": "BUBBLE_BEAM",
+ "level": 19
+ },
+ {
+ "move": "WRAP",
+ "level": 22
+ },
+ {
+ "move": "BARRIER",
+ "level": 26
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 29
+ },
+ {
+ "move": "POISON_JAB",
+ "level": 33
+ },
+ {
+ "move": "SCREECH",
+ "level": 36
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 40
+ },
+ {
+ "move": "WRING_OUT",
+ "level": 43
+ }
+ ]
+ },
+ {
+ "species": "TENTACRUEL",
+ "moves": [
+ {
+ "move": "POISON_STING",
+ "level": 1
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 1
+ },
+ {
+ "move": "CONSTRICT",
+ "level": 1
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 5
+ },
+ {
+ "move": "CONSTRICT",
+ "level": 8
+ },
+ {
+ "move": "ACID",
+ "level": 12
+ },
+ {
+ "move": "TOXIC_SPIKES",
+ "level": 15
+ },
+ {
+ "move": "BUBBLE_BEAM",
+ "level": 19
+ },
+ {
+ "move": "WRAP",
+ "level": 22
+ },
+ {
+ "move": "BARRIER",
+ "level": 26
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 29
+ },
+ {
+ "move": "POISON_JAB",
+ "level": 36
+ },
+ {
+ "move": "SCREECH",
+ "level": 42
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 49
+ },
+ {
+ "move": "WRING_OUT",
+ "level": 55
+ }
+ ]
+ },
+ {
+ "species": "GEODUDE",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 1
+ },
+ {
+ "move": "MUD_SPORT",
+ "level": 4
+ },
+ {
+ "move": "ROCK_POLISH",
+ "level": 8
+ },
+ {
+ "move": "ROCK_THROW",
+ "level": 11
+ },
+ {
+ "move": "MAGNITUDE",
+ "level": 15
+ },
+ {
+ "move": "SELF_DESTRUCT",
+ "level": 18
+ },
+ {
+ "move": "ROLLOUT",
+ "level": 22
+ },
+ {
+ "move": "ROCK_BLAST",
+ "level": 25
+ },
+ {
+ "move": "EARTHQUAKE",
+ "level": 29
+ },
+ {
+ "move": "EXPLOSION",
+ "level": 32
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 36
+ },
+ {
+ "move": "STONE_EDGE",
+ "level": 39
+ }
+ ]
+ },
+ {
+ "species": "GRAVELER",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 1
+ },
+ {
+ "move": "MUD_SPORT",
+ "level": 1
+ },
+ {
+ "move": "ROCK_POLISH",
+ "level": 1
+ },
+ {
+ "move": "MUD_SPORT",
+ "level": 4
+ },
+ {
+ "move": "ROCK_POLISH",
+ "level": 8
+ },
+ {
+ "move": "ROCK_THROW",
+ "level": 11
+ },
+ {
+ "move": "MAGNITUDE",
+ "level": 15
+ },
+ {
+ "move": "SELF_DESTRUCT",
+ "level": 18
+ },
+ {
+ "move": "ROLLOUT",
+ "level": 22
+ },
+ {
+ "move": "ROCK_BLAST",
+ "level": 27
+ },
+ {
+ "move": "EARTHQUAKE",
+ "level": 33
+ },
+ {
+ "move": "EXPLOSION",
+ "level": 38
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 44
+ },
+ {
+ "move": "STONE_EDGE",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "GOLEM",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 1
+ },
+ {
+ "move": "MUD_SPORT",
+ "level": 1
+ },
+ {
+ "move": "ROCK_POLISH",
+ "level": 1
+ },
+ {
+ "move": "MUD_SPORT",
+ "level": 4
+ },
+ {
+ "move": "ROCK_POLISH",
+ "level": 8
+ },
+ {
+ "move": "ROCK_THROW",
+ "level": 11
+ },
+ {
+ "move": "MAGNITUDE",
+ "level": 15
+ },
+ {
+ "move": "SELF_DESTRUCT",
+ "level": 18
+ },
+ {
+ "move": "ROLLOUT",
+ "level": 22
+ },
+ {
+ "move": "ROCK_BLAST",
+ "level": 27
+ },
+ {
+ "move": "EARTHQUAKE",
+ "level": 33
+ },
+ {
+ "move": "EXPLOSION",
+ "level": 38
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 44
+ },
+ {
+ "move": "STONE_EDGE",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "PONYTA",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 7
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 10
+ },
+ {
+ "move": "EMBER",
+ "level": 16
+ },
+ {
+ "move": "STOMP",
+ "level": 19
+ },
+ {
+ "move": "FIRE_SPIN",
+ "level": 25
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 28
+ },
+ {
+ "move": "AGILITY",
+ "level": 34
+ },
+ {
+ "move": "FIRE_BLAST",
+ "level": 38
+ },
+ {
+ "move": "BOUNCE",
+ "level": 44
+ },
+ {
+ "move": "FLARE_BLITZ",
+ "level": 48
+ }
+ ]
+ },
+ {
+ "species": "RAPIDASH",
+ "moves": [
+ {
+ "move": "POISON_JAB",
+ "level": 1
+ },
+ {
+ "move": "MEGAHORN",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "EMBER",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 7
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 10
+ },
+ {
+ "move": "EMBER",
+ "level": 16
+ },
+ {
+ "move": "STOMP",
+ "level": 19
+ },
+ {
+ "move": "FIRE_SPIN",
+ "level": 25
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 28
+ },
+ {
+ "move": "AGILITY",
+ "level": 34
+ },
+ {
+ "move": "FIRE_BLAST",
+ "level": 38
+ },
+ {
+ "move": "FURY_ATTACK",
+ "level": 40
+ },
+ {
+ "move": "BOUNCE",
+ "level": 49
+ },
+ {
+ "move": "FLARE_BLITZ",
+ "level": 58
+ }
+ ]
+ },
+ {
+ "species": "SLOWPOKE",
+ "moves": [
+ {
+ "move": "CURSE",
+ "level": 1
+ },
+ {
+ "move": "YAWN",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 6
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 11
+ },
+ {
+ "move": "CONFUSION",
+ "level": 15
+ },
+ {
+ "move": "DISABLE",
+ "level": 20
+ },
+ {
+ "move": "HEADBUTT",
+ "level": 25
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 29
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 34
+ },
+ {
+ "move": "SLACK_OFF",
+ "level": 39
+ },
+ {
+ "move": "AMNESIA",
+ "level": 43
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 48
+ },
+ {
+ "move": "RAIN_DANCE",
+ "level": 53
+ },
+ {
+ "move": "PSYCH_UP",
+ "level": 57
+ }
+ ]
+ },
+ {
+ "species": "SLOWBRO",
+ "moves": [
+ {
+ "move": "CURSE",
+ "level": 1
+ },
+ {
+ "move": "YAWN",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 6
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 11
+ },
+ {
+ "move": "CONFUSION",
+ "level": 15
+ },
+ {
+ "move": "DISABLE",
+ "level": 20
+ },
+ {
+ "move": "HEADBUTT",
+ "level": 25
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 29
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 34
+ },
+ {
+ "move": "WITHDRAW",
+ "level": 37
+ },
+ {
+ "move": "SLACK_OFF",
+ "level": 41
+ },
+ {
+ "move": "AMNESIA",
+ "level": 47
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 54
+ },
+ {
+ "move": "RAIN_DANCE",
+ "level": 61
+ },
+ {
+ "move": "PSYCH_UP",
+ "level": 67
+ }
+ ]
+ },
+ {
+ "species": "MAGNEMITE",
+ "moves": [
+ {
+ "move": "METAL_SOUND",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_SHOCK",
+ "level": 6
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 11
+ },
+ {
+ "move": "SONIC_BOOM",
+ "level": 14
+ },
+ {
+ "move": "THUNDER_WAVE",
+ "level": 17
+ },
+ {
+ "move": "SPARK",
+ "level": 22
+ },
+ {
+ "move": "LOCK_ON",
+ "level": 27
+ },
+ {
+ "move": "MAGNET_BOMB",
+ "level": 30
+ },
+ {
+ "move": "SCREECH",
+ "level": 33
+ },
+ {
+ "move": "DISCHARGE",
+ "level": 38
+ },
+ {
+ "move": "MIRROR_SHOT",
+ "level": 43
+ },
+ {
+ "move": "MAGNET_RISE",
+ "level": 46
+ },
+ {
+ "move": "GYRO_BALL",
+ "level": 49
+ },
+ {
+ "move": "ZAP_CANNON",
+ "level": 54
+ }
+ ]
+ },
+ {
+ "species": "MAGNETON",
+ "moves": [
+ {
+ "move": "TRI_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "METAL_SOUND",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_SHOCK",
+ "level": 1
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_SHOCK",
+ "level": 6
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 11
+ },
+ {
+ "move": "SONIC_BOOM",
+ "level": 14
+ },
+ {
+ "move": "THUNDER_WAVE",
+ "level": 17
+ },
+ {
+ "move": "SPARK",
+ "level": 22
+ },
+ {
+ "move": "LOCK_ON",
+ "level": 27
+ },
+ {
+ "move": "MAGNET_BOMB",
+ "level": 30
+ },
+ {
+ "move": "SCREECH",
+ "level": 34
+ },
+ {
+ "move": "DISCHARGE",
+ "level": 40
+ },
+ {
+ "move": "MIRROR_SHOT",
+ "level": 46
+ },
+ {
+ "move": "MAGNET_RISE",
+ "level": 50
+ },
+ {
+ "move": "GYRO_BALL",
+ "level": 54
+ },
+ {
+ "move": "ZAP_CANNON",
+ "level": 60
+ }
+ ]
+ },
+ {
+ "species": "FARFETCHD",
+ "moves": [
+ {
+ "move": "POISON_JAB",
+ "level": 1
+ },
+ {
+ "move": "PECK",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "FURY_CUTTER",
+ "level": 1
+ },
+ {
+ "move": "FURY_ATTACK",
+ "level": 7
+ },
+ {
+ "move": "KNOCK_OFF",
+ "level": 9
+ },
+ {
+ "move": "AERIAL_ACE",
+ "level": 13
+ },
+ {
+ "move": "SLASH",
+ "level": 19
+ },
+ {
+ "move": "AIR_CUTTER",
+ "level": 21
+ },
+ {
+ "move": "SWORDS_DANCE",
+ "level": 25
+ },
+ {
+ "move": "AGILITY",
+ "level": 31
+ },
+ {
+ "move": "NIGHT_SLASH",
+ "level": 33
+ },
+ {
+ "move": "AIR_SLASH",
+ "level": 37
+ },
+ {
+ "move": "FALSE_SWIPE",
+ "level": 43
+ }
+ ]
+ },
+ {
+ "species": "DODUO",
+ "moves": [
+ {
+ "move": "PECK",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 5
+ },
+ {
+ "move": "RAGE",
+ "level": 10
+ },
+ {
+ "move": "FURY_ATTACK",
+ "level": 14
+ },
+ {
+ "move": "PURSUIT",
+ "level": 19
+ },
+ {
+ "move": "UPROAR",
+ "level": 23
+ },
+ {
+ "move": "ACUPRESSURE",
+ "level": 28
+ },
+ {
+ "move": "DOUBLE_HIT",
+ "level": 32
+ },
+ {
+ "move": "AGILITY",
+ "level": 37
+ },
+ {
+ "move": "DRILL_PECK",
+ "level": 41
+ },
+ {
+ "move": "ENDEAVOR",
+ "level": 46
+ }
+ ]
+ },
+ {
+ "species": "DODRIO",
+ "moves": [
+ {
+ "move": "PLUCK",
+ "level": 1
+ },
+ {
+ "move": "PECK",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "RAGE",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 5
+ },
+ {
+ "move": "RAGE",
+ "level": 10
+ },
+ {
+ "move": "FURY_ATTACK",
+ "level": 14
+ },
+ {
+ "move": "PURSUIT",
+ "level": 19
+ },
+ {
+ "move": "UPROAR",
+ "level": 23
+ },
+ {
+ "move": "ACUPRESSURE",
+ "level": 28
+ },
+ {
+ "move": "TRI_ATTACK",
+ "level": 34
+ },
+ {
+ "move": "AGILITY",
+ "level": 41
+ },
+ {
+ "move": "DRILL_PECK",
+ "level": 47
+ },
+ {
+ "move": "ENDEAVOR",
+ "level": 54
+ }
+ ]
+ },
+ {
+ "species": "SEEL",
+ "moves": [
+ {
+ "move": "HEADBUTT",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 3
+ },
+ {
+ "move": "WATER_SPORT",
+ "level": 7
+ },
+ {
+ "move": "ICY_WIND",
+ "level": 11
+ },
+ {
+ "move": "ENCORE",
+ "level": 13
+ },
+ {
+ "move": "ICE_SHARD",
+ "level": 17
+ },
+ {
+ "move": "REST",
+ "level": 21
+ },
+ {
+ "move": "AQUA_RING",
+ "level": 23
+ },
+ {
+ "move": "AURORA_BEAM",
+ "level": 27
+ },
+ {
+ "move": "AQUA_JET",
+ "level": 31
+ },
+ {
+ "move": "BRINE",
+ "level": 33
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 37
+ },
+ {
+ "move": "DIVE",
+ "level": 41
+ },
+ {
+ "move": "AQUA_TAIL",
+ "level": 43
+ },
+ {
+ "move": "ICE_BEAM",
+ "level": 47
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 51
+ }
+ ]
+ },
+ {
+ "species": "DEWGONG",
+ "moves": [
+ {
+ "move": "HEADBUTT",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "SIGNAL_BEAM",
+ "level": 1
+ },
+ {
+ "move": "ICY_WIND",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 3
+ },
+ {
+ "move": "SIGNAL_BEAM",
+ "level": 7
+ },
+ {
+ "move": "ICY_WIND",
+ "level": 11
+ },
+ {
+ "move": "ENCORE",
+ "level": 13
+ },
+ {
+ "move": "ICE_SHARD",
+ "level": 17
+ },
+ {
+ "move": "REST",
+ "level": 21
+ },
+ {
+ "move": "AQUA_RING",
+ "level": 23
+ },
+ {
+ "move": "AURORA_BEAM",
+ "level": 27
+ },
+ {
+ "move": "AQUA_JET",
+ "level": 31
+ },
+ {
+ "move": "BRINE",
+ "level": 33
+ },
+ {
+ "move": "SHEER_COLD",
+ "level": 34
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 37
+ },
+ {
+ "move": "DIVE",
+ "level": 41
+ },
+ {
+ "move": "AQUA_TAIL",
+ "level": 43
+ },
+ {
+ "move": "ICE_BEAM",
+ "level": 47
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 51
+ }
+ ]
+ },
+ {
+ "species": "GRIMER",
+ "moves": [
+ {
+ "move": "POISON_GAS",
+ "level": 1
+ },
+ {
+ "move": "POUND",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 4
+ },
+ {
+ "move": "MUD_SLAP",
+ "level": 7
+ },
+ {
+ "move": "DISABLE",
+ "level": 12
+ },
+ {
+ "move": "MINIMIZE",
+ "level": 17
+ },
+ {
+ "move": "SLUDGE",
+ "level": 20
+ },
+ {
+ "move": "MUD_BOMB",
+ "level": 23
+ },
+ {
+ "move": "FLING",
+ "level": 28
+ },
+ {
+ "move": "SCREECH",
+ "level": 33
+ },
+ {
+ "move": "SLUDGE_BOMB",
+ "level": 36
+ },
+ {
+ "move": "ACID_ARMOR",
+ "level": 39
+ },
+ {
+ "move": "GUNK_SHOT",
+ "level": 44
+ },
+ {
+ "move": "MEMENTO",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "MUK",
+ "moves": [
+ {
+ "move": "POISON_GAS",
+ "level": 1
+ },
+ {
+ "move": "POUND",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 1
+ },
+ {
+ "move": "MUD_SLAP",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 4
+ },
+ {
+ "move": "MUD_SLAP",
+ "level": 7
+ },
+ {
+ "move": "DISABLE",
+ "level": 12
+ },
+ {
+ "move": "MINIMIZE",
+ "level": 17
+ },
+ {
+ "move": "SLUDGE",
+ "level": 20
+ },
+ {
+ "move": "MUD_BOMB",
+ "level": 23
+ },
+ {
+ "move": "FLING",
+ "level": 28
+ },
+ {
+ "move": "SCREECH",
+ "level": 33
+ },
+ {
+ "move": "SLUDGE_BOMB",
+ "level": 36
+ },
+ {
+ "move": "ACID_ARMOR",
+ "level": 44
+ },
+ {
+ "move": "GUNK_SHOT",
+ "level": 54
+ },
+ {
+ "move": "MEMENTO",
+ "level": 65
+ }
+ ]
+ },
+ {
+ "species": "SHELLDER",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "WITHDRAW",
+ "level": 4
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 8
+ },
+ {
+ "move": "ICICLE_SPEAR",
+ "level": 13
+ },
+ {
+ "move": "PROTECT",
+ "level": 16
+ },
+ {
+ "move": "LEER",
+ "level": 20
+ },
+ {
+ "move": "CLAMP",
+ "level": 25
+ },
+ {
+ "move": "ICE_SHARD",
+ "level": 28
+ },
+ {
+ "move": "AURORA_BEAM",
+ "level": 32
+ },
+ {
+ "move": "WHIRLPOOL",
+ "level": 37
+ },
+ {
+ "move": "IRON_DEFENSE",
+ "level": 40
+ },
+ {
+ "move": "BRINE",
+ "level": 44
+ },
+ {
+ "move": "ICE_BEAM",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "CLOYSTER",
+ "moves": [
+ {
+ "move": "TOXIC_SPIKES",
+ "level": 1
+ },
+ {
+ "move": "WITHDRAW",
+ "level": 1
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 1
+ },
+ {
+ "move": "AURORA_BEAM",
+ "level": 1
+ },
+ {
+ "move": "PROTECT",
+ "level": 1
+ },
+ {
+ "move": "SPIKES",
+ "level": 28
+ },
+ {
+ "move": "SPIKE_CANNON",
+ "level": 40
+ }
+ ]
+ },
+ {
+ "species": "GASTLY",
+ "moves": [
+ {
+ "move": "HYPNOSIS",
+ "level": 1
+ },
+ {
+ "move": "LICK",
+ "level": 1
+ },
+ {
+ "move": "SPITE",
+ "level": 5
+ },
+ {
+ "move": "MEAN_LOOK",
+ "level": 8
+ },
+ {
+ "move": "CURSE",
+ "level": 12
+ },
+ {
+ "move": "NIGHT_SHADE",
+ "level": 15
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 19
+ },
+ {
+ "move": "SUCKER_PUNCH",
+ "level": 22
+ },
+ {
+ "move": "PAYBACK",
+ "level": 26
+ },
+ {
+ "move": "SHADOW_BALL",
+ "level": 29
+ },
+ {
+ "move": "DREAM_EATER",
+ "level": 33
+ },
+ {
+ "move": "DARK_PULSE",
+ "level": 36
+ },
+ {
+ "move": "DESTINY_BOND",
+ "level": 40
+ },
+ {
+ "move": "NIGHTMARE",
+ "level": 43
+ }
+ ]
+ },
+ {
+ "species": "HAUNTER",
+ "moves": [
+ {
+ "move": "HYPNOSIS",
+ "level": 1
+ },
+ {
+ "move": "LICK",
+ "level": 1
+ },
+ {
+ "move": "SPITE",
+ "level": 1
+ },
+ {
+ "move": "SPITE",
+ "level": 5
+ },
+ {
+ "move": "MEAN_LOOK",
+ "level": 8
+ },
+ {
+ "move": "CURSE",
+ "level": 12
+ },
+ {
+ "move": "NIGHT_SHADE",
+ "level": 15
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 19
+ },
+ {
+ "move": "SUCKER_PUNCH",
+ "level": 22
+ },
+ {
+ "move": "SHADOW_PUNCH",
+ "level": 25
+ },
+ {
+ "move": "PAYBACK",
+ "level": 28
+ },
+ {
+ "move": "SHADOW_BALL",
+ "level": 33
+ },
+ {
+ "move": "DREAM_EATER",
+ "level": 39
+ },
+ {
+ "move": "DARK_PULSE",
+ "level": 44
+ },
+ {
+ "move": "DESTINY_BOND",
+ "level": 50
+ },
+ {
+ "move": "NIGHTMARE",
+ "level": 55
+ }
+ ]
+ },
+ {
+ "species": "GENGAR",
+ "moves": [
+ {
+ "move": "HYPNOSIS",
+ "level": 1
+ },
+ {
+ "move": "LICK",
+ "level": 1
+ },
+ {
+ "move": "SPITE",
+ "level": 1
+ },
+ {
+ "move": "SPITE",
+ "level": 5
+ },
+ {
+ "move": "MEAN_LOOK",
+ "level": 8
+ },
+ {
+ "move": "CURSE",
+ "level": 12
+ },
+ {
+ "move": "NIGHT_SHADE",
+ "level": 15
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 19
+ },
+ {
+ "move": "SUCKER_PUNCH",
+ "level": 22
+ },
+ {
+ "move": "SHADOW_PUNCH",
+ "level": 25
+ },
+ {
+ "move": "PAYBACK",
+ "level": 28
+ },
+ {
+ "move": "SHADOW_BALL",
+ "level": 33
+ },
+ {
+ "move": "DREAM_EATER",
+ "level": 39
+ },
+ {
+ "move": "DARK_PULSE",
+ "level": 44
+ },
+ {
+ "move": "DESTINY_BOND",
+ "level": 50
+ },
+ {
+ "move": "NIGHTMARE",
+ "level": 55
+ }
+ ]
+ },
+ {
+ "species": "ONIX",
+ "moves": [
+ {
+ "move": "MUD_SPORT",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 1
+ },
+ {
+ "move": "BIND",
+ "level": 1
+ },
+ {
+ "move": "SCREECH",
+ "level": 6
+ },
+ {
+ "move": "ROCK_THROW",
+ "level": 9
+ },
+ {
+ "move": "RAGE",
+ "level": 14
+ },
+ {
+ "move": "ROCK_TOMB",
+ "level": 17
+ },
+ {
+ "move": "SANDSTORM",
+ "level": 22
+ },
+ {
+ "move": "SLAM",
+ "level": 25
+ },
+ {
+ "move": "ROCK_POLISH",
+ "level": 30
+ },
+ {
+ "move": "DRAGON_BREATH",
+ "level": 33
+ },
+ {
+ "move": "IRON_TAIL",
+ "level": 38
+ },
+ {
+ "move": "SAND_TOMB",
+ "level": 41
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 46
+ },
+ {
+ "move": "STONE_EDGE",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "DROWZEE",
+ "moves": [
+ {
+ "move": "POUND",
+ "level": 1
+ },
+ {
+ "move": "HYPNOSIS",
+ "level": 1
+ },
+ {
+ "move": "DISABLE",
+ "level": 7
+ },
+ {
+ "move": "CONFUSION",
+ "level": 9
+ },
+ {
+ "move": "HEADBUTT",
+ "level": 15
+ },
+ {
+ "move": "POISON_GAS",
+ "level": 18
+ },
+ {
+ "move": "MEDITATE",
+ "level": 21
+ },
+ {
+ "move": "PSYBEAM",
+ "level": 26
+ },
+ {
+ "move": "PSYCH_UP",
+ "level": 29
+ },
+ {
+ "move": "HEADBUTT",
+ "level": 32
+ },
+ {
+ "move": "SWAGGER",
+ "level": 37
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 40
+ },
+ {
+ "move": "NASTY_PLOT",
+ "level": 43
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 50
+ },
+ {
+ "move": "FUTURE_SIGHT",
+ "level": 53
+ }
+ ]
+ },
+ {
+ "species": "HYPNO",
+ "moves": [
+ {
+ "move": "NIGHTMARE",
+ "level": 1
+ },
+ {
+ "move": "SWITCHEROO",
+ "level": 1
+ },
+ {
+ "move": "POUND",
+ "level": 1
+ },
+ {
+ "move": "HYPNOSIS",
+ "level": 1
+ },
+ {
+ "move": "DISABLE",
+ "level": 1
+ },
+ {
+ "move": "CONFUSION",
+ "level": 1
+ },
+ {
+ "move": "DISABLE",
+ "level": 7
+ },
+ {
+ "move": "CONFUSION",
+ "level": 9
+ },
+ {
+ "move": "HEADBUTT",
+ "level": 15
+ },
+ {
+ "move": "POISON_GAS",
+ "level": 18
+ },
+ {
+ "move": "MEDITATE",
+ "level": 21
+ },
+ {
+ "move": "PSYBEAM",
+ "level": 28
+ },
+ {
+ "move": "PSYCH_UP",
+ "level": 33
+ },
+ {
+ "move": "HEADBUTT",
+ "level": 38
+ },
+ {
+ "move": "SWAGGER",
+ "level": 45
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 50
+ },
+ {
+ "move": "NASTY_PLOT",
+ "level": 55
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 64
+ },
+ {
+ "move": "FUTURE_SIGHT",
+ "level": 69
+ }
+ ]
+ },
+ {
+ "species": "KRABBY",
+ "moves": [
+ {
+ "move": "MUD_SPORT",
+ "level": 1
+ },
+ {
+ "move": "BUBBLE",
+ "level": 1
+ },
+ {
+ "move": "VISE_GRIP",
+ "level": 5
+ },
+ {
+ "move": "LEER",
+ "level": 9
+ },
+ {
+ "move": "HARDEN",
+ "level": 11
+ },
+ {
+ "move": "BUBBLE_BEAM",
+ "level": 15
+ },
+ {
+ "move": "MUD_SHOT",
+ "level": 19
+ },
+ {
+ "move": "METAL_CLAW",
+ "level": 21
+ },
+ {
+ "move": "STOMP",
+ "level": 25
+ },
+ {
+ "move": "PROTECT",
+ "level": 29
+ },
+ {
+ "move": "GUILLOTINE",
+ "level": 31
+ },
+ {
+ "move": "SLAM",
+ "level": 35
+ },
+ {
+ "move": "BRINE",
+ "level": 39
+ },
+ {
+ "move": "CRABHAMMER",
+ "level": 41
+ },
+ {
+ "move": "FLAIL",
+ "level": 45
+ }
+ ]
+ },
+ {
+ "species": "KINGLER",
+ "moves": [
+ {
+ "move": "MUD_SPORT",
+ "level": 1
+ },
+ {
+ "move": "BUBBLE",
+ "level": 1
+ },
+ {
+ "move": "VISE_GRIP",
+ "level": 1
+ },
+ {
+ "move": "VISE_GRIP",
+ "level": 5
+ },
+ {
+ "move": "LEER",
+ "level": 9
+ },
+ {
+ "move": "HARDEN",
+ "level": 11
+ },
+ {
+ "move": "BUBBLE_BEAM",
+ "level": 15
+ },
+ {
+ "move": "MUD_SHOT",
+ "level": 19
+ },
+ {
+ "move": "METAL_CLAW",
+ "level": 21
+ },
+ {
+ "move": "STOMP",
+ "level": 25
+ },
+ {
+ "move": "PROTECT",
+ "level": 32
+ },
+ {
+ "move": "GUILLOTINE",
+ "level": 37
+ },
+ {
+ "move": "SLAM",
+ "level": 44
+ },
+ {
+ "move": "BRINE",
+ "level": 51
+ },
+ {
+ "move": "CRABHAMMER",
+ "level": 56
+ },
+ {
+ "move": "FLAIL",
+ "level": 63
+ }
+ ]
+ },
+ {
+ "species": "VOLTORB",
+ "moves": [
+ {
+ "move": "CHARGE",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 5
+ },
+ {
+ "move": "SONIC_BOOM",
+ "level": 8
+ },
+ {
+ "move": "SPARK",
+ "level": 12
+ },
+ {
+ "move": "ROLLOUT",
+ "level": 15
+ },
+ {
+ "move": "SCREECH",
+ "level": 19
+ },
+ {
+ "move": "LIGHT_SCREEN",
+ "level": 22
+ },
+ {
+ "move": "CHARGE_BEAM",
+ "level": 26
+ },
+ {
+ "move": "SELF_DESTRUCT",
+ "level": 29
+ },
+ {
+ "move": "SWIFT",
+ "level": 33
+ },
+ {
+ "move": "MAGNET_RISE",
+ "level": 36
+ },
+ {
+ "move": "GYRO_BALL",
+ "level": 40
+ },
+ {
+ "move": "EXPLOSION",
+ "level": 43
+ },
+ {
+ "move": "MIRROR_COAT",
+ "level": 47
+ }
+ ]
+ },
+ {
+ "species": "ELECTRODE",
+ "moves": [
+ {
+ "move": "CHARGE",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "SONIC_BOOM",
+ "level": 1
+ },
+ {
+ "move": "SPARK",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 5
+ },
+ {
+ "move": "SONIC_BOOM",
+ "level": 8
+ },
+ {
+ "move": "SPARK",
+ "level": 12
+ },
+ {
+ "move": "ROLLOUT",
+ "level": 15
+ },
+ {
+ "move": "SCREECH",
+ "level": 19
+ },
+ {
+ "move": "LIGHT_SCREEN",
+ "level": 22
+ },
+ {
+ "move": "CHARGE_BEAM",
+ "level": 26
+ },
+ {
+ "move": "SELF_DESTRUCT",
+ "level": 29
+ },
+ {
+ "move": "SWIFT",
+ "level": 35
+ },
+ {
+ "move": "MAGNET_RISE",
+ "level": 40
+ },
+ {
+ "move": "GYRO_BALL",
+ "level": 46
+ },
+ {
+ "move": "EXPLOSION",
+ "level": 51
+ },
+ {
+ "move": "MIRROR_COAT",
+ "level": 57
+ }
+ ]
+ },
+ {
+ "species": "EXEGGCUTE",
+ "moves": [
+ {
+ "move": "BARRAGE",
+ "level": 1
+ },
+ {
+ "move": "UPROAR",
+ "level": 1
+ },
+ {
+ "move": "HYPNOSIS",
+ "level": 1
+ },
+ {
+ "move": "REFLECT",
+ "level": 7
+ },
+ {
+ "move": "LEECH_SEED",
+ "level": 11
+ },
+ {
+ "move": "BULLET_SEED",
+ "level": 17
+ },
+ {
+ "move": "STUN_SPORE",
+ "level": 19
+ },
+ {
+ "move": "POISON_POWDER",
+ "level": 21
+ },
+ {
+ "move": "SLEEP_POWDER",
+ "level": 23
+ },
+ {
+ "move": "CONFUSION",
+ "level": 27
+ },
+ {
+ "move": "WORRY_SEED",
+ "level": 33
+ },
+ {
+ "move": "NATURAL_GIFT",
+ "level": 37
+ },
+ {
+ "move": "SOLAR_BEAM",
+ "level": 43
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 47
+ }
+ ]
+ },
+ {
+ "species": "EXEGGUTOR",
+ "moves": [
+ {
+ "move": "SEED_BOMB",
+ "level": 1
+ },
+ {
+ "move": "BARRAGE",
+ "level": 1
+ },
+ {
+ "move": "HYPNOSIS",
+ "level": 1
+ },
+ {
+ "move": "CONFUSION",
+ "level": 1
+ },
+ {
+ "move": "STOMP",
+ "level": 1
+ },
+ {
+ "move": "STOMP",
+ "level": 17
+ },
+ {
+ "move": "EGG_BOMB",
+ "level": 27
+ },
+ {
+ "move": "WOOD_HAMMER",
+ "level": 37
+ },
+ {
+ "move": "LEAF_STORM",
+ "level": 47
+ }
+ ]
+ },
+ {
+ "species": "CUBONE",
+ "moves": [
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 3
+ },
+ {
+ "move": "BONE_CLUB",
+ "level": 7
+ },
+ {
+ "move": "HEADBUTT",
+ "level": 11
+ },
+ {
+ "move": "LEER",
+ "level": 13
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 17
+ },
+ {
+ "move": "BONEMERANG",
+ "level": 21
+ },
+ {
+ "move": "RAGE",
+ "level": 23
+ },
+ {
+ "move": "FALSE_SWIPE",
+ "level": 27
+ },
+ {
+ "move": "THRASH",
+ "level": 31
+ },
+ {
+ "move": "FLING",
+ "level": 33
+ },
+ {
+ "move": "BONE_RUSH",
+ "level": 37
+ },
+ {
+ "move": "ENDEAVOR",
+ "level": 41
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 43
+ }
+ ]
+ },
+ {
+ "species": "MAROWAK",
+ "moves": [
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "BONE_CLUB",
+ "level": 1
+ },
+ {
+ "move": "HEADBUTT",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 3
+ },
+ {
+ "move": "BONE_CLUB",
+ "level": 7
+ },
+ {
+ "move": "HEADBUTT",
+ "level": 11
+ },
+ {
+ "move": "LEER",
+ "level": 13
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 17
+ },
+ {
+ "move": "BONEMERANG",
+ "level": 21
+ },
+ {
+ "move": "RAGE",
+ "level": 23
+ },
+ {
+ "move": "FALSE_SWIPE",
+ "level": 27
+ },
+ {
+ "move": "THRASH",
+ "level": 33
+ },
+ {
+ "move": "FLING",
+ "level": 37
+ },
+ {
+ "move": "BONE_RUSH",
+ "level": 43
+ },
+ {
+ "move": "ENDEAVOR",
+ "level": 49
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 53
+ }
+ ]
+ },
+ {
+ "species": "HITMONLEE",
+ "moves": [
+ {
+ "move": "REVENGE",
+ "level": 1
+ },
+ {
+ "move": "DOUBLE_KICK",
+ "level": 1
+ },
+ {
+ "move": "MEDITATE",
+ "level": 5
+ },
+ {
+ "move": "ROLLING_KICK",
+ "level": 9
+ },
+ {
+ "move": "JUMP_KICK",
+ "level": 13
+ },
+ {
+ "move": "BRICK_BREAK",
+ "level": 17
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 21
+ },
+ {
+ "move": "FEINT",
+ "level": 25
+ },
+ {
+ "move": "HIGH_JUMP_KICK",
+ "level": 29
+ },
+ {
+ "move": "MIND_READER",
+ "level": 33
+ },
+ {
+ "move": "FORESIGHT",
+ "level": 37
+ },
+ {
+ "move": "BLAZE_KICK",
+ "level": 41
+ },
+ {
+ "move": "ENDURE",
+ "level": 45
+ },
+ {
+ "move": "MEGA_KICK",
+ "level": 49
+ },
+ {
+ "move": "CLOSE_COMBAT",
+ "level": 53
+ },
+ {
+ "move": "REVERSAL",
+ "level": 57
+ }
+ ]
+ },
+ {
+ "species": "HITMONCHAN",
+ "moves": [
+ {
+ "move": "REVENGE",
+ "level": 1
+ },
+ {
+ "move": "COMET_PUNCH",
+ "level": 1
+ },
+ {
+ "move": "AGILITY",
+ "level": 6
+ },
+ {
+ "move": "PURSUIT",
+ "level": 11
+ },
+ {
+ "move": "MACH_PUNCH",
+ "level": 16
+ },
+ {
+ "move": "BULLET_PUNCH",
+ "level": 16
+ },
+ {
+ "move": "FEINT",
+ "level": 21
+ },
+ {
+ "move": "VACUUM_WAVE",
+ "level": 26
+ },
+ {
+ "move": "THUNDER_PUNCH",
+ "level": 31
+ },
+ {
+ "move": "ICE_PUNCH",
+ "level": 31
+ },
+ {
+ "move": "FIRE_PUNCH",
+ "level": 31
+ },
+ {
+ "move": "SKY_UPPERCUT",
+ "level": 36
+ },
+ {
+ "move": "MEGA_PUNCH",
+ "level": 41
+ },
+ {
+ "move": "DETECT",
+ "level": 46
+ },
+ {
+ "move": "COUNTER",
+ "level": 51
+ },
+ {
+ "move": "CLOSE_COMBAT",
+ "level": 56
+ }
+ ]
+ },
+ {
+ "species": "LICKITUNG",
+ "moves": [
+ {
+ "move": "LICK",
+ "level": 1
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 5
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 9
+ },
+ {
+ "move": "KNOCK_OFF",
+ "level": 13
+ },
+ {
+ "move": "WRAP",
+ "level": 17
+ },
+ {
+ "move": "STOMP",
+ "level": 21
+ },
+ {
+ "move": "DISABLE",
+ "level": 25
+ },
+ {
+ "move": "SLAM",
+ "level": 29
+ },
+ {
+ "move": "ROLLOUT",
+ "level": 33
+ },
+ {
+ "move": "ME_FIRST",
+ "level": 37
+ },
+ {
+ "move": "REFRESH",
+ "level": 41
+ },
+ {
+ "move": "SCREECH",
+ "level": 45
+ },
+ {
+ "move": "POWER_WHIP",
+ "level": 49
+ },
+ {
+ "move": "WRING_OUT",
+ "level": 53
+ }
+ ]
+ },
+ {
+ "species": "KOFFING",
+ "moves": [
+ {
+ "move": "POISON_GAS",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "SMOG",
+ "level": 6
+ },
+ {
+ "move": "SMOKESCREEN",
+ "level": 10
+ },
+ {
+ "move": "ASSURANCE",
+ "level": 15
+ },
+ {
+ "move": "SELF_DESTRUCT",
+ "level": 19
+ },
+ {
+ "move": "SLUDGE",
+ "level": 24
+ },
+ {
+ "move": "HAZE",
+ "level": 28
+ },
+ {
+ "move": "GYRO_BALL",
+ "level": 33
+ },
+ {
+ "move": "EXPLOSION",
+ "level": 37
+ },
+ {
+ "move": "SLUDGE_BOMB",
+ "level": 42
+ },
+ {
+ "move": "DESTINY_BOND",
+ "level": 46
+ },
+ {
+ "move": "MEMENTO",
+ "level": 51
+ }
+ ]
+ },
+ {
+ "species": "WEEZING",
+ "moves": [
+ {
+ "move": "POISON_GAS",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "SMOG",
+ "level": 1
+ },
+ {
+ "move": "SMOKESCREEN",
+ "level": 1
+ },
+ {
+ "move": "SMOG",
+ "level": 6
+ },
+ {
+ "move": "SMOKESCREEN",
+ "level": 10
+ },
+ {
+ "move": "ASSURANCE",
+ "level": 15
+ },
+ {
+ "move": "SELF_DESTRUCT",
+ "level": 19
+ },
+ {
+ "move": "SLUDGE",
+ "level": 24
+ },
+ {
+ "move": "HAZE",
+ "level": 28
+ },
+ {
+ "move": "DOUBLE_HIT",
+ "level": 33
+ },
+ {
+ "move": "EXPLOSION",
+ "level": 40
+ },
+ {
+ "move": "SLUDGE_BOMB",
+ "level": 48
+ },
+ {
+ "move": "DESTINY_BOND",
+ "level": 55
+ },
+ {
+ "move": "MEMENTO",
+ "level": 63
+ }
+ ]
+ },
+ {
+ "species": "RHYHORN",
+ "moves": [
+ {
+ "move": "HORN_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "STOMP",
+ "level": 9
+ },
+ {
+ "move": "FURY_ATTACK",
+ "level": 13
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 21
+ },
+ {
+ "move": "ROCK_BLAST",
+ "level": 25
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 33
+ },
+ {
+ "move": "HORN_DRILL",
+ "level": 37
+ },
+ {
+ "move": "STONE_EDGE",
+ "level": 45
+ },
+ {
+ "move": "EARTHQUAKE",
+ "level": 49
+ },
+ {
+ "move": "MEGAHORN",
+ "level": 57
+ }
+ ]
+ },
+ {
+ "species": "RHYDON",
+ "moves": [
+ {
+ "move": "HORN_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "STOMP",
+ "level": 1
+ },
+ {
+ "move": "FURY_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "STOMP",
+ "level": 9
+ },
+ {
+ "move": "FURY_ATTACK",
+ "level": 13
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 21
+ },
+ {
+ "move": "ROCK_BLAST",
+ "level": 25
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 33
+ },
+ {
+ "move": "HORN_DRILL",
+ "level": 37
+ },
+ {
+ "move": "HAMMER_ARM",
+ "level": 42
+ },
+ {
+ "move": "STONE_EDGE",
+ "level": 45
+ },
+ {
+ "move": "EARTHQUAKE",
+ "level": 49
+ },
+ {
+ "move": "MEGAHORN",
+ "level": 57
+ }
+ ]
+ },
+ {
+ "species": "CHANSEY",
+ "moves": [
+ {
+ "move": "POUND",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 5
+ },
+ {
+ "move": "REFRESH",
+ "level": 9
+ },
+ {
+ "move": "SOFT_BOILED",
+ "level": 12
+ },
+ {
+ "move": "DOUBLE_SLAP",
+ "level": 16
+ },
+ {
+ "move": "MINIMIZE",
+ "level": 20
+ },
+ {
+ "move": "SING",
+ "level": 23
+ },
+ {
+ "move": "FLING",
+ "level": 27
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 31
+ },
+ {
+ "move": "LIGHT_SCREEN",
+ "level": 34
+ },
+ {
+ "move": "EGG_BOMB",
+ "level": 38
+ },
+ {
+ "move": "HEALING_WISH",
+ "level": 42
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 46
+ }
+ ]
+ },
+ {
+ "species": "TANGELA",
+ "moves": [
+ {
+ "move": "INGRAIN",
+ "level": 1
+ },
+ {
+ "move": "CONSTRICT",
+ "level": 1
+ },
+ {
+ "move": "SLEEP_POWDER",
+ "level": 5
+ },
+ {
+ "move": "ABSORB",
+ "level": 8
+ },
+ {
+ "move": "GROWTH",
+ "level": 12
+ },
+ {
+ "move": "POISON_POWDER",
+ "level": 15
+ },
+ {
+ "move": "VINE_WHIP",
+ "level": 19
+ },
+ {
+ "move": "BIND",
+ "level": 22
+ },
+ {
+ "move": "MEGA_DRAIN",
+ "level": 26
+ },
+ {
+ "move": "STUN_SPORE",
+ "level": 29
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 33
+ },
+ {
+ "move": "KNOCK_OFF",
+ "level": 36
+ },
+ {
+ "move": "NATURAL_GIFT",
+ "level": 40
+ },
+ {
+ "move": "SLAM",
+ "level": 43
+ },
+ {
+ "move": "TICKLE",
+ "level": 47
+ },
+ {
+ "move": "WRING_OUT",
+ "level": 50
+ },
+ {
+ "move": "POWER_WHIP",
+ "level": 54
+ }
+ ]
+ },
+ {
+ "species": "KANGASKHAN",
+ "moves": [
+ {
+ "move": "COMET_PUNCH",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "FAKE_OUT",
+ "level": 7
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 10
+ },
+ {
+ "move": "BITE",
+ "level": 13
+ },
+ {
+ "move": "MEGA_PUNCH",
+ "level": 19
+ },
+ {
+ "move": "RAGE",
+ "level": 22
+ },
+ {
+ "move": "DIZZY_PUNCH",
+ "level": 25
+ },
+ {
+ "move": "CRUNCH",
+ "level": 31
+ },
+ {
+ "move": "ENDURE",
+ "level": 34
+ },
+ {
+ "move": "OUTRAGE",
+ "level": 37
+ },
+ {
+ "move": "DOUBLE_HIT",
+ "level": 43
+ },
+ {
+ "move": "SUCKER_PUNCH",
+ "level": 46
+ },
+ {
+ "move": "REVERSAL",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "HORSEA",
+ "moves": [
+ {
+ "move": "BUBBLE",
+ "level": 1
+ },
+ {
+ "move": "SMOKESCREEN",
+ "level": 4
+ },
+ {
+ "move": "LEER",
+ "level": 8
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 11
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 14
+ },
+ {
+ "move": "BUBBLE_BEAM",
+ "level": 18
+ },
+ {
+ "move": "AGILITY",
+ "level": 23
+ },
+ {
+ "move": "TWISTER",
+ "level": 26
+ },
+ {
+ "move": "BRINE",
+ "level": 30
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 35
+ },
+ {
+ "move": "DRAGON_DANCE",
+ "level": 38
+ },
+ {
+ "move": "DRAGON_PULSE",
+ "level": 42
+ }
+ ]
+ },
+ {
+ "species": "SEADRA",
+ "moves": [
+ {
+ "move": "BUBBLE",
+ "level": 1
+ },
+ {
+ "move": "SMOKESCREEN",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 1
+ },
+ {
+ "move": "SMOKESCREEN",
+ "level": 4
+ },
+ {
+ "move": "LEER",
+ "level": 8
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 11
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 14
+ },
+ {
+ "move": "BUBBLE_BEAM",
+ "level": 18
+ },
+ {
+ "move": "AGILITY",
+ "level": 23
+ },
+ {
+ "move": "TWISTER",
+ "level": 26
+ },
+ {
+ "move": "BRINE",
+ "level": 30
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 40
+ },
+ {
+ "move": "DRAGON_DANCE",
+ "level": 48
+ },
+ {
+ "move": "DRAGON_PULSE",
+ "level": 57
+ }
+ ]
+ },
+ {
+ "species": "GOLDEEN",
+ "moves": [
+ {
+ "move": "PECK",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "WATER_SPORT",
+ "level": 1
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 7
+ },
+ {
+ "move": "HORN_ATTACK",
+ "level": 11
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 17
+ },
+ {
+ "move": "FLAIL",
+ "level": 21
+ },
+ {
+ "move": "AQUA_RING",
+ "level": 27
+ },
+ {
+ "move": "FURY_ATTACK",
+ "level": 31
+ },
+ {
+ "move": "WATERFALL",
+ "level": 37
+ },
+ {
+ "move": "HORN_DRILL",
+ "level": 41
+ },
+ {
+ "move": "AGILITY",
+ "level": 47
+ },
+ {
+ "move": "MEGAHORN",
+ "level": 51
+ }
+ ]
+ },
+ {
+ "species": "SEAKING",
+ "moves": [
+ {
+ "move": "POISON_JAB",
+ "level": 1
+ },
+ {
+ "move": "PECK",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "WATER_SPORT",
+ "level": 1
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 1
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 7
+ },
+ {
+ "move": "HORN_ATTACK",
+ "level": 11
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 17
+ },
+ {
+ "move": "FLAIL",
+ "level": 21
+ },
+ {
+ "move": "AQUA_RING",
+ "level": 27
+ },
+ {
+ "move": "FURY_ATTACK",
+ "level": 31
+ },
+ {
+ "move": "WATERFALL",
+ "level": 40
+ },
+ {
+ "move": "HORN_DRILL",
+ "level": 47
+ },
+ {
+ "move": "AGILITY",
+ "level": 56
+ },
+ {
+ "move": "MEGAHORN",
+ "level": 63
+ }
+ ]
+ },
+ {
+ "species": "STARYU",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 1
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 6
+ },
+ {
+ "move": "RAPID_SPIN",
+ "level": 10
+ },
+ {
+ "move": "RECOVER",
+ "level": 15
+ },
+ {
+ "move": "CAMOUFLAGE",
+ "level": 19
+ },
+ {
+ "move": "SWIFT",
+ "level": 24
+ },
+ {
+ "move": "BUBBLE_BEAM",
+ "level": 28
+ },
+ {
+ "move": "MINIMIZE",
+ "level": 33
+ },
+ {
+ "move": "GYRO_BALL",
+ "level": 37
+ },
+ {
+ "move": "LIGHT_SCREEN",
+ "level": 42
+ },
+ {
+ "move": "POWER_GEM",
+ "level": 46
+ },
+ {
+ "move": "COSMIC_POWER",
+ "level": 51
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 55
+ }
+ ]
+ },
+ {
+ "species": "STARMIE",
+ "moves": [
+ {
+ "move": "WATER_GUN",
+ "level": 1
+ },
+ {
+ "move": "RAPID_SPIN",
+ "level": 1
+ },
+ {
+ "move": "RECOVER",
+ "level": 1
+ },
+ {
+ "move": "SWIFT",
+ "level": 1
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 28
+ }
+ ]
+ },
+ {
+ "species": "MR_MIME",
+ "moves": [
+ {
+ "move": "MAGICAL_LEAF",
+ "level": 1
+ },
+ {
+ "move": "POWER_SWAP",
+ "level": 1
+ },
+ {
+ "move": "GUARD_SWAP",
+ "level": 1
+ },
+ {
+ "move": "BARRIER",
+ "level": 1
+ },
+ {
+ "move": "CONFUSION",
+ "level": 1
+ },
+ {
+ "move": "COPYCAT",
+ "level": 4
+ },
+ {
+ "move": "MEDITATE",
+ "level": 8
+ },
+ {
+ "move": "ENCORE",
+ "level": 11
+ },
+ {
+ "move": "DOUBLE_SLAP",
+ "level": 15
+ },
+ {
+ "move": "MIMIC",
+ "level": 18
+ },
+ {
+ "move": "LIGHT_SCREEN",
+ "level": 22
+ },
+ {
+ "move": "REFLECT",
+ "level": 22
+ },
+ {
+ "move": "PSYBEAM",
+ "level": 25
+ },
+ {
+ "move": "SUBSTITUTE",
+ "level": 29
+ },
+ {
+ "move": "RECYCLE",
+ "level": 32
+ },
+ {
+ "move": "TRICK",
+ "level": 36
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 39
+ },
+ {
+ "move": "ROLE_PLAY",
+ "level": 43
+ },
+ {
+ "move": "BATON_PASS",
+ "level": 46
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 50
+ }
+ ]
+ },
+ {
+ "species": "SCYTHER",
+ "moves": [
+ {
+ "move": "QUICK_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 5
+ },
+ {
+ "move": "PURSUIT",
+ "level": 9
+ },
+ {
+ "move": "FALSE_SWIPE",
+ "level": 13
+ },
+ {
+ "move": "AGILITY",
+ "level": 17
+ },
+ {
+ "move": "WING_ATTACK",
+ "level": 21
+ },
+ {
+ "move": "FURY_CUTTER",
+ "level": 25
+ },
+ {
+ "move": "SLASH",
+ "level": 29
+ },
+ {
+ "move": "RAZOR_WIND",
+ "level": 33
+ },
+ {
+ "move": "DOUBLE_TEAM",
+ "level": 37
+ },
+ {
+ "move": "X_SCISSOR",
+ "level": 41
+ },
+ {
+ "move": "NIGHT_SLASH",
+ "level": 45
+ },
+ {
+ "move": "DOUBLE_HIT",
+ "level": 49
+ },
+ {
+ "move": "AIR_SLASH",
+ "level": 53
+ },
+ {
+ "move": "SWORDS_DANCE",
+ "level": 57
+ }
+ ]
+ },
+ {
+ "species": "JYNX",
+ "moves": [
+ {
+ "move": "POUND",
+ "level": 1
+ },
+ {
+ "move": "LICK",
+ "level": 1
+ },
+ {
+ "move": "LOVELY_KISS",
+ "level": 1
+ },
+ {
+ "move": "POWDER_SNOW",
+ "level": 1
+ },
+ {
+ "move": "LICK",
+ "level": 5
+ },
+ {
+ "move": "LOVELY_KISS",
+ "level": 8
+ },
+ {
+ "move": "POWDER_SNOW",
+ "level": 11
+ },
+ {
+ "move": "DOUBLE_SLAP",
+ "level": 15
+ },
+ {
+ "move": "ICE_PUNCH",
+ "level": 18
+ },
+ {
+ "move": "MEAN_LOOK",
+ "level": 21
+ },
+ {
+ "move": "FAKE_TEARS",
+ "level": 25
+ },
+ {
+ "move": "WAKE_UP_SLAP",
+ "level": 28
+ },
+ {
+ "move": "AVALANCHE",
+ "level": 33
+ },
+ {
+ "move": "BODY_SLAM",
+ "level": 39
+ },
+ {
+ "move": "WRING_OUT",
+ "level": 44
+ },
+ {
+ "move": "PERISH_SONG",
+ "level": 49
+ },
+ {
+ "move": "BLIZZARD",
+ "level": 55
+ }
+ ]
+ },
+ {
+ "species": "ELECTABUZZ",
+ "moves": [
+ {
+ "move": "QUICK_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_SHOCK",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_SHOCK",
+ "level": 7
+ },
+ {
+ "move": "LOW_KICK",
+ "level": 10
+ },
+ {
+ "move": "SWIFT",
+ "level": 16
+ },
+ {
+ "move": "SHOCK_WAVE",
+ "level": 19
+ },
+ {
+ "move": "LIGHT_SCREEN",
+ "level": 25
+ },
+ {
+ "move": "THUNDER_PUNCH",
+ "level": 28
+ },
+ {
+ "move": "DISCHARGE",
+ "level": 37
+ },
+ {
+ "move": "THUNDERBOLT",
+ "level": 43
+ },
+ {
+ "move": "SCREECH",
+ "level": 52
+ },
+ {
+ "move": "THUNDER",
+ "level": 58
+ }
+ ]
+ },
+ {
+ "species": "MAGMAR",
+ "moves": [
+ {
+ "move": "SMOG",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "EMBER",
+ "level": 1
+ },
+ {
+ "move": "EMBER",
+ "level": 7
+ },
+ {
+ "move": "SMOKESCREEN",
+ "level": 10
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 16
+ },
+ {
+ "move": "FIRE_SPIN",
+ "level": 19
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 25
+ },
+ {
+ "move": "FIRE_PUNCH",
+ "level": 28
+ },
+ {
+ "move": "LAVA_PLUME",
+ "level": 36
+ },
+ {
+ "move": "FLAMETHROWER",
+ "level": 41
+ },
+ {
+ "move": "SUNNY_DAY",
+ "level": 49
+ },
+ {
+ "move": "FIRE_BLAST",
+ "level": 54
+ }
+ ]
+ },
+ {
+ "species": "PINSIR",
+ "moves": [
+ {
+ "move": "VISE_GRIP",
+ "level": 1
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 1
+ },
+ {
+ "move": "BIND",
+ "level": 4
+ },
+ {
+ "move": "SEISMIC_TOSS",
+ "level": 8
+ },
+ {
+ "move": "HARDEN",
+ "level": 13
+ },
+ {
+ "move": "REVENGE",
+ "level": 18
+ },
+ {
+ "move": "BRICK_BREAK",
+ "level": 21
+ },
+ {
+ "move": "VITAL_THROW",
+ "level": 25
+ },
+ {
+ "move": "X_SCISSOR",
+ "level": 30
+ },
+ {
+ "move": "THRASH",
+ "level": 35
+ },
+ {
+ "move": "SWORDS_DANCE",
+ "level": 38
+ },
+ {
+ "move": "SUBMISSION",
+ "level": 42
+ },
+ {
+ "move": "GUILLOTINE",
+ "level": 47
+ },
+ {
+ "move": "SUPERPOWER",
+ "level": 52
+ }
+ ]
+ },
+ {
+ "species": "TAUROS",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 3
+ },
+ {
+ "move": "RAGE",
+ "level": 5
+ },
+ {
+ "move": "HORN_ATTACK",
+ "level": 8
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 11
+ },
+ {
+ "move": "PURSUIT",
+ "level": 15
+ },
+ {
+ "move": "REST",
+ "level": 19
+ },
+ {
+ "move": "PAYBACK",
+ "level": 24
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 29
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 35
+ },
+ {
+ "move": "SWAGGER",
+ "level": 41
+ },
+ {
+ "move": "THRASH",
+ "level": 48
+ },
+ {
+ "move": "GIGA_IMPACT",
+ "level": 55
+ }
+ ]
+ },
+ {
+ "species": "MAGIKARP",
+ "moves": [
+ {
+ "move": "SPLASH",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 15
+ },
+ {
+ "move": "FLAIL",
+ "level": 30
+ }
+ ]
+ },
+ {
+ "species": "GYARADOS",
+ "moves": [
+ {
+ "move": "THRASH",
+ "level": 1
+ },
+ {
+ "move": "BITE",
+ "level": 20
+ },
+ {
+ "move": "DRAGON_RAGE",
+ "level": 23
+ },
+ {
+ "move": "LEER",
+ "level": 26
+ },
+ {
+ "move": "TWISTER",
+ "level": 29
+ },
+ {
+ "move": "ICE_FANG",
+ "level": 32
+ },
+ {
+ "move": "AQUA_TAIL",
+ "level": 35
+ },
+ {
+ "move": "RAIN_DANCE",
+ "level": 38
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 41
+ },
+ {
+ "move": "DRAGON_DANCE",
+ "level": 44
+ },
+ {
+ "move": "HYPER_BEAM",
+ "level": 47
+ }
+ ]
+ },
+ {
+ "species": "LAPRAS",
+ "moves": [
+ {
+ "move": "SING",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 1
+ },
+ {
+ "move": "MIST",
+ "level": 4
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 7
+ },
+ {
+ "move": "ICE_SHARD",
+ "level": 10
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 14
+ },
+ {
+ "move": "BODY_SLAM",
+ "level": 18
+ },
+ {
+ "move": "RAIN_DANCE",
+ "level": 22
+ },
+ {
+ "move": "PERISH_SONG",
+ "level": 27
+ },
+ {
+ "move": "ICE_BEAM",
+ "level": 32
+ },
+ {
+ "move": "BRINE",
+ "level": 37
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 43
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 49
+ },
+ {
+ "move": "SHEER_COLD",
+ "level": 55
+ }
+ ]
+ },
+ {
+ "species": "DITTO",
+ "moves": [
+ {
+ "move": "TRANSFORM",
+ "level": 1
+ }
+ ]
+ },
+ {
+ "species": "EEVEE",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "HELPING_HAND",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 8
+ },
+ {
+ "move": "GROWL",
+ "level": 15
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 22
+ },
+ {
+ "move": "BITE",
+ "level": 29
+ },
+ {
+ "move": "BATON_PASS",
+ "level": 36
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 43
+ },
+ {
+ "move": "LAST_RESORT",
+ "level": 50
+ },
+ {
+ "move": "TRUMP_CARD",
+ "level": 57
+ }
+ ]
+ },
+ {
+ "species": "VAPOREON",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "HELPING_HAND",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 8
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 15
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 22
+ },
+ {
+ "move": "BITE",
+ "level": 29
+ },
+ {
+ "move": "AURORA_BEAM",
+ "level": 36
+ },
+ {
+ "move": "AQUA_RING",
+ "level": 43
+ },
+ {
+ "move": "LAST_RESORT",
+ "level": 50
+ },
+ {
+ "move": "HAZE",
+ "level": 57
+ },
+ {
+ "move": "ACID_ARMOR",
+ "level": 64
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 71
+ }
+ ]
+ },
+ {
+ "species": "JOLTEON",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "HELPING_HAND",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 8
+ },
+ {
+ "move": "THUNDER_SHOCK",
+ "level": 15
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 22
+ },
+ {
+ "move": "DOUBLE_KICK",
+ "level": 29
+ },
+ {
+ "move": "PIN_MISSILE",
+ "level": 36
+ },
+ {
+ "move": "THUNDER_FANG",
+ "level": 43
+ },
+ {
+ "move": "LAST_RESORT",
+ "level": 50
+ },
+ {
+ "move": "THUNDER_WAVE",
+ "level": 57
+ },
+ {
+ "move": "AGILITY",
+ "level": 64
+ },
+ {
+ "move": "THUNDER",
+ "level": 71
+ }
+ ]
+ },
+ {
+ "species": "FLAREON",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "HELPING_HAND",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 8
+ },
+ {
+ "move": "EMBER",
+ "level": 15
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 22
+ },
+ {
+ "move": "BITE",
+ "level": 29
+ },
+ {
+ "move": "FIRE_SPIN",
+ "level": 36
+ },
+ {
+ "move": "FIRE_FANG",
+ "level": 43
+ },
+ {
+ "move": "LAST_RESORT",
+ "level": 50
+ },
+ {
+ "move": "SMOG",
+ "level": 57
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 64
+ },
+ {
+ "move": "FIRE_BLAST",
+ "level": 71
+ }
+ ]
+ },
+ {
+ "species": "PORYGON",
+ "moves": [
+ {
+ "move": "CONVERSION_2",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "CONVERSION",
+ "level": 1
+ },
+ {
+ "move": "SHARPEN",
+ "level": 1
+ },
+ {
+ "move": "PSYBEAM",
+ "level": 7
+ },
+ {
+ "move": "AGILITY",
+ "level": 12
+ },
+ {
+ "move": "RECOVER",
+ "level": 18
+ },
+ {
+ "move": "MAGNET_RISE",
+ "level": 23
+ },
+ {
+ "move": "SIGNAL_BEAM",
+ "level": 29
+ },
+ {
+ "move": "RECYCLE",
+ "level": 34
+ },
+ {
+ "move": "DISCHARGE",
+ "level": 40
+ },
+ {
+ "move": "LOCK_ON",
+ "level": 45
+ },
+ {
+ "move": "TRI_ATTACK",
+ "level": 51
+ },
+ {
+ "move": "MAGIC_COAT",
+ "level": 56
+ },
+ {
+ "move": "ZAP_CANNON",
+ "level": 62
+ }
+ ]
+ },
+ {
+ "species": "OMANYTE",
+ "moves": [
+ {
+ "move": "CONSTRICT",
+ "level": 1
+ },
+ {
+ "move": "WITHDRAW",
+ "level": 1
+ },
+ {
+ "move": "BITE",
+ "level": 7
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 10
+ },
+ {
+ "move": "ROLLOUT",
+ "level": 16
+ },
+ {
+ "move": "LEER",
+ "level": 19
+ },
+ {
+ "move": "MUD_SHOT",
+ "level": 25
+ },
+ {
+ "move": "BRINE",
+ "level": 28
+ },
+ {
+ "move": "PROTECT",
+ "level": 34
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 37
+ },
+ {
+ "move": "TICKLE",
+ "level": 43
+ },
+ {
+ "move": "ROCK_BLAST",
+ "level": 46
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 52
+ }
+ ]
+ },
+ {
+ "species": "OMASTAR",
+ "moves": [
+ {
+ "move": "CONSTRICT",
+ "level": 1
+ },
+ {
+ "move": "WITHDRAW",
+ "level": 1
+ },
+ {
+ "move": "BITE",
+ "level": 1
+ },
+ {
+ "move": "BITE",
+ "level": 7
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 10
+ },
+ {
+ "move": "ROLLOUT",
+ "level": 16
+ },
+ {
+ "move": "LEER",
+ "level": 19
+ },
+ {
+ "move": "MUD_SHOT",
+ "level": 25
+ },
+ {
+ "move": "BRINE",
+ "level": 28
+ },
+ {
+ "move": "PROTECT",
+ "level": 34
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 37
+ },
+ {
+ "move": "SPIKE_CANNON",
+ "level": 40
+ },
+ {
+ "move": "TICKLE",
+ "level": 48
+ },
+ {
+ "move": "ROCK_BLAST",
+ "level": 56
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 67
+ }
+ ]
+ },
+ {
+ "species": "KABUTO",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 1
+ },
+ {
+ "move": "ABSORB",
+ "level": 6
+ },
+ {
+ "move": "LEER",
+ "level": 11
+ },
+ {
+ "move": "MUD_SHOT",
+ "level": 16
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 21
+ },
+ {
+ "move": "ENDURE",
+ "level": 26
+ },
+ {
+ "move": "AQUA_JET",
+ "level": 31
+ },
+ {
+ "move": "MEGA_DRAIN",
+ "level": 36
+ },
+ {
+ "move": "METAL_SOUND",
+ "level": 41
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 46
+ },
+ {
+ "move": "WRING_OUT",
+ "level": 51
+ }
+ ]
+ },
+ {
+ "species": "KABUTOPS",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 1
+ },
+ {
+ "move": "ABSORB",
+ "level": 1
+ },
+ {
+ "move": "ABSORB",
+ "level": 6
+ },
+ {
+ "move": "LEER",
+ "level": 11
+ },
+ {
+ "move": "MUD_SHOT",
+ "level": 16
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 21
+ },
+ {
+ "move": "ENDURE",
+ "level": 26
+ },
+ {
+ "move": "AQUA_JET",
+ "level": 31
+ },
+ {
+ "move": "MEGA_DRAIN",
+ "level": 36
+ },
+ {
+ "move": "SLASH",
+ "level": 40
+ },
+ {
+ "move": "METAL_SOUND",
+ "level": 45
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 54
+ },
+ {
+ "move": "WRING_OUT",
+ "level": 63
+ },
+ {
+ "move": "NIGHT_SLASH",
+ "level": 72
+ }
+ ]
+ },
+ {
+ "species": "AERODACTYL",
+ "moves": [
+ {
+ "move": "ICE_FANG",
+ "level": 1
+ },
+ {
+ "move": "FIRE_FANG",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_FANG",
+ "level": 1
+ },
+ {
+ "move": "WING_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 1
+ },
+ {
+ "move": "BITE",
+ "level": 1
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 1
+ },
+ {
+ "move": "ROAR",
+ "level": 9
+ },
+ {
+ "move": "AGILITY",
+ "level": 17
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 25
+ },
+ {
+ "move": "CRUNCH",
+ "level": 33
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 41
+ },
+ {
+ "move": "IRON_HEAD",
+ "level": 49
+ },
+ {
+ "move": "HYPER_BEAM",
+ "level": 57
+ },
+ {
+ "move": "ROCK_SLIDE",
+ "level": 65
+ },
+ {
+ "move": "GIGA_IMPACT",
+ "level": 73
+ }
+ ]
+ },
+ {
+ "species": "SNORLAX",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 4
+ },
+ {
+ "move": "AMNESIA",
+ "level": 9
+ },
+ {
+ "move": "LICK",
+ "level": 12
+ },
+ {
+ "move": "BELLY_DRUM",
+ "level": 17
+ },
+ {
+ "move": "YAWN",
+ "level": 20
+ },
+ {
+ "move": "REST",
+ "level": 25
+ },
+ {
+ "move": "SNORE",
+ "level": 28
+ },
+ {
+ "move": "SLEEP_TALK",
+ "level": 28
+ },
+ {
+ "move": "BODY_SLAM",
+ "level": 33
+ },
+ {
+ "move": "BLOCK",
+ "level": 36
+ },
+ {
+ "move": "ROLLOUT",
+ "level": 41
+ },
+ {
+ "move": "CRUNCH",
+ "level": 44
+ },
+ {
+ "move": "GIGA_IMPACT",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "ARTICUNO",
+ "moves": [
+ {
+ "move": "GUST",
+ "level": 1
+ },
+ {
+ "move": "POWDER_SNOW",
+ "level": 1
+ },
+ {
+ "move": "MIST",
+ "level": 8
+ },
+ {
+ "move": "ICE_SHARD",
+ "level": 15
+ },
+ {
+ "move": "MIND_READER",
+ "level": 22
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 29
+ },
+ {
+ "move": "AGILITY",
+ "level": 36
+ },
+ {
+ "move": "ICE_BEAM",
+ "level": 43
+ },
+ {
+ "move": "REFLECT",
+ "level": 50
+ },
+ {
+ "move": "ROOST",
+ "level": 57
+ },
+ {
+ "move": "TAILWIND",
+ "level": 64
+ },
+ {
+ "move": "BLIZZARD",
+ "level": 71
+ },
+ {
+ "move": "SHEER_COLD",
+ "level": 78
+ },
+ {
+ "move": "HAIL",
+ "level": 85
+ }
+ ]
+ },
+ {
+ "species": "ZAPDOS",
+ "moves": [
+ {
+ "move": "PECK",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_SHOCK",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_WAVE",
+ "level": 8
+ },
+ {
+ "move": "DETECT",
+ "level": 15
+ },
+ {
+ "move": "PLUCK",
+ "level": 22
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 29
+ },
+ {
+ "move": "CHARGE",
+ "level": 36
+ },
+ {
+ "move": "AGILITY",
+ "level": 43
+ },
+ {
+ "move": "DISCHARGE",
+ "level": 50
+ },
+ {
+ "move": "ROOST",
+ "level": 57
+ },
+ {
+ "move": "LIGHT_SCREEN",
+ "level": 64
+ },
+ {
+ "move": "DRILL_PECK",
+ "level": 71
+ },
+ {
+ "move": "THUNDER",
+ "level": 78
+ },
+ {
+ "move": "RAIN_DANCE",
+ "level": 85
+ }
+ ]
+ },
+ {
+ "species": "MOLTRES",
+ "moves": [
+ {
+ "move": "WING_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "EMBER",
+ "level": 1
+ },
+ {
+ "move": "FIRE_SPIN",
+ "level": 8
+ },
+ {
+ "move": "AGILITY",
+ "level": 15
+ },
+ {
+ "move": "ENDURE",
+ "level": 22
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 29
+ },
+ {
+ "move": "FLAMETHROWER",
+ "level": 36
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 43
+ },
+ {
+ "move": "AIR_SLASH",
+ "level": 50
+ },
+ {
+ "move": "ROOST",
+ "level": 57
+ },
+ {
+ "move": "HEAT_WAVE",
+ "level": 64
+ },
+ {
+ "move": "SOLAR_BEAM",
+ "level": 71
+ },
+ {
+ "move": "SKY_ATTACK",
+ "level": 78
+ },
+ {
+ "move": "SUNNY_DAY",
+ "level": 85
+ }
+ ]
+ },
+ {
+ "species": "DRATINI",
+ "moves": [
+ {
+ "move": "WRAP",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_WAVE",
+ "level": 5
+ },
+ {
+ "move": "TWISTER",
+ "level": 11
+ },
+ {
+ "move": "DRAGON_RAGE",
+ "level": 15
+ },
+ {
+ "move": "SLAM",
+ "level": 21
+ },
+ {
+ "move": "AGILITY",
+ "level": 25
+ },
+ {
+ "move": "AQUA_TAIL",
+ "level": 31
+ },
+ {
+ "move": "DRAGON_RUSH",
+ "level": 35
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 41
+ },
+ {
+ "move": "DRAGON_DANCE",
+ "level": 45
+ },
+ {
+ "move": "OUTRAGE",
+ "level": 51
+ },
+ {
+ "move": "HYPER_BEAM",
+ "level": 55
+ }
+ ]
+ },
+ {
+ "species": "DRAGONAIR",
+ "moves": [
+ {
+ "move": "WRAP",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_WAVE",
+ "level": 1
+ },
+ {
+ "move": "TWISTER",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_WAVE",
+ "level": 5
+ },
+ {
+ "move": "TWISTER",
+ "level": 11
+ },
+ {
+ "move": "DRAGON_RAGE",
+ "level": 15
+ },
+ {
+ "move": "SLAM",
+ "level": 21
+ },
+ {
+ "move": "AGILITY",
+ "level": 25
+ },
+ {
+ "move": "AQUA_TAIL",
+ "level": 33
+ },
+ {
+ "move": "DRAGON_RUSH",
+ "level": 39
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 47
+ },
+ {
+ "move": "DRAGON_DANCE",
+ "level": 53
+ },
+ {
+ "move": "OUTRAGE",
+ "level": 61
+ },
+ {
+ "move": "HYPER_BEAM",
+ "level": 67
+ }
+ ]
+ },
+ {
+ "species": "DRAGONITE",
+ "moves": [
+ {
+ "move": "FIRE_PUNCH",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_PUNCH",
+ "level": 1
+ },
+ {
+ "move": "ROOST",
+ "level": 1
+ },
+ {
+ "move": "WRAP",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_WAVE",
+ "level": 1
+ },
+ {
+ "move": "TWISTER",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_WAVE",
+ "level": 5
+ },
+ {
+ "move": "TWISTER",
+ "level": 11
+ },
+ {
+ "move": "DRAGON_RAGE",
+ "level": 15
+ },
+ {
+ "move": "SLAM",
+ "level": 21
+ },
+ {
+ "move": "AGILITY",
+ "level": 25
+ },
+ {
+ "move": "AQUA_TAIL",
+ "level": 33
+ },
+ {
+ "move": "DRAGON_RUSH",
+ "level": 39
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 47
+ },
+ {
+ "move": "DRAGON_DANCE",
+ "level": 53
+ },
+ {
+ "move": "WING_ATTACK",
+ "level": 55
+ },
+ {
+ "move": "OUTRAGE",
+ "level": 64
+ },
+ {
+ "move": "HYPER_BEAM",
+ "level": 73
+ }
+ ]
+ },
+ {
+ "species": "MEWTWO",
+ "moves": [
+ {
+ "move": "CONFUSION",
+ "level": 1
+ },
+ {
+ "move": "DISABLE",
+ "level": 1
+ },
+ {
+ "move": "BARRIER",
+ "level": 8
+ },
+ {
+ "move": "SWIFT",
+ "level": 15
+ },
+ {
+ "move": "FUTURE_SIGHT",
+ "level": 22
+ },
+ {
+ "move": "PSYCH_UP",
+ "level": 29
+ },
+ {
+ "move": "MIRACLE_EYE",
+ "level": 36
+ },
+ {
+ "move": "MIST",
+ "level": 43
+ },
+ {
+ "move": "PSYCHO_CUT",
+ "level": 50
+ },
+ {
+ "move": "AMNESIA",
+ "level": 57
+ },
+ {
+ "move": "POWER_SWAP",
+ "level": 64
+ },
+ {
+ "move": "GUARD_SWAP",
+ "level": 64
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 71
+ },
+ {
+ "move": "ME_FIRST",
+ "level": 79
+ },
+ {
+ "move": "RECOVER",
+ "level": 86
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 93
+ },
+ {
+ "move": "AURA_SPHERE",
+ "level": 100
+ }
+ ]
+ },
+ {
+ "species": "MEW",
+ "moves": [
+ {
+ "move": "POUND",
+ "level": 1
+ },
+ {
+ "move": "TRANSFORM",
+ "level": 1
+ },
+ {
+ "move": "MEGA_PUNCH",
+ "level": 10
+ },
+ {
+ "move": "METRONOME",
+ "level": 20
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 30
+ },
+ {
+ "move": "BARRIER",
+ "level": 40
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 50
+ },
+ {
+ "move": "AMNESIA",
+ "level": 60
+ },
+ {
+ "move": "ME_FIRST",
+ "level": 70
+ },
+ {
+ "move": "BATON_PASS",
+ "level": 80
+ },
+ {
+ "move": "NASTY_PLOT",
+ "level": 90
+ },
+ {
+ "move": "AURA_SPHERE",
+ "level": 100
+ }
+ ]
+ },
+ {
+ "species": "CHIKORITA",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "RAZOR_LEAF",
+ "level": 6
+ },
+ {
+ "move": "POISON_POWDER",
+ "level": 9
+ },
+ {
+ "move": "SYNTHESIS",
+ "level": 12
+ },
+ {
+ "move": "REFLECT",
+ "level": 17
+ },
+ {
+ "move": "MAGICAL_LEAF",
+ "level": 20
+ },
+ {
+ "move": "NATURAL_GIFT",
+ "level": 23
+ },
+ {
+ "move": "SWEET_SCENT",
+ "level": 28
+ },
+ {
+ "move": "LIGHT_SCREEN",
+ "level": 31
+ },
+ {
+ "move": "BODY_SLAM",
+ "level": 34
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 39
+ },
+ {
+ "move": "AROMATHERAPY",
+ "level": 42
+ },
+ {
+ "move": "SOLAR_BEAM",
+ "level": 45
+ }
+ ]
+ },
+ {
+ "species": "BAYLEEF",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "RAZOR_LEAF",
+ "level": 1
+ },
+ {
+ "move": "POISON_POWDER",
+ "level": 1
+ },
+ {
+ "move": "RAZOR_LEAF",
+ "level": 6
+ },
+ {
+ "move": "POISON_POWDER",
+ "level": 9
+ },
+ {
+ "move": "SYNTHESIS",
+ "level": 12
+ },
+ {
+ "move": "REFLECT",
+ "level": 18
+ },
+ {
+ "move": "MAGICAL_LEAF",
+ "level": 22
+ },
+ {
+ "move": "NATURAL_GIFT",
+ "level": 26
+ },
+ {
+ "move": "SWEET_SCENT",
+ "level": 32
+ },
+ {
+ "move": "LIGHT_SCREEN",
+ "level": 36
+ },
+ {
+ "move": "BODY_SLAM",
+ "level": 40
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 46
+ },
+ {
+ "move": "AROMATHERAPY",
+ "level": 50
+ },
+ {
+ "move": "SOLAR_BEAM",
+ "level": 54
+ }
+ ]
+ },
+ {
+ "species": "MEGANIUM",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "RAZOR_LEAF",
+ "level": 1
+ },
+ {
+ "move": "POISON_POWDER",
+ "level": 1
+ },
+ {
+ "move": "RAZOR_LEAF",
+ "level": 6
+ },
+ {
+ "move": "POISON_POWDER",
+ "level": 9
+ },
+ {
+ "move": "SYNTHESIS",
+ "level": 12
+ },
+ {
+ "move": "REFLECT",
+ "level": 18
+ },
+ {
+ "move": "MAGICAL_LEAF",
+ "level": 22
+ },
+ {
+ "move": "NATURAL_GIFT",
+ "level": 26
+ },
+ {
+ "move": "PETAL_DANCE",
+ "level": 32
+ },
+ {
+ "move": "SWEET_SCENT",
+ "level": 34
+ },
+ {
+ "move": "LIGHT_SCREEN",
+ "level": 40
+ },
+ {
+ "move": "BODY_SLAM",
+ "level": 46
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 54
+ },
+ {
+ "move": "AROMATHERAPY",
+ "level": 60
+ },
+ {
+ "move": "SOLAR_BEAM",
+ "level": 66
+ }
+ ]
+ },
+ {
+ "species": "CYNDAQUIL",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "SMOKESCREEN",
+ "level": 4
+ },
+ {
+ "move": "EMBER",
+ "level": 10
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 13
+ },
+ {
+ "move": "FLAME_WHEEL",
+ "level": 19
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 22
+ },
+ {
+ "move": "SWIFT",
+ "level": 28
+ },
+ {
+ "move": "LAVA_PLUME",
+ "level": 31
+ },
+ {
+ "move": "FLAMETHROWER",
+ "level": 37
+ },
+ {
+ "move": "ROLLOUT",
+ "level": 40
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 46
+ },
+ {
+ "move": "ERUPTION",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "QUILAVA",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "SMOKESCREEN",
+ "level": 1
+ },
+ {
+ "move": "SMOKESCREEN",
+ "level": 4
+ },
+ {
+ "move": "EMBER",
+ "level": 10
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 13
+ },
+ {
+ "move": "FLAME_WHEEL",
+ "level": 20
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 24
+ },
+ {
+ "move": "SWIFT",
+ "level": 31
+ },
+ {
+ "move": "LAVA_PLUME",
+ "level": 35
+ },
+ {
+ "move": "FLAMETHROWER",
+ "level": 42
+ },
+ {
+ "move": "ROLLOUT",
+ "level": 46
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 53
+ },
+ {
+ "move": "ERUPTION",
+ "level": 57
+ }
+ ]
+ },
+ {
+ "species": "TYPHLOSION",
+ "moves": [
+ {
+ "move": "GYRO_BALL",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "SMOKESCREEN",
+ "level": 1
+ },
+ {
+ "move": "EMBER",
+ "level": 1
+ },
+ {
+ "move": "SMOKESCREEN",
+ "level": 4
+ },
+ {
+ "move": "EMBER",
+ "level": 10
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 13
+ },
+ {
+ "move": "FLAME_WHEEL",
+ "level": 20
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 24
+ },
+ {
+ "move": "SWIFT",
+ "level": 31
+ },
+ {
+ "move": "LAVA_PLUME",
+ "level": 35
+ },
+ {
+ "move": "FLAMETHROWER",
+ "level": 42
+ },
+ {
+ "move": "ROLLOUT",
+ "level": 46
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 53
+ },
+ {
+ "move": "ERUPTION",
+ "level": 57
+ }
+ ]
+ },
+ {
+ "species": "TOTODILE",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 6
+ },
+ {
+ "move": "RAGE",
+ "level": 8
+ },
+ {
+ "move": "BITE",
+ "level": 13
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 15
+ },
+ {
+ "move": "ICE_FANG",
+ "level": 20
+ },
+ {
+ "move": "THRASH",
+ "level": 22
+ },
+ {
+ "move": "CRUNCH",
+ "level": 27
+ },
+ {
+ "move": "SLASH",
+ "level": 29
+ },
+ {
+ "move": "SCREECH",
+ "level": 34
+ },
+ {
+ "move": "AQUA_TAIL",
+ "level": 36
+ },
+ {
+ "move": "SUPERPOWER",
+ "level": 41
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 43
+ }
+ ]
+ },
+ {
+ "species": "CROCONAW",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 1
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 6
+ },
+ {
+ "move": "RAGE",
+ "level": 8
+ },
+ {
+ "move": "BITE",
+ "level": 13
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 15
+ },
+ {
+ "move": "ICE_FANG",
+ "level": 21
+ },
+ {
+ "move": "THRASH",
+ "level": 24
+ },
+ {
+ "move": "CRUNCH",
+ "level": 30
+ },
+ {
+ "move": "SLASH",
+ "level": 33
+ },
+ {
+ "move": "SCREECH",
+ "level": 39
+ },
+ {
+ "move": "AQUA_TAIL",
+ "level": 42
+ },
+ {
+ "move": "SUPERPOWER",
+ "level": 48
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 51
+ }
+ ]
+ },
+ {
+ "species": "FERALIGATR",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 1
+ },
+ {
+ "move": "RAGE",
+ "level": 1
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 6
+ },
+ {
+ "move": "RAGE",
+ "level": 8
+ },
+ {
+ "move": "BITE",
+ "level": 13
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 15
+ },
+ {
+ "move": "ICE_FANG",
+ "level": 21
+ },
+ {
+ "move": "THRASH",
+ "level": 24
+ },
+ {
+ "move": "AGILITY",
+ "level": 30
+ },
+ {
+ "move": "CRUNCH",
+ "level": 32
+ },
+ {
+ "move": "SLASH",
+ "level": 37
+ },
+ {
+ "move": "SCREECH",
+ "level": 45
+ },
+ {
+ "move": "AQUA_TAIL",
+ "level": 50
+ },
+ {
+ "move": "SUPERPOWER",
+ "level": 58
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 63
+ }
+ ]
+ },
+ {
+ "species": "SENTRET",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "FORESIGHT",
+ "level": 1
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 4
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 7
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 13
+ },
+ {
+ "move": "HELPING_HAND",
+ "level": 16
+ },
+ {
+ "move": "FOLLOW_ME",
+ "level": 19
+ },
+ {
+ "move": "SLAM",
+ "level": 25
+ },
+ {
+ "move": "REST",
+ "level": 28
+ },
+ {
+ "move": "SUCKER_PUNCH",
+ "level": 31
+ },
+ {
+ "move": "AMNESIA",
+ "level": 36
+ },
+ {
+ "move": "BATON_PASS",
+ "level": 39
+ },
+ {
+ "move": "ME_FIRST",
+ "level": 42
+ },
+ {
+ "move": "HYPER_VOICE",
+ "level": 47
+ }
+ ]
+ },
+ {
+ "species": "FURRET",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "FORESIGHT",
+ "level": 1
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 4
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 7
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 13
+ },
+ {
+ "move": "HELPING_HAND",
+ "level": 17
+ },
+ {
+ "move": "FOLLOW_ME",
+ "level": 21
+ },
+ {
+ "move": "SLAM",
+ "level": 28
+ },
+ {
+ "move": "REST",
+ "level": 32
+ },
+ {
+ "move": "SUCKER_PUNCH",
+ "level": 36
+ },
+ {
+ "move": "AMNESIA",
+ "level": 42
+ },
+ {
+ "move": "BATON_PASS",
+ "level": 46
+ },
+ {
+ "move": "ME_FIRST",
+ "level": 50
+ },
+ {
+ "move": "HYPER_VOICE",
+ "level": 56
+ }
+ ]
+ },
+ {
+ "species": "HOOTHOOT",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "FORESIGHT",
+ "level": 5
+ },
+ {
+ "move": "HYPNOSIS",
+ "level": 9
+ },
+ {
+ "move": "PECK",
+ "level": 13
+ },
+ {
+ "move": "REFLECT",
+ "level": 17
+ },
+ {
+ "move": "CONFUSION",
+ "level": 21
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 25
+ },
+ {
+ "move": "AIR_SLASH",
+ "level": 29
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 33
+ },
+ {
+ "move": "EXTRASENSORY",
+ "level": 37
+ },
+ {
+ "move": "PSYCHO_SHIFT",
+ "level": 41
+ },
+ {
+ "move": "ROOST",
+ "level": 45
+ },
+ {
+ "move": "DREAM_EATER",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "NOCTOWL",
+ "moves": [
+ {
+ "move": "SKY_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "FORESIGHT",
+ "level": 1
+ },
+ {
+ "move": "HYPNOSIS",
+ "level": 1
+ },
+ {
+ "move": "FORESIGHT",
+ "level": 5
+ },
+ {
+ "move": "HYPNOSIS",
+ "level": 9
+ },
+ {
+ "move": "PECK",
+ "level": 13
+ },
+ {
+ "move": "REFLECT",
+ "level": 17
+ },
+ {
+ "move": "CONFUSION",
+ "level": 22
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 27
+ },
+ {
+ "move": "AIR_SLASH",
+ "level": 32
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 37
+ },
+ {
+ "move": "EXTRASENSORY",
+ "level": 42
+ },
+ {
+ "move": "PSYCHO_SHIFT",
+ "level": 47
+ },
+ {
+ "move": "ROOST",
+ "level": 52
+ },
+ {
+ "move": "DREAM_EATER",
+ "level": 57
+ }
+ ]
+ },
+ {
+ "species": "LEDYBA",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 6
+ },
+ {
+ "move": "COMET_PUNCH",
+ "level": 9
+ },
+ {
+ "move": "LIGHT_SCREEN",
+ "level": 14
+ },
+ {
+ "move": "REFLECT",
+ "level": 14
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 14
+ },
+ {
+ "move": "MACH_PUNCH",
+ "level": 17
+ },
+ {
+ "move": "BATON_PASS",
+ "level": 22
+ },
+ {
+ "move": "SILVER_WIND",
+ "level": 25
+ },
+ {
+ "move": "AGILITY",
+ "level": 30
+ },
+ {
+ "move": "SWIFT",
+ "level": 33
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 38
+ },
+ {
+ "move": "BUG_BUZZ",
+ "level": 41
+ }
+ ]
+ },
+ {
+ "species": "LEDIAN",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 1
+ },
+ {
+ "move": "COMET_PUNCH",
+ "level": 1
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 6
+ },
+ {
+ "move": "COMET_PUNCH",
+ "level": 9
+ },
+ {
+ "move": "LIGHT_SCREEN",
+ "level": 14
+ },
+ {
+ "move": "REFLECT",
+ "level": 14
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 14
+ },
+ {
+ "move": "MACH_PUNCH",
+ "level": 17
+ },
+ {
+ "move": "BATON_PASS",
+ "level": 24
+ },
+ {
+ "move": "SILVER_WIND",
+ "level": 29
+ },
+ {
+ "move": "AGILITY",
+ "level": 36
+ },
+ {
+ "move": "SWIFT",
+ "level": 41
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 48
+ },
+ {
+ "move": "BUG_BUZZ",
+ "level": 53
+ }
+ ]
+ },
+ {
+ "species": "SPINARAK",
+ "moves": [
+ {
+ "move": "POISON_STING",
+ "level": 1
+ },
+ {
+ "move": "STRING_SHOT",
+ "level": 1
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 5
+ },
+ {
+ "move": "CONSTRICT",
+ "level": 8
+ },
+ {
+ "move": "LEECH_LIFE",
+ "level": 12
+ },
+ {
+ "move": "NIGHT_SHADE",
+ "level": 15
+ },
+ {
+ "move": "SHADOW_SNEAK",
+ "level": 19
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 22
+ },
+ {
+ "move": "SUCKER_PUNCH",
+ "level": 26
+ },
+ {
+ "move": "SPIDER_WEB",
+ "level": 29
+ },
+ {
+ "move": "AGILITY",
+ "level": 33
+ },
+ {
+ "move": "PIN_MISSILE",
+ "level": 36
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 40
+ },
+ {
+ "move": "POISON_JAB",
+ "level": 43
+ }
+ ]
+ },
+ {
+ "species": "ARIADOS",
+ "moves": [
+ {
+ "move": "BUG_BITE",
+ "level": 1
+ },
+ {
+ "move": "POISON_STING",
+ "level": 1
+ },
+ {
+ "move": "STRING_SHOT",
+ "level": 1
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 1
+ },
+ {
+ "move": "CONSTRICT",
+ "level": 1
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 5
+ },
+ {
+ "move": "CONSTRICT",
+ "level": 8
+ },
+ {
+ "move": "LEECH_LIFE",
+ "level": 12
+ },
+ {
+ "move": "NIGHT_SHADE",
+ "level": 15
+ },
+ {
+ "move": "SHADOW_SNEAK",
+ "level": 19
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 23
+ },
+ {
+ "move": "SUCKER_PUNCH",
+ "level": 28
+ },
+ {
+ "move": "SPIDER_WEB",
+ "level": 32
+ },
+ {
+ "move": "AGILITY",
+ "level": 37
+ },
+ {
+ "move": "PIN_MISSILE",
+ "level": 41
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 46
+ },
+ {
+ "move": "POISON_JAB",
+ "level": 50
+ }
+ ]
+ },
+ {
+ "species": "CROBAT",
+ "moves": [
+ {
+ "move": "CROSS_POISON",
+ "level": 1
+ },
+ {
+ "move": "SCREECH",
+ "level": 1
+ },
+ {
+ "move": "LEECH_LIFE",
+ "level": 1
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 1
+ },
+ {
+ "move": "ASTONISH",
+ "level": 1
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 5
+ },
+ {
+ "move": "ASTONISH",
+ "level": 9
+ },
+ {
+ "move": "BITE",
+ "level": 13
+ },
+ {
+ "move": "WING_ATTACK",
+ "level": 17
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 21
+ },
+ {
+ "move": "AIR_CUTTER",
+ "level": 27
+ },
+ {
+ "move": "MEAN_LOOK",
+ "level": 33
+ },
+ {
+ "move": "POISON_FANG",
+ "level": 39
+ },
+ {
+ "move": "HAZE",
+ "level": 45
+ },
+ {
+ "move": "AIR_SLASH",
+ "level": 51
+ }
+ ]
+ },
+ {
+ "species": "CHINCHOU",
+ "moves": [
+ {
+ "move": "BUBBLE",
+ "level": 1
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_WAVE",
+ "level": 6
+ },
+ {
+ "move": "FLAIL",
+ "level": 9
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 12
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 17
+ },
+ {
+ "move": "SPARK",
+ "level": 20
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 23
+ },
+ {
+ "move": "BUBBLE_BEAM",
+ "level": 28
+ },
+ {
+ "move": "SIGNAL_BEAM",
+ "level": 31
+ },
+ {
+ "move": "DISCHARGE",
+ "level": 34
+ },
+ {
+ "move": "AQUA_RING",
+ "level": 39
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 42
+ },
+ {
+ "move": "CHARGE",
+ "level": 45
+ }
+ ]
+ },
+ {
+ "species": "LANTURN",
+ "moves": [
+ {
+ "move": "BUBBLE",
+ "level": 1
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_WAVE",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_WAVE",
+ "level": 6
+ },
+ {
+ "move": "FLAIL",
+ "level": 9
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 12
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 17
+ },
+ {
+ "move": "SPARK",
+ "level": 20
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 23
+ },
+ {
+ "move": "STOCKPILE",
+ "level": 27
+ },
+ {
+ "move": "SWALLOW",
+ "level": 27
+ },
+ {
+ "move": "SPIT_UP",
+ "level": 27
+ },
+ {
+ "move": "BUBBLE_BEAM",
+ "level": 30
+ },
+ {
+ "move": "SIGNAL_BEAM",
+ "level": 35
+ },
+ {
+ "move": "DISCHARGE",
+ "level": 40
+ },
+ {
+ "move": "AQUA_RING",
+ "level": 47
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 52
+ },
+ {
+ "move": "CHARGE",
+ "level": 57
+ }
+ ]
+ },
+ {
+ "species": "PICHU",
+ "moves": [
+ {
+ "move": "THUNDER_SHOCK",
+ "level": 1
+ },
+ {
+ "move": "CHARM",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 5
+ },
+ {
+ "move": "THUNDER_WAVE",
+ "level": 10
+ },
+ {
+ "move": "SWEET_KISS",
+ "level": 13
+ },
+ {
+ "move": "NASTY_PLOT",
+ "level": 18
+ }
+ ]
+ },
+ {
+ "species": "CLEFFA",
+ "moves": [
+ {
+ "move": "POUND",
+ "level": 1
+ },
+ {
+ "move": "CHARM",
+ "level": 1
+ },
+ {
+ "move": "ENCORE",
+ "level": 4
+ },
+ {
+ "move": "SING",
+ "level": 7
+ },
+ {
+ "move": "SWEET_KISS",
+ "level": 10
+ },
+ {
+ "move": "COPYCAT",
+ "level": 13
+ },
+ {
+ "move": "MAGICAL_LEAF",
+ "level": 16
+ }
+ ]
+ },
+ {
+ "species": "IGGLYBUFF",
+ "moves": [
+ {
+ "move": "SING",
+ "level": 1
+ },
+ {
+ "move": "CHARM",
+ "level": 1
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 5
+ },
+ {
+ "move": "POUND",
+ "level": 9
+ },
+ {
+ "move": "SWEET_KISS",
+ "level": 13
+ },
+ {
+ "move": "COPYCAT",
+ "level": 17
+ }
+ ]
+ },
+ {
+ "species": "TOGEPI",
+ "moves": [
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "CHARM",
+ "level": 1
+ },
+ {
+ "move": "METRONOME",
+ "level": 6
+ },
+ {
+ "move": "SWEET_KISS",
+ "level": 10
+ },
+ {
+ "move": "YAWN",
+ "level": 15
+ },
+ {
+ "move": "ENCORE",
+ "level": 19
+ },
+ {
+ "move": "FOLLOW_ME",
+ "level": 24
+ },
+ {
+ "move": "WISH",
+ "level": 28
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 33
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 37
+ },
+ {
+ "move": "BATON_PASS",
+ "level": 42
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 46
+ },
+ {
+ "move": "LAST_RESORT",
+ "level": 51
+ }
+ ]
+ },
+ {
+ "species": "TOGETIC",
+ "moves": [
+ {
+ "move": "MAGICAL_LEAF",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "CHARM",
+ "level": 1
+ },
+ {
+ "move": "METRONOME",
+ "level": 1
+ },
+ {
+ "move": "SWEET_KISS",
+ "level": 1
+ },
+ {
+ "move": "METRONOME",
+ "level": 6
+ },
+ {
+ "move": "SWEET_KISS",
+ "level": 10
+ },
+ {
+ "move": "YAWN",
+ "level": 15
+ },
+ {
+ "move": "ENCORE",
+ "level": 19
+ },
+ {
+ "move": "FOLLOW_ME",
+ "level": 24
+ },
+ {
+ "move": "WISH",
+ "level": 28
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 33
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 37
+ },
+ {
+ "move": "BATON_PASS",
+ "level": 42
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 46
+ },
+ {
+ "move": "LAST_RESORT",
+ "level": 51
+ }
+ ]
+ },
+ {
+ "species": "NATU",
+ "moves": [
+ {
+ "move": "PECK",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "NIGHT_SHADE",
+ "level": 6
+ },
+ {
+ "move": "TELEPORT",
+ "level": 9
+ },
+ {
+ "move": "LUCKY_CHANT",
+ "level": 12
+ },
+ {
+ "move": "MIRACLE_EYE",
+ "level": 17
+ },
+ {
+ "move": "ME_FIRST",
+ "level": 20
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 23
+ },
+ {
+ "move": "WISH",
+ "level": 28
+ },
+ {
+ "move": "PSYCHO_SHIFT",
+ "level": 33
+ },
+ {
+ "move": "FUTURE_SIGHT",
+ "level": 36
+ },
+ {
+ "move": "OMINOUS_WIND",
+ "level": 39
+ },
+ {
+ "move": "POWER_SWAP",
+ "level": 44
+ },
+ {
+ "move": "GUARD_SWAP",
+ "level": 44
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 47
+ }
+ ]
+ },
+ {
+ "species": "XATU",
+ "moves": [
+ {
+ "move": "PECK",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "NIGHT_SHADE",
+ "level": 6
+ },
+ {
+ "move": "TELEPORT",
+ "level": 9
+ },
+ {
+ "move": "LUCKY_CHANT",
+ "level": 12
+ },
+ {
+ "move": "MIRACLE_EYE",
+ "level": 17
+ },
+ {
+ "move": "ME_FIRST",
+ "level": 20
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 23
+ },
+ {
+ "move": "TAILWIND",
+ "level": 27
+ },
+ {
+ "move": "WISH",
+ "level": 30
+ },
+ {
+ "move": "PSYCHO_SHIFT",
+ "level": 37
+ },
+ {
+ "move": "FUTURE_SIGHT",
+ "level": 42
+ },
+ {
+ "move": "OMINOUS_WIND",
+ "level": 47
+ },
+ {
+ "move": "POWER_SWAP",
+ "level": 54
+ },
+ {
+ "move": "GUARD_SWAP",
+ "level": 54
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 59
+ }
+ ]
+ },
+ {
+ "species": "MAREEP",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 5
+ },
+ {
+ "move": "THUNDER_SHOCK",
+ "level": 10
+ },
+ {
+ "move": "THUNDER_WAVE",
+ "level": 14
+ },
+ {
+ "move": "COTTON_SPORE",
+ "level": 19
+ },
+ {
+ "move": "CHARGE",
+ "level": 23
+ },
+ {
+ "move": "DISCHARGE",
+ "level": 28
+ },
+ {
+ "move": "SIGNAL_BEAM",
+ "level": 32
+ },
+ {
+ "move": "LIGHT_SCREEN",
+ "level": 37
+ },
+ {
+ "move": "POWER_GEM",
+ "level": 41
+ },
+ {
+ "move": "THUNDER",
+ "level": 46
+ }
+ ]
+ },
+ {
+ "species": "FLAAFFY",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_SHOCK",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 5
+ },
+ {
+ "move": "THUNDER_SHOCK",
+ "level": 10
+ },
+ {
+ "move": "THUNDER_WAVE",
+ "level": 14
+ },
+ {
+ "move": "COTTON_SPORE",
+ "level": 20
+ },
+ {
+ "move": "CHARGE",
+ "level": 25
+ },
+ {
+ "move": "DISCHARGE",
+ "level": 31
+ },
+ {
+ "move": "SIGNAL_BEAM",
+ "level": 36
+ },
+ {
+ "move": "LIGHT_SCREEN",
+ "level": 42
+ },
+ {
+ "move": "POWER_GEM",
+ "level": 47
+ },
+ {
+ "move": "THUNDER",
+ "level": 53
+ }
+ ]
+ },
+ {
+ "species": "AMPHAROS",
+ "moves": [
+ {
+ "move": "FIRE_PUNCH",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_SHOCK",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_WAVE",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 5
+ },
+ {
+ "move": "THUNDER_SHOCK",
+ "level": 10
+ },
+ {
+ "move": "THUNDER_WAVE",
+ "level": 14
+ },
+ {
+ "move": "COTTON_SPORE",
+ "level": 20
+ },
+ {
+ "move": "CHARGE",
+ "level": 25
+ },
+ {
+ "move": "THUNDER_PUNCH",
+ "level": 30
+ },
+ {
+ "move": "DISCHARGE",
+ "level": 34
+ },
+ {
+ "move": "SIGNAL_BEAM",
+ "level": 42
+ },
+ {
+ "move": "LIGHT_SCREEN",
+ "level": 51
+ },
+ {
+ "move": "POWER_GEM",
+ "level": 59
+ },
+ {
+ "move": "THUNDER",
+ "level": 68
+ }
+ ]
+ },
+ {
+ "species": "BELLOSSOM",
+ "moves": [
+ {
+ "move": "MEGA_DRAIN",
+ "level": 1
+ },
+ {
+ "move": "SWEET_SCENT",
+ "level": 1
+ },
+ {
+ "move": "STUN_SPORE",
+ "level": 1
+ },
+ {
+ "move": "SUNNY_DAY",
+ "level": 1
+ },
+ {
+ "move": "MAGICAL_LEAF",
+ "level": 23
+ },
+ {
+ "move": "LEAF_STORM",
+ "level": 53
+ }
+ ]
+ },
+ {
+ "species": "MARILL",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 2
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 7
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 10
+ },
+ {
+ "move": "ROLLOUT",
+ "level": 15
+ },
+ {
+ "move": "BUBBLE_BEAM",
+ "level": 18
+ },
+ {
+ "move": "AQUA_RING",
+ "level": 23
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 27
+ },
+ {
+ "move": "RAIN_DANCE",
+ "level": 32
+ },
+ {
+ "move": "AQUA_TAIL",
+ "level": 37
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 42
+ }
+ ]
+ },
+ {
+ "species": "AZUMARILL",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 1
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 2
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 7
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 10
+ },
+ {
+ "move": "ROLLOUT",
+ "level": 15
+ },
+ {
+ "move": "BUBBLE_BEAM",
+ "level": 20
+ },
+ {
+ "move": "AQUA_RING",
+ "level": 27
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 33
+ },
+ {
+ "move": "RAIN_DANCE",
+ "level": 40
+ },
+ {
+ "move": "AQUA_TAIL",
+ "level": 47
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 54
+ }
+ ]
+ },
+ {
+ "species": "SUDOWOODO",
+ "moves": [
+ {
+ "move": "WOOD_HAMMER",
+ "level": 1
+ },
+ {
+ "move": "COPYCAT",
+ "level": 1
+ },
+ {
+ "move": "FLAIL",
+ "level": 1
+ },
+ {
+ "move": "LOW_KICK",
+ "level": 1
+ },
+ {
+ "move": "ROCK_THROW",
+ "level": 1
+ },
+ {
+ "move": "FLAIL",
+ "level": 6
+ },
+ {
+ "move": "LOW_KICK",
+ "level": 9
+ },
+ {
+ "move": "ROCK_THROW",
+ "level": 14
+ },
+ {
+ "move": "MIMIC",
+ "level": 17
+ },
+ {
+ "move": "BLOCK",
+ "level": 22
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 25
+ },
+ {
+ "move": "ROCK_TOMB",
+ "level": 30
+ },
+ {
+ "move": "ROCK_SLIDE",
+ "level": 33
+ },
+ {
+ "move": "SLAM",
+ "level": 38
+ },
+ {
+ "move": "SUCKER_PUNCH",
+ "level": 41
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 46
+ },
+ {
+ "move": "HAMMER_ARM",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "POLITOED",
+ "moves": [
+ {
+ "move": "BUBBLE_BEAM",
+ "level": 1
+ },
+ {
+ "move": "HYPNOSIS",
+ "level": 1
+ },
+ {
+ "move": "DOUBLE_SLAP",
+ "level": 1
+ },
+ {
+ "move": "PERISH_SONG",
+ "level": 1
+ },
+ {
+ "move": "BOUNCE",
+ "level": 43
+ },
+ {
+ "move": "SWAGGER",
+ "level": 53
+ }
+ ]
+ },
+ {
+ "species": "HOPPIP",
+ "moves": [
+ {
+ "move": "SPLASH",
+ "level": 1
+ },
+ {
+ "move": "SYNTHESIS",
+ "level": 4
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 7
+ },
+ {
+ "move": "TACKLE",
+ "level": 10
+ },
+ {
+ "move": "POISON_POWDER",
+ "level": 12
+ },
+ {
+ "move": "STUN_SPORE",
+ "level": 14
+ },
+ {
+ "move": "SLEEP_POWDER",
+ "level": 16
+ },
+ {
+ "move": "BULLET_SEED",
+ "level": 19
+ },
+ {
+ "move": "LEECH_SEED",
+ "level": 22
+ },
+ {
+ "move": "MEGA_DRAIN",
+ "level": 25
+ },
+ {
+ "move": "COTTON_SPORE",
+ "level": 28
+ },
+ {
+ "move": "U_TURN",
+ "level": 31
+ },
+ {
+ "move": "WORRY_SEED",
+ "level": 34
+ },
+ {
+ "move": "GIGA_DRAIN",
+ "level": 37
+ },
+ {
+ "move": "BOUNCE",
+ "level": 40
+ },
+ {
+ "move": "MEMENTO",
+ "level": 43
+ }
+ ]
+ },
+ {
+ "species": "SKIPLOOM",
+ "moves": [
+ {
+ "move": "SPLASH",
+ "level": 1
+ },
+ {
+ "move": "SYNTHESIS",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "SYNTHESIS",
+ "level": 4
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 7
+ },
+ {
+ "move": "TACKLE",
+ "level": 10
+ },
+ {
+ "move": "POISON_POWDER",
+ "level": 12
+ },
+ {
+ "move": "STUN_SPORE",
+ "level": 14
+ },
+ {
+ "move": "SLEEP_POWDER",
+ "level": 16
+ },
+ {
+ "move": "BULLET_SEED",
+ "level": 20
+ },
+ {
+ "move": "LEECH_SEED",
+ "level": 24
+ },
+ {
+ "move": "MEGA_DRAIN",
+ "level": 28
+ },
+ {
+ "move": "COTTON_SPORE",
+ "level": 32
+ },
+ {
+ "move": "U_TURN",
+ "level": 36
+ },
+ {
+ "move": "WORRY_SEED",
+ "level": 40
+ },
+ {
+ "move": "GIGA_DRAIN",
+ "level": 44
+ },
+ {
+ "move": "BOUNCE",
+ "level": 48
+ },
+ {
+ "move": "MEMENTO",
+ "level": 52
+ }
+ ]
+ },
+ {
+ "species": "JUMPLUFF",
+ "moves": [
+ {
+ "move": "SPLASH",
+ "level": 1
+ },
+ {
+ "move": "SYNTHESIS",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "SYNTHESIS",
+ "level": 4
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 7
+ },
+ {
+ "move": "TACKLE",
+ "level": 10
+ },
+ {
+ "move": "POISON_POWDER",
+ "level": 12
+ },
+ {
+ "move": "STUN_SPORE",
+ "level": 14
+ },
+ {
+ "move": "SLEEP_POWDER",
+ "level": 16
+ },
+ {
+ "move": "BULLET_SEED",
+ "level": 20
+ },
+ {
+ "move": "LEECH_SEED",
+ "level": 24
+ },
+ {
+ "move": "MEGA_DRAIN",
+ "level": 28
+ },
+ {
+ "move": "COTTON_SPORE",
+ "level": 32
+ },
+ {
+ "move": "U_TURN",
+ "level": 36
+ },
+ {
+ "move": "WORRY_SEED",
+ "level": 40
+ },
+ {
+ "move": "GIGA_DRAIN",
+ "level": 44
+ },
+ {
+ "move": "BOUNCE",
+ "level": 48
+ },
+ {
+ "move": "MEMENTO",
+ "level": 52
+ }
+ ]
+ },
+ {
+ "species": "AIPOM",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 4
+ },
+ {
+ "move": "ASTONISH",
+ "level": 8
+ },
+ {
+ "move": "BATON_PASS",
+ "level": 11
+ },
+ {
+ "move": "TICKLE",
+ "level": 15
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 18
+ },
+ {
+ "move": "SWIFT",
+ "level": 22
+ },
+ {
+ "move": "SCREECH",
+ "level": 25
+ },
+ {
+ "move": "AGILITY",
+ "level": 29
+ },
+ {
+ "move": "DOUBLE_HIT",
+ "level": 32
+ },
+ {
+ "move": "FLING",
+ "level": 36
+ },
+ {
+ "move": "NASTY_PLOT",
+ "level": 39
+ },
+ {
+ "move": "LAST_RESORT",
+ "level": 43
+ }
+ ]
+ },
+ {
+ "species": "SUNKERN",
+ "moves": [
+ {
+ "move": "ABSORB",
+ "level": 1
+ },
+ {
+ "move": "GROWTH",
+ "level": 1
+ },
+ {
+ "move": "MEGA_DRAIN",
+ "level": 5
+ },
+ {
+ "move": "INGRAIN",
+ "level": 9
+ },
+ {
+ "move": "GRASS_WHISTLE",
+ "level": 13
+ },
+ {
+ "move": "LEECH_SEED",
+ "level": 17
+ },
+ {
+ "move": "ENDEAVOR",
+ "level": 21
+ },
+ {
+ "move": "WORRY_SEED",
+ "level": 25
+ },
+ {
+ "move": "RAZOR_LEAF",
+ "level": 29
+ },
+ {
+ "move": "SYNTHESIS",
+ "level": 33
+ },
+ {
+ "move": "SUNNY_DAY",
+ "level": 37
+ },
+ {
+ "move": "GIGA_DRAIN",
+ "level": 41
+ },
+ {
+ "move": "SEED_BOMB",
+ "level": 45
+ }
+ ]
+ },
+ {
+ "species": "SUNFLORA",
+ "moves": [
+ {
+ "move": "ABSORB",
+ "level": 1
+ },
+ {
+ "move": "POUND",
+ "level": 1
+ },
+ {
+ "move": "GROWTH",
+ "level": 1
+ },
+ {
+ "move": "MEGA_DRAIN",
+ "level": 5
+ },
+ {
+ "move": "INGRAIN",
+ "level": 9
+ },
+ {
+ "move": "GRASS_WHISTLE",
+ "level": 13
+ },
+ {
+ "move": "LEECH_SEED",
+ "level": 17
+ },
+ {
+ "move": "BULLET_SEED",
+ "level": 21
+ },
+ {
+ "move": "WORRY_SEED",
+ "level": 25
+ },
+ {
+ "move": "RAZOR_LEAF",
+ "level": 29
+ },
+ {
+ "move": "PETAL_DANCE",
+ "level": 33
+ },
+ {
+ "move": "SUNNY_DAY",
+ "level": 37
+ },
+ {
+ "move": "SOLAR_BEAM",
+ "level": 41
+ },
+ {
+ "move": "LEAF_STORM",
+ "level": 43
+ }
+ ]
+ },
+ {
+ "species": "YANMA",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "FORESIGHT",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 6
+ },
+ {
+ "move": "DOUBLE_TEAM",
+ "level": 11
+ },
+ {
+ "move": "SONIC_BOOM",
+ "level": 14
+ },
+ {
+ "move": "DETECT",
+ "level": 17
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 22
+ },
+ {
+ "move": "UPROAR",
+ "level": 27
+ },
+ {
+ "move": "PURSUIT",
+ "level": 30
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 33
+ },
+ {
+ "move": "HYPNOSIS",
+ "level": 38
+ },
+ {
+ "move": "WING_ATTACK",
+ "level": 43
+ },
+ {
+ "move": "SCREECH",
+ "level": 46
+ },
+ {
+ "move": "U_TURN",
+ "level": 49
+ },
+ {
+ "move": "AIR_SLASH",
+ "level": 54
+ },
+ {
+ "move": "BUG_BUZZ",
+ "level": 57
+ }
+ ]
+ },
+ {
+ "species": "WOOPER",
+ "moves": [
+ {
+ "move": "WATER_GUN",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "MUD_SPORT",
+ "level": 5
+ },
+ {
+ "move": "MUD_SHOT",
+ "level": 9
+ },
+ {
+ "move": "SLAM",
+ "level": 15
+ },
+ {
+ "move": "MUD_BOMB",
+ "level": 19
+ },
+ {
+ "move": "AMNESIA",
+ "level": 23
+ },
+ {
+ "move": "YAWN",
+ "level": 29
+ },
+ {
+ "move": "EARTHQUAKE",
+ "level": 33
+ },
+ {
+ "move": "RAIN_DANCE",
+ "level": 37
+ },
+ {
+ "move": "MIST",
+ "level": 43
+ },
+ {
+ "move": "HAZE",
+ "level": 43
+ },
+ {
+ "move": "MUDDY_WATER",
+ "level": 47
+ }
+ ]
+ },
+ {
+ "species": "QUAGSIRE",
+ "moves": [
+ {
+ "move": "WATER_GUN",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "MUD_SPORT",
+ "level": 1
+ },
+ {
+ "move": "MUD_SPORT",
+ "level": 5
+ },
+ {
+ "move": "MUD_SHOT",
+ "level": 9
+ },
+ {
+ "move": "SLAM",
+ "level": 15
+ },
+ {
+ "move": "MUD_BOMB",
+ "level": 19
+ },
+ {
+ "move": "AMNESIA",
+ "level": 24
+ },
+ {
+ "move": "YAWN",
+ "level": 31
+ },
+ {
+ "move": "EARTHQUAKE",
+ "level": 36
+ },
+ {
+ "move": "RAIN_DANCE",
+ "level": 41
+ },
+ {
+ "move": "MIST",
+ "level": 48
+ },
+ {
+ "move": "HAZE",
+ "level": 48
+ },
+ {
+ "move": "MUDDY_WATER",
+ "level": 53
+ }
+ ]
+ },
+ {
+ "species": "ESPEON",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "HELPING_HAND",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 8
+ },
+ {
+ "move": "CONFUSION",
+ "level": 15
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 22
+ },
+ {
+ "move": "SWIFT",
+ "level": 29
+ },
+ {
+ "move": "PSYBEAM",
+ "level": 36
+ },
+ {
+ "move": "FUTURE_SIGHT",
+ "level": 43
+ },
+ {
+ "move": "LAST_RESORT",
+ "level": 50
+ },
+ {
+ "move": "PSYCH_UP",
+ "level": 57
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 64
+ },
+ {
+ "move": "MORNING_SUN",
+ "level": 71
+ }
+ ]
+ },
+ {
+ "species": "UMBREON",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "HELPING_HAND",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 8
+ },
+ {
+ "move": "PURSUIT",
+ "level": 15
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 22
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 29
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 36
+ },
+ {
+ "move": "ASSURANCE",
+ "level": 43
+ },
+ {
+ "move": "LAST_RESORT",
+ "level": 50
+ },
+ {
+ "move": "MEAN_LOOK",
+ "level": 57
+ },
+ {
+ "move": "SCREECH",
+ "level": 64
+ },
+ {
+ "move": "MOONLIGHT",
+ "level": 71
+ }
+ ]
+ },
+ {
+ "species": "MURKROW",
+ "moves": [
+ {
+ "move": "PECK",
+ "level": 1
+ },
+ {
+ "move": "ASTONISH",
+ "level": 1
+ },
+ {
+ "move": "PURSUIT",
+ "level": 5
+ },
+ {
+ "move": "HAZE",
+ "level": 11
+ },
+ {
+ "move": "WING_ATTACK",
+ "level": 15
+ },
+ {
+ "move": "NIGHT_SHADE",
+ "level": 21
+ },
+ {
+ "move": "ASSURANCE",
+ "level": 25
+ },
+ {
+ "move": "TAUNT",
+ "level": 31
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 35
+ },
+ {
+ "move": "MEAN_LOOK",
+ "level": 41
+ },
+ {
+ "move": "SUCKER_PUNCH",
+ "level": 45
+ }
+ ]
+ },
+ {
+ "species": "SLOWKING",
+ "moves": [
+ {
+ "move": "HIDDEN_POWER",
+ "level": 1
+ },
+ {
+ "move": "CURSE",
+ "level": 1
+ },
+ {
+ "move": "YAWN",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 6
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 11
+ },
+ {
+ "move": "CONFUSION",
+ "level": 15
+ },
+ {
+ "move": "DISABLE",
+ "level": 20
+ },
+ {
+ "move": "HEADBUTT",
+ "level": 25
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 29
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 34
+ },
+ {
+ "move": "NASTY_PLOT",
+ "level": 39
+ },
+ {
+ "move": "SWAGGER",
+ "level": 43
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 48
+ },
+ {
+ "move": "TRUMP_CARD",
+ "level": 53
+ },
+ {
+ "move": "PSYCH_UP",
+ "level": 57
+ }
+ ]
+ },
+ {
+ "species": "MISDREAVUS",
+ "moves": [
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "PSYWAVE",
+ "level": 1
+ },
+ {
+ "move": "SPITE",
+ "level": 5
+ },
+ {
+ "move": "ASTONISH",
+ "level": 10
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 14
+ },
+ {
+ "move": "MEAN_LOOK",
+ "level": 19
+ },
+ {
+ "move": "PSYBEAM",
+ "level": 23
+ },
+ {
+ "move": "PAIN_SPLIT",
+ "level": 28
+ },
+ {
+ "move": "PAYBACK",
+ "level": 32
+ },
+ {
+ "move": "SHADOW_BALL",
+ "level": 37
+ },
+ {
+ "move": "PERISH_SONG",
+ "level": 41
+ },
+ {
+ "move": "GRUDGE",
+ "level": 46
+ }
+ ]
+ },
+ {
+ "species": "UNOWN",
+ "moves": [
+ {
+ "move": "HIDDEN_POWER",
+ "level": 1
+ }
+ ]
+ },
+ {
+ "species": "WOBBUFFET",
+ "moves": [
+ {
+ "move": "COUNTER",
+ "level": 1
+ },
+ {
+ "move": "MIRROR_COAT",
+ "level": 1
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 1
+ },
+ {
+ "move": "DESTINY_BOND",
+ "level": 1
+ }
+ ]
+ },
+ {
+ "species": "GIRAFARIG",
+ "moves": [
+ {
+ "move": "POWER_SWAP",
+ "level": 1
+ },
+ {
+ "move": "GUARD_SWAP",
+ "level": 1
+ },
+ {
+ "move": "ASTONISH",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "CONFUSION",
+ "level": 1
+ },
+ {
+ "move": "ODOR_SLEUTH",
+ "level": 5
+ },
+ {
+ "move": "STOMP",
+ "level": 10
+ },
+ {
+ "move": "AGILITY",
+ "level": 14
+ },
+ {
+ "move": "PSYBEAM",
+ "level": 19
+ },
+ {
+ "move": "BATON_PASS",
+ "level": 23
+ },
+ {
+ "move": "ASSURANCE",
+ "level": 28
+ },
+ {
+ "move": "DOUBLE_HIT",
+ "level": 32
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 37
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 41
+ },
+ {
+ "move": "CRUNCH",
+ "level": 46
+ }
+ ]
+ },
+ {
+ "species": "PINECO",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "PROTECT",
+ "level": 1
+ },
+ {
+ "move": "SELF_DESTRUCT",
+ "level": 6
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 9
+ },
+ {
+ "move": "RAPID_SPIN",
+ "level": 12
+ },
+ {
+ "move": "BIDE",
+ "level": 17
+ },
+ {
+ "move": "NATURAL_GIFT",
+ "level": 20
+ },
+ {
+ "move": "SPIKES",
+ "level": 23
+ },
+ {
+ "move": "PAYBACK",
+ "level": 28
+ },
+ {
+ "move": "EXPLOSION",
+ "level": 31
+ },
+ {
+ "move": "IRON_DEFENSE",
+ "level": 34
+ },
+ {
+ "move": "GYRO_BALL",
+ "level": 39
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 42
+ }
+ ]
+ },
+ {
+ "species": "FORRETRESS",
+ "moves": [
+ {
+ "move": "TOXIC_SPIKES",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "PROTECT",
+ "level": 1
+ },
+ {
+ "move": "SELF_DESTRUCT",
+ "level": 1
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 1
+ },
+ {
+ "move": "SELF_DESTRUCT",
+ "level": 6
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 9
+ },
+ {
+ "move": "RAPID_SPIN",
+ "level": 12
+ },
+ {
+ "move": "BIDE",
+ "level": 17
+ },
+ {
+ "move": "NATURAL_GIFT",
+ "level": 20
+ },
+ {
+ "move": "SPIKES",
+ "level": 23
+ },
+ {
+ "move": "PAYBACK",
+ "level": 28
+ },
+ {
+ "move": "MIRROR_SHOT",
+ "level": 31
+ },
+ {
+ "move": "EXPLOSION",
+ "level": 33
+ },
+ {
+ "move": "IRON_DEFENSE",
+ "level": 38
+ },
+ {
+ "move": "GYRO_BALL",
+ "level": 45
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 50
+ },
+ {
+ "move": "MAGNET_RISE",
+ "level": 57
+ },
+ {
+ "move": "ZAP_CANNON",
+ "level": 62
+ }
+ ]
+ },
+ {
+ "species": "DUNSPARCE",
+ "moves": [
+ {
+ "move": "RAGE",
+ "level": 1
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 5
+ },
+ {
+ "move": "YAWN",
+ "level": 9
+ },
+ {
+ "move": "GLARE",
+ "level": 13
+ },
+ {
+ "move": "ROLLOUT",
+ "level": 17
+ },
+ {
+ "move": "SPITE",
+ "level": 21
+ },
+ {
+ "move": "PURSUIT",
+ "level": 25
+ },
+ {
+ "move": "SCREECH",
+ "level": 29
+ },
+ {
+ "move": "ROOST",
+ "level": 33
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 37
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 41
+ },
+ {
+ "move": "DIG",
+ "level": 45
+ },
+ {
+ "move": "ENDEAVOR",
+ "level": 49
+ },
+ {
+ "move": "FLAIL",
+ "level": 53
+ }
+ ]
+ },
+ {
+ "species": "GLIGAR",
+ "moves": [
+ {
+ "move": "POISON_STING",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 5
+ },
+ {
+ "move": "HARDEN",
+ "level": 9
+ },
+ {
+ "move": "KNOCK_OFF",
+ "level": 12
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 16
+ },
+ {
+ "move": "FURY_CUTTER",
+ "level": 20
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 23
+ },
+ {
+ "move": "SCREECH",
+ "level": 27
+ },
+ {
+ "move": "SLASH",
+ "level": 31
+ },
+ {
+ "move": "SWORDS_DANCE",
+ "level": 34
+ },
+ {
+ "move": "U_TURN",
+ "level": 38
+ },
+ {
+ "move": "X_SCISSOR",
+ "level": 42
+ },
+ {
+ "move": "GUILLOTINE",
+ "level": 45
+ }
+ ]
+ },
+ {
+ "species": "STEELIX",
+ "moves": [
+ {
+ "move": "THUNDER_FANG",
+ "level": 1
+ },
+ {
+ "move": "ICE_FANG",
+ "level": 1
+ },
+ {
+ "move": "FIRE_FANG",
+ "level": 1
+ },
+ {
+ "move": "MUD_SPORT",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 1
+ },
+ {
+ "move": "BIND",
+ "level": 1
+ },
+ {
+ "move": "SCREECH",
+ "level": 6
+ },
+ {
+ "move": "ROCK_THROW",
+ "level": 9
+ },
+ {
+ "move": "RAGE",
+ "level": 14
+ },
+ {
+ "move": "ROCK_TOMB",
+ "level": 17
+ },
+ {
+ "move": "SANDSTORM",
+ "level": 22
+ },
+ {
+ "move": "SLAM",
+ "level": 25
+ },
+ {
+ "move": "ROCK_POLISH",
+ "level": 30
+ },
+ {
+ "move": "DRAGON_BREATH",
+ "level": 33
+ },
+ {
+ "move": "IRON_TAIL",
+ "level": 38
+ },
+ {
+ "move": "CRUNCH",
+ "level": 41
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 46
+ },
+ {
+ "move": "STONE_EDGE",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "SNUBBULL",
+ "moves": [
+ {
+ "move": "ICE_FANG",
+ "level": 1
+ },
+ {
+ "move": "FIRE_FANG",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_FANG",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "CHARM",
+ "level": 1
+ },
+ {
+ "move": "BITE",
+ "level": 7
+ },
+ {
+ "move": "LICK",
+ "level": 13
+ },
+ {
+ "move": "HEADBUTT",
+ "level": 19
+ },
+ {
+ "move": "ROAR",
+ "level": 25
+ },
+ {
+ "move": "RAGE",
+ "level": 31
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 37
+ },
+ {
+ "move": "PAYBACK",
+ "level": 43
+ },
+ {
+ "move": "CRUNCH",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "GRANBULL",
+ "moves": [
+ {
+ "move": "ICE_FANG",
+ "level": 1
+ },
+ {
+ "move": "FIRE_FANG",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_FANG",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "CHARM",
+ "level": 1
+ },
+ {
+ "move": "BITE",
+ "level": 7
+ },
+ {
+ "move": "LICK",
+ "level": 13
+ },
+ {
+ "move": "HEADBUTT",
+ "level": 19
+ },
+ {
+ "move": "ROAR",
+ "level": 27
+ },
+ {
+ "move": "RAGE",
+ "level": 35
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 43
+ },
+ {
+ "move": "PAYBACK",
+ "level": 51
+ },
+ {
+ "move": "CRUNCH",
+ "level": 59
+ }
+ ]
+ },
+ {
+ "species": "QWILFISH",
+ "moves": [
+ {
+ "move": "SPIKES",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "POISON_STING",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 9
+ },
+ {
+ "move": "MINIMIZE",
+ "level": 9
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 13
+ },
+ {
+ "move": "ROLLOUT",
+ "level": 17
+ },
+ {
+ "move": "TOXIC_SPIKES",
+ "level": 21
+ },
+ {
+ "move": "STOCKPILE",
+ "level": 25
+ },
+ {
+ "move": "SPIT_UP",
+ "level": 25
+ },
+ {
+ "move": "REVENGE",
+ "level": 29
+ },
+ {
+ "move": "BRINE",
+ "level": 33
+ },
+ {
+ "move": "PIN_MISSILE",
+ "level": 37
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 41
+ },
+ {
+ "move": "AQUA_TAIL",
+ "level": 45
+ },
+ {
+ "move": "POISON_JAB",
+ "level": 49
+ },
+ {
+ "move": "DESTINY_BOND",
+ "level": 53
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 57
+ }
+ ]
+ },
+ {
+ "species": "SCIZOR",
+ "moves": [
+ {
+ "move": "QUICK_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 5
+ },
+ {
+ "move": "PURSUIT",
+ "level": 9
+ },
+ {
+ "move": "FALSE_SWIPE",
+ "level": 13
+ },
+ {
+ "move": "AGILITY",
+ "level": 17
+ },
+ {
+ "move": "METAL_CLAW",
+ "level": 21
+ },
+ {
+ "move": "FURY_CUTTER",
+ "level": 25
+ },
+ {
+ "move": "SLASH",
+ "level": 29
+ },
+ {
+ "move": "RAZOR_WIND",
+ "level": 33
+ },
+ {
+ "move": "IRON_DEFENSE",
+ "level": 37
+ },
+ {
+ "move": "X_SCISSOR",
+ "level": 41
+ },
+ {
+ "move": "NIGHT_SLASH",
+ "level": 45
+ },
+ {
+ "move": "DOUBLE_HIT",
+ "level": 49
+ },
+ {
+ "move": "IRON_HEAD",
+ "level": 53
+ },
+ {
+ "move": "SWORDS_DANCE",
+ "level": 57
+ }
+ ]
+ },
+ {
+ "species": "SHUCKLE",
+ "moves": [
+ {
+ "move": "WITHDRAW",
+ "level": 1
+ },
+ {
+ "move": "CONSTRICT",
+ "level": 1
+ },
+ {
+ "move": "BIDE",
+ "level": 9
+ },
+ {
+ "move": "ENCORE",
+ "level": 14
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 22
+ },
+ {
+ "move": "WRAP",
+ "level": 27
+ },
+ {
+ "move": "REST",
+ "level": 35
+ },
+ {
+ "move": "GASTRO_ACID",
+ "level": 40
+ },
+ {
+ "move": "POWER_TRICK",
+ "level": 48
+ }
+ ]
+ },
+ {
+ "species": "HERACROSS",
+ "moves": [
+ {
+ "move": "NIGHT_SLASH",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "HORN_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "ENDURE",
+ "level": 1
+ },
+ {
+ "move": "FURY_ATTACK",
+ "level": 7
+ },
+ {
+ "move": "AERIAL_ACE",
+ "level": 13
+ },
+ {
+ "move": "BRICK_BREAK",
+ "level": 19
+ },
+ {
+ "move": "COUNTER",
+ "level": 25
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 31
+ },
+ {
+ "move": "CLOSE_COMBAT",
+ "level": 37
+ },
+ {
+ "move": "REVERSAL",
+ "level": 43
+ },
+ {
+ "move": "FEINT",
+ "level": 49
+ },
+ {
+ "move": "MEGAHORN",
+ "level": 55
+ }
+ ]
+ },
+ {
+ "species": "SNEASEL",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "TAUNT",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 8
+ },
+ {
+ "move": "SCREECH",
+ "level": 10
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 14
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 21
+ },
+ {
+ "move": "AGILITY",
+ "level": 24
+ },
+ {
+ "move": "ICY_WIND",
+ "level": 28
+ },
+ {
+ "move": "SLASH",
+ "level": 35
+ },
+ {
+ "move": "BEAT_UP",
+ "level": 38
+ },
+ {
+ "move": "METAL_CLAW",
+ "level": 42
+ },
+ {
+ "move": "ICE_SHARD",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "TEDDIURSA",
+ "moves": [
+ {
+ "move": "COVET",
+ "level": 1
+ },
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "LICK",
+ "level": 1
+ },
+ {
+ "move": "FAKE_TEARS",
+ "level": 1
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 8
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 15
+ },
+ {
+ "move": "SWEET_SCENT",
+ "level": 22
+ },
+ {
+ "move": "SLASH",
+ "level": 29
+ },
+ {
+ "move": "CHARM",
+ "level": 36
+ },
+ {
+ "move": "REST",
+ "level": 43
+ },
+ {
+ "move": "SNORE",
+ "level": 43
+ },
+ {
+ "move": "THRASH",
+ "level": 50
+ },
+ {
+ "move": "FLING",
+ "level": 57
+ }
+ ]
+ },
+ {
+ "species": "URSARING",
+ "moves": [
+ {
+ "move": "COVET",
+ "level": 1
+ },
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "LICK",
+ "level": 1
+ },
+ {
+ "move": "FAKE_TEARS",
+ "level": 1
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 8
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 15
+ },
+ {
+ "move": "SWEET_SCENT",
+ "level": 22
+ },
+ {
+ "move": "SLASH",
+ "level": 29
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 38
+ },
+ {
+ "move": "REST",
+ "level": 47
+ },
+ {
+ "move": "SNORE",
+ "level": 49
+ },
+ {
+ "move": "THRASH",
+ "level": 58
+ },
+ {
+ "move": "HAMMER_ARM",
+ "level": 67
+ }
+ ]
+ },
+ {
+ "species": "SLUGMA",
+ "moves": [
+ {
+ "move": "YAWN",
+ "level": 1
+ },
+ {
+ "move": "SMOG",
+ "level": 1
+ },
+ {
+ "move": "EMBER",
+ "level": 8
+ },
+ {
+ "move": "ROCK_THROW",
+ "level": 11
+ },
+ {
+ "move": "HARDEN",
+ "level": 16
+ },
+ {
+ "move": "RECOVER",
+ "level": 23
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 26
+ },
+ {
+ "move": "AMNESIA",
+ "level": 31
+ },
+ {
+ "move": "LAVA_PLUME",
+ "level": 38
+ },
+ {
+ "move": "ROCK_SLIDE",
+ "level": 41
+ },
+ {
+ "move": "BODY_SLAM",
+ "level": 46
+ },
+ {
+ "move": "FLAMETHROWER",
+ "level": 53
+ },
+ {
+ "move": "EARTH_POWER",
+ "level": 56
+ }
+ ]
+ },
+ {
+ "species": "MAGCARGO",
+ "moves": [
+ {
+ "move": "YAWN",
+ "level": 1
+ },
+ {
+ "move": "SMOG",
+ "level": 1
+ },
+ {
+ "move": "EMBER",
+ "level": 1
+ },
+ {
+ "move": "ROCK_THROW",
+ "level": 1
+ },
+ {
+ "move": "EMBER",
+ "level": 8
+ },
+ {
+ "move": "ROCK_THROW",
+ "level": 11
+ },
+ {
+ "move": "HARDEN",
+ "level": 16
+ },
+ {
+ "move": "RECOVER",
+ "level": 23
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 26
+ },
+ {
+ "move": "AMNESIA",
+ "level": 31
+ },
+ {
+ "move": "LAVA_PLUME",
+ "level": 40
+ },
+ {
+ "move": "ROCK_SLIDE",
+ "level": 45
+ },
+ {
+ "move": "BODY_SLAM",
+ "level": 52
+ },
+ {
+ "move": "FLAMETHROWER",
+ "level": 61
+ },
+ {
+ "move": "EARTH_POWER",
+ "level": 66
+ }
+ ]
+ },
+ {
+ "species": "SWINUB",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "ODOR_SLEUTH",
+ "level": 1
+ },
+ {
+ "move": "MUD_SPORT",
+ "level": 4
+ },
+ {
+ "move": "POWDER_SNOW",
+ "level": 8
+ },
+ {
+ "move": "MUD_SLAP",
+ "level": 13
+ },
+ {
+ "move": "ENDURE",
+ "level": 16
+ },
+ {
+ "move": "MUD_BOMB",
+ "level": 20
+ },
+ {
+ "move": "ICY_WIND",
+ "level": 25
+ },
+ {
+ "move": "ICE_SHARD",
+ "level": 28
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 32
+ },
+ {
+ "move": "EARTHQUAKE",
+ "level": 37
+ },
+ {
+ "move": "MIST",
+ "level": 40
+ },
+ {
+ "move": "BLIZZARD",
+ "level": 44
+ },
+ {
+ "move": "AMNESIA",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "PILOSWINE",
+ "moves": [
+ {
+ "move": "ANCIENT_POWER",
+ "level": 1
+ },
+ {
+ "move": "PECK",
+ "level": 1
+ },
+ {
+ "move": "ODOR_SLEUTH",
+ "level": 1
+ },
+ {
+ "move": "MUD_SPORT",
+ "level": 1
+ },
+ {
+ "move": "POWDER_SNOW",
+ "level": 1
+ },
+ {
+ "move": "MUD_SPORT",
+ "level": 4
+ },
+ {
+ "move": "POWDER_SNOW",
+ "level": 8
+ },
+ {
+ "move": "MUD_SLAP",
+ "level": 13
+ },
+ {
+ "move": "ENDURE",
+ "level": 16
+ },
+ {
+ "move": "MUD_BOMB",
+ "level": 20
+ },
+ {
+ "move": "ICY_WIND",
+ "level": 25
+ },
+ {
+ "move": "ICE_FANG",
+ "level": 28
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 32
+ },
+ {
+ "move": "FURY_ATTACK",
+ "level": 33
+ },
+ {
+ "move": "EARTHQUAKE",
+ "level": 40
+ },
+ {
+ "move": "MIST",
+ "level": 48
+ },
+ {
+ "move": "BLIZZARD",
+ "level": 56
+ },
+ {
+ "move": "AMNESIA",
+ "level": 65
+ }
+ ]
+ },
+ {
+ "species": "CORSOLA",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 4
+ },
+ {
+ "move": "BUBBLE",
+ "level": 8
+ },
+ {
+ "move": "RECOVER",
+ "level": 13
+ },
+ {
+ "move": "REFRESH",
+ "level": 16
+ },
+ {
+ "move": "ROCK_BLAST",
+ "level": 20
+ },
+ {
+ "move": "BUBBLE_BEAM",
+ "level": 25
+ },
+ {
+ "move": "LUCKY_CHANT",
+ "level": 28
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 32
+ },
+ {
+ "move": "AQUA_RING",
+ "level": 37
+ },
+ {
+ "move": "SPIKE_CANNON",
+ "level": 40
+ },
+ {
+ "move": "POWER_GEM",
+ "level": 44
+ },
+ {
+ "move": "MIRROR_COAT",
+ "level": 48
+ },
+ {
+ "move": "EARTH_POWER",
+ "level": 53
+ }
+ ]
+ },
+ {
+ "species": "REMORAID",
+ "moves": [
+ {
+ "move": "WATER_GUN",
+ "level": 1
+ },
+ {
+ "move": "LOCK_ON",
+ "level": 6
+ },
+ {
+ "move": "PSYBEAM",
+ "level": 10
+ },
+ {
+ "move": "AURORA_BEAM",
+ "level": 14
+ },
+ {
+ "move": "BUBBLE_BEAM",
+ "level": 19
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 23
+ },
+ {
+ "move": "BULLET_SEED",
+ "level": 27
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 32
+ },
+ {
+ "move": "SIGNAL_BEAM",
+ "level": 36
+ },
+ {
+ "move": "ICE_BEAM",
+ "level": 40
+ },
+ {
+ "move": "HYPER_BEAM",
+ "level": 45
+ }
+ ]
+ },
+ {
+ "species": "OCTILLERY",
+ "moves": [
+ {
+ "move": "GUNK_SHOT",
+ "level": 1
+ },
+ {
+ "move": "ROCK_BLAST",
+ "level": 1
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 1
+ },
+ {
+ "move": "CONSTRICT",
+ "level": 1
+ },
+ {
+ "move": "PSYBEAM",
+ "level": 1
+ },
+ {
+ "move": "AURORA_BEAM",
+ "level": 1
+ },
+ {
+ "move": "CONSTRICT",
+ "level": 6
+ },
+ {
+ "move": "PSYBEAM",
+ "level": 10
+ },
+ {
+ "move": "AURORA_BEAM",
+ "level": 14
+ },
+ {
+ "move": "BUBBLE_BEAM",
+ "level": 19
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 23
+ },
+ {
+ "move": "OCTAZOOKA",
+ "level": 25
+ },
+ {
+ "move": "BULLET_SEED",
+ "level": 29
+ },
+ {
+ "move": "WRING_OUT",
+ "level": 36
+ },
+ {
+ "move": "SIGNAL_BEAM",
+ "level": 42
+ },
+ {
+ "move": "ICE_BEAM",
+ "level": 48
+ },
+ {
+ "move": "HYPER_BEAM",
+ "level": 55
+ }
+ ]
+ },
+ {
+ "species": "DELIBIRD",
+ "moves": [
+ {
+ "move": "PRESENT",
+ "level": 1
+ }
+ ]
+ },
+ {
+ "species": "MANTINE",
+ "moves": [
+ {
+ "move": "PSYBEAM",
+ "level": 1
+ },
+ {
+ "move": "BULLET_SEED",
+ "level": 1
+ },
+ {
+ "move": "SIGNAL_BEAM",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "BUBBLE",
+ "level": 1
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 1
+ },
+ {
+ "move": "BUBBLE_BEAM",
+ "level": 1
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 4
+ },
+ {
+ "move": "BUBBLE_BEAM",
+ "level": 10
+ },
+ {
+ "move": "HEADBUTT",
+ "level": 13
+ },
+ {
+ "move": "AGILITY",
+ "level": 19
+ },
+ {
+ "move": "WING_ATTACK",
+ "level": 22
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 28
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 31
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 37
+ },
+ {
+ "move": "BOUNCE",
+ "level": 40
+ },
+ {
+ "move": "AQUA_RING",
+ "level": 46
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "SKARMORY",
+ "moves": [
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "PECK",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 7
+ },
+ {
+ "move": "SWIFT",
+ "level": 11
+ },
+ {
+ "move": "AGILITY",
+ "level": 14
+ },
+ {
+ "move": "FURY_ATTACK",
+ "level": 20
+ },
+ {
+ "move": "AIR_CUTTER",
+ "level": 24
+ },
+ {
+ "move": "SPIKES",
+ "level": 27
+ },
+ {
+ "move": "METAL_SOUND",
+ "level": 33
+ },
+ {
+ "move": "STEEL_WING",
+ "level": 38
+ },
+ {
+ "move": "AIR_SLASH",
+ "level": 40
+ },
+ {
+ "move": "SLASH",
+ "level": 46
+ },
+ {
+ "move": "NIGHT_SLASH",
+ "level": 50
+ }
+ ]
+ },
+ {
+ "species": "HOUNDOUR",
+ "moves": [
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "EMBER",
+ "level": 1
+ },
+ {
+ "move": "HOWL",
+ "level": 4
+ },
+ {
+ "move": "SMOG",
+ "level": 9
+ },
+ {
+ "move": "ROAR",
+ "level": 14
+ },
+ {
+ "move": "BITE",
+ "level": 17
+ },
+ {
+ "move": "ODOR_SLEUTH",
+ "level": 22
+ },
+ {
+ "move": "BEAT_UP",
+ "level": 27
+ },
+ {
+ "move": "FIRE_FANG",
+ "level": 30
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 35
+ },
+ {
+ "move": "EMBARGO",
+ "level": 40
+ },
+ {
+ "move": "FLAMETHROWER",
+ "level": 43
+ },
+ {
+ "move": "CRUNCH",
+ "level": 48
+ },
+ {
+ "move": "NASTY_PLOT",
+ "level": 53
+ }
+ ]
+ },
+ {
+ "species": "HOUNDOOM",
+ "moves": [
+ {
+ "move": "THUNDER_FANG",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "EMBER",
+ "level": 1
+ },
+ {
+ "move": "HOWL",
+ "level": 1
+ },
+ {
+ "move": "SMOG",
+ "level": 1
+ },
+ {
+ "move": "HOWL",
+ "level": 4
+ },
+ {
+ "move": "SMOG",
+ "level": 9
+ },
+ {
+ "move": "ROAR",
+ "level": 14
+ },
+ {
+ "move": "BITE",
+ "level": 17
+ },
+ {
+ "move": "ODOR_SLEUTH",
+ "level": 22
+ },
+ {
+ "move": "BEAT_UP",
+ "level": 28
+ },
+ {
+ "move": "FIRE_FANG",
+ "level": 32
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 38
+ },
+ {
+ "move": "EMBARGO",
+ "level": 44
+ },
+ {
+ "move": "FLAMETHROWER",
+ "level": 48
+ },
+ {
+ "move": "CRUNCH",
+ "level": 54
+ },
+ {
+ "move": "NASTY_PLOT",
+ "level": 60
+ }
+ ]
+ },
+ {
+ "species": "KINGDRA",
+ "moves": [
+ {
+ "move": "YAWN",
+ "level": 1
+ },
+ {
+ "move": "BUBBLE",
+ "level": 1
+ },
+ {
+ "move": "SMOKESCREEN",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 1
+ },
+ {
+ "move": "SMOKESCREEN",
+ "level": 4
+ },
+ {
+ "move": "LEER",
+ "level": 8
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 11
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 14
+ },
+ {
+ "move": "BUBBLE_BEAM",
+ "level": 18
+ },
+ {
+ "move": "AGILITY",
+ "level": 23
+ },
+ {
+ "move": "TWISTER",
+ "level": 26
+ },
+ {
+ "move": "BRINE",
+ "level": 30
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 40
+ },
+ {
+ "move": "DRAGON_DANCE",
+ "level": 48
+ },
+ {
+ "move": "DRAGON_PULSE",
+ "level": 57
+ }
+ ]
+ },
+ {
+ "species": "PHANPY",
+ "moves": [
+ {
+ "move": "ODOR_SLEUTH",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 1
+ },
+ {
+ "move": "FLAIL",
+ "level": 6
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 10
+ },
+ {
+ "move": "ROLLOUT",
+ "level": 15
+ },
+ {
+ "move": "NATURAL_GIFT",
+ "level": 19
+ },
+ {
+ "move": "SLAM",
+ "level": 24
+ },
+ {
+ "move": "ENDURE",
+ "level": 28
+ },
+ {
+ "move": "CHARM",
+ "level": 33
+ },
+ {
+ "move": "LAST_RESORT",
+ "level": 37
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 42
+ }
+ ]
+ },
+ {
+ "species": "DONPHAN",
+ "moves": [
+ {
+ "move": "FIRE_FANG",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_FANG",
+ "level": 1
+ },
+ {
+ "move": "HORN_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 1
+ },
+ {
+ "move": "FLAIL",
+ "level": 1
+ },
+ {
+ "move": "RAPID_SPIN",
+ "level": 6
+ },
+ {
+ "move": "KNOCK_OFF",
+ "level": 10
+ },
+ {
+ "move": "ROLLOUT",
+ "level": 15
+ },
+ {
+ "move": "MAGNITUDE",
+ "level": 19
+ },
+ {
+ "move": "SLAM",
+ "level": 24
+ },
+ {
+ "move": "FURY_ATTACK",
+ "level": 25
+ },
+ {
+ "move": "ASSURANCE",
+ "level": 31
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 39
+ },
+ {
+ "move": "EARTHQUAKE",
+ "level": 46
+ },
+ {
+ "move": "GIGA_IMPACT",
+ "level": 54
+ }
+ ]
+ },
+ {
+ "species": "PORYGON2",
+ "moves": [
+ {
+ "move": "CONVERSION_2",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "CONVERSION",
+ "level": 1
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 1
+ },
+ {
+ "move": "PSYBEAM",
+ "level": 7
+ },
+ {
+ "move": "AGILITY",
+ "level": 12
+ },
+ {
+ "move": "RECOVER",
+ "level": 18
+ },
+ {
+ "move": "MAGNET_RISE",
+ "level": 23
+ },
+ {
+ "move": "SIGNAL_BEAM",
+ "level": 29
+ },
+ {
+ "move": "RECYCLE",
+ "level": 34
+ },
+ {
+ "move": "DISCHARGE",
+ "level": 40
+ },
+ {
+ "move": "LOCK_ON",
+ "level": 45
+ },
+ {
+ "move": "TRI_ATTACK",
+ "level": 51
+ },
+ {
+ "move": "MAGIC_COAT",
+ "level": 56
+ },
+ {
+ "move": "ZAP_CANNON",
+ "level": 62
+ },
+ {
+ "move": "HYPER_BEAM",
+ "level": 67
+ }
+ ]
+ },
+ {
+ "species": "STANTLER",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 3
+ },
+ {
+ "move": "ASTONISH",
+ "level": 7
+ },
+ {
+ "move": "HYPNOSIS",
+ "level": 10
+ },
+ {
+ "move": "STOMP",
+ "level": 13
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 16
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 21
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 23
+ },
+ {
+ "move": "CALM_MIND",
+ "level": 27
+ },
+ {
+ "move": "ROLE_PLAY",
+ "level": 33
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 38
+ },
+ {
+ "move": "IMPRISON",
+ "level": 43
+ },
+ {
+ "move": "CAPTIVATE",
+ "level": 49
+ },
+ {
+ "move": "ME_FIRST",
+ "level": 53
+ }
+ ]
+ },
+ {
+ "species": "SMEARGLE",
+ "moves": [
+ {
+ "move": "SKETCH",
+ "level": 1
+ },
+ {
+ "move": "SKETCH",
+ "level": 11
+ },
+ {
+ "move": "SKETCH",
+ "level": 21
+ },
+ {
+ "move": "SKETCH",
+ "level": 31
+ },
+ {
+ "move": "SKETCH",
+ "level": 41
+ },
+ {
+ "move": "SKETCH",
+ "level": 51
+ },
+ {
+ "move": "SKETCH",
+ "level": 61
+ },
+ {
+ "move": "SKETCH",
+ "level": 71
+ },
+ {
+ "move": "SKETCH",
+ "level": 81
+ },
+ {
+ "move": "SKETCH",
+ "level": 91
+ }
+ ]
+ },
+ {
+ "species": "TYROGUE",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "HELPING_HAND",
+ "level": 1
+ },
+ {
+ "move": "FAKE_OUT",
+ "level": 1
+ }
+ ]
+ },
+ {
+ "species": "HITMONTOP",
+ "moves": [
+ {
+ "move": "REVENGE",
+ "level": 1
+ },
+ {
+ "move": "ROLLING_KICK",
+ "level": 1
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 6
+ },
+ {
+ "move": "PURSUIT",
+ "level": 10
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 15
+ },
+ {
+ "move": "TRIPLE_KICK",
+ "level": 19
+ },
+ {
+ "move": "RAPID_SPIN",
+ "level": 24
+ },
+ {
+ "move": "COUNTER",
+ "level": 28
+ },
+ {
+ "move": "FEINT",
+ "level": 33
+ },
+ {
+ "move": "AGILITY",
+ "level": 37
+ },
+ {
+ "move": "GYRO_BALL",
+ "level": 42
+ },
+ {
+ "move": "DETECT",
+ "level": 46
+ },
+ {
+ "move": "CLOSE_COMBAT",
+ "level": 51
+ },
+ {
+ "move": "ENDEAVOR",
+ "level": 55
+ }
+ ]
+ },
+ {
+ "species": "SMOOCHUM",
+ "moves": [
+ {
+ "move": "POUND",
+ "level": 1
+ },
+ {
+ "move": "LICK",
+ "level": 5
+ },
+ {
+ "move": "SWEET_KISS",
+ "level": 8
+ },
+ {
+ "move": "POWDER_SNOW",
+ "level": 11
+ },
+ {
+ "move": "CONFUSION",
+ "level": 15
+ },
+ {
+ "move": "SING",
+ "level": 18
+ },
+ {
+ "move": "MEAN_LOOK",
+ "level": 21
+ },
+ {
+ "move": "FAKE_TEARS",
+ "level": 25
+ },
+ {
+ "move": "LUCKY_CHANT",
+ "level": 28
+ },
+ {
+ "move": "AVALANCHE",
+ "level": 31
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 35
+ },
+ {
+ "move": "COPYCAT",
+ "level": 38
+ },
+ {
+ "move": "PERISH_SONG",
+ "level": 41
+ },
+ {
+ "move": "BLIZZARD",
+ "level": 45
+ }
+ ]
+ },
+ {
+ "species": "ELEKID",
+ "moves": [
+ {
+ "move": "QUICK_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_SHOCK",
+ "level": 7
+ },
+ {
+ "move": "LOW_KICK",
+ "level": 10
+ },
+ {
+ "move": "SWIFT",
+ "level": 16
+ },
+ {
+ "move": "SHOCK_WAVE",
+ "level": 19
+ },
+ {
+ "move": "LIGHT_SCREEN",
+ "level": 25
+ },
+ {
+ "move": "THUNDER_PUNCH",
+ "level": 28
+ },
+ {
+ "move": "DISCHARGE",
+ "level": 34
+ },
+ {
+ "move": "THUNDERBOLT",
+ "level": 37
+ },
+ {
+ "move": "SCREECH",
+ "level": 43
+ },
+ {
+ "move": "THUNDER",
+ "level": 46
+ }
+ ]
+ },
+ {
+ "species": "MAGBY",
+ "moves": [
+ {
+ "move": "SMOG",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "EMBER",
+ "level": 7
+ },
+ {
+ "move": "SMOKESCREEN",
+ "level": 10
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 16
+ },
+ {
+ "move": "FIRE_SPIN",
+ "level": 19
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 25
+ },
+ {
+ "move": "FIRE_PUNCH",
+ "level": 28
+ },
+ {
+ "move": "LAVA_PLUME",
+ "level": 34
+ },
+ {
+ "move": "FLAMETHROWER",
+ "level": 37
+ },
+ {
+ "move": "SUNNY_DAY",
+ "level": 43
+ },
+ {
+ "move": "FIRE_BLAST",
+ "level": 46
+ }
+ ]
+ },
+ {
+ "species": "MILTANK",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 3
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 5
+ },
+ {
+ "move": "STOMP",
+ "level": 8
+ },
+ {
+ "move": "MILK_DRINK",
+ "level": 11
+ },
+ {
+ "move": "BIDE",
+ "level": 15
+ },
+ {
+ "move": "ROLLOUT",
+ "level": 19
+ },
+ {
+ "move": "BODY_SLAM",
+ "level": 24
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 29
+ },
+ {
+ "move": "CAPTIVATE",
+ "level": 35
+ },
+ {
+ "move": "GYRO_BALL",
+ "level": 41
+ },
+ {
+ "move": "HEAL_BELL",
+ "level": 48
+ },
+ {
+ "move": "WAKE_UP_SLAP",
+ "level": 55
+ }
+ ]
+ },
+ {
+ "species": "BLISSEY",
+ "moves": [
+ {
+ "move": "POUND",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 5
+ },
+ {
+ "move": "REFRESH",
+ "level": 9
+ },
+ {
+ "move": "SOFT_BOILED",
+ "level": 12
+ },
+ {
+ "move": "DOUBLE_SLAP",
+ "level": 16
+ },
+ {
+ "move": "MINIMIZE",
+ "level": 20
+ },
+ {
+ "move": "SING",
+ "level": 23
+ },
+ {
+ "move": "FLING",
+ "level": 27
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 31
+ },
+ {
+ "move": "LIGHT_SCREEN",
+ "level": 34
+ },
+ {
+ "move": "EGG_BOMB",
+ "level": 38
+ },
+ {
+ "move": "HEALING_WISH",
+ "level": 42
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 46
+ }
+ ]
+ },
+ {
+ "species": "RAIKOU",
+ "moves": [
+ {
+ "move": "BITE",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_SHOCK",
+ "level": 8
+ },
+ {
+ "move": "ROAR",
+ "level": 15
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 22
+ },
+ {
+ "move": "SPARK",
+ "level": 29
+ },
+ {
+ "move": "REFLECT",
+ "level": 36
+ },
+ {
+ "move": "CRUNCH",
+ "level": 43
+ },
+ {
+ "move": "THUNDER_FANG",
+ "level": 50
+ },
+ {
+ "move": "DISCHARGE",
+ "level": 57
+ },
+ {
+ "move": "EXTRASENSORY",
+ "level": 64
+ },
+ {
+ "move": "THUNDER",
+ "level": 71
+ },
+ {
+ "move": "CALM_MIND",
+ "level": 78
+ }
+ ]
+ },
+ {
+ "species": "ENTEI",
+ "moves": [
+ {
+ "move": "BITE",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "EMBER",
+ "level": 8
+ },
+ {
+ "move": "ROAR",
+ "level": 15
+ },
+ {
+ "move": "FIRE_SPIN",
+ "level": 22
+ },
+ {
+ "move": "STOMP",
+ "level": 29
+ },
+ {
+ "move": "FLAMETHROWER",
+ "level": 36
+ },
+ {
+ "move": "SWAGGER",
+ "level": 43
+ },
+ {
+ "move": "FIRE_FANG",
+ "level": 50
+ },
+ {
+ "move": "LAVA_PLUME",
+ "level": 57
+ },
+ {
+ "move": "EXTRASENSORY",
+ "level": 64
+ },
+ {
+ "move": "FIRE_BLAST",
+ "level": 71
+ },
+ {
+ "move": "CALM_MIND",
+ "level": 78
+ }
+ ]
+ },
+ {
+ "species": "SUICUNE",
+ "moves": [
+ {
+ "move": "BITE",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "BUBBLE_BEAM",
+ "level": 8
+ },
+ {
+ "move": "RAIN_DANCE",
+ "level": 15
+ },
+ {
+ "move": "GUST",
+ "level": 22
+ },
+ {
+ "move": "AURORA_BEAM",
+ "level": 29
+ },
+ {
+ "move": "MIST",
+ "level": 36
+ },
+ {
+ "move": "MIRROR_COAT",
+ "level": 43
+ },
+ {
+ "move": "ICE_FANG",
+ "level": 50
+ },
+ {
+ "move": "TAILWIND",
+ "level": 57
+ },
+ {
+ "move": "EXTRASENSORY",
+ "level": 64
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 71
+ },
+ {
+ "move": "CALM_MIND",
+ "level": 78
+ }
+ ]
+ },
+ {
+ "species": "LARVITAR",
+ "moves": [
+ {
+ "move": "BITE",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "SANDSTORM",
+ "level": 5
+ },
+ {
+ "move": "SCREECH",
+ "level": 10
+ },
+ {
+ "move": "ROCK_SLIDE",
+ "level": 14
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 19
+ },
+ {
+ "move": "THRASH",
+ "level": 23
+ },
+ {
+ "move": "DARK_PULSE",
+ "level": 28
+ },
+ {
+ "move": "PAYBACK",
+ "level": 32
+ },
+ {
+ "move": "CRUNCH",
+ "level": 37
+ },
+ {
+ "move": "EARTHQUAKE",
+ "level": 41
+ },
+ {
+ "move": "STONE_EDGE",
+ "level": 46
+ },
+ {
+ "move": "HYPER_BEAM",
+ "level": 50
+ }
+ ]
+ },
+ {
+ "species": "PUPITAR",
+ "moves": [
+ {
+ "move": "BITE",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "SANDSTORM",
+ "level": 1
+ },
+ {
+ "move": "SCREECH",
+ "level": 1
+ },
+ {
+ "move": "SANDSTORM",
+ "level": 5
+ },
+ {
+ "move": "SCREECH",
+ "level": 10
+ },
+ {
+ "move": "ROCK_SLIDE",
+ "level": 14
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 19
+ },
+ {
+ "move": "THRASH",
+ "level": 23
+ },
+ {
+ "move": "DARK_PULSE",
+ "level": 28
+ },
+ {
+ "move": "PAYBACK",
+ "level": 34
+ },
+ {
+ "move": "CRUNCH",
+ "level": 41
+ },
+ {
+ "move": "EARTHQUAKE",
+ "level": 47
+ },
+ {
+ "move": "STONE_EDGE",
+ "level": 54
+ },
+ {
+ "move": "HYPER_BEAM",
+ "level": 60
+ }
+ ]
+ },
+ {
+ "species": "TYRANITAR",
+ "moves": [
+ {
+ "move": "THUNDER_FANG",
+ "level": 1
+ },
+ {
+ "move": "ICE_FANG",
+ "level": 1
+ },
+ {
+ "move": "FIRE_FANG",
+ "level": 1
+ },
+ {
+ "move": "BITE",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "SANDSTORM",
+ "level": 1
+ },
+ {
+ "move": "SCREECH",
+ "level": 1
+ },
+ {
+ "move": "SANDSTORM",
+ "level": 5
+ },
+ {
+ "move": "SCREECH",
+ "level": 10
+ },
+ {
+ "move": "ROCK_SLIDE",
+ "level": 14
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 19
+ },
+ {
+ "move": "THRASH",
+ "level": 23
+ },
+ {
+ "move": "DARK_PULSE",
+ "level": 28
+ },
+ {
+ "move": "PAYBACK",
+ "level": 34
+ },
+ {
+ "move": "CRUNCH",
+ "level": 41
+ },
+ {
+ "move": "EARTHQUAKE",
+ "level": 47
+ },
+ {
+ "move": "STONE_EDGE",
+ "level": 54
+ },
+ {
+ "move": "HYPER_BEAM",
+ "level": 70
+ }
+ ]
+ },
+ {
+ "species": "LUGIA",
+ "moves": [
+ {
+ "move": "WHIRLWIND",
+ "level": 1
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 9
+ },
+ {
+ "move": "GUST",
+ "level": 15
+ },
+ {
+ "move": "RECOVER",
+ "level": 23
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 29
+ },
+ {
+ "move": "RAIN_DANCE",
+ "level": 37
+ },
+ {
+ "move": "SWIFT",
+ "level": 43
+ },
+ {
+ "move": "NATURAL_GIFT",
+ "level": 51
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 57
+ },
+ {
+ "move": "EXTRASENSORY",
+ "level": 65
+ },
+ {
+ "move": "PUNISHMENT",
+ "level": 71
+ },
+ {
+ "move": "FUTURE_SIGHT",
+ "level": 79
+ },
+ {
+ "move": "AEROBLAST",
+ "level": 85
+ },
+ {
+ "move": "CALM_MIND",
+ "level": 93
+ },
+ {
+ "move": "SKY_ATTACK",
+ "level": 99
+ }
+ ]
+ },
+ {
+ "species": "HO_OH",
+ "moves": [
+ {
+ "move": "WHIRLWIND",
+ "level": 1
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 9
+ },
+ {
+ "move": "GUST",
+ "level": 15
+ },
+ {
+ "move": "RECOVER",
+ "level": 23
+ },
+ {
+ "move": "FIRE_BLAST",
+ "level": 29
+ },
+ {
+ "move": "SUNNY_DAY",
+ "level": 37
+ },
+ {
+ "move": "SWIFT",
+ "level": 43
+ },
+ {
+ "move": "NATURAL_GIFT",
+ "level": 51
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 57
+ },
+ {
+ "move": "EXTRASENSORY",
+ "level": 65
+ },
+ {
+ "move": "PUNISHMENT",
+ "level": 71
+ },
+ {
+ "move": "FUTURE_SIGHT",
+ "level": 79
+ },
+ {
+ "move": "SACRED_FIRE",
+ "level": 85
+ },
+ {
+ "move": "CALM_MIND",
+ "level": 93
+ },
+ {
+ "move": "SKY_ATTACK",
+ "level": 99
+ }
+ ]
+ },
+ {
+ "species": "CELEBI",
+ "moves": [
+ {
+ "move": "LEECH_SEED",
+ "level": 1
+ },
+ {
+ "move": "CONFUSION",
+ "level": 1
+ },
+ {
+ "move": "RECOVER",
+ "level": 1
+ },
+ {
+ "move": "HEAL_BELL",
+ "level": 1
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 10
+ },
+ {
+ "move": "MAGICAL_LEAF",
+ "level": 19
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 28
+ },
+ {
+ "move": "BATON_PASS",
+ "level": 37
+ },
+ {
+ "move": "NATURAL_GIFT",
+ "level": 46
+ },
+ {
+ "move": "HEAL_BLOCK",
+ "level": 55
+ },
+ {
+ "move": "FUTURE_SIGHT",
+ "level": 64
+ },
+ {
+ "move": "HEALING_WISH",
+ "level": 73
+ },
+ {
+ "move": "LEAF_STORM",
+ "level": 82
+ },
+ {
+ "move": "PERISH_SONG",
+ "level": 91
+ }
+ ]
+ },
+ {
+ "species": "TREECKO",
+ "moves": [
+ {
+ "move": "POUND",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "ABSORB",
+ "level": 6
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 11
+ },
+ {
+ "move": "PURSUIT",
+ "level": 16
+ },
+ {
+ "move": "SCREECH",
+ "level": 21
+ },
+ {
+ "move": "MEGA_DRAIN",
+ "level": 26
+ },
+ {
+ "move": "AGILITY",
+ "level": 31
+ },
+ {
+ "move": "SLAM",
+ "level": 36
+ },
+ {
+ "move": "DETECT",
+ "level": 41
+ },
+ {
+ "move": "GIGA_DRAIN",
+ "level": 46
+ },
+ {
+ "move": "ENERGY_BALL",
+ "level": 51
+ }
+ ]
+ },
+ {
+ "species": "GROVYLE",
+ "moves": [
+ {
+ "move": "POUND",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "ABSORB",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "ABSORB",
+ "level": 6
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 11
+ },
+ {
+ "move": "FURY_CUTTER",
+ "level": 16
+ },
+ {
+ "move": "PURSUIT",
+ "level": 17
+ },
+ {
+ "move": "SCREECH",
+ "level": 23
+ },
+ {
+ "move": "LEAF_BLADE",
+ "level": 29
+ },
+ {
+ "move": "AGILITY",
+ "level": 35
+ },
+ {
+ "move": "SLAM",
+ "level": 41
+ },
+ {
+ "move": "DETECT",
+ "level": 47
+ },
+ {
+ "move": "FALSE_SWIPE",
+ "level": 53
+ },
+ {
+ "move": "LEAF_STORM",
+ "level": 59
+ }
+ ]
+ },
+ {
+ "species": "SCEPTILE",
+ "moves": [
+ {
+ "move": "NIGHT_SLASH",
+ "level": 1
+ },
+ {
+ "move": "POUND",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "ABSORB",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "ABSORB",
+ "level": 6
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 11
+ },
+ {
+ "move": "X_SCISSOR",
+ "level": 16
+ },
+ {
+ "move": "PURSUIT",
+ "level": 17
+ },
+ {
+ "move": "SCREECH",
+ "level": 23
+ },
+ {
+ "move": "LEAF_BLADE",
+ "level": 29
+ },
+ {
+ "move": "AGILITY",
+ "level": 35
+ },
+ {
+ "move": "SLAM",
+ "level": 43
+ },
+ {
+ "move": "DETECT",
+ "level": 51
+ },
+ {
+ "move": "FALSE_SWIPE",
+ "level": 59
+ },
+ {
+ "move": "LEAF_STORM",
+ "level": 67
+ }
+ ]
+ },
+ {
+ "species": "TORCHIC",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 7
+ },
+ {
+ "move": "EMBER",
+ "level": 10
+ },
+ {
+ "move": "PECK",
+ "level": 16
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 19
+ },
+ {
+ "move": "FIRE_SPIN",
+ "level": 25
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 28
+ },
+ {
+ "move": "SLASH",
+ "level": 34
+ },
+ {
+ "move": "MIRROR_MOVE",
+ "level": 37
+ },
+ {
+ "move": "FLAMETHROWER",
+ "level": 43
+ }
+ ]
+ },
+ {
+ "species": "COMBUSKEN",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 1
+ },
+ {
+ "move": "EMBER",
+ "level": 1
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 7
+ },
+ {
+ "move": "EMBER",
+ "level": 13
+ },
+ {
+ "move": "DOUBLE_KICK",
+ "level": 16
+ },
+ {
+ "move": "PECK",
+ "level": 17
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 21
+ },
+ {
+ "move": "BULK_UP",
+ "level": 28
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 32
+ },
+ {
+ "move": "SLASH",
+ "level": 39
+ },
+ {
+ "move": "MIRROR_MOVE",
+ "level": 43
+ },
+ {
+ "move": "SKY_UPPERCUT",
+ "level": 50
+ },
+ {
+ "move": "FLARE_BLITZ",
+ "level": 54
+ }
+ ]
+ },
+ {
+ "species": "BLAZIKEN",
+ "moves": [
+ {
+ "move": "FIRE_PUNCH",
+ "level": 1
+ },
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 1
+ },
+ {
+ "move": "EMBER",
+ "level": 1
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 7
+ },
+ {
+ "move": "EMBER",
+ "level": 13
+ },
+ {
+ "move": "DOUBLE_KICK",
+ "level": 16
+ },
+ {
+ "move": "PECK",
+ "level": 17
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 21
+ },
+ {
+ "move": "BULK_UP",
+ "level": 28
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 32
+ },
+ {
+ "move": "BLAZE_KICK",
+ "level": 36
+ },
+ {
+ "move": "SLASH",
+ "level": 42
+ },
+ {
+ "move": "BRAVE_BIRD",
+ "level": 49
+ },
+ {
+ "move": "SKY_UPPERCUT",
+ "level": 59
+ },
+ {
+ "move": "FLARE_BLITZ",
+ "level": 66
+ }
+ ]
+ },
+ {
+ "species": "MUDKIP",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "MUD_SLAP",
+ "level": 6
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 10
+ },
+ {
+ "move": "BIDE",
+ "level": 15
+ },
+ {
+ "move": "FORESIGHT",
+ "level": 19
+ },
+ {
+ "move": "MUD_SPORT",
+ "level": 24
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 28
+ },
+ {
+ "move": "WHIRLPOOL",
+ "level": 33
+ },
+ {
+ "move": "PROTECT",
+ "level": 37
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 42
+ },
+ {
+ "move": "ENDEAVOR",
+ "level": 46
+ }
+ ]
+ },
+ {
+ "species": "MARSHTOMP",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "MUD_SLAP",
+ "level": 1
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 1
+ },
+ {
+ "move": "MUD_SLAP",
+ "level": 6
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 10
+ },
+ {
+ "move": "BIDE",
+ "level": 15
+ },
+ {
+ "move": "MUD_SHOT",
+ "level": 16
+ },
+ {
+ "move": "FORESIGHT",
+ "level": 20
+ },
+ {
+ "move": "MUD_BOMB",
+ "level": 25
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 31
+ },
+ {
+ "move": "MUDDY_WATER",
+ "level": 37
+ },
+ {
+ "move": "PROTECT",
+ "level": 42
+ },
+ {
+ "move": "EARTHQUAKE",
+ "level": 46
+ },
+ {
+ "move": "ENDEAVOR",
+ "level": 53
+ }
+ ]
+ },
+ {
+ "species": "SWAMPERT",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "MUD_SLAP",
+ "level": 1
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 1
+ },
+ {
+ "move": "MUD_SLAP",
+ "level": 6
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 10
+ },
+ {
+ "move": "BIDE",
+ "level": 15
+ },
+ {
+ "move": "MUD_SHOT",
+ "level": 16
+ },
+ {
+ "move": "FORESIGHT",
+ "level": 20
+ },
+ {
+ "move": "MUD_BOMB",
+ "level": 25
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 31
+ },
+ {
+ "move": "MUDDY_WATER",
+ "level": 39
+ },
+ {
+ "move": "PROTECT",
+ "level": 46
+ },
+ {
+ "move": "EARTHQUAKE",
+ "level": 52
+ },
+ {
+ "move": "ENDEAVOR",
+ "level": 61
+ },
+ {
+ "move": "HAMMER_ARM",
+ "level": 69
+ }
+ ]
+ },
+ {
+ "species": "POOCHYENA",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "HOWL",
+ "level": 5
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 9
+ },
+ {
+ "move": "BITE",
+ "level": 13
+ },
+ {
+ "move": "ODOR_SLEUTH",
+ "level": 17
+ },
+ {
+ "move": "ROAR",
+ "level": 21
+ },
+ {
+ "move": "SWAGGER",
+ "level": 25
+ },
+ {
+ "move": "ASSURANCE",
+ "level": 29
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 33
+ },
+ {
+ "move": "TAUNT",
+ "level": 37
+ },
+ {
+ "move": "EMBARGO",
+ "level": 41
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 45
+ },
+ {
+ "move": "SUCKER_PUNCH",
+ "level": 49
+ },
+ {
+ "move": "CRUNCH",
+ "level": 53
+ }
+ ]
+ },
+ {
+ "species": "MIGHTYENA",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "HOWL",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "BITE",
+ "level": 1
+ },
+ {
+ "move": "HOWL",
+ "level": 5
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 9
+ },
+ {
+ "move": "BITE",
+ "level": 13
+ },
+ {
+ "move": "ODOR_SLEUTH",
+ "level": 17
+ },
+ {
+ "move": "ROAR",
+ "level": 22
+ },
+ {
+ "move": "SWAGGER",
+ "level": 27
+ },
+ {
+ "move": "ASSURANCE",
+ "level": 32
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 37
+ },
+ {
+ "move": "TAUNT",
+ "level": 42
+ },
+ {
+ "move": "EMBARGO",
+ "level": 47
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 52
+ },
+ {
+ "move": "THIEF",
+ "level": 57
+ },
+ {
+ "move": "SUCKER_PUNCH",
+ "level": 62
+ }
+ ]
+ },
+ {
+ "species": "ZIGZAGOON",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 5
+ },
+ {
+ "move": "HEADBUTT",
+ "level": 9
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 13
+ },
+ {
+ "move": "ODOR_SLEUTH",
+ "level": 17
+ },
+ {
+ "move": "MUD_SPORT",
+ "level": 21
+ },
+ {
+ "move": "PIN_MISSILE",
+ "level": 25
+ },
+ {
+ "move": "COVET",
+ "level": 29
+ },
+ {
+ "move": "FLAIL",
+ "level": 33
+ },
+ {
+ "move": "REST",
+ "level": 37
+ },
+ {
+ "move": "BELLY_DRUM",
+ "level": 41
+ },
+ {
+ "move": "FLING",
+ "level": 45
+ }
+ ]
+ },
+ {
+ "species": "LINOONE",
+ "moves": [
+ {
+ "move": "SWITCHEROO",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "HEADBUTT",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 5
+ },
+ {
+ "move": "HEADBUTT",
+ "level": 9
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 13
+ },
+ {
+ "move": "ODOR_SLEUTH",
+ "level": 17
+ },
+ {
+ "move": "MUD_SPORT",
+ "level": 23
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 29
+ },
+ {
+ "move": "COVET",
+ "level": 35
+ },
+ {
+ "move": "SLASH",
+ "level": 41
+ },
+ {
+ "move": "REST",
+ "level": 47
+ },
+ {
+ "move": "BELLY_DRUM",
+ "level": 53
+ },
+ {
+ "move": "FLING",
+ "level": 59
+ }
+ ]
+ },
+ {
+ "species": "WURMPLE",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "STRING_SHOT",
+ "level": 1
+ },
+ {
+ "move": "POISON_STING",
+ "level": 5
+ }
+ ]
+ },
+ {
+ "species": "SILCOON",
+ "moves": [
+ {
+ "move": "HARDEN",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 7
+ }
+ ]
+ },
+ {
+ "species": "BEAUTIFLY",
+ "moves": [
+ {
+ "move": "ABSORB",
+ "level": 1
+ },
+ {
+ "move": "ABSORB",
+ "level": 10
+ },
+ {
+ "move": "GUST",
+ "level": 13
+ },
+ {
+ "move": "STUN_SPORE",
+ "level": 17
+ },
+ {
+ "move": "MORNING_SUN",
+ "level": 20
+ },
+ {
+ "move": "MEGA_DRAIN",
+ "level": 24
+ },
+ {
+ "move": "WHIRLWIND",
+ "level": 27
+ },
+ {
+ "move": "ATTRACT",
+ "level": 31
+ },
+ {
+ "move": "SILVER_WIND",
+ "level": 34
+ },
+ {
+ "move": "GIGA_DRAIN",
+ "level": 38
+ },
+ {
+ "move": "BUG_BUZZ",
+ "level": 41
+ }
+ ]
+ },
+ {
+ "species": "CASCOON",
+ "moves": [
+ {
+ "move": "HARDEN",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 7
+ }
+ ]
+ },
+ {
+ "species": "DUSTOX",
+ "moves": [
+ {
+ "move": "CONFUSION",
+ "level": 1
+ },
+ {
+ "move": "CONFUSION",
+ "level": 10
+ },
+ {
+ "move": "GUST",
+ "level": 13
+ },
+ {
+ "move": "PROTECT",
+ "level": 17
+ },
+ {
+ "move": "MOONLIGHT",
+ "level": 20
+ },
+ {
+ "move": "PSYBEAM",
+ "level": 24
+ },
+ {
+ "move": "WHIRLWIND",
+ "level": 27
+ },
+ {
+ "move": "LIGHT_SCREEN",
+ "level": 31
+ },
+ {
+ "move": "SILVER_WIND",
+ "level": 34
+ },
+ {
+ "move": "TOXIC",
+ "level": 38
+ },
+ {
+ "move": "BUG_BUZZ",
+ "level": 41
+ }
+ ]
+ },
+ {
+ "species": "LOTAD",
+ "moves": [
+ {
+ "move": "ASTONISH",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 3
+ },
+ {
+ "move": "ABSORB",
+ "level": 5
+ },
+ {
+ "move": "NATURE_POWER",
+ "level": 7
+ },
+ {
+ "move": "MIST",
+ "level": 11
+ },
+ {
+ "move": "NATURAL_GIFT",
+ "level": 15
+ },
+ {
+ "move": "MEGA_DRAIN",
+ "level": 19
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 27
+ },
+ {
+ "move": "RAIN_DANCE",
+ "level": 35
+ },
+ {
+ "move": "ENERGY_BALL",
+ "level": 43
+ }
+ ]
+ },
+ {
+ "species": "LOMBRE",
+ "moves": [
+ {
+ "move": "ASTONISH",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 3
+ },
+ {
+ "move": "ABSORB",
+ "level": 5
+ },
+ {
+ "move": "NATURE_POWER",
+ "level": 7
+ },
+ {
+ "move": "FAKE_OUT",
+ "level": 11
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 15
+ },
+ {
+ "move": "WATER_SPORT",
+ "level": 19
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 27
+ },
+ {
+ "move": "UPROAR",
+ "level": 35
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 43
+ }
+ ]
+ },
+ {
+ "species": "LUDICOLO",
+ "moves": [
+ {
+ "move": "ASTONISH",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "MEGA_DRAIN",
+ "level": 1
+ },
+ {
+ "move": "NATURE_POWER",
+ "level": 1
+ }
+ ]
+ },
+ {
+ "species": "SEEDOT",
+ "moves": [
+ {
+ "move": "BIDE",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 3
+ },
+ {
+ "move": "GROWTH",
+ "level": 7
+ },
+ {
+ "move": "NATURE_POWER",
+ "level": 13
+ },
+ {
+ "move": "SYNTHESIS",
+ "level": 21
+ },
+ {
+ "move": "SUNNY_DAY",
+ "level": 31
+ },
+ {
+ "move": "EXPLOSION",
+ "level": 43
+ }
+ ]
+ },
+ {
+ "species": "NUZLEAF",
+ "moves": [
+ {
+ "move": "RAZOR_LEAF",
+ "level": 1
+ },
+ {
+ "move": "POUND",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 3
+ },
+ {
+ "move": "GROWTH",
+ "level": 7
+ },
+ {
+ "move": "NATURE_POWER",
+ "level": 13
+ },
+ {
+ "move": "FAKE_OUT",
+ "level": 19
+ },
+ {
+ "move": "TORMENT",
+ "level": 25
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 31
+ },
+ {
+ "move": "RAZOR_WIND",
+ "level": 37
+ },
+ {
+ "move": "SWAGGER",
+ "level": 43
+ },
+ {
+ "move": "EXTRASENSORY",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "SHIFTRY",
+ "moves": [
+ {
+ "move": "FEINT_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "WHIRLWIND",
+ "level": 1
+ },
+ {
+ "move": "NASTY_PLOT",
+ "level": 1
+ },
+ {
+ "move": "RAZOR_LEAF",
+ "level": 1
+ },
+ {
+ "move": "LEAF_STORM",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "TAILLOW",
+ "moves": [
+ {
+ "move": "PECK",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 4
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 8
+ },
+ {
+ "move": "WING_ATTACK",
+ "level": 13
+ },
+ {
+ "move": "DOUBLE_TEAM",
+ "level": 19
+ },
+ {
+ "move": "ENDEAVOR",
+ "level": 26
+ },
+ {
+ "move": "AERIAL_ACE",
+ "level": 34
+ },
+ {
+ "move": "AGILITY",
+ "level": 43
+ },
+ {
+ "move": "AIR_SLASH",
+ "level": 53
+ }
+ ]
+ },
+ {
+ "species": "SWELLOW",
+ "moves": [
+ {
+ "move": "PLUCK",
+ "level": 1
+ },
+ {
+ "move": "PECK",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 4
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 8
+ },
+ {
+ "move": "WING_ATTACK",
+ "level": 13
+ },
+ {
+ "move": "DOUBLE_TEAM",
+ "level": 19
+ },
+ {
+ "move": "ENDEAVOR",
+ "level": 28
+ },
+ {
+ "move": "AERIAL_ACE",
+ "level": 38
+ },
+ {
+ "move": "AGILITY",
+ "level": 49
+ },
+ {
+ "move": "AIR_SLASH",
+ "level": 61
+ }
+ ]
+ },
+ {
+ "species": "WINGULL",
+ "moves": [
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 1
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 6
+ },
+ {
+ "move": "WING_ATTACK",
+ "level": 11
+ },
+ {
+ "move": "MIST",
+ "level": 16
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 19
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 24
+ },
+ {
+ "move": "ROOST",
+ "level": 29
+ },
+ {
+ "move": "PURSUIT",
+ "level": 34
+ },
+ {
+ "move": "AGILITY",
+ "level": 37
+ },
+ {
+ "move": "AERIAL_ACE",
+ "level": 42
+ },
+ {
+ "move": "AIR_SLASH",
+ "level": 47
+ }
+ ]
+ },
+ {
+ "species": "PELIPPER",
+ "moves": [
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 1
+ },
+ {
+ "move": "WATER_SPORT",
+ "level": 1
+ },
+ {
+ "move": "WING_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 6
+ },
+ {
+ "move": "WING_ATTACK",
+ "level": 11
+ },
+ {
+ "move": "MIST",
+ "level": 16
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 19
+ },
+ {
+ "move": "PAYBACK",
+ "level": 24
+ },
+ {
+ "move": "PROTECT",
+ "level": 25
+ },
+ {
+ "move": "ROOST",
+ "level": 31
+ },
+ {
+ "move": "STOCKPILE",
+ "level": 38
+ },
+ {
+ "move": "SWALLOW",
+ "level": 38
+ },
+ {
+ "move": "SPIT_UP",
+ "level": 38
+ },
+ {
+ "move": "FLING",
+ "level": 43
+ },
+ {
+ "move": "TAILWIND",
+ "level": 50
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 57
+ }
+ ]
+ },
+ {
+ "species": "RALTS",
+ "moves": [
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "CONFUSION",
+ "level": 6
+ },
+ {
+ "move": "DOUBLE_TEAM",
+ "level": 10
+ },
+ {
+ "move": "TELEPORT",
+ "level": 12
+ },
+ {
+ "move": "LUCKY_CHANT",
+ "level": 17
+ },
+ {
+ "move": "MAGICAL_LEAF",
+ "level": 21
+ },
+ {
+ "move": "CALM_MIND",
+ "level": 23
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 28
+ },
+ {
+ "move": "IMPRISON",
+ "level": 32
+ },
+ {
+ "move": "FUTURE_SIGHT",
+ "level": 34
+ },
+ {
+ "move": "CHARM",
+ "level": 39
+ },
+ {
+ "move": "HYPNOSIS",
+ "level": 43
+ },
+ {
+ "move": "DREAM_EATER",
+ "level": 45
+ }
+ ]
+ },
+ {
+ "species": "KIRLIA",
+ "moves": [
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "CONFUSION",
+ "level": 1
+ },
+ {
+ "move": "DOUBLE_TEAM",
+ "level": 1
+ },
+ {
+ "move": "TELEPORT",
+ "level": 1
+ },
+ {
+ "move": "CONFUSION",
+ "level": 6
+ },
+ {
+ "move": "DOUBLE_TEAM",
+ "level": 10
+ },
+ {
+ "move": "TELEPORT",
+ "level": 12
+ },
+ {
+ "move": "LUCKY_CHANT",
+ "level": 17
+ },
+ {
+ "move": "MAGICAL_LEAF",
+ "level": 22
+ },
+ {
+ "move": "CALM_MIND",
+ "level": 25
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 31
+ },
+ {
+ "move": "IMPRISON",
+ "level": 36
+ },
+ {
+ "move": "FUTURE_SIGHT",
+ "level": 39
+ },
+ {
+ "move": "CHARM",
+ "level": 45
+ },
+ {
+ "move": "HYPNOSIS",
+ "level": 50
+ },
+ {
+ "move": "DREAM_EATER",
+ "level": 53
+ }
+ ]
+ },
+ {
+ "species": "GARDEVOIR",
+ "moves": [
+ {
+ "move": "HEALING_WISH",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "CONFUSION",
+ "level": 1
+ },
+ {
+ "move": "DOUBLE_TEAM",
+ "level": 1
+ },
+ {
+ "move": "TELEPORT",
+ "level": 1
+ },
+ {
+ "move": "CONFUSION",
+ "level": 6
+ },
+ {
+ "move": "DOUBLE_TEAM",
+ "level": 10
+ },
+ {
+ "move": "TELEPORT",
+ "level": 12
+ },
+ {
+ "move": "WISH",
+ "level": 17
+ },
+ {
+ "move": "MAGICAL_LEAF",
+ "level": 22
+ },
+ {
+ "move": "CALM_MIND",
+ "level": 25
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 33
+ },
+ {
+ "move": "IMPRISON",
+ "level": 40
+ },
+ {
+ "move": "FUTURE_SIGHT",
+ "level": 45
+ },
+ {
+ "move": "CAPTIVATE",
+ "level": 53
+ },
+ {
+ "move": "HYPNOSIS",
+ "level": 60
+ },
+ {
+ "move": "DREAM_EATER",
+ "level": 65
+ }
+ ]
+ },
+ {
+ "species": "SURSKIT",
+ "moves": [
+ {
+ "move": "BUBBLE",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 7
+ },
+ {
+ "move": "SWEET_SCENT",
+ "level": 13
+ },
+ {
+ "move": "WATER_SPORT",
+ "level": 19
+ },
+ {
+ "move": "BUBBLE_BEAM",
+ "level": 25
+ },
+ {
+ "move": "AGILITY",
+ "level": 31
+ },
+ {
+ "move": "MIST",
+ "level": 37
+ },
+ {
+ "move": "HAZE",
+ "level": 37
+ },
+ {
+ "move": "BATON_PASS",
+ "level": 43
+ }
+ ]
+ },
+ {
+ "species": "MASQUERAIN",
+ "moves": [
+ {
+ "move": "OMINOUS_WIND",
+ "level": 1
+ },
+ {
+ "move": "BUBBLE",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "SWEET_SCENT",
+ "level": 1
+ },
+ {
+ "move": "WATER_SPORT",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 7
+ },
+ {
+ "move": "SWEET_SCENT",
+ "level": 13
+ },
+ {
+ "move": "WATER_SPORT",
+ "level": 19
+ },
+ {
+ "move": "GUST",
+ "level": 22
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 26
+ },
+ {
+ "move": "STUN_SPORE",
+ "level": 33
+ },
+ {
+ "move": "SILVER_WIND",
+ "level": 40
+ },
+ {
+ "move": "AIR_SLASH",
+ "level": 47
+ },
+ {
+ "move": "WHIRLWIND",
+ "level": 54
+ },
+ {
+ "move": "BUG_BUZZ",
+ "level": 61
+ }
+ ]
+ },
+ {
+ "species": "SHROOMISH",
+ "moves": [
+ {
+ "move": "ABSORB",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 5
+ },
+ {
+ "move": "STUN_SPORE",
+ "level": 9
+ },
+ {
+ "move": "LEECH_SEED",
+ "level": 13
+ },
+ {
+ "move": "MEGA_DRAIN",
+ "level": 17
+ },
+ {
+ "move": "HEADBUTT",
+ "level": 21
+ },
+ {
+ "move": "POISON_POWDER",
+ "level": 25
+ },
+ {
+ "move": "WORRY_SEED",
+ "level": 29
+ },
+ {
+ "move": "GROWTH",
+ "level": 33
+ },
+ {
+ "move": "GIGA_DRAIN",
+ "level": 37
+ },
+ {
+ "move": "SEED_BOMB",
+ "level": 41
+ },
+ {
+ "move": "SPORE",
+ "level": 45
+ }
+ ]
+ },
+ {
+ "species": "BRELOOM",
+ "moves": [
+ {
+ "move": "ABSORB",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "STUN_SPORE",
+ "level": 1
+ },
+ {
+ "move": "LEECH_SEED",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 5
+ },
+ {
+ "move": "STUN_SPORE",
+ "level": 9
+ },
+ {
+ "move": "LEECH_SEED",
+ "level": 13
+ },
+ {
+ "move": "MEGA_DRAIN",
+ "level": 17
+ },
+ {
+ "move": "HEADBUTT",
+ "level": 21
+ },
+ {
+ "move": "MACH_PUNCH",
+ "level": 23
+ },
+ {
+ "move": "COUNTER",
+ "level": 25
+ },
+ {
+ "move": "FORCE_PALM",
+ "level": 29
+ },
+ {
+ "move": "SKY_UPPERCUT",
+ "level": 33
+ },
+ {
+ "move": "MIND_READER",
+ "level": 37
+ },
+ {
+ "move": "SEED_BOMB",
+ "level": 41
+ },
+ {
+ "move": "DYNAMIC_PUNCH",
+ "level": 45
+ }
+ ]
+ },
+ {
+ "species": "SLAKOTH",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "YAWN",
+ "level": 1
+ },
+ {
+ "move": "ENCORE",
+ "level": 7
+ },
+ {
+ "move": "SLACK_OFF",
+ "level": 13
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 19
+ },
+ {
+ "move": "AMNESIA",
+ "level": 25
+ },
+ {
+ "move": "COVET",
+ "level": 31
+ },
+ {
+ "move": "COUNTER",
+ "level": 37
+ },
+ {
+ "move": "FLAIL",
+ "level": 43
+ }
+ ]
+ },
+ {
+ "species": "VIGOROTH",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 1
+ },
+ {
+ "move": "ENCORE",
+ "level": 1
+ },
+ {
+ "move": "UPROAR",
+ "level": 1
+ },
+ {
+ "move": "ENCORE",
+ "level": 7
+ },
+ {
+ "move": "UPROAR",
+ "level": 13
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 19
+ },
+ {
+ "move": "ENDURE",
+ "level": 25
+ },
+ {
+ "move": "SLASH",
+ "level": 31
+ },
+ {
+ "move": "COUNTER",
+ "level": 37
+ },
+ {
+ "move": "FOCUS_PUNCH",
+ "level": 43
+ },
+ {
+ "move": "REVERSAL",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "SLAKING",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "YAWN",
+ "level": 1
+ },
+ {
+ "move": "ENCORE",
+ "level": 1
+ },
+ {
+ "move": "SLACK_OFF",
+ "level": 1
+ },
+ {
+ "move": "ENCORE",
+ "level": 7
+ },
+ {
+ "move": "SLACK_OFF",
+ "level": 13
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 19
+ },
+ {
+ "move": "AMNESIA",
+ "level": 25
+ },
+ {
+ "move": "COVET",
+ "level": 31
+ },
+ {
+ "move": "SWAGGER",
+ "level": 36
+ },
+ {
+ "move": "COUNTER",
+ "level": 37
+ },
+ {
+ "move": "FLAIL",
+ "level": 43
+ },
+ {
+ "move": "FLING",
+ "level": 49
+ },
+ {
+ "move": "PUNISHMENT",
+ "level": 55
+ },
+ {
+ "move": "HAMMER_ARM",
+ "level": 61
+ }
+ ]
+ },
+ {
+ "species": "NINCADA",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 1
+ },
+ {
+ "move": "LEECH_LIFE",
+ "level": 5
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 9
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 14
+ },
+ {
+ "move": "MIND_READER",
+ "level": 19
+ },
+ {
+ "move": "FALSE_SWIPE",
+ "level": 25
+ },
+ {
+ "move": "MUD_SLAP",
+ "level": 31
+ },
+ {
+ "move": "METAL_CLAW",
+ "level": 38
+ },
+ {
+ "move": "DIG",
+ "level": 45
+ }
+ ]
+ },
+ {
+ "species": "NINJASK",
+ "moves": [
+ {
+ "move": "BUG_BITE",
+ "level": 1
+ },
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 1
+ },
+ {
+ "move": "LEECH_LIFE",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "LEECH_LIFE",
+ "level": 5
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 9
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 14
+ },
+ {
+ "move": "MIND_READER",
+ "level": 19
+ },
+ {
+ "move": "DOUBLE_TEAM",
+ "level": 20
+ },
+ {
+ "move": "FURY_CUTTER",
+ "level": 20
+ },
+ {
+ "move": "SCREECH",
+ "level": 20
+ },
+ {
+ "move": "SWORDS_DANCE",
+ "level": 25
+ },
+ {
+ "move": "SLASH",
+ "level": 31
+ },
+ {
+ "move": "AGILITY",
+ "level": 38
+ },
+ {
+ "move": "BATON_PASS",
+ "level": 45
+ },
+ {
+ "move": "X_SCISSOR",
+ "level": 52
+ }
+ ]
+ },
+ {
+ "species": "SHEDINJA",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 1
+ },
+ {
+ "move": "LEECH_LIFE",
+ "level": 5
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 9
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 14
+ },
+ {
+ "move": "MIND_READER",
+ "level": 19
+ },
+ {
+ "move": "SPITE",
+ "level": 25
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 31
+ },
+ {
+ "move": "SHADOW_SNEAK",
+ "level": 38
+ },
+ {
+ "move": "GRUDGE",
+ "level": 45
+ },
+ {
+ "move": "HEAL_BLOCK",
+ "level": 52
+ },
+ {
+ "move": "SHADOW_BALL",
+ "level": 59
+ }
+ ]
+ },
+ {
+ "species": "WHISMUR",
+ "moves": [
+ {
+ "move": "POUND",
+ "level": 1
+ },
+ {
+ "move": "UPROAR",
+ "level": 5
+ },
+ {
+ "move": "ASTONISH",
+ "level": 11
+ },
+ {
+ "move": "HOWL",
+ "level": 15
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 21
+ },
+ {
+ "move": "STOMP",
+ "level": 25
+ },
+ {
+ "move": "SCREECH",
+ "level": 31
+ },
+ {
+ "move": "ROAR",
+ "level": 35
+ },
+ {
+ "move": "REST",
+ "level": 41
+ },
+ {
+ "move": "SLEEP_TALK",
+ "level": 41
+ },
+ {
+ "move": "HYPER_VOICE",
+ "level": 45
+ }
+ ]
+ },
+ {
+ "species": "LOUDRED",
+ "moves": [
+ {
+ "move": "POUND",
+ "level": 1
+ },
+ {
+ "move": "UPROAR",
+ "level": 1
+ },
+ {
+ "move": "ASTONISH",
+ "level": 1
+ },
+ {
+ "move": "HOWL",
+ "level": 1
+ },
+ {
+ "move": "UPROAR",
+ "level": 5
+ },
+ {
+ "move": "ASTONISH",
+ "level": 11
+ },
+ {
+ "move": "HOWL",
+ "level": 15
+ },
+ {
+ "move": "BITE",
+ "level": 20
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 23
+ },
+ {
+ "move": "STOMP",
+ "level": 29
+ },
+ {
+ "move": "SCREECH",
+ "level": 37
+ },
+ {
+ "move": "ROAR",
+ "level": 43
+ },
+ {
+ "move": "REST",
+ "level": 51
+ },
+ {
+ "move": "SLEEP_TALK",
+ "level": 51
+ },
+ {
+ "move": "HYPER_VOICE",
+ "level": 57
+ }
+ ]
+ },
+ {
+ "species": "EXPLOUD",
+ "moves": [
+ {
+ "move": "ICE_FANG",
+ "level": 1
+ },
+ {
+ "move": "FIRE_FANG",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_FANG",
+ "level": 1
+ },
+ {
+ "move": "POUND",
+ "level": 1
+ },
+ {
+ "move": "UPROAR",
+ "level": 1
+ },
+ {
+ "move": "ASTONISH",
+ "level": 1
+ },
+ {
+ "move": "HOWL",
+ "level": 1
+ },
+ {
+ "move": "UPROAR",
+ "level": 5
+ },
+ {
+ "move": "ASTONISH",
+ "level": 11
+ },
+ {
+ "move": "HOWL",
+ "level": 15
+ },
+ {
+ "move": "BITE",
+ "level": 20
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 23
+ },
+ {
+ "move": "STOMP",
+ "level": 29
+ },
+ {
+ "move": "SCREECH",
+ "level": 37
+ },
+ {
+ "move": "CRUNCH",
+ "level": 40
+ },
+ {
+ "move": "ROAR",
+ "level": 45
+ },
+ {
+ "move": "REST",
+ "level": 55
+ },
+ {
+ "move": "SLEEP_TALK",
+ "level": 55
+ },
+ {
+ "move": "HYPER_VOICE",
+ "level": 63
+ },
+ {
+ "move": "HYPER_BEAM",
+ "level": 71
+ }
+ ]
+ },
+ {
+ "species": "MAKUHITA",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 4
+ },
+ {
+ "move": "ARM_THRUST",
+ "level": 7
+ },
+ {
+ "move": "VITAL_THROW",
+ "level": 10
+ },
+ {
+ "move": "FAKE_OUT",
+ "level": 13
+ },
+ {
+ "move": "WHIRLWIND",
+ "level": 16
+ },
+ {
+ "move": "KNOCK_OFF",
+ "level": 19
+ },
+ {
+ "move": "SMELLING_SALTS",
+ "level": 22
+ },
+ {
+ "move": "BELLY_DRUM",
+ "level": 25
+ },
+ {
+ "move": "FORCE_PALM",
+ "level": 28
+ },
+ {
+ "move": "SEISMIC_TOSS",
+ "level": 31
+ },
+ {
+ "move": "WAKE_UP_SLAP",
+ "level": 34
+ },
+ {
+ "move": "ENDURE",
+ "level": 37
+ },
+ {
+ "move": "CLOSE_COMBAT",
+ "level": 40
+ },
+ {
+ "move": "REVERSAL",
+ "level": 43
+ }
+ ]
+ },
+ {
+ "species": "HARIYAMA",
+ "moves": [
+ {
+ "move": "BRINE",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "ARM_THRUST",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 4
+ },
+ {
+ "move": "ARM_THRUST",
+ "level": 7
+ },
+ {
+ "move": "VITAL_THROW",
+ "level": 10
+ },
+ {
+ "move": "FAKE_OUT",
+ "level": 13
+ },
+ {
+ "move": "WHIRLWIND",
+ "level": 16
+ },
+ {
+ "move": "KNOCK_OFF",
+ "level": 19
+ },
+ {
+ "move": "SMELLING_SALTS",
+ "level": 22
+ },
+ {
+ "move": "BELLY_DRUM",
+ "level": 27
+ },
+ {
+ "move": "FORCE_PALM",
+ "level": 32
+ },
+ {
+ "move": "SEISMIC_TOSS",
+ "level": 37
+ },
+ {
+ "move": "WAKE_UP_SLAP",
+ "level": 42
+ },
+ {
+ "move": "ENDURE",
+ "level": 47
+ },
+ {
+ "move": "CLOSE_COMBAT",
+ "level": 52
+ },
+ {
+ "move": "REVERSAL",
+ "level": 57
+ }
+ ]
+ },
+ {
+ "species": "AZURILL",
+ "moves": [
+ {
+ "move": "SPLASH",
+ "level": 1
+ },
+ {
+ "move": "CHARM",
+ "level": 2
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 7
+ },
+ {
+ "move": "BUBBLE",
+ "level": 10
+ },
+ {
+ "move": "SLAM",
+ "level": 15
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 18
+ }
+ ]
+ },
+ {
+ "species": "NOSEPASS",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 7
+ },
+ {
+ "move": "ROCK_THROW",
+ "level": 13
+ },
+ {
+ "move": "BLOCK",
+ "level": 19
+ },
+ {
+ "move": "THUNDER_WAVE",
+ "level": 25
+ },
+ {
+ "move": "ROCK_SLIDE",
+ "level": 31
+ },
+ {
+ "move": "SANDSTORM",
+ "level": 37
+ },
+ {
+ "move": "REST",
+ "level": 43
+ },
+ {
+ "move": "DISCHARGE",
+ "level": 49
+ },
+ {
+ "move": "STONE_EDGE",
+ "level": 55
+ },
+ {
+ "move": "ZAP_CANNON",
+ "level": 61
+ },
+ {
+ "move": "LOCK_ON",
+ "level": 67
+ },
+ {
+ "move": "EARTH_POWER",
+ "level": 73
+ }
+ ]
+ },
+ {
+ "species": "SKITTY",
+ "moves": [
+ {
+ "move": "FAKE_OUT",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "ATTRACT",
+ "level": 4
+ },
+ {
+ "move": "SING",
+ "level": 8
+ },
+ {
+ "move": "COPYCAT",
+ "level": 11
+ },
+ {
+ "move": "DOUBLE_SLAP",
+ "level": 15
+ },
+ {
+ "move": "ASSIST",
+ "level": 18
+ },
+ {
+ "move": "CHARM",
+ "level": 22
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 25
+ },
+ {
+ "move": "WAKE_UP_SLAP",
+ "level": 29
+ },
+ {
+ "move": "COVET",
+ "level": 32
+ },
+ {
+ "move": "HEAL_BELL",
+ "level": 36
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 39
+ },
+ {
+ "move": "CAPTIVATE",
+ "level": 42
+ }
+ ]
+ },
+ {
+ "species": "DELCATTY",
+ "moves": [
+ {
+ "move": "FAKE_OUT",
+ "level": 1
+ },
+ {
+ "move": "ATTRACT",
+ "level": 1
+ },
+ {
+ "move": "SING",
+ "level": 1
+ },
+ {
+ "move": "DOUBLE_SLAP",
+ "level": 1
+ }
+ ]
+ },
+ {
+ "species": "SABLEYE",
+ "moves": [
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "FORESIGHT",
+ "level": 4
+ },
+ {
+ "move": "NIGHT_SHADE",
+ "level": 8
+ },
+ {
+ "move": "ASTONISH",
+ "level": 11
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 15
+ },
+ {
+ "move": "FAKE_OUT",
+ "level": 18
+ },
+ {
+ "move": "DETECT",
+ "level": 22
+ },
+ {
+ "move": "SHADOW_SNEAK",
+ "level": 25
+ },
+ {
+ "move": "KNOCK_OFF",
+ "level": 29
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 32
+ },
+ {
+ "move": "PUNISHMENT",
+ "level": 36
+ },
+ {
+ "move": "SHADOW_CLAW",
+ "level": 39
+ },
+ {
+ "move": "POWER_GEM",
+ "level": 43
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 46
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 50
+ },
+ {
+ "move": "SHADOW_BALL",
+ "level": 53
+ },
+ {
+ "move": "MEAN_LOOK",
+ "level": 57
+ }
+ ]
+ },
+ {
+ "species": "MAWILE",
+ "moves": [
+ {
+ "move": "ASTONISH",
+ "level": 1
+ },
+ {
+ "move": "FAKE_TEARS",
+ "level": 6
+ },
+ {
+ "move": "BITE",
+ "level": 11
+ },
+ {
+ "move": "SWEET_SCENT",
+ "level": 16
+ },
+ {
+ "move": "VISE_GRIP",
+ "level": 21
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 26
+ },
+ {
+ "move": "BATON_PASS",
+ "level": 31
+ },
+ {
+ "move": "CRUNCH",
+ "level": 36
+ },
+ {
+ "move": "IRON_DEFENSE",
+ "level": 41
+ },
+ {
+ "move": "SUCKER_PUNCH",
+ "level": 46
+ },
+ {
+ "move": "STOCKPILE",
+ "level": 51
+ },
+ {
+ "move": "SWALLOW",
+ "level": 51
+ },
+ {
+ "move": "SPIT_UP",
+ "level": 51
+ },
+ {
+ "move": "IRON_HEAD",
+ "level": 56
+ }
+ ]
+ },
+ {
+ "species": "ARON",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 4
+ },
+ {
+ "move": "MUD_SLAP",
+ "level": 8
+ },
+ {
+ "move": "HEADBUTT",
+ "level": 11
+ },
+ {
+ "move": "METAL_CLAW",
+ "level": 15
+ },
+ {
+ "move": "IRON_DEFENSE",
+ "level": 18
+ },
+ {
+ "move": "ROAR",
+ "level": 22
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 25
+ },
+ {
+ "move": "IRON_HEAD",
+ "level": 29
+ },
+ {
+ "move": "PROTECT",
+ "level": 32
+ },
+ {
+ "move": "METAL_SOUND",
+ "level": 36
+ },
+ {
+ "move": "IRON_TAIL",
+ "level": 39
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 43
+ },
+ {
+ "move": "METAL_BURST",
+ "level": 46
+ }
+ ]
+ },
+ {
+ "species": "LAIRON",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 1
+ },
+ {
+ "move": "MUD_SLAP",
+ "level": 1
+ },
+ {
+ "move": "HEADBUTT",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 4
+ },
+ {
+ "move": "MUD_SLAP",
+ "level": 8
+ },
+ {
+ "move": "HEADBUTT",
+ "level": 11
+ },
+ {
+ "move": "METAL_CLAW",
+ "level": 15
+ },
+ {
+ "move": "IRON_DEFENSE",
+ "level": 18
+ },
+ {
+ "move": "ROAR",
+ "level": 22
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 25
+ },
+ {
+ "move": "IRON_HEAD",
+ "level": 29
+ },
+ {
+ "move": "PROTECT",
+ "level": 34
+ },
+ {
+ "move": "METAL_SOUND",
+ "level": 40
+ },
+ {
+ "move": "IRON_TAIL",
+ "level": 45
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 51
+ },
+ {
+ "move": "METAL_BURST",
+ "level": 56
+ }
+ ]
+ },
+ {
+ "species": "AGGRON",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 1
+ },
+ {
+ "move": "MUD_SLAP",
+ "level": 1
+ },
+ {
+ "move": "HEADBUTT",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 4
+ },
+ {
+ "move": "MUD_SLAP",
+ "level": 8
+ },
+ {
+ "move": "HEADBUTT",
+ "level": 11
+ },
+ {
+ "move": "METAL_CLAW",
+ "level": 15
+ },
+ {
+ "move": "IRON_DEFENSE",
+ "level": 18
+ },
+ {
+ "move": "ROAR",
+ "level": 22
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 25
+ },
+ {
+ "move": "IRON_HEAD",
+ "level": 29
+ },
+ {
+ "move": "PROTECT",
+ "level": 34
+ },
+ {
+ "move": "METAL_SOUND",
+ "level": 40
+ },
+ {
+ "move": "IRON_TAIL",
+ "level": 48
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 57
+ },
+ {
+ "move": "METAL_BURST",
+ "level": 65
+ }
+ ]
+ },
+ {
+ "species": "MEDITITE",
+ "moves": [
+ {
+ "move": "BIDE",
+ "level": 1
+ },
+ {
+ "move": "MEDITATE",
+ "level": 4
+ },
+ {
+ "move": "CONFUSION",
+ "level": 8
+ },
+ {
+ "move": "DETECT",
+ "level": 11
+ },
+ {
+ "move": "HIDDEN_POWER",
+ "level": 15
+ },
+ {
+ "move": "MIND_READER",
+ "level": 18
+ },
+ {
+ "move": "FEINT",
+ "level": 22
+ },
+ {
+ "move": "CALM_MIND",
+ "level": 25
+ },
+ {
+ "move": "FORCE_PALM",
+ "level": 29
+ },
+ {
+ "move": "HIGH_JUMP_KICK",
+ "level": 32
+ },
+ {
+ "move": "PSYCH_UP",
+ "level": 36
+ },
+ {
+ "move": "POWER_TRICK",
+ "level": 39
+ },
+ {
+ "move": "REVERSAL",
+ "level": 43
+ },
+ {
+ "move": "RECOVER",
+ "level": 46
+ }
+ ]
+ },
+ {
+ "species": "MEDICHAM",
+ "moves": [
+ {
+ "move": "FIRE_PUNCH",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_PUNCH",
+ "level": 1
+ },
+ {
+ "move": "ICE_PUNCH",
+ "level": 1
+ },
+ {
+ "move": "BIDE",
+ "level": 1
+ },
+ {
+ "move": "MEDITATE",
+ "level": 1
+ },
+ {
+ "move": "CONFUSION",
+ "level": 1
+ },
+ {
+ "move": "DETECT",
+ "level": 1
+ },
+ {
+ "move": "MEDITATE",
+ "level": 4
+ },
+ {
+ "move": "CONFUSION",
+ "level": 8
+ },
+ {
+ "move": "DETECT",
+ "level": 11
+ },
+ {
+ "move": "HIDDEN_POWER",
+ "level": 15
+ },
+ {
+ "move": "MIND_READER",
+ "level": 18
+ },
+ {
+ "move": "FEINT",
+ "level": 22
+ },
+ {
+ "move": "CALM_MIND",
+ "level": 25
+ },
+ {
+ "move": "FORCE_PALM",
+ "level": 29
+ },
+ {
+ "move": "HIGH_JUMP_KICK",
+ "level": 32
+ },
+ {
+ "move": "PSYCH_UP",
+ "level": 36
+ },
+ {
+ "move": "POWER_TRICK",
+ "level": 42
+ },
+ {
+ "move": "REVERSAL",
+ "level": 49
+ },
+ {
+ "move": "RECOVER",
+ "level": 55
+ }
+ ]
+ },
+ {
+ "species": "ELECTRIKE",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_WAVE",
+ "level": 4
+ },
+ {
+ "move": "LEER",
+ "level": 9
+ },
+ {
+ "move": "HOWL",
+ "level": 12
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 17
+ },
+ {
+ "move": "SPARK",
+ "level": 20
+ },
+ {
+ "move": "ODOR_SLEUTH",
+ "level": 25
+ },
+ {
+ "move": "BITE",
+ "level": 28
+ },
+ {
+ "move": "THUNDER_FANG",
+ "level": 33
+ },
+ {
+ "move": "ROAR",
+ "level": 36
+ },
+ {
+ "move": "DISCHARGE",
+ "level": 41
+ },
+ {
+ "move": "CHARGE",
+ "level": 44
+ },
+ {
+ "move": "THUNDER",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "MANECTRIC",
+ "moves": [
+ {
+ "move": "FIRE_FANG",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_WAVE",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "HOWL",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_WAVE",
+ "level": 4
+ },
+ {
+ "move": "LEER",
+ "level": 9
+ },
+ {
+ "move": "HOWL",
+ "level": 12
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 17
+ },
+ {
+ "move": "SPARK",
+ "level": 20
+ },
+ {
+ "move": "ODOR_SLEUTH",
+ "level": 25
+ },
+ {
+ "move": "BITE",
+ "level": 30
+ },
+ {
+ "move": "THUNDER_FANG",
+ "level": 37
+ },
+ {
+ "move": "ROAR",
+ "level": 42
+ },
+ {
+ "move": "DISCHARGE",
+ "level": 49
+ },
+ {
+ "move": "CHARGE",
+ "level": 54
+ },
+ {
+ "move": "THUNDER",
+ "level": 61
+ }
+ ]
+ },
+ {
+ "species": "PLUSLE",
+ "moves": [
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_WAVE",
+ "level": 3
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 7
+ },
+ {
+ "move": "HELPING_HAND",
+ "level": 10
+ },
+ {
+ "move": "SPARK",
+ "level": 15
+ },
+ {
+ "move": "ENCORE",
+ "level": 17
+ },
+ {
+ "move": "FAKE_TEARS",
+ "level": 21
+ },
+ {
+ "move": "COPYCAT",
+ "level": 24
+ },
+ {
+ "move": "SWIFT",
+ "level": 29
+ },
+ {
+ "move": "FAKE_TEARS",
+ "level": 31
+ },
+ {
+ "move": "CHARGE",
+ "level": 35
+ },
+ {
+ "move": "THUNDER",
+ "level": 38
+ },
+ {
+ "move": "BATON_PASS",
+ "level": 42
+ },
+ {
+ "move": "AGILITY",
+ "level": 44
+ },
+ {
+ "move": "LAST_RESORT",
+ "level": 48
+ },
+ {
+ "move": "NASTY_PLOT",
+ "level": 51
+ }
+ ]
+ },
+ {
+ "species": "MINUN",
+ "moves": [
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_WAVE",
+ "level": 3
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 7
+ },
+ {
+ "move": "HELPING_HAND",
+ "level": 10
+ },
+ {
+ "move": "SPARK",
+ "level": 15
+ },
+ {
+ "move": "ENCORE",
+ "level": 17
+ },
+ {
+ "move": "CHARM",
+ "level": 21
+ },
+ {
+ "move": "COPYCAT",
+ "level": 24
+ },
+ {
+ "move": "SWIFT",
+ "level": 29
+ },
+ {
+ "move": "FAKE_TEARS",
+ "level": 31
+ },
+ {
+ "move": "CHARGE",
+ "level": 35
+ },
+ {
+ "move": "THUNDER",
+ "level": 38
+ },
+ {
+ "move": "BATON_PASS",
+ "level": 42
+ },
+ {
+ "move": "AGILITY",
+ "level": 44
+ },
+ {
+ "move": "TRUMP_CARD",
+ "level": 48
+ },
+ {
+ "move": "NASTY_PLOT",
+ "level": 51
+ }
+ ]
+ },
+ {
+ "species": "VOLBEAT",
+ "moves": [
+ {
+ "move": "FLASH",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "DOUBLE_TEAM",
+ "level": 5
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 9
+ },
+ {
+ "move": "MOONLIGHT",
+ "level": 13
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 17
+ },
+ {
+ "move": "TAIL_GLOW",
+ "level": 21
+ },
+ {
+ "move": "SIGNAL_BEAM",
+ "level": 25
+ },
+ {
+ "move": "PROTECT",
+ "level": 29
+ },
+ {
+ "move": "HELPING_HAND",
+ "level": 33
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 37
+ },
+ {
+ "move": "BUG_BUZZ",
+ "level": 41
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 45
+ }
+ ]
+ },
+ {
+ "species": "ILLUMISE",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "SWEET_SCENT",
+ "level": 5
+ },
+ {
+ "move": "CHARM",
+ "level": 9
+ },
+ {
+ "move": "MOONLIGHT",
+ "level": 13
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 17
+ },
+ {
+ "move": "WISH",
+ "level": 21
+ },
+ {
+ "move": "ENCORE",
+ "level": 25
+ },
+ {
+ "move": "FLATTER",
+ "level": 29
+ },
+ {
+ "move": "HELPING_HAND",
+ "level": 33
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 37
+ },
+ {
+ "move": "BUG_BUZZ",
+ "level": 41
+ },
+ {
+ "move": "COVET",
+ "level": 45
+ }
+ ]
+ },
+ {
+ "species": "ROSELIA",
+ "moves": [
+ {
+ "move": "ABSORB",
+ "level": 1
+ },
+ {
+ "move": "GROWTH",
+ "level": 4
+ },
+ {
+ "move": "POISON_STING",
+ "level": 7
+ },
+ {
+ "move": "STUN_SPORE",
+ "level": 10
+ },
+ {
+ "move": "MEGA_DRAIN",
+ "level": 13
+ },
+ {
+ "move": "LEECH_SEED",
+ "level": 16
+ },
+ {
+ "move": "MAGICAL_LEAF",
+ "level": 19
+ },
+ {
+ "move": "GRASS_WHISTLE",
+ "level": 22
+ },
+ {
+ "move": "GIGA_DRAIN",
+ "level": 25
+ },
+ {
+ "move": "TOXIC_SPIKES",
+ "level": 28
+ },
+ {
+ "move": "SWEET_SCENT",
+ "level": 31
+ },
+ {
+ "move": "INGRAIN",
+ "level": 34
+ },
+ {
+ "move": "TOXIC",
+ "level": 37
+ },
+ {
+ "move": "PETAL_DANCE",
+ "level": 40
+ },
+ {
+ "move": "AROMATHERAPY",
+ "level": 43
+ },
+ {
+ "move": "SYNTHESIS",
+ "level": 46
+ }
+ ]
+ },
+ {
+ "species": "GULPIN",
+ "moves": [
+ {
+ "move": "POUND",
+ "level": 1
+ },
+ {
+ "move": "YAWN",
+ "level": 6
+ },
+ {
+ "move": "POISON_GAS",
+ "level": 9
+ },
+ {
+ "move": "SLUDGE",
+ "level": 14
+ },
+ {
+ "move": "AMNESIA",
+ "level": 17
+ },
+ {
+ "move": "ENCORE",
+ "level": 23
+ },
+ {
+ "move": "TOXIC",
+ "level": 28
+ },
+ {
+ "move": "STOCKPILE",
+ "level": 34
+ },
+ {
+ "move": "SPIT_UP",
+ "level": 34
+ },
+ {
+ "move": "SWALLOW",
+ "level": 34
+ },
+ {
+ "move": "SLUDGE_BOMB",
+ "level": 39
+ },
+ {
+ "move": "GASTRO_ACID",
+ "level": 44
+ },
+ {
+ "move": "WRING_OUT",
+ "level": 49
+ },
+ {
+ "move": "GUNK_SHOT",
+ "level": 54
+ }
+ ]
+ },
+ {
+ "species": "SWALOT",
+ "moves": [
+ {
+ "move": "POUND",
+ "level": 1
+ },
+ {
+ "move": "YAWN",
+ "level": 1
+ },
+ {
+ "move": "POISON_GAS",
+ "level": 1
+ },
+ {
+ "move": "SLUDGE",
+ "level": 1
+ },
+ {
+ "move": "YAWN",
+ "level": 6
+ },
+ {
+ "move": "POISON_GAS",
+ "level": 9
+ },
+ {
+ "move": "SLUDGE",
+ "level": 14
+ },
+ {
+ "move": "AMNESIA",
+ "level": 17
+ },
+ {
+ "move": "ENCORE",
+ "level": 23
+ },
+ {
+ "move": "BODY_SLAM",
+ "level": 26
+ },
+ {
+ "move": "TOXIC",
+ "level": 30
+ },
+ {
+ "move": "STOCKPILE",
+ "level": 38
+ },
+ {
+ "move": "SPIT_UP",
+ "level": 38
+ },
+ {
+ "move": "SWALLOW",
+ "level": 38
+ },
+ {
+ "move": "SLUDGE_BOMB",
+ "level": 45
+ },
+ {
+ "move": "GASTRO_ACID",
+ "level": 52
+ },
+ {
+ "move": "WRING_OUT",
+ "level": 59
+ },
+ {
+ "move": "GUNK_SHOT",
+ "level": 66
+ }
+ ]
+ },
+ {
+ "species": "CARVANHA",
+ "moves": [
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "BITE",
+ "level": 1
+ },
+ {
+ "move": "RAGE",
+ "level": 6
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 8
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 11
+ },
+ {
+ "move": "ICE_FANG",
+ "level": 16
+ },
+ {
+ "move": "SCREECH",
+ "level": 18
+ },
+ {
+ "move": "SWAGGER",
+ "level": 21
+ },
+ {
+ "move": "ASSURANCE",
+ "level": 26
+ },
+ {
+ "move": "CRUNCH",
+ "level": 28
+ },
+ {
+ "move": "AQUA_JET",
+ "level": 31
+ },
+ {
+ "move": "AGILITY",
+ "level": 36
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 38
+ }
+ ]
+ },
+ {
+ "species": "SHARPEDO",
+ "moves": [
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "BITE",
+ "level": 1
+ },
+ {
+ "move": "RAGE",
+ "level": 1
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 1
+ },
+ {
+ "move": "RAGE",
+ "level": 6
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 8
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 11
+ },
+ {
+ "move": "ICE_FANG",
+ "level": 16
+ },
+ {
+ "move": "SCREECH",
+ "level": 18
+ },
+ {
+ "move": "SWAGGER",
+ "level": 21
+ },
+ {
+ "move": "ASSURANCE",
+ "level": 26
+ },
+ {
+ "move": "CRUNCH",
+ "level": 28
+ },
+ {
+ "move": "SLASH",
+ "level": 30
+ },
+ {
+ "move": "AQUA_JET",
+ "level": 34
+ },
+ {
+ "move": "TAUNT",
+ "level": 40
+ },
+ {
+ "move": "AGILITY",
+ "level": 45
+ },
+ {
+ "move": "SKULL_BASH",
+ "level": 50
+ },
+ {
+ "move": "NIGHT_SLASH",
+ "level": 56
+ }
+ ]
+ },
+ {
+ "species": "WAILMER",
+ "moves": [
+ {
+ "move": "SPLASH",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 4
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 7
+ },
+ {
+ "move": "ROLLOUT",
+ "level": 11
+ },
+ {
+ "move": "WHIRLPOOL",
+ "level": 14
+ },
+ {
+ "move": "ASTONISH",
+ "level": 17
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 21
+ },
+ {
+ "move": "MIST",
+ "level": 24
+ },
+ {
+ "move": "REST",
+ "level": 27
+ },
+ {
+ "move": "BRINE",
+ "level": 31
+ },
+ {
+ "move": "WATER_SPOUT",
+ "level": 34
+ },
+ {
+ "move": "AMNESIA",
+ "level": 37
+ },
+ {
+ "move": "DIVE",
+ "level": 41
+ },
+ {
+ "move": "BOUNCE",
+ "level": 44
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 47
+ }
+ ]
+ },
+ {
+ "species": "WAILORD",
+ "moves": [
+ {
+ "move": "SPLASH",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 1
+ },
+ {
+ "move": "ROLLOUT",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 4
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 7
+ },
+ {
+ "move": "ROLLOUT",
+ "level": 11
+ },
+ {
+ "move": "WHIRLPOOL",
+ "level": 14
+ },
+ {
+ "move": "ASTONISH",
+ "level": 17
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 21
+ },
+ {
+ "move": "MIST",
+ "level": 24
+ },
+ {
+ "move": "REST",
+ "level": 27
+ },
+ {
+ "move": "BRINE",
+ "level": 31
+ },
+ {
+ "move": "WATER_SPOUT",
+ "level": 34
+ },
+ {
+ "move": "AMNESIA",
+ "level": 37
+ },
+ {
+ "move": "DIVE",
+ "level": 46
+ },
+ {
+ "move": "BOUNCE",
+ "level": 54
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 62
+ }
+ ]
+ },
+ {
+ "species": "NUMEL",
+ "moves": [
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "EMBER",
+ "level": 5
+ },
+ {
+ "move": "MAGNITUDE",
+ "level": 11
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 15
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 21
+ },
+ {
+ "move": "AMNESIA",
+ "level": 25
+ },
+ {
+ "move": "LAVA_PLUME",
+ "level": 31
+ },
+ {
+ "move": "EARTH_POWER",
+ "level": 35
+ },
+ {
+ "move": "EARTHQUAKE",
+ "level": 41
+ },
+ {
+ "move": "FLAMETHROWER",
+ "level": 45
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 51
+ }
+ ]
+ },
+ {
+ "species": "CAMERUPT",
+ "moves": [
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "EMBER",
+ "level": 1
+ },
+ {
+ "move": "MAGNITUDE",
+ "level": 1
+ },
+ {
+ "move": "EMBER",
+ "level": 5
+ },
+ {
+ "move": "MAGNITUDE",
+ "level": 11
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 15
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 21
+ },
+ {
+ "move": "AMNESIA",
+ "level": 25
+ },
+ {
+ "move": "LAVA_PLUME",
+ "level": 31
+ },
+ {
+ "move": "ROCK_SLIDE",
+ "level": 33
+ },
+ {
+ "move": "EARTH_POWER",
+ "level": 39
+ },
+ {
+ "move": "EARTHQUAKE",
+ "level": 49
+ },
+ {
+ "move": "ERUPTION",
+ "level": 57
+ },
+ {
+ "move": "FISSURE",
+ "level": 67
+ }
+ ]
+ },
+ {
+ "species": "TORKOAL",
+ "moves": [
+ {
+ "move": "EMBER",
+ "level": 1
+ },
+ {
+ "move": "SMOG",
+ "level": 4
+ },
+ {
+ "move": "WITHDRAW",
+ "level": 7
+ },
+ {
+ "move": "CURSE",
+ "level": 12
+ },
+ {
+ "move": "FIRE_SPIN",
+ "level": 17
+ },
+ {
+ "move": "SMOKESCREEN",
+ "level": 20
+ },
+ {
+ "move": "RAPID_SPIN",
+ "level": 23
+ },
+ {
+ "move": "FLAMETHROWER",
+ "level": 28
+ },
+ {
+ "move": "BODY_SLAM",
+ "level": 33
+ },
+ {
+ "move": "PROTECT",
+ "level": 36
+ },
+ {
+ "move": "LAVA_PLUME",
+ "level": 39
+ },
+ {
+ "move": "IRON_DEFENSE",
+ "level": 44
+ },
+ {
+ "move": "AMNESIA",
+ "level": 49
+ },
+ {
+ "move": "FLAIL",
+ "level": 52
+ },
+ {
+ "move": "HEAT_WAVE",
+ "level": 55
+ }
+ ]
+ },
+ {
+ "species": "SPOINK",
+ "moves": [
+ {
+ "move": "SPLASH",
+ "level": 1
+ },
+ {
+ "move": "PSYWAVE",
+ "level": 7
+ },
+ {
+ "move": "ODOR_SLEUTH",
+ "level": 10
+ },
+ {
+ "move": "PSYBEAM",
+ "level": 14
+ },
+ {
+ "move": "PSYCH_UP",
+ "level": 15
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 18
+ },
+ {
+ "move": "MAGIC_COAT",
+ "level": 21
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 26
+ },
+ {
+ "move": "REST",
+ "level": 29
+ },
+ {
+ "move": "SNORE",
+ "level": 29
+ },
+ {
+ "move": "PAYBACK",
+ "level": 34
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 41
+ },
+ {
+ "move": "POWER_GEM",
+ "level": 46
+ },
+ {
+ "move": "BOUNCE",
+ "level": 48
+ }
+ ]
+ },
+ {
+ "species": "GRUMPIG",
+ "moves": [
+ {
+ "move": "SPLASH",
+ "level": 1
+ },
+ {
+ "move": "PSYWAVE",
+ "level": 1
+ },
+ {
+ "move": "ODOR_SLEUTH",
+ "level": 1
+ },
+ {
+ "move": "PSYBEAM",
+ "level": 1
+ },
+ {
+ "move": "PSYWAVE",
+ "level": 7
+ },
+ {
+ "move": "ODOR_SLEUTH",
+ "level": 10
+ },
+ {
+ "move": "PSYBEAM",
+ "level": 14
+ },
+ {
+ "move": "PSYCH_UP",
+ "level": 15
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 18
+ },
+ {
+ "move": "MAGIC_COAT",
+ "level": 21
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 26
+ },
+ {
+ "move": "REST",
+ "level": 29
+ },
+ {
+ "move": "SNORE",
+ "level": 29
+ },
+ {
+ "move": "PAYBACK",
+ "level": 37
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 47
+ },
+ {
+ "move": "POWER_GEM",
+ "level": 55
+ },
+ {
+ "move": "BOUNCE",
+ "level": 60
+ }
+ ]
+ },
+ {
+ "species": "SPINDA",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "UPROAR",
+ "level": 5
+ },
+ {
+ "move": "COPYCAT",
+ "level": 10
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 14
+ },
+ {
+ "move": "PSYBEAM",
+ "level": 19
+ },
+ {
+ "move": "HYPNOSIS",
+ "level": 23
+ },
+ {
+ "move": "DIZZY_PUNCH",
+ "level": 28
+ },
+ {
+ "move": "SUCKER_PUNCH",
+ "level": 32
+ },
+ {
+ "move": "TEETER_DANCE",
+ "level": 37
+ },
+ {
+ "move": "PSYCH_UP",
+ "level": 41
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 46
+ },
+ {
+ "move": "FLAIL",
+ "level": 50
+ },
+ {
+ "move": "THRASH",
+ "level": 55
+ }
+ ]
+ },
+ {
+ "species": "TRAPINCH",
+ "moves": [
+ {
+ "move": "BITE",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 9
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 17
+ },
+ {
+ "move": "SAND_TOMB",
+ "level": 25
+ },
+ {
+ "move": "CRUNCH",
+ "level": 33
+ },
+ {
+ "move": "DIG",
+ "level": 41
+ },
+ {
+ "move": "SANDSTORM",
+ "level": 49
+ },
+ {
+ "move": "HYPER_BEAM",
+ "level": 57
+ },
+ {
+ "move": "EARTH_POWER",
+ "level": 65
+ },
+ {
+ "move": "EARTHQUAKE",
+ "level": 73
+ },
+ {
+ "move": "FEINT",
+ "level": 81
+ },
+ {
+ "move": "FISSURE",
+ "level": 89
+ }
+ ]
+ },
+ {
+ "species": "VIBRAVA",
+ "moves": [
+ {
+ "move": "SONIC_BOOM",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "SAND_TOMB",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 9
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 17
+ },
+ {
+ "move": "SAND_TOMB",
+ "level": 25
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 33
+ },
+ {
+ "move": "DRAGON_BREATH",
+ "level": 35
+ },
+ {
+ "move": "SCREECH",
+ "level": 41
+ },
+ {
+ "move": "SANDSTORM",
+ "level": 49
+ },
+ {
+ "move": "HYPER_BEAM",
+ "level": 57
+ }
+ ]
+ },
+ {
+ "species": "FLYGON",
+ "moves": [
+ {
+ "move": "SONIC_BOOM",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "SAND_TOMB",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 9
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 17
+ },
+ {
+ "move": "SAND_TOMB",
+ "level": 25
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 33
+ },
+ {
+ "move": "DRAGON_BREATH",
+ "level": 35
+ },
+ {
+ "move": "SCREECH",
+ "level": 41
+ },
+ {
+ "move": "DRAGON_CLAW",
+ "level": 45
+ },
+ {
+ "move": "SANDSTORM",
+ "level": 49
+ },
+ {
+ "move": "HYPER_BEAM",
+ "level": 57
+ }
+ ]
+ },
+ {
+ "species": "CACNEA",
+ "moves": [
+ {
+ "move": "POISON_STING",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "ABSORB",
+ "level": 5
+ },
+ {
+ "move": "GROWTH",
+ "level": 9
+ },
+ {
+ "move": "LEECH_SEED",
+ "level": 13
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 17
+ },
+ {
+ "move": "PIN_MISSILE",
+ "level": 21
+ },
+ {
+ "move": "INGRAIN",
+ "level": 25
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 29
+ },
+ {
+ "move": "SPIKES",
+ "level": 33
+ },
+ {
+ "move": "SUCKER_PUNCH",
+ "level": 37
+ },
+ {
+ "move": "PAYBACK",
+ "level": 41
+ },
+ {
+ "move": "NEEDLE_ARM",
+ "level": 45
+ },
+ {
+ "move": "COTTON_SPORE",
+ "level": 49
+ },
+ {
+ "move": "SANDSTORM",
+ "level": 53
+ },
+ {
+ "move": "DESTINY_BOND",
+ "level": 57
+ }
+ ]
+ },
+ {
+ "species": "CACTURNE",
+ "moves": [
+ {
+ "move": "REVENGE",
+ "level": 1
+ },
+ {
+ "move": "POISON_STING",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "ABSORB",
+ "level": 1
+ },
+ {
+ "move": "GROWTH",
+ "level": 1
+ },
+ {
+ "move": "ABSORB",
+ "level": 5
+ },
+ {
+ "move": "GROWTH",
+ "level": 9
+ },
+ {
+ "move": "LEECH_SEED",
+ "level": 13
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 17
+ },
+ {
+ "move": "PIN_MISSILE",
+ "level": 21
+ },
+ {
+ "move": "INGRAIN",
+ "level": 25
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 29
+ },
+ {
+ "move": "SPIKES",
+ "level": 35
+ },
+ {
+ "move": "SUCKER_PUNCH",
+ "level": 41
+ },
+ {
+ "move": "PAYBACK",
+ "level": 47
+ },
+ {
+ "move": "NEEDLE_ARM",
+ "level": 53
+ },
+ {
+ "move": "COTTON_SPORE",
+ "level": 59
+ },
+ {
+ "move": "SANDSTORM",
+ "level": 65
+ },
+ {
+ "move": "DESTINY_BOND",
+ "level": 71
+ }
+ ]
+ },
+ {
+ "species": "SWABLU",
+ "moves": [
+ {
+ "move": "PECK",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "ASTONISH",
+ "level": 5
+ },
+ {
+ "move": "SING",
+ "level": 9
+ },
+ {
+ "move": "FURY_ATTACK",
+ "level": 13
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 18
+ },
+ {
+ "move": "MIST",
+ "level": 23
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 28
+ },
+ {
+ "move": "NATURAL_GIFT",
+ "level": 32
+ },
+ {
+ "move": "MIRROR_MOVE",
+ "level": 36
+ },
+ {
+ "move": "REFRESH",
+ "level": 40
+ },
+ {
+ "move": "DRAGON_PULSE",
+ "level": 45
+ },
+ {
+ "move": "PERISH_SONG",
+ "level": 50
+ }
+ ]
+ },
+ {
+ "species": "ALTARIA",
+ "moves": [
+ {
+ "move": "PLUCK",
+ "level": 1
+ },
+ {
+ "move": "PECK",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "ASTONISH",
+ "level": 1
+ },
+ {
+ "move": "SING",
+ "level": 1
+ },
+ {
+ "move": "ASTONISH",
+ "level": 5
+ },
+ {
+ "move": "SING",
+ "level": 9
+ },
+ {
+ "move": "FURY_ATTACK",
+ "level": 13
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 18
+ },
+ {
+ "move": "MIST",
+ "level": 23
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 28
+ },
+ {
+ "move": "NATURAL_GIFT",
+ "level": 32
+ },
+ {
+ "move": "DRAGON_BREATH",
+ "level": 35
+ },
+ {
+ "move": "DRAGON_DANCE",
+ "level": 39
+ },
+ {
+ "move": "REFRESH",
+ "level": 46
+ },
+ {
+ "move": "DRAGON_PULSE",
+ "level": 54
+ },
+ {
+ "move": "PERISH_SONG",
+ "level": 62
+ },
+ {
+ "move": "SKY_ATTACK",
+ "level": 70
+ }
+ ]
+ },
+ {
+ "species": "ZANGOOSE",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 5
+ },
+ {
+ "move": "SWORDS_DANCE",
+ "level": 9
+ },
+ {
+ "move": "FURY_CUTTER",
+ "level": 14
+ },
+ {
+ "move": "SLASH",
+ "level": 18
+ },
+ {
+ "move": "PURSUIT",
+ "level": 22
+ },
+ {
+ "move": "EMBARGO",
+ "level": 27
+ },
+ {
+ "move": "CRUSH_CLAW",
+ "level": 31
+ },
+ {
+ "move": "TAUNT",
+ "level": 35
+ },
+ {
+ "move": "DETECT",
+ "level": 40
+ },
+ {
+ "move": "FALSE_SWIPE",
+ "level": 44
+ },
+ {
+ "move": "X_SCISSOR",
+ "level": 48
+ },
+ {
+ "move": "CLOSE_COMBAT",
+ "level": 53
+ }
+ ]
+ },
+ {
+ "species": "SEVIPER",
+ "moves": [
+ {
+ "move": "WRAP",
+ "level": 1
+ },
+ {
+ "move": "LICK",
+ "level": 7
+ },
+ {
+ "move": "BITE",
+ "level": 10
+ },
+ {
+ "move": "POISON_TAIL",
+ "level": 16
+ },
+ {
+ "move": "SCREECH",
+ "level": 19
+ },
+ {
+ "move": "GLARE",
+ "level": 25
+ },
+ {
+ "move": "CRUNCH",
+ "level": 28
+ },
+ {
+ "move": "POISON_FANG",
+ "level": 34
+ },
+ {
+ "move": "SWAGGER",
+ "level": 37
+ },
+ {
+ "move": "HAZE",
+ "level": 43
+ },
+ {
+ "move": "NIGHT_SLASH",
+ "level": 46
+ },
+ {
+ "move": "POISON_JAB",
+ "level": 52
+ },
+ {
+ "move": "WRING_OUT",
+ "level": 55
+ }
+ ]
+ },
+ {
+ "species": "LUNATONE",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 1
+ },
+ {
+ "move": "CONFUSION",
+ "level": 1
+ },
+ {
+ "move": "ROCK_THROW",
+ "level": 9
+ },
+ {
+ "move": "HYPNOSIS",
+ "level": 12
+ },
+ {
+ "move": "ROCK_POLISH",
+ "level": 20
+ },
+ {
+ "move": "PSYWAVE",
+ "level": 23
+ },
+ {
+ "move": "EMBARGO",
+ "level": 31
+ },
+ {
+ "move": "COSMIC_POWER",
+ "level": 34
+ },
+ {
+ "move": "HEAL_BLOCK",
+ "level": 42
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 45
+ },
+ {
+ "move": "FUTURE_SIGHT",
+ "level": 53
+ },
+ {
+ "move": "EXPLOSION",
+ "level": 56
+ }
+ ]
+ },
+ {
+ "species": "SOLROCK",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 1
+ },
+ {
+ "move": "CONFUSION",
+ "level": 1
+ },
+ {
+ "move": "ROCK_THROW",
+ "level": 9
+ },
+ {
+ "move": "FIRE_SPIN",
+ "level": 12
+ },
+ {
+ "move": "ROCK_POLISH",
+ "level": 20
+ },
+ {
+ "move": "PSYWAVE",
+ "level": 23
+ },
+ {
+ "move": "EMBARGO",
+ "level": 31
+ },
+ {
+ "move": "COSMIC_POWER",
+ "level": 34
+ },
+ {
+ "move": "HEAL_BLOCK",
+ "level": 42
+ },
+ {
+ "move": "ROCK_SLIDE",
+ "level": 45
+ },
+ {
+ "move": "SOLAR_BEAM",
+ "level": 53
+ },
+ {
+ "move": "EXPLOSION",
+ "level": 56
+ }
+ ]
+ },
+ {
+ "species": "BARBOACH",
+ "moves": [
+ {
+ "move": "MUD_SLAP",
+ "level": 1
+ },
+ {
+ "move": "MUD_SPORT",
+ "level": 6
+ },
+ {
+ "move": "WATER_SPORT",
+ "level": 6
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 10
+ },
+ {
+ "move": "MUD_BOMB",
+ "level": 14
+ },
+ {
+ "move": "AMNESIA",
+ "level": 18
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 22
+ },
+ {
+ "move": "MAGNITUDE",
+ "level": 26
+ },
+ {
+ "move": "REST",
+ "level": 31
+ },
+ {
+ "move": "SNORE",
+ "level": 31
+ },
+ {
+ "move": "AQUA_TAIL",
+ "level": 35
+ },
+ {
+ "move": "EARTHQUAKE",
+ "level": 39
+ },
+ {
+ "move": "FUTURE_SIGHT",
+ "level": 43
+ },
+ {
+ "move": "FISSURE",
+ "level": 47
+ }
+ ]
+ },
+ {
+ "species": "WHISCASH",
+ "moves": [
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 1
+ },
+ {
+ "move": "TICKLE",
+ "level": 1
+ },
+ {
+ "move": "MUD_SLAP",
+ "level": 1
+ },
+ {
+ "move": "MUD_SPORT",
+ "level": 1
+ },
+ {
+ "move": "WATER_SPORT",
+ "level": 1
+ },
+ {
+ "move": "MUD_SPORT",
+ "level": 6
+ },
+ {
+ "move": "WATER_SPORT",
+ "level": 6
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 10
+ },
+ {
+ "move": "MUD_BOMB",
+ "level": 14
+ },
+ {
+ "move": "AMNESIA",
+ "level": 18
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 22
+ },
+ {
+ "move": "MAGNITUDE",
+ "level": 26
+ },
+ {
+ "move": "REST",
+ "level": 33
+ },
+ {
+ "move": "SNORE",
+ "level": 33
+ },
+ {
+ "move": "AQUA_TAIL",
+ "level": 39
+ },
+ {
+ "move": "EARTHQUAKE",
+ "level": 45
+ },
+ {
+ "move": "FUTURE_SIGHT",
+ "level": 51
+ },
+ {
+ "move": "FISSURE",
+ "level": 57
+ }
+ ]
+ },
+ {
+ "species": "CORPHISH",
+ "moves": [
+ {
+ "move": "BUBBLE",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 7
+ },
+ {
+ "move": "VISE_GRIP",
+ "level": 10
+ },
+ {
+ "move": "LEER",
+ "level": 13
+ },
+ {
+ "move": "BUBBLE_BEAM",
+ "level": 20
+ },
+ {
+ "move": "PROTECT",
+ "level": 23
+ },
+ {
+ "move": "KNOCK_OFF",
+ "level": 26
+ },
+ {
+ "move": "TAUNT",
+ "level": 32
+ },
+ {
+ "move": "NIGHT_SLASH",
+ "level": 35
+ },
+ {
+ "move": "CRABHAMMER",
+ "level": 38
+ },
+ {
+ "move": "SWORDS_DANCE",
+ "level": 44
+ },
+ {
+ "move": "CRUNCH",
+ "level": 47
+ },
+ {
+ "move": "GUILLOTINE",
+ "level": 53
+ }
+ ]
+ },
+ {
+ "species": "CRAWDAUNT",
+ "moves": [
+ {
+ "move": "BUBBLE",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 1
+ },
+ {
+ "move": "VISE_GRIP",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 7
+ },
+ {
+ "move": "VISE_GRIP",
+ "level": 10
+ },
+ {
+ "move": "LEER",
+ "level": 13
+ },
+ {
+ "move": "BUBBLE_BEAM",
+ "level": 20
+ },
+ {
+ "move": "PROTECT",
+ "level": 23
+ },
+ {
+ "move": "KNOCK_OFF",
+ "level": 26
+ },
+ {
+ "move": "SWIFT",
+ "level": 30
+ },
+ {
+ "move": "TAUNT",
+ "level": 34
+ },
+ {
+ "move": "NIGHT_SLASH",
+ "level": 39
+ },
+ {
+ "move": "CRABHAMMER",
+ "level": 44
+ },
+ {
+ "move": "SWORDS_DANCE",
+ "level": 52
+ },
+ {
+ "move": "CRUNCH",
+ "level": 57
+ },
+ {
+ "move": "GUILLOTINE",
+ "level": 65
+ }
+ ]
+ },
+ {
+ "species": "BALTOY",
+ "moves": [
+ {
+ "move": "CONFUSION",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 3
+ },
+ {
+ "move": "RAPID_SPIN",
+ "level": 5
+ },
+ {
+ "move": "MUD_SLAP",
+ "level": 7
+ },
+ {
+ "move": "PSYBEAM",
+ "level": 11
+ },
+ {
+ "move": "ROCK_TOMB",
+ "level": 15
+ },
+ {
+ "move": "SELF_DESTRUCT",
+ "level": 19
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 25
+ },
+ {
+ "move": "POWER_TRICK",
+ "level": 31
+ },
+ {
+ "move": "SANDSTORM",
+ "level": 37
+ },
+ {
+ "move": "COSMIC_POWER",
+ "level": 45
+ },
+ {
+ "move": "EARTH_POWER",
+ "level": 53
+ },
+ {
+ "move": "HEAL_BLOCK",
+ "level": 61
+ },
+ {
+ "move": "EXPLOSION",
+ "level": 71
+ }
+ ]
+ },
+ {
+ "species": "CLAYDOL",
+ "moves": [
+ {
+ "move": "TELEPORT",
+ "level": 1
+ },
+ {
+ "move": "CONFUSION",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 1
+ },
+ {
+ "move": "RAPID_SPIN",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 3
+ },
+ {
+ "move": "RAPID_SPIN",
+ "level": 5
+ },
+ {
+ "move": "MUD_SLAP",
+ "level": 7
+ },
+ {
+ "move": "PSYBEAM",
+ "level": 11
+ },
+ {
+ "move": "ROCK_TOMB",
+ "level": 15
+ },
+ {
+ "move": "SELF_DESTRUCT",
+ "level": 19
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 25
+ },
+ {
+ "move": "POWER_TRICK",
+ "level": 31
+ },
+ {
+ "move": "HYPER_BEAM",
+ "level": 36
+ },
+ {
+ "move": "SANDSTORM",
+ "level": 40
+ },
+ {
+ "move": "COSMIC_POWER",
+ "level": 51
+ },
+ {
+ "move": "EARTH_POWER",
+ "level": 62
+ },
+ {
+ "move": "HEAL_BLOCK",
+ "level": 73
+ },
+ {
+ "move": "EXPLOSION",
+ "level": 86
+ }
+ ]
+ },
+ {
+ "species": "LILEEP",
+ "moves": [
+ {
+ "move": "ASTONISH",
+ "level": 1
+ },
+ {
+ "move": "CONSTRICT",
+ "level": 1
+ },
+ {
+ "move": "ACID",
+ "level": 8
+ },
+ {
+ "move": "INGRAIN",
+ "level": 15
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 22
+ },
+ {
+ "move": "AMNESIA",
+ "level": 29
+ },
+ {
+ "move": "GASTRO_ACID",
+ "level": 36
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 43
+ },
+ {
+ "move": "ENERGY_BALL",
+ "level": 50
+ },
+ {
+ "move": "STOCKPILE",
+ "level": 57
+ },
+ {
+ "move": "SPIT_UP",
+ "level": 57
+ },
+ {
+ "move": "SWALLOW",
+ "level": 57
+ },
+ {
+ "move": "WRING_OUT",
+ "level": 64
+ }
+ ]
+ },
+ {
+ "species": "CRADILY",
+ "moves": [
+ {
+ "move": "ASTONISH",
+ "level": 1
+ },
+ {
+ "move": "CONSTRICT",
+ "level": 1
+ },
+ {
+ "move": "ACID",
+ "level": 1
+ },
+ {
+ "move": "INGRAIN",
+ "level": 1
+ },
+ {
+ "move": "ACID",
+ "level": 8
+ },
+ {
+ "move": "INGRAIN",
+ "level": 15
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 22
+ },
+ {
+ "move": "AMNESIA",
+ "level": 29
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 36
+ },
+ {
+ "move": "GASTRO_ACID",
+ "level": 46
+ },
+ {
+ "move": "ENERGY_BALL",
+ "level": 56
+ },
+ {
+ "move": "STOCKPILE",
+ "level": 66
+ },
+ {
+ "move": "SPIT_UP",
+ "level": 66
+ },
+ {
+ "move": "SWALLOW",
+ "level": 66
+ },
+ {
+ "move": "WRING_OUT",
+ "level": 76
+ }
+ ]
+ },
+ {
+ "species": "ANORITH",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 1
+ },
+ {
+ "move": "MUD_SPORT",
+ "level": 7
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 13
+ },
+ {
+ "move": "METAL_CLAW",
+ "level": 19
+ },
+ {
+ "move": "PROTECT",
+ "level": 25
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 31
+ },
+ {
+ "move": "FURY_CUTTER",
+ "level": 37
+ },
+ {
+ "move": "SLASH",
+ "level": 43
+ },
+ {
+ "move": "ROCK_BLAST",
+ "level": 49
+ },
+ {
+ "move": "CRUSH_CLAW",
+ "level": 55
+ },
+ {
+ "move": "X_SCISSOR",
+ "level": 61
+ }
+ ]
+ },
+ {
+ "species": "ARMALDO",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 1
+ },
+ {
+ "move": "MUD_SPORT",
+ "level": 1
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 1
+ },
+ {
+ "move": "MUD_SPORT",
+ "level": 7
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 13
+ },
+ {
+ "move": "METAL_CLAW",
+ "level": 19
+ },
+ {
+ "move": "PROTECT",
+ "level": 25
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 31
+ },
+ {
+ "move": "FURY_CUTTER",
+ "level": 37
+ },
+ {
+ "move": "SLASH",
+ "level": 46
+ },
+ {
+ "move": "ROCK_BLAST",
+ "level": 55
+ },
+ {
+ "move": "CRUSH_CLAW",
+ "level": 67
+ },
+ {
+ "move": "X_SCISSOR",
+ "level": 73
+ }
+ ]
+ },
+ {
+ "species": "FEEBAS",
+ "moves": [
+ {
+ "move": "SPLASH",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 15
+ },
+ {
+ "move": "FLAIL",
+ "level": 30
+ }
+ ]
+ },
+ {
+ "species": "MILOTIC",
+ "moves": [
+ {
+ "move": "WATER_GUN",
+ "level": 1
+ },
+ {
+ "move": "WRAP",
+ "level": 1
+ },
+ {
+ "move": "WATER_SPORT",
+ "level": 5
+ },
+ {
+ "move": "REFRESH",
+ "level": 9
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 13
+ },
+ {
+ "move": "TWISTER",
+ "level": 17
+ },
+ {
+ "move": "RECOVER",
+ "level": 21
+ },
+ {
+ "move": "CAPTIVATE",
+ "level": 25
+ },
+ {
+ "move": "AQUA_TAIL",
+ "level": 29
+ },
+ {
+ "move": "RAIN_DANCE",
+ "level": 33
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 37
+ },
+ {
+ "move": "ATTRACT",
+ "level": 41
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 45
+ },
+ {
+ "move": "AQUA_RING",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "CASTFORM",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 10
+ },
+ {
+ "move": "EMBER",
+ "level": 10
+ },
+ {
+ "move": "POWDER_SNOW",
+ "level": 10
+ },
+ {
+ "move": "RAIN_DANCE",
+ "level": 20
+ },
+ {
+ "move": "SUNNY_DAY",
+ "level": 20
+ },
+ {
+ "move": "HAIL",
+ "level": 20
+ },
+ {
+ "move": "WEATHER_BALL",
+ "level": 30
+ }
+ ]
+ },
+ {
+ "species": "KECLEON",
+ "moves": [
+ {
+ "move": "THIEF",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "ASTONISH",
+ "level": 1
+ },
+ {
+ "move": "LICK",
+ "level": 1
+ },
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "BIND",
+ "level": 4
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 7
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 10
+ },
+ {
+ "move": "PSYBEAM",
+ "level": 15
+ },
+ {
+ "move": "SHADOW_SNEAK",
+ "level": 20
+ },
+ {
+ "move": "SLASH",
+ "level": 25
+ },
+ {
+ "move": "SCREECH",
+ "level": 32
+ },
+ {
+ "move": "SUBSTITUTE",
+ "level": 39
+ },
+ {
+ "move": "SUCKER_PUNCH",
+ "level": 46
+ },
+ {
+ "move": "SHADOW_CLAW",
+ "level": 55
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 64
+ }
+ ]
+ },
+ {
+ "species": "SHUPPET",
+ "moves": [
+ {
+ "move": "KNOCK_OFF",
+ "level": 1
+ },
+ {
+ "move": "SCREECH",
+ "level": 5
+ },
+ {
+ "move": "NIGHT_SHADE",
+ "level": 8
+ },
+ {
+ "move": "CURSE",
+ "level": 13
+ },
+ {
+ "move": "SPITE",
+ "level": 16
+ },
+ {
+ "move": "SHADOW_SNEAK",
+ "level": 20
+ },
+ {
+ "move": "WILL_O_WISP",
+ "level": 23
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 28
+ },
+ {
+ "move": "SHADOW_BALL",
+ "level": 31
+ },
+ {
+ "move": "SUCKER_PUNCH",
+ "level": 35
+ },
+ {
+ "move": "EMBARGO",
+ "level": 38
+ },
+ {
+ "move": "SNATCH",
+ "level": 43
+ },
+ {
+ "move": "GRUDGE",
+ "level": 46
+ },
+ {
+ "move": "TRICK",
+ "level": 50
+ }
+ ]
+ },
+ {
+ "species": "BANETTE",
+ "moves": [
+ {
+ "move": "KNOCK_OFF",
+ "level": 1
+ },
+ {
+ "move": "SCREECH",
+ "level": 1
+ },
+ {
+ "move": "NIGHT_SHADE",
+ "level": 1
+ },
+ {
+ "move": "CURSE",
+ "level": 1
+ },
+ {
+ "move": "SCREECH",
+ "level": 8
+ },
+ {
+ "move": "NIGHT_SHADE",
+ "level": 5
+ },
+ {
+ "move": "CURSE",
+ "level": 13
+ },
+ {
+ "move": "SPITE",
+ "level": 16
+ },
+ {
+ "move": "SHADOW_SNEAK",
+ "level": 20
+ },
+ {
+ "move": "WILL_O_WISP",
+ "level": 23
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 28
+ },
+ {
+ "move": "SHADOW_BALL",
+ "level": 31
+ },
+ {
+ "move": "SUCKER_PUNCH",
+ "level": 35
+ },
+ {
+ "move": "EMBARGO",
+ "level": 42
+ },
+ {
+ "move": "SNATCH",
+ "level": 51
+ },
+ {
+ "move": "GRUDGE",
+ "level": 58
+ },
+ {
+ "move": "TRICK",
+ "level": 66
+ }
+ ]
+ },
+ {
+ "species": "DUSKULL",
+ "moves": [
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "NIGHT_SHADE",
+ "level": 1
+ },
+ {
+ "move": "DISABLE",
+ "level": 6
+ },
+ {
+ "move": "FORESIGHT",
+ "level": 9
+ },
+ {
+ "move": "ASTONISH",
+ "level": 14
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 17
+ },
+ {
+ "move": "SHADOW_SNEAK",
+ "level": 22
+ },
+ {
+ "move": "PURSUIT",
+ "level": 25
+ },
+ {
+ "move": "CURSE",
+ "level": 30
+ },
+ {
+ "move": "WILL_O_WISP",
+ "level": 33
+ },
+ {
+ "move": "MEAN_LOOK",
+ "level": 38
+ },
+ {
+ "move": "PAYBACK",
+ "level": 41
+ },
+ {
+ "move": "FUTURE_SIGHT",
+ "level": 46
+ }
+ ]
+ },
+ {
+ "species": "DUSCLOPS",
+ "moves": [
+ {
+ "move": "FIRE_PUNCH",
+ "level": 1
+ },
+ {
+ "move": "ICE_PUNCH",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_PUNCH",
+ "level": 1
+ },
+ {
+ "move": "GRAVITY",
+ "level": 1
+ },
+ {
+ "move": "BIND",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "NIGHT_SHADE",
+ "level": 1
+ },
+ {
+ "move": "DISABLE",
+ "level": 1
+ },
+ {
+ "move": "DISABLE",
+ "level": 6
+ },
+ {
+ "move": "FORESIGHT",
+ "level": 9
+ },
+ {
+ "move": "ASTONISH",
+ "level": 14
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 17
+ },
+ {
+ "move": "SHADOW_SNEAK",
+ "level": 22
+ },
+ {
+ "move": "PURSUIT",
+ "level": 25
+ },
+ {
+ "move": "CURSE",
+ "level": 30
+ },
+ {
+ "move": "WILL_O_WISP",
+ "level": 33
+ },
+ {
+ "move": "SHADOW_PUNCH",
+ "level": 37
+ },
+ {
+ "move": "MEAN_LOOK",
+ "level": 43
+ },
+ {
+ "move": "PAYBACK",
+ "level": 51
+ },
+ {
+ "move": "FUTURE_SIGHT",
+ "level": 61
+ }
+ ]
+ },
+ {
+ "species": "TROPIUS",
+ "moves": [
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "GUST",
+ "level": 1
+ },
+ {
+ "move": "GROWTH",
+ "level": 7
+ },
+ {
+ "move": "RAZOR_LEAF",
+ "level": 11
+ },
+ {
+ "move": "STOMP",
+ "level": 17
+ },
+ {
+ "move": "SWEET_SCENT",
+ "level": 21
+ },
+ {
+ "move": "WHIRLWIND",
+ "level": 27
+ },
+ {
+ "move": "MAGICAL_LEAF",
+ "level": 31
+ },
+ {
+ "move": "BODY_SLAM",
+ "level": 37
+ },
+ {
+ "move": "SYNTHESIS",
+ "level": 41
+ },
+ {
+ "move": "AIR_SLASH",
+ "level": 47
+ },
+ {
+ "move": "SOLAR_BEAM",
+ "level": 51
+ },
+ {
+ "move": "NATURAL_GIFT",
+ "level": 57
+ },
+ {
+ "move": "LEAF_STORM",
+ "level": 61
+ }
+ ]
+ },
+ {
+ "species": "CHIMECHO",
+ "moves": [
+ {
+ "move": "WRAP",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 6
+ },
+ {
+ "move": "ASTONISH",
+ "level": 9
+ },
+ {
+ "move": "CONFUSION",
+ "level": 14
+ },
+ {
+ "move": "UPROAR",
+ "level": 17
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 22
+ },
+ {
+ "move": "YAWN",
+ "level": 25
+ },
+ {
+ "move": "PSYWAVE",
+ "level": 30
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 33
+ },
+ {
+ "move": "HEAL_BELL",
+ "level": 38
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 41
+ },
+ {
+ "move": "EXTRASENSORY",
+ "level": 46
+ },
+ {
+ "move": "HEALING_WISH",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "ABSOL",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 4
+ },
+ {
+ "move": "TAUNT",
+ "level": 9
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 12
+ },
+ {
+ "move": "RAZOR_WIND",
+ "level": 17
+ },
+ {
+ "move": "PURSUIT",
+ "level": 20
+ },
+ {
+ "move": "SWORDS_DANCE",
+ "level": 25
+ },
+ {
+ "move": "BITE",
+ "level": 28
+ },
+ {
+ "move": "DOUBLE_TEAM",
+ "level": 33
+ },
+ {
+ "move": "SLASH",
+ "level": 36
+ },
+ {
+ "move": "FUTURE_SIGHT",
+ "level": 41
+ },
+ {
+ "move": "SUCKER_PUNCH",
+ "level": 44
+ },
+ {
+ "move": "DETECT",
+ "level": 49
+ },
+ {
+ "move": "NIGHT_SLASH",
+ "level": 52
+ },
+ {
+ "move": "ME_FIRST",
+ "level": 57
+ },
+ {
+ "move": "PSYCHO_CUT",
+ "level": 60
+ },
+ {
+ "move": "PERISH_SONG",
+ "level": 65
+ }
+ ]
+ },
+ {
+ "species": "WYNAUT",
+ "moves": [
+ {
+ "move": "SPLASH",
+ "level": 1
+ },
+ {
+ "move": "CHARM",
+ "level": 1
+ },
+ {
+ "move": "ENCORE",
+ "level": 1
+ },
+ {
+ "move": "COUNTER",
+ "level": 15
+ },
+ {
+ "move": "MIRROR_COAT",
+ "level": 15
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 15
+ },
+ {
+ "move": "DESTINY_BOND",
+ "level": 15
+ }
+ ]
+ },
+ {
+ "species": "SNORUNT",
+ "moves": [
+ {
+ "move": "POWDER_SNOW",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "DOUBLE_TEAM",
+ "level": 4
+ },
+ {
+ "move": "BITE",
+ "level": 10
+ },
+ {
+ "move": "ICY_WIND",
+ "level": 13
+ },
+ {
+ "move": "HEADBUTT",
+ "level": 19
+ },
+ {
+ "move": "PROTECT",
+ "level": 22
+ },
+ {
+ "move": "ICE_FANG",
+ "level": 28
+ },
+ {
+ "move": "CRUNCH",
+ "level": 31
+ },
+ {
+ "move": "ICE_SHARD",
+ "level": 37
+ },
+ {
+ "move": "HAIL",
+ "level": 40
+ },
+ {
+ "move": "BLIZZARD",
+ "level": 46
+ }
+ ]
+ },
+ {
+ "species": "GLALIE",
+ "moves": [
+ {
+ "move": "POWDER_SNOW",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "DOUBLE_TEAM",
+ "level": 1
+ },
+ {
+ "move": "BITE",
+ "level": 1
+ },
+ {
+ "move": "DOUBLE_TEAM",
+ "level": 4
+ },
+ {
+ "move": "BITE",
+ "level": 10
+ },
+ {
+ "move": "ICY_WIND",
+ "level": 13
+ },
+ {
+ "move": "HEADBUTT",
+ "level": 19
+ },
+ {
+ "move": "PROTECT",
+ "level": 22
+ },
+ {
+ "move": "ICE_FANG",
+ "level": 28
+ },
+ {
+ "move": "CRUNCH",
+ "level": 31
+ },
+ {
+ "move": "ICE_BEAM",
+ "level": 37
+ },
+ {
+ "move": "HAIL",
+ "level": 40
+ },
+ {
+ "move": "BLIZZARD",
+ "level": 51
+ },
+ {
+ "move": "SHEER_COLD",
+ "level": 59
+ }
+ ]
+ },
+ {
+ "species": "SPHEAL",
+ "moves": [
+ {
+ "move": "DEFENSE_CURL",
+ "level": 1
+ },
+ {
+ "move": "POWDER_SNOW",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 1
+ },
+ {
+ "move": "ENCORE",
+ "level": 7
+ },
+ {
+ "move": "ICE_BALL",
+ "level": 13
+ },
+ {
+ "move": "BODY_SLAM",
+ "level": 19
+ },
+ {
+ "move": "AURORA_BEAM",
+ "level": 25
+ },
+ {
+ "move": "HAIL",
+ "level": 31
+ },
+ {
+ "move": "REST",
+ "level": 37
+ },
+ {
+ "move": "SNORE",
+ "level": 37
+ },
+ {
+ "move": "BLIZZARD",
+ "level": 43
+ },
+ {
+ "move": "SHEER_COLD",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "SEALEO",
+ "moves": [
+ {
+ "move": "POWDER_SNOW",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 1
+ },
+ {
+ "move": "ENCORE",
+ "level": 1
+ },
+ {
+ "move": "ENCORE",
+ "level": 7
+ },
+ {
+ "move": "ICE_BALL",
+ "level": 13
+ },
+ {
+ "move": "BODY_SLAM",
+ "level": 19
+ },
+ {
+ "move": "AURORA_BEAM",
+ "level": 25
+ },
+ {
+ "move": "HAIL",
+ "level": 31
+ },
+ {
+ "move": "SWAGGER",
+ "level": 32
+ },
+ {
+ "move": "REST",
+ "level": 39
+ },
+ {
+ "move": "SNORE",
+ "level": 39
+ },
+ {
+ "move": "BLIZZARD",
+ "level": 47
+ },
+ {
+ "move": "SHEER_COLD",
+ "level": 55
+ }
+ ]
+ },
+ {
+ "species": "WALREIN",
+ "moves": [
+ {
+ "move": "CRUNCH",
+ "level": 1
+ },
+ {
+ "move": "POWDER_SNOW",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 1
+ },
+ {
+ "move": "ENCORE",
+ "level": 1
+ },
+ {
+ "move": "ENCORE",
+ "level": 7
+ },
+ {
+ "move": "ICE_BALL",
+ "level": 13
+ },
+ {
+ "move": "BODY_SLAM",
+ "level": 19
+ },
+ {
+ "move": "AURORA_BEAM",
+ "level": 25
+ },
+ {
+ "move": "HAIL",
+ "level": 31
+ },
+ {
+ "move": "SWAGGER",
+ "level": 32
+ },
+ {
+ "move": "REST",
+ "level": 39
+ },
+ {
+ "move": "SNORE",
+ "level": 39
+ },
+ {
+ "move": "ICE_FANG",
+ "level": 44
+ },
+ {
+ "move": "BLIZZARD",
+ "level": 52
+ },
+ {
+ "move": "SHEER_COLD",
+ "level": 65
+ }
+ ]
+ },
+ {
+ "species": "CLAMPERL",
+ "moves": [
+ {
+ "move": "CLAMP",
+ "level": 1
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 1
+ },
+ {
+ "move": "WHIRLPOOL",
+ "level": 1
+ },
+ {
+ "move": "IRON_DEFENSE",
+ "level": 1
+ }
+ ]
+ },
+ {
+ "species": "HUNTAIL",
+ "moves": [
+ {
+ "move": "WHIRLPOOL",
+ "level": 1
+ },
+ {
+ "move": "BITE",
+ "level": 6
+ },
+ {
+ "move": "SCREECH",
+ "level": 10
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 15
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 19
+ },
+ {
+ "move": "ICE_FANG",
+ "level": 24
+ },
+ {
+ "move": "BRINE",
+ "level": 28
+ },
+ {
+ "move": "BATON_PASS",
+ "level": 33
+ },
+ {
+ "move": "DIVE",
+ "level": 37
+ },
+ {
+ "move": "CRUNCH",
+ "level": 42
+ },
+ {
+ "move": "AQUA_TAIL",
+ "level": 46
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 51
+ }
+ ]
+ },
+ {
+ "species": "GOREBYSS",
+ "moves": [
+ {
+ "move": "WHIRLPOOL",
+ "level": 1
+ },
+ {
+ "move": "CONFUSION",
+ "level": 6
+ },
+ {
+ "move": "AGILITY",
+ "level": 10
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 15
+ },
+ {
+ "move": "AMNESIA",
+ "level": 19
+ },
+ {
+ "move": "AQUA_RING",
+ "level": 24
+ },
+ {
+ "move": "CAPTIVATE",
+ "level": 28
+ },
+ {
+ "move": "BATON_PASS",
+ "level": 33
+ },
+ {
+ "move": "DIVE",
+ "level": 37
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 42
+ },
+ {
+ "move": "AQUA_TAIL",
+ "level": 46
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 51
+ }
+ ]
+ },
+ {
+ "species": "RELICANTH",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 1
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 8
+ },
+ {
+ "move": "ROCK_TOMB",
+ "level": 15
+ },
+ {
+ "move": "YAWN",
+ "level": 22
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 29
+ },
+ {
+ "move": "MUD_SPORT",
+ "level": 36
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 43
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 50
+ },
+ {
+ "move": "DIVE",
+ "level": 57
+ },
+ {
+ "move": "REST",
+ "level": 64
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 71
+ },
+ {
+ "move": "HEAD_SMASH",
+ "level": 78
+ }
+ ]
+ },
+ {
+ "species": "LUVDISC",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "CHARM",
+ "level": 4
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 7
+ },
+ {
+ "move": "AGILITY",
+ "level": 9
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 14
+ },
+ {
+ "move": "LUCKY_CHANT",
+ "level": 17
+ },
+ {
+ "move": "ATTRACT",
+ "level": 22
+ },
+ {
+ "move": "SWEET_KISS",
+ "level": 27
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 31
+ },
+ {
+ "move": "AQUA_RING",
+ "level": 37
+ },
+ {
+ "move": "CAPTIVATE",
+ "level": 40
+ },
+ {
+ "move": "FLAIL",
+ "level": 46
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 51
+ }
+ ]
+ },
+ {
+ "species": "BAGON",
+ "moves": [
+ {
+ "move": "RAGE",
+ "level": 1
+ },
+ {
+ "move": "BITE",
+ "level": 5
+ },
+ {
+ "move": "LEER",
+ "level": 10
+ },
+ {
+ "move": "HEADBUTT",
+ "level": 16
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 20
+ },
+ {
+ "move": "EMBER",
+ "level": 25
+ },
+ {
+ "move": "DRAGON_BREATH",
+ "level": 31
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 35
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 40
+ },
+ {
+ "move": "CRUNCH",
+ "level": 46
+ },
+ {
+ "move": "DRAGON_CLAW",
+ "level": 50
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 55
+ }
+ ]
+ },
+ {
+ "species": "SHELGON",
+ "moves": [
+ {
+ "move": "RAGE",
+ "level": 1
+ },
+ {
+ "move": "BITE",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "HEADBUTT",
+ "level": 1
+ },
+ {
+ "move": "BITE",
+ "level": 5
+ },
+ {
+ "move": "LEER",
+ "level": 10
+ },
+ {
+ "move": "HEADBUTT",
+ "level": 16
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 20
+ },
+ {
+ "move": "EMBER",
+ "level": 25
+ },
+ {
+ "move": "PROTECT",
+ "level": 30
+ },
+ {
+ "move": "DRAGON_BREATH",
+ "level": 32
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 37
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 43
+ },
+ {
+ "move": "CRUNCH",
+ "level": 50
+ },
+ {
+ "move": "DRAGON_CLAW",
+ "level": 55
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 61
+ }
+ ]
+ },
+ {
+ "species": "SALAMENCE",
+ "moves": [
+ {
+ "move": "FIRE_FANG",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_FANG",
+ "level": 1
+ },
+ {
+ "move": "RAGE",
+ "level": 1
+ },
+ {
+ "move": "BITE",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "HEADBUTT",
+ "level": 1
+ },
+ {
+ "move": "BITE",
+ "level": 5
+ },
+ {
+ "move": "LEER",
+ "level": 10
+ },
+ {
+ "move": "HEADBUTT",
+ "level": 16
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 20
+ },
+ {
+ "move": "EMBER",
+ "level": 25
+ },
+ {
+ "move": "PROTECT",
+ "level": 30
+ },
+ {
+ "move": "DRAGON_BREATH",
+ "level": 32
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 37
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 43
+ },
+ {
+ "move": "FLY",
+ "level": 50
+ },
+ {
+ "move": "CRUNCH",
+ "level": 53
+ },
+ {
+ "move": "DRAGON_CLAW",
+ "level": 61
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 70
+ }
+ ]
+ },
+ {
+ "species": "BELDUM",
+ "moves": [
+ {
+ "move": "TAKE_DOWN",
+ "level": 1
+ }
+ ]
+ },
+ {
+ "species": "METANG",
+ "moves": [
+ {
+ "move": "MAGNET_RISE",
+ "level": 1
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 1
+ },
+ {
+ "move": "METAL_CLAW",
+ "level": 1
+ },
+ {
+ "move": "CONFUSION",
+ "level": 1
+ },
+ {
+ "move": "METAL_CLAW",
+ "level": 20
+ },
+ {
+ "move": "CONFUSION",
+ "level": 20
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 24
+ },
+ {
+ "move": "PURSUIT",
+ "level": 28
+ },
+ {
+ "move": "BULLET_PUNCH",
+ "level": 32
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 36
+ },
+ {
+ "move": "IRON_DEFENSE",
+ "level": 40
+ },
+ {
+ "move": "AGILITY",
+ "level": 44
+ },
+ {
+ "move": "METEOR_MASH",
+ "level": 48
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 52
+ },
+ {
+ "move": "HYPER_BEAM",
+ "level": 56
+ }
+ ]
+ },
+ {
+ "species": "METAGROSS",
+ "moves": [
+ {
+ "move": "MAGNET_RISE",
+ "level": 1
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 1
+ },
+ {
+ "move": "METAL_CLAW",
+ "level": 1
+ },
+ {
+ "move": "CONFUSION",
+ "level": 1
+ },
+ {
+ "move": "METAL_CLAW",
+ "level": 20
+ },
+ {
+ "move": "CONFUSION",
+ "level": 20
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 24
+ },
+ {
+ "move": "PURSUIT",
+ "level": 28
+ },
+ {
+ "move": "BULLET_PUNCH",
+ "level": 32
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 36
+ },
+ {
+ "move": "IRON_DEFENSE",
+ "level": 40
+ },
+ {
+ "move": "AGILITY",
+ "level": 44
+ },
+ {
+ "move": "HAMMER_ARM",
+ "level": 45
+ },
+ {
+ "move": "METEOR_MASH",
+ "level": 53
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 62
+ },
+ {
+ "move": "HYPER_BEAM",
+ "level": 71
+ }
+ ]
+ },
+ {
+ "species": "REGIROCK",
+ "moves": [
+ {
+ "move": "EXPLOSION",
+ "level": 1
+ },
+ {
+ "move": "ROCK_THROW",
+ "level": 9
+ },
+ {
+ "move": "CURSE",
+ "level": 17
+ },
+ {
+ "move": "SUPERPOWER",
+ "level": 25
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 33
+ },
+ {
+ "move": "IRON_DEFENSE",
+ "level": 41
+ },
+ {
+ "move": "CHARGE_BEAM",
+ "level": 49
+ },
+ {
+ "move": "LOCK_ON",
+ "level": 57
+ },
+ {
+ "move": "ZAP_CANNON",
+ "level": 65
+ },
+ {
+ "move": "STONE_EDGE",
+ "level": 73
+ },
+ {
+ "move": "HAMMER_ARM",
+ "level": 81
+ },
+ {
+ "move": "HYPER_BEAM",
+ "level": 89
+ }
+ ]
+ },
+ {
+ "species": "REGICE",
+ "moves": [
+ {
+ "move": "EXPLOSION",
+ "level": 1
+ },
+ {
+ "move": "ICY_WIND",
+ "level": 9
+ },
+ {
+ "move": "CURSE",
+ "level": 17
+ },
+ {
+ "move": "SUPERPOWER",
+ "level": 25
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 33
+ },
+ {
+ "move": "AMNESIA",
+ "level": 41
+ },
+ {
+ "move": "CHARGE_BEAM",
+ "level": 49
+ },
+ {
+ "move": "LOCK_ON",
+ "level": 57
+ },
+ {
+ "move": "ZAP_CANNON",
+ "level": 65
+ },
+ {
+ "move": "ICE_BEAM",
+ "level": 73
+ },
+ {
+ "move": "HAMMER_ARM",
+ "level": 81
+ },
+ {
+ "move": "HYPER_BEAM",
+ "level": 89
+ }
+ ]
+ },
+ {
+ "species": "REGISTEEL",
+ "moves": [
+ {
+ "move": "EXPLOSION",
+ "level": 1
+ },
+ {
+ "move": "METAL_CLAW",
+ "level": 9
+ },
+ {
+ "move": "CURSE",
+ "level": 17
+ },
+ {
+ "move": "SUPERPOWER",
+ "level": 25
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 33
+ },
+ {
+ "move": "IRON_DEFENSE",
+ "level": 41
+ },
+ {
+ "move": "AMNESIA",
+ "level": 41
+ },
+ {
+ "move": "CHARGE_BEAM",
+ "level": 49
+ },
+ {
+ "move": "LOCK_ON",
+ "level": 57
+ },
+ {
+ "move": "ZAP_CANNON",
+ "level": 65
+ },
+ {
+ "move": "IRON_HEAD",
+ "level": 73
+ },
+ {
+ "move": "FLASH_CANNON",
+ "level": 73
+ },
+ {
+ "move": "HAMMER_ARM",
+ "level": 81
+ },
+ {
+ "move": "HYPER_BEAM",
+ "level": 89
+ }
+ ]
+ },
+ {
+ "species": "LATIAS",
+ "moves": [
+ {
+ "move": "PSYWAVE",
+ "level": 1
+ },
+ {
+ "move": "WISH",
+ "level": 5
+ },
+ {
+ "move": "HELPING_HAND",
+ "level": 10
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 15
+ },
+ {
+ "move": "DRAGON_BREATH",
+ "level": 20
+ },
+ {
+ "move": "WATER_SPORT",
+ "level": 25
+ },
+ {
+ "move": "REFRESH",
+ "level": 30
+ },
+ {
+ "move": "MIST_BALL",
+ "level": 35
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 40
+ },
+ {
+ "move": "RECOVER",
+ "level": 45
+ },
+ {
+ "move": "PSYCHO_SHIFT",
+ "level": 50
+ },
+ {
+ "move": "CHARM",
+ "level": 55
+ },
+ {
+ "move": "HEALING_WISH",
+ "level": 60
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 65
+ },
+ {
+ "move": "DRAGON_PULSE",
+ "level": 70
+ }
+ ]
+ },
+ {
+ "species": "LATIOS",
+ "moves": [
+ {
+ "move": "PSYWAVE",
+ "level": 1
+ },
+ {
+ "move": "HEAL_BLOCK",
+ "level": 5
+ },
+ {
+ "move": "HELPING_HAND",
+ "level": 10
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 15
+ },
+ {
+ "move": "DRAGON_BREATH",
+ "level": 20
+ },
+ {
+ "move": "PROTECT",
+ "level": 25
+ },
+ {
+ "move": "REFRESH",
+ "level": 30
+ },
+ {
+ "move": "LUSTER_PURGE",
+ "level": 35
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 40
+ },
+ {
+ "move": "RECOVER",
+ "level": 45
+ },
+ {
+ "move": "PSYCHO_SHIFT",
+ "level": 50
+ },
+ {
+ "move": "DRAGON_DANCE",
+ "level": 55
+ },
+ {
+ "move": "MEMENTO",
+ "level": 60
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 65
+ },
+ {
+ "move": "DRAGON_PULSE",
+ "level": 70
+ }
+ ]
+ },
+ {
+ "species": "KYOGRE",
+ "moves": [
+ {
+ "move": "WATER_PULSE",
+ "level": 1
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 5
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 15
+ },
+ {
+ "move": "BODY_SLAM",
+ "level": 20
+ },
+ {
+ "move": "CALM_MIND",
+ "level": 30
+ },
+ {
+ "move": "ICE_BEAM",
+ "level": 35
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 45
+ },
+ {
+ "move": "REST",
+ "level": 50
+ },
+ {
+ "move": "SHEER_COLD",
+ "level": 60
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 65
+ },
+ {
+ "move": "AQUA_TAIL",
+ "level": 75
+ },
+ {
+ "move": "WATER_SPOUT",
+ "level": 80
+ }
+ ]
+ },
+ {
+ "species": "GROUDON",
+ "moves": [
+ {
+ "move": "MUD_SHOT",
+ "level": 1
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 5
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 15
+ },
+ {
+ "move": "SLASH",
+ "level": 20
+ },
+ {
+ "move": "BULK_UP",
+ "level": 30
+ },
+ {
+ "move": "EARTHQUAKE",
+ "level": 35
+ },
+ {
+ "move": "FIRE_BLAST",
+ "level": 45
+ },
+ {
+ "move": "REST",
+ "level": 50
+ },
+ {
+ "move": "FISSURE",
+ "level": 60
+ },
+ {
+ "move": "SOLAR_BEAM",
+ "level": 65
+ },
+ {
+ "move": "EARTH_POWER",
+ "level": 75
+ },
+ {
+ "move": "ERUPTION",
+ "level": 80
+ }
+ ]
+ },
+ {
+ "species": "RAYQUAZA",
+ "moves": [
+ {
+ "move": "TWISTER",
+ "level": 1
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 5
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 15
+ },
+ {
+ "move": "DRAGON_CLAW",
+ "level": 20
+ },
+ {
+ "move": "DRAGON_DANCE",
+ "level": 30
+ },
+ {
+ "move": "CRUNCH",
+ "level": 35
+ },
+ {
+ "move": "FLY",
+ "level": 45
+ },
+ {
+ "move": "REST",
+ "level": 50
+ },
+ {
+ "move": "EXTREME_SPEED",
+ "level": 60
+ },
+ {
+ "move": "HYPER_BEAM",
+ "level": 65
+ },
+ {
+ "move": "DRAGON_PULSE",
+ "level": 75
+ },
+ {
+ "move": "OUTRAGE",
+ "level": 80
+ }
+ ]
+ },
+ {
+ "species": "JIRACHI",
+ "moves": [
+ {
+ "move": "WISH",
+ "level": 1
+ },
+ {
+ "move": "CONFUSION",
+ "level": 1
+ },
+ {
+ "move": "REST",
+ "level": 5
+ },
+ {
+ "move": "SWIFT",
+ "level": 10
+ },
+ {
+ "move": "HELPING_HAND",
+ "level": 15
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 20
+ },
+ {
+ "move": "REFRESH",
+ "level": 25
+ },
+ {
+ "move": "REST",
+ "level": 30
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 35
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 40
+ },
+ {
+ "move": "GRAVITY",
+ "level": 45
+ },
+ {
+ "move": "HEALING_WISH",
+ "level": 50
+ },
+ {
+ "move": "FUTURE_SIGHT",
+ "level": 55
+ },
+ {
+ "move": "COSMIC_POWER",
+ "level": 60
+ },
+ {
+ "move": "LAST_RESORT",
+ "level": 65
+ },
+ {
+ "move": "DOOM_DESIRE",
+ "level": 70
+ }
+ ]
+ },
+ {
+ "species": "DEOXYS",
+ "moves": [
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "WRAP",
+ "level": 1
+ },
+ {
+ "move": "NIGHT_SHADE",
+ "level": 9
+ },
+ {
+ "move": "TELEPORT",
+ "level": 17
+ },
+ {
+ "move": "KNOCK_OFF",
+ "level": 25
+ },
+ {
+ "move": "PURSUIT",
+ "level": 33
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 41
+ },
+ {
+ "move": "SNATCH",
+ "level": 49
+ },
+ {
+ "move": "PSYCHO_SHIFT",
+ "level": 57
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 65
+ },
+ {
+ "move": "COSMIC_POWER",
+ "level": 73
+ },
+ {
+ "move": "RECOVER",
+ "level": 81
+ },
+ {
+ "move": "PSYCHO_BOOST",
+ "level": 89
+ },
+ {
+ "move": "HYPER_BEAM",
+ "level": 97
+ }
+ ]
+ },
+ {
+ "species": "TURTWIG",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "WITHDRAW",
+ "level": 5
+ },
+ {
+ "move": "ABSORB",
+ "level": 9
+ },
+ {
+ "move": "RAZOR_LEAF",
+ "level": 13
+ },
+ {
+ "move": "CURSE",
+ "level": 17
+ },
+ {
+ "move": "BITE",
+ "level": 21
+ },
+ {
+ "move": "MEGA_DRAIN",
+ "level": 25
+ },
+ {
+ "move": "LEECH_SEED",
+ "level": 29
+ },
+ {
+ "move": "SYNTHESIS",
+ "level": 33
+ },
+ {
+ "move": "CRUNCH",
+ "level": 37
+ },
+ {
+ "move": "GIGA_DRAIN",
+ "level": 41
+ },
+ {
+ "move": "LEAF_STORM",
+ "level": 45
+ }
+ ]
+ },
+ {
+ "species": "GROTLE",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "WITHDRAW",
+ "level": 1
+ },
+ {
+ "move": "WITHDRAW",
+ "level": 5
+ },
+ {
+ "move": "ABSORB",
+ "level": 9
+ },
+ {
+ "move": "RAZOR_LEAF",
+ "level": 13
+ },
+ {
+ "move": "CURSE",
+ "level": 17
+ },
+ {
+ "move": "BITE",
+ "level": 22
+ },
+ {
+ "move": "MEGA_DRAIN",
+ "level": 27
+ },
+ {
+ "move": "LEECH_SEED",
+ "level": 32
+ },
+ {
+ "move": "SYNTHESIS",
+ "level": 37
+ },
+ {
+ "move": "CRUNCH",
+ "level": 42
+ },
+ {
+ "move": "GIGA_DRAIN",
+ "level": 47
+ },
+ {
+ "move": "LEAF_STORM",
+ "level": 52
+ }
+ ]
+ },
+ {
+ "species": "TORTERRA",
+ "moves": [
+ {
+ "move": "WOOD_HAMMER",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "WITHDRAW",
+ "level": 1
+ },
+ {
+ "move": "ABSORB",
+ "level": 1
+ },
+ {
+ "move": "RAZOR_LEAF",
+ "level": 1
+ },
+ {
+ "move": "WITHDRAW",
+ "level": 5
+ },
+ {
+ "move": "ABSORB",
+ "level": 9
+ },
+ {
+ "move": "RAZOR_LEAF",
+ "level": 13
+ },
+ {
+ "move": "CURSE",
+ "level": 17
+ },
+ {
+ "move": "BITE",
+ "level": 22
+ },
+ {
+ "move": "MEGA_DRAIN",
+ "level": 27
+ },
+ {
+ "move": "EARTHQUAKE",
+ "level": 32
+ },
+ {
+ "move": "LEECH_SEED",
+ "level": 33
+ },
+ {
+ "move": "SYNTHESIS",
+ "level": 39
+ },
+ {
+ "move": "CRUNCH",
+ "level": 45
+ },
+ {
+ "move": "GIGA_DRAIN",
+ "level": 51
+ },
+ {
+ "move": "LEAF_STORM",
+ "level": 57
+ }
+ ]
+ },
+ {
+ "species": "CHIMCHAR",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "EMBER",
+ "level": 7
+ },
+ {
+ "move": "TAUNT",
+ "level": 9
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 15
+ },
+ {
+ "move": "FLAME_WHEEL",
+ "level": 17
+ },
+ {
+ "move": "NASTY_PLOT",
+ "level": 23
+ },
+ {
+ "move": "TORMENT",
+ "level": 25
+ },
+ {
+ "move": "FACADE",
+ "level": 31
+ },
+ {
+ "move": "FIRE_SPIN",
+ "level": 33
+ },
+ {
+ "move": "SLACK_OFF",
+ "level": 39
+ },
+ {
+ "move": "FLAMETHROWER",
+ "level": 41
+ }
+ ]
+ },
+ {
+ "species": "MONFERNO",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "EMBER",
+ "level": 1
+ },
+ {
+ "move": "EMBER",
+ "level": 7
+ },
+ {
+ "move": "TAUNT",
+ "level": 9
+ },
+ {
+ "move": "MACH_PUNCH",
+ "level": 14
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 16
+ },
+ {
+ "move": "FLAME_WHEEL",
+ "level": 19
+ },
+ {
+ "move": "FEINT",
+ "level": 26
+ },
+ {
+ "move": "TORMENT",
+ "level": 29
+ },
+ {
+ "move": "CLOSE_COMBAT",
+ "level": 36
+ },
+ {
+ "move": "FIRE_SPIN",
+ "level": 39
+ },
+ {
+ "move": "SLACK_OFF",
+ "level": 46
+ },
+ {
+ "move": "FLARE_BLITZ",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "INFERNAPE",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "EMBER",
+ "level": 1
+ },
+ {
+ "move": "TAUNT",
+ "level": 1
+ },
+ {
+ "move": "EMBER",
+ "level": 7
+ },
+ {
+ "move": "TAUNT",
+ "level": 9
+ },
+ {
+ "move": "MACH_PUNCH",
+ "level": 14
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 17
+ },
+ {
+ "move": "FLAME_WHEEL",
+ "level": 21
+ },
+ {
+ "move": "FEINT",
+ "level": 29
+ },
+ {
+ "move": "PUNISHMENT",
+ "level": 33
+ },
+ {
+ "move": "CLOSE_COMBAT",
+ "level": 41
+ },
+ {
+ "move": "FIRE_SPIN",
+ "level": 45
+ },
+ {
+ "move": "CALM_MIND",
+ "level": 53
+ },
+ {
+ "move": "FLARE_BLITZ",
+ "level": 57
+ }
+ ]
+ },
+ {
+ "species": "PIPLUP",
+ "moves": [
+ {
+ "move": "POUND",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 4
+ },
+ {
+ "move": "BUBBLE",
+ "level": 8
+ },
+ {
+ "move": "WATER_SPORT",
+ "level": 11
+ },
+ {
+ "move": "PECK",
+ "level": 15
+ },
+ {
+ "move": "BIDE",
+ "level": 18
+ },
+ {
+ "move": "BUBBLE_BEAM",
+ "level": 22
+ },
+ {
+ "move": "FURY_ATTACK",
+ "level": 25
+ },
+ {
+ "move": "BRINE",
+ "level": 29
+ },
+ {
+ "move": "WHIRLPOOL",
+ "level": 32
+ },
+ {
+ "move": "MIST",
+ "level": 36
+ },
+ {
+ "move": "DRILL_PECK",
+ "level": 39
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 43
+ }
+ ]
+ },
+ {
+ "species": "PRINPLUP",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 4
+ },
+ {
+ "move": "BUBBLE",
+ "level": 8
+ },
+ {
+ "move": "WATER_SPORT",
+ "level": 11
+ },
+ {
+ "move": "PECK",
+ "level": 15
+ },
+ {
+ "move": "METAL_CLAW",
+ "level": 16
+ },
+ {
+ "move": "BIDE",
+ "level": 19
+ },
+ {
+ "move": "BUBBLE_BEAM",
+ "level": 24
+ },
+ {
+ "move": "FURY_ATTACK",
+ "level": 28
+ },
+ {
+ "move": "BRINE",
+ "level": 33
+ },
+ {
+ "move": "WHIRLPOOL",
+ "level": 37
+ },
+ {
+ "move": "MIST",
+ "level": 42
+ },
+ {
+ "move": "DRILL_PECK",
+ "level": 46
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 51
+ }
+ ]
+ },
+ {
+ "species": "EMPOLEON",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "BUBBLE",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 4
+ },
+ {
+ "move": "BUBBLE",
+ "level": 8
+ },
+ {
+ "move": "SWORDS_DANCE",
+ "level": 11
+ },
+ {
+ "move": "PECK",
+ "level": 15
+ },
+ {
+ "move": "METAL_CLAW",
+ "level": 16
+ },
+ {
+ "move": "SWAGGER",
+ "level": 19
+ },
+ {
+ "move": "BUBBLE_BEAM",
+ "level": 24
+ },
+ {
+ "move": "FURY_ATTACK",
+ "level": 28
+ },
+ {
+ "move": "BRINE",
+ "level": 33
+ },
+ {
+ "move": "AQUA_JET",
+ "level": 36
+ },
+ {
+ "move": "WHIRLPOOL",
+ "level": 39
+ },
+ {
+ "move": "MIST",
+ "level": 46
+ },
+ {
+ "move": "DRILL_PECK",
+ "level": 52
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 59
+ }
+ ]
+ },
+ {
+ "species": "STARLY",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 5
+ },
+ {
+ "move": "WING_ATTACK",
+ "level": 9
+ },
+ {
+ "move": "DOUBLE_TEAM",
+ "level": 13
+ },
+ {
+ "move": "ENDEAVOR",
+ "level": 17
+ },
+ {
+ "move": "WHIRLWIND",
+ "level": 21
+ },
+ {
+ "move": "AERIAL_ACE",
+ "level": 25
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 29
+ },
+ {
+ "move": "AGILITY",
+ "level": 33
+ },
+ {
+ "move": "BRAVE_BIRD",
+ "level": 37
+ }
+ ]
+ },
+ {
+ "species": "STARAVIA",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 5
+ },
+ {
+ "move": "WING_ATTACK",
+ "level": 9
+ },
+ {
+ "move": "DOUBLE_TEAM",
+ "level": 13
+ },
+ {
+ "move": "ENDEAVOR",
+ "level": 18
+ },
+ {
+ "move": "WHIRLWIND",
+ "level": 23
+ },
+ {
+ "move": "AERIAL_ACE",
+ "level": 28
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 33
+ },
+ {
+ "move": "AGILITY",
+ "level": 38
+ },
+ {
+ "move": "BRAVE_BIRD",
+ "level": 43
+ }
+ ]
+ },
+ {
+ "species": "STARAPTOR",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "WING_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 5
+ },
+ {
+ "move": "WING_ATTACK",
+ "level": 9
+ },
+ {
+ "move": "DOUBLE_TEAM",
+ "level": 13
+ },
+ {
+ "move": "ENDEAVOR",
+ "level": 18
+ },
+ {
+ "move": "WHIRLWIND",
+ "level": 23
+ },
+ {
+ "move": "AERIAL_ACE",
+ "level": 28
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 33
+ },
+ {
+ "move": "CLOSE_COMBAT",
+ "level": 34
+ },
+ {
+ "move": "AGILITY",
+ "level": 41
+ },
+ {
+ "move": "BRAVE_BIRD",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "BIDOOF",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 5
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 9
+ },
+ {
+ "move": "ROLLOUT",
+ "level": 13
+ },
+ {
+ "move": "HEADBUTT",
+ "level": 17
+ },
+ {
+ "move": "HYPER_FANG",
+ "level": 21
+ },
+ {
+ "move": "YAWN",
+ "level": 25
+ },
+ {
+ "move": "AMNESIA",
+ "level": 29
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 33
+ },
+ {
+ "move": "SUPER_FANG",
+ "level": 37
+ },
+ {
+ "move": "SUPERPOWER",
+ "level": 41
+ }
+ ]
+ },
+ {
+ "species": "BIBAREL",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 5
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 9
+ },
+ {
+ "move": "ROLLOUT",
+ "level": 13
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 15
+ },
+ {
+ "move": "HEADBUTT",
+ "level": 18
+ },
+ {
+ "move": "HYPER_FANG",
+ "level": 23
+ },
+ {
+ "move": "YAWN",
+ "level": 28
+ },
+ {
+ "move": "AMNESIA",
+ "level": 33
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 38
+ },
+ {
+ "move": "SUPER_FANG",
+ "level": 43
+ },
+ {
+ "move": "SUPERPOWER",
+ "level": 48
+ }
+ ]
+ },
+ {
+ "species": "KRICKETOT",
+ "moves": [
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "BIDE",
+ "level": 1
+ }
+ ]
+ },
+ {
+ "species": "KRICKETUNE",
+ "moves": [
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "BIDE",
+ "level": 1
+ },
+ {
+ "move": "FURY_CUTTER",
+ "level": 10
+ },
+ {
+ "move": "LEECH_LIFE",
+ "level": 14
+ },
+ {
+ "move": "SING",
+ "level": 18
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 22
+ },
+ {
+ "move": "X_SCISSOR",
+ "level": 26
+ },
+ {
+ "move": "SCREECH",
+ "level": 30
+ },
+ {
+ "move": "BUG_BUZZ",
+ "level": 34
+ },
+ {
+ "move": "PERISH_SONG",
+ "level": 38
+ }
+ ]
+ },
+ {
+ "species": "SHINX",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 5
+ },
+ {
+ "move": "CHARGE",
+ "level": 9
+ },
+ {
+ "move": "BITE",
+ "level": 13
+ },
+ {
+ "move": "SPARK",
+ "level": 17
+ },
+ {
+ "move": "ROAR",
+ "level": 21
+ },
+ {
+ "move": "SWAGGER",
+ "level": 25
+ },
+ {
+ "move": "CRUNCH",
+ "level": 29
+ },
+ {
+ "move": "THUNDER_FANG",
+ "level": 33
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 37
+ },
+ {
+ "move": "DISCHARGE",
+ "level": 41
+ }
+ ]
+ },
+ {
+ "species": "LUXIO",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 5
+ },
+ {
+ "move": "CHARGE",
+ "level": 9
+ },
+ {
+ "move": "BITE",
+ "level": 13
+ },
+ {
+ "move": "SPARK",
+ "level": 18
+ },
+ {
+ "move": "ROAR",
+ "level": 23
+ },
+ {
+ "move": "SWAGGER",
+ "level": 28
+ },
+ {
+ "move": "CRUNCH",
+ "level": 33
+ },
+ {
+ "move": "THUNDER_FANG",
+ "level": 38
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 43
+ },
+ {
+ "move": "DISCHARGE",
+ "level": 48
+ }
+ ]
+ },
+ {
+ "species": "LUXRAY",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "CHARGE",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 5
+ },
+ {
+ "move": "CHARGE",
+ "level": 9
+ },
+ {
+ "move": "BITE",
+ "level": 13
+ },
+ {
+ "move": "SPARK",
+ "level": 18
+ },
+ {
+ "move": "ROAR",
+ "level": 23
+ },
+ {
+ "move": "SWAGGER",
+ "level": 28
+ },
+ {
+ "move": "CRUNCH",
+ "level": 35
+ },
+ {
+ "move": "THUNDER_FANG",
+ "level": 42
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 49
+ },
+ {
+ "move": "DISCHARGE",
+ "level": 56
+ }
+ ]
+ },
+ {
+ "species": "BUDEW",
+ "moves": [
+ {
+ "move": "ABSORB",
+ "level": 1
+ },
+ {
+ "move": "GROWTH",
+ "level": 4
+ },
+ {
+ "move": "WATER_SPORT",
+ "level": 7
+ },
+ {
+ "move": "STUN_SPORE",
+ "level": 10
+ },
+ {
+ "move": "MEGA_DRAIN",
+ "level": 13
+ },
+ {
+ "move": "WORRY_SEED",
+ "level": 16
+ }
+ ]
+ },
+ {
+ "species": "ROSERADE",
+ "moves": [
+ {
+ "move": "WEATHER_BALL",
+ "level": 1
+ },
+ {
+ "move": "POISON_STING",
+ "level": 1
+ },
+ {
+ "move": "MEGA_DRAIN",
+ "level": 1
+ },
+ {
+ "move": "MAGICAL_LEAF",
+ "level": 1
+ },
+ {
+ "move": "SWEET_SCENT",
+ "level": 1
+ }
+ ]
+ },
+ {
+ "species": "CRANIDOS",
+ "moves": [
+ {
+ "move": "HEADBUTT",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 6
+ },
+ {
+ "move": "PURSUIT",
+ "level": 10
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 15
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 19
+ },
+ {
+ "move": "ASSURANCE",
+ "level": 24
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 28
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 33
+ },
+ {
+ "move": "SCREECH",
+ "level": 37
+ },
+ {
+ "move": "HEAD_SMASH",
+ "level": 43
+ }
+ ]
+ },
+ {
+ "species": "RAMPARDOS",
+ "moves": [
+ {
+ "move": "HEADBUTT",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 6
+ },
+ {
+ "move": "PURSUIT",
+ "level": 10
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 15
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 19
+ },
+ {
+ "move": "ASSURANCE",
+ "level": 24
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 28
+ },
+ {
+ "move": "ENDEAVOR",
+ "level": 30
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 36
+ },
+ {
+ "move": "SCREECH",
+ "level": 43
+ },
+ {
+ "move": "HEAD_SMASH",
+ "level": 52
+ }
+ ]
+ },
+ {
+ "species": "SHIELDON",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "PROTECT",
+ "level": 1
+ },
+ {
+ "move": "TAUNT",
+ "level": 6
+ },
+ {
+ "move": "METAL_SOUND",
+ "level": 10
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 15
+ },
+ {
+ "move": "IRON_DEFENSE",
+ "level": 19
+ },
+ {
+ "move": "SWAGGER",
+ "level": 24
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 28
+ },
+ {
+ "move": "ENDURE",
+ "level": 33
+ },
+ {
+ "move": "METAL_BURST",
+ "level": 37
+ },
+ {
+ "move": "IRON_HEAD",
+ "level": 43
+ }
+ ]
+ },
+ {
+ "species": "BASTIODON",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "PROTECT",
+ "level": 1
+ },
+ {
+ "move": "TAUNT",
+ "level": 1
+ },
+ {
+ "move": "METAL_SOUND",
+ "level": 1
+ },
+ {
+ "move": "TAUNT",
+ "level": 6
+ },
+ {
+ "move": "METAL_SOUND",
+ "level": 10
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 15
+ },
+ {
+ "move": "IRON_DEFENSE",
+ "level": 19
+ },
+ {
+ "move": "SWAGGER",
+ "level": 24
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 28
+ },
+ {
+ "move": "BLOCK",
+ "level": 30
+ },
+ {
+ "move": "ENDURE",
+ "level": 36
+ },
+ {
+ "move": "METAL_BURST",
+ "level": 43
+ },
+ {
+ "move": "IRON_HEAD",
+ "level": 52
+ }
+ ]
+ },
+ {
+ "species": "BURMY",
+ "moves": [
+ {
+ "move": "PROTECT",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 10
+ },
+ {
+ "move": "HIDDEN_POWER",
+ "level": 20
+ }
+ ]
+ },
+ {
+ "species": "WORMADAM",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "PROTECT",
+ "level": 10
+ },
+ {
+ "move": "HIDDEN_POWER",
+ "level": 20
+ },
+ {
+ "move": "CONFUSION",
+ "level": 23
+ },
+ {
+ "move": "RAZOR_LEAF",
+ "level": 26
+ },
+ {
+ "move": "GROWTH",
+ "level": 29
+ },
+ {
+ "move": "PSYBEAM",
+ "level": 32
+ },
+ {
+ "move": "CAPTIVATE",
+ "level": 35
+ },
+ {
+ "move": "FLAIL",
+ "level": 38
+ },
+ {
+ "move": "ATTRACT",
+ "level": 41
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 44
+ },
+ {
+ "move": "LEAF_STORM",
+ "level": 47
+ }
+ ]
+ },
+ {
+ "species": "MOTHIM",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "PROTECT",
+ "level": 10
+ },
+ {
+ "move": "HIDDEN_POWER",
+ "level": 20
+ },
+ {
+ "move": "CONFUSION",
+ "level": 23
+ },
+ {
+ "move": "GUST",
+ "level": 26
+ },
+ {
+ "move": "POISON_POWDER",
+ "level": 29
+ },
+ {
+ "move": "PSYBEAM",
+ "level": 32
+ },
+ {
+ "move": "CAMOUFLAGE",
+ "level": 35
+ },
+ {
+ "move": "SILVER_WIND",
+ "level": 38
+ },
+ {
+ "move": "AIR_SLASH",
+ "level": 41
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 44
+ },
+ {
+ "move": "BUG_BUZZ",
+ "level": 47
+ }
+ ]
+ },
+ {
+ "species": "COMBEE",
+ "moves": [
+ {
+ "move": "SWEET_SCENT",
+ "level": 1
+ },
+ {
+ "move": "GUST",
+ "level": 1
+ }
+ ]
+ },
+ {
+ "species": "VESPIQUEN",
+ "moves": [
+ {
+ "move": "SWEET_SCENT",
+ "level": 1
+ },
+ {
+ "move": "GUST",
+ "level": 1
+ },
+ {
+ "move": "POISON_STING",
+ "level": 3
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 7
+ },
+ {
+ "move": "FURY_CUTTER",
+ "level": 9
+ },
+ {
+ "move": "DEFEND_ORDER",
+ "level": 13
+ },
+ {
+ "move": "PURSUIT",
+ "level": 15
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 19
+ },
+ {
+ "move": "POWER_GEM",
+ "level": 21
+ },
+ {
+ "move": "HEAL_ORDER",
+ "level": 25
+ },
+ {
+ "move": "TOXIC",
+ "level": 27
+ },
+ {
+ "move": "SLASH",
+ "level": 31
+ },
+ {
+ "move": "CAPTIVATE",
+ "level": 33
+ },
+ {
+ "move": "ATTACK_ORDER",
+ "level": 37
+ },
+ {
+ "move": "SWAGGER",
+ "level": 39
+ },
+ {
+ "move": "DESTINY_BOND",
+ "level": 43
+ }
+ ]
+ },
+ {
+ "species": "PACHIRISU",
+ "moves": [
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "BIDE",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 5
+ },
+ {
+ "move": "CHARM",
+ "level": 9
+ },
+ {
+ "move": "SPARK",
+ "level": 13
+ },
+ {
+ "move": "ENDURE",
+ "level": 17
+ },
+ {
+ "move": "SWIFT",
+ "level": 21
+ },
+ {
+ "move": "SWEET_KISS",
+ "level": 25
+ },
+ {
+ "move": "DISCHARGE",
+ "level": 29
+ },
+ {
+ "move": "SUPER_FANG",
+ "level": 33
+ },
+ {
+ "move": "LAST_RESORT",
+ "level": 37
+ }
+ ]
+ },
+ {
+ "species": "BUIZEL",
+ "moves": [
+ {
+ "move": "SONIC_BOOM",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "WATER_SPORT",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 3
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 6
+ },
+ {
+ "move": "PURSUIT",
+ "level": 10
+ },
+ {
+ "move": "SWIFT",
+ "level": 15
+ },
+ {
+ "move": "AQUA_JET",
+ "level": 21
+ },
+ {
+ "move": "AGILITY",
+ "level": 28
+ },
+ {
+ "move": "WHIRLPOOL",
+ "level": 36
+ },
+ {
+ "move": "RAZOR_WIND",
+ "level": 45
+ }
+ ]
+ },
+ {
+ "species": "FLOATZEL",
+ "moves": [
+ {
+ "move": "ICE_FANG",
+ "level": 1
+ },
+ {
+ "move": "SONIC_BOOM",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "WATER_SPORT",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 3
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 6
+ },
+ {
+ "move": "PURSUIT",
+ "level": 10
+ },
+ {
+ "move": "SWIFT",
+ "level": 15
+ },
+ {
+ "move": "AQUA_JET",
+ "level": 21
+ },
+ {
+ "move": "CRUNCH",
+ "level": 26
+ },
+ {
+ "move": "AGILITY",
+ "level": 29
+ },
+ {
+ "move": "WHIRLPOOL",
+ "level": 39
+ },
+ {
+ "move": "RAZOR_WIND",
+ "level": 50
+ }
+ ]
+ },
+ {
+ "species": "CHERUBI",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "GROWTH",
+ "level": 7
+ },
+ {
+ "move": "LEECH_SEED",
+ "level": 10
+ },
+ {
+ "move": "HELPING_HAND",
+ "level": 13
+ },
+ {
+ "move": "MAGICAL_LEAF",
+ "level": 19
+ },
+ {
+ "move": "SUNNY_DAY",
+ "level": 22
+ },
+ {
+ "move": "WORRY_SEED",
+ "level": 28
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 31
+ },
+ {
+ "move": "SOLAR_BEAM",
+ "level": 37
+ },
+ {
+ "move": "LUCKY_CHANT",
+ "level": 40
+ }
+ ]
+ },
+ {
+ "species": "CHERRIM",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "GROWTH",
+ "level": 1
+ },
+ {
+ "move": "GROWTH",
+ "level": 7
+ },
+ {
+ "move": "LEECH_SEED",
+ "level": 10
+ },
+ {
+ "move": "HELPING_HAND",
+ "level": 13
+ },
+ {
+ "move": "MAGICAL_LEAF",
+ "level": 19
+ },
+ {
+ "move": "SUNNY_DAY",
+ "level": 22
+ },
+ {
+ "move": "PETAL_DANCE",
+ "level": 25
+ },
+ {
+ "move": "WORRY_SEED",
+ "level": 30
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 35
+ },
+ {
+ "move": "SOLAR_BEAM",
+ "level": 43
+ },
+ {
+ "move": "LUCKY_CHANT",
+ "level": 48
+ }
+ ]
+ },
+ {
+ "species": "SHELLOS",
+ "moves": [
+ {
+ "move": "MUD_SLAP",
+ "level": 1
+ },
+ {
+ "move": "MUD_SPORT",
+ "level": 2
+ },
+ {
+ "move": "HARDEN",
+ "level": 4
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 7
+ },
+ {
+ "move": "MUD_BOMB",
+ "level": 11
+ },
+ {
+ "move": "HIDDEN_POWER",
+ "level": 16
+ },
+ {
+ "move": "RAIN_DANCE",
+ "level": 22
+ },
+ {
+ "move": "BODY_SLAM",
+ "level": 29
+ },
+ {
+ "move": "MUDDY_WATER",
+ "level": 37
+ },
+ {
+ "move": "RECOVER",
+ "level": 46
+ }
+ ]
+ },
+ {
+ "species": "GASTRODON",
+ "moves": [
+ {
+ "move": "MUD_SLAP",
+ "level": 1
+ },
+ {
+ "move": "MUD_SPORT",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 1
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 1
+ },
+ {
+ "move": "MUD_SPORT",
+ "level": 2
+ },
+ {
+ "move": "HARDEN",
+ "level": 4
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 7
+ },
+ {
+ "move": "MUD_BOMB",
+ "level": 11
+ },
+ {
+ "move": "HIDDEN_POWER",
+ "level": 16
+ },
+ {
+ "move": "RAIN_DANCE",
+ "level": 22
+ },
+ {
+ "move": "BODY_SLAM",
+ "level": 29
+ },
+ {
+ "move": "MUDDY_WATER",
+ "level": 41
+ },
+ {
+ "move": "RECOVER",
+ "level": 54
+ }
+ ]
+ },
+ {
+ "species": "AMBIPOM",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "ASTONISH",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 4
+ },
+ {
+ "move": "ASTONISH",
+ "level": 8
+ },
+ {
+ "move": "BATON_PASS",
+ "level": 11
+ },
+ {
+ "move": "TICKLE",
+ "level": 15
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 18
+ },
+ {
+ "move": "SWIFT",
+ "level": 22
+ },
+ {
+ "move": "SCREECH",
+ "level": 25
+ },
+ {
+ "move": "AGILITY",
+ "level": 29
+ },
+ {
+ "move": "DOUBLE_HIT",
+ "level": 32
+ },
+ {
+ "move": "FLING",
+ "level": 36
+ },
+ {
+ "move": "NASTY_PLOT",
+ "level": 39
+ },
+ {
+ "move": "LAST_RESORT",
+ "level": 43
+ }
+ ]
+ },
+ {
+ "species": "DRIFLOON",
+ "moves": [
+ {
+ "move": "CONSTRICT",
+ "level": 1
+ },
+ {
+ "move": "MINIMIZE",
+ "level": 1
+ },
+ {
+ "move": "ASTONISH",
+ "level": 6
+ },
+ {
+ "move": "GUST",
+ "level": 11
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 14
+ },
+ {
+ "move": "PAYBACK",
+ "level": 17
+ },
+ {
+ "move": "STOCKPILE",
+ "level": 22
+ },
+ {
+ "move": "SWALLOW",
+ "level": 27
+ },
+ {
+ "move": "SPIT_UP",
+ "level": 27
+ },
+ {
+ "move": "OMINOUS_WIND",
+ "level": 30
+ },
+ {
+ "move": "BATON_PASS",
+ "level": 33
+ },
+ {
+ "move": "SHADOW_BALL",
+ "level": 38
+ },
+ {
+ "move": "EXPLOSION",
+ "level": 43
+ }
+ ]
+ },
+ {
+ "species": "DRIFBLIM",
+ "moves": [
+ {
+ "move": "CONSTRICT",
+ "level": 1
+ },
+ {
+ "move": "MINIMIZE",
+ "level": 1
+ },
+ {
+ "move": "ASTONISH",
+ "level": 1
+ },
+ {
+ "move": "GUST",
+ "level": 1
+ },
+ {
+ "move": "ASTONISH",
+ "level": 6
+ },
+ {
+ "move": "GUST",
+ "level": 11
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 14
+ },
+ {
+ "move": "PAYBACK",
+ "level": 17
+ },
+ {
+ "move": "STOCKPILE",
+ "level": 22
+ },
+ {
+ "move": "SWALLOW",
+ "level": 27
+ },
+ {
+ "move": "SPIT_UP",
+ "level": 27
+ },
+ {
+ "move": "OMINOUS_WIND",
+ "level": 32
+ },
+ {
+ "move": "BATON_PASS",
+ "level": 37
+ },
+ {
+ "move": "SHADOW_BALL",
+ "level": 44
+ },
+ {
+ "move": "EXPLOSION",
+ "level": 51
+ }
+ ]
+ },
+ {
+ "species": "BUNEARY",
+ "moves": [
+ {
+ "move": "SPLASH",
+ "level": 1
+ },
+ {
+ "move": "POUND",
+ "level": 1
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 1
+ },
+ {
+ "move": "FORESIGHT",
+ "level": 1
+ },
+ {
+ "move": "ENDURE",
+ "level": 6
+ },
+ {
+ "move": "FRUSTRATION",
+ "level": 13
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 16
+ },
+ {
+ "move": "JUMP_KICK",
+ "level": 23
+ },
+ {
+ "move": "BATON_PASS",
+ "level": 26
+ },
+ {
+ "move": "AGILITY",
+ "level": 33
+ },
+ {
+ "move": "DIZZY_PUNCH",
+ "level": 36
+ },
+ {
+ "move": "CHARM",
+ "level": 43
+ },
+ {
+ "move": "BOUNCE",
+ "level": 46
+ },
+ {
+ "move": "HEALING_WISH",
+ "level": 53
+ }
+ ]
+ },
+ {
+ "species": "LOPUNNY",
+ "moves": [
+ {
+ "move": "MIRROR_COAT",
+ "level": 1
+ },
+ {
+ "move": "MAGIC_COAT",
+ "level": 1
+ },
+ {
+ "move": "SPLASH",
+ "level": 1
+ },
+ {
+ "move": "POUND",
+ "level": 1
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 1
+ },
+ {
+ "move": "FORESIGHT",
+ "level": 1
+ },
+ {
+ "move": "ENDURE",
+ "level": 6
+ },
+ {
+ "move": "RETURN",
+ "level": 13
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 16
+ },
+ {
+ "move": "JUMP_KICK",
+ "level": 23
+ },
+ {
+ "move": "BATON_PASS",
+ "level": 26
+ },
+ {
+ "move": "AGILITY",
+ "level": 33
+ },
+ {
+ "move": "DIZZY_PUNCH",
+ "level": 36
+ },
+ {
+ "move": "CHARM",
+ "level": 43
+ },
+ {
+ "move": "BOUNCE",
+ "level": 46
+ },
+ {
+ "move": "HEALING_WISH",
+ "level": 53
+ }
+ ]
+ },
+ {
+ "species": "MISMAGIUS",
+ "moves": [
+ {
+ "move": "LUCKY_CHANT",
+ "level": 1
+ },
+ {
+ "move": "MAGICAL_LEAF",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "PSYWAVE",
+ "level": 1
+ },
+ {
+ "move": "SPITE",
+ "level": 1
+ },
+ {
+ "move": "ASTONISH",
+ "level": 1
+ }
+ ]
+ },
+ {
+ "species": "HONCHKROW",
+ "moves": [
+ {
+ "move": "ASTONISH",
+ "level": 1
+ },
+ {
+ "move": "PURSUIT",
+ "level": 1
+ },
+ {
+ "move": "HAZE",
+ "level": 1
+ },
+ {
+ "move": "WING_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "SWAGGER",
+ "level": 25
+ },
+ {
+ "move": "NASTY_PLOT",
+ "level": 35
+ },
+ {
+ "move": "NIGHT_SLASH",
+ "level": 45
+ },
+ {
+ "move": "DARK_PULSE",
+ "level": 55
+ }
+ ]
+ },
+ {
+ "species": "GLAMEOW",
+ "moves": [
+ {
+ "move": "FAKE_OUT",
+ "level": 1
+ },
+ {
+ "move": "SCRATCH",
+ "level": 5
+ },
+ {
+ "move": "GROWL",
+ "level": 8
+ },
+ {
+ "move": "HYPNOSIS",
+ "level": 13
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 17
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 20
+ },
+ {
+ "move": "CHARM",
+ "level": 25
+ },
+ {
+ "move": "ASSIST",
+ "level": 29
+ },
+ {
+ "move": "CAPTIVATE",
+ "level": 32
+ },
+ {
+ "move": "SLASH",
+ "level": 37
+ },
+ {
+ "move": "SUCKER_PUNCH",
+ "level": 41
+ },
+ {
+ "move": "ATTRACT",
+ "level": 45
+ }
+ ]
+ },
+ {
+ "species": "PURUGLY",
+ "moves": [
+ {
+ "move": "FAKE_OUT",
+ "level": 1
+ },
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 1
+ },
+ {
+ "move": "SCRATCH",
+ "level": 5
+ },
+ {
+ "move": "GROWL",
+ "level": 8
+ },
+ {
+ "move": "HYPNOSIS",
+ "level": 13
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 17
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 20
+ },
+ {
+ "move": "CHARM",
+ "level": 25
+ },
+ {
+ "move": "ASSIST",
+ "level": 29
+ },
+ {
+ "move": "CAPTIVATE",
+ "level": 32
+ },
+ {
+ "move": "SLASH",
+ "level": 37
+ },
+ {
+ "move": "SWAGGER",
+ "level": 38
+ },
+ {
+ "move": "BODY_SLAM",
+ "level": 45
+ },
+ {
+ "move": "ATTRACT",
+ "level": 53
+ }
+ ]
+ },
+ {
+ "species": "CHINGLING",
+ "moves": [
+ {
+ "move": "WRAP",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 6
+ },
+ {
+ "move": "ASTONISH",
+ "level": 9
+ },
+ {
+ "move": "CONFUSION",
+ "level": 14
+ },
+ {
+ "move": "UPROAR",
+ "level": 17
+ },
+ {
+ "move": "LAST_RESORT",
+ "level": 22
+ }
+ ]
+ },
+ {
+ "species": "STUNKY",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 1
+ },
+ {
+ "move": "POISON_GAS",
+ "level": 4
+ },
+ {
+ "move": "SCREECH",
+ "level": 7
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 11
+ },
+ {
+ "move": "SMOKESCREEN",
+ "level": 15
+ },
+ {
+ "move": "TOXIC",
+ "level": 20
+ },
+ {
+ "move": "SLASH",
+ "level": 25
+ },
+ {
+ "move": "NIGHT_SLASH",
+ "level": 31
+ },
+ {
+ "move": "MEMENTO",
+ "level": 37
+ },
+ {
+ "move": "EXPLOSION",
+ "level": 44
+ }
+ ]
+ },
+ {
+ "species": "SKUNTANK",
+ "moves": [
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "FOCUS_ENERGY",
+ "level": 1
+ },
+ {
+ "move": "POISON_GAS",
+ "level": 1
+ },
+ {
+ "move": "POISON_GAS",
+ "level": 4
+ },
+ {
+ "move": "SCREECH",
+ "level": 7
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 11
+ },
+ {
+ "move": "SMOKESCREEN",
+ "level": 15
+ },
+ {
+ "move": "TOXIC",
+ "level": 20
+ },
+ {
+ "move": "SLASH",
+ "level": 25
+ },
+ {
+ "move": "NIGHT_SLASH",
+ "level": 31
+ },
+ {
+ "move": "FLAMETHROWER",
+ "level": 34
+ },
+ {
+ "move": "MEMENTO",
+ "level": 41
+ },
+ {
+ "move": "EXPLOSION",
+ "level": 52
+ }
+ ]
+ },
+ {
+ "species": "BRONZOR",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "CONFUSION",
+ "level": 1
+ },
+ {
+ "move": "HYPNOSIS",
+ "level": 7
+ },
+ {
+ "move": "IMPRISON",
+ "level": 12
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 14
+ },
+ {
+ "move": "EXTRASENSORY",
+ "level": 19
+ },
+ {
+ "move": "IRON_DEFENSE",
+ "level": 26
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 30
+ },
+ {
+ "move": "GYRO_BALL",
+ "level": 35
+ },
+ {
+ "move": "FUTURE_SIGHT",
+ "level": 37
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 41
+ },
+ {
+ "move": "PAYBACK",
+ "level": 49
+ },
+ {
+ "move": "HEAL_BLOCK",
+ "level": 52
+ }
+ ]
+ },
+ {
+ "species": "BRONZONG",
+ "moves": [
+ {
+ "move": "SUNNY_DAY",
+ "level": 1
+ },
+ {
+ "move": "RAIN_DANCE",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "CONFUSION",
+ "level": 1
+ },
+ {
+ "move": "HYPNOSIS",
+ "level": 1
+ },
+ {
+ "move": "IMPRISON",
+ "level": 1
+ },
+ {
+ "move": "HYPNOSIS",
+ "level": 7
+ },
+ {
+ "move": "IMPRISON",
+ "level": 12
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 14
+ },
+ {
+ "move": "EXTRASENSORY",
+ "level": 19
+ },
+ {
+ "move": "IRON_DEFENSE",
+ "level": 26
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 30
+ },
+ {
+ "move": "BLOCK",
+ "level": 33
+ },
+ {
+ "move": "GYRO_BALL",
+ "level": 38
+ },
+ {
+ "move": "FUTURE_SIGHT",
+ "level": 43
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 50
+ },
+ {
+ "move": "PAYBACK",
+ "level": 61
+ },
+ {
+ "move": "HEAL_BLOCK",
+ "level": 67
+ }
+ ]
+ },
+ {
+ "species": "BONSLY",
+ "moves": [
+ {
+ "move": "FAKE_TEARS",
+ "level": 1
+ },
+ {
+ "move": "COPYCAT",
+ "level": 1
+ },
+ {
+ "move": "FLAIL",
+ "level": 6
+ },
+ {
+ "move": "LOW_KICK",
+ "level": 9
+ },
+ {
+ "move": "ROCK_THROW",
+ "level": 14
+ },
+ {
+ "move": "MIMIC",
+ "level": 17
+ },
+ {
+ "move": "BLOCK",
+ "level": 22
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 25
+ },
+ {
+ "move": "ROCK_TOMB",
+ "level": 30
+ },
+ {
+ "move": "ROCK_SLIDE",
+ "level": 33
+ },
+ {
+ "move": "SLAM",
+ "level": 38
+ },
+ {
+ "move": "SUCKER_PUNCH",
+ "level": 41
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 46
+ }
+ ]
+ },
+ {
+ "species": "MIME_JR",
+ "moves": [
+ {
+ "move": "TICKLE",
+ "level": 1
+ },
+ {
+ "move": "BARRIER",
+ "level": 1
+ },
+ {
+ "move": "CONFUSION",
+ "level": 1
+ },
+ {
+ "move": "COPYCAT",
+ "level": 4
+ },
+ {
+ "move": "MEDITATE",
+ "level": 8
+ },
+ {
+ "move": "ENCORE",
+ "level": 11
+ },
+ {
+ "move": "DOUBLE_SLAP",
+ "level": 15
+ },
+ {
+ "move": "MIMIC",
+ "level": 18
+ },
+ {
+ "move": "LIGHT_SCREEN",
+ "level": 22
+ },
+ {
+ "move": "REFLECT",
+ "level": 22
+ },
+ {
+ "move": "PSYBEAM",
+ "level": 25
+ },
+ {
+ "move": "SUBSTITUTE",
+ "level": 29
+ },
+ {
+ "move": "RECYCLE",
+ "level": 32
+ },
+ {
+ "move": "TRICK",
+ "level": 36
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 39
+ },
+ {
+ "move": "ROLE_PLAY",
+ "level": 43
+ },
+ {
+ "move": "BATON_PASS",
+ "level": 46
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 50
+ }
+ ]
+ },
+ {
+ "species": "HAPPINY",
+ "moves": [
+ {
+ "move": "POUND",
+ "level": 1
+ },
+ {
+ "move": "CHARM",
+ "level": 1
+ },
+ {
+ "move": "COPYCAT",
+ "level": 5
+ },
+ {
+ "move": "REFRESH",
+ "level": 9
+ },
+ {
+ "move": "SWEET_KISS",
+ "level": 12
+ }
+ ]
+ },
+ {
+ "species": "CHATOT",
+ "moves": [
+ {
+ "move": "PECK",
+ "level": 1
+ },
+ {
+ "move": "GROWL",
+ "level": 5
+ },
+ {
+ "move": "MIRROR_MOVE",
+ "level": 9
+ },
+ {
+ "move": "SING",
+ "level": 13
+ },
+ {
+ "move": "FURY_ATTACK",
+ "level": 17
+ },
+ {
+ "move": "CHATTER",
+ "level": 21
+ },
+ {
+ "move": "TAUNT",
+ "level": 25
+ },
+ {
+ "move": "MIMIC",
+ "level": 29
+ },
+ {
+ "move": "ROOST",
+ "level": 33
+ },
+ {
+ "move": "UPROAR",
+ "level": 37
+ },
+ {
+ "move": "FEATHER_DANCE",
+ "level": 41
+ },
+ {
+ "move": "HYPER_VOICE",
+ "level": 45
+ }
+ ]
+ },
+ {
+ "species": "SPIRITOMB",
+ "moves": [
+ {
+ "move": "CURSE",
+ "level": 1
+ },
+ {
+ "move": "PURSUIT",
+ "level": 1
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 1
+ },
+ {
+ "move": "SPITE",
+ "level": 1
+ },
+ {
+ "move": "SHADOW_SNEAK",
+ "level": 1
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 7
+ },
+ {
+ "move": "HYPNOSIS",
+ "level": 13
+ },
+ {
+ "move": "DREAM_EATER",
+ "level": 19
+ },
+ {
+ "move": "OMINOUS_WIND",
+ "level": 25
+ },
+ {
+ "move": "SUCKER_PUNCH",
+ "level": 31
+ },
+ {
+ "move": "NASTY_PLOT",
+ "level": 37
+ },
+ {
+ "move": "MEMENTO",
+ "level": 43
+ },
+ {
+ "move": "DARK_PULSE",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "GIBLE",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 3
+ },
+ {
+ "move": "DRAGON_RAGE",
+ "level": 7
+ },
+ {
+ "move": "SANDSTORM",
+ "level": 13
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 15
+ },
+ {
+ "move": "SAND_TOMB",
+ "level": 19
+ },
+ {
+ "move": "SLASH",
+ "level": 25
+ },
+ {
+ "move": "DRAGON_CLAW",
+ "level": 27
+ },
+ {
+ "move": "DIG",
+ "level": 31
+ },
+ {
+ "move": "DRAGON_RUSH",
+ "level": 37
+ }
+ ]
+ },
+ {
+ "species": "GABITE",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 3
+ },
+ {
+ "move": "DRAGON_RAGE",
+ "level": 7
+ },
+ {
+ "move": "SANDSTORM",
+ "level": 13
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 15
+ },
+ {
+ "move": "SAND_TOMB",
+ "level": 19
+ },
+ {
+ "move": "SLASH",
+ "level": 28
+ },
+ {
+ "move": "DRAGON_CLAW",
+ "level": 33
+ },
+ {
+ "move": "DIG",
+ "level": 40
+ },
+ {
+ "move": "DRAGON_RUSH",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "GARCHOMP",
+ "moves": [
+ {
+ "move": "FIRE_FANG",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "DRAGON_RAGE",
+ "level": 1
+ },
+ {
+ "move": "SANDSTORM",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 3
+ },
+ {
+ "move": "DRAGON_RAGE",
+ "level": 7
+ },
+ {
+ "move": "SANDSTORM",
+ "level": 13
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 15
+ },
+ {
+ "move": "SAND_TOMB",
+ "level": 19
+ },
+ {
+ "move": "SLASH",
+ "level": 28
+ },
+ {
+ "move": "DRAGON_CLAW",
+ "level": 33
+ },
+ {
+ "move": "DIG",
+ "level": 40
+ },
+ {
+ "move": "CRUNCH",
+ "level": 48
+ },
+ {
+ "move": "DRAGON_RUSH",
+ "level": 55
+ }
+ ]
+ },
+ {
+ "species": "MUNCHLAX",
+ "moves": [
+ {
+ "move": "METRONOME",
+ "level": 1
+ },
+ {
+ "move": "ODOR_SLEUTH",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 4
+ },
+ {
+ "move": "AMNESIA",
+ "level": 9
+ },
+ {
+ "move": "LICK",
+ "level": 12
+ },
+ {
+ "move": "RECYCLE",
+ "level": 17
+ },
+ {
+ "move": "SCREECH",
+ "level": 20
+ },
+ {
+ "move": "STOCKPILE",
+ "level": 25
+ },
+ {
+ "move": "SWALLOW",
+ "level": 28
+ },
+ {
+ "move": "BODY_SLAM",
+ "level": 33
+ },
+ {
+ "move": "FLING",
+ "level": 36
+ },
+ {
+ "move": "ROLLOUT",
+ "level": 41
+ },
+ {
+ "move": "NATURAL_GIFT",
+ "level": 44
+ },
+ {
+ "move": "LAST_RESORT",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "RIOLU",
+ "moves": [
+ {
+ "move": "QUICK_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "FORESIGHT",
+ "level": 1
+ },
+ {
+ "move": "ENDURE",
+ "level": 1
+ },
+ {
+ "move": "COUNTER",
+ "level": 6
+ },
+ {
+ "move": "FORCE_PALM",
+ "level": 11
+ },
+ {
+ "move": "FEINT",
+ "level": 15
+ },
+ {
+ "move": "REVERSAL",
+ "level": 19
+ },
+ {
+ "move": "SCREECH",
+ "level": 24
+ },
+ {
+ "move": "COPYCAT",
+ "level": 29
+ }
+ ]
+ },
+ {
+ "species": "LUCARIO",
+ "moves": [
+ {
+ "move": "DARK_PULSE",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "FORESIGHT",
+ "level": 1
+ },
+ {
+ "move": "DETECT",
+ "level": 1
+ },
+ {
+ "move": "METAL_CLAW",
+ "level": 1
+ },
+ {
+ "move": "COUNTER",
+ "level": 6
+ },
+ {
+ "move": "FORCE_PALM",
+ "level": 11
+ },
+ {
+ "move": "FEINT",
+ "level": 15
+ },
+ {
+ "move": "BONE_RUSH",
+ "level": 19
+ },
+ {
+ "move": "METAL_SOUND",
+ "level": 24
+ },
+ {
+ "move": "ME_FIRST",
+ "level": 29
+ },
+ {
+ "move": "SWORDS_DANCE",
+ "level": 33
+ },
+ {
+ "move": "AURA_SPHERE",
+ "level": 37
+ },
+ {
+ "move": "CLOSE_COMBAT",
+ "level": 42
+ },
+ {
+ "move": "DRAGON_PULSE",
+ "level": 47
+ },
+ {
+ "move": "EXTREME_SPEED",
+ "level": 51
+ }
+ ]
+ },
+ {
+ "species": "HIPPOPOTAS",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "BITE",
+ "level": 7
+ },
+ {
+ "move": "YAWN",
+ "level": 13
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 19
+ },
+ {
+ "move": "SAND_TOMB",
+ "level": 25
+ },
+ {
+ "move": "CRUNCH",
+ "level": 31
+ },
+ {
+ "move": "EARTHQUAKE",
+ "level": 37
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 44
+ },
+ {
+ "move": "FISSURE",
+ "level": 50
+ }
+ ]
+ },
+ {
+ "species": "HIPPOWDON",
+ "moves": [
+ {
+ "move": "ICE_FANG",
+ "level": 1
+ },
+ {
+ "move": "FIRE_FANG",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_FANG",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "BITE",
+ "level": 1
+ },
+ {
+ "move": "YAWN",
+ "level": 1
+ },
+ {
+ "move": "BITE",
+ "level": 7
+ },
+ {
+ "move": "YAWN",
+ "level": 13
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 19
+ },
+ {
+ "move": "SAND_TOMB",
+ "level": 25
+ },
+ {
+ "move": "CRUNCH",
+ "level": 31
+ },
+ {
+ "move": "EARTHQUAKE",
+ "level": 40
+ },
+ {
+ "move": "DOUBLE_EDGE",
+ "level": 50
+ },
+ {
+ "move": "FISSURE",
+ "level": 60
+ }
+ ]
+ },
+ {
+ "species": "SKORUPI",
+ "moves": [
+ {
+ "move": "BITE",
+ "level": 1
+ },
+ {
+ "move": "POISON_STING",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 6
+ },
+ {
+ "move": "PIN_MISSILE",
+ "level": 12
+ },
+ {
+ "move": "ACUPRESSURE",
+ "level": 17
+ },
+ {
+ "move": "KNOCK_OFF",
+ "level": 23
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 28
+ },
+ {
+ "move": "TOXIC_SPIKES",
+ "level": 34
+ },
+ {
+ "move": "POISON_FANG",
+ "level": 39
+ },
+ {
+ "move": "CRUNCH",
+ "level": 45
+ },
+ {
+ "move": "CROSS_POISON",
+ "level": 50
+ }
+ ]
+ },
+ {
+ "species": "DRAPION",
+ "moves": [
+ {
+ "move": "THUNDER_FANG",
+ "level": 1
+ },
+ {
+ "move": "ICE_FANG",
+ "level": 1
+ },
+ {
+ "move": "FIRE_FANG",
+ "level": 1
+ },
+ {
+ "move": "BITE",
+ "level": 1
+ },
+ {
+ "move": "POISON_STING",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "PIN_MISSILE",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 6
+ },
+ {
+ "move": "PIN_MISSILE",
+ "level": 12
+ },
+ {
+ "move": "ACUPRESSURE",
+ "level": 17
+ },
+ {
+ "move": "KNOCK_OFF",
+ "level": 23
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 28
+ },
+ {
+ "move": "TOXIC_SPIKES",
+ "level": 34
+ },
+ {
+ "move": "POISON_FANG",
+ "level": 39
+ },
+ {
+ "move": "CRUNCH",
+ "level": 49
+ },
+ {
+ "move": "CROSS_POISON",
+ "level": 58
+ }
+ ]
+ },
+ {
+ "species": "CROAGUNK",
+ "moves": [
+ {
+ "move": "ASTONISH",
+ "level": 1
+ },
+ {
+ "move": "MUD_SLAP",
+ "level": 3
+ },
+ {
+ "move": "POISON_STING",
+ "level": 8
+ },
+ {
+ "move": "TAUNT",
+ "level": 10
+ },
+ {
+ "move": "PURSUIT",
+ "level": 15
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 17
+ },
+ {
+ "move": "REVENGE",
+ "level": 22
+ },
+ {
+ "move": "SWAGGER",
+ "level": 24
+ },
+ {
+ "move": "MUD_BOMB",
+ "level": 29
+ },
+ {
+ "move": "SUCKER_PUNCH",
+ "level": 31
+ },
+ {
+ "move": "NASTY_PLOT",
+ "level": 36
+ },
+ {
+ "move": "POISON_JAB",
+ "level": 38
+ },
+ {
+ "move": "SLUDGE_BOMB",
+ "level": 43
+ },
+ {
+ "move": "FLATTER",
+ "level": 45
+ }
+ ]
+ },
+ {
+ "species": "TOXICROAK",
+ "moves": [
+ {
+ "move": "ASTONISH",
+ "level": 1
+ },
+ {
+ "move": "MUD_SLAP",
+ "level": 1
+ },
+ {
+ "move": "POISON_STING",
+ "level": 1
+ },
+ {
+ "move": "MUD_SLAP",
+ "level": 3
+ },
+ {
+ "move": "POISON_STING",
+ "level": 8
+ },
+ {
+ "move": "TAUNT",
+ "level": 10
+ },
+ {
+ "move": "PURSUIT",
+ "level": 15
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 17
+ },
+ {
+ "move": "REVENGE",
+ "level": 22
+ },
+ {
+ "move": "SWAGGER",
+ "level": 24
+ },
+ {
+ "move": "MUD_BOMB",
+ "level": 29
+ },
+ {
+ "move": "SUCKER_PUNCH",
+ "level": 31
+ },
+ {
+ "move": "NASTY_PLOT",
+ "level": 36
+ },
+ {
+ "move": "POISON_JAB",
+ "level": 41
+ },
+ {
+ "move": "SLUDGE_BOMB",
+ "level": 49
+ },
+ {
+ "move": "FLATTER",
+ "level": 54
+ }
+ ]
+ },
+ {
+ "species": "CARNIVINE",
+ "moves": [
+ {
+ "move": "BIND",
+ "level": 1
+ },
+ {
+ "move": "GROWTH",
+ "level": 1
+ },
+ {
+ "move": "BITE",
+ "level": 7
+ },
+ {
+ "move": "VINE_WHIP",
+ "level": 11
+ },
+ {
+ "move": "SWEET_SCENT",
+ "level": 17
+ },
+ {
+ "move": "INGRAIN",
+ "level": 21
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 27
+ },
+ {
+ "move": "STOCKPILE",
+ "level": 31
+ },
+ {
+ "move": "SPIT_UP",
+ "level": 31
+ },
+ {
+ "move": "SWALLOW",
+ "level": 31
+ },
+ {
+ "move": "CRUNCH",
+ "level": 37
+ },
+ {
+ "move": "WRING_OUT",
+ "level": 41
+ },
+ {
+ "move": "POWER_WHIP",
+ "level": 47
+ }
+ ]
+ },
+ {
+ "species": "FINNEON",
+ "moves": [
+ {
+ "move": "POUND",
+ "level": 1
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 6
+ },
+ {
+ "move": "ATTRACT",
+ "level": 10
+ },
+ {
+ "move": "RAIN_DANCE",
+ "level": 13
+ },
+ {
+ "move": "GUST",
+ "level": 17
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 22
+ },
+ {
+ "move": "CAPTIVATE",
+ "level": 26
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 29
+ },
+ {
+ "move": "AQUA_RING",
+ "level": 33
+ },
+ {
+ "move": "WHIRLPOOL",
+ "level": 38
+ },
+ {
+ "move": "U_TURN",
+ "level": 42
+ },
+ {
+ "move": "BOUNCE",
+ "level": 45
+ },
+ {
+ "move": "SILVER_WIND",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "LUMINEON",
+ "moves": [
+ {
+ "move": "POUND",
+ "level": 1
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 1
+ },
+ {
+ "move": "ATTRACT",
+ "level": 1
+ },
+ {
+ "move": "WATER_GUN",
+ "level": 6
+ },
+ {
+ "move": "ATTRACT",
+ "level": 10
+ },
+ {
+ "move": "RAIN_DANCE",
+ "level": 13
+ },
+ {
+ "move": "GUST",
+ "level": 17
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 22
+ },
+ {
+ "move": "CAPTIVATE",
+ "level": 26
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 29
+ },
+ {
+ "move": "AQUA_RING",
+ "level": 35
+ },
+ {
+ "move": "WHIRLPOOL",
+ "level": 42
+ },
+ {
+ "move": "U_TURN",
+ "level": 48
+ },
+ {
+ "move": "BOUNCE",
+ "level": 53
+ },
+ {
+ "move": "SILVER_WIND",
+ "level": 59
+ }
+ ]
+ },
+ {
+ "species": "MANTYKE",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "BUBBLE",
+ "level": 1
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 4
+ },
+ {
+ "move": "BUBBLE_BEAM",
+ "level": 10
+ },
+ {
+ "move": "HEADBUTT",
+ "level": 13
+ },
+ {
+ "move": "AGILITY",
+ "level": 19
+ },
+ {
+ "move": "WING_ATTACK",
+ "level": 22
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 28
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 31
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 37
+ },
+ {
+ "move": "BOUNCE",
+ "level": 40
+ },
+ {
+ "move": "AQUA_RING",
+ "level": 46
+ },
+ {
+ "move": "HYDRO_PUMP",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "SNOVER",
+ "moves": [
+ {
+ "move": "POWDER_SNOW",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "RAZOR_LEAF",
+ "level": 5
+ },
+ {
+ "move": "ICY_WIND",
+ "level": 9
+ },
+ {
+ "move": "GRASS_WHISTLE",
+ "level": 13
+ },
+ {
+ "move": "SWAGGER",
+ "level": 17
+ },
+ {
+ "move": "MIST",
+ "level": 21
+ },
+ {
+ "move": "ICE_SHARD",
+ "level": 26
+ },
+ {
+ "move": "INGRAIN",
+ "level": 31
+ },
+ {
+ "move": "WOOD_HAMMER",
+ "level": 36
+ },
+ {
+ "move": "BLIZZARD",
+ "level": 41
+ },
+ {
+ "move": "SHEER_COLD",
+ "level": 46
+ }
+ ]
+ },
+ {
+ "species": "ABOMASNOW",
+ "moves": [
+ {
+ "move": "ICE_PUNCH",
+ "level": 1
+ },
+ {
+ "move": "POWDER_SNOW",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "RAZOR_LEAF",
+ "level": 1
+ },
+ {
+ "move": "ICY_WIND",
+ "level": 1
+ },
+ {
+ "move": "RAZOR_LEAF",
+ "level": 5
+ },
+ {
+ "move": "ICY_WIND",
+ "level": 9
+ },
+ {
+ "move": "GRASS_WHISTLE",
+ "level": 13
+ },
+ {
+ "move": "SWAGGER",
+ "level": 17
+ },
+ {
+ "move": "MIST",
+ "level": 21
+ },
+ {
+ "move": "ICE_SHARD",
+ "level": 26
+ },
+ {
+ "move": "INGRAIN",
+ "level": 31
+ },
+ {
+ "move": "WOOD_HAMMER",
+ "level": 36
+ },
+ {
+ "move": "BLIZZARD",
+ "level": 47
+ },
+ {
+ "move": "SHEER_COLD",
+ "level": 58
+ }
+ ]
+ },
+ {
+ "species": "WEAVILE",
+ "moves": [
+ {
+ "move": "EMBARGO",
+ "level": 1
+ },
+ {
+ "move": "REVENGE",
+ "level": 1
+ },
+ {
+ "move": "ASSURANCE",
+ "level": 1
+ },
+ {
+ "move": "SCRATCH",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "TAUNT",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 8
+ },
+ {
+ "move": "SCREECH",
+ "level": 10
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 14
+ },
+ {
+ "move": "FURY_SWIPES",
+ "level": 21
+ },
+ {
+ "move": "NASTY_PLOT",
+ "level": 24
+ },
+ {
+ "move": "ICY_WIND",
+ "level": 28
+ },
+ {
+ "move": "NIGHT_SLASH",
+ "level": 35
+ },
+ {
+ "move": "FLING",
+ "level": 38
+ },
+ {
+ "move": "METAL_CLAW",
+ "level": 42
+ },
+ {
+ "move": "DARK_PULSE",
+ "level": 49
+ }
+ ]
+ },
+ {
+ "species": "MAGNEZONE",
+ "moves": [
+ {
+ "move": "MIRROR_COAT",
+ "level": 1
+ },
+ {
+ "move": "BARRIER",
+ "level": 1
+ },
+ {
+ "move": "METAL_SOUND",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_SHOCK",
+ "level": 1
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_SHOCK",
+ "level": 6
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 11
+ },
+ {
+ "move": "SONIC_BOOM",
+ "level": 14
+ },
+ {
+ "move": "THUNDER_WAVE",
+ "level": 17
+ },
+ {
+ "move": "SPARK",
+ "level": 22
+ },
+ {
+ "move": "LOCK_ON",
+ "level": 27
+ },
+ {
+ "move": "MAGNET_BOMB",
+ "level": 30
+ },
+ {
+ "move": "SCREECH",
+ "level": 34
+ },
+ {
+ "move": "DISCHARGE",
+ "level": 40
+ },
+ {
+ "move": "MIRROR_SHOT",
+ "level": 46
+ },
+ {
+ "move": "MAGNET_RISE",
+ "level": 50
+ },
+ {
+ "move": "GYRO_BALL",
+ "level": 54
+ },
+ {
+ "move": "ZAP_CANNON",
+ "level": 60
+ }
+ ]
+ },
+ {
+ "species": "LICKILICKY",
+ "moves": [
+ {
+ "move": "LICK",
+ "level": 1
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 5
+ },
+ {
+ "move": "DEFENSE_CURL",
+ "level": 9
+ },
+ {
+ "move": "KNOCK_OFF",
+ "level": 13
+ },
+ {
+ "move": "WRAP",
+ "level": 17
+ },
+ {
+ "move": "STOMP",
+ "level": 21
+ },
+ {
+ "move": "DISABLE",
+ "level": 25
+ },
+ {
+ "move": "SLAM",
+ "level": 29
+ },
+ {
+ "move": "ROLLOUT",
+ "level": 33
+ },
+ {
+ "move": "ME_FIRST",
+ "level": 37
+ },
+ {
+ "move": "REFRESH",
+ "level": 41
+ },
+ {
+ "move": "SCREECH",
+ "level": 45
+ },
+ {
+ "move": "POWER_WHIP",
+ "level": 49
+ },
+ {
+ "move": "WRING_OUT",
+ "level": 53
+ },
+ {
+ "move": "GYRO_BALL",
+ "level": 57
+ }
+ ]
+ },
+ {
+ "species": "RHYPERIOR",
+ "moves": [
+ {
+ "move": "POISON_JAB",
+ "level": 1
+ },
+ {
+ "move": "HORN_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "STOMP",
+ "level": 1
+ },
+ {
+ "move": "FURY_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "STOMP",
+ "level": 9
+ },
+ {
+ "move": "FURY_ATTACK",
+ "level": 13
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 21
+ },
+ {
+ "move": "ROCK_BLAST",
+ "level": 25
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 33
+ },
+ {
+ "move": "HORN_DRILL",
+ "level": 37
+ },
+ {
+ "move": "HAMMER_ARM",
+ "level": 42
+ },
+ {
+ "move": "STONE_EDGE",
+ "level": 45
+ },
+ {
+ "move": "EARTHQUAKE",
+ "level": 49
+ },
+ {
+ "move": "MEGAHORN",
+ "level": 57
+ },
+ {
+ "move": "ROCK_WRECKER",
+ "level": 61
+ }
+ ]
+ },
+ {
+ "species": "TANGROWTH",
+ "moves": [
+ {
+ "move": "INGRAIN",
+ "level": 1
+ },
+ {
+ "move": "CONSTRICT",
+ "level": 1
+ },
+ {
+ "move": "SLEEP_POWDER",
+ "level": 5
+ },
+ {
+ "move": "ABSORB",
+ "level": 8
+ },
+ {
+ "move": "GROWTH",
+ "level": 12
+ },
+ {
+ "move": "POISON_POWDER",
+ "level": 15
+ },
+ {
+ "move": "VINE_WHIP",
+ "level": 19
+ },
+ {
+ "move": "BIND",
+ "level": 22
+ },
+ {
+ "move": "MEGA_DRAIN",
+ "level": 26
+ },
+ {
+ "move": "STUN_SPORE",
+ "level": 29
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 33
+ },
+ {
+ "move": "KNOCK_OFF",
+ "level": 36
+ },
+ {
+ "move": "NATURAL_GIFT",
+ "level": 40
+ },
+ {
+ "move": "SLAM",
+ "level": 43
+ },
+ {
+ "move": "TICKLE",
+ "level": 47
+ },
+ {
+ "move": "WRING_OUT",
+ "level": 50
+ },
+ {
+ "move": "POWER_WHIP",
+ "level": 54
+ },
+ {
+ "move": "BLOCK",
+ "level": 57
+ }
+ ]
+ },
+ {
+ "species": "ELECTIVIRE",
+ "moves": [
+ {
+ "move": "FIRE_PUNCH",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_SHOCK",
+ "level": 1
+ },
+ {
+ "move": "LOW_KICK",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_SHOCK",
+ "level": 7
+ },
+ {
+ "move": "LOW_KICK",
+ "level": 10
+ },
+ {
+ "move": "SWIFT",
+ "level": 16
+ },
+ {
+ "move": "SHOCK_WAVE",
+ "level": 19
+ },
+ {
+ "move": "LIGHT_SCREEN",
+ "level": 25
+ },
+ {
+ "move": "THUNDER_PUNCH",
+ "level": 28
+ },
+ {
+ "move": "DISCHARGE",
+ "level": 37
+ },
+ {
+ "move": "THUNDERBOLT",
+ "level": 43
+ },
+ {
+ "move": "SCREECH",
+ "level": 52
+ },
+ {
+ "move": "THUNDER",
+ "level": 58
+ },
+ {
+ "move": "GIGA_IMPACT",
+ "level": 67
+ }
+ ]
+ },
+ {
+ "species": "MAGMORTAR",
+ "moves": [
+ {
+ "move": "THUNDER_PUNCH",
+ "level": 1
+ },
+ {
+ "move": "SMOG",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "EMBER",
+ "level": 1
+ },
+ {
+ "move": "SMOKESCREEN",
+ "level": 1
+ },
+ {
+ "move": "EMBER",
+ "level": 7
+ },
+ {
+ "move": "SMOKESCREEN",
+ "level": 10
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 16
+ },
+ {
+ "move": "FIRE_SPIN",
+ "level": 19
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 25
+ },
+ {
+ "move": "FIRE_PUNCH",
+ "level": 28
+ },
+ {
+ "move": "LAVA_PLUME",
+ "level": 37
+ },
+ {
+ "move": "FLAMETHROWER",
+ "level": 43
+ },
+ {
+ "move": "SUNNY_DAY",
+ "level": 52
+ },
+ {
+ "move": "FIRE_BLAST",
+ "level": 58
+ },
+ {
+ "move": "HYPER_BEAM",
+ "level": 67
+ }
+ ]
+ },
+ {
+ "species": "TOGEKISS",
+ "moves": [
+ {
+ "move": "SKY_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "EXTREME_SPEED",
+ "level": 1
+ },
+ {
+ "move": "AURA_SPHERE",
+ "level": 1
+ },
+ {
+ "move": "AIR_SLASH",
+ "level": 1
+ }
+ ]
+ },
+ {
+ "species": "YANMEGA",
+ "moves": [
+ {
+ "move": "NIGHT_SLASH",
+ "level": 1
+ },
+ {
+ "move": "BUG_BITE",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "FORESIGHT",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "DOUBLE_TEAM",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 6
+ },
+ {
+ "move": "DOUBLE_TEAM",
+ "level": 11
+ },
+ {
+ "move": "SONIC_BOOM",
+ "level": 14
+ },
+ {
+ "move": "DETECT",
+ "level": 17
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 22
+ },
+ {
+ "move": "UPROAR",
+ "level": 27
+ },
+ {
+ "move": "PURSUIT",
+ "level": 30
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 33
+ },
+ {
+ "move": "SLASH",
+ "level": 38
+ },
+ {
+ "move": "SCREECH",
+ "level": 43
+ },
+ {
+ "move": "U_TURN",
+ "level": 46
+ },
+ {
+ "move": "AIR_SLASH",
+ "level": 49
+ },
+ {
+ "move": "BUG_BUZZ",
+ "level": 54
+ }
+ ]
+ },
+ {
+ "species": "LEAFEON",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "HELPING_HAND",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 8
+ },
+ {
+ "move": "RAZOR_LEAF",
+ "level": 15
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 22
+ },
+ {
+ "move": "SYNTHESIS",
+ "level": 29
+ },
+ {
+ "move": "MAGICAL_LEAF",
+ "level": 36
+ },
+ {
+ "move": "GIGA_DRAIN",
+ "level": 43
+ },
+ {
+ "move": "LAST_RESORT",
+ "level": 50
+ },
+ {
+ "move": "GRASS_WHISTLE",
+ "level": 57
+ },
+ {
+ "move": "SUNNY_DAY",
+ "level": 64
+ },
+ {
+ "move": "LEAF_BLADE",
+ "level": 71
+ }
+ ]
+ },
+ {
+ "species": "GLACEON",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "TAIL_WHIP",
+ "level": 1
+ },
+ {
+ "move": "HELPING_HAND",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 8
+ },
+ {
+ "move": "ICY_WIND",
+ "level": 15
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 22
+ },
+ {
+ "move": "BITE",
+ "level": 29
+ },
+ {
+ "move": "ICE_SHARD",
+ "level": 36
+ },
+ {
+ "move": "ICE_FANG",
+ "level": 43
+ },
+ {
+ "move": "LAST_RESORT",
+ "level": 50
+ },
+ {
+ "move": "MIRROR_COAT",
+ "level": 57
+ },
+ {
+ "move": "HAIL",
+ "level": 64
+ },
+ {
+ "move": "BLIZZARD",
+ "level": 71
+ }
+ ]
+ },
+ {
+ "species": "GLISCOR",
+ "moves": [
+ {
+ "move": "THUNDER_FANG",
+ "level": 1
+ },
+ {
+ "move": "ICE_FANG",
+ "level": 1
+ },
+ {
+ "move": "FIRE_FANG",
+ "level": 1
+ },
+ {
+ "move": "POISON_JAB",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 1
+ },
+ {
+ "move": "HARDEN",
+ "level": 1
+ },
+ {
+ "move": "KNOCK_OFF",
+ "level": 1
+ },
+ {
+ "move": "SAND_ATTACK",
+ "level": 5
+ },
+ {
+ "move": "HARDEN",
+ "level": 9
+ },
+ {
+ "move": "KNOCK_OFF",
+ "level": 12
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 16
+ },
+ {
+ "move": "FURY_CUTTER",
+ "level": 20
+ },
+ {
+ "move": "FEINT_ATTACK",
+ "level": 23
+ },
+ {
+ "move": "SCREECH",
+ "level": 27
+ },
+ {
+ "move": "NIGHT_SLASH",
+ "level": 31
+ },
+ {
+ "move": "SWORDS_DANCE",
+ "level": 34
+ },
+ {
+ "move": "U_TURN",
+ "level": 38
+ },
+ {
+ "move": "X_SCISSOR",
+ "level": 42
+ },
+ {
+ "move": "GUILLOTINE",
+ "level": 45
+ }
+ ]
+ },
+ {
+ "species": "MAMOSWINE",
+ "moves": [
+ {
+ "move": "ANCIENT_POWER",
+ "level": 1
+ },
+ {
+ "move": "PECK",
+ "level": 1
+ },
+ {
+ "move": "ODOR_SLEUTH",
+ "level": 1
+ },
+ {
+ "move": "MUD_SPORT",
+ "level": 1
+ },
+ {
+ "move": "POWDER_SNOW",
+ "level": 1
+ },
+ {
+ "move": "MUD_SPORT",
+ "level": 4
+ },
+ {
+ "move": "POWDER_SNOW",
+ "level": 8
+ },
+ {
+ "move": "MUD_SLAP",
+ "level": 13
+ },
+ {
+ "move": "ENDURE",
+ "level": 16
+ },
+ {
+ "move": "MUD_BOMB",
+ "level": 20
+ },
+ {
+ "move": "HAIL",
+ "level": 25
+ },
+ {
+ "move": "ICE_FANG",
+ "level": 28
+ },
+ {
+ "move": "TAKE_DOWN",
+ "level": 32
+ },
+ {
+ "move": "DOUBLE_HIT",
+ "level": 33
+ },
+ {
+ "move": "EARTHQUAKE",
+ "level": 40
+ },
+ {
+ "move": "MIST",
+ "level": 48
+ },
+ {
+ "move": "BLIZZARD",
+ "level": 56
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 65
+ }
+ ]
+ },
+ {
+ "species": "PORYGON_Z",
+ "moves": [
+ {
+ "move": "TRICK_ROOM",
+ "level": 1
+ },
+ {
+ "move": "CONVERSION_2",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "CONVERSION",
+ "level": 1
+ },
+ {
+ "move": "NASTY_PLOT",
+ "level": 1
+ },
+ {
+ "move": "PSYBEAM",
+ "level": 7
+ },
+ {
+ "move": "AGILITY",
+ "level": 12
+ },
+ {
+ "move": "RECOVER",
+ "level": 18
+ },
+ {
+ "move": "MAGNET_RISE",
+ "level": 23
+ },
+ {
+ "move": "SIGNAL_BEAM",
+ "level": 29
+ },
+ {
+ "move": "EMBARGO",
+ "level": 34
+ },
+ {
+ "move": "DISCHARGE",
+ "level": 40
+ },
+ {
+ "move": "LOCK_ON",
+ "level": 45
+ },
+ {
+ "move": "TRI_ATTACK",
+ "level": 51
+ },
+ {
+ "move": "MAGIC_COAT",
+ "level": 56
+ },
+ {
+ "move": "ZAP_CANNON",
+ "level": 62
+ },
+ {
+ "move": "HYPER_BEAM",
+ "level": 67
+ }
+ ]
+ },
+ {
+ "species": "GALLADE",
+ "moves": [
+ {
+ "move": "LEAF_BLADE",
+ "level": 1
+ },
+ {
+ "move": "NIGHT_SLASH",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "CONFUSION",
+ "level": 1
+ },
+ {
+ "move": "DOUBLE_TEAM",
+ "level": 1
+ },
+ {
+ "move": "TELEPORT",
+ "level": 1
+ },
+ {
+ "move": "CONFUSION",
+ "level": 6
+ },
+ {
+ "move": "DOUBLE_TEAM",
+ "level": 10
+ },
+ {
+ "move": "TELEPORT",
+ "level": 12
+ },
+ {
+ "move": "FURY_CUTTER",
+ "level": 17
+ },
+ {
+ "move": "SLASH",
+ "level": 22
+ },
+ {
+ "move": "SWORDS_DANCE",
+ "level": 25
+ },
+ {
+ "move": "PSYCHO_CUT",
+ "level": 31
+ },
+ {
+ "move": "HELPING_HAND",
+ "level": 36
+ },
+ {
+ "move": "FEINT",
+ "level": 39
+ },
+ {
+ "move": "FALSE_SWIPE",
+ "level": 45
+ },
+ {
+ "move": "PROTECT",
+ "level": 50
+ },
+ {
+ "move": "CLOSE_COMBAT",
+ "level": 53
+ }
+ ]
+ },
+ {
+ "species": "PROBOPASS",
+ "moves": [
+ {
+ "move": "MAGNET_RISE",
+ "level": 1
+ },
+ {
+ "move": "GRAVITY",
+ "level": 1
+ },
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "IRON_DEFENSE",
+ "level": 1
+ },
+ {
+ "move": "MAGNET_BOMB",
+ "level": 1
+ },
+ {
+ "move": "BLOCK",
+ "level": 1
+ },
+ {
+ "move": "IRON_DEFENSE",
+ "level": 7
+ },
+ {
+ "move": "MAGNET_BOMB",
+ "level": 13
+ },
+ {
+ "move": "BLOCK",
+ "level": 19
+ },
+ {
+ "move": "THUNDER_WAVE",
+ "level": 25
+ },
+ {
+ "move": "ROCK_SLIDE",
+ "level": 31
+ },
+ {
+ "move": "SANDSTORM",
+ "level": 37
+ },
+ {
+ "move": "REST",
+ "level": 43
+ },
+ {
+ "move": "DISCHARGE",
+ "level": 49
+ },
+ {
+ "move": "STONE_EDGE",
+ "level": 55
+ },
+ {
+ "move": "ZAP_CANNON",
+ "level": 61
+ },
+ {
+ "move": "LOCK_ON",
+ "level": 67
+ },
+ {
+ "move": "EARTH_POWER",
+ "level": 73
+ }
+ ]
+ },
+ {
+ "species": "DUSKNOIR",
+ "moves": [
+ {
+ "move": "FIRE_PUNCH",
+ "level": 1
+ },
+ {
+ "move": "ICE_PUNCH",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_PUNCH",
+ "level": 1
+ },
+ {
+ "move": "GRAVITY",
+ "level": 1
+ },
+ {
+ "move": "BIND",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "NIGHT_SHADE",
+ "level": 1
+ },
+ {
+ "move": "DISABLE",
+ "level": 1
+ },
+ {
+ "move": "DISABLE",
+ "level": 6
+ },
+ {
+ "move": "FORESIGHT",
+ "level": 9
+ },
+ {
+ "move": "ASTONISH",
+ "level": 14
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 17
+ },
+ {
+ "move": "SHADOW_SNEAK",
+ "level": 22
+ },
+ {
+ "move": "PURSUIT",
+ "level": 25
+ },
+ {
+ "move": "CURSE",
+ "level": 30
+ },
+ {
+ "move": "WILL_O_WISP",
+ "level": 33
+ },
+ {
+ "move": "SHADOW_PUNCH",
+ "level": 37
+ },
+ {
+ "move": "MEAN_LOOK",
+ "level": 43
+ },
+ {
+ "move": "PAYBACK",
+ "level": 51
+ },
+ {
+ "move": "FUTURE_SIGHT",
+ "level": 61
+ }
+ ]
+ },
+ {
+ "species": "FROSLASS",
+ "moves": [
+ {
+ "move": "POWDER_SNOW",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "DOUBLE_TEAM",
+ "level": 1
+ },
+ {
+ "move": "ASTONISH",
+ "level": 1
+ },
+ {
+ "move": "DOUBLE_TEAM",
+ "level": 4
+ },
+ {
+ "move": "ASTONISH",
+ "level": 10
+ },
+ {
+ "move": "ICY_WIND",
+ "level": 13
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 19
+ },
+ {
+ "move": "OMINOUS_WIND",
+ "level": 22
+ },
+ {
+ "move": "WAKE_UP_SLAP",
+ "level": 28
+ },
+ {
+ "move": "CAPTIVATE",
+ "level": 31
+ },
+ {
+ "move": "ICE_SHARD",
+ "level": 37
+ },
+ {
+ "move": "HAIL",
+ "level": 40
+ },
+ {
+ "move": "BLIZZARD",
+ "level": 51
+ },
+ {
+ "move": "DESTINY_BOND",
+ "level": 59
+ }
+ ]
+ },
+ {
+ "species": "ROTOM",
+ "moves": [
+ {
+ "move": "TRICK",
+ "level": 1
+ },
+ {
+ "move": "ASTONISH",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_WAVE",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_SHOCK",
+ "level": 1
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 1
+ },
+ {
+ "move": "UPROAR",
+ "level": 8
+ },
+ {
+ "move": "DOUBLE_TEAM",
+ "level": 15
+ },
+ {
+ "move": "SHOCK_WAVE",
+ "level": 22
+ },
+ {
+ "move": "OMINOUS_WIND",
+ "level": 29
+ },
+ {
+ "move": "SUBSTITUTE",
+ "level": 36
+ },
+ {
+ "move": "CHARGE",
+ "level": 43
+ },
+ {
+ "move": "DISCHARGE",
+ "level": 50
+ }
+ ]
+ },
+ {
+ "species": "UXIE",
+ "moves": [
+ {
+ "move": "REST",
+ "level": 1
+ },
+ {
+ "move": "IMPRISON",
+ "level": 6
+ },
+ {
+ "move": "ENDURE",
+ "level": 16
+ },
+ {
+ "move": "CONFUSION",
+ "level": 21
+ },
+ {
+ "move": "YAWN",
+ "level": 31
+ },
+ {
+ "move": "FUTURE_SIGHT",
+ "level": 36
+ },
+ {
+ "move": "AMNESIA",
+ "level": 46
+ },
+ {
+ "move": "EXTRASENSORY",
+ "level": 51
+ },
+ {
+ "move": "FLAIL",
+ "level": 61
+ },
+ {
+ "move": "NATURAL_GIFT",
+ "level": 66
+ },
+ {
+ "move": "MEMENTO",
+ "level": 76
+ }
+ ]
+ },
+ {
+ "species": "MESPRIT",
+ "moves": [
+ {
+ "move": "REST",
+ "level": 1
+ },
+ {
+ "move": "IMPRISON",
+ "level": 6
+ },
+ {
+ "move": "PROTECT",
+ "level": 16
+ },
+ {
+ "move": "CONFUSION",
+ "level": 21
+ },
+ {
+ "move": "LUCKY_CHANT",
+ "level": 31
+ },
+ {
+ "move": "FUTURE_SIGHT",
+ "level": 36
+ },
+ {
+ "move": "CHARM",
+ "level": 46
+ },
+ {
+ "move": "EXTRASENSORY",
+ "level": 51
+ },
+ {
+ "move": "COPYCAT",
+ "level": 61
+ },
+ {
+ "move": "NATURAL_GIFT",
+ "level": 66
+ },
+ {
+ "move": "HEALING_WISH",
+ "level": 76
+ }
+ ]
+ },
+ {
+ "species": "AZELF",
+ "moves": [
+ {
+ "move": "REST",
+ "level": 1
+ },
+ {
+ "move": "IMPRISON",
+ "level": 6
+ },
+ {
+ "move": "DETECT",
+ "level": 16
+ },
+ {
+ "move": "CONFUSION",
+ "level": 21
+ },
+ {
+ "move": "UPROAR",
+ "level": 31
+ },
+ {
+ "move": "FUTURE_SIGHT",
+ "level": 36
+ },
+ {
+ "move": "NASTY_PLOT",
+ "level": 46
+ },
+ {
+ "move": "EXTRASENSORY",
+ "level": 51
+ },
+ {
+ "move": "LAST_RESORT",
+ "level": 61
+ },
+ {
+ "move": "NATURAL_GIFT",
+ "level": 66
+ },
+ {
+ "move": "EXPLOSION",
+ "level": 76
+ }
+ ]
+ },
+ {
+ "species": "DIALGA",
+ "moves": [
+ {
+ "move": "DRAGON_BREATH",
+ "level": 1
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 1
+ },
+ {
+ "move": "METAL_CLAW",
+ "level": 10
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 20
+ },
+ {
+ "move": "DRAGON_CLAW",
+ "level": 30
+ },
+ {
+ "move": "ROAR_OF_TIME",
+ "level": 40
+ },
+ {
+ "move": "HEAL_BLOCK",
+ "level": 50
+ },
+ {
+ "move": "EARTH_POWER",
+ "level": 60
+ },
+ {
+ "move": "SLASH",
+ "level": 70
+ },
+ {
+ "move": "FLASH_CANNON",
+ "level": 80
+ },
+ {
+ "move": "AURA_SPHERE",
+ "level": 90
+ }
+ ]
+ },
+ {
+ "species": "PALKIA",
+ "moves": [
+ {
+ "move": "DRAGON_BREATH",
+ "level": 1
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 1
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 10
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 20
+ },
+ {
+ "move": "DRAGON_CLAW",
+ "level": 30
+ },
+ {
+ "move": "SPACIAL_REND",
+ "level": 40
+ },
+ {
+ "move": "HEAL_BLOCK",
+ "level": 50
+ },
+ {
+ "move": "EARTH_POWER",
+ "level": 60
+ },
+ {
+ "move": "SLASH",
+ "level": 70
+ },
+ {
+ "move": "AQUA_TAIL",
+ "level": 80
+ },
+ {
+ "move": "AURA_SPHERE",
+ "level": 90
+ }
+ ]
+ },
+ {
+ "species": "HEATRAN",
+ "moves": [
+ {
+ "move": "ANCIENT_POWER",
+ "level": 1
+ },
+ {
+ "move": "LEER",
+ "level": 9
+ },
+ {
+ "move": "FIRE_FANG",
+ "level": 17
+ },
+ {
+ "move": "METAL_SOUND",
+ "level": 25
+ },
+ {
+ "move": "CRUNCH",
+ "level": 33
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 41
+ },
+ {
+ "move": "LAVA_PLUME",
+ "level": 49
+ },
+ {
+ "move": "FIRE_SPIN",
+ "level": 57
+ },
+ {
+ "move": "IRON_HEAD",
+ "level": 65
+ },
+ {
+ "move": "EARTH_POWER",
+ "level": 73
+ },
+ {
+ "move": "HEAT_WAVE",
+ "level": 81
+ },
+ {
+ "move": "STONE_EDGE",
+ "level": 88
+ },
+ {
+ "move": "MAGMA_STORM",
+ "level": 96
+ }
+ ]
+ },
+ {
+ "species": "REGIGIGAS",
+ "moves": [
+ {
+ "move": "FIRE_PUNCH",
+ "level": 1
+ },
+ {
+ "move": "ICE_PUNCH",
+ "level": 1
+ },
+ {
+ "move": "THUNDER_PUNCH",
+ "level": 1
+ },
+ {
+ "move": "MEGA_PUNCH",
+ "level": 1
+ },
+ {
+ "move": "KNOCK_OFF",
+ "level": 1
+ },
+ {
+ "move": "CONFUSE_RAY",
+ "level": 1
+ },
+ {
+ "move": "STOMP",
+ "level": 1
+ },
+ {
+ "move": "SUPERPOWER",
+ "level": 25
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 50
+ },
+ {
+ "move": "CRUSH_GRIP",
+ "level": 75
+ },
+ {
+ "move": "GIGA_IMPACT",
+ "level": 100
+ }
+ ]
+ },
+ {
+ "species": "GIRATINA",
+ "moves": [
+ {
+ "move": "DRAGON_BREATH",
+ "level": 1
+ },
+ {
+ "move": "SCARY_FACE",
+ "level": 1
+ },
+ {
+ "move": "OMINOUS_WIND",
+ "level": 10
+ },
+ {
+ "move": "ANCIENT_POWER",
+ "level": 20
+ },
+ {
+ "move": "DRAGON_CLAW",
+ "level": 30
+ },
+ {
+ "move": "SHADOW_FORCE",
+ "level": 40
+ },
+ {
+ "move": "HEAL_BLOCK",
+ "level": 50
+ },
+ {
+ "move": "EARTH_POWER",
+ "level": 60
+ },
+ {
+ "move": "SLASH",
+ "level": 70
+ },
+ {
+ "move": "SHADOW_CLAW",
+ "level": 80
+ },
+ {
+ "move": "AURA_SPHERE",
+ "level": 90
+ }
+ ]
+ },
+ {
+ "species": "CRESSELIA",
+ "moves": [
+ {
+ "move": "CONFUSION",
+ "level": 1
+ },
+ {
+ "move": "DOUBLE_TEAM",
+ "level": 1
+ },
+ {
+ "move": "SAFEGUARD",
+ "level": 11
+ },
+ {
+ "move": "MIST",
+ "level": 20
+ },
+ {
+ "move": "AURORA_BEAM",
+ "level": 29
+ },
+ {
+ "move": "FUTURE_SIGHT",
+ "level": 38
+ },
+ {
+ "move": "SLASH",
+ "level": 47
+ },
+ {
+ "move": "MOONLIGHT",
+ "level": 57
+ },
+ {
+ "move": "PSYCHO_CUT",
+ "level": 66
+ },
+ {
+ "move": "PSYCHO_SHIFT",
+ "level": 75
+ },
+ {
+ "move": "LUNAR_DANCE",
+ "level": 84
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 93
+ }
+ ]
+ },
+ {
+ "species": "PHIONE",
+ "moves": [
+ {
+ "move": "BUBBLE",
+ "level": 1
+ },
+ {
+ "move": "WATER_SPORT",
+ "level": 1
+ },
+ {
+ "move": "CHARM",
+ "level": 9
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 16
+ },
+ {
+ "move": "BUBBLE_BEAM",
+ "level": 24
+ },
+ {
+ "move": "ACID_ARMOR",
+ "level": 31
+ },
+ {
+ "move": "WHIRLPOOL",
+ "level": 39
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 46
+ },
+ {
+ "move": "AQUA_RING",
+ "level": 54
+ },
+ {
+ "move": "DIVE",
+ "level": 61
+ },
+ {
+ "move": "RAIN_DANCE",
+ "level": 69
+ }
+ ]
+ },
+ {
+ "species": "MANAPHY",
+ "moves": [
+ {
+ "move": "TAIL_GLOW",
+ "level": 1
+ },
+ {
+ "move": "BUBBLE",
+ "level": 1
+ },
+ {
+ "move": "WATER_SPORT",
+ "level": 1
+ },
+ {
+ "move": "CHARM",
+ "level": 9
+ },
+ {
+ "move": "SUPERSONIC",
+ "level": 16
+ },
+ {
+ "move": "BUBBLE_BEAM",
+ "level": 24
+ },
+ {
+ "move": "ACID_ARMOR",
+ "level": 31
+ },
+ {
+ "move": "WHIRLPOOL",
+ "level": 39
+ },
+ {
+ "move": "WATER_PULSE",
+ "level": 46
+ },
+ {
+ "move": "AQUA_RING",
+ "level": 54
+ },
+ {
+ "move": "DIVE",
+ "level": 61
+ },
+ {
+ "move": "RAIN_DANCE",
+ "level": 69
+ },
+ {
+ "move": "HEART_SWAP",
+ "level": 76
+ }
+ ]
+ },
+ {
+ "species": "DARKRAI",
+ "moves": [
+ {
+ "move": "NIGHT_SHADE",
+ "level": 1
+ },
+ {
+ "move": "DISABLE",
+ "level": 1
+ },
+ {
+ "move": "QUICK_ATTACK",
+ "level": 11
+ },
+ {
+ "move": "HYPNOSIS",
+ "level": 20
+ },
+ {
+ "move": "PURSUIT",
+ "level": 29
+ },
+ {
+ "move": "NIGHTMARE",
+ "level": 38
+ },
+ {
+ "move": "DOUBLE_TEAM",
+ "level": 47
+ },
+ {
+ "move": "HAZE",
+ "level": 57
+ },
+ {
+ "move": "DARK_VOID",
+ "level": 66
+ },
+ {
+ "move": "EMBARGO",
+ "level": 75
+ },
+ {
+ "move": "DREAM_EATER",
+ "level": 84
+ },
+ {
+ "move": "DARK_PULSE",
+ "level": 93
+ }
+ ]
+ },
+ {
+ "species": "SHAYMIN",
+ "moves": [
+ {
+ "move": "DEFENSE_CURL",
+ "level": 1
+ },
+ {
+ "move": "MAGICAL_LEAF",
+ "level": 10
+ },
+ {
+ "move": "LEECH_SEED",
+ "level": 19
+ },
+ {
+ "move": "SYNTHESIS",
+ "level": 28
+ },
+ {
+ "move": "SWEET_SCENT",
+ "level": 37
+ },
+ {
+ "move": "NATURAL_GIFT",
+ "level": 46
+ },
+ {
+ "move": "WORRY_SEED",
+ "level": 55
+ },
+ {
+ "move": "AROMATHERAPY",
+ "level": 64
+ },
+ {
+ "move": "ENERGY_BALL",
+ "level": 73
+ },
+ {
+ "move": "GRASS_WHISTLE",
+ "level": 82
+ },
+ {
+ "move": "LUCKY_CHANT",
+ "level": 91
+ },
+ {
+ "move": "SEED_FLARE",
+ "level": 100
+ }
+ ]
+ },
+ {
+ "species": "ARCEUS",
+ "moves": [
+ {
+ "move": "SEISMIC_TOSS",
+ "level": 1
+ },
+ {
+ "move": "COSMIC_POWER",
+ "level": 1
+ },
+ {
+ "move": "NATURAL_GIFT",
+ "level": 1
+ },
+ {
+ "move": "PUNISHMENT",
+ "level": 1
+ },
+ {
+ "move": "GRAVITY",
+ "level": 10
+ },
+ {
+ "move": "EARTH_POWER",
+ "level": 20
+ },
+ {
+ "move": "HYPER_VOICE",
+ "level": 30
+ },
+ {
+ "move": "EXTREME_SPEED",
+ "level": 40
+ },
+ {
+ "move": "REFRESH",
+ "level": 50
+ },
+ {
+ "move": "FUTURE_SIGHT",
+ "level": 60
+ },
+ {
+ "move": "RECOVER",
+ "level": 70
+ },
+ {
+ "move": "HYPER_BEAM",
+ "level": 80
+ },
+ {
+ "move": "PERISH_SONG",
+ "level": 90
+ },
+ {
+ "move": "JUDGMENT",
+ "level": 100
+ }
+ ]
+ },
+ {
+ "species": "EGG",
+ "moves": [
+ {
+ "move": "SPLASH",
+ "level": 1
+ }
+ ]
+ },
+ {
+ "species": "MANAPHY_EGG",
+ "moves": [
+ {
+ "move": "SPLASH",
+ "level": 1
+ }
+ ]
+ },
+ {
+ "species": "DEOXYS_ATK",
+ "moves": [
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "WRAP",
+ "level": 1
+ },
+ {
+ "move": "NIGHT_SHADE",
+ "level": 9
+ },
+ {
+ "move": "TELEPORT",
+ "level": 17
+ },
+ {
+ "move": "TAUNT",
+ "level": 25
+ },
+ {
+ "move": "PURSUIT",
+ "level": 33
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 41
+ },
+ {
+ "move": "SUPERPOWER",
+ "level": 49
+ },
+ {
+ "move": "PSYCHO_SHIFT",
+ "level": 57
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 65
+ },
+ {
+ "move": "COSMIC_POWER",
+ "level": 73
+ },
+ {
+ "move": "ZAP_CANNON",
+ "level": 81
+ },
+ {
+ "move": "PSYCHO_BOOST",
+ "level": 89
+ },
+ {
+ "move": "HYPER_BEAM",
+ "level": 97
+ }
+ ]
+ },
+ {
+ "species": "DEOXYS_DEF",
+ "moves": [
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "WRAP",
+ "level": 1
+ },
+ {
+ "move": "NIGHT_SHADE",
+ "level": 9
+ },
+ {
+ "move": "TELEPORT",
+ "level": 17
+ },
+ {
+ "move": "KNOCK_OFF",
+ "level": 25
+ },
+ {
+ "move": "SPIKES",
+ "level": 33
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 41
+ },
+ {
+ "move": "SNATCH",
+ "level": 49
+ },
+ {
+ "move": "PSYCHO_SHIFT",
+ "level": 57
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 65
+ },
+ {
+ "move": "IRON_DEFENSE",
+ "level": 73
+ },
+ {
+ "move": "AMNESIA",
+ "level": 73
+ },
+ {
+ "move": "RECOVER",
+ "level": 81
+ },
+ {
+ "move": "PSYCHO_BOOST",
+ "level": 89
+ },
+ {
+ "move": "COUNTER",
+ "level": 97
+ },
+ {
+ "move": "MIRROR_COAT",
+ "level": 97
+ }
+ ]
+ },
+ {
+ "species": "DEOXYS_SPD",
+ "moves": [
+ {
+ "move": "LEER",
+ "level": 1
+ },
+ {
+ "move": "WRAP",
+ "level": 1
+ },
+ {
+ "move": "NIGHT_SHADE",
+ "level": 9
+ },
+ {
+ "move": "DOUBLE_TEAM",
+ "level": 17
+ },
+ {
+ "move": "KNOCK_OFF",
+ "level": 25
+ },
+ {
+ "move": "PURSUIT",
+ "level": 33
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 41
+ },
+ {
+ "move": "SWIFT",
+ "level": 49
+ },
+ {
+ "move": "PSYCHO_SHIFT",
+ "level": 57
+ },
+ {
+ "move": "ZEN_HEADBUTT",
+ "level": 65
+ },
+ {
+ "move": "AGILITY",
+ "level": 73
+ },
+ {
+ "move": "RECOVER",
+ "level": 81
+ },
+ {
+ "move": "PSYCHO_BOOST",
+ "level": 89
+ },
+ {
+ "move": "EXTREME_SPEED",
+ "level": 97
+ }
+ ]
+ },
+ {
+ "species": "WORMADAM_SANDY",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "PROTECT",
+ "level": 10
+ },
+ {
+ "move": "HIDDEN_POWER",
+ "level": 20
+ },
+ {
+ "move": "CONFUSION",
+ "level": 23
+ },
+ {
+ "move": "ROCK_BLAST",
+ "level": 26
+ },
+ {
+ "move": "HARDEN",
+ "level": 29
+ },
+ {
+ "move": "PSYBEAM",
+ "level": 32
+ },
+ {
+ "move": "CAPTIVATE",
+ "level": 35
+ },
+ {
+ "move": "FLAIL",
+ "level": 38
+ },
+ {
+ "move": "ATTRACT",
+ "level": 41
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 44
+ },
+ {
+ "move": "FISSURE",
+ "level": 47
+ }
+ ]
+ },
+ {
+ "species": "WORMADAM_TRASH",
+ "moves": [
+ {
+ "move": "TACKLE",
+ "level": 1
+ },
+ {
+ "move": "PROTECT",
+ "level": 10
+ },
+ {
+ "move": "HIDDEN_POWER",
+ "level": 20
+ },
+ {
+ "move": "CONFUSION",
+ "level": 23
+ },
+ {
+ "move": "MIRROR_SHOT",
+ "level": 26
+ },
+ {
+ "move": "METAL_SOUND",
+ "level": 29
+ },
+ {
+ "move": "PSYBEAM",
+ "level": 32
+ },
+ {
+ "move": "CAPTIVATE",
+ "level": 35
+ },
+ {
+ "move": "FLAIL",
+ "level": 38
+ },
+ {
+ "move": "ATTRACT",
+ "level": 41
+ },
+ {
+ "move": "PSYCHIC",
+ "level": 44
+ },
+ {
+ "move": "IRON_HEAD",
+ "level": 47
+ }
+ ]
+ }
+ ]
+}
diff --git a/files/poketool/personal/wotbl.json.txt b/files/poketool/personal/wotbl.json.txt
new file mode 100644
index 00000000..d68b1e39
--- /dev/null
+++ b/files/poketool/personal/wotbl.json.txt
@@ -0,0 +1,21 @@
+{{ doNotModifyHeader }}
+
+#include "global.h"
+#include "constants/moves.h"
+
+u32 __size[] = {
+##for mon in wotbl
+ ({{ length(mon.moves) }} * 2 + 5) & ~3,
+##endfor
+};
+
+const u16 moveset[] = {
+##for mon in wotbl
+ // {{ mon.species }}
+##for move in mon.moves
+ MOVE_{{ move.move }} | ({{ move.level }} << 9),
+##endfor
+ 0xFFFF,
+ {% if even(length(mon.moves)) %}0x0000,{% endif %}
+##endfor
+};
diff --git a/files/poketool/personal/wotbl/narc_0000.bin b/files/poketool/personal/wotbl/narc_0000.bin
deleted file mode 100644
index aa470200..00000000
--- a/files/poketool/personal/wotbl/narc_0000.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0001.bin b/files/poketool/personal/wotbl/narc_0001.bin
deleted file mode 100644
index 9a4d4707..00000000
--- a/files/poketool/personal/wotbl/narc_0001.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0002.bin b/files/poketool/personal/wotbl/narc_0002.bin
deleted file mode 100644
index 62b9d290..00000000
--- a/files/poketool/personal/wotbl/narc_0002.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0003.bin b/files/poketool/personal/wotbl/narc_0003.bin
deleted file mode 100644
index 123da855..00000000
--- a/files/poketool/personal/wotbl/narc_0003.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0004.bin b/files/poketool/personal/wotbl/narc_0004.bin
deleted file mode 100644
index c5bb504b..00000000
--- a/files/poketool/personal/wotbl/narc_0004.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0005.bin b/files/poketool/personal/wotbl/narc_0005.bin
deleted file mode 100644
index d337a378..00000000
--- a/files/poketool/personal/wotbl/narc_0005.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-
--44lR"*9@5NSV \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0006.bin b/files/poketool/personal/wotbl/narc_0006.bin
deleted file mode 100644
index 4df8c844..00000000
--- a/files/poketool/personal/wotbl/narc_0006.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0007.bin b/files/poketool/personal/wotbl/narc_0007.bin
deleted file mode 100644
index 13ece815..00000000
--- a/files/poketool/personal/wotbl/narc_0007.bin
+++ /dev/null
@@ -1 +0,0 @@
-!'n7, &,`39>D8J \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0008.bin b/files/poketool/personal/wotbl/narc_0008.bin
deleted file mode 100644
index 0bb037ec..00000000
--- a/files/poketool/personal/wotbl/narc_0008.bin
+++ /dev/null
@@ -1 +0,0 @@
-!''n7, (0`9AHP8X \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0009.bin b/files/poketool/personal/wotbl/narc_0009.bin
deleted file mode 100644
index 46c4c37c..00000000
--- a/files/poketool/personal/wotbl/narc_0009.bin
+++ /dev/null
@@ -1 +0,0 @@
-!'n'n7, (0`9AN\8j \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0010.bin b/files/poketool/personal/wotbl/narc_0010.bin
deleted file mode 100644
index fb7aafb4..00000000
--- a/files/poketool/personal/wotbl/narc_0010.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0011.bin b/files/poketool/personal/wotbl/narc_0011.bin
deleted file mode 100644
index d4928219..00000000
--- a/files/poketool/personal/wotbl/narc_0011.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0012.bin b/files/poketool/personal/wotbl/narc_0012.bin
deleted file mode 100644
index e9832d45..00000000
--- a/files/poketool/personal/wotbl/narc_0012.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0013.bin b/files/poketool/personal/wotbl/narc_0013.bin
deleted file mode 100644
index 96e31e0b..00000000
--- a/files/poketool/personal/wotbl/narc_0013.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0014.bin b/files/poketool/personal/wotbl/narc_0014.bin
deleted file mode 100644
index d4928219..00000000
--- a/files/poketool/personal/wotbl/narc_0014.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0015.bin b/files/poketool/personal/wotbl/narc_0015.bin
deleted file mode 100644
index e009777e..00000000
--- a/files/poketool/personal/wotbl/narc_0015.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0016.bin b/files/poketool/personal/wotbl/narc_0016.bin
deleted file mode 100644
index 5c6abba9..00000000
--- a/files/poketool/personal/wotbl/narc_0016.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-!
-b"*)3a:BcKnSwZc \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0017.bin b/files/poketool/personal/wotbl/narc_0017.bin
deleted file mode 100644
index 78db7d18..00000000
--- a/files/poketool/personal/wotbl/narc_0017.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-!
-b",)7a@JcUn_whs \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0018.bin b/files/poketool/personal/wotbl/narc_0018.bin
deleted file mode 100644
index f854a3eb..00000000
--- a/files/poketool/personal/wotbl/narc_0018.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0019.bin b/files/poketool/personal/wotbl/narc_0019.bin
deleted file mode 100644
index c8bff652..00000000
--- a/files/poketool/personal/wotbl/narc_0019.bin
+++ /dev/null
@@ -1 +0,0 @@
-!'bt, ',t38&>E \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0020.bin b/files/poketool/personal/wotbl/narc_0020.bin
deleted file mode 100644
index 8f579ec8..00000000
--- a/files/poketool/personal/wotbl/narc_0020.bin
+++ /dev/null
@@ -1 +0,0 @@
-!'btbt, '(0t;D&NY \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0021.bin b/files/poketool/personal/wotbl/narc_0021.bin
deleted file mode 100644
index c3cff47c..00000000
--- a/files/poketool/personal/wotbl/narc_0021.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-@-+
-L#w*a2t;cCAJ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0022.bin b/files/poketool/personal/wotbl/narc_0022.bin
deleted file mode 100644
index 393b9c0e..00000000
--- a/files/poketool/personal/wotbl/narc_0022.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0023.bin b/files/poketool/personal/wotbl/narc_0023.bin
deleted file mode 100644
index 9b310265..00000000
--- a/files/poketool/personal/wotbl/narc_0023.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0024.bin b/files/poketool/personal/wotbl/narc_0024.bin
deleted file mode 100644
index 6f5bdbc7..00000000
--- a/files/poketool/personal/wotbl/narc_0024.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0025.bin b/files/poketool/personal/wotbl/narc_0025.bin
deleted file mode 100644
index 2ec529d2..00000000
--- a/files/poketool/personal/wotbl/narc_0025.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-T-'
-Vbh$*U4l;aDKqTWZ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0026.bin b/files/poketool/personal/wotbl/narc_0026.bin
deleted file mode 100644
index e25ccc25..00000000
--- a/files/poketool/personal/wotbl/narc_0026.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0027.bin b/files/poketool/personal/wotbl/narc_0027.bin
deleted file mode 100644
index bcd0ac10..00000000
--- a/files/poketool/personal/wotbl/narc_0027.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-
-o(&*2H7>hCJ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0028.bin b/files/poketool/personal/wotbl/narc_0028.bin
deleted file mode 100644
index 015f7090..00000000
--- a/files/poketool/personal/wotbl/narc_0028.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0029.bin b/files/poketool/personal/wotbl/narc_0029.bin
deleted file mode 100644
index af77b2ea..00000000
--- a/files/poketool/personal/wotbl/narc_0029.bin
+++ /dev/null
@@ -1,2 +0,0 @@
--
-'(&,*3?CJW1[ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0030.bin b/files/poketool/personal/wotbl/narc_0030.bin
deleted file mode 100644
index 82c211c1..00000000
--- a/files/poketool/personal/wotbl/narc_0030.bin
+++ /dev/null
@@ -1,2 +0,0 @@
--
-'((,.9GMVe1u \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0031.bin b/files/poketool/personal/wotbl/narc_0031.bin
deleted file mode 100644
index ca068ca1..00000000
--- a/files/poketool/personal/wotbl/narc_0031.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-
-'(".Wu \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0032.bin b/files/poketool/personal/wotbl/narc_0032.bin
deleted file mode 100644
index cd737942..00000000
--- a/files/poketool/personal/wotbl/narc_0032.bin
+++ /dev/null
@@ -1 +0,0 @@
-+@t(&*3?CKW Z \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0033.bin b/files/poketool/personal/wotbl/narc_0033.bin
deleted file mode 100644
index ad914828..00000000
--- a/files/poketool/personal/wotbl/narc_0033.bin
+++ /dev/null
@@ -1 +0,0 @@
-+@t((.9GMWe t \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0034.bin b/files/poketool/personal/wotbl/narc_0034.bin
deleted file mode 100644
index 4e1195a9..00000000
--- a/files/poketool/personal/wotbl/narc_0034.bin
+++ /dev/null
@@ -1 +0,0 @@
-@t(%.Wt \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0035.bin b/files/poketool/personal/wotbl/narc_0035.bin
deleted file mode 100644
index fb3ee490..00000000
--- a/files/poketool/personal/wotbl/narc_0035.bin
+++ /dev/null
@@ -1,2 +0,0 @@
--/o
-!k&f-B3}9v>dEJqP5Wi] \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0036.bin b/files/poketool/personal/wotbl/narc_0036.bin
deleted file mode 100644
index 1c3509f6..00000000
--- a/files/poketool/personal/wotbl/narc_0036.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0037.bin b/files/poketool/personal/wotbl/narc_0037.bin
deleted file mode 100644
index 3360587b..00000000
--- a/files/poketool/personal/wotbl/narc_0037.bin
+++ /dev/null
@@ -1 +0,0 @@
-4'.bm"+506s?SDK SFY~^ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0038.bin b/files/poketool/personal/wotbl/narc_0038.bin
deleted file mode 100644
index 5f2d9f34..00000000
--- a/files/poketool/personal/wotbl/narc_0038.bin
+++ /dev/null
@@ -1 +0,0 @@
-4bm \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0039.bin b/files/poketool/personal/wotbl/narc_0039.bin
deleted file mode 100644
index 47028dad..00000000
--- a/files/poketool/personal/wotbl/narc_0039.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-/o
-2"*2":hCfKfR0[&b \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0040.bin b/files/poketool/personal/wotbl/narc_0040.bin
deleted file mode 100644
index 1b8b1806..00000000
--- a/files/poketool/personal/wotbl/narc_0040.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0041.bin b/files/poketool/personal/wotbl/narc_0041.bin
deleted file mode 100644
index 6a7d1939..00000000
--- a/files/poketool/personal/wotbl/narc_0041.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-0
-6,"m*:3:1CrJS \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0042.bin b/files/poketool/personal/wotbl/narc_0042.bin
deleted file mode 100644
index 03c46506..00000000
--- a/files/poketool/personal/wotbl/narc_0042.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0043.bin b/files/poketool/personal/wotbl/narc_0043.bin
deleted file mode 100644
index 714b7bd8..00000000
--- a/files/poketool/personal/wotbl/narc_0043.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0044.bin b/files/poketool/personal/wotbl/narc_0044.bin
deleted file mode 100644
index de0e69f4..00000000
--- a/files/poketool/personal/wotbl/narc_0044.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0045.bin b/files/poketool/personal/wotbl/narc_0045.bin
deleted file mode 100644
index 96a182a8..00000000
--- a/files/poketool/personal/wotbl/narc_0045.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0046.bin b/files/poketool/personal/wotbl/narc_0046.bin
deleted file mode 100644
index cb796c41..00000000
--- a/files/poketool/personal/wotbl/narc_0046.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0047.bin b/files/poketool/personal/wotbl/narc_0047.bin
deleted file mode 100644
index 64e9d48e..00000000
--- a/files/poketool/personal/wotbl/narc_0047.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0048.bin b/files/poketool/personal/wotbl/narc_0048.bin
deleted file mode 100644
index 2eb5b51a..00000000
--- a/files/poketool/personal/wotbl/narc_0048.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0049.bin b/files/poketool/personal/wotbl/narc_0049.bin
deleted file mode 100644
index 618d7a0d..00000000
--- a/files/poketool/personal/wotbl/narc_0049.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0050.bin b/files/poketool/personal/wotbl/narc_0050.bin
deleted file mode 100644
index 57b4f158..00000000
--- a/files/poketool/personal/wotbl/narc_0050.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-
--6[$/5;DYJZP \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0051.bin b/files/poketool/personal/wotbl/narc_0051.bin
deleted file mode 100644
index a26b699f..00000000
--- a/files/poketool/personal/wotbl/narc_0051.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-
---6[$/H59CPYZZd \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0052.bin b/files/poketool/personal/wotbl/narc_0052.bin
deleted file mode 100644
index a21eb618..00000000
--- a/files/poketool/personal/wotbl/narc_0052.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0053.bin b/files/poketool/personal/wotbl/narc_0053.bin
deleted file mode 100644
index 1e4e3522..00000000
--- a/files/poketool/personal/wotbl/narc_0053.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-
--,, g", 3AJYtcq{ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0054.bin b/files/poketool/personal/wotbl/narc_0054.bin
deleted file mode 100644
index 9c62c939..00000000
--- a/files/poketool/personal/wotbl/narc_0054.bin
+++ /dev/null
@@ -1,3 +0,0 @@
-Z
-'
-72]$`-6g>FQX8` \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0055.bin b/files/poketool/personal/wotbl/narc_0055.bin
deleted file mode 100644
index 3ce1856c..00000000
--- a/files/poketool/personal/wotbl/narc_0055.bin
+++ /dev/null
@@ -1,3 +0,0 @@
-Z
-'7'
-72]$`-6g>JYd8p \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0056.bin b/files/poketool/personal/wotbl/narc_0056.bin
deleted file mode 100644
index dfb1e2a2..00000000
--- a/files/poketool/personal/wotbl/narc_0056.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-W
-C+tE"g*t3BJ%R[rc \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0057.bin b/files/poketool/personal/wotbl/narc_0057.bin
deleted file mode 100644
index 453ff808..00000000
--- a/files/poketool/personal/wotbl/narc_0057.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0058.bin b/files/poketool/personal/wotbl/narc_0058.bin
deleted file mode 100644
index b90c208c..00000000
--- a/files/poketool/personal/wotbl/narc_0058.bin
+++ /dev/null
@@ -1 +0,0 @@
-,.4 +<#(29$>5DaNT[a \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0059.bin b/files/poketool/personal/wotbl/narc_0059.bin
deleted file mode 100644
index 1da5457b..00000000
--- a/files/poketool/personal/wotbl/narc_0059.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0060.bin b/files/poketool/personal/wotbl/narc_0060.bin
deleted file mode 100644
index 5f20379e..00000000
--- a/files/poketool/personal/wotbl/narc_0060.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-Z
-_7$"*=2U9>fG8LS \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0061.bin b/files/poketool/personal/wotbl/narc_0061.bin
deleted file mode 100644
index 65b22e3f..00000000
--- a/files/poketool/personal/wotbl/narc_0061.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-Z_
-_7$"*=6UAJfW8`k \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0062.bin b/files/poketool/personal/wotbl/narc_0062.bin
deleted file mode 100644
index ee7a0ff8..00000000
--- a/files/poketool/personal/wotbl/narc_0062.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0063.bin b/files/poketool/personal/wotbl/narc_0063.bin
deleted file mode 100644
index 92a7af64..00000000
--- a/files/poketool/personal/wotbl/narc_0063.bin
+++ /dev/null
@@ -1 +0,0 @@
-d \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0064.bin b/files/poketool/personal/wotbl/narc_0064.bin
deleted file mode 100644
index 4c44fa70..00000000
--- a/files/poketool/personal/wotbl/narc_0064.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0065.bin b/files/poketool/personal/wotbl/narc_0065.bin
deleted file mode 100644
index 43ebf686..00000000
--- a/files/poketool/personal/wotbl/narc_0065.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0066.bin b/files/poketool/personal/wotbl/narc_0066.bin
deleted file mode 100644
index f4a18b06..00000000
--- a/files/poketool/personal/wotbl/narc_0066.bin
+++ /dev/null
@@ -1 +0,0 @@
-C+tE&-2B>fEJV\ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0067.bin b/files/poketool/personal/wotbl/narc_0067.bin
deleted file mode 100644
index c1e20b45..00000000
--- a/files/poketool/personal/wotbl/narc_0067.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0068.bin b/files/poketool/personal/wotbl/narc_0068.bin
deleted file mode 100644
index c1e20b45..00000000
--- a/files/poketool/personal/wotbl/narc_0068.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0069.bin b/files/poketool/personal/wotbl/narc_0069.bin
deleted file mode 100644
index c0efa00d..00000000
--- a/files/poketool/personal/wotbl/narc_0069.bin
+++ /dev/null
@@ -1 +0,0 @@
-J#OMN"3.7:|GKNRz_ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0070.bin b/files/poketool/personal/wotbl/narc_0070.bin
deleted file mode 100644
index 0fadb293..00000000
--- a/files/poketool/personal/wotbl/narc_0070.bin
+++ /dev/null
@@ -1 +0,0 @@
-J#J#OMN"3.7:|GKNRz_ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0071.bin b/files/poketool/personal/wotbl/narc_0071.bin
deleted file mode 100644
index 9e7b3323..00000000
--- a/files/poketool/personal/wotbl/narc_0071.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0072.bin b/files/poketool/personal/wotbl/narc_0072.bin
deleted file mode 100644
index 37ae3990..00000000
--- a/files/poketool/personal/wotbl/narc_0072.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-(0
-3=&#,p4`;CgH8PzW \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0073.bin b/files/poketool/personal/wotbl/narc_0073.bin
deleted file mode 100644
index 1c023e3e..00000000
--- a/files/poketool/personal/wotbl/narc_0073.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-(00
-3=&#,p4`;IgT8bzo \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0074.bin b/files/poketool/personal/wotbl/narc_0074.bin
deleted file mode 100644
index 6800db13..00000000
--- a/files/poketool/personal/wotbl/narc_0074.bin
+++ /dev/null
@@ -1 +0,0 @@
-!o, Xx$,^3Y:@&HO \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0075.bin b/files/poketool/personal/wotbl/narc_0075.bin
deleted file mode 100644
index 068f5c32..00000000
--- a/files/poketool/personal/wotbl/narc_0075.bin
+++ /dev/null
@@ -1 +0,0 @@
-!o,, Xx$,^7YBL&Xc \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0076.bin b/files/poketool/personal/wotbl/narc_0076.bin
deleted file mode 100644
index 068f5c32..00000000
--- a/files/poketool/personal/wotbl/narc_0076.bin
+++ /dev/null
@@ -1 +0,0 @@
-!o,, Xx$,^7YBL&Xc \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0077.bin b/files/poketool/personal/wotbl/narc_0077.bin
deleted file mode 100644
index fa669fa9..00000000
--- a/files/poketool/personal/wotbl/narc_0077.bin
+++ /dev/null
@@ -1 +0,0 @@
-!-'4 &S2$8aD~LTYa \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0078.bin b/files/poketool/personal/wotbl/narc_0078.bin
deleted file mode 100644
index d33eafb0..00000000
--- a/files/poketool/personal/wotbl/narc_0078.bin
+++ /dev/null
@@ -1 +0,0 @@
-b-'4-'4 &S2$8aD~LPTcu \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0079.bin b/files/poketool/personal/wotbl/narc_0079.bin
deleted file mode 100644
index 2f5e957b..00000000
--- a/files/poketool/personal/wotbl/narc_0079.bin
+++ /dev/null
@@ -1 +0,0 @@
-!- 7]2(2`;E/OV^`jr \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0080.bin b/files/poketool/personal/wotbl/narc_0080.bin
deleted file mode 100644
index 92874daa..00000000
--- a/files/poketool/personal/wotbl/narc_0080.bin
+++ /dev/null
@@ -1 +0,0 @@
-!-- 7]2(2`;EnJ/S^^lz \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0081.bin b/files/poketool/personal/wotbl/narc_0081.bin
deleted file mode 100644
index 6aa44558..00000000
--- a/files/poketool/personal/wotbl/narc_0081.bin
+++ /dev/null
@@ -1 +0,0 @@
-?!T 01V",6=gBMW]hcl \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0082.bin b/files/poketool/personal/wotbl/narc_0082.bin
deleted file mode 100644
index cb1d98c3..00000000
--- a/files/poketool/personal/wotbl/narc_0082.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0083.bin b/files/poketool/personal/wotbl/narc_0083.bin
deleted file mode 100644
index 4a4d3790..00000000
--- a/files/poketool/personal/wotbl/narc_0083.bin
+++ /dev/null
@@ -1 +0,0 @@
-@+L&:+2a>CKV \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0084.bin b/files/poketool/personal/wotbl/narc_0084.bin
deleted file mode 100644
index 29c99196..00000000
--- a/files/poketool/personal/wotbl/narc_0084.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0085.bin b/files/poketool/personal/wotbl/narc_0085.bin
deleted file mode 100644
index a93afc80..00000000
--- a/files/poketool/personal/wotbl/narc_0085.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-m@-bcb
-c&.o9DaRA^m \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0086.bin b/files/poketool/personal/wotbl/narc_0086.bin
deleted file mode 100644
index aa14b51b..00000000
--- a/files/poketool/personal/wotbl/narc_0086.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0087.bin b/files/poketool/personal/wotbl/narc_0087.bin
deleted file mode 100644
index 0ca0ff96..00000000
--- a/files/poketool/personal/wotbl/narc_0087.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0088.bin b/files/poketool/personal/wotbl/narc_0088.bin
deleted file mode 100644
index 86b7418f..00000000
--- a/files/poketool/personal/wotbl/narc_0088.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0089.bin b/files/poketool/personal/wotbl/narc_0089.bin
deleted file mode 100644
index e56ee0fc..00000000
--- a/files/poketool/personal/wotbl/narc_0089.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0090.bin b/files/poketool/personal/wotbl/narc_0090.bin
deleted file mode 100644
index 515fbf05..00000000
--- a/files/poketool/personal/wotbl/narc_0090.bin
+++ /dev/null
@@ -1 +0,0 @@
-!n0M +(29>@JNQjY:b \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0091.bin b/files/poketool/personal/wotbl/narc_0091.bin
deleted file mode 100644
index 8648dd3d..00000000
--- a/files/poketool/personal/wotbl/narc_0091.bin
+++ /dev/null
@@ -1 +0,0 @@
-n0>8P \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0092.bin b/files/poketool/personal/wotbl/narc_0092.bin
deleted file mode 100644
index 46338b0b..00000000
--- a/files/poketool/personal/wotbl/narc_0092.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0093.bin b/files/poketool/personal/wotbl/narc_0093.bin
deleted file mode 100644
index 849058a5..00000000
--- a/files/poketool/personal/wotbl/narc_0093.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0094.bin b/files/poketool/personal/wotbl/narc_0094.bin
deleted file mode 100644
index 849058a5..00000000
--- a/files/poketool/personal/wotbl/narc_0094.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0095.bin b/files/poketool/personal/wotbl/narc_0095.bin
deleted file mode 100644
index 86a5d993..00000000
--- a/files/poketool/personal/wotbl/narc_0095.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0096.bin b/files/poketool/personal/wotbl/narc_0096.bin
deleted file mode 100644
index 7e864069..00000000
--- a/files/poketool/personal/wotbl/narc_0096.bin
+++ /dev/null
@@ -1 +0,0 @@
-_2]$`*<4:@J^PWej \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0097.bin b/files/poketool/personal/wotbl/narc_0097.bin
deleted file mode 100644
index bacc4170..00000000
--- a/files/poketool/personal/wotbl/narc_0097.bin
+++ /dev/null
@@ -1 +0,0 @@
-_2]2]$`*<8BLZ^do \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0098.bin b/files/poketool/personal/wotbl/narc_0098.bin
deleted file mode 100644
index 4edba3b1..00000000
--- a/files/poketool/personal/wotbl/narc_0098.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-,
-+j=U'*2: >FjORZ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0099.bin b/files/poketool/personal/wotbl/narc_0099.bin
deleted file mode 100644
index c9c5c4b2..00000000
--- a/files/poketool/personal/wotbl/narc_0099.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0100.bin b/files/poketool/personal/wotbl/narc_0100.bin
deleted file mode 100644
index 88406e38..00000000
--- a/files/poketool/personal/wotbl/narc_0100.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0101.bin b/files/poketool/personal/wotbl/narc_0101.bin
deleted file mode 100644
index 5ce7fdfa..00000000
--- a/files/poketool/personal/wotbl/narc_0101.bin
+++ /dev/null
@@ -1,2 +0,0 @@
- !1!
-1g&q,5x:FQh]fr \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0102.bin b/files/poketool/personal/wotbl/narc_0102.bin
deleted file mode 100644
index 39d6450b..00000000
--- a/files/poketool/personal/wotbl/narc_0102.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0103.bin b/files/poketool/personal/wotbl/narc_0103.bin
deleted file mode 100644
index 97d8a2fd..00000000
--- a/files/poketool/personal/wotbl/narc_0103.bin
+++ /dev/null
@@ -1 +0,0 @@
-_]"y6K_ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0104.bin b/files/poketool/personal/wotbl/narc_0104.bin
deleted file mode 100644
index 15a4ee8f..00000000
--- a/files/poketool/personal/wotbl/narc_0104.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0105.bin b/files/poketool/personal/wotbl/narc_0105.bin
deleted file mode 100644
index c5aa5993..00000000
--- a/files/poketool/personal/wotbl/narc_0105.bin
+++ /dev/null
@@ -1 +0,0 @@
--'}'}+t"*c.6%BvKVc&j \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0106.bin b/files/poketool/personal/wotbl/narc_0106.bin
deleted file mode 100644
index 4094a17c..00000000
--- a/files/poketool/personal/wotbl/narc_0106.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0107.bin b/files/poketool/personal/wotbl/narc_0107.bin
deleted file mode 100644
index 5b966e49..00000000
--- a/files/poketool/personal/wotbl/narc_0107.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0108.bin b/files/poketool/personal/wotbl/narc_0108.bin
deleted file mode 100644
index 71b75e5c..00000000
--- a/files/poketool/personal/wotbl/narc_0108.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0109.bin b/files/poketool/personal/wotbl/narc_0109.bin
deleted file mode 100644
index 9673f057..00000000
--- a/files/poketool/personal/wotbl/narc_0109.bin
+++ /dev/null
@@ -1 +0,0 @@
-!{ ltx&|0r8hCJT\g \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0110.bin b/files/poketool/personal/wotbl/narc_0110.bin
deleted file mode 100644
index e760f657..00000000
--- a/files/poketool/personal/wotbl/narc_0110.bin
+++ /dev/null
@@ -1 +0,0 @@
-!{l{ ltx&|0r8CP`n \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0111.bin b/files/poketool/personal/wotbl/narc_0111.bin
deleted file mode 100644
index 17f5d371..00000000
--- a/files/poketool/personal/wotbl/narc_0111.bin
+++ /dev/null
@@ -1 +0,0 @@
-'*^3$B J[Ybr \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0112.bin b/files/poketool/personal/wotbl/narc_0112.bin
deleted file mode 100644
index 16c2bf02..00000000
--- a/files/poketool/personal/wotbl/narc_0112.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0113.bin b/files/poketool/personal/wotbl/narc_0113.bin
deleted file mode 100644
index cb8d663e..00000000
--- a/files/poketool/personal/wotbl/narc_0113.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0114.bin b/files/poketool/personal/wotbl/narc_0114.bin
deleted file mode 100644
index 70b62643..00000000
--- a/files/poketool/personal/wotbl/narc_0114.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-O
-GJM&,H4N:BIkQVA_zem \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0115.bin b/files/poketool/personal/wotbl/narc_0115.bin
deleted file mode 100644
index eb69d1ff..00000000
--- a/files/poketool/personal/wotbl/narc_0115.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0116.bin b/files/poketool/personal/wotbl/narc_0116.bin
deleted file mode 100644
index 774b5721..00000000
--- a/files/poketool/personal/wotbl/narc_0116.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0117.bin b/files/poketool/personal/wotbl/narc_0117.bin
deleted file mode 100644
index da3af106..00000000
--- a/files/poketool/personal/wotbl/narc_0117.bin
+++ /dev/null
@@ -1 +0,0 @@
-l+7l+7t=$a.4j=8P]as \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0118.bin b/files/poketool/personal/wotbl/narc_0118.bin
deleted file mode 100644
index 60c4df9b..00000000
--- a/files/poketool/personal/wotbl/narc_0118.bin
+++ /dev/null
@@ -1 +0,0 @@
-@'Z0`#*7>J Ra^f \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0119.bin b/files/poketool/personal/wotbl/narc_0119.bin
deleted file mode 100644
index 0c2ad8dc..00000000
--- a/files/poketool/personal/wotbl/narc_0119.bin
+++ /dev/null
@@ -1 +0,0 @@
-@'Z00`#*7>P ^ap~ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0120.bin b/files/poketool/personal/wotbl/narc_0120.bin
deleted file mode 100644
index 573db0a2..00000000
--- a/files/poketool/personal/wotbl/narc_0120.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0121.bin b/files/poketool/personal/wotbl/narc_0121.bin
deleted file mode 100644
index cd73df2a..00000000
--- a/files/poketool/personal/wotbl/narc_0121.bin
+++ /dev/null
@@ -1 +0,0 @@
-7im8 \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0122.bin b/files/poketool/personal/wotbl/narc_0122.bin
deleted file mode 100644
index 1406c33b..00000000
--- a/files/poketool/personal/wotbl/narc_0122.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0123.bin b/files/poketool/personal/wotbl/narc_0123.bin
deleted file mode 100644
index 166587d8..00000000
--- a/files/poketool/personal/wotbl/narc_0123.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0124.bin b/files/poketool/personal/wotbl/narc_0124.bin
deleted file mode 100644
index afe25793..00000000
--- a/files/poketool/personal/wotbl/narc_0124.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-zz
-$*93f9C"NzYb;n \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0125.bin b/files/poketool/personal/wotbl/narc_0125.bin
deleted file mode 100644
index c659082d..00000000
--- a/files/poketool/personal/wotbl/narc_0125.bin
+++ /dev/null
@@ -1 +0,0 @@
-b+TTC _'q2 8KUVghWt \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0126.bin b/files/poketool/personal/wotbl/narc_0126.bin
deleted file mode 100644
index 8d4ffd4b..00000000
--- a/files/poketool/personal/wotbl/narc_0126.bin
+++ /dev/null
@@ -1 +0,0 @@
-{+44l S&m28I5Rb~l \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0127.bin b/files/poketool/personal/wotbl/narc_0127.bin
deleted file mode 100644
index 8e5ff6eb..00000000
--- a/files/poketool/personal/wotbl/narc_0127.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0128.bin b/files/poketool/personal/wotbl/narc_0128.bin
deleted file mode 100644
index eb97408e..00000000
--- a/files/poketool/personal/wotbl/narc_0128.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-!'c
-&s1;$FR%`o \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0129.bin b/files/poketool/personal/wotbl/narc_0129.bin
deleted file mode 100644
index 5c1fc947..00000000
--- a/files/poketool/personal/wotbl/narc_0129.bin
+++ /dev/null
@@ -1 +0,0 @@
-!< \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0130.bin b/files/poketool/personal/wotbl/narc_0130.bin
deleted file mode 100644
index 970896be..00000000
--- a/files/poketool/personal/wotbl/narc_0130.bin
+++ /dev/null
@@ -1 +0,0 @@
-%,(R.+4:AGL8R]Y?^ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0131.bin b/files/poketool/personal/wotbl/narc_0131.bin
deleted file mode 100644
index 6f2baa0c..00000000
--- a/files/poketool/personal/wotbl/narc_0131.bin
+++ /dev/null
@@ -1 +0,0 @@
-/-76m`"$,6:@jKV8bIo \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0132.bin b/files/poketool/personal/wotbl/narc_0132.bin
deleted file mode 100644
index d5d91f59..00000000
--- a/files/poketool/personal/wotbl/narc_0132.bin
+++ /dev/null
@@ -1 +0,0 @@
- \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0133.bin b/files/poketool/personal/wotbl/narc_0133.bin
deleted file mode 100644
index 97a30385..00000000
--- a/files/poketool/personal/wotbl/narc_0133.bin
+++ /dev/null
@@ -1 +0,0 @@
-!'-b,,:H$Vexs \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0134.bin b/files/poketool/personal/wotbl/narc_0134.bin
deleted file mode 100644
index 083de332..00000000
--- a/files/poketool/personal/wotbl/narc_0134.bin
+++ /dev/null
@@ -1 +0,0 @@
-!'7b,,:>HWerr8 \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0135.bin b/files/poketool/personal/wotbl/narc_0135.bin
deleted file mode 100644
index 4b3c756f..00000000
--- a/files/poketool/personal/wotbl/narc_0135.bin
+++ /dev/null
@@ -1 +0,0 @@
-!'Tb,:*HWeVraW \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0136.bin b/files/poketool/personal/wotbl/narc_0136.bin
deleted file mode 100644
index d4a6ec15..00000000
--- a/files/poketool/personal/wotbl/narc_0136.bin
+++ /dev/null
@@ -1 +0,0 @@
-!'4b,,:SHWe{r~ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0137.bin b/files/poketool/personal/wotbl/narc_0137.bin
deleted file mode 100644
index d7a106a4..00000000
--- a/files/poketool/personal/wotbl/narc_0137.bin
+++ /dev/null
@@ -1 +0,0 @@
-!<ai$/D;EQZfq| \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0138.bin b/files/poketool/personal/wotbl/narc_0138.bin
deleted file mode 100644
index ff323dff..00000000
--- a/files/poketool/personal/wotbl/narc_0138.bin
+++ /dev/null
@@ -1 +0,0 @@
-n,7 +&U3j9DJAW^]8h \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0139.bin b/files/poketool/personal/wotbl/narc_0139.bin
deleted file mode 100644
index ee2f50c1..00000000
--- a/files/poketool/personal/wotbl/narc_0139.bin
+++ /dev/null
@@ -1 +0,0 @@
-n,,7 +&U3j9DJPAa^q8 \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0140.bin b/files/poketool/personal/wotbl/narc_0140.bin
deleted file mode 100644
index eae45249..00000000
--- a/files/poketool/personal/wotbl/narc_0140.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0141.bin b/files/poketool/personal/wotbl/narc_0141.bin
deleted file mode 100644
index 9c663001..00000000
--- a/files/poketool/personal/wotbl/narc_0141.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-
-jGG +U!*4?HHP?[lz \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0142.bin b/files/poketool/personal/wotbl/narc_0142.bin
deleted file mode 100644
index 07dbb8cc..00000000
--- a/files/poketool/personal/wotbl/narc_0142.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0143.bin b/files/poketool/personal/wotbl/narc_0143.bin
deleted file mode 100644
index 5b6ba15d..00000000
--- a/files/poketool/personal/wotbl/narc_0143.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0144.bin b/files/poketool/personal/wotbl/narc_0144.bin
deleted file mode 100644
index b0b70acf..00000000
--- a/files/poketool/personal/wotbl/narc_0144.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0145.bin b/files/poketool/personal/wotbl/narc_0145.bin
deleted file mode 100644
index 866493fe..00000000
--- a/files/poketool/personal/wotbl/narc_0145.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0146.bin b/files/poketool/personal/wotbl/narc_0146.bin
deleted file mode 100644
index cff1c4de..00000000
--- a/files/poketool/personal/wotbl/narc_0146.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0147.bin b/files/poketool/personal/wotbl/narc_0147.bin
deleted file mode 100644
index 68bb090b..00000000
--- a/files/poketool/personal/wotbl/narc_0147.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-#+V
-R*a2?GR][f?n \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0148.bin b/files/poketool/personal/wotbl/narc_0148.bin
deleted file mode 100644
index bc267253..00000000
--- a/files/poketool/personal/wotbl/narc_0148.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-#+VV
-R*a2CO^]kz? \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0149.bin b/files/poketool/personal/wotbl/narc_0149.bin
deleted file mode 100644
index 1cfe034d..00000000
--- a/files/poketool/personal/wotbl/narc_0149.bin
+++ /dev/null
@@ -1,2 +0,0 @@
- c#+VV
-R*a2CO^]knȀ? \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0150.bin b/files/poketool/personal/wotbl/narc_0150.bin
deleted file mode 100644
index 11ea65e5..00000000
--- a/files/poketool/personal/wotbl/narc_0150.bin
+++ /dev/null
@@ -1 +0,0 @@
-]2p,:eI6Ver^~iۺ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0151.bin b/files/poketool/personal/wotbl/narc_0151.bin
deleted file mode 100644
index a11aa654..00000000
--- a/files/poketool/personal/wotbl/narc_0151.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0152.bin b/files/poketool/personal/wotbl/narc_0152.bin
deleted file mode 100644
index 5b216d29..00000000
--- a/files/poketool/personal/wotbl/narc_0152.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0153.bin b/files/poketool/personal/wotbl/narc_0153.bin
deleted file mode 100644
index e5259185..00000000
--- a/files/poketool/personal/wotbl/narc_0153.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0154.bin b/files/poketool/personal/wotbl/narc_0154.bin
deleted file mode 100644
index 8b725dc1..00000000
--- a/files/poketool/personal/wotbl/narc_0154.bin
+++ /dev/null
@@ -1 +0,0 @@
-!-KMK Ms$Y-k5P@DqP"\l8yL \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0155.bin b/files/poketool/personal/wotbl/narc_0155.bin
deleted file mode 100644
index 006a5b35..00000000
--- a/files/poketool/personal/wotbl/narc_0155.bin
+++ /dev/null
@@ -1 +0,0 @@
-!+l4b&o,8?5JP&\c \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0156.bin b/files/poketool/personal/wotbl/narc_0156.bin
deleted file mode 100644
index cb2e3c42..00000000
--- a/files/poketool/personal/wotbl/narc_0156.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0157.bin b/files/poketool/personal/wotbl/narc_0157.bin
deleted file mode 100644
index 51a2b898..00000000
--- a/files/poketool/personal/wotbl/narc_0157.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0158.bin b/files/poketool/personal/wotbl/narc_0158.bin
deleted file mode 100644
index fab22b4a..00000000
--- a/files/poketool/personal/wotbl/narc_0158.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0159.bin b/files/poketool/personal/wotbl/narc_0159.bin
deleted file mode 100644
index c1ddf14f..00000000
--- a/files/poketool/personal/wotbl/narc_0159.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-
-+77 c,+%0<BgNUa8f \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0160.bin b/files/poketool/personal/wotbl/narc_0160.bin
deleted file mode 100644
index 4e5f6c04..00000000
--- a/files/poketool/personal/wotbl/narc_0160.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-
-+7c7 c,+%0a<@JgZeu8~ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0161.bin b/files/poketool/personal/wotbl/narc_0161.bin
deleted file mode 100644
index 2ac56300..00000000
--- a/files/poketool/personal/wotbl/narc_0161.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0162.bin b/files/poketool/personal/wotbl/narc_0162.bin
deleted file mode 100644
index 64980139..00000000
--- a/files/poketool/personal/wotbl/narc_0162.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0163.bin b/files/poketool/personal/wotbl/narc_0163.bin
deleted file mode 100644
index 94bf917f..00000000
--- a/files/poketool/personal/wotbl/narc_0163.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0164.bin b/files/poketool/personal/wotbl/narc_0164.bin
deleted file mode 100644
index dc80808e..00000000
--- a/files/poketool/personal/wotbl/narc_0164.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-!-_
-_@s"],$6AKFUw_cir \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0165.bin b/files/poketool/personal/wotbl/narc_0165.bin
deleted file mode 100644
index e494240e..00000000
--- a/files/poketool/personal/wotbl/narc_0165.bin
+++ /dev/null
@@ -1 +0,0 @@
-!0 qs",>3a<B&LS \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0166.bin b/files/poketool/personal/wotbl/narc_0166.bin
deleted file mode 100644
index 919249ac..00000000
--- a/files/poketool/personal/wotbl/narc_0166.bin
+++ /dev/null
@@ -1 +0,0 @@
-!00 qs"0>;aHR&`k \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0167.bin b/files/poketool/personal/wotbl/narc_0167.bin
deleted file mode 100644
index f1519fe6..00000000
--- a/files/poketool/personal/wotbl/narc_0167.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0168.bin b/files/poketool/personal/wotbl/narc_0168.bin
deleted file mode 100644
index 8f149722..00000000
--- a/files/poketool/personal/wotbl/narc_0168.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-(Q
-e'.9@aJ*R^\e \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0169.bin b/files/poketool/personal/wotbl/narc_0169.bin
deleted file mode 100644
index b765426e..00000000
--- a/files/poketool/personal/wotbl/narc_0169.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-g060
-6,"m*:7B1OrZg \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0170.bin b/files/poketool/personal/wotbl/narc_0170.bin
deleted file mode 100644
index 6949ada7..00000000
--- a/files/poketool/personal/wotbl/narc_0170.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0171.bin b/files/poketool/personal/wotbl/narc_0171.bin
deleted file mode 100644
index 2326f24d..00000000
--- a/files/poketool/personal/wotbl/narc_0171.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0172.bin b/files/poketool/personal/wotbl/narc_0172.bin
deleted file mode 100644
index 5e412086..00000000
--- a/files/poketool/personal/wotbl/narc_0172.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0173.bin b/files/poketool/personal/wotbl/narc_0173.bin
deleted file mode 100644
index c641b3f2..00000000
--- a/files/poketool/personal/wotbl/narc_0173.bin
+++ /dev/null
@@ -1 +0,0 @@
-/Y! \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0174.bin b/files/poketool/personal/wotbl/narc_0174.bin
deleted file mode 100644
index 5fecf629..00000000
--- a/files/poketool/personal/wotbl/narc_0174.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0175.bin b/files/poketool/personal/wotbl/narc_0175.bin
deleted file mode 100644
index 4681f595..00000000
--- a/files/poketool/personal/wotbl/narc_0175.bin
+++ /dev/null
@@ -1,2 +0,0 @@
--v &
-19BJT&\g \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0176.bin b/files/poketool/personal/wotbl/narc_0176.bin
deleted file mode 100644
index 5a645af3..00000000
--- a/files/poketool/personal/wotbl/narc_0176.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0177.bin b/files/poketool/personal/wotbl/narc_0177.bin
deleted file mode 100644
index cd38822e..00000000
--- a/files/poketool/personal/wotbl/narc_0177.bin
+++ /dev/null
@@ -1 +0,0 @@
-@+e d}e#~)m.9wCHOYY^^ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0178.bin b/files/poketool/personal/wotbl/narc_0178.bin
deleted file mode 100644
index 6f88ffb8..00000000
--- a/files/poketool/personal/wotbl/narc_0178.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0179.bin b/files/poketool/personal/wotbl/narc_0179.bin
deleted file mode 100644
index 79ee4342..00000000
--- a/files/poketool/personal/wotbl/narc_0179.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-!-
-TV& /9DAqJSW\ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0180.bin b/files/poketool/personal/wotbl/narc_0180.bin
deleted file mode 100644
index 86d3b2c5..00000000
--- a/files/poketool/personal/wotbl/narc_0180.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-!-T-
-TV( 3?DIqT_Wj \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0181.bin b/files/poketool/personal/wotbl/narc_0181.bin
deleted file mode 100644
index a99567ef..00000000
--- a/files/poketool/personal/wotbl/narc_0181.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0182.bin b/files/poketool/personal/wotbl/narc_0182.bin
deleted file mode 100644
index 8596af7a..00000000
--- a/files/poketool/personal/wotbl/narc_0182.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0183.bin b/files/poketool/personal/wotbl/narc_0183.bin
deleted file mode 100644
index a22748f0..00000000
--- a/files/poketool/personal/wotbl/narc_0183.bin
+++ /dev/null
@@ -1 +0,0 @@
-!o'7=$/&6@K8T \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0184.bin b/files/poketool/personal/wotbl/narc_0184.bin
deleted file mode 100644
index 1074c5c8..00000000
--- a/files/poketool/personal/wotbl/narc_0184.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0185.bin b/files/poketool/personal/wotbl/narc_0185.bin
deleted file mode 100644
index 17232a6e..00000000
--- a/files/poketool/personal/wotbl/narc_0185.bin
+++ /dev/null
@@ -1 +0,0 @@
-CX CXf"O-2==BLS&\gc \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0186.bin b/files/poketool/personal/wotbl/narc_0186.bin
deleted file mode 100644
index 10a0c531..00000000
--- a/files/poketool/personal/wotbl/narc_0186.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0187.bin b/files/poketool/personal/wotbl/narc_0187.bin
deleted file mode 100644
index bf4d3c04..00000000
--- a/files/poketool/personal/wotbl/narc_0187.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0188.bin b/files/poketool/personal/wotbl/narc_0188.bin
deleted file mode 100644
index dd3cc08d..00000000
--- a/files/poketool/personal/wotbl/narc_0188.bin
+++ /dev/null
@@ -1 +0,0 @@
-'!'!MNO K)I0H8@qIQXTai \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0189.bin b/files/poketool/personal/wotbl/narc_0189.bin
deleted file mode 100644
index dd3cc08d..00000000
--- a/files/poketool/personal/wotbl/narc_0189.bin
+++ /dev/null
@@ -1 +0,0 @@
-'!'!MNO K)I0H8@qIQXTai \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0190.bin b/files/poketool/personal/wotbl/narc_0190.bin
deleted file mode 100644
index 0c0be65c..00000000
--- a/files/poketool/personal/wotbl/narc_0190.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0191.bin b/files/poketool/personal/wotbl/narc_0191.bin
deleted file mode 100644
index b4cb368f..00000000
--- a/files/poketool/personal/wotbl/narc_0191.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-GJH
-@I"+3K:BJR[ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0192.bin b/files/poketool/personal/wotbl/narc_0192.bin
deleted file mode 100644
index 50d1dbca..00000000
--- a/files/poketool/personal/wotbl/narc_0192.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0193.bin b/files/poketool/personal/wotbl/narc_0193.bin
deleted file mode 100644
index 462c3f07..00000000
--- a/files/poketool/personal/wotbl/narc_0193.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0194.bin b/files/poketool/personal/wotbl/narc_0194.bin
deleted file mode 100644
index 45ce5505..00000000
--- a/files/poketool/personal/wotbl/narc_0194.bin
+++ /dev/null
@@ -1 +0,0 @@
-7', U'.;YBJ6VrVJ_ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0195.bin b/files/poketool/personal/wotbl/narc_0195.bin
deleted file mode 100644
index 15e9cb07..00000000
--- a/files/poketool/personal/wotbl/narc_0195.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0196.bin b/files/poketool/personal/wotbl/narc_0196.bin
deleted file mode 100644
index c4e44cea..00000000
--- a/files/poketool/personal/wotbl/narc_0196.bin
+++ /dev/null
@@ -1 +0,0 @@
-!']b,:<HVer^ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0197.bin b/files/poketool/personal/wotbl/narc_0197.bin
deleted file mode 100644
index 85f9b636..00000000
--- a/files/poketool/personal/wotbl/narc_0197.bin
+++ /dev/null
@@ -1 +0,0 @@
-!'b,m:HtWerg \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0198.bin b/files/poketool/personal/wotbl/narc_0198.bin
deleted file mode 100644
index 718beadd..00000000
--- a/files/poketool/personal/wotbl/narc_0198.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-@6
-re*t3 ?FR[ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0199.bin b/files/poketool/personal/wotbl/narc_0199.bin
deleted file mode 100644
index ef3f822d..00000000
--- a/files/poketool/personal/wotbl/narc_0199.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0200.bin b/files/poketool/personal/wotbl/narc_0200.bin
deleted file mode 100644
index 42edef25..00000000
--- a/files/poketool/personal/wotbl/narc_0200.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0201.bin b/files/poketool/personal/wotbl/narc_0201.bin
deleted file mode 100644
index cfe99f1c..00000000
--- a/files/poketool/personal/wotbl/narc_0201.bin
+++ /dev/null
@@ -1 +0,0 @@
- \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0202.bin b/files/poketool/personal/wotbl/narc_0202.bin
deleted file mode 100644
index 37f6dac2..00000000
--- a/files/poketool/personal/wotbl/narc_0202.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0203.bin b/files/poketool/personal/wotbl/narc_0203.bin
deleted file mode 100644
index 64eca8b4..00000000
--- a/files/poketool/personal/wotbl/narc_0203.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0204.bin b/files/poketool/personal/wotbl/narc_0204.bin
deleted file mode 100644
index a2ee1624..00000000
--- a/files/poketool/personal/wotbl/narc_0204.bin
+++ /dev/null
@@ -1 +0,0 @@
-!x $u"k).s9>NEhO&T \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0205.bin b/files/poketool/personal/wotbl/narc_0205.bin
deleted file mode 100644
index 31a35126..00000000
--- a/files/poketool/personal/wotbl/narc_0205.bin
+++ /dev/null
@@ -1 +0,0 @@
-!x$x $u"k).s9?BNMh[&ds| \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0206.bin b/files/poketool/personal/wotbl/narc_0206.bin
deleted file mode 100644
index 92c3f24c..00000000
--- a/files/poketool/personal/wotbl/narc_0206.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0207.bin b/files/poketool/personal/wotbl/narc_0207.bin
deleted file mode 100644
index b2e353dc..00000000
--- a/files/poketool/personal/wotbl/narc_0207.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-(
-jb (.g6>DqMU Z \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0208.bin b/files/poketool/personal/wotbl/narc_0208.bin
deleted file mode 100644
index cd01b012..00000000
--- a/files/poketool/personal/wotbl/narc_0208.bin
+++ /dev/null
@@ -1 +0,0 @@
-,!jg Xc=#,2=BLR&\c \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0209.bin b/files/poketool/personal/wotbl/narc_0209.bin
deleted file mode 100644
index ca33f139..00000000
--- a/files/poketool/personal/wotbl/narc_0209.bin
+++ /dev/null
@@ -1 +0,0 @@
-!',z&.2c>$JsWb \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0210.bin b/files/poketool/personal/wotbl/narc_0210.bin
deleted file mode 100644
index 129aba7d..00000000
--- a/files/poketool/personal/wotbl/narc_0210.bin
+++ /dev/null
@@ -1 +0,0 @@
-!',z&.6cF$Vsgv \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0211.bin b/files/poketool/personal/wotbl/narc_0211.bin
deleted file mode 100644
index 61cd3dce..00000000
--- a/files/poketool/personal/wotbl/narc_0211.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0212.bin b/files/poketool/personal/wotbl/narc_0212.bin
deleted file mode 100644
index 495148c8..00000000
--- a/files/poketool/personal/wotbl/narc_0212.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0213.bin b/files/poketool/personal/wotbl/narc_0213.bin
deleted file mode 100644
index 679eb454..00000000
--- a/files/poketool/personal/wotbl/narc_0213.bin
+++ /dev/null
@@ -1 +0,0 @@
-nu,#6F|Q{a \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0214.bin b/files/poketool/personal/wotbl/narc_0214.bin
deleted file mode 100644
index c68e178a..00000000
--- a/files/poketool/personal/wotbl/narc_0214.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0215.bin b/files/poketool/personal/wotbl/narc_0215.bin
deleted file mode 100644
index fe1554ff..00000000
--- a/files/poketool/personal/wotbl/narc_0215.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-
-+ bg*a08FLTc \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0216.bin b/files/poketool/personal/wotbl/narc_0216.bin
deleted file mode 100644
index ec8f58d9..00000000
--- a/files/poketool/personal/wotbl/narc_0216.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0217.bin b/files/poketool/personal/wotbl/narc_0217.bin
deleted file mode 100644
index 8b441c29..00000000
--- a/files/poketool/personal/wotbl/narc_0217.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0218.bin b/files/poketool/personal/wotbl/narc_0218.bin
deleted file mode 100644
index ff55c74c..00000000
--- a/files/poketool/personal/wotbl/narc_0218.bin
+++ /dev/null
@@ -1 +0,0 @@
-{4Xj i.4>MR"\5jq \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0219.bin b/files/poketool/personal/wotbl/narc_0219.bin
deleted file mode 100644
index 6d0da2ac..00000000
--- a/files/poketool/personal/wotbl/narc_0219.bin
+++ /dev/null
@@ -1 +0,0 @@
-{4X4Xj i.4>QZ"h5z \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0220.bin b/files/poketool/personal/wotbl/narc_0220.bin
deleted file mode 100644
index 223aa704..00000000
--- a/files/poketool/personal/wotbl/narc_0220.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0221.bin b/files/poketool/personal/wotbl/narc_0221.bin
deleted file mode 100644
index db68c344..00000000
--- a/files/poketool/personal/wotbl/narc_0221.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0222.bin b/files/poketool/personal/wotbl/narc_0222.bin
deleted file mode 100644
index 91b49466..00000000
--- a/files/poketool/personal/wotbl/narc_0222.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0223.bin b/files/poketool/personal/wotbl/narc_0223.bin
deleted file mode 100644
index f5cd4b7e..00000000
--- a/files/poketool/personal/wotbl/narc_0223.bin
+++ /dev/null
@@ -1 +0,0 @@
-7 <>=&t.K7`ADI:P?Z \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0224.bin b/files/poketool/personal/wotbl/narc_0224.bin
deleted file mode 100644
index b13bc1a1..00000000
--- a/files/poketool/personal/wotbl/narc_0224.bin
+++ /dev/null
@@ -1 +0,0 @@
-^7<> <>=&t.2K;zIDU:`?n \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0225.bin b/files/poketool/personal/wotbl/narc_0225.bin
deleted file mode 100644
index 0a37397c..00000000
--- a/files/poketool/personal/wotbl/narc_0225.bin
+++ /dev/null
@@ -1 +0,0 @@
- \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0226.bin b/files/poketool/personal/wotbl/narc_0226.bin
deleted file mode 100644
index 0351f1be..00000000
--- a/files/poketool/personal/wotbl/narc_0226.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0227.bin b/files/poketool/personal/wotbl/narc_0227.bin
deleted file mode 100644
index 5636020b..00000000
--- a/files/poketool/personal/wotbl/narc_0227.bin
+++ /dev/null
@@ -1 +0,0 @@
-+@a(:16?CLQ\e \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0228.bin b/files/poketool/personal/wotbl/narc_0228.bin
deleted file mode 100644
index 34e12f0b..00000000
--- a/files/poketool/personal/wotbl/narc_0228.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0229.bin b/files/poketool/personal/wotbl/narc_0229.bin
deleted file mode 100644
index 43341472..00000000
--- a/files/poketool/personal/wotbl/narc_0229.bin
+++ /dev/null
@@ -1 +0,0 @@
-+4P{P {.,"<-8ALuY5`ly \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0230.bin b/files/poketool/personal/wotbl/narc_0230.bin
deleted file mode 100644
index 40e8dc88..00000000
--- a/files/poketool/personal/wotbl/narc_0230.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0231.bin b/files/poketool/personal/wotbl/narc_0231.bin
deleted file mode 100644
index bb4a8844..00000000
--- a/files/poketool/personal/wotbl/narc_0231.bin
+++ /dev/null
@@ -1 +0,0 @@
-<!-o $k'08BK&T \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0232.bin b/files/poketool/personal/wotbl/narc_0232.bin
deleted file mode 100644
index 39b4536d..00000000
--- a/files/poketool/personal/wotbl/narc_0232.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0233.bin b/files/poketool/personal/wotbl/narc_0233.bin
deleted file mode 100644
index 8a1f5c61..00000000
--- a/files/poketool/personal/wotbl/narc_0233.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0234.bin b/files/poketool/personal/wotbl/narc_0234.bin
deleted file mode 100644
index ef9522f5..00000000
--- a/files/poketool/personal/wotbl/narc_0234.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0235.bin b/files/poketool/personal/wotbl/narc_0235.bin
deleted file mode 100644
index 205f0504..00000000
--- a/files/poketool/personal/wotbl/narc_0235.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0236.bin b/files/poketool/personal/wotbl/narc_0236.bin
deleted file mode 100644
index 38354129..00000000
--- a/files/poketool/personal/wotbl/narc_0236.bin
+++ /dev/null
@@ -1 +0,0 @@
-! \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0237.bin b/files/poketool/personal/wotbl/narc_0237.bin
deleted file mode 100644
index 39aab981..00000000
--- a/files/poketool/personal/wotbl/narc_0237.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0238.bin b/files/poketool/personal/wotbl/narc_0238.bin
deleted file mode 100644
index c172bf24..00000000
--- a/files/poketool/personal/wotbl/narc_0238.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0239.bin b/files/poketool/personal/wotbl/narc_0239.bin
deleted file mode 100644
index 4422f2b0..00000000
--- a/files/poketool/personal/wotbl/narc_0239.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0240.bin b/files/poketool/personal/wotbl/narc_0240.bin
deleted file mode 100644
index 9d272bb3..00000000
--- a/files/poketool/personal/wotbl/narc_0240.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0241.bin b/files/poketool/personal/wotbl/narc_0241.bin
deleted file mode 100644
index 1618de3b..00000000
--- a/files/poketool/personal/wotbl/narc_0241.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-!-o
-u&"0;GhS`fo \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0242.bin b/files/poketool/personal/wotbl/narc_0242.bin
deleted file mode 100644
index cb8d663e..00000000
--- a/files/poketool/personal/wotbl/narc_0242.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0243.bin b/files/poketool/personal/wotbl/narc_0243.bin
deleted file mode 100644
index f75f6ae6..00000000
--- a/files/poketool/personal/wotbl/narc_0243.bin
+++ /dev/null
@@ -1 +0,0 @@
-,+T.b,:sHVesFW[ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0244.bin b/files/poketool/personal/wotbl/narc_0244.bin
deleted file mode 100644
index d0421fdb..00000000
--- a/files/poketool/personal/wotbl/narc_0244.bin
+++ /dev/null
@@ -1 +0,0 @@
-,+4.S,:5HVesF~[ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0245.bin b/files/poketool/personal/wotbl/narc_0245.bin
deleted file mode 100644
index 68dbaf5e..00000000
--- a/files/poketool/personal/wotbl/narc_0245.bin
+++ /dev/null
@@ -1 +0,0 @@
-,+=,>:6HVensF8[ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0246.bin b/files/poketool/personal/wotbl/narc_0246.bin
deleted file mode 100644
index a265071c..00000000
--- a/files/poketool/personal/wotbl/narc_0246.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-,+
-g&%.9sAJYR]?d \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0247.bin b/files/poketool/personal/wotbl/narc_0247.bin
deleted file mode 100644
index ebbadaff..00000000
--- a/files/poketool/personal/wotbl/narc_0247.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-,+g
-g&%.9sERY^m?x \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0248.bin b/files/poketool/personal/wotbl/narc_0248.bin
deleted file mode 100644
index 39ef7919..00000000
--- a/files/poketool/personal/wotbl/narc_0248.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0249.bin b/files/poketool/personal/wotbl/narc_0249.bin
deleted file mode 100644
index 2df5184e..00000000
--- a/files/poketool/personal/wotbl/narc_0249.bin
+++ /dev/null
@@ -1 +0,0 @@
-i.8:JVkgrF[ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0250.bin b/files/poketool/personal/wotbl/narc_0250.bin
deleted file mode 100644
index 498a424d..00000000
--- a/files/poketool/personal/wotbl/narc_0250.bin
+++ /dev/null
@@ -1 +0,0 @@
-i.~:JVkgrFݪ[ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0251.bin b/files/poketool/personal/wotbl/narc_0251.bin
deleted file mode 100644
index 7666a79c..00000000
--- a/files/poketool/personal/wotbl/narc_0251.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0252.bin b/files/poketool/personal/wotbl/narc_0252.bin
deleted file mode 100644
index 4497a5e3..00000000
--- a/files/poketool/personal/wotbl/narc_0252.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0253.bin b/files/poketool/personal/wotbl/narc_0253.bin
deleted file mode 100644
index 711a0cfb..00000000
--- a/files/poketool/personal/wotbl/narc_0253.bin
+++ /dev/null
@@ -1 +0,0 @@
-+GbG b "g.\;aFR^jw \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0254.bin b/files/poketool/personal/wotbl/narc_0254.bin
deleted file mode 100644
index 16b7b127..00000000
--- a/files/poketool/personal/wotbl/narc_0254.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0255.bin b/files/poketool/personal/wotbl/narc_0255.bin
deleted file mode 100644
index b0c17bfb..00000000
--- a/files/poketool/personal/wotbl/narc_0255.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-
--t4@ &S2b8DwJ5V \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0256.bin b/files/poketool/personal/wotbl/narc_0256.bin
deleted file mode 100644
index b1220f78..00000000
--- a/files/poketool/personal/wotbl/narc_0256.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-
--t4t4 @"*S9b@NwVGem \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0257.bin b/files/poketool/personal/wotbl/narc_0257.bin
deleted file mode 100644
index a8abf36a..00000000
--- a/files/poketool/personal/wotbl/narc_0257.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-
--t4t4 @"*S9b@+ITcGw \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0258.bin b/files/poketool/personal/wotbl/narc_0258.bin
deleted file mode 100644
index ee2650fc..00000000
--- a/files/poketool/personal/wotbl/narc_0258.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0259.bin b/files/poketool/personal/wotbl/narc_0259.bin
deleted file mode 100644
index 1af7c87d..00000000
--- a/files/poketool/personal/wotbl/narc_0259.bin
+++ /dev/null
@@ -1 +0,0 @@
-!-7 7uU!(3$>JKTY\k \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0260.bin b/files/poketool/personal/wotbl/narc_0260.bin
deleted file mode 100644
index 362d31c0..00000000
--- a/files/poketool/personal/wotbl/narc_0260.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0261.bin b/files/poketool/personal/wotbl/narc_0261.bin
deleted file mode 100644
index 9a603413..00000000
--- a/files/poketool/personal/wotbl/narc_0261.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0262.bin b/files/poketool/personal/wotbl/narc_0262.bin
deleted file mode 100644
index 8bb07f3b..00000000
--- a/files/poketool/personal/wotbl/narc_0262.bin
+++ /dev/null
@@ -1 +0,0 @@
-!P,P ,<#.,6tAJ Uu_$hr} \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0263.bin b/files/poketool/personal/wotbl/narc_0263.bin
deleted file mode 100644
index 52f33fee..00000000
--- a/files/poketool/personal/wotbl/narc_0263.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-!-'
-<#,+*2W;BJRv[ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0264.bin b/files/poketool/personal/wotbl/narc_0264.bin
deleted file mode 100644
index ad522829..00000000
--- a/files/poketool/personal/wotbl/narc_0264.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0265.bin b/files/poketool/personal/wotbl/narc_0265.bin
deleted file mode 100644
index f33e6f42..00000000
--- a/files/poketool/personal/wotbl/narc_0265.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-!Q(
- \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0266.bin b/files/poketool/personal/wotbl/narc_0266.bin
deleted file mode 100644
index d4928219..00000000
--- a/files/poketool/personal/wotbl/narc_0266.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0267.bin b/files/poketool/personal/wotbl/narc_0267.bin
deleted file mode 100644
index 393237f4..00000000
--- a/files/poketool/personal/wotbl/narc_0267.bin
+++ /dev/null
@@ -1 +0,0 @@
-GGN"(H06>>ELS \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0268.bin b/files/poketool/personal/wotbl/narc_0268.bin
deleted file mode 100644
index d4928219..00000000
--- a/files/poketool/personal/wotbl/narc_0268.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0269.bin b/files/poketool/personal/wotbl/narc_0269.bin
deleted file mode 100644
index 8ff3557a..00000000
--- a/files/poketool/personal/wotbl/narc_0269.bin
+++ /dev/null
@@ -1 +0,0 @@
-]]"(<06q>>E\LS \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0270.bin b/files/poketool/personal/wotbl/narc_0270.bin
deleted file mode 100644
index 2fb5b7c5..00000000
--- a/files/poketool/personal/wotbl/narc_0270.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0271.bin b/files/poketool/personal/wotbl/narc_0271.bin
deleted file mode 100644
index 56f56d14..00000000
--- a/files/poketool/personal/wotbl/narc_0271.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0272.bin b/files/poketool/personal/wotbl/narc_0272.bin
deleted file mode 100644
index da63425c..00000000
--- a/files/poketool/personal/wotbl/narc_0272.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0273.bin b/files/poketool/personal/wotbl/narc_0273.bin
deleted file mode 100644
index 41f03564..00000000
--- a/files/poketool/personal/wotbl/narc_0273.bin
+++ /dev/null
@@ -1 +0,0 @@
-ujJ *>V \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0274.bin b/files/poketool/personal/wotbl/narc_0274.bin
deleted file mode 100644
index 5f1991b7..00000000
--- a/files/poketool/personal/wotbl/narc_0274.bin
+++ /dev/null
@@ -1 +0,0 @@
-KjJ &3> JVFc \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0275.bin b/files/poketool/personal/wotbl/narc_0275.bin
deleted file mode 100644
index 0faad3f3..00000000
--- a/files/poketool/personal/wotbl/narc_0275.bin
+++ /dev/null
@@ -1 +0,0 @@
-Kc \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0276.bin b/files/poketool/personal/wotbl/narc_0276.bin
deleted file mode 100644
index 1bc89075..00000000
--- a/files/poketool/personal/wotbl/narc_0276.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0277.bin b/files/poketool/personal/wotbl/narc_0277.bin
deleted file mode 100644
index c5bbd8e5..00000000
--- a/files/poketool/personal/wotbl/narc_0277.bin
+++ /dev/null
@@ -1 +0,0 @@
-m@-tbtbh&9LMab{ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0278.bin b/files/poketool/personal/wotbl/narc_0278.bin
deleted file mode 100644
index d926aee3..00000000
--- a/files/poketool/personal/wotbl/narc_0278.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0279.bin b/files/poketool/personal/wotbl/narc_0279.bin
deleted file mode 100644
index 3a9926b0..00000000
--- a/files/poketool/personal/wotbl/narc_0279.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0280.bin b/files/poketool/personal/wotbl/narc_0280.bin
deleted file mode 100644
index 004e2fd6..00000000
--- a/files/poketool/personal/wotbl/narc_0280.bin
+++ /dev/null
@@ -1 +0,0 @@
--] hd}#Y+[/^8ADN_VZ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0281.bin b/files/poketool/personal/wotbl/narc_0281.bin
deleted file mode 100644
index 997e7f8c..00000000
--- a/files/poketool/personal/wotbl/narc_0281.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0282.bin b/files/poketool/personal/wotbl/narc_0282.bin
deleted file mode 100644
index f4ea98a8..00000000
--- a/files/poketool/personal/wotbl/narc_0282.bin
+++ /dev/null
@@ -1 +0,0 @@
-i-]hd] hd#Y-[3^BQZk_x \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0283.bin b/files/poketool/personal/wotbl/narc_0283.bin
deleted file mode 100644
index 6ec62801..00000000
--- a/files/poketool/personal/wotbl/narc_0283.bin
+++ /dev/null
@@ -1 +0,0 @@
-bZ'=2a>6JrJV \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0284.bin b/files/poketool/personal/wotbl/narc_0284.bin
deleted file mode 100644
index ec2e14e4..00000000
--- a/files/poketool/personal/wotbl/narc_0284.bin
+++ /dev/null
@@ -1 +0,0 @@
-bZbZ',4NB>Q_l{ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0285.bin b/files/poketool/personal/wotbl/narc_0285.bin
deleted file mode 100644
index bbac16ab..00000000
--- a/files/poketool/personal/wotbl/narc_0285.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0286.bin b/files/poketool/personal/wotbl/narc_0286.bin
deleted file mode 100644
index f6854e5c..00000000
--- a/files/poketool/personal/wotbl/narc_0286.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0287.bin b/files/poketool/personal/wotbl/narc_0287.bin
deleted file mode 100644
index cbad8da2..00000000
--- a/files/poketool/personal/wotbl/narc_0287.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-
-/&2W?DJV \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0288.bin b/files/poketool/personal/wotbl/narc_0288.bin
deleted file mode 100644
index 13ea8885..00000000
--- a/files/poketool/personal/wotbl/narc_0288.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0289.bin b/files/poketool/personal/wotbl/narc_0289.bin
deleted file mode 100644
index 5f0ad331..00000000
--- a/files/poketool/personal/wotbl/narc_0289.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-
-//&2W?HDJVvcog{ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0290.bin b/files/poketool/personal/wotbl/narc_0290.bin
deleted file mode 100644
index 0813da6d..00000000
--- a/files/poketool/personal/wotbl/narc_0290.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0291.bin b/files/poketool/personal/wotbl/narc_0291.bin
deleted file mode 100644
index b4ff2fc3..00000000
--- a/files/poketool/personal/wotbl/narc_0291.bin
+++ /dev/null
@@ -1,3 +0,0 @@
-
-j
-&h((g(2>aLZi \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0292.bin b/files/poketool/personal/wotbl/narc_0292.bin
deleted file mode 100644
index d25c3eb9..00000000
--- a/files/poketool/personal/wotbl/narc_0292.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0293.bin b/files/poketool/personal/wotbl/narc_0293.bin
deleted file mode 100644
index 590af0cd..00000000
--- a/files/poketool/personal/wotbl/narc_0293.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-
-6P0*2g>.FRR0[ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0294.bin b/files/poketool/personal/wotbl/narc_0294.bin
deleted file mode 100644
index 91383195..00000000
--- a/files/poketool/personal/wotbl/narc_0294.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-6P
-6P,(0.:gJ.Vff0s \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0295.bin b/files/poketool/personal/wotbl/narc_0295.bin
deleted file mode 100644
index c9224486..00000000
--- a/files/poketool/personal/wotbl/narc_0295.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0296.bin b/files/poketool/personal/wotbl/narc_0296.bin
deleted file mode 100644
index 176ebb08..00000000
--- a/files/poketool/personal/wotbl/narc_0296.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0297.bin b/files/poketool/personal/wotbl/narc_0297.bin
deleted file mode 100644
index 4f5b7f05..00000000
--- a/files/poketool/personal/wotbl/narc_0297.bin
+++ /dev/null
@@ -1 +0,0 @@
-j!t$$ ' -6AEJfU^rir \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0298.bin b/files/poketool/personal/wotbl/narc_0298.bin
deleted file mode 100644
index d7d13553..00000000
--- a/files/poketool/personal/wotbl/narc_0298.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0299.bin b/files/poketool/personal/wotbl/narc_0299.bin
deleted file mode 100644
index 19194af5..00000000
--- a/files/poketool/personal/wotbl/narc_0299.bin
+++ /dev/null
@@ -1 +0,0 @@
-!jXO'V2>JVcozdž \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0300.bin b/files/poketool/personal/wotbl/narc_0300.bin
deleted file mode 100644
index eb2cdd08..00000000
--- a/files/poketool/personal/wotbl/narc_0300.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0301.bin b/files/poketool/personal/wotbl/narc_0301.bin
deleted file mode 100644
index adb72bf7..00000000
--- a/files/poketool/personal/wotbl/narc_0301.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0302.bin b/files/poketool/personal/wotbl/narc_0302.bin
deleted file mode 100644
index 9be84790..00000000
--- a/files/poketool/personal/wotbl/narc_0302.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0303.bin b/files/poketool/personal/wotbl/narc_0303.bin
deleted file mode 100644
index ec03f8dc..00000000
--- a/files/poketool/personal/wotbl/narc_0303.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0304.bin b/files/poketool/personal/wotbl/narc_0304.bin
deleted file mode 100644
index ef7739d0..00000000
--- a/files/poketool/personal/wotbl/narc_0304.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0305.bin b/files/poketool/personal/wotbl/narc_0305.bin
deleted file mode 100644
index 5046b02a..00000000
--- a/files/poketool/personal/wotbl/narc_0305.bin
+++ /dev/null
@@ -1 +0,0 @@
-!jjN%.,$2;D?QZ&fpq \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0306.bin b/files/poketool/personal/wotbl/narc_0306.bin
deleted file mode 100644
index 3b436a2c..00000000
--- a/files/poketool/personal/wotbl/narc_0306.bin
+++ /dev/null
@@ -1 +0,0 @@
-!jjN%.,$2;D?Q`&rp \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0307.bin b/files/poketool/personal/wotbl/narc_0307.bin
deleted file mode 100644
index 2aec84ac..00000000
--- a/files/poketool/personal/wotbl/narc_0307.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0308.bin b/files/poketool/personal/wotbl/narc_0308.bin
deleted file mode 100644
index adbde92a..00000000
--- a/files/poketool/personal/wotbl/narc_0308.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0309.bin b/files/poketool/personal/wotbl/narc_0309.bin
deleted file mode 100644
index 4ca612d2..00000000
--- a/files/poketool/personal/wotbl/narc_0309.bin
+++ /dev/null
@@ -1 +0,0 @@
-!V+Pb"(<3,8C.HS YWb \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0310.bin b/files/poketool/personal/wotbl/narc_0310.bin
deleted file mode 100644
index 69129ed1..00000000
--- a/files/poketool/personal/wotbl/narc_0310.bin
+++ /dev/null
@@ -1 +0,0 @@
-!V+PV+Pb"(<3,<K.Tc mWz \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0311.bin b/files/poketool/personal/wotbl/narc_0311.bin
deleted file mode 100644
index 56a90b65..00000000
--- a/files/poketool/personal/wotbl/narc_0311.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0312.bin b/files/poketool/personal/wotbl/narc_0312.bin
deleted file mode 100644
index 351bce34..00000000
--- a/files/poketool/personal/wotbl/narc_0312.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0313.bin b/files/poketool/personal/wotbl/narc_0313.bin
deleted file mode 100644
index 512645ba..00000000
--- a/files/poketool/personal/wotbl/narc_0313.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-!h
-mb"&+D3:CKS&Z \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0314.bin b/files/poketool/personal/wotbl/narc_0314.bin
deleted file mode 100644
index 66a44745..00000000
--- a/files/poketool/personal/wotbl/narc_0314.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0315.bin b/files/poketool/personal/wotbl/narc_0315.bin
deleted file mode 100644
index d94876b5..00000000
--- a/files/poketool/personal/wotbl/narc_0315.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0316.bin b/files/poketool/personal/wotbl/narc_0316.bin
deleted file mode 100644
index 4b6d5b1f..00000000
--- a/files/poketool/personal/wotbl/narc_0316.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0317.bin b/files/poketool/personal/wotbl/narc_0317.bin
deleted file mode 100644
index 4b941019..00000000
--- a/files/poketool/personal/wotbl/narc_0317.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0318.bin b/files/poketool/personal/wotbl/narc_0318.bin
deleted file mode 100644
index 46adbaf0..00000000
--- a/files/poketool/personal/wotbl/narc_0318.bin
+++ /dev/null
@@ -1 +0,0 @@
-+,c t!g$*t58?aH$L \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0319.bin b/files/poketool/personal/wotbl/narc_0319.bin
deleted file mode 100644
index e2b3fdbe..00000000
--- a/files/poketool/personal/wotbl/narc_0319.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0320.bin b/files/poketool/personal/wotbl/narc_0320.bin
deleted file mode 100644
index 965e40d0..00000000
--- a/files/poketool/personal/wotbl/narc_0320.bin
+++ /dev/null
@@ -1 +0,0 @@
--76#`+606j?CEJ#STY8^ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0321.bin b/files/poketool/personal/wotbl/narc_0321.bin
deleted file mode 100644
index aef58cae..00000000
--- a/files/poketool/personal/wotbl/narc_0321.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0322.bin b/files/poketool/personal/wotbl/narc_0322.bin
deleted file mode 100644
index 83889af6..00000000
--- a/files/poketool/personal/wotbl/narc_0322.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0323.bin b/files/poketool/personal/wotbl/narc_0323.bin
deleted file mode 100644
index 68629317..00000000
--- a/files/poketool/personal/wotbl/narc_0323.bin
+++ /dev/null
@@ -1,2 +0,0 @@
--!44
-t$*2?BOYbsZ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0324.bin b/files/poketool/personal/wotbl/narc_0324.bin
deleted file mode 100644
index 03c05597..00000000
--- a/files/poketool/personal/wotbl/narc_0324.bin
+++ /dev/null
@@ -1 +0,0 @@
-4{nS"l(.58"BHONYbho \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0325.bin b/files/poketool/personal/wotbl/narc_0325.bin
deleted file mode 100644
index 56c5a7c4..00000000
--- a/files/poketool/personal/wotbl/narc_0325.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0326.bin b/files/poketool/personal/wotbl/narc_0326.bin
deleted file mode 100644
index 855fb54e..00000000
--- a/files/poketool/personal/wotbl/narc_0326.bin
+++ /dev/null
@@ -1 +0,0 @@
-<<<<m$+5::sK^^oTy \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0327.bin b/files/poketool/personal/wotbl/narc_0327.bin
deleted file mode 100644
index 57c355c0..00000000
--- a/files/poketool/personal/wotbl/narc_0327.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-!
-<&_.8A*KR&\d%n \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0328.bin b/files/poketool/personal/wotbl/narc_0328.bin
deleted file mode 100644
index 1489fa7e..00000000
--- a/files/poketool/personal/wotbl/narc_0328.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0329.bin b/files/poketool/personal/wotbl/narc_0329.bin
deleted file mode 100644
index 9ac721f3..00000000
--- a/files/poketool/personal/wotbl/narc_0329.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0330.bin b/files/poketool/personal/wotbl/narc_0330.bin
deleted file mode 100644
index a350f8fb..00000000
--- a/files/poketool/personal/wotbl/narc_0330.bin
+++ /dev/null
@@ -1 +0,0 @@
-1H"H30BFgRQ[b?r \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0331.bin b/files/poketool/personal/wotbl/narc_0331.bin
deleted file mode 100644
index d5841f75..00000000
--- a/files/poketool/personal/wotbl/narc_0331.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0332.bin b/files/poketool/personal/wotbl/narc_0332.bin
deleted file mode 100644
index 1fd1da02..00000000
--- a/files/poketool/personal/wotbl/narc_0332.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-(+GJG
-JI"**3:FSs_.kvɂŽ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0333.bin b/files/poketool/personal/wotbl/narc_0333.bin
deleted file mode 100644
index 6990c5d6..00000000
--- a/files/poketool/personal/wotbl/narc_0333.bin
+++ /dev/null
@@ -1 +0,0 @@
-@-6 /$6.$8kAwHQ[d \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0334.bin b/files/poketool/personal/wotbl/narc_0334.bin
deleted file mode 100644
index 43e364df..00000000
--- a/files/poketool/personal/wotbl/narc_0334.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0335.bin b/files/poketool/personal/wotbl/narc_0335.bin
deleted file mode 100644
index a2ffac76..00000000
--- a/files/poketool/personal/wotbl/narc_0335.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0336.bin b/files/poketool/personal/wotbl/narc_0336.bin
deleted file mode 100644
index 44e7ff29..00000000
--- a/files/poketool/personal/wotbl/narc_0336.bin
+++ /dev/null
@@ -1 +0,0 @@
-#z,V!g&281EJrV]izo \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0337.bin b/files/poketool/personal/wotbl/narc_0337.bin
deleted file mode 100644
index 6ac44b9e..00000000
--- a/files/poketool/personal/wotbl/narc_0337.bin
+++ /dev/null
@@ -1 +0,0 @@
-!j]X_).u?BEyU^Zjp \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0338.bin b/files/poketool/personal/wotbl/narc_0338.bin
deleted file mode 100644
index ee31fca2..00000000
--- a/files/poketool/personal/wotbl/narc_0338.bin
+++ /dev/null
@@ -1 +0,0 @@
-!j]XS).u?BEyUZLjp \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0339.bin b/files/poketool/personal/wotbl/narc_0339.bin
deleted file mode 100644
index 7354757d..00000000
--- a/files/poketool/personal/wotbl/narc_0339.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0340.bin b/files/poketool/personal/wotbl/narc_0340.bin
deleted file mode 100644
index bb67bd23..00000000
--- a/files/poketool/personal/wotbl/narc_0340.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0341.bin b/files/poketool/personal/wotbl/narc_0341.bin
deleted file mode 100644
index 09545c14..00000000
--- a/files/poketool/personal/wotbl/narc_0341.bin
+++ /dev/null
@@ -1 +0,0 @@
-j +=(.5 AGLX^ j \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0342.bin b/files/poketool/personal/wotbl/narc_0342.bin
deleted file mode 100644
index b0deddac..00000000
--- a/files/poketool/personal/wotbl/narc_0342.bin
+++ /dev/null
@@ -1 +0,0 @@
-j +j +=(.5< EOXhr \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0343.bin b/files/poketool/personal/wotbl/narc_0343.bin
deleted file mode 100644
index ba33b82f..00000000
--- a/files/poketool/personal/wotbl/narc_0343.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0344.bin b/files/poketool/personal/wotbl/narc_0344.bin
deleted file mode 100644
index 5117ff03..00000000
--- a/files/poketool/personal/wotbl/narc_0344.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0345.bin b/files/poketool/personal/wotbl/narc_0345.bin
deleted file mode 100644
index 34ada498..00000000
--- a/files/poketool/personal/wotbl/narc_0345.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0346.bin b/files/poketool/personal/wotbl/narc_0346.bin
deleted file mode 100644
index ad42b588..00000000
--- a/files/poketool/personal/wotbl/narc_0346.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0347.bin b/files/poketool/personal/wotbl/narc_0347.bin
deleted file mode 100644
index 1689737d..00000000
--- a/files/poketool/personal/wotbl/narc_0347.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0348.bin b/files/poketool/personal/wotbl/narc_0348.bin
deleted file mode 100644
index 0fedc818..00000000
--- a/files/poketool/personal/wotbl/narc_0348.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0349.bin b/files/poketool/personal/wotbl/narc_0349.bin
deleted file mode 100644
index 5c1fc947..00000000
--- a/files/poketool/personal/wotbl/narc_0349.bin
+++ /dev/null
@@ -1 +0,0 @@
-!< \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0350.bin b/files/poketool/personal/wotbl/narc_0350.bin
deleted file mode 100644
index bdb200d7..00000000
--- a/files/poketool/personal/wotbl/narc_0350.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0351.bin b/files/poketool/personal/wotbl/narc_0351.bin
deleted file mode 100644
index 21c9ba4a..00000000
--- a/files/poketool/personal/wotbl/narc_0351.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0352.bin b/files/poketool/personal/wotbl/narc_0352.bin
deleted file mode 100644
index 2ddd6568..00000000
--- a/files/poketool/personal/wotbl/narc_0352.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0353.bin b/files/poketool/personal/wotbl/narc_0353.bin
deleted file mode 100644
index c8410814..00000000
--- a/files/poketool/personal/wotbl/narc_0353.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0354.bin b/files/poketool/personal/wotbl/narc_0354.bin
deleted file mode 100644
index af235c01..00000000
--- a/files/poketool/personal/wotbl/narc_0354.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-gege
- )/8>GuU!g u \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0355.bin b/files/poketool/personal/wotbl/narc_0355.bin
deleted file mode 100644
index 9e472312..00000000
--- a/files/poketool/personal/wotbl/narc_0355.bin
+++ /dev/null
@@ -1 +0,0 @@
-+e2 6m"-2<CLsS\ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0356.bin b/files/poketool/personal/wotbl/narc_0356.bin
deleted file mode 100644
index 986f0004..00000000
--- a/files/poketool/personal/wotbl/narc_0356.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0357.bin b/files/poketool/personal/wotbl/narc_0357.bin
deleted file mode 100644
index a5fa2d97..00000000
--- a/files/poketool/personal/wotbl/narc_0357.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0358.bin b/files/poketool/personal/wotbl/narc_0358.bin
deleted file mode 100644
index 927e9b30..00000000
--- a/files/poketool/personal/wotbl/narc_0358.bin
+++ /dev/null
@@ -1 +0,0 @@
-#- 6]"$,3<&BLRF]ic \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0359.bin b/files/poketool/personal/wotbl/narc_0359.bin
deleted file mode 100644
index de5596f1..00000000
--- a/files/poketool/personal/wotbl/narc_0359.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-
-+ b "(2,8hBHRYbi~sy \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0360.bin b/files/poketool/personal/wotbl/narc_0360.bin
deleted file mode 100644
index b523a78d..00000000
--- a/files/poketool/personal/wotbl/narc_0360.bin
+++ /dev/null
@@ -1 +0,0 @@
-D \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0361.bin b/files/poketool/personal/wotbl/narc_0361.bin
deleted file mode 100644
index f2199835..00000000
--- a/files/poketool/personal/wotbl/narc_0361.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0362.bin b/files/poketool/personal/wotbl/narc_0362.bin
deleted file mode 100644
index 87a0c288..00000000
--- a/files/poketool/personal/wotbl/narc_0362.bin
+++ /dev/null
@@ -1 +0,0 @@
-+h,h,&,9>:JQ;fIw \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0363.bin b/files/poketool/personal/wotbl/narc_0363.bin
deleted file mode 100644
index 18dc11d4..00000000
--- a/files/poketool/personal/wotbl/narc_0363.bin
+++ /dev/null
@@ -1 +0,0 @@
-o-7-"&>2?JJ;VIc \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0364.bin b/files/poketool/personal/wotbl/narc_0364.bin
deleted file mode 100644
index 2b566066..00000000
--- a/files/poketool/personal/wotbl/narc_0364.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0365.bin b/files/poketool/personal/wotbl/narc_0365.bin
deleted file mode 100644
index 965b71cf..00000000
--- a/files/poketool/personal/wotbl/narc_0365.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0366.bin b/files/poketool/personal/wotbl/narc_0366.bin
deleted file mode 100644
index f7dd195f..00000000
--- a/files/poketool/personal/wotbl/narc_0366.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0367.bin b/files/poketool/personal/wotbl/narc_0367.bin
deleted file mode 100644
index 0b81f548..00000000
--- a/files/poketool/personal/wotbl/narc_0367.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0368.bin b/files/poketool/personal/wotbl/narc_0368.bin
deleted file mode 100644
index 74b7d0c1..00000000
--- a/files/poketool/personal/wotbl/narc_0368.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0369.bin b/files/poketool/personal/wotbl/narc_0369.bin
deleted file mode 100644
index 626fa19e..00000000
--- a/files/poketool/personal/wotbl/narc_0369.bin
+++ /dev/null
@@ -1 +0,0 @@
-!j7=-$:,IV&d#s8ɝ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0370.bin b/files/poketool/personal/wotbl/narc_0370.bin
deleted file mode 100644
index 6771c822..00000000
--- a/files/poketool/personal/wotbl/narc_0370.bin
+++ /dev/null
@@ -1 +0,0 @@
-!7a$}#,6`?KQ\f \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0371.bin b/files/poketool/personal/wotbl/narc_0371.bin
deleted file mode 100644
index 20511d62..00000000
--- a/files/poketool/personal/wotbl/narc_0371.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0372.bin b/files/poketool/personal/wotbl/narc_0372.bin
deleted file mode 100644
index 6a36d8bc..00000000
--- a/files/poketool/personal/wotbl/narc_0372.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0373.bin b/files/poketool/personal/wotbl/narc_0373.bin
deleted file mode 100644
index 146b5f21..00000000
--- a/files/poketool/personal/wotbl/narc_0373.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-c,+,
-+ t(42<@KVdjQ{& \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0374.bin b/files/poketool/personal/wotbl/narc_0374.bin
deleted file mode 100644
index b82e94a1..00000000
--- a/files/poketool/personal/wotbl/narc_0374.bin
+++ /dev/null
@@ -1 +0,0 @@
-$ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0375.bin b/files/poketool/personal/wotbl/narc_0375.bin
deleted file mode 100644
index 9de1cc00..00000000
--- a/files/poketool/personal/wotbl/narc_0375.bin
+++ /dev/null
@@ -1 +0,0 @@
-$](](08A^HNQaX5ai?p \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0376.bin b/files/poketool/personal/wotbl/narc_0376.bin
deleted file mode 100644
index 480118b4..00000000
--- a/files/poketool/personal/wotbl/narc_0376.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0377.bin b/files/poketool/personal/wotbl/narc_0377.bin
deleted file mode 100644
index 368f42a8..00000000
--- a/files/poketool/personal/wotbl/narc_0377.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0378.bin b/files/poketool/personal/wotbl/narc_0378.bin
deleted file mode 100644
index fabdace4..00000000
--- a/files/poketool/personal/wotbl/narc_0378.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0379.bin b/files/poketool/personal/wotbl/narc_0379.bin
deleted file mode 100644
index 6f799b71..00000000
--- a/files/poketool/personal/wotbl/narc_0379.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0380.bin b/files/poketool/personal/wotbl/narc_0380.bin
deleted file mode 100644
index df8ddd46..00000000
--- a/files/poketool/personal/wotbl/narc_0380.bin
+++ /dev/null
@@ -1 +0,0 @@
- (Z3=(GQiZweniy^ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0381.bin b/files/poketool/personal/wotbl/narc_0381.bin
deleted file mode 100644
index c293d443..00000000
--- a/files/poketool/personal/wotbl/narc_0381.bin
+++ /dev/null
@@ -1 +0,0 @@
-y (2='GQiZwe]oy^ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0382.bin b/files/poketool/personal/wotbl/narc_0382.bin
deleted file mode 100644
index e0ca003d..00000000
--- a/files/poketool/personal/wotbl/narc_0382.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0383.bin b/files/poketool/personal/wotbl/narc_0383.bin
deleted file mode 100644
index dc60ddec..00000000
--- a/files/poketool/personal/wotbl/narc_0383.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0384.bin b/files/poketool/personal/wotbl/narc_0384.bin
deleted file mode 100644
index 85763aa9..00000000
--- a/files/poketool/personal/wotbl/narc_0384.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0385.bin b/files/poketool/personal/wotbl/narc_0385.bin
deleted file mode 100644
index 1a82e18f..00000000
--- a/files/poketool/personal/wotbl/narc_0385.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0386.bin b/files/poketool/personal/wotbl/narc_0386.bin
deleted file mode 100644
index bb706847..00000000
--- a/files/poketool/personal/wotbl/narc_0386.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0387.bin b/files/poketool/personal/wotbl/narc_0387.bin
deleted file mode 100644
index aff2251b..00000000
--- a/files/poketool/personal/wotbl/narc_0387.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0388.bin b/files/poketool/personal/wotbl/narc_0388.bin
deleted file mode 100644
index 1b1aa34a..00000000
--- a/files/poketool/personal/wotbl/narc_0388.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-!nn
-GK",,H6I@JT^i \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0389.bin b/files/poketool/personal/wotbl/narc_0389.bin
deleted file mode 100644
index a4c80059..00000000
--- a/files/poketool/personal/wotbl/narc_0389.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-!nGKn
-GK",,H6Y@IBNZfs \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0390.bin b/files/poketool/personal/wotbl/narc_0390.bin
deleted file mode 100644
index 9650dc38..00000000
--- a/files/poketool/personal/wotbl/narc_0390.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0391.bin b/files/poketool/personal/wotbl/narc_0391.bin
deleted file mode 100644
index 3fcf5ee1..00000000
--- a/files/poketool/personal/wotbl/narc_0391.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0392.bin b/files/poketool/personal/wotbl/narc_0392.bin
deleted file mode 100644
index b2d78632..00000000
--- a/files/poketool/personal/wotbl/narc_0392.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-
-+4 4 "*l;CrSSZ[ks \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0393.bin b/files/poketool/personal/wotbl/narc_0393.bin
deleted file mode 100644
index 5ee4dec9..00000000
--- a/files/poketool/personal/wotbl/narc_0393.bin
+++ /dev/null
@@ -1 +0,0 @@
--Z@u$=,2j;@6HAN8V \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0394.bin b/files/poketool/personal/wotbl/narc_0394.bin
deleted file mode 100644
index 827b2017..00000000
--- a/files/poketool/personal/wotbl/narc_0394.bin
+++ /dev/null
@@ -1 +0,0 @@
-!--Z@ u&=08jCJ6TA\8f \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0395.bin b/files/poketool/personal/wotbl/narc_0395.bin
deleted file mode 100644
index 55fdfb8a..00000000
--- a/files/poketool/personal/wotbl/narc_0395.bin
+++ /dev/null
@@ -1 +0,0 @@
-!--@ &=08jCIN6\Ah8v \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0396.bin b/files/poketool/personal/wotbl/narc_0396.bin
deleted file mode 100644
index 4e5e9998..00000000
--- a/files/poketool/personal/wotbl/narc_0396.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-!-b
-h#*L3$:aBK \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0397.bin b/files/poketool/personal/wotbl/narc_0397.bin
deleted file mode 100644
index cb33c061..00000000
--- a/files/poketool/personal/wotbl/narc_0397.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0398.bin b/files/poketool/personal/wotbl/narc_0398.bin
deleted file mode 100644
index 12187839..00000000
--- a/files/poketool/personal/wotbl/narc_0398.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0399.bin b/files/poketool/personal/wotbl/narc_0399.bin
deleted file mode 100644
index 45961a03..00000000
--- a/files/poketool/personal/wotbl/narc_0399.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-!-
-o"*3:$BJS \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0400.bin b/files/poketool/personal/wotbl/narc_0400.bin
deleted file mode 100644
index cf20af1d..00000000
--- a/files/poketool/personal/wotbl/narc_0400.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-!--
-o7$.9B$LVa \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0401.bin b/files/poketool/personal/wotbl/narc_0401.bin
deleted file mode 100644
index b6fbed71..00000000
--- a/files/poketool/personal/wotbl/narc_0401.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0402.bin b/files/poketool/personal/wotbl/narc_0402.bin
deleted file mode 100644
index fb2d7a96..00000000
--- a/files/poketool/personal/wotbl/narc_0402.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0403.bin b/files/poketool/personal/wotbl/narc_0403.bin
deleted file mode 100644
index fbe33530..00000000
--- a/files/poketool/personal/wotbl/narc_0403.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-!+
- ,".*2:CJS \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0404.bin b/files/poketool/personal/wotbl/narc_0404.bin
deleted file mode 100644
index 84e69203..00000000
--- a/files/poketool/personal/wotbl/narc_0404.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0405.bin b/files/poketool/personal/wotbl/narc_0405.bin
deleted file mode 100644
index 38806156..00000000
--- a/files/poketool/personal/wotbl/narc_0405.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-!+ +
- ,$..8FUbq \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0406.bin b/files/poketool/personal/wotbl/narc_0406.bin
deleted file mode 100644
index 04d89f03..00000000
--- a/files/poketool/personal/wotbl/narc_0406.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0407.bin b/files/poketool/personal/wotbl/narc_0407.bin
deleted file mode 100644
index f2b60d11..00000000
--- a/files/poketool/personal/wotbl/narc_0407.bin
+++ /dev/null
@@ -1 +0,0 @@
-7(HY \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0408.bin b/files/poketool/personal/wotbl/narc_0408.bin
deleted file mode 100644
index 647a6426..00000000
--- a/files/poketool/personal/wotbl/narc_0408.bin
+++ /dev/null
@@ -1 +0,0 @@
-+t $&t18CgJW \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0409.bin b/files/poketool/personal/wotbl/narc_0409.bin
deleted file mode 100644
index 5a2d63ec..00000000
--- a/files/poketool/personal/wotbl/narc_0409.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0410.bin b/files/poketool/personal/wotbl/narc_0410.bin
deleted file mode 100644
index 10b60494..00000000
--- a/files/poketool/personal/wotbl/narc_0410.bin
+++ /dev/null
@@ -1 +0,0 @@
-! ?$N'08BpKW \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0411.bin b/files/poketool/personal/wotbl/narc_0411.bin
deleted file mode 100644
index 09fa5d65..00000000
--- a/files/poketool/personal/wotbl/narc_0411.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0412.bin b/files/poketool/personal/wotbl/narc_0412.bin
deleted file mode 100644
index a35f1b01..00000000
--- a/files/poketool/personal/wotbl/narc_0412.bin
+++ /dev/null
@@ -1 +0,0 @@
-!( \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0413.bin b/files/poketool/personal/wotbl/narc_0413.bin
deleted file mode 100644
index e026021a..00000000
--- a/files/poketool/personal/wotbl/narc_0413.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0414.bin b/files/poketool/personal/wotbl/narc_0414.bin
deleted file mode 100644
index 90fb0ea7..00000000
--- a/files/poketool/personal/wotbl/narc_0414.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0415.bin b/files/poketool/personal/wotbl/narc_0415.bin
deleted file mode 100644
index d10cd56d..00000000
--- a/files/poketool/personal/wotbl/narc_0415.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0416.bin b/files/poketool/personal/wotbl/narc_0416.bin
deleted file mode 100644
index 5f927d4a..00000000
--- a/files/poketool/personal/wotbl/narc_0416.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0417.bin b/files/poketool/personal/wotbl/narc_0417.bin
deleted file mode 100644
index a368ab82..00000000
--- a/files/poketool/personal/wotbl/narc_0417.bin
+++ /dev/null
@@ -1,2 +0,0 @@
--ub
-"*2;BK \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0418.bin b/files/poketool/personal/wotbl/narc_0418.bin
deleted file mode 100644
index 2bcc0d0e..00000000
--- a/files/poketool/personal/wotbl/narc_0418.bin
+++ /dev/null
@@ -1 +0,0 @@
-1-Zb7 +a8H Z \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0419.bin b/files/poketool/personal/wotbl/narc_0419.bin
deleted file mode 100644
index 1feb4778..00000000
--- a/files/poketool/personal/wotbl/narc_0419.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0420.bin b/files/poketool/personal/wotbl/narc_0420.bin
deleted file mode 100644
index 379cec92..00000000
--- a/files/poketool/personal/wotbl/narc_0420.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0421.bin b/files/poketool/personal/wotbl/narc_0421.bin
deleted file mode 100644
index 60990198..00000000
--- a/files/poketool/personal/wotbl/narc_0421.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0422.bin b/files/poketool/personal/wotbl/narc_0422.bin
deleted file mode 100644
index 99311992..00000000
--- a/files/poketool/personal/wotbl/narc_0422.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0423.bin b/files/poketool/personal/wotbl/narc_0423.bin
deleted file mode 100644
index cd38cd83..00000000
--- a/files/poketool/personal/wotbl/narc_0423.bin
+++ /dev/null
@@ -1 +0,0 @@
-,j`,j` ,":JSil \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0424.bin b/files/poketool/personal/wotbl/narc_0424.bin
deleted file mode 100644
index 40b6f3ba..00000000
--- a/files/poketool/personal/wotbl/narc_0424.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0425.bin b/files/poketool/personal/wotbl/narc_0425.bin
deleted file mode 100644
index 96e4da28..00000000
--- a/files/poketool/personal/wotbl/narc_0425.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0426.bin b/files/poketool/personal/wotbl/narc_0426.bin
deleted file mode 100644
index 9f0f13e0..00000000
--- a/files/poketool/personal/wotbl/narc_0426.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0427.bin b/files/poketool/personal/wotbl/narc_0427.bin
deleted file mode 100644
index 9e45a0c2..00000000
--- a/files/poketool/personal/wotbl/narc_0427.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0428.bin b/files/poketool/personal/wotbl/narc_0428.bin
deleted file mode 100644
index 1bbf7213..00000000
--- a/files/poketool/personal/wotbl/narc_0428.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0429.bin b/files/poketool/personal/wotbl/narc_0429.bin
deleted file mode 100644
index fcee89ce..00000000
--- a/files/poketool/personal/wotbl/narc_0429.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0430.bin b/files/poketool/personal/wotbl/narc_0430.bin
deleted file mode 100644
index 30ebde41..00000000
--- a/files/poketool/personal/wotbl/narc_0430.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0431.bin b/files/poketool/personal/wotbl/narc_0431.bin
deleted file mode 100644
index bd08c984..00000000
--- a/files/poketool/personal/wotbl/narc_0431.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0432.bin b/files/poketool/personal/wotbl/narc_0432.bin
deleted file mode 100644
index ca7f2f13..00000000
--- a/files/poketool/personal/wotbl/narc_0432.bin
+++ /dev/null
@@ -1,4 +0,0 @@
-
--
-
--_"(2;AJL"Zj \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0433.bin b/files/poketool/personal/wotbl/narc_0433.bin
deleted file mode 100644
index c2eb3d19..00000000
--- a/files/poketool/personal/wotbl/narc_0433.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0434.bin b/files/poketool/personal/wotbl/narc_0434.bin
deleted file mode 100644
index 34f9cc60..00000000
--- a/files/poketool/personal/wotbl/narc_0434.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-
-tgl\(2?KX \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0435.bin b/files/poketool/personal/wotbl/narc_0435.bin
deleted file mode 100644
index 4fb1a6ea..00000000
--- a/files/poketool/personal/wotbl/narc_0435.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-
-tgl\(2?5DSh \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0436.bin b/files/poketool/personal/wotbl/narc_0436.bin
deleted file mode 100644
index 34976cad..00000000
--- a/files/poketool/personal/wotbl/narc_0436.bin
+++ /dev/null
@@ -1 +0,0 @@
-!]_mF'N5<hGJRscyi \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0437.bin b/files/poketool/personal/wotbl/narc_0437.bin
deleted file mode 100644
index de5252f6..00000000
--- a/files/poketool/personal/wotbl/narc_0437.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0438.bin b/files/poketool/personal/wotbl/narc_0438.bin
deleted file mode 100644
index 2509be18..00000000
--- a/files/poketool/personal/wotbl/narc_0438.bin
+++ /dev/null
@@ -1 +0,0 @@
-9 CXf"O-2==BLS&\ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0439.bin b/files/poketool/personal/wotbl/narc_0439.bin
deleted file mode 100644
index 66f247e4..00000000
--- a/files/poketool/personal/wotbl/narc_0439.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0440.bin b/files/poketool/personal/wotbl/narc_0440.bin
deleted file mode 100644
index 63b4f41b..00000000
--- a/files/poketool/personal/wotbl/narc_0440.bin
+++ /dev/null
@@ -1 +0,0 @@
-  \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0441.bin b/files/poketool/personal/wotbl/narc_0441.bin
deleted file mode 100644
index a2835b89..00000000
--- a/files/poketool/personal/wotbl/narc_0441.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0442.bin b/files/poketool/personal/wotbl/narc_0442.bin
deleted file mode 100644
index 2406ec4e..00000000
--- a/files/poketool/personal/wotbl/narc_0442.bin
+++ /dev/null
@@ -1 +0,0 @@
-m_&3?KWc \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0443.bin b/files/poketool/personal/wotbl/narc_0443.bin
deleted file mode 100644
index ed452e6d..00000000
--- a/files/poketool/personal/wotbl/narc_0443.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0444.bin b/files/poketool/personal/wotbl/narc_0444.bin
deleted file mode 100644
index f1a7c39e..00000000
--- a/files/poketool/personal/wotbl/narc_0444.bin
+++ /dev/null
@@ -1 +0,0 @@
-!R$H'8QC[Pc \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0445.bin b/files/poketool/personal/wotbl/narc_0445.bin
deleted file mode 100644
index d449c086..00000000
--- a/files/poketool/personal/wotbl/narc_0445.bin
+++ /dev/null
@@ -1 +0,0 @@
-!RR$H'8QC[P`o \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0446.bin b/files/poketool/personal/wotbl/narc_0446.bin
deleted file mode 100644
index a1dcaebe..00000000
--- a/files/poketool/personal/wotbl/narc_0446.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0447.bin b/files/poketool/personal/wotbl/narc_0447.bin
deleted file mode 100644
index 57964a87..00000000
--- a/files/poketool/personal/wotbl/narc_0447.bin
+++ /dev/null
@@ -1 +0,0 @@
-bD l&g0; \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0448.bin b/files/poketool/personal/wotbl/narc_0448.bin
deleted file mode 100644
index f9660d36..00000000
--- a/files/poketool/personal/wotbl/narc_0448.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0449.bin b/files/poketool/personal/wotbl/narc_0449.bin
deleted file mode 100644
index 44da98d8..00000000
--- a/files/poketool/personal/wotbl/narc_0449.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0450.bin b/files/poketool/personal/wotbl/narc_0450.bin
deleted file mode 100644
index bada0964..00000000
--- a/files/poketool/personal/wotbl/narc_0450.bin
+++ /dev/null
@@ -1 +0,0 @@
-!,,$&H3>YP&dZx \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0451.bin b/files/poketool/personal/wotbl/narc_0451.bin
deleted file mode 100644
index 4761008a..00000000
--- a/files/poketool/personal/wotbl/narc_0451.bin
+++ /dev/null
@@ -1 +0,0 @@
-,(+ *o#/8E1OZe \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0452.bin b/files/poketool/personal/wotbl/narc_0452.bin
deleted file mode 100644
index 9fb4ffac..00000000
--- a/files/poketool/personal/wotbl/narc_0452.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0453.bin b/files/poketool/personal/wotbl/narc_0453.bin
deleted file mode 100644
index 2e7b5f8d..00000000
--- a/files/poketool/personal/wotbl/narc_0453.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0454.bin b/files/poketool/personal/wotbl/narc_0454.bin
deleted file mode 100644
index 74f173b2..00000000
--- a/files/poketool/personal/wotbl/narc_0454.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0455.bin b/files/poketool/personal/wotbl/narc_0455.bin
deleted file mode 100644
index 26e1de99..00000000
--- a/files/poketool/personal/wotbl/narc_0455.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0456.bin b/files/poketool/personal/wotbl/narc_0456.bin
deleted file mode 100644
index 1f85435c..00000000
--- a/files/poketool/personal/wotbl/narc_0456.bin
+++ /dev/null
@@ -1 +0,0 @@
-7 "`-5:CLqUT[>c \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0457.bin b/files/poketool/personal/wotbl/narc_0457.bin
deleted file mode 100644
index 32cd98f6..00000000
--- a/files/poketool/personal/wotbl/narc_0457.bin
+++ /dev/null
@@ -1 +0,0 @@
-77 "`-5:GTqaTk>w \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0458.bin b/files/poketool/personal/wotbl/narc_0458.bin
deleted file mode 100644
index 3872e959..00000000
--- a/files/poketool/personal/wotbl/narc_0458.bin
+++ /dev/null
@@ -1 +0,0 @@
-!0=a&,`9$>mJTQ]8b \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0459.bin b/files/poketool/personal/wotbl/narc_0459.bin
deleted file mode 100644
index a80a3a41..00000000
--- a/files/poketool/personal/wotbl/narc_0459.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0460.bin b/files/poketool/personal/wotbl/narc_0460.bin
deleted file mode 100644
index 9b7dacdd..00000000
--- a/files/poketool/personal/wotbl/narc_0460.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-+KK
-@"6*5?I;^Iu \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0461.bin b/files/poketool/personal/wotbl/narc_0461.bin
deleted file mode 100644
index e8022c65..00000000
--- a/files/poketool/personal/wotbl/narc_0461.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-ut
-+ bbg*18GvMTc \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0462.bin b/files/poketool/personal/wotbl/narc_0462.bin
deleted file mode 100644
index 461a4115..00000000
--- a/files/poketool/personal/wotbl/narc_0462.bin
+++ /dev/null
@@ -1 +0,0 @@
-p?!T0T 01V",6=gDQ]ehmx \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0463.bin b/files/poketool/personal/wotbl/narc_0463.bin
deleted file mode 100644
index 24033f18..00000000
--- a/files/poketool/personal/wotbl/narc_0463.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-z0
-o#"*22:B~KSgZczkhs \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0464.bin b/files/poketool/personal/wotbl/narc_0464.bin
deleted file mode 100644
index 239b5196..00000000
--- a/files/poketool/personal/wotbl/narc_0464.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0465.bin b/files/poketool/personal/wotbl/narc_0465.bin
deleted file mode 100644
index 011f3407..00000000
--- a/files/poketool/personal/wotbl/narc_0465.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0466.bin b/files/poketool/personal/wotbl/narc_0466.bin
deleted file mode 100644
index 45fc15ca..00000000
--- a/files/poketool/personal/wotbl/narc_0466.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0467.bin b/files/poketool/personal/wotbl/narc_0467.bin
deleted file mode 100644
index 58721464..00000000
--- a/files/poketool/personal/wotbl/narc_0467.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0468.bin b/files/poketool/personal/wotbl/narc_0468.bin
deleted file mode 100644
index cda104f4..00000000
--- a/files/poketool/personal/wotbl/narc_0468.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0469.bin b/files/poketool/personal/wotbl/narc_0469.bin
deleted file mode 100644
index 2ba417df..00000000
--- a/files/poketool/personal/wotbl/narc_0469.bin
+++ /dev/null
@@ -1 +0,0 @@
-!bhb h1"0,6<BLgVq]cm \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0470.bin b/files/poketool/personal/wotbl/narc_0470.bin
deleted file mode 100644
index baacd513..00000000
--- a/files/poketool/personal/wotbl/narc_0470.bin
+++ /dev/null
@@ -1 +0,0 @@
-!'Kb,:YIVe@s\ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0471.bin b/files/poketool/personal/wotbl/narc_0471.bin
deleted file mode 100644
index 707e8427..00000000
--- a/files/poketool/personal/wotbl/narc_0471.bin
+++ /dev/null
@@ -1 +0,0 @@
-!'b,,:IWer; \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0472.bin b/files/poketool/personal/wotbl/narc_0472.bin
deleted file mode 100644
index cba5be29..00000000
--- a/files/poketool/personal/wotbl/narc_0472.bin
+++ /dev/null
@@ -1,2 +0,0 @@
-j
-jb (.g6?DqMU Z \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0473.bin b/files/poketool/personal/wotbl/narc_0473.bin
deleted file mode 100644
index 7b4b50cf..00000000
--- a/files/poketool/personal/wotbl/narc_0473.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0474.bin b/files/poketool/personal/wotbl/narc_0474.bin
deleted file mode 100644
index e877cefd..00000000
--- a/files/poketool/personal/wotbl/narc_0474.bin
+++ /dev/null
@@ -1 +0,0 @@
-!<ai$/D;uEQZfq|? \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0475.bin b/files/poketool/personal/wotbl/narc_0475.bin
deleted file mode 100644
index b2994a5e..00000000
--- a/files/poketool/personal/wotbl/narc_0475.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0476.bin b/files/poketool/personal/wotbl/narc_0476.bin
deleted file mode 100644
index 5fe0a726..00000000
--- a/files/poketool/personal/wotbl/narc_0476.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0477.bin b/files/poketool/personal/wotbl/narc_0477.bin
deleted file mode 100644
index 986f0004..00000000
--- a/files/poketool/personal/wotbl/narc_0477.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0478.bin b/files/poketool/personal/wotbl/narc_0478.bin
deleted file mode 100644
index 4358d10f..00000000
--- a/files/poketool/personal/wotbl/narc_0478.bin
+++ /dev/null
@@ -1 +0,0 @@
-+h6h6m&-f9?KQ;fv \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0479.bin b/files/poketool/personal/wotbl/narc_0479.bin
deleted file mode 100644
index 68ad32ef..00000000
--- a/files/poketool/personal/wotbl/narc_0479.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0480.bin b/files/poketool/personal/wotbl/narc_0480.bin
deleted file mode 100644
index 66e39428..00000000
--- a/files/poketool/personal/wotbl/narc_0480.bin
+++ /dev/null
@@ -1 +0,0 @@
- ]*?H\Fgzk \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0481.bin b/files/poketool/personal/wotbl/narc_0481.bin
deleted file mode 100644
index 400847a1..00000000
--- a/files/poketool/personal/wotbl/narc_0481.bin
+++ /dev/null
@@ -1 +0,0 @@
- ]*}?H\Fg{ki \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0482.bin b/files/poketool/personal/wotbl/narc_0482.bin
deleted file mode 100644
index 2167b650..00000000
--- a/files/poketool/personal/wotbl/narc_0482.bin
+++ /dev/null
@@ -1 +0,0 @@
- ]*>H]Fg{k \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0483.bin b/files/poketool/personal/wotbl/narc_0483.bin
deleted file mode 100644
index 4a5b1306..00000000
--- a/files/poketool/personal/wotbl/narc_0483.bin
+++ /dev/null
@@ -1 +0,0 @@
-(Q=Qyey \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0484.bin b/files/poketool/personal/wotbl/narc_0484.bin
deleted file mode 100644
index 4fb068eb..00000000
--- a/files/poketool/personal/wotbl/narc_0484.bin
+++ /dev/null
@@ -1 +0,0 @@
-`(Q=Qyey \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0485.bin b/files/poketool/personal/wotbl/narc_0485.bin
deleted file mode 100644
index 17480481..00000000
--- a/files/poketool/personal/wotbl/narc_0485.bin
+++ /dev/null
@@ -1 +0,0 @@
-+#?3BRcSr \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0486.bin b/files/poketool/personal/wotbl/narc_0486.bin
deleted file mode 100644
index f77d32fe..00000000
--- a/files/poketool/personal/wotbl/narc_0486.bin
+++ /dev/null
@@ -1 +0,0 @@
- m3eΗ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0487.bin b/files/poketool/personal/wotbl/narc_0487.bin
deleted file mode 100644
index a0ed3639..00000000
--- a/files/poketool/personal/wotbl/narc_0487.bin
+++ /dev/null
@@ -1 +0,0 @@
-(Q=Qyey \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0488.bin b/files/poketool/personal/wotbl/narc_0488.bin
deleted file mode 100644
index c3ea3014..00000000
--- a/files/poketool/personal/wotbl/narc_0488.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0489.bin b/files/poketool/personal/wotbl/narc_0489.bin
deleted file mode 100644
index 35a7cd4b..00000000
--- a/files/poketool/personal/wotbl/narc_0489.bin
+++ /dev/null
@@ -1 +0,0 @@
-Z0 =0>N`]m#{ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0490.bin b/files/poketool/personal/wotbl/narc_0490.bin
deleted file mode 100644
index 3d69082b..00000000
--- a/files/poketool/personal/wotbl/narc_0490.bin
+++ /dev/null
@@ -1 +0,0 @@
-&Z0 =0>N`]m#{ \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0491.bin b/files/poketool/personal/wotbl/narc_0491.bin
deleted file mode 100644
index da3d6a52..00000000
--- a/files/poketool/personal/wotbl/narc_0491.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0492.bin b/files/poketool/personal/wotbl/narc_0492.bin
deleted file mode 100644
index 77b66ce3..00000000
--- a/files/poketool/personal/wotbl/narc_0492.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0493.bin b/files/poketool/personal/wotbl/narc_0493.bin
deleted file mode 100644
index 700140c5..00000000
--- a/files/poketool/personal/wotbl/narc_0493.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0494.bin b/files/poketool/personal/wotbl/narc_0494.bin
deleted file mode 100644
index 066379f4..00000000
--- a/files/poketool/personal/wotbl/narc_0494.bin
+++ /dev/null
@@ -1 +0,0 @@
- \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0495.bin b/files/poketool/personal/wotbl/narc_0495.bin
deleted file mode 100644
index 066379f4..00000000
--- a/files/poketool/personal/wotbl/narc_0495.bin
+++ /dev/null
@@ -1 +0,0 @@
- \ No newline at end of file
diff --git a/files/poketool/personal/wotbl/narc_0496.bin b/files/poketool/personal/wotbl/narc_0496.bin
deleted file mode 100644
index d70edae4..00000000
--- a/files/poketool/personal/wotbl/narc_0496.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0497.bin b/files/poketool/personal/wotbl/narc_0497.bin
deleted file mode 100644
index 6b153e41..00000000
--- a/files/poketool/personal/wotbl/narc_0497.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0498.bin b/files/poketool/personal/wotbl/narc_0498.bin
deleted file mode 100644
index ff10977c..00000000
--- a/files/poketool/personal/wotbl/narc_0498.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0499.bin b/files/poketool/personal/wotbl/narc_0499.bin
deleted file mode 100644
index 3c50259e..00000000
--- a/files/poketool/personal/wotbl/narc_0499.bin
+++ /dev/null
Binary files differ
diff --git a/files/poketool/personal/wotbl/narc_0500.bin b/files/poketool/personal/wotbl/narc_0500.bin
deleted file mode 100644
index d54ef4b1..00000000
--- a/files/poketool/personal/wotbl/narc_0500.bin
+++ /dev/null
Binary files differ
diff --git a/filesystem.mk b/filesystem.mk
index b43877db..05098980 100644
--- a/filesystem.mk
+++ b/filesystem.mk
@@ -280,8 +280,17 @@ HOSTFS_FILES = $(NITROFS_FILES:%=files/%)
%.arc:
$(KNARC) -d $(basename $@)/ -p $@
-files/poketool/personal/pms.narc: ;
+O2NARC_TARGETS := \
+ files/poketool/personal/personal.narc \
+ files/poketool/personal/wotbl.narc \
+ files/poketool/personal/evo.narc \
+ files/poketool/personal/growtbl.narc \
+ files/poketool/personal/pms.narc \
-files/poketool/personal/growtbl.narc: $(wildcard files/poketool/personal/growtbl/*.txt)
- $(MAKE) -C $(<D)
- $(NARCCOMP) -o $@ -p 255 $(^:%.txt=%.bin)
+files/poketool/personal/pms.narc: O2NARCFLAGS = -f
+
+$(O2NARC_TARGETS): %.narc: %.json %.json.txt
+ $(JSONPROC) $^ $*.c
+ $(CC) $(CFLAGS) -c -o $*.o $*.c
+ $(O2NARC) $(O2NARCFLAGS) $*.o $@
+ @$(RM) $*.o $*.c
diff --git a/include/MWC_string.h b/include/MWC_string.h
new file mode 100644
index 00000000..d2980fb6
--- /dev/null
+++ b/include/MWC_string.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_MWC_STRING_H
+#define GUARD_MWC_STRING_H
+
+#include "nitro/types.h"
+
+void * memset(void *, int, u32);
+
+#endif //GUARD_MWC_STRING_H
diff --git a/include/constants/abilities.h b/include/constants/abilities.h
new file mode 100644
index 00000000..f107e623
--- /dev/null
+++ b/include/constants/abilities.h
@@ -0,0 +1,129 @@
+#ifndef POKEDIAMOND_CONSTANTS_ABILITIES_H
+#define POKEDIAMOND_CONSTANTS_ABILITIES_H
+
+#define ABILITY_NONE 0
+#define ABILITY_STENCH 1
+#define ABILITY_DRIZZLE 2
+#define ABILITY_SPEED_BOOST 3
+#define ABILITY_BATTLE_ARMOR 4
+#define ABILITY_STURDY 5
+#define ABILITY_DAMP 6
+#define ABILITY_LIMBER 7
+#define ABILITY_SAND_VEIL 8
+#define ABILITY_STATIC 9
+#define ABILITY_VOLT_ABSORB 10
+#define ABILITY_WATER_ABSORB 11
+#define ABILITY_OBLIVIOUS 12
+#define ABILITY_CLOUD_NINE 13
+#define ABILITY_COMPOUND_EYES 14
+#define ABILITY_INSOMNIA 15
+#define ABILITY_COLOR_CHANGE 16
+#define ABILITY_IMMUNITY 17
+#define ABILITY_FLASH_FIRE 18
+#define ABILITY_SHIELD_DUST 19
+#define ABILITY_OWN_TEMPO 20
+#define ABILITY_SUCTION_CUPS 21
+#define ABILITY_INTIMIDATE 22
+#define ABILITY_SHADOW_TAG 23
+#define ABILITY_ROUGH_SKIN 24
+#define ABILITY_WONDER_GUARD 25
+#define ABILITY_LEVITATE 26
+#define ABILITY_EFFECT_SPORE 27
+#define ABILITY_SYNCHRONIZE 28
+#define ABILITY_CLEAR_BODY 29
+#define ABILITY_NATURAL_CURE 30
+#define ABILITY_LIGHTNING_ROD 31
+#define ABILITY_SERENE_GRACE 32
+#define ABILITY_SWIFT_SWIM 33
+#define ABILITY_CHLOROPHYLL 34
+#define ABILITY_ILLUMINATE 35
+#define ABILITY_TRACE 36
+#define ABILITY_HUGE_POWER 37
+#define ABILITY_POISON_POINT 38
+#define ABILITY_INNER_FOCUS 39
+#define ABILITY_MAGMA_ARMOR 40
+#define ABILITY_WATER_VEIL 41
+#define ABILITY_MAGNET_PULL 42
+#define ABILITY_SOUNDPROOF 43
+#define ABILITY_RAIN_DISH 44
+#define ABILITY_SAND_STREAM 45
+#define ABILITY_PRESSURE 46
+#define ABILITY_THICK_FAT 47
+#define ABILITY_EARLY_BIRD 48
+#define ABILITY_FLAME_BODY 49
+#define ABILITY_RUN_AWAY 50
+#define ABILITY_KEEN_EYE 51
+#define ABILITY_HYPER_CUTTER 52
+#define ABILITY_PICKUP 53
+#define ABILITY_TRUANT 54
+#define ABILITY_HUSTLE 55
+#define ABILITY_CUTE_CHARM 56
+#define ABILITY_PLUS 57
+#define ABILITY_MINUS 58
+#define ABILITY_FORECAST 59
+#define ABILITY_STICKY_HOLD 60
+#define ABILITY_SHED_SKIN 61
+#define ABILITY_GUTS 62
+#define ABILITY_MARVEL_SCALE 63
+#define ABILITY_LIQUID_OOZE 64
+#define ABILITY_OVERGROW 65
+#define ABILITY_BLAZE 66
+#define ABILITY_TORRENT 67
+#define ABILITY_SWARM 68
+#define ABILITY_ROCK_HEAD 69
+#define ABILITY_DROUGHT 70
+#define ABILITY_ARENA_TRAP 71
+#define ABILITY_VITAL_SPIRIT 72
+#define ABILITY_WHITE_SMOKE 73
+#define ABILITY_PURE_POWER 74
+#define ABILITY_SHELL_ARMOR 75
+#define ABILITY_AIR_LOCK 76
+#define ABILITY_TANGLED_FEET 77
+#define ABILITY_MOTOR_DRIVE 78
+#define ABILITY_RIVALRY 79
+#define ABILITY_STEADFAST 80
+#define ABILITY_SNOW_CLOAK 81
+#define ABILITY_GLUTTONY 82
+#define ABILITY_ANGER_POINT 83
+#define ABILITY_UNBURDEN 84
+#define ABILITY_HEATPROOF 85
+#define ABILITY_SIMPLE 86
+#define ABILITY_DRY_SKIN 87
+#define ABILITY_DOWNLOAD 88
+#define ABILITY_IRON_FIST 89
+#define ABILITY_POISON_HEAL 90
+#define ABILITY_ADAPTABILITY 91
+#define ABILITY_SKILL_LINK 92
+#define ABILITY_HYDRATION 93
+#define ABILITY_SOLAR_POWER 94
+#define ABILITY_QUICK_FEET 95
+#define ABILITY_NORMALIZE 96
+#define ABILITY_SNIPER 97
+#define ABILITY_MAGIC_GUARD 98
+#define ABILITY_NO_GUARD 99
+#define ABILITY_STALL 100
+#define ABILITY_TECHNICIAN 101
+#define ABILITY_LEAF_GUARD 102
+#define ABILITY_KLUTZ 103
+#define ABILITY_MOLD_BREAKER 104
+#define ABILITY_SUPER_LUCK 105
+#define ABILITY_AFTERMATH 106
+#define ABILITY_ANTICIPATION 107
+#define ABILITY_FOREWARN 108
+#define ABILITY_UNAWARE 109
+#define ABILITY_TINTED_LENS 110
+#define ABILITY_FILTER 111
+#define ABILITY_SLOW_START 112
+#define ABILITY_SCRAPPY 113
+#define ABILITY_STORM_DRAIN 114
+#define ABILITY_ICE_BODY 115
+#define ABILITY_SOLID_ROCK 116
+#define ABILITY_SNOW_WARNING 117
+#define ABILITY_HONEY_GATHER 118
+#define ABILITY_FRISK 119
+#define ABILITY_RECKLESS 120
+#define ABILITY_MULTITYPE 121
+#define ABILITY_FLOWER_GIFT 122
+#define ABILITY_BAD_DREAMS 123
+
+#endif //POKEDIAMOND_CONSTANTS_ABILITIES_H
diff --git a/include/constants/global.h b/include/constants/global.h
new file mode 100644
index 00000000..28d4b206
--- /dev/null
+++ b/include/constants/global.h
@@ -0,0 +1,7 @@
+#ifndef POKEDIAMOND_CONSTANTS_GLOBAL_H
+#define POKEDIAMOND_CONSTANTS_GLOBAL_H
+
+#define POKEMON_NAME_LENGTH 10
+#define OT_NAME_LENGTH 7
+
+#endif //POKEDIAMOND_CONSTANTS_GLOBAL_H
diff --git a/include/constants/items.h b/include/constants/items.h
new file mode 100644
index 00000000..a7fcc32f
--- /dev/null
+++ b/include/constants/items.h
@@ -0,0 +1,555 @@
+#ifndef POKEDIAMOND_CONSTANTS_ITEMS_H
+#define POKEDIAMOND_CONSTANTS_ITEMS_H
+
+#define ITEM_NONE 0
+#define ITEM_MASTER_BALL 1
+#define ITEM_ULTRA_BALL 2
+#define ITEM_GREAT_BALL 3
+#define ITEM_POKE_BALL 4
+#define ITEM_SAFARI_BALL 5
+#define ITEM_NET_BALL 6
+#define ITEM_DIVE_BALL 7
+#define ITEM_NEST_BALL 8
+#define ITEM_REPEAT_BALL 9
+#define ITEM_TIMER_BALL 10
+#define ITEM_LUXURY_BALL 11
+#define ITEM_PREMIER_BALL 12
+#define ITEM_DUSK_BALL 13
+#define ITEM_HEAL_BALL 14
+#define ITEM_QUICK_BALL 15
+#define ITEM_CHERISH_BALL 16
+#define ITEM_POTION 17
+#define ITEM_ANTIDOTE 18
+#define ITEM_BURN_HEAL 19
+#define ITEM_ICE_HEAL 20
+#define ITEM_AWAKENING 21
+#define ITEM_PARLYZ_HEAL 22
+#define ITEM_FULL_RESTORE 23
+#define ITEM_MAX_POTION 24
+#define ITEM_HYPER_POTION 25
+#define ITEM_SUPER_POTION 26
+#define ITEM_FULL_HEAL 27
+#define ITEM_REVIVE 28
+#define ITEM_MAX_REVIVE 29
+#define ITEM_FRESH_WATER 30
+#define ITEM_SODA_POP 31
+#define ITEM_LEMONADE 32
+#define ITEM_MOOMOO_MILK 33
+#define ITEM_ENERGYPOWDER 34
+#define ITEM_ENERGY_ROOT 35
+#define ITEM_HEAL_POWDER 36
+#define ITEM_REVIVAL_HERB 37
+#define ITEM_ETHER 38
+#define ITEM_MAX_ETHER 39
+#define ITEM_ELIXIR 40
+#define ITEM_MAX_ELIXIR 41
+#define ITEM_LAVA_COOKIE 42
+#define ITEM_BERRY_JUICE 43
+#define ITEM_SACRED_ASH 44
+#define ITEM_HP_UP 45
+#define ITEM_PROTEIN 46
+#define ITEM_IRON 47
+#define ITEM_CARBOS 48
+#define ITEM_CALCIUM 49
+#define ITEM_RARE_CANDY 50
+#define ITEM_PP_UP 51
+#define ITEM_ZINC 52
+#define ITEM_PP_MAX 53
+#define ITEM_OLD_GATEAU 54
+#define ITEM_GUARD_SPEC_ 55
+#define ITEM_DIRE_HIT 56
+#define ITEM_X_ATTACK 57
+#define ITEM_X_DEFENSE 58
+#define ITEM_X_SPEED 59
+#define ITEM_X_ACCURACY 60
+#define ITEM_X_SPECIAL 61
+#define ITEM_X_SP__DEF 62
+#define ITEM_POKE_DOLL 63
+#define ITEM_FLUFFY_TAIL 64
+#define ITEM_BLUE_FLUTE 65
+#define ITEM_YELLOW_FLUTE 66
+#define ITEM_RED_FLUTE 67
+#define ITEM_BLACK_FLUTE 68
+#define ITEM_WHITE_FLUTE 69
+#define ITEM_SHOAL_SALT 70
+#define ITEM_SHOAL_SHELL 71
+#define ITEM_RED_SHARD 72
+#define ITEM_BLUE_SHARD 73
+#define ITEM_YELLOW_SHARD 74
+#define ITEM_GREEN_SHARD 75
+#define ITEM_SUPER_REPEL 76
+#define ITEM_MAX_REPEL 77
+#define ITEM_ESCAPE_ROPE 78
+#define ITEM_REPEL 79
+#define ITEM_SUN_STONE 80
+#define ITEM_MOON_STONE 81
+#define ITEM_FIRE_STONE 82
+#define ITEM_THUNDERSTONE 83
+#define ITEM_WATER_STONE 84
+#define ITEM_LEAF_STONE 85
+#define ITEM_TINYMUSHROOM 86
+#define ITEM_BIG_MUSHROOM 87
+#define ITEM_PEARL 88
+#define ITEM_BIG_PEARL 89
+#define ITEM_STARDUST 90
+#define ITEM_STAR_PIECE 91
+#define ITEM_NUGGET 92
+#define ITEM_HEART_SCALE 93
+#define ITEM_HONEY 94
+#define ITEM_GROWTH_MULCH 95
+#define ITEM_DAMP_MULCH 96
+#define ITEM_STABLE_MULCH 97
+#define ITEM_GOOEY_MULCH 98
+#define ITEM_ROOT_FOSSIL 99
+#define ITEM_CLAW_FOSSIL 100
+#define ITEM_HELIX_FOSSIL 101
+#define ITEM_DOME_FOSSIL 102
+#define ITEM_OLD_AMBER 103
+#define ITEM_ARMOR_FOSSIL 104
+#define ITEM_SKULL_FOSSIL 105
+#define ITEM_RARE_BONE 106
+#define ITEM_SHINY_STONE 107
+#define ITEM_DUSK_STONE 108
+#define ITEM_DAWN_STONE 109
+#define ITEM_OVAL_STONE 110
+#define ITEM_ODD_KEYSTONE 111
+
+#define ITEM_ADAMANT_ORB 135
+#define ITEM_LUSTROUS_ORB 136
+#define ITEM_GRASS_MAIL 137
+#define ITEM_FLAME_MAIL 138
+#define ITEM_BUBBLE_MAIL 139
+#define ITEM_BLOOM_MAIL 140
+#define ITEM_TUNNEL_MAIL 141
+#define ITEM_STEEL_MAIL 142
+#define ITEM_HEART_MAIL 143
+#define ITEM_SNOW_MAIL 144
+#define ITEM_SPACE_MAIL 145
+#define ITEM_AIR_MAIL 146
+#define ITEM_MOSAIC_MAIL 147
+#define ITEM_BRICK_MAIL 148
+
+#define ITEM_CHERI_BERRY 149
+#define FIRST_BERRY_IDX ITEM_CHERI_BERRY
+#define ITEM_CHESTO_BERRY 150
+#define ITEM_PECHA_BERRY 151
+#define ITEM_RAWST_BERRY 152
+#define ITEM_ASPEAR_BERRY 153
+#define ITEM_LEPPA_BERRY 154
+#define ITEM_ORAN_BERRY 155
+#define ITEM_PERSIM_BERRY 156
+#define ITEM_LUM_BERRY 157
+#define ITEM_SITRUS_BERRY 158
+#define ITEM_FIGY_BERRY 159
+#define ITEM_WIKI_BERRY 160
+#define ITEM_MAGO_BERRY 161
+#define ITEM_AGUAV_BERRY 162
+#define ITEM_IAPAPA_BERRY 163
+#define ITEM_RAZZ_BERRY 164
+#define ITEM_BLUK_BERRY 165
+#define ITEM_NANAB_BERRY 166
+#define ITEM_WEPEAR_BERRY 167
+#define ITEM_PINAP_BERRY 168
+#define ITEM_POMEG_BERRY 169
+#define ITEM_KELPSY_BERRY 170
+#define ITEM_QUALOT_BERRY 171
+#define ITEM_HONDEW_BERRY 172
+#define ITEM_GREPA_BERRY 173
+#define ITEM_TAMATO_BERRY 174
+#define ITEM_CORNN_BERRY 175
+#define ITEM_MAGOST_BERRY 176
+#define ITEM_RABUTA_BERRY 177
+#define ITEM_NOMEL_BERRY 178
+#define ITEM_SPELON_BERRY 179
+#define ITEM_PAMTRE_BERRY 180
+#define ITEM_WATMEL_BERRY 181
+#define ITEM_DURIN_BERRY 182
+#define ITEM_BELUE_BERRY 183
+#define ITEM_OCCA_BERRY 184
+#define ITEM_PASSHO_BERRY 185
+#define ITEM_WACAN_BERRY 186
+#define ITEM_RINDO_BERRY 187
+#define ITEM_YACHE_BERRY 188
+#define ITEM_CHOPLE_BERRY 189
+#define ITEM_KEBIA_BERRY 190
+#define ITEM_SHUCA_BERRY 191
+#define ITEM_COBA_BERRY 192
+#define ITEM_PAYAPA_BERRY 193
+#define ITEM_TANGA_BERRY 194
+#define ITEM_CHARTI_BERRY 195
+#define ITEM_KASIB_BERRY 196
+#define ITEM_HABAN_BERRY 197
+#define ITEM_COLBUR_BERRY 198
+#define ITEM_BABIRI_BERRY 199
+#define ITEM_CHILAN_BERRY 200
+#define ITEM_LIECHI_BERRY 201
+#define ITEM_GANLON_BERRY 202
+#define ITEM_SALAC_BERRY 203
+#define ITEM_PETAYA_BERRY 204
+#define ITEM_APICOT_BERRY 205
+#define ITEM_LANSAT_BERRY 206
+#define ITEM_STARF_BERRY 207
+#define ITEM_ENIGMA_BERRY 208
+#define ITEM_MICLE_BERRY 209
+#define ITEM_CUSTAP_BERRY 210
+#define ITEM_JABOCA_BERRY 211
+#define ITEM_ROWAP_BERRY 212
+#define ITEM_BRIGHTPOWDER 213
+#define ITEM_WHITE_HERB 214
+#define ITEM_MACHO_BRACE 215
+#define ITEM_EXP__SHARE 216
+#define ITEM_QUICK_CLAW 217
+#define ITEM_SOOTHE_BELL 218
+#define ITEM_MENTAL_HERB 219
+#define ITEM_CHOICE_BAND 220
+#define ITEM_KINGS_ROCK 221
+#define ITEM_SILVERPOWDER 222
+#define ITEM_AMULET_COIN 223
+#define ITEM_CLEANSE_TAG 224
+#define ITEM_SOUL_DEW 225
+#define ITEM_DEEPSEATOOTH 226
+#define ITEM_DEEPSEASCALE 227
+#define ITEM_SMOKE_BALL 228
+#define ITEM_EVERSTONE 229
+#define ITEM_FOCUS_BAND 230
+#define ITEM_LUCKY_EGG 231
+#define ITEM_SCOPE_LENS 232
+#define ITEM_METAL_COAT 233
+#define ITEM_LEFTOVERS 234
+#define ITEM_DRAGON_SCALE 235
+#define ITEM_LIGHT_BALL 236
+#define ITEM_SOFT_SAND 237
+#define ITEM_HARD_STONE 238
+#define ITEM_MIRACLE_SEED 239
+#define ITEM_BLACKGLASSES 240
+#define ITEM_BLACK_BELT 241
+#define ITEM_MAGNET 242
+#define ITEM_MYSTIC_WATER 243
+#define ITEM_SHARP_BEAK 244
+#define ITEM_POISON_BARB 245
+#define ITEM_NEVERMELTICE 246
+#define ITEM_SPELL_TAG 247
+#define ITEM_TWISTEDSPOON 248
+#define ITEM_CHARCOAL 249
+#define ITEM_DRAGON_FANG 250
+#define ITEM_SILK_SCARF 251
+#define ITEM_UPGRADE 252
+#define ITEM_SHELL_BELL 253
+#define ITEM_SEA_INCENSE 254
+#define ITEM_LAX_INCENSE 255
+#define ITEM_LUCKY_PUNCH 256
+#define ITEM_METAL_POWDER 257
+#define ITEM_THICK_CLUB 258
+#define ITEM_STICK 259
+#define ITEM_RED_SCARF 260
+#define ITEM_BLUE_SCARF 261
+#define ITEM_PINK_SCARF 262
+#define ITEM_GREEN_SCARF 263
+#define ITEM_YELLOW_SCARF 264
+#define ITEM_WIDE_LENS 265
+#define ITEM_MUSCLE_BAND 266
+#define ITEM_WISE_GLASSES 267
+#define ITEM_EXPERT_BELT 268
+#define ITEM_LIGHT_CLAY 269
+#define ITEM_LIFE_ORB 270
+#define ITEM_POWER_HERB 271
+#define ITEM_TOXIC_ORB 272
+#define ITEM_FLAME_ORB 273
+#define ITEM_QUICK_POWDER 274
+#define ITEM_FOCUS_SASH 275
+#define ITEM_ZOOM_LENS 276
+#define ITEM_METRONOME 277
+#define ITEM_IRON_BALL 278
+#define ITEM_LAGGING_TAIL 279
+#define ITEM_DESTINY_KNOT 280
+#define ITEM_BLACK_SLUDGE 281
+#define ITEM_ICY_ROCK 282
+#define ITEM_SMOOTH_ROCK 283
+#define ITEM_HEAT_ROCK 284
+#define ITEM_DAMP_ROCK 285
+#define ITEM_GRIP_CLAW 286
+#define ITEM_CHOICE_SCARF 287
+#define ITEM_STICKY_BARB 288
+#define ITEM_POWER_BRACER 289
+#define ITEM_POWER_BELT 290
+#define ITEM_POWER_LENS 291
+#define ITEM_POWER_BAND 292
+#define ITEM_POWER_ANKLET 293
+#define ITEM_POWER_WEIGHT 294
+#define ITEM_SHED_SHELL 295
+#define ITEM_BIG_ROOT 296
+#define ITEM_CHOICE_SPECS 297
+#define ITEM_FLAME_PLATE 298
+#define ITEM_SPLASH_PLATE 299
+#define ITEM_ZAP_PLATE 300
+#define ITEM_MEADOW_PLATE 301
+#define ITEM_ICICLE_PLATE 302
+#define ITEM_FIST_PLATE 303
+#define ITEM_TOXIC_PLATE 304
+#define ITEM_EARTH_PLATE 305
+#define ITEM_SKY_PLATE 306
+#define ITEM_MIND_PLATE 307
+#define ITEM_INSECT_PLATE 308
+#define ITEM_STONE_PLATE 309
+#define ITEM_SPOOKY_PLATE 310
+#define ITEM_DRACO_PLATE 311
+#define ITEM_DREAD_PLATE 312
+#define ITEM_IRON_PLATE 313
+#define ITEM_ODD_INCENSE 314
+#define ITEM_ROCK_INCENSE 315
+#define ITEM_FULL_INCENSE 316
+#define ITEM_WAVE_INCENSE 317
+#define ITEM_ROSE_INCENSE 318
+#define ITEM_LUCK_INCENSE 319
+#define ITEM_PURE_INCENSE 320
+#define ITEM_PROTECTOR 321
+#define ITEM_ELECTIRIZER 322
+#define ITEM_MAGMARIZER 323
+#define ITEM_DUBIOUS_DISC 324
+#define ITEM_REAPER_CLOTH 325
+#define ITEM_RAZOR_CLAW 326
+#define ITEM_RAZOR_FANG 327
+#define ITEM_TM01 328
+#define ITEM_TM02 329
+#define ITEM_TM03 330
+#define ITEM_TM04 331
+#define ITEM_TM05 332
+#define ITEM_TM06 333
+#define ITEM_TM07 334
+#define ITEM_TM08 335
+#define ITEM_TM09 336
+#define ITEM_TM10 337
+#define ITEM_TM11 338
+#define ITEM_TM12 339
+#define ITEM_TM13 340
+#define ITEM_TM14 341
+#define ITEM_TM15 342
+#define ITEM_TM16 343
+#define ITEM_TM17 344
+#define ITEM_TM18 345
+#define ITEM_TM19 346
+#define ITEM_TM20 347
+#define ITEM_TM21 348
+#define ITEM_TM22 349
+#define ITEM_TM23 350
+#define ITEM_TM24 351
+#define ITEM_TM25 352
+#define ITEM_TM26 353
+#define ITEM_TM27 354
+#define ITEM_TM28 355
+#define ITEM_TM29 356
+#define ITEM_TM30 357
+#define ITEM_TM31 358
+#define ITEM_TM32 359
+#define ITEM_TM33 360
+#define ITEM_TM34 361
+#define ITEM_TM35 362
+#define ITEM_TM36 363
+#define ITEM_TM37 364
+#define ITEM_TM38 365
+#define ITEM_TM39 366
+#define ITEM_TM40 367
+#define ITEM_TM41 368
+#define ITEM_TM42 369
+#define ITEM_TM43 370
+#define ITEM_TM44 371
+#define ITEM_TM45 372
+#define ITEM_TM46 373
+#define ITEM_TM47 374
+#define ITEM_TM48 375
+#define ITEM_TM49 376
+#define ITEM_TM50 377
+#define ITEM_TM51 378
+#define ITEM_TM52 379
+#define ITEM_TM53 380
+#define ITEM_TM54 381
+#define ITEM_TM55 382
+#define ITEM_TM56 383
+#define ITEM_TM57 384
+#define ITEM_TM58 385
+#define ITEM_TM59 386
+#define ITEM_TM60 387
+#define ITEM_TM61 388
+#define ITEM_TM62 389
+#define ITEM_TM63 390
+#define ITEM_TM64 391
+#define ITEM_TM65 392
+#define ITEM_TM66 393
+#define ITEM_TM67 394
+#define ITEM_TM68 395
+#define ITEM_TM69 396
+#define ITEM_TM70 397
+#define ITEM_TM71 398
+#define ITEM_TM72 399
+#define ITEM_TM73 400
+#define ITEM_TM74 401
+#define ITEM_TM75 402
+#define ITEM_TM76 403
+#define ITEM_TM77 404
+#define ITEM_TM78 405
+#define ITEM_TM79 406
+#define ITEM_TM80 407
+#define ITEM_TM81 408
+#define ITEM_TM82 409
+#define ITEM_TM83 410
+#define ITEM_TM84 411
+#define ITEM_TM85 412
+#define ITEM_TM86 413
+#define ITEM_TM87 414
+#define ITEM_TM88 415
+#define ITEM_TM89 416
+#define ITEM_TM90 417
+#define ITEM_TM91 418
+#define ITEM_TM92 419
+#define ITEM_HM01 420
+#define ITEM_HM02 421
+#define ITEM_HM03 422
+#define ITEM_HM04 423
+#define ITEM_HM05 424
+#define ITEM_HM06 425
+#define ITEM_HM07 426
+#define ITEM_HM08 427
+#define ITEM_EXPLORER_KIT 428
+#define ITEM_LOOT_SACK 429
+#define ITEM_RULE_BOOK 430
+#define ITEM_POKE_RADAR 431
+#define ITEM_POINT_CARD 432
+#define ITEM_JOURNAL 433
+#define ITEM_SEAL_CASE 434
+#define ITEM_FASHION_CASE 435
+#define ITEM_SEAL_BAG 436
+#define ITEM_PAL_PAD 437
+#define ITEM_WORKS_KEY 438
+#define ITEM_OLD_CHARM 439
+#define ITEM_GALACTIC_KEY 440
+#define ITEM_RED_CHAIN 441
+#define ITEM_TOWN_MAP 442
+#define ITEM_VS__SEEKER 443
+#define ITEM_COIN_CASE 444
+#define ITEM_OLD_ROD 445
+#define ITEM_GOOD_ROD 446
+#define ITEM_SUPER_ROD 447
+#define ITEM_SPRAYDUCK 448
+#define ITEM_POFFIN_CASE 449
+#define ITEM_BICYCLE 450
+#define ITEM_SUITE_KEY 451
+#define ITEM_OAKS_LETTER 452
+#define ITEM_LUNAR_WING 453
+#define ITEM_MEMBER_CARD 454
+#define ITEM_AZURE_FLUTE 455
+#define ITEM_S_S__TICKET 456
+#define ITEM_CONTEST_PASS 457
+#define ITEM_MAGMA_STONE 458
+#define ITEM_PARCEL 459
+#define ITEM_COUPON_1 460
+#define ITEM_COUPON_2 461
+#define ITEM_COUPON_3 462
+#define ITEM_STORAGE_KEY 463
+#define ITEM_SECRETPOTION 464
+
+#define TM_FOCUS_PUNCH ITEM_TM01
+#define TM_DRAGON_CLAW ITEM_TM02
+#define TM_WATER_PULSE ITEM_TM03
+#define TM_CALM_MIND ITEM_TM04
+#define TM_ROAR ITEM_TM05
+#define TM_TOXIC ITEM_TM06
+#define TM_HAIL ITEM_TM07
+#define TM_BULK_UP ITEM_TM08
+#define TM_BULLET_SEED ITEM_TM09
+#define TM_HIDDEN_POWER ITEM_TM10
+#define TM_SUNNY_DAY ITEM_TM11
+#define TM_TAUNT ITEM_TM12
+#define TM_ICE_BEAM ITEM_TM13
+#define TM_BLIZZARD ITEM_TM14
+#define TM_HYPER_BEAM ITEM_TM15
+#define TM_LIGHT_SCREEN ITEM_TM16
+#define TM_PROTECT ITEM_TM17
+#define TM_RAIN_DANCE ITEM_TM18
+#define TM_GIGA_DRAIN ITEM_TM19
+#define TM_SAFEGUARD ITEM_TM20
+#define TM_FRUSTRATION ITEM_TM21
+#define TM_SOLARBEAM ITEM_TM22
+#define TM_IRON_TAIL ITEM_TM23
+#define TM_THUNDERBOLT ITEM_TM24
+#define TM_THUNDER ITEM_TM25
+#define TM_EARTHQUAKE ITEM_TM26
+#define TM_RETURN ITEM_TM27
+#define TM_DIG ITEM_TM28
+#define TM_PSYCHIC ITEM_TM29
+#define TM_SHADOW_BALL ITEM_TM30
+#define TM_BRICK_BREAK ITEM_TM31
+#define TM_DOUBLE_TEAM ITEM_TM32
+#define TM_REFLECT ITEM_TM33
+#define TM_SHOCK_WAVE ITEM_TM34
+#define TM_FLAMETHROWER ITEM_TM35
+#define TM_SLUDGE_BOMB ITEM_TM36
+#define TM_SANDSTORM ITEM_TM37
+#define TM_FIRE_BLAST ITEM_TM38
+#define TM_ROCK_TOMB ITEM_TM39
+#define TM_AERIAL_ACE ITEM_TM40
+#define TM_TORMENT ITEM_TM41
+#define TM_FACADE ITEM_TM42
+#define TM_SECRET_POWER ITEM_TM43
+#define TM_REST ITEM_TM44
+#define TM_ATTRACT ITEM_TM45
+#define TM_THIEF ITEM_TM46
+#define TM_STEEL_WING ITEM_TM47
+#define TM_SKILL_SWAP ITEM_TM48
+#define TM_SNATCH ITEM_TM49
+#define TM_OVERHEAT ITEM_TM50
+#define TM_ROOST ITEM_TM51
+#define TM_FOCUS_BLAST ITEM_TM52
+#define TM_ENERGY_BALL ITEM_TM53
+#define TM_FALSE_SWIPE ITEM_TM54
+#define TM_BRINE ITEM_TM55
+#define TM_FLING ITEM_TM56
+#define TM_CHARGE_BEAM ITEM_TM57
+#define TM_ENDURE ITEM_TM58
+#define TM_DRAGON_PULSE ITEM_TM59
+#define TM_DRAIN_PUNCH ITEM_TM60
+#define TM_WILL_O_WISP ITEM_TM61
+#define TM_SILVER_WIND ITEM_TM62
+#define TM_EMBARGO ITEM_TM63
+#define TM_EXPLOSION ITEM_TM64
+#define TM_SHADOW_CLAW ITEM_TM65
+#define TM_PAYBACK ITEM_TM66
+#define TM_RECYCLE ITEM_TM67
+#define TM_GIGA_IMPACT ITEM_TM68
+#define TM_ROCK_POLISH ITEM_TM69
+#define TM_FLASH ITEM_TM70
+#define TM_STONE_EDGE ITEM_TM71
+#define TM_AVALANCHE ITEM_TM72
+#define TM_THUNDER_WAVE ITEM_TM73
+#define TM_GYRO_BALL ITEM_TM74
+#define TM_SWORDS_DANCE ITEM_TM75
+#define TM_STEALTH_ROCK ITEM_TM76
+#define TM_PSYCH_UP ITEM_TM77
+#define TM_CAPTIVATE ITEM_TM78
+#define TM_DARK_PULSE ITEM_TM79
+#define TM_ROCK_SLIDE ITEM_TM80
+#define TM_X_SCISSOR ITEM_TM81
+#define TM_SLEEP_TALK ITEM_TM82
+#define TM_NATURAL_GIFT ITEM_TM83
+#define TM_POISON_JAB ITEM_TM84
+#define TM_DREAM_EATER ITEM_TM85
+#define TM_GRASS_KNOT ITEM_TM86
+#define TM_SWAGGER ITEM_TM87
+#define TM_PLUCK ITEM_TM88
+#define TM_U_TURN ITEM_TM89
+#define TM_SUBSTITUTE ITEM_TM90
+#define TM_FLASH_CANNON ITEM_TM91
+#define TM_TRICK_ROOM ITEM_TM92
+#define HM_CUT ITEM_HM01
+#define HM_FLY ITEM_HM02
+#define HM_SURF ITEM_HM03
+#define HM_STRENGTH ITEM_HM04
+#define HM_DEFOG ITEM_HM05
+#define HM_WHIRLPOOL ITEM_HM05
+#define HM_ROCK_SMASH ITEM_HM06
+#define HM_WATERFALL ITEM_HM07
+#define HM_ROCK_CLIMB ITEM_HM08
+
+#define NUM_TMS 92
+#define NUM_HMS 8
+
+#endif //POKEDIAMOND_CONSTANTS_ITEMS_H
diff --git a/include/constants/moves.h b/include/constants/moves.h
new file mode 100644
index 00000000..bd658c17
--- /dev/null
+++ b/include/constants/moves.h
@@ -0,0 +1,475 @@
+#ifndef POKEDIAMOND_CONSTANTS_MOVES_H
+#define POKEDIAMOND_CONSTANTS_MOVES_H
+
+#define MOVE_NONE 0
+#define MOVE_POUND 1
+#define MOVE_KARATE_CHOP 2
+#define MOVE_DOUBLE_SLAP 3
+#define MOVE_COMET_PUNCH 4
+#define MOVE_MEGA_PUNCH 5
+#define MOVE_PAY_DAY 6
+#define MOVE_FIRE_PUNCH 7
+#define MOVE_ICE_PUNCH 8
+#define MOVE_THUNDER_PUNCH 9
+#define MOVE_SCRATCH 10
+#define MOVE_VISE_GRIP 11
+#define MOVE_GUILLOTINE 12
+#define MOVE_RAZOR_WIND 13
+#define MOVE_SWORDS_DANCE 14
+#define MOVE_CUT 15
+#define MOVE_GUST 16
+#define MOVE_WING_ATTACK 17
+#define MOVE_WHIRLWIND 18
+#define MOVE_FLY 19
+#define MOVE_BIND 20
+#define MOVE_SLAM 21
+#define MOVE_VINE_WHIP 22
+#define MOVE_STOMP 23
+#define MOVE_DOUBLE_KICK 24
+#define MOVE_MEGA_KICK 25
+#define MOVE_JUMP_KICK 26
+#define MOVE_ROLLING_KICK 27
+#define MOVE_SAND_ATTACK 28
+#define MOVE_HEADBUTT 29
+#define MOVE_HORN_ATTACK 30
+#define MOVE_FURY_ATTACK 31
+#define MOVE_HORN_DRILL 32
+#define MOVE_TACKLE 33
+#define MOVE_BODY_SLAM 34
+#define MOVE_WRAP 35
+#define MOVE_TAKE_DOWN 36
+#define MOVE_THRASH 37
+#define MOVE_DOUBLE_EDGE 38
+#define MOVE_TAIL_WHIP 39
+#define MOVE_POISON_STING 40
+#define MOVE_TWINEEDLE 41
+#define MOVE_PIN_MISSILE 42
+#define MOVE_LEER 43
+#define MOVE_BITE 44
+#define MOVE_GROWL 45
+#define MOVE_ROAR 46
+#define MOVE_SING 47
+#define MOVE_SUPERSONIC 48
+#define MOVE_SONIC_BOOM 49
+#define MOVE_DISABLE 50
+#define MOVE_ACID 51
+#define MOVE_EMBER 52
+#define MOVE_FLAMETHROWER 53
+#define MOVE_MIST 54
+#define MOVE_WATER_GUN 55
+#define MOVE_HYDRO_PUMP 56
+#define MOVE_SURF 57
+#define MOVE_ICE_BEAM 58
+#define MOVE_BLIZZARD 59
+#define MOVE_PSYBEAM 60
+#define MOVE_BUBBLE_BEAM 61
+#define MOVE_AURORA_BEAM 62
+#define MOVE_HYPER_BEAM 63
+#define MOVE_PECK 64
+#define MOVE_DRILL_PECK 65
+#define MOVE_SUBMISSION 66
+#define MOVE_LOW_KICK 67
+#define MOVE_COUNTER 68
+#define MOVE_SEISMIC_TOSS 69
+#define MOVE_STRENGTH 70
+#define MOVE_ABSORB 71
+#define MOVE_MEGA_DRAIN 72
+#define MOVE_LEECH_SEED 73
+#define MOVE_GROWTH 74
+#define MOVE_RAZOR_LEAF 75
+#define MOVE_SOLAR_BEAM 76
+#define MOVE_POISON_POWDER 77
+#define MOVE_STUN_SPORE 78
+#define MOVE_SLEEP_POWDER 79
+#define MOVE_PETAL_DANCE 80
+#define MOVE_STRING_SHOT 81
+#define MOVE_DRAGON_RAGE 82
+#define MOVE_FIRE_SPIN 83
+#define MOVE_THUNDER_SHOCK 84
+#define MOVE_THUNDERBOLT 85
+#define MOVE_THUNDER_WAVE 86
+#define MOVE_THUNDER 87
+#define MOVE_ROCK_THROW 88
+#define MOVE_EARTHQUAKE 89
+#define MOVE_FISSURE 90
+#define MOVE_DIG 91
+#define MOVE_TOXIC 92
+#define MOVE_CONFUSION 93
+#define MOVE_PSYCHIC 94
+#define MOVE_HYPNOSIS 95
+#define MOVE_MEDITATE 96
+#define MOVE_AGILITY 97
+#define MOVE_QUICK_ATTACK 98
+#define MOVE_RAGE 99
+#define MOVE_TELEPORT 100
+#define MOVE_NIGHT_SHADE 101
+#define MOVE_MIMIC 102
+#define MOVE_SCREECH 103
+#define MOVE_DOUBLE_TEAM 104
+#define MOVE_RECOVER 105
+#define MOVE_HARDEN 106
+#define MOVE_MINIMIZE 107
+#define MOVE_SMOKESCREEN 108
+#define MOVE_CONFUSE_RAY 109
+#define MOVE_WITHDRAW 110
+#define MOVE_DEFENSE_CURL 111
+#define MOVE_BARRIER 112
+#define MOVE_LIGHT_SCREEN 113
+#define MOVE_HAZE 114
+#define MOVE_REFLECT 115
+#define MOVE_FOCUS_ENERGY 116
+#define MOVE_BIDE 117
+#define MOVE_METRONOME 118
+#define MOVE_MIRROR_MOVE 119
+#define MOVE_SELF_DESTRUCT 120
+#define MOVE_EGG_BOMB 121
+#define MOVE_LICK 122
+#define MOVE_SMOG 123
+#define MOVE_SLUDGE 124
+#define MOVE_BONE_CLUB 125
+#define MOVE_FIRE_BLAST 126
+#define MOVE_WATERFALL 127
+#define MOVE_CLAMP 128
+#define MOVE_SWIFT 129
+#define MOVE_SKULL_BASH 130
+#define MOVE_SPIKE_CANNON 131
+#define MOVE_CONSTRICT 132
+#define MOVE_AMNESIA 133
+#define MOVE_KINESIS 134
+#define MOVE_SOFT_BOILED 135
+#define MOVE_HIGH_JUMP_KICK 136
+#define MOVE_GLARE 137
+#define MOVE_DREAM_EATER 138
+#define MOVE_POISON_GAS 139
+#define MOVE_BARRAGE 140
+#define MOVE_LEECH_LIFE 141
+#define MOVE_LOVELY_KISS 142
+#define MOVE_SKY_ATTACK 143
+#define MOVE_TRANSFORM 144
+#define MOVE_BUBBLE 145
+#define MOVE_DIZZY_PUNCH 146
+#define MOVE_SPORE 147
+#define MOVE_FLASH 148
+#define MOVE_PSYWAVE 149
+#define MOVE_SPLASH 150
+#define MOVE_ACID_ARMOR 151
+#define MOVE_CRABHAMMER 152
+#define MOVE_EXPLOSION 153
+#define MOVE_FURY_SWIPES 154
+#define MOVE_BONEMERANG 155
+#define MOVE_REST 156
+#define MOVE_ROCK_SLIDE 157
+#define MOVE_HYPER_FANG 158
+#define MOVE_SHARPEN 159
+#define MOVE_CONVERSION 160
+#define MOVE_TRI_ATTACK 161
+#define MOVE_SUPER_FANG 162
+#define MOVE_SLASH 163
+#define MOVE_SUBSTITUTE 164
+#define MOVE_STRUGGLE 165
+#define MOVE_SKETCH 166
+#define MOVE_TRIPLE_KICK 167
+#define MOVE_THIEF 168
+#define MOVE_SPIDER_WEB 169
+#define MOVE_MIND_READER 170
+#define MOVE_NIGHTMARE 171
+#define MOVE_FLAME_WHEEL 172
+#define MOVE_SNORE 173
+#define MOVE_CURSE 174
+#define MOVE_FLAIL 175
+#define MOVE_CONVERSION_2 176
+#define MOVE_AEROBLAST 177
+#define MOVE_COTTON_SPORE 178
+#define MOVE_REVERSAL 179
+#define MOVE_SPITE 180
+#define MOVE_POWDER_SNOW 181
+#define MOVE_PROTECT 182
+#define MOVE_MACH_PUNCH 183
+#define MOVE_SCARY_FACE 184
+#define MOVE_FEINT_ATTACK 185
+#define MOVE_SWEET_KISS 186
+#define MOVE_BELLY_DRUM 187
+#define MOVE_SLUDGE_BOMB 188
+#define MOVE_MUD_SLAP 189
+#define MOVE_OCTAZOOKA 190
+#define MOVE_SPIKES 191
+#define MOVE_ZAP_CANNON 192
+#define MOVE_FORESIGHT 193
+#define MOVE_DESTINY_BOND 194
+#define MOVE_PERISH_SONG 195
+#define MOVE_ICY_WIND 196
+#define MOVE_DETECT 197
+#define MOVE_BONE_RUSH 198
+#define MOVE_LOCK_ON 199
+#define MOVE_OUTRAGE 200
+#define MOVE_SANDSTORM 201
+#define MOVE_GIGA_DRAIN 202
+#define MOVE_ENDURE 203
+#define MOVE_CHARM 204
+#define MOVE_ROLLOUT 205
+#define MOVE_FALSE_SWIPE 206
+#define MOVE_SWAGGER 207
+#define MOVE_MILK_DRINK 208
+#define MOVE_SPARK 209
+#define MOVE_FURY_CUTTER 210
+#define MOVE_STEEL_WING 211
+#define MOVE_MEAN_LOOK 212
+#define MOVE_ATTRACT 213
+#define MOVE_SLEEP_TALK 214
+#define MOVE_HEAL_BELL 215
+#define MOVE_RETURN 216
+#define MOVE_PRESENT 217
+#define MOVE_FRUSTRATION 218
+#define MOVE_SAFEGUARD 219
+#define MOVE_PAIN_SPLIT 220
+#define MOVE_SACRED_FIRE 221
+#define MOVE_MAGNITUDE 222
+#define MOVE_DYNAMIC_PUNCH 223
+#define MOVE_MEGAHORN 224
+#define MOVE_DRAGON_BREATH 225
+#define MOVE_BATON_PASS 226
+#define MOVE_ENCORE 227
+#define MOVE_PURSUIT 228
+#define MOVE_RAPID_SPIN 229
+#define MOVE_SWEET_SCENT 230
+#define MOVE_IRON_TAIL 231
+#define MOVE_METAL_CLAW 232
+#define MOVE_VITAL_THROW 233
+#define MOVE_MORNING_SUN 234
+#define MOVE_SYNTHESIS 235
+#define MOVE_MOONLIGHT 236
+#define MOVE_HIDDEN_POWER 237
+#define MOVE_CROSS_CHOP 238
+#define MOVE_TWISTER 239
+#define MOVE_RAIN_DANCE 240
+#define MOVE_SUNNY_DAY 241
+#define MOVE_CRUNCH 242
+#define MOVE_MIRROR_COAT 243
+#define MOVE_PSYCH_UP 244
+#define MOVE_EXTREME_SPEED 245
+#define MOVE_ANCIENT_POWER 246
+#define MOVE_SHADOW_BALL 247
+#define MOVE_FUTURE_SIGHT 248
+#define MOVE_ROCK_SMASH 249
+#define MOVE_WHIRLPOOL 250
+#define MOVE_BEAT_UP 251
+#define MOVE_FAKE_OUT 252
+#define MOVE_UPROAR 253
+#define MOVE_STOCKPILE 254
+#define MOVE_SPIT_UP 255
+#define MOVE_SWALLOW 256
+#define MOVE_HEAT_WAVE 257
+#define MOVE_HAIL 258
+#define MOVE_TORMENT 259
+#define MOVE_FLATTER 260
+#define MOVE_WILL_O_WISP 261
+#define MOVE_MEMENTO 262
+#define MOVE_FACADE 263
+#define MOVE_FOCUS_PUNCH 264
+#define MOVE_SMELLING_SALTS 265
+#define MOVE_FOLLOW_ME 266
+#define MOVE_NATURE_POWER 267
+#define MOVE_CHARGE 268
+#define MOVE_TAUNT 269
+#define MOVE_HELPING_HAND 270
+#define MOVE_TRICK 271
+#define MOVE_ROLE_PLAY 272
+#define MOVE_WISH 273
+#define MOVE_ASSIST 274
+#define MOVE_INGRAIN 275
+#define MOVE_SUPERPOWER 276
+#define MOVE_MAGIC_COAT 277
+#define MOVE_RECYCLE 278
+#define MOVE_REVENGE 279
+#define MOVE_BRICK_BREAK 280
+#define MOVE_YAWN 281
+#define MOVE_KNOCK_OFF 282
+#define MOVE_ENDEAVOR 283
+#define MOVE_ERUPTION 284
+#define MOVE_SKILL_SWAP 285
+#define MOVE_IMPRISON 286
+#define MOVE_REFRESH 287
+#define MOVE_GRUDGE 288
+#define MOVE_SNATCH 289
+#define MOVE_SECRET_POWER 290
+#define MOVE_DIVE 291
+#define MOVE_ARM_THRUST 292
+#define MOVE_CAMOUFLAGE 293
+#define MOVE_TAIL_GLOW 294
+#define MOVE_LUSTER_PURGE 295
+#define MOVE_MIST_BALL 296
+#define MOVE_FEATHER_DANCE 297
+#define MOVE_TEETER_DANCE 298
+#define MOVE_BLAZE_KICK 299
+#define MOVE_MUD_SPORT 300
+#define MOVE_ICE_BALL 301
+#define MOVE_NEEDLE_ARM 302
+#define MOVE_SLACK_OFF 303
+#define MOVE_HYPER_VOICE 304
+#define MOVE_POISON_FANG 305
+#define MOVE_CRUSH_CLAW 306
+#define MOVE_BLAST_BURN 307
+#define MOVE_HYDRO_CANNON 308
+#define MOVE_METEOR_MASH 309
+#define MOVE_ASTONISH 310
+#define MOVE_WEATHER_BALL 311
+#define MOVE_AROMATHERAPY 312
+#define MOVE_FAKE_TEARS 313
+#define MOVE_AIR_CUTTER 314
+#define MOVE_OVERHEAT 315
+#define MOVE_ODOR_SLEUTH 316
+#define MOVE_ROCK_TOMB 317
+#define MOVE_SILVER_WIND 318
+#define MOVE_METAL_SOUND 319
+#define MOVE_GRASS_WHISTLE 320
+#define MOVE_TICKLE 321
+#define MOVE_COSMIC_POWER 322
+#define MOVE_WATER_SPOUT 323
+#define MOVE_SIGNAL_BEAM 324
+#define MOVE_SHADOW_PUNCH 325
+#define MOVE_EXTRASENSORY 326
+#define MOVE_SKY_UPPERCUT 327
+#define MOVE_SAND_TOMB 328
+#define MOVE_SHEER_COLD 329
+#define MOVE_MUDDY_WATER 330
+#define MOVE_BULLET_SEED 331
+#define MOVE_AERIAL_ACE 332
+#define MOVE_ICICLE_SPEAR 333
+#define MOVE_IRON_DEFENSE 334
+#define MOVE_BLOCK 335
+#define MOVE_HOWL 336
+#define MOVE_DRAGON_CLAW 337
+#define MOVE_FRENZY_PLANT 338
+#define MOVE_BULK_UP 339
+#define MOVE_BOUNCE 340
+#define MOVE_MUD_SHOT 341
+#define MOVE_POISON_TAIL 342
+#define MOVE_COVET 343
+#define MOVE_VOLT_TACKLE 344
+#define MOVE_MAGICAL_LEAF 345
+#define MOVE_WATER_SPORT 346
+#define MOVE_CALM_MIND 347
+#define MOVE_LEAF_BLADE 348
+#define MOVE_DRAGON_DANCE 349
+#define MOVE_ROCK_BLAST 350
+#define MOVE_SHOCK_WAVE 351
+#define MOVE_WATER_PULSE 352
+#define MOVE_DOOM_DESIRE 353
+#define MOVE_PSYCHO_BOOST 354
+#define MOVE_ROOST 355
+#define MOVE_GRAVITY 356
+#define MOVE_MIRACLE_EYE 357
+#define MOVE_WAKE_UP_SLAP 358
+#define MOVE_HAMMER_ARM 359
+#define MOVE_GYRO_BALL 360
+#define MOVE_HEALING_WISH 361
+#define MOVE_BRINE 362
+#define MOVE_NATURAL_GIFT 363
+#define MOVE_FEINT 364
+#define MOVE_PLUCK 365
+#define MOVE_TAILWIND 366
+#define MOVE_ACUPRESSURE 367
+#define MOVE_METAL_BURST 368
+#define MOVE_U_TURN 369
+#define MOVE_CLOSE_COMBAT 370
+#define MOVE_PAYBACK 371
+#define MOVE_ASSURANCE 372
+#define MOVE_EMBARGO 373
+#define MOVE_FLING 374
+#define MOVE_PSYCHO_SHIFT 375
+#define MOVE_TRUMP_CARD 376
+#define MOVE_HEAL_BLOCK 377
+#define MOVE_WRING_OUT 378
+#define MOVE_POWER_TRICK 379
+#define MOVE_GASTRO_ACID 380
+#define MOVE_LUCKY_CHANT 381
+#define MOVE_ME_FIRST 382
+#define MOVE_COPYCAT 383
+#define MOVE_POWER_SWAP 384
+#define MOVE_GUARD_SWAP 385
+#define MOVE_PUNISHMENT 386
+#define MOVE_LAST_RESORT 387
+#define MOVE_WORRY_SEED 388
+#define MOVE_SUCKER_PUNCH 389
+#define MOVE_TOXIC_SPIKES 390
+#define MOVE_HEART_SWAP 391
+#define MOVE_AQUA_RING 392
+#define MOVE_MAGNET_RISE 393
+#define MOVE_FLARE_BLITZ 394
+#define MOVE_FORCE_PALM 395
+#define MOVE_AURA_SPHERE 396
+#define MOVE_ROCK_POLISH 397
+#define MOVE_POISON_JAB 398
+#define MOVE_DARK_PULSE 399
+#define MOVE_NIGHT_SLASH 400
+#define MOVE_AQUA_TAIL 401
+#define MOVE_SEED_BOMB 402
+#define MOVE_AIR_SLASH 403
+#define MOVE_X_SCISSOR 404
+#define MOVE_BUG_BUZZ 405
+#define MOVE_DRAGON_PULSE 406
+#define MOVE_DRAGON_RUSH 407
+#define MOVE_POWER_GEM 408
+#define MOVE_DRAIN_PUNCH 409
+#define MOVE_VACUUM_WAVE 410
+#define MOVE_FOCUS_BLAST 411
+#define MOVE_ENERGY_BALL 412
+#define MOVE_BRAVE_BIRD 413
+#define MOVE_EARTH_POWER 414
+#define MOVE_SWITCHEROO 415
+#define MOVE_GIGA_IMPACT 416
+#define MOVE_NASTY_PLOT 417
+#define MOVE_BULLET_PUNCH 418
+#define MOVE_AVALANCHE 419
+#define MOVE_ICE_SHARD 420
+#define MOVE_SHADOW_CLAW 421
+#define MOVE_THUNDER_FANG 422
+#define MOVE_ICE_FANG 423
+#define MOVE_FIRE_FANG 424
+#define MOVE_SHADOW_SNEAK 425
+#define MOVE_MUD_BOMB 426
+#define MOVE_PSYCHO_CUT 427
+#define MOVE_ZEN_HEADBUTT 428
+#define MOVE_MIRROR_SHOT 429
+#define MOVE_FLASH_CANNON 430
+#define MOVE_ROCK_CLIMB 431
+#define MOVE_DEFOG 432
+#define MOVE_TRICK_ROOM 433
+#define MOVE_DRACO_METEOR 434
+#define MOVE_DISCHARGE 435
+#define MOVE_LAVA_PLUME 436
+#define MOVE_LEAF_STORM 437
+#define MOVE_POWER_WHIP 438
+#define MOVE_ROCK_WRECKER 439
+#define MOVE_CROSS_POISON 440
+#define MOVE_GUNK_SHOT 441
+#define MOVE_IRON_HEAD 442
+#define MOVE_MAGNET_BOMB 443
+#define MOVE_STONE_EDGE 444
+#define MOVE_CAPTIVATE 445
+#define MOVE_STEALTH_ROCK 446
+#define MOVE_GRASS_KNOT 447
+#define MOVE_CHATTER 448
+#define MOVE_JUDGMENT 449
+#define MOVE_BUG_BITE 450
+#define MOVE_CHARGE_BEAM 451
+#define MOVE_WOOD_HAMMER 452
+#define MOVE_AQUA_JET 453
+#define MOVE_ATTACK_ORDER 454
+#define MOVE_DEFEND_ORDER 455
+#define MOVE_HEAL_ORDER 456
+#define MOVE_HEAD_SMASH 457
+#define MOVE_DOUBLE_HIT 458
+#define MOVE_ROAR_OF_TIME 459
+#define MOVE_SPACIAL_REND 460
+#define MOVE_LUNAR_DANCE 461
+#define MOVE_CRUSH_GRIP 462
+#define MOVE_MAGMA_STORM 463
+#define MOVE_DARK_VOID 464
+#define MOVE_SEED_FLARE 465
+#define MOVE_OMINOUS_WIND 466
+#define MOVE_SHADOW_FORCE 467
+
+#define NUM_MOVES MOVE_SHADOW_FORCE
+
+#endif //POKEDIAMOND_CONSTANTS_MOVES_H
diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h
new file mode 100644
index 00000000..1af59830
--- /dev/null
+++ b/include/constants/pokemon.h
@@ -0,0 +1,454 @@
+#ifndef POKEDIAMOND_CONSTANTS_POKEMON_H
+#define POKEDIAMOND_CONSTANTS_POKEMON_H
+
+
+// Pokemon types
+#define TYPE_NONE 255
+#define TYPE_NORMAL 0
+#define TYPE_FIGHTING 1
+#define TYPE_FLYING 2
+#define TYPE_POISON 3
+#define TYPE_GROUND 4
+#define TYPE_ROCK 5
+#define TYPE_BUG 6
+#define TYPE_GHOST 7
+#define TYPE_STEEL 8
+#define TYPE_MYSTERY 9
+#define TYPE_FIRE 10
+#define TYPE_WATER 11
+#define TYPE_GRASS 12
+#define TYPE_ELECTRIC 13
+#define TYPE_PSYCHIC 14
+#define TYPE_ICE 15
+#define TYPE_DRAGON 16
+#define TYPE_DARK 17
+#define NUMBER_OF_MON_TYPES 18
+
+// Pokemon egg groups
+#define EGG_GROUP_NONE 0
+#define EGG_GROUP_MONSTER 1
+#define EGG_GROUP_WATER_1 2
+#define EGG_GROUP_BUG 3
+#define EGG_GROUP_FLYING 4
+#define EGG_GROUP_FIELD 5
+#define EGG_GROUP_FAIRY 6
+#define EGG_GROUP_GRASS 7
+#define EGG_GROUP_HUMAN_LIKE 8
+#define EGG_GROUP_WATER_3 9
+#define EGG_GROUP_MINERAL 10
+#define EGG_GROUP_AMORPHOUS 11
+#define EGG_GROUP_WATER_2 12
+#define EGG_GROUP_DITTO 13
+#define EGG_GROUP_DRAGON 14
+#define EGG_GROUP_UNDISCOVERED 15
+
+#define EGG_GROUPS_PER_MON 2
+
+// Pokemon natures
+#define NATURE_HARDY 0
+#define NATURE_LONELY 1
+#define NATURE_BRAVE 2
+#define NATURE_ADAMANT 3
+#define NATURE_NAUGHTY 4
+#define NATURE_BOLD 5
+#define NATURE_DOCILE 6
+#define NATURE_RELAXED 7
+#define NATURE_IMPISH 8
+#define NATURE_LAX 9
+#define NATURE_TIMID 10
+#define NATURE_HASTY 11
+#define NATURE_SERIOUS 12
+#define NATURE_JOLLY 13
+#define NATURE_NAIVE 14
+#define NATURE_MODEST 15
+#define NATURE_MILD 16
+#define NATURE_QUIET 17
+#define NATURE_BASHFUL 18
+#define NATURE_RASH 19
+#define NATURE_CALM 20
+#define NATURE_GENTLE 21
+#define NATURE_SASSY 22
+#define NATURE_CAREFUL 23
+#define NATURE_QUIRKY 24
+
+// Pokemon Stats
+#define STAT_HP 0
+#define STAT_ATK 1
+#define STAT_DEF 2
+#define STAT_SPEED 3
+#define STAT_SPATK 4
+#define STAT_SPDEF 5
+#define STAT_ACC 6 // Only in battles.
+#define STAT_EVASION 7 // Only in battles.
+
+#define NUM_EV_STATS NUM_STATS - 1 // excludes HP
+#define NUM_BATTLE_STATS NUM_STATS + 2 // includes Accuracy and Evasion
+
+// Shiny odds
+#define SHINY_ODDS 8 // Actual probability is SHINY_ODDS/65536
+
+
+#define MON_DATA_PERSONALITY 0
+#define MON_DATA_PARTY_LOCK 1
+#define MON_DATA_BOX_LOCK 2
+#define MON_DATA_CHECKSUM_FAILED 3
+#define MON_DATA_CHECKSUM 4
+#define MON_DATA_SPECIES 5
+#define MON_DATA_HELD_ITEM 6
+#define MON_DATA_OTID 7
+#define MON_DATA_EXPERIENCE 8
+#define MON_DATA_FRIENDSHIP 9
+#define MON_DATA_ABILITY 10
+#define MON_DATA_MARKINGS 11
+#define MON_DATA_GAME_LANGUAGE 12
+#define MON_DATA_HP_EV 13
+#define MON_DATA_ATK_EV 14
+#define MON_DATA_DEF_EV 15
+#define MON_DATA_SPEED_EV 16
+#define MON_DATA_SPATK_EV 17
+#define MON_DATA_SPDEF_EV 18
+#define MON_DATA_COOL 19
+#define MON_DATA_BEAUTY 20
+#define MON_DATA_CUTE 21
+#define MON_DATA_SMART 22
+#define MON_DATA_TOUGH 23
+#define MON_DATA_SHEEN 24
+#define MON_DATA_SINNOH_CHAMP_RIBBON 25
+#define MON_DATA_SINNOH_RIBBON_26 26
+#define MON_DATA_SINNOH_RIBBON_27 27
+#define MON_DATA_SINNOH_RIBBON_28 28
+#define MON_DATA_SINNOH_RIBBON_29 29
+#define MON_DATA_SINNOH_RIBBON_30 30
+#define MON_DATA_SINNOH_RIBBON_31 31
+#define MON_DATA_SINNOH_RIBBON_32 32
+#define MON_DATA_SINNOH_RIBBON_33 33
+#define MON_DATA_SINNOH_RIBBON_34 34
+#define MON_DATA_SINNOH_RIBBON_35 35
+#define MON_DATA_SINNOH_RIBBON_36 36
+#define MON_DATA_SINNOH_RIBBON_37 37
+#define MON_DATA_SINNOH_RIBBON_38 38
+#define MON_DATA_SINNOH_RIBBON_39 39
+#define MON_DATA_SINNOH_RIBBON_40 40
+#define MON_DATA_SINNOH_RIBBON_41 41
+#define MON_DATA_SINNOH_RIBBON_42 42
+#define MON_DATA_SINNOH_RIBBON_43 43
+#define MON_DATA_SINNOH_RIBBON_44 44
+#define MON_DATA_SINNOH_RIBBON_45 45
+#define MON_DATA_SINNOH_RIBBON_46 46
+#define MON_DATA_SINNOH_RIBBON_47 47
+#define MON_DATA_SINNOH_RIBBON_48 48
+#define MON_DATA_SINNOH_RIBBON_49 49
+#define MON_DATA_SINNOH_RIBBON_50 50
+#define MON_DATA_SINNOH_RIBBON_51 51
+#define MON_DATA_SINNOH_RIBBON_52 52
+#define MON_DATA_SINNOH_RIBBON_53 53
+#define MON_DATA_MOVE1 54
+#define MON_DATA_MOVE2 55
+#define MON_DATA_MOVE3 56
+#define MON_DATA_MOVE4 57
+#define MON_DATA_MOVE1PP 58
+#define MON_DATA_MOVE2PP 59
+#define MON_DATA_MOVE3PP 60
+#define MON_DATA_MOVE4PP 61
+#define MON_DATA_MOVE1PPUP 62
+#define MON_DATA_MOVE2PPUP 63
+#define MON_DATA_MOVE3PPUP 64
+#define MON_DATA_MOVE4PPUP 65
+#define MON_DATA_MOVE1MAXPP 66
+#define MON_DATA_MOVE2MAXPP 67
+#define MON_DATA_MOVE3MAXPP 68
+#define MON_DATA_MOVE4MAXPP 69
+#define MON_DATA_HP_IV 70
+#define MON_DATA_ATK_IV 71
+#define MON_DATA_DEF_IV 72
+#define MON_DATA_SPEED_IV 73
+#define MON_DATA_SPATK_IV 74
+#define MON_DATA_SPDEF_IV 75
+#define MON_DATA_IS_EGG 76
+#define MON_DATA_HAS_NICKNAME 77
+#define MON_DATA_COOL_RIBBON 78
+#define MON_DATA_HOENN_RIBBON_79 79
+#define MON_DATA_HOENN_RIBBON_80 80
+#define MON_DATA_HOENN_RIBBON_81 81
+#define MON_DATA_HOENN_RIBBON_82 82
+#define MON_DATA_HOENN_RIBBON_83 83
+#define MON_DATA_HOENN_RIBBON_84 84
+#define MON_DATA_HOENN_RIBBON_85 85
+#define MON_DATA_HOENN_RIBBON_86 86
+#define MON_DATA_HOENN_RIBBON_87 87
+#define MON_DATA_HOENN_RIBBON_88 88
+#define MON_DATA_HOENN_RIBBON_89 89
+#define MON_DATA_HOENN_RIBBON_90 90
+#define MON_DATA_HOENN_RIBBON_91 91
+#define MON_DATA_HOENN_RIBBON_92 92
+#define MON_DATA_HOENN_RIBBON_93 93
+#define MON_DATA_HOENN_RIBBON_94 94
+#define MON_DATA_HOENN_RIBBON_95 95
+#define MON_DATA_HOENN_RIBBON_96 96
+#define MON_DATA_HOENN_RIBBON_97 97
+#define MON_DATA_HOENN_RIBBON_98 98
+#define MON_DATA_HOENN_RIBBON_99 99
+#define MON_DATA_HOENN_RIBBON_100 100
+#define MON_DATA_HOENN_RIBBON_101 101
+#define MON_DATA_HOENN_RIBBON_102 102
+#define MON_DATA_HOENN_RIBBON_103 103
+#define MON_DATA_HOENN_RIBBON_104 104
+#define MON_DATA_HOENN_RIBBON_105 105
+#define MON_DATA_HOENN_RIBBON_106 106
+#define MON_DATA_HOENN_RIBBON_107 107
+#define MON_DATA_HOENN_RIBBON_108 108
+#define MON_DATA_HOENN_RIBBON_109 109
+#define MON_DATA_FATEFUL_ENCOUNTER 110
+#define MON_DATA_GENDER 111
+#define MON_DATA_FORME 112
+#define MON_DATA_RESERVED_113 113 // HGSS
+#define MON_DATA_RESERVED_114 114 // Plat
+#define MON_DATA_UNUSED_115 115
+#define MON_DATA_NICKNAME 116
+#define MON_DATA_NICKNAME_2 117
+#define MON_DATA_NICKNAME_3 118 // ???
+#define MON_DATA_NICKNAME_4 119 // ???
+#define MON_DATA_UNK_120 120
+#define MON_DATA_GAME_VERSION 121
+#define MON_DATA_SINNOH_RIBBON_122 122
+#define MON_DATA_SINNOH_RIBBON_123 123
+#define MON_DATA_SINNOH_RIBBON_124 124
+#define MON_DATA_SINNOH_RIBBON_125 125
+#define MON_DATA_SINNOH_RIBBON_126 126
+#define MON_DATA_SINNOH_RIBBON_127 127
+#define MON_DATA_SINNOH_RIBBON_128 128
+#define MON_DATA_SINNOH_RIBBON_129 129
+#define MON_DATA_SINNOH_RIBBON_130 130
+#define MON_DATA_SINNOH_RIBBON_131 131
+#define MON_DATA_SINNOH_RIBBON_132 132
+#define MON_DATA_SINNOH_RIBBON_133 133
+#define MON_DATA_SINNOH_RIBBON_134 134
+#define MON_DATA_SINNOH_RIBBON_135 135
+#define MON_DATA_SINNOH_RIBBON_136 136
+#define MON_DATA_SINNOH_RIBBON_137 137
+#define MON_DATA_SINNOH_RIBBON_138 138
+#define MON_DATA_SINNOH_RIBBON_139 139
+#define MON_DATA_SINNOH_RIBBON_140 140
+#define MON_DATA_SINNOH_RIBBON_141 141
+#define MON_DATA_SINNOH_RIBBON_142 142
+#define MON_DATA_OT_NAME 143
+#define MON_DATA_OT_NAME_2 144 // ???
+#define MON_DATA_EGG_MET_YEAR 145
+#define MON_DATA_EGG_MET_MONTH 146
+#define MON_DATA_EGG_MET_DAY 147
+#define MON_DATA_MET_YEAR 148
+#define MON_DATA_MET_MONTH 149
+#define MON_DATA_MET_DAY 150
+#define MON_DATA_EGG_MET_LOCATION 151
+#define MON_DATA_MET_LOCATION 152
+#define MON_DATA_POKERUS 153
+#define MON_DATA_POKEBALL 154
+#define MON_DATA_MET_LEVEL 155
+#define MON_DATA_MET_GENDER 156
+#define MON_DATA_ENCOUNTER_TYPE 157
+#define MON_DATA_RESERVED_158 158 // HGSS
+#define MON_DATA_STATUS 159
+#define MON_DATA_LEVEL 160
+#define MON_DATA_CAPSULE 161
+#define MON_DATA_HP 162
+#define MON_DATA_MAXHP 163
+#define MON_DATA_ATK 164
+#define MON_DATA_DEF 165
+#define MON_DATA_SPEED 166
+#define MON_DATA_SPATK 167
+#define MON_DATA_SPDEF 168
+#define MON_DATA_SEAL_STRUCT 169
+#define MON_DATA_SEAL_COORDS 170
+#define MON_DATA_SPECIES_EXISTS 171
+#define MON_DATA_SANITY_IS_EGG 172
+#define MON_DATA_SPECIES2 173
+#define MON_DATA_IVS_WORD 174
+#define MON_DATA_UNK_175 175
+#define MON_DATA_TYPE_1 176
+#define MON_DATA_TYPE_2 177
+#define MON_DATA_SPECIES_NAME 178
+
+#define MON_RATIO_MALE 0
+#define MON_RATIO_EIGHTH 31
+#define MON_RATIO_QUARTER 63
+#define MON_RATIO_HALF 127
+#define MON_RATIO_THREEQUARTER 191
+#define MON_RATIO_FEMALE 254
+#define MON_RATIO_UNKNOWN 255
+
+#define GENDER_RATIO(frac) ( (frac) <= 1 ? (u8)((frac) * 254.75) : 255 )
+
+enum MonGender
+{
+ MON_MALE = 0,
+ MON_FEMALE = 1,
+ MON_GENDERLESS = 2
+};
+
+// TODO: Identify the rest of these
+enum BaseStat {
+ BASE_HP = 0,
+ BASE_ATK,
+ BASE_DEF,
+ BASE_SPEED,
+ BASE_SPATK,
+ BASE_SPDEF,
+ BASE_TYPE1,
+ BASE_TYPE2,
+ BASE_CATCH_RATE,
+ BASE_EXP_YIELD,
+ BASE_HP_YIELD,
+ BASE_ATK_YIELD,
+ BASE_DEF_YIELD,
+ BASE_SPEED_YIELD,
+ BASE_SPATK_YIELD,
+ BASE_SPDEF_YIELD,
+ BASE_ITEM_1,
+ BASE_ITEM_2,
+ BASE_GENDER_RATIO,
+ BASE_EGG_CYCLES,
+ BASE_FRIENDSHIP,
+ BASE_GROWTH_RATE,
+ BASE_EGG_GROUP_1,
+ GASE_EGG_GROUP_2,
+ BASE_ABILITY_1,
+ BASE_ABILITY_2,
+ BASE_GREAT_MARSH_RATE,
+ BASE_COLOR,
+ BASE_FLIP,
+ BASE_UNKNOWN_29,
+ BASE_UNKNOWN_30,
+ BASE_UNKNOWN_31,
+ BASE_UNKNOWN_32,
+};
+
+typedef enum {
+ EGG = 0,
+ EVENT = 0,
+ HATCHED = 0,
+ PAL_PARK = 0,
+ TALL_GRASS = 2,
+ DIALGA_GAME_EVENT = 4,
+ PALKIA_GAME_EVENT = 4,
+ CAVE = 5,
+ HALL_OF_ORIGIN = 5,
+ SURFING = 7,
+ FISHING = 7,
+ BUILDING = 9,
+ SAFARI_ZONE = 10,
+ STARTER = 12,
+ FOSSIL = 12,
+ GIFT_EEVEE = 12
+} EncounterType;
+
+typedef enum GameLanguage OriginLanguage;
+
+typedef enum {
+ ARCEUS_NORMAL = 0,
+ ARCEUS_FIST = 1,
+ ARCEUS_SKY = 2,
+ ARCEUS_TOXIC = 3,
+ ARCEUS_EARTH = 4,
+ ARCEUS_STONE = 5,
+ ARCEUS_INSECT = 6,
+ ARCEUS_SPOOKY = 7,
+ ARCEUS_IRON = 8,
+ ARCEUS_FLAME = 9,
+ ARCEUS_SPLASH = 10,
+ ARCEUS_MEADOW = 11,
+ ARCEUS_ZAP = 12,
+ ARCEUS_MIND = 13,
+ ARCEUS_ICICLE = 14,
+ ARCEUS_DRACO = 15,
+ ARCEUS_DREAD = 16,
+ BURMY_PLANT = 0,
+ BURMY_SANDY = 1,
+ BURMY_TRASH = 2,
+ DEOXYS_NORMAL = 0,
+ DEOXYS_ATTACK = 1,
+ DEOXYS_DEFENSE = 2,
+ DEOXYS_SPEED = 3,
+ GIRATINA_ALTERED = 0,
+ GIRATINA_ORIGIN = 1,
+ ROTOM_NORMAL = 0,
+ ROTOM_HEAT = 1,
+ ROTOM_WASH = 2,
+ ROTOM_FROST = 3,
+ ROTOM_FAN = 4,
+ ROTOM_MOW = 5,
+ SHAYMIN_LAND = 0,
+ SHAYMIN_SKY = 1,
+ SHELLOS_WEST = 0,
+ SHELLOS_EAST = 1,
+ UNOWN_A = 0,
+ UNOWN_B = 1,
+ UNOWN_C = 2,
+ UNOWN_D = 3,
+ UNOWN_E = 4,
+ UNOWN_F = 5,
+ UNOWN_G = 6,
+ UNOWN_H = 7,
+ UNOWN_I = 8,
+ UNOWN_J = 9,
+ UNOWN_K = 10,
+ UNOWN_L = 11,
+ UNOWN_M = 12,
+ UNOWN_N = 13,
+ UNOWN_O = 14,
+ UNOWN_P = 15,
+ UNOWN_Q = 16,
+ UNOWN_R = 17,
+ UNOWN_S = 18,
+ UNOWN_T = 19,
+ UNOWN_U = 20,
+ UNOWN_V = 21,
+ UNOWN_W = 22,
+ UNOWN_X = 23,
+ UNOWN_Y = 24,
+ UNOWN_Z = 25,
+ UNOWN_EXCLAMATION_MARK = 26,
+ UNOWN_QUESTION_MARK = 27
+} AlternateForms;
+
+typedef enum EvoMethod
+{
+ EVO_NONE = 0,
+ EVO_FRIENDSHIP,
+ EVO_FRIENDSHIP_DAY,
+ EVO_FRIENDSHIP_NIGHT,
+ EVO_LEVEL,
+ EVO_TRADE,
+ EVO_TRADE_ITEM,
+ EVO_STONE,
+ EVO_LEVEL_ATK_GT_DEF,
+ EVO_LEVEL_ATK_EQ_DEF,
+ EVO_LEVEL_ATK_LT_DEF,
+ EVO_LEVEL_PID_LO,
+ EVO_LEVEL_PID_HI,
+ EVO_LEVEL_NINJASK,
+ EVO_LEVEL_SHEDINJA,
+ EVO_BEAUTY,
+ EVO_STONE_MALE,
+ EVO_STONE_FEMALE,
+ EVO_ITEM_DAY,
+ EVO_ITEM_NIGHT,
+ EVO_HAS_MOVE,
+ EVO_OTHER_PARTY_MON,
+ EVO_LEVEL_MALE,
+ EVO_LEVEL_FEMALE,
+ EVO_CORONET,
+ EVO_ETERNA,
+ EVO_ROUTE217,
+} EvoMethod;
+
+enum GrowthRate
+{
+ GROWTH_MEDIUM_FAST = 0,
+ GROWTH_ERRATIC,
+ GROWTH_FLUCTUATING,
+ GROWTH_MEDIUM_SLOW,
+ GROWTH_FAST,
+ GROWTH_SLOW,
+};
+
+#endif //POKEDIAMOND_CONSTANTS_POKEMON_H
diff --git a/include/constants/sinnoh_dex.h b/include/constants/sinnoh_dex.h
new file mode 100644
index 00000000..555ced8b
--- /dev/null
+++ b/include/constants/sinnoh_dex.h
@@ -0,0 +1,158 @@
+#ifndef POKEDIAMOND_CONSTANTS_SINNOH_DEX_H
+#define POKEDIAMOND_CONSTANTS_SINNOH_DEX_H
+
+#define SINNOH_DEX_ARCEUS 0
+#define SINNOH_DEX_TURTWIG 1
+#define SINNOH_DEX_GROTLE 2
+#define SINNOH_DEX_TORTERRA 3
+#define SINNOH_DEX_CHIMCHAR 4
+#define SINNOH_DEX_MONFERNO 5
+#define SINNOH_DEX_INFERNAPE 6
+#define SINNOH_DEX_PIPLUP 7
+#define SINNOH_DEX_PRINPLUP 8
+#define SINNOH_DEX_EMPOLEON 9
+#define SINNOH_DEX_STARLY 10
+#define SINNOH_DEX_STARAVIA 11
+#define SINNOH_DEX_STARAPTOR 12
+#define SINNOH_DEX_BIDOOF 13
+#define SINNOH_DEX_BIBAREL 14
+#define SINNOH_DEX_KRICKETOT 15
+#define SINNOH_DEX_KRICKETUNE 16
+#define SINNOH_DEX_SHINX 17
+#define SINNOH_DEX_LUXIO 18
+#define SINNOH_DEX_LUXRAY 19
+#define SINNOH_DEX_ABRA 20
+#define SINNOH_DEX_KADABRA 21
+#define SINNOH_DEX_ALAKAZAM 22
+#define SINNOH_DEX_MAGIKARP 23
+#define SINNOH_DEX_GYARADOS 24
+#define SINNOH_DEX_BUDEW 25
+#define SINNOH_DEX_ROSELIA 26
+#define SINNOH_DEX_ROSERADE 27
+#define SINNOH_DEX_ZUBAT 28
+#define SINNOH_DEX_GOLBAT 29
+#define SINNOH_DEX_CROBAT 30
+#define SINNOH_DEX_GEODUDE 31
+#define SINNOH_DEX_GRAVELER 32
+#define SINNOH_DEX_GOLEM 33
+#define SINNOH_DEX_ONIX 34
+#define SINNOH_DEX_STEELIX 35
+#define SINNOH_DEX_CRANIDOS 36
+#define SINNOH_DEX_RAMPARDOS 37
+#define SINNOH_DEX_SHIELDON 38
+#define SINNOH_DEX_BASTIODON 39
+#define SINNOH_DEX_MACHOP 40
+#define SINNOH_DEX_MACHOKE 41
+#define SINNOH_DEX_MACHAMP 42
+#define SINNOH_DEX_PSYDUCK 43
+#define SINNOH_DEX_GOLDUCK 44
+#define SINNOH_DEX_BURMY 45
+#define SINNOH_DEX_WORMADAM 46
+#define SINNOH_DEX_MOTHIM 47
+#define SINNOH_DEX_WURMPLE 48
+#define SINNOH_DEX_SILCOON 49
+#define SINNOH_DEX_BEAUTIFLY 50
+#define SINNOH_DEX_CASCOON 51
+#define SINNOH_DEX_DUSTOX 52
+#define SINNOH_DEX_COMBEE 53
+#define SINNOH_DEX_VESPIQUEN 54
+#define SINNOH_DEX_PACHIRISU 55
+#define SINNOH_DEX_BUIZEL 56
+#define SINNOH_DEX_FLOATZEL 57
+#define SINNOH_DEX_CHERUBI 58
+#define SINNOH_DEX_CHERRIM 59
+#define SINNOH_DEX_SHELLOS 60
+#define SINNOH_DEX_GASTRODON 61
+#define SINNOH_DEX_HERACROSS 62
+#define SINNOH_DEX_AIPOM 63
+#define SINNOH_DEX_AMBIPOM 64
+#define SINNOH_DEX_DRIFLOON 65
+#define SINNOH_DEX_DRIFBLIM 66
+#define SINNOH_DEX_BUNEARY 67
+#define SINNOH_DEX_LOPUNNY 68
+#define SINNOH_DEX_GASTLY 69
+#define SINNOH_DEX_HAUNTER 70
+#define SINNOH_DEX_GENGAR 71
+#define SINNOH_DEX_MISDREAVUS 72
+#define SINNOH_DEX_MISMAGIUS 73
+#define SINNOH_DEX_MURKROW 74
+#define SINNOH_DEX_HONCHKROW 75
+#define SINNOH_DEX_GLAMEOW 76
+#define SINNOH_DEX_PURUGLY 77
+#define SINNOH_DEX_GOLDEEN 78
+#define SINNOH_DEX_SEAKING 79
+#define SINNOH_DEX_BARBOACH 80
+#define SINNOH_DEX_WHISCASH 81
+#define SINNOH_DEX_CHINGLING 82
+#define SINNOH_DEX_CHIMECHO 83
+#define SINNOH_DEX_STUNKY 84
+#define SINNOH_DEX_SKUNTANK 85
+#define SINNOH_DEX_MEDITITE 86
+#define SINNOH_DEX_MEDICHAM 87
+#define SINNOH_DEX_BRONZOR 88
+#define SINNOH_DEX_BRONZONG 89
+#define SINNOH_DEX_PONYTA 90
+#define SINNOH_DEX_RAPIDASH 91
+#define SINNOH_DEX_BONSLY 92
+#define SINNOH_DEX_SUDOWOODO 93
+#define SINNOH_DEX_MIME_JR 94
+#define SINNOH_DEX_MR_MIME 95
+#define SINNOH_DEX_HAPPINY 96
+#define SINNOH_DEX_CHANSEY 97
+#define SINNOH_DEX_BLISSEY 98
+#define SINNOH_DEX_CLEFFA 99
+#define SINNOH_DEX_CLEFAIRY 100
+#define SINNOH_DEX_CLEFABLE 101
+#define SINNOH_DEX_CHATOT 102
+#define SINNOH_DEX_PICHU 103
+#define SINNOH_DEX_PIKACHU 104
+#define SINNOH_DEX_RAICHU 105
+#define SINNOH_DEX_HOOTHOOT 106
+#define SINNOH_DEX_NOCTOWL 107
+#define SINNOH_DEX_SPIRITOMB 108
+#define SINNOH_DEX_GIBLE 109
+#define SINNOH_DEX_GABITE 110
+#define SINNOH_DEX_GARCHOMP 111
+#define SINNOH_DEX_MUNCHLAX 112
+#define SINNOH_DEX_SNORLAX 113
+#define SINNOH_DEX_UNOWN 114
+#define SINNOH_DEX_RIOLU 115
+#define SINNOH_DEX_LUCARIO 116
+#define SINNOH_DEX_WOOPER 117
+#define SINNOH_DEX_QUAGSIRE 118
+#define SINNOH_DEX_WINGULL 119
+#define SINNOH_DEX_PELIPPER 120
+#define SINNOH_DEX_GIRAFARIG 121
+#define SINNOH_DEX_HIPPOPOTAS 122
+#define SINNOH_DEX_HIPPOWDON 123
+#define SINNOH_DEX_AZURILL 124
+#define SINNOH_DEX_MARILL 125
+#define SINNOH_DEX_AZUMARILL 126
+#define SINNOH_DEX_SKORUPI 127
+#define SINNOH_DEX_DRAPION 128
+#define SINNOH_DEX_CROAGUNK 129
+#define SINNOH_DEX_TOXICROAK 130
+#define SINNOH_DEX_CARNIVINE 131
+#define SINNOH_DEX_REMORAID 132
+#define SINNOH_DEX_OCTILLERY 133
+#define SINNOH_DEX_FINNEON 134
+#define SINNOH_DEX_LUMINEON 135
+#define SINNOH_DEX_TENTACOOL 136
+#define SINNOH_DEX_TENTACRUEL 137
+#define SINNOH_DEX_FEEBAS 138
+#define SINNOH_DEX_MILOTIC 139
+#define SINNOH_DEX_MANTYKE 140
+#define SINNOH_DEX_MANTINE 141
+#define SINNOH_DEX_SNOVER 142
+#define SINNOH_DEX_ABOMASNOW 143
+#define SINNOH_DEX_SNEASEL 144
+#define SINNOH_DEX_WEAVILE 145
+#define SINNOH_DEX_UXIE 146
+#define SINNOH_DEX_MESPRIT 147
+#define SINNOH_DEX_AZELF 148
+#define SINNOH_DEX_DIALGA 149
+#define SINNOH_DEX_PALKIA 150
+#define SINNOH_DEX_MANAPHY 151
+#define SINNOH_DEX_COUNT SINNOH_DEX_MANAPHY
+
+#endif //POKEDIAMOND_CONSTANTS_SINNOH_DEX_H
diff --git a/include/filesystem.h b/include/filesystem.h
index 37f73bb0..6b5a16d6 100644
--- a/include/filesystem.h
+++ b/include/filesystem.h
@@ -2,6 +2,7 @@
#define POKEDIAMOND_FILESYSTEM_H
#include "nitro/types.h"
+#include "FS_file.h"
typedef struct NARC
{
diff --git a/include/global.h b/include/global.h
index 2f31fa3d..88ca58ff 100644
--- a/include/global.h
+++ b/include/global.h
@@ -2,8 +2,13 @@
#define GUARD_GLOBAL_H
#include "config.h"
+
+#include "MWC_string.h"
#include "function_target.h"
#include "nitro.h"
+#include "constants/global.h"
+
+#define NELEMS(a) (sizeof(a) / sizeof(*(a)))
enum GameVersion {
VERSION_SAPPHIRE = 1,
@@ -27,4 +32,9 @@ enum GameLanguage {
extern void ErrorHandling(void);
+#define GF_ASSERT(expr) do {if (!(expr)) ErrorHandling();} while (0)
+
+extern const enum GameLanguage gGameLanguage;
+extern const enum GameVersion gGameVersion;
+
#endif //GUARD_GLOBAL_H
diff --git a/include/itemtool.h b/include/itemtool.h
new file mode 100644
index 00000000..525e68f9
--- /dev/null
+++ b/include/itemtool.h
@@ -0,0 +1,24 @@
+#ifndef POKEDIAMOND_ITEMTOOL_H
+#define POKEDIAMOND_ITEMTOOL_H
+
+#include "global.h"
+#include "constants/items.h"
+
+// Berries (nutdata)
+
+struct NutData
+{
+ u16 unk0;
+ u8 unk2;
+ u8 unk3;
+ u8 unk4;
+ u8 unk5;
+ u8 unk6;
+ u8 unk7;
+ u8 unk8;
+ u8 unk9;
+ u8 unkA;
+ u8 unkB;
+};
+
+#endif //POKEDIAMOND_ITEMTOOL_H
diff --git a/include/math_util.h b/include/math_util.h
new file mode 100644
index 00000000..f66f8a07
--- /dev/null
+++ b/include/math_util.h
@@ -0,0 +1,38 @@
+#ifndef POKEDIAMOND_MATH_UTIL_H
+#define POKEDIAMOND_MATH_UTIL_H
+#include "fx.h"
+
+/*
+ * Trigonometric functions
+ */
+s32 Sin(u16 degrees);
+s32 Cos(u16 degrees);
+s32 Sin_Wrap(u16 degrees);
+s32 Cos_Wrap(u16 degrees);
+u16 MathUtil_0201B9A0(u16 x);
+s32 Sin32(s32 degrees);
+
+/*
+ * Random number generators
+ */
+u32 GetLCRNGSeed();
+void SetLCRNGSeed(u32 seed);
+u16 LCRandom(void);
+
+u32 PRandom(u32 seed);
+
+void SetMTRNGSeed(u32 seed);
+u32 MTRandom(void);
+
+/*
+ * Nitro FX specific functions
+ */
+void MTX22_2DAffine(struct Mtx22 * mtx, u16 radians, fx32 x, fx32 y, u8 type);
+
+/*
+ * Vector functions
+ */
+s32 CircularDistance(s32 x1, s32 y1, s32 x2, s32 y2);
+s32 MathUtil_0201BC84(u16 arg0, s32 arg1);
+
+#endif //POKEDIAMOND_MATH_UTIL_H
diff --git a/include/move_data.h b/include/move_data.h
new file mode 100644
index 00000000..a970e1bf
--- /dev/null
+++ b/include/move_data.h
@@ -0,0 +1,41 @@
+#ifndef POKEDIAMOND_MOVE_DATA_H
+#define POKEDIAMOND_MOVE_DATA_H
+
+struct WazaTbl
+{
+ u16 effect;
+ u8 unk2;
+ u8 power;
+ u8 type;
+ u8 accuracy;
+ u8 pp;
+ u8 effectChance;
+ u16 unk8;
+ s8 priority;
+ u8 unkB;
+ u8 unkC;
+ u8 contestType;
+ u8 padding[2];
+};
+
+typedef enum MoveAttr {
+ MOVEATTR_EFFECT = 0,
+ MOVEATTR_UNK1,
+ MOVEATTR_POWER,
+ MOVEATTR_TYPE,
+ MOVEATTR_ACCURACY,
+ MOVEATTR_PP,
+ MOVEATTR_EFFECT_CHANCE,
+ MOVEATTR_UNK7,
+ MOVEATTR_PRIORTY,
+ MOVEATTR_UNK9,
+ MOVEATTR_UNK10,
+ MOVEATTR_CONTEST_TYPE,
+} MoveAttr;
+
+void LoadAllWazaTbl(struct WazaTbl * dest);
+u8 WazaGetMaxPp(u16 move, u8 ppUp);
+u32 GetWazaAttr(u16 move, MoveAttr attr);
+u32 GetAttrFromWazaTbl(struct WazaTbl * wazaTbl, MoveAttr attr);
+
+#endif //POKEDIAMOND_MOVE_DATA_H
diff --git a/include/msg_data.h b/include/msg_data.h
new file mode 100644
index 00000000..debacc79
--- /dev/null
+++ b/include/msg_data.h
@@ -0,0 +1,20 @@
+#ifndef POKEDIAMOND_MSG_DATA_H
+#define POKEDIAMOND_MSG_DATA_H
+
+struct MsgData
+{
+ u16 unk0;
+ u16 unk2;
+ u16 unk4;
+ u16 unk6;
+ union {
+ u16 * raw;
+ NARC * narc;
+ } data;
+};
+
+struct MsgData * NewMsgDataFromNarc(u32 type, u32 narcId, u32 msgId, u32 heapno);
+u16 * FUN_0200A914(struct MsgData *, u32);
+void DestroyMsgData(struct MsgData *);
+
+#endif //POKEDIAMOND_MSG_DATA_H
diff --git a/include/nitro/dma.h b/include/nitro/MI_dma_shared.h
index 32944cb3..e839417a 100644
--- a/include/nitro/dma.h
+++ b/include/nitro/MI_dma_shared.h
@@ -1,5 +1,17 @@
-#ifndef GUARD_DMA_H
-#define GUARD_DMA_H
+/*
+ * NOTE:
+ * This file is shared between ARM9 and ARM7
+ * DO NOT PUT PROC SPECIFIC CODE IN HERE
+ * Thank You!
+ */
+
+/*
+ * DO NOT INCLUDE THIS FILE DIRECTLY
+ * Include MI_dma.h from the specific proc's lib
+ */
+
+#ifndef GUARD_DMA_SHARED_H
+#define GUARD_DMA_SHARED_H
#define REG_ADDR_DMA0SAD 0x040000b0
diff --git a/include/nitro/OS_alarm_shared.h b/include/nitro/OS_alarm_shared.h
new file mode 100644
index 00000000..fe549351
--- /dev/null
+++ b/include/nitro/OS_alarm_shared.h
@@ -0,0 +1,35 @@
+/*
+ * NOTE:
+ * This file is shared between ARM9 and ARM7
+ * DO NOT PUT PROC SPECIFIC CODE IN HERE
+ * Thank You!
+ */
+
+/*
+ * DO NOT INCLUDE THIS FILE DIRECTLY
+ * Include OS_alarm.h from the specific proc's lib
+ */
+
+#ifndef POKEDIAMOND_OS_ALARM_SHARED_H
+#define POKEDIAMOND_OS_ALARM_SHARED_H
+
+#include "nitro/types.h"
+#include "nitro/OS_tick_shared.h"
+
+typedef void (*OSAlarmHandler) (void *);
+
+struct OSiAlarm
+{
+ OSAlarmHandler handler;
+ void *arg;
+
+ u32 tag;
+ OSTick fire;
+ OSAlarm *prev;
+ OSAlarm *next;
+
+ OSTick period;
+ OSTick start;
+};
+
+#endif //POKEDIAMOND_OS_ALARM_SHARED_H
diff --git a/include/nitro/OS_interrupt_shared.h b/include/nitro/OS_interrupt_shared.h
index 97bed8b1..9b5974e5 100644
--- a/include/nitro/OS_interrupt_shared.h
+++ b/include/nitro/OS_interrupt_shared.h
@@ -17,4 +17,13 @@
typedef u32 OSIrqMask;
+typedef void (*OSIrqFunction) (void);
+
+typedef struct
+{
+ void (*func) (void *);
+ u32 enable;
+ void* arg;
+} OSIrqCallbackInfo;
+
#endif //POKEDIAMOND_OS_INTERRUPT_SHARED_H
diff --git a/include/nitro/OS_mutex_shared.h b/include/nitro/OS_mutex_shared.h
index bd181f55..e3c93e47 100644
--- a/include/nitro/OS_mutex_shared.h
+++ b/include/nitro/OS_mutex_shared.h
@@ -1,8 +1,20 @@
-#ifndef GUARD_OS_SHARED_MUTEX_H
-#define GUARD_OS_SHARED_MUTEX_H
+/*
+ * NOTE:
+ * This file is shared between ARM9 and ARM7
+ * DO NOT PUT PROC SPECIFIC CODE IN HERE
+ * Thank You!
+ */
+
+/*
+ * DO NOT INCLUDE THIS FILE DIRECTLY
+ * Include OS_mutex.h from the specific proc's lib
+ */
+
+#ifndef POKEDIAMOND_OS_MUTEX_SHARED_H
+#define POKEDIAMOND_OS_MUTEX_SHARED_H
-#include "nitro/types.h"
#include "nitro/OS_thread_shared.h"
+#include "nitro/types.h"
struct OSMutex {
OSThreadQueue queue;
@@ -11,4 +23,4 @@ struct OSMutex {
OSMutexLink link;
};
-#endif
+#endif //POKEDIAMOND_OS_MUTEX_SHARED_H
diff --git a/include/nitro/OS_spinLock_shared.h b/include/nitro/OS_spinLock_shared.h
new file mode 100644
index 00000000..31f0be32
--- /dev/null
+++ b/include/nitro/OS_spinLock_shared.h
@@ -0,0 +1,24 @@
+/*
+ * NOTE:
+ * This file is shared between ARM9 and ARM7
+ * DO NOT PUT PROC SPECIFIC CODE IN HERE
+ * Thank You!
+ */
+
+/*
+ * DO NOT INCLUDE THIS FILE DIRECTLY
+ * Include OS_spinLock.h from the specific proc's lib
+ */
+
+#ifndef POKEDIAMOND_OS_SPINLOCK_SHARED_H
+#define POKEDIAMOND_OS_SPINLOCK_SHARED_H
+
+#include "nitro/types.h"
+
+typedef volatile struct OSLockWord {
+ u32 lockFlag;
+ u16 ownerID;
+ u16 extension;
+} OSLockWord;
+
+#endif //POKEDIAMOND_OS_SPINLOCK_SHARED_H
diff --git a/include/nitro/OS_systemWork_shared.h b/include/nitro/OS_systemWork_shared.h
new file mode 100644
index 00000000..54321015
--- /dev/null
+++ b/include/nitro/OS_systemWork_shared.h
@@ -0,0 +1,66 @@
+/*
+ * NOTE:
+ * This file is shared between ARM9 and ARM7
+ * DO NOT PUT PROC SPECIFIC CODE IN HERE
+ * Thank You!
+ */
+
+/*
+ * DO NOT INCLUDE THIS FILE DIRECTLY
+ * Include consts.h from the specific proc's lib
+ */
+
+#ifndef POKEDIAMOND_OS_SYSTEMWORK_SHARED_H
+#define POKEDIAMOND_OS_SYSTEMWORK_SHARED_H
+
+#include "nitro/types.h"
+#include "nitro/mmap_shared.h"
+#include "nitro/OS_thread_shared.h"
+#include "nitro/OS_spinLock_shared.h"
+
+typedef struct {
+ u8 bootCheckInfo[0x20]; // 000-01f: 32byte boot check info
+ u32 resetParameter; // 020-023: 4byte reset parameter
+ u8 padding5[0x8]; // 024-02c: (8byte)
+ u32 romBaseOffset; // 02c-02f: 4byte ROM offset of own program
+ u8 cartridgeModuleInfo[12]; // 030-03b: 12byte cartridge module info
+ u32 vblankCount; // 03c-03f: 4byte V-Blank Count
+ u8 wmBootBuf[0x40]; // 040-07f: 64byte WM multiboot buffer
+ u8 nvramUserInfo[0x100]; // 080-17f: 256bytes NVRAM user info
+ u8 isd_reserved1[0x20]; // 180-19f: 32bytes ISDebugger reserved
+ u8 arenaInfo[0x48]; // 1a0-1e7: 72byte Arena information
+ u8 real_time_clock[8]; // 1e8-1ef: 8bytes RTC
+ u32 dmaClearBuf[4]; // 1f0-1ff: 16bytes DMA clear information buffer (for ARM9-TEG)
+ u8 rom_header[0x160]; // 200-35f: 352bytes ROM registration area info storage buffer
+ u8 isd_reserved2[32]; // 360-37f: 32bytes ISDebugger reserved
+ u32 pxiSignalParam[2]; // 380-387: 8bytes Param for PXI Signal
+ u32 pxiHandleChecker[2]; // 388-38f: 8bytes Flag for PXI Command Handler Installed
+ u32 mic_last_address; // 390-393: 4bytes MIC latest sampling result storage address
+ u16 mic_sampling_data; // 394-395: 2bytes MIC sampling result
+ u16 wm_callback_control; // 396-397: 2bytes Parameter for WM callback synchronization
+ u16 wm_rssi_pool; // 398-399: 2bytes Random number source depends on WM received signal intensity
+ u8 padding3[2]; // 39a-39b: (2bytes)
+ u32 component_param; // 39c-39f: 4bytes Parameter for Component synchronization
+ OSThreadInfo *threadinfo_mainp; // 3a0-3a3: 4bytes Verify that the pointer to ARM9 thread information is initial value 0
+ OSThreadInfo *threadinfo_subp; // 3a4-3a7: 4bytes Verify that the pointer to ARM7 thread information is initial value 0
+ u16 button_XY; // 3a8-3a9: 2bytes XY button information storage location
+ u8 touch_panel[4]; // 3aa-3ad: 4bytes Touch Screen information storage location
+ u16 autoloadSync; // 3ae-3af: 2bytes autoload sync between processors
+ u32 lockIDFlag_mainp[2]; // 3b0-3b7: 8bytes lockID management flag (ARM9)
+ u32 lockIDFlag_subp[2]; // 3b8-3bf: 8bytes lockID management flag (ARM7)
+ struct OSLockWord lock_VRAM_C; // 3c0-3c7: 8bytes C - lock buffer
+ struct OSLockWord lock_VRAM_D; // 3c8-3cf: 8bytes VRAM-D - lock buffer
+ struct OSLockWord lock_WRAM_BLOCK0; // 3d0-3d7: 8bytes Block0 - lock buffer
+ struct OSLockWord lock_WRAM_BLOCK1; // 3d8-3df: 8bytes CPU internal work RAM - Block1 - lock buffer
+ struct OSLockWord lock_CARD; // 3e0-3e7: 8bytes Game Card - lock buffer
+ struct OSLockWord lock_CARTRIDGE; // 3e8-3ef: 8bytes DS Pak - lock buffer
+ struct OSLockWord lock_INIT; // 3f0-3f7: 8bytes Initialization lock buffer
+ u16 mmem_checker_mainp; // 3f8-3f9: 2bytes MainMomory Size Checker for Main processor
+ u16 mmem_checker_subp; // 3fa-3fb: 2bytes MainMomory Size Checker for Sub processor
+ u8 padding4[2]; // 3fc-3fd: (2bytes)
+ u16 command_area; // 3fe-3ff: 2bytes Command Area
+} OSSystemWork; //0x027FFC00
+
+#define OS_GetSystemWork() ((OSSystemWork *)HW_MAIN_MEM_SYSTEM)
+
+#endif //POKEDIAMOND_OS_SYSTEMWORK_SHARED_H
diff --git a/include/nitro/OS_thread_shared.h b/include/nitro/OS_thread_shared.h
index 5855ee21..a0cce54d 100644
--- a/include/nitro/OS_thread_shared.h
+++ b/include/nitro/OS_thread_shared.h
@@ -1,8 +1,19 @@
-#ifndef GUARD_OS_THREAD_SHARED_H
-#define GUARD_OS_THREAD_SHARED_H
+/*
+ * NOTE:
+ * This file is shared between ARM9 and ARM7
+ * DO NOT PUT PROC SPECIFIC CODE IN HERE
+ * Thank You!
+ */
+
+/*
+ * DO NOT INCLUDE THIS FILE DIRECTLY
+ * Include OS_thread.h from the specific proc's lib
+ */
+
+#ifndef POKEDIAMOND_OS_THREAD_SHARED_H
+#define POKEDIAMOND_OS_THREAD_SHARED_H
#include "nitro/types.h"
-#include "nitro/OS_context_shared.h"
typedef struct OSiAlarm OSAlarm;
@@ -85,9 +96,33 @@ struct _OSThread
u32 systemErrno;
};
+extern OSThreadInfo OSi_ThreadInfo;
+
+static inline OSThreadInfo *OS_GetThreadInfo(void)
+{
+ return &OSi_ThreadInfo;
+}
+
+static inline BOOL OS_IsThreadRunnable(const OSThread *thread)
+{
+ return thread->state == OS_THREAD_STATE_READY;
+}
+
static inline void OS_InitThreadQueue(OSThreadQueue * queue)
{
queue->head = queue->tail = NULL;
}
-#endif
+static inline OSThread *OS_GetCurrentThread(void)
+{
+ return OS_GetThreadInfo()->current;
+}
+
+static inline void OS_SetCurrentThread(OSThread *thread)
+{
+ OS_GetThreadInfo()->current = thread;
+}
+
+#define OSi_GetCurrentThread() (*OSi_CurrentThreadPtr)
+
+#endif //POKEDIAMOND_OS_THREAD_SHARED_H
diff --git a/include/nitro/OS_tick_shared.h b/include/nitro/OS_tick_shared.h
new file mode 100644
index 00000000..e6d6d3b3
--- /dev/null
+++ b/include/nitro/OS_tick_shared.h
@@ -0,0 +1,24 @@
+/*
+ * NOTE:
+ * This file is shared between ARM9 and ARM7
+ * DO NOT PUT PROC SPECIFIC CODE IN HERE
+ * Thank You!
+ */
+
+/*
+ * DO NOT INCLUDE THIS FILE DIRECTLY
+ * Include OS_tick.h from the specific proc's lib
+ */
+
+#ifndef POKEDIAMOND_OS_TICK_SHARED_H
+#define POKEDIAMOND_OS_TICK_SHARED_H
+
+#include "nitro/types.h"
+
+typedef u64 OSTick;
+
+#define OS_SYSTEM_CLOCK HW_SYSTEM_CLOCK
+
+#define OS_MilliSecondsToTicks(msec) ((OSTick)(((OS_SYSTEM_CLOCK/1000) * (u64)(msec)) / 64))
+
+#endif //POKEDIAMOND_OS_TICK_SHARED_H
diff --git a/include/nitro/consts_shared.h b/include/nitro/consts_shared.h
index 151212d1..26cc2fca 100644
--- a/include/nitro/consts_shared.h
+++ b/include/nitro/consts_shared.h
@@ -15,6 +15,7 @@
#include "nitro/types.h"
#include "nitro/mmap_shared.h"
+#include "nitro/registers_shared.h"
//Shared Consts
@@ -29,6 +30,14 @@
#define OSi_InRange(targ, a, b) ((u32)(a) <= (u32)(targ) && (u32)(targ) < (u32)(b))
#define OSi_OFFSET(n, a) (((u32) (n)) & ((a) - 1))
+#define OS_THREAD_SPECIFIC_MAX 0x03
+
+#define OS_THREAD_LAUNCHER_PRIORITY 0x10
+#define OS_THREAD_PRIORITY_MIN 0x00
+#define OS_THREAD_PRIORITY_MAX 0x1F
+
+#define HW_SYSTEM_CLOCK 33514000
+
#define OSi_GetArenaInfo() (*(OSArenaInfo*)HW_ARENA_INFO_BUF)
#endif //POKEDIAMOND_CONSTS_SHARED_H
diff --git a/include/nitro/mmap_shared.h b/include/nitro/mmap_shared.h
index 587887bb..60c0c1cb 100644
--- a/include/nitro/mmap_shared.h
+++ b/include/nitro/mmap_shared.h
@@ -18,8 +18,13 @@
#define HW_MAIN_MEM_MAIN_SIZE 0x003E0000
#define HW_MAIN_MEM_SHARED_SIZE 0x00001000
+#define HW_WRAM 0x037F8000
+
+#define HW_MAIN_MEM_SYSTEM (HW_MAIN_MEM + 0x007ffc00)
#define HW_WM_BOOT_BUF (HW_MAIN_MEM + 0x007ffc40)
#define HW_ARENA_INFO_BUF (HW_MAIN_MEM + 0x007ffda0)
+#define HW_CTRDG_LOCK_BUF (HW_MAIN_MEM + 0x007fffe8)
+#define HW_INIT_LOCK_BUF (HW_MAIN_MEM + 0x007ffff0)
#define HW_MAIN_MEM_MAIN_END (HW_MAIN_MEM + HW_MAIN_MEM_MAIN_SIZE)
#endif //POKEDIAMOND_MMAP_SHARED_H
diff --git a/include/nitro/registers_shared.h b/include/nitro/registers_shared.h
new file mode 100644
index 00000000..60152ab0
--- /dev/null
+++ b/include/nitro/registers_shared.h
@@ -0,0 +1,17 @@
+/*
+ * NOTE:
+ * This file is shared between ARM9 and ARM7
+ * DO NOT PUT PROC SPECIFIC CODE IN HERE
+ * Thank You!
+ */
+
+#ifndef POKEDIAMOND_REGISTERS_SHARED_H
+#define POKEDIAMOND_REGISTERS_SHARED_H
+
+#include "nitro/types.h"
+
+#define reg_OS_IME (*(REGType16v *)0x4000208)
+#define reg_OS_IE (*(REGType32v *)0x4000210)
+#define reg_OS_IF (*(REGType32v *)0x4000214)
+
+#endif //POKEDIAMOND_REGISTERS_SHARED_H
diff --git a/include/party.h b/include/party.h
new file mode 100644
index 00000000..eca62239
--- /dev/null
+++ b/include/party.h
@@ -0,0 +1,20 @@
+#ifndef POKEDIAMOND_PARTY_H
+#define POKEDIAMOND_PARTY_H
+
+#include "pokemon.h"
+
+BOOL PartyHasMon(struct PlayerParty * party_p, u16 species);
+int GetPartyCount(struct PlayerParty * party_p);
+struct Pokemon * GetPartyMonByIndex(struct PlayerParty * party_p, int idx);
+u32 FUN_0206B8A4(void);
+struct PlayerParty * FUN_0206B8AC(u32 heap_id);
+void FUN_0206B8C0(struct PlayerParty * party);
+void FUN_0206B8CC(struct PlayerParty * party, int count);
+BOOL FUN_0206B900(struct PlayerParty * party, struct Pokemon * pokemon);
+BOOL FUN_0206B938(struct PlayerParty * party, int pos);
+void FUN_0206B9DC(struct PlayerParty * party, int pos, struct Pokemon * pokemon);
+BOOL FUN_0206BA38(struct PlayerParty * party, int pos1, int pos2);
+void FUN_0206BAD0(struct PlayerParty * src, struct PlayerParty * dest);
+struct PlayerParty * FUN_0206BB1C(void * ptr);
+
+#endif //POKEDIAMOND_PARTY_H
diff --git a/include/pokemon.h b/include/pokemon.h
index 68cc0d59..2387ef78 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -6,267 +6,46 @@
// Enums
#include "constants/species.h"
-
-#define MON_DATA_PERSONALITY 0
-#define MON_DATA_IS_ENCRYPTED 1
-#define MON_DATA_CONTROL_4_1 2
-#define MON_DATA_CONTROL_4_2 3
-#define MON_DATA_CHECKSUM 4
-#define MON_DATA_SPECIES 5
-#define MON_DATA_HELD_ITEM 6
-#define MON_DATA_OTID 7
-#define MON_DATA_EXPERIENCE 8
-#define MON_DATA_FRIENDSHIP 9
-#define MON_DATA_ABILITY 10
-#define MON_DATA_MARKINGS 11
-#define MON_DATA_GAME_LANGUAGE 12
-#define MON_DATA_HP_EV 13
-#define MON_DATA_ATK_EV 14
-#define MON_DATA_DEF_EV 15
-#define MON_DATA_SPEED_EV 16
-#define MON_DATA_SPATK_EV 17
-#define MON_DATA_SPDEF_EV 18
-#define MON_DATA_COOL 19
-#define MON_DATA_BEAUTY 20
-#define MON_DATA_CUTE 21
-#define MON_DATA_SMART 22
-#define MON_DATA_TOUGH 23
-#define MON_DATA_SHEEN 24
-#define MON_DATA_SINNOH_CHAMP_RIBBON 25
-// TODO: ribbon flags through 53
-#define MON_DATA_MOVE1 54
-#define MON_DATA_MOVE2 55
-#define MON_DATA_MOVE3 56
-#define MON_DATA_MOVE4 57
-#define MON_DATA_MOVE1PP 58
-#define MON_DATA_MOVE2PP 59
-#define MON_DATA_MOVE3PP 60
-#define MON_DATA_MOVE4PP 61
-#define MON_DATA_MOVE1PPUP 62
-#define MON_DATA_MOVE2PPUP 63
-#define MON_DATA_MOVE3PPUP 64
-#define MON_DATA_MOVE4PPUP 65
-#define MON_DATA_MOVE1MAXPP 66
-#define MON_DATA_MOVE2MAXPP 67
-#define MON_DATA_MOVE3MAXPP 68
-#define MON_DATA_MOVE4MAXPP 69
-#define MON_DATA_HP_IV 70
-#define MON_DATA_ATK_IV 71
-#define MON_DATA_DEF_IV 72
-#define MON_DATA_SPEED_IV 73
-#define MON_DATA_SPATK_IV 74
-#define MON_DATA_SPDEF_IV 75
-#define MON_DATA_IS_EGG 76
-#define MON_DATA_HAS_NICKNAME 77
-#define MON_DATA_COOL_RIBBON 78
-// TODO: ribbon flags through 109
-#define MON_DATA_FATEFUL_ENCOUNTER 110
-#define MON_DATA_GENDER 111
-#define MON_DATA_FORME 112
-#define MON_DATA_RESERVED_113 113 // HGSS
-#define MON_DATA_RESERVED_114 114 // Plat
-#define MON_DATA_UNUSED_115 115
-#define MON_DATA_NICKNAME 116
-#define MON_DATA_UNUSED_117 117
-#define MON_DATA_NICKNAME_2 118 // ???
-#define MON_DATA_NICKNAME_3 119 // ???
-#define MON_DATA_UNK_120 120
-#define MON_DATA_GAME_VERSION 121
-// TODO: ribbon flags 122-142
-#define MON_DATA_OT_NAME 143
-#define MON_DATA_OT_NAME_2 144 // ???
-#define MON_DATA_EGG_MET_YEAR 145
-#define MON_DATA_EGG_MET_MONTH 146
-#define MON_DATA_EGG_MET_DAY 147
-#define MON_DATA_MET_YEAR 148
-#define MON_DATA_MET_MONTH 149
-#define MON_DATA_MET_DAY 150
-#define MON_DATA_EGG_MET_LOCATION 151
-#define MON_DATA_MET_LOCATION 152
-#define MON_DATA_POKERUS 153
-#define MON_DATA_POKEBALL 154
-#define MON_DATA_MET_LEVEL 155
-#define MON_DATA_MET_GENDER 156
-#define MON_DATA_ENCOUNTER_TYPE 157
-#define MON_DATA_RESERVED_158 158 // HGSS
-#define MON_DATA_STATUS 159
-#define MON_DATA_LEVEL 160
-#define MON_DATA_CAPSULE 161
-#define MON_DATA_HP 162
-#define MON_DATA_MAXHP 163
-#define MON_DATA_ATK 164
-#define MON_DATA_DEF 165
-#define MON_DATA_SPEED 166
-#define MON_DATA_SPATK 167
-#define MON_DATA_SPDEF 168
-#define MON_DATA_SEAL_TYPES_MAYBE 169
-#define MON_DATA_SEAL_COORDS 170
-#define MON_DATA_SPECIES_EXISTS 171
-#define MON_DATA_SANITY_CHECK_172 172
-#define MON_DATA_SANITY_CHECK_173 173
-#define MON_DATA_IVS_WORD 174
-#define MON_DATA_IS_FEMALE 175
-#define MON_DATA_TYPE_1 176
-#define MON_DATA_TYPE_2 177
-#define MON_DATA_SPECIES_NAME 178
-
-// TODO: Identify the rest of these
-enum BaseStat {
- BASE_HP = 0,
- BASE_ATK,
- BASE_DEF,
- BASE_SPEED,
- BASE_SPATK,
- BASE_SPDEF,
- BASE_TYPE1,
- BASE_TYPE2,
- BASE_CATCH_RATE,
- BASE_EXP_YIELD,
- BASE_HP_YIELD,
- BASE_ATK_YIELD,
- BASE_DEF_YIELD,
- BASE_SPEED_YIELD,
- BASE_SPATK_YIELD,
- BASE_SPDEF_YIELD,
- BASE_ITEM_1 = 16,
- BASE_ITEM_2,
- BASE_GENDER_RATIO,
- BASE_EGG_CYCLES,
- BASE_FIRENDSHIP,
- BASE_GROWTH_RATE,
- BASE_EGG_GROUP_1,
- GASE_EGG_GROUP_2,
- BASE_ABILITY_1,
- BASE_ABILITY_2,
- BASE_GREAT_MARSH_RATE,
- BASE_COLOR,
- BASE_FLIP,
-};
+#include "seals.h"
+#include "constants/pokemon.h"
+#include "string16.h"
+#include "save_block_2.h"
struct BaseStats {
- u8 hp;
- u8 atk;
- u8 def;
- u8 speed;
- u8 spatk;
- u8 spdef;
- u8 types[2];
- u8 catchRate;
- u8 expYield;
- u16 hp_yield:2;
- u16 atk_yield:2;
- u16 def_yield:2;
- u16 speed_yield:2;
- u16 spatk_yield:2;
- u16 spdef_yield:2;
- u16 unkB_4:2;
- u16 padding_B_6:2;
- u16 item1;
- u16 item2;
- u8 genderRatio;
- u8 eggCycles;
- u8 friendship;
- u8 growthRate;
- u8 eggGroups[2];
- u8 abilities[2];
- u8 greatMarshRate;
- u8 color:7;
- u8 flip:1;
- u8 padding_1A[2];
- u32 unk1C;
- u32 unk20;
- u32 unk24;
- u32 unk28;
+ /* 0x00 */ u8 hp;
+ /* 0x01 */ u8 atk;
+ /* 0x02 */ u8 def;
+ /* 0x03 */ u8 speed;
+ /* 0x04 */ u8 spatk;
+ /* 0x05 */ u8 spdef;
+ /* 0x06 */ u8 types[2];
+ /* 0x08 */ u8 catchRate;
+ /* 0x09 */ u8 expYield;
+ /* 0x0A */ u16 hp_yield:2;
+ u16 atk_yield:2;
+ u16 def_yield:2;
+ u16 speed_yield:2;
+ /* 0x0B */ u16 spatk_yield:2;
+ u16 spdef_yield:2;
+ u16 padding_B_4:4;
+ /* 0x0C */ u16 item1;
+ /* 0x0E */ u16 item2;
+ /* 0x10 */ u8 genderRatio;
+ /* 0x11 */ u8 eggCycles;
+ /* 0x12 */ u8 friendship;
+ /* 0x13 */ u8 growthRate;
+ /* 0x14 */ u8 eggGroups[2];
+ /* 0x16 */ u8 abilities[2];
+ /* 0x18 */ u8 greatMarshRate;
+ /* 0x19 */ u8 color:7;
+ u8 flip:1;
+ u8 padding_1A[2];
+ /* 0x1C */ u32 unk1C;
+ /* 0x20 */ u32 unk20;
+ /* 0x24 */ u32 unk24;
+ /* 0x28 */ u32 unk28;
};
-typedef enum {
- EGG = 0,
- EVENT = 0,
- HATCHED = 0,
- PAL_PARK = 0,
- TALL_GRASS = 2,
- DIALGA_GAME_EVENT = 4,
- PALKIA_GAME_EVENT = 4,
- CAVE = 5,
- HALL_OF_ORIGIN = 5,
- SURFING = 7,
- FISHING = 7,
- BUILDING = 9,
- SAFARI_ZONE = 10,
- STARTER = 12,
- FOSSIL = 12,
- GIFT_EEVEE = 12
-} EncounterType;
-
-typedef enum GameLanguage OriginLanguage;
-
-typedef enum {
- ARCEUS_NORMAL = 0,
- ARCEUS_FIST = 8,
- ARCEUS_SKY = 16,
- ARCEUS_TOXIC = 24,
- ARCEUS_EARTH = 32,
- ARCEUS_STONE = 40,
- ARCEUS_INSECT = 48,
- ARCEUS_SPOOKY = 56,
- ARCEUS_IRON = 64,
- ARCEUS_FLAME = 72,
- ARCEUS_SPLASH = 80,
- ARCEUS_MEADOW = 88,
- ARCEUS_ZAP = 96,
- ARCEUS_MIND = 104,
- ARCEUS_ICICLE = 112,
- ARCEUS_DRACO = 120,
- ARCEUS_DREAD = 128,
- BURMY_PLANT = 0,
- BURMY_SANDY = 8,
- BURMY_TRASH = 16,
- DEOXYS_NORMAL = 0,
- DEOXYS_ATTACK = 8,
- DEOXYS_DEFENSE = 16,
- DEOXYS_SPEED = 24,
- GIRATINA_ALTERED = 0,
- GIRATINA_ORIGIN = 8,
- ROTOM_NORMAL = 0,
- ROTOM_HEAT = 8,
- ROTOM_WASH = 16,
- ROTOM_FROST = 24,
- ROTOM_FAN = 32,
- ROTOM_MOW = 40,
- SHAYMIN_LAND = 0,
- SHAYMIN_SKY = 8,
- SHELLOS_WEST = 0,
- SHELLOS_EAST = 8,
- UNOWN_A = 0,
- UNOWN_B = 8,
- UNOWN_C = 16,
- UNOWN_D = 24,
- UNOWN_E = 32,
- UNOWN_F = 40,
- UNOWN_G = 48,
- UNOWN_H = 56,
- UNOWN_I = 64,
- UNOWN_J = 72,
- UNOWN_K = 80,
- UNOWN_L = 88,
- UNOWN_M = 96,
- UNOWN_N = 104,
- UNOWN_O = 112,
- UNOWN_P = 120,
- UNOWN_Q = 128,
- UNOWN_R = 136,
- UNOWN_S = 144,
- UNOWN_T = 152,
- UNOWN_U = 160,
- UNOWN_V = 168,
- UNOWN_W = 176,
- UNOWN_X = 184,
- UNOWN_Y = 192,
- UNOWN_Z = 200,
- UNOWN_EXCLAMATION_MARK = 208,
- UNOWN_QUESTION_MARK = 216
-} AlternateForms;
-
// Structs
typedef struct {
@@ -305,7 +84,7 @@ typedef struct {
/* 0x10 */ u32 hpIV:5, atkIV:5, defIV:5, spdIV:5, spatkIV:5, spdefIV:5, isEgg:1, isNicknamed:1;
// TODO: Finish HoennRibbonSet
/* 0x14 */ u32 ribbonFlags; // cool, ...
- /* 0x18 */ u8 fatefulEncounter:1, female:1, genderless:1, alternateForm:5;
+ /* 0x18 */ u8 fatefulEncounter:1, gender:2, alternateForm:5;
/* 0x19 */ u8 HGSS_shinyLeaves; // TODO: Turn into bitfield
/* 0x1A */ u16 Unused;
/* 0x1C */ u16 Platinum_EggLocation;
@@ -314,10 +93,10 @@ typedef struct {
typedef struct {
/* 0x00 */ u16 nickname[11];
- /* 0x1A */ u8 Unused;
- /* 0x1B */ u8 originGame;
+ /* 0x16 */ u8 Unused;
+ /* 0x17 */ u8 originGame;
// TODO: Finish SinnohRibbonSet2
- /* 0x1C */ u32 sinnohRibbons2; // cool, ...
+ /* 0x18 */ u64 sinnohRibbons2; // cool, ...
} PokemonDataBlockC;
typedef struct {
@@ -328,7 +107,8 @@ typedef struct {
/* 0x18 */ u16 DP_MetLocation;
/* 0x1A */ u8 pokerus;
/* 0x1B */ u8 pokeball;
- /* 0x1C */ u8 flags;
+ /* 0x1C */ u8 metLevel:7;
+ u8 metGender:1;
/* 0x1D */ u8 encounterType;
/* 0x1E */ u16 HGSS_Pokeball;
} PokemonDataBlockD;
@@ -341,26 +121,18 @@ typedef union {
} PokemonDataBlock;
struct BoxPokemon {
- /* 0x000 */ u32 personalityValue;
- /* 0x004 */ u16 no_encrypt:1;
- u16 control_4_1:1;
- u16 control_4_2:1;
+ /* 0x000 */ u32 pid;
+ /* 0x004 */ u16 party_lock:1;
+ u16 box_lock:1;
+ u16 checksum_fail:1;
u16 Unused:13; // Might be used for validity checks
/* 0x006 */ u16 checksum; // Stored checksum of pokemon
- /* 0x008 */ PokemonDataBlock box[4];
+ /* 0x008 */ PokemonDataBlock substructs[4];
};
struct PartyPokemon
{
- /* 0x000 */ struct BoxPokemon box;
- /* 0x088 */ u8 slp:3;
- u8 psn:1;
- u8 brn:1;
- u8 frz:1;
- u8 prz:1;
- u8 tox:1;
- /* 0x089 */ u8 unk89;
- /* 0x08A */ u8 filler8A[2];
+ /* 0x088 */ u32 status; // slp:3, psn:1, brn:1, frz:1, prz:1, tox:1, ...
/* 0x08C */ u8 level;
/* 0x08D */ u8 capsule;
/* 0x08E */ u16 hp;
@@ -370,7 +142,7 @@ struct PartyPokemon
/* 0x096 */ u16 speed;
/* 0x098 */ u16 spatk;
/* 0x09A */ u16 spdef;
- /* 0x09C */ u8 seal_something[0x38]; // a struct?
+ /* 0x09C */ struct SealStruct seal_something; // a struct?
/* 0x0D4 */ u8 sealCoords[0x18]; // u8 pairs?
};
@@ -379,11 +151,160 @@ struct Pokemon {
/* 0x088 */ struct PartyPokemon party;
}; // size: 0xEC
-int GetMonBaseStat_HandleFormeConversion(int species, int form, int stat_id);
-int GetMonBaseStat(int species, int stat_id);
-int GetMonExpByLevel(int species, int level);
-void LoadGrowthTable(int species, int * table);
-int GetExpByGrowthRateAndLevel(int rate, int level);
-int CalcLevelBySpeciesAndExp(int species, int experience);
+struct SomeDrawPokemonStruct
+{
+ u16 unk0;
+ u16 unk2;
+ u16 unk4;
+ u16 unk6;
+ u8 unk8;
+ u8 filler_9[3];
+ u32 unkC;
+};
+
+struct PokeanmSub
+{
+ s8 unk0;
+ u8 unk1;
+};
+
+struct Pokeanm
+{
+ struct PokeanmSub unk0[4];
+ u8 unk8[20];
+};
+
+struct UnkStruct_02069038
+{
+ u16 unk0;
+ u16 unk2;
+ u8 unk4;
+ u8 padding;
+ struct Pokeanm anim;
+};
+
+struct Evolution
+{
+ u16 method;
+ u16 param;
+ u16 target;
+};
+
+#define PARTY_SIZE 6
+
+struct PlayerParty
+{
+ int maxCount;
+ int curCount;
+ struct Pokemon mons[PARTY_SIZE];
+};
+
+void ZeroMonData(struct Pokemon * pokemon);
+void ZeroBoxMonData(struct BoxPokemon * boxmon);
+u32 SizeOfStructPokemon(void);
+struct Pokemon * AllocMonZeroed(u32 heap_id);
+BOOL AcquireMonLock(struct Pokemon * mon);
+BOOL ReleaseMonLock(struct Pokemon * mon, BOOL decrypt_result);
+BOOL AcquireBoxMonLock(struct BoxPokemon * mon);
+BOOL ReleaseBoxMonLock(struct BoxPokemon * mon, BOOL decrypt_result);
+void CreateMon(struct Pokemon * pokemon, int species, int level, int fixedIV, int hasFixedPersonality, int fixedPersonality, int otIdType, int fixedOtId);
+void CreateBoxMon(struct BoxPokemon * boxPokemon, int species, int level, int fixedIV, int hasFixedPersonality, int fixedPersonality, int otIdType, int fixedOtId);
+void CreateMonWithNature(struct Pokemon * pokemon, u16 species, u8 level, u8 fixedIv, u8 nature);
+void CreateMonWithGenderNatureLetter(struct Pokemon * pokemon, u16 species, u8 level, u8 fixedIv, u8 gender, u8 nature, u8 letter);
+u32 GenPersonalityByGenderAndNature(u16 species, u8 gender, u8 nature);
+void CreateMonWithFixedIVs(struct Pokemon * pokemon, int species, int level, int ivs, int personality);
+void CalcMonLevelAndStats(struct Pokemon * pokemon);
+void CalcMonStats(struct Pokemon * pokemon);
+#ifndef IN_POKEMON_C
+u32 GetMonData();
+u32 GetBoxMonData();
+#else
+u32 GetMonData(struct Pokemon * pokemon, int attr, void * ptr);
+u32 GetBoxMonData(struct BoxPokemon * pokemon, int attr, void * ptr);
+#endif
+void SetMonData(struct Pokemon * pokemon, int attr, void * ptr);
+void SetBoxMonData(struct BoxPokemon * pokemon, int attr, void * ptr);
+void AddMonData(struct Pokemon * pokemon, int attr, int amount);
+struct BaseStats * AllocAndLoadMonPersonal(int species, u32 heap_id);
+int GetPersonalAttr(struct BaseStats * baseStats, enum BaseStat attr);
+void FreeMonPersonal(struct BaseStats * personal);
+int GetMonBaseStat_HandleFormeConversion(int species, int form, enum BaseStat stat_id);
+int GetMonBaseStat(int species, enum BaseStat stat_id);
+u8 GetPercentProgressTowardsNextLevel(struct Pokemon * pokemon);
+u32 CalcMonExpToNextLevel(struct Pokemon * pokemon);
+u32 GetMonBaseExperienceAtCurrentLevel(struct Pokemon * pokemon);
+u32 GetMonExpBySpeciesAndLevel(int species, int level);
+void LoadGrowthTable(int growthRate, u32 * table);
+u32 GetExpByGrowthRateAndLevel(int rate, int level);
+int CalcMonLevel(struct Pokemon * pokemon);
+int CalcBoxMonLevel(struct BoxPokemon * boxmon);
+int CalcLevelBySpeciesAndExp(u16 species, u32 experience);
+int CalcLevelBySpeciesAndExp_PreloadedPersonal(struct BaseStats * personal, u16 species, u32 experience);
+u8 GetBoxMonNature(struct BoxPokemon * boxmon);
+u8 GetMonNature(struct Pokemon * mon);
+u8 GetNatureFromPersonality(u32 pid);
+void MonApplyFriendshipMod(struct Pokemon * pokemon, u32 kind, u32 location);
+u8 GetMonGender(struct Pokemon * pokemon);
+u8 GetBoxMonGender(struct BoxPokemon * boxmon);
+u8 GetGenderBySpeciesAndPersonality(u16 species, u32 pid);
+u8 MonIsShiny(struct Pokemon * pokemon);
+u32 GenerateShinyPersonality(u32 otid);
+void FUN_02068B70(struct SomeDrawPokemonStruct * spC, struct BoxPokemon * boxmon, u8 sp10);
+void FUN_02068C00(struct SomeDrawPokemonStruct * spC, int species, u8 gender, u8 sp10, u8 shiny, u8 forme, u32 personality);
+u8 FUN_02068E14(struct Pokemon * pokemon, u32 a1);
+u8 FUN_02068E1C(struct BoxPokemon * boxmon, u32 a1);
+u8 FUN_02068E88(int species, u8 gender, u32 a2, u8 forme, u32 pid);
+u32 GetArceusTypeByHeldItemEffect(u16 plate);
+int FUN_0206AA30(int a0);
+void FUN_02068B68(struct SomeDrawPokemonStruct * spC, struct Pokemon * pokemon, u8 sp10);
+void FUN_02068FE0(struct SomeDrawPokemonStruct * a0, u16 a1, int a2);
+void FUN_02069010(void * dest, int a1);
+void FUN_02069038(u32 a0, u32 a1, u32 a2, s32 a3, u32 a4, u32 a5, u32 a6);
+void FUN_020690AC(struct SomeDrawPokemonStruct * a0, u32 a1);
+u32 FUN_020690C4(void);
+u32 FUN_020690C8(void);
+u8 FUN_020690CC(struct Pokemon * pokemon);
+struct BoxPokemon * FUN_020690E4(struct Pokemon * pokemon);
+
+u16 GetMonEvolution(struct PlayerParty * party, struct Pokemon * pokemon, u32 context, u32 usedItem, u32 * method_ret);
+u16 ReadFromPersonalPmsNarc(u16 species);
+u16 GetEggSpecies(u16 species);
+BOOL FUN_020690E8(struct Pokemon * pokemon);
+u32 FUN_02069698(struct Pokemon * pokemon, u16 move);
+void FUN_02069708(struct Pokemon * pokemon, u16 move);
+void FUN_02069718(struct BoxPokemon * boxmon, u16 move);
+void FUN_020697CC(struct Pokemon * pokemon, u16 move, u8 slot);
+u32 FUN_02069818(struct Pokemon * pokemon, u32 * r5, u16 * sp0);
+void FUN_020698E0(struct Pokemon * pokemon, int slot1, int slot2);
+void FUN_020698E8(struct BoxPokemon * boxmon, int slot1, int slot2);
+void FUN_020699A4(struct Pokemon * pokemon, u32 slot);
+void FUN_02069A64(struct BoxPokemon * src, struct Pokemon * dest);
+u8 FUN_02069AEC(struct PlayerParty * party);
+u16 FUN_02069B40(u16 species);
+u16 FUN_02069B60(u16 sinnoh_dex);
+void FUN_02069B88(struct Pokemon * src, struct Pokemon * dest);
+void FUN_02069BA0(struct Pokemon * src, struct BoxPokemon * dest);
+void FUN_02069BB4(struct BoxPokemon * src, struct BoxPokemon * dest);
+s8 FUN_02069BC8(struct Pokemon * pokemon, int flavor);
+int FUN_02069BFC(u16 species, u32 forme, u16 * dest);
+void FUN_02069C4C(struct PlayerParty * party);
+void FUN_02069D50(struct PlayerParty * party, int r5);
+void FUN_02069DC8(struct PlayerParty * party);
+BOOL FUN_02069E74(struct Pokemon * pokemon);
+BOOL FUN_02069E94(struct Pokemon * pokemon);
+void FUN_02069EC4(struct Pokemon * pokemon);
+void FUN_02069FB0(u32 r7, u32 r5, u32 r4, u32 r6, u32 sp18, u32 sp1C, u32 sp20);
+void FUN_0206A014(struct Pokemon * pokemon, u32 a1, u32 pokeball, u32 a3, u32 encounterType, u32 a5);
+void FUN_0206A094(struct Pokemon * pokemon, u32 a1, u32 a2);
+BOOL FUN_0206A13C(struct Pokemon * pokemon, u32 a1);
+void FUN_0206A1C4(struct Pokemon * pokemon);
+void FUN_0206A23C(struct Pokemon * r5, u32 personality);
+int LowestFlagNo(u32 mask);
+BOOL IsPokemonLegendaryOrMythical(u16 species);
+u16 GetLegendaryMon(u32 idx);
+BOOL FUN_0206A998(struct Pokemon * pokemon);
+BOOL FUN_0206A9AC(struct BoxPokemon * boxmon, struct SaveBlock2 * sb2, u32 heap_id);
+void FUN_0206AA84(struct Pokemon * pokemon);
+void FUN_0206AAB4(struct BoxPokemon * boxmon);
#endif //POKEDIAMOND_POKEMON_H
diff --git a/include/proto.h b/include/proto.h
new file mode 100644
index 00000000..2e7d19b3
--- /dev/null
+++ b/include/proto.h
@@ -0,0 +1,24 @@
+#ifndef POKEDIAMOND_PROTO_H
+#define POKEDIAMOND_PROTO_H
+
+// For homeless function declarations
+
+#include "pokemon.h" // for struct definitions
+
+u16 * FUN_0200AA50(u16 species, u32 heap_id);
+void FUN_02021A74(u16 * dest, u16 * src);
+void FUN_02021A20(void * ptr);
+void FUN_02021E28(u16 * dest, u16 * src);
+void FUN_02021EF0(const u16 * src, u16 * dest, u32 count);
+u32 FUN_0206E7B8(u16 item, u32 a1, u32 a2);
+int FUN_02014C3C(u8);
+void FUN_02014C54(int, int, struct UnkStruct_02069038 *, u8);
+u32 IsNighttime(void); // is day or night
+int FUN_02005F14(int);
+void FUN_02005E80(int);
+void FUN_02005E90(int, int, int, int);
+void FUN_020056AC(int, int, int, int, int);
+void FUN_020808AC(struct BoxPokemon *, int, int, int, int);
+void * FUN_02022610(void *, int);
+
+#endif //POKEDIAMOND_PROTO_H
diff --git a/include/save_block_2.h b/include/save_block_2.h
new file mode 100644
index 00000000..38e11de4
--- /dev/null
+++ b/include/save_block_2.h
@@ -0,0 +1,18 @@
+#ifndef POKEDIAMOND_SAVE_BLOCK_2_H
+#define POKEDIAMOND_SAVE_BLOCK_2_H
+
+struct SaveBlock2
+{
+ u16 playerName[OT_NAME_LENGTH + 1];
+ u32 playerId;
+ u8 filler_14[4];
+ u8 gender;
+ u8 padding[3];
+ // TODO: finish this struct
+};
+
+struct String * FUN_020239A0(struct SaveBlock2 *, u32 heap_id);
+u32 FUN_020239BC(struct SaveBlock2 *);
+u32 FUN_020239CC(struct SaveBlock2 *);
+
+#endif //POKEDIAMOND_SAVE_BLOCK_2_H
diff --git a/include/seals.h b/include/seals.h
new file mode 100644
index 00000000..8fda23b9
--- /dev/null
+++ b/include/seals.h
@@ -0,0 +1,15 @@
+#ifndef POKEDIAMOND_SEALS_H
+#define POKEDIAMOND_SEALS_H
+
+struct SealStruct
+{
+ // TODO: define
+ u8 filler_00[0x38];
+};
+
+struct SealStruct * CreateNewSealsObject(u32 heap_id);
+
+void CopySealsObject(const struct SealStruct *, struct SealStruct *);
+void FUN_02029C74(const u8 *, u8 *);
+
+#endif //POKEDIAMOND_SEALS_H
diff --git a/include/string16.h b/include/string16.h
new file mode 100644
index 00000000..7092c641
--- /dev/null
+++ b/include/string16.h
@@ -0,0 +1,17 @@
+#ifndef POKEDIAMOND_STRING16_H
+#define POKEDIAMOND_STRING16_H
+
+struct String
+{
+ u16 len;
+ u16 pos;
+ u32 magic;
+ u16 unk8;
+ u16 data[1];
+};
+
+struct String * FUN_020219F4(u32 count, u32 heap_id);
+int FUN_02021CE0(struct String *, struct String *);
+int FUN_0206AE00(int x);
+
+#endif //POKEDIAMOND_STRING16_H
diff --git a/include/string_util.h b/include/string_util.h
index 53d4e5f4..e9079229 100644
--- a/include/string_util.h
+++ b/include/string_util.h
@@ -7,6 +7,9 @@
#include "global.h"
+#define EOS 0xFFFF
+#define NON_DIGIT 0xE2
+
enum PrintingMode {
NORMAL,
PAD_SPACE,
diff --git a/include/text.h b/include/text.h
new file mode 100644
index 00000000..cec36a30
--- /dev/null
+++ b/include/text.h
@@ -0,0 +1,6 @@
+#ifndef POKEDIAMOND_TEXT_H
+#define POKEDIAMOND_TEXT_H
+
+void GetSpeciesName(u16 species, u32 heap_id, u16 * dest);
+
+#endif //POKEDIAMOND_TEXT_H
diff --git a/tools/csv2bin/Makefile b/tools/csv2bin/Makefile
new file mode 100644
index 00000000..818e6579
--- /dev/null
+++ b/tools/csv2bin/Makefile
@@ -0,0 +1,13 @@
+CC = gcc
+CFLAGS = -O3
+
+.PHONY: all clean
+
+all: csv2bin $(growth_rates_bin)
+ @:
+
+clean:
+ $(RM) csv2bin
+
+csv2bin: csv2bin.c
+ $(CC) $(CFLAGS) -o $@ $^
diff --git a/files/poketool/personal/growtbl/grow2bin.c b/tools/csv2bin/csv2bin.c
index 5c8b5111..5c8b5111 100644
--- a/files/poketool/personal/growtbl/grow2bin.c
+++ b/tools/csv2bin/csv2bin.c
diff --git a/tools/jsonproc/jsonproc.cpp b/tools/jsonproc/jsonproc.cpp
index f70c9131..bcbe53e4 100644
--- a/tools/jsonproc/jsonproc.cpp
+++ b/tools/jsonproc/jsonproc.cpp
@@ -5,6 +5,7 @@
#include <map>
#include <string>
+#include <sstream>
using std::string; using std::to_string;
#include <inja.hpp>
@@ -53,6 +54,21 @@ int main(int argc, char *argv[])
return minuend - subtrahend;
});
+ env.add_callback("add", 2, [](Arguments& args) {
+ int x = args.at(0)->get<int>();
+ int y = args.at(1)->get<int>();
+
+ return x + y;
+ });
+
+ env.add_callback("setBit", 2, [=](Arguments& args) {
+ string key = args.at(0)->get<string>();
+ unsigned long value = std::stoul(get_custom_var(key));
+ value |= (1 << (args.at(1)->get<int>()));
+ set_custom_var(key, to_string(value));
+ return "";
+ });
+
env.add_callback("setVar", 2, [=](Arguments& args) {
string key = args.at(0)->get<string>();
string value = args.at(1)->get<string>();
@@ -72,6 +88,15 @@ int main(int argc, char *argv[])
return get_custom_var(key);
});
+ env.add_callback("getVarHex", 1, [=](Arguments& args) {
+ string key = args.at(0)->get<string>();
+ unsigned long value = std::stoul(get_custom_var(key));
+ std::stringstream ss;
+ ss << "0x" << std::hex << (value & 0xFFFFFFFFul);
+ string s = ss.str();
+ return s;
+ });
+
env.add_callback("concat", 2, [](Arguments& args) {
string first = args.at(0)->get<string>();
string second = args.at(1)->get<string>();
diff --git a/tools/knarc/Narc.cpp b/tools/knarc/Narc.cpp
index 506e050f..7ccdcf0e 100644
--- a/tools/knarc/Narc.cpp
+++ b/tools/knarc/Narc.cpp
@@ -13,6 +13,8 @@
#include <stack>
#include <string>
#include <vector>
+#include <iostream>
+#include <fnmatch.h>
#if __GNUC__ <= 7
#include <experimental/filesystem>
@@ -24,6 +26,9 @@ namespace fs = std::filesystem;
using namespace std;
+extern bool debug;
+extern bool pack_no_fnt;
+
void Narc::AlignDword(ofstream& ofs, uint8_t paddingChar)
{
if ((ofs.tellp() % 4) != 0)
@@ -104,6 +109,26 @@ NarcError Narc::GetError() const
return error;
}
+class WildcardVector : public vector<string> {
+public:
+ WildcardVector(fs::path fp) {
+ fstream infile;
+ if (!fs::exists(fp)) return;
+ infile.open(fp, ios_base::in);
+ string line;
+ while (getline(infile, line)) {
+ push_back(line);
+ }
+ }
+ bool matches(string fp) {
+ for (string& pattern : *this) {
+ if (fnmatch(pattern.c_str(), fp.c_str(), FNM_PERIOD) == 0)
+ return true;
+ }
+ return false;
+ }
+};
+
bool Narc::Pack(const fs::path& fileName, const fs::path& directory)
{
ofstream ofs(fileName, ios::binary);
@@ -113,14 +138,22 @@ bool Narc::Pack(const fs::path& fileName, const fs::path& directory)
vector<FileAllocationTableEntry> fatEntries;
uint16_t directoryCounter = 1;
+ WildcardVector ignore_patterns(directory / ".knarcignore");
+ ignore_patterns.push_back(".*ignore");
+ ignore_patterns.push_back(".*keep");
+ WildcardVector keep_patterns(directory / ".knarckeep");
+
for (const auto& de : OrderedDirectoryIterator(directory, true))
{
if (is_directory(de))
{
++directoryCounter;
}
- else
+ else if (keep_patterns.matches(de.path().filename()) || !ignore_patterns.matches(de.path().filename()))
{
+ if (debug) {
+ cerr << "DEBUG: adding file " << de.path() << endl;
+ }
fatEntries.push_back(FileAllocationTableEntry
{
.Start = 0x0,
@@ -143,8 +176,8 @@ bool Narc::Pack(const fs::path& fileName, const fs::path& directory)
FileAllocationTable fat
{
- .Id = 0x46415442,
- .ChunkSize = sizeof(FileAllocationTable) + ((uint32_t)fatEntries.size() * sizeof(FileAllocationTableEntry)),
+ .Id = 0x46415442, // BTAF
+ .ChunkSize = static_cast<uint32_t>(sizeof(FileAllocationTable) + ((uint32_t)fatEntries.size() * sizeof(FileAllocationTableEntry))),
.FileCount = static_cast<uint16_t>(fatEntries.size()),
.Reserved = 0x0
};
@@ -156,7 +189,7 @@ bool Narc::Pack(const fs::path& fileName, const fs::path& directory)
for (const auto& de : OrderedDirectoryIterator(directory, true))
{
- if (!subTables.count(de.path().parent_path()))
+ if (!subTables.count(de.path().parent_path()) && (keep_patterns.matches(de.path().filename()) || !ignore_patterns.matches(de.path().filename())))
{
subTables.insert({ de.path().parent_path(), "" });
paths.push_back(de.path().parent_path());
@@ -171,7 +204,7 @@ bool Narc::Pack(const fs::path& fileName, const fs::path& directory)
subTables[de.path().parent_path()] += (0xF000 + directoryCounter) & 0xFF;
subTables[de.path().parent_path()] += (0xF000 + directoryCounter) >> 8;
}
- else
+ else if (keep_patterns.matches(de.path().filename()) || !ignore_patterns.matches(de.path().filename()))
{
subTables[de.path().parent_path()] += static_cast<uint8_t>(de.path().filename().string().size());
subTables[de.path().parent_path()] += de.path().filename().string();
@@ -185,11 +218,11 @@ bool Narc::Pack(const fs::path& fileName, const fs::path& directory)
vector<FileNameTableEntry> fntEntries;
- if (!regex_match(fs::directory_iterator(directory)->path().string(), regex(".*_\\d{4,8}\\.bin")))
+ if (!pack_no_fnt)
{
fntEntries.push_back(
{
- .Offset = (directoryCounter + 1) * sizeof(FileNameTableEntry),
+ .Offset = static_cast<uint32_t>((directoryCounter + 1) * sizeof(FileNameTableEntry)),
.FirstFileId = 0x0,
.Utility = static_cast<uint16_t>(directoryCounter + 1)
});
@@ -198,7 +231,7 @@ bool Narc::Pack(const fs::path& fileName, const fs::path& directory)
{
fntEntries.push_back(
{
- .Offset = fntEntries.back().Offset + subTables[paths[i]].size(),
+ .Offset = static_cast<uint32_t>(fntEntries.back().Offset + subTables[paths[i]].size()),
.FirstFileId = fntEntries.back().FirstFileId,
.Utility = 0x0
});
@@ -231,11 +264,11 @@ bool Narc::Pack(const fs::path& fileName, const fs::path& directory)
FileNameTable fnt
{
- .Id = 0x464E5442,
- .ChunkSize = sizeof(FileNameTable) + (fntEntries.size() * sizeof(FileNameTableEntry))
+ .Id = 0x464E5442, // BTNF
+ .ChunkSize = static_cast<uint32_t>(sizeof(FileNameTable) + (fntEntries.size() * sizeof(FileNameTableEntry)))
};
- if (!regex_match(fs::directory_iterator(directory)->path().string(), regex(".*_\\d{4,8}\\.bin")))
+ if (!pack_no_fnt)
{
for (const auto& subTable : subTables)
{
@@ -250,8 +283,8 @@ bool Narc::Pack(const fs::path& fileName, const fs::path& directory)
FileImages fi
{
- .Id = 0x46494D47,
- .ChunkSize = sizeof(FileImages) + fatEntries.back().End
+ .Id = 0x46494D47, // GMIF
+ .ChunkSize = static_cast<uint32_t>(sizeof(FileImages) + fatEntries.back().End)
};
if ((fi.ChunkSize % 4) != 0)
@@ -261,10 +294,10 @@ bool Narc::Pack(const fs::path& fileName, const fs::path& directory)
Header header
{
- .Id = 0x4352414E,
+ .Id = 0x4352414E, // NARC
.ByteOrderMark = 0xFFFE,
.Version = 0x100,
- .FileSize = sizeof(Header) + fat.ChunkSize + fnt.ChunkSize + fi.ChunkSize,
+ .FileSize = static_cast<uint32_t>(sizeof(Header) + fat.ChunkSize + fnt.ChunkSize + fi.ChunkSize),
.ChunkSize = sizeof(Header),
.ChunkCount = 0x3
};
@@ -284,7 +317,7 @@ bool Narc::Pack(const fs::path& fileName, const fs::path& directory)
ofs.write(reinterpret_cast<char*>(&entry), sizeof(FileNameTableEntry));
}
- if (!regex_match(fs::directory_iterator(directory)->path().string(), regex(".*_\\d{4,8}\\.bin")))
+ if (!pack_no_fnt)
{
for (const auto& path : paths)
{
@@ -303,6 +336,11 @@ bool Narc::Pack(const fs::path& fileName, const fs::path& directory)
continue;
}
+ if (!(keep_patterns.matches(de.path().filename()) || !ignore_patterns.matches(de.path().filename())))
+ {
+ continue;
+ }
+
ifstream ifs(de.path(), ios::binary | ios::ate);
if (!ifs.good())
diff --git a/tools/knarc/Source.cpp b/tools/knarc/Source.cpp
index 51bb5320..21020891 100644
--- a/tools/knarc/Source.cpp
+++ b/tools/knarc/Source.cpp
@@ -6,6 +6,9 @@
using namespace std;
+bool debug = false;
+bool pack_no_fnt = true;
+
void PrintError(NarcError error)
{
switch (error)
@@ -27,20 +30,20 @@ void PrintError(NarcError error)
}
}
+static inline void usage() {
+ cout << "OVERVIEW: Knarc" << endl << endl;
+ cout << "USAGE: knarc [options] -d DIRECTORY [-p TARGET | -u SOURCE]" << endl << endl;
+ cout << "OPTIONS:" << endl;
+ cout << "\t-d DIRECTORY\tDirectory to pack from/unpack to" << endl;
+ cout << "\t-p TARGET\tPack to the target NARC" << endl;
+ cout << "\t-u SOURCE\tUnpack from the source NARC" << endl;
+ cout << "\t-n\tBuild the filename table (default: discards filenames)" << endl;
+ cout << "\t-D/--debug\tPrint additional debug messages" << endl;
+ cout << "\t-h/--help\tPrint this message and exit" << endl;
+}
+
int main(int argc, char* argv[])
{
- if (argc != 5)
- {
- cout << "OVERVIEW: Knarc" << endl << endl;
- cout << "USAGE: knarc [options] <inputs>" << endl << endl;
- cout << "OPTIONS:" << endl;
- cout << "\t-d\tDirectory to pack from/unpack to" << endl;
- cout << "\t-p\tPack" << endl;
- cout << "\t-u\tUnpack" << endl;
-
- return 1;
- }
-
string directory = "";
string fileName = "";
bool pack = false;
@@ -56,6 +59,10 @@ int main(int argc, char* argv[])
return 1;
}
+ if (!directory.empty()) {
+ cerr << "ERROR: Multiple directories specified" << endl;
+ return 1;
+ }
directory = argv[++i];
}
else if (!strcmp(argv[i], "-p"))
@@ -67,6 +74,10 @@ int main(int argc, char* argv[])
return 1;
}
+ if (!fileName.empty()) {
+ cerr << "ERROR: Multiple files specified" << endl;
+ return 1;
+ }
fileName = argv[++i];
pack = true;
}
@@ -79,10 +90,36 @@ int main(int argc, char* argv[])
return 1;
}
+ if (!fileName.empty()) {
+ cerr << "ERROR: Multiple files specified" << endl;
+ return 1;
+ }
fileName = argv[++i];
+ } else if (!strcmp(argv[i], "-D") || !strcmp(argv[i], "--debug")) {
+ debug = true;
+ } else if (!strcmp(argv[i], "-h") || !strcmp(argv[i], "--help")) {
+ usage();
+ return 0;
+ }
+ else if (!strcmp(argv[i], "-n")) {
+ pack_no_fnt = false;
+ }
+ else {
+ usage();
+ cerr << "ERROR: Unrecognized argument: " << argv[i] << endl;
+ return 1;
}
}
+ if (fileName.empty()) {
+ cerr << "ERROR: Missing -u or -p" << endl;
+ return 1;
+ }
+ if (directory.empty()) {
+ cerr << "ERROR: Missing -d" << endl;
+ return 1;
+ }
+
Narc narc;
if (pack)
diff --git a/tools/o2narc/.gitignore b/tools/o2narc/.gitignore
new file mode 100644
index 00000000..3d095ade
--- /dev/null
+++ b/tools/o2narc/.gitignore
@@ -0,0 +1 @@
+o2narc
diff --git a/tools/o2narc/Makefile b/tools/o2narc/Makefile
new file mode 100644
index 00000000..d7e8444e
--- /dev/null
+++ b/tools/o2narc/Makefile
@@ -0,0 +1,11 @@
+CXX := g++
+CXXFLAGS := -O3 -std=c++11
+
+all: o2narc
+ @:
+
+o2narc: o2narc.cpp elf.h
+ $(CXX) $(CXXFLAGS) -o $@ $<
+
+clean:
+ $(RM) o2narc o2narc.exe
diff --git a/tools/o2narc/Narc.h b/tools/o2narc/Narc.h
new file mode 100644
index 00000000..f1b93b56
--- /dev/null
+++ b/tools/o2narc/Narc.h
@@ -0,0 +1,47 @@
+#ifndef GUARD_NARC_H
+#define GUARD_NARC_H
+
+struct NarcHeader
+{
+ uint32_t Id;
+ uint16_t ByteOrderMark;
+ uint16_t Version;
+ uint32_t FileSize;
+ uint16_t ChunkSize;
+ uint16_t ChunkCount;
+};
+
+struct FileAllocationTable
+{
+ uint32_t Id;
+ uint32_t ChunkSize;
+ uint16_t FileCount;
+ uint16_t Reserved;
+};
+
+struct FileAllocationTableEntry
+{
+ uint32_t Start;
+ uint32_t End;
+};
+
+struct FileNameTable
+{
+ uint32_t Id;
+ uint32_t ChunkSize;
+};
+
+struct FileNameTableEntry
+{
+ uint32_t Offset;
+ uint16_t FirstFileId;
+ uint16_t Utility;
+};
+
+struct FileImages
+{
+ uint32_t Id;
+ uint32_t ChunkSize;
+};
+
+#endif //GUARD_NARC_H
diff --git a/tools/o2narc/elf.h b/tools/o2narc/elf.h
new file mode 100644
index 00000000..ad47e94e
--- /dev/null
+++ b/tools/o2narc/elf.h
@@ -0,0 +1,2434 @@
+#ifndef _ELF_H
+#define _ELF_H 1
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Standard ELF types. */
+
+#include <inttypes.h>
+
+__BEGIN_DECLS
+
+/* Type for a 16-bit quantity. */
+typedef uint16_t Elf32_Half;
+typedef uint16_t Elf64_Half;
+
+/* Types for signed and unsigned 32-bit quantities. */
+typedef uint32_t Elf32_Word;
+typedef int32_t Elf32_Sword;
+typedef uint32_t Elf64_Word;
+typedef int32_t Elf64_Sword;
+
+/* Types for signed and unsigned 64-bit quantities. */
+typedef uint64_t Elf32_Xword;
+typedef int64_t Elf32_Sxword;
+typedef uint64_t Elf64_Xword;
+typedef int64_t Elf64_Sxword;
+
+/* Type of addresses. */
+typedef uint32_t Elf32_Addr;
+typedef uint64_t Elf64_Addr;
+
+/* Type of file offsets. */
+typedef uint32_t Elf32_Off;
+typedef uint64_t Elf64_Off;
+
+/* Type for section indices, which are 16-bit quantities. */
+typedef uint16_t Elf32_Section;
+typedef uint16_t Elf64_Section;
+
+/* Type for version symbol information. */
+typedef Elf32_Half Elf32_Versym;
+typedef Elf64_Half Elf64_Versym;
+
+
+/* The ELF file header. This appears at the start of every ELF file. */
+
+#define EI_NIDENT (16)
+
+typedef struct
+{
+ unsigned char e_ident[EI_NIDENT]; /* Magic number and other info */
+ Elf32_Half e_type; /* Object file type */
+ Elf32_Half e_machine; /* Architecture */
+ Elf32_Word e_version; /* Object file version */
+ Elf32_Addr e_entry; /* Entry point virtual address */
+ Elf32_Off e_phoff; /* Program header table file offset */
+ Elf32_Off e_shoff; /* Section header table file offset */
+ Elf32_Word e_flags; /* Processor-specific flags */
+ Elf32_Half e_ehsize; /* ELF header size in bytes */
+ Elf32_Half e_phentsize; /* Program header table entry size */
+ Elf32_Half e_phnum; /* Program header table entry count */
+ Elf32_Half e_shentsize; /* Section header table entry size */
+ Elf32_Half e_shnum; /* Section header table entry count */
+ Elf32_Half e_shstrndx; /* Section header string table index */
+} Elf32_Ehdr;
+
+typedef struct
+{
+ unsigned char e_ident[EI_NIDENT]; /* Magic number and other info */
+ Elf64_Half e_type; /* Object file type */
+ Elf64_Half e_machine; /* Architecture */
+ Elf64_Word e_version; /* Object file version */
+ Elf64_Addr e_entry; /* Entry point virtual address */
+ Elf64_Off e_phoff; /* Program header table file offset */
+ Elf64_Off e_shoff; /* Section header table file offset */
+ Elf64_Word e_flags; /* Processor-specific flags */
+ Elf64_Half e_ehsize; /* ELF header size in bytes */
+ Elf64_Half e_phentsize; /* Program header table entry size */
+ Elf64_Half e_phnum; /* Program header table entry count */
+ Elf64_Half e_shentsize; /* Section header table entry size */
+ Elf64_Half e_shnum; /* Section header table entry count */
+ Elf64_Half e_shstrndx; /* Section header string table index */
+} Elf64_Ehdr;
+
+/* Fields in the e_ident array. The EI_* macros are indices into the
+ array. The macros under each EI_* macro are the values the byte
+ may have. */
+
+#define EI_MAG0 0 /* File identification byte 0 index */
+#define ELFMAG0 0x7f /* Magic number byte 0 */
+
+#define EI_MAG1 1 /* File identification byte 1 index */
+#define ELFMAG1 'E' /* Magic number byte 1 */
+
+#define EI_MAG2 2 /* File identification byte 2 index */
+#define ELFMAG2 'L' /* Magic number byte 2 */
+
+#define EI_MAG3 3 /* File identification byte 3 index */
+#define ELFMAG3 'F' /* Magic number byte 3 */
+
+/* Conglomeration of the identification bytes, for easy testing as a word. */
+#define ELFMAG "\177ELF"
+#define SELFMAG 4
+
+#define EI_CLASS 4 /* File class byte index */
+#define ELFCLASSNONE 0 /* Invalid class */
+#define ELFCLASS32 1 /* 32-bit objects */
+#define ELFCLASS64 2 /* 64-bit objects */
+#define ELFCLASSNUM 3
+
+#define EI_DATA 5 /* Data encoding byte index */
+#define ELFDATANONE 0 /* Invalid data encoding */
+#define ELFDATA2LSB 1 /* 2's complement, little endian */
+#define ELFDATA2MSB 2 /* 2's complement, big endian */
+#define ELFDATANUM 3
+
+#define EI_VERSION 6 /* File version byte index */
+/* Value must be EV_CURRENT */
+
+#define EI_OSABI 7 /* OS ABI identification */
+#define ELFOSABI_NONE 0 /* UNIX System V ABI */
+#define ELFOSABI_SYSV 0 /* Alias. */
+#define ELFOSABI_HPUX 1 /* HP-UX */
+#define ELFOSABI_NETBSD 2 /* NetBSD. */
+#define ELFOSABI_LINUX 3 /* Linux. */
+#define ELFOSABI_SOLARIS 6 /* Sun Solaris. */
+#define ELFOSABI_AIX 7 /* IBM AIX. */
+#define ELFOSABI_IRIX 8 /* SGI Irix. */
+#define ELFOSABI_FREEBSD 9 /* FreeBSD. */
+#define ELFOSABI_TRU64 10 /* Compaq TRU64 UNIX. */
+#define ELFOSABI_MODESTO 11 /* Novell Modesto. */
+#define ELFOSABI_OPENBSD 12 /* OpenBSD. */
+#define ELFOSABI_ARM 97 /* ARM */
+#define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */
+
+#define EI_ABIVERSION 8 /* ABI version */
+
+#define EI_PAD 9 /* Byte index of padding bytes */
+
+/* Legal values for e_type (object file type). */
+
+#define ET_NONE 0 /* No file type */
+#define ET_REL 1 /* Relocatable file */
+#define ET_EXEC 2 /* Executable file */
+#define ET_DYN 3 /* Shared object file */
+#define ET_CORE 4 /* Core file */
+#define ET_NUM 5 /* Number of defined types */
+#define ET_LOOS 0xfe00 /* OS-specific range start */
+#define ET_HIOS 0xfeff /* OS-specific range end */
+#define ET_LOPROC 0xff00 /* Processor-specific range start */
+#define ET_HIPROC 0xffff /* Processor-specific range end */
+
+/* Legal values for e_machine (architecture). */
+
+#define EM_NONE 0 /* No machine */
+#define EM_M32 1 /* AT&T WE 32100 */
+#define EM_SPARC 2 /* SUN SPARC */
+#define EM_386 3 /* Intel 80386 */
+#define EM_68K 4 /* Motorola m68k family */
+#define EM_88K 5 /* Motorola m88k family */
+#define EM_860 7 /* Intel 80860 */
+#define EM_MIPS 8 /* MIPS R3000 big-endian */
+#define EM_S370 9 /* IBM System/370 */
+#define EM_MIPS_RS3_LE 10 /* MIPS R3000 little-endian */
+
+#define EM_PARISC 15 /* HPPA */
+#define EM_VPP500 17 /* Fujitsu VPP500 */
+#define EM_SPARC32PLUS 18 /* Sun's "v8plus" */
+#define EM_960 19 /* Intel 80960 */
+#define EM_PPC 20 /* PowerPC */
+#define EM_PPC64 21 /* PowerPC 64-bit */
+#define EM_S390 22 /* IBM S390 */
+
+#define EM_V800 36 /* NEC V800 series */
+#define EM_FR20 37 /* Fujitsu FR20 */
+#define EM_RH32 38 /* TRW RH-32 */
+#define EM_RCE 39 /* Motorola RCE */
+#define EM_ARM 40 /* ARM */
+#define EM_FAKE_ALPHA 41 /* Digital Alpha */
+#define EM_SH 42 /* Hitachi SH */
+#define EM_SPARCV9 43 /* SPARC v9 64-bit */
+#define EM_TRICORE 44 /* Siemens Tricore */
+#define EM_ARC 45 /* Argonaut RISC Core */
+#define EM_H8_300 46 /* Hitachi H8/300 */
+#define EM_H8_300H 47 /* Hitachi H8/300H */
+#define EM_H8S 48 /* Hitachi H8S */
+#define EM_H8_500 49 /* Hitachi H8/500 */
+#define EM_IA_64 50 /* Intel Merced */
+#define EM_MIPS_X 51 /* Stanford MIPS-X */
+#define EM_COLDFIRE 52 /* Motorola Coldfire */
+#define EM_68HC12 53 /* Motorola M68HC12 */
+#define EM_MMA 54 /* Fujitsu MMA Multimedia Accelerator*/
+#define EM_PCP 55 /* Siemens PCP */
+#define EM_NCPU 56 /* Sony nCPU embeeded RISC */
+#define EM_NDR1 57 /* Denso NDR1 microprocessor */
+#define EM_STARCORE 58 /* Motorola Start*Core processor */
+#define EM_ME16 59 /* Toyota ME16 processor */
+#define EM_ST100 60 /* STMicroelectronic ST100 processor */
+#define EM_TINYJ 61 /* Advanced Logic Corp. Tinyj emb.fam*/
+#define EM_X86_64 62 /* AMD x86-64 architecture */
+#define EM_PDSP 63 /* Sony DSP Processor */
+
+#define EM_FX66 66 /* Siemens FX66 microcontroller */
+#define EM_ST9PLUS 67 /* STMicroelectronics ST9+ 8/16 mc */
+#define EM_ST7 68 /* STmicroelectronics ST7 8 bit mc */
+#define EM_68HC16 69 /* Motorola MC68HC16 microcontroller */
+#define EM_68HC11 70 /* Motorola MC68HC11 microcontroller */
+#define EM_68HC08 71 /* Motorola MC68HC08 microcontroller */
+#define EM_68HC05 72 /* Motorola MC68HC05 microcontroller */
+#define EM_SVX 73 /* Silicon Graphics SVx */
+#define EM_ST19 74 /* STMicroelectronics ST19 8 bit mc */
+#define EM_VAX 75 /* Digital VAX */
+#define EM_CRIS 76 /* Axis Communications 32-bit embedded processor */
+#define EM_JAVELIN 77 /* Infineon Technologies 32-bit embedded processor */
+#define EM_FIREPATH 78 /* Element 14 64-bit DSP Processor */
+#define EM_ZSP 79 /* LSI Logic 16-bit DSP Processor */
+#define EM_MMIX 80 /* Donald Knuth's educational 64-bit processor */
+#define EM_HUANY 81 /* Harvard University machine-independent object files */
+#define EM_PRISM 82 /* SiTera Prism */
+#define EM_AVR 83 /* Atmel AVR 8-bit microcontroller */
+#define EM_FR30 84 /* Fujitsu FR30 */
+#define EM_D10V 85 /* Mitsubishi D10V */
+#define EM_D30V 86 /* Mitsubishi D30V */
+#define EM_V850 87 /* NEC v850 */
+#define EM_M32R 88 /* Mitsubishi M32R */
+#define EM_MN10300 89 /* Matsushita MN10300 */
+#define EM_MN10200 90 /* Matsushita MN10200 */
+#define EM_PJ 91 /* picoJava */
+#define EM_OPENRISC 92 /* OpenRISC 32-bit embedded processor */
+#define EM_ARC_A5 93 /* ARC Cores Tangent-A5 */
+#define EM_XTENSA 94 /* Tensilica Xtensa Architecture */
+#define EM_NUM 95
+
+/* If it is necessary to assign new unofficial EM_* values, please
+ pick large random numbers (0x8523, 0xa7f2, etc.) to minimize the
+ chances of collision with official or non-GNU unofficial values. */
+
+#define EM_ALPHA 0x9026
+
+/* Legal values for e_version (version). */
+
+#define EV_NONE 0 /* Invalid ELF version */
+#define EV_CURRENT 1 /* Current version */
+#define EV_NUM 2
+
+/* Section header. */
+
+typedef struct
+{
+ Elf32_Word sh_name; /* Section name (string tbl index) */
+ Elf32_Word sh_type; /* Section type */
+ Elf32_Word sh_flags; /* Section flags */
+ Elf32_Addr sh_addr; /* Section virtual addr at execution */
+ Elf32_Off sh_offset; /* Section file offset */
+ Elf32_Word sh_size; /* Section size in bytes */
+ Elf32_Word sh_link; /* Link to another section */
+ Elf32_Word sh_info; /* Additional section information */
+ Elf32_Word sh_addralign; /* Section alignment */
+ Elf32_Word sh_entsize; /* Entry size if section holds table */
+} Elf32_Shdr;
+
+typedef struct
+{
+ Elf64_Word sh_name; /* Section name (string tbl index) */
+ Elf64_Word sh_type; /* Section type */
+ Elf64_Xword sh_flags; /* Section flags */
+ Elf64_Addr sh_addr; /* Section virtual addr at execution */
+ Elf64_Off sh_offset; /* Section file offset */
+ Elf64_Xword sh_size; /* Section size in bytes */
+ Elf64_Word sh_link; /* Link to another section */
+ Elf64_Word sh_info; /* Additional section information */
+ Elf64_Xword sh_addralign; /* Section alignment */
+ Elf64_Xword sh_entsize; /* Entry size if section holds table */
+} Elf64_Shdr;
+
+/* Special section indices. */
+
+#define SHN_UNDEF 0 /* Undefined section */
+#define SHN_LORESERVE 0xff00 /* Start of reserved indices */
+#define SHN_LOPROC 0xff00 /* Start of processor-specific */
+#define SHN_HIPROC 0xff1f /* End of processor-specific */
+#define SHN_LOOS 0xff20 /* Start of OS-specific */
+#define SHN_HIOS 0xff3f /* End of OS-specific */
+#define SHN_ABS 0xfff1 /* Associated symbol is absolute */
+#define SHN_COMMON 0xfff2 /* Associated symbol is common */
+#define SHN_XINDEX 0xffff /* Index is in extra table. */
+#define SHN_HIRESERVE 0xffff /* End of reserved indices */
+
+/* Legal values for sh_type (section type). */
+
+#define SHT_NULL 0 /* Section header table entry unused */
+#define SHT_PROGBITS 1 /* Program data */
+#define SHT_SYMTAB 2 /* Symbol table */
+#define SHT_STRTAB 3 /* String table */
+#define SHT_RELA 4 /* Relocation entries with addends */
+#define SHT_HASH 5 /* Symbol hash table */
+#define SHT_DYNAMIC 6 /* Dynamic linking information */
+#define SHT_NOTE 7 /* Notes */
+#define SHT_NOBITS 8 /* Program space with no data (bss) */
+#define SHT_REL 9 /* Relocation entries, no addends */
+#define SHT_SHLIB 10 /* Reserved */
+#define SHT_DYNSYM 11 /* Dynamic linker symbol table */
+#define SHT_INIT_ARRAY 14 /* Array of constructors */
+#define SHT_FINI_ARRAY 15 /* Array of destructors */
+#define SHT_PREINIT_ARRAY 16 /* Array of pre-constructors */
+#define SHT_GROUP 17 /* Section group */
+#define SHT_SYMTAB_SHNDX 18 /* Extended section indeces */
+#define SHT_NUM 19 /* Number of defined types. */
+#define SHT_LOOS 0x60000000 /* Start OS-specific */
+#define SHT_GNU_LIBLIST 0x6ffffff7 /* Prelink library list */
+#define SHT_CHECKSUM 0x6ffffff8 /* Checksum for DSO content. */
+#define SHT_LOSUNW 0x6ffffffa /* Sun-specific low bound. */
+#define SHT_SUNW_move 0x6ffffffa
+#define SHT_SUNW_COMDAT 0x6ffffffb
+#define SHT_SUNW_syminfo 0x6ffffffc
+#define SHT_GNU_verdef 0x6ffffffd /* Version definition section. */
+#define SHT_GNU_verneed 0x6ffffffe /* Version needs section. */
+#define SHT_GNU_versym 0x6fffffff /* Version symbol table. */
+#define SHT_HISUNW 0x6fffffff /* Sun-specific high bound. */
+#define SHT_HIOS 0x6fffffff /* End OS-specific type */
+#define SHT_LOPROC 0x70000000 /* Start of processor-specific */
+#define SHT_HIPROC 0x7fffffff /* End of processor-specific */
+#define SHT_LOUSER 0x80000000 /* Start of application-specific */
+#define SHT_HIUSER 0x8fffffff /* End of application-specific */
+
+/* Legal values for sh_flags (section flags). */
+
+#define SHF_WRITE (1 << 0) /* Writable */
+#define SHF_ALLOC (1 << 1) /* Occupies memory during execution */
+#define SHF_EXECINSTR (1 << 2) /* Executable */
+#define SHF_MERGE (1 << 4) /* Might be merged */
+#define SHF_STRINGS (1 << 5) /* Contains nul-terminated strings */
+#define SHF_INFO_LINK (1 << 6) /* `sh_info' contains SHT index */
+#define SHF_LINK_ORDER (1 << 7) /* Preserve order after combining */
+#define SHF_OS_NONCONFORMING (1 << 8) /* Non-standard OS specific handling
+ required */
+#define SHF_GROUP (1 << 9) /* Section is member of a group. */
+#define SHF_TLS (1 << 10) /* Section hold thread-local data. */
+#define SHF_MASKOS 0x0ff00000 /* OS-specific. */
+#define SHF_MASKPROC 0xf0000000 /* Processor-specific */
+
+/* Section group handling. */
+#define GRP_COMDAT 0x1 /* Mark group as COMDAT. */
+
+/* Symbol table entry. */
+
+typedef struct
+{
+ Elf32_Word st_name; /* Symbol name (string tbl index) */
+ Elf32_Addr st_value; /* Symbol value */
+ Elf32_Word st_size; /* Symbol size */
+ unsigned char st_info; /* Symbol type and binding */
+ unsigned char st_other; /* Symbol visibility */
+ Elf32_Section st_shndx; /* Section index */
+} Elf32_Sym;
+
+typedef struct
+{
+ Elf64_Word st_name; /* Symbol name (string tbl index) */
+ unsigned char st_info; /* Symbol type and binding */
+ unsigned char st_other; /* Symbol visibility */
+ Elf64_Section st_shndx; /* Section index */
+ Elf64_Addr st_value; /* Symbol value */
+ Elf64_Xword st_size; /* Symbol size */
+} Elf64_Sym;
+
+/* The syminfo section if available contains additional information about
+ every dynamic symbol. */
+
+typedef struct
+{
+ Elf32_Half si_boundto; /* Direct bindings, symbol bound to */
+ Elf32_Half si_flags; /* Per symbol flags */
+} Elf32_Syminfo;
+
+typedef struct
+{
+ Elf64_Half si_boundto; /* Direct bindings, symbol bound to */
+ Elf64_Half si_flags; /* Per symbol flags */
+} Elf64_Syminfo;
+
+/* Possible values for si_boundto. */
+#define SYMINFO_BT_SELF 0xffff /* Symbol bound to self */
+#define SYMINFO_BT_PARENT 0xfffe /* Symbol bound to parent */
+#define SYMINFO_BT_LOWRESERVE 0xff00 /* Beginning of reserved entries */
+
+/* Possible bitmasks for si_flags. */
+#define SYMINFO_FLG_DIRECT 0x0001 /* Direct bound symbol */
+#define SYMINFO_FLG_PASSTHRU 0x0002 /* Pass-thru symbol for translator */
+#define SYMINFO_FLG_COPY 0x0004 /* Symbol is a copy-reloc */
+#define SYMINFO_FLG_LAZYLOAD 0x0008 /* Symbol bound to object to be lazy
+ loaded */
+/* Syminfo version values. */
+#define SYMINFO_NONE 0
+#define SYMINFO_CURRENT 1
+#define SYMINFO_NUM 2
+
+
+/* How to extract and insert information held in the st_info field. */
+
+#define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4)
+#define ELF32_ST_TYPE(val) ((val) & 0xf)
+#define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf))
+
+/* Both Elf32_Sym and Elf64_Sym use the same one-byte st_info field. */
+#define ELF64_ST_BIND(val) ELF32_ST_BIND (val)
+#define ELF64_ST_TYPE(val) ELF32_ST_TYPE (val)
+#define ELF64_ST_INFO(bind, type) ELF32_ST_INFO ((bind), (type))
+
+/* Legal values for ST_BIND subfield of st_info (symbol binding). */
+
+#define STB_LOCAL 0 /* Local symbol */
+#define STB_GLOBAL 1 /* Global symbol */
+#define STB_WEAK 2 /* Weak symbol */
+#define STB_NUM 3 /* Number of defined types. */
+#define STB_LOOS 10 /* Start of OS-specific */
+#define STB_HIOS 12 /* End of OS-specific */
+#define STB_LOPROC 13 /* Start of processor-specific */
+#define STB_HIPROC 15 /* End of processor-specific */
+
+/* Legal values for ST_TYPE subfield of st_info (symbol type). */
+
+#define STT_NOTYPE 0 /* Symbol type is unspecified */
+#define STT_OBJECT 1 /* Symbol is a data object */
+#define STT_FUNC 2 /* Symbol is a code object */
+#define STT_SECTION 3 /* Symbol associated with a section */
+#define STT_FILE 4 /* Symbol's name is file name */
+#define STT_COMMON 5 /* Symbol is a common data object */
+#define STT_TLS 6 /* Symbol is thread-local data object*/
+#define STT_NUM 7 /* Number of defined types. */
+#define STT_LOOS 10 /* Start of OS-specific */
+#define STT_HIOS 12 /* End of OS-specific */
+#define STT_LOPROC 13 /* Start of processor-specific */
+#define STT_HIPROC 15 /* End of processor-specific */
+
+
+/* Symbol table indices are found in the hash buckets and chain table
+ of a symbol hash table section. This special index value indicates
+ the end of a chain, meaning no further symbols are found in that bucket. */
+
+#define STN_UNDEF 0 /* End of a chain. */
+
+
+/* How to extract and insert information held in the st_other field. */
+
+#define ELF32_ST_VISIBILITY(o) ((o) & 0x03)
+
+/* For ELF64 the definitions are the same. */
+#define ELF64_ST_VISIBILITY(o) ELF32_ST_VISIBILITY (o)
+
+/* Symbol visibility specification encoded in the st_other field. */
+#define STV_DEFAULT 0 /* Default symbol visibility rules */
+#define STV_INTERNAL 1 /* Processor specific hidden class */
+#define STV_HIDDEN 2 /* Sym unavailable in other modules */
+#define STV_PROTECTED 3 /* Not preemptible, not exported */
+
+
+/* Relocation table entry without addend (in section of type SHT_REL). */
+
+typedef struct
+{
+ Elf32_Addr r_offset; /* Address */
+ Elf32_Word r_info; /* Relocation type and symbol index */
+} Elf32_Rel;
+
+/* I have seen two different definitions of the Elf64_Rel and
+ Elf64_Rela structures, so we'll leave them out until Novell (or
+ whoever) gets their act together. */
+/* The following, at least, is used on Sparc v9, MIPS, and Alpha. */
+
+typedef struct
+{
+ Elf64_Addr r_offset; /* Address */
+ Elf64_Xword r_info; /* Relocation type and symbol index */
+} Elf64_Rel;
+
+/* Relocation table entry with addend (in section of type SHT_RELA). */
+
+typedef struct
+{
+ Elf32_Addr r_offset; /* Address */
+ Elf32_Word r_info; /* Relocation type and symbol index */
+ Elf32_Sword r_addend; /* Addend */
+} Elf32_Rela;
+
+typedef struct
+{
+ Elf64_Addr r_offset; /* Address */
+ Elf64_Xword r_info; /* Relocation type and symbol index */
+ Elf64_Sxword r_addend; /* Addend */
+} Elf64_Rela;
+
+/* How to extract and insert information held in the r_info field. */
+
+#define ELF32_R_SYM(val) ((val) >> 8)
+#define ELF32_R_TYPE(val) ((val) & 0xff)
+#define ELF32_R_INFO(sym, type) (((sym) << 8) + ((type) & 0xff))
+
+#define ELF64_R_SYM(i) ((i) >> 32)
+#define ELF64_R_TYPE(i) ((i) & 0xffffffff)
+#define ELF64_R_INFO(sym, type) ((((Elf64_Xword) (sym)) << 32) + (type))
+
+/* Program segment header. */
+
+typedef struct
+{
+ Elf32_Word p_type; /* Segment type */
+ Elf32_Off p_offset; /* Segment file offset */
+ Elf32_Addr p_vaddr; /* Segment virtual address */
+ Elf32_Addr p_paddr; /* Segment physical address */
+ Elf32_Word p_filesz; /* Segment size in file */
+ Elf32_Word p_memsz; /* Segment size in memory */
+ Elf32_Word p_flags; /* Segment flags */
+ Elf32_Word p_align; /* Segment alignment */
+} Elf32_Phdr;
+
+typedef struct
+{
+ Elf64_Word p_type; /* Segment type */
+ Elf64_Word p_flags; /* Segment flags */
+ Elf64_Off p_offset; /* Segment file offset */
+ Elf64_Addr p_vaddr; /* Segment virtual address */
+ Elf64_Addr p_paddr; /* Segment physical address */
+ Elf64_Xword p_filesz; /* Segment size in file */
+ Elf64_Xword p_memsz; /* Segment size in memory */
+ Elf64_Xword p_align; /* Segment alignment */
+} Elf64_Phdr;
+
+/* Legal values for p_type (segment type). */
+
+#define PT_NULL 0 /* Program header table entry unused */
+#define PT_LOAD 1 /* Loadable program segment */
+#define PT_DYNAMIC 2 /* Dynamic linking information */
+#define PT_INTERP 3 /* Program interpreter */
+#define PT_NOTE 4 /* Auxiliary information */
+#define PT_SHLIB 5 /* Reserved */
+#define PT_PHDR 6 /* Entry for header table itself */
+#define PT_TLS 7 /* Thread-local storage segment */
+#define PT_NUM 8 /* Number of defined types */
+#define PT_LOOS 0x60000000 /* Start of OS-specific */
+#define PT_GNU_EH_FRAME 0x6474e550 /* GCC .eh_frame_hdr segment */
+#define PT_GNU_STACK 0x6474e551 /* Indicates stack executability */
+#define PT_LOSUNW 0x6ffffffa
+#define PT_SUNWBSS 0x6ffffffa /* Sun Specific segment */
+#define PT_SUNWSTACK 0x6ffffffb /* Stack segment */
+#define PT_HISUNW 0x6fffffff
+#define PT_HIOS 0x6fffffff /* End of OS-specific */
+#define PT_LOPROC 0x70000000 /* Start of processor-specific */
+#define PT_HIPROC 0x7fffffff /* End of processor-specific */
+
+/* Legal values for p_flags (segment flags). */
+
+#define PF_X (1 << 0) /* Segment is executable */
+#define PF_W (1 << 1) /* Segment is writable */
+#define PF_R (1 << 2) /* Segment is readable */
+#define PF_MASKOS 0x0ff00000 /* OS-specific */
+#define PF_MASKPROC 0xf0000000 /* Processor-specific */
+
+/* Legal values for note segment descriptor types for core files. */
+
+#define NT_PRSTATUS 1 /* Contains copy of prstatus struct */
+#define NT_FPREGSET 2 /* Contains copy of fpregset struct */
+#define NT_PRPSINFO 3 /* Contains copy of prpsinfo struct */
+#define NT_PRXREG 4 /* Contains copy of prxregset struct */
+#define NT_TASKSTRUCT 4 /* Contains copy of task structure */
+#define NT_PLATFORM 5 /* String from sysinfo(SI_PLATFORM) */
+#define NT_AUXV 6 /* Contains copy of auxv array */
+#define NT_GWINDOWS 7 /* Contains copy of gwindows struct */
+#define NT_ASRS 8 /* Contains copy of asrset struct */
+#define NT_PSTATUS 10 /* Contains copy of pstatus struct */
+#define NT_PSINFO 13 /* Contains copy of psinfo struct */
+#define NT_PRCRED 14 /* Contains copy of prcred struct */
+#define NT_UTSNAME 15 /* Contains copy of utsname struct */
+#define NT_LWPSTATUS 16 /* Contains copy of lwpstatus struct */
+#define NT_LWPSINFO 17 /* Contains copy of lwpinfo struct */
+#define NT_PRFPXREG 20 /* Contains copy of fprxregset struct*/
+
+/* Legal values for the note segment descriptor types for object files. */
+
+#define NT_VERSION 1 /* Contains a version string. */
+
+
+/* Dynamic section entry. */
+
+typedef struct
+{
+ Elf32_Sword d_tag; /* Dynamic entry type */
+ union
+ {
+ Elf32_Word d_val; /* Integer value */
+ Elf32_Addr d_ptr; /* Address value */
+ } d_un;
+} Elf32_Dyn;
+
+typedef struct
+{
+ Elf64_Sxword d_tag; /* Dynamic entry type */
+ union
+ {
+ Elf64_Xword d_val; /* Integer value */
+ Elf64_Addr d_ptr; /* Address value */
+ } d_un;
+} Elf64_Dyn;
+
+/* Legal values for d_tag (dynamic entry type). */
+
+#define DT_NULL 0 /* Marks end of dynamic section */
+#define DT_NEEDED 1 /* Name of needed library */
+#define DT_PLTRELSZ 2 /* Size in bytes of PLT relocs */
+#define DT_PLTGOT 3 /* Processor defined value */
+#define DT_HASH 4 /* Address of symbol hash table */
+#define DT_STRTAB 5 /* Address of string table */
+#define DT_SYMTAB 6 /* Address of symbol table */
+#define DT_RELA 7 /* Address of Rela relocs */
+#define DT_RELASZ 8 /* Total size of Rela relocs */
+#define DT_RELAENT 9 /* Size of one Rela reloc */
+#define DT_STRSZ 10 /* Size of string table */
+#define DT_SYMENT 11 /* Size of one symbol table entry */
+#define DT_INIT 12 /* Address of init function */
+#define DT_FINI 13 /* Address of termination function */
+#define DT_SONAME 14 /* Name of shared object */
+#define DT_RPATH 15 /* Library search path (deprecated) */
+#define DT_SYMBOLIC 16 /* Start symbol search here */
+#define DT_REL 17 /* Address of Rel relocs */
+#define DT_RELSZ 18 /* Total size of Rel relocs */
+#define DT_RELENT 19 /* Size of one Rel reloc */
+#define DT_PLTREL 20 /* Type of reloc in PLT */
+#define DT_DEBUG 21 /* For debugging; unspecified */
+#define DT_TEXTREL 22 /* Reloc might modify .text */
+#define DT_JMPREL 23 /* Address of PLT relocs */
+#define DT_BIND_NOW 24 /* Process relocations of object */
+#define DT_INIT_ARRAY 25 /* Array with addresses of init fct */
+#define DT_FINI_ARRAY 26 /* Array with addresses of fini fct */
+#define DT_INIT_ARRAYSZ 27 /* Size in bytes of DT_INIT_ARRAY */
+#define DT_FINI_ARRAYSZ 28 /* Size in bytes of DT_FINI_ARRAY */
+#define DT_RUNPATH 29 /* Library search path */
+#define DT_FLAGS 30 /* Flags for the object being loaded */
+#define DT_ENCODING 32 /* Start of encoded range */
+#define DT_PREINIT_ARRAY 32 /* Array with addresses of preinit fct*/
+#define DT_PREINIT_ARRAYSZ 33 /* size in bytes of DT_PREINIT_ARRAY */
+#define DT_NUM 34 /* Number used */
+#define DT_LOOS 0x6000000d /* Start of OS-specific */
+#define DT_HIOS 0x6ffff000 /* End of OS-specific */
+#define DT_LOPROC 0x70000000 /* Start of processor-specific */
+#define DT_HIPROC 0x7fffffff /* End of processor-specific */
+#define DT_PROCNUM DT_MIPS_NUM /* Most used by any processor */
+
+/* DT_* entries which fall between DT_VALRNGHI & DT_VALRNGLO use the
+ Dyn.d_un.d_val field of the Elf*_Dyn structure. This follows Sun's
+ approach. */
+#define DT_VALRNGLO 0x6ffffd00
+#define DT_GNU_PRELINKED 0x6ffffdf5 /* Prelinking timestamp */
+#define DT_GNU_CONFLICTSZ 0x6ffffdf6 /* Size of conflict section */
+#define DT_GNU_LIBLISTSZ 0x6ffffdf7 /* Size of library list */
+#define DT_CHECKSUM 0x6ffffdf8
+#define DT_PLTPADSZ 0x6ffffdf9
+#define DT_MOVEENT 0x6ffffdfa
+#define DT_MOVESZ 0x6ffffdfb
+#define DT_FEATURE_1 0x6ffffdfc /* Feature selection (DTF_*). */
+#define DT_POSFLAG_1 0x6ffffdfd /* Flags for DT_* entries, effecting
+ the following DT_* entry. */
+#define DT_SYMINSZ 0x6ffffdfe /* Size of syminfo table (in bytes) */
+#define DT_SYMINENT 0x6ffffdff /* Entry size of syminfo */
+#define DT_VALRNGHI 0x6ffffdff
+#define DT_VALTAGIDX(tag) (DT_VALRNGHI - (tag)) /* Reverse order! */
+#define DT_VALNUM 12
+
+/* DT_* entries which fall between DT_ADDRRNGHI & DT_ADDRRNGLO use the
+ Dyn.d_un.d_ptr field of the Elf*_Dyn structure.
+
+ If any adjustment is made to the ELF object after it has been
+ built these entries will need to be adjusted. */
+#define DT_ADDRRNGLO 0x6ffffe00
+#define DT_GNU_CONFLICT 0x6ffffef8 /* Start of conflict section */
+#define DT_GNU_LIBLIST 0x6ffffef9 /* Library list */
+#define DT_CONFIG 0x6ffffefa /* Configuration information. */
+#define DT_DEPAUDIT 0x6ffffefb /* Dependency auditing. */
+#define DT_AUDIT 0x6ffffefc /* Object auditing. */
+#define DT_PLTPAD 0x6ffffefd /* PLT padding. */
+#define DT_MOVETAB 0x6ffffefe /* Move table. */
+#define DT_SYMINFO 0x6ffffeff /* Syminfo table. */
+#define DT_ADDRRNGHI 0x6ffffeff
+#define DT_ADDRTAGIDX(tag) (DT_ADDRRNGHI - (tag)) /* Reverse order! */
+#define DT_ADDRNUM 10
+
+/* The versioning entry types. The next are defined as part of the
+ GNU extension. */
+#define DT_VERSYM 0x6ffffff0
+
+#define DT_RELACOUNT 0x6ffffff9
+#define DT_RELCOUNT 0x6ffffffa
+
+/* These were chosen by Sun. */
+#define DT_FLAGS_1 0x6ffffffb /* State flags, see DF_1_* below. */
+#define DT_VERDEF 0x6ffffffc /* Address of version definition
+ table */
+#define DT_VERDEFNUM 0x6ffffffd /* Number of version definitions */
+#define DT_VERNEED 0x6ffffffe /* Address of table with needed
+ versions */
+#define DT_VERNEEDNUM 0x6fffffff /* Number of needed versions */
+#define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag)) /* Reverse order! */
+#define DT_VERSIONTAGNUM 16
+
+/* Sun added these machine-independent extensions in the "processor-specific"
+ range. Be compatible. */
+#define DT_AUXILIARY 0x7ffffffd /* Shared object to load before self */
+#define DT_FILTER 0x7fffffff /* Shared object to get values from */
+#define DT_EXTRATAGIDX(tag) ((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1)
+#define DT_EXTRANUM 3
+
+/* Values of `d_un.d_val' in the DT_FLAGS entry. */
+#define DF_ORIGIN 0x00000001 /* Object may use DF_ORIGIN */
+#define DF_SYMBOLIC 0x00000002 /* Symbol resolutions starts here */
+#define DF_TEXTREL 0x00000004 /* Object contains text relocations */
+#define DF_BIND_NOW 0x00000008 /* No lazy binding for this object */
+#define DF_STATIC_TLS 0x00000010 /* Module uses the static TLS model */
+
+/* State flags selectable in the `d_un.d_val' element of the DT_FLAGS_1
+ entry in the dynamic section. */
+#define DF_1_NOW 0x00000001 /* Set RTLD_NOW for this object. */
+#define DF_1_GLOBAL 0x00000002 /* Set RTLD_GLOBAL for this object. */
+#define DF_1_GROUP 0x00000004 /* Set RTLD_GROUP for this object. */
+#define DF_1_NODELETE 0x00000008 /* Set RTLD_NODELETE for this object.*/
+#define DF_1_LOADFLTR 0x00000010 /* Trigger filtee loading at runtime.*/
+#define DF_1_INITFIRST 0x00000020 /* Set RTLD_INITFIRST for this object*/
+#define DF_1_NOOPEN 0x00000040 /* Set RTLD_NOOPEN for this object. */
+#define DF_1_ORIGIN 0x00000080 /* $ORIGIN must be handled. */
+#define DF_1_DIRECT 0x00000100 /* Direct binding enabled. */
+#define DF_1_TRANS 0x00000200
+#define DF_1_INTERPOSE 0x00000400 /* Object is used to interpose. */
+#define DF_1_NODEFLIB 0x00000800 /* Ignore default lib search path. */
+#define DF_1_NODUMP 0x00001000 /* Object can't be dldump'ed. */
+#define DF_1_CONFALT 0x00002000 /* Configuration alternative created.*/
+#define DF_1_ENDFILTEE 0x00004000 /* Filtee terminates filters search. */
+#define DF_1_DISPRELDNE 0x00008000 /* Disp reloc applied at build time. */
+#define DF_1_DISPRELPND 0x00010000 /* Disp reloc applied at run-time. */
+
+/* Flags for the feature selection in DT_FEATURE_1. */
+#define DTF_1_PARINIT 0x00000001
+#define DTF_1_CONFEXP 0x00000002
+
+/* Flags in the DT_POSFLAG_1 entry effecting only the next DT_* entry. */
+#define DF_P1_LAZYLOAD 0x00000001 /* Lazyload following object. */
+#define DF_P1_GROUPPERM 0x00000002 /* Symbols from next object are not
+ generally available. */
+
+/* Version definition sections. */
+
+typedef struct
+{
+ Elf32_Half vd_version; /* Version revision */
+ Elf32_Half vd_flags; /* Version information */
+ Elf32_Half vd_ndx; /* Version Index */
+ Elf32_Half vd_cnt; /* Number of associated aux entries */
+ Elf32_Word vd_hash; /* Version name hash value */
+ Elf32_Word vd_aux; /* Offset in bytes to verdaux array */
+ Elf32_Word vd_next; /* Offset in bytes to next verdef
+ entry */
+} Elf32_Verdef;
+
+typedef struct
+{
+ Elf64_Half vd_version; /* Version revision */
+ Elf64_Half vd_flags; /* Version information */
+ Elf64_Half vd_ndx; /* Version Index */
+ Elf64_Half vd_cnt; /* Number of associated aux entries */
+ Elf64_Word vd_hash; /* Version name hash value */
+ Elf64_Word vd_aux; /* Offset in bytes to verdaux array */
+ Elf64_Word vd_next; /* Offset in bytes to next verdef
+ entry */
+} Elf64_Verdef;
+
+
+/* Legal values for vd_version (version revision). */
+#define VER_DEF_NONE 0 /* No version */
+#define VER_DEF_CURRENT 1 /* Current version */
+#define VER_DEF_NUM 2 /* Given version number */
+
+/* Legal values for vd_flags (version information flags). */
+#define VER_FLG_BASE 0x1 /* Version definition of file itself */
+#define VER_FLG_WEAK 0x2 /* Weak version identifier */
+
+/* Versym symbol index values. */
+#define VER_NDX_LOCAL 0 /* Symbol is local. */
+#define VER_NDX_GLOBAL 1 /* Symbol is global. */
+#define VER_NDX_LORESERVE 0xff00 /* Beginning of reserved entries. */
+#define VER_NDX_ELIMINATE 0xff01 /* Symbol is to be eliminated. */
+
+/* Auxialiary version information. */
+
+typedef struct
+{
+ Elf32_Word vda_name; /* Version or dependency names */
+ Elf32_Word vda_next; /* Offset in bytes to next verdaux
+ entry */
+} Elf32_Verdaux;
+
+typedef struct
+{
+ Elf64_Word vda_name; /* Version or dependency names */
+ Elf64_Word vda_next; /* Offset in bytes to next verdaux
+ entry */
+} Elf64_Verdaux;
+
+
+/* Version dependency section. */
+
+typedef struct
+{
+ Elf32_Half vn_version; /* Version of structure */
+ Elf32_Half vn_cnt; /* Number of associated aux entries */
+ Elf32_Word vn_file; /* Offset of filename for this
+ dependency */
+ Elf32_Word vn_aux; /* Offset in bytes to vernaux array */
+ Elf32_Word vn_next; /* Offset in bytes to next verneed
+ entry */
+} Elf32_Verneed;
+
+typedef struct
+{
+ Elf64_Half vn_version; /* Version of structure */
+ Elf64_Half vn_cnt; /* Number of associated aux entries */
+ Elf64_Word vn_file; /* Offset of filename for this
+ dependency */
+ Elf64_Word vn_aux; /* Offset in bytes to vernaux array */
+ Elf64_Word vn_next; /* Offset in bytes to next verneed
+ entry */
+} Elf64_Verneed;
+
+
+/* Legal values for vn_version (version revision). */
+#define VER_NEED_NONE 0 /* No version */
+#define VER_NEED_CURRENT 1 /* Current version */
+#define VER_NEED_NUM 2 /* Given version number */
+
+/* Auxiliary needed version information. */
+
+typedef struct
+{
+ Elf32_Word vna_hash; /* Hash value of dependency name */
+ Elf32_Half vna_flags; /* Dependency specific information */
+ Elf32_Half vna_other; /* Unused */
+ Elf32_Word vna_name; /* Dependency name string offset */
+ Elf32_Word vna_next; /* Offset in bytes to next vernaux
+ entry */
+} Elf32_Vernaux;
+
+typedef struct
+{
+ Elf64_Word vna_hash; /* Hash value of dependency name */
+ Elf64_Half vna_flags; /* Dependency specific information */
+ Elf64_Half vna_other; /* Unused */
+ Elf64_Word vna_name; /* Dependency name string offset */
+ Elf64_Word vna_next; /* Offset in bytes to next vernaux
+ entry */
+} Elf64_Vernaux;
+
+
+/* Legal values for vna_flags. */
+#define VER_FLG_WEAK 0x2 /* Weak version identifier */
+
+
+/* Auxiliary vector. */
+
+/* This vector is normally only used by the program interpreter. The
+ usual definition in an ABI supplement uses the name auxv_t. The
+ vector is not usually defined in a standard <elf.h> file, but it
+ can't hurt. We rename it to avoid conflicts. The sizes of these
+ types are an arrangement between the exec server and the program
+ interpreter, so we don't fully specify them here. */
+
+typedef struct
+{
+ int a_type; /* Entry type */
+ union
+ {
+ long int a_val; /* Integer value */
+ void *a_ptr; /* Pointer value */
+ void (*a_fcn)(void); /* Function pointer value */
+ } a_un;
+} Elf32_auxv_t;
+
+typedef struct
+{
+ long int a_type; /* Entry type */
+ union
+ {
+ long int a_val; /* Integer value */
+ void *a_ptr; /* Pointer value */
+ void (*a_fcn)(void); /* Function pointer value */
+ } a_un;
+} Elf64_auxv_t;
+
+/* Legal values for a_type (entry type). */
+
+#define AT_NULL 0 /* End of vector */
+#define AT_IGNORE 1 /* Entry should be ignored */
+#define AT_EXECFD 2 /* File descriptor of program */
+#define AT_PHDR 3 /* Program headers for program */
+#define AT_PHENT 4 /* Size of program header entry */
+#define AT_PHNUM 5 /* Number of program headers */
+#define AT_PAGESZ 6 /* System page size */
+#define AT_BASE 7 /* Base address of interpreter */
+#define AT_FLAGS 8 /* Flags */
+#define AT_ENTRY 9 /* Entry point of program */
+#define AT_NOTELF 10 /* Program is not ELF */
+#define AT_UID 11 /* Real uid */
+#define AT_EUID 12 /* Effective uid */
+#define AT_GID 13 /* Real gid */
+#define AT_EGID 14 /* Effective gid */
+#define AT_CLKTCK 17 /* Frequency of times() */
+
+/* Some more special a_type values describing the hardware. */
+#define AT_PLATFORM 15 /* String identifying platform. */
+#define AT_HWCAP 16 /* Machine dependent hints about
+ processor capabilities. */
+
+/* This entry gives some information about the FPU initialization
+ performed by the kernel. */
+#define AT_FPUCW 18 /* Used FPU control word. */
+
+/* Cache block sizes. */
+#define AT_DCACHEBSIZE 19 /* Data cache block size. */
+#define AT_ICACHEBSIZE 20 /* Instruction cache block size. */
+#define AT_UCACHEBSIZE 21 /* Unified cache block size. */
+
+/* A special ignored value for PPC, used by the kernel to control the
+ interpretation of the AUXV. Must be > 16. */
+#define AT_IGNOREPPC 22 /* Entry should be ignored. */
+
+#define AT_SECURE 23 /* Boolean, was exec setuid-like? */
+
+/* Pointer to the global system page used for system calls and other
+ nice things. */
+#define AT_SYSINFO 32
+#define AT_SYSINFO_EHDR 33
+
+
+/* Note section contents. Each entry in the note section begins with
+ a header of a fixed form. */
+
+typedef struct
+{
+ Elf32_Word n_namesz; /* Length of the note's name. */
+ Elf32_Word n_descsz; /* Length of the note's descriptor. */
+ Elf32_Word n_type; /* Type of the note. */
+} Elf32_Nhdr;
+
+typedef struct
+{
+ Elf64_Word n_namesz; /* Length of the note's name. */
+ Elf64_Word n_descsz; /* Length of the note's descriptor. */
+ Elf64_Word n_type; /* Type of the note. */
+} Elf64_Nhdr;
+
+/* Known names of notes. */
+
+/* Solaris entries in the note section have this name. */
+#define ELF_NOTE_SOLARIS "SUNW Solaris"
+
+/* Note entries for GNU systems have this name. */
+#define ELF_NOTE_GNU "GNU"
+
+
+/* Defined types of notes for Solaris. */
+
+/* Value of descriptor (one word) is desired pagesize for the binary. */
+#define ELF_NOTE_PAGESIZE_HINT 1
+
+
+/* Defined note types for GNU systems. */
+
+/* ABI information. The descriptor consists of words:
+ word 0: OS descriptor
+ word 1: major version of the ABI
+ word 2: minor version of the ABI
+ word 3: subminor version of the ABI
+*/
+#define ELF_NOTE_ABI 1
+
+/* Known OSes. These value can appear in word 0 of an ELF_NOTE_ABI
+ note section entry. */
+#define ELF_NOTE_OS_LINUX 0
+#define ELF_NOTE_OS_GNU 1
+#define ELF_NOTE_OS_SOLARIS2 2
+#define ELF_NOTE_OS_FREEBSD 3
+
+
+/* Move records. */
+typedef struct
+{
+ Elf32_Xword m_value; /* Symbol value. */
+ Elf32_Word m_info; /* Size and index. */
+ Elf32_Word m_poffset; /* Symbol offset. */
+ Elf32_Half m_repeat; /* Repeat count. */
+ Elf32_Half m_stride; /* Stride info. */
+} Elf32_Move;
+
+typedef struct
+{
+ Elf64_Xword m_value; /* Symbol value. */
+ Elf64_Xword m_info; /* Size and index. */
+ Elf64_Xword m_poffset; /* Symbol offset. */
+ Elf64_Half m_repeat; /* Repeat count. */
+ Elf64_Half m_stride; /* Stride info. */
+} Elf64_Move;
+
+/* Macro to construct move records. */
+#define ELF32_M_SYM(info) ((info) >> 8)
+#define ELF32_M_SIZE(info) ((unsigned char) (info))
+#define ELF32_M_INFO(sym, size) (((sym) << 8) + (unsigned char) (size))
+
+#define ELF64_M_SYM(info) ELF32_M_SYM (info)
+#define ELF64_M_SIZE(info) ELF32_M_SIZE (info)
+#define ELF64_M_INFO(sym, size) ELF32_M_INFO (sym, size)
+
+
+/* Motorola 68k specific definitions. */
+
+/* Values for Elf32_Ehdr.e_flags. */
+#define EF_CPU32 0x00810000
+
+/* m68k relocs. */
+
+#define R_68K_NONE 0 /* No reloc */
+#define R_68K_32 1 /* Direct 32 bit */
+#define R_68K_16 2 /* Direct 16 bit */
+#define R_68K_8 3 /* Direct 8 bit */
+#define R_68K_PC32 4 /* PC relative 32 bit */
+#define R_68K_PC16 5 /* PC relative 16 bit */
+#define R_68K_PC8 6 /* PC relative 8 bit */
+#define R_68K_GOT32 7 /* 32 bit PC relative GOT entry */
+#define R_68K_GOT16 8 /* 16 bit PC relative GOT entry */
+#define R_68K_GOT8 9 /* 8 bit PC relative GOT entry */
+#define R_68K_GOT32O 10 /* 32 bit GOT offset */
+#define R_68K_GOT16O 11 /* 16 bit GOT offset */
+#define R_68K_GOT8O 12 /* 8 bit GOT offset */
+#define R_68K_PLT32 13 /* 32 bit PC relative PLT address */
+#define R_68K_PLT16 14 /* 16 bit PC relative PLT address */
+#define R_68K_PLT8 15 /* 8 bit PC relative PLT address */
+#define R_68K_PLT32O 16 /* 32 bit PLT offset */
+#define R_68K_PLT16O 17 /* 16 bit PLT offset */
+#define R_68K_PLT8O 18 /* 8 bit PLT offset */
+#define R_68K_COPY 19 /* Copy symbol at runtime */
+#define R_68K_GLOB_DAT 20 /* Create GOT entry */
+#define R_68K_JMP_SLOT 21 /* Create PLT entry */
+#define R_68K_RELATIVE 22 /* Adjust by program base */
+/* Keep this the last entry. */
+#define R_68K_NUM 23
+
+/* Intel 80386 specific definitions. */
+
+/* i386 relocs. */
+
+#define R_386_NONE 0 /* No reloc */
+#define R_386_32 1 /* Direct 32 bit */
+#define R_386_PC32 2 /* PC relative 32 bit */
+#define R_386_GOT32 3 /* 32 bit GOT entry */
+#define R_386_PLT32 4 /* 32 bit PLT address */
+#define R_386_COPY 5 /* Copy symbol at runtime */
+#define R_386_GLOB_DAT 6 /* Create GOT entry */
+#define R_386_JMP_SLOT 7 /* Create PLT entry */
+#define R_386_RELATIVE 8 /* Adjust by program base */
+#define R_386_GOTOFF 9 /* 32 bit offset to GOT */
+#define R_386_GOTPC 10 /* 32 bit PC relative offset to GOT */
+#define R_386_32PLT 11
+#define R_386_TLS_TPOFF 14 /* Offset in static TLS block */
+#define R_386_TLS_IE 15 /* Address of GOT entry for static TLS
+ block offset */
+#define R_386_TLS_GOTIE 16 /* GOT entry for static TLS block
+ offset */
+#define R_386_TLS_LE 17 /* Offset relative to static TLS
+ block */
+#define R_386_TLS_GD 18 /* Direct 32 bit for GNU version of
+ general dynamic thread local data */
+#define R_386_TLS_LDM 19 /* Direct 32 bit for GNU version of
+ local dynamic thread local data
+ in LE code */
+#define R_386_16 20
+#define R_386_PC16 21
+#define R_386_8 22
+#define R_386_PC8 23
+#define R_386_TLS_GD_32 24 /* Direct 32 bit for general dynamic
+ thread local data */
+#define R_386_TLS_GD_PUSH 25 /* Tag for pushl in GD TLS code */
+#define R_386_TLS_GD_CALL 26 /* Relocation for call to
+ __tls_get_addr() */
+#define R_386_TLS_GD_POP 27 /* Tag for popl in GD TLS code */
+#define R_386_TLS_LDM_32 28 /* Direct 32 bit for local dynamic
+ thread local data in LE code */
+#define R_386_TLS_LDM_PUSH 29 /* Tag for pushl in LDM TLS code */
+#define R_386_TLS_LDM_CALL 30 /* Relocation for call to
+ __tls_get_addr() in LDM code */
+#define R_386_TLS_LDM_POP 31 /* Tag for popl in LDM TLS code */
+#define R_386_TLS_LDO_32 32 /* Offset relative to TLS block */
+#define R_386_TLS_IE_32 33 /* GOT entry for negated static TLS
+ block offset */
+#define R_386_TLS_LE_32 34 /* Negated offset relative to static
+ TLS block */
+#define R_386_TLS_DTPMOD32 35 /* ID of module containing symbol */
+#define R_386_TLS_DTPOFF32 36 /* Offset in TLS block */
+#define R_386_TLS_TPOFF32 37 /* Negated offset in static TLS block */
+/* Keep this the last entry. */
+#define R_386_NUM 38
+
+/* SUN SPARC specific definitions. */
+
+/* Legal values for ST_TYPE subfield of st_info (symbol type). */
+
+#define STT_REGISTER 13 /* Global register reserved to app. */
+
+/* Values for Elf64_Ehdr.e_flags. */
+
+#define EF_SPARCV9_MM 3
+#define EF_SPARCV9_TSO 0
+#define EF_SPARCV9_PSO 1
+#define EF_SPARCV9_RMO 2
+#define EF_SPARC_LEDATA 0x800000 /* little endian data */
+#define EF_SPARC_EXT_MASK 0xFFFF00
+#define EF_SPARC_32PLUS 0x000100 /* generic V8+ features */
+#define EF_SPARC_SUN_US1 0x000200 /* Sun UltraSPARC1 extensions */
+#define EF_SPARC_HAL_R1 0x000400 /* HAL R1 extensions */
+#define EF_SPARC_SUN_US3 0x000800 /* Sun UltraSPARCIII extensions */
+
+/* SPARC relocs. */
+
+#define R_SPARC_NONE 0 /* No reloc */
+#define R_SPARC_8 1 /* Direct 8 bit */
+#define R_SPARC_16 2 /* Direct 16 bit */
+#define R_SPARC_32 3 /* Direct 32 bit */
+#define R_SPARC_DISP8 4 /* PC relative 8 bit */
+#define R_SPARC_DISP16 5 /* PC relative 16 bit */
+#define R_SPARC_DISP32 6 /* PC relative 32 bit */
+#define R_SPARC_WDISP30 7 /* PC relative 30 bit shifted */
+#define R_SPARC_WDISP22 8 /* PC relative 22 bit shifted */
+#define R_SPARC_HI22 9 /* High 22 bit */
+#define R_SPARC_22 10 /* Direct 22 bit */
+#define R_SPARC_13 11 /* Direct 13 bit */
+#define R_SPARC_LO10 12 /* Truncated 10 bit */
+#define R_SPARC_GOT10 13 /* Truncated 10 bit GOT entry */
+#define R_SPARC_GOT13 14 /* 13 bit GOT entry */
+#define R_SPARC_GOT22 15 /* 22 bit GOT entry shifted */
+#define R_SPARC_PC10 16 /* PC relative 10 bit truncated */
+#define R_SPARC_PC22 17 /* PC relative 22 bit shifted */
+#define R_SPARC_WPLT30 18 /* 30 bit PC relative PLT address */
+#define R_SPARC_COPY 19 /* Copy symbol at runtime */
+#define R_SPARC_GLOB_DAT 20 /* Create GOT entry */
+#define R_SPARC_JMP_SLOT 21 /* Create PLT entry */
+#define R_SPARC_RELATIVE 22 /* Adjust by program base */
+#define R_SPARC_UA32 23 /* Direct 32 bit unaligned */
+
+/* Additional Sparc64 relocs. */
+
+#define R_SPARC_PLT32 24 /* Direct 32 bit ref to PLT entry */
+#define R_SPARC_HIPLT22 25 /* High 22 bit PLT entry */
+#define R_SPARC_LOPLT10 26 /* Truncated 10 bit PLT entry */
+#define R_SPARC_PCPLT32 27 /* PC rel 32 bit ref to PLT entry */
+#define R_SPARC_PCPLT22 28 /* PC rel high 22 bit PLT entry */
+#define R_SPARC_PCPLT10 29 /* PC rel trunc 10 bit PLT entry */
+#define R_SPARC_10 30 /* Direct 10 bit */
+#define R_SPARC_11 31 /* Direct 11 bit */
+#define R_SPARC_64 32 /* Direct 64 bit */
+#define R_SPARC_OLO10 33 /* 10bit with secondary 13bit addend */
+#define R_SPARC_HH22 34 /* Top 22 bits of direct 64 bit */
+#define R_SPARC_HM10 35 /* High middle 10 bits of ... */
+#define R_SPARC_LM22 36 /* Low middle 22 bits of ... */
+#define R_SPARC_PC_HH22 37 /* Top 22 bits of pc rel 64 bit */
+#define R_SPARC_PC_HM10 38 /* High middle 10 bit of ... */
+#define R_SPARC_PC_LM22 39 /* Low miggle 22 bits of ... */
+#define R_SPARC_WDISP16 40 /* PC relative 16 bit shifted */
+#define R_SPARC_WDISP19 41 /* PC relative 19 bit shifted */
+#define R_SPARC_7 43 /* Direct 7 bit */
+#define R_SPARC_5 44 /* Direct 5 bit */
+#define R_SPARC_6 45 /* Direct 6 bit */
+#define R_SPARC_DISP64 46 /* PC relative 64 bit */
+#define R_SPARC_PLT64 47 /* Direct 64 bit ref to PLT entry */
+#define R_SPARC_HIX22 48 /* High 22 bit complemented */
+#define R_SPARC_LOX10 49 /* Truncated 11 bit complemented */
+#define R_SPARC_H44 50 /* Direct high 12 of 44 bit */
+#define R_SPARC_M44 51 /* Direct mid 22 of 44 bit */
+#define R_SPARC_L44 52 /* Direct low 10 of 44 bit */
+#define R_SPARC_REGISTER 53 /* Global register usage */
+#define R_SPARC_UA64 54 /* Direct 64 bit unaligned */
+#define R_SPARC_UA16 55 /* Direct 16 bit unaligned */
+#define R_SPARC_TLS_GD_HI22 56
+#define R_SPARC_TLS_GD_LO10 57
+#define R_SPARC_TLS_GD_ADD 58
+#define R_SPARC_TLS_GD_CALL 59
+#define R_SPARC_TLS_LDM_HI22 60
+#define R_SPARC_TLS_LDM_LO10 61
+#define R_SPARC_TLS_LDM_ADD 62
+#define R_SPARC_TLS_LDM_CALL 63
+#define R_SPARC_TLS_LDO_HIX22 64
+#define R_SPARC_TLS_LDO_LOX10 65
+#define R_SPARC_TLS_LDO_ADD 66
+#define R_SPARC_TLS_IE_HI22 67
+#define R_SPARC_TLS_IE_LO10 68
+#define R_SPARC_TLS_IE_LD 69
+#define R_SPARC_TLS_IE_LDX 70
+#define R_SPARC_TLS_IE_ADD 71
+#define R_SPARC_TLS_LE_HIX22 72
+#define R_SPARC_TLS_LE_LOX10 73
+#define R_SPARC_TLS_DTPMOD32 74
+#define R_SPARC_TLS_DTPMOD64 75
+#define R_SPARC_TLS_DTPOFF32 76
+#define R_SPARC_TLS_DTPOFF64 77
+#define R_SPARC_TLS_TPOFF32 78
+#define R_SPARC_TLS_TPOFF64 79
+/* Keep this the last entry. */
+#define R_SPARC_NUM 80
+
+/* For Sparc64, legal values for d_tag of Elf64_Dyn. */
+
+#define DT_SPARC_REGISTER 0x70000001
+#define DT_SPARC_NUM 2
+
+/* Bits present in AT_HWCAP, primarily for Sparc32. */
+
+#define HWCAP_SPARC_FLUSH 1 /* The cpu supports flush insn. */
+#define HWCAP_SPARC_STBAR 2
+#define HWCAP_SPARC_SWAP 4
+#define HWCAP_SPARC_MULDIV 8
+#define HWCAP_SPARC_V9 16 /* The cpu is v9, so v8plus is ok. */
+#define HWCAP_SPARC_ULTRA3 32
+
+/* MIPS R3000 specific definitions. */
+
+/* Legal values for e_flags field of Elf32_Ehdr. */
+
+#define EF_MIPS_NOREORDER 1 /* A .noreorder directive was used */
+#define EF_MIPS_PIC 2 /* Contains PIC code */
+#define EF_MIPS_CPIC 4 /* Uses PIC calling sequence */
+#define EF_MIPS_XGOT 8
+#define EF_MIPS_64BIT_WHIRL 16
+#define EF_MIPS_ABI2 32
+#define EF_MIPS_ABI_ON32 64
+#define EF_MIPS_ARCH 0xf0000000 /* MIPS architecture level */
+
+/* Legal values for MIPS architecture level. */
+
+#define EF_MIPS_ARCH_1 0x00000000 /* -mips1 code. */
+#define EF_MIPS_ARCH_2 0x10000000 /* -mips2 code. */
+#define EF_MIPS_ARCH_3 0x20000000 /* -mips3 code. */
+#define EF_MIPS_ARCH_4 0x30000000 /* -mips4 code. */
+#define EF_MIPS_ARCH_5 0x40000000 /* -mips5 code. */
+#define EF_MIPS_ARCH_32 0x60000000 /* MIPS32 code. */
+#define EF_MIPS_ARCH_64 0x70000000 /* MIPS64 code. */
+
+/* The following are non-official names and should not be used. */
+
+#define E_MIPS_ARCH_1 0x00000000 /* -mips1 code. */
+#define E_MIPS_ARCH_2 0x10000000 /* -mips2 code. */
+#define E_MIPS_ARCH_3 0x20000000 /* -mips3 code. */
+#define E_MIPS_ARCH_4 0x30000000 /* -mips4 code. */
+#define E_MIPS_ARCH_5 0x40000000 /* -mips5 code. */
+#define E_MIPS_ARCH_32 0x60000000 /* MIPS32 code. */
+#define E_MIPS_ARCH_64 0x70000000 /* MIPS64 code. */
+
+/* Special section indices. */
+
+#define SHN_MIPS_ACOMMON 0xff00 /* Allocated common symbols */
+#define SHN_MIPS_TEXT 0xff01 /* Allocated test symbols. */
+#define SHN_MIPS_DATA 0xff02 /* Allocated data symbols. */
+#define SHN_MIPS_SCOMMON 0xff03 /* Small common symbols */
+#define SHN_MIPS_SUNDEFINED 0xff04 /* Small undefined symbols */
+
+/* Legal values for sh_type field of Elf32_Shdr. */
+
+#define SHT_MIPS_LIBLIST 0x70000000 /* Shared objects used in link */
+#define SHT_MIPS_MSYM 0x70000001
+#define SHT_MIPS_CONFLICT 0x70000002 /* Conflicting symbols */
+#define SHT_MIPS_GPTAB 0x70000003 /* Global data area sizes */
+#define SHT_MIPS_UCODE 0x70000004 /* Reserved for SGI/MIPS compilers */
+#define SHT_MIPS_DEBUG 0x70000005 /* MIPS ECOFF debugging information*/
+#define SHT_MIPS_REGINFO 0x70000006 /* Register usage information */
+#define SHT_MIPS_PACKAGE 0x70000007
+#define SHT_MIPS_PACKSYM 0x70000008
+#define SHT_MIPS_RELD 0x70000009
+#define SHT_MIPS_IFACE 0x7000000b
+#define SHT_MIPS_CONTENT 0x7000000c
+#define SHT_MIPS_OPTIONS 0x7000000d /* Miscellaneous options. */
+#define SHT_MIPS_SHDR 0x70000010
+#define SHT_MIPS_FDESC 0x70000011
+#define SHT_MIPS_EXTSYM 0x70000012
+#define SHT_MIPS_DENSE 0x70000013
+#define SHT_MIPS_PDESC 0x70000014
+#define SHT_MIPS_LOCSYM 0x70000015
+#define SHT_MIPS_AUXSYM 0x70000016
+#define SHT_MIPS_OPTSYM 0x70000017
+#define SHT_MIPS_LOCSTR 0x70000018
+#define SHT_MIPS_LINE 0x70000019
+#define SHT_MIPS_RFDESC 0x7000001a
+#define SHT_MIPS_DELTASYM 0x7000001b
+#define SHT_MIPS_DELTAINST 0x7000001c
+#define SHT_MIPS_DELTACLASS 0x7000001d
+#define SHT_MIPS_DWARF 0x7000001e /* DWARF debugging information. */
+#define SHT_MIPS_DELTADECL 0x7000001f
+#define SHT_MIPS_SYMBOL_LIB 0x70000020
+#define SHT_MIPS_EVENTS 0x70000021 /* Event section. */
+#define SHT_MIPS_TRANSLATE 0x70000022
+#define SHT_MIPS_PIXIE 0x70000023
+#define SHT_MIPS_XLATE 0x70000024
+#define SHT_MIPS_XLATE_DEBUG 0x70000025
+#define SHT_MIPS_WHIRL 0x70000026
+#define SHT_MIPS_EH_REGION 0x70000027
+#define SHT_MIPS_XLATE_OLD 0x70000028
+#define SHT_MIPS_PDR_EXCEPTION 0x70000029
+
+/* Legal values for sh_flags field of Elf32_Shdr. */
+
+#define SHF_MIPS_GPREL 0x10000000 /* Must be part of global data area */
+#define SHF_MIPS_MERGE 0x20000000
+#define SHF_MIPS_ADDR 0x40000000
+#define SHF_MIPS_STRINGS 0x80000000
+#define SHF_MIPS_NOSTRIP 0x08000000
+#define SHF_MIPS_LOCAL 0x04000000
+#define SHF_MIPS_NAMES 0x02000000
+#define SHF_MIPS_NODUPE 0x01000000
+
+
+/* Symbol tables. */
+
+/* MIPS specific values for `st_other'. */
+#define STO_MIPS_DEFAULT 0x0
+#define STO_MIPS_INTERNAL 0x1
+#define STO_MIPS_HIDDEN 0x2
+#define STO_MIPS_PROTECTED 0x3
+#define STO_MIPS_SC_ALIGN_UNUSED 0xff
+
+/* MIPS specific values for `st_info'. */
+#define STB_MIPS_SPLIT_COMMON 13
+
+/* Entries found in sections of type SHT_MIPS_GPTAB. */
+
+typedef union
+{
+ struct
+ {
+ Elf32_Word gt_current_g_value; /* -G value used for compilation */
+ Elf32_Word gt_unused; /* Not used */
+ } gt_header; /* First entry in section */
+ struct
+ {
+ Elf32_Word gt_g_value; /* If this value were used for -G */
+ Elf32_Word gt_bytes; /* This many bytes would be used */
+ } gt_entry; /* Subsequent entries in section */
+} Elf32_gptab;
+
+/* Entry found in sections of type SHT_MIPS_REGINFO. */
+
+typedef struct
+{
+ Elf32_Word ri_gprmask; /* General registers used */
+ Elf32_Word ri_cprmask[4]; /* Coprocessor registers used */
+ Elf32_Sword ri_gp_value; /* $gp register value */
+} Elf32_RegInfo;
+
+/* Entries found in sections of type SHT_MIPS_OPTIONS. */
+
+typedef struct
+{
+ unsigned char kind; /* Determines interpretation of the
+ variable part of descriptor. */
+ unsigned char size; /* Size of descriptor, including header. */
+ Elf32_Section section; /* Section header index of section affected,
+ 0 for global options. */
+ Elf32_Word info; /* Kind-specific information. */
+} Elf_Options;
+
+/* Values for `kind' field in Elf_Options. */
+
+#define ODK_NULL 0 /* Undefined. */
+#define ODK_REGINFO 1 /* Register usage information. */
+#define ODK_EXCEPTIONS 2 /* Exception processing options. */
+#define ODK_PAD 3 /* Section padding options. */
+#define ODK_HWPATCH 4 /* Hardware workarounds performed */
+#define ODK_FILL 5 /* record the fill value used by the linker. */
+#define ODK_TAGS 6 /* reserve space for desktop tools to write. */
+#define ODK_HWAND 7 /* HW workarounds. 'AND' bits when merging. */
+#define ODK_HWOR 8 /* HW workarounds. 'OR' bits when merging. */
+
+/* Values for `info' in Elf_Options for ODK_EXCEPTIONS entries. */
+
+#define OEX_FPU_MIN 0x1f /* FPE's which MUST be enabled. */
+#define OEX_FPU_MAX 0x1f00 /* FPE's which MAY be enabled. */
+#define OEX_PAGE0 0x10000 /* page zero must be mapped. */
+#define OEX_SMM 0x20000 /* Force sequential memory mode? */
+#define OEX_FPDBUG 0x40000 /* Force floating point debug mode? */
+#define OEX_PRECISEFP OEX_FPDBUG
+#define OEX_DISMISS 0x80000 /* Dismiss invalid address faults? */
+
+#define OEX_FPU_INVAL 0x10
+#define OEX_FPU_DIV0 0x08
+#define OEX_FPU_OFLO 0x04
+#define OEX_FPU_UFLO 0x02
+#define OEX_FPU_INEX 0x01
+
+/* Masks for `info' in Elf_Options for an ODK_HWPATCH entry. */
+
+#define OHW_R4KEOP 0x1 /* R4000 end-of-page patch. */
+#define OHW_R8KPFETCH 0x2 /* may need R8000 prefetch patch. */
+#define OHW_R5KEOP 0x4 /* R5000 end-of-page patch. */
+#define OHW_R5KCVTL 0x8 /* R5000 cvt.[ds].l bug. clean=1. */
+
+#define OPAD_PREFIX 0x1
+#define OPAD_POSTFIX 0x2
+#define OPAD_SYMBOL 0x4
+
+/* Entry found in `.options' section. */
+
+typedef struct
+{
+ Elf32_Word hwp_flags1; /* Extra flags. */
+ Elf32_Word hwp_flags2; /* Extra flags. */
+} Elf_Options_Hw;
+
+/* Masks for `info' in ElfOptions for ODK_HWAND and ODK_HWOR entries. */
+
+#define OHWA0_R4KEOP_CHECKED 0x00000001
+#define OHWA1_R4KEOP_CLEAN 0x00000002
+
+/* MIPS relocs. */
+
+#define R_MIPS_NONE 0 /* No reloc */
+#define R_MIPS_16 1 /* Direct 16 bit */
+#define R_MIPS_32 2 /* Direct 32 bit */
+#define R_MIPS_REL32 3 /* PC relative 32 bit */
+#define R_MIPS_26 4 /* Direct 26 bit shifted */
+#define R_MIPS_HI16 5 /* High 16 bit */
+#define R_MIPS_LO16 6 /* Low 16 bit */
+#define R_MIPS_GPREL16 7 /* GP relative 16 bit */
+#define R_MIPS_LITERAL 8 /* 16 bit literal entry */
+#define R_MIPS_GOT16 9 /* 16 bit GOT entry */
+#define R_MIPS_PC16 10 /* PC relative 16 bit */
+#define R_MIPS_CALL16 11 /* 16 bit GOT entry for function */
+#define R_MIPS_GPREL32 12 /* GP relative 32 bit */
+
+#define R_MIPS_SHIFT5 16
+#define R_MIPS_SHIFT6 17
+#define R_MIPS_64 18
+#define R_MIPS_GOT_DISP 19
+#define R_MIPS_GOT_PAGE 20
+#define R_MIPS_GOT_OFST 21
+#define R_MIPS_GOT_HI16 22
+#define R_MIPS_GOT_LO16 23
+#define R_MIPS_SUB 24
+#define R_MIPS_INSERT_A 25
+#define R_MIPS_INSERT_B 26
+#define R_MIPS_DELETE 27
+#define R_MIPS_HIGHER 28
+#define R_MIPS_HIGHEST 29
+#define R_MIPS_CALL_HI16 30
+#define R_MIPS_CALL_LO16 31
+#define R_MIPS_SCN_DISP 32
+#define R_MIPS_REL16 33
+#define R_MIPS_ADD_IMMEDIATE 34
+#define R_MIPS_PJUMP 35
+#define R_MIPS_RELGOT 36
+#define R_MIPS_JALR 37
+/* Keep this the last entry. */
+#define R_MIPS_NUM 38
+
+/* Legal values for p_type field of Elf32_Phdr. */
+
+#define PT_MIPS_REGINFO 0x70000000 /* Register usage information */
+#define PT_MIPS_RTPROC 0x70000001 /* Runtime procedure table. */
+#define PT_MIPS_OPTIONS 0x70000002
+
+/* Special program header types. */
+
+#define PF_MIPS_LOCAL 0x10000000
+
+/* Legal values for d_tag field of Elf32_Dyn. */
+
+#define DT_MIPS_RLD_VERSION 0x70000001 /* Runtime linker interface version */
+#define DT_MIPS_TIME_STAMP 0x70000002 /* Timestamp */
+#define DT_MIPS_ICHECKSUM 0x70000003 /* Checksum */
+#define DT_MIPS_IVERSION 0x70000004 /* Version string (string tbl index) */
+#define DT_MIPS_FLAGS 0x70000005 /* Flags */
+#define DT_MIPS_BASE_ADDRESS 0x70000006 /* Base address */
+#define DT_MIPS_MSYM 0x70000007
+#define DT_MIPS_CONFLICT 0x70000008 /* Address of CONFLICT section */
+#define DT_MIPS_LIBLIST 0x70000009 /* Address of LIBLIST section */
+#define DT_MIPS_LOCAL_GOTNO 0x7000000a /* Number of local GOT entries */
+#define DT_MIPS_CONFLICTNO 0x7000000b /* Number of CONFLICT entries */
+#define DT_MIPS_LIBLISTNO 0x70000010 /* Number of LIBLIST entries */
+#define DT_MIPS_SYMTABNO 0x70000011 /* Number of DYNSYM entries */
+#define DT_MIPS_UNREFEXTNO 0x70000012 /* First external DYNSYM */
+#define DT_MIPS_GOTSYM 0x70000013 /* First GOT entry in DYNSYM */
+#define DT_MIPS_HIPAGENO 0x70000014 /* Number of GOT page table entries */
+#define DT_MIPS_RLD_MAP 0x70000016 /* Address of run time loader map. */
+#define DT_MIPS_DELTA_CLASS 0x70000017 /* Delta C++ class definition. */
+#define DT_MIPS_DELTA_CLASS_NO 0x70000018 /* Number of entries in
+ DT_MIPS_DELTA_CLASS. */
+#define DT_MIPS_DELTA_INSTANCE 0x70000019 /* Delta C++ class instances. */
+#define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a /* Number of entries in
+ DT_MIPS_DELTA_INSTANCE. */
+#define DT_MIPS_DELTA_RELOC 0x7000001b /* Delta relocations. */
+#define DT_MIPS_DELTA_RELOC_NO 0x7000001c /* Number of entries in
+ DT_MIPS_DELTA_RELOC. */
+#define DT_MIPS_DELTA_SYM 0x7000001d /* Delta symbols that Delta
+ relocations refer to. */
+#define DT_MIPS_DELTA_SYM_NO 0x7000001e /* Number of entries in
+ DT_MIPS_DELTA_SYM. */
+#define DT_MIPS_DELTA_CLASSSYM 0x70000020 /* Delta symbols that hold the
+ class declaration. */
+#define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021 /* Number of entries in
+ DT_MIPS_DELTA_CLASSSYM. */
+#define DT_MIPS_CXX_FLAGS 0x70000022 /* Flags indicating for C++ flavor. */
+#define DT_MIPS_PIXIE_INIT 0x70000023
+#define DT_MIPS_SYMBOL_LIB 0x70000024
+#define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025
+#define DT_MIPS_LOCAL_GOTIDX 0x70000026
+#define DT_MIPS_HIDDEN_GOTIDX 0x70000027
+#define DT_MIPS_PROTECTED_GOTIDX 0x70000028
+#define DT_MIPS_OPTIONS 0x70000029 /* Address of .options. */
+#define DT_MIPS_INTERFACE 0x7000002a /* Address of .interface. */
+#define DT_MIPS_DYNSTR_ALIGN 0x7000002b
+#define DT_MIPS_INTERFACE_SIZE 0x7000002c /* Size of the .interface section. */
+#define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d /* Address of rld_text_rsolve
+ function stored in GOT. */
+#define DT_MIPS_PERF_SUFFIX 0x7000002e /* Default suffix of dso to be added
+ by rld on dlopen() calls. */
+#define DT_MIPS_COMPACT_SIZE 0x7000002f /* (O32)Size of compact rel section. */
+#define DT_MIPS_GP_VALUE 0x70000030 /* GP value for aux GOTs. */
+#define DT_MIPS_AUX_DYNAMIC 0x70000031 /* Address of aux .dynamic. */
+#define DT_MIPS_NUM 0x32
+
+/* Legal values for DT_MIPS_FLAGS Elf32_Dyn entry. */
+
+#define RHF_NONE 0 /* No flags */
+#define RHF_QUICKSTART (1 << 0) /* Use quickstart */
+#define RHF_NOTPOT (1 << 1) /* Hash size not power of 2 */
+#define RHF_NO_LIBRARY_REPLACEMENT (1 << 2) /* Ignore LD_LIBRARY_PATH */
+#define RHF_NO_MOVE (1 << 3)
+#define RHF_SGI_ONLY (1 << 4)
+#define RHF_GUARANTEE_INIT (1 << 5)
+#define RHF_DELTA_C_PLUS_PLUS (1 << 6)
+#define RHF_GUARANTEE_START_INIT (1 << 7)
+#define RHF_PIXIE (1 << 8)
+#define RHF_DEFAULT_DELAY_LOAD (1 << 9)
+#define RHF_REQUICKSTART (1 << 10)
+#define RHF_REQUICKSTARTED (1 << 11)
+#define RHF_CORD (1 << 12)
+#define RHF_NO_UNRES_UNDEF (1 << 13)
+#define RHF_RLD_ORDER_SAFE (1 << 14)
+
+/* Entries found in sections of type SHT_MIPS_LIBLIST. */
+
+typedef struct
+{
+ Elf32_Word l_name; /* Name (string table index) */
+ Elf32_Word l_time_stamp; /* Timestamp */
+ Elf32_Word l_checksum; /* Checksum */
+ Elf32_Word l_version; /* Interface version */
+ Elf32_Word l_flags; /* Flags */
+} Elf32_Lib;
+
+typedef struct
+{
+ Elf64_Word l_name; /* Name (string table index) */
+ Elf64_Word l_time_stamp; /* Timestamp */
+ Elf64_Word l_checksum; /* Checksum */
+ Elf64_Word l_version; /* Interface version */
+ Elf64_Word l_flags; /* Flags */
+} Elf64_Lib;
+
+
+/* Legal values for l_flags. */
+
+#define LL_NONE 0
+#define LL_EXACT_MATCH (1 << 0) /* Require exact match */
+#define LL_IGNORE_INT_VER (1 << 1) /* Ignore interface version */
+#define LL_REQUIRE_MINOR (1 << 2)
+#define LL_EXPORTS (1 << 3)
+#define LL_DELAY_LOAD (1 << 4)
+#define LL_DELTA (1 << 5)
+
+/* Entries found in sections of type SHT_MIPS_CONFLICT. */
+
+typedef Elf32_Addr Elf32_Conflict;
+
+
+/* HPPA specific definitions. */
+
+/* Legal values for e_flags field of Elf32_Ehdr. */
+
+#define EF_PARISC_TRAPNIL 0x00010000 /* Trap nil pointer dereference. */
+#define EF_PARISC_EXT 0x00020000 /* Program uses arch. extensions. */
+#define EF_PARISC_LSB 0x00040000 /* Program expects little endian. */
+#define EF_PARISC_WIDE 0x00080000 /* Program expects wide mode. */
+#define EF_PARISC_NO_KABP 0x00100000 /* No kernel assisted branch
+ prediction. */
+#define EF_PARISC_LAZYSWAP 0x00400000 /* Allow lazy swapping. */
+#define EF_PARISC_ARCH 0x0000ffff /* Architecture version. */
+
+/* Defined values for `e_flags & EF_PARISC_ARCH' are: */
+
+#define EFA_PARISC_1_0 0x020b /* PA-RISC 1.0 big-endian. */
+#define EFA_PARISC_1_1 0x0210 /* PA-RISC 1.1 big-endian. */
+#define EFA_PARISC_2_0 0x0214 /* PA-RISC 2.0 big-endian. */
+
+/* Additional section indeces. */
+
+#define SHN_PARISC_ANSI_COMMON 0xff00 /* Section for tenatively declared
+ symbols in ANSI C. */
+#define SHN_PARISC_HUGE_COMMON 0xff01 /* Common blocks in huge model. */
+
+/* Legal values for sh_type field of Elf32_Shdr. */
+
+#define SHT_PARISC_EXT 0x70000000 /* Contains product specific ext. */
+#define SHT_PARISC_UNWIND 0x70000001 /* Unwind information. */
+#define SHT_PARISC_DOC 0x70000002 /* Debug info for optimized code. */
+
+/* Legal values for sh_flags field of Elf32_Shdr. */
+
+#define SHF_PARISC_SHORT 0x20000000 /* Section with short addressing. */
+#define SHF_PARISC_HUGE 0x40000000 /* Section far from gp. */
+#define SHF_PARISC_SBP 0x80000000 /* Static branch prediction code. */
+
+/* Legal values for ST_TYPE subfield of st_info (symbol type). */
+
+#define STT_PARISC_MILLICODE 13 /* Millicode function entry point. */
+
+#define STT_HP_OPAQUE (STT_LOOS + 0x1)
+#define STT_HP_STUB (STT_LOOS + 0x2)
+
+/* HPPA relocs. */
+
+#define R_PARISC_NONE 0 /* No reloc. */
+#define R_PARISC_DIR32 1 /* Direct 32-bit reference. */
+#define R_PARISC_DIR21L 2 /* Left 21 bits of eff. address. */
+#define R_PARISC_DIR17R 3 /* Right 17 bits of eff. address. */
+#define R_PARISC_DIR17F 4 /* 17 bits of eff. address. */
+#define R_PARISC_DIR14R 6 /* Right 14 bits of eff. address. */
+#define R_PARISC_PCREL32 9 /* 32-bit rel. address. */
+#define R_PARISC_PCREL21L 10 /* Left 21 bits of rel. address. */
+#define R_PARISC_PCREL17R 11 /* Right 17 bits of rel. address. */
+#define R_PARISC_PCREL17F 12 /* 17 bits of rel. address. */
+#define R_PARISC_PCREL14R 14 /* Right 14 bits of rel. address. */
+#define R_PARISC_DPREL21L 18 /* Left 21 bits of rel. address. */
+#define R_PARISC_DPREL14R 22 /* Right 14 bits of rel. address. */
+#define R_PARISC_GPREL21L 26 /* GP-relative, left 21 bits. */
+#define R_PARISC_GPREL14R 30 /* GP-relative, right 14 bits. */
+#define R_PARISC_LTOFF21L 34 /* LT-relative, left 21 bits. */
+#define R_PARISC_LTOFF14R 38 /* LT-relative, right 14 bits. */
+#define R_PARISC_SECREL32 41 /* 32 bits section rel. address. */
+#define R_PARISC_SEGBASE 48 /* No relocation, set segment base. */
+#define R_PARISC_SEGREL32 49 /* 32 bits segment rel. address. */
+#define R_PARISC_PLTOFF21L 50 /* PLT rel. address, left 21 bits. */
+#define R_PARISC_PLTOFF14R 54 /* PLT rel. address, right 14 bits. */
+#define R_PARISC_LTOFF_FPTR32 57 /* 32 bits LT-rel. function pointer. */
+#define R_PARISC_LTOFF_FPTR21L 58 /* LT-rel. fct ptr, left 21 bits. */
+#define R_PARISC_LTOFF_FPTR14R 62 /* LT-rel. fct ptr, right 14 bits. */
+#define R_PARISC_FPTR64 64 /* 64 bits function address. */
+#define R_PARISC_PLABEL32 65 /* 32 bits function address. */
+#define R_PARISC_PCREL64 72 /* 64 bits PC-rel. address. */
+#define R_PARISC_PCREL22F 74 /* 22 bits PC-rel. address. */
+#define R_PARISC_PCREL14WR 75 /* PC-rel. address, right 14 bits. */
+#define R_PARISC_PCREL14DR 76 /* PC rel. address, right 14 bits. */
+#define R_PARISC_PCREL16F 77 /* 16 bits PC-rel. address. */
+#define R_PARISC_PCREL16WF 78 /* 16 bits PC-rel. address. */
+#define R_PARISC_PCREL16DF 79 /* 16 bits PC-rel. address. */
+#define R_PARISC_DIR64 80 /* 64 bits of eff. address. */
+#define R_PARISC_DIR14WR 83 /* 14 bits of eff. address. */
+#define R_PARISC_DIR14DR 84 /* 14 bits of eff. address. */
+#define R_PARISC_DIR16F 85 /* 16 bits of eff. address. */
+#define R_PARISC_DIR16WF 86 /* 16 bits of eff. address. */
+#define R_PARISC_DIR16DF 87 /* 16 bits of eff. address. */
+#define R_PARISC_GPREL64 88 /* 64 bits of GP-rel. address. */
+#define R_PARISC_GPREL14WR 91 /* GP-rel. address, right 14 bits. */
+#define R_PARISC_GPREL14DR 92 /* GP-rel. address, right 14 bits. */
+#define R_PARISC_GPREL16F 93 /* 16 bits GP-rel. address. */
+#define R_PARISC_GPREL16WF 94 /* 16 bits GP-rel. address. */
+#define R_PARISC_GPREL16DF 95 /* 16 bits GP-rel. address. */
+#define R_PARISC_LTOFF64 96 /* 64 bits LT-rel. address. */
+#define R_PARISC_LTOFF14WR 99 /* LT-rel. address, right 14 bits. */
+#define R_PARISC_LTOFF14DR 100 /* LT-rel. address, right 14 bits. */
+#define R_PARISC_LTOFF16F 101 /* 16 bits LT-rel. address. */
+#define R_PARISC_LTOFF16WF 102 /* 16 bits LT-rel. address. */
+#define R_PARISC_LTOFF16DF 103 /* 16 bits LT-rel. address. */
+#define R_PARISC_SECREL64 104 /* 64 bits section rel. address. */
+#define R_PARISC_SEGREL64 112 /* 64 bits segment rel. address. */
+#define R_PARISC_PLTOFF14WR 115 /* PLT-rel. address, right 14 bits. */
+#define R_PARISC_PLTOFF14DR 116 /* PLT-rel. address, right 14 bits. */
+#define R_PARISC_PLTOFF16F 117 /* 16 bits LT-rel. address. */
+#define R_PARISC_PLTOFF16WF 118 /* 16 bits PLT-rel. address. */
+#define R_PARISC_PLTOFF16DF 119 /* 16 bits PLT-rel. address. */
+#define R_PARISC_LTOFF_FPTR64 120 /* 64 bits LT-rel. function ptr. */
+#define R_PARISC_LTOFF_FPTR14WR 123 /* LT-rel. fct. ptr., right 14 bits. */
+#define R_PARISC_LTOFF_FPTR14DR 124 /* LT-rel. fct. ptr., right 14 bits. */
+#define R_PARISC_LTOFF_FPTR16F 125 /* 16 bits LT-rel. function ptr. */
+#define R_PARISC_LTOFF_FPTR16WF 126 /* 16 bits LT-rel. function ptr. */
+#define R_PARISC_LTOFF_FPTR16DF 127 /* 16 bits LT-rel. function ptr. */
+#define R_PARISC_LORESERVE 128
+#define R_PARISC_COPY 128 /* Copy relocation. */
+#define R_PARISC_IPLT 129 /* Dynamic reloc, imported PLT */
+#define R_PARISC_EPLT 130 /* Dynamic reloc, exported PLT */
+#define R_PARISC_TPREL32 153 /* 32 bits TP-rel. address. */
+#define R_PARISC_TPREL21L 154 /* TP-rel. address, left 21 bits. */
+#define R_PARISC_TPREL14R 158 /* TP-rel. address, right 14 bits. */
+#define R_PARISC_LTOFF_TP21L 162 /* LT-TP-rel. address, left 21 bits. */
+#define R_PARISC_LTOFF_TP14R 166 /* LT-TP-rel. address, right 14 bits.*/
+#define R_PARISC_LTOFF_TP14F 167 /* 14 bits LT-TP-rel. address. */
+#define R_PARISC_TPREL64 216 /* 64 bits TP-rel. address. */
+#define R_PARISC_TPREL14WR 219 /* TP-rel. address, right 14 bits. */
+#define R_PARISC_TPREL14DR 220 /* TP-rel. address, right 14 bits. */
+#define R_PARISC_TPREL16F 221 /* 16 bits TP-rel. address. */
+#define R_PARISC_TPREL16WF 222 /* 16 bits TP-rel. address. */
+#define R_PARISC_TPREL16DF 223 /* 16 bits TP-rel. address. */
+#define R_PARISC_LTOFF_TP64 224 /* 64 bits LT-TP-rel. address. */
+#define R_PARISC_LTOFF_TP14WR 227 /* LT-TP-rel. address, right 14 bits.*/
+#define R_PARISC_LTOFF_TP14DR 228 /* LT-TP-rel. address, right 14 bits.*/
+#define R_PARISC_LTOFF_TP16F 229 /* 16 bits LT-TP-rel. address. */
+#define R_PARISC_LTOFF_TP16WF 230 /* 16 bits LT-TP-rel. address. */
+#define R_PARISC_LTOFF_TP16DF 231 /* 16 bits LT-TP-rel. address. */
+#define R_PARISC_HIRESERVE 255
+
+/* Legal values for p_type field of Elf32_Phdr/Elf64_Phdr. */
+
+#define PT_HP_TLS (PT_LOOS + 0x0)
+#define PT_HP_CORE_NONE (PT_LOOS + 0x1)
+#define PT_HP_CORE_VERSION (PT_LOOS + 0x2)
+#define PT_HP_CORE_KERNEL (PT_LOOS + 0x3)
+#define PT_HP_CORE_COMM (PT_LOOS + 0x4)
+#define PT_HP_CORE_PROC (PT_LOOS + 0x5)
+#define PT_HP_CORE_LOADABLE (PT_LOOS + 0x6)
+#define PT_HP_CORE_STACK (PT_LOOS + 0x7)
+#define PT_HP_CORE_SHM (PT_LOOS + 0x8)
+#define PT_HP_CORE_MMF (PT_LOOS + 0x9)
+#define PT_HP_PARALLEL (PT_LOOS + 0x10)
+#define PT_HP_FASTBIND (PT_LOOS + 0x11)
+#define PT_HP_OPT_ANNOT (PT_LOOS + 0x12)
+#define PT_HP_HSL_ANNOT (PT_LOOS + 0x13)
+#define PT_HP_STACK (PT_LOOS + 0x14)
+
+#define PT_PARISC_ARCHEXT 0x70000000
+#define PT_PARISC_UNWIND 0x70000001
+
+/* Legal values for p_flags field of Elf32_Phdr/Elf64_Phdr. */
+
+#define PF_PARISC_SBP 0x08000000
+
+#define PF_HP_PAGE_SIZE 0x00100000
+#define PF_HP_FAR_SHARED 0x00200000
+#define PF_HP_NEAR_SHARED 0x00400000
+#define PF_HP_CODE 0x01000000
+#define PF_HP_MODIFY 0x02000000
+#define PF_HP_LAZYSWAP 0x04000000
+#define PF_HP_SBP 0x08000000
+
+
+/* Alpha specific definitions. */
+
+/* Legal values for e_flags field of Elf64_Ehdr. */
+
+#define EF_ALPHA_32BIT 1 /* All addresses must be < 2GB. */
+#define EF_ALPHA_CANRELAX 2 /* Relocations for relaxing exist. */
+
+/* Legal values for sh_type field of Elf64_Shdr. */
+
+/* These two are primerily concerned with ECOFF debugging info. */
+#define SHT_ALPHA_DEBUG 0x70000001
+#define SHT_ALPHA_REGINFO 0x70000002
+
+/* Legal values for sh_flags field of Elf64_Shdr. */
+
+#define SHF_ALPHA_GPREL 0x10000000
+
+/* Legal values for st_other field of Elf64_Sym. */
+#define STO_ALPHA_NOPV 0x80 /* No PV required. */
+#define STO_ALPHA_STD_GPLOAD 0x88 /* PV only used for initial ldgp. */
+
+/* Alpha relocs. */
+
+#define R_ALPHA_NONE 0 /* No reloc */
+#define R_ALPHA_REFLONG 1 /* Direct 32 bit */
+#define R_ALPHA_REFQUAD 2 /* Direct 64 bit */
+#define R_ALPHA_GPREL32 3 /* GP relative 32 bit */
+#define R_ALPHA_LITERAL 4 /* GP relative 16 bit w/optimization */
+#define R_ALPHA_LITUSE 5 /* Optimization hint for LITERAL */
+#define R_ALPHA_GPDISP 6 /* Add displacement to GP */
+#define R_ALPHA_BRADDR 7 /* PC+4 relative 23 bit shifted */
+#define R_ALPHA_HINT 8 /* PC+4 relative 16 bit shifted */
+#define R_ALPHA_SREL16 9 /* PC relative 16 bit */
+#define R_ALPHA_SREL32 10 /* PC relative 32 bit */
+#define R_ALPHA_SREL64 11 /* PC relative 64 bit */
+#define R_ALPHA_GPRELHIGH 17 /* GP relative 32 bit, high 16 bits */
+#define R_ALPHA_GPRELLOW 18 /* GP relative 32 bit, low 16 bits */
+#define R_ALPHA_GPREL16 19 /* GP relative 16 bit */
+#define R_ALPHA_COPY 24 /* Copy symbol at runtime */
+#define R_ALPHA_GLOB_DAT 25 /* Create GOT entry */
+#define R_ALPHA_JMP_SLOT 26 /* Create PLT entry */
+#define R_ALPHA_RELATIVE 27 /* Adjust by program base */
+#define R_ALPHA_TLS_GD_HI 28
+#define R_ALPHA_TLSGD 29
+#define R_ALPHA_TLS_LDM 30
+#define R_ALPHA_DTPMOD64 31
+#define R_ALPHA_GOTDTPREL 32
+#define R_ALPHA_DTPREL64 33
+#define R_ALPHA_DTPRELHI 34
+#define R_ALPHA_DTPRELLO 35
+#define R_ALPHA_DTPREL16 36
+#define R_ALPHA_GOTTPREL 37
+#define R_ALPHA_TPREL64 38
+#define R_ALPHA_TPRELHI 39
+#define R_ALPHA_TPRELLO 40
+#define R_ALPHA_TPREL16 41
+/* Keep this the last entry. */
+#define R_ALPHA_NUM 46
+
+/* Magic values of the LITUSE relocation addend. */
+#define LITUSE_ALPHA_ADDR 0
+#define LITUSE_ALPHA_BASE 1
+#define LITUSE_ALPHA_BYTOFF 2
+#define LITUSE_ALPHA_JSR 3
+#define LITUSE_ALPHA_TLS_GD 4
+#define LITUSE_ALPHA_TLS_LDM 5
+
+
+/* PowerPC specific declarations */
+
+/* Values for Elf32/64_Ehdr.e_flags. */
+#define EF_PPC_EMB 0x80000000 /* PowerPC embedded flag */
+
+/* Cygnus local bits below */
+#define EF_PPC_RELOCATABLE 0x00010000 /* PowerPC -mrelocatable flag*/
+#define EF_PPC_RELOCATABLE_LIB 0x00008000 /* PowerPC -mrelocatable-lib
+ flag */
+
+/* PowerPC relocations defined by the ABIs */
+#define R_PPC_NONE 0
+#define R_PPC_ADDR32 1 /* 32bit absolute address */
+#define R_PPC_ADDR24 2 /* 26bit address, 2 bits ignored. */
+#define R_PPC_ADDR16 3 /* 16bit absolute address */
+#define R_PPC_ADDR16_LO 4 /* lower 16bit of absolute address */
+#define R_PPC_ADDR16_HI 5 /* high 16bit of absolute address */
+#define R_PPC_ADDR16_HA 6 /* adjusted high 16bit */
+#define R_PPC_ADDR14 7 /* 16bit address, 2 bits ignored */
+#define R_PPC_ADDR14_BRTAKEN 8
+#define R_PPC_ADDR14_BRNTAKEN 9
+#define R_PPC_REL24 10 /* PC relative 26 bit */
+#define R_PPC_REL14 11 /* PC relative 16 bit */
+#define R_PPC_REL14_BRTAKEN 12
+#define R_PPC_REL14_BRNTAKEN 13
+#define R_PPC_GOT16 14
+#define R_PPC_GOT16_LO 15
+#define R_PPC_GOT16_HI 16
+#define R_PPC_GOT16_HA 17
+#define R_PPC_PLTREL24 18
+#define R_PPC_COPY 19
+#define R_PPC_GLOB_DAT 20
+#define R_PPC_JMP_SLOT 21
+#define R_PPC_RELATIVE 22
+#define R_PPC_LOCAL24PC 23
+#define R_PPC_UADDR32 24
+#define R_PPC_UADDR16 25
+#define R_PPC_REL32 26
+#define R_PPC_PLT32 27
+#define R_PPC_PLTREL32 28
+#define R_PPC_PLT16_LO 29
+#define R_PPC_PLT16_HI 30
+#define R_PPC_PLT16_HA 31
+#define R_PPC_SDAREL16 32
+#define R_PPC_SECTOFF 33
+#define R_PPC_SECTOFF_LO 34
+#define R_PPC_SECTOFF_HI 35
+#define R_PPC_SECTOFF_HA 36
+
+/* PowerPC relocations defined for the TLS access ABI. */
+#define R_PPC_TLS 67 /* none (sym+add)@tls */
+#define R_PPC_DTPMOD32 68 /* word32 (sym+add)@dtpmod */
+#define R_PPC_TPREL16 69 /* half16* (sym+add)@tprel */
+#define R_PPC_TPREL16_LO 70 /* half16 (sym+add)@tprel@l */
+#define R_PPC_TPREL16_HI 71 /* half16 (sym+add)@tprel@h */
+#define R_PPC_TPREL16_HA 72 /* half16 (sym+add)@tprel@ha */
+#define R_PPC_TPREL32 73 /* word32 (sym+add)@tprel */
+#define R_PPC_DTPREL16 74 /* half16* (sym+add)@dtprel */
+#define R_PPC_DTPREL16_LO 75 /* half16 (sym+add)@dtprel@l */
+#define R_PPC_DTPREL16_HI 76 /* half16 (sym+add)@dtprel@h */
+#define R_PPC_DTPREL16_HA 77 /* half16 (sym+add)@dtprel@ha */
+#define R_PPC_DTPREL32 78 /* word32 (sym+add)@dtprel */
+#define R_PPC_GOT_TLSGD16 79 /* half16* (sym+add)@got@tlsgd */
+#define R_PPC_GOT_TLSGD16_LO 80 /* half16 (sym+add)@got@tlsgd@l */
+#define R_PPC_GOT_TLSGD16_HI 81 /* half16 (sym+add)@got@tlsgd@h */
+#define R_PPC_GOT_TLSGD16_HA 82 /* half16 (sym+add)@got@tlsgd@ha */
+#define R_PPC_GOT_TLSLD16 83 /* half16* (sym+add)@got@tlsld */
+#define R_PPC_GOT_TLSLD16_LO 84 /* half16 (sym+add)@got@tlsld@l */
+#define R_PPC_GOT_TLSLD16_HI 85 /* half16 (sym+add)@got@tlsld@h */
+#define R_PPC_GOT_TLSLD16_HA 86 /* half16 (sym+add)@got@tlsld@ha */
+#define R_PPC_GOT_TPREL16 87 /* half16* (sym+add)@got@tprel */
+#define R_PPC_GOT_TPREL16_LO 88 /* half16 (sym+add)@got@tprel@l */
+#define R_PPC_GOT_TPREL16_HI 89 /* half16 (sym+add)@got@tprel@h */
+#define R_PPC_GOT_TPREL16_HA 90 /* half16 (sym+add)@got@tprel@ha */
+#define R_PPC_GOT_DTPREL16 91 /* half16* (sym+add)@got@dtprel */
+#define R_PPC_GOT_DTPREL16_LO 92 /* half16* (sym+add)@got@dtprel@l */
+#define R_PPC_GOT_DTPREL16_HI 93 /* half16* (sym+add)@got@dtprel@h */
+#define R_PPC_GOT_DTPREL16_HA 94 /* half16* (sym+add)@got@dtprel@ha */
+
+/* Keep this the last entry. */
+#define R_PPC_NUM 95
+
+/* The remaining relocs are from the Embedded ELF ABI, and are not
+ in the SVR4 ELF ABI. */
+#define R_PPC_EMB_NADDR32 101
+#define R_PPC_EMB_NADDR16 102
+#define R_PPC_EMB_NADDR16_LO 103
+#define R_PPC_EMB_NADDR16_HI 104
+#define R_PPC_EMB_NADDR16_HA 105
+#define R_PPC_EMB_SDAI16 106
+#define R_PPC_EMB_SDA2I16 107
+#define R_PPC_EMB_SDA2REL 108
+#define R_PPC_EMB_SDA21 109 /* 16 bit offset in SDA */
+#define R_PPC_EMB_MRKREF 110
+#define R_PPC_EMB_RELSEC16 111
+#define R_PPC_EMB_RELST_LO 112
+#define R_PPC_EMB_RELST_HI 113
+#define R_PPC_EMB_RELST_HA 114
+#define R_PPC_EMB_BIT_FLD 115
+#define R_PPC_EMB_RELSDA 116 /* 16 bit relative offset in SDA */
+
+/* Diab tool relocations. */
+#define R_PPC_DIAB_SDA21_LO 180 /* like EMB_SDA21, but lower 16 bit */
+#define R_PPC_DIAB_SDA21_HI 181 /* like EMB_SDA21, but high 16 bit */
+#define R_PPC_DIAB_SDA21_HA 182 /* like EMB_SDA21, adjusted high 16 */
+#define R_PPC_DIAB_RELSDA_LO 183 /* like EMB_RELSDA, but lower 16 bit */
+#define R_PPC_DIAB_RELSDA_HI 184 /* like EMB_RELSDA, but high 16 bit */
+#define R_PPC_DIAB_RELSDA_HA 185 /* like EMB_RELSDA, adjusted high 16 */
+
+/* This is a phony reloc to handle any old fashioned TOC16 references
+ that may still be in object files. */
+#define R_PPC_TOC16 255
+
+
+/* PowerPC64 relocations defined by the ABIs */
+#define R_PPC64_NONE R_PPC_NONE
+#define R_PPC64_ADDR32 R_PPC_ADDR32 /* 32bit absolute address */
+#define R_PPC64_ADDR24 R_PPC_ADDR24 /* 26bit address, word aligned */
+#define R_PPC64_ADDR16 R_PPC_ADDR16 /* 16bit absolute address */
+#define R_PPC64_ADDR16_LO R_PPC_ADDR16_LO /* lower 16bits of address */
+#define R_PPC64_ADDR16_HI R_PPC_ADDR16_HI /* high 16bits of address. */
+#define R_PPC64_ADDR16_HA R_PPC_ADDR16_HA /* adjusted high 16bits. */
+#define R_PPC64_ADDR14 R_PPC_ADDR14 /* 16bit address, word aligned */
+#define R_PPC64_ADDR14_BRTAKEN R_PPC_ADDR14_BRTAKEN
+#define R_PPC64_ADDR14_BRNTAKEN R_PPC_ADDR14_BRNTAKEN
+#define R_PPC64_REL24 R_PPC_REL24 /* PC-rel. 26 bit, word aligned */
+#define R_PPC64_REL14 R_PPC_REL14 /* PC relative 16 bit */
+#define R_PPC64_REL14_BRTAKEN R_PPC_REL14_BRTAKEN
+#define R_PPC64_REL14_BRNTAKEN R_PPC_REL14_BRNTAKEN
+#define R_PPC64_GOT16 R_PPC_GOT16
+#define R_PPC64_GOT16_LO R_PPC_GOT16_LO
+#define R_PPC64_GOT16_HI R_PPC_GOT16_HI
+#define R_PPC64_GOT16_HA R_PPC_GOT16_HA
+
+#define R_PPC64_COPY R_PPC_COPY
+#define R_PPC64_GLOB_DAT R_PPC_GLOB_DAT
+#define R_PPC64_JMP_SLOT R_PPC_JMP_SLOT
+#define R_PPC64_RELATIVE R_PPC_RELATIVE
+
+#define R_PPC64_UADDR32 R_PPC_UADDR32
+#define R_PPC64_UADDR16 R_PPC_UADDR16
+#define R_PPC64_REL32 R_PPC_REL32
+#define R_PPC64_PLT32 R_PPC_PLT32
+#define R_PPC64_PLTREL32 R_PPC_PLTREL32
+#define R_PPC64_PLT16_LO R_PPC_PLT16_LO
+#define R_PPC64_PLT16_HI R_PPC_PLT16_HI
+#define R_PPC64_PLT16_HA R_PPC_PLT16_HA
+
+#define R_PPC64_SECTOFF R_PPC_SECTOFF
+#define R_PPC64_SECTOFF_LO R_PPC_SECTOFF_LO
+#define R_PPC64_SECTOFF_HI R_PPC_SECTOFF_HI
+#define R_PPC64_SECTOFF_HA R_PPC_SECTOFF_HA
+#define R_PPC64_ADDR30 37 /* word30 (S + A - P) >> 2 */
+#define R_PPC64_ADDR64 38 /* doubleword64 S + A */
+#define R_PPC64_ADDR16_HIGHER 39 /* half16 #higher(S + A) */
+#define R_PPC64_ADDR16_HIGHERA 40 /* half16 #highera(S + A) */
+#define R_PPC64_ADDR16_HIGHEST 41 /* half16 #highest(S + A) */
+#define R_PPC64_ADDR16_HIGHESTA 42 /* half16 #highesta(S + A) */
+#define R_PPC64_UADDR64 43 /* doubleword64 S + A */
+#define R_PPC64_REL64 44 /* doubleword64 S + A - P */
+#define R_PPC64_PLT64 45 /* doubleword64 L + A */
+#define R_PPC64_PLTREL64 46 /* doubleword64 L + A - P */
+#define R_PPC64_TOC16 47 /* half16* S + A - .TOC */
+#define R_PPC64_TOC16_LO 48 /* half16 #lo(S + A - .TOC.) */
+#define R_PPC64_TOC16_HI 49 /* half16 #hi(S + A - .TOC.) */
+#define R_PPC64_TOC16_HA 50 /* half16 #ha(S + A - .TOC.) */
+#define R_PPC64_TOC 51 /* doubleword64 .TOC */
+#define R_PPC64_PLTGOT16 52 /* half16* M + A */
+#define R_PPC64_PLTGOT16_LO 53 /* half16 #lo(M + A) */
+#define R_PPC64_PLTGOT16_HI 54 /* half16 #hi(M + A) */
+#define R_PPC64_PLTGOT16_HA 55 /* half16 #ha(M + A) */
+
+#define R_PPC64_ADDR16_DS 56 /* half16ds* (S + A) >> 2 */
+#define R_PPC64_ADDR16_LO_DS 57 /* half16ds #lo(S + A) >> 2 */
+#define R_PPC64_GOT16_DS 58 /* half16ds* (G + A) >> 2 */
+#define R_PPC64_GOT16_LO_DS 59 /* half16ds #lo(G + A) >> 2 */
+#define R_PPC64_PLT16_LO_DS 60 /* half16ds #lo(L + A) >> 2 */
+#define R_PPC64_SECTOFF_DS 61 /* half16ds* (R + A) >> 2 */
+#define R_PPC64_SECTOFF_LO_DS 62 /* half16ds #lo(R + A) >> 2 */
+#define R_PPC64_TOC16_DS 63 /* half16ds* (S + A - .TOC.) >> 2 */
+#define R_PPC64_TOC16_LO_DS 64 /* half16ds #lo(S + A - .TOC.) >> 2 */
+#define R_PPC64_PLTGOT16_DS 65 /* half16ds* (M + A) >> 2 */
+#define R_PPC64_PLTGOT16_LO_DS 66 /* half16ds #lo(M + A) >> 2 */
+
+/* PowerPC64 relocations defined for the TLS access ABI. */
+#define R_PPC64_TLS 67 /* none (sym+add)@tls */
+#define R_PPC64_DTPMOD64 68 /* doubleword64 (sym+add)@dtpmod */
+#define R_PPC64_TPREL16 69 /* half16* (sym+add)@tprel */
+#define R_PPC64_TPREL16_LO 70 /* half16 (sym+add)@tprel@l */
+#define R_PPC64_TPREL16_HI 71 /* half16 (sym+add)@tprel@h */
+#define R_PPC64_TPREL16_HA 72 /* half16 (sym+add)@tprel@ha */
+#define R_PPC64_TPREL64 73 /* doubleword64 (sym+add)@tprel */
+#define R_PPC64_DTPREL16 74 /* half16* (sym+add)@dtprel */
+#define R_PPC64_DTPREL16_LO 75 /* half16 (sym+add)@dtprel@l */
+#define R_PPC64_DTPREL16_HI 76 /* half16 (sym+add)@dtprel@h */
+#define R_PPC64_DTPREL16_HA 77 /* half16 (sym+add)@dtprel@ha */
+#define R_PPC64_DTPREL64 78 /* doubleword64 (sym+add)@dtprel */
+#define R_PPC64_GOT_TLSGD16 79 /* half16* (sym+add)@got@tlsgd */
+#define R_PPC64_GOT_TLSGD16_LO 80 /* half16 (sym+add)@got@tlsgd@l */
+#define R_PPC64_GOT_TLSGD16_HI 81 /* half16 (sym+add)@got@tlsgd@h */
+#define R_PPC64_GOT_TLSGD16_HA 82 /* half16 (sym+add)@got@tlsgd@ha */
+#define R_PPC64_GOT_TLSLD16 83 /* half16* (sym+add)@got@tlsld */
+#define R_PPC64_GOT_TLSLD16_LO 84 /* half16 (sym+add)@got@tlsld@l */
+#define R_PPC64_GOT_TLSLD16_HI 85 /* half16 (sym+add)@got@tlsld@h */
+#define R_PPC64_GOT_TLSLD16_HA 86 /* half16 (sym+add)@got@tlsld@ha */
+#define R_PPC64_GOT_TPREL16_DS 87 /* half16ds* (sym+add)@got@tprel */
+#define R_PPC64_GOT_TPREL16_LO_DS 88 /* half16ds (sym+add)@got@tprel@l */
+#define R_PPC64_GOT_TPREL16_HI 89 /* half16 (sym+add)@got@tprel@h */
+#define R_PPC64_GOT_TPREL16_HA 90 /* half16 (sym+add)@got@tprel@ha */
+#define R_PPC64_GOT_DTPREL16_DS 91 /* half16ds* (sym+add)@got@dtprel */
+#define R_PPC64_GOT_DTPREL16_LO_DS 92 /* half16ds (sym+add)@got@dtprel@l */
+#define R_PPC64_GOT_DTPREL16_HI 93 /* half16 (sym+add)@got@dtprel@h */
+#define R_PPC64_GOT_DTPREL16_HA 94 /* half16 (sym+add)@got@dtprel@ha */
+#define R_PPC64_TPREL16_DS 95 /* half16ds* (sym+add)@tprel */
+#define R_PPC64_TPREL16_LO_DS 96 /* half16ds (sym+add)@tprel@l */
+#define R_PPC64_TPREL16_HIGHER 97 /* half16 (sym+add)@tprel@higher */
+#define R_PPC64_TPREL16_HIGHERA 98 /* half16 (sym+add)@tprel@highera */
+#define R_PPC64_TPREL16_HIGHEST 99 /* half16 (sym+add)@tprel@highest */
+#define R_PPC64_TPREL16_HIGHESTA 100 /* half16 (sym+add)@tprel@highesta */
+#define R_PPC64_DTPREL16_DS 101 /* half16ds* (sym+add)@dtprel */
+#define R_PPC64_DTPREL16_LO_DS 102 /* half16ds (sym+add)@dtprel@l */
+#define R_PPC64_DTPREL16_HIGHER 103 /* half16 (sym+add)@dtprel@higher */
+#define R_PPC64_DTPREL16_HIGHERA 104 /* half16 (sym+add)@dtprel@highera */
+#define R_PPC64_DTPREL16_HIGHEST 105 /* half16 (sym+add)@dtprel@highest */
+#define R_PPC64_DTPREL16_HIGHESTA 106 /* half16 (sym+add)@dtprel@highesta */
+
+/* Keep this the last entry. */
+#define R_PPC64_NUM 107
+
+/* PowerPC64 specific values for the Dyn d_tag field. */
+#define DT_PPC64_GLINK (DT_LOPROC + 0)
+#define DT_PPC64_NUM 1
+
+
+/* ARM specific declarations */
+
+/* Processor specific flags for the ELF header e_flags field. */
+#define EF_ARM_RELEXEC 0x01
+#define EF_ARM_HASENTRY 0x02
+#define EF_ARM_INTERWORK 0x04
+#define EF_ARM_APCS_26 0x08
+#define EF_ARM_APCS_FLOAT 0x10
+#define EF_ARM_PIC 0x20
+#define EF_ARM_ALIGN8 0x40 /* 8-bit structure alignment is in use */
+#define EF_ARM_NEW_ABI 0x80
+#define EF_ARM_OLD_ABI 0x100
+
+/* Other constants defined in the ARM ELF spec. version B-01. */
+/* NB. These conflict with values defined above. */
+#define EF_ARM_SYMSARESORTED 0x04
+#define EF_ARM_DYNSYMSUSESEGIDX 0x08
+#define EF_ARM_MAPSYMSFIRST 0x10
+#define EF_ARM_EABIMASK 0XFF000000
+
+#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK)
+#define EF_ARM_EABI_UNKNOWN 0x00000000
+#define EF_ARM_EABI_VER1 0x01000000
+#define EF_ARM_EABI_VER2 0x02000000
+
+/* Additional symbol types for Thumb */
+#define STT_ARM_TFUNC 0xd
+
+/* ARM-specific values for sh_flags */
+#define SHF_ARM_ENTRYSECT 0x10000000 /* Section contains an entry point */
+#define SHF_ARM_COMDEF 0x80000000 /* Section may be multiply defined
+ in the input to a link step */
+
+/* ARM-specific program header flags */
+#define PF_ARM_SB 0x10000000 /* Segment contains the location
+ addressed by the static base */
+
+/* ARM relocs. */
+#define R_ARM_NONE 0 /* No reloc */
+#define R_ARM_PC24 1 /* PC relative 26 bit branch */
+#define R_ARM_ABS32 2 /* Direct 32 bit */
+#define R_ARM_REL32 3 /* PC relative 32 bit */
+#define R_ARM_PC13 4
+#define R_ARM_ABS16 5 /* Direct 16 bit */
+#define R_ARM_ABS12 6 /* Direct 12 bit */
+#define R_ARM_THM_ABS5 7
+#define R_ARM_ABS8 8 /* Direct 8 bit */
+#define R_ARM_SBREL32 9
+#define R_ARM_THM_PC22 10
+#define R_ARM_THM_PC8 11
+#define R_ARM_AMP_VCALL9 12
+#define R_ARM_SWI24 13
+#define R_ARM_THM_SWI8 14
+#define R_ARM_XPC25 15
+#define R_ARM_THM_XPC22 16
+#define R_ARM_COPY 20 /* Copy symbol at runtime */
+#define R_ARM_GLOB_DAT 21 /* Create GOT entry */
+#define R_ARM_JUMP_SLOT 22 /* Create PLT entry */
+#define R_ARM_RELATIVE 23 /* Adjust by program base */
+#define R_ARM_GOTOFF 24 /* 32 bit offset to GOT */
+#define R_ARM_GOTPC 25 /* 32 bit PC relative offset to GOT */
+#define R_ARM_GOT32 26 /* 32 bit GOT entry */
+#define R_ARM_PLT32 27 /* 32 bit PLT address */
+#define R_ARM_ALU_PCREL_7_0 32
+#define R_ARM_ALU_PCREL_15_8 33
+#define R_ARM_ALU_PCREL_23_15 34
+#define R_ARM_LDR_SBREL_11_0 35
+#define R_ARM_ALU_SBREL_19_12 36
+#define R_ARM_ALU_SBREL_27_20 37
+#define R_ARM_GNU_VTENTRY 100
+#define R_ARM_GNU_VTINHERIT 101
+#define R_ARM_THM_PC11 102 /* thumb unconditional branch */
+#define R_ARM_THM_PC9 103 /* thumb conditional branch */
+#define R_ARM_RXPC25 249
+#define R_ARM_RSBREL32 250
+#define R_ARM_THM_RPC22 251
+#define R_ARM_RREL32 252
+#define R_ARM_RABS22 253
+#define R_ARM_RPC24 254
+#define R_ARM_RBASE 255
+/* Keep this the last entry. */
+#define R_ARM_NUM 256
+
+/* IA-64 specific declarations. */
+
+/* Processor specific flags for the Ehdr e_flags field. */
+#define EF_IA_64_MASKOS 0x0000000f /* os-specific flags */
+#define EF_IA_64_ABI64 0x00000010 /* 64-bit ABI */
+#define EF_IA_64_ARCH 0xff000000 /* arch. version mask */
+
+/* Processor specific values for the Phdr p_type field. */
+#define PT_IA_64_ARCHEXT (PT_LOPROC + 0) /* arch extension bits */
+#define PT_IA_64_UNWIND (PT_LOPROC + 1) /* ia64 unwind bits */
+
+/* Processor specific flags for the Phdr p_flags field. */
+#define PF_IA_64_NORECOV 0x80000000 /* spec insns w/o recovery */
+
+/* Processor specific values for the Shdr sh_type field. */
+#define SHT_IA_64_EXT (SHT_LOPROC + 0) /* extension bits */
+#define SHT_IA_64_UNWIND (SHT_LOPROC + 1) /* unwind bits */
+
+/* Processor specific flags for the Shdr sh_flags field. */
+#define SHF_IA_64_SHORT 0x10000000 /* section near gp */
+#define SHF_IA_64_NORECOV 0x20000000 /* spec insns w/o recovery */
+
+/* Processor specific values for the Dyn d_tag field. */
+#define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0)
+#define DT_IA_64_NUM 1
+
+/* IA-64 relocations. */
+#define R_IA64_NONE 0x00 /* none */
+#define R_IA64_IMM14 0x21 /* symbol + addend, add imm14 */
+#define R_IA64_IMM22 0x22 /* symbol + addend, add imm22 */
+#define R_IA64_IMM64 0x23 /* symbol + addend, mov imm64 */
+#define R_IA64_DIR32MSB 0x24 /* symbol + addend, data4 MSB */
+#define R_IA64_DIR32LSB 0x25 /* symbol + addend, data4 LSB */
+#define R_IA64_DIR64MSB 0x26 /* symbol + addend, data8 MSB */
+#define R_IA64_DIR64LSB 0x27 /* symbol + addend, data8 LSB */
+#define R_IA64_GPREL22 0x2a /* @gprel(sym + add), add imm22 */
+#define R_IA64_GPREL64I 0x2b /* @gprel(sym + add), mov imm64 */
+#define R_IA64_GPREL32MSB 0x2c /* @gprel(sym + add), data4 MSB */
+#define R_IA64_GPREL32LSB 0x2d /* @gprel(sym + add), data4 LSB */
+#define R_IA64_GPREL64MSB 0x2e /* @gprel(sym + add), data8 MSB */
+#define R_IA64_GPREL64LSB 0x2f /* @gprel(sym + add), data8 LSB */
+#define R_IA64_LTOFF22 0x32 /* @ltoff(sym + add), add imm22 */
+#define R_IA64_LTOFF64I 0x33 /* @ltoff(sym + add), mov imm64 */
+#define R_IA64_PLTOFF22 0x3a /* @pltoff(sym + add), add imm22 */
+#define R_IA64_PLTOFF64I 0x3b /* @pltoff(sym + add), mov imm64 */
+#define R_IA64_PLTOFF64MSB 0x3e /* @pltoff(sym + add), data8 MSB */
+#define R_IA64_PLTOFF64LSB 0x3f /* @pltoff(sym + add), data8 LSB */
+#define R_IA64_FPTR64I 0x43 /* @fptr(sym + add), mov imm64 */
+#define R_IA64_FPTR32MSB 0x44 /* @fptr(sym + add), data4 MSB */
+#define R_IA64_FPTR32LSB 0x45 /* @fptr(sym + add), data4 LSB */
+#define R_IA64_FPTR64MSB 0x46 /* @fptr(sym + add), data8 MSB */
+#define R_IA64_FPTR64LSB 0x47 /* @fptr(sym + add), data8 LSB */
+#define R_IA64_PCREL60B 0x48 /* @pcrel(sym + add), brl */
+#define R_IA64_PCREL21B 0x49 /* @pcrel(sym + add), ptb, call */
+#define R_IA64_PCREL21M 0x4a /* @pcrel(sym + add), chk.s */
+#define R_IA64_PCREL21F 0x4b /* @pcrel(sym + add), fchkf */
+#define R_IA64_PCREL32MSB 0x4c /* @pcrel(sym + add), data4 MSB */
+#define R_IA64_PCREL32LSB 0x4d /* @pcrel(sym + add), data4 LSB */
+#define R_IA64_PCREL64MSB 0x4e /* @pcrel(sym + add), data8 MSB */
+#define R_IA64_PCREL64LSB 0x4f /* @pcrel(sym + add), data8 LSB */
+#define R_IA64_LTOFF_FPTR22 0x52 /* @ltoff(@fptr(s+a)), imm22 */
+#define R_IA64_LTOFF_FPTR64I 0x53 /* @ltoff(@fptr(s+a)), imm64 */
+#define R_IA64_LTOFF_FPTR32MSB 0x54 /* @ltoff(@fptr(s+a)), data4 MSB */
+#define R_IA64_LTOFF_FPTR32LSB 0x55 /* @ltoff(@fptr(s+a)), data4 LSB */
+#define R_IA64_LTOFF_FPTR64MSB 0x56 /* @ltoff(@fptr(s+a)), data8 MSB */
+#define R_IA64_LTOFF_FPTR64LSB 0x57 /* @ltoff(@fptr(s+a)), data8 LSB */
+#define R_IA64_SEGREL32MSB 0x5c /* @segrel(sym + add), data4 MSB */
+#define R_IA64_SEGREL32LSB 0x5d /* @segrel(sym + add), data4 LSB */
+#define R_IA64_SEGREL64MSB 0x5e /* @segrel(sym + add), data8 MSB */
+#define R_IA64_SEGREL64LSB 0x5f /* @segrel(sym + add), data8 LSB */
+#define R_IA64_SECREL32MSB 0x64 /* @secrel(sym + add), data4 MSB */
+#define R_IA64_SECREL32LSB 0x65 /* @secrel(sym + add), data4 LSB */
+#define R_IA64_SECREL64MSB 0x66 /* @secrel(sym + add), data8 MSB */
+#define R_IA64_SECREL64LSB 0x67 /* @secrel(sym + add), data8 LSB */
+#define R_IA64_REL32MSB 0x6c /* data 4 + REL */
+#define R_IA64_REL32LSB 0x6d /* data 4 + REL */
+#define R_IA64_REL64MSB 0x6e /* data 8 + REL */
+#define R_IA64_REL64LSB 0x6f /* data 8 + REL */
+#define R_IA64_LTV32MSB 0x74 /* symbol + addend, data4 MSB */
+#define R_IA64_LTV32LSB 0x75 /* symbol + addend, data4 LSB */
+#define R_IA64_LTV64MSB 0x76 /* symbol + addend, data8 MSB */
+#define R_IA64_LTV64LSB 0x77 /* symbol + addend, data8 LSB */
+#define R_IA64_PCREL21BI 0x79 /* @pcrel(sym + add), 21bit inst */
+#define R_IA64_PCREL22 0x7a /* @pcrel(sym + add), 22bit inst */
+#define R_IA64_PCREL64I 0x7b /* @pcrel(sym + add), 64bit inst */
+#define R_IA64_IPLTMSB 0x80 /* dynamic reloc, imported PLT, MSB */
+#define R_IA64_IPLTLSB 0x81 /* dynamic reloc, imported PLT, LSB */
+#define R_IA64_COPY 0x84 /* copy relocation */
+#define R_IA64_SUB 0x85 /* Addend and symbol difference */
+#define R_IA64_LTOFF22X 0x86 /* LTOFF22, relaxable. */
+#define R_IA64_LDXMOV 0x87 /* Use of LTOFF22X. */
+#define R_IA64_TPREL14 0x91 /* @tprel(sym + add), imm14 */
+#define R_IA64_TPREL22 0x92 /* @tprel(sym + add), imm22 */
+#define R_IA64_TPREL64I 0x93 /* @tprel(sym + add), imm64 */
+#define R_IA64_TPREL64MSB 0x96 /* @tprel(sym + add), data8 MSB */
+#define R_IA64_TPREL64LSB 0x97 /* @tprel(sym + add), data8 LSB */
+#define R_IA64_LTOFF_TPREL22 0x9a /* @ltoff(@tprel(s+a)), imm2 */
+#define R_IA64_DTPMOD64MSB 0xa6 /* @dtpmod(sym + add), data8 MSB */
+#define R_IA64_DTPMOD64LSB 0xa7 /* @dtpmod(sym + add), data8 LSB */
+#define R_IA64_LTOFF_DTPMOD22 0xaa /* @ltoff(@dtpmod(sym + add)), imm22 */
+#define R_IA64_DTPREL14 0xb1 /* @dtprel(sym + add), imm14 */
+#define R_IA64_DTPREL22 0xb2 /* @dtprel(sym + add), imm22 */
+#define R_IA64_DTPREL64I 0xb3 /* @dtprel(sym + add), imm64 */
+#define R_IA64_DTPREL32MSB 0xb4 /* @dtprel(sym + add), data4 MSB */
+#define R_IA64_DTPREL32LSB 0xb5 /* @dtprel(sym + add), data4 LSB */
+#define R_IA64_DTPREL64MSB 0xb6 /* @dtprel(sym + add), data8 MSB */
+#define R_IA64_DTPREL64LSB 0xb7 /* @dtprel(sym + add), data8 LSB */
+#define R_IA64_LTOFF_DTPREL22 0xba /* @ltoff(@dtprel(s+a)), imm22 */
+
+/* SH specific declarations */
+
+/* SH relocs. */
+#define R_SH_NONE 0
+#define R_SH_DIR32 1
+#define R_SH_REL32 2
+#define R_SH_DIR8WPN 3
+#define R_SH_IND12W 4
+#define R_SH_DIR8WPL 5
+#define R_SH_DIR8WPZ 6
+#define R_SH_DIR8BP 7
+#define R_SH_DIR8W 8
+#define R_SH_DIR8L 9
+#define R_SH_SWITCH16 25
+#define R_SH_SWITCH32 26
+#define R_SH_USES 27
+#define R_SH_COUNT 28
+#define R_SH_ALIGN 29
+#define R_SH_CODE 30
+#define R_SH_DATA 31
+#define R_SH_LABEL 32
+#define R_SH_SWITCH8 33
+#define R_SH_GNU_VTINHERIT 34
+#define R_SH_GNU_VTENTRY 35
+#define R_SH_TLS_GD_32 144
+#define R_SH_TLS_LD_32 145
+#define R_SH_TLS_LDO_32 146
+#define R_SH_TLS_IE_32 147
+#define R_SH_TLS_LE_32 148
+#define R_SH_TLS_DTPMOD32 149
+#define R_SH_TLS_DTPOFF32 150
+#define R_SH_TLS_TPOFF32 151
+#define R_SH_GOT32 160
+#define R_SH_PLT32 161
+#define R_SH_COPY 162
+#define R_SH_GLOB_DAT 163
+#define R_SH_JMP_SLOT 164
+#define R_SH_RELATIVE 165
+#define R_SH_GOTOFF 166
+#define R_SH_GOTPC 167
+/* Keep this the last entry. */
+#define R_SH_NUM 256
+
+/* Additional s390 relocs */
+
+#define R_390_NONE 0 /* No reloc. */
+#define R_390_8 1 /* Direct 8 bit. */
+#define R_390_12 2 /* Direct 12 bit. */
+#define R_390_16 3 /* Direct 16 bit. */
+#define R_390_32 4 /* Direct 32 bit. */
+#define R_390_PC32 5 /* PC relative 32 bit. */
+#define R_390_GOT12 6 /* 12 bit GOT offset. */
+#define R_390_GOT32 7 /* 32 bit GOT offset. */
+#define R_390_PLT32 8 /* 32 bit PC relative PLT address. */
+#define R_390_COPY 9 /* Copy symbol at runtime. */
+#define R_390_GLOB_DAT 10 /* Create GOT entry. */
+#define R_390_JMP_SLOT 11 /* Create PLT entry. */
+#define R_390_RELATIVE 12 /* Adjust by program base. */
+#define R_390_GOTOFF32 13 /* 32 bit offset to GOT. */
+#define R_390_GOTPC 14 /* 32 bit PC relative offset to GOT. */
+#define R_390_GOT16 15 /* 16 bit GOT offset. */
+#define R_390_PC16 16 /* PC relative 16 bit. */
+#define R_390_PC16DBL 17 /* PC relative 16 bit shifted by 1. */
+#define R_390_PLT16DBL 18 /* 16 bit PC rel. PLT shifted by 1. */
+#define R_390_PC32DBL 19 /* PC relative 32 bit shifted by 1. */
+#define R_390_PLT32DBL 20 /* 32 bit PC rel. PLT shifted by 1. */
+#define R_390_GOTPCDBL 21 /* 32 bit PC rel. GOT shifted by 1. */
+#define R_390_64 22 /* Direct 64 bit. */
+#define R_390_PC64 23 /* PC relative 64 bit. */
+#define R_390_GOT64 24 /* 64 bit GOT offset. */
+#define R_390_PLT64 25 /* 64 bit PC relative PLT address. */
+#define R_390_GOTENT 26 /* 32 bit PC rel. to GOT entry >> 1. */
+#define R_390_GOTOFF16 27 /* 16 bit offset to GOT. */
+#define R_390_GOTOFF64 28 /* 64 bit offset to GOT. */
+#define R_390_GOTPLT12 29 /* 12 bit offset to jump slot. */
+#define R_390_GOTPLT16 30 /* 16 bit offset to jump slot. */
+#define R_390_GOTPLT32 31 /* 32 bit offset to jump slot. */
+#define R_390_GOTPLT64 32 /* 64 bit offset to jump slot. */
+#define R_390_GOTPLTENT 33 /* 32 bit rel. offset to jump slot. */
+#define R_390_PLTOFF16 34 /* 16 bit offset from GOT to PLT. */
+#define R_390_PLTOFF32 35 /* 32 bit offset from GOT to PLT. */
+#define R_390_PLTOFF64 36 /* 16 bit offset from GOT to PLT. */
+#define R_390_TLS_LOAD 37 /* Tag for load insn in TLS code. */
+#define R_390_TLS_GDCALL 38 /* Tag for function call in general
+ dynamic TLS code. */
+#define R_390_TLS_LDCALL 39 /* Tag for function call in local
+ dynamic TLS code. */
+#define R_390_TLS_GD32 40 /* Direct 32 bit for general dynamic
+ thread local data. */
+#define R_390_TLS_GD64 41 /* Direct 64 bit for general dynamic
+ thread local data. */
+#define R_390_TLS_GOTIE12 42 /* 12 bit GOT offset for static TLS
+ block offset. */
+#define R_390_TLS_GOTIE32 43 /* 32 bit GOT offset for static TLS
+ block offset. */
+#define R_390_TLS_GOTIE64 44 /* 64 bit GOT offset for static TLS
+ block offset. */
+#define R_390_TLS_LDM32 45 /* Direct 32 bit for local dynamic
+ thread local data in LE code. */
+#define R_390_TLS_LDM64 46 /* Direct 64 bit for local dynamic
+ thread local data in LE code. */
+#define R_390_TLS_IE32 47 /* 32 bit address of GOT entry for
+ negated static TLS block offset. */
+#define R_390_TLS_IE64 48 /* 64 bit address of GOT entry for
+ negated static TLS block offset. */
+#define R_390_TLS_IEENT 49 /* 32 bit rel. offset to GOT entry for
+ negated static TLS block offset. */
+#define R_390_TLS_LE32 50 /* 32 bit negated offset relative to
+ static TLS block. */
+#define R_390_TLS_LE64 51 /* 64 bit negated offset relative to
+ static TLS block. */
+#define R_390_TLS_LDO32 52 /* 32 bit offset relative to TLS
+ block. */
+#define R_390_TLS_LDO64 53 /* 64 bit offset relative to TLS
+ block. */
+#define R_390_TLS_DTPMOD 54 /* ID of module containing symbol. */
+#define R_390_TLS_DTPOFF 55 /* Offset in TLS block. */
+#define R_390_TLS_TPOFF 56 /* Negated offset in static TLS
+ block. */
+
+/* Keep this the last entry. */
+#define R_390_NUM 57
+
+/* CRIS relocations. */
+#define R_CRIS_NONE 0
+#define R_CRIS_8 1
+#define R_CRIS_16 2
+#define R_CRIS_32 3
+#define R_CRIS_8_PCREL 4
+#define R_CRIS_16_PCREL 5
+#define R_CRIS_32_PCREL 6
+#define R_CRIS_GNU_VTINHERIT 7
+#define R_CRIS_GNU_VTENTRY 8
+#define R_CRIS_COPY 9
+#define R_CRIS_GLOB_DAT 10
+#define R_CRIS_JUMP_SLOT 11
+#define R_CRIS_RELATIVE 12
+#define R_CRIS_16_GOT 13
+#define R_CRIS_32_GOT 14
+#define R_CRIS_16_GOTPLT 15
+#define R_CRIS_32_GOTPLT 16
+#define R_CRIS_32_GOTREL 17
+#define R_CRIS_32_PLT_GOTREL 18
+#define R_CRIS_32_PLT_PCREL 19
+
+#define R_CRIS_NUM 20
+
+/* AMD x86-64 relocations. */
+#define R_X86_64_NONE 0 /* No reloc */
+#define R_X86_64_64 1 /* Direct 64 bit */
+#define R_X86_64_PC32 2 /* PC relative 32 bit signed */
+#define R_X86_64_GOT32 3 /* 32 bit GOT entry */
+#define R_X86_64_PLT32 4 /* 32 bit PLT address */
+#define R_X86_64_COPY 5 /* Copy symbol at runtime */
+#define R_X86_64_GLOB_DAT 6 /* Create GOT entry */
+#define R_X86_64_JUMP_SLOT 7 /* Create PLT entry */
+#define R_X86_64_RELATIVE 8 /* Adjust by program base */
+#define R_X86_64_GOTPCREL 9 /* 32 bit signed PC relative
+ offset to GOT */
+#define R_X86_64_32 10 /* Direct 32 bit zero extended */
+#define R_X86_64_32S 11 /* Direct 32 bit sign extended */
+#define R_X86_64_16 12 /* Direct 16 bit zero extended */
+#define R_X86_64_PC16 13 /* 16 bit sign extended pc relative */
+#define R_X86_64_8 14 /* Direct 8 bit sign extended */
+#define R_X86_64_PC8 15 /* 8 bit sign extended pc relative */
+#define R_X86_64_DTPMOD64 16 /* ID of module containing symbol */
+#define R_X86_64_DTPOFF64 17 /* Offset in module's TLS block */
+#define R_X86_64_TPOFF64 18 /* Offset in initial TLS block */
+#define R_X86_64_TLSGD 19 /* 32 bit signed PC relative offset
+ to two GOT entries for GD symbol */
+#define R_X86_64_TLSLD 20 /* 32 bit signed PC relative offset
+ to two GOT entries for LD symbol */
+#define R_X86_64_DTPOFF32 21 /* Offset in TLS block */
+#define R_X86_64_GOTTPOFF 22 /* 32 bit signed PC relative offset
+ to GOT entry for IE symbol */
+#define R_X86_64_TPOFF32 23 /* Offset in initial TLS block */
+
+#define R_X86_64_NUM 24
+
+__END_DECLS
+
+#ifdef __cplusplus
+};
+#endif //__cplusplus
+
+#endif /* elf.h */ \ No newline at end of file
diff --git a/tools/o2narc/o2narc.cpp b/tools/o2narc/o2narc.cpp
new file mode 100644
index 00000000..1b023640
--- /dev/null
+++ b/tools/o2narc/o2narc.cpp
@@ -0,0 +1,314 @@
+#include <iostream>
+#include <fstream>
+#include <getopt.h>
+#include <cstring>
+#include <vector>
+#include "elf.h"
+#include "Narc.h"
+
+using namespace std;
+
+static Elf32_Sym NullSym { 0 };
+
+static Elf32_Shdr NullShdr { 0 };
+
+class Symtab : public vector<Elf32_Sym> {
+public:
+ char * strtab;
+ Symtab() : strtab(nullptr) {}
+ Elf32_Sym & operator[](const char * name) {
+ for (auto& value : *this) {
+ if (strcmp(strtab + value.st_name, name) == 0)
+ return value;
+ }
+ return NullSym;
+ }
+};
+
+class ShdrTab : public vector<Elf32_Shdr> {
+public:
+ char * shstrtab;
+ ShdrTab() : shstrtab(nullptr) {}
+ Elf32_Shdr & operator[](const int idx) {
+ return data()[idx];
+ }
+ Elf32_Shdr & operator[](const char * name) {
+ for (auto& value : *this) {
+ if (strcmp(shstrtab + value.sh_name, name) == 0)
+ return value;
+ }
+ return NullShdr;
+ }
+};
+
+class Elf {
+ fstream handle;
+ Elf32_Ehdr ehdr;
+ Elf32_Phdr * phdr;
+ uint32_t symnum;
+public:
+ ShdrTab shdr;
+ Symtab symtab;
+ Elf(const char * filename) {
+ // Read the ELF header
+ phdr = nullptr;
+ handle.open(filename, ios_base::in | ios_base::binary);
+ if (!handle.good()) {
+ cerr << "ERROR: Unable to open file '" << filename << "' for reading" << endl;
+ exit(1);
+ }
+ handle.read((char *)&ehdr, sizeof(ehdr));
+ if (memcmp(ehdr.e_ident, ELFMAG, SELFMAG) != 0) {
+ handle.close();
+ cerr << "ERROR: Opened file is not a valid ELF" << endl;
+ exit(1);
+ }
+
+ // Read the section headers
+ shdr.resize(ehdr.e_shnum);
+ handle.seekg(ehdr.e_shoff);
+ handle.read((char *)shdr.data(), ehdr.e_shnum * ehdr.e_shentsize);
+
+ // Read the program headers
+ phdr = new Elf32_Phdr [ehdr.e_phnum];
+ handle.seekg(ehdr.e_phoff);
+ handle.read((char *)phdr, ehdr.e_phnum * ehdr.e_phentsize);
+
+ // Read the section string table
+ shdr.shstrtab = new char[shdr[ehdr.e_shstrndx].sh_size];
+ handle.seekg(shdr[ehdr.e_shstrndx].sh_offset);
+ handle.read(shdr.shstrtab, shdr[ehdr.e_shstrndx].sh_size);
+
+ // Read the symbol table
+ for (int i = 0; i < ehdr.e_shnum; i++) {
+ switch (shdr[i].sh_type)
+ {
+ case SHT_SYMTAB:
+ if (!symtab.empty()) {
+ handle.close();
+ cerr << "ERROR: double symtab" << endl;
+ exit(1);
+ }
+ symnum = shdr[i].sh_size / sizeof(Elf32_Sym);
+ symtab.resize(symnum);
+ handle.seekg(shdr[i].sh_offset);
+ handle.read((char *)symtab.data(), shdr[i].sh_size);
+ break;
+ case SHT_STRTAB:
+ if (i == ehdr.e_shstrndx)
+ break;
+ if (symtab.strtab != nullptr) {
+ handle.close();
+ cerr << "ERROR: double strtab" << endl;
+ exit(1);
+ }
+ symtab.strtab = new char[shdr[i].sh_size];
+ handle.seekg(shdr[i].sh_offset);
+ handle.read(symtab.strtab, shdr[i].sh_size);
+ break;
+ }
+ }
+ }
+
+ void operator ~() {
+ delete[] symtab.strtab;
+ delete[] shdr.shstrtab;
+ delete[] phdr;
+ }
+
+ void * read(Elf32_Sym & sym) {
+ // Reads the value of a symbol
+ if (sym.st_size == 0)
+ return nullptr;
+ if (shdr.empty())
+ return nullptr;
+ Elf32_Shdr & sec = shdr[sym.st_shndx];
+ size_t size = (sym.st_size + 3) & ~3;
+ off_t off = sym.st_value - sec.sh_addr + sec.sh_offset;
+ auto ret = new char[size];
+ handle.seekg(off);
+ handle.read(ret, sym.st_size);
+ if (sym.st_size & 3)
+ memset(ret + sym.st_size, 0, size - sym.st_size);
+ return ret;
+ }
+
+ void * read(Elf32_Shdr & sec) {
+ // Reads the contents of an ELF section
+ if (sec.sh_size == 0)
+ return nullptr;
+ size_t size = (sec.sh_size + 3) & ~3;
+ auto ret = new char[size];
+ handle.seekg(sec.sh_offset);
+ handle.read(ret, sec.sh_size);
+ if (sec.sh_size & 3)
+ memset(ret + sec.sh_size, 0, size - sec.sh_size);
+ return ret;
+ }
+};
+
+static inline void usage() {
+ cout << "Usage: o2narc [-f|--flatten] infile outfile" << endl;
+ cout << endl;
+ cout << "Arguments:" << endl;
+ cout << "\tinfile\tELF object file with symbols __size and __data" << endl;
+ cout << "\toutfile\tOutput NARC file" << endl;
+ cout << "Options:" << endl;
+ cout << "\t-f|--flatten\tDon't generate NARC headers" << endl;
+}
+
+int main(int argc, char ** argv) {
+ // CLI arguments
+ int flatten = 0;
+ char padding = '\xFF';
+ static option options [] {
+ { "flatten", no_argument, &flatten, 1 },
+ { "padding", required_argument, nullptr, 'p' },
+ {nullptr, 0, nullptr, 0}
+ };
+ int opt_index;
+ int c;
+ while ((c = getopt_long(argc, argv, "fp:", options, &opt_index)) != -1)
+ {
+ if (c == 'f') {
+ flatten = 1;
+ } else if (c == 'p') {
+ padding = *optarg;
+ }
+ }
+ argv += optind;
+ argc -= optind;
+ if (argc < 2) {
+ usage();
+ cerr << "Insufficient arguments: missing " << (argc == 0 ? "infile, " : "") << "outfile" << endl;
+ return 1;
+ }
+ if (argc > 2) {
+ usage();
+ cerr << "Excess arguments: first unrecognized '" << argv[2] << "'" << endl;
+ return 1;
+ }
+ char * infname = argv[0];
+ char * outfname = argv[1];
+
+ // Read the ELF file
+ Elf elf(infname);
+ // .rodata contains the data
+ Elf32_Shdr & rodata_sec = elf.shdr[".rodata"];
+ char * _rodata = (char *)elf.read(rodata_sec);
+ if (_rodata == nullptr) {
+ cerr << "ERROR: Missing required section .rodata" << endl;
+ exit(1);
+ }
+
+ fstream ofile;
+ ofile.open(outfname, ios_base::out | ios_base::binary);
+ if (!ofile.good()) {
+ cerr << "ERROR: Unable to open '" << outfname << "' for writing" << endl;
+ exit(1);
+ }
+
+ if (!flatten) // then build the NARC chunks
+ {
+ // .data contains the size table
+ Elf32_Shdr & data_sec = elf.shdr[".data"];
+ uint32_t * _data = (uint32_t *)elf.read(data_sec);
+
+ if (_data == nullptr) {
+ cerr << "ERROR: Missing required section .data" << endl;
+ exit(1);
+ }
+
+ uint16_t count;
+ size_t narc_size;
+ size_t size_aln;
+ size_t size = *_data;
+
+ if (data_sec.sh_size == sizeof(uint32_t))
+ {
+ size_aln = (size + 3) & ~3;
+ count = rodata_sec.sh_size / size_aln;
+ }
+ else
+ {
+ size_aln = -1u;
+ count = data_sec.sh_size / sizeof(uint32_t);
+ }
+ // NARC header: 16
+ // FATB header: 12 + 8 * count
+ // FNTB header: 8
+ // GMIF header: 8 + data_sym.st_size
+ narc_size = (
+ sizeof(NarcHeader) +
+ sizeof(FileAllocationTable) + sizeof(FileAllocationTableEntry) * count +
+ sizeof(FileNameTable) + sizeof(FileNameTableEntry) +
+ sizeof(FileImages) + (rodata_sec.sh_size + 3) & ~3
+ );
+
+ NarcHeader header{
+ .Id = *(uint32_t *) "NARC",
+ .ByteOrderMark = 0xFFFE,
+ .Version = 0x100,
+ .FileSize = static_cast<uint32_t>(narc_size),
+ .ChunkSize = sizeof(NarcHeader),
+ .ChunkCount = 3
+ };
+ FileAllocationTable fat{
+ .Id = *(uint32_t *) "BTAF",
+ .ChunkSize = static_cast<uint32_t>(sizeof(FileAllocationTable) + sizeof(FileAllocationTableEntry) * count),
+ .FileCount = count,
+ .Reserved = 0
+ };
+ auto fat_entries = new FileAllocationTableEntry[count];
+ for (int i = 0; i < count; i++)
+ {
+ // Each element of the size array corresponds to
+ // a NARC member
+ if (data_sec.sh_size > sizeof(uint32_t)) {
+ size = _data[i];
+ size_aln = (size + 3) & ~3;
+ }
+ fat_entries[i].Start = i == 0 ? 0 : (fat_entries[i - 1].End + 3) & ~3;
+ fat_entries[i].End = fat_entries[i].Start + _data[data_sec.sh_size == sizeof(uint32_t) ? 0 : i];
+ // Padding
+ for (int j = size; j < size_aln; j++)
+ {
+ _rodata[fat_entries[i].End + j] = padding;
+ }
+ }
+ // These NARCs have empty FNTs
+ FileNameTable fnt{
+ .Id = *(uint32_t *) "BTNF",
+ .ChunkSize = static_cast<uint32_t>(sizeof(FileNameTable) + sizeof(FileNameTableEntry))
+ };
+ FileNameTableEntry fnt_entry{
+ .Offset = 4,
+ .FirstFileId = 0,
+ .Utility = 1
+ };
+ FileImages fimg{
+ .Id = *(uint32_t *) "GMIF",
+ .ChunkSize = static_cast<uint32_t>(sizeof(FileImages) + (rodata_sec.sh_size + 3) & ~3)
+ };
+
+ ofile.write((char *) &header, sizeof(header));
+ ofile.write((char *) &fat, sizeof(fat));
+ ofile.write((char *) fat_entries, sizeof(FileAllocationTableEntry) * count);
+ ofile.write((char *) &fnt, sizeof(fnt));
+ ofile.write((char *) &fnt_entry, sizeof(fnt_entry));
+ ofile.write((char *) &fimg, sizeof(fimg));
+ // Cleanup
+ delete[] fat_entries;
+ delete[] _data;
+ }
+ // NARC members are contiguous in memory
+ ofile.write(_rodata, rodata_sec.sh_size);
+ if (!flatten && (rodata_sec.sh_size & 3)) {
+ for (int i = rodata_sec.sh_size & 3; i < 4; i++)
+ ofile.put(padding);
+ }
+ // Cleanup
+ delete[] _rodata;
+ ofile.close();
+ return 0;
+}